This file describes the structure of an szip file

Global header block:
4 byte magic: SZ\012\004
1 byte version mayor needed for decoding
1 byte version minor needed for decoding

this block is followed by directory/data blocks.

2 byte magic: BH
3 byte length of uncompressed data on block

then follows the directory information:
filename as \0 terminated string  (empty string indicates end)
owner as \0 terminated string (empty is same as last file)
group as \0 terminated string (empty is same as last file)
3 byte filelength in this block
2 byte access flags
4 byte creation time (like in unix)
4 byte modification time (like in unix)
4 byte access time (like in unix)
(continue with next filename or \0)


if the filelengths sum up to less than the uncompressed data
in this block the remainder is a continuation of the last file.
The initial last file is standardinput.

binary data, compressed content of the file.
the first byte indicates the compression method.

3 byte size of this directory/data block %0x1000000
This can be used to backlink from the end of file and get a fast
content overview.


Any directory/data block is decompressable alone.

Note that szip files can be concatenated, this has the same effect as
concatenating the files. this also means that global header blocks
might be present between directory/data blocks.
