From 41e90653fe35242291f248a66f1da70e62965d1d Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 30 Jul 2019 17:17:07 -0700 Subject: [PATCH 001/163] zstd: Don't use utime on Linux utime is deprecated by POSIX 2008 and optionally not available with uClibc-ng. Got rid of a few useless headers in timefn.h. Signed-off-by: Rosen Penev --- programs/platform.h | 2 +- programs/timefn.h | 6 ------ programs/util.c | 10 ++++++++++ programs/util.h | 7 ++++++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/programs/platform.h b/programs/platform.h index 38ded8727..5934e59cf 100644 --- a/programs/platform.h +++ b/programs/platform.h @@ -92,7 +92,7 @@ extern "C" { # if defined(__linux__) || defined(__linux) # ifndef _POSIX_C_SOURCE -# define _POSIX_C_SOURCE 200112L /* feature test macro : https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html */ +# define _POSIX_C_SOURCE 200809L /* feature test macro : https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html */ # endif # endif # include /* declares _POSIX_VERSION */ diff --git a/programs/timefn.h b/programs/timefn.h index d1ddd31b1..2db3765b9 100644 --- a/programs/timefn.h +++ b/programs/timefn.h @@ -19,12 +19,6 @@ extern "C" { /*-**************************************** * Dependencies ******************************************/ -#include /* utime */ -#if defined(_MSC_VER) -# include /* utime */ -#else -# include /* utime */ -#endif #include /* clock_t, clock, CLOCKS_PER_SEC */ diff --git a/programs/util.c b/programs/util.c index fb77d1783..3a2c0a9d7 100644 --- a/programs/util.c +++ b/programs/util.c @@ -54,14 +54,24 @@ int UTIL_getFileStat(const char* infilename, stat_t *statbuf) int UTIL_setFileStat(const char *filename, stat_t *statbuf) { int res = 0; +#if defined(_WIN32) || (PLATFORM_POSIX_VERSION < 200809L) struct utimbuf timebuf; +#else + struct timespec timebuf[2] = {}; +#endif if (!UTIL_isRegularFile(filename)) return -1; +#if defined(_WIN32) || (PLATFORM_POSIX_VERSION < 200809L) timebuf.actime = time(NULL); timebuf.modtime = statbuf->st_mtime; res += utime(filename, &timebuf); /* set access and modification times */ +#else + timebuf[0].tv_nsec = UTIME_NOW; + timebuf[1].tv_sec = statbuf->st_mtime; + res += utimensat(AT_FDCWD, filename, timebuf, 0); /* set access and modification times */ +#endif #if !defined(_WIN32) res += chown(filename, statbuf->st_uid, statbuf->st_gid); /* Copy ownership */ diff --git a/programs/util.h b/programs/util.h index d6e5bb550..0080b63c7 100644 --- a/programs/util.h +++ b/programs/util.h @@ -25,12 +25,17 @@ extern "C" { #include /* fprintf */ #include /* stat, utime */ #include /* stat, chmod */ -#if defined(_MSC_VER) +#if defined(_WIN32) # include /* utime */ # include /* _chmod */ #else # include /* chown, stat */ +#if PLATFORM_POSIX_VERSION < 200809L # include /* utime */ +#else +# include /* AT_FDCWD */ +# include /* utimensat */ +#endif #endif #include /* clock_t, clock, CLOCKS_PER_SEC, nanosleep */ #include "mem.h" /* U32, U64 */ From ff6c81d90cdf070bcedc77015f7c17ac07f74020 Mon Sep 17 00:00:00 2001 From: Conrad Meyer Date: Thu, 8 Aug 2019 14:16:36 -0700 Subject: [PATCH 002/163] Fix the build on GCC 4.x after 812e8f2a1 The ancient GCC 4.x doesn't understand the "optimize" attribute until 4.4. Fix the build on platforms with GCC 4.x < 4.4 by limiting the DONT_VECTORIZE definition to GCC 5 and greater. Noticed and patch proposed by Warner Losh . --- lib/common/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/common/compiler.h b/lib/common/compiler.h index 87bf51ae8..d18179582 100644 --- a/lib/common/compiler.h +++ b/lib/common/compiler.h @@ -128,7 +128,7 @@ } /* vectorization */ -#if !defined(__clang__) && defined(__GNUC__) +#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 5 # define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) #else # define DONT_VECTORIZE From 782bfb858afb88f014271f8efbb7bef909cee6db Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Thu, 15 Aug 2019 16:41:34 +0200 Subject: [PATCH 003/163] fixed very minor inefficiency (nbSeq==127) The nbSeq "short" format (1-byte) is compatible with any value < 128. However, the code would cautiously only accept values < 127. This is not an error, because the general 2-bytes format is compatible with small values < 128. Hence the inefficiency never triggered any warning. Spotted by Intel's Smita Kumar. --- lib/compress/zstd_compress.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index cd73db13b..b4ae4e877 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -1981,12 +1981,17 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr, /* Sequences Header */ RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, dstSize_tooSmall); - if (nbSeq < 0x7F) + if (nbSeq < 128) { *op++ = (BYTE)nbSeq; - else if (nbSeq < LONGNBSEQ) - op[0] = (BYTE)((nbSeq>>8) + 0x80), op[1] = (BYTE)nbSeq, op+=2; - else - op[0]=0xFF, MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)), op+=3; + } else if (nbSeq < LONGNBSEQ) { + op[0] = (BYTE)((nbSeq>>8) + 0x80); + op[1] = (BYTE)nbSeq; + op+=2; + } else { + op[0]=0xFF; + MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)); + op+=3; + } assert(op <= oend); if (nbSeq==0) { /* Copy the old tables over as if we repeated them */ From b81d7cc6a070ec67d9d511ad96c0fe0ab98f81e9 Mon Sep 17 00:00:00 2001 From: Ed Maste Date: Thu, 15 Aug 2019 21:17:06 -0400 Subject: [PATCH 004/163] remove extraneous doubled ;s --- lib/dictBuilder/zdict.c | 2 +- programs/dibio.c | 2 +- tests/fuzzer.c | 6 +++--- tests/zbufftest.c | 4 ++-- tests/zstreamtest.c | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/dictBuilder/zdict.c b/lib/dictBuilder/zdict.c index ee21ee1a9..4a263d822 100644 --- a/lib/dictBuilder/zdict.c +++ b/lib/dictBuilder/zdict.c @@ -571,7 +571,7 @@ static void ZDICT_fillNoise(void* buffer, size_t length) unsigned const prime1 = 2654435761U; unsigned const prime2 = 2246822519U; unsigned acc = prime1; - size_t p=0;; + size_t p=0; for (p=0; p> 21); diff --git a/programs/dibio.c b/programs/dibio.c index 12eb32680..ea4bb4bf1 100644 --- a/programs/dibio.c +++ b/programs/dibio.c @@ -201,7 +201,7 @@ static void DiB_fillNoise(void* buffer, size_t length) unsigned const prime1 = 2654435761U; unsigned const prime2 = 2246822519U; unsigned acc = prime1; - size_t p=0;; + size_t p=0; for (p=0; p Date: Fri, 16 Aug 2019 15:13:42 +0200 Subject: [PATCH 005/163] clarifications on the meaning of field `Block_Size` following comments from Intel's Smita Kumar. --- doc/zstd_compression_format.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/doc/zstd_compression_format.md b/doc/zstd_compression_format.md index 7d02426a5..39a8f1776 100644 --- a/doc/zstd_compression_format.md +++ b/doc/zstd_compression_format.md @@ -16,7 +16,7 @@ Distribution of this document is unlimited. ### Version -0.3.2 (17/07/19) +0.3.3 (16/08/19) Introduction @@ -358,6 +358,7 @@ It may be followed by an optional `Content_Checksum` __`Block_Type`__ The next 2 bits represent the `Block_Type`. +`Block_Type` influences the meaning of `Block_Size`. There are 4 block types : | Value | 0 | 1 | 2 | 3 | @@ -384,9 +385,12 @@ There are 4 block types : __`Block_Size`__ The upper 21 bits of `Block_Header` represent the `Block_Size`. -`Block_Size` is the size of the block excluding the header. -A block can contain any number of bytes (even zero), up to -`Block_Maximum_Decompressed_Size`, which is the smallest of: +When `Block_Type` is `Compressed_Block` or `Raw_Block`, +`Block_Size` is the size of `Block_Content`, hence excluding `Block_Header`. +When `Block_Type` is `RLE_Block`, `Block_Content`’s size is always 1, +and `Block_Size` represents the nb of times this byte must be repeated. +A block can contain and decompress into any number of bytes (even zero), +up to `Block_Maximum_Decompressed_Size`, which is the smallest of: - Window_Size - 128 KB @@ -1653,6 +1657,7 @@ or at least provide a meaningful error code explaining for which reason it canno Version changes --------------- +- 0.3.3 : clarifications for field Block_Size - 0.3.2 : remove additional block size restriction on compressed blocks - 0.3.1 : minor clarification regarding offset history update rules - 0.3.0 : minor edits to match RFC8478 From af0c9501d120ff83a7e0871a0b18ad7237813a8c Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Thu, 15 Aug 2019 23:57:55 -0700 Subject: [PATCH 006/163] Add --stream-size=# command --- programs/fileio.c | 21 +++++++++++++++++++-- programs/fileio.h | 1 + programs/zstdcli.c | 6 +++++- tests/playTests.sh | 22 +++++++++++++++++++++- 4 files changed, 46 insertions(+), 4 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index 569a410c1..82d70075b 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -304,6 +304,7 @@ struct FIO_prefs_s { int ldmMinMatch; int ldmBucketSizeLog; int ldmHashRateLog; + size_t streamSrcSize; size_t targetCBlockSize; ZSTD_literalCompressionMode_e literalCompressionMode; @@ -349,6 +350,7 @@ FIO_prefs_t* FIO_createPreferences(void) ret->ldmMinMatch = 0; ret->ldmBucketSizeLog = FIO_LDM_PARAM_NOTSET; ret->ldmHashRateLog = FIO_LDM_PARAM_NOTSET; + ret->streamSrcSize = 0; ret->targetCBlockSize = 0; ret->literalCompressionMode = ZSTD_lcm_auto; return ret; @@ -418,6 +420,10 @@ void FIO_setRsyncable(FIO_prefs_t* const prefs, int rsyncable) { prefs->rsyncable = rsyncable; } +void FIO_setStreamSrcSize(FIO_prefs_t* const prefs, size_t streamSrcSize) { + prefs->streamSrcSize = streamSrcSize; +} + void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize) { prefs->targetCBlockSize = targetCBlockSize; } @@ -698,9 +704,20 @@ static cRess_t FIO_createCResources(FIO_prefs_t* const prefs, CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_rsyncable, prefs->rsyncable) ); #endif /* dictionary */ - CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, srcSize) ); /* set the value temporarily for dictionary loading, to adapt compression parameters */ + /* set the pledged size for dictionary loading, to adapt compression parameters */ + if (srcSize == ZSTD_CONTENTSIZE_UNKNOWN && prefs->streamSrcSize > 0) { + /* unknown source size; use the declared stream size and disable writing this size to frame during compression */ + CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, prefs->streamSrcSize) ); + CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_contentSizeFlag, 0) ); + } else { + /* use the known source size for adaption */ + CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, srcSize) ); + } CHECK( ZSTD_CCtx_loadDictionary(ress.cctx, dictBuffer, dictBuffSize) ); - CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, ZSTD_CONTENTSIZE_UNKNOWN) ); /* reset */ + if (srcSize != ZSTD_CONTENTSIZE_UNKNOWN || prefs->streamSrcSize == 0) { + /* reset pledge when src size is known or stream size is declared */ + CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, ZSTD_CONTENTSIZE_UNKNOWN) ); + } free(dictBuffer); } diff --git a/programs/fileio.h b/programs/fileio.h index 311f8c0e1..13f6f1d05 100644 --- a/programs/fileio.h +++ b/programs/fileio.h @@ -71,6 +71,7 @@ void FIO_setOverlapLog(FIO_prefs_t* const prefs, int overlapLog); void FIO_setRemoveSrcFile(FIO_prefs_t* const prefs, unsigned flag); void FIO_setSparseWrite(FIO_prefs_t* const prefs, unsigned sparse); /**< 0: no sparse; 1: disable on stdout; 2: always enabled */ void FIO_setRsyncable(FIO_prefs_t* const prefs, int rsyncable); +void FIO_setStreamSrcSize(FIO_prefs_t* const prefs, size_t streamSrcSize); void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize); void FIO_setLiteralCompressionMode( FIO_prefs_t* const prefs, diff --git a/programs/zstdcli.c b/programs/zstdcli.c index de286cdf2..401e1ee2c 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -141,6 +141,7 @@ static int usage_advanced(const char* programName) DISPLAY( "--long[=#]: enable long distance matching with given window log (default: %u)\n", g_defaultMaxWindowLog); DISPLAY( "--fast[=#]: switch to ultra fast compression level (default: %u)\n", 1); DISPLAY( "--adapt : dynamically adapt compression level to I/O conditions \n"); + DISPLAY( "--stream-size=# : optimize compression parameters for streaming input of given number of bytes \n"); DISPLAY( "--target-compressed-block-size=# : make compressed block near targeted size \n"); #ifdef ZSTD_MULTITHREAD DISPLAY( " -T# : spawns # compression threads (default: 1, 0==# cores) \n"); @@ -588,6 +589,7 @@ int main(int argCount, const char* argv[]) const char* suffix = ZSTD_EXTENSION; unsigned maxDictSize = g_defaultMaxDictSize; unsigned dictID = 0; + size_t streamSrcSize = 0; size_t targetCBlockSize = 0; int dictCLevel = g_defaultDictCLevel; unsigned dictSelect = g_defaultSelectivityLevel; @@ -745,6 +747,7 @@ int main(int argCount, const char* argv[]) if (longCommandWArg(&argument, "--maxdict=")) { maxDictSize = readU32FromChar(&argument); continue; } if (longCommandWArg(&argument, "--dictID=")) { dictID = readU32FromChar(&argument); continue; } if (longCommandWArg(&argument, "--zstd=")) { if (!parseCompressionParameters(argument, &compressionParams)) CLEAN_RETURN(badusage(programName)); continue; } + if (longCommandWArg(&argument, "--stream-size=")) { streamSrcSize = readU32FromChar(&argument); continue; } if (longCommandWArg(&argument, "--target-compressed-block-size=")) { targetCBlockSize = readU32FromChar(&argument); continue; } if (longCommandWArg(&argument, "--long")) { unsigned ldmWindowLog = 0; @@ -1150,6 +1153,7 @@ int main(int argCount, const char* argv[]) FIO_setAdaptMin(prefs, adaptMin); FIO_setAdaptMax(prefs, adaptMax); FIO_setRsyncable(prefs, rsyncable); + FIO_setStreamSrcSize(prefs, streamSrcSize); FIO_setTargetCBlockSize(prefs, targetCBlockSize); FIO_setLiteralCompressionMode(prefs, literalCompressionMode); if (adaptMin > cLevel) cLevel = adaptMin; @@ -1160,7 +1164,7 @@ int main(int argCount, const char* argv[]) else operationResult = FIO_compressMultipleFilenames(prefs, filenameTable, filenameIdx, outFileName, suffix, dictFileName, cLevel, compressionParams); #else - (void)suffix; (void)adapt; (void)rsyncable; (void)ultra; (void)cLevel; (void)ldmFlag; (void)literalCompressionMode; (void)targetCBlockSize; /* not used when ZSTD_NOCOMPRESS set */ + (void)suffix; (void)adapt; (void)rsyncable; (void)ultra; (void)cLevel; (void)ldmFlag; (void)literalCompressionMode; (void)streamSrcSize; (void)targetCBlockSize; /* not used when ZSTD_NOCOMPRESS set */ DISPLAY("Compression not supported \n"); #endif } else { /* decompression or test */ diff --git a/tests/playTests.sh b/tests/playTests.sh index 69387321f..431a53a18 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -108,7 +108,6 @@ else fi - println "\n===> simple tests " ./datagen > tmp @@ -1020,4 +1019,25 @@ test -f dictionary rm -f tmp* dictionary +println "\n===> stream-size mode" + +./datagen -g11000 > tmp +println "test : basic file compression vs sized streaming compression" +$ZSTD -14 -f tmp -o tmp.zst |& tee file.out +cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11000 |& tee stream_sized.out + +file_ratio=$(cat file.out | awk '{print $4}' | sed 's/%//g') +stream_sized_ratio=$(cat stream_sized.out | awk '{print $4}' | sed 's/%//g') +rm file.out stream_sized.out + +ratio_diff=$(echo $file_ratio - $stream_sized_ratio | bc) +if [ $(echo "(100 * $ratio_diff) > 5" | bc -l) == 1 ] +then + die "greater than 0.05% difference between file and sized-streaming compression" +fi + +println "test : incorrect stream size" +cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11001 && die "should fail with incorrect stream size" + + rm -f tmp* From 85d07c6c474abc8f16b069332fbaba3054819d14 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Fri, 16 Aug 2019 12:49:21 -0700 Subject: [PATCH 007/163] Tweak stdout, stderr redirection in new playTests --- tests/playTests.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/playTests.sh b/tests/playTests.sh index 431a53a18..c516aa712 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -1023,8 +1023,8 @@ println "\n===> stream-size mode" ./datagen -g11000 > tmp println "test : basic file compression vs sized streaming compression" -$ZSTD -14 -f tmp -o tmp.zst |& tee file.out -cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11000 |& tee stream_sized.out +$ZSTD -14 -f tmp -o tmp.zst 2>&1 | tee file.out +cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11000 2>&1 | tee stream_sized.out file_ratio=$(cat file.out | awk '{print $4}' | sed 's/%//g') stream_sized_ratio=$(cat stream_sized.out | awk '{print $4}' | sed 's/%//g') @@ -1035,7 +1035,10 @@ if [ $(echo "(100 * $ratio_diff) > 5" | bc -l) == 1 ] then die "greater than 0.05% difference between file and sized-streaming compression" fi - +println "test : sized streaming compression and decompression" +cat tmp | $ZSTD -14 -f tmp -o --stream-size=11000 tmp.zst +$ZSTD -df tmp.zst -o tmp_decompress +cmp tmp tmp_decompress || die "difference between original and decompressed file" println "test : incorrect stream size" cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11001 && die "should fail with incorrect stream size" From 97bb38635c0616ab024af0a71b3d115fcbc4382a Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Sat, 17 Aug 2019 08:04:42 +0200 Subject: [PATCH 008/163] `number` instead of `nb` suggested by @terrelln --- doc/zstd_compression_format.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/zstd_compression_format.md b/doc/zstd_compression_format.md index 39a8f1776..111dd98ae 100644 --- a/doc/zstd_compression_format.md +++ b/doc/zstd_compression_format.md @@ -388,7 +388,7 @@ The upper 21 bits of `Block_Header` represent the `Block_Size`. When `Block_Type` is `Compressed_Block` or `Raw_Block`, `Block_Size` is the size of `Block_Content`, hence excluding `Block_Header`. When `Block_Type` is `RLE_Block`, `Block_Content`’s size is always 1, -and `Block_Size` represents the nb of times this byte must be repeated. +and `Block_Size` represents the number of times this byte must be repeated. A block can contain and decompress into any number of bytes (even zero), up to `Block_Maximum_Decompressed_Size`, which is the smallest of: - Window_Size From c403b12f9dbab9ba3ab30fca6e1ce3c31d2f8923 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 09:01:31 -0700 Subject: [PATCH 009/163] Set pledged size just before compression --- programs/fileio.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index 82d70075b..75b271a8f 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -704,21 +704,7 @@ static cRess_t FIO_createCResources(FIO_prefs_t* const prefs, CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_rsyncable, prefs->rsyncable) ); #endif /* dictionary */ - /* set the pledged size for dictionary loading, to adapt compression parameters */ - if (srcSize == ZSTD_CONTENTSIZE_UNKNOWN && prefs->streamSrcSize > 0) { - /* unknown source size; use the declared stream size and disable writing this size to frame during compression */ - CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, prefs->streamSrcSize) ); - CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_contentSizeFlag, 0) ); - } else { - /* use the known source size for adaption */ - CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, srcSize) ); - } CHECK( ZSTD_CCtx_loadDictionary(ress.cctx, dictBuffer, dictBuffSize) ); - if (srcSize != ZSTD_CONTENTSIZE_UNKNOWN || prefs->streamSrcSize == 0) { - /* reset pledge when src size is known or stream size is declared */ - CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, ZSTD_CONTENTSIZE_UNKNOWN) ); - } - free(dictBuffer); } @@ -1020,6 +1006,10 @@ FIO_compressZstdFrame(FIO_prefs_t* const prefs, /* init */ if (fileSize != UTIL_FILESIZE_UNKNOWN) { CHECK(ZSTD_CCtx_setPledgedSrcSize(ress.cctx, fileSize)); + } else if (prefs->streamSrcSize > 0) { + /* unknown source size; use the declared stream size and disable writing this size to frame during compression */ + CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, prefs->streamSrcSize) ); + CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_contentSizeFlag, 0) ); } (void)srcFileName; From bbd83c2ab34dc498a63ff10e869e26fbe1e221a4 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 09:11:22 -0700 Subject: [PATCH 010/163] Update man page --- programs/zstd.1.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/programs/zstd.1.md b/programs/zstd.1.md index 3ab2667a0..e3f729282 100644 --- a/programs/zstd.1.md +++ b/programs/zstd.1.md @@ -152,6 +152,12 @@ the last one takes effect. This feature does not work with `--single-thread`. You probably don't want to use it with long range mode, since it will decrease the effectiveness of the synchronization points, but your milage may vary. +* `--stream-size` : + When handling input from a stream, `zstd` must guess how large the source size + will be when optimizing compression parameters. If the stream size is relatively + small, this guess may be a poor one, resulting in a higher compression ratio than + expected. This feature will set the source size of a stream. Note that it must + be exact; incorrect stream sizes will cause an error. * `-D file`: use `file` as Dictionary to compress or decompress FILE(s) * `--no-dictID`: From f781cf672bfd23dd467a6dcf08ba094180032c76 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 11:07:43 -0700 Subject: [PATCH 011/163] Remove extraneous parameter --- programs/fileio.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index 75b271a8f..f5ecf7296 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -639,7 +639,6 @@ typedef struct { static cRess_t FIO_createCResources(FIO_prefs_t* const prefs, const char* dictFileName, int cLevel, - U64 srcSize, ZSTD_compressionParameters comprParams) { cRess_t ress; memset(&ress, 0, sizeof(ress)); @@ -1371,7 +1370,7 @@ int FIO_compressFilename(FIO_prefs_t* const prefs, U64 const fileSize = UTIL_getFileSize(srcFileName); U64 const srcSize = (fileSize == UTIL_FILESIZE_UNKNOWN) ? ZSTD_CONTENTSIZE_UNKNOWN : fileSize; - cRess_t const ress = FIO_createCResources(prefs, dictFileName, compressionLevel, srcSize, comprParams); + cRess_t const ress = FIO_createCResources(prefs, dictFileName, compressionLevel, comprParams); int const result = FIO_compressFilename_srcFile(prefs, ress, dstFileName, srcFileName, compressionLevel); @@ -1424,8 +1423,7 @@ int FIO_compressMultipleFilenames(FIO_prefs_t* const prefs, int error = 0; U64 const firstFileSize = UTIL_getFileSize(inFileNamesTable[0]); U64 const firstSrcSize = (firstFileSize == UTIL_FILESIZE_UNKNOWN) ? ZSTD_CONTENTSIZE_UNKNOWN : firstFileSize; - U64 const srcSize = (nbFiles != 1) ? ZSTD_CONTENTSIZE_UNKNOWN : firstSrcSize ; - cRess_t ress = FIO_createCResources(prefs, dictFileName, compressionLevel, srcSize, comprParams); + cRess_t ress = FIO_createCResources(prefs, dictFileName, compressionLevel, comprParams); /* init */ assert(outFileName != NULL || suffix != NULL); From a24dc3a935a43ef8088711afadece9b94ae59a27 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 11:14:56 -0700 Subject: [PATCH 012/163] Remove extraneous variables --- programs/fileio.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index f5ecf7296..5492f9448 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1367,9 +1367,6 @@ int FIO_compressFilename(FIO_prefs_t* const prefs, const char* dictFileName, int compressionLevel, ZSTD_compressionParameters comprParams) { - U64 const fileSize = UTIL_getFileSize(srcFileName); - U64 const srcSize = (fileSize == UTIL_FILESIZE_UNKNOWN) ? ZSTD_CONTENTSIZE_UNKNOWN : fileSize; - cRess_t const ress = FIO_createCResources(prefs, dictFileName, compressionLevel, comprParams); int const result = FIO_compressFilename_srcFile(prefs, ress, dstFileName, srcFileName, compressionLevel); @@ -1421,8 +1418,6 @@ int FIO_compressMultipleFilenames(FIO_prefs_t* const prefs, ZSTD_compressionParameters comprParams) { int error = 0; - U64 const firstFileSize = UTIL_getFileSize(inFileNamesTable[0]); - U64 const firstSrcSize = (firstFileSize == UTIL_FILESIZE_UNKNOWN) ? ZSTD_CONTENTSIZE_UNKNOWN : firstFileSize; cRess_t ress = FIO_createCResources(prefs, dictFileName, compressionLevel, comprParams); /* init */ From 30bfa228e84500855e80e792f7de796257d99ab3 Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 11:20:28 -0700 Subject: [PATCH 013/163] Keep content size flag set in stream size mode --- programs/fileio.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/programs/fileio.c b/programs/fileio.c index 5492f9448..873013a51 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1006,9 +1006,8 @@ FIO_compressZstdFrame(FIO_prefs_t* const prefs, if (fileSize != UTIL_FILESIZE_UNKNOWN) { CHECK(ZSTD_CCtx_setPledgedSrcSize(ress.cctx, fileSize)); } else if (prefs->streamSrcSize > 0) { - /* unknown source size; use the declared stream size and disable writing this size to frame during compression */ + /* unknown source size; use the declared stream size */ CHECK( ZSTD_CCtx_setPledgedSrcSize(ress.cctx, prefs->streamSrcSize) ); - CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_contentSizeFlag, 0) ); } (void)srcFileName; From dffbac5f89dc83106ad5c8a18202a83ff0f37f3b Mon Sep 17 00:00:00 2001 From: Nick Magerko Date: Mon, 19 Aug 2019 08:52:08 -0700 Subject: [PATCH 014/163] Add --size-hint=# option --- doc/zstd_manual.html | 162 +++++++++++++------------- lib/compress/zstd_compress.c | 21 +++- lib/compress/zstd_compress_internal.h | 3 + lib/zstd.h | 8 ++ programs/fileio.c | 8 ++ programs/fileio.h | 1 + programs/zstdcli.c | 6 +- tests/playTests.sh | 28 +++++ 8 files changed, 155 insertions(+), 82 deletions(-) diff --git a/doc/zstd_manual.html b/doc/zstd_manual.html index 26b204e14..806920a5f 100644 --- a/doc/zstd_manual.html +++ b/doc/zstd_manual.html @@ -76,7 +76,7 @@

Compresses `src` content as a single zstd compressed frame into already allocated `dst`. Hint : compression runs faster if `dstCapacity` >= `ZSTD_compressBound(srcSize)`. @return : compressed size written into `dst` (<= `dstCapacity), - or an error code if it fails (which can be tested using ZSTD_isError()). + or an error code if it fails (which can be tested using ZSTD_isError()).


size_t ZSTD_decompress( void* dst, size_t dstCapacity,
@@ -85,7 +85,7 @@
   `dstCapacity` is an upper bound of originalSize to regenerate.
   If user cannot imply a maximum upper bound, it's better to use streaming mode to decompress data.
   @return : the number of bytes decompressed into `dst` (<= `dstCapacity`),
-            or an errorCode if it fails (which can be tested using ZSTD_isError()). 
+            or an errorCode if it fails (which can be tested using ZSTD_isError()).
 


#define ZSTD_CONTENTSIZE_UNKNOWN (0ULL - 1)
@@ -112,7 +112,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
    note 5 : If source is untrusted, decompressed size could be wrong or intentionally modified.
             Always ensure return value fits within application's authorized limits.
             Each application can set its own limits.
-   note 6 : This function replaces ZSTD_getDecompressedSize() 
+   note 6 : This function replaces ZSTD_getDecompressedSize()
 


unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize);
@@ -120,7 +120,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
   Both functions work the same way, but ZSTD_getDecompressedSize() blends
   "empty", "unknown" and "error" results to the same return value (0),
   while ZSTD_getFrameContentSize() gives them separate return values.
- @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise. 
+ @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise.
 


size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize);
@@ -128,7 +128,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
  `srcSize` must be >= first frame size
  @return : the compressed size of the first frame starting at `src`,
            suitable to pass as `srcSize` to `ZSTD_decompress` or similar,
-        or an error code if input is invalid 
+        or an error code if input is invalid
 


Helper functions

#define ZSTD_COMPRESSBOUND(srcSize)   ((srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0))  /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
@@ -148,7 +148,7 @@ int         ZSTD_maxCLevel(void);               /*!< maximum compression lev
          It doesn't change the compression ratio, which remains identical.
   Note 2 : In multi-threaded environments,
          use one different context per thread for parallel execution.
- 
+
 
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
 ZSTD_CCtx* ZSTD_createCCtx(void);
 size_t     ZSTD_freeCCtx(ZSTD_CCtx* cctx);
@@ -159,14 +159,14 @@ size_t     ZSTD_freeCCtx(ZSTD_CCtx* cctx);
                          int compressionLevel);
 

Same as ZSTD_compress(), using an explicit ZSTD_CCtx The function will compress at requested compression level, - ignoring any other parameter + ignoring any other parameter


Decompression context

  When decompressing many times,
   it is recommended to allocate a context only once,
   and re-use it for each successive compression operation.
   This will make workload friendlier for system's memory.
-  Use one context per thread for parallel execution. 
+  Use one context per thread for parallel execution.
 
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
 ZSTD_DCtx* ZSTD_createDCtx(void);
 size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
@@ -177,7 +177,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
 

Same as ZSTD_decompress(), requires an allocated ZSTD_DCtx. Compatible with sticky parameters. - +


Advanced compression API


@@ -324,6 +324,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
      * ZSTD_c_forceAttachDict
      * ZSTD_c_literalCompressionMode
      * ZSTD_c_targetCBlockSize
+     * ZSTD_c_srcSizeHint
      * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
      * note : never ever use experimentalParam? names directly;
      *        also, the enums values themselves are unstable and can still change.
@@ -334,6 +335,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
      ZSTD_c_experimentalParam4=1001,
      ZSTD_c_experimentalParam5=1002,
      ZSTD_c_experimentalParam6=1003,
+     ZSTD_c_experimentalParam7=1004,
 } ZSTD_cParameter;
 

typedef struct {
@@ -348,7 +350,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
  @return : a structure, ZSTD_bounds, which contains
          - an error status field, which must be tested using ZSTD_isError()
          - lower and upper bounds, both inclusive
- 
+
 


size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value);
@@ -361,7 +363,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
               => compressionLevel, hashLog, chainLog, searchLog, minMatch, targetLength and strategy.
               new parameters will be active for next job only (after a flush()).
  @return : an error code (which can be tested using ZSTD_isError()).
- 
+
 


size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize);
@@ -378,7 +380,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
            for example with ZSTD_compress2(),
            or invoking immediately ZSTD_compressStream2(,,,ZSTD_e_end),
            this value is automatically overridden by srcSize instead.
- 
+
 


typedef enum {
@@ -400,7 +402,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
                   Parameters can only be changed between 2 sessions (i.e. no compression is currently ongoing)
                   otherwise the reset fails, and function returns an error value (which can be tested using ZSTD_isError())
   - Both : similar to resetting the session, followed by resetting parameters.
- 
+
 


size_t ZSTD_compress2( ZSTD_CCtx* cctx,
@@ -414,7 +416,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Hint : compression runs faster if `dstCapacity` >=  `ZSTD_compressBound(srcSize)`.
  @return : compressed size written into `dst` (<= `dstCapacity),
            or an error code if it fails (which can be tested using ZSTD_isError()).
- 
+
 


Advanced decompression API


@@ -445,7 +447,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
  @return : a structure, ZSTD_bounds, which contains
          - an error status field, which must be tested using ZSTD_isError()
          - both lower and upper bounds, inclusive
- 
+
 


size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int value);
@@ -454,7 +456,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Providing a value beyond bound will either clamp it, or trigger an error (depending on parameter).
   Setting a parameter is only possible during frame initialization (before starting decompression).
  @return : 0, or an error code (which can be tested using ZSTD_isError()).
- 
+
 


size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset);
@@ -462,7 +464,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Session and parameters can be reset jointly or separately.
   Parameters can only be reset when no active frame is being decompressed.
  @return : 0, or an error code, which can be tested with ZSTD_isError()
- 
+
 


Streaming


@@ -536,7 +538,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
             >0 if some data still present within internal buffer (the value is minimal estimation of remaining size),
             or an error code, which can be tested using ZSTD_isError().
 
- 
+
 
typedef ZSTD_CCtx ZSTD_CStream;  /**< CCtx and CStream are now effectively same object (>= v1.3.0) */
@@ -580,7 +582,7 @@ size_t ZSTD_freeCStream(ZSTD_CStream* zcs);
             only ZSTD_e_end or ZSTD_e_flush operations are allowed.
             Before starting a new compression job, or changing compression parameters,
             it is required to fully flush internal buffers.
- 
+
 


size_t ZSTD_CStreamInSize(void);    /**< recommended size for input buffer */
@@ -603,7 +605,7 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
      ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
      ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any)
      ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel);
- 
+
 


Streaming decompression - HowTo

@@ -629,7 +631,7 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
         or any other value > 0, which means there is still some decoding or flushing to do to complete current frame :
                                 the return value is a suggested next input size (just a hint for better latency)
                                 that will never request more than the remaining frame size.
- 
+
 
typedef ZSTD_DCtx ZSTD_DStream;  /**< DCtx and DStream are now effectively same object (>= v1.3.0) */
@@ -654,7 +656,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   or a buffer with specified information (see dictBuilder/zdict.h).
   Note : This function loads the dictionary, resulting in significant startup delay.
          It's intended for a dictionary used only once.
-  Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used. 
+  Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used.
 


size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
@@ -665,7 +667,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   Dictionary must be identical to the one used during compression.
   Note : This function loads the dictionary, resulting in significant startup delay.
          It's intended for a dictionary used only once.
-  Note : When `dict == NULL || dictSize < 8` no dictionary is used. 
+  Note : When `dict == NULL || dictSize < 8` no dictionary is used.
 


Bulk processing dictionary API


@@ -677,11 +679,11 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   ZSTD_CDict can be created once and shared by multiple threads concurrently, since its usage is read-only.
  `dictBuffer` can be released after ZSTD_CDict creation, because its content is copied within CDict.
   Consider experimental function `ZSTD_createCDict_byReference()` if you prefer to not duplicate `dictBuffer` content.
-  Note : A ZSTD_CDict can be created from an empty dictBuffer, but it is inefficient when used to compress small data. 
+  Note : A ZSTD_CDict can be created from an empty dictBuffer, but it is inefficient when used to compress small data.
 


size_t      ZSTD_freeCDict(ZSTD_CDict* CDict);
-

Function frees memory allocated by ZSTD_createCDict(). +

Function frees memory allocated by ZSTD_createCDict().


size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx,
@@ -691,16 +693,16 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
 

Compression using a digested Dictionary. Recommended when same dictionary is used multiple times. Note : compression level is _decided at dictionary creation time_, - and frame parameters are hardcoded (dictID=yes, contentSize=yes, checksum=no) + and frame parameters are hardcoded (dictID=yes, contentSize=yes, checksum=no)


ZSTD_DDict* ZSTD_createDDict(const void* dictBuffer, size_t dictSize);
 

Create a digested dictionary, ready to start decompression operation without startup delay. - dictBuffer can be released after DDict creation, as its content is copied inside DDict. + dictBuffer can be released after DDict creation, as its content is copied inside DDict.


size_t      ZSTD_freeDDict(ZSTD_DDict* ddict);
-

Function frees memory allocated with ZSTD_createDDict() +

Function frees memory allocated with ZSTD_createDDict()


size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
@@ -708,7 +710,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
                             const void* src, size_t srcSize,
                             const ZSTD_DDict* ddict);
 

Decompression using a digested Dictionary. - Recommended when same dictionary is used multiple times. + Recommended when same dictionary is used multiple times.


Dictionary helper functions


@@ -716,13 +718,13 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
 
unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize);
 

Provides the dictID stored within dictionary. if @return == 0, the dictionary is not conformant with Zstandard specification. - It can still be loaded, but as a content-only dictionary. + It can still be loaded, but as a content-only dictionary.


unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict);
 

Provides the dictID of the dictionary loaded into `ddict`. If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. - Non-conformant dictionaries can still be loaded, but as content-only dictionaries. + Non-conformant dictionaries can still be loaded, but as content-only dictionaries.


unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize);
@@ -734,7 +736,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
     Note : this use case also happens when using a non-conformant dictionary.
   - `srcSize` is too small, and as a result, the frame header could not be decoded (only possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`).
   - This is not a Zstandard frame.
-  When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code. 
+  When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code.
 


Advanced dictionary and prefix API

@@ -760,7 +762,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use experimental ZSTD_CCtx_loadDictionary_byReference() to reference content instead.
            In such a case, dictionary buffer must outlive its users.
   Note 4 : Use ZSTD_CCtx_loadDictionary_advanced()
-           to precisely select how dictionary content must be interpreted. 
+           to precisely select how dictionary content must be interpreted.
 


size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict);
@@ -774,7 +776,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   Special : Referencing a NULL CDict means "return to no-dictionary mode".
   Note 1 : Currently, only one dictionary can be managed.
            Referencing a new dictionary effectively "discards" any previous one.
-  Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx. 
+  Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx.
 


size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx,
@@ -795,7 +797,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            It's a CPU consuming operation, with non-negligible impact on latency.
            If there is a need to use the same prefix multiple times, consider loadDictionary instead.
   Note 4 : By default, the prefix is interpreted as raw content (ZSTD_dm_rawContent).
-           Use experimental ZSTD_CCtx_refPrefix_advanced() to alter dictionary interpretation. 
+           Use experimental ZSTD_CCtx_refPrefix_advanced() to alter dictionary interpretation.
 


size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
@@ -812,7 +814,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use ZSTD_DCtx_loadDictionary_byReference() to reference dictionary content instead.
   Note 3 : Use ZSTD_DCtx_loadDictionary_advanced() to take control of
            how dictionary content is loaded and interpreted.
- 
+
 


size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
@@ -823,7 +825,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Referencing a new dictionary effectively "discards" any previous one.
   Special: referencing a NULL DDict means "return to no-dictionary mode".
   Note 2 : DDict is just referenced, its lifetime must outlive its usage from DCtx.
- 
+
 


size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx,
@@ -842,7 +844,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use ZSTD_CCtx_refPrefix_advanced() to alter dictMode (Experimental section)
   Note 4 : Referencing a raw content prefix has almost no cpu nor memory cost.
            A full dictionary is more costly, as it requires building tables.
- 
+
 


size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx);
@@ -852,7 +854,7 @@ size_t ZSTD_sizeof_DStream(const ZSTD_DStream* zds);
 size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict);
 size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 

These functions give the _current_ memory usage of selected object. - Note that object memory usage can evolve (increase or decrease) over time. + Note that object memory usage can evolve (increase or decrease) over time.


experimental API (static linking only)

@@ -861,7 +863,7 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
  They can still change in future versions.
  Some of them are planned to remain in the static_only section indefinitely.
  Some of them might be removed in the future (especially when redundant with existing stable functions)
- 
+
 
typedef struct {
@@ -975,7 +977,7 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
             Each application can set its own limits.
    note 5 : ZSTD_findDecompressedSize handles multiple frames, and so it must traverse the input to
             read each contained frame header.  This is fast as most of the data is skipped,
-            however it does mean that all frame data must be present and valid. 
+            however it does mean that all frame data must be present and valid.
 


unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize);
@@ -990,13 +992,13 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
             in this case, `ZSTD_findDecompressedSize` and `ZSTD_decompressBound` return the same value.
   note 3  : when the decompressed size field isn't available, the upper-bound for that frame is calculated by:
               upper-bound = # blocks * min(128 KB, Window_Size)
- 
+
 


size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize);
 

srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. @return : size of the Frame Header, - or an error code (if srcSize is too small) + or an error code (if srcSize is too small)


Memory management


@@ -1012,7 +1014,7 @@ size_t ZSTD_estimateDCtxSize(void);
   If srcSize is known to always be small, ZSTD_estimateCCtxSize_usingCParams() can provide a tighter estimation.
   ZSTD_estimateCCtxSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
   ZSTD_estimateCCtxSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1.
-  Note : CCtx size estimation is only correct for single-threaded compression. 
+  Note : CCtx size estimation is only correct for single-threaded compression.
 


size_t ZSTD_estimateCStreamSize(int compressionLevel);
@@ -1031,7 +1033,7 @@ size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize);
   or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame();
   Note : if streaming is init with function ZSTD_init?Stream_usingDict(),
          an internal ?Dict will be created, which additional size is not estimated here.
-         In this case, get total size by adding ZSTD_estimate?DictSize 
+         In this case, get total size by adding ZSTD_estimate?DictSize
 


size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel);
@@ -1040,7 +1042,7 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMet
 

ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller. - +


ZSTD_CCtx*    ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize);
@@ -1064,7 +1066,7 @@ ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize);
                  ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict().
   Limitation 2 : static cctx currently not compatible with multi-threading.
   Limitation 3 : static dctx is incompatible with legacy support.
- 
+
 


ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticDCtx() */
@@ -1076,7 +1078,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
 

These prototypes make it possible to pass your own allocation/free functions. ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. All allocation/free operations will be completed using these custom variants instead of regular ones. - +


Advanced compression functions


@@ -1085,22 +1087,22 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  
/**< t

Create a digested dictionary for compression Dictionary content is just referenced, not duplicated. As a consequence, `dictBuffer` **must** outlive CDict, - and its content must remain unmodified throughout the lifetime of CDict. + and its content must remain unmodified throughout the lifetime of CDict.


ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
 

@return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. - `estimatedSrcSize` value is optional, select 0 if not known + `estimatedSrcSize` value is optional, select 0 if not known


ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
 

same as ZSTD_getCParams(), but @return a full `ZSTD_parameters` object instead of sub-component `ZSTD_compressionParameters`. - All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0 + All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0


size_t ZSTD_checkCParams(ZSTD_compressionParameters params);
 

Ensure param values remain within authorized range. - @return 0 on success, or an error code (can be checked with ZSTD_isError()) + @return 0 on success, or an error code (can be checked with ZSTD_isError())


ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, unsigned long long srcSize, size_t dictSize);
@@ -1108,7 +1110,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
  `srcSize` can be unknown, in which case use ZSTD_CONTENTSIZE_UNKNOWN.
  `dictSize` must be `0` when there is no dictionary.
   cPar can be invalid : all parameters will be clamped within valid range in the @return struct.
-  This function never fails (wide contract) 
+  This function never fails (wide contract)
 


size_t ZSTD_compress_advanced(ZSTD_CCtx* cctx,
@@ -1116,7 +1118,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
                         const void* src, size_t srcSize,
                         const void* dict,size_t dictSize,
                               ZSTD_parameters params);
-

Same as ZSTD_compress_usingDict(), with fine-tune control over compression parameters (by structure) +

Same as ZSTD_compress_usingDict(), with fine-tune control over compression parameters (by structure)


size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,
@@ -1124,30 +1126,30 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
                             const void* src, size_t srcSize,
                             const ZSTD_CDict* cdict,
                                   ZSTD_frameParameters fParams);
-

Same as ZSTD_compress_usingCDict(), with fine-tune control over frame parameters +

Same as ZSTD_compress_usingCDict(), with fine-tune control over frame parameters


size_t ZSTD_CCtx_loadDictionary_byReference(ZSTD_CCtx* cctx, const void* dict, size_t dictSize);
 

Same as ZSTD_CCtx_loadDictionary(), but dictionary content is referenced, instead of being copied into CCtx. - It saves some memory, but also requires that `dict` outlives its usage within `cctx` + It saves some memory, but also requires that `dict` outlives its usage within `cctx`


size_t ZSTD_CCtx_loadDictionary_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_CCtx_loadDictionary(), but gives finer control over how to load the dictionary (by copy ? by reference ?) - and how to interpret it (automatic ? force raw mode ? full mode only ?) + and how to interpret it (automatic ? force raw mode ? full mode only ?)


size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_CCtx_refPrefix(), but gives finer control over - how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?)


size_t ZSTD_CCtx_getParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value);
 

Get the requested compression parameter value, selected by enum ZSTD_cParameter, and store it into int* value. @return : 0, or an error code (which can be tested with ZSTD_isError()). - +


ZSTD_CCtx_params* ZSTD_createCCtxParams(void);
@@ -1167,24 +1169,24 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
 
   This can be used with ZSTD_estimateCCtxSize_advanced_usingCCtxParams()
   for static allocation of CCtx for single-threaded compression.
- 
+
 


size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params);
 

Reset params to default values. - +


size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel);
 

Initializes the compression parameters of cctxParams according to compression level. All other parameters are reset to their default values. - +


size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params);
 

Initializes the compression and frame parameters of cctxParams according to params. All other parameters are reset to their default values. - +


size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value);
@@ -1192,14 +1194,14 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   Set one compression parameter, selected by enum ZSTD_cParameter.
   Parameters must be applied to a ZSTD_CCtx using ZSTD_CCtx_setParametersUsingCCtxParams().
  @result : 0, or an error code (which can be tested with ZSTD_isError()).
- 
+
 


size_t ZSTD_CCtxParams_getParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int* value);
 

Similar to ZSTD_CCtx_getParameter. Get the requested value of one compression parameter, selected by enum ZSTD_cParameter. @result : 0, or an error code (which can be tested with ZSTD_isError()). - +


size_t ZSTD_CCtx_setParametersUsingCCtxParams(
@@ -1209,7 +1211,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
     if nbWorkers==0, this will have no impact until a new compression is started.
     if nbWorkers>=1, new parameters will be picked up at next job,
        with a few restrictions (windowLog, pledgedSrcSize, nbWorkers, jobSize, and overlapLog are not updated).
- 
+
 


size_t ZSTD_compressStream2_simpleArgs (
@@ -1221,7 +1223,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   but using only integral types as arguments.
   This variant might be helpful for binders from dynamic languages
   which have troubles handling structures containing memory pointers.
- 
+
 


Advanced decompression functions


@@ -1230,33 +1232,33 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
 

Tells if the content of `buffer` starts with a valid Frame Identifier. Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. - Note 3 : Skippable Frame Identifiers are considered valid. + Note 3 : Skippable Frame Identifiers are considered valid.


ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize);
 

Create a digested dictionary, ready to start decompression operation without startup delay. Dictionary content is referenced, and therefore stays in dictBuffer. It is important that dictBuffer outlives DDict, - it must remain read accessible throughout the lifetime of DDict + it must remain read accessible throughout the lifetime of DDict


size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
 

Same as ZSTD_DCtx_loadDictionary(), but references `dict` content instead of copying it into `dctx`. This saves memory if `dict` remains around., - However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression. + However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression.


size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_DCtx_loadDictionary(), but gives direct control over how to load the dictionary (by copy ? by reference ?) - and how to interpret it (automatic ? force raw mode ? full mode only ?). + and how to interpret it (automatic ? force raw mode ? full mode only ?).


size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_DCtx_refPrefix(), but gives finer control over - how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?)


size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize);
@@ -1265,14 +1267,14 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode.
   By default, a decompression context accepts all window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT)
  @return : 0, or an error code (which can be tested using ZSTD_isError()).
- 
+
 


size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format);
 

Instruct the decoder context about what kind of data to decode next. This instruction is mandatory to decode data without a fully-formed header, such ZSTD_f_zstd1_magicless for example. - @return : 0, or an error code (which can be tested using ZSTD_isError()). + @return : 0, or an error code (which can be tested using ZSTD_isError()).


size_t ZSTD_decompressStream_simpleArgs (
@@ -1283,7 +1285,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   but using only integral types as arguments.
   This can be helpful for binders from dynamic languages
   which have troubles handling structures containing memory pointers.
- 
+
 


Advanced streaming functions

  Warning : most of these functions are now redundant with the Advanced API.
@@ -1361,7 +1363,7 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, const ZSTD_CDict*
   For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs,
   but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead.
  @return : 0, or an error code (which can be tested using ZSTD_isError())
- 
+
 


typedef struct {
@@ -1385,7 +1387,7 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, const ZSTD_CDict*
     but everything it has produced has also been flushed so far,
     therefore flush speed is limited by production speed of oldest job
     irrespective of the speed of concurrent (and newer) jobs.
- 
+
 


Advanced Streaming decompression functions

/**
@@ -1419,7 +1421,7 @@ size_t ZSTD_resetDStream(ZSTD_DStream* zds);
   This is an advanced API, giving full control over buffer management, for users which need direct control over memory.
   But it's also a complex one, with several restrictions, documented below.
   Prefer normal streaming API for an easier experience.
- 
+
 

Buffer-less streaming compression (synchronous mode)

@@ -1517,7 +1519,7 @@ size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned lo
   Note : it's possible to know if next input to present is a header or a block, using ZSTD_nextInputType().
   This information is not required to properly decode a frame.
 
-  == Special case : skippable frames 
+  == Special case : skippable frames
 
   Skippable frames allow integration of user-defined data into a flow of concatenated frames.
   Skippable frames will be ignored (skipped) by decompressor.
@@ -1549,7 +1551,7 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long
 

decode Frame Header, or requires larger `srcSize`. @return : 0, `zfhPtr` is correctly filled, >0, `srcSize` is too small, value is wanted `srcSize` amount, - or an error code, which can be tested using ZSTD_isError() + or an error code, which can be tested using ZSTD_isError()


typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e;
diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c
index cd73db13b..5589c323a 100644
--- a/lib/compress/zstd_compress.c
+++ b/lib/compress/zstd_compress.c
@@ -392,6 +392,11 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param)
         bounds.upperBound = ZSTD_TARGETCBLOCKSIZE_MAX;
         return bounds;
 
+    case ZSTD_c_srcSizeHint:
+        bounds.lowerBound = 0;
+        bounds.upperBound = ZSTD_SRCSIZEHINT_MAX;
+        return bounds;
+
     default:
         {   ZSTD_bounds const boundError = { ERROR(parameter_unsupported), 0, 0 };
             return boundError;
@@ -448,6 +453,7 @@ static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param)
     case ZSTD_c_forceAttachDict:
     case ZSTD_c_literalCompressionMode:
     case ZSTD_c_targetCBlockSize:
+    case ZSTD_c_srcSizeHint:
     default:
         return 0;
     }
@@ -494,6 +500,7 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value)
     case ZSTD_c_ldmMinMatch:
     case ZSTD_c_ldmBucketSizeLog:
     case ZSTD_c_targetCBlockSize:
+    case ZSTD_c_srcSizeHint:
         break;
 
     default: RETURN_ERROR(parameter_unsupported);
@@ -674,6 +681,12 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
         CCtxParams->targetCBlockSize = value;
         return CCtxParams->targetCBlockSize;
 
+    case ZSTD_c_srcSizeHint :
+        if (value!=0)    /* 0 ==> default */
+            BOUNDCHECK(ZSTD_c_srcSizeHint, value);
+        CCtxParams->srcSizeHint = value;
+        return CCtxParams->srcSizeHint;
+
     default: RETURN_ERROR(parameter_unsupported, "unknown parameter");
     }
 }
@@ -779,6 +792,8 @@ size_t ZSTD_CCtxParams_getParameter(
     case ZSTD_c_targetCBlockSize :
         *value = (int)CCtxParams->targetCBlockSize;
         break;
+    case ZSTD_c_srcSizeHint :
+        *value = (int)CCtxParams->srcSizeHint;
     default: RETURN_ERROR(parameter_unsupported, "unknown parameter");
     }
     return 0;
@@ -1029,7 +1044,11 @@ ZSTD_adjustCParams(ZSTD_compressionParameters cPar,
 ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams(
         const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize)
 {
-    ZSTD_compressionParameters cParams = ZSTD_getCParams(CCtxParams->compressionLevel, srcSizeHint, dictSize);
+    ZSTD_compressionParameters cParams;
+    if (srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN && CCtxParams->srcSizeHint > 0) {
+      srcSizeHint = CCtxParams->srcSizeHint;
+    }
+    cParams = ZSTD_getCParams(CCtxParams->compressionLevel, srcSizeHint, dictSize);
     if (CCtxParams->ldmParams.enableLdm) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG;
     if (CCtxParams->cParams.windowLog) cParams.windowLog = CCtxParams->cParams.windowLog;
     if (CCtxParams->cParams.hashLog) cParams.hashLog = CCtxParams->cParams.hashLog;
diff --git a/lib/compress/zstd_compress_internal.h b/lib/compress/zstd_compress_internal.h
index 6d623cc6b..0e4ec6b7d 100644
--- a/lib/compress/zstd_compress_internal.h
+++ b/lib/compress/zstd_compress_internal.h
@@ -203,6 +203,9 @@ struct ZSTD_CCtx_params_s {
     size_t targetCBlockSize;   /* Tries to fit compressed block size to be around targetCBlockSize.
                                 * No target when targetCBlockSize == 0.
                                 * There is no guarantee on compressed block size */
+    size_t srcSizeHint;        /* User's best guess of source size.
+                                * Hint is not valid when srcSizeHint == 0.
+                                * There is no guarantee that hint is close to actual source size */
 
     ZSTD_dictAttachPref_e attachDictPref;
     ZSTD_literalCompressionMode_e literalCompressionMode;
diff --git a/lib/zstd.h b/lib/zstd.h
index f8e95f228..4078f9c63 100644
--- a/lib/zstd.h
+++ b/lib/zstd.h
@@ -386,6 +386,7 @@ typedef enum {
      * ZSTD_c_forceAttachDict
      * ZSTD_c_literalCompressionMode
      * ZSTD_c_targetCBlockSize
+     * ZSTD_c_srcSizeHint
      * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
      * note : never ever use experimentalParam? names directly;
      *        also, the enums values themselves are unstable and can still change.
@@ -396,6 +397,7 @@ typedef enum {
      ZSTD_c_experimentalParam4=1001,
      ZSTD_c_experimentalParam5=1002,
      ZSTD_c_experimentalParam6=1003,
+     ZSTD_c_experimentalParam7=1004,
 } ZSTD_cParameter;
 
 typedef struct {
@@ -1063,6 +1065,7 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 /* Advanced parameter bounds */
 #define ZSTD_TARGETCBLOCKSIZE_MIN   64
 #define ZSTD_TARGETCBLOCKSIZE_MAX   ZSTD_BLOCKSIZE_MAX
+#define ZSTD_SRCSIZEHINT_MAX        1e9  /* 1 GB */
 
 /* internal */
 #define ZSTD_HASHLOG3_MAX           17
@@ -1441,6 +1444,11 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* pre
  * There is no guarantee on compressed block size (default:0) */
 #define ZSTD_c_targetCBlockSize ZSTD_c_experimentalParam6
 
+/* User's best guess of source size.
+ * Hint is not valid when srcSizeHint == 0.
+ * There is no guarantee that hint is close to actual source size */
+#define ZSTD_c_srcSizeHint ZSTD_c_experimentalParam7
+
 /*! ZSTD_CCtx_getParameter() :
  *  Get the requested compression parameter value, selected by enum ZSTD_cParameter,
  *  and store it into int* value.
diff --git a/programs/fileio.c b/programs/fileio.c
index 569a410c1..20543cd5e 100644
--- a/programs/fileio.c
+++ b/programs/fileio.c
@@ -305,6 +305,7 @@ struct FIO_prefs_s {
     int ldmBucketSizeLog;
     int ldmHashRateLog;
     size_t targetCBlockSize;
+    size_t srcSizeHint;
     ZSTD_literalCompressionMode_e literalCompressionMode;
 
     /* IO preferences */
@@ -350,6 +351,7 @@ FIO_prefs_t* FIO_createPreferences(void)
     ret->ldmBucketSizeLog = FIO_LDM_PARAM_NOTSET;
     ret->ldmHashRateLog = FIO_LDM_PARAM_NOTSET;
     ret->targetCBlockSize = 0;
+    ret->srcSizeHint = 0;
     ret->literalCompressionMode = ZSTD_lcm_auto;
     return ret;
 }
@@ -422,6 +424,10 @@ void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize)
     prefs->targetCBlockSize = targetCBlockSize;
 }
 
+void FIO_setSrcSizeHint(FIO_prefs_t* const prefs, size_t srcSizeHint) {
+    prefs->srcSizeHint = srcSizeHint;
+}
+
 void FIO_setLiteralCompressionMode(
         FIO_prefs_t* const prefs,
         ZSTD_literalCompressionMode_e mode) {
@@ -667,6 +673,8 @@ static cRess_t FIO_createCResources(FIO_prefs_t* const prefs,
         CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_compressionLevel, cLevel) );
         /* max compressed block size */
         CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_targetCBlockSize, (int)prefs->targetCBlockSize) );
+        /* source size hint */
+        CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_srcSizeHint, (int)prefs->srcSizeHint) );
         /* long distance matching */
         CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_enableLongDistanceMatching, prefs->ldmFlag) );
         CHECK( ZSTD_CCtx_setParameter(ress.cctx, ZSTD_c_ldmHashLog, prefs->ldmHashLog) );
diff --git a/programs/fileio.h b/programs/fileio.h
index 311f8c0e1..fd49a749d 100644
--- a/programs/fileio.h
+++ b/programs/fileio.h
@@ -72,6 +72,7 @@ void FIO_setRemoveSrcFile(FIO_prefs_t* const prefs, unsigned flag);
 void FIO_setSparseWrite(FIO_prefs_t* const prefs, unsigned sparse);  /**< 0: no sparse; 1: disable on stdout; 2: always enabled */
 void FIO_setRsyncable(FIO_prefs_t* const prefs, int rsyncable);
 void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize);
+void FIO_setSrcSizeHint(FIO_prefs_t* const prefs, size_t srcSizeHint);
 void FIO_setLiteralCompressionMode(
         FIO_prefs_t* const prefs,
         ZSTD_literalCompressionMode_e mode);
diff --git a/programs/zstdcli.c b/programs/zstdcli.c
index de286cdf2..98b9ffb90 100644
--- a/programs/zstdcli.c
+++ b/programs/zstdcli.c
@@ -141,6 +141,7 @@ static int usage_advanced(const char* programName)
     DISPLAY( "--long[=#]: enable long distance matching with given window log (default: %u)\n", g_defaultMaxWindowLog);
     DISPLAY( "--fast[=#]: switch to ultra fast compression level (default: %u)\n", 1);
     DISPLAY( "--adapt : dynamically adapt compression level to I/O conditions \n");
+    DISPLAY( "--size-hint=# optimize compression parameters for streaming input of approximately this size\n");
     DISPLAY( "--target-compressed-block-size=# : make compressed block near targeted size \n");
 #ifdef ZSTD_MULTITHREAD
     DISPLAY( " -T#    : spawns # compression threads (default: 1, 0==# cores) \n");
@@ -589,6 +590,7 @@ int main(int argCount, const char* argv[])
     unsigned maxDictSize = g_defaultMaxDictSize;
     unsigned dictID = 0;
     size_t targetCBlockSize = 0;
+    size_t srcSizeHint = 0;
     int dictCLevel = g_defaultDictCLevel;
     unsigned dictSelect = g_defaultSelectivityLevel;
 #ifdef UTIL_HAS_CREATEFILELIST
@@ -746,6 +748,7 @@ int main(int argCount, const char* argv[])
                     if (longCommandWArg(&argument, "--dictID=")) { dictID = readU32FromChar(&argument); continue; }
                     if (longCommandWArg(&argument, "--zstd=")) { if (!parseCompressionParameters(argument, &compressionParams)) CLEAN_RETURN(badusage(programName)); continue; }
                     if (longCommandWArg(&argument, "--target-compressed-block-size=")) { targetCBlockSize = readU32FromChar(&argument); continue; }
+                    if (longCommandWArg(&argument, "--size-hint=")) { srcSizeHint = readU32FromChar(&argument); continue; }
                     if (longCommandWArg(&argument, "--long")) {
                         unsigned ldmWindowLog = 0;
                         ldmFlag = 1;
@@ -1151,6 +1154,7 @@ int main(int argCount, const char* argv[])
         FIO_setAdaptMax(prefs, adaptMax);
         FIO_setRsyncable(prefs, rsyncable);
         FIO_setTargetCBlockSize(prefs, targetCBlockSize);
+        FIO_setSrcSizeHint(prefs, srcSizeHint);
         FIO_setLiteralCompressionMode(prefs, literalCompressionMode);
         if (adaptMin > cLevel) cLevel = adaptMin;
         if (adaptMax < cLevel) cLevel = adaptMax;
@@ -1160,7 +1164,7 @@ int main(int argCount, const char* argv[])
         else
           operationResult = FIO_compressMultipleFilenames(prefs, filenameTable, filenameIdx, outFileName, suffix, dictFileName, cLevel, compressionParams);
 #else
-        (void)suffix; (void)adapt; (void)rsyncable; (void)ultra; (void)cLevel; (void)ldmFlag; (void)literalCompressionMode; (void)targetCBlockSize; /* not used when ZSTD_NOCOMPRESS set */
+        (void)suffix; (void)adapt; (void)rsyncable; (void)ultra; (void)cLevel; (void)ldmFlag; (void)literalCompressionMode; (void)targetCBlockSize; (void)srcSizeHint; /* not used when ZSTD_NOCOMPRESS set */
         DISPLAY("Compression not supported \n");
 #endif
     } else {  /* decompression or test */
diff --git a/tests/playTests.sh b/tests/playTests.sh
index 69387321f..e3f4cac13 100755
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
@@ -409,6 +409,34 @@ println "compress multiple files including a missing one (notHere) : "
 $ZSTD -f tmp1 notHere tmp2 && die "missing file not detected!"
 
 
+println "\n===>  size-hint mode"
+
+./datagen -g11000 > tmp
+println "test : basic file compression vs streaming compression vs hinted streaming compression"
+$ZSTD -14 -f tmp -o tmp.zst 2>&1 | tee file.out
+cat tmp | $ZSTD -14 -f -o tmp.zst  # only run for convenience of comparison
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11000 2>&1 | tee stream_sized.out
+
+file_ratio=$(cat file.out | awk '{print $4}' | sed 's/%//g')
+stream_sized_ratio=$(cat stream_sized.out | awk '{print $4}' | sed 's/%//g')
+rm file.out stream_sized.out
+
+ratio_diff=$(echo $stream_sized_ratio - $file_ratio | bc)
+if [ $(echo "(100 * $ratio_diff) > 1" | bc -l) -eq 1 ]
+then
+  die "hinted compression greater than 0.01% larger than file compression"
+fi
+println "test : hinted streaming compression and decompression"
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11000
+$ZSTD -df tmp.zst -o tmp_decompress
+cmp tmp tmp_decompress || die "difference between original and decompressed file"
+println "test : incorrect hinted stream sizes"
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11050  # slightly too high
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=10950  # slightly too low
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=22000  # considerably too high
+cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=5500   # considerably too low
+
+
 println "\n===>  dictionary tests "
 
 println "- test with raw dict (content only) "

From edf2abf1069325f24199cdcc9cf405ab46b4bff9 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 12:32:43 -0700
Subject: [PATCH 015/163] Fix fall-through case

---
 lib/compress/zstd_compress.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c
index 5589c323a..d4471c2b2 100644
--- a/lib/compress/zstd_compress.c
+++ b/lib/compress/zstd_compress.c
@@ -794,6 +794,7 @@ size_t ZSTD_CCtxParams_getParameter(
         break;
     case ZSTD_c_srcSizeHint :
         *value = (int)CCtxParams->srcSizeHint;
+        break;
     default: RETURN_ERROR(parameter_unsupported, "unknown parameter");
     }
     return 0;

From fee8fbcddffddc2d18b6d27a01449a4d1dc9d355 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 12:58:54 -0700
Subject: [PATCH 016/163] Make upper bound INT_MAX

---
 lib/zstd.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/zstd.h b/lib/zstd.h
index 4078f9c63..ee7871f12 100644
--- a/lib/zstd.h
+++ b/lib/zstd.h
@@ -15,6 +15,7 @@ extern "C" {
 #define ZSTD_H_235446
 
 /* ======   Dependency   ======*/
+#include    /* INT_MAX */
 #include    /* size_t */
 
 
@@ -1065,7 +1066,7 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 /* Advanced parameter bounds */
 #define ZSTD_TARGETCBLOCKSIZE_MIN   64
 #define ZSTD_TARGETCBLOCKSIZE_MAX   ZSTD_BLOCKSIZE_MAX
-#define ZSTD_SRCSIZEHINT_MAX        1e9  /* 1 GB */
+#define ZSTD_SRCSIZEHINT_MAX        INT_MAX
 
 /* internal */
 #define ZSTD_HASHLOG3_MAX           17

From 09894dc2ebd9c33ac87bf20f658fb82da09a2479 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 13:08:41 -0700
Subject: [PATCH 017/163] Add mention of regression with poor size hints

---
 lib/zstd.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/zstd.h b/lib/zstd.h
index ee7871f12..0fbe71ab8 100644
--- a/lib/zstd.h
+++ b/lib/zstd.h
@@ -1447,7 +1447,8 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* pre
 
 /* User's best guess of source size.
  * Hint is not valid when srcSizeHint == 0.
- * There is no guarantee that hint is close to actual source size */
+ * There is no guarantee that hint is close to actual source size,
+ * but compression ratio may regress significantly if guess considerably underestimates */
 #define ZSTD_c_srcSizeHint ZSTD_c_experimentalParam7
 
 /*! ZSTD_CCtx_getParameter() :

From ea9d35922cc48260f8603757a98f22938abaa52c Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 15:12:24 -0700
Subject: [PATCH 018/163] Add size-hint to fuzz tests

---
 tests/fuzz/zstd_helpers.c |  3 +++
 tests/zstreamtest.c       | 16 ++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/tests/fuzz/zstd_helpers.c b/tests/fuzz/zstd_helpers.c
index 9dff2895a..5d24a48c4 100644
--- a/tests/fuzz/zstd_helpers.c
+++ b/tests/fuzz/zstd_helpers.c
@@ -90,6 +90,9 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
     setRand(cctx, ZSTD_c_forceMaxWindow, 0, 1, state);
     setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, state);
     setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
+    if (FUZZ_rand32(state, 0, 1) == 0) {
+      setRand(cctx, ZSTD_c_srcSizeHint, 0, 2 * srcSize, state);
+    }
 }
 
 FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state)
diff --git a/tests/zstreamtest.c b/tests/zstreamtest.c
index 97d4e33e1..70326677c 100644
--- a/tests/zstreamtest.c
+++ b/tests/zstreamtest.c
@@ -1151,6 +1151,21 @@ static int basicUnitTests(U32 seed, double compressibility)
     }
     DISPLAYLEVEL(3, "OK \n");
 
+    DISPLAYLEVEL(3, "test%3i : ZSTD_c_srcSizeHint provides hint about size of stream : ", testNb++);
+    {
+      CHECK_Z( ZSTD_initCStream(zc, 1 /* cLevel */) );
+      outBuff.dst = (char*)(compressedBuffer);
+      outBuff.size = compressedBufferSize;
+      outBuff.pos = 0;
+      inBuff.src = CNBuffer;
+      inBuff.size = CNBufferSize;
+      inBuff.pos = 0;
+      CHECK_Z( ZSTD_compressStream(zc, &outBuff, &inBuff) );
+      if (inBuff.pos != inBuff.size) goto _output_error;   /* entire input should be consumed */
+      { size_t const r = ZSTD_endStream(zc, &outBuff);
+        if (r != 0) goto _output_error; }  /* error, or some data not flushed */
+    }
+
     /* Overlen overwriting window data bug */
     DISPLAYLEVEL(3, "test%3i : wildcopy doesn't overwrite potential match data : ", testNb++);
     {   /* This test has a window size of 1024 bytes and consists of 3 blocks:
@@ -2106,6 +2121,7 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmMinMatch, FUZ_randomClampedLength(&lseed, ZSTD_LDM_MINMATCH_MIN, ZSTD_LDM_MINMATCH_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmBucketSizeLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_BUCKETSIZELOG_MIN, ZSTD_LDM_BUCKETSIZELOG_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmHashRateLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_HASHRATELOG_MIN, ZSTD_LDM_HASHRATELOG_MAX), opaqueAPI) );
+                    if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_srcSizeHint, FUZ_randomClampedLength(&lseed, 0, ZSTD_ZSTD_SRCSIZEHINT_MAX), opaqueAPI) );
                 }
 
                 /* mess with frame parameters */

From f9af70ca8a060bb05a476562513cd488a942a3c5 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 16:48:35 -0700
Subject: [PATCH 019/163] Fix playTests and add additional cases

---
 tests/playTests.sh | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/tests/playTests.sh b/tests/playTests.sh
index e3f4cac13..2404ffb64 100755
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
@@ -412,29 +412,31 @@ $ZSTD -f tmp1 notHere tmp2 && die "missing file not detected!"
 println "\n===>  size-hint mode"
 
 ./datagen -g11000 > tmp
-println "test : basic file compression vs streaming compression vs hinted streaming compression"
-$ZSTD -14 -f tmp -o tmp.zst 2>&1 | tee file.out
-cat tmp | $ZSTD -14 -f -o tmp.zst  # only run for convenience of comparison
-cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11000 2>&1 | tee stream_sized.out
-
-file_ratio=$(cat file.out | awk '{print $4}' | sed 's/%//g')
-stream_sized_ratio=$(cat stream_sized.out | awk '{print $4}' | sed 's/%//g')
-rm file.out stream_sized.out
-
-ratio_diff=$(echo $stream_sized_ratio - $file_ratio | bc)
-if [ $(echo "(100 * $ratio_diff) > 1" | bc -l) -eq 1 ]
-then
-  die "hinted compression greater than 0.01% larger than file compression"
+./datagen -g11000 > tmp2
+./datagen > tmpDict
+println "test : basic file compression vs hinted streaming compression"
+file_size=$($ZSTD -14 -f tmp -o tmp.zst && wc -c < tmp.zst)
+stream_size=$(cat tmp | $ZSTD -14 --size-hint=11000 | wc -c)
+if [ "$stream_size" -ge "$file_size" ]; then
+  die "hinted compression larger than expected"
 fi
 println "test : hinted streaming compression and decompression"
 cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11000
 $ZSTD -df tmp.zst -o tmp_decompress
 cmp tmp tmp_decompress || die "difference between original and decompressed file"
+println "test : hinted streaming compression with dictionary"
+cat tmp | $ZSTD -14 -f -D tmpDict --size-hint=11000 | $ZSTD -t -D tmpDict
+println "test : multiple file compression with hints and dictionary"
+$ZSTD -14 -f -D tmpDict --size-hint=11000 tmp tmp2
+$ZSTD -14 -f -o tmp1_.zst -D tmpDict --size-hint=11000 tmp
+$ZSTD -14 -f -o tmp2_.zst -D tmpDict --size-hint=11000 tmp2
+cmp tmp.zst tmp1_.zst || die "first file's output differs"
+cmp tmp2.zst tmp2_.zst || die "second file's output differs"
 println "test : incorrect hinted stream sizes"
-cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=11050  # slightly too high
-cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=10950  # slightly too low
-cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=22000  # considerably too high
-cat tmp | $ZSTD -14 -f -o tmp.zst --size-hint=5500   # considerably too low
+cat tmp | $ZSTD -14 -f --size-hint=11050 | $ZSTD -t  # slightly too high
+cat tmp | $ZSTD -14 -f --size-hint=10950 | $ZSTD -t  # slightly too low
+cat tmp | $ZSTD -14 -f --size-hint=22000 | $ZSTD -t  # considerably too high
+cat tmp | $ZSTD -14 -f --size-hint=5500  | $ZSTD -t  # considerably too low
 
 
 println "\n===>  dictionary tests "

From 2d39b43906343cbe20d47d340a8518e5d6fdf6c8 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 16:49:25 -0700
Subject: [PATCH 020/163] Use int for srcSizeHint when sensible

---
 lib/compress/zstd_compress_internal.h | 2 +-
 programs/fileio.c                     | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/compress/zstd_compress_internal.h b/lib/compress/zstd_compress_internal.h
index 0e4ec6b7d..3e590ec37 100644
--- a/lib/compress/zstd_compress_internal.h
+++ b/lib/compress/zstd_compress_internal.h
@@ -203,7 +203,7 @@ struct ZSTD_CCtx_params_s {
     size_t targetCBlockSize;   /* Tries to fit compressed block size to be around targetCBlockSize.
                                 * No target when targetCBlockSize == 0.
                                 * There is no guarantee on compressed block size */
-    size_t srcSizeHint;        /* User's best guess of source size.
+    int srcSizeHint;           /* User's best guess of source size.
                                 * Hint is not valid when srcSizeHint == 0.
                                 * There is no guarantee that hint is close to actual source size */
 
diff --git a/programs/fileio.c b/programs/fileio.c
index 20543cd5e..0eda12649 100644
--- a/programs/fileio.c
+++ b/programs/fileio.c
@@ -30,6 +30,7 @@
 #include      /* strcmp, strlen */
 #include 
 #include       /* errno */
+#include      /* INT_MAX */
 #include 
 #include "timefn.h"     /* UTIL_getTime, UTIL_clockSpanMicro */
 
@@ -305,7 +306,7 @@ struct FIO_prefs_s {
     int ldmBucketSizeLog;
     int ldmHashRateLog;
     size_t targetCBlockSize;
-    size_t srcSizeHint;
+    int srcSizeHint;
     ZSTD_literalCompressionMode_e literalCompressionMode;
 
     /* IO preferences */
@@ -425,7 +426,7 @@ void FIO_setTargetCBlockSize(FIO_prefs_t* const prefs, size_t targetCBlockSize)
 }
 
 void FIO_setSrcSizeHint(FIO_prefs_t* const prefs, size_t srcSizeHint) {
-    prefs->srcSizeHint = srcSizeHint;
+    prefs->srcSizeHint = (int)MIN((size_t)INT_MAX, srcSizeHint);
 }
 
 void FIO_setLiteralCompressionMode(

From 83076ab277884702428d9ebad933d119928eaf3e Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 16:50:26 -0700
Subject: [PATCH 021/163] Revert change to zstd manual

---
 doc/zstd_manual.html | 162 +++++++++++++++++++++----------------------
 1 file changed, 80 insertions(+), 82 deletions(-)

diff --git a/doc/zstd_manual.html b/doc/zstd_manual.html
index 806920a5f..26b204e14 100644
--- a/doc/zstd_manual.html
+++ b/doc/zstd_manual.html
@@ -76,7 +76,7 @@
 

Compresses `src` content as a single zstd compressed frame into already allocated `dst`. Hint : compression runs faster if `dstCapacity` >= `ZSTD_compressBound(srcSize)`. @return : compressed size written into `dst` (<= `dstCapacity), - or an error code if it fails (which can be tested using ZSTD_isError()). + or an error code if it fails (which can be tested using ZSTD_isError()).


size_t ZSTD_decompress( void* dst, size_t dstCapacity,
@@ -85,7 +85,7 @@
   `dstCapacity` is an upper bound of originalSize to regenerate.
   If user cannot imply a maximum upper bound, it's better to use streaming mode to decompress data.
   @return : the number of bytes decompressed into `dst` (<= `dstCapacity`),
-            or an errorCode if it fails (which can be tested using ZSTD_isError()).
+            or an errorCode if it fails (which can be tested using ZSTD_isError()). 
 


#define ZSTD_CONTENTSIZE_UNKNOWN (0ULL - 1)
@@ -112,7 +112,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
    note 5 : If source is untrusted, decompressed size could be wrong or intentionally modified.
             Always ensure return value fits within application's authorized limits.
             Each application can set its own limits.
-   note 6 : This function replaces ZSTD_getDecompressedSize()
+   note 6 : This function replaces ZSTD_getDecompressedSize() 
 


unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize);
@@ -120,7 +120,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
   Both functions work the same way, but ZSTD_getDecompressedSize() blends
   "empty", "unknown" and "error" results to the same return value (0),
   while ZSTD_getFrameContentSize() gives them separate return values.
- @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise.
+ @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise. 
 


size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize);
@@ -128,7 +128,7 @@ unsigned long long ZSTD_getFrameContentSize(const void *src, size_t srcSize);
  `srcSize` must be >= first frame size
  @return : the compressed size of the first frame starting at `src`,
            suitable to pass as `srcSize` to `ZSTD_decompress` or similar,
-        or an error code if input is invalid
+        or an error code if input is invalid 
 


Helper functions

#define ZSTD_COMPRESSBOUND(srcSize)   ((srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0))  /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */
@@ -148,7 +148,7 @@ int         ZSTD_maxCLevel(void);               /*!< maximum compression lev
          It doesn't change the compression ratio, which remains identical.
   Note 2 : In multi-threaded environments,
          use one different context per thread for parallel execution.
-
+ 
 
typedef struct ZSTD_CCtx_s ZSTD_CCtx;
 ZSTD_CCtx* ZSTD_createCCtx(void);
 size_t     ZSTD_freeCCtx(ZSTD_CCtx* cctx);
@@ -159,14 +159,14 @@ size_t     ZSTD_freeCCtx(ZSTD_CCtx* cctx);
                          int compressionLevel);
 

Same as ZSTD_compress(), using an explicit ZSTD_CCtx The function will compress at requested compression level, - ignoring any other parameter + ignoring any other parameter


Decompression context

  When decompressing many times,
   it is recommended to allocate a context only once,
   and re-use it for each successive compression operation.
   This will make workload friendlier for system's memory.
-  Use one context per thread for parallel execution.
+  Use one context per thread for parallel execution. 
 
typedef struct ZSTD_DCtx_s ZSTD_DCtx;
 ZSTD_DCtx* ZSTD_createDCtx(void);
 size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
@@ -177,7 +177,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
 

Same as ZSTD_decompress(), requires an allocated ZSTD_DCtx. Compatible with sticky parameters. - +


Advanced compression API


@@ -324,7 +324,6 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
      * ZSTD_c_forceAttachDict
      * ZSTD_c_literalCompressionMode
      * ZSTD_c_targetCBlockSize
-     * ZSTD_c_srcSizeHint
      * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
      * note : never ever use experimentalParam? names directly;
      *        also, the enums values themselves are unstable and can still change.
@@ -335,7 +334,6 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
      ZSTD_c_experimentalParam4=1001,
      ZSTD_c_experimentalParam5=1002,
      ZSTD_c_experimentalParam6=1003,
-     ZSTD_c_experimentalParam7=1004,
 } ZSTD_cParameter;
 

typedef struct {
@@ -350,7 +348,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
  @return : a structure, ZSTD_bounds, which contains
          - an error status field, which must be tested using ZSTD_isError()
          - lower and upper bounds, both inclusive
-
+ 
 


size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value);
@@ -363,7 +361,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
               => compressionLevel, hashLog, chainLog, searchLog, minMatch, targetLength and strategy.
               new parameters will be active for next job only (after a flush()).
  @return : an error code (which can be tested using ZSTD_isError()).
-
+ 
 


size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize);
@@ -380,7 +378,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
            for example with ZSTD_compress2(),
            or invoking immediately ZSTD_compressStream2(,,,ZSTD_e_end),
            this value is automatically overridden by srcSize instead.
-
+ 
 


typedef enum {
@@ -402,7 +400,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
                   Parameters can only be changed between 2 sessions (i.e. no compression is currently ongoing)
                   otherwise the reset fails, and function returns an error value (which can be tested using ZSTD_isError())
   - Both : similar to resetting the session, followed by resetting parameters.
-
+ 
 


size_t ZSTD_compress2( ZSTD_CCtx* cctx,
@@ -416,7 +414,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Hint : compression runs faster if `dstCapacity` >=  `ZSTD_compressBound(srcSize)`.
  @return : compressed size written into `dst` (<= `dstCapacity),
            or an error code if it fails (which can be tested using ZSTD_isError()).
-
+ 
 


Advanced decompression API


@@ -447,7 +445,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
  @return : a structure, ZSTD_bounds, which contains
          - an error status field, which must be tested using ZSTD_isError()
          - both lower and upper bounds, inclusive
-
+ 
 


size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int value);
@@ -456,7 +454,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Providing a value beyond bound will either clamp it, or trigger an error (depending on parameter).
   Setting a parameter is only possible during frame initialization (before starting decompression).
  @return : 0, or an error code (which can be tested using ZSTD_isError()).
-
+ 
 


size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset);
@@ -464,7 +462,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
   Session and parameters can be reset jointly or separately.
   Parameters can only be reset when no active frame is being decompressed.
  @return : 0, or an error code, which can be tested with ZSTD_isError()
-
+ 
 


Streaming


@@ -538,7 +536,7 @@ size_t     ZSTD_freeDCtx(ZSTD_DCtx* dctx);
             >0 if some data still present within internal buffer (the value is minimal estimation of remaining size),
             or an error code, which can be tested using ZSTD_isError().
 
-
+ 
 
typedef ZSTD_CCtx ZSTD_CStream;  /**< CCtx and CStream are now effectively same object (>= v1.3.0) */
@@ -582,7 +580,7 @@ size_t ZSTD_freeCStream(ZSTD_CStream* zcs);
             only ZSTD_e_end or ZSTD_e_flush operations are allowed.
             Before starting a new compression job, or changing compression parameters,
             it is required to fully flush internal buffers.
-
+ 
 


size_t ZSTD_CStreamInSize(void);    /**< recommended size for input buffer */
@@ -605,7 +603,7 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
      ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
      ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any)
      ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel);
-
+ 
 


Streaming decompression - HowTo

@@ -631,7 +629,7 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output);
         or any other value > 0, which means there is still some decoding or flushing to do to complete current frame :
                                 the return value is a suggested next input size (just a hint for better latency)
                                 that will never request more than the remaining frame size.
-
+ 
 
typedef ZSTD_DCtx ZSTD_DStream;  /**< DCtx and DStream are now effectively same object (>= v1.3.0) */
@@ -656,7 +654,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   or a buffer with specified information (see dictBuilder/zdict.h).
   Note : This function loads the dictionary, resulting in significant startup delay.
          It's intended for a dictionary used only once.
-  Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used.
+  Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used. 
 


size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
@@ -667,7 +665,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   Dictionary must be identical to the one used during compression.
   Note : This function loads the dictionary, resulting in significant startup delay.
          It's intended for a dictionary used only once.
-  Note : When `dict == NULL || dictSize < 8` no dictionary is used.
+  Note : When `dict == NULL || dictSize < 8` no dictionary is used. 
 


Bulk processing dictionary API


@@ -679,11 +677,11 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   ZSTD_CDict can be created once and shared by multiple threads concurrently, since its usage is read-only.
  `dictBuffer` can be released after ZSTD_CDict creation, because its content is copied within CDict.
   Consider experimental function `ZSTD_createCDict_byReference()` if you prefer to not duplicate `dictBuffer` content.
-  Note : A ZSTD_CDict can be created from an empty dictBuffer, but it is inefficient when used to compress small data.
+  Note : A ZSTD_CDict can be created from an empty dictBuffer, but it is inefficient when used to compress small data. 
 


size_t      ZSTD_freeCDict(ZSTD_CDict* CDict);
-

Function frees memory allocated by ZSTD_createCDict(). +

Function frees memory allocated by ZSTD_createCDict().


size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx,
@@ -693,16 +691,16 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
 

Compression using a digested Dictionary. Recommended when same dictionary is used multiple times. Note : compression level is _decided at dictionary creation time_, - and frame parameters are hardcoded (dictID=yes, contentSize=yes, checksum=no) + and frame parameters are hardcoded (dictID=yes, contentSize=yes, checksum=no)


ZSTD_DDict* ZSTD_createDDict(const void* dictBuffer, size_t dictSize);
 

Create a digested dictionary, ready to start decompression operation without startup delay. - dictBuffer can be released after DDict creation, as its content is copied inside DDict. + dictBuffer can be released after DDict creation, as its content is copied inside DDict.


size_t      ZSTD_freeDDict(ZSTD_DDict* ddict);
-

Function frees memory allocated with ZSTD_createDDict() +

Function frees memory allocated with ZSTD_createDDict()


size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx,
@@ -710,7 +708,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
                             const void* src, size_t srcSize,
                             const ZSTD_DDict* ddict);
 

Decompression using a digested Dictionary. - Recommended when same dictionary is used multiple times. + Recommended when same dictionary is used multiple times.


Dictionary helper functions


@@ -718,13 +716,13 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
 
unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize);
 

Provides the dictID stored within dictionary. if @return == 0, the dictionary is not conformant with Zstandard specification. - It can still be loaded, but as a content-only dictionary. + It can still be loaded, but as a content-only dictionary.


unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict);
 

Provides the dictID of the dictionary loaded into `ddict`. If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. - Non-conformant dictionaries can still be loaded, but as content-only dictionaries. + Non-conformant dictionaries can still be loaded, but as content-only dictionaries.


unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize);
@@ -736,7 +734,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
     Note : this use case also happens when using a non-conformant dictionary.
   - `srcSize` is too small, and as a result, the frame header could not be decoded (only possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`).
   - This is not a Zstandard frame.
-  When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code.
+  When identifying the exact failure cause, it's possible to use ZSTD_getFrameHeader(), which will provide a more precise error code. 
 


Advanced dictionary and prefix API

@@ -762,7 +760,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use experimental ZSTD_CCtx_loadDictionary_byReference() to reference content instead.
            In such a case, dictionary buffer must outlive its users.
   Note 4 : Use ZSTD_CCtx_loadDictionary_advanced()
-           to precisely select how dictionary content must be interpreted.
+           to precisely select how dictionary content must be interpreted. 
 


size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict);
@@ -776,7 +774,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
   Special : Referencing a NULL CDict means "return to no-dictionary mode".
   Note 1 : Currently, only one dictionary can be managed.
            Referencing a new dictionary effectively "discards" any previous one.
-  Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx.
+  Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx. 
 


size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx,
@@ -797,7 +795,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            It's a CPU consuming operation, with non-negligible impact on latency.
            If there is a need to use the same prefix multiple times, consider loadDictionary instead.
   Note 4 : By default, the prefix is interpreted as raw content (ZSTD_dm_rawContent).
-           Use experimental ZSTD_CCtx_refPrefix_advanced() to alter dictionary interpretation.
+           Use experimental ZSTD_CCtx_refPrefix_advanced() to alter dictionary interpretation. 
 


size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
@@ -814,7 +812,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use ZSTD_DCtx_loadDictionary_byReference() to reference dictionary content instead.
   Note 3 : Use ZSTD_DCtx_loadDictionary_advanced() to take control of
            how dictionary content is loaded and interpreted.
-
+ 
 


size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict);
@@ -825,7 +823,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Referencing a new dictionary effectively "discards" any previous one.
   Special: referencing a NULL DDict means "return to no-dictionary mode".
   Note 2 : DDict is just referenced, its lifetime must outlive its usage from DCtx.
-
+ 
 


size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx,
@@ -844,7 +842,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds);
            Use ZSTD_CCtx_refPrefix_advanced() to alter dictMode (Experimental section)
   Note 4 : Referencing a raw content prefix has almost no cpu nor memory cost.
            A full dictionary is more costly, as it requires building tables.
-
+ 
 


size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx);
@@ -854,7 +852,7 @@ size_t ZSTD_sizeof_DStream(const ZSTD_DStream* zds);
 size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict);
 size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 

These functions give the _current_ memory usage of selected object. - Note that object memory usage can evolve (increase or decrease) over time. + Note that object memory usage can evolve (increase or decrease) over time.


experimental API (static linking only)

@@ -863,7 +861,7 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
  They can still change in future versions.
  Some of them are planned to remain in the static_only section indefinitely.
  Some of them might be removed in the future (especially when redundant with existing stable functions)
-
+ 
 
typedef struct {
@@ -977,7 +975,7 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
             Each application can set its own limits.
    note 5 : ZSTD_findDecompressedSize handles multiple frames, and so it must traverse the input to
             read each contained frame header.  This is fast as most of the data is skipped,
-            however it does mean that all frame data must be present and valid.
+            however it does mean that all frame data must be present and valid. 
 


unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize);
@@ -992,13 +990,13 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
             in this case, `ZSTD_findDecompressedSize` and `ZSTD_decompressBound` return the same value.
   note 3  : when the decompressed size field isn't available, the upper-bound for that frame is calculated by:
               upper-bound = # blocks * min(128 KB, Window_Size)
-
+ 
 


size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize);
 

srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. @return : size of the Frame Header, - or an error code (if srcSize is too small) + or an error code (if srcSize is too small)


Memory management


@@ -1014,7 +1012,7 @@ size_t ZSTD_estimateDCtxSize(void);
   If srcSize is known to always be small, ZSTD_estimateCCtxSize_usingCParams() can provide a tighter estimation.
   ZSTD_estimateCCtxSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel.
   ZSTD_estimateCCtxSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1.
-  Note : CCtx size estimation is only correct for single-threaded compression.
+  Note : CCtx size estimation is only correct for single-threaded compression. 
 


size_t ZSTD_estimateCStreamSize(int compressionLevel);
@@ -1033,7 +1031,7 @@ size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize);
   or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame();
   Note : if streaming is init with function ZSTD_init?Stream_usingDict(),
          an internal ?Dict will be created, which additional size is not estimated here.
-         In this case, get total size by adding ZSTD_estimate?DictSize
+         In this case, get total size by adding ZSTD_estimate?DictSize 
 


size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel);
@@ -1042,7 +1040,7 @@ size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMet
 

ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller. - +


ZSTD_CCtx*    ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize);
@@ -1066,7 +1064,7 @@ ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize);
                  ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict().
   Limitation 2 : static cctx currently not compatible with multi-threading.
   Limitation 3 : static dctx is incompatible with legacy support.
-
+ 
 


ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize);    /**< same as ZSTD_initStaticDCtx() */
@@ -1078,7 +1076,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
 

These prototypes make it possible to pass your own allocation/free functions. ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. All allocation/free operations will be completed using these custom variants instead of regular ones. - +


Advanced compression functions


@@ -1087,22 +1085,22 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  
/**< t

Create a digested dictionary for compression Dictionary content is just referenced, not duplicated. As a consequence, `dictBuffer` **must** outlive CDict, - and its content must remain unmodified throughout the lifetime of CDict. + and its content must remain unmodified throughout the lifetime of CDict.


ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
 

@return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. - `estimatedSrcSize` value is optional, select 0 if not known + `estimatedSrcSize` value is optional, select 0 if not known


ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize);
 

same as ZSTD_getCParams(), but @return a full `ZSTD_parameters` object instead of sub-component `ZSTD_compressionParameters`. - All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0 + All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0


size_t ZSTD_checkCParams(ZSTD_compressionParameters params);
 

Ensure param values remain within authorized range. - @return 0 on success, or an error code (can be checked with ZSTD_isError()) + @return 0 on success, or an error code (can be checked with ZSTD_isError())


ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, unsigned long long srcSize, size_t dictSize);
@@ -1110,7 +1108,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
  `srcSize` can be unknown, in which case use ZSTD_CONTENTSIZE_UNKNOWN.
  `dictSize` must be `0` when there is no dictionary.
   cPar can be invalid : all parameters will be clamped within valid range in the @return struct.
-  This function never fails (wide contract)
+  This function never fails (wide contract) 
 


size_t ZSTD_compress_advanced(ZSTD_CCtx* cctx,
@@ -1118,7 +1116,7 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
                         const void* src, size_t srcSize,
                         const void* dict,size_t dictSize,
                               ZSTD_parameters params);
-

Same as ZSTD_compress_usingDict(), with fine-tune control over compression parameters (by structure) +

Same as ZSTD_compress_usingDict(), with fine-tune control over compression parameters (by structure)


size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx,
@@ -1126,30 +1124,30 @@ static ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL };  /**< t
                             const void* src, size_t srcSize,
                             const ZSTD_CDict* cdict,
                                   ZSTD_frameParameters fParams);
-

Same as ZSTD_compress_usingCDict(), with fine-tune control over frame parameters +

Same as ZSTD_compress_usingCDict(), with fine-tune control over frame parameters


size_t ZSTD_CCtx_loadDictionary_byReference(ZSTD_CCtx* cctx, const void* dict, size_t dictSize);
 

Same as ZSTD_CCtx_loadDictionary(), but dictionary content is referenced, instead of being copied into CCtx. - It saves some memory, but also requires that `dict` outlives its usage within `cctx` + It saves some memory, but also requires that `dict` outlives its usage within `cctx`


size_t ZSTD_CCtx_loadDictionary_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_CCtx_loadDictionary(), but gives finer control over how to load the dictionary (by copy ? by reference ?) - and how to interpret it (automatic ? force raw mode ? full mode only ?) + and how to interpret it (automatic ? force raw mode ? full mode only ?)


size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_CCtx_refPrefix(), but gives finer control over - how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?)


size_t ZSTD_CCtx_getParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value);
 

Get the requested compression parameter value, selected by enum ZSTD_cParameter, and store it into int* value. @return : 0, or an error code (which can be tested with ZSTD_isError()). - +


ZSTD_CCtx_params* ZSTD_createCCtxParams(void);
@@ -1169,24 +1167,24 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
 
   This can be used with ZSTD_estimateCCtxSize_advanced_usingCCtxParams()
   for static allocation of CCtx for single-threaded compression.
-
+ 
 


size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params);
 

Reset params to default values. - +


size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel);
 

Initializes the compression parameters of cctxParams according to compression level. All other parameters are reset to their default values. - +


size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params);
 

Initializes the compression and frame parameters of cctxParams according to params. All other parameters are reset to their default values. - +


size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value);
@@ -1194,14 +1192,14 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   Set one compression parameter, selected by enum ZSTD_cParameter.
   Parameters must be applied to a ZSTD_CCtx using ZSTD_CCtx_setParametersUsingCCtxParams().
  @result : 0, or an error code (which can be tested with ZSTD_isError()).
-
+ 
 


size_t ZSTD_CCtxParams_getParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int* value);
 

Similar to ZSTD_CCtx_getParameter. Get the requested value of one compression parameter, selected by enum ZSTD_cParameter. @result : 0, or an error code (which can be tested with ZSTD_isError()). - +


size_t ZSTD_CCtx_setParametersUsingCCtxParams(
@@ -1211,7 +1209,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
     if nbWorkers==0, this will have no impact until a new compression is started.
     if nbWorkers>=1, new parameters will be picked up at next job,
        with a few restrictions (windowLog, pledgedSrcSize, nbWorkers, jobSize, and overlapLog are not updated).
-
+ 
 


size_t ZSTD_compressStream2_simpleArgs (
@@ -1223,7 +1221,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   but using only integral types as arguments.
   This variant might be helpful for binders from dynamic languages
   which have troubles handling structures containing memory pointers.
-
+ 
 


Advanced decompression functions


@@ -1232,33 +1230,33 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
 

Tells if the content of `buffer` starts with a valid Frame Identifier. Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. - Note 3 : Skippable Frame Identifiers are considered valid. + Note 3 : Skippable Frame Identifiers are considered valid.


ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize);
 

Create a digested dictionary, ready to start decompression operation without startup delay. Dictionary content is referenced, and therefore stays in dictBuffer. It is important that dictBuffer outlives DDict, - it must remain read accessible throughout the lifetime of DDict + it must remain read accessible throughout the lifetime of DDict


size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize);
 

Same as ZSTD_DCtx_loadDictionary(), but references `dict` content instead of copying it into `dctx`. This saves memory if `dict` remains around., - However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression. + However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression.


size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_DCtx_loadDictionary(), but gives direct control over how to load the dictionary (by copy ? by reference ?) - and how to interpret it (automatic ? force raw mode ? full mode only ?). + and how to interpret it (automatic ? force raw mode ? full mode only ?).


size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType);
 

Same as ZSTD_DCtx_refPrefix(), but gives finer control over - how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) + how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?)


size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize);
@@ -1267,14 +1265,14 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode.
   By default, a decompression context accepts all window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT)
  @return : 0, or an error code (which can be tested using ZSTD_isError()).
-
+ 
 


size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format);
 

Instruct the decoder context about what kind of data to decode next. This instruction is mandatory to decode data without a fully-formed header, such ZSTD_f_zstd1_magicless for example. - @return : 0, or an error code (which can be tested using ZSTD_isError()). + @return : 0, or an error code (which can be tested using ZSTD_isError()).


size_t ZSTD_decompressStream_simpleArgs (
@@ -1285,7 +1283,7 @@ size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params);
   but using only integral types as arguments.
   This can be helpful for binders from dynamic languages
   which have troubles handling structures containing memory pointers.
-
+ 
 


Advanced streaming functions

  Warning : most of these functions are now redundant with the Advanced API.
@@ -1363,7 +1361,7 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, const ZSTD_CDict*
   For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs,
   but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead.
  @return : 0, or an error code (which can be tested using ZSTD_isError())
-
+ 
 


typedef struct {
@@ -1387,7 +1385,7 @@ size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, const ZSTD_CDict*
     but everything it has produced has also been flushed so far,
     therefore flush speed is limited by production speed of oldest job
     irrespective of the speed of concurrent (and newer) jobs.
-
+ 
 


Advanced Streaming decompression functions

/**
@@ -1421,7 +1419,7 @@ size_t ZSTD_resetDStream(ZSTD_DStream* zds);
   This is an advanced API, giving full control over buffer management, for users which need direct control over memory.
   But it's also a complex one, with several restrictions, documented below.
   Prefer normal streaming API for an easier experience.
-
+ 
 

Buffer-less streaming compression (synchronous mode)

@@ -1519,7 +1517,7 @@ size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned lo
   Note : it's possible to know if next input to present is a header or a block, using ZSTD_nextInputType().
   This information is not required to properly decode a frame.
 
-  == Special case : skippable frames
+  == Special case : skippable frames 
 
   Skippable frames allow integration of user-defined data into a flow of concatenated frames.
   Skippable frames will be ignored (skipped) by decompressor.
@@ -1551,7 +1549,7 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long
 

decode Frame Header, or requires larger `srcSize`. @return : 0, `zfhPtr` is correctly filled, >0, `srcSize` is too small, value is wanted `srcSize` amount, - or an error code, which can be tested using ZSTD_isError() + or an error code, which can be tested using ZSTD_isError()


typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e;

From 294f1e5cfe2e3f24aed2a36c7a25e1eb401a1636 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 16:53:02 -0700
Subject: [PATCH 022/163] Fix typo in test

---
 tests/zstreamtest.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/zstreamtest.c b/tests/zstreamtest.c
index 70326677c..b0e5d827a 100644
--- a/tests/zstreamtest.c
+++ b/tests/zstreamtest.c
@@ -2121,7 +2121,7 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmMinMatch, FUZ_randomClampedLength(&lseed, ZSTD_LDM_MINMATCH_MIN, ZSTD_LDM_MINMATCH_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmBucketSizeLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_BUCKETSIZELOG_MIN, ZSTD_LDM_BUCKETSIZELOG_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmHashRateLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_HASHRATELOG_MIN, ZSTD_LDM_HASHRATELOG_MAX), opaqueAPI) );
-                    if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_srcSizeHint, FUZ_randomClampedLength(&lseed, 0, ZSTD_ZSTD_SRCSIZEHINT_MAX), opaqueAPI) );
+                    if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_srcSizeHint, FUZ_randomClampedLength(&lseed, 0, ZSTD_SRCSIZEHINT_MAX), opaqueAPI) );
                 }
 
                 /* mess with frame parameters */

From f23402f1f5f6a5b3adb103f06dd22c9d669a9311 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Mon, 19 Aug 2019 17:20:46 -0700
Subject: [PATCH 023/163] Remove unnecessary test case

---
 tests/zstreamtest.c | 15 ---------------
 1 file changed, 15 deletions(-)

diff --git a/tests/zstreamtest.c b/tests/zstreamtest.c
index b0e5d827a..6fe177cbe 100644
--- a/tests/zstreamtest.c
+++ b/tests/zstreamtest.c
@@ -1151,21 +1151,6 @@ static int basicUnitTests(U32 seed, double compressibility)
     }
     DISPLAYLEVEL(3, "OK \n");
 
-    DISPLAYLEVEL(3, "test%3i : ZSTD_c_srcSizeHint provides hint about size of stream : ", testNb++);
-    {
-      CHECK_Z( ZSTD_initCStream(zc, 1 /* cLevel */) );
-      outBuff.dst = (char*)(compressedBuffer);
-      outBuff.size = compressedBufferSize;
-      outBuff.pos = 0;
-      inBuff.src = CNBuffer;
-      inBuff.size = CNBufferSize;
-      inBuff.pos = 0;
-      CHECK_Z( ZSTD_compressStream(zc, &outBuff, &inBuff) );
-      if (inBuff.pos != inBuff.size) goto _output_error;   /* entire input should be consumed */
-      { size_t const r = ZSTD_endStream(zc, &outBuff);
-        if (r != 0) goto _output_error; }  /* error, or some data not flushed */
-    }
-
     /* Overlen overwriting window data bug */
     DISPLAYLEVEL(3, "test%3i : wildcopy doesn't overwrite potential match data : ", testNb++);
     {   /* This test has a window size of 1024 bytes and consists of 3 blocks:

From c7a24d7a14d32dff18b9a98265c9a5ee6578dd25 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Tue, 20 Aug 2019 13:06:15 -0700
Subject: [PATCH 024/163] Define ZSTD_SRCSIZEHINT_MIN as 0

---
 lib/compress/zstd_compress.c | 2 +-
 lib/zstd.h                   | 1 +
 tests/fuzz/zstd_helpers.c    | 2 +-
 tests/zstreamtest.c          | 2 +-
 4 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c
index d4471c2b2..3660e9d1c 100644
--- a/lib/compress/zstd_compress.c
+++ b/lib/compress/zstd_compress.c
@@ -393,7 +393,7 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param)
         return bounds;
 
     case ZSTD_c_srcSizeHint:
-        bounds.lowerBound = 0;
+        bounds.lowerBound = ZSTD_SRCSIZEHINT_MIN;
         bounds.upperBound = ZSTD_SRCSIZEHINT_MAX;
         return bounds;
 
diff --git a/lib/zstd.h b/lib/zstd.h
index 0fbe71ab8..5396b719f 100644
--- a/lib/zstd.h
+++ b/lib/zstd.h
@@ -1066,6 +1066,7 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 /* Advanced parameter bounds */
 #define ZSTD_TARGETCBLOCKSIZE_MIN   64
 #define ZSTD_TARGETCBLOCKSIZE_MAX   ZSTD_BLOCKSIZE_MAX
+#define ZSTD_SRCSIZEHINT_MAX        0
 #define ZSTD_SRCSIZEHINT_MAX        INT_MAX
 
 /* internal */
diff --git a/tests/fuzz/zstd_helpers.c b/tests/fuzz/zstd_helpers.c
index 5d24a48c4..5ff057b8c 100644
--- a/tests/fuzz/zstd_helpers.c
+++ b/tests/fuzz/zstd_helpers.c
@@ -91,7 +91,7 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
     setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, state);
     setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
     if (FUZZ_rand32(state, 0, 1) == 0) {
-      setRand(cctx, ZSTD_c_srcSizeHint, 0, 2 * srcSize, state);
+      setRand(cctx, ZSTD_c_srcSizeHint, ZSTD_SRCSIZEHINT_MIN, 2 * srcSize, state);
     }
 }
 
diff --git a/tests/zstreamtest.c b/tests/zstreamtest.c
index 6fe177cbe..d2c4036ac 100644
--- a/tests/zstreamtest.c
+++ b/tests/zstreamtest.c
@@ -2106,7 +2106,7 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmMinMatch, FUZ_randomClampedLength(&lseed, ZSTD_LDM_MINMATCH_MIN, ZSTD_LDM_MINMATCH_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmBucketSizeLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_BUCKETSIZELOG_MIN, ZSTD_LDM_BUCKETSIZELOG_MAX), opaqueAPI) );
                     if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_ldmHashRateLog, FUZ_randomClampedLength(&lseed, ZSTD_LDM_HASHRATELOG_MIN, ZSTD_LDM_HASHRATELOG_MAX), opaqueAPI) );
-                    if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_srcSizeHint, FUZ_randomClampedLength(&lseed, 0, ZSTD_SRCSIZEHINT_MAX), opaqueAPI) );
+                    if (FUZ_rand(&lseed) & 3) CHECK_Z( setCCtxParameter(zc, cctxParams, ZSTD_c_srcSizeHint, FUZ_randomClampedLength(&lseed, ZSTD_SRCSIZEHINT_MIN, ZSTD_SRCSIZEHINT_MAX), opaqueAPI) );
                 }
 
                 /* mess with frame parameters */

From de6a6c73645092595250f5e9347baf60a7e91a12 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Tue, 20 Aug 2019 13:07:51 -0700
Subject: [PATCH 025/163] Fix ZSTD_SRCSIZEHINT_MIN typo

---
 lib/zstd.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/zstd.h b/lib/zstd.h
index 5396b719f..38c99e016 100644
--- a/lib/zstd.h
+++ b/lib/zstd.h
@@ -1066,7 +1066,7 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
 /* Advanced parameter bounds */
 #define ZSTD_TARGETCBLOCKSIZE_MIN   64
 #define ZSTD_TARGETCBLOCKSIZE_MAX   ZSTD_BLOCKSIZE_MAX
-#define ZSTD_SRCSIZEHINT_MAX        0
+#define ZSTD_SRCSIZEHINT_MIN        0
 #define ZSTD_SRCSIZEHINT_MAX        INT_MAX
 
 /* internal */

From 05d7479a505584563c521822ae353d3f256c3bb8 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Tue, 20 Aug 2019 14:08:26 -0700
Subject: [PATCH 026/163] Document --size-hint

---
 programs/zstd.1.md | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/programs/zstd.1.md b/programs/zstd.1.md
index 3ab2667a0..f8349fa80 100644
--- a/programs/zstd.1.md
+++ b/programs/zstd.1.md
@@ -144,6 +144,13 @@ the last one takes effect.
     Due to the chaotic nature of dynamic adaptation, compressed result is not reproducible.
     _note_ : at the time of this writing, `--adapt` can remain stuck at low speed
     when combined with multiple worker threads (>=2).
+* `--size-hint=#`:
+    When handling input from a stream, `zstd` must guess how large the source size
+    will be when optimizing compression parameters. If the stream size is relatively
+    small, this guess may be a poor one, resulting in a higher compression ratio than
+    expected. This feature allows for controlling the guess when needed.
+    Exact guesses result in better compression ratios. Overestimates result in slightly
+    degraded compression ratios, while underestimates may result in significant degradation.
 * `--rsyncable` :
     `zstd` will periodically synchronize the compression state to make the
     compressed file more rsync-friendly. There is a negligible impact to

From 3982935aefbd6e8c0a8ceb7d54afc5b97f188fc7 Mon Sep 17 00:00:00 2001
From: Nick Terrell 
Date: Tue, 20 Aug 2019 11:33:33 -0700
Subject: [PATCH 027/163] [fuzz] Improve fuzzer build script and docs

* Remove the `make libFuzzer` target since it is broken and obsoleted
  by `CC=clang CXX=clang++ ./fuzz.py build all --enable-fuzzer`. The
  new `-fsanitize=fuzzer` is much better because it works with MSAN
  by default.
* Improve the `./fuzz.py gen` command by making the input type explicit
  when creating a new target.
* Update the `README` for `--enable-fuzzer`.

Fixes #1727.
---
 tests/fuzz/Makefile  |  9 --------
 tests/fuzz/README.md | 19 ++++++++++------
 tests/fuzz/fuzz.py   | 53 ++++++++++++++++++++++++++++++--------------
 3 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/tests/fuzz/Makefile b/tests/fuzz/Makefile
index 8bf16b1fb..08dedd66f 100644
--- a/tests/fuzz/Makefile
+++ b/tests/fuzz/Makefile
@@ -113,15 +113,6 @@ zstd_frame_info: $(FUZZ_HEADERS) $(FUZZ_OBJ) zstd_frame_info.o
 libregression.a: $(FUZZ_HEADERS) $(PRGDIR)/util.h $(PRGDIR)/util.c regression_driver.o
 	$(AR) $(FUZZ_ARFLAGS) $@ regression_driver.o
 
-# Install libfuzzer (not usable for MSAN testing)
-# Provided for convenience. To use this library run make libFuzzer and
-# set LDFLAGS=-L.
-.PHONY: libFuzzer
-libFuzzer:
-	@$(RM) -rf Fuzzer
-	@git clone https://chromium.googlesource.com/chromium/llvm-project/compiler-rt/lib/fuzzer Fuzzer
-	@cd Fuzzer && ./build.sh
-
 corpora/%_seed_corpus.zip:
 	@mkdir -p corpora
 	$(DOWNLOAD) $@ $(CORPORA_URL_PREFIX)$*_seed_corpus.zip
diff --git a/tests/fuzz/README.md b/tests/fuzz/README.md
index 9e0bb259a..856a57f82 100644
--- a/tests/fuzz/README.md
+++ b/tests/fuzz/README.md
@@ -35,6 +35,8 @@ The environment variables can be overridden with the corresponding flags
 `--cc`, `--cflags`, etc.
 The specific fuzzing engine is selected with `LIB_FUZZING_ENGINE` or
 `--lib-fuzzing-engine`, the default is `libregression.a`.
+Alternatively, you can use Clang's built in fuzzing engine with
+`--enable-fuzzer`.
 It has flags that can easily set up sanitizers `--enable-{a,ub,m}san`, and
 coverage instrumentation `--enable-coverage`.
 It sets sane defaults which can be overridden with flags `--debug`,
@@ -51,22 +53,25 @@ The command used to run the fuzzer is printed for debugging.
 ## LibFuzzer
 
 ```
-# Build libfuzzer if necessary
-make libFuzzer
 # Build the fuzz targets
-./fuzz.py build all --enable-coverage --enable-asan --enable-ubsan --lib-fuzzing-engine Fuzzer/libFuzzer.a --cc clang --cxx clang++
+./fuzz.py build all --enable-fuzzer --enable-asan --enable-ubsan --cc clang --cxx clang++
 # OR equivalently
-CC=clang CXX=clang++ LIB_FUZZING_ENGINE=Fuzzer/libFuzzer.a ./fuzz.py build all --enable-coverage --enable-asan --enable-ubsan
+CC=clang CXX=clang++ ./fuzz.py build all --enable-fuzzer --enable-asan --enable-ubsan
 # Run the fuzzer
-./fuzz.py libfuzzer TARGET -max_len=8192 -jobs=4
+./fuzz.py libfuzzer TARGET 
 ```
 
 where `TARGET` could be `simple_decompress`, `stream_round_trip`, etc.
 
 ### MSAN
 
-Fuzzing with `libFuzzer` and `MSAN` will require building a C++ standard library
-and libFuzzer with MSAN.
+Fuzzing with `libFuzzer` and `MSAN` is as easy as:
+
+```
+CC=clang CXX=clang++ ./fuzz.py build all --enable-fuzzer --enable-msan
+./fuzz.py libfuzzer TARGET 
+```
+
 `fuzz.py` respects the environment variables / flags `MSAN_EXTRA_CPPFLAGS`,
 `MSAN_EXTRA_CFLAGS`, `MSAN_EXTRA_CXXFLAGS`, `MSAN_EXTRA_LDFLAGS` to easily pass
 the extra parameters only for MSAN.
diff --git a/tests/fuzz/fuzz.py b/tests/fuzz/fuzz.py
index d993209a0..faf8ce8ae 100755
--- a/tests/fuzz/fuzz.py
+++ b/tests/fuzz/fuzz.py
@@ -24,21 +24,38 @@ def abs_join(a, *p):
     return os.path.abspath(os.path.join(a, *p))
 
 
+class InputType(object):
+    RAW_DATA = 1
+    COMPRESSED_DATA = 2
+
+
+class FrameType(object):
+    ZSTD = 1
+    BLOCK = 2
+
+
+class TargetInfo(object):
+    def __init__(self, input_type, frame_type=FrameType.ZSTD):
+        self.input_type = input_type
+        self.frame_type = frame_type
+
+
 # Constants
 FUZZ_DIR = os.path.abspath(os.path.dirname(__file__))
 CORPORA_DIR = abs_join(FUZZ_DIR, 'corpora')
-TARGETS = [
-    'simple_round_trip',
-    'stream_round_trip',
-    'block_round_trip',
-    'simple_decompress',
-    'stream_decompress',
-    'block_decompress',
-    'dictionary_round_trip',
-    'dictionary_decompress',
-    'zstd_frame_info',
-    'simple_compress',
-]
+TARGET_INFO = {
+    'simple_round_trip': TargetInfo(InputType.RAW_DATA),
+    'stream_round_trip': TargetInfo(InputType.RAW_DATA),
+    'block_round_trip': TargetInfo(InputType.RAW_DATA, FrameType.BLOCK),
+    'simple_decompress': TargetInfo(InputType.COMPRESSED_DATA),
+    'stream_decompress': TargetInfo(InputType.COMPRESSED_DATA),
+    'block_decompress': TargetInfo(InputType.COMPRESSED_DATA, FrameType.BLOCK),
+    'dictionary_round_trip': TargetInfo(InputType.RAW_DATA),
+    'dictionary_decompress': TargetInfo(InputType.COMPRESSED_DATA),
+    'zstd_frame_info': TargetInfo(InputType.COMPRESSED_DATA),
+    'simple_compress': TargetInfo(InputType.RAW_DATA),
+}
+TARGETS = list(TARGET_INFO.keys())
 ALL_TARGETS = TARGETS + ['all']
 FUZZ_RNG_SEED_SIZE = 4
 
@@ -67,7 +84,7 @@ MSAN_EXTRA_LDFLAGS = os.environ.get('MSAN_EXTRA_LDFLAGS', '')
 def create(r):
     d = os.path.abspath(r)
     if not os.path.isdir(d):
-        os.mkdir(d)
+        os.makedirs(d)
     return d
 
 
@@ -158,7 +175,7 @@ def compiler_version(cc, cxx):
         assert(b'clang' in cxx_version_bytes)
         compiler = 'clang'
     elif b'gcc' in cc_version_bytes:
-        assert(b'gcc' in cxx_version_bytes)
+        assert(b'gcc' in cxx_version_bytes or b'g++' in cxx_version_bytes)
         compiler = 'gcc'
     if compiler is not None:
         version_regex = b'([0-9])+\.([0-9])+\.([0-9])+'
@@ -699,7 +716,8 @@ def gen(args):
                 '-o{}'.format(decompressed),
             ]
 
-            if 'block_' in args.TARGET:
+            info = TARGET_INFO[args.TARGET]
+            if info.frame_type == FrameType.BLOCK:
                 cmd += [
                     '--gen-blocks',
                     '--max-block-size-log={}'.format(args.max_size_log)
@@ -710,10 +728,11 @@ def gen(args):
             print(' '.join(cmd))
             subprocess.check_call(cmd)
 
-            if '_round_trip' in args.TARGET:
+            if info.input_type == InputType.RAW_DATA:
                 print('using decompressed data in {}'.format(decompressed))
                 samples = decompressed
-            elif '_decompress' in args.TARGET:
+            else:
+                assert info.input_type == InputType.COMPRESSED_DATA
                 print('using compressed data in {}'.format(compressed))
                 samples = compressed
 

From 07f22d465d0f85aa00f20fc2f0b59a50ddfe494f Mon Sep 17 00:00:00 2001
From: Nick Terrell 
Date: Tue, 20 Aug 2019 17:13:04 -0700
Subject: [PATCH 028/163] [legacy] Fix buffer overflow in v0.2 and v0.4 raw
 literals decompression

Extends the fix in PR#1722 to v0.2 and v0.4. These aren't built into
zstd by default, and v0.5 onward are not affected.

I only add the `srcSize > BLOCKSIZE` check to v0.4 because the comments
say that it must hold, but the equivalent comment isn't present in v0.2.

Credit to OSS-Fuzz.
---
 lib/legacy/zstd_v02.c | 1 +
 lib/legacy/zstd_v04.c | 6 +++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/legacy/zstd_v02.c b/lib/legacy/zstd_v02.c
index 793df6024..de0a4bd6b 100644
--- a/lib/legacy/zstd_v02.c
+++ b/lib/legacy/zstd_v02.c
@@ -2889,6 +2889,7 @@ static size_t ZSTD_decodeLiteralsBlock(void* ctx,
             const size_t litSize = (MEM_readLE32(istart) & 0xFFFFFF) >> 2;   /* no buffer issue : srcSize >= MIN_CBLOCK_SIZE */
             if (litSize > srcSize-11)   /* risk of reading too far with wildcopy */
             {
+                if (litSize > BLOCKSIZE) return ERROR(corruption_detected);
                 if (litSize > srcSize-3) return ERROR(corruption_detected);
                 memcpy(dctx->litBuffer, istart, litSize);
                 dctx->litPtr = dctx->litBuffer;
diff --git a/lib/legacy/zstd_v04.c b/lib/legacy/zstd_v04.c
index 645a6e313..201ce2b69 100644
--- a/lib/legacy/zstd_v04.c
+++ b/lib/legacy/zstd_v04.c
@@ -2655,6 +2655,7 @@ static size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx,
             const size_t litSize = (MEM_readLE32(istart) & 0xFFFFFF) >> 2;   /* no buffer issue : srcSize >= MIN_CBLOCK_SIZE */
             if (litSize > srcSize-11)   /* risk of reading too far with wildcopy */
             {
+                if (litSize > BLOCKSIZE) return ERROR(corruption_detected);
                 if (litSize > srcSize-3) return ERROR(corruption_detected);
                 memcpy(dctx->litBuffer, istart, litSize);
                 dctx->litPtr = dctx->litBuffer;
@@ -3034,9 +3035,12 @@ static size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx,
 {
     /* blockType == blockCompressed */
     const BYTE* ip = (const BYTE*)src;
+    size_t litCSize;
+
+    if (srcSize > BLOCKSIZE) return ERROR(corruption_detected);
 
     /* Decode literals sub-block */
-    size_t litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize);
+    litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize);
     if (ZSTD_isError(litCSize)) return litCSize;
     ip += litCSize;
     srcSize -= litCSize;

From 901ea61f83333c88e749c6fb3d8d35f01378bde4 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Wed, 21 Aug 2019 17:49:17 +0200
Subject: [PATCH 029/163] Tweaks to create a single-file decoder

The CHECK_F macros differ slightly (but eventually do the same thing). Older GCC needs to fallback on the old-style pragma optimisation flags.
---
 lib/common/compiler.h           | 9 +++++++--
 lib/common/fse_decompress.c     | 2 ++
 lib/decompress/huf_decompress.c | 2 ++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/lib/common/compiler.h b/lib/common/compiler.h
index 6686b837d..36584aa69 100644
--- a/lib/common/compiler.h
+++ b/lib/common/compiler.h
@@ -127,9 +127,14 @@
     }                                     \
 }
 
-/* vectorization */
+/* vectorization
+ * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax */
 #if !defined(__clang__) && defined(__GNUC__)
-#  define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
+#  if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5)
+#    define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
+#  else
+#    define DONT_VECTORIZE _Pragma("GCC optimize(\"no-tree-vectorize\")")
+#  endif
 #else
 #  define DONT_VECTORIZE
 #endif
diff --git a/lib/common/fse_decompress.c b/lib/common/fse_decompress.c
index 72bbead5b..4f0737898 100644
--- a/lib/common/fse_decompress.c
+++ b/lib/common/fse_decompress.c
@@ -52,7 +52,9 @@
 #define FSE_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c)   /* use only *after* variable declarations */
 
 /* check and forward error code */
+#ifndef CHECK_F
 #define CHECK_F(f) { size_t const e = f; if (FSE_isError(e)) return e; }
+#endif
 
 
 /* **************************************************************
diff --git a/lib/decompress/huf_decompress.c b/lib/decompress/huf_decompress.c
index 3f8bd2973..bb2d0a96b 100644
--- a/lib/decompress/huf_decompress.c
+++ b/lib/decompress/huf_decompress.c
@@ -61,7 +61,9 @@
 *  Error Management
 ****************************************************************/
 #define HUF_isError ERR_isError
+#ifndef CHECK_F
 #define CHECK_F(f) { size_t const err_ = (f); if (HUF_isError(err_)) return err_; }
+#endif
 
 
 /* **************************************************************

From b3540507f5239f9d0810c3b9e2b920601687738d Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Wed, 21 Aug 2019 10:27:54 -0700
Subject: [PATCH 030/163] Remove bc from play tests

---
 tests/playTests.sh | 41 +++++++++++++++++------------------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/tests/playTests.sh b/tests/playTests.sh
index c516aa712..b74076763 100755
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
@@ -408,6 +408,23 @@ println "compress multiple files including a missing one (notHere) : "
 $ZSTD -f tmp1 notHere tmp2 && die "missing file not detected!"
 
 
+println "\n===>  stream-size mode"
+
+./datagen -g11000 > tmp
+println "test : basic file compression vs sized streaming compression"
+file_size=$($ZSTD -14 -f tmp -o tmp.zst && wc -c < tmp.zst)
+stream_size=$(cat tmp | $ZSTD -14 --stream-size=11000 | wc -c)
+if [ "$stream_size" -gt "$file_size" ]; then
+  die "hinted compression larger than expected"
+fi
+println "test : sized streaming compression and decompression"
+cat tmp | $ZSTD -14 -f tmp -o --stream-size=11000 tmp.zst
+$ZSTD -df tmp.zst -o tmp_decompress
+cmp tmp tmp_decompress || die "difference between original and decompressed file"
+println "test : incorrect stream size"
+cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11001 && die "should fail with incorrect stream size"
+
+
 println "\n===>  dictionary tests "
 
 println "- test with raw dict (content only) "
@@ -1019,28 +1036,4 @@ test -f dictionary
 rm -f tmp* dictionary
 
 
-println "\n===>  stream-size mode"
-
-./datagen -g11000 > tmp
-println "test : basic file compression vs sized streaming compression"
-$ZSTD -14 -f tmp -o tmp.zst 2>&1 | tee file.out
-cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11000 2>&1 | tee stream_sized.out
-
-file_ratio=$(cat file.out | awk '{print $4}' | sed 's/%//g')
-stream_sized_ratio=$(cat stream_sized.out | awk '{print $4}' | sed 's/%//g')
-rm file.out stream_sized.out
-
-ratio_diff=$(echo $file_ratio - $stream_sized_ratio | bc)
-if [ $(echo "(100 * $ratio_diff) > 5" | bc -l) == 1 ]
-then
-  die "greater than 0.05% difference between file and sized-streaming compression"
-fi
-println "test : sized streaming compression and decompression"
-cat tmp | $ZSTD -14 -f tmp -o --stream-size=11000 tmp.zst
-$ZSTD -df tmp.zst -o tmp_decompress
-cmp tmp tmp_decompress || die "difference between original and decompressed file"
-println "test : incorrect stream size"
-cat tmp | $ZSTD -14 -f -o tmp.zst --stream-size=11001 && die "should fail with incorrect stream size"
-
-
 rm -f tmp*

From 2cdda8b3c43c23981941cdd97c1a517981d2339e Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Thu, 22 Aug 2019 09:13:28 -0700
Subject: [PATCH 031/163] Minor documentation update

---
 programs/zstd.1.md | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/programs/zstd.1.md b/programs/zstd.1.md
index e3f729282..ee5db9d63 100644
--- a/programs/zstd.1.md
+++ b/programs/zstd.1.md
@@ -144,6 +144,11 @@ the last one takes effect.
     Due to the chaotic nature of dynamic adaptation, compressed result is not reproducible.
     _note_ : at the time of this writing, `--adapt` can remain stuck at low speed
     when combined with multiple worker threads (>=2).
+* `--stream-size=#` :
+    When handling input from a stream, `zstd` must guess how large the source size
+    will be when optimizing compression parameters. This option sets the pledged source
+    size of a stream to eliminate that guesswork. Note that the pledged size must be exact;
+    incorrect stream sizes will cause an error.
 * `--rsyncable` :
     `zstd` will periodically synchronize the compression state to make the
     compressed file more rsync-friendly. There is a negligible impact to
@@ -152,12 +157,6 @@ the last one takes effect.
     This feature does not work with `--single-thread`. You probably don't want
     to use it with long range mode, since it will decrease the effectiveness of
     the synchronization points, but your milage may vary.
-* `--stream-size` :
-    When handling input from a stream, `zstd` must guess how large the source size
-    will be when optimizing compression parameters. If the stream size is relatively
-    small, this guess may be a poor one, resulting in a higher compression ratio than
-    expected. This feature will set the source size of a stream. Note that it must
-    be exact; incorrect stream sizes will cause an error.
 * `-D file`:
     use `file` as Dictionary to compress or decompress FILE(s)
 * `--no-dictID`:

From fd486a846abcbf6c92496dd4915d6a46bd4790c2 Mon Sep 17 00:00:00 2001
From: Nick Magerko 
Date: Thu, 22 Aug 2019 09:37:47 -0700
Subject: [PATCH 032/163] Differentiate --stream-size from --size-hint

---
 programs/zstd.1.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/programs/zstd.1.md b/programs/zstd.1.md
index ee5db9d63..1bdc42654 100644
--- a/programs/zstd.1.md
+++ b/programs/zstd.1.md
@@ -145,10 +145,10 @@ the last one takes effect.
     _note_ : at the time of this writing, `--adapt` can remain stuck at low speed
     when combined with multiple worker threads (>=2).
 * `--stream-size=#` :
-    When handling input from a stream, `zstd` must guess how large the source size
-    will be when optimizing compression parameters. This option sets the pledged source
-    size of a stream to eliminate that guesswork. Note that the pledged size must be exact;
-    incorrect stream sizes will cause an error.
+    Sets the pledged source size of input coming from a stream. This value must be exact, as it
+    will be included in the produced frame header. Incorrect stream sizes will cause an error.
+    This information will be used to better optimize compression parameters, resulting in
+    better and potentially faster compression, especially for smaller source sizes.
 * `--rsyncable` :
     `zstd` will periodically synchronize the compression state to make the
     compressed file more rsync-friendly. There is a negligible impact to

From e2030a2c40de6e5b452ce4530896773f08cbd9b7 Mon Sep 17 00:00:00 2001
From: Nick Terrell 
Date: Thu, 22 Aug 2019 17:27:15 -0700
Subject: [PATCH 033/163] [fuzz] Add a DEBUGLOG(3) statement to print file

Enable it by building with this command:

```
./fuzz.py build all --debug 3
```
---
 tests/fuzz/fuzz_helpers.h      | 1 +
 tests/fuzz/regression_driver.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/tests/fuzz/fuzz_helpers.h b/tests/fuzz/fuzz_helpers.h
index 0cf79d0d7..0ee85fc7e 100644
--- a/tests/fuzz/fuzz_helpers.h
+++ b/tests/fuzz/fuzz_helpers.h
@@ -14,6 +14,7 @@
 #ifndef FUZZ_HELPERS_H
 #define FUZZ_HELPERS_H
 
+#include "debug.h"
 #include "fuzz.h"
 #include "xxhash.h"
 #include "zstd.h"
diff --git a/tests/fuzz/regression_driver.c b/tests/fuzz/regression_driver.c
index 658c685f4..e3ebcd5ce 100644
--- a/tests/fuzz/regression_driver.c
+++ b/tests/fuzz/regression_driver.c
@@ -36,6 +36,7 @@ int main(int argc, char const **argv) {
     fprintf(stderr, "WARNING: No files passed to %s\n", argv[0]);
   for (i = 0; i < numFiles; ++i) {
     char const *fileName = files[i];
+    DEBUGLOG(3, "Running %s", fileName);
     size_t const fileSize = UTIL_getFileSize(fileName);
     size_t readSize;
     FILE *file;

From 0a49353a4634b963e2065f84a5472d3b74bc75f6 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Fri, 23 Aug 2019 18:43:29 +0200
Subject: [PATCH 034/163] Added generator script and simple test

The script will combine decompressor sources into a single file. The example shows this in use.
---
 contrib/declib/README.md       |    8 +
 contrib/declib/combine.sh      |   80 +
 contrib/declib/tests/simple.c  | 3392 ++++++++++++++++++++++++++++++++
 contrib/declib/zstddeclib-in.c |   66 +
 4 files changed, 3546 insertions(+)
 create mode 100644 contrib/declib/README.md
 create mode 100755 contrib/declib/combine.sh
 create mode 100644 contrib/declib/tests/simple.c
 create mode 100755 contrib/declib/zstddeclib-in.c

diff --git a/contrib/declib/README.md b/contrib/declib/README.md
new file mode 100644
index 000000000..727b3e8fa
--- /dev/null
+++ b/contrib/declib/README.md
@@ -0,0 +1,8 @@
+# Single File Zstandard Decompression Library
+
+Create the file using the shell script:
+```
+cd zstd/contrib/declib
+./combine.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
+```
+Then add the resulting file to your project (see the [test sources](tests) for examples).
diff --git a/contrib/declib/combine.sh b/contrib/declib/combine.sh
new file mode 100755
index 000000000..4a4afc3a5
--- /dev/null
+++ b/contrib/declib/combine.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+# Tool to bundle multiple C/C++ source files, inlining any includes.
+
+# Common file roots
+ROOTS="./"
+
+# Files previously visited
+FOUND=""
+
+# Prints the script usage then exits
+function usage {
+  echo "Usage: $0 [-r ] infile"
+  echo "  -r file root search paths"
+  echo "Example: $0 -r \"../my/path ../my/other\" in.c > out.c"
+  exit 1
+}
+
+# Tests if list $1 has item $2
+function list_has_item {
+  local list="$1"
+  local item="$2"
+  if [[ $list =~ (^|[[:space:]]*)"$item"($|[[:space:]]*) ]]; then
+    return 0
+  fi
+  return 1
+}
+
+# Adds the contents of $1 with any of its includes inlined
+function add_file {
+  # Match the path
+  local file=
+  for root in $ROOTS; do
+    if test -f "$root/$1"; then
+      file="$root/$1"
+    fi
+  done
+  if [ "$file" != "" ]; then
+    # Read the file
+    local line
+    while IFS= read -r line; do
+      if [[ $line =~ ^[[:space:]]*\#[[:space:]]*include[[:space:]]*\"(.*)\".* ]]; then
+        # We have an include directive
+        local inc=${BASH_REMATCH[1]}
+        if ! `list_has_item "$FOUND" "$inc"`; then
+          # And we've not previously encountered it
+          FOUND="$FOUND $inc"
+          echo "/**** start inlining $inc ****/"
+          add_file $inc
+          echo "/**** ended inlining $inc ****/"
+        else
+          echo "/**** skipping file: $inc ****/"
+        fi
+      else
+        # Otherwise write the source line
+        echo "$line"
+      fi
+    done < "$file"
+  else
+    echo "#error Unable to find \"$1\""
+  fi
+}
+
+while getopts ":r:" opts; do
+  case $opts in
+  r)
+    ROOTS="$ROOTS $OPTARG"
+    ;;
+  *)
+    usage
+    ;;
+  esac
+done
+shift $((OPTIND-1))
+
+if [ "$1" != "" ]; then
+  add_file $1
+else
+  usage
+fi
diff --git a/contrib/declib/tests/simple.c b/contrib/declib/tests/simple.c
new file mode 100644
index 000000000..cb200c938
--- /dev/null
+++ b/contrib/declib/tests/simple.c
@@ -0,0 +1,3392 @@
+/**
+ * \file simple.c
+ * Simple standalone example of using the single-file \c zstddeclib.
+ */
+#include "../zstddeclib.c"
+
+#include "stdio.h"
+#include "string.h"
+
+//************************* Test Data (DXT texture) **************************/
+
+/**
+ * Raw 256x256 DXT1 data (used to compare the result).
+ */
+static char const rawDxt1[] = {
+  0x3c, 0xe7, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x00, 0x28, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0xe8, 0x41, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0xff, 0xff, 0xe7, 0x39, 0x5a, 0x5a, 0x5a, 0xa0,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xfb, 0xde, 0x90, 0x90, 0x90, 0x55, 0xe7, 0x39, 0x9a, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x28, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x3c, 0xe7, 0xc7, 0x39, 0x58, 0x58, 0x58, 0x00,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x3c, 0xe7, 0x86, 0x31, 0xcd, 0xcd, 0xcd, 0x00, 0xe8, 0x41, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0xe7, 0x39, 0xba, 0xd6,
+  0x80, 0x80, 0x80, 0x55, 0x08, 0x42, 0x1b, 0xdf, 0x01, 0x01, 0x01, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0xfb, 0xde, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x00, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xfb, 0xde,
+  0x40, 0x40, 0x40, 0x55, 0x1c, 0xe7, 0xe8, 0x41, 0x56, 0x56, 0x56, 0x00,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0xff, 0xff, 0x29, 0x4a,
+  0x15, 0x15, 0x15, 0x2a, 0xda, 0xd6, 0xe8, 0x41, 0x57, 0x57, 0x57, 0x00,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0xe7, 0x39, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x5c, 0xe7, 0x49, 0x4a, 0x53, 0x53, 0x53, 0x00, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x1b, 0xdf, 0xe7, 0x39,
+  0x25, 0x25, 0x25, 0x00, 0xba, 0xd6, 0x08, 0x42, 0x55, 0x55, 0x55, 0x00,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0xe7, 0x39, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0xfb, 0xde, 0xe8, 0x41, 0x52, 0x52, 0x52, 0x00, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x1b, 0xdf, 0x08, 0x42,
+  0x85, 0x85, 0x85, 0x00, 0xe7, 0x39, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6,
+  0x00, 0x00, 0x00, 0x55, 0x9a, 0xd6, 0x08, 0x42, 0x55, 0x55, 0xd5, 0x00,
+  0xdf, 0xff, 0x08, 0x42, 0x5c, 0x5c, 0x5c, 0xa0, 0xe7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0xcb, 0x5a, 0x65, 0x29, 0xa8, 0xfe, 0xfe, 0xfe,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x69, 0x4a, 0xc7, 0x39, 0x00, 0x55, 0x7f, 0x7f,
+  0xf7, 0xbd, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xf0, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x28, 0x42, 0xfb, 0xde,
+  0x90, 0x90, 0x90, 0x90, 0x8a, 0x52, 0x86, 0x31, 0x02, 0xfd, 0xfd, 0xfd,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0xcb, 0x5a, 0x65, 0x29, 0x2a, 0xbf, 0xbf, 0xbf,
+  0xe7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x86, 0x31,
+  0xcd, 0xcd, 0xcd, 0xcd, 0x69, 0x4a, 0xc7, 0x39, 0x00, 0x55, 0xfd, 0xfd,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x10, 0x84, 0xc7, 0x39, 0x3f, 0x15, 0x15, 0x15,
+  0x28, 0x42, 0x3c, 0xe7, 0x01, 0x01, 0x01, 0x01, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0xda, 0xd6, 0xe7, 0x39,
+  0x49, 0x49, 0x49, 0x49, 0x69, 0x4a, 0xc7, 0x39, 0x00, 0x55, 0xfd, 0x55,
+  0x6a, 0x52, 0xa6, 0x31, 0x00, 0xff, 0xff, 0xd5, 0x6a, 0x52, 0xe7, 0x39,
+  0x00, 0x55, 0x55, 0xbf, 0x28, 0x42, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40,
+  0xd7, 0xbd, 0x41, 0x08, 0xfc, 0xfc, 0xfc, 0xfc, 0x6a, 0x52, 0xe7, 0x39,
+  0x00, 0x55, 0x55, 0xfe, 0x6a, 0x52, 0xa6, 0x31, 0x00, 0xff, 0xff, 0x57,
+  0x69, 0x4a, 0xc7, 0x39, 0x00, 0x55, 0x7f, 0x55, 0xba, 0xd6, 0xe7, 0x39,
+  0x61, 0x61, 0x61, 0x61, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x29, 0x4a, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40,
+  0xcf, 0x7b, 0xc7, 0x39, 0xfc, 0x54, 0x54, 0x54, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x8a, 0x52, 0xa6, 0x31, 0x80, 0x7f, 0x7f, 0x7f, 0xbe, 0xf7, 0x49, 0x4a,
+  0x53, 0x53, 0x53, 0x53, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe7, 0x39, 0x25, 0x25, 0x25, 0x25,
+  0x0c, 0x63, 0x45, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x8a, 0x52, 0x86, 0x31, 0x80, 0x7f, 0x7f, 0x7f, 0xba, 0xd6, 0x08, 0x42,
+  0x52, 0x52, 0x52, 0x52, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0xfb, 0xde, 0x28, 0x42, 0x85, 0x85, 0x85, 0x85,
+  0x8a, 0x52, 0x86, 0x31, 0x02, 0xfd, 0xfd, 0xfd, 0x0c, 0x63, 0x65, 0x29,
+  0xaa, 0xff, 0xff, 0xff, 0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff,
+  0x2c, 0x63, 0x45, 0x29, 0x2a, 0xbf, 0xbf, 0xbf, 0xde, 0xf7, 0x08, 0x42,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39,
+  0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x49, 0x4a, 0xc7, 0x39, 0x1f, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff,
+  0x09, 0x09, 0x09, 0x09, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd,
+  0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95, 0xe7, 0x39, 0x1c, 0xe7,
+  0x01, 0x01, 0x01, 0x01, 0x34, 0xa5, 0x41, 0x08, 0xff, 0xff, 0xff, 0x2f,
+  0x58, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0xb5, 0xa0, 0xb6, 0xb5, 0xe7, 0x39,
+  0x55, 0xd5, 0x00, 0x5e, 0xda, 0xd6, 0x86, 0x31, 0x49, 0x03, 0xc2, 0x49,
+  0x18, 0xc6, 0x08, 0x42, 0xb5, 0xa0, 0x55, 0x55, 0x55, 0xad, 0xc7, 0x39,
+  0x00, 0xaa, 0x55, 0x55, 0x38, 0xc6, 0xe7, 0x39, 0x00, 0x7f, 0x55, 0x55,
+  0x08, 0x42, 0xda, 0xd6, 0x55, 0x40, 0x40, 0x40, 0xdf, 0xff, 0xe7, 0x39,
+  0xa8, 0x56, 0x56, 0x56, 0x38, 0xc6, 0x08, 0x42, 0x00, 0xf5, 0x55, 0x55,
+  0x55, 0xad, 0xc7, 0x39, 0x00, 0xaa, 0x55, 0x55, 0x18, 0xc6, 0xe7, 0x39,
+  0x7e, 0x0a, 0x55, 0x55, 0xfb, 0xde, 0x86, 0x31, 0x61, 0x80, 0xa3, 0x61,
+  0x18, 0xc6, 0x08, 0x42, 0x55, 0x57, 0x02, 0xf5, 0x59, 0xce, 0xe8, 0x41,
+  0x55, 0x55, 0x5e, 0x0a, 0x55, 0xad, 0xc7, 0x39, 0x55, 0x55, 0x55, 0x78,
+  0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0x00, 0x00,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0x65, 0x29,
+  0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xde, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39,
+  0xae, 0xae, 0xae, 0xae, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a,
+  0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39,
+  0x1f, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42,
+  0xa8, 0xa8, 0xa8, 0xa8, 0x28, 0x42, 0x66, 0x31, 0xaa, 0xaa, 0xaa, 0xea,
+  0x59, 0xce, 0xc7, 0x39, 0x55, 0x55, 0x55, 0x2d, 0xbe, 0xf7, 0xe7, 0x39,
+  0xd5, 0x95, 0xab, 0xde, 0xfb, 0xde, 0xc7, 0x39, 0xb4, 0xa0, 0x5c, 0x54,
+  0x38, 0xc6, 0xe7, 0x39, 0xa0, 0x57, 0x55, 0x55, 0x8e, 0x73, 0xc7, 0x39,
+  0x5c, 0x55, 0x55, 0x55, 0x08, 0x42, 0xc7, 0x39, 0xb5, 0xaa, 0xaa, 0xaa,
+  0xba, 0xd6, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde,
+  0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea,
+  0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24, 0x08, 0x42, 0xc7, 0x39,
+  0x5e, 0xaa, 0xaa, 0xaa, 0xeb, 0x5a, 0x86, 0x31, 0x25, 0xff, 0xff, 0xff,
+  0x58, 0xc6, 0xe7, 0x39, 0x0a, 0xd5, 0x55, 0x55, 0xbe, 0xf7, 0xc7, 0x39,
+  0x1e, 0x2b, 0x35, 0x35, 0x59, 0xce, 0x08, 0x42, 0x57, 0x56, 0x80, 0xb7,
+  0xda, 0xd6, 0xe7, 0x39, 0x55, 0x55, 0x55, 0x78, 0x08, 0x42, 0xa6, 0x31,
+  0xaa, 0xaa, 0xaa, 0xa9, 0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea,
+  0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xc7, 0x39,
+  0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0xae,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a,
+  0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xa7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0x56,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0x28, 0x42, 0xa6, 0x31, 0xea, 0xea, 0xea, 0x7f,
+  0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xe8, 0x41, 0xdb, 0xde,
+  0x90, 0x90, 0x90, 0x90, 0x28, 0x42, 0x86, 0x31, 0xa9, 0xa9, 0xa9, 0xfd,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0x49, 0x4a, 0xc7, 0x39, 0x1f, 0x1f, 0x1f, 0x95,
+  0xa7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0x5d, 0xef, 0x45, 0x29,
+  0xcd, 0xcd, 0xcd, 0xcd, 0x9d, 0xef, 0xc7, 0x39, 0x55, 0x55, 0xb5, 0xeb,
+  0x96, 0xb5, 0xa7, 0x39, 0x95, 0x03, 0x78, 0x55, 0xf7, 0xbd, 0xc7, 0x39,
+  0xe0, 0x57, 0x55, 0x55, 0x10, 0x84, 0xa2, 0x10, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xe8, 0x41, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xba, 0xd6, 0xa7, 0x39,
+  0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39, 0xab, 0xab, 0xab, 0x55,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40,
+  0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0x55, 0xc7, 0x39, 0xdb, 0xde,
+  0x24, 0x24, 0x24, 0x24, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0x28, 0x42, 0xbe, 0xf7, 0x40, 0x40, 0x40, 0x40,
+  0xae, 0x73, 0xc3, 0x18, 0xfc, 0xfc, 0xfc, 0xfc, 0x38, 0xc6, 0xc7, 0x39,
+  0x0b, 0xd5, 0x55, 0x55, 0x38, 0xc6, 0xa7, 0x39, 0x56, 0xc2, 0x2d, 0x55,
+  0x38, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x58, 0x83, 0xbe, 0xf7, 0x28, 0x42,
+  0x53, 0x53, 0x53, 0x53, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xfb, 0xde, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x25,
+  0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0x55, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xe8, 0x41, 0x65, 0x29, 0xc0, 0xc0, 0xc0, 0x6a, 0xba, 0xd6, 0xe7, 0x39,
+  0x52, 0x52, 0x52, 0x52, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xfb, 0xde, 0xe7, 0x39, 0x85, 0x85, 0x85, 0x85,
+  0x28, 0x42, 0x86, 0x31, 0xa9, 0xa9, 0xa9, 0xfd, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xc7, 0x39, 0x1f, 0x1f, 0x1f, 0x15, 0xde, 0xf7, 0xc7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0xe7, 0x66, 0x31, 0x2f, 0x0a, 0x25, 0x25,
+  0x55, 0xad, 0xe8, 0x41, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x34, 0xa5, 0xc7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x59, 0xce, 0xa7, 0x39,
+  0xf0, 0xa0, 0x50, 0x50, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0xda, 0xd6, 0xa7, 0x39, 0x8f, 0x0a, 0x85, 0x85,
+  0x34, 0xa5, 0xc7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x55, 0xad, 0xe8, 0x41, 0xff, 0x00, 0x55, 0x55, 0x5c, 0xe7, 0x66, 0x31,
+  0xf8, 0xa0, 0x58, 0x58, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x55, 0xad, 0xc7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x18, 0xc6, 0xa7, 0x39,
+  0xff, 0x2a, 0x35, 0xc3, 0xbe, 0xf7, 0x8a, 0x52, 0x0d, 0x80, 0x4f, 0x45,
+  0xdb, 0xde, 0xa6, 0x31, 0xf8, 0xaa, 0x55, 0x55, 0xc7, 0x39, 0x34, 0xa5,
+  0xaa, 0x55, 0x00, 0x00, 0x55, 0xad, 0xe8, 0x41, 0xff, 0x00, 0x55, 0x55,
+  0x9a, 0xd6, 0xc7, 0x39, 0xbf, 0x2a, 0xd5, 0xd5, 0x3c, 0xe7, 0xc7, 0x39,
+  0xfc, 0xa8, 0x54, 0x54, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0xfb, 0xde, 0x86, 0x31, 0xcb, 0x82, 0x49, 0x49,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0xfb, 0xde, 0xc7, 0x39, 0x3f, 0x2a, 0x15, 0x15, 0xdb, 0xde, 0xa7, 0x39,
+  0xfc, 0xa8, 0x56, 0x56, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0xdb, 0xde, 0x86, 0x31, 0xe3, 0x82, 0x61, 0x61,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x7d, 0xef, 0xc7, 0x39, 0x3f, 0x2a, 0x15, 0x15, 0x79, 0xce, 0xc7, 0x39,
+  0xfe, 0xa8, 0x57, 0x57, 0xc7, 0x39, 0x34, 0xa5, 0xaa, 0x55, 0x00, 0x00,
+  0xc7, 0x39, 0x34, 0xa5, 0xaa, 0x55, 0x00, 0x00, 0x1c, 0xe7, 0xa6, 0x31,
+  0x2f, 0xaa, 0x55, 0x55, 0xde, 0xf7, 0x08, 0x42, 0x70, 0x02, 0xb3, 0x53,
+  0xba, 0xd6, 0xa6, 0x31, 0xff, 0xa8, 0x58, 0xc3, 0x55, 0xad, 0xc7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x1c, 0xe7, 0xa6, 0x31, 0x2f, 0x0a, 0x25, 0x25, 0x55, 0xad, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x34, 0xa5, 0xc7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0xfb, 0xde, 0xc7, 0x39, 0xf2, 0xa0, 0x52, 0x52,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x1c, 0xe7, 0xc7, 0x39, 0x8f, 0x0a, 0x85, 0x85, 0x34, 0xa5, 0xc7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55, 0x34, 0xa5, 0xc7, 0x39,
+  0xbf, 0x00, 0xd5, 0xd5, 0x9e, 0xf7, 0x86, 0x31, 0xf8, 0xa8, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39,
+  0x1f, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09,
+  0xe7, 0x39, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x60, 0x38, 0xc6, 0xe7, 0x39,
+  0x95, 0x8d, 0x70, 0x56, 0xe7, 0x39, 0x58, 0xc6, 0x09, 0x00, 0x00, 0x00,
+  0x5d, 0xef, 0x65, 0x29, 0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42,
+  0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39,
+  0x95, 0x95, 0x95, 0x95, 0x08, 0x42, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xba, 0xd6, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde,
+  0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea,
+  0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0x9e, 0xf7,
+  0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea,
+  0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53, 0xe7, 0x39, 0x1c, 0xe7,
+  0x60, 0x00, 0x00, 0x00, 0x9a, 0xd6, 0xc7, 0x39, 0x5c, 0x62, 0x0d, 0x95,
+  0x5c, 0xe7, 0xc7, 0x39, 0x55, 0x55, 0x57, 0x58, 0x1b, 0xdf, 0xc7, 0x39,
+  0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0xae,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a,
+  0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde,
+  0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39, 0x1f, 0x1f, 0x1f, 0x9f,
+  0x9e, 0xf7, 0xa6, 0x31, 0x58, 0xd8, 0xa8, 0x70, 0x18, 0xc6, 0xa7, 0x39,
+  0xc3, 0x58, 0x57, 0x55, 0x86, 0x31, 0x49, 0x4a, 0xa8, 0xaa, 0xaa, 0xaa,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29,
+  0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95,
+  0x08, 0x42, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0xc7, 0x39,
+  0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40,
+  0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea, 0xe7, 0x39, 0xfb, 0xde,
+  0x24, 0x24, 0x24, 0x24, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40,
+  0x96, 0xb5, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42,
+  0x53, 0x53, 0x53, 0x53, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x86, 0x31, 0x49, 0x4a, 0x2a, 0xaa, 0xaa, 0xaa, 0xba, 0xd6, 0xa7, 0x39,
+  0xc3, 0x25, 0xd5, 0x55, 0xfb, 0xde, 0xe7, 0x39, 0x25, 0x26, 0x00, 0x0d,
+  0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0xa7, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39,
+  0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39,
+  0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0x21, 0x08, 0xff, 0xff, 0xff, 0xbf,
+  0xf7, 0xbd, 0xc7, 0x39, 0x95, 0x05, 0xe3, 0x5c, 0xa7, 0x39, 0xff, 0xff,
+  0x09, 0x09, 0x09, 0x09, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd,
+  0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95, 0x08, 0x42, 0x1c, 0xe7,
+  0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x49,
+  0x08, 0x42, 0xc7, 0x39, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5,
+  0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39,
+  0xea, 0xea, 0xea, 0xea, 0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0x00, 0x00,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0x65, 0x29,
+  0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x3c, 0xe7, 0xa7, 0x39, 0x25, 0x25, 0x25, 0x25, 0xfb, 0xde, 0xe8, 0x41,
+  0x56, 0x50, 0xc9, 0x35, 0xe7, 0x39, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a,
+  0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xfb, 0xde, 0x65, 0x29, 0x25, 0x25, 0x0a, 0x0a, 0xba, 0xd6, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x9a, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x9a, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0xf3, 0x9c, 0x00, 0x00,
+  0xff, 0xff, 0x00, 0x00, 0x1e, 0xe7, 0xa7, 0x39, 0x5a, 0x5a, 0xa0, 0xa0,
+  0xc7, 0x39, 0x19, 0xad, 0x00, 0x00, 0x55, 0x55, 0xc7, 0x39, 0x19, 0xad,
+  0x00, 0x00, 0x55, 0x55, 0xc7, 0x39, 0x19, 0xad, 0x00, 0x00, 0x55, 0x55,
+  0x9d, 0xd6, 0xa8, 0x39, 0x85, 0x85, 0x0a, 0xaa, 0xa6, 0x31, 0xf9, 0xa4,
+  0x00, 0x00, 0x55, 0x55, 0xbf, 0xde, 0xa7, 0x31, 0x55, 0x55, 0xaa, 0x0a,
+  0xbe, 0xde, 0xc9, 0x39, 0x25, 0x69, 0xa0, 0xaa, 0x19, 0xad, 0xa6, 0x31,
+  0xd7, 0x55, 0x00, 0x00, 0xff, 0xe6, 0x47, 0x29, 0x58, 0x58, 0xa0, 0xaa,
+  0xc7, 0x39, 0xfa, 0xa4, 0x00, 0x00, 0x55, 0x55, 0xc7, 0x39, 0xfb, 0xa4,
+  0x00, 0x00, 0x55, 0x55, 0xfa, 0xa4, 0xc7, 0x39, 0x55, 0x55, 0x00, 0x00,
+  0x3f, 0xef, 0x05, 0x21, 0xcd, 0xcd, 0x8a, 0xaa, 0xf9, 0xa4, 0xa7, 0x39,
+  0x55, 0x55, 0x00, 0x00, 0xc7, 0x39, 0xd9, 0xa4, 0x00, 0x00, 0x55, 0x55,
+  0xc7, 0x39, 0xd9, 0xa4, 0x00, 0x00, 0x55, 0x55, 0x7e, 0xd6, 0xc7, 0x39,
+  0xd5, 0xd5, 0x2a, 0xaa, 0xe9, 0x39, 0x7f, 0xef, 0x01, 0x01, 0xa9, 0xaa,
+  0x3f, 0xce, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x1f, 0xce, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x3e, 0xce, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x9c, 0xd6, 0x66, 0x29, 0x49, 0x49, 0x82, 0xaa, 0x58, 0xad, 0xc8, 0x39,
+  0x55, 0x55, 0x00, 0xaa, 0x58, 0xad, 0xc8, 0x39, 0x55, 0x55, 0x00, 0xaa,
+  0x57, 0xad, 0xc8, 0x39, 0x55, 0x55, 0x00, 0xaa, 0x1c, 0xe7, 0xe9, 0x39,
+  0x15, 0x15, 0x2a, 0xff, 0x5d, 0xef, 0xc8, 0x39, 0x56, 0x56, 0xa8, 0xff,
+  0x37, 0xad, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xaa, 0x36, 0xa5, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xaa, 0x35, 0xa5, 0xa7, 0x39, 0x55, 0x55, 0x00, 0xaa,
+  0xdb, 0xd6, 0xc8, 0x39, 0x61, 0x61, 0x82, 0xff, 0x35, 0xa5, 0xa7, 0x39,
+  0x55, 0x55, 0x00, 0xaa, 0x14, 0xa5, 0xa7, 0x39, 0x55, 0x55, 0x00, 0xaa,
+  0x3c, 0xe7, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xff, 0x7d, 0xef, 0xc7, 0x39,
+  0x15, 0x15, 0x2a, 0xff, 0x3c, 0xe7, 0xa6, 0x31, 0x57, 0x57, 0xaa, 0xaa,
+  0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x1b, 0xdf, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x1c, 0xe7, 0xa6, 0x31, 0x55, 0x55, 0xaa, 0xaa,
+  0x7d, 0xef, 0xe7, 0x39, 0x53, 0x53, 0xa2, 0xaa, 0x1b, 0xdf, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x1b, 0xdf, 0x86, 0x31,
+  0x25, 0x25, 0x0a, 0xaa, 0x1b, 0xdf, 0x86, 0x31, 0xd5, 0x55, 0xaa, 0xaa,
+  0xfb, 0xde, 0x08, 0x42, 0x58, 0x41, 0x0a, 0xaa, 0x5d, 0xef, 0xa6, 0x31,
+  0x55, 0x55, 0xaa, 0xa8, 0x1c, 0xe7, 0xa6, 0x31, 0x55, 0x55, 0xaa, 0xaa,
+  0xdb, 0xde, 0xa7, 0x39, 0x52, 0x52, 0xa0, 0xaa, 0x1b, 0xdf, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x1b, 0xdf, 0xc7, 0x39,
+  0x85, 0x85, 0x0a, 0x0a, 0xf3, 0x9c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+  0x9a, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x9a, 0xd6, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x14, 0xa5, 0xa6, 0x31, 0xd5, 0xd5, 0x00, 0x00,
+  0x9d, 0xef, 0x86, 0x31, 0x5c, 0x5c, 0xa8, 0xa8, 0xa6, 0x31, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x86, 0x31, 0x49, 0x4a, 0x02, 0xa9, 0xa9, 0xa9,
+  0x49, 0x4a, 0x45, 0x29, 0xff, 0xaa, 0xaa, 0xaa, 0x49, 0x4a, 0x45, 0x29,
+  0xff, 0xaa, 0xaa, 0xaa, 0x28, 0x42, 0x86, 0x31, 0x55, 0xea, 0xea, 0xea,
+  0xf8, 0xf7, 0xdf, 0x59, 0x5a, 0x5a, 0x5a, 0x5a, 0x7f, 0x6a, 0x5f, 0x49,
+  0xff, 0xaa, 0xaa, 0xaa, 0x7f, 0x6a, 0x5f, 0x49, 0xff, 0xaa, 0xaa, 0xaa,
+  0x7f, 0x6a, 0x5f, 0x49, 0xff, 0xaa, 0xaa, 0xaa, 0x7f, 0x6a, 0x5f, 0x49,
+  0xff, 0xaa, 0xaa, 0xaa, 0x1f, 0xe7, 0xdf, 0x59, 0x55, 0x55, 0xd5, 0x35,
+  0xff, 0xe6, 0xdf, 0x59, 0xcd, 0x73, 0x5c, 0x57, 0x7f, 0x6a, 0x5f, 0x49,
+  0xff, 0xaa, 0xaa, 0xaa, 0x7f, 0x6a, 0x5f, 0x49, 0xff, 0xaa, 0xaa, 0xaa,
+  0x3f, 0x62, 0xbf, 0x51, 0x55, 0xaa, 0xaa, 0xaa, 0x5e, 0x62, 0x3d, 0x49,
+  0xff, 0xaa, 0xaa, 0xaa, 0x1c, 0x5a, 0x7c, 0x49, 0x55, 0xaa, 0xaa, 0xaa,
+  0x3b, 0x5a, 0x1b, 0x41, 0xff, 0xaa, 0xaa, 0xaa, 0x1a, 0x5a, 0xf9, 0x38,
+  0xff, 0xaa, 0xaa, 0xaa, 0xd8, 0x38, 0xb9, 0x49, 0xaa, 0x55, 0x55, 0x55,
+  0xf8, 0x51, 0xd7, 0x30, 0xff, 0xaa, 0xaa, 0xaa, 0xb7, 0x49, 0x16, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x75, 0x41, 0x54, 0x20, 0xaa, 0x00, 0x00, 0x00,
+  0x35, 0x52, 0xf4, 0x30, 0x55, 0xff, 0xff, 0xff, 0x72, 0x20, 0x53, 0x39,
+  0xaa, 0x55, 0x55, 0x55, 0x93, 0x41, 0x70, 0x20, 0xff, 0xaa, 0xaa, 0xaa,
+  0x91, 0x41, 0x4f, 0x18, 0xff, 0xaa, 0xaa, 0xaa, 0x70, 0x39, 0x2e, 0x18,
+  0xff, 0xaa, 0xaa, 0xaa, 0x2f, 0x31, 0x8d, 0x20, 0x55, 0xaa, 0xaa, 0xaa,
+  0x4e, 0x31, 0x0b, 0x10, 0xff, 0xaa, 0xaa, 0xaa, 0x0d, 0x29, 0x6b, 0x18,
+  0x55, 0xaa, 0xaa, 0xaa, 0x4a, 0x10, 0x2c, 0x31, 0x00, 0xaa, 0xaa, 0xaa,
+  0x8c, 0x39, 0x29, 0x10, 0x55, 0xff, 0xff, 0xff, 0x27, 0x08, 0x0a, 0x29,
+  0x00, 0xaa, 0xaa, 0xaa, 0x4a, 0x31, 0x06, 0x08, 0x55, 0xff, 0xff, 0xff,
+  0xa7, 0x18, 0x05, 0x08, 0x55, 0xaa, 0xaa, 0xaa, 0x45, 0x10, 0x03, 0x00,
+  0x57, 0x80, 0x80, 0x80, 0x65, 0x10, 0x02, 0x00, 0x55, 0xaa, 0xaa, 0xaa,
+  0x23, 0x08, 0x01, 0x00, 0x55, 0x80, 0x80, 0x80, 0x24, 0x08, 0x00, 0x00,
+  0x55, 0xfe, 0xfe, 0xfe, 0xa2, 0x10, 0x00, 0x00, 0xd5, 0x95, 0x95, 0x95,
+  0xeb, 0x5a, 0x29, 0x4a, 0xab, 0x00, 0x00, 0x00, 0x8e, 0x73, 0xaa, 0x52,
+  0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff,
+  0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52,
+  0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff,
+  0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52,
+  0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff,
+  0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff, 0x2c, 0x63, 0x8a, 0x52,
+  0x55, 0xaa, 0xaa, 0xaa, 0xeb, 0x5a, 0xfb, 0xde, 0x06, 0x18, 0x60, 0x80,
+  0xba, 0xd6, 0xaa, 0x52, 0x55, 0x55, 0x57, 0x5c, 0x8e, 0x73, 0xaa, 0x52,
+  0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff,
+  0x8e, 0x73, 0xaa, 0x52, 0x55, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xaa, 0x52,
+  0x55, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xcb, 0x5a, 0x85, 0x85, 0x85, 0x85,
+  0x49, 0x4a, 0x45, 0x29, 0xfd, 0xab, 0xab, 0xab, 0x49, 0x4a, 0x45, 0x29,
+  0xff, 0xaa, 0xaa, 0xaa, 0x49, 0x4a, 0x45, 0x29, 0xff, 0xaa, 0xaa, 0xaa,
+  0xaa, 0x52, 0x86, 0x31, 0x95, 0x3f, 0x3f, 0x3f, 0xbe, 0xf7, 0xa7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xfa, 0xf7, 0xff, 0x59,
+  0x5a, 0x5a, 0x5a, 0x5a, 0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0x3f, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xde, 0xff, 0x59, 0x55, 0x55, 0xd5, 0x15,
+  0x5f, 0xef, 0xff, 0x59, 0xcd, 0x73, 0x5c, 0x57, 0x7f, 0x6a, 0x5f, 0x49,
+  0xab, 0xaa, 0xaa, 0xaa, 0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x62, 0xfe, 0x59,
+  0xfa, 0xfa, 0xfa, 0xfa, 0xfe, 0x59, 0xfd, 0x59, 0x78, 0x78, 0x78, 0x78,
+  0xfd, 0x59, 0xdc, 0x51, 0xfa, 0xfa, 0xfa, 0xfa, 0xdd, 0x59, 0xdb, 0x51,
+  0x5f, 0x5f, 0x5f, 0x5f, 0xdb, 0x51, 0x99, 0x49, 0xea, 0xea, 0xea, 0xea,
+  0xb9, 0x49, 0x98, 0x49, 0xe0, 0xe0, 0xe0, 0xe0, 0x98, 0x49, 0x76, 0x41,
+  0xa0, 0xa0, 0xa0, 0xa0, 0x97, 0x49, 0x76, 0x41, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x76, 0x41, 0x54, 0x41, 0xe8, 0xe8, 0xe8, 0xe8, 0x75, 0x41, 0x53, 0x39,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x54, 0x39, 0x32, 0x39, 0xea, 0xea, 0xea, 0xea,
+  0x32, 0x39, 0x31, 0x31, 0xe8, 0xe8, 0xe8, 0xe8, 0x31, 0x31, 0x10, 0x31,
+  0x7a, 0x7a, 0x7a, 0x7a, 0x10, 0x31, 0x0e, 0x29, 0xa0, 0xa0, 0xa0, 0xa0,
+  0x10, 0x31, 0xee, 0x28, 0x5f, 0x5f, 0x5f, 0x5f, 0xee, 0x28, 0xcc, 0x20,
+  0xe8, 0xe8, 0xe8, 0xe8, 0xcd, 0x28, 0xcb, 0x20, 0xfa, 0xfa, 0xfa, 0xfa,
+  0xcc, 0x20, 0xaa, 0x20, 0xfe, 0xfe, 0xfe, 0xfe, 0xaa, 0x20, 0x89, 0x18,
+  0xea, 0xea, 0xea, 0xea, 0xaa, 0x18, 0x88, 0x18, 0x7f, 0x7f, 0x7f, 0x7f,
+  0x88, 0x18, 0x46, 0x10, 0xa8, 0xa8, 0xa8, 0xa8, 0x67, 0x18, 0x66, 0x10,
+  0x7f, 0x7f, 0x7f, 0x7f, 0x66, 0x10, 0x44, 0x10, 0x7a, 0x7a, 0x7a, 0x7a,
+  0x45, 0x10, 0x23, 0x08, 0xfa, 0xfa, 0xfa, 0xfa, 0x23, 0x08, 0x22, 0x08,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x01, 0x00, 0x22, 0x08, 0xa9, 0xa9, 0xa9, 0xa9,
+  0x44, 0x29, 0x00, 0x00, 0xd5, 0xd5, 0xd5, 0xd5, 0x0c, 0x63, 0xeb, 0x5a,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x6e, 0x73, 0xaa, 0x52, 0x7f, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xaa, 0x52,
+  0x72, 0xc9, 0x25, 0x95, 0x1c, 0xe7, 0xe3, 0x18, 0xff, 0xff, 0xff, 0xfc,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xde, 0xeb, 0x5a, 0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xf8, 0xf7, 0xff, 0x59, 0x5a, 0x5a, 0x5a, 0x5a,
+  0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0x3f, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x3f, 0xb5, 0x5f, 0x30, 0xff, 0xff, 0xff, 0x3f,
+  0x5f, 0xd6, 0x1f, 0x62, 0x85, 0x61, 0x50, 0x54, 0x5f, 0x62, 0x7f, 0x51,
+  0xab, 0xaa, 0xaa, 0xaa, 0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xfd, 0x3f, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0x3f, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x1f, 0x62, 0xfe, 0x59, 0xfa, 0xfa, 0xfa, 0xfa,
+  0xfe, 0x59, 0xfd, 0x59, 0x78, 0x78, 0x78, 0x78, 0xfd, 0x59, 0xdc, 0x51,
+  0xfa, 0xfa, 0xfa, 0xfa, 0xdd, 0x59, 0xdb, 0x51, 0x5f, 0x5f, 0x5f, 0x5f,
+  0xdb, 0x51, 0x99, 0x49, 0xea, 0xea, 0xea, 0xea, 0xb9, 0x49, 0x98, 0x49,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x98, 0x49, 0x76, 0x41, 0xa0, 0xa0, 0xa0, 0xa0,
+  0x97, 0x49, 0x76, 0x41, 0xfa, 0xfa, 0xfa, 0xfa, 0x76, 0x41, 0x54, 0x41,
+  0xe8, 0xe8, 0xe8, 0xe8, 0x75, 0x41, 0x53, 0x39, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x54, 0x39, 0x32, 0x39, 0xea, 0xea, 0xea, 0xea, 0x32, 0x39, 0x31, 0x31,
+  0xe8, 0xe8, 0xe8, 0xe8, 0x31, 0x31, 0x10, 0x31, 0x7a, 0x7a, 0x7a, 0x7a,
+  0x10, 0x31, 0x0e, 0x29, 0xa0, 0xa0, 0xa0, 0xa0, 0x10, 0x31, 0xee, 0x28,
+  0x5f, 0x5f, 0x5f, 0x5f, 0xee, 0x28, 0xcc, 0x20, 0xe8, 0xe8, 0xe8, 0xe8,
+  0xcd, 0x28, 0xcb, 0x20, 0xfa, 0xfa, 0xfa, 0xfa, 0xcc, 0x20, 0xaa, 0x20,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xaa, 0x20, 0x89, 0x18, 0xea, 0xea, 0xea, 0xea,
+  0xaa, 0x18, 0x88, 0x18, 0x7f, 0x7f, 0x7f, 0x7f, 0x88, 0x18, 0x46, 0x10,
+  0xa8, 0xa8, 0xa8, 0xa8, 0x67, 0x18, 0x66, 0x10, 0x7f, 0x7f, 0x7f, 0x7f,
+  0x66, 0x10, 0x44, 0x10, 0x7a, 0x7a, 0x7a, 0x7a, 0x45, 0x10, 0x23, 0x08,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x23, 0x08, 0x22, 0x08, 0xe0, 0xe0, 0xe0, 0xe0,
+  0x01, 0x00, 0x22, 0x08, 0xa9, 0xa9, 0xa9, 0xa9, 0x44, 0x29, 0x00, 0x00,
+  0xd5, 0xd5, 0xd5, 0xd5, 0x0c, 0x63, 0xeb, 0x5a, 0xf9, 0xf9, 0xf9, 0xf9,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x2c, 0x63, 0xcb, 0x5a, 0x7f, 0x7f, 0xff, 0xff,
+  0xdb, 0xde, 0x0c, 0x63, 0x52, 0x41, 0x85, 0x15, 0xdb, 0xde, 0xeb, 0x5a,
+  0x55, 0x55, 0x55, 0x56, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xeb, 0x5a,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xa7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0x56,
+  0xc7, 0x39, 0x08, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x08, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0x08, 0x42, 0xa6, 0x31, 0xea, 0xea, 0xea, 0x7f,
+  0xf9, 0xf7, 0xff, 0x59, 0x5a, 0x5a, 0x5a, 0x5a, 0xff, 0x69, 0x1f, 0x5a,
+  0xff, 0xff, 0xff, 0x55, 0xff, 0x61, 0x3f, 0x52, 0xaa, 0xaa, 0xaa, 0xbf,
+  0xff, 0xe6, 0xff, 0x59, 0x35, 0xcd, 0x61, 0x58, 0xbf, 0x72, 0xbf, 0x51,
+  0xf4, 0xfd, 0xff, 0xff, 0xff, 0x69, 0x1f, 0x5a, 0xff, 0xff, 0xff, 0x55,
+  0xff, 0x69, 0x1f, 0x5a, 0xff, 0xff, 0xff, 0x55, 0xff, 0x69, 0x1f, 0x5a,
+  0xff, 0xff, 0xff, 0x55, 0xff, 0x69, 0x1f, 0x5a, 0xff, 0xff, 0xff, 0x55,
+  0xfe, 0x61, 0x3f, 0x52, 0xaa, 0xaa, 0xaa, 0xff, 0xfd, 0x59, 0x1f, 0x52,
+  0x02, 0x02, 0x02, 0xff, 0xfd, 0x51, 0xdc, 0x59, 0xaa, 0xaa, 0xaa, 0x00,
+  0xdb, 0x51, 0xfd, 0x41, 0x00, 0x00, 0x00, 0xaa, 0xb9, 0x51, 0xdb, 0x49,
+  0xaa, 0xaa, 0xaa, 0xfd, 0x98, 0x51, 0xda, 0x41, 0xaa, 0xaa, 0xaa, 0xff,
+  0x97, 0x49, 0xb9, 0x41, 0x2a, 0x2a, 0x2a, 0xbf, 0x76, 0x49, 0x98, 0x39,
+  0xaa, 0xaa, 0xaa, 0xff, 0x76, 0x41, 0x54, 0x39, 0xa0, 0xa0, 0xa0, 0xa0,
+  0x54, 0x41, 0x75, 0x31, 0xaa, 0xaa, 0xaa, 0xff, 0x54, 0x39, 0x32, 0x39,
+  0xea, 0xea, 0xea, 0xa8, 0x31, 0x39, 0x33, 0x31, 0xaa, 0xaa, 0xaa, 0xfd,
+  0x31, 0x31, 0x10, 0x31, 0x7a, 0x7a, 0x7a, 0xe0, 0x10, 0x31, 0x0f, 0x29,
+  0xe8, 0xe8, 0xe8, 0xfa, 0x10, 0x31, 0xee, 0x28, 0x5f, 0x5f, 0x5f, 0x5f,
+  0xee, 0x28, 0xcc, 0x20, 0xe8, 0xe8, 0xe8, 0xe8, 0xed, 0x28, 0xcc, 0x20,
+  0x5f, 0x5f, 0x5f, 0x5f, 0xcc, 0x20, 0xaa, 0x20, 0xfe, 0xfe, 0xfe, 0xea,
+  0x89, 0x20, 0xcb, 0x18, 0xaa, 0xaa, 0xaa, 0xaf, 0xa9, 0x18, 0x88, 0x18,
+  0xfa, 0xfa, 0xfa, 0xe8, 0x67, 0x10, 0x88, 0x18, 0xa9, 0xa9, 0xa9, 0xa9,
+  0x67, 0x18, 0x66, 0x10, 0x7f, 0x7f, 0x7f, 0x7f, 0x66, 0x10, 0x24, 0x08,
+  0xea, 0xea, 0xea, 0xea, 0x45, 0x10, 0x23, 0x08, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x23, 0x08, 0x21, 0x00, 0xa0, 0xa0, 0xa0, 0xa0, 0x01, 0x00, 0x22, 0x08,
+  0xa9, 0xa9, 0xa9, 0xa9, 0x44, 0x29, 0x00, 0x00, 0xd5, 0xd5, 0xd5, 0xd5,
+  0x0c, 0x63, 0xeb, 0x5a, 0xf9, 0xf9, 0xf9, 0xf9, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x7b, 0x8a, 0x52,
+  0x1f, 0x7f, 0xff, 0xff, 0x7d, 0xef, 0xcb, 0x5a, 0x5c, 0x73, 0x49, 0xa5,
+  0x2c, 0x63, 0xcb, 0x5a, 0xff, 0xff, 0xfd, 0xfd, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xeb, 0x5a, 0x85, 0x85, 0x85, 0x85,
+  0x28, 0x42, 0x86, 0x31, 0xa9, 0xa9, 0xa9, 0xfd, 0xc7, 0x39, 0x08, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x08, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x1f, 0xde, 0xf7, 0xc7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0x9d, 0xef, 0xa6, 0x31, 0x0a, 0x2f, 0x25, 0x25,
+  0xd7, 0xbd, 0x00, 0x00, 0x00, 0xaa, 0xff, 0xff, 0xe7, 0x39, 0xd7, 0xbd,
+  0x55, 0xaa, 0x00, 0x00, 0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00,
+  0xde, 0xf7, 0xc7, 0x39, 0xaa, 0xff, 0x55, 0x55, 0x2d, 0xe8, 0x9c, 0xce,
+  0xa5, 0x0d, 0x0d, 0x0d, 0xba, 0x81, 0x6b, 0xf8, 0x00, 0x55, 0x55, 0x55,
+  0x7d, 0xe6, 0x2d, 0xe0, 0xbf, 0x35, 0x85, 0x49, 0x2c, 0xe8, 0x3f, 0xb6,
+  0xa9, 0x02, 0x00, 0x00, 0xba, 0x81, 0x6b, 0xf8, 0x00, 0x55, 0x55, 0x55,
+  0xba, 0x81, 0x6b, 0xf8, 0x00, 0x55, 0x55, 0x55, 0xba, 0x81, 0x6b, 0xf8,
+  0x00, 0x55, 0x55, 0x55, 0xba, 0x81, 0x6b, 0xf8, 0x00, 0x55, 0x55, 0x55,
+  0xba, 0x81, 0x6b, 0xf8, 0x00, 0x55, 0x55, 0x55, 0x6b, 0xf8, 0xba, 0x81,
+  0x55, 0x00, 0x00, 0x00, 0x99, 0x81, 0x6b, 0xf0, 0x00, 0x55, 0x55, 0x55,
+  0x6a, 0xe0, 0x1f, 0x42, 0xff, 0x00, 0x00, 0x00, 0x6a, 0xd8, 0xfd, 0x41,
+  0xff, 0x00, 0x00, 0x00, 0x6a, 0xd0, 0xfc, 0x39, 0xff, 0x00, 0x00, 0x00,
+  0x69, 0xc8, 0xdb, 0x39, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x0a, 0x49, 0xc0,
+  0xaa, 0x55, 0x55, 0x55, 0x03, 0xe0, 0x33, 0x61, 0x55, 0xaa, 0xaa, 0xaa,
+  0x48, 0xa8, 0x97, 0x31, 0xff, 0x00, 0x00, 0x00, 0xdb, 0x09, 0x47, 0xa0,
+  0xaa, 0x55, 0x55, 0x55, 0xb9, 0x09, 0x47, 0x98, 0xaa, 0x55, 0x55, 0x55,
+  0x47, 0x90, 0x53, 0x29, 0xff, 0x00, 0x00, 0x00, 0xee, 0x48, 0x46, 0x88,
+  0x00, 0x55, 0x55, 0x55, 0x02, 0x98, 0xcd, 0x40, 0x55, 0xaa, 0xaa, 0xaa,
+  0x02, 0x90, 0xcc, 0x40, 0x55, 0xaa, 0xaa, 0xaa, 0x25, 0x68, 0x0e, 0x21,
+  0xff, 0x00, 0x00, 0x00, 0x30, 0x09, 0x24, 0x60, 0xaa, 0x55, 0x55, 0x55,
+  0x24, 0x58, 0xcc, 0x18, 0xff, 0x00, 0x00, 0x00, 0xed, 0x00, 0x24, 0x50,
+  0xaa, 0x55, 0x55, 0x55, 0xcb, 0x00, 0x23, 0x48, 0xaa, 0x55, 0x55, 0x55,
+  0x01, 0x48, 0x66, 0x20, 0x55, 0xaa, 0xaa, 0xaa, 0x02, 0x30, 0x87, 0x10,
+  0xff, 0x00, 0x00, 0x00, 0x87, 0x00, 0x02, 0x28, 0xaa, 0x55, 0x55, 0x55,
+  0x65, 0x00, 0x01, 0x20, 0xaa, 0x55, 0x55, 0x55, 0x44, 0x00, 0x01, 0x18,
+  0xaa, 0x55, 0x55, 0x55, 0x00, 0x10, 0x01, 0x08, 0x55, 0xe8, 0xe8, 0xe8,
+  0x00, 0x00, 0xe3, 0x18, 0x80, 0x80, 0x80, 0x80, 0x0c, 0x63, 0xeb, 0x5a,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x5d, 0xef, 0xeb, 0x5a, 0x15, 0xd5, 0x55, 0x55, 0xfb, 0xde, 0xcb, 0x5a,
+  0x56, 0x5c, 0x52, 0x61, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x1c, 0xe7, 0xeb, 0x5a, 0x05, 0x85, 0x85, 0x85, 0xde, 0xf7, 0xc7, 0x39,
+  0xaa, 0xff, 0x55, 0x55, 0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00,
+  0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00, 0xd7, 0xbd, 0x20, 0x00,
+  0x00, 0xaa, 0xff, 0xff, 0xde, 0xf7, 0xc7, 0x39, 0xa8, 0xf8, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xb8, 0xdd, 0x4b, 0xf8, 0x50, 0x50, 0x50, 0x50,
+  0x1d, 0xff, 0x4b, 0xf8, 0x55, 0x55, 0x95, 0x35, 0x5b, 0xfe, 0x2b, 0xf8,
+  0x73, 0x58, 0x54, 0x57, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x6c, 0xf8, 0x6b, 0xf0, 0x7a, 0x7a, 0x7a, 0x7a,
+  0x6b, 0xf0, 0x6b, 0xe8, 0xf8, 0xf8, 0xf8, 0xf8, 0x6b, 0xe8, 0x6a, 0xe0,
+  0x7e, 0x7e, 0x7e, 0x7e, 0x6a, 0xe0, 0x6a, 0xd0, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x6a, 0xd8, 0x69, 0xc8, 0xfa, 0xfa, 0xfa, 0xfa, 0x69, 0xc8, 0x49, 0xc0,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x49, 0xc8, 0x49, 0xb8, 0x7e, 0x7e, 0x7e, 0x7e,
+  0x69, 0xb8, 0x48, 0xb0, 0xfa, 0xfa, 0xfa, 0xfa, 0x48, 0xa8, 0x48, 0xb0,
+  0x09, 0x09, 0x09, 0x09, 0x47, 0xa0, 0x48, 0xa8, 0x0a, 0x0a, 0x0a, 0x0a,
+  0x47, 0xa0, 0x47, 0x90, 0xfa, 0xfa, 0xfa, 0xfa, 0x47, 0x90, 0x46, 0x88,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x46, 0x88, 0x46, 0x80, 0xe8, 0xe8, 0xe8, 0xe8,
+  0x46, 0x80, 0x26, 0x78, 0xf8, 0xf8, 0xf8, 0xf8, 0x26, 0x78, 0x25, 0x70,
+  0x7a, 0x7a, 0x7a, 0x7a, 0x25, 0x70, 0x25, 0x68, 0x5e, 0x5e, 0x5e, 0x5e,
+  0x25, 0x68, 0x24, 0x58, 0xfa, 0xfa, 0xfa, 0xfa, 0x24, 0x60, 0x24, 0x50,
+  0xfe, 0xfe, 0xfe, 0xfe, 0x24, 0x50, 0x23, 0x48, 0xe0, 0xe0, 0xe0, 0xe0,
+  0x23, 0x48, 0x23, 0x40, 0x70, 0x70, 0x70, 0x70, 0x23, 0x40, 0x02, 0x30,
+  0xe8, 0xe8, 0xe8, 0xe8, 0x03, 0x38, 0x02, 0x30, 0x7e, 0x7e, 0x7e, 0x7e,
+  0x22, 0x30, 0x01, 0x20, 0xfa, 0xfa, 0xfa, 0xfa, 0x02, 0x28, 0x01, 0x18,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x01, 0x18, 0x01, 0x10, 0xe0, 0xe0, 0xe0, 0xe0,
+  0x01, 0x10, 0x00, 0x08, 0x68, 0x68, 0x68, 0x68, 0x00, 0x00, 0xe3, 0x18,
+  0x80, 0x80, 0x80, 0x80, 0x0c, 0x63, 0xeb, 0x5a, 0xf9, 0xf9, 0xf9, 0xf9,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xcb, 0x5a, 0xcd, 0x25, 0x15, 0xd5,
+  0x5d, 0xef, 0xcb, 0x5a, 0x55, 0x55, 0x56, 0x5c, 0x5d, 0xef, 0xe3, 0x18,
+  0x8f, 0x8f, 0x8f, 0x8f, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xb8, 0xe5, 0x4b, 0xf8, 0x50, 0x50, 0x50, 0x50, 0x7b, 0xfe, 0x4b, 0xf8,
+  0x85, 0x49, 0x73, 0x58, 0xac, 0xf8, 0x0a, 0xf8, 0xa9, 0xab, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x6c, 0xf8, 0x6b, 0xf0, 0x7a, 0x7a, 0x7a, 0x7a, 0x6b, 0xf0, 0x6b, 0xe8,
+  0xf8, 0xf8, 0xf8, 0xf8, 0x6b, 0xe8, 0x6a, 0xe0, 0x7e, 0x7e, 0x7e, 0x7e,
+  0x6a, 0xe0, 0x6a, 0xd0, 0xfa, 0xfa, 0xfa, 0xfa, 0x6a, 0xd8, 0x69, 0xc8,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x69, 0xc8, 0x49, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0,
+  0x49, 0xc8, 0x49, 0xb8, 0x7e, 0x7e, 0x7e, 0x7e, 0x69, 0xb8, 0x48, 0xb0,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x48, 0xa8, 0x48, 0xb0, 0x09, 0x09, 0x09, 0x09,
+  0x47, 0xa0, 0x48, 0xa8, 0x0a, 0x0a, 0x0a, 0x0a, 0x47, 0xa0, 0x47, 0x90,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x47, 0x90, 0x46, 0x88, 0xe0, 0xe0, 0xe0, 0xe0,
+  0x46, 0x88, 0x46, 0x80, 0xe8, 0xe8, 0xe8, 0xe8, 0x46, 0x80, 0x26, 0x78,
+  0xf8, 0xf8, 0xf8, 0xf8, 0x26, 0x78, 0x25, 0x70, 0x7a, 0x7a, 0x7a, 0x7a,
+  0x25, 0x70, 0x25, 0x68, 0x5e, 0x5e, 0x5e, 0x5e, 0x25, 0x68, 0x24, 0x58,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x24, 0x60, 0x24, 0x50, 0xfe, 0xfe, 0xfe, 0xfe,
+  0x24, 0x50, 0x23, 0x48, 0xe0, 0xe0, 0xe0, 0xe0, 0x23, 0x48, 0x23, 0x40,
+  0x70, 0x70, 0x70, 0x70, 0x23, 0x40, 0x02, 0x30, 0xe8, 0xe8, 0xe8, 0xe8,
+  0x03, 0x38, 0x02, 0x30, 0x7e, 0x7e, 0x7e, 0x7e, 0x22, 0x30, 0x01, 0x20,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x02, 0x28, 0x01, 0x18, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x01, 0x18, 0x01, 0x10, 0xe0, 0xe0, 0xe0, 0xe0, 0x01, 0x10, 0x00, 0x08,
+  0x68, 0x68, 0x68, 0x68, 0x00, 0x00, 0xe3, 0x18, 0x80, 0x80, 0x80, 0x80,
+  0x0c, 0x63, 0xeb, 0x5a, 0xf9, 0xf9, 0xf9, 0xf9, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x0c, 0x63, 0xaa, 0x52, 0x6a, 0xaa, 0xaa, 0xaa, 0x5c, 0xe7, 0x0c, 0x63,
+  0x52, 0x71, 0x4d, 0xa5, 0xeb, 0x5a, 0x7d, 0xef, 0x90, 0x90, 0x90, 0x90,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xac, 0xf8, 0xbb, 0xde,
+  0x8d, 0x4d, 0x7d, 0x95, 0x6b, 0xf8, 0x3d, 0xff, 0x01, 0x02, 0x00, 0x00,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1,
+  0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa,
+  0x02, 0xf8, 0x5f, 0xf1, 0xaa, 0xaa, 0xaa, 0xaa, 0x6c, 0xf8, 0x6b, 0xf0,
+  0x7a, 0x7a, 0x7a, 0x7a, 0x6b, 0xf0, 0x6b, 0xe8, 0xf8, 0xf8, 0xf8, 0xf8,
+  0x6b, 0xe8, 0x6a, 0xe0, 0x7e, 0x7e, 0x7e, 0x7e, 0x6a, 0xe0, 0x6a, 0xd0,
+  0xfa, 0xfa, 0xfa, 0xfa, 0x6a, 0xd8, 0x69, 0xc8, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x69, 0xc8, 0x49, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0x49, 0xc8, 0x49, 0xb8,
+  0x7e, 0x7e, 0x7e, 0x7e, 0x69, 0xb8, 0x48, 0xb0, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x48, 0xa8, 0x48, 0xb0, 0x09, 0x09, 0x09, 0x09, 0x47, 0xa0, 0x48, 0xa8,
+  0x0a, 0x0a, 0x0a, 0x0a, 0x47, 0xa0, 0x47, 0x90, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x47, 0x90, 0x46, 0x88, 0xe0, 0xe0, 0xe0, 0xe0, 0x46, 0x88, 0x46, 0x80,
+  0xe8, 0xe8, 0xe8, 0xe8, 0x46, 0x80, 0x26, 0x78, 0xf8, 0xf8, 0xf8, 0xf8,
+  0x26, 0x78, 0x25, 0x70, 0x7a, 0x7a, 0x7a, 0x7a, 0x25, 0x70, 0x25, 0x68,
+  0x5e, 0x5e, 0x5e, 0x5e, 0x25, 0x68, 0x24, 0x58, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x24, 0x60, 0x24, 0x50, 0xfe, 0xfe, 0xfe, 0xfe, 0x24, 0x50, 0x23, 0x48,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x23, 0x48, 0x23, 0x40, 0x70, 0x70, 0x70, 0x70,
+  0x23, 0x40, 0x02, 0x30, 0xe8, 0xe8, 0xe8, 0xe8, 0x03, 0x38, 0x02, 0x30,
+  0x7e, 0x7e, 0x7e, 0x7e, 0x22, 0x30, 0x01, 0x20, 0xfa, 0xfa, 0xfa, 0xfa,
+  0x02, 0x28, 0x01, 0x18, 0xfa, 0xfa, 0xfa, 0xfa, 0x01, 0x18, 0x01, 0x10,
+  0xe0, 0xe0, 0xe0, 0xe0, 0x01, 0x10, 0x00, 0x08, 0x68, 0x68, 0x68, 0x68,
+  0x00, 0x00, 0xe3, 0x18, 0x80, 0x80, 0x80, 0x80, 0x0c, 0x63, 0xeb, 0x5a,
+  0xf9, 0xf9, 0xf9, 0xf9, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x82, 0x10, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x82, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0xcb, 0x5a, 0x35, 0x95, 0x55, 0x55,
+  0xde, 0xf7, 0xae, 0x73, 0xc5, 0xc6, 0xcc, 0xc3, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x9d, 0xef, 0x08, 0x42, 0x25, 0x25, 0x0a, 0x25, 0x18, 0xc6, 0xe7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x38, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xbf, 0xbe, 0xf7, 0x09, 0xe8, 0x62, 0x72, 0xa0, 0x00,
+  0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x4b, 0xf8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x4a, 0xe8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x4a, 0xe0, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x49, 0xd8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x29, 0xd0, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x28, 0xc8, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x28, 0xb8, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x28, 0xb0, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x27, 0xa8, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x27, 0xa0, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x26, 0x98, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x26, 0x88, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x25, 0x80, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x25, 0x78, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x24, 0x70, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x24, 0x68, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x24, 0x58, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x23, 0x50, 0xbe, 0xef,
+  0x00, 0x00, 0xaa, 0x56, 0x03, 0x48, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x02, 0x40, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x02, 0x38, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x01, 0x30, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x01, 0x20, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x01, 0x18, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0x01, 0x10, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0x00, 0x08, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x20, 0x08, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff,
+  0x00, 0x00, 0xaa, 0x55, 0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55,
+  0xcb, 0x5a, 0xff, 0xff, 0x00, 0x00, 0xaa, 0x55, 0x7d, 0xef, 0xe7, 0x39,
+  0x83, 0x8d, 0x0a, 0x00, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x38, 0xc6, 0x49, 0x4a, 0x55, 0x55, 0x00, 0xd5,
+  0xff, 0xff, 0x28, 0x42, 0x5c, 0x5c, 0xa8, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0x56, 0xf4, 0xf4, 0xf4,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0xfb, 0xde, 0xe7, 0x39, 0x95, 0x15, 0x25, 0xc5,
+  0xff, 0xff, 0x96, 0xb5, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xdf, 0xff,
+  0x2a, 0x2a, 0x2a, 0x2a, 0xa2, 0x10, 0x9e, 0xf7, 0x5a, 0x52, 0x52, 0x62,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0xaa, 0xa8, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0x14, 0xa5, 0x00, 0x00, 0xc0, 0x40,
+  0xe7, 0x39, 0xfb, 0xde, 0x02, 0x01, 0x09, 0x06, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x8a, 0x52, 0xc7, 0x39, 0x15, 0x1f, 0x1f, 0x1f, 0xde, 0xf7, 0xc7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x66, 0x31, 0xaa, 0xaa, 0xea, 0xea,
+  0xdb, 0xde, 0xa6, 0x31, 0x49, 0x61, 0x73, 0x52, 0xff, 0xff, 0x86, 0x31,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xdf, 0xff, 0x2a, 0x2a, 0x2a, 0x2a,
+  0xdb, 0xde, 0x00, 0x00, 0x36, 0x16, 0xd6, 0xd6, 0x7d, 0xef, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x56, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x8a, 0x52, 0xff, 0xff, 0x95, 0x95, 0x95, 0x95, 0x5c, 0xe7, 0xc7, 0x39,
+  0x71, 0x69, 0x4d, 0x85, 0x08, 0x42, 0xa6, 0x31, 0xaa, 0xaa, 0xab, 0xa9,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xdf, 0xff, 0x08, 0x42, 0x55, 0xd5, 0x95, 0x15, 0x3c, 0xe7, 0xc7, 0x39,
+  0x5c, 0x54, 0x56, 0x57, 0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0xdf, 0xff, 0x2a, 0x2a, 0x2a, 0x2a, 0x00, 0x00, 0x71, 0x8c,
+  0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0x00, 0x00, 0x02, 0x03, 0x09, 0x09,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b,
+  0xc0, 0xc0, 0xc0, 0xc0, 0x7d, 0xef, 0xe7, 0x39, 0x35, 0x15, 0x95, 0xd5,
+  0x9d, 0xef, 0xe7, 0x39, 0x55, 0x57, 0x56, 0x54, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xe7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0xcb, 0x5a, 0xe7, 0x39, 0x57, 0x57, 0x57, 0x28,
+  0x4d, 0x6b, 0xe7, 0x39, 0x55, 0x55, 0x55, 0x0a, 0xda, 0xd6, 0xc7, 0x39,
+  0x25, 0x85, 0xcd, 0x43, 0x6a, 0x52, 0xa6, 0x31, 0xff, 0xfd, 0x7d, 0x00,
+  0x8e, 0x73, 0xff, 0xff, 0x56, 0x56, 0x56, 0x56, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x0a, 0x0a, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x0a, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0xa0, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x02, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x2a, 0x28,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x80, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x0a, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0xa0, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x08, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x82, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0xa2, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x20, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x28, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x0a, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x82, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0xa0, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0x2a, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x51, 0x8c, 0x01, 0x01, 0x01, 0x01,
+  0xde, 0xf7, 0x82, 0x10, 0x05, 0x25, 0x35, 0x15, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x80, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x08, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x22, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x02, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x02, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x88, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x80, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x20, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0x8a, 0x52, 0xff, 0xff, 0x95, 0x95, 0x95, 0x95,
+  0x8a, 0x52, 0x86, 0x31, 0xbd, 0x7d, 0x7d, 0x02, 0xfb, 0xde, 0xc7, 0x39,
+  0x58, 0x52, 0x53, 0xe3, 0x4d, 0x6b, 0xe7, 0x39, 0x55, 0x55, 0x55, 0xa0,
+  0x0c, 0x63, 0xe7, 0x39, 0x95, 0x95, 0x95, 0x3a, 0xde, 0xf7, 0x08, 0x42,
+  0x5c, 0x5c, 0x5c, 0x5c, 0x9d, 0xef, 0xc7, 0x39, 0x0a, 0x25, 0x25, 0x25,
+  0x08, 0x42, 0x38, 0xc6, 0x55, 0x00, 0x00, 0x00, 0x38, 0xc6, 0xe7, 0x39,
+  0x00, 0x55, 0x55, 0x55, 0x3c, 0xe7, 0xc7, 0x39, 0x80, 0x73, 0x52, 0x58,
+  0xe7, 0x39, 0x18, 0xc6, 0x55, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb6, 0xb5,
+  0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xdf, 0xff, 0xae, 0x73,
+  0xe0, 0x70, 0x70, 0x70, 0x38, 0xc6, 0xcf, 0x7b, 0x2a, 0x95, 0x95, 0x95,
+  0x7d, 0xef, 0xa3, 0x18, 0xe0, 0x70, 0x70, 0x70, 0x7d, 0xef, 0xe3, 0x18,
+  0x0b, 0x0d, 0x0d, 0x0d, 0xb6, 0xb5, 0x00, 0x00, 0xa8, 0xdc, 0xdc, 0xdc,
+  0x7d, 0xef, 0xef, 0x7b, 0xc2, 0x43, 0x43, 0x43, 0x9a, 0xd6, 0x82, 0x10,
+  0x2e, 0x35, 0x35, 0x35, 0xde, 0xf7, 0x21, 0x08, 0xe0, 0x78, 0x78, 0x78,
+  0x04, 0x21, 0x9e, 0xf7, 0x5a, 0x58, 0x58, 0x58, 0x38, 0xc6, 0x82, 0x10,
+  0xb8, 0xd6, 0xd6, 0xd6, 0xef, 0x7b, 0x9a, 0xd6, 0xaa, 0x00, 0x00, 0x00,
+  0x08, 0x42, 0x1b, 0xdf, 0xa5, 0x06, 0x06, 0x06, 0xc3, 0x18, 0xba, 0xd6,
+  0x65, 0x49, 0x49, 0x49, 0xc3, 0x18, 0x9a, 0xd6, 0x59, 0x61, 0x61, 0x61,
+  0x3c, 0xe7, 0xa7, 0x39, 0x8b, 0xc5, 0xc5, 0xc5, 0xfb, 0xde, 0xe3, 0x18,
+  0xc3, 0x61, 0x61, 0x61, 0xdb, 0xde, 0x45, 0x29, 0xb0, 0xd2, 0xd2, 0xd2,
+  0xe7, 0x39, 0x3c, 0xe7, 0x69, 0x41, 0x41, 0x41, 0x18, 0xc6, 0x62, 0x10,
+  0x08, 0x06, 0x06, 0x06, 0x55, 0xad, 0xe4, 0x20, 0x02, 0xad, 0xad, 0xad,
+  0x5c, 0xe7, 0x6a, 0x52, 0xd7, 0x3f, 0x3f, 0x3f, 0x9a, 0xd6, 0xaa, 0x52,
+  0xd7, 0xfc, 0xfc, 0xfc, 0x18, 0xc6, 0xef, 0x7b, 0x2a, 0x95, 0x35, 0x35,
+  0x7d, 0xef, 0x28, 0x42, 0xb3, 0x99, 0x99, 0x99, 0x96, 0xb5, 0x0c, 0x63,
+  0x82, 0x79, 0x79, 0x79, 0x18, 0xc6, 0x28, 0x42, 0x88, 0x46, 0x46, 0x46,
+  0xfb, 0xde, 0x69, 0x4a, 0x8c, 0x66, 0x66, 0x66, 0x18, 0xc6, 0xae, 0x73,
+  0x28, 0x97, 0x96, 0x96, 0x18, 0xc6, 0x86, 0x31, 0x22, 0x13, 0x13, 0x13,
+  0xd7, 0xbd, 0x49, 0x4a, 0x22, 0x91, 0x91, 0x91, 0x79, 0xce, 0x08, 0x42,
+  0x8a, 0x6f, 0x6f, 0x6f, 0x9a, 0xd6, 0x8a, 0x52, 0xaa, 0xff, 0xff, 0xff,
+  0xfe, 0xff, 0xe1, 0xab, 0xff, 0x55, 0x55, 0x55, 0xe0, 0xab, 0x94, 0xe6,
+  0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00,
+  0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6,
+  0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00,
+  0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6,
+  0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00,
+  0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6,
+  0xaa, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00,
+  0xe0, 0xab, 0x94, 0xe6, 0xaa, 0x00, 0x00, 0x00, 0xbf, 0x9d, 0x85, 0x8b,
+  0xab, 0xfd, 0xfd, 0xfd, 0xef, 0x7b, 0x9a, 0xd6, 0xaa, 0x00, 0x00, 0x00,
+  0xcf, 0x7b, 0x3c, 0xe7, 0x5a, 0x90, 0x90, 0x90, 0xe7, 0x39, 0x18, 0xc6,
+  0x55, 0x00, 0x00, 0x00, 0xff, 0xff, 0x28, 0x42, 0x8a, 0x4d, 0xc5, 0xa5,
+  0xe7, 0x39, 0x58, 0xc6, 0x55, 0x00, 0x00, 0x00, 0x18, 0xc6, 0x08, 0x42,
+  0x00, 0xd5, 0x55, 0x55, 0xff, 0xff, 0xe7, 0x39, 0xa8, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0x79, 0xce, 0xe7, 0x39, 0x55, 0xd5, 0x95, 0x15,
+  0x7d, 0xef, 0xc7, 0x39, 0x5c, 0x5c, 0x54, 0x56, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b, 0x70, 0x70, 0x70, 0x70,
+  0x75, 0xad, 0x2c, 0x63, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x08, 0x3c, 0xe7,
+  0x25, 0x25, 0x25, 0x25, 0x41, 0x08, 0x1c, 0xe7, 0x58, 0x58, 0x58, 0x58,
+  0x75, 0xad, 0x00, 0x00, 0xdc, 0xdc, 0xdc, 0xdc, 0x7d, 0xef, 0xef, 0x7b,
+  0x43, 0x43, 0x43, 0x43, 0x79, 0xce, 0x82, 0x10, 0x35, 0x35, 0x35, 0x35,
+  0xff, 0xff, 0x20, 0x00, 0x78, 0x78, 0x78, 0x78, 0x04, 0x21, 0x7d, 0xef,
+  0x58, 0x58, 0x58, 0x58, 0x62, 0x10, 0x92, 0x94, 0x81, 0x81, 0x81, 0x81,
+  0xcf, 0x7b, 0x30, 0x84, 0x2a, 0x2a, 0x2a, 0x2a, 0x28, 0x42, 0x5c, 0xe7,
+  0x06, 0x06, 0x06, 0x06, 0x58, 0xc6, 0xa3, 0x18, 0x18, 0x18, 0x18, 0x18,
+  0x38, 0xc6, 0x82, 0x10, 0x24, 0x24, 0x24, 0x24, 0x3c, 0xe7, 0xe7, 0x39,
+  0xc5, 0xc5, 0xc5, 0xc5, 0xfb, 0xde, 0xc3, 0x18, 0x61, 0x61, 0x61, 0x61,
+  0xdb, 0xde, 0x45, 0x29, 0xd2, 0xd2, 0xd2, 0xd2, 0x1c, 0xe7, 0x45, 0x29,
+  0x1c, 0x1c, 0x1c, 0x1c, 0xf7, 0xbd, 0xa3, 0x18, 0x06, 0x06, 0x06, 0x06,
+  0x10, 0x84, 0xc3, 0x18, 0x09, 0x09, 0x09, 0x09, 0xc3, 0x18, 0x3c, 0xe7,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56,
+  0x1c, 0xe7, 0x10, 0x84, 0x95, 0x95, 0x95, 0x95, 0x28, 0x42, 0x96, 0xb5,
+  0x44, 0x44, 0x44, 0x44, 0xb2, 0x94, 0x0c, 0x63, 0x61, 0x61, 0x61, 0x61,
+  0x18, 0xc6, 0x28, 0x42, 0x46, 0x46, 0x46, 0x46, 0xb6, 0xb5, 0xe7, 0x39,
+  0xc4, 0xc4, 0xc4, 0xc4, 0x75, 0xad, 0x4d, 0x6b, 0x1e, 0x1e, 0x1e, 0x1e,
+  0xd7, 0xbd, 0x86, 0x31, 0x13, 0x13, 0x13, 0x13, 0x96, 0xb5, 0x8a, 0x52,
+  0x91, 0x91, 0x91, 0x91, 0xfb, 0xde, 0xe7, 0x39, 0x6f, 0x6f, 0x6f, 0x6f,
+  0x10, 0x84, 0xef, 0x7b, 0xfa, 0xfb, 0xfb, 0xfb, 0xe0, 0xab, 0xe7, 0x9b,
+  0x03, 0x03, 0x03, 0x03, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xb3, 0xe0, 0xab,
+  0xbf, 0xbf, 0xbf, 0xbf, 0xfc, 0x5b, 0xe3, 0xa3, 0xa9, 0xa9, 0xa9, 0xa9,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x7d, 0xef, 0x10, 0x84,
+  0xc5, 0xc5, 0xc5, 0xc5, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0x9e, 0xf7, 0xe7, 0x39, 0x35, 0x35, 0x15, 0x95, 0xf7, 0xbd, 0xc7, 0x39,
+  0x55, 0x57, 0x56, 0x54, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0x9d, 0xef, 0xc7, 0x39, 0x15, 0x35, 0x25, 0xa5, 0x10, 0x84, 0xc7, 0x39,
+  0x54, 0x56, 0x57, 0x55, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0xcf, 0x7b, 0x70, 0x70, 0x70, 0x70, 0x75, 0xad, 0xe4, 0x20,
+  0x2a, 0x2a, 0x2a, 0x2a, 0x41, 0x08, 0x5d, 0xef, 0x25, 0x25, 0x25, 0x25,
+  0x21, 0x08, 0x3c, 0xe7, 0x58, 0x58, 0x58, 0x58, 0x95, 0xad, 0x00, 0x00,
+  0xdc, 0xdc, 0xdc, 0xdc, 0x7d, 0xef, 0x10, 0x84, 0x43, 0x43, 0x43, 0x43,
+  0x79, 0xce, 0xa2, 0x10, 0x35, 0x35, 0x35, 0x35, 0xff, 0xff, 0x21, 0x08,
+  0x78, 0x78, 0x78, 0x78, 0x04, 0x21, 0x7d, 0xef, 0x58, 0x58, 0x58, 0x58,
+  0xd3, 0x9c, 0x21, 0x08, 0xdc, 0xdc, 0xdc, 0xdc, 0xcf, 0x7b, 0x30, 0x84,
+  0x2a, 0x2a, 0x2a, 0x2a, 0x29, 0x4a, 0x5c, 0xe7, 0x06, 0x06, 0x06, 0x06,
+  0x58, 0xc6, 0xa3, 0x18, 0x18, 0x18, 0x18, 0x18, 0xe3, 0x18, 0xba, 0xd6,
+  0x61, 0x61, 0x61, 0x61, 0x1c, 0xe7, 0xe7, 0x39, 0xc5, 0xc5, 0xc5, 0xc5,
+  0x1b, 0xdf, 0xc3, 0x18, 0x61, 0x61, 0x61, 0x61, 0xda, 0xd6, 0x45, 0x29,
+  0xd2, 0xd2, 0xd2, 0xd2, 0x1b, 0xdf, 0x04, 0x21, 0x1c, 0x1c, 0x1c, 0x1c,
+  0xf7, 0xbd, 0xa2, 0x10, 0x06, 0x06, 0x06, 0x06, 0xef, 0x7b, 0xc3, 0x18,
+  0x09, 0x09, 0x09, 0x09, 0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a,
+  0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56, 0x3c, 0xe7, 0x10, 0x84,
+  0x95, 0x95, 0x95, 0x95, 0x3c, 0xe7, 0x28, 0x42, 0x99, 0x99, 0x99, 0x99,
+  0x65, 0x29, 0x71, 0x8c, 0x96, 0x96, 0x96, 0x96, 0x38, 0xc6, 0x49, 0x4a,
+  0x46, 0x46, 0x46, 0x46, 0x96, 0xb5, 0xe8, 0x41, 0xc4, 0xc4, 0xc4, 0xc4,
+  0x55, 0xad, 0x2c, 0x63, 0x1e, 0x1e, 0x1e, 0x1e, 0xb6, 0xb5, 0x86, 0x31,
+  0x13, 0x13, 0x13, 0x13, 0x96, 0xb5, 0xe7, 0x39, 0xb1, 0xb1, 0xb1, 0xb1,
+  0x13, 0x9d, 0xa6, 0x31, 0x4a, 0x4a, 0x4a, 0x4a, 0x10, 0x84, 0xef, 0x7b,
+  0xfb, 0xfb, 0xfb, 0xfa, 0xe0, 0xab, 0xe7, 0x9b, 0x03, 0x03, 0x03, 0x03,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0xb3, 0xe0, 0xab, 0xbf, 0xbf, 0xbf, 0xbf,
+  0xfc, 0x5b, 0xe3, 0xa3, 0xa9, 0xa9, 0xa9, 0xa9, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0x7d, 0xef, 0x10, 0x84, 0xc5, 0xc5, 0xc5, 0xc5,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xb2, 0x94, 0xc7, 0x39,
+  0x15, 0x95, 0xd5, 0x55, 0x5c, 0xe7, 0xe8, 0x41, 0x54, 0x54, 0x5c, 0x58,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0x5d, 0xef, 0x08, 0x42,
+  0xc5, 0xc5, 0x4d, 0x49, 0x28, 0x42, 0x86, 0x31, 0xa9, 0xab, 0xab, 0xaa,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0x45, 0x29,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b,
+  0x70, 0x70, 0x70, 0x70, 0xfb, 0xde, 0x69, 0x4a, 0xbf, 0xbf, 0xbf, 0xbf,
+  0x41, 0x08, 0x3c, 0xe7, 0x25, 0x25, 0x25, 0x25, 0x41, 0x08, 0x3c, 0xe7,
+  0x58, 0x58, 0x58, 0x58, 0x75, 0xad, 0x00, 0x00, 0xdc, 0xdc, 0xdc, 0xdc,
+  0x7d, 0xef, 0xef, 0x7b, 0x43, 0x43, 0x43, 0x43, 0x99, 0xce, 0xa2, 0x10,
+  0x35, 0x35, 0x35, 0x35, 0xff, 0xff, 0x20, 0x00, 0x78, 0x78, 0x78, 0x78,
+  0x04, 0x21, 0x7d, 0xef, 0x58, 0x58, 0x58, 0x58, 0x99, 0xce, 0x82, 0x10,
+  0xd6, 0xd6, 0xd6, 0xd6, 0xcf, 0x7b, 0x30, 0x84, 0x2a, 0x2a, 0x2a, 0x2a,
+  0x28, 0x42, 0x5c, 0xe7, 0x06, 0x06, 0x06, 0x06, 0x79, 0xce, 0xa2, 0x10,
+  0x18, 0x18, 0x18, 0x18, 0x59, 0xce, 0x82, 0x10, 0x24, 0x24, 0x24, 0x24,
+  0x1c, 0xe7, 0xe7, 0x39, 0xc5, 0xc5, 0xc5, 0xc5, 0xfb, 0xde, 0xa3, 0x18,
+  0x61, 0x61, 0x61, 0x61, 0xda, 0xd6, 0x45, 0x29, 0xd2, 0xd2, 0xd2, 0xd2,
+  0x1c, 0xe7, 0x04, 0x21, 0x1c, 0x1c, 0x1c, 0x1c, 0xf7, 0xbd, 0xa3, 0x18,
+  0x06, 0x06, 0x06, 0x06, 0x10, 0x84, 0xa3, 0x18, 0x09, 0x09, 0x09, 0x09,
+  0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b,
+  0x56, 0x56, 0x56, 0x56, 0x10, 0x84, 0xff, 0xff, 0x80, 0x80, 0x80, 0x80,
+  0xb6, 0xb5, 0x20, 0x00, 0x33, 0x33, 0x33, 0x33, 0x92, 0x94, 0xeb, 0x5a,
+  0x61, 0x61, 0x61, 0x61, 0x18, 0xc6, 0x29, 0x4a, 0x46, 0x46, 0x46, 0x46,
+  0xb6, 0xb5, 0xe8, 0x41, 0xc4, 0xc4, 0xc4, 0xc4, 0x34, 0xa5, 0x4d, 0x6b,
+  0x1e, 0x1e, 0x1e, 0x1e, 0xd7, 0xbd, 0xa6, 0x31, 0x13, 0x13, 0x13, 0x13,
+  0xb6, 0xb5, 0x8a, 0x52, 0x91, 0x91, 0x91, 0x91, 0xf3, 0x9c, 0xa6, 0x31,
+  0x4a, 0x4a, 0x4a, 0x4a, 0xef, 0x7b, 0x10, 0x84, 0xaa, 0xaa, 0xaa, 0xa9,
+  0xe0, 0xab, 0xe7, 0x9b, 0x03, 0x03, 0x03, 0x03, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xc7, 0x00, 0xa2, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0xb3, 0xe0, 0xab, 0xbf, 0xbf, 0xbf, 0xbf, 0xfc, 0x5b, 0xe3, 0xa3,
+  0xa9, 0xa9, 0xa9, 0xa9, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0x7d, 0xef, 0x10, 0x84, 0xc5, 0xc5, 0xc5, 0xc5, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0x28, 0x42, 0x86, 0x31, 0x6a, 0xea, 0xea, 0xea,
+  0x3c, 0xe7, 0x08, 0x42, 0x52, 0x53, 0x53, 0x71, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x5d, 0xef, 0x86, 0x31, 0x25, 0x2f, 0x0a, 0x25, 0x34, 0xa5, 0xa7, 0x39,
+  0x55, 0xaa, 0x00, 0x55, 0x9d, 0xef, 0xc7, 0x39, 0x69, 0xe3, 0xa2, 0x71,
+  0x34, 0xa5, 0xa6, 0x31, 0x55, 0xaa, 0x00, 0x55, 0x34, 0xa5, 0xa6, 0x31,
+  0x55, 0xaa, 0x00, 0x55, 0xff, 0xff, 0x71, 0x8c, 0x03, 0x02, 0x02, 0x03,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xdf, 0xff, 0xcf, 0x7b, 0x70, 0x70, 0x80, 0x00,
+  0xff, 0xff, 0x10, 0x84, 0xd5, 0xd5, 0x2a, 0x00, 0x41, 0x08, 0x7d, 0xef,
+  0x25, 0x25, 0x55, 0x55, 0x62, 0x10, 0x7d, 0xef, 0x58, 0x58, 0x55, 0x55,
+  0x5d, 0xef, 0x00, 0x00, 0xde, 0xde, 0x00, 0x00, 0xc3, 0x18, 0x9d, 0xef,
+  0x96, 0x96, 0x00, 0x00, 0x41, 0x08, 0x38, 0xc6, 0x60, 0x60, 0x00, 0x00,
+  0xff, 0xff, 0x61, 0x08, 0x78, 0x78, 0x55, 0x55, 0xa3, 0x18, 0x7d, 0xef,
+  0x58, 0x58, 0x00, 0x00, 0x30, 0x84, 0x00, 0x00, 0x9c, 0x9c, 0x57, 0x55,
+  0x61, 0x08, 0x7d, 0xef, 0xaa, 0xaa, 0x00, 0x00, 0xfb, 0xde, 0x41, 0x08,
+  0xf2, 0xf2, 0x55, 0x55, 0x79, 0xce, 0x82, 0x10, 0x18, 0x18, 0x55, 0x55,
+  0x59, 0xce, 0x82, 0x10, 0x24, 0x24, 0x55, 0x55, 0x1c, 0xe7, 0x41, 0x08,
+  0xcf, 0xcf, 0x55, 0x55, 0xfb, 0xde, 0x82, 0x10, 0x61, 0x61, 0x55, 0x55,
+  0xfb, 0xde, 0xa3, 0x18, 0xd2, 0xd2, 0x55, 0x55, 0x1c, 0xe7, 0xa2, 0x10,
+  0x1c, 0x1c, 0x55, 0x55, 0xf7, 0xbd, 0x82, 0x10, 0x06, 0x06, 0x55, 0x55,
+  0x10, 0x84, 0x62, 0x10, 0x09, 0x09, 0x55, 0x55, 0x82, 0x10, 0xfb, 0xde,
+  0x6a, 0x6a, 0x40, 0x40, 0xf7, 0xbd, 0x61, 0x08, 0xa8, 0xa8, 0x54, 0x56,
+  0xd7, 0xbd, 0x82, 0x10, 0x2a, 0x2a, 0x55, 0x55, 0x95, 0xad, 0x41, 0x08,
+  0x33, 0x33, 0x55, 0x55, 0x30, 0x84, 0x61, 0x08, 0x82, 0x82, 0x55, 0x55,
+  0x75, 0xad, 0x82, 0x10, 0xcc, 0xcc, 0x55, 0x55, 0xd6, 0xb5, 0x82, 0x10,
+  0xcc, 0xcc, 0x55, 0x55, 0xf3, 0x9c, 0x82, 0x10, 0x28, 0x28, 0x55, 0x55,
+  0xd7, 0xbd, 0x62, 0x10, 0x33, 0x33, 0x55, 0x55, 0x17, 0xbe, 0x82, 0x10,
+  0xb3, 0xb3, 0x55, 0x55, 0x14, 0xa5, 0x61, 0x08, 0xca, 0xca, 0x55, 0x55,
+  0x61, 0x08, 0x9e, 0xf7, 0xaa, 0xaa, 0x00, 0x00, 0xa2, 0xf5, 0x60, 0x10,
+  0xaa, 0xaa, 0x55, 0x55, 0xa0, 0xfd, 0x60, 0x10, 0xaa, 0xaa, 0x55, 0x55,
+  0xa0, 0xfd, 0x60, 0x10, 0xaa, 0xaa, 0x55, 0x55, 0xa0, 0xfd, 0x60, 0x10,
+  0xaa, 0xaa, 0x55, 0x55, 0x80, 0x18, 0xe0, 0xab, 0x55, 0x55, 0x00, 0x00,
+  0xe1, 0xab, 0x7c, 0xef, 0x00, 0x00, 0x56, 0x56, 0xff, 0xff, 0x00, 0xac,
+  0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x00, 0xac, 0x55, 0x55, 0xaa, 0x00,
+  0xff, 0xff, 0x00, 0xac, 0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x00, 0xac,
+  0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x00, 0xac, 0x55, 0x55, 0xaa, 0x00,
+  0xff, 0xff, 0x00, 0xac, 0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x00, 0xb4,
+  0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x0c, 0x8c, 0x55, 0x55, 0xaa, 0x00,
+  0xff, 0xff, 0x10, 0x84, 0x55, 0x55, 0xaa, 0x00, 0xff, 0xff, 0x10, 0x84,
+  0xc5, 0xa5, 0x8a, 0xc0, 0x34, 0xa5, 0x86, 0x31, 0x55, 0xaa, 0x00, 0x55,
+  0x34, 0xa5, 0xa6, 0x31, 0x55, 0xaa, 0x00, 0x55, 0x3c, 0xe7, 0xc7, 0x39,
+  0x61, 0xc3, 0x8a, 0x4d, 0x14, 0xa5, 0x86, 0x31, 0xd5, 0x2a, 0x00, 0xd5,
+  0xbe, 0xf7, 0x86, 0x31, 0x5c, 0xf8, 0xa8, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0x45, 0x29, 0xe8, 0xe8, 0xe8, 0xe8,
+  0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x52, 0x5a, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xfb, 0xde, 0xff, 0xff,
+  0x95, 0x95, 0x95, 0x95, 0x65, 0x29, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xce, 0x40, 0x40, 0x40, 0x40,
+  0x7d, 0xef, 0x00, 0x00, 0x56, 0x56, 0x56, 0x56, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x29,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b, 0xc0, 0xc0, 0xc0, 0xc0,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x9d, 0xef, 0xe8, 0x41, 0x4d, 0xcd, 0xc5, 0x85,
+  0x8a, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3d, 0x3d, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0x74, 0x74, 0xf4, 0xf4, 0x59, 0xce, 0xc7, 0x39,
+  0x50, 0x58, 0x58, 0x58, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0x45, 0x29,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xfb, 0xde, 0xff, 0xff, 0x95, 0x95, 0x95, 0x95,
+  0x65, 0x29, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x79, 0xce, 0x40, 0x40, 0x40, 0x40, 0x7d, 0xef, 0x00, 0x00,
+  0x56, 0x56, 0x56, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0xcf, 0x7b, 0xc0, 0xc0, 0xc0, 0xc0, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xba, 0xd6, 0xe7, 0x39, 0x85, 0x85, 0x25, 0x25, 0x8a, 0x52, 0x86, 0x31,
+  0x3d, 0x3d, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xe7, 0x39,
+  0x94, 0x94, 0x94, 0x14, 0x3c, 0xe7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xfb, 0xde, 0xff, 0xff, 0x95, 0x95, 0x95, 0x95, 0x65, 0x29, 0x00, 0x00,
+  0x57, 0x57, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xce,
+  0x40, 0x40, 0x40, 0x40, 0x7d, 0xef, 0x00, 0x00, 0x56, 0x56, 0x56, 0x56,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0x45, 0x29, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b,
+  0xc0, 0xc0, 0xc0, 0xc0, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x39, 0xda, 0xd6,
+  0x60, 0x60, 0x60, 0x60, 0x8a, 0x52, 0xe7, 0x39, 0x15, 0x17, 0x17, 0x17,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0xe7, 0x86, 0x31,
+  0x25, 0x25, 0x25, 0x0a, 0x75, 0xad, 0x08, 0x42, 0x55, 0x55, 0x55, 0x00,
+  0x9e, 0xf7, 0xa6, 0x31, 0x5c, 0x5c, 0x5c, 0xa8, 0x55, 0xad, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0x00, 0x1b, 0xdf, 0xc7, 0x39, 0x55, 0x55, 0x55, 0xaa,
+  0xff, 0xff, 0x92, 0x94, 0x03, 0x03, 0x03, 0x02, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff,
+  0xaa, 0xaa, 0x00, 0x00, 0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00,
+  0xff, 0xff, 0xdf, 0xff, 0xaa, 0xaa, 0x00, 0x00, 0x7d, 0xef, 0xff, 0xff,
+  0x15, 0x15, 0x15, 0x95, 0x71, 0x8c, 0x21, 0x08, 0x55, 0x55, 0x55, 0x00,
+  0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x71, 0x8c, 0x00, 0x00, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0xba, 0xd6, 0x00, 0x00, 0x15, 0x15, 0x15, 0x2a,
+  0xdb, 0xde, 0x00, 0x00, 0x56, 0x56, 0x56, 0xa8, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x71, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x71, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c,
+  0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x51, 0x8c, 0x00, 0x00, 0x00, 0x55,
+  0x51, 0x8c, 0x00, 0x00, 0x55, 0x55, 0x55, 0x00, 0xff, 0xff, 0xb2, 0x94,
+  0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x34, 0xa5, 0xff, 0xff, 0x15, 0x15, 0x15, 0x95,
+  0x1b, 0xdf, 0xa7, 0x39, 0x55, 0x55, 0x55, 0xaa, 0x55, 0xad, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0x00, 0x7d, 0xef, 0xc7, 0x39, 0x35, 0x35, 0x35, 0x2a,
+  0x55, 0xad, 0xe7, 0x39, 0xd5, 0xd5, 0x55, 0x00, 0xbe, 0xf7, 0xa7, 0x39,
+  0x5c, 0x5c, 0x5c, 0xa8, 0xbe, 0xf7, 0xa6, 0x31, 0x2f, 0x25, 0x25, 0x25,
+  0x71, 0x8c, 0xa7, 0x39, 0x00, 0xd5, 0xd7, 0xd7, 0xbe, 0xf7, 0xc7, 0x39,
+  0xf8, 0x5c, 0x5c, 0x5c, 0x51, 0x8c, 0xa2, 0x10, 0x00, 0xff, 0xff, 0xff,
+  0xc7, 0x39, 0xba, 0xd6, 0xaa, 0x00, 0x00, 0x00, 0x79, 0xce, 0x41, 0x08,
+  0xf0, 0x58, 0x58, 0x58, 0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x00, 0x00,
+  0xff, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x00, 0x00,
+  0xff, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0x00, 0x00, 0xff, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0x00, 0x00,
+  0xff, 0x55, 0x55, 0x55, 0x00, 0x00, 0x34, 0xa5, 0xaa, 0x00, 0x00, 0x00,
+  0xb6, 0xb5, 0xc7, 0x39, 0xaa, 0x55, 0x55, 0x55, 0x71, 0x8c, 0x82, 0x10,
+  0x00, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff,
+  0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x82, 0x10,
+  0x00, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff,
+  0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x82, 0x10,
+  0x00, 0xff, 0xff, 0xff, 0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff,
+  0x71, 0x8c, 0x82, 0x10, 0x00, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39,
+  0x0a, 0x95, 0xb5, 0xb5, 0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55,
+  0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55, 0xba, 0xd6, 0xef, 0x7b,
+  0xaa, 0x55, 0x55, 0x55, 0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55,
+  0xef, 0x7b, 0x5d, 0xef, 0x6a, 0x40, 0x40, 0x40, 0xba, 0xd6, 0xcf, 0x7b,
+  0xa8, 0x54, 0x54, 0x54, 0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55,
+  0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55, 0xba, 0xd6, 0xef, 0x7b,
+  0xaa, 0x55, 0x55, 0x55, 0xba, 0xd6, 0xef, 0x7b, 0xaa, 0x55, 0x55, 0x55,
+  0x1c, 0xe7, 0xcf, 0x7b, 0x0a, 0xad, 0xad, 0xad, 0xbe, 0xf7, 0xf7, 0xbd,
+  0xaa, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd,
+  0xaa, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd,
+  0xaa, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55,
+  0xbe, 0xf7, 0xf7, 0xbd, 0xaa, 0x55, 0x55, 0x55, 0xb2, 0x94, 0x1c, 0xe7,
+  0x55, 0xaa, 0xaa, 0xaa, 0xff, 0xff, 0x1c, 0xe7, 0x02, 0x03, 0x03, 0x03,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0x34, 0xa5, 0xc0, 0x40, 0x40, 0x40, 0x30, 0x84, 0x62, 0x10,
+  0x00, 0xff, 0xff, 0xff, 0x51, 0x8c, 0xa2, 0x10, 0x00, 0xff, 0xff, 0xff,
+  0x7d, 0xef, 0xe7, 0x39, 0x2f, 0x35, 0x35, 0x35, 0x51, 0x8c, 0xc7, 0x39,
+  0x00, 0xd5, 0xd7, 0xd5, 0xde, 0xf7, 0xc7, 0x39, 0xf8, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xe7, 0x39,
+  0x14, 0x94, 0x94, 0x94, 0x3c, 0xe7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0x9a, 0xd6, 0x21, 0x08, 0x58, 0x58, 0x58, 0x58,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x41, 0x08, 0x80, 0x80, 0x80, 0x80, 0x49, 0x4a, 0xc7, 0x39,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xe7, 0x39, 0x35, 0x35, 0x35, 0x35,
+  0x10, 0x84, 0xef, 0x7b, 0xfe, 0xfe, 0xfe, 0xfe, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3c, 0xe7,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xef, 0x7b,
+  0xad, 0xad, 0xad, 0xad, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd, 0x20, 0x20, 0x20, 0x20,
+  0xff, 0xff, 0x38, 0xc6, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b,
+  0xc0, 0xc0, 0xc0, 0xc0, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x39, 0xda, 0xd6,
+  0x60, 0x60, 0x60, 0x60, 0x8a, 0x52, 0xc7, 0x39, 0x17, 0x17, 0x17, 0x17,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0x74, 0x74,
+  0x59, 0xce, 0xc7, 0x39, 0x58, 0x58, 0x58, 0x50, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0x9a, 0xd6, 0x21, 0x08, 0x58, 0x58, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x08,
+  0x80, 0x80, 0x80, 0x80, 0x49, 0x4a, 0xc7, 0x39, 0xfd, 0xfd, 0xfd, 0xfd,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xef, 0x7b, 0xe7, 0x39, 0x35, 0x35, 0x35, 0x35, 0x10, 0x84, 0xef, 0x7b,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a,
+  0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xef, 0x7b, 0xad, 0xad, 0xad, 0xad,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf7, 0xbd, 0xd7, 0xbd, 0x20, 0x20, 0x20, 0x20, 0xff, 0xff, 0x38, 0xc6,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b, 0xc0, 0xc0, 0xc0, 0xc0,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0xe7, 0x39, 0x25, 0x25, 0x85, 0x85,
+  0x8a, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3d, 0x3d, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0xaa, 0x52, 0x86, 0x31, 0x7e, 0x7e, 0x7e, 0x7e, 0xbe, 0xf7, 0x28, 0x42,
+  0x5a, 0x52, 0x53, 0x53, 0x08, 0x42, 0xc7, 0x39, 0xaa, 0xaa, 0xaa, 0xff,
+  0x08, 0x42, 0xc7, 0x39, 0x7a, 0x7a, 0x7a, 0x7f, 0x79, 0xce, 0x21, 0x08,
+  0x58, 0x58, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x08, 0x80, 0x80, 0x80, 0x80,
+  0x49, 0x4a, 0xc7, 0x39, 0xfd, 0xfd, 0xfd, 0xfd, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xe7, 0x39,
+  0x35, 0x35, 0x35, 0x35, 0x10, 0x84, 0xef, 0x7b, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b,
+  0x56, 0x56, 0x56, 0x56, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0x1c, 0xe7, 0xef, 0x7b, 0xad, 0xad, 0xad, 0xad, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd,
+  0x20, 0x20, 0x20, 0x20, 0xff, 0xff, 0x38, 0xc6, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x69, 0x4a, 0xff, 0xff, 0x95, 0x95, 0x95, 0x95, 0x86, 0x31, 0x49, 0x4a,
+  0xa8, 0xa8, 0xa8, 0xa8, 0x08, 0x42, 0xc7, 0x39, 0xaa, 0xaa, 0xaa, 0xff,
+  0x9d, 0xef, 0xe7, 0x39, 0x85, 0xc5, 0xcd, 0x4d, 0x8a, 0x52, 0x86, 0x31,
+  0x3d, 0x3d, 0x3f, 0x3f, 0xde, 0xf7, 0xc7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x9e, 0xf7, 0x86, 0x31, 0x25, 0x0a, 0x2f, 0x25, 0x38, 0xc6, 0xe7, 0x39,
+  0x55, 0x00, 0xff, 0x55, 0x7d, 0xef, 0x86, 0x31, 0x73, 0x82, 0xe3, 0x69,
+  0x38, 0xc6, 0xe7, 0x39, 0x55, 0x00, 0xff, 0x55, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x00, 0xff, 0x55, 0xdb, 0xde, 0x20, 0x00, 0x58, 0x58, 0x58, 0x58,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x41, 0x08, 0x80, 0x80, 0x80, 0x80, 0x49, 0x4a, 0xc7, 0x39,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xe7, 0x39, 0x35, 0x35, 0x35, 0x35,
+  0x10, 0x84, 0xef, 0x7b, 0xfe, 0xfe, 0xfe, 0xfe, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3c, 0xe7,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xef, 0x7b,
+  0xad, 0xad, 0xad, 0xad, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd, 0x20, 0x20, 0x20, 0x20,
+  0xff, 0xff, 0x38, 0xc6, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0x14, 0xa5,
+  0x40, 0x80, 0xc0, 0x40, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x00, 0xff, 0x55,
+  0x38, 0xc6, 0xe7, 0x39, 0x55, 0x00, 0xff, 0x55, 0xba, 0xd6, 0xc7, 0x39,
+  0x4d, 0x00, 0xc3, 0x61, 0x38, 0xc6, 0x08, 0x42, 0x55, 0x00, 0xff, 0x55,
+  0x9d, 0xef, 0xa7, 0x39, 0x5c, 0xa0, 0xf8, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0x3c, 0xe7, 0xc7, 0x39, 0x49, 0xcd, 0xc5, 0x85, 0x28, 0x42, 0x86, 0x31,
+  0xaa, 0xab, 0xab, 0xa9, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0x9a, 0xd6, 0x21, 0x08, 0x58, 0x58, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x08,
+  0x80, 0x80, 0x80, 0x80, 0x49, 0x4a, 0xc7, 0x39, 0xfd, 0xfd, 0xfd, 0xfd,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xef, 0x7b, 0xe7, 0x39, 0x35, 0x35, 0x35, 0x35, 0x10, 0x84, 0xef, 0x7b,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a,
+  0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xef, 0x7b, 0xad, 0xad, 0xad, 0xad,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf7, 0xbd, 0xd7, 0xbd, 0x20, 0x20, 0x20, 0x20, 0xff, 0xff, 0x38, 0xc6,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b, 0xc0, 0xc0, 0xc0, 0xc0,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0x6a, 0x6a, 0x9d, 0xef, 0x08, 0x42, 0x71, 0x53, 0x53, 0x5a,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xbe, 0xf7, 0x08, 0x42,
+  0xa5, 0x35, 0x15, 0x15, 0x51, 0x8c, 0xc7, 0x39, 0x55, 0x57, 0x56, 0x54,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0x9a, 0xd6, 0x21, 0x08,
+  0x58, 0x58, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x08, 0x80, 0x80, 0x80, 0x80,
+  0x49, 0x4a, 0xc7, 0x39, 0xfd, 0xfd, 0xfd, 0xfd, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xe7, 0x39,
+  0x35, 0x35, 0x35, 0x35, 0x10, 0x84, 0xef, 0x7b, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xc3, 0x18, 0x3c, 0xe7, 0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b,
+  0x56, 0x56, 0x56, 0x56, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0x1c, 0xe7, 0xef, 0x7b, 0xad, 0xad, 0xad, 0xad, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd,
+  0x20, 0x20, 0x20, 0x20, 0xff, 0xff, 0x38, 0xc6, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0xff, 0xff, 0xcf, 0x7b, 0xc0, 0xc0, 0xc0, 0xc0, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xf3, 0x9c, 0xc7, 0x39, 0x55, 0xd5, 0x95, 0x15,
+  0x5c, 0xe7, 0xe7, 0x39, 0x58, 0x5c, 0x54, 0x54, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0x38, 0xc6, 0xe7, 0x39, 0x15, 0x95, 0xd5, 0x55,
+  0x7d, 0xef, 0xe7, 0x39, 0x56, 0x54, 0x5c, 0x5c, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0x9a, 0xd6, 0x21, 0x08, 0x58, 0x58, 0x58, 0x58,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x41, 0x08, 0x80, 0x80, 0x80, 0x80, 0x49, 0x4a, 0xc7, 0x39,
+  0xfd, 0xfd, 0xfd, 0xfd, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xef, 0x7b, 0xe7, 0x39, 0x35, 0x35, 0x35, 0x35,
+  0x10, 0x84, 0xef, 0x7b, 0xfe, 0xfe, 0xfe, 0xfe, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x18, 0x3c, 0xe7,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xbe, 0xf7, 0xef, 0x7b, 0x56, 0x56, 0x56, 0x56,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52,
+  0xff, 0xff, 0xff, 0xff, 0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff,
+  0xdb, 0xdf, 0x0a, 0x52, 0xff, 0xff, 0xff, 0xff, 0x1c, 0xe7, 0xef, 0x7b,
+  0xad, 0xad, 0xad, 0xad, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd, 0x20, 0x20, 0x20, 0x20,
+  0xff, 0xff, 0x38, 0xc6, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 0xff, 0xff, 0xcf, 0x7b,
+  0xc0, 0xc0, 0xc0, 0xc0, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0x1c, 0xe7, 0xe7, 0x39, 0x15, 0x15, 0x35, 0x25, 0x96, 0xb5, 0xc7, 0x39,
+  0x54, 0x56, 0x57, 0x55, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0x3c, 0xe7, 0xc7, 0x39,
+  0x25, 0x25, 0x25, 0x00, 0x28, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0xe8, 0x41, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0x5c, 0xe7, 0xe7, 0x39,
+  0x5a, 0x52, 0x73, 0x00, 0xe8, 0x41, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
+  0xff, 0xff, 0x41, 0x08, 0x5a, 0x5a, 0x5a, 0xf8, 0x00, 0x00, 0x79, 0xce,
+  0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x79, 0xce, 0x00, 0x00, 0x00, 0xaa,
+  0x00, 0x00, 0x79, 0xce, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x79, 0xce,
+  0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x79, 0xce, 0x00, 0x00, 0x00, 0xaa,
+  0x00, 0x00, 0x79, 0xce, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x61, 0xce,
+  0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x60, 0xce, 0x00, 0x00, 0x00, 0xaa,
+  0x00, 0x00, 0x60, 0xce, 0x00, 0x00, 0x00, 0xaa, 0xe0, 0x9c, 0x00, 0x00,
+  0x55, 0x55, 0x55, 0xaa, 0x03, 0x84, 0xaa, 0x18, 0xff, 0xff, 0xff, 0x00,
+  0x23, 0x84, 0xca, 0x18, 0xff, 0xff, 0xff, 0x00, 0x44, 0x84, 0x29, 0x3a,
+  0x55, 0x55, 0x55, 0x60, 0xc3, 0x50, 0x30, 0x1c, 0xaa, 0xaa, 0xaa, 0x55,
+  0xc3, 0x50, 0x30, 0x1c, 0xaa, 0xaa, 0xaa, 0x55, 0xc3, 0x50, 0x30, 0x1c,
+  0xaa, 0xaa, 0xaa, 0x55, 0xc3, 0x50, 0x30, 0x1c, 0xaa, 0xaa, 0xaa, 0x55,
+  0xc3, 0x50, 0x30, 0x1c, 0xaa, 0xaa, 0xaa, 0x55, 0xc3, 0x50, 0x30, 0x1c,
+  0xaa, 0xaa, 0xaa, 0x55, 0xc8, 0x41, 0x48, 0x0d, 0x00, 0x00, 0x00, 0xff,
+  0x8d, 0x69, 0x64, 0x24, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0xab, 0x26, 0x35,
+  0xaa, 0xaa, 0xaa, 0x55, 0x26, 0x35, 0xb9, 0xca, 0xaa, 0xaa, 0xaa, 0x00,
+  0x26, 0x35, 0xb9, 0xca, 0xaa, 0xaa, 0xaa, 0x00, 0x26, 0x35, 0xb9, 0xca,
+  0xaa, 0xaa, 0xaa, 0x00, 0x9d, 0xee, 0xe7, 0x3b, 0x3f, 0x3f, 0x3f, 0xd5,
+  0xb7, 0xbe, 0x30, 0x82, 0xfc, 0xfc, 0xfc, 0x57, 0xd4, 0xa1, 0x2d, 0x6d,
+  0xff, 0xff, 0xff, 0x00, 0xd4, 0xa1, 0x2d, 0x6d, 0xff, 0xff, 0xff, 0x00,
+  0xd4, 0xa1, 0x2d, 0x6d, 0xff, 0xff, 0xff, 0x00, 0xd4, 0xa1, 0x2d, 0x6d,
+  0xff, 0xff, 0xff, 0x00, 0x36, 0xb6, 0x73, 0x9a, 0x0b, 0x0b, 0x0b, 0x55,
+  0xd9, 0xbf, 0x74, 0xba, 0xaa, 0xaa, 0xaa, 0x55, 0xde, 0xbf, 0x69, 0xba,
+  0xaa, 0xaa, 0xaa, 0x55, 0xde, 0xbf, 0x69, 0xba, 0xaa, 0xaa, 0xaa, 0x55,
+  0xde, 0xbf, 0x69, 0xba, 0xaa, 0xaa, 0xaa, 0x55, 0xde, 0xbf, 0x69, 0xba,
+  0xaa, 0xaa, 0xaa, 0x55, 0xde, 0xbf, 0x69, 0xba, 0xaa, 0xaa, 0xaa, 0x55,
+  0xde, 0xbf, 0x69, 0xba, 0xaa, 0xaa, 0xaa, 0x55, 0x17, 0xc6, 0x33, 0x6a,
+  0x00, 0x00, 0x00, 0x57, 0xd7, 0xf7, 0x77, 0x4a, 0xaa, 0xaa, 0xaa, 0x55,
+  0xd7, 0xf7, 0x77, 0x4a, 0xaa, 0xaa, 0xaa, 0x55, 0xbe, 0xf7, 0xf8, 0x20,
+  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x18, 0x00, 0x00, 0x00, 0xff,
+  0xff, 0xff, 0xf8, 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf8, 0x18,
+  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe5, 0x18, 0x00, 0x00, 0x00, 0xff,
+  0xff, 0xff, 0xe3, 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe3, 0x18,
+  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe3, 0x18, 0x00, 0x00, 0x00, 0xff,
+  0xff, 0xff, 0xe3, 0x18, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe3, 0x18,
+  0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x8e, 0x73, 0xc0, 0xc0, 0xc0, 0x25,
+  0xe7, 0x39, 0x9a, 0xd6, 0x00, 0x00, 0x00, 0x55, 0xdf, 0xff, 0x29, 0x4a,
+  0xa5, 0xc5, 0x4d, 0x82, 0xba, 0xd6, 0xe7, 0x39, 0x55, 0x55, 0x55, 0x00,
+  0x9a, 0xd6, 0x08, 0x42, 0x55, 0x55, 0xd5, 0x00, 0xdf, 0xff, 0x08, 0x42,
+  0x5c, 0x5c, 0x5c, 0xa0, 0xe7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0xcb, 0x5a, 0xe7, 0x39, 0xa8, 0x57, 0x57, 0x57, 0xcb, 0x5a, 0xe7, 0x39,
+  0x02, 0x55, 0x55, 0x55, 0xfb, 0xde, 0x86, 0x31, 0xcb, 0xcd, 0x85, 0x25,
+  0x69, 0x4a, 0xa6, 0x31, 0x00, 0x7d, 0xfd, 0xfe, 0x7d, 0xef, 0xd7, 0xbd,
+  0xf1, 0x51, 0x51, 0x51, 0xf7, 0xbd, 0xba, 0xd6, 0xaa, 0x00, 0x00, 0x00,
+  0xf7, 0xbd, 0xba, 0xd6, 0xaa, 0x00, 0x00, 0x00, 0xf7, 0xbd, 0xba, 0xd6,
+  0xaa, 0x00, 0x00, 0x00, 0xf7, 0xbd, 0xba, 0xd6, 0xaa, 0x00, 0x00, 0x00,
+  0xf7, 0xbd, 0xba, 0xd6, 0xaa, 0x00, 0x00, 0x00, 0xf7, 0xbd, 0xba, 0xd6,
+  0xaa, 0x00, 0x00, 0x00, 0xa1, 0xd6, 0x81, 0xb5, 0xaa, 0xff, 0xff, 0xff,
+  0xa0, 0xd6, 0x80, 0xb5, 0xaa, 0xff, 0xff, 0xff, 0xa0, 0xd6, 0x80, 0xb5,
+  0xaa, 0xff, 0xff, 0xff, 0xa0, 0xd6, 0x80, 0xb5, 0xaa, 0xff, 0xff, 0xff,
+  0x20, 0xc6, 0xc0, 0xbd, 0x00, 0xff, 0xff, 0xff, 0x20, 0xc6, 0xc0, 0xbd,
+  0x00, 0xff, 0xff, 0xff, 0x00, 0xc6, 0x17, 0x06, 0x60, 0x60, 0x60, 0x60,
+  0x38, 0x06, 0xd7, 0x05, 0x00, 0xff, 0xff, 0xff, 0x38, 0x06, 0xd7, 0x05,
+  0x00, 0xff, 0xff, 0xff, 0x38, 0x06, 0xd7, 0x05, 0x00, 0xff, 0xff, 0xff,
+  0x38, 0x06, 0xd7, 0x05, 0x00, 0xff, 0xff, 0xff, 0x38, 0x06, 0xd7, 0x05,
+  0x00, 0xff, 0xff, 0xff, 0x38, 0x06, 0xd7, 0x05, 0x00, 0xff, 0xff, 0xff,
+  0x00, 0x06, 0x19, 0x06, 0x09, 0x09, 0x09, 0x09, 0x20, 0x06, 0xe0, 0x05,
+  0x80, 0x55, 0x55, 0x55, 0x00, 0x06, 0xe0, 0x05, 0x00, 0xff, 0xff, 0xff,
+  0x00, 0x06, 0xe0, 0x05, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0xe0, 0x05,
+  0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0xe0, 0x05, 0x00, 0xff, 0xff, 0xff,
+  0x42, 0x15, 0x00, 0x06, 0x95, 0x95, 0x95, 0x95, 0x18, 0xc0, 0x76, 0xb0,
+  0x01, 0xa1, 0xa1, 0xa1, 0x18, 0xc0, 0x17, 0xb8, 0xaa, 0xff, 0xff, 0xff,
+  0x18, 0xc0, 0x17, 0xb8, 0xaa, 0xff, 0xff, 0xff, 0x18, 0xc0, 0x17, 0xb8,
+  0xaa, 0xff, 0xff, 0xff, 0x18, 0xc0, 0x17, 0xb8, 0xaa, 0xff, 0xff, 0xff,
+  0x18, 0xc0, 0x17, 0xb8, 0xfe, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8,
+  0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x16, 0x00, 0xff, 0xaa, 0xaa, 0xaa,
+  0x18, 0x00, 0x16, 0x00, 0xff, 0xaa, 0xaa, 0xaa, 0x18, 0x00, 0x16, 0x00,
+  0xff, 0xaa, 0xaa, 0xaa, 0x18, 0x00, 0x17, 0x00, 0x55, 0xff, 0xff, 0xff,
+  0x00, 0x00, 0x0d, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xf7, 0xbd, 0x50, 0x50, 0x50, 0x50, 0x8a, 0x52, 0x86, 0x31,
+  0x82, 0x7d, 0x7d, 0x3d, 0x5d, 0xef, 0xe7, 0x39, 0x63, 0x53, 0x5a, 0x5c,
+  0x0c, 0x63, 0x65, 0x29, 0xaa, 0xff, 0xff, 0xff, 0x2c, 0x63, 0x45, 0x29,
+  0x2a, 0xbf, 0xbf, 0xbf, 0xde, 0xf7, 0x08, 0x42, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x9e, 0xf7, 0xe8, 0x41, 0x15, 0x95, 0xd5, 0x55, 0x5d, 0xef, 0xe7, 0x39,
+  0x57, 0x56, 0x54, 0x5c, 0x7d, 0xef, 0x14, 0xa5, 0xf3, 0xf3, 0xf3, 0xf3,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf9, 0xbd, 0xf4, 0xbd, 0xea, 0xea, 0xea, 0xea,
+  0xe0, 0xbd, 0xe3, 0xbd, 0x02, 0x02, 0x02, 0x02, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05,
+  0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d,
+  0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef, 0x00, 0x00, 0x0d, 0x00,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xbd,
+  0x50, 0x50, 0x50, 0x50, 0xda, 0xd6, 0xc7, 0x39, 0xd5, 0x15, 0x35, 0x25,
+  0x3c, 0xe7, 0xe7, 0x39, 0x54, 0x56, 0x57, 0x55, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xa6, 0x31,
+  0x6a, 0xea, 0xaa, 0xaa, 0xfb, 0xde, 0xc7, 0x39, 0x52, 0x73, 0x61, 0x4d,
+  0x7d, 0xef, 0xeb, 0x5a, 0xa2, 0xa2, 0xa2, 0xa2, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf9, 0xbd, 0xf4, 0xbd, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xbd, 0xe3, 0xbd,
+  0x02, 0x02, 0x02, 0x02, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05,
+  0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80,
+  0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8,
+  0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00,
+  0xef, 0xef, 0xef, 0xef, 0x00, 0x00, 0x0d, 0x00, 0x02, 0x02, 0x02, 0x02,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0xbd, 0x50, 0x50, 0x50, 0x50,
+  0x5c, 0xe7, 0xa6, 0x31, 0x85, 0x4d, 0x69, 0x73, 0x08, 0x42, 0xa6, 0x31,
+  0xa9, 0xab, 0xaa, 0xaa, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xa7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0x56, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xe7, 0x39, 0x1c, 0xe7, 0x90, 0x60, 0x40, 0x80, 0xff, 0xff, 0xd7, 0xbd,
+  0x59, 0x5b, 0x58, 0x58, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0xf9, 0xbd, 0xf4, 0xbd,
+  0xea, 0xea, 0xea, 0xea, 0xe5, 0xbd, 0xe0, 0xbd, 0x57, 0x57, 0x57, 0x57,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60,
+  0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99,
+  0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8,
+  0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef,
+  0x00, 0x00, 0x0d, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0x21, 0x08, 0xa5, 0xa5, 0x25, 0x25, 0xc7, 0x39, 0xdb, 0xde,
+  0x06, 0x09, 0x01, 0x02, 0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x28, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xc7, 0x39,
+  0x1f, 0x1f, 0x1f, 0x15, 0xde, 0xf7, 0xc7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x5c, 0xe7, 0x66, 0x31, 0x2f, 0x0a, 0x25, 0x25, 0x55, 0xad, 0xe8, 0x41,
+  0xff, 0x00, 0x55, 0x55, 0x54, 0xa5, 0xe7, 0x39, 0xff, 0x00, 0x55, 0x55,
+  0x34, 0xa5, 0x00, 0x00, 0xaa, 0x00, 0xff, 0xff, 0xfb, 0xde, 0xc7, 0x39,
+  0xbf, 0xaa, 0x55, 0x55, 0xff, 0xff, 0xd7, 0xbd, 0x58, 0x5a, 0x71, 0x61,
+  0xf7, 0xbd, 0xd7, 0xbd, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf9, 0xbd, 0xf4, 0xbd, 0xea, 0xea, 0xea, 0xea,
+  0xe5, 0xbd, 0xe0, 0xbd, 0x57, 0x57, 0x57, 0x57, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05,
+  0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d,
+  0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef, 0x00, 0x00, 0x0d, 0x00,
+  0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xef, 0x41, 0x08,
+  0x25, 0x05, 0x8d, 0x81, 0x34, 0xa5, 0x00, 0x00, 0xa8, 0x00, 0xff, 0xff,
+  0x34, 0xa5, 0x00, 0x00, 0xaa, 0x00, 0xff, 0xff, 0x54, 0xa5, 0xe7, 0x39,
+  0xff, 0x00, 0x55, 0x55, 0x34, 0xa5, 0xc7, 0x39, 0xbf, 0x00, 0xd5, 0xd5,
+  0x9e, 0xf7, 0x86, 0x31, 0xf8, 0xa8, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0x9e, 0xf7, 0xf3, 0x9c, 0x83, 0x23, 0x33, 0xb3, 0xbe, 0xf7, 0xf7, 0xbd,
+  0x55, 0x55, 0x56, 0x5c, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf9, 0xbd, 0xf4, 0xbd, 0xea, 0xea, 0xea, 0xea, 0xe5, 0xbd, 0xe0, 0xbd,
+  0x57, 0x57, 0x57, 0x57, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05,
+  0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80,
+  0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8,
+  0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00,
+  0xef, 0xef, 0xef, 0xef, 0x13, 0x00, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xef, 0x41, 0x08,
+  0x55, 0x55, 0x95, 0x35, 0x7d, 0xef, 0xc3, 0x18, 0x83, 0x8c, 0x86, 0x85,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0x7d, 0xef, 0xaa, 0x52,
+  0xa2, 0xa2, 0xa2, 0xa2, 0xde, 0xf7, 0xf7, 0xbd, 0x5a, 0x71, 0x4d, 0xa5,
+  0xf7, 0xbd, 0x96, 0xb5, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0xf8, 0xbd, 0xf6, 0xbd,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xe5, 0xbd, 0xe0, 0xbd, 0x57, 0x57, 0x57, 0x57,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60,
+  0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99,
+  0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8,
+  0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef,
+  0x13, 0x00, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xfb, 0xde, 0x82, 0x10, 0x85, 0x4d, 0x71, 0x5a,
+  0x1c, 0xe7, 0x41, 0x08, 0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0x51, 0x8c, 0x7d, 0xef, 0xa6, 0xa6, 0xa6, 0xa6,
+  0xf7, 0xbd, 0xbe, 0xf7, 0x40, 0x80, 0x00, 0x00, 0x9d, 0xef, 0xd7, 0xbd,
+  0x57, 0x54, 0x58, 0x73, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf8, 0xbd, 0xf6, 0xbd, 0x6a, 0x6a, 0x6a, 0x6a,
+  0xe0, 0xbd, 0xe2, 0xbd, 0x01, 0x01, 0x01, 0x01, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05,
+  0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d,
+  0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef, 0x13, 0x00, 0x00, 0x00,
+  0x57, 0x57, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x9a, 0xd6, 0x61, 0x08, 0xd5, 0x15, 0x25, 0x4d,
+  0x41, 0x08, 0x1b, 0xdf, 0x01, 0x02, 0x00, 0x00, 0xfb, 0xde, 0x41, 0x08,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xfb, 0xde, 0x65, 0x29,
+  0x25, 0x25, 0x0a, 0x0a, 0xba, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x9a, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa, 0x9a, 0xd6, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0xf3, 0x9c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
+  0x7d, 0xef, 0xd7, 0xbd, 0x51, 0x51, 0x52, 0x52, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xbe, 0xf7, 0xf7, 0xbd, 0x4d, 0xa5, 0x15, 0xd5,
+  0xbe, 0xf7, 0xf7, 0xbd, 0x55, 0x55, 0x57, 0x5c, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf8, 0xbd, 0xf6, 0xbd, 0x6a, 0x6a, 0x6a, 0x6a, 0xe3, 0xbd, 0xe0, 0xbd,
+  0x56, 0x56, 0x56, 0x56, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05,
+  0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80,
+  0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8,
+  0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00,
+  0xef, 0xef, 0xef, 0xef, 0x13, 0x00, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x3c, 0xe7, 0x00, 0x00, 0x55, 0x55, 0xd5, 0x35,
+  0x3c, 0xe7, 0x61, 0x08, 0x71, 0x5a, 0x54, 0x57, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0xda, 0xd6, 0x21, 0x08, 0x85, 0x85, 0x05, 0x05,
+  0xf3, 0x9c, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x9a, 0xd6, 0xc7, 0x39,
+  0x55, 0x55, 0xaa, 0xaa, 0x9a, 0xd6, 0xc7, 0x39, 0x55, 0x55, 0xaa, 0xaa,
+  0x14, 0xa5, 0xa6, 0x31, 0xd5, 0xd5, 0x00, 0x00, 0x9d, 0xef, 0x86, 0x31,
+  0x5c, 0x5c, 0xa8, 0xa8, 0xa6, 0x31, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x86, 0x31, 0x49, 0x4a, 0x02, 0xa9, 0xa9, 0xa9, 0x49, 0x4a, 0x45, 0x29,
+  0xff, 0xaa, 0xaa, 0xaa, 0x49, 0x4a, 0x45, 0x29, 0xff, 0xaa, 0xaa, 0xaa,
+  0x28, 0x42, 0x86, 0x31, 0x55, 0xea, 0xea, 0xea, 0x7d, 0xef, 0x8a, 0x52,
+  0xa2, 0xa2, 0xa2, 0xa2, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0xf7, 0xbd, 0x96, 0xb5, 0x80, 0x00, 0x00, 0x00, 0xbe, 0xf7, 0xf7, 0xbd,
+  0x52, 0x61, 0xc5, 0x35, 0x55, 0xad, 0x79, 0xce, 0xaa, 0xaa, 0xaa, 0xa9,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0xf8, 0xbd, 0xf6, 0xbd,
+  0x6a, 0x6a, 0x6a, 0x6a, 0xe0, 0xbd, 0xe4, 0xbd, 0x02, 0x02, 0x02, 0x02,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60,
+  0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99,
+  0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8,
+  0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef,
+  0x13, 0x00, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0xa5, 0x00, 0x00, 0x00, 0x80,
+  0xf7, 0xbd, 0x20, 0x00, 0x85, 0x41, 0x52, 0x5c, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xd7, 0xbd, 0x50, 0x50, 0x50, 0x50, 0x49, 0x4a, 0x45, 0x29,
+  0xfd, 0xab, 0xab, 0xab, 0x49, 0x4a, 0x45, 0x29, 0xff, 0xaa, 0xaa, 0xaa,
+  0x49, 0x4a, 0x45, 0x29, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0x52, 0x86, 0x31,
+  0x95, 0x3f, 0x3f, 0x3f, 0xbe, 0xf7, 0xa7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0x7d, 0xef, 0xaa, 0x52, 0xa2, 0xa2, 0xa2, 0xa2,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xba, 0xd6, 0x51, 0x8c, 0x2a, 0xaa, 0xaa, 0xaa,
+  0x7d, 0xef, 0xf7, 0xbd, 0x5c, 0x52, 0x41, 0x05, 0xf7, 0xbd, 0xd7, 0xbd,
+  0x00, 0x00, 0x03, 0x0e, 0xf8, 0xbd, 0xf6, 0xbd, 0x6a, 0x6a, 0x6a, 0x6a,
+  0xe3, 0xbd, 0xe0, 0xbd, 0x56, 0x56, 0x56, 0x56, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05,
+  0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d,
+  0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x00, 0xc8, 0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x18, 0x00, 0x17, 0x00, 0xef, 0xef, 0xef, 0xef, 0x13, 0x00, 0x00, 0x00,
+  0x57, 0x57, 0x57, 0x57, 0xc3, 0x18, 0x00, 0x00, 0x55, 0x55, 0x55, 0xd5,
+  0x79, 0xce, 0x61, 0x08, 0x35, 0xc5, 0x61, 0x58, 0xba, 0xd6, 0x00, 0x00,
+  0x57, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xbd,
+  0x50, 0x50, 0x50, 0x50, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0x7d, 0xef, 0xaa, 0x52, 0xa2, 0xa2, 0xa2, 0xa2, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x51, 0x8c, 0x9d, 0xef,
+  0x6a, 0xaa, 0xaa, 0xaa, 0xbe, 0xf7, 0xf7, 0xbd, 0x56, 0x58, 0x61, 0x05,
+  0xf8, 0xbd, 0xf6, 0xbd, 0x6a, 0x6a, 0x6b, 0x6e, 0xe7, 0xbd, 0xe0, 0xbd,
+  0x57, 0x57, 0x57, 0x57, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0xf7, 0x00, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05,
+  0x60, 0x60, 0x60, 0x60, 0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80,
+  0x17, 0xb8, 0x33, 0x99, 0x02, 0x02, 0x02, 0x02, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x01, 0xb8, 0x17, 0xb8, 0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc8,
+  0x09, 0x09, 0x09, 0x09, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00,
+  0xef, 0xef, 0xef, 0xef, 0x13, 0x00, 0x00, 0x00, 0x57, 0x57, 0x57, 0x57,
+  0xb6, 0xb5, 0x41, 0x08, 0x15, 0x25, 0x41, 0x50, 0x20, 0x00, 0xb6, 0xb5,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0xbd, 0x50, 0x50, 0x50, 0x50,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xa7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0x56, 0xc7, 0x39, 0x08, 0x42,
+  0xaa, 0xaa, 0xaa, 0x00, 0xc7, 0x39, 0x08, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0x08, 0x42, 0xa6, 0x31, 0xea, 0xea, 0xea, 0x7f, 0x7d, 0xef, 0xaa, 0x52,
+  0xa2, 0xa2, 0xa2, 0xa2, 0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55,
+  0x00, 0x00, 0xf7, 0xbd, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0xf7, 0xbd,
+  0x55, 0x55, 0x55, 0x55, 0xf7, 0xbd, 0xd7, 0xbd, 0x00, 0x00, 0x00, 0xa0,
+  0xf7, 0xbd, 0x9d, 0xef, 0x40, 0x00, 0x00, 0x00, 0x9d, 0xf7, 0x34, 0xa5,
+  0xfc, 0xf0, 0xc3, 0x0f, 0x26, 0xc6, 0xe0, 0xbd, 0x57, 0x57, 0x57, 0x56,
+  0x00, 0xc6, 0xe0, 0xbd, 0x55, 0x55, 0x55, 0xff, 0x00, 0xc6, 0xe0, 0xbd,
+  0xff, 0xff, 0xff, 0xfd, 0x00, 0xc6, 0xe0, 0xbd, 0x55, 0x55, 0x55, 0xff,
+  0x00, 0xc6, 0xe0, 0xbd, 0x55, 0x55, 0x55, 0x57, 0xc0, 0xf7, 0x00, 0xa5,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0xc5, 0xf7, 0x05, 0x60, 0x60, 0x60, 0x60,
+  0xf8, 0x05, 0xf7, 0x05, 0xfe, 0xfe, 0xfe, 0xfe, 0xde, 0x07, 0x14, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0x17, 0x06, 0xf7, 0x05, 0xff, 0xff, 0xff, 0x7f, 0x17, 0x06, 0xf7, 0x05,
+  0xff, 0xff, 0xff, 0xfd, 0xde, 0x07, 0x14, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0xf9, 0x05, 0x09, 0x09, 0x09, 0x09, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xe0, 0x05, 0xc0, 0x05, 0x00, 0x00, 0x00, 0x20,
+  0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05,
+  0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0x00, 0x05, 0xff, 0xff, 0xff, 0xff,
+  0xe0, 0x05, 0x23, 0x1d, 0x80, 0x80, 0x80, 0x80, 0x17, 0xb8, 0x95, 0xa8,
+  0x03, 0x03, 0x03, 0x03, 0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xf0, 0x14, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x17, 0xb8, 0x17, 0xb8, 0x00, 0x00, 0x00, 0x00,
+  0x1e, 0xf0, 0x14, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xb8, 0x17, 0xb8,
+  0x15, 0x15, 0x15, 0x15, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xc0, 0x00, 0xb8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xb8, 0x00, 0xb8,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff,
+  0x00, 0xf0, 0x00, 0xa0, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0xa0,
+  0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0xc0, 0x09, 0x09, 0x09, 0x09,
+  0x1e, 0x00, 0x14, 0x00, 0xff, 0xff, 0xff, 0xff, 0x18, 0x00, 0x17, 0x00,
+  0x55, 0x55, 0x55, 0xd5, 0x18, 0x00, 0x17, 0x00, 0x55, 0x55, 0x55, 0xff,
+  0x18, 0x00, 0x17, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x18, 0x00, 0x17, 0x00,
+  0x55, 0x55, 0x55, 0xff, 0x18, 0x00, 0x17, 0x00, 0xff, 0xff, 0x7f, 0x7f,
+  0x38, 0xc6, 0x44, 0x08, 0x95, 0x25, 0x49, 0x52, 0x21, 0x08, 0x96, 0xb5,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xf7, 0xbd, 0x50, 0x50, 0x50, 0x50, 0x28, 0x42, 0x86, 0x31,
+  0xa9, 0xa9, 0xa9, 0xfd, 0xc7, 0x39, 0x08, 0x42, 0xaa, 0xaa, 0xaa, 0x00,
+  0xc7, 0x39, 0x08, 0x42, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x1f, 0xde, 0xf7, 0xc7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x9d, 0xef, 0xa6, 0x31, 0x0a, 0x2f, 0x25, 0x25, 0xd7, 0xbd, 0x00, 0x00,
+  0x00, 0xaa, 0xff, 0xff, 0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00,
+  0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00, 0xde, 0xf7, 0xc7, 0x39,
+  0xaa, 0xff, 0x55, 0x55, 0x7d, 0xef, 0xc7, 0x39, 0x00, 0xf8, 0x5a, 0x5a,
+  0x3c, 0xe7, 0xe7, 0x39, 0x00, 0xff, 0x55, 0x55, 0x3c, 0xe7, 0xe7, 0x39,
+  0x00, 0xff, 0x55, 0x55, 0x3c, 0xe7, 0xe7, 0x39, 0x00, 0xff, 0x55, 0x55,
+  0xfb, 0xde, 0xc7, 0x39, 0x00, 0x8f, 0x85, 0x85, 0x3c, 0xe7, 0xa7, 0x39,
+  0x00, 0xff, 0x55, 0x55, 0x7d, 0xef, 0xc7, 0x39, 0x00, 0xff, 0x55, 0x55,
+  0x9a, 0xef, 0xe8, 0x39, 0x00, 0xe2, 0xcd, 0x35, 0x58, 0xe7, 0xc8, 0x39,
+  0x00, 0xff, 0x55, 0x56, 0x7a, 0xef, 0x87, 0x31, 0x00, 0xf8, 0x58, 0x58,
+  0x56, 0xef, 0xc8, 0x39, 0x00, 0xff, 0x55, 0x55, 0x55, 0xe7, 0xc8, 0x39,
+  0x00, 0xff, 0x55, 0x55, 0x55, 0xe7, 0xe8, 0x39, 0x00, 0xff, 0x55, 0x55,
+  0x39, 0xdf, 0x26, 0x29, 0x00, 0x8b, 0xcd, 0xcd, 0x3c, 0xaf, 0xc7, 0x41,
+  0x00, 0xff, 0x55, 0x55, 0x5c, 0xaf, 0xe7, 0x41, 0x00, 0xff, 0x55, 0x55,
+  0x5c, 0xaf, 0xe7, 0x41, 0x00, 0xff, 0x55, 0x55, 0x5c, 0xb7, 0xc7, 0x41,
+  0x00, 0xbf, 0xd5, 0xd5, 0x3c, 0xc7, 0xe7, 0x41, 0x00, 0xfc, 0x54, 0x54,
+  0x5c, 0xaf, 0xe7, 0x41, 0x00, 0xff, 0x55, 0x55, 0x37, 0xa7, 0xe8, 0x49,
+  0x00, 0xff, 0x55, 0x55, 0xa8, 0x41, 0xf4, 0xa6, 0x55, 0xaa, 0x00, 0x00,
+  0xd8, 0xc6, 0xa7, 0x39, 0x00, 0xc3, 0x49, 0x49, 0xa7, 0x39, 0xd5, 0xae,
+  0x55, 0xaa, 0x00, 0x00, 0xa8, 0x41, 0xf4, 0xa6, 0x55, 0xaa, 0x00, 0x00,
+  0xa8, 0x41, 0xf4, 0xa6, 0x55, 0xaa, 0x00, 0x00, 0xa7, 0x39, 0xf7, 0xbe,
+  0x55, 0x6a, 0x40, 0x40, 0xc6, 0x31, 0x99, 0xcd, 0x55, 0xa9, 0x01, 0x01,
+  0xe6, 0x31, 0x3b, 0xdd, 0x55, 0xaa, 0x00, 0x00, 0xe6, 0x31, 0x3b, 0xdd,
+  0x55, 0xaa, 0x00, 0x00, 0xe6, 0x31, 0x5b, 0xdd, 0x55, 0xaa, 0x00, 0x00,
+  0xc6, 0x31, 0x1a, 0xd6, 0x55, 0x96, 0x24, 0x24, 0xe6, 0x31, 0x3b, 0xdd,
+  0x55, 0xaa, 0x00, 0x00, 0x07, 0x32, 0x3a, 0xdd, 0x55, 0xaa, 0x00, 0x00,
+  0xe8, 0x31, 0x34, 0xdd, 0x55, 0xaa, 0x00, 0x00, 0x5d, 0xff, 0xe8, 0x41,
+  0xaa, 0x3f, 0x15, 0x15, 0xe7, 0x31, 0x55, 0xc5, 0x55, 0xa9, 0x02, 0x02,
+  0xe8, 0x31, 0x34, 0xdd, 0x55, 0xaa, 0x00, 0x00, 0xe8, 0x31, 0x34, 0xdd,
+  0x55, 0xaa, 0x00, 0x00, 0xc7, 0x31, 0x55, 0xdd, 0x55, 0xaa, 0x00, 0x00,
+  0x5f, 0xf7, 0x08, 0x42, 0xaa, 0xf2, 0x53, 0x53, 0x3a, 0xa5, 0xc6, 0x39,
+  0x00, 0xaa, 0x55, 0x55, 0xe6, 0x39, 0x7c, 0xad, 0x55, 0xaa, 0x00, 0x00,
+  0xe6, 0x39, 0x9c, 0xb5, 0x55, 0xaa, 0x00, 0x00, 0x3e, 0xe7, 0xc7, 0x39,
+  0xaa, 0x2f, 0x25, 0x25, 0xc6, 0x39, 0xdb, 0xbd, 0x55, 0xaa, 0x00, 0x80,
+  0x9f, 0xf7, 0x86, 0x31, 0xaa, 0x8b, 0x7b, 0x5e, 0x5d, 0xef, 0xe7, 0x39,
+  0xa8, 0xff, 0x55, 0x55, 0x14, 0xa5, 0xa6, 0x31, 0x00, 0xaa, 0x55, 0x55,
+  0xba, 0xd6, 0xe7, 0x39, 0xaa, 0xf0, 0x52, 0x52, 0x14, 0xa5, 0xc7, 0x39,
+  0x00, 0xaa, 0x55, 0x55, 0x14, 0xa5, 0xc7, 0x39, 0x00, 0xaa, 0x55, 0x55,
+  0x14, 0xa5, 0xc7, 0x39, 0x00, 0xaa, 0x55, 0x55, 0xfb, 0xde, 0xe7, 0x39,
+  0x0a, 0x0f, 0x85, 0x85, 0xde, 0xf7, 0xc7, 0x39, 0xaa, 0xff, 0x55, 0x55,
+  0xe7, 0x39, 0xd7, 0xbd, 0x55, 0xaa, 0x00, 0x00, 0xe7, 0x39, 0xd7, 0xbd,
+  0x55, 0xaa, 0x00, 0x00, 0xd7, 0xbd, 0x20, 0x00, 0x00, 0xaa, 0xff, 0xff,
+  0xde, 0xf7, 0xc7, 0x39, 0xa8, 0xf8, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde,
+  0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0xa6, 0x31,
+  0x1f, 0x7f, 0xff, 0xff, 0x3c, 0xe7, 0xe7, 0x39, 0x58, 0xc9, 0x25, 0xd5,
+  0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29,
+  0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95,
+  0x08, 0x42, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0xc7, 0x39,
+  0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40,
+  0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea, 0xe7, 0x39, 0xfb, 0xde,
+  0x24, 0x24, 0x24, 0x24, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40,
+  0x96, 0xb5, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42,
+  0x53, 0x53, 0x53, 0x53, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x5c, 0xe7, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x25,
+  0x17, 0xbe, 0xe7, 0x39, 0x25, 0x61, 0x58, 0x57, 0x49, 0x4a, 0x65, 0x29,
+  0xac, 0xab, 0xaa, 0xaa, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39,
+  0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39,
+  0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x49, 0x4a, 0xc7, 0x39, 0x9f, 0x1f, 0x1f, 0x1f, 0x7d, 0xef, 0x65, 0x29,
+  0xc0, 0x38, 0xd8, 0x58, 0xdb, 0xde, 0xc7, 0x39, 0x55, 0x56, 0x70, 0x89,
+  0x28, 0x42, 0xa6, 0x31, 0xaa, 0xaa, 0xab, 0xa4, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd,
+  0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95, 0x08, 0x42, 0x1c, 0xe7,
+  0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xba, 0xd6, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x49,
+  0x08, 0x42, 0xc7, 0x39, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5,
+  0x01, 0x01, 0x01, 0x01, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39,
+  0xea, 0xea, 0xea, 0xea, 0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0x00, 0x00,
+  0xfe, 0xfe, 0xfe, 0xfe, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0x65, 0x29,
+  0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x39, 0x28, 0x42,
+  0xaa, 0xaa, 0xaa, 0x0a, 0xe7, 0x39, 0x18, 0xc6, 0x00, 0x80, 0x50, 0x26,
+  0x1c, 0xe7, 0xc7, 0x39, 0x09, 0x2c, 0x27, 0x25, 0x08, 0x42, 0xc7, 0x39,
+  0xaf, 0xac, 0xac, 0xac, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a,
+  0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31,
+  0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39,
+  0x1f, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09,
+  0xb6, 0xb5, 0xc7, 0x39, 0x35, 0x55, 0x55, 0x55, 0x3c, 0xe7, 0xe8, 0x41,
+  0x5c, 0x63, 0x25, 0xd5, 0x1c, 0xe7, 0xe7, 0x39, 0x55, 0x55, 0x56, 0x72,
+  0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42,
+  0xa8, 0xa8, 0xa8, 0xa8, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39,
+  0x95, 0x95, 0x95, 0x95, 0x08, 0x42, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xba, 0xd6, 0xc7, 0x39, 0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde,
+  0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea,
+  0xe7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0x9e, 0xf7,
+  0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea,
+  0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53, 0x96, 0xb5, 0xc7, 0x39,
+  0x55, 0x55, 0x95, 0x0d, 0x38, 0xc6, 0xe7, 0x39, 0x35, 0xc9, 0x58, 0x57,
+  0x55, 0xad, 0xc7, 0x39, 0x5c, 0x55, 0x55, 0x55, 0x1b, 0xdf, 0xc7, 0x39,
+  0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39, 0xac, 0xac, 0xac, 0xac,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a,
+  0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0x9d, 0xef, 0x08, 0x42,
+  0x25, 0x25, 0x0a, 0x25, 0x18, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0xf7, 0xbd, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0xde, 0xf7, 0x29, 0x4a, 0x5a, 0x5a, 0xa0, 0x5a, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x49, 0x4a, 0xdb, 0xde,
+  0x90, 0x90, 0x55, 0x90, 0x18, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0x00, 0xfd,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x9d, 0xef, 0x08, 0x42, 0x58, 0x58, 0xa0, 0x58, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x38, 0xc6, 0xc7, 0x39, 0x0d, 0x95, 0x00, 0xff, 0x0c, 0x63, 0x7d, 0xef,
+  0x10, 0x15, 0x55, 0x90, 0xff, 0xff, 0x28, 0x42, 0x55, 0x55, 0xaa, 0x70,
+  0xf7, 0xbd, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x59, 0xce, 0x00, 0x00, 0xbf, 0xbf, 0x00, 0xbf,
+  0x9d, 0xef, 0x69, 0x4a, 0x54, 0x54, 0xa8, 0x54, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0xda, 0xd6, 0x08, 0x42,
+  0x49, 0x49, 0x00, 0x49, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x5d, 0xef, 0x49, 0x4a, 0x15, 0x15, 0x2a, 0x15,
+  0xbe, 0xf7, 0x29, 0x4a, 0x56, 0x56, 0xa8, 0x56, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0xba, 0xd6, 0xc7, 0x39,
+  0x61, 0x61, 0x00, 0x63, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0xde, 0xf7, 0x69, 0x4a, 0x15, 0x15, 0x2a, 0x15,
+  0x38, 0xc6, 0xe8, 0x41, 0x57, 0x57, 0x00, 0xf6, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x17, 0xbe, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x08, 0x42, 0x59, 0xce, 0x00, 0x00, 0x55, 0x58, 0x9d, 0xef, 0x8a, 0x52,
+  0x53, 0xa3, 0x00, 0x52, 0xf7, 0xbd, 0xe7, 0x39, 0x70, 0x56, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x5c, 0xe7, 0x28, 0x42, 0x25, 0x25, 0x0a, 0x25,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0x00, 0x7f, 0xda, 0xd6, 0x28, 0x42,
+  0x52, 0x52, 0x00, 0x52, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x5c, 0xe7, 0x49, 0x4a, 0x85, 0x85, 0x0a, 0x85,
+  0x18, 0xc6, 0xe7, 0x39, 0x55, 0x55, 0x00, 0xfd, 0x18, 0xc6, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x55, 0x55, 0x00, 0xff,
+  0x38, 0xc6, 0x49, 0x4a, 0x55, 0x55, 0x00, 0xd5, 0xff, 0xff, 0x28, 0x42,
+  0x5c, 0x5c, 0xa8, 0x5c, 0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0x49, 0x4a, 0xc7, 0x39, 0x56, 0xf4, 0xf4, 0xf4, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xa6, 0x31, 0x7f, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0xe8, 0x41, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90,
+  0xaa, 0x52, 0x86, 0x31, 0xfd, 0xfd, 0xfd, 0xfd, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x49, 0x4a, 0xc7, 0x39, 0x95, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff,
+  0x09, 0x09, 0x09, 0x09, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd,
+  0xc7, 0x39, 0x38, 0xc6, 0x58, 0x80, 0x00, 0x00, 0x79, 0xce, 0xc7, 0x39,
+  0x56, 0xc2, 0x2d, 0x55, 0x9a, 0xd6, 0xe7, 0x39, 0x55, 0x55, 0x58, 0x0b,
+  0xc7, 0x39, 0x38, 0xc6, 0x80, 0x80, 0x80, 0x82, 0x1c, 0xe7, 0xe8, 0x41,
+  0x54, 0x54, 0x54, 0x54, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0xba, 0xd6, 0xa7, 0x39, 0x49, 0x49, 0x49, 0x49,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xab, 0xab, 0xab, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0xe7, 0x39, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5,
+  0x01, 0x01, 0x01, 0x01, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xea, 0xea, 0xea, 0xc7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x28, 0x42, 0xbe, 0xf7, 0x40, 0x40, 0x40, 0x40, 0xae, 0x73, 0xc7, 0x39,
+  0x54, 0x54, 0x54, 0x94, 0xbe, 0xf7, 0xe7, 0x39, 0x55, 0x55, 0xb5, 0xea,
+  0x75, 0xad, 0xc7, 0x39, 0x95, 0x03, 0x78, 0x55, 0x7d, 0xef, 0xc7, 0x39,
+  0x7a, 0x57, 0x55, 0x55, 0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0xfb, 0xde, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39,
+  0x57, 0xae, 0xae, 0xae, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0xe8, 0x41, 0x65, 0x29,
+  0x6a, 0xc0, 0xc0, 0xc0, 0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39,
+  0x55, 0xaa, 0xaa, 0xaa, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0xfb, 0xde, 0xe7, 0x39, 0x85, 0x85, 0x85, 0x85, 0x28, 0x42, 0x86, 0x31,
+  0xfd, 0xa9, 0xa9, 0xa9, 0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa,
+  0x08, 0x42, 0xc7, 0x39, 0x55, 0xaa, 0xaa, 0xaa, 0x8a, 0x52, 0xc7, 0x39,
+  0x15, 0x1f, 0x1f, 0x1f, 0xde, 0xf7, 0xc7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c,
+  0xc7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39,
+  0xf4, 0xf4, 0xf4, 0xf4, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31,
+  0xea, 0xea, 0xea, 0xea, 0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xdb, 0xde, 0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39,
+  0x1f, 0x1f, 0x1f, 0x1f, 0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x5d, 0xef, 0x45, 0x29, 0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42,
+  0xa8, 0xa8, 0xa8, 0xa8, 0x08, 0x42, 0xc7, 0x39, 0xea, 0xaa, 0xaa, 0xaa,
+  0x30, 0x84, 0xc7, 0x39, 0x35, 0x55, 0x55, 0x55, 0x38, 0xc6, 0xc7, 0x39,
+  0xa0, 0x2d, 0xd5, 0x95, 0x7d, 0xef, 0x08, 0x42, 0x54, 0x78, 0xac, 0x54,
+  0x59, 0xce, 0xe8, 0x41, 0x55, 0x55, 0x78, 0x2b, 0xb6, 0xb5, 0xc7, 0x39,
+  0x55, 0x55, 0x55, 0xe0, 0x08, 0x42, 0xa6, 0x31, 0xaa, 0xaa, 0xaa, 0x58,
+  0xba, 0xd6, 0xa7, 0x39, 0x49, 0x49, 0x49, 0x49, 0x08, 0x42, 0xc7, 0x39,
+  0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x39, 0xdb, 0xde,
+  0x40, 0x40, 0x40, 0x40, 0xc7, 0x39, 0xb6, 0xb5, 0x01, 0x01, 0x01, 0x01,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xc7, 0x39, 0xea, 0xea, 0xea, 0xea,
+  0xc7, 0x39, 0xfb, 0xde, 0x24, 0x24, 0x24, 0x24, 0x08, 0x42, 0xa6, 0x31,
+  0xaa, 0xaa, 0xaa, 0x37, 0x38, 0xc6, 0xe8, 0x41, 0x55, 0x55, 0x55, 0x2d,
+  0x59, 0xce, 0xe7, 0x39, 0x55, 0x55, 0x2d, 0xe8, 0xbe, 0xf7, 0xe7, 0x39,
+  0x35, 0x2d, 0x3a, 0x15, 0x18, 0xc6, 0xc7, 0x39, 0x0a, 0x78, 0x57, 0x57,
+  0x30, 0x84, 0xc7, 0x39, 0x5c, 0x55, 0x55, 0x55, 0x08, 0x42, 0xc7, 0x39,
+  0xab, 0xaa, 0xaa, 0xaa, 0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea,
+  0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x53, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xc7, 0x39,
+  0x25, 0x25, 0x25, 0x25, 0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0xae,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a,
+  0xba, 0xd6, 0xe7, 0x39, 0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41,
+  0x85, 0x85, 0x85, 0x85, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f,
+  0xde, 0xf7, 0xe7, 0x39, 0x5c, 0x5c, 0x5c, 0x5c, 0xc7, 0x39, 0xff, 0xff,
+  0x60, 0x60, 0x60, 0x60, 0x49, 0x4a, 0xc7, 0x39, 0xf4, 0xf4, 0xf4, 0xf4,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x28, 0x42, 0x86, 0x31, 0xea, 0xea, 0xea, 0xea,
+  0xff, 0xff, 0xc7, 0x39, 0x5a, 0x5a, 0x5a, 0x5a, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x08, 0x42, 0xdb, 0xde,
+  0x90, 0x90, 0x90, 0x90, 0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x49, 0x4a, 0xc7, 0x39, 0x1f, 0x1f, 0x1f, 0x1f,
+  0xc7, 0x39, 0xff, 0xff, 0x09, 0x09, 0x09, 0x09, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x45, 0x29,
+  0xcd, 0xcd, 0xcd, 0xcd, 0xc7, 0x39, 0x28, 0x42, 0xa8, 0xa8, 0xa8, 0xa8,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0x34, 0xa5, 0xc7, 0x39, 0x95, 0x95, 0x95, 0x95,
+  0x08, 0x42, 0x1c, 0xe7, 0x01, 0x01, 0x01, 0x01, 0x29, 0x4a, 0x65, 0x29,
+  0x3f, 0xaa, 0xaa, 0xaa, 0xf7, 0xbd, 0xe7, 0x39, 0x2b, 0x55, 0x55, 0x55,
+  0x38, 0xc6, 0xc7, 0x39, 0xa0, 0xaf, 0x55, 0x55, 0x1c, 0xe7, 0xa6, 0x31,
+  0x4b, 0x82, 0xc9, 0x49, 0x34, 0xa5, 0xa7, 0x39, 0x55, 0xe0, 0x02, 0x55,
+  0x58, 0xc6, 0x28, 0x42, 0x55, 0x55, 0x00, 0xd5, 0xb6, 0xb5, 0xe7, 0x39,
+  0x55, 0x55, 0x00, 0xaf, 0xdb, 0xde, 0xa6, 0x31, 0x15, 0x15, 0x2a, 0x2a,
+  0xfb, 0xde, 0xa6, 0x31, 0x56, 0x56, 0xa8, 0xa8, 0x95, 0xad, 0xc7, 0x39,
+  0x55, 0x55, 0x00, 0xea, 0x58, 0xc6, 0x28, 0x42, 0x55, 0x55, 0x00, 0x57,
+  0x14, 0xa5, 0xa7, 0x39, 0x55, 0x0b, 0x80, 0x55, 0x3c, 0xe7, 0xe7, 0x39,
+  0x61, 0x82, 0x63, 0x61, 0x38, 0xc6, 0xe7, 0x39, 0x0b, 0xfa, 0x55, 0x55,
+  0x18, 0xc6, 0xe7, 0x39, 0xe8, 0x55, 0x55, 0x55, 0x6a, 0x52, 0xa6, 0x31,
+  0x5c, 0xff, 0xff, 0xff, 0x08, 0x42, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40,
+  0xc7, 0x39, 0xb6, 0xb5, 0x02, 0x02, 0x02, 0x02, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x49, 0x4a, 0x65, 0x29, 0xea, 0xea, 0xea, 0xea, 0xbe, 0xf7, 0x28, 0x42,
+  0x53, 0x53, 0x53, 0x53, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x25,
+  0x08, 0x42, 0xc7, 0x39, 0xae, 0xae, 0xae, 0xae, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0x86, 0x31, 0x69, 0x4a, 0x2a, 0x2a, 0x2a, 0x2a, 0xba, 0xd6, 0xe7, 0x39,
+  0x52, 0x52, 0x52, 0x52, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xfb, 0xde, 0xe8, 0x41, 0x85, 0x85, 0x85, 0x85,
+  0x49, 0x4a, 0x45, 0x29, 0xab, 0xab, 0xab, 0xab, 0xd3, 0x9d, 0x02, 0x10,
+  0xff, 0xff, 0xff, 0xff, 0xd3, 0x9d, 0x02, 0x10, 0xff, 0xff, 0xff, 0xff,
+  0xaa, 0x52, 0x86, 0x31, 0x3f, 0x3f, 0x3f, 0x3f, 0xde, 0xf7, 0xe7, 0x39,
+  0x5c, 0x5c, 0x5c, 0x5c, 0xe7, 0x39, 0xff, 0xff, 0x60, 0x60, 0x60, 0x60,
+  0xeb, 0x5a, 0xe7, 0x39, 0x57, 0x57, 0x57, 0xa8, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xc7, 0x39, 0x5f, 0x5f, 0x55, 0x80, 0xf7, 0xbd, 0x00, 0x00,
+  0xf0, 0xf0, 0xf0, 0xf0, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x28, 0x42, 0xfb, 0xde, 0x90, 0x90, 0x90, 0x90,
+  0x8a, 0x52, 0x86, 0x31, 0xfd, 0xfd, 0xfd, 0x02, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0xeb, 0x5a, 0xe7, 0x39, 0xd5, 0xd5, 0xd5, 0x2a, 0xe7, 0x39, 0xff, 0xff,
+  0x09, 0x09, 0x09, 0x09, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x5d, 0xef, 0x86, 0x31, 0xcd, 0xcd, 0xcd, 0xcd,
+  0x8a, 0x52, 0xc7, 0x39, 0xfd, 0xfd, 0x55, 0x02, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x30, 0x84, 0xc7, 0x39, 0x15, 0x15, 0x15, 0x3f, 0x28, 0x42, 0x3c, 0xe7,
+  0x01, 0x01, 0x01, 0x01, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0xda, 0xd6, 0xe7, 0x39, 0x49, 0x49, 0x49, 0x49,
+  0x2c, 0x63, 0x45, 0x29, 0xff, 0xff, 0xff, 0xaa, 0x8a, 0x52, 0x86, 0x31,
+  0xff, 0xff, 0xff, 0x00, 0x8a, 0x52, 0xa6, 0x31, 0x55, 0xff, 0xff, 0x00,
+  0x08, 0x42, 0xdb, 0xde, 0x40, 0x40, 0x40, 0x40, 0x96, 0xb5, 0xa7, 0x39,
+  0x54, 0x54, 0x54, 0xf4, 0x8a, 0x52, 0xa6, 0x31, 0x55, 0xff, 0xff, 0x00,
+  0x8a, 0x52, 0x86, 0x31, 0xff, 0xff, 0xff, 0x00, 0x2c, 0x63, 0x45, 0x29,
+  0xff, 0xff, 0xff, 0xaa, 0xba, 0xd6, 0xe7, 0x39, 0x61, 0x61, 0x61, 0x61,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x29, 0x4a, 0x9e, 0xf7, 0x40, 0x40, 0x40, 0x40, 0xcf, 0x7b, 0xc7, 0x39,
+  0x54, 0x54, 0x54, 0xfc, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa6, 0x31,
+  0x7f, 0x7f, 0x7f, 0x80, 0xbe, 0xf7, 0x28, 0x42, 0x53, 0x53, 0x53, 0x73,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0xfb, 0xde, 0xe8, 0x41, 0x25, 0x25, 0x25, 0x25, 0x2c, 0x63, 0x45, 0x29,
+  0xff, 0xff, 0xff, 0xaa, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0x86, 0x31,
+  0x7f, 0x7f, 0x7f, 0x80, 0xba, 0xd6, 0x08, 0x42, 0x52, 0x52, 0x52, 0x52,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10,
+  0xaa, 0xaa, 0xaa, 0x00, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0xfb, 0xde, 0x28, 0x42, 0x85, 0x85, 0x85, 0x85, 0x8a, 0x52, 0x86, 0x31,
+  0xfd, 0xfd, 0xfd, 0x02, 0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00,
+  0x8a, 0x52, 0xa2, 0x10, 0xaa, 0xaa, 0xaa, 0x00, 0x2c, 0x63, 0x25, 0x29,
+  0xbf, 0xbf, 0xbf, 0x2a, 0xde, 0xf7, 0x08, 0x42, 0x5c, 0x5c, 0x5c, 0x5c,
+  0x7d, 0xef, 0xc7, 0x39, 0x0a, 0x25, 0x25, 0x25, 0x38, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe7, 0x39, 0x18, 0xc6,
+  0x55, 0x00, 0x00, 0x00, 0xbe, 0xf7, 0xe7, 0x39, 0xa0, 0x5a, 0x5a, 0x5a,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x08, 0x42, 0xda, 0xd6, 0x55, 0x90, 0x90, 0x90, 0x18, 0xc6, 0xe7, 0x39,
+  0x00, 0x55, 0x55, 0x55, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x7d, 0xef, 0xc7, 0x39, 0xa0, 0x58, 0x58, 0x58,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x3c, 0xe7, 0x66, 0x31, 0x02, 0xcd, 0xcd, 0xcd, 0xe7, 0x39, 0x18, 0xc6,
+  0x55, 0x00, 0x00, 0x00, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe7, 0x39, 0x59, 0xce,
+  0x55, 0x80, 0x80, 0x80, 0x9d, 0xef, 0x08, 0x42, 0xa8, 0x54, 0x54, 0x54,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0xba, 0xd6, 0xc7, 0x39, 0x00, 0x49, 0x49, 0x49, 0xe8, 0x41, 0x18, 0xc6,
+  0x55, 0x00, 0x00, 0x00, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x5d, 0xef, 0x08, 0x42,
+  0x2a, 0x15, 0x15, 0x15, 0xbe, 0xf7, 0xe7, 0x39, 0xa8, 0x56, 0x56, 0x56,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0xe8, 0x41, 0x18, 0xc6, 0x55, 0x00, 0x00, 0x00,
+  0xe7, 0x39, 0xda, 0xd6, 0x55, 0x24, 0x24, 0x24, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xde, 0xf7, 0x28, 0x42,
+  0x2a, 0x15, 0x15, 0x15, 0xc7, 0x39, 0x38, 0xc6, 0x55, 0x02, 0x02, 0x02,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0xe7, 0x39, 0x18, 0xc6, 0x55, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0x49, 0x4a, 0xa2, 0x53, 0x53, 0x53, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3c, 0xe7, 0xe7, 0x39,
+  0x0a, 0x25, 0x25, 0x25, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0xc7, 0x39, 0x00, 0x55, 0x55, 0x55,
+  0xba, 0xd6, 0xe8, 0x41, 0x00, 0x52, 0x52, 0x52, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3c, 0xe7, 0x08, 0x42,
+  0x0a, 0x85, 0x85, 0x85, 0xe7, 0x39, 0x18, 0xc6, 0x55, 0x00, 0x00, 0x00,
+  0x18, 0xc6, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0xff, 0x18, 0xc6, 0x08, 0x42, 0x00, 0xd5, 0x55, 0x55,
+  0xff, 0xff, 0xe7, 0x39, 0xa8, 0x5c, 0x5c, 0x5c
+};
+
+/**
+ * Zstd compressed version of \c #rawDxt1.
+ */
+static char const srcZstd[] = {
+  0x28, 0xb5, 0x2f, 0xfd, 0x60, 0x00, 0x7f, 0xfd, 0xe2, 0x00, 0x8a, 0x05,
+  0xc9, 0x3c, 0x5c, 0x00, 0x8e, 0x39, 0xb3, 0x01, 0xb3, 0xa8, 0xf4, 0xeb,
+  0x13, 0x29, 0xfe, 0x37, 0xcd, 0x0a, 0x2e, 0xa8, 0xc3, 0xc2, 0xaf, 0xdf,
+  0x28, 0x0b, 0x96, 0x5f, 0x79, 0x8b, 0xf8, 0xa2, 0xb8, 0x4f, 0x23, 0x4b,
+  0xd4, 0xe8, 0x9c, 0xeb, 0xc9, 0xf8, 0xc3, 0xcd, 0xeb, 0xed, 0x68, 0xae,
+  0x60, 0x7c, 0xe7, 0x61, 0x90, 0x00, 0x9d, 0x43, 0xbf, 0x2e, 0x88, 0x22,
+  0x90, 0xab, 0x1b, 0x84, 0x37, 0x82, 0x73, 0x3e, 0x92, 0x9c, 0xbd, 0x83,
+  0x34, 0x6e, 0x7a, 0x88, 0x92, 0x6c, 0x28, 0x06, 0x9a, 0x6c, 0xef, 0x65,
+  0xb9, 0x6f, 0x66, 0xfe, 0x0a, 0x4c, 0x6a, 0xb8, 0x26, 0x21, 0x3d, 0x9a,
+  0x03, 0xc3, 0x03, 0xb7, 0x03, 0x9d, 0xcf, 0x34, 0x91, 0x71, 0xff, 0x4f,
+  0xd3, 0x76, 0x70, 0x0d, 0xfe, 0x12, 0x20, 0xc6, 0x61, 0x46, 0x4b, 0x47,
+  0xe5, 0x9c, 0xd3, 0x71, 0x0e, 0x35, 0x47, 0x6a, 0x82, 0xf0, 0x19, 0x00,
+  0x26, 0xe1, 0x6b, 0x00, 0x8f, 0x2f, 0xe0, 0x73, 0x51, 0xf1, 0x43, 0x02,
+  0xd7, 0x31, 0x7f, 0x56, 0xf4, 0x7e, 0x44, 0x58, 0x3c, 0x5c, 0x49, 0x3a,
+  0xee, 0xc9, 0x39, 0x0f, 0x57, 0x5d, 0x22, 0x86, 0x21, 0x64, 0xc4, 0xc3,
+  0x75, 0x53, 0x79, 0x8f, 0x8a, 0x8a, 0x8a, 0xb9, 0x4f, 0x48, 0xe4, 0xef,
+  0xd7, 0xf4, 0xff, 0x7c, 0xba, 0x4f, 0x32, 0xa7, 0x51, 0x96, 0x91, 0x76,
+  0x0f, 0x2d, 0x83, 0xe7, 0xdc, 0x1a, 0xf5, 0x7a, 0xba, 0x48, 0x4e, 0x3b,
+  0x3b, 0x6f, 0x6d, 0x07, 0x69, 0xba, 0xd7, 0xb3, 0xe9, 0xb5, 0x0d, 0x4b,
+  0x1f, 0x0e, 0x81, 0x6e, 0x41, 0x1d, 0x71, 0xc7, 0x05, 0x38, 0xa7, 0x18,
+  0xd0, 0x91, 0x3c, 0xde, 0x3b, 0xe4, 0x7d, 0x41, 0xed, 0xd2, 0x1b, 0x32,
+  0x35, 0xd3, 0xc3, 0x38, 0xbe, 0xc9, 0x80, 0xf6, 0x70, 0x40, 0x89, 0xac,
+  0x15, 0x74, 0x14, 0x0c, 0x66, 0x1b, 0xbd, 0x2f, 0xa0, 0x65, 0x9e, 0x4f,
+  0x0c, 0xc8, 0x90, 0x82, 0xd7, 0x09, 0x25, 0x43, 0x10, 0x74, 0x12, 0x16,
+  0xd6, 0x4b, 0x8a, 0xbd, 0xe2, 0x5f, 0x06, 0x27, 0x5e, 0x32, 0x38, 0x79,
+  0x9d, 0xb4, 0x71, 0x9e, 0x6f, 0x2e, 0x92, 0x70, 0x2d, 0xf7, 0x69, 0xaa,
+  0x00, 0xb4, 0x31, 0xa8, 0xf6, 0xea, 0x10, 0x5d, 0xca, 0x5c, 0xa8, 0x28,
+  0x53, 0x86, 0x20, 0xdc, 0x27, 0x5a, 0x86, 0x84, 0x36, 0x71, 0xfe, 0x3f,
+  0x55, 0x80, 0xd7, 0x69, 0x34, 0x42, 0xd5, 0x1b, 0xfc, 0xf7, 0xfe, 0xdf,
+  0x03, 0x08, 0x26, 0x9a, 0xe6, 0x5c, 0x26, 0xab, 0xd5, 0x6e, 0x31, 0xa2,
+  0x5e, 0xb0, 0xff, 0x57, 0x1a, 0x7a, 0x6b, 0x9c, 0x0e, 0x3a, 0x3c, 0xa8,
+  0xda, 0x06, 0xea, 0xd7, 0x95, 0x52, 0x64, 0xae, 0x2f, 0x50, 0x23, 0xde,
+  0x04, 0x7f, 0xd6, 0xac, 0x64, 0x68, 0x9a, 0x46, 0xe2, 0xf0, 0xde, 0x6c,
+  0x45, 0x03, 0x79, 0x64, 0x76, 0x9f, 0x6e, 0x1f, 0x20, 0xe0, 0x22, 0x31,
+  0xf7, 0x38, 0xff, 0x15, 0x47, 0xfc, 0xfc, 0xfe, 0xdf, 0x27, 0xb7, 0xc6,
+  0xf8, 0x5f, 0x69, 0xce, 0x6f, 0xcd, 0xa3, 0xe1, 0x42, 0xd1, 0x07, 0x49,
+  0x75, 0x91, 0x6e, 0x1f, 0xcf, 0xe7, 0x33, 0x9d, 0xb5, 0x8b, 0x2c, 0x1b,
+  0x7f, 0xb0, 0x9a, 0x91, 0xdd, 0x7d, 0x82, 0x52, 0xed, 0xdc, 0x10, 0xa3,
+  0x81, 0xc2, 0x7d, 0xaa, 0x5d, 0x7a, 0x3d, 0xe4, 0xd7, 0x0d, 0x3b, 0x08,
+  0x04, 0x0e, 0xbb, 0xb6, 0x78, 0x3c, 0xa8, 0xe8, 0xd6, 0x6c, 0x26, 0x13,
+  0xc7, 0x43, 0x22, 0xbb, 0x1d, 0xf2, 0xc9, 0xf3, 0x29, 0xc3, 0x64, 0xfa,
+  0xe7, 0xf4, 0x91, 0x86, 0xd3, 0x54, 0xf7, 0x29, 0xba, 0xc5, 0x02, 0x02,
+  0xc2, 0x11, 0x72, 0xd2, 0xbd, 0xb4, 0xc2, 0xc9, 0xf4, 0x76, 0x9e, 0x8d,
+  0x54, 0x22, 0x51, 0xc6, 0x01, 0x24, 0x3a, 0x3a, 0x46, 0x26, 0x2f, 0x54,
+  0x16, 0xcf, 0x5b, 0x1f, 0x77, 0x9c, 0x7f, 0x87, 0xa7, 0x53, 0xbc, 0x56,
+  0x93, 0xa1, 0x70, 0x65, 0xd4, 0xce, 0x3b, 0x3a, 0x93, 0x93, 0xde, 0x5a,
+  0xa8, 0xaa, 0xaa, 0xea, 0x16, 0x83, 0xb3, 0x30, 0x9f, 0x20, 0x01, 0xef,
+  0x85, 0x7a, 0x86, 0x78, 0x9d, 0xcd, 0x9a, 0xd6, 0x8a, 0x68, 0x86, 0xe5,
+  0x16, 0x87, 0x82, 0x52, 0xc1, 0x53, 0xd6, 0xe9, 0x88, 0xe5, 0xbc, 0x27,
+  0x7d, 0x9d, 0xca, 0x9b, 0xdb, 0x40, 0x29, 0xbe, 0x50, 0xc9, 0xa5, 0x25,
+  0x4e, 0xbb, 0x09, 0xaa, 0x58, 0x8d, 0x8a, 0x8a, 0x82, 0xa7, 0x46, 0xb6,
+  0xe7, 0x41, 0x45, 0x3d, 0xe1, 0x20, 0xe4, 0xf5, 0x72, 0x6b, 0x16, 0x0f,
+  0x0e, 0xd7, 0xc1, 0x06, 0xaf, 0xf3, 0x5e, 0x72, 0xfe, 0x94, 0xd5, 0x5c,
+  0x24, 0xdf, 0x12, 0x12, 0x62, 0x92, 0x41, 0x5e, 0xe7, 0x5b, 0x3b, 0xa1,
+  0x54, 0xc9, 0xdf, 0xeb, 0x24, 0xda, 0x00, 0xe7, 0x3d, 0xe3, 0xee, 0x67,
+  0x14, 0x41, 0x54, 0xaa, 0xf8, 0x5c, 0x9e, 0xc8, 0xe2, 0x51, 0x42, 0xd3,
+  0xb4, 0x2b, 0x23, 0x67, 0x7b, 0xeb, 0x3b, 0xba, 0x82, 0x26, 0xca, 0x32,
+  0x38, 0x41, 0x2e, 0xd2, 0x0c, 0xaf, 0x33, 0xb7, 0xd6, 0x76, 0x72, 0xb6,
+  0x7b, 0x79, 0x8b, 0xf1, 0xf5, 0x9f, 0x5c, 0xca, 0xad, 0x36, 0x64, 0x24,
+  0x70, 0x0e, 0x4f, 0xb3, 0x78, 0x64, 0x10, 0xeb, 0x71, 0xe0, 0x0f, 0x21,
+  0xd0, 0x45, 0xe2, 0x32, 0x0c, 0xb4, 0x32, 0xf8, 0x1a, 0xe4, 0x5b, 0x77,
+  0x2e, 0x0e, 0x45, 0xc2, 0x8d, 0xbe, 0x86, 0x73, 0x7a, 0x8a, 0x73, 0x6e,
+  0x4c, 0xe6, 0xd6, 0x66, 0x1b, 0x93, 0x00, 0x25, 0x76, 0x91, 0xa0, 0x48,
+  0x48, 0xf8, 0x67, 0x32, 0x88, 0x31, 0xc9, 0xf9, 0x5b, 0x37, 0x67, 0x14,
+  0x2b, 0x7c, 0xa4, 0x71, 0x79, 0xeb, 0xe2, 0xeb, 0x3c, 0xd2, 0x20, 0x73,
+  0xb6, 0xd7, 0x79, 0x63, 0xe1, 0x2c, 0x21, 0x75, 0x63, 0x81, 0x13, 0xaf,
+  0xbe, 0xd7, 0xd9, 0xbb, 0x12, 0x17, 0x29, 0x67, 0xeb, 0x6c, 0xac, 0xe9,
+  0x04, 0x4d, 0x62, 0xe7, 0x1d, 0xf5, 0x80, 0x98, 0xb3, 0xc9, 0x2c, 0x80,
+  0x44, 0x44, 0xbd, 0xee, 0xa5, 0x91, 0x91, 0x91, 0x30, 0x69, 0xb7, 0xdb,
+  0x3d, 0x79, 0x9d, 0x45, 0x46, 0x6e, 0x1f, 0x38, 0x37, 0x20, 0x15, 0xef,
+  0x7d, 0x3d, 0x59, 0x61, 0xa5, 0xd6, 0x4d, 0x74, 0x2b, 0x67, 0x63, 0xf2,
+  0x5a, 0x16, 0x7a, 0xf6, 0xfe, 0xee, 0x93, 0x2c, 0xc4, 0xe3, 0xb7, 0x86,
+  0x22, 0x81, 0xd5, 0x36, 0x39, 0xdb, 0x8a, 0xd7, 0x79, 0xc4, 0xda, 0x3d,
+  0x2b, 0x4c, 0x26, 0x53, 0xa6, 0x5a, 0xad, 0xc6, 0x5c, 0x24, 0x39, 0xc9,
+  0xc6, 0xe4, 0x5f, 0x79, 0x1b, 0x19, 0xf1, 0x7f, 0x9d, 0x38, 0x41, 0xbd,
+  0x77, 0xfa, 0x16, 0x03, 0x48, 0xc4, 0xd7, 0xd7, 0x17, 0xf2, 0x16, 0xc3,
+  0x47, 0xc4, 0xa7, 0xf7, 0xb7, 0x36, 0xfe, 0x7e, 0xbf, 0xdc, 0xda, 0xb9,
+  0xfe, 0xc9, 0xf4, 0x44, 0x22, 0x31, 0xb7, 0xca, 0xb2, 0x0c, 0x4f, 0x39,
+  0xe7, 0xb9, 0x15, 0x4a, 0x55, 0x73, 0x91, 0xf8, 0x9d, 0x9d, 0x1d, 0x9c,
+  0xb8, 0xfe, 0x7d, 0xaf, 0xd7, 0x83, 0xa7, 0x50, 0x24, 0x32, 0xb3, 0xd9,
+  0x0c, 0xe7, 0xd6, 0x3b, 0x8f, 0x89, 0x89, 0x89, 0x7a, 0x3d, 0x8f, 0xc7,
+  0x83, 0xa7, 0xb5, 0x0b, 0xbf, 0xb9, 0xb9, 0xf9, 0x38, 0x8e, 0x5f, 0x67,
+  0xd4, 0x0b, 0x06, 0x83, 0x71, 0x91, 0x10, 0x0a, 0x85, 0x50, 0x2a, 0x78,
+  0xfa, 0x58, 0x58, 0x58, 0x2e, 0xd2, 0xfa, 0xf3, 0x3c, 0x33, 0xbd, 0x35,
+  0xcf, 0x91, 0x23, 0x47, 0xd4, 0xcb, 0xe8, 0xf3, 0xf9, 0xde, 0xba, 0x77,
+  0x78, 0xba, 0xf2, 0xff, 0x87, 0x52, 0xe5, 0x6c, 0x5f, 0xab, 0xd5, 0x5e,
+  0x67, 0x6d, 0x13, 0xc6, 0xae, 0x1d, 0x79, 0x8e, 0x05, 0x83, 0xca, 0x17,
+  0xe2, 0x88, 0x71, 0x30, 0xc3, 0xd5, 0x52, 0xd8, 0xe1, 0x1d, 0xd5, 0x19,
+  0x6d, 0x34, 0xa7, 0xe1, 0xfa, 0x42, 0x9b, 0x4c, 0xcc, 0xf8, 0x2f, 0x93,
+  0xf1, 0x7a, 0x0f, 0x56, 0x3b, 0x08, 0x58, 0xc4, 0xda, 0xeb, 0x84, 0x22,
+  0x91, 0xcd, 0xc8, 0xb1, 0xf5, 0x7a, 0xbd, 0xb7, 0xde, 0xf1, 0x7a, 0xbc,
+  0xe9, 0x59, 0x9c, 0xe1, 0xaa, 0x56, 0x56, 0x50, 0x62, 0x30, 0xa5, 0xa1,
+  0xff, 0x1b, 0x8b, 0xde, 0x7b, 0xbc, 0xdd, 0x6f, 0x56, 0x7c, 0xf2, 0x28,
+  0x29, 0x62, 0x4e, 0xd0, 0x50, 0x31, 0x89, 0x67, 0x07, 0xa1, 0x50, 0x02,
+  0x2c, 0xe0, 0x3f, 0xba, 0x15, 0x93, 0x89, 0x80, 0xb1, 0x92, 0x99, 0xca,
+  0x0a, 0x2c, 0x76, 0x53, 0xf5, 0x7f, 0x64, 0x41, 0xfe, 0xc8, 0xb2, 0xef,
+  0xf6, 0xc1, 0x3a, 0xc9, 0xf0, 0xde, 0xff, 0x61, 0x28, 0xbd, 0x5f, 0xd5,
+  0x66, 0x45, 0xce, 0x7b, 0xe2, 0xc4, 0x2f, 0x73, 0x81, 0x05, 0x1f, 0x11,
+  0xda, 0xfa, 0x6c, 0x4b, 0x9b, 0x81, 0xd5, 0xdc, 0xc4, 0x5e, 0xa0, 0xf0,
+  0xec, 0xa5, 0x0e, 0xcc, 0x5c, 0x02, 0x8d, 0x18, 0x1b, 0xc2, 0x1a, 0x8e,
+  0x1d, 0x26, 0x8c, 0x48, 0x04, 0xd4, 0x20, 0x64, 0x88, 0xcd, 0x04, 0xb7,
+  0x23, 0xb1, 0x74, 0x8a, 0xc3, 0xe9, 0xff, 0xde, 0xa9, 0x22, 0xbc, 0xf1,
+  0x84, 0x9f, 0xe9, 0xca, 0xbd, 0x64, 0xd6, 0x38, 0x9b, 0x6d, 0xff, 0xb6,
+  0x96, 0x5b, 0xed, 0x26, 0xab, 0x22, 0xcd, 0x2b, 0xa2, 0x19, 0x8a, 0xb8,
+  0xff, 0x18, 0xac, 0xab, 0xa0, 0xce, 0x28, 0x06, 0x73, 0x5c, 0x88, 0x8e,
+  0x80, 0x0a, 0x24, 0x87, 0x1d, 0xf4, 0x2d, 0x39, 0xe6, 0x0c, 0xd5, 0x3f,
+  0x21, 0x99, 0x06, 0x12, 0x11, 0x45, 0x95, 0x51, 0x81, 0xcc, 0x44, 0x31,
+  0x91, 0x2a, 0xc2, 0x57, 0x91, 0x0b, 0x84, 0x70, 0xa0, 0xed, 0xb2, 0x7b,
+  0x7e, 0x3d, 0xcf, 0x59, 0x0d, 0xab, 0x84, 0xf5, 0x59, 0x16, 0xd6, 0xc2,
+  0x5a, 0x98, 0x2d, 0x46, 0x83, 0xcd, 0x70, 0x30, 0x13, 0xab, 0x41, 0x99,
+  0xce, 0xc4, 0x6e, 0x60, 0x68, 0xdc, 0xc0, 0xbc, 0x80, 0x79, 0x01, 0xa3,
+  0x13, 0xf3, 0xa5, 0x13, 0xe3, 0x13, 0x33, 0xc7, 0x94, 0x50, 0x23, 0xa1,
+  0x84, 0x1a, 0x8d, 0x1a, 0x8d, 0x9a, 0x0d, 0x13, 0x54, 0x1b, 0x26, 0x84,
+  0x2d, 0xa6, 0xc2, 0x16, 0x38, 0x5a, 0xe0, 0x68, 0x91, 0xc3, 0x45, 0x0e,
+  0x17, 0x46, 0x17, 0x32, 0xe4, 0x8b, 0x1a, 0x5e, 0x20, 0x5f, 0xd4, 0xf0,
+  0x42, 0x48, 0x90, 0x90, 0x78, 0x48, 0x5c, 0x15, 0x0f, 0x09, 0x1a, 0x12,
+  0x74, 0x44, 0xc8, 0x89, 0x09, 0x84, 0xa4, 0x42, 0x18, 0x90, 0x0a, 0x4d,
+  0x67, 0x50, 0xa7, 0x33, 0x98, 0xcc, 0x50, 0x81, 0xc9, 0x0c, 0xea, 0x04,
+  0xe8, 0x18, 0xc0, 0xa0, 0xc6, 0x7a, 0xbb, 0x99, 0x88, 0xda, 0xc1, 0xd7,
+  0x08, 0xb8, 0x22, 0xe7, 0x54, 0x11, 0xfa, 0x01, 0x74, 0xa8, 0x22, 0xa8,
+  0x40, 0x08, 0x15, 0x49, 0x53, 0x6a, 0xa5, 0xf8, 0x96, 0xd4, 0x2e, 0x40,
+  0xf9, 0xc7, 0xe3, 0xfc, 0x39, 0xf3, 0x2d, 0xb1, 0x7b, 0x84, 0x6d, 0xd7,
+  0x3f, 0x5f, 0x61, 0xec, 0xb7, 0xb0, 0x0f, 0x81, 0x06, 0xfb, 0x18, 0xb6,
+  0xd8, 0x67, 0x80, 0xcd, 0xc0, 0x0c, 0x4d, 0xc6, 0x0b, 0xd8, 0x0b, 0x98,
+  0x27, 0xa2, 0x13, 0xf3, 0x30, 0x68, 0x8b, 0xcc, 0x31, 0xb4, 0x4f, 0xcc,
+  0xca, 0xcc, 0x8b, 0x00, 0x4a, 0xa8, 0x15, 0xc9, 0x11, 0xe3, 0x37, 0x58,
+  0x3b, 0x62, 0x8f, 0xa3, 0xc5, 0x0b, 0x1f, 0x6e, 0x3b, 0x39, 0x5c, 0xec,
+  0x70, 0xb1, 0x92, 0x83, 0xd1, 0xc5, 0xca, 0x96, 0x0b, 0x03, 0xf2, 0x05,
+  0x07, 0xa6, 0x90, 0xa2, 0x54, 0xc5, 0xb2, 0x15, 0x5b, 0x43, 0x82, 0xde,
+  0x27, 0x26, 0x80, 0xab, 0x47, 0x84, 0x7a, 0xae, 0x84, 0x54, 0x88, 0xc9,
+  0x8c, 0x15, 0x78, 0xf0, 0x15, 0xa8, 0xa8, 0x33, 0xfe, 0x63, 0x51, 0x41,
+  0x56, 0x4c, 0x3d, 0x88, 0x89, 0x38, 0xa6, 0xf4, 0x44, 0x92, 0x20, 0xe7,
+  0xfc, 0xa9, 0x33, 0x56, 0xa0, 0x1a, 0x31, 0x62, 0xc4, 0x31, 0xab, 0xc7,
+  0xf4, 0x04, 0xe7, 0x9d, 0xfe, 0xa7, 0xb9, 0x52, 0x4b, 0xa9, 0x55, 0xab,
+  0xa1, 0x90, 0x35, 0x95, 0xa8, 0x56, 0x7b, 0x3f, 0xc6, 0x44, 0x3f, 0x1f,
+  0x91, 0x6e, 0x54, 0x42, 0x4e, 0x2a, 0x32, 0xf2, 0x2f, 0x6b, 0x4c, 0x8b,
+  0x83, 0x95, 0xc0, 0x34, 0x8a, 0x86, 0x96, 0x08, 0x4d, 0x03, 0x4a, 0x60,
+  0xe0, 0xe4, 0x36, 0x00, 0x97, 0x95, 0x56, 0x53, 0xbc, 0x2e, 0xd2, 0xad,
+  0x01, 0xef, 0xde, 0x77, 0x47, 0x9c, 0x02, 0x13, 0xce, 0x21, 0x86, 0x01,
+  0x46, 0xa2, 0xdb, 0x51, 0x8d, 0xb7, 0x74, 0x39, 0xd0, 0xff, 0x0f, 0x57,
+  0x75, 0x5b, 0x3c, 0x3d, 0xe8, 0xaa, 0x3d, 0x16, 0x8b, 0xc9, 0x25, 0x78,
+  0xaa, 0xfd, 0xab, 0xf7, 0x6a, 0x13, 0x1d, 0xf3, 0x04, 0xe6, 0x0c, 0xc4,
+  0xc2, 0xf1, 0xf4, 0x24, 0x9d, 0x29, 0xaf, 0x00, 0x76, 0xee, 0x2b, 0x11,
+  0xd4, 0x83, 0x58, 0x57, 0x1e, 0xe7, 0x7c, 0x6b, 0x46, 0x84, 0x65, 0x20,
+  0x11, 0xd1, 0x2d, 0x23, 0x1f, 0x11, 0x9d, 0xd1, 0x0f, 0x8c, 0x9d, 0x0e,
+  0x90, 0xf8, 0x53, 0x02, 0x0a, 0x63, 0x06, 0x46, 0x72, 0x05, 0xd5, 0xb7,
+  0xe4, 0x49, 0xdb, 0x55, 0xbb, 0x14, 0x6b, 0x3a, 0x9c, 0x20, 0xd3, 0x46,
+  0x15, 0xe8, 0xec, 0xb0, 0x73, 0x05, 0xe1, 0x5b, 0x02, 0x24, 0xe2, 0xf9,
+  0x7f, 0x0b, 0x21, 0x6a, 0xe5, 0xe0, 0x61, 0x2b, 0x07, 0x2b, 0xcc, 0x0a,
+  0xc3, 0xb2, 0x60, 0x43, 0x60, 0x65, 0xb0, 0x32, 0x5a, 0x09, 0x20, 0xd9,
+  0x16, 0x2d, 0x0e, 0xa3, 0x16, 0x47, 0x4b, 0xb7, 0x1a, 0xa0, 0xd1, 0x34,
+  0x9a, 0x56, 0x84, 0x46, 0xc4, 0x86, 0x45, 0x2b, 0x62, 0xf3, 0xc1, 0xe6,
+  0x83, 0xcb, 0x1a, 0x6f, 0x02, 0x70, 0x59, 0x15, 0x5c, 0xd6, 0x75, 0x5d,
+  0xf7, 0x55, 0xc0, 0xab, 0x80, 0x77, 0xf7, 0xee, 0xc0, 0x35, 0xa6, 0xf0,
+  0x0e, 0x4e, 0x01, 0x06, 0x23, 0x9c, 0x42, 0xbc, 0x43, 0x1a, 0xef, 0x88,
+  0x73, 0x88, 0x79, 0xe8, 0xb6, 0x60, 0xe8, 0xb6, 0x78, 0x54, 0xa0, 0xeb,
+  0x81, 0xa7, 0x6a, 0x83, 0xa7, 0xca, 0xf3, 0xe5, 0x84, 0xe7, 0xeb, 0xa7,
+  0x84, 0x54, 0xb7, 0x61, 0xcc, 0x7a, 0x74, 0x45, 0x95, 0x8b, 0xa7, 0xdf,
+  0x4e, 0xa0, 0xee, 0x65, 0xb1, 0xea, 0x23, 0x12, 0xf5, 0xfa, 0xf5, 0x38,
+  0x94, 0x4a, 0xe8, 0xd3, 0xaa, 0x44, 0xbd, 0xb8, 0x9c, 0x04, 0xe4, 0x01,
+  0x97, 0x69, 0xa2, 0x0d, 0xfc, 0xbf, 0x14, 0xce, 0xcd, 0xb7, 0xe4, 0xf9,
+  0xcf, 0x3a, 0xf1, 0xff, 0x35, 0x86, 0x3f, 0x6c, 0x85, 0xf9, 0x18, 0x1b,
+  0xa3, 0xf7, 0x28, 0x2c, 0x0b, 0xbe, 0xa6, 0xb4, 0x50, 0xab, 0x8a, 0xfb,
+  0x37, 0xd9, 0x8a, 0x00, 0xf6, 0xf6, 0x2a, 0xbd, 0xeb, 0x01, 0x8b, 0xc3,
+  0xdb, 0x19, 0xb7, 0x11, 0x6c, 0x08, 0xf7, 0x01, 0x9c, 0xe6, 0x82, 0x8b,
+  0x22, 0x01, 0x2f, 0x8d, 0xde, 0x42, 0x00, 0x7e, 0x81, 0x46, 0x03, 0xf6,
+  0xc0, 0xbb, 0x43, 0x3b, 0xa1, 0xf7, 0x3e, 0x78, 0x9a, 0x5c, 0x9a, 0xfd,
+  0x7e, 0x3b, 0xde, 0x6e, 0xf7, 0x9b, 0xdf, 0xba, 0xfe, 0x39, 0x7b, 0x00,
+  0x31, 0x9b, 0xe1, 0x8e, 0x4b, 0xdf, 0xce, 0xce, 0x90, 0x90, 0x50, 0x94,
+  0x94, 0x14, 0x1d, 0x53, 0x8d, 0x76, 0x13, 0xd0, 0xea, 0x73, 0x6e, 0xaa,
+  0x84, 0x37, 0x47, 0x96, 0xa7, 0x45, 0xb7, 0x82, 0xba, 0x86, 0x44, 0x41,
+  0xde, 0x9f, 0xd7, 0x9c, 0x39, 0x58, 0x57, 0x44, 0x9c, 0xa0, 0xac, 0x1b,
+  0x46, 0xdd, 0x47, 0x13, 0x6b, 0x35, 0x1d, 0x14, 0x50, 0x68, 0x79, 0x9d,
+  0x5d, 0x79, 0x73, 0xe5, 0xfd, 0x3f, 0x55, 0x64, 0xd7, 0x2e, 0x5f, 0xb8,
+  0xb7, 0x2e, 0xb2, 0xab, 0xc2, 0x15, 0xfe, 0x79, 0x7d, 0x81, 0x32, 0xb1,
+  0x44, 0x9f, 0x4e, 0x25, 0x1d, 0x8a, 0x99, 0xaa, 0x58, 0xed, 0xa2, 0xc3,
+  0x06, 0xe5, 0x7d, 0x2f, 0x65, 0x45, 0x46, 0x6a, 0x17, 0x2a, 0x21, 0xbb,
+  0xa7, 0xc8, 0xa6, 0x4a, 0x26, 0x8b, 0xb2, 0xa1, 0xd2, 0x10, 0xfd, 0x3a,
+  0x93, 0x41, 0x8e, 0x34, 0xff, 0xf7, 0x92, 0xc9, 0x0a, 0xd3, 0x50, 0xaa,
+  0xd7, 0xc9, 0x3a, 0x29, 0xe9, 0xa8, 0x5a, 0x5a, 0xcf, 0x7f, 0xa1, 0x94,
+  0x86, 0x50, 0x2c, 0x91, 0xcf, 0x9f, 0x4f, 0x19, 0xfa, 0x85, 0xe2, 0x22,
+  0x61, 0x43, 0xef, 0x3a, 0x1d, 0x92, 0xff, 0xfa, 0xa2, 0x34, 0x54, 0x8c,
+  0xe9, 0xe8, 0x40, 0xef, 0x34, 0xff, 0x3e, 0xc5, 0x91, 0x53, 0x35, 0x64,
+  0xb5, 0xfa, 0xd7, 0xd2, 0xd2, 0x32, 0x7b, 0x6b, 0x39, 0x09, 0x8a, 0xe4,
+  0x75, 0xd6, 0x36, 0x2c, 0x3a, 0x74, 0xe8, 0x78, 0x6b, 0x15, 0x2a, 0x6a,
+  0x35, 0x28, 0x95, 0x4e, 0x93, 0x26, 0x28, 0xa0, 0xa0, 0x42, 0x45, 0x12,
+  0xf1, 0x0a, 0x2b, 0x07, 0x9e, 0xda, 0x4d, 0x1f, 0xbc, 0xc9, 0xba, 0xf1,
+  0xbd, 0xff, 0x5b, 0x0c, 0x9f, 0x3c, 0xbd, 0x97, 0x4f, 0x96, 0x9c, 0x24,
+  0x2b, 0x20, 0xd2, 0x91, 0xa6, 0x2a, 0xe9, 0x78, 0xa5, 0x24, 0x42, 0x04,
+  0x4f, 0x73, 0x0e, 0xe4, 0x7b, 0xe7, 0xf1, 0x2e, 0x20, 0xb5, 0x02, 0x29,
+  0x69, 0x2b, 0xac, 0x1a, 0x39, 0xa7, 0x69, 0xd6, 0x47, 0x06, 0x4e, 0xb7,
+  0x0f, 0xbe, 0xc3, 0x0e, 0x2b, 0xf0, 0xc8, 0xc2, 0xf9, 0x0d, 0x37, 0xb0,
+  0xc3, 0x65, 0x0b, 0xfb, 0xa3, 0xd4, 0xe2, 0xdc, 0x66, 0x63, 0x87, 0x3d,
+  0x80, 0x48, 0x42, 0x39, 0x2f, 0x52, 0x84, 0x1d, 0x4e, 0xd5, 0xe0, 0x7c,
+  0x38, 0x5c, 0x81, 0x47, 0x33, 0x9c, 0xa7, 0x48, 0xb1, 0xc2, 0x53, 0x45,
+  0xce, 0x65, 0x64, 0xb4, 0x78, 0x3b, 0x24, 0x72, 0x05, 0x2a, 0xef, 0x9b,
+  0x1b, 0x21, 0xa1, 0xa8, 0x17, 0x3b, 0xe4, 0x7c, 0x65, 0x85, 0xfd, 0x19,
+  0x2a, 0x6f, 0xce, 0x5d, 0x5c, 0x58, 0x27, 0x1e, 0x78, 0x00, 0x02, 0xd9,
+  0xa1, 0x11, 0x23, 0x2b, 0xcc, 0x79, 0xdb, 0x72, 0xfe, 0xc3, 0x0f, 0x2b,
+  0x1c, 0xf5, 0x02, 0xf2, 0x5e, 0x8f, 0x1e, 0xff, 0x47, 0x33, 0xff, 0xed,
+  0x0f, 0xce, 0x81, 0x3e, 0x3e, 0xcd, 0x9a, 0x5f, 0x5a, 0xb2, 0x9b, 0x5a,
+  0xab, 0xff, 0x68, 0xf4, 0xdf, 0xee, 0xe1, 0x9c, 0xfd, 0xe1, 0x3c, 0xb8,
+  0xc2, 0xff, 0x42, 0x94, 0x58, 0x0c, 0x45, 0x69, 0xa8, 0x77, 0x9a, 0x21,
+  0xa7, 0xae, 0x20, 0xfe, 0x34, 0x4d, 0x6d, 0x68, 0x67, 0x47, 0xce, 0xad,
+  0xb5, 0x8d, 0xd0, 0x11, 0x5b, 0x64, 0xf7, 0x00, 0x22, 0xc8, 0xd3, 0x91,
+  0xe6, 0xe6, 0x5b, 0xa2, 0xa3, 0x03, 0x29, 0x9e, 0x96, 0x0c, 0x22, 0xec,
+  0xfd, 0x88, 0xfd, 0xf1, 0xc3, 0x25, 0x8b, 0x07, 0xca, 0x83, 0x07, 0x2d,
+  0x25, 0x15, 0xe7, 0x5c, 0x5d, 0xe5, 0x56, 0xbb, 0x67, 0xfe, 0xed, 0x76,
+  0xf0, 0xb4, 0xfe, 0xf1, 0xd7, 0xa9, 0xc3, 0x06, 0x27, 0x38, 0xee, 0x53,
+  0x93, 0x06, 0x21, 0x78, 0xeb, 0x64, 0x10, 0x0e, 0x4f, 0x93, 0x4b, 0x4b,
+  0x4a, 0x43, 0xb7, 0x18, 0x3c, 0x72, 0xb6, 0xda, 0xc6, 0xa6, 0xc8, 0x66,
+  0x9d, 0x5e, 0x00, 0xc0, 0x45, 0x02, 0x8a, 0x84, 0x8b, 0x84, 0x4b, 0x17,
+  0xce, 0x6d, 0x7d, 0xe9, 0x71, 0x82, 0xf5, 0xc5, 0xa9, 0xf8, 0x62, 0xf7,
+  0xac, 0x30, 0x3f, 0xd6, 0x70, 0xb3, 0xdb, 0xc7, 0xd5, 0x11, 0x6b, 0x07,
+  0xbb, 0x2c, 0xe3, 0xda, 0x8a, 0xfa, 0xd1, 0x35, 0xc2, 0x13, 0xa6, 0x94,
+  0xf4, 0x06, 0x69, 0x77, 0x7a, 0x67, 0x15, 0xca, 0x07, 0x6a, 0x29, 0xa9,
+  0x97, 0x97, 0x97, 0x93, 0x22, 0xfb, 0x88, 0x35, 0xe1, 0x05, 0x39, 0x29,
+  0xb9, 0xa4, 0x81, 0x8b, 0xa4, 0xd4, 0xda, 0x60, 0x46, 0xce, 0x54, 0x8d,
+  0x12, 0xb4, 0x00, 0x02, 0x89, 0xd0, 0x61, 0x43, 0x08, 0xc9, 0xa5, 0x9c,
+  0xad, 0x78, 0xc4, 0xd6, 0x2e, 0xbc, 0x22, 0xfb, 0x5e, 0x0a, 0xd5, 0x36,
+  0xad, 0xd5, 0x4a, 0x6b, 0x75, 0xc4, 0xb6, 0x3f, 0x94, 0xb7, 0xcb, 0x8d,
+  0x45, 0xed, 0xc2, 0x03, 0xb0, 0xb5, 0xba, 0x7a, 0xeb, 0xda, 0x26, 0xa6,
+  0xfd, 0xd1, 0x9c, 0x55, 0x6a, 0x99, 0xa3, 0x99, 0x22, 0x23, 0x2b, 0xe8,
+  0xe8, 0x00, 0xfb, 0x33, 0xdb, 0x41, 0x1b, 0x4f, 0xeb, 0x1d, 0xc7, 0x0e,
+  0xb3, 0x6e, 0x80, 0xd0, 0xc3, 0xff, 0x54, 0x8d, 0xb9, 0x76, 0x59, 0xe1,
+  0x5a, 0x6d, 0xb3, 0xc2, 0x40, 0x1e, 0x4c, 0xd5, 0xb0, 0x83, 0x6f, 0x9d,
+  0x75, 0xa3, 0x73, 0xfe, 0x7c, 0x7e, 0xbc, 0xca, 0x49, 0xf2, 0xd5, 0x36,
+  0x45, 0x46, 0xa4, 0x5a, 0x20, 0x36, 0x31, 0x93, 0xe8, 0x90, 0x92, 0x4a,
+  0xad, 0xa0, 0x7f, 0xf5, 0xde, 0x69, 0x39, 0x09, 0xca, 0x64, 0x82, 0x09,
+  0x26, 0x24, 0xe5, 0xd6, 0xac, 0x1b, 0x2f, 0xbc, 0xf0, 0x02, 0x07, 0x38,
+  0xb1, 0x52, 0x4b, 0x03, 0x0d, 0x34, 0xe0, 0xc0, 0x45, 0x6a, 0xb6, 0x4b,
+  0x4b, 0x30, 0xd8, 0x88, 0x66, 0x68, 0xb6, 0x32, 0x64, 0xc8, 0x50, 0xc2,
+  0x09, 0x8a, 0x7a, 0xb5, 0x68, 0xd1, 0x02, 0x47, 0xce, 0xd6, 0x6c, 0x6f,
+  0xdc, 0xb8, 0x31, 0x04, 0x12, 0x91, 0x5c, 0xe2, 0xc1, 0x83, 0xc7, 0x0d,
+  0x39, 0x9b, 0x1d, 0xc4, 0xe1, 0xec, 0x66, 0xab, 0x25, 0x6b, 0xc9, 0x42,
+  0xf5, 0x6f, 0x6a, 0x6a, 0x2a, 0x46, 0x6b, 0xc1, 0x14, 0x5f, 0xd9, 0x9f,
+  0x66, 0x0b, 0xc3, 0x70, 0x50, 0x6d, 0xf3, 0xd6, 0x3c, 0xf0, 0xc0, 0x43,
+  0x0d, 0x37, 0x16, 0xd1, 0x2d, 0xab, 0xb6, 0x2b, 0xea, 0x75, 0x75, 0x75,
+  0xd5, 0x02, 0x0f, 0x94, 0xa9, 0xb5, 0x8a, 0xe3, 0x38, 0x06, 0x94, 0xaa,
+  0xb5, 0x52, 0x51, 0x51, 0x39, 0xd2, 0x50, 0xa6, 0x22, 0x1b, 0x0a, 0x85,
+  0x0a, 0x61, 0x87, 0xcd, 0x9a, 0x17, 0x00, 0x48, 0xd7, 0x97, 0x3b, 0x8a,
+  0xc3, 0xe1, 0x12, 0xc0, 0x0e, 0xa1, 0x4c, 0x20, 0x80, 0x00, 0x02, 0x09,
+  0x8a, 0x6c, 0x3b, 0xd8, 0x43, 0x0f, 0x3d, 0x20, 0xff, 0x93, 0x41, 0x42,
+  0x04, 0xdb, 0x1f, 0x76, 0x50, 0xa6, 0xc8, 0x48, 0xb3, 0x46, 0x4a, 0x34,
+  0x43, 0xe7, 0x8a, 0x25, 0x83, 0xb4, 0x6f, 0x3d, 0xcb, 0x44, 0xc2, 0xff,
+  0xe7, 0xcd, 0x1a, 0xd9, 0x07, 0x6f, 0x0d, 0x24, 0x22, 0xb2, 0xdc, 0xfa,
+  0xf0, 0xf4, 0x65, 0x4e, 0x3c, 0xfa, 0xd6, 0x32, 0xf0, 0xf4, 0xb3, 0x78,
+  0x62, 0x36, 0xc6, 0x6f, 0x8d, 0x6d, 0xb3, 0x26, 0x28, 0x73, 0xab, 0x21,
+  0x11, 0x09, 0x9f, 0x34, 0x81, 0xe2, 0xbf, 0x62, 0x86, 0x57, 0xab, 0xcf,
+  0x98, 0x90, 0xc3, 0x80, 0xf1, 0x3a, 0x59, 0xe4, 0x92, 0x3a, 0xf6, 0x9b,
+  0x3a, 0x09, 0x01, 0x04, 0x1a, 0x02, 0x85, 0x21, 0x58, 0x7a, 0x4a, 0xa6,
+  0x8a, 0x48, 0x2f, 0x19, 0x1a, 0xea, 0x64, 0x90, 0xe7, 0x37, 0x67, 0x1e,
+  0x93, 0xc6, 0x3a, 0x0c, 0x45, 0xa0, 0xa1, 0x83, 0x15, 0xb7, 0x5f, 0xaf,
+  0x67, 0x43, 0x36, 0xfb, 0xe0, 0x04, 0x6e, 0xfa, 0xd6, 0x59, 0x3c, 0x0c,
+  0x98, 0xa5, 0x1d, 0xd8, 0xd8, 0x01, 0xb1, 0xb1, 0xcb, 0xad, 0xcf, 0x13,
+  0xc6, 0xa3, 0x99, 0xaa, 0x50, 0x4f, 0x05, 0xe7, 0x54, 0x0d, 0x25, 0xc9,
+  0x7b, 0xa9, 0xe3, 0x75, 0x3a, 0xf9, 0x6e, 0x18, 0xa2, 0x86, 0x32, 0x39,
+  0x85, 0x73, 0xb3, 0xa6, 0x58, 0x35, 0x22, 0xca, 0x2f, 0xcb, 0x39, 0x1b,
+  0x14, 0x89, 0x91, 0xad, 0xfe, 0xf1, 0x68, 0xbc, 0xb5, 0xf2, 0x96, 0xff,
+  0xc7, 0x4e, 0xd3, 0xcc, 0x73, 0xeb, 0xb2, 0x65, 0x06, 0xdf, 0xac, 0x09,
+  0xba, 0xa3, 0x40, 0x0f, 0x04, 0xf2, 0x96, 0x33, 0x9c, 0xd8, 0xee, 0x89,
+  0x3f, 0x8e, 0x73, 0x2b, 0x14, 0xc9, 0x0e, 0xb9, 0xdb, 0xe1, 0x04, 0xd9,
+  0x4d, 0xcc, 0x67, 0x32, 0xff, 0xb3, 0x78, 0x68, 0xd0, 0x9c, 0xe7, 0xe0,
+  0xb3, 0x2f, 0x8e, 0x98, 0xab, 0x39, 0x38, 0x4e, 0xec, 0x33, 0xfa, 0x7c,
+  0x38, 0x37, 0xe5, 0x0d, 0x64, 0x8a, 0xf7, 0x66, 0x1d, 0x70, 0x23, 0x8a,
+  0x9c, 0x9f, 0xc0, 0xe3, 0xfc, 0x59, 0x03, 0xfa, 0xc1, 0xd3, 0xda, 0x06,
+  0x07, 0x04, 0x08, 0x10, 0x1a, 0x6a, 0x08, 0xf0, 0x60, 0xc5, 0xc5, 0x84,
+  0x8e, 0xf0, 0x65, 0x32, 0xd8, 0x34, 0x40, 0x83, 0xc7, 0xb7, 0xe6, 0x23,
+  0x35, 0x55, 0xb7, 0x18, 0x76, 0x10, 0x04, 0x40, 0x7a, 0x33, 0xb0, 0xf6,
+  0xd6, 0xcb, 0x16, 0xe7, 0xb3, 0xa6, 0xc3, 0xec, 0x3e, 0xc9, 0xf4, 0x00,
+  0x64, 0x2c, 0xb2, 0xcc, 0x84, 0xe6, 0xbc, 0x23, 0x49, 0x28, 0x6a, 0x81,
+  0x06, 0x81, 0x50, 0xb9, 0xf5, 0x36, 0x6b, 0x07, 0x24, 0x7b, 0xbc, 0x53,
+  0x17, 0x78, 0x93, 0x34, 0x8f, 0x1f, 0xec, 0xec, 0xfc, 0x70, 0xc3, 0xe0,
+  0xae, 0x33, 0x16, 0x8b, 0xe2, 0x57, 0xdc, 0xad, 0x69, 0x78, 0xda, 0x7b,
+  0x68, 0xdc, 0xe9, 0x07, 0x0a, 0x08, 0x40, 0x4c, 0xcc, 0x12, 0x87, 0x1a,
+  0xc0, 0x6d, 0x8e, 0xa0, 0x82, 0x06, 0xb8, 0x49, 0x60, 0xb0, 0x28, 0x8e,
+  0xc5, 0xc3, 0x6d, 0xf2, 0xe5, 0xfd, 0x42, 0xcd, 0xf0, 0x7c, 0xa1, 0xe2,
+  0xd8, 0xaa, 0x79, 0xe4, 0xa9, 0x09, 0x8c, 0x8c, 0xa7, 0x50, 0x0c, 0x70,
+  0xda, 0x3c, 0x9f, 0x4c, 0x1c, 0x6a, 0x1a, 0x7e, 0xb0, 0x93, 0x06, 0x1b,
+  0x2c, 0xac, 0x16, 0xfe, 0x66, 0x82, 0xeb, 0x9d, 0xd6, 0x9c, 0xdb, 0xbc,
+  0x79, 0xa6, 0xbe, 0x9b, 0x01, 0x5b, 0x05, 0xde, 0x90, 0x7a, 0xc6, 0x61,
+  0xb1, 0xe0, 0xdf, 0xa9, 0xcd, 0xf4, 0x44, 0x22, 0x07, 0xfe, 0x7d, 0x3e,
+  0xea, 0x2f, 0xad, 0x2f, 0x72, 0x5c, 0x2b, 0xae, 0x21, 0x34, 0x6b, 0x8c,
+  0x7a, 0x95, 0x90, 0x37, 0x12, 0xf2, 0x55, 0xdf, 0x82, 0x82, 0x2c, 0xd2,
+  0xfe, 0x3f, 0xa5, 0xaa, 0x6a, 0x74, 0xab, 0xb4, 0xf4, 0xaa, 0x5d, 0xda,
+  0x7c, 0x5e, 0xd3, 0xc4, 0x00, 0xac, 0x98, 0x3c, 0x39, 0xd2, 0xdc, 0x4d,
+  0x37, 0x76, 0x93, 0xf2, 0x36, 0xfe, 0xd3, 0x74, 0xe0, 0xda, 0x6c, 0x85,
+  0x93, 0x41, 0xea, 0x0a, 0xcc, 0x48, 0x01, 0xce, 0x3c, 0xbb, 0x49, 0x49,
+  0xd7, 0x9b, 0x81, 0x57, 0xb8, 0x15, 0x98, 0x75, 0x83, 0x5b, 0x09, 0x00,
+  0x25, 0x05, 0x96, 0x7f, 0xca, 0xdb, 0x0e, 0xca, 0x28, 0xe9, 0xa0, 0x54,
+  0x3f, 0x19, 0x26, 0x3e, 0x4d, 0x79, 0x0b, 0x8f, 0x34, 0x2d, 0xc8, 0xba,
+  0x31, 0xc5, 0x71, 0x57, 0x40, 0x59, 0x28, 0x27, 0xd9, 0xc1, 0x94, 0x94,
+  0x17, 0x28, 0x92, 0xde, 0xce, 0x37, 0xb4, 0x02, 0x6b, 0x9b, 0xff, 0xda,
+  0x86, 0xd7, 0xf5, 0xeb, 0x3d, 0x67, 0xc7, 0x1c, 0x59, 0xd6, 0xe9, 0x62,
+  0x2b, 0x9c, 0x53, 0x9b, 0x3d, 0x57, 0x20, 0x94, 0x09, 0xa6, 0x64, 0x81,
+  0x52, 0x4a, 0x34, 0xef, 0x7a, 0x4d, 0xff, 0xc2, 0x9b, 0x7b, 0xa9, 0xbc,
+  0x9f, 0xec, 0xa0, 0x92, 0xce, 0x37, 0x94, 0x43, 0x14, 0x52, 0xce, 0x40,
+  0x49, 0x4d, 0x2e, 0x29, 0x6f, 0x5f, 0x54, 0x46, 0x52, 0x62, 0xa1, 0xb5,
+  0xb2, 0x83, 0x3d, 0xaf, 0xc1, 0x0d, 0x29, 0x60, 0x58, 0xe8, 0x01, 0xc4,
+  0xed, 0x03, 0xb9, 0x82, 0x0b, 0x29, 0xb5, 0x15, 0xb6, 0x83, 0x31, 0xe0,
+  0x90, 0x6f, 0xe6, 0x9c, 0x66, 0x1e, 0x69, 0x62, 0xb0, 0x15, 0x95, 0x5a,
+  0xed, 0x78, 0xec, 0x29, 0xa5, 0x4a, 0x17, 0xcc, 0xf3, 0x08, 0x3c, 0x4a,
+  0xad, 0xde, 0x85, 0x37, 0x3e, 0x39, 0x88, 0x82, 0x72, 0x88, 0xee, 0x53,
+  0xfd, 0xd3, 0x72, 0x0a, 0xe6, 0x00, 0x89, 0x64, 0x9a, 0x56, 0x22, 0xf4,
+  0xb4, 0x8d, 0x2c, 0x4c, 0x36, 0xe0, 0x91, 0x42, 0x48, 0xcb, 0x01, 0x60,
+  0x3e, 0x00, 0x55, 0x2b, 0x29, 0x41, 0xa4, 0x48, 0x7b, 0x0a, 0x4b, 0x00,
+  0xa2, 0x5f, 0x29, 0x77, 0x0a, 0xd5, 0x27, 0xe5, 0xbe, 0x92, 0xf6, 0xe3,
+  0xdf, 0x55, 0x31, 0x65, 0x97, 0x52, 0xaa, 0x44, 0xd9, 0x44, 0x19, 0x04,
+  0x10, 0x47, 0x16, 0x3b, 0xd8, 0x83, 0xa7, 0xb7, 0x8f, 0x9f, 0x6f, 0x07,
+  0xa8, 0x47, 0x45, 0x30, 0x38, 0xd4, 0xf9, 0x11, 0xcf, 0xbf, 0xe5, 0x09,
+  0xf0, 0x2c, 0xbf, 0xc1, 0x90, 0x6e, 0x7c, 0x26, 0x3f, 0x13, 0xd2, 0x22,
+  0x04, 0xf6, 0x45, 0x0b, 0x69, 0xa9, 0x6a, 0x63, 0x88, 0x21, 0x06, 0x58,
+  0x0d, 0x29, 0x54, 0xb5, 0x45, 0x95, 0x9f, 0xe5, 0x84, 0x29, 0x52, 0x15,
+  0xda, 0x8a, 0x4a, 0x01, 0x54, 0x3e, 0x45, 0x4b, 0xa5, 0x46, 0xa5, 0xa5,
+  0xf9, 0xaf, 0xac, 0x6a, 0xd2, 0x84, 0x50, 0x63, 0x72, 0x05, 0x68, 0x0c,
+  0xca, 0x5b, 0xa7, 0xd3, 0xc5, 0x40, 0xa9, 0x65, 0x07, 0xbf, 0xaa, 0xc1,
+  0x77, 0x9f, 0x70, 0x82, 0x6a, 0x44, 0x2c, 0x1e, 0x1b, 0xe6, 0x5c, 0x1d,
+  0x71, 0x6e, 0x9d, 0xab, 0x46, 0xb4, 0x81, 0x2e, 0x17, 0xb4, 0x54, 0x1a,
+  0xf5, 0x5e, 0xe2, 0x58, 0xe0, 0xd6, 0xea, 0x09, 0xa5, 0x68, 0xb6, 0x04,
+  0x31, 0xa3, 0x54, 0x28, 0x30, 0x53, 0xc0, 0x43, 0x84, 0x08, 0xc1, 0x44,
+  0x14, 0x64, 0x01, 0x14, 0x38, 0x11, 0x03, 0x0a, 0x7a, 0xc3, 0x99, 0x25,
+  0x0e, 0xcf, 0x06, 0xd4, 0x3e, 0x34, 0xfd, 0x0e, 0x39, 0xe0, 0x4c, 0xe0,
+  0x4c, 0x48, 0xf1, 0x98, 0x08, 0x04, 0xb9, 0xd0, 0x47, 0xbc, 0x80, 0x87,
+  0x70, 0x97, 0x19, 0x1d, 0x2b, 0x9f, 0x0f, 0x6e, 0x47, 0x21, 0xec, 0x70,
+  0x04, 0xd3, 0xd2, 0x47, 0x28, 0xff, 0x3d, 0xa4, 0x3e, 0x40, 0x9a, 0xba,
+  0xc2, 0x4f, 0x24, 0x07, 0x86, 0x79, 0xa8, 0xf3, 0xf5, 0xa2, 0x34, 0xdf,
+  0x56, 0xc6, 0x66, 0x64, 0x04, 0x0c, 0x22, 0xa0, 0x00, 0x73, 0x93, 0x4a,
+  0x30, 0x16, 0x0c, 0x48, 0x02, 0x49, 0x53, 0xd3, 0xde, 0x03, 0x63, 0x44,
+  0xc4, 0x58, 0x1a, 0x0a, 0x18, 0x80, 0x01, 0x00, 0x03, 0x02, 0x06, 0x00,
+  0x03, 0x8c, 0x05, 0x00, 0x00, 0x04, 0x30, 0x01, 0x00, 0x0c, 0x00, 0xc0,
+  0x90, 0xc4, 0x03, 0x03, 0xd0, 0xad, 0xa1, 0x76, 0x51, 0xd2, 0xa5, 0xf6,
+  0x80, 0xdc, 0x99, 0x4b, 0xa5, 0x31, 0x61, 0x8e, 0xde, 0xea, 0x35, 0xae,
+  0x32, 0x26, 0x35, 0xf0, 0xdc, 0x90, 0xea, 0x00, 0x9f, 0x9b, 0x28, 0x5f,
+  0x3a, 0x6e, 0xdb, 0x58, 0x39, 0x06, 0xec, 0xc2, 0xda, 0x4e, 0x6e, 0x3a,
+  0xa0, 0x3b, 0x6c, 0xab, 0x4c, 0x62, 0xd7, 0x15, 0xb5, 0x5a, 0xa6, 0x01,
+  0xa8, 0xbb, 0xf9, 0x7b, 0x01, 0xec, 0x76, 0xef, 0x4b, 0xca, 0x3e, 0x98,
+  0x7e, 0xc6, 0x93, 0xe7, 0xdd, 0xee, 0x80, 0x55, 0x93, 0xa4, 0xc4, 0xcb,
+  0xc2, 0x12, 0x64, 0xcd, 0xca, 0xc7, 0x60, 0x8c, 0x7d, 0x7a, 0x24, 0x0e,
+  0xdf, 0xa9, 0xbc, 0x91, 0x5a, 0x04, 0x03, 0xf0, 0xae, 0xd3, 0x69, 0x51,
+  0x6c, 0x8f, 0x04, 0xb1, 0x92, 0x18, 0x80, 0xe4, 0x0c, 0xa8, 0xf3, 0x0b,
+  0x28, 0xbb, 0xad, 0xe3, 0x5f, 0x74, 0x28, 0x64, 0x3c, 0xa0, 0x9f, 0xd3,
+  0xb2, 0x0e, 0xcb, 0xc8, 0xde, 0x0b, 0xed, 0x66, 0xf8, 0x52, 0xd4, 0x80,
+  0x3d, 0x4e, 0x13, 0x8d, 0xef, 0x76, 0x01, 0x59, 0x03, 0x0d, 0xe8, 0x4e,
+  0xec, 0xd7, 0x96, 0x5e, 0x76, 0x70, 0x37, 0xe6, 0xed, 0x46, 0x3c, 0x0b,
+  0x84, 0xd7, 0x64, 0xde, 0x9a, 0x84, 0xcd, 0x87, 0x1e, 0xf1, 0x3c, 0xea,
+  0x4c, 0x69, 0x8f, 0xfc, 0xff, 0x74, 0xe6, 0xdf, 0x31, 0xf6, 0x2e, 0x96,
+  0x0f, 0xe8, 0x94, 0x18, 0x8c, 0xc3, 0x71, 0x03, 0xc3, 0x76, 0x92, 0x6a,
+  0x08, 0x7b, 0x3f, 0xd5, 0x03, 0xfa, 0xb5, 0xd5, 0xbb, 0x15, 0xa0, 0xa7,
+  0x9f, 0xc4, 0x1e, 0x80, 0x66, 0x2c, 0x6c, 0x6b, 0xc0, 0x46, 0x8e, 0xfa,
+  0x12, 0x4a, 0x35, 0x80, 0xdd, 0xc6, 0xa3, 0x21, 0xae, 0x6e, 0xd8, 0xa7,
+  0xb3, 0xeb, 0xf8, 0xb8, 0x73, 0xdb, 0xf4, 0x61, 0x75, 0x58, 0x3e, 0xa0,
+  0x09, 0x0b, 0xdf, 0x4d, 0x6e, 0x5b, 0xf2, 0xd6, 0x9b, 0xb2, 0xfa, 0x6c,
+  0x13, 0xd5, 0x4e, 0xbd, 0x08, 0x1d, 0xa1, 0xd9, 0xaa, 0xcd, 0x5a, 0xe2,
+  0xd8, 0x85, 0x3d, 0x80, 0x54, 0xf4, 0x0c, 0xd0, 0x1f, 0x68, 0xaa, 0x3d,
+  0xe2, 0xd3, 0x2a, 0xfc, 0x58, 0xe6, 0xf9, 0xd4, 0x04, 0xb2, 0x28, 0xbf,
+  0xd7, 0xaf, 0x6f, 0xeb, 0x5b, 0xa4, 0x0c, 0xb8, 0x32, 0x60, 0x1d, 0x7b,
+  0x71, 0x02, 0xec, 0x94, 0x6f, 0x3b, 0x93, 0xf3, 0x49, 0x53, 0x8a, 0x70,
+  0x05, 0xdb, 0x9d, 0x11, 0xf3, 0x8e, 0xf0, 0x62, 0x80, 0xa4, 0x33, 0x20,
+  0x23, 0x97, 0x01, 0x88, 0x0c, 0x01, 0x09, 0xc6, 0xd0, 0x32, 0x29, 0xe4,
+  0x2e, 0x40, 0x22, 0x18, 0xac, 0x08, 0xd0, 0x25, 0x31, 0xe0, 0x7a, 0xb3,
+  0xb0, 0x30, 0x40, 0x08, 0xb3, 0x0b, 0x13, 0xb9, 0xeb, 0x22, 0x75, 0xf5,
+  0x4f, 0x09, 0x82, 0x39, 0xe0, 0xa6, 0xe0, 0x39, 0xc0, 0xdb, 0xfd, 0x6e,
+  0x2e, 0xd1, 0x28, 0x64, 0x98, 0x59, 0x38, 0x25, 0x06, 0xdc, 0x6a, 0x96,
+  0x29, 0xf8, 0xd8, 0xad, 0xd1, 0xeb, 0x2e, 0xe7, 0xce, 0x85, 0x77, 0xa9,
+  0x8d, 0x3d, 0xc9, 0x34, 0xd2, 0xd4, 0x32, 0xcf, 0x18, 0x00, 0x34, 0xce,
+  0x61, 0xd0, 0x81, 0x36, 0x86, 0x2e, 0x03, 0x6e, 0x19, 0xdb, 0xfe, 0xfe,
+  0x9b, 0x03, 0x9c, 0x07, 0xe8, 0x8e, 0x76, 0x00, 0xea, 0x10, 0x71, 0x40,
+  0x5c, 0x5c, 0xa3, 0xdd, 0xc9, 0x0c, 0x0e, 0xe1, 0xbb, 0xf6, 0xc3, 0x45,
+  0x7b, 0xf8, 0x17, 0x34, 0x14, 0x83, 0xd7, 0xc8, 0x35, 0x1f, 0x4b, 0x06,
+  0xe8, 0xf0, 0x59, 0xac, 0xc8, 0x48, 0x5a, 0x62, 0xd3, 0x06, 0x89, 0x6d,
+  0x55, 0x01, 0xbb, 0xeb, 0x0c, 0x5a, 0x50, 0x93, 0x8f, 0xae, 0xe8, 0x1f,
+  0x50, 0xd9, 0xe7, 0xbd, 0xd8, 0x33, 0x99, 0x96, 0xbe, 0x74, 0x6b, 0x10,
+  0x8d, 0x01, 0xf1, 0x3c, 0xef, 0x31, 0x7a, 0x6d, 0x14, 0x4b, 0x32, 0x03,
+  0x08, 0x92, 0x5b, 0x8e, 0x67, 0x46, 0xef, 0x8e, 0xc3, 0x01, 0x28, 0x2d,
+  0x37, 0x09, 0xb2, 0xe3, 0x80, 0xb9, 0x60, 0xbc, 0xcb, 0xba, 0x5c, 0x2b,
+  0xdb, 0xc5, 0xa1, 0x87, 0xba, 0x03, 0x7c, 0x71, 0x55, 0xc4, 0xd4, 0xf7,
+  0xa3, 0xd9, 0xe9, 0x0e, 0xb0, 0xf2, 0xf7, 0xc3, 0xe3, 0xaf, 0x06, 0x67,
+  0x27, 0x4f, 0x38, 0x6e, 0x0f, 0x68, 0xae, 0x51, 0xe3, 0xc1, 0x67, 0xd0,
+  0xc1, 0x67, 0x2a, 0x9a, 0x1c, 0x10, 0x7f, 0xef, 0x9e, 0xee, 0x6e, 0x7e,
+  0x6b, 0xb6, 0xd0, 0x63, 0x8a, 0x9c, 0x15, 0x98, 0x66, 0x25, 0x8d, 0xd3,
+  0x0f, 0x78, 0x55, 0xf4, 0x01, 0x08, 0xf5, 0x22, 0xb7, 0x7f, 0x55, 0x26,
+  0xd1, 0x72, 0x00, 0x96, 0x97, 0x67, 0x3f, 0xbb, 0x9b, 0x3d, 0x83, 0x99,
+  0xbc, 0xd1, 0x60, 0xde, 0x2e, 0x02, 0xb8, 0xb6, 0x2a, 0x0c, 0x56, 0x61,
+  0x68, 0x0c, 0xfd, 0xd1, 0xe0, 0xdb, 0x75, 0x2e, 0x21, 0x77, 0x94, 0xea,
+  0xd8, 0x8c, 0x9a, 0xbd, 0x21, 0xaa, 0x00, 0x9a, 0xb3, 0x37, 0x01, 0x23,
+  0xbb, 0x2d, 0xf7, 0x9f, 0x1c, 0xa1, 0x2e, 0x4a, 0xdb, 0x45, 0xff, 0x21,
+  0xe9, 0xd2, 0xb5, 0x0c, 0xfb, 0x3c, 0x01, 0x03, 0x3f, 0xb1, 0x3f, 0x08,
+  0xd9, 0xb9, 0x8b, 0xc8, 0x47, 0x8c, 0x19, 0x66, 0xb1, 0x2b, 0xac, 0x08,
+  0x75, 0x57, 0x77, 0xb2, 0xa7, 0x0c, 0x7e, 0x88, 0x1d, 0x97, 0x1e, 0x80,
+  0x88, 0xeb, 0x03, 0xd6, 0xfd, 0xec, 0xbf, 0xa9, 0xe1, 0x60, 0x96, 0xc6,
+  0x07, 0x87, 0x98, 0x7e, 0x68, 0xdc, 0xda, 0x6e, 0x58, 0x42, 0xda, 0xc0,
+  0x8a, 0xb1, 0xf1, 0x7a, 0x3e, 0xa7, 0xe3, 0x68, 0x47, 0x85, 0x3a, 0x8f,
+  0x08, 0xc6, 0x3a, 0x8d, 0xae, 0x17, 0x8a, 0x79, 0x21, 0x18, 0xf7, 0xbc,
+  0x67, 0x87, 0xb2, 0x2e, 0x1b, 0x00, 0xa1, 0x9d, 0xa7, 0x01, 0x08, 0x9c,
+  0x54, 0xe8, 0xaa, 0x67, 0xb1, 0xf2, 0x11, 0xd1, 0x80, 0x9a, 0x7a, 0xc0,
+  0x68, 0x82, 0x93, 0x16, 0x0d, 0xcf, 0x0f, 0x55, 0x03, 0x72, 0xe5, 0x01,
+  0x19, 0x4d, 0xab, 0xca, 0xbc, 0x28, 0xfa, 0x1d, 0x89, 0xc0, 0xd7, 0x34,
+  0x00, 0x76, 0x7b, 0x84, 0x7e, 0x5a, 0xb1, 0xc4, 0x1d, 0xc0, 0x90, 0xe9,
+  0x01, 0x48, 0xfc, 0x80, 0x18, 0x00, 0xd1, 0x7c, 0x07, 0x2c, 0x4b, 0x03,
+  0x68, 0xe3, 0xbe, 0x5b, 0x0d, 0xf8, 0x3e, 0x8b, 0x07, 0x04, 0x45, 0x06,
+  0xdc, 0xe0, 0xef, 0x01, 0xa8, 0x55, 0xec, 0x61, 0x5d, 0x5d, 0x7b, 0x22,
+  0x35, 0xe1, 0x83, 0x79, 0x80, 0x00, 0x36, 0x00, 0x79, 0x9a, 0xcc, 0x82,
+  0xfc, 0x8d, 0x5f, 0x0e, 0x80, 0xae, 0xfa, 0x01, 0xe8, 0x24, 0x65, 0x01,
+  0x41, 0x31, 0x11, 0xaa, 0xad, 0xfa, 0x1b, 0x80, 0x0d, 0xc8, 0xa2, 0x26,
+  0x9c, 0x21, 0x5f, 0x43, 0x0c, 0x20, 0xa8, 0x2c, 0x24, 0xf3, 0x3e, 0xa2,
+  0xf0, 0xb2, 0x01, 0xe8, 0x02, 0x00, 0x5a, 0x40, 0x78, 0x8d, 0x53, 0x1c,
+  0x80, 0x32, 0x80, 0xef, 0xc0, 0x03, 0x0f, 0x9b, 0x0f, 0x18, 0x9d, 0x9b,
+  0x5f, 0x65, 0x5f, 0xc6, 0xf2, 0x48, 0xf0, 0x77, 0xd9, 0x80, 0x65, 0x6b,
+  0xbc, 0x2c, 0xc3, 0x2a, 0xf9, 0x75, 0x00, 0x3a, 0x5f, 0xee, 0x59, 0x6a,
+  0x78, 0x6a, 0x2a, 0x6f, 0xd5, 0xa1, 0xbb, 0xf2, 0x38, 0x60, 0xb2, 0x9b,
+  0x52, 0x2d, 0xb0, 0x69, 0x7d, 0xed, 0x00, 0xd4, 0x7f, 0x17, 0xfa, 0x1e,
+  0x3a, 0x62, 0x94, 0x19, 0xc6, 0x2b, 0x69, 0x1b, 0x80, 0x98, 0x55, 0xf4,
+  0xb0, 0x1d, 0x80, 0x6a, 0xab, 0x77, 0x04, 0x97, 0xc7, 0x5a, 0xc9, 0xe7,
+  0x00, 0xba, 0x30, 0xcc, 0xe1, 0xc3, 0x87, 0x90, 0xe1, 0x0e, 0xa3, 0x3e,
+  0x0d, 0xb0, 0xe1, 0x7c, 0x7a, 0x18, 0xf6, 0x93, 0x1c, 0x4e, 0x4c, 0x29,
+  0xbe, 0x58, 0x42, 0x4b, 0xe8, 0x01, 0x2a, 0xd7, 0x18, 0x2d, 0x8d, 0x04,
+  0x0c, 0x8a, 0x3d, 0xc9, 0x54, 0x94, 0x7d, 0xc2, 0x20, 0xb3, 0x3e, 0x43,
+  0x41, 0x99, 0x46, 0x27, 0xba, 0x96, 0x99, 0xf7, 0xf1, 0x99, 0x56, 0x06,
+  0x8f, 0x83, 0xe6, 0x05, 0x63, 0x92, 0x0d, 0x40, 0x88, 0x2e, 0x57, 0xbf,
+  0xbe, 0x35, 0x7c, 0x1f, 0xae, 0x8d, 0xf6, 0x1d, 0xc1, 0xed, 0x01, 0xfd,
+  0x39, 0x20, 0x64, 0xf3, 0x2b, 0xf5, 0xda, 0x1b, 0xb4, 0x47, 0x2b, 0xa8,
+  0x57, 0x9a, 0xb0, 0x32, 0xaa, 0x44, 0x19, 0xdb, 0x23, 0xb9, 0x82, 0x3b,
+  0x11, 0x3b, 0x5b, 0x10, 0xb5, 0x12, 0xc1, 0x99, 0x68, 0xf2, 0x49, 0xe0,
+  0x0f, 0x60, 0x9c, 0x18, 0x55, 0xb6, 0x60, 0xd9, 0x09, 0x61, 0xee, 0xa1,
+  0x43, 0x67, 0x48, 0x8b, 0x05, 0x9f, 0x10, 0x5f, 0x6a, 0x55, 0x45, 0x57,
+  0x07, 0x58, 0x12, 0x03, 0x10, 0xfd, 0x02, 0x92, 0xc9, 0xf6, 0x0a, 0x95,
+  0xd9, 0x84, 0x39, 0xcf, 0xca, 0x31, 0x5b, 0x02, 0x94, 0x0d, 0xd0, 0xd1,
+  0x82, 0x1c, 0x94, 0x12, 0x10, 0x5b, 0x15, 0xc6, 0xb1, 0x89, 0x9e, 0x39,
+  0xe9, 0x37, 0x99, 0xf2, 0x91, 0x5d, 0xc0, 0xbf, 0xde, 0x49, 0x5a, 0x7e,
+  0x14, 0xe2, 0xf6, 0xce, 0x65, 0xc5, 0xed, 0x64, 0x1b, 0x00, 0xfd, 0x63,
+  0x81, 0xcc, 0x88, 0x8f, 0x65, 0x03, 0x90, 0x94, 0x07, 0x94, 0xd5, 0xe9,
+  0xa6, 0xa0, 0x6e, 0xe9, 0x8d, 0x6d, 0x15, 0xbd, 0x03, 0x56, 0x67, 0x28,
+  0x35, 0xa3, 0xc7, 0x19, 0x2e, 0xca, 0x95, 0xb2, 0xe9, 0x86, 0x52, 0xef,
+  0x80, 0x32, 0x33, 0x4a, 0xb3, 0x22, 0x14, 0x1b, 0x4e, 0xa6, 0x0e, 0xa0,
+  0x3c, 0xeb, 0x07, 0x83, 0xc3, 0xc1, 0xa2, 0x77, 0xc0, 0x96, 0xe7, 0x15,
+  0xb8, 0x58, 0x11, 0x06, 0x99, 0x01, 0x4b, 0x77, 0x40, 0xa3, 0x53, 0xde,
+  0x3a, 0xd1, 0x18, 0xbf, 0x5a, 0x2f, 0x4b, 0xe8, 0xdd, 0x20, 0x39, 0x3a,
+  0x40, 0xf5, 0x50, 0x77, 0x04, 0x67, 0xce, 0x92, 0x09, 0x09, 0xd8, 0xcf,
+  0x1e, 0x02, 0x66, 0x5e, 0xe0, 0x34, 0x21, 0x4f, 0x03, 0xe4, 0x5e, 0x60,
+  0x35, 0xcb, 0x83, 0xb4, 0x64, 0x2b, 0xe3, 0xfa, 0xd6, 0x36, 0xb9, 0xa3,
+  0x03, 0x42, 0x42, 0x83, 0xc2, 0xd6, 0x3a, 0x33, 0xde, 0x8d, 0x05, 0xb4,
+  0x03, 0x76, 0x9c, 0x17, 0x25, 0x5b, 0x4c, 0xcd, 0x00, 0x75, 0x2d, 0xde,
+  0x3c, 0x40, 0xba, 0xf1, 0x80, 0x78, 0xfa, 0x00, 0x68, 0xf8, 0x9d, 0x6b,
+  0x40, 0xe4, 0x95, 0xfd, 0xa0, 0xb8, 0xb1, 0xb4, 0x5c, 0x19, 0x5a, 0x09,
+  0x84, 0xe4, 0x45, 0x60, 0xc0, 0x05, 0xbd, 0xf3, 0x1b, 0xed, 0xb0, 0x58,
+  0x3c, 0x57, 0x99, 0xb1, 0x0b, 0x9b, 0x79, 0x62, 0xf6, 0x90, 0xf2, 0x01,
+  0x9b, 0x85, 0xb5, 0x05, 0x04, 0x4e, 0xa7, 0x01, 0xbb, 0x40, 0x5c, 0xb7,
+  0x24, 0x10, 0x3e, 0x61, 0x02, 0x97, 0x37, 0x13, 0x89, 0xaf, 0x4b, 0x78,
+  0x4b, 0x5b, 0x30, 0x96, 0x5a, 0x90, 0xc0, 0xa1, 0x76, 0x6c, 0x9c, 0xcc,
+  0xc7, 0xa8, 0x83, 0x62, 0x76, 0x76, 0x24, 0x56, 0x4f, 0x5e, 0x25, 0xdb,
+  0xd5, 0xc5, 0xdf, 0x06, 0x78, 0xe1, 0x14, 0x1b, 0x1d, 0x35, 0x92, 0x8c,
+  0xc0, 0xac, 0xad, 0xc3, 0x69, 0xb3, 0xd4, 0xf1, 0x1b, 0x72, 0xf5, 0x72,
+  0x20, 0x58, 0x1d, 0x1b, 0x46, 0x95, 0x98, 0x44, 0x0f, 0x8c, 0x4d, 0xe3,
+  0x36, 0x02, 0x11, 0xcf, 0x37, 0x6a, 0x40, 0xb1, 0x1c, 0xa3, 0x8a, 0x62,
+  0x9b, 0x4d, 0x1f, 0x09, 0xcb, 0x0a, 0x54, 0x33, 0xf3, 0x7f, 0xbd, 0x06,
+  0x58, 0x7c, 0x6b, 0x58, 0x57, 0x02, 0xba, 0x2e, 0x51, 0x4a, 0x0e, 0x98,
+  0x5c, 0x30, 0x96, 0x41, 0x75, 0x44, 0xdf, 0xa9, 0x27, 0xc5, 0x51, 0x62,
+  0x9d, 0x3f, 0x68, 0x4e, 0x4e, 0x86, 0x6f, 0xe5, 0x4d, 0xed, 0xd5, 0xcd,
+  0xae, 0xb6, 0x81, 0x51, 0xa4, 0xf1, 0x44, 0x5b, 0x0a, 0xf0, 0xca, 0x32,
+  0x6d, 0x47, 0x1f, 0x24, 0xd8, 0xe3, 0x65, 0xec, 0x29, 0xd6, 0xa9, 0xb2,
+  0x6e, 0x75, 0xb3, 0x4b, 0xe5, 0xbe, 0x09, 0x0c, 0x80, 0x25, 0x91, 0x36,
+  0x24, 0x64, 0x9a, 0x07, 0x10, 0xdd, 0xeb, 0xe4, 0xda, 0xcc, 0x9b, 0x0f,
+  0x78, 0xb6, 0x7f, 0xea, 0x80, 0x31, 0x1e, 0xf0, 0x07, 0xf4, 0x56, 0x72,
+  0xa1, 0xe3, 0x53, 0xa0, 0x89, 0x5e, 0x71, 0x9b, 0xc1, 0xd2, 0xab, 0xda,
+  0x8e, 0xba, 0x0c, 0x47, 0xe6, 0x00, 0x61, 0x25, 0x77, 0xd5, 0x58, 0x27,
+  0x9c, 0x91, 0x55, 0x8c, 0x80, 0xc1, 0x7f, 0x80, 0x14, 0x4b, 0x76, 0xda,
+  0xd9, 0x74, 0x32, 0x5b, 0x35, 0x7c, 0xef, 0x5e, 0x8b, 0x5b, 0xf9, 0x26,
+  0x74, 0x56, 0xa8, 0xc1, 0x76, 0x8c, 0x96, 0xd6, 0xa1, 0xb6, 0x0e, 0x2b,
+  0xc7, 0xbf, 0x80, 0x8a, 0x76, 0xe1, 0xfe, 0xf1, 0x18, 0x72, 0x77, 0x73,
+  0x80, 0x1a, 0x2f, 0x62, 0x81, 0xd9, 0x49, 0x3a, 0x91, 0xda, 0xfb, 0x4a,
+  0xb9, 0x03, 0xfc, 0x34, 0x63, 0xc4, 0x38, 0x3a, 0x9a, 0xa1, 0x6e, 0x76,
+  0x80, 0x5d, 0x82, 0xf6, 0x3b, 0xc0, 0x6f, 0x4b, 0x18, 0xe0, 0x34, 0x3b,
+  0xf2, 0xac, 0x9d, 0xbe, 0x01, 0x2b, 0x64, 0x3d, 0x00, 0xf1, 0xdb, 0x3d,
+  0x6f, 0x56, 0x04, 0x92, 0x06, 0x38, 0xde, 0x16, 0xa9, 0xf9, 0x94, 0x6f,
+  0x6e, 0xaa, 0x89, 0x5e, 0x96, 0xe1, 0xb7, 0x0a, 0xa2, 0xf7, 0x1b, 0xdf,
+  0x21, 0xeb, 0x0e, 0x85, 0x4e, 0x9c, 0x1a, 0x11, 0xd7, 0xda, 0x69, 0xea,
+  0x2e, 0xce, 0xa1, 0x64, 0x03, 0x64, 0xc5, 0xdf, 0xde, 0xeb, 0x8c, 0x1f,
+  0x91, 0xa1, 0xb0, 0x81, 0xd5, 0xcc, 0x07, 0x48, 0x79, 0x76, 0xce, 0x06,
+  0xb8, 0xb1, 0x22, 0xee, 0x84, 0x86, 0xac, 0xb2, 0x37, 0x84, 0x11, 0xe4,
+  0xfc, 0x52, 0x00, 0x50, 0x2c, 0x50, 0x2f, 0xd1, 0x51, 0x19, 0x13, 0x1c,
+  0x9c, 0x46, 0x60, 0x4c, 0xcf, 0xf4, 0x3d, 0x05, 0xa8, 0xe3, 0xfc, 0x60,
+  0x9a, 0xc6, 0xbe, 0xd9, 0x13, 0xe2, 0x56, 0xed, 0x2e, 0xe0, 0x80, 0x66,
+  0x81, 0x5b, 0xf8, 0x51, 0x00, 0xf1, 0xf8, 0x2c, 0x0e, 0xf8, 0xba, 0x20,
+  0xae, 0xb2, 0x0b, 0x9e, 0xab, 0x7a, 0x7a, 0xc0, 0x48, 0xff, 0xc3, 0xb5,
+  0x97, 0x39, 0xc1, 0x71, 0x1d, 0xc0, 0xa3, 0x39, 0x18, 0x8e, 0x0c, 0x56,
+  0xb3, 0xe0, 0x51, 0x03, 0xde, 0xee, 0x28, 0xab, 0xf1, 0xb2, 0xb7, 0x4c,
+  0xcd, 0x8f, 0xaa, 0x2b, 0xa3, 0xdc, 0x26, 0xbd, 0xe0, 0xb6, 0x58, 0xef,
+  0x14, 0xa4, 0x10, 0x7e, 0x3a, 0x0a, 0xc0, 0xdb, 0x19, 0x16, 0x64, 0xc2,
+  0x77, 0x80, 0xbb, 0x7f, 0x84, 0x60, 0x1b, 0xc0, 0x5c, 0x49, 0x7c, 0x4d,
+  0xf2, 0xb2, 0x4a, 0x65, 0xf6, 0x00, 0xad, 0x7c, 0xc8, 0xce, 0x41, 0x6a,
+  0xaa, 0xa9, 0x45, 0x60, 0xf2, 0x06, 0x54, 0x3e, 0xe0, 0x6f, 0xfe, 0x16,
+  0x66, 0xf6, 0xb3, 0x1b, 0x07, 0x44, 0xb5, 0xaf, 0x54, 0xcb, 0x2a, 0x3d,
+  0xd2, 0xd8, 0xe8, 0x37, 0x2f, 0xc9, 0x6e, 0xcf, 0x80, 0x2d, 0x1b, 0x09,
+  0x71, 0x7d, 0x99, 0x9d, 0x5a, 0x4d, 0x3b, 0xb1, 0xd6, 0x61, 0x90, 0xe5,
+  0x55, 0xf4, 0xdd, 0xe2, 0x9d, 0xf5, 0xb1, 0x85, 0x79, 0xba, 0x3b, 0xd9,
+  0x1d, 0xd9, 0x50, 0xe7, 0xd5, 0xa3, 0x2b, 0xb9, 0xdf, 0xec, 0x07, 0x87,
+  0xc5, 0x11, 0x30, 0xba, 0x0e, 0xdb, 0x86, 0xa5, 0xb7, 0x24, 0xe4, 0x51,
+  0x23, 0x66, 0xb2, 0xd0, 0x62, 0xa6, 0xe6, 0x4b, 0x0e, 0x98, 0x72, 0x26,
+  0x30, 0x36, 0xec, 0x75, 0xdf, 0x5f, 0xc8, 0xc6, 0xf7, 0x91, 0xb4, 0x3f,
+  0x7b, 0x40, 0xb3, 0x56, 0x72, 0x1c, 0x50, 0x7e, 0x8a, 0x3c, 0xdb, 0xd6,
+  0x3f, 0x23, 0x60, 0xd7, 0x63, 0xce, 0x00, 0xd2, 0x66, 0x01, 0xed, 0x5a,
+  0xf9, 0xe9, 0x63, 0x2e, 0x82, 0x2b, 0x06, 0x67, 0x20, 0x97, 0x01, 0xce,
+  0x58, 0x05, 0x50, 0x35, 0x32, 0x66, 0x2e, 0x3a, 0x05, 0xce, 0x44, 0x8d,
+  0x9f, 0xdc, 0x64, 0xab, 0x61, 0x7d, 0xeb, 0x1b, 0x1c, 0xe3, 0x59, 0xc5,
+  0x73, 0x76, 0xab, 0x33, 0x3d, 0x32, 0xc2, 0xb4, 0xde, 0xb6, 0xce, 0x66,
+  0x22, 0x59, 0x13, 0x87, 0x09, 0xf1, 0x0e, 0xa8, 0xd1, 0x0c, 0x68, 0x7b,
+  0xd2, 0x05, 0x89, 0xa3, 0xaf, 0x04, 0x66, 0xa7, 0xb8, 0xcf, 0x69, 0x90,
+  0xe8, 0x31, 0x93, 0x03, 0x68, 0x59, 0x37, 0xe6, 0x11, 0xb4, 0x93, 0xd2,
+  0x00, 0x1c, 0xeb, 0xa2, 0xa8, 0x6f, 0xb1, 0xd4, 0x98, 0xb4, 0xaa, 0x73,
+  0xd1, 0x5a, 0x8a, 0x5d, 0xb9, 0x38, 0x20, 0x3f, 0x34, 0x2b, 0xb4, 0xf1,
+  0xc5, 0x3e, 0x77, 0xed, 0x85, 0xd1, 0x07, 0x3c, 0x38, 0x60, 0x4c, 0xda,
+  0x01, 0x17, 0xa0, 0xe9, 0x1d, 0xb6, 0x6b, 0x74, 0xff, 0x1b, 0xfb, 0x72,
+  0x80, 0xaa, 0x05, 0xff, 0xb4, 0x20, 0x35, 0x57, 0x4b, 0x6d, 0x50, 0x3d,
+  0x4f, 0x29, 0xa7, 0x4b, 0x9b, 0xc6, 0x7f, 0x05, 0x7b, 0xfb, 0x74, 0xc4,
+  0x80, 0x03, 0x8c, 0x0c, 0x88, 0xde, 0xee, 0x9f, 0x36, 0x3e, 0xbd, 0x6f,
+  0x38, 0x71, 0x4d, 0x5e, 0x7a, 0xf0, 0xd2, 0x20, 0x49, 0x5f, 0xae, 0xc6,
+  0x1b, 0x79, 0xf8, 0xa1, 0x9c, 0x26, 0xd3, 0x66, 0xb2, 0x6e, 0x2f, 0xd9,
+  0x03, 0x37, 0xdd, 0xe0, 0xe1, 0x07, 0x67, 0xa7, 0x38, 0x08, 0x5c, 0x1a,
+  0x15, 0x7c, 0xac, 0xdd, 0xd8, 0xed, 0x97, 0xc5, 0x64, 0xff, 0xa1, 0x57,
+  0xb4, 0x07, 0x97, 0x71, 0x51, 0xb1, 0x86, 0xb6, 0x01, 0xea, 0x1e, 0xb5,
+  0xbe, 0x22, 0x9e, 0xe9, 0x05, 0xec, 0x01, 0xa4, 0x4f, 0x97, 0x1b, 0xe0,
+  0x6d, 0xeb, 0xfa, 0x3e, 0xd9, 0x83, 0xfd, 0x04, 0x1a, 0x10, 0x1b, 0x3d,
+  0x00, 0xc4, 0x49, 0x93, 0x84, 0x57, 0x26, 0xa0, 0x9b, 0x4c, 0x86, 0xeb,
+  0x80, 0xcc, 0xd0, 0xc4, 0x01, 0x8d, 0x7e, 0x24, 0xd8, 0x09, 0x13, 0x85,
+  0x6e, 0x08, 0x71, 0x1b, 0x18, 0x98, 0xa1, 0x6a, 0xcd, 0x4d, 0x00, 0x36,
+  0x7f, 0x80, 0x05, 0x88, 0x24, 0x64, 0x8a, 0xf4, 0x11, 0xfb, 0x89, 0x59,
+  0x8d, 0x46, 0xe1, 0x02, 0xdd, 0xcd, 0x24, 0x0a, 0x53, 0xc3, 0x01, 0x8d,
+  0xc6, 0x8c, 0xb5, 0xee, 0xdd, 0x74, 0x25, 0xbb, 0x63, 0xab, 0x3c, 0xee,
+  0xfc, 0xad, 0xb8, 0xf3, 0x1e, 0x80, 0x0a, 0x20, 0x4e, 0x49, 0x6a, 0x29,
+  0xf5, 0x39, 0xae, 0xf2, 0xde, 0x57, 0x0b, 0x1d, 0x67, 0xf3, 0x23, 0x24,
+  0x94, 0x87, 0xdb, 0x8d, 0xb8, 0x08, 0x63, 0x05, 0x29, 0xc6, 0x57, 0xbb,
+  0x3f, 0x84, 0x2e, 0xee, 0xd0, 0x57, 0xd4, 0x85, 0xb7, 0xa5, 0x76, 0xdc,
+  0xcd, 0x05, 0xc8, 0x2c, 0xbe, 0xb1, 0x87, 0x0a, 0x4c, 0x60, 0x0c, 0x9a,
+  0x94, 0x43, 0x55, 0x77, 0x1a, 0xcf, 0x80, 0xe8, 0xe2, 0x01, 0x3f, 0xb6,
+  0xe1, 0xdc, 0xee, 0xe1, 0xd2, 0xb4, 0x5a, 0xe6, 0x07, 0x0b, 0xd5, 0x3d,
+  0xa2, 0xe7, 0xca, 0xd8, 0x2e, 0x8b, 0x8f, 0x29, 0xb9, 0x3d, 0x36, 0x3e,
+  0xd2, 0xf5, 0xb2, 0x1e, 0xf2, 0xac, 0xb3, 0x48, 0x34, 0xb1, 0xed, 0x76,
+  0x67, 0xc0, 0xd6, 0xdb, 0xf4, 0x21, 0x60, 0x75, 0xe2, 0xf3, 0x5d, 0x56,
+  0xac, 0xb9, 0x87, 0x5d, 0x63, 0xf8, 0x90, 0x03, 0x39, 0x0d, 0x51, 0xc3,
+  0x4c, 0x4c, 0x68, 0xfa, 0x80, 0xc0, 0xca, 0x80, 0x8a, 0xb9, 0x2e, 0x08,
+  0x06, 0x9c, 0x09, 0x5e, 0x9c, 0x4c, 0x1c, 0xa8, 0xbf, 0xfb, 0x20, 0xeb,
+  0x82, 0x0c, 0x30, 0x50, 0x8a, 0x01, 0xb8, 0x5c, 0xd1, 0x71, 0x54, 0xa3,
+  0x45, 0x2e, 0xed, 0x36, 0xf3, 0xd4, 0xcc, 0x6a, 0x94, 0x11, 0xc0, 0xda,
+  0x26, 0xc2, 0x56, 0x31, 0xc9, 0x3f, 0xdf, 0xe8, 0x01, 0x71, 0xe0, 0x30,
+  0x5b, 0x82, 0xfd, 0x7e, 0x28, 0xdd, 0x9c, 0xcd, 0xa7, 0xdf, 0x95, 0x31,
+  0x5f, 0x18, 0x78, 0xff, 0x75, 0x63, 0x99, 0xfc, 0xec, 0xce, 0x0c, 0x57,
+  0x66, 0xdb, 0x7b, 0x18, 0xbe, 0xdc, 0xd9, 0x65, 0xff, 0x7e, 0x38, 0x76,
+  0xef, 0x05, 0xad, 0x8e, 0x72, 0xc0, 0x16, 0xff, 0xd6, 0xb4, 0xce, 0x04,
+  0x03, 0xdc, 0xf5, 0x37, 0xe5, 0xb6, 0x02, 0x3a, 0xe7, 0xef, 0xd8, 0xa5,
+  0x7b, 0xe2, 0x24, 0x4a, 0xcf, 0xef, 0x5e, 0x38, 0x4d, 0x47, 0x72, 0x0f,
+  0x9a, 0x10, 0xf4, 0x4b, 0xab, 0x16, 0x67, 0x1b, 0xf3, 0x6e, 0x1a, 0x71,
+  0x15, 0x5a, 0xa5, 0x08, 0xba, 0x48, 0xc9, 0xa8, 0xce, 0x95, 0x1a, 0xab,
+  0x18, 0xdf, 0xee, 0xef, 0xee, 0xf1, 0x3c, 0x80, 0x36, 0x6b, 0x6d, 0x62,
+  0x62, 0x87, 0xcb, 0x24, 0x81, 0x87, 0x01, 0x54, 0xe2, 0x5a, 0xa4, 0x1d,
+  0x4a, 0xc0, 0xb4, 0xec, 0xdd, 0xb0, 0x17, 0x57, 0x05, 0xa9, 0x66, 0xb1,
+  0xe5, 0xc2, 0xaf, 0x35, 0x08, 0x8c, 0x41, 0xb1, 0xd8, 0x86, 0x4e, 0x05,
+  0x9b, 0x96, 0xb6, 0xbf, 0xf2, 0x49, 0xc5, 0x2e, 0xf7, 0x37, 0x7c, 0xcc,
+  0x32, 0x37, 0x00, 0x2f, 0xbd, 0xd6, 0x1d, 0x9b, 0x26, 0x83, 0x03, 0x40,
+  0x99, 0x5a, 0xb3, 0x63, 0xd3, 0x15, 0xcd, 0x89, 0xaa, 0x1b, 0xaa, 0x9e,
+  0xbd, 0x06, 0x5e, 0x3a, 0xf3, 0xe9, 0xb8, 0xdf, 0xea, 0xfb, 0x0d, 0x16,
+  0x49, 0xbd, 0x20, 0xa6, 0xa0, 0xb9, 0x0e, 0xbb, 0x1e, 0xd6, 0x2e, 0x3e,
+  0xbb, 0x0f, 0x72, 0x34, 0x1b, 0xed, 0x01, 0x45, 0xe6, 0xd0, 0x07, 0xd4,
+  0x06, 0x92, 0x33, 0xab, 0x9c, 0xb7, 0xca, 0x70, 0x26, 0x8d, 0xb7, 0x21,
+  0xab, 0x98, 0x03, 0x2a, 0x1d, 0xbe, 0x22, 0xcf, 0x2c, 0x98, 0x88, 0xb6,
+  0x74, 0x40, 0x81, 0x0d, 0x70, 0xbe, 0xaa, 0x8c, 0xdb, 0x5e, 0x2b, 0x91,
+  0xe6, 0x80, 0xd7, 0xbd, 0x28, 0x35, 0x12, 0x70, 0x3e, 0x0b, 0x27, 0x8e,
+  0x87, 0x60, 0x19, 0xc8, 0x2e, 0x10, 0x8e, 0x06, 0x30, 0xec, 0x75, 0x13,
+  0x7a, 0xc0, 0xc4, 0x4d, 0xaa, 0x57, 0xd9, 0x0d, 0xa0, 0xa7, 0x1f, 0xa0,
+  0xdf, 0x70, 0x6f, 0x8d, 0xaa, 0x20, 0xc6, 0x77, 0xc0, 0xca, 0x45, 0x78,
+  0x75, 0x1a, 0x4b, 0x77, 0x00, 0x8e, 0x93, 0xad, 0xc5, 0x62, 0xd1, 0xb4,
+  0xb4, 0xfe, 0xed, 0x7d, 0x73, 0x13, 0xb9, 0xfc, 0x32, 0xc8, 0x3f, 0xa3,
+  0x19, 0x05, 0xf4, 0x3f, 0x97, 0x5d, 0x7e, 0xb2, 0x85, 0xb5, 0x04, 0x4b,
+  0x9d, 0xa1, 0xde, 0x2d, 0x95, 0x4f, 0xca, 0x2e, 0xe9, 0xdd, 0x76, 0x0a,
+  0x7c, 0xc8, 0x44, 0x17, 0xb2, 0xce, 0x3c, 0x15, 0xab, 0xb9, 0xa9, 0x59,
+  0x7c, 0x54, 0x4c, 0x83, 0xe7, 0x09, 0x34, 0x27, 0x04, 0x54, 0x5c, 0xa3,
+  0x35, 0x57, 0x2d, 0x8f, 0x1e, 0x26, 0xa8, 0xf4, 0x28, 0xda, 0xa2, 0xb4,
+  0xdb, 0x54, 0x0b, 0xb4, 0x07, 0x63, 0xc5, 0xdb, 0xb4, 0x20, 0x6a, 0x00,
+  0xf1, 0xa5, 0xe8, 0x8b, 0xe4, 0x35, 0xc4, 0x96, 0x54, 0x76, 0x00, 0x5e,
+  0x37, 0x72, 0x7e, 0x15, 0xe8, 0x6e, 0x8b, 0x98, 0x13, 0x2d, 0x06, 0x64,
+  0x71, 0x80, 0x43, 0x96, 0x60, 0x1b, 0x00, 0xe7, 0x70, 0x48, 0xf6, 0xf4,
+  0x23, 0x0b, 0x16, 0x8a, 0x4c, 0x28, 0x50, 0x83, 0x32, 0x23, 0x34, 0x65,
+  0x72, 0xb1, 0xcb, 0x84, 0x01, 0x34, 0xc2, 0x28, 0x96, 0x51, 0x1d, 0x06,
+  0x65, 0x6f, 0xe1, 0x0a, 0x9f, 0xce, 0x80, 0xa3, 0x77, 0xf5, 0x36, 0x04,
+  0x3e, 0x7b, 0xe8, 0xe7, 0xac, 0x6a, 0x04, 0x6e, 0x0a, 0x8c, 0xe8, 0x01,
+  0x65, 0xec, 0xbd, 0x1b, 0x99, 0xea, 0x4b, 0xde, 0x7d, 0xc1, 0x9d, 0xa0,
+  0xcc, 0x1b, 0x1f, 0xe0, 0x0a, 0xa5, 0x1f, 0x7a, 0x26, 0x02, 0x6a, 0x5a,
+  0xe2, 0x4c, 0x58, 0x77, 0x2f, 0x04, 0x73, 0xe8, 0x60, 0x68, 0xc0, 0x26,
+  0xf1, 0x0d, 0x56, 0x16, 0xa7, 0x0b, 0x47, 0x28, 0x00, 0x4a, 0x3b, 0xa9,
+  0x8b, 0x56, 0xb9, 0xee, 0xf9, 0x2c, 0x33, 0xbd, 0xf2, 0x3a, 0xc4, 0x40,
+  0xf6, 0x8b, 0x62, 0x40, 0x06, 0xd8, 0x22, 0x43, 0x8d, 0xa3, 0x05, 0xc2,
+  0x73, 0xd1, 0x04, 0x4e, 0x65, 0x5d, 0x26, 0xe0, 0xd7, 0x5d, 0x7d, 0x4c,
+  0x24, 0x7f, 0x8d, 0x27, 0xa7, 0xfd, 0xae, 0xd1, 0x8e, 0xf6, 0x75, 0xd9,
+  0x4d, 0x1d, 0x23, 0x69, 0xb5, 0x20, 0xe0, 0x00, 0xce, 0xe2, 0x28, 0xdb,
+  0x41, 0x07, 0xda, 0x01, 0xb4, 0x53, 0x29, 0xd9, 0x75, 0x0d, 0xd1, 0x98,
+  0x9a, 0x5c, 0x5b, 0xf4, 0x7c, 0x79, 0xde, 0x64, 0x1e, 0x10, 0x32, 0x19,
+  0xd7, 0x58, 0x6c, 0xc6, 0x00, 0x50, 0x4d, 0x67, 0x44, 0x7f, 0x09, 0xd8,
+  0x92, 0x65, 0x1b, 0x3a, 0x8c, 0x81, 0x2f, 0x90, 0x70, 0xd3, 0x80, 0x2a,
+  0x53, 0xaa, 0xb0, 0xd0, 0x15, 0x55, 0x9a, 0x5a, 0x70, 0x6a, 0x2f, 0xc4,
+  0x6b, 0xac, 0xa5, 0x21, 0x61, 0xa0, 0x62, 0xae, 0x0a, 0xc9, 0xd2, 0x79,
+  0xd2, 0xe8, 0x8c, 0x7a, 0xe1, 0xe8, 0x2e, 0x3b, 0x1e, 0x20, 0xe6, 0xa5,
+  0x39, 0x32, 0xcd, 0xf4, 0x91, 0x03, 0x3b, 0x4c, 0x99, 0x3f, 0x60, 0x00,
+  0x97, 0xed, 0xc0, 0x40, 0xa5, 0x1b, 0xe6, 0x02, 0x60, 0x1e, 0xa9, 0x73,
+  0x9e, 0x27, 0xc6, 0x56, 0x7a, 0x66, 0xc9, 0x55, 0x8b, 0xf9, 0x0f, 0x49,
+  0x13, 0x82, 0x0f, 0xa3, 0x4b, 0x44, 0xbc, 0x5a, 0x1c, 0xd1, 0xec, 0xf4,
+  0xfc, 0xd9, 0xba, 0x6b, 0x2e, 0xad, 0xdd, 0x93, 0xe7, 0x5b, 0xc6, 0x1a,
+  0x31, 0x8c, 0xb4, 0x0a, 0xab, 0x65, 0x4d, 0xd9, 0xbc, 0x27, 0x98, 0x2e,
+  0x02
+};
+
+/**
+ * Destination for decoding \c #srcZstd.
+ */
+static char dstDxt1[sizeof rawDxt1] = {};
+
+#ifndef ZSTD_VERSION_MAJOR
+/**
+ * For the case where the decompression library hasn't been included we add a
+ * dummy function to fake the process and stop the buffers being optimised out.
+ */
+size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen) {
+	return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? dstLen : 0;
+}
+#endif
+
+//****************************************************************************/
+
+/**
+ * Simple single-file test to decompress \c #srcZstd into \c # dstDxt1 then
+ * compare the resulting bytes with \c #rawDxt1.
+ * \n
+ * As a (naive) comparison, removing Zstd and building with "-Os -g0 simple.c"
+ * results in a 48kB binary (macOS 10.14, Clang 10); re-adding Zstd increases
+ * the binary by 74kB.
+ */
+int main() {
+	size_t bytes = ZSTD_decompress(dstDxt1, sizeof dstDxt1, srcZstd, sizeof srcZstd);
+	printf("Decompressed size: %ld (expected %ld)\n", bytes, sizeof dstDxt1);
+	printf("Byte comparison: %s\n", (memcmp(rawDxt1, dstDxt1, sizeof dstDxt1)) ? "failed" : "succeeded");
+	return 0;
+}
diff --git a/contrib/declib/zstddeclib-in.c b/contrib/declib/zstddeclib-in.c
new file mode 100755
index 000000000..8f06c2617
--- /dev/null
+++ b/contrib/declib/zstddeclib-in.c
@@ -0,0 +1,66 @@
+/**
+ * \file zstddeclib.c
+ * Single-file Zstandard decompressor.
+ * 
+ * Generate using:
+ * \code
+ *	makelib.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
+ * \endcode
+ */
+/* 
+ * BSD License
+ * 
+ * For Zstandard software
+ * 
+ * Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ * * Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ *
+ * * Neither the name Facebook nor the names of its contributors may be used
+ *   to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * Settings to bake for the standalone decompressor.
+ */
+#define DEBUGLEVEL 0
+#define XXH_NAMESPACE ZSTD_
+#define XXH_PRIVATE_API
+#define XXH_INLINE_ALL
+#define ZSTD_LEGACY_SUPPORT 0
+#define ZSTD_LIB_COMPRESSION 0
+#define ZSTD_LIB_DEPRECATED 0
+#define ZSTD_NOBENCH
+#define ZSTD_STATIC_LINKING_ONLY
+#define ZSTD_STRIP_ERROR_STRINGS
+
+#include "debug.c"
+#include "entropy_common.c"
+#include "error_private.c"
+#include "fse_decompress.c"
+#include "xxhash.c"
+#include "zstd_common.c"
+#include "huf_decompress.c"
+#include "zstd_ddict.c"
+#include "zstd_decompress.c"
+#include "zstd_decompress_block.c"

From 5144e66095a7e0a8d6a1395b84aed1a081f3c261 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Fri, 23 Aug 2019 23:04:21 +0200
Subject: [PATCH 035/163] Revert "Merge remote-tracking branch 'origin/master'
 into dev"

This reverts commit 0df29a4e5ff118ec7aa870ea9c032e9f99870e43, reversing
changes made to 69c875a0cc771098f9ae9bb7a0a3e3ff6eb3f5c1.
---
 lib/common/compiler.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/common/compiler.h b/lib/common/compiler.h
index f22093110..6686b837d 100644
--- a/lib/common/compiler.h
+++ b/lib/common/compiler.h
@@ -128,7 +128,7 @@
 }
 
 /* vectorization */
-#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 5
+#if !defined(__clang__) && defined(__GNUC__)
 #  define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize")))
 #else
 #  define DONT_VECTORIZE

From 36a59336da12d172e58f3768cd9e072ae59edfb7 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Fri, 23 Aug 2019 23:09:13 +0200
Subject: [PATCH 036/163] Minor fix for files with spaces. Typo.

---
 contrib/declib/combine.sh      | 2 +-
 contrib/declib/zstddeclib-in.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/declib/combine.sh b/contrib/declib/combine.sh
index 4a4afc3a5..ba05028ba 100755
--- a/contrib/declib/combine.sh
+++ b/contrib/declib/combine.sh
@@ -46,7 +46,7 @@ function add_file {
           # And we've not previously encountered it
           FOUND="$FOUND $inc"
           echo "/**** start inlining $inc ****/"
-          add_file $inc
+          add_file "$inc"
           echo "/**** ended inlining $inc ****/"
         else
           echo "/**** skipping file: $inc ****/"
diff --git a/contrib/declib/zstddeclib-in.c b/contrib/declib/zstddeclib-in.c
index 8f06c2617..73320af7f 100755
--- a/contrib/declib/zstddeclib-in.c
+++ b/contrib/declib/zstddeclib-in.c
@@ -4,7 +4,7 @@
  * 
  * Generate using:
  * \code
- *	makelib.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
+ *	combine.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
  * \endcode
  */
 /* 

From d760e35ebcd3fd1e06baefd1ed0e6d06eebc3293 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Sun, 25 Aug 2019 22:49:01 +0200
Subject: [PATCH 037/163] Preparing to run tests

Combine script more robust and can output to a specified file. Initial buck files added (work in progress).
---
 contrib/declib/BUCK            | 11 ++++++++
 contrib/declib/README.md       |  2 +-
 contrib/declib/combine.sh      | 51 ++++++++++++++++++++++++++--------
 contrib/declib/tests/BUCK      |  5 ++++
 contrib/declib/tests/simple.c  | 12 +++++---
 contrib/declib/zstddeclib-in.c |  2 +-
 6 files changed, 65 insertions(+), 18 deletions(-)
 create mode 100644 contrib/declib/BUCK
 create mode 100644 contrib/declib/tests/BUCK

diff --git a/contrib/declib/BUCK b/contrib/declib/BUCK
new file mode 100644
index 000000000..e04f5e82d
--- /dev/null
+++ b/contrib/declib/BUCK
@@ -0,0 +1,11 @@
+sh_test(
+    name='combine',
+    visibility=['PUBLIC'],
+    test='combine.sh',
+    args=[
+        '-r', '../../lib',
+        '-r', '../../lib/common',
+        '-r', '../../lib/decompress',
+        '-o', 'zstddeclib.c',
+        'zstddeclib-in.c']
+)
diff --git a/contrib/declib/README.md b/contrib/declib/README.md
index 727b3e8fa..bb22c2423 100644
--- a/contrib/declib/README.md
+++ b/contrib/declib/README.md
@@ -3,6 +3,6 @@
 Create the file using the shell script:
 ```
 cd zstd/contrib/declib
-./combine.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
+./combine.sh -r ../../lib -r ../../lib/common -r ../../lib/decompress -o zstddeclib.c zstddeclib-in.c
 ```
 Then add the resulting file to your project (see the [test sources](tests) for examples).
diff --git a/contrib/declib/combine.sh b/contrib/declib/combine.sh
index ba05028ba..b95977e32 100755
--- a/contrib/declib/combine.sh
+++ b/contrib/declib/combine.sh
@@ -1,6 +1,8 @@
 #!/bin/bash
 
 # Tool to bundle multiple C/C++ source files, inlining any includes.
+# 
+# TODO: ROOTS and FOUND as arrays (since they fail on paths with spaces)
 
 # Common file roots
 ROOTS="./"
@@ -8,11 +10,15 @@ ROOTS="./"
 # Files previously visited
 FOUND=""
 
+# Optional destination file (empty string to write to stdout)
+DESTN=""
+
 # Prints the script usage then exits
 function usage {
-  echo "Usage: $0 [-r ] infile"
+  echo "Usage: $0 [-r ] [-o ] infile"
   echo "  -r file root search paths"
-  echo "Example: $0 -r \"../my/path ../my/other\" in.c > out.c"
+  echo "  -o output file (otherwise stdout)"
+  echo "Example: $0 -r ../my/path - r ../other/path -o out.c in.c"
   exit 1
 }
 
@@ -26,6 +32,15 @@ function list_has_item {
   return 1
 }
 
+# Adds a new line with the supplied arguments to $DESTN (or stdout)
+function write_line {
+  if [ -n "$DESTN" ]; then
+    printf "%s\n" "$@" >> "$DESTN"
+  else
+    printf "%s\n" "$@"
+  fi
+}
+
 # Adds the contents of $1 with any of its includes inlined
 function add_file {
   # Match the path
@@ -35,7 +50,7 @@ function add_file {
       file="$root/$1"
     fi
   done
-  if [ "$file" != "" ]; then
+  if [ -n "$file" ]; then
     # Read the file
     local line
     while IFS= read -r line; do
@@ -45,26 +60,29 @@ function add_file {
         if ! `list_has_item "$FOUND" "$inc"`; then
           # And we've not previously encountered it
           FOUND="$FOUND $inc"
-          echo "/**** start inlining $inc ****/"
+          write_line "/**** start inlining $inc ****/"
           add_file "$inc"
-          echo "/**** ended inlining $inc ****/"
+          write_line "/**** ended inlining $inc ****/"
         else
-          echo "/**** skipping file: $inc ****/"
+          write_line "/**** skipping file: $inc ****/"
         fi
       else
         # Otherwise write the source line
-        echo "$line"
+        write_line "$line"
       fi
     done < "$file"
   else
-    echo "#error Unable to find \"$1\""
+    write_line "#error Unable to find \"$1\""
   fi
 }
 
-while getopts ":r:" opts; do
+while getopts ":r:o:" opts; do
   case $opts in
   r)
-    ROOTS="$ROOTS $OPTARG"
+    ROOTS="$OPTARG $ROOTS"
+    ;;
+  o)
+    DESTN="$OPTARG"
     ;;
   *)
     usage
@@ -73,8 +91,17 @@ while getopts ":r:" opts; do
 done
 shift $((OPTIND-1))
 
-if [ "$1" != "" ]; then
-  add_file $1
+if [ -n "$1" ]; then
+  if [ -f "$1" ]; then
+    if [ -n "$DESTN" ]; then
+      printf "" > "$DESTN"
+    fi
+    add_file $1
+  else
+    echo "Input file not found: '$1'"
+    exit 1
+  fi
 else
   usage
 fi
+exit 0
diff --git a/contrib/declib/tests/BUCK b/contrib/declib/tests/BUCK
new file mode 100644
index 000000000..9e3621ae4
--- /dev/null
+++ b/contrib/declib/tests/BUCK
@@ -0,0 +1,5 @@
+cxx_test(
+    name='simple',
+    srcs=['simple.c'],
+    deps=['//contrib/declib:combine']
+)
diff --git a/contrib/declib/tests/simple.c b/contrib/declib/tests/simple.c
index cb200c938..2dda4b06e 100644
--- a/contrib/declib/tests/simple.c
+++ b/contrib/declib/tests/simple.c
@@ -3385,8 +3385,12 @@ size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen)
  * the binary by 74kB.
  */
 int main() {
-	size_t bytes = ZSTD_decompress(dstDxt1, sizeof dstDxt1, srcZstd, sizeof srcZstd);
-	printf("Decompressed size: %ld (expected %ld)\n", bytes, sizeof dstDxt1);
-	printf("Byte comparison: %s\n", (memcmp(rawDxt1, dstDxt1, sizeof dstDxt1)) ? "failed" : "succeeded");
-	return 0;
+	size_t size = ZSTD_decompress(dstDxt1, sizeof dstDxt1, srcZstd, sizeof srcZstd);
+	int compare = memcmp(rawDxt1, dstDxt1, sizeof dstDxt1);
+	printf("Decompressed size: %ld (expected %ld)\n", size, sizeof dstDxt1);
+	printf("Byte comparison: %s\n", (compare) ? "failed" : "succeeded");
+	if (size == sizeof dstDxt1 && compare == 0) {
+		return EXIT_SUCCESS;
+	}
+	return EXIT_FAILURE;
 }
diff --git a/contrib/declib/zstddeclib-in.c b/contrib/declib/zstddeclib-in.c
index 73320af7f..e0c8d51a0 100755
--- a/contrib/declib/zstddeclib-in.c
+++ b/contrib/declib/zstddeclib-in.c
@@ -4,7 +4,7 @@
  * 
  * Generate using:
  * \code
- *	combine.sh -r "../../lib ../../lib/common ../../lib/decompress" zstddeclib-in.c > zstddeclib.c
+ *	combine.sh -r ../../lib -r ../../lib/common -r ../../lib/decompress -o zstddeclib.c zstddeclib-in.c
  * \endcode
  */
 /* 

From ea8f6d2a079051ce944d6b8e69fe1d50cce9aea9 Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Mon, 26 Aug 2019 07:48:57 +0200
Subject: [PATCH 038/163] Able to test combine script; minor tidy

---
 contrib/declib/BUCK           | 10 +++++-----
 contrib/declib/combine.sh     | 14 +++++++++-----
 contrib/declib/tests/BUCK     |  4 +++-
 contrib/declib/tests/simple.c | 11 ++++++-----
 4 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/contrib/declib/BUCK b/contrib/declib/BUCK
index e04f5e82d..bfbca1244 100644
--- a/contrib/declib/BUCK
+++ b/contrib/declib/BUCK
@@ -3,9 +3,9 @@ sh_test(
     visibility=['PUBLIC'],
     test='combine.sh',
     args=[
-        '-r', '../../lib',
-        '-r', '../../lib/common',
-        '-r', '../../lib/decompress',
-        '-o', 'zstddeclib.c',
-        'zstddeclib-in.c']
+        '-r', 'lib',
+        '-r', 'lib/common',
+        '-r', 'lib/decompress',
+        '-o', 'contrib/declib/zstddeclib.c',
+        'contrib/declib/zstddeclib-in.c']
 )
diff --git a/contrib/declib/combine.sh b/contrib/declib/combine.sh
index b95977e32..b798a8a3e 100755
--- a/contrib/declib/combine.sh
+++ b/contrib/declib/combine.sh
@@ -45,11 +45,15 @@ function write_line {
 function add_file {
   # Match the path
   local file=
-  for root in $ROOTS; do
-    if test -f "$root/$1"; then
-      file="$root/$1"
-    fi
-  done
+  if [ -f "$1" ]; then
+    file="$1"
+  else
+    for root in $ROOTS; do
+      if test -f "$root/$1"; then
+        file="$root/$1"
+      fi
+    done
+  fi
   if [ -n "$file" ]; then
     # Read the file
     local line
diff --git a/contrib/declib/tests/BUCK b/contrib/declib/tests/BUCK
index 9e3621ae4..4e707f10e 100644
--- a/contrib/declib/tests/BUCK
+++ b/contrib/declib/tests/BUCK
@@ -1,5 +1,7 @@
-cxx_test(
+# Note: we need to undef ZSTD_LEGACY_SUPPORT since Buck defines it elsewhere
+cxx_binary(
     name='simple',
     srcs=['simple.c'],
+    preprocessor_flags=['-UZSTD_LEGACY_SUPPORT'],
     deps=['//contrib/declib:combine']
 )
diff --git a/contrib/declib/tests/simple.c b/contrib/declib/tests/simple.c
index 2dda4b06e..aad14666e 100644
--- a/contrib/declib/tests/simple.c
+++ b/contrib/declib/tests/simple.c
@@ -2,10 +2,11 @@
  * \file simple.c
  * Simple standalone example of using the single-file \c zstddeclib.
  */
-#include "../zstddeclib.c"
+ 
+#include 
+#include 
 
-#include "stdio.h"
-#include "string.h"
+#include "../zstddeclib.c"
 
 //************************* Test Data (DXT texture) **************************/
 
@@ -3387,8 +3388,8 @@ size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen)
 int main() {
 	size_t size = ZSTD_decompress(dstDxt1, sizeof dstDxt1, srcZstd, sizeof srcZstd);
 	int compare = memcmp(rawDxt1, dstDxt1, sizeof dstDxt1);
-	printf("Decompressed size: %ld (expected %ld)\n", size, sizeof dstDxt1);
-	printf("Byte comparison: %s\n", (compare) ? "failed" : "succeeded");
+	printf("Decompressed size: %s\n", (size == sizeof dstDxt1) ? "OK" : "FAILED");
+	printf("Byte comparison: %s\n", (compare == 0) ? "OK" : "FAILED");
 	if (size == sizeof dstDxt1 && compare == 0) {
 		return EXIT_SUCCESS;
 	}

From 7c6fa8157984ce19d2b810f35de9bd0555f56f0d Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Mon, 26 Aug 2019 21:28:19 +0200
Subject: [PATCH 039/163] Added Emscripten example, removed Buck, minor tidy

Work-in-progress. Added simple Emscripten WebGL example that adds 25kB when build with Zstd. Removed Buck (will replace). Minor correctness.
---
 contrib/declib/.gitignore         |   2 +
 contrib/declib/BUCK               |  11 -
 contrib/declib/tests/BUCK         |   7 -
 contrib/declib/tests/emscripten.c | 952 ++++++++++++++++++++++++++++++
 contrib/declib/tests/shell.html   |  31 +
 contrib/declib/tests/simple.c     |   8 +-
 6 files changed, 990 insertions(+), 21 deletions(-)
 create mode 100644 contrib/declib/.gitignore
 delete mode 100644 contrib/declib/BUCK
 delete mode 100644 contrib/declib/tests/BUCK
 create mode 100644 contrib/declib/tests/emscripten.c
 create mode 100644 contrib/declib/tests/shell.html

diff --git a/contrib/declib/.gitignore b/contrib/declib/.gitignore
new file mode 100644
index 000000000..aa062d1e6
--- /dev/null
+++ b/contrib/declib/.gitignore
@@ -0,0 +1,2 @@
+zstddeclib.c
+
diff --git a/contrib/declib/BUCK b/contrib/declib/BUCK
deleted file mode 100644
index bfbca1244..000000000
--- a/contrib/declib/BUCK
+++ /dev/null
@@ -1,11 +0,0 @@
-sh_test(
-    name='combine',
-    visibility=['PUBLIC'],
-    test='combine.sh',
-    args=[
-        '-r', 'lib',
-        '-r', 'lib/common',
-        '-r', 'lib/decompress',
-        '-o', 'contrib/declib/zstddeclib.c',
-        'contrib/declib/zstddeclib-in.c']
-)
diff --git a/contrib/declib/tests/BUCK b/contrib/declib/tests/BUCK
deleted file mode 100644
index 4e707f10e..000000000
--- a/contrib/declib/tests/BUCK
+++ /dev/null
@@ -1,7 +0,0 @@
-# Note: we need to undef ZSTD_LEGACY_SUPPORT since Buck defines it elsewhere
-cxx_binary(
-    name='simple',
-    srcs=['simple.c'],
-    preprocessor_flags=['-UZSTD_LEGACY_SUPPORT'],
-    deps=['//contrib/declib:combine']
-)
diff --git a/contrib/declib/tests/emscripten.c b/contrib/declib/tests/emscripten.c
new file mode 100644
index 000000000..8902947fc
--- /dev/null
+++ b/contrib/declib/tests/emscripten.c
@@ -0,0 +1,952 @@
+/**
+ * \file emscripten.c
+ * Emscripten example of using the single-file \c zstddeclib. Draws a rotating
+ * textured quad with data from the in-line Zstd compressed DXT1 texture (DXT1
+ * being hardware compression, further compressed with Zstd).
+ * \n
+ * Compile using:
+ * \code
+ *	emcc -Wall -Wextra -Os -g0 -lGL -s WASM=1 -o out.html emscripten.c
+ * \endcode
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+#include 
+
+#include "../zstddeclib.c"
+
+//************************* Test Data (DXT texture) **************************/
+
+/**
+ * Zstd compressed DXT1 256x256 texture source.
+ */
+static uint8_t const srcZstd[] = {
+  0x28, 0xb5, 0x2f, 0xfd, 0x60, 0x00, 0x7f, 0xfd, 0xe2, 0x00, 0x8a, 0x05,
+  0xc9, 0x3c, 0x5c, 0x00, 0x8e, 0x39, 0xb3, 0x01, 0xb3, 0xa8, 0xf4, 0xeb,
+  0x13, 0x29, 0xfe, 0x37, 0xcd, 0x0a, 0x2e, 0xa8, 0xc3, 0xc2, 0xaf, 0xdf,
+  0x28, 0x0b, 0x96, 0x5f, 0x79, 0x8b, 0xf8, 0xa2, 0xb8, 0x4f, 0x23, 0x4b,
+  0xd4, 0xe8, 0x9c, 0xeb, 0xc9, 0xf8, 0xc3, 0xcd, 0xeb, 0xed, 0x68, 0xae,
+  0x60, 0x7c, 0xe7, 0x61, 0x90, 0x00, 0x9d, 0x43, 0xbf, 0x2e, 0x88, 0x22,
+  0x90, 0xab, 0x1b, 0x84, 0x37, 0x82, 0x73, 0x3e, 0x92, 0x9c, 0xbd, 0x83,
+  0x34, 0x6e, 0x7a, 0x88, 0x92, 0x6c, 0x28, 0x06, 0x9a, 0x6c, 0xef, 0x65,
+  0xb9, 0x6f, 0x66, 0xfe, 0x0a, 0x4c, 0x6a, 0xb8, 0x26, 0x21, 0x3d, 0x9a,
+  0x03, 0xc3, 0x03, 0xb7, 0x03, 0x9d, 0xcf, 0x34, 0x91, 0x71, 0xff, 0x4f,
+  0xd3, 0x76, 0x70, 0x0d, 0xfe, 0x12, 0x20, 0xc6, 0x61, 0x46, 0x4b, 0x47,
+  0xe5, 0x9c, 0xd3, 0x71, 0x0e, 0x35, 0x47, 0x6a, 0x82, 0xf0, 0x19, 0x00,
+  0x26, 0xe1, 0x6b, 0x00, 0x8f, 0x2f, 0xe0, 0x73, 0x51, 0xf1, 0x43, 0x02,
+  0xd7, 0x31, 0x7f, 0x56, 0xf4, 0x7e, 0x44, 0x58, 0x3c, 0x5c, 0x49, 0x3a,
+  0xee, 0xc9, 0x39, 0x0f, 0x57, 0x5d, 0x22, 0x86, 0x21, 0x64, 0xc4, 0xc3,
+  0x75, 0x53, 0x79, 0x8f, 0x8a, 0x8a, 0x8a, 0xb9, 0x4f, 0x48, 0xe4, 0xef,
+  0xd7, 0xf4, 0xff, 0x7c, 0xba, 0x4f, 0x32, 0xa7, 0x51, 0x96, 0x91, 0x76,
+  0x0f, 0x2d, 0x83, 0xe7, 0xdc, 0x1a, 0xf5, 0x7a, 0xba, 0x48, 0x4e, 0x3b,
+  0x3b, 0x6f, 0x6d, 0x07, 0x69, 0xba, 0xd7, 0xb3, 0xe9, 0xb5, 0x0d, 0x4b,
+  0x1f, 0x0e, 0x81, 0x6e, 0x41, 0x1d, 0x71, 0xc7, 0x05, 0x38, 0xa7, 0x18,
+  0xd0, 0x91, 0x3c, 0xde, 0x3b, 0xe4, 0x7d, 0x41, 0xed, 0xd2, 0x1b, 0x32,
+  0x35, 0xd3, 0xc3, 0x38, 0xbe, 0xc9, 0x80, 0xf6, 0x70, 0x40, 0x89, 0xac,
+  0x15, 0x74, 0x14, 0x0c, 0x66, 0x1b, 0xbd, 0x2f, 0xa0, 0x65, 0x9e, 0x4f,
+  0x0c, 0xc8, 0x90, 0x82, 0xd7, 0x09, 0x25, 0x43, 0x10, 0x74, 0x12, 0x16,
+  0xd6, 0x4b, 0x8a, 0xbd, 0xe2, 0x5f, 0x06, 0x27, 0x5e, 0x32, 0x38, 0x79,
+  0x9d, 0xb4, 0x71, 0x9e, 0x6f, 0x2e, 0x92, 0x70, 0x2d, 0xf7, 0x69, 0xaa,
+  0x00, 0xb4, 0x31, 0xa8, 0xf6, 0xea, 0x10, 0x5d, 0xca, 0x5c, 0xa8, 0x28,
+  0x53, 0x86, 0x20, 0xdc, 0x27, 0x5a, 0x86, 0x84, 0x36, 0x71, 0xfe, 0x3f,
+  0x55, 0x80, 0xd7, 0x69, 0x34, 0x42, 0xd5, 0x1b, 0xfc, 0xf7, 0xfe, 0xdf,
+  0x03, 0x08, 0x26, 0x9a, 0xe6, 0x5c, 0x26, 0xab, 0xd5, 0x6e, 0x31, 0xa2,
+  0x5e, 0xb0, 0xff, 0x57, 0x1a, 0x7a, 0x6b, 0x9c, 0x0e, 0x3a, 0x3c, 0xa8,
+  0xda, 0x06, 0xea, 0xd7, 0x95, 0x52, 0x64, 0xae, 0x2f, 0x50, 0x23, 0xde,
+  0x04, 0x7f, 0xd6, 0xac, 0x64, 0x68, 0x9a, 0x46, 0xe2, 0xf0, 0xde, 0x6c,
+  0x45, 0x03, 0x79, 0x64, 0x76, 0x9f, 0x6e, 0x1f, 0x20, 0xe0, 0x22, 0x31,
+  0xf7, 0x38, 0xff, 0x15, 0x47, 0xfc, 0xfc, 0xfe, 0xdf, 0x27, 0xb7, 0xc6,
+  0xf8, 0x5f, 0x69, 0xce, 0x6f, 0xcd, 0xa3, 0xe1, 0x42, 0xd1, 0x07, 0x49,
+  0x75, 0x91, 0x6e, 0x1f, 0xcf, 0xe7, 0x33, 0x9d, 0xb5, 0x8b, 0x2c, 0x1b,
+  0x7f, 0xb0, 0x9a, 0x91, 0xdd, 0x7d, 0x82, 0x52, 0xed, 0xdc, 0x10, 0xa3,
+  0x81, 0xc2, 0x7d, 0xaa, 0x5d, 0x7a, 0x3d, 0xe4, 0xd7, 0x0d, 0x3b, 0x08,
+  0x04, 0x0e, 0xbb, 0xb6, 0x78, 0x3c, 0xa8, 0xe8, 0xd6, 0x6c, 0x26, 0x13,
+  0xc7, 0x43, 0x22, 0xbb, 0x1d, 0xf2, 0xc9, 0xf3, 0x29, 0xc3, 0x64, 0xfa,
+  0xe7, 0xf4, 0x91, 0x86, 0xd3, 0x54, 0xf7, 0x29, 0xba, 0xc5, 0x02, 0x02,
+  0xc2, 0x11, 0x72, 0xd2, 0xbd, 0xb4, 0xc2, 0xc9, 0xf4, 0x76, 0x9e, 0x8d,
+  0x54, 0x22, 0x51, 0xc6, 0x01, 0x24, 0x3a, 0x3a, 0x46, 0x26, 0x2f, 0x54,
+  0x16, 0xcf, 0x5b, 0x1f, 0x77, 0x9c, 0x7f, 0x87, 0xa7, 0x53, 0xbc, 0x56,
+  0x93, 0xa1, 0x70, 0x65, 0xd4, 0xce, 0x3b, 0x3a, 0x93, 0x93, 0xde, 0x5a,
+  0xa8, 0xaa, 0xaa, 0xea, 0x16, 0x83, 0xb3, 0x30, 0x9f, 0x20, 0x01, 0xef,
+  0x85, 0x7a, 0x86, 0x78, 0x9d, 0xcd, 0x9a, 0xd6, 0x8a, 0x68, 0x86, 0xe5,
+  0x16, 0x87, 0x82, 0x52, 0xc1, 0x53, 0xd6, 0xe9, 0x88, 0xe5, 0xbc, 0x27,
+  0x7d, 0x9d, 0xca, 0x9b, 0xdb, 0x40, 0x29, 0xbe, 0x50, 0xc9, 0xa5, 0x25,
+  0x4e, 0xbb, 0x09, 0xaa, 0x58, 0x8d, 0x8a, 0x8a, 0x82, 0xa7, 0x46, 0xb6,
+  0xe7, 0x41, 0x45, 0x3d, 0xe1, 0x20, 0xe4, 0xf5, 0x72, 0x6b, 0x16, 0x0f,
+  0x0e, 0xd7, 0xc1, 0x06, 0xaf, 0xf3, 0x5e, 0x72, 0xfe, 0x94, 0xd5, 0x5c,
+  0x24, 0xdf, 0x12, 0x12, 0x62, 0x92, 0x41, 0x5e, 0xe7, 0x5b, 0x3b, 0xa1,
+  0x54, 0xc9, 0xdf, 0xeb, 0x24, 0xda, 0x00, 0xe7, 0x3d, 0xe3, 0xee, 0x67,
+  0x14, 0x41, 0x54, 0xaa, 0xf8, 0x5c, 0x9e, 0xc8, 0xe2, 0x51, 0x42, 0xd3,
+  0xb4, 0x2b, 0x23, 0x67, 0x7b, 0xeb, 0x3b, 0xba, 0x82, 0x26, 0xca, 0x32,
+  0x38, 0x41, 0x2e, 0xd2, 0x0c, 0xaf, 0x33, 0xb7, 0xd6, 0x76, 0x72, 0xb6,
+  0x7b, 0x79, 0x8b, 0xf1, 0xf5, 0x9f, 0x5c, 0xca, 0xad, 0x36, 0x64, 0x24,
+  0x70, 0x0e, 0x4f, 0xb3, 0x78, 0x64, 0x10, 0xeb, 0x71, 0xe0, 0x0f, 0x21,
+  0xd0, 0x45, 0xe2, 0x32, 0x0c, 0xb4, 0x32, 0xf8, 0x1a, 0xe4, 0x5b, 0x77,
+  0x2e, 0x0e, 0x45, 0xc2, 0x8d, 0xbe, 0x86, 0x73, 0x7a, 0x8a, 0x73, 0x6e,
+  0x4c, 0xe6, 0xd6, 0x66, 0x1b, 0x93, 0x00, 0x25, 0x76, 0x91, 0xa0, 0x48,
+  0x48, 0xf8, 0x67, 0x32, 0x88, 0x31, 0xc9, 0xf9, 0x5b, 0x37, 0x67, 0x14,
+  0x2b, 0x7c, 0xa4, 0x71, 0x79, 0xeb, 0xe2, 0xeb, 0x3c, 0xd2, 0x20, 0x73,
+  0xb6, 0xd7, 0x79, 0x63, 0xe1, 0x2c, 0x21, 0x75, 0x63, 0x81, 0x13, 0xaf,
+  0xbe, 0xd7, 0xd9, 0xbb, 0x12, 0x17, 0x29, 0x67, 0xeb, 0x6c, 0xac, 0xe9,
+  0x04, 0x4d, 0x62, 0xe7, 0x1d, 0xf5, 0x80, 0x98, 0xb3, 0xc9, 0x2c, 0x80,
+  0x44, 0x44, 0xbd, 0xee, 0xa5, 0x91, 0x91, 0x91, 0x30, 0x69, 0xb7, 0xdb,
+  0x3d, 0x79, 0x9d, 0x45, 0x46, 0x6e, 0x1f, 0x38, 0x37, 0x20, 0x15, 0xef,
+  0x7d, 0x3d, 0x59, 0x61, 0xa5, 0xd6, 0x4d, 0x74, 0x2b, 0x67, 0x63, 0xf2,
+  0x5a, 0x16, 0x7a, 0xf6, 0xfe, 0xee, 0x93, 0x2c, 0xc4, 0xe3, 0xb7, 0x86,
+  0x22, 0x81, 0xd5, 0x36, 0x39, 0xdb, 0x8a, 0xd7, 0x79, 0xc4, 0xda, 0x3d,
+  0x2b, 0x4c, 0x26, 0x53, 0xa6, 0x5a, 0xad, 0xc6, 0x5c, 0x24, 0x39, 0xc9,
+  0xc6, 0xe4, 0x5f, 0x79, 0x1b, 0x19, 0xf1, 0x7f, 0x9d, 0x38, 0x41, 0xbd,
+  0x77, 0xfa, 0x16, 0x03, 0x48, 0xc4, 0xd7, 0xd7, 0x17, 0xf2, 0x16, 0xc3,
+  0x47, 0xc4, 0xa7, 0xf7, 0xb7, 0x36, 0xfe, 0x7e, 0xbf, 0xdc, 0xda, 0xb9,
+  0xfe, 0xc9, 0xf4, 0x44, 0x22, 0x31, 0xb7, 0xca, 0xb2, 0x0c, 0x4f, 0x39,
+  0xe7, 0xb9, 0x15, 0x4a, 0x55, 0x73, 0x91, 0xf8, 0x9d, 0x9d, 0x1d, 0x9c,
+  0xb8, 0xfe, 0x7d, 0xaf, 0xd7, 0x83, 0xa7, 0x50, 0x24, 0x32, 0xb3, 0xd9,
+  0x0c, 0xe7, 0xd6, 0x3b, 0x8f, 0x89, 0x89, 0x89, 0x7a, 0x3d, 0x8f, 0xc7,
+  0x83, 0xa7, 0xb5, 0x0b, 0xbf, 0xb9, 0xb9, 0xf9, 0x38, 0x8e, 0x5f, 0x67,
+  0xd4, 0x0b, 0x06, 0x83, 0x71, 0x91, 0x10, 0x0a, 0x85, 0x50, 0x2a, 0x78,
+  0xfa, 0x58, 0x58, 0x58, 0x2e, 0xd2, 0xfa, 0xf3, 0x3c, 0x33, 0xbd, 0x35,
+  0xcf, 0x91, 0x23, 0x47, 0xd4, 0xcb, 0xe8, 0xf3, 0xf9, 0xde, 0xba, 0x77,
+  0x78, 0xba, 0xf2, 0xff, 0x87, 0x52, 0xe5, 0x6c, 0x5f, 0xab, 0xd5, 0x5e,
+  0x67, 0x6d, 0x13, 0xc6, 0xae, 0x1d, 0x79, 0x8e, 0x05, 0x83, 0xca, 0x17,
+  0xe2, 0x88, 0x71, 0x30, 0xc3, 0xd5, 0x52, 0xd8, 0xe1, 0x1d, 0xd5, 0x19,
+  0x6d, 0x34, 0xa7, 0xe1, 0xfa, 0x42, 0x9b, 0x4c, 0xcc, 0xf8, 0x2f, 0x93,
+  0xf1, 0x7a, 0x0f, 0x56, 0x3b, 0x08, 0x58, 0xc4, 0xda, 0xeb, 0x84, 0x22,
+  0x91, 0xcd, 0xc8, 0xb1, 0xf5, 0x7a, 0xbd, 0xb7, 0xde, 0xf1, 0x7a, 0xbc,
+  0xe9, 0x59, 0x9c, 0xe1, 0xaa, 0x56, 0x56, 0x50, 0x62, 0x30, 0xa5, 0xa1,
+  0xff, 0x1b, 0x8b, 0xde, 0x7b, 0xbc, 0xdd, 0x6f, 0x56, 0x7c, 0xf2, 0x28,
+  0x29, 0x62, 0x4e, 0xd0, 0x50, 0x31, 0x89, 0x67, 0x07, 0xa1, 0x50, 0x02,
+  0x2c, 0xe0, 0x3f, 0xba, 0x15, 0x93, 0x89, 0x80, 0xb1, 0x92, 0x99, 0xca,
+  0x0a, 0x2c, 0x76, 0x53, 0xf5, 0x7f, 0x64, 0x41, 0xfe, 0xc8, 0xb2, 0xef,
+  0xf6, 0xc1, 0x3a, 0xc9, 0xf0, 0xde, 0xff, 0x61, 0x28, 0xbd, 0x5f, 0xd5,
+  0x66, 0x45, 0xce, 0x7b, 0xe2, 0xc4, 0x2f, 0x73, 0x81, 0x05, 0x1f, 0x11,
+  0xda, 0xfa, 0x6c, 0x4b, 0x9b, 0x81, 0xd5, 0xdc, 0xc4, 0x5e, 0xa0, 0xf0,
+  0xec, 0xa5, 0x0e, 0xcc, 0x5c, 0x02, 0x8d, 0x18, 0x1b, 0xc2, 0x1a, 0x8e,
+  0x1d, 0x26, 0x8c, 0x48, 0x04, 0xd4, 0x20, 0x64, 0x88, 0xcd, 0x04, 0xb7,
+  0x23, 0xb1, 0x74, 0x8a, 0xc3, 0xe9, 0xff, 0xde, 0xa9, 0x22, 0xbc, 0xf1,
+  0x84, 0x9f, 0xe9, 0xca, 0xbd, 0x64, 0xd6, 0x38, 0x9b, 0x6d, 0xff, 0xb6,
+  0x96, 0x5b, 0xed, 0x26, 0xab, 0x22, 0xcd, 0x2b, 0xa2, 0x19, 0x8a, 0xb8,
+  0xff, 0x18, 0xac, 0xab, 0xa0, 0xce, 0x28, 0x06, 0x73, 0x5c, 0x88, 0x8e,
+  0x80, 0x0a, 0x24, 0x87, 0x1d, 0xf4, 0x2d, 0x39, 0xe6, 0x0c, 0xd5, 0x3f,
+  0x21, 0x99, 0x06, 0x12, 0x11, 0x45, 0x95, 0x51, 0x81, 0xcc, 0x44, 0x31,
+  0x91, 0x2a, 0xc2, 0x57, 0x91, 0x0b, 0x84, 0x70, 0xa0, 0xed, 0xb2, 0x7b,
+  0x7e, 0x3d, 0xcf, 0x59, 0x0d, 0xab, 0x84, 0xf5, 0x59, 0x16, 0xd6, 0xc2,
+  0x5a, 0x98, 0x2d, 0x46, 0x83, 0xcd, 0x70, 0x30, 0x13, 0xab, 0x41, 0x99,
+  0xce, 0xc4, 0x6e, 0x60, 0x68, 0xdc, 0xc0, 0xbc, 0x80, 0x79, 0x01, 0xa3,
+  0x13, 0xf3, 0xa5, 0x13, 0xe3, 0x13, 0x33, 0xc7, 0x94, 0x50, 0x23, 0xa1,
+  0x84, 0x1a, 0x8d, 0x1a, 0x8d, 0x9a, 0x0d, 0x13, 0x54, 0x1b, 0x26, 0x84,
+  0x2d, 0xa6, 0xc2, 0x16, 0x38, 0x5a, 0xe0, 0x68, 0x91, 0xc3, 0x45, 0x0e,
+  0x17, 0x46, 0x17, 0x32, 0xe4, 0x8b, 0x1a, 0x5e, 0x20, 0x5f, 0xd4, 0xf0,
+  0x42, 0x48, 0x90, 0x90, 0x78, 0x48, 0x5c, 0x15, 0x0f, 0x09, 0x1a, 0x12,
+  0x74, 0x44, 0xc8, 0x89, 0x09, 0x84, 0xa4, 0x42, 0x18, 0x90, 0x0a, 0x4d,
+  0x67, 0x50, 0xa7, 0x33, 0x98, 0xcc, 0x50, 0x81, 0xc9, 0x0c, 0xea, 0x04,
+  0xe8, 0x18, 0xc0, 0xa0, 0xc6, 0x7a, 0xbb, 0x99, 0x88, 0xda, 0xc1, 0xd7,
+  0x08, 0xb8, 0x22, 0xe7, 0x54, 0x11, 0xfa, 0x01, 0x74, 0xa8, 0x22, 0xa8,
+  0x40, 0x08, 0x15, 0x49, 0x53, 0x6a, 0xa5, 0xf8, 0x96, 0xd4, 0x2e, 0x40,
+  0xf9, 0xc7, 0xe3, 0xfc, 0x39, 0xf3, 0x2d, 0xb1, 0x7b, 0x84, 0x6d, 0xd7,
+  0x3f, 0x5f, 0x61, 0xec, 0xb7, 0xb0, 0x0f, 0x81, 0x06, 0xfb, 0x18, 0xb6,
+  0xd8, 0x67, 0x80, 0xcd, 0xc0, 0x0c, 0x4d, 0xc6, 0x0b, 0xd8, 0x0b, 0x98,
+  0x27, 0xa2, 0x13, 0xf3, 0x30, 0x68, 0x8b, 0xcc, 0x31, 0xb4, 0x4f, 0xcc,
+  0xca, 0xcc, 0x8b, 0x00, 0x4a, 0xa8, 0x15, 0xc9, 0x11, 0xe3, 0x37, 0x58,
+  0x3b, 0x62, 0x8f, 0xa3, 0xc5, 0x0b, 0x1f, 0x6e, 0x3b, 0x39, 0x5c, 0xec,
+  0x70, 0xb1, 0x92, 0x83, 0xd1, 0xc5, 0xca, 0x96, 0x0b, 0x03, 0xf2, 0x05,
+  0x07, 0xa6, 0x90, 0xa2, 0x54, 0xc5, 0xb2, 0x15, 0x5b, 0x43, 0x82, 0xde,
+  0x27, 0x26, 0x80, 0xab, 0x47, 0x84, 0x7a, 0xae, 0x84, 0x54, 0x88, 0xc9,
+  0x8c, 0x15, 0x78, 0xf0, 0x15, 0xa8, 0xa8, 0x33, 0xfe, 0x63, 0x51, 0x41,
+  0x56, 0x4c, 0x3d, 0x88, 0x89, 0x38, 0xa6, 0xf4, 0x44, 0x92, 0x20, 0xe7,
+  0xfc, 0xa9, 0x33, 0x56, 0xa0, 0x1a, 0x31, 0x62, 0xc4, 0x31, 0xab, 0xc7,
+  0xf4, 0x04, 0xe7, 0x9d, 0xfe, 0xa7, 0xb9, 0x52, 0x4b, 0xa9, 0x55, 0xab,
+  0xa1, 0x90, 0x35, 0x95, 0xa8, 0x56, 0x7b, 0x3f, 0xc6, 0x44, 0x3f, 0x1f,
+  0x91, 0x6e, 0x54, 0x42, 0x4e, 0x2a, 0x32, 0xf2, 0x2f, 0x6b, 0x4c, 0x8b,
+  0x83, 0x95, 0xc0, 0x34, 0x8a, 0x86, 0x96, 0x08, 0x4d, 0x03, 0x4a, 0x60,
+  0xe0, 0xe4, 0x36, 0x00, 0x97, 0x95, 0x56, 0x53, 0xbc, 0x2e, 0xd2, 0xad,
+  0x01, 0xef, 0xde, 0x77, 0x47, 0x9c, 0x02, 0x13, 0xce, 0x21, 0x86, 0x01,
+  0x46, 0xa2, 0xdb, 0x51, 0x8d, 0xb7, 0x74, 0x39, 0xd0, 0xff, 0x0f, 0x57,
+  0x75, 0x5b, 0x3c, 0x3d, 0xe8, 0xaa, 0x3d, 0x16, 0x8b, 0xc9, 0x25, 0x78,
+  0xaa, 0xfd, 0xab, 0xf7, 0x6a, 0x13, 0x1d, 0xf3, 0x04, 0xe6, 0x0c, 0xc4,
+  0xc2, 0xf1, 0xf4, 0x24, 0x9d, 0x29, 0xaf, 0x00, 0x76, 0xee, 0x2b, 0x11,
+  0xd4, 0x83, 0x58, 0x57, 0x1e, 0xe7, 0x7c, 0x6b, 0x46, 0x84, 0x65, 0x20,
+  0x11, 0xd1, 0x2d, 0x23, 0x1f, 0x11, 0x9d, 0xd1, 0x0f, 0x8c, 0x9d, 0x0e,
+  0x90, 0xf8, 0x53, 0x02, 0x0a, 0x63, 0x06, 0x46, 0x72, 0x05, 0xd5, 0xb7,
+  0xe4, 0x49, 0xdb, 0x55, 0xbb, 0x14, 0x6b, 0x3a, 0x9c, 0x20, 0xd3, 0x46,
+  0x15, 0xe8, 0xec, 0xb0, 0x73, 0x05, 0xe1, 0x5b, 0x02, 0x24, 0xe2, 0xf9,
+  0x7f, 0x0b, 0x21, 0x6a, 0xe5, 0xe0, 0x61, 0x2b, 0x07, 0x2b, 0xcc, 0x0a,
+  0xc3, 0xb2, 0x60, 0x43, 0x60, 0x65, 0xb0, 0x32, 0x5a, 0x09, 0x20, 0xd9,
+  0x16, 0x2d, 0x0e, 0xa3, 0x16, 0x47, 0x4b, 0xb7, 0x1a, 0xa0, 0xd1, 0x34,
+  0x9a, 0x56, 0x84, 0x46, 0xc4, 0x86, 0x45, 0x2b, 0x62, 0xf3, 0xc1, 0xe6,
+  0x83, 0xcb, 0x1a, 0x6f, 0x02, 0x70, 0x59, 0x15, 0x5c, 0xd6, 0x75, 0x5d,
+  0xf7, 0x55, 0xc0, 0xab, 0x80, 0x77, 0xf7, 0xee, 0xc0, 0x35, 0xa6, 0xf0,
+  0x0e, 0x4e, 0x01, 0x06, 0x23, 0x9c, 0x42, 0xbc, 0x43, 0x1a, 0xef, 0x88,
+  0x73, 0x88, 0x79, 0xe8, 0xb6, 0x60, 0xe8, 0xb6, 0x78, 0x54, 0xa0, 0xeb,
+  0x81, 0xa7, 0x6a, 0x83, 0xa7, 0xca, 0xf3, 0xe5, 0x84, 0xe7, 0xeb, 0xa7,
+  0x84, 0x54, 0xb7, 0x61, 0xcc, 0x7a, 0x74, 0x45, 0x95, 0x8b, 0xa7, 0xdf,
+  0x4e, 0xa0, 0xee, 0x65, 0xb1, 0xea, 0x23, 0x12, 0xf5, 0xfa, 0xf5, 0x38,
+  0x94, 0x4a, 0xe8, 0xd3, 0xaa, 0x44, 0xbd, 0xb8, 0x9c, 0x04, 0xe4, 0x01,
+  0x97, 0x69, 0xa2, 0x0d, 0xfc, 0xbf, 0x14, 0xce, 0xcd, 0xb7, 0xe4, 0xf9,
+  0xcf, 0x3a, 0xf1, 0xff, 0x35, 0x86, 0x3f, 0x6c, 0x85, 0xf9, 0x18, 0x1b,
+  0xa3, 0xf7, 0x28, 0x2c, 0x0b, 0xbe, 0xa6, 0xb4, 0x50, 0xab, 0x8a, 0xfb,
+  0x37, 0xd9, 0x8a, 0x00, 0xf6, 0xf6, 0x2a, 0xbd, 0xeb, 0x01, 0x8b, 0xc3,
+  0xdb, 0x19, 0xb7, 0x11, 0x6c, 0x08, 0xf7, 0x01, 0x9c, 0xe6, 0x82, 0x8b,
+  0x22, 0x01, 0x2f, 0x8d, 0xde, 0x42, 0x00, 0x7e, 0x81, 0x46, 0x03, 0xf6,
+  0xc0, 0xbb, 0x43, 0x3b, 0xa1, 0xf7, 0x3e, 0x78, 0x9a, 0x5c, 0x9a, 0xfd,
+  0x7e, 0x3b, 0xde, 0x6e, 0xf7, 0x9b, 0xdf, 0xba, 0xfe, 0x39, 0x7b, 0x00,
+  0x31, 0x9b, 0xe1, 0x8e, 0x4b, 0xdf, 0xce, 0xce, 0x90, 0x90, 0x50, 0x94,
+  0x94, 0x14, 0x1d, 0x53, 0x8d, 0x76, 0x13, 0xd0, 0xea, 0x73, 0x6e, 0xaa,
+  0x84, 0x37, 0x47, 0x96, 0xa7, 0x45, 0xb7, 0x82, 0xba, 0x86, 0x44, 0x41,
+  0xde, 0x9f, 0xd7, 0x9c, 0x39, 0x58, 0x57, 0x44, 0x9c, 0xa0, 0xac, 0x1b,
+  0x46, 0xdd, 0x47, 0x13, 0x6b, 0x35, 0x1d, 0x14, 0x50, 0x68, 0x79, 0x9d,
+  0x5d, 0x79, 0x73, 0xe5, 0xfd, 0x3f, 0x55, 0x64, 0xd7, 0x2e, 0x5f, 0xb8,
+  0xb7, 0x2e, 0xb2, 0xab, 0xc2, 0x15, 0xfe, 0x79, 0x7d, 0x81, 0x32, 0xb1,
+  0x44, 0x9f, 0x4e, 0x25, 0x1d, 0x8a, 0x99, 0xaa, 0x58, 0xed, 0xa2, 0xc3,
+  0x06, 0xe5, 0x7d, 0x2f, 0x65, 0x45, 0x46, 0x6a, 0x17, 0x2a, 0x21, 0xbb,
+  0xa7, 0xc8, 0xa6, 0x4a, 0x26, 0x8b, 0xb2, 0xa1, 0xd2, 0x10, 0xfd, 0x3a,
+  0x93, 0x41, 0x8e, 0x34, 0xff, 0xf7, 0x92, 0xc9, 0x0a, 0xd3, 0x50, 0xaa,
+  0xd7, 0xc9, 0x3a, 0x29, 0xe9, 0xa8, 0x5a, 0x5a, 0xcf, 0x7f, 0xa1, 0x94,
+  0x86, 0x50, 0x2c, 0x91, 0xcf, 0x9f, 0x4f, 0x19, 0xfa, 0x85, 0xe2, 0x22,
+  0x61, 0x43, 0xef, 0x3a, 0x1d, 0x92, 0xff, 0xfa, 0xa2, 0x34, 0x54, 0x8c,
+  0xe9, 0xe8, 0x40, 0xef, 0x34, 0xff, 0x3e, 0xc5, 0x91, 0x53, 0x35, 0x64,
+  0xb5, 0xfa, 0xd7, 0xd2, 0xd2, 0x32, 0x7b, 0x6b, 0x39, 0x09, 0x8a, 0xe4,
+  0x75, 0xd6, 0x36, 0x2c, 0x3a, 0x74, 0xe8, 0x78, 0x6b, 0x15, 0x2a, 0x6a,
+  0x35, 0x28, 0x95, 0x4e, 0x93, 0x26, 0x28, 0xa0, 0xa0, 0x42, 0x45, 0x12,
+  0xf1, 0x0a, 0x2b, 0x07, 0x9e, 0xda, 0x4d, 0x1f, 0xbc, 0xc9, 0xba, 0xf1,
+  0xbd, 0xff, 0x5b, 0x0c, 0x9f, 0x3c, 0xbd, 0x97, 0x4f, 0x96, 0x9c, 0x24,
+  0x2b, 0x20, 0xd2, 0x91, 0xa6, 0x2a, 0xe9, 0x78, 0xa5, 0x24, 0x42, 0x04,
+  0x4f, 0x73, 0x0e, 0xe4, 0x7b, 0xe7, 0xf1, 0x2e, 0x20, 0xb5, 0x02, 0x29,
+  0x69, 0x2b, 0xac, 0x1a, 0x39, 0xa7, 0x69, 0xd6, 0x47, 0x06, 0x4e, 0xb7,
+  0x0f, 0xbe, 0xc3, 0x0e, 0x2b, 0xf0, 0xc8, 0xc2, 0xf9, 0x0d, 0x37, 0xb0,
+  0xc3, 0x65, 0x0b, 0xfb, 0xa3, 0xd4, 0xe2, 0xdc, 0x66, 0x63, 0x87, 0x3d,
+  0x80, 0x48, 0x42, 0x39, 0x2f, 0x52, 0x84, 0x1d, 0x4e, 0xd5, 0xe0, 0x7c,
+  0x38, 0x5c, 0x81, 0x47, 0x33, 0x9c, 0xa7, 0x48, 0xb1, 0xc2, 0x53, 0x45,
+  0xce, 0x65, 0x64, 0xb4, 0x78, 0x3b, 0x24, 0x72, 0x05, 0x2a, 0xef, 0x9b,
+  0x1b, 0x21, 0xa1, 0xa8, 0x17, 0x3b, 0xe4, 0x7c, 0x65, 0x85, 0xfd, 0x19,
+  0x2a, 0x6f, 0xce, 0x5d, 0x5c, 0x58, 0x27, 0x1e, 0x78, 0x00, 0x02, 0xd9,
+  0xa1, 0x11, 0x23, 0x2b, 0xcc, 0x79, 0xdb, 0x72, 0xfe, 0xc3, 0x0f, 0x2b,
+  0x1c, 0xf5, 0x02, 0xf2, 0x5e, 0x8f, 0x1e, 0xff, 0x47, 0x33, 0xff, 0xed,
+  0x0f, 0xce, 0x81, 0x3e, 0x3e, 0xcd, 0x9a, 0x5f, 0x5a, 0xb2, 0x9b, 0x5a,
+  0xab, 0xff, 0x68, 0xf4, 0xdf, 0xee, 0xe1, 0x9c, 0xfd, 0xe1, 0x3c, 0xb8,
+  0xc2, 0xff, 0x42, 0x94, 0x58, 0x0c, 0x45, 0x69, 0xa8, 0x77, 0x9a, 0x21,
+  0xa7, 0xae, 0x20, 0xfe, 0x34, 0x4d, 0x6d, 0x68, 0x67, 0x47, 0xce, 0xad,
+  0xb5, 0x8d, 0xd0, 0x11, 0x5b, 0x64, 0xf7, 0x00, 0x22, 0xc8, 0xd3, 0x91,
+  0xe6, 0xe6, 0x5b, 0xa2, 0xa3, 0x03, 0x29, 0x9e, 0x96, 0x0c, 0x22, 0xec,
+  0xfd, 0x88, 0xfd, 0xf1, 0xc3, 0x25, 0x8b, 0x07, 0xca, 0x83, 0x07, 0x2d,
+  0x25, 0x15, 0xe7, 0x5c, 0x5d, 0xe5, 0x56, 0xbb, 0x67, 0xfe, 0xed, 0x76,
+  0xf0, 0xb4, 0xfe, 0xf1, 0xd7, 0xa9, 0xc3, 0x06, 0x27, 0x38, 0xee, 0x53,
+  0x93, 0x06, 0x21, 0x78, 0xeb, 0x64, 0x10, 0x0e, 0x4f, 0x93, 0x4b, 0x4b,
+  0x4a, 0x43, 0xb7, 0x18, 0x3c, 0x72, 0xb6, 0xda, 0xc6, 0xa6, 0xc8, 0x66,
+  0x9d, 0x5e, 0x00, 0xc0, 0x45, 0x02, 0x8a, 0x84, 0x8b, 0x84, 0x4b, 0x17,
+  0xce, 0x6d, 0x7d, 0xe9, 0x71, 0x82, 0xf5, 0xc5, 0xa9, 0xf8, 0x62, 0xf7,
+  0xac, 0x30, 0x3f, 0xd6, 0x70, 0xb3, 0xdb, 0xc7, 0xd5, 0x11, 0x6b, 0x07,
+  0xbb, 0x2c, 0xe3, 0xda, 0x8a, 0xfa, 0xd1, 0x35, 0xc2, 0x13, 0xa6, 0x94,
+  0xf4, 0x06, 0x69, 0x77, 0x7a, 0x67, 0x15, 0xca, 0x07, 0x6a, 0x29, 0xa9,
+  0x97, 0x97, 0x97, 0x93, 0x22, 0xfb, 0x88, 0x35, 0xe1, 0x05, 0x39, 0x29,
+  0xb9, 0xa4, 0x81, 0x8b, 0xa4, 0xd4, 0xda, 0x60, 0x46, 0xce, 0x54, 0x8d,
+  0x12, 0xb4, 0x00, 0x02, 0x89, 0xd0, 0x61, 0x43, 0x08, 0xc9, 0xa5, 0x9c,
+  0xad, 0x78, 0xc4, 0xd6, 0x2e, 0xbc, 0x22, 0xfb, 0x5e, 0x0a, 0xd5, 0x36,
+  0xad, 0xd5, 0x4a, 0x6b, 0x75, 0xc4, 0xb6, 0x3f, 0x94, 0xb7, 0xcb, 0x8d,
+  0x45, 0xed, 0xc2, 0x03, 0xb0, 0xb5, 0xba, 0x7a, 0xeb, 0xda, 0x26, 0xa6,
+  0xfd, 0xd1, 0x9c, 0x55, 0x6a, 0x99, 0xa3, 0x99, 0x22, 0x23, 0x2b, 0xe8,
+  0xe8, 0x00, 0xfb, 0x33, 0xdb, 0x41, 0x1b, 0x4f, 0xeb, 0x1d, 0xc7, 0x0e,
+  0xb3, 0x6e, 0x80, 0xd0, 0xc3, 0xff, 0x54, 0x8d, 0xb9, 0x76, 0x59, 0xe1,
+  0x5a, 0x6d, 0xb3, 0xc2, 0x40, 0x1e, 0x4c, 0xd5, 0xb0, 0x83, 0x6f, 0x9d,
+  0x75, 0xa3, 0x73, 0xfe, 0x7c, 0x7e, 0xbc, 0xca, 0x49, 0xf2, 0xd5, 0x36,
+  0x45, 0x46, 0xa4, 0x5a, 0x20, 0x36, 0x31, 0x93, 0xe8, 0x90, 0x92, 0x4a,
+  0xad, 0xa0, 0x7f, 0xf5, 0xde, 0x69, 0x39, 0x09, 0xca, 0x64, 0x82, 0x09,
+  0x26, 0x24, 0xe5, 0xd6, 0xac, 0x1b, 0x2f, 0xbc, 0xf0, 0x02, 0x07, 0x38,
+  0xb1, 0x52, 0x4b, 0x03, 0x0d, 0x34, 0xe0, 0xc0, 0x45, 0x6a, 0xb6, 0x4b,
+  0x4b, 0x30, 0xd8, 0x88, 0x66, 0x68, 0xb6, 0x32, 0x64, 0xc8, 0x50, 0xc2,
+  0x09, 0x8a, 0x7a, 0xb5, 0x68, 0xd1, 0x02, 0x47, 0xce, 0xd6, 0x6c, 0x6f,
+  0xdc, 0xb8, 0x31, 0x04, 0x12, 0x91, 0x5c, 0xe2, 0xc1, 0x83, 0xc7, 0x0d,
+  0x39, 0x9b, 0x1d, 0xc4, 0xe1, 0xec, 0x66, 0xab, 0x25, 0x6b, 0xc9, 0x42,
+  0xf5, 0x6f, 0x6a, 0x6a, 0x2a, 0x46, 0x6b, 0xc1, 0x14, 0x5f, 0xd9, 0x9f,
+  0x66, 0x0b, 0xc3, 0x70, 0x50, 0x6d, 0xf3, 0xd6, 0x3c, 0xf0, 0xc0, 0x43,
+  0x0d, 0x37, 0x16, 0xd1, 0x2d, 0xab, 0xb6, 0x2b, 0xea, 0x75, 0x75, 0x75,
+  0xd5, 0x02, 0x0f, 0x94, 0xa9, 0xb5, 0x8a, 0xe3, 0x38, 0x06, 0x94, 0xaa,
+  0xb5, 0x52, 0x51, 0x51, 0x39, 0xd2, 0x50, 0xa6, 0x22, 0x1b, 0x0a, 0x85,
+  0x0a, 0x61, 0x87, 0xcd, 0x9a, 0x17, 0x00, 0x48, 0xd7, 0x97, 0x3b, 0x8a,
+  0xc3, 0xe1, 0x12, 0xc0, 0x0e, 0xa1, 0x4c, 0x20, 0x80, 0x00, 0x02, 0x09,
+  0x8a, 0x6c, 0x3b, 0xd8, 0x43, 0x0f, 0x3d, 0x20, 0xff, 0x93, 0x41, 0x42,
+  0x04, 0xdb, 0x1f, 0x76, 0x50, 0xa6, 0xc8, 0x48, 0xb3, 0x46, 0x4a, 0x34,
+  0x43, 0xe7, 0x8a, 0x25, 0x83, 0xb4, 0x6f, 0x3d, 0xcb, 0x44, 0xc2, 0xff,
+  0xe7, 0xcd, 0x1a, 0xd9, 0x07, 0x6f, 0x0d, 0x24, 0x22, 0xb2, 0xdc, 0xfa,
+  0xf0, 0xf4, 0x65, 0x4e, 0x3c, 0xfa, 0xd6, 0x32, 0xf0, 0xf4, 0xb3, 0x78,
+  0x62, 0x36, 0xc6, 0x6f, 0x8d, 0x6d, 0xb3, 0x26, 0x28, 0x73, 0xab, 0x21,
+  0x11, 0x09, 0x9f, 0x34, 0x81, 0xe2, 0xbf, 0x62, 0x86, 0x57, 0xab, 0xcf,
+  0x98, 0x90, 0xc3, 0x80, 0xf1, 0x3a, 0x59, 0xe4, 0x92, 0x3a, 0xf6, 0x9b,
+  0x3a, 0x09, 0x01, 0x04, 0x1a, 0x02, 0x85, 0x21, 0x58, 0x7a, 0x4a, 0xa6,
+  0x8a, 0x48, 0x2f, 0x19, 0x1a, 0xea, 0x64, 0x90, 0xe7, 0x37, 0x67, 0x1e,
+  0x93, 0xc6, 0x3a, 0x0c, 0x45, 0xa0, 0xa1, 0x83, 0x15, 0xb7, 0x5f, 0xaf,
+  0x67, 0x43, 0x36, 0xfb, 0xe0, 0x04, 0x6e, 0xfa, 0xd6, 0x59, 0x3c, 0x0c,
+  0x98, 0xa5, 0x1d, 0xd8, 0xd8, 0x01, 0xb1, 0xb1, 0xcb, 0xad, 0xcf, 0x13,
+  0xc6, 0xa3, 0x99, 0xaa, 0x50, 0x4f, 0x05, 0xe7, 0x54, 0x0d, 0x25, 0xc9,
+  0x7b, 0xa9, 0xe3, 0x75, 0x3a, 0xf9, 0x6e, 0x18, 0xa2, 0x86, 0x32, 0x39,
+  0x85, 0x73, 0xb3, 0xa6, 0x58, 0x35, 0x22, 0xca, 0x2f, 0xcb, 0x39, 0x1b,
+  0x14, 0x89, 0x91, 0xad, 0xfe, 0xf1, 0x68, 0xbc, 0xb5, 0xf2, 0x96, 0xff,
+  0xc7, 0x4e, 0xd3, 0xcc, 0x73, 0xeb, 0xb2, 0x65, 0x06, 0xdf, 0xac, 0x09,
+  0xba, 0xa3, 0x40, 0x0f, 0x04, 0xf2, 0x96, 0x33, 0x9c, 0xd8, 0xee, 0x89,
+  0x3f, 0x8e, 0x73, 0x2b, 0x14, 0xc9, 0x0e, 0xb9, 0xdb, 0xe1, 0x04, 0xd9,
+  0x4d, 0xcc, 0x67, 0x32, 0xff, 0xb3, 0x78, 0x68, 0xd0, 0x9c, 0xe7, 0xe0,
+  0xb3, 0x2f, 0x8e, 0x98, 0xab, 0x39, 0x38, 0x4e, 0xec, 0x33, 0xfa, 0x7c,
+  0x38, 0x37, 0xe5, 0x0d, 0x64, 0x8a, 0xf7, 0x66, 0x1d, 0x70, 0x23, 0x8a,
+  0x9c, 0x9f, 0xc0, 0xe3, 0xfc, 0x59, 0x03, 0xfa, 0xc1, 0xd3, 0xda, 0x06,
+  0x07, 0x04, 0x08, 0x10, 0x1a, 0x6a, 0x08, 0xf0, 0x60, 0xc5, 0xc5, 0x84,
+  0x8e, 0xf0, 0x65, 0x32, 0xd8, 0x34, 0x40, 0x83, 0xc7, 0xb7, 0xe6, 0x23,
+  0x35, 0x55, 0xb7, 0x18, 0x76, 0x10, 0x04, 0x40, 0x7a, 0x33, 0xb0, 0xf6,
+  0xd6, 0xcb, 0x16, 0xe7, 0xb3, 0xa6, 0xc3, 0xec, 0x3e, 0xc9, 0xf4, 0x00,
+  0x64, 0x2c, 0xb2, 0xcc, 0x84, 0xe6, 0xbc, 0x23, 0x49, 0x28, 0x6a, 0x81,
+  0x06, 0x81, 0x50, 0xb9, 0xf5, 0x36, 0x6b, 0x07, 0x24, 0x7b, 0xbc, 0x53,
+  0x17, 0x78, 0x93, 0x34, 0x8f, 0x1f, 0xec, 0xec, 0xfc, 0x70, 0xc3, 0xe0,
+  0xae, 0x33, 0x16, 0x8b, 0xe2, 0x57, 0xdc, 0xad, 0x69, 0x78, 0xda, 0x7b,
+  0x68, 0xdc, 0xe9, 0x07, 0x0a, 0x08, 0x40, 0x4c, 0xcc, 0x12, 0x87, 0x1a,
+  0xc0, 0x6d, 0x8e, 0xa0, 0x82, 0x06, 0xb8, 0x49, 0x60, 0xb0, 0x28, 0x8e,
+  0xc5, 0xc3, 0x6d, 0xf2, 0xe5, 0xfd, 0x42, 0xcd, 0xf0, 0x7c, 0xa1, 0xe2,
+  0xd8, 0xaa, 0x79, 0xe4, 0xa9, 0x09, 0x8c, 0x8c, 0xa7, 0x50, 0x0c, 0x70,
+  0xda, 0x3c, 0x9f, 0x4c, 0x1c, 0x6a, 0x1a, 0x7e, 0xb0, 0x93, 0x06, 0x1b,
+  0x2c, 0xac, 0x16, 0xfe, 0x66, 0x82, 0xeb, 0x9d, 0xd6, 0x9c, 0xdb, 0xbc,
+  0x79, 0xa6, 0xbe, 0x9b, 0x01, 0x5b, 0x05, 0xde, 0x90, 0x7a, 0xc6, 0x61,
+  0xb1, 0xe0, 0xdf, 0xa9, 0xcd, 0xf4, 0x44, 0x22, 0x07, 0xfe, 0x7d, 0x3e,
+  0xea, 0x2f, 0xad, 0x2f, 0x72, 0x5c, 0x2b, 0xae, 0x21, 0x34, 0x6b, 0x8c,
+  0x7a, 0x95, 0x90, 0x37, 0x12, 0xf2, 0x55, 0xdf, 0x82, 0x82, 0x2c, 0xd2,
+  0xfe, 0x3f, 0xa5, 0xaa, 0x6a, 0x74, 0xab, 0xb4, 0xf4, 0xaa, 0x5d, 0xda,
+  0x7c, 0x5e, 0xd3, 0xc4, 0x00, 0xac, 0x98, 0x3c, 0x39, 0xd2, 0xdc, 0x4d,
+  0x37, 0x76, 0x93, 0xf2, 0x36, 0xfe, 0xd3, 0x74, 0xe0, 0xda, 0x6c, 0x85,
+  0x93, 0x41, 0xea, 0x0a, 0xcc, 0x48, 0x01, 0xce, 0x3c, 0xbb, 0x49, 0x49,
+  0xd7, 0x9b, 0x81, 0x57, 0xb8, 0x15, 0x98, 0x75, 0x83, 0x5b, 0x09, 0x00,
+  0x25, 0x05, 0x96, 0x7f, 0xca, 0xdb, 0x0e, 0xca, 0x28, 0xe9, 0xa0, 0x54,
+  0x3f, 0x19, 0x26, 0x3e, 0x4d, 0x79, 0x0b, 0x8f, 0x34, 0x2d, 0xc8, 0xba,
+  0x31, 0xc5, 0x71, 0x57, 0x40, 0x59, 0x28, 0x27, 0xd9, 0xc1, 0x94, 0x94,
+  0x17, 0x28, 0x92, 0xde, 0xce, 0x37, 0xb4, 0x02, 0x6b, 0x9b, 0xff, 0xda,
+  0x86, 0xd7, 0xf5, 0xeb, 0x3d, 0x67, 0xc7, 0x1c, 0x59, 0xd6, 0xe9, 0x62,
+  0x2b, 0x9c, 0x53, 0x9b, 0x3d, 0x57, 0x20, 0x94, 0x09, 0xa6, 0x64, 0x81,
+  0x52, 0x4a, 0x34, 0xef, 0x7a, 0x4d, 0xff, 0xc2, 0x9b, 0x7b, 0xa9, 0xbc,
+  0x9f, 0xec, 0xa0, 0x92, 0xce, 0x37, 0x94, 0x43, 0x14, 0x52, 0xce, 0x40,
+  0x49, 0x4d, 0x2e, 0x29, 0x6f, 0x5f, 0x54, 0x46, 0x52, 0x62, 0xa1, 0xb5,
+  0xb2, 0x83, 0x3d, 0xaf, 0xc1, 0x0d, 0x29, 0x60, 0x58, 0xe8, 0x01, 0xc4,
+  0xed, 0x03, 0xb9, 0x82, 0x0b, 0x29, 0xb5, 0x15, 0xb6, 0x83, 0x31, 0xe0,
+  0x90, 0x6f, 0xe6, 0x9c, 0x66, 0x1e, 0x69, 0x62, 0xb0, 0x15, 0x95, 0x5a,
+  0xed, 0x78, 0xec, 0x29, 0xa5, 0x4a, 0x17, 0xcc, 0xf3, 0x08, 0x3c, 0x4a,
+  0xad, 0xde, 0x85, 0x37, 0x3e, 0x39, 0x88, 0x82, 0x72, 0x88, 0xee, 0x53,
+  0xfd, 0xd3, 0x72, 0x0a, 0xe6, 0x00, 0x89, 0x64, 0x9a, 0x56, 0x22, 0xf4,
+  0xb4, 0x8d, 0x2c, 0x4c, 0x36, 0xe0, 0x91, 0x42, 0x48, 0xcb, 0x01, 0x60,
+  0x3e, 0x00, 0x55, 0x2b, 0x29, 0x41, 0xa4, 0x48, 0x7b, 0x0a, 0x4b, 0x00,
+  0xa2, 0x5f, 0x29, 0x77, 0x0a, 0xd5, 0x27, 0xe5, 0xbe, 0x92, 0xf6, 0xe3,
+  0xdf, 0x55, 0x31, 0x65, 0x97, 0x52, 0xaa, 0x44, 0xd9, 0x44, 0x19, 0x04,
+  0x10, 0x47, 0x16, 0x3b, 0xd8, 0x83, 0xa7, 0xb7, 0x8f, 0x9f, 0x6f, 0x07,
+  0xa8, 0x47, 0x45, 0x30, 0x38, 0xd4, 0xf9, 0x11, 0xcf, 0xbf, 0xe5, 0x09,
+  0xf0, 0x2c, 0xbf, 0xc1, 0x90, 0x6e, 0x7c, 0x26, 0x3f, 0x13, 0xd2, 0x22,
+  0x04, 0xf6, 0x45, 0x0b, 0x69, 0xa9, 0x6a, 0x63, 0x88, 0x21, 0x06, 0x58,
+  0x0d, 0x29, 0x54, 0xb5, 0x45, 0x95, 0x9f, 0xe5, 0x84, 0x29, 0x52, 0x15,
+  0xda, 0x8a, 0x4a, 0x01, 0x54, 0x3e, 0x45, 0x4b, 0xa5, 0x46, 0xa5, 0xa5,
+  0xf9, 0xaf, 0xac, 0x6a, 0xd2, 0x84, 0x50, 0x63, 0x72, 0x05, 0x68, 0x0c,
+  0xca, 0x5b, 0xa7, 0xd3, 0xc5, 0x40, 0xa9, 0x65, 0x07, 0xbf, 0xaa, 0xc1,
+  0x77, 0x9f, 0x70, 0x82, 0x6a, 0x44, 0x2c, 0x1e, 0x1b, 0xe6, 0x5c, 0x1d,
+  0x71, 0x6e, 0x9d, 0xab, 0x46, 0xb4, 0x81, 0x2e, 0x17, 0xb4, 0x54, 0x1a,
+  0xf5, 0x5e, 0xe2, 0x58, 0xe0, 0xd6, 0xea, 0x09, 0xa5, 0x68, 0xb6, 0x04,
+  0x31, 0xa3, 0x54, 0x28, 0x30, 0x53, 0xc0, 0x43, 0x84, 0x08, 0xc1, 0x44,
+  0x14, 0x64, 0x01, 0x14, 0x38, 0x11, 0x03, 0x0a, 0x7a, 0xc3, 0x99, 0x25,
+  0x0e, 0xcf, 0x06, 0xd4, 0x3e, 0x34, 0xfd, 0x0e, 0x39, 0xe0, 0x4c, 0xe0,
+  0x4c, 0x48, 0xf1, 0x98, 0x08, 0x04, 0xb9, 0xd0, 0x47, 0xbc, 0x80, 0x87,
+  0x70, 0x97, 0x19, 0x1d, 0x2b, 0x9f, 0x0f, 0x6e, 0x47, 0x21, 0xec, 0x70,
+  0x04, 0xd3, 0xd2, 0x47, 0x28, 0xff, 0x3d, 0xa4, 0x3e, 0x40, 0x9a, 0xba,
+  0xc2, 0x4f, 0x24, 0x07, 0x86, 0x79, 0xa8, 0xf3, 0xf5, 0xa2, 0x34, 0xdf,
+  0x56, 0xc6, 0x66, 0x64, 0x04, 0x0c, 0x22, 0xa0, 0x00, 0x73, 0x93, 0x4a,
+  0x30, 0x16, 0x0c, 0x48, 0x02, 0x49, 0x53, 0xd3, 0xde, 0x03, 0x63, 0x44,
+  0xc4, 0x58, 0x1a, 0x0a, 0x18, 0x80, 0x01, 0x00, 0x03, 0x02, 0x06, 0x00,
+  0x03, 0x8c, 0x05, 0x00, 0x00, 0x04, 0x30, 0x01, 0x00, 0x0c, 0x00, 0xc0,
+  0x90, 0xc4, 0x03, 0x03, 0xd0, 0xad, 0xa1, 0x76, 0x51, 0xd2, 0xa5, 0xf6,
+  0x80, 0xdc, 0x99, 0x4b, 0xa5, 0x31, 0x61, 0x8e, 0xde, 0xea, 0x35, 0xae,
+  0x32, 0x26, 0x35, 0xf0, 0xdc, 0x90, 0xea, 0x00, 0x9f, 0x9b, 0x28, 0x5f,
+  0x3a, 0x6e, 0xdb, 0x58, 0x39, 0x06, 0xec, 0xc2, 0xda, 0x4e, 0x6e, 0x3a,
+  0xa0, 0x3b, 0x6c, 0xab, 0x4c, 0x62, 0xd7, 0x15, 0xb5, 0x5a, 0xa6, 0x01,
+  0xa8, 0xbb, 0xf9, 0x7b, 0x01, 0xec, 0x76, 0xef, 0x4b, 0xca, 0x3e, 0x98,
+  0x7e, 0xc6, 0x93, 0xe7, 0xdd, 0xee, 0x80, 0x55, 0x93, 0xa4, 0xc4, 0xcb,
+  0xc2, 0x12, 0x64, 0xcd, 0xca, 0xc7, 0x60, 0x8c, 0x7d, 0x7a, 0x24, 0x0e,
+  0xdf, 0xa9, 0xbc, 0x91, 0x5a, 0x04, 0x03, 0xf0, 0xae, 0xd3, 0x69, 0x51,
+  0x6c, 0x8f, 0x04, 0xb1, 0x92, 0x18, 0x80, 0xe4, 0x0c, 0xa8, 0xf3, 0x0b,
+  0x28, 0xbb, 0xad, 0xe3, 0x5f, 0x74, 0x28, 0x64, 0x3c, 0xa0, 0x9f, 0xd3,
+  0xb2, 0x0e, 0xcb, 0xc8, 0xde, 0x0b, 0xed, 0x66, 0xf8, 0x52, 0xd4, 0x80,
+  0x3d, 0x4e, 0x13, 0x8d, 0xef, 0x76, 0x01, 0x59, 0x03, 0x0d, 0xe8, 0x4e,
+  0xec, 0xd7, 0x96, 0x5e, 0x76, 0x70, 0x37, 0xe6, 0xed, 0x46, 0x3c, 0x0b,
+  0x84, 0xd7, 0x64, 0xde, 0x9a, 0x84, 0xcd, 0x87, 0x1e, 0xf1, 0x3c, 0xea,
+  0x4c, 0x69, 0x8f, 0xfc, 0xff, 0x74, 0xe6, 0xdf, 0x31, 0xf6, 0x2e, 0x96,
+  0x0f, 0xe8, 0x94, 0x18, 0x8c, 0xc3, 0x71, 0x03, 0xc3, 0x76, 0x92, 0x6a,
+  0x08, 0x7b, 0x3f, 0xd5, 0x03, 0xfa, 0xb5, 0xd5, 0xbb, 0x15, 0xa0, 0xa7,
+  0x9f, 0xc4, 0x1e, 0x80, 0x66, 0x2c, 0x6c, 0x6b, 0xc0, 0x46, 0x8e, 0xfa,
+  0x12, 0x4a, 0x35, 0x80, 0xdd, 0xc6, 0xa3, 0x21, 0xae, 0x6e, 0xd8, 0xa7,
+  0xb3, 0xeb, 0xf8, 0xb8, 0x73, 0xdb, 0xf4, 0x61, 0x75, 0x58, 0x3e, 0xa0,
+  0x09, 0x0b, 0xdf, 0x4d, 0x6e, 0x5b, 0xf2, 0xd6, 0x9b, 0xb2, 0xfa, 0x6c,
+  0x13, 0xd5, 0x4e, 0xbd, 0x08, 0x1d, 0xa1, 0xd9, 0xaa, 0xcd, 0x5a, 0xe2,
+  0xd8, 0x85, 0x3d, 0x80, 0x54, 0xf4, 0x0c, 0xd0, 0x1f, 0x68, 0xaa, 0x3d,
+  0xe2, 0xd3, 0x2a, 0xfc, 0x58, 0xe6, 0xf9, 0xd4, 0x04, 0xb2, 0x28, 0xbf,
+  0xd7, 0xaf, 0x6f, 0xeb, 0x5b, 0xa4, 0x0c, 0xb8, 0x32, 0x60, 0x1d, 0x7b,
+  0x71, 0x02, 0xec, 0x94, 0x6f, 0x3b, 0x93, 0xf3, 0x49, 0x53, 0x8a, 0x70,
+  0x05, 0xdb, 0x9d, 0x11, 0xf3, 0x8e, 0xf0, 0x62, 0x80, 0xa4, 0x33, 0x20,
+  0x23, 0x97, 0x01, 0x88, 0x0c, 0x01, 0x09, 0xc6, 0xd0, 0x32, 0x29, 0xe4,
+  0x2e, 0x40, 0x22, 0x18, 0xac, 0x08, 0xd0, 0x25, 0x31, 0xe0, 0x7a, 0xb3,
+  0xb0, 0x30, 0x40, 0x08, 0xb3, 0x0b, 0x13, 0xb9, 0xeb, 0x22, 0x75, 0xf5,
+  0x4f, 0x09, 0x82, 0x39, 0xe0, 0xa6, 0xe0, 0x39, 0xc0, 0xdb, 0xfd, 0x6e,
+  0x2e, 0xd1, 0x28, 0x64, 0x98, 0x59, 0x38, 0x25, 0x06, 0xdc, 0x6a, 0x96,
+  0x29, 0xf8, 0xd8, 0xad, 0xd1, 0xeb, 0x2e, 0xe7, 0xce, 0x85, 0x77, 0xa9,
+  0x8d, 0x3d, 0xc9, 0x34, 0xd2, 0xd4, 0x32, 0xcf, 0x18, 0x00, 0x34, 0xce,
+  0x61, 0xd0, 0x81, 0x36, 0x86, 0x2e, 0x03, 0x6e, 0x19, 0xdb, 0xfe, 0xfe,
+  0x9b, 0x03, 0x9c, 0x07, 0xe8, 0x8e, 0x76, 0x00, 0xea, 0x10, 0x71, 0x40,
+  0x5c, 0x5c, 0xa3, 0xdd, 0xc9, 0x0c, 0x0e, 0xe1, 0xbb, 0xf6, 0xc3, 0x45,
+  0x7b, 0xf8, 0x17, 0x34, 0x14, 0x83, 0xd7, 0xc8, 0x35, 0x1f, 0x4b, 0x06,
+  0xe8, 0xf0, 0x59, 0xac, 0xc8, 0x48, 0x5a, 0x62, 0xd3, 0x06, 0x89, 0x6d,
+  0x55, 0x01, 0xbb, 0xeb, 0x0c, 0x5a, 0x50, 0x93, 0x8f, 0xae, 0xe8, 0x1f,
+  0x50, 0xd9, 0xe7, 0xbd, 0xd8, 0x33, 0x99, 0x96, 0xbe, 0x74, 0x6b, 0x10,
+  0x8d, 0x01, 0xf1, 0x3c, 0xef, 0x31, 0x7a, 0x6d, 0x14, 0x4b, 0x32, 0x03,
+  0x08, 0x92, 0x5b, 0x8e, 0x67, 0x46, 0xef, 0x8e, 0xc3, 0x01, 0x28, 0x2d,
+  0x37, 0x09, 0xb2, 0xe3, 0x80, 0xb9, 0x60, 0xbc, 0xcb, 0xba, 0x5c, 0x2b,
+  0xdb, 0xc5, 0xa1, 0x87, 0xba, 0x03, 0x7c, 0x71, 0x55, 0xc4, 0xd4, 0xf7,
+  0xa3, 0xd9, 0xe9, 0x0e, 0xb0, 0xf2, 0xf7, 0xc3, 0xe3, 0xaf, 0x06, 0x67,
+  0x27, 0x4f, 0x38, 0x6e, 0x0f, 0x68, 0xae, 0x51, 0xe3, 0xc1, 0x67, 0xd0,
+  0xc1, 0x67, 0x2a, 0x9a, 0x1c, 0x10, 0x7f, 0xef, 0x9e, 0xee, 0x6e, 0x7e,
+  0x6b, 0xb6, 0xd0, 0x63, 0x8a, 0x9c, 0x15, 0x98, 0x66, 0x25, 0x8d, 0xd3,
+  0x0f, 0x78, 0x55, 0xf4, 0x01, 0x08, 0xf5, 0x22, 0xb7, 0x7f, 0x55, 0x26,
+  0xd1, 0x72, 0x00, 0x96, 0x97, 0x67, 0x3f, 0xbb, 0x9b, 0x3d, 0x83, 0x99,
+  0xbc, 0xd1, 0x60, 0xde, 0x2e, 0x02, 0xb8, 0xb6, 0x2a, 0x0c, 0x56, 0x61,
+  0x68, 0x0c, 0xfd, 0xd1, 0xe0, 0xdb, 0x75, 0x2e, 0x21, 0x77, 0x94, 0xea,
+  0xd8, 0x8c, 0x9a, 0xbd, 0x21, 0xaa, 0x00, 0x9a, 0xb3, 0x37, 0x01, 0x23,
+  0xbb, 0x2d, 0xf7, 0x9f, 0x1c, 0xa1, 0x2e, 0x4a, 0xdb, 0x45, 0xff, 0x21,
+  0xe9, 0xd2, 0xb5, 0x0c, 0xfb, 0x3c, 0x01, 0x03, 0x3f, 0xb1, 0x3f, 0x08,
+  0xd9, 0xb9, 0x8b, 0xc8, 0x47, 0x8c, 0x19, 0x66, 0xb1, 0x2b, 0xac, 0x08,
+  0x75, 0x57, 0x77, 0xb2, 0xa7, 0x0c, 0x7e, 0x88, 0x1d, 0x97, 0x1e, 0x80,
+  0x88, 0xeb, 0x03, 0xd6, 0xfd, 0xec, 0xbf, 0xa9, 0xe1, 0x60, 0x96, 0xc6,
+  0x07, 0x87, 0x98, 0x7e, 0x68, 0xdc, 0xda, 0x6e, 0x58, 0x42, 0xda, 0xc0,
+  0x8a, 0xb1, 0xf1, 0x7a, 0x3e, 0xa7, 0xe3, 0x68, 0x47, 0x85, 0x3a, 0x8f,
+  0x08, 0xc6, 0x3a, 0x8d, 0xae, 0x17, 0x8a, 0x79, 0x21, 0x18, 0xf7, 0xbc,
+  0x67, 0x87, 0xb2, 0x2e, 0x1b, 0x00, 0xa1, 0x9d, 0xa7, 0x01, 0x08, 0x9c,
+  0x54, 0xe8, 0xaa, 0x67, 0xb1, 0xf2, 0x11, 0xd1, 0x80, 0x9a, 0x7a, 0xc0,
+  0x68, 0x82, 0x93, 0x16, 0x0d, 0xcf, 0x0f, 0x55, 0x03, 0x72, 0xe5, 0x01,
+  0x19, 0x4d, 0xab, 0xca, 0xbc, 0x28, 0xfa, 0x1d, 0x89, 0xc0, 0xd7, 0x34,
+  0x00, 0x76, 0x7b, 0x84, 0x7e, 0x5a, 0xb1, 0xc4, 0x1d, 0xc0, 0x90, 0xe9,
+  0x01, 0x48, 0xfc, 0x80, 0x18, 0x00, 0xd1, 0x7c, 0x07, 0x2c, 0x4b, 0x03,
+  0x68, 0xe3, 0xbe, 0x5b, 0x0d, 0xf8, 0x3e, 0x8b, 0x07, 0x04, 0x45, 0x06,
+  0xdc, 0xe0, 0xef, 0x01, 0xa8, 0x55, 0xec, 0x61, 0x5d, 0x5d, 0x7b, 0x22,
+  0x35, 0xe1, 0x83, 0x79, 0x80, 0x00, 0x36, 0x00, 0x79, 0x9a, 0xcc, 0x82,
+  0xfc, 0x8d, 0x5f, 0x0e, 0x80, 0xae, 0xfa, 0x01, 0xe8, 0x24, 0x65, 0x01,
+  0x41, 0x31, 0x11, 0xaa, 0xad, 0xfa, 0x1b, 0x80, 0x0d, 0xc8, 0xa2, 0x26,
+  0x9c, 0x21, 0x5f, 0x43, 0x0c, 0x20, 0xa8, 0x2c, 0x24, 0xf3, 0x3e, 0xa2,
+  0xf0, 0xb2, 0x01, 0xe8, 0x02, 0x00, 0x5a, 0x40, 0x78, 0x8d, 0x53, 0x1c,
+  0x80, 0x32, 0x80, 0xef, 0xc0, 0x03, 0x0f, 0x9b, 0x0f, 0x18, 0x9d, 0x9b,
+  0x5f, 0x65, 0x5f, 0xc6, 0xf2, 0x48, 0xf0, 0x77, 0xd9, 0x80, 0x65, 0x6b,
+  0xbc, 0x2c, 0xc3, 0x2a, 0xf9, 0x75, 0x00, 0x3a, 0x5f, 0xee, 0x59, 0x6a,
+  0x78, 0x6a, 0x2a, 0x6f, 0xd5, 0xa1, 0xbb, 0xf2, 0x38, 0x60, 0xb2, 0x9b,
+  0x52, 0x2d, 0xb0, 0x69, 0x7d, 0xed, 0x00, 0xd4, 0x7f, 0x17, 0xfa, 0x1e,
+  0x3a, 0x62, 0x94, 0x19, 0xc6, 0x2b, 0x69, 0x1b, 0x80, 0x98, 0x55, 0xf4,
+  0xb0, 0x1d, 0x80, 0x6a, 0xab, 0x77, 0x04, 0x97, 0xc7, 0x5a, 0xc9, 0xe7,
+  0x00, 0xba, 0x30, 0xcc, 0xe1, 0xc3, 0x87, 0x90, 0xe1, 0x0e, 0xa3, 0x3e,
+  0x0d, 0xb0, 0xe1, 0x7c, 0x7a, 0x18, 0xf6, 0x93, 0x1c, 0x4e, 0x4c, 0x29,
+  0xbe, 0x58, 0x42, 0x4b, 0xe8, 0x01, 0x2a, 0xd7, 0x18, 0x2d, 0x8d, 0x04,
+  0x0c, 0x8a, 0x3d, 0xc9, 0x54, 0x94, 0x7d, 0xc2, 0x20, 0xb3, 0x3e, 0x43,
+  0x41, 0x99, 0x46, 0x27, 0xba, 0x96, 0x99, 0xf7, 0xf1, 0x99, 0x56, 0x06,
+  0x8f, 0x83, 0xe6, 0x05, 0x63, 0x92, 0x0d, 0x40, 0x88, 0x2e, 0x57, 0xbf,
+  0xbe, 0x35, 0x7c, 0x1f, 0xae, 0x8d, 0xf6, 0x1d, 0xc1, 0xed, 0x01, 0xfd,
+  0x39, 0x20, 0x64, 0xf3, 0x2b, 0xf5, 0xda, 0x1b, 0xb4, 0x47, 0x2b, 0xa8,
+  0x57, 0x9a, 0xb0, 0x32, 0xaa, 0x44, 0x19, 0xdb, 0x23, 0xb9, 0x82, 0x3b,
+  0x11, 0x3b, 0x5b, 0x10, 0xb5, 0x12, 0xc1, 0x99, 0x68, 0xf2, 0x49, 0xe0,
+  0x0f, 0x60, 0x9c, 0x18, 0x55, 0xb6, 0x60, 0xd9, 0x09, 0x61, 0xee, 0xa1,
+  0x43, 0x67, 0x48, 0x8b, 0x05, 0x9f, 0x10, 0x5f, 0x6a, 0x55, 0x45, 0x57,
+  0x07, 0x58, 0x12, 0x03, 0x10, 0xfd, 0x02, 0x92, 0xc9, 0xf6, 0x0a, 0x95,
+  0xd9, 0x84, 0x39, 0xcf, 0xca, 0x31, 0x5b, 0x02, 0x94, 0x0d, 0xd0, 0xd1,
+  0x82, 0x1c, 0x94, 0x12, 0x10, 0x5b, 0x15, 0xc6, 0xb1, 0x89, 0x9e, 0x39,
+  0xe9, 0x37, 0x99, 0xf2, 0x91, 0x5d, 0xc0, 0xbf, 0xde, 0x49, 0x5a, 0x7e,
+  0x14, 0xe2, 0xf6, 0xce, 0x65, 0xc5, 0xed, 0x64, 0x1b, 0x00, 0xfd, 0x63,
+  0x81, 0xcc, 0x88, 0x8f, 0x65, 0x03, 0x90, 0x94, 0x07, 0x94, 0xd5, 0xe9,
+  0xa6, 0xa0, 0x6e, 0xe9, 0x8d, 0x6d, 0x15, 0xbd, 0x03, 0x56, 0x67, 0x28,
+  0x35, 0xa3, 0xc7, 0x19, 0x2e, 0xca, 0x95, 0xb2, 0xe9, 0x86, 0x52, 0xef,
+  0x80, 0x32, 0x33, 0x4a, 0xb3, 0x22, 0x14, 0x1b, 0x4e, 0xa6, 0x0e, 0xa0,
+  0x3c, 0xeb, 0x07, 0x83, 0xc3, 0xc1, 0xa2, 0x77, 0xc0, 0x96, 0xe7, 0x15,
+  0xb8, 0x58, 0x11, 0x06, 0x99, 0x01, 0x4b, 0x77, 0x40, 0xa3, 0x53, 0xde,
+  0x3a, 0xd1, 0x18, 0xbf, 0x5a, 0x2f, 0x4b, 0xe8, 0xdd, 0x20, 0x39, 0x3a,
+  0x40, 0xf5, 0x50, 0x77, 0x04, 0x67, 0xce, 0x92, 0x09, 0x09, 0xd8, 0xcf,
+  0x1e, 0x02, 0x66, 0x5e, 0xe0, 0x34, 0x21, 0x4f, 0x03, 0xe4, 0x5e, 0x60,
+  0x35, 0xcb, 0x83, 0xb4, 0x64, 0x2b, 0xe3, 0xfa, 0xd6, 0x36, 0xb9, 0xa3,
+  0x03, 0x42, 0x42, 0x83, 0xc2, 0xd6, 0x3a, 0x33, 0xde, 0x8d, 0x05, 0xb4,
+  0x03, 0x76, 0x9c, 0x17, 0x25, 0x5b, 0x4c, 0xcd, 0x00, 0x75, 0x2d, 0xde,
+  0x3c, 0x40, 0xba, 0xf1, 0x80, 0x78, 0xfa, 0x00, 0x68, 0xf8, 0x9d, 0x6b,
+  0x40, 0xe4, 0x95, 0xfd, 0xa0, 0xb8, 0xb1, 0xb4, 0x5c, 0x19, 0x5a, 0x09,
+  0x84, 0xe4, 0x45, 0x60, 0xc0, 0x05, 0xbd, 0xf3, 0x1b, 0xed, 0xb0, 0x58,
+  0x3c, 0x57, 0x99, 0xb1, 0x0b, 0x9b, 0x79, 0x62, 0xf6, 0x90, 0xf2, 0x01,
+  0x9b, 0x85, 0xb5, 0x05, 0x04, 0x4e, 0xa7, 0x01, 0xbb, 0x40, 0x5c, 0xb7,
+  0x24, 0x10, 0x3e, 0x61, 0x02, 0x97, 0x37, 0x13, 0x89, 0xaf, 0x4b, 0x78,
+  0x4b, 0x5b, 0x30, 0x96, 0x5a, 0x90, 0xc0, 0xa1, 0x76, 0x6c, 0x9c, 0xcc,
+  0xc7, 0xa8, 0x83, 0x62, 0x76, 0x76, 0x24, 0x56, 0x4f, 0x5e, 0x25, 0xdb,
+  0xd5, 0xc5, 0xdf, 0x06, 0x78, 0xe1, 0x14, 0x1b, 0x1d, 0x35, 0x92, 0x8c,
+  0xc0, 0xac, 0xad, 0xc3, 0x69, 0xb3, 0xd4, 0xf1, 0x1b, 0x72, 0xf5, 0x72,
+  0x20, 0x58, 0x1d, 0x1b, 0x46, 0x95, 0x98, 0x44, 0x0f, 0x8c, 0x4d, 0xe3,
+  0x36, 0x02, 0x11, 0xcf, 0x37, 0x6a, 0x40, 0xb1, 0x1c, 0xa3, 0x8a, 0x62,
+  0x9b, 0x4d, 0x1f, 0x09, 0xcb, 0x0a, 0x54, 0x33, 0xf3, 0x7f, 0xbd, 0x06,
+  0x58, 0x7c, 0x6b, 0x58, 0x57, 0x02, 0xba, 0x2e, 0x51, 0x4a, 0x0e, 0x98,
+  0x5c, 0x30, 0x96, 0x41, 0x75, 0x44, 0xdf, 0xa9, 0x27, 0xc5, 0x51, 0x62,
+  0x9d, 0x3f, 0x68, 0x4e, 0x4e, 0x86, 0x6f, 0xe5, 0x4d, 0xed, 0xd5, 0xcd,
+  0xae, 0xb6, 0x81, 0x51, 0xa4, 0xf1, 0x44, 0x5b, 0x0a, 0xf0, 0xca, 0x32,
+  0x6d, 0x47, 0x1f, 0x24, 0xd8, 0xe3, 0x65, 0xec, 0x29, 0xd6, 0xa9, 0xb2,
+  0x6e, 0x75, 0xb3, 0x4b, 0xe5, 0xbe, 0x09, 0x0c, 0x80, 0x25, 0x91, 0x36,
+  0x24, 0x64, 0x9a, 0x07, 0x10, 0xdd, 0xeb, 0xe4, 0xda, 0xcc, 0x9b, 0x0f,
+  0x78, 0xb6, 0x7f, 0xea, 0x80, 0x31, 0x1e, 0xf0, 0x07, 0xf4, 0x56, 0x72,
+  0xa1, 0xe3, 0x53, 0xa0, 0x89, 0x5e, 0x71, 0x9b, 0xc1, 0xd2, 0xab, 0xda,
+  0x8e, 0xba, 0x0c, 0x47, 0xe6, 0x00, 0x61, 0x25, 0x77, 0xd5, 0x58, 0x27,
+  0x9c, 0x91, 0x55, 0x8c, 0x80, 0xc1, 0x7f, 0x80, 0x14, 0x4b, 0x76, 0xda,
+  0xd9, 0x74, 0x32, 0x5b, 0x35, 0x7c, 0xef, 0x5e, 0x8b, 0x5b, 0xf9, 0x26,
+  0x74, 0x56, 0xa8, 0xc1, 0x76, 0x8c, 0x96, 0xd6, 0xa1, 0xb6, 0x0e, 0x2b,
+  0xc7, 0xbf, 0x80, 0x8a, 0x76, 0xe1, 0xfe, 0xf1, 0x18, 0x72, 0x77, 0x73,
+  0x80, 0x1a, 0x2f, 0x62, 0x81, 0xd9, 0x49, 0x3a, 0x91, 0xda, 0xfb, 0x4a,
+  0xb9, 0x03, 0xfc, 0x34, 0x63, 0xc4, 0x38, 0x3a, 0x9a, 0xa1, 0x6e, 0x76,
+  0x80, 0x5d, 0x82, 0xf6, 0x3b, 0xc0, 0x6f, 0x4b, 0x18, 0xe0, 0x34, 0x3b,
+  0xf2, 0xac, 0x9d, 0xbe, 0x01, 0x2b, 0x64, 0x3d, 0x00, 0xf1, 0xdb, 0x3d,
+  0x6f, 0x56, 0x04, 0x92, 0x06, 0x38, 0xde, 0x16, 0xa9, 0xf9, 0x94, 0x6f,
+  0x6e, 0xaa, 0x89, 0x5e, 0x96, 0xe1, 0xb7, 0x0a, 0xa2, 0xf7, 0x1b, 0xdf,
+  0x21, 0xeb, 0x0e, 0x85, 0x4e, 0x9c, 0x1a, 0x11, 0xd7, 0xda, 0x69, 0xea,
+  0x2e, 0xce, 0xa1, 0x64, 0x03, 0x64, 0xc5, 0xdf, 0xde, 0xeb, 0x8c, 0x1f,
+  0x91, 0xa1, 0xb0, 0x81, 0xd5, 0xcc, 0x07, 0x48, 0x79, 0x76, 0xce, 0x06,
+  0xb8, 0xb1, 0x22, 0xee, 0x84, 0x86, 0xac, 0xb2, 0x37, 0x84, 0x11, 0xe4,
+  0xfc, 0x52, 0x00, 0x50, 0x2c, 0x50, 0x2f, 0xd1, 0x51, 0x19, 0x13, 0x1c,
+  0x9c, 0x46, 0x60, 0x4c, 0xcf, 0xf4, 0x3d, 0x05, 0xa8, 0xe3, 0xfc, 0x60,
+  0x9a, 0xc6, 0xbe, 0xd9, 0x13, 0xe2, 0x56, 0xed, 0x2e, 0xe0, 0x80, 0x66,
+  0x81, 0x5b, 0xf8, 0x51, 0x00, 0xf1, 0xf8, 0x2c, 0x0e, 0xf8, 0xba, 0x20,
+  0xae, 0xb2, 0x0b, 0x9e, 0xab, 0x7a, 0x7a, 0xc0, 0x48, 0xff, 0xc3, 0xb5,
+  0x97, 0x39, 0xc1, 0x71, 0x1d, 0xc0, 0xa3, 0x39, 0x18, 0x8e, 0x0c, 0x56,
+  0xb3, 0xe0, 0x51, 0x03, 0xde, 0xee, 0x28, 0xab, 0xf1, 0xb2, 0xb7, 0x4c,
+  0xcd, 0x8f, 0xaa, 0x2b, 0xa3, 0xdc, 0x26, 0xbd, 0xe0, 0xb6, 0x58, 0xef,
+  0x14, 0xa4, 0x10, 0x7e, 0x3a, 0x0a, 0xc0, 0xdb, 0x19, 0x16, 0x64, 0xc2,
+  0x77, 0x80, 0xbb, 0x7f, 0x84, 0x60, 0x1b, 0xc0, 0x5c, 0x49, 0x7c, 0x4d,
+  0xf2, 0xb2, 0x4a, 0x65, 0xf6, 0x00, 0xad, 0x7c, 0xc8, 0xce, 0x41, 0x6a,
+  0xaa, 0xa9, 0x45, 0x60, 0xf2, 0x06, 0x54, 0x3e, 0xe0, 0x6f, 0xfe, 0x16,
+  0x66, 0xf6, 0xb3, 0x1b, 0x07, 0x44, 0xb5, 0xaf, 0x54, 0xcb, 0x2a, 0x3d,
+  0xd2, 0xd8, 0xe8, 0x37, 0x2f, 0xc9, 0x6e, 0xcf, 0x80, 0x2d, 0x1b, 0x09,
+  0x71, 0x7d, 0x99, 0x9d, 0x5a, 0x4d, 0x3b, 0xb1, 0xd6, 0x61, 0x90, 0xe5,
+  0x55, 0xf4, 0xdd, 0xe2, 0x9d, 0xf5, 0xb1, 0x85, 0x79, 0xba, 0x3b, 0xd9,
+  0x1d, 0xd9, 0x50, 0xe7, 0xd5, 0xa3, 0x2b, 0xb9, 0xdf, 0xec, 0x07, 0x87,
+  0xc5, 0x11, 0x30, 0xba, 0x0e, 0xdb, 0x86, 0xa5, 0xb7, 0x24, 0xe4, 0x51,
+  0x23, 0x66, 0xb2, 0xd0, 0x62, 0xa6, 0xe6, 0x4b, 0x0e, 0x98, 0x72, 0x26,
+  0x30, 0x36, 0xec, 0x75, 0xdf, 0x5f, 0xc8, 0xc6, 0xf7, 0x91, 0xb4, 0x3f,
+  0x7b, 0x40, 0xb3, 0x56, 0x72, 0x1c, 0x50, 0x7e, 0x8a, 0x3c, 0xdb, 0xd6,
+  0x3f, 0x23, 0x60, 0xd7, 0x63, 0xce, 0x00, 0xd2, 0x66, 0x01, 0xed, 0x5a,
+  0xf9, 0xe9, 0x63, 0x2e, 0x82, 0x2b, 0x06, 0x67, 0x20, 0x97, 0x01, 0xce,
+  0x58, 0x05, 0x50, 0x35, 0x32, 0x66, 0x2e, 0x3a, 0x05, 0xce, 0x44, 0x8d,
+  0x9f, 0xdc, 0x64, 0xab, 0x61, 0x7d, 0xeb, 0x1b, 0x1c, 0xe3, 0x59, 0xc5,
+  0x73, 0x76, 0xab, 0x33, 0x3d, 0x32, 0xc2, 0xb4, 0xde, 0xb6, 0xce, 0x66,
+  0x22, 0x59, 0x13, 0x87, 0x09, 0xf1, 0x0e, 0xa8, 0xd1, 0x0c, 0x68, 0x7b,
+  0xd2, 0x05, 0x89, 0xa3, 0xaf, 0x04, 0x66, 0xa7, 0xb8, 0xcf, 0x69, 0x90,
+  0xe8, 0x31, 0x93, 0x03, 0x68, 0x59, 0x37, 0xe6, 0x11, 0xb4, 0x93, 0xd2,
+  0x00, 0x1c, 0xeb, 0xa2, 0xa8, 0x6f, 0xb1, 0xd4, 0x98, 0xb4, 0xaa, 0x73,
+  0xd1, 0x5a, 0x8a, 0x5d, 0xb9, 0x38, 0x20, 0x3f, 0x34, 0x2b, 0xb4, 0xf1,
+  0xc5, 0x3e, 0x77, 0xed, 0x85, 0xd1, 0x07, 0x3c, 0x38, 0x60, 0x4c, 0xda,
+  0x01, 0x17, 0xa0, 0xe9, 0x1d, 0xb6, 0x6b, 0x74, 0xff, 0x1b, 0xfb, 0x72,
+  0x80, 0xaa, 0x05, 0xff, 0xb4, 0x20, 0x35, 0x57, 0x4b, 0x6d, 0x50, 0x3d,
+  0x4f, 0x29, 0xa7, 0x4b, 0x9b, 0xc6, 0x7f, 0x05, 0x7b, 0xfb, 0x74, 0xc4,
+  0x80, 0x03, 0x8c, 0x0c, 0x88, 0xde, 0xee, 0x9f, 0x36, 0x3e, 0xbd, 0x6f,
+  0x38, 0x71, 0x4d, 0x5e, 0x7a, 0xf0, 0xd2, 0x20, 0x49, 0x5f, 0xae, 0xc6,
+  0x1b, 0x79, 0xf8, 0xa1, 0x9c, 0x26, 0xd3, 0x66, 0xb2, 0x6e, 0x2f, 0xd9,
+  0x03, 0x37, 0xdd, 0xe0, 0xe1, 0x07, 0x67, 0xa7, 0x38, 0x08, 0x5c, 0x1a,
+  0x15, 0x7c, 0xac, 0xdd, 0xd8, 0xed, 0x97, 0xc5, 0x64, 0xff, 0xa1, 0x57,
+  0xb4, 0x07, 0x97, 0x71, 0x51, 0xb1, 0x86, 0xb6, 0x01, 0xea, 0x1e, 0xb5,
+  0xbe, 0x22, 0x9e, 0xe9, 0x05, 0xec, 0x01, 0xa4, 0x4f, 0x97, 0x1b, 0xe0,
+  0x6d, 0xeb, 0xfa, 0x3e, 0xd9, 0x83, 0xfd, 0x04, 0x1a, 0x10, 0x1b, 0x3d,
+  0x00, 0xc4, 0x49, 0x93, 0x84, 0x57, 0x26, 0xa0, 0x9b, 0x4c, 0x86, 0xeb,
+  0x80, 0xcc, 0xd0, 0xc4, 0x01, 0x8d, 0x7e, 0x24, 0xd8, 0x09, 0x13, 0x85,
+  0x6e, 0x08, 0x71, 0x1b, 0x18, 0x98, 0xa1, 0x6a, 0xcd, 0x4d, 0x00, 0x36,
+  0x7f, 0x80, 0x05, 0x88, 0x24, 0x64, 0x8a, 0xf4, 0x11, 0xfb, 0x89, 0x59,
+  0x8d, 0x46, 0xe1, 0x02, 0xdd, 0xcd, 0x24, 0x0a, 0x53, 0xc3, 0x01, 0x8d,
+  0xc6, 0x8c, 0xb5, 0xee, 0xdd, 0x74, 0x25, 0xbb, 0x63, 0xab, 0x3c, 0xee,
+  0xfc, 0xad, 0xb8, 0xf3, 0x1e, 0x80, 0x0a, 0x20, 0x4e, 0x49, 0x6a, 0x29,
+  0xf5, 0x39, 0xae, 0xf2, 0xde, 0x57, 0x0b, 0x1d, 0x67, 0xf3, 0x23, 0x24,
+  0x94, 0x87, 0xdb, 0x8d, 0xb8, 0x08, 0x63, 0x05, 0x29, 0xc6, 0x57, 0xbb,
+  0x3f, 0x84, 0x2e, 0xee, 0xd0, 0x57, 0xd4, 0x85, 0xb7, 0xa5, 0x76, 0xdc,
+  0xcd, 0x05, 0xc8, 0x2c, 0xbe, 0xb1, 0x87, 0x0a, 0x4c, 0x60, 0x0c, 0x9a,
+  0x94, 0x43, 0x55, 0x77, 0x1a, 0xcf, 0x80, 0xe8, 0xe2, 0x01, 0x3f, 0xb6,
+  0xe1, 0xdc, 0xee, 0xe1, 0xd2, 0xb4, 0x5a, 0xe6, 0x07, 0x0b, 0xd5, 0x3d,
+  0xa2, 0xe7, 0xca, 0xd8, 0x2e, 0x8b, 0x8f, 0x29, 0xb9, 0x3d, 0x36, 0x3e,
+  0xd2, 0xf5, 0xb2, 0x1e, 0xf2, 0xac, 0xb3, 0x48, 0x34, 0xb1, 0xed, 0x76,
+  0x67, 0xc0, 0xd6, 0xdb, 0xf4, 0x21, 0x60, 0x75, 0xe2, 0xf3, 0x5d, 0x56,
+  0xac, 0xb9, 0x87, 0x5d, 0x63, 0xf8, 0x90, 0x03, 0x39, 0x0d, 0x51, 0xc3,
+  0x4c, 0x4c, 0x68, 0xfa, 0x80, 0xc0, 0xca, 0x80, 0x8a, 0xb9, 0x2e, 0x08,
+  0x06, 0x9c, 0x09, 0x5e, 0x9c, 0x4c, 0x1c, 0xa8, 0xbf, 0xfb, 0x20, 0xeb,
+  0x82, 0x0c, 0x30, 0x50, 0x8a, 0x01, 0xb8, 0x5c, 0xd1, 0x71, 0x54, 0xa3,
+  0x45, 0x2e, 0xed, 0x36, 0xf3, 0xd4, 0xcc, 0x6a, 0x94, 0x11, 0xc0, 0xda,
+  0x26, 0xc2, 0x56, 0x31, 0xc9, 0x3f, 0xdf, 0xe8, 0x01, 0x71, 0xe0, 0x30,
+  0x5b, 0x82, 0xfd, 0x7e, 0x28, 0xdd, 0x9c, 0xcd, 0xa7, 0xdf, 0x95, 0x31,
+  0x5f, 0x18, 0x78, 0xff, 0x75, 0x63, 0x99, 0xfc, 0xec, 0xce, 0x0c, 0x57,
+  0x66, 0xdb, 0x7b, 0x18, 0xbe, 0xdc, 0xd9, 0x65, 0xff, 0x7e, 0x38, 0x76,
+  0xef, 0x05, 0xad, 0x8e, 0x72, 0xc0, 0x16, 0xff, 0xd6, 0xb4, 0xce, 0x04,
+  0x03, 0xdc, 0xf5, 0x37, 0xe5, 0xb6, 0x02, 0x3a, 0xe7, 0xef, 0xd8, 0xa5,
+  0x7b, 0xe2, 0x24, 0x4a, 0xcf, 0xef, 0x5e, 0x38, 0x4d, 0x47, 0x72, 0x0f,
+  0x9a, 0x10, 0xf4, 0x4b, 0xab, 0x16, 0x67, 0x1b, 0xf3, 0x6e, 0x1a, 0x71,
+  0x15, 0x5a, 0xa5, 0x08, 0xba, 0x48, 0xc9, 0xa8, 0xce, 0x95, 0x1a, 0xab,
+  0x18, 0xdf, 0xee, 0xef, 0xee, 0xf1, 0x3c, 0x80, 0x36, 0x6b, 0x6d, 0x62,
+  0x62, 0x87, 0xcb, 0x24, 0x81, 0x87, 0x01, 0x54, 0xe2, 0x5a, 0xa4, 0x1d,
+  0x4a, 0xc0, 0xb4, 0xec, 0xdd, 0xb0, 0x17, 0x57, 0x05, 0xa9, 0x66, 0xb1,
+  0xe5, 0xc2, 0xaf, 0x35, 0x08, 0x8c, 0x41, 0xb1, 0xd8, 0x86, 0x4e, 0x05,
+  0x9b, 0x96, 0xb6, 0xbf, 0xf2, 0x49, 0xc5, 0x2e, 0xf7, 0x37, 0x7c, 0xcc,
+  0x32, 0x37, 0x00, 0x2f, 0xbd, 0xd6, 0x1d, 0x9b, 0x26, 0x83, 0x03, 0x40,
+  0x99, 0x5a, 0xb3, 0x63, 0xd3, 0x15, 0xcd, 0x89, 0xaa, 0x1b, 0xaa, 0x9e,
+  0xbd, 0x06, 0x5e, 0x3a, 0xf3, 0xe9, 0xb8, 0xdf, 0xea, 0xfb, 0x0d, 0x16,
+  0x49, 0xbd, 0x20, 0xa6, 0xa0, 0xb9, 0x0e, 0xbb, 0x1e, 0xd6, 0x2e, 0x3e,
+  0xbb, 0x0f, 0x72, 0x34, 0x1b, 0xed, 0x01, 0x45, 0xe6, 0xd0, 0x07, 0xd4,
+  0x06, 0x92, 0x33, 0xab, 0x9c, 0xb7, 0xca, 0x70, 0x26, 0x8d, 0xb7, 0x21,
+  0xab, 0x98, 0x03, 0x2a, 0x1d, 0xbe, 0x22, 0xcf, 0x2c, 0x98, 0x88, 0xb6,
+  0x74, 0x40, 0x81, 0x0d, 0x70, 0xbe, 0xaa, 0x8c, 0xdb, 0x5e, 0x2b, 0x91,
+  0xe6, 0x80, 0xd7, 0xbd, 0x28, 0x35, 0x12, 0x70, 0x3e, 0x0b, 0x27, 0x8e,
+  0x87, 0x60, 0x19, 0xc8, 0x2e, 0x10, 0x8e, 0x06, 0x30, 0xec, 0x75, 0x13,
+  0x7a, 0xc0, 0xc4, 0x4d, 0xaa, 0x57, 0xd9, 0x0d, 0xa0, 0xa7, 0x1f, 0xa0,
+  0xdf, 0x70, 0x6f, 0x8d, 0xaa, 0x20, 0xc6, 0x77, 0xc0, 0xca, 0x45, 0x78,
+  0x75, 0x1a, 0x4b, 0x77, 0x00, 0x8e, 0x93, 0xad, 0xc5, 0x62, 0xd1, 0xb4,
+  0xb4, 0xfe, 0xed, 0x7d, 0x73, 0x13, 0xb9, 0xfc, 0x32, 0xc8, 0x3f, 0xa3,
+  0x19, 0x05, 0xf4, 0x3f, 0x97, 0x5d, 0x7e, 0xb2, 0x85, 0xb5, 0x04, 0x4b,
+  0x9d, 0xa1, 0xde, 0x2d, 0x95, 0x4f, 0xca, 0x2e, 0xe9, 0xdd, 0x76, 0x0a,
+  0x7c, 0xc8, 0x44, 0x17, 0xb2, 0xce, 0x3c, 0x15, 0xab, 0xb9, 0xa9, 0x59,
+  0x7c, 0x54, 0x4c, 0x83, 0xe7, 0x09, 0x34, 0x27, 0x04, 0x54, 0x5c, 0xa3,
+  0x35, 0x57, 0x2d, 0x8f, 0x1e, 0x26, 0xa8, 0xf4, 0x28, 0xda, 0xa2, 0xb4,
+  0xdb, 0x54, 0x0b, 0xb4, 0x07, 0x63, 0xc5, 0xdb, 0xb4, 0x20, 0x6a, 0x00,
+  0xf1, 0xa5, 0xe8, 0x8b, 0xe4, 0x35, 0xc4, 0x96, 0x54, 0x76, 0x00, 0x5e,
+  0x37, 0x72, 0x7e, 0x15, 0xe8, 0x6e, 0x8b, 0x98, 0x13, 0x2d, 0x06, 0x64,
+  0x71, 0x80, 0x43, 0x96, 0x60, 0x1b, 0x00, 0xe7, 0x70, 0x48, 0xf6, 0xf4,
+  0x23, 0x0b, 0x16, 0x8a, 0x4c, 0x28, 0x50, 0x83, 0x32, 0x23, 0x34, 0x65,
+  0x72, 0xb1, 0xcb, 0x84, 0x01, 0x34, 0xc2, 0x28, 0x96, 0x51, 0x1d, 0x06,
+  0x65, 0x6f, 0xe1, 0x0a, 0x9f, 0xce, 0x80, 0xa3, 0x77, 0xf5, 0x36, 0x04,
+  0x3e, 0x7b, 0xe8, 0xe7, 0xac, 0x6a, 0x04, 0x6e, 0x0a, 0x8c, 0xe8, 0x01,
+  0x65, 0xec, 0xbd, 0x1b, 0x99, 0xea, 0x4b, 0xde, 0x7d, 0xc1, 0x9d, 0xa0,
+  0xcc, 0x1b, 0x1f, 0xe0, 0x0a, 0xa5, 0x1f, 0x7a, 0x26, 0x02, 0x6a, 0x5a,
+  0xe2, 0x4c, 0x58, 0x77, 0x2f, 0x04, 0x73, 0xe8, 0x60, 0x68, 0xc0, 0x26,
+  0xf1, 0x0d, 0x56, 0x16, 0xa7, 0x0b, 0x47, 0x28, 0x00, 0x4a, 0x3b, 0xa9,
+  0x8b, 0x56, 0xb9, 0xee, 0xf9, 0x2c, 0x33, 0xbd, 0xf2, 0x3a, 0xc4, 0x40,
+  0xf6, 0x8b, 0x62, 0x40, 0x06, 0xd8, 0x22, 0x43, 0x8d, 0xa3, 0x05, 0xc2,
+  0x73, 0xd1, 0x04, 0x4e, 0x65, 0x5d, 0x26, 0xe0, 0xd7, 0x5d, 0x7d, 0x4c,
+  0x24, 0x7f, 0x8d, 0x27, 0xa7, 0xfd, 0xae, 0xd1, 0x8e, 0xf6, 0x75, 0xd9,
+  0x4d, 0x1d, 0x23, 0x69, 0xb5, 0x20, 0xe0, 0x00, 0xce, 0xe2, 0x28, 0xdb,
+  0x41, 0x07, 0xda, 0x01, 0xb4, 0x53, 0x29, 0xd9, 0x75, 0x0d, 0xd1, 0x98,
+  0x9a, 0x5c, 0x5b, 0xf4, 0x7c, 0x79, 0xde, 0x64, 0x1e, 0x10, 0x32, 0x19,
+  0xd7, 0x58, 0x6c, 0xc6, 0x00, 0x50, 0x4d, 0x67, 0x44, 0x7f, 0x09, 0xd8,
+  0x92, 0x65, 0x1b, 0x3a, 0x8c, 0x81, 0x2f, 0x90, 0x70, 0xd3, 0x80, 0x2a,
+  0x53, 0xaa, 0xb0, 0xd0, 0x15, 0x55, 0x9a, 0x5a, 0x70, 0x6a, 0x2f, 0xc4,
+  0x6b, 0xac, 0xa5, 0x21, 0x61, 0xa0, 0x62, 0xae, 0x0a, 0xc9, 0xd2, 0x79,
+  0xd2, 0xe8, 0x8c, 0x7a, 0xe1, 0xe8, 0x2e, 0x3b, 0x1e, 0x20, 0xe6, 0xa5,
+  0x39, 0x32, 0xcd, 0xf4, 0x91, 0x03, 0x3b, 0x4c, 0x99, 0x3f, 0x60, 0x00,
+  0x97, 0xed, 0xc0, 0x40, 0xa5, 0x1b, 0xe6, 0x02, 0x60, 0x1e, 0xa9, 0x73,
+  0x9e, 0x27, 0xc6, 0x56, 0x7a, 0x66, 0xc9, 0x55, 0x8b, 0xf9, 0x0f, 0x49,
+  0x13, 0x82, 0x0f, 0xa3, 0x4b, 0x44, 0xbc, 0x5a, 0x1c, 0xd1, 0xec, 0xf4,
+  0xfc, 0xd9, 0xba, 0x6b, 0x2e, 0xad, 0xdd, 0x93, 0xe7, 0x5b, 0xc6, 0x1a,
+  0x31, 0x8c, 0xb4, 0x0a, 0xab, 0x65, 0x4d, 0xd9, 0xbc, 0x27, 0x98, 0x2e,
+  0x02
+};
+
+/**
+ * Uncompressed size of \c #srcZstd.
+ */
+#define DXT1_256x256 32768
+
+/**
+ * Destination for decoding \c #srcZstd.
+ */
+static uint8_t dstDxt1[DXT1_256x256] = {};
+
+#ifndef ZSTD_VERSION_MAJOR
+/**
+ * For the case where the decompression library hasn't been included we add a
+ * dummy function to fake the process and stop the buffers being optimised out.
+ */
+size_t ZSTD_decompress(void* dst, size_t dstLen, const void* src, size_t srcLen) {
+	return (memcmp(dst, src, (srcLen < dstLen) ? srcLen : dstLen)) ? dstLen : 0;
+}
+#endif
+
+//*************************** Program and Shaders ***************************/
+
+/**
+ * Program object ID.
+ */
+static GLuint progId = 0;
+
+/**
+ * Vertex shader ID.
+ */
+static GLuint vertId = 0;
+
+/**
+ * Fragment shader ID.
+ */
+static GLuint fragId = 0;
+
+//********************************* Uniforms *********************************/
+
+/**
+ * Quad rotation angle ID.
+ */
+static GLint uRotId = -1;
+
+/**
+ * Draw colour ID.
+ */
+static GLint uColId = -1;
+
+/**
+ * Draw colour ID.
+ */
+static GLint uTx0Id = -1;
+
+//******************************* Shader Source ******************************/
+
+/**
+ * Vertex shader to draw texture mapped polys with an applied rotation.
+ */
+static GLchar const vertShader2D[] =
+#if GL_ES_VERSION_2_0
+	"#version 100\n"
+	"precision mediump float;\n"
+#else
+	"#version 120\n"
+#endif
+	"uniform   float uRot;"	// rotation
+	"attribute vec2  aPos;"	// vertex position coords
+	"attribute vec2  aUV0;"	// vertex texture UV0
+	"varying   vec2  vUV0;"	// (passed to fragment shader)
+	"void main() {"
+	"	float cosA = cos(radians(uRot));"
+	"	float sinA = sin(radians(uRot));"
+	"	mat3 rot = mat3(cosA, -sinA, 0.0,"
+	"					sinA,  cosA, 0.0,"
+	"					0.0,   0.0,  1.0);"
+	"	gl_Position = vec4(rot * vec3(aPos, 1.0), 1.0);"
+	"	vUV0 = aUV0;"
+	"}";
+
+/**
+ * Fragment shader for the above polys.
+ */
+static GLchar const fragShader2D[] =
+#if GL_ES_VERSION_2_0
+	"#version 100\n"
+	"precision mediump float;\n"
+#else
+	"#version 120\n"
+#endif
+	"uniform sampler2D uTx0;"
+	"varying vec2      vUV0;" // (passed from fragment shader)
+	"void main() {"
+	"	gl_FragColor = texture2D(uTx0, vUV0);"
+	"}";
+
+/**
+ * Helper to compile a shader.
+ * 
+ * \param type shader type
+ * \param text shader source
+ * \return the shader ID (or zero if compilation failed)
+ */
+static GLuint compileShader(GLenum const type, const GLchar* text) {
+	GLuint shader = glCreateShader(type);
+	if (shader) {
+		glShaderSource (shader, 1, &text, NULL);
+		glCompileShader(shader);
+		GLint compiled;
+		glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+		if (compiled) {
+			return shader;
+		} else {
+			GLint logLen;
+			glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &logLen);
+			if (logLen > 1) {
+				GLchar*  logStr = malloc(logLen);
+				glGetShaderInfoLog(shader, logLen, NULL, logStr);
+			#ifndef NDEBUG
+				printf("Shader compilation error: %s\n", logStr);
+			#endif
+				free(logStr);
+			}
+			glDeleteShader(shader);
+		}
+	}
+	return 0;
+}
+
+//********************************** Helpers *********************************/
+
+/**
+ * Vertex position index.
+ */
+#define GL_VERT_POSXY_ID 0
+
+/**
+ * Vertex colour index.
+ */
+#define GL_VERT_COLOR_ID 1
+
+/**
+ * Vertex UV0 index.
+ */
+#define GL_VERT_TXUV0_ID 2
+
+ /**
+  * \c GL vec2 storage type.
+  */
+struct vec2 {
+	float x;
+	float y;
+};
+
+/**
+ * Combined 2D vertex and 2D texture coordinates.
+ */
+struct posTex2d {
+	struct vec2 pos;
+	struct vec2 uv0;
+};
+
+//****************************************************************************/
+
+/**
+ * Current quad rotation angle (in degrees, updated per frame).
+ */
+static float rotDeg = 0.0f;
+
+/**
+ * Emscripten (single) GL context.
+ */
+static EMSCRIPTEN_WEBGL_CONTEXT_HANDLE glCtx = 0;
+
+/**
+ * Emscripten resize handler.
+ */
+static EM_BOOL resize(int type, const EmscriptenUiEvent* e, void* data) {
+	double surfaceW;
+	double surfaceH;
+	if (emscripten_get_element_css_size   ("#canvas", &surfaceW, &surfaceH) == EMSCRIPTEN_RESULT_SUCCESS) {
+		emscripten_set_canvas_element_size("#canvas",  surfaceW,  surfaceH);
+		if (glCtx) {
+			glViewport(0, 0, (int) surfaceW, (int) surfaceH);
+		}
+	}
+	(void) type;
+	(void) data;
+	(void) e;
+	return EM_FALSE;
+}
+
+/**
+ * Boilerplate to create a WebGL context.
+ */
+static EM_BOOL initContext() {
+	// Default attributes
+	EmscriptenWebGLContextAttributes attr;
+	emscripten_webgl_init_context_attributes(&attr);
+	if ((glCtx = emscripten_webgl_create_context("#canvas", &attr))) {
+		// Bind the context and fire a resize to get the initial size
+		emscripten_webgl_make_context_current(glCtx);
+		emscripten_set_resize_callback(EMSCRIPTEN_EVENT_TARGET_DOCUMENT, NULL, EM_FALSE, resize);
+		resize(0, NULL, NULL);
+		return EM_TRUE;
+	}
+	return EM_FALSE;
+}
+
+/**
+ * Called once per frame (clears the screen and draws the rotating quad).
+ */
+static void tick() {
+	glClearColor(1.0f, 0.0f, 1.0f, 1.0f);
+	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+	if (uRotId >= 0) {
+		glUniform1f(uRotId, rotDeg);
+		rotDeg += 0.1f;
+		if (rotDeg >= 360.0f) {
+			rotDeg -= 360.0f;
+		}
+	}
+
+	glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
+	glFlush();
+}
+
+/**
+ * Creates the GL context, shaders and quad data, decompresses the Zstd data
+ * and 'uploads' the resulting texture.
+ * 
+ * As a (naive) comparison, removing Zstd and building with "-Os -g0 s WASM=1
+ * -lGL emscripten.c" results in a 23kB WebAssembly file; re-adding Zstd
+ * increases the Wasm by 25kB.
+ */
+int main() {
+	if (initContext()) {
+		// Compile shaders and set the initial GL state
+		if ((progId = glCreateProgram())) {
+			 vertId = compileShader(GL_VERTEX_SHADER,   vertShader2D);
+			 fragId = compileShader(GL_FRAGMENT_SHADER, fragShader2D);
+			 
+			 glBindAttribLocation(progId, GL_VERT_POSXY_ID, "aPos");
+			 glBindAttribLocation(progId, GL_VERT_COLOR_ID, "aCol");
+			 glBindAttribLocation(progId, GL_VERT_TXUV0_ID, "aUV0");
+			 
+			 glAttachShader(progId, vertId);
+			 glAttachShader(progId, fragId);
+			 glLinkProgram (progId);
+			 glUseProgram  (progId);
+			 uRotId = glGetUniformLocation(progId, "uRot");
+			 uColId = glGetUniformLocation(progId, "uCol");
+			 uTx0Id = glGetUniformLocation(progId, "uTx0");
+			 if (uTx0Id >= 0) {
+				 glUniform1i(uTx0Id, 0);
+			 }
+			
+			 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+			 glEnable(GL_BLEND);
+			 glDisable(GL_DITHER);
+
+			 glCullFace(GL_BACK);
+			 glEnable(GL_CULL_FACE);
+		}
+		
+		GLuint vertsBuf = 0;
+		GLuint indexBuf = 0;
+		GLuint txName   = 0;
+		// Create the textured quad (vert positions then UVs)
+		struct posTex2d verts2d[] = {
+			{{-0.85f, -0.85f}, {0.0f, 0.0f}}, // BL
+			{{ 0.85f, -0.85f}, {1.0f, 0.0f}}, // BR
+			{{-0.85f,  0.85f}, {0.0f, 1.0f}}, // TL
+			{{ 0.85f,  0.85f}, {1.0f, 1.0f}}, // TR
+		};
+		uint16_t index2d[] = {
+			0, 1, 2,
+			2, 1, 3,
+		};
+		glGenBuffers(1, &vertsBuf);
+		glBindBuffer(GL_ARRAY_BUFFER, vertsBuf);
+		glBufferData(GL_ARRAY_BUFFER,
+			sizeof(verts2d), verts2d, GL_STATIC_DRAW);
+		glVertexAttribPointer(GL_VERT_POSXY_ID, 2,
+			GL_FLOAT, GL_FALSE, sizeof(struct posTex2d), 0);
+		glVertexAttribPointer(GL_VERT_TXUV0_ID, 2,
+			GL_FLOAT, GL_FALSE, sizeof(struct posTex2d),
+				(void*) offsetof(struct posTex2d, uv0));
+		glGenBuffers(1, &indexBuf);
+		glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuf);
+		glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+			sizeof(index2d), index2d, GL_STATIC_DRAW);
+		glEnableVertexAttribArray(GL_VERT_POSXY_ID);
+		glEnableVertexAttribArray(GL_VERT_TXUV0_ID);
+		
+		// Decode the Zstd data and create the texture
+		if (ZSTD_decompress(dstDxt1, DXT1_256x256, srcZstd, sizeof srcZstd) == DXT1_256x256) {
+			glGenTextures(1, &txName);
+			glBindTexture(GL_TEXTURE_2D, txName);
+			glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+			glCompressedTexImage2D(GL_TEXTURE_2D, 0,
+				GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
+					256, 256, 0, DXT1_256x256, dstDxt1);
+		} else {
+			printf("Failed to decode Zstd data\n");
+		}
+		emscripten_set_main_loop(tick, 0, EM_FALSE);
+		emscripten_exit_with_live_runtime();
+	}
+	return EXIT_FAILURE;
+}
diff --git a/contrib/declib/tests/shell.html b/contrib/declib/tests/shell.html
new file mode 100644
index 000000000..502a9b93c
--- /dev/null
+++ b/contrib/declib/tests/shell.html
@@ -0,0 +1,31 @@
+
+
+
+	
+	
+	
+	
+	Emscripten Shell
+	
+
+
+	
+	
+{{{ SCRIPT }}}
+
+
diff --git a/contrib/declib/tests/simple.c b/contrib/declib/tests/simple.c
index aad14666e..1cf7b61c8 100644
--- a/contrib/declib/tests/simple.c
+++ b/contrib/declib/tests/simple.c
@@ -3,7 +3,9 @@
  * Simple standalone example of using the single-file \c zstddeclib.
  */
  
+#include 
 #include 
+#include 
 #include 
 
 #include "../zstddeclib.c"
@@ -13,7 +15,7 @@
 /**
  * Raw 256x256 DXT1 data (used to compare the result).
  */
-static char const rawDxt1[] = {
+static uint8_t const rawDxt1[] = {
   0x3c, 0xe7, 0xc7, 0x39, 0x25, 0x25, 0x25, 0x00, 0x28, 0x42, 0xba, 0xd6,
   0x00, 0x00, 0x00, 0x55, 0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55,
   0x08, 0x42, 0xba, 0xd6, 0x00, 0x00, 0x00, 0x55, 0xe8, 0x41, 0xba, 0xd6,
@@ -2750,7 +2752,7 @@ static char const rawDxt1[] = {
 /**
  * Zstd compressed version of \c #rawDxt1.
  */
-static char const srcZstd[] = {
+static uint8_t const srcZstd[] = {
   0x28, 0xb5, 0x2f, 0xfd, 0x60, 0x00, 0x7f, 0xfd, 0xe2, 0x00, 0x8a, 0x05,
   0xc9, 0x3c, 0x5c, 0x00, 0x8e, 0x39, 0xb3, 0x01, 0xb3, 0xa8, 0xf4, 0xeb,
   0x13, 0x29, 0xfe, 0x37, 0xcd, 0x0a, 0x2e, 0xa8, 0xc3, 0xc2, 0xaf, 0xdf,
@@ -3363,7 +3365,7 @@ static char const srcZstd[] = {
 /**
  * Destination for decoding \c #srcZstd.
  */
-static char dstDxt1[sizeof rawDxt1] = {};
+static uint8_t dstDxt1[sizeof rawDxt1] = {};
 
 #ifndef ZSTD_VERSION_MAJOR
 /**

From 0932de54bc0dbc6d29008b9e6087b88721ca8bb0 Mon Sep 17 00:00:00 2001
From: Nick Terrell 
Date: Mon, 26 Aug 2019 18:19:29 -0700
Subject: [PATCH 040/163] [dictBuilder] Fix deadlock in *COVER error case

The COVER and FASTCOVER dictionary builders can deadlock when
dictionary construction errors, likely because there are too few
samples, or too few distinct dmers. The deadlock only occurs when
there are errors.

Fixes #1746.
---
 lib/dictBuilder/cover.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/lib/dictBuilder/cover.c b/lib/dictBuilder/cover.c
index 621996759..4721205da 100644
--- a/lib/dictBuilder/cover.c
+++ b/lib/dictBuilder/cover.c
@@ -919,13 +919,12 @@ void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters,
         }
       }
       /* Save the dictionary, parameters, and size */
-      if (!dict) {
-        return;
+      if (dict) {
+        memcpy(best->dict, dict, dictSize);
+        best->dictSize = dictSize;
+        best->parameters = parameters;
+        best->compressedSize = compressedSize;
       }
-      memcpy(best->dict, dict, dictSize);
-      best->dictSize = dictSize;
-      best->parameters = parameters;
-      best->compressedSize = compressedSize;
     }
     if (liveJobs == 0) {
       ZSTD_pthread_cond_broadcast(&best->cond);

From 793c71d6aeb775dddc8f8825d36d88fc495cc8c1 Mon Sep 17 00:00:00 2001
From: Nick Terrell 
Date: Mon, 26 Aug 2019 18:32:08 -0700
Subject: [PATCH 041/163] [test][dictBuilder] Add multithreaded tests

---
 tests/playTests.sh | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tests/playTests.sh b/tests/playTests.sh
index ad096fddd..19fc514f6 100755
--- a/tests/playTests.sh
+++ b/tests/playTests.sh
@@ -526,6 +526,15 @@ $ZSTD -o tmpDict --train "$TESTDIR"/*.c "$PRGDIR"/*.c
 test -f tmpDict
 $ZSTD --train "$TESTDIR"/*.c "$PRGDIR"/*.c
 test -f dictionary
+println "- Test dictionary training fails"
+echo "000000000000000000000000000000000" > tmpz
+$ZSTD --train tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz && die "Dictionary training should fail : source is all zeros"
+if [ -n "$hasMT" ]
+then
+  $ZSTD --train -T0 tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz tmpz && die "Dictionary training should fail : source is all zeros"
+  println "- Create dictionary with multithreading enabled"
+  $ZSTD --train -T0 "$TESTDIR"/*.c "$PRGDIR"/*.c -o tmpDict
+fi
 rm tmp* dictionary
 
 

From a57de4ac893be6414a576e9ecfb68b4bd8fc7dae Mon Sep 17 00:00:00 2001
From: Carl Woffenden 
Date: Tue, 27 Aug 2019 15:36:06 +0200
Subject: [PATCH 042/163] Added test script; tidied and documented

The test script combines the sources then builds and runs an example. A futher example is built if the Emscripten compiler is available on the system. Documentation covers building.
---
 contrib/declib/README.md                      |  8 ++-
 contrib/declib/build.sh                       | 57 +++++++++++++++++++
 contrib/declib/examples/README.md             |  7 +++
 .../declib/{tests => examples}/emscripten.c   | 22 +++----
 contrib/declib/{tests => examples}/shell.html |  2 +-
 contrib/declib/{tests => examples}/simple.c   | 17 ++++--
 contrib/declib/zstddeclib-in.c                |  4 +-
 7 files changed, 94 insertions(+), 23 deletions(-)
 create mode 100755 contrib/declib/build.sh
 create mode 100644 contrib/declib/examples/README.md
 rename contrib/declib/{tests => examples}/emscripten.c (99%)
 rename contrib/declib/{tests => examples}/shell.html (91%)
 rename contrib/declib/{tests => examples}/simple.c (99%)

diff --git a/contrib/declib/README.md b/contrib/declib/README.md
index bb22c2423..d1e25ca06 100644
--- a/contrib/declib/README.md
+++ b/contrib/declib/README.md
@@ -1,8 +1,12 @@
 # Single File Zstandard Decompression Library
 
-Create the file using the shell script:
+The script `combine.sh` creates an _amalgamted_ source file that can be used with out without `zstd.h`. This isn't a _header-only_ file but it does offer a similar level of simplicity when integrating into a project.
+
+Create `zstddeclib.c` from the Zstd source using:
 ```
 cd zstd/contrib/declib
 ./combine.sh -r ../../lib -r ../../lib/common -r ../../lib/decompress -o zstddeclib.c zstddeclib-in.c
 ```
-Then add the resulting file to your project (see the [test sources](tests) for examples).
+Then add the resulting file to your project (see the [example files](examples)).
+
+`build.sh` will run the above script then compile and test the resulting library.
diff --git a/contrib/declib/build.sh b/contrib/declib/build.sh
new file mode 100755
index 000000000..5dd4af96a
--- /dev/null
+++ b/contrib/declib/build.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+# Where to find the sources
+ZSTD_SRC_ROOT="../../lib"
+
+# Temporary compiled binary
+OUT_FILE="tempbin"
+
+# Optional temporary compiled WebAssembly
+OUT_WASM="temp.wasm"
+
+# Amalgamate the sources
+./combine.sh -r "$ZSTD_SRC_ROOT" -r "$ZSTD_SRC_ROOT/common" -r "$ZSTD_SRC_ROOT/decompress" -o zstddeclib.c zstddeclib-in.c
+# Did combining work?
+if [ $? -ne 0 ]; then
+  echo "Combine script: FAILED"
+  exit 1
+fi
+echo "Combine script: PASSED"
+
+# Compile the generated output
+cc -Os -g0 -o $OUT_FILE examples/simple.c
+# Did compilation work?
+if [ $? -ne 0 ]; then
+  echo "Compiling simple.c: FAILED"
+  exit 1
+fi
+echo "Compiling simple.c: PASSED"
+
+# Run then delete the compiled output
+./$OUT_FILE
+retVal=$?
+rm -f $OUT_FILE
+# Did the test work?
+if [ $retVal -ne 0 ]; then
+  echo "Running simple.c: FAILED"
+  exit 1
+fi
+echo "Running simple.c: PASSED"
+
+# Is Emscripten available?
+which emcc > /dev/null
+if [ $? -ne 0 ]; then
+  echo "(Skipping Emscripten test)"
+fi
+# Compile the Emscripten example
+CC_FLAGS="-Wall -Wextra -Os -g0 -flto --llvm-lto 3 -lGL -DNDEBUG=1"
+emcc $CC_FLAGS -s WASM=1 -o $OUT_WASM examples/emscripten.c
+# Did compilation work?
+if [ $? -ne 0 ]; then
+  echo "Compiling emscripten.c: FAILED"
+  exit 1
+fi
+echo "Compiling emscripten.c: PASSED"
+rm -f $OUT_WASM
+
+exit 0
diff --git a/contrib/declib/examples/README.md b/contrib/declib/examples/README.md
new file mode 100644
index 000000000..1e88c911e
--- /dev/null
+++ b/contrib/declib/examples/README.md
@@ -0,0 +1,7 @@
+# Single File ZStandard Examples
+
+The examples `#include` the generated `zstddeclib.c` directly but work equally as well when including `zstd.h` and compiling the amalgamated source separately.
+
+`simple.c` is the most basic example of decompressing content and verifying the result.
+
+`emscripten.c` is a bare-bones [Emscripten](https://github.com/emscripten-core/emscripten) compiled WebGL demo using Zstd to further compress a DXT1 texture. The 256x256 texture would normally be 32kB, but even when bundled with the Zstd decompressor the resulting WebAssembly weighs in at 45kB.
diff --git a/contrib/declib/tests/emscripten.c b/contrib/declib/examples/emscripten.c
similarity index 99%
rename from contrib/declib/tests/emscripten.c
rename to contrib/declib/examples/emscripten.c
index 8902947fc..4b336ce0c 100644
--- a/contrib/declib/tests/emscripten.c
+++ b/contrib/declib/examples/emscripten.c
@@ -6,7 +6,9 @@
  * \n
  * Compile using:
  * \code
- *	emcc -Wall -Wextra -Os -g0 -lGL -s WASM=1 -o out.html emscripten.c
+ *	export CC_FLAGS="-Wall -Wextra -Os -g0 -flto --llvm-lto 3 -lGL -DNDEBUG=1"
+ *	export EM_FLAGS="-s WASM=1 -s ENVIRONMENT=web --shell-file shell.html --closure 1"
+ *	emcc $CC_FLAGS $EM_FLAGS -o out.html emscripten.c
  * \endcode
  */
 
@@ -27,6 +29,8 @@
 
 /**
  * Zstd compressed DXT1 256x256 texture source.
+ * 
+ * File credit: https://commons.wikimedia.org/wiki/File:FuBK-Testbild.png
  */
 static uint8_t const srcZstd[] = {
   0x28, 0xb5, 0x2f, 0xfd, 0x60, 0x00, 0x7f, 0xfd, 0xe2, 0x00, 0x8a, 0x05,
@@ -682,11 +686,6 @@ static GLuint fragId = 0;
  */
 static GLint uRotId = -1;
 
-/**
- * Draw colour ID.
- */
-static GLint uColId = -1;
-
 /**
  * Draw colour ID.
  */
@@ -774,15 +773,10 @@ static GLuint compileShader(GLenum const type, const GLchar* text) {
  */
 #define GL_VERT_POSXY_ID 0
 
-/**
- * Vertex colour index.
- */
-#define GL_VERT_COLOR_ID 1
-
 /**
  * Vertex UV0 index.
  */
-#define GL_VERT_TXUV0_ID 2
+#define GL_VERT_TXUV0_ID 1
 
  /**
   * \c GL vec2 storage type.
@@ -871,7 +865,7 @@ static void tick() {
  * and 'uploads' the resulting texture.
  * 
  * As a (naive) comparison, removing Zstd and building with "-Os -g0 s WASM=1
- * -lGL emscripten.c" results in a 23kB WebAssembly file; re-adding Zstd
+ * -lGL emscripten.c" results in a 19kB WebAssembly file; re-adding Zstd
  * increases the Wasm by 25kB.
  */
 int main() {
@@ -882,7 +876,6 @@ int main() {
 			 fragId = compileShader(GL_FRAGMENT_SHADER, fragShader2D);
 			 
 			 glBindAttribLocation(progId, GL_VERT_POSXY_ID, "aPos");
-			 glBindAttribLocation(progId, GL_VERT_COLOR_ID, "aCol");
 			 glBindAttribLocation(progId, GL_VERT_TXUV0_ID, "aUV0");
 			 
 			 glAttachShader(progId, vertId);
@@ -890,7 +883,6 @@ int main() {
 			 glLinkProgram (progId);
 			 glUseProgram  (progId);
 			 uRotId = glGetUniformLocation(progId, "uRot");
-			 uColId = glGetUniformLocation(progId, "uCol");
 			 uTx0Id = glGetUniformLocation(progId, "uTx0");
 			 if (uTx0Id >= 0) {
 				 glUniform1i(uTx0Id, 0);
diff --git a/contrib/declib/tests/shell.html b/contrib/declib/examples/shell.html
similarity index 91%
rename from contrib/declib/tests/shell.html
rename to contrib/declib/examples/shell.html
index 502a9b93c..5beb0e6d5 100644
--- a/contrib/declib/tests/shell.html
+++ b/contrib/declib/examples/shell.html
@@ -12,7 +12,7 @@ body   {background:#333; font-family:"Verdana","Helvetica Neue","Helvetica","Ari
 	
 
 
-	
+