/*
 * This file is auto-generated, do not modify!
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#pragma once
#include <fu-input-stream.h>
/**
 * FuZipCompression:
 */
typedef enum {
    /**
     * FU_ZIP_COMPRESSION_NONE:
     */
    FU_ZIP_COMPRESSION_NONE = 0,
    /**
     * FU_ZIP_COMPRESSION_SHRUNK:
     */
    FU_ZIP_COMPRESSION_SHRUNK = 1,
    /**
     * FU_ZIP_COMPRESSION_IMPLODE:
     */
    FU_ZIP_COMPRESSION_IMPLODE = 6,
    /**
     * FU_ZIP_COMPRESSION_TOKENIZE:
     */
    FU_ZIP_COMPRESSION_TOKENIZE = 7,
    /**
     * FU_ZIP_COMPRESSION_DEFLATE:
     */
    FU_ZIP_COMPRESSION_DEFLATE = 8,
    /**
     * FU_ZIP_COMPRESSION_DEFLATE64:
     */
    FU_ZIP_COMPRESSION_DEFLATE64 = 9,
    /**
     * FU_ZIP_COMPRESSION_BZIP2:
     */
    FU_ZIP_COMPRESSION_BZIP2 = 12,
    /**
     * FU_ZIP_COMPRESSION_LZMA:
     */
    FU_ZIP_COMPRESSION_LZMA = 14,
    /**
     * FU_ZIP_COMPRESSION_TERSE:
     */
    FU_ZIP_COMPRESSION_TERSE = 18,
    /**
     * FU_ZIP_COMPRESSION_ZSTANDARD:
     */
    FU_ZIP_COMPRESSION_ZSTANDARD = 93,
    /**
     * FU_ZIP_COMPRESSION_XZ:
     */
    FU_ZIP_COMPRESSION_XZ = 95,
}  FuZipCompression;
const gchar *fu_zip_compression_to_string(FuZipCompression val) G_GNUC_CONST;
FuZipCompression fu_zip_compression_from_string(const gchar *val) G_GNUC_CONST G_GNUC_NON_NULL(1);
/**
 * FuZipFlags:
 */
typedef enum {
    /**
     * FU_ZIP_FLAG_NONE:
     */
    FU_ZIP_FLAG_NONE = 0,
    /**
     * FU_ZIP_FLAG_ENCRYPTED:
     */
    FU_ZIP_FLAG_ENCRYPTED = 1 << 0,
    /**
     * FU_ZIP_FLAG_DEFLATE_HI:
     */
    FU_ZIP_FLAG_DEFLATE_HI = 1 << 1,
    /**
     * FU_ZIP_FLAG_DEFLATE_LO:
     */
    FU_ZIP_FLAG_DEFLATE_LO = 1 << 2,
    /**
     * FU_ZIP_FLAG_DATA_DESCRIPTOR:
     */
    FU_ZIP_FLAG_DATA_DESCRIPTOR = 1 << 3,
    /**
     * FU_ZIP_FLAG_COMPRESSED_PATCHED:
     */
    FU_ZIP_FLAG_COMPRESSED_PATCHED = 1 << 5,
} G_GNUC_FLAG_ENUM FuZipFlags;
/**
 * FuZipExtraHeaderId:
 */
typedef enum {
    /**
     * FU_ZIP_EXTRA_HEADER_ID_NONE:
     */
    FU_ZIP_EXTRA_HEADER_ID_NONE = 0,
    /**
     * FU_ZIP_EXTRA_HEADER_ID_EXTENDED_TIMESTAMP:
     */
    FU_ZIP_EXTRA_HEADER_ID_EXTENDED_TIMESTAMP = 0x5455,
    /**
     * FU_ZIP_EXTRA_HEADER_ID_INFO_ZIP_UNIX:
     */
    FU_ZIP_EXTRA_HEADER_ID_INFO_ZIP_UNIX = 0x7855,
    /**
     * FU_ZIP_EXTRA_HEADER_ID_INFO_ZIP_UNIX_UID_GID:
     */
    FU_ZIP_EXTRA_HEADER_ID_INFO_ZIP_UNIX_UID_GID = 0x7875,
}  FuZipExtraHeaderId;
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructZipExtraHdr;

FuStructZipExtraHdr *fu_struct_zip_extra_hdr_ref(FuStructZipExtraHdr *st) G_GNUC_NON_NULL(1);
void fu_struct_zip_extra_hdr_unref(FuStructZipExtraHdr *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructZipExtraHdr, fu_struct_zip_extra_hdr_unref)
FuStructZipExtraHdr *fu_struct_zip_extra_hdr_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructZipExtraHdr *fu_struct_zip_extra_hdr_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuZipExtraHeaderId fu_struct_zip_extra_hdr_get_header_id(const FuStructZipExtraHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_extra_hdr_get_datasz(const FuStructZipExtraHdr *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_zip_extra_hdr_set_header_id(FuStructZipExtraHdr *st, FuZipExtraHeaderId value) G_GNUC_NON_NULL(1);
void fu_struct_zip_extra_hdr_set_datasz(FuStructZipExtraHdr *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_EXTRA_HDR_OFFSET_HEADER_ID 0x0
#define FU_STRUCT_ZIP_EXTRA_HDR_OFFSET_DATASZ 0x2
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_EXTRA_HDR_SIZE 0x4
#endif

#ifndef __GI_SCANNER__
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructZipCdfh;

FuStructZipCdfh *fu_struct_zip_cdfh_ref(FuStructZipCdfh *st) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_unref(FuStructZipCdfh *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructZipCdfh, fu_struct_zip_cdfh_unref)
FuStructZipCdfh *fu_struct_zip_cdfh_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructZipCdfh *fu_struct_zip_cdfh_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_version_generated(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_version_extract(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuZipFlags fu_struct_zip_cdfh_get_flags(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuZipCompression fu_struct_zip_cdfh_get_compression(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_file_time(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_file_date(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_cdfh_get_uncompressed_crc(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_cdfh_get_compressed_size(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_cdfh_get_uncompressed_size(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_filename_size(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_extra_size(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_comment_size(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_disk_number(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_cdfh_get_internal_attrs(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_cdfh_get_external_attrs(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_cdfh_get_offset_lfh(const FuStructZipCdfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_zip_cdfh_set_version_generated(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_version_extract(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_flags(FuStructZipCdfh *st, FuZipFlags value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_compression(FuStructZipCdfh *st, FuZipCompression value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_file_time(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_file_date(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_uncompressed_crc(FuStructZipCdfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_compressed_size(FuStructZipCdfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_uncompressed_size(FuStructZipCdfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_filename_size(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_extra_size(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_comment_size(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_disk_number(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_internal_attrs(FuStructZipCdfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_external_attrs(FuStructZipCdfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_cdfh_set_offset_lfh(FuStructZipCdfh *st, guint32 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_CDFH_OFFSET_MAGIC 0x0
#define FU_STRUCT_ZIP_CDFH_OFFSET_VERSION_GENERATED 0x4
#define FU_STRUCT_ZIP_CDFH_OFFSET_VERSION_EXTRACT 0x6
#define FU_STRUCT_ZIP_CDFH_OFFSET_FLAGS 0x8
#define FU_STRUCT_ZIP_CDFH_OFFSET_COMPRESSION 0xA
#define FU_STRUCT_ZIP_CDFH_OFFSET_FILE_TIME 0xC
#define FU_STRUCT_ZIP_CDFH_OFFSET_FILE_DATE 0xE
#define FU_STRUCT_ZIP_CDFH_OFFSET_UNCOMPRESSED_CRC 0x10
#define FU_STRUCT_ZIP_CDFH_OFFSET_COMPRESSED_SIZE 0x14
#define FU_STRUCT_ZIP_CDFH_OFFSET_UNCOMPRESSED_SIZE 0x18
#define FU_STRUCT_ZIP_CDFH_OFFSET_FILENAME_SIZE 0x1C
#define FU_STRUCT_ZIP_CDFH_OFFSET_EXTRA_SIZE 0x1E
#define FU_STRUCT_ZIP_CDFH_OFFSET_COMMENT_SIZE 0x20
#define FU_STRUCT_ZIP_CDFH_OFFSET_DISK_NUMBER 0x22
#define FU_STRUCT_ZIP_CDFH_OFFSET_INTERNAL_ATTRS 0x24
#define FU_STRUCT_ZIP_CDFH_OFFSET_EXTERNAL_ATTRS 0x26
#define FU_STRUCT_ZIP_CDFH_OFFSET_OFFSET_LFH 0x2A
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_CDFH_SIZE_MAGIC 0x4
#define FU_STRUCT_ZIP_CDFH_N_ELEMENTS_MAGIC 4
#define FU_STRUCT_ZIP_CDFH_SIZE 0x2E
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_CDFH_DEFAULT_MAGIC "PK\x01\x02"
#define FU_STRUCT_ZIP_CDFH_DEFAULT_VERSION_GENERATED 0xA
#define FU_STRUCT_ZIP_CDFH_DEFAULT_VERSION_EXTRACT 0xA
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructZipEocd;

FuStructZipEocd *fu_struct_zip_eocd_ref(FuStructZipEocd *st) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_unref(FuStructZipEocd *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructZipEocd, fu_struct_zip_eocd_unref)
FuStructZipEocd *fu_struct_zip_eocd_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructZipEocd *fu_struct_zip_eocd_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_eocd_get_disk_number(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_eocd_get_cd_disk(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_eocd_get_cd_number_disk(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_eocd_get_cd_number(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_eocd_get_cd_size(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_eocd_get_cd_offset(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_eocd_get_comment_size(const FuStructZipEocd *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_zip_eocd_set_disk_number(FuStructZipEocd *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_cd_disk(FuStructZipEocd *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_cd_number_disk(FuStructZipEocd *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_cd_number(FuStructZipEocd *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_cd_size(FuStructZipEocd *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_cd_offset(FuStructZipEocd *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_eocd_set_comment_size(FuStructZipEocd *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_EOCD_OFFSET_MAGIC 0x0
#define FU_STRUCT_ZIP_EOCD_OFFSET_DISK_NUMBER 0x4
#define FU_STRUCT_ZIP_EOCD_OFFSET_CD_DISK 0x6
#define FU_STRUCT_ZIP_EOCD_OFFSET_CD_NUMBER_DISK 0x8
#define FU_STRUCT_ZIP_EOCD_OFFSET_CD_NUMBER 0xA
#define FU_STRUCT_ZIP_EOCD_OFFSET_CD_SIZE 0xC
#define FU_STRUCT_ZIP_EOCD_OFFSET_CD_OFFSET 0x10
#define FU_STRUCT_ZIP_EOCD_OFFSET_COMMENT_SIZE 0x14
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_EOCD_SIZE_MAGIC 0x4
#define FU_STRUCT_ZIP_EOCD_N_ELEMENTS_MAGIC 4
#define FU_STRUCT_ZIP_EOCD_SIZE 0x16
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_EOCD_DEFAULT_MAGIC "PK\x05\x06"
#endif
typedef struct {
  GByteArray *buf;
  guint refcount;
} FuStructZipLfh;

FuStructZipLfh *fu_struct_zip_lfh_ref(FuStructZipLfh *st) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_unref(FuStructZipLfh *st) G_GNUC_NON_NULL(1);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(FuStructZipLfh, fu_struct_zip_lfh_unref)
FuStructZipLfh *fu_struct_zip_lfh_new(void) G_GNUC_WARN_UNUSED_RESULT;
FuStructZipLfh *fu_struct_zip_lfh_parse_stream(GInputStream *stream, gsize offset, GError **error) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_lfh_get_version_extract(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuZipFlags fu_struct_zip_lfh_get_flags(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
FuZipCompression fu_struct_zip_lfh_get_compression(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_lfh_get_file_time(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_lfh_get_file_date(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_lfh_get_uncompressed_crc(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_lfh_get_compressed_size(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint32 fu_struct_zip_lfh_get_uncompressed_size(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_lfh_get_filename_size(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
guint16 fu_struct_zip_lfh_get_extra_size(const FuStructZipLfh *st) G_GNUC_NON_NULL(1) G_GNUC_WARN_UNUSED_RESULT;
void fu_struct_zip_lfh_set_version_extract(FuStructZipLfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_flags(FuStructZipLfh *st, FuZipFlags value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_compression(FuStructZipLfh *st, FuZipCompression value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_file_time(FuStructZipLfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_file_date(FuStructZipLfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_uncompressed_crc(FuStructZipLfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_compressed_size(FuStructZipLfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_uncompressed_size(FuStructZipLfh *st, guint32 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_filename_size(FuStructZipLfh *st, guint16 value) G_GNUC_NON_NULL(1);
void fu_struct_zip_lfh_set_extra_size(FuStructZipLfh *st, guint16 value) G_GNUC_NON_NULL(1);

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_LFH_OFFSET_MAGIC 0x0
#define FU_STRUCT_ZIP_LFH_OFFSET_VERSION_EXTRACT 0x4
#define FU_STRUCT_ZIP_LFH_OFFSET_FLAGS 0x6
#define FU_STRUCT_ZIP_LFH_OFFSET_COMPRESSION 0x8
#define FU_STRUCT_ZIP_LFH_OFFSET_FILE_TIME 0xA
#define FU_STRUCT_ZIP_LFH_OFFSET_FILE_DATE 0xC
#define FU_STRUCT_ZIP_LFH_OFFSET_UNCOMPRESSED_CRC 0xE
#define FU_STRUCT_ZIP_LFH_OFFSET_COMPRESSED_SIZE 0x12
#define FU_STRUCT_ZIP_LFH_OFFSET_UNCOMPRESSED_SIZE 0x16
#define FU_STRUCT_ZIP_LFH_OFFSET_FILENAME_SIZE 0x1A
#define FU_STRUCT_ZIP_LFH_OFFSET_EXTRA_SIZE 0x1C
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_LFH_SIZE_MAGIC 0x4
#define FU_STRUCT_ZIP_LFH_N_ELEMENTS_MAGIC 4
#define FU_STRUCT_ZIP_LFH_SIZE 0x1E
#endif

#ifndef __GI_SCANNER__
#define FU_STRUCT_ZIP_LFH_DEFAULT_MAGIC "PK\x03\x04"
#define FU_STRUCT_ZIP_LFH_DEFAULT_VERSION_EXTRACT 0xA
#endif
