<?xml version="1.0" encoding="UTF-8"?> <ufwb version="1.3"> <grammar name="Mobi" start="id:23" author="Andreas Pehnack" fileextension="azw3,mobi"> <description>Grammar for Mobi files (works also for Kindle AZW3 files)</description> <structure name="Mobi file" id="23" length="0" encoding="ISO_8859-1:1987" endian="big" signed="no"> <structref name="PalmDatabase" id="25" structure="id:24"/> </structure> <structure name="PalmDatabase" id="24" encoding="ISO_8859-1:1987" endian="big" signed="no"> <string name="DataBaseName" id="27" type="fixed-length" length="32" encoding="ISO_8859-1:1987"/> <number name="Attributes" id="28" type="integer" length="2"> <mask name="Read-Only" value="0x2"> <fixedvalue name="Read-Only" value="0x2"/> </mask> <mask name="Dirty AppInfoArea" value="0x4"> <fixedvalue name="Dirty AppInfoArea" value="0x4"/> </mask> <mask name="Backup this database" value="0x8"> <fixedvalue name="Backup this database" value="0x8"/> </mask> <mask name="Okay to install newer over existing copy, if present on PalmPilot" value="0x10"> <fixedvalue name="Okay to install newer over existing copy, if present on PalmPilot" value="0x10"/> </mask> <mask name="Force the PalmPilot to reset after this database is installed" value="0x20"> <fixedvalue name="Force the PalmPilot to reset after this database is installed" value="0x20"/> </mask> <mask name="Don't allow copy of file to be beamed to other Pilot" value="0x40"> <fixedvalue name="Don't allow copy of file to be beamed to other Pilot" value="0x40"/> </mask> </number> <number name="Version" id="29" type="integer" length="2"/> <number name="CreationDate" id="30" type="integer" length="4"/> <number name="ModificationDate" id="31" type="integer" length="4"/> <number name="LastBackupDate" id="32" type="integer" length="4"/> <number name="ModificationNumber" id="33" type="integer" length="4"/> <number name="AppInfoID" id="34" type="integer" length="4"/> <number name="SortInfoID" id="35" type="integer" length="4"/> <string name="Type" id="36" type="fixed-length" length="4" encoding="ISO_8859-1:1987"/> <string name="CreatorID" id="37" type="fixed-length" length="4" encoding="ISO_8859-1:1987"/> <number name="UniqueIDSeed" id="38" type="integer" length="4"/> <number name="NextRecordListID" id="39" type="integer" length="4"/> <number name="NumberOfRecords" id="40" type="integer" length="2"/> <structure name="FirstRecordInfo" id="41"> <offset name="RecordDataOffset" id="43" length="4" references="id:42" follownullreference="yes"/> <number name="RecordAttributes" id="44" type="integer" length="1"> <mask name="Secret record bit" value="0x10"> <fixedvalue name="Secret record bit" value="0x10"/> </mask> <mask name="Record in use (busy bit)" value="0x20"> <fixedvalue name="Record in use (busy bit)" value="0x20"/> </mask> <mask name="Dirty record bit" value="0x40"> <fixedvalue name="Dirty record bit" value="0x40"/> </mask> <mask name="Delete record on next HotSync" value="0x80"> <fixedvalue name="Delete record on next HotSync" value="0x80"/> </mask> </number> <number name="UniqueID" id="45" type="integer" length="3"/> </structure> <structure name="RecordInfo" id="47" repeatmax="NumberOfRecords-1"> <offset name="RecordDataOffset" id="49" length="4" references="id:48" follownullreference="yes"/> <number name="RecordAttributes" id="50" type="integer" length="1"> <mask name="Secret record bit" value="0x10"> <fixedvalue name="Secret record bit" value="0x10"/> </mask> <mask name="Record in use (busy bit)" value="0x20"> <fixedvalue name="Record in use (busy bit)" value="0x20"/> </mask> <mask name="Dirty record bit" value="0x40"> <fixedvalue name="Dirty record bit" value="0x40"/> </mask> <mask name="Delete record on next HotSync" value="0x80"> <fixedvalue name="Delete record on next HotSync" value="0x80"/> </mask> </number> <number name="UniqueID" id="51" type="integer" length="3"/> </structure> </structure> <structure name="MobipocketInfoRecord" id="42" length="0" encoding="ISO_8859-1:1987" endian="big" signed="no"> <number name="Compression" id="54" type="integer" length="2"> <fixedvalues> <fixedvalue name="No Compression" value="1"/> <fixedvalue name="PalmDOC Compression" value="2"/> <fixedvalue name="HUFF/CDIC Compression" value="17480"/> </fixedvalues> </number> <number name="Unused" id="55" type="integer" length="2"/> <number name="TextLength" id="56" type="integer" length="4"/> <number name="RecordCount" id="57" type="integer" length="2"/> <number name="RecordSize" id="58" type="integer" length="2"/> <number name="EncryptionType" id="59" type="integer" length="2"> <description>In a regular PalmDOC file this and the next element are the current reading position </description> <fixedvalues> <fixedvalue name="No Encryption" value="0"/> <fixedvalue name="Old Mobipocket Encryption" value="1"/> <fixedvalue name="Mobipocket Encryption" value="2"/> </fixedvalues> </number> <number name="Unused2" id="60" type="integer" length="2"/> <structref name="MOBI Header" id="62" structure="id:61"/> <scriptelement name="Map EXTH Record" id="63"> <script name="unnamed" type="Generic"> <source language="Python">results = currentMapper.getCurrentResults() flagsResult = results.getResultByName("EXTH Flags") flagsValue = flagsResult.getValue() flags = flagsValue.getUnsignedNumber() print(flags) if flags != 0: currentGrammar = currentMapper.getCurrentGrammar() exthStructure = currentGrammar.getStructureByName("EXTH Header") currentMapper.mapStructure(exthStructure) </source> </script> </scriptelement> </structure> <structure name="MOBI Header" id="61" length="HeaderLength" encoding="ISO_8859-1:1987" endian="big" signed="no"> <string name="Identifier" id="65" type="fixed-length" length="4" encoding="ISO_8859-1:1987"/> <number name="HeaderLength" id="66" type="integer" length="4"/> <number name="MobyType" id="67" type="integer" length="4"/> <number name="TextEncoding" id="68" type="integer" length="4"> <fixedvalues> <fixedvalue name="WinLatin1" value="1252"/> <fixedvalue name="UTF-8" value="65001"/> </fixedvalues> </number> <number name="Unique-ID" id="69" type="integer" length="4" display="hex"/> <number name="FileVersion" id="70" type="integer" length="4"/> <number name="OrthographicIndex" id="71" type="integer" length="4" display="hex"/> <number name="InflectionIndex" id="72" type="integer" length="4" display="hex"/> <number name="IndexNames" id="73" type="integer" length="4" display="hex"/> <number name="IndexKeys" id="74" type="integer" length="4" display="hex"/> <number name="ExtraIndex0" id="75" type="integer" length="4" display="hex"/> <number name="ExtraIndex1" id="76" type="integer" length="4" display="hex"/> <number name="ExtraIndex2" id="77" type="integer" length="4" display="hex"/> <number name="ExtraIndex3" id="78" type="integer" length="4" display="hex"/> <number name="ExtraIndex4" id="79" type="integer" length="4" display="hex"/> <number name="ExtraIndex5" id="80" type="integer" length="4" display="hex"/> <number name="FirstNonBookIndex" id="81" type="integer" length="4"/> <number name="FullNameOffset" id="82" type="integer" length="4"/> <number name="FullNameLength" id="83" type="integer" length="4"/> <structure name="Locale" id="84"> <number name="Unused" id="85" type="integer" length="2"/> <number name="Dialect" id="86" type="integer" length="1"> <fixedvalues> <fixedvalue name="British" value="8"/> <fixedvalue name="US" value="4"/> </fixedvalues> </number> <number name="MainLanguage" id="87" type="integer" length="1"> <fixedvalues> <fixedvalue name="English" value="9"/> <fixedvalue name="German" value="7"/> </fixedvalues> </number> </structure> <number name="InputLanguage" id="89" type="integer" length="4"/> <number name="OutputLanguage" id="90" type="integer" length="4"/> <number name="MinVersion" id="91" type="integer" length="4"/> <number name="FirstImageIndex" id="92" type="integer" length="4"/> <number name="HuffmanRecordOffset" id="93" type="integer" length="4"/> <number name="HuffmanRecordCount" id="94" type="integer" length="4"/> <number name="HuffmanTableOffset" id="95" type="integer" length="4"/> <number name="HuffmanTableLength" id="96" type="integer" length="4"/> <number name="EXTH Flags" id="97" type="integer" length="4"/> <binary name="Unknown" id="98" length="32"/> <number name="Unkown2" id="99" type="integer" length="4" display="hex"/> <number name="DRM Offset" id="100" type="integer" length="4"/> <number name="DRM Count" id="101" type="integer" length="4"/> <number name="DRM Size" id="102" type="integer" length="4"/> <number name="DRM Flags" id="103" type="integer" length="4" display="hex"/> <binary name="Unknown3" id="104" length="8"/> <number name="Unknown4" id="105" type="integer" length="4" display="hex"/> <number name="FirstContentRecordNumber" id="106" type="integer" length="4"/> <number name="LastContentRecordNumber" id="107" type="integer" length="4"/> <number name="Unknown5" id="108" type="integer" length="4"/> <number name="FCISRecordNumber" id="109" type="integer" length="4"/> <number name="Unknown6" id="110" type="integer" length="4"/> <number name="FLISRecordNumber" id="111" type="integer" length="4"/> <number name="FLISRecordCount" id="112" type="integer" length="4"/> <number name="Unknown7" id="113" type="integer" length="4" display="hex"/> <number name="FirstCompilationDataSectionCount" id="114" type="integer" length="4"/> <number name="NumberOfCompilationDataSections" id="115" type="integer" length="4"/> <number name="Unknown8" id="116" type="integer" length="4"/> <number name="ExtraRecordDataFlags" id="117" type="integer" length="4"> <mask name="Extra Multiple Bytes" value="0x1"> <fixedvalue name="Extra Multiple Bytes" value="0x1"/> </mask> <mask name="TBS Indexing Description" value="0x2"> <fixedvalue name="TBS Indexing Description" value="0x2"/> </mask> <mask name="Uncrossable Breaks" value="0x4"> <fixedvalue name="Uncrossable Breaks" value="0x4"/> </mask> </number> <number name="INDXRecordOffset" id="118" type="integer" length="4" display="hex"/> <number name="Unknown9" id="119" type="integer" length="4" display="hex"/> <number name="Unknown10" id="120" type="integer" length="4" display="hex"/> <number name="Unknown11" id="121" type="integer" length="4" display="hex"/> <number name="Unknown12" id="122" type="integer" length="4" display="hex"/> <number name="Unknown13" id="123" type="integer" length="4" display="hex"/> <number name="Unknown14" id="124" type="integer" length="4" display="hex"/> </structure> <structure name="EXTH Header" id="126" length="HeaderLength" encoding="ISO_8859-1:1987" endian="big" signed="no"> <string name="Identifier" id="127" type="fixed-length" length="4" encoding="ISO_8859-1:1987"/> <number name="HeaderLength" id="128" type="integer" length="4"/> <number name="RecordCount" id="129" type="integer" length="4"/> <structure name="Records" id="130" repeatmax="RecordCount" order="variable"> <structref name="DRM EBookBaseBookID Record" id="132" repeatmin="0" structure="id:131"/> <structref name="AuthorRecord" id="134" repeatmin="0" structure="id:133"/> <structref name="PublisherRecord" id="136" repeatmin="0" structure="id:135"/> <structref name="SubjectRecord" id="138" repeatmin="0" structure="id:137"/> <structref name="PublishingDateRecord" id="140" repeatmin="0" structure="id:139"/> <structref name="ContributorRecord" id="736" repeatmin="0" structure="id:732"/> <structref name="AsinRecord" id="142" repeatmin="0" structure="id:141"/> <structref name="SampleRecord" id="144" repeatmin="0" structure="id:143"/> <structref name="StartReadingRecord" id="146" repeatmin="0" structure="id:145"/> <structref name="CoverOffsetRecord" id="148" repeatmin="0" structure="id:147"/> <structref name="ThumbOffsetRecord" id="150" repeatmin="0" structure="id:149"/> <structref name="HasFakeCoverRecord" id="152" repeatmin="0" structure="id:151"/> <structref name="CreatorSoftwareRecord" id="154" repeatmin="0" structure="id:153"/> <structref name="CreatorMajorVersionRecord" id="156" repeatmin="0" structure="id:155"/> <structref name="CreatorMinorVersionRecord" id="158" repeatmin="0" structure="id:157"/> <structref name="CreatorBuildNumberRecord" id="160" repeatmin="0" structure="id:159"/> <structref name="FontSignatureRecord" id="341" repeatmin="0" structure="id:337"/> <structref name="UpdatedTitleRecord" id="162" repeatmin="0" structure="id:161"/> <structref name="UnknownRecord405" id="164" repeatmin="0" structure="id:163"/> <structref name="UnknownRecord406" id="166" repeatmin="0" structure="id:165"/> <structref name="AsinCopyRecord" id="168" repeatmin="0" structure="id:167"/> <structref name="EXTH Record" id="170" repeatmin="0" structure="id:169"/> </structure> </structure> <structure name="EXTH Record" id="169" length="RecordLength" encoding="ISO_8859-1:1987" endian="big" signed="no" strokecolor="FF7D78"> <number name="RecordType" id="173" fillcolor="FFD478" type="integer" length="4"> <fixedvalues> <fixedvalue name="drm_server_id" value="1"/> <fixedvalue name="drm_commerce_id" value="2"/> <fixedvalue name="drm_ebookbase_book_id" value="3"/> <fixedvalue name="author" value="100"/> <fixedvalue name="publisher" value="101"/> <fixedvalue name="imprint" value="102"/> <fixedvalue name="description" value="103"/> <fixedvalue name="isbn" value="104"/> <fixedvalue name="subject" value="105"/> <fixedvalue name="publishingdate" value="106"/> <fixedvalue name="review" value="107"/> <fixedvalue name="contributor" value="108"/> <fixedvalue name="rights" value="109"/> <fixedvalue name="subjectcode" value="110"/> <fixedvalue name="type" value="111"/> <fixedvalue name="source" value="112"/> <fixedvalue name="asin" value="113"/> <fixedvalue name="versionnumber" value="114"/> <fixedvalue name="sample" value="115"/> <fixedvalue name="startreading" value="116"/> <fixedvalue name="adult" value="117"/> <fixedvalue name="retail price" value="118"/> <fixedvalue name="retail price currency" value="119"/> </fixedvalues> </number> <number name="RecordLength" id="174" fillcolor="D4FB78" type="integer" length="4"/> </structure> <structure name="DRM EBookBaseBookID Record" id="131" extends="id:169"> <number name="RecordType" mustmatch="yes" id="176" type="integer"> <fixedvalues> <fixedvalue name="drm_ebookbase_book_id" value="3"/> </fixedvalues> </number> <number name="RecordLength" id="177" type="integer"/> <string name="BookID" id="178" type="fixed-length" length="0"/> </structure> <structure name="AuthorRecord" id="133" extends="id:169"> <number name="RecordType" mustmatch="yes" id="180" type="integer"> <fixedvalues> <fixedvalue name="author" value="100"/> </fixedvalues> </number> <number name="RecordLength" id="181" type="integer"/> <string name="AuthorName" id="182" type="fixed-length" length="0" encoding="ISO_8859-1:1987"/> </structure> <structure name="PublisherRecord" id="135" extends="id:169"> <number name="RecordType" mustmatch="yes" id="184" type="integer"> <fixedvalues> <fixedvalue name="publisher" value="101"/> </fixedvalues> </number> <number name="RecordLength" id="185" type="integer"/> <string name="Publisher" id="186" type="fixed-length" length="17" encoding="ISO_8859-1:1987"/> </structure> <structure name="SubjectRecord" id="137" extends="id:169"> <number name="RecordType" mustmatch="yes" id="188" type="integer"> <fixedvalues> <fixedvalue name="subject" value="105"/> </fixedvalues> </number> <number name="RecordLength" id="189" type="integer"/> <string name="Subject" id="336" type="fixed-length" length="0" encoding="ISO_8859-1:1987"/> </structure> <structure name="PublishingDateRecord" id="139" extends="id:169"> <number name="RecordType" mustmatch="yes" id="191" type="integer"> <fixedvalues> <fixedvalue name="publishingdate" value="106"/> </fixedvalues> </number> <number name="RecordLength" id="192" type="integer"/> <string name="PublishingDate" id="193" type="fixed-length" length="0" encoding="ISO_8859-1:1987"/> </structure> <structure name="ContributorRecord" id="732" extends="id:169"> <number name="RecordType" mustmatch="yes" id="734" type="integer"> <fixedvalues> <fixedvalue name="contributor" value="108"/> </fixedvalues> </number> <number name="RecordLength" id="735" type="integer"/> <string name="Contributor" id="737" type="fixed-length" length="0" encoding="ISO_8859-1:1987"/> </structure> <structure name="AsinRecord" id="141" extends="id:169"> <number name="RecordType" mustmatch="yes" id="195" type="integer"> <fixedvalues> <fixedvalue name="asin" value="113"/> </fixedvalues> </number> <number name="RecordLength" id="196" type="integer"/> <string name="ASIN" id="197" type="fixed-length" length="10" encoding="ISO_8859-1:1987"/> </structure> <structure name="SampleRecord" id="143" extends="id:169"> <number name="RecordType" mustmatch="yes" id="199" type="integer"> <fixedvalues> <fixedvalue name="sample" value="115"/> </fixedvalues> </number> <number name="RecordLength" id="200" type="integer"/> <number name="Sample" id="201" type="integer" length="4"> <fixedvalues> <fixedvalue name="IsSample" value="1"/> <fixedvalue name="IsNotSample" value="0"/> </fixedvalues> </number> </structure> <structure name="StartReadingRecord" id="145" extends="id:169"> <number name="RecordType" mustmatch="yes" id="203" type="integer"> <fixedvalues> <fixedvalue name="startreading" value="116"/> </fixedvalues> </number> <number name="RecordLength" id="204" type="integer"/> <number name="StartReadingOffset" id="205" type="integer" length="4"/> </structure> <structure name="CoverOffsetRecord" id="147" extends="id:169"> <number name="RecordType" mustmatch="yes" id="207" type="integer"> <fixedvalues> <fixedvalue name="coveroffset" value="201"/> </fixedvalues> </number> <number name="RecordLength" id="208" type="integer"/> <number name="CoverOffset" id="209" type="integer" length="4"/> </structure> <structure name="ThumbOffsetRecord" id="149" extends="id:169"> <number name="RecordType" mustmatch="yes" id="211" type="integer"> <fixedvalues> <fixedvalue name="thumboffset" value="202"/> </fixedvalues> </number> <number name="RecordLength" id="212" type="integer"/> <number name="ThumbOffset" id="213" type="integer" length="4"/> </structure> <structure name="HasFakeCoverRecord" id="151" extends="id:169"> <number name="RecordType" mustmatch="yes" id="215" type="integer"> <fixedvalues> <fixedvalue name="hasfakecover" value="203"/> </fixedvalues> </number> <number name="RecordLength" id="216" type="integer"/> <number name="HasFakeCover" id="217" type="integer" length="4"/> </structure> <structure name="CreatorSoftwareRecord" id="153" extends="id:169"> <number name="RecordType" mustmatch="yes" id="219" type="integer"> <fixedvalues> <fixedvalue name="CreatorSoftware" value="204"/> </fixedvalues> </number> <number name="RecordLength" id="220" type="integer"/> <number name="Creator Software" id="221" type="integer" length="4"> <fixedvalues> <fixedvalue name="mobigen" value="1"/> <fixedvalue name="Mobipocket Creator" value="2"/> <fixedvalue name="kindlegen (Windows)" value="200"/> <fixedvalue name="kindlegen (Linux)" value="201"/> <fixedvalue name="kindlegen (Mac)" value="202"/> </fixedvalues> </number> </structure> <structure name="CreatorMajorVersionRecord" id="155" extends="id:169"> <number name="RecordType" mustmatch="yes" id="223" type="integer"> <fixedvalues> <fixedvalue name="Creator Major Version" value="205"/> </fixedvalues> </number> <number name="RecordLength" id="224" type="integer"/> <number name="MajorVersion" id="225" type="integer" length="4"/> </structure> <structure name="CreatorMinorVersionRecord" id="157" extends="id:169"> <number name="RecordType" mustmatch="yes" id="227" type="integer"> <fixedvalues> <fixedvalue name="Creator Minor Version" value="206"/> </fixedvalues> </number> <number name="RecordLength" id="228" type="integer"/> <number name="MinorVersion" id="229" type="integer" length="4"/> </structure> <structure name="CreatorBuildNumberRecord" id="159" extends="id:169"> <number name="RecordType" mustmatch="yes" id="231" type="integer"> <fixedvalues> <fixedvalue name="Creator Build Number" value="207"/> </fixedvalues> </number> <number name="RecordLength" id="232" type="integer"/> <number name="BuildNumber" id="233" type="integer" length="4"/> </structure> <structure name="FontSignatureRecord" id="337" extends="id:169"> <number name="RecordType" mustmatch="yes" id="339" type="integer"> <fixedvalues> <fixedvalue name="fontsignature" value="300"/> </fixedvalues> </number> <number name="RecordLength" id="340" type="integer"/> <binary name="FontSignature" id="724" length="0"/> </structure> <structure name="UpdatedTitleRecord" id="161" extends="id:169"> <number name="RecordType" mustmatch="yes" id="235" type="integer"> <fixedvalues> <fixedvalue name="updatedtitle" value="503"/> </fixedvalues> </number> <number name="RecordLength" id="236" type="integer"/> <string name="UpdatedTitle" id="237" type="fixed-length" length="114" encoding="UTF-8"/> </structure> <structure name="UnknownRecord405" id="163" extends="id:169"> <number name="RecordType" mustmatch="yes" id="239" type="integer"> <fixedvalues> <fixedvalue name="unknown405" value="405"/> </fixedvalues> </number> <number name="RecordLength" id="240" type="integer"/> <number name="Unknown" id="241" type="integer" length="1"/> </structure> <structure name="UnknownRecord406" id="165" extends="id:169" encoding="ISO_8859-1:1987" endian="big" signed="no"> <number name="RecordType" mustmatch="yes" id="243" type="integer" length="1"> <fixedvalues> <fixedvalue name="unknown406" value="406"/> </fixedvalues> </number> <number name="RecordLength" id="244" type="integer" length="1"/> </structure> <structure name="AsinCopyRecord" id="167" extends="id:169"> <number name="RecordType" mustmatch="yes" id="246" type="integer"> <fixedvalues> <fixedvalue name="AsinCopy" value="504"/> </fixedvalues> </number> <number name="RecordLength" id="247" type="integer"/> <string name="AsinCopy" id="248" type="fixed-length" length="10" encoding="ISO_8859-1:1987"/> </structure> <structure name="Record" id="48" encoding="ISO_8859-1:1987" endian="big" signed="no" order="variable"> <structref name="IndexMetaRecord" id="251" repeatmin="0" structure="id:250"/> <structref name="TagXRecord" id="253" repeatmin="0" structure="id:252"/> <structref name="CDICRecord" id="255" repeatmin="0" structure="id:254"/> <structref name="FCisRecord" id="257" repeatmin="0" structure="id:256"/> <structref name="FLisRecord" id="259" repeatmin="0" structure="id:258"/> <structref name="DATPRecord" id="261" repeatmin="0" structure="id:260"/> <structref name="HUFFRecord" id="263" repeatmin="0" structure="id:262"/> <structref name="IDXTRecord" id="265" repeatmin="0" structure="id:264"/> <structref name="SRCSRecord" id="730" repeatmin="0" structure="id:727"/> <structref name="JPEGRecord" id="267" repeatmin="0" structure="id:266"/> <structref name="EndOfFileRecord" id="269" repeatmin="0" structure="id:268"/> <structref name="BinaryRecord" id="271" repeatmin="0" structure="id:270"/> </structure> <structure name="NonDataRecord" id="273" encoding="ISO_8859-1:1987" endian="big" signed="no"> <string name="RecordType" mustmatch="yes" id="274" type="fixed-length" length="4"/> </structure> <structure name="IDXTRecord" id="264" extends="id:273"> <string name="RecordType" id="276" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="IDXT" value="IDXT"/> </fixedvalues> </string> </structure> <structure name="IndexMetaRecord" id="250" length="Length" extends="id:273"> <string name="RecordType" id="278" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="INDX" value="INDX"/> </fixedvalues> </string> <number name="Length" id="279" type="integer" length="4"/> <number name="IndexType" id="280" type="integer" length="4"> <fixedvalues> <fixedvalue name="Normal" value="0"/> <fixedvalue name="Inflections" value="2"/> </fixedvalues> </number> <number name="Unknown1" id="281" type="integer" length="4"/> <number name="Unknown2" id="282" type="integer" length="4"/> <number name="OffsetToIDXT" id="283" type="integer" length="4"/> <number name="NumberOfIndexRecords" id="284" type="integer" length="4"/> <number name="IndexEncoding" id="285" type="integer" length="4"/> <number name="IndexLanguage" id="286" type="integer" length="4" signed="yes" display="hex"/> <number name="TotalIndexCount" id="287" type="integer" length="4"/> <number name="OffsetToORDT" id="288" type="integer" length="4"/> <number name="OffsetToLIGT" id="289" type="integer" length="4"/> <number name="Unknown3" id="290" type="integer" length="4"/> <number name="Unknown4" id="291" type="integer" length="4"/> </structure> <structure name="TagXRecord" id="252" length="Length" extends="id:273"> <string name="RecordType" id="293" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="TAGX" value="TAGX"/> </fixedvalues> </string> <number name="Length" id="294" type="integer" length="4"/> <number name="ControlByteCount" id="295" type="integer" length="4"> <fixedvalues> <fixedvalue name="Normal" value="0"/> <fixedvalue name="Inflections" value="2"/> </fixedvalues> </number> <number name="TagTableEntry" id="296" repeatmax="-1" type="integer" length="1"/> </structure> <structure name="CDICRecord" id="254" extends="id:273"> <string name="RecordType" id="298" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="CDIC" value="CDIC"/> </fixedvalues> </string> </structure> <structure name="FLisRecord" id="258" length="36" extends="id:273"> <string name="RecordType" id="300" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="FLIS" value="FLIS"/> </fixedvalues> </string> <number name="Unknown1" id="301" type="integer" length="4"/> <number name="Unknown2" id="302" type="integer" length="2"/> <number name="Unknown3" id="303" type="integer" length="2"/> <number name="Unknown4" id="304" type="integer" length="4"/> <number name="Unknown5" id="305" type="integer" length="4" signed="yes" display="hex"/> <number name="Unknown6" id="306" type="integer" length="2"/> <number name="Unknown7" id="307" type="integer" length="2"/> <number name="Unknown8" id="308" type="integer" length="4"/> <number name="Unknown9" id="309" type="integer" length="4"/> <number name="Unknown10" id="310" type="integer" length="4" signed="yes" display="hex"/> </structure> <structure name="FCisRecord" id="256" length="44" extends="id:273"> <string name="RecordType" id="312" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="FCIS" value="FCIS"/> </fixedvalues> </string> <number name="Unknown1" id="313" type="integer" length="4"/> <number name="Unknown2" id="314" type="integer" length="4"/> <number name="Unknown3" id="315" type="integer" length="4"/> <number name="Unknown4" id="316" type="integer" length="4"/> <number name="TextLength" id="317" type="integer" length="4"/> <number name="Unknown5" id="318" type="integer" length="4"/> <number name="Unknown6" id="319" type="integer" length="4"/> <number name="Unknown7" id="320" type="integer" length="4"/> <number name="Unknown8" id="321" type="integer" length="2"/> <number name="Unknown9" id="322" type="integer" length="2"/> <number name="Unknown10" id="323" type="integer" length="4"/> </structure> <structure name="DATPRecord" id="260" extends="id:273"> <string name="RecordType" id="325" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="DATP" value="DATP"/> </fixedvalues> </string> </structure> <structure name="HUFFRecord" id="262" extends="id:273"> <string name="RecordType" id="334" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="HUFF" value="HUFF"/> </fixedvalues> </string> </structure> <structure name="SRCSRecord" id="727" extends="id:273"> <string name="RecordType" id="729" type="fixed-length" length="4"> <fixedvalues> <fixedvalue name="SRCS" value="SRCS"/> </fixedvalues> </string> </structure> <structure name="JPEGRecord" id="266" encoding="ISO_8859-1:1987" endian="big" signed="no"> <binary name="<new binary>" mustmatch="yes" id="327" length="4"> <fixedvalues> <fixedvalue name="Marker" value="FFD8FFE0"/> </fixedvalues> </binary> </structure> <structure name="EndOfFileRecord" id="268" encoding="ISO_8859-1:1987" endian="big" signed="no"> <binary name="Unknown" id="329" length="2"/> <binary name="CRLF" mustmatch="yes" id="330" length="2"> <fixedvalues> <fixedvalue name="CRLF" value="0D0A"/> </fixedvalues> </binary> </structure> <structure name="BinaryRecord" id="270" encoding="ISO_8859-1:1987" endian="big" signed="no"> <binary name="BinaryData" id="332" length="1"/> </structure> </grammar> </ufwb>