<?xml version="1.0"?>
<!--
    ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
-->
<record fromfile="true" name="FibBase" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <description>Base part of the File information Block (FibBase). Holds the core part of the FIB,
        from the first 32 bytes. &lt;p&gt;Class and fields descriptions are quoted from Microsoft
        Office Word 97-2007 Binary File Format and [MS-DOC] - v20110608 Word (.doc) Binary File
        Format
    </description>
    <author>Andrew C. Oliver; Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary
        File Format Specification [*.doc] and [MS-DOC] - v20110608 Word (.doc) Binary File Format
    </author>
    <fields>
        <field type="int" size="2" name="wIdent"
            description="An unsigned integer that specifies that this is a Word Binary File. This value MUST be 0xA5EC"/>
        <field type="int" size="2" name="nFib"
            description="An unsigned integer that specifies the version number of the file format used. Superseded by FibRgCswNew.nFibNew if it is present. This value SHOULD be 0x00C1"/>
        <field type="int" size="2" name="unused" description="This value is undefined and MUST be ignored"/>
        <field type="int" size="2" name="lid"
            description="A LID that specifies the install language of the application that is producing the document. If nFib is 0x00D9 or greater, then any East Asian install lid or any install lid with a base language of Spanish, German or French MUST be recorded as lidAmerican. If the nFib is 0x0101 or greater, then any install lid with a base language of Vietnamese, Thai, or Hindi MUST be recorded as lidAmerican."/>
        <field type="int" size="2" name="pnNext"
            description="An unsigned integer that specifies the offset in the WordDocument stream of the FIB for the document which contains all the AutoText items"/>
        <field type="short" size="2" name="flags1">
            <bit mask="0x0001" name="fDot" description="Specifies whether this is a document template"/>
            <bit mask="0x0002" name="fGlsy"
                description="Specifies whether this is a document that contains only AutoText items"/>
            <bit mask="0x0004" name="fComplex"
                description="Specifies that the last save operation that was performed on this document was an incremental save operation"/>
            <bit mask="0x0008" name="fHasPic" description="When set to 0, there SHOULD be no pictures in the document"/>
            <bit mask="0x00F0" name="cQuickSaves"
                description="An unsigned integer. If nFib is less than 0x00D9, then cQuickSaves specifies the number of consecutive times this document was incrementally saved. If nFib is 0x00D9 or greater, then cQuickSaves MUST be 0xF"/>
            <bit mask="0x0100" name="fEncrypted"
                description="Specifies whether the document is encrypted or obfuscated as specified in Encryption and Obfuscation"/>
            <bit mask="0x0200" name="fWhichTblStm"
                description="Specifies the Table stream to which the FIB refers. When this value is set to 1, use 1Table; when this value is set to 0, use 0Table."/>
            <bit mask="0x0400" name="fReadOnlyRecommended"
                description="Specifies whether the document author recommended that the document be opened in read-only mode"/>
            <bit mask="0x0800" name="fWriteReservation"
                description="Specifies whether the document has a write-reservation password"/>
            <bit mask="0x1000" name="fExtChar" description="This value MUST be 1"/>
            <bit mask="0x2000" name="fLoadOverride"
                description="Specifies whether to override the language information and font that are specified in the paragraph style at istd 0 (the normal style) with the defaults that are appropriate for the installation language of the application"/>
            <bit mask="0x4000" name="fFarEast"
                description="Specifies whether the installation language of the application that created the document was an East Asian language"/>
            <bit mask="0x8000" name="fObfuscated"
                description="If fEncrypted is 1, this bit specifies whether the document is obfuscated by using XOR obfuscation; otherwise, this bit MUST be ignored"/>
        </field>
        <field type="int" size="2" name="nFibBack"
            description="This value SHOULD be 0x00BF. This value MUST be 0x00BF or 0x00C1"/>
        <field type="int" size="4" name="lKey"
            description="If fEncryption is 1 and fObfuscation is 1, this value specifies the XOR obfuscation password verifier. If fEncryption is 1 and fObfuscation is 0, this value specifies the size of the EncryptionHeader that is stored at the beginning of the Table stream as described in Encryption and Obfuscation. Otherwise, this value MUST be 0"/>
        <field type="byte" size="1" name="envr" deprecated="true"
            description="This value MUST be 0, and MUST be ignored"/>
        <field type="byte" size="1" name="flags2">
            <bit mask="0x01" name="fMac" deprecated="true" description="This value MUST be 0, and MUST be ignored"/>
            <bit mask="0x02" name="fEmptySpecial" deprecated="true"
                description="This value SHOULD be 0 and SHOULD be ignored"/>
            <bit mask="0x04" name="fLoadOverridePage"
                description="Specifies whether to override the section properties for page size, orientation, and margins with the defaults that are appropriate for the installation language of the application"/>
            <bit mask="0x08" name="reserved1" deprecated="true"
                description="This value is undefined and MUST be ignored"/>
            <bit mask="0x10" name="reserved2" deprecated="true"
                description="This value is undefined and MUST be ignored"/>
            <bit mask="0xFE" name="fSpare0" deprecated="true"
                description="This value is undefined and MUST be ignored"/>
        </field>
        <field type="short" size="2" name="Chs" deprecated="true"
            description="This value MUST be 0 and MUST be ignored"/>
        <field type="short" size="2" name="chsTables" deprecated="true"
            description="This value MUST be 0 and MUST be ignored"/>
        <field type="int" size="4" name="fcMin" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
        <field type="int" size="4" name="fcMac" deprecated="true"
            description="This value is undefined and MUST be ignored"/>
    </fields>

</record>
