<?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="FibRgLw95" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <description>The FibRgLw95 structure is the third section of the FIB for Word95.
    </description>
    <author>Sergey Vladimirov
    </author>
    <fields>
        <field type="int" size="4" name="cbMac"/>

        <field type="int" size="4" name="reserved1" deprecated="true"/>
        <field type="int" size="4" name="reserved2" deprecated="true"/>
        <field type="int" size="4" name="reserved3" deprecated="true"/>
        <field type="int" size="4" name="reserved4" deprecated="true"/>

        <field type="int" size="4" name="ccpText"/>
        <field type="int" size="4" name="ccpFtn"/>
        <field type="int" size="4" name="ccpHdd"/>
        <field type="int" size="4" name="ccpMcr"/>
        <field type="int" size="4" name="ccpAtn"/>
        <field type="int" size="4" name="ccpEdn"/>
        <field type="int" size="4" name="ccpTxbx"/>
        <field type="int" size="4" name="ccpHdrTxbx"/>

        <field type="int" size="4" name="reserved5" deprecated="true"/>
    </fields>
</record>
