anchor.diff:      data_type: Integer;   (* best guess about the data type: ascii or binary *)
       adler: LongInt;       (* adler32 value of the uncompressed data *)
       reserved: LongInt;    (* reserved for future use *)
  +  end;
  +
  +  gz_headerp = ^gz_header;
  +  gz_header = packed record
  +    text: Integer;        (* true if compressed data believed to be text *)
  +    time: LongInt;        (* modification time *)
  +    xflags: Integer;      (* extra flags (not used when writing a gzip file) *)
  +    os: Integer;          (* operating system *)
  +    extra: PChar;         (* pointer to extra field or Z_NULL if none *)
  +    extra_len: Integer;   (* extra field length (valid if extra != Z_NULL) *)
  +    extra_max: Integer;   (* space at extra (only when reading header) *)
  +    name: PChar;          (* pointer to zero-terminated file name or Z_NULL *)
  +    name_max: Integer;    (* space at name (only when reading header) *)
  +    comment: PChar;       (* pointer to zero-terminated comment or Z_NULL *)
  +    comm_max: Integer;    (* space at comment (only when reading header) *)
  +    hcrc: Integer;        (* true if there was or will be a header crc *)
  +    done: Integer;        (* true when done reading gzip header *)
     end;
   
   (* constants *)
  
positive.code: {$L zutil.obj}
  
  function adler32; external;
  function compress; external;
  function compress2; external;
  function compressBound; external;
  function crc32; external;
  function deflate; external;
  function deflateBound; external;
  function deflateCopy; external;
  
negative.code: 
  const
    ZLIB_VERSION = '1.2.6';
    ZLIB_VERNUM  = $1260;
  
  type
    alloc_func = function(opaque: Pointer; items, size: Integer): Pointer;
  