public OneNoteHeader deserializeHeader() throws IOException, TikaException {
        OneNoteHeader data = new OneNoteHeader();
        data.setGuidFileType(deserializeGUID()).setGuidFile(deserializeGUID())
                .setGuidLegacyFileVersion(deserializeGUID()).setGuidFileFormat(deserializeGUID())
                .setFfvLastCodeThatWroteToThisFile(deserializeLittleEndianInt())
                .setFfvOldestCodeThatHasWrittenToThisFile(deserializeLittleEndianInt())
                .setFfvNewestCodeThatHasWrittenToThisFile(deserializeLittleEndianInt())
                .setFfvOldestCodeThatMayReadThisFile(deserializeLittleEndianInt())
                .setFcrLegacyFreeChunkList(deserializeFileChunkReference64())
                .setFcrLegacyTransactionLog(deserializeFileChunkReference64())
                .setcTransactionsInLog(deserializeLittleEndianInt())
                .setCbExpectedFileLength(deserializeLittleEndianInt())
                .setRgbPlaceholder(deserializeLittleEndianLong())
                .setFcrLegacyFileNodeListRoot(deserializeFileChunkReference64())
                .setCbLegacyFreeSpaceInFreeChunkList(deserializeLittleEndianInt())
                .setIgnoredZeroA(deserializeLittleEndianChar())
                .setIgnoredZeroB(deserializeLittleEndianChar())
                .setIgnoredZeroC(deserializeLittleEndianChar())
                .setIgnoredZeroD(deserializeLittleEndianChar()).setGuidAncestor(deserializeGUID())
                .setCrcName(deserializeLittleEndianInt())
                .setFcrHashedChunkList(deserializeFileChunkReference64x32())
                .setFcrTransactionLog(deserializeFileChunkReference64x32())
                .setFcrFileNodeListRoot(deserializeFileChunkReference64x32())
                .setFcrFreeChunkList(deserializeFileChunkReference64x32())
                .setCbExpectedFileLength(deserializeLittleEndianLong())
                .setCbFreeSpaceInFreeChunkList(deserializeLittleEndianLong())
                .setGuidFileVersion(deserializeGUID())
                .setnFileVersionGeneration(deserializeLittleEndianLong())
                .setGuidDenyReadFileVersion(deserializeGUID())
                .setGrfDebugLogFlags(deserializeLittleEndianInt())
                .setFcrDebugLogA(deserializeFileChunkReference64x32())
                .setFcrDebugLogB(deserializeFileChunkReference64x32())
                .setBuildNumberCreated(deserializeLittleEndianInt())
                .setBuildNumberLastWroteToFile(deserializeLittleEndianInt())
                .setBuildNumberOldestWritten(deserializeLittleEndianInt())
                .setBuildNumberNewestWritten(deserializeLittleEndianInt());
        if (data.getGuidFileFormat().toString().equals(PACKAGE_STORAGE_FILE_FORMAT_GUID)) {
            return data.setLegacyOrAlternativePackaging(true);
        }
        ByteBuffer reservedBytesAtEndOfHeader =
                ByteBuffer.allocate(NUM_RESERVED_BYTES_AT_END_OF_HEADER);
        deserializeBytes(reservedBytesAtEndOfHeader);
        return data;
    }
This is the main class used during parsing. This will contain an offset position and end
position for reading bytes from the byte stream.
<p>
It contains all the deserialize methods used to read the different data elements from a one
note file.
<p>
You can construct a new one note pointer and it will reposition the byte channel and will
read until
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNotePtr.java