summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaewon Lim <jaewon81.lim@samsung.com>2016-11-10 13:48:04 +0900
committerSangJin Kim <sangjin3.kim@samsung.com>2016-11-10 13:50:38 +0900
commit27e0889b5c4878add8ddb9a5d46de94ac07c87bd (patch)
treef6717b215a13e6fe87c7cf36cbf96eec35c2e5e1
parent14b74fd4baa1149132e37b968d03fa25e56cac6e (diff)
downloadsdb-27e0889b5c4878add8ddb9a5d46de94ac07c87bd.tar.gz
sdb-27e0889b5c4878add8ddb9a5d46de94ac07c87bd.tar.bz2
sdb-27e0889b5c4878add8ddb9a5d46de94ac07c87bd.zip
Revert "Revert "add data encryption feature""
This reverts commit eaed2ffee004baeb6835210a5475097c6bbfa150. Change-Id: Id88c741309e78e14398c01e2f72fecb39d5a2485
-rw-r--r--Makefile44
-rwxr-xr-xSPC/Inc/CC_API.h221
-rwxr-xr-xSPC/Inc/CC_Constants.h159
-rwxr-xr-xSPC/Inc/CC_Context.h387
-rwxr-xr-xSPC/Inc/CC_Type.h49
-rwxr-xr-xSPC/Inc/CryptoCore.h51
-rwxr-xr-xSPC/Inc/DRMLog.h101
-rwxr-xr-xSPC/Inc/DtcpCTcpSocket.h266
-rwxr-xr-xSPC/Inc/SAKEP.h319
-rwxr-xr-xSPC/Inc/SPCApi.h156
-rwxr-xr-xSPC/Inc/SPC_Table.h20563
-rwxr-xr-xSPC/Inc/Util.h30
-rwxr-xr-xSPC/Inc/WhiteBox/SDWAP.h76
-rwxr-xr-xSPC/Inc/WhiteBox/SDWAP_TblGen.h92
-rwxr-xr-xSPC/Inc/WhiteBox/SDWAP_defines.h91
-rwxr-xr-xSPC/Inc/WhiteBox/SWAPv2.h75
-rwxr-xr-xSPC/Inc/WhiteBox/SWAPv2_TblGen.h78
-rwxr-xr-xSPC/Inc/WhiteBox/SWAPv2_defines.h87
-rwxr-xr-xSPC/Inc/Wrapper_common.h186
-rwxr-xr-xSPC/Inc/base/ANSI_x931.h48
-rwxr-xr-xSPC/Inc/base/aes.h171
-rwxr-xr-xSPC/Inc/base/bignum.h611
-rwxr-xr-xSPC/Inc/base/des.h411
-rwxr-xr-xSPC/Inc/base/ecc.h248
-rwxr-xr-xSPC/Inc/base/fast_math.h290
-rwxr-xr-xSPC/Inc/base/hash.h337
-rwxr-xr-xSPC/Inc/base/md5.h30
-rwxr-xr-xSPC/Inc/base/moo.h206
-rwxr-xr-xSPC/Inc/base/pkcs1_v21.h142
-rwxr-xr-xSPC/Inc/base/rc4.h60
-rwxr-xr-xSPC/Inc/base/sha1.h30
-rwxr-xr-xSPC/Inc/base/sha2.h44
-rwxr-xr-xSPC/Inc/base/snow2.h68
-rwxr-xr-xSPC/Inc/drm_macro.h201
-rwxr-xr-xSPC/Inc/middle/cmac.h95
-rwxr-xr-xSPC/Inc/middle/dh.h94
-rwxr-xr-xSPC/Inc/middle/dsa.h171
-rwxr-xr-xSPC/Inc/middle/ecdh.h61
-rwxr-xr-xSPC/Inc/middle/ecdsa.h144
-rwxr-xr-xSPC/Inc/middle/hmac.h93
-rwxr-xr-xSPC/Inc/middle/rng.h59
-rwxr-xr-xSPC/Inc/middle/rsa.h273
-rwxr-xr-xSPC/Inc/middle/symmetric.h246
-rwxr-xr-xSPC/Inc/middle/tdes.h84
-rwxr-xr-xSPC/Src/CC_API.c440
-rwxr-xr-xSPC/Src/DRMLog.c151
-rwxr-xr-xSPC/Src/DtcpCTcpSocket.cpp855
-rwxr-xr-xSPC/Src/SAKEP.cpp8213
-rwxr-xr-xSPC/Src/SPCApi.cpp329
-rwxr-xr-xSPC/Src/Util.cpp46
-rwxr-xr-xSPC/Src/WhiteBox/SDWAP.c571
-rwxr-xr-xSPC/Src/WhiteBox/SDWAP_TblGen.c1724
-rwxr-xr-xSPC/Src/WhiteBox/SWAPv2.c308
-rwxr-xr-xSPC/Src/WhiteBox/SWAPv2_TblGen.c1457
-rwxr-xr-xSPC/Src/base/ANSI_x931.c110
-rwxr-xr-xSPC/Src/base/aes.c1389
-rwxr-xr-xSPC/Src/base/bignum.c2750
-rwxr-xr-xSPC/Src/base/des.c168
-rwxr-xr-xSPC/Src/base/ecc.c1276
-rwxr-xr-xSPC/Src/base/fast_math.c906
-rwxr-xr-xSPC/Src/base/hash.c578
-rwxr-xr-xSPC/Src/base/md5.c289
-rwxr-xr-xSPC/Src/base/moo.c487
-rwxr-xr-xSPC/Src/base/pkcs1_v21.c940
-rwxr-xr-xSPC/Src/base/rc4.c160
-rwxr-xr-xSPC/Src/base/sha1.c472
-rwxr-xr-xSPC/Src/base/sha2.c660
-rwxr-xr-xSPC/Src/base/snow2.c404
-rwxr-xr-xSPC/Src/middle/cmac.c260
-rwxr-xr-xSPC/Src/middle/dh.c332
-rwxr-xr-xSPC/Src/middle/dsa.c602
-rwxr-xr-xSPC/Src/middle/ecdh.c204
-rwxr-xr-xSPC/Src/middle/ecdsa.c664
-rwxr-xr-xSPC/Src/middle/hmac.c572
-rwxr-xr-xSPC/Src/middle/rng.c69
-rwxr-xr-xSPC/Src/middle/rsa.c1209
-rwxr-xr-xSPC/Src/middle/symmetric.c1681
-rwxr-xr-xSPC/Src/middle/tdes.c131
-rwxr-xr-xSPC/gcc/Makefile102
-rwxr-xr-xSPC/gcc/Makefile.conf68
-rwxr-xr-xSPC/gcc/SPC_Clientbin0 -> 650874 bytes
-rwxr-xr-xSPC/gcc/TestCompile4
-rwxr-xr-xSPC/gcc/result.txt789
-rwxr-xr-xSPC/gcc/result2.txt1576
-rwxr-xr-xsrc/SPCManager.cpp184
-rwxr-xr-xsrc/SPCManager.h20
-rw-r--r--src/auto_complete.c2
-rw-r--r--src/command_function.c78
-rw-r--r--src/command_function.h4
-rwxr-xr-xsrc/commandline.c9
-rw-r--r--src/common_modules.h6
-rwxr-xr-xsrc/encryption.cpp259
-rwxr-xr-xsrc/encryption.h21
-rw-r--r--src/log.h8
-rw-r--r--src/sdb_constants.c11
-rw-r--r--src/sdb_constants.h9
-rw-r--r--src/sdb_map.h6
-rwxr-xr-xsrc/sockets.c89
-rwxr-xr-xsrc/transport.c147
-rwxr-xr-xsrc/transport.h13
100 files changed, 61039 insertions, 21 deletions
diff --git a/Makefile b/Makefile
index 9f1886c..d9044f2 100644
--- a/Makefile
+++ b/Makefile
@@ -6,9 +6,14 @@
#
HOST_OS := $(shell uname -s | tr A-Z a-z | cut -d'_' -f1)
LBITS := $(shell getconf LONG_BIT)
-OBJDIR := bin
+BINDIR := ./bin
MODULE := sdb
+ENCLIB := spc
+ENCLIB_BUILD_PATH := ./SPC/gcc
+ENCLIB_CFLAGS := -I./SPC/Inc
+ENCLIB_LFLAGS := ./SPC/gcc/build/linux/libPAKEClient.a
+
# sdb host tool
# =========================================================
@@ -43,7 +48,7 @@ ifeq ($(HOST_OS),mingw32)
endif
-SDB_SRC_FILES := \
+SDB_SRC_CFILES := \
src/sdb.c \
src/transport.c \
src/transport_local.c \
@@ -69,24 +74,51 @@ SDB_SRC_FILES := \
src/sdb_map.c \
src/sdb_messages.c \
src/adb_auth_host.c
+
+SDB_SRC_CPPFILES := \
+ src/encryption.cpp \
+ src/SPCManager.cpp
SDB_CFLAGS := -O2 -g -Wall -Wno-unused-parameter
SDB_CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
+SDB_CFLAGS += -DSUPPORT_ENCRYPT
SDB_CFLAGS += -Iinclude -Isrc
SDB_CFLAGS += $(LOCAL_CFLAGS)
+SDB_CFLAGS += $(ENCLIB_CFLAGS)
+
ifeq ($(MAKE_DEBUG),true)
SDB_CFLAGS += -DMAKE_DEBUG
endif
SDB_LFLAGS := $(LOCAL_LFLAGS)
+SDB_LFLAGS += $(ENCLIB_LFLAGS)
STATIC_LFLAGS := $(LOCAL_STATIC_LFLAGS)
+OBJS=${SDB_SRC_CFILES:%.c=%.o} ${SDB_SRC_CPPFILES:%.cpp=%.o}
+
+%.o : %.c
+ @echo "<<< ${<F}"
+ @$(CC) $(SDB_CFLAGS) $(LOCAL_IFLAGS) -c -o $@ $<
+
+%.o : %.cpp
+ @echo "<<< ${<F}"
+ @$(CXX) $(SDB_CFLAGS) $(LOCAL_IFLAGS) -c -o $@ $<
+
all : $(MODULE)
-sdb : $(SDB_SRC_FILES)
- mkdir -p $(OBJDIR)
- $(CC) $(SDB_CFLAGS) -o $(OBJDIR)/$(MODULE) $(SDB_SRC_FILES) $(LOCAL_IFLAGS) $(SDB_LFLAGS) $(STATIC_LFLAGS)
+$(ENCLIB) :
+ @echo "[[[ $@ ]]]"
+
+$(MODULE) : $(OBJS)
+ @echo ">>> $(ENCLIB)"
+ $(MAKE) -C $(ENCLIB_BUILD_PATH)
+
+ @echo ">>> $@"
+ @mkdir -p $(BINDIR)
+ $(CXX) -o $(BINDIR)/$@ $^ $(SDB_LFLAGS) $(STATIC_LFLAGS)
clean :
- rm -rf $(OBJDIR)
+ $(MAKE) -C $(ENCLIB_BUILD_PATH) clean
+ rm -rf src/*.o
+ rm -rf $(BINDIR)
diff --git a/SPC/Inc/CC_API.h b/SPC/Inc/CC_API.h
new file mode 100755
index 0000000..fe46a25
--- /dev/null
+++ b/SPC/Inc/CC_API.h
@@ -0,0 +1,221 @@
+/**
+ * \file CC_API.h
+ * @brief API of samsung Crypto Library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jae Heung Lee
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/06
+ */
+
+#ifndef _CRYPTOCORE_API_H
+#define _CRYPTOCORE_API_H
+
+#include "CryptoCore.h"
+
+
+typedef union
+{
+ SDRM_X931Context *x931ctx; //RNG : ANSI X9.31 Context
+ SDRM_MD5Context *md5ctx; //Hash : MD5 Hash Context
+ SDRM_SHA1Context *sha1ctx; //Hash : SHA1 Hash Context
+ SDRM_SHA224Context *sha224ctx; //Hash : SHA224 Hash Context
+ SDRM_SHA256Context *sha256ctx; //Hash : SHA256 Hash Context
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context *sha384ctx; //Hash : SHA384 Hash Context
+ SDRM_SHA512Context *sha512ctx; //Hash : SHA512 Hash Context
+#endif //_OP64_NOTSUPPORTED
+ SDRM_CMACContext *cmacctx; //MAC : C-MAC Context
+ SDRM_HMACContext *hmacctx; //MAC : Hash MAC
+ SDRM_DHContext *dhctx; //Key Exchange : DH Key Exchange Protocol
+ SDRM_ECDHContext *ecdhctx; //Key Exchange : EC-DH Key Exchange Protocol
+ SDRM_AESContext *aesctx; //Symmetric Encryption : AES Encryption Context
+ SDRM_DESContext *desctx; //Symmetric Encryption : DES Encryption Context
+ SDRM_TDESContext *tdesctx; //Symmetric Encryption : Triple DES Encryption Context
+ SDRM_RC4Context *rc4ctx; //Symmetric Encryption : RC4 Encryption Context
+ SDRM_SNOW2Context *snow2ctx; //Symmetric Encryption : SNOW2 Encryption Context
+ SDRM_RSAContext *rsactx; //Asymmetric Encryption and Signature : RSA Context
+ SDRM_DSAContext *dsactx; //Digital Signature : DSA Signature Context
+ SDRM_ECDSAContext *ecdsactx; //Digital Signature : EC-DSA Signature Context
+} CryptoCoreCTX;
+
+
+/**
+ * @brief Parameter sturcture
+ *
+ * Crypto Library ϱ ϴ Parameter structure
+ */
+typedef struct _CryptoCoreContainer
+{
+ int alg; /**< Algorithm */
+ CryptoCoreCTX *ctx; /**< Algorithm */
+
+ // Pseudo Random Number Generation (ANSI X9.17)
+ int (*PRNG_seed) (struct _CryptoCoreContainer *crt, cc_u8 *seed);
+ int (*PRNG_get) (struct _CryptoCoreContainer *crt, cc_u32 bitlength, cc_u8 *data);
+
+ // Message Digest (MD5, SHA-1)
+ int (*MD_init) (struct _CryptoCoreContainer *crt);
+ int (*MD_update) (struct _CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+ int (*MD_final) (struct _CryptoCoreContainer *crt, cc_u8 *output);
+ int (*MD_getHASH) (struct _CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+ // Message Authentication Code (CMAC, HMAC MD5, HMAC SHA-1)
+ int (*MAC_init) (struct _CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen);
+ int (*MAC_update) (struct _CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen);
+ int (*MAC_final) (struct _CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen);
+ int (*MAC_getMAC) (struct _CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen);
+
+ // Key Exchange (DH, ECDH)
+ int (*DH_GenerateParam) (struct _CryptoCoreContainer *crt, cc_u8* pPrime, cc_u32 nPrimeLen, cc_u8* pGenerator);
+ int (*DH_SetParam) (struct _CryptoCoreContainer *crt, cc_u8* pPrime, cc_u32 nPrimeLen, cc_u8* nGenerator, cc_u32 nGeneratorLen);
+ int (*DH_Gen1stPhaseKey) (struct _CryptoCoreContainer *crt, cc_u8* pPriv, cc_u8* pPub);
+ int (*DH_GenAuthKey) (struct _CryptoCoreContainer *crt, cc_u8* pPriv, cc_u8* pPub, cc_u8* pSharedSecret);
+ int (*ECDH_Gen1stPhaseKey) (struct _CryptoCoreContainer *crt, cc_u8* pDH_Xk, cc_u8* pDH1stPhaseKey);
+ int (*ECDH_GenAuthKey) (struct _CryptoCoreContainer *crt, cc_u8* pchXk, cc_u8* pchYv, cc_u8* pchKauth);
+
+ // Symmetric Encryption (DES, 3DES, AES, RC4, SNOW)
+ // mode example : ENC_ECB, DEC_ECB, ENC_CBC, DEC_CBC, ...
+ int (*SE_init) (struct _CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+ int (*SE_process) (struct _CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+ int (*SE_final) (struct _CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen);
+ // Simple AES Function
+ int (*SE_EncryptOneBlock) (cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+ int (*SE_DecryptOneBlock) (cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+ // Asymmetric Encryption (RSA, Elgamal, EC-Elgamal)
+ int (*AE_encrypt) (struct _CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+ int (*AE_decrypt) (struct _CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+ int (*AE_decryptByCRT) (struct _CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+ // Digital Signature (DSA, EC-DSA)
+ int (*DS_sign) (struct _CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen);
+ int (*DS_verify) (struct _CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result);
+ int (*DSA_genParam)(
+ struct _CryptoCoreContainer *crt, cc_u32 T_Siz,
+ cc_u8 *DSA_P_Data, cc_u32 *DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 *DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 *DSA_G_Len
+ );
+ int (*DSA_setParam)(
+ struct _CryptoCoreContainer *crt,
+ cc_u8 *DSA_P_Data, cc_u32 DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 DSA_G_Len
+ );
+ int (*DSA_genKeypair)(
+ struct _CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 *DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 *DSA_X_Len
+ );
+ int (*DSA_setKeyPair)(
+ struct _CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 DSA_X_Len
+ );
+
+ // RSA Support Functions
+ int (*RSA_genKeypair)(
+ struct _CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 *RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+ );
+ int (*RSA_genKeypairWithE)(
+ struct _CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+ );
+ int (*RSA_genKeyDWithPQE)(
+ struct _CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+ );
+ int (*RSA_setKeypair)(
+ struct _CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len
+ );
+ int (*RSA_setKeypairForCRT)(
+ struct _CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_DmodP1_Data, cc_u32 RSA_DmodP1_Len,
+ cc_u8* RSA_DmodQ1_Data, cc_u32 RSA_DmodQ1_Len,
+ cc_u8* RSA_iQmodP_Data, cc_u32 RSA_iQmodP_Len
+ );
+
+ // ECC Support Functions (EC-DSA, EC-Dlgamal)
+ int (*EC_setCurve)(
+ struct _CryptoCoreContainer *crt, cc_u16 Dimension,
+ cc_u8* ECC_P_Data, cc_u32 ECC_P_Len,
+ cc_u8* ECC_A_Data, cc_u32 ECC_A_Len,
+ cc_u8* ECC_B_Data, cc_u32 ECC_B_Len,
+ cc_u8* ECC_G_X_Data, cc_u32 ECC_G_X_Len,
+ cc_u8* ECC_G_Y_Data, cc_u32 ECC_G_Y_Len,
+ cc_u8* ECC_R_Data, cc_u32 ECC_R_Len
+ );
+ int (*EC_genKeypair)(
+ struct _CryptoCoreContainer *crt,
+ cc_u8 *PrivateKey, cc_u32 *PrivateKeyLen,
+ cc_u8 *PublicKey_X, cc_u32 *PublicKey_XLen,
+ cc_u8 *PublicKey_Y, cc_u32 *PublicKey_YLen
+ );
+ int (*EC_setKeypair)(
+ struct _CryptoCoreContainer *crt,
+ cc_u8* PRIV_Data, cc_u32 PRIV_Len,
+ cc_u8* PUB_X_Data, cc_u32 PUB_X_Len,
+ cc_u8* PUB_Y_Data, cc_u32 PUB_Y_Len
+ );
+
+} CryptoCoreContainer;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn create_CryptoCoreContainer
+ * @brief memory allocation and initialize the CryptoCoreContainer sturcture
+ *
+ * @param algorithm [in]algorithm want to use
+ *
+ * @return address of created sturcture
+ */
+CRYPTOCORE_INTERNAL CryptoCoreContainer ECRYPTO_API *create_CryptoCoreContainer(cc_u32 algorithm);
+
+/*
+ * @fn destroy_CryptoCoreContainer
+ * @brief free allocated memory
+ *
+ * @param crt [in]CryptoCoreContainer context
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void ECRYPTO_API destroy_CryptoCoreContainer(CryptoCoreContainer* crt);
+
+/*
+ * @fn CCMalloc
+ * @brief memory allocation and initialize for CryptoCore
+ *
+ * @param crt [in]size
+ */
+CRYPTOCORE_INTERNAL void ECRYPTO_API *CCMalloc(int siz);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/CC_Constants.h b/SPC/Inc/CC_Constants.h
new file mode 100755
index 0000000..b9e84df
--- /dev/null
+++ b/SPC/Inc/CC_Constants.h
@@ -0,0 +1,159 @@
+/**
+ * \file CC_Constants.h
+ * @brief define constants for crypto library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/09/28
+ * $Id$
+ */
+
+#ifndef _DRM_CONSTANTS_H
+#define _DRM_CONSTANTS_H
+
+#define SDRM_SHIFT_HALF 16 /**< common value at both of 32-bit and 64-bit machine */
+#define SDRM_HIGH_HALF(A) ((A) >> SDRM_SHIFT_HALF)
+#define SDRM_LOW_HALF(A) ((A) & ((1 << SDRM_SHIFT_HALF) - 1))
+
+////////////////////////////////////////////////////////////////////////////
+// Algorithm Identifier
+////////////////////////////////////////////////////////////////////////////
+enum CryptoAlgorithm {
+ /*! @brief RNG Module */
+ ID_X931 = 1011,
+
+ /*! @brief Hash Algorithms */
+ ID_MD5 = 1021,
+ ID_SHA1 = 1022,
+ ID_SHA160 = 1022,
+ ID_SHA256 = 1023,
+#ifndef _OP64_NOTSUPPORTED
+ ID_SHA384 = 1024,
+ ID_SHA512 = 1025,
+#endif //_OP64_NOTSUPPORTED
+ ID_SHA224 = 1026,
+
+ /*! @brief MAC Algorithms */
+ ID_CMAC = 1031,
+ ID_HMD5 = 1032,
+ ID_HSHA1 = 1033,
+ ID_HSHA160 = 1033,
+ ID_HSHA256 = 1034,
+#ifndef _OP64_NOTSUPPORTED
+ ID_HSHA384 = 1035,
+ ID_HSHA512 = 1036,
+#endif //_OP64_NOTSUPPORTED
+ ID_HSHA224 = 1037,
+
+ /*! @brief Symmetric Encryption Algorithms */
+ ID_AES = 1041,
+ ID_AES128 = 1041,
+ ID_AES192 = 1047,
+ ID_AES256 = 1048,
+ ID_DES = 1042,
+ ID_TDES = 1043,
+ ID_TDES_EDE2 = 1043,
+ ID_TDES_EDE3 = 1044,
+ ID_RC4 = 1045,
+ ID_SNOW2 = 1046,
+
+ /*! @brief Asymmetric Encryption Algorithms */
+ ID_RSA = 1051,
+ ID_RSA512 = 1057,
+ ID_RSA1024 = 1054,
+ ID_RSA2048 = 1055,
+ ID_RSA3072 = 1056,
+ ID_ELGAMAL = 1052,
+ ID_ECELGAMAL = 1053,
+
+ /*! @brief Signature Algorithms */
+ ID_DSA = 1061,
+ ID_ECDSA = 1062,
+
+ /*! @brief Key Exchange Algorithms */
+ ID_DH = 1071,
+ ID_ECDH = 1072,
+
+ /*! @brief Encryption/Decryption Mode of Operations */
+ ID_ENC_ECB = 1111,
+ ID_ENC_CBC = 1112,
+ ID_ENC_CFB = 1113,
+ ID_ENC_OFB = 1114,
+ ID_ENC_CTR = 1115,
+
+ ID_DEC_ECB = 1121,
+ ID_DEC_CBC = 1122,
+ ID_DEC_CFB = 1123,
+ ID_DEC_OFB = 1124,
+ ID_DEC_CTR = 1125,
+
+ /*! @brief Symmetric Encryption/Decryption Padding Methods */
+ ID_PKCS5 = 1201,
+ ID_SSL_PADDING = 1202,
+ ID_ZERO_PADDING = 1203,
+ ID_NO_PADDING = 1204,
+
+ /*! @brief Asymmetric Encryption/Decryption Padding Methods */
+ ID_RSAES_PKCS15 = 1131,
+
+ ID_RSAES_OAEP = 1132,
+ ID_RSAES_OAEP_MD5 = ID_RSAES_OAEP + (ID_MD5 << SDRM_SHIFT_HALF),
+ ID_RSAES_OAEP_SHA1 = ID_RSAES_OAEP + (ID_SHA1 << SDRM_SHIFT_HALF),
+ ID_RSAES_OAEP_SHA160 = ID_RSAES_OAEP + (ID_SHA160 << SDRM_SHIFT_HALF),
+ ID_RSAES_OAEP_SHA256 = ID_RSAES_OAEP + (ID_SHA256 << SDRM_SHIFT_HALF),
+#ifndef _OP64_NOTSUPPORTED
+ ID_RSAES_OAEP_SHA384 = ID_RSAES_OAEP + (ID_SHA384 << SDRM_SHIFT_HALF),
+ ID_RSAES_OAEP_SHA512 = ID_RSAES_OAEP + (ID_SHA512 << SDRM_SHIFT_HALF),
+#endif
+
+ ID_RSASSA_PKCS15 = 1133,
+ ID_RSASSA_PKCS15_MD5 = ID_RSASSA_PKCS15 + (ID_MD5 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PKCS15_SHA1 = ID_RSASSA_PKCS15 + (ID_SHA1 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PKCS15_SHA160 = ID_RSASSA_PKCS15 + (ID_SHA160 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PKCS15_SHA256 = ID_RSASSA_PKCS15 + (ID_SHA256 << SDRM_SHIFT_HALF),
+#ifndef _OP64_NOTSUPPORTED
+ ID_RSASSA_PKCS15_SHA384 = ID_RSASSA_PKCS15 + (ID_SHA384 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PKCS15_SHA512 = ID_RSASSA_PKCS15 + (ID_SHA512 << SDRM_SHIFT_HALF),
+#endif
+
+ ID_RSASSA_PSS = 1134,
+ ID_RSASSA_PSS_MD5 = ID_RSASSA_PSS + (ID_MD5 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PSS_SHA1 = ID_RSASSA_PSS + (ID_SHA1 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PSS_SHA160 = ID_RSASSA_PSS + (ID_SHA160 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PSS_SHA256 = ID_RSASSA_PSS + (ID_SHA256 << SDRM_SHIFT_HALF),
+#ifndef _OP64_NOTSUPPORTED
+ ID_RSASSA_PSS_SHA384 = ID_RSASSA_PSS + (ID_SHA384 << SDRM_SHIFT_HALF),
+ ID_RSASSA_PSS_SHA512 = ID_RSASSA_PSS + (ID_SHA512 << SDRM_SHIFT_HALF)
+#endif
+};
+
+////////////////////////////////////////////////////////////////////////////
+// Constants Definitions
+////////////////////////////////////////////////////////////////////////////
+/*! @brief Endianness */
+#define CRYPTO_LITTLE_ENDIAN 0
+#define CRYPTO_BIG_ENDIAN 1
+
+////////////////////////////////////////////////////////////////////////////
+// Crypto Error Code
+////////////////////////////////////////////////////////////////////////////
+#define CRYPTO_SUCCESS 0 /**< no error is occured */
+#define CRYPTO_ERROR -3000 /**< error is occured */
+#define CRYPTO_MEMORY_ALLOC_FAIL -3001 /**< malloc is failed */
+#define CRYPTO_NULL_POINTER -3002 /**< parameter is null pointer */
+#define CRYPTO_INVALID_ARGUMENT -3003 /**< argument is not correct */
+#define CRYPTO_MSG_TOO_LONG -3004 /**< length of input message is too long */
+#define CRYPTO_VALID_SIGN CRYPTO_SUCCESS /**< valid sign */
+#define CRYPTO_INVALID_SIGN -3011 /**< invalid sign */
+#define CRYPTO_ISPRIME CRYPTO_SUCCESS /**< prime number */
+#define CRYPTO_INVERSE_NOT_EXIST -3012 /**< inverse is no exists */
+#define CRYPTO_NEGATIVE_INPUT -3013 /**< argument is negative */
+#define CRYPTO_INFINITY_INPUT -3014 /**< input is infinity */
+#define CRYPTO_BUFFER_TOO_SMALL -3015 /**< buffer to small */
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/CC_Context.h b/SPC/Inc/CC_Context.h
new file mode 100755
index 0000000..7fa6f79
--- /dev/null
+++ b/SPC/Inc/CC_Context.h
@@ -0,0 +1,387 @@
+/**
+ * \file CC_Context.h
+ * @brief context definitions for samsung Crypto Library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/07
+ */
+
+#ifndef _DRM_CONTEXT_H
+#define _DRM_CONTEXT_H
+
+#include "CC_Type.h"
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for Big Number Operation
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @brief Big number structure
+ *
+ * used for big number representation
+ */
+typedef struct {
+ cc_u32 sign; /**< 0 for positive, 1 for negative number */
+ cc_u32 Length; /**< number of valid integers */
+ cc_u32 Size; /**< unsigned long size of allocated memory */
+ cc_u32 *pData; /**< unsigned long array */
+} SDRM_BIG_NUM;
+
+/**
+ * @brief Parameter sturcture
+ *
+ * Montgomery ˰ ϱ ϴ Parameter structure
+ */
+typedef struct { /**< Structure to keep parameters for Montgomery */
+ cc_u32 ri; /**< Length of Modulus */
+ SDRM_BIG_NUM *R; /**< R^2 mod m */
+ SDRM_BIG_NUM *Mod; /**< modulus */
+ SDRM_BIG_NUM *Inv_Mod; /**< Inverse of Modulus */
+ cc_u32 N0; /**< m' */
+} SDRM_BIG_MONT;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for Elliptic Curve Crypto System
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_ECC_BN_BUFSIZE 19 //allows max 256 bit curve(uint32_len * 2 + 3)
+#define SDRM_ECC_ALLOC_SIZE (sizeof(SDRM_BIG_NUM) + SDRM_ECC_BN_BUFSIZE * SDRM_SIZE_OF_DWORD)
+
+/**
+ * @brief EC Point structure
+ *
+ * used for representation of one point at ECC curve
+ */
+typedef struct {
+ cc_u32 IsInfinity; /**< if infinity , then 1 else 0 */
+ SDRM_BIG_NUM *x; /**< prime(1024 + 128i bits i=0..8) */
+ SDRM_BIG_NUM *y; /**< subprime(128 + 32j bits j=0..4) */
+ SDRM_BIG_NUM *z;
+ SDRM_BIG_NUM *z2;
+ SDRM_BIG_NUM *z3;
+} SDRM_EC_POINT;
+
+/**
+ * @brief ECC Context structure
+ *
+ * used for parameters for ECC curve
+ */
+typedef struct {
+ cc_u32 uDimension; /**< Dimension */
+ SDRM_BIG_NUM *ECC_p; /**< GF(p) */
+ SDRM_BIG_NUM *ECC_a; /**< y^2 = x^3 + ax + b */
+ SDRM_BIG_NUM *ECC_b;
+ SDRM_BIG_NUM *ECC_n; /**< order of base point */
+ SDRM_EC_POINT *ECC_G; /**< Base point */
+ SDRM_BIG_NUM *PRIV_KEY; /**< private key */
+ SDRM_EC_POINT *PUBLIC_KEY;
+} SDRM_ECC_CTX;
+
+typedef SDRM_ECC_CTX SDRM_ECDSAContext;
+typedef SDRM_ECC_CTX SDRM_ECELContext;
+typedef SDRM_ECC_CTX SDRM_ECDHContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for ANSI X9.31 PRNG
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_X931_SEED_SIZ 16
+
+/**
+ * @brief X931 Context structure
+ *
+ * used for maintain seed vaule for random number generation
+ */
+typedef struct {
+ cc_u8 Seed[SDRM_X931_SEED_SIZ]; /**< Seed */
+} SDRM_X931Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for AES-128
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_AES_BLOCK_SIZ 16
+
+/**
+ * @brief AES Context structure
+ *
+ * used for aes parameters
+ */
+typedef struct {
+ cc_u32 moo; /**< mode of operations */
+ cc_u32 padding; /**< padding method */
+ cc_u8 IV[SDRM_AES_BLOCK_SIZ]; /**< Initial Vector */
+ cc_u8 Block[SDRM_AES_BLOCK_SIZ]; /**< remained msg block */
+ cc_u32 BlockLen; /**< length of Block */
+ cc_u8 RoundKey[16*(14 + 1)]; /**< round key */
+ cc_u32 CTR_Count; /**< counter for CTR mode */
+} SDRM_AESContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SHA-1
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_SHA1_BLOCK_SIZ 20
+#define SDRM_SHA1_DATA_SIZE 64
+/**
+ * @brief SHA1 Context structure
+ *
+ * used for SHA1 parameters
+ */
+typedef struct {
+ cc_u32 digest[SDRM_SHA1_BLOCK_SIZ / 4]; /**< Message digest */
+ cc_u32 countLo, countHi; /**< 64-bit bit count */
+ cc_u32 data[16]; /**< SHS data buffer */
+ int Endianness;
+} SDRM_SHA1Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SHA-256
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_SHA256_BLOCK_SIZ 32
+#define SDRM_SHA256_DATA_SIZE (512 / 8)
+/**
+ * @brief SHA256 Context structure
+ *
+ * used for SHA256 parameters
+ */
+typedef struct {
+ cc_u32 tot_len;
+ cc_u32 len;
+ cc_u8 block[2 * SDRM_SHA256_DATA_SIZE];
+ cc_u32 h[8];
+} SDRM_SHA256Context;
+
+#ifndef _OP64_NOTSUPPORTED
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SHA-384
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_SHA384_BLOCK_SIZ 48
+#define SDRM_SHA384_DATA_SIZE (1024 / 8)
+/**
+ * @brief SHA384 Context structure
+ *
+ * used for SHA384 parameters
+ */
+typedef struct {
+ cc_u32 tot_len;
+ cc_u32 len;
+ cc_u8 block[2 * SDRM_SHA384_DATA_SIZE];
+ cc_u64 h[8];
+} SDRM_SHA384Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SHA-512
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_SHA512_BLOCK_SIZ 64
+#define SDRM_SHA512_DATA_SIZE SDRM_SHA384_DATA_SIZE
+/**
+ * @brief SHA512 Context structure
+ *
+ * used for SHA512 parameters
+ */
+typedef SDRM_SHA384Context SDRM_SHA512Context;
+
+#endif //_OP64_NOTSUPPORTED
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SHA-224
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_SHA224_BLOCK_SIZ 28
+#define SDRM_SHA224_DATA_SIZE SDRM_SHA256_DATA_SIZE
+/**
+ * \brief SHA224 Context structure
+ *
+ * used for SHA224 parameters
+ */
+typedef SDRM_SHA256Context SDRM_SHA224Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for MD5
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_MD5_BLOCK_SIZ 16
+#define SDRM_MD5_DATA_SIZE 64
+/**
+ * @brief MD5 Context structure
+ *
+ * used for MD5 parameters
+ */
+typedef struct {
+ cc_u32 state[4]; /**< state *ABCD */
+ cc_u32 count[2]; /**< number of bits, modulo 2^64 (lsb first) */
+ cc_u8 buffer[64]; /**< input buffer */
+} SDRM_MD5Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for C-MAC Generation
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @brief C-MAC Context structure
+ *
+ * used for aes parameters
+ */
+typedef struct {
+ cc_u8 IV[SDRM_AES_BLOCK_SIZ]; /**< Initial Vector */
+ cc_u8 Block[SDRM_AES_BLOCK_SIZ]; /**< remained msg block */
+ cc_u32 BlockLen; /**< length of Block */
+ cc_u8 K1[SDRM_AES_BLOCK_SIZ];
+ cc_u8 K2[SDRM_AES_BLOCK_SIZ];
+ cc_u8 RoundKey[16*(10 + 1)];
+} SDRM_CMACContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for H-MAC Generation
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @brief C-MAC Context structure
+ *
+ * used for aes parameters
+ */
+typedef struct {
+ cc_u32 algorithm; /**< algorithm */
+ SDRM_SHA1Context *sha1_ctx; /**< SHA-160 context */
+ SDRM_SHA224Context *sha224_ctx; /**< SHA-224 context */
+ SDRM_SHA256Context *sha256_ctx; /**< SHA-256 context */
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context *sha384_ctx; /**< SHA-384 context */
+ SDRM_SHA512Context *sha512_ctx; /**< SHA-512 context */
+#endif //_OP64_NOTSUPPORTED
+ SDRM_MD5Context *md5_ctx; /**< MD5 context */
+
+ cc_u32 B;
+ cc_u8 *k0;
+} SDRM_HMACContext;
+
+////////////////////////////////////////////////////////////////////
+// constant & context for RSA
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_RSA_BN_BUFSIZE (RSA_KeyByteLen / 2 + 1)
+#define SDRM_RSA_ALLOC_SIZE (sizeof(SDRM_BIG_NUM) + SDRM_RSA_BN_BUFSIZE * SDRM_SIZE_OF_DWORD)
+
+/**
+ * @brief RSA Context structure
+ *
+ * used for rsa parameters
+ */
+typedef struct {
+ SDRM_BIG_NUM* n; /**< n value */
+ SDRM_BIG_NUM* e; /**< public key */
+ SDRM_BIG_NUM* d; /**< private key */
+ SDRM_BIG_NUM* p; /**< p */
+ SDRM_BIG_NUM* q; /**< q */
+ SDRM_BIG_NUM* dmodp1; /**< d mod p-1 */
+ SDRM_BIG_NUM* dmodq1; /**< d mod q-1 */
+ SDRM_BIG_NUM* iqmodp; /**< q^-1 mod p */
+
+ cc_u32 crt_operation; /**< CRT Algorithm indicator */
+ cc_u32 k; /**< byte-length of n */
+ cc_u32 pm; /**< padding method */
+ cc_u32 hash_algorithm; /**< used hash algorithm for pkcs padding */
+} SDRM_RSAContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for DSA
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_DSA_BN_BUFSIZE (128 / 2 + 1)
+#define SDRM_DSA_ALLOC_SIZE (sizeof(SDRM_BIG_NUM) + SDRM_DSA_BN_BUFSIZE * SDRM_SIZE_OF_DWORD)
+
+/**
+ * @brief Parameter sturcture
+ *
+ * used for DSA parameters
+ */
+typedef struct {
+ SDRM_BIG_NUM* p; /**< 'p' value - prime modulus */
+ SDRM_BIG_NUM* q; /**< 'q' value - prime Divisor */
+ SDRM_BIG_NUM* al; /**< 'alpha' value - generator */
+ SDRM_BIG_NUM* y; /**< 'y' value - public key */
+ SDRM_BIG_NUM* a; /**< 'a' value - private key */
+} SDRM_DSAContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for RC4
+////////////////////////////////////////////////////////////////////////////
+typedef struct {
+ cc_u32 keyLen;
+
+ cc_u32 i;
+ cc_u32 j;
+
+ cc_u8 s[256];
+ cc_u8 key[32];
+} SDRM_RC4Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for SNOW2
+////////////////////////////////////////////////////////////////////////////
+typedef struct {
+ cc_u32 s[16];
+ cc_u32 r1;
+ cc_u32 r2;
+ cc_u32 keyStream;
+ cc_u32 usedKeyLen;
+
+ cc_u32 t;
+ cc_u32 endian; //0 if little endian, 1 if bigendian
+
+} SDRM_SNOW2Context;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for DES
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_DES_BLOCK_SIZ 8
+
+/**
+ * @brief DES Context structure
+ *
+ * used for aes parameters
+ */
+typedef struct {
+ cc_u32 moo; //mode of operations
+ cc_u32 padding;
+ cc_u8 IV[SDRM_DES_BLOCK_SIZ]; //Initial Vector
+ cc_u8 UserKey[SDRM_DES_BLOCK_SIZ];
+ cc_u8 Block[SDRM_DES_BLOCK_SIZ];
+ cc_u32 BlockLen;
+ cc_u32 RoundKey[16][2]; //each round key, expanded
+ cc_u32 CTR_Count;
+} SDRM_DESContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for Triple DES
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_TDES_BLOCK_SIZ SDRM_DES_BLOCK_SIZ
+
+/**
+ * @brief DES Context structure
+ *
+ * used for aes parameters
+ */
+typedef struct {
+ cc_u32 moo; //mode of operations
+ cc_u32 padding;
+ cc_u8 IV[SDRM_DES_BLOCK_SIZ]; //Initial Vector
+ cc_u8 UserKey[SDRM_DES_BLOCK_SIZ * 3];
+ cc_u8 Block[SDRM_DES_BLOCK_SIZ];
+ cc_u32 BlockLen;
+ cc_u32 RoundKey[48][2]; //each round key, expanded
+ cc_u32 CTR_Count;
+} SDRM_TDESContext;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for Deffie-Hellman protocol
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @brief Diffie-Hellman Context structure
+ *
+ * used for dh parameters
+ */
+typedef struct {
+ unsigned int PrimeLen; /**< length of prime */
+ SDRM_BIG_NUM* p; /**< Prime */
+ SDRM_BIG_NUM* g; /**< generator */
+} SDRM_DHContext;
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/CC_Type.h b/SPC/Inc/CC_Type.h
new file mode 100755
index 0000000..65e34dd
--- /dev/null
+++ b/SPC/Inc/CC_Type.h
@@ -0,0 +1,49 @@
+/**
+ * \file CC_Type.h
+ * @brief data types for CryptoCore library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2008/08/26
+ */
+
+#ifndef _CC_TYPE_H_
+#define _CC_TYPE_H_
+
+//remove symbol
+
+#ifndef _WIN
+
+#define CRYPTOCORE_INTERNAL __attribute__((visibility("hidden")))
+#else
+ //#define #define CRYPTOCORE_INTERNAL __attribute__((visibility("hidden")))
+ #define CRYPTOCORE_INTERNAL
+#endif
+
+
+/*! @brief 1-byte data type */
+typedef unsigned char cc_u8;
+
+/*! @brief 2-byte data type */
+typedef unsigned short cc_u16;
+
+/*! @brief 4-byte data type */
+typedef unsigned int cc_u32;
+
+#ifndef _OP64_NOTSUPPORTED
+
+/*! @brief 8-byte data type */
+#ifdef _WIN32
+ typedef unsigned __int64 cc_u64;
+#else
+ typedef unsigned long long cc_u64;
+#endif //_WIN32
+
+#endif //_OP64_NOTSUPPORTED
+
+#endif //_CC_TYPE_H_
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/CryptoCore.h b/SPC/Inc/CryptoCore.h
new file mode 100755
index 0000000..1217619
--- /dev/null
+++ b/SPC/Inc/CryptoCore.h
@@ -0,0 +1,51 @@
+/**
+ * \file CryptoCore.h
+ * @brief main header file of crypto library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author :
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/02
+ */
+
+#ifndef _CRYPTOCORE_H
+#define _CRYPTOCORE_H
+
+#ifdef _USRDLL
+ #if defined(CRYPTOLIB_EXPORTS)
+ #define ECRYPTO_API __declspec(dllexport)
+ #elif defined(CRYPTOLIB_IMPORTS)
+ #define ECRYPTO_API __declspec(dllimport)
+ #else
+ #define ECRYPTO_API
+ #endif
+#else
+ #define ECRYPTO_API
+#endif
+
+////////////////////////////////////////////////////////////////////////////
+// Header File Include
+////////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include <string.h>
+#include "CC_Type.h"
+#include "drm_macro.h"
+#include "CC_Constants.h"
+#include "CC_Context.h"
+
+#ifdef _WIN32_WCE
+ #include <Winbase.h>
+#else
+ #include <time.h>
+#endif
+
+////////////////////////////////////////////////////////////////////////////
+// Global Variable
+////////////////////////////////////////////////////////////////////////////
+
+#endif
+
+/***************************** End of File *****************************/
+
diff --git a/SPC/Inc/DRMLog.h b/SPC/Inc/DRMLog.h
new file mode 100755
index 0000000..2b26ae6
--- /dev/null
+++ b/SPC/Inc/DRMLog.h
@@ -0,0 +1,101 @@
+#ifndef _DRMLOG_H_
+#define _DRMLOG_H_
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+
+#ifdef _MSC_VER
+ #ifdef DRMLOG_EXPORTS
+ #define DRMLOG_API __declspec(dllexport) __cdecl
+ #elif defined(DRMLOG_DLL)
+ #define DRMLOG_API __declspec(dllimport) __cdecl
+ #else
+ #define DRMLOG_API __cdecl
+ #endif
+#elif __linux
+ #define DRMLOG_API
+#else
+ #define DRMLOG_API __attribute__((cdecl))
+#endif
+
+#define LOG_BUFFER_LEN 1024
+
+typedef struct
+{
+ FILE* file;
+ int level;
+ int format;
+} DRMLOG_CTX;
+
+
+/* Log level */
+typedef enum
+{
+ LOG_DEBUG = 1,
+ LOG_INFO = 2,
+ LOG_WARN = 3,
+ LOG_ERROR = 4,
+ LOG_FATAL = 5
+} DRMLOG_LEVEL;
+
+
+/* Constants for logging format */
+typedef enum
+{
+ LOG_FORMAT_LEVEL = 0x0001,
+ LOG_FORMAT_TICK = 0x0002,
+ LOG_FORMAT_TIME = 0x0004,
+ LOG_FORMAT_FILE = 0x0008,
+ LOG_FORMAT_ALL = 0x000F
+} DRMLOG_FORMAT;
+
+/* Macro Functions */
+//#define DRMLOG_Msg(CTX, LEV, ...) DRMLOG_Message(CTX, LEV, __FILE__, __LINE__, __VA_ARGS__)
+#define DRMLOG_Msg(CTX, LEV, ...) DRMLOG_Message(CTX, LEV, __FILE__, __LINE__, ##__VA_ARGS__)
+#define DRMLOG_Hexa(CTX, LEV, MSG, BUF, LEN) DRMLOG_HexaBytes(CTX, LEV, __FILE__, __LINE__, MSG, BUF, LEN)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*! \brief Set log format
+ * \param ctx log context
+ * \param format log format(Ex. "LOG_FORMAT_LEVEL | LOG_FORMAT_TIME")
+ */
+void DRMLOG_API DRMLOG_SetFormat(DRMLOG_CTX* ctx, int format);
+
+/*! \brief Set logging level
+ * \param ctx log context
+ * \param level logging level
+ */
+void DRMLOG_API DRMLOG_SetLevel(DRMLOG_CTX* ctx, int level);
+
+/*! \brief Set \c FILE* to be written log strings
+ * \param ctx log context
+ * \param stream Destination \c FILE*. \c stdout can be used
+ */
+void DRMLOG_API DRMLOG_SetOutput(DRMLOG_CTX* ctx, FILE* output_file);
+
+/*! \brief Log a message
+ * \param ctx log context
+ * \param level logging level
+ * \param format [IN] formatted string like printf followed by variable number of arguments
+ */
+void DRMLOG_API DRMLOG_Message(DRMLOG_CTX* ctx, int level, const char* file_name, int line_number, const char* format, ...);
+
+/*! \brief Log a byte array in hexadecimal format
+ * \param ctx log context
+ * \param level logging level
+ * \param szMsg [IN] null-terminated string for short description
+ * \param bytes [IN] Pointer to buffer to print
+ * \param len length of \a bytes in bytes
+ */
+void DRMLOG_API DRMLOG_HexaBytes(DRMLOG_CTX* ctx, int level, const char* file_name, int line_number,
+ const char* szMsg, const unsigned char* bytes, int len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DRMLOG_H_
diff --git a/SPC/Inc/DtcpCTcpSocket.h b/SPC/Inc/DtcpCTcpSocket.h
new file mode 100755
index 0000000..ad41511
--- /dev/null
+++ b/SPC/Inc/DtcpCTcpSocket.h
@@ -0,0 +1,266 @@
+/**
+ * \file DtcpCTcpSocket.h
+ * \brief DtcpCTcpSocket class
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Soyoung Lee, Sangsu Choi
+ * Dept : Core S/W Component Lab, Digital Media Laboratory
+ * Creation date : 2008/09/02
+ */
+
+#ifndef __DTCPCTCPSOCKET_H
+#define __DTCPCTCPSOCKET_H
+
+
+#ifdef _WIN32_
+// <windows.h> <winsock.h> includeϰ
+// common C++ <winsock2.h> includeؼ struct redefinition problem ߻
+// ϹǷ literal ߰
+#define _WINSOCKAPI_
+ #include <windows.h>
+ #include <winsock2.h>
+ #include <windef.h>
+#elif defined _ANYVIEW
+// <windows.h> <winsock.h> includeϰ
+// common C++ <winsock2.h> includeؼ struct redefinition problem ߻
+// ϹǷ literal ߰
+#define _WINSOCKAPI_
+ #include <windows.h>
+ #include <winsock2.h>
+ #include <windef.h>
+#elif _LINUX
+ #include <unistd.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <arpa/inet.h>
+ #include <fcntl.h>
+#endif
+#include <cstdio>
+
+#include "CC_Type.h"
+//#include "DtcpCConstants.h"
+//#include "DtcpCErrorCode.h"
+
+////////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////////
+#define DTCP_QUE_LIMIT 5 // Maximum outstanding connection requests
+#define INFINITE_32 0xffffffff
+
+/**
+* DtcpCTcpSocket class
+*/
+class DtcpCTcpSocket
+{
+public:
+
+#ifndef _DTCP_PLUS
+ /**
+ constructor
+ */
+ DtcpCTcpSocket();
+ /**
+ constructor
+ @param uFd (Input) - File descriptor
+ */
+ DtcpCTcpSocket(cc_u32 uFd);
+
+#else
+ /**
+ constructor
+ */
+ DtcpCTcpSocket(bool bSetTTL = true);
+ /**
+ constructor
+ @param uFd (Input) - File descriptor
+ */
+ DtcpCTcpSocket(cc_u32 uFd, bool bSetTTL = true);
+#endif
+
+ /**
+ destructor
+ */
+ virtual ~DtcpCTcpSocket();
+
+ /**
+ Bind
+ @param pAddr (Input) - sockaddr structure
+ @return Errorcode
+ */
+ int bindSocket(sockaddr_in* pAddr);
+
+ /**
+ Connect Լ
+ @param pDest (Input) - sockaddr structure
+ */
+ long connectSocket(sockaddr_in* pDest);
+
+ /**
+ close socket Լ
+ @return Errorcode
+ */
+ int closeSocket(void);
+
+ /**
+ TTL
+ */
+#ifdef _DTCP_PLUS
+ void SetTTL (bool bSetTTL = true);
+#else
+ void SetTTL ();
+#endif
+
+ /**
+ read method
+ @param pbyBuf (Output)- ޽ pointer
+ @param dwBufLen (Input)- ũ
+ @param pdwRcvLen (Output)- ޽ ũ
+ @param dwMsec (Input) - timeout ð
+
+ @return Errorcode
+ */
+ int read(cc_u8* pbyBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwRcvLen,
+ cc_u32 dwMsec);
+
+ /*
+ //read in non-blocking mode
+ inline cc_u32 readNB(char* pchBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwRcvLen)
+ {
+ return read(pchBuf, dwBufLen, pdwRcvLen, 0);
+ };
+
+ */
+
+ // query TCP socket to see how many bytes are in read buffer
+ /**
+ read bufferȿ Ʈ ִ Ȯ
+ @param iBufLen (Output)- ޽ bytes
+ @return Errorcode
+ */
+ long readBufLen(int* iBufLen);
+
+ /**
+
+ @param pchBuf (Input) - ޽
+ @param dwBufLen (Input) - ޽
+ @param pdwSndLen (Output) - ޽
+
+ @return Errorcode
+ */
+ int send(const char* pchBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwSndLen);
+
+ /*int send(const cc_u8* pbyBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwSndLen);
+
+ */
+
+
+ /**
+ file descriptor
+ @return file descriptor value
+ */
+ inline int getFd(void) const {return m_iFd;};
+
+ //////////////////////////////////////////////////////////////////////
+ // Address(member attributes) interface functions
+ /**
+ local Address
+ @return address
+ */
+ inline cc_u32 getLocalAddr(void) const {return ntohl(m_AddrLocal.sin_addr.s_addr);};
+
+ /**
+ local port host byte
+ @return port
+ */
+ inline cc_u16 getLocalPort(void) const {return ntohs(m_AddrLocal.sin_port);};
+
+ /**
+ host byte ּ
+ @return address
+ */
+ inline cc_u32 getDestAddr(void) const {return ntohl(m_AddrDest.sin_addr.s_addr);};
+
+ /**
+ host byte port
+ @return port
+ */
+ inline cc_u16 getDestPort(void) const {return ntohs(m_AddrDest.sin_port);};
+
+ /**
+ local address string
+ @return address sting
+ */
+ inline char* getLocalAddrStr(void) {return inet_ntoa(m_AddrLocal.sin_addr);};
+
+ /**
+ address string
+ @return address string
+ */
+ inline char* getLocalDestStr(void) {return inet_ntoa(m_AddrDest.sin_addr);};
+
+ //////////////////////////////////////////////////////////////////////
+ // Non-blocking
+ /**
+ nonblocking ˻
+ @return nonblocking flag
+ */
+ inline bool isNonBlocking(void) const {return m_bNonBlocking;};
+
+ /**
+ nonblocking flag
+ @param bNonBlocking (Input) - nonbloking flag
+ @return
+ */
+ bool setNonBlocking(bool bNonBlocking);
+
+ /**
+ listen Լ
+ @return Errorcode
+ */
+ int listen(void);
+
+ /**
+ accept Լ
+ @return ο socket pointer
+ */
+ DtcpCTcpSocket* accept(void);
+protected:
+
+private:
+ /**
+ socket ʱȭ(file descriptor,address copy)
+ @return Errorcode
+ */
+ int init(void);
+
+//Variable
+public:
+protected:
+private:
+#ifdef _WIN32_
+ SOCKET m_iFd;
+#elif _ANYVIEW
+ SOCKET m_iFd;
+#else
+ int m_iFd;
+#endif
+ struct sockaddr_in m_AddrLocal;
+ struct sockaddr_in m_AddrDest;
+
+ bool m_bNonBlocking;
+#ifdef _DTCP_PLUS
+ bool m_bSetTTL;
+#endif
+};
+
+#endif
diff --git a/SPC/Inc/SAKEP.h b/SPC/Inc/SAKEP.h
new file mode 100755
index 0000000..a6cc268
--- /dev/null
+++ b/SPC/Inc/SAKEP.h
@@ -0,0 +1,319 @@
+/**
+ * \file SakepApi.h
+ * \brief API for key sharing and En/Decryption
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : sangsu choi
+ * Dept : S/W center Cloud Computing lab
+ * Creation date : 2012/10/29
+ */
+
+/*
+Sequnce Diagram
+
+Client Side Server Side
+ //////////////////////////////////////////////////////////////////////
+ AKE Step
+ //////////////////////////////////////////////////////////////////////
+
+ GeneratorServerHello ---------------------------------->
+
+ ParseServerHello
+
+ <---------------------------- GeneratorClientHello
+
+ ParseClientHello
+
+ GeneratorAck ------------------------------------------->
+ ParseAck
+
+ //////////////////////////////////////////////////////////////////////
+ Centent En/Decryption Step
+ //////////////////////////////////////////////////////////////////////
+ EncryptContents------------------------------------------>
+ DecryptContents
+*/
+
+#ifndef __SAKEPAPI_H
+#define __SAKEPAPI_H
+
+#define __STDC_LIMIT_MACROS
+#include <stdint.h>
+
+//#include <android/log.h>
+
+#include "CC_API.h"
+#include "Util.h"
+#include "base/aes.h"
+#include "WhiteBox/SDWAP.h"
+#include "WhiteBox/SDWAP_TblGen.h"
+#include "WhiteBox/SWAPv2.h"
+#include "WhiteBox/SWAPv2_defines.h"
+#include "DRMLog.h"
+
+#include "Wrapper_common.h"
+
+typedef uint8_t u_int8_t;
+
+
+
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+//#define SPC_INTERNAL
+
+extern DRMLOG_CTX SPCLogCTX;
+
+
+//++ added
+/*
+#ifndef PRINT_LOG
+#define PRINT_BUFFER(A, B, C)
+#else
+#define PRINT_LINE(format, ...) printf(format, ##__VA_ARGS__); __android_log_print(ANDROID_LOG_INFO, "SPC_SWC", format, ##__VA_ARGS__)
+#define PRINT_BUFFER(A, B, C) PrintHexBYTE(A, B, C)
+#endif
+*/
+//-- added
+
+#ifndef PRINT_LOG
+#define PRINT_BUFFER(A, B, C)
+#else
+#define PRINT_BUFFER PrintBYTE
+#endif
+
+
+
+
+// Key Length
+#define SAKEP_PRE_SK_MESSAGE_SIZE 396
+
+
+//using debugging - print hexbyte
+#define PrintHexBYTE(msg, Data, DataLen) { \
+ int idx; \
+ printf("%10s =\n", msg); \
+ for( idx=0; idx<(int)DataLen; idx++) { \
+ if( (idx!=0) && ((idx%16)==0) ) printf("\n"); \
+ if((idx % 4) == 0) printf(" 0x"); \
+ printf("%.2x", Data[idx]); \
+ } \
+ printf("\n"); \
+}
+
+
+
+//Data Type
+typedef enum{
+ CLIENT_HELLO=0x01,
+ SERVER_HELLO=0x02,
+ SERVER_ACKNOWLEDGEMENT=0x03,
+ CLIENT_ACKNOWLEDGEMENT=0x04,
+ INITIALSETUP=0x05,
+ UNEXPECTED_DATA=0x10,
+ ENCRYPTED_DATA=0x11,
+ ENCRYPTED_CREDENTAIL_DATA = 0x12
+}DataType;
+
+typedef enum{
+ NO_INTEGRITY=0x00,
+ CRC_32=0x01,
+ SHA1=0x11,
+ HMAC_SHA1=0x21
+}IntegrityType;
+
+
+
+
+typedef enum {
+ NO_ENCRYPTION = 0x00,
+ AES_E_CRT = 0x01
+}PayloadEncAlg;
+
+
+//#define SEQUENCE_NUM_MAX 4294967295
+
+////////////////////////////////////////////////////////////////
+//v2
+/**
+ * \brief Big number structure
+ *
+ * used for big number representation
+ */
+typedef struct {
+ unsigned int sign; /**< 0 for positive, 1 for negative number */
+ unsigned int Length; /**< number of valid integers */
+ unsigned int Size; /**< unsigned long size of allocated memory */
+ unsigned int *pData; /**< unsigned long array */
+} SAKEP_BIG_NUM;
+
+////////////////////////////////////////////////////////////////////////////
+// constant & context for DL BPKAS-SPEKE protocol
+////////////////////////////////////////////////////////////////////////////
+/**
+ * \brief DL BPKAS-SPEKE structure
+ *
+ * used for DL BPKAS-SPEKE parameters
+ */
+typedef struct {
+ unsigned int PrimeLen; /**< length of prime */
+ SDRM_BIG_NUM* p; /**< Prime */
+ SDRM_BIG_NUM* g; /**< generator */
+} SAKEP_BSContext;
+
+typedef struct _SAKEPContainer
+{
+// unsigned char pPiPrime[16]; /**< Algorithm */
+ SAKEP_BSContext *ctx; /**< Algorithm */
+} SAKEPContainer;
+
+////////////////////////////////////////////////////////////////
+
+class SAkepApi
+{
+
+public:
+
+ SPC_INTERNAL SAkepApi();
+ SPC_INTERNAL SAkepApi(Handle_CTX* ctx,ModeType eMode);
+ ~SAkepApi();
+
+
+ /**
+ * @fn int GeneratorServerHello(Handle_CTX* ctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pUserID,unsigned int nUserIDLen,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate Server Hello Message
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pPwd password
+ * @param [in] nPwdLen password Length
+ * @param [in] pUserID UserID
+ * @param [in] nUserIDLen UserID Length
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorServerHello
+ */
+ SPC_INTERNAL int GeneratorServerHello(Handle_CTX* ctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pUserID,unsigned int nUserIDLen,unsigned char* pOutMsg,unsigned int* nOutLen);
+
+ /**
+ * @fn int GeneratorAck(Handle_CTX* ctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate ACK Message
+ *
+ * @param [in] ctx Context Container
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorAck
+ */
+ SPC_INTERNAL int GeneratorServerAck(Handle_CTX* ctx,unsigned char* pOutMsg,unsigned int* nOutLen);
+
+
+
+ /**
+ * @fn int ParseAck(Handle_CTX* ctx,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Ack Message
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pMessage input Message
+ * @param [in] nInLen input Message len
+ * @return result of ParseAck
+ */
+ SPC_INTERNAL int ParserClientAck(Handle_CTX* ctx,unsigned char* pMessage,unsigned int nInLen);
+
+
+ /**
+ * @fn int ParseClientHello(Handle_CTX* ctx,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Client Hello Message
+ *
+ * @param [in/out] ctx Context Container
+ * @param [in] pMessage input Message
+ * @param [in] nInLen input Message Length
+ * @return result of ParseClientHello
+ */
+ SPC_INTERNAL int ParseClientHello(Handle_CTX* ctx,unsigned char* pPwd, unsigned int nPwdLen,unsigned char* pMessage,unsigned int nInLen);
+
+
+ /**
+ * @fn GeneratorRecordMsg ( Handle_CTX* ctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen)
+ * @brief Content Encrytion
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pPlainData Plain Data(original data)
+ * @param [in] uPlainDataLen Plain Data Length
+ * @param [out] pEncryptedData Encrypted Message(including Header)
+ * @param [out] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @return result of GeneratorRecordMsg
+ */
+ SPC_INTERNAL int GeneratorRecordMsg ( Handle_CTX* ctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen);
+
+ /**
+ * @fn int ParseRecordMsg ( Handle_CTX* ctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen)
+ * @brief Content Encrytion
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pEncryptedData Encrypted Message(including Header)
+ * @param [in] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @param [out] pPlainData Decrypted Message(only payload Message) - (delete Header)
+ * @param [out] uPlainDataLen Decrypted Message length(only payload Message length)-- (delete Header)
+ * @return result of ParseRecordMsg
+ */
+ SPC_INTERNAL int ParseRecordMsg ( Handle_CTX* ctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen);
+
+
+
+private :
+
+ SPC_INTERNAL int GetGy(unsigned char *pPin,unsigned int nPinLen,unsigned char* pGy,unsigned char* py) ;
+ SPC_INTERNAL int SetPrivatekeyY(unsigned char* pPrivateKey);
+ SPC_INTERNAL int GetPrivatekeyY(unsigned char* pPrivatekey);
+ SPC_INTERNAL int SetMac(unsigned char* pMac,unsigned int nMacLen);
+ SPC_INTERNAL int GetMac(unsigned char* pMac,unsigned int nMacLen);
+ SPC_INTERNAL int GetPeerMacLen(unsigned int* pPeerMacLen);
+
+ SPC_INTERNAL int SetPublicKeyY(unsigned char* pPublicKey);
+ SPC_INTERNAL int GetPublicKeyY(unsigned char* pPublicKey);
+
+
+ SPC_INTERNAL int SetWcValue(unsigned char* pWc);
+ SPC_INTERNAL void* SAKEPMalloc(int siz);
+ SPC_INTERNAL void SAKEPFree(void *ptr);
+ SPC_INTERNAL SAKEPContainer* create_SAKEPContainer();
+ SPC_INTERNAL void destroy_SAKEPContainer(SAKEPContainer* crt);
+ SPC_INTERNAL int SAKEP_SetBSParam(SAKEPContainer* crt,const unsigned char* pPrime, unsigned int nPrimeLen,const unsigned char* pGenerator, unsigned int nGeneratorLen);
+ SPC_INTERNAL int SAKEP_GenerateBSPublic(SAKEPContainer* crt, unsigned char *pPin,unsigned int nPinLen,unsigned char* pPriv/* x */, unsigned char* pPub/* g^x */);//,unsigned char* pWc,unsigned int* nWcLen); modified 0404
+ SPC_INTERNAL int SAKEP_GetAuthClient(unsigned char* pPrivY,unsigned int nPrivYLen,unsigned char* pGX,unsigned int nGXLen,unsigned char* pSharedSecret,unsigned int *pSharedSecretlen);
+
+ SPC_INTERNAL int GetMyMacLen(unsigned int* pMacLen);
+
+ SPC_INTERNAL int ApplyPasswordTransform(unsigned char* pPwd, unsigned int nPwdLen, unsigned char* pTransPwd, unsigned int* pTransPwdLen);
+ SPC_INTERNAL int ReversePasswordTransform(unsigned char* pTransPwd, unsigned int nTransPwdLen, unsigned char* pPwd, unsigned int* pPwdLen);
+ SPC_INTERNAL void ReverseKeyTransform(unsigned char* in, unsigned char* out);
+ SPC_INTERNAL void ApplyKeyTransform(unsigned char* in, unsigned char* out);
+
+ SPC_INTERNAL int EncryptGy(unsigned char* pPwd,unsigned int nPwdLen , unsigned char* pInGy, unsigned int nInGyLen, unsigned char* pOut, unsigned int* pOutLen);
+ SPC_INTERNAL int DecryptGx(unsigned char* pPwd,unsigned int nPwdLen , unsigned char* pInEncryptedGx, unsigned int nInEncryptedGxLen, unsigned char* pOut, unsigned int* pOutLen);
+
+ SPC_INTERNAL int EncryptParameterDataWithWB(unsigned char* pIn, unsigned char* pOut);
+ SPC_INTERNAL int DecryptParameterDataWithWB(unsigned char* pIn, unsigned char* pOut);
+
+
+
+ unsigned char m_pPrivatekeyY[SAKEP_DLBP_PAK_PARMETER_SIZE];
+ unsigned char m_pPublickeyY[SAKEP_DLBP_PAK_PARMETER_SIZE];
+ unsigned char *m_pMac;
+ unsigned int m_nMyMacLen;
+ unsigned char m_pWc[SAKEP_DLBP_PAK_PARMETER_SIZE];
+
+
+protected:
+
+
+
+};
+
+#endif
diff --git a/SPC/Inc/SPCApi.h b/SPC/Inc/SPCApi.h
new file mode 100755
index 0000000..8242de1
--- /dev/null
+++ b/SPC/Inc/SPCApi.h
@@ -0,0 +1,156 @@
+/**
+ * \file SPCApi.h
+ * \brief API for key sharing and En/Decryption
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : sangsu choi
+ * Dept : S/W center Cloud Computing lab
+ * Creation date : 2013/01/15
+ */
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "SAKEP.h"
+#include "Util.h"
+#include "DRMLog.h"
+
+
+
+class SPCApi
+{
+public:
+ /**
+ * @fn SPCApi()
+ * @brief SPCApi Constrctor
+ *
+ * @return None
+ */
+ SPC_INTERNAL SPCApi();
+
+ /**
+ * @fn SPCApi()
+ * @brief SPCApi Destrctor
+ *
+ * @return None
+ */
+ ~SPCApi();
+
+
+ /**
+ * @fn InitSPCContext(SPCHandle_CTX* pSPCctx,ModeType eMode,unsigned char* pUserID,unsigned int nUserIDLen)
+ * @brief SPC Context initialize
+ * @param [in] pSPCctx context of SPC
+ * @param [in] eMode Server or Client
+ * @param [in] pUserID UserID
+ * @param [in] nUserIDLen UserID Length
+ *
+ * @return None
+ */
+ SPC_INTERNAL int InitSPCContext(SPCHandle_CTX* pSPCctx,ModeType eMode,unsigned char* pUserID,unsigned int nUserIDLen);
+
+ /**
+ * @fn void DestroySPCContext(SPCHandle_CTX* pSPCctx)
+ * @brief Destroy Context
+ * @param [in] pSPCctx context of SPC
+ *
+ * @return None
+ */
+ SPC_INTERNAL void DestroySPCContext(SPCHandle_CTX* pSPCctx);
+
+ /**
+ * @fn void ClearSPCSessionContext(SPCHandle_CTX* pSPCctx)
+ * @brief Clear Context
+ * @param [in] pSPCctx context of SPC
+ *
+ * @return None
+ */
+ SPC_INTERNAL void ClearSPCSessionContext(SPCHandle_CTX* pSPCctx);
+
+ /**
+ * @fn int ParseClientHello(SPCHandle_CTX* pSPCctx,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Client Hello Message
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pMessage Received Client Hello Message
+ * @param [in] nInLen Received Client Hello Message Length
+ * @return result of ParseClientHello
+ */
+ SPC_INTERNAL int ParseClientHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd, unsigned int nPwdLen,unsigned char* pMessage,unsigned int nInLen);
+
+ /**
+ * @fn int GeneratorServerHello(SPCHandle_CTX* pSPCctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate Server Hello Message
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pPwd common password Data
+ * @param [in] pPwdLen password Data length
+ * @param [in] pID Client's ID Value
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorServerHello
+ */
+ SPC_INTERNAL int GeneratorServerHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pID,unsigned char* pOutMsg,unsigned int* nOutLen);
+
+
+ /**
+ * @fn int GeneratorServerAck(SPCHandle_CTX* pSPCctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate Server Acknowledgement Message
+ *
+ * @param [in] ctx Context Container
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorServerAck
+ */
+ SPC_INTERNAL int GeneratorServerAck(SPCHandle_CTX* pSPCctx,unsigned char* pOutMsg,unsigned int* nOutLen);
+
+
+ /**
+ * @fn int ParseClientAck(SPCHandle_CTX* pSPCctx,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Client Acknowledgement Message
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pMessage input Message
+ * @param [in] nInLen input Message len
+ * @return result of ParseClientAck
+ */
+ SPC_INTERNAL int ParseClientAck(SPCHandle_CTX* pSPCctx,unsigned char* pMessage,unsigned int nInLen);
+
+
+ /**
+ * @fn int GeneratorRecordMsg ( Handle_CTX* ctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen)
+ * @brief Content Encrytion
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pPlainData Plain Data(original data)
+ * @param [in] uPlainDataLen Plain Data Length
+ * @param [out] pEncryptedData Encrypted Message(including Header)
+ * @param [out] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @return result of GeneratorRecordMsg
+ */
+ SPC_INTERNAL int GeneratorRecordMsg ( SPCHandle_CTX* pSPCctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen);
+
+ /**
+ * @fn int ParseRecordMsg ( SPCHandle_CTX* pSPCctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen);
+ * @brief Content Decryption
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pEncryptedData Encrypted Message(including Header)
+ * @param [in] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @param [out] pPlainData Decrypted Message(only payload Message) - (delete Header)
+ * @param [out] uPlainDataLen Decrypted Message length(only payload Message length)-- (delete Header)
+ * @return result of ParseRecordMsg
+ */
+ SPC_INTERNAL int ParseRecordMsg ( SPCHandle_CTX* pSPCctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen);
+
+
+private:
+
+
+ SAkepApi m_SAkep;
+
+};
+
+
+
diff --git a/SPC/Inc/SPC_Table.h b/SPC/Inc/SPC_Table.h
new file mode 100755
index 0000000..a032ca0
--- /dev/null
+++ b/SPC/Inc/SPC_Table.h
@@ -0,0 +1,20563 @@
+
+static unsigned char pParameterDataEncTbl[] =
+{
+0x08,0x72,0x47,0x7B,0x94,0xA3,0x9F,0x0A,0xB0,0x99,0x28,0x14,0x26,0x1A,0xAC,0xB7,
+0xB5,0x3D,0xB5,0x89,0x0A,0x4F,0x73,0x78,0x24,0x92,0xB7,0x8B,0x46,0x7A,0x28,0x53,
+0x11,0xF8,0xD4,0xE8,0x2B,0x59,0x65,0x4F,0xDB,0x20,0xFA,0xC6,0x5F,0x63,0x4A,0x28,
+0xAD,0xA1,0x31,0x0D,0xB0,0x82,0xBE,0x0F,0x32,0x93,0xA0,0x9C,0xA6,0x9A,0xA4,0x3F,
+0xC7,0x52,0xA8,0x94,0xCC,0x37,0x0B,0xC6,0x5E,0x1F,0x40,0x7C,0x5E,0x62,0x6A,0x09,
+0x2A,0x59,0x4E,0x72,0x15,0xF4,0xC8,0xDC,0xB3,0x67,0xD5,0xE9,0xB7,0x8B,0xC4,0x4E,
+0x24,0xFF,0xE6,0xDA,0x61,0xC1,0xFD,0x9D,0xEA,0xDB,0x30,0x0C,0x8F,0xB3,0x82,0x30,
+0xCB,0xFE,0x08,0x34,0x0E,0x6F,0x53,0x5C,0x88,0x9E,0x17,0x2B,0x0F,0x33,0x8A,0xB8,
+0x53,0xA2,0xCC,0xF0,0xF1,0x85,0xB9,0x49,0x76,0xC3,0xB4,0x88,0x7D,0x41,0x3F,0x7F,
+0x8D,0x80,0x30,0x0C,0x60,0xD6,0xEA,0x8B,0xA9,0xBE,0x16,0x2A,0x1E,0x22,0xEA,0xC9,
+0x32,0xC5,0xCA,0xF6,0xC8,0x17,0x2B,0xE2,0x86,0x57,0xD0,0xEC,0x3A,0x06,0xFE,0xF9,
+0xF5,0x6D,0xA5,0x99,0x49,0x40,0x7C,0x34,0xCA,0x14,0xDF,0xE3,0x7F,0x43,0x4E,0x0C,
+0xC9,0xF4,0x00,0x3C,0xCE,0x3F,0x03,0xCC,0x38,0x91,0xA8,0x94,0x7E,0x42,0x6E,0x2D,
+0x07,0xC2,0xF8,0xC4,0x04,0xE7,0xDB,0xDE,0x10,0x4D,0x5C,0x60,0x55,0x69,0x39,0x51,
+0xE4,0x6F,0xB6,0x8A,0x7B,0x4D,0x71,0x0B,0xCD,0x21,0xED,0xD1,0xE1,0xDD,0x65,0xB9,
+0x3B,0x5B,0x5D,0x61,0x13,0xDC,0xE0,0xF2,0xB6,0x43,0xF4,0xC8,0x77,0x4B,0x4C,0x06,
+0x22,0xD1,0xCE,0xF2,0x72,0xDA,0xE6,0x95,0xC0,0x16,0xD7,0xEB,0x9E,0xA2,0xE2,0x41,
+0x8F,0x8A,0x38,0x04,0xB2,0x8A,0xB6,0x05,0x11,0xA2,0xB2,0x8E,0xDD,0xE1,0x33,0xD3,
+0xA0,0x1B,0x86,0xBA,0xF2,0x9A,0xA6,0x55,0xE7,0xEC,0x0A,0x36,0xF7,0xCB,0x44,0x8E,
+0x52,0xB4,0xDB,0xE7,0xD1,0x84,0xB8,0x68,0x6E,0x0B,0x64,0x58,0xC9,0xF5,0x63,0x97,
+0x36,0xE1,0xEA,0xD6,0xDF,0x2C,0x10,0xCE,0x91,0xB9,0x29,0x15,0x0D,0x31,0xFB,0xCB,
+0x37,0xF7,0xFD,0xC1,0xFA,0x1A,0x26,0xDD,0x7D,0x2E,0x52,0x6E,0xCD,0xF1,0x73,0x83,
+0xC1,0x7C,0x80,0xBC,0xB1,0x95,0xA9,0x19,0x6B,0x2F,0x45,0x79,0xA0,0x9C,0xC5,0x58,
+0xBF,0xBF,0x3D,0x01,0x42,0xDF,0xE3,0xA0,0x29,0xA5,0x8D,0xB1,0x61,0x5D,0x6D,0x31,
+0xD0,0x7E,0x93,0xAF,0x19,0x54,0x68,0x70,0x92,0x47,0xD4,0xE8,0xD0,0xEC,0x01,0xEC,
+0xEF,0xFB,0x29,0x15,0x03,0xD8,0xE4,0xE6,0xCF,0x30,0xFE,0xC2,0xD3,0xEF,0x50,0xBE,
+0x17,0xD6,0xFC,0xC0,0x87,0xB8,0x84,0x02,0x08,0x85,0x8C,0xB0,0xF3,0xCF,0x54,0x9A,
+0x7C,0x33,0x72,0x4E,0x64,0xF6,0xCA,0xAF,0x2F,0x7F,0x51,0x6D,0xFE,0xC2,0x66,0xA5,
+0x9B,0xBA,0x1C,0x20,0xE0,0x96,0xAA,0x4B,0xAE,0x8B,0x24,0x18,0x33,0x0F,0xDC,0xD2,
+0x79,0x01,0x45,0x79,0xFC,0x32,0x0E,0xF3,0x45,0x29,0x6D,0x51,0x67,0x5B,0x0C,0x56,
+0xB3,0x13,0x9D,0xA1,0xBD,0x35,0x09,0xB5,0x22,0x48,0x6B,0x57,0x12,0x2E,0xF8,0xD7,
+0x76,0xB1,0xFA,0xC6,0x31,0xD5,0xE9,0xD9,0x5F,0xF0,0xAE,0x92,0x8C,0xB0,0xD3,0x62,
+0x90,0x2E,0x83,0xBF,0xF4,0xB2,0x8E,0x7B,0xD4,0x06,0xD3,0xEF,0xC5,0xF9,0x71,0x89,
+0xAB,0x8F,0x19,0x25,0x25,0xF1,0xCD,0xE9,0x0D,0xA1,0xAD,0x91,0x63,0x5F,0x1C,0x42,
+0x38,0x47,0x42,0x7E,0x56,0xFB,0xC7,0x90,0x1A,0x4F,0x54,0x68,0xAD,0x91,0xF7,0x67,
+0xF9,0xC1,0x05,0x39,0xD9,0x04,0x38,0xE0,0x98,0x45,0xDC,0xE0,0x0E,0x32,0xAA,0x99,
+0xD2,0x74,0x9B,0xA7,0x05,0xF0,0xCC,0xC8,0xEE,0x10,0xFF,0xC3,0xFF,0xC3,0x46,0x84,
+0x98,0xA6,0x03,0x3F,0x23,0xD9,0xE5,0xC7,0xC3,0xE8,0x2A,0x16,0x2F,0x13,0x8E,0x9C,
+0x55,0x8C,0xE4,0xD8,0x7A,0x5A,0x66,0x1D,0xBB,0x74,0xCE,0xF2,0xBE,0x82,0xE6,0x65,
+0x69,0x15,0x41,0x7D,0x3C,0x62,0x5E,0x63,0x9E,0x9F,0x00,0x3C,0x11,0x2D,0xA9,0x85,
+0x6C,0x27,0x76,0x4A,0x7D,0x65,0x59,0x25,0xA7,0x77,0xD1,0xED,0xBC,0x80,0x97,0x16,
+0x2D,0x61,0x71,0x4D,0xE9,0x01,0x3D,0xD5,0x0E,0x5F,0x50,0x6C,0xAE,0x92,0xA6,0x35,
+0xD7,0x46,0xAC,0x90,0x89,0x10,0x2C,0xA4,0x66,0x18,0x7F,0x43,0x44,0x78,0x59,0x20,
+0x4B,0x3E,0x48,0x74,0x84,0xA7,0x9B,0x1E,0x39,0x7E,0x46,0x7A,0x09,0x35,0xEB,0xDF,
+0xBC,0xA3,0x22,0x1E,0xDD,0x24,0x18,0xC4,0x1C,0x95,0x88,0xB4,0x21,0x1D,0xED,0xF1,
+0x86,0x14,0xAF,0x93,0xCA,0x1F,0x23,0xE8,0x07,0xA3,0xA5,0x99,0xC0,0xFC,0x41,0xBC,
+0xB8,0x87,0x02,0x3E,0xB4,0xA2,0x9E,0x2B,0x04,0x5D,0x58,0x64,0x3E,0x02,0xEE,0xED,
+0x58,0x36,0x53,0x6F,0x51,0xC4,0xF8,0xA8,0x18,0x5E,0x47,0x7B,0xF5,0xC9,0x35,0xFD,
+0xE7,0x73,0xA9,0x95,0x68,0x56,0x6A,0x03,0x82,0x9C,0x1F,0x23,0x28,0x14,0xCF,0xDA,
+0x78,0x17,0x52,0x6E,0xDE,0x3B,0x07,0xD8,0x64,0x09,0x6C,0x50,0x4A,0x76,0x3A,0x4D,
+0x34,0xEB,0xE2,0xDE,0x12,0xCB,0xF7,0xE4,0x2C,0x81,0xAC,0x90,0x39,0x05,0xAF,0xAB,
+0x62,0x81,0xDE,0xE2,0x2C,0x66,0x5A,0x77,0x69,0x3E,0x56,0x6A,0xBB,0x87,0xD6,0x50,
+0x6F,0x3B,0x69,0x55,0xBA,0x0A,0x36,0x8D,0x94,0x9D,0x08,0x34,0xBF,0x83,0xC6,0x44,
+0xFD,0xE5,0x25,0x19,0x3D,0x75,0x49,0x75,0x3A,0x80,0xBB,0x87,0x97,0xAB,0xC0,0x6A,
+0x5C,0x12,0x73,0x4F,0x75,0xE5,0xD9,0xAD,0x57,0xE3,0xB5,0x89,0x1B,0x27,0xDA,0xFC,
+0x5B,0x2A,0x4C,0x70,0xA8,0x06,0x3A,0x93,0x6C,0x1A,0x77,0x4B,0x49,0x75,0x6B,0x1F,
+0x88,0xB2,0x07,0x3B,0x00,0xC7,0xFB,0xFA,0xAA,0x40,0xEB,0xD7,0xBD,0x81,0xB7,0x37,
+0x1E,0x48,0x6B,0x57,0xD4,0xB3,0x8F,0x5A,0xF6,0xD8,0x2F,0x13,0x2E,0x12,0xAE,0xBD,
+0xC2,0x60,0x9F,0xA3,0xE5,0xA1,0x9D,0x79,0x7A,0x1B,0x60,0x5C,0x1D,0x21,0xBB,0x9B,
+0x26,0xF5,0xEE,0xD2,0xA7,0xB9,0x85,0x23,0x40,0x0D,0x4C,0x70,0x74,0x48,0x1D,0x54,
+0xB6,0x21,0xAA,0x96,0x70,0xD2,0xEE,0x9F,0xEF,0xFF,0x11,0x2D,0x98,0xA4,0x83,0x26,
+0xD5,0x4C,0xA4,0x98,0x9A,0x0B,0x37,0xAC,0x4A,0x0F,0x44,0x78,0x20,0x1C,0xCD,0xD0,
+0xF3,0x43,0x8D,0xB1,0x27,0xF9,0xC5,0xE3,0x3C,0x5A,0x67,0x5B,0xAB,0x97,0x96,0x00,
+0x8C,0x96,0x27,0x1B,0xE1,0x81,0xBD,0x5D,0xF0,0x02,0xF3,0xCF,0xBA,0x86,0xF6,0x71,
+0xD6,0x9E,0xCA,0xC8,0xCE,0x88,0x92,0x86,0x61,0x29,0xB8,0x45,0xAC,0x97,0xEF,0xA7,
+0xAD,0xE5,0x5D,0x24,0x0E,0x00,0xDA,0x46,0x76,0x3E,0xAE,0x44,0x89,0x84,0xD9,0x91,
+0xBA,0xF2,0x5C,0x32,0x63,0xB6,0x01,0x2B,0x0B,0x43,0x25,0xB2,0xC2,0x40,0x56,0x1E,
+0x72,0x3A,0xD6,0x70,0xA2,0x1E,0x68,0xEA,0xB6,0xFE,0xE6,0xCC,0x31,0xF9,0x1C,0x54,
+0x28,0x60,0x65,0x99,0x5D,0x91,0x18,0x15,0x45,0x0D,0x88,0x51,0x01,0xCC,0x19,0x51,
+0x4D,0x05,0xD1,0x48,0x1E,0x40,0x8A,0x56,0xB3,0xFB,0xD3,0xFC,0xC1,0x5C,0x49,0x01,
+0xF5,0xBD,0x9F,0xBE,0x34,0x37,0xD7,0x7C,0x0D,0x45,0x42,0xD3,0x81,0x0C,0x59,0x11,
+0x9B,0xD3,0x78,0x37,0x0A,0x10,0xCE,0x42,0x50,0x18,0xED,0x21,0xA2,0x31,0x47,0x0F,
+0xDB,0x93,0xF8,0xF7,0xF0,0xAF,0x8B,0xB8,0x97,0xDF,0xE3,0xE8,0x93,0x12,0x55,0x1D,
+0x92,0xDA,0x5A,0x1C,0xA4,0x7F,0x0F,0xEC,0xCE,0x86,0x58,0x0A,0x8F,0xAA,0xF1,0xB9,
+0x94,0xDC,0x3B,0x7B,0xD1,0x8B,0x8E,0x99,0x16,0x5E,0x4A,0xC0,0xCE,0xEC,0xF6,0xBE,
+0x51,0x19,0x83,0x06,0x4F,0xA0,0x3B,0x07,0x71,0x39,0xE8,0x05,0x42,0x80,0x16,0x5E,
+0x2B,0x63,0x34,0xCB,0x13,0x72,0xB5,0x5B,0x18,0x50,0x27,0xA3,0x6A,0x29,0x97,0xDF,
+0x01,0x49,0x43,0x96,0x10,0x23,0xE7,0x58,0xA2,0xEA,0xA2,0x9C,0x70,0xBF,0x1B,0x53,
+0x73,0x3B,0xF6,0x51,0x30,0x27,0xC3,0x78,0x77,0x3F,0x8F,0x64,0xF4,0x5B,0x7B,0x33,
+0xAE,0xE6,0x0C,0x76,0x3D,0x15,0xFC,0x75,0xF9,0xB1,0x6A,0x0F,0x17,0xF6,0x35,0x7D,
+0xBF,0xF7,0x6C,0x07,0x9D,0x19,0x50,0xD5,0x23,0x6B,0x0B,0xB4,0xBF,0x9F,0xF4,0xBC,
+0x2A,0x62,0x14,0xEA,0x74,0xB7,0x17,0x3C,0xC5,0x8D,0x00,0x59,0x66,0x85,0x37,0x7F,
+0xCF,0x87,0xA8,0xB3,0x4C,0xF1,0x69,0x04,0x6D,0x25,0xA6,0x57,0x12,0xC4,0x02,0x4A,
+0xE8,0xA0,0xED,0xD1,0xCC,0xF9,0xE1,0x84,0x83,0xCB,0xA7,0xB8,0x7D,0x05,0xAC,0xE4,
+0xD7,0x9F,0xEA,0xE9,0xE5,0xDF,0xEE,0xAD,0xCC,0x84,0x2B,0x7B,0xE7,0x53,0x60,0x28,
+0x48,0x00,0xE1,0x7D,0x85,0x5B,0x0A,0xCD,0x3E,0x76,0x64,0xC6,0x79,0x21,0x8C,0xC4,
+0x05,0x4D,0x53,0x82,0x9C,0x39,0x71,0xD4,0x5F,0x17,0xA1,0x62,0x58,0x16,0x9A,0xD2,
+0x5F,0x17,0xE0,0x6B,0x65,0xD7,0x66,0x2D,0xBA,0xF2,0xF8,0xDE,0xC3,0x56,0x41,0x09,
+0x57,0x1F,0xE2,0x61,0xBD,0x1D,0x74,0xF5,0x8B,0xC3,0xAD,0xBA,0xBD,0x95,0xFC,0xB4,
+0xA3,0xEB,0x3E,0x49,0x96,0x4A,0x08,0xDE,0x73,0x3B,0x9B,0x74,0x77,0x87,0x24,0x6C,
+0x12,0x5A,0x52,0x94,0x22,0x16,0xE0,0x6A,0x3D,0x75,0x36,0x97,0x08,0x52,0x8E,0xC6,
+0x0B,0x43,0x30,0xEF,0xB4,0x3F,0x5F,0xFC,0xD6,0x9E,0x02,0x48,0x60,0xAB,0x1F,0x57,
+0x4B,0x03,0xB0,0x2F,0xBE,0x4C,0x26,0xF6,0x47,0x0F,0xFB,0x20,0x82,0x10,0x46,0x0E,
+0xE9,0xA1,0xCD,0xF0,0xDD,0x99,0x90,0x95,0xBB,0xF3,0xD9,0xFE,0x13,0xD2,0x15,0x5D,
+0x2F,0x67,0x24,0xDF,0xF9,0x8D,0xA0,0xB1,0x41,0x09,0x9C,0x41,0xBB,0xBB,0xD4,0x9C,
+0x20,0x68,0x67,0x93,0xBC,0x3D,0x55,0xF4,0x2E,0x66,0x34,0x86,0x3A,0x6D,0x83,0xCB,
+0xF7,0xBF,0xEE,0xCD,0x7C,0xB5,0x1D,0x34,0xE2,0xAA,0x62,0x1C,0xC9,0xD4,0xC9,0x81,
+0x44,0x0C,0xF3,0x63,0x54,0xB3,0x33,0x1C,0xAE,0xE6,0xBC,0x8E,0x4E,0x2C,0xB6,0xFE,
+0x4A,0x02,0x90,0x0E,0xD8,0xA9,0xA5,0x90,0xF8,0xB0,0x4B,0x2F,0x06,0xF4,0x26,0x6E,
+0x88,0xC0,0x69,0x35,0x8A,0x18,0x46,0xC2,0xC7,0x8F,0x73,0x28,0xDB,0xCA,0xC5,0x8D,
+0xE0,0xA8,0xEF,0xDB,0xEB,0xBC,0x83,0xA3,0x22,0x6A,0x2A,0x94,0x1B,0x5A,0x95,0xDD,
+0x93,0xDB,0x7A,0x3D,0x89,0x49,0x14,0xC1,0xD9,0x91,0x4E,0x0B,0xAD,0x81,0xF8,0xB0,
+0x53,0x1B,0xF2,0x75,0xFA,0xDC,0xF2,0xB2,0x69,0x21,0xB2,0x47,0x61,0xBD,0x08,0x40,
+0xA9,0xE1,0x4D,0x30,0x78,0xA5,0x09,0x30,0x55,0x1D,0xD8,0x11,0x5F,0x2E,0xA5,0xED,
+0xEE,0xA6,0x8C,0xB6,0x5B,0xF0,0x7F,0x13,0x21,0x69,0x78,0xC5,0x03,0xC6,0x11,0x59,
+0xBB,0xF3,0x7C,0x13,0xE3,0xBE,0x89,0xAB,0x2F,0x67,0x15,0xA6,0xE9,0xF5,0xC8,0x80,
+0x98,0xD0,0x29,0x65,0x68,0xE5,0x59,0x20,0x06,0x4E,0x1A,0x80,0x54,0xBA,0x3A,0x72,
+0x0C,0x44,0x71,0xA9,0x79,0x85,0x28,0x31,0xAC,0xE4,0xCF,0xFF,0x92,0x04,0x42,0x0A,
+0x14,0x5C,0x33,0xF3,0x7E,0xC4,0x6E,0x36,0x8C,0xC4,0xEB,0xFB,0x73,0xA3,0x04,0x4C,
+0xD0,0x98,0xAB,0xAF,0xED,0xDD,0xE4,0xA5,0xE0,0xA8,0x11,0x6D,0xA7,0x03,0x70,0x38,
+0x9F,0xD7,0x68,0x23,0xDE,0xC8,0xC2,0x96,0x14,0x5C,0x39,0xB1,0x96,0x20,0x62,0x2A,
+0xB3,0xFB,0x7E,0x19,0xB7,0x6E,0x0D,0xFF,0x65,0x2D,0xAC,0x55,0xD4,0x7A,0x7A,0x32,
+0x00,0x48,0x63,0xB7,0x3C,0x35,0xDD,0x74,0x10,0x58,0x2D,0xA1,0x76,0x91,0x33,0x7B,
+0xD5,0x9D,0x9B,0x9A,0xEC,0xFD,0xC5,0xA4,0x88,0xC0,0xFF,0xEB,0x50,0x9E,0x1A,0x52,
+0x31,0x79,0x07,0xE2,0x7D,0x95,0x3C,0x35,0x6F,0x27,0xD5,0x26,0x09,0x44,0x99,0xD1,
+0xFF,0xB7,0xEC,0xC7,0xD2,0xDA,0xDC,0x9A,0xCA,0x82,0x4C,0x1A,0x4F,0x3A,0xA1,0xE9,
+0x2C,0x64,0x75,0x8D,0x06,0x02,0xD0,0x4E,0x08,0x40,0x77,0xE3,0x87,0x22,0x71,0x39,
+0x52,0x1A,0xD2,0x54,0xA0,0x6F,0x1B,0xE8,0x92,0xDA,0xD6,0xD8,0x56,0xB0,0x32,0x7A,
+0xAB,0xE3,0x3C,0x43,0x6E,0x84,0x3E,0x26,0xC9,0x81,0x1E,0x4B,0x25,0xC9,0x38,0x70,
+0x23,0x6B,0x36,0xC1,0xCD,0xD9,0xC0,0x85,0x8E,0xC6,0x98,0x8A,0xAA,0xB9,0xC7,0x8F,
+0x77,0x3F,0xE6,0x45,0xE2,0x9E,0xA8,0xAA,0xA9,0xE1,0xFA,0xCF,0xAE,0x9D,0xE7,0xAF,
+0x5A,0x12,0xD0,0x5E,0x03,0x32,0xE5,0x4B,0x24,0x6C,0x4D,0xF5,0xB9,0xB1,0xDC,0x94,
+0xA7,0xEF,0x2E,0x5D,0xFD,0x9D,0xB4,0xB5,0x89,0xC1,0xDE,0xCB,0xC7,0x72,0x61,0x29,
+0xB8,0xF0,0x2D,0x41,0x36,0x46,0xA4,0x7E,0xD8,0x90,0x6F,0x2B,0x22,0xF1,0x07,0x4F,
+0x2E,0x66,0x04,0xFE,0x7F,0xE4,0x4F,0x37,0xFD,0xB5,0x7E,0x1F,0x0E,0x7C,0xA6,0xEE,
+0xAF,0xE7,0x2C,0x57,0x6D,0xD5,0x6C,0x25,0xFA,0xB2,0x38,0x5E,0x9A,0x8C,0xC2,0x8A,
+0x80,0xC8,0x6B,0x3F,0x87,0x2A,0x79,0xCF,0x27,0x6F,0x1F,0xA4,0xFA,0xFD,0xD3,0x9B,
+0xB9,0xF1,0x0D,0x60,0xCA,0x98,0x86,0x82,0xC3,0x8B,0x67,0x38,0xF7,0x47,0x64,0x2C,
+0xFE,0x39,0x91,0x29,0xAE,0x85,0x3D,0x7D,0xED,0x6E,0x6D,0xD5,0xA0,0x18,0x9A,0x6C,
+0x3E,0xA9,0xC1,0x79,0x03,0x73,0xCB,0x26,0x7F,0xBF,0x2E,0x96,0xC5,0x7D,0x2E,0xBD,
+0x7E,0xF9,0xD1,0x69,0x2C,0xCD,0x75,0xB7,0x22,0xC8,0x04,0xBC,0x7D,0xC5,0x60,0x4B,
+0x5D,0xC4,0xCF,0x77,0xDE,0x90,0x28,0x18,0x3B,0xEF,0x3A,0x82,0x13,0xAB,0x87,0xC2,
+0x53,0x62,0x67,0xDF,0xBA,0xA1,0x19,0x4D,0x67,0x77,0xFE,0x46,0x5E,0xE6,0x35,0x3D,
+0x76,0x71,0x51,0xE9,0xBB,0xB6,0x0E,0x5B,0x2F,0xFF,0x3E,0x86,0x25,0x9D,0xA2,0xD1,
+0x3D,0xB5,0xDE,0x66,0x4D,0xCB,0x73,0xD0,0xF4,0x49,0x53,0xEB,0x32,0x8A,0xA3,0xC7,
+0xCE,0x0C,0x94,0x2C,0x33,0x76,0xCE,0x13,0x9D,0xE1,0x92,0x2A,0xFA,0x42,0x29,0x85,
+0x95,0xDC,0x1F,0xA7,0x5C,0xD8,0x60,0xD2,0x40,0x8D,0x23,0x9B,0xA3,0x1B,0xCB,0x3E,
+0x8F,0x4A,0x93,0x2B,0x63,0x62,0xDA,0x57,0x12,0xDC,0x20,0x98,0x89,0x31,0xBC,0x63,
+0x0B,0xAE,0xF3,0x4B,0x9B,0xB7,0x0F,0x7A,0x36,0xD8,0x00,0xB8,0xFB,0x43,0x09,0xA4,
+0xE8,0x03,0xBD,0x05,0xF0,0x39,0x81,0x9F,0x09,0xEA,0x0D,0xB5,0x26,0x9E,0xF3,0x83,
+0x6C,0xE7,0xDD,0x65,0x17,0x57,0xEF,0x16,0x7E,0x50,0xC0,0x78,0x53,0xEB,0x07,0x02,
+0x70,0x5F,0x79,0xC1,0xF5,0x0E,0xB6,0xAD,0xFA,0x80,0x94,0x2C,0x1A,0xA2,0xA5,0xE9,
+0x31,0x19,0x7E,0xC6,0x3F,0xD6,0x6E,0xBF,0x7B,0x74,0xE1,0x59,0x1C,0xA4,0xC4,0x8E,
+0xBD,0x75,0x9E,0x26,0xFA,0xB1,0x09,0x1D,0xCE,0x5F,0x7F,0xC7,0xD9,0x61,0x7C,0xF3,
+0x18,0xA6,0xE8,0x50,0x84,0x0C,0xB4,0xDE,0x1B,0x20,0xD5,0x6D,0x5F,0xE7,0x15,0x1C,
+0x86,0xD4,0x04,0xBC,0x39,0xFE,0x46,0x91,0xFF,0xA4,0xB5,0x0D,0xC0,0x78,0x1E,0x88,
+0xA7,0xE3,0x12,0xAA,0x9D,0x9F,0x27,0x54,0x84,0xC6,0xAC,0x14,0x8D,0x35,0xAC,0x77,
+0x3C,0xA3,0xC9,0x71,0x21,0x7A,0xC2,0x0D,0x93,0x28,0x55,0xED,0xD7,0x6F,0x1F,0x9E,
+0x40,0x6A,0x7C,0xC4,0x4B,0xE3,0x5B,0xFE,0xA5,0xE6,0xAD,0x15,0x37,0x8F,0x93,0xF2,
+0x99,0x70,0xBF,0x07,0xA6,0x05,0xBD,0xF5,0xE2,0x48,0x44,0xFC,0xA2,0x1A,0xEB,0x1F,
+0xED,0x31,0x8A,0x32,0xA8,0xAD,0x15,0x53,0x9C,0x0E,0x7C,0xC4,0x47,0xFF,0x57,0x46,
+0x82,0xF0,0x24,0x9C,0x47,0x43,0xFB,0x52,0x14,0x06,0xFC,0x44,0x60,0xD8,0x12,0x24,
+0x7D,0xE5,0xCE,0x76,0xDF,0x87,0x3F,0x0E,0xD3,0xB3,0x8E,0x36,0xC3,0x7B,0x4F,0xDA,
+0xEC,0x27,0x9D,0x25,0x01,0x7B,0xC3,0x2C,0x65,0x66,0xED,0x55,0x61,0xD9,0x32,0x05,
+0x44,0x4E,0x5C,0xE4,0xBE,0x81,0x39,0x69,0x55,0x72,0xC9,0x71,0xA7,0x1F,0xDB,0x2A,
+0xC5,0x98,0x0B,0xB3,0x79,0xEE,0x56,0xC1,0xA0,0xC2,0x8C,0x34,0xA8,0x10,0x98,0x66,
+0x42,0x60,0x74,0xCC,0x45,0x4B,0xF3,0x58,0x81,0xE2,0x8D,0x35,0xDF,0x67,0x1D,0x94,
+0x88,0x72,0xAC,0x14,0x8B,0xB3,0x0B,0x6E,0xFD,0xB5,0xA6,0x1E,0x2B,0x93,0xC1,0xBC,
+0xF7,0xA7,0x06,0xBE,0x68,0xFD,0x45,0xC3,0x15,0xE9,0x12,0xAA,0x9A,0x22,0xAD,0x61,
+0x9F,0x5E,0x97,0x2F,0xB7,0x16,0xAE,0xF7,0xAA,0xC0,0x84,0x3C,0x83,0x3B,0xCF,0x1A,
+0xE4,0xAF,0x1D,0xA5,0x6B,0xE2,0x5A,0xDF,0x76,0x43,0xDB,0x63,0x68,0xD0,0x10,0x2E,
+0x52,0x74,0x70,0xC8,0xF4,0x19,0xA1,0xBB,0xE1,0xB6,0xB9,0x01,0x1B,0xA3,0x85,0xC8,
+0x9E,0x48,0x80,0x38,0xB8,0xA9,0x11,0x47,0x07,0x23,0xCA,0x72,0xDB,0x63,0x0D,0x80,
+0xA0,0xDB,0x2D,0x95,0xEE,0x95,0x2D,0x2D,0xFC,0x5A,0x48,0xF0,0x21,0x99,0xB2,0xC5,
+0x36,0x21,0x41,0xF9,0xE3,0x22,0x9A,0x97,0xE8,0x4A,0x4C,0xF4,0x7F,0xC7,0x11,0x38,
+0xB1,0xD9,0x3E,0x86,0x71,0x6E,0xD6,0x49,0xC6,0x4C,0x64,0xDC,0xCC,0x74,0x0C,0x96,
+0xF9,0x01,0xAE,0x16,0xD0,0x38,0x80,0xBE,0x50,0x56,0xE8,0x50,0xC2,0x7A,0x6F,0xFB,
+0x24,0x3F,0x4D,0xF5,0xD7,0x07,0xBF,0x86,0xB3,0xE7,0xBA,0x02,0x00,0xB8,0x96,0xC0,
+0x8C,0x56,0x8C,0x34,0x04,0x4C,0xF4,0x1E,0x9B,0x3B,0x4E,0xF6,0x9C,0x24,0xCC,0x06,
+0x58,0xF6,0xF8,0x40,0x92,0x20,0x98,0xE4,0x11,0x22,0xDD,0x65,0x58,0xE0,0x54,0x5A,
+0x69,0xD5,0xEA,0x52,0x4E,0xD4,0x6C,0xCC,0x37,0x37,0xEE,0x56,0x17,0xAF,0x97,0xD6,
+0x2B,0x8F,0xF2,0x4A,0xAA,0xA5,0x1D,0x59,0xF8,0x91,0x87,0x3F,0x3B,0x83,0x81,0xEC,
+0xFC,0x33,0x99,0x21,0x3A,0xE1,0x59,0x8D,0x8A,0x0F,0x6B,0xD3,0x66,0xDE,0x73,0x43,
+0x16,0x00,0x40,0xF8,0x59,0xEF,0x57,0xE0,0x7C,0x41,0xD3,0x6B,0x33,0x8B,0x83,0xE6,
+0xAB,0x4F,0xB2,0x0A,0x7F,0xC6,0x7E,0xEF,0xAC,0x1A,0x58,0xE0,0x10,0xA8,0xD6,0x90,
+0x6D,0xF1,0xCA,0x72,0x00,0x6C,0xD4,0x3A,0xDD,0x7A,0x49,0xF1,0x84,0x3C,0x8E,0x5C,
+0x78,0xD7,0xF9,0x41,0x1C,0xC8,0x70,0x82,0x25,0xFD,0x36,0x8E,0xA4,0x1C,0x8A,0x78,
+0xA9,0x45,0xBA,0x02,0x27,0x52,0xEA,0x23,0xEE,0x90,0x90,0x28,0xDA,0x62,0x2D,0xA1,
+0xDA,0x3C,0xB0,0x08,0xB4,0x09,0xB1,0xEB,0xCB,0x7B,0x5E,0xE6,0x23,0x9B,0xC3,0xB6,
+0x55,0x4C,0x4F,0xF7,0x75,0x4E,0xF6,0x6D,0x35,0x26,0xFD,0x45,0xAB,0x13,0xC9,0x34,
+0x89,0x64,0xBB,0x03,0x5E,0xD0,0x68,0xD8,0x28,0xCA,0x0C,0xB4,0x88,0x30,0x9C,0x42,
+0xAF,0x6B,0x92,0x2A,0x14,0x48,0xF0,0x0A,0x30,0x02,0xDC,0x64,0x5D,0xE5,0x64,0x6F,
+0xF6,0xB1,0x11,0xA9,0xD9,0xAF,0x17,0x20,0xC9,0x6A,0x4D,0xF5,0xB9,0x01,0xF8,0x17,
+0xB0,0xCF,0x29,0x91,0xE5,0x0A,0xB2,0xB9,0x29,0x25,0xE2,0x5A,0x77,0xCF,0x13,0x32,
+0xF1,0x89,0x2E,0x96,0xE0,0x3D,0x85,0x8B,0xBA,0x1B,0x4F,0xF7,0xA6,0x1E,0xFB,0x0B,
+0x65,0x79,0x4A,0xF2,0xA1,0x3A,0x82,0xCD,0x99,0x2A,0x5D,0xE5,0x27,0x9F,0xD3,0xA2,
+0x05,0x08,0x5B,0xE3,0x5B,0xE7,0x5F,0xEA,0x8C,0xD5,0xB7,0x0F,0x08,0xB0,0x94,0xCA,
+0x08,0xB2,0xEC,0x54,0xC7,0x03,0xBB,0x92,0x73,0x67,0xFA,0x42,0x31,0x89,0xF2,0x95,
+0x51,0x68,0x6F,0xD7,0x30,0x69,0xD1,0x0F,0x5D,0x61,0xD2,0x6A,0xFF,0x47,0x19,0xB0,
+0x46,0x44,0x54,0xEC,0x0A,0xE4,0x5C,0xB8,0x10,0xCD,0x33,0x8B,0xD2,0x6A,0x2F,0xAB,
+0x38,0x87,0xE9,0x51,0x34,0x49,0xF1,0x2B,0x41,0x62,0xCD,0x75,0x2F,0x97,0xD1,0xA8,
+0xDD,0x04,0x8F,0x37,0xD4,0x18,0xA0,0x9A,0x51,0xB9,0x06,0xBE,0x30,0x88,0xD2,0xB4,
+0x92,0x1B,0x04,0xE1,0x54,0xED,0xCE,0xDD,0x3A,0xB3,0xE4,0x20,0x62,0xBE,0xAB,0x22,
+0xA4,0x2D,0x21,0xF2,0x43,0xEC,0xD8,0xCA,0xFA,0x73,0xAC,0xA8,0xF5,0x52,0xD0,0x59,
+0x2B,0xA2,0x6A,0x36,0x3E,0x1A,0x53,0xB7,0x97,0x1E,0x77,0x1E,0xF4,0x44,0xC7,0x4E,
+0x61,0xE8,0x99,0x8F,0x83,0x64,0x90,0x0A,0x56,0xDF,0x1E,0xB6,0x7E,0x06,0x0F,0x86,
+0x64,0xED,0xA9,0xBA,0x70,0xF9,0xFE,0xF9,0xA9,0x20,0x6E,0x39,0xCD,0xEF,0x55,0xDC,
+0x34,0xBD,0x69,0x2A,0x86,0x54,0xA5,0x0F,0xEA,0x63,0xFC,0xE8,0x79,0x3E,0x30,0xB9,
+0x24,0xAD,0x29,0x7A,0x38,0x7B,0x34,0xB1,0xC0,0x49,0xA1,0x9F,0x37,0xC8,0x88,0x01,
+0x3A,0xB3,0x0A,0x47,0x65,0x89,0x9B,0xEC,0xFE,0x77,0xB8,0xB8,0xD0,0x41,0xE6,0x6F,
+0x28,0xA1,0x3B,0x64,0xA2,0x40,0x95,0x2B,0x04,0x8D,0xFD,0x07,0x50,0x81,0xA6,0x2F,
+0x8C,0x05,0x27,0xDC,0xFB,0xA2,0x2E,0x72,0x50,0xD9,0x79,0xD7,0xF2,0x6A,0xEF,0x66,
+0x8B,0x02,0x66,0x9A,0x23,0x68,0x3C,0xAA,0x25,0xAC,0xF8,0x23,0x93,0x0D,0xE9,0x60,
+0x6B,0xE2,0xEA,0xF6,0x44,0xAD,0x9E,0xCD,0xBB,0x32,0x4D,0x08,0x2B,0x70,0x2C,0xA5,
+0xEA,0x63,0xC2,0x5F,0x2D,0x0B,0x51,0xA4,0xE7,0x6E,0xC3,0xDA,0x9C,0xBD,0x56,0xDF,
+0x66,0xEF,0xD8,0xC9,0x97,0x34,0xD4,0x1E,0xE4,0x6D,0x91,0x8B,0xEB,0xE0,0x7C,0xF5,
+0x06,0x8F,0x5C,0x2D,0x42,0xCC,0xF9,0xCB,0xC4,0x4D,0xB5,0x8F,0x5E,0x27,0x0E,0x87,
+0x48,0xC1,0xBF,0x80,0xCC,0xA7,0x1C,0x45,0xC9,0x40,0x8A,0xBD,0xA4,0x00,0xD3,0x5A,
+0x89,0x00,0x17,0xE9,0x16,0x1C,0x7D,0x9F,0x69,0xE0,0x26,0xB1,0xC4,0x71,0xC2,0x4B,
+0x4A,0xC3,0xCE,0xF3,0xF0,0xF1,0x76,0x79,0x80,0x09,0x61,0x1F,0xBC,0x9C,0x57,0xDE,
+0x7F,0xF6,0xBA,0xB2,0x58,0xFF,0xD0,0xD1,0xB8,0x31,0x1F,0x59,0x00,0xC5,0xB2,0x3B,
+0xD1,0x58,0xD5,0x73,0xB6,0x10,0xD1,0x3F,0x38,0xB1,0x97,0x51,0x45,0xA7,0x95,0x1C,
+0x1D,0x94,0x4F,0x25,0xF9,0xD3,0x5D,0x70,0x11,0x98,0x98,0x77,0x42,0x9F,0xAA,0x23,
+0xF1,0x78,0xD1,0x57,0x0B,0x6E,0x12,0x82,0x71,0xF8,0x7C,0xF3,0x49,0x0B,0x35,0xBC,
+0xE7,0x6E,0xF0,0x60,0x6A,0xCA,0xD7,0xE3,0x68,0xE1,0x07,0x91,0xFB,0xF4,0x78,0xF1,
+0x3C,0xB5,0x6B,0x20,0x8F,0x76,0x8E,0x06,0x91,0x18,0x10,0x7F,0x48,0x1D,0x22,0xAB,
+0x81,0x08,0x15,0xE3,0xBE,0x12,0xDB,0x37,0x49,0xC0,0x02,0xB5,0x4A,0x17,0x2A,0xA3,
+0x59,0xD0,0xDF,0xF1,0x46,0xDC,0xED,0xCF,0x62,0xEB,0x7E,0xE2,0x96,0x3F,0xDE,0x57,
+0xF3,0x7A,0xA0,0x24,0x08,0x3F,0x40,0x81,0xD6,0x5F,0x96,0xBE,0xFA,0xE2,0x6F,0xE6,
+0x62,0xEB,0xC8,0xDD,0xE3,0xE0,0x74,0x6A,0x40,0xC9,0x29,0x97,0x98,0x99,0x76,0xFF,
+0x3B,0xB2,0x2A,0x66,0x72,0x88,0x8D,0xFB,0x4A,0xC3,0x50,0xE4,0x18,0x59,0x36,0xBF,
+0x68,0xE1,0xBB,0xA4,0x8E,0x56,0xAF,0x07,0x29,0xA0,0xE6,0x31,0x65,0x86,0x94,0x1D,
+0xA9,0x20,0x13,0xCD,0x74,0xE9,0xEA,0xFD,0x0D,0x84,0xD6,0x25,0x8C,0xA9,0x52,0xDB,
+0xFE,0x77,0x92,0x1B,0x1B,0x2E,0x42,0x92,0x48,0xC1,0x23,0x95,0xCF,0xE5,0x5D,0xD4,
+0xB4,0x3D,0x61,0xA2,0xD7,0xB4,0x14,0x5E,0x88,0x01,0x6B,0x1D,0x46,0xBB,0x8A,0x03,
+0xCB,0x42,0xE6,0x5A,0x9B,0x26,0xCA,0x12,0xA0,0x29,0x45,0x1B,0x5B,0x15,0x39,0xB0,
+0x5B,0xD2,0xAE,0x82,0xCD,0x87,0x3D,0x44,0x2C,0xA5,0xD3,0x01,0x38,0x78,0x37,0xBE,
+0xB8,0x31,0x73,0xBC,0xF2,0x80,0x05,0x7B,0x7E,0xF7,0x30,0xB0,0xC1,0x43,0xF5,0x7C,
+0xE8,0x61,0xB3,0x2C,0x17,0x3C,0x5C,0x9E,0x1F,0x96,0xF5,0x14,0x47,0xAD,0x9D,0x14,
+0x85,0x0C,0x05,0xF7,0xEC,0xA3,0x38,0x65,0x7D,0xF4,0x62,0xE1,0xD2,0x4B,0xEE,0x67,
+0x75,0xFC,0xC9,0xCB,0x5C,0xEF,0xC4,0xD5,0x0E,0x87,0x84,0x74,0x5A,0x03,0x2E,0xA7,
+0xD8,0x51,0xF7,0x58,0x60,0xB9,0xAE,0xE9,0x8C,0x05,0x7F,0x0D,0xE5,0x46,0xD4,0x5D,
+0x6C,0xE5,0xAB,0xB0,0x14,0x6D,0x0E,0x9D,0xAF,0x26,0x09,0x58,0x24,0xC0,0x93,0x1A,
+0xB5,0x3C,0x41,0x83,0x1A,0x0E,0x63,0x93,0x17,0x9E,0xFF,0x16,0xD4,0x65,0xC6,0x4F,
+0x47,0xCE,0xFC,0xCC,0x33,0x28,0x6C,0xBA,0x9C,0x15,0x2F,0x4D,0x81,0x13,0xE5,0x6C,
+0x3F,0xB6,0x3A,0x72,0x99,0x57,0xB9,0x10,0x8D,0x04,0x5E,0x2D,0xD9,0xDF,0x71,0xF8,
+0x79,0xF0,0xDB,0xD5,0xB9,0x53,0x9D,0x30,0x8A,0x03,0x18,0x6C,0x9B,0x85,0x69,0xE0,
+0x0D,0x84,0x0F,0x75,0xD5,0xC5,0x67,0x5C,0x19,0x90,0x92,0x75,0x03,0xD9,0xAD,0x24,
+0x1F,0x96,0x3E,0x56,0x21,0x19,0x4F,0xA8,0x2A,0xA3,0xB4,0x60,0xC0,0x55,0xE2,0x6B,
+0x07,0x8E,0x7C,0x0C,0x50,0xFD,0xDA,0xD9,0x43,0xCA,0x7B,0xC6,0xD6,0x6F,0xCE,0x47,
+0x4E,0xC7,0xDE,0xE7,0x25,0x09,0x5B,0xAC,0xC8,0x41,0xAB,0x9D,0xCB,0xC1,0x7D,0xF4,
+0x67,0xEE,0xF8,0xE8,0xBD,0x43,0x89,0x34,0x18,0x91,0xB3,0x55,0x33,0xEC,0xA8,0x21,
+0xE4,0x6D,0xA1,0x32,0x5A,0x8E,0xA3,0xD3,0x89,0x00,0x4A,0x3D,0xAF,0x94,0x4C,0xC5,
+0xDC,0x55,0xE7,0x4C,0xFF,0xB2,0x3A,0x76,0x26,0xAF,0xAA,0x72,0x44,0xB1,0x82,0x0B,
+0x0C,0x85,0x2F,0x54,0x3D,0x4B,0x01,0xB4,0xF2,0x7B,0xA6,0xAA,0xDD,0xFB,0x51,0xD8,
+0x4F,0xC6,0xFE,0xC6,0xA7,0x70,0xA0,0x2E,0x54,0xDD,0x6D,0xC7,0x7A,0x22,0x2F,0xA6,
+0x45,0xCC,0x8D,0xBF,0xFC,0xE3,0x68,0x75,0x9A,0x13,0x48,0x2C,0x94,0x35,0xD6,0x5F,
+0xBA,0x33,0x02,0xCF,0xBB,0x22,0xEE,0x32,0x39,0xB0,0xB6,0x71,0x9E,0xB7,0x5E,0xD7,
+0x9A,0x13,0x06,0xEB,0x9C,0x67,0x8C,0x15,0x16,0x9F,0xDE,0x36,0x4E,0x33,0x0A,0x83,
+0xA1,0x28,0x11,0xC7,0x11,0x5D,0x3B,0x98,0xF7,0x7E,0x93,0x9A,0x78,0x28,0x27,0xAE,
+0x1C,0x95,0x6F,0x04,0xBC,0x63,0xA8,0x35,0x09,0x80,0xC2,0x35,0x86,0x2B,0xDA,0x53,
+0x7A,0xF3,0x8A,0x87,0xED,0x83,0x19,0x64,0xC2,0x4B,0xD2,0xEE,0x85,0x37,0xC5,0x4C,
+0xDB,0x52,0xA6,0x0A,0xC8,0xB7,0x08,0x41,0x8B,0x02,0x39,0x4C,0xAC,0x88,0x53,0xDA,
+0xBF,0x36,0x32,0xFA,0xCF,0xF6,0x4E,0x46,0x99,0x10,0x1A,0x7D,0x84,0x21,0xD2,0x5B,
+0xAE,0x27,0x52,0x8B,0x12,0x0C,0x69,0x9B,0x73,0xFA,0x0F,0x82,0xC3,0x49,0xFD,0x74,
+0x19,0x90,0x5F,0x31,0xF6,0x90,0x11,0x7F,0x3E,0xB7,0xF0,0x30,0xA5,0x16,0xC4,0x4D,
+0xB6,0x54,0x62,0xAC,0x27,0x9B,0x3D,0x3C,0xE6,0xFB,0xE1,0x9D,0x41,0xBE,0xA4,0x65,
+0x88,0x73,0x7B,0x92,0x49,0x12,0x53,0xDB,0xC5,0xE5,0xFF,0xA0,0xEE,0xE3,0xF9,0x97,
+0xA2,0x04,0x26,0xB8,0xF1,0xE4,0xEB,0x95,0x85,0xF5,0xEF,0xF0,0x7F,0x5D,0x47,0xB8,
+0xE1,0xD5,0xB4,0xFB,0x94,0x35,0x8E,0x21,0x45,0xA5,0xBF,0x60,0x24,0xAB,0xB1,0x15,
+0x1E,0x5A,0xC4,0x04,0xCE,0xDC,0xD4,0x92,0x75,0xA0,0xBA,0x55,0x4A,0x58,0x42,0x88,
+0xDF,0xF2,0xAD,0xC5,0x06,0x9E,0x1C,0x18,0x86,0xEA,0xF0,0xEC,0x89,0xE5,0xFF,0xF6,
+0xB2,0x44,0x76,0xA8,0x11,0x88,0x0B,0x19,0xCD,0x65,0x7F,0x28,0x02,0x98,0x82,0x00,
+0x72,0xCC,0x3E,0x68,0x6A,0x64,0x70,0x8E,0xE8,0x53,0x49,0x3B,0x14,0x8F,0x95,0x01,
+0x81,0x51,0x50,0x9B,0x12,0xDA,0x08,0x48,0x53,0x89,0x93,0x5A,0xC6,0x17,0x0D,0x4B,
+0x8C,0x63,0x6F,0x96,0xCF,0xFD,0xD5,0xB2,0xB0,0xC7,0xDD,0xF7,0x23,0x99,0x83,0x20,
+0xAC,0x67,0x4B,0xB6,0xBD,0x3A,0xA7,0x07,0x34,0xA7,0xBD,0x13,0x0E,0x4C,0x56,0xD8,
+0xAF,0x36,0x19,0xB5,0x97,0x67,0x8D,0x70,0x2E,0x2B,0x31,0x85,0x8B,0xF6,0xEC,0xE7,
+0xF3,0xE4,0x97,0xE9,0xED,0xAA,0xF7,0xC7,0x06,0xAA,0xB0,0x2C,0x44,0x9F,0x85,0x41,
+0x6D,0xCF,0x22,0x77,0x28,0xD7,0x32,0x7F,0x8A,0x4A,0x50,0x40,0xE6,0xF8,0xE2,0x84,
+0x18,0x3B,0xA3,0x02,0x2E,0xB0,0x34,0x1E,0xCB,0x4D,0x57,0x06,0xF4,0x20,0x3A,0x4E,
+0x4C,0xEB,0x27,0x56,0x67,0x5B,0x7D,0xBC,0xD7,0xE9,0xF3,0xBE,0x4F,0x79,0x63,0xAC,
+0xD9,0x93,0xCA,0xC3,0xE3,0xC7,0xF9,0xA4,0x87,0xFD,0xE7,0xFA,0x54,0x54,0x4E,0x9A,
+0x20,0x7D,0xDD,0x3A,0xB9,0x2E,0xA3,0x17,0x1C,0x26,0x3C,0xBA,0x0D,0xB1,0xAB,0x26,
+0x39,0x1F,0xA6,0x23,0xF4,0xD1,0xEE,0xA5,0x3D,0x30,0x2A,0x8D,0xC8,0xD0,0xCA,0x82,
+0x59,0x9B,0x42,0x43,0x6B,0x45,0x71,0xAE,0xA3,0xDC,0xC6,0xFF,0x87,0x22,0x38,0x3F,
+0x70,0xBD,0x4D,0x6A,0x54,0x7D,0x4E,0xA9,0x39,0x10,0x0A,0xA9,0x0B,0x6D,0x77,0xFC,
+0xF0,0xB5,0xC5,0xEA,0x73,0x1F,0x69,0xEC,0x56,0xBE,0xA4,0x68,0x0A,0x83,0x99,0x13,
+0xC8,0xF3,0xBB,0xD2,0x96,0x46,0x8C,0x50,0x22,0x8B,0x91,0x29,0xAC,0x2B,0x31,0x1D,
+0x21,0x5D,0xFC,0x3B,0x03,0xAB,0x19,0x28,0xFB,0x48,0x52,0x33,0xA7,0xCD,0xD7,0xF0,
+0x00,0x79,0xF9,0x1A,0x9C,0x3F,0x86,0x23,0x7E,0x3F,0x25,0xC1,0x98,0xC0,0xDA,0xC2,
+0x45,0xC9,0x0C,0x5F,0x93,0x73,0x89,0x60,0xFF,0x68,0x72,0x17,0x30,0xAF,0xB5,0x05,
+0x61,0xDD,0x3C,0x7B,0x55,0x5C,0x4F,0x89,0x57,0xA9,0xB3,0x7E,0x75,0x55,0x4F,0xBA,
+0x02,0x08,0x8A,0x18,0xF7,0x83,0xED,0xF4,0xC6,0xFA,0xE0,0xBC,0x57,0xA9,0xB3,0x64,
+0x08,0x7B,0xF3,0x12,0xB7,0x43,0xAD,0x74,0x24,0xA3,0xB9,0x07,0xAE,0x38,0x22,0x0C,
+0x9E,0x52,0x4C,0x84,0xAE,0x38,0xB4,0x16,0x4C,0x32,0x28,0xFE,0x9A,0xD3,0xC9,0xD3,
+0x2A,0x0E,0xA4,0x30,0x1F,0xE5,0x05,0x7A,0x33,0x98,0x82,0x2B,0x37,0x9D,0x87,0x30,
+0x01,0x59,0xD8,0x1B,0xEB,0xCD,0xF1,0xA6,0xF9,0x40,0x5A,0x39,0x01,0x65,0x7F,0xFE,
+0xC4,0xE1,0xA5,0xDE,0x15,0x9C,0x0F,0x09,0x1B,0x19,0x03,0x82,0x74,0xBB,0xA1,0x55,
+0x46,0x98,0x5E,0x5C,0xEF,0xD9,0xF5,0xB6,0x25,0xB4,0xAE,0x11,0x1E,0x87,0x9D,0x03,
+0x35,0x0D,0xB8,0x2F,0x2F,0x91,0x35,0x3E,0xE9,0x44,0x5E,0x2D,0xE2,0x37,0x2D,0x4F,
+0x57,0xF8,0x2F,0x4D,0x5C,0x77,0x46,0xAB,0x5F,0x29,0x33,0xF6,0x86,0xCC,0xD6,0xD0,
+0x36,0x5C,0xEA,0x2C,0x34,0x99,0x2E,0x2D,0x9F,0x79,0x63,0x66,0xDF,0x29,0x33,0x6C,
+0x64,0xED,0x09,0x7E,0xF6,0xA2,0xEC,0xD4,0x42,0x9A,0x80,0x58,0xE7,0x16,0x0C,0x6B,
+0xE8,0xF7,0x9F,0xF2,0xF8,0xCF,0xE2,0xB7,0x0A,0x0A,0x10,0x80,0x10,0x40,0x5A,0xCA,
+0xC0,0xF1,0xB1,0xDA,0x4B,0x61,0x51,0xAA,0x8D,0x75,0x6F,0x78,0xCE,0x0C,0x16,0x58,
+0x0B,0x2A,0xA1,0x11,0x0F,0xB5,0x15,0x3A,0x90,0xC6,0xDC,0xD6,0x00,0x8B,0x91,0x11,
+0x62,0x8C,0x6E,0x78,0x23,0x8F,0x39,0x2C,0xD2,0xDE,0xC4,0x8C,0x95,0xFA,0xE0,0xF5,
+0x51,0x99,0x48,0x4B,0x6C,0x03,0x76,0xEF,0xE3,0xCC,0xD6,0xAF,0xBD,0x0E,0x14,0x29,
+0xC2,0x80,0xC2,0xD8,0xA8,0x5F,0xB2,0x77,0x37,0xB8,0xA2,0x0F,0x47,0x62,0x78,0xBF,
+0xC5,0xC1,0x84,0xDF,0xB0,0x05,0xAA,0x35,0xD6,0xFE,0xE4,0xA8,0x63,0x42,0x58,0xBB,
+0xD4,0xA1,0xF5,0xCE,0x24,0xC9,0x3E,0x6D,0x10,0x86,0x9C,0x16,0xB6,0xE8,0xF2,0xC4,
+0x5F,0xFA,0x25,0x45,0x07,0xBF,0x1D,0x38,0xAD,0x74,0x6E,0x59,0xB9,0xC1,0xDB,0xE2,
+0xE7,0xB4,0xD3,0xFD,0x52,0x1A,0x48,0xC8,0x47,0xAD,0xB7,0x6A,0xD4,0xCF,0xD5,0x81,
+0x71,0x9D,0x6C,0x6B,0x9F,0x6D,0x85,0x72,0xEE,0x7B,0x61,0x15,0x34,0x60,0x7A,0xCE,
+0xD2,0xC0,0x92,0xC8,0x17,0xEF,0x0D,0x78,0x61,0x84,0x9E,0x65,0xB2,0x27,0x3D,0x0F,
+0x1C,0x2B,0xB7,0x06,0xEE,0xF8,0xF4,0x96,0x12,0x8E,0x94,0x1C,0x7A,0x7C,0x66,0x9C,
+0xBA,0x46,0x7C,0xA0,0x90,0x21,0x8A,0x31,0xC3,0xCD,0xD7,0x8E,0xDB,0xE6,0xFC,0xA7,
+0x6E,0x9E,0x70,0x74,0x43,0x6B,0x59,0xA8,0x0B,0x1D,0x07,0x96,0xE0,0x24,0x3E,0x5E,
+0xC1,0xD1,0x90,0xDB,0x8D,0x4E,0x97,0x43,0x4D,0x25,0x3F,0xE8,0x79,0x81,0x9B,0x62,
+0x50,0xB9,0x69,0x4A,0x69,0x36,0x73,0xDF,0x14,0xA6,0xBC,0x32,0x53,0x66,0x7C,0xAF,
+0x80,0x71,0x71,0x9A,0xBC,0x1B,0xA6,0x27,0x32,0x8F,0x95,0x3D,0x81,0xFE,0xE4,0xE5,
+0x76,0xDC,0x2A,0x6C,0x05,0xCC,0x1F,0x49,0xB3,0xD8,0xC2,0xEB,0xCB,0x2D,0x37,0x7C,
+0x3B,0x6E,0xD5,0x21,0x3C,0x93,0x26,0x2F,0xBE,0x6F,0x75,0x51,0xB3,0xC9,0xD3,0xE0,
+0xD1,0x91,0xC0,0xCB,0x13,0xFB,0x09,0x68,0xDE,0x7E,0x64,0x20,0x94,0x14,0x0E,0x1A,
+0xC3,0xA0,0xE3,0xD9,0x92,0x52,0x88,0x40,0x4A,0x1A,0x00,0xD0,0xD2,0x13,0x09,0x5B,
+0x8A,0x02,0x08,0x90,0x04,0xED,0x1E,0x69,0x66,0xBB,0xA1,0x5D,0xC3,0x36,0x2C,0x6F,
+0x41,0xD9,0x18,0x5B,0x1B,0xF1,0x01,0x6A,0x83,0xDD,0xC7,0xDE,0x72,0x67,0x7D,0x8F,
+0xBF,0x76,0x49,0xA5,0xE6,0xF2,0xFC,0x94,0xFD,0x60,0x7A,0x1D,0xE1,0xCA,0xD0,0xB1,
+0x5E,0xDA,0x04,0x44,0xCB,0xE9,0xD1,0xA2,0xEA,0x5B,0x41,0x31,0x56,0x47,0x5D,0x8B,
+0x2D,0x6C,0xD6,0xE3,0x07,0x31,0x2E,0x8B,0xBB,0x73,0x6A,0x01,0xA2,0x37,0x8D,0x18,
+0x3E,0x5A,0xE0,0xC6,0x11,0x26,0x2F,0x9C,0x7B,0x3B,0xE2,0xC1,0xD9,0xA0,0x61,0x63,
+0x50,0xA9,0x13,0x5B,0x4F,0xF1,0xA6,0x4B,0x17,0xC1,0x74,0xAD,0x7D,0xBC,0xD9,0xC7,
+0xE9,0xE3,0x59,0xA8,0x8C,0x4C,0xD8,0xF6,0xD6,0xA8,0xDC,0x6C,0xB5,0x36,0x9B,0x0F,
+0xF5,0xFC,0x46,0xAB,0x7A,0xF4,0x96,0x4E,0xAB,0x23,0x2A,0x11,0x42,0xBB,0xE1,0xF8,
+0x65,0xAC,0x16,0x6B,0x21,0x02,0x3B,0xB8,0xE8,0xB1,0xFB,0x52,0x27,0x0F,0x30,0x9D,
+0x98,0xF2,0x48,0xC8,0x44,0x17,0x4B,0xAD,0xBF,0x67,0x7A,0x05,0x94,0x12,0x9E,0x2E,
+0xA5,0xEC,0x56,0xEB,0xEB,0x4A,0xB9,0xF0,0x81,0x7E,0x5D,0x3B,0xFA,0xF5,0x17,0x40,
+0x03,0x44,0xFE,0xE5,0xF1,0x89,0x60,0x33,0x11,0xA6,0x15,0xAB,0x9D,0x30,0xB5,0x27,
+0xBB,0xE0,0x5A,0xF9,0x4A,0xD0,0x82,0x6A,0x45,0x22,0xC5,0xFF,0xD4,0x92,0x5E,0x6E,
+0x29,0xA3,0x19,0x28,0x41,0x36,0x6F,0x8C,0xFA,0x92,0xCA,0x40,0x5E,0xE9,0xAF,0xE4,
+0x45,0x43,0xF9,0xA4,0xE3,0x51,0xAA,0xEB,0x64,0x27,0xE1,0xDE,0x9B,0x51,0xD2,0x21,
+0x16,0xAE,0x14,0x1A,0x0B,0xE5,0xF6,0x5F,0xA5,0x4E,0x49,0x1F,0x0E,0x29,0x3F,0xB4,
+0x80,0x22,0x98,0x00,0x8E,0x5F,0xC9,0xE5,0xA6,0x1C,0x18,0x1C,0x24,0x5E,0x62,0x9E,
+0x5F,0x80,0x3A,0x7D,0xC3,0xBE,0x65,0x04,0x88,0x55,0x7F,0x32,0xA1,0x66,0xDF,0x1B,
+0xF2,0xCE,0x74,0x9E,0x26,0x30,0x0E,0x8A,0x85,0x6A,0x4D,0x3F,0x7C,0x9C,0xF8,0xC6,
+0x2C,0x82,0x38,0x0C,0xA9,0x82,0x33,0x38,0xC1,0xBE,0xDD,0x7B,0x25,0x7E,0x43,0x9F,
+0x36,0x41,0xFB,0xD5,0xA2,0x64,0xDE,0xDE,0x28,0xF9,0x73,0x92,0xB0,0x06,0xAE,0x0A,
+0xAC,0x19,0xA3,0x17,0x0E,0xC4,0xD2,0x7E,0x79,0x48,0x93,0xC3,0xE7,0x87,0x78,0x5D,
+0x6D,0xB7,0x0D,0x78,0x0F,0x2A,0x3D,0x90,0xF9,0xC0,0x9B,0x43,0xC0,0xC2,0x1A,0x7A,
+0x88,0x39,0x83,0x13,0xCD,0x79,0xAC,0xC3,0x30,0xA3,0x31,0x8A,0x47,0x8B,0xD4,0xFD,
+0xFA,0xD5,0x6F,0x8D,0x82,0x8B,0x11,0x31,0x50,0x47,0xB5,0xEA,0xD8,0x80,0x40,0x62,
+0xFF,0xF4,0x4E,0xA9,0x51,0xFD,0xB4,0x47,0xD0,0xCF,0xBD,0x6A,0x50,0x8A,0xC2,0xEA,
+0xBF,0x2F,0x95,0x32,0x08,0x18,0x08,0xA2,0x29,0xD8,0x53,0x93,0x0A,0x39,0x2B,0xB0,
+0x2E,0x91,0x2B,0x1D,0x32,0x34,0x1E,0x8E,0x23,0xA1,0x20,0x99,0xAC,0x54,0xE0,0x16,
+0x3C,0x49,0xF3,0xD7,0x04,0xCC,0xD0,0x76,0x08,0xDD,0x77,0xB2,0x58,0x88,0xC8,0xE2,
+0x02,0xAA,0x10,0x0A,0xAB,0x91,0x22,0x2B,0x01,0xF6,0x55,0xBB,0x04,0x5A,0x46,0xBE,
+0xFB,0x3B,0x81,0x62,0x9F,0x7A,0xFD,0xC0,0x97,0x49,0x7C,0x2D,0x1D,0x38,0x3D,0xA7,
+0x7B,0xA0,0x1A,0x79,0x70,0xFC,0x94,0x46,0x68,0x39,0xF3,0xD2,0xE6,0xA7,0x59,0x5C,
+0xB9,0xF3,0x49,0xE8,0x52,0x00,0x4A,0xBA,0x0B,0x8F,0x26,0xB1,0x44,0xDA,0x86,0xFE,
+0xC4,0x36,0x8C,0x50,0x9D,0x69,0xEC,0xD3,0x09,0xFC,0x57,0xB3,0x2F,0x0D,0x3A,0x95,
+0x12,0x61,0xDB,0xD1,0x35,0x06,0x2B,0xBC,0x4C,0x09,0xE7,0xF6,0x20,0x4E,0x76,0x9A,
+0x85,0x03,0xB9,0x24,0x15,0xE9,0xE4,0x53,0xE1,0x9A,0xD9,0x5B,0x4B,0x99,0xCA,0xF1,
+0x7D,0x7C,0xC6,0xA3,0xCB,0xA5,0x76,0x1F,0xC9,0xB4,0xDF,0x73,0xF8,0x84,0x64,0x42,
+0x63,0x70,0xCA,0xB1,0xDA,0x80,0x42,0x3A,0x3F,0xEF,0x72,0x85,0x87,0x03,0x9C,0x3D,
+0x5D,0x93,0x29,0x6C,0xE2,0xBF,0x45,0x05,0x6D,0x0C,0xC3,0xD7,0x45,0xFA,0xA7,0xFF,
+0x28,0x4D,0xF7,0xC7,0xE7,0x9E,0x61,0x24,0x3C,0xBD,0x23,0x86,0x9C,0x10,0x94,0x26,
+0xF3,0x20,0x9A,0x71,0x83,0x65,0xFE,0xDF,0x5E,0x2A,0xD6,0xE4,0xEF,0x85,0x72,0x55,
+0x87,0x10,0xAA,0x35,0x71,0x12,0x7B,0xA8,0xCD,0xA0,0xCF,0x77,0xA6,0x27,0x99,0x1C,
+0x14,0xBD,0x07,0x0B,0x1B,0x2E,0x2D,0x94,0x4F,0x5B,0xB6,0xF5,0x5C,0x98,0xDC,0xE6,
+0x5C,0x7D,0xC7,0x83,0xBC,0x68,0xCC,0xD2,0x56,0x20,0xD4,0xEC,0xB4,0x16,0xBA,0x0E,
+0x6F,0xA4,0x1E,0x69,0xD1,0x66,0xAF,0xDC,0xEE,0xD6,0x9A,0x54,0xE1,0xE6,0x1F,0x5B,
+0xAD,0xF7,0x4D,0xF8,0x66,0xEB,0x95,0x51,0xCC,0x81,0xEF,0x76,0x03,0x1B,0x00,0xB9,
+0x13,0x8F,0x35,0x3E,0xB3,0x41,0xEA,0xFB,0xDD,0xF0,0x8F,0x67,0x97,0x43,0xCC,0x2D,
+0xAA,0xC5,0x7F,0xCD,0xB8,0xA7,0x07,0x1D,0x58,0x4D,0xB7,0xE2,0xDF,0xC1,0x06,0x65,
+0x0A,0xB1,0x0B,0x19,0x42,0xCB,0x91,0x71,0xCB,0xC7,0xAE,0x71,0x1B,0x59,0x5A,0xA1,
+0xD3,0xCF,0x75,0xBE,0x05,0x22,0x3F,0x98,0x02,0xA4,0x04,0xB8,0xBC,0x14,0xB0,0x06,
+0x89,0xD7,0x6D,0xFC,0x90,0x53,0xDB,0xE9,0x6B,0x6B,0xA2,0xD1,0x90,0x02,0x8A,0x2A,
+0x37,0xAF,0x15,0x3A,0x56,0xCF,0x81,0x75,0x59,0x6C,0x97,0xE3,0xDA,0xF1,0x33,0x60,
+0x38,0x86,0x3C,0x1C,0x84,0x57,0xCB,0xED,0x89,0x74,0x5F,0x33,0x0F,0x09,0x1E,0xB5,
+0x93,0x14,0xAE,0x25,0xE5,0x8D,0x70,0x37,0x67,0x75,0xB0,0xDD,0xF0,0x86,0x6E,0x4A,
+0xED,0x2C,0x96,0x63,0x7C,0x28,0x4C,0x92,0xC8,0x95,0xFF,0x72,0x3E,0x6D,0x4B,0x84,
+0x19,0x87,0x3D,0x3C,0x7F,0xD5,0xB2,0x6F,0x15,0xB2,0x05,0xAF,0x5D,0xB8,0xFD,0xE7,
+0x8B,0xC4,0x7E,0xED,0xDE,0x4F,0x89,0xF5,0xB3,0x79,0x68,0x09,0x23,0x1F,0x24,0x99,
+0x10,0x72,0xC8,0xC0,0x31,0xC9,0xE0,0x73,0x78,0x69,0xB3,0xC2,0x2C,0x5C,0x68,0x96,
+0x60,0x8D,0x37,0x4F,0xB7,0x8E,0x21,0x34,0xDB,0x97,0xEE,0x61,0xA4,0x56,0xEA,0x1E,
+0x18,0x69,0xD3,0xD3,0xE4,0x63,0x9F,0xD9,0xB6,0x4C,0x58,0x0C,0x55,0xBA,0xF7,0xEF,
+0x34,0x52,0xE8,0xC4,0x53,0xEE,0xA5,0x54,0x57,0x01,0xF4,0xED,0x78,0x8C,0xEC,0xC2,
+0x58,0xB2,0x08,0x48,0xC6,0x9F,0x41,0x25,0x83,0x0D,0x2C,0x39,0xB7,0x47,0xE8,0x0D,
+0xDB,0xD4,0x6E,0xAD,0x77,0xCE,0xA1,0x74,0x48,0x1D,0xF7,0xF2,0xA8,0x44,0xF4,0x12,
+0x25,0x77,0xCD,0xF0,0x91,0xBD,0x34,0x07,0xD8,0xC5,0xBF,0x62,0xA0,0x46,0xFE,0x1A,
+0xD5,0x13,0xA9,0x64,0xD7,0xBA,0x75,0x00,0xCA,0xE6,0x8E,0x70,0x21,0x6E,0x57,0x9B,
+0xEE,0xD1,0x6B,0x9D,0xCE,0x84,0x52,0x3E,0x7F,0x2F,0xF2,0xC5,0xB6,0x67,0xC9,0x0C,
+0x54,0x66,0xDC,0x90,0xB6,0x60,0xCE,0xDA,0x32,0xD0,0x40,0x88,0x8F,0x01,0x96,0x35,
+0x9A,0x83,0x8E,0x77,0xEF,0x0F,0x02,0x77,0xB7,0xBF,0x52,0x9F,0xDB,0x46,0xAB,0xE7,
+0xFF,0x37,0x5F,0x12,0xAC,0x9D,0x41,0xA6,0x1A,0x49,0xA4,0xC4,0x4B,0x16,0xFB,0x27,
+0x47,0x79,0xA9,0xAA,0x86,0xC0,0x6B,0xD1,0x35,0xF7,0x1A,0x55,0x1B,0x06,0xEB,0x67,
+0x29,0x9E,0x20,0xC4,0xB8,0xD9,0x55,0xF6,0xC7,0xAA,0x47,0xFA,0x26,0x18,0xF5,0x44,
+0x64,0x2C,0xDF,0x89,0x7C,0x85,0x91,0x6E,0xA3,0x9B,0x76,0xAF,0x80,0xB0,0x5D,0x4A,
+0x1F,0xBB,0x33,0xF2,0xBC,0xCD,0x51,0xE6,0xA2,0x8C,0x61,0xB9,0x93,0x86,0x6B,0x6F,
+0x08,0xBA,0x25,0xE5,0xD1,0x16,0x3C,0x50,0x54,0xF1,0x1C,0x32,0x57,0x09,0xE4,0x24,
+0xC0,0x30,0x67,0x2D,0x10,0x7F,0xFD,0xF8,0x2A,0x4C,0xA1,0xF1,0xEE,0x43,0xAE,0xD7,
+0x99,0xD2,0xDC,0x74,0xA1,0xA2,0x4C,0x94,0x45,0xE2,0x0F,0x30,0x3E,0xC8,0x25,0x8C,
+0xB3,0xA5,0x81,0x5E,0xA2,0xF0,0x4F,0xC5,0x7A,0x58,0xB5,0xB5,0xA8,0x44,0xA9,0x96,
+0xC1,0x10,0x46,0x2C,0x82,0xD4,0x6F,0xC1,0x82,0x8D,0x60,0x98,0x4C,0x24,0xC9,0x12,
+0x1C,0xEA,0x61,0xF1,0x8F,0xEB,0x62,0xF3,0xE9,0x03,0xEE,0x7D,0xE1,0x6A,0x87,0xF1,
+0x69,0x1E,0xE0,0x84,0x42,0x9C,0xAF,0x49,0x0E,0x6D,0x80,0xF4,0x05,0x0A,0xE7,0x75,
+0x20,0xBC,0x0B,0xCD,0x16,0x18,0xFB,0x99,0xEC,0x34,0xD9,0x4F,0xBD,0xAE,0x43,0x69,
+0x26,0xDD,0x6C,0xCB,0x63,0x99,0x8E,0x6D,0x26,0xEC,0x01,0x5D,0xFB,0xA9,0x44,0x28,
+0xE3,0x65,0x11,0x0E,0xFD,0x2C,0x10,0x46,0xE3,0x8B,0x66,0xFF,0x97,0x49,0xA4,0xA4,
+0x65,0x0C,0xFE,0x88,0x57,0xF9,0xBA,0x39,0x9D,0x36,0xDB,0x3C,0x44,0x3F,0xD2,0x01,
+0xFA,0x07,0x6A,0x17,0x37,0x1D,0xDA,0xBD,0x20,0xC4,0x29,0x73,0x36,0xD3,0x3E,0x9F,
+0xB7,0xB5,0x95,0x5A,0x2E,0x66,0xC3,0xDF,0x84,0xA5,0x48,0xB6,0x01,0xC5,0x28,0xBE,
+0xED,0x06,0x7C,0x00,0xD7,0x71,0x3A,0x31,0x38,0x40,0xAD,0xEF,0x41,0x1E,0xF3,0x25,
+0x0D,0x8A,0x10,0xE0,0x2F,0x47,0xC2,0xFF,0x52,0xD9,0x34,0x1C,0x88,0xAB,0x46,0x59,
+0x98,0xF2,0xFD,0x75,0xC6,0x00,0x2B,0x51,0xBF,0x3F,0xD2,0x17,0x92,0x68,0x85,0x80,
+0x7D,0x4E,0xA4,0x90,0xFE,0x7E,0x13,0x17,0xB1,0x97,0x7A,0xB1,0xD3,0x5D,0xB0,0xF4,
+0x5A,0x0B,0xC6,0xB7,0x7E,0xF6,0x93,0x1F,0x5E,0x79,0x94,0xB0,0x12,0xF3,0x1E,0x9B,
+0xF9,0x56,0x38,0x14,0x0C,0x31,0xE1,0xAA,0xC6,0xBD,0x50,0xEC,0x07,0x19,0xF4,0x64,
+0x5B,0x2B,0xE7,0xB6,0x6F,0x87,0x82,0x7F,0x18,0x41,0xAC,0xCE,0xC5,0x4A,0xA7,0xF5,
+0x9D,0xC2,0xC8,0x70,0x4B,0xB7,0xA6,0x6B,0xA7,0xBB,0x56,0x8B,0xAC,0x8B,0x66,0x5D,
+0x92,0x81,0x84,0x7F,0x0E,0x42,0xE3,0xDB,0x60,0xD4,0x39,0x23,0x7A,0xDC,0x31,0xDC,
+0xE5,0x04,0x76,0x08,0x0F,0x63,0xE2,0xFB,0x5C,0x71,0x9C,0xBA,0x82,0xA3,0x4E,0x5B,
+0x11,0xD8,0x5E,0xFC,0x24,0x1F,0xC9,0xAC,0x92,0x89,0x64,0x8C,0x90,0x7B,0x96,0x91,
+0xA0,0xB4,0x83,0x4D,0x90,0xF7,0x7D,0xF0,0x71,0xC7,0x2A,0x21,0x45,0xD1,0x3C,0xEE,
+0xB9,0xD6,0xF8,0x54,0x06,0x48,0xEB,0xD9,0xAE,0x2C,0xC1,0x15,0xBC,0x40,0xAD,0x86,
+0x52,0x09,0xCC,0xBF,0x59,0x94,0xB4,0x5A,0x72,0xD8,0x35,0x3D,0x4D,0xCA,0x27,0xFD,
+0x21,0x9C,0x2A,0xCC,0x3B,0x03,0xD6,0xAF,0xED,0x23,0xCE,0x59,0x96,0xA7,0x4A,0x4B,
+0xE1,0x14,0x62,0x0C,0x48,0xE5,0xA5,0x3A,0xA1,0x93,0x7E,0xA5,0xAA,0x57,0xBA,0x87,
+0x1B,0xAB,0x27,0xF6,0xCA,0x1E,0x27,0x43,0xF7,0xAF,0x42,0xCF,0x39,0xFA,0x17,0xB9,
+0x45,0x08,0xDA,0xA8,0xCE,0x0A,0x23,0x53,0xFA,0x18,0xF5,0x75,0xC3,0x96,0x7B,0x2F,
+0xF6,0x15,0x74,0x1B,0xE6,0x24,0x0B,0x55,0x68,0x54,0xB9,0xAB,0x3B,0xE9,0x04,0xA8,
+0xF8,0x76,0x19,0x15,0x6A,0xB2,0x87,0x4F,0xC9,0x02,0xEF,0x5C,0xE3,0x79,0x94,0xE0,
+0x3A,0x8F,0x22,0xD7,0x38,0x51,0xD5,0xFE,0xCE,0x3D,0xD0,0x64,0xDD,0x9A,0x77,0x3D,
+0xA6,0xD5,0xE4,0x4B,0xCC,0x79,0x21,0x22,0x1D,0x76,0x9B,0xFC,0xB4,0x5B,0xB6,0x95,
+0x62,0x4D,0xB8,0x8F,0x5F,0xF3,0xB2,0x3B,0x8B,0x1A,0xF7,0x06,0x14,0x2F,0xC2,0x41,
+0x2D,0x8E,0x34,0xC0,0x6C,0xD5,0x81,0x2E,0x57,0xEE,0x03,0x2E,0x37,0x3D,0xD0,0x70,
+0x01,0x98,0x0E,0xEC,0x05,0x1A,0xE8,0x88,0xB3,0x9F,0x72,0xBB,0x6D,0x25,0xC8,0x32,
+0x5C,0x6A,0xA1,0xB1,0xE9,0x68,0x04,0x16,0x23,0xDB,0x36,0x6F,0xD1,0x4E,0xA3,0xE5,
+0x09,0x9A,0x04,0xE4,0x51,0x9E,0xBC,0x58,0x40,0xD5,0x38,0x02,0xE2,0x97,0x7A,0x0F,
+0x2A,0xCF,0x72,0xC7,0xDA,0x4E,0x37,0x03,0x66,0xFC,0x11,0x0D,0xAD,0x65,0x88,0xB2,
+0xBE,0x97,0xBE,0x53,0xCB,0x3F,0x26,0x63,0x19,0x56,0xBB,0xD8,0x13,0x1D,0xF0,0x74,
+0x9E,0x93,0x9A,0x73,0xB4,0xC7,0x59,0xE4,0x05,0xF2,0x1F,0x60,0x35,0x2E,0xC3,0x61,
+0xE0,0x34,0x43,0x0D,0x12,0x0C,0xFF,0x89,0x3E,0x68,0x85,0xC1,0xA7,0x6D,0x80,0xB0,
+0x19,0xDA,0x54,0xF4,0xDC,0x29,0x31,0x62,0xAD,0x33,0xDE,0x09,0xDE,0x67,0x8A,0xC3,
+0x91,0xD0,0xD6,0x7C,0x7F,0xD7,0x92,0x3F,0x6C,0x74,0x99,0x8F,0xAE,0x98,0x75,0x4C,
+0xB2,0x85,0xA0,0x5F,0x8E,0xCA,0x63,0xD3,0x47,0xEA,0x07,0x3A,0x86,0x6C,0x81,0x90,
+0x67,0x7D,0x8D,0x8A,0x5E,0xD2,0xB3,0x1B,0x0D,0x72,0x9F,0xE8,0x89,0x45,0xA8,0xB6,
+0x83,0xE1,0xF5,0x6E,0xCF,0x2B,0x22,0x73,0xC0,0x95,0x78,0xC2,0x53,0xC6,0x2B,0xEF,
+0x4D,0x0A,0xD0,0xA0,0x60,0xCB,0x8D,0x3C,0xFC,0x30,0xDD,0x5B,0x2D,0xFE,0x13,0xA9,
+0x9C,0xE2,0xE9,0x71,0xCD,0x58,0x20,0x02,0xF9,0x07,0xEA,0x69,0x6B,0xF9,0x14,0xE8,
+0x1D,0xCA,0x40,0xF0,0xDF,0x7B,0x32,0x33,0xB8,0x00,0xED,0x2F,0x9B,0x9D,0x70,0x7C,
+0x32,0x8D,0x28,0xDF,0x35,0x6E,0xD8,0xCC,0x42,0xDD,0x30,0x08,0xEA,0x8C,0x61,0x1C,
+0x0B,0xEB,0x77,0xE6,0x78,0x91,0x95,0x7E,0xDE,0x39,0xD4,0x70,0x50,0x3B,0xD6,0x11,
+0xC5,0x00,0x52,0x28,0x50,0xBF,0xBD,0x78,0x29,0x53,0xBE,0xED,0x8A,0xB8,0x55,0x48,
+0xE8,0x36,0x49,0x05,0xB1,0xF2,0x5C,0xD4,0x13,0xDE,0x33,0x5A,0xA6,0x83,0x6E,0x5F,
+0x15,0xC8,0x4A,0xF8,0x4F,0xA3,0xA2,0x7B,0x2D,0x73,0x9E,0xC9,0x65,0x3E,0xD3,0x21,
+0x0A,0xCB,0x56,0xE7,0x84,0xB3,0x69,0xA0,0xCD,0x22,0xCF,0x78,0xE6,0x58,0xB5,0xC4,
+0x2A,0xDA,0x34,0x8D,0x82,0xF5,0x4C,0xB3,0x26,0x66,0x3D,0x84,0x98,0x21,0x34,0x68,
+0xCD,0x53,0x5A,0xE3,0xA5,0xCB,0x72,0xAA,0x89,0x94,0x60,0xD9,0x86,0x3F,0x17,0x55,
+0xD0,0xFD,0xE9,0x50,0x24,0x9C,0x25,0x7C,0xEC,0xE4,0x75,0xCC,0xD8,0x61,0xB4,0xA8,
+0x64,0x2C,0x8C,0x35,0xF5,0xDF,0x66,0xEE,0xB7,0x49,0x83,0x3A,0x88,0x31,0x74,0x38,
+0xE9,0x56,0x7B,0xC2,0x03,0xA2,0x1B,0x65,0x41,0x07,0x3B,0x82,0x97,0x2E,0x77,0x24,
+0x63,0x14,0xB3,0x0A,0xAB,0x63,0xDA,0x0C,0x82,0x79,0x86,0x3F,0xDD,0x64,0x84,0x9D,
+0x7F,0xAC,0x17,0xAE,0x3D,0x0F,0xB6,0xF6,0xDC,0xF0,0x51,0xE8,0x2E,0x97,0x19,0xF3,
+0xE8,0x40,0x6C,0xD5,0xB5,0xCF,0x76,0xBE,0xCA,0xF1,0x46,0xFF,0x18,0xA1,0x3C,0xE0,
+0x43,0x35,0xB2,0x0B,0x92,0xF1,0x48,0xA7,0xEB,0xD1,0x47,0xFE,0xBA,0x03,0x41,0x3F,
+0xB9,0x12,0x6F,0xD6,0xA0,0xFC,0x45,0x98,0x0E,0xBA,0xC9,0x70,0xF4,0x4D,0xA2,0x92,
+0x81,0xAF,0xEA,0x53,0xC7,0xD2,0x6B,0xD1,0x43,0x16,0x28,0x91,0x56,0xEF,0xDF,0x4D,
+0xF6,0xF2,0xC0,0x79,0x96,0xD1,0x68,0x83,0xC6,0x29,0x92,0x2B,0xDA,0x63,0xC5,0xDB,
+0x8E,0x1F,0x55,0xEC,0x3E,0x10,0xA9,0xEA,0x2E,0x75,0x26,0x9F,0x37,0x8E,0x7B,0x88,
+0x36,0x62,0x90,0x29,0x15,0x8E,0x37,0x5F,0x8C,0xB0,0x41,0xF8,0xD7,0x6E,0xF7,0xE4,
+0x4D,0x93,0x1A,0xA3,0x1A,0x31,0x88,0xEF,0x87,0x5D,0xA7,0x1E,0x94,0x2D,0x26,0x76,
+0xEF,0x78,0x53,0xEA,0xCA,0x65,0xDC,0x6B,0x3C,0xBF,0xFE,0x47,0x30,0x89,0x3A,0xCE,
+0xE6,0xE6,0xC4,0x7D,0x8C,0x5D,0xE4,0x15,0xC5,0xD7,0x6F,0xD6,0x5B,0xE2,0xED,0x72,
+0x55,0x0F,0x9E,0x27,0x62,0xA4,0x1D,0x02,0x9C,0x6B,0x8A,0x33,0x80,0x39,0x76,0x32,
+0x5F,0x8D,0x16,0xAF,0x6A,0x24,0x9D,0x8A,0x4F,0xCE,0xFC,0x45,0xA1,0x18,0x52,0x37,
+0x54,0x19,0x89,0x30,0xEE,0x44,0xFD,0x6E,0x00,0x73,0x0E,0xB7,0x4D,0xF4,0xCC,0x45,
+0x1D,0xD7,0x0E,0xB7,0x44,0x8D,0x34,0x0D,0xC2,0xE2,0x5D,0xE4,0xC3,0x7A,0xA7,0xA0,
+0x58,0xB5,0x29,0x90,0x4C,0x0D,0xB4,0x85,0xC3,0x0D,0xB3,0x0A,0x6D,0xD4,0xC8,0x61,
+0xD9,0x63,0x7E,0xC7,0xAC,0x5C,0xE5,0x34,0x6F,0x01,0x13,0xAA,0x35,0x8C,0x0A,0xFB,
+0xA1,0x8E,0xEB,0x52,0x02,0xB5,0x0C,0x73,0x64,0xEC,0xF5,0x4C,0xF6,0x4F,0xD3,0xE1,
+0x91,0xBB,0xEE,0x57,0x38,0x38,0x81,0xC4,0xF8,0xF4,0x71,0xC8,0x15,0xAC,0x0E,0xDF,
+0xD2,0xF7,0xE1,0x58,0x88,0x7D,0xC4,0x31,0x50,0x33,0x1E,0xA7,0x42,0xFB,0x8F,0x09,
+0x05,0x4B,0x8A,0x33,0xF9,0x7F,0xC6,0x42,0x9F,0x95,0x77,0xCE,0x87,0x3E,0x37,0x74,
+0x78,0x94,0x28,0x91,0x2C,0x1C,0xA5,0xF4,0xBD,0x4B,0x8B,0x32,0xD4,0x6D,0xA6,0xB6,
+0xE7,0xF0,0xD3,0x6A,0xA3,0xE3,0x5A,0x84,0x52,0x22,0x0D,0xB4,0x4F,0xF6,0xBD,0x36,
+0x85,0x8B,0xCA,0x73,0x8A,0x75,0xCC,0x3B,0x66,0xFD,0xE6,0x5F,0xDE,0x67,0xD5,0xCF,
+0x57,0x05,0x96,0x2F,0xA8,0x7C,0xC5,0x10,0xC9,0x0F,0xBB,0x02,0x3D,0x84,0x08,0xF1,
+0x8B,0x2D,0x62,0xDB,0xFF,0x57,0xEE,0x6C,0xFF,0xC1,0x43,0xFA,0xE5,0x5C,0xC2,0xE3,
+0x47,0x11,0x92,0x2B,0x69,0x3B,0x82,0x96,0xD6,0xF2,0x59,0xE0,0xC9,0x70,0xD4,0xD9,
+0xF8,0x54,0x68,0xD1,0x10,0xB9,0x00,0x6D,0xBC,0xA4,0x65,0xDC,0x64,0xDD,0xEA,0x4A,
+0x5A,0xBF,0x21,0x98,0x09,0x2A,0x93,0xE7,0x4E,0x21,0x12,0xAB,0x54,0xED,0xAE,0x3E,
+0xCF,0x59,0x52,0xEB,0xFC,0x48,0xF1,0x70,0x2A,0xBE,0xE9,0x50,0x39,0x80,0x18,0xE5,
+0x25,0x6A,0x8B,0x32,0x1C,0x19,0xA0,0xC1,0x2F,0x9A,0xC8,0x71,0xE7,0x5E,0xB3,0x90,
+0xDC,0x51,0x49,0xF0,0xAD,0x4B,0xF2,0x22,0x17,0x9D,0xF7,0x4E,0x04,0xBD,0x6E,0xAE,
+0x5B,0xA9,0x36,0x8F,0x00,0xBD,0x04,0x79,0x06,0xA9,0xD2,0x6B,0x08,0xB1,0x7C,0xB0,
+0x46,0x07,0x85,0x3C,0x06,0x95,0x2C,0x57,0xD8,0x3B,0x9E,0x27,0x77,0xCE,0xFB,0x48,
+0xDD,0x47,0x5E,0xE7,0x7D,0x1F,0xA6,0xA6,0x5D,0x04,0x24,0x9D,0xA3,0x1A,0x23,0x44,
+0xCB,0x7D,0x72,0xCB,0xDB,0x76,0xCF,0x69,0xC8,0xE0,0x55,0xEC,0xBB,0x02,0x61,0x1E,
+0x86,0x97,0xD5,0x6C,0x71,0xBF,0x06,0x0A,0x8F,0x4E,0xBC,0x05,0xC5,0x7C,0xC6,0xC7,
+0x1E,0xCB,0x11,0xA8,0x68,0x2C,0x95,0x80,0x75,0xD8,0xD0,0x69,0xB1,0x08,0x12,0x67,
+0x9C,0x01,0x59,0xE0,0x50,0xA9,0x10,0x3D,0x7E,0x35,0x36,0x8F,0xFB,0x42,0xE1,0xDE,
+0xC4,0xCD,0xCD,0x74,0x30,0xB8,0x01,0x4C,0xAB,0x4A,0x9C,0x25,0x83,0x3A,0x27,0x60,
+0x39,0xD2,0x2F,0x96,0x45,0x9A,0x23,0x1B,0x1C,0x70,0x11,0xA8,0xD0,0x69,0xB6,0xA2,
+0xC9,0x77,0x7A,0xC3,0x0B,0x22,0x9B,0xED,0x71,0x13,0x1F,0xA6,0x09,0xB0,0x5C,0x91,
+0x89,0x27,0x6A,0xD3,0x31,0xAF,0x16,0x5A,0x7A,0xFE,0xF9,0x40,0xF9,0x40,0x90,0xAD,
+0x83,0xA5,0xE2,0x5B,0x6C,0x0C,0xB5,0xA4,0xFC,0x3F,0xBE,0x07,0x06,0xBF,0x1F,0xDD,
+0xC0,0xE9,0xED,0x54,0xB7,0xC7,0x7E,0xB4,0x13,0x56,0x38,0x81,0xB0,0x09,0x32,0x46,
+0x67,0x30,0x93,0x2A,0xDA,0x61,0xD8,0x7F,0xB2,0x6D,0xA2,0x1B,0xF3,0x4A,0xE3,0xD4,
+0xB2,0x86,0xF0,0x49,0x20,0xBC,0x05,0x58,0xB1,0x93,0x5F,0xE6,0x58,0xE1,0xBC,0x20,
+0x59,0xA3,0x3E,0x87,0x6F,0x13,0xAA,0xB8,0x28,0xAF,0xFA,0x43,0x60,0xD9,0xFA,0x5E,
+0xD6,0xD3,0xC1,0x78,0x80,0xFD,0x44,0xB9,0x49,0x14,0x20,0x99,0xF2,0x4B,0xC3,0xF5,
+0x2E,0xFE,0x14,0xAD,0x48,0x2D,0x94,0xA1,0x9B,0x5E,0xB8,0x01,0xDB,0x62,0xE5,0xFA,
+0xDE,0x5B,0x41,0xF8,0x9F,0x46,0xFF,0x1D,0x7B,0x11,0x17,0xAE,0x12,0xAB,0x4F,0x99,
+0xB8,0x04,0x78,0xC1,0x2D,0x0B,0xB2,0xE2,0x03,0x8D,0xF3,0x4A,0xA5,0x1C,0x42,0x23,
+0xB1,0x9A,0xEF,0x56,0x51,0xBE,0x07,0x2B,0x1A,0xAA,0xCD,0x74,0x67,0xDE,0xBB,0x18,
+0x99,0x33,0x6E,0xD7,0x60,0xAC,0x15,0x08,0x5C,0xEB,0xCA,0x73,0x03,0xBA,0x2F,0xE8,
+0x9B,0x39,0x66,0xDF,0x28,0x3C,0x85,0xD0,0xBA,0x7E,0xB9,0x00,0xA0,0x19,0x72,0x16,
+0x98,0x25,0x79,0xC0,0xF3,0xF7,0x4E,0xC0,0x0B,0x9E,0xE8,0x51,0xC6,0x7F,0x97,0x95,
+0x53,0x21,0xB6,0x0F,0x2B,0x23,0x9A,0xCC,0x9E,0x7A,0x99,0x20,0x26,0x9F,0x1B,0xF9,
+0x65,0x3A,0x9B,0x22,0x87,0xC2,0x7B,0x81,0x29,0x40,0x14,0xAD,0x1D,0xA4,0x0C,0xD5,
+0x3A,0x2D,0x4A,0x35,0x50,0x76,0x63,0x11,0x75,0xA0,0xF7,0x12,0x79,0x20,0x1C,0x1E,
+0x17,0xF8,0x9F,0xCD,0x48,0xA6,0xAB,0xC1,0xED,0x72,0xBD,0x8A,0x50,0x06,0x13,0x37,
+0x6F,0x1C,0x7B,0x51,0xB1,0x37,0xC3,0x50,0x0A,0x58,0x70,0x6D,0xD3,0x5F,0xC9,0xB4,
+0x4A,0xD2,0xB5,0xBA,0x51,0x98,0x8C,0xFF,0xAF,0xC1,0x4C,0xC8,0xEB,0x19,0xB7,0x8C,
+0x00,0x01,0x66,0x23,0x5D,0x4C,0x54,0x2B,0x6D,0xFA,0xB5,0x0A,0x3B,0xD1,0xAF,0x5C,
+0xD9,0x7F,0x18,0x84,0x96,0xEA,0x39,0x8D,0xF7,0x5B,0x8E,0x90,0x78,0x00,0x3D,0x1F,
+0xCE,0x86,0xE1,0x6A,0xB3,0x24,0xD2,0x43,0xAC,0x93,0x1D,0xCB,0x72,0x73,0x44,0x15,
+0x4C,0x0E,0x69,0x60,0x4D,0x87,0x8F,0xE0,0xEB,0x15,0xDC,0x8C,0x8D,0xFC,0x34,0xEA,
+0xC8,0x5A,0x3D,0xB0,0x25,0xA8,0xC8,0xCF,0xCC,0x77,0x99,0xAB,0xAD,0xF8,0x10,0xCA,
+0xD3,0x77,0x10,0x86,0x68,0x49,0x64,0x2E,0x41,0xC0,0xA3,0x26,0x96,0xEF,0x3C,0xF1,
+0xD0,0x8A,0xED,0x78,0x39,0xB7,0xCB,0xD0,0xEC,0x53,0x9D,0x8B,0x2B,0x91,0xFF,0x4C,
+0xCC,0x95,0xF2,0x7B,0x29,0x7C,0x10,0x1B,0xBD,0xE2,0x7D,0xDA,0x4D,0x74,0x7C,0x2A,
+0x73,0x03,0x64,0x52,0xC2,0x35,0xB2,0x52,0x98,0xF3,0x49,0xFF,0xEC,0x58,0xF1,0x8B,
+0xDA,0x82,0xE5,0x7A,0xE1,0x27,0x83,0x40,0x9F,0xB5,0x08,0xF8,0x88,0xCC,0x01,0xEF,
+0xB2,0xAD,0xCA,0x3D,0xF4,0xCD,0x7C,0xAA,0x42,0x92,0xF2,0x25,0x99,0xAC,0x70,0xFE,
+0xED,0x94,0xF3,0x5B,0x0B,0x80,0xCE,0xE7,0xA6,0xEA,0x6E,0xC1,0x2E,0xA1,0xCA,0x49,
+0x40,0xDA,0xBD,0xB8,0x90,0x36,0xE3,0x51,0x87,0xEF,0x4A,0xE0,0x83,0x9F,0x59,0xE4,
+0xEE,0x69,0x0E,0xA5,0xBE,0x1E,0xE5,0x79,0xCB,0x31,0xD8,0xAC,0xFC,0x18,0xA1,0x9B,
+0x83,0x67,0x00,0xC6,0x28,0x92,0xFF,0xF5,0x9D,0xC6,0x79,0xFA,0x6C,0x50,0x79,0x0B,
+0xB8,0xA5,0xC2,0x3F,0xCB,0xC0,0x4E,0xA7,0xA2,0xFE,0x7E,0xC5,0x8F,0x8D,0x47,0xE8,
+0x56,0xCD,0xAA,0xB9,0x0E,0xA1,0xEA,0xC6,0x47,0xA7,0xC2,0x20,0xDF,0x4D,0xD7,0xB8,
+0xB0,0xBE,0xD9,0x2C,0x99,0xC3,0x1F,0xA4,0xBC,0xC3,0x5D,0xDB,0xB2,0xFB,0x0C,0xD5,
+0xF8,0x7E,0x19,0xA4,0x7F,0xB0,0x8A,0xD7,0x0C,0x3F,0x11,0x6B,0x42,0x37,0x30,0x25,
+0xBD,0x84,0xE3,0x1B,0x84,0x32,0xF3,0x55,0x30,0x55,0x47,0x57,0xEF,0x09,0xA3,0x88,
+0x3B,0xC3,0xA4,0xDA,0xF2,0x11,0xA6,0x76,0x44,0xF5,0x93,0x23,0x5B,0x55,0x4B,0x3C,
+0x9E,0x96,0xF1,0x2A,0x04,0xA9,0xE8,0xCE,0x4A,0x98,0xF0,0x2D,0x82,0xBF,0x78,0xE5,
+0xE8,0xB5,0xD2,0x7F,0xD4,0x22,0xB3,0x45,0x63,0x97,0xD6,0x04,0x70,0x02,0x37,0x17,
+0x24,0x21,0x46,0x27,0xA5,0x33,0xD3,0x54,0xC9,0x42,0xA9,0xAE,0x08,0xC4,0x89,0x6F,
+0x7E,0x39,0x5E,0x65,0xE3,0x34,0x92,0x53,0xE9,0x66,0xAD,0x8E,0x4E,0x25,0x2E,0x29,
+0x22,0xFD,0x9A,0xFD,0x69,0xA7,0x8B,0xC0,0x85,0x9C,0x3B,0xE2,0x3A,0xF1,0x8E,0x5D,
+0xAE,0xB2,0xD5,0x3E,0x4F,0x94,0x9E,0xF3,0x71,0xB4,0xE7,0x16,0x28,0xC0,0xAD,0x4F,
+0x94,0x9E,0xF9,0x28,0x80,0xFD,0x38,0x9A,0x00,0x21,0x03,0x67,0x30,0x82,0xF7,0x57,
+0x8A,0x92,0xF5,0x3A,0xDD,0xD7,0x4F,0xB0,0x46,0x86,0xE2,0x21,0xBE,0xE9,0x12,0xD9,
+0x67,0x07,0x60,0x42,0x9A,0x3E,0xE1,0x59,0xA0,0x8D,0x0F,0xC7,0x7D,0x30,0x08,0x1A,
+0x3E,0xE2,0x85,0xFE,0xE4,0x06,0xA7,0x61,0x08,0x2B,0x01,0x6F,0x48,0x44,0x49,0x2F,
+0x5C,0xC5,0xA2,0xBB,0x6C,0x86,0xAF,0xE1,0xE6,0x2A,0xEE,0x81,0xE6,0x2B,0x88,0x81,
+0x64,0xFA,0x9D,0xBC,0x63,0xAF,0x89,0xC8,0xA9,0xA6,0x2D,0xCE,0x2A,0xB1,0xDE,0x4D,
+0xF0,0x65,0x02,0xB7,0x87,0xCF,0x0D,0xA8,0x5B,0xE9,0x90,0x3C,0xC6,0x2F,0xAC,0xA1,
+0x0F,0x28,0x4F,0x05,0xFC,0xD6,0x6F,0xB1,0x3A,0x2C,0x34,0x5D,0xD0,0x0E,0x9B,0xB7,
+0xE6,0x72,0x15,0xB6,0xEB,0x2F,0x81,0x48,0xDF,0x75,0x88,0xB8,0x0B,0x95,0xDB,0x6C,
+0xEC,0x7A,0x1D,0xB4,0xF9,0xF7,0x4B,0x90,0xEE,0x20,0xEC,0x89,0xB6,0xEB,0x18,0xD1,
+0xC4,0x8E,0xE9,0x68,0x85,0xDC,0x1C,0xBB,0x16,0x16,0x22,0x71,0x6E,0x21,0x0A,0x09,
+0x19,0x3F,0x58,0x04,0x6D,0x68,0x40,0x0F,0x58,0xBB,0xC1,0x3F,0xC4,0x5E,0xDF,0xA3,
+0x62,0x26,0x41,0x66,0xD2,0xFE,0x69,0x99,0xB3,0x8F,0x1E,0xD4,0x55,0x36,0x26,0x32,
+0xA2,0x66,0x01,0xE6,0xAB,0xF4,0x1A,0x93,0x22,0x76,0x76,0x45,0x0C,0xD4,0x9D,0x6B,
+0x7D,0xC4,0xA3,0x9B,0x1D,0x97,0xCF,0xF0,0xDE,0x54,0xA8,0xB9,0x5F,0x45,0x5F,0x38,
+0x52,0x02,0x65,0x72,0x2D,0xB3,0xDB,0xD4,0x24,0x11,0x17,0x43,0x9E,0xED,0x36,0xF9,
+0x1E,0x0D,0x6A,0x31,0xD8,0xF6,0x6B,0x91,0x4B,0xB9,0xD0,0x2C,0xC9,0x6C,0xE0,0xAE,
+0x45,0xFB,0x9C,0x9C,0x1F,0x84,0xDE,0xE3,0x04,0x35,0x13,0x63,0xA5,0xFA,0x1A,0xC2,
+0xA9,0x80,0xE7,0x0B,0x57,0x44,0x56,0x23,0x13,0x23,0x12,0x74,0x93,0xDF,0x09,0xF4,
+0xBF,0x97,0xF0,0x0A,0x8C,0x29,0xE0,0x4E,0x6E,0xA8,0xE4,0x09,0x1C,0x94,0xCD,0x7B,
+0xFD,0x5F,0x38,0x80,0xE5,0xE8,0x48,0x8F,0xD3,0x6B,0x9A,0xB4,0x56,0x67,0x74,0x31,
+0x14,0x05,0x62,0x33,0x95,0x17,0xC7,0x70,0x20,0x05,0x07,0x47,0x53,0x57,0x41,0x34,
+0xC5,0x60,0x07,0x87,0x07,0x54,0x16,0x33,0xD6,0x5E,0xAA,0xB1,0x03,0x97,0xD1,0x64,
+0x33,0xD8,0xBF,0xC9,0x5A,0x7E,0x61,0x19,0x68,0xCF,0x85,0x0F,0x13,0xD7,0x81,0x74,
+0xBA,0xB6,0xD1,0x2E,0x43,0x40,0x46,0x27,0x35,0x60,0x77,0x52,0x0D,0xF4,0xBC,0x6A,
+0x7A,0xF6,0x91,0xAE,0x06,0xBA,0xF9,0xDD,0xF2,0x6E,0xBE,0x95,0x1F,0xC5,0x9F,0x78,
+0x91,0xBF,0xD8,0x0C,0x82,0xEE,0x29,0x89,0xAB,0xD5,0x5C,0xCC,0xBB,0xD9,0x27,0xDC,
+0xF6,0xB9,0xDE,0x6D,0x03,0x9B,0xDD,0xFC,0x73,0xC7,0x96,0x14,0xBC,0x98,0x61,0xDB,
+0x8B,0x7C,0x1B,0xD5,0xB6,0x05,0xF6,0x62,0x14,0x65,0x53,0x73,0x5C,0x14,0x0D,0x3B,
+0x46,0x06,0x61,0x62,0x38,0x59,0x24,0x3E,0x7D,0xAA,0xF5,0x1A,0xDD,0x3C,0xA4,0xBA,
+0x1B,0x2C,0x4B,0x15,0x6A,0x5A,0x75,0x3D,0xC7,0x2F,0xCA,0xA0,0x51,0x26,0x32,0x36,
+0xDC,0x5E,0x39,0xA0,0x4E,0x7A,0x71,0x1D,0x12,0x02,0x32,0x75,0x31,0xA2,0xD6,0x56,
+0xFB,0x83,0xE4,0x5A,0x71,0x77,0x43,0x10,0x9C,0xE7,0x59,0xFB,0x7F,0x41,0x7B,0x18,
+0xA9,0x66,0x2E,0x42,0x4D,0x56,0xA6,0xFA,0x5E,0x2C,0xC7,0x93,0x94,0xF5,0x1E,0x6B,
+0x45,0xF8,0x5C,0xAE,0xBF,0x19,0x54,0x47,0xDA,0x4C,0xA7,0x77,0x00,0x6A,0x81,0x60,
+0x53,0xD9,0x6B,0xB8,0xDE,0xDC,0x35,0xE3,0xB8,0x55,0xBE,0x0C,0xFF,0x27,0xCC,0xD2,
+0x88,0x42,0x2B,0x63,0x3B,0x85,0xD0,0x5F,0x56,0xAC,0x47,0x1B,0x16,0x7D,0x96,0x61,
+0x3D,0x3E,0xE2,0xD6,0xA2,0x76,0x49,0x35,0x98,0x54,0xBF,0x2D,0x7A,0x9D,0x76,0xED,
+0xFE,0xE7,0xF8,0x15,0x44,0x7D,0xAF,0xD8,0x36,0xBD,0x56,0x6A,0x97,0x08,0xE3,0x95,
+0xCB,0x93,0xB9,0x20,0xEC,0xDB,0x07,0xD6,0x70,0x85,0x6E,0x14,0xCE,0xED,0x06,0x29,
+0x65,0xFC,0x78,0x8E,0x02,0xDA,0xE9,0x39,0x78,0x05,0xEE,0x9C,0xAC,0xCA,0x21,0x6C,
+0x8F,0x03,0x6D,0x64,0xC6,0x86,0x2D,0xA1,0xCD,0x77,0x9C,0x5B,0x52,0x69,0x82,0x31,
+0xDC,0x92,0xAF,0x37,0x3A,0xA4,0xD1,0x7F,0x18,0x14,0xFF,0xED,0x8D,0xCB,0x20,0x4C,
+0x1D,0x3A,0xC6,0xF6,0xC0,0xE1,0x2B,0xC0,0x0C,0x30,0xDB,0xDD,0xA2,0x0D,0xE6,0xA5,
+0x4A,0xBB,0x10,0xA1,0xAF,0x49,0x44,0x07,0xBC,0x75,0x9E,0x28,0xEE,0x02,0xE9,0xE6,
+0x35,0x3C,0xE8,0xDE,0x0A,0xD0,0xE1,0x3B,0x9C,0x74,0x9F,0x09,0x1C,0x75,0x9E,0x63,
+0xED,0xF6,0xFA,0x06,0xF2,0xE6,0x19,0xF5,0xCB,0x5F,0xB4,0x75,0x34,0x81,0x6A,0xBF,
+0x47,0x89,0x2F,0xAC,0xBC,0x4B,0x57,0x16,0x97,0xEB,0x00,0x9D,0xE9,0x30,0xDB,0xD3,
+0xD6,0xE1,0xD6,0x3D,0x57,0x7F,0xBC,0xC9,0xBE,0x7D,0x96,0x22,0x92,0x29,0xC2,0xB1,
+0xD0,0x80,0xB1,0x3B,0xC4,0xF5,0x2F,0xD0,0x10,0x94,0x7F,0x65,0xE4,0x0A,0xE1,0xE4,
+0x80,0x40,0x21,0x6B,0x32,0xAE,0xD9,0x7D,0xC1,0xD7,0x3C,0xF7,0x35,0x6F,0x84,0x50,
+0x90,0x00,0x71,0x7B,0x8C,0x3F,0x67,0x52,0xB6,0xFD,0x16,0xAA,0xC3,0xD7,0x3C,0x1E,
+0x8E,0x23,0x4C,0x65,0xD1,0x90,0x3A,0xA0,0x91,0xC3,0x28,0xB3,0x4A,0xB9,0x52,0xF9,
+0x26,0x2D,0xEA,0xCD,0xE0,0xC5,0x0B,0xC4,0x09,0x07,0xEC,0xEF,0xB5,0xF4,0x1F,0x4B,
+0x10,0x08,0xF9,0xFB,0xF7,0xD3,0x1C,0xC5,0x81,0xC7,0x2C,0xA7,0x59,0x8F,0x64,0xDC,
+0x9F,0x43,0x3D,0x74,0x8A,0x58,0x61,0x33,0x37,0xAA,0x41,0x7C,0x4F,0x98,0x73,0xDD,
+0xD5,0xB0,0x84,0x3E,0x37,0x9B,0xDC,0x4D,0x9F,0x6B,0x80,0x15,0x0D,0x50,0xBB,0x57,
+0x5E,0xEB,0x54,0xB5,0x99,0x5A,0x72,0x22,0xF3,0xDA,0x31,0xC8,0xB6,0x09,0xE2,0xB5,
+0xD2,0xF1,0xC2,0x39,0x23,0xDF,0xC8,0x1D,0xA2,0xD9,0x32,0x9A,0xEB,0x23,0xC8,0xC2,
+0xB2,0x75,0x26,0x59,0xF6,0xF2,0x1D,0xE5,0xA6,0xF9,0x12,0xBE,0x2C,0x51,0xBA,0x77,
+0xFC,0x96,0x8B,0x17,0x78,0x17,0x93,0x8E,0x94,0xF4,0x1F,0x81,0x0B,0x8C,0x67,0x8D,
+0x9C,0x12,0x6F,0x77,0x16,0x9E,0xFD,0x69,0x2E,0x39,0xD2,0xF6,0x8A,0xF9,0x12,0x79,
+0x38,0x0E,0xD7,0xD3,0x4F,0x25,0xA4,0x8B,0xFE,0x6D,0x86,0x72,0x61,0xB0,0x5B,0xDB,
+0x3F,0x4F,0x91,0xD4,0x97,0x37,0x7C,0x41,0x0A,0x18,0xF3,0xF3,0x06,0xB6,0x5D,0xBA,
+0xDF,0xC3,0xFD,0x34,0xF0,0x95,0x1B,0x84,0x21,0x86,0x6D,0x46,0x7B,0x73,0x98,0x02,
+0xB8,0x06,0x5F,0x53,0x89,0x0A,0x62,0x62,0x83,0xCF,0x24,0xAD,0xF0,0x0E,0xE5,0xF4,
+0xFB,0xD7,0xCD,0x10,0x13,0xAB,0xF8,0x59,0xEE,0x69,0x82,0x66,0x29,0x70,0x9B,0x53,
+0xF1,0xA4,0xB4,0x1A,0x48,0x63,0xA3,0xCA,0x05,0xA7,0x4C,0x43,0x3E,0x89,0x62,0xBD,
+0x0E,0x2B,0xC4,0xE5,0x0F,0xE5,0xE4,0x0B,0x58,0x04,0xEF,0xBD,0xBC,0x01,0xEA,0xB7,
+0xFA,0xF7,0xEC,0x11,0x91,0x50,0x7A,0x20,0xB4,0xF5,0x1E,0xA0,0xCA,0x22,0xC9,0xE2,
+0xD3,0xD1,0xE3,0x38,0x09,0x82,0xE2,0x6A,0x7C,0x25,0xCE,0xB8,0xE7,0xF7,0x1C,0x1A,
+0x50,0x88,0x39,0xBB,0xEE,0xA8,0x05,0xA7,0x14,0xB4,0x5F,0x41,0x9F,0x13,0xF8,0x86,
+0x68,0xCE,0x47,0x83,0x4B,0x31,0xA0,0x9B,0x5B,0x1B,0xF0,0xA1,0xBA,0xDD,0x36,0x6D,
+0x6F,0x8F,0x01,0x84,0x7C,0x03,0x97,0x9E,0x65,0xB6,0x5D,0x32,0x83,0x0C,0xE7,0x85,
+0x0B,0x1B,0xF1,0xE0,0x7B,0x45,0x90,0xDF,0x54,0xA4,0x4F,0x11,0x2A,0x8D,0x66,0xAD,
+0x1A,0x7B,0x80,0xF1,0xA6,0x62,0x4D,0x25,0xAB,0x4E,0xA5,0x04,0x42,0xA2,0x49,0xEA,
+0xAD,0x76,0x3A,0x46,0x42,0x1A,0xA9,0xB9,0x19,0x03,0xE8,0xFB,0x1D,0x9B,0x70,0x8C,
+0x2E,0x2F,0xE0,0xC5,0x28,0x87,0xC3,0x4E,0x1F,0x2B,0xC0,0xD5,0x38,0x55,0xBE,0x67,
+0x15,0x38,0xCC,0xFE,0xA5,0x30,0x4E,0x74,0xB3,0xCA,0x21,0x98,0x23,0x78,0x93,0x51,
+0xA8,0x46,0x0F,0x43,0x08,0xA3,0xE3,0x4A,0x1C,0x34,0xDF,0xC9,0x20,0x85,0x6E,0xAF,
+0xCE,0xA3,0x8C,0x25,0x59,0x12,0xB2,0xAA,0xC7,0xFF,0x14,0xD9,0x3C,0x9A,0x71,0xAC,
+0x5C,0x9A,0x27,0xB7,0xA3,0x57,0x48,0x15,0x3D,0x22,0xC9,0xFE,0xA6,0xC2,0x29,0x6E,
+0x31,0x2C,0xFC,0xDA,0x58,0x33,0xB3,0x8A,0xC8,0x40,0xAB,0x69,0x40,0xB1,0x5A,0xFB,
+0xC1,0xE0,0xC0,0x2A,0xE8,0xCF,0x03,0xC6,0x5D,0x33,0xD8,0x8F,0x08,0x71,0x9A,0x73,
+0x6C,0xDE,0x53,0x87,0xD4,0xA5,0x3F,0x90,0x24,0xB1,0x5A,0x74,0x4D,0x8B,0x60,0xCC,
+0x00,0x48,0xA9,0xEB,0x63,0x1F,0x88,0x9D,0x34,0xB5,0x5E,0x60,0xB0,0xD5,0x3E,0x6F,
+0x7F,0xCF,0x51,0x94,0x2F,0xC1,0xC4,0x0F,0x32,0x9D,0x76,0x4E,0x1E,0x66,0x8D,0x72,
+0xEF,0x87,0x89,0x04,0x79,0x36,0x92,0xAE,0x28,0x11,0xFA,0xD8,0x73,0x68,0x83,0x11,
+0x0C,0x5A,0xB7,0xE7,0x46,0x0E,0xAD,0xA9,0x99,0x43,0xA8,0x3B,0x48,0xAA,0x41,0xE8,
+0xCD,0xF2,0xDE,0x26,0x0D,0x96,0xE6,0x7A,0x45,0xB7,0x5C,0x13,0x8E,0x36,0xDD,0xB2,
+0xB9,0x26,0x7E,0x52,0x61,0x6C,0x8A,0xEC,0x5C,0x24,0xCF,0x99,0xD2,0xF2,0x19,0x2A,
+0xAB,0x17,0x5D,0x40,0x95,0x44,0x7E,0x30,0x49,0x17,0xFC,0xBF,0x5E,0xBD,0x56,0xE9,
+0xB3,0x55,0x07,0x58,0xE4,0xD1,0x0F,0xD4,0xEF,0x7E,0x95,0x70,0x64,0x91,0x7A,0xFF,
+0xD8,0x82,0xBB,0x33,0xA0,0x05,0x4B,0x44,0x71,0x92,0x79,0x02,0xCB,0xCC,0x27,0x0D,
+0x01,0x68,0x88,0xEA,0xAE,0x68,0x45,0x27,0x3F,0x2A,0xC1,0xF4,0x6E,0x99,0x72,0xFD,
+0xF3,0xD5,0xC7,0x18,0x87,0x67,0x6C,0x01,0x64,0xA1,0x4A,0x24,0x18,0xBA,0x51,0xA8,
+0x8B,0x13,0x79,0x60,0x2D,0xB2,0xC6,0x7E,0x04,0xB0,0x5B,0x55,0xD4,0x2E,0xC5,0xF0,
+0xAA,0xAF,0x56,0x9D,0x0A,0x5A,0x31,0x0F,0x33,0x36,0x5B,0x0C,0xBF,0xB2,0x6C,0x69,
+0xCC,0xC9,0xB3,0x1E,0x5B,0xBA,0x80,0x5E,0xF8,0xFD,0x4B,0xD7,0xBC,0xAE,0x73,0x76,
+0x2C,0x29,0x3F,0x72,0x2A,0x5E,0x15,0x2F,0x2C,0x29,0x47,0x0F,0x77,0xAA,0xBC,0xB9,
+0x17,0x12,0x28,0x5E,0xA7,0x64,0xA2,0xA2,0xCD,0xC8,0x0A,0xA3,0x41,0xB1,0x91,0x94,
+0x18,0x1D,0x6B,0x12,0xA4,0x35,0xF0,0xA1,0x49,0x4C,0x96,0xBB,0xFA,0xD0,0x4B,0x4E,
+0xAF,0xAA,0x66,0xA8,0x40,0xA9,0x88,0x45,0x04,0x01,0x69,0x09,0x9C,0x8F,0x72,0x77,
+0x6D,0x68,0x9F,0x93,0x7E,0x8E,0x91,0x7B,0xB1,0xB4,0xA0,0x75,0x95,0x11,0xE5,0xE0,
+0x09,0x0C,0x0B,0x63,0x79,0xCF,0xD7,0x7C,0xA3,0xA6,0x83,0x44,0xBD,0xB8,0x64,0x61,
+0x52,0x57,0x98,0xAB,0xEC,0xB7,0x3A,0xE9,0xB3,0xB6,0xD3,0x04,0x96,0x0D,0xFA,0xFF,
+0x6A,0x6F,0xDE,0xD5,0x49,0x8B,0xA3,0x4C,0x1C,0x19,0x33,0x4B,0x7D,0x28,0x34,0x31,
+0xF8,0xFD,0xE7,0x7E,0x93,0x30,0xC2,0x96,0xF2,0xF7,0x32,0xA4,0xF2,0x58,0xCB,0xCE,
+0xD1,0xD4,0xC1,0x71,0x0B,0x7A,0x10,0x0E,0x22,0x27,0x2A,0x6C,0x0A,0x75,0x1E,0x1B,
+0xF3,0xF6,0xB4,0x26,0x4A,0xDA,0xF1,0x4F,0xA0,0xA5,0xD1,0x15,0xAD,0xAC,0x60,0x65,
+0x0C,0x09,0x3B,0x56,0x0D,0x1B,0x77,0x08,0x03,0x06,0x2F,0x48,0xA7,0x2E,0xE8,0xED,
+0xBA,0xBF,0x16,0xCD,0x8B,0x72,0x98,0x8E,0xC8,0xCD,0x3F,0x93,0xE4,0x62,0xE7,0xE2,
+0xF9,0xFC,0xC7,0x5F,0x11,0x49,0x39,0x14,0x6E,0x6B,0xF4,0xFE,0x43,0xBB,0x99,0x9C,
+0xF1,0xF4,0xC5,0x55,0x85,0x11,0xF5,0x80,0xA6,0xA3,0xB6,0x74,0xB8,0x8A,0x53,0x56,
+0x89,0x8C,0x03,0xEB,0x2F,0x6E,0x20,0x2A,0xB7,0xB2,0xC7,0x14,0xE0,0x46,0xC7,0xC2,
+0xDA,0xDF,0x92,0x29,0xA2,0x54,0x97,0xA7,0x95,0x90,0x90,0x61,0x1D,0x59,0x25,0x20,
+0x03,0x06,0x78,0x1A,0xAC,0x37,0xFA,0xA9,0x2D,0x28,0x66,0x2F,0xED,0xFC,0x70,0x75,
+0xA9,0xAC,0x07,0xCF,0x97,0x20,0xD6,0x92,0x10,0x15,0x2D,0x59,0xF9,0xCC,0x54,0x51,
+0xB1,0xB4,0x45,0x95,0xE6,0xC4,0x43,0xE3,0x79,0x7C,0xE2,0xFF,0xEF,0xF6,0x78,0x7D,
+0xCF,0xCA,0xE2,0x4C,0x0F,0x6A,0x04,0x0A,0xB0,0xB5,0x81,0x55,0xA2,0x1C,0xDF,0xDA,
+0xBB,0xBE,0x36,0xEC,0x63,0xFC,0xFE,0x66,0x23,0x26,0x0B,0x4C,0x3A,0x40,0x1B,0x1E,
+0xED,0xE8,0x97,0x1B,0x7B,0xBE,0xA4,0x7E,0x16,0x13,0x4A,0x38,0x01,0xE1,0x81,0x84,
+0x0E,0x0B,0x4A,0x25,0x44,0xB9,0x9C,0x41,0x44,0x41,0xA9,0x89,0xF8,0xDA,0x43,0x46,
+0x02,0x07,0x58,0x3B,0x61,0x8D,0x8D,0x64,0xB2,0xB7,0xF2,0x24,0x7F,0x22,0x3C,0x39,
+0x7D,0x78,0xDF,0xC3,0x2D,0x1F,0x53,0x28,0x9A,0x9F,0xDC,0x22,0x62,0x8C,0x8F,0x8A,
+0xC3,0xC6,0xF0,0x52,0xEA,0xD6,0x5D,0xEF,0x34,0x31,0x1D,0x4D,0x63,0x9A,0x98,0x9D,
+0x6E,0x6B,0xCE,0xC1,0xD6,0x80,0x37,0xD3,0xB6,0xB3,0xE6,0x34,0xDC,0xDF,0x62,0x67,
+0x5E,0x5B,0x8A,0xB5,0xA1,0x05,0xC5,0xA4,0x25,0x20,0x6C,0x2D,0x7E,0x34,0x2B,0x2E,
+0x33,0x36,0x3C,0x6E,0x5A,0x9A,0xA1,0x5F,0x47,0x42,0xFB,0xD8,0xEB,0xD2,0x58,0x5D,
+0x45,0x40,0x99,0xBD,0xBE,0x06,0xD9,0xBB,0xEC,0xE9,0x0F,0x87,0xC3,0x7B,0xD9,0xDC,
+0xD4,0xD1,0xF1,0x44,0x55,0xD9,0xED,0x50,0x7A,0x7F,0xB0,0xAE,0xA1,0x00,0xC0,0xC5,
+0x37,0x32,0x2C,0x7A,0x08,0x2B,0x42,0x0D,0x73,0x76,0x9B,0x8C,0x73,0x8E,0x9C,0x99,
+0xEF,0xEA,0xE6,0x68,0xF0,0xE5,0x74,0xF5,0x58,0x5D,0xE7,0xDB,0xAF,0xA6,0x68,0x6D,
+0x1F,0x1A,0x2A,0x54,0xC2,0xD0,0x73,0xC7,0x37,0x32,0x4F,0x1C,0xB5,0x30,0xE4,0xE1,
+0x48,0x4D,0xAB,0x82,0xAD,0x17,0xDB,0xA8,0x72,0x77,0xBA,0xAC,0xF6,0x7C,0xEB,0xEE,
+0x8D,0x88,0x13,0xFF,0xC4,0xB1,0x14,0xC1,0x70,0x75,0xC9,0xDD,0x21,0xC0,0x80,0x85,
+0xDE,0xDB,0x82,0x3D,0x38,0x6F,0x36,0x3D,0x13,0x16,0x7F,0x08,0x5C,0x1F,0x22,0x27,
+0xC9,0xCC,0x83,0x2B,0xEE,0xC6,0x49,0xEB,0x82,0x87,0x86,0x60,0x39,0x5C,0x04,0x01,
+0x67,0x62,0xEC,0xEA,0x00,0x29,0x48,0x05,0x02,0x07,0x0E,0x68,0x7C,0x3E,0x23,0x26,
+0x3F,0x3A,0x2E,0x70,0xA0,0x25,0xE4,0xA5,0x53,0x56,0xBF,0x88,0xFD,0xE8,0x74,0x71,
+0xFC,0xF9,0xF7,0x6A,0x46,0xC8,0xEF,0x43,0xBA,0xBF,0xF8,0x26,0x85,0x05,0xE1,0xE4,
+0x51,0x54,0xC9,0xF9,0xDC,0xF3,0x4E,0xD9,0x52,0x57,0x9E,0xA8,0xC2,0x6D,0xCE,0xCB,
+0x8A,0x8F,0x52,0xB9,0x39,0x4F,0x17,0x3C,0xAB,0xAE,0x89,0x46,0x71,0x84,0x94,0x91,
+0xAB,0xAE,0x76,0xBC,0x4F,0xEA,0xC4,0x4A,0x2B,0x2E,0x01,0x4E,0x7B,0x06,0x1C,0x19,
+0x47,0x42,0xE8,0xCE,0xBD,0x57,0x8B,0xB8,0x4B,0x4E,0xE5,0xCA,0x70,0x92,0x83,0x86,
+0x3D,0x38,0x5F,0x03,0x95,0x51,0xA5,0x90,0x1F,0x1A,0x61,0x1A,0xAA,0x94,0x5F,0x5A,
+0xDD,0xD8,0xD3,0x6F,0xF2,0x94,0x07,0xF7,0x81,0x84,0xD4,0x31,0x12,0xE9,0x9A,0x9F,
+0x9E,0x9B,0x02,0xFD,0x14,0x79,0x0C,0x11,0x3E,0x3B,0x64,0x3E,0x69,0x18,0x10,0x15,
+0x3A,0x3F,0x1E,0x45,0x4D,0x9B,0xB7,0x48,0x6A,0x6F,0xE0,0xEE,0xCB,0xF3,0x59,0x5C,
+0xB0,0xB5,0x65,0xB4,0xF4,0xF5,0x60,0xF1,0xFE,0xFB,0x2C,0xB6,0x67,0xBE,0xB8,0xBD,
+0xFE,0xFB,0x86,0x19,0x7A,0x9E,0x85,0x7F,0xF3,0xF6,0x13,0x84,0x9D,0x99,0x65,0x60,
+0x5C,0x59,0xFB,0xC6,0x9B,0x32,0xC8,0x9E,0xDD,0xD8,0x5A,0xE3,0xA5,0x24,0xE0,0xE5,
+0xD0,0xD5,0xE1,0x50,0x21,0x0D,0x4D,0x24,0xDE,0xDB,0x08,0xB2,0xD2,0x79,0xCA,0xCF,
+0x9D,0x98,0x53,0xAF,0x88,0x23,0xCA,0x8D,0xAD,0xA8,0xEE,0x27,0xCD,0xDD,0x71,0x74,
+0xD7,0xD2,0xA0,0x16,0x35,0x5D,0x09,0x30,0x6C,0x69,0x87,0x8F,0x47,0x9F,0xB9,0xBC,
+0x24,0x21,0x3D,0x78,0xE2,0xD4,0x57,0xE7,0x00,0x05,0x7D,0x19,0x5B,0x27,0x1D,0x18,
+0x12,0x17,0x18,0x6B,0xF5,0xD5,0x41,0xF0,0xC0,0xC5,0x35,0x91,0xCC,0xCB,0x66,0x63,
+0x92,0x97,0x10,0xE3,0x8E,0x42,0xAD,0x8B,0xFA,0xFF,0x38,0xA6,0x0E,0x51,0x3E,0x3B,
+0x8C,0x89,0x33,0xDE,0xD3,0xB0,0x02,0xD6,0xC4,0xC1,0x21,0x81,0xE9,0xD8,0x50,0x55,
+0xD2,0xD7,0x90,0x23,0xC6,0xC0,0x67,0xC3,0x93,0x96,0xF7,0x00,0xF4,0x76,0xE3,0xE6,
+0x82,0x87,0x50,0xB3,0x30,0x6D,0x3C,0x35,0xD0,0xD5,0x65,0xD1,0x40,0xA7,0x86,0x83,
+0x0E,0x16,0xFC,0x8F,0xBA,0x8C,0x4B,0x66,0x0B,0x61,0xFD,0xE1,0x23,0x04,0x5A,0xC9,
+0x48,0x11,0xFB,0xCE,0x4A,0xE8,0xDF,0x02,0x8A,0xC8,0xD5,0x60,0x31,0x35,0x79,0xDB,
+0x51,0x2F,0xC5,0xE9,0x71,0x2A,0x26,0xC0,0x1D,0x56,0xDC,0xF7,0x84,0x49,0xB0,0x6E,
+0x29,0xCB,0x21,0x75,0xCB,0x9D,0x2B,0x77,0x24,0x09,0xBA,0xCE,0xC9,0xFB,0x4F,0x23,
+0x7B,0xC8,0x22,0x24,0x87,0x92,0x68,0x78,0xFE,0x68,0x01,0x14,0x4D,0xE3,0xD3,0xA7,
+0xCC,0x45,0xAF,0x1E,0xAB,0xA9,0x7F,0x43,0xD3,0x73,0x37,0x39,0xAC,0x4F,0x9E,0x46,
+0x59,0x34,0xDE,0xFA,0xC7,0x49,0xF3,0xA3,0x1C,0x77,0xFC,0xF6,0x78,0x97,0x92,0x92,
+0xE8,0x65,0x8F,0x1A,0x44,0x2F,0x16,0xC5,0x03,0x6B,0xFF,0xE9,0xB3,0x4C,0x82,0x59,
+0xE0,0x7E,0x94,0x09,0x86,0x7C,0x87,0x96,0xF6,0x62,0x03,0x1C,0xEE,0xBE,0x2D,0x04,
+0x41,0xE4,0x0E,0x32,0x14,0x3F,0x56,0xD5,0x88,0xBB,0xA4,0x62,0x48,0xD3,0xE6,0xA2,
+0xAE,0x62,0x88,0x5B,0x8F,0x89,0x7B,0x63,0x87,0xF7,0xE7,0x6D,0x83,0x08,0xF6,0x69,
+0x28,0x25,0xCF,0x9A,0xFF,0x76,0xF4,0x9C,0x0F,0x75,0xED,0xE5,0x20,0x55,0x08,0xCA,
+0xC9,0x64,0x8E,0x3A,0xA8,0x54,0x81,0xBE,0x71,0xAC,0x4A,0x9B,0xA2,0x2C,0xF3,0x48,
+0x1B,0xFC,0x16,0x70,0xA7,0x7D,0xA7,0x97,0xA4,0x81,0xB2,0x4E,0x72,0xE4,0xEB,0x98,
+0x7A,0x26,0xCC,0xCB,0x0C,0xEF,0x9E,0x05,0x5B,0xF1,0x3D,0xB1,0x9C,0x0B,0xEA,0x76,
+0xE3,0x83,0x69,0xF7,0x72,0xD7,0xD8,0x3D,0x95,0xD4,0xD6,0x7F,0x33,0x44,0x0A,0xD9,
+0x27,0x0C,0xE6,0xBC,0x35,0x3E,0x76,0xD4,0x74,0x99,0x7A,0x9E,0xA3,0x0C,0xD2,0x49,
+0xDD,0x60,0x8A,0x2A,0x95,0x4A,0xA2,0xA0,0xB0,0xC5,0xE2,0x5A,0x30,0x15,0x58,0xDA,
+0x9A,0x89,0x63,0x84,0x4C,0x34,0x05,0xDE,0x17,0x2F,0xAF,0xFD,0xF9,0xBF,0x3B,0x13,
+0x0F,0xF8,0x12,0x60,0x16,0x2C,0x47,0xC6,0x3B,0x15,0xB9,0xD1,0x90,0x19,0xF4,0x7A,
+0x23,0xC3,0x29,0x77,0xC3,0x86,0x38,0x6C,0x1F,0x25,0xAD,0xF5,0xAD,0x6F,0xBF,0x47,
+0x4E,0xCD,0x27,0x14,0xF0,0x5F,0xD2,0xB5,0x4A,0x80,0x5D,0xA0,0x15,0x21,0x49,0xFF,
+0xF9,0x40,0xAA,0x2E,0x32,0x0C,0x43,0xE6,0xA8,0x9F,0xA0,0x42,0x37,0x54,0x1E,0xDD,
+0x2C,0xEA,0x00,0x51,0x8C,0x74,0x85,0x9E,0x3C,0x53,0xF8,0xD6,0x26,0x34,0x6F,0xCC,
+0x78,0x35,0xDF,0xDA,0xB7,0xB6,0x7C,0x5C,0x37,0x0B,0xAB,0xDD,0xC7,0x98,0x22,0x2D,
+0x1C,0xCE,0x24,0x45,0x6C,0xDB,0xCA,0x31,0x44,0xED,0x3E,0xAE,0xA5,0x6D,0xB5,0x4F,
+0xEE,0xB9,0x53,0xC0,0x18,0xEB,0x8E,0x01,0x0D,0x06,0x9C,0xE7,0x36,0x74,0x3F,0xDC,
+0x84,0x85,0x6F,0x96,0x8B,0x46,0xB0,0xAC,0xF7,0x43,0x23,0x1D,0xB4,0x0D,0xC4,0x5E,
+0x8A,0x42,0xA8,0x5F,0x1A,0xF8,0x9F,0x12,0xE0,0x55,0x22,0x0A,0x1A,0x62,0x05,0xF0,
+0x54,0x0E,0xE4,0xCD,0xE2,0x87,0x18,0x6D,0x53,0xFB,0x3F,0xB9,0x32,0x64,0x2B,0xD8,
+0x45,0x2B,0xC1,0xF9,0xFC,0x8B,0x0A,0x61,0x2C,0x03,0xB8,0xC6,0xC4,0xC9,0x70,0x2E,
+0x7D,0x14,0xFE,0xFE,0xC2,0x68,0xD7,0x82,0xEE,0x38,0x41,0x04,0x96,0x78,0x93,0x7C,
+0xEF,0x57,0xBD,0x2F,0xE4,0x5B,0xC2,0xB1,0x4D,0xC6,0x1C,0xA7,0x93,0x48,0xA6,0x79,
+0xCD,0xAB,0x41,0xF1,0x26,0x08,0x53,0xE2,0xEF,0x19,0x61,0x05,0xF0,0x9D,0x10,0x1A,
+0x02,0xC2,0x28,0x57,0x5B,0xCD,0xEB,0x27,0x84,0xA5,0xB6,0x6E,0xF2,0xEC,0x63,0x18,
+0xAA,0xAD,0x47,0x90,0x8D,0x9A,0x6A,0x70,0x8B,0xE9,0xF5,0x61,0xB7,0x5C,0x96,0x5D,
+0xAD,0x9F,0x75,0xA5,0xB1,0x6A,0xA6,0x80,0x07,0x7F,0xEF,0xED,0xD8,0x9B,0x3E,0x32,
+0x9B,0x67,0x8D,0x6B,0xA3,0xB2,0x6C,0x58,0xF3,0x57,0x33,0x19,0xF3,0xCC,0x42,0x19,
+0x34,0x3A,0xD0,0x99,0x9D,0x51,0xB1,0xBB,0xAF,0xD9,0xE1,0x45,0xFA,0xEE,0x69,0x10,
+0x00,0xD1,0x3B,0x46,0x64,0xC0,0xD9,0x2A,0xB6,0xA2,0x83,0x5C,0x6C,0xC7,0xD6,0x86,
+0x52,0xD2,0x38,0x17,0x17,0xC2,0xA8,0x28,0xEC,0x4B,0x30,0x06,0xCB,0x8A,0x3C,0x21,
+0x1D,0x20,0xCA,0xAA,0x65,0x2E,0x36,0xC4,0x73,0xDF,0x3B,0x99,0xAB,0x0E,0xD8,0x41,
+0xCE,0x56,0xBC,0x0F,0x60,0x0F,0x12,0xE5,0xFB,0x5D,0x31,0x11,0x2B,0x06,0x50,0xC1,
+0x97,0xB3,0x59,0xB3,0x20,0xD4,0x89,0x3E,0xA1,0xB4,0x82,0x4B,0xD2,0xE8,0x47,0x38,
+0x36,0x29,0xC3,0x88,0xB3,0x79,0xB7,0x93,0x8E,0xDC,0xC5,0x64,0x3A,0x66,0x21,0xD0,
+0x3D,0xCF,0x25,0x65,0xA9,0xBA,0x6E,0x50,0x1B,0x31,0xBD,0xF1,0xD3,0xC8,0x66,0x39,
+0x91,0x6F,0x85,0x69,0x33,0xE2,0xAC,0x08,0x4C,0xE7,0x3C,0xA6,0x82,0x28,0xD7,0x68,
+0x90,0x81,0x6B,0x86,0xF2,0x4C,0xC3,0xA6,0x6B,0x85,0x79,0x81,0x02,0x20,0x5F,0xE8,
+0x94,0x4E,0xA4,0x4D,0x89,0x55,0xA1,0xBF,0xA5,0xA0,0x92,0x4F,0x5E,0xF2,0xD1,0xB4,
+0x11,0xF4,0x1E,0x72,0x1F,0xD9,0xBB,0x33,0x8F,0xFD,0xE5,0x65,0x5D,0xA3,0x83,0xB7,
+0x5C,0x15,0xFF,0xDE,0xC0,0x7B,0xC6,0x91,0x0A,0x40,0xDD,0xE0,0x73,0xC4,0xCA,0x99,
+0xB9,0x9B,0x71,0xB5,0x6D,0x35,0x25,0xDF,0xD7,0x67,0x27,0x3D,0x7E,0xF6,0xF5,0x94,
+0x6E,0x22,0xC8,0xDB,0x9C,0xBF,0x5E,0x55,0x36,0x2A,0x8B,0xDC,0xEA,0xAE,0x39,0x00,
+0xD5,0x7B,0x91,0x39,0x24,0x1B,0x42,0xF1,0x7F,0xC1,0x29,0x95,0xBE,0x7E,0xBD,0x54,
+0xDE,0x9D,0x77,0xD4,0xB6,0x58,0x93,0xB2,0xF5,0x30,0x52,0x1F,0x01,0x71,0x0D,0xEB,
+0x7C,0xFA,0x10,0x11,0xDA,0xB8,0x1F,0x52,0x30,0x4D,0xEA,0xDA,0x9F,0x5A,0xB8,0x75,
+0xE5,0x5F,0xB5,0x2D,0x6A,0x07,0x10,0xED,0xE9,0x7E,0x00,0x03,0x50,0x91,0xBC,0xBA,
+0xBE,0xA9,0x43,0x80,0xFA,0x57,0xD0,0xBD,0x8C,0xAF,0xB4,0x66,0x13,0x40,0x2E,0xF9,
+0xDB,0xBC,0x56,0xF0,0x07,0x09,0x73,0xE3,0x3F,0x01,0xA9,0xD5,0x44,0xC1,0xF8,0xAE,
+0x74,0xE1,0x0B,0x02,0x3A,0x17,0x50,0xFD,0x51,0x88,0x4E,0xBB,0x7A,0xE6,0xE1,0x90,
+0x98,0x9A,0x70,0x95,0xB2,0x97,0x58,0x7D,0x09,0x12,0x8C,0xE3,0x40,0xD1,0xEC,0xAA,
+0x8E,0x8D,0x67,0x94,0xA1,0xA1,0x7D,0x4B,0x72,0xFE,0x1B,0x98,0x80,0x59,0xA4,0x6A,
+0xD0,0x5A,0xB0,0x1D,0xCF,0x52,0xE0,0xB8,0xD6,0x46,0x07,0x3C,0xEC,0xCF,0x5E,0x06,
+0x13,0xE7,0x0D,0x63,0x76,0x18,0x13,0xF2,0x1E,0x04,0x8D,0xF4,0x2D,0x67,0x37,0xC7,
+0xB5,0xC8,0x39,0x9F,0x1D,0x37,0x39,0x60,0x02,0x7F,0xAE,0xC2,0x72,0x5B,0x3A,0x47,
+0xD2,0xAF,0xFC,0x3D,0xFD,0xBB,0x55,0x80,0xC7,0xBA,0xD3,0x7A,0x59,0xEE,0xA4,0xD9,
+0x34,0x49,0x11,0x36,0xBE,0x6A,0xC7,0xC3,0x4D,0x30,0x22,0x01,0x56,0x5E,0x1B,0x66,
+0x6D,0x10,0xF3,0x8D,0x1A,0x76,0x7F,0x67,0x04,0x79,0xC9,0xA3,0x86,0xDA,0x4F,0x32,
+0xD4,0xA9,0x9D,0x5A,0x90,0x0D,0x8E,0xED,0xE5,0x98,0x84,0x0F,0xDE,0x16,0xDB,0xA6,
+0x5A,0x27,0xF6,0xBF,0xDE,0xEE,0x23,0xA3,0x38,0x45,0xA3,0xF5,0xEC,0x29,0xD6,0xAB,
+0xBB,0xC6,0x5A,0xF2,0x7C,0x93,0xFC,0x01,0xBD,0xC0,0x1E,0xCD,0x8B,0x60,0xF8,0x85,
+0x01,0x7C,0x65,0x77,0xF0,0x89,0x6A,0x8D,0x97,0xEA,0x43,0xBA,0xDA,0x32,0xFB,0x86,
+0xA8,0xD5,0x4B,0xF0,0xBD,0x3B,0x95,0xC0,0x2C,0x51,0xE7,0xA5,0x4F,0xD4,0x88,0xF5,
+0x15,0x68,0x35,0x33,0xF7,0xC8,0x2C,0x8A,0xE4,0x99,0xA5,0x2F,0xE7,0xBD,0x49,0x34,
+0xC2,0xBF,0xBC,0x6D,0x04,0x55,0x42,0x79,0x40,0x3D,0x1D,0x33,0x71,0x47,0x25,0x58,
+0xD5,0xA8,0xBD,0x7B,0x32,0x70,0x51,0x4F,0x3B,0x46,0xF1,0xA4,0xF9,0x0F,0xE5,0x98,
+0xAE,0xD3,0x2A,0x97,0xB2,0x78,0xD9,0xCF,0x63,0x1E,0x6B,0x66,0xCE,0x02,0xDF,0xA2,
+0xF3,0x8E,0xD8,0x38,0xAC,0x5B,0xE4,0xD1,0x0D,0x70,0xE2,0x81,0xE9,0x1B,0xE1,0x9C,
+0xE6,0x9B,0xA8,0x5D,0xF2,0xF8,0x19,0x8F,0xBE,0xC3,0x4C,0x9C,0x68,0xCD,0xB6,0xCB,
+0x10,0x6D,0x05,0x06,0xA2,0x38,0x89,0xDF,0xDB,0xA6,0x9D,0x28,0xB9,0x5F,0xF5,0x88,
+0x9E,0xE3,0x6E,0xE3,0x65,0xF1,0x87,0x18,0x84,0xF9,0x41,0xAB,0xEF,0x35,0xC9,0xB4,
+0x75,0x08,0xB1,0xD7,0xF4,0x99,0x7E,0x89,0x9D,0xE0,0x3A,0xC9,0xC6,0x8A,0x5F,0x22,
+0x28,0x55,0x43,0x78,0x17,0x44,0x40,0x6A,0xC1,0xBC,0xB4,0x1B,0xE4,0xA1,0x56,0x2B,
+0xD0,0xAD,0x8D,0x4E,0xCF,0x8E,0x52,0xB2,0x35,0x48,0x9C,0xC7,0xB3,0xDD,0x7D,0x00,
+0xE2,0x9F,0xB8,0x49,0x3F,0x42,0x6E,0x42,0xB9,0xC4,0x0A,0xDD,0x74,0x75,0x12,0x6F,
+0x8D,0xF0,0x7F,0xE1,0x68,0xC3,0xB8,0x15,0xB6,0xCB,0x46,0x9E,0xC4,0x80,0x57,0x2A,
+0xE4,0x99,0xD9,0x2E,0xAD,0x7B,0xC5,0xD0,0xDD,0xA0,0xFA,0x49,0xB5,0xF3,0x55,0x28,
+0x18,0x65,0x07,0x0C,0xFE,0xEA,0x07,0x83,0x7F,0x02,0x25,0x34,0x60,0x45,0x36,0x4B,
+0xCE,0xB3,0xAE,0x73,0xE9,0xEB,0x11,0x94,0x59,0x24,0x66,0x51,0x08,0xBC,0xA7,0xDA,
+0x20,0x5D,0x41,0x72,0x47,0x84,0xD0,0x3A,0x7E,0x03,0x04,0x14,0x00,0x34,0x27,0x5A,
+0x80,0xFD,0x4D,0xDE,0x1F,0x46,0x4A,0x62,0x29,0x54,0xD2,0x95,0xE0,0x85,0x76,0x0B,
+0x66,0x1B,0xA0,0xD5,0xDC,0x9F,0x50,0xA1,0xBC,0xC1,0x3F,0xED,0x4E,0xC2,0x9F,0xE2,
+0xFC,0x81,0x9B,0x74,0x71,0xA1,0xC3,0x0C,0x93,0xEE,0x57,0xAA,0xC0,0xA4,0x77,0x0A,
+0x19,0x64,0x27,0x2D,0xAA,0x3A,0x83,0xD7,0xC9,0xB4,0xBE,0x19,0x2E,0xB3,0x8E,0xF3,
+0x6F,0x12,0x82,0xFE,0x8B,0x1E,0x86,0xF6,0x41,0x3C,0x3C,0x13,0x26,0x3B,0x0E,0x73,
+0x9D,0xE0,0x3F,0xB1,0x67,0x80,0xF4,0x1A,0xDE,0xA3,0xA8,0x18,0xA2,0xDF,0x6E,0x13,
+0xA5,0xD8,0x79,0xCF,0xD1,0xAD,0x6F,0xAC,0x0E,0x73,0xB0,0xD0,0x1C,0x8C,0x83,0xFE,
+0x0F,0x72,0x06,0x1A,0xA9,0x6B,0xD1,0xD4,0x9A,0xE7,0x7C,0x88,0x7C,0xFD,0x92,0xEF,
+0x82,0xFF,0x3C,0xAD,0xFA,0xFA,0x13,0x87,0x78,0x05,0x63,0x75,0x09,0xAA,0xB0,0xCD,
+0x8C,0xF1,0x5F,0xC0,0x23,0x10,0x20,0x5E,0x2D,0x50,0xC6,0x85,0x47,0x5C,0x08,0x75,
+0xB7,0xCA,0x48,0xEC,0x89,0x6F,0xF5,0xF4,0x09,0x74,0xF6,0x91,0x31,0x17,0x35,0x48,
+0xC6,0xBB,0xAC,0x79,0x91,0x2D,0xAF,0xEC,0x25,0x58,0xCC,0x87,0x97,0xD8,0x5C,0x21,
+0x2F,0x52,0x02,0x3E,0xEF,0x8A,0x76,0x92,0x82,0xFF,0x26,0xCA,0x3D,0xBB,0x95,0xE8,
+0x43,0x3E,0x94,0xC4,0x9B,0x5E,0xD6,0xE6,0x46,0x3B,0x7A,0x52,0x24,0x31,0x06,0x7B,
+0x5B,0x26,0xD6,0x9E,0xCD,0xFF,0x21,0xB0,0xDC,0xA1,0xDB,0x69,0x50,0x70,0x33,0x4E,
+0x64,0x19,0xD1,0xA6,0x2E,0x22,0x1F,0x53,0x1E,0x63,0xE0,0x90,0xE1,0x93,0x61,0x1C,
+0x41,0x3C,0xE5,0xB7,0x22,0x30,0x01,0x5F,0x61,0x1C,0x18,0x17,0x4C,0xC8,0x97,0xEA,
+0x0D,0x70,0x77,0x69,0x5D,0xB7,0xF9,0x20,0xD2,0xAF,0xB6,0x0A,0x4A,0xE6,0xBF,0xC2,
+0xCA,0xB7,0xBE,0x67,0xE3,0x98,0x68,0x9E,0xC5,0xB8,0xA0,0x0B,0x25,0x27,0x11,0x6C,
+0xF6,0x8B,0xE8,0x0D,0x4E,0xA6,0xFB,0x33,0x3F,0x42,0xE5,0xB4,0x5C,0xDC,0x93,0xEE,
+0x81,0xFC,0x6D,0xFF,0x7E,0xE2,0x8F,0x03,0x76,0x0B,0x0E,0x16,0x45,0x56,0x00,0x7D,
+0x7A,0x07,0xF2,0x9B,0x13,0x54,0x54,0x6E,0x05,0x78,0xE8,0x83,0xB0,0xC1,0x62,0x1F,
+0x2A,0x57,0x32,0x0B,0x8A,0x3E,0xA7,0xF7,0x31,0x4C,0x88,0xD7,0x64,0x61,0x16,0x6B,
+0x7B,0x06,0xD2,0xBA,0xEC,0xDB,0x24,0x91,0x2E,0x53,0x94,0xD4,0xBF,0x71,0xDD,0xA0,
+0x0A,0x77,0x36,0x2F,0x0C,0x57,0x48,0x71,0xE1,0x9C,0x90,0x1F,0x67,0x7D,0x09,0x74,
+0x87,0xFA,0x0C,0x98,0x37,0x40,0x64,0x4A,0xCC,0xB1,0x8B,0x29,0xCB,0x30,0xE8,0x95,
+0x84,0xF9,0x5D,0xCA,0x38,0x03,0x28,0x45,0x16,0x6B,0xEA,0x92,0xD3,0xAC,0x6C,0x11,
+0x60,0x1D,0xC1,0xB2,0x8F,0x0E,0x92,0xF2,0x2F,0x52,0xB5,0xF4,0x61,0x53,0x21,0x5C,
+0x5E,0x23,0xE6,0xAB,0x4D,0xF7,0xA9,0x30,0xB8,0xC5,0x2B,0xFD,0x1D,0x9A,0x94,0xE9,
+0x59,0x24,0xA7,0xED,0x29,0x63,0x59,0x54,0x39,0x44,0x82,0xD5,0x2C,0xB9,0x86,0xFB,
+0xCC,0xB1,0xDF,0x00,0x72,0xF0,0x91,0x0F,0xA7,0xDA,0x37,0xFE,0x6C,0xE9,0x96,0xEB,
+0x69,0x14,0xE3,0x99,0x4A,0xB6,0xEF,0x37,0x69,0x14,0x12,0x15,0x23,0x09,0x39,0x44,
+0xB3,0xCE,0x58,0xF8,0xD8,0x8F,0x44,0xA5,0x96,0xEB,0x62,0x9A,0xCC,0x08,0xD7,0xAA,
+0x2B,0x56,0x12,0x2A,0xF1,0xA9,0x4B,0x8C,0x43,0x3E,0x4F,0x62,0x04,0x10,0x07,0x7A,
+0x6A,0x17,0xB2,0xCB,0xD3,0xDC,0x1C,0xAE,0x3D,0x40,0x96,0xC5,0x7D,0xEB,0x85,0xF8,
+0x2D,0x50,0x73,0x4D,0x2C,0x53,0x6C,0x51,0xB5,0xC8,0x14,0xCF,0x20,0x15,0x26,0x5B,
+0xAB,0xD6,0x1A,0xA2,0x9A,0x7E,0xF7,0xE7,0xBA,0xC7,0x58,0x8C,0xFB,0x05,0xED,0x90,
+0x31,0x4C,0x21,0x03,0xD9,0xAF,0x65,0xA4,0xC4,0xB9,0x81,0x2B,0x96,0xCE,0x4B,0x36,
+0x61,0xB8,0x6D,0xBE,0xC1,0x19,0x6A,0xCC,0x6E,0x1E,0x17,0xBB,0x4B,0xDB,0x22,0x9E,
+0xB4,0x12,0xC7,0xC1,0x7F,0x61,0xAC,0xB4,0xFA,0xD2,0x4F,0x2F,0x5A,0xBB,0x53,0x8F,
+0x03,0x9F,0x4A,0xFB,0xBD,0x32,0x3D,0xE7,0x18,0xCD,0xB2,0xCD,0x78,0xCE,0x04,0xAD,
+0x6E,0x91,0x44,0x98,0x8E,0xEB,0xD7,0x3E,0x4D,0x68,0x42,0x98,0xC0,0x80,0xF2,0x15,
+0x42,0xAA,0x7F,0x8F,0x5B,0x41,0xA8,0x94,0x69,0x58,0x56,0xBC,0xFD,0xF6,0xB9,0x28,
+0xD7,0xDB,0x0E,0x6B,0x01,0x59,0xEA,0x8C,0x45,0x62,0x40,0x90,0x94,0x50,0x76,0x41,
+0x90,0x32,0xE7,0xC5,0xD8,0x27,0x4D,0xF2,0xE2,0x88,0x0D,0x37,0x5D,0xFA,0x15,0x88,
+0x6A,0x5E,0x8B,0x53,0x78,0x53,0x99,0x86,0x26,0xD4,0x95,0xF3,0xCE,0xE3,0x9F,0x1B,
+0x30,0x46,0x93,0x11,0x8F,0x05,0x38,0xD0,0xBC,0x75,0xAE,0x69,0xFB,0x97,0xDE,0x2E,
+0x08,0x79,0xAC,0x16,0xB1,0xE6,0xE5,0x33,0x7E,0x4E,0x57,0xAB,0xA9,0x26,0x3D,0x7C,
+0x19,0x5C,0x89,0x22,0xAF,0xEA,0xF7,0x3F,0x01,0xB6,0xD0,0xD4,0x5F,0x8B,0x66,0x8A,
+0xC7,0x10,0xC5,0xB0,0x57,0x95,0x70,0x40,0xB2,0x18,0xCD,0x67,0x77,0x8D,0x48,0xA2,
+0xC9,0xD7,0x02,0x79,0xC6,0x2B,0x5F,0xFE,0xA5,0x0E,0xCC,0x70,0xD9,0xE2,0x89,0x0C,
+0xA3,0xEB,0x3E,0x2F,0x55,0x86,0x61,0x53,0x5F,0x4B,0x73,0x8A,0x5B,0x9B,0x72,0x8E,
+0x51,0x9C,0x49,0xAA,0x21,0xB6,0x25,0x63,0x16,0xA0,0xD1,0xC3,0xC8,0x82,0xF8,0x1D,
+0x35,0x67,0xB2,0x35,0xFA,0xDB,0x93,0x0E,0x65,0x46,0x44,0xB0,0xAA,0x77,0x6F,0x7F,
+0xA5,0x37,0xE2,0xF5,0x09,0x42,0xF9,0x97,0x51,0x26,0x10,0x84,0xDE,0xA3,0xCF,0x0B,
+0x14,0x66,0xB3,0x15,0x8A,0x24,0x1C,0xF1,0x4E,0x3A,0x13,0x9B,0x15,0x78,0xDF,0xC0,
+0x81,0x17,0xC2,0xF1,0xE6,0xC4,0x90,0x11,0x81,0x3E,0xD8,0x54,0xC1,0xA0,0xD3,0x14,
+0x36,0x9A,0x4F,0xCB,0xCA,0xFF,0x87,0x2A,0xAC,0x25,0xEE,0x79,0x20,0x0C,0x9E,0xF5,
+0x64,0x99,0x4C,0x9A,0x86,0xF0,0xC4,0x25,0x76,0x44,0x55,0xA3,0xA4,0x14,0x02,0x71,
+0x1C,0x7D,0xA8,0x06,0x3C,0x47,0xC9,0x92,0x4F,0x1B,0x33,0x9A,0xE9,0xA6,0xFD,0x3C,
+0x05,0x43,0x96,0x21,0x07,0x85,0x30,0x50,0xD8,0x85,0x3A,0x0D,0x5C,0xDA,0x34,0x89,
+0x43,0x44,0x91,0x60,0xF7,0xE1,0xA4,0x34,0x59,0x2C,0x12,0x8C,0x4E,0xEB,0x17,0x9B,
+0xAE,0xD1,0x04,0x18,0x3F,0xBA,0x37,0x6F,0xC7,0x99,0x39,0x12,0x5E,0xAB,0x47,0x8B,
+0x37,0x74,0xA1,0x24,0x41,0x82,0x71,0x57,0x09,0xBC,0xD2,0xDC,0xF1,0xE4,0xA7,0x24,
+0x56,0xAE,0x7B,0x9F,0xEA,0x10,0x48,0xC5,0xF6,0xCC,0x5D,0x23,0x1F,0x0B,0xA6,0xCA,
+0x84,0x36,0xE3,0xD5,0xE5,0x39,0x6E,0xEC,0x23,0xE1,0xA5,0xF6,0xCF,0xC3,0xBE,0x1A,
+0x65,0x77,0xA2,0x75,0xB2,0x1B,0x1B,0xCE,0x5D,0x38,0x02,0x88,0x4D,0xBA,0x45,0x98,
+0xE3,0x30,0xE5,0xB4,0xC2,0xE4,0x94,0x31,0xD5,0xBA,0x08,0x00,0xEE,0xE7,0xBB,0x3B,
+0x0C,0xB6,0x63,0xDD,0x59,0x52,0xB9,0x87,0xDA,0xF6,0x4B,0x0F,0x25,0x3C,0xAB,0xF0,
+0xAD,0x2C,0xF9,0xE6,0xCB,0x11,0x68,0xC4,0xA4,0x2F,0xEC,0x71,0x83,0x51,0x60,0x56,
+0x31,0xA8,0x7D,0xFE,0x97,0xD5,0xF0,0x00,0x62,0x00,0x05,0xB7,0xF2,0xB5,0xF5,0x27,
+0x93,0xCF,0x1A,0x3B,0xFB,0x35,0x7C,0xE0,0xA7,0x7D,0xBD,0x72,0x6C,0x9E,0x40,0xB9,
+0x98,0x29,0xFC,0xD6,0x69,0x76,0xAD,0xA3,0x2D,0x8C,0xC6,0xF8,0xD3,0x91,0xF0,0x06,
+0x23,0x70,0xA5,0x34,0xD1,0xD2,0xB1,0x07,0x64,0x67,0x64,0xB1,0x87,0x41,0x74,0x52,
+0xF4,0xC9,0x1C,0x5A,0x20,0x58,0xCA,0x8D,0x85,0x2A,0xC8,0x50,0x13,0x19,0xB8,0xC6,
+0x11,0x47,0x92,0x31,0x8D,0x16,0x29,0xC3,0x58,0x0D,0x32,0x8D,0x1E,0x2B,0x87,0xCB,
+0x5C,0xA6,0x73,0x9D,0x52,0xB4,0x54,0x61,0xDD,0xB0,0x0A,0x08,0x30,0x4C,0xCE,0xE5,
+0xD9,0x1C,0xC9,0xA2,0xC4,0x38,0x4E,0xED,0xF7,0xED,0x7D,0x22,0x33,0x1D,0x9C,0xE6,
+0x5E,0xB5,0x60,0x8C,0x3B,0x75,0xFC,0xA0,0x4C,0x49,0x62,0x99,0x40,0x88,0x7A,0x95,
+0x9D,0x08,0xDD,0xF2,0x82,0x3F,0x0F,0xEA,0x84,0x0B,0xE8,0x51,0x81,0x20,0x13,0x54,
+0xC3,0xDF,0x0A,0x7B,0xEC,0xCC,0x92,0x19,0x20,0xB3,0xF4,0xF5,0xED,0xB6,0xE9,0x38,
+0xD5,0xC8,0x1D,0x7A,0xFF,0xFA,0xB7,0x2F,0x5B,0x5F,0x63,0x8E,0x2D,0x3E,0xA1,0xF8,
+0x39,0xB3,0x66,0xED,0x77,0x7A,0xBF,0xAF,0x03,0xC5,0xA1,0xD6,0x17,0x09,0xAC,0xC2,
+0x96,0xEE,0x3B,0x1F,0x4A,0x64,0x9C,0xB1,0x6D,0x4C,0x46,0xB8,0x29,0x2E,0xB5,0xFC,
+0xF3,0xFB,0x2E,0x6F,0xB7,0x3A,0x3F,0xEF,0xDE,0xE2,0x5B,0x0B,0x7E,0xAF,0x63,0xAB,
+0xA8,0x0D,0xD8,0xC2,0x27,0x6A,0xFF,0xBF,0xBB,0x33,0xEF,0x6E,0x3D,0x7E,0xF1,0xE8,
+0x4D,0x83,0x56,0xA9,0x29,0xAD,0x36,0x78,0xE4,0xEF,0x6C,0x31,0x01,0x28,0x9B,0xD4,
+0x79,0x68,0xBD,0x76,0xD0,0x3C,0x5E,0xE9,0xFD,0x94,0x0E,0x28,0x97,0x01,0x24,0x42,
+0xD6,0x35,0xE0,0x84,0xEE,0xDF,0x83,0x0A,0xA1,0x1A,0xDC,0x74,0x9E,0x23,0x0F,0x4B,
+0xE0,0xCD,0x18,0x4A,0xFC,0x07,0x49,0xD2,0x55,0x32,0x00,0x80,0xB5,0x74,0x73,0x60,
+0xE7,0xFF,0x2A,0x7F,0xC0,0xF7,0x85,0x22,0xD9,0xA4,0x1A,0x0C,0xDA,0xB3,0xDB,0x0F,
+0x4F,0x90,0x45,0xB8,0x16,0xA0,0x04,0x75,0xD6,0xE8,0x59,0x03,0x9F,0x03,0x2E,0x4A,
+0x80,0xF9,0x2C,0x1E,0x6B,0x65,0xBC,0xB0,0xBD,0x54,0x8E,0x68,0x9D,0x72,0x5D,0x48,
+0xA2,0x05,0xD0,0xC0,0xA9,0x36,0x2D,0xE3,0x1F,0x8B,0xF3,0xCA,0xFE,0xA7,0xEB,0x2B,
+0xDD,0xD3,0x06,0x69,0xBF,0x21,0x2C,0xF4,0x39,0xC8,0x96,0xEC,0x6F,0xCF,0x12,0xBA,
+0xDC,0x3D,0xE8,0x86,0x7E,0x8F,0x43,0x5A,0x1E,0xAA,0xD3,0xCB,0xEF,0xC7,0x9A,0x3A,
+0x70,0x9D,0x48,0x8A,0xE4,0xD7,0x81,0x02,0x49,0x7C,0x52,0x9C,0xBE,0x27,0x2B,0x6B,
+0x7B,0x7B,0xAE,0x67,0xFE,0x14,0x58,0xC1,0xDC,0x91,0x2A,0x09,0x57,0x89,0x6C,0x82,
+0xDA,0xE1,0x34,0x5C,0x6D,0xB9,0x66,0x6C,0xF3,0xF9,0x6D,0x26,0xBF,0x07,0x0A,0x6A,
+0x83,0x04,0xD1,0xE0,0x2D,0x62,0xFD,0xB7,0xA9,0x10,0xDE,0x7C,0x46,0xE9,0x1D,0x93,
+0x50,0x72,0xA7,0x45,0x28,0x43,0xD9,0x96,0x21,0x92,0xD4,0xF4,0xC6,0xE1,0x95,0x13,
+0x1F,0x80,0x55,0xF8,0x5A,0xAF,0x47,0x7A,0xBE,0x06,0xDF,0x6B,0xA6,0x65,0x71,0x73,
+0x50,0xBF,0x76,0x30,0x77,0x48,0x0E,0xA6,0xA5,0x89,0xF3,0xB5,0xF4,0xB2,0x29,0x44,
+0xB4,0x2A,0x07,0x41,0x35,0x50,0x16,0xFC,0x9F,0x9F,0xDF,0x99,0x9D,0xDB,0x8F,0x8B,
+0x1A,0x6D,0xEE,0xA8,0x92,0x2E,0x68,0x25,0x75,0xD2,0x78,0x3E,0x54,0x12,0x25,0xE8,
+0x8C,0x97,0x82,0xC4,0x46,0x5A,0x1C,0x85,0x29,0x4A,0xBC,0xFA,0xC7,0x81,0x3C,0x62,
+0x61,0x9C,0x64,0x22,0xB5,0x10,0x56,0x3C,0xE3,0xC8,0xF4,0xB2,0x42,0x04,0x04,0xDF,
+0x1E,0x49,0xCE,0x88,0x73,0x68,0x2E,0x82,0x2F,0x90,0x60,0x26,0x53,0x15,0x64,0xAE,
+0x24,0xFE,0x43,0x05,0xE2,0x3B,0x7D,0x40,0x30,0x6D,0x82,0xC4,0x71,0x37,0x11,0xF9,
+0x47,0x93,0x4D,0x0B,0x08,0xE2,0xA4,0x73,0x95,0x9D,0xD7,0x91,0xC9,0x8F,0x5F,0x0F,
+0xA6,0x34,0x0B,0x4D,0x80,0x22,0x64,0x3B,0xF3,0x13,0x3F,0x79,0xD0,0x96,0x3D,0x74,
+0xF0,0x5E,0x37,0x71,0xBE,0x8F,0xC9,0xA8,0xB6,0xAC,0xC5,0x83,0x52,0x14,0x44,0x8F,
+0x75,0xAC,0x40,0x06,0xFA,0xBF,0xF9,0xDC,0x5D,0x0E,0x8C,0xCA,0xC1,0x87,0x5D,0x05,
+0xEA,0xC8,0xBB,0xFD,0x4C,0xD2,0x94,0x07,0xBB,0x9B,0xFF,0xB9,0xA3,0xE5,0xA8,0x92,
+0xCE,0xCD,0x9A,0xDC,0xE7,0x0C,0x4A,0x72,0x88,0x71,0x26,0x60,0xF2,0xB4,0x48,0x23,
+0xC9,0xF5,0xA5,0xE3,0x3A,0xEF,0xA9,0x4C,0xB3,0x88,0xE4,0xA2,0xA0,0xE6,0xF9,0xC0,
+0xFD,0xE4,0x80,0xC6,0x28,0xE3,0xA5,0x52,0x4B,0x0F,0x9B,0xDD,0x56,0x10,0x54,0x9B,
+0x6F,0x3A,0xCC,0x8A,0xAF,0x9C,0xDA,0xAA,0xE5,0x12,0x28,0x6E,0x7E,0x38,0x52,0xB5,
+0x45,0x99,0x45,0x03,0x1B,0xF9,0xBF,0x7B,0xB9,0x8A,0xEC,0xAA,0xAD,0xEB,0xCB,0xFF,
+0xD9,0xE1,0xA1,0xE7,0x16,0x4E,0x08,0xC1,0xE6,0xEC,0xD5,0x93,0xE0,0xA6,0x79,0x00,
+0xFE,0xF8,0x9F,0xD9,0xEF,0x8C,0xCA,0xFA,0x78,0xE5,0x42,0x04,0x55,0x13,0x05,0xC9,
+0xBF,0xBE,0x98,0xDE,0x7B,0xE8,0xAE,0x0A,0xD1,0xCD,0xC3,0x85,0x47,0x01,0x34,0xEA,
+0x2A,0x58,0xEB,0xAD,0x26,0x4B,0x0D,0xF4,0xDB,0xCF,0xCB,0x8D,0xD7,0x91,0x7C,0x32,
+0xCA,0xE9,0xBA,0xFC,0xC3,0x2D,0x6B,0x77,0xC7,0xCC,0xD4,0x92,0x1C,0x5A,0xA7,0x22,
+0x2E,0x7C,0xCB,0x8D,0x4F,0xCD,0x8B,0x1B,0xC3,0x07,0x1B,0x5D,0xC8,0x8E,0x7F,0x2E,
+0x14,0xCB,0x46,0x00,0x58,0xF6,0xB0,0x37,0xD8,0x31,0x36,0x70,0x29,0x6F,0xD3,0x63,
+0xAA,0x98,0xAB,0xED,0xC4,0x12,0x54,0x4F,0xC5,0xDD,0xC7,0x81,0x44,0x02,0x65,0xB8,
+0x6B,0x1E,0xEC,0xAA,0x4B,0xED,0xAB,0x3F,0x47,0xD7,0x4F,0x09,0xE7,0xA1,0x38,0x46,
+0x02,0xF1,0x6A,0x2C,0x66,0x5B,0x1D,0xA4,0x0B,0x94,0x40,0x06,0x2C,0x6A,0xE3,0x56,
+0x39,0x50,0xF0,0xB6,0xB7,0x18,0x5E,0x36,0xD2,0x33,0x3E,0x78,0x8A,0xCC,0x8E,0x9D,
+0xC7,0x53,0x0D,0x4B,0xE8,0xB3,0xF5,0xC2,0x64,0xE6,0x5D,0x1B,0x57,0x11,0x74,0xBA,
+0xFB,0xCA,0xA8,0xEE,0xAE,0x8B,0xCD,0xBC,0x41,0x0D,0x93,0xD5,0xF8,0xBE,0x3B,0x5A,
+0x40,0xAB,0x72,0x34,0x97,0x19,0x5F,0x17,0x31,0x82,0x6C,0x2A,0x16,0x50,0xD4,0x5B,
+0x0A,0x79,0xEA,0xAC,0xB1,0x30,0x76,0x18,0x1C,0x7A,0xB9,0xFF,0xC6,0x80,0x1C,0x43,
+0x85,0x09,0x15,0x53,0x15,0x51,0x17,0xDD,0xD7,0x17,0x1F,0x59,0x1A,0x5C,0xC6,0x45,
+0xEE,0xEC,0x9B,0xDD,0xF6,0x1F,0x59,0x70,0xF0,0xED,0xC2,0x84,0x17,0x51,0xF4,0x7A,
+0x42,0xA1,0x7A,0x3C,0x8B,0xBD,0xFB,0xAF,0x4D,0xD5,0x47,0x01,0x39,0x7F,0x93,0x33,
+0x7D,0x24,0xC0,0x86,0x91,0x31,0x77,0x39,0x10,0xA2,0x6D,0x2B,0x3A,0x7C,0xC2,0x61,
+0x21,0xCC,0x74,0x32,0x2F,0xDC,0x9A,0x6A,0xFD,0xDA,0xF8,0xBE,0xFB,0xBD,0x6A,0x08,
+0xE4,0x6E,0x13,0x55,0xA3,0x3C,0x7A,0x06,0x80,0x62,0x3D,0x7B,0x65,0x23,0x41,0xBD,
+0x09,0x65,0xF5,0xB3,0x72,0x7F,0x39,0x94,0x71,0x19,0xB7,0xF1,0xDA,0x9C,0x4E,0x0D,
+0xEB,0xDE,0xAC,0xEA,0x6E,0xDB,0x9D,0x2C,0x9A,0xBB,0xFE,0xB8,0x8E,0xC8,0x9E,0x89,
+0x32,0xC4,0x6F,0x29,0x60,0x73,0x35,0x8A,0x38,0x7E,0x99,0xDF,0x1E,0x58,0xD6,0x51,
+0xC0,0x6B,0x32,0x74,0x43,0x6D,0x2B,0xB7,0xB1,0x99,0xF7,0xB1,0x20,0x66,0xF1,0x48,
+0xB0,0x0E,0x27,0x61,0xE0,0x33,0x75,0x4A,0x1F,0x84,0x44,0x02,0x77,0x31,0x70,0x9E,
+0x1D,0x55,0xD1,0x97,0x20,0x63,0x25,0xDA,0xCE,0x30,0x21,0x67,0x34,0x72,0xA1,0x0C,
+0x53,0xA3,0x69,0x2F,0x23,0x7C,0x3A,0xC6,0xB4,0xBD,0xD6,0x90,0x49,0x0F,0x57,0x87,
+0x2D,0x60,0xD4,0x92,0xD0,0x36,0x70,0x7F,0xF6,0x37,0x1E,0x58,0x88,0xCE,0xFF,0xEE,
+0xA4,0x3E,0x03,0x45,0x4D,0xC5,0x83,0x11,0x4E,0x2B,0xBA,0xFC,0xE4,0xA2,0x69,0x14,
+0xA5,0x28,0x14,0x52,0x68,0xF3,0xB5,0x02,0xA2,0xBC,0xC1,0x87,0x24,0x62,0xE1,0x5C,
+0xA0,0x1A,0x23,0x65,0x5A,0xFE,0xB8,0x3D,0x59,0xC5,0x43,0x05,0xD3,0x95,0x6C,0x26,
+0x67,0xB2,0x4C,0x0A,0xDB,0xA9,0xEF,0xEB,0x15,0x86,0x4C,0x0A,0x96,0xD0,0xDC,0xD3,
+0xC1,0x7D,0x25,0x63,0x63,0x6C,0x2A,0x96,0xA9,0x51,0x27,0x61,0x94,0xD2,0xAD,0xA0,
+0x1F,0x5F,0xD9,0x9F,0xF2,0x3F,0x79,0x54,0x76,0x2C,0x85,0xC3,0xF7,0xB1,0x78,0x16,
+0x76,0xB0,0x5F,0x19,0xE9,0xA4,0xE2,0xD4,0x12,0xB3,0x7E,0x38,0x08,0x4E,0xF7,0x66,
+0xA9,0x84,0xB4,0xF2,0x81,0x35,0x73,0x2D,0x69,0xD1,0x67,0x21,0x9E,0xD8,0xDE,0xD9,
+0x5B,0x2B,0xE9,0xAF,0x5C,0xD6,0x90,0x13,0xE7,0x03,0x3B,0x7D,0x97,0xD1,0xFC,0xF2,
+0x95,0x1D,0x11,0x57,0x96,0x0E,0x48,0x01,0xCF,0xDF,0xCF,0x89,0xBC,0xFA,0xAB,0x8E,
+0x83,0x27,0x3D,0x7B,0xB9,0xB0,0xF6,0x90,0x04,0xB2,0x69,0x2F,0xB6,0xF0,0xD8,0xF7,
+0x3F,0x7E,0xD8,0x9E,0x22,0x6B,0x2D,0xD0,0xED,0x01,0x33,0x75,0x4F,0x09,0x36,0xE0,
+0x9A,0xAD,0xAE,0xE8,0x06,0x4A,0x0C,0xD5,0x6F,0x0B,0xBB,0xFD,0xCF,0x89,0x3E,0x68,
+0x27,0xE2,0x5C,0x1A,0x98,0xA6,0xE0,0xA7,0xFB,0x00,0x24,0x62,0xAF,0xE9,0xBA,0x8C,
+0xB6,0x20,0x0F,0x49,0xF3,0x28,0x6E,0x42,0x35,0x49,0xA3,0xE5,0x66,0x20,0x10,0xEF,
+0x59,0x21,0xE1,0xA7,0x9C,0x86,0xC0,0x83,0x57,0x0C,0x84,0xC2,0xE6,0xA0,0x18,0x67,
+0x55,0x8D,0x41,0x07,0x5E,0xDE,0x98,0x19,0x81,0x8D,0xD3,0x95,0xB7,0xF1,0xF8,0xD6,
+0xB8,0x86,0xA7,0xE1,0x87,0x1D,0x5B,0x03,0x6C,0xF5,0x46,0x00,0x5E,0x18,0x56,0x91,
+0xB8,0xB2,0xA5,0xF6,0x49,0xB8,0x07,0x5E,0x6D,0x53,0x1D,0x91,0xE0,0x0C,0x42,0x0D,
+0x02,0x8D,0x20,0x4C,0xC5,0x2E,0x8B,0x44,0x1A,0x79,0x37,0xCC,0xB2,0x0F,0x41,0x5C,
+0xE3,0x21,0x6D,0xAD,0x67,0xF1,0x29,0x39,0x22,0xFC,0xB2,0x71,0xFB,0x21,0x6F,0x3B,
+0x6D,0x4A,0x88,0x23,0x29,0x5C,0x67,0xDA,0xD8,0x21,0x6F,0x56,0xC4,0x2C,0x62,0x09,
+0xD4,0x24,0x5F,0x9A,0xA3,0xAD,0xED,0xA1,0x74,0xC0,0x8E,0x1B,0x08,0xB8,0xF6,0x51,
+0x8D,0xC6,0xE4,0xC3,0x07,0x15,0x49,0xBD,0xD6,0x89,0xC7,0xF0,0x8C,0xEC,0xA2,0x81,
+0x6B,0x2B,0xEF,0x25,0x44,0x87,0x0A,0x6C,0xAD,0x03,0x4D,0x01,0x3C,0x53,0x1D,0x8E,
+0x0C,0xEE,0x4D,0x42,0xA4,0xEB,0xEA,0xE0,0x15,0xC6,0x88,0x7C,0x89,0xCD,0x83,0xA5,
+0xA9,0xD2,0xD4,0xE7,0x1B,0x5B,0x55,0xEF,0xFF,0x1F,0x51,0x4F,0x8D,0x02,0x4C,0x6E,
+0x5F,0x7F,0x8F,0x11,0x4B,0xCB,0x05,0x2F,0x4B,0x7A,0x34,0x9E,0x1F,0x41,0x0F,0xBF,
+0x4A,0x0F,0xEA,0x04,0x15,0x36,0x5B,0x8C,0x56,0xC9,0x87,0x30,0xC9,0x16,0x58,0x3E,
+0x17,0xFD,0x45,0x59,0x0B,0x0B,0x45,0xAF,0xB1,0xA7,0xE9,0xB9,0xD0,0x28,0x66,0x19,
+0x6C,0x6A,0xA9,0x22,0x8B,0x83,0xC5,0xA7,0x73,0xFF,0xB1,0x23,0xDD,0x12,0x5C,0x2E,
+0x7B,0x6B,0xBF,0x35,0xBD,0x90,0xF3,0x82,0xE4,0x84,0xCA,0xCF,0x95,0xD2,0x9C,0xA6,
+0xAC,0xE2,0xE1,0xE2,0x4E,0xFE,0x00,0x1F,0xF8,0x20,0x6E,0x77,0x6F,0xBE,0xF0,0x30,
+0x11,0x9C,0x22,0x5F,0x04,0x47,0x4A,0xEC,0x72,0xE8,0xA6,0x35,0x06,0x7F,0x31,0x98,
+0xA1,0xD0,0xDE,0xEF,0x47,0xD5,0x09,0x3D,0xE3,0xBB,0xF5,0xF7,0x97,0xC1,0x8F,0xB7,
+0x5D,0x0E,0xFC,0x13,0x14,0x17,0x5A,0xAC,0x9E,0x19,0x57,0x28,0x21,0xA2,0xEC,0x62,
+0x34,0xA8,0x33,0x7A,0xD1,0x6A,0x9F,0x14,0x49,0x72,0x3C,0x94,0x52,0xA0,0xEE,0x13,
+0x5B,0x6F,0x9B,0x15,0x86,0xBC,0xC8,0x95,0x0A,0x7D,0x33,0xD8,0xA7,0xE5,0xAB,0xA3,
+0x69,0x5A,0x9C,0x27,0x76,0x80,0x38,0x59,0x10,0xF1,0xBF,0x4E,0x0F,0x8A,0xC4,0x64,
+0x91,0x94,0xAA,0xDF,0xAE,0x92,0xE0,0x93,0xCC,0x05,0x4B,0x66,0x73,0xA1,0xEF,0x33,
+0xCC,0x66,0x05,0x82,0x4D,0xAC,0x03,0x4E,0x1E,0x59,0x17,0xE8,0x58,0xA8,0xE6,0x11,
+0x27,0xB9,0x31,0x69,0xDC,0x55,0x92,0x26,0x7C,0x40,0x0E,0x93,0xE7,0x3E,0x70,0x38,
+0x24,0xE8,0x63,0x6A,0xDE,0x26,0x90,0x57,0xCF,0x1A,0x54,0x7A,0x0D,0x99,0xD7,0x75,
+0xD6,0x55,0x2C,0x98,0x32,0x54,0x7C,0xC9,0xC4,0x85,0xCB,0xEE,0xE9,0xF9,0xB7,0xF1,
+0xA0,0xF0,0xFF,0xEE,0x13,0x51,0x5D,0xED,0xCE,0x0D,0x43,0x6C,0x61,0x79,0x37,0xF9,
+0x45,0x4C,0xA6,0x0B,0xC8,0x11,0x86,0x76,0x7D,0x57,0x19,0x85,0x76,0x80,0xCE,0x17,
+0xDF,0x77,0x07,0x91,0x65,0x82,0x2B,0x48,0x3A,0x78,0x36,0xED,0x10,0x68,0x26,0x99,
+0x39,0x9A,0x0C,0x77,0xA6,0x98,0xE8,0x91,0x42,0xED,0xA3,0x00,0x57,0x81,0xCF,0x37,
+0x99,0x96,0xA0,0xD7,0xFE,0x02,0xB0,0x53,0xC3,0xBA,0xF4,0xD6,0xE6,0xD0,0x9E,0xD7,
+0x77,0x79,0xA1,0x39,0x50,0xC3,0x1E,0x3C,0x86,0x9D,0xD3,0xB4,0x6E,0x50,0x1E,0xDF,
+0xFA,0x43,0x16,0xB4,0x22,0x04,0x6C,0x89,0x85,0x82,0xCC,0xA8,0xE3,0xF1,0xBF,0xF3,
+0x96,0xD5,0xEC,0xD8,0x56,0xA4,0x18,0x5D,0x1D,0x46,0x08,0xF4,0x69,0x62,0x2C,0xEA,
+0x7F,0x7B,0xAB,0x31,0x28,0x7D,0x66,0xFA,0x50,0xE1,0xAF,0x1E,0x0A,0xAB,0xE5,0x40,
+0x0E,0x9F,0x3E,0x40,0x30,0x27,0x7E,0xB8,0x46,0xCD,0x83,0x24,0xC5,0xC2,0x8C,0xE6,
+0x35,0x88,0x12,0x7B,0x9A,0xF2,0xD4,0xC7,0x52,0xE9,0xA7,0x14,0x8E,0xFF,0xB1,0x90,
+0x3B,0xEB,0x7F,0x75,0x43,0xC1,0x0D,0x2D,0xA2,0xBC,0xF2,0xB1,0x78,0x47,0x09,0xDE,
+0xB6,0xD1,0xC8,0xF8,0x10,0x03,0x5E,0xBC,0x5F,0x5E,0x10,0xAE,0x2F,0x65,0x2B,0xAB,
+0x1C,0xAE,0x1D,0x52,0x68,0xBD,0x26,0x7A,0x07,0xCA,0x84,0x62,0x5E,0x74,0x3A,0xCB,
+0xC3,0x25,0x49,0x8D,0xAA,0x86,0xE4,0x83,0x54,0xC1,0x8F,0x3A,0x13,0x95,0xDB,0x67,
+0x38,0xBA,0x2D,0x76,0xC7,0x5D,0x89,0x35,0xC1,0xB2,0xFC,0xDC,0x84,0xF7,0xB9,0x92,
+0x4F,0x3F,0xDF,0x01,0xF7,0x29,0xB9,0x71,0x63,0xFB,0xB5,0x37,0x0E,0x64,0x2A,0x8B,
+0x73,0x69,0xB5,0x3D,0x5A,0xBA,0x14,0x4F,0xDC,0x01,0x4F,0x72,0xF5,0xE6,0xA8,0xF2,
+0xB4,0xA0,0xBB,0xFA,0xE4,0x2B,0xAA,0x60,0xDD,0x16,0x58,0x64,0x34,0x48,0x06,0x9D,
+0xF8,0x32,0x65,0xB6,0x9B,0xD3,0xD5,0xE7,0xC0,0xA5,0xEB,0xCA,0x1A,0x60,0x2E,0x9B,
+0xDD,0x06,0x74,0x93,0x97,0xCD,0xD9,0xF5,0x47,0xDA,0x94,0x32,0x41,0x96,0xD8,0x36,
+0xE2,0x01,0x4C,0xAC,0x74,0xF3,0x3A,0x28,0xBE,0x18,0x56,0x09,0xA2,0xC4,0x8A,0x87,
+0xE0,0x70,0x3F,0xAE,0x90,0x8B,0xDE,0xB4,0x02,0xFD,0xB3,0x50,0x6B,0x71,0x3F,0xFB,
+0xE7,0x31,0x79,0xA9,0xF4,0x7B,0xBA,0x20,0x2A,0x7C,0x32,0xF9,0x48,0x63,0x2D,0xCA,
+0xD9,0x16,0x60,0x97,0x36,0x40,0x78,0xD9,0x23,0xEB,0xA5,0x67,0x81,0xD6,0x98,0xB6,
+0x3D,0x8A,0x18,0x73,0x81,0xFA,0xCF,0xD4,0x45,0xD2,0x9C,0x38,0x7E,0x9B,0xD5,0x04,
+0x3E,0xDB,0x4A,0x70,0x8E,0xB6,0xC0,0x97,0xFE,0x08,0x46,0x59,0xE2,0x1F,0x51,0x1C,
+0xB3,0xE1,0xFD,0xFD,0xB5,0x9A,0xFB,0x80,0xC8,0x25,0x6B,0x42,0xAF,0xFE,0xB0,0xB0,
+0xC2,0x05,0x68,0x8C,0x55,0xF6,0x1B,0x0C,0x03,0xEA,0xA4,0x46,0xA3,0x2A,0x64,0x68,
+0x93,0xE5,0xD9,0xDD,0x33,0x75,0x7D,0xE9,0x00,0xF5,0xBB,0x5A,0xB3,0xE1,0xAF,0xB3,
+0x88,0xF6,0xD1,0xC6,0x60,0xB7,0x2E,0x78,0xFC,0x00,0x4E,0x53,0x1C,0xBC,0xF2,0x41,
+0x12,0xCD,0x70,0x5C,0x23,0x25,0x6D,0xA9,0x5B,0x7E,0x30,0x8A,0xD7,0x1A,0x54,0x2C,
+0x94,0xA4,0x9F,0xDA,0x95,0xBE,0xDB,0x84,0x18,0x71,0x3F,0xC6,0xC7,0xD1,0x9F,0xF7,
+0xD3,0x65,0x19,0x9D,0x6A,0xCE,0x24,0x0B,0x12,0xF9,0xB7,0x44,0x39,0x72,0x3C,0xAA,
+0x92,0xC5,0xF8,0xDC,0x48,0x99,0x06,0x7E,0xB5,0x87,0xC9,0x9D,0xC2,0xF0,0xBE,0xD3,
+0x0A,0x8F,0x2A,0x44,0x61,0x96,0x2F,0x58,0x4D,0x52,0x1C,0xB0,0xDA,0x20,0x6E,0x1B,
+0xD0,0x34,0x4B,0x9E,0xF3,0x3D,0xBD,0x61,0xC2,0xAD,0xE3,0xC0,0xDB,0xCE,0x80,0xF4,
+0x75,0x08,0xD2,0x3B,0xCB,0x43,0x85,0x27,0x29,0x63,0x2D,0xE5,0x3B,0x61,0x2F,0xBB,
+0xEC,0x20,0xC3,0xDC,0xC6,0x25,0x31,0xE7,0xF7,0xB2,0x55,0x14,0x06,0x64,0x87,0x91,
+0x2E,0x73,0x90,0x4D,0x3A,0xD9,0xEF,0xC5,0x93,0x42,0xC1,0x70,0x40,0x63,0x80,0xD0,
+0x81,0x2E,0xCD,0xBF,0xDF,0x3C,0x53,0x9C,0x45,0x3D,0x68,0xA6,0x2F,0x7E,0x9D,0xA2,
+0x17,0xA2,0x41,0xA5,0x65,0x86,0x6C,0x19,0x31,0x9D,0xBC,0xD2,0xD5,0x12,0xF1,0x34,
+0x53,0xB6,0x55,0xF5,0x53,0xB0,0x49,0x0A,0x51,0x79,0x38,0xB2,0x59,0x5D,0xBE,0xF7,
+0x85,0xE1,0x02,0x74,0x3C,0xDF,0x8E,0xA2,0xE6,0xC3,0x35,0x05,0x21,0xB9,0x5A,0x6B,
+0xC8,0x00,0xE3,0xD8,0x84,0x67,0xC0,0x54,0x4F,0x44,0x1B,0xAC,0x92,0xFB,0x18,0x9A,
+0x65,0x4E,0xAD,0x3B,0x0A,0xE9,0xAB,0xB1,0x57,0x1E,0x59,0xB4,0x07,0x8A,0x69,0x7E,
+0xAE,0xE8,0x0B,0x56,0xDC,0x3F,0x02,0xCE,0x58,0x52,0x1A,0xBB,0x69,0x79,0x9A,0xE3,
+0x18,0x8B,0x68,0x83,0x7E,0x9D,0x7F,0x11,0x4A,0x71,0x2B,0xA9,0xC0,0xF8,0x1B,0xCB,
+0xD9,0x25,0xC6,0xEC,0x34,0xD7,0x8C,0xA8,0xD8,0xDA,0x12,0x3B,0x91,0x06,0xE5,0x64,
+0x8B,0x26,0xC5,0xBD,0x1E,0xFD,0xFB,0xF5,0x4B,0x50,0x0B,0xA8,0xCD,0xC2,0x21,0xFC,
+0x6B,0x89,0x6A,0xF2,0x15,0xF6,0xA8,0xAD,0xFF,0xB8,0x57,0x1C,0x5E,0x6F,0x8C,0xC2,
+0x9E,0xCC,0x2F,0x42,0x1A,0xF9,0xEB,0xE1,0xB2,0x47,0xE5,0x51,0x01,0x56,0xB5,0xA4,
+0xC2,0x08,0xEB,0xDA,0x9B,0x78,0xC3,0x48,0x82,0x33,0xA1,0x61,0x27,0x65,0x86,0xB1,
+0xFD,0x05,0xE6,0xE8,0x46,0xA5,0x39,0x6F,0xEB,0xFC,0x07,0x08,0x1D,0x49,0xAA,0xA7,
+0xB9,0x11,0xF2,0xB8,0x0E,0xED,0xBB,0xA5,0xE9,0x8F,0x76,0x0A,0x73,0xBA,0x59,0x3A,
+0xAB,0xC9,0x2A,0x72,0xF6,0x15,0x75,0x93,0xD2,0xA3,0x61,0x31,0xC4,0x37,0xD4,0x00,
+0x94,0xC4,0x27,0x40,0xB3,0x50,0xC5,0x66,0xFD,0xCB,0x26,0x1E,0x2B,0xB1,0x52,0x69,
+0x2C,0x60,0x83,0x5C,0xEA,0x09,0x27,0xDD,0x24,0xF8,0xCC,0xC7,0x46,0xBF,0x5C,0x0A,
+0x95,0x2A,0xC9,0xAF,0xAB,0x48,0x87,0x3C,0x32,0xCF,0xED,0xD1,0x51,0x46,0xA5,0xE4,
+0x6C,0xBB,0x58,0xC7,0x40,0xA3,0x58,0x08,0x54,0x4C,0x08,0xB7,0xE0,0x17,0xF4,0x04,
+0xBE,0x23,0xC0,0x8D,0x0C,0xEF,0xCA,0xD6,0x77,0x3A,0x5D,0x94,0xF1,0x32,0xD1,0x30,
+0xD2,0xC3,0x20,0x01,0x6B,0x88,0x0F,0x74,0x0F,0x84,0x9B,0xEC,0x24,0x98,0x7B,0x4F,
+0x36,0xA3,0x40,0x85,0x96,0x75,0xF1,0x77,0x36,0xDB,0xFD,0xD5,0x60,0x8C,0x6F,0x1F,
+0x4A,0x88,0x6B,0xD2,0x62,0x81,0x2D,0x5F,0xD7,0x96,0x51,0x34,0x7B,0xA1,0x42,0x29,
+0x31,0x91,0x72,0xB0,0xA7,0x44,0x95,0x22,0xD6,0xB7,0x71,0x35,0x2D,0x6D,0x8E,0xB3,
+0xB5,0xC5,0x26,0x60,0xEE,0x0D,0x37,0xC9,0x6E,0x41,0x3F,0x8D,0x88,0x38,0xDB,0x43,
+0x61,0x81,0x62,0xF0,0x3E,0xDD,0xFF,0xD1,0x03,0x9A,0x89,0xE0,0x7F,0x6E,0x8D,0xE2,
+0xDE,0x17,0xF4,0xD9,0x27,0xC4,0x9D,0xAA,0xC8,0x8A,0x52,0x2B,0x63,0x71,0x92,0xE1,
+0x05,0x7A,0x99,0x6F,0x64,0x87,0x4C,0x38,0x4C,0x16,0x4A,0xAF,0x97,0xDA,0x39,0xBE,
+0xB0,0xE4,0x07,0x44,0xA1,0x42,0xF4,0x45,0x5D,0x67,0x2A,0xBE,0x5B,0x4E,0xAD,0xE6,
+0x1F,0xB9,0x5A,0xB6,0x43,0xA0,0x09,0x5A,0x07,0x8E,0x99,0xE4,0xE8,0x0C,0xEF,0x17,
+0x6D,0x55,0xB6,0x28,0xB1,0x52,0xB4,0x15,0x44,0x1C,0x48,0xA7,0x49,0x96,0x75,0x2C,
+0x62,0x7C,0x9F,0x0E,0xCE,0x2D,0x33,0xED,0xCD,0xBF,0x62,0x2E,0x70,0x47,0xA4,0xC4,
+0xF2,0x2C,0xCF,0xCE,0x38,0xDB,0x9E,0xB6,0xA0,0x64,0xD4,0x43,0x14,0xBC,0x5F,0x5B,
+0x68,0x74,0x97,0x0C,0xC7,0x24,0x11,0xC6,0xF2,0x87,0x65,0x11,0xA6,0x10,0xF3,0x45,
+0x28,0xAF,0x4C,0x97,0x22,0xC1,0xAD,0x9F,0x0D,0xF7,0xEA,0xEE,0x20,0x57,0xB4,0x84,
+0x0F,0x72,0x91,0x6D,0x2D,0xCE,0xEE,0xD3,0x90,0x10,0x90,0x73,0xE6,0xCB,0x28,0xDE,
+0x32,0x6C,0x8F,0x4E,0x70,0x93,0x1C,0x7C,0x3D,0x83,0xAE,0xDE,0x8C,0xF7,0x14,0x88,
+0x34,0xB0,0x53,0x94,0x7D,0x9E,0x2E,0x43,0x95,0x25,0xA0,0x76,0x6A,0x84,0x67,0x1D,
+0xD0,0xD0,0x33,0x10,0xE2,0x01,0x25,0xD7,0x33,0xEE,0xCD,0xD0,0xB3,0xFA,0x19,0xBA,
+0xB4,0x2B,0xC8,0x8F,0x78,0x9B,0x1E,0x76,0xBC,0x2A,0x86,0x5F,0x03,0x45,0xA6,0xB5,
+0x26,0x68,0x8B,0x5E,0x1D,0xFE,0xAA,0xA7,0xDE,0xBD,0x73,0x3D,0xE5,0x36,0xD5,0x20,
+0x58,0x50,0xB3,0x18,0x6A,0x89,0x2F,0x55,0xF8,0xFE,0x16,0x1B,0xFF,0xF5,0x16,0xF9,
+0x4F,0xA9,0x4A,0xF6,0x30,0xD3,0x9C,0xBC,0x5B,0x00,0x4B,0xB8,0x7D,0x7D,0x9E,0xF3,
+0xF0,0x3F,0xDC,0xDF,0xAE,0x4D,0xB7,0x09,0x4D,0x37,0x6A,0xAE,0x0E,0x7F,0x9C,0x82,
+0xE9,0x01,0xE2,0xF8,0xC0,0x23,0x50,0x80,0xCF,0xCC,0x13,0x2C,0x4B,0x85,0x66,0x3D,
+0xBB,0x02,0xE1,0xA9,0xB8,0x5B,0x96,0x3E,0x2F,0xA0,0x9F,0xCC,0xC1,0x16,0xF5,0x24,
+0xA1,0xC1,0x22,0x70,0x5E,0xBD,0x7B,0x35,0x06,0xAF,0xB9,0xE5,0x13,0x8E,0x6D,0x6E,
+0xBA,0xEC,0x0F,0x46,0x0B,0xE8,0x8B,0x90,0x83,0x12,0x81,0x60,0x82,0x30,0xD3,0x41,
+0xA9,0xDA,0x39,0x63,0x1C,0xFF,0x8A,0x86,0xFC,0xEA,0x06,0x1F,0x5C,0x7C,0x9F,0xD3,
+0x3B,0x99,0x7A,0xB2,0xFE,0x1D,0x77,0x99,0x94,0x04,0x80,0x77,0x72,0x54,0xB7,0xD5,
+0xFA,0x37,0xD4,0xDD,0x10,0xF3,0x98,0x98,0xAC,0x7A,0xC6,0x4F,0xEB,0xF1,0x12,0xE9,
+0xC7,0x29,0xCA,0xFE,0xCB,0x28,0x03,0xD8,0xF0,0xF4,0x14,0x13,0x4D,0x59,0xBA,0xE7,
+0x7E,0x63,0x80,0x0D,0x76,0x95,0x7D,0x1B,0x13,0xCA,0xC9,0xF0,0x75,0x66,0x85,0xE0,
+0x29,0x41,0xA2,0x78,0x1F,0xFC,0xDB,0xD4,0xD9,0xFB,0x32,0x3A,0xA4,0x03,0xE0,0x54,
+0x6E,0xA8,0x4B,0xD6,0x8A,0x69,0xA3,0x39,0x09,0xE3,0xFA,0xEA,0x89,0xD6,0x35,0xAC,
+0xE4,0x3B,0xD8,0xCF,0x98,0x7B,0x92,0x1A,0x61,0x0D,0x7C,0x82,0x5D,0x92,0x71,0x3C,
+0xAC,0xFB,0x18,0x47,0xE3,0x00,0x05,0xF6,0x49,0x23,0x7A,0xAA,0xF3,0x21,0xC2,0x21,
+0xDF,0xF9,0x1A,0x36,0xDD,0x3E,0x22,0xEF,0xE7,0xE2,0x15,0x04,0xF9,0x29,0xCA,0x23,
+0x57,0x79,0x9A,0x3E,0xFA,0x19,0x67,0x8D,0x48,0x02,0x5A,0xAB,0xDC,0xE7,0x04,0xC8,
+0x56,0x97,0x74,0xD1,0x47,0xA4,0x19,0x4E,0xBF,0x78,0xD7,0x5C,0x0B,0x5E,0xBD,0xA6,
+0x3F,0x56,0xB5,0x79,0x8F,0x6C,0x93,0x0C,0xED,0x9B,0x66,0x0E,0x30,0x9C,0x7F,0x5F,
+0x4A,0x63,0xB3,0x87,0xA6,0x0B,0xFA,0x8F,0xCD,0xE4,0x46,0xDC,0x7D,0xB6,0x54,0xB5,
+0xC2,0xEB,0xB9,0x05,0x05,0x56,0x04,0x2C,0x97,0xBE,0xAF,0x6F,0x84,0x58,0xAD,0xA2,
+0xB2,0x9B,0x7D,0xB1,0x32,0x53,0x36,0x1B,0x3D,0x14,0x7A,0x10,0xD5,0xB8,0xFC,0x13,
+0x48,0x61,0xC2,0xF4,0xB0,0x2A,0xCD,0x99,0x53,0x7A,0xF3,0xF7,0xEB,0x9F,0xC2,0x0A,
+0xCD,0xE4,0xFA,0x49,0xCE,0x8D,0x14,0xE7,0x1F,0x36,0x2D,0x65,0x04,0x50,0x2D,0x2A,
+0xB3,0x9A,0x5D,0x90,0x68,0xE0,0xDF,0x41,0x80,0xA9,0xB9,0x6E,0x64,0xD4,0x4D,0xCE,
+0x01,0x28,0x60,0x1F,0x23,0x33,0x47,0x0A,0xE0,0xC9,0x5D,0xEA,0xBC,0x1E,0x95,0xDC,
+0x72,0x5B,0xF5,0xF9,0x41,0xC6,0xD0,0x68,0x85,0xAC,0x8C,0x5E,0xFF,0xCF,0xD6,0x4E,
+0x60,0x49,0xC4,0xDA,0xF0,0xAA,0x0D,0xD9,0xDF,0xF6,0x65,0xED,0x7B,0xD7,0x52,0xD2,
+0x27,0x0E,0x05,0x5C,0x0F,0x25,0x7D,0x26,0x3A,0x13,0x3C,0x51,0xA0,0x4C,0x89,0x92,
+0xC0,0xE9,0xC8,0x76,0xC0,0xEE,0x79,0xE9,0x8D,0xA4,0x86,0x5C,0xB8,0x0E,0x91,0xC8,
+0xFC,0xD5,0x9E,0x1C,0x6D,0xD0,0xEA,0x44,0xD0,0xF9,0x29,0xAE,0xA6,0x2D,0x8F,0xF5,
+0xA1,0x88,0x6C,0xB3,0xB9,0x08,0xE6,0x90,0x4C,0x65,0xEF,0xF4,0x81,0x68,0xA8,0x97,
+0x3B,0x12,0x57,0x12,0xFA,0xD9,0x74,0xD3,0xBE,0x97,0xA0,0x49,0x6D,0xF6,0x44,0xE5,
+0x8B,0xA2,0x1B,0xEE,0x5D,0x94,0x9E,0x74,0xC5,0xEC,0x4C,0xDE,0xF8,0x8E,0xD1,0x08,
+0x70,0x59,0x84,0x8A,0x30,0x22,0x45,0x19,0x33,0x1A,0x17,0x73,0xA8,0x4E,0x81,0x98,
+0xD0,0xF9,0x88,0x26,0xB5,0x1A,0xF8,0x9C,0x07,0x2E,0x77,0x27,0xAD,0x7E,0x84,0xAD,
+0x1E,0x37,0x63,0x03,0x1A,0x55,0x18,0x33,0x20,0x09,0x15,0x62,0x2D,0x76,0x04,0x25,
+0xAB,0x82,0x1F,0xCA,0x10,0x26,0x61,0x39,0x72,0x5B,0xF6,0xD3,0x82,0x39,0xAB,0xC5,
+0x69,0x40,0xE6,0xF1,0x42,0x97,0x82,0x6B,0xBA,0x93,0xB4,0x59,0x43,0x91,0x6A,0xAC,
+0xE1,0xC8,0xEC,0x73,0xF4,0xBA,0x19,0xDD,0x77,0x5E,0xC3,0xE3,0x7C,0x96,0x55,0x94,
+0x34,0x1D,0x14,0x5E,0x24,0x72,0x01,0x0D,0xE2,0xCB,0x2E,0x9B,0x95,0x38,0xBC,0xD3,
+0x16,0x3F,0x61,0x09,0xB4,0x3A,0xD9,0x9D,0x1E,0x37,0x0C,0x45,0x2F,0x07,0x06,0x56,
+0xA5,0x8C,0x7C,0xA7,0x9C,0x3C,0xF7,0xB5,0x65,0x4C,0xE0,0xD2,0xEF,0x8F,0xC6,0x1E,
+0xC6,0xEF,0xA9,0x11,0x51,0x86,0x80,0x78,0xED,0xC4,0x62,0xD8,0xE3,0x9D,0xCA,0x00,
+0x63,0x4A,0x95,0x88,0x69,0xC0,0xFE,0x40,0x03,0x2A,0x63,0x37,0x4D,0xF2,0x64,0xC1,
+0x51,0x78,0xA0,0x8F,0xEE,0x89,0x30,0xC7,0x8B,0xA2,0xE1,0x3D,0xB7,0x4D,0x9E,0x84,
+0x6E,0x47,0xA7,0xB7,0x0D,0x54,0x0E,0x24,0x36,0x1F,0x22,0x43,0xFD,0xBE,0xD4,0x3D,
+0xB9,0x90,0x2E,0xE9,0xFB,0xF9,0x55,0xD2,0xA3,0x8A,0xCF,0x3B,0x15,0x30,0x3C,0x5B,
+0x21,0x08,0x64,0x3B,0xD2,0xDF,0x5A,0xFB,0x45,0x6C,0xC4,0xD6,0xD6,0xE9,0xFF,0x41,
+0x4B,0x62,0x93,0xA6,0x01,0x46,0x10,0x28,0xE1,0xC8,0x7C,0xCA,0x0E,0x23,0x27,0x53,
+0x07,0x2E,0x01,0x78,0x7E,0xC1,0xE8,0x57,0xF6,0xDF,0x6A,0xCB,0x38,0x06,0x11,0x40,
+0x61,0x48,0xE4,0xFB,0x4F,0xA5,0xBD,0x66,0xE7,0xCE,0x1B,0xAB,0x18,0x02,0x31,0x64,
+0x58,0x71,0x82,0xA4,0x02,0x17,0x42,0x2B,0xE8,0xC1,0x57,0xE8,0x5D,0xB2,0x74,0x91,
+0x7E,0x57,0xE7,0xE7,0x16,0x47,0x06,0x3F,0xBB,0x92,0x95,0x79,0xD1,0xA8,0xF8,0x07,
+0x52,0x7B,0xF1,0xDD,0x7F,0xE1,0xC9,0x56,0x66,0x4F,0xB2,0x83,0xDC,0x9A,0xF5,0x38,
+0xCF,0xE6,0x8B,0x3A,0xB7,0x6B,0x8B,0x9E,0x83,0xAA,0xEB,0x3F,0x5F,0xC3,0x76,0xE2,
+0x4E,0x67,0xA3,0x93,0xA5,0x5A,0xA8,0x8C,0x21,0x08,0x34,0x42,0x3C,0x16,0x15,0x54,
+0xF5,0xDC,0xBC,0x37,0xB6,0x4B,0xAA,0x9F,0xE3,0xCA,0x0F,0xBB,0xF2,0xFD,0xDB,0x71,
+0x31,0x18,0x24,0x6B,0x25,0x52,0x20,0x0C,0xC9,0xE0,0x52,0xCC,0xF1,0xAC,0xD8,0x23,
+0x8E,0xA7,0x2B,0xDB,0x1B,0x75,0x39,0x32,0xC1,0xE8,0x58,0xCE,0x35,0x34,0x1C,0x7F,
+0x6A,0x43,0xB7,0xA3,0xAC,0x78,0x83,0x85,0xAE,0x87,0xF0,0x09,0x62,0xB5,0x4B,0xA9,
+0xBD,0x94,0x3E,0xFD,0xAA,0x19,0xE4,0x83,0xF7,0xDE,0x4B,0xEB,0x9A,0x7B,0xB3,0x9F,
+0xCC,0xE5,0xDA,0x68,0xB2,0x5B,0xBE,0x9B,0x79,0x50,0xAE,0x80,0xD4,0x98,0xFD,0x32,
+0x54,0x7D,0x90,0xBA,0x6E,0x81,0xB8,0x47,0xC7,0xEE,0x3F,0xAF,0xA7,0x0D,0x8E,0xD4,
+0x53,0x7A,0xD1,0xFC,0x0A,0x15,0x48,0x23,0x3B,0x12,0x1D,0x71,0xF4,0x9C,0xDD,0x16,
+0x25,0x0C,0x74,0x2F,0xCC,0xFC,0x67,0xE5,0x98,0xB1,0xE3,0x2C,0x76,0xE5,0x5F,0xED,
+0x49,0x60,0xE2,0xD5,0xB8,0x28,0xC7,0x91,0x22,0x0B,0x66,0x13,0xFA,0xFF,0xD3,0x7B,
+0x46,0x6F,0xA1,0x99,0x35,0x12,0x70,0x1C,0xDA,0xF3,0x50,0xDD,0xC3,0x99,0xEA,0x24,
+0x59,0x70,0xA2,0x85,0xFE,0xC9,0x60,0xD7,0xC3,0xEA,0x2B,0xBF,0x55,0xB0,0x7C,0x9B,
+0x79,0x50,0xA6,0xA1,0xA0,0x6A,0x9D,0x89,0x5C,0x75,0xBF,0xB4,0x30,0x04,0x19,0x4A,
+0xED,0xC4,0xFE,0x6D,0xB1,0x0A,0xEC,0x98,0x99,0xB0,0xC2,0x0C,0xAE,0x2F,0x87,0xFF,
+0x96,0xBF,0x69,0x81,0x2A,0x11,0x6C,0x03,0x9F,0xB6,0xA5,0x6D,0x5C,0x92,0x75,0xB0,
+0xBB,0x92,0x5F,0x9A,0xCB,0xBD,0x21,0xE2,0x6B,0x42,0x8D,0xB1,0x77,0xC5,0x5E,0xCC,
+0x0F,0x26,0x03,0x72,0x93,0x7F,0xBB,0xBA,0x13,0x3A,0x33,0x77,0x11,0x20,0x38,0x4F,
+0x5A,0x73,0xF3,0xD7,0x2B,0x31,0x4D,0x02,0x5A,0x73,0xD8,0xD5,0x45,0xF0,0x6C,0xCB,
+0x20,0x09,0x44,0x1A,0xA9,0x48,0xB6,0x80,0xBD,0x94,0xF2,0x18,0x6F,0x87,0x46,0x96,
+0x71,0x58,0xA4,0xAB,0xCF,0xAD,0x35,0xE6,0x56,0x7F,0xC6,0xC7,0xFE,0xEF,0xD7,0x6F,
+0xAF,0x86,0x0F,0xDE,0xF2,0xDB,0x7E,0xDB,0x96,0xBF,0x8E,0x4F,0x17,0x41,0x3E,0x28,
+0x05,0x2C,0x70,0x0B,0x8A,0x1D,0xC0,0xA3,0xF1,0xD8,0x2C,0x8A,0xF7,0xCD,0xDE,0x44,
+0x00,0x29,0x40,0x3E,0x2F,0x21,0x59,0x06,0x0B,0x22,0x69,0x35,0x1D,0x32,0x34,0x51,
+0x8D,0xA4,0x7A,0x89,0x14,0x36,0x75,0x3D,0xF3,0xDA,0x5F,0xFB,0xC5,0xF8,0xEC,0x43,
+0x88,0xA1,0x4A,0xBC,0xD9,0x8C,0x02,0xF0,0x17,0x3E,0x27,0x67,0xB4,0x1C,0x9D,0xD6,
+0x86,0xAF,0x29,0xD1,0x00,0x66,0x31,0x29,0x4E,0x67,0x9C,0x85,0x10,0x00,0x39,0x6E,
+0xF3,0x46,0x2A,0x30,0x0F,0x63,0x92,0x18,0xA6,0x9F,0xBC,0xCA,0x9D,0xD9,0xB5,0xAD,
+0x31,0x15,0x79,0xA1,0xF3,0x9F,0x4C,0x3A,0xC2,0x6F,0x28,0xAE,0xDB,0xDE,0xB2,0xEC,
+0xCA,0x97,0xFB,0xD8,0x50,0x3C,0x11,0xC4,0x04,0x40,0xC1,0x68,0x08,0xA8,0xC4,0x49,
+0x5C,0x1B,0x77,0xC2,0xEA,0x86,0x2E,0x41,0x70,0xE0,0x15,0x1C,0xF2,0xC4,0xA8,0xDF,
+0x58,0xD4,0xB8,0x09,0x09,0x65,0xF3,0x7F,0xD3,0x1E,0x48,0xBF,0xFC,0x03,0x6F,0x16,
+0x8E,0x83,0xEF,0x88,0x66,0x0A,0x34,0xD7,0x64,0xA4,0x45,0x08,0x84,0xE7,0x8B,0x8A,
+0xB8,0x7B,0x17,0x46,0x3F,0x53,0xD6,0x6C,0x62,0xC3,0x24,0x0E,0xDA,0x30,0x5C,0x03,
+0x15,0x35,0x59,0xA5,0xB1,0xDD,0xBD,0x89,0x7A,0x99,0x66,0x16,0x4F,0x41,0x2D,0xE7,
+0xC5,0xBE,0xD2,0xFE,0x4B,0x27,0x02,0xCC,0x7F,0xAC,0x56,0x13,0x1D,0x42,0x2E,0xB6,
+0x73,0xDD,0xB1,0x2B,0xE9,0x85,0x7F,0x13,0x6D,0x8F,0x67,0x01,0xB4,0xC3,0xAF,0x9E,
+0x56,0x13,0x7F,0xC0,0x2B,0x47,0x86,0x28,0x7E,0x8D,0x76,0x12,0x10,0x78,0x14,0x81,
+0x04,0x10,0x7C,0x91,0x01,0x6D,0xF1,0x75,0xED,0x07,0x6F,0x81,0x4C,0xBC,0xD0,0x19,
+0x43,0xF9,0x95,0x3F,0x2F,0x43,0x96,0x3C,0x87,0x9A,0x98,0xEB,0xDC,0xEC,0x80,0xD9,
+0xB6,0xBC,0xD0,0x8F,0x20,0x4C,0xD5,0x70,0xCA,0x65,0x2A,0xA6,0x83,0xD5,0xB9,0xBF,
+0x20,0x30,0x5C,0x95,0x73,0x1F,0x44,0xB2,0xDE,0x21,0x7A,0xB2,0xC0,0xF3,0x9F,0xDA,
+0x1F,0x3D,0x51,0xA7,0xAE,0xC2,0xBE,0x95,0xB7,0xEE,0xDC,0xDB,0xFA,0xDF,0xB3,0xCC,
+0x76,0xFC,0x90,0x0F,0xC3,0xAF,0x08,0x4E,0xE7,0x7E,0x1C,0x8B,0x19,0x8D,0xE1,0x7D,
+0x64,0x24,0x48,0xC5,0x3B,0x57,0xC6,0x78,0xDC,0x52,0x0B,0xB0,0xAE,0x00,0x6C,0x47,
+0xF1,0x55,0x39,0x21,0xDF,0xB3,0x5A,0x00,0x11,0x25,0xB1,0x7D,0x9B,0x05,0x69,0x77,
+0x49,0xF1,0x9D,0x3D,0x86,0xEA,0xB8,0xBB,0xC8,0x16,0x5B,0xA4,0xF6,0x0B,0x67,0x14,
+0xB1,0x8E,0xE2,0xBA,0x75,0x19,0x25,0xD5,0x61,0x91,0x75,0x0D,0x3D,0xAD,0xC1,0x79,
+0x48,0x1F,0x73,0xD2,0x9E,0xF2,0xFA,0xE1,0x07,0x12,0x90,0x6B,0x8C,0xFC,0x90,0x99,
+0x0F,0xF6,0x9A,0x7C,0x5E,0x32,0x72,0xA9,0x3A,0x59,0xE6,0x56,0xF9,0x22,0x4E,0x32,
+0x63,0x16,0x7A,0xF0,0x39,0x55,0xB7,0x0B,0x42,0xE7,0x20,0x2E,0x2C,0x88,0xE4,0x4D,
+0x97,0xBD,0xD1,0xAF,0x57,0x3B,0x50,0x82,0xE2,0x4B,0x2C,0x8E,0xA6,0x1B,0x77,0x54,
+0xEB,0x96,0xFA,0xF8,0xA3,0xCF,0x8C,0xAA,0x03,0x06,0x80,0x6F,0xBD,0x36,0x5A,0x62,
+0x68,0xF0,0x9C,0x1D,0xDB,0xB7,0x4A,0x14,0x5B,0x9C,0x42,0x37,0x55,0x82,0xEE,0x3E,
+0xEC,0xA4,0xC8,0xCD,0x92,0xFE,0xE8,0xFF,0xE3,0x6A,0x0C,0x8F,0xF0,0xD7,0xBB,0xCE,
+0x03,0x22,0x4E,0xA4,0x12,0x7E,0xE0,0x77,0xFD,0x57,0x2F,0x91,0xBE,0xCB,0xA7,0x9C,
+0xBC,0xB4,0xD8,0x8D,0x0B,0x67,0x82,0x0C,0x36,0x47,0xF4,0x5A,0xA2,0xD4,0xB8,0x9F,
+0x6D,0xD1,0xBD,0x39,0x94,0xF8,0x89,0x98,0x68,0xBA,0x57,0x04,0x86,0xF4,0x98,0x9B,
+0xD8,0x4F,0x23,0x12,0x51,0x3D,0x31,0xE5,0x79,0xCB,0x37,0x15,0x4A,0x60,0x0C,0xC3,
+0xB0,0x60,0x0C,0x55,0x84,0xE8,0xC9,0xC8,0x71,0xC1,0x35,0x1D,0x94,0x2C,0x40,0x51,
+0xC2,0x8C,0xE0,0xCB,0x76,0x1A,0x74,0x87,0x32,0x53,0xE4,0x5E,0x35,0xB6,0xDA,0x6A,
+0x2F,0x19,0x75,0xB3,0x0D,0x61,0xE3,0x6B,0x95,0xB9,0xA9,0xF9,0xC9,0x06,0x6A,0x26,
+0xBF,0x49,0x25,0x73,0xFB,0x97,0x4E,0x30,0xF8,0x62,0x1F,0x94,0xAD,0xFD,0x91,0xB9,
+0xF5,0x9A,0xF6,0xEA,0x17,0x7B,0xD0,0x42,0x38,0x2A,0x97,0x54,0xFD,0xED,0x81,0xF9,
+0xB5,0x41,0x2D,0x71,0xF2,0x9E,0x6C,0x1B,0xC7,0x5A,0x18,0xAB,0x7B,0xAA,0xC6,0x38,
+0xEF,0x59,0x35,0x33,0x45,0x29,0x61,0xA1,0x08,0x5E,0xD3,0x64,0x51,0x4D,0x21,0xF5,
+0xD2,0x47,0x2B,0x10,0x18,0x74,0x93,0x0E,0xA5,0xCD,0xED,0xC9,0x3B,0x71,0x1D,0xA3,
+0x0D,0xE5,0x89,0x6D,0xD7,0xBB,0x58,0x0A,0x06,0x33,0xB0,0x6A,0x6E,0x40,0x2C,0xC7,
+0xE9,0x85,0xE9,0xE9,0x48,0x24,0x53,0x9E,0xA0,0xF8,0xDD,0xCC,0xB7,0x3E,0x52,0x60,
+0xFB,0x5D,0x31,0x23,0x28,0x44,0xD7,0x7A,0xEB,0x60,0x0E,0x87,0x38,0x8C,0xE0,0x5D,
+0x69,0x1E,0x72,0xF2,0x4D,0x21,0x63,0xAB,0x89,0xF7,0xFB,0xE5,0xDE,0xFF,0x93,0xC8,
+0x92,0x9C,0xF0,0x8B,0x05,0x69,0xE1,0x61,0x6E,0xDD,0x36,0x02,0xA0,0xC7,0xAB,0x8E,
+0x85,0x65,0x09,0x65,0x5F,0x33,0x52,0x88,0xCD,0x23,0x6B,0xA1,0x22,0x4F,0x23,0x84,
+0x34,0x34,0x58,0x85,0xF5,0x99,0x2D,0x5D,0xFA,0x11,0x6E,0x96,0x96,0x3F,0x53,0x40,
+0x2D,0x0A,0x66,0xA2,0x9B,0xF7,0xCA,0xD4,0x78,0xEA,0x17,0x14,0xD3,0xC5,0xA9,0xFF,
+0x7C,0xF4,0x98,0x0D,0x6B,0x07,0x06,0xE8,0x33,0x72,0xC4,0x5F,0xCE,0x34,0x58,0x13,
+0x66,0x37,0x5B,0xD4,0x8D,0xE1,0xEB,0xE3,0x1A,0x7D,0xE2,0x76,0x1C,0xAC,0xC0,0x59,
+0x74,0xEF,0x83,0x1E,0x29,0x45,0xF7,0x5B,0xC9,0x37,0x7B,0xA5,0x81,0xC6,0xAA,0xAE,
+0x67,0xD9,0xB5,0x3B,0x3E,0x52,0xF6,0x4D,0xB6,0xCF,0xFC,0xDA,0x5F,0x8A,0xE6,0x3C,
+0x27,0x02,0x6E,0xA0,0x25,0x49,0xE5,0x45,0x99,0xA7,0xBB,0xF5,0x36,0x4B,0x27,0x94,
+0xE6,0xAC,0xC0,0xCF,0xCB,0xA7,0x0A,0x44,0xA1,0xD9,0xFD,0xCD,0xAF,0xEE,0x82,0xA8,
+0xA3,0x56,0x3A,0x70,0x43,0x2F,0x00,0xC6,0x26,0x17,0xB4,0x4A,0xA8,0xDC,0xB0,0x9D,
+0x1A,0x1C,0x70,0x83,0xFE,0x92,0x7E,0x05,0xC5,0x29,0x69,0xA9,0x90,0xE3,0x8F,0x9A,
+0xB3,0x9D,0xF1,0xAB,0xBF,0xD3,0xDE,0xE4,0x3C,0x3E,0x87,0x50,0x54,0x6C,0x00,0xD1,
+0xF4,0x74,0x18,0x05,0x2A,0x46,0xA6,0x09,0xEC,0x26,0x4F,0x80,0x79,0xB9,0xD5,0x29,
+0x71,0xCE,0xA2,0x3A,0xD6,0xBA,0x78,0x2B,0x7C,0xFE,0x07,0x10,0x2E,0x9B,0xF7,0x5C,
+0x39,0x0E,0x62,0xB2,0xAD,0xC1,0xEF,0xC7,0x54,0xD0,0x01,0x38,0x80,0x28,0x44,0x41,
+0x8A,0x4C,0x20,0x43,0xCF,0xA3,0x1A,0x50,0x7D,0xDF,0x27,0x11,0x01,0x5D,0x31,0xB5,
+0x02,0xCC,0xA0,0x4B,0xE8,0x84,0x5F,0x32,0xD2,0x3F,0x68,0xBE,0x24,0x93,0xFF,0x5E,
+0xE2,0x63,0x0F,0x04,0xBA,0xD6,0xEE,0xD1,0xD8,0x46,0x1B,0xB4,0xED,0x26,0x4A,0x22,
+0x8B,0xA2,0xCE,0xAC,0x72,0x1E,0x64,0x93,0x8A,0xA5,0xAA,0xE6,0xD6,0xE4,0x88,0xDB,
+0x7D,0x31,0xFF,0xCB,0xC7,0x47,0x73,0x33,0x04,0x4D,0xCE,0xFA,0xCE,0xA5,0xD8,0x91,
+0x2B,0x5B,0xC3,0xF7,0x54,0xEA,0xDE,0x0D,0xAB,0xBF,0x93,0xA7,0xED,0xBB,0xE5,0x8F,
+0xE6,0x71,0x24,0x10,0x50,0x25,0x11,0xC6,0x11,0xB2,0x24,0x10,0xAF,0xA3,0xBF,0x97,
+0x27,0xF7,0x63,0x57,0x20,0xDA,0xEE,0x49,0x48,0x0E,0xC1,0xF5,0x34,0x78,0xFF,0x4C,
+0x67,0xA7,0x73,0x47,0x68,0x1A,0x2E,0xC1,0x3A,0x90,0x2D,0x19,0xAD,0xAB,0xB5,0x9F,
+0xF8,0xC3,0x88,0xBC,0xB3,0x77,0x43,0x77,0x61,0x3D,0xDB,0xEF,0x6D,0xFB,0x25,0xCF,
+0xB4,0x3F,0x38,0x0C,0x59,0xD0,0xE4,0x3A,0x8D,0xAA,0xA0,0x94,0x15,0x6E,0xC8,0x5A,
+0x8F,0x9E,0xA2,0x96,0xCB,0x93,0xA7,0xEB,0xC2,0x17,0x52,0x66,0x8B,0x82,0xBA,0xB6,
+0x21,0xD9,0x4B,0x7F,0xE0,0x9A,0xAE,0xC9,0xDE,0x14,0x4D,0x79,0x7C,0xE8,0x27,0xDC,
+0x9E,0x9C,0xB1,0x85,0x1B,0x18,0x2C,0xB0,0x57,0xF3,0x23,0x17,0x5B,0xD6,0x3E,0xE2,
+0x5A,0x28,0xC1,0xF5,0x29,0x2F,0x1B,0xB5,0x82,0x8C,0x89,0xBD,0xBB,0x87,0x8F,0xB3,
+0x50,0xAA,0x49,0x7D,0xD7,0x8C,0xB8,0xE8,0x6B,0x3F,0xD3,0xE7,0x55,0x7E,0x98,0x4A,
+0x16,0xD4,0x71,0x45,0xFD,0x6B,0x5F,0x25,0xA1,0xBD,0x9B,0xAF,0x2C,0xFC,0x63,0xC8,
+0x83,0x32,0x02,0x36,0x6A,0x09,0x3D,0xD0,0x70,0x09,0xFE,0xCA,0xFD,0xBF,0xF1,0x8B,
+0xBE,0xBD,0xB0,0x84,0xF2,0x42,0x76,0x03,0x94,0x8D,0x9E,0xAA,0x37,0x67,0xE3,0x53,
+0x19,0x64,0xCE,0xFA,0x39,0xE4,0xD0,0x6E,0x00,0x86,0x01,0x35,0xB3,0x07,0x07,0x33,
+0x44,0x9A,0x6D,0x59,0x23,0x27,0x13,0xB7,0x0F,0xA0,0x28,0x1C,0x5D,0xFE,0x10,0xCA,
+0x43,0xA2,0x52,0x66,0x1D,0xC4,0xF0,0x6A,0xCC,0xDE,0x95,0xA1,0xAE,0xB4,0xA9,0x80,
+0x76,0xA5,0x60,0x54,0xD3,0x43,0x77,0x23,0x4E,0xD4,0x1D,0x29,0x11,0x4E,0xEC,0x7A,
+0x4A,0x3C,0xC5,0xF1,0xAD,0x7B,0x4F,0x65,0x4F,0x3B,0xF3,0xC7,0x7E,0xE0,0x2D,0xD4,
+0xE2,0x55,0x04,0x30,0xC5,0x54,0x60,0x22,0x47,0x28,0xE8,0xDC,0xE5,0x3B,0x6D,0x0F,
+0x70,0x8B,0x48,0x7C,0x3D,0x2B,0x1F,0xA5,0x51,0x29,0xFF,0xCB,0xC0,0x0D,0x7E,0x39,
+0x87,0x16,0x22,0x16,0x77,0xF8,0xCC,0x3C,0xE9,0x35,0x5B,0x6F,0x0A,0xD5,0x6C,0xE1,
+0xCD,0xC4,0xBA,0x8E,0x78,0xD1,0xE5,0x1A,0xE2,0xD8,0xBD,0x89,0xD3,0x16,0x76,0x22,
+0x05,0xDC,0x6A,0x5E,0xAF,0x68,0x5C,0x74,0x99,0xBA,0xA4,0x90,0x72,0x40,0x81,0x74,
+0xFC,0xE7,0xA8,0x9C,0x4C,0x3A,0x0E,0xC5,0xDB,0x30,0x6C,0x58,0xDA,0x81,0xE8,0xB5,
+0x80,0x2E,0x1D,0x29,0x35,0x30,0x04,0xB6,0x38,0x81,0x3E,0x0A,0x95,0x2E,0x08,0x1A,
+0x6B,0x0B,0xD3,0xE7,0xD5,0x9F,0xAB,0xF9,0x5A,0xC4,0x19,0x2D,0x9D,0xAE,0x80,0x9A,
+0x9F,0x8A,0xA6,0x92,0xDA,0xB6,0x82,0xDF,0xCD,0x31,0x7B,0x4F,0x6C,0xEC,0x33,0xD8,
+0x82,0x24,0x15,0x21,0xF4,0x9E,0xAA,0xD9,0x21,0xA6,0x00,0x34,0xE4,0x2C,0x7B,0x18,
+0xF7,0x73,0x37,0x03,0x2C,0x0E,0x3A,0x91,0x03,0x78,0xFC,0xC8,0xDB,0x96,0xFE,0xA2,
+0x0F,0x5E,0xE2,0xD6,0x34,0xDE,0xEA,0x59,0xEE,0x00,0x69,0x5D,0x75,0x7F,0xB9,0x4B,
+0x39,0x45,0xCF,0xFB,0x93,0x98,0xAC,0xB8,0x83,0x63,0x67,0x53,0x7B,0xD7,0x1F,0xE3,
+0xDD,0xD0,0xBE,0x8A,0xC9,0x80,0xB4,0xFA,0x66,0x08,0xE9,0xDD,0x98,0x99,0xB2,0xAD,
+0x54,0x8E,0x69,0x5D,0xAE,0x86,0xB2,0x9B,0xDD,0xEA,0xB0,0x84,0x56,0x61,0x84,0x55,
+0xC8,0xF6,0x8D,0xB9,0x14,0x31,0x05,0x96,0x75,0x2D,0xDF,0xEB,0xD7,0x36,0x52,0x02,
+0x01,0xF8,0x4A,0x7E,0xEA,0x92,0xA6,0xCB,0x4B,0xF0,0x3C,0x08,0x1C,0xF9,0x56,0xCD,
+0x97,0x02,0x26,0x12,0x4A,0xE6,0xD2,0x1F,0xCE,0xCF,0x86,0xB2,0x06,0x75,0xC0,0x41,
+0x32,0xD1,0x50,0x64,0x65,0x20,0x14,0xF6,0x30,0x92,0x25,0x11,0x7F,0xF7,0x3B,0xC3,
+0x73,0x97,0x57,0x63,0x95,0x44,0x70,0x62,0x12,0x4C,0xD9,0xED,0xEE,0xA4,0xF9,0x90,
+0x12,0xF0,0x51,0x65,0xE4,0x55,0x61,0x02,0x9F,0x60,0x78,0x4C,0x79,0xDF,0x15,0xEB,
+0x04,0xCA,0x7D,0x49,0x2B,0x3C,0x08,0xA4,0xB8,0x9A,0xA5,0x91,0x4B,0xD2,0x2A,0xE6,
+0x61,0x89,0x5B,0x6F,0x6F,0x28,0x1C,0xF4,0x7A,0x0B,0xF6,0xC2,0x51,0x5E,0xBC,0x6A,
+0x07,0xD6,0x62,0x56,0x90,0x65,0x51,0x46,0x36,0x48,0xF9,0xCD,0xE1,0x1B,0x49,0x2F,
+0xC7,0x46,0x32,0x06,0x0D,0x0F,0x3B,0xB1,0x7F,0x2F,0xD7,0xE3,0x4F,0xF2,0x0E,0xC6,
+0x5F,0x1A,0xF6,0xC2,0x87,0x9C,0xA8,0xA8,0x22,0x58,0xFD,0xC9,0x1E,0xF1,0x5C,0xC5,
+0x40,0xBE,0x4D,0x79,0x85,0x8F,0xBB,0xB9,0x19,0xA1,0x3F,0x0B,0xF5,0x3F,0x79,0x0B,
+0x68,0x17,0xCC,0xF8,0xA6,0x9D,0xA9,0x88,0xC6,0xDC,0x9D,0xA9,0x20,0x5C,0xCF,0x68,
+0x93,0x26,0x06,0x32,0xED,0xA0,0x94,0xFE,0x01,0x69,0xEF,0xDB,0x2E,0xF4,0x69,0xC0,
+0xEC,0xF3,0xAC,0x98,0x53,0xD8,0xEC,0x38,0xA3,0xAC,0x88,0xBC,0xA2,0x14,0x05,0x20,
+0x47,0x86,0x72,0x46,0x18,0xE5,0xD1,0x4E,0xEB,0x24,0x48,0x7C,0x0C,0xFD,0x42,0xC9,
+0xA7,0x37,0x23,0x17,0x9B,0x83,0xB7,0xAB,0xDF,0xFB,0xA3,0x97,0x64,0x6C,0xBB,0x58,
+0xCA,0xFC,0x85,0xB1,0x1C,0x2A,0x1E,0x85,0xB1,0x66,0x50,0x64,0xE3,0x13,0x43,0x27,
+0xA9,0x91,0x8B,0xBF,0x2F,0xF3,0xC7,0x6F,0x0A,0x84,0x09,0x3D,0xFF,0xB7,0xFB,0x83,
+0x99,0xA4,0x8E,0xBA,0x58,0x3E,0x0A,0xD5,0x72,0x18,0xED,0xD9,0x1B,0xC6,0x6E,0xF2,
+0xA3,0x13,0x03,0x37,0x74,0x05,0x31,0xC2,0x44,0xD6,0x15,0x21,0xD1,0x1E,0x7C,0x2A,
+0x1D,0x40,0xEE,0xDA,0xC1,0x9B,0xAF,0xE9,0xEF,0xEF,0x87,0xB3,0xCC,0xAD,0xD2,0x99,
+0x45,0x8C,0x7A,0x4E,0xB0,0x8A,0xBE,0x89,0x92,0x57,0x42,0x76,0xE7,0x33,0x67,0x07,
+0x41,0xA8,0x5A,0x6E,0x4D,0xD4,0xE0,0x2A,0x06,0x5C,0xDD,0xE9,0x53,0x56,0xB6,0x62,
+0x42,0xB4,0x45,0x71,0x5D,0x1F,0x2B,0xF1,0x7D,0x3E,0xC4,0xF0,0x7A,0xC0,0x09,0xF4,
+0x10,0xFA,0x59,0x6D,0x60,0x01,0x35,0xD2,0xF5,0x36,0x44,0x70,0x13,0x46,0xE6,0x72,
+0xE0,0x5F,0x0C,0x38,0x96,0xB9,0x8D,0x9C,0x1E,0x94,0x0D,0x39,0xC3,0x12,0x62,0x26,
+0xBC,0xB7,0xB8,0x8C,0x0C,0xE1,0xD5,0x5E,0xA0,0x52,0x75,0x41,0x26,0x74,0xE1,0x40,
+0x8A,0xAC,0x95,0xA1,0x41,0x00,0x34,0xF2,0x88,0x8E,0x81,0xB5,0x71,0x5F,0x9D,0x6B,
+0xB5,0xA1,0xF9,0x2A,0xCA,0x2E,0x96,0xDE,0x66,0x72,0x24,0x30,0xED,0x3B,0xF9,0xB0,
+0x9C,0x88,0xDF,0x25,0x52,0x64,0x44,0x46,0xA5,0xB1,0x3E,0xE9,0x0B,0xD6,0x1F,0xBB,
+0x4F,0x5B,0x46,0x6F,0x38,0x93,0xD9,0x2C,0x7D,0x69,0x2C,0x23,0xAF,0xCA,0xBB,0x03,
+0x30,0x24,0xC1,0x97,0x74,0x01,0x07,0x60,0x4B,0x5F,0x3F,0x06,0xB8,0xCB,0xAC,0x15,
+0x1F,0x0B,0x86,0xFF,0xB5,0xA9,0x6E,0xA1,0x90,0x84,0x7F,0x9D,0xA3,0xD8,0xB7,0x1D,
+0x27,0x33,0xC0,0x81,0x10,0x95,0xF7,0x04,0x3E,0x2A,0xBE,0xF2,0x4D,0x37,0x59,0x1C,
+0xA0,0xB4,0x89,0x4F,0x22,0xA0,0xF0,0x36,0xC4,0xD0,0xFB,0x4D,0xC5,0x3D,0xD1,0x9E,
+0x43,0x57,0x54,0x71,0x1D,0xA7,0xC8,0x09,0x8E,0x9A,0x42,0xBE,0x78,0x43,0x6C,0x5D,
+0xBA,0xAE,0xBA,0x66,0x92,0xEC,0x0C,0x86,0x0F,0x1B,0xEB,0x96,0x39,0xE3,0x2D,0xBC,
+0x6A,0x7E,0x72,0x7E,0x47,0x14,0x21,0x53,0xE6,0xF2,0xAC,0x38,0xAC,0x9B,0xB8,0x51,
+0xFA,0xEE,0x3A,0xA6,0x65,0x61,0x76,0x71,0x5C,0x48,0x29,0x07,0x50,0x45,0x44,0x73,
+0xD2,0xC6,0x3C,0x88,0xD6,0x7C,0xD8,0xC2,0x9C,0x88,0x61,0x8F,0x2B,0xD2,0x3F,0x9F,
+0xFB,0xEF,0x1A,0x87,0xA3,0x88,0x59,0xB7,0xDE,0xCA,0xD2,0x7E,0x49,0x27,0x5D,0x08,
+0x54,0x40,0x55,0x67,0x6D,0x63,0x7C,0x79,0x5E,0x4A,0x5A,0x76,0x6E,0x62,0x7A,0x6A,
+0x5E,0x4A,0x26,0x1E,0xD8,0x1F,0xB5,0xCC,0xF1,0xE5,0xBA,0x39,0x3C,0xD3,0x28,0x89,
+0x0C,0x18,0x97,0xFD,0x1A,0xE6,0x8E,0x0E,0x30,0x24,0xD3,0x91,0xF4,0x59,0xE0,0xCB,
+0xF7,0xE3,0x08,0x99,0xD2,0x6C,0xCC,0xC6,0xF2,0xE6,0xE8,0x68,0x02,0xF4,0x16,0x90,
+0xB4,0xA0,0xD9,0x0B,0x48,0x57,0x6D,0x5C,0x1E,0x0A,0x9A,0xF6,0xF0,0x49,0xE4,0xDF,
+0x13,0x07,0x94,0xE1,0xF8,0x1B,0x91,0xEC,0x8B,0x9F,0x77,0x8E,0x8B,0xDE,0x9F,0x33,
+0x7E,0x6A,0x22,0x3A,0x03,0x84,0xF5,0x17,0xDB,0xCF,0xE7,0x4E,0x7D,0x73,0x69,0x68,
+0xBE,0xAA,0xAA,0x72,0x13,0xC4,0xA5,0x07,0x08,0x1C,0xAD,0xD7,0x91,0xED,0x85,0x1A,
+0x41,0x55,0x25,0x02,0x54,0x05,0x23,0x40,0xD3,0xC7,0xED,0x4C,0x74,0x51,0x60,0x43,
+0x8E,0x9A,0xEE,0x06,0xB3,0xC8,0x09,0xA7,0xCB,0xDF,0xB7,0x0E,0xC3,0x5C,0xD7,0xF9,
+0x23,0x37,0xD0,0x95,0x8F,0x9E,0x63,0x9B,0xD5,0xC1,0x8A,0x2D,0x9E,0xAE,0x8A,0x56,
+0x80,0x94,0x8D,0x6B,0xBE,0xFA,0x36,0xAA,0x77,0x63,0x55,0x50,0x51,0x65,0x45,0x52,
+0x26,0x32,0xE0,0xA0,0xC0,0x5D,0xEF,0xD4,0x17,0x03,0xB1,0xD4,0xCE,0x6E,0xDA,0xC6,
+0x6D,0x79,0x33,0x38,0x72,0x60,0x60,0x66,0xCF,0xDB,0xA3,0x1E,0xAE,0xEA,0xBA,0x22,
+0x0F,0x1B,0xC6,0xAF,0x01,0xF5,0x86,0x15,0x8C,0x98,0x31,0xCF,0xCB,0x5E,0xDF,0xF3,
+0xE8,0xFC,0x0B,0x85,0x39,0xB3,0xF8,0x2D,0x0E,0x1A,0xCA,0xB6,0x83,0xDC,0x97,0x39,
+0x4B,0x5F,0x56,0x7B,0xB1,0xB9,0x7A,0xA5,0xF7,0xE3,0xDD,0x58,0xD9,0x6F,0xCD,0xD0,
+0x7C,0x68,0x53,0x49,0xC1,0x7D,0xCE,0xD5,0xA6,0xB2,0x6C,0xB8,0x73,0x10,0x67,0x05,
+0xFE,0xEA,0x2A,0xB2,0x3B,0xC2,0x8B,0x2F,0x98,0x8C,0x75,0x9F,0x1D,0xF7,0x09,0x8C,
+0x61,0x75,0x21,0x26,0x73,0x40,0x41,0x67,0x6E,0x7A,0x2E,0x32,0x45,0x35,0x51,0x16,
+0x5A,0x4E,0x36,0x0A,0xFE,0x7A,0xF6,0xEA,0xB6,0xA2,0x3C,0xF8,0xBD,0xFB,0xA9,0x20,
+0x97,0x83,0x8C,0x7D,0xFB,0x4A,0xC3,0xEF,0xC7,0xD3,0xA9,0x1C,0x59,0x67,0x4D,0x58,
+0x4E,0x5A,0x66,0x4E,0xF5,0x29,0xAE,0xE1,0x63,0x77,0x11,0x00,0x00,0x85,0x14,0xE3,
+0xE7,0xF3,0x48,0xC9,0x53,0x44,0x65,0x47,0x1C,0x08,0xE9,0x87,0xF3,0x18,0xE7,0x8D,
+0x81,0x95,0xAD,0x4A,0x02,0xA4,0xD4,0x16,0x8D,0x99,0x10,0xEF,0x18,0xC7,0x0C,0xB9,
+0xBC,0xA8,0xDB,0x01,0xDC,0x0F,0xA1,0xC8,0x64,0x70,0x57,0x41,0xD8,0x4F,0xCC,0xF1,
+0xC4,0xD0,0x1D,0xBF,0x76,0x70,0x74,0x62,0x84,0x90,0x3B,0xCD,0xBF,0x8A,0xAB,0x53,
+0x64,0x70,0x11,0x13,0xE5,0x69,0xFE,0xF1,0x2F,0x3B,0xCF,0x92,0xD1,0x6D,0xC5,0xDA,
+0x85,0x91,0xBD,0x5E,0xC8,0x5F,0xE5,0xDC,0x04,0x10,0xB3,0xC5,0x25,0xB1,0x31,0xF2,
+0xDD,0xC9,0x7F,0xC4,0x7C,0x03,0x0D,0x68,0x62,0x76,0x30,0x20,0x5D,0x77,0x49,0x4C,
+0x65,0x71,0x31,0x32,0x29,0xF3,0xA8,0x3D,0x36,0x22,0xB4,0xF0,0x14,0xD5,0x00,0xA7,
+0x7B,0x6F,0x12,0x0F,0x35,0xA1,0xE6,0x21,0xB0,0xA4,0x5B,0x99,0x94,0xDD,0x80,0x2F,
+0xB0,0xA4,0xC9,0x1F,0x2A,0xA2,0xFA,0x3E,0x26,0x32,0xE4,0xB0,0x8D,0xBF,0x99,0x54,
+0xEE,0xFA,0x6A,0xE2,0x0A,0xA6,0xDE,0x1E,0x43,0x57,0x35,0x04,0x12,0xB4,0x06,0xC0,
+0xFF,0xEB,0x0A,0x93,0x9E,0xFE,0x12,0x8A,0xDD,0xC9,0x80,0x2F,0xD7,0x0C,0xC3,0xBD,
+0x20,0x34,0x81,0xC7,0x27,0x90,0xC5,0x33,0xD4,0xC0,0xAB,0x0D,0x89,0xAF,0x9D,0x40,
+0x44,0x50,0x15,0x37,0x20,0xD1,0x83,0x34,0x87,0x93,0x69,0x9C,0x75,0x71,0x61,0x62,
+0x82,0x96,0xFC,0x18,0x56,0x74,0x50,0x42,0x05,0x11,0x92,0xE5,0xD6,0x2C,0xC2,0x9C,
+0xF6,0xE2,0x28,0xB8,0x3A,0xE2,0xAA,0x2E,0x89,0x9D,0x04,0xFF,0x6C,0x13,0x78,0x19,
+0x55,0x41,0x75,0x46,0xFD,0x2B,0xA4,0xE9,0x46,0x52,0x00,0x34,0x8F,0xCE,0x9B,0x27,
+0xE2,0xF6,0x78,0xFC,0x19,0xB7,0xDC,0x0D,0x11,0x05,0xD6,0xB5,0xE0,0x09,0xF4,0x8F,
+0xE4,0xF0,0x19,0x9B,0xCE,0x3E,0x82,0xDA,0xE9,0xFD,0xE0,0x7B,0xB9,0xEB,0xAD,0x34,
+0xFC,0xE8,0x5B,0xC1,0xBF,0xDA,0x17,0xAB,0xA7,0xB3,0x4D,0x98,0x37,0x80,0x23,0xD1,
+0xF9,0xED,0x6B,0xF4,0xBC,0x8B,0x45,0xA8,0x2C,0x38,0x9D,0xC3,0xCD,0x3F,0xD9,0x94,
+0xEB,0xFF,0x5A,0xD7,0x3D,0xA3,0xEC,0x29,0x4F,0x5B,0x2B,0x16,0x6F,0x42,0x7B,0x4B,
+0xF8,0xEC,0x4B,0xD5,0x86,0xBC,0x48,0x92,0x81,0x95,0x0E,0xFD,0xAD,0xBB,0xB9,0x70,
+0x6B,0x7F,0x52,0x5F,0x42,0x24,0x14,0x56,0x82,0x96,0x5C,0xAC,0x87,0xCC,0x93,0x2D,
+0x01,0x15,0xA5,0xC2,0x12,0xE4,0x84,0x06,0x6B,0x7F,0x1B,0x02,0xA9,0xAB,0xBD,0x64,
+0x4C,0x58,0x17,0x3D,0x2B,0x82,0xDB,0x3F,0x2E,0x3A,0xEE,0xB2,0xA6,0xE8,0xB2,0x28,
+0x58,0x4C,0x47,0x79,0x0D,0xE7,0x98,0x19,0xA2,0xB6,0x78,0xA8,0xF5,0x79,0xE1,0xEA,
+0x31,0x25,0xE1,0xB6,0x21,0xF1,0xA2,0x35,0xAF,0xBB,0x47,0x9A,0x28,0x83,0x3C,0xCD,
+0x2C,0xE0,0xB5,0x3B,0x51,0xE4,0x6A,0xCC,0x31,0x98,0x5E,0xD0,0x64,0x25,0x38,0xAB,
+0x04,0x49,0x34,0xBA,0x72,0xF6,0x78,0xFD,0xEE,0xE5,0xFC,0x72,0xB1,0x46,0x8E,0xC8,
+0x1B,0xED,0x8F,0x01,0x70,0xE5,0x6B,0xEC,0xD5,0x1C,0x3E,0xB0,0x5A,0x88,0xAB,0x06,
+0x83,0xB1,0x4B,0xC5,0xFA,0x76,0xF8,0xF5,0x88,0x6B,0x14,0x9A,0x0B,0x8B,0xF9,0x05,
+0x43,0x21,0x1B,0x95,0x67,0x1C,0x92,0x02,0xC1,0x0C,0x3A,0xB4,0xA5,0x62,0xBE,0xEC,
+0x25,0x7E,0x22,0xAC,0x98,0x51,0xDF,0xB0,0x8D,0x4F,0x35,0xBB,0x15,0x27,0x4B,0xA9,
+0x40,0x3D,0x04,0x8A,0xDC,0x45,0xCB,0xE0,0x4F,0xDE,0x66,0xE8,0x0F,0xAB,0xDD,0x25,
+0x56,0x07,0x28,0xA6,0x13,0x2C,0xA2,0x46,0x68,0x24,0xBB,0x35,0x3D,0xA6,0xE2,0x28,
+0x37,0x60,0x2E,0xA0,0x62,0x3D,0xB3,0x26,0xE5,0x08,0x1A,0x94,0xAA,0xDD,0x0E,0x53,
+0x76,0x26,0x29,0xA7,0x92,0x59,0xD7,0xB2,0xC7,0xD6,0xE6,0x68,0x3B,0x8E,0xCC,0x00,
+0xD3,0xF5,0x5F,0xD1,0xBD,0x9F,0x11,0x5B,0x39,0x8B,0x45,0xCB,0x42,0x0C,0x37,0x82,
+0x45,0x0F,0x33,0xBD,0x1D,0xEB,0x65,0x8F,0xBC,0xB4,0xFF,0x71,0x58,0x80,0xA1,0x0E,
+0x8C,0x01,0xF4,0x7A,0xE3,0x48,0xC6,0xD2,0x82,0x69,0x1C,0x92,0x93,0x4F,0xA5,0xC1,
+0x10,0x79,0x10,0x9E,0x59,0xFF,0x71,0xDF,0x2A,0xAE,0x73,0xFD,0x12,0x18,0x73,0x96,
+0x99,0x27,0xC7,0x49,0x3E,0xF9,0x77,0xBE,0x91,0x4C,0x2A,0xA4,0xDC,0xE0,0x45,0x6E,
+0x7D,0xB2,0xB6,0x38,0x64,0xE1,0x6F,0xFC,0x74,0x27,0xA4,0x2A,0x3F,0xAE,0xE8,0x20,
+0xCE,0x5B,0xEC,0x62,0xB6,0x79,0xF7,0xB6,0x7F,0xCA,0x42,0xCC,0x35,0x26,0x6A,0xA8,
+0xF8,0x40,0xC1,0x4F,0xFB,0x98,0x16,0x1A,0x57,0x16,0xB6,0x38,0x62,0x0D,0x16,0x83,
+0xA4,0xA8,0x75,0xFB,0x61,0xC0,0x4E,0xD8,0xE9,0xD0,0xCE,0x40,0x87,0x6B,0x95,0xE5,
+0x54,0x0D,0x20,0xAE,0x97,0x78,0xF6,0x96,0x02,0x72,0x87,0x09,0x57,0x3F,0x11,0xB1,
+0x06,0x43,0x3C,0xB2,0xAA,0x66,0xE8,0xB5,0x8A,0x7A,0x07,0x89,0x3E,0xB9,0xFE,0x37,
+0x05,0x5F,0x23,0xAD,0xBA,0xAD,0x23,0x6E,0xF1,0x18,0x1E,0x90,0x17,0x2F,0x41,0xA1,
+0x01,0x7B,0x03,0x8D,0x47,0xF3,0x7D,0xCD,0x65,0x13,0x81,0x0F,0xA3,0x4A,0x90,0xC4,
+0x59,0xB7,0x97,0x19,0x36,0xE2,0x6C,0xAD,0x18,0xAB,0x44,0xCA,0x88,0xD4,0x25,0x5A,
+0xE7,0xE4,0x7A,0xF4,0x83,0x7C,0xF2,0x86,0xB3,0x92,0xD6,0x58,0x95,0x67,0x8B,0xE9,
+0xDD,0x53,0xF7,0x79,0xAF,0x47,0xC9,0x91,0x85,0x5C,0x2E,0xA0,0x5F,0xBF,0x99,0x31,
+0xED,0x66,0xF2,0x7C,0xD8,0x8A,0x04,0x2B,0xFD,0xC0,0xCA,0x44,0xBB,0xCE,0x0C,0x40,
+0x8E,0x0B,0xFC,0x72,0xEB,0x53,0xDD,0xC1,0x46,0x22,0x93,0x1D,0xA7,0x6A,0xB4,0xE4,
+0xE3,0xC0,0x5A,0xD4,0x6C,0xFA,0x74,0xEF,0x28,0xBF,0x60,0xEE,0x20,0x15,0x4C,0x9B,
+0x03,0x71,0x0B,0x85,0xEF,0x9C,0x12,0x0A,0x1C,0x60,0x8B,0x05,0x48,0x84,0xB5,0x0A,
+0xA8,0x04,0xD5,0x5B,0xA4,0xA1,0x2F,0x7C,0x54,0xE8,0x4B,0xC5,0xE6,0x6D,0xF2,0xE3,
+0xD7,0xD1,0x7F,0xF1,0x1A,0xD9,0x57,0xBA,0xF6,0x2D,0x2C,0xA2,0x6A,0x8D,0x9E,0x03,
+0x5D,0x93,0xB7,0x39,0xCE,0x9D,0x13,0x2A,0xF7,0xC2,0xC2,0x4C,0xF7,0x7E,0xF0,0xF0,
+0xFA,0x4A,0xC9,0x47,0x05,0x3B,0xB5,0x47,0x63,0xC9,0x5D,0xD3,0x73,0x1E,0x14,0x90,
+0xC7,0xC5,0x7B,0xF5,0x9D,0x70,0xFE,0x94,0x87,0x4D,0x3D,0xB3,0xB9,0xC6,0x06,0x48,
+0x52,0x23,0x08,0x86,0x0A,0x12,0x9C,0x61,0x56,0xF9,0x58,0xD6,0x68,0x85,0x94,0x0B,
+0x14,0x5D,0x30,0xBE,0x20,0xF5,0x7B,0xAC,0x9C,0x7B,0x10,0x9E,0x11,0x07,0x6F,0x89,
+0x1E,0xDF,0xB8,0x36,0xDE,0x56,0xD8,0xF1,0x75,0xC8,0x4A,0xC4,0xFF,0xFE,0x78,0x70,
+0xDA,0x6B,0xC8,0x46,0xEC,0x61,0xEF,0xF4,0xA0,0xB7,0xE0,0x6E,0x1F,0xAF,0xC9,0x21,
+0x65,0x2E,0x32,0xBC,0x17,0xE3,0x6D,0x8D,0x29,0x50,0x8E,0x00,0x38,0x91,0xD0,0x1F,
+0xCB,0x69,0xDB,0x55,0x3C,0xEA,0x64,0xAF,0x35,0x53,0x91,0x1F,0xCF,0xFB,0x4D,0x75,
+0xF0,0xC8,0x41,0xCF,0xAE,0xA9,0x27,0x7E,0x7A,0xEE,0x63,0xED,0x51,0x17,0x3F,0x99,
+0xBC,0x34,0xF1,0x7F,0x44,0x0E,0x80,0x33,0x96,0x79,0x18,0x96,0x29,0x82,0xD2,0x0C,
+0x23,0x50,0x0A,0x84,0x9F,0x63,0xED,0x85,0xCD,0xD4,0xEE,0x60,0xE9,0xD2,0x42,0x5C,
+0x63,0x00,0x1A,0x94,0xD7,0xA3,0x2D,0x0D,0xBF,0x4A,0x02,0x8C,0x70,0x01,0x08,0x8F,
+0xA2,0x86,0x5D,0xD3,0xA7,0x5C,0xD2,0x82,0xE6,0xF6,0xE7,0x69,0xEB,0xDA,0x48,0x54,
+0x6F,0xAC,0xBA,0x34,0xA3,0x93,0x1D,0x49,0x5C,0xFB,0x50,0xDE,0xA9,0xC2,0x12,0x4C,
+0x39,0xC6,0x86,0x08,0x30,0x3E,0xB0,0x77,0xF3,0x09,0x0D,0x83,0x8A,0xDC,0x2F,0x52,
+0x4B,0xA9,0x9B,0x15,0xC3,0xA7,0x29,0x1D,0x19,0x44,0xAA,0x24,0x31,0x06,0x4E,0x88,
+0xB3,0x84,0x4E,0xC0,0xDB,0x77,0xF9,0xD5,0xF4,0x3C,0x3F,0xB1,0x9F,0xEF,0x09,0x61,
+0xC6,0xD3,0x6C,0xE2,0x03,0xE7,0x69,0x9D,0xD6,0xE2,0xC3,0x4D,0xA0,0x55,0x8C,0xDB,
+0xDB,0x7D,0xDF,0x51,0x2D,0xCF,0x41,0x9B,0x3A,0x75,0xB8,0x36,0x28,0x95,0xC4,0x1B,
+0x2F,0xFC,0xAA,0x24,0x22,0xE6,0x68,0xBD,0xAD,0x80,0xDA,0x54,0xD9,0xD7,0x77,0x59,
+0xC4,0xD9,0x64,0xEA,0xC2,0x49,0xC7,0xF2,0xCF,0xC5,0xFD,0x73,0xD1,0x57,0xFF,0xD9,
+0xB8,0x10,0xD1,0x5F,0xBB,0x43,0xCD,0x81,0x2C,0x74,0xAF,0x21,0x9E,0xF8,0x1F,0x76,
+0x41,0x2B,0x13,0x9D,0x58,0x11,0x9F,0x30,0x6E,0xFE,0x67,0xE9,0x36,0x39,0x76,0xB7,
+0x89,0x33,0xC3,0x4D,0x8F,0xA8,0x26,0x5E,0x15,0x9C,0x7E,0xF0,0x97,0x6F,0x81,0xE1,
+0xC3,0xE1,0x5B,0xD5,0x80,0x81,0x0F,0x78,0x1E,0x71,0x98,0x16,0x4E,0xAC,0x9B,0x22,
+0x34,0x7C,0x31,0xBF,0xCA,0x52,0xDC,0xE1,0xA6,0x6D,0x3C,0xB2,0x84,0x74,0x89,0xFA,
+0xA6,0xA2,0x7D,0xF3,0x32,0x2D,0xA3,0x66,0xB0,0x6C,0x2B,0xA5,0xA1,0x42,0x9A,0xCC,
+0x0E,0xCB,0xBC,0x32,0x5A,0x02,0x8C,0x21,0xB8,0x7F,0x30,0xBE,0x3A,0x99,0xDA,0x17,
+0x32,0x52,0x19,0x97,0x24,0x3A,0xB4,0x67,0xB9,0x90,0xDE,0x50,0x55,0x37,0x1B,0xB9,
+0x07,0x55,0x2B,0xA5,0xEA,0xBD,0x33,0x2E,0x3B,0x9A,0x56,0xD8,0xEA,0xCD,0x5E,0x43,
+0x00,0x6D,0x14,0x9A,0xD4,0x5E,0xD0,0xF3,0xF8,0xE4,0xEB,0x65,0x19,0x87,0xE7,0x09,
+0x27,0xE2,0xCC,0x89,0x19,0x53,0xED,0xDC,0x0D,0xC8,0xA9,0x03,0x68,0x0F,0xAD,0x05,
+0xB6,0x73,0xA4,0x70,0xF2,0x8C,0xD9,0x37,0x6B,0xAE,0x2A,0xE6,0x39,0xEF,0xFC,0xB4,
+0x5F,0x9A,0x0A,0x37,0x32,0x04,0x91,0xF7,0x56,0x93,0x61,0x90,0xE7,0x44,0x22,0xC1,
+0xBF,0x7A,0x86,0x5B,0x55,0xC1,0x33,0x90,0x2E,0xEB,0xDF,0x56,0x4D,0x3B,0x88,0x14,
+0x55,0x90,0x79,0x4E,0xAF,0x7E,0x76,0x6A,0x8B,0x4E,0x46,0x6A,0x48,0x0B,0x8D,0x21,
+0x8D,0x48,0xB3,0x5C,0x57,0xB0,0x40,0x92,0xB0,0x75,0x6A,0x7D,0xC5,0x31,0x00,0x96,
+0xFC,0x39,0x57,0xC9,0xB3,0x2C,0x38,0x76,0x7D,0xB8,0x1D,0xC7,0xC0,0x01,0x05,0xA3,
+0x58,0x9D,0x4B,0x71,0xEA,0xCE,0x83,0x2F,0xA4,0x61,0x2E,0x2D,0xCE,0x62,0x0B,0xCE,
+0x8B,0x4E,0xD2,0x3B,0x7E,0x96,0x4F,0xBB,0x91,0x54,0x6F,0x59,0x0E,0xEA,0xCB,0x86,
+0x1D,0xD8,0xFB,0x84,0x67,0xF4,0x34,0xA2,0x5A,0x9F,0x7F,0x82,0x11,0xE9,0xD4,0x9A,
+0x78,0xBD,0x4F,0x55,0xF8,0xFF,0xA0,0x3D,0x04,0xC1,0x82,0x21,0x31,0xED,0xF4,0xBE,
+0xE6,0x23,0x64,0xE0,0x3D,0x47,0xDD,0xF8,0x15,0xD0,0xF3,0x41,0xA5,0xB5,0x60,0x72,
+0x14,0xD1,0xD9,0xAF,0x3B,0x26,0xBA,0xFE,0x8E,0x4B,0x73,0x5A,0xDE,0x22,0x1B,0x9E,
+0x3F,0xFA,0x8E,0xD3,0xCF,0xFA,0x92,0x0A,0x6F,0xAA,0x3E,0xF6,0xF3,0x14,0x36,0x85,
+0x59,0x9C,0x6B,0x50,0xB7,0x3C,0x2C,0x72,0x37,0xF2,0xA4,0x34,0x47,0x48,0x82,0x6D,
+0x0D,0xC8,0xBB,0xD4,0xFE,0x9E,0xC7,0x3B,0x8F,0x4A,0x52,0x7A,0x12,0xB8,0xD7,0xC8,
+0x7D,0xB8,0x7F,0x60,0x65,0x85,0x47,0xA0,0xBF,0x7A,0x26,0x3E,0xC6,0x60,0x03,0xC4,
+0x2A,0xEF,0xFE,0xB6,0x0A,0x42,0xEF,0xCF,0x08,0xCD,0x9C,0x33,0x22,0xFC,0xE7,0xBC,
+0xD2,0x17,0x30,0x80,0x53,0xA0,0x54,0x96,0x0E,0xCB,0xFB,0x52,0xF5,0x75,0x30,0xE2,
+0x9C,0x59,0xD3,0x2D,0xDD,0xCB,0xB1,0x18,0x16,0xD3,0xA1,0x10,0x84,0x91,0x41,0x77,
+0xEF,0x2A,0x46,0xCB,0x63,0xE4,0x20,0xA6,0xCA,0x0F,0xA7,0xCA,0x1C,0xDB,0xD9,0xA5,
+0xBC,0x79,0xD7,0x09,0x9F,0x3A,0x02,0x5A,0xAE,0x6B,0x57,0x5E,0x1B,0x9A,0xDE,0xE3,
+0x3E,0xFB,0xAE,0xF2,0x3C,0x67,0xFC,0xF9,0x68,0xAD,0x78,0xB7,0x6D,0x3F,0xA8,0x30,
+0xB2,0x77,0xB4,0x64,0x86,0x58,0x79,0x43,0x1C,0xD9,0xD8,0x63,0x01,0xA9,0xC4,0xCA,
+0x50,0x95,0x49,0x7B,0x43,0xE0,0x04,0x86,0xEB,0x2E,0xA2,0xEE,0x29,0xAF,0xEC,0xE4,
+0x15,0xD0,0xF9,0x8E,0x4C,0xA3,0x48,0x89,0xA6,0x63,0x5D,0x5C,0x10,0xC9,0xD5,0xBB,
+0x99,0x5C,0xE3,0x18,0x1F,0x32,0x8A,0xDA,0xB2,0x77,0x19,0x0C,0x36,0xAC,0xF3,0xF8,
+0x94,0x51,0xD1,0x27,0xC2,0xC8,0xAD,0x07,0xDB,0x1E,0xD6,0xAA,0x1A,0xBA,0xDF,0xC2,
+0x17,0xD2,0x88,0xFD,0x27,0x74,0xF4,0xE2,0x13,0xD6,0x94,0x20,0x87,0xC0,0x42,0x25,
+0x74,0xB1,0x5D,0x4B,0x85,0x09,0x2B,0x40,0x01,0xC4,0xB7,0x11,0x06,0xE8,0xC3,0x8C,
+0xBA,0x7F,0xB6,0x6E,0x47,0xF0,0x10,0x82,0x12,0xD7,0xB5,0x00,0xBD,0xF7,0x78,0x28,
+0xB9,0x7C,0xE7,0x3C,0x6D,0x87,0x4D,0xA8,0x81,0x44,0x3F,0x19,0x79,0x6F,0xBC,0x74,
+0xAB,0x6E,0xD6,0x1F,0x49,0x93,0x7D,0x8C,0xF5,0x30,0x9F,0xCD,0x8E,0xE2,0x4B,0x0E,
+0x05,0xC0,0xB9,0xDE,0xA7,0x7C,0x7C,0x62,0xCD,0x08,0xE1,0x8B,0x2B,0xDE,0xEE,0x97,
+0xFF,0x3A,0x06,0x9B,0x2F,0x76,0xFE,0xEA,0x4A,0x8F,0x2F,0xC2,0x19,0xEB,0xDC,0x90,
+0xB5,0x70,0xF5,0x22,0x92,0x08,0x3D,0x57,0xA9,0x6C,0x11,0x1F,0x26,0xEC,0xE3,0xA8,
+0x5D,0x98,0x7B,0x44,0x07,0x70,0xD0,0xC2,0x5F,0x9A,0x4A,0xB2,0xF1,0x65,0x34,0xF6,
+0x9E,0x5B,0xA2,0x5E,0xE1,0x9D,0xDB,0x24,0x76,0xB3,0x45,0x94,0x69,0x2F,0xAC,0x24,
+0x46,0x83,0x68,0x4C,0x45,0x81,0x63,0x80,0xA5,0x60,0x0F,0x0D,0x03,0xD8,0xC6,0xB9,
+0x70,0xB5,0x4D,0x5F,0x52,0x80,0x75,0x97,0xDA,0x1F,0xF7,0x8A,0x4F,0x4A,0x8A,0x67,
+0xE5,0x20,0x35,0xB2,0xA3,0x6C,0x68,0x66,0x11,0xD4,0xE7,0x51,0x98,0xC3,0x5D,0x39,
+0x65,0xA0,0x3D,0x3A,0x84,0x29,0x0A,0x41,0xBE,0x7B,0x07,0x1E,0x56,0x28,0x93,0x1C,
+0xCA,0x0F,0x72,0xDA,0xD6,0x98,0xE9,0x13,0xB4,0x71,0x7E,0x6D,0xE3,0x54,0x26,0xD5,
+0x0B,0xCE,0xDA,0xB3,0x1E,0x12,0xAB,0xDB,0xE6,0x23,0x9D,0xDC,0x21,0xAD,0xE4,0xEE,
+0x34,0xF1,0xDD,0x8B,0xD3,0xA8,0xDC,0x16,0x50,0x95,0x06,0xF1,0xA9,0xA7,0x6C,0x6C,
+0xDD,0x18,0x73,0xCC,0x46,0xD0,0x31,0x83,0x80,0x45,0x1E,0x39,0x7C,0x5F,0xB9,0x41,
+0x67,0xA2,0x4C,0x49,0xBA,0x0E,0x13,0x7F,0x10,0xD5,0xC6,0x71,0x5E,0x2A,0x9B,0x16,
+0xA7,0x62,0xC4,0x01,0xC1,0x99,0xFF,0x04,0x38,0xFD,0xE8,0x77,0xED,0x37,0x28,0xB8,
+0x33,0xF6,0x9C,0xCD,0x7B,0xA6,0x7A,0xBE,0x54,0x91,0x12,0xE1,0x28,0x8F,0xED,0xC5,
+0xE8,0x2D,0x07,0x8D,0x9E,0x1A,0x23,0x5B,0xAB,0x6E,0x62,0x6E,0x6F,0x4E,0xAA,0x43,
+0xF0,0x35,0x45,0xD7,0x29,0x17,0x99,0xEC,0x64,0xA1,0x66,0xA5,0x88,0x83,0x4D,0x69,
+0xEE,0x2B,0x66,0xEA,0x74,0xE5,0x36,0xB1,0xC9,0x0C,0xF5,0x9B,0xB4,0xD5,0x71,0x03,
+0xC9,0x0C,0x23,0x88,0xE8,0xBF,0xF0,0x2D,0x1D,0xD8,0xF9,0x43,0xE9,0x27,0x2C,0xAC,
+0x25,0xE0,0xBD,0xFA,0x1A,0x02,0xBF,0xDF,0x5E,0x9B,0x6B,0x92,0x73,0x1C,0xB6,0x0D,
+0xB0,0x75,0xC5,0x17,0x61,0x95,0x53,0xA4,0xF9,0x3C,0x81,0xDF,0xC3,0x50,0x06,0xF1,
+0xE0,0x25,0x05,0x87,0x97,0x38,0x08,0x52,0x94,0x51,0x5A,0x69,0x38,0xCF,0xFD,0x95,
+0x35,0xF0,0xFD,0xAA,0x69,0x97,0x59,0xAC,0x02,0xC7,0xE5,0x40,0x02,0xF8,0xC7,0x98,
+0xCC,0x09,0x13,0xBD,0x33,0x24,0xB0,0xF6,0xA1,0x64,0x1B,0x1D,0x8A,0xF2,0x4F,0x1A,
+0x9D,0x58,0xF3,0x0C,0x99,0x5B,0x65,0x5C,0x96,0x53,0x29,0x18,0xFA,0x36,0x3F,0xAE,
+0xA3,0x66,0xD4,0x15,0xF7,0xBC,0xEC,0x32,0x14,0xD1,0xD2,0x61,0x00,0x89,0xC5,0xEB,
+0x4C,0x89,0x1B,0x35,0xBB,0x2E,0x32,0x7E,0x6A,0xAF,0x0B,0xC6,0x85,0xB1,0x40,0x56,
+0x2C,0xE9,0x9F,0xD1,0x24,0x25,0xA6,0xE1,0xCC,0x09,0xC0,0xAB,0xFB,0x16,0x3E,0x8F,
+0xF4,0x31,0x55,0xC3,0x44,0xA1,0x42,0x81,0x87,0x42,0x58,0x78,0x49,0x2B,0x8C,0x00,
+0xB7,0x72,0x84,0x51,0x21,0x15,0x93,0xE4,0xE5,0x20,0xCF,0x8D,0x3A,0xBE,0xFF,0xE6,
+0x48,0xC1,0x3E,0xFC,0xCF,0x98,0x54,0xE0,0x81,0x58,0xEC,0x6E,0x2C,0xCE,0x55,0x98,
+0x2F,0x04,0x9C,0x9B,0x43,0xF4,0xB4,0x00,0xFE,0xF2,0x46,0xBB,0x54,0x70,0x93,0xE0,
+0x63,0x96,0x42,0xD7,0x09,0x26,0x2C,0x98,0xCA,0xD7,0x63,0xAA,0x77,0x06,0xC6,0xC3,
+0x88,0x49,0x76,0x3C,0x61,0xDF,0xBD,0x09,0x2A,0x86,0x32,0x1B,0x11,0x85,0x23,0xA5,
+0xC9,0xE9,0x97,0x7D,0x92,0x66,0xF7,0x43,0xC4,0x7F,0xCB,0x0C,0x07,0xB2,0x02,0xB3,
+0x90,0x0B,0x2C,0x24,0x8E,0xDE,0x53,0xE7,0xA7,0x71,0xC5,0x61,0xDE,0x81,0xE8,0x6A,
+0xD5,0xBB,0xD9,0x61,0xBC,0xE1,0x5E,0xEA,0xCE,0xF7,0x43,0x8E,0xF1,0xE9,0xAF,0x45,
+0x2D,0x75,0xEF,0x99,0x76,0xF3,0x86,0x32,0xF4,0x7A,0xCE,0x39,0xCA,0xC5,0xB8,0x7E,
+0x82,0x3A,0x0F,0x36,0x8A,0xFA,0x73,0xC7,0x28,0x8E,0x3A,0x11,0x7E,0x2D,0xE4,0xCA,
+0x47,0x82,0x72,0xF3,0xA1,0x4F,0xED,0x59,0x70,0x1A,0xAE,0xDD,0x6F,0x5C,0x84,0xDB,
+0x04,0x53,0xE0,0xB0,0x17,0x94,0x80,0x34,0x2F,0xB1,0x05,0x29,0xEB,0xC0,0x9C,0x5F,
+0x1D,0x31,0x9B,0xA9,0x3E,0x2B,0x16,0xA2,0x2C,0xAE,0x1A,0x35,0x20,0xD0,0x47,0x94,
+0xCD,0xF9,0x83,0x79,0xAE,0xFF,0x52,0xE6,0x8D,0xF8,0x4C,0xC2,0x4D,0x0B,0xF1,0xF9,
+0x84,0x5B,0x68,0x30,0x7E,0x7B,0x06,0xB2,0x7D,0xAD,0x19,0x67,0xF5,0xFD,0xBF,0x41,
+0x41,0xE3,0x15,0xF5,0x1C,0x00,0x1F,0xAB,0xE7,0x61,0xD5,0x31,0xF4,0xDC,0x9F,0x40,
+0xB5,0x3F,0x3D,0x01,0x4B,0x7C,0x34,0x80,0xD1,0x4C,0xF8,0x2A,0x15,0x91,0x33,0xA1,
+0x29,0x65,0xFB,0x9D,0xF5,0x2F,0xD9,0x6D,0xB0,0x4A,0xFE,0x4D,0x74,0x54,0x97,0xC0,
+0xA7,0x0E,0x1E,0x13,0x16,0x82,0x97,0x23,0x54,0x3B,0x8F,0xD8,0x6C,0x0E,0xD5,0xD8,
+0x1F,0x40,0xE8,0xAB,0xBA,0xCF,0x76,0xC2,0xA5,0x79,0xCD,0x6B,0xC5,0x89,0xFB,0x71,
+0x70,0x87,0x40,0xC4,0x3B,0x19,0x21,0x95,0x39,0x9D,0x29,0x13,0x72,0x33,0xF6,0xC6,
+0x46,0xA2,0x53,0xF2,0x6B,0x5D,0x35,0x81,0xFA,0xD2,0x66,0x9F,0x12,0xD7,0x72,0xA6,
+0xFC,0x9D,0xD6,0x48,0x71,0xCB,0xB9,0x0D,0x6C,0xBE,0x0A,0x65,0x66,0x77,0xA6,0xD2,
+0x19,0x21,0x8F,0xAD,0x83,0x64,0xE4,0x50,0x1E,0xA3,0x17,0x0A,0xB0,0x08,0x0F,0x04,
+0xE5,0xFF,0xAD,0x51,0x12,0xA6,0xB7,0x03,0x5F,0xA4,0x10,0x4C,0xD4,0xF8,0x9B,0x60,
+0x65,0xF7,0x25,0xD1,0x26,0xB7,0x92,0x26,0x69,0x89,0x3D,0x57,0xC8,0xB6,0xC9,0x7C,
+0xB8,0x0D,0x02,0x0C,0x14,0x88,0x9F,0x2B,0x7F,0xA5,0x11,0x6D,0xA1,0x79,0x6F,0x15,
+0x39,0x25,0xAB,0x8D,0x8C,0xD4,0x5B,0xEF,0x6A,0x96,0x22,0x4B,0x91,0x0D,0x2B,0x25,
+0x36,0x66,0xE7,0x82,0x3C,0x21,0x1E,0xAA,0x0C,0xAF,0x1B,0x14,0xDC,0xF2,0x99,0x68,
+0x3D,0x35,0xBF,0x89,0x73,0xC1,0xB1,0x05,0x32,0x02,0xB6,0x87,0x68,0x1A,0xC5,0xDC,
+0x17,0x42,0xE2,0xA3,0x22,0x93,0xB2,0x06,0xAA,0xC6,0x72,0xDB,0xFB,0x90,0xDC,0x4F,
+0x5D,0xB1,0x5B,0xE9,0x4D,0x52,0x1C,0xA8,0x05,0x38,0x8C,0x8A,0x69,0x3B,0xE5,0xDD,
+0xFF,0xCC,0x84,0x4B,0x98,0xE4,0x7F,0xCB,0x2D,0xB9,0x0D,0x23,0x7B,0x18,0xD4,0xCF,
+0x55,0xB3,0x51,0xE1,0xC3,0x34,0xF4,0x40,0x2E,0xA6,0x12,0x3F,0x30,0x80,0x07,0x84,
+0xE8,0xCD,0x92,0x5C,0x30,0x8D,0xBE,0x0A,0x29,0x99,0x2D,0x07,0xD3,0xBE,0xDA,0x67,
+0x33,0x56,0xD2,0x87,0x13,0xB0,0xA0,0x14,0x27,0x31,0x85,0xA1,0x8F,0x30,0x08,0x3B,
+0xDD,0xB9,0xD3,0x69,0x7C,0x71,0x0E,0xBA,0x1B,0x94,0x20,0x38,0xB7,0x4E,0x4E,0x03,
+0x3F,0x44,0xCC,0x8B,0xAD,0xE3,0x4D,0xF9,0x1D,0xBC,0x08,0x16,0xDF,0xA0,0xC8,0x6B,
+0x28,0x45,0xDA,0x9C,0x88,0xF0,0x7B,0xCF,0x8F,0xF0,0x44,0xC8,0xA0,0x58,0x4F,0x14,
+0x7D,0xB5,0x7F,0xC9,0xBE,0xEB,0x56,0xE2,0xA0,0x4E,0xFA,0x59,0x25,0xE5,0x77,0x91,
+0x9B,0x58,0x74,0x2F,0x67,0xF1,0x95,0x21,0xEA,0xD6,0x62,0x8B,0x0C,0xEA,0x51,0xB8,
+0xAC,0x5D,0x46,0x18,0xB7,0x75,0xC1,0x75,0x91,0x5C,0xE8,0x7A,0xCE,0xD1,0xA8,0x7A,
+0x64,0xD7,0x04,0xD0,0x1F,0x1C,0x00,0xB4,0x68,0x9E,0x2A,0x41,0x9C,0x32,0x19,0x28,
+0xD9,0xA9,0xC7,0x6D,0xF0,0x1D,0xEE,0x5A,0x06,0x27,0x93,0x96,0x6B,0x48,0x94,0xDF,
+0xFE,0xEC,0xA5,0x4A,0xF8,0x95,0x6E,0xDA,0xED,0xE9,0x5D,0xB3,0xC4,0xA8,0xDB,0x70,
+0xC0,0xCB,0xBC,0x74,0x89,0xE6,0x6C,0xD8,0xEF,0xE1,0x55,0xB9,0x6A,0x69,0xB4,0xDE,
+0xBB,0x5C,0x50,0x0F,0x01,0xAE,0xAC,0x18,0xF2,0x52,0xE6,0x17,0x42,0x47,0xB2,0xF6,
+0xA9,0x6D,0x73,0x1D,0x18,0x24,0x3F,0x8B,0x62,0x16,0xA2,0xC3,0x2A,0xA9,0x34,0x9E,
+0x3C,0x15,0x9E,0x88,0xB6,0x63,0xD6,0x62,0x9A,0xC3,0x77,0xEE,0xFA,0xB1,0xFC,0x4E,
+0x53,0xD2,0x36,0xE7,0x80,0x78,0xFB,0x4F,0x46,0x37,0x83,0xC6,0x1E,0xC9,0x60,0xAA,
+0x0E,0x20,0x99,0xBA,0xA3,0x45,0xE5,0x51,0x10,0x0B,0xBF,0xAC,0xB3,0x5A,0x5E,0x07,
+0x01,0x63,0xD5,0xB5,0x59,0x62,0x38,0x8C,0x4A,0x97,0x23,0x6A,0x2E,0xBD,0x24,0x9A,
+0xE4,0xDF,0x8C,0x50,0xC2,0x22,0xE3,0x57,0x8B,0xD0,0x64,0xEC,0xD1,0xCD,0xAB,0x65,
+0x1B,0x50,0xFC,0xAF,0x00,0xB8,0xBB,0x0F,0x95,0x7C,0xC8,0x5E,0x83,0x2E,0x1A,0x37,
+0xED,0xFD,0xA7,0x59,0xC0,0x28,0xEB,0x5F,0x0A,0x87,0x33,0x3A,0xEE,0xF5,0xAC,0x5A,
+0x92,0x7A,0x5F,0x26,0xE6,0x27,0xC2,0x76,0xE2,0x56,0xE2,0x03,0x67,0x56,0x86,0xD3,
+0x60,0xC7,0x10,0xD4,0x78,0x55,0x2E,0x9A,0xD9,0xCC,0x78,0xA2,0x24,0xC4,0x57,0x90,
+0xE3,0x9E,0xCA,0x57,0x36,0xA3,0x96,0x22,0xF3,0x45,0xF1,0x01,0xEC,0x86,0xDD,0x58,
+0x8D,0x79,0x43,0x39,0x11,0xBA,0xA8,0x1C,0x4C,0xBF,0x0B,0x44,0x6E,0x7D,0xA4,0xDA,
+0x13,0x52,0xF6,0xA7,0x38,0x05,0x3E,0x8A,0x3D,0xBD,0x09,0x37,0x78,0x4A,0x85,0xCC,
+0x49,0xE1,0x1F,0xFD,0xD6,0x12,0xC7,0x73,0x37,0x35,0x81,0xB5,0xDB,0xB4,0xD8,0x6F,
+0x3E,0x64,0xED,0x8A,0x90,0x6C,0xFF,0x4B,0xEE,0xF6,0x42,0xAF,0xFD,0xF7,0xBD,0x49,
+0x5B,0xD0,0x3C,0xEF,0x41,0xFE,0xBC,0x08,0x7B,0x85,0x31,0x49,0x9F,0x60,0x48,0x2B,
+0xC1,0xEB,0x9D,0x75,0xDE,0x9A,0x47,0xF3,0x74,0x3A,0x8E,0xF9,0x10,0xA4,0x03,0xA4,
+0x5E,0xE0,0x09,0xEA,0x5A,0x7E,0x27,0x93,0xD3,0x44,0xF0,0x20,0xB6,0x6F,0x6E,0x02,
+0xF1,0xA2,0xAA,0xBD,0x23,0x2B,0x95,0x58,0xBA,0xAB,0xFF,0xB2,0x35,0x25,0x2D,0xF6,
+0x08,0x33,0x3B,0xD5,0xC8,0xC0,0x4A,0x6C,0xDC,0x28,0x1A,0xD4,0x84,0x74,0x7C,0x16,
+0xDA,0xAB,0xA3,0x9F,0x84,0x8C,0xD8,0xB2,0xFF,0x5E,0x4F,0xF7,0x95,0x51,0x59,0x22,
+0xB6,0x4B,0x43,0x13,0xE3,0xEB,0x1D,0x10,0x87,0xE0,0x89,0x8F,0x40,0xFB,0xF3,0x5D,
+0xDD,0x99,0x91,0xAA,0x86,0x8E,0xA9,0xC1,0x61,0xEB,0x64,0x69,0x17,0xD9,0xD1,0x28,
+0xCF,0x41,0x49,0x60,0x7E,0x76,0x67,0xF7,0x5A,0xC7,0x73,0x52,0xA0,0x54,0x5C,0x12,
+0xF0,0x4C,0x44,0x52,0x3B,0x33,0xD7,0x02,0x75,0xAF,0x34,0x7D,0x4F,0xD2,0xDA,0x7B,
+0x48,0xE8,0xE0,0x4E,0x62,0x6A,0x35,0xB9,0xAC,0x9C,0xDE,0xA4,0x22,0xDC,0xD4,0x18,
+0x05,0x09,0x01,0xE2,0xB6,0xBE,0xED,0xB5,0x8B,0xFE,0x9B,0x83,0x1B,0x0D,0x05,0xF0,
+0xBA,0x9F,0x97,0xCB,0xAF,0xA7,0x8F,0xCE,0x40,0xEE,0x40,0x48,0x07,0x12,0x1A,0xF3,
+0x61,0xF2,0xFA,0x7D,0xEC,0xE4,0x5E,0x5C,0xC4,0x72,0x58,0xCC,0xF3,0xB9,0xB1,0xAC,
+0xD4,0x6C,0x64,0x56,0x29,0x21,0xE6,0x21,0xD5,0x03,0x38,0xDD,0x3F,0x2D,0x25,0xF4,
+0x52,0x2B,0x23,0x97,0x1E,0x16,0xE3,0x13,0xBE,0xBF,0xEF,0xB6,0x04,0xEF,0xE7,0x0D,
+0x2E,0x00,0x08,0xC0,0xEA,0xE2,0x3F,0x3B,0x5F,0xF2,0x43,0x57,0x1F,0xC2,0xCA,0x3B,
+0x55,0x19,0x11,0xA2,0x2F,0x27,0x87,0x46,0x5E,0xD3,0x63,0x56,0x49,0x0E,0x06,0xA1,
+0xD1,0x4D,0x45,0x72,0x66,0x6E,0x25,0xAD,0xE6,0x25,0x2D,0xEE,0xEC,0x5B,0x53,0x51,
+0x37,0x3E,0x36,0xE7,0xDB,0xD3,0x5B,0x6E,0xD9,0x1D,0x2A,0xD1,0x3D,0x3E,0x36,0xE5,
+0xE1,0x69,0x61,0x66,0xB4,0xBC,0x9C,0xC6,0x6E,0xA7,0x27,0x66,0x45,0xDA,0xD2,0x79,
+0xAC,0x88,0x80,0xCA,0x0C,0x04,0xD2,0x30,0xC7,0x20,0x09,0xCF,0xF6,0x98,0x90,0x88,
+0x01,0xC6,0xCE,0x29,0x82,0x8A,0xB9,0xD5,0xDF,0x7A,0x4B,0xD7,0x63,0xE9,0xE1,0x6C,
+0x88,0xA8,0xA0,0xCE,0x4E,0x46,0x23,0x83,0x7F,0xD6,0x47,0x77,0x62,0x07,0x0F,0x83,
+0x4A,0xFB,0xF3,0x5F,0xB2,0xBA,0xFD,0xA1,0x1B,0x26,0xD3,0x13,0x24,0x00,0x08,0xC2,
+0xE5,0xA6,0xAE,0xAD,0x57,0x5F,0x41,0xF8,0xCD,0x59,0x7A,0xC5,0x4B,0x1D,0x15,0xB0,
+0x73,0x2A,0x22,0xB7,0xED,0xE5,0x7E,0x7D,0xB9,0xF9,0xAE,0xB1,0xB1,0x71,0x79,0x26,
+0x0F,0x01,0x09,0xE0,0x9D,0x95,0xBA,0xC9,0x77,0xDC,0x45,0x7F,0x3A,0x0C,0x04,0xD0,
+0xFA,0x44,0x4C,0x50,0x92,0x9A,0xF9,0x85,0x3A,0x23,0xF7,0x32,0x65,0x35,0x3D,0xB6,
+0xA6,0x80,0x88,0xC8,0x13,0x1B,0xD1,0x2C,0x0A,0x57,0xB3,0x02,0x43,0x06,0x0E,0xA3,
+0x99,0x8D,0x85,0xFA,0xCE,0xC6,0x2B,0x0B,0x63,0x98,0x15,0x6B,0x79,0x2A,0x22,0xB5,
+0xCA,0x60,0x68,0x44,0x54,0x5C,0x10,0xAA,0xD0,0x36,0x08,0xD8,0x0D,0x1A,0x12,0xF1,
+0x7C,0x03,0x0B,0x91,0xF6,0xFE,0x6D,0x75,0xC2,0x15,0x39,0xCA,0xA4,0x9B,0x93,0xD9,
+0xBD,0xAD,0xA5,0xFE,0xBC,0xB4,0x9E,0xCC,0x50,0xBE,0x00,0x58,0xF5,0x65,0x6D,0x76,
+0xEF,0xAE,0xA6,0xAF,0x96,0x9E,0xE9,0x91,0xC3,0x34,0x19,0xCB,0xA9,0xA1,0xA9,0xEE,
+0x5F,0x11,0x19,0xA0,0x76,0x7E,0x65,0xFD,0x1C,0x60,0x92,0x14,0x16,0x37,0x3F,0xC7,
+0x9E,0xBF,0xB7,0xCF,0x98,0x90,0x8A,0xFC,0x24,0x1E,0xD4,0x2C,0x8F,0x92,0x9A,0xFB,
+0xA3,0xA1,0xA9,0xEC,0x43,0x4B,0x11,0xBC,0x78,0x90,0x06,0x70,0x29,0x3A,0x32,0xF5,
+0x1A,0xEB,0xE3,0x1F,0xFE,0xF6,0x6F,0x7F,0x9B,0xAE,0xDB,0x93,0x11,0x05,0x0D,0xF2,
+0xDF,0x8A,0x82,0xBB,0x30,0x38,0x84,0x5A,0xA7,0xC4,0x8D,0xAF,0xA5,0x75,0x7D,0x36,
+0xC5,0x49,0x41,0x62,0xD6,0xDE,0x69,0x51,0x8E,0xCB,0xAB,0x86,0x77,0xED,0xE5,0x7C,
+0xDE,0x64,0x6C,0x54,0x83,0x8B,0x99,0xF4,0x0B,0x76,0x93,0x03,0xE6,0x53,0x5B,0x53,
+0xCD,0x52,0x5A,0x71,0x94,0x9C,0x98,0xE2,0x74,0x8E,0x14,0x7C,0x38,0x1F,0x17,0xC1,
+0xBB,0x71,0x79,0x24,0x55,0x5D,0x30,0x8B,0x6F,0x86,0x07,0x67,0x9D,0x4A,0x42,0x31,
+0x33,0xF1,0xF9,0x2C,0x72,0x7A,0x75,0xE9,0xC0,0x66,0x48,0xC8,0xB8,0x84,0x8C,0xDA,
+0x32,0x1F,0x17,0xC3,0xCF,0xC7,0x0B,0x2A,0x37,0x1C,0xC5,0x3F,0x6F,0x3D,0x35,0xB4,
+0x5B,0xDE,0xD6,0x6B,0x07,0x0F,0x81,0x68,0x65,0xFF,0x74,0x6D,0x54,0xFF,0xF7,0x4D,
+0x4D,0xC9,0xC1,0x6A,0x97,0x9F,0xC9,0xB0,0x51,0x9F,0x20,0x59,0xC0,0x60,0x68,0x46,
+0x0A,0x20,0x28,0xC4,0x02,0x0A,0xB1,0x5D,0x81,0x87,0xE8,0x89,0xED,0xB5,0xBD,0xBE,
+0x80,0xB3,0xBB,0xDD,0x10,0x18,0x80,0x7E,0xE9,0x69,0x6E,0xE1,0x39,0xF1,0xF9,0x2E,
+0xC8,0x73,0x7B,0x55,0x6B,0x63,0x17,0x92,0xC1,0x47,0x68,0xC9,0x97,0x42,0x4A,0x33,
+0x0C,0xFC,0xF4,0x1E,0x4F,0x47,0x03,0xA2,0x7A,0xE3,0x77,0x72,0xC2,0x73,0x7B,0x57,
+0x4C,0x27,0x2F,0x85,0xAA,0xA2,0xBF,0xFB,0x85,0x93,0xF8,0x8D,0x44,0x34,0x3C,0x96,
+0x6B,0xFA,0xF2,0x7F,0xA5,0xAD,0xFC,0xB7,0x18,0x74,0x82,0x10,0x82,0xA8,0xA0,0xCC,
+0x56,0xE4,0xEC,0x5C,0xF8,0xF0,0x0E,0x18,0xB5,0xE7,0xBC,0xBD,0xE8,0x94,0x9C,0x9A,
+0x7B,0x31,0x39,0xA4,0xCB,0xC3,0x1B,0x3E,0x8F,0xEA,0x8B,0x87,0x8C,0x6F,0x67,0x05,
+0x09,0xDD,0xD5,0x3A,0x39,0x31,0xA6,0x71,0xCC,0x78,0x5A,0xC4,0x2D,0xF5,0xFD,0x3E,
+0x06,0xF4,0xFC,0x1C,0x46,0x4E,0x21,0x89,0x45,0xDB,0x70,0x4D,0x14,0x24,0x2C,0xD6,
+0x96,0xA4,0xAC,0xDC,0xB0,0xB8,0x8C,0xD2,0x28,0x00,0xC6,0x20,0x70,0xDF,0xD7,0x49,
+0x3C,0xD8,0xD0,0x0A,0xE2,0xEA,0x3D,0x31,0x70,0x9A,0x04,0x78,0x9B,0x96,0x9E,0xEB,
+0x2B,0x21,0x29,0xE4,0xB8,0xB0,0x8E,0xD8,0xD3,0x64,0x59,0xDB,0x19,0x1E,0x16,0xE1,
+0x94,0xB7,0xBF,0xCD,0x26,0x2E,0xA5,0x6D,0xC5,0x53,0x78,0xCD,0x6A,0x1C,0x14,0x90,
+0x8D,0x89,0x81,0xEA,0x48,0x40,0x42,0xE4,0x47,0xA8,0x01,0x4F,0x2F,0xE6,0xEE,0x2F,
+0x50,0x38,0x30,0x86,0xF5,0xFD,0x3C,0x27,0x1D,0x41,0xB2,0x15,0x0E,0xE7,0xEF,0x0F,
+0xB4,0x58,0x50,0x02,0x6A,0x62,0x37,0xB3,0xBB,0x8A,0xDF,0xB3,0xD7,0x99,0x91,0xA8,
+0xD0,0xA3,0xAB,0x9D,0xF0,0xF8,0x0C,0x12,0x34,0x4E,0x94,0x3C,0x67,0x26,0x2E,0xA7,
+0x42,0xE0,0xE8,0x4C,0x95,0x9D,0xB8,0xC3,0x56,0xD9,0x61,0x5E,0x81,0x55,0x5D,0x32,
+0x92,0xE0,0x82,0x9D,0xB7,0xFE,0xB6,0xB9,0x94,0xA7,0xA8,0xC3,0x12,0x0A,0xE8,0x1D,
+0xDB,0x42,0x69,0xD4,0x67,0x7A,0xE2,0xED,0x64,0xF2,0xFD,0x66,0xAA,0xFC,0xA6,0xA5,
+0x1E,0xFA,0x14,0x11,0x05,0x01,0xFB,0xF4,0xFE,0x3E,0x31,0x30,0xAB,0xDD,0x86,0xA4,
+0xEA,0x26,0x3C,0xE5,0x52,0x7D,0xD0,0xDF,0xC8,0x13,0x1C,0x2B,0x4A,0x90,0x2A,0x45,
+0xDD,0x23,0x0E,0xD2,0x93,0xFB,0x97,0x98,0x31,0xD1,0xDE,0x10,0x21,0x2C,0xFD,0x2E,
+0x18,0x9B,0x73,0x17,0xB8,0x4E,0x09,0x06,0x69,0x45,0x4A,0xDC,0x30,0x5D,0x9D,0x3F,
+0x5B,0x4A,0xE1,0x54,0x0E,0x95,0x64,0x6B,0x36,0xEE,0xE1,0x28,0xB4,0xC1,0x85,0xBB,
+0x42,0x28,0x9A,0x4D,0x27,0x2A,0xF2,0xFD,0x35,0xF1,0xFE,0x34,0x7F,0xD1,0x5E,0x70,
+0x96,0xF0,0x96,0x99,0x8B,0x67,0x13,0x1C,0xDD,0x20,0x2F,0x0D,0x58,0xB3,0x1B,0x57,
+0xCF,0x12,0x2D,0xC0,0x97,0xDF,0xB7,0xB8,0xBE,0x2E,0x21,0x60,0x81,0x80,0xF1,0x8E,
+0x8A,0xA2,0xD8,0x85,0xA5,0xE0,0xBA,0xB5,0xD7,0xA8,0xA7,0x8F,0xAE,0xE8,0xB6,0xA1,
+0x72,0x6C,0xEE,0x7D,0x6F,0xF2,0x62,0x6D,0xED,0x25,0x2A,0x38,0x95,0xC4,0xA1,0x9A,
+0x17,0xD8,0x3F,0x18,0xD6,0x99,0xB0,0xBF,0x98,0x07,0x08,0x6F,0x73,0xCF,0x4C,0x7C,
+0x70,0x1D,0x9D,0x7F,0x5A,0xF5,0x50,0x5F,0xE7,0xAD,0xA2,0xBA,0x0B,0x71,0x8A,0x04,
+0x3C,0x8F,0x43,0x33,0x10,0x27,0xC8,0xC7,0xD3,0x88,0x87,0xAB,0x28,0x07,0xDF,0x27,
+0xD7,0x50,0x77,0xD8,0x78,0xDE,0x59,0x56,0x33,0xD9,0xD6,0x1A,0x4E,0x84,0x3A,0x41,
+0x62,0x2C,0xBE,0x6D,0x6A,0xC0,0x55,0x5A,0x2B,0x5D,0x52,0x86,0x37,0x1B,0xDC,0x38,
+0x48,0x5B,0xE3,0x47,0x3B,0x92,0x56,0x59,0xB3,0x99,0x96,0xDA,0xA4,0x91,0xC5,0xAB,
+0x02,0xA8,0x5A,0x0D,0x54,0x53,0xF8,0xF7,0x1C,0x67,0x68,0x8B,0x36,0x3A,0xFC,0x39,
+0xA0,0xD5,0x85,0xAF,0x81,0xE5,0x9B,0x94,0x34,0xE6,0xE9,0x22,0x24,0x19,0xCD,0x2B,
+0x3A,0xEE,0x24,0x35,0x3F,0xB6,0x76,0x79,0x70,0xD6,0xD9,0x56,0x97,0xB7,0xD0,0x98,
+0xE7,0x14,0x03,0xE8,0x0D,0x89,0x7B,0x74,0x66,0xFA,0xF5,0x6C,0xFE,0x78,0x76,0xF1,
+0x66,0x3C,0xAA,0x69,0x95,0xD5,0xBF,0xB0,0x73,0xC9,0xC6,0x4A,0xCE,0x0C,0x32,0xC1,
+0x69,0x7F,0xE6,0x66,0x25,0x20,0xFA,0xF5,0x15,0xF0,0xFF,0x15,0x83,0xF3,0x80,0x8C,
+0x19,0xBB,0x52,0x16,0x72,0x5C,0xD1,0xDE,0xE3,0x8D,0x82,0x9E,0x4D,0xD6,0x6B,0x42,
+0xA3,0x84,0xD7,0xAC,0x68,0xCA,0x5D,0x52,0x75,0xE1,0xEE,0x64,0x39,0x76,0xBF,0x36,
+0x46,0x38,0x8E,0x49,0x9A,0x65,0x00,0x0F,0x07,0xFC,0xF3,0x0B,0xEF,0x09,0x16,0xE0,
+0xBA,0xE6,0xAC,0xB5,0x0B,0xA7,0x53,0x5C,0x46,0xFB,0xF4,0x4D,0x8B,0xF9,0x82,0x84,
+0x76,0x7C,0xFA,0x79,0xEC,0x2E,0x3D,0x32,0xA9,0x15,0x1A,0x4C,0x2B,0x55,0x8E,0x24,
+0xF8,0x17,0x1F,0xF7,0x0F,0x83,0x73,0x7C,0x4D,0x64,0x6B,0xD9,0x33,0x0F,0xCC,0x3C,
+0x40,0x59,0xE9,0x4F,0xA3,0xCE,0x92,0x9D,0xBC,0x26,0x29,0x6A,0x9A,0x88,0xE2,0x95,
+0x2F,0x9E,0x41,0x20,0x22,0x18,0xC5,0xCA,0x20,0xC2,0xCD,0x12,0x2D,0x32,0xEF,0x22,
+0x9F,0xD2,0xBD,0x90,0x90,0xE7,0x88,0x87,0xF6,0xBE,0xB1,0xB8,0x35,0x68,0xAD,0x3A,
+0xE4,0x45,0x51,0xEB,0x18,0xAF,0x48,0x47,0xEB,0x0D,0x02,0x16,0x1D,0x46,0xAB,0x12,
+0xF6,0x74,0x72,0xF9,0x01,0x25,0xDB,0xD4,0x7B,0x49,0x46,0xC2,0x75,0xA8,0x2D,0x7A,
+0x63,0x0C,0x9F,0x6C,0xAF,0x62,0x32,0x3D,0x83,0x9C,0x93,0xEF,0xA5,0xB0,0xE5,0xAA,
+0xF3,0x44,0x47,0xFC,0xAE,0x74,0x25,0x2A,0x88,0x03,0x0C,0x7B,0x91,0xD0,0xB1,0x9E,
+0x3B,0xCE,0x05,0x34,0x06,0x1D,0xE4,0xEB,0x71,0xC1,0xCE,0x40,0xC3,0x33,0x00,0xCC,
+0x86,0xB0,0xC6,0x89,0xE9,0x1C,0x0A,0x05,0x1F,0x78,0x77,0x97,0x34,0x49,0x8D,0x3B,
+0xA1,0xF5,0xA4,0xAE,0xE1,0x94,0x8A,0x85,0xF4,0xB6,0xB9,0xB2,0x9B,0xA9,0xC2,0x94,
+0x60,0x5D,0xCD,0x6F,0xB4,0xE2,0xA9,0xA6,0x04,0xE3,0xEC,0x17,0x80,0xA1,0xD1,0x8F,
+0x77,0x5C,0xDB,0x78,0x91,0xF1,0x9F,0x90,0x96,0xAF,0xA0,0xC9,0xFF,0x59,0x56,0xF0,
+0x22,0xAC,0x7E,0x2D,0xA7,0xEA,0xB2,0xBD,0xB9,0x11,0x1E,0x58,0x7A,0xE4,0x6E,0x75,
+0xC4,0x41,0x75,0xCB,0x7E,0xF0,0x71,0x7E,0xF3,0x89,0x86,0x8A,0x53,0xEB,0x48,0x5C,
+0x0A,0xAA,0x50,0x05,0xDA,0x35,0x10,0x1F,0x37,0xF9,0xF6,0x3E,0x6F,0x81,0x1E,0x60,
+0xB7,0xD4,0x93,0xB8,0x29,0x8C,0x5A,0x55,0x30,0xC6,0xC9,0x06,0x8C,0xBF,0xC3,0x83,
+0x6C,0x4F,0xD3,0x63,0x0A,0xB1,0x44,0x4B,0x3E,0x6E,0x61,0xA0,0xD0,0x31,0x11,0xDF,
+0x82,0xA0,0xD2,0x8D,0x65,0x70,0xEA,0xE5,0x02,0xCB,0xC4,0x39,0xE8,0x4F,0x57,0xE7,
+0x61,0x7D,0xEC,0x6E,0x89,0x6D,0x1B,0x14,0xF7,0xA9,0xA6,0xAE,0xA2,0xF6,0xA4,0xAD,
+0x04,0xC9,0x3D,0x0B,0x58,0xFF,0x58,0x57,0x62,0xDA,0xD5,0x48,0xC0,0x61,0x51,0xCF,
+0x9E,0xF2,0x9C,0x91,0xC7,0x9B,0xA3,0xAC,0x6D,0x65,0x6A,0xF8,0x4F,0xA5,0x1A,0x40,
+0x01,0xF9,0x08,0x0E,0x43,0x7F,0xC3,0xCC,0xCA,0x1B,0x14,0x21,0xE9,0x6E,0x77,0xE6,
+0xBC,0x87,0xCB,0xB3,0x2F,0xA2,0x72,0x7D,0xEA,0x1A,0x15,0x00,0xB3,0x87,0xC4,0xBC,
+0xD2,0x60,0x42,0xDD,0x08,0xBB,0x4C,0x43,0x55,0xE0,0xEF,0x45,0x31,0x7C,0xBD,0x3E,
+0x4C,0x4B,0xF7,0x43,0x21,0x04,0xDA,0xD5,0x24,0xE2,0xED,0x36,0x27,0x4B,0x9C,0x28,
+0x16,0xF8,0x1E,0x19,0xCF,0x13,0x23,0x2C,0x2E,0x6A,0x65,0xB4,0x84,0xB5,0xC1,0x8B,
+0x44,0x49,0xFD,0x4B,0x19,0xB9,0x5F,0x50,0x8C,0x23,0x2C,0x5F,0xDC,0x2F,0x03,0xD3,
+0xB2,0xE4,0xA6,0xBD,0xD9,0x29,0x0F,0x00,0x13,0xD8,0xD7,0x3B,0xB1,0xF4,0xB5,0xBE,
+0xCD,0x63,0x5E,0xC2,0xFF,0x26,0x26,0x29,0xFB,0x09,0x06,0x02,0x38,0x57,0x9F,0x37,
+0x3F,0xDE,0x11,0x30,0x61,0x54,0xCA,0xC5,0xC0,0x93,0x9C,0xA3,0x7B,0xC5,0x4E,0x74,
+0x0C,0xCB,0x37,0x03,0x99,0x79,0x1F,0x10,0x5F,0x68,0x67,0xC7,0x41,0xC8,0x79,0x4E,
+0x51,0x39,0x98,0x5E,0xBA,0x44,0x01,0x0E,0x09,0x54,0x5B,0xAD,0xEC,0x5B,0x47,0xE3,
+0x5E,0x7A,0xD4,0x51,0x40,0x63,0xDC,0xD3,0x53,0xC8,0xC7,0x6B,0x71,0xBC,0x3D,0x7E,
+0xBB,0xC6,0x8D,0xB4,0xDB,0x23,0x07,0x08,0x92,0x8F,0x80,0xED,0x8E,0xCC,0xB2,0x81,
+0x20,0x03,0xD8,0xE2,0xE8,0x91,0xAB,0x82,0x6F,0xAC,0x02,0x38,0xBD,0x2B,0x6D,0x11,
+0xB1,0xC1,0x8B,0xB1,0xCA,0x6D,0x57,0x5C,0x9F,0x38,0x66,0x5C,0xFC,0x2C,0x2B,0x16,
+0xC8,0x3A,0x09,0x33,0x34,0xCE,0xF4,0x01,0xB0,0xD1,0xA0,0x9A,0x59,0x5A,0xF8,0x60,
+0xD2,0xAC,0x85,0xBF,0xB1,0x74,0x4E,0x3E,0x10,0x05,0xD4,0xEE,0xCF,0x36,0x02,0x0C,
+0x19,0xA8,0x4A,0x70,0x8F,0x97,0xAD,0xE3,0xEE,0x58,0x77,0x4D,0x06,0xF1,0x0C,0xCB,
+0x98,0x7E,0x1D,0x27,0x27,0xF8,0xC2,0x24,0x54,0x55,0xC0,0xFA,0x9A,0x15,0x74,0x2F,
+0x56,0x48,0xE5,0xDF,0x9C,0xA1,0x9B,0xC6,0x33,0x34,0xC6,0xFC,0x13,0xC2,0x2A,0xF8,
+0xB5,0xE5,0xAB,0x91,0x79,0x2F,0x15,0xAD,0x69,0x76,0xDE,0xE4,0xF7,0xB3,0xBF,0x89,
+0xEE,0x35,0x20,0x1A,0x3C,0xD5,0xEF,0x12,0x5C,0x46,0xDB,0xE1,0xA6,0xB0,0xED,0x8A,
+0x3B,0x83,0x43,0x79,0xE3,0x77,0x4D,0x6F,0x7F,0x77,0xC9,0xF3,0x8E,0x31,0x44,0x0B,
+0xD0,0xA6,0x8D,0xB7,0xD8,0xB5,0x8F,0x96,0x7D,0x66,0xDA,0xE0,0x91,0x8A,0xE0,0xB0,
+0x81,0xF4,0x8E,0xB4,0x85,0x9F,0xA5,0xE1,0xF7,0x7F,0x49,0x73,0x09,0x4E,0xBC,0x74,
+0x2F,0xB3,0x67,0x5D,0xCC,0xB1,0x8B,0x86,0x6A,0x88,0x23,0x19,0xC9,0x1E,0x2C,0x24,
+0x9F,0x46,0x22,0x18,0x80,0xBE,0x84,0xC5,0x95,0x3A,0x6E,0x54,0xAF,0x27,0x73,0x1D,
+0x85,0xD0,0xAE,0x94,0x42,0xED,0xD7,0x54,0xD1,0x6A,0x7A,0x40,0xCA,0x01,0x30,0x3B,
+0xB7,0xEF,0xA3,0x99,0x65,0x30,0x0A,0xAE,0x1E,0xCC,0x13,0x29,0xDC,0x2D,0x0A,0x17,
+0x1F,0x86,0x62,0x58,0xBE,0x5D,0x67,0x18,0x8E,0x0C,0x43,0x79,0x6D,0x7F,0xE9,0x45,
+0xD5,0x94,0xBA,0x80,0x88,0xA5,0x9F,0xD6,0xA2,0x1B,0x78,0x42,0x57,0xF2,0x5E,0xC8,
+0x31,0x01,0xCB,0xF1,0xF0,0x41,0x7B,0x4A,0xD5,0xA1,0xB5,0x8F,0x67,0xF7,0x6B,0xCD,
+0x2D,0xB9,0x6F,0x55,0x4B,0x18,0x22,0xA8,0xE6,0x4B,0x6C,0x56,0x04,0xF9,0x06,0xC3,
+0xAA,0x41,0x10,0x2A,0x25,0xEB,0xD1,0x35,0x61,0x65,0xC5,0xFF,0x69,0x5F,0xCD,0x65,
+0xC2,0xB8,0x81,0xBB,0x11,0x00,0x3A,0xEA,0xE2,0x80,0xA3,0x99,0x89,0x0E,0x7C,0x34,
+0x6C,0xFF,0x68,0x52,0x59,0xC0,0xFA,0x62,0xA9,0xF6,0x9E,0xA4,0x22,0xD0,0x09,0xEA,
+0xE0,0x93,0x88,0xB2,0xFB,0xA7,0x9D,0xA7,0x17,0x30,0xE6,0xDC,0x5D,0x7A,0xDC,0x40,
+0xBF,0x67,0x23,0x19,0x72,0xC9,0xF3,0x40,0xBB,0x3C,0x46,0x7C,0x44,0xE9,0x56,0xD3,
+0xE8,0x1B,0x08,0x32,0x5A,0x3D,0x07,0x9C,0xF6,0x90,0xA7,0x9D,0x72,0xC4,0x4D,0xFE,
+0x0D,0x98,0x6E,0x54,0xE4,0x45,0x7F,0x5A,0x6C,0x52,0xFF,0xC5,0x2E,0x70,0xA5,0x4A,
+0xDD,0x1C,0x3A,0x00,0x0F,0x0C,0x36,0xF8,0x9A,0x1C,0x47,0x7D,0xDE,0x25,0x00,0x1F,
+0xB4,0xF3,0xBC,0x86,0x87,0x8C,0xB6,0xF0,0xA7,0x3F,0x59,0x63,0x8C,0x39,0x4E,0x03,
+0x9D,0x4C,0x2A,0x10,0xFC,0x95,0xAF,0x92,0xB7,0xE4,0x92,0xA8,0x8F,0x26,0x52,0x1C,
+0x29,0x9D,0x4F,0x75,0x68,0x0A,0x30,0x99,0x4A,0x47,0xCC,0xF6,0x8B,0x06,0x76,0x3C,
+0x02,0x28,0xD1,0xEB,0x15,0xCF,0xF5,0x21,0x3B,0x27,0xDD,0xE7,0xD3,0x92,0xBA,0xA8,
+0x45,0x40,0xFE,0xC4,0x38,0x1A,0x20,0xD9,0x31,0x25,0xD5,0xEF,0x41,0xDE,0x64,0xE4,
+0xDB,0x32,0x12,0x28,0x77,0xE8,0xD2,0x64,0xA3,0xF4,0x96,0xAC,0x7A,0x44,0xC5,0x7E,
+0xA3,0xDF,0x87,0xBD,0x9B,0x93,0xA9,0xF3,0x49,0xB9,0x31,0x0B,0x36,0xF4,0x39,0xCE,
+0x63,0x4F,0xD7,0xED,0xC0,0x65,0x5F,0x5E,0x92,0x0F,0x5C,0x66,0xA9,0x0F,0x5D,0x35,
+0xFA,0x05,0x04,0x3E,0xB2,0x89,0xB3,0xC0,0xDA,0x87,0x9C,0xA6,0xE9,0x1F,0x0D,0x25,
+0x61,0x45,0xDF,0xE5,0xEB,0x6C,0x56,0x7C,0xAA,0x08,0x63,0x59,0x28,0x58,0x8B,0x62,
+0x23,0x1F,0xC7,0xFD,0x51,0xDB,0xE1,0x71,0xAE,0xC3,0xAC,0x96,0xE5,0xBF,0xA1,0x85,
+0x00,0x22,0xD9,0xE3,0xFE,0x86,0xBC,0x83,0x3D,0xFD,0x01,0x3B,0xB3,0x83,0xCB,0xB9,
+0x7D,0xFD,0x7B,0x41,0xFA,0x49,0x73,0x48,0xC3,0xA0,0xA2,0x98,0xD7,0xB2,0x9E,0x88,
+0xF9,0x19,0x1B,0x21,0x6E,0xD6,0xEC,0x43,0x08,0xCD,0x04,0x3E,0x70,0xCC,0x47,0xF6,
+0x33,0x0B,0xC3,0xF9,0x8A,0xB6,0x8C,0xC7,0x90,0x1E,0x4F,0x75,0x4D,0x7E,0xC8,0x44,
+0xE2,0x99,0x80,0xBA,0x5B,0xD3,0xE9,0x73,0x07,0xEB,0x2D,0x17,0xD8,0x0D,0x2E,0x37,
+0x9B,0x62,0x02,0x38,0x91,0x9B,0xA1,0xF1,0x2D,0x26,0xCA,0xF0,0x9E,0x35,0x50,0x0F,
+0x75,0x75,0xFB,0xC1,0x78,0xC1,0xFB,0x42,0xD3,0x7B,0x69,0x53,0x94,0xBD,0xD2,0x87,
+0x95,0xC4,0xAA,0x90,0xAD,0x6B,0x51,0x3D,0xE1,0x7E,0x5E,0x64,0x50,0xCD,0x66,0xF7,
+0xB2,0xDD,0x94,0xAE,0x24,0x05,0x3F,0xDA,0x1A,0x07,0xDC,0xE6,0xEF,0x37,0x23,0x0D,
+0x1D,0x8C,0x6A,0x50,0x18,0xF5,0xCF,0x16,0x82,0xD4,0x97,0xAD,0x03,0xC6,0x3E,0xFC,
+0xC4,0x96,0xA9,0x93,0x13,0x13,0x29,0xFB,0x8D,0xF2,0xBE,0x84,0x49,0x5E,0xEC,0x64,
+0x0E,0x84,0x71,0x4B,0xAB,0xB7,0x8D,0xE7,0xC7,0x6B,0x6D,0x57,0xBE,0x34,0x71,0x0E,
+0x2B,0x97,0x47,0x7D,0xBD,0xA0,0x9A,0xE6,0x3F,0xEC,0x12,0x28,0x2C,0x78,0xAF,0x42,
+0xB0,0xD7,0x9C,0xA6,0xB5,0xBB,0x81,0xF5,0x57,0xAB,0x3D,0x07,0x84,0xB9,0xC6,0x83,
+0xDF,0x16,0x32,0x08,0xB4,0x55,0x6F,0x1A,0x29,0xED,0x05,0x3F,0xB8,0x1C,0x5F,0x26,
+0x60,0x53,0xC8,0xF2,0x36,0xDD,0xE7,0x10,0xE7,0xA4,0x82,0xB8,0x8D,0x2E,0x58,0x14,
+0x93,0xEA,0x82,0xB8,0xF5,0x60,0x5A,0x6E,0xD9,0x79,0x61,0x5B,0x8A,0x11,0x60,0x2B,
+0xBB,0x43,0x03,0x39,0x14,0x21,0x1B,0xCE,0xCE,0x97,0x98,0xA2,0xC1,0x9E,0xA4,0xA4,
+0x15,0x04,0xEA,0xD0,0xF9,0xB4,0x8E,0xB6,0xD6,0x5F,0x48,0x72,0x39,0x4B,0x89,0x71,
+0x2A,0x81,0x50,0x6A,0xDB,0x48,0x72,0x68,0x0E,0x17,0xD8,0xE2,0x4C,0x69,0xDE,0x53,
+0xA2,0xC9,0x90,0xAA,0x37,0x33,0x09,0xFF,0x20,0x11,0xF0,0xCA,0x51,0xDA,0x70,0xE0,
+0x53,0x7A,0xD2,0xE8,0xA0,0x51,0x6B,0x0A,0x2F,0x37,0xD9,0xE3,0xA5,0xAF,0xF1,0x95,
+0x5B,0xF2,0x52,0x68,0xC2,0x76,0x4C,0x4F,0xCF,0x78,0x76,0x4C,0x4E,0x61,0xD4,0x5B,
+0x14,0x12,0xFD,0xC7,0x21,0x24,0x1E,0xFE,0xB6,0x0B,0x7C,0x46,0x32,0xD4,0x1D,0xEE,
+0xBC,0x7B,0x3C,0x06,0x63,0xEC,0xD6,0x74,0x55,0xBA,0x2E,0x14,0xCB,0x16,0x26,0x2C,
+0x4A,0xB1,0xE7,0x69,0x2E,0xEC,0xFD,0xD5,0x82,0x79,0x4F,0xF2,0x12,0x25,0xE9,0xF3,
+0xAC,0x57,0x0A,0x62,0xED,0x35,0xE7,0x16,0x1A,0xE1,0x9D,0xB8,0x3B,0x03,0xC0,0xFC,
+0x08,0xF3,0x16,0xDA,0x35,0xFF,0xF5,0xCE,0x70,0x8B,0x00,0x4F,0xE8,0x9A,0x13,0xB6,
+0x1F,0xE4,0x17,0xCC,0x03,0xDA,0xE6,0xF8,0x3C,0xC7,0xDE,0xDD,0x97,0x1D,0x6C,0x4E,
+0x04,0xFF,0x04,0xC4,0xD8,0x41,0xA6,0x23,0xFD,0x06,0xB7,0x75,0xB8,0x5A,0x43,0x26,
+0xEA,0x11,0xEB,0xC5,0x76,0x2E,0x67,0x8D,0x58,0xA3,0x2E,0x49,0x80,0x1C,0x7B,0x58,
+0x62,0x99,0xE1,0x47,0x8C,0x91,0x22,0x77,0x6A,0x91,0x29,0x7C,0x07,0x55,0xFC,0x96,
+0xDF,0x24,0x9F,0x84,0xC6,0x62,0x9B,0x3D,0x55,0xAE,0x11,0x7B,0xE4,0x88,0x1F,0xA8,
+0x9E,0x65,0x3F,0x65,0x47,0x4A,0x32,0xBC,0xDA,0x21,0xD5,0x30,0x1D,0x66,0xE6,0xBF,
+0x0B,0xF0,0x47,0x88,0xAE,0xE4,0x75,0x55,0x0F,0xF4,0xF8,0xC8,0xCD,0xAE,0x36,0xA7,
+0xF7,0x0C,0x99,0xAA,0x14,0xDB,0xF0,0xEF,0x2D,0xD6,0xAF,0xBD,0x5D,0xE6,0xA6,0x7F,
+0x8C,0x77,0x0E,0x46,0xD4,0x53,0xB8,0x2F,0x9E,0x65,0x01,0xA0,0x75,0xE0,0x8E,0x51,
+0xEE,0x15,0xFB,0xD1,0x96,0xA2,0x0B,0x6D,0xEB,0x10,0x80,0x54,0x5C,0xC6,0xA7,0x5E,
+0xC9,0x32,0xBE,0xB3,0x16,0xAA,0x83,0xED,0x25,0xDE,0xA5,0xBF,0xF3,0x89,0x08,0xBE,
+0x9B,0x60,0x0F,0x50,0xB9,0xE5,0x63,0x42,0x90,0x6B,0x6C,0xC3,0xF9,0xFA,0x02,0xC7,
+0x53,0xA8,0x85,0x12,0x78,0x4D,0x0A,0x83,0x52,0xA9,0x57,0x3A,0xAB,0x4B,0x50,0x24,
+0xA5,0x5E,0x28,0x49,0xBA,0xB4,0x31,0x41,0x9A,0x61,0x15,0xB0,0x50,0xD4,0xAB,0x40,
+0x57,0xAC,0x95,0x06,0x56,0x2A,0x43,0xAD,0x00,0xFB,0xB4,0x8B,0x13,0x05,0xE8,0xD2,
+0x2C,0xD7,0x02,0xEA,0xC3,0x52,0xAE,0x38,0xB0,0x4B,0x48,0xC7,0xB4,0x48,0x4F,0x38,
+0xDA,0x21,0xAF,0xB1,0x93,0x92,0x3E,0x68,0x4B,0xB0,0x2C,0x58,0xD9,0xFE,0x22,0xE3,
+0x36,0xCD,0x31,0xC3,0x40,0x0B,0x74,0xBB,0x5B,0xA0,0x7C,0x18,0x19,0x76,0xE2,0xAB,
+0xD3,0x28,0x8D,0x9A,0x9B,0x90,0x34,0x60,0x1C,0xE7,0xFA,0xD9,0xE6,0xF9,0x1D,0xDB,
+0x64,0x9F,0x80,0x20,0x83,0xD2,0x6E,0x78,0xFB,0x00,0xD0,0x14,0x29,0x32,0xD2,0xDF,
+0x39,0xC2,0x72,0x8F,0x9D,0xF1,0x53,0x66,0xC7,0x3C,0xBA,0x42,0x84,0x0C,0x7F,0x4C,
+0xF6,0x0D,0xB9,0x8B,0x3F,0x8C,0x8C,0xC4,0xF6,0x0D,0xEF,0x26,0x27,0x51,0xDC,0xB2,
+0x69,0x92,0xB2,0x1F,0x5F,0x08,0x68,0xA4,0x88,0x73,0x36,0x81,0x81,0x3C,0x7A,0x79,
+0x09,0xF2,0x36,0xFB,0x87,0xC2,0x7A,0x7C,0x3A,0xC1,0xB9,0xBC,0xCA,0xEF,0x31,0xE1,
+0x6C,0x97,0x82,0x2A,0xC4,0x13,0xE8,0x3F,0x49,0xB2,0x5F,0x29,0xA8,0x1A,0x53,0x76,
+0x24,0xDF,0x00,0xE0,0x46,0x6A,0x13,0xBD,0x71,0x8A,0x21,0x6F,0x4F,0xD7,0xB4,0x5C,
+0x7E,0x85,0xB3,0x09,0xBF,0x84,0x04,0x44,0xF9,0x02,0xA3,0x65,0xEC,0x8A,0x17,0xA2,
+0xD4,0x2F,0xCC,0xDC,0xEE,0x64,0xB5,0x15,0x89,0x72,0x17,0xA1,0xDB,0x8F,0x20,0x90,
+0xBA,0x41,0x2B,0x55,0xD0,0x43,0xAC,0x2B,0x73,0x88,0x52,0x1E,0x59,0xF6,0xA2,0x6B,
+0xE2,0x19,0xE9,0xCF,0x26,0xEE,0xF7,0xDD,0x3B,0xC0,0x98,0x9C,0xC6,0xFD,0x3D,0xFF,
+0x1A,0xE1,0x27,0xF9,0xFE,0x24,0xE5,0x05,0xB6,0x4D,0x2F,0xA6,0xFD,0xEA,0x06,0xD3,
+0xFE,0x05,0xBB,0x81,0x8F,0xC0,0x70,0x74,0xB3,0x48,0x1A,0x96,0x30,0x50,0xCB,0xA4,
+0xA7,0x5C,0x59,0x3A,0x2B,0xDC,0xC8,0xD0,0xBD,0x46,0x77,0xF5,0xE9,0xBA,0x12,0x97,
+0x54,0xAF,0xC4,0x54,0x54,0x5B,0x30,0xAF,0x1B,0xE0,0xBC,0x98,0x40,0x94,0xBB,0x10,
+0xBF,0x44,0x1B,0x60,0xC5,0x33,0xC9,0x3E,0x4A,0xB1,0x0D,0x78,0x26,0x71,0xDD,0x93,
+0x7F,0x84,0x93,0x28,0x2C,0x9D,0x8E,0xD7,0x94,0x6F,0x78,0xD3,0x1B,0x07,0xE0,0xD8,
+0x18,0xE3,0x56,0x8A,0xCC,0x11,0xE2,0x37,0x3E,0xC5,0xAD,0xAC,0x63,0xC1,0x98,0x66,
+0x76,0x8D,0xB1,0x03,0x67,0x4E,0x16,0x9C,0xAD,0x56,0x27,0xB5,0xC3,0xCD,0x38,0xCA,
+0x82,0x79,0x6D,0x2B,0x4C,0x19,0x6A,0xB7,0x80,0x7B,0x3C,0x83,0x22,0x61,0xD9,0x87,
+0xFA,0x01,0xAB,0x95,0x2A,0xFC,0xE9,0xD1,0x34,0xCF,0xD4,0xDF,0x7A,0xA3,0x81,0x1D,
+0xB3,0x48,0x09,0x7E,0x7E,0x2C,0x6D,0x85,0x61,0x9A,0x71,0x2F,0xC2,0xED,0x39,0xEB,
+0x33,0xC8,0x01,0xF6,0xF8,0x45,0x82,0x03,0x7D,0x86,0x3F,0x7D,0xDC,0xCE,0x27,0xD6,
+0x2A,0xD1,0x63,0x8D,0x6E,0x6C,0x3D,0x95,0x62,0x99,0x23,0x7E,0x17,0x15,0xEC,0xC6,
+0xB5,0x4E,0x68,0x19,0x0B,0xD8,0xEC,0xF0,0x42,0xB9,0x07,0x7A,0x49,0xB6,0xB2,0x3B,
+0x70,0x8B,0xD0,0x64,0x95,0xF3,0x59,0x6E,0xD6,0x2D,0xCB,0x22,0x58,0xD6,0xA3,0x4A,
+0x2E,0xD5,0x73,0x99,0x9C,0xD1,0x72,0x67,0x6F,0x94,0x1C,0x4C,0x87,0x5D,0x7C,0x1E,
+0xD2,0x29,0xAD,0xBB,0xCF,0x40,0xB0,0x34,0x68,0x93,0x5A,0x0D,0xE3,0xC9,0x18,0xEE,
+0x71,0x8A,0xF0,0x45,0x4D,0x39,0x4B,0xB6,0x1E,0xE5,0x89,0xA8,0x25,0x20,0xDE,0xC1,
+0xCB,0x30,0xCF,0xC0,0xC1,0x23,0xDD,0x3A,0x72,0x89,0x73,0x3E,0x51,0xF4,0xAA,0x61,
+0x28,0xD3,0x12,0xFE,0x0E,0xE8,0xD9,0xF5,0xB5,0x4E,0x7D,0xF7,0xF2,0xA9,0x09,0x9F,
+0x47,0xBC,0xD5,0x56,0x59,0x69,0x0F,0xA2,0x51,0xAA,0x05,0x6B,0x45,0xA4,0xBE,0x25,
+0x1E,0xE5,0x37,0xED,0xA1,0xA7,0x39,0x5A,0x86,0x7D,0x5B,0xE2,0x43,0xC5,0xB8,0x42,
+0x90,0x6B,0x5C,0x08,0xEF,0x44,0x94,0x14,0xF7,0x0C,0xCE,0x06,0x5B,0x87,0xA0,0x18,
+0x6A,0x91,0xE3,0x4D,0x64,0x1F,0x44,0x9F,0xF4,0x0F,0x9C,0x57,0x5E,0xB7,0xA5,0x2D,
+0xC8,0x33,0x9E,0x92,0x07,0xCA,0xF2,0xFC,0x75,0x8E,0x35,0x7F,0x4C,0x86,0xB7,0x0E,
+0x0A,0xF1,0x67,0xA9,0xC9,0x21,0xD7,0x32,0xCE,0x35,0x91,0x60,0x5F,0x97,0xA4,0x0C,
+0x20,0xDB,0x10,0xF4,0xCA,0x70,0x85,0x31,0x0A,0xF1,0xCD,0xF8,0xCC,0x8E,0x37,0x86,
+0x0E,0xF5,0x77,0xBD,0x23,0xDE,0xC2,0xD8,0x5A,0xA1,0x5D,0x38,0xA6,0x79,0x5D,0x1B,
+0x01,0xFA,0x34,0xF1,0x66,0x6E,0x37,0x9D,0x63,0x98,0x02,0x5E,0xEB,0xCB,0x10,0xE4,
+0x52,0xA9,0xA5,0x33,0xEA,0x74,0xA1,0x11,0x45,0xBE,0x41,0x3B,0xFF,0x9B,0x04,0xA0,
+0x8F,0x74,0x5F,0x14,0xE7,0x46,0x9E,0x1C,0x69,0x92,0x7B,0x2D,0x96,0x3D,0x6D,0x6F,
+0x71,0x54,0xE6,0x7C,0x85,0x74,0x3F,0x32,0xCA,0x9D,0x90,0x94,0xDC,0x75,0x6A,0xD1,
+0xAC,0xAE,0xC1,0xA1,0xB7,0x4B,0x32,0x3F,0xDC,0xB1,0xBC,0xAE,0xB5,0xBA,0xCC,0xB8,
+0x2D,0x86,0x68,0x20,0x2F,0x17,0xF6,0xFB,0xC9,0x82,0x8F,0x88,0x85,0xCE,0x88,0x88,
+0x22,0xC5,0x24,0x2F,0x9F,0xE2,0xB3,0xBE,0xAF,0xBB,0xB6,0xD7,0xC8,0x31,0x3A,0xC5,
+0x29,0x96,0x7C,0x24,0xD0,0x02,0x1C,0x11,0x91,0x16,0x1B,0x44,0x7C,0xD9,0x66,0x71,
+0x03,0xE1,0x21,0x0E,0x81,0x50,0x1F,0x12,0x09,0xD2,0xDF,0x18,0xEF,0x53,0x7F,0xE2,
+0x49,0x12,0x98,0x44,0xEE,0x91,0xB1,0xBC,0xA6,0x2C,0x21,0x49,0x7D,0xF8,0x46,0x70,
+0xEB,0x6F,0x47,0xE6,0x3B,0x27,0xD2,0xDF,0x8E,0xAD,0xA0,0xE0,0x6F,0xDB,0x77,0x62,
+0x3D,0xC6,0x38,0x30,0x56,0xEC,0x74,0x79,0x13,0x5E,0x53,0x8E,0x60,0x97,0x34,0x6D,
+0xB3,0xAD,0xDD,0xBE,0xB5,0x41,0x3A,0x37,0xF7,0x2F,0x22,0x1B,0x78,0xCD,0x76,0x75,
+0x0B,0xE3,0x2B,0x06,0x19,0x0C,0xDB,0xD6,0x06,0x6D,0x60,0xA8,0xD1,0x4A,0x58,0xDC,
+0x64,0x24,0x83,0x69,0x98,0xDA,0x8C,0x81,0x9A,0x89,0x84,0xD0,0x66,0xF0,0x55,0x6B,
+0x52,0x01,0x90,0x5F,0xC8,0x9E,0x98,0x95,0x59,0xC6,0xCB,0x5C,0x06,0x14,0xD1,0x0B,
+0xE8,0x3E,0x15,0xE5,0xD2,0x08,0x14,0x19,0xCF,0xAA,0xA7,0xA6,0x72,0xB4,0x05,0x7F,
+0x0D,0x82,0x4C,0x00,0x20,0xA7,0x49,0x44,0xBD,0xB7,0xBA,0xC9,0xA4,0xCB,0xAC,0xA9,
+0xF1,0x5C,0x6E,0xFC,0xB1,0x65,0x1A,0x17,0xFC,0xB0,0xBD,0x8F,0xC0,0x3B,0x38,0xCD,
+0x96,0x99,0xCC,0x9B,0x29,0x39,0xDE,0xD3,0x8B,0x9A,0x97,0xD2,0x6A,0xEE,0x47,0x67,
+0x53,0x21,0xB1,0x5E,0x02,0x8C,0x40,0x4D,0xD3,0x0E,0x03,0x1E,0x7B,0x9F,0x27,0x76,
+0x10,0xF0,0x23,0x1D,0xB4,0x57,0x2D,0x20,0x8C,0xA5,0xA8,0xEA,0xFF,0x03,0x3F,0xF2,
+0x09,0x92,0x58,0x04,0x9D,0xE8,0xBB,0xB6,0x8F,0xBA,0xB7,0xF6,0x34,0x13,0xE4,0x39,
+0xD9,0x5A,0x40,0xD4,0x0D,0x3C,0xFF,0xF2,0x2E,0xEC,0xE1,0x01,0x59,0xC8,0x52,0x54,
+0x90,0xF8,0xAB,0x9D,0xDD,0xB8,0xAB,0xA6,0xDE,0xB9,0xB4,0xA4,0xE1,0x3E,0x1C,0xEC,
+0x55,0x40,0xD6,0x58,0xBF,0xC3,0xB2,0xBF,0x44,0x75,0x78,0xF2,0xE0,0x1F,0x3C,0xED,
+0xA1,0x9C,0xFE,0xAC,0xE8,0xBF,0x99,0x94,0x72,0x58,0x55,0xE9,0x01,0x52,0x90,0x0C,
+0x5C,0x62,0xFD,0x51,0x6C,0x5B,0xF9,0xF4,0x22,0x4C,0x41,0xAD,0x38,0x0D,0xF6,0x35,
+0x3B,0xA7,0x5F,0x36,0xE0,0x37,0x19,0x14,0x5D,0xE6,0xEB,0x78,0x40,0xB3,0x30,0x4D,
+0x77,0x35,0x81,0x7A,0xAA,0xE5,0x81,0x8C,0x69,0xC3,0xCE,0x69,0x63,0xC5,0x65,0x6E,
+0x9C,0xEA,0xB5,0x91,0xC2,0x1C,0x10,0x1D,0x89,0x92,0x9F,0xD8,0x05,0x46,0x80,0x08,
+0xDD,0x4A,0x54,0xD0,0x31,0xA5,0x5A,0x57,0x67,0x6B,0x66,0xCF,0x13,0x71,0xA1,0x1E,
+0x84,0xA8,0xEF,0x89,0x2D,0x1D,0xFE,0xF3,0x04,0x65,0x68,0xA2,0xCA,0x42,0x4B,0xC7,
+0xC1,0x18,0x1A,0xCC,0x1F,0x22,0xF3,0xFE,0x6D,0xE3,0xEE,0x4D,0xE5,0x2A,0x0C,0xE8,
+0x39,0xD6,0x2C,0x34,0xD5,0x30,0x2B,0x26,0x57,0x6E,0x63,0xFA,0xDE,0x06,0x1B,0xD3,
+0xF7,0x3D,0x09,0xFA,0x95,0x60,0x3B,0x36,0x50,0x51,0x5C,0xC2,0xF8,0x45,0x7E,0xF5,
+0x99,0xDA,0x80,0x94,0xB2,0x79,0x05,0x08,0xEF,0xAB,0xA6,0x87,0x7A,0xBE,0x07,0x77,
+0x07,0xF1,0x35,0x0A,0x9B,0xC6,0x93,0x9E,0x9E,0xA9,0xA4,0xF4,0x6C,0x89,0x26,0x61,
+0x5D,0x42,0xDC,0x50,0x75,0xD1,0x6A,0x67,0x94,0x21,0x2C,0x76,0xCF,0x77,0x7B,0xC2,
+0x2A,0xC7,0x2E,0x27,0x33,0xAF,0x52,0x5F,0x4D,0xE2,0xEF,0x6C,0xE9,0x34,0x1E,0xE4,
+0x4F,0x73,0xFF,0x42,0xE2,0x3D,0x11,0x1C,0xD8,0x91,0x9C,0x8A,0x8B,0xA3,0xEB,0x86,
+0xD5,0x48,0x5E,0xD8,0x7D,0x59,0xEA,0xE7,0xD7,0x2E,0x23,0x3A,0x04,0x67,0xA0,0x09,
+0x4A,0x43,0xCA,0x47,0xF9,0xBD,0x8A,0x87,0x70,0x50,0x5D,0xE3,0xA2,0xAC,0xCD,0xAF,
+0x47,0x71,0xF5,0x4A,0x23,0xBB,0x56,0x5B,0xE5,0x23,0x2E,0x05,0x0A,0x0A,0xC3,0x07,
+0x1A,0x83,0x5A,0x17,0x00,0x86,0x48,0x45,0xB3,0x1F,0x12,0x6F,0xA7,0x99,0xFD,0xAA,
+0x15,0xC0,0x16,0x18,0xFA,0xA1,0x95,0x98,0xE9,0x83,0x8E,0xA9,0x3A,0x7E,0x87,0x37,
+0xF0,0x7C,0x4F,0xFD,0x61,0xE1,0x4E,0x43,0x28,0xC4,0xC9,0x2F,0xC5,0x0E,0x08,0xC8,
+0x0F,0xF3,0x3F,0x02,0xA3,0x7B,0x16,0x1B,0x36,0x68,0x65,0x9D,0x97,0xED,0xB9,0x9A,
+0xF9,0x5E,0x64,0xF4,0x63,0xEB,0x46,0x4B,0xA9,0x93,0x9E,0xF9,0xFA,0x36,0x0F,0xF7,
+0x86,0xD9,0x9C,0x8B,0x45,0xE4,0x6F,0x62,0x41,0x42,0x4F,0xC0,0x73,0x95,0x25,0x7E,
+0x74,0x64,0xD3,0x79,0xDB,0x96,0x83,0x8E,0x7A,0xD8,0xD5,0x61,0x30,0x07,0xF4,0x3D,
+0xB8,0xFE,0x85,0xB5,0x14,0xB6,0x6C,0x61,0x32,0x48,0x45,0xB9,0xDA,0x12,0x0B,0xD7,
+0x70,0x74,0xC7,0x7D,0xBC,0xDF,0xAD,0xA0,0xCB,0x8A,0x87,0x82,0x88,0xF1,0xBA,0x85,
+0xCD,0x0A,0x04,0xC0,0x53,0xDE,0x43,0x4E,0xA5,0x33,0x3E,0x55,0x7F,0x8B,0x37,0x72,
+0xEA,0x4F,0x66,0xE7,0x5B,0x56,0xC3,0xCE,0x4E,0xFD,0xF0,0x70,0xD0,0x6B,0x78,0xDD,
+0xD4,0x68,0x7F,0xD9,0x2A,0x25,0xC1,0xCC,0x4C,0xF5,0xF8,0x7A,0x7E,0xAA,0x17,0x73,
+0xAF,0xFF,0x93,0xA2,0xA2,0x6D,0x01,0x0C,0x51,0x46,0x4B,0xD4,0x56,0x84,0x11,0x5B,
+0xBD,0xCE,0xB0,0xB0,0xBB,0xE7,0x92,0x9F,0xC1,0x02,0x0F,0x00,0x3E,0x6A,0x97,0x33,
+0x28,0xB6,0x5D,0x25,0x15,0xA0,0x7B,0x76,0x39,0xD7,0xDA,0x2D,0xEE,0x72,0x5F,0xE3,
+0x41,0x10,0x92,0x4C,0x60,0xF7,0x59,0x54,0x8D,0xB2,0xBF,0xFC,0x24,0x43,0xA4,0x29,
+0xFC,0x6E,0x51,0xF1,0x93,0x4E,0x13,0x1E,0x8A,0x8D,0x80,0xC4,0xC7,0x7D,0x79,0xCA,
+0x27,0xF5,0x11,0x2A,0xB0,0x73,0x0D,0x00,0x84,0x25,0x28,0x62,0x9B,0xF3,0xAB,0x96,
+0xC9,0x1A,0x10,0xC4,0xDF,0xB2,0xA3,0xAE,0xB8,0x80,0x8D,0xFB,0xA3,0x8D,0xED,0xAE,
+0x2B,0xE7,0x0F,0x26,0x0E,0x20,0xE0,0xED,0xBE,0xA8,0xA5,0xD5,0xCB,0x63,0x6B,0xC6,
+0x3C,0xE6,0x19,0x31,0x2B,0x33,0xD6,0xDB,0x2C,0xE4,0xE9,0x0B,0xB4,0x9B,0xEC,0xB9,
+0x69,0x16,0xBC,0x64,0x1D,0x28,0xFB,0xF6,0x03,0x5A,0x57,0x9A,0x31,0x26,0xD4,0x3C,
+0x8F,0xFB,0xB7,0x82,0xC4,0x32,0x38,0x35,0x49,0xC2,0xCF,0x48,0x18,0x29,0xF2,0x15,
+0x9D,0x41,0x8C,0xA6,0x46,0xB4,0x99,0xA2,0x34,0xBF,0x84,0xDB,0xB9,0xBC,0x55,0x82,
+0x65,0x8F,0xBA,0x5E,0x8C,0xA6,0x41,0x7A,0x0E,0x32,0x09,0x6C,0x82,0x90,0x42,0xB9,
+0x81,0x13,0xC2,0xBA,0x68,0x33,0x30,0x0B,0x3E,0x37,0x0C,0x59,0x4F,0xE7,0xF8,0x74,
+0xD8,0xF1,0x79,0xE3,0x74,0x8B,0x94,0xAF,0x5D,0x39,0x02,0x34,0x96,0xD4,0x12,0xAD,
+0x2B,0x6C,0x17,0x10,0xF3,0x73,0xEB,0xD0,0x30,0x9F,0xA4,0xFF,0x3F,0x53,0x3C,0x04,
+0xC0,0xB3,0x23,0xFB,0x9B,0x8A,0x7A,0x41,0xD0,0xCE,0xF5,0x4E,0x59,0xD0,0xD9,0x62,
+0x00,0x3B,0x6B,0x3B,0x35,0xCD,0x93,0xA8,0x7B,0x10,0x2B,0x3B,0x64,0x9B,0xAF,0x5F,
+0x67,0xFE,0xC9,0x5C,0xB9,0xA1,0x73,0x48,0x04,0xBA,0x81,0xEE,0x1C,0x25,0x69,0x27,
+0x09,0x19,0x40,0x32,0xE6,0x55,0xD8,0xE3,0x1D,0x29,0x12,0x64,0xBC,0x89,0x65,0x87,
+0xFD,0xC5,0x68,0xC6,0xB1,0x29,0xF3,0xC8,0x2B,0x04,0x3F,0x7F,0x5D,0xC4,0xC9,0x66,
+0x85,0x03,0xD6,0xBE,0x54,0xAA,0x95,0xAE,0x77,0xB0,0x8B,0x97,0x05,0x5E,0x0B,0x3E,
+0xCC,0xA1,0x3D,0xF7,0x84,0x2E,0xC1,0xFA,0x87,0xE5,0xDE,0x32,0xBD,0xA8,0x45,0x86,
+0x4C,0xA9,0xB5,0x77,0xED,0xC1,0x47,0x7C,0xD5,0xF9,0xC2,0x7C,0xA3,0x95,0x66,0x98,
+0x55,0xCB,0xCE,0x6E,0xC4,0x7E,0xD1,0xEA,0xD6,0xE6,0xDD,0x60,0x68,0x85,0xBD,0x53,
+0xCA,0xC0,0x5A,0xF1,0x70,0xAF,0xB4,0x8F,0xD2,0xC6,0xFD,0x44,0x36,0x78,0x1E,0x0D,
+0x0F,0x78,0x27,0x34,0x5B,0x1A,0x2A,0x11,0x8A,0x52,0x69,0x88,0x27,0x09,0x7E,0x1C,
+0x51,0xDB,0xDA,0x6A,0x79,0x31,0x23,0x18,0xE4,0xEB,0xD0,0x5F,0xF8,0x5D,0xF5,0xC3,
+0xAD,0x05,0xF8,0x96,0xE8,0xF3,0x70,0x4B,0xA5,0xEC,0xD7,0x19,0x9C,0xAD,0x61,0xA7,
+0x0E,0x58,0x06,0x35,0x91,0x08,0xF2,0xC9,0x00,0x9A,0xA1,0xCA,0x5A,0x82,0x88,0x61,
+0xB4,0x67,0x83,0x8F,0x8B,0x9E,0x7E,0x45,0x96,0xF6,0xCD,0x30,0x2E,0x22,0x5C,0x15,
+0x57,0xBA,0xBD,0x6C,0x40,0x9A,0xB1,0x8A,0x5F,0x31,0x0A,0x3E,0x8D,0xDC,0x01,0xB6,
+0x38,0x7D,0x15,0x03,0xC1,0x4C,0xE6,0xDD,0xC3,0xD5,0xEE,0x46,0x3A,0x66,0x0C,0x01,
+0x61,0x9F,0xAE,0x5A,0x0F,0x7A,0x1E,0x25,0x4A,0x02,0x39,0x18,0x3C,0x01,0x6D,0x07,
+0xEF,0xF4,0x4B,0xD4,0xEC,0xD7,0x50,0x6B,0xAE,0x73,0x48,0x8D,0x24,0x5B,0x2F,0x1F,
+0x15,0x4B,0x0E,0x2E,0xB7,0x07,0xDB,0xE0,0xFF,0x70,0x4B,0xDF,0x21,0x6E,0x1F,0x1A,
+0xB7,0x36,0xD1,0x8C,0x62,0xB1,0xB8,0x83,0xD7,0xF1,0xCA,0x76,0x33,0x4D,0x2E,0x08,
+0x75,0xCF,0xEA,0x4E,0x89,0x94,0x76,0x4D,0xC8,0x4A,0x71,0xD2,0x20,0x4F,0x3F,0x1B,
+0x5F,0xB8,0xB7,0x64,0xD8,0xC6,0x75,0x4E,0x50,0x8E,0xB5,0x8E,0xB3,0xC5,0x26,0x88,
+0x71,0xDF,0xFE,0x4A,0x76,0x81,0x9C,0xA7,0x90,0xDE,0xE5,0x1E,0xD9,0x58,0xD1,0xE2,
+0x7E,0x9C,0xB2,0x45,0xC6,0x74,0xD9,0xE2,0xF6,0xE7,0xDC,0x41,0x94,0xA7,0x63,0xAF,
+0x2D,0x0D,0x70,0x16,0xDC,0xE2,0x55,0x6E,0x93,0xC1,0xFA,0x02,0x80,0xE3,0x33,0xBB,
+0xF0,0xF7,0x57,0xCB,0xEE,0xDD,0x58,0x63,0x85,0xED,0xD6,0x38,0xE9,0x2C,0x95,0xD2,
+0x35,0x4F,0x2A,0x0E,0x44,0xBE,0x91,0xAA,0x5A,0x06,0x3D,0x0C,0x6D,0xB0,0x8D,0x56,
+0xD3,0xA2,0x21,0xE8,0x9D,0xA4,0x52,0x69,0x10,0x9E,0xA5,0xDE,0x44,0xBF,0xAB,0x7F,
+0x77,0xBE,0x99,0x4C,0x57,0xB6,0x8A,0xB1,0xE7,0xF4,0xCF,0x43,0x97,0xF5,0x32,0xAC,
+0x60,0xBF,0x8F,0x5B,0x72,0xA5,0xBC,0x87,0x75,0xB8,0x83,0x9D,0xE8,0x0D,0xB5,0xD3,
+0x7B,0xAC,0x87,0x40,0xE9,0xE5,0x67,0x5C,0xDD,0x79,0x42,0xF4,0xC7,0x65,0xF2,0xFC,
+0x95,0x43,0x86,0xAE,0x86,0x24,0xC9,0xF2,0xE1,0xDC,0xE7,0x6D,0xFF,0x1B,0xB4,0xC4,
+0x1D,0x49,0x04,0x26,0x39,0x61,0x33,0x08,0xD4,0xEE,0xD5,0x6A,0x78,0xD5,0xFD,0x43,
+0xA0,0x37,0xC7,0x9B,0xCA,0xD8,0x79,0x42,0xD3,0xD1,0xEA,0x52,0x9B,0xEB,0x20,0xA0,
+0xE1,0x97,0x26,0xDA,0xE2,0x71,0xF8,0xC3,0x98,0x5E,0x65,0x96,0x62,0xFC,0xCE,0x59,
+0x74,0xEF,0xCB,0x4F,0x4C,0x36,0x11,0x2A,0x60,0x8B,0xB0,0xBB,0xB2,0xE4,0x06,0x89,
+0x88,0x31,0xE9,0xB3,0x73,0xB3,0xAB,0x90,0x15,0xA9,0x92,0xEC,0x22,0x3C,0x4E,0x19,
+0xF3,0xA6,0x05,0xC8,0xFB,0xFB,0x6B,0x50,0x08,0x1A,0x21,0x42,0x0A,0x12,0x48,0x31,
+0x91,0x53,0x92,0xAA,0x0A,0x48,0x29,0x12,0xFC,0x6F,0x54,0xC3,0x23,0x1D,0x6E,0x18,
+0xB6,0x16,0xF0,0x8D,0x02,0xC0,0xA9,0x92,0x17,0xA1,0x9A,0xE6,0x8C,0xFD,0x21,0xB7,
+0xE4,0xA7,0x13,0xDF,0x4D,0x20,0x06,0x3D,0x6B,0x14,0x2F,0x2F,0x86,0x84,0x52,0xBD,
+0x2C,0x2D,0x51,0x17,0xE5,0x49,0xC7,0xFC,0x92,0xD6,0xED,0x14,0xD4,0x67,0xE3,0xEF,
+0xDA,0x80,0x0A,0xE1,0x1C,0x72,0x05,0x3E,0x18,0x1E,0x25,0x56,0x2F,0x03,0x7C,0x14,
+0x28,0x3D,0x45,0x13,0x82,0x00,0xE9,0xD2,0x23,0x84,0xBF,0xF7,0x6C,0x91,0xAD,0x57,
+0x53,0xAA,0xA9,0x68,0xFA,0xED,0x7C,0x47,0x6F,0x34,0x0F,0x0B,0xCB,0x7B,0xE0,0xF0,
+0xA5,0x07,0xF2,0x9E,0x3A,0x7D,0x2C,0x17,0xF0,0xCF,0xF4,0x6F,0xA6,0xA0,0x56,0x9D,
+0x49,0x99,0x80,0x72,0xA3,0x37,0xFF,0xC4,0xB0,0xDF,0xE4,0x3F,0x66,0xE8,0xDE,0x5D,
+0xAC,0x25,0xD9,0x97,0x38,0x77,0x24,0x1F,0x71,0x98,0xA3,0xB9,0x99,0x98,0x51,0xA2,
+0x1B,0x28,0x63,0x20,0x7A,0x2D,0x3C,0x07,0xBC,0x7F,0x44,0x93,0x56,0x9C,0x9A,0x6D,
+0x46,0xDA,0xCC,0x7D,0x59,0x10,0x22,0x19,0xEA,0x43,0x78,0xF9,0xFB,0x0F,0xA4,0xC0,
+0x89,0x11,0xC8,0xB2,0x24,0xCF,0x80,0xBB,0x8E,0x72,0x49,0xAC,0x58,0xF1,0xF9,0x63,
+0x16,0x1A,0x5C,0x2D,0xA0,0x2B,0xE0,0xDB,0x29,0x0C,0x37,0x75,0xFE,0x3A,0x94,0xC5,
+0x76,0x9E,0xB8,0x4D,0x6A,0x39,0x38,0x03,0x14,0xBE,0x85,0xFA,0xB5,0xA2,0x47,0x8E,
+0x13,0x2A,0x69,0x28,0xBB,0xAB,0x7B,0x40,0x81,0xCD,0xF6,0x1C,0xD7,0x35,0xB2,0xEC,
+0x5B,0xA8,0xA3,0x60,0xC2,0x50,0xF9,0xC2,0xC7,0xF5,0xCE,0x62,0x30,0x1F,0x7F,0x0B,
+0x01,0x1B,0x4A,0x3A,0x2C,0x47,0x00,0x3B,0xCD,0x7D,0x46,0xE0,0x93,0xE1,0x22,0xA8,
+0xAB,0x64,0x9F,0x90,0xCC,0xF6,0x51,0x6A,0x09,0x0D,0x36,0x54,0xA4,0xD3,0x27,0x9F,
+0xC5,0x83,0x16,0xFE,0xEB,0xEF,0x6F,0x54,0xB6,0xF7,0xCC,0x11,0x26,0x28,0x5E,0x1D,
+0x12,0x74,0xB8,0xC7,0x44,0x9C,0xE3,0x06,0x49,0x31,0xD9,0xA6,0x07,0x8B,0x52,0xF4,
+0x1A,0xFC,0x38,0x47,0x26,0xBB,0xC4,0x43,0xA9,0x7E,0x76,0x09,0xEC,0x45,0x77,0x3A,
+0xF5,0xFD,0xD6,0xA9,0xE5,0x06,0x79,0x3D,0xD3,0xF3,0x81,0xFE,0x82,0xFC,0xA0,0x83,
+0x5D,0x94,0x17,0x68,0xA7,0xCE,0xB1,0xB7,0x30,0x42,0xD3,0xAC,0x7B,0x3E,0x9B,0x41,
+0x5C,0x82,0x00,0x7F,0x7F,0x5E,0x21,0xFF,0x50,0x16,0xE7,0x98,0x70,0xA1,0x0F,0xDE,
+0xF2,0xC5,0xE9,0x96,0x92,0xCB,0xB4,0x87,0x48,0xDE,0x37,0x48,0x88,0x74,0x22,0x0B,
+0xEB,0x4F,0x7A,0x05,0xB1,0xD9,0xA6,0xB6,0xA6,0x58,0x5F,0x20,0x18,0x30,0xF6,0x4F,
+0x63,0x07,0xBA,0xC5,0x5D,0xA2,0xDD,0x21,0x88,0x5E,0x77,0x08,0x05,0x83,0x58,0xFC,
+0x96,0x90,0xD8,0xA7,0x32,0xBF,0xC0,0x53,0xAF,0xA4,0xAA,0xD5,0xF1,0xF6,0xD9,0x89,
+0xF9,0x51,0x76,0x09,0x33,0x51,0x2E,0xBC,0xD1,0xE2,0x92,0xED,0xCD,0x53,0x40,0x2C,
+0xDA,0x6C,0x68,0x17,0x73,0x8A,0xF5,0x27,0x5F,0x30,0xCE,0xB1,0xC3,0xFB,0xE6,0x84,
+0x29,0xD5,0x22,0x5D,0xB0,0x37,0x48,0x59,0x61,0xED,0x2D,0x52,0xC4,0xC4,0xDE,0xBB,
+0x8D,0x10,0x43,0x3C,0x95,0xF9,0x86,0xB2,0x0B,0xBB,0x11,0x6E,0x00,0xB4,0x6A,0xCB,
+0x54,0x0A,0x80,0xFF,0x9E,0x1F,0x60,0x5F,0x04,0x9D,0x38,0x47,0x4A,0x2C,0xB8,0x53,
+0x62,0x11,0xAD,0xD2,0x3B,0x4A,0x35,0xAF,0xB9,0xA5,0xBD,0xC2,0x65,0x92,0x29,0xED,
+0x47,0x02,0x9B,0xE4,0x2D,0x5D,0x22,0xAE,0x41,0x22,0xC2,0xBD,0xF7,0xDE,0xF7,0xA1,
+0x3C,0xF3,0x11,0x6E,0xFE,0x2B,0x54,0x0B,0x55,0x32,0xC6,0xB9,0xDD,0x57,0x54,0x28,
+0xD2,0xE4,0xE8,0x97,0x17,0x71,0x0E,0xB8,0xAB,0x6F,0x65,0x1A,0xD7,0xDF,0xD6,0xA0,
+0xFB,0x5B,0x7E,0x01,0xA2,0xEF,0x90,0x93,0x9C,0x4E,0x73,0x0C,0xA6,0xDD,0xA5,0xA2,
+0xDC,0x42,0x40,0x3F,0x2B,0x81,0xFE,0x74,0x67,0x37,0xF1,0x8E,0x19,0x27,0xE0,0x58,
+0xB0,0x9F,0xF1,0x8E,0xE8,0x3C,0x43,0x0A,0x8E,0x84,0xAB,0xD4,0x39,0x26,0xC1,0x59,
+0x34,0x7B,0x91,0xEE,0x7C,0xA3,0xDC,0x01,0x45,0xE9,0x0D,0x72,0x9E,0x58,0x18,0x27,
+0xAB,0x1F,0x6A,0x15,0xDD,0x39,0x46,0x3A,0x81,0xA2,0x82,0xFD,0x91,0xE7,0xA8,0x98,
+0x7A,0x8D,0x29,0x56,0x0C,0x5C,0x23,0x8E,0x16,0x57,0xE0,0x9F,0x04,0x94,0x4E,0xEB,
+0x28,0xC3,0x35,0x4A,0x6D,0x86,0xF9,0x35,0x2C,0x41,0xCC,0xB3,0x61,0xB2,0x0D,0xCD,
+0xB3,0x83,0xEE,0x91,0x34,0x63,0x1C,0x89,0x5C,0xCE,0x33,0x4C,0xA0,0xF5,0x8B,0x8A,
+0x49,0xA4,0x33,0x4C,0x78,0x6C,0x13,0xCA,0xBB,0xB4,0xAE,0xD1,0xFA,0x69,0x4D,0x16,
+0x6A,0x99,0x2D,0x52,0xD7,0x31,0x4E,0x38,0x28,0x8A,0x03,0x7C,0xAC,0x55,0x27,0x2A,
+0x92,0xB4,0xF8,0x87,0xF1,0x02,0x7D,0x2D,0x25,0xBD,0x39,0x46,0x33,0xAE,0x43,0xD1,
+0x0C,0xC6,0x14,0x6B,0xBE,0xF0,0x8F,0x90,0xB7,0x6C,0x7A,0x05,0x08,0x34,0xE2,0x4B,
+0x2A,0xC9,0x3D,0x42,0x46,0x8F,0xF0,0x17,0x14,0x46,0xF3,0x8C,0xE0,0xE5,0xDB,0x9A,
+0xEA,0x59,0x6D,0x12,0x1D,0x79,0x06,0xBA,0xCF,0xF0,0x9E,0xE1,0x7F,0x1E,0xBF,0x61,
+0xD4,0xCA,0xC0,0xBF,0x7A,0x7F,0x00,0xDB,0x31,0xAD,0x3D,0x42,0xC6,0xCC,0xD4,0xB3,
+0xFD,0x75,0x56,0x29,0x01,0x66,0x19,0xB9,0x21,0x76,0xF6,0x89,0xC5,0xD3,0xC8,0xAC,
+0x4B,0xAE,0x3B,0x44,0x93,0x25,0x5A,0x68,0xBD,0x6E,0x72,0x0D,0x9A,0x78,0x3C,0x07,
+0x60,0x1B,0xA5,0xDA,0xEE,0xE0,0x9F,0xD0,0xCC,0x0E,0x63,0x1C,0xC2,0xEC,0xF0,0x93,
+0xA1,0x9D,0xE2,0x9D,0xDC,0xD7,0xA8,0xD5,0x70,0xD9,0x08,0x77,0x3B,0x2E,0xCB,0x51,
+0xF6,0xE1,0xC9,0xB6,0xF4,0x23,0x5C,0x09,0x3D,0x75,0xE9,0x96,0x0D,0x03,0xD0,0x7C,
+0x94,0x9A,0xD0,0xAF,0x89,0xE6,0x99,0xB1,0x1C,0x55,0xE8,0x97,0x97,0xCF,0x86,0xB0,
+0x44,0x1E,0x84,0xFB,0x62,0xAF,0xD0,0x13,0xEA,0x1B,0x50,0x2F,0x67,0x9A,0x23,0xE5,
+0x8B,0x3E,0x6B,0x14,0x97,0xEA,0x95,0xA3,0x64,0xC9,0x0C,0x73,0xC0,0xE4,0xFA,0x9B,
+0xE3,0xC7,0xFA,0x85,0xA3,0x01,0x7E,0x7C,0xE7,0x2C,0x6A,0x15,0x20,0xB5,0x4B,0xCA,
+0xA9,0x15,0x62,0x1D,0x7D,0x4D,0x32,0xEE,0x91,0x79,0x49,0x36,0x14,0x90,0x5A,0xEF,
+0x25,0x79,0x82,0xFD,0xDF,0x2A,0x55,0x2B,0x2F,0xBF,0x31,0x4E,0x6B,0x3A,0x8F,0x45,
+0x9C,0x12,0x50,0x2F,0x0E,0x4F,0x30,0x9F,0x24,0x52,0xD7,0xA8,0x1E,0x18,0xD8,0x67,
+0x56,0x00,0x88,0xF7,0x38,0xB7,0xC8,0x51,0x08,0x45,0xEC,0x93,0x24,0x95,0x6F,0xEA,
+0x64,0x3F,0x85,0xFA,0xCD,0xF2,0x8D,0xE1,0x60,0x02,0xC3,0xBC,0x4D,0x13,0x80,0x6C,
+0x78,0x87,0x21,0x5E,0x76,0xAB,0xD4,0x03,0x53,0xE8,0x1A,0x65,0x2E,0x1D,0xED,0x62,
+0xD6,0xC0,0xC8,0xB7,0x06,0x54,0x2B,0x8C,0x13,0x73,0xC1,0xBE,0xE6,0xCD,0xF5,0xB2,
+0x66,0x35,0x8D,0xF2,0x4A,0x5B,0x24,0xCF,0xEC,0xC1,0x8C,0xF3,0x80,0xF4,0xAA,0x8B,
+0xFE,0x69,0x49,0x36,0xE3,0xDA,0xA5,0xE7,0x98,0x85,0xBC,0xC3,0x95,0xC7,0x8C,0xB8,
+0xCC,0x56,0x44,0x3B,0xC4,0x07,0x78,0x1D,0x57,0x23,0xD5,0xAA,0x83,0xEB,0xB6,0x94,
+0x72,0x05,0xA9,0xD6,0x65,0x9D,0xE2,0x26,0xF9,0x3E,0x66,0x19,0xC7,0xDB,0xC2,0xA4,
+0xA7,0xB3,0xCA,0xB5,0xBA,0x3F,0x40,0x5B,0xDA,0x0F,0x74,0x0B,0xEF,0x5A,0x6B,0x25,
+0xC8,0x72,0x64,0x1B,0x03,0x75,0x0A,0xA8,0x71,0x36,0xE6,0x99,0x40,0xA4,0x3A,0xDB,
+0x99,0x20,0x67,0x18,0x5E,0x5F,0x20,0xDF,0xFB,0x2F,0x75,0x0A,0xD8,0x60,0x66,0x1F,
+0xD1,0xF8,0xF7,0x88,0xA1,0x12,0x6D,0x6D,0xD2,0x1C,0x6F,0x10,0xD3,0xFF,0xF2,0x80,
+0x50,0x2E,0xA0,0xDF,0x09,0x7D,0x02,0xAA,0x68,0x11,0xD8,0xA7,0x4F,0x1B,0x8A,0x64,
+0xFC,0x63,0x41,0x3E,0xFF,0xC5,0xBA,0xE4,0xEF,0x3F,0x71,0x0E,0xBE,0x59,0x39,0x26,
+0x1F,0xCE,0x0F,0x70,0x1A,0x4B,0x34,0x8F,0xB5,0x7D,0x69,0x16,0x5A,0x28,0xAC,0x57,
+0xF8,0x47,0x61,0x1E,0x4C,0x87,0xF8,0x15,0x19,0x71,0xC9,0xB6,0xB5,0xC6,0xAD,0xB9,
+0x69,0x85,0x32,0x4D,0x6E,0x7B,0x04,0xCB,0xE9,0xE5,0xAD,0xD2,0xF4,0xC1,0xEB,0xBE,
+0x9B,0x2A,0x6F,0x10,0x37,0x9E,0xE1,0x77,0x96,0x4C,0x7B,0x04,0x86,0xDC,0x84,0xA3,
+0x81,0xBC,0xE3,0x9C,0xB2,0x24,0x5B,0x48,0x36,0x98,0x0F,0x70,0x10,0xB0,0x7E,0xCF,
+0xF0,0xEA,0x7D,0x1E,0xC1,0x56,0x49,0x8C,0xDF,0xB1,0x6A,0x48,0x78,0xFD,0x6A,0x16,
+0x1B,0xA3,0x34,0xBC,0x95,0x02,0x99,0x08,0x8A,0x14,0x9A,0x1D,0x8E,0x45,0xD2,0x58,
+0x66,0x66,0xF1,0x04,0x8C,0x1B,0xFB,0x73,0x46,0x42,0x00,0xD1,0xAF,0x44,0xD3,0x78,
+0x4E,0x92,0x05,0xD8,0xA7,0x30,0xAC,0x0F,0x6B,0x59,0x36,0xFC,0xE2,0xA5,0x32,0xD4,
+0x7C,0xA5,0x32,0xDD,0xE0,0x77,0x6D,0x89,0xA9,0x62,0xCF,0x3E,0x5E,0xCE,0x59,0x03,
+0x01,0x60,0xF7,0x65,0x7E,0xE9,0x46,0x3C,0x3D,0xAE,0x97,0xAA,0x2F,0xDF,0x48,0x63,
+0x93,0x23,0xB4,0xB4,0x13,0x84,0xF0,0xE7,0x96,0x5A,0xC8,0x01,0xB3,0x5B,0xCC,0x7B,
+0xE8,0x3A,0xAD,0xD6,0x85,0x12,0xD9,0x58,0x89,0x46,0xCB,0x1E,0xA3,0x90,0x07,0xA0,
+0xE4,0xEE,0x79,0x0E,0x64,0xF3,0x75,0x15,0x58,0x7F,0x23,0xCF,0xC1,0xB7,0x20,0xE5,
+0x5F,0xB7,0x20,0xEC,0xC0,0x57,0x69,0xAD,0x56,0x12,0x40,0xC1,0xF2,0x6E,0xF9,0x0F,
+0xAA,0xF2,0x65,0x5C,0xCD,0x5A,0x5B,0x92,0xD0,0xFD,0x29,0x47,0x9A,0x41,0xD6,0x48,
+0x9C,0x0A,0x9D,0x92,0x15,0x82,0x91,0x80,0x5D,0x4A,0x13,0xCA,0xB6,0x7A,0xED,0x5F,
+0x4D,0x6F,0xF8,0x26,0xC7,0x50,0x28,0xEB,0x7F,0x1D,0x66,0xE8,0xBD,0x9C,0x0B,0xB2,
+0xEF,0x08,0x9F,0xE3,0x27,0xB0,0xA4,0x87,0xD5,0xC8,0x19,0x42,0x03,0xE4,0x73,0x74,
+0x31,0x44,0xD3,0x71,0xBF,0x28,0xEE,0x55,0xF0,0xD9,0x2D,0x67,0x75,0xC7,0x50,0x21,
+0x05,0xAF,0x38,0xAE,0x2E,0xB9,0x86,0xAC,0xA1,0x68,0xCD,0x36,0xF6,0xA1,0x36,0xC4,
+0xCC,0x1A,0x8D,0xD2,0x22,0xB5,0x94,0xB2,0x25,0xF4,0xD5,0xB2,0x69,0xD8,0x4F,0x22,
+0x91,0x30,0xA7,0xA5,0x21,0xB6,0xC5,0xE0,0xE1,0xA8,0x4D,0x76,0xE3,0x4B,0xDC,0x3B,
+0x28,0x7A,0xED,0x56,0x8F,0x18,0xAA,0x21,0x1F,0xF9,0xE2,0x88,0x48,0xD9,0x4E,0x02,
+0xF7,0xD8,0x4F,0x2B,0xEC,0x7B,0x7F,0x97,0x9E,0x50,0xCA,0x09,0x6B,0xCB,0x5C,0x33,
+0x56,0x42,0xD5,0x10,0x01,0x96,0xC1,0xC4,0xAE,0x24,0x8E,0x39,0xC5,0x78,0xEF,0x2E,
+0x71,0x9F,0x08,0xEA,0x0C,0x9B,0xF3,0xFB,0x82,0x1E,0x98,0x15,0x0A,0x11,0x86,0x88,
+0xD8,0x1E,0x89,0xC2,0xC8,0x5F,0x6B,0xA7,0xB1,0x38,0x8D,0x26,0x7E,0x21,0xB6,0xCC,
+0x94,0x11,0x86,0x81,0x8D,0x1A,0xDB,0x52,0x88,0x67,0xEB,0x1F,0x81,0x6C,0xFB,0x7E,
+0x20,0x61,0xF6,0x45,0xA6,0x31,0x8C,0x2E,0xF5,0xEC,0x1D,0x62,0xA4,0xA2,0x35,0x95,
+0xA5,0xDB,0x4C,0x7A,0x2A,0xBD,0x96,0xB8,0x99,0x16,0x8B,0x0E,0x04,0xD6,0x41,0x41,
+0xFC,0x3E,0xA9,0xC6,0x77,0xE0,0x64,0x17,0x84,0x79,0xF9,0x13,0x7B,0x00,0x97,0xE8,
+0xDE,0xC2,0x55,0x18,0x24,0xB3,0xF5,0xD5,0x83,0x3F,0xB8,0x14,0x8B,0x64,0xF3,0x7C,
+0x88,0x0E,0x99,0x82,0x4A,0xDD,0x12,0x5C,0x6D,0x3E,0x57,0xFA,0x27,0xC4,0x53,0x70,
+0x6D,0x80,0x17,0xE9,0x04,0x93,0xF1,0xF1,0x1C,0xAB,0xB3,0x8B,0x7D,0xDC,0x4B,0x32,
+0x9B,0x38,0xAF,0xA7,0xE5,0x72,0x5D,0xBC,0x5E,0x18,0x42,0xC9,0xFA,0x75,0xE2,0x1C,
+0x33,0x57,0xC0,0x60,0xB2,0x25,0xDC,0x6A,0xBA,0x60,0xDE,0x2D,0x40,0xC2,0x55,0x11,
+0xCF,0xE7,0x70,0x2C,0xFF,0x68,0x6E,0x95,0xC6,0xCA,0x08,0x51,0x1A,0xDA,0x4D,0x53,
+0x23,0x9C,0x0B,0xBB,0x3F,0xA8,0xE6,0xDD,0x75,0x64,0x15,0xE2,0x34,0xF2,0x65,0x55,
+0x00,0x8E,0x19,0x8A,0xAC,0x3B,0xFF,0x57,0x31,0xB0,0x85,0xA6,0xDA,0x9A,0x0D,0xD3,
+0xED,0x1B,0x8C,0xF2,0x45,0xD2,0x51,0x10,0xE4,0x9D,0x7D,0x73,0xC2,0x4A,0xDD,0x1B,
+0x35,0x8B,0x1C,0xBA,0x52,0xC5,0x50,0x06,0x7B,0x09,0x76,0xEC,0xA2,0x7E,0xE9,0x4F,
+0x77,0x43,0xD4,0x30,0x93,0x04,0xF8,0x6F,0xB9,0x32,0x8F,0x2E,0x41,0x2C,0xBB,0xFE,
+0xB4,0xFE,0x69,0x4E,0x7D,0xEA,0x17,0x6E,0x00,0xE5,0xE1,0x97,0x3B,0xDB,0x4C,0x73,
+0xD6,0xD9,0x4E,0x0B,0xFD,0x6A,0x1F,0xE6,0xCE,0xC0,0x0A,0x59,0xDB,0x74,0xE3,0x3C,
+0xBF,0x18,0x8F,0xA3,0xDE,0x49,0x4A,0x90,0x9B,0x65,0xFA,0x0C,0xD3,0x6F,0xF8,0x2F,
+0xA9,0x0F,0x98,0xA2,0xE8,0x7F,0x6F,0x83,0xD7,0xBB,0x68,0x40,0x2B,0x10,0x87,0xA8,
+0x0C,0x5A,0xCD,0x52,0xC5,0x52,0x59,0x98,0x69,0x2A,0x47,0xFE,0x96,0x95,0x02,0x90,
+0x07,0xBC,0x2B,0xBF,0x06,0x91,0x80,0x82,0xF1,0xF8,0x0D,0x66,0x99,0xBC,0x2B,0xB6,
+0x22,0x72,0xE5,0x54,0x67,0xF0,0x24,0x47,0x81,0x4C,0xC9,0x16,0xF3,0x80,0x17,0xE0,
+0xE1,0xCF,0x58,0x2A,0x2D,0xBA,0xD7,0xFE,0xBE,0x74,0xCE,0x29,0xCD,0x63,0xF4,0x3D,
+0xA1,0x14,0x83,0xB1,0x33,0xA4,0xF4,0xC3,0x16,0xD2,0xC0,0x81,0x43,0x3F,0xA8,0xEF,
+0xA0,0xFA,0x6D,0x5E,0x9D,0x0A,0x9B,0x02,0xB3,0x4B,0xFC,0x24,0x3D,0x07,0x90,0xA9,
+0x9E,0x19,0x8E,0x83,0x6C,0xFB,0x77,0x1F,0xD1,0xDC,0x09,0x46,0x84,0x4D,0xDA,0x5A,
+0x4F,0x7C,0xEB,0x37,0x2F,0xB8,0xA6,0x8D,0xA2,0x3A,0x9C,0x35,0x13,0x2F,0xB8,0xAF,
+0xEE,0xE6,0x71,0x0C,0xD4,0x43,0x39,0xE9,0x1D,0x8A,0x93,0x8A,0xD7,0xA0,0x37,0xE4,
+0x7A,0x79,0xEE,0x07,0xB4,0x23,0xBD,0x0D,0x63,0x53,0x34,0xF4,0x1C,0x06,0x91,0x89,
+0xB9,0xC4,0x53,0x79,0x05,0x92,0xD1,0xD0,0x62,0x72,0x14,0xF5,0xF5,0x5C,0xCB,0x3A,
+0x30,0xAA,0x3D,0x9E,0x3B,0xAC,0xF6,0xC9,0x98,0x37,0xAB,0x0F,0x0E,0xDE,0x49,0x43,
+0x85,0x34,0xA3,0xB5,0xAD,0x3A,0xDF,0x76,0x9A,0x44,0xDA,0x0D,0x39,0xC8,0x5F,0x62,
+0x6C,0x6E,0xF9,0x06,0x54,0xC3,0x31,0x61,0x12,0xC6,0xD0,0x85,0xC7,0x6B,0xFC,0x3F,
+0x8F,0x3C,0xAB,0xB7,0x28,0xBF,0xE7,0xCB,0x5B,0x2D,0x72,0xCC,0x5D,0x33,0xA4,0xFD,
+0xD4,0xCA,0x5D,0x1A,0x78,0xEF,0x27,0x5B,0xA0,0x49,0xED,0x37,0x86,0x5E,0xC9,0x4B,
+0x2C,0xB5,0x22,0x9D,0x51,0xC6,0x01,0x54,0x71,0x70,0x05,0xE6,0x25,0xD7,0x40,0x61,
+0x63,0x47,0xD0,0x20,0xBD,0x2A,0x9F,0x26,0xEB,0xD1,0x3E,0x7C,0xB7,0x94,0x03,0xB0,
+0x45,0x74,0xE3,0x35,0x68,0xFF,0x67,0x0B,0x10,0xB5,0xA1,0x87,0xBA,0xAE,0x39,0x87,
+0xEA,0x29,0xBE,0xC7,0x76,0xE1,0x44,0x36,0x2C,0xDF,0xF7,0xBB,0x29,0x03,0x94,0xB9,
+0xA6,0x26,0xB1,0x84,0xAB,0x3C,0xBE,0x11,0xB0,0x19,0xAD,0x27,0xCE,0x9E,0x09,0xC3,
+0xFF,0xC3,0x54,0x38,0x70,0xE7,0x25,0x51,0xF7,0x9F,0x6C,0x60,0xBE,0x61,0xF6,0x4C,
+0x81,0xE6,0x20,0x2C,0xF9,0xF5,0xD5,0x6B,0x9E,0x9B,0x97,0x42,0x09,0xA7,0x05,0xE9,
+0x29,0x8F,0xE1,0xED,0x31,0x3D,0x97,0xE1,0x2F,0xC9,0xC5,0xA1,0xCB,0x5E,0xC7,0xD2,
+0xC6,0x8E,0x0F,0x03,0x8C,0x80,0x54,0x9F,0xA2,0x3E,0x32,0xDB,0x72,0x30,0x7E,0x05,
+0xCE,0x06,0x8F,0x83,0xAB,0xA7,0x36,0xDA,0xED,0x91,0x9D,0x3B,0xBC,0xDB,0xB0,0x20,
+0xBF,0x75,0x8D,0x81,0x95,0x99,0x2F,0xFD,0x82,0x3F,0x33,0xFA,0xB4,0xD9,0xB8,0x2A,
+0x37,0x3D,0x4D,0x41,0xEE,0xE2,0xC3,0x6A,0x84,0x17,0x1B,0xD4,0x07,0xC4,0x0B,0x84,
+0x2E,0xB7,0xDE,0xD2,0xFC,0xF0,0xE0,0x5B,0x02,0x7F,0x73,0x3A,0x43,0x54,0x4F,0x50,
+0x80,0xF0,0x37,0x3B,0x69,0x65,0x0D,0x23,0xCA,0xAF,0xA3,0x22,0x96,0xAC,0x9A,0x7D,
+0xF5,0xA7,0x15,0x19,0x00,0x0C,0xC2,0x85,0x31,0x65,0x69,0x13,0xF3,0x18,0xFF,0xAC,
+0x06,0x1E,0x5F,0x53,0xBD,0xB1,0x01,0xFB,0xEC,0x86,0x8A,0x2D,0xCC,0x1F,0xC0,0x94,
+0x25,0x23,0x41,0x4D,0x66,0x6A,0x41,0x60,0x3E,0xDA,0xD6,0xA3,0x64,0x11,0x68,0x32,
+0x4A,0xE2,0xEF,0xE3,0x88,0x84,0x40,0x8F,0x78,0xE2,0xEE,0xDD,0xC1,0x2D,0xCD,0xAB,
+0x9B,0x70,0xAC,0xA0,0x6A,0x66,0x5F,0x72,0xFE,0x8A,0x86,0x33,0xE9,0x2B,0xE5,0x85,
+0xBE,0x63,0x9A,0x96,0x7D,0x71,0x49,0x73,0x79,0xF5,0xF9,0xCB,0xA5,0xB9,0xA9,0x5B,
+0x88,0x78,0xB7,0xBB,0x28,0x24,0xEC,0x83,0x41,0x70,0x7C,0x76,0x1B,0x96,0x17,0xCA,
+0x51,0x62,0x74,0x78,0xCE,0xC2,0xE7,0x6E,0x67,0x59,0x55,0x79,0x83,0xDC,0x8F,0x18,
+0x00,0x30,0x77,0x7B,0xB6,0xBA,0x59,0xA8,0xEB,0xB9,0xB5,0x15,0x10,0xC5,0x1C,0x92,
+0x27,0x29,0x49,0x45,0xD8,0xD4,0xD0,0x4F,0x92,0x3B,0x37,0xEE,0xEA,0x7A,0xE6,0xD7,
+0x0E,0x96,0xDF,0xD3,0x46,0x4A,0x65,0x64,0xB3,0x2D,0x21,0xD9,0xE8,0x0B,0xE4,0xA4,
+0xE0,0x81,0x26,0x2A,0x1C,0x10,0x8C,0xD7,0xEE,0x8E,0x82,0x27,0x60,0x01,0x6C,0x26,
+0xA6,0xFF,0x1E,0x12,0x6B,0x67,0x7E,0x52,0x8B,0xA8,0xA4,0x64,0xA3,0xD8,0xAF,0x3C,
+0x77,0x6D,0x5D,0x51,0x0E,0x02,0xAF,0xE6,0x7E,0xCA,0xC6,0xF3,0xD0,0x4D,0xDC,0xDA,
+0xE8,0x09,0xA6,0xAA,0x94,0x98,0x0E,0xDD,0x35,0x45,0x49,0x37,0x6F,0x42,0x63,0x6A,
+0x6C,0xED,0xC6,0xCA,0x0B,0x07,0x9A,0xD6,0x58,0xE3,0xEF,0xFC,0x11,0xE5,0x1D,0xB3,
+0xB6,0xEB,0x1A,0x16,0x06,0x0A,0xA5,0xE4,0x56,0x4B,0x47,0x5A,0x62,0x70,0x6E,0x55,
+0x95,0xD6,0x04,0x08,0x5B,0x57,0x0A,0x16,0x68,0xE6,0xEA,0xC9,0x5E,0x26,0x52,0x3F,
+0x6F,0xF1,0xD9,0xD5,0x54,0x58,0x46,0x55,0x12,0x7B,0x77,0x2E,0xC2,0x7C,0xCE,0xF9,
+0xF4,0xB1,0x02,0x0E,0xB1,0xBD,0x1F,0xE9,0x9D,0x84,0x88,0x5E,0x85,0xBD,0x89,0x7F,
+0x36,0x2B,0x5A,0x56,0x4E,0x42,0x6F,0x66,0x2C,0xD6,0xDA,0xBD,0x29,0xA3,0x25,0xCD,
+0xF6,0xBB,0x0A,0x06,0xB8,0xB4,0x34,0xCB,0x9A,0xBB,0xB7,0x66,0xD2,0x3C,0xDE,0xA9,
+0xD0,0xB4,0x23,0x2F,0xC7,0xCB,0xCC,0x4C,0xB0,0x32,0x3E,0xC5,0x03,0xD4,0x0F,0x90,
+0x4E,0xC6,0xCF,0xC3,0x35,0x39,0x83,0xF1,0x61,0x71,0x7D,0x57,0x99,0xEF,0x95,0x31,
+0xBC,0x69,0x92,0x9E,0xD7,0xDB,0x9C,0x0C,0xD2,0x2B,0x27,0xBE,0xDB,0x1E,0xD7,0x82,
+0x97,0xDC,0x0C,0x00,0x12,0x1E,0xE1,0xB4,0xB2,0x3A,0x36,0xCF,0x4F,0x46,0x43,0x4E,
+0x21,0x07,0x61,0x6D,0x51,0x5D,0x73,0x65,0xAA,0xBE,0xB2,0x53,0xE4,0x19,0xE8,0xBA,
+0x08,0xB8,0xF7,0xFB,0x48,0x44,0x08,0x07,0x71,0x75,0x79,0x43,0xFB,0x1A,0xF7,0xA6,
+0x98,0x6C,0xB3,0xBF,0x98,0x94,0x10,0xCF,0xC7,0x18,0x14,0x98,0xAD,0xBB,0xA1,0x51,
+0x48,0xE8,0xE7,0xEB,0xD1,0xDD,0xFB,0x6D,0x89,0xA0,0xAC,0x6E,0xF8,0x4B,0xF4,0xF4,
+0x2A,0x93,0xFE,0xF2,0x14,0x18,0x86,0xD5,0xA9,0xA1,0xAD,0x4F,0x34,0xD1,0x38,0xA2,
+0x7D,0xEF,0xD5,0xD9,0xE0,0xEC,0xAE,0x09,0x05,0x40,0x4C,0x02,0x19,0xE7,0x15,0xB9,
+0xF9,0x0B,0xB5,0xB9,0x1D,0x11,0xAD,0xF7,0x63,0x79,0x75,0x5D,0x0D,0xB7,0x01,0xFD,
+0x75,0x67,0x55,0x59,0x7A,0x76,0x0F,0x32,0xA5,0x01,0x0D,0xE3,0xA7,0xC8,0xAB,0x28,
+0x3F,0xB5,0xCD,0xC1,0x36,0x3A,0xD1,0xA0,0xF0,0x22,0x2E,0x95,0x82,0xFC,0x8E,0x39,
+0x57,0x4C,0x5C,0x50,0xDD,0xD1,0xE5,0x7F,0x15,0x44,0x48,0x16,0xD3,0x1C,0xDF,0x88,
+0xA4,0xF5,0x16,0x1A,0x9C,0x90,0x04,0xDF,0x34,0x52,0x5E,0x21,0x2A,0xF2,0x26,0x9F,
+0xB8,0x4D,0xB2,0xBE,0xC5,0xC9,0xBF,0x3D,0xDE,0x8B,0x87,0x12,0x24,0x91,0x28,0xF2,
+0x8A,0x72,0xBF,0xB3,0x80,0x8C,0x4A,0x8D,0x99,0xA4,0xA8,0x7A,0xA2,0xF8,0xAE,0x1D,
+0x40,0x60,0x67,0x6B,0x78,0x74,0x7C,0x43,0x8E,0x9F,0x93,0x56,0x2F,0xC2,0x23,0xAA,
+0x10,0x24,0x73,0x7F,0x30,0x3C,0xB6,0xC1,0xFF,0x9D,0x91,0x25,0xDC,0x5F,0xD0,0xC4,
+0x22,0x1B,0x7E,0x72,0xED,0xE1,0x91,0x3B,0x59,0xF4,0xF8,0xEA,0xF0,0x49,0xFC,0xFE,
+0xBA,0x47,0xBA,0xB6,0x6C,0x60,0x38,0x13,0x1D,0xC4,0xC8,0x9E,0xC3,0x5C,0xCF,0xD8,
+0x0A,0xB2,0xFF,0xF3,0x63,0x6F,0x74,0x50,0xAF,0x89,0x85,0x61,0xFA,0x3A,0xF6,0x87,
+0x45,0x52,0x50,0x5C,0x68,0x64,0x2C,0x03,0xF3,0x3D,0x31,0x89,0x57,0x04,0x5B,0x14,
+0x14,0x00,0x53,0x5F,0x42,0x4E,0x71,0x74,0xEA,0xAE,0xA2,0x03,0x93,0x9C,0x9F,0x48,
+0x7B,0xC1,0xFD,0xF1,0x08,0x04,0xC8,0x87,0xD3,0x3C,0x30,0xA8,0x6D,0x33,0x61,0x19,
+0xAE,0x77,0x9E,0x92,0xAA,0xA6,0x17,0xFA,0xE2,0x2E,0x22,0x8B,0xEC,0x1B,0xE0,0xB0,
+0xC3,0xBC,0x38,0x34,0x7C,0x70,0x68,0x53,0xA1,0x21,0x2D,0xC7,0x1F,0x86,0x13,0xDE,
+0x20,0x11,0x76,0x7A,0xF2,0xFE,0x8D,0x38,0xE3,0x39,0x35,0x9D,0x6E,0x62,0x62,0x4B,
+0x8C,0x5C,0x97,0x9B,0x4A,0x46,0x7B,0x76,0xCD,0x90,0x9C,0x1A,0x2C,0x93,0x20,0xF8,
+0x0D,0x8A,0xC0,0xCC,0x25,0x29,0xD3,0xB1,0xC0,0x27,0x2B,0xA0,0xC8,0x0F,0xC4,0x80,
+0x5D,0xCE,0xD4,0xD8,0x13,0x1F,0xC0,0x94,0x44,0x47,0x4B,0x44,0x87,0xCC,0x8B,0x0C,
+0x47,0x58,0x58,0x54,0xA9,0xA5,0x45,0xAB,0x90,0x33,0x3F,0xE4,0xEB,0x5A,0xE7,0xF6,
+0xB5,0xF7,0x05,0x09,0x4C,0x40,0x1C,0x17,0x39,0xE5,0xE9,0x9B,0xF6,0x28,0xFA,0x99,
+0x24,0x35,0x56,0x5A,0xB0,0xBC,0x3E,0xC9,0xAD,0x81,0x8D,0x6B,0xF1,0x69,0xFD,0xDF,
+0x20,0xAD,0x27,0x6A,0x7F,0x32,0x37,0xE2,0x06,0x0E,0x43,0xA2,0x38,0x23,0x75,0xB1,
+0xD0,0x08,0x72,0x3F,0xC7,0x8A,0xC1,0xAC,0xA4,0x47,0x0A,0x49,0x6C,0xF3,0x21,0x35,
+0x8C,0xE0,0xC6,0x8B,0x9F,0xD2,0x5B,0x6E,0x62,0x3F,0x72,0xF7,0x0A,0x16,0x47,0xB6,
+0xBA,0xFB,0xEB,0xA6,0x7E,0x33,0x16,0xC2,0xBE,0xCB,0x86,0xDF,0x21,0x41,0x6C,0xCA,
+0x2D,0x17,0x90,0xDD,0xE5,0xA8,0x96,0xD9,0xDF,0xCD,0x80,0xB8,0xD3,0xFC,0x9E,0x85,
+0x75,0xDB,0x04,0x49,0xF4,0xB9,0xE7,0xB9,0x67,0x08,0x45,0xC5,0x4D,0xD7,0x00,0x30,
+0x71,0xFF,0x24,0x69,0xAA,0xE7,0x1A,0x1A,0x6C,0x97,0xDA,0x51,0x28,0x63,0x65,0xE1,
+0x72,0xE3,0x3B,0x76,0x61,0x2C,0x0A,0xC1,0x0E,0x8E,0xC3,0x2A,0xBE,0x4A,0xF3,0x5E,
+0xFA,0xAB,0xFB,0xB6,0x54,0x19,0x4B,0xB5,0x56,0x1A,0x57,0xE6,0x6D,0xD3,0x20,0x14,
+0x99,0xC6,0xF5,0xB8,0x8D,0xC0,0x78,0x5F,0xB4,0x43,0x0E,0x5D,0xC9,0xCF,0x84,0xAC,
+0xA9,0xF3,0xF0,0xBD,0x40,0x0D,0x0F,0xE5,0x28,0xA7,0xEA,0x25,0xB8,0x2B,0xF5,0x39,
+0x93,0x44,0x7D,0x30,0x7B,0x36,0x23,0xF2,0xE6,0x5F,0x12,0x13,0x60,0xE1,0x2D,0x2B,
+0xA3,0x71,0x78,0x35,0xDE,0x93,0xBA,0xCE,0x59,0xA5,0xE8,0x56,0x8A,0x1E,0xC7,0x3E,
+0xDC,0xA4,0xD2,0x9F,0xA6,0xEB,0x04,0x08,0x9C,0xC2,0x8F,0xF4,0x6A,0x92,0x27,0x52,
+0x77,0xD1,0x0C,0x41,0x9B,0xD6,0x4F,0x7E,0x14,0x02,0x4F,0xBC,0x83,0x3C,0xCE,0x15,
+0x97,0x60,0x5D,0x10,0xFD,0xB0,0xCC,0x9B,0xCB,0xE9,0xA4,0x88,0x12,0x54,0x5F,0xEC,
+0xF7,0x11,0x4C,0x01,0x71,0x3C,0x5A,0x81,0x1F,0x9D,0xD0,0x28,0x8C,0x7F,0xC1,0x59,
+0x6F,0x4D,0x88,0xC5,0xE2,0xAF,0xD0,0x98,0x68,0xB7,0xFA,0x75,0x8F,0x2E,0xC2,0x0B,
+0x70,0xE9,0x33,0x7E,0xF1,0xBC,0xD2,0x89,0x91,0x75,0x38,0x4E,0x41,0xC5,0x0C,0x2E,
+0x58,0x40,0xB2,0xFF,0xE3,0xAE,0xF1,0xB8,0xEC,0xD7,0x9A,0x91,0x22,0x10,0x6F,0x98,
+0x22,0xA7,0x2F,0x62,0x2B,0x66,0xB3,0x32,0x50,0x32,0x7F,0xC8,0xA1,0x49,0xEC,0x42,
+0x34,0x9D,0x03,0x4E,0x42,0x0F,0x7C,0x94,0xAA,0xEF,0xA2,0xEF,0xAC,0x7B,0xE1,0x7D,
+0x51,0xDE,0x25,0x68,0x56,0x1B,0x38,0xC4,0x3B,0xBC,0xF1,0x2D,0x20,0x61,0x6D,0xEB,
+0x37,0x81,0x1C,0x51,0x1B,0x56,0xC7,0x76,0x78,0xB3,0xFE,0x61,0x65,0xD1,0x28,0x1E,
+0x31,0xAF,0x34,0x79,0xEC,0xA1,0xBD,0xFB,0xC0,0x76,0x3B,0x1C,0x87,0x2C,0xCA,0x01,
+0xA7,0x55,0x58,0x15,0x98,0xD5,0x1D,0x2F,0xFF,0xCC,0x81,0x99,0x0B,0x36,0x46,0x97,
+0x02,0x86,0x2E,0x63,0x5E,0x13,0x32,0xC6,0xA2,0x6F,0x22,0x67,0x89,0x4F,0xC4,0x6C,
+0x43,0xC0,0x29,0x64,0x3A,0x77,0xC2,0x52,0x7C,0x93,0xDE,0x45,0xDA,0xDE,0x97,0xAE,
+0x09,0x12,0xB1,0xFC,0xE6,0xAB,0xC4,0x88,0x53,0x2D,0x60,0xD4,0xA9,0x4B,0xE4,0x48,
+0xED,0x87,0xC0,0x8D,0xFE,0xB3,0x9E,0xCA,0x38,0xA3,0xEE,0x31,0xE7,0xA8,0xAA,0xE5,
+0x64,0xD9,0x17,0x5A,0xF8,0xB5,0xF9,0xAB,0xDA,0xFA,0xB7,0x8A,0x1F,0x66,0x52,0xD3,
+0xF8,0xA1,0xF3,0xBE,0x4F,0x02,0x43,0xA6,0x1D,0x95,0xD8,0x22,0x48,0xE7,0x05,0x05,
+0xAF,0xDD,0xD8,0x95,0xC8,0x85,0x8D,0xEF,0x01,0x31,0x7C,0x9A,0x92,0x5C,0xDF,0x64,
+0xB2,0x73,0x6B,0x26,0xE0,0xAD,0xA3,0xE9,0x96,0x4A,0x07,0x76,0x52,0xD4,0x1F,0x2C,
+0xC7,0x24,0x49,0x04,0x70,0x3D,0x7B,0xA1,0x48,0xB6,0xFB,0x54,0xE8,0xEB,0xA5,0xA9,
+0x3F,0x09,0x9C,0xD1,0xA0,0xED,0x63,0x69,0x30,0x23,0x6E,0xB9,0x01,0x45,0x4C,0xEE,
+0x35,0x8B,0x14,0x59,0x16,0x5B,0xF8,0x44,0x8A,0xEE,0xA3,0xCE,0x3E,0x42,0x73,0xD6,
+0xCC,0xB0,0xD6,0x9B,0x44,0x09,0x1B,0xF5,0x00,0x26,0x6B,0x8C,0xFF,0xEA,0xB2,0xBF,
+0xB0,0x79,0x63,0x2E,0x4E,0x03,0x62,0x86,0xB1,0x74,0x39,0x6F,0x50,0xA5,0x1D,0x5F,
+0x5B,0x5C,0xAD,0xE0,0xE1,0xAC,0x82,0xC9,0xF4,0x53,0x1E,0x0D,0xD0,0xAD,0x9D,0xD7,
+0xD2,0x02,0x7A,0x37,0x2A,0x67,0x92,0x12,0x18,0xA2,0xEF,0x10,0x45,0xD5,0x08,0x3A,
+0x40,0xDC,0x36,0x7B,0x55,0x18,0x6A,0x95,0x19,0xB5,0xF8,0x06,0x73,0xF0,0x3E,0x29,
+0xB7,0x41,0x5C,0x11,0x86,0xCB,0x20,0x0C,0x05,0x11,0x5C,0xBE,0xAB,0x3A,0xE6,0x3B,
+0xFD,0x93,0xC4,0x89,0xAF,0xE2,0x2F,0x2A,0xE8,0xF7,0xBA,0xB5,0x68,0xE3,0x25,0x21,
+0x74,0xCD,0x13,0x5E,0x59,0x14,0x74,0x87,0x90,0x62,0x2F,0x58,0x80,0x6D,0xCD,0x47,
+0x73,0xF5,0x2C,0x61,0xBA,0xF7,0x4A,0x5A,0xEE,0xDF,0x92,0x9B,0xCA,0x9E,0x87,0xFE,
+0x46,0xF2,0x1E,0x53,0x3D,0x70,0x84,0x13,0xE4,0x57,0x1A,0x19,0x30,0x21,0x7D,0xBB,
+0x7A,0x6B,0xBB,0xF6,0x05,0x48,0xFA,0x55,0x0B,0xB9,0xF4,0x18,0x9E,0x4E,0xD3,0x7A,
+0x26,0x83,0x0F,0x42,0x15,0x58,0xAA,0x15,0x8D,0xD1,0x9C,0xF6,0x82,0x1C,0xCF,0x34,
+0xB3,0x65,0x7C,0x31,0x77,0x3A,0x3D,0xE0,0x39,0xB4,0xF9,0x27,0xC1,0xCD,0x8C,0xA6,
+0x8E,0xEA,0xCE,0x83,0x3C,0x71,0xA5,0x33,0xBD,0xD4,0x99,0xC3,0x19,0x07,0x54,0xB4,
+0x29,0x33,0xB0,0xFD,0x9A,0xD7,0x6E,0x5E,0xB6,0x4B,0x06,0x57,0x79,0x83,0x34,0x50,
+0x11,0x8E,0x35,0x78,0xE4,0xA9,0xB7,0xF9,0x24,0x07,0x4A,0x89,0x96,0x4C,0xDB,0x70,
+0xAE,0xCB,0xCF,0x82,0x66,0x2B,0x4C,0x80,0xC3,0x69,0x24,0x00,0xA8,0x6B,0xE5,0x69,
+0x6A,0x7F,0xBF,0xF2,0x51,0x1C,0x7E,0x85,0xBC,0xC3,0x8E,0xD5,0xF9,0x8B,0xB4,0xD8,
+0x60,0xFD,0x37,0x7A,0xF2,0xBF,0x80,0xD8,0x0F,0x99,0xD4,0x3C,0x00,0x65,0x4D,0xCF,
+0x57,0xF0,0x0D,0x40,0x64,0x29,0x3F,0xF1,0xA0,0x67,0x2A,0x6D,0xD5,0x9D,0x98,0xE2,
+0xC8,0x94,0xF6,0xBB,0x09,0x44,0xE4,0x47,0x0D,0x91,0xDC,0x36,0x85,0x5D,0xC8,0x72,
+0x84,0x68,0x46,0x0B,0xAE,0xE3,0x0E,0x0A,0x9A,0xEA,0xA7,0xDA,0x10,0x25,0x5D,0x9F,
+0xBF,0xC9,0xDC,0x91,0xED,0xA0,0x9C,0xDB,0x27,0x18,0x55,0x95,0xFC,0xBB,0xB1,0xED,
+0x4D,0x66,0x81,0xCC,0x39,0x74,0x90,0x03,0x7D,0x84,0xC9,0x53,0xDB,0xFE,0x96,0x8F,
+0x1B,0x0C,0xBD,0xF0,0x94,0xD9,0x03,0x3D,0x8F,0xD9,0x94,0xFC,0xC5,0xDD,0x88,0xB2,
+0xD6,0x26,0x5A,0x17,0x5B,0x16,0x07,0xF6,0x82,0x6E,0x23,0x46,0xDD,0x9F,0x90,0xE8,
+0x17,0xA0,0x1D,0x50,0xA4,0xE9,0x77,0x79,0x3E,0x8B,0xC6,0x1F,0x06,0x04,0x4B,0xA8,
+0xF5,0x7F,0x19,0xD0,0x70,0x11,0xD7,0x34,0x3B,0x3C,0x1E,0x94,0xBB,0x92,0xB7,0xBA,
+0xCB,0x58,0x00,0xEE,0xF9,0x7F,0x30,0x5A,0xB9,0xC7,0x9C,0xED,0xFE,0x68,0x4D,0x05,
+0x5D,0x71,0xBF,0x78,0x4C,0xE1,0x1B,0xC4,0xAF,0xF0,0x8A,0xCC,0x8D,0x6A,0x4F,0x74,
+0xA4,0x9F,0xA8,0x81,0xA5,0xBB,0xA8,0x9E,0x0C,0x0E,0x29,0x91,0x0F,0xE2,0xC7,0x7E,
+0x9C,0xD9,0xD6,0xB9,0x57,0xCC,0x2D,0xE9,0x2A,0x4D,0x0F,0xF4,0x15,0x21,0x04,0xA7,
+0xDF,0x08,0x44,0xFA,0x86,0xA9,0x99,0x8C,0x48,0xDA,0x6D,0x01,0xF3,0x52,0x77,0x32,
+0x24,0x97,0x20,0x01,0x27,0x33,0xA2,0x16,0xC7,0x1E,0xE2,0x4A,0x43,0xED,0xC8,0x3D,
+0x44,0x13,0xC4,0x61,0xB3,0xAC,0xA9,0x89,0x61,0xD5,0x44,0x27,0x9A,0x93,0xB6,0x9A,
+0x98,0xC9,0xC2,0xBD,0x8C,0xA1,0x9B,0x84,0xC9,0x73,0xEC,0x29,0x7C,0xE0,0xC5,0x0F,
+0x86,0xEA,0xFF,0xA3,0x23,0xFC,0x69,0xD9,0x64,0xE0,0x41,0x17,0x16,0xDC,0xF9,0x59,
+0x5B,0x10,0xD8,0x7E,0x6F,0xF3,0x2A,0xD6,0xF9,0x07,0xDC,0x6D,0xD0,0x40,0x65,0x03,
+0x80,0x8B,0x98,0xA5,0x36,0x16,0x96,0x33,0x06,0x77,0x23,0xE2,0x56,0x07,0x22,0xC2,
+0xD8,0x49,0x02,0xFD,0x46,0xE9,0x19,0xCC,0x54,0x94,0x71,0x53,0xE4,0xAB,0x8E,0xDC,
+0x88,0x89,0x92,0xAD,0x1D,0x1F,0xB4,0x3A,0x39,0x4F,0x1C,0xE5,0x80,0x50,0x75,0x43,
+0xA1,0xAF,0x9D,0x84,0xE5,0x60,0x33,0x45,0xB0,0xEC,0x95,0xCF,0xB9,0x81,0xA4,0xAB,
+0x4D,0x31,0xEF,0x68,0xAA,0x92,0x8E,0xB7,0xF3,0x7E,0xD6,0x1E,0x18,0x1B,0x3E,0x90,
+0xA2,0xFE,0xCF,0x87,0xFC,0x5E,0x14,0x7B,0x19,0x6B,0x3C,0xE1,0xC0,0x8B,0xAE,0xD8,
+0x63,0x56,0xA6,0x46,0xBE,0x96,0x9E,0xB3,0x4B,0x88,0x6E,0x50,0xFB,0x49,0x6C,0x21,
+0x8D,0xB9,0xA7,0xA8,0x7D,0x2B,0xE0,0x0E,0xBC,0xF2,0x99,0xDD,0x2C,0xF0,0xD5,0x4F,
+0x0D,0xB1,0x2F,0x28,0x1F,0x0C,0xA5,0x29,0x13,0x12,0x36,0x92,0x09,0x3E,0x1B,0xA4,
+0x0F,0xC0,0x5C,0x2A,0x06,0x32,0x82,0x17,0xBD,0xD3,0x98,0xFD,0x03,0x36,0x13,0xA6,
+0xCF,0x48,0x14,0xEA,0xEA,0x49,0x15,0x6C,0x95,0xFD,0xB0,0xFB,0xAD,0x85,0xA0,0xBB,
+0x5C,0x51,0x9E,0x79,0xC9,0x5B,0x24,0x7E,0xFD,0x13,0xD8,0x7D,0x79,0xC1,0xE4,0x2B,
+0xB5,0xFF,0xD9,0x90,0x24,0xCE,0x5C,0xEB,0x2D,0x0B,0x08,0xB5,0x54,0x14,0x31,0xD3,
+0x97,0x8A,0x8E,0xB2,0xEB,0xA7,0xFA,0x82,0xE7,0x3A,0xC2,0x4E,0x85,0x71,0x54,0x67,
+0xDD,0x79,0x37,0xF8,0x28,0x1A,0x84,0x3F,0x04,0x04,0x21,0x93,0xBD,0x4E,0x6B,0x60,
+0xC3,0x5A,0x0A,0xE6,0x68,0xC1,0x1F,0xE4,0x58,0x8A,0x7D,0x41,0x1B,0xE6,0xC3,0x6E,
+0x6D,0x35,0xCB,0x48,0x69,0x2F,0xF0,0x0A,0x60,0xF4,0x45,0x07,0x82,0x43,0x66,0x52,
+0x2E,0xE4,0x59,0x0B,0x76,0xCD,0x0D,0xE8,0x08,0x1A,0x2D,0x81,0xAC,0x6B,0x4E,0x54,
+0x18,0xC1,0x4A,0x3D,0x60,0xDA,0x0C,0xFF,0x77,0xE2,0x52,0x06,0x72,0x27,0x02,0xC6,
+0x35,0xF7,0x51,0x10,0xC5,0x8F,0xFC,0xAA,0xF2,0x5F,0xD7,0x3E,0xE3,0x99,0xBC,0xE9,
+0xF6,0x2E,0x4B,0xD3,0xCE,0x69,0x11,0x4C,0xDB,0x50,0xFE,0x18,0x31,0x01,0x24,0xA3,
+0xF1,0x6F,0x0D,0xD4,0x9F,0x97,0xBE,0xB2,0x1F,0x0C,0x3A,0x80,0xED,0x5E,0x7B,0x20,
+0xFC,0x5D,0x32,0xD9,0xB8,0x4A,0x44,0x6F,0x76,0xC3,0x53,0x26,0xD7,0x72,0x57,0x36,
+0x38,0xC5,0x6E,0x1D,0x11,0xCB,0x6C,0xEE,0x46,0xB7,0x63,0x62,0xF1,0x41,0x64,0x23,
+0x7D,0x75,0x9B,0x58,0x5D,0xC4,0x2F,0xE1,0x0B,0x48,0x2E,0xD0,0xAE,0x78,0x5D,0x45,
+0xD2,0x3A,0x7B,0xF7,0x05,0xCF,0x7C,0xEA,0xBF,0xA0,0x9A,0x8C,0x3D,0xD5,0xF0,0x7B,
+0xD1,0x6B,0x29,0xF4,0x58,0xE5,0x0B,0xC0,0x2C,0x2A,0x09,0x95,0x61,0x11,0x34,0xE3,
+0x7F,0x04,0xE8,0x5A,0xE1,0xAF,0xF8,0x8A,0xBE,0x81,0x9B,0xAC,0x30,0xEF,0xCA,0x4C,
+0x1C,0xD1,0x5E,0x39,0x3E,0x0D,0x85,0x28,0xAC,0xA2,0x89,0x9D,0x99,0x6E,0x4B,0x64,
+0xBA,0xBC,0x95,0x9F,0x41,0xDB,0x2C,0xFE,0xA3,0xEE,0x86,0xDE,0xF7,0x9D,0xB8,0xF9,
+0xF4,0x5F,0x38,0xD1,0xA4,0x55,0x47,0x70,0xBB,0xB4,0x9E,0x9C,0x62,0xEC,0xC9,0x1D,
+0x15,0xF3,0x75,0x30,0x52,0xED,0x09,0xC8,0x12,0x33,0x37,0xB2,0xD1,0xAE,0x8B,0xEC,
+0x42,0x72,0xA3,0x67,0xFA,0x82,0xCE,0xA7,0xA5,0x89,0x80,0xBF,0xA9,0x4A,0x6F,0x70,
+0x56,0x22,0xE7,0x73,0xE9,0xB4,0xEB,0x91,0xC5,0x6D,0xE0,0x3B,0x25,0x05,0x20,0xB3,
+0xDA,0x38,0x71,0xFF,0x6C,0x0E,0xD4,0x2B,0xB1,0xCD,0x94,0xEF,0xDF,0x69,0x4C,0x25,
+0x87,0xCA,0xDE,0xA2,0x35,0xEB,0x68,0xCE,0x67,0xB2,0x42,0x46,0xB0,0x74,0x51,0x57,
+0xD4,0x5B,0x1C,0xF1,0x17,0x17,0xB6,0x32,0x03,0x42,0x26,0xD2,0xF6,0x73,0x56,0x16,
+0x10,0xC3,0x40,0x35,0xB5,0x70,0x73,0x55,0xA9,0x97,0x8C,0xAD,0xAB,0x59,0x7C,0x61,
+0x8E,0xE8,0xF5,0xAB,0xC8,0xB5,0xCB,0x90,0xB8,0xE6,0x9D,0xCD,0x67,0xCD,0xE8,0x39,
+0xE3,0x5E,0x2E,0xC6,0x5A,0xF6,0x1A,0xD3,0x3C,0x7A,0x19,0xD5,0x93,0x66,0x43,0x66,
+0x75,0x77,0x91,0x50,0x21,0xEF,0x78,0xCA,0xF7,0x6A,0xD2,0x0E,0x8F,0x79,0x5C,0x65,
+0x31,0xE7,0x45,0x14,0x39,0x3F,0xB0,0x1A,0x9A,0xB1,0xBF,0xB8,0x78,0x2F,0x0A,0xC4,
+0x65,0x37,0xC1,0x40,0xD2,0x76,0x12,0x53,0x22,0x47,0x07,0xF6,0xDD,0x7A,0x5F,0x34,
+0x7C,0x55,0xBA,0x59,0xAF,0xB3,0xAA,0x96,0x23,0x66,0x06,0xD6,0x8B,0xB6,0x93,0xAE,
+0x57,0x02,0xC6,0x72,0x87,0x47,0x76,0x62,0xC2,0x2B,0xE7,0x7A,0x90,0x9B,0xBE,0x98,
+0x37,0x86,0x22,0x12,0x84,0xBA,0x88,0x9F,0xFB,0x74,0xDE,0x1C,0xD4,0x8F,0xAA,0xC8,
+0xD7,0x0A,0x4E,0xF2,0x26,0xDD,0x4D,0xF8,0x83,0xCA,0xA6,0xDA,0x01,0x25,0x00,0xB7,
+0x4F,0x40,0x9C,0x6A,0xF8,0x91,0xDF,0xB4,0xA0,0xBC,0x85,0x8F,0x10,0x00,0x25,0x83,
+0xDE,0x28,0x65,0xFB,0xCC,0x7A,0x00,0x5F,0xC6,0x3F,0xE3,0x6A,0xA1,0x51,0x74,0x63,
+0x94,0xDB,0xDC,0xB1,0x2D,0x3B,0xA0,0x1E,0xD0,0x08,0xF5,0x4B,0xB6,0xA8,0x8D,0x8D,
+0x30,0xC7,0x64,0x15,0x96,0x62,0x42,0x47,0x09,0x3B,0x2C,0xA1,0xDB,0xA6,0x83,0xEE,
+0x3D,0xF5,0x5B,0x18,0x63,0x27,0xF2,0x02,0x26,0x53,0x03,0xE6,0x34,0x20,0x05,0x87,
+0xE5,0x3F,0x49,0xC0,0x55,0xDF,0x3C,0xFA,0x1D,0x7F,0x38,0xF1,0x83,0xAD,0x88,0xBD,
+0x4C,0x54,0x74,0x8C,0x9B,0x8D,0xBA,0xA2,0x30,0xA2,0x26,0x28,0x95,0x0A,0x2B,0x12,
+0xC4,0xDC,0x7E,0x0E,0xC6,0x73,0x19,0x01,0x6A,0x11,0xCF,0x72,0x7B,0xF3,0x3C,0xEB,
+0xC6,0xDE,0x0F,0x7D,0xE7,0x44,0x0F,0x17,0xF4,0x3A,0x7A,0xEC,0x52,0x65,0x83,0x7D,
+0x3C,0x24,0xB0,0x38,0x9E,0xBF,0x8D,0x95,0x9A,0xDD,0xF3,0x82,0x75,0x5B,0x9A,0x43,
+0x3D,0x25,0x90,0x19,0x2D,0x56,0xD7,0xCF,0x27,0xA3,0x30,0x3F,0x19,0xEA,0x47,0xF2,
+0x43,0x5B,0x37,0xC0,0x40,0x9D,0x71,0x69,0xB8,0xA8,0xA4,0xA0,0x9D,0x8A,0xA3,0x92,
+0xFC,0xE4,0x38,0x70,0x0B,0x59,0xFE,0xE6,0x22,0x93,0x05,0x3A,0x02,0x71,0xC7,0x69,
+0x8F,0x97,0xAD,0x96,0xFE,0xCE,0x9C,0x84,0x47,0x27,0xD4,0x5F,0xD3,0x32,0x55,0x2A,
+0xA9,0xB1,0xC8,0xD5,0xE8,0xF4,0xB0,0xA8,0x9D,0x9C,0xB5,0x85,0x81,0x2E,0x1B,0x36,
+0xEE,0xF6,0x09,0x53,0x67,0x84,0x4F,0x57,0x78,0x20,0xEC,0x60,0x1A,0xF5,0x5B,0xED,
+0x72,0x6A,0x53,0x95,0x1D,0x63,0xD2,0xCA,0x77,0x63,0xA0,0x6F,0xE0,0x28,0x7C,0x30,
+0x4E,0x56,0x05,0xFF,0x23,0xF0,0x7F,0x67,0x2A,0x91,0x0F,0x32,0xC3,0x36,0x41,0x2E,
+0xB5,0xAD,0x9A,0x9B,0x14,0xFD,0x45,0x5D,0x19,0x84,0x29,0x01,0x3B,0xE3,0x6C,0xFB,
+0x2F,0x37,0xA1,0x3A,0xC5,0x6F,0x06,0x1E,0xEB,0x39,0x66,0xF3,0xA5,0x0F,0x1E,0x17,
+0xFE,0xE6,0x49,0x03,0xEF,0xCC,0x8F,0x97,0x94,0xBE,0x9E,0x8C,0x83,0x26,0x11,0x3E,
+0x05,0x1D,0xD6,0x67,0x59,0x17,0xE2,0xFA,0x62,0x13,0xC5,0x7A,0x43,0x76,0x81,0x6E,
+0x90,0x88,0xAE,0x8A,0x98,0x91,0xA5,0xBD,0x87,0xAF,0x9C,0x9F,0xBB,0xA3,0xAC,0xBB,
+0x5E,0x46,0x45,0xAF,0xD7,0x71,0x0A,0x12,0xA0,0xEA,0xFE,0xB8,0xB3,0x23,0x24,0x3B,
+0xE7,0xFF,0x2B,0x78,0x5A,0x0B,0xFD,0xE5,0x1D,0x94,0x3D,0x05,0x5C,0xCD,0x25,0xD5,
+0x25,0x3D,0xD2,0x43,0xEB,0xE8,0xAF,0xB7,0xD5,0x1E,0x7F,0xCD,0xF4,0x0C,0x4C,0x14,
+0xBA,0xA2,0xD9,0xD7,0xBF,0x88,0x9B,0x83,0x45,0x56,0xA7,0x5D,0xF5,0x1B,0x5A,0x03,
+0x6F,0x77,0x21,0xFA,0x77,0x90,0x4B,0x53,0xD0,0x2E,0x4A,0xC8,0x5B,0xF2,0x1D,0xEA,
+0x2B,0x33,0xB1,0x2E,0xF1,0x7E,0x23,0x3B,0xC2,0x1F,0x69,0xDA,0x42,0x61,0x97,0x79,
+0x98,0x80,0xAC,0x80,0xF7,0x50,0x0B,0x13,0xB9,0x88,0x85,0xA1,0xCA,0xA1,0xDF,0xB9,
+0xED,0xF5,0x58,0x01,0x0D,0x77,0xD6,0xCE,0xA4,0xFA,0xEA,0xBC,0x3F,0xC3,0x48,0xDB,
+0x48,0x50,0x64,0x98,0x4B,0x09,0xEE,0xF6,0x4A,0x15,0xEB,0x52,0x50,0x6D,0x89,0x75,
+0xE0,0xF8,0x6A,0x3E,0x99,0x87,0xB2,0xAA,0x91,0x8E,0xAB,0x89,0x73,0x73,0xB4,0x6B,
+0xDF,0xC7,0x6D,0x06,0x44,0xB9,0x51,0x49,0x2C,0xF0,0x68,0x34,0x80,0x39,0x0D,0x21,
+0xAF,0xB7,0xA9,0xB2,0x12,0xD3,0x6D,0x75,0xE2,0x1B,0x4D,0xFA,0x24,0x58,0xC8,0x40,
+0x37,0x2F,0xE3,0x60,0x34,0xDC,0x44,0x5C,0x04,0xF6,0x46,0x1C,0xFD,0x9B,0xD2,0x83,
+0x89,0x91,0xCC,0xF1,0x0C,0x61,0xC1,0xD9,0x51,0x06,0xE3,0x49,0xCB,0xB6,0xC9,0xAE,
+0xC5,0xDD,0x5E,0x2F,0x8B,0x99,0xBE,0xA6,0x46,0x07,0xF5,0x5E,0xEE,0x80,0xDA,0x98,
+0xD6,0xCE,0x4F,0x2D,0xDA,0xCB,0xBD,0xA5,0x4F,0x25,0xDE,0x57,0x7F,0xD3,0x18,0xCB,
+0xEF,0xF7,0x29,0x72,0x68,0x34,0xF0,0xE8,0x40,0x66,0x92,0x58,0xCF,0x96,0xED,0x8E,
+0xDC,0xC4,0x3C,0x54,0x2C,0x40,0xC0,0xD8,0xC1,0x4E,0x3B,0xD9,0x57,0x52,0xB1,0x4A,
+0xF0,0xE8,0x2A,0x6E,0x8A,0x8F,0xA9,0xB1,0x1C,0xB4,0x1C,0x04,0x65,0x5F,0x8E,0x47,
+0xC0,0xD8,0x6E,0x1A,0x97,0x21,0x1A,0x02,0x86,0x8F,0xBD,0x9E,0xDB,0xB2,0xDD,0xAA,
+0x41,0x59,0x46,0xB3,0xA6,0x02,0x08,0x10,0x24,0xF2,0x62,0x3C,0x0E,0xD1,0x6B,0xC9,
+0xBF,0xA7,0xE9,0xE2,0x9F,0xA9,0x9A,0x82,0x6E,0x01,0xDB,0x76,0x61,0x7F,0xAA,0x67,
+0x7B,0x63,0x71,0xBE,0x86,0x23,0x09,0x11,0x44,0x76,0x86,0x5C,0x30,0x7C,0xF8,0x64,
+0xE4,0xFC,0x7A,0x2A,0xB5,0x0A,0x13,0x0B,0x09,0xC4,0x79,0x11,0x78,0xEC,0x20,0xF4,
+0x00,0x18,0xE6,0x52,0xB8,0xB0,0xA4,0xBC,0x66,0x03,0xD1,0x7E,0xF9,0xBB,0xF6,0xA3,
+0x42,0x5A,0x17,0xE1,0x96,0x37,0x0D,0x15,0xDE,0x4D,0x27,0xC6,0x55,0x5A,0xBB,0x42,
+0x33,0x2B,0xF3,0x74,0xD4,0x6D,0x15,0x0D,0x50,0x26,0xC2,0x48,0xB6,0x14,0x16,0x0C,
+0xDD,0xC5,0x1C,0x75,0xD8,0xC1,0xB5,0xAD,0x9C,0xBC,0x94,0x84,0x51,0x7A,0x9F,0x62,
+0xDA,0xC2,0x5D,0x33,0x4C,0x31,0xD1,0xC9,0x60,0x62,0xB6,0x78,0xC0,0x29,0x5D,0x31,
+0xC7,0xDF,0x2F,0x5C,0xE5,0x4E,0x07,0x1F,0x85,0xDE,0xEF,0x9D,0x32,0x74,0xF2,0x6C,
+0xAB,0xB3,0xB9,0xA6,0x31,0xEE,0x73,0x6B,0x3F,0xE1,0x6A,0x27,0x28,0xF8,0x64,0xE0,
+0xD7,0xCF,0x6F,0x0C,0x04,0xE9,0x41,0x59,0x64,0x72,0xA2,0x7C,0x7D,0xDB,0x12,0xC3,
+0xC8,0xD0,0x6C,0x10,0xDF,0xF9,0x8A,0x92,0x7D,0x10,0xD9,0x65,0x54,0x4D,0xAD,0x55,
+0x63,0x7B,0x33,0xE4,0xC7,0x65,0x0E,0x16,0x3E,0xC1,0x4B,0x26,0xE2,0x20,0x76,0x38,
+0xF7,0xEF,0x6B,0x28,0xA7,0x14,0x1F,0x07,0xFB,0x79,0x36,0xE3,0xC9,0xBE,0xC3,0xA6,
+0x35,0x2D,0x92,0x13,0x70,0xA8,0x74,0x6C,0xCC,0x7C,0x04,0xD4,0x08,0xF9,0x45,0xE1,
+0x18,0x00,0xA4,0x08,0xDC,0xE5,0x95,0x8D,0x38,0xA0,0x2C,0x20,0x5F,0xD2,0x39,0xCA,
+0xD4,0xCC,0x3E,0x5E,0xFC,0xC4,0x94,0x8C,0xFD,0x18,0x51,0xE5,0x3D,0xCB,0x42,0xD3,
+0x81,0x99,0xCE,0xFB,0xB2,0x32,0x2C,0x34,0xB4,0xBA,0xBA,0xAC,0xED,0x9F,0xC6,0x87,
+0xFF,0xE7,0x69,0x22,0x60,0xBC,0x70,0x68,0xF1,0x0A,0x4F,0xE9,0x22,0x70,0xE6,0x68,
+0xAE,0xB6,0x89,0x93,0x85,0x3F,0x16,0x0E,0x1A,0xD5,0x7B,0x02,0x4A,0xE1,0x1F,0xF9,
+0x8B,0x93,0xBD,0x82,0xD0,0x49,0x35,0x2D,0x56,0x47,0xA5,0x4E,0x00,0x79,0xCD,0x61,
+0x21,0x39,0xC2,0x57,0x16,0xF7,0x4D,0x55,0x31,0x82,0x07,0x29,0x8C,0x99,0xA1,0x81,
+0x03,0x1B,0xB7,0x00,0xFB,0xFC,0xAB,0xB3,0x54,0x36,0xD6,0x4C,0x35,0x4B,0xCA,0x53,
+0x8E,0x96,0x8D,0xB7,0xEC,0xD0,0x90,0x88,0xAC,0xF8,0xE0,0xB4,0xFF,0x93,0xD8,0x8B,
+0x08,0x10,0xE4,0x58,0xAB,0xB8,0xBF,0xA7,0xE9,0x48,0x15,0xF1,0xCD,0x9E,0xE7,0x86,
+0x06,0x1E,0x87,0x35,0x41,0x8B,0x66,0x7E,0xB0,0xAA,0xAE,0xA8,0xD1,0x3A,0x5F,0x22,
+0x71,0x1C,0xBD,0x2F,0xCA,0x58,0xEE,0xF4,0xDD,0x5C,0xCE,0x51,0xF3,0x92,0x61,0xB1,
+0x93,0xA7,0xE4,0x76,0x6E,0xFC,0x56,0xE8,0xBE,0x52,0xC0,0x3C,0x2A,0x78,0xB8,0x82,
+0x0F,0xDF,0x00,0x92,0x1F,0x8D,0xC3,0x0C,0x8E,0x57,0xC5,0x09,0xE7,0xC2,0x75,0xF5,
+0xC1,0xE9,0xF8,0x6A,0xC7,0x55,0xD1,0xC6,0xB4,0xDA,0x48,0xBE,0xDC,0xD5,0x4E,0xD9,
+0x7E,0xAC,0x02,0x90,0x2D,0xBF,0xC4,0x39,0x84,0xDF,0x4D,0x8B,0x79,0xE9,0xEB,0x40,
+0xBB,0x0E,0x65,0xF7,0xCD,0x5F,0xA8,0xB5,0xFB,0x75,0xE7,0x5E,0x01,0x2F,0x93,0xFE,
+0x33,0x46,0xA5,0x37,0x24,0xB6,0xEF,0x1B,0x50,0xAB,0x39,0x2B,0x3C,0x59,0xAE,0xB5,
+0xEC,0x72,0x4E,0xDC,0xB5,0x27,0x16,0x73,0xB0,0xFA,0x68,0x9A,0x5A,0xBC,0xC8,0x36,
+0x21,0x58,0xA9,0x3B,0x9F,0x0D,0x4B,0x04,0x07,0x80,0x12,0x57,0xD8,0xC5,0x4A,0xCD,
+0x83,0xB3,0xE0,0x72,0xCB,0x59,0xCF,0xD4,0xF7,0xD5,0x47,0xF2,0x60,0x8B,0xF2,0x3B,
+0x45,0x0D,0x98,0x0A,0xAD,0x3F,0x4C,0x31,0xAB,0x61,0xF3,0x1A,0x38,0x49,0xAA,0xA1,
+0x99,0x25,0x6C,0xFE,0x86,0x14,0x30,0x66,0x9D,0x4C,0xDE,0x01,0xD9,0xE5,0x4B,0xEC,
+0xF8,0x42,0x6A,0xF8,0x74,0xE6,0x7F,0xDB,0x0A,0x37,0xA5,0xED,0x42,0xFE,0xD0,0x6C,
+0x40,0x3F,0xAF,0x3D,0xEA,0x78,0xCA,0xF0,0x52,0xA3,0x31,0x21,0x53,0x9E,0xC1,0x1D,
+0x4B,0xAB,0x30,0xA2,0x8F,0x1D,0x1B,0x44,0x56,0x83,0x11,0x05,0x0D,0x3D,0x9F,0xE0,
+0x29,0xD0,0x29,0xBB,0x19,0x8B,0xA4,0x6D,0x55,0x9C,0x0E,0x19,0xC6,0xE6,0x54,0xF0,
+0xE7,0xE6,0xD1,0x43,0x20,0xB2,0xFB,0x0B,0x16,0x93,0x01,0x55,0x4B,0xDC,0xD9,0x47,
+0xD8,0x63,0x6B,0xF9,0xAC,0x3E,0x6D,0x11,0x80,0xFF,0x6D,0xAF,0x3F,0x08,0xAD,0xE7,
+0x85,0x9D,0xC8,0x5A,0x2E,0xBC,0x96,0x68,0x25,0x89,0x1B,0x7C,0xF9,0xE1,0x6B,0xC8,
+0x5B,0xBF,0x34,0xA6,0x7D,0xEF,0x54,0xF9,0x64,0x8E,0x1C,0x3A,0x9D,0x75,0x0F,0x38,
+0x74,0x2E,0x8A,0x18,0x0E,0x9C,0xB2,0x6C,0x2E,0x16,0x84,0xE8,0x41,0xAF,0xD3,0x3E,
+0x1F,0xCB,0x04,0x96,0x40,0xD2,0x1F,0x8F,0xCA,0x67,0xF5,0x7D,0x59,0xED,0xCB,0x64,
+0xFD,0x70,0x5D,0xCF,0xB8,0x2A,0x29,0x41,0x43,0xB0,0x22,0x23,0x5F,0x8C,0xCD,0x03,
+0x3A,0xD8,0x32,0xA0,0xEF,0x7D,0xFF,0xC0,0xDF,0x54,0xC6,0x5B,0xE8,0x81,0x7A,0xB9,
+0x38,0xD2,0x3A,0xA8,0x2B,0xB9,0xA3,0x58,0xD0,0xEB,0x79,0xEB,0xD6,0xA6,0x44,0xA0,
+0x4F,0x8F,0x10,0x82,0x28,0xBA,0xF1,0x09,0x48,0x2F,0xBD,0xB7,0x45,0xBF,0xD7,0x2A,
+0xB6,0xB4,0xD2,0x40,0xE6,0x74,0xD4,0xE2,0x57,0x94,0x06,0x13,0x56,0xAE,0xC4,0x28,
+0xCB,0x6B,0x70,0xE2,0x85,0x17,0x62,0x37,0x7F,0x15,0x87,0xBA,0x44,0x9F,0xD6,0x0B,
+0x77,0x32,0x95,0x07,0x06,0x94,0xB8,0x6E,0x05,0x88,0x1A,0x5D,0x8C,0x15,0x1E,0x49,
+0x8D,0x15,0x48,0xDA,0x0B,0x99,0x87,0x5C,0x13,0xA4,0x36,0x67,0xE5,0xB3,0x77,0x86,
+0x1C,0xD7,0x1B,0x89,0x87,0x15,0x11,0x46,0x76,0x82,0x10,0x24,0xF1,0xE3,0x63,0xC2,
+0x5F,0x9B,0x14,0x86,0xC2,0x50,0xE4,0xF6,0x10,0xBB,0x29,0x7B,0xBC,0x51,0x2E,0x3D,
+0x3F,0xEA,0x05,0x97,0xE2,0x70,0xC0,0xF2,0xF5,0xDD,0x4F,0xF8,0x8D,0x35,0x1F,0x68,
+0x3E,0xFC,0x12,0x80,0xD4,0x46,0xD3,0xD7,0x67,0x91,0x03,0x26,0xF2,0xB2,0x60,0x90,
+0x22,0x44,0xB6,0x24,0x0C,0x9E,0xC1,0x1D,0x90,0xFB,0x69,0xBB,0x21,0x2B,0xB3,0xDA,
+0xCF,0x4F,0x50,0xC2,0xCF,0x5D,0xDB,0xC4,0xDA,0x63,0xF1,0x69,0x08,0x0D,0x9A,0xD5,
+0xB7,0xA2,0xC5,0x57,0x27,0xB5,0xBD,0x4A,0x53,0xB4,0x26,0x37,0xFE,0xA0,0x6C,0x8E,
+0xC9,0x61,0x78,0xEA,0x6D,0xFF,0x04,0xB9,0x54,0x8B,0x19,0x0F,0x1D,0x7D,0x8F,0xB0,
+0xC3,0xE3,0xF0,0x62,0x97,0x05,0x41,0x06,0x61,0xB9,0x2B,0x08,0x9A,0x34,0x08,0x7E,
+0x2C,0xE2,0x1E,0x8C,0x39,0xAB,0x80,0x69,0x5D,0x1C,0x8E,0x91,0xA2,0x72,0x30,0x00,
+0x26,0x60,0x96,0x04,0x35,0xA7,0x9E,0x7B,0x88,0x7F,0xED,0x27,0x6F,0xC8,0xFD,0x77,
+0xB1,0x8C,0xED,0x7F,0xF5,0x67,0xD6,0xF3,0x95,0xCC,0x5E,0x89,0x47,0xCE,0xD5,0x59,
+0x6F,0xAE,0x11,0x83,0x4F,0xDD,0x53,0xCC,0xE0,0xEE,0x7C,0xDE,0xD7,0x86,0x45,0x81,
+0x17,0x43,0x84,0x16,0xA6,0x34,0x14,0x62,0x18,0x3B,0xA9,0xF3,0x07,0x4E,0x95,0x99,
+0xAD,0x34,0x49,0xDB,0x99,0x0B,0x2C,0x65,0x12,0xB3,0x21,0x71,0xB1,0x63,0x23,0x02,
+0x27,0x76,0x81,0x13,0x58,0xCA,0x45,0xCD,0xEB,0x71,0xE3,0x4A,0xE3,0xD2,0x71,0xE1,
+0x96,0x95,0xD3,0x41,0xF7,0x65,0xA5,0x82,0x97,0xC4,0x56,0x83,0xE9,0xA1,0x7B,0x98,
+0xD3,0xF7,0xF4,0x66,0x77,0xE5,0x2D,0x8A,0x7C,0x0A,0x98,0xA6,0x46,0xEE,0xD4,0x78,
+0x87,0x97,0xC0,0x52,0x72,0xE0,0x18,0xBA,0x70,0xAA,0x38,0x0A,0xC3,0xD6,0x51,0xC5,
+0x2A,0xCC,0x36,0xA4,0x22,0xB0,0x88,0x7A,0xEF,0x51,0xC3,0x6E,0xAE,0x60,0x3C,0x1E,
+0xBD,0x20,0x4D,0xDF,0xB7,0x25,0x65,0x02,0xA3,0xE1,0x73,0x92,0x09,0x2D,0x9B,0xF4,
+0x00,0x6F,0xBF,0x2D,0x5B,0xC9,0x17,0x9C,0x98,0x7B,0xE9,0x33,0x4A,0xFC,0xD8,0x66,
+0x5A,0xA9,0x23,0xB1,0x7C,0xEE,0x75,0xD9,0x6A,0x26,0xB4,0x9C,0x9E,0x24,0x0C,0x6A,
+0xA8,0x06,0x7E,0xEC,0x62,0xF0,0x48,0xFA,0x3C,0x1A,0x88,0xF6,0x33,0x1A,0xA1,0xF9,
+0xA5,0xBC,0xC9,0x5B,0x7A,0xE8,0x12,0xB8,0xF1,0xFD,0x6F,0xDC,0xFC,0xD1,0x6E,0xFD,
+0x19,0xE5,0x2C,0xBE,0xA1,0x33,0x52,0x23,0x30,0xBA,0x28,0x5A,0x03,0x5E,0x91,0x8D,
+0xAA,0x0C,0x76,0xE4,0x25,0xB7,0xCE,0x3B,0x01,0xA8,0x3A,0x79,0xB2,0x32,0x20,0x50,
+0x1E,0xDD,0x13,0x81,0x66,0xF4,0x5C,0xEA,0x94,0xDB,0x49,0x9F,0xD0,0xC7,0x42,0xC7,
+0x9A,0x39,0x73,0xE1,0xBE,0x2C,0x4E,0x20,0xA9,0x69,0xFB,0x10,0x9B,0x14,0x09,0x5F,
+0x91,0xAD,0xEC,0x7E,0xDE,0x4C,0xAA,0xA4,0x0E,0x17,0x85,0xC9,0x3D,0x79,0xAF,0x94,
+0x03,0x73,0xA0,0x32,0x31,0xA3,0x8A,0x6B,0x36,0x92,0x00,0x74,0x43,0xDE,0xD1,0x4D,
+0xE4,0xFA,0xCE,0x5C,0x0F,0x9D,0x93,0x4C,0x89,0x68,0xFA,0x31,0xC1,0xA7,0x53,0xB6,
+0x9B,0x2F,0x64,0xF6,0x5E,0xCC,0x22,0xAC,0x4D,0x18,0x8A,0x85,0xF6,0xA2,0x64,0x84,
+0x28,0xC6,0x3E,0xAC,0xA7,0x35,0x35,0x42,0x47,0x90,0x02,0x07,0x55,0xFF,0xC7,0x7A,
+0xEE,0x8D,0x13,0x0D,0x34,0x14,0xB3,0xD0,0xF7,0x71,0x76,0x94,0xE1,0xB3,0xA2,0xD0,
+0xF6,0x95,0x51,0x57,0xD0,0x81,0xC2,0xA1,0xB9,0x92,0xDB,0xDA,0x8A,0x3D,0x47,0x5E,
+0x5F,0x3C,0x7F,0xD0,0x21,0x32,0x80,0xE3,0x58,0x3E,0x96,0x3B,0xC4,0x85,0xB1,0xE6,
+0xE8,0x8B,0x72,0x6A,0xBD,0x4A,0x64,0x07,0x0F,0xBF,0x40,0x6C,0x03,0xEA,0x19,0x89,
+0x88,0xEB,0xF6,0x8E,0x7E,0xC6,0x2B,0x48,0x1B,0xEF,0x04,0x78,0x26,0xDC,0x0A,0xBF,
+0xFC,0x9F,0x22,0x2E,0xE8,0x3C,0x47,0x24,0x97,0xF5,0x92,0xF4,0x19,0x66,0x8F,0x05,
+0x2A,0x49,0x8B,0x51,0x9A,0x53,0x5A,0x39,0xCA,0x07,0x3D,0xA9,0xA5,0x83,0xD6,0xE0,
+0x4E,0x2D,0x1F,0xA1,0xDB,0x15,0x5D,0x3E,0x99,0x96,0xFF,0xFA,0x7B,0x7F,0xF4,0x1C,
+0x52,0x31,0x4D,0xEF,0xED,0x0E,0x70,0x13,0xBC,0xA2,0xEE,0xDF,0x73,0xFF,0x7C,0x9C,
+0x3B,0x58,0xEB,0x20,0xFB,0x34,0x5C,0x3F,0xB1,0x90,0xD1,0xD2,0x89,0x22,0x5B,0x41,
+0x0B,0x68,0xAF,0x54,0xEE,0x12,0x6F,0x0C,0x75,0x08,0x8D,0x16,0xA1,0xA3,0xF2,0xC0,
+0x46,0x25,0x1D,0xAB,0x88,0x4D,0x56,0x35,0x30,0xB8,0x78,0x53,0xE2,0xAC,0xBE,0xCF,
+0xF2,0x91,0x41,0x43,0xB6,0xDE,0xFB,0x98,0x9F,0xF7,0x98,0xFC,0xB1,0xA7,0xE6,0xC4,
+0x61,0x02,0x58,0xC9,0x2E,0x82,0x3F,0x5C,0x9C,0xA6,0xCA,0xFF,0xC6,0x8D,0xBB,0xEE,
+0xF3,0x90,0x61,0x62,0x81,0xD3,0xC1,0xA2,0x32,0xC9,0x0B,0x51,0x35,0xC7,0x02,0xA4,
+0xE1,0x82,0x50,0x41,0xA9,0x7A,0x40,0x23,0x51,0x1C,0xBD,0x32,0x48,0x65,0xDD,0x06,
+0xB6,0xD5,0xD1,0x97,0x05,0x37,0xA1,0xC2,0x7A,0x4B,0xC1,0x19,0x45,0xD2,0x67,0xB1,
+0xCE,0xAD,0x17,0x29,0x7A,0xE2,0x0B,0x68,0x9A,0xC7,0xAD,0xF9,0x80,0xB5,0xC5,0xD6,
+0xED,0x8E,0x42,0x5F,0x4E,0xF3,0x2E,0x4D,0x02,0x8D,0x7F,0x61,0x12,0xF9,0x1B,0x9A,
+0x8B,0xE8,0xA7,0xDC,0xAE,0x42,0x7F,0x1C,0x93,0xE5,0x86,0xF0,0xCD,0x12,0x2F,0x71,
+0x9D,0xFE,0x86,0xEB,0x40,0x55,0x86,0xE5,0xD9,0x16,0x3F,0xBA,0x6D,0x53,0xCE,0x30,
+0x44,0x27,0x6C,0xD8,0x23,0x38,0x88,0xEB,0x7D,0x0A,0x87,0x1E,0x8F,0x0A,0x75,0x69,
+0x6B,0x08,0x2B,0xB0,0x4A,0xD7,0x0E,0x6D,0x70,0x38,0xB8,0x13,0x3F,0x4F,0x80,0x2C,
+0x50,0x33,0x3C,0x9C,0x70,0x60,0x83,0xE0,0xA8,0xF2,0xAA,0xCB,0xF1,0xB7,0xB6,0xD4,
+0xE4,0x87,0x60,0x74,0xAC,0x48,0x77,0x14,0x5D,0x0E,0xA3,0x3E,0xBE,0x18,0x56,0x7B,
+0xF5,0x96,0x00,0x05,0xF4,0x84,0xE3,0x80,0xC3,0x25,0x16,0xA0,0x06,0xDD,0x2B,0xBE,
+0x71,0x12,0x18,0x99,0xAB,0x70,0x48,0x2B,0xAE,0x93,0xCD,0xCD,0xD7,0x9E,0xB9,0xFD,
+0xBA,0xD9,0xC3,0x89,0xA8,0x6C,0x57,0x34,0x38,0xBA,0x72,0x5B,0xB5,0x87,0xC2,0xE4,
+0xD7,0xB4,0x75,0x52,0x09,0x9B,0x01,0x62,0x7C,0x2A,0xA6,0x1F,0x7D,0x57,0xDA,0x34,
+0x6F,0x0C,0x3B,0xA4,0xF9,0x3E,0x54,0x37,0x28,0xFA,0x22,0x4B,0xDF,0x1E,0x31,0x7D,
+0x6E,0x0D,0x1B,0x85,0x63,0x68,0x98,0xFB,0x31,0x98,0x59,0x52,0x67,0xDB,0x4C,0xB8,
+0x8F,0xEC,0xB7,0xC8,0x55,0x73,0xB5,0xD6,0x1A,0xCF,0x25,0x79,0xBB,0x2F,0x64,0x4C,
+0x84,0xE7,0xE4,0x90,0xC2,0x9F,0xCE,0xAD,0xD5,0x04,0x21,0xB6,0x56,0xC9,0x6F,0xAA,
+0x29,0x4A,0xDA,0x03,0x94,0xF5,0xF2,0x91,0xCB,0x27,0x1C,0xA8,0xA4,0x94,0xC0,0xF7,
+0xB4,0xD7,0xA0,0xE4,0xCE,0x33,0x6E,0x0D,0x16,0xDD,0x3B,0x75,0xE7,0x9B,0x8C,0xF8,
+0x4B,0x28,0x2F,0x94,0x0F,0xB5,0x29,0x4A,0xCD,0x46,0x7B,0xAE,0x5B,0x7E,0xD5,0x1D,
+0x19,0x7A,0x9E,0x77,0x11,0x07,0x85,0xE6,0x95,0x84,0xE1,0xF6,0xD4,0x81,0xA5,0xE2,
+0x74,0x17,0x28,0xAC,0x8E,0x63,0x7E,0x1D,0xC5,0x44,0x71,0xA6,0x79,0x77,0xFE,0x14,
+0xFD,0x9E,0x02,0x0F,0x66,0x5A,0xAF,0xCC,0xEC,0x62,0x7E,0x8F,0xFE,0x08,0x06,0x6B,
+0xBE,0xDD,0xD3,0x9D,0x5D,0xFB,0x35,0x56,0x00,0xFC,0x0C,0x63,0x43,0xFA,0x49,0x99,
+0x76,0x15,0x59,0xDF,0x77,0x58,0xBC,0xDF,0xB8,0xB2,0xFA,0xDB,0x1A,0x79,0x93,0x1A,
+0xF4,0x97,0x20,0x24,0xC8,0x1D,0x46,0x25,0x86,0x95,0xE3,0xE5,0xFD,0x17,0x1A,0x74,
+0xE2,0x81,0x01,0x13,0xB9,0x6E,0x44,0x27,0x10,0xBC,0x5C,0x73,0xD6,0x89,0xAF,0xEA,
+0x41,0x22,0x5C,0xED,0xB3,0xEC,0xCC,0xAF,0xE9,0x52,0x4B,0x8A,0x65,0xD3,0x46,0xB0,
+0x67,0x04,0x39,0xAE,0x6A,0xF6,0x0F,0x6C,0xD1,0x14,0x35,0xB2,0xE0,0xA4,0xB4,0xC7,
+0x05,0x66,0xCC,0x39,0xFF,0x10,0x7C,0x1F,0x92,0xC5,0xA7,0xF1,0x54,0xC1,0x65,0xA2,
+0x8A,0xE9,0x87,0xFD,0xF0,0xA0,0xC3,0xA0,0x69,0x5A,0xC3,0x0A,0x6F,0x5B,0xC4,0x38,
+0x2C,0x4F,0xEA,0x36,0x57,0x79,0xBD,0xDE,0x09,0xDE,0x27,0x6A,0x64,0xC4,0x50,0xA7,
+0xAA,0xC9,0x83,0xD9,0xAA,0x66,0x5F,0x3C,0xDA,0x47,0x6D,0xB9,0x37,0xCF,0x08,0xAC,
+0x49,0x2A,0x5E,0xE7,0xAD,0x5E,0x60,0x03,0x90,0xB4,0xD4,0xF3,0x49,0x72,0xCB,0x11,
+0x15,0x76,0x8C,0x69,0xA3,0xF8,0xC8,0xAB,0x8E,0x97,0xE9,0xED,0xD2,0xA9,0x8B,0xCA,
+0x2D,0x4E,0xCA,0x17,0x9F,0x61,0x6D,0x0E,0x20,0xF8,0x28,0x43,0x3D,0x47,0x8A,0x24,
+0x45,0x26,0x4C,0xF9,0x99,0x4F,0x45,0x26,0x63,0x29,0xBA,0x00,0xC0,0xA5,0x95,0xC6,
+0x3A,0x59,0xCB,0x01,0x0B,0x91,0x09,0x6A,0x55,0x0C,0xA9,0x36,0xC1,0xB2,0x83,0xD1,
+0xBF,0xDC,0xF3,0xBC,0x24,0x00,0xB7,0xD4,0x78,0x3A,0xB2,0x1B,0x31,0xE7,0x26,0x84,
+0x96,0xF5,0xD5,0xB3,0x6E,0xD2,0x2F,0x4C,0xBB,0xE3,0xA8,0xD8,0xDC,0x01,0x2D,0x62,
+0x54,0x37,0x2C,0x88,0x15,0x23,0xA5,0xC6,0xEF,0x33,0x2C,0x8C,0xD9,0x36,0x1F,0x55,
+0x06,0x65,0x9D,0x6B,0xEC,0x18,0x67,0x04,0x2E,0x9B,0x45,0x4D,0x53,0xFE,0x5D,0x9D,
+0xF1,0x92,0x10,0x11,0x82,0xCF,0xDE,0xBD,0xC0,0x74,0x44,0xA3,0x2D,0x43,0x9E,0x20,
+0x5E,0x3D,0x5F,0xF1,0x69,0xEA,0x10,0x73,0x40,0x7C,0xCC,0x23,0x68,0x64,0xFC,0x07,
+0xF0,0x93,0x30,0x30,0x6B,0xE0,0x18,0x7B,0x42,0x0D,0xBF,0x21,0x4F,0x5A,0xE5,0x39,
+0xD8,0xBB,0x36,0x1E,0x76,0x4E,0xAB,0xC8,0x82,0x85,0xF7,0xE1,0xD8,0x21,0x09,0x42,
+0xB0,0xD3,0xB0,0xF0,0xE6,0x9A,0xEF,0x8C,0x11,0x9C,0x7D,0x72,0xE9,0x33,0x2A,0x50,
+0x60,0x03,0x78,0xE8,0x1E,0xB7,0x3A,0x59,0xF8,0x32,0x3A,0x9B,0x91,0xA6,0xC7,0xC5,
+0xA7,0x08,0x52,0x87,0x31,0x52,0x6B,0x11,0x7D,0xD1,0xDE,0x8B,0x17,0x52,0x37,0x4D,
+0x79,0x44,0x1E,0x15,0x4E,0xD5,0x14,0xE9,0x6B,0xC6,0xDF,0x9C,0x21,0x41,0x12,0x7B,
+0xE8,0xFA,0xA0,0x3A,0xCB,0xED,0x91,0x54,0xCE,0x93,0x2F,0xC9,0x0C,0x5A,0x24,0x56,
+0x3A,0x62,0x38,0x70,0xE2,0xCB,0xB8,0x5B,0xC5,0x75,0xC2,0x2F,0xCF,0x40,0xFD,0x95,
+0x8E,0x12,0x48,0xB4,0xDE,0x9D,0x84,0x31,0xE0,0xBB,0x29,0xE1,0xAE,0x85,0x59,0xF4,
+0xB6,0x2D,0x77,0xB3,0x3D,0x40,0x67,0x0F,0x23,0x06,0x57,0x5C,0xE4,0x3C,0xAA,0xBE,
+0x10,0x85,0xDF,0xBD,0x61,0x92,0x3B,0x81,0x63,0xDD,0xCC,0x87,0xFA,0x01,0x89,0xA0,
+0x89,0x20,0x7A,0x81,0x59,0xD4,0x03,0xFF,0x62,0x33,0x23,0x69,0x54,0xC0,0xE6,0x0E,
+0x08,0x55,0x0F,0x75,0x84,0x2E,0xDE,0xD8,0x0D,0x2E,0x51,0x74,0x36,0x57,0x13,0x6C,
+0xA6,0xE6,0xBC,0x68,0xAC,0x28,0xF6,0xF6,0xE1,0x55,0xC6,0x0F,0xF6,0x1F,0x9B,0xAC,
+0x72,0xA2,0xF8,0xF8,0xC4,0xAE,0x9E,0x18,0xC2,0x47,0xF7,0x1D,0x65,0x95,0x82,0x3F,
+0x5F,0x77,0x2D,0x00,0x14,0x66,0x4E,0x00,0x2F,0xD2,0x8F,0x88,0x8C,0xD2,0x2C,0xD6,
+0xCB,0xE8,0xB2,0x0B,0x20,0x32,0x7A,0x60,0xF7,0x42,0xC7,0x18,0x9B,0xC4,0x2D,0xC1,
+0xF0,0x2A,0x70,0xF2,0x72,0x83,0x28,0x83,0xB5,0x8A,0x4D,0xD0,0x5A,0xAD,0x85,0x00,
+0x27,0x93,0xC9,0x9C,0x85,0x0E,0xDF,0xF9,0x76,0x37,0x33,0x6D,0xB4,0xAC,0x6A,0xEE,
+0x02,0x5D,0x07,0x77,0x2A,0x41,0x70,0x19,0x14,0x10,0x76,0x4A,0x34,0x24,0x62,0x6E,
+0xEF,0xC8,0x92,0x0F,0x6D,0x80,0x37,0x9F,0x4D,0xF5,0xCA,0xAF,0xE1,0x09,0x9A,0xBB,
+0x8B,0x33,0x69,0x90,0x00,0x36,0x5A,0x44,0x16,0x03,0x67,0x59,0xB1,0x99,0x5A,0xEB,
+0xB2,0xE2,0xB8,0x78,0x89,0x1C,0xD3,0xE7,0xEE,0x7C,0xE0,0x26,0x98,0x96,0x7C,0xC2,
+0x13,0x78,0x22,0x43,0xCA,0xCD,0x90,0x75,0xA1,0x8E,0x5D,0xD4,0x74,0xE4,0xE2,0x2E,
+0x77,0x83,0xD9,0xDC,0xF0,0xFA,0xAA,0x78,0x87,0xBD,0x48,0xE7,0xA1,0xC9,0x1A,0xFB,
+0x1D,0xBF,0xE5,0x8A,0x5D,0xC4,0x07,0xEB,0x28,0xE0,0xBA,0xBA,0xBF,0xF4,0x39,0xE5,
+0xDB,0x23,0x79,0xD0,0xC0,0xBE,0x9A,0x0C,0x64,0xEF,0xF9,0xB5,0x62,0xD3,0xC3,0x38,
+0x5D,0x64,0x3E,0x11,0x3F,0x31,0x65,0x7C,0x3D,0x0A,0x45,0x50,0xB9,0x93,0x58,0xE3,
+0x1E,0x42,0x18,0x74,0x13,0x27,0x49,0x46,0x5C,0xD0,0xFE,0x8A,0xA5,0xDD,0x0A,0xFF,
+0xF8,0x31,0x6B,0xE1,0x71,0xD2,0x2B,0xD1,0x8D,0xB5,0x4A,0xEF,0xE6,0x4F,0xDB,0xBC,
+0x48,0x8E,0xD4,0xEE,0xFE,0x99,0xA4,0x15,0x2C,0x2F,0x71,0x75,0x1D,0x2B,0x44,0x47,
+0x91,0xF0,0xAA,0x49,0x58,0xF4,0x02,0xDE,0xB8,0xB0,0x7A,0xEA,0x7D,0xCF,0xC0,0x27,
+0xB0,0xF1,0xAB,0x69,0x02,0x47,0x58,0x37,0x7B,0x0D,0x04,0x57,0xCC,0x12,0xAC,0x96,
+0xF5,0x0B,0x51,0xD6,0x80,0x3E,0xDA,0xCC,0xF2,0x63,0xE3,0x39,0xF2,0x0B,0x8B,0xA8,
+0x86,0x09,0x53,0xA7,0x96,0x1F,0xCC,0xFB,0x47,0xFD,0xC8,0xA7,0x64,0xB4,0xA2,0x3E,
+0x04,0x81,0xDB,0xAD,0x35,0x42,0x6F,0x05,0xAE,0xA7,0x7B,0xFD,0x9D,0xA3,0x4C,0xC7,
+0xBD,0xCB,0x91,0x5E,0xE9,0x98,0xB3,0x03,0x26,0x27,0x73,0x7D,0xAD,0xD7,0x08,0xF7,
+0xD0,0xC5,0x9F,0x3D,0x30,0x72,0x6A,0x30,0x9D,0x7E,0x91,0x24,0x09,0x6F,0x14,0x53,
+0x3F,0x43,0x19,0x54,0x1F,0x35,0x45,0x58,0x68,0x3B,0x21,0x61,0x04,0x50,0x26,0x5E,
+0x88,0xCE,0x94,0x6E,0x24,0x22,0x7E,0x74,0x5E,0xC3,0xEF,0x99,0xDC,0x42,0xEC,0x86,
+0xDF,0xEC,0xB6,0x1B,0xC2,0xCF,0x98,0x7F,0x8F,0xA6,0x5B,0xFC,0x0E,0x29,0x55,0x54,
+0x0A,0x46,0x1C,0x64,0xBA,0x09,0xE0,0xC1,0x2D,0xC1,0x9E,0x9B,0xEE,0x45,0xD9,0xB4,
+0x1B,0x63,0x39,0x50,0x99,0x5C,0xC3,0xB7,0xF3,0x8D,0x0C,0xD7,0x76,0x97,0x93,0x2C,
+0xAA,0x32,0x68,0xB0,0xFF,0xB9,0xA5,0x34,0xC7,0x66,0xD3,0x3C,0xE7,0x6E,0xFB,0xBD,
+0x73,0x4C,0x16,0x17,0xA3,0x6B,0xF9,0xBA,0x32,0x23,0x63,0x79,0x08,0x4E,0x34,0x52,
+0xD6,0x19,0x43,0xE7,0x1B,0x25,0x41,0x4C,0xD9,0x6A,0xC1,0x30,0x5C,0xCA,0xE4,0x06,
+0x80,0xD5,0x8F,0x7D,0x1A,0x05,0x40,0x6D,0xA4,0xAF,0x79,0xF5,0x45,0xB1,0x86,0x1F,
+0x9B,0xF8,0xA2,0x4B,0xFB,0xA9,0xA1,0x20,0x8C,0x5B,0xA5,0x01,0x6E,0xCD,0xD1,0x34,
+0xA0,0x3A,0x60,0xB2,0x90,0x7E,0xCA,0x9C,0xBE,0x6C,0xA0,0x36,0x29,0x4B,0x10,0x73,
+0x6C,0xAE,0xF4,0xEA,0x81,0x1E,0xDB,0xED,0xC3,0xA9,0x18,0xF3,0xB7,0xFE,0x3B,0xED,
+0x98,0x05,0x5F,0xB5,0x05,0x06,0x5F,0x71,0x51,0xEA,0xC9,0xB0,0xDA,0x25,0x8D,0x80,
+0x84,0x1A,0x40,0xB6,0xCE,0xDD,0x94,0x61,0x2A,0xF3,0xAB,0xA9,0x4C,0x9A,0xA4,0x16,
+0x2E,0x66,0x3C,0x60,0xFC,0xE8,0xA6,0x66,0xE2,0xA8,0x38,0xF2,0x6F,0xEC,0xF1,0x35,
+0xD4,0x0A,0x50,0xF6,0x88,0x3C,0xD2,0xC6,0x67,0x12,0x07,0x48,0xE3,0x7A,0xEB,0xB9,
+0xBB,0x17,0x4D,0x84,0x5E,0x95,0x04,0xB9,0x3E,0xF7,0xBB,0xAD,0xBE,0xD5,0x19,0xE4,
+0xFD,0x10,0x4A,0xC5,0x3A,0x01,0x60,0x49,0x1C,0x0B,0x65,0x51,0xED,0x17,0x88,0xB7,
+0xFC,0xFE,0xA4,0x2A,0x9A,0x0D,0xC0,0xE5,0x4A,0xC7,0xFF,0x9D,0x83,0x9E,0x6F,0xD9,
+0x69,0x8F,0xD5,0xCE,0x82,0x4F,0xD8,0xBF,0xAF,0x49,0x94,0x13,0xCD,0x33,0x8C,0x97,
+0xDA,0xCD,0x97,0x3F,0x2B,0x61,0x71,0x38,0x59,0xF1,0xDA,0xAB,0x2C,0x7E,0x20,0x76,
+0xA2,0x29,0x73,0xA3,0x9C,0x6C,0xC6,0x82,0xF1,0x9E,0x1D,0xC4,0x7B,0xA8,0xA1,0x21,
+0x36,0xB6,0xEC,0xA8,0x86,0x5F,0xDC,0xAB,0x0E,0xD3,0xAF,0x89,0xEB,0x70,0xE9,0xB1,
+0x6A,0x72,0x28,0x30,0x15,0x46,0x4F,0x21,0x53,0xF9,0xD8,0xA3,0xE8,0x22,0xB8,0xB2,
+0x3B,0x8C,0xD6,0x9F,0x87,0x7F,0xDD,0x8A,0xEA,0xB3,0x2B,0xE9,0x46,0xE3,0xD7,0x1C,
+0x92,0x0D,0x57,0xB7,0x95,0x4E,0xCF,0xA9,0x35,0x11,0x56,0x4B,0x25,0x55,0x02,0x7F,
+0xE6,0x3D,0x67,0xF3,0x26,0x53,0x7C,0x07,0x94,0x8B,0x6D,0xD1,0xC8,0x06,0xBC,0x92,
+0xDC,0x11,0x4B,0xE5,0x4F,0xF5,0x15,0xC8,0xB3,0x56,0x97,0x0C,0xC5,0x39,0x8E,0x9F,
+0xFA,0x22,0x78,0xF0,0x7F,0xB1,0x25,0xBC,0x1A,0xD7,0xBF,0x8D,0x01,0x65,0x16,0x5B,
+0xA5,0x1B,0x41,0x96,0x32,0x03,0x68,0x43,0x56,0xD8,0xFC,0x82,0x44,0x90,0xA6,0x1E,
+0x45,0x9E,0x18,0x8C,0xEB,0x35,0xD4,0x0F,0x34,0xFC,0x19,0xEF,0x01,0xD6,0x06,0x0D,
+0x7A,0xA1,0x1F,0xB4,0x36,0x0B,0x37,0xEC,0x89,0x82,0xDA,0x52,0xF2,0x9C,0xBF,0x47,
+0x48,0x93,0x2A,0xB3,0x7F,0xC5,0xB0,0x6B,0x01,0x88,0x58,0xDA,0x4D,0x66,0xFA,0xBD,
+0xED,0x36,0x16,0x2A,0x39,0xBB,0x88,0x53,0xEF,0x67,0x59,0x34,0x22,0xC8,0x3B,0x13,
+0x2C,0xF7,0xBE,0x43,0x7E,0xD3,0xA7,0x7C,0xF4,0x74,0x51,0x2F,0xB9,0x13,0x7B,0xC8,
+0x60,0xBB,0x2C,0x9D,0xF9,0x2B,0xD8,0x03,0xE3,0x75,0x47,0x38,0x9C,0x25,0x68,0xFE,
+0x0A,0xD1,0xDB,0x00,0x60,0x61,0x0B,0xD0,0x47,0x69,0xFF,0x9C,0x56,0xFD,0x7A,0x26,
+0x92,0x49,0x91,0xD2,0x46,0x6E,0x22,0xF9,0xA1,0x84,0xF4,0x7A,0x8F,0x3E,0x60,0xE5,
+0x42,0x99,0x59,0xCA,0x28,0xB9,0x9B,0x40,0xB8,0xE6,0x8F,0x63,0x2E,0x68,0x97,0xB3,
+0x80,0x5B,0xA0,0xF1,0x99,0x5A,0xC9,0x12,0x70,0x6C,0xCD,0xAB,0x86,0xA9,0xFE,0x72,
+0x35,0xEE,0xDC,0x38,0xEA,0x23,0xC3,0x18,0x22,0xDD,0x2E,0xF9,0xC9,0x06,0x1E,0xDD,
+0xFB,0x20,0x37,0x1D,0xA5,0xC3,0x6C,0xB7,0x05,0x98,0x4C,0xDE,0xC1,0x86,0x96,0x5D,
+0x8E,0x55,0xC3,0x9C,0x83,0xCC,0x45,0x9E,0x67,0x6D,0xDB,0xBC,0x30,0xC4,0x25,0x1F,
+0x3D,0xE6,0xDE,0x32,0x85,0xE2,0x6D,0xB6,0x1C,0xFA,0x37,0xC7,0xB8,0x04,0x6D,0xDF,
+0x1F,0xC4,0xAB,0x65,0xCD,0x3A,0xFD,0x26,0xE0,0x24,0x15,0x3B,0x87,0xBE,0xE8,0x65,
+0xCA,0x11,0x53,0x48,0x05,0x22,0x2D,0xF6,0x75,0x5C,0xF8,0xAE,0x29,0x57,0xAF,0x8C,
+0xD7,0x0C,0x21,0x27,0x6F,0xD1,0xB4,0x6F,0xD2,0x11,0x12,0x09,0x92,0x8D,0xCE,0x56,
+0xEB,0x30,0x77,0x4D,0x51,0x42,0x19,0xC2,0x8F,0xE3,0xBD,0x54,0xB1,0x93,0xF3,0x48,
+0x0C,0xD7,0xBA,0x67,0x9A,0x46,0xD6,0x0D,0x38,0xEE,0x07,0xE3,0xF3,0x8B,0xA9,0x50,
+0x4B,0x90,0x7B,0xE1,0x15,0x36,0x29,0xF2,0xDD,0x52,0x5E,0x06,0x68,0x50,0xE9,0x8B,
+0x5B,0x80,0x3B,0xB1,0x9D,0x7E,0xE9,0x32,0x31,0xCC,0x2C,0xEA,0xF1,0x83,0xA3,0x58,
+0xA0,0x7B,0xA4,0xD5,0x2B,0xA5,0x84,0x5F,0xC7,0x61,0x77,0x1C,0x31,0xD3,0x33,0x08,
+0x10,0xCB,0xE8,0x29,0x66,0x4F,0x23,0xF8,0xBC,0xF6,0x9B,0x67,0x49,0x46,0xDE,0x9D,
+0x8A,0x51,0xD3,0x88,0xB7,0xDD,0x60,0xBB,0x4E,0x4B,0xD4,0x95,0xD7,0xAA,0xAC,0x71,
+0x63,0xB8,0x7D,0xCF,0x95,0xF6,0x69,0xB2,0x51,0x48,0xC8,0x8A,0x20,0xC0,0x31,0x1B,
+0x99,0x42,0xC2,0x8A,0xEC,0x0D,0xEB,0x30,0x3F,0xAF,0x41,0xE4,0x07,0xFE,0x28,0x25,
+0xE9,0x32,0x06,0x3E,0xE9,0x3F,0xDC,0x07,0x95,0xD0,0x94,0x4E,0xE7,0xAF,0x99,0x74,
+0x61,0xBA,0x0C,0xBC,0xB4,0xC1,0x7F,0xA4,0xCF,0x63,0x7D,0x14,0x09,0x56,0x8E,0x8D,
+0x59,0x82,0x4A,0xC2,0x79,0xEB,0x98,0x43,0x87,0xE1,0xB7,0x5C,0x70,0xD4,0x75,0x0F,
+0x2A,0xF1,0xDF,0x24,0x8C,0x7C,0xFA,0x21,0xE2,0x55,0x66,0x39,0xA1,0x97,0xE7,0x4C,
+0x98,0x43,0xE2,0xAB,0x5F,0xE4,0xB1,0x6A,0x82,0xD1,0x82,0x59,0x6B,0x4F,0xF5,0x94,
+0xE6,0x3D,0x45,0x72,0x32,0x2F,0x17,0xCC,0x1D,0xDA,0x16,0xC6,0xEF,0x2F,0x11,0xF4,
+0x2E,0xF5,0xCF,0x30,0xA2,0xFB,0x53,0x88,0xF3,0x35,0x17,0x28,0x72,0xDC,0x7F,0x07,
+0x84,0x5F,0xB0,0xE5,0x64,0x45,0x2B,0xF0,0x94,0xF0,0xB5,0x4F,0xFE,0x3C,0x13,0xE7,
+0x5A,0x81,0x1B,0x90,0x12,0x0E,0x16,0xCD,0x54,0x78,0xFD,0x8F,0x50,0xD5,0x54,0x0E,
+0x0B,0xD0,0xFB,0x21,0xF7,0x8D,0x70,0xAB,0xBF,0xA7,0xC9,0x64,0x38,0x44,0xAD,0x9F,
+0xAD,0x76,0x96,0xEA,0xD9,0x0A,0xD9,0x02,0x4C,0x3A,0xA7,0x97,0xBF,0x3B,0x55,0xE0,
+0xA3,0x78,0xF5,0x87,0x33,0x39,0x00,0xDB,0x15,0xD8,0x1C,0xCE,0xA3,0x9F,0xED,0x44,
+0xA6,0x7D,0xC5,0xB2,0x89,0x4E,0xCD,0x16,0xF1,0x44,0x64,0x2A,0x47,0xEE,0x78,0x35,
+0x2B,0xF0,0xFF,0x05,0x9E,0x62,0xF6,0x2D,0x09,0x8A,0x52,0xD2,0x8D,0x36,0x6A,0xED,
+0xC6,0x1D,0x41,0x56,0xB5,0xD7,0x68,0xB3,0x9B,0xB3,0xF9,0x40,0x90,0x85,0xC4,0x5E,
+0x52,0x89,0x19,0x9A,0xD5,0xA6,0x79,0xA2,0x5E,0x0B,0x84,0x85,0xBB,0x1B,0x71,0xC0,
+0x72,0xA9,0x1D,0xBE,0x76,0x5B,0x27,0xFC,0xC1,0x00,0x10,0x1A,0x0F,0x7E,0xA0,0xA5,
+0x6D,0xB6,0x1E,0xA2,0xAD,0x4B,0xEC,0x37,0xD8,0x62,0x6B,0x03,0x26,0xE8,0x1F,0x33,
+0x71,0xAA,0x4C,0xEC,0x8E,0x76,0xF2,0x29,0x58,0x6A,0xE3,0x83,0x4F,0x6E,0xF0,0xB5,
+0x24,0xFF,0xBC,0x49,0xC0,0x80,0x4A,0x91,0x11,0xC8,0x08,0xCA,0x9F,0x3A,0x74,0xE1,
+0x90,0x4B,0xE0,0xA1,0x02,0x1A,0x12,0xC9,0x69,0x0E,0xB6,0xB2,0x7A,0x5C,0xF7,0x87,
+0xBD,0x66,0xD6,0xBA,0xAE,0x57,0xF3,0x28,0x9D,0xD2,0x9E,0x46,0x2D,0x77,0x8B,0xAC,
+0xE7,0x3C,0x65,0x53,0xE4,0x85,0x6B,0xB0,0x7B,0x3F,0x95,0xA0,0x27,0xFF,0x09,0x24,
+0x96,0x4D,0x81,0xC6,0xA6,0xDF,0x73,0xA8,0xF5,0x54,0x70,0x2E,0xC4,0xB1,0xA4,0x6A,
+0x41,0x9A,0x08,0x98,0xC7,0xB8,0x75,0xAE,0xAC,0xB6,0xCB,0x77,0x0A,0x49,0x92,0x92,
+0xA5,0x7E,0x94,0xE0,0xCA,0x02,0xC2,0x19,0xC3,0x71,0x63,0x18,0x8B,0x1E,0x44,0xC5,
+0x62,0xB9,0x5D,0xEE,0x97,0xFC,0x61,0xBA,0x20,0xAC,0x5D,0xFB,0x40,0xD1,0x40,0x0A,
+0x0E,0xD5,0xCB,0x14,0x43,0x5C,0x15,0xCE,0x9A,0x93,0xD8,0x41,0x5A,0x5D,0xD6,0x86,
+0x78,0xA3,0x6E,0xC7,0xAA,0x73,0xD3,0x08,0x39,0xCE,0x26,0xE2,0x23,0xDF,0x2D,0x04,
+0x7F,0xA4,0x2F,0x81,0x3E,0x83,0xB7,0x6C,0xC5,0x10,0x04,0x1E,0xB2,0x8C,0xEF,0x57,
+0x79,0xA2,0x4E,0xE6,0x5E,0xF2,0xA6,0x7D,0x64,0x3C,0x89,0xBF,0x25,0xF7,0x03,0x2C,
+0x55,0x8E,0x58,0xDC,0xF8,0x3D,0xCF,0x14,0xB9,0xC6,0xAE,0x62,0x17,0xFA,0x3C,0x21,
+0x73,0xA8,0x3D,0x9F,0xA8,0x79,0xDB,0x00,0xEA,0x57,0x6C,0x31,0x0D,0x76,0xAA,0xAD,
+0x4A,0x91,0x5B,0xC0,0x1A,0x86,0x96,0x4D,0xE5,0x14,0x20,0x3E,0xBD,0x33,0x5F,0xE8,
+0x1A,0xC1,0x9B,0x50,0xED,0x1B,0xFC,0x27,0xCB,0x73,0x69,0x10,0x13,0xDA,0x18,0x01,
+0xDE,0x05,0x03,0x0C,0xF4,0x91,0x6F,0xB4,0xE1,0x04,0x34,0x3A,0x42,0xD9,0x4A,0x02,
+0x65,0xBE,0x1C,0xA8,0xE5,0x93,0x7C,0xA7,0x23,0xFD,0x0F,0xF8,0xA9,0x17,0x6F,0xCC,
+0xE4,0x3F,0x34,0x01,0xD4,0xB0,0x6E,0xB5,0x81,0x80,0xD0,0x5A,0x7C,0x74,0xD9,0xAF,
+0x1D,0xF2,0xDA,0xBB,0x1F,0x03,0x37,0x60,0x52,0x28,0x06,0x00,0xB1,0xA1,0x6C,0x99,
+0xE3,0x51,0x79,0xE6,0x97,0x09,0xBF,0xE2,0x45,0xD1,0xE8,0xF9,0xEB,0x48,0xDF,0xC3,
+0xD1,0x66,0x4E,0xE3,0xE7,0xCD,0xCF,0x56,0xF4,0x80,0x08,0xA8,0x41,0x9D,0xA0,0x69,
+0x2A,0xE4,0xCC,0x9A,0x1D,0x72,0x35,0x13,0xED,0xBE,0x2F,0x96,0x2F,0x14,0x47,0x07,
+0xF3,0x9A,0xB2,0x3D,0x98,0x4A,0xB0,0xAE,0xCD,0x51,0xE0,0x79,0x63,0xCA,0xD5,0x4B,
+0x38,0x3C,0x14,0x50,0xE6,0xED,0xCE,0x77,0x29,0x31,0x64,0x19,0xFC,0x5E,0xDE,0xD4,
+0xA0,0x77,0x5F,0x83,0x54,0xD0,0x7C,0xF8,0x3B,0xE9,0xAE,0xC1,0x9C,0xBA,0x5A,0xB4,
+0x37,0x15,0x3D,0x76,0x27,0x45,0x0F,0x1E,0xA9,0xAA,0x7F,0x82,0xF9,0x6B,0xEE,0xD1,
+0xEA,0xA4,0x8C,0x1A,0x35,0x74,0x1D,0x3D,0x35,0x2E,0x67,0x06,0xA3,0x82,0x5D,0x8B,
+0x9A,0x5B,0x73,0x95,0x72,0xB5,0x5A,0xBB,0x75,0xF5,0xFC,0xDD,0x46,0xDB,0xE1,0x6E,
+0x9E,0x94,0xBC,0x5E,0x95,0x78,0xBD,0x91,0x2F,0xED,0xBE,0xC5,0xF1,0x61,0xEC,0xD9,
+0x0D,0x39,0x11,0x60,0xA9,0x2E,0x81,0xFB,0x12,0xF3,0x9D,0xDB,0xAC,0xCE,0x1E,0x84,
+0x01,0xED,0xC5,0xB8,0xF4,0xDC,0xDC,0x54,0x70,0xD4,0xD8,0xFC,0x30,0x08,0x44,0x18,
+0x93,0xAE,0x86,0x69,0x6E,0xE7,0x46,0xF5,0x02,0x38,0x46,0x10,0xC2,0x47,0xF9,0xEA,
+0x79,0x09,0x21,0x24,0xDE,0xAB,0xF6,0x09,0xEF,0xAD,0x3E,0x85,0xB9,0xAB,0x6E,0x91,
+0xA2,0x64,0x4C,0x92,0x25,0x34,0x0D,0x6D,0x7F,0xFD,0xFE,0xD5,0x4F,0xF0,0xC3,0x67,
+0x1F,0xE1,0xC9,0xAA,0x85,0x38,0xAD,0xC1,0x4A,0xF8,0xCE,0xD0,0x7B,0x90,0x97,0x53,
+0xFF,0x4E,0x66,0xE5,0x4B,0xD3,0x63,0xE4,0xC2,0x78,0xC6,0x50,0x5C,0xF2,0xD2,0x74,
+0x86,0x44,0x6C,0x96,0xFE,0xAF,0xD6,0x2D,0x22,0xD7,0x89,0xFF,0x0E,0x11,0x63,0x26,
+0x65,0x16,0x3E,0x27,0x3C,0x56,0x14,0x16,0x4B,0x16,0x21,0x3E,0xC6,0x53,0xE9,0xEE,
+0xFE,0xA0,0x88,0x0A,0xB4,0x5C,0x9C,0x94,0x73,0x29,0x26,0x01,0x0B,0x24,0x53,0x23,
+0xE6,0x70,0x58,0xC2,0x61,0xA4,0x49,0xB9,0x34,0xC0,0x88,0xE8,0x9E,0xC9,0x2B,0xB6,
+0x3E,0xE0,0xC8,0x8A,0x43,0xD1,0x6B,0xEE,0xB1,0x7A,0xB7,0x52,0x62,0xEB,0xF5,0x4A,
+0x10,0xC8,0xE0,0x8C,0xF0,0xCC,0xD8,0x40,0xF9,0xBA,0x3F,0x92,0x19,0x07,0x62,0x31,
+0x67,0x05,0x2D,0x36,0x93,0x19,0xBB,0xF6,0xE7,0xB6,0x2D,0x9E,0x91,0x85,0x68,0xB9,
+0x19,0x3D,0x15,0x70,0x36,0x25,0x1E,0x6F,0x26,0x18,0x42,0x30,0x7F,0x84,0x87,0x57,
+0xD7,0xBA,0x92,0x39,0x04,0x10,0x2C,0x68,0x63,0xE2,0xFD,0xCA,0xF7,0x06,0x8D,0xDF,
+0xE9,0x59,0x71,0xE4,0x3B,0x17,0x13,0x50,0xDA,0xA8,0x0E,0x80,0x4A,0xC5,0xF3,0x62,
+0xB2,0xAF,0x87,0x49,0xEC,0x9E,0xC4,0x0E,0xBC,0x40,0x80,0x68,0xDF,0x28,0x8B,0xF7,
+0xBD,0x86,0xAE,0x6F,0x74,0xD4,0x5C,0xDC,0xA6,0x83,0x59,0xAB,0x39,0x23,0x66,0x11,
+0xF7,0x55,0x7D,0xF6,0x1E,0x23,0x36,0x41,0xB4,0x5B,0x93,0x73,0x9D,0x9B,0x7A,0xB5,
+0x0F,0x2A,0x02,0x71,0x52,0xB1,0x7A,0x9F,0xA7,0x6D,0xB6,0x45,0x8A,0x8D,0x7B,0xA2,
+0x5A,0x1B,0x33,0x15,0x34,0x54,0x1C,0x1C,0x83,0x4D,0xB2,0x65,0x9B,0xFC,0x1B,0xB3,
+0xA5,0x56,0x7E,0xA7,0x0D,0x32,0x25,0x43,0x76,0x08,0x02,0x20,0x94,0xB0,0x58,0xBC,
+0xE1,0x42,0x6A,0xF7,0x2B,0x57,0x03,0x00,0xE0,0x84,0x18,0xAC,0xC7,0x72,0xC9,0xEF,
+0x2E,0x2B,0x03,0x51,0x07,0x41,0x2F,0x3A,0xDF,0x89,0x2A,0xA1,0x1A,0x55,0x33,0x32,
+0x6C,0xE3,0xCB,0xDB,0x9A,0x3B,0xB2,0xDD,0x05,0x0A,0x73,0x22,0xFF,0x0C,0x8F,0xD7,
+0x4F,0xF1,0xD9,0xEA,0x1B,0x13,0x33,0x74,0xB3,0x69,0xA6,0x41,0x5D,0xD3,0xF2,0x75,
+0x4D,0xE2,0xCA,0xFB,0xA0,0x0C,0x88,0xD0,0x96,0xA7,0x4D,0x8F,0x9F,0xE8,0x0B,0xB7,
+0xC7,0x71,0x59,0xE2,0x64,0x94,0x4C,0x8C,0xC4,0xA4,0x1C,0x8C,0xB5,0xB5,0x7C,0x9D,
+0xDE,0x4F,0x67,0xC5,0xDB,0x9B,0xF3,0x3C,0x98,0x60,0x84,0x48,0xBD,0xBF,0x7E,0x95,
+0x64,0xF8,0xD0,0xC8,0x3F,0x07,0x17,0x44,0x4E,0x37,0x05,0x1F,0xD2,0x17,0xB9,0xFA,
+0x03,0xFE,0xD6,0xA9,0xE8,0x8E,0xC0,0x1A,0x78,0xCF,0xCB,0xE7,0x8B,0xAC,0x5B,0xA3,
+0x59,0xE6,0xCE,0xEB,0x99,0x6A,0xB1,0x8F,0xD5,0x81,0x28,0xA9,0x05,0x49,0x30,0x2D,
+0x5F,0x3A,0x12,0x31,0x01,0x20,0x29,0x5D,0x33,0xF2,0xBD,0xDA,0xBB,0xD8,0x1F,0x93,
+0xAF,0x5E,0x76,0xA5,0x06,0x61,0x2E,0x1B,0xF1,0xA1,0x2C,0x89,0x47,0xFA,0xC1,0x6F,
+0x80,0x98,0xB0,0x4C,0x70,0xC4,0x58,0xC8,0x0A,0x23,0x55,0x0B,0xE4,0x04,0x9C,0xCC,
+0x20,0xEC,0xC4,0x98,0x1C,0x52,0x34,0x32,0x9C,0xAF,0x4F,0x87,0x5E,0x81,0xA3,0x76,
+0x97,0x61,0x49,0xA2,0x13,0x11,0x3B,0x7E,0xC3,0x96,0x29,0xBE,0xA6,0xB7,0x6D,0x8E,
+0x87,0xAA,0x82,0x79,0x0C,0x12,0x24,0x62,0x7C,0x00,0x00,0x28,0xBF,0xCC,0x0F,0x97,
+0x7A,0xF4,0xDC,0xDA,0x2C,0x16,0x04,0x46,0xAD,0x65,0xB4,0x4D,0x20,0x58,0x04,0x08,
+0x0B,0xE5,0xCD,0xBA,0xB8,0x4E,0x90,0x8A,0x18,0xFB,0x9F,0xD3,0xE5,0x25,0xBC,0xCD,
+0x8B,0x7E,0x56,0xA1,0xC3,0xD9,0xEB,0x66,0x57,0x09,0x22,0x21,0xE3,0x42,0xDD,0xCB,
+0xC6,0x9F,0xB7,0x0D,0xEE,0xEF,0xC6,0x7D,0x2B,0x22,0x75,0x0A,0x17,0x6A,0x01,0x3F,
+0x5C,0xC7,0xEF,0xCF,0x5A,0xB3,0x72,0x95,0xA8,0x44,0x90,0x6C,0x6F,0xD4,0xC7,0x47,
+0xAA,0x7F,0x57,0x81,0x0F,0x43,0x27,0x30,0x2C,0x10,0x40,0x38,0x26,0x3F,0x65,0x0E,
+0x51,0xFD,0xD5,0xF8,0x75,0xF4,0x5D,0xFD,0x71,0x3A,0x37,0x12,0xC1,0x15,0xA8,0xE9,
+0xD2,0x9B,0xB3,0x1D,0x24,0x14,0x0C,0x4C,0x88,0xAB,0x5F,0x83,0x2A,0x21,0x77,0x02,
+0x99,0xA6,0x8E,0x6B,0xFA,0xBF,0xD2,0x39,0xCF,0x42,0xF1,0x6A,0xEA,0x69,0xFF,0xC2,
+0x27,0xDE,0xF6,0xAD,0x50,0xC0,0x78,0xEC,0xA3,0xA2,0x7D,0x8A,0x8D,0xCB,0x3A,0xA5,
+0xBE,0x7B,0x53,0x91,0x55,0xF0,0x7D,0xD9,0xB6,0x48,0x82,0x60,0x77,0x8E,0x85,0x5F,
+0x92,0x40,0x68,0x86,0xD8,0xCA,0xF0,0x6E,0xA4,0x90,0x48,0xB8,0x8F,0xB8,0x4B,0xA7,
+0xE5,0x8D,0xA5,0x3C,0xDD,0xFA,0xF5,0x5B,0x31,0xE1,0xAC,0xC9,0x6B,0xC0,0xD7,0x43,
+0xD6,0x54,0x7C,0xD6,0xD3,0x99,0xFB,0x36,0x89,0x45,0xB0,0x6D,0x32,0x7B,0x35,0x1A,
+0x17,0x18,0x3B,0x7E,0xDF,0xE2,0xFC,0x6F,0x4B,0xFF,0xE6,0xDC,0xCE,0x1E,0x82,0xED,
+0x58,0xEA,0xC9,0xC3,0x33,0x7C,0x10,0x1D,0xEA,0x65,0xDD,0x46,0x8D,0x8C,0x53,0xAE,
+0xB4,0x91,0xB2,0x54,0xA6,0x04,0x85,0xF0,0x16,0xD5,0x91,0xF6,0x2A,0x66,0x1E,0x09,
+0xEF,0x67,0x44,0xF9,0xF6,0xC4,0xD5,0x60,0x72,0x2E,0x0E,0x0D,0x47,0xBD,0xA8,0x64,
+0x9D,0x8B,0xA8,0x67,0x25,0x5D,0x06,0x2A,0x22,0x3E,0x4E,0x1D,0x87,0xF5,0x20,0xA4,
+0xC4,0x6E,0x4D,0xDB,0xFE,0xC6,0xDD,0x6A,0xA4,0x79,0x8F,0x5A,0x78,0x85,0xAF,0x5B,
+0x7E,0xD9,0xFA,0xD6,0xE6,0x84,0xC5,0x30,0x8E,0x9E,0x42,0xBD,0xB7,0x81,0x64,0x94,
+0xD1,0x84,0xA7,0x24,0xF8,0xA7,0xDB,0x0D,0xE4,0xA2,0x14,0x81,0x1A,0x12,0x5A,0x39,
+0xD5,0x4B,0x68,0xEF,0x5A,0xDA,0x79,0xD2,0xB1,0x93,0x70,0xB0,0xB9,0xEC,0x07,0x9A,
+0x41,0xD4,0xF7,0xE4,0x3A,0x5E,0x19,0x36,0x68,0xED,0xD7,0xCE,0x1F,0x27,0x6A,0x3C,
+0xA5,0xB4,0x97,0x60,0xE2,0x94,0xC1,0x24,0xE7,0x5F,0xEA,0x7C,0x54,0xBF,0xB9,0x77,
+0x74,0xD1,0xF2,0xD4,0xA1,0x45,0x82,0xB6,0x01,0x2C,0x7F,0x0F,0x36,0x28,0x4C,0x15,
+0xBE,0x99,0xBA,0x56,0x23,0x3C,0x00,0x4D,0x7F,0x14,0x39,0x37,0xD1,0x02,0x81,0xF2,
+0x57,0xC3,0xE0,0xE5,0xDA,0xD2,0xF9,0x5A,0xFD,0x9C,0x33,0xBF,0x72,0xFC,0xDC,0x51,
+0x82,0x69,0x4A,0x9A,0x8B,0x32,0xA8,0xEB,0x49,0xEC,0xF7,0xCF,0x45,0xCE,0xD9,0x66,
+0x0B,0x07,0x24,0x7D,0xB5,0x15,0x96,0xF2,0x0C,0x16,0x48,0x35,0xC7,0x35,0xA0,0xE4,
+0x37,0xF7,0xD4,0xB1,0x4B,0xBA,0x68,0xA3,0x11,0xE7,0xA4,0xC4,0x8C,0xAD,0x73,0xAF,
+0x3C,0x11,0x32,0x5C,0x88,0x63,0xAB,0xB9,0xC3,0x7F,0xEE,0x5C,0xA5,0xA2,0x55,0x86,
+0x84,0xB5,0x96,0x40,0x50,0xA9,0x73,0xAB,0x5E,0x15,0x19,0x36,0x76,0xE8,0xCC,0x55,
+0x92,0xA2,0x81,0x41,0x66,0x8C,0x45,0xB8,0x80,0x59,0x8B,0x7A,0x09,0x10,0x4B,0x2A,
+0x9A,0xB9,0x9A,0x52,0xBD,0x17,0x9E,0xF8,0xE9,0x98,0x23,0xBB,0x26,0x78,0x0C,0x05,
+0x9B,0x57,0x74,0xBD,0x13,0x78,0x30,0x39,0x70,0x3D,0x1F,0x1E,0x1E,0x06,0x4A,0x3D,
+0x19,0xDF,0xFC,0xB7,0xE9,0xC7,0xCA,0x7C,0x77,0x0F,0x2A,0x2C,0x99,0xC8,0x03,0xBA,
+0xDA,0x62,0x41,0xC9,0xA3,0x34,0x80,0xC5,0x4F,0x30,0x2D,0x13,0x7A,0xF6,0xDE,0x59,
+0x3B,0x23,0x00,0x69,0x22,0x1C,0x01,0x6C,0x8B,0xBF,0x66,0x9C,0x83,0xE1,0x30,0xA0,
+0xD6,0xB6,0x95,0x11,0xCB,0xB2,0xE8,0x2B,0xA6,0x6A,0x9E,0x49,0x53,0xF9,0xF8,0x70,
+0xF4,0x4A,0x69,0xCF,0x71,0x8D,0x52,0xAE,0xF1,0x48,0xEB,0x6B,0xC3,0x21,0xB0,0xE0,
+0x18,0x31,0x12,0x58,0xB1,0x05,0x92,0xE6,0x5F,0xFB,0xF6,0xD8,0xEB,0x0F,0xB6,0xC8,
+0x8F,0x53,0x70,0xAD,0xF3,0xF4,0xD0,0x55,0xDE,0x8E,0x02,0xAD,0xC2,0x00,0x90,0xE1,
+0xED,0x74,0x57,0xE8,0x73,0xFC,0x50,0xDD,0xFB,0x40,0xE9,0x63,0x6D,0xE0,0xDF,0x4E,
+0x0E,0x26,0x05,0x59,0xDC,0xB3,0xFF,0x3D,0x32,0xF5,0x95,0xD6,0x67,0x99,0xAC,0x44,
+0x4C,0xEE,0xCD,0xD3,0x1D,0x1B,0x3E,0x54,0x09,0x37,0x6C,0x14,0x35,0x7A,0x1D,0x16,
+0xC7,0x93,0xB0,0x25,0xF9,0x87,0xDA,0x2C,0x42,0x0A,0x1A,0x29,0x19,0x40,0x0B,0x3A,
+0xE5,0x6F,0x4C,0xFB,0xAA,0x16,0x89,0xEE,0x04,0x0D,0x5B,0x2E,0x7D,0xB0,0x9F,0x5E,
+0x1B,0xCC,0xEF,0xA6,0x28,0x6F,0x0B,0x15,0xD7,0x7B,0xFE,0x58,0xBB,0x9F,0x76,0x98,
+0x9E,0x76,0x55,0x99,0xA4,0x75,0x87,0x83,0x2D,0x17,0x68,0x34,0xCF,0x3F,0xA2,0xEC,
+0xA0,0x95,0xB6,0x44,0x6B,0xBE,0x48,0x87,0x23,0xD0,0xA1,0xF3,0x6C,0xC1,0xFF,0x4F,
+0x08,0xFA,0xD9,0x83,0x3C,0x3F,0x1F,0x51,0x5B,0x34,0x3D,0x17,0xDB,0x7B,0xF2,0xF8,
+0xB3,0xA3,0x80,0x61,0xC4,0xF1,0xE7,0x67,0x05,0xE3,0xB4,0xC0,0xDD,0x1C,0x93,0xFE,
+0x56,0x2D,0x0E,0x0A,0x8A,0x12,0xA9,0xCA,0x90,0x92,0x50,0xB1,0xC5,0x46,0xD1,0xE6,
+0x13,0xD7,0xF4,0xB5,0x01,0x49,0x22,0x1A,0xC2,0x91,0x01,0xB2,0xC0,0x73,0xE1,0xE3,
+0xCC,0x75,0x56,0xC8,0x62,0x9C,0x41,0xAC,0x6B,0x10,0x29,0x33,0xD2,0x50,0xD0,0xF1,
+0xF7,0xB7,0x94,0x31,0xAC,0x77,0x8F,0x89,0xCF,0xAB,0x36,0x88,0xC1,0x52,0xC1,0xE2,
+0xAA,0x9D,0xBE,0x46,0xAF,0x26,0x8C,0xDB,0x93,0x6F,0xAE,0x4C,0x52,0xD8,0xD8,0x71,
+0xE3,0xB3,0x90,0x21,0x46,0x88,0x65,0x9C,0x03,0x3F,0x6E,0x1C,0x38,0x45,0x2F,0x1B,
+0xAF,0xBC,0x9F,0x62,0x03,0x38,0x20,0x69,0x5C,0x06,0x08,0x25,0x75,0xBA,0x9D,0x56,
+0x6D,0xEF,0xCC,0xF3,0x8F,0x22,0xAC,0xFF,0x1F,0x20,0x6D,0x03,0x61,0xFE,0xCD,0x42,
+0x4A,0x32,0x11,0x09,0x82,0x10,0xA1,0xC0,0x25,0x0C,0x7B,0x2F,0x08,0x31,0x6B,0x2B,
+0x91,0x5F,0x7C,0xBF,0x43,0xB8,0x60,0xA9,0xC6,0x5E,0xCA,0x7D,0x58,0xA1,0xAB,0x7B,
+0xA7,0xA7,0x84,0x71,0x9B,0x72,0xB8,0xBB,0x71,0xD3,0xF0,0xF0,0x63,0x8D,0xBC,0x40,
+0xDF,0x43,0x60,0xED,0xEA,0x96,0xC9,0x2E,0x44,0xD6,0xC0,0xF5,0xAE,0xFA,0x06,0x8D,
+0x64,0x1A,0x39,0x0F,0x4E,0x8A,0x6D,0x96,0x29,0xD8,0xA3,0xFB,0x77,0xC9,0xEC,0x54,
+0x0A,0xE9,0xCA,0x92,0x31,0x0D,0x12,0x6E,0xE2,0x7E,0xCE,0x5D,0xDE,0x4E,0xC2,0xFD,
+0x3E,0x02,0x21,0x4D,0xA0,0x65,0x83,0x97,0x53,0x2F,0x2E,0x0C,0xB8,0xCD,0x27,0x9B,
+0x76,0xC2,0xE1,0xC5,0x49,0xCB,0x6A,0xD0,0x26,0xF1,0x85,0xD2,0x85,0x86,0x51,0xA6,
+0xD4,0xA5,0x86,0x00,0xA9,0x47,0x8A,0xBC,0xF3,0x5B,0xFA,0x78,0xFD,0x38,0x97,0xDE,
+0x5D,0xCB,0xE8,0xE7,0x02,0x18,0x21,0x48,0x79,0xC8,0xE3,0xEB,0x5D,0x94,0x9B,0x7E,
+0x75,0x3F,0x1C,0x3B,0x29,0x4F,0x0A,0x34,0x62,0xE5,0xD5,0xC6,0xBC,0xD9,0x37,0x9F,
+0xCB,0x47,0x64,0xFD,0x4F,0xAA,0x6C,0xB7,0x8A,0x51,0x89,0x72,0xE4,0x43,0xF5,0xC7,
+0x20,0x0E,0x2D,0x5F,0x1B,0x7A,0x38,0x33,0x2F,0x04,0x79,0x27,0x5C,0xB5,0xBB,0x7F,
+0xA8,0x8E,0xAD,0x57,0x9D,0x13,0xBE,0xDC,0x61,0x18,0x2B,0x3B,0x42,0x88,0x98,0x61,
+0xD3,0x97,0xB4,0x35,0x0B,0x3A,0x28,0x63,0x7D,0x07,0x28,0x24,0x89,0x98,0x43,0xAA,
+0x47,0x08,0x2B,0x3E,0x6E,0x8E,0x4D,0xB2,0x59,0x27,0x2C,0x04,0xD7,0x65,0xE0,0xF4,
+0x3A,0xCD,0xEE,0x86,0xF0,0xA5,0xD3,0x07,0x95,0xB3,0x74,0x90,0xC6,0x14,0x80,0xE5,
+0x3D,0xBF,0xAE,0xDE,0xBD,0xE8,0x9A,0x0B,0x14,0xA1,0xF7,0x99,0x3B,0x4C,0xAF,0x5B,
+0x74,0x1D,0x45,0x97,0x39,0xBC,0x4A,0x5F,0x41,0x04,0xA2,0x69,0xCD,0xF4,0x17,0x15,
+0x0C,0xDB,0xFB,0xEF,0xBA,0xDA,0xAF,0x39,0xF5,0xEC,0x16,0x35,0x57,0xAC,0x4F,0xD7,
+0xF8,0x07,0xD3,0x1B,0xC6,0xF1,0xF8,0x12,0xD8,0xF7,0x3B,0x03,0x1A,0x4D,0xAE,0x7B,
+0xFE,0x66,0xB4,0x1D,0x89,0x03,0x45,0xE0,0xA3,0x1B,0x40,0x94,0x9A,0xD6,0x35,0x60,
+0x3B,0xDE,0xC9,0xD8,0x3C,0x9D,0x6E,0x7E,0x37,0xD7,0xD4,0xCC,0xEB,0xC7,0x24,0x00,
+0xA4,0xD5,0x5D,0x47,0xED,0xF8,0xDA,0x1B,0x17,0xF3,0xF4,0xC8,0x16,0x99,0x7A,0xA3,
+0xBD,0xB7,0x26,0x5E,0x52,0x6E,0xF3,0x8D,0x08,0xEF,0xEB,0xCB,0x06,0x52,0xB1,0x78,
+0x29,0xEF,0xEA,0xCA,0x18,0xBD,0x6A,0x5E,0xC8,0xA7,0x2B,0x43,0x47,0x67,0x84,0x0C,
+0x70,0x0D,0x51,0x93,0xA0,0x19,0x76,0xFA,0xC6,0xCA,0x25,0x20,0x74,0xBE,0x5D,0xE6,
+0x94,0x91,0x29,0x77,0x35,0x68,0x92,0x8B,0xC3,0xFF,0x20,0x10,0x03,0x73,0x90,0x5C,
+0x6C,0x5F,0x1F,0x8F,0x27,0xB0,0x58,0x53,0x4E,0x48,0xAD,0x2A,0x2F,0x48,0xAB,0x4B,
+0x96,0xE0,0x5A,0x75,0x32,0x5A,0xA7,0xB9,0x4B,0x7D,0xA8,0x1A,0xB6,0xED,0x0E,0x77,
+0xF1,0x25,0xF8,0x12,0x5E,0xBA,0x2B,0x59,0xE1,0xA8,0x02,0x65,0x08,0x95,0x76,0xB1,
+0x31,0xAD,0xB0,0xD2,0x19,0x53,0x85,0xB0,0x3F,0xDD,0xDC,0xCE,0x43,0xA8,0x4B,0xC7,
+0xDA,0x72,0x84,0x39,0xE0,0xC2,0xED,0x21,0x6E,0x6C,0x8D,0x2E,0xC0,0xCE,0x2D,0x22,
+0xAE,0xA6,0x24,0x4D,0x55,0x5C,0xC6,0xBF,0x7F,0x1D,0x9C,0x4E,0x56,0x42,0xA1,0x38,
+0x84,0xD1,0x79,0x67,0x07,0x5F,0x97,0xBC,0xBB,0x41,0x58,0xD6,0xDC,0xD1,0x32,0x21,
+0x46,0x28,0x42,0xA5,0x22,0x91,0x7C,0x72,0x00,0xE5,0xE3,0xC9,0xDE,0xC2,0x21,0x30,
+0xE4,0x55,0x9D,0x07,0x94,0xF2,0xA9,0x11,0x81,0x4C,0x62,0xE1,0xFD,0xD0,0x33,0x01,
+0x01,0xE9,0xC4,0xE2,0x4E,0x71,0xF0,0x92,0x1C,0xAB,0xFF,0x9B,0xBF,0x18,0xFB,0x8B,
+0xDC,0x13,0xE3,0x3F,0x71,0x7C,0xC2,0x9F,0x30,0x91,0xD3,0x8D,0x70,0x71,0x92,0x2D,
+0x8F,0x82,0x21,0x6C,0xE7,0xF0,0xD8,0x13,0x16,0xD2,0xF5,0xE8,0x34,0x65,0x86,0x7D,
+0x80,0xC1,0x6D,0x63,0x12,0xB5,0x68,0x56,0x2F,0x8D,0xCC,0x8E,0xCB,0x28,0xCB,0xCF,
+0x45,0x79,0x10,0xA6,0x0D,0x57,0x95,0xB4,0x07,0xA3,0xE4,0x88,0xB1,0xDF,0x3C,0x42,
+0xFF,0x46,0x95,0x1C,0x9B,0xDB,0x8F,0x38,0x6B,0x59,0x88,0x1E,0x11,0xAB,0x48,0x96,
+0x5C,0x1B,0x6B,0xBF,0x60,0x59,0xF6,0xBA,0x1D,0x8A,0xFE,0xBB,0x3E,0x6D,0x8E,0x7F,
+0xA0,0xC5,0x49,0x43,0xA2,0x0A,0x67,0xE9,0x1A,0xCC,0xF9,0xFA,0xCE,0x09,0xEA,0xEB,
+0x1E,0xEA,0xD8,0xFD,0x44,0x79,0xF2,0x9A,0x82,0x1E,0x61,0xB0,0xC8,0xD5,0x36,0x31,
+0x90,0x81,0x3D,0x73,0xE9,0x37,0x11,0xD4,0xF3,0x8B,0x10,0x54,0x92,0xCD,0x2E,0x73,
+0xC9,0x63,0x86,0x2A,0xDF,0xCF,0xDF,0x2C,0x24,0xD5,0xC7,0xDD,0xF5,0xCB,0x28,0x12,
+0xA6,0xA4,0x2E,0x45,0x09,0x98,0x5E,0x7B,0xC0,0xAD,0x23,0x41,0x4F,0x7C,0x9F,0x1F,
+0x02,0xB8,0x96,0xE1,0x68,0x42,0xE5,0xA1,0xEB,0xD1,0x08,0x16,0x81,0xFB,0x18,0x56,
+0x79,0x2F,0x7A,0x9A,0x20,0x82,0x6D,0x61,0x58,0x7F,0xBB,0x0B,0xAF,0xD3,0x30,0x50,
+0x85,0xF1,0x58,0x66,0xA5,0x38,0x52,0xDB,0x7A,0x28,0x99,0x7E,0x77,0x43,0xA0,0x18,
+0x10,0x89,0xB5,0xF3,0xE2,0xD1,0xFC,0x32,0xAF,0x05,0x4C,0x86,0x6F,0x93,0x70,0xD0,
+0xDD,0x33,0xC2,0x3E,0xDA,0xEE,0xFB,0x0D,0x27,0x87,0xC4,0x8C,0xF4,0x25,0xC6,0xFD,
+0x15,0xB9,0x80,0xF6,0xB3,0x2F,0x53,0xCC,0xE5,0xBC,0x06,0x75,0x17,0x77,0x94,0x4C,
+0x47,0x08,0x63,0xA4,0x53,0x80,0x1C,0x63,0x50,0x75,0xB3,0x09,0x6E,0x7D,0x9E,0x3F,
+0x60,0x4D,0x01,0x83,0xDB,0x00,0x14,0xE3,0x9E,0x50,0x7D,0xE2,0x8E,0xD2,0x31,0x70,
+0x91,0xA1,0x1C,0x72,0x36,0x95,0x6C,0x76,0x49,0x0E,0xAA,0x6B,0x9E,0x19,0xFA,0xAB,
+0x86,0xA0,0x0A,0x65,0x25,0xA3,0x49,0x40,0x05,0xD0,0xE6,0xF9,0x66,0x66,0x85,0x2C,
+0x22,0xBC,0xB2,0xC1,0x37,0x7B,0x83,0x98,0x6F,0x4D,0x8C,0x0E,0x2C,0xB5,0x56,0xB5,
+0xC4,0x51,0xB9,0x27,0x2D,0xB8,0x5A,0x5B,0xF7,0x9F,0x14,0x44,0x23,0x9C,0x7F,0x93,
+0x51,0x29,0x54,0xB2,0x4B,0x50,0xD4,0xB3,0x20,0xC1,0xC3,0xCD,0x78,0x6A,0x89,0x3E,
+0xEC,0x57,0x97,0x0F,0xF2,0x1A,0x27,0xF9,0x1F,0xF9,0xFC,0xCA,0x46,0x89,0x6A,0xE3,
+0x64,0x5D,0x15,0x87,0xB7,0xE0,0x98,0x03,0x2D,0xFE,0xCE,0xFF,0x88,0x0E,0xED,0xAA,
+0x8A,0xB2,0x14,0x69,0x76,0x4E,0xF7,0xAD,0x88,0x67,0x6B,0xC3,0xF6,0x36,0xD5,0xEC,
+0xE2,0x34,0xFA,0x01,0x38,0x52,0xA5,0xB1,0x3C,0x8F,0xDF,0x9F,0xA6,0x26,0xC5,0xAC,
+0x87,0x80,0x2B,0x64,0xAA,0x11,0x74,0xF2,0x4F,0x69,0xAC,0x0A,0x31,0x44,0xA7,0x59,
+0xE7,0x04,0xCF,0x04,0xB8,0xC9,0xBE,0x2A,0xFD,0xE6,0x1E,0x37,0xA9,0x0F,0xEC,0x8A,
+0x78,0x0F,0x5B,0x9B,0x5C,0xA9,0x3A,0x4A,0x83,0x3F,0x60,0x90,0x62,0xA9,0x4A,0xE7,
+0x34,0x9D,0x85,0xD7,0x7C,0x46,0xF5,0xA5,0x06,0x82,0xE5,0xA8,0xBB,0xD7,0x34,0x40,
+0x5A,0x7A,0x0C,0xB9,0x65,0x78,0xD2,0x9B,0xFC,0xC7,0x1F,0x17,0x40,0x55,0xB6,0x39,
+0xF0,0x05,0xD9,0x13,0xD4,0x29,0x32,0xCA,0x8C,0x73,0x6F,0xD3,0x72,0x62,0x81,0x3C,
+0xAA,0xB6,0x30,0x49,0xC3,0xD0,0xDC,0x33,0x04,0xF1,0xE7,0xD9,0x8C,0xC1,0x22,0x61,
+0x54,0x19,0x61,0xB7,0xEE,0x05,0x24,0xE6,0x3E,0xFC,0xDD,0xEE,0x33,0x57,0xB4,0x48,
+0xA2,0xB4,0x3A,0x41,0x7E,0x55,0xE4,0xB6,0xC5,0x98,0x26,0x71,0xE8,0x3A,0xD9,0xFE,
+0xD9,0x23,0xD6,0x3A,0x93,0xC0,0x9C,0x23,0x75,0x64,0x96,0x3D,0x02,0x9D,0x7E,0xB3,
+0x2B,0x9E,0x99,0xC8,0xE1,0x2C,0x02,0xCF,0xEF,0xC5,0x0C,0x06,0x90,0xDE,0x3D,0x62,
+0xB7,0xC4,0x5F,0x54,0x83,0x0B,0x47,0xE8,0xB2,0x6A,0x51,0xF4,0x9C,0x0A,0xE9,0xBA,
+0xEA,0x36,0xF0,0x09,0xBE,0x15,0x64,0xF6,0x8E,0x00,0x6D,0xA2,0x0F,0xA7,0x44,0x84,
+0x5D,0x3B,0x4A,0xBE,0xE4,0x0D,0x26,0xEE,0x69,0x2A,0x8A,0x6F,0x0B,0x68,0x8B,0x4F,
+0xB8,0x87,0x13,0x5B,0xA4,0xD6,0xBD,0x35,0x2E,0xAC,0xCD,0xAE,0x7B,0x97,0x74,0xC0,
+0x8C,0xAE,0xBC,0xF1,0x7A,0x6D,0xF4,0x10,0xFA,0x6F,0x87,0x0B,0x89,0x89,0xF4,0x9E,
+0xC9,0x1E,0x49,0xB4,0x36,0x62,0xB7,0x1F,0xB7,0x90,0xCA,0xB9,0xD6,0xB0,0xCD,0xF8,
+0x0D,0x86,0x15,0x70,0x9F,0xE3,0x9F,0x9E,0x87,0xE4,0xFA,0xFD,0xF0,0x83,0xFE,0xED,
+0x00,0xB4,0x2A,0x7D,0xB8,0x3E,0x65,0x43,0xEE,0x2B,0x93,0x5B,0xCA,0xAF,0xD2,0xFB,
+0xED,0x0A,0x79,0x90,0x19,0xA4,0x5E,0xD9,0x5D,0x85,0x20,0x46,0xBE,0x9F,0xE2,0xBF,
+0x8E,0xDF,0xCF,0xF3,0xC6,0x06,0x23,0x7B,0x4F,0xA6,0x32,0x77,0x17,0x1E,0x63,0x97,
+0x20,0xB0,0x0E,0x5D,0x7F,0x4C,0xD0,0x31,0xDD,0x0D,0xA0,0x4E,0x46,0xE0,0x9D,0x38,
+0x23,0xE1,0x5C,0x5E,0x22,0x66,0xA7,0x1B,0x4E,0x87,0x33,0x57,0x1A,0x24,0x59,0xA0,
+0xB3,0xA9,0x84,0xCE,0xDD,0x2B,0x15,0x56,0x54,0xAE,0x29,0x64,0x8E,0xBB,0xC6,0xAB,
+0xE4,0x28,0x52,0x99,0x75,0x44,0xD2,0x39,0xE3,0x14,0x9E,0x69,0xF6,0x5F,0x22,0x37,
+0x05,0x84,0x1F,0x78,0x83,0xFC,0x9C,0x81,0x4A,0x93,0x37,0x47,0x45,0x1D,0x60,0xC6,
+0x4B,0x67,0xB2,0x36,0x66,0x72,0xF7,0x0F,0x52,0xC9,0x2F,0x05,0xD0,0x6C,0x11,0x22,
+0x25,0x80,0x3B,0x58,0x30,0xBE,0x6D,0xC3,0xF2,0x65,0x8F,0x09,0xD1,0x82,0xFF,0xCD,
+0x76,0x11,0xF9,0x0B,0x12,0x42,0xB3,0x3F,0x96,0x95,0xEB,0x9D,0x97,0x85,0xF8,0x8C,
+0x2B,0xE3,0x56,0x56,0x4B,0xA7,0x0F,0xDA,0x40,0xEA,0x3D,0x34,0xF8,0x98,0xE5,0xFE,
+0xA7,0xF9,0xC0,0xDA,0xCE,0x1D,0x30,0x60,0x34,0x4A,0x49,0xE0,0x02,0xF4,0x89,0x68,
+0x84,0xAC,0xB6,0xF9,0x06,0x46,0xA3,0x3B,0x06,0x4D,0x7B,0xD5,0xA8,0x88,0xF5,0xBE,
+0x12,0x85,0x09,0x6F,0x7D,0x5F,0xC1,0x22,0xCD,0x5D,0xB0,0x0E,0xB4,0x97,0xEA,0xBD,
+0x7F,0x33,0xD2,0x02,0xEF,0x1C,0x10,0x61,0x49,0xC1,0x34,0x16,0x40,0x3C,0x41,0xE2,
+0xE1,0x18,0x67,0x9C,0x92,0xD9,0xA8,0xA4,0x58,0xB0,0x25,0x76,0x8C,0xA8,0xD5,0xBA,
+0xA6,0xD9,0xE1,0xDB,0xA0,0xEE,0xAD,0x93,0x33,0x0C,0x4E,0xA1,0xB7,0x6A,0x17,0x43,
+0x8D,0x8E,0x9D,0xF0,0x88,0x1A,0x71,0x67,0xD2,0x41,0xAF,0x0D,0xAC,0x47,0x3A,0x75,
+0x94,0xEC,0xE6,0xE9,0xF5,0xDF,0xC9,0xA2,0xD3,0x60,0xAE,0x2D,0xFA,0x8B,0xF6,0xEF,
+0xC0,0x3C,0x62,0xBD,0x1E,0x96,0x6B,0xEB,0x6B,0x96,0x16,0x63,0x5F,0xDE,0xA3,0x1F,
+0x2F,0xF3,0x42,0x52,0xEB,0xD3,0xDB,0xAE,0x37,0x18,0x4A,0xB1,0x86,0xA0,0xDD,0xB8,
+0xBE,0x9B,0xBB,0xC3,0xDF,0x38,0x04,0x45,0x51,0x9B,0x2C,0x54,0x37,0xF1,0x8C,0x58,
+0x26,0xD1,0x69,0x5B,0x01,0x74,0x96,0x09,0x72,0xED,0x0F,0x01,0x26,0xD4,0xA9,0x6C,
+0xC6,0x5D,0x05,0xBB,0xA3,0x13,0x53,0x6E,0x0A,0x53,0x77,0xC7,0xF3,0x7E,0x03,0x13,
+0x14,0xE4,0x6E,0x69,0x72,0x76,0xE7,0x0B,0xEC,0x58,0x91,0x2A,0xA4,0x5C,0x21,0x66,
+0xCC,0x2E,0x7C,0xB1,0x44,0x8E,0x29,0xF3,0xD7,0x74,0xAA,0x3D,0x13,0xD1,0xAC,0x5C,
+0xC1,0x1C,0x43,0xBC,0xB1,0xCB,0x99,0xB6,0xF8,0x1C,0x85,0x7A,0xFC,0x57,0x2A,0x35,
+0x65,0x00,0xFB,0x18,0x0A,0x92,0x7B,0xEF,0x21,0x2F,0x5C,0x90,0x91,0x59,0x24,0x56,
+0x55,0x44,0x8F,0x28,0x82,0x12,0x73,0x6F,0xFD,0x29,0x80,0x4A,0x28,0x13,0x6E,0xA5,
+0xAC,0xAA,0x98,0xD1,0x6B,0x48,0xC0,0x35,0x5E,0xD7,0x23,0x17,0xAA,0x9B,0xE6,0xAF,
+0x3A,0x83,0x27,0x47,0xDE,0xD6,0xEB,0xAB,0x48,0xE0,0x35,0x36,0xD9,0x99,0xE4,0xDE,
+0x04,0xA4,0x3E,0x79,0x57,0xB8,0x0C,0xC5,0xCA,0x1B,0xB7,0x4F,0x9C,0x63,0x1E,0x61,
+0xB5,0xC8,0xE3,0xC8,0x94,0x05,0x72,0x78,0x90,0xF2,0xED,0xFC,0xBD,0x62,0x1F,0x41,
+0xD5,0x4C,0x07,0xA8,0x00,0x9A,0x79,0xE7,0x36,0x39,0x4B,0x91,0x64,0x1C,0x61,0xE6,
+0x2E,0xD3,0x63,0x53,0xA1,0x00,0x42,0x7D,0xB9,0xFD,0xC4,0xDA,0xD4,0xA3,0xDE,0xE9,
+0x6D,0x02,0xF1,0x10,0x70,0x65,0xF6,0x18,0xDB,0x6A,0xA6,0x2F,0x32,0xD0,0xAD,0x7C,
+0x71,0x50,0xBF,0x0C,0x11,0xBF,0x4D,0xC2,0xF7,0x50,0x8A,0x39,0x71,0xF6,0x8B,0x19,
+0xAA,0xCB,0xFF,0xD7,0x48,0x5A,0xF1,0x27,0x08,0x20,0x75,0xB6,0xF7,0xB1,0xCC,0xD8,
+0x77,0x31,0xD8,0x0A,0x04,0x55,0xB2,0x28,0x95,0xC7,0xE8,0xCC,0x31,0x2D,0x50,0x82,
+0x69,0x12,0xE5,0x14,0xAB,0x08,0x40,0x75,0x38,0x54,0x45,0xF2,0x5B,0x11,0x6C,0xD4,
+0xBC,0xEA,0xC8,0xC1,0x8D,0x3B,0x55,0x46,0x02,0x59,0x7F,0xC5,0x3F,0xEA,0x97,0x4B,
+0x50,0x74,0xBA,0x2D,0xC2,0xC9,0xE8,0xB4,0x41,0xCB,0x3C,0x14,0x9E,0x70,0x0D,0x70,
+0x79,0x52,0xB5,0x04,0x3A,0xB6,0x6F,0xCB,0xC8,0x68,0xB5,0x3E,0xA7,0xA1,0xDC,0x98,
+0x29,0x92,0x25,0x54,0x61,0x40,0xC2,0x3D,0xA5,0xB3,0xD8,0x88,0xC3,0x5A,0x27,0x07,
+0xFC,0x6A,0x08,0x81,0x38,0xA5,0x7E,0xD8,0xE2,0x35,0x9F,0x49,0x2E,0xCF,0xB2,0x7F,
+0x7C,0x62,0x80,0x01,0x5A,0x82,0x3B,0xFF,0x4D,0xD5,0x30,0x06,0x0B,0x01,0x7C,0x94,
+0x92,0x8D,0x81,0xEF,0x99,0x3F,0x45,0x42,0xBA,0xAF,0xC7,0x8B,0xDC,0xB8,0xC5,0xFA,
+0x53,0x25,0xE8,0x2E,0xDB,0xF7,0xCF,0x8A,0xE8,0x4C,0x95,0x3A,0xE7,0x7A,0x07,0x03,
+0x44,0x24,0xFE,0x39,0x03,0x67,0x87,0x1A,0xDC,0x2C,0xA1,0x6E,0x73,0xE5,0x98,0x08,
+0xAD,0x8A,0xB9,0xD0,0xEE,0xF2,0xFF,0x8F,0x0C,0x34,0x71,0xA6,0x5E,0x30,0x4D,0xF0,
+0x3E,0x93,0x33,0x43,0xCD,0xE0,0xCE,0x9D,0x64,0xDA,0x19,0x20,0x8A,0x74,0x09,0x60,
+0xFE,0x1B,0x7B,0x83,0x21,0x9B,0x59,0xE6,0x4C,0xF4,0x31,0x26,0x24,0xC7,0xBA,0x7D,
+0x9C,0xEE,0xEC,0xE1,0x4E,0x86,0x2B,0xFB,0x91,0xD3,0xEC,0xDC,0xA5,0xB2,0xCF,0x89,
+0x32,0x81,0x2D,0x4F,0x4F,0x68,0xC4,0x15,0xA9,0xAD,0xD4,0x9A,0x3C,0x17,0x6A,0xB5,
+0x2C,0xA2,0x10,0x51,0x0F,0xB3,0x5F,0xCE,0xF5,0x23,0x88,0x48,0x9A,0xBF,0xC2,0xBB,
+0x66,0x51,0xA9,0x1B,0xCC,0x0E,0x21,0x73,0x16,0x1D,0x6B,0x95,0xA2,0x80,0xFD,0xBC,
+0x07,0xF5,0x6C,0x7A,0xE9,0xC0,0xCA,0xBD,0x2A,0x77,0x57,0xC3,0x16,0xF0,0x8D,0x78,
+0xC4,0x2C,0x76,0xB9,0xE2,0x26,0x27,0x5B,0x03,0x78,0x7E,0xE5,0xC4,0x68,0x15,0x32,
+0xE9,0x1A,0x6D,0x94,0x47,0x73,0xD7,0x0E,0x86,0xC5,0xFB,0xDD,0x55,0xD6,0xAB,0x1D,
+0xDF,0x3F,0x7E,0xA2,0x51,0x64,0xD6,0x19,0xF9,0x3D,0x84,0x5A,0x8B,0x9A,0xE7,0x8F,
+0x0B,0x5D,0x7B,0xAC,0x22,0x4E,0x04,0xB0,0xE6,0xEE,0xD4,0xC8,0xDB,0xA7,0xA0,0xFD,
+0x46,0xBC,0x9A,0x00,0x0F,0x78,0x29,0xAB,0x9A,0xC5,0x83,0xE3,0x2F,0x8F,0x7C,0x09,
+0x67,0xBD,0x9B,0x20,0xC3,0xE2,0xE5,0xFD,0xE1,0xDC,0xE1,0xFA,0xEA,0xF2,0xC4,0xCC,
+0x91,0x05,0x23,0x6E,0x96,0x12,0xB0,0x58,0x65,0x88,0x31,0xAE,0xA3,0x19,0x66,0x85,
+0x4A,0x68,0x4E,0xD8,0xC0,0xB3,0xE6,0xAF,0xB1,0xCC,0xA1,0xEA,0x73,0x01,0xAE,0x55,
+0x5A,0xA3,0x85,0x03,0xDF,0xB0,0xF9,0xB3,0x0E,0x5A,0x88,0x7C,0x6A,0x7A,0xCC,0x4C,
+0xC6,0x27,0x01,0x1B,0x74,0xEF,0x52,0x47,0xD5,0x37,0x3E,0x11,0x29,0xE8,0x1D,0x0F,
+0xB7,0x36,0x10,0x7B,0xE0,0xB7,0xC6,0x8B,0x60,0xA9,0x15,0x8F,0xEC,0x95,0xA5,0xCA,
+0x5F,0x82,0xA4,0x27,0x14,0x6B,0x32,0xA3,0x69,0x5C,0xE9,0x7A,0x43,0x75,0xEA,0x65,
+0x73,0xB9,0x9F,0x30,0x99,0x51,0xBF,0x14,0x7B,0x84,0x23,0xA2,0xBB,0x43,0x24,0x9D,
+0x1B,0x96,0xB0,0x77,0x1F,0x38,0x39,0xFB,0x44,0x89,0x11,0xAF,0xFE,0xB6,0x94,0xD8,
+0x28,0x4F,0x69,0x9D,0x11,0x5B,0x37,0x96,0xFC,0x2D,0x0D,0x0B,0xA7,0x0D,0x76,0x81,
+0x1F,0x59,0x7F,0xBC,0xE8,0xB5,0xCE,0x81,0x45,0x67,0xFE,0x41,0xE6,0xEC,0xD6,0xC0,
+0x9C,0x3F,0x19,0x59,0xB9,0x55,0x9F,0x30,0xBC,0xF6,0x96,0xD0,0x0D,0xD8,0x09,0x2B,
+0xEA,0x1C,0x3A,0x0C,0x9C,0x61,0xBA,0x21,0x6E,0x6E,0xDC,0x48,0x41,0x06,0x9B,0x67,
+0x54,0x64,0x42,0xCA,0x36,0x1E,0x10,0xF4,0x02,0x8E,0x50,0xA8,0x26,0xA4,0x5E,0x00,
+0x82,0x33,0x15,0x4B,0xD7,0xB2,0xF1,0xB9,0x7E,0xA5,0x07,0x83,0x91,0x1E,0x53,0xB7,
+0xA1,0x21,0x07,0x7A,0x56,0x9A,0x70,0x10,0xC8,0xC6,0xD2,0xE0,0x33,0xC1,0x2E,0x15,
+0x0A,0xB3,0x95,0x43,0xA8,0x35,0x8E,0x41,0x09,0x68,0xBD,0x4E,0x79,0x78,0xDD,0x5F,
+0x80,0x20,0x06,0x5A,0x6C,0xAD,0x4A,0x1D,0x5B,0x6B,0xEC,0x4D,0x53,0x25,0xAA,0x75,
+0x68,0x94,0xB2,0x06,0xC1,0x93,0xE7,0x8E,0xBB,0xC4,0xA3,0xE2,0x58,0x7D,0xF9,0x7E,
+0x97,0xD9,0xFF,0xB4,0xF8,0xF5,0xDE,0xD1,0x4E,0x81,0x13,0xA7,0x57,0x31,0xBA,0x71,
+0xE3,0xE9,0xCF,0xF0,0xCB,0xE0,0xED,0xF7,0x12,0x45,0x8B,0x63,0xD6,0x98,0x92,0xF0,
+0x2C,0x80,0xA6,0x56,0xE7,0xF6,0xC1,0xCD,0x2D,0x48,0xB9,0x6E,0x0B,0xBF,0x68,0x2D,
+0x62,0x9C,0xBA,0x04,0xCA,0xC0,0xEC,0xD6,0x3C,0x6D,0x8D,0x4B,0x8B,0x37,0x60,0xAD,
+0x92,0xF8,0xDE,0x90,0xCD,0x81,0xEB,0x90,0xFE,0x3E,0x1C,0x18,0x77,0x15,0xBE,0x51,
+0xED,0x2E,0x08,0x39,0xD0,0xF3,0xF6,0xFF,0x51,0x63,0xEE,0x45,0x92,0x4C,0x02,0xB4,
+0x4D,0x5A,0x7C,0xED,0xBC,0x65,0x9A,0x05,0xC7,0xEF,0xF4,0xC9,0x28,0xC9,0x3D,0x0E,
+0xA9,0x3A,0x1C,0x69,0xF3,0xA6,0xD5,0x89,0x83,0xFB,0xA4,0xDD,0x1E,0xDA,0x18,0x38,
+0x13,0x8D,0xAB,0x64,0x17,0x3A,0x31,0xF1,0x55,0xAC,0x25,0x8A,0x71,0x72,0xDF,0x57,
+0x94,0x24,0x02,0x4A,0x55,0xCB,0x73,0x42,0x18,0x4D,0x89,0x6B,0xC9,0x84,0x91,0xEF,
+0xCE,0x3C,0x1A,0x08,0x24,0x2F,0x02,0xD7,0xB5,0x03,0x6A,0x25,0x47,0x61,0xFA,0x61,
+0x2B,0xB2,0x94,0x63,0xAD,0x05,0x8B,0x74,0xF9,0x0C,0x29,0x2A,0x52,0x04,0x8A,0x74,
+0x33,0x62,0x44,0xAB,0x78,0xFD,0x5E,0x59,0xBE,0xE5,0x87,0xC3,0xC7,0xE9,0xF2,0xE1,
+0xDD,0x0A,0x2C,0x2D,0x3C,0x6D,0x1A,0x8D,0x34,0x76,0x9E,0x50,0xD5,0xCA,0xC3,0xF3,
+0xF3,0x22,0x04,0x2B,0x8F,0x70,0xA9,0x23,0x7C,0xB6,0x16,0x90,0xAE,0x26,0x54,0x88,
+0x32,0x8C,0xAA,0x44,0x87,0x72,0xA1,0x29,0x0F,0xB4,0x67,0x92,0x90,0x3F,0x73,0xB6,
+0xD2,0x23,0x05,0x0B,0x49,0x99,0x6F,0x0C,0x87,0x34,0x6F,0x12,0xB7,0x5D,0x36,0x91,
+0xA8,0xD4,0xF2,0x86,0xF0,0xF7,0xD6,0xDB,0x86,0xDA,0x80,0xFC,0x0A,0x9E,0x48,0x2C,
+0x4B,0x86,0xA0,0x37,0x32,0x0E,0x14,0xE0,0xEF,0x1B,0x28,0x3D,0xC2,0xDC,0xC2,0xE4,
+0x70,0x44,0x62,0xCE,0xB8,0x75,0x9E,0x11,0x6B,0x4F,0xF8,0x69,0xF5,0xEE,0xC7,0xD3,
+0x7F,0x6D,0x4B,0xE8,0x20,0x3F,0x06,0xC3,0x71,0x8C,0x21,0xAA,0x13,0xE5,0x2A,0x35,
+0xC2,0xE8,0xCE,0xD0,0x9E,0x10,0xB8,0x52,0x6A,0xA1,0x17,0x87,0x46,0x40,0xDA,0x60,
+0x3A,0x97,0xB1,0x57,0xD2,0x82,0xF4,0x8C,0x79,0x97,0x32,0xB1,0x51,0x56,0xDB,0x77,
+0xD4,0xFF,0xD9,0xD1,0xFA,0x84,0xDC,0xA2,0xEB,0xD4,0xE3,0xF2,0xB3,0x49,0x26,0x95,
+0xAA,0xC7,0xE1,0x97,0x5F,0xB8,0x79,0x3B,0x2A,0x7A,0x8C,0x5C,0x5D,0x48,0xC9,0x7B,
+0x24,0x9B,0xBD,0x45,0xF7,0xB6,0xD1,0x9D,0x17,0x64,0xAF,0x42,0x86,0x08,0x52,0xA0,
+0x1A,0x78,0x5E,0x98,0xC8,0xB1,0xEE,0xA5,0xAE,0x2E,0x5C,0x08,0x3B,0xCB,0x2C,0x1D,
+0xF5,0xFE,0xD8,0xF1,0x2A,0x4C,0x0C,0xBA,0xE4,0xFD,0xC5,0xDB,0x30,0x93,0x7F,0x16,
+0x3E,0x58,0x7E,0x9C,0x54,0xEB,0x72,0x63,0x00,0x9D,0x41,0xBB,0xAF,0x07,0x74,0x89,
+0xFA,0xD7,0xF1,0xD7,0xEB,0xE4,0xCD,0xD3,0x64,0x66,0xDE,0x40,0x35,0xA6,0x4F,0x13,
+0x6D,0xB5,0x93,0x22,0x98,0x71,0xBE,0x35,0xF6,0x25,0x0F,0x03,0x50,0x77,0xFB,0x76,
+0x2E,0x93,0xB5,0x47,0x5B,0xA8,0x7D,0x2F,0x88,0x1D,0x49,0x3B,0x27,0x85,0x7E,0x01,
+0xD0,0x30,0x16,0x1A,0xD3,0xA2,0xF5,0xAD,0x9F,0xE4,0xA7,0xC2,0x7D,0x6C,0xCD,0x5B,
+0xE7,0x26,0x00,0x3B,0xD1,0xD3,0xF7,0xDE,0x20,0x72,0x8E,0x54,0xE3,0xD9,0xE6,0xC5,
+0x1C,0xA4,0x82,0x42,0x2B,0x6C,0x0D,0x9B,0x39,0x4C,0xA9,0x6A,0x8D,0x50,0x01,0xAB,
+0x5E,0x6C,0x4A,0xC8,0xA2,0x46,0x84,0x38,0xCF,0xF4,0xE7,0xD2,0x0E,0x8A,0x58,0x28,
+0xCC,0x2F,0x09,0x19,0x38,0x7D,0x1E,0x99,0xBD,0x18,0x79,0x3E,0xFC,0xC5,0xE5,0xDA,
+0x6F,0xA6,0x80,0x33,0xE9,0x95,0xCF,0xA0,0xB2,0x31,0x5F,0x17,0x83,0x3D,0x62,0xA5,
+0xB4,0xCB,0xED,0x85,0x12,0x0A,0x34,0xC4,0x22,0x61,0x9F,0x47,0x75,0x66,0xCF,0x53,
+0x57,0x99,0xBF,0x34,0xBE,0x14,0x98,0x76,0xB8,0x39,0x5D,0x1F,0x8A,0x16,0x40,0xAC,
+0x27,0x66,0x40,0xBB,0xF9,0xD5,0xDF,0xF0,0xF8,0xE2,0xC6,0xC4,0x6F,0x4F,0xFC,0x49,
+0xC0,0xFB,0xDD,0xC1,0x65,0x8F,0x43,0x36,0xDF,0x3F,0x3C,0x19,0x60,0x03,0xBF,0x46,
+0x53,0x56,0x70,0xFF,0x59,0xD9,0x7F,0x5C,0xE2,0x21,0x1F,0x07,0x3D,0xAC,0x4D,0x1B,
+0xB3,0xB8,0xF1,0x62,0x34,0xA7,0xC5,0x0B,0xDC,0x5F,0xCC,0x79,0xC6,0xB6,0x55,0x8A,
+0xB9,0x3A,0x79,0xEA,0x97,0x04,0x3B,0x56,0x6F,0x05,0x96,0x90,0x3F,0x58,0xAC,0x9D,
+0x7D,0x8E,0x09,0x9A,0xA0,0x33,0x09,0x53,0x10,0xAF,0x3C,0x45,0x6E,0xB8,0xFD,0x2C,
+0xC2,0xCB,0xF3,0x60,0x22,0xB1,0xF2,0x2A,0xF7,0xC1,0x52,0xCC,0x50,0x9F,0xC3,0x35,
+0xFA,0x76,0x76,0xE5,0x5C,0xCF,0x2B,0x8D,0x65,0x8D,0x1E,0x12,0xBF,0x50,0x2C,0x15,
+0x5D,0xAF,0x08,0x9B,0xFA,0x69,0xE0,0xE0,0x6E,0x12,0x81,0x86,0xDF,0xD4,0x4C,0xF1,
+0x60,0x20,0xBA,0x29,0xB1,0x22,0x78,0x33,0xEA,0x72,0xE1,0x62,0x07,0x1E,0x94,0xE3,
+0xF5,0xC6,0xC9,0x5A,0xD3,0x40,0xEF,0xC6,0x5E,0x17,0x84,0xB3,0x44,0xCF,0xD7,0x71,
+0xC4,0xE5,0xDB,0x48,0x62,0xF1,0x32,0xAA,0xED,0x4D,0xDE,0x5A,0xC0,0xD7,0x53,0xED,
+0x05,0x63,0x9C,0x0F,0x9D,0x0E,0x42,0x25,0x51,0xA8,0x3B,0x03,0x1B,0x4C,0x88,0xAD,
+0xC8,0x49,0x7B,0xE8,0x52,0xC1,0x46,0xEE,0x5C,0x1F,0x8C,0xB9,0x03,0x0E,0x90,0xF7,
+0x9E,0x23,0x47,0xD4,0xFF,0x6C,0xD5,0xD0,0xAE,0x42,0xD1,0x16,0x1D,0x2D,0x8E,0xCA,
+0x6C,0x8C,0x1A,0x89,0x2B,0xB8,0xD9,0x08,0xF4,0xDE,0x4D,0xD0,0x3A,0x68,0xA9,0xA8,
+0x57,0x2D,0x80,0x13,0x68,0xFB,0x4B,0xD9,0x49,0x2C,0xBF,0x9F,0xD6,0xF6,0x45,0xDA,
+0x1B,0xD1,0x30,0xA3,0xCF,0x5C,0xA1,0x94,0xDE,0x57,0xC4,0x73,0x43,0x8E,0xD0,0x37,
+0x84,0xB5,0xCB,0x58,0xA2,0x31,0x7A,0x22,0x73,0xA1,0x32,0x28,0x13,0x4E,0x80,0xA7,
+0x88,0x19,0x6B,0xF8,0x27,0xB4,0xC7,0x1A,0x27,0x95,0x06,0x48,0x16,0x7E,0x85,0x92,
+0x63,0x3C,0xA5,0x36,0x88,0x1B,0x27,0x55,0x62,0xB2,0x21,0x2A,0x96,0x76,0x05,0x1A,
+0x1F,0xF5,0x10,0x83,0x82,0x11,0x5E,0x26,0xD3,0xE0,0x73,0xC9,0x39,0x39,0xAA,0xFA,
+0xE6,0xCE,0xD2,0x41,0xD0,0x43,0xBD,0x97,0x59,0x28,0xBB,0x8B,0xF8,0x91,0x6B,0x93,
+0xEC,0x4C,0x5A,0xC9,0x66,0xF5,0x26,0xBA,0xE3,0xE5,0x76,0xFC,0xC7,0x96,0x54,0xAB,
+0x14,0x61,0x8F,0x1C,0xB6,0x25,0x3E,0x72,0x9B,0x70,0xE3,0x11,0x2E,0x38,0xBD,0xEC,
+0x61,0x36,0xAD,0x3E,0x26,0xB5,0xE6,0x3A,0x45,0x8C,0x1F,0x33,0x94,0x07,0x07,0x69,
+0x7C,0x98,0x1E,0x8D,0x0E,0x9D,0xC8,0x3C,0xD2,0xF7,0x64,0xDF,0x54,0x8F,0xC7,0x21,
+0xA9,0x2E,0x7D,0xEE,0xC3,0x50,0xBF,0x86,0xD8,0x7F,0xEC,0x5D,0x58,0x9D,0xCB,0x3F,
+0x95,0xB7,0xD8,0x4B,0xFB,0x68,0xC1,0xC0,0x37,0x91,0x02,0x5C,0xF6,0xF2,0x65,0xFE,
+0xA0,0xB0,0xEA,0x79,0x7C,0xEF,0x0F,0x89,0x3D,0x19,0x8A,0xDE,0x0C,0x4D,0x9F,0xBB,
+0xA7,0x88,0xD5,0x46,0x9F,0x0C,0x31,0x54,0x43,0xA4,0x37,0x1D,0x46,0xBE,0xD5,0x02,
+0x2E,0xD6,0x02,0x91,0x69,0xFA,0x6A,0xF9,0x3B,0x31,0xA2,0xF0,0xAE,0x30,0x3D,0x64,
+0x64,0x04,0x9A,0x09,0x40,0xD3,0x65,0xDF,0xD6,0xD7,0x44,0xFB,0x6D,0xE9,0xFE,0x7E,
+0x93,0x99,0xF0,0x63,0x93,0x00,0x2F,0x46,0xCA,0x73,0xE0,0x43,0xB5,0x23,0x26,0x6C,
+0x01,0x47,0xBC,0x2F,0xEC,0x7F,0xD7,0xC1,0xCB,0x64,0xF7,0x55,0x83,0x06,0x10,0x7F,
+0xE4,0xC4,0xDA,0x49,0xDD,0x4E,0x82,0xA5,0xAB,0x75,0xE6,0x24,0xA3,0x02,0x30,0x5B,
+0x82,0x9B,0xE3,0x70,0x90,0x03,0x7D,0x17,0xE8,0x7A,0xE9,0x68,0xE6,0xB2,0x75,0xAE,
+0xE7,0xD8,0xC5,0x56,0x84,0x17,0x39,0x47,0x79,0x29,0xBA,0xAA,0x6A,0xA8,0xF9,0x38,
+0xF1,0xE2,0xE9,0x7A,0xED,0x7E,0xF6,0xE1,0x83,0xF4,0x67,0x8D,0x67,0x9A,0xF4,0x07,
+0x8B,0x05,0x74,0xE7,0x25,0xB6,0xB4,0x6B,0x3F,0x11,0x82,0xD4,0xE4,0xC3,0x77,0xDD,
+0xA3,0xAC,0xF5,0x66,0x37,0xA4,0x97,0x5A,0x42,0xB3,0x20,0x0B,0x87,0x16,0x14,0x6B,
+0xBC,0x08,0x4E,0xDD,0x24,0xB7,0x95,0x4B,0xBB,0x71,0xE2,0x30,0x49,0xFD,0xDA,0x4E,
+0x24,0x54,0x8A,0x19,0xB7,0x24,0x1F,0x52,0xCC,0x5B,0xC8,0x6D,0x4A,0xAC,0xD9,0x1C,
+0x2B,0xE4,0x35,0xA6,0x89,0x1A,0x06,0x75,0xCE,0x53,0xC0,0x67,0x8E,0x34,0x1D,0x40,
+0xB7,0x9C,0xD1,0x42,0x3E,0xAD,0xBC,0x78,0x09,0x3C,0xAF,0xCF,0xD9,0xB5,0x4A,0x96,
+0x3E,0xC2,0x06,0x95,0x38,0xAB,0xDB,0x19,0xEB,0x65,0xF6,0x74,0x21,0x7B,0xB2,0xA0,
+0xDA,0x57,0x77,0xE4,0x20,0xB3,0x81,0x5B,0x80,0xEB,0x78,0x91,0x6F,0x98,0xFC,0x0D,
+0x90,0x85,0xEF,0x7C,0xFC,0x6F,0x87,0x81,0xAF,0x55,0xC6,0x00,0x1C,0x0D,0x8F,0xEB,
+0xD1,0xC3,0xE8,0x7B,0x98,0x0B,0x77,0x15,0x71,0xA9,0x3A,0x22,0x4F,0x9C,0xDC,0x29,
+0x74,0x10,0x9E,0x0D,0x5E,0xCD,0x58,0xFC,0x2C,0x0A,0x99,0xDC,0xCD,0xE5,0x5E,0xD2,
+0xE2,0xEA,0xF2,0x61,0x2A,0xB9,0xF8,0x28,0x13,0xB0,0x23,0x59,0x41,0xFF,0xD2,0x44,
+0xA1,0xA6,0xFD,0x6E,0xA7,0x34,0x4F,0x12,0xDD,0x48,0xDB,0x6F,0x78,0x99,0xEB,0x1B,
+0xA2,0xBA,0xE2,0x71,0x6C,0xFF,0x5F,0xC9,0xBF,0x51,0xC2,0x14,0xEE,0xB0,0x7D,0xA4,
+0xA6,0x9E,0xC2,0x51,0x32,0xA1,0xA2,0x6A,0xB4,0xCE,0x5D,0x80,0x8B,0x04,0x18,0x75,
+0xFE,0x52,0x56,0xC5,0x23,0xB0,0xD3,0x0A,0x0C,0x0B,0x98,0xFD,0x15,0x2F,0x86,0xC0,
+0x69,0xBE,0x2D,0xBE,0xB8,0x2B,0x53,0x11,0x6D,0x0D,0x9E,0x9A,0xE7,0x92,0x74,0x8F,
+0x5F,0xA5,0x00,0x93,0x59,0xCA,0x1E,0xBD,0xB1,0xF9,0x6A,0xB2,0xCC,0xC5,0x5F,0xF3,
+0x03,0x4D,0xB4,0x27,0x01,0x92,0x84,0x7F,0x77,0x81,0x12,0x0C,0xAA,0x20,0x39,0x70,
+0xF3,0xE8,0xE1,0x72,0xB9,0x2A,0x72,0x31,0xD5,0xC8,0x5B,0xE7,0xFE,0xF0,0x6D,0xF4,
+0x44,0x25,0x9B,0x08,0x3B,0xA8,0x89,0x48,0x18,0x2F,0xBC,0xCD,0xD4,0x87,0x47,0xA9,
+0xA4,0x94,0xCA,0x59,0x5D,0xCE,0x0A,0xAD,0xC7,0xC4,0x57,0xF9,0x45,0xEF,0xD6,0x50,
+0x0F,0xE1,0x14,0x87,0x60,0xF3,0x41,0xDB,0x4F,0x04,0x97,0xB1,0xAC,0x41,0x3F,0x17,
+0x70,0x34,0xBE,0x2D,0x18,0x8B,0xFF,0x1D,0x8A,0x63,0xF0,0x13,0x4C,0xCD,0xDF,0x7B,
+0x40,0x01,0xBB,0x28,0xBD,0x2E,0x66,0x21,0x35,0x99,0x0A,0x56,0xA6,0x32,0x35,0x6E,
+0x7A,0xB6,0x36,0xA5,0x86,0x15,0x4A,0x36,0xFB,0x61,0xF2,0x60,0x7E,0xF8,0xED,0x7C,
+0x4A,0x83,0x33,0xA0,0x4B,0xD8,0x3D,0x8C,0x67,0x85,0x16,0x18,0x0F,0x1C,0x9C,0xE9,
+0x29,0xEE,0x3D,0xAE,0x92,0x01,0x0E,0x66,0x85,0xDC,0x4F,0xA3,0xAB,0x00,0x38,0x51,
+0xD0,0x23,0x7C,0x24,0xFD,0xF2,0x74,0x87,0x4C,0x26,0xE2,0xBF,0x3E,0xC8,0x7E,0x3B,
+0xA1,0x52,0x98,0xB1,0xBF,0xA8,0x6C,0x9F,0xC2,0x4D,0x07,0x31,0xDD,0x86,0xD3,0x75,
+0x76,0x85,0x11,0xEF,0xDE,0xCF,0x6A,0x99,0x9B,0xAF,0xBC,0x68,0x13,0x7E,0xE5,0x8D,
+0x92,0x61,0x8D,0x97,0xD3,0x75,0xDD,0x2E,0xF4,0x68,0x14,0x07,0x92,0x29,0x33,0xDA,
+0x55,0xA6,0x44,0x99,0x8E,0x8B,0x7E,0x8D,0x17,0xB5,0x2A,0xE4,0x59,0xE6,0x37,0x15,
+0x39,0xCA,0xD2,0x63,0x5A,0x2B,0x0A,0xF9,0xAD,0x8A,0xAF,0x5E,0x43,0x6A,0xA1,0x99,
+0x4F,0xBC,0x77,0xB0,0xB3,0x04,0xCC,0x3F,0x0E,0xD7,0x51,0xFD,0x3A,0xE8,0x5A,0x1B,
+0x48,0xBB,0x36,0xF6,0x27,0xF4,0xA8,0x5B,0xF2,0x09,0x73,0x01,0xAB,0xBB,0x98,0x48,
+0x4E,0xBD,0x57,0x91,0x47,0x85,0xB9,0x4A,0x53,0x25,0xFE,0xA0,0x3C,0xC0,0x74,0x33,
+0x62,0x91,0x41,0xAB,0xE1,0x4A,0xD0,0x23,0x8E,0xDF,0xD9,0x7D,0x0E,0xCD,0x4B,0x3E,
+0x44,0xB7,0x24,0xE8,0xB1,0x0E,0xC4,0x37,0xDD,0x4E,0x1B,0x2E,0x14,0x41,0xDD,0xB2,
+0x7D,0x8E,0x42,0xB7,0x03,0xF1,0x89,0x7A,0xD2,0x0D,0x57,0x21,0xA4,0x04,0x28,0xF7,
+0x2D,0xDE,0x82,0x27,0xF4,0x6C,0xE3,0x10,0xFC,0x6A,0x1E,0x0F,0x0A,0xED,0x6F,0x1E,
+0xE9,0x1A,0x1A,0x7B,0xED,0xE6,0x70,0x83,0xD6,0x1D,0x43,0x25,0x5B,0xEE,0x3D,0x1D,
+0x52,0xA1,0x05,0xDF,0xFC,0xE4,0x63,0x90,0x14,0xE4,0x78,0xE7,0xB0,0x20,0x18,0xD3,
+0xD3,0x20,0x2D,0x76,0xCD,0xC7,0x71,0x82,0xB6,0x99,0xA7,0x45,0x65,0x43,0xAE,0xB0,
+0x19,0xEA,0xD6,0x47,0xBB,0x8C,0x4C,0xBF,0xC4,0x2C,0x60,0x37,0x6B,0xEB,0x08,0x18,
+0xB3,0x40,0xA9,0x92,0x7D,0x32,0x34,0xC7,0xA3,0xE9,0xC2,0x50,0xE7,0x0B,0x64,0xF8,
+0x6D,0x9E,0x02,0xE7,0x0B,0x79,0x09,0xFA,0x63,0x61,0x8A,0x90,0x49,0xE2,0x23,0x11,
+0x3C,0xCF,0xE2,0x56,0xEE,0xFA,0x6F,0x9C,0x88,0xBE,0xBE,0x7B,0x21,0x73,0xDA,0x80,
+0x9A,0x69,0x8F,0x9D,0xC0,0x7D,0xC6,0x35,0x7B,0x23,0xD0,0x88,0xA6,0x0C,0x22,0xFF,
+0x94,0x67,0xEC,0xF0,0x2A,0x4E,0x1F,0xEC,0x22,0xC1,0x6B,0xD1,0xBA,0xA8,0x9A,0x5B,
+0x91,0x62,0xDC,0xC5,0x90,0x39,0xD2,0x21,0xC6,0x5D,0x13,0x35,0x5E,0xD9,0x0F,0x2A,
+0x1C,0xEF,0xE6,0x72,0x87,0x15,0xE9,0x1A,0x3E,0x93,0x25,0xCD,0x94,0x01,0x1D,0xF2,
+0xF1,0x02,0x58,0x21,0xAC,0xA0,0x77,0x84,0xAC,0xAA,0x8E,0x5F,0x89,0xB2,0xB3,0x41,
+0x65,0x96,0x00,0xED,0xCC,0xD1,0x66,0x95,0x69,0x12,0xF3,0x9A,0xA2,0x2C,0x06,0xDF,
+0x45,0xB6,0x04,0xC9,0x6F,0x2C,0x38,0xCB,0xF6,0x19,0x67,0x05,0x16,0x49,0xD7,0xBA,
+0x5A,0xA9,0x07,0xD5,0xB4,0x3C,0xF3,0x00,0xEF,0x7B,0x1C,0x1C,0x3F,0xDF,0x68,0x2C,
+0x46,0xB5,0x55,0x9B,0x97,0x01,0xED,0x1E,0x6F,0x73,0x94,0x9C,0x56,0x59,0x87,0xAA,
+0x13,0xE0,0xA5,0x3E,0xD9,0xF7,0x55,0xA6,0x26,0xD1,0x7F,0xD5,0x86,0x0D,0x03,0xFE,
+0xA7,0x54,0xF9,0xD6,0x1B,0x6D,0x0D,0xFE,0x5E,0x17,0xC1,0xAD,0x63,0x6B,0x80,0x98,
+0x8A,0x79,0xCF,0xCD,0xB7,0x20,0xEC,0x1F,0xAA,0xCB,0xE9,0x59,0x34,0x40,0xFC,0xB3,
+0xE0,0x13,0x38,0x50,0x76,0xA6,0xAB,0x58,0xE5,0x08,0x65,0x16,0x8B,0xBA,0xB9,0x49,
+0xDC,0x2F,0x6E,0x3A,0x48,0x35,0x06,0xF5,0xB8,0xFA,0xCA,0x4B,0xA8,0xA4,0x84,0x57,
+0x3B,0xC8,0xA3,0x10,0x83,0x31,0xC9,0x3A,0x0F,0xF7,0x70,0xFC,0xEA,0xBC,0xDE,0x4F,
+0x7C,0x8F,0x62,0x96,0x0C,0x41,0x36,0xC5,0xEA,0x4B,0x29,0x19,0x71,0x67,0x9E,0x94,
+0x6C,0x9F,0x22,0xC6,0x84,0x09,0xF6,0x05,0x06,0xD5,0x5B,0xF5,0xE8,0xB4,0xD4,0x47,
+0x97,0x64,0xBD,0xA2,0x32,0xD2,0x9B,0x68,0xF0,0x78,0x00,0x03,0x28,0xE4,0x44,0x17,
+0x27,0xD4,0xF1,0x5E,0x7F,0x38,0x3C,0xCF,0x8B,0xEF,0xEC,0x78,0x50,0x71,0xA9,0x82,
+0xBD,0x4E,0xCA,0xFF,0xAE,0xAA,0x7F,0x8C,0x79,0x52,0xA3,0x8A,0xCE,0x9D,0xDB,0x6E,
+0x54,0xA7,0x64,0xB8,0x8C,0x81,0x76,0x85,0x66,0x51,0xBF,0x95,0x39,0xF7,0x46,0x04,
+0xAE,0x5D,0xDB,0xFD,0xF5,0x7A,0xF4,0x07,0x08,0xB6,0x36,0xFB,0x1E,0xC9,0x5F,0x3A,
+0xDE,0x2D,0x1F,0x49,0xF0,0x48,0xC3,0x30,0xA2,0xC9,0xE3,0x51,0xFE,0x98,0xEE,0x6B,
+0x56,0xA5,0x15,0xCB,0xAD,0xB6,0x60,0x93,0xF8,0x7A,0x0A,0x0B,0x10,0x61,0xF9,0x92,
+0x6E,0x9D,0x53,0xB5,0x60,0x9C,0x87,0x74,0xB0,0xF8,0xC0,0x43,0x69,0xE3,0x02,0x10,
+0x1D,0xEE,0xC6,0x53,0x95,0x0B,0xE5,0x16,0xD5,0x4C,0x11,0x26,0xB8,0xA0,0x90,0x53,
+0xAF,0x5C,0xFB,0xDC,0x46,0x93,0xAE,0x5D,0xB5,0xC8,0xF5,0x46,0x72,0x78,0x82,0x8B,
+0xD1,0x22,0x5C,0x05,0x2B,0x58,0x08,0xFB,0x2A,0xC3,0x61,0xD9,0xF6,0x18,0x66,0xEB,
+0x72,0x81,0x01,0xFB,0xF2,0x42,0xCB,0x38,0x03,0xE5,0x6E,0xF0,0x18,0xE1,0x71,0x12,
+0x4D,0xBE,0x06,0xC3,0x2F,0x7C,0x28,0xDB,0xBE,0x9B,0xAD,0x4D,0xEB,0xAB,0xC8,0x58,
+0x7F,0x8C,0x33,0xC4,0x66,0xB2,0xAF,0x5C,0x36,0x91,0x2F,0xC5,0x54,0x51,0x8D,0xA2,
+0xDA,0x29,0x0F,0x5D,0x20,0xCC,0x97,0x64,0xD8,0x7E,0x2E,0x2B,0x3B,0xFF,0x4C,0x0C,
+0x1B,0xE8,0xA7,0x34,0x67,0xA4,0xB8,0x4B,0xC3,0x6D,0x26,0x30,0xA0,0x24,0x0C,0xD7,
+0x57,0xA4,0x35,0xEA,0xE0,0x5C,0xC7,0x34,0xD4,0x6C,0x30,0x27,0x85,0x12,0x1F,0xE1,
+0x3D,0xCE,0xC2,0x77,0x79,0x16,0x14,0xE7,0x70,0x70,0x88,0x83,0x4F,0xCA,0x0D,0x39,
+0xA5,0x56,0x88,0xA5,0x5F,0x19,0x3D,0xCE,0x96,0x9D,0x83,0x65,0x96,0x09,0x17,0xFA,
+0x75,0x86,0x40,0xBD,0x31,0xCE,0x84,0x77,0x8F,0xFF,0xF8,0x7C,0x37,0x5F,0xE0,0xAC,
+0xB7,0x44,0xB9,0x86,0x80,0x2D,0xD6,0x25,0x47,0x75,0xBA,0xB4,0x9F,0x9E,0x89,0x6D,
+0x02,0xF1,0xC5,0x4F,0xF3,0x54,0xDC,0x2F,0x15,0xC4,0x59,0xE6,0xD0,0x31,0x69,0xC2,
+0xCC,0x3F,0x2E,0x6A,0xBC,0xB4,0x73,0x80,0x32,0x81,0x3B,0xC1,0xD8,0xB1,0xE1,0x42,
+0xB9,0x4A,0xDA,0xEB,0x9A,0xBB,0x5A,0xA9,0x50,0x74,0xAC,0xA3,0x29,0xF3,0x52,0x00,
+0x0A,0xF9,0xC7,0x45,0x9C,0x95,0x72,0x81,0x2B,0xE3,0x40,0xD8,0xA1,0x33,0x1A,0xC0,
+0x28,0xDB,0xB2,0x12,0xD4,0x4D,0xE2,0x11,0xD7,0x3D,0x62,0x24,0x9E,0x89,0x9F,0x7A,
+0xFD,0x0E,0x4A,0x3F,0x1C,0x55,0x32,0xC1,0x42,0x45,0x8F,0xB1,0x30,0x60,0xD8,0x93,
+0xD8,0xCB,0x46,0x31,0x6F,0x2B,0xF8,0xC2,0x06,0x33,0xEF,0x60,0xF1,0x55,0xBC,0xF1,
+0xAB,0x5E,0xA0,0x42,0xF8,0x49,0x0D,0xA0,0x63,0xE2,0x8A,0xD4,0x63,0x16,0xFF,0x20,
+0x19,0x63,0x2F,0xF0,0x60,0x02,0xDE,0xEB,0x03,0x06,0xEA,0x50,0x71,0xCE,0x27,0xEA,
+0x67,0xC4,0xF6,0x8E,0xAB,0xA4,0xB3,0x4D,0x9C,0x92,0x75,0x5B,0x95,0xAE,0x47,0x6E,
+0xE2,0xFC,0x4B,0x0B,0x72,0xDA,0x14,0x33,0xD0,0x4C,0x39,0xC9,0xB5,0x41,0xA8,0xA1,
+0x18,0x43,0x0E,0xF1,0x89,0x58,0x6D,0xB1,0xBE,0xC5,0x57,0x2E,0xAC,0x7F,0x96,0x86,
+0x68,0x87,0xBA,0x81,0xBB,0x6F,0x68,0x86,0x14,0x10,0xFD,0x51,0x1D,0x2E,0xC7,0x66,
+0xE0,0x8D,0x38,0x09,0x45,0xCC,0x35,0x25,0x4E,0xF9,0xA7,0xE2,0x0A,0xD7,0x3E,0x88,
+0xDA,0xBA,0x35,0x33,0xFA,0x5A,0x1C,0xB3,0xB0,0xA8,0x59,0x4D,0x27,0x02,0xEB,0x70,
+0x21,0x25,0x51,0xC8,0x21,0x37,0xAA,0xDE,0x46,0xF3,0xAF,0xE0,0xB7,0x52,0xBB,0xB0,
+0x91,0x69,0xAD,0x78,0xCB,0x90,0xE7,0x79,0x3D,0x1F,0xD4,0x77,0x5A,0xC7,0x2E,0xC8,
+0x0B,0x52,0x0C,0xE2,0x59,0xD3,0x36,0x3A,0xCF,0x50,0x26,0xCA,0x28,0x2B,0xC2,0x56,
+0x56,0xA0,0xA3,0xBF,0x55,0x07,0xEE,0xEE,0x53,0x96,0xBA,0x90,0x4A,0x0C,0xE5,0x13,
+0x6A,0xF6,0xC9,0x83,0xC6,0xAA,0xD0,0x43,0x0E,0x39,0xE7,0x62,0x77,0x12,0xFB,0x30,
+0x8D,0x3B,0xE3,0x64,0xC2,0x65,0x1B,0x8C,0xB9,0x83,0x50,0x6F,0x2D,0x0A,0xE3,0x72,
+0xCA,0xFA,0x65,0x23,0xB2,0x9A,0x94,0x73,0x5C,0xDA,0xB5,0xD3,0x6D,0xD1,0x38,0xE9,
+0x0F,0x42,0x18,0xE6,0x48,0xF6,0x02,0x1F,0xE6,0x5F,0x0F,0xEC,0xA1,0x45,0xAC,0xB1,
+0xBC,0x5F,0xB6,0x55,0x66,0xDE,0x04,0x37,0x9D,0xB3,0x74,0x7B,0xE9,0x85,0x6C,0x39,
+0x9E,0x2A,0xE1,0x77,0xBE,0x4E,0x4C,0xA7,0x61,0x91,0x88,0xA5,0x6C,0x3F,0xD6,0x06,
+0x4B,0xD2,0xCC,0xA2,0xA6,0x9E,0x84,0x77,0xF4,0x7C,0x1D,0xDD,0x2B,0xD6,0x3F,0xA8,
+0xC3,0xD8,0x4E,0x2A,0x3D,0x28,0xA9,0xC1,0x39,0x0B,0xD0,0x67,0x13,0xE9,0x00,0xAF,
+0x01,0x21,0x75,0xE8,0xDE,0x7A,0x18,0x93,0xF1,0x49,0x18,0xED,0x7A,0x28,0xC1,0x07,
+0xB4,0x5D,0xBC,0x5D,0xA7,0x70,0x6B,0x99,0xA3,0xAA,0x4A,0x5C,0x9A,0x87,0x6E,0x48,
+0x7A,0xB6,0x99,0x93,0x47,0xDF,0x24,0x36,0x84,0xC8,0x6D,0x19,0x12,0x07,0xEE,0x40,
+0xAD,0x3F,0xC7,0x44,0x57,0x14,0xFF,0xFD,0x75,0xD5,0x9C,0xF5,0xFF,0x92,0x7B,0x38,
+0xE1,0xAD,0x19,0x08,0xAF,0x6B,0x78,0x82,0x62,0xC3,0x8B,0xF4,0xEC,0xA4,0x4D,0x1D,
+0x8B,0x5A,0x84,0x62,0xE5,0xB8,0xE1,0x51,0xC6,0x7B,0x2F,0xE8,0xFE,0x7C,0x95,0xD7,
+0x13,0x10,0x56,0xFA,0xEA,0x91,0xC7,0x78,0x20,0x70,0xC9,0x05,0xE4,0xBF,0x56,0x0E,
+0xC4,0x99,0x08,0x2D,0xB1,0x67,0x6A,0x8E,0xB5,0x9D,0x5C,0x7D,0x82,0x57,0xBE,0x80,
+0xFB,0x9E,0x30,0x12,0x8F,0x84,0xB7,0x6D,0x08,0x5E,0xE1,0x03,0x3B,0x1D,0xF4,0x73,
+0xC9,0xAB,0x37,0x20,0x41,0x03,0xFE,0xEA,0x80,0xDC,0x69,0x09,0x7E,0xE7,0x0E,0xCC,
+0x6C,0x97,0xAE,0x85,0x3F,0x3B,0xB8,0xD2,0x6E,0xDD,0x87,0xE6,0xBF,0x49,0xA0,0xA3,
+0x9B,0x1A,0xD4,0x72,0x9F,0x4F,0x6C,0xA6,0x4A,0xED,0xA3,0xF2,0x9C,0x5B,0xB2,0x92,
+0x5F,0x82,0x88,0xB6,0x15,0xDC,0x75,0x35,0x60,0xB0,0x89,0x85,0xCE,0x58,0xB1,0xC3,
+0xE4,0x9D,0x2C,0x0D,0x17,0xCF,0x64,0x26,0xA2,0x8B,0x4B,0x7C,0xEB,0x96,0x7F,0x28,
+0x65,0xB5,0x85,0x8C,0x34,0xDD,0x55,0x34,0x00,0x54,0xE9,0x01,0x5D,0xF5,0x1C,0xFD,
+0xF8,0xCF,0x62,0x11,0x76,0x15,0xDF,0xFC,0xE5,0x0D,0x0C,0xBD,0x87,0x76,0x9F,0xA4,
+0xD4,0xD9,0x58,0x3D,0xB9,0x7C,0x79,0x95,0x38,0x2A,0xD1,0x47,0xB8,0x7B,0x92,0x96,
+0xF2,0xBC,0x1B,0x1B,0xFD,0x68,0x29,0x81,0x6B,0xE8,0x82,0xD6,0x2E,0xF7,0x1E,0x8C,
+0xCB,0xDA,0x44,0x22,0x02,0x25,0x9B,0xCC,0x64,0xA4,0x8D,0x95,0xDB,0xB2,0x5B,0x3C,
+0xE3,0xDC,0x6A,0x0A,0x78,0xD2,0x16,0x3B,0xA1,0xD9,0x48,0x2D,0xC4,0x50,0xB9,0xC1,
+0x8F,0x4A,0x90,0x66,0xD8,0xA6,0xC2,0x4F,0x1B,0x5C,0xF2,0x12,0x52,0xDC,0x35,0xDB,
+0xF9,0xEF,0x43,0x10,0xF7,0x60,0x2B,0x89,0xB8,0xA2,0x51,0x4F,0xA9,0x5E,0xB7,0xA2,
+0xFE,0xAE,0x05,0x17,0x07,0x04,0xBF,0xED,0x44,0x80,0xAD,0x91,0x6B,0x0D,0xE4,0x33,
+0x66,0xE4,0xD7,0x8F,0x01,0xD8,0x65,0x31,0xFA,0x11,0x13,0xBE,0x8D,0x7E,0x97,0xA6,
+0x17,0x00,0x42,0xFE,0x5B,0xC0,0x27,0x29,0x74,0xF4,0x9D,0xD5,0x20,0x30,0xD9,0x45,
+0xC0,0x89,0x1C,0x29,0x3C,0xC6,0x46,0x2F,0x2D,0x4F,0xC4,0x37,0x16,0xC8,0x21,0x8B,
+0x24,0x15,0x64,0xCD,0x86,0x71,0x4B,0x98,0x42,0xE7,0xAB,0xF0,0xC0,0x9F,0x76,0x0A,
+0xF0,0xCD,0x68,0x19,0xF2,0x41,0x0F,0xA8,0xD9,0x67,0x30,0xEB,0x74,0xEF,0x06,0xCE,
+0xA5,0x3D,0xCD,0x4C,0x04,0xF9,0x41,0x10,0x90,0x8C,0x79,0x49,0xF0,0xBB,0x52,0x1E,
+0x11,0x61,0x25,0xF8,0x9E,0xA1,0x83,0x48,0xE8,0x32,0x01,0x8F,0x73,0xDD,0x34,0xFB,
+0x3C,0x57,0x3E,0xD5,0xD3,0x40,0x2F,0xA9,0x1C,0x1A,0xF5,0x53,0x0F,0xF6,0x1F,0xAC,
+0x47,0xC0,0xD2,0xAE,0x53,0xDB,0x34,0x32,0x1A,0x7D,0xF3,0x32,0x40,0x04,0xED,0x11,
+0xD3,0x98,0x1E,0x3A,0x22,0xCA,0x54,0x23,0xDF,0x00,0x36,0x8A,0xF5,0x9A,0x73,0x3A,
+0xF3,0x9C,0x3A,0x1A,0xDF,0x94,0xF7,0x7D,0x40,0x94,0xA9,0x81,0x24,0xFF,0x16,0x8E,
+0xEC,0x9F,0x26,0x05,0xCF,0x5F,0x2C,0xB6,0x59,0xEF,0xB0,0xE3,0x9B,0x69,0x80,0xA7,
+0x2C,0x17,0x6E,0xC5,0x8E,0x6A,0x58,0x83,0xCD,0x23,0x24,0xBB,0xD1,0xBA,0x53,0x3E,
+0x22,0x74,0x03,0xCB,0xBD,0xB3,0xB2,0x5A,0x94,0x98,0x7D,0x59,0x69,0x1E,0xF7,0x22,
+0x27,0x44,0x36,0xCE,0xCA,0x7E,0x08,0x97,0x70,0xE0,0x99,0xC5,0xFC,0x6F,0x86,0xC6,
+0xAA,0x7E,0x81,0x43,0xE6,0x45,0x1F,0xAC,0x88,0xD6,0x61,0x0B,0xEE,0xB7,0x5E,0x0C,
+0xAF,0x4E,0xB4,0x46,0x7F,0xE0,0x23,0x09,0x72,0x93,0x9B,0xB4,0xFB,0x5D,0xB4,0xF3,
+0x05,0x31,0x61,0xEC,0xC1,0x98,0xE5,0x71,0x15,0x31,0xFC,0x71,0x97,0xBD,0x54,0x7F,
+0xDB,0x9A,0x14,0x32,0x8A,0xA5,0x93,0x4C,0xD5,0x79,0x3C,0xF9,0xD0,0x54,0xBD,0xD1,
+0x8A,0x7A,0xA5,0x63,0x09,0xC3,0x76,0x2A,0x3E,0x4D,0xD7,0x26,0x29,0xC5,0x2C,0xB9,
+0x26,0xFB,0x92,0xF2,0x1B,0x89,0x5D,0xDD,0x3E,0xB6,0xC7,0x13,0xBB,0xB0,0x44,0x64,
+0x28,0x96,0xF1,0xFC,0x28,0x50,0x84,0x37,0xDC,0x0D,0x9E,0x4A,0xA7,0x14,0xFC,0xC0,
+0x2D,0xA3,0xC1,0xF9,0x5F,0x9D,0x49,0x8D,0x40,0x75,0x7A,0xAE,0x43,0x65,0x69,0xB1,
+0xA0,0x14,0xFB,0x74,0x73,0xA6,0x72,0x9A,0x8E,0x43,0x82,0x56,0x89,0xBD,0x7B,0x69,
+0xA5,0x21,0xCB,0x71,0xEA,0x03,0xD7,0xA6,0x31,0x06,0x78,0xAC,0x76,0x57,0x6E,0x83,
+0x0F,0xF4,0xB4,0xDB,0x54,0x7B,0xAF,0x60,0xF4,0xA4,0x1F,0xCB,0xFA,0xB7,0x02,0x63,
+0xD1,0x81,0x1F,0x05,0x1F,0x46,0x92,0x16,0x7C,0xEC,0xDF,0x0B,0x54,0x5E,0x45,0x8A,
+0x80,0x30,0xFF,0x54,0x9C,0x20,0xF4,0xF3,0xA3,0xD8,0x34,0xE0,0x3C,0xCF,0xBC,0x1B,
+0xFA,0xFD,0x48,0x2E,0x67,0xA2,0x76,0x8A,0x6E,0xF2,0xD3,0x07,0x4B,0xE5,0xE1,0x31,
+0xAF,0x58,0xB8,0x7B,0x91,0x1A,0xCE,0xC4,0xCC,0x19,0x9A,0x4E,0x9B,0xB1,0x65,0x65,
+0x1B,0xB0,0xE4,0xCF,0x0B,0x42,0x96,0x06,0x0A,0xA7,0xE2,0x36,0x7E,0xD7,0xE6,0x03,
+0x36,0xAB,0xD2,0xE2,0x46,0xA3,0x77,0xAA,0xD6,0x8F,0x16,0xC2,0x29,0xFC,0x9A,0x28,
+0x4D,0x47,0x45,0x99,0xC6,0x38,0xEC,0xB1,0xB7,0xE8,0x10,0xC4,0x94,0x0E,0xD5,0xDA,
+0xD9,0x8B,0x1D,0x0D,0xB7,0x29,0xFD,0xD1,0x0F,0x95,0xD5,0x01,0xBF,0x90,0x60,0x44,
+0xF9,0xAF,0x19,0x2D,0x4A,0x77,0xA3,0x72,0x04,0x01,0x4A,0x9E,0x0B,0xF5,0xB1,0x21,
+0xE6,0xB3,0x1A,0x32,0x5A,0xBC,0x68,0xA9,0x66,0x7A,0x53,0x87,0x22,0x63,0x0E,0xB7,
+0xE9,0xFF,0x59,0x3D,0xED,0x31,0xE5,0x93,0xA8,0x4C,0xAB,0x7F,0x44,0x5A,0x51,0x8E,
+0x85,0x05,0xCF,0x51,0x4D,0x45,0x91,0x47,0x97,0xC9,0x11,0xC5,0x5E,0xD6,0xC7,0x02,
+0xF3,0xD6,0x6A,0x27,0x62,0x83,0x57,0xAE,0xCA,0x37,0xB2,0x66,0x27,0x54,0x3C,0x80,
+0xF4,0x90,0x2B,0x20,0x92,0xE7,0x33,0x3A,0x14,0x15,0x4E,0x9A,0xB6,0x07,0xFE,0xD3,
+0x6C,0x42,0x61,0xB8,0x94,0x3B,0xEF,0xE0,0x3B,0x84,0xF0,0x24,0x23,0x74,0x18,0xA0,
+0x1D,0xD7,0x85,0xC9,0xCE,0x23,0xF7,0xA2,0x50,0x61,0x7E,0xAA,0xC0,0x3A,0xB5,0xEE,
+0xCA,0x89,0x0C,0x1E,0xA9,0x25,0xF1,0xC3,0xB2,0xDA,0x27,0xF3,0x0E,0xC2,0x83,0x16,
+0x2E,0xF1,0x90,0xFA,0x13,0x92,0x46,0xCE,0x75,0x72,0x48,0x9C,0x8F,0x95,0x55,0x41,
+0x91,0x41,0x9F,0x45,0x0A,0xAC,0x78,0xE9,0x77,0x78,0x40,0x94,0x17,0x51,0x09,0x85,
+0x55,0x1D,0x07,0x81,0x80,0x3F,0xEB,0xF0,0x00,0x25,0x6A,0xBE,0x46,0x52,0x5B,0x86,
+0xEE,0xB9,0x18,0x3A,0x82,0x2C,0xF8,0xE1,0xF9,0x1E,0xA8,0x7C,0xAD,0x9C,0x7E,0x48,
+0x6F,0x10,0x30,0xBB,0xA1,0x3E,0xEA,0xD0,0x84,0xC1,0x0A,0xDE,0x78,0xFF,0xC8,0x2B,
+0xF2,0xF7,0x4A,0x26,0xE3,0xF6,0x22,0x5A,0x38,0x98,0xEF,0x3B,0x21,0x7C,0x12,0xA8,
+0xDE,0xCD,0x5C,0x0A,0x2C,0x9F,0x4B,0xFC,0xC2,0xBF,0x32,0xE6,0x13,0x71,0x2D,0xA5,
+0xF8,0x8E,0x39,0x2C,0x68,0x8B,0x5F,0xAC,0x53,0x7D,0x61,0xB5,0x09,0xFD,0xBB,0x29,
+0xC1,0xD1,0x5F,0x15,0x97,0xC6,0x12,0x1E,0x10,0x31,0x6E,0xBA,0xB9,0xB8,0x4E,0x6C,
+0xA7,0x52,0xBA,0x73,0xC2,0xF7,0x23,0x7A,0x70,0x40,0x7F,0xAB,0xBD,0x98,0x6A,0x4C,
+0xEB,0x8C,0x28,0x3F,0x3A,0x88,0x5C,0xFD,0x71,0x56,0x68,0xBC,0x98,0xAE,0x79,0x7A,
+0x81,0x11,0xDF,0x55,0x70,0x5B,0x8F,0x64,0x6D,0xEE,0xCC,0x18,0x52,0x76,0x6B,0xA2,
+0x19,0xC3,0x95,0xCD,0x7F,0x72,0xA6,0x42,0x80,0xE5,0x2A,0xFE,0x8B,0xB5,0x71,0x61,
+0xCE,0x9D,0x1C,0x1A,0x24,0x84,0x50,0xEF,0xF8,0x08,0xBF,0x6B,0x05,0x5D,0x17,0x89,
+0xF1,0xA5,0x1B,0x25,0x1A,0x67,0xB3,0x32,0x86,0xCB,0x02,0xD6,0xF6,0x17,0xAE,0xC3,
+0xC3,0xA2,0x2E,0x17,0xD4,0xE0,0x34,0x7B,0x8C,0x49,0x8A,0x5E,0x49,0xED,0xEB,0x39,
+0x66,0x3B,0x12,0xB2,0xAA,0xD8,0x0C,0x3D,0x63,0x48,0x64,0xB0,0x26,0x43,0x2A,0x97,
+0x05,0x8D,0xC7,0xD1,0xDD,0x15,0xC1,0x87,0x69,0xCA,0xEC,0x38,0x34,0x4F,0x34,0x9B,
+0xB6,0x23,0xDA,0x62,0xF3,0x3D,0xE9,0x81,0xFE,0x26,0x97,0x43,0xBC,0x8F,0x7C,0x5B,
+0x94,0x74,0xAF,0x40,0x2B,0xAD,0x79,0xC9,0x20,0x04,0x6B,0xBF,0x83,0x35,0xF9,0xE1,
+0x41,0x59,0x57,0x95,0x33,0x7D,0xA9,0x01,0x58,0xE9,0xFE,0x2A,0x2D,0xDC,0xBE,0x08,
+0xC9,0xDB,0x5D,0x1D,0xA8,0xCB,0x1F,0x2C,0xE2,0x9E,0x33,0xE7,0x2A,0xE3,0x86,0x37,
+0x0B,0xE0,0xA4,0xDF,0x4B,0x99,0x4D,0x9D,0x68,0xDC,0xFB,0x2F,0x82,0x22,0xEF,0xF6,
+0xBE,0x29,0xD8,0x6A,0x32,0x93,0x47,0xEE,0xD9,0x3F,0xA9,0x7D,0xCD,0x8D,0x0F,0x59,
+0x70,0x0C,0x33,0xA4,0xD2,0x3C,0xE8,0xA1,0x9C,0x5D,0x8E,0x5A,0xC5,0x0D,0x87,0xD9,
+0xD0,0xA0,0x3F,0x04,0x6F,0xB9,0x6D,0x99,0xC8,0x3D,0xBA,0x6E,0xF5,0x08,0xB2,0xDC,
+0x2B,0xC4,0xA0,0xFF,0xB4,0xD4,0x00,0x2F,0x65,0x66,0x4C,0x98,0x35,0x58,0x22,0x8C,
+0x9B,0x38,0xEC,0x4F,0x5E,0x73,0xA7,0x62,0xF2,0x8A,0x37,0xE3,0x4D,0xCD,0xCF,0x19,
+0x01,0x99,0xD7,0xD5,0xCC,0x30,0xE4,0xB3,0x4F,0xC5,0xC5,0x11,0xD3,0x21,0xBD,0xF5,
+0x5C,0x36,0x25,0x88,0xC0,0xE4,0x30,0x6B,0x15,0x03,0x59,0x8D,0x96,0x06,0xDF,0xD2,
+0x60,0x5C,0x73,0xB4,0x53,0x49,0x9D,0x55,0xE7,0xAC,0x04,0xD0,0xB5,0x18,0xE2,0xCC,
+0x87,0x76,0xBE,0x53,0x57,0x86,0x52,0x9E,0xEA,0x16,0xB3,0x67,0xF7,0x00,0xB8,0xD4,
+0xC0,0xF0,0x7F,0x14,0x27,0x79,0xAD,0x11,0x56,0x4F,0x56,0x82,0x6C,0xDB,0xF8,0x0F,
+0xD2,0xD3,0x4E,0x06,0xFA,0xC8,0x1C,0x7D,0xE5,0xA6,0x0C,0xD8,0x74,0x5F,0x64,0x8B,
+0xA1,0x35,0xDB,0x75,0x6D,0xAA,0x7E,0x88,0x51,0x77,0x69,0xBD,0xA5,0x1C,0xF6,0xC8,
+0x13,0xBA,0xE6,0xC7,0xF5,0xE1,0x35,0x5B,0xD5,0x93,0x09,0xDD,0x6F,0xC4,0xE4,0x10,
+0x6D,0x63,0x41,0xB9,0x3E,0x47,0x93,0x36,0xDE,0x07,0x96,0x42,0xEB,0xA4,0x00,0x70,
+0xE8,0xDE,0x79,0x3C,0xE7,0x39,0xED,0x91,0x4C,0xD9,0xDA,0x0E,0x24,0x4B,0x20,0x9F,
+0x12,0x9B,0xC6,0xC6,0x1C,0xBB,0x6F,0xE8,0xAB,0x50,0xB4,0x60,0x03,0x75,0x39,0xA1,
+0x62,0x2F,0x02,0xB6,0x2E,0x8C,0x58,0xED,0xD4,0x85,0x1E,0xCA,0xE3,0x24,0x88,0xF0,
+0xEA,0xAD,0x08,0x3E,0xD0,0x2F,0xFB,0xB0,0x67,0x6C,0x44,0x90,0x0D,0xDD,0x9F,0x09,
+0xC9,0xF3,0xB9,0x22,0x33,0x81,0xAA,0x79,0x2D,0x67,0x05,0x7A,0xEA,0x0B,0xA0,0xB3,
+0x33,0x9F,0xD5,0xB4,0x47,0x21,0x7E,0x0D,0x97,0xDD,0x80,0x45,0x66,0x9D,0x2C,0xA9,
+0x5C,0x82,0xC8,0xC6,0x91,0x5E,0xD7,0xDB,0x72,0x38,0xD9,0xF9,0x3B,0x32,0x71,0x5B,
+0x1A,0x85,0xCF,0x87,0xF5,0xAE,0x43,0xBF,0x8E,0xC4,0xFB,0x27,0x68,0xF0,0x22,0xCA,
+0x1B,0x6B,0x21,0x68,0x55,0x02,0x4F,0x1F,0x42,0x08,0xAD,0xBD,0x06,0x79,0x4C,0x2D,
+0x8E,0x1A,0x50,0x8C,0x4D,0x58,0x0D,0x07,0xCC,0x86,0x48,0xD6,0x48,0xD4,0x02,0xCE,
+0x3D,0x58,0x12,0x7D,0xE4,0xDF,0x23,0xAE,0x74,0x3E,0xBE,0x98,0xA9,0x99,0xE3,0x62,
+0x45,0xBC,0xF6,0xE1,0x53,0x65,0x2E,0x19,0x1B,0x51,0x16,0x5F,0xFE,0x4F,0xB4,0xE3,
+0xD1,0x23,0x69,0xEA,0x49,0x4C,0x1D,0x03,0x56,0x1C,0xE9,0xED,0x6E,0x97,0x24,0xAB,
+0x8D,0xE7,0xAD,0x72,0xDA,0xC6,0x04,0x90,0x7C,0x36,0xB4,0x9A,0x6D,0xC5,0x27,0xFA,
+0xDC,0x19,0x53,0xDD,0x48,0x6D,0x3D,0x02,0x36,0x7C,0x0D,0x69,0xC3,0x04,0x89,0x95,
+0x75,0x98,0xD2,0xF5,0x5A,0x4E,0x0C,0x10,0x94,0xDE,0xD2,0x14,0xA0,0xB2,0xEA,0x40,
+0x01,0xA8,0xE2,0xB1,0xE9,0xE0,0x11,0xA3,0x0E,0x44,0x73,0x2F,0x4D,0xE1,0x07,0xFE,
+0x3B,0x84,0xCE,0xA7,0x80,0x2F,0xB7,0xCA,0xD3,0x99,0x54,0xD5,0x40,0xDE,0x0A,0xCC,
+0x1D,0xB7,0xFD,0xB2,0xB0,0x5B,0xF3,0xFA,0x52,0x18,0xFD,0xFD,0x84,0x82,0xCE,0x54,
+0x42,0x8E,0xC4,0xD4,0xFD,0xA4,0x41,0xB7,0x5D,0x17,0xB1,0xBE,0xC1,0x77,0x8B,0xE4,
+0x5A,0x5E,0x14,0x1C,0x26,0xE4,0xDA,0x6C,0xA2,0xE8,0xC1,0x31,0x28,0x30,0x62,0x4A,
+0x37,0x50,0x1A,0x7F,0xFF,0xD7,0x30,0xB5,0xFB,0xB1,0x7A,0xD3,0x8C,0x88,0xC6,0x56,
+0xD8,0xD6,0x9C,0x16,0xD0,0xBF,0x77,0x9A,0xBE,0xF4,0x8F,0x63,0x81,0xB7,0xCB,0x64,
+0x6F,0x5B,0x11,0x2C,0xEB,0x93,0x60,0xA1,0x46,0x0C,0xB9,0xAD,0x59,0xA5,0x13,0xAE,
+0x38,0x79,0x33,0x59,0x0D,0x98,0x8D,0x47,0x23,0x69,0x68,0x19,0x8B,0xCE,0xC1,0x17,
+0xED,0xD3,0x99,0x26,0x75,0x26,0x4B,0x3F,0x44,0x0E,0xCA,0xDC,0x6B,0xA2,0x21,0x9B,
+0xFC,0xF6,0xBC,0x12,0x56,0x50,0x1E,0x1C,0x08,0x42,0x14,0x4E,0xF3,0x70,0xB9,0xD1,
+0x4D,0xA7,0xED,0xF2,0x30,0xD3,0xFB,0x7A,0xE3,0xA9,0x20,0x91,0x62,0x89,0x28,0xB9,
+0x94,0xD9,0x93,0x55,0x6C,0x5D,0x29,0x26,0xA6,0xEC,0xD5,0x21,0x8D,0xA9,0xC7,0x76,
+0x31,0x8C,0xC6,0xA5,0xD4,0xAB,0x67,0x9E,0xEF,0xA5,0x3E,0x83,0xD9,0x2D,0x93,0xA6,
+0x67,0x40,0x0A,0x3F,0xD5,0x8A,0x47,0x9F,0x2A,0x60,0x43,0x3B,0xC0,0x56,0x8A,0xC4,
+0x7C,0x6D,0x27,0x09,0x34,0xC7,0xEB,0x7E,0xDE,0x94,0x6B,0xE7,0xEB,0x2A,0xA1,0x93,
+0x47,0xAF,0xE5,0xF0,0x5F,0x7B,0x3C,0x15,0xE9,0xA3,0x59,0xE2,0xAC,0xAC,0xE6,0x52,
+0x8B,0x3B,0x71,0xA8,0x4E,0x0A,0x5C,0x04,0x2C,0x66,0x24,0x5A,0x32,0x19,0x78,0x79,
+0x7F,0x90,0xDA,0xF7,0xCA,0x96,0x44,0x80,0x6F,0x25,0xB6,0x8B,0x5F,0xC2,0x15,0xCF,
+0x63,0x8F,0xC5,0xF4,0x01,0x86,0x9F,0x4B,0x76,0x3C,0xCD,0xE9,0xC9,0x7D,0x83,0xE6,
+0x08,0x5D,0x17,0x4D,0xA2,0x78,0xC2,0xE8,0x70,0x3A,0xAA,0x88,0x64,0xEE,0x2E,0xD8,
+0x6C,0xA6,0xEC,0xD2,0xCF,0xA3,0x74,0x85,0x86,0xCC,0xF1,0x25,0x34,0x7E,0x7E,0x18,
+0x55,0x77,0x3D,0x3A,0x46,0x00,0x5E,0x0C,0xF9,0xB3,0x09,0xA2,0x1D,0x71,0x57,0x3E,
+0xF4,0xED,0xA7,0x01,0x05,0x92,0x8F,0x4F,0x0B,0x41,0x46,0x1F,0xF1,0x03,0xBB,0xA0,
+0x90,0x16,0x5C,0x9E,0x3F,0x9F,0xB8,0x75,0x38,0x72,0x60,0x0A,0x24,0x2E,0x6E,0x58,
+0xFA,0x2A,0x60,0xC8,0x92,0x0C,0x86,0xD8,0x65,0x2F,0xCF,0xF8,0x3A,0x13,0x70,0x7B,
+0x3C,0xB6,0xFC,0x92,0x0F,0xEB,0xFC,0x45,0x6A,0x20,0x83,0xBB,0xE7,0x34,0xAD,0x81,
+0xBA,0xF1,0xBB,0x53,0xF0,0x9B,0x73,0xBA,0x8F,0xC5,0xDA,0x07,0x3C,0x74,0x76,0x1A,
+0xF9,0xD7,0x9D,0x36,0xDC,0xA1,0x65,0x96,0x55,0x1F,0xBB,0xBC,0x20,0x3A,0x6A,0x48,
+0x1F,0xA4,0xEE,0xA3,0xBE,0x36,0x90,0xF4,0x30,0x7A,0x6A,0x08,0x63,0xA8,0x29,0x99,
+0xAF,0x1B,0x51,0xAC,0x31,0xF2,0xDB,0x7B,0xAA,0xE0,0xCB,0x33,0x98,0xCC,0xD2,0x06,
+0x76,0x65,0x2F,0x0B,0x97,0x39,0xB6,0xDD,0x35,0x7F,0x5F,0x38,0xF8,0x28,0xB2,0x82,
+0x57,0x64,0x2E,0x2B,0xCD,0xD0,0x05,0x87,0x88,0xC2,0x9C,0x46,0x49,0xF5,0x03,0xEE,
+0x12,0x9E,0xD4,0x94,0x4F,0x2B,0x7C,0x05,0xE6,0xAC,0x15,0xA1,0x77,0xEC,0x3D,0xC9,
+0x61,0x9C,0xD6,0xE5,0x59,0x1C,0x5D,0x13,0x78,0x32,0xA0,0x8A,0xE1,0x53,0xAB,0xE0,
+0xE3,0x14,0x5E,0xEF,0xFA,0xE2,0x00,0xB0,0x22,0x68,0x49,0x39,0x18,0x44,0x52,0x0E,
+0x40,0x9D,0xD7,0xC5,0xFE,0xF6,0x10,0xB4,0x54,0x1E,0x9A,0x9C,0x92,0xB5,0xD8,0x75,
+0x9E,0xD1,0x9B,0x57,0x81,0x0E,0x97,0xCB,0x43,0x09,0x8C,0x9D,0xA4,0xA6,0xEE,0x50,
+0x0F,0x6F,0x25,0x78,0x04,0xB3,0xAF,0x4E,0x16,0x5C,0x29,0x6D,0x89,0xBD,0xC3,0x66,
+0xDD,0xF7,0xBD,0x32,0x2D,0xBC,0x89,0x67,0xF0,0xBA,0x22,0x80,0x4A,0xA7,0x00,0xBF,
+0x69,0x87,0xCD,0xF6,0x11,0xD6,0xDF,0x5B,0x3E,0x74,0x07,0x6B,0x2B,0x62,0x61,0x1B,
+0x51,0xB8,0xF2,0xF1,0xF2,0xE8,0x02,0xB8,0x83,0xC9,0xC4,0x15,0x61,0xDB,0x2B,0xE8,
+0xF7,0x10,0x5A,0xFF,0xAE,0x66,0xD0,0xE4,0x58,0x12,0x84,0x8E,0x7F,0xE6,0x35,0xCB,
+0x6E,0xB5,0xFF,0xC3,0x96,0x18,0x96,0xDC,0xB6,0xFC,0x85,0x61,0xD1,0x27,0x9B,0xA4,
+0xEF,0xC0,0x8A,0x37,0x4B,0x3F,0x6C,0x01,0xAB,0xE1,0xEA,0x13,0xB3,0xB0,0xF9,0x51,
+0x41,0x73,0x39,0x2A,0x63,0x11,0x6A,0x29,0xD0,0x9A,0x06,0x84,0x73,0xF8,0x39,0xD9,
+0x95,0x37,0x7D,0xBA,0x0B,0xFF,0xEC,0x41,0xC2,0x88,0x25,0xB5,0xE0,0x72,0xAA,0xC0,
+0xB8,0xE2,0xA8,0x42,0xDB,0xE7,0x24,0x91,0x57,0x1D,0xC8,0xCD,0x09,0x35,0x43,0x6E,
+0x2C,0x7D,0x37,0x49,0xEF,0x87,0x70,0xA5,0xC7,0x8D,0x10,0x85,0x1E,0x23,0x54,0x6F,
+0x17,0xBF,0xF5,0xB0,0xBD,0x64,0xC1,0xF7,0x0F,0x45,0x52,0x0F,0xDF,0x4A,0x95,0xC7,
+0xC0,0x06,0x4C,0xDE,0x4A,0x1E,0x4C,0x00,0xB2,0xF8,0x91,0x71,0x31,0x4B,0x7B,0x28,
+0xE5,0xC8,0x82,0x35,0xE5,0xFE,0x03,0xAF,0x95,0xDF,0xF3,0x34,0xB1,0xC3,0xFB,0x20,
+0xA9,0x94,0x69,0x8F,0x52,0xD1,0x31,0x11,0xDF,0xB9,0x1F,0x14,0x55,0x95,0xC2,0xE5,
+0xA7,0xF7,0x67,0xE2,0xB8,0x08,0x02,0xC8,0x86,0x5B,0x46,0xAF,0xF1,0x31,0xDE,0x5D,
+0x21,0x9E,0xE1,0x0D,0xFF,0x27,0x6A,0xE7,0xC3,0xEB,0x03,0x5A,0xFC,0x3C,0xEC,0x62,
+0xAC,0xA4,0x6C,0xBA,0xE8,0x1C,0x46,0xDC,0x3B,0x25,0xFB,0x6C,0x24,0xE4,0x26,0x70,
+0x8E,0xD1,0x4E,0xED,0x05,0xFA,0x4D,0x3A,0x5E,0x91,0x9E,0xBD,0xF6,0x36,0x9F,0x1B,
+0x24,0xAE,0xE4,0x38,0xC3,0x82,0xF3,0x42,0x39,0x54,0xF9,0x1F,0x16,0xD6,0x13,0x77,
+0x01,0x9A,0xC1,0x29,0x96,0xA1,0x85,0x61,0x75,0xC6,0xB5,0xC1,0x8E,0x4E,0x59,0xA5,
+0x50,0x7A,0x90,0x98,0x73,0xC7,0x06,0x07,0x9E,0x19,0x5E,0xF5,0x1F,0xDF,0x31,0x5C,
+0x2E,0xDD,0xEE,0x41,0xA1,0x9B,0x88,0x5B,0xDB,0xA9,0x1B,0x00,0xF0,0x30,0xFE,0x7C,
+0x7B,0x2D,0xBB,0xE4,0xEF,0x23,0x7E,0xE3,0x92,0x0B,0x52,0xEB,0xA4,0x64,0x2E,0xF8,
+0xB7,0xB7,0x77,0xB2,0xCF,0x22,0x5F,0xE2,0x57,0xB3,0x97,0x96,0xBD,0x7D,0x4C,0x83,
+0x9A,0x81,0x5A,0xA9,0x63,0xC3,0x12,0x03,0xA3,0x6F,0x63,0xBE,0x96,0x56,0x1B,0xFF,
+0x58,0x78,0x98,0x92,0xB4,0xA8,0xAE,0x68,0x94,0x6A,0x54,0x8C,0xD1,0x11,0xDA,0x79,
+0xCC,0x20,0x0C,0x5E,0xD4,0xB9,0xDF,0x79,0x51,0xD2,0x91,0xF1,0x4F,0x8F,0xF1,0xCC,
+0x67,0x7F,0xA7,0xAA,0xCC,0x3D,0x43,0xFD,0x12,0x03,0xD2,0x63,0x22,0xE2,0x47,0x17,
+0x78,0x7C,0xB8,0xB6,0x17,0xF6,0x53,0x36,0x0B,0x61,0xCB,0x18,0xB4,0x74,0x6E,0xA8,
+0x04,0xAA,0xC4,0x1C,0x22,0xC4,0x54,0x04,0x50,0xF2,0x90,0xD0,0x97,0x57,0x3B,0xDE,
+0x68,0x3C,0xA8,0xE6,0xF6,0xB0,0xF4,0x70,0xEA,0xCD,0x2A,0x55,0x1B,0xDB,0x21,0x48,
+0x75,0x4E,0xB5,0x89,0x5F,0x66,0x8B,0xA6,0x0F,0x71,0xCF,0x0C,0x46,0x86,0xD3,0xE7,
+0x72,0x0F,0xB2,0xCF,0xCB,0x02,0x7B,0xC2,0xF3,0xAF,0x33,0x2E,0x15,0xD5,0x42,0x25,
+0x9C,0xE0,0x5C,0xCE,0xC7,0xA2,0xD7,0x62,0x3F,0x35,0xFF,0x78,0x7B,0xBB,0xA5,0xAC,
+0xED,0x04,0x2D,0x5B,0x85,0xBA,0x8D,0x7A,0xB1,0x5E,0x71,0x9D,0x35,0xF5,0x46,0x01,
+0xAF,0xF5,0x6F,0xE8,0xAB,0x13,0x0A,0xD3,0x09,0x10,0xC9,0x6B,0xD4,0x14,0xEA,0x4C,
+0x4B,0x69,0x8B,0x90,0xA6,0xA4,0xB0,0x64,0x66,0xD7,0xA6,0xC3,0x83,0x43,0x6B,0x9A,
+0xD4,0x62,0x14,0x04,0x95,0xBE,0x99,0x7E,0x2B,0x65,0xEB,0x3C,0x13,0xD3,0x23,0x42,
+0x10,0xFA,0xD0,0x58,0x8C,0x2D,0x13,0xED,0x01,0x12,0xC1,0x61,0x10,0xD0,0x72,0x10,
+0xEE,0x55,0x2E,0x09,0xB5,0xBF,0xB8,0x7F,0x4B,0xE1,0x8B,0xD8,0xBE,0x7E,0x1D,0xD1,
+0x6F,0x7D,0xAF,0xA0,0x84,0xAD,0x9B,0x6D,0xE9,0x9C,0x29,0x07,0xDD,0x1D,0xC8,0x67,
+0x5F,0x39,0x9F,0xD4,0x99,0x1E,0x35,0xDE,0x73,0xA7,0xB3,0xA6,0x30,0xF0,0x76,0x34,
+0x73,0x2F,0xB3,0xEE,0x3F,0x77,0xFA,0xB7,0xAE,0x5D,0x6E,0x81,0x3D,0xFD,0x44,0x0B,
+0x40,0x3A,0x80,0xC8,0x7B,0x47,0x8E,0x87,0x2F,0x75,0xEF,0x28,0xF9,0x39,0xDC,0x57,
+0x79,0x5C,0xB9,0x97,0xC9,0x0A,0x71,0xCA,0x20,0x36,0xE0,0x64,0xBC,0x7C,0x6C,0xA2,
+0x6A,0x4D,0xAA,0x95,0x98,0x09,0x23,0xC9,0x29,0x14,0xE9,0x4F,0xEF,0x2F,0xFD,0x60,
+0x26,0xDF,0xE6,0x4B,0x1F,0x76,0xDB,0xB6,0x3E,0x15,0xFE,0x59,0xD9,0x19,0xD8,0x73,
+0x98,0xF0,0x58,0xDA,0x27,0xF3,0x66,0x33,0x6B,0xE5,0xAB,0xFC,0xF4,0x34,0xEE,0x68,
+0x00,0xBA,0xC0,0x08,0x01,0xDA,0x69,0x1A,0x8D,0x08,0x4D,0xF7,0x37,0xF7,0x37,0x72,
+0x70,0x7E,0xB0,0xBC,0x57,0xE6,0x03,0x26,0x43,0xE3,0x83,0xD2,0x56,0x96,0x93,0xB7,
+0x4F,0x79,0x8F,0x84,0x8A,0x05,0x3D,0xC5,0xFE,0x9D,0x3E,0x11,0x1C,0xDC,0x60,0x0E,
+0xE7,0x77,0x27,0x22,0x58,0x59,0xB3,0x99,0x25,0x06,0xE5,0x51,0x02,0xC2,0x43,0x33,
+0x42,0x4B,0x82,0xBB,0x1E,0x61,0xCD,0xA1,0xCB,0xE9,0x0B,0x50,0xAC,0x6C,0x2C,0xF2,
+0x37,0xBF,0xF7,0x3A,0xE4,0xBC,0xEA,0x7C,0xD6,0x9B,0x16,0x3F,0xCE,0x0E,0xD9,0x65,
+0x84,0xA2,0x44,0x94,0xE2,0x94,0xC4,0x54,0xAD,0x0C,0x6D,0xD3,0x0E,0xCE,0x51,0x2D,
+0xC0,0x32,0x00,0x40,0x64,0xFC,0x2A,0x3C,0xBF,0x3D,0x7F,0xF0,0x9D,0x5D,0x48,0xA7,
+0x15,0xCA,0xD5,0x6D,0xAC,0x2C,0x32,0xEC,0x2A,0x45,0xEA,0x1D,0x74,0xB4,0xE6,0xE0,
+0x8A,0xC1,0x4A,0xF9,0xF8,0x18,0x52,0xD8,0xBA,0x0D,0x7A,0xC5,0x63,0xA3,0xE7,0xF6,
+0x48,0x38,0x88,0xC2,0x49,0x4A,0xB1,0x8A,0x72,0x87,0xB2,0x87,0xA2,0x62,0x4F,0x9F,
+0xF1,0x56,0x31,0x15,0xC4,0xBD,0xCB,0x7D,0xCF,0xF9,0x0F,0x44,0x4C,0x8C,0xA0,0x9E,
+0x3F,0xBD,0xFF,0x30,0x8B,0x12,0x2B,0xD2,0xE8,0xBC,0x28,0x26,0xCC,0x0C,0xA8,0x16,
+0xAA,0xC5,0x6A,0xDD,0x4A,0x55,0xAD,0x95,0x0D,0x00,0xCD,0x7F,0x19,0xD9,0x50,0x3B,
+0x51,0x5A,0x91,0xB9,0xFC,0x38,0x76,0xF8,0xFB,0xAD,0x3B,0x24,0x49,0x89,0x90,0xAB,
+0x80,0xB2,0x40,0x80,0xD6,0xB1,0xD5,0x71,0x84,0x2A,0x44,0xDC,0x60,0xA0,0xB6,0xA4,
+0x1A,0x89,0xDA,0x21,0x07,0xF2,0x47,0x32,0x76,0x97,0xB6,0x93,0x8C,0x4C,0x28,0xD6,
+0xE1,0x16,0x21,0x45,0x30,0xC8,0x4A,0x08,0x45,0x82,0x85,0xB5,0x59,0x99,0xD0,0xFB,
+0xDD,0x40,0x1D,0x2F,0x0E,0x65,0xD9,0xA5,0x18,0x70,0xD8,0x1A,0x47,0x87,0xF3,0xC6,
+0x41,0x1A,0x81,0xE9,0x74,0xF8,0x3E,0x38,0x17,0x33,0xD7,0x56,0x9A,0x5A,0x09,0xE1,
+0x06,0xDB,0xC6,0x6F,0xFB,0x07,0x4E,0xC7,0xF2,0x8F,0x32,0x0F,0x41,0x81,0x92,0xA1,
+0x20,0xBE,0xE0,0x2C,0xED,0x2B,0x74,0xEB,0x28,0x34,0xE8,0x6E,0x5D,0x9D,0xC0,0xEF,
+0x53,0x2B,0x93,0xCA,0x18,0x49,0xE3,0x89,0x4D,0x80,0x8D,0xBF,0x1E,0xDE,0x11,0x7D,
+0xEC,0x24,0x2C,0x7A,0x53,0xC6,0x27,0x06,0xD7,0xBB,0x17,0x1E,0xE5,0x25,0x8E,0x19,
+0x92,0x83,0x52,0xA3,0x3E,0x60,0xEC,0xA0,0x48,0xB0,0x88,0x8A,0x85,0x45,0x0A,0xFD,
+0x93,0xA3,0x53,0x82,0x8D,0x3A,0x05,0xFA,0xF5,0xCE,0x35,0x49,0x34,0xF4,0x66,0x20,
+0x69,0x1C,0xA9,0xC7,0xF4,0xB8,0xFE,0x78,0x9B,0x29,0x5B,0xC0,0x0A,0xCA,0x41,0x39,
+0x6B,0x6D,0xAB,0xB4,0xD5,0xAE,0xC9,0x6E,0x05,0x02,0xC5,0x75,0x9C,0x5C,0x68,0x86,
+0xE3,0x67,0x23,0x36,0x88,0x0D,0x37,0xCD,0x5F,0xB1,0x9F,0x9C,0x65,0xA5,0x86,0x91,
+0xDD,0x24,0xDD,0x59,0x3B,0x3F,0xBB,0x20,0x39,0xB1,0xAC,0x28,0xCA,0xE6,0x08,0x62,
+0x60,0xE7,0xA3,0xE4,0x82,0x75,0xF1,0xD3,0x3E,0x89,0x93,0x17,0x17,0x05,0x36,0x81,
+0xE8,0x65,0xA9,0x6C,0xC7,0x8F,0x0B,0x6C,0x0B,0x8E,0xA1,0x25,0x5E,0x82,0xF8,0x06,
+0x06,0x64,0x46,0x82,0x06,0x21,0xA5,0x03,0x37,0x17,0x04,0x80,0x18,0xBA,0x86,0x3E,
+0x1D,0x6C,0x55,0x99,0x46,0xFA,0x7E,0x98,0x9F,0x7E,0xC5,0x41,0x5F,0x95,0xEE,0x11,
+0x0A,0x7A,0x54,0x8E,0x55,0xCC,0x48,0xBD,0x0D,0xA0,0x89,0x0D,0xD8,0xEA,0x16,0x6E,
+0xAE,0xC2,0x48,0x2A,0x47,0x14,0x90,0x77,0xFA,0x3D,0xE3,0x67,0x41,0x39,0x5C,0xBD,
+0x48,0xC9,0xA5,0xCC,0x5D,0xD7,0x53,0xAE,0xB0,0xEF,0x7B,0xFF,0x67,0x10,0x53,0x94,
+0x51,0xB2,0xC7,0xD5,0xAA,0x81,0x05,0x0F,0x78,0xF7,0xAB,0x2F,0x09,0xA9,0x84,0x2D,
+0x99,0xF0,0x4D,0x1D,0xC3,0x40,0xC4,0xA7,0x81,0xCC,0x69,0xED,0xB8,0xFB,0x67,0x7F,
+0xCB,0x13,0xFC,0x4F,0x23,0xEF,0x6B,0xE8,0xFD,0x05,0xDC,0x58,0xCB,0xF1,0x1E,0x75,
+0xEC,0x71,0xB9,0x68,0xAB,0x6F,0xEB,0xE0,0x16,0x20,0x12,0x96,0x84,0x5E,0xFE,0xDA,
+0x8E,0xE6,0x4C,0x0A,0x18,0x2D,0xA9,0x11,0xE2,0xA1,0x67,0xE3,0xA2,0x77,0xF1,0xF3,
+0xF5,0x0A,0xDB,0x71,0x50,0xED,0x69,0x99,0xFF,0x0F,0xD4,0x50,0xA4,0x5F,0xDF,0xDB,
+0x09,0x28,0x05,0x8D,0xD5,0x57,0xD3,0xA6,0x8A,0x58,0xF6,0x72,0xEC,0xCF,0x07,0x4B,
+0x9C,0xC5,0x7D,0x18,0x92,0xBE,0x3A,0x08,0x72,0x75,0x23,0xA7,0x24,0x1F,0x1F,0x9B,
+0x3B,0x2F,0x30,0xBF,0xF3,0x64,0xE0,0xB3,0x00,0x1A,0x3E,0xBA,0x4E,0x86,0xEC,0x02,
+0x66,0x80,0xC2,0xE2,0xCE,0x7A,0xFE,0x90,0x56,0x70,0x02,0x86,0x70,0x2B,0x7F,0xAF,
+0xD1,0x3A,0xCF,0x55,0x94,0x62,0xE6,0xD2,0x9B,0x5A,0xE5,0x61,0xBB,0xE4,0x7B,0x60,
+0x34,0x63,0x73,0xB0,0xD4,0xB9,0x3D,0x49,0x5A,0xDC,0xA2,0x26,0x34,0x1B,0x0B,0x9F,
+0xD8,0x11,0xED,0x5C,0x9E,0x6A,0xEE,0xD0,0x1A,0x8C,0xB2,0x36,0xBC,0xDB,0x43,0x5F,
+0x2E,0x4A,0x40,0xAA,0x0E,0x3A,0xBE,0x10,0x85,0xE8,0x49,0xCD,0x0A,0xB6,0x98,0x32,
+0x55,0xA6,0xD7,0xD1,0xE3,0xAF,0x2B,0x68,0xC9,0x14,0xF9,0x7D,0x47,0x11,0x72,0x95,
+0xA7,0xE9,0x6A,0x23,0x91,0x43,0xC7,0xF6,0xF2,0xB5,0x63,0xE7,0x96,0x52,0xE0,0xD6,
+0xB8,0xF5,0x69,0x3C,0x0C,0x29,0xAD,0x01,0x5C,0xF2,0x8A,0x0E,0xB4,0x5B,0xCB,0xDF,
+0xD6,0x7C,0x8E,0x52,0x15,0x17,0x93,0x26,0xE3,0xB7,0x70,0xF4,0xCD,0xD9,0x30,0x5D,
+0x7C,0xA9,0xF1,0xF8,0xA4,0x46,0xC2,0xC6,0x27,0x03,0x00,0x84,0xC8,0xEE,0x02,0x6A,
+0x26,0x40,0x42,0xA2,0xB3,0xBF,0x3B,0x28,0x2D,0x81,0x88,0x0C,0x95,0x4D,0xFC,0xC9,
+0x6E,0x8A,0xC0,0xEA,0x48,0x3D,0xB9,0x51,0x6B,0xFF,0xB0,0x34,0x58,0xAA,0xD6,0x2E,
+0x0B,0x5B,0x74,0x8F,0xDA,0x7E,0xFA,0x80,0xFE,0x19,0xC3,0x47,0xAD,0xC8,0x41,0x4C,
+0x6B,0xBF,0xF0,0xEF,0xC8,0xA6,0x22,0x4A,0xC3,0x96,0x71,0xF5,0x7E,0x83,0xD9,0x07,
+0xF4,0x2B,0xFB,0x70,0x2C,0xC6,0x42,0xCE,0x64,0x4F,0x0F,0x8B,0x13,0x25,0x12,0xA1,
+0x1A,0x2A,0x14,0x9E,0x42,0x35,0xB1,0x53,0xEE,0x0D,0xC7,0x43,0x83,0x61,0xC6,0xE5,
+0x7D,0x88,0xD1,0xF9,0x2E,0xD5,0x51,0xDF,0x91,0xD8,0x6D,0xE9,0x45,0x19,0x78,0x9D,
+0xBD,0xC0,0x59,0x39,0x69,0x3C,0xB8,0x71,0x3A,0xAD,0xB3,0x37,0x33,0x24,0x33,0xA0,
+0x56,0xF4,0x86,0xD2,0x90,0xAD,0x29,0x19,0xDA,0x1C,0xE2,0x66,0xD6,0x42,0xB0,0xC6,
+0xA5,0x9A,0x1B,0x21,0x68,0xD2,0x56,0x9E,0xB7,0xD7,0x44,0xC0,0xF8,0xEB,0x37,0x6F,
+0xFC,0x21,0xF9,0x78,0xD0,0x76,0xF2,0x82,0xD4,0xBA,0x4A,0xCE,0x12,0x32,0x04,0xB6,
+0x18,0x59,0x65,0x9C,0x45,0x07,0x83,0x66,0xE4,0x8F,0x4F,0xCB,0xA8,0xFF,0x73,0x7B,
+0xE0,0x6F,0xAB,0x64,0x57,0xDF,0x5B,0xAC,0xDE,0x38,0xC2,0x46,0xBF,0xC4,0x5F,0x40,
+0x72,0xC4,0x92,0xF6,0xF9,0x6C,0xE8,0xB1,0x60,0x6B,0x2F,0xAB,0x94,0x5A,0xEA,0xDE,
+0xB7,0xB9,0x2A,0x33,0x4C,0xF2,0x76,0x9A,0x38,0xA7,0xBB,0x3F,0xF4,0x4B,0x9B,0xCF,
+0x28,0x2D,0x21,0xAC,0x9D,0x97,0x13,0x2E,0x3C,0x83,0x9B,0x1F,0x57,0x15,0x66,0x91,
+0x31,0x56,0x43,0xB5,0x22,0x01,0x85,0x07,0x3F,0x9F,0x84,0x00,0x8C,0xDE,0x76,0x5A,
+0xB1,0xDE,0x4B,0x35,0xCD,0x87,0x03,0x6E,0x6D,0xD1,0x98,0x1C,0xAF,0xC0,0x4B,0x44,
+0xF8,0x35,0xE9,0x7C,0x49,0xD3,0x57,0xBE,0x9D,0x74,0xCD,0x49,0xE1,0x78,0xBD,0xFC,
+0x80,0x8B,0x2F,0x04,0xCA,0xB5,0x31,0x5B,0xC1,0x9C,0x79,0xFD,0x23,0x20,0x27,0xA4,
+0x74,0xA3,0xF3,0xF0,0xB6,0x9E,0x1A,0x0C,0xF7,0x87,0x54,0xD0,0x8F,0xC1,0x6A,0x45,
+0x92,0xA8,0x1E,0x16,0x34,0x16,0x92,0x06,0x44,0x6E,0x0E,0x8A,0xC5,0x59,0xB8,0xDD,
+0x1C,0x4D,0x75,0x98,0x99,0x58,0xDC,0xE5,0xA0,0xFB,0x7F,0xFB,0x87,0x41,0xE2,0xC5,
+0x45,0xF6,0x97,0xC1,0xAF,0xA0,0x24,0x2B,0x29,0xA5,0xA8,0x2C,0xE6,0x47,0x85,0xC3,
+0x2A,0x5E,0x50,0xAE,0x79,0xF7,0x73,0xAA,0xB5,0xDD,0x4C,0xC8,0xEB,0xF0,0x3F,0x74,
+0xC9,0x60,0x8D,0x4D,0x7D,0x38,0xBC,0x61,0x7C,0xD3,0x8B,0x0F,0xB6,0x53,0xC1,0xD7,
+0x73,0xE5,0xB2,0xF7,0xEB,0xB4,0x30,0x7B,0xEA,0x29,0xE7,0x63,0x62,0x27,0x61,0xA3,
+0xD0,0x1B,0xEF,0x54,0x10,0x36,0xB2,0x02,0x4F,0xFA,0x91,0x15,0x8B,0xE1,0x4E,0x65,
+0x2C,0x39,0x31,0xA8,0xD2,0x65,0xE1,0x93,0x0E,0xBC,0x96,0x12,0x1F,0x85,0xBE,0x01,
+0x8D,0xB4,0x1D,0x09,0x3E,0x1E,0x9A,0x04,0x6F,0xDB,0x90,0x14,0x7F,0x94,0xCF,0x10,
+0x50,0x93,0xE7,0xD4,0x01,0x13,0x97,0x36,0x79,0xE1,0xBC,0x38,0xD9,0xFD,0x00,0x79,
+0x03,0x51,0x76,0x87,0x97,0x9F,0x1B,0x2C,0x1C,0xA2,0x9A,0x1E,0x89,0xE9,0x44,0x6D,
+0x0C,0x1D,0x35,0x88,0x62,0xDA,0x5E,0x9C,0x7A,0xFD,0xA3,0x27,0x3B,0xA4,0xBB,0x20,
+0x22,0x54,0x52,0xA6,0x25,0x33,0xB7,0x32,0xBA,0x6D,0xF3,0x77,0xCC,0xCE,0x26,0x4A,
+0x08,0x09,0x25,0x8C,0x77,0x30,0xB4,0x63,0x22,0x31,0x37,0xB3,0xD5,0x5D,0xAC,0xD9,
+0xCA,0x32,0xDC,0x4E,0x52,0xFE,0x7A,0x88,0x3D,0x95,0x8C,0x08,0xC4,0x4E,0xAE,0xCA,
+0x68,0xED,0xA1,0xEC,0xE4,0x9D,0x19,0x5D,0x15,0x3C,0x0D,0x89,0xF5,0x5C,0x8D,0xD8,
+0xD7,0xCD,0x58,0xFB,0x58,0x3A,0x83,0xCD,0x07,0x92,0x0B,0x78,0xED,0x1E,0x78,0x87,
+0x9A,0x2C,0xB9,0x57,0x75,0x21,0xB5,0xE0,0x2C,0xB9,0x77,0x2F,0x19,0x36,0x8C,0x5B,
+0x00,0x74,0xE1,0x95,0xC1,0xC9,0xE9,0x54,0x4A,0xDF,0xF4,0xCA,0x61,0x88,0xF4,0x9D,
+0xF6,0xCC,0x59,0xDB,0x94,0x6C,0x19,0x01,0x1E,0x8B,0x70,0x1A,0x28,0x63,0xBD,0x3F,
+0xCB,0xD2,0x47,0xF8,0x88,0x22,0x4B,0x1D,0x98,0x0D,0x9F,0x73,0xA8,0xEB,0x3D,0x37,
+0xDB,0x19,0x8C,0x23,0x97,0x3E,0x48,0x02,0x0E,0x9B,0x20,0x5A,0xB1,0x90,0x24,0x55,
+0x26,0x47,0xD2,0x80,0xB7,0x1A,0x4C,0x22,0x6B,0xFE,0xF1,0xEE,0x2E,0x04,0xBB,0x5E,
+0x57,0x56,0xC3,0xE0,0x23,0xD6,0x14,0xB6,0xF5,0x60,0x44,0xC5,0xEB,0x79,0x7E,0xE6,
+0xE2,0xC8,0x5D,0xCB,0xCE,0x85,0xAA,0x5B,0x46,0xD3,0xEA,0xD8,0x79,0xD2,0xEC,0xDF,
+0xCE,0xF3,0x66,0xDC,0x43,0x32,0x90,0xD6,0x9E,0x0B,0xF8,0x12,0x81,0xE4,0x14,0x11,
+0xB9,0x3E,0xAB,0x66,0x46,0x07,0xA0,0xD3,0xEF,0x7A,0x6D,0xF6,0x65,0x9C,0xF0,0x8D,
+0x8A,0xE7,0x72,0x8C,0x48,0x6A,0xC3,0xDD,0x4B,0xDE,0xD5,0xEA,0x3C,0x27,0xA9,0x6F,
+0x0D,0x4E,0xDB,0xA2,0xEE,0xA1,0xAE,0x7B,0x34,0xA1,0x2D,0x6D,0xCF,0x49,0x5A,0xF2,
+0x8E,0x28,0xBD,0x47,0xBF,0x10,0x4E,0x2A,0xA5,0x30,0xD4,0x05,0x24,0x7D,0xB1,0x2D,
+0xC5,0x15,0x80,0x31,0x61,0x65,0xE5,0xF4,0x4C,0xD9,0x93,0xAB,0xE4,0x35,0x71,0xA5,
+0x7B,0x6D,0xF8,0xF7,0xCB,0xB0,0x9A,0x5E,0xAC,0x39,0xFF,0x27,0x83,0x97,0x16,0x60,
+0x30,0x50,0xC5,0x81,0x01,0x81,0x61,0x94,0x04,0x91,0x59,0x29,0xF1,0x50,0x64,0xD5,
+0x13,0x42,0xD7,0xB0,0x80,0x28,0x49,0x15,0x67,0xF2,0xEF,0xFC,0x53,0x8F,0xC6,0xA8,
+0x11,0x51,0xC4,0xA1,0x3B,0x8C,0x56,0xAE,0xA9,0x3C,0xCA,0x17,0x91,0xB4,0x04,0x51,
+0x9B,0xC2,0x57,0xB8,0xFF,0xD0,0xCE,0x6A,0xAA,0x3F,0x98,0x46,0xBB,0xE9,0x2E,0x26,
+0x06,0xA8,0x3D,0x4F,0xAF,0x40,0x0E,0x3A,0x43,0xD6,0xDF,0xE8,0x95,0xA0,0x00,0x41,
+0xF9,0xE5,0x70,0xFD,0x96,0x1F,0x68,0x03,0x06,0x93,0x2A,0x58,0x9A,0xEC,0x0F,0x02,
+0xBD,0xF1,0x64,0xAD,0xB0,0x5C,0x0D,0x25,0x8A,0x1F,0xBC,0x42,0xC9,0x2E,0x5C,0x93,
+0x72,0x98,0x0D,0x0B,0x9C,0x66,0x1B,0x09,0x87,0x12,0x83,0x70,0x14,0x09,0x81,0x69,
+0x03,0x89,0x1C,0x6B,0x9A,0x01,0x7A,0x0F,0xFC,0x69,0x6F,0xE7,0xB5,0x84,0x20,0x45,
+0xF3,0xED,0x78,0xFF,0x9D,0x47,0x3B,0x08,0xAF,0x3A,0xAD,0x76,0x49,0xA6,0xDC,0x9B,
+0xDC,0x2B,0xBE,0x16,0xEB,0x94,0x9E,0x7E,0x2D,0xB8,0x56,0x0F,0xEA,0x58,0x7F,0xC6,
+0x7C,0x5F,0xCA,0xC2,0x87,0x6E,0x08,0x12,0xA1,0x34,0xC0,0x15,0x50,0xDD,0xC5,0xF9,
+0x82,0xFC,0x69,0x9F,0x40,0x60,0xC1,0xD5,0x6E,0xFB,0xC4,0xDE,0xB3,0xE3,0x26,0x24,
+0x38,0x4B,0xDE,0x92,0xA4,0x18,0x5D,0x31,0x39,0xAC,0x12,0x5F,0xDC,0x4B,0x49,0xE3,
+0x5F,0x4D,0xD8,0xF3,0x73,0x46,0xD4,0xE6,0xC1,0x54,0x24,0x91,0x85,0xF0,0x10,0x01,
+0x05,0x55,0xC0,0xB1,0x02,0xD3,0x30,0x97,0x8F,0x1A,0x89,0x72,0x0B,0x15,0x9E,0x6A,
+0xA2,0x13,0x86,0x50,0x2F,0xC8,0x06,0xBA,0x27,0xB2,0x2F,0x7C,0x05,0x78,0x90,0x09,
+0xBA,0xC3,0x56,0x98,0xFA,0xE5,0xFE,0x6F,0xCE,0x5B,0x68,0xD2,0x90,0x95,0x05,0x71,
+0x62,0x53,0xC6,0xD0,0xD8,0xB2,0x8B,0x4D,0x74,0xE1,0xED,0xED,0x6C,0xB7,0xF9,0xAF,
+0x4C,0x7B,0xEE,0xD6,0x6B,0x1C,0x96,0xFE,0xB4,0x21,0xA5,0x65,0x17,0x5B,0x82,0x38,
+0x43,0x52,0xC7,0xF0,0x1E,0x9D,0x62,0x8B,0xF6,0x63,0x16,0x94,0x75,0xCC,0xE0,0xCD,
+0xA3,0xFD,0x68,0xBF,0xD0,0xB8,0x89,0x45,0x76,0xE3,0x9E,0x9C,0x52,0xAE,0xC7,0x88,
+0xDA,0xF7,0x62,0xCC,0x65,0x71,0xF5,0xF0,0xD9,0x4C,0x7E,0xD3,0x00,0x4D,0x95,0x39,
+0x39,0xA5,0x30,0x7D,0xA7,0x4A,0x0C,0x32,0x18,0x8D,0x17,0x7B,0xC8,0x0F,0x5D,0xB3,
+0xEE,0x1C,0x89,0x13,0x77,0x52,0xC4,0xE2,0x4E,0xDB,0xE0,0xDA,0xD1,0x74,0x44,0xD1,
+0xE1,0x35,0xA0,0x35,0xEF,0x80,0x8E,0x7A,0x8D,0x18,0xFA,0x03,0x37,0x7F,0xA2,0x3C,
+0xAB,0xE6,0x73,0xAC,0x85,0x1D,0x79,0x10,0x55,0xC0,0xE8,0xC9,0x93,0xC7,0x06,0x20,
+0x53,0x99,0x0C,0x2B,0xC9,0xC3,0xEB,0x5C,0x63,0xF6,0xFB,0xEC,0x84,0xD1,0x11,0x21,
+0x3B,0xB6,0x23,0x6C,0x08,0xAA,0x43,0x9D,0xB8,0x2D,0xBB,0x77,0x9F,0xD9,0x0A,0x32,
+0x45,0x8E,0x1B,0x2A,0xAD,0x33,0x7F,0x38,0x16,0x83,0x7A,0x18,0x71,0xD8,0xE4,0xDD,
+0x8B,0x09,0x9C,0x63,0x9F,0x34,0x4A,0x0A,0xEC,0x79,0x3F,0xA7,0xF9,0x5A,0x6C,0xD7,
+0xB5,0xEA,0x7F,0xBE,0xA0,0x0C,0x4D,0x35,0xA6,0x33,0x86,0x54,0x44,0x99,0xD1,0xA9,
+0xAF,0x29,0xBC,0x67,0x03,0xF2,0x10,0x96,0x5F,0xCA,0x91,0xBA,0x6D,0x96,0xF8,0x8F,
+0x64,0x8F,0x1A,0x0A,0x7D,0x2B,0xB7,0xE8,0x3F,0xAA,0x75,0x3E,0xF2,0x02,0x67,0x84,
+0xFC,0xC4,0x51,0xD9,0xCF,0xA4,0x8A,0x5A,0xE7,0x72,0x67,0xF4,0x92,0xE6,0x07,0x00,
+0x6B,0xA6,0x33,0x2C,0xBC,0x42,0x1F,0x29,0xA4,0x31,0xF5,0x25,0xF7,0x37,0x62,0xB4,
+0x41,0x41,0xD4,0xE1,0x84,0x3C,0x59,0x11,0x26,0xB3,0x0E,0x5C,0xBF,0xFD,0x2A,0x36,
+0xBF,0xE2,0x77,0xBC,0x0C,0xBE,0x53,0x99,0xDF,0x4A,0x19,0xB2,0xE5,0x14,0x70,0x85,
+0x8D,0xD5,0x40,0xB9,0x7C,0x0A,0x97,0xE9,0x8E,0x1B,0xA8,0x52,0x4F,0xC1,0xDA,0xFA,
+0x76,0x57,0xC2,0xC0,0x86,0x4F,0x28,0x13,0xB0,0x25,0xB1,0x75,0x21,0x48,0xB4,0x1D,
+0x5D,0x5E,0xCB,0xE2,0x6F,0x08,0x86,0xFA,0xDA,0x4F,0x2C,0x82,0x3E,0x54,0xAB,0x1E,
+0xCF,0x1D,0x88,0x33,0xF5,0xA9,0xBD,0x60,0x36,0xA3,0x5E,0x1C,0xCC,0x1B,0x59,0xA3,
+0x25,0xBA,0x2F,0x7E,0x45,0x55,0xF1,0xD0,0xA3,0x36,0xB3,0x64,0xB7,0xF7,0x22,0x34,
+0xFE,0xD7,0x42,0xC8,0xBE,0x31,0x6E,0x2B,0xF3,0x66,0x23,0xA4,0x41,0xAC,0xD4,0x99,
+0xB6,0x17,0x82,0x40,0xAE,0x61,0x2E,0x3B,0x20,0xB5,0x69,0x3D,0xAD,0xDE,0x38,0x07,
+0xC6,0xE8,0x7D,0xCF,0xE9,0xE7,0xEF,0x7C,0xFB,0x6E,0x29,0xA6,0x48,0x87,0xDD,0xBB,
+0xC2,0x27,0xB2,0x04,0x0E,0xCD,0x22,0x9B,0xE3,0x76,0x73,0xE4,0xFF,0x3D,0x6A,0xB6,
+0x51,0x8A,0x1F,0x3A,0x32,0xA7,0x74,0xA7,0xFD,0x68,0x4E,0xC7,0xA2,0x92,0x37,0x44,
+0x2B,0x70,0x53,0x60,0xA9,0xC1,0xB9,0x60,0x6F,0x80,0xE7,0x90,0xC4,0xDE,0x12,0x02,
+0xA1,0xB8,0x11,0xA8,0x68,0x69,0x78,0x09,0x54,0x42,0x1E,0x52,0x27,0x6F,0x40,0x50,
+0xDF,0x05,0xD2,0x15,0x86,0x86,0x96,0x08,0x83,0xFB,0x70,0xEB,0x5D,0xE2,0xB7,0xA7,
+0x9A,0x22,0xB0,0x32,0x06,0x8E,0x16,0x80,0xA6,0x35,0x9B,0x25,0xBD,0xAD,0x18,0x08,
+0xBD,0x1C,0xA9,0x0C,0x04,0xFF,0x14,0xF3,0xAC,0x3D,0x99,0x2D,0x7C,0xC2,0xB6,0xA6,
+0x2A,0x67,0x45,0x77,0xC4,0x77,0xD4,0xBB,0x02,0x8E,0x84,0x9E,0x52,0xC4,0x9E,0x8E,
+0x1B,0x75,0x66,0x65,0x57,0x6E,0x47,0x31,0xD6,0xCA,0x14,0xDA,0xBC,0x42,0xF6,0xE6,
+0x63,0xE0,0x8B,0xF0,0xBE,0xC0,0xAE,0x76,0xFB,0x1F,0xEC,0x0F,0xA4,0x8A,0x26,0x36,
+0xC5,0x89,0x44,0x99,0x9C,0xB5,0x8C,0x21,0x2A,0x7A,0x58,0x6A,0x95,0x71,0xEC,0xFC,
+0xBB,0x34,0x87,0x24,0xD6,0x46,0xC6,0x98,0x12,0x45,0x5F,0x55,0xAB,0xAC,0x0F,0x1F,
+0x20,0xEF,0xC7,0xFF,0xC8,0x65,0xD8,0xA5,0xB4,0xED,0x51,0xFD,0x25,0x7E,0x53,0x43,
+0xCF,0x01,0xC6,0x11,0x66,0x0A,0x76,0x64,0x2D,0x48,0x6D,0x58,0x5B,0x38,0x6B,0x7B,
+0x32,0xE3,0xD9,0xF3,0x25,0xDB,0x35,0xF6,0x03,0x60,0x6B,0x70,0xB5,0xBE,0x03,0x13,
+0x33,0xF4,0xCF,0xE4,0x13,0xFE,0x03,0xE5,0xDD,0x2C,0xF9,0x3C,0x4D,0x39,0x7C,0x6C,
+0xC3,0xA1,0x6A,0xB1,0x3E,0xC8,0x2E,0xFE,0x4C,0x92,0xD6,0x82,0xF0,0x01,0xF9,0xE9,
+0x2E,0x47,0x61,0x57,0xFD,0x11,0xED,0xE4,0x9E,0x0A,0x9C,0x1A,0xFF,0x27,0xD0,0xC0,
+0xE8,0x3F,0xDF,0x2F,0xFE,0x40,0xEE,0xB6,0x14,0x99,0x85,0x89,0x93,0xAB,0x30,0x20,
+0x0F,0x51,0x56,0x41,0xC0,0x67,0xD0,0xAF,0x51,0x63,0x3A,0x73,0x68,0xD2,0xB2,0xA2,
+0x24,0xCF,0xE3,0xDF,0x56,0x4E,0x46,0x10,0x22,0x61,0x4B,0x71,0x5F,0xF3,0xA4,0xB4,
+0x97,0x95,0x0A,0x85,0xAF,0xA0,0xBF,0x07,0xA0,0xE9,0x41,0xF9,0xA1,0xAE,0x07,0x17,
+0x12,0xE2,0xF8,0xF2,0x97,0xE6,0x87,0x79,0xBA,0x2A,0x98,0x3A,0xE2,0xCB,0x21,0x31,
+0xA6,0x87,0x29,0x97,0xD4,0x37,0xC4,0xEB,0x5C,0x59,0x0D,0x49,0x75,0x3E,0x43,0x53,
+0x9D,0x1D,0x88,0x0D,0x2F,0xA8,0x3F,0x8F,0xEC,0xE6,0x02,0xF6,0xB1,0x75,0xCC,0xDC,
+0x96,0x82,0x1C,0x92,0x4F,0x2C,0x5F,0x6B,0x35,0x98,0xA5,0x88,0x7A,0x18,0x6A,0x7A,
+0xA4,0x8F,0x23,0x9F,0x93,0xF6,0x83,0x6D,0xD3,0xEB,0x30,0xFB,0xDC,0x16,0xC2,0xD2,
+0x56,0xD2,0x8C,0xC2,0x8D,0xD5,0x9D,0x50,0xB9,0xD7,0x66,0xC7,0x4F,0x28,0x6F,0x7F,
+0x15,0xDD,0xC0,0xCD,0x50,0x2F,0x40,0x77,0x7F,0x4B,0x3C,0x5B,0xA8,0x52,0xF2,0xE2,
+0xA9,0x38,0x99,0x28,0x8B,0xB4,0x9B,0x37,0xF9,0x0C,0xFD,0x1C,0xD8,0xDD,0x0D,0x1D,
+0x26,0xC7,0xE9,0xD7,0xD3,0x76,0xC3,0xAD,0x4B,0xA0,0xE3,0xB0,0x3B,0x6C,0x5F,0x4F,
+0x8B,0x31,0xB2,0x21,0x83,0xB6,0x93,0x3D,0x2F,0x5B,0x7C,0x4B,0xE0,0xDA,0x32,0x22,
+0x0C,0x4E,0x4A,0x5E,0xAA,0x90,0xBA,0x32,0x16,0x8A,0x94,0x9A,0x43,0xF0,0xBB,0xAB,
+0xB1,0xBC,0x05,0xAC,0x46,0x0E,0x56,0x40,0xB7,0x10,0xAF,0x00,0xD1,0x21,0xF8,0xE8,
+0x4C,0x5E,0x1A,0x4E,0x1B,0xFC,0x0B,0xEF,0x04,0x52,0x5E,0x42,0x38,0x92,0xA2,0xB2,
+0xF4,0x9B,0x67,0x8B,0x85,0xD7,0x95,0x5A,0xC8,0xC6,0x06,0xD6,0x49,0xF2,0xB3,0xA3,
+0x25,0xD8,0xF5,0xC8,0xE8,0x61,0xF8,0x81,0x3C,0x6D,0x59,0x7D,0xD5,0xEA,0x37,0x27,
+0x47,0xC1,0x8E,0xD1,0x7E,0x48,0x6E,0x3E,0x20,0x72,0x5A,0x62,0xC5,0x31,0xFC,0xEC,
+0x8F,0x11,0x96,0x01,0x3A,0xD8,0x2A,0xEA,0xD7,0x24,0xFB,0x34,0x1E,0x87,0x91,0x81,
+0x2D,0x58,0x7D,0x48,0x6E,0x08,0x7E,0x6E,0x72,0x71,0x0B,0x61,0xE8,0xC9,0x29,0x39,
+0x95,0x9D,0x00,0x8D,0x77,0x6A,0x67,0x15,0x24,0xBD,0x91,0xAD,0xC9,0xE9,0x28,0x38,
+0x49,0x69,0x28,0x79,0x5C,0x3D,0x4C,0x69,0x3F,0x90,0xA7,0x80,0x84,0x45,0xC9,0xD9,
+0xB7,0x94,0x2B,0x84,0x3C,0xB9,0x2C,0x8D,0x7B,0x84,0xF7,0x94,0xDB,0x23,0xF0,0xE0,
+0x72,0xF3,0x89,0xE3,0xDC,0x35,0xCC,0xE1,0xAE,0x2E,0x88,0x3E,0x65,0xE5,0x88,0x98,
+0xE0,0xBF,0x57,0xAF,0x44,0x7F,0x54,0x33,0xBF,0x0B,0xBC,0x1B,0x13,0xB0,0xAB,0xBB,
+0x3F,0x54,0x63,0x44,0xD5,0x17,0xC5,0xCA,0x0E,0x5A,0x5C,0x4A,0x90,0x55,0xCD,0xDD,
+0x9F,0x15,0x82,0x05,0x9F,0xE4,0x8F,0x73,0x19,0xA3,0xB2,0xB3,0xA7,0x74,0xDB,0xCB,
+0x7D,0x4C,0x39,0x5C,0x3B,0xF8,0x2B,0xCB,0x74,0xAD,0xD1,0xBD,0x94,0x9E,0x02,0x12,
+0xCD,0x09,0xCC,0x19,0x36,0xCA,0x26,0xF4,0x9B,0x2B,0xB8,0x3B,0xFC,0xD9,0x2D,0x3D,
+0x03,0xF1,0xFA,0xE1,0xEE,0x00,0xFE,0xE6,0x2C,0xA6,0x82,0xB6,0xD0,0xCE,0x16,0x06,
+0x81,0xB9,0x30,0xA9,0xFA,0x50,0xEA,0xA2,0x42,0x55,0x1F,0x45,0xA3,0xBF,0x14,0x04,
+0x7B,0x64,0x17,0x74,0xF7,0x62,0xE7,0x9D,0x78,0x79,0x09,0x69,0x6C,0x19,0x7D,0x6D,
+0x53,0xE5,0xBE,0xF5,0x33,0xFA,0x23,0xC1,0x5E,0x4A,0x1C,0x5A,0x18,0x5D,0x4D,0x5D,
+0x10,0xEA,0xF2,0xFA,0x76,0x4A,0x66,0x34,0x01,0x73,0x7A,0x63,0xE7,0xEF,0x00,0x10,
+0x43,0xE1,0xAA,0xF1,0xD9,0x05,0xC9,0xD4,0x92,0xDE,0x44,0xCE,0x0F,0xB3,0xB4,0xA4,
+0x34,0xCB,0xF7,0xDB,0xDA,0x54,0xCA,0x86,0xCE,0x1A,0xDC,0x0A,0x85,0xAA,0x27,0x37,
+0xC7,0x81,0x4E,0x91,0x74,0x3B,0x64,0x47,0x9F,0xE4,0x73,0xF4,0x2E,0x93,0xB5,0xA5,
+0xBA,0x23,0x91,0x33,0x17,0xEE,0x07,0xF1,0x36,0x65,0x5B,0x75,0x0D,0xA2,0xA7,0xB7,
+0x13,0xF5,0xEE,0xE5,0xB1,0x83,0xA1,0x3A,0x58,0x96,0xC6,0x86,0x41,0xE1,0xA8,0xB8,
+0x78,0x7B,0x0B,0x6B,0xFF,0x60,0xEF,0x97,0xCD,0xE7,0x22,0xF7,0x1B,0xA3,0xB0,0xA0,
+0x36,0xC3,0xFD,0xD3,0x1E,0xCC,0x0E,0xDA,0x7E,0xA5,0xD3,0xB5,0x9C,0x8D,0x19,0x09,
+0xF1,0xAC,0x55,0xBC,0x49,0x4D,0x59,0x0C,0x06,0x41,0x4F,0x51,0x26,0x80,0xAE,0xBE,
+0xD4,0x9A,0x46,0x8A,0x5D,0x1D,0x4D,0x48,0x8A,0x0E,0x8C,0x1E,0xC2,0x04,0xCE,0xDE,
+0xEB,0x20,0xC3,0x30,0xD1,0x07,0xC1,0xDE,0x70,0x62,0x1A,0x72,0x62,0xD0,0xBA,0xAA,
+0x57,0xC5,0x9A,0xD5,0x8C,0xF5,0x9C,0x71,0x1F,0x7F,0x68,0x6F,0x1D,0x79,0x6C,0x7C,
+0x89,0x39,0xB8,0x29,0xDF,0x64,0xCF,0xB3,0x59,0x78,0x29,0x68,0xED,0xED,0x08,0x18,
+0x97,0x40,0x45,0xEF,0xE3,0xCA,0x4C,0xBB,0x02,0xA9,0x39,0x06,0x52,0x79,0xB9,0x16,
+0x00,0x3B,0xA9,0x94,0x23,0x42,0x8C,0xF3,0xAC,0x1A,0x24,0xB5,0x7C,0x7F,0x91,0x3E,
+0xDE,0xC7,0x8B,0x68,0x99,0x7D,0x36,0x76,0xFB,0x38,0x51,0x97,0xA4,0x37,0x01,0xAE,
+0xA6,0x52,0x66,0xFD,0x70,0xD3,0xDF,0x31,0xD6,0xED,0xA9,0x42,0xBC,0xFF,0xD1,0x7E,
+0x1C,0x9F,0x11,0x30,0x4F,0xD4,0xE0,0x09,0x54,0x65,0xA3,0xCA,0x27,0xD2,0x67,0xC8,
+0x96,0x57,0x53,0xF8,0x8E,0x7C,0x21,0x60,0x6F,0xA7,0x5A,0x08,0xC4,0x63,0x35,0x9A,
+0x27,0x05,0xB0,0xAA,0x21,0x33,0x8E,0x80,0xA6,0x12,0x26,0xBD,0xBD,0x10,0x3F,0x90,
+0x62,0x22,0xD2,0x8D,0xA1,0x3B,0x0E,0x08,0x83,0xDC,0xCD,0x73,0x5D,0x5F,0x90,0x3F,
+0x8E,0xD3,0xCF,0x7C,0x34,0x43,0x9B,0xE5,0xDD,0x0B,0x44,0xA4,0x4D,0x84,0x5B,0xF4,
+0x8F,0xC4,0xD9,0x6B,0x02,0x66,0xAD,0xF6,0x03,0x47,0xD6,0xE8,0xB5,0x03,0x24,0x8B,
+0x93,0x60,0x61,0xCF,0xDA,0xAC,0x75,0xE4,0x9E,0x2D,0x21,0x82,0xFF,0x9A,0xF7,0x58,
+0x7E,0x86,0x6A,0x29,0x19,0x75,0xB6,0xFE,0x4C,0xB5,0x6B,0x1A,0xF0,0xBC,0xDE,0x71,
+0x06,0x13,0x87,0xBC,0xF1,0xFB,0x5E,0x98,0x12,0x62,0xE2,0xCD,0xAB,0x11,0x28,0x87,
+0x78,0xAE,0x44,0x01,0xBB,0x08,0x14,0x21,0x2A,0x5D,0xE5,0xF2,0x95,0xCC,0xCB,0x64,
+0x72,0x26,0xC6,0x89,0x41,0xB7,0xEE,0x64,0x2D,0x6F,0xD0,0xC0,0x5B,0x85,0x4C,0xE3,
+0x9D,0xC8,0xC7,0x67,0xEF,0xD8,0x40,0xA5,0xB4,0xCA,0xEC,0x65,0x25,0xC3,0x74,0xDB,
+0x1B,0xA0,0x29,0x0F,0xF3,0x8A,0x5C,0xEB,0x5C,0x7E,0xB0,0xD1,0x75,0x83,0x64,0xCB,
+0xAF,0xC5,0xF8,0x6A,0xB0,0x5B,0x1F,0x79,0xBA,0x0D,0x25,0xA2,0xE2,0x76,0x06,0xA9,
+0x2B,0xA5,0x1C,0x0A,0x68,0x91,0xC7,0x6B,0x35,0xBF,0x18,0x10,0x7A,0xA5,0x4D,0xE2,
+0x20,0x3A,0x88,0x95,0x08,0x15,0xA7,0x8F,0xEC,0xC1,0xBF,0x6E,0xB1,0xC8,0xEB,0x44,
+0xB2,0x76,0x56,0xD9,0xE7,0xDA,0x48,0xAF,0x51,0x44,0x87,0xEB,0x68,0x6F,0x95,0x3A,
+0x55,0x18,0xDF,0xB7,0xD9,0xFD,0x76,0xB6,0x14,0xBE,0x38,0x11,0x93,0x16,0x17,0xB8,
+0x2A,0xB2,0x0A,0x1D,0x88,0x1D,0x27,0x07,0xA0,0xCE,0xFC,0x61,0xA1,0x13,0x20,0x8F,
+0x99,0xE8,0xE3,0x47,0x71,0xF3,0xDE,0x10,0x22,0x46,0xF6,0xE9,0x5F,0x4E,0x83,0x2C,
+0x36,0x16,0xB2,0xB9,0xA4,0x0B,0x0B,0x3D,0x2F,0x7C,0xC1,0xD3,0xE0,0x67,0x15,0xBA,
+0x9B,0xE0,0xE9,0x4F,0xF4,0xCB,0x5B,0xAD,0x4B,0x87,0x5E,0x28,0x3B,0xD1,0x78,0xD7,
+0x0C,0x9B,0x05,0x34,0x61,0xB3,0xCE,0x40,0xB7,0x37,0x12,0x98,0xD1,0x9C,0xDF,0x70,
+0xB1,0x69,0x4A,0xC6,0x8D,0x2D,0x22,0x32,0x16,0xAD,0x29,0x02,0x43,0x4D,0x9C,0x33,
+0xEB,0xF5,0x8C,0x5A,0xAA,0x68,0x05,0x50,0xB9,0xF0,0xDB,0x5F,0x4F,0x95,0x48,0xE7,
+0x19,0xA8,0x23,0x07,0xB4,0x4B,0x1B,0x6D,0xD3,0xCC,0x8D,0x63,0xDC,0xAB,0xE5,0x4A,
+0x14,0x1F,0x99,0xB0,0xAC,0x09,0x03,0x37,0xF9,0x2B,0x40,0x84,0xD8,0x60,0x2A,0x85,
+0xA8,0xFA,0xC0,0x55,0x77,0x92,0xD8,0x77,0x7F,0x6C,0x81,0xC3,0xA8,0xEF,0xD5,0x7A,
+0x90,0x7F,0x7D,0xD0,0x49,0xB5,0xE6,0x6E,0x72,0x56,0xB6,0xF9,0xE8,0x74,0x0E,0xA1,
+0x32,0x36,0x96,0x99,0x1D,0x65,0xB2,0xEA,0xD7,0x03,0x46,0xAC,0x1E,0x3A,0xB6,0x19,
+0xF4,0x4E,0x28,0xE1,0x7B,0x80,0xD4,0x69,0x3F,0xB7,0x1A,0x18,0x84,0xF8,0xEE,0x41,
+0x28,0xBA,0x00,0x15,0x50,0xD7,0xFF,0x15,0x24,0x9A,0x2C,0x35,0xC9,0x54,0x0F,0xA0,
+0x49,0xBC,0x67,0x13,0xA2,0x6A,0x0D,0x5A,0xC8,0xE1,0xBB,0x4E,0x49,0x4F,0x94,0x3B,
+0xF1,0x79,0x1A,0xD6,0x3C,0x41,0x93,0xEF,0x04,0x75,0xE3,0xDA,0x38,0x2F,0x85,0x2A,
+0xFA,0xE6,0x8E,0x49,0x59,0xF5,0xF6,0x3E,0x20,0x55,0xE7,0xFA,0xC5,0x8C,0xDB,0x74,
+0x98,0xFF,0xF5,0x50,0xCF,0xDC,0x60,0x81,0x3C,0x4A,0xE4,0xE5,0xD5,0x57,0x10,0xBF,
+0xC0,0x6B,0x39,0xC4,0x1C,0x45,0xB3,0xCB,0x74,0x8A,0x6C,0x25,0x94,0x23,0x25,0x8A,
+0x22,0x32,0x82,0x9D,0xB8,0x59,0x17,0x73,0x19,0x84,0x0F,0x2B,0xA7,0xC9,0xFC,0x53,
+0xBE,0xD6,0xFA,0x79,0xC9,0xBD,0x66,0xE6,0x2C,0x81,0x3F,0x2E,0xD0,0x73,0x31,0x9E,
+0x70,0x2E,0xCC,0x81,0x11,0x77,0xBE,0xF4,0x9B,0x0C,0x05,0xA3,0xFC,0x64,0x0A,0xA5,
+0xCF,0xD4,0x89,0x7B,0xFB,0x88,0x54,0xE1,0xAE,0x09,0x35,0xA6,0x65,0x58,0xAF,0x00,
+0x0A,0xB3,0x2B,0x1C,0x1B,0x04,0xB4,0x8D,0x7B,0xA3,0x4A,0x0C,0xDB,0x9E,0xD7,0x78,
+0x82,0x73,0x63,0xDC,0xF2,0xAA,0x5D,0xCA,0x0E,0x7D,0xE1,0xD2,0x90,0xE8,0xEA,0x45,
+0x5D,0x98,0x57,0x37,0x63,0xC2,0xCC,0x33,0xBF,0x2C,0x01,0x83,0x13,0x0D,0x8C,0x23,
+0x89,0xEC,0xF7,0x43,0xFD,0xE9,0x52,0x86,0xCE,0x3D,0x61,0x92,0x85,0x17,0x00,0xAF,
+0xFE,0xC6,0xAA,0x69,0xFE,0xB8,0x51,0xD4,0x92,0xF9,0xF9,0x56,0x0F,0x0E,0x93,0x3C,
+0x07,0x04,0x91,0xAB,0x30,0x53,0x9F,0xF1,0x36,0x42,0xE6,0xED,0x0D,0x1F,0x80,0x2F,
+0x7A,0xA6,0x4E,0x09,0x53,0x86,0xFC,0x47,0x9F,0xC3,0xCE,0x6C,0x2E,0x2E,0x92,0x3D,
+0xC6,0x43,0x17,0xEC,0xD0,0xDF,0x7F,0x9D,0x78,0x5E,0xB4,0xF1,0x6C,0xA4,0x5A,0xF5,
+0x3C,0x9E,0x30,0x31,0xDD,0xED,0x72,0xA2,0x42,0x72,0xA2,0xDD,0xA3,0x02,0x33,0x9C,
+0xAD,0xCD,0xF2,0x62,0x51,0xF7,0xFE,0x34,0x01,0x54,0xC7,0xFB,0xE7,0x52,0x27,0x88,
+0xEE,0xC2,0xBE,0x6D,0x14,0x47,0xBB,0xC1,0x5E,0x6D,0xA1,0xC2,0x18,0xE0,0x6A,0xC5,
+0x56,0x07,0xC3,0xA8,0xF6,0xBA,0x59,0xDE,0x70,0x45,0xA7,0xEA,0x62,0x6D,0x9D,0x32,
+0x69,0xBD,0x46,0x12,0x7A,0xA0,0xD5,0x48,0x8A,0x29,0x31,0x86,0xC2,0xB9,0xE9,0x46,
+0x34,0x1E,0xB8,0xB1,0xF8,0xD9,0x57,0xB3,0x59,0x5F,0x94,0xF0,0xED,0x50,0x2F,0x80,
+0xEA,0xE2,0x9A,0x4D,0xAB,0x48,0x04,0x71,0x1F,0x58,0xD5,0xF7,0x1D,0xC4,0x4B,0xE4,
+0xC5,0x5C,0x0B,0xF3,0xD8,0xDD,0x77,0x97,0xCD,0xC0,0x9F,0x6F,0x1B,0x1E,0x97,0x38,
+0xAE,0xD2,0xEE,0x7D,0x96,0x3E,0x39,0x3A,0x58,0xB1,0x7B,0x1E,0x41,0x5C,0x8F,0x20,
+0x4C,0x8B,0x55,0x24,0x6E,0xF0,0xC1,0x0C,0x06,0x66,0xF2,0xC9,0x26,0x3D,0x89,0x26,
+0x8B,0xE4,0xFD,0x4B,0x39,0x71,0x96,0xDA,0x7E,0x82,0x6E,0x2D,0x9C,0x30,0x3E,0x91,
+0x2E,0xC0,0x65,0x63,0x7D,0xDC,0x2C,0x97,0x7F,0xF3,0x34,0x4A,0xB2,0xF9,0x49,0x3D,
+0x50,0x67,0x1B,0xBA,0x10,0x7A,0xE7,0x31,0xE0,0xF8,0xAB,0xDE,0xD2,0x99,0xCD,0xD9,
+0xEF,0x68,0xA4,0x0A,0x5B,0xF5,0x23,0xBE,0x7A,0xC3,0x31,0x7F,0x29,0x62,0x52,0xBD,
+0x9C,0xFD,0xD7,0xEC,0xAE,0x97,0xB4,0xDC,0x1F,0x77,0x54,0xAE,0x6A,0x21,0x83,0x2F,
+0x5F,0x24,0x14,0xF6,0xCB,0xB1,0xF7,0xFA,0x68,0xF2,0x23,0x5C,0x52,0x19,0xC5,0x51,
+0xD7,0x2E,0x9C,0x74,0x96,0x12,0x09,0x59,0x32,0x41,0x79,0xB5,0xAB,0xE0,0x2B,0x46,
+0xD5,0x5F,0x9E,0x07,0xB7,0x04,0x3E,0x4F,0xAC,0x6A,0xE7,0x00,0x3D,0x76,0x02,0xF9,
+0x2F,0xE0,0x64,0x42,0xCE,0x86,0xC5,0xCD,0xC2,0x8D,0x89,0x89,0x03,0x48,0x25,0xE0,
+0xA6,0xCA,0xED,0xE1,0x44,0x4E,0x87,0x05,0x41,0xD4,0x0A,0x53,0xBB,0xF0,0x6B,0x16,
+0x3C,0xF1,0x77,0x40,0x95,0x0D,0x15,0x46,0xB3,0x69,0xF8,0x1C,0x57,0x1C,0xF5,0x64,
+0xED,0x19,0xA6,0x79,0xBF,0x84,0xB6,0xCF,0xCC,0xEE,0x87,0xE4,0x7E,0x35,0xD3,0x6B,
+0x16,0x86,0x5D,0x1D,0x09,0xE9,0x6D,0xA2,0x3A,0x43,0x71,0xBF,0x2E,0x65,0x13,0xFB,
+0xBA,0x98,0xF1,0xAF,0xB8,0xBB,0x8E,0xF0,0xC5,0xCC,0x8E,0xCF,0x76,0x3D,0xD1,0x61,
+0xFD,0x59,0xB6,0x29,0x37,0x44,0xFE,0x0F,0x20,0x70,0x6B,0x96,0xAD,0xE6,0x4A,0x21,
+0x61,0x03,0x2A,0xEF,0x4D,0xD9,0x19,0x92,0x2F,0x33,0x64,0xDA,0x70,0x3B,0xB0,0x06,
+0x5D,0x55,0x16,0x85,0x73,0x74,0x8A,0x3F,0x72,0xC1,0x39,0x75,0x6E,0x25,0x93,0x3B,
+0xA9,0x89,0xE2,0xAD,0xEF,0x90,0xF2,0xDB,0x1D,0x06,0x56,0xDD,0x43,0x08,0xA5,0x20,
+0x7C,0x71,0x37,0x80,0x27,0x40,0xEA,0x0B,0x88,0x7E,0xC3,0x30,0xAA,0xE1,0x0B,0x67,
+0x38,0xE1,0x73,0x54,0xA1,0x28,0x04,0x63,0x9A,0x4F,0xD1,0x13,0x39,0x72,0x12,0xED,
+0x8B,0xFC,0xC0,0xFA,0xA7,0x00,0x2A,0x4B,0xE1,0xD8,0xAA,0xFF,0xF9,0xB2,0x9A,0xA5,
+0x83,0xFE,0xC8,0xF0,0xC8,0xAE,0xEB,0xE5,0xDF,0xFF,0x94,0xE6,0xFB,0xB0,0xEB,0xD6,
+0x4D,0x15,0x06,0xD5,0x87,0x01,0x0B,0x4A,0xF8,0xBA,0xB3,0x84,0x7B,0x30,0xE3,0x5E,
+0xF4,0x7B,0xBF,0x02,0x0A,0xF6,0x71,0xBD,0x45,0xC4,0x0E,0x47,0x95,0xDE,0x0C,0x5F,
+0x36,0x82,0x7D,0x39,0xBB,0xA4,0x92,0xEF,0x8D,0x4E,0xC6,0x05,0x54,0x1F,0xA4,0x36,
+0xBC,0xF9,0xF7,0xC8,0x42,0x66,0xA9,0x2D,0xBA,0x4B,0xF1,0x37,0x00,0x4B,0x74,0xB2,
+0x24,0xB3,0x6F,0x1A,0x64,0x4F,0xA6,0x04,0x5C,0xA6,0x17,0x3C,0xC3,0x88,0xAD,0xA8,
+0x9A,0x9C,0xD1,0x8B,0x5C,0xCA,0x1B,0x81,0x09,0x56,0x42,0x99,0xEE,0xA5,0x9B,0xB3,
+0xD6,0x0E,0x9D,0x55,0xDB,0xB5,0xE3,0xFE,0x1E,0x57,0x55,0x8F,0xD8,0x93,0xBE,0xA0,
+0xFE,0x08,0xB5,0x7B,0x5D,0xDD,0x0D,0x96,0xFC,0xAA,0xB7,0x90,0x9B,0xD0,0x6F,0x32,
+0x5B,0x34,0x10,0xE2,0x1B,0xE5,0x73,0xAE,0x12,0x45,0x59,0x91,0x35,0x7E,0x00,0xF3,
+0xF3,0x3A,0xB8,0x44,0xC9,0xB9,0xFD,0xF2,0xC9,0xDE,0x82,0xD1,0x2B,0x60,0x23,0xCE,
+0xCC,0x3D,0x87,0x7C,0x14,0x5A,0xC3,0x11,0x74,0xA0,0x3F,0x12,0x61,0x2A,0xD0,0x77,
+0xD3,0x3E,0x98,0x60,0xC7,0x11,0x5B,0x5A,0xDE,0xDF,0x95,0xC7,0xEA,0xA1,0x8B,0xA7,
+0x52,0x16,0x19,0xC9,0xF6,0x03,0x78,0x48,0x7C,0xA2,0x37,0x18,0x89,0xC2,0x5E,0x11,
+0xAC,0xB9,0xE7,0x98,0xCF,0x91,0xD3,0xDA,0x36,0x51,0x7D,0xA1,0x27,0x6C,0x31,0xD0,
+0x68,0x21,0x23,0xC4,0xD6,0x02,0x59,0x49,0x1C,0x26,0x57,0xFC,0x24,0x6F,0x60,0x82,
+0xC5,0x1F,0x8E,0x57,0x8A,0xB6,0xB1,0xFD,0x17,0x75,0x5C,0xA4,0x8B,0xC0,0x2F,0x62,
+0xFC,0x79,0xB7,0x08,0x38,0xFB,0x4E,0xB0,0x18,0x36,0x53,0xE8,0xCE,0x85,0x9F,0x97,
+0xCF,0x6C,0x84,0x2E,0x7C,0xCB,0x3A,0x80,0x99,0x1E,0xD2,0x41,0x0A,0x41,0x07,0xCB,
+0xE3,0x7A,0xA8,0x14,0xDA,0xA2,0xF5,0xE9,0x44,0xE4,0x0F,0x66,0x07,0x4C,0x35,0xF4,
+0xCE,0x4C,0x85,0x0F,0x88,0xBE,0xBB,0xF5,0xC4,0xEC,0x8F,0xEE,0x22,0x69,0x01,0xE5,
+0xC9,0x0D,0x82,0x49,0x1C,0xDA,0x4B,0x91,0x38,0x32,0x73,0xCC,0x71,0x3A,0x90,0x27,
+0xD4,0x7F,0x9F,0x26,0xB5,0x0C,0x34,0x47,0xDD,0x8E,0x96,0x95,0x2C,0x67,0x62,0x88,
+0xB8,0xE9,0xF3,0xDC,0x61,0x78,0x94,0x33,0x67,0xB1,0x2C,0x10,0xA0,0xEB,0x78,0x1E,
+0xF7,0x2A,0xBC,0x50,0xE5,0x18,0x70,0x53,0x51,0x94,0x1A,0x03,0xB4,0xFF,0x28,0x5A,
+0x13,0xB6,0x58,0x28,0xE8,0xAF,0xCA,0xE4,0x3E,0x53,0x75,0xAB,0xE3,0xA8,0xA9,0x8C,
+0x51,0x47,0x1A,0x9B,0xC6,0x06,0x4D,0x4D,0x86,0x1D,0xCD,0x5D,0x02,0x49,0x05,0xC1,
+0x20,0xA3,0x6B,0x0E,0x84,0x1E,0x17,0x55,0x08,0x76,0x43,0xB8,0x4C,0x07,0xE6,0x6C,
+0x26,0xC2,0x6D,0x69,0x20,0x7F,0xD2,0x34,0x94,0x2C,0xDF,0x7E,0xA1,0xEA,0x58,0x3F,
+0x0B,0xF4,0x40,0x72,0x8C,0x9E,0x9F,0xD5,0x60,0xF0,0x2B,0x56,0x8A,0xC1,0x0F,0x43,
+0xC7,0x6E,0x8C,0x24,0xAC,0x9F,0xBE,0xD4,0xA5,0x48,0xEE,0x2B,0x93,0xD8,0x6D,0x38,
+0x92,0x9E,0xD9,0x81,0xE2,0x27,0x48,0x6C,0xEC,0xEA,0xA7,0xC0,0xC7,0x8C,0xBD,0xBC,
+0xC4,0x3F,0x8F,0x76,0x54,0x4A,0x93,0x01,0x3C,0x22,0x77,0xD8,0x83,0xC8,0x2D,0x68,
+0xDB,0x3C,0x90,0x6A,0x8F,0x81,0x83,0xCA,0x25,0x40,0x6E,0xA3,0x15,0x5E,0x04,0xD7,
+0x70,0x63,0x3B,0x9E,0x97,0x05,0x1F,0x4E,0x66,0x91,0x2D,0x31,0x78,0x33,0xB2,0x0C,
+0xE4,0x3B,0xAF,0x52,0xF7,0x14,0x6E,0x5F,0xA3,0x29,0xE8,0x4C,0xE6,0xAD,0x99,0xB9,
+0x10,0xE7,0x5B,0x7A,0xAB,0xA0,0x86,0xEB,0x0C,0x66,0x47,0xAC,0x13,0x58,0x65,0xB0,
+0x9D,0xDD,0xD6,0xCD,0xBC,0x9B,0xAA,0xD0,0xF4,0xA8,0xBF,0x9A,0xCB,0x80,0xAF,0xA2,
+0x1B,0xB4,0x50,0x22,0xFB,0xB4,0xC2,0xFF,0xB1,0x18,0xFA,0x6F,0xC6,0x8D,0x9D,0x9D,
+0x15,0xD7,0x5E,0x4F,0x11,0x6D,0xF1,0x26,0xE8,0xFA,0xA3,0xD4,0x62,0x29,0x81,0x25,
+0xEC,0x39,0xA7,0x58,0x30,0x7B,0xC6,0x30,0xA9,0x5A,0xE2,0x35,0x28,0x63,0x72,0x9C,
+0xBD,0xD9,0xF6,0xE9,0xD5,0x1D,0x45,0x56,0x42,0x85,0x09,0x01,0xB9,0xF2,0x1A,0x65,
+0x98,0xED,0xD3,0xF8,0x80,0x3E,0x33,0x75,0x0E,0x17,0x45,0xDF,0x21,0x6A,0x50,0xB7,
+0x32,0x92,0x79,0x2D,0x46,0x46,0x8D,0x0D,0x69,0xD2,0x22,0x7D,0xC1,0x8A,0xDC,0xDB,
+0x68,0xB9,0x63,0xA1,0x94,0x5E,0x8C,0x78,0x5E,0xA7,0x4B,0xBF,0x6E,0x5F,0x83,0x9B,
+0x27,0x16,0x83,0x0E,0x5A,0xB5,0x42,0x5D,0xD6,0x27,0x43,0x3F,0x0C,0x1A,0xA4,0xBC,
+0xAA,0xE1,0xF9,0xF9,0xE3,0xDB,0xFB,0x8A,0xD7,0xC9,0xAC,0xD1,0xCF,0x64,0x19,0x01,
+0x1B,0xB3,0x1A,0xAB,0x21,0x22,0x39,0xB1,0xBE,0x08,0x04,0x10,0x8D,0xEE,0xD1,0xC9,
+0x4F,0x87,0x7A,0x9F,0xBE,0x29,0xA6,0x25,0xA8,0x1F,0x05,0x07,0x55,0xA6,0x41,0x59,
+0x87,0x57,0x62,0x4F,0x6B,0xD1,0x73,0x08,0xEF,0xF6,0xAB,0xEE,0xB8,0xDE,0xD4,0xCC,
+0x01,0x3F,0x8C,0x27,0x2F,0x41,0x37,0xDC,0x65,0x65,0xB2,0x7D,0x9B,0xEF,0xC6,0xDE,
+0x07,0x17,0xA2,0x0F,0x9C,0x5C,0x84,0x72,0x2D,0xA5,0x3A,0xBD,0x77,0x78,0xBD,0xA5,
+0xFD,0xCA,0x85,0xD2,0xE9,0xA8,0xF1,0xF3,0xBA,0xC7,0xCF,0xDF,0x18,0x0A,0xA0,0xB8,
+0xBB,0xF2,0xFB,0xEA,0x4C,0x94,0x54,0x6A,0x7B,0x69,0xA0,0x71,0x19,0xE5,0x4E,0x56,
+0x69,0xAE,0x75,0xB6,0xE4,0x9A,0xFC,0xCC,0x46,0x77,0x83,0x6F,0x59,0x7E,0x95,0x8D,
+0xB4,0x4D,0x4B,0x55,0xDB,0x9D,0xC3,0xF4,0xFF,0x3D,0x70,0x25,0x9A,0x00,0x28,0x30,
+0xE2,0x71,0x21,0x69,0xAB,0x59,0xB3,0x40,0x3A,0x5C,0xD4,0x44,0xBF,0xEB,0xE6,0xFE,
+0xC4,0x58,0x2E,0x40,0x33,0x13,0x2B,0x92,0x20,0x9F,0x0D,0x87,0xB4,0x06,0x00,0x18,
+0xFC,0xDD,0x93,0xC5,0x8D,0x3C,0x95,0x03,0x3B,0xB2,0x3B,0xAA,0x11,0xF6,0x55,0x4D,
+0x7B,0xA2,0x6B,0xBA,0xC1,0xAE,0xD9,0xDD,0x28,0x84,0x1E,0x9C,0x07,0xF7,0x42,0x5A,
+0x6B,0xA6,0x7F,0xBE,0x48,0x84,0x50,0x7E,0xD9,0x0E,0x65,0x16,0xD4,0x52,0x34,0x2C,
+0x36,0x05,0x81,0x1D,0xC0,0x8E,0xD8,0xFC,0xCE,0xF7,0x8B,0xEF,0x3D,0xE1,0x6E,0x76,
+0x17,0x13,0xB6,0x0B,0xC2,0xFF,0xDA,0x8F,0x71,0x61,0xA2,0x79,0x88,0xCA,0xF0,0xE8,
+0x6E,0x91,0x4D,0x89,0x38,0x40,0x20,0xCA,0x68,0x5F,0x85,0x47,0x01,0x2D,0x9E,0x86,
+0xDD,0xCB,0xA4,0xD3,0x39,0x60,0x21,0xEB,0xB5,0xEE,0xE9,0xF6,0xC2,0x53,0x23,0x3B,
+0xB0,0x6D,0x6F,0x75,0x47,0xC7,0x5F,0x32,0x51,0x8E,0x6D,0x96,0x56,0x58,0xBC,0xA4,
+0xFB,0xE2,0xAB,0xFA,0xF8,0xC8,0xE0,0x82,0x35,0x75,0xF2,0x6D,0xF7,0x63,0x26,0x3E,
+0x0E,0x80,0x3C,0x98,0x8B,0x5D,0x93,0x64,0xA7,0x36,0x23,0x2E,0x26,0xD7,0x43,0x5B,
+0x18,0xAC,0x06,0xB4,0xAD,0x38,0xB5,0x27,0xE9,0x2A,0x71,0x32,0x47,0x6C,0x99,0x81,
+0x97,0x53,0x76,0x4B,0xEA,0xF9,0xF2,0xA1,0xA9,0xF1,0xEA,0xE9,0x1E,0xD0,0x7C,0x64,
+0xED,0xCE,0x91,0xD6,0x76,0xA3,0x6E,0x67,0x8E,0x2C,0x10,0x34,0x52,0x93,0x73,0x6B,
+0xD3,0x63,0x02,0x7B,0x4A,0xF5,0x52,0x0D,0xB3,0x32,0x33,0x2A,0xFD,0x61,0x2E,0x36,
+0xE4,0x59,0x0F,0x41,0xB1,0x6A,0xA9,0x69,0x9E,0xE7,0xCB,0xFF,0xDB,0x74,0x1D,0x05,
+0x35,0x1A,0x9D,0x02,0x2B,0x51,0x33,0xC8,0xEC,0x0B,0x55,0x13,0x94,0xC9,0xEF,0xF7,
+0x1F,0x93,0x3E,0x8B,0xFA,0xB9,0xE2,0xF1,0xE3,0x22,0x73,0x3A,0x6C,0x4E,0x90,0x88,
+0xA9,0xFE,0xE5,0xE6,0x01,0x26,0x19,0x95,0x73,0x72,0xB3,0x6A,0x37,0xE3,0x66,0x7E,
+0xF4,0x5D,0x1B,0x45,0xD3,0x9F,0xCB,0xFE,0xE0,0xDF,0x8D,0xC7,0x50,0x82,0x60,0x78,
+0x2F,0x96,0x0B,0x8E,0xCC,0x9C,0xD4,0xE2,0x5F,0x49,0xA4,0x51,0x2B,0xE0,0x79,0x61,
+0x37,0x12,0x97,0x0A,0x67,0xC3,0x7F,0x16,0x84,0x24,0x12,0x3C,0xB9,0x31,0x3A,0x22,
+0x57,0x03,0xE6,0x1B,0xF3,0x9B,0xEB,0xDA,0x31,0xBA,0x39,0xA2,0xC4,0x89,0xFF,0xE7,
+0x80,0x68,0x5A,0x70,0x31,0x62,0x29,0xE1,0xB7,0xFD,0xF8,0xE5,0xF6,0x8C,0xC8,0xD0,
+0x2C,0x89,0x17,0x91,0x1C,0x54,0x04,0xFA,0xCB,0xD6,0xAF,0xCE,0xDE,0x50,0x3C,0x24,
+0x0C,0x88,0x36,0x90,0xD0,0xCE,0xC8,0xAC,0xB0,0xCF,0xCD,0xD7,0xA3,0xE8,0xF9,0xE1,
+0x42,0x30,0xC0,0x28,0x85,0x3E,0x9D,0x09,0x34,0x9B,0x1D,0x83,0x48,0x4A,0xB0,0xA8,
+0x90,0x6C,0x4E,0x74,0xFB,0x99,0xE3,0xD0,0x14,0x74,0xD2,0x6C,0xBD,0xFA,0xF5,0xED,
+0x75,0x0A,0xCD,0x12,0xAA,0x79,0xB2,0x61,0xED,0xE5,0xBA,0xFD,0x89,0x25,0x1E,0x06,
+0x20,0x29,0xBB,0x31,0x8F,0x4D,0x97,0x70,0x3F,0x7D,0xF0,0x65,0x57,0xB7,0x52,0x4A,
+0xE6,0x51,0x05,0x49,0x25,0x32,0x3D,0xA5,0x53,0x9D,0x7C,0x85,0xF5,0x72,0x35,0x2D,
+0x0B,0xB7,0x0E,0xAF,0x07,0x47,0x1F,0xF2,0x38,0x4F,0xC5,0x57,0x24,0xC6,0x50,0x48,
+0x1C,0x8C,0x22,0x94,0x8A,0x7D,0x92,0x45,0x2A,0x97,0x0F,0x8F,0x12,0x08,0xA8,0xB0,
+0x5B,0xA3,0x4A,0xBB,0x0C,0x14,0x14,0xAA,0x15,0x9A,0x3D,0x82,0xE7,0xB8,0xED,0xF5,
+0xB1,0x7A,0x79,0x62,0x02,0x77,0x1A,0xC7,0xAD,0x3E,0x21,0x26,0x5C,0x5A,0xB4,0xAC,
+0x2A,0xA1,0x39,0xB9,0xD2,0xBF,0xCA,0xDF,0xEA,0xD7,0x8F,0xCF,0x2C,0xD5,0x4B,0x53,
+0x98,0xEC,0xC6,0xF4,0xEB,0xD9,0xF3,0x80,0x1F,0x92,0x3F,0x8A,0x60,0x96,0x44,0x5C,
+0xDC,0xDC,0xB2,0xC4,0xD8,0xCC,0xC0,0xA6,0x43,0x56,0xA7,0x4E,0xC9,0xBE,0xC5,0xDD,
+0x7A,0xB5,0x7D,0xAD,0xF4,0xDA,0xEC,0x9C,0x7C,0x5B,0x95,0x43,0xEE,0x44,0x18,0x00,
+0x67,0x06,0xD3,0x1E,0xC4,0x9E,0xDC,0xE8,0x2F,0xB6,0x2B,0xAE,0x4F,0x7F,0x82,0x9A,
+0x56,0x14,0xF0,0x0C,0x45,0xB6,0x5D,0x41,0x99,0xD5,0xFE,0xCD,0x90,0x02,0x20,0x38,
+0x6F,0x86,0x5B,0x9E,0xBB,0x19,0xA3,0x10,0x58,0x7B,0x91,0x63,0x29,0xF1,0x6A,0x72,
+0x76,0x15,0xD1,0x0D,0x7F,0x81,0x67,0x4C,0x0A,0x78,0xC0,0x60,0x74,0x86,0x40,0x58,
+0x45,0x0F,0xF8,0x17,0xE0,0x8A,0xF8,0xD8,0xD2,0xE8,0x88,0xF0,0x8B,0x34,0x0D,0x15,
+0x48,0xB8,0x42,0xA0,0x04,0x16,0x1C,0xA0,0x04,0xBF,0x09,0xA7,0x23,0xF3,0x62,0x7A,
+0x66,0x11,0xC5,0x09,0x46,0xE7,0x5E,0x13,0x49,0x5E,0xA5,0x46,0xD5,0xBD,0xDA,0xC2,
+0x24,0x09,0x9F,0x11,0x37,0x03,0x2F,0x86,0xE4,0x10,0x46,0x08,0x30,0xD6,0x54,0x4C,
+0x28,0xA9,0x33,0xB1,0xD9,0xEC,0xC1,0x87,0x6D,0x7E,0xA1,0x66,0x66,0x4C,0x98,0x80,
+0xBC,0xCD,0xC3,0xD5,0xDE,0xAD,0xC6,0xC1,0xAF,0x2D,0x30,0x35,0x44,0x92,0x64,0x7C,
+0x15,0x1B,0xBC,0x03,0xC3,0xDF,0xDB,0xAE,0x00,0x70,0xC2,0x68,0x1D,0x2E,0x81,0x99,
+0xC1,0x6F,0x1C,0x77,0xAF,0x49,0xB7,0x54,0x96,0xFC,0xD8,0xE4,0x98,0x11,0x3B,0x23,
+0x2E,0xCC,0x23,0x84,0xBB,0xDC,0x01,0x54,0x1A,0xF5,0x71,0xE2,0xB5,0x91,0x5A,0xAD,
+0x96,0x68,0x87,0x98,0xE2,0x67,0xE3,0x0D,0xC3,0x2C,0x42,0x08,0xBB,0xFC,0x54,0xCE,
+0x03,0x19,0xF6,0x7C,0x06,0x1F,0x7F,0xE9,0x0E,0xE1,0x35,0xB2,0xBE,0xC9,0x51,0xFE,
+0x11,0xC1,0x2E,0xB6,0xFE,0x29,0xB1,0x11,0x35,0xDA,0x19,0xA5,0x33,0x7E,0xDC,0xC4,
+0x04,0x2B,0xC4,0x49,0x04,0x6C,0x0E,0xEB,0x90,0x7F,0x80,0x99,0x36,0x4B,0xD9,0xF4,
+0x68,0xCB,0x24,0xC5,0x63,0xCE,0xCB,0x8C,0xE8,0x07,0x3E,0x5F,0x9C,0x9E,0x73,0x8B,
+0x2F,0x22,0xCD,0x6B,0xA3,0x86,0x43,0x4C,0xD5,0x3A,0x75,0x29,0x42,0xEB,0xAD,0x20,
+0xD6,0xB3,0x5C,0x03,0x48,0xB2,0x9C,0xA7,0xB3,0x5C,0xF6,0xCC,0x13,0x5A,0xFC,0xC0,
+0x8B,0x99,0x76,0x74,0xAF,0x98,0x51,0x40,0x31,0xDE,0x0D,0xB5,0x69,0x97,0x86,0x77,
+0x0F,0xCD,0x22,0xA4,0xE6,0x73,0xF3,0x09,0x89,0x66,0xFB,0xFB,0x3C,0x32,0xD3,0x87,
+0x8C,0xAB,0x44,0x41,0x9E,0xCD,0x35,0x71,0xD1,0x3E,0x61,0x39,0x88,0xDA,0x67,0xDB,
+0xF0,0x80,0x6F,0x16,0x6A,0xE5,0xE9,0x85,0x30,0xDF,0x2C,0x95,0xA5,0xC1,0x4A,0xED,
+0xBF,0x72,0x9D,0xAB,0x6C,0x82,0x88,0x83,0xAB,0x44,0xAC,0x8E,0xDE,0x2D,0x31,0x7A,
+0x0A,0xEC,0x03,0x80,0xA9,0xFF,0x30,0x46,0xBA,0x55,0xDD,0xEE,0x4A,0xE1,0xA5,0x22,
+0xDB,0x89,0x66,0x34,0x36,0x6B,0x3B,0xD9,0xE4,0x0B,0x20,0x4D,0x6A,0xC5,0x85,0x26,
+0x64,0x1F,0xF0,0x1D,0x2F,0x10,0x59,0xC0,0x2F,0xC0,0x30,0x96,0x75,0xD9,0x9A,0x25,
+0x3B,0x26,0xC9,0x7B,0xD7,0x26,0x97,0x38,0xA2,0x4D,0x87,0xAC,0x7A,0x95,0x95,0x66,
+0xAD,0xAA,0x45,0x61,0x6D,0xA3,0xA8,0x82,0xD6,0x39,0x27,0x78,0x16,0x6F,0xF9,0xF0,
+0x56,0x28,0xC7,0x18,0xCE,0x5D,0xF5,0x21,0x10,0xFF,0x08,0x91,0x60,0xBC,0x8F,0x55,
+0x94,0x7B,0x94,0x89,0x32,0x7F,0x2B,0xDD,0x74,0x9B,0xF8,0x05,0x67,0xFA,0x88,0x14,
+0x72,0x08,0xE7,0x1C,0x8C,0xEE,0x04,0x63,0xA8,0x47,0xFE,0xDF,0xFF,0x28,0x10,0x5E,
+0xDF,0x46,0xA9,0xFF,0x02,0x0B,0x6F,0xED,0xB0,0x5F,0xA4,0x9D,0x8E,0xBD,0x61,0xBA,
+0xE9,0xBE,0x51,0x31,0x5B,0xB0,0x8D,0xB4,0xB6,0x59,0xC3,0xFC,0x59,0xE3,0xB6,0x33,
+0x3F,0xE9,0x06,0xB0,0x34,0x18,0x4A,0xDB,0x01,0xEE,0x79,0xF1,0xBD,0x9B,0x52,0xAF,
+0x63,0x2D,0xC2,0x28,0x3C,0x12,0x48,0xD3,0x3F,0xD0,0x60,0xD6,0x02,0x2B,0xED,0xA0,
+0x31,0x2E,0xC1,0x79,0x16,0x4F,0x3F,0xF9,0xAC,0x43,0xEA,0xCF,0xC6,0x77,0x29,0x38,
+0x14,0xE0,0x0F,0x92,0xD4,0x74,0xC6,0x3B,0xBF,0x50,0xE8,0xDE,0x7D,0xD3,0x92,0x27,
+0xA2,0x83,0x6C,0x47,0x76,0xAB,0xBB,0x99,0xAD,0x42,0xCB,0xEF,0xFC,0x7A,0x13,0x0F,
+0x78,0x00,0xEF,0x1E,0x93,0xF2,0x07,0x7C,0x65,0x8A,0x89,0x65,0x61,0x9D,0x8E,0x75,
+0x47,0x0D,0xE2,0x2C,0x4E,0xD5,0xFD,0xA1,0x0C,0xE3,0x46,0xC3,0x4D,0xA7,0xA2,0x63,
+0xD1,0x81,0x6E,0x36,0x1D,0x17,0x6C,0xF2,0x18,0xF7,0x02,0x93,0x6B,0xE4,0x84,0x06,
+0x24,0xC4,0x2B,0x86,0x12,0x5B,0x2F,0xFD,0x55,0xBA,0xFD,0x21,0x52,0xBB,0xBD,0x60,
+0x00,0xE4,0x0B,0x82,0x03,0x2A,0x4F,0xEC,0x64,0x8B,0xA8,0x45,0x34,0x38,0xDB,0x85,
+0x13,0xD2,0x3D,0xA7,0x14,0x3C,0x4E,0xFB,0x1B,0xF4,0x50,0xC2,0x78,0xE6,0x97,0x17,
+0x01,0x0A,0xE5,0x6D,0xB0,0x84,0x52,0x5F,0xC8,0x27,0x1A,0x5B,0x12,0x7B,0xFD,0xE0,
+0x1B,0xC9,0x26,0xB4,0x56,0x8F,0xBF,0xB9,0xE1,0x0E,0x15,0x7D,0x8A,0xA9,0x65,0xAA,
+0x7D,0x21,0xCE,0x3A,0xC3,0x62,0xC7,0x2C,0x17,0xF8,0x4E,0xD0,0x5D,0xF7,0xB2,0x23,
+0xC4,0x6B,0x84,0xC9,0x7E,0xA1,0xB9,0x91,0xF4,0x1B,0x70,0x0D,0x62,0xCF,0x8D,0x24,
+0x81,0x91,0x7E,0x76,0xF6,0x23,0xB3,0x19,0x73,0x9C,0xBE,0x44,0x50,0xC8,0xBF,0x11,
+0x40,0x3F,0xD0,0x19,0x18,0x22,0x5C,0xF7,0x4B,0xA4,0xC0,0x02,0xF5,0x51,0x1A,0x2D,
+0x5E,0x33,0xDC,0x0B,0x90,0xA0,0x56,0x7F,0x86,0x69,0xB7,0xB8,0x96,0xE7,0x79,0xF8,
+0x16,0xF3,0x1C,0x83,0xEB,0x4C,0xC1,0x04,0xAE,0x41,0x99,0xBE,0x25,0x49,0xCA,0xE5,
+0x93,0x49,0xA6,0xBC,0x17,0x6E,0x1F,0xF8,0x3E,0xD1,0x41,0xF6,0x07,0x1E,0xE8,0x90,
+0xD4,0xA0,0x4F,0x12,0x82,0x83,0x67,0x6D,0xEE,0x01,0x59,0x3E,0xD2,0x33,0x3D,0x68,
+0xEC,0x9F,0x70,0x15,0x4F,0xF4,0xDD,0xA0,0x58,0xB7,0xC2,0x13,0x5A,0xB1,0xB5,0x62,
+0x85,0x5E,0xB1,0xBD,0x87,0xB6,0x57,0x68,0x0A,0xE5,0x21,0xA2,0x98,0x8A,0x77,0x9B,
+0x65,0xF1,0x1E,0xF2,0xD5,0x55,0xE6,0x3A,0x00,0xEF,0x58,0xD1,0x2D,0x43,0xC2,0xE7,
+0xED,0x71,0x9E,0xFA,0xF2,0x37,0xA3,0x1D,0xAF,0x40,0xB8,0x9E,0xE3,0x66,0x0C,0x0C,
+0xD8,0x74,0x9B,0xCA,0xC6,0x57,0xF7,0x29,0x2A,0xC5,0x05,0xA6,0x43,0xCA,0xAC,0x00,
+0x48,0x24,0xCB,0x0A,0x30,0x0C,0x5A,0xDF,0x47,0xA8,0xDE,0x10,0xB8,0xAE,0x57,0x9F,
+0xA5,0xB1,0x5E,0x72,0x4B,0xE0,0xCD,0xA4,0xE0,0x0F,0x34,0x5D,0x08,0x52,0xE7,0xD3,
+0xD7,0x5D,0xB2,0xEC,0xB9,0xAF,0x70,0x56,0xA3,0x4C,0xA6,0x8C,0x92,0xF3,0x7D,0xE8,
+0xB5,0x7A,0x95,0xA9,0x25,0x69,0x2A,0xCA,0x77,0x98,0xAA,0x54,0xCF,0x5C,0x20,0x1A,
+0x88,0x64,0x8B,0x8A,0x78,0xC6,0xD8,0x97,0xDA,0x35,0x39,0x6A,0xF3,0x36,0x1C,0x4C,
+0xD2,0x7C,0x93,0xC8,0xCF,0x7C,0xD5,0x20,0x15,0xFA,0x3D,0xA1,0x14,0x1C,0xFB,0x81,
+0x92,0xA7,0x48,0x53,0x2A,0x25,0x69,0xC5,0xEA,0x05,0x4D,0x2E,0x53,0x9A,0xBC,0x40,
+0x0E,0x23,0xCC,0x4B,0x70,0xCC,0xDA,0x9F,0x5B,0xB4,0x90,0x42,0x41,0xB9,0xAE,0x71,
+0x9C,0x60,0x8F,0x9A,0x15,0x1D,0x6E,0xFA,0x39,0xD6,0x07,0xB7,0x32,0x5F,0xDD,0xE4,
+0x8E,0xB8,0x57,0x50,0x75,0xF9,0xEA,0x9A,0x72,0x9D,0x9F,0x64,0x80,0xD0,0x6F,0xD9,
+0x6A,0xD8,0x37,0xD4,0xEA,0x6D,0xE1,0x05,0xD4,0x3B,0x54,0x09,0xFE,0x09,0x11,0x7E,
+0x4A,0x37,0xD8,0x1B,0xA6,0xB3,0x73,0x49,0xAA,0x45,0x8D,0xAE,0x7B,0xB4,0x94,0x46,
+0x53,0x09,0xE6,0x3C,0xC8,0x3A,0x94,0x27,0x28,0xC7,0x76,0xD7,0x81,0xF1,0x6E,0xF9,
+0xE2,0x58,0xB7,0xDC,0x62,0xEF,0xEB,0x8D,0x1F,0xF0,0x44,0xD2,0xF1,0x45,0x1E,0x3D,
+0xF5,0xA1,0x4E,0x32,0x38,0x06,0x58,0xD7,0xBC,0x53,0xBA,0x8F,0x79,0xC7,0x96,0x37,
+0xCE,0x1A,0x54,0x50,0xBA,0xBA,0x24,0x80,0x14,0x4A,0xDE,0x40,0x1A,0x76,0xEC,0xE8,
+0x64,0xCF,0x2B,0xFA,0x04,0xC2,0x5C,0x46,0xD1,0xE8,0xB9,0x27,0x96,0x96,0x80,0x08,
+0x41,0xDE,0x1F,0xDF,0x72,0xE1,0x7F,0x13,0x43,0x36,0xF5,0x6B,0xDC,0x0E,0x52,0x90,
+0x10,0x6F,0xFF,0x8E,0xF1,0x87,0x19,0xF6,0x9C,0x02,0x1E,0x80,0xB4,0x9F,0xAB,0x01,
+0xE9,0x78,0x11,0x77,0xC6,0x91,0x0F,0xD7,0x3C,0xE3,0x5F,0xC1,0x47,0xD5,0x12,0x4B,
+0xE7,0x15,0x72,0x79,0xF5,0x48,0xD6,0x3D,0xDE,0x58,0x06,0x98,0x5B,0x71,0xAA,0xEF,
+0x61,0xFA,0x1B,0xFF,0x9D,0x67,0xF9,0x7A,0x6E,0xAD,0x43,0xDD,0x69,0x7C,0x95,0xE2,
+0xEC,0x4D,0x21,0x72,0xB1,0x5C,0xC2,0x6D,0xA0,0x9B,0xBB,0x25,0xA3,0xA4,0x87,0x3A,
+0x18,0x65,0xFD,0x86,0x59,0xE8,0x76,0x31,0xEF,0x7B,0x14,0x8A,0x5F,0x51,0x8E,0xCF,
+0x8C,0xA9,0xA5,0x12,0x28,0xF9,0x67,0x51,0x57,0x06,0xD1,0x4F,0x74,0xCF,0x3B,0x51,
+0x27,0x5D,0xFA,0xB9,0xB4,0x7D,0xE3,0x49,0x86,0x94,0x92,0x0C,0xC2,0xA2,0xE0,0x3C,
+0x38,0x41,0xF9,0xA6,0xA4,0xB6,0x28,0x92,0xE4,0xEF,0x8B,0x15,0xEB,0x34,0x5F,0xAA,
+0x6E,0xB6,0x58,0xF0,0x7F,0xDB,0x45,0x24,0x2C,0xF7,0x5B,0xC5,0x7B,0x70,0x8B,0xEE,
+0x3B,0x13,0xA8,0xA5,0x89,0x63,0xFD,0x6A,0x8E,0x1C,0x12,0x8C,0xAB,0x24,0x0F,0xBA,
+0xF7,0x45,0x32,0x69,0xA8,0x62,0xFC,0x4A,0x36,0x61,0xD7,0x49,0xC9,0x3D,0x74,0xA3,
+0xDA,0x5E,0x04,0x44,0xE5,0x83,0x1D,0xE6,0xEA,0x49,0x23,0xBD,0x9E,0x16,0x08,0x88,
+0xDC,0x39,0x65,0x42,0x20,0xE2,0x7C,0x42,0xB0,0x8F,0xBF,0x21,0x20,0xFB,0x5B,0x65,
+0xAD,0xAC,0x81,0x33,0x7A,0xFA,0x64,0x00,0xDB,0x6A,0x31,0xAF,0xC3,0xB5,0xF6,0x2B,
+0xEF,0x1F,0x70,0x71,0xFD,0x53,0xCD,0x2E,0x95,0x9C,0x89,0x17,0x6F,0x54,0xBB,0xCA,
+0x0B,0x67,0xEC,0x95,0x47,0xE4,0x7A,0x23,0x52,0x34,0xE6,0x78,0xEE,0x03,0x6D,0x9D,
+0x44,0xEB,0x2F,0xDA,0xA3,0x84,0x1A,0xA7,0x77,0x27,0xD0,0x4E,0xBE,0x17,0x29,0x89,
+0x28,0x11,0xB9,0xB6,0x03,0xF0,0x6E,0x73,0x48,0xA2,0x6A,0xF4,0xA4,0x9B,0xBF,0x05,
+0x35,0x7E,0xCB,0xAB,0x7C,0x26,0xB8,0xDA,0xF4,0xFB,0x8F,0x11,0x56,0xC6,0x10,0x58,
+0x32,0x38,0x8A,0xAC,0x8C,0x42,0xDC,0x4E,0x2A,0xD9,0x73,0xED,0xC7,0x95,0xD2,0x0B,
+0x1F,0x23,0xBC,0x81,0xC2,0x5E,0xC0,0x1C,0x22,0x51,0xF3,0x6D,0xF3,0xB0,0xC3,0x2E,
+0x33,0x19,0xAA,0xAD,0x0D,0x37,0xA9,0xBA,0xD8,0x76,0x2E,0xB0,0xC1,0xBD,0xFC,0x23,
+0x00,0x3F,0xBF,0x9E,0x79,0x07,0x99,0xFE,0xF0,0xDF,0xAF,0x31,0x59,0x79,0xA0,0xE7,
+0x39,0x60,0xD9,0xA7,0x86,0x4A,0xD4,0x4C,0xB3,0x93,0xA0,0x3E,0xE9,0x3C,0x55,0xA2,
+0x94,0xF3,0xE7,0x0A,0x6E,0xFE,0x60,0x10,0xE0,0xCB,0xAB,0x35,0xA6,0x93,0xB5,0x0D,
+0x50,0xAF,0x7F,0xCE,0xE4,0x6D,0xF3,0x09,0x97,0x96,0x81,0x1F,0xF7,0x90,0xE7,0x0E,
+0xAE,0xFE,0xD0,0x30,0x4F,0xFF,0x61,0x30,0x64,0x2F,0xCB,0x55,0x98,0x3E,0x26,0xA0,
+0x2F,0x57,0xF8,0xB1,0x6C,0xED,0x73,0x01,0x19,0xF0,0x69,0xF7,0x4D,0x5D,0x90,0xC3,
+0x30,0x4B,0xFB,0xAE,0xF4,0xA6,0x38,0xD2,0x66,0x25,0xC3,0x5D,0x16,0xD6,0x40,0x48,
+0x0F,0x73,0xFC,0x91,0xCA,0x45,0xDB,0x0F,0x18,0xE6,0x7E,0xE0,0xE5,0x9C,0xF9,0x02,
+0xA7,0xD5,0xF2,0x39,0x44,0x19,0x87,0xDD,0x83,0xA6,0xA5,0x3B,0xC6,0x82,0xC4,0x1C,
+0x02,0x4C,0xCE,0x9C,0x3A,0x21,0xBF,0x9B,0x6C,0xA7,0x4B,0xD5,0xA9,0x2C,0x05,0xB2,
+0x2A,0x62,0xC8,0xB4,0xD4,0x49,0xD7,0x1D,0x91,0xB8,0xA9,0x37,0x78,0x6F,0x97,0xF1,
+0x66,0xBC,0x5A,0xF8,0x2C,0x36,0xA8,0x9A,0x90,0xAE,0xBE,0x20,0x5D,0x59,0x84,0xC7,
+0xD8,0x2D,0x75,0x46,0x91,0xB3,0x2D,0xA2,0x60,0x0B,0xEB,0x75,0x6B,0x74,0x9F,0xEA,
+0x40,0xFF,0x3F,0xDE,0x9E,0x9A,0x04,0x84,0x8D,0x00,0x0D,0x93,0xB2,0xB7,0x85,0x29,
+0xCA,0x0E,0x44,0x54,0xA5,0x58,0xC6,0x7D,0x88,0x32,0x3A,0xA4,0x62,0xE3,0x01,0x7D,
+0x08,0x35,0xBD,0x96,0x46,0x0A,0x94,0xCC,0x02,0x70,0xF2,0x6C,0xCA,0x22,0x68,0xBC,
+0xB1,0xE2,0xD3,0x2F,0x3C,0xFD,0x63,0x41,0x7C,0xB3,0x4F,0xD1,0x25,0xCC,0x69,0x52,
+0x7F,0xC7,0x38,0xE1,0xDC,0x52,0xCC,0x0E,0x39,0xD1,0x68,0xF6,0x2D,0x4C,0xE1,0xD2,
+0x77,0xCD,0x3A,0xE9,0x1D,0xFC,0x62,0x61,0x1E,0xC8,0x56,0xC8,0x5C,0x4E,0x92,0xD0,
+0xC4,0x63,0x27,0x5A,0x33,0xD4,0x4A,0x67,0x89,0x24,0x2D,0xB3,0xD4,0x8E,0xDA,0x10,
+0x80,0xB7,0xB7,0x1E,0xDD,0xBC,0x22,0xE1,0xB8,0x07,0x3F,0xA1,0xCD,0x1D,0x50,0x83,
+0x55,0x9A,0x4F,0xCB,0xC5,0x6C,0xF2,0x29,0xC0,0xEA,0xAA,0x34,0x63,0xF4,0x17,0x6A,
+0xA1,0xB2,0x93,0x3F,0xBD,0x88,0x16,0xB5,0x07,0x42,0xC5,0x5B,0x55,0xD9,0x0C,0x47,
+0x9D,0xD8,0xC5,0x03,0x2E,0x25,0xBB,0x8B,0xF5,0xED,0x98,0x06,0x76,0xC7,0x31,0x59,
+0x01,0x1E,0x9F,0x9F,0xC9,0xB8,0x26,0xF1,0xB6,0xA1,0x97,0x09,0x8C,0x1A,0x16,0x84,
+0x46,0x98,0x5E,0xD8,0xB9,0x47,0xD9,0x7E,0x0A,0xF8,0x72,0xEC,0x17,0xC1,0x56,0x5F,
+0xEA,0x2A,0x40,0x74,0x5A,0x15,0x8B,0xCF,0x85,0x88,0x8D,0x13,0xD5,0x99,0xCC,0x07,
+0x11,0x4E,0xDF,0x8F,0x81,0x78,0xE6,0x79,0x28,0xD3,0x7B,0xE5,0x15,0xC9,0x5C,0x57,
+0xC0,0x77,0x37,0x5E,0x22,0xF1,0x6F,0x53,0xAF,0x2B,0x04,0x9A,0x33,0xE0,0x53,0x7E,
+0x5A,0xD6,0x0C,0xC4,0xB0,0xB2,0x2C,0x82,0x12,0x64,0xF6,0x68,0xAD,0x0C,0x21,0x92,
+0xD3,0x75,0x26,0x4D,0xF2,0x7A,0xE4,0x08,0x4B,0xBE,0x75,0xEB,0xE3,0xB4,0xD7,0x2A,
+0x29,0x30,0x99,0xB7,0x09,0xF8,0x66,0x71,0xAC,0x37,0x1B,0x85,0xC4,0x8A,0xCE,0x14,
+0x2B,0x43,0xE8,0xB5,0x3E,0xEE,0x70,0x50,0x87,0x82,0x85,0x1B,0xED,0x1C,0x71,0x82,
+0xA3,0xC1,0xE2,0x3D,0xC0,0x4D,0xD3,0x0D,0x34,0x6B,0xDF,0x41,0x03,0xE5,0x66,0x7B,
+0x60,0xDB,0x3B,0xFE,0x83,0x6B,0xF5,0x68,0xB1,0x99,0xA8,0x36,0x45,0xDD,0x18,0x43,
+0x13,0x3D,0xAE,0x8D,0x14,0x09,0x97,0x9D,0x05,0x48,0xCD,0x53,0x94,0x9E,0x8A,0x00,
+0xAC,0x8D,0xA1,0x32,0xD0,0x86,0x18,0xD6,0x3E,0xE9,0x57,0xC9,0x0B,0x65,0xEE,0xFB,
+0xD2,0x54,0x06,0x4C,0x1B,0x20,0xBE,0xBB,0x35,0x7D,0xC8,0x56,0x8F,0x05,0x0A,0x9B,
+0x87,0x68,0x34,0x7E,0xAC,0xF7,0xCA,0x44,0xE3,0xE1,0x50,0x20,0x05,0xB6,0x0C,0x2B,
+0xE3,0xFC,0x50,0x8E,0xED,0xF0,0x8C,0x43,0xB0,0x70,0x03,0xE2,0xF9,0x4A,0xD2,0x09,
+0x35,0x55,0x86,0xF1,0x9F,0xED,0xE3,0x5E,0xED,0x82,0x5E,0x4D,0x1C,0xAF,0x6E,0x50,
+0x41,0x81,0xF2,0x51,0x09,0x81,0x19,0x32,0x61,0x98,0xD2,0xDB,0xA6,0x15,0x51,0xD5,
+0x21,0x05,0x92,0xB5,0xCA,0xCE,0x95,0x7D,0x75,0xC8,0xC6,0x9F,0x90,0x23,0x74,0xC6,
+0x96,0x08,0x25,0x0F,0x56,0x2A,0xED,0x99,0x22,0x49,0x91,0x49,0xFF,0x4C,0xB3,0x6E,
+0x3F,0x26,0x8C,0x88,0xA7,0x68,0x5E,0xDB,0xC3,0xE5,0x70,0x04,0x47,0xF4,0xFD,0x98,
+0x27,0x64,0x94,0xD2,0x43,0x19,0xCB,0xAA,0x8D,0x06,0x3E,0xA9,0xC9,0x7A,0x96,0x7D,
+0x28,0x27,0x9B,0x9E,0xDE,0xEA,0xA5,0x59,0x2B,0x6B,0x98,0x62,0x1F,0xAC,0x3F,0x02,
+0x3A,0x16,0x89,0xBD,0xF6,0x6B,0x0C,0xD8,0x48,0xBE,0xFB,0xD4,0xBD,0x0E,0x42,0xDD,
+0xA8,0x2F,0x1B,0x16,0x59,0x95,0x5D,0x26,0xE6,0xD1,0x55,0x15,0xF7,0x44,0xB1,0x64,
+0x3B,0x36,0x88,0x9C,0xC1,0x51,0x01,0xE2,0xE5,0x80,0x56,0x47,0xDD,0x6E,0xC6,0x39,
+0x8F,0x6A,0x3C,0x74,0xFF,0xFC,0x92,0x4F,0x4A,0xCF,0xF9,0xA7,0xD6,0x65,0x95,0x61,
+0xC2,0xD8,0x71,0x8B,0x99,0xC5,0xCD,0x76,0x0F,0x7F,0xBC,0x52,0xD9,0x6A,0xD6,0x2D,
+0xF2,0x9C,0x41,0xFF,0x8C,0xF6,0xEB,0x45,0xCB,0xE7,0x78,0x0E,0x58,0xEB,0xFE,0x84,
+0x9B,0x3A,0x28,0x30,0x9A,0xDA,0xD1,0x69,0xC6,0xD5,0x75,0x31,0x85,0x36,0x04,0xA3,
+0x99,0x4B,0x2A,0x43,0x07,0x29,0xBF,0x9A,0xD2,0x85,0x61,0x75,0xCD,0x7E,0x86,0x69,
+0xA2,0x5C,0x11,0x6F,0x3D,0xA4,0x08,0x17,0x0A,0x4F,0xB9,0x67,0x35,0x86,0x48,0x5F,
+0x8D,0x1B,0x3E,0x07,0x54,0x22,0xE7,0x91,0x07,0x7D,0xB4,0x58,0x70,0xC3,0xF8,0xAA,
+0x54,0xF1,0xE7,0x34,0x37,0x2C,0x8A,0x9F,0xA3,0x61,0x10,0xE0,0x29,0x9A,0x1A,0x11,
+0x42,0xD0,0xF1,0x03,0xD9,0xD5,0x9D,0x66,0xE9,0x92,0x5A,0x59,0x68,0xDB,0xBA,0xF0,
+0x24,0x35,0x97,0x80,0x39,0x84,0x2C,0x37,0x78,0xFA,0xCB,0xA0,0x83,0x30,0x65,0xC4,
+0x07,0x60,0xB4,0xF6,0x0D,0xA1,0x3D,0x12,0xE0,0xB0,0x53,0x72,0xCF,0x7C,0xF7,0x1A,
+0x7F,0xA6,0xCC,0x48,0x72,0x0B,0xE8,0xB8,0x00,0x3C,0xB3,0x1E,0xA8,0x1B,0x32,0xB8,
+0x46,0xC0,0xF5,0x17,0x22,0x1F,0xAC,0xAC,0x60,0xB8,0xD3,0xFA,0x55,0xE6,0xCC,0xBB,
+0xA7,0x6C,0x14,0x5A,0x14,0x32,0xB7,0x81,0x4B,0xEF,0xF8,0x86,0xA1,0x12,0x10,0x93,
+0xA6,0x4C,0x15,0x7B,0x8E,0xFE,0xE1,0x4D,0x52,0x8D,0xE1,0xFD,0x64,0xD7,0xA8,0xEE,
+0x1E,0x02,0xAD,0x8D,0x7E,0xAB,0x44,0x18,0x06,0x5D,0xB5,0x79,0x2D,0x9E,0x0A,0x05,
+0x73,0xB4,0xC0,0x56,0xDF,0xFD,0xB3,0x4E,0x42,0xCD,0xF1,0xAD,0xFD,0x4E,0xC2,0x1D,
+0xB8,0x6F,0x0B,0x46,0xDC,0xE2,0xAF,0x51,0xD4,0xE4,0x67,0x12,0xE4,0x57,0xA0,0x66,
+0x3C,0x77,0x8F,0xDA,0x83,0x49,0x5B,0xFA,0xB9,0x52,0x0A,0xC9,0xA7,0x14,0x71,0xF4,
+0x2D,0x17,0x9E,0xAB,0xDB,0xDD,0x97,0x6E,0x27,0x79,0x94,0x7C,0x62,0xD1,0xC9,0x89,
+0x77,0xA4,0xC4,0x42,0x2A,0x9F,0x24,0x2C,0x7A,0x8B,0xC9,0xD3,0x80,0x33,0x34,0x96,
+0x34,0x75,0x87,0xD0,0x11,0x05,0x85,0xB6,0x96,0x15,0x25,0xA1,0x72,0xC1,0x89,0xD9,
+0xBD,0x5F,0x0E,0x73,0xF9,0xD4,0xBC,0x67,0xBF,0x33,0x0C,0xAE,0x0D,0xBE,0x0E,0x21,
+0xD0,0xE9,0x63,0xA8,0x66,0x2F,0xD8,0x9C,0xEF,0xF3,0x5C,0x3E,0xFB,0x48,0xA3,0x7A,
+0x82,0x58,0x31,0x4B,0x78,0x83,0x6A,0x30,0xB7,0x31,0x04,0xA4,0x04,0xB7,0x2C,0x0A,
+0x7D,0xD7,0xCE,0x3B,0xB9,0xC4,0xEC,0x77,0x6C,0xAA,0xDF,0xE4,0xE1,0x52,0x90,0x53,
+0xE0,0xAD,0x53,0xDC,0xE3,0x58,0x2A,0xEB,0xB1,0x50,0x02,0xC3,0xEE,0x5D,0xD3,0x1F,
+0x4D,0x93,0xFE,0x4F,0xB5,0x64,0x40,0xD7,0xAF,0x73,0x1C,0xFE,0xB3,0x00,0x21,0xB0,
+0xE5,0x9D,0x56,0xE9,0x20,0x17,0xA6,0xA4,0x73,0xA9,0xC0,0xF8,0xBE,0x0D,0x13,0x8F,
+0x43,0xF0,0xF0,0x22,0x87,0x69,0x7F,0xDA,0x13,0x2D,0xA0,0x1C,0x21,0x92,0x18,0x1B,
+0xCC,0xBB,0x7F,0xE6,0x88,0xD6,0xCF,0x65,0xE8,0xB2,0x5B,0x78,0xBB,0x08,0x23,0xBA,
+0xAE,0x4E,0x1D,0x71,0x1D,0xA5,0x29,0x16,0xAB,0x63,0x18,0xEA,0xDE,0x6D,0x97,0x6B,
+0x88,0x2B,0x3B,0x32,0xC4,0x66,0x33,0xD5,0x93,0x25,0x20,0x94,0xA9,0x1A,0x12,0x99,
+0x2B,0x76,0x98,0xCC,0xCE,0xEE,0xB1,0x5D,0x6A,0xCB,0xD9,0x83,0xF3,0x40,0xA1,0x70,
+0x3D,0x57,0x8E,0xFB,0xBF,0xEC,0xC2,0x5F,0xFC,0xE2,0x4F,0x3C,0x6D,0xDE,0x8A,0xC5,
+0xBF,0x2E,0x0C,0x00,0x00,0x16,0x87,0xA5,0xC2,0xC5,0x71,0x25,0x03,0xB0,0x6D,0x4C,
+0x5F,0xA2,0xEC,0x6C,0x19,0x85,0x0D,0x36,0xC1,0x94,0x72,0x77,0x7B,0xC8,0xAB,0xF2,
+0x76,0x84,0xC5,0x63,0x53,0x1D,0xDF,0xAE,0x02,0x4D,0xB1,0x6D,0x9D,0x2E,0x46,0xF9,
+0xF3,0xBC,0x40,0xDE,0x7C,0xA3,0x4E,0x10,0x2F,0x7B,0x9C,0x76,0xC8,0x7B,0xB6,0x5C,
+0x8C,0x3B,0x3F,0x26,0xEE,0xEF,0x90,0x5C,0x19,0x5E,0xAA,0x65,0xDF,0x6C,0xB7,0x4A,
+0xE4,0xBD,0x57,0xC8,0xE8,0xC7,0xBE,0x74,0x5A,0x8F,0xE9,0xF7,0x3D,0x8E,0x4A,0x55,
+0xDC,0xFB,0x6F,0xB6,0xD4,0x62,0x27,0xD1,0xF4,0xE0,0x47,0x36,0xD3,0x60,0xA5,0x54,
+0x80,0x29,0x33,0x38,0xDA,0xCA,0x81,0x79,0xEA,0xC3,0x59,0x0B,0x08,0xBB,0x3E,0x14,
+0x63,0xF4,0xD0,0x06,0xDD,0xF5,0xB9,0x46,0xA0,0x30,0x13,0xB2,0xB5,0x06,0x40,0xD7,
+0xA9,0x0F,0x1A,0x37,0x69,0x90,0x68,0x23,0x82,0x45,0x31,0xE5,0xDC,0x6F,0xE6,0x18,
+0x79,0xC7,0xCA,0x2F,0x91,0x45,0x45,0xF6,0x6B,0xEB,0xD8,0xA2,0x49,0xFA,0x9E,0xF5,
+0x11,0x41,0xA2,0xC1,0x01,0x01,0x91,0xB2,0xF8,0xF2,0x4B,0x28,0x5B,0xE8,0xAF,0xD6,
+0x39,0x47,0x8A,0xEF,0x1C,0xB2,0x3F,0x01,0x38,0x7A,0x8B,0x60,0x20,0x93,0x38,0x3A,
+0x97,0x28,0x24,0x2E,0x1E,0xBA,0x35,0x09,0x3A,0x0B,0x89,0x13,0x1E,0xAD,0x1F,0x23,
+0x38,0x67,0x8B,0xCE,0xF5,0x74,0x10,0xC7,0xBA,0x03,0x09,0x9B,0x39,0x8A,0x5A,0x41,
+0xCF,0xEA,0x7C,0xB4,0x9B,0xCD,0xC7,0x7E,0x54,0xEC,0xE7,0x9A,0x84,0x37,0x24,0x82,
+0x9D,0x5B,0x2E,0x57,0x62,0x0F,0xFC,0xBC,0x95,0x44,0x26,0xF3,0x4C,0xFF,0xAE,0xC0,
+0x71,0x7B,0xF0,0x96,0x42,0xA0,0x47,0x18,0xC5,0x7C,0x43,0xA4,0xAD,0xD2,0x85,0x35,
+0x8B,0x3E,0x4F,0x6C,0xB9,0x22,0xC5,0x61,0x22,0xF5,0x2D,0xCA,0x8A,0xEC,0x9C,0x0B,
+0xFB,0x8A,0x8B,0x1C,0x8B,0x15,0xF2,0x64,0x5D,0x20,0x87,0x60,0x6A,0xBD,0x2D,0x5A,
+0x73,0x08,0x81,0x94,0x75,0xB6,0x51,0x39,0xEE,0xC9,0xDD,0x3A,0x84,0x44,0x3A,0xA3,
+0x4B,0x76,0xC7,0xAC,0x5F,0x51,0xB6,0xF4,0x6C,0x03,0x95,0x72,0xFD,0xC6,0xC1,0x21,
+0x38,0x90,0x52,0xDF,0xC8,0x33,0xD4,0x01,0xD8,0xD2,0xF0,0x17,0x2C,0x85,0x53,0x62,
+0x8A,0x1F,0x6F,0x6D,0x50,0x78,0x9F,0xD2,0x5C,0x36,0x90,0x77,0xE6,0x5D,0x41,0xBA,
+0xF4,0xC6,0xC8,0x13,0x9B,0xDE,0x39,0xBF,0x57,0xA2,0x0F,0xE8,0x62,0x3D,0xA5,0xDA,
+0xC5,0x93,0xAC,0x22,0x65,0x7D,0x9A,0xE2,0x9C,0xA6,0xC0,0x27,0x1F,0x9F,0x7A,0x78,
+0xF9,0xF9,0xFA,0x1E,0xF6,0xD0,0x37,0xDC,0x6E,0x09,0x9D,0x7A,0x3C,0x81,0x47,0x66,
+0x1E,0xD3,0x37,0xF9,0xF2,0x1F,0xF8,0x17,0x63,0xB3,0x2A,0xCD,0x7E,0x99,0x1D,0x7E,
+0x59,0x55,0xF6,0xBE,0x82,0xE0,0x07,0x98,0xDF,0xEA,0xCF,0x28,0xE5,0x42,0x5D,0xA5,
+0x49,0x05,0xB6,0xAE,0xCA,0x20,0xC7,0x10,0x41,0x98,0x23,0xC4,0x7C,0x91,0x17,0x76,
+0xB2,0x61,0x29,0x55,0x11,0x4D,0xAA,0xA6,0xEC,0xC3,0xD5,0x32,0xBC,0xC1,0x87,0x26,
+0x02,0x9D,0x65,0xE5,0xFB,0xEA,0x0D,0xEB,0x7B,0x2F,0xAE,0x49,0xC4,0x54,0x6A,0xB3,
+0x98,0x3C,0x5E,0x7F,0x69,0xA9,0x4E,0x3A,0xC6,0x60,0x5C,0xBB,0x5A,0xB8,0x18,0x5F,
+0x50,0x7E,0xD4,0xB7,0x0D,0x52,0xB5,0xA5,0x6B,0x3B,0xAA,0x4D,0xA3,0x7A,0x23,0x9D,
+0x92,0x45,0x2D,0x75,0xEE,0x00,0xE7,0x14,0xE1,0x79,0x62,0x85,0x0B,0xBB,0x4A,0x5C,
+0x27,0x8C,0x51,0xC0,0x97,0x0A,0xED,0x67,0x50,0x9A,0x30,0xD7,0x44,0x14,0xAA,0xF3,
+0xE9,0xA9,0xBA,0x0E,0x77,0xA5,0x42,0x28,0x15,0xF8,0x17,0xF0,0x4C,0x94,0x22,0x73,
+0x9C,0x28,0x4E,0x7B,0x78,0x8C,0x6B,0x0E,0xE0,0x6F,0x75,0x92,0xBD,0xD6,0x91,0x31,
+0x2F,0x86,0x53,0xC8,0x56,0xA4,0x43,0x08,0x77,0x83,0x0E,0xE9,0x35,0x16,0xD9,0xF1,
+0x0D,0xD1,0x26,0xEA,0x8E,0x34,0xD3,0x40,0xA9,0xA1,0xF2,0x15,0x0A,0xAC,0x5C,0x4B,
+0xD8,0xFC,0xDE,0x3F,0x96,0xE4,0x03,0x88,0xD1,0x4C,0x67,0x80,0xA4,0x45,0x1B,0xA2,
+0x57,0x38,0x95,0xB0,0x81,0x1D,0xFA,0x66,0x71,0xAD,0x26,0xC1,0x8C,0xC4,0xB2,0x23,
+0x68,0x00,0x92,0x8F,0xBF,0xFE,0x19,0xBB,0x0F,0x6E,0x9B,0x7C,0x7F,0x8E,0x0B,0x69,
+0x5A,0x07,0xA7,0xBD,0x71,0x79,0x9E,0xF2,0x05,0xEC,0x13,0xF4,0xC0,0x74,0x4E,0x93,
+0xFF,0x9E,0x9B,0x18,0x0F,0x41,0xA6,0xB4,0xEA,0xED,0xFD,0x1A,0xAF,0xDA,0x8F,0x3D,
+0x3E,0xF7,0x33,0xD9,0x67,0x6E,0x89,0xF3,0xF9,0xE5,0xE6,0x01,0x34,0x01,0xCF,0xE6,
+0x72,0x29,0xA1,0x95,0x9F,0x11,0xF6,0x74,0xF8,0xF3,0xF1,0x16,0x11,0x37,0xDC,0xD0,
+0x18,0xB4,0x56,0xFF,0xD5,0xC2,0x25,0xED,0xE4,0x4B,0x55,0xB2,0xDB,0xEF,0xCE,0x08,
+0x80,0x66,0x1C,0x67,0xDA,0xEB,0x0C,0xCB,0x09,0x40,0xB3,0x54,0x02,0x2C,0xD4,0xCB,
+0x6B,0x52,0xC3,0x8C,0x46,0x6F,0x88,0xD3,0xB1,0x3D,0x76,0x91,0xA8,0xE5,0xB7,0x02,
+0x47,0x68,0xD5,0xA0,0x89,0x06,0xE1,0x75,0x4B,0x1A,0xAB,0x4C,0x9A,0xE8,0x88,0x0F,
+0x61,0x2B,0xB0,0x86,0xCD,0x12,0xF5,0x25,0xDA,0xD8,0xF8,0x1F,0x80,0x64,0x1E,0x83,
+0x58,0x74,0xD6,0xBF,0x32,0x5F,0xB8,0x97,0x99,0x94,0xF7,0x10,0x30,0x21,0xEB,0xC6,
+0x08,0xE4,0x16,0xEF,0xAF,0x35,0xD2,0x60,0xFE,0xDD,0xD9,0x3E,0x9E,0xC8,0xAC,0x2F,
+0xCC,0xB8,0x8E,0x2B,0x25,0xA6,0x41,0x79,0x89,0x80,0xF3,0x14,0xCF,0xCB,0xFE,0x2C,
+0x77,0x1C,0x91,0x90,0x27,0xB5,0x52,0x68,0x70,0xBB,0x31,0xD6,0x24,0x05,0xDB,0xE2,
+0xF6,0xB5,0xB9,0x11,0x04,0xA7,0x40,0x59,0x0D,0x64,0x93,0x74,0xF1,0x66,0x6D,0x81,
+0xF5,0xE7,0xE8,0x12,0x31,0xA2,0x45,0x69,0xB2,0x21,0x69,0x8E,0xAA,0xED,0xBD,0x0A,
+0x84,0x72,0x0C,0x63,0x6B,0xBA,0x5D,0x2B,0xD9,0xC4,0xE7,0x00,0x49,0xA3,0x10,0x44,
+0x53,0x2C,0x85,0xB4,0x0C,0xBC,0x5B,0x4A,0x3B,0x7F,0xBE,0x59,0x87,0x5B,0x26,0xBC,
+0xB7,0x54,0x19,0x50,0xB6,0x0B,0xEC,0x47,0xFC,0xD7,0xD1,0x36,0x06,0x0C,0xF0,0xEB,
+0x70,0x5A,0xD0,0x97,0x48,0xA8,0x4F,0x1A,0x21,0xE9,0x32,0xD5,0xCD,0xC3,0xF4,0x24,
+0x1C,0xA0,0x46,0xFB,0xE8,0xDC,0x3B,0xCE,0x1E,0x6C,0x88,0x6F,0xD7,0x4F,0x62,0xA8,
+0x6A,0x73,0xE3,0x8D,0xC7,0x1A,0xFD,0x27,0x43,0x92,0x2B,0xCC,0xAE,0xCD,0x99,0x2A,
+0x6D,0x35,0xA2,0x8A,0x37,0x7E,0x99,0xB3,0x9D,0xB0,0xD7,0x30,0x3F,0x9E,0x5B,0x79,
+0xD4,0xE2,0xCC,0x33,0x63,0xA1,0x46,0x38,0x3E,0x4D,0x89,0x6E,0x1D,0x97,0x70,0x70,
+0x40,0x2E,0x94,0xA7,0x12,0xB0,0x57,0x58,0x86,0x30,0x4C,0xAB,0x36,0x09,0xC5,0xEE,
+0x60,0x0A,0x90,0x87,0xEF,0xEE,0x09,0xFB,0x8D,0xA4,0xD3,0x34,0x82,0x6C,0x14,0x8B,
+0x7F,0x16,0x93,0x98,0xFF,0x25,0xC2,0x20,0xEF,0xDF,0xCA,0x2D,0xAB,0xFA,0xAB,0x1D,
+0x63,0x58,0xC1,0x84,0xC2,0x3B,0xDC,0x03,0xE7,0x57,0x4A,0xAD,0xC2,0x7C,0x44,0x9B,
+0x36,0xFD,0x31,0xD1,0x34,0x83,0x64,0x4D,0x45,0xBC,0x03,0xE4,0x12,0x28,0xC0,0xCF,
+0x82,0x15,0x6D,0x65,0xAE,0xDB,0x3C,0x8F,0x83,0x02,0x7B,0x9C,0xF7,0x4E,0x43,0xA9,
+0xAF,0x0E,0x5B,0x48,0xE3,0x3A,0xDD,0x23,0x5F,0x2A,0x8F,0x68,0xA0,0x65,0x3F,0x82,
+0x3C,0x84,0x42,0xDB,0x4F,0x9A,0x7D,0x2F,0xB8,0xA3,0xE1,0x06,0xFF,0xCE,0xCB,0x29,
+0x96,0x51,0x3D,0x71,0xF1,0xE2,0x05,0xE9,0x7D,0x01,0x86,0x61,0x73,0x2E,0xA7,0xC9,
+0x48,0x24,0x96,0xAF,0xBA,0xDF,0x38,0x9F,0xF5,0x49,0x46,0xA1,0xDD,0xC7,0xE0,0x20,
+0x19,0x95,0x76,0xFE,0x39,0xB9,0x5E,0x7A,0x2A,0x7D,0xAD,0x4A,0xB5,0x56,0x19,0xB1,
+0xBF,0x5E,0x1B,0x58,0xBE,0x10,0xF7,0x54,0xB7,0x13,0x5E,0xB9,0x32,0x29,0xE1,0xCE,
+0xB1,0x33,0x78,0x56,0x8D,0xC9,0x2E,0xBE,0x55,0xA8,0x07,0xE0,0x2E,0x8D,0x59,0x6A,
+0xB4,0x06,0x48,0x53,0xFA,0x04,0xE3,0x04,0xC9,0xD0,0xE3,0x04,0xCA,0xFC,0xCC,0x1B,
+0x39,0xB1,0x72,0xDE,0xD6,0x3F,0xD8,0x13,0x07,0xE6,0x1B,0xFC,0x00,0x24,0xDE,0xC3,
+0xD0,0xFE,0x21,0x5F,0xBB,0x60,0x1A,0xD4,0x3F,0xF2,0xC2,0x53,0x03,0x0E,0x02,0xA3,
+0x68,0x3B,0x5C,0x9A,0x25,0x4B,0x84,0x61,0xF3,0x66,0x9A,0xC7,0x72,0x6E,0x13,0xB2,
+0xB9,0x78,0xCE,0xD9,0x48,0xFD,0xE9,0xBA,0x07,0xCD,0xC5,0x6C,0xEE,0x76,0x97,0x36,
+0xDB,0x61,0xB5,0xC0,0xDE,0xD4,0x7F,0x05,0x1B,0xD2,0xC6,0x73,0xFE,0xAD,0x5C,0xFD,
+0x13,0xB1,0xAD,0x10,0x9A,0x44,0x3B,0xD1,0xEC,0x84,0x67,0x25,0x25,0x1B,0x31,0x90,
+0xB1,0xF8,0x46,0x59,0xCE,0x94,0x6F,0x55,0x49,0xD1,0x97,0x70,0xD3,0x55,0x89,0x28,
+0x09,0x3D,0x3B,0x9C,0xD7,0xF6,0x76,0x2E,0x1F,0x1D,0x0D,0xBC,0xF2,0x75,0x88,0x29,
+0xD5,0xC9,0x13,0x68,0xFC,0xA1,0x5D,0x52,0x04,0x30,0x3B,0x91,0xBF,0xD9,0x69,0xC8,
+0x2B,0x34,0x10,0x95,0x9C,0x25,0x3D,0xB6,0x40,0x24,0x6B,0x85,0xE0,0xBF,0x50,0xF1,
+0xEE,0x53,0xB2,0xF2,0x7C,0xA9,0xDD,0xDA,0x95,0x8E,0x14,0x2F,0x5E,0x79,0x28,0x89,
+0x7C,0x1F,0x6C,0xBE,0xE4,0xE3,0x45,0x08,0x84,0xAB,0x20,0x0A,0x28,0x2C,0x0B,0xAA,
+0xA3,0xF4,0x58,0x55,0x75,0x8B,0xD4,0xF1,0x35,0xFA,0xC0,0x5B,0xAB,0xC9,0x6D,0xCC,
+0x03,0xB5,0xB9,0x14,0x3F,0x78,0x9E,0x48,0x22,0x03,0x2E,0xA2,0x9C,0xE8,0x7B,0xDA,
+0xE1,0xEC,0x02,0x4D,0x9B,0x64,0x3A,0xF0,0x4F,0x0D,0x4D,0xAC,0xAF,0x02,0xA2,0x03,
+0x51,0xA9,0xF7,0x08,0x96,0x56,0x37,0xCF,0xA0,0x8B,0x24,0x2A,0xC7,0x45,0x8D,0x2C,
+0x9F,0x51,0xC1,0xF0,0x4E,0x9C,0xEF,0xDD,0x17,0x06,0x1E,0xA7,0xEB,0x52,0xB6,0x17,
+0x1D,0x19,0x0B,0xB8,0x5A,0xCC,0xFB,0x99,0x79,0xF5,0x83,0x54,0x98,0x23,0xB4,0x15,
+0xE7,0xC4,0x2C,0x65,0x57,0xFE,0xF6,0xA6,0x43,0xD9,0x95,0x78,0x57,0x85,0xDD,0x7C,
+0xCF,0x45,0x85,0xE4,0x93,0x66,0x32,0xFA,0x65,0xEA,0x80,0x4B,0x23,0xC1,0xED,0x4C,
+0x8C,0x4A,0xC9,0xEB,0xD6,0xD6,0x77,0x0F,0x3A,0xD3,0xE6,0x72,0xDC,0x73,0xA0,0x01,
+0xDF,0x41,0x91,0xE0,0x79,0x99,0xD8,0xEF,0xA9,0x7E,0xD8,0xDF,0x34,0x2F,0x14,0xB5,
+0xA8,0x6B,0xCC,0xCA,0x7A,0xC8,0xDB,0xBD,0xF5,0xBA,0x40,0x1B,0xBE,0x36,0x87,0x26,
+0x5B,0x21,0x75,0x80,0xD4,0xA7,0x75,0x7C,0xA4,0x44,0xEF,0xE5,0x15,0x0F,0x15,0xB4,
+0x26,0x83,0xAA,0x22,0xB7,0x72,0x16,0xCA,0x0D,0xC5,0xC7,0x64,0x36,0x3E,0x07,0xA6,
+0x8F,0x55,0xD5,0xF4,0x11,0x1F,0xB0,0x01,0x63,0x36,0x5A,0x97,0x7A,0x7D,0x08,0xA9,
+0xE4,0xDB,0x30,0x7A,0x5F,0xFC,0xFE,0xAC,0xF6,0x47,0xBE,0xE6,0x20,0x3F,0x10,0xB1,
+0xAA,0x63,0xC6,0xC2,0xBE,0x50,0x1F,0xE1,0x45,0x05,0x4F,0xA4,0xA7,0x11,0xB9,0x18,
+0x6D,0x0C,0x6E,0xAD,0xE9,0xD1,0x48,0x37,0x3D,0xE1,0xD3,0x40,0x1D,0x1C,0x0E,0xAF,
+0x48,0x3A,0x7D,0x9B,0xFD,0x81,0x5C,0x73,0xB1,0xAE,0x10,0x0F,0xF9,0x98,0x6E,0xCF,
+0x77,0x80,0xF8,0x21,0x71,0x9B,0xD0,0xE5,0x4B,0xC2,0x86,0x63,0x59,0x4C,0x1A,0xBB,
+0xCB,0x65,0xA1,0xC4,0x2C,0x69,0x8D,0x4A,0x24,0xDF,0xF4,0x7E,0x26,0xE5,0xCC,0x6D,
+0x15,0x99,0x83,0x38,0x7F,0xF8,0xDE,0x88,0x62,0xD8,0xB5,0x79,0xD6,0x71,0xA8,0x09,
+0xB7,0xD0,0x68,0x71,0x09,0x5D,0xA8,0x5B,0x54,0x20,0x7B,0x81,0xFF,0x42,0xB2,0x13,
+0x3D,0x18,0x2A,0xB9,0xC8,0xF5,0x69,0x32,0x6F,0xE2,0x82,0x43,0x1C,0xF3,0xE0,0x41,
+0x43,0xA5,0xE9,0x04,0x26,0x1A,0x87,0x33,0xB8,0x5B,0xEC,0xFA,0x66,0x7E,0x17,0xB6,
+0x06,0x82,0x8B,0x23,0xA6,0x12,0x07,0xBB,0x9D,0x95,0x07,0x34,0x86,0x31,0xB8,0x19,
+0x21,0xBC,0x92,0x1D,0xA4,0x63,0x05,0xC8,0x97,0x9D,0x05,0x3C,0x47,0x5E,0x16,0xB7,
+0xB6,0xC7,0x7E,0x66,0x64,0xEB,0xC5,0x80,0x39,0x2E,0x18,0x8F,0x69,0x58,0x3E,0x9F,
+0x87,0xD5,0x5D,0x74,0xF7,0xF2,0x56,0x0A,0xED,0x6A,0x88,0xCB,0x87,0xDE,0x56,0xF7,
+0xFF,0x40,0xB0,0xE1,0x1E,0x5C,0xBF,0x4D,0xC0,0xBF,0x70,0x1E,0x9F,0x16,0x86,0x27,
+0x59,0x29,0x7F,0x88,0x3C,0x29,0x9D,0x1A,0x11,0xDA,0xC4,0x7B,0xAE,0xED,0x4C,0xED,
+0x27,0x94,0xBC,0x35,0x76,0xDA,0xD7,0xA3,0x29,0xE5,0xC3,0x44,0x90,0x30,0xAF,0x0E,
+0xBC,0x4F,0xFC,0xEE,0x68,0xF9,0xC9,0x9E,0x8F,0x4D,0xCD,0xEC,0x1E,0xE2,0xF3,0x52,
+0x53,0xA1,0xFD,0x00,0xC6,0x96,0x67,0x5F,0x16,0xE8,0xF1,0x49,0x60,0xA4,0xCB,0x6A,
+0xAE,0x43,0xE2,0xE2,0x85,0x47,0x24,0xCD,0x38,0xC0,0xF7,0x61,0x8E,0x22,0xA3,0x02,
+0xAF,0x54,0xF4,0xF5,0xB3,0x62,0x12,0xDE,0xE6,0x8C,0x65,0x2D,0x76,0xA5,0xDC,0x7D,
+0x5F,0x01,0x51,0xA0,0x9E,0x54,0x3F,0xC5,0x77,0x32,0x4A,0x93,0xCB,0x9D,0x59,0xF8,
+0xB2,0xE7,0x5A,0x46,0x5D,0x8D,0xFC,0xDF,0xA5,0xAA,0x00,0x0B,0xC4,0xBB,0x70,0xD1,
+0x74,0x9F,0xE4,0x3E,0x5E,0xDC,0xFF,0x8D,0x2F,0x39,0x19,0x98,0xA8,0x37,0x90,0x31,
+0x93,0xF1,0x6D,0x50,0x60,0xFB,0xC1,0x94,0x6A,0xC3,0xA6,0x62,0x53,0x4E,0x12,0xB3,
+0xB8,0x6F,0xD8,0xCE,0xF6,0xD2,0x57,0x2B,0x19,0xC1,0xD7,0x60,0x64,0x6F,0x04,0xA5,
+0x0B,0x35,0x31,0x94,0x0F,0x3C,0xAE,0x3C,0x9B,0x49,0xDD,0xE8,0x9A,0x32,0xA7,0x06,
+0x8E,0x42,0xC3,0xE3,0x37,0x7A,0x96,0x42,0x81,0x8A,0x04,0x2B,0xD9,0x57,0x81,0x20,
+0x3A,0x27,0x12,0x86,0x74,0xAB,0xD5,0xD0,0x67,0xF9,0x91,0x58,0x4E,0xA2,0xE3,0x42,
+0x01,0xBD,0xB3,0x1C,0x8F,0x34,0x2E,0xB4,0xD7,0x46,0x9E,0xE7,0x8A,0xE9,0x6C,0xCD,
+0x0A,0x22,0x27,0x83,0xEF,0xB0,0x4E,0x50,0x0E,0x38,0x39,0x99,0x41,0x84,0xCA,0x6B,
+0x38,0x2F,0x18,0x8E,0x33,0x6A,0x92,0x56,0xE8,0x4B,0xAC,0xEA,0xE7,0x8A,0x62,0xC3,
+0xCA,0x72,0xB7,0xD3,0x2D,0x49,0x8C,0x6B,0x82,0x77,0xFA,0xD6,0x74,0xB4,0xCF,0x6E,
+0x89,0x7D,0xFB,0xDC,0xF0,0xB3,0x51,0x4C,0x44,0xEB,0xA0,0x4A,0x93,0xCE,0x52,0xF3,
+0x35,0x98,0xA2,0x39,0x2B,0x28,0x8A,0x0C,0xC2,0xAC,0x61,0x0D,0xE3,0x41,0xAD,0x0C,
+0xBA,0x67,0xD2,0xC6,0x73,0xEA,0xD2,0x96,0x70,0x00,0x7F,0xA1,0x00,0xF0,0xFF,0x5E,
+0x17,0x91,0x89,0x30,0x23,0x2A,0x82,0x06,0x14,0xFB,0xE0,0x5A,0xDB,0x46,0x92,0x33,
+0x90,0xEE,0x71,0x4F,0x0A,0x0C,0xAB,0x09,0x2D,0x2A,0x08,0x8B,0x78,0x6C,0x1B,0xBA,
+0x2D,0x1C,0x3E,0xBD,0xE6,0x92,0x47,0x7B,0x8C,0xB0,0x33,0x11,0xEA,0xBD,0x58,0xF9,
+0x77,0x60,0x6C,0x01,0xA0,0x27,0x91,0x3C,0xB4,0xAA,0xAF,0x13,0x53,0x48,0x67,0x39,
+0x3B,0xF2,0x20,0xDF,0x27,0x58,0x69,0x43,0xA3,0xAB,0xB8,0x05,0x65,0x7E,0x42,0x2A,
+0x51,0x05,0x4A,0x42,0xBE,0x8B,0x23,0x90,0x07,0xB7,0x1C,0xBD,0xBD,0xA6,0x88,0x38,
+0xC9,0x4F,0xD2,0x90,0x98,0xA2,0x2C,0xB9,0xE1,0x5A,0xFA,0xB6,0x7E,0x65,0x51,0x22,
+0x1E,0xC6,0x05,0xCE,0x35,0x54,0x77,0x4F,0x74,0x22,0x6F,0x5B,0x96,0x8D,0xDF,0x44,
+0x21,0xC1,0x3A,0xF6,0xE8,0xB7,0x49,0xAC,0xC9,0x5C,0xD2,0x98,0xDC,0xC7,0x2C,0xFD,
+0x13,0xF4,0x08,0xF1,0xA1,0x30,0x87,0x2B,0x41,0x56,0x5A,0x1A,0x26,0x3D,0x93,0xB8,
+0xB6,0xC8,0xAD,0x68,0xE7,0x08,0xF9,0x13,0xAF,0xB9,0xB4,0x1B,0x88,0x93,0xFC,0x79,
+0xD5,0x1D,0xCE,0xDE,0x5D,0xC5,0x8E,0xDE,0x27,0xB3,0x3C,0x99,0x84,0x9F,0xEE,0x67,
+0x66,0x00,0x7D,0x70,0x5B,0xED,0xA0,0xF6,0x5C,0x24,0x47,0x75,0x44,0x5F,0x66,0x2F,
+0x44,0x75,0x5F,0x27,0x13,0x7D,0x78,0x66,0xA0,0xFA,0xBB,0x57,0xFE,0xE5,0x59,0xAA,
+0x91,0x8D,0x8A,0x0A,0xDB,0xAD,0x60,0xB6,0x35,0x82,0x2E,0xBA,0x17,0x0C,0xF7,0xED,
+0x19,0x87,0x02,0x88,0xF6,0x1B,0xFB,0x00,0xF8,0x38,0xE3,0xCD,0x28,0x33,0xF0,0xD5,
+0xDB,0x7E,0xC0,0xB3,0x47,0x49,0x18,0x52,0x30,0xB2,0x2B,0x8F,0xE9,0xF2,0x58,0xBC,
+0x6E,0x02,0x75,0x7A,0x34,0x43,0x61,0x58,0x62,0x03,0x79,0x6C,0x46,0x5D,0x17,0x5C,
+0xA0,0xE9,0xBB,0x5F,0x7B,0xEC,0x81,0xF7,0x45,0x46,0x5E,0x0E,0xC6,0xDD,0x1F,0xD4,
+0x00,0xE5,0x1B,0xF3,0x43,0x69,0x3C,0x72,0x71,0x12,0x6A,0x6E,0xC3,0xD8,0x2F,0xE1,
+0xFB,0x7A,0xE0,0x97,0xF5,0x04,0xE7,0x1F,0x87,0xBF,0x9C,0x35,0x93,0x88,0xEF,0x71,
+0x4B,0x36,0x50,0x6B,0xB8,0xA3,0x0D,0xB8,0xFC,0x28,0xE7,0xD9,0x06,0x1D,0x97,0x9C,
+0xD1,0x0D,0xCA,0xCA,0x69,0xE0,0x9F,0xFB,0x0E,0x95,0x15,0x96,0xEA,0xF1,0x09,0xEE,
+0x8C,0xFF,0x97,0x65,0xB1,0x34,0x93,0x2F,0x92,0xCF,0x89,0x50,0xCD,0xD6,0x4C,0x8C,
+0xB0,0xA9,0xAB,0x0F,0x8F,0x99,0x00,0x82,0xCF,0x3D,0xD4,0xFF,0xD3,0xC8,0x6F,0xB1,
+0x57,0x64,0x4C,0x25,0x44,0x56,0x04,0x4D,0x78,0x30,0x63,0x45,0xCB,0xD0,0x2D,0xEB,
+0x10,0xA5,0x0B,0xA3,0xCB,0xA9,0x74,0xB2,0x9D,0x8C,0x86,0x1C,0x10,0x0B,0xB6,0xAB,
+0x02,0x94,0x19,0x80,0xA7,0x18,0xA9,0x03,0xC7,0x3F,0xDC,0xF5,0x94,0x8F,0xAE,0x37,
+0x71,0x01,0x6A,0x66,0x52,0x7A,0x3E,0x61,0xA2,0x8B,0xB9,0x24,0xD7,0xCC,0x7F,0xA5,
+0xC3,0x3C,0xD8,0xE9,0x81,0x31,0xA6,0x2A,0xC2,0x0F,0xD9,0xC0,0x0F,0x14,0xB5,0xB7,
+0xBD,0x9B,0xA6,0x30,0xEC,0x97,0x6D,0x8C,0x5D,0x04,0x46,0x54,0x6F,0x74,0x31,0x53,
+0x38,0xA3,0x23,0x8D,0x4B,0xE9,0xB4,0xF2,0x11,0x96,0x0A,0x8A,0x80,0x9B,0xFE,0x73,
+0xC2,0x1C,0xD9,0xC8,0x32,0x6B,0x4F,0x70,0x7F,0x71,0x64,0x03,0xBE,0xA5,0xD9,0x6A,
+0xB2,0xD8,0xA9,0x7C,0x37,0x5C,0x7D,0x47,0xD5,0x0E,0xCE,0xD6,0xEF,0xF4,0x39,0xDB,
+0x3A,0xD2,0x21,0xFE,0x6A,0xFF,0x83,0xE4,0x8F,0xBD,0x94,0x3F,0x16,0x0D,0xD7,0xCC,
+0xF6,0x48,0xED,0xA8,0x07,0x59,0x48,0x42,0x0C,0xE4,0x17,0xE5,0x7B,0x60,0x61,0x17,
+0xF8,0x2B,0xE3,0xC5,0xED,0x80,0x7B,0x9B,0x55,0x06,0x4E,0x5E,0xDF,0xC4,0x7D,0xAF,
+0xFD,0x1B,0xE6,0xF0,0x57,0x4D,0x0C,0x56,0xB1,0x9A,0xAA,0x26,0xAE,0xB5,0x99,0x3A,
+0x70,0x21,0x6B,0x47,0x40,0x76,0x20,0x6D,0x49,0x54,0x52,0x10,0x76,0x6D,0x53,0x28,
+0x75,0x11,0x6E,0x72,0x7C,0xD3,0xB9,0xC8,0xB3,0xEB,0xA8,0x55,0x9C,0x87,0xAC,0x3D,
+0xDF,0x6E,0xC4,0xA7,0xBA,0xAB,0x07,0xB0,0xD4,0x2E,0xCF,0xF7,0x7C,0x67,0x20,0x51,
+0x01,0xC5,0x1A,0xD2,0xCC,0x96,0x4C,0x8D,0x14,0xA6,0x0F,0xBF,0x95,0x8E,0x8E,0x16,
+0x50,0x25,0x4B,0x63,0x29,0xF0,0xCF,0xEB,0xFF,0x79,0xE4,0x8B,0x04,0x1F,0xE6,0xEF,
+0x2A,0x92,0x31,0xAE,0x50,0x72,0x34,0x69,0x18,0xB4,0x03,0xA1,0x2E,0x35,0x91,0xB2,
+0x7F,0x62,0x64,0x0B,0x1E,0xCA,0xC2,0xD1,0x51,0x16,0x4A,0x4A,0x7A,0x61,0x41,0x36,
+0xCB,0x3E,0xD0,0xE3,0xDC,0x92,0x58,0x89,0x29,0xD0,0x32,0xF4,0x1C,0x07,0xA4,0xB5,
+0xE6,0x08,0xFD,0xF8,0x70,0x73,0x15,0x68,0xDD,0x0C,0xC6,0xDC,0x37,0x2C,0xF3,0xC9,
+0x9D,0x9F,0x86,0x14,0x6B,0xE8,0x95,0xF3,0xDB,0x6D,0xC0,0xBB,0xC5,0xDE,0x4E,0x86,
+0x09,0xC7,0x12,0xD8,0x0B,0xF9,0xE4,0xE2,0x1E,0xD5,0x05,0xC6,0x5B,0x40,0x65,0x33,
+0x29,0xC3,0x32,0xFC,0xA8,0xA7,0x19,0xBC,0x81,0xDE,0x9A,0x52,0x3E,0x25,0xD1,0xE2,
+0x36,0xC0,0x2D,0xE0,0x73,0x6C,0x09,0x77,0x98,0xBC,0x83,0x29,0xA8,0xB3,0xF8,0x5D,
+0x39,0x83,0x22,0xAC,0x49,0xE1,0xBE,0xFA,0x60,0x72,0x7B,0x1F,0x91,0x8A,0x9E,0x02,
+0x55,0x15,0x4E,0x56,0x9D,0x95,0x1E,0x8E,0xDA,0x4D,0xC1,0x9A,0x1D,0x06,0x84,0x94,
+0x23,0xB0,0x38,0x85,0x74,0x53,0x31,0x48,0x79,0x10,0x62,0x64,0x9F,0x84,0xFD,0x6F,
+0x24,0xF1,0x3F,0xC3,0xE0,0x37,0xC1,0x2C,0x85,0xCE,0x9E,0x46,0xCC,0xD7,0x6C,0xAD,
+0xBC,0xBB,0xA7,0x11,0x3A,0xEB,0xC7,0xF0,0x3B,0xE1,0x20,0xD7,0xBF,0xA4,0xF9,0x4B,
+0xCD,0x5F,0xD6,0x84,0x78,0xF3,0x9D,0xE8,0xB5,0x8A,0xAE,0x32,0xF1,0xEA,0x1A,0xE6,
+0x1A,0xD6,0x01,0xDA,0x19,0xF5,0xFA,0xEE,0xEC,0x68,0xF7,0x89,0x09,0x12,0xD4,0xD0,
+0xFE,0x4A,0xE5,0xA2,0x14,0x42,0x40,0x59,0x83,0xAF,0x98,0x21,0x5E,0x45,0x55,0x06,
+0x41,0x45,0x5A,0x12,0x33,0x7C,0x59,0x67,0x8B,0xAD,0x90,0x2B,0x9A,0x81,0xCD,0x5A,
+0x85,0xDD,0x9E,0x4E,0x2A,0xEF,0xD3,0xF4,0xA1,0xDA,0xBA,0x76,0x99,0x82,0x9C,0x08,
+0x3E,0xC2,0x25,0xEA,0x3B,0xFC,0xD1,0xE7,0x63,0x23,0x78,0x4D,0x57,0x4C,0x77,0x2D,
+0xBF,0xEA,0xA4,0x43,0x0A,0xEE,0xF2,0xF5,0xC1,0x5E,0xDA,0x92,0x34,0x2F,0xA2,0x9B,
+0x22,0x90,0x39,0xA4,0x80,0x26,0xB0,0x3D,0x24,0xE2,0x3F,0xCB,0xB7,0xAC,0xFB,0x41,
+0x0E,0x86,0x15,0x9E,0x26,0x4F,0x7F,0x54,0xF9,0x18,0xE2,0xEC,0xBA,0xA1,0xC9,0x7E,
+0x28,0xE3,0x33,0xDD,0x76,0x5B,0x3B,0x40,0xAA,0x89,0xB1,0x2E,0x36,0x2D,0xD3,0xE8,
+0x11,0x85,0x0A,0x82,0xC4,0x16,0xC4,0x0D,0xA5,0xCA,0xBE,0x62,0x73,0x68,0x63,0x1D,
+0x6B,0x5D,0xBE,0xB9,0x80,0x4C,0x43,0x63,0xD8,0x3B,0xE8,0x5C,0x64,0x0A,0x87,0x02,
+0xC3,0x32,0xD1,0x7E,0xD7,0x9A,0xC2,0x34,0x3C,0xDF,0x90,0xC0,0xD3,0xB0,0x30,0x0F,
+0x78,0x6B,0x88,0x9C,0x2F,0xAC,0x0C,0xCC,0xEB,0x08,0xCE,0x49,0xD5,0xD7,0x36,0x6E,
+0x9D,0xE5,0x06,0xF7,0x61,0x01,0xEF,0x82,0x9A,0x79,0x5B,0xAD,0xCD,0x8D,0x2E,0x2C,
+0x0C,0x5B,0xB8,0xD8,0x12,0xE7,0x7A,0xF1,0x02,0xE1,0x89,0xE7,0x11,0x8B,0xF2,0xF6,
+0x2E,0xA7,0x44,0x06,0x41,0x25,0xEB,0xA2,0x05,0xE6,0xCF,0xA6,0x75,0x7B,0x96,0x62,
+0xD0,0x04,0xE7,0x5B,0xC3,0xDE,0x92,0x20,0x73,0x90,0x1C,0x03,0xB3,0x54,0x50,0x8B,
+0x55,0xBE,0x5D,0x64,0x4F,0x48,0x88,0xAC,0x1F,0xFC,0xE6,0x95,0xC7,0xF4,0x24,0x5F,
+0x28,0x7B,0x98,0xDC,0xAD,0x57,0x75,0x4E,0x37,0xD4,0xC8,0x93,0x30,0x8E,0xD3,0xD2,
+0x64,0x74,0x97,0x9F,0xE8,0xA2,0xC5,0x0B,0x0E,0xED,0x97,0xF5,0x7D,0x71,0x9E,0x60,
+0xA6,0x27,0xC4,0x0E,0x64,0x34,0xDF,0x87,0x28,0xCB,0xD4,0x90,0x69,0x35,0x8A,0x30,
+0x81,0xFA,0x19,0xF4,0x69,0x0B,0xED,0x8A,0x04,0xE7,0xEE,0x86,0x00,0xFA,0xE3,0x96,
+0xD8,0x1F,0xFC,0x48,0xEA,0xD1,0xB4,0x09,0x99,0x7A,0x09,0xFC,0xC8,0xB8,0x2B,0x1C,
+0x07,0xBD,0x5E,0x35,0x89,0x67,0x61,0x6A,0x18,0xFB,0xA0,0xD4,0xDA,0x9B,0x39,0x2D,
+0x3C,0x7F,0x9C,0xCC,0x47,0x42,0x8A,0xA4,0xA3,0x40,0x04,0xCB,0xC9,0x99,0x2A,0x3C,
+0x61,0x55,0xB6,0xBB,0x44,0x10,0xDB,0xA7,0x67,0x84,0x58,0x53,0x5A,0x13,0xB9,0x25,
+0xC1,0x21,0xC2,0x6F,0xDA,0xA5,0xF0,0x39,0x76,0x95,0x29,0x33,0xD6,0x85,0x35,0x3F,
+0xF5,0xCA,0x29,0xB0,0x4B,0x5C,0x98,0xA8,0x27,0xC4,0x98,0xD3,0xB0,0x06,0x53,0xDA,
+0xBD,0x0A,0xE9,0x38,0xA2,0x1B,0x36,0x41,0xF9,0x1A,0xED,0x78,0x8D,0x4D,0x6E,0xAC,
+0x1F,0x6D,0x8E,0xFD,0x42,0x77,0xBA,0xA1,0x53,0xB0,0x38,0x07,0xF5,0xF3,0x16,0x6A,
+0x5A,0x97,0x74,0x42,0xA8,0x62,0x45,0x4B,0x56,0xB5,0x0D,0x37,0x50,0x6A,0xB3,0x56,
+0x6C,0x6F,0x8C,0x8C,0x70,0x70,0x8F,0x93,0xDB,0x38,0xBA,0x0D,0x6B,0x46,0x88,0x41,
+0x14,0x8B,0x68,0x10,0x01,0xE5,0x6B,0xE2,0xDE,0x3D,0x8F,0x3D,0xA6,0x31,0x45,0xFB,
+0xAF,0xD2,0x31,0xF2,0xA5,0x5D,0x77,0x46,0xD0,0x33,0xE2,0x5E,0x7F,0x02,0x9C,0x11,
+0x63,0x46,0xA5,0xAA,0x76,0x17,0xEE,0x95,0x10,0xF3,0xAA,0xD6,0x4A,0x43,0xA9,0x65,
+0x18,0x5F,0xBC,0xC8,0xE0,0xA8,0xC7,0x03,0x0F,0xEC,0xB6,0xD5,0x81,0x53,0x62,0xBE,
+0x8C,0xC0,0x23,0xC3,0x85,0x79,0x73,0x66,0x2F,0xCC,0x92,0xD1,0xDF,0xAE,0x3C,0x1D,
+0xF1,0x05,0xE6,0x7B,0x1B,0xCC,0x58,0xF8,0xBB,0x58,0x5E,0x89,0xCE,0xDF,0x2D,0x7D,
+0x96,0x03,0xE0,0x1A,0xE9,0x83,0xE5,0x0A,0xC0,0x23,0xB2,0x1E,0x55,0x5F,0xB6,0x66,
+0xBE,0xF7,0x14,0xC6,0xC2,0xFF,0xB2,0x21,0xED,0x0E,0xA9,0x28,0xB4,0x12,0x57,0xCA,
+0x00,0x8F,0x6C,0x00,0xA4,0x7C,0x57,0x47,0x59,0xBA,0x41,0x74,0xEC,0x88,0x0F,0x08,
+0xEB,0xC6,0x25,0xA2,0xF0,0xF8,0x87,0x13,0x0C,0xEF,0xE4,0x84,0x54,0x7E,0xB7,0x46,
+0x56,0x43,0xA0,0x9A,0xCE,0xE1,0xA0,0x2D,0x36,0xD5,0xE9,0xB3,0x8F,0x3E,0x6C,0xDD,
+0x0F,0xA6,0x45,0x26,0x15,0xA1,0x3B,0xF6,0x71,0x92,0x6F,0x72,0x70,0x4E,0x93,0x52,
+0xB5,0x11,0xF2,0x2B,0x0D,0xFB,0x79,0xEE,0x96,0x75,0x45,0xBF,0xBF,0x4A,0x5C,0x99,
+0x1A,0x4C,0xAF,0xD9,0x13,0xC6,0x5A,0xF0,0xAA,0x49,0x2F,0xE9,0x12,0xD9,0xF1,0xA7,
+0xDC,0xD0,0x33,0x83,0x34,0xA4,0x1F,0xD7,0xF7,0x14,0x80,0x1B,0xC6,0xD5,0x25,0x7F,
+0x93,0x22,0xC1,0x3E,0xD8,0xD6,0x81,0x3B,0x6D,0x8E,0x21,0x20,0x85,0x47,0x66,0xAE,
+0x7F,0x59,0xBA,0xA9,0x4D,0x3B,0xF9,0xAE,0xDD,0x3E,0xDD,0x6C,0x22,0xAD,0xC1,0xE3,
+0x24,0xAF,0x4C,0x04,0x1D,0xAB,0x39,0xFE,0x26,0xC5,0xB9,0xF3,0x4F,0x76,0xAC,0x55,
+0x75,0x51,0xB2,0xAB,0xC8,0x86,0xC1,0x2B,0x1C,0xFF,0xB4,0xC4,0xD9,0xC9,0x3A,0x7C,
+0x9C,0x0B,0xE8,0x18,0x31,0x91,0x2F,0xD2,0x94,0x77,0x36,0xCE,0x7A,0x37,0x99,0x21,
+0x49,0xA1,0x42,0x67,0x60,0x20,0xCF,0x83,0xE4,0x07,0x82,0x0A,0x4D,0x05,0xAE,0x24,
+0xC0,0xCF,0x2C,0x80,0x5E,0x39,0xE8,0xBD,0x1E,0xFD,0xC7,0xB5,0xCF,0xFE,0x2C,0x5D,
+0x1E,0x83,0x60,0x12,0xB1,0x19,0x27,0x52,0x9B,0x78,0x7A,0x8D,0xB1,0x27,0x52,0xFA,
+0x8A,0x1C,0xFF,0x19,0xD1,0xFD,0xA3,0x32,0xE5,0x06,0xA3,0x2A,0x17,0xEC,0xF4,0x97,
+0x6E,0x7C,0x9F,0x9D,0x09,0xEF,0x69,0xEA,0x57,0xB4,0x2C,0x17,0x5C,0x74,0xBF,0x44,
+0xBF,0x19,0xFA,0x29,0x4A,0x7D,0xB8,0xA9,0x24,0xC7,0xCA,0x82,0x3E,0xE3,0xDD,0xB1,
+0x51,0x71,0x92,0xAF,0x56,0x33,0xEA,0xB5,0x90,0x73,0x22,0xDE,0x2E,0xB3,0xCD,0xF1,
+0x50,0x9F,0x7C,0x40,0xF8,0xF2,0x85,0x1B,0x35,0xD6,0xBB,0xE2,0x16,0xCD,0xF5,0xB7,
+0xD2,0x17,0xF4,0x4A,0x02,0xB7,0x3A,0xE1,0x07,0xE4,0xBC,0xD7,0x91,0x03,0x72,0xFE,
+0x11,0xAA,0x49,0x34,0x48,0x0E,0xC9,0xAB,0x38,0xDB,0x84,0xD0,0x72,0x3D,0x91,0x23,
+0xFC,0x3F,0xDC,0x4C,0xA0,0x68,0x47,0x43,0xEF,0x0C,0xDA,0x59,0x84,0x66,0x67,0x8E,
+0xF7,0xD9,0x3A,0xA1,0x63,0x72,0x9E,0x80,0x77,0x94,0x08,0x13,0xAD,0x69,0x4E,0xA8,
+0x4F,0x7D,0x9E,0xBD,0xBB,0x60,0x54,0x58,0x1D,0xFE,0x95,0xE4,0x7E,0x23,0x9D,0x31,
+0x59,0x6A,0x89,0xBC,0x8D,0x73,0x71,0x6E,0x51,0xB2,0x4B,0x76,0x01,0xDB,0xE2,0xB6,
+0x44,0x9B,0x78,0x50,0x18,0x9E,0x09,0xFB,0x86,0x65,0x15,0xFF,0xCA,0xCB,0x29,0x6D,
+0x26,0xBC,0x5F,0x15,0x98,0x16,0x01,0x7B,0x48,0xAB,0x30,0x14,0x65,0x2B,0x86,0x22,
+0xC5,0xEE,0x0D,0xA4,0x37,0xF6,0x4E,0xD4,0xFD,0x1E,0xF9,0x68,0x6F,0x52,0x8C,0x51,
+0x87,0x26,0xC5,0x2E,0xF6,0x9F,0xE6,0x15,0x3F,0xDC,0xC2,0x91,0x3D,0xB1,0xDE,0xE0,
+0xF0,0xEB,0x08,0x94,0xC9,0xA7,0xE1,0x2A,0xB7,0x54,0x40,0x9B,0x8B,0x2A,0x68,0xCD,
+0x1D,0x7E,0x9D,0xEC,0x20,0xE0,0x4F,0xC3,0x62,0x81,0x6D,0x63,0x5B,0x32,0xB8,0x05,
+0x3F,0x82,0x61,0x32,0x9A,0x65,0x70,0x79,0x40,0xA3,0x3A,0x16,0xCB,0xEA,0x28,0x4D,
+0xD3,0xF9,0x1A,0xA5,0x5A,0x2D,0xF8,0xB9,0xF3,0x10,0x94,0x0B,0xE3,0xC4,0x00,0x4B,
+0x7F,0x66,0x75,0x97,0xE8,0xA9,0xA3,0xCF,0x0B,0xC1,0x01,0x4E,0x80,0x06,0x08,0x0C,
+0x3A,0xD6,0x30,0x62,0xA4,0xA6,0xAC,0x8C,0x46,0x73,0x4C,0xB1,0xE6,0x3F,0x57,0x35,
+0xB6,0xCC,0xBC,0xF4,0x66,0xF5,0xFF,0x1D,0x52,0x23,0x58,0xF5,0x83,0x19,0x14,0x13,
+0xBB,0xFE,0xB1,0xCB,0x41,0x28,0x22,0xE7,0x3B,0x85,0x31,0x3A,0x95,0x35,0x2E,0x3F,
+0x38,0xA7,0x32,0x11,0x18,0xCD,0xC7,0x5B,0xF3,0x0F,0xF9,0x78,0xEF,0xA8,0xC9,0xA2,
+0x5B,0x72,0x51,0xA7,0xC7,0x6F,0x65,0x26,0xE1,0x3E,0xEB,0x5B,0xC7,0x29,0x60,0x23,
+0x95,0x99,0x9F,0x82,0xFC,0xAD,0xA7,0xDF,0xF2,0x2F,0xF8,0x59,0xD8,0x92,0xC4,0x98,
+0x96,0xC8,0x9C,0xD0,0xA1,0x87,0x8D,0xA8,0x61,0x36,0x6B,0xD3,0x40,0x56,0x98,0x5C,
+0x52,0x50,0x58,0x8C,0xAB,0x8F,0x85,0xAA,0x5F,0x11,0x55,0xCA,0x4F,0xE9,0x28,0xE3,
+0x05,0xD1,0x0F,0x5A,0x03,0xE0,0xEA,0x6D,0xE8,0x1C,0xE2,0x70,0xD3,0x0D,0x50,0x07,
+0xFD,0x1F,0xF7,0x6C,0xB8,0xB9,0xB3,0x8F,0xEE,0x7D,0xE4,0x17,0x5A,0xDA,0x0E,0xD0,
+0xB3,0xFC,0xB9,0xC1,0x5D,0x37,0x3D,0xE4,0xF6,0x3F,0xFC,0x4D,0xBE,0xAB,0x9B,0xA1,
+0xC0,0x69,0xCA,0x27,0xCC,0x89,0x83,0xCB,0x2A,0xE5,0x20,0x4B,0xF4,0x33,0x49,0x39,
+0x93,0xF8,0x99,0xE5,0xEE,0x75,0x7F,0x15,0x4E,0x71,0x44,0xBB,0xB5,0x34,0x0F,0x3E,
+0x11,0x81,0x1B,0x1E,0x10,0xD6,0xDC,0x48,0x88,0x98,0x82,0x94,0x10,0x42,0xDC,0x48,
+0x9D,0x9B,0x97,0x88,0x95,0x6C,0x66,0x77,0xFC,0x4C,0xF6,0x34,0x86,0x2E,0x26,0x24,
+0xA4,0xFD,0xAE,0xD7,0xA3,0x94,0x9E,0xB9,0x71,0x76,0x7B,0x83,0xC5,0x21,0x6A,0x2B,
+0x32,0xD4,0x38,0x68,0xD8,0x8D,0x87,0xDB,0xBA,0xAD,0xB0,0x93,0xC6,0x3E,0x76,0x34,
+0x57,0x60,0x5D,0xB9,0x4C,0x12,0x18,0xD0,0xE4,0x0E,0xEE,0x6E,0xC2,0x1E,0x52,0x14,
+0xC9,0x4B,0xC3,0x0C,0x31,0xD7,0xDD,0x68,0xF5,0x6E,0xFF,0x1F,0x9A,0x8A,0x9E,0x80,
+0x3B,0xF6,0x31,0x43,0x56,0xD1,0xDB,0x09,0x6E,0x75,0x64,0x9F,0x0D,0xF1,0x72,0xFB,
+0x10,0xA1,0x1A,0x3F,0x7E,0x25,0x2F,0xD5,0x8F,0xD9,0x85,0xD2,0x3B,0xDC,0x69,0xD6,
+0x76,0x44,0x7C,0xBC,0xC0,0x5D,0x57,0x13,0xD7,0x1B,0xDD,0x48,0x67,0x68,0x81,0x62,
+0x22,0x94,0x28,0x38,0x2B,0x14,0x1E,0xB1,0x6F,0x55,0x65,0xBE,0x97,0x3D,0x24,0x37,
+0x08,0xE3,0x02,0x65,0x01,0xF3,0xF9,0x7C,0xED,0x2C,0xE7,0x45,0x20,0x47,0xE9,0x4D,
+0x99,0x8B,0x93,0x9C,0x35,0x18,0x12,0xA3,0x8B,0xC9,0x81,0xC6,0xC0,0x16,0x58,0x1C,
+0x70,0x25,0x7A,0xDB,0x7D,0xD8,0xD2,0x2B,0xB6,0xBF,0xBC,0x8D,0x6B,0xC8,0x2D,0xC2,
+0x90,0xA9,0x9A,0xB7,0xDF,0xBF,0xB5,0xEE,0xCE,0x79,0xC4,0x33,0x14,0x62,0xF8,0x68,
+0x7A,0x56,0x70,0xA2,0x9A,0x45,0x4F,0x51,0x6B,0x45,0x61,0xAA,0x24,0x67,0xCD,0x6D,
+0xA2,0x9C,0xA8,0xB0,0xAC,0xBD,0xB7,0x9F,0x50,0x52,0x5A,0x86,0x1E,0xEA,0x7A,0xE0,
+0xD3,0x78,0xD9,0x25,0xD4,0x59,0x53,0x03,0x9D,0xE8,0x97,0xF1,0x2E,0xEF,0x4F,0xE5,
+0x77,0x64,0x7D,0x9D,0x6F,0x00,0x0A,0xE1,0x44,0x02,0x4E,0xC2,0x4D,0xE1,0x22,0xEB,
+0x1A,0xD2,0x10,0x46,0xB5,0x83,0x89,0xB8,0xE2,0x6F,0xE8,0x09,0xD7,0x2D,0x74,0x27,
+0xE3,0x3C,0xE9,0x51,0x5C,0xD9,0xD3,0x0B,0x41,0x32,0x4B,0xF7,0xDD,0xA5,0xF6,0xAF,
+0xB2,0xDC,0xB8,0xE0,0x89,0x73,0x79,0x74,0x76,0x37,0x7C,0xC5,0x19,0xD5,0x42,0xDF,
+0x8C,0xFB,0x86,0xF9,0x00,0x1D,0x17,0x93,0xF4,0x4E,0xFE,0x3E,0xA6,0x2F,0x07,0x25,
+0x63,0x34,0x69,0xD9,0xDE,0x51,0x5B,0x01,0x8A,0xE9,0x80,0xE7,0x9E,0xAA,0xBA,0xA0,
+0x03,0xB0,0x09,0x3D,0x4A,0xCE,0xC4,0x0A,0x2C,0x84,0x26,0x2C,0x39,0xD4,0x63,0xDE,
+0xDB,0x7A,0xD1,0x2F,0xAE,0xAE,0xA4,0x8E,0x67,0x57,0x6D,0xB4,0x04,0x66,0xEC,0x6C,
+0x98,0xAB,0x92,0xBD,0x7F,0xCB,0xC1,0x3A,0x05,0xA2,0x0F,0x23,0x91,0x15,0x0A,0x1F,
+0x1C,0xB3,0x16,0x21,0x96,0x91,0x9B,0x89,0xB4,0xCE,0xBE,0xFE,0xA0,0x07,0x29,0x0D,
+0xC7,0x28,0xCD,0x61,0xCF,0x74,0x7E,0x35,0x4B,0x41,0x41,0x8E,0x61,0x40,0xAF,0x4A,
+0xDF,0x6A,0xD5,0x3B,0x75,0xC3,0xC9,0x38,0x84,0x8A,0x8E,0x8A,0xAC,0xA7,0x85,0xAD,
+0xC1,0x49,0xCB,0x06,0xDA,0x9E,0x94,0xCA,0x29,0xB4,0x23,0x19,0xFA,0x9B,0xEF,0x91,
+0xE6,0x0C,0xEC,0x64,0x1C,0x02,0x08,0x90,0xFD,0x6C,0xF7,0x15,0x08,0xC6,0x40,0xCC,
+0x0A,0x92,0x00,0x16,0x53,0xF0,0xFA,0x2D,0xBE,0xBD,0xB4,0x87,0x33,0x5C,0xE1,0x56,
+0x9F,0xEA,0x95,0xFB,0xBF,0x8B,0x81,0xBA,0x19,0xF0,0x13,0x6D,0x7F,0xEC,0x1D,0xE6,
+0xCF,0x2A,0xC5,0x6B,0xE4,0x7D,0x77,0x17,0x74,0x46,0x7E,0xB6,0xE0,0x17,0x79,0x1D,
+0xCA,0x1A,0xC0,0x5E,0x84,0x49,0x43,0x43,0xF1,0x7E,0xFB,0x0B,0xEC,0xB7,0xD5,0xBD,
+0x4A,0x12,0x40,0xD6,0xE6,0x6E,0x64,0x06,0x5E,0x31,0x54,0xEB,0x07,0x79,0xF0,0x73,
+0xE5,0x5D,0xEF,0x36,0x05,0x3C,0x36,0xB7,0x54,0x42,0x5E,0x92,0x7B,0xCC,0x39,0xC6,
+0x24,0xF5,0x2E,0x5F,0x47,0xF4,0xFE,0x3D,0x06,0xF3,0x0C,0x71,0x82,0x0E,0x02,0x04,
+0x1B,0xF2,0x11,0x67,0x30,0x39,0x33,0x87,0xB0,0xDE,0xBA,0xEA,0x88,0x86,0x80,0x8C,
+0xF2,0x5C,0xF8,0x20,0xDD,0xAC,0xA6,0xFF,0x60,0x16,0x6A,0xF2,0x70,0x53,0xAD,0x59,
+0x48,0x63,0x42,0xA5,0xFF,0x50,0x5A,0x21,0xF0,0x5E,0xFA,0x2A,0x05,0x71,0xFA,0x7B,
+0x88,0xEB,0x82,0xED,0x13,0x2B,0x21,0xB6,0xD8,0x58,0xD2,0x04,0x18,0xC2,0x54,0xC8,
+0x84,0xF9,0x8E,0xF3,0x91,0xA3,0xA9,0xBC,0x15,0xE2,0x1F,0x73,0xCD,0xA1,0xE2,0xAB,
+0x2A,0x96,0x20,0x32,0x90,0x4D,0x47,0x53,0x2D,0xA4,0x27,0x0D,0xF1,0x04,0x7B,0x0E,
+0xD0,0x29,0xDA,0x77,0x12,0xC5,0xCF,0x59,0xAA,0xED,0xA0,0xC3,0xC4,0x36,0x7C,0x3C,
+0x9A,0xDA,0x90,0xCE,0xD1,0x78,0x72,0x27,0x49,0x30,0x43,0xFD,0xC3,0x09,0x44,0x03,
+0x72,0x54,0x78,0xA8,0x3C,0xED,0xE7,0x5F,0xBF,0x9D,0xB5,0xA6,0x4A,0xDE,0x1A,0xD4,
+0xB1,0x8D,0xBB,0xB2,0x37,0x0B,0x01,0xB2,0x96,0xBB,0x9C,0xA9,0x00,0x46,0xC8,0x4C,
+0x69,0x47,0x63,0xA0,0x8F,0xAF,0xA5,0xAE,0x45,0x22,0x4F,0xE3,0xF7,0x2C,0x55,0x26,
+0x5F,0x62,0x55,0xB3,0x99,0xB8,0xB2,0xAF,0x3A,0xA5,0x30,0x1B,0x65,0x60,0x8B,0x6A,
+0xAB,0x0F,0xC1,0x1B,0xBB,0x07,0xCD,0xAF,0x9D,0xBB,0x43,0xAF,0x40,0x27,0x54,0x02,
+0x1A,0x5E,0x21,0x4A,0xDD,0x84,0x28,0xC9,0x42,0x50,0x77,0x44,0xD1,0xDE,0xC5,0x6A,
+0x6F,0x80,0x8A,0x94,0xE0,0xCF,0x5E,0xF4,0xCA,0x90,0x3F,0x84,0x38,0x99,0x2C,0xC4,
+0xBA,0x2A,0xF5,0x3E,0x98,0x71,0x98,0x8C,0x0F,0xF7,0x9D,0xE3,0xD8,0xF5,0xCC,0x48,
+0x8F,0x2F,0xC5,0x3B,0x3D,0xE8,0xA4,0x29,0xB0,0x0D,0xD8,0x19,0x32,0xE0,0x26,0xB7,
+0x38,0xA2,0xFF,0xB6,0x06,0xC4,0xB3,0x12,0x7E,0xF5,0xEE,0xE1,0xEA,0xF2,0xFE,0x7D,
+0x0D,0xA7,0xCF,0xB3,0xCB,0xB3,0x09,0xDF,0xE2,0x11,0x96,0x05,0x9B,0x67,0x8F,0x99,
+0x60,0xA9,0xAC,0xBD,0x12,0x80,0xE3,0x06,0x00,0x48,0x2D,0x5C,0x3F,0xDF,0x2B,0x85,
+0x28,0x69,0x24,0x7D,0x27,0xC1,0x97,0x33,0x58,0xDC,0xE1,0xC8,0xEC,0x95,0xF8,0x1C,
+0x34,0x76,0x27,0x62,0xEC,0xD1,0x4C,0xF8,0x3A,0xC5,0x9A,0xD1,0x7A,0x2A,0x6E,0x35,
+0x10,0x56,0x23,0x42,0xB2,0x2C,0xEF,0xA6,0x31,0x5A,0x0E,0x4E,0x1F,0xFB,0x0B,0x81,
+0xDC,0xC2,0x7B,0xD6,0xA3,0x5D,0x8F,0xB7,0x89,0x9F,0x73,0x8B,0x81,0x4E,0x95,0xAA,
+0x30,0xB9,0xEC,0xAD,0x38,0xDD,0x94,0x2C,0xE8,0x99,0x14,0x8D,0x73,0x01,0x67,0x17,
+0x2B,0x94,0xDA,0x80,0xD9,0x90,0x38,0xCD,0x34,0x6D,0x3C,0x79,0x58,0x7D,0x4C,0x40,
+0xC3,0x20,0x86,0x34,0x81,0x0A,0xFA,0x95,0xF2,0x15,0x82,0x01,0x3E,0xFE,0x2A,0xA5,
+0x66,0x75,0x76,0x61,0x39,0xFC,0xB4,0x2D,0x50,0x5C,0x69,0x48,0x6A,0x7A,0x7E,0x75,
+0x6A,0xA1,0xAE,0xB5,0x09,0x88,0xF0,0x1D,0x4B,0xC7,0xE9,0xD3,0x1A,0xCE,0x0E,0xB1,
+0x12,0x45,0x32,0x51,0xBE,0x32,0xFD,0xAA,0x8C,0xA8,0x41,0xBC,0x4D,0x18,0x59,0x30,
+0x4C,0x92,0xBB,0x86,0xB8,0x55,0x9C,0xAC,0x6E,0xF1,0xFA,0xE5,0xB5,0x2E,0xA1,0xFE,
+0xD9,0xE3,0x5F,0xF7,0xA0,0x0F,0xDE,0xB4,0x05,0x7F,0x1F,0x6B,0xFB,0x83,0xEF,0x1D,
+0x0B,0x7B,0x15,0x6F,0x7C,0x09,0x04,0x68,0x2A,0xC1,0x8E,0xD5,0x88,0x65,0x9C,0x88,
+0x4D,0x7C,0x54,0x68,0x18,0xF9,0x90,0x0C,0xF4,0x3D,0xAC,0x29,0xDB,0xA7,0xCF,0x19,
+0x9E,0x0A,0xF1,0x1E,0xDE,0xD6,0x79,0xCA,0xA9,0x9E,0x52,0x8A,0x59,0x5C,0x4D,0x60,
+0x64,0x66,0x67,0x72,0xAA,0x76,0xAD,0xBE,0x96,0x24,0xD7,0x30,0xD5,0xCA,0xC1,0x7A,
+0x4A,0x4E,0x61,0x5A,0x5D,0x0C,0x20,0x49,0x2E,0xE1,0xAA,0xF5,0x37,0xD5,0x23,0x87,
+0x15,0x77,0x07,0x63,0x10,0xF3,0x92,0x04,0x6D,0xEE,0xE6,0xFA,0x72,0x20,0x66,0x37,
+0x56,0x51,0x62,0x45,0x04,0xB7,0xC2,0x10,0xFC,0xBD,0x24,0xA9,0xFE,0xB6,0xEA,0x2D,
+0x6C,0x7D,0x74,0x69,0x6D,0x78,0x64,0x79,0x06,0x60,0x03,0x74,0xF3,0x89,0xE7,0x1F,
+0x8B,0xE0,0x0E,0xF4,0xA5,0x3A,0xEE,0xB1,0xBA,0x85,0x5A,0x91,0x70,0x53,0x64,0x46,
+0x22,0x61,0x26,0x75,0xB7,0x19,0xDF,0xA3,0xC7,0x27,0x85,0x33,0x13,0xE5,0x07,0x93,
+0x86,0xDA,0x39,0xCE,0xA4,0x1B,0xCE,0xB0,0x3E,0xE5,0xBE,0xF1,0xDD,0xC0,0xC9,0x78,
+0xDA,0x1E,0xA1,0x0A,0x37,0x91,0xD7,0x23,0x49,0xCF,0xE3,0xDB,0xDE,0x92,0xCA,0x29,
+0xA0,0xE9,0x2C,0xFD,0x43,0x31,0x03,0x57,0x5D,0xEB,0xD3,0xFF,0xCC,0xB1,0xD8,0x18,
+0x39,0x4C,0x10,0x58,0x7B,0x4F,0x45,0x6F,0xB2,0x05,0xD2,0x11,0x62,0x70,0x76,0x77,
+0x3E,0x7E,0x25,0x6A,0xFC,0x81,0x0C,0xE8,0xB8,0x8D,0x50,0x99,0x98,0x35,0x8C,0xC8,
+0x06,0x41,0x22,0x55,0x1F,0xBF,0xD1,0x0B,0xC6,0x30,0x93,0x24,0xD2,0x8C,0xC6,0x3B,
+0x58,0x96,0xAB,0x82,0xE9,0xE4,0x7C,0xFD,0xBE,0xA5,0x7E,0xB1,0x3A,0xEA,0x2E,0xB5,
+0x8A,0x0E,0xE1,0x1A,0xC0,0xEB,0x5A,0xD4,0x53,0x43,0x75,0x57,0xF9,0xF0,0xED,0x6C,
+0x17,0x64,0x16,0x70,0x13,0xA1,0xC3,0x07,0x4F,0xE7,0xCD,0xF3,0x21,0xE2,0x35,0xA6,
+0xC9,0x28,0x84,0x3C,0x6C,0x59,0x44,0x78,0x4E,0xF0,0xDB,0xE4,0x17,0xF1,0x03,0x83,
+0x97,0xFF,0x0D,0xEB,0xA7,0x49,0x9F,0xB3,0xA2,0x01,0xC6,0x15,0x82,0x1C,0x96,0xFB,
+0xB2,0x31,0xE6,0x25,0x08,0xA9,0xD0,0x1C,0xE7,0x26,0xA4,0x32,0x02,0x94,0x16,0xF3,
+0x7B,0x84,0x9A,0x90,0x02,0xD0,0xA3,0x16,0x56,0x74,0x47,0x60,0xAD,0x74,0xB9,0xBC,
+0x40,0x46,0x63,0x52,0x50,0x33,0x12,0x44,0xDC,0xBC,0x05,0xA8,0x6C,0x1D,0x78,0x14,
+0xC2,0xCE,0x69,0xDA,0xE6,0xA8,0x3F,0xF2,0x66,0x71,0x72,0x65,0x53,0x25,0x47,0x13,
+0xEF,0x1B,0x91,0x0F,0x36,0xB0,0xF7,0x22,0x1E,0xE4,0x9F,0xF0,0xBA,0x62,0xAE,0xBD,
+0xB8,0x39,0xE4,0x2D,0xA6,0x68,0xBF,0xB2,0xC0,0x18,0xBD,0x0C,0x00,0xE7,0x14,0x82,
+0x16,0x8A,0xF9,0x9E,0x8E,0x46,0xB9,0x9A,0x57,0x63,0x51,0x77,0xC0,0xAF,0xD4,0x0A,
+0x6B,0x4F,0x41,0x5B,0xE2,0xBC,0x2F,0xF6,0x68,0xD9,0xD4,0xCD,0x54,0x63,0x40,0x52,
+0xED,0x08,0x80,0x1C,0x1D,0xCC,0xA0,0x09,0xD4,0x3C,0x8D,0x28,0x8F,0x23,0x9B,0xC9,
+0xC7,0xEF,0x4D,0xFB,0xD2,0xC8,0x6B,0xC6,0xD9,0x8B,0x37,0x9F,0x97,0x79,0x83,0x8B,
+0xAD,0xD3,0x1B,0xC7,0x7F,0x5B,0x55,0x6B,0x2B,0xD6,0x98,0xC2,0x89,0x44,0x9D,0xA8,
+0x02,0x8E,0xE9,0x9A,0xAB,0x57,0x8D,0xBF,0x71,0x4A,0x5E,0x5E,0xAE,0x26,0xBA,0xED,
+0xA3,0x14,0xD2,0x00,0xE8,0xC5,0x5C,0xFC,0xCC,0xB8,0x11,0xAC,0x42,0x54,0x56,0x73,
+0x5F,0xA4,0x9E,0xB0,0x4F,0x2F,0x11,0x5B,0x5B,0xC3,0xFD,0xD7,0xD7,0xB9,0xC3,0x0B,
+0x3B,0x5F,0x01,0x4B,0x22,0xF4,0xA7,0x36,0xF6,0x35,0xA6,0x21,0x87,0x29,0x93,0xCB,
+0x36,0x65,0x36,0x71,0xB4,0x4B,0x8E,0xA0,0x59,0xCB,0xF7,0xDF,0x52,0x04,0x46,0x33,
+0xB4,0xED,0x3C,0xF9,0x17,0xB5,0xD3,0x03,0xEA,0x91,0x1E,0x85,0xAB,0x13,0xBF,0xDD,
+0x00,0x9D,0xF8,0x89,0x20,0x87,0xD6,0x34,0x95,0x3B,0xCB,0x2F,0xFA,0xA2,0xEE,0x3D,
+0x45,0x67,0x47,0x73,0xA2,0x7C,0xAF,0xB6,0x72,0x55,0x42,0x41,0xC4,0xBB,0xD0,0x1A,
+0xF8,0xE2,0x7F,0xF6,0xDC,0xA5,0x08,0xC8,0xE0,0x19,0x9C,0x0D,0x2B,0x9B,0x3F,0xD5,
+0x21,0x9C,0xD8,0x88,0x7A,0x6E,0x65,0x6E,0xEB,0x86,0x08,0x92,0x4B,0x7F,0x5F,0x51,
+0xAE,0x2E,0xE5,0x3A,0x31,0xF6,0xB6,0x25,0x6F,0xE6,0xEC,0xF2,0x93,0x6D,0x87,0x9B,
+0x48,0x5D,0x70,0x49,0x53,0x61,0x43,0x47,0xDB,0x83,0x3D,0x97,0xD0,0xFF,0xC4,0x4A,
+0x8E,0x74,0x56,0xCD,0xDE,0x8C,0x47,0x67,0x69,0xCE,0x0B,0x77,0x87,0xE0,0x3E,0xCB,
+0xC8,0x73,0x17,0xCA,0xBA,0x7C,0xD3,0x03,0xB7,0x32,0x29,0x8B,0xD4,0x22,0x6D,0x5A,
+0x1B,0x05,0xB2,0xBC,0x7C,0x53,0x3A,0xC5,0xEA,0x91,0xD7,0x28,0x56,0xD9,0xEF,0x23,
+0xE1,0x69,0x24,0xD0,0x08,0xF3,0xEE,0xB1,0xD5,0x2B,0x52,0x92,0xDA,0x4F,0x63,0x39,
+0xEF,0xAE,0xED,0x17,0xAB,0x0D,0xB3,0x12,0x08,0xC8,0x6C,0x71,0x15,0x4B,0xAC,0xF2,
+0x97,0x4A,0x71,0xF3,0x1C,0xB7,0xBE,0xA5,0xCF,0xA7,0xC4,0x1E,0x42,0x9D,0xFB,0x73,
+0xC9,0x9D,0xF8,0x24,0x1A,0xD0,0xDF,0xA3,0x2D,0xFE,0x7F,0x47,0xBA,0xAB,0x03,0xBD,
+0x5C,0xEC,0x1C,0x55,0x02,0x8A,0x9D,0xBB,0x46,0x70,0x9A,0xC9,0xF4,0x06,0x4D,0x5E,
+0x0E,0xEF,0x4D,0x56,0x07,0xBF,0xAD,0xBE,0xF9,0x8A,0xDF,0x33,0x7F,0xD6,0xC6,0x05,
+0xA7,0x6E,0x65,0xD7,0x15,0x9C,0x9C,0xAC,0x84,0x28,0x00,0x91,0x1C,0x60,0xA5,0xD0,
+0x03,0xD5,0x7A,0x6C,0x06,0x9E,0x8D,0xBF,0x7D,0xEA,0x3B,0x53,0xD2,0x45,0x6B,0x3B,
+0x5F,0x11,0xE2,0xA8,0x95,0x14,0x94,0x2C,0x0A,0xC0,0x66,0x79,0xD1,0x17,0x68,0x6A,
+0xCF,0x41,0x22,0xF8,0xFF,0x89,0x63,0x46,0x6D,0xEE,0x2F,0x57,0x38,0x50,0x81,0xC4,
+0x90,0x78,0x44,0xC1,0xB2,0x76,0xD1,0x0B,0x2E,0xE1,0x63,0x58,0x7D,0xA5,0xC4,0x74,
+0xD3,0x5E,0x21,0xE7,0xA6,0x32,0x81,0x1F,0xBF,0xB2,0xA1,0x0B,0xF1,0x33,0x48,0x6E,
+0xE9,0x72,0x37,0xCB,0xCF,0xFD,0x27,0x76,0x45,0x6F,0x86,0xD6,0xFC,0x0C,0x45,0x5C,
+0x0A,0x20,0x86,0x99,0x9F,0x6D,0xE7,0x26,0xF3,0x02,0x5D,0xBB,0x3D,0x65,0x84,0xF4,
+0xBD,0xAD,0xBC,0x14,0xA4,0x41,0xF0,0x1D,0x3D,0xFA,0x6B,0x43,0xE5,0x77,0x5C,0x3E,
+0x88,0xA8,0x8C,0x11,0x69,0x36,0x4A,0xD0,0xA1,0x1E,0x13,0xA7,0x94,0xE2,0x2D,0xDA,
+0xE5,0xA6,0xEF,0x1F,0xB0,0x05,0xA0,0x09,0x43,0x47,0xA8,0xFE,0x30,0x5A,0x89,0xC6,
+0x2E,0x00,0x82,0xB9,0x19,0x82,0x8E,0xA0,0xDE,0xB4,0xC6,0x0D,0x4F,0xA2,0xF6,0x41,
+0x9F,0x51,0x62,0xE8,0x7F,0x01,0x6B,0xC6,0x01,0x5F,0xF2,0xE6,0xDE,0x5B,0x67,0x29,
+0xEA,0x8F,0xC9,0x36,0x42,0x4A,0x1D,0xFB,0x89,0x9F,0xBA,0x26,0x37,0x1C,0x8E,0x87,
+0x3F,0x25,0xB6,0x9C,0x3A,0xF4,0xDB,0x83,0x4C,0xF8,0x18,0x41,0xD7,0x70,0x6E,0x0B,
+0xB5,0xB6,0xAF,0x0F,0x9A,0x58,0xD7,0x23,0xAB,0x96,0x91,0x2F,0x7C,0x84,0xC5,0x54,
+0xAE,0x9B,0x99,0x22,0x7B,0x15,0x7B,0xC2,0x77,0x62,0xB9,0xDB,0x57,0xF8,0xEE,0x03,
+0x46,0x2F,0xC5,0x96,0x23,0x8F,0xB9,0x9A,0xB1,0x1A,0x07,0xA3,0x31,0x7B,0x88,0xE6,
+0xE3,0x7A,0x35,0xC3,0x9B,0x79,0xF7,0x22,0x13,0x53,0xEC,0xEA,0x65,0xFF,0xDC,0x36,
+0xAD,0x66,0x67,0xDF,0x85,0x44,0xD4,0x3C,0x1B,0xD3,0x64,0x6A,0xE3,0x10,0x5A,0x5F,
+0xB1,0x79,0x64,0xC0,0x4E,0x54,0x0F,0xF7,0x79,0xCA,0x1F,0x73,0x75,0xAF,0xCC,0x76,
+0x95,0x59,0x60,0xE0,0x10,0xA9,0xAC,0xA9,0x72,0x55,0x8B,0xEC,0x10,0x7E,0xA9,0xC2,
+0x59,0xCD,0x38,0x74,0x01,0xD8,0xCC,0xB8,0xCA,0x90,0xF6,0x29,0x8E,0xCB,0x37,0xE9,
+0x87,0x81,0xAA,0x38,0x09,0xD2,0xCE,0xB0,0x32,0x45,0xDB,0xFC,0xA1,0xA3,0x18,0xAE,
+0x26,0x1B,0x91,0xA2,0x4A,0x40,0x1F,0xF3,0x8F,0xB7,0x94,0x0E,0x4D,0xD1,0xF4,0x30,
+0xDA,0xAB,0xDD,0x12,0xED,0xAA,0x52,0x54,0x18,0xCC,0x78,0x75,0xD8,0x3C,0x61,0x48,
+0xBE,0x50,0x42,0xE9,0x80,0x71,0xE4,0x39,0xB5,0x3A,0x23,0x83,0x88,0xAC,0x31,0x88,
+0xEE,0x40,0x02,0xF9,0x40,0x39,0x6C,0xF9,0x2B,0xD6,0x51,0x6F,0x5B,0xE6,0xE2,0x11,
+0x68,0x07,0xC3,0xBE,0xBF,0x49,0xE3,0x06,0x97,0x33,0x08,0x8A,0x80,0xA6,0x39,0x8A,
+0x42,0xE0,0x0E,0x59,0x70,0x4D,0x28,0xC9,0x9A,0x84,0xB2,0x3D,0x98,0xFC,0x21,0xC8,
+0x28,0xDC,0x58,0x65,0xDD,0xDE,0x16,0x64,0x68,0xD9,0x1D,0x60,0x86,0xC1,0x3F,0xEB,
+0x7D,0xED,0x3C,0x54,0x7E,0x20,0x4B,0xC7,0xA3,0x16,0x19,0xAF,0x24,0x1E,0x9D,0x96,
+0xA4,0x93,0x9B,0x2A,0xD8,0xEB,0x26,0x61,0xA8,0x89,0x8D,0x30,0x44,0xFA,0xFD,0x12,
+0x2B,0x21,0xA6,0x98,0x93,0x73,0xF5,0x2A,0x2C,0xE9,0x69,0x50,0x9C,0xE8,0x25,0xD8,
+0xCD,0x52,0x33,0xEB,0xF1,0xE4,0x00,0x48,0x98,0x8C,0xB8,0x35,0xDF,0x7A,0x66,0x09,
+0xB3,0x6A,0x75,0xD3,0x16,0xCE,0xCD,0xAF,0x1A,0xC4,0x72,0x7D,0x5D,0x81,0xE4,0x70,
+0x31,0xE2,0x7F,0x5B,0xB5,0x30,0x90,0x0C,0xA9,0x9E,0x9B,0x27,0xA4,0x96,0x1D,0x9E,
+0x85,0x92,0xBB,0x2B,0x82,0x02,0x95,0x3B,0xD6,0x34,0x4E,0x8D,0xF5,0x27,0x4C,0x7E,
+0xC0,0x68,0x04,0xD1,0x00,0xF9,0xEC,0xB9,0x31,0x5A,0xC7,0xE3,0xCB,0x3E,0x72,0x59,
+0xDD,0x99,0xE8,0x20,0x4B,0x61,0x3F,0xF2,0xFD,0xAA,0xFB,0x13,0x35,0x6F,0x8C,0xF6,
+0x0F,0x01,0xA2,0xB8,0x62,0x6E,0x19,0xDB,0x10,0x4C,0xF0,0xF5,0xF6,0x75,0x4F,0x2F,
+0x92,0x6B,0x55,0xD2,0xB1,0x24,0x80,0x08,0x0C,0xE8,0x48,0x51,0x2E,0x67,0x97,0xE5,
+0x4C,0x27,0xC7,0x9E,0xCE,0xDC,0x07,0x77,0x0D,0xFF,0x5E,0x46,0x18,0x74,0xA1,0xC0,
+0x25,0xE6,0x6F,0x5F,0xE1,0xB4,0x40,0x58,0x1E,0xE4,0x56,0x5D,0xC3,0x34,0x7A,0x5B,
+0xBC,0x43,0x53,0xFA,0xD9,0xCA,0x06,0x60,0xF1,0x0A,0x57,0xB3,0x6D,0xF5,0xD4,0x34,
+0xBB,0x71,0x66,0xC8,0x5E,0x04,0x4F,0xE7,0xFB,0x82,0xD5,0x3B,0x97,0xB0,0x2E,0x8B,
+0x83,0x4E,0x61,0xF7,0xBD,0x3A,0x92,0x04,0x85,0x3F,0x16,0x86,0xDD,0x09,0x64,0x78,
+0x47,0xC1,0x2A,0x78,0x44,0x2D,0x7C,0xFD,0x25,0x7E,0xF7,0xC7,0x5C,0xA0,0xE5,0x50,
+0x6A,0x14,0xD2,0xAD,0x94,0x35,0xB4,0x2D,0x5D,0xEB,0x1A,0x52,0xB5,0xE7,0x0C,0xFE,
+0x3D,0x36,0xA7,0x8F,0x04,0xED,0xFC,0xBD,0x83,0x17,0x38,0xAE,0x0F,0x62,0xB6,0xC1,
+0x93,0x85,0xBA,0x3C,0x2C,0xC3,0xFA,0x95,0x14,0x6C,0xD4,0xD5,0xCF,0x2A,0x76,0x49,
+0x12,0xF0,0x4E,0x49,0x05,0xCC,0xDC,0xBC,0xE1,0x0E,0x43,0xB7,0x8D,0x99,0x34,0xB8,
+0x37,0x3E,0xA5,0x87,0xAA,0x2C,0x93,0x13,0xA4,0x29,0x21,0x90,0x0D,0x11,0xB4,0xB0,
+0xFE,0x8B,0xD9,0x32,0xA0,0x55,0xE0,0x19,0x15,0x7B,0xC2,0xC2,0xA2,0xF1,0x1B,0xFF,
+0xC5,0x49,0x20,0xF0,0xF2,0xB6,0x51,0x4B,0x9F,0xB3,0x80,0x0A,0x63,0x98,0xDA,0x57,
+0xF2,0xF3,0x90,0xF6,0x48,0x63,0xBF,0x4D,0x8B,0x68,0x72,0x6D,0x4F,0x10,0x4A,0xCE,
+0x8C,0xCB,0xD6,0xCE,0xED,0xFA,0x83,0xE8,0xE4,0xC6,0xB3,0xC3,0xA1,0x11,0xA4,0x21,
+0x42,0x4C,0x9F,0x49,0xDF,0xFD,0xB6,0xDA,0x5B,0x3C,0xF6,0x39,0x29,0x93,0x2C,0x2B,
+0x7C,0xAF,0x42,0xAA,0xE0,0xC5,0xB1,0xE5,0xA8,0x76,0x4F,0x73,0x94,0x50,0x91,0x55,
+0x27,0x59,0xEF,0x5C,0x37,0x9B,0x38,0x32,0x26,0x9E,0x29,0x9B,0x01,0xBD,0x04,0x2D,
+0x28,0x70,0xC9,0x75,0xAF,0x49,0x72,0xAA,0xFF,0x5D,0x33,0x58,0xE7,0xB6,0xE2,0xC0,
+0x62,0xA3,0x50,0xA6,0xC5,0xD4,0x85,0xC0,0x35,0x85,0x21,0x80,0x43,0x0E,0x46,0xDC,
+0x9A,0xDC,0xD7,0xD9,0x89,0x0A,0x17,0x8C,0x10,0xB3,0x32,0xB6,0x54,0x18,0x51,0xDD,
+0x8A,0x17,0x0C,0x12,0x5E,0x54,0x9E,0x5B,0x68,0x26,0xDF,0x23,0xA5,0x05,0xA0,0x31,
+0x6A,0xB8,0x43,0xBD,0x90,0x71,0x75,0x95,0x60,0xA6,0x57,0xA3,0x82,0x67,0x87,0x74,
+0x13,0xB2,0x30,0xB7,0x25,0xB8,0x09,0x20,0x2F,0x09,0xB7,0x0C,0xD0,0x84,0xD5,0xC5,
+0xF0,0xE0,0x81,0xE5,0xE7,0x83,0xF0,0xE2,0x87,0xC8,0xDE,0xCD,0x18,0xC6,0x1D,0x4F,
+0x6B,0x56,0xAC,0x53,0x6F,0x01,0xFA,0x6A,0x80,0xF7,0xE6,0xF2,0xD5,0xB1,0xD0,0xF5,
+0x73,0x86,0x64,0x83,0xBA,0x2C,0x02,0xBF,0x2E,0x1E,0xA1,0x1B,0x40,0x5C,0x45,0x8D,
+0xAB,0x16,0x2C,0x13,0x98,0x7B,0x77,0x9D,0x11,0xA4,0x24,0xA1,0xBC,0x7E,0xB9,0x53,
+0x85,0x3E,0x2A,0x3B,0x2B,0xD5,0x6A,0x2E,0x99,0x64,0x6C,0x61,0xC7,0x92,0xC2,0xC4,
+0x7F,0x52,0xBC,0x57,0xEE,0xA8,0xD2,0xEB,0xC1,0xF0,0xA0,0xF5,0x7D,0x17,0x78,0xFB,
+0x0F,0xAD,0x33,0xA8,0xA9,0x2E,0x13,0xAC,0x5A,0x2B,0xE0,0x2E,0x98,0x4E,0x9D,0x47,
+0x0B,0x62,0xF8,0x67,0x4E,0x04,0xDE,0x4B,0x18,0x33,0xBA,0x36,0x2F,0xF4,0x2A,0x4A,
+0x98,0xCF,0xC6,0xCA,0x72,0x6E,0x88,0x77,0x3B,0x2D,0x87,0x28,0x72,0x5B,0x77,0xB8,
+0x94,0x1B,0x1E,0x1E,0x2F,0xC1,0x7A,0x2A,0x7E,0x0A,0xE5,0x0F,0xEE,0x9D,0xEB,0xE2,
+0x06,0x58,0xCF,0x5D,0xB5,0x60,0x41,0xB0,0xE0,0xE6,0x97,0xE3,0x1C,0xD2,0x19,0x5F,
+0xEC,0xFF,0x82,0xFA,0x05,0x9C,0x0D,0x00,0x98,0x73,0x7A,0x76,0x67,0x3E,0x62,0xC8,
+0x37,0x92,0x34,0x97,0xFE,0xF8,0x92,0xFB,0x58,0x23,0xEA,0x26,0x91,0x65,0x94,0x65,
+0x88,0x04,0x1D,0x01,0xC4,0xF5,0xA5,0xC1,0xA0,0xF6,0xC7,0xF3,0x6F,0x34,0x6A,0xCA,
+0x76,0xA7,0x40,0xA2,0x4C,0x77,0xAF,0x49,0x4E,0x0F,0xD0,0x0A,0x35,0xDD,0x30,0x79,
+0x44,0x90,0x45,0x95,0x3C,0xC3,0x6B,0x39,0xAE,0x5E,0x61,0x5B,0x9F,0x08,0x9A,0x06,
+0xBF,0x12,0x3C,0x17,0xC6,0x86,0xD4,0xC3,0x89,0x60,0x78,0x65,0xF1,0x81,0xF4,0xE1,
+0x66,0x6C,0x9B,0x69,0x43,0x3B,0xEC,0x46,0x46,0x8F,0x58,0x8A,0xBD,0x5F,0xB8,0x73,
+0xAD,0xCA,0xF6,0xCF,0x3D,0xE2,0x4B,0x38,0xC2,0xEF,0xBC,0xEA,0x22,0xCB,0x27,0x78,
+0x35,0x81,0x25,0x84,0x8F,0x6D,0x76,0x8A,0x08,0x37,0xAE,0x32,0x42,0x2F,0x47,0xFC,
+0xA2,0xE3,0xD0,0xE6,0xFC,0x8B,0xE3,0xF9,0xD9,0x74,0x3C,0x71,0x27,0xFE,0x22,0x48,
+0xC4,0x0B,0x5E,0x0E,0xAE,0x68,0x52,0xAB,0x91,0xE4,0xE4,0xE1,0x1F,0x80,0x1A,0x0E,
+0x47,0x6D,0xBB,0x68,0xFF,0xD9,0xB2,0xFA,0xF9,0x75,0x1D,0x70,0xF4,0xB4,0xF1,0xD1,
+0x0C,0x50,0xCD,0x55,0x21,0xAC,0x19,0x24,0x57,0x9C,0x5A,0x99,0x34,0xFC,0x31,0x59,
+0xB2,0x28,0x0B,0x2D,0x8B,0x79,0x66,0x8E,0xDB,0x7C,0x36,0x79,0x53,0x5E,0x56,0x9C,
+0x2B,0x8D,0x37,0x88,0x8E,0x4C,0x56,0x8B,0x24,0x96,0x23,0x93,0xA9,0x1B,0xAC,0x23,
+0x07,0xB6,0x20,0xB3,0x03,0xFB,0x6C,0x06,0xEE,0x4E,0x31,0x4B,0x51,0x2D,0x54,0xED,
+0x70,0x7B,0x9A,0x7E,0x06,0xCE,0x5C,0x03,0x0A,0x3F,0xA4,0x3A,0xB5,0x55,0xB0,0x71,
+0x43,0xA2,0x70,0xA7,0x08,0xA3,0x3F,0x0D,0x16,0x9B,0x1C,0x9E,0xEC,0xEE,0xE9,0x93,
+0x02,0x97,0x04,0x92,0xC8,0xEB,0xB7,0xCD,0x8F,0x48,0x56,0x4D,0x78,0x22,0x7D,0xCB,
+0x12,0x5C,0xDF,0x59,0xD7,0xF7,0xB4,0xD2,0xA6,0xDE,0xE9,0xDB,0x61,0x59,0x64,0xA9,
+0xEF,0x02,0x7C,0x07,0xF7,0xD3,0xB0,0xF2,0x12,0xBB,0x38,0xBE,0xFE,0xCD,0xFB,0xA2,
+0x9E,0x13,0x1C,0x16,0x63,0x1F,0xE8,0x66,0x39,0x25,0x8D,0x20,0x3B,0xB0,0x3E,0x1A,
+0x1E,0x88,0x07,0x8D,0x18,0xF3,0x7F,0x1D,0x84,0xD7,0xC2,0xD2,0x3D,0xD7,0x38,0x7B,
+0x53,0x69,0xAB,0x6C,0x35,0xE8,0x49,0x30,0xD3,0xFC,0xBE,0xF9,0xC9,0xFF,0xCC,0xA7,
+0xC9,0x31,0x69,0x34,0x81,0x00,0x15,0x84,0x36,0x9A,0x3D,0x9F,0xB1,0x41,0xB4,0x61,
+0x3F,0x89,0x27,0x8C,0xD4,0xA5,0xE5,0xD1,0xE6,0xCE,0xB9,0xCB,0xF8,0xAA,0xFD,0xC3,
+0x4B,0xB9,0x63,0xBC,0x00,0xA9,0x3D,0x05,0x22,0xBE,0x0D,0xBB,0x63,0x2A,0x66,0xD8,
+0xF1,0x0E,0x6E,0x0B,0xE4,0xD1,0xA1,0xE1,0xA3,0xE9,0xDB,0xEC,0x0C,0x82,0x09,0x1F,
+0x96,0x08,0x0F,0x0D,0x33,0x8F,0x28,0x36,0x6D,0x11,0xED,0x14,0x55,0x39,0x50,0xFD,
+0xCC,0x10,0x4D,0x15,0x42,0x1A,0xCC,0x47,0x8E,0x5F,0x40,0x5A,0xDB,0xDC,0xDE,0x96,
+0xCA,0xCC,0x97,0xC9,0xDA,0xC8,0x86,0xDF,0x1B,0x2C,0xA6,0x29,0x65,0x4D,0x60,0xB9,
+0x3A,0xA8,0x03,0xAD,0xDD,0x8E,0xC7,0xD8,0x8A,0x7F,0x64,0x7A,0x99,0x6F,0x9C,0x67,
+0x15,0x6E,0xEA,0x6B,0xAB,0x5D,0x62,0xAE,0xF3,0xFD,0x9F,0xF8,0x3A,0x91,0x3F,0x3A,
+0xB5,0x1A,0x3E,0x1F,0xC7,0xA7,0xF4,0xC2,0xE9,0x71,0x09,0x74,0x80,0x14,0x85,0x05,
+0xCF,0xED,0xB3,0xE8,0xEF,0x89,0xF2,0xEA,0x14,0x93,0x16,0x96,0x45,0x69,0x40,0xBD,
+0x30,0xA0,0x01,0xA5,0xD6,0xD6,0x94,0xD3,0xA4,0xD6,0xE3,0xD3,0x4A,0x25,0x4F,0xFE,
+0x74,0xB4,0x51,0xB1,0xF0,0x95,0xF1,0xF5,0xBE,0x5A,0x75,0x5F,0x19,0xE7,0x1C,0x6F,
+0xBB,0xDD,0xF7,0xD8,0xDC,0xAF,0xE7,0xD9,0x8C,0x57,0x4A,0x52,0xC4,0xC0,0xC1,0x95,
+0xF9,0x15,0x7D,0x10,0x41,0x48,0x9D,0x44,0xD5,0xD4,0x90,0xD1,0x21,0x99,0x24,0x29,
+0xDA,0x07,0x4C,0x02,0xC0,0xE1,0xB5,0xC5,0x00,0xB7,0x26,0xB2,0x83,0x46,0x86,0x54,
+0xD8,0x14,0x5D,0x11,0x7B,0x45,0xAA,0x7E,0xEB,0x79,0x03,0x7C,0x41,0x7D,0x44,0xAD,
+0x52,0x87,0x44,0x82,0xBF,0x19,0x32,0xBA,0xBA,0x7A,0x51,0x7F,0x6B,0x20,0x6E,0xDA,
+0x2F,0x8B,0x02,0x36,0x68,0x93,0xE0,0x37,0x81,0xED,0x49,0xD3,0x30,0x94,0x29,0xA6,
+0xCB,0x6F,0x7A,0xAA,0x65,0x24,0x5A,0x80,0x29,0x82,0x26,0x14,0x67,0xC3,0xA8,0x70,
+0x1C,0xB8,0x24,0x23,0x04,0x22,0x3D,0x86,0x92,0xDB,0x7F,0xF6,0x9F,0x3B,0x66,0x46,
+0x6D,0xC9,0xB1,0xC7,0x46,0x3A,0x67,0x9E,0x77,0x55,0xF1,0x9D,0xD1,0x75,0x85,0xEB,
+0xF5,0x51,0x63,0x8D,0x9C,0xE6,0x61,0x42,0xE6,0xEB,0x4F,0xB2,0xA2,0x06,0x10,0x0D,
+0xF2,0x56,0x25,0xCC,0x08,0x82,0x91,0x26,0xC4,0x17,0xB3,0x6C,0xF1,0x55,0x81,0xCF,
+0x84,0x20,0xF6,0x69,0xE1,0x44,0xBE,0xE0,0x3A,0xB4,0x10,0x31,0x73,0xD7,0xF8,0x34,
+0xE8,0x4C,0x0C,0xFF,0x35,0x30,0x1E,0x94,0xBF,0x0E,0xAA,0x0E,0xFF,0x5B,0xE2,0xA2,
+0xC0,0x64,0x22,0xF9,0xB8,0xC7,0x64,0x63,0xC2,0xCB,0x6F,0xB6,0x1D,0xB9,0x1F,0xBD,
+0xF9,0x5D,0x7D,0x9F,0x0A,0x8A,0x9B,0x2E,0x8E,0xC4,0x60,0xF5,0x58,0xFC,0xAF,0x48,
+0xDF,0x7B,0x3E,0xFA,0x5A,0x9E,0xDF,0x3A,0x4C,0x97,0x33,0x64,0xD4,0x70,0xB5,0xDE,
+0xF3,0x57,0x04,0xEC,0xFC,0xF7,0x10,0x53,0x6B,0x4A,0xEE,0x9E,0xD9,0x7D,0x87,0xE1,
+0x6E,0xCA,0xE3,0x96,0x76,0x3F,0x52,0x9B,0x32,0xAF,0x0B,0x22,0x5A,0xFE,0xDE,0x3B,
+0xEF,0x4B,0x4A,0xBE,0x47,0x2D,0x71,0x89,0xED,0x0D,0xA9,0x5F,0x39,0x9D,0x0B,0x8D,
+0x54,0xF0,0xEE,0xA1,0x56,0x3E,0x73,0x9A,0xD6,0xCF,0x6B,0xA6,0xF7,0x53,0xE0,0xA8,
+0x90,0x34,0xB2,0x39,0x4F,0xAD,0xF9,0x09,0x8B,0xE5,0x41,0xD1,0xF4,0x50,0xB1,0xFA,
+0x81,0x25,0xC3,0x59,0x55,0x21,0x6F,0x85,0x2B,0x91,0x35,0x05,0x6A,0xCE,0x9A,0x4F,
+0xD0,0x74,0x72,0xB9,0xB0,0x47,0xEC,0xE3,0x1F,0x7A,0xDE,0xDA,0xFB,0x5F,0xF2,0xB6,
+0x0E,0xAA,0x07,0x12,0xC6,0x7A,0xA7,0xDE,0x57,0xBA,0x1E,0x52,0x12,0xB6,0x5C,0xF1,
+0xA4,0x00,0xD2,0x6D,0x00,0x02,0x19,0xA6,0xF5,0xDD,0x79,0x97,0xF2,0x56,0xD0,0x9D,
+0xA1,0x05,0xE7,0x5D,0x3C,0xA7,0x80,0x03,0xB0,0x27,0x83,0x28,0x18,0xBC,0x2F,0x88,
+0x2C,0x88,0x50,0x67,0x2B,0x9C,0xAC,0x38,0x86,0xDF,0x7B,0xE6,0xC0,0x64,0xE5,0x9A,
+0x29,0x8D,0x65,0x57,0x91,0x51,0xDB,0xF5,0xFE,0x3B,0x9F,0x7A,0xB1,0x15,0x01,0x0F,
+0x27,0x83,0x08,0x34,0x7B,0x88,0xE8,0x2C,0x45,0x62,0xC6,0x98,0x15,0xB1,0x1D,0xB7,
+0xE7,0x43,0x40,0xBC,0x0F,0xBD,0xA9,0x19,0x89,0xF6,0x52,0xC0,0xC6,0x62,0x84,0xFD,
+0xF8,0x5C,0x5C,0xBF,0xD4,0x76,0xB9,0xD2,0xF2,0xEF,0x4B,0xA2,0x50,0xF4,0xAD,0x42,
+0xD8,0x7C,0x78,0xBB,0x77,0x28,0x44,0x8C,0x66,0x70,0xD4,0xA9,0x35,0x91,0x19,0x93,
+0x4C,0xE8,0xB4,0xE3,0x17,0x39,0x35,0x9D,0x1B,0xB5,0x11,0x11,0xAB,0x0F,0x32,0x26,
+0x37,0x93,0x58,0x74,0x0C,0xA2,0xB5,0x06,0x7C,0xB3,0x17,0x70,0x59,0xFD,0x8F,0x69,
+0x1A,0xBE,0x43,0x42,0xA0,0x43,0xF8,0xE7,0x54,0x47,0xE3,0xAC,0x72,0xD6,0xD8,0x15,
+0xAE,0x0A,0xAB,0x1E,0x62,0x1B,0x62,0xBF,0xEA,0x3F,0x9B,0x6A,0x14,0xB0,0x3D,0x96,
+0xFB,0x5F,0x0E,0xEE,0x2C,0xA3,0x94,0x07,0x01,0x76,0xD2,0xC8,0x40,0xE4,0xED,0x12,
+0xC1,0x65,0x03,0xD9,0xB7,0x78,0xD4,0xDC,0xBC,0xF3,0x57,0xF0,0x7E,0xDA,0xCA,0x0B,
+0x86,0x22,0x85,0x18,0x38,0x87,0xA4,0x23,0xE5,0x16,0xB2,0x4C,0xA5,0x01,0x51,0x4B,
+0x61,0xC5,0xAF,0xD5,0xF3,0x48,0xA0,0xEC,0x5F,0xA1,0x05,0x41,0xBD,0x19,0x13,0x11,
+0x5D,0xF9,0xC5,0x83,0xCD,0xE5,0x33,0x41,0xF0,0xFC,0x58,0xB3,0xA3,0x07,0x30,0x2C,
+0x00,0xA4,0x6A,0x71,0x15,0x31,0x3F,0x95,0x36,0x60,0xC4,0xE9,0x84,0x20,0x75,0x4E,
+0x9A,0x3E,0xCB,0x4A,0xC4,0x72,0xAD,0xD6,0x79,0x92,0x36,0x54,0x68,0xCC,0xEB,0x3C,
+0x2A,0x8E,0x37,0x06,0x89,0xD5,0x47,0x71,0x95,0xE9,0x4D,0xC3,0xFD,0x59,0x93,0xD1,
+0xD1,0x75,0x53,0x99,0x3F,0xB8,0x9C,0x1C,0xCE,0x1F,0xBB,0x6E,0xAD,0x09,0x53,0x41,
+0xEB,0x4F,0x5E,0xAE,0x16,0x2E,0x23,0x8A,0x9F,0xE1,0x45,0xC1,0x78,0xDC,0xAB,0x6C,
+0x63,0xC7,0xDC,0xA4,0x4B,0x8D,0xDD,0x29,0x76,0xBB,0x1F,0x72,0x81,0x25,0x45,0x7B,
+0x13,0xB7,0x68,0x60,0x4E,0xBA,0xEF,0x1E,0xA3,0x11,0xB5,0x0D,0xD0,0x74,0xA5,0xCA,
+0xE9,0x4D,0x2D,0xDF,0x37,0x38,0x14,0x9C,0x2A,0x7F,0xDB,0xEA,0xEE,0x4A,0x82,0xD3,
+0x6C,0xC8,0x90,0xE7,0x90,0x46,0xCD,0xE2,0xF4,0x33,0x97,0x78,0x01,0xA5,0x4D,0xF3,
+0x12,0xB6,0x49,0x40,0xFD,0xE0,0x06,0x44,0x60,0xAC,0x08,0x73,0x61,0xC5,0xC9,0x17,
+0xA0,0x04,0xC6,0x7D,0x2E,0xAB,0x9E,0x0F,0x84,0xCC,0x68,0xF7,0xB9,0x1D,0x03,0x05,
+0xD3,0x77,0x20,0xE8,0xDB,0xC9,0x09,0x6D,0x55,0xA9,0x0D,0x43,0xFA,0x5E,0xD2,0x97,
+0x67,0xC3,0xC8,0xB4,0x9B,0xD9,0x59,0x7D,0xBB,0xC1,0x65,0xC5,0xE6,0x42,0x80,0xD9,
+0xC2,0x66,0x51,0x88,0xDD,0xE1,0x27,0x45,0xBA,0x2F,0x8B,0x2A,0x48,0xEC,0xEF,0x18,
+0xF0,0x54,0x56,0xBD,0x94,0x66,0xE9,0xC2,0x38,0xA7,0x03,0x20,0xB2,0x16,0x50,0x5D,
+0xCF,0x6B,0x6E,0xBA,0x49,0x85,0xD7,0x21,0xFB,0x1A,0xBE,0x5E,0xF8,0x5C,0xA3,0xE4,
+0x18,0xBC,0x30,0x33,0xE4,0x73,0x8C,0xD7,0x16,0x8F,0x2B,0x26,0x10,0xB4,0x2D,0x82,
+0x80,0x24,0xE2,0x79,0xC2,0x5A,0x83,0xFE,0x1D,0x69,0xCD,0xCB,0xD3,0x77,0xF4,0x98,
+0xEA,0x4E,0x7F,0x8E,0x5B,0x89,0xC9,0x2D,0xA5,0xCD,0x69,0xD7,0x0B,0xAF,0x3E,0x8A,
+0xA6,0x02,0xA1,0x1C,0xDC,0xF6,0x31,0x52,0xB3,0xDA,0x7E,0xD6,0x3D,0x99,0x1B,0x99,
+0x71,0xD5,0xFF,0x95,0x07,0x3D,0x21,0x99,0xAE,0x2B,0x8F,0x3A,0xA8,0x0C,0x63,0x74,
+0xBF,0x1B,0xDA,0x7E,0x48,0x92,0xC1,0x36,0xCC,0x0C,0xA8,0x7F,0x28,0x8C,0x6B,0xFC,
+0x0A,0xAE,0x13,0x02,0x3B,0x98,0xB8,0x3C,0x2F,0x5E,0xFA,0xCE,0x87,0x23,0x24,0x1C,
+0xC8,0x6C,0x28,0xFB,0x8A,0xCA,0x5B,0x6E,0x6D,0x96,0x32,0x44,0x46,0xE2,0x8C,0x75,
+0x40,0xE4,0xAA,0xF1,0xA7,0x7C,0xC0,0xD8,0x1A,0x5B,0xFF,0xFE,0x79,0xDD,0x8B,0x4D,
+0x95,0x31,0x87,0x09,0x6F,0xAC,0xD8,0x08,0xF7,0xCE,0x6A,0x86,0x90,0x34,0x25,0x0A,
+0xB7,0x13,0xD0,0x7C,0x27,0x3C,0x00,0x98,0xD5,0x32,0x96,0x58,0x2A,0x8E,0x1A,0x8F,
+0x04,0xA0,0x7E,0x61,0x21,0x14,0x2E,0xB0,0x39,0x49,0xED,0xCF,0xEA,0x4E,0x92,0xC7,
+0x2F,0xF4,0xBC,0x72,0x8D,0xC5,0xA9,0x1E,0x98,0xD4,0x0F,0x76,0x41,0x9A,0x0E,0x75,
+0xDB,0x00,0x94,0xAE,0xDA,0xEE,0xD5,0x35,0x83,0xF9,0x22,0x40,0xA0,0x7B,0xA2,0x38,
+0xA3,0x78,0x2A,0x68,0x3F,0x88,0x56,0x53,0x6B,0x4D,0x96,0x1C,0xF8,0x23,0x60,0xA2,
+0xEA,0x31,0xC1,0xCA,0xEF,0xDC,0xD2,0x07,0xCE,0x18,0xC3,0xEC,0x40,0x9B,0x2E,0x54,
+0x6A,0xB1,0x49,0xC2,0x86,0x5A,0x3D,0x81,0x80,0x04,0xDF,0xBE,0x5E,0x85,0x0D,0x69,
+0x73,0xA8,0x32,0xA0,0xAF,0xCC,0x82,0x17,0x9C,0x1B,0xC0,0xBD,0x95,0x4E,0xD6,0x79,
+0xEC,0x37,0xA6,0xAB,0x1B,0xA9,0x53,0x72,0xB8,0x3B,0xE0,0xB9,0xCB,0x10,0x75,0x84,
+0x29,0xF2,0xDB,0x13,0x30,0x37,0xE6,0xEC,0x74,0xAF,0x74,0xE1,0xDA,0x01,0x15,0xF5,
+0xBB,0x60,0x70,0x2A,0x2D,0x84,0x48,0x5F,0x27,0x42,0x99,0x5F,0x44,0x9F,0x3E,0x40,
+0x43,0x98,0x46,0xE4,0xE7,0x5C,0x5A,0x87,0x90,0xCF,0x14,0x65,0x7F,0xA4,0x29,0x6C,
+0xA7,0x7C,0x3E,0x78,0x03,0x2D,0xCF,0xF6,0xA5,0xCA,0x11,0x55,0xB2,0x69,0x93,0x1B,
+0xFE,0x25,0x85,0x9A,0x1F,0x89,0x77,0x52,0xC8,0xC4,0x1F,0x36,0x6B,0xB0,0x79,0x28,
+0x0D,0xD6,0xEB,0x07,0x98,0xF6,0x8F,0x2D,0x03,0x62,0xB9,0x5B,0xC2,0x19,0x57,0xAF,
+0xE6,0x3D,0xDF,0xD8,0xF0,0x67,0x76,0xBC,0xB2,0x33,0xE8,0xBB,0xA4,0x7F,0xB2,0x2C,
+0x26,0xFD,0x97,0x50,0x5E,0x8E,0x31,0x55,0xC7,0xED,0x36,0x10,0x99,0x42,0xC4,0x67,
+0x41,0x9A,0x35,0x95,0xD2,0x6E,0x5D,0xB5,0x12,0x47,0x9C,0x6F,0xE1,0x3A,0x02,0xD9,
+0x33,0xE8,0xF2,0x20,0xDC,0xC6,0xFB,0x1D,0x23,0x8D,0x56,0x94,0xDC,0x07,0x74,0x92,
+0x91,0x4A,0x2D,0x5D,0x09,0xA5,0x4D,0x7E,0x8A,0x0C,0xD7,0xBC,0xCE,0x15,0x45,0xB1,
+0x53,0x88,0x16,0xA4,0xE2,0x6B,0x68,0xB0,0x2E,0xB7,0x6C,0xA3,0xDD,0x06,0x54,0xB3,
+0x79,0xA2,0x4B,0xD3,0xB3,0x68,0x3A,0xB3,0x72,0x73,0xA8,0x3B,0x4E,0x95,0x4D,0x39,
+0x57,0x8C,0x02,0xB4,0x1D,0x81,0x7D,0x5A,0xE2,0x23,0xF8,0xFB,0x24,0xFF,0xBA,0xA4,
+0x58,0x83,0x4E,0xF7,0xAD,0xC4,0x88,0x1F,0xBD,0x1A,0xC1,0x9D,0x69,0xB2,0x08,0x5B,
+0x0B,0xD0,0x8C,0x66,0xB7,0x48,0x1E,0x93,0xFE,0x3C,0xE7,0xF8,0x7D,0xA6,0x58,0x1F,
+0xD6,0x0D,0xAB,0x9C,0x85,0x45,0x21,0x9E,0xC4,0x10,0xCB,0xEE,0x14,0xCF,0xFE,0xD0,
+0x77,0xAC,0x26,0xB0,0x12,0x3E,0xCD,0xE5,0xA3,0x16,0xCD,0x8F,0x05,0xDE,0x9E,0xA1,
+0x8B,0x50,0x04,0x6E,0x83,0x6D,0x0F,0xB6,0xE5,0x11,0xCA,0xCE,0x61,0xBA,0x0A,0x51,
+0x28,0xF3,0xFA,0x33,0xFA,0xEF,0xF4,0x34,0x36,0x67,0xBC,0x6B,0xA7,0x7C,0xE3,0x7E,
+0x92,0x49,0x7F,0x0C,0xE0,0x63,0x62,0xB8,0xCC,0x0B,0xD0,0xFD,0xD3,0x08,0x37,0xDE,
+0x71,0xAA,0x41,0xD1,0x2B,0xAC,0x66,0x77,0xC2,0xCC,0x17,0x34,0x70,0xAB,0x6A,0x20,
+0x1E,0xC5,0xE9,0x16,0xAA,0xFB,0xB0,0x20,0xBA,0x28,0xF3,0xA8,0xC7,0x1C,0x67,0x9A,
+0x47,0x9C,0x52,0xF4,0x64,0x03,0x86,0xD8,0xE4,0xFF,0x24,0x21,0xC1,0x1A,0x06,0xFD,
+0xC9,0x12,0xB7,0x9F,0x87,0x4D,0x2B,0x96,0x71,0x8E,0x55,0xC5,0xD9,0x02,0x44,0xA7,
+0xC7,0x1C,0xDA,0xFC,0x89,0xE5,0x8D,0x3E,0x6A,0xA3,0x78,0xF3,0x9F,0x44,0xA5,0x00,
+0x52,0x89,0x37,0x84,0x27,0x0C,0xCA,0xD7,0x47,0x76,0xAD,0x0B,0x4F,0x94,0x6D,0x18,
+0xAE,0x75,0x15,0x5A,0x18,0xB6,0x4F,0x6D,0x10,0x54,0x8F,0x7E,0xDF,0x04,0x25,0xC0,
+0xD5,0x0E,0xF9,0xCD,0x90,0x76,0x07,0xAD,0xBE,0xE7,0x3C,0x63,0xF7,0x2C,0x23,0xEE,
+0xB7,0x6C,0x6E,0x38,0x61,0x34,0xB4,0xEF,0x3F,0x92,0x49,0x97,0xDE,0x05,0x05,0xE1,
+0x90,0x4B,0x0C,0x7D,0x69,0xB4,0x3C,0x6F,0x1A,0x5C,0x87,0x7C,0x71,0xAA,0x4A,0x01,
+0xC2,0x19,0xEF,0xCC,0x26,0x1B,0xDC,0xC0,0xD3,0xE9,0x32,0x00,0x7B,0xA0,0x39,0x78,
+0x0A,0xD1,0xAD,0x46,0x8E,0xDA,0xB5,0x01,0xE8,0x2B,0xF0,0xF9,0x29,0xF2,0x88,0x9B,
+0x13,0xC8,0xD6,0x24,0x2F,0x8C,0x42,0x57,0xF0,0xFB,0x20,0x31,0x90,0x4B,0xE6,0x4C,
+0xF5,0x2E,0xDD,0xC9,0xF6,0x4F,0x58,0x94,0x22,0x63,0xB8,0x7B,0xB9,0x62,0xC0,0x43,
+0x51,0x8A,0x65,0xD5,0x3C,0x97,0x4A,0x4C,0xBF,0x09,0xD2,0x8C,0x6A,0xB1,0x59,0x09,
+0x46,0x9D,0x73,0xD4,0x19,0xA1,0x59,0x7A,0x61,0x45,0x9E,0x1E,0x15,0xCE,0xDE,0xF1,
+0x5D,0x86,0x7B,0xC7,0x82,0x7A,0x19,0xA1,0x08,0x84,0x5F,0xB6,0x3A,0xE1,0x99,0x99,
+0xB3,0x68,0x7A,0x28,0xED,0xD4,0xD8,0x0F,0x91,0x21,0xFA,0x8A,0x02,0xD9,0xDF,0xE7,
+0x3B,0xE0,0xF8,0x22,0x52,0x2E,0x9D,0xF5,0x96,0x13,0xC8,0xBF,0x85,0x5E,0x96,0x29,
+0x86,0x5D,0x3B,0x5C,0xA1,0x64,0x24,0xBF,0xAE,0x2C,0xF7,0xB8,0x66,0xBD,0x4B,0x17,
+0xAF,0x74,0x34,0x7A,0x4F,0x9D,0x33,0x46,0x50,0x8F,0x54,0xE5,0xA5,0x7E,0x92,0x0D,
+0x30,0xEB,0xA0,0x71,0xCB,0xFD,0xD7,0x26,0x89,0xF1,0x2A,0x42,0x03,0xD8,0xFF,0xC6,
+0x50,0x8B,0x44,0xF5,0x01,0x25,0xC5,0xFE,0x06,0x43,0x98,0x7F,0x48,0x93,0x2C,0x5E,
+0x35,0xEE,0x95,0x41,0xD0,0x66,0x57,0xBD,0xE0,0x30,0xEB,0xEA,0x2A,0xF1,0xD9,0xC9,
+0x7D,0xA6,0x5F,0xC3,0xA9,0xE4,0xAC,0x3F,0x9E,0x08,0xD3,0xAC,0xCD,0x16,0x14,0xE3,
+0x27,0xFC,0xB6,0x70,0x47,0x1D,0xBB,0xC6,0x1C,0x80,0x5B,0xA6,0x6E,0xB5,0x49,0x1D,
+0x8D,0x56,0x63,0x0F,0xA7,0x4C,0x0A,0x97,0xA8,0xF0,0x2B,0x62,0x59,0x82,0x4C,0x2F,
+0xE3,0x38,0xEA,0xE8,0x80,0x72,0x13,0xA9,0xED,0x0A,0xD1,0xDD,0xDB,0x00,0x35,0xD4,
+0xFC,0x27,0xF6,0xEB,0x77,0x18,0x8E,0xC3,0xAA,0xE3,0x38,0x73,0xD2,0x09,0x17,0xFF,
+0x0E,0xD5,0xB9,0x56,0xE9,0xF4,0xFC,0x2F,0x0B,0x79,0xA2,0x48,0x91,0x4A,0xC6,0x6D,
+0x75,0xAE,0x55,0xC1,0x91,0x61,0x11,0xBA,0xF7,0xC9,0x12,0x04,0x36,0xED,0x8B,0x87,
+0x83,0x58,0x0E,0x6C,0x51,0x31,0x81,0xEA,0x93,0x32,0xE9,0x9B,0x5B,0x80,0x3D,0x5C,
+0x6F,0xB4,0x7C,0xF2,0xC8,0xE2,0xCB,0x39,0xC3,0x22,0xF9,0xDB,0x9B,0x40,0xB5,0x14,
+0x8A,0x51,0x25,0x4E,0x53,0x39,0x8B,0xE2,0x45,0x65,0xBE,0x1A,0x64,0xBF,0x3A,0x64,
+0x3D,0xE6,0x9F,0x43,0x11,0x21,0xD1,0xFA,0x6F,0x82,0x59,0xD7,0xAB,0x70,0xF1,0x60,
+0x60,0xBB,0x30,0xB1,0x32,0x3F,0xEC,0xE4,0x05,0xBE,0x65,0x81,0x06,0xDD,0xCF,0xF3,
+0x43,0x81,0xC6,0x26,0x5A,0x68,0xED,0xD6,0x6D,0xDE,0xE8,0xD2,0xA2,0x5D,0x1B,0xD8,
+0x17,0x51,0x92,0xA2,0xB1,0x21,0xA4,0x74,0xD5,0x90,0x50,0x24,0x52,0x08,0xBE,0x8D,
+0x0E,0x33,0x8B,0xD9,0xCC,0xE4,0x61,0xCC,0xD4,0xB0,0x51,0x05,0xC8,0xC4,0xE8,0x41,
+0x25,0x64,0xA0,0xA5,0xE4,0x10,0x95,0x10,0x35,0x1C,0xB0,0x48,0xFE,0xE9,0xF3,0x6C,
+0x62,0xA5,0xE7,0x23,0xD6,0x27,0xA2,0x15,0x5E,0xCB,0xDB,0xF4,0x07,0x2B,0xC8,0xAE,
+0xFC,0x8E,0x79,0x96,0xAB,0xE2,0x67,0xAD,0x4F,0xAB,0xCA,0x85,0x5F,0xBF,0x04,0x3A,
+0x91,0x38,0x14,0x4D,0x39,0xA1,0x24,0x7C,0xCB,0xB3,0x4E,0x19,0x00,0x14,0xF0,0x91,
+0x07,0x11,0x82,0xF2,0x42,0xB8,0x3D,0x1E,0x00,0x68,0x85,0x09,0x03,0x0B,0xEC,0x8E,
+0xE6,0xBD,0x63,0xBF,0x4E,0x6C,0xE9,0xC6,0x27,0x2D,0xA2,0x6B,0xEB,0xDA,0xD5,0x5F,
+0x42,0xA1,0xC7,0x07,0xF5,0x35,0xB0,0x24,0xFE,0xC7,0x7B,0x58,0x88,0xD4,0xB8,0x51,
+0x4F,0x93,0xCA,0x38,0x00,0x70,0xF5,0x94,0xD1,0x80,0x54,0x30,0xE1,0x52,0x57,0xD7,
+0x97,0x59,0x12,0x2A,0x36,0x88,0x0D,0x5A,0xEA,0x97,0x6F,0x1C,0xDB,0xDF,0xE0,0x5A,
+0x45,0xE0,0xC0,0x41,0xE7,0xED,0x68,0xEE,0x0C,0x7A,0x89,0x17,0xAE,0xFD,0xB7,0x78,
+0xA5,0x6C,0x20,0x2D,0x45,0x8A,0x0F,0x2B,0x74,0xBC,0xF1,0xA9,0xD1,0x57,0x62,0xD2,
+0x3D,0x26,0xB8,0xFF,0x9B,0xC6,0x43,0xB9,0x57,0xE9,0xD2,0xDF,0xE5,0x72,0x73,0xF7,
+0xAC,0x4E,0x29,0x06,0xAF,0x2D,0xA8,0x66,0x31,0x0C,0xB4,0x5C,0x05,0x23,0xC2,0xA6,
+0xA0,0x5C,0x25,0x18,0x66,0x98,0x1D,0x1A,0x48,0xEA,0xCD,0xC3,0x1D,0xA7,0x5E,0x22,
+0xA3,0x0D,0x26,0x4A,0x3B,0xB2,0x37,0x6D,0xDB,0xF3,0x5E,0x49,0x85,0x63,0x02,0xE6,
+0x0D,0x62,0x88,0x8B,0x82,0xF8,0x7D,0x9E,0x49,0xCA,0xCC,0xE2,0x2A,0x9D,0x53,0x18,
+0x6E,0xB7,0xEB,0x3D,0x5D,0x5A,0xDF,0xE3,0x5B,0xFB,0xDE,0xC1,0x02,0x1C,0xFA,0x99,
+0x83,0x09,0x06,0x6E,0xFC,0xC0,0x45,0xD8,0xE8,0xE6,0x6D,0x6F,0x46,0x2C,0x8E,0xA9,
+0x8E,0x3B,0x0B,0x51,0xDB,0x1D,0x98,0x22,0x81,0x40,0x04,0xA0,0x50,0x00,0xB4,0x85,
+0x4A,0xA3,0xCF,0x0D,0x72,0x9C,0x19,0x0A,0xB1,0x04,0x34,0xD4,0x45,0x33,0x92,0xB6,
+0x0F,0x13,0x8A,0xF8,0x3E,0x93,0x16,0x49,0xFC,0xB6,0x79,0x2B,0x23,0x0A,0xCD,0x8F,
+0x24,0x44,0xA1,0x84,0x8A,0xE3,0x66,0x8D,0x32,0x5D,0xB7,0x0E,0xD5,0x77,0x46,0xF2,
+0xA8,0x5E,0x2D,0x12,0x0F,0x59,0xDC,0xB2,0x46,0x89,0xC3,0xAE,0x43,0x1B,0xBC,0x9E,
+0xF5,0xAC,0x70,0xBD,0x56,0xBC,0x39,0x0E,0x90,0x20,0x15,0xD1,0x31,0x06,0xD3,0x83,
+0xA6,0x3D,0x23,0x7F,0x74,0x40,0xC5,0xD0,0xF4,0xB4,0x71,0x21,0x70,0x01,0x95,0x84,
+0xC8,0xDA,0x4D,0xF6,0x22,0x8C,0x09,0x4A,0x54,0xB8,0xD1,0x8D,0x9F,0xEF,0x94,0x6A,
+0x86,0x39,0x03,0x5B,0xC7,0x02,0x87,0x21,0x4C,0xFA,0xC9,0xD7,0x7B,0x9E,0x01,0x1B,
+0x67,0x95,0xE2,0x16,0x31,0xBA,0x3F,0x6F,0xE5,0xD4,0x60,0x50,0x8A,0xDC,0xB2,0x59,
+0x30,0x14,0xB5,0xC0,0x99,0xD5,0x50,0xA8,0x52,0xD9,0xD7,0xEA,0x16,0x38,0xCA,0xBD,
+0x7D,0xA6,0xF8,0x3F,0x65,0x65,0xE0,0xE4,0x4A,0x9B,0xCF,0xB0,0xC0,0x44,0x60,0xC1,
+0xBD,0x2E,0x38,0x77,0x89,0x1E,0x9B,0x73,0x62,0x9D,0xE7,0x9E,0xDD,0xF7,0xCE,0x72,
+0x2E,0x37,0xAB,0xFD,0xAA,0x0C,0x89,0x42,0x0A,0x1B,0x8F,0x70,0x4D,0xB3,0x1A,0x36,
+0xC7,0x99,0x42,0xBA,0x47,0x99,0x1C,0x3A,0xDA,0xD3,0x5F,0x68,0xB5,0x66,0x37,0xE3,
+0xD0,0x98,0x55,0xAC,0x9F,0x09,0x8C,0x72,0xEE,0x87,0x6B,0x08,0xBE,0xF9,0xA3,0x7C,
+0x11,0x30,0x94,0xC5,0xDD,0xC1,0x44,0xF8,0xBC,0x36,0x39,0xEB,0x47,0x3B,0x98,0xBE,
+0xFF,0xDF,0x7A,0xC4,0x1E,0x7C,0xF9,0x86,0x4B,0xBB,0xCE,0x91,0x29,0x82,0x4F,0x07,
+0x7F,0xD7,0xFA,0x4C,0x7C,0x5B,0xDE,0xC3,0xE4,0xF4,0x61,0x71,0xC2,0x4C,0x6A,0xC9,
+0x5C,0x82,0xD9,0x3A,0x15,0x9A,0x1F,0x6B,0xFF,0xE7,0x7A,0x79,0x32,0x19,0xCF,0x9C,
+0x6A,0xA7,0xEF,0x29,0x03,0x8D,0x08,0x6A,0x80,0x60,0x05,0x81,0xA0,0x55,0x11,0xD0,
+0x47,0x91,0xC2,0x32,0xA6,0xD8,0x5D,0x9A,0x05,0x58,0x80,0x3C,0x8F,0xEB,0x80,0x6E,
+0x84,0x48,0x01,0x28,0xAD,0x3E,0xBB,0x77,0x2C,0x7E,0xA9,0x33,0xC5,0x73,0x52,0xF6,
+0xE5,0xEC,0x60,0xED,0x88,0xF0,0x75,0x9C,0x10,0x28,0x95,0x59,0x01,0x03,0xE6,0x86,
+0xAF,0x1F,0x2A,0x54,0x4B,0x4D,0xC8,0xE2,0xF3,0xF5,0x76,0x67,0x06,0x3C,0xDE,0xB9,
+0xB1,0x3C,0x34,0x69,0x0B,0x96,0x13,0x79,0xAF,0x27,0x2A,0xE9,0x08,0x94,0x78,0x11,
+0x1F,0x53,0x9A,0xA8,0x0A,0x78,0xFD,0x96,0x97,0x61,0x12,0x97,0x34,0x31,0xE1,0xB4,
+0xEE,0xBF,0x6B,0xB5,0x34,0x9B,0x1E,0x4B,0xDD,0x92,0x58,0x2E,0xC1,0x53,0x76,0xD6,
+0xAD,0x6E,0x28,0x27,0xE5,0xFE,0x7B,0xFF,0xBF,0x67,0x3A,0xB9,0x54,0x20,0x90,0xA5,
+0x56,0xF1,0xD3,0x43,0x44,0x64,0xE1,0xC4,0x30,0x2C,0xB5,0x7D,0x5B,0x9F,0x20,0x1A,
+0x36,0x75,0xB3,0xA7,0xD0,0xFB,0x7E,0xCF,0x96,0x41,0x13,0xB6,0xFC,0xE1,0xF9,0x64,
+0x87,0x19,0x02,0x7A,0x13,0x46,0xC3,0xB1,0xCC,0xF2,0x49,0x5F,0xDC,0xE0,0xD8,0x65,
+0xB9,0x3E,0x3C,0x63,0x9A,0x28,0xAD,0x56,0x4E,0x8B,0xCB,0xA4,0x63,0x1A,0x9D,0x9F,
+0x2F,0x17,0xAA,0xDC,0x2F,0xB6,0x33,0x7D,0x58,0xAA,0xDD,0x93,0x12,0x18,0xEE,0x9D,
+0xD6,0xF9,0x53,0xCB,0xC6,0xEC,0x69,0xCE,0xFB,0xF7,0x7E,0x6D,0x18,0x90,0x6C,0x15,
+0xAA,0x2F,0x2F,0x61,0x25,0xBE,0x3B,0x7F,0xA3,0x35,0x26,0xF7,0xBA,0xD9,0x87,0x5C,
+0xFA,0xEF,0x7F,0xF1,0x7E,0x48,0xCD,0xD2,0xCE,0x83,0x4B,0x2C,0x25,0x22,0xE3,0xA7,
+0xD3,0xC9,0x56,0xFE,0x86,0x37,0xB2,0x55,0x47,0xA9,0xC2,0x8F,0xCD,0xF3,0xDA,0x76,
+0x3F,0x57,0xBA,0x8C,0xC9,0xC5,0x40,0xE8,0x04,0x78,0x81,0x1D,0xF6,0x69,0x7B,0xEC,
+0xEA,0xAF,0x6F,0xA1,0xEF,0xF6,0x73,0xFD,0x3E,0x4F,0xBB,0x10,0x69,0x92,0x1F,0x17,
+0xF4,0x8C,0x71,0x9C,0x40,0xAB,0x2E,0x0F,0x93,0x71,0x16,0x83,0x3F,0xAE,0x75,0x2B,
+0x29,0x76,0xAC,0xBB,0x0C,0xA4,0x21,0x4C,0x0E,0x0B,0x8B,0x64,0x65,0x32,0xB3,0xB7,
+0xF2,0xED,0x77,0xFB,0x55,0x41,0xC4,0xF0,0xF1,0x84,0x74,0x14,0xA4,0x75,0x35,0xF0,
+0x8B,0x74,0x3A,0x19,0x9A,0xD4,0xE6,0x2B,0x25,0x96,0x69,0xE4,0x2E,0xD1,0xAA,0xD3,
+0x95,0x6A,0x07,0x3A,0x68,0x89,0x49,0x76,0xB6,0x3B,0xC4,0xDA,0x12,0xED,0xFC,0xB9,
+0x8D,0x72,0x5D,0x78,0x65,0x3E,0xF3,0xC1,0xB2,0xF4,0x0B,0x11,0xF5,0x0A,0x31,0x93,
+0x56,0xA9,0x1D,0xE3,0xD9,0xDB,0xAA,0x24,0xC2,0x0B,0xF4,0x9E,0xB2,0x4D,0xF0,0x15,
+0x85,0x7A,0x57,0x7A,0x47,0x37,0xD8,0xC8,0x8A,0xCB,0x34,0x16,0xA2,0x5D,0xB0,0x45,
+0xD5,0x2A,0xC7,0xBA,0xEA,0xC1,0x83,0x3E,0x51,0xA6,0x59,0xA0,0x59,0xA6,0x2F,0x21,
+0x40,0xBF,0x2A,0xC2,0x7D,0xBA,0x6F,0x45,0xBB,0x01,0xFE,0xED,0xE9,0x16,0x63,0xDD,
+0xAC,0x53,0x58,0x5C,0xC0,0x48,0x20,0xB7,0x29,0x42,0xBD,0x3C,0x73,0x8C,0x58,0x7C,
+0xC6,0x39,0xC5,0xAB,0xC3,0x57,0x3C,0xA8,0x02,0x4B,0xB4,0x1E,0x9A,0x65,0xF6,0x3B,
+0xF8,0x07,0xDC,0x8C,0x24,0x39,0xB5,0xC6,0xF9,0xC9,0x36,0x67,0x60,0x9F,0x49,0x7E,
+0xA9,0x56,0x6D,0x6C,0x5B,0x93,0x60,0x6C,0xCB,0xFE,0x01,0x62,0x10,0xEF,0x8D,0xCA,
+0x50,0xAF,0x7A,0x82,0xE8,0xC9,0x89,0x36,0x35,0x5D,0xA2,0x3F,0x98,0x67,0x87,0x48,
+0xD2,0x2D,0x81,0xFB,0x6A,0x81,0x43,0x7E,0x1F,0xBA,0x45,0xF2,0xA0,0x5F,0xC1,0x36,
+0x91,0x6E,0x13,0x2A,0xDE,0xE4,0x92,0x1B,0x88,0xD8,0x27,0x07,0xD3,0x2C,0x54,0xD0,
+0x49,0xB6,0x01,0xE0,0x5A,0x84,0x76,0x7B,0x10,0x93,0x6C,0xD4,0x61,0x9E,0x69,0x5F,
+0x29,0xD6,0xE5,0x64,0x51,0x1B,0xE2,0xE4,0xDB,0x35,0xCA,0xB9,0x1F,0xE0,0xCE,0x86,
+0xD0,0x2F,0xF2,0x8A,0x77,0x32,0xED,0xCD,0xC1,0xF6,0x09,0x60,0xBC,0x43,0x93,0x78,
+0x9A,0x65,0x4B,0x79,0x09,0x8F,0x2E,0x70,0xFF,0x15,0xEA,0xBD,0x83,0x7C,0x94,0x40,
+0x60,0x9F,0x0E,0xC6,0x03,0x07,0xAC,0xF8,0x31,0x92,0x6D,0xF4,0xB1,0x4E,0xA1,0x47,
+0xCE,0x31,0xCF,0xA9,0xEC,0xE9,0xAD,0x16,0x4F,0xAA,0x55,0xB2,0x14,0xEB,0x9D,0xDE,
+0x15,0xEA,0x8F,0x32,0xFF,0xF2,0xA5,0x0D,0x27,0x85,0x7A,0xF5,0xD5,0x2A,0x35,0xB7,
+0x23,0xDC,0x9C,0x17,0xFE,0xE5,0xB3,0x1A,0xDF,0xFA,0x05,0x72,0x99,0x66,0xA7,0x69,
+0xFB,0x04,0x8E,0xDD,0xE2,0x41,0x0B,0xBE,0x95,0x29,0xD6,0xEB,0xF3,0x0C,0x50,0xF4,
+0x38,0xC7,0x94,0x04,0x0F,0xA7,0x00,0x58,0x9A,0x00,0xFF,0xCD,0x6B,0x94,0x1A,0x26,
+0x6E,0x91,0x63,0xA5,0x6D,0xBE,0x7B,0x41,0x4D,0xB9,0x46,0xA3,0xBB,0x44,0xD2,0x3E,
+0xAF,0x50,0x0A,0x0D,0xE7,0x76,0x39,0x89,0xAE,0xEB,0x14,0x12,0x79,0x86,0x2B,0x05,
+0x00,0xFF,0xEA,0x42,0x56,0x24,0xDA,0xDB,0xD7,0xE1,0x1E,0x61,0xCC,0x33,0x57,0xCC,
+0x80,0x7F,0x62,0x4A,0x13,0x03,0xB8,0xFC,0x37,0x4E,0xB1,0x2E,0x02,0xFD,0xBC,0xE9,
+0xC2,0x3D,0xD1,0xBB,0xE6,0x61,0x2F,0x9E,0x38,0x67,0x98,0x08,0x77,0x88,0x48,0x68,
+0x02,0xFD,0x99,0x33,0x71,0x1A,0xC3,0xE5,0x16,0x4F,0xB0,0x0E,0xC4,0x3B,0x55,0xC6,
+0xB8,0x47,0x1C,0x0C,0xAF,0xE6,0xE1,0x19,0xCE,0xDF,0x20,0x46,0xE6,0x19,0x20,0x91,
+0x51,0xAE,0x5B,0xA2,0xD7,0x73,0x0C,0x8C,0xD6,0x0F,0xF0,0x8E,0x33,0xCC,0xD8,0xBC,
+0xF9,0x06,0xFD,0xAC,0xB4,0x7D,0x61,0x82,0x71,0x49,0xB6,0x6F,0x1E,0xE1,0xEE,0xA7,
+0xB7,0x48,0x50,0x4F,0xDF,0xF3,0x84,0x0C,0x2B,0x51,0xAE,0x2D,0x6F,0x90,0x0A,0x32,
+0x4F,0xB0,0x66,0x81,0x3D,0xAA,0x3F,0x55,0x4C,0x57,0xA8,0x4C,0xB8,0x47,0x83,0x6C,
+0x18,0xE7,0xB0,0x00,0xFA,0xC5,0x97,0x3A,0xF6,0xE0,0x1F,0x41,0x5C,0xA3,0x1F,0x14,
+0xD7,0x28,0xB4,0xCB,0x27,0x26,0xA9,0xD9,0x08,0x43,0xBC,0x1C,0x9B,0x64,0xD6,0x1A,
+0x5B,0xA4,0x22,0xD1,0x18,0x9C,0x2C,0x63,0xA8,0x37,0xC8,0xC8,0xF7,0x08,0x40,0xE0,
+0xD9,0x26,0xD9,0xA8,0x45,0x3F,0xD2,0xC0,0x87,0xF1,0x0E,0x21,0x81,0x7E,0xE5,0x33,
+0x8A,0x75,0x1B,0x39,0x9B,0xC3,0xF0,0x3C,0x77,0x95,0x6A,0xB5,0x86,0x79,0xA4,0x75,
+0xF1,0x0E,0xF7,0xAE,0xB7,0x62,0x7D,0x9D,0x06,0x84,0x7B,0xD5,0x80,0x7F,0xC5,0x12,
+0xFC,0x03,0xC8,0x9C,0x4D,0xBF,0x5A,0x40,0xC9,0xED,0x12,0x73,0xAC,0x53,0xD3,0x28,
+0x70,0x8F,0x5E,0x86,0xDC,0xEC,0x98,0x13,0x8D,0xF9,0x06,0x23,0x8A,0x75,0xB6,0x6B,
+0x35,0xCA,0xAB,0x36,0x9F,0xE3,0xD4,0x1C,0x72,0xB4,0x4B,0x91,0xB3,0x4C,0xD0,0x34,
+0xDC,0x23,0xEC,0x98,0xF8,0xCD,0x9D,0x32,0xEF,0xDE,0x21,0x66,0xE3,0x1C,0x10,0xA4,
+0xDF,0x20,0xBE,0xC9,0x8F,0xE7,0xC0,0x18,0x65,0x4D,0xB2,0x7F,0x27,0xD8,0x88,0xF8,
+0x11,0xEE,0x9B,0x22,0x76,0x25,0xFB,0xDA,0x67,0x5E,0xA1,0x6E,0x9C,0x63,0x97,0x5C,
+0x72,0x8D,0x2D,0xF7,0x0B,0x87,0x24,0x78,0x44,0x4C,0xB3,0x5F,0x1D,0xE2,0xBF,0xF5,
+0xDA,0x25,0x8B,0xF9,0xBE,0xF5,0xE3,0x0A,0x0F,0x71,0x8E,0x29,0xD7,0x28,0x44,0xC4,
+0x3A,0xC5,0xE7,0x75,0x7B,0x92,0x41,0x6D,0xB1,0x09,0xF6,0xEF,0x7D,0x82,0x3B,0x11,
+0xD3,0x2C,0xA0,0xDB,0xF3,0x52,0x09,0xAD,0xFA,0x34,0xCB,0x99,0xA3,0x5C,0x90,0x64,
+0x42,0xBD,0x59,0xB3,0x2C,0xB9,0x3D,0x46,0x79,0x52,0xAD,0x7C,0xF2,0x0D,0x70,0xD5,
+0x3D,0xC2,0xA1,0x34,0xB1,0x4A,0x53,0xB5,0xFE,0xFB,0x04,0x52,0x54,0xAB,0x1D,0x1E,
+0x99,0x66,0x19,0x28,0x53,0x13,0xE8,0xEC,0xCD,0x22,0xDD,0xB8,0x5A,0xA5,0x7E,0x73,
+0xE8,0x17,0x8C,0xCC,0xCF,0xF7,0x90,0x08,0xBA,0xEF,0x10,0x02,0x5F,0xA0,0x4E,0x46,
+0x30,0xCF,0x9E,0x06,0x01,0x0F,0xA6,0xF0,0x96,0xD4,0x2B,0x15,0xD2,0x2D,0x74,0xF1,
+0x83,0x7C,0x30,0x1B,0x38,0x9D,0x0D,0x62,0x23,0x4A,0xB5,0x3E,0x3F,0xC0,0xCA,0xA2,
+0x1D,0xE2,0x85,0x30,0x80,0x58,0x70,0xA7,0x52,0x5B,0xA4,0x5E,0xAB,0x54,0x92,0x6E,
+0x78,0x87,0x54,0x84,0x8B,0xC7,0xE4,0x38,0xAF,0x05,0xFA,0xFD,0x8B,0x74,0x96,0x4A,
+0xEE,0x11,0xEB,0xAD,0xE9,0xDE,0x9F,0x21,0xBF,0xCE,0x31,0x26,0x94,0x6B,0x95,0x56,
+0x68,0x97,0x04,0xC4,0xE1,0x5E,0x17,0xA1,0x82,0xD0,0x2F,0x05,0x88,0x77,0xC7,0x18,
+0x3C,0xC3,0x80,0x14,0x43,0x17,0xFC,0xE8,0x74,0x68,0x97,0x4B,0xDD,0x22,0x37,0xBD,
+0x5A,0xA5,0x03,0xF1,0x85,0x6F,0x42,0x90,0xEE,0x30,0xCF,0x89,0x69,0x96,0x6B,0x55,
+0x71,0x8E,0x7F,0xA6,0x59,0x9B,0x6A,0x64,0xA3,0xD1,0x2E,0x25,0x44,0xBB,0x5D,0x4E,
+0xF1,0x32,0x17,0x63,0x51,0xC4,0x25,0x35,0xF4,0x0C,0x2C,0x80,0x51,0x5B,0xAA,0xDE,
+0x75,0xD6,0x77,0x03,0xCE,0xCF,0xBA,0xA1,0x52,0xC7,0x41,0x26,0x88,0xFC,0xD4,0xA0,
+0xBF,0xC4,0xAF,0xDB,0xAE,0x4B,0xDA,0x45,0x19,0x5F,0x92,0x6D,0x07,0xC1,0x66,0x12,
+0x6E,0x56,0xEC,0x98,0xCB,0xFF,0xBF,0x94,0x7B,0xC8,0x67,0x0F,0xE1,0x54,0x15,0x61,
+0x17,0xAD,0x6E,0x1A,0x83,0x7D,0xF7,0x5E,0x9C,0xE2,0xAA,0xE8,0x9F,0x12,0x2D,0x59,
+0xF9,0xBA,0x97,0xE3,0xD9,0xCE,0xAD,0xB7,0x3F,0x1C,0xF7,0x4B,0x1D,0x18,0xA5,0xD1,
+0x19,0x0B,0xC6,0xB2,0x73,0xB1,0x07,0x62,0x08,0x2E,0xF2,0x7C,0xA9,0xDC,0xD5,0xA1,
+0x3E,0x12,0xF8,0x8C,0x1D,0x56,0x69,0xEB,0x8A,0xD5,0x8B,0xFE,0xEC,0x63,0x2F,0x5B,
+0xC9,0x8F,0x92,0xE6,0x02,0x55,0x76,0xF7,0x83,0xFE,0xA9,0xF7,0xAB,0xCD,0xC6,0xB2,
+0x57,0xFD,0x7E,0x0A,0xF0,0xE8,0x84,0xB8,0xC0,0x6C,0x78,0xB4,0x0A,0xF6,0x5C,0x28,
+0x2F,0x10,0xEB,0x9F,0x8B,0x7F,0xFF,0x54,0x67,0x86,0x35,0x13,0xF6,0xBA,0xEC,0x98,
+0xEF,0x80,0xBB,0xCF,0x7D,0xD2,0x09,0x0F,0x0A,0x5D,0x83,0x7E,0x92,0x25,0x17,0x63,
+0x76,0xCA,0x68,0x1C,0x91,0x4C,0xE5,0x7D,0xCA,0x15,0x0B,0xBE,0xC2,0x65,0x07,0x73,
+0xED,0x8A,0xB3,0xC7,0x74,0xF0,0x00,0x24,0x35,0x65,0x84,0x41,0x44,0xA4,0x40,0x34,
+0xAF,0xD0,0xAB,0xDF,0xC3,0xFD,0xB7,0x9E,0xFA,0x61,0x4F,0x8E,0x6E,0x69,0xA7,0xD3,
+0x8C,0xED,0xB5,0xC1,0x9E,0x0F,0xEA,0x31,0x57,0xF2,0x71,0x23,0x04,0x3F,0x9B,0xEF,
+0x37,0x8C,0x6F,0x1B,0x39,0x42,0x4D,0xDB,0xCE,0x01,0x1B,0xBA,0x6B,0x4D,0x86,0xF2,
+0x99,0xCB,0x86,0xF2,0xAC,0x3A,0xD8,0x36,0x1E,0x19,0xD3,0x6A,0x46,0xB5,0x53,0x27,
+0xA6,0x4E,0x3C,0x48,0x50,0xE4,0x24,0x14,0x8E,0xC1,0x9B,0xFA,0x11,0xC0,0x71,0x05,
+0x2E,0x06,0xFC,0x88,0x2B,0x73,0x5F,0xF8,0xA6,0xEF,0x9D,0xD2,0xBF,0xDD,0xC2,0xB6,
+0xDF,0xB5,0xBE,0xCA,0x49,0x86,0x3D,0x6F,0x8F,0xE0,0xBB,0xFB,0x3E,0x29,0xB7,0xC3,
+0xD7,0x3D,0x3E,0x4A,0x6E,0xC3,0x1A,0x0D,0x20,0x00,0xF4,0x54,0x1B,0xC2,0x79,0x0D,
+0x98,0xDD,0x91,0xE5,0x3C,0x72,0x48,0xEE,0x2A,0x79,0x87,0x5E,0xD2,0xBE,0xCC,0xB8,
+0x30,0xB4,0x50,0x24,0xF4,0xF8,0x80,0xAC,0x78,0x9A,0x36,0x0C,0xE9,0x47,0x0E,0x7A,
+0x91,0x43,0x06,0x72,0xED,0x9A,0x99,0xD7,0xC1,0x4D,0x58,0xB5,0xF1,0x8F,0xDE,0xAA,
+0x48,0x59,0xC5,0xB1,0x0B,0x77,0x7F,0xDC,0xE8,0x42,0x7E,0x9C,0x23,0xC5,0x46,0x32,
+0x82,0x4B,0x1D,0x69,0xAF,0x6B,0xDB,0x64,0x3B,0x08,0xE7,0x4F,0xBE,0x32,0x2C,0x58,
+0xA7,0x58,0x2B,0x5F,0xB8,0x6A,0xCC,0x72,0x44,0xF0,0x60,0x30,0x60,0xA0,0x60,0x14,
+0x3C,0x18,0xF0,0x84,0xA3,0x79,0xD7,0x7A,0x6B,0x98,0x27,0x1F,0x09,0x08,0xA1,0xD5,
+0x53,0xD9,0x5E,0x2A,0x4D,0x96,0x39,0x7B,0x53,0xE6,0x61,0x27,0x90,0x34,0x04,0x70,
+0xEC,0x9C,0xA4,0xD0,0xC5,0x9C,0xB1,0xF9,0xD4,0x28,0x28,0xA0,0x97,0x01,0x36,0x42,
+0x1F,0x25,0xEE,0x9A,0x78,0xE2,0x0C,0x3A,0x37,0x16,0xF5,0x43,0xAF,0x06,0x09,0x7D,
+0x62,0xFA,0x4C,0x38,0xCD,0x9E,0xB9,0xF3,0x8D,0x93,0xCA,0xF9,0x22,0x2A,0xA8,0xDC,
+0xB7,0x4C,0x2F,0x5B,0x6F,0xE3,0x1B,0x2C,0x9F,0xB0,0xFB,0xEB,0x8B,0x02,0x29,0x5D,
+0x5C,0x69,0xE1,0x95,0xAD,0x1A,0xD9,0x17,0x8C,0xB2,0xEA,0xF8,0x2F,0x1D,0x92,0xE6,
+0x0D,0x3B,0xE2,0x96,0x87,0x6D,0xF3,0x4A,0x1F,0x38,0xF3,0x6B,0x73,0x85,0x56,0x22,
+0xA3,0x7C,0x0B,0x7F,0xA9,0x0A,0xDD,0x03,0x75,0xA5,0x04,0x01,0xE3,0x45,0x06,0x72,
+0x13,0x89,0x4E,0x3A,0xA6,0x49,0xD2,0x4F,0x38,0x5A,0xB6,0x4C,0xBC,0x23,0x3F,0x4B,
+0x09,0x1F,0xC2,0xB6,0xF5,0xD8,0x81,0x8D,0x2C,0x1E,0xE6,0x58,0xFF,0x46,0x19,0x6D,
+0x3B,0x20,0xCF,0xBB,0x28,0x22,0x5C,0xAA,0x45,0xD1,0x40,0x31,0xC5,0x50,0x35,0x41,
+0xAC,0xCC,0xB4,0xC0,0x89,0x0E,0xFD,0x27,0x54,0xA0,0x20,0x20,0xA2,0x31,0x33,0x47,
+0x3D,0x0E,0xE7,0x93,0x75,0xD0,0x01,0x05,0x30,0x50,0xB4,0x44,0xE4,0x70,0x34,0x40,
+0x44,0xF5,0x65,0x11,0xD6,0x8D,0xA2,0xFB,0xF6,0x7F,0x5D,0x82,0x37,0xD5,0x42,0x36,
+0x5E,0x63,0xE9,0x9D,0x6C,0xB2,0x18,0x7E,0x82,0xDF,0x89,0xF6,0xCD,0x43,0x2E,0x5A,
+0x95,0x67,0x26,0x52,0x8F,0x6F,0xFB,0x40,0x21,0x21,0xD4,0x55,0xC3,0x8A,0xE9,0x9D,
+0x14,0xB1,0x71,0x05,0xE0,0xA8,0x94,0xE8,0x96,0x9B,0xD9,0xE2,0xBB,0x16,0x0D,0x79,
+0xDA,0x87,0x89,0xFD,0xB9,0x4A,0xCD,0x53,0x90,0xFC,0xB8,0xE4,0xE5,0x9F,0xDA,0xAE,
+0x39,0x2A,0xC7,0xB3,0x37,0x21,0x43,0xB6,0x88,0xA6,0xFA,0xFC,0x70,0x7B,0xAB,0xDF,
+0x33,0xA8,0x4F,0x3B,0xD1,0xCC,0xA5,0xBD,0x10,0x74,0xB0,0x64,0x99,0xC8,0xF1,0x85,
+0x64,0xD4,0x64,0x10,0x25,0x10,0x51,0x95,0xF1,0x39,0x1C,0x85,0x82,0xFE,0xDC,0xA8,
+0x81,0x57,0x02,0x76,0x5D,0xD6,0x29,0x2B,0xA9,0xA3,0xDE,0xDD,0x6A,0xA2,0x68,0x1C,
+0x51,0xD3,0x56,0x22,0x14,0x74,0x60,0xC0,0x11,0x55,0x90,0x65,0xCF,0x52,0x3D,0x49,
+0x38,0x3C,0xD0,0xA4,0x94,0x7C,0xE0,0x48,0x0F,0x68,0xB3,0x7B,0x81,0x00,0x21,0x55,
+0x11,0x83,0x46,0x32,0x8D,0x1E,0xF9,0x33,0xC4,0x78,0x68,0xB0,0x9D,0x03,0x3E,0x4A,
+0xA5,0x52,0x23,0x57,0x12,0x15,0x66,0xA7,0x9A,0x85,0xCB,0xEE,0xB9,0x07,0x1E,0x6A,
+0x8E,0xE7,0xBD,0xC9,0xD7,0xAD,0xA3,0xDA,0x8B,0xF4,0xAB,0xFF,0x75,0x5F,0x8A,0xFE,
+0x93,0x49,0x0E,0x7A,0x45,0x94,0x31,0x71,0x15,0x41,0x80,0x61,0x26,0xE1,0x67,0x13,
+0x59,0x5B,0xD6,0xA2,0xBD,0x5A,0xC9,0x47,0x2E,0x6D,0x97,0x5A,0x91,0xDB,0xEA,0x9E,
+0xBD,0xCE,0xA7,0xD3,0x59,0xC6,0x2D,0x3F,0xE3,0x1A,0x2D,0x97,0xA4,0xEB,0xEF,0x9B,
+0xA1,0x76,0x03,0x77,0x00,0x24,0x74,0x84,0x3A,0x29,0xC7,0x4E,0xC9,0x88,0xE1,0x95,
+0x26,0x8E,0x7C,0x08,0xF3,0xB9,0x87,0xEA,0x93,0xAE,0xE9,0xE7,0x02,0xE5,0x47,0x33,
+0x4E,0x77,0xED,0x99,0x18,0x66,0x6C,0xDE,0xF5,0x2D,0x0C,0x81,0xB3,0x05,0x16,0x62,
+0xE0,0x30,0x04,0x70,0xD8,0xEE,0xAC,0x96,0xC8,0x66,0x7A,0xBC,0xC6,0xAE,0xC8,0xBC,
+0x6C,0x5C,0xE4,0x90,0xBF,0x2B,0xCB,0x34,0xB0,0xD8,0xBC,0xC4,0x13,0xD1,0x62,0x16,
+0xE1,0xF0,0xD2,0x72,0xC2,0xAD,0x62,0x0C,0x2A,0xC6,0x2F,0x8A,0xDA,0x2C,0x95,0x35,
+0xF6,0xDC,0xE9,0x49,0x4F,0x97,0xEF,0xBB,0xF2,0xD4,0xE5,0x52,0xEC,0xE2,0x6D,0xCD,
+0xB1,0xB4,0xC6,0x66,0xC9,0xFE,0x69,0x54,0xFF,0xEB,0xD7,0x5F,0x19,0x52,0x28,0x88,
+0x5B,0x87,0x1F,0xBF,0xC7,0x9D,0x67,0x39,0x5B,0x53,0xCB,0xFB,0xA2,0xB0,0x71,0xD1,
+0x7A,0xB0,0x09,0xA9,0x3E,0x73,0x9E,0x2E,0x11,0xEA,0x38,0xB1,0x43,0x10,0x30,0x90,
+0x9F,0x33,0x6F,0xCF,0x6F,0x93,0xCF,0x9F,0x80,0x13,0x50,0x20,0x77,0xCF,0xDB,0x7B,
+0xCA,0x45,0x4C,0xEC,0x4A,0xA7,0xEA,0x8E,0x18,0xC1,0x1A,0xB8,0xA9,0x5D,0x97,0x37,
+0x0C,0xFB,0x34,0x94,0xE0,0xD8,0x40,0x5B,0xF8,0xAD,0x96,0x58,0x0B,0x98,0xF0,0x50,
+0x6A,0xA4,0x0D,0xAD,0xF4,0x88,0x54,0x1F,0x98,0x49,0x12,0x38,0x08,0x66,0x0D,0xAD,
+0xC6,0xE9,0xEC,0x4C,0xD9,0xBE,0x79,0x04,0xB3,0x35,0x45,0x13,0x20,0xBA,0xF9,0x59,
+0xE6,0xC8,0xED,0x4D,0x15,0x24,0xB5,0x52,0xAA,0x4E,0x27,0x0A,0x5D,0x02,0x3C,0x9C,
+0xA8,0x3E,0x55,0xF5,0x40,0xD4,0xE0,0xF7,0xFE,0xCA,0xF7,0x5E,0xB6,0xA0,0x75,0xD5,
+0x1E,0xE5,0x38,0x98,0x16,0x75,0xB6,0x00,0xBA,0x1E,0x67,0x1A,0xAE,0x68,0xA5,0x05,
+0xC5,0xF5,0xF3,0x53,0x09,0x76,0xA9,0x1C,0x2C,0xA1,0x4E,0x8C,0xD5,0x0A,0xBC,0x1C,
+0xDD,0x69,0x77,0xD7,0xA2,0x29,0x02,0xE8,0x41,0x7A,0xF8,0xE1,0x47,0xDB,0xFF,0x5F,
+0xBD,0x18,0x66,0xC6,0x36,0x71,0x96,0x24,0xDF,0xCF,0xD3,0x7F,0x3A,0x63,0x3A,0x9A,
+0xC2,0xCD,0xCC,0x6C,0x1C,0x06,0xBC,0x79,0x1B,0x93,0x4B,0xBB,0x98,0xA6,0x5D,0xFD,
+0x56,0x3D,0xA8,0x08,0x1B,0x47,0xBB,0x3F,0x48,0x51,0xDA,0xE8,0xBA,0x78,0xA1,0x01,
+0xFF,0x42,0x7E,0xDE,0x06,0x35,0xA6,0x50,0x15,0xFE,0x28,0xB5,0xE3,0xC4,0x44,0xE4,
+0x2B,0xE2,0x0A,0xAA,0x6A,0xA3,0xCA,0xAA,0x99,0x68,0x32,0x39,0x66,0xFB,0xFE,0x5E,
+0xAF,0x06,0x6A,0xCA,0x25,0x60,0x85,0x26,0x8D,0x2C,0x62,0x2D,0x75,0xDE,0xC8,0x68,
+0xA2,0xBC,0xDD,0x7D,0xC1,0xFC,0x61,0x5E,0xDA,0xFA,0xE3,0x7A,0xDD,0x19,0xA7,0x07,
+0x8C,0x3B,0x74,0xD4,0x83,0x0D,0x23,0xED,0x3B,0xB7,0x4F,0x9B,0x2B,0x57,0x1F,0xBF,
+0xCE,0x61,0x6C,0xCC,0xF2,0xE9,0x52,0x78,0x75,0x1A,0xAC,0xD5,0xCE,0x3C,0x91,0x31,
+0x8D,0x2D,0x63,0xC3,0x01,0x74,0xA1,0x16,0xD3,0xD1,0xC1,0x73,0xB1,0x95,0x47,0xE7,
+0xBC,0x0E,0x71,0xD1,0x80,0x5C,0x20,0xBF,0xB0,0x67,0x14,0x10,0x6E,0xE8,0xE5,0x45,
+0x85,0xA5,0xE3,0x43,0x7E,0xF3,0xDE,0xEE,0x1E,0xA6,0x7B,0xBE,0xD7,0x1B,0xAF,0x0F,
+0x9C,0x2F,0x70,0xD0,0xBA,0x6B,0x1A,0xB2,0x1D,0xF4,0x2A,0xBD,0x8A,0x6C,0x85,0x25,
+0xC0,0xC7,0xC4,0x64,0x17,0x55,0xB7,0x21,0xB2,0x14,0x65,0x12,0xD2,0x3F,0x8E,0x2E,
+0x72,0x38,0x89,0x29,0x2E,0x33,0x8E,0x7E,0xF7,0xE1,0xD5,0x57,0x9E,0x7C,0x81,0x21,
+0x36,0x4C,0xB9,0x19,0x1D,0x26,0xBD,0x58,0x33,0xBD,0x4D,0x93,0x37,0x54,0x00,0xA0,
+0x90,0x83,0xD0,0x70,0x31,0x30,0x91,0x62,0x3E,0x82,0x7F,0x9E,0x10,0xAE,0xDD,0x7D,
+0x08,0xDF,0x14,0xB4,0x6E,0xB3,0xCE,0xBE,0x39,0xC4,0x3E,0x99,0x41,0x01,0x23,0x83,
+0x2E,0xD0,0x3D,0x9D,0xF6,0xF9,0x56,0x6C,0xFA,0xDE,0xE7,0x5A,0x4A,0xEC,0xC5,0x65,
+0x16,0x6D,0xB8,0x18,0x48,0xD6,0xE8,0xFD,0xD7,0xC5,0xD1,0x77,0xEF,0x1C,0x90,0x30,
+0x91,0x95,0xC7,0x67,0x04,0x44,0xA4,0x23,0xE1,0xD6,0xF4,0x41,0xF9,0x1D,0x87,0x27,
+0x17,0x7B,0xAF,0x0F,0x2C,0x42,0x8C,0x0D,0xA2,0x44,0x25,0x02,0xE6,0xE0,0x65,0xC5,
+0x51,0x05,0x97,0x37,0x89,0x7E,0x29,0x94,0x0C,0x85,0x4A,0xAC,0xE7,0x0F,0x8B,0x2B,
+0x83,0x8B,0xCB,0x6B,0x21,0x70,0x81,0x32,0x12,0xB8,0x69,0xB2,0xA7,0x94,0x50,0xF0,
+0x5E,0xB5,0x28,0x88,0x1E,0x77,0xBE,0x0A,0x58,0x01,0x9A,0xF8,0x64,0xEA,0xED,0x4D,
+0xA5,0x84,0xE2,0x42,0x7B,0xC3,0xDB,0xDB,0x7A,0x56,0xEF,0xDA,0xAB,0x4C,0x84,0x24,
+0x6D,0x9C,0x32,0x92,0xAE,0x3B,0x0E,0xF6,0x93,0x11,0x41,0x33,0x46,0x34,0x11,0xB1,
+0xEB,0x72,0x5A,0xFA,0xEA,0xAB,0x4A,0x22,0x00,0x9B,0x58,0xA0,0x65,0x05,0x03,0xA3,
+0xED,0x5C,0x72,0xD2,0x59,0xB6,0xF9,0x8C,0xC0,0xD3,0xD0,0x60,0x89,0x92,0x78,0xD8,
+0x82,0x9D,0xDC,0x7C,0x51,0xB4,0xF1,0x86,0xC2,0xA0,0xA1,0x62,0x90,0xB5,0x46,0xE6,
+0xCD,0x7D,0x73,0xD3,0x9F,0x5F,0x3F,0xA3,0x42,0x28,0xA9,0xE2,0xF2,0xF0,0x61,0xC1,
+0x40,0x07,0x84,0x24,0x26,0x31,0x86,0x74,0xAC,0x29,0x46,0x0C,0x31,0x8E,0xDC,0x7C,
+0xF1,0xE4,0xD6,0x76,0xE4,0xC8,0x44,0x4F,0x6D,0x40,0xEE,0xCD,0x73,0x04,0x14,0xB4,
+0x0E,0xF1,0x3C,0x9C,0x74,0x80,0xD4,0x97,0x82,0x60,0x21,0x22,0x25,0x9E,0xD8,0x78,
+0xDF,0x63,0x7F,0xDF,0xEE,0xBB,0x4E,0x36,0x6E,0x12,0xBF,0xCE,0x6A,0x23,0x2A,0x8A,
+0xF5,0xC0,0xF6,0x56,0x3F,0x53,0x9F,0x0F,0x47,0x1D,0x99,0xE7,0x92,0xA4,0x55,0xF5,
+0x43,0x1B,0x9B,0x3B,0xC4,0xCC,0x64,0x6B,0x17,0x8D,0x59,0xB7,0xC9,0x09,0xA3,0x03,
+0xF2,0xF8,0xC9,0x69,0x68,0xD2,0xC8,0xD9,0x4F,0x17,0x9B,0xEF,0xB9,0x86,0x5C,0xFC,
+0x7D,0x88,0x36,0x96,0x2F,0x13,0x8F,0x5F,0x94,0x57,0x00,0x34,0xE0,0x3A,0xB9,0x19,
+0x07,0x6F,0xAB,0x0B,0xB3,0x49,0x13,0x99,0x49,0x70,0xFA,0xE9,0xAC,0x79,0xB6,0x16,
+0x39,0xFC,0x06,0xA6,0x8F,0x1F,0x2F,0xF3,0x57,0x4D,0xD9,0xF7,0x03,0x8B,0xEB,0x4B,
+0x37,0x5A,0xAE,0x0E,0xFC,0x8A,0x5C,0x15,0x8B,0x4B,0x03,0x2B,0x3C,0xB9,0xE6,0x46,
+0x5A,0x91,0x08,0xA8,0x82,0x2D,0x22,0xCC,0xEB,0xAF,0x87,0x4B,0xA8,0xB2,0x79,0xD9,
+0x11,0x55,0x87,0x27,0x3D,0x22,0x9D,0x7C,0x10,0xCB,0x18,0xB0,0x09,0x89,0xE3,0x43,
+0xE4,0xC2,0xE5,0x45,0x4E,0xB7,0xEE,0x9A,0x53,0x59,0xC9,0xF3,0xD8,0x3D,0x86,0x26,
+0x81,0x81,0xC3,0x63,0x8D,0x6E,0x2D,0x80,0x6B,0x27,0x8F,0xCB,0x2A,0xB8,0xF1,0x51,
+0xDC,0x7F,0x60,0xC0,0x05,0x64,0xA5,0x02,0x92,0x30,0x61,0x32,0xC3,0x0B,0xAB,0x0B,
+0xFD,0x48,0x76,0xD6,0x07,0x15,0xA7,0x71,0x04,0x8F,0x48,0xA4,0x76,0x20,0x35,0x95,
+0x84,0xB3,0xF4,0x54,0xFD,0xAA,0x5D,0x34,0x3A,0x96,0x6F,0x9A,0xFF,0xC7,0x5B,0xFB,
+0x27,0xE2,0x1B,0x4D,0xEB,0x4A,0xBD,0x29,0x4F,0x66,0xF7,0x19,0x0E,0xB0,0x36,0x60,
+0xE1,0x5C,0x63,0x35,0x41,0x35,0x17,0xFC,0xAF,0x0A,0x7B,0xF9,0xAC,0x75,0x51,0x07,
+0x97,0x17,0x5E,0x08,0x9F,0x9E,0xC9,0x89,0x46,0x4D,0xD5,0x10,0xE4,0xFD,0x91,0xC7,
+0x72,0x94,0x38,0x6E,0xCE,0x7E,0x98,0x38,0xD7,0xB4,0xBD,0x81,0xD0,0x22,0x7A,0x2C,
+0x5C,0x13,0x91,0xC7,0x68,0x13,0x3E,0xF3,0xA8,0x4C,0x3A,0xFE,0xBE,0xBF,0x89,0xDF,
+0xB6,0x20,0x48,0x1E,0x66,0x70,0x30,0x9E,0x0C,0xF4,0x26,0x5A,0x05,0x5D,0xD0,0x86,
+0x0C,0x57,0x85,0xD3,0x63,0x40,0x35,0xAB,0x7D,0x61,0xC2,0x2B,0x7D,0xC1,0x34,0x62,
+0x1B,0x7B,0xBE,0xE8,0xEE,0x7A,0xB8,0x1C,0xA5,0x73,0x08,0xF3,0x4B,0x0F,0xCC,0x9A,
+0x30,0xCE,0x20,0x76,0x03,0xC4,0x55,0x4F,0x16,0xDD,0x15,0x40,0xE0,0x36,0x5E,0x08,
+0x50,0xBF,0x31,0x67,0x97,0x9C,0xC1,0x83,0x88,0x68,0x3E,0xDE,0x9D,0x8E,0x9B,0xCD,
+0xF3,0x42,0x6F,0x39,0xB7,0x98,0xE1,0xA7,0xED,0xB9,0x8A,0xBB,0x09,0x85,0x04,0x52,
+0x28,0x52,0xA4,0xF2,0xA8,0x9B,0xFE,0xBB,0x7B,0x06,0xA3,0x2D,0x72,0xE7,0x1D,0x4B,
+0x0B,0x6F,0xBA,0xEC,0xB4,0xC9,0xE2,0xF5,0xFD,0xE9,0xCA,0xAB,0xFA,0xEF,0x9D,0xCB,
+0x45,0x99,0x02,0x54,0xE1,0x39,0xB7,0x50,0xA9,0x6D,0x1A,0xFF,0x11,0x4D,0xD4,0x82,
+0x87,0x03,0x5A,0x0C,0x55,0x65,0x03,0xB8,0xCF,0xEE,0xFF,0x99,0xAF,0x8B,0xAC,0xFA,
+0x2B,0x4E,0xBB,0xED,0x78,0x53,0x2E,0xA3,0xE4,0x92,0xA8,0xB2,0x87,0x57,0x58,0x0E,
+0x61,0x9C,0x23,0x75,0x22,0xE0,0x74,0x4A,0x6C,0x10,0xA2,0x3A,0x8C,0xBA,0xBE,0xE8,
+0x23,0xC6,0x3B,0x6D,0x53,0x04,0x05,0xDF,0x22,0xBD,0x41,0x74,0x69,0xD1,0x30,0x66,
+0x42,0xA1,0x3D,0x6B,0x84,0x8D,0xD2,0x81,0xDA,0x8B,0x8F,0x8C,0xD2,0x33,0x69,0x3F,
+0x4F,0x1B,0x8A,0xDC,0x60,0x11,0x36,0xF9,0x8D,0x5D,0x0E,0xDB,0x7A,0xF4,0x06,0x50,
+0x12,0xE5,0x29,0x7F,0xA7,0xD8,0xF1,0xF7,0x42,0x59,0xC5,0x14,0x44,0x29,0xE5,0xB3,
+0xC6,0x45,0x5D,0x0B,0xCB,0x4E,0x9D,0x0D,0xCE,0xCF,0xDF,0x98,0xC1,0x16,0x5F,0x09,
+0x2F,0x6A,0x9B,0xCD,0xBD,0xEB,0xEB,0xDE,0x4C,0x34,0xA6,0x1A,0x3F,0x4B,0xFC,0xAA,
+0xBB,0x9A,0xFF,0xA9,0xBA,0xAA,0xEC,0x98,0x1F,0xF6,0x37,0x49,0x1D,0x95,0x00,0x56,
+0xDB,0xEB,0xEE,0xB8,0xBC,0xCB,0xEA,0xFF,0x64,0x1A,0xA0,0x32,0x90,0xB9,0xA1,0xF7,
+0x7D,0x24,0x87,0xD1,0x90,0xDD,0xC6,0xC5,0x69,0x25,0x92,0x3F,0xB7,0x43,0x7C,0x2A,
+0x2D,0x60,0x93,0xC5,0xB6,0xB8,0xE0,0x86,0xE5,0xB3,0x88,0xB3,0x75,0xD2,0x2F,0x79,
+0x9F,0x9F,0xDE,0x88,0x8F,0xDE,0xD9,0xD9,0xA0,0x46,0x38,0xF6,0x39,0x91,0x20,0x76,
+0x68,0x02,0xB4,0xE2,0xDF,0x1E,0x89,0x49,0x49,0x01,0x96,0x1F,0x70,0xF6,0x0E,0x58,
+0x71,0x88,0x27,0x71,0x1B,0x86,0x4D,0x15,0x4A,0x53,0xC7,0x1C,0x2D,0x81,0x24,0x72,
+0x60,0x8A,0x34,0x62,0xA0,0x99,0xF6,0xB1,0x84,0x76,0x2C,0xD2,0x16,0x78,0xE6,0xB0,
+0x51,0xA9,0x26,0x70,0x21,0xB1,0x77,0x18,0xE7,0xC0,0xF9,0xB1,0xC9,0x05,0x44,0x12,
+0x6E,0x2C,0x9C,0xCA,0x80,0x9D,0xD6,0x95,0x45,0x1F,0x84,0x13,0x00,0x79,0xF1,0xA7,
+0xB3,0x12,0x7F,0x29,0xBF,0x9A,0xE9,0xAD,0x0F,0xA6,0x77,0x59,0xC3,0x07,0x4C,0x1A,
+0xFA,0xDC,0xF8,0xAE,0x8D,0xAF,0xDB,0xAA,0xF5,0xE3,0xC8,0xA3,0x41,0x0D,0xC4,0x92,
+0xBC,0xA2,0xC0,0x96,0x28,0x93,0x7E,0x33,0x5B,0x22,0xA7,0x0D,0x40,0xE2,0x2A,0x7C,
+0xFB,0xCA,0xEF,0xB9,0xE9,0x3B,0xBF,0x5A,0x80,0x62,0x3C,0xD6,0x48,0xF1,0x31,0x67,
+0x7C,0x32,0x90,0xC6,0xA5,0xA9,0xF3,0x84,0xB6,0x71,0x19,0xE0,0x5E,0xF0,0x26,0x70,
+0xE5,0x78,0x43,0x15,0xCF,0x5E,0x99,0x19,0x6E,0x63,0xD3,0x38,0xE6,0xEC,0x82,0xD4,
+0xC3,0x77,0x6A,0x3C,0x57,0x14,0x01,0xCB,0xAD,0x79,0x0A,0xFB,0xED,0x01,0x64,0x32,
+0xAD,0xA0,0xD3,0x85,0x87,0xDC,0xD1,0xD3,0xFB,0x8E,0xAB,0xAD,0x96,0x63,0x7D,0x2B,
+0x1C,0x43,0x81,0xD7,0x45,0x25,0x13,0xE8,0x3A,0xE7,0x03,0x6C,0xD4,0xE9,0xB5,0xE3,
+0x6F,0x3A,0x8B,0xDD,0xF0,0x59,0xA6,0x21,0x95,0x07,0x4C,0xC3,0x37,0x58,0xE7,0xB1,
+0x20,0xDA,0x24,0x72,0x3E,0xB2,0x68,0x04,0x15,0x8F,0x44,0x43,0x55,0x1D,0xC0,0x96,
+0x06,0xD5,0x0D,0x5B,0x4B,0x46,0x1D,0x85,0x57,0x3C,0xB5,0x01,0xC2,0xE8,0xA2,0xF4,
+0x00,0xFB,0x25,0x73,0xF8,0x5B,0xAE,0x2B,0x97,0x74,0x3D,0xC1,0x2E,0x7F,0xD9,0x8F,
+0x48,0x23,0xB5,0xE3,0xDA,0x2E,0x8C,0x7C,0x2D,0xF1,0x02,0x7B,0x0C,0xA1,0x25,0x73,
+0x80,0x3B,0x65,0x33,0x0F,0xD6,0x59,0x51,0xC4,0xB6,0xAC,0x92,0xE1,0xD9,0xB0,0xE6,
+0xEA,0xC8,0xFC,0xAA,0x12,0xA4,0x44,0x3E,0x1E,0xD7,0x17,0x48,0x0B,0x94,0x17,0x41,
+0xD4,0x5B,0x51,0x07,0x2E,0xF2,0x78,0x54,0x00,0xEA,0x34,0x56,0xA4,0x66,0x4A,0x1C,
+0x1F,0x5F,0x9E,0xC8,0xC9,0x3F,0x9F,0x7E,0x18,0xB0,0x76,0x4E,0x1E,0x6B,0xFD,0xAB,
+0x90,0x2F,0x61,0x37,0x8E,0xFE,0xD8,0xF8,0xC3,0xF0,0xED,0x95,0x47,0xD7,0x18,0x4E,
+0x18,0x67,0xA1,0xF7,0x9E,0xBE,0xC8,0xA8,0x10,0xBA,0x74,0x46,0x35,0x49,0xF4,0xA2,
+0xAE,0xBC,0xCC,0x9A,0x65,0x21,0x33,0xCC,0x40,0x2A,0xB4,0x16,0x6E,0xE4,0x02,0x54,
+0xE3,0x56,0x6B,0x3D,0xD5,0x6D,0x83,0x30,0xD5,0xC7,0xCC,0x83,0x82,0x73,0x79,0x2F,
+0x32,0xC4,0x28,0x7E,0x4F,0x56,0x19,0x91,0x39,0xB5,0x52,0x6F,0xCD,0xCE,0x8B,0xDD,
+0x10,0xEF,0x21,0x77,0xA6,0xF8,0xF0,0xD6,0x53,0x28,0xA5,0x05,0xD1,0xCD,0x94,0xC2,
+0x69,0x14,0xA3,0xF5,0x5C,0x47,0x0A,0x93,0x6D,0x31,0x82,0x3B,0x58,0x2A,0xFA,0xAC,
+0x6C,0x26,0x94,0xC2,0x2C,0x83,0x7A,0x27,0x3C,0x80,0x62,0x6A,0x8D,0x55,0x50,0x06,
+0x31,0xD8,0x37,0x61,0xA4,0x89,0xF2,0xA5,0xC5,0x97,0x8C,0x93,0x64,0xE6,0x0A,0x5C,
+0xFC,0xF2,0xD0,0x86,0x9C,0xCF,0xCA,0xDB,0x47,0x6C,0xF5,0x11,0xAE,0x64,0x42,0x14,
+0x09,0x65,0xB2,0xE4,0xEF,0x5A,0xB9,0x3D,0x04,0xFE,0x24,0x52,0x7F,0xD0,0x27,0x71,
+0xDA,0xFD,0xF9,0xAF,0x5D,0x67,0x0B,0xB2,0xDC,0xEC,0xEE,0x8A,0x9B,0x54,0x47,0x11,
+0xB7,0x36,0x5F,0x09,0x23,0xC0,0x75,0x6B,0xBC,0x08,0x6A,0xEA,0x0F,0x5F,0xD8,0x8E,
+0x98,0x01,0x90,0x78,0xA8,0x13,0x1B,0x5A,0xB1,0x25,0xB9,0x7D,0x67,0xA1,0x27,0xA9,
+0x2B,0x1C,0x23,0xD6,0x86,0x3B,0x33,0x5C,0xCA,0xB2,0xC2,0x91,0xEF,0x61,0x6F,0x69,
+0x6F,0x8C,0x67,0x02,0x68,0x53,0x5B,0xDA,0xD8,0x83,0xD0,0xB2,0xF6,0xF2,0xE5,0xFA,
+0xBA,0x74,0xB2,0x2F,0x70,0x83,0x8B,0x12,0x4D,0xFB,0x45,0x5F,0x58,0x1B,0xA2,0x13,
+0x25,0x7F,0x2D,0xBB,0x10,0xB7,0xBF,0x46,0xDD,0xB3,0xD5,0x87,0x59,0x0C,0xB4,0x04,
+0xE7,0x86,0xEF,0x80,0xF3,0xE5,0xED,0xF7,0x15,0x39,0x1D,0xC5,0xF1,0xCD,0xDD,0xC5,
+0x5E,0xE8,0x56,0x57,0x89,0x12,0x1A,0x7A,0xA8,0x47,0xA0,0x06,0x1E,0x23,0xDC,0x2B,
+0x90,0x03,0x98,0x72,0x69,0xBD,0xB5,0x35,0x8F,0x02,0x87,0x64,0x16,0xA3,0x54,0xAB,
+0xC5,0xF3,0xCD,0xD7,0x61,0xA6,0xAE,0x26,0x4E,0xAA,0x46,0x0D,0x43,0x80,0x22,0x88,
+0x89,0x61,0x81,0x09,0x99,0xD9,0xD1,0xA1,0x59,0xAB,0x51,0x1B,0x66,0xB6,0x31,0xBE,
+0x37,0x4E,0x3F,0x98,0x24,0x5C,0x54,0x99,0x0C,0x5B,0x04,0xBE,0x50,0x9B,0x2A,0x93,
+0xAF,0x04,0xA7,0x4A,0x2B,0x75,0x7D,0xBF,0xEA,0xB6,0xE2,0xB5,0x89,0x58,0x30,0x50,
+0xDF,0xC0,0xD7,0xFE,0x41,0x49,0x41,0xE9,0x24,0x5D,0x2C,0x90,0x2D,0x39,0xF5,0x31,
+0xE0,0xC7,0xE8,0xC6,0x7F,0xAA,0xA2,0x34,0x99,0x23,0x91,0x53,0xDE,0x73,0x4C,0x7B,
+0x48,0xC9,0x40,0x60,0xF1,0xF6,0xFE,0xE6,0x42,0xB8,0x4A,0x13,0xFD,0x6D,0x71,0x65,
+0xED,0xF5,0xE5,0xF9,0x8F,0xCE,0xC6,0xA0,0xAC,0x57,0xA4,0x12,0x92,0xC3,0xB0,0xCB,
+0x8F,0x00,0x87,0x6E,0x36,0x84,0x8C,0x53,0x4F,0x8A,0x47,0x2C,0x7E,0x32,0xAD,0x3A,
+0xFC,0x95,0xF4,0x88,0xA1,0xE6,0xEE,0xA6,0x2A,0x3E,0x22,0xFD,0xAF,0x71,0x3F,0x79,
+0x43,0x9A,0x4B,0x38,0x65,0x69,0x61,0xED,0xB0,0x05,0xB8,0x5C,0x30,0x8A,0x5B,0x82,
+0x3D,0x3D,0x35,0xE1,0xAE,0xCF,0xC7,0x80,0x2F,0x0E,0x27,0xC8,0xB4,0xEA,0xBF,0xE2,
+0x3C,0x1D,0x34,0xC0,0x47,0x95,0x9D,0x33,0x92,0x70,0x9A,0x0B,0xD8,0x5B,0x62,0x53,
+0xC6,0xA2,0xCE,0x85,0xBC,0x17,0x1F,0x4A,0xFC,0x97,0xF4,0x82,0xFF,0x65,0x7B,0x6D,
+0xC4,0xD3,0xCC,0xF6,0x8B,0x01,0x09,0x6B,0x62,0xBC,0x6A,0x37,0xD6,0xF3,0xC4,0xFB,
+0x4C,0xD9,0x44,0x74,0x75,0xA2,0xAA,0x36,0x38,0x0F,0x30,0xDE,0x38,0x0A,0xD3,0x02,
+0x05,0x7B,0x0D,0x9F,0xEF,0xFA,0xF2,0xF4,0x6A,0xBE,0x62,0x3D,0xEE,0x76,0x79,0x7E,
+0xFE,0xE4,0xF6,0xFB,0x34,0x97,0x9F,0x42,0x9C,0x13,0x94,0x66,0x2E,0x26,0xE9,0x2E,
+0x2F,0x0C,0x27,0xC2,0x97,0x1E,0x16,0x68,0xE3,0x94,0xEB,0x9E,0x08,0x0F,0xE6,0x07,
+0xB5,0x37,0xBD,0x63,0x05,0x5D,0x55,0xB9,0x11,0x29,0x19,0xD1,0x96,0xE3,0x94,0xEB,
+0x4E,0xA8,0x46,0x07,0x08,0x67,0x6F,0x8E,0x22,0x3C,0x2A,0xF7,0x6E,0x36,0xB9,0x3E,
+0x72,0xFE,0x7A,0x6D,0x9B,0xCA,0xC2,0xB0,0x7F,0xCE,0x77,0x58,0x4D,0x28,0x84,0x20,
+0xEE,0xA4,0xE6,0xAB,0x7C,0x57,0x5F,0xCA,0x70,0x8D,0x78,0x14,0xB7,0xF5,0xA3,0xFD,
+0xA9,0x65,0xA1,0x2D,0x0C,0xA8,0xA0,0x45,0x95,0x31,0x9D,0x4D,0x2C,0x2E,0xE3,0x26,
+0x81,0x63,0x89,0x03,0xCA,0x34,0x3C,0x1F,0xBC,0x17,0xB4,0x42,0x40,0x9F,0x3E,0x97,
+0xD4,0x93,0xDC,0xA6,0x3C,0x8C,0x84,0x51,0xF5,0xB5,0xFD,0xA9,0x90,0xCB,0xBA,0xC3,
+0x18,0x09,0x10,0xF0,0x1D,0x8D,0x85,0x71,0x30,0x0D,0x38,0xD4,0xF2,0xD2,0xC1,0xDA,
+0x35,0x3F,0x3D,0xEB,0x50,0x6C,0x64,0xDD,0xC4,0xD1,0xCC,0xFC,0xA5,0xF9,0xBD,0xF1,
+0xF7,0xC6,0xFF,0xD0,0xEC,0x07,0x0F,0x0A,0xF3,0xD4,0xFB,0xCE,0x64,0xBE,0x3B,0xB6,
+0x63,0x9E,0x6B,0x1C,0x9D,0x16,0x1E,0x6A,0x36,0x6C,0x3E,0xB3,0x4F,0x20,0x8E,0x28,
+0xC8,0xC1,0xC0,0xE8,0x01,0x92,0x9A,0x72,0x75,0xBD,0x7D,0x21,0xF9,0x4D,0x55,0x45,
+0xD7,0xC2,0xDF,0xF4,0x11,0x59,0x51,0xA9,0x6C,0xDF,0x64,0x5A,0xD0,0xDB,0xEA,0xD3,
+0x06,0x2A,0x0E,0xCD,0x73,0x7E,0x76,0xEC,0xB8,0x07,0xB0,0x56,0x7C,0x3A,0xA7,0x32,
+0x08,0x49,0x00,0xA0,0x40,0xA7,0xAF,0x06,0xE1,0xE5,0xE9,0xED,0x60,0x9E,0x1F,0x96,
+0x8E,0x20,0x86,0x4F,0x28,0x88,0x80,0x41,0xA4,0x55,0xAC,0x18,0x52,0x93,0x20,0x9B,
+0x03,0x1A,0x0B,0xF8,0x04,0xB3,0xBB,0x56,0x5C,0x9B,0x54,0x2E,0x98,0x4B,0x32,0x43,
+0x21,0x6F,0x29,0xAF,0x0F,0x55,0x5D,0xBB,0x39,0x2F,0x31,0xFF,0x21,0x99,0x59,0x91,
+0x8B,0x10,0x83,0x7A,0xB1,0x2D,0x25,0x7D,0x5E,0xEA,0x56,0x5D,0xAD,0x79,0x35,0x71,
+0xAE,0x24,0xA6,0x6B,0xC7,0x0E,0x06,0x28,0x12,0x78,0x1A,0x83,0xE7,0xE1,0xE7,0xE9,
+0xFF,0xC4,0xF7,0xDA,0x44,0x68,0x60,0xCD,0xF9,0xA7,0xF1,0xB7,0x8F,0x70,0x1E,0x78,
+0x7B,0xDC,0x73,0x46,0xDB,0x11,0x19,0x2B,0x4C,0xDB,0x44,0x7E,0x9D,0x7C,0x00,0x74,
+0xBF,0x44,0xB7,0x1A,0x51,0x82,0x8A,0x32,0x66,0xAC,0x6E,0x23,0xCC,0x7F,0x52,0x77,
+0x41,0xEB,0x49,0x4B,0xFA,0x10,0x18,0x0B,0x2C,0x5F,0x24,0x9A,0xA3,0xD1,0x93,0xD9,
+0xC0,0xC3,0xC8,0xE2,0xD9,0x02,0x0A,0x3A,0x8E,0x22,0x86,0x45,0x76,0xB2,0x25,0xBA,
+0xF0,0x87,0xF8,0x96,0x77,0xB1,0xB9,0x27,0x14,0x19,0x1C,0xE4,0xC8,0x5F,0x76,0x57,
+0xDC,0x91,0xD4,0xAC,0xB8,0xD8,0xD0,0x81,0xC9,0xE3,0xC1,0xC3,0xFA,0x52,0x49,0x5A,
+0xEF,0x84,0xE7,0x8A,0xCC,0xE8,0xE0,0xC5,0x48,0xCB,0x40,0x6A,0x62,0x96,0x15,0x9E,
+0xD6,0xE2,0xDE,0xD5,0x33,0xA5,0xAD,0x77,0x47,0x88,0x4F,0x26,0xD2,0xD3,0xE0,0xDB,
+0xAB,0x14,0xA3,0x5E,0x16,0x6B,0x63,0x9C,0x37,0x4C,0x3F,0x92,0x85,0xF8,0x9C,0xF0,
+0xC7,0x82,0xCF,0xA4,0xB6,0x1F,0x17,0x48,0x8D,0x73,0x85,0x17,0x9F,0x74,0x0A,0x7C,
+0xDA,0xF0,0xD2,0xCB,0xC9,0xC9,0xC1,0xE1,0x68,0xCF,0x60,0x4E,0x6D,0x29,0xA5,0x21,
+0xDD,0xB1,0xD5,0x8D,0x39,0xAD,0xA5,0x75,0x94,0x11,0x9C,0x6C,0xFC,0x7A,0x67,0x72,
+0x33,0x5E,0x3B,0x8C,0x95,0x0D,0x05,0x79,0x58,0x8B,0x50,0x3A,0x1B,0x14,0xEE,0x1C,
+0x42,0xBA,0x4A,0x19,0xCF,0x15,0x1D,0x3B,0xD6,0xE0,0xDE,0xDF,0xF8,0x5A,0x43,0x52,
+0x00,0x4B,0x08,0xAA,0x48,0xBC,0xB4,0x15,0x6E,0xAE,0x66,0x29,0x54,0xBB,0x0E,0xB3,
+0xE4,0xD7,0xEC,0xD2,0xF2,0x0B,0x03,0x18,0x01,0x69,0x09,0x81,0xD5,0xEC,0xD8,0xE4,
+0xB0,0xF2,0xE4,0xB6,0x70,0x2C,0x78,0xA8,0x7D,0x98,0x29,0x45,0x0D,0x5A,0xA3,0x0E,
+0xBF,0xB1,0xEB,0xFA,0x85,0x69,0x3D,0x18,0x44,0xFE,0x10,0x1A,0xBF,0x17,0x5C,0x43,
+0x3E,0x99,0x6A,0x53,0xD9,0xAD,0xF9,0x80,0x77,0xEB,0x23,0x3C,0xFB,0x27,0x28,0x73,
+0xE3,0x63,0xB7,0x74,0xE6,0xA0,0xF4,0xB2,0x5B,0xFD,0x0F,0x06,0x5D,0x4E,0xE7,0x1A,
+0x79,0x58,0x2D,0xD5,0xB5,0x4D,0x19,0x0C,0x6B,0xB9,0x3F,0x72,0x40,0xFD,0x49,0xA9,
+0xDB,0x25,0x8F,0x0A,0x03,0x2E,0x7A,0xD9,0xEA,0x91,0xBE,0xDB,0x71,0xEF,0x6A,0xBB,
+0x91,0xD6,0xC5,0xB3,0xC2,0x80,0xD4,0xB6,0x14,0x3E,0x40,0x8A,0x48,0x7D,0xC1,0x29,
+0xBB,0xA1,0xEF,0xEE,0x90,0x83,0xD7,0xE7,0xD0,0xA6,0x84,0xD6,0x51,0xEE,0x4B,0xBA,
+0xF6,0x13,0xA2,0x11,0x48,0x13,0x47,0xAF,0x4F,0xAD,0x1B,0x42,0x62,0xF4,0x62,0xA0,
+0x99,0xD4,0xCD,0xB9,0x9E,0x44,0x10,0x2E,0xAB,0x31,0xFF,0x3A,0x6F,0x43,0xD8,0x17,
+0x21,0x9A,0x75,0x4F,0xD3,0xA5,0xF1,0x82,0xE9,0xC0,0xBD,0x89,0x41,0xEA,0x5F,0xBE,
+0xAF,0xF1,0xFB,0xAA,0x7E,0xEB,0xBF,0x61,0x98,0x24,0xCC,0x1C,0x03,0xF2,0x05,0xA6,
+0x63,0x6B,0x37,0xFC,0xF7,0x85,0xD1,0x86,0x76,0xCB,0x22,0x1D,0x0F,0x52,0xA9,0x06,
+0x9F,0xB5,0xCB,0xDE,0x35,0xD6,0x82,0x17,0x71,0x8A,0x25,0x5B,0x9B,0x36,0x59,0x62,
+0x7A,0x09,0x2E,0x87,0x9A,0x8B,0xDF,0xE5,0x6C,0xF8,0x38,0x34,0x32,0xE0,0x26,0xB4,
+0xC0,0x36,0x94,0x02,0x0C,0x07,0x53,0xFF,0x00,0x6E,0x54,0xCE,0xE6,0x94,0x86,0xC0,
+0x9B,0xA5,0xCF,0xCA,0x7A,0x24,0x70,0xAA,0x7C,0xB8,0x28,0x64,0xD3,0xA6,0x81,0xF2,
+0x82,0xC7,0xD6,0xB1,0xC5,0xB2,0xE6,0x83,0x63,0xBB,0x37,0x78,0x08,0x6D,0x91,0x39,
+0xC1,0x16,0x95,0x23,0x1E,0xDF,0x8B,0x35,0xC8,0xE4,0x9C,0x8C,0x10,0xE9,0x0D,0xBD,
+0x04,0xAE,0x50,0x5E,0xAB,0x41,0x15,0x1E,0x5C,0xBC,0x08,0x40,0x70,0xF8,0x7C,0xAC,
+0x33,0xAB,0x67,0x6C,0x2D,0x06,0x52,0xDF,0x9E,0x45,0xCA,0x7B,0xA7,0x93,0xC0,0xC7,
+0xC7,0x77,0x93,0x44,0x51,0x2D,0x79,0x88,0xB3,0x73,0xE7,0x60,0x0B,0x72,0x8D,0x26,
+0x02,0xCF,0x56,0x39,0x2A,0x34,0x60,0xEA,0x7F,0xE9,0x2B,0x36,0x2B,0x73,0xAC,0x27,
+0x4B,0x6D,0x1F,0xD2,0xAE,0x60,0x34,0x3A,0x2A,0x19,0x7E,0x93,0x65,0xCB,0x5A,0x9F,
+0x0E,0xDD,0x5A,0x27,0x8E,0x8F,0xDB,0xF5,0x54,0xBE,0x00,0x4A,0xB7,0x97,0xD4,0xC3,
+0xE5,0x02,0xB1,0x13,0x77,0x1E,0x4A,0x9D,0x05,0x5E,0x51,0xFB,0x52,0xF1,0x57,0xA5,
+0xA9,0x90,0xFD,0xCD,0xA5,0x86,0xD2,0xD7,0x20,0x6A,0x74,0xEA,0x07,0xD2,0x21,0x86,
+0xCE,0x55,0x9A,0x6F,0xC9,0x66,0x32,0x5B,0x8A,0x15,0xDE,0x3F,0xC1,0xAA,0x9F,0xFE,
+0xAB,0xE1,0xFF,0xBE,0xA2,0xB4,0xE0,0xE2,0xA8,0x60,0xFC,0x68,0x2C,0x4C,0x94,0x18,
+0x53,0x2F,0x07,0x88,0xB0,0x6C,0x38,0x28,0x25,0x5A,0x71,0xDF,0x3B,0x77,0xB8,0x23,
+0x16,0x9F,0x42,0x7D,0x8F,0x61,0x35,0x1A,0xA3,0x33,0xF7,0x30,0x7C,0x58,0xD0,0x0C,
+0x4F,0x7D,0x1B,0xC6,0x37,0xC5,0x91,0x06,0xAD,0x50,0xF9,0x5D,0x96,0x81,0xE3,0xD5,
+0xCF,0x75,0x9B,0x4E,0x43,0xF5,0xA1,0x42,0xE7,0xA3,0xB3,0xE4,0x4C,0x5D,0xE5,0x09,
+0x95,0xC6,0xC1,0xA7,0x54,0x0C,0x58,0xAC,0x6F,0xA9,0x3B,0x66,0x11,0xFE,0x1B,0xAA,
+0x0B,0xED,0x5F,0x12,0xEB,0x9A,0xCE,0x85,0x6D,0xD8,0x39,0x15,0x30,0xE8,0x2C,0xBC,
+0x65,0x0A,0x31,0x9B,0xF2,0xA4,0xF0,0xA2,0x97,0x67,0xC3,0x50,0x49,0x6A,0xD7,0x3E,
+0xD8,0x74,0x8C,0x58,0x2F,0x15,0x41,0xCE,0x96,0x47,0xC2,0x71,0xFA,0x30,0x3E,0x64,
+0x47,0x7F,0x13,0xCC,0xCB,0x75,0x21,0x4A,0xE8,0xE0,0xBC,0xA8,0x97,0x96,0xF5,0xC2,
+0xDD,0x44,0x89,0x6D,0xAF,0x8E,0xDA,0xD5,0x57,0xEF,0x03,0x18,0xDC,0x19,0x31,0x4D,
+0xB8,0xF0,0xEC,0xBC,0x3D,0xCD,0x99,0x04,0x24,0x7A,0x70,0xFE,0x29,0x7B,0xA6,0x2F,
+0x62,0x4B,0x36,0xDD,0x73,0xD1,0x85,0x56,0x02,0x1F,0x56,0xBD,0x3F,0x57,0x9C,0x03,
+0x87,0xF7,0xD3,0x84,0x33,0x0A,0x5E,0xCD,0x45,0xDE,0x11,0x3B,0xB0,0xA8,0xEC,0xFC,
+0x88,0xB4,0xDC,0xC8,0x14,0xD7,0x83,0x37,0xD9,0x84,0x8D,0xFD,0xCA,0x35,0x0B,0x61,
+0xD5,0x46,0x81,0x67,0x29,0xC9,0x9D,0x14,0xE5,0xD2,0xB1,0x97,0xF4,0x98,0x98,0xCC,
+0xE6,0x53,0xB2,0x41,0x04,0x1C,0x48,0xEC,0x1E,0x4D,0x4A,0xF3,0xC3,0xA2,0x95,0xF6,
+0x14,0xEE,0x40,0x0E,0x76,0xF0,0xA4,0x72,0x84,0x76,0xD0,0x52,0x12,0xE1,0x07,0xB5,
+0x6B,0x69,0x3F,0xF6,0x79,0xD9,0x8D,0x54,0x55,0x9E,0x01,0x6B,0x38,0x68,0xA4,0x3C,
+0x9D,0xC4,0xC9,0xAD,0xE9,0x89,0xDD,0x94,0xAE,0x01,0xFA,0x0F,0x8E,0x05,0x7F,0x51,
+0x78,0x78,0x2C,0xF4,0xC4,0x5C,0x08,0x6C,0x3B,0x79,0x6F,0xE2,0x4F,0x42,0xF9,0x16,
+0x5F,0x3D,0x0B,0x96,0x4C,0xDC,0x88,0x64,0xF5,0x92,0xA1,0xC7,0x00,0xED,0x19,0xB9,
+0xE2,0x43,0xB6,0x55,0x4D,0x32,0x66,0x8B,0x4C,0xFC,0x18,0x10,0x8D,0x1A,0x63,0x4E,
+0x2A,0xC9,0x7E,0x17,0x24,0xF3,0xA7,0x23,0x8E,0x05,0xDA,0x2B,0x3C,0x48,0x80,0x1C,
+0xBA,0x81,0xEE,0xCF,0x32,0xE4,0xB0,0x22,0x11,0x0E,0x45,0xBF,0x68,0x7C,0xE0,0x28,
+0x2F,0xF9,0x7B,0x22,0x75,0x0D,0x59,0x8C,0xC4,0xF6,0x90,0x92,0xA0,0xAC,0xF8,0xF8,
+0x3D,0xC8,0x69,0x01,0xFF,0x9E,0xCA,0x95,0x80,0x66,0xD4,0x46,0x26,0xC4,0x16,0x90,
+0x46,0x5F,0x12,0xED,0xB7,0x5E,0x0A,0x1D,0x33,0x7B,0x67,0xE8,0x20,0xEC,0x38,0xB8,
+0x5B,0x2D,0x0F,0x82,0x20,0x3C,0x68,0xE8,0x46,0x8F,0x12,0x69,0xDA,0x31,0x1F,0x65,
+0xB5,0xC2,0xE1,0x83,0xE1,0x92,0xC6,0x87,0xE3,0xB3,0xB7,0xF0,0x9C,0x09,0x61,0x5D,
+0x6E,0x59,0x3A,0xC3,0xDC,0x8C,0xD8,0xA4,0x4B,0xBD,0x1F,0x56,0x4E,0x55,0xEF,0x01,
+0xD3,0x27,0x87,0x00,0x65,0xC6,0x92,0x57,0x74,0xBA,0x20,0x6E,0x93,0xB6,0xD1,0xE2,
+0x1D,0xCC,0x49,0x25,0xA0,0xA7,0xF3,0xF3,0x04,0x7E,0x50,0xDA,0xC5,0x8A,0xBB,0xDE,
+0xFB,0x21,0xAF,0x2E,0xBA,0x64,0x30,0x2A,0x9C,0x34,0xC8,0x08,0xE3,0xA3,0xB4,0xF7,
+0xAE,0xD1,0xFA,0x8B,0xA1,0x49,0x1D,0x1C,0x22,0x1B,0x76,0x99,0xDB,0x26,0x09,0x72,
+0xB9,0xD0,0xED,0x9D,0xB2,0x7F,0x2B,0x39,0x6E,0x89,0x3A,0x47,0x5C,0x59,0xF1,0x0D,
+0x7F,0x63,0x52,0x51,0x30,0x79,0x35,0x65,0x5A,0x78,0x64,0x42,0x47,0x5B,0x45,0x62,
+0x44,0x58,0x7E,0x46,0x0A,0xF4,0x82,0xE8,0x48,0xA0,0xBC,0x88,0xBF,0xA3,0x8B,0x54,
+0x89,0x95,0x09,0xFC,0x3A,0xF1,0xB7,0xED,0xDD,0xD1,0xCD,0x6C,0x5B,0x47,0x17,0x2C,
+0x50,0x4C,0x3A,0x16,0x59,0xFF,0xDA,0xE3,0x65,0x75,0x69,0x70,0x02,0x1E,0xF5,0x97,
+0xF9,0xE5,0xBD,0x38,0x34,0x59,0x11,0x45,0x9D,0x0A,0x16,0xF7,0xF1,0xED,0x68,0xF9,
+0x9F,0x83,0x3E,0xDD,0xD4,0x08,0xA0,0x14,0x64,0x9B,0x87,0x9F,0x1A,0x06,0xB7,0xCD,
+0xA2,0xBE,0x75,0xAB,0x7F,0xD6,0xD5,0xCA,0x23,0x72,0x6E,0x31,0xDA,0xC6,0x3F,0x85,
+0xDA,0xC6,0xCB,0x6D,0x00,0x7C,0x00,0x60,0x4F,0x92,0x8E,0xBD,0xBD,0xA1,0xFA,0x27,
+0x7A,0x66,0x67,0x61,0x19,0xEF,0x8A,0xF3,0xBB,0x39,0x25,0xE2,0xD3,0xCF,0x1D,0xAE,
+0x9B,0x87,0x2A,0xCD,0x2F,0xC2,0x91,0xDE,0xC7,0x12,0x0E,0xB5,0x27,0x3B,0xC1,0x86,
+0xC3,0xDF,0xB0,0x0F,0x73,0x76,0x79,0x6A,0x44,0x74,0x68,0x50,0x5F,0x43,0x07,0x38,
+0x7B,0x67,0x46,0x41,0x83,0x23,0xDC,0x3F,0xC0,0x20,0x3C,0x80,0x16,0x0A,0xA5,0xD3,
+0x65,0x79,0x7B,0x62,0xD1,0x3F,0x92,0x23,0x2F,0xA6,0xBA,0xE9,0x96,0x8A,0xAD,0x5B,
+0xAE,0xB2,0x6B,0xB9,0xD2,0x20,0x8E,0x3C,0x90,0x30,0x2C,0xC0,0x8F,0x93,0xCF,0x20,
+0xF0,0xEC,0x96,0x1A,0xD6,0x00,0xAA,0x1C,0x41,0x55,0x49,0x74,0x10,0x0C,0xC4,0xB4,
+0xE1,0xFD,0xE7,0x7A,0x8E,0x94,0x66,0x88,0xF4,0xCB,0xD7,0x5F,0xD5,0xC9,0x7C,0xC9,
+0x3E,0x22,0xB3,0xF1,0xE0,0x2D,0xB1,0x31,0xDF,0xC2,0xDE,0x7D,0x8B,0x97,0xDF,0x34,
+0x5A,0x46,0x43,0x65,0xA1,0x2A,0xF7,0x36,0x1D,0x91,0x8D,0xEC,0x77,0x6B,0x01,0x16,
+0x9C,0x80,0x6C,0x8C,0x04,0x5C,0x24,0x40,0xE6,0x13,0x0F,0x95,0xD4,0xC8,0x5C,0xE8,
+0xE8,0xF4,0xCC,0x58,0x92,0x30,0xDE,0x2C,0x70,0x9F,0x83,0x8F,0x6E,0x72,0x63,0x6D,
+0x4B,0x57,0x32,0x05,0x5B,0xF7,0xD0,0xEB,0x74,0x50,0x4C,0x44,0x8D,0x91,0xBE,0x53,
+0xFC,0xE0,0x88,0x08,0xC7,0x13,0xA8,0x0F,0xA2,0x07,0x1B,0xC5,0xE2,0xFE,0x79,0xFB,
+0xFA,0xE6,0xEF,0x69,0x4E,0xC4,0xF6,0xD8,0x94,0xFF,0xE3,0x0B,0xBB,0xA7,0x9B,0x40,
+0xE2,0xFE,0xB5,0x2B,0xAA,0xB5,0x63,0xA9,0x39,0xB1,0xAD,0xE8,0x35,0x29,0xF0,0xA5,
+0xE7,0xFB,0x80,0x1B,0xFB,0xB6,0x31,0xAA,0xE9,0x3A,0x26,0xB3,0xCF,0xD3,0x4F,0xE0,
+0xF5,0xE9,0xA3,0x2A,0xD3,0x37,0x98,0x2B,0x5F,0x59,0x45,0x66,0x6D,0x71,0x32,0x3F,
+0xE6,0xFA,0xA1,0x3B,0xCC,0x8C,0x3C,0x90,0x7A,0x97,0x8B,0x8D,0xAF,0xB3,0xCB,0x04,
+0x75,0x69,0x2B,0x22,0x54,0x48,0x60,0x54,0x28,0x94,0x88,0xDC,0x85,0x99,0xBC,0x59,
+0x1F,0x03,0xB6,0xD5,0x94,0x18,0xF0,0x04,0x6F,0x7D,0x61,0x72,0xAB,0xB7,0xDB,0x10,
+0x52,0x4E,0x49,0x67,0xF2,0x21,0xAF,0x3D,0x9A,0x38,0x24,0xC2,0xA4,0xB8,0x98,0x5C,
+0x46,0x5A,0x0D,0x37,0x97,0x07,0xEC,0x1B,0x0C,0xB4,0xA8,0xD8,0xF7,0xEB,0x09,0x9E,
+0x2F,0x33,0xC2,0x91,0x81,0x2B,0xD6,0x37,0x33,0xB9,0xA5,0xEA,0x2A,0x36,0xF3,0xB9,
+0xAB,0xB7,0x5E,0x89,0x5E,0xC0,0xE2,0xDC,0x50,0x70,0x6C,0x40,0xEF,0xF3,0x4B,0xC4,
+0x82,0x9E,0x51,0xAF,0x14,0x58,0x30,0x44,0x4A,0xB3,0xAF,0x99,0x09,0x15,0xA6,0xCF,
+0x51,0x4D,0x1B,0x36,0xE3,0x32,0xAD,0x2E,0x58,0x6B,0x77,0x53,0xAD,0xB1,0xBA,0x77,
+0x2E,0x32,0xE3,0xB1,0x71,0x7E,0x73,0x62,0x4B,0x5D,0x41,0x76,0xBA,0xA6,0xBB,0x61,
+0x01,0x1D,0x8B,0xF6,0xD9,0xBF,0x1A,0xA3,0x0B,0x86,0x9A,0xED,0xA1,0xBD,0xA8,0x69,
+0x39,0x25,0xF5,0xB0,0xE5,0x1A,0x83,0x06,0xCA,0x28,0x34,0x82,0x4F,0x53,0x47,0x68,
+0xBE,0xA2,0x3B,0xF9,0xD0,0x28,0x84,0x34,0x8F,0xD2,0xCE,0x3D,0xC7,0xDB,0x4D,0xEA,
+0x5D,0x41,0x05,0x24,0xD7,0x17,0xBC,0x0B,0x36,0x98,0x84,0xCE,0x7A,0x66,0x33,0x29,
+0xA4,0xB8,0x12,0xCA,0x9C,0x98,0x78,0x84,0x9F,0x19,0x05,0xE6,0x3B,0x27,0x93,0xC8,
+0x74,0x68,0x0A,0x02,0x64,0x4D,0x55,0x51,0xD8,0xF0,0xEC,0x48,0xAE,0xB2,0xEB,0x25,
+0xE4,0xF8,0xD2,0x4A,0x11,0x6F,0x02,0x73,0x5D,0x4A,0x56,0x77,0x52,0x4E,0x35,0x07,
+0xCC,0xD0,0xFC,0x4C,0x0C,0xDC,0xAC,0xC0,0x15,0x8A,0x96,0xFF,0x29,0x35,0xA2,0xEB,
+0xE5,0xF9,0xF3,0x6A,0xF8,0xA9,0x2D,0xB5,0xA6,0xC8,0xD4,0x0E,0x4B,0x57,0x57,0x7C,
+0x4A,0x56,0x13,0x25,0x13,0x67,0x08,0x7B,0x2E,0x48,0x54,0x06,0x6C,0x70,0x12,0x1E,
+0x40,0x5C,0x6A,0x56,0x6F,0xD2,0xC1,0xCE,0xCE,0xE7,0xFB,0x49,0x3E,0x22,0xA3,0xFD,
+0x12,0x0E,0x89,0xE7,0x96,0x10,0xFA,0x0C,0xA7,0x26,0x3A,0xE1,0xF6,0xEA,0x29,0xBF,
+0xE9,0xF5,0xED,0x78,0x1C,0xD8,0xB8,0xC4,0x9C,0xE4,0xF8,0x18,0x00,0x1C,0x84,0xE4,
+0xAA,0xB6,0x7F,0xA9,0x27,0x42,0x19,0x5E,0xEE,0x08,0x14,0x86,0xF2,0xEE,0x39,0xAB,
+0x0D,0x11,0x95,0xE4,0x6B,0xF2,0xE5,0xEE,0x03,0x9D,0x81,0xFE,0x89,0x95,0xAE,0x47,
+0x60,0x7C,0x4E,0x52,0xF4,0x09,0x81,0x15,0x93,0xCD,0xD1,0x3E,0x7F,0x63,0x03,0x1C,
+0xA0,0xBC,0x06,0xDA,0xB4,0x19,0xD1,0x05,0xD9,0x1E,0x02,0xA7,0x93,0x8F,0x9D,0x6E,
+0x5F,0x43,0x76,0x55,0x75,0x5E,0x57,0x42,0x99,0xC5,0xD9,0x3C,0x76,0x6A,0x21,0x37,
+0x90,0x8C,0x72,0x9E,0xB8,0xB9,0x7D,0xA5,0xC3,0xDD,0xC1,0x7E,0xC1,0xDD,0x2C,0x8D,
+0x3D,0x21,0xE1,0xA0,0xEE,0x85,0x17,0x99,0xFE,0xC3,0xDF,0x5D,0x9C,0x80,0xDE,0x22,
+0x9E,0x82,0x1F,0xFD,0x8A,0xB4,0x42,0xA8,0x21,0x61,0x7D,0x20,0x53,0x4F,0x15,0x26,
+0x38,0x24,0xD4,0x90,0x2D,0xCA,0x9B,0xD6,0xC5,0x01,0x1D,0xA4,0xCC,0xD0,0x1E,0xB2,
+0x73,0x6F,0x4C,0x43,0x10,0x78,0x14,0x64,0xD7,0xD9,0xC5,0x6E,0xAC,0xB0,0x9A,0x56,
+0x11,0x0D,0xDB,0xB6,0x85,0x0B,0xF2,0x17,0x45,0x9A,0x86,0xBF,0xC9,0xD5,0x2E,0x87,
+0xF6,0xEA,0xF1,0x7B,0xC3,0x33,0x8C,0x2F,0xBE,0x18,0x04,0xC6,0x81,0x9D,0xAC,0x4D,
+0x55,0x49,0x0F,0x26,0xC9,0xBB,0x0E,0xA7,0xA9,0xE1,0xFD,0x28,0xDB,0xC7,0x1F,0xA4,
+0x62,0x7E,0x3D,0x23,0x0D,0xCB,0xBA,0xD7,0x18,0xB0,0xAC,0xC8,0x71,0x6D,0x60,0x71,
+0xE0,0xFC,0xC6,0x5A,0xB2,0x31,0xFF,0x2D,0x01,0x8E,0x92,0xEF,0x1F,0x03,0x87,0xF8,
+0x26,0xE2,0x34,0x8F,0xB1,0x3F,0x13,0xDC,0xE1,0x81,0x90,0xEC,0xC5,0x44,0xA8,0x71,
+0xB3,0x93,0xD0,0xFE,0xA9,0x65,0x51,0xC4,0x8A,0x0F,0x75,0x62,0x8B,0xE9,0xE6,0x92,
+0x00,0xD1,0x21,0xBC,0x00,0xE2,0x7F,0x6D,0xC4,0xB7,0x83,0xDA,0x6A,0xA4,0x07,0x3E,
+0x78,0x35,0xBD,0x58,0xB7,0x58,0x72,0xDA,0x03,0xD8,0x2B,0xB5,0x3D,0x72,0x50,0xBF,
+0xF4,0x7A,0x7E,0x17,0xD7,0xBC,0xF6,0xBA,0x26,0xEE,0x38,0x83,0x29,0x36,0x44,0xEF,
+0x0E,0x16,0xE8,0x7B,0xA3,0x1C,0x22,0xCE,0x19,0x54,0xBD,0x39,0xA5,0xA0,0xC8,0xF5,
+0x61,0x0B,0x9A,0x66,0x75,0x63,0x8B,0x18,0xA5,0xB1,0xE4,0xDC,0xF8,0x0F,0x95,0x07,
+0x27,0x0C,0xDB,0x61,0x11,0x93,0x1F,0x7C,0x7B,0x4D,0xC6,0x20,0xAB,0xCD,0xC6,0x96,
+0x3C,0x21,0xED,0x4C,0x0D,0xDD,0x4D,0x60,0x73,0xCD,0x4E,0xA0,0x8E,0xDC,0xE3,0xA2,
+0x06,0x0D,0xFB,0x60,0x64,0x12,0xEB,0x09,0x89,0x10,0x69,0x7D,0x83,0xE3,0xEE,0x90,
+0x20,0x3E,0xEE,0x53,0x54,0x66,0xAF,0x39,0xA1,0x91,0xC0,0xFC,0x47,0xBF,0x2A,0x08,
+0x7F,0x07,0x88,0x6A,0x19,0x99,0x1D,0x74,0xE2,0x9E,0x8C,0xF3,0x02,0x4A,0x6F,0xB8,
+0xEC,0xAA,0xB6,0xC7,0xAD,0x71,0x41,0xC0,0xB1,0x95,0xD4,0xF8,0xAD,0xAA,0xC0,0xF7,
+0xB0,0x6E,0x2E,0x03,0x3E,0xFB,0x58,0x53,0xC6,0xBF,0x89,0xD2,0xAE,0xF8,0xC3,0xA6,
+0xE1,0x90,0x81,0xFD,0xAC,0x50,0x61,0xC1,0x35,0xF5,0x30,0x98,0x00,0x39,0x6D,0xC9,
+0x48,0x11,0xA9,0x7C,0xBE,0x73,0x50,0xD3,0x48,0x57,0xEF,0x3A,0x63,0x8F,0x0E,0x1C,
+0x05,0xF0,0x05,0x9D,0xE9,0xA5,0xD1,0x84,0x45,0xE0,0x55,0x8D,0x48,0xF3,0x25,0x4B,
+0xD0,0x5A,0x7A,0x37,0x91,0x1B,0x17,0xFC,0x80,0x87,0xF7,0xEA,0xA8,0x9F,0xC5,0xC7,
+0xC1,0x7F,0x4E,0x12,0xB2,0x6D,0x42,0xDF,0x12,0xCB,0x29,0xA6,0x30,0x4D,0x5D,0x8D,
+0x70,0x2E,0xAE,0x43,0xD4,0xEE,0xA7,0xB9,0xCD,0x20,0x1D,0x4D,0xA1,0xB4,0xCC,0xE5,
+0x67,0xD7,0x40,0xBA,0xC2,0xD9,0x86,0xAF,0x6D,0x61,0xFC,0x0C,0xEB,0x0D,0x86,0x16,
+0x0A,0xD9,0x23,0xB4,0x1B,0xEA,0x6C,0x76,0x8F,0x38,0x47,0x55,0x4F,0xB5,0x22,0x0A,
+0xE5,0x5F,0x4A,0x32,0x34,0x82,0x2B,0x59,0x3F,0x7D,0xB2,0x10,0x42,0x8A,0x2F,0x38,
+0x52,0xD2,0x70,0xBF,0x0F,0xAE,0x3C,0x62,0xF1,0x85,0x84,0xE8,0x9A,0x98,0xF7,0xF2,
+0x7A,0x26,0xAC,0x4B,0xBB,0x46,0x60,0xD6,0xBE,0x2A,0x64,0x47,0x6F,0x91,0x02,0x0E,
+0xB6,0xB2,0xF4,0xDF,0xAA,0x37,0x00,0xC7,0x06,0xEF,0x19,0x82,0xF1,0x24,0x9C,0x25,
+0x42,0x19,0xAB,0x74,0x2E,0xAB,0x18,0x43,0xD7,0xAC,0x8B,0xC1,0x9C,0xFF,0xF1,0x93,
+0x5E,0x06,0xA8,0x6B,0xE5,0xBB,0xC3,0x88,0xB5,0xB5,0xF0,0xD8,0x0A,0x40,0x67,0xBA,
+0xA9,0x50,0x09,0x3D,0x88,0x60,0x75,0xE5,0x7D,0x65,0xE8,0x08,0x4E,0x94,0x23,0x2A,
+0x0C,0x05,0xF9,0x68,0x30,0x96,0x3B,0x5D,0xDF,0x2C,0x03,0x41,0x1A,0x10,0x77,0xFA,
+0x5A,0xC9,0x63,0xA4,0x31,0xB7,0x1B,0x5C,0x67,0xE9,0x7E,0x84,0x03,0x6B,0x6E,0x98,
+0x41,0xE4,0x55,0x89,0xD0,0xFA,0xB7,0xBD,0xBB,0x1D,0x56,0x70,0x28,0x17,0x45,0xCF,
+0xAD,0x9F,0xC2,0xF2,0xDB,0xA2,0xE4,0xB6,0x56,0xFB,0x5D,0x96,0xE7,0x13,0x8A,0x04,
+0xC7,0xA3,0x94,0xCE,0x76,0x31,0xDA,0x1B,0xA4,0xA6,0xF2,0xCB,0xF9,0x2E,0x94,0x27,
+0x01,0x3F,0xCE,0x52,0xEB,0xD6,0xA0,0x86,0xE7,0xA9,0xBE,0xC4,0x24,0x09,0x49,0xDD,
+0x87,0x78,0x0F,0x15,0x14,0xA6,0x2F,0x79,0x5B,0x4C,0xE7,0x21,0xFF,0x49,0x92,0x46,
+0x35,0xD4,0x11,0xB9,0x46,0x45,0x9E,0x2B,0xD4,0xB3,0x97,0xDE,0xA7,0xD3,0xCA,0x84,
+0x51,0x2F,0x8E,0x42,0x2B,0x9E,0x28,0x46,0x79,0x45,0xCC,0x28,0xF7,0x43,0x9A,0x44,
+0x68,0xFE,0x66,0x93,0xA2,0x3D,0x02,0xCF,0xFE,0x3A,0x34,0x57,0xDE,0x4C,0xB3,0x62,
+0xC9,0x64,0x5D,0x09,0xE1,0xAF,0xD3,0x8C,0x43,0xC8,0x7B,0xA5,0x32,0x3E,0x5F,0xFC,
+0x6A,0xED,0x77,0x80,0x29,0xED,0x59,0x44,0x1A,0x4B,0xA1,0x26,0x8A,0xC8,0xE7,0xB2,
+0x2F,0x17,0xC8,0x7A,0xAB,0x16,0x20,0xC6,0xFD,0x25,0x28,0x48,0xB4,0xD1,0xD9,0x95,
+0x5C,0x15,0xB9,0x78,0xBD,0x21,0x01,0xD0,0xD6,0xBB,0x9D,0xD6,0x22,0x6E,0x4F,0xBC,
+0xDE,0x9D,0xB3,0xF0,0x1E,0xDF,0x5C,0x73,0x65,0xE1,0x74,0x8C,0xDB,0x79,0xB6,0x52,
+0xC4,0x5E,0x6A,0x33,0x38,0x9C,0x39,0x55,0xE0,0x96,0x86,0xFB,0xE3,0x07,0x8E,0x14,
+0x22,0x2D,0xFF,0x40,0x5A,0x0B,0xCC,0x37,0x54,0xF3,0x57,0x9E,0xA0,0x95,0xCD,0xC5,
+0x92,0x92,0xF0,0xFF,0xD5,0xCF,0x87,0xB8,0x6F,0x69,0xF6,0x04,0x5B,0xF1,0x36,0x5A,
+0x4B,0xEC,0x57,0x81,0x73,0x04,0xEA,0x1E,0x64,0xF6,0x62,0x9B,0x3B,0x15,0x56,0xDE,
+0x54,0x0E,0xAA,0x63,0xF5,0xEB,0x83,0x98,0x37,0xFD,0x3A,0x90,0xE8,0x5F,0x85,0x47,
+0x6C,0x31,0xAD,0x5C,0x16,0xD5,0x5E,0x7B,0x49,0x40,0xF9,0x2D,0xA2,0xE6,0xCF,0xB4,
+0xCA,0x99,0xA3,0xF4,0x4A,0x5B,0x8C,0x27,0xD2,0x9B,0xB9,0xF6,0xBC,0xDB,0xD1,0x97,
+0x53,0x3C,0x9F,0x51,0x72,0x25,0xCA,0x1F,0x3D,0x75,0xB8,0x18,0x12,0x1A,0x7F,0xF8,
+0x7D,0x14,0x99,0x79,0x1A,0xCB,0x4C,0x77,0xC0,0x97,0xA7,0xFA,0x51,0x88,0x3C,0x29,
+0xA3,0x58,0x0B,0x35,0x65,0x33,0xCB,0x08,0xC1,0x80,0xB1,0xED,0x67,0x9B,0x0A,0x0C,
+0x32,0xE6,0x24,0x8B,0xE0,0x8E,0xF3,0x8D,0x31,0xD5,0x14,0xB8,0x4A,0x80,0x27,0x3A,
+0xE0,0x7E,0x6E,0x13,0xC9,0x81,0xD5,0xA4,0xDC,0x33,0x1F,0x5E,0x89,0x9A,0xE4,0xE3,
+0x11,0xF4,0x15,0x99,0x0B,0xBA,0x2C,0x66,0xD9,0x04,0x2D,0x69,0xDD,0x1E,0xB0,0x33,
+0x2A,0x36,0xEC,0x5B,0x59,0x59,0x9D,0x34,0x53,0xCC,0x6F,0xA1,0x1C,0x77,0x71,0x9B,
+0xFD,0x8F,0x82,0xE2,0xAE,0x23,0x10,0xC3,0x2D,0x71,0xAC,0x1C,0xF2,0x76,0x9F,0x74,
+0xD8,0x41,0x69,0x2C,0x01,0xC3,0x5F,0x6C,0x68,0x56,0xCE,0x3B,0x72,0xFE,0x1F,0x7C,
+0xD2,0x49,0x6B,0x24,0xAF,0x02,0x30,0xC2,0x4F,0x68,0xD7,0x05,0x70,0x8D,0x1D,0x0D,
+0x7C,0xFA,0x76,0x97,0x87,0x2C,0x36,0xEA,0xD8,0x13,0x3B,0x7E,0xB0,0xC5,0xDD,0x85,
+0xA8,0xBE,0xE6,0xD3,0xEF,0xC2,0xB0,0x82,0xE9,0x01,0x18,0x6C,0x23,0x4F,0x4E,0x9C,
+0x85,0x6B,0x1E,0x06,0x3F,0xDA,0x78,0x52,0x91,0x94,0xF5,0xF9,0xCA,0x08,0xA7,0x32,
+0x12,0xA6,0x91,0x3E,0xC5,0x8D,0x6A,0xC2,0x7E,0x86,0xDD,0xD1,0x2A,0xD1,0x71,0xDE,
+0x7A,0x5F,0x00,0xAF,0x2E,0x52,0x81,0xF6,0x18,0x05,0x38,0xB7,0x9B,0x31,0x20,0x8F,
+0xD4,0x18,0xE9,0x46,0xEE,0xDA,0x41,0xBE,0x25,0x4E,0x4E,0x8A,0xEE,0x9A,0xFE,0x51,
+0x58,0x74,0x09,0xA6,0x89,0x1F,0x26,0x1C,0x5D,0xF0,0x88,0xF2,0x3B,0xE5,0x54,0xFB,
+0xA7,0x61,0xE3,0x4C,0x73,0xA0,0xDC,0x59,0xF8,0x69,0xB4,0x57,0x0E,0xD5,0x51,0xFE,
+0x6D,0x73,0x3B,0x94,0x8B,0x6E,0x24,0x6F,0xC3,0x45,0xA3,0x6C,0xB9,0xEF,0xDC,0x73,
+0x89,0xE6,0x4A,0xE5,0x6F,0xF2,0xC0,0x17,0x0E,0x32,0x19,0xA1,0x8C,0xDF,0xD9,0x76,
+0x95,0x5E,0xEE,0x41,0x36,0x10,0x99,0xAC,0xD7,0x01,0xF3,0x78,0xE1,0xBC,0xD7,0x78,
+0x0C,0x14,0x3D,0x92,0xA2,0x48,0x0D,0x60,0xE2,0x40,0x87,0x4D,0xA9,0x34,0x17,0xB8,
+0x25,0xAB,0xAB,0x04,0xBB,0x2A,0x14,0x1B,0x29,0x50,0x5C,0x86,0xB5,0x37,0x08,0xA7,
+0x91,0x7A,0xCE,0x61,0x24,0x21,0x8B,0x8F,0x77,0xAD,0xFF,0xD8,0x91,0x33,0x28,0x87,
+0xBA,0xCF,0x50,0xFF,0xE1,0x99,0x4E,0xF2,0x66,0xDC,0x9F,0xC9,0x5D,0x6B,0xBC,0x13,
+0x07,0x80,0xA2,0x0D,0xE7,0xF8,0x48,0x95,0xFD,0x5C,0x84,0x52,0xB1,0xFC,0xC7,0x68,
+0x50,0xFC,0x89,0x26,0x13,0x24,0xBC,0xBD,0x1C,0x11,0x28,0xB3,0xAA,0xCA,0xEA,0x45,
+0xB5,0x7F,0xEF,0x40,0x6B,0xE2,0xC4,0x03,0x44,0x8B,0xEA,0xEB,0x42,0x96,0x5E,0xF1,
+0x65,0xFB,0xBB,0x14,0x22,0x40,0x8D,0xE8,0xFC,0x7D,0xA4,0x53,0xE7,0x66,0x0B,0xA4,
+0xA1,0x4F,0xCB,0x64,0xB9,0x5B,0x16,0x68,0xCC,0x09,0xE0,0x63,0xEB,0xBE,0xDF,0x70,
+0x20,0x99,0x9C,0x33,0xD6,0x9C,0x79,0xC0,0x7B,0xB3,0xED,0xD4,0x93,0x22,0x3B,0x94,
+0xEE,0xAF,0x64,0xCB,0x8F,0x7E,0x20,0x7B,0x7D,0xD4,0x8C,0xD2,0xCD,0xAB,0xEC,0x43,
+0x0D,0x02,0x2A,0x85,0x01,0x15,0xAE,0x9E,0x65,0x8E,0xCE,0xCA,0x58,0x4F,0x9D,0x32,
+0x98,0xE4,0x59,0xF6,0xBF,0x3A,0x10,0x0F,0xB9,0x88,0x14,0x16,0x8A,0x05,0x05,0xAA,
+0x09,0x26,0x0A,0xA5,0x43,0xE4,0xEC,0x2D,0xDD,0x78,0x80,0x72,0xCC,0x44,0x02,0xAD,
+0x70,0xDD,0x88,0x27,0xE0,0xB9,0x4F,0xD3,0x1B,0x57,0x69,0xB4,0x1F,0xE1,0x74,0xDB,
+0x6A,0x4B,0x04,0xAB,0x5A,0x86,0xF5,0x56,0x6F,0xF7,0xBD,0xC0,0xE5,0x77,0x18,0xB7,
+0x97,0x54,0xE6,0x49,0x9F,0x3E,0x30,0x2B,0x98,0x8D,0x30,0x37,0xCB,0x71,0x30,0x9F,
+0x27,0xA1,0xA3,0x0C,0x90,0x7D,0x3F,0x67,0xD5,0x72,0x82,0x7A,0x94,0x17,0x09,0xA6,
+0x3D,0x37,0x2F,0x80,0xC3,0xEC,0x6C,0xA5,0xC1,0x36,0xD2,0x6E,0xD7,0x72,0x2F,0x80,
+0x0F,0x08,0x22,0x8D,0x1E,0x16,0xB1,0x82,0xA8,0xF9,0x74,0x07,0xED,0x64,0x03,0xAC,
+0x56,0xD2,0xA1,0x0E,0xFB,0xAA,0x54,0xDB,0x60,0xBB,0xFE,0xCF,0x0A,0x1E,0x9E,0x31,
+0x83,0x64,0xC2,0x6D,0x59,0xD7,0xF6,0x04,0x72,0x98,0xCF,0xDD,0xA3,0x36,0x1F,0xB0,
+0x68,0x41,0x0C,0xA3,0x9B,0x2E,0x34,0x3F,0x61,0x9A,0xDE,0xCE,0x07,0x29,0xA4,0x0B,
+0x39,0x13,0x0F,0xA0,0xB1,0x59,0x1E,0x62,0xF2,0x10,0xC7,0x5D,0x5B,0xB1,0x60,0xCF,
+0x08,0x30,0x1D,0xB2,0x95,0x4D,0x3A,0x52,0x86,0xB0,0x13,0x29,0x21,0x3C,0x97,0x38,
+0x67,0xF1,0xB3,0x1C,0x7B,0xA2,0xD4,0x53,0xBE,0xCE,0x55,0x11,0xB8,0x00,0x32,0x9D,
+0xD8,0xB4,0x49,0xE6,0xF3,0xA8,0x5C,0xD1,0x39,0x00,0x1C,0x96,0xBF,0x35,0x00,0xAF,
+0x2B,0x0D,0x03,0xAC,0x4E,0xD6,0xE1,0x12,0xDA,0x3E,0xC1,0x75,0x87,0x32,0x3F,0x90,
+0xA5,0x6B,0xEB,0x44,0xDB,0xAE,0x74,0xFF,0x2C,0x65,0x6C,0x83,0xD9,0xBB,0xE8,0x47,
+0x7C,0x71,0x28,0x87,0x3D,0x43,0x92,0xF4,0x05,0x6A,0x4A,0xAA,0x0B,0xF1,0x70,0xDF,
+0xB6,0x63,0xF0,0x5F,0x99,0x5F,0x36,0x4C,0xD6,0x20,0xD3,0x79,0x96,0x06,0x1A,0xB5,
+0x93,0x70,0xC6,0x69,0x8E,0x5E,0x21,0x5A,0xA9,0xD8,0x54,0x06,0x48,0x94,0x56,0xF9,
+0xEB,0x9D,0x53,0xFC,0x7F,0xB2,0xD0,0x47,0x62,0xC8,0x8F,0xCD,0x16,0x1D,0x81,0x2E,
+0xE3,0x15,0xD3,0x7C,0x58,0xF7,0xF7,0x25,0xCD,0x28,0xC0,0x62,0x33,0xF6,0x4F,0xE0,
+0xAC,0xF5,0x7C,0xD3,0x0A,0x46,0xA5,0xC6,0xC7,0x51,0xB3,0x68,0xFA,0x8A,0xFA,0x55,
+0x04,0x9C,0xBD,0x12,0xC2,0xCC,0x6D,0x84,0x95,0xB2,0x02,0x3A,0xC1,0x73,0x38,0x97,
+0x03,0xA4,0x82,0x2D,0x0F,0x76,0xA0,0xF3,0x23,0x29,0x2F,0x8C,0x43,0x79,0xB0,0x1F,
+0xAD,0xE3,0x6B,0xC4,0x9A,0x0E,0x35,0x1E,0xF3,0x31,0xE7,0x5C,0x6E,0x81,0x65,0xCA,
+0x92,0x66,0xD1,0x7E,0x66,0xD0,0xC9,0x3C,0x63,0xE9,0xAF,0xCC,0x39,0xF4,0x47,0xE8,
+0x1A,0x2E,0x11,0xBE,0x1D,0x47,0xB2,0xD0,0x4B,0xC7,0xA9,0xE4,0x97,0xE9,0xF4,0x5B,
+0x42,0xE2,0x85,0x2A,0xA7,0x78,0x08,0x55,0x27,0x3D,0x3F,0x88,0xEA,0x51,0x31,0x9E,
+0xD9,0xA2,0x5E,0xF1,0x42,0xC4,0xED,0x0C,0xD8,0x4D,0xB0,0x77,0x6C,0x90,0x76,0xD9,
+0x9B,0xF8,0x46,0xE9,0xF5,0xC9,0x5A,0xB6,0x17,0x49,0x7B,0xB8,0x46,0x5D,0x91,0x3E,
+0xB8,0xC5,0x58,0xF7,0xA8,0x3B,0x07,0x19,0xBA,0xDA,0x45,0x15,0x2C,0x0B,0xAD,0x02,
+0xFD,0xA7,0x7F,0xD0,0x34,0x61,0x9B,0xDF,0x6E,0xD6,0x9D,0xC1,0x83,0xF9,0xF0,0x5F,
+0x63,0xD5,0x93,0x3C,0xC6,0xDC,0x69,0x90,0x2D,0x44,0x4C,0x82,0x22,0xC2,0x6A,0xC5,
+0x1B,0x38,0x06,0xA9,0xBD,0x4B,0x12,0x7C,0x8A,0xAE,0x01,0x25,0xDE,0x8E,0xDA,0x75,
+0xDB,0xA8,0x56,0xF9,0x4B,0xE6,0xE4,0x27,0xE7,0x75,0xB7,0x48,0xBA,0x11,0x21,0x8E,
+0x23,0x85,0x83,0x2C,0xB5,0x49,0x1A,0x76,0x71,0xCA,0x9E,0xDE,0xB7,0x26,0x1B,0xB4,
+0xCD,0x92,0x7A,0xD5,0xEF,0xFA,0x40,0x9F,0xD2,0x34,0xC3,0x7D,0x35,0x2C,0x93,0x3C,
+0x2D,0x23,0x2B,0x84,0x45,0x85,0xEA,0x4A,0xE5,0x06,0xC6,0x4A,0x81,0xE8,0xE3,0x4C,
+0x0A,0x3A,0x15,0xBA,0x2B,0x62,0x84,0xC3,0x67,0xFD,0xBF,0xC8,0xC4,0x57,0x19,0xB6,
+0xC5,0x1A,0xFA,0x55,0x67,0xF0,0xC8,0x1D,0x19,0x24,0x18,0xB6,0x79,0x6F,0x9C,0x33,
+0x41,0xFE,0x9A,0x35,0xF8,0xFB,0x57,0x89,0xBF,0xEF,0x75,0x10,0xA0,0xC8,0xE2,0x4D,
+0x8B,0xEC,0x42,0xED,0x98,0x7F,0x37,0x6D,0xF4,0x77,0xA6,0x5B,0x2F,0xF5,0x50,0xFF,
+0x5A,0x7E,0x01,0xAE,0xFD,0xCB,0x52,0xBC,0x96,0xE0,0x53,0x39,0xC9,0x60,0x23,0x8C,
+0x47,0xD6,0x5F,0x90,0x0C,0x10,0xC3,0x1D,0x09,0xC6,0x25,0x2D,0xC3,0xB5,0x7A,0xB8,
+0x04,0x9A,0x50,0x9F,0x49,0xE5,0x86,0xAD,0x30,0xFF,0x7A,0x4B,0x3C,0xF8,0x37,0x0A,
+0x2C,0x33,0xD1,0x1E,0x8D,0xB9,0x42,0x35,0x03,0xCC,0x5C,0x5E,0x48,0xC8,0x07,0x4E,
+0xD6,0x14,0x0C,0xC3,0x80,0x86,0x4F,0x07,0x2F,0xE0,0x66,0x48,0x87,0xA1,0x6E,0xE8,
+0xED,0xB5,0x96,0x59,0x6D,0xD5,0xA2,0xB9,0x1F,0xD0,0x12,0x0C,0x29,0x12,0xDD,0xF5,
+0x90,0x6A,0x34,0xFB,0x0E,0x63,0xC1,0x6C,0x9E,0x51,0xBB,0x24,0x0A,0x00,0xCF,0xC4,
+0x63,0xD3,0x7E,0xB1,0xA0,0xA2,0x6F,0x03,0x60,0xAF,0xEA,0x8B,0xA1,0x92,0x5D,0xFD,
+0x14,0x8E,0x54,0x9B,0xA3,0xF0,0x6C,0x52,0xA4,0x6B,0xB6,0x13,0x2B,0x01,0xCE,0xE4,
+0xA6,0x71,0x19,0xD6,0x33,0x28,0xFC,0x1A,0x3B,0xF4,0x22,0x18,0x02,0x1B,0xD4,0xD7,
+0x61,0xD9,0x76,0xB9,0x64,0xFE,0xAB,0x9B,0xDF,0x10,0x5A,0x84,0xB8,0xAC,0x63,0xDA,
+0x2F,0x2F,0xCE,0x01,0x85,0xB3,0x4A,0x37,0x9D,0x52,0xE9,0x75,0x3F,0x05,0xCA,0xF4,
+0x44,0xCA,0x40,0x8F,0xCB,0x1E,0x04,0xD4,0xEC,0x23,0x7C,0x91,0x65,0x1D,0xD2,0xB6,
+0xDE,0x9C,0x8C,0x43,0xA5,0x97,0x6A,0x33,0x02,0xCD,0x7D,0x7E,0xC9,0xBD,0x72,0xBA,
+0x00,0xBE,0x70,0xBF,0xF6,0x55,0x39,0xA2,0x05,0xCA,0x3B,0x3F,0x39,0xD9,0x16,0x2E,
+0xBC,0xE7,0x95,0x5A,0xAB,0xFA,0x64,0x50,0x18,0xD7,0x54,0x4D,0x46,0x0F,0xC0,0x87,
+0x83,0x62,0x2F,0xE0,0x27,0x6C,0xE8,0x4A,0x74,0xBB,0xAE,0xDB,0xE6,0x7B,0xB4,0x53,
+0x10,0xAA,0x74,0xBB,0x04,0x1A,0xCB,0x1F,0x08,0xC7,0x04,0x0D,0xE1,0x49,0x86,0x66,
+0x72,0xD1,0x6D,0xA2,0x92,0xA5,0x5D,0x36,0x17,0xD8,0x18,0x0E,0xF1,0x82,0x4D,0xBD,
+0xA3,0x43,0x2E,0xE1,0xFF,0x7E,0x30,0x80,0xBC,0x73,0xEC,0x51,0x6D,0x06,0xC9,0xA5,
+0x1B,0x3E,0xEB,0x24,0x61,0xCB,0xAE,0xAB,0x28,0xE7,0x20,0x09,0x1C,0x17,0xD8,0xC5,
+0x1E,0x0C,0xDC,0x13,0x26,0x4D,0xE9,0x6A,0xEA,0x25,0x1B,0xF0,0xA0,0x7C,0xB3,0x12,
+0xC2,0x24,0x28,0xE7,0x0D,0x31,0xC2,0x3D,0xC7,0x08,0x00,0xC6,0xED,0x9D,0x52,0xBE,
+0x7A,0x59,0xED,0x22,0x14,0x4A,0xDB,0x5F,0x0B,0xC4,0x56,0x5C,0xCC,0x9C,0x53,0x9E,
+0xD8,0xB2,0xA4,0x6B,0x40,0xCE,0x8F,0x8F,0x5E,0x91,0xF3,0xAC,0x3A,0x24,0xEB,0xD0,
+0x68,0x47,0xE1,0x2E,0xAF,0xEE,0x60,0x40,0x20,0xEF,0x2A,0x0B,0xB4,0x78,0xB7,0x02,
+0xB7,0x73,0x0A,0xC5,0x3E,0x17,0xF1,0x28,0x71,0xBE,0x9B,0xEB,0x37,0x1E,0xD1,0xE7,
+0x25,0xAD,0x46,0x89,0xA6,0xC5,0x69,0x62,0x54,0x9B,0x8A,0xDF,0x41,0x3D,0xF2,0xB2,
+0xE0,0x0F,0x21,0xEE,0x46,0xA9,0x89,0xEE,0xFE,0x31,0x5F,0xA0,0xFF,0x45,0x8A,0x74,
+0x54,0xDE,0x44,0x8B,0x94,0xC2,0x5B,0x57,0xDC,0x13,0x08,0xD5,0xF4,0xA3,0x6C,0x99,
+0x9A,0xE8,0xBC,0x73,0x4C,0xD0,0x83,0x9D,0x51,0x9E,0xBF,0xEF,0xD8,0x98,0x57,0x8E,
+0x2A,0x1D,0xF9,0x36,0x41,0xEF,0x8E,0xAF,0xD7,0x18,0x50,0x86,0xB0,0xB7,0x78,0xC9,
+0xC8,0xA6,0xA0,0x6F,0xE5,0x57,0x2A,0xB3,0xD9,0x16,0x3D,0xE5,0x83,0x6E,0xA1,0x23,
+0xC0,0x2E,0x20,0xEF,0xD5,0x23,0x1A,0xF7,0x93,0x5C,0x84,0x16,0x85,0xB2,0x7D,0xF9,
+0x73,0xC7,0x7A,0xB5,0x2C,0x34,0xE3,0x19,0x1B,0xD4,0x06,0x1C,0x7B,0x11,0xDE,0xA4,
+0x58,0x72,0xE4,0x2B,0xBA,0x8B,0x75,0x30,0x19,0xD6,0x75,0x6D,0x4C,0x07,0xC8,0x85,
+0xBF,0xFB,0x8A,0x45,0x84,0x92,0x4B,0x17,0xE3,0x2C,0x30,0xD2,0xB7,0x85,0x4A,0xFC,
+0xC1,0x38,0x37,0xF8,0x35,0x4F,0xFA,0x7B,0xE2,0x2D,0x11,0xF2,0x5E,0xDF,0x10,0x4F,
+0xCA,0xAC,0xA8,0x67,0x55,0xAB,0x9A,0xFF,0x9C,0x53,0xC8,0x55,0x95,0x79,0xB6,0x22,
+0xF1,0x0D,0x32,0xFD,0xAE,0xCF,0x61,0x60,0x23,0xEC,0x78,0x5A,0x51,0xF6,0x39,0x69,
+0x45,0xDC,0x57,0x98,0xED,0x5D,0x22,0xB1,0x50,0x9F,0x9E,0xCF,0xC6,0x94,0x5B,0x9C,
+0xFE,0xBD,0x8D,0x42,0xF1,0x13,0x3E,0xE3,0x76,0xB9,0xDD,0xAA,0xFC,0xB8,0x77,0x8A,
+0x42,0xE4,0x68,0xA7,0x2A,0x53,0xE5,0x78,0x31,0xFE,0x5B,0x6B,0x8C,0x47,0x88,0x05,
+0x01,0xA8,0x67,0xA8,0xF7,0x74,0x38,0x82,0xAD,0x62,0x9D,0x31,0x6B,0xDA,0x15,0x7F,
+0xF3,0x07,0x3A,0xF5,0xE9,0x49,0x26,0xA1,0x91,0x5E,0xF7,0x67,0xF8,0x77,0xB8,0x41,
+0xE6,0x21,0x09,0xC6,0x3C,0x64,0xF3,0x59,0x6A,0xA5,0x93,0xF8,0xF5,0x4D,0x82,0x76,
+0x5B,0x6E,0xFB,0x34,0xD0,0x16,0x1F,0xC7,0xF0,0x3F,0x32,0xC3,0x67,0x0E,0xC1,0xA7,
+0xDC,0x96,0x84,0x4B,0xF9,0x19,0x36,0xE1,0x21,0xEE,0x0B,0x2B,0xC4,0x87,0x48,0x8D,
+0x71,0xCD,0x72,0xBD,0xA9,0x89,0x66,0x21,0xDA,0x15,0x6F,0xB4,0x1F,0xEA,0x25,0x3B,
+0xCD,0x94,0x97,0x58,0x7C,0xA4,0xB3,0xD9,0x4F,0x80,0x82,0xCC,0x99,0xAD,0x62,0xFA,
+0x88,0xF6,0xB0,0x7F,0xFC,0x2C,0x33,0xD1,0x81,0x4E,0xA7,0x27,0x79,0x02,0xCD,0xB5,
+0xF6,0x35,0x0D,0xC2,0x12,0x2D,0xDD,0x3E,0x38,0xF7,0x70,0x49,0x03,0xF5,0x3A,0x38,
+0x7C,0x77,0xC5,0x0A,0xD3,0x44,0x1C,0x96,0xFA,0x35,0x4B,0xB0,0xE0,0xA7,0x68,0x89,
+0x34,0xAF,0x55,0x9A,0xC4,0x52,0x0B,0x97,0x65,0xAA,0xDF,0xBB,0x80,0x93,0x5C,0xDD,
+0x4C,0x42,0xC0,0x0F,0x2D,0x15,0xE2,0x39,0xB0,0x7F,0xF2,0x43,0x98,0x43,0x8C,0x15,
+0x7D,0x61,0xD2,0x1D,0xBE,0x9F,0x71,0x20,0xF4,0x3B,0x26,0xD3,0x76,0x2B,0xE4,0x93,
+0xEA,0x8D,0xA9,0x66,0x7E,0xD7,0xB1,0xA8,0x47,0x88,0x88,0xCE,0x58,0x03,0xCC,0x95,
+0x98,0xE2,0xB4,0x7B,0x1C,0x40,0xD3,0x5D,0x32,0xFD,0x09,0x3A,0x7F,0xDE,0x11,0x6F,
+0x77,0xE3,0x5A,0x95,0xB2,0x81,0x7D,0x32,0x97,0x58,0x90,0x06,0x01,0xE6,0x29,0x29,
+0xEC,0xA3,0x81,0x4E,0xAC,0xBC,0x63,0x11,0x3F,0xF0,0x36,0x08,0x8F,0xBA,0x75,0xFB,
+0x92,0x60,0x3C,0xF3,0xE6,0x05,0x29,0xE2,0x00,0xCF,0x0E,0x0F,0xB1,0x59,0x96,0x26,
+0x79,0x45,0xF2,0x3D,0x87,0xC0,0x48,0x46,0x70,0xBF,0xBA,0xCB,0xDB,0x65,0xAA,0x70,
+0x94,0x4E,0x14,0xDB,0x44,0xDA,0x8B,0x9F,0xE8,0x27,0x68,0x81,0xD4,0x4C,0x83,0x56,
+0x64,0xEB,0x41,0x8E,0x69,0xC1,0xA6,0xA9,0x56,0x99,0xF9,0xAE,0x69,0xC9,0x06,0x6E,
+0x65,0xFD,0x56,0x99,0x5F,0xD2,0x90,0x8C,0x1A,0xD5,0x27,0x3C,0x91,0xB6,0x79,0xE9,
+0xE2,0xB1,0xF7,0xF8,0xDB,0xE4,0x81,0xC1,0xF5,0xC8,0x83,0xEF,0x46,0x6A,0x92,0x88,
+0xDA,0xF7,0x89,0xC0,0x7E,0xD8,0x18,0x64,0x5B,0x09,0xEC,0x41,0xA9,0x6B,0x7C,0x66,
+0x86,0x25,0x07,0x9C,0xD6,0xD6,0xBE,0xCC,0x45,0x34,0xCF,0x5F,0x32,0x2B,0xA7,0xBD,
+0x65,0xF8,0x39,0x7F,0xE9,0xD1,0x86,0xF3,0x0F,0x8D,0x3C,0x15,0x4C,0xE8,0x1A,0x00,
+0x59,0xAE,0x53,0x43,0x99,0x15,0x32,0x83,0x6E,0x48,0x98,0x74,0xA7,0xCD,0xD4,0xCE,
+0x70,0x88,0x5C,0x6A,0x01,0x5F,0xE0,0x1B,0xAD,0x52,0x41,0xB7,0x4A,0xC6,0x32,0x28,
+0xF5,0xB0,0xE1,0xEF,0xBF,0x70,0x71,0xA5,0x80,0x49,0x77,0x9A,0xBA,0x63,0x67,0x7D,
+0x8A,0x37,0x19,0x90,0xF3,0xE2,0xAF,0xE9,0xB6,0x5A,0x52,0xAC,0xBB,0x75,0x70,0x6A,
+0x91,0x24,0x11,0x8B,0xA6,0x12,0x0A,0xBC,0x95,0x2C,0x07,0x8F,0x13,0x1C,0xB1,0xAB,
+0x3E,0x6B,0xF1,0x24,0x68,0xF9,0x2F,0x72,0x15,0xA4,0x0F,0x0F,0x56,0x7E,0x96,0x8C,
+0xC9,0xE6,0x8B,0xD3,0xD1,0x97,0xF8,0xCB,0xFB,0xA5,0xE0,0xE1,0x28,0xBD,0x2B,0x31,
+0x9B,0x57,0x68,0x81,0x13,0x6E,0xC3,0x09,0x3A,0xCC,0x48,0x20,0xA2,0xFF,0xE3,0xF9,
+0xAF,0x03,0x08,0xB5,0x8C,0x65,0x57,0x96,0x2D,0xDA,0x49,0x37,0xEA,0x27,0x73,0x69,
+0x7F,0xCB,0x10,0x65,0x59,0x9D,0x7A,0x43,0xC4,0x9D,0xE7,0xDE,0x92,0xCA,0xE6,0xFC,
+0x17,0x4D,0xFE,0x0D,0x1D,0x0D,0xAE,0x07,0x57,0x17,0xFE,0x4D,0xA3,0xE9,0xF4,0xEE,
+0x3F,0x4B,0xD0,0x25,0xAE,0x10,0x00,0xB4,0x97,0x5F,0x76,0x8D,0x34,0x05,0x8F,0x95,
+0x84,0x54,0x74,0x9E,0x9F,0x74,0x55,0x85,0x18,0x9B,0x3D,0x02,0x20,0x35,0xAB,0xB1,
+0x7B,0xDB,0x04,0x61,0xD8,0xB5,0xD3,0xC2,0xC3,0xDB,0xA6,0xD9,0x9C,0x6C,0x4E,0x54,
+0xE6,0xA1,0xE3,0xFC,0x44,0xEF,0x15,0x5E,0x1E,0xFC,0x5C,0x04,0xDF,0x20,0x41,0x5B,
+0x4B,0x9F,0x70,0x51,0x78,0xB9,0x7F,0x62,0x00,0xC1,0x7F,0x1A,0x2D,0x8F,0x1C,0x06,
+0x71,0xA8,0x7D,0x6B,0x83,0x26,0x1B,0x99,0xD5,0xEC,0x87,0xCF,0x38,0xA9,0x2F,0x35,
+0x32,0x79,0xEF,0x28,0x19,0x1D,0xBA,0x03,0x39,0x9E,0x19,0x23,0x85,0xE6,0xDD,0xC7,
+0xBB,0x53,0x4C,0xA1,0xC8,0xF5,0x83,0xD2,0x10,0x91,0x3F,0x0A,0x02,0x1E,0xA2,0xB8,
+0xD6,0xE5,0x97,0xCC,0x33,0x6A,0xE7,0x29,0x40,0x01,0xFF,0x5A,0xAF,0x45,0x54,0x4E,
+0x8E,0x27,0x0D,0x94,0x7A,0xC8,0x0C,0x60,0x3C,0xAB,0x29,0x26,0x1E,0xA6,0x06,0x1C,
+0x2D,0x7A,0xF3,0x37,0xF2,0xC2,0x8E,0xE8,0xC5,0xBC,0xC7,0xDF,0xAD,0x4F,0x5C,0x46,
+0x3B,0x5B,0xC4,0x21,0xF0,0xB3,0xFD,0xEA,0x53,0x03,0xEE,0x49,0x86,0xFA,0xC2,0xD8,
+0xB9,0x22,0x3F,0xA3,0x0A,0x0C,0xB8,0x10,0x6D,0x1A,0xC9,0x77,0x61,0x73,0xAC,0xB6,
+0xE3,0x91,0xD6,0xF9,0x0B,0x2C,0x99,0x11,0xDC,0xC7,0xA5,0xC6,0x1F,0xB0,0x11,0x0B,
+0x45,0xFC,0x1D,0x5F,0x75,0x8B,0x40,0x6F,0xBC,0x23,0x21,0xA6,0x14,0x24,0x8E,0x94,
+0xCA,0xB7,0xD9,0xD0,0xCA,0x84,0xF0,0xD0,0x47,0x47,0xBE,0x5D,0x2F,0x85,0x14,0x0E,
+0xA8,0x42,0x4E,0xB2,0xB9,0x11,0x16,0xA3,0x04,0xD5,0x6F,0x1E,0x9B,0x54,0x71,0x6B,
+0x44,0xDC,0x3C,0x5E,0xC9,0xD5,0xA2,0xD3,0x46,0x66,0x9E,0x5C,0xB6,0xCF,0xC7,0xDD,
+0x22,0x39,0xBF,0x38,0x98,0x35,0x13,0x82,0xD7,0x9F,0xF6,0xCD,0x69,0xFB,0x2C,0x36,
+0x01,0x6C,0xC9,0x1B,0xBD,0x01,0x02,0xA7,0x4F,0x4D,0xBC,0x55,0xFB,0x25,0x60,0x7A,
+0x79,0xAA,0x77,0x63,0x17,0x7E,0xD7,0x0D,0xAF,0x21,0x30,0xB5,0x3E,0x87,0x07,0x1D,
+0x9F,0x47,0x7C,0x85,0x35,0x0B,0x80,0x2F,0x7D,0x4A,0x89,0x67,0x8A,0x56,0x62,0x78,
+0xA4,0x50,0x50,0xBE,0xB8,0x31,0x37,0xA2,0xA5,0x58,0x43,0xBF,0x44,0x60,0x9A,0x80,
+0x8B,0x17,0x38,0x91,0x3E,0x58,0xD8,0x24,0xA8,0x67,0x71,0xB2,0xF4,0x95,0xDF,0xC5,
+0x52,0xFD,0x0B,0x48,0x30,0x3B,0xB5,0x2A,0x0C,0xDF,0x6D,0x16,0x16,0x2E,0x86,0x9C,
+0x75,0xB8,0x69,0x6F,0xE1,0xD3,0x8C,0xFB,0xED,0x92,0xC1,0xF7,0xCE,0x22,0x52,0x48,
+0xBE,0x63,0x79,0xA4,0xFE,0xD0,0x90,0xE4,0x7B,0x2D,0xE8,0x61,0xAC,0x59,0x4B,0x51,
+0x3A,0x7B,0xE5,0x20,0x55,0x8F,0x64,0x4F,0x16,0xF6,0x5E,0x0C,0x7D,0xCB,0x08,0x12,
+0x2B,0x1B,0x94,0x31,0xC1,0xD7,0xA8,0xDB,0x88,0x43,0x75,0x92,0xC5,0xB6,0xCD,0xD7,
+0x40,0xCC,0x28,0x5A,0x03,0x2E,0x93,0x19,0xCF,0xC5,0xB4,0xD5,0xC0,0x84,0xFA,0xE0,
+0xA1,0x60,0x65,0xBB,0x2E,0x18,0x88,0x34,0xE4,0xB9,0xE3,0xFE,0x1C,0xAC,0x0E,0x14,
+0xA0,0x40,0x44,0xBA,0xE2,0x82,0xDE,0xF8,0xFD,0xC2,0x81,0xE7,0xA4,0xD1,0xCB,0xD1,
+0x18,0x0E,0xB2,0x02,0xB7,0x72,0x7B,0xAD,0xA9,0x46,0x51,0xB3,0x06,0x3A,0x82,0x98,
+0x27,0x09,0x8A,0x3D,0xD2,0xC6,0xAA,0xC8,0xDA,0xA0,0xC4,0xC0,0x78,0xF9,0x3F,0x25,
+0x90,0x04,0x30,0x8A,0x36,0x5A,0xD2,0x2C,0x8D,0x76,0x45,0x97,0xBF,0x51,0x50,0x4A,
+0x39,0x2A,0xB7,0x23,0x74,0xAB,0x61,0x6E,0x6C,0x3B,0xE9,0x76,0xF1,0xA7,0xE8,0xF2,
+0x21,0x68,0xED,0x3B,0x05,0x4F,0xF4,0x1F,0x22,0x96,0x0A,0x38,0x9A,0x42,0x66,0x7C,
+0x81,0x64,0x41,0x9B,0xEB,0xA0,0xF5,0xF1,0x4C,0x1F,0xED,0x56,0x00,0x14,0xAA,0xB0,
+0xE5,0xF0,0xB1,0xFF,0xEC,0xE1,0xB3,0xF6,0x1F,0xDD,0x7C,0x05,0xDE,0x36,0x56,0x4C,
+0x33,0x59,0xCE,0x29,0xF1,0x93,0xDC,0xEB,0x42,0x72,0x8E,0x58,0x62,0x6F,0xB3,0xA9,
+0x47,0x8D,0x6E,0x5D,0x9D,0x05,0x26,0x87,0xCE,0xE4,0x94,0xD4,0x5D,0xEA,0x09,0x13,
+0x89,0x66,0x4B,0x93,0xE0,0xF3,0xAD,0xFA,0xE5,0x98,0xC3,0xFF,0x99,0x5E,0x79,0x63,
+0xC4,0xD4,0xB4,0xDE,0xD9,0x95,0xF2,0xC3,0xA0,0x6D,0x73,0xBA,0xDA,0x12,0x76,0x6C,
+0xF4,0x90,0xC0,0xEE,0xEA,0x80,0xD4,0xF0,0x64,0x31,0xEB,0x7E,0xF2,0xBB,0xF7,0xED,
+0x9D,0x36,0x0F,0x87,0xC6,0x96,0xEE,0xDC,0x69,0x0E,0xD9,0x73,0x08,0x9C,0x2A,0x30,
+0x2E,0x2B,0xA1,0x34,0xF6,0xD2,0x9A,0xEC,0x84,0x5D,0x67,0x9E,0x33,0x3D,0xB0,0xAA,
+0x3C,0x1A,0x82,0x26,0x77,0xFA,0x33,0x6D,0xE7,0xEB,0xB2,0xFD,0x4E,0xE2,0x12,0x08,
+0xAE,0x23,0x29,0xB4,0x89,0x55,0x62,0x93,0x49,0x2A,0xDD,0x53,0xBD,0x5B,0x58,0x42,
+0x3D,0x3A,0xA3,0x27,0x4D,0xCD,0x3E,0x57,0x4A,0x78,0x8C,0x50,0xCA,0x06,0x72,0x68,
+0xFC,0xF4,0xF5,0x9E,0x02,0x70,0xED,0x78,0x58,0xAF,0x68,0x60,0x3F,0x2E,0x8E,0x37,
+0x72,0x7A,0x9E,0x7B,0xAF,0x3E,0x0E,0x36,0xCD,0x4B,0x19,0x11,0x27,0x6C,0xD4,0x2F,
+0x2B,0x23,0x7C,0xC0,0x99,0xC6,0xC0,0xCE,0x93,0xC2,0xCE,0xC6,0x21,0x0D,0xB3,0x29,
+0x44,0x4C,0xBB,0x68,0x4F,0x91,0x41,0x99,0xEB,0x5E,0x2A,0x22,0x96,0x00,0x09,0x9E,
+0xA7,0xAF,0x66,0x56,0x4B,0x5E,0x8A,0x56,0xE5,0x97,0xED,0xE5,0x35,0x5D,0xF7,0x3D,
+0x1D,0x15,0x59,0xD3,0xDD,0xD2,0x90,0xDA,0x1F,0x01,0x81,0x89,0x41,0x89,0x57,0x49,
+0xBE,0xB6,0x04,0x2D,0x26,0x50,0xE9,0x58,0xCC,0xA4,0xF7,0xFF,0x87,0x60,0x78,0x8F,
+0x42,0x4A,0xDA,0x0F,0xE4,0x03,0x78,0x0B,0x8A,0xE5,0xF0,0xF8,0xE3,0xF4,0x88,0xEB,
+0xE3,0xEB,0xF6,0x82,0x08,0x78,0xEF,0x70,0xED,0x84,0xF6,0xFE,0xF2,0x94,0xF9,0xFA,
+0x3E,0x36,0x0C,0xA5,0x37,0x75,0xDD,0x7D,0xD7,0x92,0xDA,0xD2,0x9B,0x32,0x36,0x93,
+0x6D,0x65,0x9D,0x67,0xA1,0xF9,0xC7,0xF1,0x94,0xF7,0xFC,0xF4,0x8F,0x62,0x72,0x87,
+0x62,0x6A,0xDE,0x2B,0x54,0xBC,0x77,0xB4,0xCB,0x91,0xC5,0xCD,0xC2,0xD0,0x8D,0xCA,
+0x4C,0x44,0xB9,0x62,0x13,0x55,0xD9,0x5D,0x5B,0x51,0x95,0x9D,0xA8,0x27,0x10,0xA0,
+0x66,0x6E,0xCE,0x3F,0x41,0x56,0x88,0x5E,0x07,0xC9,0x51,0x59,0x3B,0x3E,0x9A,0x33,
+0xA4,0xAC,0x37,0x04,0x64,0x98,0x63,0x90,0xA3,0xD6,0xEA,0xE2,0x28,0x2F,0x98,0x20,
+0x06,0x0E,0x4A,0xDB,0xD2,0xFB,0xB6,0xF3,0x0A,0xFE,0x6B,0x63,0x3A,0x1E,0xBB,0x32,
+0x74,0x7C,0xFF,0x1C,0x74,0x53,0xB8,0x5B,0x3B,0x05,0xA1,0xA9,0x07,0x68,0xF0,0x0F,
+0x13,0x1B,0x3A,0xBE,0x18,0xB3,0x34,0xBB,0xEE,0x7A,0x0B,0x03,0x7F,0xAE,0x4E,0x77,
+0xD3,0xDB,0xB2,0xF6,0x5F,0x5A,0x9A,0x52,0x9B,0xD1,0xD5,0xDD,0x42,0xD8,0x05,0x4A,
+0x38,0x30,0x6D,0xC2,0xA6,0xCB,0xF2,0xC3,0x2A,0x31,0x84,0x8C,0x24,0x3D,0x86,0x2C,
+0xCB,0xC3,0xF0,0xAC,0x5E,0xB4,0x75,0xBC,0xE1,0x5C,0x22,0x2A,0x8D,0x13,0x01,0x85,
+0x92,0x9A,0x12,0x17,0xE6,0x10,0x69,0x18,0x8C,0x3F,0x2C,0x24,0x54,0xF9,0x32,0x5C,
+0x76,0x7E,0x8E,0x6F,0x73,0x61,0x8D,0x69,0xB9,0x0F,0x29,0x21,0x99,0x43,0x45,0x91,
+0x8E,0x86,0x40,0x59,0x61,0xB9,0x47,0xB1,0x0E,0x35,0xA4,0xAC,0xA2,0x54,0x69,0xAA,
+0x1C,0x14,0x79,0xF2,0xCF,0x0A,0x5A,0x02,0x5D,0x8B,0x49,0x41,0x3C,0x7F,0xDC,0x34,
+0xD9,0xD1,0xC1,0x8F,0x7A,0x94,0x71,0x9C,0x91,0xD3,0xDD,0xD5,0x2D,0x1F,0xAD,0x25,
+0x46,0x4E,0xCA,0x1B,0xAB,0xF1,0xC5,0xF9,0xB5,0xD7,0xFD,0xF5,0x73,0xBC,0x50,0x7B,
+0x5F,0x57,0xA8,0x60,0x14,0x67,0xEC,0x6F,0xA9,0xD4,0xE2,0xEA,0xB8,0x67,0x40,0xB0,
+0xDF,0xD7,0xA0,0xE8,0xFB,0xE1,0x85,0xE9,0xE7,0x86,0xFE,0xF6,0xA6,0x44,0x7D,0xAE,
+0x96,0x9E,0x02,0x03,0x7F,0xB5,0x55,0xBD,0x42,0x76,0xAB,0xA3,0x1E,0x0A,0x8B,0x16,
+0xEE,0xE6,0xC4,0xBD,0xFC,0xD3,0xB0,0xDB,0xAA,0x2A,0x1F,0x17,0x46,0xC8,0x11,0x4E,
+0x1A,0x12,0x18,0x95,0x80,0xF8,0xE7,0xF0,0xB1,0x1C,0x32,0x3A,0xA7,0x64,0x5C,0xAF,
+0x55,0x5D,0xDB,0x19,0xC5,0x02,0x58,0x0A,0x2C,0xEB,0x58,0x50,0xE0,0xA5,0xDA,0xE8,
+0x08,0x00,0x29,0xB6,0xF8,0x1C,0x7B,0x14,0x46,0xBD,0x64,0x6C,0x4D,0x9B,0x49,0x45,
+0xBF,0xB7,0x24,0x0C,0xA2,0x04,0x39,0x0C,0x6C,0x70,0x83,0x8B,0x82,0x50,0x4D,0x8A,
+0x5A,0x52,0x98,0x55,0xE2,0xDF,0xA2,0xD7,0xEA,0xB1,0xC4,0xCC,0x7D,0xDF,0x3D,0x75,
+0xB6,0xBE,0x06,0x27,0xA8,0x0C,0x3B,0x04,0xBA,0xF1,0xD4,0xDC,0xBD,0x57,0x75,0xB5,
+0x40,0x48,0xAB,0x7C,0x38,0x5C,0xFB,0x54,0xDE,0x6E,0x2F,0x27,0xD0,0xE1,0xAE,0xD8,
+0x3B,0x33,0x3C,0x90,0xD5,0xC9,0x83,0xC1,0x22,0x22,0x9F,0x97,0x77,0xAC,0x44,0x7F,
+0xC9,0xC1,0x81,0xDF,0xA7,0x25,0x1D,0x2D,0x83,0x19,0x05,0x0D,0x34,0x7D,0xD6,0x3C,
+0xD6,0xDE,0x82,0xC3,0x3A,0x4F,0xEA,0x47,0xC4,0xB7,0xEC,0xE4,0x3D,0x5F,0xFD,0x35,
+0xB8,0xB0,0x65,0x4A,0x23,0x71,0xCD,0x79,0x81,0x08,0x16,0x1E,0xBF,0x26,0x06,0xB7,
+0x12,0x1A,0x1A,0x9F,0x92,0x20,0x2D,0x28,0x35,0xCC,0x66,0x6E,0x88,0x23,0x34,0x80,
+0x48,0x40,0xA9,0x76,0x85,0xD9,0xC3,0xD1,0xB7,0xC6,0xEE,0xE6,0x2B,0x7E,0xCA,0x23,
+0x00,0x08,0x2B,0xBC,0x7E,0x5B,0xBA,0x53,0xC9,0x80,0xD6,0xDE,0xCC,0xB3,0xE0,0xC4,
+0x65,0x6D,0x9F,0x6D,0xEC,0x18,0x6B,0x10,0x2F,0x15,0xA5,0xAD,0xAE,0x46,0x77,0xA6,
+0x05,0x0D,0x1B,0x89,0xFE,0xC0,0xA1,0xC8,0xA0,0x28,0x17,0x1F,0xE5,0x95,0xEF,0xED,
+0x9A,0x92,0x10,0x1D,0x1A,0xA0,0x25,0xA8,0x79,0x8F,0x69,0x61,0x43,0xF8,0x24,0x4B,
+0xB3,0xBB,0x36,0x12,0x0D,0x59,0xCB,0x51,0x87,0xD2,0xCA,0xC2,0x80,0x21,0x3E,0x88,
+0x0E,0x06,0x48,0xD1,0xB4,0x13,0x38,0x1B,0xBF,0xD5,0xF5,0xFD,0x63,0xFC,0x00,0x6B,
+0x86,0x8E,0x42,0x53,0xF1,0xE9,0x87,0xE1,0xB8,0xE0,0xC7,0xCF,0xE4,0xB5,0xCE,0xEC,
+0x68,0x60,0xAD,0x52,0x30,0x47,0xE8,0x4F,0x21,0xDC,0x62,0x6A,0xDC,0xF3,0xB0,0xD4,
+0x73,0x7B,0xBE,0x5A,0x70,0x9C,0x73,0x94,0x48,0x74,0xA3,0xAB,0xF3,0xB4,0xD8,0xFB,
+0x64,0x6C,0xBF,0x4C,0x63,0xAA,0x56,0xA2,0x96,0xE6,0xEF,0xE7,0x8C,0x33,0x20,0x84,
+0xC0,0xC8,0xA3,0xF4,0x71,0x72,0x9C,0x7A,0x0B,0x11,0x85,0x8D,0x5F,0xAA,0x6A,0x57,
+0x26,0x2E,0x4E,0xFF,0x6B,0xB1,0x45,0xB9,0xD9,0x5B,0x1D,0x15,0x76,0x8C,0x65,0x7E,
+0x3F,0x37,0x2C,0x84,0x9C,0xE7,0xE4,0xEF,0xC1,0x93,0xCD,0xC5,0xCF,0xE2,0xB2,0xC7,
+0xF7,0xFF,0xA6,0xC6,0xF5,0x26,0x4C,0x2E,0xFA,0x6A,0x0F,0x07,0x9D,0x53,0x51,0x95,
+0xA5,0xAD,0x17,0x25,0x15,0x89,0x03,0x81,0x33,0x16,0xBA,0xB2,0x97,0x20,0x28,0x9F,
+0x82,0x8A,0x52,0x47,0x9D,0x09,0x0B,0x01,0x16,0xFD,0x74,0x7C,0x38,0x6F,0xC8,0x30,
+0xE0,0xE8,0xA7,0xD0,0x2E,0x4B,0xFA,0x43,0x97,0x09,0x01,0x09,0x11,0x49,0xC7,0x19,
+0x9B,0x93,0x30,0x3C,0x66,0x8B,0x72,0x83,0x39,0x14,0xB2,0xBA,0x39,0x4F,0xE9,0x31,
+0x67,0x6F,0xEE,0x1E,0xE3,0x31,0x4D,0x39,0x6E,0x61,0x90,0x98,0xA9,0x07,0x31,0xA1,
+0xF2,0xFA,0x96,0xF3,0xA4,0xD8,0xE3,0xD0,0x43,0x99,0x45,0x4D,0x79,0xCF,0x29,0x71,
+0x47,0x5F,0x6A,0xDE,0x67,0x31,0xBD,0xFE,0x48,0xD5,0x76,0xD1,0x4C,0x62,0xC5,0x5C,
+0x00,0x9E,0xEC,0x99,0x98,0xBE,0xCD,0x01,0xAD,0x8C,0xCA,0x34,0xD7,0x22,0x1E,0x87,
+0xE7,0x53,0xC6,0x7E,0x57,0x75,0xC9,0xCE,0x1A,0x36,0xC7,0x83,0x95,0x78,0x06,0x9F,
+0xDB,0x05,0xAC,0x42,0xFA,0x4B,0x5A,0x63,0x47,0x99,0x35,0xDE,0xB6,0x45,0x18,0x81,
+0x86,0xF7,0x03,0x1F,0x2E,0x93,0x56,0xB7,0xDB,0x5F,0x6F,0x42,0xF3,0x27,0x3F,0xA6,
+0x1C,0xCC,0xA2,0x85,0x6D,0x42,0xC4,0xF4,0x29,0x10,0xD2,0xB0,0x6D,0x55,0xD3,0x4A,
+0xAC,0x80,0x5E,0x35,0xCA,0x0F,0x2E,0x53,0x52,0xFC,0x45,0xCB,0x15,0xB8,0x46,0xDF,
+0x57,0x1F,0x3A,0xCE,0xA7,0xB9,0xF5,0x3E,0xA4,0xA7,0xE8,0x3D,0xD5,0x28,0x16,0x8F,
+0x6D,0x28,0x37,0xF4,0x31,0x90,0x4A,0xA8,0x5A,0xF6,0x47,0xC3,0x2D,0x05,0xC3,0x5A,
+0xE5,0x22,0xB5,0x7C,0x92,0xCD,0xB4,0x0B,0x00,0x1F,0xF4,0x99,0xC3,0x12,0x3A,0xA3,
+0x95,0xE6,0x01,0x0C,0xA5,0xC8,0x86,0x3C,0xAA,0xCA,0x8B,0x33,0x23,0xA3,0x6B,0xF2,
+0x6F,0x59,0x44,0xF6,0x27,0xB1,0x7D,0xBE,0xC4,0x43,0x6C,0x5D,0x04,0xBA,0x55,0xCC,
+0xEA,0x61,0xF9,0x73,0x59,0x16,0xA4,0xC0,0x88,0x9D,0xFE,0x11,0xCB,0x9A,0xBA,0x23,
+0x94,0xC6,0x20,0x0D,0xFF,0x7B,0x6F,0x66,0x17,0x09,0xF5,0x8E,0x4F,0x7E,0xDA,0x43,
+0x26,0xFB,0xAF,0xBF,0xB4,0xA8,0xF7,0x2D,0x77,0xED,0x71,0xEE,0x85,0x6C,0x02,0x9B,
+0x55,0x6E,0x49,0xCC,0xD6,0x5D,0x60,0x4F,0x12,0x3C,0xC5,0x8B,0x54,0xFE,0x41,0xD8,
+0xE1,0x32,0xA1,0x78,0xC6,0x1D,0x30,0x5F,0x7A,0xD2,0x43,0xE3,0x06,0xB0,0x5D,0xC4,
+0x44,0x0E,0x38,0xDD,0xFE,0x5B,0x4E,0x67,0x94,0xD3,0xAC,0x0D,0x69,0x71,0xF3,0x6A,
+0x76,0x3B,0x3F,0xEF,0x79,0x12,0x80,0xE0,0x1C,0x51,0xA6,0x85,0xD6,0x34,0x09,0x90,
+0x49,0x3C,0x07,0xD0,0x9A,0xCF,0xBE,0x03,0xA1,0x92,0xD8,0x38,0x25,0x8D,0x43,0xDA,
+0x9E,0xB5,0x59,0x07,0x6C,0x62,0xE5,0xF5,0x34,0x7F,0xA0,0xAD,0xAB,0xEB,0xAB,0x32,
+0x06,0xFF,0x8B,0x9F,0x45,0x44,0xEA,0xDC,0xD2,0x74,0x4D,0x4B,0x72,0xF1,0x68,0xF1,
+0x6C,0x08,0x16,0xF5,0x96,0xDD,0xA0,0x0F,0x76,0xCC,0x51,0xEF,0xB8,0xE3,0xB0,0x29,
+0x20,0x9A,0xC8,0xB9,0xE9,0x5A,0x58,0x70,0x61,0xDA,0x50,0xF8,0x9D,0xF0,0x86,0x1F,
+0xF7,0x13,0x96,0x6E,0x22,0x81,0x48,0xBB,0x90,0xC7,0xBC,0x09,0xE5,0x1D,0x13,0x8A,
+0x39,0xF8,0xB3,0xA0,0x8D,0xCE,0xA8,0x14,0xB7,0xA5,0xF9,0x2E,0xED,0x95,0x93,0x0A,
+0x8C,0x84,0x7A,0x15,0x87,0xBD,0xD1,0x1E,0xE5,0x46,0x48,0x7C,0xA2,0x75,0x3C,0xA5,
+0x4E,0x7D,0x41,0xD7,0xD5,0x0C,0x32,0x4C,0x2D,0x04,0xC2,0xB4,0x0A,0x1C,0xFD,0x64,
+0xC6,0x77,0xC3,0x5F,0x63,0x21,0xA9,0xFA,0xE0,0x73,0x78,0x79,0x0D,0x24,0xC2,0x5B,
+0x13,0x8F,0xEE,0x8A,0xB3,0xE9,0xB1,0x2A,0x75,0x9E,0x00,0xEC,0xA3,0x63,0x2B,0xB2,
+0x31,0xFA,0xB9,0xA8,0x23,0xA1,0x69,0xBA,0x89,0xBC,0xDE,0x10,0x9C,0xE6,0x91,0x08,
+0x82,0xE7,0x17,0x1B,0x0B,0xA7,0x47,0x92,0xF2,0x50,0x49,0x6B,0x14,0xAE,0x51,0xC8,
+0xA9,0xB0,0x6B,0x30,0x8C,0xEE,0x89,0x15,0x56,0xE8,0x55,0xCF,0xAF,0xCF,0x8B,0x12,
+0x4D,0x2C,0x13,0xD4,0x3B,0xE3,0x33,0xA2,0x39,0x40,0x92,0xA0,0x2E,0x19,0xDC,0x45,
+0x9A,0xA5,0x4D,0x03,0x3D,0x82,0x54,0xA4,0x60,0xFB,0x70,0xF9,0xE0,0x2F,0x24,0xBD,
+0xEB,0x41,0xD8,0x72,0x25,0xC0,0x0E,0xBC,0xEE,0x1E,0x1B,0x77,0x03,0x82,0x6A,0xF3,
+0x73,0x0B,0x0A,0xEA,0xF9,0x1A,0x08,0x60,0x50,0x8F,0x34,0xC9,0x96,0x64,0x19,0x80,
+0x74,0x4A,0x4C,0xED,0x9D,0x8E,0xF8,0x04,0xAC,0xAD,0xEA,0x35,0x07,0xA6,0x4A,0xD3,
+0x02,0xEF,0x9F,0x9B,0x5B,0x67,0xD7,0xC2,0x0F,0x53,0xB7,0x96,0x7E,0x5D,0xC8,0x51,
+0x6E,0x79,0x65,0xF7,0x2F,0xB3,0x77,0xB6,0xB5,0xD6,0x88,0x2C,0x64,0xCB,0x44,0xDD,
+0x46,0x7F,0x4B,0xDF,0xD8,0x3E,0x0D,0x41,0x70,0xAB,0x30,0xE9,0x99,0xD4,0xA6,0x3F,
+0x7F,0x19,0x14,0xE6,0x95,0x8C,0xF2,0x0C,0x7F,0xE7,0x73,0xE6,0x29,0x21,0xE3,0x7A,
+0x59,0x7C,0x57,0xC0,0x81,0xDC,0xB6,0x18,0x2C,0x25,0xE2,0xB5,0x33,0xB7,0x6F,0xF6,
+0x75,0x6A,0x6D,0xEC,0xE8,0x7A,0x79,0x71,0xF1,0x02,0x18,0x68,0x01,0x88,0x62,0xFB,
+0xE8,0x10,0x8A,0x71,0x20,0xF0,0x3B,0xB9,0x14,0x5B,0xA4,0x8D,0x58,0x52,0xE1,0x78,
+0x69,0x38,0x23,0xF0,0x32,0xC1,0x18,0xAB,0xB6,0x84,0xD9,0x2F,0x8D,0xE4,0x82,0x1B,
+0xD2,0x27,0x87,0x4B,0x21,0xD0,0x1A,0xB8,0x74,0xBF,0x20,0xED,0x66,0xC1,0x4C,0xD5,
+0x16,0xBF,0xDB,0x8F,0xB2,0xC9,0x90,0x2B,0x5E,0xE2,0x57,0xC7,0x37,0x93,0x4F,0xD6,
+0x07,0xDF,0xAA,0x9E,0x3E,0xD3,0x06,0xA7,0x2A,0x42,0x83,0xB3,0x1C,0x26,0xD1,0x48,
+0x56,0x3F,0x1B,0xCF,0x58,0x36,0x85,0xC1,0xC1,0x76,0x5C,0x58,0x74,0xDF,0x40,0xD9,
+0x88,0x94,0x6E,0x11,0x65,0x40,0xCE,0xFC,0x01,0x3E,0xD4,0x98,0xDA,0x98,0xA9,0x30,
+0x22,0xEB,0xBB,0xBB,0x1D,0x86,0x70,0x84,0x66,0x9C,0x11,0xFF,0x56,0xF4,0x49,0xD0,
+0x27,0xDB,0x8E,0xBE,0xB8,0xBA,0xE9,0x21,0x9C,0xD9,0xAE,0x05,0xA9,0xE1,0xA3,0x3A,
+0xAA,0xE1,0x39,0x33,0x83,0xAD,0xC5,0x1A,0x64,0xEF,0x60,0xFD,0x63,0xF3,0x7B,0xE2,
+0xAF,0xD1,0x0C,0x36,0x4E,0x17,0xB2,0xD7,0x80,0x97,0xFC,0x19,0x87,0x66,0x0A,0x93,
+0xA1,0xB2,0x61,0x38,0x97,0xFD,0x81,0x0E,0xD9,0x2C,0x1E,0x40,0x9B,0xDE,0xAE,0x37,
+0x61,0x3A,0x29,0xF8,0xA2,0x89,0xC0,0x3B,0x4D,0xE0,0x46,0xD4,0x02,0x94,0x7D,0xE4,
+0x7E,0x39,0x35,0xE7,0x69,0x52,0xD0,0xF0,0x54,0x9B,0x24,0xCD,0x2B,0x2B,0xEB,0x72,
+0x5E,0x3D,0x11,0xC7,0x37,0xF1,0x2D,0xAE,0xCB,0x0F,0x2F,0x52,0x9F,0xFA,0x8E,0x17,
+0xCA,0x65,0xDD,0x53,0x26,0x91,0x5C,0xBF,0x0E,0x72,0x97,0x97,0xB4,0x4F,0x10,0x89,
+0xB1,0xF2,0x31,0x28,0xBD,0x8A,0xDC,0x24,0x08,0x15,0xF6,0x91,0x09,0x00,0xE2,0x7B,
+0x9C,0xC4,0x2A,0x05,0x5C,0x26,0x91,0xC5,0xFC,0x3D,0x2A,0x65,0x5E,0x7C,0xC9,0x50,
+0x28,0x98,0xC2,0xB1,0x04,0xE4,0x0B,0x9D,0x84,0x83,0xEC,0x1D,0xBB,0xFF,0xAF,0x36,
+0x7D,0x68,0x67,0xE4,0xBC,0xAA,0xFD,0x25,0xCD,0x68,0x4E,0x54,0x6B,0x7B,0xFB,0x62,
+0x1A,0x4C,0x07,0xE5,0xDD,0x73,0x00,0x25,0xED,0x14,0x57,0x01,0x51,0x75,0x8A,0x07,
+0xC2,0x94,0xCD,0xF7,0xEB,0x8B,0xCE,0xDD,0xC1,0x03,0x6C,0x3A,0xDC,0x4F,0x3D,0x8A,
+0xB3,0xE5,0x29,0x62,0x93,0x6F,0x52,0x39,0xB6,0xB9,0xA1,0xF7,0xD9,0x7F,0x08,0x8F,
+0x17,0x41,0x35,0xDA,0x28,0x36,0xB0,0x60,0x85,0x53,0x78,0x2E,0xD7,0x1C,0x65,0x81,
+0x68,0x3E,0xB2,0x22,0x46,0xC5,0x2D,0x93,0x02,0x7D,0xD1,0x87,0x71,0x71,0xAE,0x27,
+0xF9,0xAF,0xDA,0xDB,0x72,0x2E,0xF2,0x78,0x81,0x98,0xB7,0xE1,0x20,0x91,0x1F,0x76,
+0x10,0x46,0x74,0x9C,0x3A,0xEE,0x7A,0xB8,0xCA,0xEE,0x8A,0xDC,0xFE,0x3A,0x6A,0xA8,
+0xF0,0xA6,0xF8,0xF0,0x98,0x89,0xBF,0xDF,0x74,0x28,0xF2,0xA4,0x54,0x45,0xBF,0x02,
+0x5B,0x0D,0xA7,0x04,0x11,0xE7,0x58,0xB1,0xD8,0x24,0x52,0x04,0xC7,0x5C,0x35,0x91,
+0x70,0x26,0xF0,0x78,0x39,0x13,0x84,0x45,0x95,0x88,0xB3,0xE5,0xEA,0x6A,0x2E,0xBC,
+0x16,0x40,0x15,0xFB,0x87,0x6B,0x42,0x3D,0x0F,0x4A,0xEB,0xBD,0x5E,0x36,0xC6,0x08,
+0x42,0x14,0xC5,0x7F,0x6C,0x22,0xE0,0x74,0xF9,0x04,0x53,0x05,0x0B,0xC6,0x63,0x5D,
+0xC4,0x92,0xAC,0x90,0xE4,0xA2,0xE8,0xF4,0xC4,0x27,0x4D,0x1B,0x17,0x94,0x2D,0x41,
+0x52,0x04,0x85,0x2F,0x9F,0xBB,0x8A,0xED,0xD4,0xFC,0x86,0xD0,0x08,0x97,0x31,0x5E,
+0x37,0x61,0x31,0xFE,0x0B,0x24,0x81,0x72,0x29,0x5F,0xD8,0x8E,0x28,0x93,0x15,0x7E,
+0xA9,0xFF,0x1A,0x4B,0x76,0xE1,0x39,0xB7,0x58,0x3F,0xC9,0x9F,0xBC,0xCB,0xD9,0xEA,
+0xA0,0xF6,0x38,0x60,0x8B,0xBF,0x9A,0xE9,0x0C,0xB4,0x16,0x40,0x05,0xA5,0x0E,0x53,
+0xF3,0xA5,0xA9,0xA2,0xA9,0x43,0x44,0x15,0xFC,0x20,0x72,0x24,0x02,0xE4,0x48,0x54,
+0x71,0x27,0xD0,0x59,0x57,0xE0,0x19,0xB6,0xD3,0xC9,0xB4,0xE2,0x74,0x41,0x9B,0x22,
+0xFD,0xAB,0xCA,0xCF,0xD2,0x5A,0x26,0x0C,0x73,0x1D,0xC0,0x96,0x18,0xD7,0x61,0x4E,
+0x32,0x64,0x01,0xCB,0xEC,0xB9,0xFB,0xEF,0x8D,0x40,0x63,0x35,0xDF,0x1E,0x6F,0x89,
+0x65,0x33,0x80,0x1D,0x44,0xD6,0x3C,0x80,0x37,0x4D,0xD4,0x82,0x3B,0x82,0x17,0x6D,
+0x9D,0xCB,0x4E,0x2B,0xFF,0x8F,0xDE,0xD9,0x50,0x2C,0xD2,0x84,0xEC,0x0B,0x49,0xBA,
+0xD3,0x85,0xAD,0x86,0x1A,0x01,0xB5,0x57,0x0A,0x6E,0xCA,0x9C,0x9D,0xEF,0xDC,0xCB,
+0x58,0x0E,0xF6,0x56,0x5F,0xFB,0x0A,0xAD,0x3F,0x5E,0xCF,0x99,0x9E,0xBE,0x8E,0xC8,
+0x3B,0x6D,0x23,0xE0,0x80,0x59,0x77,0x0F,0x1C,0x6F,0xDD,0x8B,0x1F,0x96,0x27,0x49,
+0xF5,0xA3,0xC8,0xC5,0xBB,0x9B,0x8E,0xCD,0x1E,0x7E,0xCE,0x98,0xA4,0x89,0x83,0xF2,
+0xF6,0xA0,0x99,0x97,0xE6,0xB1,0xF9,0xE7,0x94,0x67,0x5D,0x0B,0x60,0x11,0xDF,0x36,
+0x1F,0x49,0x37,0xD0,0xAF,0x9F,0x9E,0xC9,0x09,0x90,0x37,0x61,0x30,0xD1,0x4F,0x66,
+0x5A,0x0C,0x87,0x25,0xE3,0x90,0xDD,0xC6,0xF6,0x22,0x7A,0x2C,0x09,0xB7,0x10,0x5F,
+0xD6,0x80,0x9D,0xB3,0x21,0xC3,0x4C,0x95,0xB2,0x72,0x6E,0x38,0x2F,0xD2,0x53,0x79,
+0xDB,0x8D,0xAF,0x8C,0x06,0x1E,0xB6,0x48,0x7D,0xD4,0x07,0x51,0x03,0xC4,0x69,0x55,
+0x12,0x44,0x05,0xEF,0x7B,0xDB,0x0E,0x8D,0xE1,0xCC,0x83,0xD5,0xE8,0x1B,0x5D,0xBE,
+0xD1,0x87,0xDC,0xF5,0x70,0x3D,0xE3,0x6B,0xEE,0xEA,0xAA,0xFC,0x70,0x51,0x8F,0x26,
+0x09,0x5F,0x16,0xE7,0xC8,0x99,0xFF,0xCF,0xA4,0x73,0x79,0x2F,0x1A,0xA6,0x12,0x4C,
+0x3F,0x69,0x33,0xF4,0xDE,0x8E,0xFE,0xD8,0x5C,0xF4,0x06,0x50,0x56,0x34,0xCC,0x00,
+0xE4,0xB2,0xA8,0xB4,0xD6,0x95,0xED,0xC3,0x34,0xB3,0x29,0x7F,0x97,0x9C,0xA5,0xC1,
+0x4A,0x1C,0xC7,0x75,0xD7,0x7B,0x02,0x2D,0x4A,0xF5,0x11,0x47,0x32,0xA0,0x3C,0x64,
+0xB0,0xE6,0x78,0x30,0x55,0xF3,0x08,0xA5,0x84,0xBC,0x96,0xC0,0x00,0x95,0x3B,0x56,
+0xFA,0xAC,0x8B,0x89,0x96,0x4E,0x76,0x18,0xBA,0x61,0x75,0x23,0x3F,0x92,0x03,0x69,
+0x7B,0x2D,0xA3,0x20,0x77,0x0F,0xD6,0x59,0xAD,0x8F,0x8C,0xDA,0xB0,0xD9,0xC7,0xE6,
+0x92,0xC4,0x0D,0x67,0x9A,0x9A,0xAE,0xCC,0xB5,0x47,0x5C,0x0A,0x65,0x21,0xEA,0x33,
+0x28,0x7E,0x32,0xE2,0xB8,0x66,0x70,0x30,0x6D,0x0F,0xCC,0x9A,0x47,0x54,0xBD,0x11,
+0xE8,0xBE,0xBA,0xAA,0x54,0x1D,0xE7,0x4B,0x43,0x09,0xE4,0xB2,0xF4,0x49,0x13,0xA2,
+0xAA,0xFC,0x4B,0x19,0xC3,0x7F,0x12,0x29,0x4C,0x2F,0xCD,0x9B,0x81,0xBD,0x92,0xD7,
+0x2A,0x7C,0x43,0x91,0xA1,0x58,0x57,0x0E,0xAC,0x60,0x62,0x34,0x4F,0x56,0xB7,0x19,
+0x85,0xD3,0x0C,0x71,0x42,0x0A,0xE6,0x5C,0xD5,0x13,0x68,0x3E,0xFA,0x2A,0x7E,0xAC,
+0x44,0x12,0xA4,0x18,0x00,0xC2,0x6C,0x94,0x36,0xA2,0x3A,0x6C,0x38,0xD3,0x45,0x6E,
+0x86,0xD0,0x5D,0x23,0x5B,0x34,0xC1,0x62,0x52,0x3D,0xC1,0x97,0xF0,0x59,0x07,0xA6,
+0x6A,0x3C,0xC3,0x51,0x14,0xC6,0x7C,0x90,0xC0,0xEC,0x82,0xD4,0x6A,0x62,0xA6,0x3C,
+0xFF,0xA9,0xBB,0xBC,0xF8,0xBD,0xEB,0xEB,0x2A,0xA1,0x25,0x73,0xDA,0x2E,0x5A,0x8C,
+0xAF,0xF9,0x7B,0x2C,0xA3,0x4B,0x46,0x1D,0xF1,0x17,0x48,0x1E,0x21,0xB1,0x3E,0x77,
+0x7C,0x2A,0xE2,0x66,0xD1,0xA7,0xD8,0xF1,0xB9,0x9F,0x88,0xDE,0x31,0xF1,0x6E,0x67,
+0xA7,0xF1,0x79,0x26,0x88,0x42,0x64,0x14,0xC9,0x10,0x77,0x21,0x76,0x30,0xE8,0x20,
+0xBF,0xE9,0x3B,0x7C,0x32,0xF5,0x69,0xA3,0xCD,0xDB,0xB8,0xEE,0x91,0xFD,0xC2,0xC7,
+0xA1,0xF7,0x18,0x41,0x9D,0xA8,0x9B,0xFE,0x5E,0xE5,0x15,0x43,0xAD,0xAB,0xA8,0xFB,
+0x03,0x55,0x65,0x9E,0x99,0x67,0x50,0x31,0xA0,0xB8,0xB6,0xE0,0x9C,0xCF,0xFD,0xCA,
+0x63,0x35,0xE1,0x7A,0x0D,0xF8,0x5B,0xAE,0x6B,0xD5,0x10,0x46,0xE2,0x68,0x24,0xB4,
+0xBB,0xED,0x2B,0x68,0xE9,0x98,0xDF,0xCE,0xF3,0x06,0x5B,0x0D,0x50,0x55,0xAB,0x06,
+0xF8,0xAE,0xFA,0xFA,0x38,0xFD,0x6B,0xAB,0x64,0xF3,0x39,0x6F,0x23,0xC0,0x4D,0x75,
+0x7A,0x2C,0x83,0x01,0xF2,0xB5,0xE9,0xE3,0x4E,0x3E,0xDE,0x88,0x1B,0x86,0x33,0x4D,
+0x83,0xD5,0x6D,0x16,0x1B,0xEF,0x5A,0xB9,0xB0,0x63,0x7D,0x2B,0x93,0x8C,0xB1,0xC5,
+0xD2,0x84,0x8D,0xA7,0xCE,0x45,0x25,0x13,0x82,0x66,0x4A,0x1C,0xE3,0x48,0x05,0xB5,
+0xEC,0xBA,0xAA,0xBE,0x47,0x2B,0xC2,0x7D,0x79,0x1F,0xC8,0x9E,0x19,0xF7,0x40,0x4F,
+0xC1,0xF4,0x3F,0x0B,0x3B,0x80,0x0F,0x85,0xD4,0xE0,0xA0,0x4A,0x49,0xBA,0x8E,0xF9,
+0xE8,0x4B,0xA9,0x9D,0x22,0xFB,0x16,0xE7,0x1F,0x2B,0xB0,0x91,0x55,0xA5,0x91,0xFA,
+0x5C,0x9A,0xCC,0xF8,0xBD,0x6F,0x89,0xEC,0x41,0x75,0x4D,0x32,0x71,0x85,0xB1,0xFE,
+0x77,0x2F,0x52,0x66,0x78,0x12,0x4C,0x54,0x50,0x64,0x3C,0x52,0xBD,0x11,0x25,0xA6,
+0xCA,0x60,0xA0,0x94,0x7E,0x75,0x4A,0x35,0xCB,0xFF,0xBC,0x49,0x51,0x6A,0x5E,0x31,
+0x9D,0x1C,0x8B,0xBF,0x8A,0x5D,0xBE,0xE9,0x2A,0x1E,0xF1,0xE5,0x4A,0x47,0x73,0x07,
+0x78,0x9F,0xED,0xD9,0xF2,0xE3,0xC6,0x2F,0x72,0x46,0x6B,0x27,0xA2,0xF3,0xC7,0x5B,
+0xA8,0x1B,0xB9,0x8D,0xBB,0x08,0x8F,0x8D,0xCA,0xFE,0x9D,0x69,0x07,0xA6,0x92,0xAB,
+0xDF,0x46,0x93,0xA7,0x5C,0x22,0x68,0x40,0x48,0x7C,0x66,0x10,0xCA,0xDC,0xE8,0x1C,
+0xB7,0xBF,0x02,0x36,0xB7,0x16,0x83,0x9F,0x2E,0x1A,0xE5,0xF5,0x7B,0x8D,0xB9,0xFC,
+0x19,0xF8,0xEB,0xDF,0x77,0x5E,0x43,0x17,0x13,0x27,0xAE,0x83,0x0E,0x53,0x67,0x57,
+0x95,0x94,0x0B,0x3F,0x10,0xFC,0x24,0xD2,0x6B,0x5F,0x10,0x45,0xDB,0xF9,0xCD,0x28,
+0x6A,0x81,0xE1,0xD5,0xEA,0xB9,0xDE,0x6D,0xCE,0xFA,0x89,0x79,0xEE,0xFC,0xC8,0x18,
+0xA0,0x93,0x39,0x0D,0x12,0x8F,0x26,0xA3,0xF5,0xC1,0xA5,0x6E,0x59,0x71,0x45,0x22,
+0x44,0x06,0x48,0x7C,0xF6,0xF7,0xC2,0x3F,0x38,0x0C,0xD2,0xD4,0x6C,0x74,0x40,0x12,
+0x58,0xBE,0xEC,0xD8,0xAF,0x4C,0x9B,0xDD,0xE1,0xD5,0xE1,0x3E,0x01,0x7A,0x4E,0x71,
+0x5A,0xB4,0xE4,0xD0,0x06,0xCB,0x32,0xF3,0xAE,0x9A,0x6D,0xFD,0x2B,0x9D,0xA9,0xBC,
+0xEA,0x41,0xA1,0x95,0x09,0x87,0x3D,0xB0,0xE3,0xD7,0x92,0x4F,0x74,0xA4,0x90,0xDA,
+0xF0,0xD7,0x2D,0x19,0x5A,0x45,0x6E,0x21,0xF7,0xC3,0xD6,0x1F,0x37,0x82,0xB6,0xBF,
+0xC2,0xE8,0x20,0x14,0x87,0x62,0xB3,0xDB,0x9E,0xAA,0x19,0xB9,0x0D,0xAE,0x9A,0xA9,
+0x9B,0x32,0xA3,0x97,0x62,0x3B,0x56,0x67,0x56,0x62,0x5B,0x33,0xEA,0x33,0x07,0xD3,
+0x4E,0x84,0xC0,0xF4,0xC0,0xE4,0xF4,0x1A,0x44,0x70,0x78,0x02,0x43,0xB2,0x86,0xFB,
+0xA5,0xA1,0x0E,0x3A,0x02,0xDF,0x36,0xE3,0x57,0x63,0x7A,0x13,0xE7,0x09,0x3D,0xE4,
+0xF4,0xF3,0x0D,0x39,0x28,0x82,0x1C,0x94,0xC4,0xF0,0xF0,0x0A,0xBB,0xCD,0xF9,0x7C,
+0x6C,0xAF,0xC9,0xFD,0x20,0x88,0x14,0x96,0xFA,0xCE,0xE9,0x2D,0x0B,0x72,0x46,0x73,
+0xED,0x79,0x9E,0xAA,0x4F,0x20,0x7B,0x51,0x4D,0x79,0x53,0x20,0x73,0x96,0xA2,0xEF,
+0x23,0x4F,0x66,0x52,0x16,0x9B,0x22,0xB3,0x4B,0x7F,0x34,0x41,0x2D,0x41,0x75,0x66,
+0xC0,0xE2,0x28,0x1C,0x98,0x7E,0xAC,0xD8,0x53,0x67,0x6E,0x03,0xB8,0x30,0x04,0x82,
+0x55,0x04,0x5B,0x6F,0x26,0xEF,0x12,0xF7,0x8F,0xBB,0x68,0xD9,0x6A,0xA8,0x9C,0xC8,
+0xC4,0xC6,0x08,0x3C,0xDA,0xCD,0xEE,0x29,0xEB,0xDF,0x98,0x4D,0x2C,0xAF,0x9B,0x89,
+0xBD,0x3D,0x8A,0xBE,0x79,0x33,0x4D,0x74,0x2D,0x19,0xB7,0xA4,0xFF,0xD9,0xED,0x2C,
+0xA7,0xAB,0x06,0x32,0xC3,0xB6,0xF7,0x4B,0x59,0x6D,0x17,0x70,0x05,0xB5,0x81,0xBA,
+0x26,0x7D,0x51,0x65,0xE6,0xA7,0xD2,0x7F,0x54,0x60,0x28,0x42,0xF6,0x2C,0x18,0xD0,
+0x2E,0xF5,0xD1,0xE5,0xC1,0xC5,0xF5,0x3A,0xFB,0xCF,0xC8,0x0D,0xD3,0xE2,0xD6,0x3B,
+0x61,0x15,0x7E,0x4A,0x93,0x26,0xA7,0x8B,0xF1,0xC5,0xB1,0x7E,0x1A,0x57,0x63,0x47,
+0xC9,0x7C,0xBF,0x8B,0x5B,0x64,0x6F,0x01,0xA3,0x97,0x52,0xCF,0x21,0x95,0xA1,0xBE,
+0xCE,0x44,0x80,0xB4,0x96,0x13,0xA2,0xBB,0x15,0x21,0xC9,0xE2,0xA3,0x1D,0x29,0xB4,
+0x60,0x03,0x69,0x5D,0x03,0xFE,0x37,0xC3,0xC5,0xF1,0xD1,0x2A,0x8E,0xC8,0xFC,0x4C,
+0x5F,0x86,0xD3,0xE7,0xFF,0xDC,0xCB,0x1D,0x55,0x61,0x09,0x62,0xD9,0xEA,0xDE,0x39,
+0xD7,0xCE,0x13,0x27,0x84,0x30,0xB0,0x8A,0x7D,0x49,0x27,0x64,0x77,0x59,0x6D,0x24,
+0xC5,0xD0,0x1F,0x2B,0x0C,0xB2,0x38,0x80,0xB0,0x84,0x50,0xDE,0xC1,0x3A,0x0E,0xF1,
+0xAA,0x11,0xB1,0x85,0xE2,0xB3,0xD6,0x6F,0x88,0xBC,0x2E,0x98,0x58,0x9F,0xAB,0xCD,
+0x15,0x54,0x4B,0x7F,0x6A,0x31,0x5E,0x65,0x0F,0x3B,0xE0,0xD1,0x5F,0xAD,0x99,0xF8,
+0xE6,0xED,0x01,0x35,0xD7,0xF2,0xE3,0x1B,0xEC,0xD8,0xDE,0x0C,0x67,0x92,0xA6,0xFF,
+0x68,0x8B,0xE9,0xDD,0x42,0x1F,0x76,0x63,0x1A,0x2E,0x85,0xA1,0x39,0x45,0x71,0x76,
+0xB1,0x91,0x2A,0x1E,0xA4,0x14,0x90,0x8E,0x33,0x07,0x8A,0x87,0xEB,0xDD,0xE9,0x3C,
+0x7B,0x83,0xF2,0xC6,0x00,0xAC,0x34,0x92,0xE0,0xD4,0xC0,0x1E,0x76,0xB7,0x83,0xCB,
+0x5E,0x90,0xC4,0xF0,0x17,0xBA,0x23,0x93,0x9F,0xAB,0x38,0x99,0xA8,0xFB,0xCF,0x59,
+0xEE,0x65,0x81,0xB5,0x2C,0x96,0x18,0x84,0x47,0x73,0x2A,0x53,0x57,0xB6,0x82,0xEB,
+0x00,0x72,0x78,0x4C,0x76,0x7F,0x42,0x37,0xE4,0xD0,0xD4,0x0E,0xD5,0x3E,0x0A,0xE1,
+0xE0,0xC3,0x29,0x1D,0xDC,0xAA,0xE8,0x48,0xD3,0xE7,0xE6,0x0B,0x61,0x4E,0x7A,0x25,
+0xC7,0xDA,0x17,0x23,0xB2,0x23,0x86,0xAF,0x51,0x65,0x1D,0x72,0x24,0xB4,0x80,0x9A,
+0x08,0xFA,0xF8,0xCC,0xFE,0xFD,0xCA,0x3D,0x2F,0x1B,0xC4,0xD5,0x99,0x31,0x05,0xA2,
+0x8C,0x1E,0x98,0xAC,0x61,0x69,0x55,0x36,0x89,0xBD,0x0F,0xB8,0x40,0x4F,0x7B,0x05,
+0x46,0x0C,0x40,0x74,0x01,0x8D,0x35,0xB2,0xC2,0xF6,0x97,0x6B,0xCF,0xFD,0xC9,0x38,
+0x97,0x9E,0x03,0x37,0x64,0x5C,0x50,0x06,0xA0,0x94,0x00,0x9E,0x29,0x8E,0xBA,0xAD,
+0x8F,0x02,0x87,0xB3,0x3E,0xB5,0x0A,0xB5,0x11,0x25,0xDD,0xF2,0x0A,0x9C,0xA8,0x9C,
+0x14,0x42,0x5C,0x68,0xDB,0xEC,0xEF,0x09,0xEE,0xDA,0xAD,0x7D,0x8C,0xDB,0xEF,0x5D,
+0x56,0x18,0x44,0x70,0x6C,0x56,0x58,0x04,0x21,0x15,0xA9,0xB6,0xA6,0x3C,0x08,0x90,
+0x75,0x25,0x5A,0x6E,0x31,0xF9,0x05,0xF6,0x8C,0xB8,0x3A,0x88,0xCC,0x00,0x34,0xC6,
+0x30,0x47,0x7D,0x49,0xAD,0x3F,0x99,0xAC,0x58,0x6C,0x36,0x50,0x63,0x5D,0x69,0x34,
+0xAE,0x35,0x91,0xA5,0x5F,0x70,0x6B,0x11,0x1B,0x2F,0xA4,0x81,0xC2,0xC7,0xF3,0x0F,
+0xD6,0xD8,0x04,0x30,0x24,0x9C,0x10,0x86,0xBC,0x88,0x4E,0xCC,0x3E,0x77,0x43,0x43,
+0x16,0x48,0x54,0x60,0xD2,0xC7,0xE6,0x2B,0xD1,0xE5,0x95,0x7A,0x5A,0x8C,0xB8,0xDC,
+0x48,0x6A,0x0D,0xD2,0x88,0xF6,0x91,0x8E,0xB8,0x94,0xF3,0xBB,0x80,0xE7,0x2D,0x5D,
+0x04,0x65,0x02,0x91,0x38,0xB3,0xD4,0x7B,0xDE,0xAD,0xCA,0xE4,0xCD,0xAA,0x9F,0xA2,
+0xAD,0xE4,0x83,0xB9,0xA0,0x77,0x10,0x27,0xCB,0x9E,0xF9,0xC2,0xFD,0x9A,0xDB,0xD6,
+0x8A,0x39,0x5E,0x43,0x92,0x7A,0x1D,0x18,0xDD,0xB2,0xD5,0xF8,0x94,0xF3,0x7D,0x19,
+0x2B,0xA3,0xC4,0x78,0x2C,0x97,0xF0,0x4B,0x99,0x82,0xE5,0x8C,0x27,0x40,0x60,0xB7,
+0xF4,0x01,0x66,0x05,0xF9,0xF4,0x93,0xFD,0xB1,0x03,0x64,0x25,0x35,0x52,0x51,0x94,
+0x4D,0x4B,0x2C,0xF6,0x96,0x5A,0x3D,0x3C,0x1E,0xFD,0x9A,0x74,0xA7,0xC0,0x68,0x3F,
+0x10,0x61,0x06,0x81,0xC7,0x59,0x3E,0x6E,0x86,0x39,0x5E,0x28,0x34,0x53,0x71,0xB5,
+0xEF,0x2C,0x4B,0x33,0x8F,0xC9,0xAE,0xB6,0x8D,0xA6,0xC1,0xBC,0x2E,0x49,0x42,0x9C,
+0x47,0x43,0x24,0xF4,0x0E,0x9E,0xF9,0x60,0x11,0x42,0x25,0xC4,0x99,0xFE,0x4F,0x26,
+0xB1,0xFB,0x9C,0xBA,0xA2,0x7F,0x18,0x2D,0xE0,0x00,0x67,0x77,0x30,0x57,0x61,0xA1,
+0x54,0x75,0x12,0xD1,0x41,0x31,0x56,0x80,0x04,0x71,0x16,0xE2,0x28,0x4F,0x23,0xFB,
+0x02,0xB9,0xDE,0x4B,0xA6,0x5F,0x38,0x09,0xEB,0x9F,0xF8,0xE3,0x88,0xEF,0x2F,0x57,
+0x20,0x45,0x22,0x95,0x37,0x0C,0x6B,0xCB,0xAA,0x98,0xFF,0xA5,0xEC,0x8B,0xBB,0xA7,
+0x79,0xA0,0xC7,0x29,0xC5,0x51,0x36,0x64,0xD8,0x85,0xE2,0xCA,0x3A,0x5D,0x12,0xD8,
+0xFC,0x1A,0x7D,0x16,0xDF,0xDD,0xBA,0xF2,0x4E,0xE9,0x8E,0x30,0x4E,0x29,0xC6,0x78,
+0x34,0x41,0x26,0x85,0x8A,0xFE,0x99,0x84,0x98,0x95,0xF2,0x9A,0x7C,0x1B,0xF3,0x7F,
+0x4F,0x58,0x3F,0xE7,0xA3,0x68,0x0F,0x3B,0x9B,0x8A,0xED,0x86,0xB7,0xD0,0x28,0x6F,
+0xDD,0x1B,0x7C,0x36,0x15,0x05,0x62,0xE0,0xC4,0x21,0x46,0x72,0x33,0x54,0x30,0xF3,
+0xA0,0xDE,0xB9,0x8E,0x3E,0x9B,0xFC,0x55,0x9C,0xB5,0xD2,0xBE,0x22,0x45,0x50,0x82,
+0x92,0xE9,0x8E,0x8B,0xFF,0xDC,0xBB,0xD3,0x65,0x77,0x10,0x85,0x49,0x2E,0x87,0x3E,
+0xBA,0x1D,0x7A,0x57,0xA8,0xF7,0x90,0xAF,0x53,0x5A,0x3D,0x9E,0xA8,0xCF,0x2B,0x73,
+0xC7,0xD8,0xBF,0xEF,0xCA,0xEE,0x89,0xD4,0xC9,0x96,0xF1,0xC8,0xA9,0xCE,0x0B,0x52,
+0x2C,0x91,0xF6,0x4D,0x1A,0xBA,0xDD,0x50,0x39,0xC3,0xA4,0x6D,0x11,0x76,0x45,0xA4,
+0xD9,0xD4,0xB3,0xFD,0xD5,0x55,0x32,0x70,0x9E,0xBD,0xDA,0xB4,0x4D,0x2A,0x97,0x2A,
+0xED,0x3F,0x58,0x22,0xBD,0xC4,0xA3,0x89,0x7E,0xEC,0x8B,0x05,0x2B,0x4C,0x72,0xA9,
+0x33,0x73,0x14,0xB0,0xF7,0x5C,0x3B,0x5B,0x4A,0xC9,0xAE,0x14,0x08,0x6F,0x27,0xDF,
+0x91,0x14,0x73,0x75,0x7B,0xBC,0xDB,0x37,0x35,0x63,0x04,0xC1,0x70,0x17,0xE1,0x61,
+0x40,0x71,0x16,0xC1,0xC2,0x6E,0x09,0x5C,0x40,0x41,0x26,0x96,0x96,0xF1,0x0C,0x6A,
+0x76,0x89,0xEE,0x0F,0x08,0xB6,0xD1,0x4E,0x7A,0xCC,0xAB,0x21,0xAD,0xCA,0x1B,0x46,
+0x83,0xCC,0xAB,0xBF,0x3A,0xBB,0xDC,0x71,0x13,0x4A,0x2D,0xCE,0x82,0xE5,0x5C,0x2E,
+0x38,0x95,0xF2,0x5D,0x26,0x1F,0x78,0xC9,0x70,0x44,0x23,0xA3,0x5B,0x3C,0xB6,0x1D,
+0xB0,0x15,0x72,0x55,0x62,0x2F,0x48,0xBD,0x83,0x0E,0x69,0x1A,0x87,0xE0,0x6C,0x1B,
+0x59,0x4F,0x28,0xE6,0x8C,0xD6,0xB1,0xAA,0x89,0x86,0xE1,0x98,0x24,0x43,0x31,0xE5,
+0xEC,0xD1,0xB6,0xCD,0xA5,0x40,0x27,0x15,0xF8,0x84,0xE3,0xEB,0x32,0x55,0x10,0xD2,
+0x65,0xBF,0xD8,0x2A,0x82,0x7E,0x19,0x0C,0x47,0x7E,0x19,0xAE,0xB0,0xD7,0x69,0x29,
+0xA6,0x02,0x65,0x54,0xEE,0xCF,0xA8,0xD1,0x67,0x7F,0x18,0x8F,0xEA,0x8D,0xDA,0xC0,
+0x32,0x9D,0xFA,0x5F,0x6A,0xAF,0xC8,0x35,0xC0,0x01,0x66,0x56,0x4C,0x2B,0xB7,0x0B,
+0x93,0x07,0x60,0x64,0xF5,0x54,0x33,0x51,0xCF,0xBE,0xD9,0xE6,0xC3,0xA4,0xFC,0xCF,
+0x42,0x62,0x05,0xD0,0x24,0x17,0x70,0xC3,0x5A,0xCD,0xAA,0x00,0xA1,0xC6,0x09,0x58,
+0x23,0xB8,0xDF,0x6B,0x76,0x0B,0x6C,0x8D,0x3F,0xEB,0x8C,0x43,0x8D,0xEA,0x1F,0x62,
+0x7A,0x5D,0x3A,0xD7,0xED,0xD0,0xB7,0xCD,0xFE,0xAC,0xCB,0xC5,0x72,0x15,0x90,0x12,
+0x36,0x52,0x35,0x94,0x17,0x0D,0x6A,0xEA,0xA4,0x30,0x57,0x03,0xEF,0x88,0xEA,0xF5,
+0x99,0x0F,0x68,0x66,0x34,0x13,0x74,0xD7,0xF2,0x0C,0x6B,0x69,0x42,0x25,0xD4,0x66,
+0xBF,0x3C,0x5B,0x73,0xCC,0xC6,0xA1,0xFA,0x6D,0xF7,0x90,0x0D,0x78,0x1F,0xE3,0x6B,
+0xF0,0xCE,0xA9,0xCE,0x52,0x2A,0x4D,0x88,0x56,0x6D,0x0A,0xAC,0x3B,0x5C,0x32,0xF9,
+0x08,0xB1,0xD6,0x49,0x74,0x03,0x64,0x87,0xBE,0xBC,0xDB,0x95,0xB2,0xD5,0x18,0x5A,
+0x53,0x47,0x20,0xE4,0xB4,0x53,0x34,0x17,0x21,0x47,0x20,0xF1,0xDF,0xB8,0xAE,0x81,
+0x0A,0xA2,0xC5,0x58,0x4C,0x86,0xE1,0x3A,0x59,0xD2,0xB5,0x1C,0x98,0xFF,0x6F,0x07,
+0x68,0x85,0xE2,0x1D,0x44,0x06,0x61,0xB2,0xB2,0x1C,0x7B,0x39,0x37,0x50,0x20,0xE7,
+0xAB,0x38,0x5F,0x63,0xAB,0xE8,0x8F,0xB3,0xDC,0xA5,0xC2,0xEE,0xC0,0xA7,0xAD,0x9D,
+0xE9,0xF0,0x97,0xE9,0x03,0x29,0x4E,0xDA,0x25,0x67,0x00,0xD5,0x92,0xF5,0x1C,0x7E,
+0x31,0x60,0x07,0xA1,0x02,0x3E,0x59,0xCC,0x2E,0xF8,0x9F,0x41,0xA6,0xC1,0x48,0x1E,
+0xDC,0xF5,0x92,0xD9,0xAC,0xD7,0xB0,0x8B,0xD6,0x2D,0x4A,0x6C,0x76,0x11,0x80,0x06,
+0xFF,0xE7,0x80,0xE8,0xB5,0x44,0x23,0x01,0x46,0x69,0x0E,0xB8,0x1E,0x79,0x06,0xE8,
+0x13,0x9C,0xFB,0x7F,0x3D,0x84,0xE3,0x49,0x5B,0xDA,0xBD,0x16,0x36,0x51,0x00,0xC6,
+0x7C,0x81,0xE6,0x0D,0xC8,0xE6,0x81,0xDE,0xAF,0xAF,0xC8,0x97,0xEB,0x8C,0xFA,0xE1,
+0x7D,0x6F,0x08,0xE2,0xA7,0x48,0x2F,0x1F,0x93,0x0A,0x6D,0x0E,0xD3,0xB4,0xBC,0x9F,
+0x3D,0xB4,0xD3,0x79,0x84,0x56,0x31,0x22,0x9D,0xA2,0xC5,0xA8,0x8F,0xE8,0x6E,0x11,
+0xFE,0x09,0x6E,0x07,0x77,0x1C,0x7B,0x9B,0x9A,0x9D,0xFA,0x90,0x6C,0x0B,0xB3,0x2F,
+0xDB,0xC7,0xA0,0xEC,0xD3,0x7D,0x1A,0x5E,0x5E,0xED,0x8A,0x24,0x50,0x37,0xE5,0x45,
+0xD0,0x21,0x46,0x01,0x0A,0xBE,0xD9,0x44,0x14,0x75,0x12,0xF6,0x79,0x1E,0xC3,0x4A,
+0x75,0x74,0x13,0xF1,0x3C,0x93,0xF4,0x5F,0x3B,0xCB,0xAC,0x67,0xFC,0x9B,0xFB,0xF7,
+0x63,0x63,0x04,0xF0,0x19,0xA5,0xC2,0x4C,0xA9,0x87,0xE0,0xB9,0x83,0xE4,0x7C,0x0F,
+0x95,0x17,0x28,0xA2,0x2A,0xD7,0xE8,0xDD,0xBB,0xBB,0x84,0x1F,0x43,0x7C,0x72,0x11,
+0x35,0x63,0x5C,0x76,0xBC,0xBB,0x84,0x27,0xA1,0x37,0x08,0x89,0xF9,0xC6,0x4D,0x94,
+0x4A,0xB5,0x8A,0xDF,0xCE,0xA6,0x99,0x48,0x53,0x6A,0x55,0x26,0x1C,0x23,0xF1,0xCD,
+0xBA,0xD1,0xEE,0x4B,0x8F,0xA1,0x9E,0x0E,0xC2,0x39,0x06,0xE4,0xE0,0xDF,0x2F,0xEF,
+0x16,0x71,0x4E,0x47,0x60,0x4F,0x70,0x0F,0x25,0x57,0x68,0x6D,0x2C,0x13,0xB5,0xB9,
+0x4C,0x69,0x56,0x05,0x84,0x3E,0x01,0x9A,0xC6,0x19,0x26,0xC0,0xA2,0x9D,0xDE,0x5C,
+0xCB,0xC0,0xFF,0x2B,0x75,0x7C,0x43,0x29,0x6A,0xF8,0xC7,0x8D,0x1A,0x25,0x90,0xAA,
+0x71,0x77,0x48,0x26,0xE9,0x98,0xA7,0x51,0xEB,0xAF,0x90,0x5B,0x75,0x4A,0x57,0x02,
+0x58,0x6D,0x52,0x15,0xE2,0x07,0x38,0xC5,0xA3,0x3F,0x00,0x83,0x38,0x07,0xE5,0xFD,
+0xD2,0xFE,0xC1,0x0C,0x7A,0xC3,0xFC,0x99,0xF2,0x3C,0x03,0xD1,0x12,0x2D,0x92,0xA0,
+0x79,0x6C,0x53,0x35,0xD5,0x3D,0x02,0xC8,0x9D,0x92,0xAD,0x10,0x58,0x67,0x61,0x19,
+0x5A,0x7E,0x41,0x04,0xFD,0xBC,0x83,0x61,0x48,0xF1,0xCE,0xA6,0xFA,0xC5,0x1C,0xC6,
+0xF4,0xCD,0xF2,0x19,0xB9,0x8C,0xB3,0x15,0xF6,0x1C,0x23,0xF5,0x60,0x5F,0x27,0x67,
+0x3B,0xA4,0x9B,0xBF,0xAF,0xA0,0x9F,0x2F,0xC4,0x11,0x2E,0xCA,0xBD,0x82,0xDD,0x40,
+0x4F,0x94,0xAB,0xFB,0xBA,0x93,0xAC,0x09,0x5C,0xD5,0xEA,0x96,0x3C,0x03,0xF5,0xE9,
+0xB0,0xD9,0xE6,0x49,0xDC,0xAA,0x95,0x56,0xEC,0x90,0xAF,0x63,0x33,0x0C,0xB6,0xA5,
+0xF0,0x02,0x3D,0xD2,0x14,0x7A,0x45,0x4E,0x42,0x79,0x46,0x24,0xCC,0xF3,0x39,0xD5,
+0xC3,0xDB,0xE4,0x38,0x77,0x74,0x4B,0x23,0x5E,0xDD,0xE2,0x9C,0x95,0xAA,0xDB,0x6E,
+0xAB,0xF4,0xCB,0x7F,0x1E,0xF2,0xCD,0xCC,0x6C,0xD0,0xEF,0xA3,0xD0,0xEF,0x6B,0x9B,
+0x87,0xCF,0xF0,0x68,0x24,0x7F,0x40,0x7B,0xA6,0x08,0x37,0xB1,0x28,0x17,0xA5,0xAD,
+0x8C,0x29,0x16,0x85,0x51,0x5D,0x62,0x2C,0x1F,0xDA,0xE5,0xDA,0x4D,0x72,0x11,0x7C,
+0x32,0x51,0x6E,0x43,0x2E,0xF7,0xC8,0xF9,0x93,0x3A,0x05,0xB6,0x2A,0x15,0xD4,0xDE,
+0x44,0x72,0x4D,0x16,0x1A,0xD2,0xED,0xE8,0xD9,0xA2,0x9D,0x64,0x66,0x59,0x46,0x00,
+0xC7,0x14,0x2B,0xF3,0xFA,0x83,0xBC,0x59,0xB1,0x33,0x0C,0x9D,0x8D,0xB2,0x99,0x34,
+0x49,0x48,0x77,0x21,0x5D,0xFD,0xC2,0x80,0x7E,0xDC,0xE3,0xBD,0xC8,0xF7,0x29,0xC1,
+0xBF,0xF0,0xCF,0x6F,0xAD,0xA8,0x97,0x25,0xAE,0x88,0xB7,0x39,0x81,0xBE,0x8B,0x2A,
+0x9E,0xF1,0xCE,0x4F,0x37,0x64,0x5B,0x73,0xCC,0x91,0xAE,0x42,0x44,0x7B,0x33,0x57,
+0xD3,0x10,0x2F,0xE3,0x01,0x49,0x76,0x68,0x9B,0xBA,0x85,0x3E,0xB0,0x8F,0xEF,0x7F,
+0x6F,0x7B,0x44,0x34,0xF8,0x8B,0xB4,0x53,0x5A,0xFD,0xC2,0xB8,0x87,0xB8,0xEA,0x4D,
+0x1E,0x6A,0x55,0x54,0xA0,0x1F,0x20,0x9F,0x71,0x63,0x5C,0x0D,0x42,0x7D,0x52,0x30,
+0x82,0xEE,0xD1,0x4C,0xFF,0xB4,0x8B,0x6B,0xC7,0x0E,0x31,0xD6,0x01,0x3E,0x83,0xA2,
+0x92,0x25,0x1A,0x97,0xFC,0xAB,0x94,0x77,0xEE,0x98,0xA7,0x69,0x18,0x27,0xE1,0xD9,
+0x6C,0x86,0xB9,0xCA,0x45,0x79,0x46,0x1C,0xD0,0x35,0x0A,0xFA,0x1E,0x21,0x80,0xBE,
+0xB7,0xEB,0xD4,0x7C,0xDA,0x82,0xBD,0x78,0x10,0x65,0x5A,0x6A,0xE8,0xD7,0x2D,0xE5,
+0x14,0x62,0x5D,0x56,0x32,0x53,0x6C,0x41,0x36,0x4C,0x73,0x65,0x97,0xA8,0xAA,0x1D,
+0x86,0x21,0x1E,0x87,0x09,0xC9,0xF6,0xE0,0xA8,0xA0,0x9F,0x17,0x65,0x5A,0x17,0x52,
+0x8B,0x1B,0x24,0xB0,0x96,0x32,0x0D,0x84,0x50,0x75,0x4A,0x3A,0x56,0x69,0x02,0x74,
+0x18,0xB6,0x89,0x8E,0xC0,0x0E,0x31,0xEE,0x73,0x6B,0x54,0x07,0x0B,0x34,0xF0,0xDB,
+0xFF,0x2B,0x14,0xF4,0x9A,0x92,0xAD,0x28,0x89,0xB6,0x89,0x20,0x04,0x3B,0xB3,0x97,
+0x8F,0xD4,0xEB,0x7B,0x5B,0xD5,0xEA,0xAE,0x12,0x6D,0x52,0x60,0xE1,0xDE,0x0F,0xCE,
+0xB5,0xF8,0xC7,0x6D,0x3E,0xF3,0xCC,0xED,0x40,0x71,0x4E,0x2E,0x3B,0x04,0xB4,0xAF,
+0x22,0x9A,0xA5,0x98,0xAB,0x80,0xBF,0x0B,0x91,0x32,0x0D,0xBC,0x5E,0x61,0x00,0x7E,
+0xE6,0x15,0x2A,0xD3,0xA4,0x3F,0x00,0xBB,0x0E,0xC9,0xF6,0xD8,0xC4,0xFB,0x3B,0xDF,
+0x2D,0xB3,0x8C,0xBE,0x03,0x41,0x7E,0x62,0x8A,0xA9,0x96,0x3C,0x5B,0x64,0x30,0x4B,
+0xC4,0xE9,0xD6,0x0D,0x23,0x40,0x7F,0x43,0xE6,0x18,0x27,0xE1,0xE6,0xD9,0x4E,0x88,
+0x3F,0x6B,0x54,0x74,0x9C,0xBA,0x85,0x06,0xC1,0x26,0x19,0xF8,0x88,0xB7,0xA9,0x01,
+0x08,0x7D,0x42,0x55,0xED,0xB8,0x87,0x75,0xE8,0xB0,0x8F,0x47,0x16,0x29,0x82,0xB4,
+0xF6,0xDE,0xE1,0x08,0xE7,0x30,0x0F,0xF7,0x06,0x49,0x76,0x50,0x4C,0x73,0x31,0x5D,
+0xE2,0xDA,0xE5,0x18,0xCD,0xB9,0x86,0x54,0x7D,0xC3,0xFC,0xA1,0x3A,0x05,0x94,0x8E,
+0x1A,0xA5,0x9A,0x9F,0x5F,0xF5,0xCA,0x8A,0x58,0xF5,0xCA,0xB2,0x2D,0x12,0x95,0x98,
+0xA7,0x20,0x1F,0xA7,0x70,0x4B,0x74,0x1B,0x6E,0xD8,0xE7,0xA9,0x78,0x47,0x65,0x3D,
+0xA8,0x09,0x36,0x81,0x3A,0xD3,0xEC,0xC9,0xB7,0x1B,0x24,0xB3,0x9E,0xA1,0x88,0x36,
+0xC2,0x35,0x0A,0xD7,0xFE,0xA3,0x9C,0x7D,0x13,0x7A,0x45,0x76,0x50,0x6F,0x63,0x13,
+0xFC,0xD6,0xE9,0x0A,0xF9,0x9C,0xA3,0x45,0xE0,0x30,0x0F,0xCF,0xED,0xD2,0x1D,0xD0,
+0x72,0x8A,0xB5,0xD8,0xF7,0x34,0x0B,0xE3,0xC3,0x2E,0x11,0xF2,0x36,0x09,0x86,0x90,
+0x0C,0xB2,0x8D,0x9E,0xCB,0x91,0xAE,0x7A,0xAC,0x80,0xBF,0x33,0xD8,0xE7,0x69,0x91,
+0x2B,0x6F,0x50,0x64,0x3F,0xE4,0xDB,0xFB,0x59,0xE2,0xDD,0xA4,0xC5,0xFA,0x1B,0xFE,
+0x05,0x47,0x78,0x62,0x22,0x57,0x68,0x55,0xD1,0x22,0x1D,0xEC,0xBE,0x81,0x8C,0x12,
+0xEB,0x2F,0x10,0xE4,0xB2,0x13,0x2C,0x81,0xC8,0xB1,0x8E,0x66,0xAC,0x93,0xBD,0x31,
+0xF3,0xFF,0xC0,0x2C,0x4A,0xC6,0xF9,0xAC,0x66,0x58,0x67,0x21,0x39,0x06,0xC5,0xDC,
+0x93,0xCB,0xF4,0x78,0x41,0x59,0x66,0x38,0x67,0x4F,0x70,0x37,0xA9,0x96,0x8D,0x04,
+0x70,0x99,0xA6,0xC9,0xB8,0x9B,0xA4,0x03,0xCF,0x8E,0xB1,0x5E,0x61,0x5E,0x07,0x46,
+0x0A,0x6E,0x51,0x44,0xD6,0x22,0x1D,0xD4,0x20,0x60,0x5F,0x5F,0xDC,0xE3,0x79,0x85,
+0xEA,0xC1,0xFE,0x0B,0x3D,0xEC,0xD3,0xF1,0x28,0xE0,0xDF,0xD7,0xFB,0xC4,0x3C,0xE7,
+0x6B,0x4B,0xFD,0xF2,0xAB,0xF0,0xA4,0x89,0x0B,0x04,0x5C,0x85,0x1D,0x31,0x3E,0xF1,
+0x5D,0x50,0xD0,0xDF,0x4A,0xBD,0x45,0x25,0xFF,0xF0,0x74,0x59,0x61,0x1A,0x15,0xA6,
+0xC7,0x06,0x1C,0x13,0x4B,0x9C,0x44,0x05,0x3A,0x35,0x09,0xE1,0x1A,0x03,0x0C,0xC4,
+0x37,0xA3,0x49,0x46,0xF3,0x6A,0xFC,0x4B,0x73,0x7C,0xE2,0x43,0x9E,0x57,0x58,0x14,
+0x96,0x54,0x1F,0x10,0x9E,0xB1,0x91,0xFD,0xA3,0xAC,0xFA,0x8B,0x4A,0x13,0x1C,0x84,
+0x95,0x48,0x00,0x0F,0x55,0xA1,0x5A,0x26,0xBA,0xB5,0x81,0xE9,0xF5,0x85,0x8A,0xAD,
+0xCA,0xBC,0xAB,0xA4,0xD1,0x3D,0xDE,0x3E,0xF9,0xF6,0x13,0x38,0x2E,0xE8,0xE7,0x1B,
+0x92,0x70,0x3F,0x30,0xC0,0x4C,0xCF,0x5E,0x3C,0x33,0x6E,0x80,0x9B,0x76,0x79,0x30,
+0x4E,0x58,0xCB,0xC4,0x74,0xA4,0x7B,0x02,0x93,0x9C,0x8E,0xCF,0x92,0x83,0x8C,0xCC,
+0x74,0xEF,0x46,0x49,0x4F,0x88,0x40,0x15,0x6B,0x64,0xB8,0x01,0x80,0x5B,0x54,0x06,
+0x1D,0x00,0xC0,0xCF,0x60,0xE0,0x6F,0x52,0x2E,0x21,0x4D,0xB1,0xBF,0x56,0x59,0x34,
+0x7E,0x6D,0xCE,0xC1,0xB9,0xD3,0xB6,0xB8,0x77,0x78,0xF6,0x53,0x07,0xF2,0xFD,0x28,
+0x90,0x7A,0x37,0x38,0xAF,0xE4,0xA0,0x99,0x36,0x39,0x17,0xF3,0xBE,0xB8,0xB7,0xDB,
+0x70,0xCB,0x66,0x69,0xC9,0x67,0xC6,0x7C,0xDD,0xD2,0x23,0x2C,0x47,0x29,0x26,0xB3,
+0x44,0xDA,0x43,0x4C,0xEA,0x11,0xE5,0x29,0x91,0x9E,0xFD,0xBE,0x95,0xB1,0xBE,0xF9,
+0x3B,0x0F,0xE9,0xE6,0x92,0xAF,0x9D,0xEF,0xF6,0xF9,0x5F,0x7B,0xF9,0x51,0x5E,0x75,
+0x97,0x42,0x08,0x07,0xC5,0x79,0xCA,0x6E,0x41,0x4E,0xE5,0x76,0x85,0x7A,0x75,0x22,
+0xBF,0xEB,0x89,0x86,0xD7,0x5A,0xD8,0x5F,0xE3,0xEC,0x3A,0x0B,0x33,0x19,0x16,0xF7,
+0x10,0xBA,0x77,0x78,0x45,0xF1,0x4A,0x66,0xA9,0xA6,0x83,0xF8,0xF2,0xB7,0xB8,0x98,
+0x88,0xE6,0xB3,0xBC,0xD6,0x7B,0xD9,0x7F,0x83,0x8C,0xDE,0x8F,0xA0,0xB4,0xBB,0xC9,
+0xB6,0x75,0x1E,0x11,0x62,0x93,0x6D,0x23,0x88,0x87,0x86,0xDC,0x40,0x1B,0x14,0x86,
+0xD0,0x2A,0x27,0x28,0x2F,0x6C,0x20,0x91,0x87,0x88,0xCA,0x9F,0xB5,0x5E,0x51,0x36,
+0xC5,0x0C,0x14,0x1B,0x1F,0x18,0x10,0xD5,0x06,0x09,0x63,0xB7,0xE9,0x9A,0x95,0xAE,
+0xD3,0x36,0x38,0x37,0x76,0xD7,0x79,0x73,0xDB,0xD4,0x44,0x4D,0xD6,0x97,0x98,0x9C,
+0xE5,0x2D,0x15,0x1A,0x6A,0x99,0x65,0x21,0x5B,0x54,0xCC,0x45,0xC7,0xB2,0xBD,0xA8,
+0xA4,0x6B,0x12,0x1D,0x0E,0x69,0x01,0xB5,0xA7,0xA8,0xEE,0x9B,0x05,0xE1,0xEE,0x39,
+0xD6,0x04,0x0F,0x00,0xD8,0x16,0xD7,0x1C,0x42,0x4D,0xB7,0x27,0xAA,0xBC,0xB3,0xCB,
+0x40,0xFE,0x63,0x6C,0xAC,0xB6,0xA3,0xC8,0xF8,0xF7,0x32,0x18,0x3C,0x30,0x3F,0xD1,
+0x83,0x72,0x2C,0x23,0xCC,0x52,0xC3,0x4C,0xCE,0xC1,0x21,0x3D,0x78,0x24,0x2B,0x81,
+0x1F,0x0A,0xC8,0xC7,0x7B,0xE8,0x74,0x41,0xA1,0xAE,0x89,0xFA,0xAE,0x73,0x7C,0x00,
+0xEE,0xB9,0x8A,0x85,0xD2,0x6F,0xDD,0x6F,0x19,0x16,0x7F,0xB4,0xE3,0x92,0x9D,0xAC,
+0x0A,0x2C,0xFB,0xF4,0xCA,0x35,0xC5,0x2D,0x97,0x98,0x9A,0xDF,0x4E,0xDC,0xD3,0x4F,
+0x20,0x8F,0x72,0x7D,0x44,0xD0,0x4B,0x46,0x82,0x8D,0xFF,0xAF,0x02,0xD3,0xDC,0x0C,
+0xD8,0xA2,0xA7,0xA8,0x94,0xC8,0x9B,0x8E,0x17,0x18,0x12,0xD7,0x45,0x3A,0x35,0xA2,
+0x48,0x76,0xE3,0xEC,0xFC,0x26,0xF3,0x08,0x05,0x0A,0x31,0xE6,0xCF,0xA9,0xA6,0xBB,
+0x55,0xD8,0x50,0x5F,0xD4,0x08,0xDB,0x0E,0x7E,0x71,0xDD,0x71,0x87,0x69,0x66,0x33,
+0x57,0xD2,0x58,0x57,0x7A,0xC9,0x75,0x61,0x40,0x4F,0xC4,0x56,0xF4,0x6B,0x64,0x42,
+0xBC,0xF7,0x96,0x99,0xD5,0x29,0xDA,0x2E,0x67,0x68,0xA6,0x13,0x7C,0xEB,0xE4,0x4A,
+0xD2,0x20,0x2F,0x20,0x22,0x53,0x2D,0xA3,0xDA,0xD5,0x65,0x6D,0x7D,0x05,0x0A,0xA5,
+0x2B,0x1B,0xED,0xE2,0x70,0xB0,0x7F,0x12,0x12,0x1D,0x27,0xE7,0x14,0xC4,0xCB,0x0D,
+0x50,0xEA,0x67,0x68,0xB2,0x8B,0xBD,0xEB,0x25,0x2A,0x15,0xE2,0x90,0x90,0x9F,0xDD,
+0x1A,0x38,0xFF,0xF0,0x9B,0x84,0x94,0xCD,0xC3,0xCC,0x1E,0x0F,0x8A,0x53,0x5C,0x04,
+0x35,0xA9,0x41,0x4E,0x1E,0x39,0x11,0xF5,0x96,0x99,0xBB,0xFF,0x91,0x7E,0x71,0x32,
+0xA7,0x77,0x0D,0x02,0x61,0xC1,0x6E,0x72,0x81,0x8E,0xAD,0xFE,0x82,0x48,0x47,0x17,
+0xA1,0x59,0x25,0x2A,0x09,0x2F,0x06,0xF4,0x63,0x6C,0xB2,0x03,0x10,0x0B,0x04,0xC6,
+0x9D,0xC0,0x80,0x8F,0x31,0x51,0x3E,0xB2,0x8D,0x82,0xB3,0xEC,0xD1,0xA5,0xAA,0xA9,
+0x93,0x66,0x28,0x27,0x6D,0xDF,0x62,0x60,0x56,0x59,0xF3,0x77,0xEC,0xBB,0xB4,0x8A,
+0x94,0x5E,0x17,0x18,0x8E,0xE1,0x81,0xBD,0xEB,0xE4,0x30,0x09,0x55,0xF1,0xFE,0x79,
+0x69,0x41,0xF5,0xFA,0x08,0x0E,0x07,0xD4,0xE0,0xEF,0x68,0x5A,0x1F,0x22,0x2D,0xE0,
+0xCE,0x98,0x8B,0x84,0xAE,0xC5,0xA1,0xB9,0x7F,0x70,0xFC,0x51,0xFB,0x42,0x4D,0x64,
+0xC1,0x28,0x34,0x3B,0x21,0x01,0x2E,0xF2,0xE5,0xEA,0x5D,0x6A,0x9F,0xB9,0xB6,0xFB,
+0x54,0xCE,0x47,0x48,0x43,0x96,0x4C,0x07,0x80,0x8F,0x8C,0xDE,0x0D,0xFA,0xF5,0x2A,
+0x8D,0xD4,0x84,0x8B,0x65,0xD5,0x6A,0x62,0xF7,0xF8,0x7E,0x5B,0x73,0xC2,0xCD,0x6C,
+0x87,0x56,0x0C,0x03,0xC6,0x2B,0xC9,0x3F,0xAD,0xA2,0x97,0xE8,0x64,0x3B,0x34,0x82,
+0xF6,0x25,0x0E,0x01,0xD0,0x1C,0xDF,0x1E,0x33,0x3C,0x22,0xC3,0xDB,0xAD,0xA2,0xAB,
+0x49,0x60,0xF4,0xFB,0x52,0xE7,0x5D,0x67,0x5D,0x52,0xAB,0x24,0xC2,0x93,0x9C,0x8C,
+0x63,0xC3,0x7D,0x72,0x9A,0xA5,0x95,0xED,0xDE,0xD1,0x71,0x7D,0x34,0x2B,0x24,0xC2,
+0x58,0x62,0xE7,0xE8,0xD9,0x37,0xD6,0x3C,0x2C,0x23,0x3E,0xC0,0x46,0xC7,0xC8,0x5C,
+0xB0,0x5B,0x36,0x39,0x50,0x94,0x5F,0x16,0x53,0x5C,0xC6,0x47,0x49,0xEE,0xE1,0x7A,
+0x2F,0x3F,0xCD,0xC2,0x3D,0x4F,0x32,0xA0,0xA5,0xAA,0x9D,0xEA,0xD9,0xBE,0xB1,0xBA,
+0x31,0x8D,0x61,0x6E,0x6F,0xAC,0x60,0x11,0x5A,0x55,0xED,0x65,0x43,0xE6,0xE9,0x78,
+0xF0,0x0B,0x26,0x29,0x90,0xDC,0x9F,0x9E,0xBF,0xB0,0xB4,0xD9,0x03,0x3D,0x32,0xE3,
+0xAA,0xCD,0xBA,0xB5,0x0D,0x3B,0x02,0xE4,0xB0,0xBF,0xF8,0x9A,0x24,0xE0,0xEF,0x19,
+0xFC,0xA7,0x86,0x89,0xA0,0xA8,0xAF,0xDA,0xED,0xE2,0x57,0x68,0x19,0xFE,0xF1,0x3A,
+0x4D,0xED,0xDD,0xBC,0xA4,0xAF,0x87,0x55,0x0E,0x52,0xD0,0xFF,0x8B,0x82,0x85,0x74,
+0x8D,0x65,0x95,0x7C,0xDF,0x38,0x6B,0x2E,0x26,0x7C,0xD6,0xD7,0x96,0x2C,0x36,0xC7,
+0x1E,0x7C,0x1F,0xEF,0xCD,0x09,0x48,0x3C,0x4E,0x92,0x50,0xBF,0x06,0xF8,0x72,0x83,
+0xF7,0xD2,0x58,0x06,0x58,0x71,0xA5,0xA9,0x9E,0x8A,0x98,0x6F,0xFE,0xD5,0xA7,0x56,
+0xE0,0xD3,0x4E,0x11,0xC8,0x39,0x7D,0x39,0xAA,0xEA,0xCC,0x5B,0xF5,0x41,0x38,0xC9,
+0x21,0x7B,0x27,0xD0,0x00,0xB3,0x3F,0xF1,0xF8,0x09,0x7D,0x09,0x0C,0x7A,0xFA,0x0B,
+0xCF,0x94,0x26,0x3E,0xBD,0xCD,0xFC,0x4C,0x0F,0x73,0xF0,0xFE,0x62,0xAD,0x43,0xB2,
+0x4F,0x9C,0xAE,0xBE,0x9A,0x88,0x9E,0x6B,0xA0,0x93,0xBF,0x51,0x89,0x88,0x8D,0x7C,
+0x6C,0xC9,0xD8,0x9D,0x5B,0x20,0xF7,0xAA,0xBB,0x9B,0xAC,0x4A,0x79,0x2D,0xD8,0x29,
+0x5A,0xEC,0xCB,0xAB,0x4C,0x21,0xE1,0xBD,0xC4,0x63,0x2B,0x35,0xEB,0xF3,0x94,0x65,
+0x77,0xDA,0xD0,0x86,0x19,0xD1,0x44,0xE8,0x41,0xDE,0x13,0xB0,0xC4,0x62,0x2A,0xDB,
+0xB4,0x03,0xCA,0x45,0xFF,0x3C,0x4F,0x0E,0x68,0xD1,0x35,0x99,0x8E,0xB0,0xB2,0x43,
+0xD5,0xA7,0x0F,0x24,0x31,0xD7,0x6A,0xC0,0x54,0xBB,0x63,0xA5,0x4A,0x04,0xC2,0x33,
+0x9F,0x54,0xB6,0x6E,0x8C,0xA9,0xA9,0x7D,0xB7,0x85,0xBE,0x46,0x4D,0x3C,0xFD,0x0C,
+0x81,0x77,0x8B,0x70,0x57,0x32,0xE9,0xA6,0xEB,0x0B,0x6C,0x1A,0x43,0x9A,0x55,0xA4,
+0x2F,0x18,0x4A,0xDE,0xB9,0xDD,0xE8,0x48,0xD3,0x75,0x2A,0x22,0x7F,0x03,0xF0,0x01,
+0xDE,0xF4,0x57,0x2F,0x5A,0x00,0xD6,0xAB,0x99,0xCC,0xD9,0x68,0x8A,0x94,0x92,0x63,
+0x9D,0x25,0xC5,0x6C,0x3F,0xB4,0x07,0xCE,0xFB,0x5B,0x2C,0x0A,0x1F,0x72,0xE1,0x10,
+0x66,0xBA,0xA1,0x97,0xA5,0x8F,0xA6,0x54,0x74,0x9F,0x67,0x85,0x10,0xC2,0x5E,0xAF,
+0x06,0x3E,0x45,0xF7,0x3A,0x84,0x32,0xCB,0xD2,0x54,0x0A,0x23,0xB7,0x1B,0x20,0xD1,
+0xB7,0x52,0x98,0x46,0x87,0xFA,0xF1,0x76,0x88,0xBD,0xB9,0x79,0x97,0x3A,0x21,0xD0,
+0x89,0x75,0x81,0x78,0xE9,0x1D,0x78,0x18,0x0A,0x46,0xC0,0xFB,0x28,0x7F,0xDB,0x2A,
+0x1F,0x5C,0x3E,0xEE,0x77,0x36,0xCD,0x86,0x1C,0x71,0xE1,0xED,0x59,0x0C,0xD9,0x28,
+0xE6,0xB2,0x29,0x17,0x2D,0x85,0x24,0xDC,0xBF,0x8F,0xBC,0x4E,0x53,0x8E,0x51,0xA0,
+0x9A,0x64,0x83,0x6B,0x7F,0x34,0xC7,0x8E,0xE7,0x15,0x7E,0x16,0xF1,0x65,0x18,0xE9,
+0xCA,0xA4,0x13,0x3B,0x89,0x99,0x9C,0x78,0x8A,0xCE,0xC8,0x7B,0x6E,0x01,0xE3,0x12,
+0xE3,0x82,0x1C,0x12,0xF6,0x1E,0x64,0x07,0x03,0x6D,0xE2,0xF2,0x86,0x38,0x32,0xC3,
+0x0F,0x1C,0x6E,0xFE,0x04,0xA3,0x2B,0xF5,0x40,0xFF,0x33,0xB1,0xBD,0x99,0xA8,0x59,
+0xDA,0xE4,0x43,0x2B,0x37,0xB6,0x0D,0xC6,0x7A,0xF2,0x04,0x8B,0x22,0xFD,0x53,0xA2,
+0xC4,0xC7,0x7E,0x35,0x6A,0x44,0xA2,0x9B,0xD7,0x61,0x3A,0x26,0x74,0x97,0x6F,0x9E,
+0x19,0x3D,0x59,0xE8,0x65,0x07,0xEE,0x94,0x4A,0x86,0x40,0xBB,0x2E,0x51,0xF3,0x02,
+0xC2,0xA6,0x19,0x33,0x80,0xBB,0xB7,0x71,0xB5,0xF6,0xCF,0x44,0xEF,0xD7,0xB4,0x45,
+0x73,0xCA,0xC4,0x82,0xA9,0x9D,0xB8,0x58,0x29,0x30,0x95,0xD8,0xE9,0xF9,0x9C,0x6D,
+0x27,0x1A,0x40,0xD6,0xE0,0x3F,0x53,0x11,0x91,0xC6,0xDB,0x60,0x19,0x5C,0xC9,0x38,
+0x3E,0x78,0x3B,0xCF,0x25,0x87,0x2E,0xD4,0x90,0xE7,0xFB,0x61,0x83,0x0A,0x05,0xF4,
+0x15,0x2F,0x47,0xE4,0xD1,0x5B,0x06,0x20,0x71,0xAA,0x57,0x80,0xB5,0x11,0x28,0xD9,
+0x52,0xEE,0xC1,0xA3,0xE6,0x5E,0x34,0x17,0x1A,0x16,0x80,0xEB,0x4C,0x2A,0xEA,0x1B,
+0xCC,0xC5,0x74,0x3D,0x23,0xE6,0x49,0xD2,0x0B,0x67,0xE0,0xFA,0x14,0xE6,0x7E,0x8F,
+0xA1,0x73,0xAF,0x50,0x60,0x37,0xDB,0x91,0x8F,0xFB,0xF8,0x7E,0x4B,0x12,0xD5,0x24,
+0x37,0x5A,0x10,0xC6,0x79,0x55,0xA0,0x88,0x44,0xEB,0x23,0xB5,0x48,0x0E,0xCA,0x3B,
+0xD6,0xF6,0x5D,0x27,0xAD,0x8D,0xAC,0x5C,0x63,0x89,0x66,0x92,0xA0,0x37,0x1B,0xEA,
+0x72,0xEA,0xE5,0x83,0xF4,0x6F,0x17,0x05,0xBA,0xBA,0x8C,0x4B,0xC3,0x5A,0x15,0xE4,
+0x7F,0xD8,0xDA,0x8E,0xB1,0xDF,0xE2,0x40,0x95,0xD2,0xCB,0x64,0xAA,0xB5,0x93,0x62,
+0xA7,0x12,0xC8,0x56,0x49,0x11,0xD4,0xB8,0xAE,0xFE,0xDC,0x5F,0x90,0x02,0x1E,0xEF,
+0x75,0xAB,0xA3,0x84,0x2C,0xA5,0x05,0xDD,0x48,0xF5,0x31,0xB9,0xE5,0x55,0x3C,0xCD,
+0x95,0x27,0xCF,0x64,0x4B,0x60,0xA7,0xBA,0x30,0x4B,0xF7,0xC1,0x9A,0x80,0x96,0x67,
+0x0D,0x6D,0x1D,0xFC,0x07,0xF2,0x79,0xF6,0x13,0x3D,0xA2,0xE2,0xAE,0x91,0xB3,0x42,
+0x9C,0x05,0xE4,0x6D,0xEC,0x2D,0x4D,0x1D,0x75,0xBE,0x47,0x84,0x4E,0x20,0xE2,0x13,
+0x90,0x17,0xFA,0x61,0x59,0x51,0x84,0xA8,0x0C,0x21,0xA1,0xFD,0x56,0xBC,0x66,0x97,
+0x93,0x46,0xA8,0x62,0x73,0x26,0xD9,0x82,0x9F,0xAB,0xB8,0x6E,0xCE,0xE0,0xA2,0x53,
+0x3D,0x29,0x69,0xCC,0x39,0xD5,0x60,0xC8,0x0D,0x00,0x81,0xFC,0x61,0xB1,0x5C,0xAD,
+0x5E,0xFC,0xDF,0xAF,0x9B,0xA8,0xBF,0x6A,0x1F,0x23,0xB0,0xEE,0x49,0x18,0xDD,0x2C,
+0xB3,0x42,0x8C,0x42,0x01,0x93,0x1E,0xF0,0xAC,0x8D,0xAD,0x5D,0x0D,0x6C,0xED,0x1C,
+0xBE,0x70,0xB3,0x4F,0xDC,0x69,0x39,0x2D,0xC5,0x42,0x0B,0x34,0x1B,0x56,0xC1,0x30,
+0x7A,0xE8,0xEF,0x8B,0x5D,0x41,0x90,0xAC,0xF5,0x36,0x4F,0x04,0x0E,0x70,0xF2,0x03,
+0x3F,0x58,0x1A,0xCE,0x52,0x02,0xDC,0xA3,0xB8,0xC9,0xFD,0x49,0x68,0x2F,0xCB,0x3A,
+0x14,0x0F,0x66,0xE5,0x22,0xC6,0x68,0xD3,0x76,0xEC,0x16,0x87,0x9E,0xA4,0xB6,0x47,
+0x98,0x15,0xF0,0x69,0x98,0xF9,0xED,0x69,0x02,0x4C,0xC2,0xF3,0x08,0x5E,0xDA,0x2B,
+0xC5,0xE7,0x5F,0x34,0x7D,0x45,0xB4,0x8C,0xD4,0x33,0x6B,0x25,0x7A,0x31,0xC7,0x36,
+0x96,0x76,0x9D,0x67,0x81,0x9B,0x96,0x70,0xB0,0xC3,0xFF,0x41,0x3B,0x77,0xC0,0x31,
+0xF8,0x91,0x14,0x09,0x4D,0x01,0xC0,0xBC,0x10,0x6F,0xF3,0xE1,0xD4,0x76,0x2E,0xDF,
+0xB6,0x72,0xB9,0x47,0xC3,0x6A,0x25,0x32,0x08,0x35,0xB1,0xF9,0x30,0xE3,0x5F,0xAE,
+0x57,0xDE,0xF4,0xA6,0x7B,0x24,0xD3,0x8A,0xA1,0xB2,0x9F,0x50,0xC1,0x50,0x1D,0xEC,
+0x00,0x5F,0x22,0xF1,0x14,0xE3,0x7B,0xE5,0x16,0x08,0x92,0xE7,0x5D,0x28,0xF9,0x08,
+0x13,0x02,0x45,0xA5,0xAE,0x9D,0xDA,0x87,0xB0,0x76,0x31,0x35,0x5A,0x1D,0x67,0x89,
+0x18,0xE4,0xA3,0x48,0x77,0x5E,0x19,0x9D,0xFA,0xEE,0xA9,0xE7,0x73,0x34,0x41,0x86,
+0xA0,0x40,0x07,0x54,0xBD,0x86,0xC1,0x8F,0x0D,0x84,0xC3,0x7A,0xA0,0xE7,0xD8,0xCC,
+0xB6,0x57,0x10,0x55,0x98,0xB0,0xF7,0x9C,0x9F,0xC8,0x8F,0xA4,0xDF,0x98,0x5F,0x34,
+0xBE,0x4C,0x0B,0x46,0x03,0x6B,0x2C,0xDC,0x37,0x09,0x4E,0xCD,0xF0,0xB7,0x18,0x5C,
+0xBF,0xA2,0xE5,0xA9,0x6C,0xC5,0x82,0x1D,0x0B,0xAC,0xEB,0x54,0xC8,0x8F,0x5E,0x22,
+0x3D,0x2A,0x6D,0xA3,0xD3,0x3F,0x78,0x58,0x3E,0x9E,0xD9,0x53,0x4F,0x08,0x17,0xEC,
+0xFE,0x97,0xD0,0xDD,0x20,0x75,0x32,0xE1,0x39,0xA1,0xE6,0x6B,0xAC,0xEB,0xCA,0xD2,
+0x1F,0xD6,0x91,0x7D,0x08,0xF4,0xB3,0x48,0x72,0x2E,0x69,0xAF,0x55,0x12,0x24,0xC5,
+0xF2,0x43,0x04,0x05,0xA6,0x1D,0x5A,0x0F,0x8A,0xFB,0xBC,0x82,0x85,0xC2,0xEC,0xDD,
+0xD0,0xBF,0xF8,0xDB,0x99,0xA7,0xE0,0x8A,0xFF,0xD9,0x9E,0xD5,0x15,0x52,0xA4,0x05,
+0x3C,0xC4,0x83,0x4C,0x11,0x67,0x20,0xC2,0xE2,0x6A,0x2D,0x7B,0x3D,0x7A,0xA2,0x2B,
+0xAB,0xA6,0xE1,0xB9,0xE0,0x25,0x62,0x71,0x16,0x1F,0x58,0xFA,0x14,0x53,0x84,0x24,
+0xC9,0x81,0xC6,0xFC,0xE8,0xA5,0xE2,0xF9,0xFD,0xD1,0x96,0xDF,0xBB,0xFC,0xCB,0xC4,
+0x2A,0xD3,0x94,0x4D,0xA7,0x0A,0x4D,0x19,0x81,0x64,0x23,0x16,0xB1,0xF6,0xB8,0xBD,
+0x68,0x1B,0x5C,0xC7,0x0F,0xCB,0x8C,0x70,0x78,0xA6,0xE1,0x2D,0xE3,0xA4,0x09,0x5E,
+0x33,0xED,0xAA,0x6A,0xF6,0x09,0x4E,0x4B,0xF2,0x6E,0x29,0x6F,0x18,0x5F,0x96,0x3A,
+0x7C,0x1F,0x58,0xD7,0x68,0xE5,0xA2,0x39,0xC9,0xF4,0xB3,0xCE,0x5B,0x1C,0x47,0xA8,
+0x90,0x64,0x23,0x40,0x10,0x70,0x37,0xD4,0x85,0x44,0x03,0x32,0xFC,0xBB,0x0A,0x42,
+0xCB,0x92,0xD5,0xED,0xD0,0x20,0x67,0x44,0x1A,0xBF,0xF8,0x56,0x91,0xD6,0xBC,0x99,
+0xB9,0x7E,0x39,0x73,0x49,0xF3,0xB4,0x0E,0x5A,0xAF,0xE8,0x06,0x51,0x16,0x34,0xD1,
+0xE0,0x9B,0xDC,0xCF,0xD2,0x28,0x6F,0x4E,0x9B,0xE8,0xAF,0x80,0xAE,0xE9,0xBB,0xA1,
+0x5A,0x2C,0x6B,0xC2,0x90,0x30,0x77,0x14,0x56,0x0F,0x48,0xAA,0x61,0x26,0x70,0xA5,
+0xF5,0x71,0x36,0x30,0xB3,0x2E,0x69,0x29,0x00,0x33,0x74,0xC0,0xCC,0x8B,0x4E,0x36,
+0xF1,0xBE,0xF9,0xFB,0xCE,0x8C,0xCB,0xF6,0x64,0x02,0x45,0x95,0x6F,0x28,0x13,0xC8,
+0x65,0x21,0x66,0xF0,0x4A,0xEC,0xAB,0x12,0xC3,0x7C,0x3B,0x4C,0xC9,0x8E,0x7E,0x03,
+0x81,0x41,0x06,0x74,0x80,0x34,0x73,0x00,0xFE,0xCE,0x89,0xC3,0x82,0xC5,0xAD,0x9B,
+0x50,0x24,0x63,0xC0,0x51,0x77,0x30,0x92,0x6B,0xBD,0xFA,0x25,0xE0,0xA7,0x58,0x0C,
+0x9A,0x6C,0x2B,0x42,0x28,0xF5,0xB2,0x69,0x2D,0x85,0xC2,0x5B,0x07,0x40,0x95,0x26,
+0x73,0x36,0x71,0xF1,0xC6,0x0C,0x4B,0x7E,0x27,0x0D,0x4A,0xD9,0xA4,0xE3,0xC8,0xD8,
+0xA6,0x9C,0xDB,0x8E,0x26,0x5D,0x1A,0xCF,0xE3,0x7D,0x3A,0x6D,0x93,0xD4,0xCD,0xEA,
+0x2F,0xF2,0xB5,0x69,0x01,0x63,0x24,0xD6,0x5C,0x87,0xC0,0x28,0x11,0x56,0xB4,0x11,
+0xB5,0xAA,0xED,0xAB,0xAC,0x95,0xD2,0x8D,0xDE,0xCF,0x88,0xE2,0x8E,0xC9,0xBF,0x85,
+0x83,0x52,0x15,0x65,0x66,0x4D,0x0A,0x9F,0xE4,0x42,0x05,0x55,0xB5,0xF2,0xA8,0xA9,
+0xFB,0xB6,0xF1,0xF9,0x82,0x3C,0x7B,0x0A,0xD4,0x47,0x00,0x60,0x78,0x3F,0x12,0xDE,
+0x40,0xEF,0xA8,0x1B,0x9E,0x98,0xDF,0xB2,0xB7,0x49,0x0E,0x0D,0xA1,0xE6,0xF8,0xED,
+0x2E,0x1C,0x5B,0x86,0x19,0xE7,0xA0,0x4A,0xDA,0xEF,0xA8,0xC6,0x08,0x4F,0xD6,0x6A,
+0x1A,0xF7,0xB0,0x59,0x71,0x76,0x31,0xB3,0x3A,0xBE,0xF9,0x77,0x6E,0x29,0x33,0xE9,
+0x52,0x37,0x70,0xD1,0xDF,0x9F,0xD8,0xF4,0x91,0x60,0x27,0x02,0x53,0x14,0x45,0xA2,
+0xF0,0x50,0x17,0x14,0x53,0x7F,0x38,0x98,0xEE,0xCA,0x8D,0xD7,0x2B,0x6C,0x83,0x1C,
+0x79,0x3E,0x79,0xF3,0x0C,0xD4,0x93,0x6C,0xF7,0x59,0x1E,0x5D,0x8B,0xCC,0x8F,0xB0,
+0x51,0xCA,0x8D,0x2F,0x5B,0xFF,0xB8,0x10,0xC1,0x74,0x33,0x46,0x6A,0x2D,0x23,0xFD,
+0xEF,0xB2,0xF5,0xE9,0xBE,0x99,0xDE,0x93,0x9D,0xC0,0x87,0xAE,0x32,0x75,0xE1,0x67,
+0x04,0xFB,0xBC,0x4B,0x6E,0xCD,0x8A,0x17,0x6D,0x95,0xD2,0x0B,0x8A,0xCD,0xAF,0x91,
+0x8C,0x7B,0x3C,0x43,0x07,0x4B,0x0C,0xF8,0x3F,0x89,0xCE,0x45,0x94,0xD3,0x8C,0xAC,
+0xF7,0x62,0x25,0x21,0x2E,0xDD,0x9A,0x47,0x3C,0x96,0xD1,0x59,0x5F,0x18,0x57,0xBC,
+0x63,0xFD,0xBA,0x2A,0x9A,0xB8,0xFF,0x96,0x38,0xB6,0xF1,0x7D,0x01,0x46,0xF4,0x41,
+0x1E,0x38,0x7F,0x92,0xB1,0x26,0x61,0x23,0x60,0x22,0x65,0xB1,0x10,0x57,0x94,0x30,
+0xE3,0x66,0x21,0x31,0x93,0x2F,0x68,0x08,0x0E,0x9B,0xDC,0x66,0xCF,0x88,0x1F,0x64,
+0xC1,0x9A,0xDD,0xEF,0x02,0x7C,0x3B,0xCA,0x4F,0x9C,0xDB,0x20,0xAB,0xEC,0x8B,0x94,
+0x3F,0x39,0x7E,0xB2,0x7B,0xFE,0xB9,0x31,0xEA,0xEA,0xAD,0xF3,0x6D,0x2A,0x62,0xBB,
+0xBA,0x83,0xC4,0x8D,0x61,0x72,0x35,0xA7,0x7C,0x86,0xC1,0x09,0x19,0x5E,0xB6,0x1B,
+0x84,0x60,0x27,0x50,0xAA,0xBD,0xFA,0xA3,0xB5,0x41,0x06,0x07,0xBA,0xFD,0xEB,0xE5,
+0x2C,0x0F,0x48,0x97,0x2B,0xEA,0xAD,0x75,0x29,0xA5,0xE2,0x7F,0x0D,0x4A,0xE6,0x5F,
+0x97,0x56,0x11,0x75,0xE5,0x12,0x55,0x43,0xA0,0x72,0x35,0x21,0x0B,0x4C,0x87,0x38,
+0x72,0xD8,0x9F,0x1E,0x06,0x5C,0x1B,0xEE,0x44,0x03,0x44,0xB4,0x13,0x54,0xC5,0x62,
+0x37,0x22,0x65,0xA1,0x5D,0xD7,0x90,0x3E,0x15,0x00,0x47,0xE6,0x16,0x51,0xF5,0x57,
+0xE8,0x80,0xC7,0xDC,0x88,0xB4,0xF3,0x88,0x3D,0x81,0xC6,0x4F,0x04,0x43,0xC4,0x74,
+0xD3,0x42,0x05,0x25,0x63,0x7A,0x3D,0xAD,0x22,0x3A,0x7D,0xEB,0x17,0x50,0xD5,0x76,
+0x8E,0x68,0x2F,0x52,0x32,0x79,0x3E,0xFF,0xBA,0xFE,0xB9,0xB7,0x84,0xC3,0xCC,0xFC,
+0xC7,0x46,0x01,0x35,0x9C,0x90,0xD7,0xB8,0x7A,0xAE,0xE9,0x27,0xEE,0xA9,0x3B,0x61,
+0x8B,0x49,0x0E,0x76,0x2C,0xD5,0x92,0x4D,0x1C,0x97,0xD0,0x78,0xA3,0xE4,0x89,0x9E,
+0x49,0x1A,0x5D,0xE7,0x36,0x59,0x1E,0xDB,0x79,0xB1,0xF6,0x3B,0xB7,0xF0,0xD9,0xDA,
+0x6E,0xC7,0x80,0x1D,0x04,0x54,0x13,0xE4,0x6F,0x9D,0xDA,0x01,0xDE,0x99,0x7F,0x15,
+0xB4,0x88,0x69,0x82,0x93,0xE8,0x18,0xA5,0x53,0x50,0x60,0x65,0x16,0x1B,0x6E,0x58,
+0x9E,0xFF,0x34,0xA8,0x90,0xB9,0x4A,0xA6,0x97,0x0C,0xF8,0xA1,0x0F,0x91,0xFD,0xCB,
+0x5C,0x06,0x0F,0x6A,0x5E,0x52,0x6F,0x68,0x2C,0xA8,0xE7,0x1A,0x1E,0x93,0xEE,0xD8,
+0xFE,0x7B,0xD0,0xC8,0x3D,0x87,0xD9,0x0B,0xAD,0x01,0xCF,0x9B,0x2F,0xB0,0xFC,0xCA,
+0x1B,0xC7,0x89,0x2D,0xBE,0xDE,0x03,0x88,0x30,0xE6,0xB5,0x06,0xA5,0xF2,0x34,0x02,
+0xC6,0x3D,0xAE,0xF0,0xB3,0xEC,0x3C,0x85,0x1C,0xDC,0xA3,0x2A,0x03,0x3D,0x5D,0x6B,
+0x95,0xAC,0x6C,0xA3,0x3F,0xF6,0xAA,0x09,0x3A,0x9F,0xC6,0x0C,0x53,0x79,0x49,0x7F,
+0x9A,0xEF,0x20,0xAC,0x7A,0x46,0x5F,0x4C,0x03,0xC0,0xA0,0x35,0xE1,0x86,0x04,0x32,
+0x5F,0x57,0x5D,0x69,0x98,0xBB,0x40,0xAE,0x2B,0xEE,0xA6,0x1D,0x6C,0xFC,0xF3,0xC5,
+0xE5,0x68,0xD8,0xD3,0x14,0xA1,0xD6,0x22,0x47,0x14,0x30,0x71,0xB8,0x5C,0x87,0xB1,
+0x46,0x35,0x26,0x70,0x96,0xD8,0x2D,0xA0,0x31,0xC7,0x95,0x07,0x51,0x73,0x41,0x77,
+0xBA,0xEB,0x04,0x8C,0xC5,0x49,0xEF,0xF3,0x36,0x81,0xD4,0x00,0xC5,0x83,0x25,0x13,
+0x04,0xC4,0x95,0x32,0xB6,0xDC,0x09,0x80,0xAE,0x53,0x9E,0x98,0x1F,0x85,0xF9,0xCF,
+0x8A,0xAF,0x70,0xBC,0xF8,0x3F,0xA4,0xCE,0xDF,0xC6,0x7A,0xE9,0x5D,0xDF,0xE1,0xD7,
+0xD3,0x4D,0xCB,0xE5,0x00,0xF1,0x92,0x36,0x08,0x98,0xF3,0x3E,0x3C,0xB8,0xE7,0xD1,
+0xBC,0x8A,0x63,0x8A,0x57,0x70,0x44,0x61,0xEC,0xE0,0x6F,0xDA,0x31,0x02,0x50,0x66,
+0x27,0x91,0xE3,0x11,0x27,0xB4,0xF0,0x11,0x38,0xEC,0xB7,0x0E,0x75,0x76,0x60,0x56,
+0x6E,0x33,0x08,0x58,0x73,0x64,0x74,0x45,0x6D,0x49,0x47,0x5B,0x3B,0x80,0xD8,0xEE,
+0x16,0xF5,0xB6,0x20,0x15,0x81,0xF7,0x23,0xD9,0xA1,0x1B,0xEF,0xF9,0x1A,0x80,0xB6,
+0xE2,0x29,0x9E,0xD4,0x3E,0xD6,0x8B,0x08,0xF4,0xBA,0x2D,0xC2,0x55,0x57,0x61,0x57,
+0xE4,0x48,0xF9,0xD2,0xCC,0x6B,0xC4,0xFA,0x8F,0x56,0xBA,0xB9,0x4E,0xD7,0xFA,0xCC,
+0x21,0xF0,0x84,0x17,0x52,0x40,0x71,0x64,0x1B,0x9A,0xE2,0x2D,0x2E,0xA6,0xEB,0xDD,
+0xBE,0xFB,0x10,0x88,0x37,0xF4,0xA0,0x01,0x3B,0xBE,0xE6,0x0D,0x8D,0x5B,0xB5,0x83,
+0xA7,0x99,0x6B,0x91,0xA1,0xDD,0x1F,0x97,0x24,0xA2,0xE5,0x12,0x56,0x4B,0x7E,0x48,
+0x33,0xC1,0xA7,0x05,0x72,0x44,0x55,0x44,0xE4,0xEA,0x6D,0xD2,0x22,0x0A,0x4B,0x7D,
+0x6A,0x23,0x1C,0x5C,0xD6,0x58,0xED,0xE0,0xEA,0x87,0x0E,0xDC,0xC8,0x39,0x92,0xA4,
+0x8E,0xBF,0x64,0xB8,0xA7,0xBC,0x78,0x91,0xEF,0xB2,0x3E,0xD9,0x72,0x4E,0x5F,0x69,
+0x76,0x71,0x52,0x40,0x7F,0x76,0x6A,0x49,0x62,0x05,0x04,0x54,0x65,0x62,0x64,0x52,
+0x8C,0xCE,0x17,0xBA,0x95,0x89,0x7F,0xA3,0x67,0x30,0x34,0x51,0x59,0xFB,0xC1,0xF7,
+0xEB,0x0B,0xB5,0xDD,0x75,0x05,0x13,0x43,0xCD,0xE5,0x4B,0xFB,0x9F,0x45,0xB9,0x8F,
+0x2B,0x83,0xFD,0x1D,0x9C,0xAB,0x54,0xAA,0x13,0x90,0xE0,0x25,0xE9,0x0E,0x84,0xB2,
+0xC0,0x5C,0xC9,0xF6,0x0D,0xC3,0xAD,0x3B,0x42,0x21,0x00,0x74,0x0C,0x8D,0xE2,0xD4,
+0xF8,0x1A,0xB7,0xCE,0x9D,0x8B,0x75,0xAB,0x10,0xC2,0xB1,0x26,0x82,0xEB,0x0A,0x3C,
+0x9D,0xAE,0x66,0xAB,0xDE,0x5A,0xE7,0xE8,0x63,0x24,0x24,0x55,0x77,0x7C,0x68,0x5E,
+0xFD,0x2A,0x82,0xCB,0x06,0x90,0xF5,0x30,0xD1,0xAB,0x19,0xE7,0xA4,0xE4,0x23,0x15,
+0x62,0x21,0x16,0x54,0x66,0x14,0x11,0x50,0xAF,0x72,0xBE,0x99,0xC9,0x2F,0x85,0xB3,
+0x2E,0xB3,0xC8,0x18,0x89,0xDB,0x31,0xBF,0x2A,0xCF,0x86,0x1C,0x6E,0xF6,0xFB,0xCD,
+0x40,0x54,0x41,0x76,0xB7,0xFC,0x28,0x81,0xD0,0x8A,0x39,0xE6,0x17,0x0D,0x79,0x4F,
+0xEA,0x2B,0x94,0xDC,0xE6,0x1C,0x99,0xD0,0xA0,0x3E,0xFD,0x96,0x12,0x3F,0x4E,0x78,
+0xB0,0x98,0x7D,0x86,0x1F,0xF2,0x8E,0x29,0x28,0xBC,0xF7,0x1E,0x4F,0xC1,0xED,0xDB,
+0x4E,0x37,0x2C,0x78,0xCA,0x0A,0xA3,0xFC,0x12,0xB1,0xC0,0x24,0x66,0x7E,0x7B,0x4D,
+0xB8,0x9A,0x77,0x8E,0x9A,0xCA,0x33,0xAC,0xE9,0xD5,0x5F,0xDF,0xD0,0xA5,0x16,0x20,
+0xC3,0x0D,0x9B,0xF5,0x0F,0xB2,0xDE,0x39,0x59,0x29,0x13,0x6F,0x9D,0x4F,0xB1,0x87,
+0x31,0xB0,0xD4,0x07,0xE3,0x2C,0xAC,0xD5,0xC3,0x88,0x28,0xF5,0x4C,0xDD,0xF2,0xC4,
+0xAD,0xEA,0x12,0x9B,0xC4,0x69,0xCE,0xF2,0x9E,0x27,0xDA,0xA8,0x94,0xD1,0x26,0x10,
+0xF0,0x18,0xBD,0xC6,0xDA,0x4A,0xF3,0xEC,0xA2,0x4D,0x8C,0x94,0xAA,0x42,0x8B,0xBD,
+0x47,0x15,0x07,0x71,0xC2,0x08,0xA9,0xF4,0x45,0x67,0x41,0x73,0x61,0x46,0x44,0x72,
+0xA2,0xA9,0x5E,0x94,0x19,0x93,0xE9,0x2F,0x02,0xE1,0x80,0x34,0xEE,0x36,0xBB,0x8D,
+0x18,0x96,0xDB,0x2E,0x8D,0xCB,0x25,0xBB,0xC7,0x9C,0x38,0xF1,0x78,0xCC,0xD7,0xE1,
+0x63,0x01,0x37,0x55,0x4D,0x43,0x6D,0x7B,0x74,0x32,0x25,0x42,0x7E,0xE2,0xFF,0xC9,
+0x9F,0xDF,0x15,0xA9,0xF7,0x7C,0xE8,0xC1,0x56,0x65,0x50,0x60,0x36,0x3A,0x6F,0x59,
+0x0A,0xA7,0xF8,0x3C,0x1E,0xD2,0xAF,0x28,0x83,0x48,0xA8,0xB5,0xFE,0x22,0xBF,0x89,
+0xC7,0x1D,0x8F,0xF1,0x21,0xD5,0x97,0x17,0x0B,0xCA,0xA2,0x3D,0xD3,0xB9,0x09,0x3F,
+0x0F,0x97,0xCD,0x39,0xE0,0x7D,0xFE,0xD6,0xC9,0xF1,0x5B,0xFF,0x62,0x5A,0x5B,0x6D,
+0x5D,0x26,0x2E,0x6B,0x4F,0x32,0x1E,0x79,0x7C,0x38,0x27,0x4A,0x11,0x23,0x51,0x67,
+0x7A,0x63,0x4C,0x4C,0xCF,0x3A,0x96,0xF9,0xB2,0x1D,0xCC,0x84,0x5E,0xC3,0xFE,0xC8,
+0x8B,0x8F,0x51,0xBD,0x5A,0x42,0x7B,0x6C,0x65,0x43,0x45,0x53,0x85,0xD3,0x35,0x03,
+0x9C,0x8E,0x47,0xAA,0x6C,0x67,0x68,0x5A,0x29,0x9D,0xD7,0x1F,0x02,0x2B,0x4A,0x7C,
+0x38,0x92,0xFF,0x0E,0xB4,0xAD,0x7A,0x82,0x43,0x00,0x20,0x75,0x9B,0x61,0x99,0xAF,
+0xDE,0x7F,0xF4,0xE8,0x77,0x74,0x60,0x41,0xDB,0xD2,0x6A,0xED,0xBD,0x6E,0xB0,0x86,
+0x4B,0x07,0x19,0x7D,0x9F,0xFA,0x06,0xA9,0x0C,0x8C,0xE3,0x3A,0x10,0x35,0x46,0x70,
+0xF6,0x79,0xDA,0xC0,0xD5,0x09,0xBF,0xE3,0x33,0xB4,0xE4,0x05,0xCD,0x0B,0xA5,0x93,
+0x7E,0x73,0x58,0x48,0x2F,0xB6,0xFA,0x19,0x01,0xB3,0xD1,0x37,0x84,0xC5,0x22,0x14,
+0x90,0x9C,0x59,0xA6,0x81,0xD9,0x3B,0xB7,0xA4,0x2A,0xED,0x92,0xC2,0xBB,0x1A,0x2C,
+0xE8,0x9D,0xCC,0x10,0x95,0xEA,0xBB,0x1A,0x76,0xF5,0xA4,0xB7,0x0B,0x5A,0x39,0x57,
+0x50,0x39,0x68,0x0C,0x77,0xB3,0xE2,0xA1,0x9C,0x2C,0x7D,0x84,0x05,0x54,0x5A,0x3A,
+0xC5,0x48,0x19,0xE8,0xEB,0x57,0x06,0xD9,0x26,0xE1,0xB0,0xF3,0x00,0x51,0x6A,0x0F,
+0xD7,0x90,0xC1,0x22,0x25,0xAF,0xFE,0xEF,0x31,0xDA,0x8B,0xDF,0x8D,0xDC,0x50,0xB8,
+0xC2,0x7A,0x2B,0xDD,0x9A,0x55,0x04,0xAA,0x0D,0x7F,0x2E,0x46,0x88,0xD9,0x60,0x8D,
+0xAE,0x9A,0xCB,0x51,0x5F,0x32,0x63,0x08,0xCB,0x07,0x56,0xF8,0x22,0x73,0x1F,0x58,
+0xE9,0x73,0x22,0xFF,0xD7,0xF2,0xA3,0x40,0xBD,0x3A,0x6B,0xB3,0xFC,0xAD,0xB4,0x2D,
+0x10,0xE2,0xB3,0x97,0x08,0x19,0x48,0x74,0x58,0x5C,0x0D,0x30,0xAD,0xFC,0x54,0x9C,
+0x4D,0xC8,0x99,0xE0,0xC5,0xFE,0xAF,0x5E,0x21,0xDE,0x8F,0xCB,0xD7,0x86,0xE3,0x51,
+0xC9,0x9C,0xCD,0x30,0x67,0xB7,0xE6,0xB5,0x6F,0x66,0x37,0x3D,0x82,0xD3,0x13,0xF4,
+0x4A,0xFA,0xAB,0xD5,0xA1,0xCF,0x9E,0x0B,0xAD,0x3E,0x6F,0xA7,0x36,0x67,0x4F,0x1C,
+0x36,0xD1,0x80,0x82,0x7D,0x3B,0x6A,0x23,0x01,0xDF,0x8E,0xEA,0x1B,0x4A,0x79,0x07,
+0x79,0x23,0x72,0x3F,0x1C,0x3D,0x6C,0x44,0x1A,0x44,0x15,0x6A,0x60,0x31,0xEE,0xEB,
+0xCC,0xBD,0xEC,0x14,0xA4,0xF8,0xA9,0x39,0x7A,0x55,0x04,0x1B,0xF4,0xA5,0xB6,0x27,
+0x1D,0xD8,0x89,0xA0,0xAF,0x67,0x36,0xAD,0xD9,0x0B,0x5A,0xE6,0xD4,0x85,0xB2,0x03,
+0xA2,0x4E,0x1F,0x89,0xCD,0x7E,0x2F,0xD6,0x02,0xC0,0x91,0xF6,0xCB,0x9A,0xB1,0x1F,
+0xFD,0x77,0x26,0xEF,0x03,0x86,0xD7,0xE0,0x38,0x4D,0x1C,0x41,0xC4,0x95,0xF2,0x53,
+0x6B,0xFB,0xAA,0xF5,0x3C,0x3C,0x6D,0x65,0xEC,0x39,0x68,0xE1,0xA8,0xF9,0x64,0xA9,
+0x90,0x79,0x28,0x8C,0x61,0x9F,0xCE,0x9B,0x05,0xFF,0xAE,0xCE,0xDE,0x8F,0xC1,0x7A,
+0x52,0x2A,0x7B,0x1D,0xBF,0x63,0x32,0xB9,0x91,0x9B,0xCA,0x3E,0xD9,0x88,0x80,0x3C,
+0xB4,0x59,0x08,0x88,0x90,0xDD,0x8C,0x28,0x4B,0x47,0x16,0x38,0x41,0x10,0xCA,0xEE,
+0x19,0x17,0x46,0x6B,0xFB,0x53,0x02,0xCD,0x09,0x5F,0x0E,0x62,0x30,0x61,0x2E,0x7B,
+0x2F,0xEF,0xBE,0xA5,0x19,0x0A,0x5B,0x76,0x68,0x59,0x08,0x05,0xE7,0xB6,0xA7,0x25,
+0xF9,0xB8,0xE9,0x24,0xDE,0x65,0x34,0xDE,0x65,0xEE,0xBF,0xBF,0x03,0x52,0x3B,0x5D,
+0xA5,0x7C,0x2D,0xBC,0xDC,0x6D,0x3C,0xD4,0x42,0xD0,0x81,0xA6,0xBC,0xED,0x34,0xED,
+0xF7,0x7F,0x2E,0xED,0xAB,0x47,0x16,0x89,0x5B,0x43,0x12,0x2C,0x78,0x29,0xAC,0xB1,
+0xD2,0xB1,0xE0,0x06,0x52,0x85,0xD4,0xB2,0x4A,0x50,0x01,0x2E,0xC3,0x92,0xB3,0x15,
+0x64,0xD2,0x83,0xD3,0x2F,0x27,0x76,0x6D,0x7B,0x42,0x13,0x0D,0x42,0x13,0x9B,0xBC,
+0xBE,0x51,0x00,0x8A,0x93,0xC2,0x93,0x34,0xF1,0x8A,0xDB,0x4F,0xDF,0x8E,0xE1,0x5B,
+0x81,0x5C,0x0D,0xB8,0x69,0x1F,0x4E,0x13,0x57,0xE3,0xB2,0x80,0xF3,0xA2,0xF7,0x61,
+0x17,0xD0,0x81,0xA2,0xF8,0x4C,0x1D,0xD1,0x07,0xF7,0xA6,0xC4,0xD5,0x84,0x92,0x22,
+0xE2,0x95,0xC4,0x12,0xBB,0x43,0x12,0x9D,0xB5,0xBA,0xEB,0x3B,0xEC,0xBD,0xF4,0x7D,
+0xC6,0xB5,0xE4,0x16,0xDB,0x52,0x03,0xEC,0xD1,0x8B,0xDA,0x6E,0x8A,0xDB,0x11,0xFE,
+0xD5,0x83,0xD2,0x33,0xDA,0x45,0x14,0xFA,0x56,0xF4,0xA5,0x96,0xC6,0x97,0x83,0x20,
+0xC7,0x5B,0x0A,0xF9,0xC6,0xE1,0xB0,0x42,0xCF,0x27,0x76,0xDC,0xAC,0xFD,0x74,0xBD,
+0xDD,0x98,0xC9,0x20,0x2B,0x07,0x56,0x49,0xE9,0x0E,0x5F,0xD3,0x34,0x65,0x3E,0x6F,
+0xBB,0x70,0x21,0xAE,0x53,0x92,0xC3,0xA4,0x44,0xF8,0xA9,0x88,0xE3,0xB2,0xB7,0x31,
+0x02,0x3A,0x6B,0x5D,0x2D,0x2F,0x7E,0x67,0x99,0x1B,0x4A,0xB6,0xDC,0x8D,0xB0,0x09,
+0x47,0xC0,0x91,0xE2,0x27,0xA7,0xF6,0xE5,0xD0,0x9C,0xCD,0x78,0xEE,0xBF,0x85,0x0E,
+0x86,0x6E,0x3F,0x8D,0xC8,0x49,0x18,0xE4,0x96,0xA4,0xF5,0x06,0x4B,0x1A,0xB9,0x97,
+0x98,0x62,0x33,0x9F,0xC2,0xC1,0x90,0x66,0x2C,0x69,0x38,0x71,0x28,0x79,0x6C,0x21,
+0xD0,0xA2,0xF3,0x17,0x55,0xBA,0xEB,0x8A,0x2A,0x41,0x10,0x5F,0x9B,0xCA,0x71,0x8F,
+0x55,0x18,0x49,0x28,0x8B,0x46,0x17,0xA8,0x62,0xD1,0x80,0x87,0xB9,0xE8,0x04,0xD8,
+0x12,0xF1,0xA0,0x86,0xF3,0xD3,0x82,0x45,0xAA,0x01,0x50,0x9F,0x6C,0x3D,0xFC,0xF5,
+0x2A,0xCE,0x9F,0x81,0x49,0x1E,0x4F,0x32,0x87,0xB7,0xE6,0x04,0xE4,0xB5,0xF6,0x77,
+0x43,0x0F,0x5E,0x29,0xC3,0xD6,0x87,0x70,0x36,0xE5,0xB4,0xE7,0x26,0x77,0x0F,0x4C,
+0xA3,0xA0,0xF1,0x66,0x72,0x84,0xD5,0x93,0x45,0xEF,0xBE,0x9E,0x93,0xC2,0x73,0x85,
+0x2B,0x20,0x71,0x6E,0x37,0xA3,0xF2,0xF1,0x0A,0x40,0x11,0x7E,0x5D,0x0C,0x98,0xA0,
+0x1E,0x25,0x74,0x5E,0x63,0x97,0xC6,0x91,0x32,0xC5,0x94,0xC3,0xFD,0xAC,0x94,0x0C,
+0x8E,0x75,0x24,0x9E,0xCE,0x61,0x30,0xCA,0x84,0xA8,0xF9,0x18,0x06,0x57,0x0B,0x68,
+0x63,0xE0,0xB1,0xE6,0x59,0x1A,0x4B,0x26,0xC9,0x0F,0x5E,0xF2,0xB6,0xE7,0x47,0x94,
+0x11,0x0C,0x5D,0x78,0xE4,0xE8,0xB9,0x69,0x18,0x4C,0x1D,0x60,0x2C,0x7D,0x7C,0x35,
+0x73,0x2B,0x7A,0x3D,0xBE,0x74,0x25,0xAF,0xC0,0x98,0xC9,0x6C,0x71,0x20,0x8E,0x9A,
+0x4E,0x35,0x64,0x1E,0x4C,0x29,0x78,0x00,0xFE,0x35,0x64,0xFF,0x4D,0x1C,0xD8,0xF0,
+0x14,0x2D,0x7C,0x5C,0x41,0x9E,0xCF,0xBA,0x35,0xFA,0xAB,0xFB,0xAA,0xFB,0x15,0xDA,
+0x54,0xF6,0xA7,0xC7,0xFD,0x7B,0x2A,0xE3,0xBA,0x05,0x54,0x8B,0xED,0xBC,0xD4,0x5C,
+0xC8,0x72,0x23,0xDF,0x4E,0x21,0x70,0x0A,0xD6,0xB4,0xE5,0x56,0xFF,0xAE,0xE5,0x7F,
+0x5A,0x31,0x60,0x0E,0xFA,0x44,0x15,0xDB,0x23,0xD6,0x87,0xC1,0x8C,0xDD,0x70,0x99,
+0x48,0xE9,0xB8,0xC4,0x7E,0x24,0x75,0x3F,0xF0,0x9D,0xCC,0x59,0x3E,0x6F,0x4D,0x16,
+0xAC,0x89,0xD8,0x40,0x75,0xBB,0xEA,0xAB,0x9D,0x3B,0x6A,0x92,0x40,0x11,0xEA,0xCF,
+0x8C,0x66,0x37,0x8F,0xE7,0xF7,0xA6,0x75,0x3A,0x45,0x14,0x4B,0xC5,0x94,0xD2,0x72,
+0x95,0x58,0x09,0xA8,0x00,0x99,0xC8,0xFC,0x43,0xC7,0x96,0xB0,0x3F,0x6E,0x6D,0x37,
+0x24,0x09,0x58,0x48,0x7F,0x33,0x62,0x29,0x46,0xF0,0xA1,0x82,0x4F,0x1E,0xA9,0x83,
+0x33,0xF0,0xA1,0xA6,0xCC,0x69,0x38,0xC0,0x1B,0x53,0x02,0x7C,0xC7,0x96,0xA3,0x01,
+0x57,0x94,0xFC,0xCB,0x39,0xE3,0x79,0x20,0x86,0x50,0x75,0xB6,0xDA,0x1F,0x66,0x19,
+0x0E,0xCD,0x1E,0x70,0x81,0x47,0x65,0x84,0xEB,0x33,0x7B,0xB8,0x03,0xF5,0x55,0xC0,
+0xEA,0x29,0x82,0x08,0x14,0x36,0x81,0xF5,0xDE,0x03,0x7E,0xBD,0xCE,0x4F,0x22,0x0D,
+0x12,0xD1,0x4C,0x3E,0x06,0xEE,0x4B,0x2D,0x69,0x39,0xF3,0x30,0xF5,0x58,0x0E,0x36,
+0xE8,0x2B,0xF3,0x7B,0x13,0x04,0xB4,0xC7,0x5C,0x09,0xF6,0x35,0x50,0x64,0x97,0x93,
+0x8F,0x4C,0x36,0xD9,0x7F,0xE4,0x38,0x27,0x89,0x76,0x5C,0x9F,0x28,0xA2,0x29,0xEB,
+0x4F,0x8C,0xBE,0x91,0x38,0x0D,0x96,0xCE,0xFC,0xDD,0x82,0x41,0x15,0xD4,0x62,0xD6,
+0xA4,0x67,0x61,0xA5,0xC1,0x9C,0xFE,0x5F,0x4D,0x3D,0xD3,0x10,0x73,0x31,0xE1,0xB0,
+0x43,0x80,0xAC,0x8F,0x9C,0xB6,0x89,0x75,0x80,0x8A,0xA9,0x6A,0xF1,0x48,0x1A,0x32,
+0x0A,0xC9,0x0E,0x64,0x18,0xE2,0x59,0x21,0x25,0x7A,0xFC,0x3F,0x49,0x06,0xEC,0x8A,
+0x72,0xB1,0xC8,0xDA,0x9B,0x84,0xBC,0x47,0xCD,0x26,0x48,0x8B,0x11,0xC4,0x76,0xD2,
+0x86,0x45,0x14,0xF2,0xE7,0xAF,0xEB,0x6C,0xD6,0x10,0x65,0xA6,0xF0,0x68,0x3B,0x33,
+0x80,0x43,0x75,0x95,0xA8,0x5D,0x56,0x9E,0x3A,0x87,0x1E,0xDD,0x6B,0x73,0xBB,0xA8,
+0x45,0x86,0xCD,0xE8,0x1D,0xC3,0x7D,0x00,0xF6,0xDF,0x8A,0x49,0x7A,0x13,0xCA,0xB9,
+0xDA,0x19,0xC6,0x7C,0xCC,0xA6,0xC9,0x65,0xD2,0xDB,0xAA,0x69,0x24,0xB0,0x37,0xE7,
+0xC3,0x00,0xA4,0x07,0x73,0x30,0xE0,0xF3,0xCE,0xD8,0xB5,0x76,0xEF,0x6B,0x27,0x2C,
+0x3B,0xF8,0x6A,0x31,0x2C,0x09,0x86,0xCA,0x82,0x9B,0xBA,0x79,0x62,0x51,0x90,0xA1,
+0x81,0x42,0x55,0xB4,0xBA,0x85,0x9C,0x46,0x78,0x0D,0xD6,0x15,0x16,0x85,0x30,0xD5,
+0x22,0xE1,0x08,0x4A,0x41,0x07,0xE5,0xC4,0xAB,0xA8,0xA0,0x63,0xD0,0x6C,0x1F,0x13,
+0xDE,0x1D,0xD6,0x68,0x83,0x54,0x74,0x97,0xED,0xE9,0xA7,0x64,0xB4,0xF8,0xEF,0x77,
+0x60,0xA3,0xF9,0xF9,0x65,0x27,0xE1,0xE4,0x3F,0xA3,0x3F,0xFC,0x68,0x22,0xE9,0xAB,
+0xEE,0x2D,0x92,0x1C,0xC8,0x69,0x02,0xAA,0xAA,0x47,0x4E,0x8D,0x70,0x60,0xB3,0xB3,
+0xB7,0x74,0x70,0xA7,0xFE,0x91,0xCC,0x52,0xF4,0xCE,0x99,0x5A,0x76,0x01,0xD4,0xB5,
+0xD8,0x1B,0xB7,0x0F,0x28,0xC6,0x4D,0x05,0x8C,0x52,0x7D,0xBE,0xC1,0x0C,0x6E,0x02,
+0xD0,0x13,0xB5,0x05,0x74,0x02,0xD5,0xC1,0x3C,0x5D,0xC2,0x01,0xFF,0x2B,0x77,0x3C,
+0xFA,0x39,0xC2,0x58,0x26,0x01,0x84,0xC2,0x60,0xC5,0x06,0xC5,0x6C,0x32,0xFD,0xAF,
+0x38,0xFB,0x3B,0x63,0x03,0xCF,0x6F,0x0C,0xC4,0xDA,0xBD,0x7E,0x7F,0x23,0xFF,0xBC,
+0x9A,0x59,0x46,0xBC,0xB5,0xAC,0xBA,0x6F,0x6D,0xF2,0x3C,0xFF,0x6D,0x12,0xDC,0xAE,
+0x7F,0xBC,0xFA,0xE5,0x6F,0x2F,0xE3,0xEC,0x8A,0x88,0xA1,0x62,0xA5,0x98,0x9E,0x66,
+0xA2,0x61,0x00,0xC2,0x50,0x22,0xD1,0xE1,0xB0,0x9E,0x8D,0x4E,0xCC,0x3E,0x51,0x0F,
+0xF1,0x32,0x91,0x00,0xC6,0xAE,0xCB,0x6D,0xF3,0xFB,0xAB,0x68,0xD8,0x6E,0x15,0x1B,
+0xFE,0x3D,0xD2,0x4C,0x33,0xEB,0x7B,0x28,0xAC,0x9D,0x92,0x51,0x95,0xDC,0xEA,0x56,
+0xEF,0x2C,0xB2,0x3D,0x17,0xCB,0x7F,0x08,0x2F,0x78,0xF4,0x37,0xA4,0xB8,0xBF,0x67,
+0xF8,0x3B,0xB3,0x2B,0x04,0xFD,0x5A,0x3E,0xF1,0xEA,0xB8,0x7B,0xDB,0x3F,0x47,0x18,
+0x5C,0x9F,0xAF,0x93,0x16,0x25,0x90,0xE6,0x6C,0x1D,0xD2,0x11,0x08,0xA6,0x0D,0xCB,
+0xBA,0x79,0x42,0x98,0x0C,0xE6,0x49,0x25,0xBE,0x57,0x4A,0x89,0x21,0x80,0x02,0xE2,
+0x2F,0xEC,0x3A,0x75,0x6A,0x0E,0xC7,0xCD,0xE0,0xDE,0x9D,0x5E,0xD7,0x2D,0x59,0x14,
+0x92,0x51,0x44,0xB6,0xD3,0x44,0x34,0x87,0xD8,0xD9,0xA2,0x61,0x34,0xF0,0x67,0xF7,
+0x1A,0xD9,0x4E,0x34,0x96,0xBE,0x8B,0x7D,0xDF,0xEC,0x90,0x53,0xB3,0xB9,0xA9,0x70,
+0xF4,0x37,0xA1,0x35,0x57,0x10,0xE4,0xD3,0x46,0xD0,0x35,0xF6,0x8B,0xFF,0xD7,0x48,
+0x7C,0xBF,0xAB,0xB7,0x49,0x1C,0xF6,0xDF,0xF0,0x05,0x56,0x95,0x46,0x45,0xA0,0x85,
+0x07,0xC4,0x3C,0x5B,0x01,0xDC,0x7E,0x1F,0x5E,0x18,0xE5,0x26,0x6E,0x43,0x8E,0xAD,
+0xFB,0x38,0xE2,0x79,0x84,0x66,0x41,0xA5,0x09,0x6D,0xC7,0x04,0xFE,0x0B,0x56,0x3D,
+0x6E,0xAD,0x9A,0x94,0xC3,0x8F,0xEF,0x4C,0x24,0x95,0x12,0xD1,0x2E,0xC3,0x4E,0xED,
+0xA3,0x60,0x20,0xE3,0xFB,0xB0,0xE8,0x73,0xA6,0x9F,0x9A,0x59,0x98,0xEE,0xD5,0x5B,
+0x6B,0xA8,0xAA,0xA1,0x92,0x71,0x40,0xB2,0x9D,0x66,0x58,0x9B,0xCA,0x5F,0x36,0x09,
+0x39,0xFA,0x1B,0x42,0x72,0xDE,0x0F,0x1D,0x54,0x1A,0xED,0x2E,0xC0,0x2C,0x4F,0x03,
+0x1E,0xDD,0x5E,0x20,0xFA,0x5E,0x07,0x9D,0x71,0xF1,0x23,0xE0,0x6F,0x63,0xAF,0xAC,
+0x2A,0xE9,0x0A,0x40,0xCF,0x5B,0x37,0x98,0xDD,0xFD,0x83,0x40,0xEA,0x5B,0x12,0x29,
+0xDC,0x1F,0xA7,0x1B,0x5F,0x0B,0xF7,0xC8,0xB9,0x62,0x78,0xBB,0x87,0xED,0xC9,0x44,
+0xA7,0x64,0x30,0xF7,0xB2,0x9E,0x8F,0x5D,0x45,0x2E,0xC8,0x0B,0x20,0xA0,0x23,0xE3,
+0x55,0x96,0x8D,0xB8,0xC0,0x72,0x11,0xB1,0xE4,0x15,0x52,0x91,0x63,0x71,0xB1,0xA0,
+0xC9,0x0A,0xD7,0x7E,0xA2,0x55,0x54,0x96,0x4B,0xE7,0x0F,0xCC,0xB7,0xA9,0xBD,0x74,
+0x94,0x57,0x25,0xD1,0x9F,0x4B,0x77,0x88,0x21,0xB1,0x33,0xF0,0x1A,0x97,0x2E,0xD9,
+0x23,0xE0,0x28,0x6B,0xC5,0x53,0x35,0x90,0x0B,0x7C,0xD4,0x17,0xD5,0x5C,0x2A,0x16,
+0xC6,0x05,0x94,0x32,0x85,0x88,0xAE,0x4B,0x8D,0xBD,0x93,0x50,0x2A,0xD3,0x5A,0xE9,
+0x9C,0x5F,0x27,0xDB,0x19,0x0C,0xB6,0xCF,0xAE,0x8C,0x81,0x42,0x9B,0xBF,0x87,0x58,
+0xF9,0x3A,0x93,0x0A,0x8B,0x4F,0x67,0x8C,0x48,0x19,0xF2,0x31,0xF9,0x4A,0x10,0x3A,
+0x99,0x5A,0x17,0xEE,0x99,0x97,0xAD,0x54,0xC7,0x24,0x40,0x83,0xB2,0x99,0x88,0x71,
+0x06,0xC5,0x1C,0x7A,0x7D,0xF7,0x29,0x34,0x1E,0x83,0x3E,0xFD,0x14,0xF4,0x43,0xD7,
+0x4A,0x89,0x8E,0xA4,0x5D,0x18,0xE6,0xDB,0xA3,0xBB,0xBB,0x78,0x6A,0x53,0x9A,0xA9,
+0x24,0xE7,0x69,0x2D,0x44,0x26,0xC1,0xE5,0xE6,0x04,0x41,0x82,0xE8,0x2A,0x61,0x2B,
+0x8E,0x4D,0x16,0xF8,0xF5,0x77,0x21,0xB4,0x52,0xC0,0x31,0xF2,0xDF,0x2F,0x53,0x1C,
+0xD4,0x17,0xA5,0x11,0xE2,0x8E,0xCF,0x4D,0xD0,0xCA,0xB9,0x7A,0x7C,0x72,0xAD,0xBF,
+0xAE,0xBC,0xF1,0x25,0x28,0x86,0xC6,0x94,0x83,0xFF,0x14,0x06,0xFA,0x10,0x82,0xE8,
+0x57,0x45,0x1F,0x32,0xC1,0xDC,0x75,0xCE,0x7D,0xA2,0xB7,0xA5,0x72,0x1A,0x00,0x60,
+0xC1,0xD3,0x36,0x8D,0x74,0x42,0x5E,0x50,0x4A,0x83,0xA1,0xB3,0x70,0x6B,0x73,0x62,
+0xFF,0xED,0x11,0x94,0xFD,0x2C,0xB9,0x3E,0xB1,0xFA,0x23,0x31,0x8A,0xD4,0x36,0x98,
+0x4E,0x5C,0x7D,0x49,0x3E,0x91,0xC7,0x83,0x58,0x49,0x79,0x6B,0x8B,0xF4,0x17,0x99,
+0x2E,0x3C,0xF9,0xAD,0xAA,0x0E,0xCC,0x1C,0x93,0x24,0xDF,0xCD,0xF5,0x53,0xCE,0xE7,
+0xD5,0xC7,0x66,0xC9,0x0B,0x94,0xF7,0x86,0x57,0x6F,0x50,0x42,0x4A,0x5C,0x7E,0x58,
+0x96,0x84,0xB7,0x5B,0xDA,0xF1,0x43,0xE3,0xC0,0x9A,0x32,0x20,0x39,0xC9,0x98,0x2B,
+0x8A,0x98,0xE5,0x15,0xBB,0x2B,0xF8,0x39,0xFA,0x8C,0x1E,0x0C,0x1F,0xAC,0xDB,0x0D,
+0x51,0x43,0x7E,0x55,0xE2,0xCE,0x44,0xDC,0x8A,0x03,0xE1,0xF3,0x58,0x6D,0x5D,0x4A,
+0x8C,0x9E,0x84,0x72,0xAE,0xC1,0x07,0xD3,0x6D,0x79,0x7C,0x6E,0xC4,0x37,0x9B,0xD6,
+0x92,0x80,0xA7,0x4F,0x01,0x9C,0xF5,0x8E,0xFE,0x47,0xD1,0xC3,0xF8,0x61,0xF1,0xEA,
+0x47,0x55,0x5F,0x62,0x27,0xAF,0xE0,0xBD,0xF3,0x70,0xEB,0xF9,0x03,0xFE,0x95,0x11,
+0xAB,0xB9,0xC1,0x10,0x68,0x5D,0x5D,0x4F,0x61,0xA1,0xA8,0xBA,0x99,0xC5,0x34,0x8B,
+0x82,0x90,0xE7,0x1F,0x90,0x22,0xDA,0x30,0xC2,0x8B,0x21,0x33,0x48,0x2D,0x0D,0x5A,
+0xD2,0xC0,0x27,0x8F,0xCB,0xD4,0x77,0xC6,0x19,0x3D,0x4C,0x5E,0xB3,0xB2,0x69,0xA1,
+0x07,0x15,0xDF,0xA2,0x92,0x31,0xCB,0x23,0x9F,0xFC,0x0B,0x19,0x26,0xCA,0x84,0x34,
+0x87,0x95,0xD7,0x2A,0xF0,0x16,0x8E,0x04,0x7F,0xB3,0xA4,0xB6,0xE8,0x21,0xA1,0xFA,
+0x69,0x7B,0x38,0x2B,0x33,0xAB,0xF0,0xB9,0x05,0x3E,0x53,0x41,0x51,0x4F,0x76,0x43,
+0xA8,0xBA,0x90,0x42,0x71,0x63,0x7A,0x71,0xE6,0x8F,0x01,0x13,0x93,0xB6,0x4D,0x81,
+0xBF,0xAD,0x91,0x54,0xA9,0xF3,0x32,0xE1,0x86,0xDB,0x35,0x27,0x0C,0xBD,0xD9,0x1E,
+0x56,0x44,0x3F,0x13,0x44,0x66,0x4A,0x74,0x9E,0x13,0xE5,0xF7,0xD9,0x45,0xF4,0xCB,
+0xC5,0xD7,0x26,0x99,0x67,0x74,0x7B,0x66,0x70,0x95,0x8D,0x9F,0x9D,0xD5,0x20,0x8F,
+0x05,0x17,0xAE,0xD1,0x8B,0x0F,0xEC,0x1D,0x5E,0x93,0xA5,0xB7,0x2E,0xC8,0x8E,0x3C,
+0x67,0x75,0x5B,0x46,0xE4,0x12,0x9E,0x00,0x79,0x69,0x78,0x6A,0x5B,0x3C,0x0F,0x49,
+0xC9,0xDB,0x34,0x87,0xE5,0xFC,0x71,0xEE,0x07,0x2F,0x40,0x52,0xFE,0x00,0x96,0xEC,
+0xD7,0xC5,0x17,0xBA,0xA5,0x27,0xEA,0x35,0x89,0xFD,0x1C,0x0E,0x56,0x0E,0x30,0x44,
+0x9D,0x8F,0xE4,0x03,0x66,0x9A,0x94,0x88,0xB7,0x20,0xFF,0xED,0x69,0x09,0x08,0x7B,
+0xFC,0xEE,0x40,0xC6,0x43,0x54,0x7F,0x46,0xDD,0x76,0xC3,0xD1,0x19,0xCD,0xBC,0x0B,
+0x3F,0x2D,0x99,0xDC,0x48,0xB2,0x92,0xA0,0xD2,0x50,0xEA,0xF8,0x81,0x87,0x6E,0x93,
+0x12,0x00,0xAF,0xC7,0xED,0xE7,0x62,0xF5,0x6F,0x68,0x6F,0x7D,0x3F,0xA8,0xFF,0x2D,
+0x24,0x36,0x8A,0xD4,0xFB,0xF0,0x63,0xE2,0x97,0xEF,0x10,0x02,0x73,0x3A,0x21,0x61,
+0x77,0x65,0x1B,0x16,0xD0,0xF9,0x41,0xEB,0xC5,0xBE,0x13,0x01,0x60,0x2B,0x23,0x72,
+0x32,0x20,0xAB,0xE3,0x9C,0xF6,0x02,0xE4,0x3A,0x0C,0x5E,0x4C,0x59,0x4D,0x7C,0x4B,
+0xF6,0xE4,0x33,0xBF,0x35,0x77,0x2A,0x65,0x4E,0x48,0x6E,0x7C,0x6A,0x58,0x5A,0x78,
+0xFB,0xE9,0x01,0x80,0x12,0xAA,0xD0,0xB8,0x81,0xEE,0x07,0x15,0x46,0x4E,0x60,0x54,
+0x16,0x04,0xBF,0xD3,0xB3,0x30,0xEB,0x22,0x2F,0xF3,0xB4,0xA6,0x76,0x0A,0x14,0x64,
+0x75,0x67,0x6A,0x65,0x6C,0x92,0x96,0x80,0x0C,0xC2,0xA6,0xB4,0xF7,0x22,0xBD,0xE5,
+0xDB,0xC9,0x05,0xA4,0xD5,0xD8,0x65,0xCA,0xA7,0xFB,0x34,0x26,0x09,0x8D,0xEC,0x1B,
+0xD8,0xCA,0x54,0xF6,0x88,0xF2,0x12,0xE0,0x2D,0xE2,0xA7,0xB5,0xCD,0x15,0xB0,0xDF,
+0x48,0x5A,0x1C,0x2E,0x77,0xBF,0xA0,0xAD,0x04,0xD1,0xBD,0xAF,0x52,0x1E,0x24,0x40,
+0x1F,0x0D,0x9D,0xF8,0xDF,0xD0,0x67,0xC2,0xBE,0xDC,0x0A,0x18,0xB6,0x82,0x5C,0xA4,
+0xFE,0xEC,0x31,0xB5,0x29,0x68,0x29,0x7A,0x39,0xF2,0xA3,0xB1,0xF4,0x73,0xEF,0xE6,
+0xB0,0xA2,0xD2,0x18,0xCC,0xE6,0x42,0xF4,0x63,0xB0,0xBB,0xA9,0x85,0x97,0x7A,0x97,
+0xDE,0xCC,0x35,0x91,0x9A,0x2A,0xD8,0x38,0xCF,0xBC,0x1B,0x09,0x6B,0x78,0x7B,0x79,
+0x8D,0x9F,0xA4,0x53,0xB8,0xD6,0x06,0xC4,0x3F,0x28,0x7F,0x6D,0x6C,0x39,0x3D,0x7E,
+0xD0,0xC2,0x56,0xFC,0xE1,0x33,0xBA,0x21,0x40,0x81,0xA9,0xBB,0x71,0x4B,0x52,0x63,
+0x5C,0x4E,0x4C,0x6A,0x64,0x89,0x85,0x9B,0xE0,0x55,0xDD,0xCF,0x1D,0xDD,0xA8,0x0F,
+0x7F,0x6D,0x19,0x1C,0xAC,0xD2,0x16,0xC0,0xE7,0x60,0xEF,0xFD,0x61,0x0B,0x02,0x73,
+0xE9,0xFB,0x30,0xA3,0xD7,0xCB,0x74,0xD9,0xF7,0xBB,0x24,0x36,0x7E,0x08,0x1E,0x6C,
+0x84,0x96,0x86,0x78,0x45,0x88,0xA5,0x9A,0x6B,0xA3,0xA0,0xB2,0xD5,0x57,0xEA,0xC7,
+0x1A,0x08,0xAD,0xCD,0x38,0x4D,0x1D,0x5F,0x1A,0xC3,0xB1,0xA3,0x41,0x0F,0x26,0x53,
+0x5D,0x4F,0x6C,0x4B,0x0A,0x7A,0x18,0x68,0xA6,0x14,0xDA,0xC8,0x83,0xF6,0x1D,0x91,
+0x76,0x64,0x3B,0x37,0x22,0x8E,0xC4,0x9C,0xEB,0xB8,0x3B,0x29,0xAE,0xC0,0x06,0xBC,
+0x6F,0x7D,0x59,0x4C,0x5F,0x4B,0x7C,0x59,0xCA,0x98,0x3A,0x28,0x62,0x5A,0x50,0x70,
+0x3B,0x29,0x89,0xC8,0xB4,0x02,0xDE,0x10,0x3C,0xD6,0x82,0x90,0x37,0xAA,0xF5,0x25,
+0xD4,0xC6,0x46,0xE8,0x41,0x47,0x6E,0x55,0xB2,0x04,0xDE,0xCC,0x49,0x0D,0x2C,0x5B,
+0x45,0x57,0x2E,0x11,0x75,0xAC,0xB1,0xBE,0x31,0xE1,0xB8,0xAA,0x18,0xED,0x9D,0x0A,
+0xDD,0xCF,0x64,0xC3,0xAB,0xE0,0x23,0xF2,0x47,0xB4,0x9B,0x89,0x3D,0xD9,0x8C,0x2F,
+0x3D,0x2F,0xE8,0xAF,0x09,0x87,0xE6,0x95,0xF9,0x72,0xE3,0xF1,0x97,0xA6,0x59,0x85,
+0xEF,0xFD,0x51,0xC4,0xD8,0xE2,0x52,0xF0,0xF2,0x9F,0x05,0x17,0xB5,0xD3,0x0E,0xA7,
+0x37,0x25,0x9B,0xD6,0xEE,0x1A,0x9C,0x08,0xDE,0x88,0x3E,0x2C,0x38,0xE9,0xB9,0x2A,
+0x3A,0x28,0xA9,0xE9,0x1B,0x5F,0x2C,0x4D,0xB6,0xCF,0x11,0x03,0xBE,0x80,0x56,0xAC,
+0x9E,0x8C,0xB5,0x51,0xA0,0x06,0xCE,0x14,0x85,0x25,0xC8,0xDA,0xB0,0xE3,0x3B,0xA2,
+0x1D,0xBA,0x2F,0xA4,0x8B,0xD2,0x00,0x5A,0x79,0xF2,0x9D,0xE7,0x56,0x54,0xDF,0x8A,
+0xD8,0x18,0x48,0xC3,0x6B,0xBE,0xE0,0xD6,0xD3,0x58,0x48,0x98,0xE8,0x2C,0xA7,0x4C,
+0x50,0x50,0x88,0x03,0x82,0xF9,0x09,0x78,0x0D,0x86,0x3D,0x33,0xA3,0x11,0x9A,0x3A,
+0x8F,0x64,0x63,0xE8,0x13,0x00,0x98,0x10,0x5C,0xD7,0x8C,0xD3,0x20,0x77,0xFC,0xDF,
+0x12,0x0A,0x90,0x1B,0x6C,0xF8,0xE7,0x97,0xFA,0x71,0x47,0xBE,0xA7,0xDE,0x55,0xF1,
+0xF0,0xB1,0xC9,0x42,0xC8,0x40,0x43,0x8B,0xF4,0x7F,0x2A,0xDD,0x94,0x07,0x8C,0x1B,
+0x6C,0xC9,0x2D,0xA6,0xB9,0xD5,0x32,0x6F,0xF1,0x7A,0x1F,0xED,0xE3,0xCA,0x41,0xA1,
+0xA2,0xFF,0xD5,0x5E,0x61,0xC7,0xEA,0xA5,0x7C,0xF7,0xA8,0xD7,0xCF,0xF1,0x7A,0xB6,
+0x9B,0x54,0x47,0xCC,0xD2,0x69,0x59,0xB8,0x91,0x1A,0xFB,0x69,0x7A,0x6F,0xE4,0x9D,
+0x23,0x29,0x82,0x09,0x4C,0xDC,0xC7,0x93,0x05,0x8E,0x37,0x31,0x0B,0x7E,0xF5,0xFD,
+0x28,0xBD,0x1D,0x96,0x29,0x0D,0xA2,0x27,0x25,0xAE,0x13,0x35,0xF6,0x20,0xAB,0x5E,
+0x4A,0xC6,0x04,0x8F,0xBF,0xB2,0x34,0x0E,0x3A,0xB1,0x0F,0x36,0xE6,0xEB,0x60,0x85,
+0x42,0x4E,0x84,0x0F,0x39,0x5D,0xB2,0x67,0x26,0xAD,0x41,0x64,0xDB,0xF5,0x7E,0xA6,
+0xE0,0xA5,0xCD,0x46,0x6D,0xD9,0xE6,0xB7,0x73,0xF8,0xE4,0x94,0x2D,0x4D,0xC6,0xE8,
+0x26,0x1B,0xB5,0x3E,0x0B,0x5A,0x80,0x52,0xC7,0x4C,0x0C,0xC8,0xB7,0x15,0x9E,0x2A,
+0xFA,0x33,0x41,0xCA,0x20,0x26,0xAB,0x05,0xEA,0x61,0x17,0xFE,0xFA,0xF4,0x7F,0x86,
+0x17,0x38,0xA7,0x2C,0xA8,0xA4,0x23,0x0F,0xB0,0x3B,0xFE,0x4D,0x28,0x6C,0xE7,0xCC,
+0x7C,0xDD,0x29,0xA2,0xE6,0x09,0x6D,0xEC,0xC1,0x4A,0x6B,0xA9,0x72,0x74,0xFF,0x8E,
+0x9E,0x66,0x70,0xFB,0x1E,0x3F,0x95,0x22,0x16,0x9D,0x35,0x20,0x15,0x72,0xF9,0xEF,
+0x59,0xCE,0x1F,0x94,0x49,0xE9,0xC2,0xA3,0xF2,0x79,0x4D,0xBC,0xAF,0xC5,0x4E,0xE2,
+0x84,0xF0,0xFC,0x77,0x86,0xED,0x0D,0x68,0x35,0xBE,0x43,0x75,0x51,0x66,0xED,0xBF,
+0xBB,0x75,0x46,0xCD,0x0A,0x7B,0x81,0x72,0x59,0xD2,0xB9,0xE3,0xF1,0x12,0x99,0x6B,
+0xE6,0x8B,0xE5,0x6E,0x88,0x80,0x03,0x0B,0x2F,0xA4,0x6A,0x46,0xDE,0xD4,0x5F,0x82,
+0x38,0xA9,0x19,0x92,0xDB,0x42,0x50,0x9A,0x28,0xA3,0x2C,0x07,0x2E,0xB0,0x3B,0x16,
+0x14,0x24,0xB8,0x33,0xA0,0xAE,0x2B,0x0D,0x2E,0xA5,0x4B,0x66,0x5F,0xA1,0x2A,0x76,
+0xEE,0x03,0x65,0xEE,0xAD,0x91,0x26,0x3F,0x02,0x89,0x71,0x70,0x90,0xC8,0x43,0xD0,
+0x7F,0xC1,0x36,0xBD,0x21,0x07,0xAA,0x25,0x24,0xAF,0x32,0x15,0xD4,0xDC,0x57,0x80,
+0x3C,0x8D,0x39,0xB2,0x64,0xF2,0xEF,0x95,0x1D,0x96,0x6D,0x73,0x2B,0x91,0x1A,0x32,
+0x5B,0xC4,0x17,0x9C,0x8D,0xB5,0x06,0x3B,0x4D,0xC6,0xFD,0xB3,0xB6,0xFB,0x70,0xC5,
+0x2C,0x99,0x3D,0xB6,0x8E,0xE7,0x05,0x6A,0x89,0x02,0xA1,0x2B,0x3C,0x68,0xE3,0xDC,
+0xD5,0xA2,0xFF,0x74,0x40,0xC2,0xCB,0x81,0x32,0xB9,0x05,0x34,0x3E,0x7B,0xF0,0xCD,
+0xA8,0x7D,0x5D,0xD6,0x23,0x74,0xA8,0x54,0xB3,0x38,0xAC,0x1C,0x1D,0x69,0xE2,0xFC,
+0xD4,0xB4,0xE8,0x63,0x81,0xAB,0x0A,0x29,0x12,0x99,0x21,0x30,0x98,0xD3,0x58,0xC3,
+0xAA,0x77,0x55,0xDE,0xCB,0x12,0x40,0xDA,0x2D,0xA6,0x19,0x37,0xA6,0x30,0xBB,0x1E,
+0xA0,0xF5,0xDD,0x56,0x31,0x57,0xBA,0x65,0x1F,0x94,0x1E,0x02,0x68,0xB7,0x3C,0x57,
+0x4F,0xF4,0x33,0xB8,0x9F,0x96,0x14,0x0A,0xBA,0x31,0x87,0x3E,0x16,0x8F,0x04,0x11,
+0x5C,0xFC,0x28,0xA3,0x44,0xD6,0xCF,0x91,0x7B,0xF0,0xEE,0x96,0x7E,0xA0,0x2B,0x56,
+0x5D,0xEA,0x3F,0xB4,0x72,0xC5,0xF9,0xB4,0x37,0xBC,0x30,0x04,0x86,0xDF,0x54,0xD1,
+0x41,0x52,0x9B,0x10,0xAA,0xD7,0x21,0x7E,0x5D,0xD6,0xAD,0xF3,0xCC,0x0C,0x87,0x48,
+0xAC,0x59,0x7D,0xF6,0x69,0xCD,0xE2,0xA7,0xC5,0x4E,0x7F,0xB9,0xC3,0x25,0xAE,0x6E,
+0xCE,0x22,0x64,0xEF,0x3F,0x3A,0xB4,0x06,0x15,0x9E,0x67,0x71,0x14,0x9C,0x17,0x00,
+0x44,0x60,0xAC,0x27,0xFE,0x53,0x75,0xAE,0xD7,0x5C,0x5C,0x88,0xF7,0xCE,0x45,0xB1,
+0xF5,0x83,0xFE,0x75,0x51,0xB3,0xDA,0xE1,0x62,0xE9,0x95,0xF4,0x8E,0xC4,0x4F,0xC2,
+0xB0,0xE1,0xD9,0x52,0xD1,0x3B,0x5A,0xE9,0xAC,0x27,0xB0,0x1F,0x6E,0x6B,0xE0,0x8D,
+0x45,0x76,0xBB,0x30,0x93,0x88,0x18,0x18,0xD9,0x52,0x31,0xEB,0x61,0x42,0xC9,0xAB,
+0xD2,0x9A,0xC0,0x4B,0x53,0xC0,0xD8,0x90,0x6A,0xE1,0x9F,0xF6,0x4F,0x6A,0xE1,0xAD,
+0x0C,0xB8,0x3C,0xB7,0xE9,0x45,0x62,0xAF,0x48,0xC3,0xC8,0x83,0x97,0xFA,0x71,0xE5,
+0x74,0x55,0xA9,0x22,0x00,0x02,0x8B,0x01,0x9D,0x16,0xE5,0x7B,0x8F,0x2A,0xA1,0x2D,
+0x39,0xBF,0x0E,0x85,0xDA,0x63,0x51,0xBA,0x80,0x0B,0x8A,0x09,0x7C,0xB3,0x38,0x47,
+0xCB,0x10,0x53,0xD8,0xC4,0x5E,0x4F,0x99,0xBC,0x37,0xE0,0x5F,0xEF,0x1E,0x95,0x79,
+0xC6,0xAA,0xE4,0x6F,0xDC,0x04,0x57,0xDB,0x5B,0xD0,0xCA,0x92,0xEB,0xD1,0x5A,0xB2,
+0x7A,0xF3,0x01,0x8A,0x07,0x44,0x8C,0x40,0x1C,0x97,0x4C,0x53,0x9B,0x2E,0xA5,0x3D,
+0xE4,0x81,0xED,0x66,0xD4,0x0E,0x5F,0xD9,0x0C,0x87,0x1C,0x13,0xD3,0xEE,0x65,0xB5,
+0x49,0xDA,0x1B,0x90,0x84,0x9E,0x0F,0x19,0xF7,0x7C,0x78,0x8C,0x08,0x83,0x08,0x03,
+0xDE,0x36,0x60,0xEB,0x11,0x73,0x9A,0x61,0x47,0xCC,0x84,0xC0,0xE2,0x24,0xAF,0x4E,
+0x63,0x79,0x92,0x19,0xFD,0x01,0x76,0xFF,0xDD,0x56,0x25,0xFB,0x70,0x67,0xEC,0x9F,
+0x60,0x65,0x8D,0x06,0x97,0x9C,0x1C,0x08,0x34,0xBF,0x62,0x55,0x5B,0x6E,0xE5,0xBD,
+0x87,0xEC,0xE3,0x68,0xA9,0x85,0x22,0x2F,0xCE,0x45,0x27,0xEA,0xA0,0xEC,0x67,0xC4,
+0xF8,0x39,0x49,0xC2,0xF8,0x34,0x73,0xCF,0xBE,0x35,0x93,0x2E,0x92,0xDB,0x50,0xC1,
+0x4B,0xD0,0x13,0x98,0x01,0x23,0x8A,0x21,0x36,0xBD,0x11,0x24,0x6C,0x78,0xF3,0x9C,
+0xC9,0x1A,0x5B,0xD0,0x83,0xD8,0x08,0x58,0x0E,0x85,0x6F,0x62,0x46,0x9F,0x14,0x51,
+0x7D,0xCB,0x3E,0xB5,0xC0,0x4A,0x4B,0x89,0x7D,0xF6,0x89,0xF7,0xD1,0xFD,0x76,0xA4,
+0xF9,0x2F,0x5E,0xD5,0x18,0x58,0x93,0x43,0xCF,0x44,0x06,0xCA,0x49,0xB6,0x3D,0x77,
+0xF2,0xBB,0xC1,0x4A,0x78,0xBC,0xF3,0xC7,0xB1,0x3A,0xDF,0x6D,0x82,0x10,0x9B,0x1A,
+0xEF,0xB7,0xEB,0xC2,0x27,0x57,0xEE,0x0A,0x26,0x08,0x9D,0x25,0xE9,0xBD,0xE7,0xCA,
+0xB8,0x61,0x6A,0x95,0x48,0x90,0x46,0x65,0x2B,0xBF,0x27,0x92,0x75,0xC5,0x03,0x2E,
+0x59,0x2C,0xC6,0x74,0xF0,0xDE,0xB0,0xDD,0x05,0x16,0xA0,0x3B,0x84,0x76,0x41,0x6C,
+0x17,0x81,0x25,0x3A,0x7E,0xB5,0x55,0x53,0x47,0x0E,0xFA,0x23,0x60,0xE3,0x30,0x1D,
+0x79,0x08,0xC2,0x54,0xB2,0x2F,0x03,0x9F,0x4B,0xAE,0x56,0x83,0x8F,0xE2,0xDE,0xF3,
+0x2A,0xCA,0x53,0x07,0x4E,0xF1,0x21,0x63,0xDF,0xCA,0xA6,0xE7,0xCE,0xA4,0xD9,0xF4,
+0x77,0x65,0xA1,0x5A,0xAB,0x4D,0x78,0x86,0x76,0x1C,0xD9,0x31,0xBC,0xCB,0xC4,0xE9,
+0xFB,0xF3,0xBB,0xD6,0x11,0x72,0xFD,0x3C,0xA2,0x68,0x79,0x45,0x2A,0x31,0xA8,0x85,
+0xD0,0x8F,0xEC,0xFD,0x61,0xB6,0x49,0x4C,0x49,0xA6,0x5C,0x8B,0xDC,0xBA,0xD5,0xF8,
+0x95,0x7A,0x5C,0xB8,0x6E,0xF5,0x05,0x43,0xFB,0xEB,0xA3,0xC6,0xBA,0xE5,0xEC,0xC1,
+0x51,0x26,0xC4,0x7C,0xEF,0xDD,0xAC,0xC2,0xBF,0xDB,0xD7,0xF6,0xAF,0xC3,0xDF,0xF2,
+0x5C,0x19,0xF6,0x71,0x32,0x27,0x8B,0x1F,0x19,0xB2,0x18,0x9F,0xB9,0xF9,0xF3,0xDE,
+0xB1,0x4A,0x48,0x9C,0xA8,0x1C,0x2A,0x85,0x04,0x01,0xB6,0x2C,0xFD,0x8D,0xC3,0xEE,
+0xD2,0xFC,0x9D,0xFF,0x0A,0x61,0xF5,0x27,0x35,0x13,0x95,0x3E,0xD5,0x24,0x42,0x6F,
+0x7C,0x3D,0xF2,0x51,0x40,0x92,0x4C,0x6D,0x0C,0x81,0x3E,0xAC,0x7A,0x75,0xBC,0x91,
+0x7F,0x6F,0xA3,0x52,0x6A,0xE5,0x11,0x47,0x15,0x12,0xB4,0x3F,0xE2,0x29,0x78,0x55,
+0x73,0x71,0xB1,0x5E,0xDF,0x99,0xD8,0xF2,0xF3,0x6B,0x2B,0x46,0xFA,0xB5,0xFC,0xD1,
+0xE2,0x88,0xD9,0xCF,0x34,0x46,0xEC,0x19,0x16,0x0D,0xA8,0x20,0x1A,0x04,0xAD,0x80,
+0x7A,0x5A,0x93,0x57,0x78,0xD4,0x32,0x55,0x43,0x2E,0xDE,0x03,0x2E,0x15,0x88,0xA5,
+0x9A,0x36,0x1F,0xB7,0x1F,0x11,0x90,0x32,0x85,0x56,0x60,0x7B,0x51,0xC0,0x22,0x0F,
+0x48,0x5D,0xA6,0x65,0x7A,0xA5,0x41,0x57,0x68,0xB0,0x6B,0x9D,0x24,0x97,0x00,0x2D,
+0x90,0x4F,0x6C,0xBD,0x82,0x6B,0x77,0xAF,0x7F,0x8B,0x47,0xA6,0x1E,0x20,0x8D,0xA0,
+0x9D,0x70,0x5E,0xB0,0xC7,0xDB,0x82,0xEA,0x38,0xA4,0x2F,0x89,0x77,0xCF,0x0B,0x26,
+0x39,0xC8,0x42,0x14,0x9E,0x39,0x39,0xB3,0xD2,0x7D,0x1C,0x50,0x14,0xA2,0x05,0x28,
+0xD8,0x85,0xEE,0xF5,0x4A,0xE1,0x35,0x67,0x97,0x5A,0x7E,0x77,0xFC,0x9B,0xD4,0xF9,
+0x4E,0x3A,0xC7,0x63,0x53,0x83,0x4E,0x7E,0x4C,0x91,0x6E,0xBC,0xFF,0x87,0xCB,0xE6,
+0x23,0xE1,0x71,0x0E,0x10,0x52,0xDC,0x3D,0x54,0x15,0xF2,0x38,0xA0,0x73,0x60,0x4D,
+0xBD,0x54,0x5A,0x90,0xD5,0xEA,0xA1,0xF8,0x34,0x04,0x83,0x29,0xF8,0xBF,0xF4,0xD9,
+0xFA,0xD2,0x9B,0xD7,0xE2,0xEF,0x93,0xCF,0xE3,0x6F,0x3F,0x42,0x01,0x84,0x36,0x1B,
+0xD1,0xAE,0xCC,0xFC,0x16,0x33,0xBB,0x3B,0x4F,0x8E,0x72,0xA3,0x37,0x9F,0x1B,0x36,
+0xC8,0xD5,0xAE,0xE5,0xD3,0x8B,0xC6,0xFE,0x6F,0x8F,0x53,0xA2,0xAD,0xC9,0xD7,0xFA,
+0x9C,0x51,0x7E,0xB1,0x9A,0x29,0x2D,0xB7,0x21,0x37,0xA5,0x1A,0x5D,0x6C,0x82,0xAF,
+0x2D,0x8C,0x12,0x00,0xB3,0x0F,0x22,0x9E,0x7B,0xAB,0x63,0x86,0x5B,0x42,0xAA,0x87,
+0xF6,0xCC,0x89,0xDB,0x56,0xB3,0x7B,0x7B,0xF4,0x54,0x13,0x79,0x9A,0xC4,0xED,0xC0,
+0x2B,0xEB,0x73,0x06,0x59,0xF0,0x37,0x74,0x8E,0xC9,0xF4,0xE4,0xC0,0x02,0x71,0x5C,
+0x35,0xD6,0x50,0x18,0x04,0x02,0x98,0x29,0xB0,0x64,0x67,0x49,0x96,0x68,0x4D,0x60,
+0xE0,0xFB,0xA8,0xCD,0x37,0x17,0xBE,0x1A,0x87,0x5E,0x6A,0x73,0x09,0x0C,0xB6,0x9B,
+0x0C,0x89,0x36,0x21,0xC5,0xAA,0xF1,0xE8,0x56,0x1D,0xF8,0x30,0x32,0xAD,0x2C,0x01,
+0x25,0x86,0x10,0x08,0xBA,0x2D,0x09,0x97,0x7C,0x94,0x5B,0xB9,0xDA,0x94,0xFD,0xD0,
+0x75,0x16,0xD0,0x58,0x4C,0x80,0x52,0x61,0xCA,0xF9,0x80,0xD4,0x45,0xF0,0x06,0x2B,
+0x09,0xBC,0x06,0x24,0x1E,0x31,0xB1,0x33,0x08,0xA1,0x1A,0x8C,0xE7,0x1B,0x4F,0x62,
+0xF0,0xAB,0xE8,0xDD,0x44,0x82,0x58,0x69,0x55,0x02,0xE4,0x2F,0xED,0x99,0xC7,0xEA,
+0x66,0x14,0xC1,0x4B,0xDA,0xA9,0xED,0xF7,0x74,0x14,0xD3,0x39,0x9C,0xEA,0xC5,0xE8,
+0x58,0x0D,0xE6,0x75,0xB4,0x4E,0x64,0x99,0x0D,0x96,0x28,0xBB,0x23,0xAF,0x3F,0x12,
+0xE9,0xD0,0x8A,0xC4,0x09,0x30,0xA7,0x24,0xBE,0xCC,0xC1,0xE1,0x03,0x8E,0x3E,0x13,
+0x89,0x34,0x0E,0xA4,0x96,0x3B,0x33,0xBB,0xD3,0x6A,0x0A,0x47,0xA4,0x57,0x40,0x6D,
+0x72,0x50,0x91,0x5F,0x0C,0x00,0x92,0x21,0x98,0xE5,0xCE,0xC8,0xAB,0xE7,0xFF,0xD2,
+0x31,0xC2,0x40,0x1C,0x69,0xB4,0x43,0x44,0x6D,0x87,0x59,0xAA,0x3E,0x01,0x8C,0xA1,
+0xC0,0xDF,0xAC,0xED,0x8A,0x69,0x7D,0xA7,0x9E,0xCD,0xE0,0xE0,0xCB,0x96,0xEE,0xC3,
+0x6E,0x1E,0xC3,0x43,0x64,0x86,0x7C,0x49,0xD8,0xF5,0x9E,0xD8,0xF7,0x0F,0x4B,0x66,
+0x70,0x23,0xE0,0x5D,0xBF,0x1D,0x3C,0x92,0x0A,0xA9,0x10,0x84,0xF9,0xA9,0xE3,0xCE,
+0x3A,0x9A,0x13,0x17,0x02,0x63,0xFF,0x2F,0xD7,0x4A,0x2E,0x67,0xFE,0x91,0xDC,0xF1,
+0x5B,0x5F,0xB7,0x76,0xCC,0x88,0xDA,0xE1,0x81,0x76,0x44,0x5B,0x3A,0x25,0xAC,0x81,
+0x98,0x45,0x6E,0xB5,0x2A,0x65,0xD1,0x07,0xA7,0x5F,0x4B,0x72,0x70,0xF7,0x34,0x19,
+0xB5,0x5E,0x58,0x98,0x7F,0x95,0x74,0x52,0x9F,0xDA,0xF6,0xF7,0x5F,0x66,0x8A,0xA7,
+0x83,0x4D,0x7D,0xAE,0x68,0x94,0x62,0x45,0x18,0xA5,0x0E,0x88,0xCD,0xB8,0xC6,0xEB,
+0xA0,0x3B,0x28,0x8D,0xA9,0x3C,0x0B,0x84,0x0B,0xBE,0x06,0x93,0x3D,0x1D,0x93,0xBE,
+0x20,0xB3,0x20,0x0D,0x8E,0x79,0x69,0xA3,0x44,0x11,0xE6,0x3C,0xD6,0x38,0x5D,0x70,
+0xCE,0xB2,0xCF,0xE3,0x33,0x07,0xAA,0x1E,0xC9,0xE6,0x9C,0xCB,0xB8,0xEF,0xE4,0xC9,
+0x0F,0xDB,0x67,0x22,0xFB,0x8D,0xE8,0xD6,0x78,0xB4,0x7F,0x99,0x41,0xD4,0x26,0x0B,
+0x18,0xCD,0x66,0x35,0x6B,0xC5,0x30,0x46,0x2C,0x80,0x1F,0xAD,0x4A,0x40,0xB9,0x94,
+0xF1,0x8A,0xC8,0xDC,0xFE,0xBD,0xDD,0xD3,0xE4,0x50,0x07,0x7D,0xB2,0x6D,0x6C,0x41,
+0x62,0x00,0xD1,0x4F,0xEC,0x8C,0xFE,0xC1,0x62,0x38,0xE9,0x15,0x22,0xB9,0x28,0x05,
+0xA2,0x48,0x59,0x8F,0x97,0x1B,0x12,0xBA,0x64,0x10,0xC7,0x3D,0x3F,0x17,0x9B,0xB6,
+0xFB,0xB5,0xD9,0xA4,0xF4,0xCD,0xA1,0xBF,0xBE,0x59,0xD2,0x61,0x41,0x2D,0x29,0xEE,
+0xA0,0x43,0x2F,0x09,0x34,0x9D,0xF1,0x2F,0x45,0x3D,0x29,0xFE,0x2C,0x40,0xF2,0x58,
+0x58,0x3C,0x50,0x8E,0x12,0xB4,0xD8,0x20,0x94,0x04,0xF8,0x16,0xA5,0xC9,0x51,0x72,
+0x17,0xCE,0xA2,0x33,0x8C,0x58,0x34,0x52,0x0E,0xA5,0x62,0x2D,0xE6,0x8A,0xC3,0xA3,
+0x31,0xFD,0x91,0x26,0x74,0x8D,0xE1,0x7F,0xF5,0xC1,0x99,0xB2,0xDC,0xB0,0xCE,0x94,
+0x9E,0xA0,0xCC,0xD4,0x57,0x93,0xFF,0x42,0xC9,0xAB,0xA5,0xE4,0x71,0x1D,0x5D,0xAA,
+0xD2,0xAF,0xC3,0x97,0xAD,0x4E,0x22,0x65,0x55,0x6D,0x39,0xBE,0xEC,0x80,0xBA,0xD0,
+0x8B,0x4A,0x26,0x2B,0x36,0x95,0xF9,0x25,0x12,0xEB,0x7E,0x7F,0x13,0x7F,0xCA,0x5F,
+0xEA,0x90,0xFC,0x90,0x64,0x89,0xE5,0x6B,0x34,0xA8,0x58,0x1A,0x3F,0x53,0xF0,0x49,
+0x3B,0xF5,0x99,0x24,0xB5,0xCA,0xA6,0xF9,0x47,0x4E,0x2B,0x8F,0x5D,0x31,0x67,0xBC,
+0x9A,0x6F,0x03,0x1F,0x2A,0x31,0x5D,0x9D,0xF8,0xFE,0x94,0x80,0xD2,0xBE,0xA3,0xF7,
+0x0E,0xF0,0x9C,0x14,0xAE,0x51,0x3D,0x79,0x86,0x27,0xEA,0x27,0x74,0x18,0x68,0x9A,
+0xCD,0x4D,0x21,0x6A,0xC2,0xE0,0x8C,0xA4,0x87,0x06,0xEB,0x07,0x2E,0x42,0x81,0x29,
+0x44,0x23,0x4F,0x8D,0xE5,0xDE,0xB2,0xBD,0x7D,0x43,0x11,0xB8,0xAC,0xC0,0x7A,0x50,
+0xF1,0xBD,0xD1,0xA6,0xCC,0x48,0x24,0x02,0x7F,0x30,0x13,0xC9,0xBA,0xD6,0x4D,0x71,
+0x18,0xE7,0x8B,0x15,0x22,0xB1,0xDD,0x15,0xF7,0xB2,0x9B,0xC3,0x19,0x75,0xB3,0x2C,
+0xCB,0x91,0xFD,0xB0,0x59,0x3B,0x57,0xE4,0x7E,0x11,0x12,0xE9,0x1D,0x71,0xA7,0x3C,
+0xDD,0x86,0xEA,0xB1,0x7C,0x0D,0x61,0xF7,0x32,0xCF,0x5E,0x7B,0x62,0x0E,0x5F,0xBB,
+0x78,0xD3,0xBF,0x41,0x4A,0x20,0x4C,0xEC,0x8C,0x5E,0xE0,0x54,0xE7,0x8B,0xE2,0x83,
+0x73,0x35,0x59,0xAC,0x93,0xE3,0x8F,0xF6,0x14,0x8C,0x78,0x1E,0xCE,0xA2,0xED,0xA5,
+0x56,0xFB,0x97,0x47,0x37,0x82,0xEE,0x33,0x64,0x38,0x08,0xDA,0xF2,0x9E,0x87,0xF3,
+0x95,0x46,0x2A,0x39,0xC4,0xC8,0xA4,0x8A,0x5B,0x00,0x37,0xDD,0x11,0x7D,0xB9,0x2E,
+0xD5,0x9D,0xF1,0xA2,0xE7,0xD6,0xBA,0xB7,0xF3,0xA6,0x9F,0xD3,0x4D,0x21,0x37,0xFC,
+0xD4,0x73,0x1F,0x4D,0x88,0x78,0x14,0x76,0x56,0x3F,0x3A,0xEF,0x75,0x19,0x49,0xBA,
+0xBB,0x6E,0x02,0x3F,0x7D,0x1A,0x76,0xE1,0x23,0xBE,0x4F,0x1B,0xA8,0xC4,0x6E,0x40,
+0x57,0x15,0x79,0xA8,0xF5,0xDA,0xB6,0xA9,0x90,0x10,0xFC,0x06,0x80,0xEC,0x40,0x46,
+0x74,0x07,0x6B,0x99,0xEC,0x49,0x25,0x23,0xD4,0xC4,0xB8,0x96,0xE8,0x84,0xAE,0xC0,
+0x99,0x92,0xFE,0xE1,0x42,0xA0,0xCC,0x64,0x01,0xE9,0x6D,0x6E,0x38,0x54,0xB6,0x08,
+0x41,0x02,0x6E,0xA9,0x43,0xB7,0xDB,0x72,0x9E,0x7D,0xF2,0x65,0x0C,0x60,0xD6,0x5C,
+0x03,0xCA,0xA6,0x23,0xEB,0x76,0x1A,0x1B,0x5C,0x46,0x30,0x9C,0x5E,0x32,0x35,0xED,
+0xC0,0x77,0x1B,0x5D,0x04,0x98,0xF4,0x1A,0xE5,0x91,0x89,0xF2,0xA9,0xC5,0x4F,0x60,
+0xA2,0x50,0x3C,0x18,0x0C,0x18,0x74,0x92,0x2B,0xB4,0x47,0x19,0x06,0x6A,0xAF,0x2F,
+0x54,0xE8,0x84,0x56,0x9F,0x43,0x2F,0x5A,0x10,0x98,0x7C,0x0E,0xD0,0xBC,0xD0,0x86,
+0xD1,0x52,0x3E,0x69,0x85,0xCF,0xA3,0xCC,0x7C,0x62,0x10,0x98,0xA4,0xC8,0x70,0x52,
+0x88,0xB7,0xDB,0xD5,0x77,0x92,0xFE,0x63,0x61,0x0D,0x0D,0xEA,0x72,0x1E,0x0F,0xFB,
+0xAA,0x4B,0x27,0x0B,0xE6,0xC1,0xAD,0xA1,0x66,0x4B,0x0A,0xAB,0x16,0x7A,0xFF,0x6F,
+0xFC,0x87,0xEB,0x91,0x01,0xAF,0xC3,0x28,0x88,0x4A,0xE4,0x44,0xB6,0xDA,0x53,0x63,
+0x19,0x09,0x65,0xFA,0xE2,0xE1,0x8D,0x85,0xF9,0xDF,0x95,0xA0,0xAE,0xC2,0x09,0x21,
+0xEF,0xB1,0xDD,0xB4,0x4E,0x00,0x6C,0xC8,0xBB,0x6C,0xD7,0x51,0x07,0x6B,0x8E,0x0F,
+0x47,0xDE,0xB2,0x73,0xCF,0x57,0x3B,0x1E,0x5F,0x14,0x33,0xCD,0xB0,0xDC,0x34,0x02,
+0xB8,0x93,0xFF,0xC1,0x87,0xC7,0xAB,0xC6,0xC0,0x80,0xAC,0xC6,0xAA,0xC6,0x1D,0x31,
+0xE5,0xB9,0xD5,0xB6,0xD6,0xC4,0xA8,0x94,0x04,0xDC,0x68,0x5E,0x39,0x55,0x97,0x28,
+0x5C,0xF3,0x9F,0x45,0xB9,0x6A,0x06,0x55,0xFA,0x8D,0x96,0xF1,0xAB,0xC7,0x3C,0x11,
+0x83,0x51,0x3D,0x38,0x6C,0x09,0x65,0xE3,0x7B,0x24,0x17,0xD9,0xB9,0xD5,0x1F,0x20,
+0x22,0xCB,0xA7,0x03,0xD2,0xE4,0x88,0xB0,0x4B,0x50,0x27,0x9D,0x0A,0x66,0xB1,0x3D,
+0x05,0x16,0x7A,0xF9,0xE0,0xE9,0x85,0x8F,0x67,0x6A,0x0B,0x8B,0x63,0x0F,0x7E,0x9B,
+0xAC,0x97,0xFB,0xD1,0x78,0x2D,0x41,0xD3,0x54,0x4C,0x38,0x9E,0x53,0x3F,0x0A,0xDF,
+0xE0,0x98,0xF4,0x92,0xC8,0x68,0x04,0x26,0x6D,0x13,0x01,0xF8,0x1E,0x72,0xF5,0x6D,
+0x90,0x67,0x0B,0x1D,0x66,0x81,0xED,0x61,0xBD,0x0B,0xD1,0x30,0xC5,0xA9,0xB5,0xF6,
+0x2B,0x3E,0x52,0xFF,0x7A,0x25,0x49,0xD9,0xB3,0x66,0xDF,0x53,0x1C,0x70,0x86,0x1C,
+0xDE,0x7B,0x17,0x4F,0x48,0x28,0x44,0xE6,0x35,0x89,0x59,0x3A,0x33,0x5F,0xEE,0x5B,
+0xE8,0x83,0xEF,0x81,0x82,0xF0,0x9C,0xF4,0xB8,0x3E,0xD4,0x00,0x08,0x64,0xC2,0x4C,
+0x39,0xE6,0x8A,0x35,0x3B,0x22,0x4E,0x9F,0x9A,0x69,0xF6,0x75,0xEE,0x82,0xC9,0xA1,
+0x9B,0x81,0xED,0xF0,0xB7,0xC2,0xAE,0xF3,0x30,0xBC,0x5C,0x0A,0x96,0xFA,0x77,0x67,
+0x45,0xCD,0xA1,0x62,0xFD,0x5A,0x36,0x21,0x15,0xAD,0x79,0x3E,0xB5,0xD9,0x01,0x32,
+0x71,0x26,0x4A,0xBD,0x95,0xCB,0xA7,0xD8,0x44,0x1C,0x28,0xDE,0xD3,0xBF,0x82,0xD7,
+0x84,0x63,0x0F,0x0D,0x5A,0x24,0x48,0xF8,0x3A,0xC5,0x56,0x79,0x8F,0xE3,0x0C,0x05,
+0x6F,0x2A,0x46,0xAF,0x8A,0x70,0x1C,0x7C,0x6F,0x60,0x03,0x89,0x37,0x5B,0xFA,0x4B,
+0x12,0xEF,0x83,0x17,0xE8,0x69,0x05,0x07,0xA3,0x36,0xCF,0x13,0x36,0x5A,0xDB,0x6B,
+0x3A,0x1B,0x77,0xCB,0xBF,0x42,0x2E,0x7B,0x8E,0x2D,0xE2,0x25,0xD7,0xBB,0x96,0xC7,
+0x08,0x2C,0x40,0xCE,0x7E,0x05,0x69,0xFD,0x4C,0x16,0x20,0xDC,0xBC,0xD0,0x2A,0x10,
+0x75,0xE9,0x85,0x76,0x55,0x9B,0xF7,0x48,0xD8,0xDA,0xB4,0x84,0xAD,0xC1,0x5B,0x70,
+0xE7,0xAA,0xC6,0xA7,0xE3,0xF6,0x9A,0x93,0x73,0x2E,0x1F,0xDB,0x29,0x45,0xC7,0x68,
+0x9C,0xB3,0xDF,0xC5,0xCA,0x60,0x0C,0x2C,0x6C,0x32,0x00,0xD8,0xE2,0x8E,0xD7,0xB3,
+0x47,0x05,0xD2,0x78,0x22,0x4E,0x99,0x81,0x4B,0xB4,0x9C,0x12,0x38,0xEF,0x52,0x87,
+0x0B,0x0A,0xDD,0x3B,0x92,0x0B,0xDC,0x74,0x72,0xEB,0xA5,0x74,0x75,0xA2,0xAD,0x35,
+0xA2,0x8B,0x5C,0x13,0x0A,0xCF,0x18,0x28,0x41,0xCD,0x96,0x61,0x45,0x92,0xD9,0x71,
+0x85,0x56,0x81,0xE9,0x38,0xC2,0x15,0x17,0x6D,0xF7,0xBA,0x77,0x2C,0xFB,0x16,0xD7,
+0x24,0xCC,0x1B,0xD2,0x86,0x2F,0xF8,0x44,0x5D,0x83,0x8A,0x33,0x9F,0x48,0xB8,0xCA,
+0xFB,0x6E,0xB9,0xAF,0x53,0x4C,0x9B,0xF2,0xDC,0x2A,0x0B,0x1B,0x8D,0x5A,0x9B,0xFB,
+0x42,0x24,0xF3,0x5C,0x3C,0xE2,0x35,0x33,0x22,0x7B,0xF5,0xB4,0x1F,0xC8,0x30,0xC2,
+0x1F,0x0E,0xD9,0x2B,0x6D,0xE1,0x36,0x61,0xE6,0x27,0x31,0x2C,0x8C,0x5B,0xBA,0xDB,
+0xE0,0x43,0x94,0x99,0x25,0x71,0xA6,0xB9,0x79,0xB3,0xAE,0x27,0x96,0x41,0x93,0xE8,
+0x48,0x2C,0xFB,0x5E,0xA4,0x26,0xF1,0x6F,0x9D,0xCB,0x4A,0xBB,0x21,0xF6,0x29,0xE5,
+0xBE,0x94,0x43,0x10,0x08,0xC7,0x10,0x22,0xDF,0x78,0x08,0x4A,0x88,0x5F,0xAE,0xCB,
+0x5B,0x1A,0xCD,0x7B,0xEB,0x89,0x5E,0x8F,0xAE,0xED,0x79,0xAE,0x90,0x47,0xF4,0x89,
+0x0D,0xD6,0x01,0xE1,0x0C,0xE7,0x30,0x06,0x40,0xEC,0x97,0x41,0x30,0xE7,0x58,0x85,
+0x2F,0x2A,0xFD,0x3F,0x9D,0xB4,0x63,0xC4,0x47,0xAA,0x90,0x00,0x54,0x83,0xA8,0x11,
+0x76,0xCF,0x18,0x83,0x6F,0xE9,0x3E,0x6B,0x5A,0xC5,0x8D,0x72,0x82,0x55,0xD7,0xB8,
+0xF3,0x75,0xA2,0xBC,0x75,0x65,0xB2,0xFD,0x36,0x3F,0xE1,0xE4,0xF6,0x21,0x77,0x6C,
+0x3B,0x2E,0xF9,0x2F,0x20,0x46,0x91,0x8B,0x4A,0x95,0x9D,0x32,0xC4,0x13,0x70,0x59,
+0x40,0x37,0xE0,0x4D,0x09,0xD0,0x07,0x34,0x55,0x89,0x82,0x31,0x0F,0xD8,0x60,0x82,
+0xD2,0x74,0xA3,0x9C,0xBF,0xBD,0x6A,0xEF,0xFE,0x7D,0x29,0x6E,0x8B,0x5C,0xFC,0x9A,
+0xAF,0xB1,0x66,0x24,0x94,0x23,0xF4,0x5A,0x6A,0xB1,0xBD,0x36,0x9A,0x4D,0x8D,0xFA,
+0x9D,0x86,0x51,0x21,0x55,0x64,0xB3,0xDC,0xA8,0x8A,0x7F,0xCF,0xF1,0x26,0x31,0x2D,
+0xB5,0x72,0xA5,0xFD,0x02,0x4F,0x98,0xA0,0x85,0x91,0x52,0xF9,0x10,0xC7,0x7C,0x81,
+0xC8,0xB7,0x60,0x45,0x60,0x56,0x81,0xDB,0x49,0xC7,0x9E,0x63,0x11,0xC6,0x5D,0xA1,
+0x23,0xFE,0x29,0xE7,0xB0,0x02,0xD5,0x5F,0x1C,0x62,0xCB,0x93,0xA9,0x7E,0xAB,0xEF,
+0xD6,0xBB,0x6C,0x57,0x7F,0xED,0x3A,0x7F,0x62,0xBB,0xB5,0x34,0xF5,0x22,0x25,0x3D,
+0xE2,0x50,0x87,0x88,0x17,0x7C,0xAB,0x86,0x33,0x0A,0xE4,0xD4,0x93,0x44,0xA6,0xD8,
+0x3C,0x1C,0xCB,0x1A,0x5D,0xE4,0x33,0x54,0x16,0x1B,0xC1,0xE0,0xB0,0x67,0xD0,0x8D,
+0x9E,0x7B,0xAC,0xDF,0xD1,0x04,0xD3,0x38,0xBC,0xCE,0x6B,0x9F,0xC8,0x1F,0x6E,0x4B,
+0x4F,0x1E,0xC9,0x6B,0x68,0xD6,0x01,0x53,0x9E,0x99,0x49,0xEA,0x2E,0xF9,0x65,0xA6,
+0x79,0xE6,0x31,0xA5,0xA2,0x0E,0xD9,0x41,0x13,0x2E,0xC4,0xD0,0x15,0xC2,0x49,0xB1,
+0x8C,0xA3,0x74,0x15,0x90,0x03,0xD4,0x7E,0x95,0xC1,0x42,0xB9,0x3A,0xED,0x21,0xF6,
+0x37,0xFA,0x2D,0xF7,0x8C,0xA7,0x70,0xC6,0x9B,0xAC,0x4C,0xDA,0xE3,0x34,0x12,0x1C,
+0xBF,0x7A,0xAD,0xFF,0xC8,0x97,0x40,0xB2,0xD1,0x15,0x06,0x29,0x3F,0xE8,0x14,0xC6,
+0x56,0x20,0xF7,0x4C,0x26,0x6E,0xB9,0xA5,0x59,0x97,0x8E,0x23,0x9C,0x4B,0xEA,0x9B,
+0xE3,0xBE,0x69,0x67,0x0F,0xF8,0x2F,0x1A,0x5B,0xE4,0x8C,0x52,0x8A,0x5D,0xDD,0xBA,
+0x6A,0xD0,0x07,0x80,0x28,0xC6,0x11,0x03,0xA1,0xA1,0x76,0xED,0x08,0xDF,0x26,0xC3,
+0xA9,0x6D,0xBA,0xFE,0x44,0x77,0xA0,0xDE,0xA0,0x80,0x77,0xCD,0x52,0x85,0xCF,0x70,
+0x3D,0xF2,0x25,0xF5,0xC0,0x17,0xC0,0x3A,0xDE,0x59,0x09,0x6A,0xF4,0x23,0x04,0x1D,
+0x9C,0x68,0xBF,0xCE,0x5F,0xEC,0x3B,0x5E,0x61,0xE9,0xB6,0x65,0x7B,0xAC,0xC0,0x56,
+0x4D,0x0D,0xDA,0x7A,0x8E,0xAF,0x78,0xCC,0x12,0x0F,0xC5,0xF0,0x19,0xCE,0x57,0xA3,
+0x2C,0xD7,0x00,0xC1,0xDC,0xB3,0x64,0x82,0x34,0x4C,0xE3,0x95,0x35,0xE2,0x6D,0xB5,
+0x75,0x32,0xE5,0x7D,0x47,0x68,0xBF,0xC2,0x73,0xCA,0xA4,0x54,0xCA,0x1D,0x1D,0x3A,
+0x39,0x3D,0xEA,0x3E,0xBD,0xB5,0x62,0xE5,0xEF,0x0C,0x38,0x0E,0x57,0x80,0xFA,0x40,
+0x96,0x60,0xB7,0xCC,0x9E,0xAB,0x7C,0xD8,0xD3,0x66,0x04,0x58,0xFA,0x2D,0x69,0x7E,
+0xB0,0x53,0x84,0xD9,0x66,0x7E,0xA9,0xF5,0x28,0x02,0xFF,0xC7,0xC0,0x17,0x64,0x49,
+0xFF,0xA1,0x76,0x64,0xF8,0x92,0x45,0x87,0xB2,0xA3,0x65,0xFC,0x83,0x54,0xF6,0x98,
+0x07,0xDE,0x09,0xE3,0xDE,0xBB,0x6C,0x88,0x63,0x9A,0xB4,0x14,0x0A,0xDD,0x55,0xB2,
+0x5C,0x28,0xFF,0x4E,0x1E,0xEB,0x3C,0x18,0x98,0xFE,0x4F,0x8B,0x67,0xB0,0x8E,0x04,
+0x05,0xCD,0x1A,0xF2,0xE6,0x3E,0xE9,0x35,0x0D,0x13,0xDA,0xF3,0x20,0xF7,0x08,0xC5,
+0x67,0xEA,0x3D,0xB7,0xEE,0xBE,0x69,0xBD,0xC3,0x36,0x14,0x18,0x8F,0x58,0xE8,0x8A,
+0xA4,0x57,0x80,0xC9,0x01,0x50,0x87,0xBC,0x7A,0xE1,0xAD,0x76,0x78,0xAF,0x92,0x07,
+0xE6,0x9F,0x48,0x43,0xA9,0x91,0x46,0xD5,0xB8,0xDA,0x6F,0x8F,0x2A,0xFD,0x71,0xB6,
+0x3E,0x0F,0xD8,0x0B,0xA8,0x86,0x51,0xC3,0x27,0x4E,0xF0,0x84,0x1E,0xC9,0x11,0xE2,
+0xD3,0x9A,0x4D,0x73,0x06,0x6F,0xB8,0x84,0xF2,0x63,0x25,0x7C,0xCE,0x19,0x09,0x2A,
+0xF0,0x88,0x5F,0x42,0x1F,0xFC,0x2B,0x0E,0xB6,0xB7,0x61,0xEC,0xA6,0x71,0xE7,0xAC,
+0x1C,0xF3,0x24,0xD5,0x97,0x3C,0xEB,0x46,0x05,0x19,0xD2,0xF1,0x8E,0x59,0xC9,0xAA,
+0x73,0xEE,0x39,0xA7,0x62,0x5E,0x89,0xD1,0x70,0x98,0xA7,0x05,0x53,0x84,0xEE,0x50,
+0x72,0x00,0xD7,0x48,0x0D,0xF0,0x27,0x10,0xD5,0x01,0x02,0x39,0x6B,0xBC,0x90,0x16,
+0x32,0xDB,0x0C,0xD3,0x2E,0xEE,0x39,0x2D,0x7D,0xA7,0xAA,0x37,0x37,0xE0,0x1E,0xC4,
+0xF1,0x66,0xB1,0xAD,0xDD,0xA4,0x73,0x94,0x42,0x9F,0x95,0x30,0xD4,0x03,0x20,0x19,
+0xD4,0xA8,0x7F,0x46,0x79,0xC5,0x12,0x51,0x32,0x2B,0xE5,0xF4,0xE8,0x3F,0x4A,0x4F,
+0xDF,0x4E,0x99,0xAB,0xA0,0x06,0xD1,0x4B,0xAA,0xF9,0x7D,0xBE,0xC1,0x16,0x45,0x69,
+0x7A,0x1B,0xCC,0x5B,0x96,0x2B,0xFC,0x50,0x14,0x68,0xC3,0x91,0x44,0x93,0xF8,0x51,
+0x6C,0x0C,0xDB,0x5A,0xB3,0x1D,0xCA,0x43,0x58,0xB6,0x8F,0x03,0x3B,0xEC,0x00,0xD6,
+0x6B,0x80,0x8D,0x55,0xCA,0x86,0x14,0xF4,0x98,0x58,0xA6,0x66,0x4F,0x1A,0x33,0x0D,
+0x8D,0x8B,0x60,0xB3,0x09,0x5F,0x0E,0x37,0xD2,0xC0,0x74,0xFE,0x69,0x15,0x1A,0x24,
+0x29,0x33,0x7C,0x17,0xD1,0x95,0x1C,0xEF,0x25,0xAA,0xE9,0x94,0xF0,0x5F,0xC9,0xF7,
+0x3E,0x25,0x7D,0x00,0xE7,0xB0,0x0F,0xD9,0xB7,0xE6,0x37,0xD8,0x77,0xA7,0xB6,0x88,
+0x25,0x2D,0x6E,0x1B,0x3C,0x2B,0x4F,0x02,0x1F,0x27,0x5E,0x19,0x30,0xCF,0x99,0xA7,
+0xCB,0x2C,0x81,0xF5,0x92,0x44,0x8E,0xAC,0x23,0x82,0xC7,0xBC,0x76,0xB1,0xA1,0x9F,
+0x43,0xAE,0x8B,0x7D,0x68,0xFB,0xCB,0x56,0x16,0xB0,0xC0,0x8E,0x3F,0x7F,0x26,0x18,
+0xFE,0x6D,0xF5,0xC0,0x22,0x08,0x72,0x1C,0x11,0x8F,0xF8,0xB1,0xE2,0x41,0xC5,0xFB,
+0xBF,0x8C,0x55,0x81,0xA3,0x20,0xDB,0x9D,0x5A,0x00,0x3C,0x3E,0x0C,0x56,0x3C,0x02,
+0x2A,0x61,0x2D,0x14,0x4A,0x8E,0x9C,0x74,0xA2,0xD5,0x11,0xEB,0xC4,0x4E,0xEC,0xD2,
+0xD6,0x43,0xF3,0xE8,0xF0,0xB1,0x19,0xCE,0xD7,0xF7,0x46,0xC9,0x8C,0x96,0x7C,0x42,
+0xAD,0xAF,0x64,0x93,0x30,0x39,0x51,0x0E,0xCA,0x44,0xE8,0x7A,0x8A,0xB8,0x54,0x6A,
+0xCF,0x38,0x91,0xF1,0x72,0xC8,0xE2,0x4C,0x3E,0x31,0x69,0x0F,0xAC,0xB7,0x7D,0x43,
+0xE8,0x5A,0xD4,0xD6,0xF2,0xC0,0x6A,0xCC,0xD5,0xFF,0x4C,0xC1,0xE3,0x57,0xD2,0xEC,
+0xBA,0xB9,0x65,0x84,0x5D,0x8F,0x8A,0x63,0xA9,0x4A,0x85,0x74,0x90,0x2E,0xD8,0xE6,
+0x72,0xFB,0xEF,0x4C,0x9C,0x27,0xE3,0xA2,0x50,0x88,0xBE,0xB6,0x21,0xCD,0x8A,0xB4,
+0x84,0xA0,0x42,0xBA,0x5E,0xDE,0xD8,0x60,0xDA,0x40,0xFC,0x7E,0xBE,0xA9,0x71,0x4F,
+0x76,0xEF,0xFF,0x48,0xB2,0x40,0xAA,0x8C,0xE1,0xDA,0x5D,0xE4,0x6F,0x3B,0x32,0x0C,
+0x0D,0x03,0x68,0x33,0x27,0x38,0x47,0x19,0xAD,0x6A,0xA1,0x54,0x22,0xD1,0x95,0xAB,
+0xFB,0x58,0xC5,0xC5,0x77,0xF8,0xD7,0x49,0x32,0x91,0xC5,0xAF,0x94,0x0A,0xF8,0xC6,
+0x17,0x2A,0x5B,0x29,0xA4,0x61,0x9D,0x9A,0x72,0x81,0x95,0xBF,0x1C,0x42,0x38,0x06,
+0xF2,0x73,0xE7,0xCC,0x7F,0xFA,0xDD,0x41,0xB3,0xC6,0x13,0xF8,0x93,0x32,0xC7,0xF9,
+0x45,0xC9,0xEA,0x7B,0x67,0xB8,0x87,0x59,0x7E,0x21,0x39,0x1F,0x58,0x36,0x08,0x36,
+0x18,0x66,0x18,0x26,0x79,0x9B,0xBA,0x47,0x28,0x1D,0x53,0x23,0x66,0xA5,0xA5,0x9B,
+0xD7,0x62,0xD3,0xE9,0xDB,0xE6,0x65,0xE5,0x4C,0x2C,0x06,0x12,0x3B,0x5B,0x06,0x38,
+0x48,0xF6,0xD8,0x76,0xBB,0x62,0x81,0x85,0xEB,0x52,0xDF,0x6C,0x56,0x90,0xA0,0x9E,
+0x28,0x12,0x5C,0x16,0x63,0xA8,0x93,0x5D,0xD6,0xE0,0x50,0xDE,0x85,0x08,0xEB,0xD5,
+0x4D,0xC3,0xE8,0x73,0x20,0x79,0x01,0x1E,0x43,0x93,0xB6,0xAD,0x70,0x9F,0x89,0xB7,
+0x05,0x09,0x6A,0x3B,0xA2,0x00,0xFA,0x9C,0x05,0xAB,0xC8,0x95,0xBD,0xB5,0x6E,0x50,
+0x5F,0xE0,0xD9,0x61,0x5B,0xEE,0xED,0x65,0x0F,0x23,0x4A,0x1D,0xE0,0x4B,0xCD,0xF3,
+0xF5,0x35,0xA6,0xCB,0x0A,0x0E,0x5C,0x34,0xCB,0x53,0xFE,0x6D,0xE5,0x79,0xFA,0xC4,
+0x9B,0xBC,0x41,0xA5,0x34,0x29,0x45,0x0A,0x74,0xA9,0xBB,0x97,0x9C,0x82,0x78,0x46,
+0xC3,0x26,0x83,0xFD,0xC2,0x84,0x1E,0xFC,0xF6,0xE1,0x71,0xDF,0x97,0x16,0xE7,0xD9,
+0x3B,0x10,0x4D,0x05,0x1A,0x4E,0x0C,0x24,0xCC,0x6C,0xC6,0x52,0x80,0x3A,0xDC,0xE2,
+0xDF,0x68,0xD1,0xE1,0x6B,0xAA,0x99,0x55,0xFC,0x69,0xF3,0x57,0x3A,0x4D,0x11,0x2F,
+0x86,0xD3,0x33,0xB8,0xCF,0xB6,0x21,0xF1,0x9F,0x67,0x9E,0x59,0xD0,0x7E,0xC8,0xF6,
+0x75,0xBD,0xAE,0x4B,0xB0,0x31,0xD9,0x8E,0xF2,0xC1,0x55,0xFF,0xFE,0xF9,0x61,0x5F,
+0x9E,0x89,0x71,0xA0,0x21,0x59,0x20,0x1F,0x12,0x90,0xE4,0xAE,0x1B,0x7A,0x07,0x39,
+0x5E,0xC1,0xF9,0x60,0xC8,0xF7,0x67,0xF6,0xB9,0x4E,0x91,0x70,0x6D,0x31,0x3A,0x04,
+0x39,0x63,0x3C,0x07,0x28,0x7B,0x0B,0x16,0xC6,0xE4,0x44,0xDA,0xAB,0x8F,0x42,0x7C,
+0x57,0xEA,0xDB,0x69,0x83,0x24,0xFF,0xBD,0xDF,0x77,0xCE,0x49,0xA7,0x23,0xE2,0xDC,
+0xA3,0xC2,0x07,0x9D,0xA8,0x73,0x83,0x96,0xE9,0x5A,0xD5,0x64,0x0B,0x6E,0x03,0x3D,
+0xDB,0x7C,0xC1,0xE5,0xCE,0x96,0x00,0xF0,0xB5,0xEE,0x3D,0xD0,0xC9,0xF4,0x5B,0x65,
+0x92,0x97,0x63,0xAC,0x9A,0x46,0x84,0xA4,0x45,0xBB,0x98,0x85,0x87,0x02,0xE3,0xDD,
+0x12,0x1F,0x6B,0x2C,0x1C,0x2F,0x6B,0x22,0x17,0xA7,0xD6,0x99,0xA4,0x3F,0xFD,0xC3,
+0x0B,0x64,0x09,0x35,0x8A,0x06,0xD4,0xB4,0x14,0xB8,0xCA,0x86,0x7F,0x2F,0x36,0x08,
+0x94,0xF0,0x02,0xAA,0xEF,0xB2,0x05,0xD1,0x10,0x98,0xEE,0xA6,0xDC,0xD2,0x68,0x56,
+0x51,0x8D,0xBA,0x6F,0x71,0x99,0xB0,0x4F,0x48,0x0C,0x22,0x32,0xBC,0xA3,0x79,0x47,
+0x0F,0x70,0x19,0x31,0x78,0xBB,0x9B,0x46,0x26,0xB5,0xF5,0x8B,0x37,0xF7,0xA6,0x98,
+0xF3,0x52,0xC7,0xCD,0x2B,0x2A,0x59,0x15,0x67,0xB2,0xB3,0x8C,0xA3,0x07,0xC2,0xFC,
+0x50,0xAC,0x9A,0x6E,0xA9,0x53,0xA2,0x97,0xC2,0xC4,0x60,0xFA,0x4A,0x28,0x04,0x3A,
+0xEA,0x29,0xA5,0xD4,0x25,0x49,0x34,0x1B,0x54,0xA8,0x9A,0x96,0x9E,0x88,0x70,0x4E,
+0x09,0x17,0x78,0x37,0xEA,0x82,0x30,0xD4,0x9D,0x6F,0x94,0x51,0xC3,0x76,0xD3,0xED,
+0x66,0xBF,0xBF,0x58,0xBD,0x03,0xE6,0x83,0x01,0x8B,0xEC,0xB5,0xCE,0xCC,0x64,0x5A,
+0x3F,0x04,0x5D,0x01,0x45,0xCD,0xD0,0x7B,0x88,0x5C,0xB2,0x62,0xAF,0xAB,0x62,0x5C,
+0xB1,0xE1,0x36,0x8F,0x0B,0x2E,0x7D,0x35,0x6C,0x2D,0x27,0x13,0xED,0xF1,0x7A,0x44,
+0x4B,0xA4,0x89,0x75,0x80,0x75,0xAD,0xBE,0x3D,0x2E,0x75,0x10,0xDD,0xC4,0x7F,0x41,
+0xE9,0x7B,0xF4,0xD7,0xE3,0xA0,0x1B,0xDD,0x15,0xAF,0xDC,0x91,0xEC,0xE7,0x6D,0x53,
+0x2B,0x40,0x0D,0x15,0x2D,0x4B,0x3E,0x13,0x0A,0x14,0x78,0x2A,0xFD,0xE5,0x7E,0x40,
+0x01,0x1D,0x7A,0x3F,0x2E,0x1A,0x6C,0x10,0x92,0xD0,0x24,0xEE,0xE4,0x6F,0xED,0xD3,
+0x2F,0x54,0x1D,0x11,0xC7,0xB4,0x2B,0xF9,0x52,0x80,0xB4,0xBE,0x13,0xF2,0x87,0xB9,
+0x20,0x18,0x5E,0x1E,0x82,0x04,0xDE,0xBC,0x34,0xB9,0xEB,0x87,0xA1,0x0D,0xCA,0xF4,
+0x73,0xDA,0xCF,0x4D,0x0E,0x1E,0x48,0x30,0x51,0x9F,0xA8,0xA1,0xF1,0x49,0xDE,0xE0,
+0xAE,0xFD,0x35,0x90,0x03,0x2C,0x77,0x3D,0x47,0xB3,0x92,0x8D,0x57,0x86,0xB7,0x89,
+0x96,0xCD,0x66,0x34,0x6B,0xBA,0x92,0x15,0x53,0xA6,0xC8,0x31,0xA5,0x70,0xE8,0x89,
+0x64,0x90,0xC9,0x69,0x75,0x87,0x8C,0x36,0x39,0xF0,0xF4,0x0D,0x36,0xDD,0xD6,0x24,
+0x69,0x27,0x73,0xDE,0x6D,0xDD,0x94,0x74,0x13,0x3D,0x13,0xEA,0x32,0x12,0x1D,0xEB,
+0xD5,0xC2,0x2A,0x3B,0xB6,0x9D,0x4F,0xEF,0x95,0xFC,0x54,0xAD,0x42,0xED,0x92,0x14,
+0x4B,0x2E,0x58,0xD7,0x65,0xD7,0x9C,0x76,0xC5,0xBC,0x44,0xBD,0x0A,0x2D,0x1A,0xD4,
+0xE6,0xD8,0x03,0x21,0x35,0x47,0xCC,0xB6,0xA1,0x23,0xBF,0x46,0xD1,0x40,0xAC,0xB9,
+0x71,0xA3,0xEF,0x5A,0xA0,0xAA,0x59,0xCE,0x5D,0x6F,0x0F,0xF6,0x3B,0xE7,0xE1,0x1E,
+0xCC,0x51,0xA0,0xA8,0x4C,0xD8,0xB5,0x50,0xFC,0x54,0x95,0x6C,0xA9,0xA4,0x30,0x5D,
+0xCF,0x4E,0xBC,0xB7,0x26,0x45,0xDF,0xA7,0xBB,0xFA,0x7C,0x85,0x82,0xAD,0x12,0x54,
+0x28,0x20,0x35,0xD9,0x18,0x5C,0xE1,0x80,0xFE,0x45,0x86,0x7F,0x79,0x2F,0x6B,0xD6,
+0x57,0x8A,0xE0,0x73,0x49,0xED,0xB0,0x60,0x4A,0x81,0xF6,0x0F,0x4B,0x18,0x6E,0xE1,
+0xE4,0xD0,0x09,0x29,0xB0,0xFA,0x49,0x8E,0xC8,0x8B,0x7E,0x87,0xB5,0xBB,0x33,0x42,
+0x66,0x98,0xC3,0x61,0x32,0x01,0xCB,0xF7,0xB6,0xCD,0x46,0xBF,0x9F,0x5C,0xFE,0xA5,
+0xD2,0xFD,0x12,0x04,0x71,0x93,0x88,0x26,0x50,0x58,0x35,0xCC,0x08,0x3E,0x0B,0xC7,
+0x56,0x9D,0xF6,0x64,0xA9,0x81,0x50,0xEC,0xDF,0x65,0x87,0x7E,0x90,0x75,0xD8,0x8C,
+0x5D,0x02,0x62,0xFB,0xC9,0x65,0x30,0x68,0x06,0xC2,0xF9,0x00,0x5B,0xD3,0xB5,0x2A,
+0x7B,0x2B,0x6D,0xD2,0x30,0x72,0xC9,0x86,0xF8,0x9F,0x5A,0xA3,0x41,0x10,0x6C,0xE9,
+0x05,0x96,0xAE,0x6F,0x7A,0xCB,0x83,0x75,0xC0,0x98,0x65,0x9C,0x7F,0xF3,0xB1,0x0A,
+0x0F,0x1E,0x2C,0xE7,0x80,0x8E,0x79,0xCA,0xC7,0xAD,0x57,0xAE,0xB1,0x74,0xF8,0x8D,
+0xE0,0xF0,0x2D,0x09,0x2E,0x4F,0xD7,0xA5,0x5E,0x91,0xF2,0x0B,0xCF,0x4C,0xBE,0xB5,
+0xF3,0xEB,0x25,0x12,0xF5,0x0F,0x0C,0x3E,0x37,0x39,0x33,0xCA,0xA7,0x63,0xF9,0x9A,
+0xF2,0xFC,0x33,0x05,0xC3,0x1C,0x3A,0x1B,0xE9,0xAB,0x7F,0x86,0x5F,0x1C,0x7E,0xE5,
+0xEE,0x58,0x8B,0xA1,0x1B,0x0E,0xE2,0xD1,0x74,0x5C,0x15,0xEC,0x15,0xCF,0xE7,0x36,
+0x03,0xBE,0x80,0x47,0xD8,0x14,0x21,0x08,0xA6,0x16,0x8D,0x74,0x1A,0xE6,0xC1,0x1F,
+0x61,0xA7,0xFB,0x5E,0x8E,0xE3,0x77,0xA9,0xBE,0xDE,0x5D,0xA4,0xCD,0x5F,0xAF,0xA6,
+0xEB,0x6F,0xB9,0x96,0x4F,0x8A,0xB6,0x01,0x85,0x27,0x9F,0x66,0x2E,0x0D,0x1E,0xF4,
+0x5A,0x3D,0x5A,0xC4,0xE0,0x6A,0x19,0x4E,0x4C,0x5B,0x2A,0xD3,0x57,0x07,0x6D,0xFE,
+0x1F,0x1A,0x38,0xE3,0x60,0xE2,0x99,0x46,0x69,0xB0,0xE4,0x1D,0xB7,0xA8,0x22,0x51,
+0xEA,0x78,0xAF,0x81,0x22,0x51,0xDB,0xB7,0xE8,0x44,0x91,0x68,0xB8,0x81,0x04,0x78,
+0x7D,0x03,0x43,0xFA,0xE2,0x19,0x1B,0x3F,0x46,0x59,0x22,0xDB,0x96,0xA9,0x02,0x50,
+0xA3,0xFF,0x61,0x06,0x58,0x9C,0xA1,0x00,0x11,0x2C,0x00,0xF9,0x4E,0x39,0x4A,0xC0,
+0xDB,0x6A,0x8C,0x93,0xB1,0xDB,0x48,0xAE,0x3C,0xD4,0xD5,0x2C,0x56,0xE9,0x82,0x10,
+0xB8,0x64,0xE1,0x9D,0x19,0x7D,0xE0,0xA0,0x27,0xE2,0xF8,0x01,0xF1,0xAF,0x63,0x56,
+0xD3,0xEA,0x04,0x13,0x57,0xD0,0xAE,0x43,0xB2,0x06,0x89,0x70,0xAB,0xB7,0x21,0x4E,
+0x31,0xB3,0xBF,0x4A,0xAF,0xE6,0x56,0x8D,0xEC,0x8F,0x5E,0xA7,0xCC,0xB1,0x40,0x48,
+0xF6,0xDC,0x17,0x25,0xF8,0x30,0x01,0x0C,0x94,0x13,0xBA,0x43,0x76,0x06,0x4D,0xFF,
+0x2B,0x3F,0x29,0xC6,0x37,0x34,0xCE,0xC7,0x9A,0xDA,0x7D,0x84,0x88,0xA5,0x10,0x5C,
+0x14,0x85,0xAC,0x7C,0xBB,0xA2,0x42,0xDD,0x60,0x4C,0x11,0xE8,0x28,0xD1,0xC4,0x28,
+0x49,0x26,0x52,0xDF,0x39,0x59,0xC0,0xA4,0xB3,0xE9,0x67,0x9E,0x07,0x17,0x2D,0xEE,
+0x97,0xDA,0x70,0x23,0x6A,0x9B,0x93,0x35,0xF5,0xA8,0x60,0x99,0xF7,0x73,0xB9,0x8A,
+0xBB,0x7B,0xFD,0x82,0x11,0x77,0xE8,0xA2,0x92,0xC9,0x66,0x9F,0x86,0x62,0xD9,0x9B,
+0x41,0xA6,0xDA,0x5F,0x1C,0x48,0xE5,0x90,0xA8,0xDF,0x4A,0xB3,0x49,0x0B,0x7F,0xF2,
+0xD0,0xF5,0x18,0x0C,0x90,0xDE,0x69,0x8A,0xEB,0xBA,0x6C,0x95,0x0D,0x1F,0x2F,0xE6,
+0x93,0xFA,0x54,0x03,0xD5,0x2B,0x2C,0x3A,0xB4,0xDC,0x55,0xAC,0xF2,0x52,0x9D,0xAB,
+0xF4,0xD4,0x1D,0x2D,0x3C,0x6C,0xC5,0x94,0x24,0x1C,0x05,0xFC,0x6F,0x38,0x6A,0xC1,
+0x83,0xFE,0x40,0x07,0x3F,0x3E,0xC6,0xC5,0x78,0x84,0xC1,0x38,0xE5,0xAB,0x73,0x52,
+0x7A,0x3C,0x7B,0xC5,0xF1,0x1B,0x08,0x2E,0xDC,0x9B,0x7A,0x83,0xE7,0xB8,0x62,0x41,
+0x07,0x9E,0xA4,0x67,0x92,0xAD,0x6B,0xFB,0x75,0xB3,0xFB,0x02,0xC4,0xAA,0x53,0x53,
+0xB2,0xEC,0x63,0x15,0x3A,0x0B,0xC3,0xF5,0x44,0x48,0x31,0xC8,0x8F,0x97,0x25,0x6E,
+0x77,0x8B,0xC1,0x72,0xDA,0x67,0x23,0x79,0x91,0x37,0x9B,0x62,0x31,0xEF,0xE3,0x16,
+0xFF,0x4B,0x89,0xB2,0x33,0x20,0xCA,0xD7,0xE4,0x9C,0x45,0xBC,0x7A,0xD2,0x95,0x2B,
+0x20,0xA0,0xBD,0x59,0xA2,0xD9,0x5B,0xBF,0x55,0x7C,0x14,0xED,0xF9,0xB4,0x70,0x4D,
+0xBD,0x53,0xD3,0xAA,0xDD,0x21,0x24,0x38,0x9E,0x11,0xB2,0x4B,0x7E,0x1D,0x5E,0xE4,
+0x5F,0x0A,0x68,0xF3,0x79,0x99,0x80,0x24,0xF3,0x72,0xBC,0x45,0x4D,0xC4,0xB4,0x3D,
+0xC3,0xEE,0x10,0x17,0x08,0x0C,0xF1,0xC0,0xC6,0x42,0xB9,0x40,0x3A,0x09,0x0E,0xF0,
+0x0D,0x16,0x26,0xEF,0xD0,0x1E,0x29,0x0A,0x71,0x78,0x34,0xCD,0x16,0x32,0x19,0xCB,
+0x34,0x84,0x8D,0x7D,0x63,0xB0,0x9A,0x17,0x22,0xC6,0xD9,0x20,0xA3,0xAC,0x32,0x55,
+0x8C,0x41,0xF0,0xB8,0xFD,0x05,0x04,0x3C,0xEE,0x9E,0x4D,0xB4,0xD2,0xBD,0x52,0x44,
+0x87,0xDE,0x64,0x27,0x98,0xD4,0x61,0x88,0xCA,0x9A,0x6D,0x94,0x2F,0xE3,0xF1,0x1A,
+0xE5,0xC7,0x1F,0x3E,0x0E,0x6B,0xF7,0xA1,0xD6,0x99,0x72,0x8B,0x3F,0x28,0x2A,0xD1,
+0xED,0x47,0x97,0xBE,0x88,0x84,0x71,0xC8,0x98,0xCB,0x6E,0x97,0x02,0x36,0x09,0xCF,
+0x4F,0x0E,0x7C,0xF7,0xDC,0x00,0x25,0x18,0x3D,0x3B,0x3B,0xC2,0xF4,0x8E,0x47,0x77,
+0x89,0x76,0xC2,0x8F,0xBA,0x83,0x43,0xFD,0xD5,0x67,0x8F,0x76,0x6E,0xD6,0x85,0x2F,
+0x55,0x82,0xEA,0x7B,0x91,0xFF,0x68,0xAA,0xCE,0x51,0xA2,0x5B,0x23,0x37,0x29,0xCE,
+0x89,0x71,0x71,0x99,0x6E,0x1B,0x1B,0x14,0x1C,0x52,0x1C,0x2F,0x24,0x24,0x2C,0x69,
+0x03,0xE2,0xE2,0x80,0xF6,0xDF,0xDF,0x48,0x1F,0x00,0x1F,0x7E,0x0E,0x0E,0x71,0x1E,
+0xA8,0x70,0x70,0xB9,0x59,0x21,0x21,0x19,0xB1,0xC1,0xB1,0x11,0x44,0x44,0xC8,0xED,
+0x8B,0x62,0x62,0x88,0x71,0xA0,0xA0,0xB0,0xD2,0x77,0xD2,0xC4,0xE6,0xE6,0x17,0x90,
+0x25,0xD1,0xD1,0x95,0x35,0x90,0x90,0xC4,0x3F,0x24,0x3F,0x7A,0x7C,0x7C,0xB6,0xAB,
+0xEA,0xB8,0xB8,0x33,0x23,0xBC,0xBC,0xFE,0x32,0x1B,0x32,0x48,0xA1,0xA1,0x91,0x51,
+0x9E,0x88,0x88,0x77,0x36,0x8F,0x8F,0xD8,0xF6,0x47,0xF6,0xD0,0x20,0x20,0x38,0x79,
+0x61,0xC5,0xC5,0xC5,0x50,0xB6,0xB6,0x87,0xB3,0xB2,0xB3,0x60,0x2F,0x2F,0x74,0x3A,
+0x44,0x0B,0x0B,0x2E,0xA6,0xCB,0xCB,0x0C,0x98,0xCE,0x98,0x37,0x5F,0x5F,0xC0,0xFE,
+0xE4,0x7F,0x7F,0xFA,0x30,0xA7,0xA7,0xF6,0x14,0x58,0x14,0x2D,0xE5,0xE5,0x45,0xC1,
+0x9B,0xA9,0xA9,0x53,0x42,0xBA,0xBA,0x99,0x49,0xF7,0x49,0xDF,0x00,0x00,0x1C,0x7D,
+0x6B,0xCD,0xCD,0xC7,0x03,0xBD,0xBD,0xDF,0x1A,0x35,0x1A,0x4E,0xFC,0xFC,0x3E,0xA3,
+0xC7,0x6D,0x6D,0xCB,0xEC,0x53,0x53,0xDE,0x74,0xBC,0x74,0xA9,0x30,0x30,0x68,0x39,
+0x9D,0x75,0x75,0x89,0x08,0x22,0x22,0x4B,0x3A,0x11,0x3A,0x4A,0xBE,0xBE,0x8D,0x52,
+0x1A,0xDC,0xDC,0xA7,0xF9,0x60,0x60,0xF8,0xDB,0x5C,0xDB,0xE6,0x06,0x06,0x7B,0x1C,
+0xA0,0x6B,0x6B,0xAA,0x65,0x84,0x84,0x80,0x8C,0x8A,0x8C,0x67,0x69,0x69,0xD3,0xDB,
+0x98,0x54,0x54,0xAD,0xD1,0xE1,0xE1,0x51,0xFF,0x6C,0xFF,0xF2,0xD4,0xD4,0x10,0xA5,
+0x6E,0xEC,0xEC,0xE3,0x21,0xB4,0xB4,0xF4,0xAB,0xE8,0xAB,0x22,0x9D,0x9D,0xFB,0x07,
+0x4F,0xED,0xED,0xC3,0xBB,0x78,0x78,0xA2,0xB2,0x93,0xB2,0x40,0x58,0x58,0x86,0xBF,
+0x02,0x0C,0x0C,0x6F,0x8D,0x55,0x55,0xB9,0x99,0xEF,0x99,0x17,0xAC,0xAC,0xAE,0x63,
+0xBE,0x67,0x67,0xB8,0x74,0x97,0x97,0x82,0xDE,0x69,0xDE,0xD6,0x9B,0x9B,0x9C,0x66,
+0xCF,0x76,0x76,0xD8,0x2C,0x03,0x03,0x4E,0x40,0xDC,0x40,0xFD,0x5E,0x5E,0xE1,0xDE,
+0x53,0xF2,0xF2,0xC0,0x73,0xA8,0xA8,0xBA,0x2D,0x07,0x2D,0x4B,0x1D,0x1D,0x73,0x0F,
+0x43,0x39,0x39,0x1B,0x70,0xB7,0xB7,0xA6,0xBB,0xB8,0xBB,0x62,0x04,0x04,0x08,0x6D,
+0x21,0x1E,0x1E,0x5E,0x98,0x66,0x66,0x9F,0x5A,0xF5,0x5A,0xCE,0xD0,0xD0,0x04,0xB5,
+0x12,0xC7,0xC7,0xB4,0xFB,0x68,0x68,0xF2,0xFE,0x4D,0xFE,0xD2,0x89,0x89,0xBF,0x57,
+0x7A,0xE8,0xE8,0xF3,0x92,0xEE,0xEE,0x1D,0xF3,0x72,0xF3,0xE0,0xCC,0xCC,0x4A,0xE7,
+0x56,0xD3,0xD3,0xE4,0xA8,0x63,0x63,0xAA,0x2B,0x60,0x2B,0x2A,0x34,0x34,0x7C,0x29,
+0x5D,0x35,0x35,0x09,0xDD,0x41,0x41,0xFD,0xF9,0x0B,0xF9,0x93,0x51,0x51,0xAD,0x9D,
+0xE3,0x4D,0x4D,0xCF,0xA2,0xEB,0xEB,0x28,0x19,0x67,0x19,0x1F,0x36,0x36,0x0F,0x58,
+0x95,0x6E,0x6E,0x9A,0x96,0xCE,0xCE,0x39,0x81,0xB5,0x81,0x55,0x7A,0x7A,0xD1,0xCA,
+0x16,0x08,0x08,0x7F,0x76,0x9F,0x9F,0x88,0x10,0x4C,0x10,0x3D,0x91,0x91,0xE5,0x15,
+0x64,0xE4,0xE4,0xE1,0xB2,0xEF,0xEF,0x3C,0x52,0xFF,0x52,0xCC,0x27,0x27,0x7E,0x38,
+0xF3,0x86,0x86,0x14,0x27,0x9C,0x9C,0xDA,0x11,0x6D,0x11,0x1D,0x42,0x42,0xAF,0x8C,
+0x37,0x09,0x09,0x5F,0x28,0x23,0x23,0x6A,0xEA,0x09,0xEA,0x82,0xD8,0xD8,0x0E,0xB7,
+0xFC,0xAF,0xAF,0x32,0x8F,0x5D,0x5D,0xB3,0x8A,0xED,0x8A,0x06,0x47,0x47,0x9A,0xBC,
+0x15,0xF5,0xF5,0x81,0xAF,0x5C,0x5C,0x92,0x3B,0x30,0x3B,0x6A,0xFA,0xFA,0x59,0xC2,
+0xEE,0x77,0x77,0xF8,0x10,0xA6,0xA6,0xD7,0x05,0x29,0x05,0x4D,0x94,0x94,0xD0,0x25,
+0xD9,0x61,0x61,0xD9,0x61,0xA4,0xA4,0xA4,0x93,0x96,0x93,0x64,0x0A,0x0A,0x65,0x0E,
+0x27,0xC2,0xC2,0x84,0x6B,0x2C,0x2C,0x26,0x6A,0x81,0x6A,0x8A,0x50,0x50,0x8C,0xBD,
+0xBD,0x9A,0x9A,0x46,0xC9,0x65,0x65,0xCD,0x16,0x2B,0x16,0x5C,0x02,0x02,0x6F,0x0C,
+0x66,0xF7,0xF7,0xF0,0x56,0x9E,0x9E,0xA9,0x46,0xBB,0x46,0x9C,0xF4,0xF4,0x34,0xA1,
+0xC5,0x7E,0x7E,0xDA,0xBE,0x4F,0x4F,0x90,0x6F,0xB4,0x6F,0xBA,0x8B,0x8B,0xCC,0x26,
+0x57,0x3D,0x3D,0x0B,0x85,0xD5,0xD5,0x31,0x83,0xC6,0x83,0x24,0x79,0x79,0x83,0x9B,
+0x5A,0x07,0x07,0x3C,0x1A,0x2E,0x2E,0x55,0x56,0xEB,0x56,0xDC,0x4A,0x4A,0xA5,0x8E,
+0xC9,0xAA,0xAA,0x02,0x4C,0x12,0x12,0x3F,0x48,0xD6,0x48,0xFF,0x17,0x17,0x0A,0x7C,
+0x2E,0x37,0x37,0x78,0x16,0x8E,0x8E,0xF9,0x95,0xF1,0x95,0x05,0x18,0x18,0x46,0x3F,
+0x5E,0xC8,0xC8,0xF7,0xD7,0xC9,0xC9,0x7F,0x4E,0xB1,0x4E,0x9E,0xFD,0xFD,0x1F,0x83,
+0xFA,0x73,0x73,0xE8,0xB3,0xF8,0xF8,0x2A,0xC1,0x75,0xC1,0xD5,0xD9,0xD9,0x2F,0x97,
+0xD4,0x5B,0x5B,0xEE,0xAE,0x4B,0x4B,0x84,0x01,0x3D,0x01,0x5D,0xA2,0xA2,0xC3,0x00,
+0x3A,0x33,0x33,0x68,0x3E,0x0F,0x0F,0x50,0x92,0xB7,0x92,0x44,0xB0,0xB0,0xE0,0x31,
+0x22,0xE3,0xE3,0xA0,0xC6,0xDA,0xDA,0x7D,0x7B,0xF0,0x7B,0xEA,0x25,0x25,0x0D,0x49,
+0x42,0xD7,0xD7,0xF4,0xCD,0x45,0x45,0xE9,0x6C,0xE6,0x6C,0xEB,0xB5,0xB5,0xD5,0x01,
+0xA1,0x85,0x85,0x45,0x34,0x87,0x87,0xD2,0xAD,0x8F,0xAD,0x43,0x7D,0x7D,0x97,0x8B,
+0xDB,0x72,0x72,0xC8,0x5A,0x3E,0x3E,0x05,0x43,0x8E,0x43,0xAC,0xC0,0xC0,0x54,0xF5,
+0x3B,0xDD,0xDD,0x87,0xB1,0xF0,0xF0,0x20,0xC3,0x06,0xC3,0xA4,0xE7,0xE7,0x36,0xB0,
+0x33,0xC6,0xC6,0x94,0x41,0xA5,0xA5,0x85,0xE0,0x70,0xE0,0xF1,0x26,0x26,0x5F,0x18,
+0xCB,0xB9,0xB9,0x13,0xD3,0xE9,0xE9,0x5B,0xD6,0x63,0xD6,0xD4,0x31,0x31,0x49,0x19,
+0x76,0x3C,0x3C,0x2B,0xFC,0x57,0x57,0xCA,0xFB,0x78,0xFB,0xE2,0x64,0x64,0xEC,0xE9,
+0x79,0x15,0x15,0x0D,0xB6,0xCF,0xCF,0x18,0x38,0x62,0x38,0x3B,0x82,0x82,0xE7,0x04,
+0x13,0x29,0x29,0x5B,0x72,0xBF,0xBF,0xAC,0x59,0xA7,0x59,0x9F,0x4C,0x4C,0xC2,0xEF,
+0x2D,0xCA,0xCA,0x86,0x75,0x80,0x80,0x94,0x13,0x1E,0x13,0x6C,0xF1,0xF1,0x01,0x91,
+0xA3,0x96,0x96,0x54,0x7B,0x28,0x28,0x32,0x0D,0x23,0x0D,0x4F,0x2A,0x2A,0x41,0x0A,
+0xDD,0xAE,0xAE,0x12,0x47,0x8D,0x8D,0xAB,0xA3,0xE2,0xA3,0x20,0xC4,0xC4,0x40,0xE5,
+0xB8,0xCA,0x67,0xB9,0x87,0x40,0xD3,0x86,0xB2,0xDB,0x7C,0xDA,0x22,0xA8,0x9F,0x9E,
+0xC9,0x5F,0x83,0xC8,0x9F,0x02,0x89,0x9E,0xD9,0x55,0x99,0x54,0xC1,0x05,0xD1,0xD0,
+0x8B,0xEC,0x72,0x8A,0x36,0x2C,0x0E,0x37,0x97,0xED,0x6F,0xEC,0x6D,0x48,0x30,0x31,
+0x6F,0x94,0xEE,0x6E,0x81,0x21,0xB4,0x80,0x50,0x82,0xC7,0x83,0xEC,0x9E,0x67,0x66,
+0x20,0x18,0x2D,0x21,0xE1,0xA5,0x50,0xE0,0x75,0xB4,0xD4,0xB5,0xBC,0xDA,0x73,0x72,
+0x4C,0xE2,0xBB,0x4D,0x95,0x71,0xF0,0x94,0x4A,0x0E,0x51,0x0F,0xA6,0x4C,0xFF,0xFE,
+0x51,0x8D,0xC9,0x50,0x43,0xD8,0x8F,0x42,0xF6,0xEB,0x08,0xEA,0x54,0xE3,0xA2,0xA3,
+0x56,0xCB,0x88,0x57,0x27,0x4C,0x7F,0x26,0x28,0x17,0x2A,0x16,0xC5,0x21,0xF1,0xF0,
+0x7B,0xD0,0xBE,0x7A,0x3B,0x1E,0x31,0x3A,0x20,0x97,0xA2,0x96,0xF1,0x30,0xD4,0xD5,
+0x57,0xEA,0xA8,0x56,0x52,0xB8,0xFE,0x53,0xDA,0x4A,0x85,0x4B,0xC3,0x0F,0xD9,0xD8,
+0x64,0xCC,0xBD,0x65,0x62,0xFC,0x8A,0x63,0xF2,0xCB,0x2C,0xCA,0x5B,0x53,0x1D,0x1C,
+0x5D,0x93,0xDB,0x5C,0x2F,0x4E,0x75,0x2E,0xB1,0xC4,0x60,0xC5,0xEB,0xA6,0x58,0x59,
+0xF0,0x00,0xE5,0xF1,0x9B,0x12,0x9D,0x9A,0xE2,0xCF,0x38,0xCE,0xA4,0x46,0xF7,0xF6,
+0x34,0x5C,0x7D,0x35,0x08,0x0B,0x17,0x09,0x95,0xE5,0x65,0xE4,0xF5,0x14,0xF4,0xF5,
+0xCA,0x0D,0xD2,0xCB,0x9A,0x32,0xBC,0x9B,0x66,0xAF,0xDC,0xAE,0x9A,0xD5,0x5A,0x5B,
+0x4B,0xA4,0xFA,0x4A,0x88,0x03,0x9F,0x89,0x1B,0x0D,0x03,0x0C,0x4F,0x63,0x39,0x38,
+0xAA,0xE9,0x56,0xAB,0xDF,0x82,0x49,0xDE,0x16,0xBA,0xB9,0xBB,0x18,0x1F,0x12,0x13,
+0x00,0x3C,0x29,0x01,0xA7,0x44,0xF7,0xA6,0xD3,0xDD,0x1B,0xDC,0x94,0x73,0xF2,0xF3,
+0x25,0x2D,0x1D,0x24,0x84,0x11,0x81,0x85,0x41,0x91,0xC5,0x90,0xDE,0xA1,0x6A,0x6B,
+0x74,0x9C,0xFD,0x75,0xE2,0xF4,0x02,0xE3,0x9E,0x7A,0xF1,0x7B,0xB6,0x58,0xFB,0xFA,
+0x8D,0x8B,0x13,0x8C,0xF4,0xD5,0x35,0xF5,0x3E,0x3B,0x10,0x3A,0x45,0xE1,0xB1,0xB0,
+0x83,0xE6,0x70,0x82,0x2D,0x3F,0x06,0x2C,0xDC,0x62,0xAB,0x63,0x59,0x59,0x15,0x14,
+0x05,0x09,0x19,0x04,0x02,0x78,0x6E,0x03,0x6C,0x27,0x5E,0x26,0x6B,0x66,0x18,0x19,
+0x88,0xBE,0x23,0x89,0x39,0x6F,0x42,0x38,0xA2,0xDF,0x68,0xDE,0xA1,0x74,0xC0,0xC1,
+0x7C,0x96,0xFF,0x7D,0x8D,0x33,0xAA,0x8C,0xED,0x70,0x88,0x71,0x5D,0x7D,0x35,0x34,
+0xE8,0x5A,0xA7,0xE9,0x9C,0x53,0xDB,0x9D,0x55,0xB5,0xF5,0xB4,0x76,0xC8,0xAB,0xAA,
+0x43,0xAE,0xF8,0x42,0x18,0x4B,0x47,0x19,0x84,0xF6,0x67,0xF7,0xC0,0x13,0xC6,0xC7,
+0x5C,0xB2,0xFB,0x5D,0xD3,0x90,0x57,0xD2,0xE6,0xEF,0x1C,0xEE,0xE9,0xAC,0x50,0x51,
+0x0A,0x45,0x5A,0x0B,0xBE,0x26,0x8C,0xBF,0x2E,0x3F,0x04,0x3E,0x79,0x78,0x14,0x15,
+0x5F,0xE0,0xAA,0x5E,0x06,0x68,0x7A,0x07,0x8C,0x76,0xEF,0x77,0xA9,0xFC,0x40,0x41,
+0x93,0xB6,0x30,0x92,0x07,0x48,0x5B,0x06,0x34,0xB3,0x92,0xB2,0xCB,0x87,0x59,0x58,
+0xBE,0xAD,0x06,0xBF,0xE6,0xE4,0x16,0xE7,0xE8,0x47,0xBA,0x46,0x9C,0xFB,0x72,0x73,
+0xC5,0x41,0x91,0xC4,0xED,0xB7,0x4E,0xEC,0x05,0xA1,0xB1,0xA0,0x57,0xFF,0xBD,0xBC,
+0xF9,0x2B,0xC7,0xF8,0x40,0x89,0xDD,0x41,0xF7,0xFC,0x1E,0xFD,0x74,0xC2,0xA3,0xA2,
+0x65,0xED,0x9D,0x64,0xDD,0xF3,0x3A,0xDC,0xB4,0xF3,0x52,0xF2,0x8E,0xE5,0x7E,0x7F,
+0x22,0x6B,0x5C,0x23,0x22,0x7C,0x4A,0x23,0x08,0x16,0x0B,0x17,0x15,0xA5,0xA5,0xA4,
+0x8E,0xD9,0x42,0x8F,0x70,0xCD,0xA9,0x71,0x87,0xE9,0x7B,0xE8,0xD7,0x3F,0xFD,0xFC,
+0x75,0xBD,0xDD,0x74,0x1D,0x7B,0x72,0x1C,0x2A,0x1F,0x20,0x1E,0x17,0xAF,0xAD,0xAC,
+0xA4,0x84,0x35,0xA5,0x94,0x51,0xD1,0x95,0xAD,0x60,0xD8,0x61,0x31,0xA0,0x84,0x85,
+0x3E,0x25,0x0E,0x3F,0xD7,0x80,0x43,0xD6,0x10,0x92,0x97,0x93,0xAF,0xD2,0x68,0x69,
+0xB7,0x86,0x24,0xB6,0x1F,0x0A,0x01,0x1E,0x49,0x11,0x4D,0x10,0xE1,0x24,0xD0,0xD1,
+0x4D,0xC3,0x9B,0x4C,0x9D,0x73,0xFA,0x9C,0xAE,0x7F,0xC4,0x7E,0xC6,0x3D,0xEE,0xEF,
+0x4F,0xB0,0xEA,0x4E,0x8B,0x52,0xCD,0x8A,0x85,0xE1,0x71,0xE0,0xEF,0x82,0x78,0x79,
+0xC7,0x32,0xE0,0xC6,0x28,0x0F,0x33,0x29,0x36,0xBB,0x98,0xBA,0x01,0x95,0x81,0x80,
+0x04,0x28,0x39,0x05,0x0E,0x6A,0x70,0x0F,0xB3,0xCC,0x6A,0xCD,0x47,0xEB,0xB9,0xB8,
+0x77,0xCE,0xAC,0x76,0x6C,0x9F,0xE7,0x6D,0x07,0xA9,0xBB,0xA8,0x96,0x79,0xFA,0xFB,
+0xC8,0x7E,0xA3,0xC9,0xE3,0xD4,0x23,0xE2,0x3C,0x33,0x1A,0x32,0x09,0x1D,0x01,0x00,
+0xB6,0xA7,0x04,0xB7,0x45,0xB9,0xE8,0x44,0x37,0xAC,0x8E,0xAD,0x8D,0xF9,0x61,0x60,
+0x54,0xB8,0xF9,0x55,0xC3,0xD0,0x07,0xC2,0x64,0xA7,0xD6,0xA6,0x14,0xB3,0xB2,0xB3,
+0x6B,0x80,0xFE,0x6A,0x20,0x0D,0x39,0x21,0x1A,0x1A,0x15,0x1B,0xE7,0x0A,0xF8,0xF9,
+0xC3,0x26,0xF0,0xC2,0x7C,0xDF,0xB7,0x7D,0x81,0xC1,0x55,0xC0,0xC4,0x37,0xE6,0xE7,
+0x66,0xBF,0xCC,0x67,0x44,0x99,0xC9,0x45,0x6E,0x2F,0x54,0x2E,0xAB,0xF6,0x48,0x49,
+0x4E,0x91,0xCA,0x4F,0x2C,0x1F,0x27,0x2D,0x93,0xCD,0x4B,0xCC,0x7A,0x64,0x0B,0x0A,
+0x02,0x4F,0x58,0x03,0x53,0x98,0xDF,0x52,0x92,0xDA,0x5D,0xDB,0x5F,0x77,0x3D,0x3C,
+0xBC,0xDE,0x77,0xBD,0xD6,0xA0,0x62,0xD7,0x62,0x8F,0xF8,0x8E,0x69,0x6C,0x10,0x11,
+0x24,0x0C,0x3D,0x25,0xFF,0x86,0x6D,0xFE,0x8F,0x69,0xF3,0x68,0xB0,0x76,0xD3,0xD2,
+0xAE,0xFD,0x46,0xAF,0x3D,0x7F,0x56,0x3C,0x8A,0x5E,0xC1,0x5F,0x60,0xF2,0x87,0x86,
+0x6C,0xC6,0xBF,0x6D,0x6F,0xCE,0xB5,0x6E,0x00,0x96,0x83,0x97,0xC8,0x9B,0x46,0x47,
+0xD5,0x11,0xD1,0xD4,0x98,0x43,0xCF,0x99,0x7E,0x2B,0x40,0x2A,0x27,0x9A,0xA8,0xA9,
+0x1B,0x34,0x3A,0x1A,0x37,0x0C,0x2F,0x36,0x3B,0x0C,0x22,0x0D,0x2F,0x12,0x28,0x29,
+0x13,0x3E,0x38,0x12,0x99,0x63,0xEE,0x98,0x1C,0x32,0x3B,0x33,0x5E,0x61,0x2A,0x2B,
+0xA0,0x90,0x25,0xA1,0xB1,0x65,0xC0,0xB0,0x8B,0x49,0xD7,0x48,0xD6,0x29,0xEA,0xEB,
+0xE4,0x44,0xB5,0xE5,0xD9,0xE3,0x2E,0xD8,0xBA,0x5B,0xF4,0x5A,0xCF,0xA3,0x79,0x78,
+0x31,0x69,0x4D,0x30,0x09,0x2B,0x36,0x08,0xC2,0xCE,0x19,0xCF,0x61,0xE4,0x90,0x91,
+0xAF,0xE2,0xB3,0x69,0x5D,0xD3,0xD6,0xFB,0x14,0x4E,0xA4,0x2F,0x2F,0x66,0xB7,0xED,
+0xD2,0x40,0x6C,0xCB,0x3E,0x65,0xB5,0x2E,0xBD,0x66,0x25,0xAE,0x0C,0x74,0x86,0xFF,
+0x21,0x0A,0xD5,0x81,0x90,0xA4,0x1B,0x41,0xEC,0xC9,0xDB,0x50,0xA7,0xE6,0xBF,0x6D,
+0x56,0x20,0x88,0xAB,0x93,0xF6,0x18,0x10,0xB0,0x51,0x1F,0x94,0x2D,0x75,0xA6,0xFE,
+0x05,0x2B,0xD0,0xA0,0x3C,0x16,0xB7,0x5F,0x23,0x6F,0xB2,0x39,0xC5,0xC1,0xFA,0x4A,
+0x46,0x24,0x9C,0xAF,0x79,0xE3,0xF2,0xEF,0x7C,0x09,0x8B,0x00,0x3A,0x8C,0x48,0x07,
+0x6E,0xA5,0x35,0x2E,0xBD,0xBF,0x36,0x77,0x5A,0x1C,0xB8,0x33,0x4E,0xBC,0x0C,0x37,
+0x94,0x78,0x12,0xF3,0xB0,0x80,0x3B,0x45,0x60,0x0A,0x94,0x1F,0x81,0xD5,0xAA,0x5E,
+0x9C,0xF8,0x9A,0x73,0x95,0x91,0x1E,0x71,0x7B,0x3C,0xB9,0x32,0xCF,0xC9,0xF8,0x42,
+0x42,0x04,0xB8,0x8F,0xC6,0x53,0x4D,0xE0,0x3D,0x7D,0xBE,0x35,0x3F,0xAD,0x6C,0x26,
+0xFE,0xE1,0xE1,0x6A,0x9B,0xFC,0x10,0x12,0x52,0x0F,0xA3,0x28,0x40,0x7B,0xC5,0xF0,
+0xC1,0x5B,0x64,0xD0,0x17,0x6A,0x9C,0x08,0xA8,0x99,0xCF,0x44,0xE0,0x0F,0x11,0x84,
+0xE4,0x6D,0x77,0xE6,0x03,0x2E,0x88,0x58,0x24,0x5A,0x80,0x0B,0x04,0x6F,0x95,0xE4,
+0x23,0x02,0xDF,0x89,0x54,0xF8,0xDF,0xD9,0x5C,0xC6,0x64,0xEF,0xBE,0xD8,0x98,0x53,
+0x6D,0xBA,0x29,0x31,0xB5,0xB5,0x3E,0x75,0xEF,0x37,0x26,0xAD,0x39,0x71,0xB6,0xFA,
+0x06,0x34,0xCC,0xBF,0xFB,0x18,0x70,0x96,0x7A,0xD3,0x57,0xDC,0x63,0x69,0xF4,0xE2,
+0x5C,0xA8,0x0A,0x23,0x16,0x4B,0x9D,0x28,0x1D,0xB2,0x51,0xDA,0xA6,0x08,0x50,0x83,
+0x80,0x5C,0x22,0xD7,0x3D,0x37,0xB6,0x7F,0x06,0x84,0x7C,0xF7,0xEB,0xE9,0xFC,0x62,
+0x38,0x99,0x5F,0x12,0x24,0x4C,0xAF,0x1D,0x50,0x1E,0xB0,0x3B,0xCA,0xE8,0xDC,0x63,
+0x9A,0xD0,0xB4,0x5B,0x70,0xC8,0xFB,0xCD,0xF5,0xEE,0xE5,0x6E,0x3C,0x50,0x92,0xDB,
+0x52,0x00,0xAC,0x8B,0x34,0x1C,0xBF,0x5D,0x02,0x4F,0xB3,0x38,0xE7,0x3D,0x24,0xB6,
+0x30,0x19,0xD7,0x92,0xA2,0xA3,0x29,0x74,0x1E,0x4C,0xAC,0x27,0xF7,0xF6,0xFF,0x7D,
+0xE1,0x5A,0x45,0xD1,0xCF,0x78,0x44,0xC2,0xEA,0x13,0x07,0x8C,0x6B,0x72,0xE7,0xF9,
+0x59,0x9F,0x38,0x14,0x51,0xCD,0xDA,0xE9,0x26,0x4B,0x93,0x18,0x1A,0x63,0x87,0xE8,
+0x16,0x30,0xD8,0xBB,0xA4,0xC4,0x2F,0x15,0x0E,0x97,0x67,0xEC,0xF2,0xD7,0xDB,0x5C,
+0xD8,0xC8,0xEE,0x43,0x7C,0xD6,0xF7,0xDF,0xB9,0xAD,0xEA,0x61,0xDE,0xEC,0xCC,0x67,
+0x68,0x8D,0x1B,0x06,0x71,0xE9,0xFA,0xED,0x56,0xC4,0x6C,0xE7,0xB6,0xC3,0x8B,0x48,
+0x8A,0xD4,0xA0,0x5F,0xD5,0x51,0x5E,0xF1,0x3B,0xA7,0x62,0xE9,0x85,0x1A,0x61,0x91,
+0x2A,0x95,0x41,0x1E,0x9F,0xE8,0x14,0x02,0x2C,0x49,0x9B,0x10,0xB2,0x0C,0x40,0x87,
+0xF5,0x7E,0x75,0xF5,0x0E,0x11,0x85,0x6A,0x9D,0xA9,0xCA,0x41,0x31,0x6A,0xA5,0xE1,
+0x67,0x32,0xAB,0xB9,0x96,0xC3,0x1D,0x20,0x8C,0x9D,0xEF,0x64,0x47,0x49,0xF0,0xC2,
+0xA2,0x55,0x09,0xDE,0x76,0xAF,0xFD,0xAC,0x59,0xE2,0x45,0xCE,0xF9,0x31,0x36,0xBA,
+0x83,0x43,0x3E,0xC8,0x05,0x49,0x8E,0x39,0x17,0xB0,0x59,0xD2,0x58,0xAB,0x0D,0x20,
+0x88,0xDC,0xAA,0x57,0x65,0xAD,0xEE,0xBD,0xCE,0x17,0x27,0xAC,0x93,0x0D,0x60,0x86,
+0xB3,0x46,0x0B,0xCD,0x9E,0xC9,0x15,0x22,0x7E,0x18,0x98,0x13,0x57,0x82,0x2B,0x09,
+0x07,0x23,0xDA,0xA8,0xDD,0x5B,0x56,0xF3,0x98,0x8D,0xEB,0x60,0xC0,0xE0,0xDE,0x6B,
+0x82,0x54,0x28,0xDF,0xE5,0x25,0x6E,0xB5,0x82,0x54,0x28,0xA3,0x83,0xC6,0xBB,0x4D,
+0x31,0x0E,0xC1,0x85,0x1C,0x32,0x97,0x5B,0x00,0x5E,0xA0,0x2B,0x7D,0x65,0xE6,0xEE,
+0x1A,0x90,0x74,0x1B,0x8A,0x8D,0x01,0x72,0x73,0x2F,0xA2,0x29,0x4A,0x73,0xC7,0xF8,
+0xFD,0xFE,0xFD,0x75,0xB4,0x94,0x3F,0x55,0x36,0x90,0x58,0xD3,0xB1,0xF1,0xBE,0x7A,
+0xA4,0x7D,0x27,0xF6,0x0C,0x62,0x87,0x1B,0x95,0xBA,0xD1,0x5A,0xF3,0x39,0x34,0xB2,
+0x19,0x8F,0x68,0x04,0xE0,0x10,0x6B,0x85,0x34,0x81,0x4B,0xC0,0x61,0x7A,0xE5,0xF1,
+0x9E,0xF0,0x90,0x7B,0xC9,0x1F,0x42,0xA3,0x0D,0x69,0x9A,0x11,0xC2,0xF3,0xCF,0x78,
+0x33,0x06,0xCB,0x8D,0x99,0x8F,0x12,0x63,0x69,0xF6,0x61,0xEA,0x19,0x9E,0x79,0x15,
+0xBC,0xF9,0xBB,0x72,0xC1,0x15,0x4A,0xA1,0xDB,0xE8,0xCD,0x46,0xFA,0xCC,0xC8,0x47,
+0x00,0x1C,0xE2,0x97,0x1A,0x55,0x91,0x3A,0x5D,0x29,0x8A,0x01,0x8A,0x33,0x47,0xB8,
+0x43,0x13,0xAE,0x98,0xC7,0x72,0x4C,0xC0,0x9B,0x73,0x16,0x9D,0x6D,0xAE,0x3D,0x25,
+0xB1,0x4E,0x01,0xC5,0xD9,0x4F,0x52,0xE3,0xF1,0x25,0x2A,0xA1,0xFE,0x03,0x03,0x88,
+0x76,0x21,0xA9,0xAA,0xF4,0x54,0x7F,0xD5,0xD9,0xF9,0xDE,0x55,0x86,0xE7,0x9F,0x6C,
+0x0E,0xB4,0x44,0x3F,0x1D,0x13,0x96,0x7B,0xF4,0x01,0x0B,0x80,0x9E,0x37,0x57,0xBC,
+0x3F,0xA6,0x67,0x2D,0x8E,0x99,0x05,0x62,0x20,0x91,0x4F,0xC4,0x70,0x5F,0xD1,0xD4,
+0xA8,0xDD,0x8B,0x56,0x4E,0xD1,0xC5,0xEA,0x8E,0x8C,0xFC,0x77,0x5E,0x77,0xD7,0xFC,
+0x8F,0xE3,0x92,0x68,0x4C,0xA2,0xC7,0x9B,0x84,0x8E,0xF4,0x7F,0x9F,0xD9,0xB8,0x52,
+0xCA,0xC4,0xF0,0x4F,0xCC,0x2A,0x47,0x93,0xA1,0x65,0x3A,0xB1,0x7F,0x76,0xF7,0xFD,
+0xB4,0x79,0x33,0xF2,0x22,0x2B,0xA9,0x7C,0x76,0x0B,0x83,0x08,0x05,0x81,0x7A,0x0A,
+0x3E,0xB1,0x71,0x3A,0xE3,0x42,0x68,0xD4,0x4D,0xF2,0x41,0xCA,0xE6,0xD3,0xCB,0x58,
+0x3B,0x86,0x43,0x0D,0xB7,0xC6,0x3C,0x04,0xBC,0x89,0xCB,0x40,0xDD,0x11,0x32,0x9A,
+0xD6,0x60,0x48,0xEB,0x74,0xDC,0xFF,0xDD,0x6E,0xC3,0x53,0xD8,0xD2,0x38,0x14,0xB3,
+0x26,0x35,0xED,0xBE,0x59,0xC7,0xD2,0xEB,0xFF,0xEC,0xED,0x66,0x6F,0xBD,0x2C,0x36,
+0x27,0x22,0xFB,0xA9,0x6F,0xD4,0xE4,0xCE,0x21,0x7E,0xA1,0x2A,0x97,0xC2,0xAB,0x49,
+0xDA,0xC0,0xE4,0x4B,0x2C,0x46,0xA7,0x1F,0x0F,0x78,0x89,0x02,0x79,0xAA,0x2D,0x21,
+0x35,0x2E,0xE5,0xA5,0x82,0x87,0x09,0x70,0x96,0x44,0x2C,0xA7,0x07,0x92,0x6B,0x19,
+0xAE,0xF5,0xA5,0x7E,0x9C,0xBA,0x17,0x53,0x30,0x4A,0x84,0x0F,0x89,0xCE,0xB9,0x45,
+0xD0,0x48,0x66,0xC3,0xD6,0x03,0x5D,0xA0,0x08,0x4D,0xBB,0x30,0xB7,0x2D,0x64,0xA6,
+0xDA,0x6D,0x33,0xF1,0x26,0x8A,0x03,0x63,0x91,0x78,0x10,0x2E,0x1C,0x2A,0xF5,0x99,
+0x25,0xE2,0xCC,0x81,0xA0,0xCD,0xC2,0x24,0x4A,0xA3,0x8B,0x6E,0xF9,0x96,0x10,0xC0,
+0xEA,0x29,0x03,0x85,0x8A,0x2A,0x0F,0xC3,0x52,0xBB,0xC9,0x34,0x4E,0x9B,0xA7,0x7A,
+0x47,0x17,0xAE,0x16,0xE0,0x16,0x59,0xFF,0x4C,0xA5,0xEA,0x09,0x13,0x69,0xFA,0xD5,
+0x93,0xCF,0x7A,0x1A,0x4F,0x4B,0xAB,0xA2,0x6B,0x82,0xAF,0x6B,0x8F,0x33,0x66,0x13,
+0xD0,0x1E,0x39,0x88,0xEE,0xD1,0x90,0x38,0x87,0x6E,0x31,0x19,0x7D,0x8E,0x94,0x5C,
+0x77,0x53,0x9E,0x62,0x12,0x61,0xDC,0x88,0x12,0xFB,0x49,0xF4,0x06,0x19,0xEF,0xB0,
+0x1A,0xE5,0xF3,0xB9,0x76,0x9A,0x43,0x73,0x42,0xAB,0x89,0x64,0xF0,0xB4,0x19,0xEB,
+0x8C,0xCC,0x65,0x06,0x7B,0xA0,0x74,0x49,0x97,0x7E,0x71,0x49,0x0E,0x1B,0xE7,0xBA,
+0x2F,0x91,0xC6,0xF8,0xF9,0x28,0x7E,0xC1,0x6E,0x87,0x9F,0x5E,0x54,0xA8,0xBD,0x53,
+0x18,0x94,0xF1,0xCA,0x4D,0x58,0xBA,0xB1,0x3F,0xD6,0x7F,0xEF,0xFE,0xD7,0x17,0x86,
+0x9A,0xED,0x73,0x31,0x08,0xA2,0x05,0x4B,0x01,0xE8,0x58,0xF6,0x90,0x30,0x79,0x0F,
+0xE4,0x4A,0x0D,0xE8,0xB5,0x27,0x3D,0xCE,0xEE,0x07,0x97,0xD6,0xDC,0xA2,0x35,0xD1,
+0x42,0x27,0xAB,0x23,0x6C,0x59,0x9A,0xB0,0x8E,0x67,0x13,0x32,0x43,0xA9,0xAA,0x45,
+0x09,0xF4,0xE0,0xBB,0xE3,0xEB,0xA7,0x02,0x56,0xBF,0xD9,0x20,0x23,0x2D,0xCA,0xA1,
+0x6B,0x01,0x82,0x2C,0x05,0x98,0x32,0x71,0x15,0xFC,0x08,0xB2,0x46,0x99,0xAF,0x70,
+0x7B,0x41,0x92,0x7C,0xED,0x2C,0x6E,0xC5,0x09,0xE0,0x5A,0xFC,0x2E,0x1F,0xC7,0x9E,
+0x43,0x07,0xAA,0x02,0x74,0x89,0x52,0x60,0xA7,0x4E,0x35,0x3D,0xC0,0xF0,0x29,0x9F,
+0xC4,0x4E,0x2D,0xCC,0x73,0xBB,0x67,0x52,0x5D,0xB4,0x8A,0x78,0x48,0xFA,0xA1,0x1D,
+0x27,0x93,0xCE,0xF2,0x4B,0x84,0x60,0x6D,0x17,0xFE,0x79,0xC1,0xF5,0x84,0x1C,0xDE,
+0xD1,0x3E,0x38,0xA9,0x15,0x53,0xE9,0xBA,0xFF,0x16,0xF7,0xA7,0x60,0xFC,0x89,0x33,
+0xF8,0x18,0x11,0xA6,0xC7,0xCB,0xA3,0x22,0x3C,0xD5,0x2E,0xBD,0x86,0x11,0x6F,0x38,
+0x2B,0x81,0xC2,0xEC,0x5A,0xA1,0x54,0x48,0xE4,0x0D,0xE4,0xAF,0x22,0x0D,0xCB,0x80,
+0x54,0x06,0xBD,0x14,0x84,0xED,0xC6,0x04,0xD2,0x3B,0xC1,0xBC,0x35,0x0C,0xDC,0x96,
+0x9F,0xDD,0x76,0x04,0xDA,0x3A,0x4F,0xD3,0x47,0xAE,0xB9,0x51,0xC4,0xE0,0x2D,0x8B,
+0x30,0x92,0xD9,0xE4,0xFF,0xF4,0xA4,0x1D,0xC7,0x2E,0xB1,0xD9,0xE3,0xA5,0x0A,0xE9,
+0x3A,0xE1,0xD3,0x9D,0x36,0x41,0xD8,0xA8,0x68,0x81,0xFE,0x39,0xB1,0x14,0x58,0x0A,
+0x68,0x50,0x81,0x7E,0x0D,0x83,0x21,0x6A,0xA9,0x40,0x56,0x50,0x79,0x9E,0x90,0x48,
+0xDE,0x7D,0x37,0xE5,0x8F,0x0B,0x2B,0xE2,0x96,0x7F,0x51,0x68,0xB4,0x24,0x5D,0x3F,
+0x0E,0xB5,0xE7,0xFD,0xA2,0xDE,0xD3,0x37,0x7F,0x96,0xFF,0x2F,0x21,0x5C,0xC8,0xD2,
+0x9E,0xFD,0x77,0x25,0xF5,0xFC,0xA6,0x15,0xC5,0x2C,0xC0,0xAA,0xDD,0x82,0x34,0xF0,
+0xB6,0xFB,0x5F,0x0B,0x5B,0x4F,0xBB,0xA6,0x05,0xEC,0x48,0xE2,0xA6,0x15,0x4F,0x1C,
+0x31,0xB2,0xD8,0xC5,0x27,0x64,0xEC,0x8D,0xDF,0x36,0xF3,0x83,0x02,0x09,0xEB,0xA4,
+0x86,0xBF,0x6F,0x7F,0x5F,0x80,0x70,0x69,0x88,0x61,0x72,0x55,0x6D,0xCE,0x84,0x0C,
+0x80,0xDE,0x69,0x18,0x01,0x57,0xF9,0xBE,0x70,0x99,0xBC,0x63,0x34,0x2C,0xDD,0xB7,
+0x98,0x9C,0x71,0x42,0x94,0x26,0x1D,0xCF,0x3E,0xD7,0x5F,0xCE,0xBA,0x47,0x53,0x52,
+0x44,0x46,0xAD,0x44,0x46,0xBE,0x57,0x57,0x4D,0xA4,0xCA,0x28,0x04,0x68,0xED,0xC3,
+0x20,0xD2,0xC9,0xB4,0x00,0xB9,0x16,0x50,0x1E,0xF7,0x5B,0xEA,0xF8,0xB6,0x11,0xE1,
+0xE6,0x3B,0x0F,0x9B,0xD3,0xCF,0xB3,0x26,0x9C,0x75,0x22,0x11,0x5B,0xEB,0xB2,0x1F,
+0x92,0xEF,0x7B,0x3B,0x29,0xA3,0x25,0x4A,0x10,0xF9,0x38,0x87,0xE1,0xD4,0x08,0x9A,
+0x65,0x62,0x8C,0x41,0x07,0x8B,0x23,0x62,0xF2,0x1B,0xC5,0x98,0x24,0x6C,0xCD,0xE7,
+0x28,0xD0,0xC1,0xBE,0x58,0xB2,0x45,0x5B,0xB7,0x5E,0x75,0x6D,0x2B,0x2F,0xC2,0xAB,
+0x3C,0x80,0xD5,0xFA,0x1B,0x94,0x20,0x7D,0x3B,0xD2,0x6F,0xFB,0x78,0xBE,0x91,0x69,
+0x55,0x26,0xBC,0x35,0x21,0xB8,0x36,0x51,0x36,0xDF,0x5D,0xC4,0xA5,0x44,0x4C,0x4E,
+0x9D,0xAC,0x74,0x77,0xC6,0x25,0x4C,0xCC,0xB5,0x5C,0x04,0x1E,0x40,0xF8,0xA9,0x17,
+0x8F,0x9D,0x66,0x54,0x6F,0xA4,0x64,0x4D,0xD6,0x3F,0xD1,0xA8,0xE2,0x85,0x0B,0xC8,
+0x9C,0x8C,0x75,0x56,0xCB,0x1F,0x7B,0xF6,0x18,0xF1,0x3A,0x8D,0x20,0x7C,0xC9,0xF3,
+0x0F,0x95,0xE6,0xDC,0x97,0xDB,0xE3,0x32,0x1B,0xF2,0x6B,0xDF,0x0A,0x0B,0xE3,0xAE,
+0x83,0x8F,0x6A,0x4A,0xE6,0xCA,0x83,0x23,0x85,0x6C,0x40,0x6A,0x7E,0xDF,0x97,0x0E,
+0xE5,0x6A,0x0C,0xC9,0x57,0x9B,0x63,0x72,0x14,0xFD,0x28,0x93,0x95,0x00,0x7C,0x3A,
+0xD8,0x1C,0x31,0x82,0x22,0x45,0xC8,0xAC,0xFD,0x14,0x86,0xD4,0x55,0x88,0xBC,0x72,
+0xA0,0xDA,0x49,0x3C,0xF7,0xEF,0xB7,0x06,0x1D,0xF4,0x0A,0xB8,0x32,0x4D,0xDB,0xD0,
+0x05,0xE6,0xEC,0xA5,0xC2,0xEA,0x87,0x03,0xF7,0x1E,0xF5,0xAD,0xC8,0xF2,0x21,0x95,
+0x3E,0xF1,0xD7,0x89,0x75,0x67,0xBD,0x8E,0x2F,0xC6,0x3F,0xBF,0x30,0x3C,0xD9,0xA3,
+0xF3,0x4B,0x1A,0xFE,0x40,0x62,0x8D,0x8B,0x5E,0xB7,0xDB,0x2A,0xD4,0xA0,0x3D,0xDB,
+0x2A,0xA1,0xC3,0xCD,0x2D,0x6C,0xEE,0x85,0xFA,0x13,0xC7,0x92,0x8D,0x42,0x64,0x60,
+0x1F,0xD5,0xF6,0x8C,0x65,0xAC,0x66,0x45,0x29,0xC0,0x5E,0xD8,0x19,0x1A,0xF0,0xAC,
+0xD4,0x0E,0x3D,0x9C,0x79,0xB3,0x65,0x5A,0xBF,0x56,0x77,0x67,0x00,0x78,0xE9,0xD7,
+0x8A,0xAD,0x63,0x61,0x5D,0x93,0x61,0x7A,0xDA,0x33,0xC3,0xB6,0x9F,0x73,0x76,0x43,
+0x9B,0xCD,0x72,0x10,0x91,0x07,0x39,0xEE,0x44,0xAD,0xE8,0x03,0x5A,0xCB,0xB3,0x3E,
+0x00,0xD6,0xE9,0x90,0x7D,0x7C,0xAE,0x95,0xB6,0x5F,0x55,0x4C,0x5C,0xAA,0xB5,0x59,
+0xE1,0x7A,0x08,0xDD,0x66,0x51,0x98,0xB8,0x9D,0x74,0x02,0x30,0xA8,0x76,0x41,0x71,
+0xB9,0xB8,0x50,0x47,0x8E,0xE5,0xC4,0x0C,0xFB,0x12,0xE7,0xB3,0xD0,0xB0,0x39,0xCF,
+0x01,0xF6,0xE8,0xB1,0x2B,0xB0,0x34,0x59,0xAF,0x46,0x37,0x37,0x99,0x12,0x70,0x24,
+0xDF,0xBD,0x11,0xA9,0x66,0x78,0x1B,0xB6,0x7B,0xB5,0x4A,0x34,0xC9,0x77,0x07,0xBB,
+0x24,0x22,0xEA,0xCD,0xBD,0x15,0xAD,0xDB,0x8D,0x43,0xE7,0x6F,0x99,0xB7,0x57,0x2B,
+0x94,0x6E,0x5A,0x31,0x57,0xB2,0xE0,0x7C,0xF6,0x38,0x70,0x83,0x0C,0xCF,0xC2,0xC6,
+0x0E,0x55,0xC0,0x90,0xC5,0xF1,0x31,0x3F,0x04,0xCA,0xCD,0xCC,0xE0,0x51,0x2E,0xB4,
+0x53,0xA7,0x9D,0x3F,0xC9,0x25,0xE9,0xEB,0x98,0x56,0x97,0x0A,0xC7,0x14,0x09,0xD6,
+0x6F,0xF1,0xA1,0x55,0x5A,0x88,0xD7,0x46,0xC5,0x0B,0x65,0xA5,0xD9,0x37,0x17,0xEB,
+0x88,0x3C,0x46,0x7F,0x5E,0x47,0x1C,0x89,0x72,0xBC,0x68,0x1F,0xC1,0x75,0x0F,0xB1,
+0xCF,0xFD,0x01,0xF9,0x2E,0xB8,0x93,0x76,0x97,0x59,0xD4,0x46,0x1A,0xEE,0xD4,0xF1,
+0xDD,0xCC,0x13,0xDA,0xF3,0x09,0xFF,0xC7,0xCD,0x03,0x67,0xAF,0x9E,0xF6,0x50,0x6D,
+0xAE,0x59,0x60,0x3C,0x64,0x6B,0x0A,0xA5,0xA8,0x66,0xD3,0x7E,0xDD,0x27,0x13,0xFF,
+0x1C,0x64,0xD2,0xB3,0xFC,0x20,0xD9,0xEE,0xC8,0x06,0x57,0x9A,0x05,0xED,0xCB,0xED,
+0x62,0xC3,0xAC,0x6A,0x37,0x86,0xB4,0x48,0x57,0x99,0x5C,0x0E,0x65,0x69,0xAB,0x09,
+0xE7,0xFB,0x29,0xD7,0xEE,0xF8,0x13,0x36,0x1B,0xD5,0xCE,0xD0,0x8A,0xA6,0x44,0x29,
+0x1D,0x44,0xD3,0x92,0x15,0x7A,0x6A,0xB4,0x75,0xBB,0x29,0x59,0xB4,0x81,0x7A,0x30,
+0x6D,0x80,0xA3,0x26,0x27,0x4D,0x6F,0x83,0xDF,0x11,0x56,0x8C,0xE5,0x61,0x2B,0x81,
+0xE5,0x8A,0x2B,0xA4,0xD9,0xEE,0x32,0x20,0x85,0x4B,0xE5,0x65,0x1C,0x8F,0xD2,0x96,
+0xA8,0x38,0x66,0x5B,0xCB,0x36,0xF8,0xF8,0xBE,0x70,0xF2,0x49,0x59,0x3F,0x97,0x63,
+0xE4,0xAA,0x2A,0x85,0x33,0x49,0x7F,0x87,0xA9,0x67,0xF3,0x5F,0x6F,0x1A,0xA1,0x70,
+0x8E,0x5D,0x40,0x18,0x79,0x9A,0xE6,0x54,0x0D,0xC3,0xEF,0xE7,0xB7,0xD0,0x79,0x62,
+0x16,0x17,0xD8,0xCA,0x76,0xB3,0xC0,0x7D,0xEB,0x25,0x02,0xEC,0x74,0x09,0xBA,0x78,
+0xC1,0x9E,0x0F,0x94,0x2D,0x45,0x6D,0x8B,0x7E,0xB0,0x7A,0x01,0x9C,0x87,0x52,0x1E,
+0xFE,0x99,0x30,0xAC,0x13,0xA6,0xB0,0x68,0xC3,0x0D,0x04,0xC2,0xD6,0x74,0x18,0xA7,
+0xCC,0xAC,0x02,0xAB,0xDD,0x21,0xF9,0xEF,0x4B,0x85,0x0E,0x40,0x2C,0xCB,0xE2,0xE2,
+0x69,0x90,0xA7,0x32,0xA3,0x19,0xBF,0xD7,0xA5,0x6B,0xE1,0x41,0x82,0xA4,0x4C,0x23,
+0x0A,0x45,0xC4,0x84,0xD4,0xD4,0x05,0x1A,0x2D,0xE3,0xEB,0xC3,0x8E,0xB6,0x40,0x3D,
+0xB9,0x58,0x77,0x2A,0xFA,0xFC,0x03,0x32,0x56,0x98,0x7C,0x2F,0x4E,0x3E,0x80,0x75,
+0x9B,0x2D,0x55,0x7D,0x22,0x6C,0x4B,0xA2,0xAA,0x64,0xA2,0x0D,0xF4,0x01,0x3A,0xF0,
+0x4E,0xD5,0x80,0x50,0x3A,0xBC,0x83,0x72,0x3F,0xF1,0xDA,0xE0,0x1D,0xAF,0xD3,0xB7,
+0xC6,0xDF,0x08,0xD2,0xA1,0x0A,0xAE,0xC4,0xF2,0x3C,0x60,0x97,0x22,0xA8,0xEC,0x8F,
+0x04,0x26,0xCA,0xE9,0x42,0x58,0x1F,0x96,0x3A,0xF4,0xEA,0xD5,0xE3,0x00,0x2D,0xE6,
+0xB1,0x5A,0x7F,0x20,0x3B,0x52,0x6C,0x9C,0x68,0xA6,0x5B,0x36,0x4C,0x4F,0x82,0x06,
+0x7F,0xB1,0xB1,0x05,0xDB,0xFD,0x23,0x33,0x4F,0x81,0x1E,0x54,0xCC,0x47,0x02,0x8E,
+0xE6,0xDB,0x28,0xF6,0xE4,0xF0,0x11,0x3E,0x6A,0xA4,0x2A,0x45,0x9B,0xC6,0x55,0x58,
+0x8A,0x4D,0x44,0x0C,0x44,0x84,0xC5,0x4A,0xD0,0x1E,0x15,0xC0,0x17,0xDC,0xD9,0xCE,
+0xFC,0xE8,0x32,0xDF,0x6B,0x42,0x2C,0x8C,0x73,0xBD,0x48,0x3E,0x95,0xA5,0x5B,0x35,
+0xFB,0xA9,0x35,0x99,0x9B,0x26,0xB8,0xE8,0x8F,0x41,0x96,0x1C,0xC6,0x34,0x08,0xF7,
+0x63,0xE3,0xAD,0x4B,0x9D,0xFA,0x62,0x34,0x31,0xFF,0xB9,0x8D,0xB5,0xA1,0x7B,0x11,
+0x12,0x07,0xDC,0xDE,0xC7,0xE2,0x20,0x2C,0xBF,0x71,0xD2,0x68,0xFB,0x42,0x35,0xBC,
+0xC5,0x8E,0x0B,0x80,0xA0,0xE4,0x41,0x2A,0xE6,0x28,0x30,0xD3,0x03,0x8C,0xCD,0x8A,
+0x21,0x12,0xEF,0xF8,0x1A,0x53,0x4C,0x9D,0x89,0x47,0xF7,0x7B,0x54,0x0D,0x9A,0x5C,
+0x9E,0x1D,0x50,0x48,0x03,0x6D,0x6B,0xA3,0x81,0x4F,0xF5,0x71,0x90,0x95,0x5E,0x00,
+0x5A,0x85,0x94,0x14,0x89,0xFE,0x72,0x30,0xAB,0x65,0x82,0x2C,0x93,0xC4,0x5D,0x52,
+0xE1,0x9A,0x2F,0xB0,0x8B,0xED,0x63,0x23,0x69,0xA7,0x7B,0x17,0x5D,0x2F,0x93,0x77,
+0x60,0xB2,0xAE,0x19,0xA8,0xFF,0x52,0x31,0xCB,0x05,0x06,0xC8,0x3E,0xFA,0xF0,0xC1,
+0xFD,0xC8,0x33,0xFE,0xEA,0x37,0xD8,0xF9,0x2E,0xE0,0xBA,0x91,0xBD,0xA3,0x73,0x1B,
+0xD1,0xDE,0x1F,0xC4,0x25,0x5E,0x7E,0x90,0xF3,0x3D,0x40,0xB6,0xB0,0x91,0x7E,0x24,
+0xF7,0xBB,0x39,0x87,0x61,0x4A,0x2E,0x84,0xA0,0x6E,0xD1,0x74,0x3C,0x8B,0xF2,0xB2,
+0xCE,0xDD,0x00,0xD8,0x9E,0x07,0x9C,0xC9,0xAF,0x61,0x92,0x38,0x79,0x3B,0xB7,0x47,
+0x29,0x10,0xE7,0xF2,0x12,0x48,0x5F,0x86,0x06,0xC8,0xBC,0xBF,0x71,0x39,0xBF,0x4D,
+0x27,0x73,0xE9,0x9F,0x21,0x91,0xB5,0x5F,0x5F,0x91,0x5E,0x04,0xD5,0x25,0x1B,0xF5,
+0x22,0x43,0xEC,0xAA,0x56,0x5C,0x0F,0x92,0xBB,0x75,0xC2,0x7C,0xA4,0xC1,0x6A,0x60,
+0xAF,0x79,0x61,0x1D,0x7A,0x67,0x18,0xA9,0x43,0x8D,0x0C,0x4A,0x7C,0x0B,0xB2,0x72,
+0xAA,0x49,0x64,0x28,0xE3,0xC2,0x24,0x0C,0xB9,0x77,0xB3,0x0F,0x96,0xF4,0x58,0x67,
+0x00,0x36,0xCE,0xFD,0x5D,0xBA,0xE2,0x74,0xDE,0x10,0x76,0xAD,0x76,0x78,0xB8,0x0B,
+0xDE,0x9D,0x10,0x88,0x16,0x87,0x94,0x49,0x1E,0xD0,0xFE,0xE5,0x9F,0xD6,0x51,0x4C,
+0x8F,0x7D,0x41,0x39,0x95,0xE1,0x71,0x2F,0xF5,0x3B,0x21,0xD1,0x0E,0xBE,0xC0,0xB5,
+0xF5,0xCA,0x3B,0xF4,0x6E,0x63,0x08,0xAD,0x12,0xDC,0xEC,0xFB,0x24,0xC9,0xEA,0xE8,
+0xA0,0x3A,0x6E,0x51,0x98,0xDB,0x46,0x15,0x5B,0x95,0x4E,0x10,0x70,0x19,0xBE,0x6C,
+0x14,0x66,0xDA,0xB9,0x02,0x83,0x84,0x4D,0x23,0xED,0x88,0xAE,0x16,0xFC,0xD8,0xEF,
+0x39,0x50,0xF7,0xA2,0x4F,0x62,0x28,0xAC,0xD7,0x19,0x54,0x86,0x3D,0xAB,0xF3,0x93,
+0x42,0xC7,0x8C,0x4E,0xCF,0xF9,0x33,0x37,0xD1,0x1F,0x35,0xE1,0xCF,0x16,0x01,0xDC,
+0xD6,0x9F,0x18,0x82,0xBE,0xE8,0x53,0x26,0x14,0xDA,0x8D,0x9C,0x51,0x3D,0x9F,0x69,
+0xF6,0x9B,0x38,0xA6,0x43,0xB6,0xF0,0x78,0x8B,0x45,0x86,0x08,0x34,0x89,0xFA,0xB8,
+0xE9,0x98,0x27,0xBA,0x53,0x7D,0x2B,0xB3,0x92,0x5C,0xE4,0x73,0xA2,0xA0,0x6C,0x07,
+0xD2,0xAD,0x7E,0x94,0x59,0x09,0x60,0x68,0x57,0xE1,0xB7,0x8E,0x18,0x45,0x5C,0x7C,
+0xD9,0x32,0xEA,0x0B,0x39,0xED,0x00,0xEC,0x8E,0x46,0xC9,0xF0,0xD3,0xE3,0x31,0xDA,
+0xE2,0xA8,0x4B,0x91,0xC2,0x89,0xFB,0x73,0x3E,0x49,0x76,0x4F,0x17,0x6C,0x7A,0x55,
+0x56,0xCD,0x9A,0xF4,0x81,0x1B,0xB8,0xA2,0xD8,0xDC,0x05,0x3C,0x80,0x0E,0x8F,0x37,
+0xD3,0xBA,0x68,0x83,0xB9,0x65,0x80,0xE4,0xC2,0x05,0xC6,0xFF,0xC3,0x28,0xEA,0x11,
+0x60,0xE0,0x81,0xD9,0x40,0x72,0x79,0x0A,0x40,0x0F,0x4E,0x77,0x3D,0x8B,0xB7,0xB2,
+0x4B,0x7E,0x34,0x47,0xD6,0xCD,0xEF,0x23,0x33,0x7E,0x4C,0x75,0x0A,0x9D,0x96,0xA4,
+0xAC,0x10,0xBD,0x29,0xE8,0xD4,0xD1,0x04,0x76,0xC1,0xB6,0x8F,0xF1,0x1F,0xEF,0x26,
+0xF5,0x93,0x67,0xAA,0x50,0x22,0x69,0x4A,0xD5,0xEB,0x3F,0x06,0xB3,0xD7,0x65,0xEE,
+0x48,0x61,0x28,0x58,0xBC,0x50,0x85,0xD4,0x74,0xD0,0xA5,0x9C,0x21,0x94,0xB4,0xAD,
+0xCF,0x1E,0xD0,0x27,0x95,0x5F,0xAC,0xF2,0x4D,0x38,0x74,0x4D,0x82,0x1D,0x9E,0x24,
+0x62,0xE8,0x8B,0xD1,0xC5,0xCF,0xFC,0x32,0x29,0xA7,0x8F,0xB6,0x59,0x70,0x28,0x49,
+0xED,0x17,0xFB,0x2E,0x9D,0x55,0xA4,0xF0,0x9B,0xB9,0x23,0x1A,0xBA,0x22,0x99,0x1B,
+0x51,0xF2,0xA2,0xCB,0x46,0x15,0x7F,0x6B,0x1D,0x78,0x64,0x5D,0xCA,0xDD,0x16,0xE4,
+0x12,0xFD,0xEE,0xC4,0x9B,0x32,0xA2,0x91,0xDB,0x22,0xF8,0xC1,0x2D,0x40,0x6C,0x79,
+0xE0,0xA0,0x41,0x99,0x85,0x0F,0xBC,0xB2,0xB1,0x74,0xC4,0xFD,0xBE,0xED,0x52,0xD4,
+0x27,0xCF,0xE9,0xF6,0xA8,0x14,0x91,0x84,0x99,0xA8,0x30,0x09,0xC6,0x09,0xCE,0x30,
+0x5F,0x5A,0x04,0x63,0x41,0x53,0x78,0x2A,0xB4,0x50,0xE5,0xDC,0xDE,0xD9,0x06,0xE0,
+0x6E,0x48,0x27,0x71,0xD2,0xD9,0xEB,0x33,0x60,0xC0,0xA1,0x98,0x30,0xB1,0x80,0x88,
+0xF9,0x33,0xCB,0x0A,0x12,0x91,0x2B,0xBB,0xCE,0xDD,0x12,0x2B,0x1E,0x99,0x86,0xA0,
+0xDE,0x0D,0xD2,0x34,0x10,0xE2,0x29,0xCA,0xC4,0xDF,0x1A,0x23,0xDF,0x37,0xE9,0x0E,
+0x9B,0x2A,0xB0,0x13,0x90,0x6A,0xA9,0xC2,0xE1,0x34,0xD4,0xED,0x3F,0x98,0xA6,0xA1,
+0xE5,0x97,0x73,0xAE,0x7E,0x6B,0x47,0x2D,0x36,0x5A,0x6D,0x54,0x45,0x6F,0x2B,0x56,
+0x6F,0x5F,0x31,0x66,0xBF,0x02,0x86,0x85,0x0D,0xA3,0xAF,0x96,0xA6,0x3D,0x9A,0x04,
+0x6A,0x68,0x03,0x51,0xEB,0x86,0xD2,0x55,0xFC,0xD8,0x25,0x1C,0x9D,0xFF,0x63,0xC6,
+0x87,0x8E,0x08,0xB7,0x28,0x9C,0x11,0x8C,0x2E,0x92,0xBD,0x84,0x92,0xD6,0x45,0xEF,
+0x77,0xDB,0xAD,0xE2,0x05,0x87,0x3C,0xBA,0xBF,0xBD,0x03,0x3A,0x2F,0x53,0x7D,0x6A,
+0x76,0xCC,0xBB,0xF5,0x33,0x94,0x0A,0x9F,0x61,0x2F,0x4F,0x76,0xD7,0x2C,0xFA,0x15,
+0x8B,0x2E,0xA4,0x17,0x70,0x06,0x49,0x4E,0x4F,0x29,0x67,0x5E,0x39,0x44,0x7C,0x7D,
+0x64,0xC0,0xA5,0xF9,0xDE,0xC7,0xE7,0x21,0xD6,0x15,0xC2,0xFB,0x47,0x7C,0x3A,0x45,
+0xFF,0x1B,0xE5,0x22,0xC0,0xFA,0xF9,0x02,0x70,0x1B,0x6A,0x53,0xC9,0x20,0xE8,0x19,
+0x81,0xA6,0x26,0x9F,0x8A,0x43,0xB3,0xF1,0x48,0x1C,0x55,0x6C,0xF7,0xC3,0x35,0xFA,
+0xFE,0x0C,0xF3,0x35,0x01,0x93,0x38,0xAA,0x54,0x1F,0x4A,0x73,0x6F,0x88,0xE6,0xB1,
+0x83,0xAE,0x2C,0x97,0x62,0x25,0x5B,0x7F,0xFD,0x37,0xCB,0xF2,0x4C,0x9A,0xD7,0xA3,
+0x70,0xE4,0x95,0xDD,0xCC,0xE4,0xF5,0x10,0xAC,0x98,0x35,0x0C,0xE7,0x08,0xEE,0x31,
+0x07,0xCE,0xC8,0xF7,0xCF,0xB6,0xF6,0x41,0xF0,0x00,0xF1,0xC8,0x6D,0x9B,0xF7,0xA2,
+0x54,0xC5,0x90,0xFC,0x60,0x56,0x59,0x0E,0x63,0x3E,0x5C,0x65,0x85,0x2F,0xAB,0x16,
+0x17,0xCA,0xDC,0xF3,0x25,0xA3,0x1C,0xBE,0x3C,0x58,0x65,0x5C,0x7A,0x62,0x19,0x5B,
+0x3F,0x4B,0x75,0x72,0xE1,0xFF,0xD8,0x26,0x1A,0x4D,0x56,0x6F,0x0E,0x52,0x5D,0x6B,
+0xC5,0x96,0x52,0xAF,0xEC,0xC0,0xD5,0x14,0x20,0x5B,0x7A,0x43,0xC1,0x3B,0xFB,0x02,
+0xCD,0x16,0xDA,0x2F,0xC9,0xD1,0xF0,0x20,0x3B,0x6D,0x57,0x6E,0x8F,0x27,0xA9,0x1E,
+0x13,0xEA,0xF8,0xD3,0x9A,0x13,0xA3,0xB1,0x7D,0x2C,0x50,0x69,0x7F,0x43,0x3D,0x7A,
+0xAF,0x0F,0xA1,0x36,0xC7,0xBC,0xFE,0x43,0x12,0x5E,0x4D,0x74,0x00,0x95,0x94,0xAC,
+0x90,0xB5,0x24,0x8C,0x4B,0x2A,0x72,0x59,0xE8,0xC8,0x21,0x18,0xA0,0xE1,0x40,0xD8,
+0xB5,0x83,0x37,0xBA,0x5F,0x6E,0x66,0x09,0x64,0x0B,0x6E,0x57,0x44,0x81,0xC4,0xB8,
+0x72,0xEC,0x9F,0xD5,0x08,0xB8,0x31,0x88,0x1C,0x97,0x8A,0xB3,0xFE,0x36,0xC9,0x0F,
+0x3C,0x54,0x69,0x6D,0xE9,0xF5,0xD0,0x24,0xAF,0x66,0xC8,0xF1,0x79,0x9F,0xE7,0xA6,
+0x57,0xDA,0x8C,0xE3,0xA7,0x58,0x9E,0xC7,0x3A,0x82,0xB9,0x80,0x23,0x87,0xA5,0xBE,
+0x0D,0x46,0x4A,0x7F,0x4A,0x0B,0x73,0x79,0x5D,0xE3,0xBF,0x86,0xE6,0xE6,0x01,0xDF,
+0xD1,0xB2,0x62,0x8B,0x61,0x77,0x58,0x2E,0x46,0xD5,0x92,0xAB,0xAB,0x07,0xAD,0x3E,
+0x69,0x77,0x1F,0x4E,0x78,0x0C,0x41,0x4C,0x10,0x4F,0x5E,0x67,0x8A,0x06,0x8D,0x3F,
+0xCB,0x3E,0xF4,0x07,0x2C,0x88,0x15,0x9C,0xB5,0xBF,0x0B,0x32,0x7C,0xBE,0xC3,0x87,
+0x03,0xEE,0xEC,0xD7,0x68,0x5C,0x51,0x0C,0x42,0x1E,0x5D,0x64,0xA7,0xD3,0x75,0xEA,
+0x61,0xF7,0x97,0xCE,0xFE,0xE3,0xC7,0x25,0x5E,0x1D,0x42,0x7B,0xB7,0x18,0xAE,0x21,
+0xB0,0xB4,0x05,0x8D,0x93,0x38,0xAA,0x93,0xAA,0x42,0xE9,0xD0,0x2B,0x9C,0xB6,0xA5,
+0x08,0x71,0x78,0x48,0x0D,0x8D,0x34,0xB8,0x66,0x1A,0x7D,0x44,0x5A,0x8D,0xD6,0xB4,
+0x47,0xDE,0x98,0xE7,0xF8,0x84,0xC1,0x44,0x4E,0xC6,0x89,0xB0,0xB2,0x39,0x8A,0x00,
+0x89,0x26,0xAE,0x1F,0x20,0x96,0x19,0x8E,0xF9,0xFC,0x04,0x3D,0x9E,0x02,0x9D,0x3B,
+0x39,0x63,0x5B,0x5A,0x2D,0xA9,0x14,0xBC,0x16,0x95,0x82,0xBB,0xF6,0x2D,0xDA,0x14,
+0xDB,0x3A,0xE0,0x03,0x89,0x11,0xB0,0xA0,0x7B,0xF6,0x8C,0xB5,0xC5,0xF4,0x30,0xCD,
+0x7B,0x7B,0x01,0x42,0xC3,0xA8,0xFA,0x53,0x6C,0x18,0x75,0x4C,0xF2,0xE2,0x11,0xDB,
+0xA4,0x90,0x35,0xA9,0x52,0x51,0x6B,0x3B,0xDD,0xF8,0x24,0x1D,0x71,0x84,0xF4,0xBD,
+0x36,0xDC,0xEB,0xE5,0xCA,0x83,0xF3,0x71,0xCC,0xCC,0x01,0x38,0x07,0xA7,0xA1,0x9E,
+0xF3,0xBB,0x49,0x82,0x2A,0xEF,0x13,0xFD,0x19,0xB3,0xAB,0x92,0xB9,0xDF,0x67,0xE6,
+0xC9,0xEA,0xF2,0x45,0xBB,0x51,0xB7,0x6A,0x1B,0x20,0x44,0x02,0x0B,0x04,0x30,0x52,
+0xB2,0x7D,0x89,0xA9,0xF3,0x91,0x3F,0xAA,0xA8,0x93,0x59,0xAC,0x23,0x02,0x18,0x7C,
+0x4E,0xA3,0x75,0x8B,0x76,0x2B,0x00,0x10,0x8A,0xB1,0x2C,0xFB,0xB3,0x4A,0x88,0xA4,
+0xDB,0xDB,0xE0,0x66,0x31,0xC2,0xAE,0xF9,0x5F,0x64,0xD4,0xD6,0x63,0x82,0x58,0xBC,
+0x16,0x61,0x2D,0x11,0x09,0xFD,0xA9,0xC6,0xD7,0xEC,0xDE,0x54,0xD5,0xAF,0xEE,0x27,
+0xDE,0xEB,0xE5,0x53,0x60,0x3C,0x01,0x07,0x15,0x2E,0x27,0x6F,0x87,0x1E,0xBC,0xC4,
+0x8C,0x5A,0xB7,0xB0,0x80,0x93,0x4E,0xA8,0xA0,0x9B,0x5B,0xA6,0x8D,0x6D,0xB6,0xBD,
+0xAB,0x1F,0x90,0xD2,0x08,0x13,0x46,0x28,0x6E,0x55,0xB0,0x83,0x22,0x22,0x19,0x5D,
+0x5A,0xF3,0x61,0xCF,0xE5,0x86,0x3E,0xBD,0xB9,0x82,0x39,0xDD,0xE9,0xF9,0xD2,0x4D,
+0x4D,0xF2,0x76,0xD9,0xF6,0xB0,0x1B,0x8B,0xF5,0xCE,0xAB,0x03,0x96,0x7E,0xAD,0xB5,
+0xE9,0xEE,0xD2,0x61,0xE4,0x68,0xD1,0x53,0x9F,0xA4,0x5C,0x9E,0x45,0xE7,0x7E,0xFF,
+0x0F,0x03,0x34,0x6A,0xFE,0xAB,0x08,0x90,0x07,0x3C,0x16,0x4C,0x6C,0xC1,0x57,0xF0,
+0x9A,0x7B,0xA1,0x87,0x98,0x43,0x86,0x78,0xD0,0xEB,0x9F,0x12,0x9A,0x6C,0xA1,0xAB,
+0x27,0x05,0x1C,0x44,0x21,0x09,0x75,0x32,0xEF,0xD4,0x98,0x2A,0x79,0xB1,0x42,0x95,
+0xAF,0x0F,0x94,0xC6,0x64,0xF3,0xCA,0xC8,0xDD,0xE6,0xAD,0x2D,0xFE,0xF8,0xC5,0x5B,
+0x41,0xE0,0x7A,0xC7,0xA5,0x5D,0xA5,0x66,0x78,0x43,0x91,0xB4,0xC6,0xBE,0xFD,0x25,
+0x29,0x66,0x12,0x29,0xEB,0x41,0xF7,0x7A,0xCC,0xF7,0xCD,0x5C,0xD6,0xFE,0xED,0x75,
+0x4C,0xD2,0x77,0xF8,0x79,0x02,0x26,0x39,0xBF,0x84,0x58,0xBA,0xB4,0x0B,0x8F,0xE2,
+0x2C,0x56,0x17,0x1C,0x6B,0xDA,0xEC,0xE1,0x0D,0x36,0x65,0x35,0xFF,0xD8,0xC4,0x7A,
+0xB3,0x5D,0x88,0x88,0x8F,0xBA,0x68,0x81,0x73,0x48,0xC2,0xEC,0x59,0xB5,0x62,0xB1,
+0xFF,0xCF,0xC4,0x56,0xAF,0x55,0xA7,0x6E,0xF6,0xCD,0xFA,0x51,0x27,0x12,0x1C,0x68,
+0x91,0x28,0xAA,0xDF,0xB6,0x6B,0x80,0x50,0x0C,0x37,0x45,0x14,0xA5,0x6B,0x9E,0x93,
+0x3B,0x57,0x00,0x0A,0x07,0x3A,0x60,0x01,0x7C,0x47,0x81,0xA0,0x92,0x6E,0xA9,0xA1,
+0x61,0xE4,0x5A,0xE3,0x10,0xC3,0x8E,0xF8,0xF4,0xCF,0x8B,0x22,0x31,0x33,0x0A,0x5F,
+0x9F,0x4B,0xA4,0xB2,0x3D,0x16,0x76,0x2D,0xCE,0xF5,0xBC,0x2F,0xA7,0x1A,0x9C,0xE0,
+0x69,0xE6,0x52,0xE9,0xAD,0x46,0xB6,0x7D,0x35,0x0E,0x23,0x4B,0xCA,0xAC,0xF1,0x3B,
+0x12,0x71,0x29,0x05,0x40,0xD3,0xCE,0xE8,0x85,0xBE,0x6F,0xB7,0x6D,0xE1,0x56,0xD1,
+0xE0,0xCC,0xDB,0x4A,0x32,0x3F,0x50,0x04,0x1F,0x24,0x54,0x16,0x2E,0x30,0x15,0x43,
+0x7C,0x96,0x47,0x8C,0x50,0x18,0x15,0x23,0x42,0x79,0xA6,0xB9,0xFA,0xE8,0xC1,0x4F,
+0x21,0x64,0x1A,0x23,0x6D,0x06,0x36,0x3D,0x7E,0x45,0xF0,0xD3,0x57,0xD6,0x6C,0xDC,
+0x96,0x69,0xAD,0x99,0x37,0x1E,0x74,0x25,0x99,0xA2,0x3D,0xF9,0x98,0x1D,0xA3,0xD8,
+0x73,0xD5,0x48,0xC0,0x77,0xC5,0xEF,0xFE,0xDE,0xE5,0xFC,0x7F,0x67,0x92,0x5C,0xA8,
+0xF6,0xED,0xCD,0x7D,0x6E,0xFB,0xC8,0xC0,0xE4,0xDF,0xCB,0x72,0xBC,0x09,0x87,0xE8,
+0xBF,0x4F,0x84,0x96,0xEA,0xAF,0x18,0x94,0xB1,0x8A,0x3B,0xD7,0x04,0x47,0x3F,0x1E,
+0xC7,0x89,0xFC,0x28,0x69,0xC9,0xFD,0xF2,0x05,0x3E,0x67,0x3F,0x5C,0x85,0x67,0x84,
+0x33,0x55,0x08,0x00,0x15,0xE2,0xAA,0xD9,0x28,0x13,0x51,0x24,0xBD,0x29,0x86,0xC9,
+0x35,0x34,0x0E,0x67,0x5A,0x10,0x17,0x2B,0x53,0x68,0xC6,0xC8,0x26,0x32,0x1D,0x49,
+0xF0,0x8C,0xCB,0x1A,0xEF,0x8E,0x3C,0xB5,0xC7,0xFC,0x9E,0x04,0x37,0x52,0x0C,0x38,
+0x6F,0x87,0x54,0x8E,0x3E,0xEB,0x88,0xD0,0xE7,0xDC,0x9A,0x20,0x69,0xF1,0x52,0xC5,
+0x76,0xE5,0x4D,0xF5,0x81,0x7D,0xA1,0x46,0xF8,0xC3,0x99,0x3C,0xA2,0x2A,0x99,0xD5,
+0xE2,0xBD,0xD9,0x39,0xCB,0xAE,0x38,0x95,0x38,0x03,0x11,0x74,0x97,0x5E,0xAC,0x94,
+0xBB,0x5F,0x80,0x82,0x73,0x0A,0x24,0x31,0x36,0x0D,0x72,0x19,0x4E,0xB4,0x75,0xA7,
+0x5F,0xC3,0x64,0xFA,0xE6,0x7B,0xC0,0x40,0x33,0x08,0x42,0x2C,0x83,0x0E,0xB8,0xD0,
+0xA7,0x0D,0x9C,0xCC,0xF4,0xA3,0x0A,0x98,0xBE,0x85,0x78,0x9B,0xB8,0x19,0x83,0xFC,
+0x5D,0xB2,0x66,0x89,0xE1,0x49,0xF5,0x72,0xBB,0x80,0x48,0xAE,0x1D,0x25,0x26,0x65,
+0x3A,0x77,0x01,0x2B,0x8D,0xA9,0x79,0x92,0x11,0x2A,0x37,0x7B,0x65,0xE3,0x5E,0xDB,
+0xFA,0xFF,0xC1,0x63,0xCA,0x40,0xD7,0x7B,0xCF,0xF4,0x9C,0x0E,0x58,0x95,0x63,0x90,
+0x11,0x20,0x2A,0x57,0x33,0xD1,0xBF,0xEA,0x9E,0xA5,0x7C,0xBF,0x3E,0x70,0x05,0x13,
+0x65,0xF4,0x5E,0xF7,0x86,0x4F,0x94,0x74,0x8F,0xB4,0x1C,0xCE,0xB2,0x6A,0x89,0x85,
+0x4F,0x83,0x74,0xAA,0xD4,0x4C,0xC5,0x77,0x4B,0x70,0x84,0x92,0x21,0x73,0x1A,0x0F,
+0x8D,0x7A,0xB6,0x91,0xF1,0x82,0x2E,0xB9,0xF0,0xCB,0x9B,0x36,0x32,0x62,0x09,0x0D,
+0x2F,0x07,0x14,0x4E,0x47,0xE1,0xFB,0xDA,0x71,0x4A,0xB3,0x9F,0x20,0x53,0x1B,0x2E,
+0xCA,0xBB,0xF1,0x17,0x9D,0x62,0xA2,0x59,0xEC,0xD7,0xC9,0x78,0xE8,0xD9,0xD3,0x6C,
+0x17,0x41,0x2C,0x30,0xA2,0x6F,0x90,0x54,0xC0,0xFB,0xDF,0x42,0x81,0x7F,0xBA,0xA3,
+0x44,0xD0,0x7F,0xF2,0x34,0xE3,0x8A,0xD8,0xE6,0xDD,0xBA,0x01,0x95,0x2F,0xAE,0xE7,
+0x4B,0x93,0x70,0xBE,0xC1,0xA6,0x3A,0x9D,0xDF,0xE4,0xDC,0x5E,0xD8,0x9D,0xE3,0x18,
+0x8E,0x2B,0xB5,0xC3,0xDE,0x44,0xC7,0x7F,0xF7,0xCC,0xDA,0x70,0x2F,0x10,0x14,0x62,
+0x34,0x14,0x0F,0x46,0x48,0xC8,0xDD,0xF3,0x9B,0xA0,0x4C,0x8A,0x5B,0xC4,0x60,0xC2,
+0x97,0x49,0xAC,0xB8,0xB3,0x4A,0xA4,0x71,0xED,0xD6,0xE9,0x59,0x9D,0x2D,0xA6,0xED,
+0x6B,0x97,0x50,0x9A,0x71,0x19,0x35,0x22,0xEA,0xD1,0xA8,0x1F,0xF9,0xB9,0xC2,0x1D,
+0xD5,0xB8,0xEE,0x0B,0x97,0x6A,0xA0,0x51,0x72,0x49,0xE2,0xCD,0x25,0x63,0x1E,0x1B,
+0x5B,0xD3,0x60,0xEE,0x3A,0x24,0x43,0x1F,0x03,0x38,0x06,0x58,0x3D,0x21,0x06,0x41,
+0x02,0x31,0x39,0x55,0x0C,0xDC,0x8D,0xE7,0xD4,0xEF,0x8F,0x06,0x3B,0x40,0x00,0x26,
+0x6D,0xF6,0x56,0xFD,0xDA,0x8B,0x0C,0xB0,0x30,0x0B,0x13,0x7E,0x8C,0x4D,0xB7,0x9C,
+0x43,0x01,0xFD,0xC4,0x4A,0x15,0xE9,0x25,0x51,0xF1,0xAD,0xDA,0xAB,0x57,0xB4,0x65,
+0xE2,0x9B,0x67,0xFF,0x9B,0x56,0xAA,0xB7,0xA3,0xBE,0x5F,0x67,0x47,0xBB,0xC6,0xFB,
+0xDB,0x4A,0xB6,0x17,0xB1,0xDF,0x23,0x14,0xDC,0x46,0x20,0xE0,0x6E,0x92,0xC9,0xDD,
+0xBF,0xB1,0x4D,0x88,0x07,0xB2,0x4E,0xCF,0x2A,0x1D,0xD6,0x4D,0x3E,0xC2,0x59,0x1D,
+0x0D,0x1D,0xE1,0x96,0xB6,0xE0,0x1C,0x2C,0xD5,0x6D,0x29,0xC2,0x66,0x9A,0xC3,0xDF,
+0x8B,0x5A,0xA6,0x57,0x39,0x1F,0xE3,0x5C,0x30,0x34,0xCC,0x7E,0xBD,0x41,0x83,0x44,
+0x4D,0xC6,0x3A,0x0D,0x43,0x82,0x7E,0xBB,0x3F,0x78,0xC3,0x3D,0x60,0x9C,0xA4,0xBE,
+0x27,0xFA,0x06,0x5B,0x7D,0x2F,0xD3,0x28,0x62,0xD7,0x9E,0xCF,0x7E,0x82,0x99,0x9D,
+0xC1,0x89,0x75,0xCE,0x73,0x87,0x7B,0x8E,0x6F,0xE8,0x93,0xFD,0xA2,0x5E,0x9F,0x47,
+0x18,0xF7,0x0B,0x69,0x1E,0x21,0xDD,0x45,0xF0,0x7C,0x0C,0xF6,0xC2,0x3E,0x7B,0xC3,
+0xA8,0x48,0xB4,0x66,0x55,0xAE,0x52,0x81,0x6A,0xDD,0x96,0xCD,0x39,0xC5,0x1F,0x5C,
+0x4E,0x3B,0xC7,0xF3,0xA0,0xCC,0x30,0x16,0x0F,0x0C,0xF3,0x79,0x7A,0x86,0x8D,0x8D,
+0x54,0xF8,0x04,0x2A,0xC5,0xEA,0x16,0x55,0x78,0xFE,0x84,0xFC,0x42,0xBE,0xF3,0xCB,
+0xD6,0x70,0x8C,0x20,0x98,0x49,0xB5,0xAB,0x22,0x17,0xDE,0x4F,0xBB,0x47,0xE4,0x25,
+0xA5,0x72,0x8E,0x51,0xB9,0x5F,0xA3,0x9C,0xBC,0xA2,0x40,0x64,0x2D,0xD1,0x5B,0x0C,
+0xE0,0x88,0x74,0xEE,0xC0,0xDD,0x21,0x67,0xD2,0x2B,0x2E,0x83,0x13,0xEF,0x42,0x2B,
+0x6A,0x1B,0xE7,0xF7,0x4C,0x3D,0xC1,0x0B,0xAA,0x95,0x56,0x45,0x10,0xEC,0x10,0x7A,
+0xB8,0x83,0x7F,0xBD,0x6A,0x14,0xE8,0x04,0x4C,0x9E,0xB0,0xA8,0xD3,0x2F,0x0A,0xA3,
+0x29,0x3D,0xC1,0x92,0x52,0x91,0x6D,0xB9,0x19,0x3B,0xE5,0x58,0xFE,0x02,0x11,0x95,
+0xF7,0x71,0x8D,0x00,0xD5,0xEE,0x12,0x41,0x0E,0x2D,0xF2,0x59,0xC8,0x34,0x02,0xB0,
+0xD9,0x59,0xA5,0x06,0x53,0x86,0x7A,0xAF,0xEC,0x32,0x10,0xA4,0x8B,0x77,0x90,0x61,
+0x40,0xFC,0x00,0x3A,0x15,0xBE,0x42,0xD1,0x02,0x33,0xFE,0x4B,0x25,0xD9,0x51,0x0E,
+0xE6,0x54,0xA8,0x34,0xC7,0xE2,0x1E,0x5F,0xD9,0x73,0x25,0xD0,0x3B,0xC7,0x6C,0x2D,
+0xDE,0x6B,0x97,0x33,0x1A,0x01,0xFD,0x61,0x64,0xB0,0x98,0xAE,0x71,0x8D,0xD5,0xDE,
+0x0F,0x0E,0xF2,0x87,0xE1,0xCB,0x37,0x50,0x0D,0x7F,0xF1,0x08,0x53,0xAF,0x82,0xAB,
+0x22,0xDB,0x27,0x7F,0x29,0x1B,0xE7,0x48,0x98,0x92,0x64,0x70,0xBA,0x46,0xC5,0x05,
+0xF6,0x9F,0x63,0xEF,0xAF,0x73,0x8F,0xA6,0x8A,0xB1,0x76,0x41,0x29,0xD5,0x4F,0x1C,
+0x58,0x2C,0xD0,0xF2,0xA9,0x5B,0xA7,0x88,0xF1,0x5D,0x0D,0xD6,0xE9,0x15,0x07,0x94,
+0x52,0x24,0xD8,0xF0,0xC6,0xF5,0x09,0x49,0xCF,0x44,0x33,0xF1,0xEB,0x17,0x74,0xE5,
+0x77,0xEA,0x16,0x1B,0x89,0x5A,0xA6,0xA9,0xE8,0x26,0x14,0xB4,0x6B,0x97,0xFC,0xED,
+0xA0,0x53,0xAF,0x75,0x04,0xAD,0x51,0xD3,0x55,0xE5,0xA9,0xCA,0x85,0x79,0xFD,0x02,
+0x9B,0x91,0x6D,0x8C,0xB5,0xFF,0x03,0x30,0x9D,0xA7,0x61,0x40,0x44,0xB8,0x94,0xAA,
+0xAD,0x69,0x95,0x42,0x86,0xE5,0x19,0x19,0xD4,0x4C,0x28,0xE2,0x32,0xCE,0x47,0x0F,
+0xEB,0x6E,0x92,0x03,0x12,0x81,0x7D,0xE9,0x28,0x6E,0xD4,0x3C,0x61,0x9D,0x85,0x9E,
+0x84,0x73,0x8F,0x71,0xBB,0x57,0xAB,0x96,0xCD,0x37,0x31,0x80,0x3C,0xC0,0x2A,0x6C,
+0x7E,0x1F,0xE3,0xE7,0x6F,0x23,0xDF,0x36,0x77,0xB2,0x8B,0xBF,0xB0,0x4C,0xBC,0x76,
+0xF2,0x50,0xAC,0x24,0xEB,0x43,0xBF,0xD2,0x41,0xA1,0xBD,0x9A,0xA4,0x58,0xF8,0x26,
+0x8A,0xB4,0x48,0xB8,0xE6,0xF4,0x08,0x68,0x2E,0x09,0xD2,0x5D,0xF3,0x0F,0x2E,0xA7,
+0x39,0xF6,0x0A,0x49,0xC8,0x5D,0xA1,0xEF,0x96,0xFF,0x6A,0x13,0x12,0xEE,0x63,0x0B,
+0xAC,0x87,0x7B,0xAD,0x8A,0x45,0xB9,0xB5,0x18,0x1A,0xE4,0x78,0x5C,0xA0,0xCE,0xE8,
+0xC2,0x74,0x88,0x30,0xC9,0x4A,0xB6,0xF9,0xCE,0x65,0x32,0xD1,0xFA,0x06,0x05,0x85,
+0x6B,0xF5,0x09,0x18,0xF8,0x58,0xA4,0xDA,0x6C,0xBA,0x90,0xAC,0x99,0x65,0xB3,0x50,
+0x3A,0x0B,0xF7,0xB7,0xC1,0xCA,0x36,0x71,0x26,0x03,0xDA,0x5F,0x37,0xCB,0x72,0x3F,
+0x66,0xCF,0x33,0x2F,0xD8,0x59,0xA5,0xFB,0x0C,0x5E,0xF0,0x28,0x34,0xC8,0x20,0x6E,
+0xF5,0x62,0x9E,0x11,0x84,0xED,0x11,0x13,0x07,0x06,0xFB,0x7B,0x9B,0x67,0xC0,0x21,
+0xAA,0x5B,0xA7,0x77,0x36,0xA0,0x5C,0xEC,0x08,0x4A,0xF4,0x38,0xDE,0x22,0x35,0x91,
+0x8C,0x68,0x94,0x62,0x72,0x90,0x6C,0x98,0x89,0xE3,0x75,0x10,0x1A,0xE6,0x69,0x09,
+0xB6,0x44,0xB8,0x74,0xD4,0xF9,0x05,0x57,0x54,0xC4,0xA8,0xEA,0x17,0xEB,0x56,0x3B,
+0xD8,0xB7,0x4B,0xE9,0xA5,0xFB,0x07,0x24,0x1C,0x0E,0xE0,0x68,0x03,0xFF,0x12,0x6B,
+0x6F,0x3A,0xC6,0xD3,0xB2,0xC0,0x3C,0x08,0xE4,0x38,0x18,0xA6,0xDB,0x27,0x00,0xA1,
+0x80,0xBC,0x40,0xBA,0xF5,0xEF,0x13,0x60,0xA1,0xCD,0x5D,0x16,0xD6,0x2A,0x3F,0x93,
+0xED,0xB2,0x4E,0xD9,0x1F,0x36,0xCA,0x53,0xF8,0x76,0x04,0xF4,0x72,0x8E,0x87,0x8F,
+0xFA,0x4B,0xB7,0x37,0x3E,0x20,0xDC,0x64,0xB9,0x97,0x45,0x54,0x38,0xC4,0x3E,0x7C,
+0x4B,0x1A,0xE6,0xD7,0xDB,0x46,0xBA,0xE7,0x52,0xA3,0xAE,0x8B,0xA9,0x55,0xC7,0x14,
+0x5A,0x3F,0xC3,0xE3,0x8E,0x65,0x99,0x91,0x1E,0x7D,0xE2,0x19,0x31,0xCD,0x15,0x5E,
+0x8F,0x95,0x69,0x9C,0x48,0x1D,0xE1,0x2F,0x79,0xDF,0x85,0xDC,0xD1,0x2D,0x79,0xD2,
+0xCB,0x81,0x7D,0xCC,0x2E,0x24,0xD8,0x70,0x84,0xDC,0x78,0x22,0xB1,0x4D,0x9D,0x56,
+0xD0,0xAC,0x50,0xFA,0x82,0xC5,0x39,0x3D,0x70,0xF4,0x8C,0xFE,0x9A,0x66,0xE1,0x01,
+0x86,0x60,0x9C,0x60,0xA2,0xC4,0x38,0x1C,0xB5,0x89,0x49,0x46,0x83,0x7F,0x9A,0x63,
+0x23,0x35,0xC9,0x90,0xEC,0x7C,0x80,0xEA,0xFC,0x62,0x00,0xE4,0xD7,0x2B,0x1E,0xB3,
+0xD4,0x63,0x9F,0x31,0x5A,0x11,0xED,0x31,0x2C,0x7A,0xD0,0x2C,0x93,0x6F,0xCA,0x23,
+0xC8,0x7C,0x80,0x32,0x81,0xDA,0x26,0x21,0x35,0x01,0xC9,0x4E,0x05,0xF9,0x75,0x0A,
+0x3C,0xD7,0x2B,0x6D,0x99,0x5E,0xA2,0xBD,0x76,0x93,0x8A,0x9F,0x68,0x94,0xAE,0xBC,
+0xF0,0x43,0xBF,0x35,0xF9,0x4F,0xB3,0xCC,0xB3,0xEE,0x4F,0x27,0xF6,0x0A,0x1B,0x97,
+0x78,0xA1,0xB0,0x3A,0x0C,0x95,0xB2,0x4E,0x96,0x51,0xAE,0x13,0x54,0x34,0x09,0x4B,
+0x31,0x4A,0x12,0x73,0x58,0x45,0x36,0x1A,0x66,0x04,0x0B,0x46,0x1A,0xC2,0xB1,0xF3,
+0x49,0xF4,0xD4,0x0B,0x3E,0xA0,0xB5,0x7C,0x3A,0xB0,0xE3,0xF2,0xD8,0x58,0xE9,0xAB,
+0xBD,0xDC,0x08,0xFF,0x15,0xF7,0xC9,0x57,0x0C,0x9D,0xF8,0xDF,0x74,0x15,0x08,0x4A,
+0xBB,0xBB,0x69,0xF9,0xE7,0x4A,0x86,0xA5,0x9B,0xE6,0x14,0xA4,0x6F,0x95,0x93,0xD1,
+0x7E,0xC6,0xD1,0x3C,0x79,0x61,0x33,0x3B,0xC3,0x72,0xD8,0x30,0x0F,0xE4,0x82,0xC0,
+0xE1,0x52,0xDA,0xA3,0x1C,0xD5,0xE2,0x5E,0xC7,0x52,0xFC,0x10,0xAC,0x19,0xDC,0x9E,
+0xF8,0x29,0xB8,0xBA,0x8A,0xFC,0x5D,0xC8,0xC4,0x4D,0xE0,0x0F,0x77,0x09,0x17,0x55,
+0x6C,0xE5,0xE0,0x2E,0x59,0x65,0x17,0x1B,0x4C,0x8D,0xA8,0xCF,0x03,0x48,0x22,0x60,
+0x35,0x5E,0x02,0x77,0xFD,0x79,0xAF,0xBF,0x2F,0x83,0xC5,0xC1,0xE9,0x7B,0xFB,0xB9,
+0xD1,0x26,0x9E,0x93,0x8C,0x9D,0x3A,0xCE,0x1F,0x86,0xF0,0xC4,0x53,0x0C,0x36,0x74,
+0x29,0x10,0x50,0x6B,0x54,0x57,0x28,0x16,0x25,0x0B,0x47,0x49,0x44,0x20,0x0D,0x4F,
+0xD3,0x55,0xEF,0x91,0xBE,0xA8,0x3D,0xFC,0x15,0x0E,0x72,0x4C,0x78,0xB9,0xA8,0xEA,
+0xB4,0xF7,0x2A,0xF6,0x5E,0x24,0x51,0x1C,0x6A,0xA4,0xA7,0xE6,0xBE,0x07,0xD0,0x92,
+0x74,0xBF,0xA2,0x36,0xB7,0x8A,0x16,0xF5,0xC1,0x7A,0xD2,0x38,0xC8,0x4C,0xED,0xAF,
+0x9F,0x8B,0x7D,0xDD,0x26,0xE2,0xEF,0x64,0x21,0x2B,0x63,0x69,0x2D,0xCF,0x8B,0xC9,
+0xEB,0x2B,0xA9,0xA9,0xB8,0xC9,0x5A,0xFA,0x41,0x3A,0x12,0x78,0x37,0x59,0x07,0x45,
+0xC1,0x76,0xDE,0x83,0xBB,0x98,0x08,0xF9,0xD9,0xFE,0x4E,0xBC,0x2E,0xD3,0x94,0xD6,
+0x03,0x4D,0x27,0x41,0x75,0x73,0x2D,0x37,0xC6,0x45,0xEA,0x07,0x3F,0xD1,0x87,0xC5,
+0xA1,0x92,0x5A,0xE3,0x16,0xA6,0x9B,0x54,0xEE,0xC4,0x43,0x86,0x0E,0xF2,0x95,0xD7,
+0x44,0xCB,0xE6,0x06,0x95,0xFF,0x41,0xD7,0x94,0x59,0xA4,0x1B,0x84,0xB0,0x5D,0x1F,
+0x99,0xEC,0x1C,0xDB,0x98,0xCD,0x7E,0xDA,0x82,0x75,0x9E,0x37,0x22,0x7F,0x34,0x76,
+0xCA,0x2E,0x8D,0x88,0x14,0xD7,0xE8,0x56,0xE7,0x53,0xDD,0x11,0x72,0x3B,0x20,0x62,
+0xC5,0x62,0xCE,0x87,0x51,0x67,0x1D,0x13,0x81,0x6A,0x82,0x28,0xC0,0xC4,0x6D,0x2F,
+0x00,0x1F,0x76,0x42,0xB3,0x9A,0x02,0xF1,0x87,0x42,0xAC,0x00,0x4D,0xBE,0x9A,0xD8,
+0xBA,0x9A,0x49,0xF8,0x3F,0x80,0x94,0x7D,0x11,0x2E,0x56,0x6C,0x99,0x1E,0xEE,0xAC,
+0x19,0x64,0x14,0x5B,0xBD,0xF9,0x6F,0xFF,0xB4,0x58,0x85,0x1A,0x70,0x31,0x28,0x6A,
+0xE5,0x46,0xCA,0xA7,0xEE,0x68,0xAD,0xAC,0xF5,0x5F,0xC3,0x1D,0xE4,0xC1,0x4C,0x0E,
+0x5B,0xD7,0xE5,0x19,0x9D,0xFD,0x4B,0xDF,0xBF,0xC7,0x11,0x85,0x3E,0xC7,0x90,0xD2,
+0xD5,0x32,0x8E,0x97,0xD3,0x1E,0xE6,0x91,0x5B,0xB6,0x84,0xF4,0x7C,0x9D,0x88,0xCA,
+0x8C,0x89,0x6C,0xCE,0x2B,0xD0,0xD0,0x69,0xD2,0x61,0xDA,0x23,0x1D,0xFA,0x8E,0xCC,
+0xE3,0x21,0xAB,0xA1,0x7C,0x51,0x06,0x3E,0x4E,0x85,0xA2,0xC7,0x10,0x40,0x39,0x7B,
+0x47,0x99,0xB7,0x05,0xA6,0xEA,0x67,0xE4,0x19,0xAE,0xDE,0xEC,0x59,0x8E,0xBE,0xFC,
+0x3C,0x75,0x20,0x7E,0x66,0x62,0x2F,0x24,0x04,0x1D,0x70,0x5F,0x5F,0xA0,0x96,0xD4,
+0xC0,0x57,0xFE,0x82,0xDC,0x5D,0xAA,0x9E,0x71,0x3F,0x27,0x7D,0x17,0x78,0x06,0x44,
+0x55,0xBA,0x86,0x17,0x35,0xF3,0xED,0x77,0x89,0xEA,0x0A,0xA8,0xDF,0x60,0xD6,0x94,
+0x98,0xCD,0x3C,0xDA,0x0A,0xF4,0xD5,0x48,0x83,0x62,0x88,0x20,0xF2,0xFB,0x60,0x22,
+0x50,0x8F,0xB6,0x12,0xCB,0x5C,0xBC,0x89,0x7A,0xA0,0xB3,0xE2,0x43,0x18,0x32,0x70,
+0x02,0x6C,0x07,0x40,0x64,0x13,0x5C,0x26,0x06,0x15,0x7A,0x57,0x30,0x61,0x38,0x7A,
+0x25,0x0E,0x42,0x67,0xE4,0x1B,0xD4,0xA6,0xED,0xDB,0x5F,0x99,0x7F,0x81,0x97,0xD5,
+0xD4,0x13,0xAE,0x96,0x71,0x63,0x39,0x33,0x64,0x0C,0x01,0x4E,0xA4,0x91,0x5C,0x1E,
+0xC3,0x05,0xAF,0x81,0x47,0x46,0x2A,0x05,0xF6,0x40,0xDF,0x02,0x23,0x69,0x23,0x61,
+0x67,0xBD,0xB3,0x25,0x9F,0x8C,0x38,0xDD,0x01,0x2A,0x42,0x68,0xBA,0x23,0xF0,0xB2,
+0x81,0xB6,0x5E,0xC3,0x5C,0x55,0x22,0x1E,0x4B,0xB2,0x90,0xF0,0x9C,0x2C,0xD9,0x9B,
+0x14,0x5B,0x26,0x56,0xB4,0xDB,0x44,0xF6,0xC2,0x65,0xCE,0x27,0x31,0x77,0x2F,0x6D,
+0xA9,0x98,0x58,0xEB,0xFE,0x28,0xFD,0xBC,0xC5,0x5A,0xF6,0x18,0xEC,0x49,0xCC,0x8E,
+0x21,0x1A,0x52,0x63,0x04,0x97,0xB8,0x46,0xF0,0x68,0xF1,0x2A,0xA5,0x87,0x4B,0x09,
+0xCF,0x1B,0xBD,0x8D,0xAA,0xF8,0x79,0xE8,0xCC,0xCD,0x68,0x8F,0xE3,0xF9,0x73,0x31,
+0xA7,0xF5,0x3B,0xE5,0xB6,0xAA,0x37,0xF4,0x90,0x79,0x80,0x3B,0xA3,0xA9,0x63,0x21,
+0xC2,0x24,0x8F,0x80,0xF5,0x7B,0xA5,0xB7,0x05,0x0A,0x66,0x48,0x56,0x3E,0x01,0x43,
+0xA2,0xC0,0x0B,0xE0,0x2D,0xB1,0xB7,0x6F,0x38,0xB8,0xE9,0xFA,0x85,0xA6,0x4A,0x08,
+0x3D,0x54,0x00,0x7F,0x4D,0x35,0x53,0x0F,0x9F,0xC6,0x30,0x84,0xE8,0x6D,0xEC,0xAE,
+0x71,0x8A,0x92,0x33,0xA2,0xFA,0x73,0xE0,0xA7,0x43,0x8D,0x01,0x4F,0xB4,0x92,0xD0,
+0x1F,0x03,0x75,0x5D,0x9C,0xDD,0x6A,0xDE,0x18,0xB9,0xC8,0xFB,0x36,0x4F,0x10,0x52,
+0xB5,0xD6,0x0A,0xF7,0xCD,0x3D,0xDB,0x8F,0xDC,0xC9,0x7C,0x8B,0x33,0x7D,0x27,0x65,
+0xEF,0x3F,0xB9,0xAD,0x34,0xD3,0xCC,0x76,0xD6,0x41,0xFE,0x03,0x6E,0x83,0x84,0xC6,
+0x11,0x6E,0x16,0x53,0xE1,0x2B,0xE1,0xA3,0xE1,0x7B,0xF3,0x39,0x47,0x3C,0x12,0x50,
+0xE7,0x35,0xBB,0xA5,0xB1,0xEB,0x71,0xF3,0x7E,0x80,0x97,0xC2,0xF1,0xE7,0x7F,0x3D,
+0x9C,0xD9,0x2C,0xDE,0x24,0x93,0x9C,0x66,0x32,0x30,0x6B,0x72,0xBC,0x0D,0xD8,0x9A,
+0x6E,0x96,0x91,0x2C,0xC8,0x0D,0xEE,0x8A,0x09,0xAA,0xCA,0xE8,0x6D,0x9F,0x9B,0xD9,
+0xF2,0x50,0xCB,0xB0,0xEF,0x48,0x8C,0xAD,0xFB,0xF7,0x65,0xB5,0xB5,0x93,0x4F,0x0D,
+0xAF,0xFF,0x39,0xED,0xF1,0x6B,0xB1,0xB3,0xAD,0xCB,0x0F,0x89,0x8B,0x00,0xE2,0xA0,
+0x18,0x45,0x34,0x5A,0xE9,0x29,0xEB,0xAB,0x60,0x2C,0x25,0x6E,0x40,0x04,0x2D,0x6F,
+0xFD,0x1C,0x88,0xBF,0x32,0xB2,0xAB,0x70,0xA1,0x6B,0xA3,0x29,0xCF,0x74,0xD2,0x90,
+0xA9,0xE1,0x2D,0x7D,0x7A,0x1F,0xD4,0x9B,0xD6,0x52,0x7E,0x19,0xFC,0x09,0x78,0x44,
+0x36,0xEA,0xB2,0xE9,0x9E,0x7F,0x50,0xFB,0xA8,0x2C,0xD9,0xC0,0x5A,0x64,0xDE,0x8F,
+0x56,0x6E,0xD2,0x0D,0x8C,0xA7,0x9A,0x23,0x1A,0x9E,0xE4,0x4F,0x11,0xB7,0x95,0x17,
+0x33,0xDA,0xB7,0xDC,0x1E,0xE4,0x4B,0x60,0x69,0xED,0x71,0xA9,0x73,0x42,0xF7,0x80,
+0x7B,0x58,0xFF,0x16,0xE5,0x66,0x32,0xE2,0x51,0xD5,0x37,0xD7,0x94,0x8F,0x10,0xAA,
+0x21,0xEB,0xA5,0xFF,0xF2,0x9F,0xDC,0x1B,0xD9,0x5D,0x3D,0x55,0x37,0xD2,0xB3,0x54,
+0x8B,0x94,0x0F,0x2A,0x43,0xCE,0x3C,0x4A,0xA9,0x2D,0xF9,0xE1,0x00,0xD7,0x84,0x66,
+0xE5,0x73,0x61,0xA3,0x5A,0xF0,0x1B,0x74,0x53,0xD7,0x46,0xA4,0x82,0xAE,0x06,0x9D,
+0xFA,0x70,0x7E,0xBF,0xC7,0x9A,0xEC,0x1E,0xBA,0x3E,0xE8,0xE3,0x8B,0x8C,0x0F,0xB6,
+0x08,0xCD,0x8C,0xF0,0xB5,0x76,0x72,0xF2,0x20,0xA4,0xD3,0x42,0xC8,0x5D,0x4C,0x24,
+0x73,0x5A,0xF7,0x1C,0x58,0xE3,0x0A,0x67,0x90,0x14,0x9F,0xBE,0x6F,0x10,0xEB,0xCE,
+0x85,0xF7,0x01,0x47,0xC8,0xB3,0xCA,0x37,0x6B,0xEF,0x00,0xDA,0x02,0xA6,0x86,0x15,
+0x69,0x69,0xED,0x35,0x82,0x60,0x53,0xE4,0x7B,0xFF,0x40,0x8A,0xC2,0x2E,0x46,0x5D,
+0x8C,0xD5,0x08,0x6C,0xC2,0xBB,0xC8,0x3F,0x3C,0xB8,0x81,0x0C,0x3D,0xA1,0xB9,0x2D,
+0x3B,0xD8,0xBF,0xD6,0x98,0xA3,0x8A,0x27,0xDB,0x5F,0x4C,0x26,0xF2,0x6A,0x76,0x29,
+0x66,0x2A,0xE2,0x79,0xA5,0xBD,0xA9,0x39,0xE7,0x63,0x1A,0x4C,0x5F,0x54,0xDB,0xBA,
+0xC1,0x67,0x45,0x93,0xC4,0x67,0x12,0xE3,0xFA,0x7E,0x68,0x23,0xC6,0x3E,0x42,0x49,
+0x54,0x1F,0xD0,0x7E,0x83,0x8E,0xBC,0x0A,0x2F,0xAB,0x90,0x0E,0x16,0xF6,0x92,0x51,
+0xA8,0xC1,0x2C,0x5C,0x06,0x34,0x83,0xB0,0x0D,0x89,0xE5,0x59,0x86,0xBE,0x02,0x89,
+0xD3,0x56,0x57,0xB0,0x4E,0xF4,0x0B,0x70,0xBE,0x3A,0xF8,0xF7,0xAE,0xB8,0x2A,0xA7,
+0xB1,0xA3,0x35,0x27,0xFD,0xB6,0xFA,0x32,0xCB,0x4F,0x0C,0x76,0x87,0x9E,0x03,0xA8,
+0x96,0xE6,0x12,0x45,0x75,0x36,0xF2,0xB2,0x05,0x81,0xE7,0x53,0x28,0xD1,0xAC,0x48,
+0xC4,0x57,0x40,0xA6,0x95,0x99,0xBD,0x1D,0xB0,0x34,0x9B,0x9A,0x22,0xA2,0xA6,0x31,
+0x0C,0xDD,0x88,0xE4,0xFC,0x58,0x15,0xDC,0x72,0xF6,0x62,0xA1,0x70,0x13,0xF4,0xD2,
+0x15,0xBF,0x91,0x9F,0x0B,0x0E,0xB4,0x8A,0xA2,0x26,0xAA,0xB9,0xC9,0x7D,0x4D,0x05,
+0xF3,0x52,0x77,0x94,0x11,0xCD,0x6D,0x49,0x3A,0xBE,0xE0,0x6B,0xE0,0x5B,0x64,0x0A,
+0x57,0x4E,0xD3,0x2C,0x03,0x15,0xA7,0x91,0x50,0xD4,0x17,0xF6,0x33,0xC2,0xB7,0x40,
+0x40,0x4F,0xC4,0x3A,0x10,0x23,0x82,0xA7,0x1C,0x98,0x85,0x28,0x4C,0x45,0xC8,0xB8,
+0x5B,0x5C,0xDF,0x32,0x50,0xF8,0x19,0x7C,0xDD,0x59,0x2D,0x41,0x63,0x02,0xE7,0xD0,
+0xB5,0xB3,0x31,0x33,0x91,0x56,0x76,0xD2,0x78,0xFC,0x11,0xD8,0x5B,0x44,0xDF,0xAE,
+0x3D,0xB9,0xB9,0xB1,0xD4,0xAC,0xC9,0x28,0x4A,0xCE,0x24,0xDF,0xDC,0x0D,0x58,0x60,
+0x80,0xC7,0x04,0x72,0x6D,0xE6,0x3A,0x62,0x75,0xF1,0x23,0xE7,0x3F,0xD0,0xBB,0x5E,
+0x35,0xBB,0xB1,0xBB,0xB2,0x44,0x47,0xC0,0xD4,0x50,0x0F,0x6A,0x85,0xEF,0x01,0xDB,
+0x97,0xC6,0x13,0x64,0x04,0x27,0x92,0xA3,0x55,0xD1,0x27,0xC3,0x97,0xDE,0x13,0xF8,
+0x55,0x3F,0xD1,0x5F,0x21,0xE9,0x79,0x6D,0xEE,0x6A,0x38,0x67,0x84,0xCF,0x00,0xFA,
+0x7F,0x48,0xFB,0x02,0x73,0xEA,0x28,0x6E,0x2A,0xAE,0xA0,0x3B,0x17,0xD6,0x93,0x70,
+0x51,0x2F,0xD5,0x4B,0x34,0x03,0x86,0x87,0x7A,0xFE,0x60,0xAB,0x7D,0x21,0xF9,0xED,
+0x5E,0x6C,0xDA,0x07,0xC1,0x46,0x36,0xC2,0x43,0xC7,0x06,0xF4,0x30,0x93,0xB4,0x12,
+0x0D,0xFD,0x89,0xC5,0x57,0xCA,0x2C,0x4E,0x65,0xE1,0x63,0xB7,0x24,0xC3,0xA0,0x56,
+0xD0,0x07,0x54,0xE2,0x68,0xC7,0x1E,0x43,0x49,0xCD,0x75,0x8D,0x4D,0x65,0xC9,0x99,
+0x71,0x2B,0xF5,0x6F,0x84,0xBC,0x89,0x38,0x4F,0xCB,0x14,0xEA,0x5C,0x05,0xD8,0xE8,
+0x8D,0xF5,0x09,0x4D,0x46,0xEF,0x18,0x6B,0x48,0xCC,0x55,0xAC,0x38,0x91,0xBC,0x18,
+0x2E,0xA8,0xAA,0xB3,0xBD,0x6D,0x61,0xE9,0x3E,0xBA,0xF0,0x7F,0xFE,0x78,0x7A,0x37,
+0x94,0x97,0x10,0x36,0x2B,0xE1,0x7B,0x65,0x52,0xD6,0x66,0x85,0x8A,0xAC,0x0E,0x97,
+0x77,0x4A,0xF3,0x08,0x2F,0x2E,0xB0,0xAA,0x95,0x11,0xAF,0x8B,0x29,0xF1,0xAD,0x69,
+0x18,0x8D,0x9C,0xA0,0xF9,0x79,0x31,0xFD,0x71,0xF5,0x33,0xF3,0x9E,0xFC,0x1A,0xD3,
+0x41,0x6F,0xC5,0x1B,0xCF,0x81,0xFF,0x05,0xA6,0x22,0xBA,0xAD,0x98,0x9D,0x1C,0xB4,
+0xCF,0x04,0x4B,0xFE,0x62,0xCF,0x1C,0x4B,0xD7,0x53,0x5E,0x38,0x80,0xDF,0x04,0xEE,
+0x29,0xE9,0xAD,0xF5,0xE0,0x47,0x16,0xC3,0x8D,0x09,0xED,0xD1,0x18,0x95,0x9C,0x3C,
+0xDD,0x35,0x59,0xDD,0x9C,0x6C,0x41,0xE8,0xA0,0x24,0xDB,0xCA,0xF9,0x39,0x7D,0x71,
+0xA5,0xF3,0x21,0x63,0x1F,0x0A,0xA4,0x8E,0x14,0x90,0x87,0x22,0xA1,0xFB,0x25,0xEB,
+0xEC,0x51,0x68,0x88,0x9B,0x5E,0x74,0xDA,0x41,0xC5,0x77,0x87,0x19,0xB5,0x9D,0x1D,
+0x6C,0x59,0xE8,0x00,0x74,0xD8,0x1D,0x5C,0x5D,0xD9,0x25,0xC9,0x07,0x96,0x83,0x20,
+0x75,0x3B,0xF1,0x7B,0xCB,0x4E,0x34,0xCA,0x42,0xC6,0x26,0xD5,0xCC,0x4D,0x48,0x30,
+0xEA,0x30,0x6E,0xEF,0x1A,0x2B,0x80,0xAF,0x62,0xE6,0x22,0xF1,0x92,0xEE,0x16,0xCD,
+0x2F,0x88,0xAB,0x92,0xAF,0xB5,0xAB,0x31,0xF6,0x72,0x7A,0x3D,0x83,0x8E,0x07,0xBC,
+0xBD,0xB1,0x39,0x39,0x01,0x06,0xB6,0x82,0x1B,0x9F,0xC4,0x6E,0x1D,0xA5,0x99,0x09,
+0x45,0x7F,0xC1,0x0F,0x13,0xDE,0x7C,0x5A,0x96,0x12,0xFE,0xD9,0x26,0xB2,0xA2,0x25,
+0xA1,0xE3,0x25,0x77,0x86,0xAF,0x98,0x2B,0x93,0x17,0xCE,0xEC,0xEB,0x08,0x6F,0x52,
+0xF8,0x01,0x7C,0xCC,0x3E,0x0B,0x84,0x8F,0x9D,0x19,0xAD,0x81,0x32,0xE2,0xB6,0x61,
+0x0B,0x9C,0x8F,0xA2,0xC6,0x74,0x03,0xF0,0x3B,0xBF,0xC0,0x4A,0x9B,0xCC,0x1F,0xE6,
+0xE0,0x43,0x64,0x96,0x3F,0xE5,0x6B,0x61,0x6A,0xEE,0x20,0xFB,0xFD,0x29,0x79,0x65,
+0x20,0xCB,0xA4,0xDE,0x78,0x0C,0xC5,0x88,0xB4,0x30,0x8B,0x8E,0xC0,0x5F,0x44,0x2E,
+0x47,0x0E,0xC3,0x7C,0x14,0xEC,0x49,0x68,0x1E,0x9A,0xF4,0x5B,0xB8,0x99,0x3C,0x90,
+0x0E,0x84,0xE8,0x90,0xA4,0x88,0xB0,0x5A,0x4F,0xEF,0xC2,0xD6,0x74,0x00,0x16,0x14,
+0x73,0x26,0x37,0x32,0xC7,0x3E,0xD3,0x8F,0xE6,0xC7,0x43,0x57,0x57,0x12,0x27,0x06,
+0x80,0x6C,0x8E,0x78,0x69,0xFF,0x7D,0xE0,0xB7,0x68,0xBD,0xA9,0xFC,0x80,0x1E,0x94,
+0xF7,0x46,0xD3,0x52,0x6A,0xAD,0x7E,0xB1,0xEB,0xF0,0x79,0x6D,0x76,0x13,0x07,0x07,
+0xA4,0x4D,0x8B,0x59,0xC5,0x4D,0xD1,0xFE,0x78,0xCE,0xD4,0xC0,0x9E,0xA7,0x5B,0xB3,
+0xE7,0x42,0xC7,0x56,0x80,0xB8,0x94,0x4E,0x27,0xA8,0xED,0xF9,0x61,0xEA,0xE9,0xFE,
+0xCF,0xC3,0x6E,0xD7,0x44,0xE4,0x50,0xD6,0x01,0xBD,0xDE,0xCA,0x15,0xDA,0xAD,0xCE,
+0x35,0x1E,0x49,0x0A,0x49,0xDB,0x5D,0xE4,0x3B,0xAB,0xF2,0xE6,0xDA,0xB3,0x0B,0xA7,
+0x3D,0x9E,0xC1,0x8A,0x6C,0xCA,0x78,0xD0,0x20,0x9D,0xDF,0xCB,0x94,0xAF,0x59,0xBB,
+0xE3,0x62,0xE3,0x76,0x3F,0x08,0x2B,0x41,0x66,0xDC,0xD8,0xCC,0x64,0xCB,0xCD,0xDF,
+0x5F,0x87,0xBA,0x93,0x62,0xA7,0x76,0xB3,0x09,0xAE,0xC5,0xD1,0x1B,0x1D,0x64,0x09,
+0x60,0x3D,0x3F,0x29,0xEE,0x31,0xFA,0xA9,0xF3,0x38,0xA9,0xBD,0xBB,0x69,0xB0,0x7D,
+0x45,0x0B,0x2C,0x1F,0xFA,0x75,0xEE,0xF9,0x7F,0xFB,0xE6,0xF2,0x5F,0x09,0x34,0x1D,
+0x82,0x64,0x84,0x70,0xAD,0xA3,0xB9,0x78,0x07,0x67,0x02,0x16,0xE5,0xBE,0x39,0xAA,
+0xCC,0xDC,0x72,0xC8,0x4C,0xEE,0x58,0xD4,0xB4,0x96,0x40,0x54,0x62,0x17,0x17,0x03,
+0xA7,0x52,0x97,0x46,0x02,0x43,0x16,0x37,0x21,0x72,0x31,0x25,0x38,0x0F,0x55,0x1B,
+0xFD,0xCE,0x51,0xDA,0xEF,0x10,0xFB,0x89,0x46,0x13,0x37,0x23,0xFD,0x6E,0xF1,0x7A,
+0x21,0x3A,0x79,0x2E,0xC4,0x6C,0xD0,0xDE,0x5D,0x25,0x1A,0x0E,0xB0,0x8F,0x5D,0x9B,
+0x99,0xFF,0x04,0xEB,0xDD,0x17,0xC9,0xBC,0x0B,0xBF,0xD6,0xC2,0x91,0x8E,0x7D,0x9A,
+0x3B,0xB6,0xEF,0xA2,0x89,0x93,0x9D,0x6C,0xAE,0x4F,0x83,0x97,0x67,0x36,0x33,0x22,
+0xF3,0x66,0xF7,0x72,0xCD,0x47,0xD9,0xFC,0x59,0xEE,0xD5,0xC1,0xBC,0x5B,0x85,0x4F,
+0x91,0x7F,0x8C,0x6B,0x5B,0xF8,0x4F,0xD5,0x45,0xED,0xCA,0xDE,0xAC,0x90,0x5E,0x84,
+0x40,0x3C,0x1E,0x28,0x36,0x23,0x22,0x63,0xB1,0xB2,0x61,0x75,0x30,0x14,0x46,0x00,
+0xF8,0xF9,0x63,0xED,0xA8,0x96,0xBC,0x48,0x7D,0xEA,0xF5,0xE1,0x41,0x05,0x26,0x11,
+0xB7,0x56,0x83,0x42,0x5D,0x9F,0x49,0xB4,0x55,0x36,0x01,0x15,0xA9,0xB1,0x7A,0xA5,
+0x79,0xAE,0xB5,0xBA,0x85,0x8D,0x91,0x7E,0xE2,0x0C,0x8C,0x98,0x85,0x8A,0x6D,0x9E,
+0xC9,0xEB,0x40,0xFF,0x88,0xB2,0x9C,0x4C,0x0D,0x65,0x0A,0x1E,0xED,0xA5,0x2A,0xB1,
+0x2B,0xB2,0xFB,0xA6,0x2C,0x0A,0x38,0x50,0x60,0x06,0x04,0x10,0xDE,0x7C,0xC0,0x68,
+0x8B,0xF3,0x1A,0xE7,0x66,0xB3,0x72,0xA3,0x77,0xE8,0xFD,0xE9,0xE9,0x6A,0xE1,0x7E,
+0x54,0x18,0x2E,0x0C,0xF7,0x4A,0xE3,0xCB,0xC6,0x08,0xAC,0xB8,0x6A,0x0C,0x04,0x18,
+0xC6,0x54,0xF0,0x40,0x6F,0x98,0x7B,0x81,0xD7,0x3C,0x89,0x9D,0x1C,0x2F,0x51,0x3B,
+0x03,0x33,0x52,0x27,0x8F,0xF4,0x9B,0x0D,0x02,0x43,0x23,0x37,0xA2,0x57,0x97,0x43,
+0x22,0x25,0x65,0x31,0xFC,0x12,0xE8,0x98,0x4C,0x11,0x3F,0x2B,0x03,0xCD,0xAC,0xD9,
+0x29,0xBA,0xF1,0xAE,0x9C,0xF6,0x88,0x1C,0x95,0xB6,0x41,0x55,0xC8,0x6B,0xC1,0x7F,
+0x12,0x20,0x50,0x34,0x67,0x92,0x73,0x83,0x25,0xB9,0xFE,0xEA,0x0C,0xE4,0x8A,0xF0,
+0xA6,0x45,0x81,0x51,0x24,0x00,0x30,0x52,0xC3,0x2C,0x8D,0x99,0x9B,0x86,0x7F,0x92,
+0x23,0x32,0x73,0x26,0x1C,0x7E,0x08,0x14,0xD9,0xF5,0x4E,0x5A,0xD8,0xA0,0x1A,0xB4,
+0x90,0x68,0x9A,0x7C,0xE5,0x69,0xF1,0xFA,0x5B,0xFF,0xC6,0xD2,0x26,0x03,0x47,0x17,
+0xBB,0xF6,0x2F,0xE2,0x73,0xD6,0x67,0xD3,0x28,0x8E,0xC4,0xD0,0x11,0x15,0x66,0x01,
+0x5C,0x98,0xA6,0x8C,0x4D,0xCF,0x59,0xF4,0x6D,0x31,0x3E,0x2A,0xEA,0x97,0x1F,0x83,
+0x05,0x1B,0x7C,0x0F,0xF5,0x39,0xE1,0xBA,0xCE,0x1B,0xB7,0xA3,0xA8,0x5F,0x95,0x4B,
+0xB8,0xE9,0x33,0xFD,0x19,0x4B,0x0D,0x24,0x6F,0x20,0x2D,0x39,0x3A,0x1C,0x44,0x08,
+0x3F,0x96,0xCB,0x82,0x30,0x44,0x24,0x02,0x56,0xC8,0xFC,0xE8,0x99,0x95,0x6E,0x81,
+0x92,0x60,0x90,0x74,0x60,0xD4,0x74,0xC2,0x32,0x57,0x07,0x13,0x42,0xF8,0xD8,0xEC,
+0x1D,0x9F,0xE0,0x8B,0x38,0x4E,0x2C,0x00,0x80,0x49,0xAB,0xBF,0xA1,0xAA,0x69,0xBE,
+0xA1,0x7A,0xB9,0x6E,0xE3,0x0E,0xF7,0x9B,0x06,0x88,0xEC,0xF8,0xD1,0x55,0xE6,0x41,
+0xE2,0x75,0xF5,0x61,0x3E,0x29,0x2A,0x61,0xC0,0xD2,0x70,0x64,0x36,0xC8,0x9C,0xDC,
+0x10,0x28,0x5A,0x3C,0x20,0x14,0x34,0x42,0xAA,0x84,0x4C,0x58,0xA5,0x65,0xA2,0x71,
+0xD7,0x47,0xF2,0x53,0x0D,0x0F,0x19,0x74,0x82,0x58,0xB8,0xAC,0xDD,0x81,0x3E,0x95,
+0xAF,0xD2,0x1F,0xC6,0xE4,0x48,0xF0,0xDA,0xAF,0xA0,0x6D,0x79,0xC5,0x51,0xF6,0x45,
+0x9E,0xC0,0x3C,0xD4,0x77,0xC2,0x63,0xC3,0x7B,0x30,0x29,0x3D,0x2B,0x39,0x70,0x2D,
+0x09,0xBB,0xD0,0xAF,0xB7,0x8A,0xA3,0x4B,0xD5,0x2D,0x9A,0x8E,0x05,0x11,0x76,0x05,
+0x2E,0x85,0xC9,0x91,0xB5,0xF9,0xA1,0x3A,0xDF,0x2F,0x92,0x86,0xC4,0xBF,0x19,0xAB,
+0x6B,0xA2,0xAB,0xB6,0x35,0x71,0x21,0x32,0xFA,0xC4,0x5C,0x48,0x24,0x10,0x56,0x04,
+0x15,0x1F,0x68,0x0B,0xDB,0x70,0xCF,0xDD,0x2D,0xAA,0xE5,0xF1,0x5E,0xE7,0xDB,0xF3,
+0x9F,0xD7,0x2A,0xC3,0x1A,0x19,0x0E,0x75,0x16,0x53,0x27,0x33,0xBD,0xB5,0x6A,0xA1,
+0x9A,0xE0,0x18,0xF4,0x4E,0x9D,0x5A,0xA5,0xE7,0x28,0xAD,0xB9,0x86,0x77,0x93,0x63,
+0x77,0x06,0x13,0x12,0x8D,0x87,0x99,0x7C,0x35,0x62,0x35,0x21,0x89,0x5E,0xB5,0x4A,
+0x87,0x53,0xB6,0x47,0xA0,0x9C,0xB4,0x4A,0xA4,0x4D,0x8B,0x9F,0x34,0xDB,0x8D,0xCF,
+0x86,0x44,0xA0,0x50,0x96,0x8F,0x82,0x6F,0x7A,0xDF,0xC7,0xD3,0xCC,0xA4,0x0A,0xB0,
+0x7B,0xA6,0xBF,0xB2,0xD5,0x1D,0xC1,0xBE,0x54,0xD9,0xEF,0xFB,0x22,0xCC,0x8C,0xD8,
+0x94,0x48,0xBE,0x5C,0x7B,0xDC,0x6F,0xD1,0xCD,0xE5,0x4A,0x5E,0x5C,0xF4,0xCA,0xE0,
+0x0F,0x93,0xFE,0x87,0x65,0xE1,0x71,0xF2,0x6B,0xEB,0xE2,0xF6,0xD2,0xA8,0x18,0xBC,
+0x71,0x2E,0x3D,0x3A,0x2F,0x58,0x3B,0x01,0x53,0xEC,0xDD,0xC9,0xEC,0x4B,0xC5,0x5F,
+0x0F,0x4A,0xE3,0x6D,0x90,0x0C,0x58,0xD5,0x92,0x51,0x42,0x07,0x17,0xBD,0x6E,0xF8,
+0x97,0xD2,0xA9,0xBF,0xB9,0x03,0x7E,0xFC,0x99,0xBC,0xA4,0xE1,0x0D,0x7E,0xB7,0x3B,
+0x29,0x6C,0x86,0x2E,0x3C,0xBE,0x46,0x79,0x3C,0x4C,0xF1,0xB4,0x16,0x53,0x81,0x16,
+0x65,0x20,0x14,0xF0,0x43,0x46,0xC1,0x06,0x2A,0x4D,0xE6,0xA3,0x05,0x65,0xA4,0x20,
+0x4D,0x08,0x12,0xDE,0x2B,0xA8,0x47,0x6E,0x35,0xB0,0x04,0x41,0x97,0x26,0x75,0x63,
+0xE8,0xAD,0x2E,0x47,0x13,0xD6,0x01,0x56,0x34,0x5F,0xEA,0xAF,0x56,0x88,0x1A,0xCD,
+0x40,0x05,0x20,0xE1,0x4F,0x58,0xD3,0x0A,0x74,0xC4,0x31,0x74,0x6B,0x96,0x39,0xD3,
+0x7F,0x3A,0x27,0xD9,0xAC,0x66,0x0E,0xE9,0xB7,0xBA,0x8C,0xC9,0xD2,0xDC,0xCA,0x99,
+0x1A,0x5F,0x93,0x08,0x66,0x57,0xF5,0x23,0x78,0x1C,0xE5,0xA0,0x85,0xFE,0xBF,0xBB,
+0xCF,0x8A,0x6B,0x25,0xB6,0x4F,0x3D,0xF3,0x95,0x64,0x70,0x35,0xC2,0x17,0x11,0x52,
+0x8B,0xCE,0xFB,0xF1,0xDE,0xA1,0xBB,0x9B,0xB6,0x55,0x62,0x27,0x48,0x84,0x08,0xC1,
+0x38,0x7D,0xE6,0x5F,0xF6,0x8F,0xBD,0xB3,0x5A,0xC2,0x19,0x5C,0x00,0x44,0x80,0x01,
+0x30,0x75,0xE4,0x55,0x58,0x4E,0xD2,0x1D,0x43,0xE5,0x27,0x62,0x73,0x46,0xF1,0x03,
+0xFE,0xBB,0x0F,0x70,0xF7,0xAE,0x9D,0xB2,0x21,0xA0,0x00,0x45,0xFB,0xC6,0xF9,0x83,
+0x47,0x02,0x61,0xA7,0x00,0xD4,0x10,0x45,0xE2,0xDE,0xBD,0xF8,0xFA,0x28,0x16,0x6D,
+0x85,0xC0,0x98,0x9C,0x52,0x37,0xA1,0x17,0xA0,0x54,0x75,0x30,0x93,0xE9,0xBE,0xAC,
+0x15,0x50,0xD0,0x44,0xB8,0x22,0x5E,0xFD,0xF6,0xCE,0xB9,0xFC,0xB3,0x06,0x71,0x43,
+0x8F,0xCA,0xEB,0xE5,0xFB,0xB0,0x8F,0xBE,0xB9,0x73,0x4B,0x0E,0xC1,0xEA,0xEF,0xAF,
+0x5E,0x1B,0x03,0xDC,0x72,0x13,0xA5,0x37,0x41,0xF4,0x34,0x71,0xCE,0xC3,0xC9,0x86,
+0xA5,0xE0,0x9C,0xB8,0x1F,0xC8,0x13,0x5A,0x1A,0x59,0xC2,0x87,0x5E,0x93,0x09,0xD6,
+0x09,0x4C,0x82,0x0A,0x4D,0x2B,0xA2,0x08,0x6A,0xD6,0x3D,0x78,0xC4,0xCB,0xCB,0x8E,
+0x4E,0x0B,0x43,0x8C,0xB2,0x5B,0x2D,0xF7,0x33,0x6A,0xD8,0x9D,0x84,0x10,0x50,0x55,
+0xD2,0x97,0x19,0x4A,0x2F,0xBC,0x57,0x6A,0x7F,0x29,0xD7,0x92,0xA3,0xCD,0xAA,0x88,
+0xEE,0xAB,0x4F,0x20,0x82,0x2F,0x69,0xC7,0xD0,0xDB,0x8A,0xCF,0x9E,0xD3,0x89,0x96,
+0x9D,0xD8,0xDA,0xC6,0x2A,0x89,0x67,0x6F,0xEF,0xE9,0x87,0xC2,0x98,0x0F,0x53,0x4A,
+0xE3,0xA6,0x7D,0x1F,0x8C,0x42,0x0A,0xC9,0x7B,0xE2,0x18,0x5D,0x7C,0x6F,0xD7,0x2A,
+0x5C,0x19,0x72,0xAF,0x03,0x86,0x41,0x46,0xDA,0xD9,0x82,0xC7,0x18,0x94,0x48,0xD1,
+0x2F,0x6A,0xE7,0x49,0x61,0x11,0xB4,0x24,0x0B,0x6D,0xE7,0xA2,0x8A,0xD7,0x99,0x92,
+0xEC,0xA9,0x3E,0x53,0x47,0x52,0xD1,0x02,0xF9,0xE8,0x90,0xD5,0xF4,0xEF,0xDF,0xAA,
+0x64,0x21,0x34,0xD1,0xE4,0xAC,0x8C,0xA1,0x10,0x5B,0xCA,0x8F,0xE3,0x16,0x31,0x53,
+0x66,0x23,0x45,0xA2,0xF2,0x9B,0xAD,0xB7,0xA5,0x70,0x54,0x11,0x5C,0x80,0x18,0xC5,
+0x9C,0xD9,0xFA,0xE7,0x70,0x60,0xD4,0x35,0x2C,0x97,0x3A,0x7F,0x45,0xBE,0x3F,0xFB,
+0xA3,0xE6,0xFD,0xDF,0x56,0x23,0xB1,0x13,0x09,0x7C,0xF4,0xB1,0x15,0xAE,0x7F,0xEB,
+0x2E,0x6B,0xC7,0x68,0x6D,0x0F,0xA6,0x28,0x3F,0xB2,0x0C,0x49,0x07,0x76,0xB5,0x33,
+0xA8,0xED,0xAE,0x87,0x42,0x67,0xE1,0x07,0xCA,0x02,0x49,0x0C,0x38,0x7B,0x87,0x3E,
+0xA6,0xE3,0xCD,0xEA,0x9B,0x54,0x0B,0xDE,0x71,0xE0,0x10,0x55,0x80,0xDF,0x9B,0x9A,
+0x5F,0x1A,0x23,0xFD,0x8D,0x63,0x2A,0xC8,0x90,0x40,0x51,0x14,0x39,0x95,0x68,0xD0,
+0x0E,0x4B,0xC3,0x4C,0xEB,0xE0,0xCF,0xAE,0xA4,0x9F,0xBA,0xFF,0xC0,0x04,0x00,0x41,
+0x2B,0x6E,0xF7,0x5D,0xC8,0x96,0x9A,0x8D,0x7A,0x0D,0xF6,0xB3,0x12,0x9C,0x4A,0xD9,
+0x81,0xC4,0x88,0x88,0xB0,0x28,0x5C,0xF5,0xD8,0xC8,0x91,0xD4,0x7E,0x7C,0xC6,0x39,
+0x95,0xD0,0xD8,0xCC,0x89,0x77,0x3A,0xCC,0xDB,0x36,0x6C,0x29,0x9A,0x1C,0x42,0x59,
+0xB8,0xFD,0xEE,0xD7,0x68,0x3A,0x96,0x2D,0xF3,0xEA,0x98,0xDD,0xE6,0x37,0x15,0x72,
+0x74,0x31,0x74,0x81,0x69,0x1B,0xB6,0x2C,0x8E,0x52,0x5D,0x18,0x9D,0x2E,0x77,0x6B,
+0x21,0x64,0x84,0x24,0xD1,0xED,0xF8,0x94,0x65,0xF0,0x14,0x51,0x19,0x7A,0xA7,0x3F,
+0x77,0x32,0x25,0xD3,0xBC,0x36,0x4E,0xF9,0x7D,0x38,0xC4,0x81,0xCD,0x3E,0x37,0x7B,
+0x68,0x2D,0x26,0xCF,0x77,0x26,0x95,0x32,0x06,0x5A,0xDD,0x98,0x72,0xA8,0x1E,0xED,
+0xC3,0x86,0x79,0x3B,0xF3,0xBA,0x8D,0xB6,0x94,0x8B,0x9E,0xDB,0xA9,0xC5,0xA8,0x80,
+0x57,0x12,0x21,0xF7,0xE2,0xCB,0xED,0xA7,0xE9,0x33,0x5B,0x1E,0x1C,0x5B,0x83,0x1E,
+0x7D,0x38,0x56,0xAA,0x48,0x1E,0x92,0x0D,0x4B,0xF6,0x3C,0x79,0x40,0x9F,0x1B,0xDA,
+0x7A,0x3F,0x17,0xEC,0x2C,0xEE,0x06,0x69,0x69,0x28,0xC0,0x85,0x82,0xCC,0x8A,0x89,
+0x67,0x22,0x65,0x83,0xFA,0x91,0xAF,0xBF,0x30,0x94,0x25,0x60,0x2D,0x91,0x78,0xD4,
+0x0B,0x4E,0xF3,0x79,0x8E,0x31,0x7B,0xCB,0xB5,0xAB,0x9F,0xDA,0xBB,0x1D,0x62,0x58,
+0x44,0x01,0x30,0xF5,0xEE,0xD5,0xFF,0xAB,0xA6,0x8E,0xA9,0xEC,0xFF,0x09,0x32,0x4C,
+0xA0,0xE5,0xAC,0x8D,0x59,0x6F,0xF2,0x1C,0x0E,0x49,0xC6,0x83,0x29,0x5E,0xB3,0x1B,
+0xE2,0xA7,0x5D,0x3E,0xF0,0xE8,0xDC,0xB5,0xF8,0x07,0x7E,0x3B,0x64,0xBF,0x1F,0xFA,
+0x93,0xD6,0xB9,0xAB,0xE8,0xB2,0x9E,0xAD,0x1D,0x6C,0xF0,0xB5,0xC9,0xF1,0xFC,0xB4,
+0x60,0x25,0x24,0xC5,0xE7,0xFE,0xDD,0xA2,0x62,0xC5,0x26,0x63,0x02,0x57,0x91,0x12,
+0xE1,0xA4,0x0C,0x6C,0xF5,0xDD,0xEC,0xB0,0xBD,0xB8,0x84,0xC1,0xB4,0x34,0x44,0x71,
+0x1F,0x5A,0xA3,0x3D,0x67,0x76,0xD5,0x22,0x04,0x4B,0xCE,0x8B,0x75,0x9A,0x2B,0xDF,
+0xDB,0x9E,0x3B,0x61,0xF4,0xFC,0xCC,0xB1,0x59,0x3C,0xE4,0xA1,0x27,0x99,0x7A,0xDC,
+0x76,0x33,0x05,0xF2,0x40,0x14,0x90,0x05,0x01,0x6F,0xEF,0xAA,0xC7,0x36,0x35,0x73,
+0x4F,0x0A,0x63,0xAD,0x0D,0xEB,0x22,0x48,0x4D,0x2C,0xE0,0xA5,0x32,0x73,0x85,0x36,
+0x7C,0x39,0x76,0x8B,0x3D,0x9F,0x66,0x78,0xE4,0x04,0x61,0x24,0x6E,0xB7,0x1D,0xF2,
+0x50,0x15,0x60,0xB1,0x54,0x50,0xC0,0x11,0xC3,0xFE,0xBC,0xF9,0x51,0xBA,0x2F,0xFF,
+0x9D,0x9B,0xB6,0xFC,0x0E,0x11,0xCE,0x08,0xD8,0xB2,0xBD,0xBB,0xCD,0x51,0x4D,0x57,
+0xB0,0xB6,0x80,0xE7,0xEF,0x5C,0x62,0xE9,0xF0,0x6E,0x49,0x4F,0xB1,0x7A,0x1A,0x7C,
+0x04,0x02,0xDC,0x0F,0xB7,0xC6,0xA0,0xB1,0x4E,0xA8,0x31,0x37,0x32,0x1C,0xFF,0x1A,
+0x51,0x57,0x2C,0xAA,0x0F,0x30,0xEE,0x09,0xA5,0x0A,0x78,0x7E,0xB6,0x48,0x2F,0x4E,
+0x4D,0x4B,0x7E,0xE4,0x11,0x0D,0xCD,0x17,0x2D,0x02,0xF8,0xFE,0x59,0xCE,0x46,0xC8,
+0x52,0x54,0x7D,0xF8,0xDA,0x1D,0x16,0xDC,0x56,0x60,0xE1,0xE7,0xE6,0x58,0x6F,0x5E,
+0x72,0x74,0x79,0xDC,0x84,0xE0,0xB5,0x82,0xC2,0x6B,0x7E,0x78,0x37,0x3D,0xDB,0x3B,
+0xE6,0xE0,0x21,0x10,0x95,0x91,0xD5,0x93,0xBF,0xD3,0xBB,0xBD,0x82,0xA3,0xF0,0xA5,
+0x0B,0x0D,0x9F,0x43,0x0B,0x24,0xFE,0x0D,0x14,0xEA,0x29,0x2F,0x2C,0x10,0xED,0x16,
+0x86,0x80,0xA5,0xF4,0x30,0x08,0xE9,0x36,0x22,0x24,0xD1,0xD7,0x3E,0xC8,0x27,0xCE,
+0x83,0x85,0x95,0xC1,0xFD,0x7F,0x53,0xFB,0x5A,0xB8,0x35,0x33,0xAB,0xB9,0xC3,0xBF,
+0x8D,0x8B,0xF6,0xAC,0x24,0x4C,0xB9,0x22,0xE1,0x5A,0x6C,0x6A,0x13,0x1D,0xDF,0x1B,
+0x2B,0x2D,0x9B,0x67,0x8D,0xCB,0x97,0x8B,0x8F,0xC7,0x9F,0x99,0xEB,0x62,0x58,0x64,
+0x7A,0x7C,0x7B,0xD6,0xEB,0x48,0x72,0xED,0xBB,0x18,0x74,0x72,0x12,0xF3,0x30,0xF5,
+0xA4,0xA2,0xD0,0xA3,0xD6,0x03,0x04,0xD0,0xF3,0x90,0xB4,0xB2,0x55,0x1A,0x9E,0x1C,
+0x0E,0x08,0xAF,0x76,0xAE,0xBD,0xC2,0xA8,0x51,0x55,0xD3,0xD5,0x39,0xFA,0x12,0xFC,
+0xC4,0xC2,0x54,0x47,0x93,0xF6,0xB4,0x95,0x96,0xE0,0xA1,0xA7,0x9F,0x52,0x1C,0x54,
+0x45,0x43,0x7C,0xEE,0x81,0xD5,0x85,0x87,0x49,0x9D,0x03,0x05,0x29,0x31,0xC9,0x37,
+0xFE,0xF8,0x63,0x4A,0x92,0xD7,0x94,0x94,0x72,0x64,0xC1,0xC7,0x0C,0xFF,0x22,0xF9,
+0x3A,0x3C,0xFB,0x16,0x01,0x5D,0x8D,0x07,0x2F,0x13,0xEB,0xED,0x5E,0xFC,0x73,0xFA,
+0x6A,0x6C,0x3B,0x86,0x6B,0xC0,0x7A,0x6D,0x66,0x74,0xC5,0xC3,0x19,0x15,0xDD,0x13,
+0x53,0x55,0x5D,0xD9,0x26,0x3F,0xC8,0x20,0x2A,0x37,0xCA,0xCC,0xEC,0x50,0x6D,0x56,
+0x75,0x73,0x38,0x9A,0x32,0x7B,0x98,0x34,0xE8,0xA6,0x99,0x9F,0x7A,0xDC,0x77,0xDA,
+0x59,0x5F,0x2E,0xA0,0x5B,0xB4,0x3E,0x5D,0xCF,0x5C,0x44,0x42,0x45,0xD1,0x45,0xD7,
+0x5F,0x59,0x4F,0xC7,0x4A,0xC5,0x5E,0x4C,0x42,0x70,0xE5,0xE3,0xA9,0xAA,0xD2,0xAC,
+0x58,0x5E,0x0E,0x81,0x2E,0x35,0xCA,0x28,0x60,0xAE,0x19,0x1F,0x6B,0xF9,0x43,0xFF,
+0x2E,0x28,0xAB,0x52,0xE8,0x1A,0x23,0xEE,0x9E,0xF3,0xBA,0xBC,0x90,0x7B,0x3A,0x7D,
+0x42,0x44,0x3D,0xA8,0x9C,0xBA,0xF7,0x9A,0x1B,0xCC,0x00,0x06,0x06,0xF7,0x20,0xF1,
+0x85,0x83,0xF4,0xA6,0x3F,0x44,0xAA,0x39,0x25,0x11,0xE3,0xE5,0x02,0x38,0xEB,0x3E,
+0x61,0x67,0x68,0xDE,0x88,0xFE,0xA7,0x8E,0x8D,0xD6,0x8C,0x8A,0xD4,0x6F,0x6A,0x69,
+0xB6,0xB0,0xE1,0x80,0x8E,0x99,0xC6,0x88,0x36,0x34,0xD5,0xD3,0xE2,0x97,0xA4,0x91,
+0xC7,0xC1,0x05,0x15,0x96,0xC3,0x84,0x90,0xD3,0x5F,0x5B,0x5D,0x4F,0xD9,0x47,0xDF,
+0xEA,0xEC,0x33,0x0E,0xD0,0x64,0x65,0xD6,0xBE,0x3C,0x55,0x53,0xE9,0x71,0x49,0x77,
+0x3F,0x39,0xCB,0x23,0x00,0x7C,0xAD,0x06,0x53,0x44,0xC0,0xC6,0xAE,0x98,0xE7,0x9E,
+0x1D,0x1B,0xBE,0x74,0x90,0xA4,0xE5,0x96,0x71,0x9A,0x3C,0x3A,0x2B,0x22,0xD8,0x24,
+0xAE,0xA8,0xA3,0xDA,0xB8,0x8A,0xE3,0xBE,0x9D,0x0D,0x47,0x41,0x63,0xE2,0x50,0xE4,
+0xDB,0xDD,0x57,0x5B,0x91,0x85,0xC5,0x97,0x0A,0xF8,0x25,0x23,0xD0,0xA0,0xA1,0xA6,
+0x15,0x13,0xBC,0x7E,0x3E,0x65,0x8A,0x38,0x68,0xBD,0x02,0x04,0x58,0x20,0xA9,0x26,
+0xA0,0xA6,0xC0,0xB7,0x34,0x1C,0xF9,0x32,0x8B,0x0C,0x50,0x56,0xB8,0x8F,0xE6,0x89,
+0x62,0x64,0x39,0x8C,0x66,0xFF,0x48,0x60,0xC9,0x86,0x98,0x9E,0xD1,0x4E,0x4E,0x48,
+0xB2,0xB4,0xF1,0x94,0xDF,0x28,0x26,0xD9,0xB2,0xE4,0x81,0x87,0x26,0x18,0xEF,0x1E,
+0x2A,0x2C,0xBB,0x46,0xF6,0x27,0x00,0xF0,0xB9,0x09,0x67,0x61,0x3C,0xDB,0x36,0xDD,
+0x40,0x46,0x4C,0xDB,0x25,0x6D,0x99,0x23,0x01,0x15,0xC3,0xC5,0x2E,0x03,0xFC,0x05,
+0x0C,0x0A,0xDE,0x05,0x5A,0x95,0x1E,0x5C,0x17,0x14,0xD4,0xD2,0x3D,0x35,0xD9,0x33,
+0xCD,0xCB,0x76,0x6C,0x75,0xFD,0x59,0x73,0x1F,0x07,0xCF,0xC9,0x7D,0xEE,0x42,0xE8,
+0x68,0x6E,0x4A,0xF5,0x4D,0x83,0x1F,0x4B,0x1E,0xE8,0x21,0x27,0xBC,0x40,0x2D,0x46,
+0x5A,0x5C,0x7F,0xF2,0xCA,0x4D,0x56,0xCC,0x9C,0xE2,0xA9,0xAF,0xF9,0xBA,0x92,0xBC,
+0x65,0x63,0x78,0xCA,0x29,0x73,0x8B,0x2F,0x5F,0x9C,0x14,0x12,0x40,0xF0,0x61,0xF6,
+0xC6,0xC0,0x25,0x34,0xEA,0x69,0x52,0xEC,0x50,0xBA,0x3D,0x3B,0x57,0x09,0x8F,0x0F,
+0xB8,0xBE,0x82,0xED,0x4C,0xA2,0x3F,0x4A,0xC4,0xB1,0xA2,0xA4,0xB3,0x69,0x0B,0x6F,
+0x0A,0x0C,0xBF,0x62,0x07,0x3A,0xEC,0x01,0x20,0x35,0xC2,0xC4,0xA1,0xB1,0xC1,0xB7,
+0x79,0x7F,0x2A,0x84,0x65,0xAD,0x19,0x63,0xF1,0x81,0xA7,0xA1,0x33,0xF2,0x10,0xF4,
+0x41,0x47,0x6C,0xFA,0x82,0x87,0xD4,0x84,0x3B,0x03,0xEF,0xE9,0xC8,0x70,0x69,0x76,
+0xC9,0xCF,0x66,0x78,0x21,0x79,0x89,0x27,0xD2,0xB0,0xB5,0xB3,0xDF,0x89,0x87,0x8F,
+0xB9,0xBF,0xA2,0xCC,0x16,0x4B,0x8C,0x10,0x07,0xCF,0x1F,0x19,0x6E,0xD8,0x67,0xDE,
+0x43,0x45,0x1D,0x89,0x94,0xB0,0xF5,0x92,0x8E,0x28,0x71,0x77,0x77,0xE6,0x40,0xE0,
+0xAA,0xAC,0xB3,0xCE,0x9D,0x9B,0xD7,0x9B,0x92,0x2B,0x6E,0x68,0xEA,0x8C,0xB7,0x8A,
+0x30,0x36,0x88,0x6F,0xDE,0x09,0x06,0xD8,0xDD,0x96,0x9C,0x9A,0x98,0x60,0x29,0x66,
+0x80,0x86,0xC4,0x93,0x79,0xE3,0x4B,0x7F,0x31,0x01,0xE7,0xE1,0x75,0xF5,0x51,0xF3,
+0x7B,0x7D,0x5B,0xF7,0x14,0x38,0xFD,0x12,0x6A,0xAC,0x11,0x17,0xE5,0xA5,0x91,0xA3,
+0x6B,0x6D,0x1B,0xA7,0xD4,0x70,0x75,0xD2,0x18,0x32,0xFD,0xFB,0xAF,0x76,0x08,0x70,
+0x2C,0x2A,0xDA,0x21,0x2B,0x00,0xFA,0x2D,0x41,0x8E,0x18,0x1E,0xEF,0xAD,0x93,0xAB,
+0xCB,0xCD,0x17,0x0B,0xE4,0x04,0x31,0xE2,0xFB,0x83,0xAF,0xA9,0xB5,0xB5,0xD1,0xB3,
+0xF7,0xF1,0x41,0x61,0x49,0x97,0x0F,0x4F,0x54,0x71,0xF2,0xF4,0x88,0xAB,0xF2,0xAD,
+0xC4,0x99,0x8B,0x96,0x50,0x51,0x85,0x03,0x05,0x01,0x57,0x80,0xC5,0x08,0x49,0x97,
+0x48,0x83,0x1D,0x1A,0x6F,0xEB,0x00,0xB9,0x71,0xA1,0x23,0x54,0xA9,0x9E,0xB3,0xFB,
+0x15,0x71,0xB2,0x47,0xD3,0x0E,0x59,0x5C,0xA7,0xDE,0xF5,0xFD,0xB4,0xEC,0xDC,0xE6,
+0x46,0xE0,0x70,0x14,0x0D,0xF2,0x7B,0xA0,0xC3,0x2E,0x91,0x69,0xB3,0xAD,0x9A,0xE1,
+0x28,0x07,0xF9,0x7A,0x97,0x3E,0x2D,0x6C,0x63,0x82,0x31,0x65,0x5D,0x42,0x9B,0x0F,
+0x66,0xE4,0x54,0x34,0xFC,0xB0,0xC8,0xE2,0x7B,0xD8,0x29,0x27,0x2C,0xA6,0x0E,0x7E,
+0x87,0x48,0x19,0xD5,0xB2,0x08,0x3E,0x5A,0xD2,0x5F,0x80,0x09,0x6E,0x57,0xBD,0x3C,
+0xD0,0xC9,0xCF,0x82,0x75,0x67,0x96,0x35,0x65,0xE5,0x37,0x04,0x8A,0xCB,0xC5,0xD8,
+0x40,0x81,0x17,0x12,0xC7,0x2A,0x69,0x78,0x7F,0xCC,0x2D,0x37,0x15,0xC0,0x51,0x47,
+0x43,0xD0,0x45,0x11,0xB0,0x00,0x34,0x52,0xEC,0x46,0xBE,0x2E,0xD1,0x58,0x0D,0x83,
+0xED,0xBF,0x84,0xBF,0x43,0x4A,0x8D,0x18,0x7E,0xED,0x2C,0x17,0x2F,0xF7,0x5C,0x7D,
+0x8E,0x6A,0x32,0xDC,0x3E,0xE8,0x52,0xBA,0x6C,0xCE,0x3E,0x26,0xAE,0xDF,0xF5,0xFC,
+0x63,0xD4,0x61,0x31,0x05,0x72,0xF3,0x20,0xDF,0x60,0x8D,0x3B,0x9E,0x9B,0x81,0xCC,
+0x6E,0xE6,0x5E,0x3C,0xFF,0xAF,0xD4,0xFD,0xB6,0xAF,0xE4,0x9D,0xB2,0x8D,0xBB,0xE0,
+0xAA,0x7E,0x02,0xF8,0xD7,0x2E,0x7D,0x7C,0x86,0xDB,0xD4,0xD9,0x81,0x98,0x9D,0xD3,
+0xEF,0xCE,0xF7,0xBD,0x94,0x21,0x31,0x73,0xCB,0x24,0x99,0x6B,0xB8,0xFE,0xC2,0xEA,
+0x06,0x60,0xB0,0x54,0x1B,0xDE,0x41,0x8C,0x10,0x64,0x42,0xF0,0x68,0x36,0xDA,0x3A,
+0xA2,0x7C,0x08,0xF0,0xF9,0x87,0xFA,0xD5,0xC9,0x57,0x9B,0x1A,0x66,0x55,0xB7,0x34,
+0xAF,0x4E,0x37,0xFD,0x49,0xC2,0x0F,0x90,0xE6,0x3F,0xB4,0x5D,0xE0,0x3C,0x58,0xB2,
+0x77,0x84,0x25,0x25,0x87,0x3A,0x39,0x68,0xDD,0x13,0x8F,0x4A,0x6D,0x06,0xEF,0x3F,
+0xA5,0x3D,0x4E,0xF7,0x33,0x5F,0xE8,0x0D,0x3B,0x18,0x69,0xA7,0x4F,0x73,0xB8,0x1D,
+0x45,0xB1,0x22,0x17,0xF6,0x38,0x4A,0x6A,0x43,0xA6,0x11,0x61,0xE5,0x0C,0x6D,0xB7,
+0xDD,0xFB,0xF0,0x8F,0x64,0x74,0x94,0x26,0x60,0xD0,0x32,0x34,0xC0,0x38,0x7C,0x92,
+0x4C,0x93,0x09,0x1E,0xBB,0x9F,0xA0,0xCD,0x06,0x53,0x54,0xD1,0x91,0xD8,0xCD,0xC3,
+0xA3,0x5C,0x29,0xF1,0x0B,0xDA,0x55,0x88,0x5A,0xDD,0x08,0x03,0xEF,0x7F,0x14,0xBD,
+0xF7,0x8C,0xAD,0xA5,0xA9,0x93,0xBE,0xC1,0xE2,0x2B,0xB0,0x4D,0xBA,0x8F,0xB1,0xE8,
+0xEE,0xEE,0xD6,0xBC,0x11,0x56,0xC3,0x04,0xE3,0x0A,0xB1,0x6D,0x76,0x15,0xE7,0x24,
+0xC5,0xB9,0xAA,0x97,0xCD,0xA2,0xEB,0xF0,0x02,0x47,0x50,0xC1,0x5B,0x23,0xFC,0x09,
+0x82,0x78,0x2C,0xD0,0xC8,0x95,0xD9,0xC7,0x69,0xFB,0x3B,0x16,0x99,0xDA,0xC7,0xCB,
+0x1C,0x53,0x99,0x4E,0x70,0x50,0xA4,0x02,0x78,0x8A,0x2A,0x76,0x0D,0x82,0x0B,0x5F,
+0x71,0xE5,0x42,0x23,0xA1,0x13,0x36,0x41,0xFC,0x16,0xAE,0x6E,0xA6,0xDD,0xFF,0xF4,
+0xE7,0xCC,0xFD,0xB5,0xC3,0x0A,0x4D,0x58,0x37,0x06,0x65,0xB5,0xB9,0xDE,0xE3,0xEB,
+0x4A,0xF2,0x6E,0x18,0xA2,0x0C,0x2A,0x5E,0x94,0xF8,0xC6,0xE8,0x6B,0x67,0x88,0x39,
+0x1A,0x32,0xFE,0x48,0x0F,0xFA,0x71,0xA8,0xF9,0x23,0xAB,0x5E,0x90,0xF8,0xEC,0xC2,
+0x33,0x14,0xF1,0x61,0x88,0x85,0x89,0xD7,0x70,0x80,0x22,0x74,0x41,0x10,0xD5,0x13,
+0xDF,0x8A,0x83,0x8D,0x35,0x77,0xC6,0x25,0x33,0x12,0x61,0xA5,0xDB,0x2B,0x74,0x89,
+0x0A,0x72,0xAE,0x58,0x20,0x44,0xE0,0x16,0x09,0x1F,0x5B,0x92,0x20,0xB4,0x10,0x72,
+0x14,0x51,0x93,0x46,0xD2,0x19,0x4F,0x4B,0xA4,0x8C,0xF6,0xAC,0x1C,0xE2,0x7A,0x4E,
+0xC9,0xAB,0xB4,0x9B,0x91,0x16,0x03,0x44,0x39,0x6B,0x6B,0xD6,0x80,0xB8,0xBC,0xD2,
+0x12,0x30,0xF4,0x40,0x2D,0xF3,0x5A,0xA1,0xC6,0x1B,0x94,0x59,0xC7,0x79,0x3A,0x95,
+0x0E,0x62,0xBA,0x5C,0x96,0x29,0x3B,0x7B,0xEA,0x21,0xB8,0x4F,0xE1,0x1C,0x79,0xB3,
+0x4D,0xB3,0x28,0x1F,0x22,0x4C,0xEA,0x1E,0x88,0xB6,0xDA,0xBA,0x92,0x89,0x9F,0xC0,
+0xB6,0x2C,0x4C,0xE4,0x19,0xD6,0x4B,0x84,0x07,0x72,0x55,0xF1,0x2D,0x86,0x2F,0x7F,
+0xD6,0xA8,0xA8,0x84,0x12,0x49,0xDF,0x1B,0xA1,0xB9,0xF3,0x9C,0x53,0x21,0xF6,0x01,
+0x67,0xC4,0x75,0x35,0x6C,0xF4,0x1C,0xA6,0xFB,0x50,0xA9,0x2F,0x52,0x01,0xD7,0x00,
+0x59,0xE3,0x6C,0x0B,0x8B,0x9A,0x95,0xC8,0x79,0xAB,0x2B,0x56,0xA8,0xBE,0x92,0xFA,
+0xCF,0xCA,0xD3,0x9D,0xA0,0x04,0x20,0x56,0x6F,0x9C,0x3D,0x77,0xAA,0xCF,0xE1,0xF8,
+0x36,0x24,0xC4,0x64,0x13,0x5E,0xC9,0x0C,0xCC,0x62,0x9E,0x2A,0x22,0xC5,0x63,0x70,
+0xBC,0x5F,0x35,0xEE,0xB6,0x28,0x1A,0x7A,0xC8,0x76,0x9A,0x3A,0xAB,0xEF,0xC0,0xF9,
+0x8A,0x7A,0x26,0xD8,0xB7,0x3F,0x0C,0x6D,0xB7,0x8E,0xE5,0xBD,0xE7,0x7D,0x1E,0xB5,
+0xA7,0x4C,0x3D,0xF5,0x47,0x6A,0xA9,0x38,0x32,0x33,0x60,0x85,0x59,0x52,0x8F,0x0B,
+0x64,0x95,0x27,0x36,0xAA,0x8C,0xA2,0xDE,0x1B,0x3C,0x49,0xA3,0xC1,0x18,0x5D,0x93,
+0x05,0x31,0xE2,0x57,0x41,0x42,0x87,0x10,0x27,0x56,0x75,0xF5,0xB1,0xDC,0xE9,0xE3,
+0x4F,0xC2,0x5B,0x1D,0x3F,0xFF,0x44,0xAD,0xC4,0x68,0x96,0x28,0x8E,0xDB,0xD1,0xDC,
+0x51,0xE1,0x66,0x03,0xA4,0x24,0x04,0x76,0x98,0xE6,0xCA,0xFA,0x26,0xD5,0x77,0x74,
+0xFF,0x8E,0xA7,0xAD,0x4B,0xCA,0x05,0x98,0xA0,0x98,0xF2,0xBC,0x83,0xE9,0xEE,0xD1,
+0x9D,0x7B,0x30,0xCF,0x39,0xD7,0x6A,0x85,0x7D,0xBF,0x2F,0x46,0xF6,0x1D,0x6F,0xA4,
+0x5D,0xF3,0x78,0x0F,0xAE,0xAC,0x86,0xFE,0x55,0x91,0x07,0x40,0x45,0x00,0xC1,0x17,
+0xCE,0xEA,0xF2,0x9C,0x9F,0xBE,0xA5,0xEC,0x3D,0x7F,0x6F,0xC6,0x01,0x90,0x15,0x53,
+0x27,0x44,0xB5,0x75,0xE7,0x2B,0x48,0x79,0xED,0x67,0xBF,0x0E,0xD4,0x68,0x38,0x86,
+0x30,0x45,0xA3,0x62,0xAF,0xBB,0x90,0xE9,0xD9,0x07,0x8B,0x5A,0x4B,0x63,0xAC,0x19,
+0xF1,0xED,0xCA,0xA3,0x25,0x73,0xD2,0x21,0x8B,0xE4,0xD9,0xEB,0x89,0x9A,0x97,0xDB,
+0x1F,0x02,0xCB,0x4D,0x5B,0xCE,0x11,0x9C,0x7C,0x9E,0x2E,0x66,0x30,0xF4,0x40,0x62,
+0x9F,0x0A,0x43,0xCD,0x1E,0xE9,0x73,0xBB,0xD3,0x7E,0x81,0x29,0xFE,0x1F,0x65,0xAC,
+0x1E,0x87,0x49,0xED,0x1D,0xB5,0x11,0xDC,0xC4,0x60,0x38,0x88,0xF2,0x9B,0x56,0x1D,
+0xEE,0x22,0x1C,0xB8,0xEB,0x0D,0xA9,0x92,0x8D,0x29,0x9A,0x63,0xA6,0x1F,0x02,0xCD,
+0xB2,0xCA,0xA8,0x0C,0x71,0x55,0xF1,0x50,0xF5,0x51,0x5C,0xDD,0xC0,0x9C,0x64,0x28,
+0x84,0xD1,0x85,0x21,0x3C,0xB4,0x10,0xFC,0x01,0xA5,0x80,0xF5,0xEB,0xE0,0x4F,0x7F,
+0x13,0x3D,0xFE,0x5A,0xBC,0x2F,0x8B,0xE7,0x07,0xA3,0xE1,0x92,0x19,0xAF,0xBD,0xC2,
+0x4B,0xF1,0x6A,0xCE,0xCD,0x3E,0x9A,0x87,0xC2,0x66,0x59,0xEF,0x87,0x1A,0x23,0xE9,
+0x4F,0xD5,0x4A,0xEE,0x30,0x60,0xC4,0x24,0x5D,0xF9,0x52,0x7B,0xE2,0xCB,0x46,0x5D,
+0x4C,0xC9,0x55,0xF1,0x20,0xAB,0x0F,0xFF,0x44,0xE0,0x30,0x00,0x74,0x74,0xD0,0x74,
+0xC4,0x81,0x95,0x31,0x61,0x9E,0x3A,0x8B,0xD0,0x74,0x68,0xCC,0xA7,0x3E,0x03,0xED,
+0xA7,0xEC,0x9B,0x3F,0x52,0x47,0xE3,0x61,0x89,0x2D,0x8A,0x77,0x03,0x86,0xA7,0xF1,
+0x97,0xD9,0x9E,0x3A,0x25,0x8A,0x2E,0xDB,0x6D,0xC9,0x16,0x0F,0x72,0x13,0xD6,0x15,
+0xAD,0x6E,0x13,0xB7,0x09,0xB1,0x15,0xCC,0x95,0x31,0xD8,0x39,0xAA,0x01,0x0E,0xDF,
+0x9D,0x5B,0x16,0xB2,0x90,0x14,0xB0,0xF0,0x6F,0xCB,0x67,0x7C,0x40,0x14,0xE4,0x20,
+0xE2,0x8E,0xBC,0x18,0x2E,0x6C,0xC8,0x36,0x08,0xAC,0xA2,0xDE,0xA0,0x78,0x04,0xAC,
+0x49,0xFB,0x62,0xC6,0x65,0x51,0xF5,0x40,0xC8,0x6C,0x2A,0x96,0x49,0x3F,0xED,0x02,
+0xA9,0x4A,0x33,0x97,0xE6,0x37,0x93,0xA5,0x23,0x87,0xF5,0xA2,0xD8,0xC6,0x7C,0x6A,
+0xC9,0x3B,0x22,0x86,0x70,0xBB,0x1F,0xBF,0x57,0xF3,0x21,0x02,0x46,0x73,0xE2,0x41,
+0x51,0x67,0xE6,0x42,0xFA,0x28,0x8C,0xA6,0x7D,0xD9,0x56,0x5F,0x45,0x21,0xE1,0x10,
+0x4E,0xC3,0x5D,0xF9,0xF8,0x3B,0x9F,0xB7,0xBF,0x1B,0xAF,0x64,0x8B,0x04,0x2F,0xFB,
+0x66,0x6A,0xDC,0x78,0xDB,0x29,0x8D,0x86,0x1D,0xB9,0xD2,0xBB,0xE8,0xB2,0x4C,0x2E,
+0x1C,0x8D,0x41,0xE5,0x99,0xE1,0x45,0x0C,0xF8,0x5C,0x6E,0xE2,0x6B,0x68,0xCF,0x77,
+0x0A,0xB7,0x6D,0xC9,0x56,0x88,0x2C,0xAA,0x25,0x81,0x94,0xC5,0x66,0x57,0xC2,0x45,
+0x6F,0xF4,0x4B,0xEF,0x12,0x9C,0x38,0xFA,0x76,0xD2,0x05,0x07,0xEA,0xC1,0x4E,0x5F,
+0x09,0xAB,0x72,0xD6,0xED,0xD1,0x75,0x48,0x79,0xDD,0x46,0x4B,0xAF,0x34,0x0B,0xEF,
+0x0F,0x85,0x5A,0xFE,0x97,0x26,0x82,0xC5,0xBC,0x18,0xFE,0x36,0x4D,0x2B,0xE9,0x12,
+0x99,0x7F,0x36,0x92,0x37,0x52,0xF6,0x11,0x06,0xA2,0xC1,0xB3,0xC1,0xBD,0x65,0x08,
+0x3C,0xAC,0x40,0xE4,0x18,0x94,0x30,0xF8,0xA5,0x01,0x9C,0x4D,0x43,0x46,0xE7,0x71,
+0x7D,0xEA,0x47,0xE3,0xE8,0xF0,0x54,0x6C,0x59,0xFD,0x42,0x6F,0x10,0x84,0xB4,0xE0,
+0x37,0x38,0xDF,0x7B,0xEE,0x2C,0x88,0xB6,0xE7,0x43,0x6D,0xFE,0x63,0x62,0xC7,0x75,
+0xD3,0xAD,0xAE,0x0A,0xB4,0x34,0x90,0xF4,0x69,0xCD,0x06,0x1B,0x2D,0xCF,0x89,0x96,
+0x5A,0xF3,0x79,0xDD,0xD3,0x32,0x96,0x95,0x30,0x94,0xE4,0xA0,0xD5,0xF9,0x71,0x58,
+0xC6,0x8B,0x9D,0x39,0x69,0x85,0x21,0x98,0x5F,0xFB,0x23,0x08,0x82,0x2F,0x26,0xD9,
+0x91,0xF7,0xB6,0x12,0xA7,0x02,0xA6,0xD1,0xFB,0x5F,0x3F,0xB0,0x58,0x4E,0xFC,0x62,
+0x8C,0x59,0x05,0xA1,0x89,0x2A,0x8E,0xD7,0x80,0x24,0xA8,0x5C,0x98,0x06,0x3C,0xEA,
+0xF9,0x0E,0x27,0x83,0x51,0xBA,0x1E,0x9F,0x7C,0xD8,0x76,0x7E,0x22,0x83,0x86,0xD5,
+0x01,0x23,0xF2,0x56,0x49,0x6A,0xCE,0x57,0xE9,0x4D,0x0E,0x93,0xCB,0xC4,0x6F,0x7B,
+0x0B,0xA1,0x7A,0xDE,0xD2,0xDC,0x78,0x7A,0x24,0x80,0xB4,0xE4,0xF4,0xFC,0x50,0x7C,
+0xF2,0x9A,0xB8,0x1C,0x31,0x8E,0x2A,0xCB,0xEC,0x48,0x3E,0xA6,0x35,0x95,0x91,0xD4,
+0x8E,0x53,0x0D,0xA9,0x48,0x84,0x20,0xB8,0xBE,0x1A,0x8F,0x45,0x9A,0x75,0x3E,0x9B,
+0x65,0x76,0xC3,0x67,0xA8,0x2B,0x8F,0xF7,0x99,0x3D,0xCA,0x27,0x1A,0xFD,0xBE,0x93,
+0xEC,0x28,0x14,0xB0,0xB8,0xE0,0x44,0x2C,0x68,0xCC,0x26,0x3A,0x8F,0x10,0x2B,0xEB,
+0x7E,0xF6,0x58,0xFC,0x40,0x9F,0x3B,0xAB,0x7F,0xDB,0x27,0x2C,0xB9,0x03,0x1D,0xCE,
+0x89,0x6B,0x32,0x96,0x0A,0x4C,0xE8,0x32,0xDB,0x7F,0x3B,0x94,0x61,0x11,0xC5,0x04,
+0xC3,0xB9,0xAA,0x0E,0x05,0x65,0xC1,0x14,0x3D,0x99,0xD6,0x9F,0xA2,0x0B,0x06,0xDD,
+0x4A,0xE7,0x7D,0xD9,0x5E,0x93,0x37,0xB9,0xA8,0x0C,0xAE,0x72,0x4A,0x6D,0xEE,0x53,
+0x4D,0xDF,0x42,0xE6,0x60,0x70,0xD4,0x64,0x15,0xB1,0xD0,0xB1,0x00,0xD4,0xA4,0xA0,
+0x78,0xD8,0x70,0xD4,0xAE,0xF7,0x53,0x2D,0x9D,0x39,0xDA,0x33,0xFA,0x91,0x5E,0x1F,
+0x44,0x41,0xD5,0x71,0xD0,0xCF,0x6B,0x6B,0x73,0xD7,0x35,0x32,0x54,0x50,0xF0,0x70,
+0x18,0xA9,0x61,0xC5,0x80,0xDF,0x7B,0x2B,0x1B,0xBF,0xB3,0xDC,0x48,0x1E,0xEC,0x22,
+0x8D,0x4F,0x12,0xB6,0x17,0xBD,0x19,0xDE,0x7E,0xDA,0x07,0x0D,0x0B,0x8C,0xAF,0xF3,
+0xB0,0xC0,0xA0,0x04,0x8F,0xF6,0x52,0x0D,0x1E,0xBA,0x83,0xE9,0xD3,0x9E,0x77,0x39,
+0x17,0x19,0xDE,0x7A,0x44,0x50,0xF4,0x60,0x81,0x25,0x88,0x7D,0xB3,0x7A,0x17,0xBD,
+0x2F,0xA4,0x5B,0xFF,0x9D,0x2E,0x8A,0xC7,0xCD,0x69,0x1A,0xA3,0x5C,0x5A,0xF8,0x72,
+0x90,0xE1,0xA1,0x05,0x66,0xAC,0x08,0xBE,0xA3,0x07,0xFD,0x2A,0x62,0x43,0xC6,0x55,
+0x54,0x55,0xD1,0x75,0x54,0x9B,0x3F,0xBB,0x09,0xAD,0x82,0xFF,0x33,0xF2,0x97,0xB5,
+0x5E,0xD7,0x59,0xFD,0xAA,0x38,0x9C,0xE6,0x53,0xF7,0x31,0x16,0xCA,0xE5,0x6E,0x5B,
+0x69,0xDA,0x63,0xC7,0x15,0xAE,0x0A,0xCF,0xAD,0x09,0x9E,0x47,0x1F,0xC8,0xBB,0xA3,
+0xF6,0xBE,0x98,0x3C,0xCE,0xC3,0x67,0x79,0x5B,0xFF,0x33,0x1C,0x4F,0x58,0xEB,0x63,
+0xBA,0x42,0x28,0x8C,0x24,0x64,0xC0,0x34,0x20,0x84,0xA4,0xF0,0xDA,0xB5,0x7E,0x1B,
+0x81,0xE3,0xB2,0x16,0xB6,0x27,0x83,0xE5,0xD2,0x76,0x19,0xBF,0x36,0xC7,0x92,0x85,
+0x73,0x4C,0xEF,0x4B,0xBA,0xF3,0x57,0x3D,0x4E,0xEA,0x43,0x79,0x11,0xA5,0xB5,0xC0,
+0x25,0x26,0xD3,0x77,0x29,0x5E,0xFA,0x03,0x13,0xB7,0xB1,0xD6,0x0F,0x98,0xAB,0xE3,
+0xE8,0x0C,0x34,0x90,0x2D,0x91,0x35,0xC8,0xA4,0x00,0xBC,0x6C,0x17,0xC2,0xB3,0xA1,
+0x29,0x8A,0x73,0xD7,0x5D,0x6E,0xCA,0x47,0x41,0xE5,0x00,0x35,0xCC,0x82,0x68,0x3A,
+0x02,0xDF,0x78,0xD0,0xE2,0xCE,0x66,0x21,0xE6,0x4E,0x27,0xCC,0x93,0x4D,0x3B,0xD3,
+0x29,0x6A,0xE6,0x4E,0x9F,0x0B,0xA3,0x99,0xF7,0x5F,0x47,0xBD,0x07,0x81,0xAF,0x8B,
+0x9D,0xBB,0x83,0x2B,0x0B,0x94,0x3C,0x92,0xA9,0x01,0xE4,0x40,0x27,0xA5,0x8F,0x8F,
+0xB4,0x04,0x15,0xBD,0x70,0x8D,0x25,0xF0,0x62,0xCA,0x3F,0x50,0x38,0xB9,0x90,0x8C,
+0xDD,0xEB,0x93,0x3B,0xF8,0x0D,0xA5,0xF8,0x7C,0xD4,0x1C,0x6D,0x24,0xF7,0x8C,0xDE,
+0x0D,0x6F,0xC7,0x6F,0x13,0x44,0xEC,0x5A,0xC4,0x6C,0x52,0x9B,0x71,0x52,0xD9,0x2E,
+0xE8,0xEC,0xA1,0x09,0xAD,0x3C,0x94,0x9C,0x9C,0x34,0x90,0x01,0xC5,0xBA,0x6D,0x72,
+0xBF,0x90,0x8A,0x22,0x85,0xC8,0x60,0x40,0x7D,0xD5,0x3C,0x4C,0xE8,0xA1,0x40,0x44,
+0xE0,0x64,0x21,0x89,0x0C,0xA6,0x0E,0xA7,0xDD,0x75,0x30,0xE0,0x7B,0x2B,0xD3,0x5D,
+0x6C,0x08,0xC1,0x69,0xAE,0xC1,0x69,0x62,0xA5,0x0D,0xF6,0x5E,0xD1,0xFE,0x79,0x22,
+0xC2,0x4F,0x28,0x80,0xE6,0x01,0xA9,0xEA,0x98,0x30,0x80,0x15,0x0F,0x8B,0xA7,0x89,
+0xAA,0xB6,0xB9,0x11,0xD2,0xEA,0x42,0x35,0xFE,0x56,0x65,0x96,0x5E,0x3A,0xF6,0x69,
+0x2D,0x4E,0xC6,0x6E,0xBC,0x19,0xB1,0xA8,0x57,0xFF,0x4B,0x11,0xF8,0xF1,0x50,0x04,
+0x31,0xF6,0x62,0xCA,0x07,0x40,0xE8,0x4A,0x8E,0x26,0xA1,0x22,0xF6,0x9C,0x5E,0x67,
+0xD5,0x63,0x13,0xBB,0x7F,0xA4,0x0C,0xD6,0x43,0xEB,0x1B,0x55,0xF3,0xA9,0x5B,0x57,
+0x1F,0x71,0xCB,0x63,0x49,0x5C,0xF4,0x18,0x78,0xD0,0x0C,0x79,0x7E,0x1E,0xD6,0x6D,
+0xB7,0x18,0x0A,0xA2,0x92,0x31,0x99,0xAE,0x28,0x80,0xCC,0xE9,0x2C,0xFD,0x84,0xDC,
+0x85,0x27,0x07,0xAF,0xB5,0xEC,0x44,0x54,0x41,0xE9,0x6A,0x26,0x00,0xC7,0xA8,0xCA,
+0x9F,0xB1,0x8B,0x23,0x77,0xBF,0x17,0xC5,0x55,0xFD,0x3A,0x62,0x26,0x84,0x8E,0xAF,
+0x2F,0x44,0xCE,0x66,0x3B,0xB0,0x18,0x86,0x18,0xB0,0x88,0x9D,0x1F,0xDB,0xB7,0xC9,
+0x81,0x03,0x27,0x8F,0x72,0x9E,0x36,0xE1,0x72,0xDA,0x7F,0x00,0x4F,0x4B,0xE7,0x09,
+0xD0,0x51,0x24,0x8C,0x2F,0xB4,0x1C,0x96,0xE1,0x49,0x66,0x8A,0x8B,0x17,0x23,0x91,
+0x3B,0x74,0xEA,0x42,0x14,0x76,0xDE,0x6F,0xF2,0x5A,0x77,0x88,0x30,0xB3,0x98,0x8E,
+0xEE,0xC2,0x89,0x21,0xCB,0xD4,0x7C,0x12,0xE0,0x48,0x46,0xAB,0xB1,0x1A,0x19,0xA6,
+0xB5,0x12,0x02,0xAA,0x8E,0x2E,0x86,0xAD,0xE5,0x4D,0x76,0x9E,0xB2,0x48,0x1A,0xF7,
+0x56,0xBF,0x4C,0xE4,0x6B,0xA0,0x08,0xC6,0xFD,0x55,0x34,0xC4,0xC3,0xDD,0x6B,0x13,
+0x98,0x89,0xB4,0x1C,0xD0,0xF9,0x51,0x24,0xFB,0x53,0x55,0xA3,0x14,0x83,0xBC,0x9A,
+0x19,0x5F,0xE3,0x4B,0x78,0x96,0x3E,0xE3,0x4C,0xE4,0x58,0x19,0xF0,0xFB,0x58,0x06,
+0xD2,0x5B,0x2C,0x84,0x46,0x75,0xDD,0x3E,0xEF,0x47,0x05,0xE7,0x37,0xF5,0x9F,0xCF,
+0xC8,0xCD,0xA0,0x08,0xC3,0xCF,0x67,0x01,0x9B,0x33,0xD1,0x47,0x5B,0x0F,0xF3,0x59,
+0xB1,0x36,0x22,0x8A,0x3D,0x6C,0xC4,0x5C,0x5D,0xF5,0x38,0x68,0x2D,0xDC,0x85,0xFC,
+0x20,0xF4,0x71,0xD9,0x1F,0x90,0x38,0x82,0x39,0x91,0xAC,0x98,0x2A,0x9A,0x82,0xBD,
+0xBC,0x8C,0x95,0x3D,0x94,0xED,0x45,0x74,0x15,0xBD,0xBA,0xA2,0x17,0xD1,0xBF,0xCB,
+0x14,0xE5,0x54,0xFC,0xD6,0x25,0x8D,0xFE,0x47,0xEF,0x0B,0x41,0xD5,0xEA,0x7D,0x32,
+0x5B,0x05,0xFB,0x53,0x35,0x77,0xDF,0x4F,0x4D,0xE5,0x78,0x38,0x60,0x23,0xC8,0x4E,
+0x53,0x8D,0x7B,0xD3,0x57,0x50,0xF8,0x0A,0xE2,0x4A,0x37,0xD8,0xAE,0x06,0x06,0xA5,
+0xA2,0x3E,0x39,0x91,0xC0,0x32,0x9A,0xFF,0xCB,0x63,0x11,0xD7,0xDB,0x87,0x73,0x51,
+0x2A,0x76,0xF9,0x51,0x2C,0x49,0xE1,0x68,0xE3,0x4B,0x17,0xF9,0x68,0x29,0xC0,0x4C,
+0x15,0xF3,0x43,0xEB,0x0E,0xB5,0x1D,0xB6,0x73,0xDB,0x5F,0x21,0x4A,0x7E,0xE2,0x39,
+0xBB,0xB4,0xAA,0x02,0xE3,0x20,0x88,0xCE,0xA3,0x0B,0x97,0x39,0x9F,0x53,0x37,0xC1,
+0x93,0x1D,0x2B,0x83,0x02,0x61,0xC9,0x6E,0x5A,0xF2,0x79,0x2E,0x10,0x97,0xB8,0x8A,
+0x60,0xA4,0x61,0xC9,0xC1,0xDC,0x74,0x10,0xB9,0x11,0xA4,0x10,0x2F,0xAF,0x87,0x8D,
+0xDF,0xE1,0x9B,0x33,0x43,0x54,0xFC,0x1A,0x3E,0x96,0xED,0xDE,0x1D,0xA8,0xB5,0xB8,
+0xB0,0x20,0x35,0x9D,0x42,0xBA,0x12,0xF5,0x06,0xAE,0xAB,0xA0,0xB8,0x31,0x10,0x84,
+0x2B,0x60,0xEE,0x46,0x4A,0xA1,0x09,0xE6,0x29,0x81,0xEC,0xC8,0x79,0x58,0xD1,0x2C,
+0x0E,0x73,0xD8,0x70,0x5C,0xB6,0x1E,0xE7,0x56,0xFE,0x6B,0x30,0x35,0x86,0x9D,0xBE,
+0xC4,0x61,0x00,0xA8,0xE4,0x12,0xBA,0xFB,0x85,0x2D,0xF2,0x7A,0x5F,0x1B,0xF7,0x49,
+0x1D,0x7B,0xC3,0x6B,0xEF,0xF4,0x5C,0x16,0xAC,0x04,0xD4,0x75,0xC7,0xC9,0x6F,0x03,
+0xB2,0x2A,0x3D,0x95,0xD3,0x04,0xAC,0xDA,0xE7,0x4F,0x07,0xED,0x36,0xD4,0x9E,0xEF,
+0x95,0x33,0x03,0xAB,0x5A,0x6A,0xC2,0x3D,0x65,0xCD,0x7E,0x16,0xCC,0x91,0x64,0x50,
+0x75,0x82,0x52,0xFA,0x8F,0xC0,0x68,0x42,0x52,0xFA,0x7B,0x24,0xBC,0x25,0x14,0x94,
+0x9B,0x95,0xAB,0x03,0x66,0x9A,0x32,0xF1,0xF1,0x59,0x26,0xDA,0x34,0xA7,0x9C,0x9E,
+0xE2,0x6E,0x29,0x81,0xAC,0xD2,0x7A,0x73,0x16,0xBE,0xEB,0xF0,0x0C,0xD9,0xA4,0xD8,
+0x33,0xFC,0x6A,0xC2,0x7D,0xB7,0x1F,0xC7,0x74,0xDC,0x1E,0x67,0x7F,0x3F,0xD7,0x4D,
+0xF9,0xEE,0xB2,0x1A,0x99,0xD7,0x7F,0x43,0x3F,0x97,0xCD,0xFF,0xCD,0xB0,0x65,0x70,
+0x7D,0x0A,0xD2,0x7A,0x0D,0x48,0xE0,0x48,0x99,0x31,0xA0,0x34,0xB3,0x69,0x1B,0xD7,
+0x00,0xD5,0x70,0xD8,0x09,0x87,0x2F,0x83,0x3A,0x92,0xFD,0xCA,0x82,0x3C,0x2A,0xB3,
+0x23,0xE8,0x6E,0xC6,0xA6,0xDA,0x72,0x71,0x97,0x3F,0xC3,0x59,0xBE,0x56,0x16,0xE5,
+0x61,0xB2,0x76,0xDE,0x1C,0x6D,0xC5,0x7C,0x58,0xF0,0x08,0x5D,0x59,0x7C,0xF1,0x28,
+0xFA,0xF2,0xAD,0x05,0x45,0x88,0x20,0xC0,0xA7,0x0F,0x87,0x2D,0x1E,0xFA,0xB6,0xE9,
+0x63,0xB8,0x7E,0xD6,0x37,0x64,0xCC,0x5E,0x67,0xCF,0x0F,0x65,0x0E,0xAA,0xA6,0xA9,
+0xA3,0x28,0x2E,0x86,0x6C,0x92,0x3A,0xF3,0x0A,0xA2,0xB9,0xBE,0xF5,0xCE,0x5D,0x36,
+0xDB,0xC5,0xBB,0x13,0x80,0xE9,0x41,0x64,0xAD,0x05,0xF4,0x54,0x45,0x32,0xED,0x7A,
+0x45,0xB7,0x57,0xFF,0xCF,0x1B,0xB3,0xD9,0xEE,0x46,0x25,0xC6,0xDF,0x93,0x77,0x41,
+0x3D,0x16,0x47,0xC2,0x47,0x22,0x16,0x8C,0x76,0x22,0xEC,0x73,0x8A,0x86,0xD7,0xE5,
+0x94,0x97,0xC6,0xEA,0x55,0x13,0x04,0xAF,0x0B,0x80,0x33,0xD1,0x5F,0xE5,0xB4,0x53,
+0x30,0x2C,0x7D,0xF5,0x46,0x02,0x17,0xAD,0xF2,0x42,0x08,0x13,0xB4,0x2B,0x7A,0x76,
+0x6C,0xE8,0xB9,0x6D,0xD5,0x1B,0x84,0x27,0x85,0x68,0x55,0x39,0xE5,0x28,0x79,0x24,
+0xFC,0xB8,0xE9,0xAD,0xBF,0xEC,0xEE,0xBA,0xE2,0x46,0x1C,0x17,0x4B,0xC1,0x90,0x63,
+0xA3,0x81,0xD0,0xCB,0xF2,0x5E,0xA3,0x45,0xA1,0x49,0x50,0x18,0xFB,0x84,0xD5,0x96,
+0xE0,0xA7,0xF6,0xAE,0xE6,0x0E,0xB7,0x01,0x30,0x1A,0x92,0x4B,0xE1,0x08,0x59,0x00,
+0xDA,0x8B,0xDA,0xB8,0x8F,0xA8,0xDE,0xCE,0xCA,0xC7,0xB5,0x96,0xD3,0x05,0x54,0x3F,
+0xBD,0x8D,0xDC,0xD9,0x9E,0xC8,0xCF,0xBF,0xE6,0x66,0x38,0x37,0x44,0x7E,0x2F,0xD3,
+0xFB,0x8A,0xDB,0x98,0xFA,0x5C,0xAB,0x4F,0x38,0x9A,0x1A,0xCB,0xD5,0x2D,0x7C,0x11,
+0x28,0xFC,0xAD,0x3D,0x3C,0xB5,0x6D,0x60,0x65,0x39,0xE4,0x68,0xAC,0xAF,0xFE,0xEA,
+0xD2,0x90,0xC1,0xAB,0x48,0x61,0x19,0xC0,0x5A,0x83,0x61,0xD2,0xB6,0x23,0x72,0x7C,
+0xDC,0x57,0x06,0x62,0xEB,0x3C,0xBA,0x3E,0x87,0x60,0x5F,0x31,0x7D,0xEC,0xBD,0x78,
+0xA4,0xB3,0xE2,0xFE,0x5C,0x31,0x0D,0x84,0x40,0x0F,0xF7,0x5E,0xFC,0xBB,0xEA,0xAE,
+0xFA,0x64,0x35,0x77,0x5A,0x50,0x0B,0xE3,0xA2,0x56,0x4C,0x07,0x32,0x43,0x12,0x98,
+0x6F,0x15,0x44,0x93,0x42,0x12,0x13,0xB9,0xC9,0xD8,0xA9,0x89,0xD1,0x0D,0x5C,0x35,
+0x86,0x4F,0x1E,0x20,0xDA,0x58,0x8B,0x6B,0x24,0x3E,0xA2,0x6F,0xDB,0x85,0xD4,0xB7,
+0x9D,0x62,0x33,0x16,0x3B,0xF4,0x6A,0x26,0xF8,0xCA,0x8A,0x9B,0x8C,0xAE,0xFF,0xCB,
+0x75,0xD6,0x87,0x4A,0x63,0x36,0x32,0xBC,0x3E,0xB2,0x34,0xE3,0x69,0xC8,0x99,0x48,
+0xD0,0x83,0xD2,0xBA,0xDB,0x78,0x8A,0x4A,0x9C,0xFB,0xDF,0xAA,0xB9,0x9C,0xCD,0xCC,
+0x9E,0x9F,0xCE,0xE8,0xC5,0x5B,0x94,0x77,0x94,0x7B,0x57,0x2A,0xD0,0x1A,0x4B,0x23,
+0x82,0x80,0xD1,0xEB,0x0E,0x80,0x5F,0x67,0xF6,0x62,0x2C,0x33,0xF9,0x8C,0xDD,0x9C,
+0xA6,0xA0,0xF1,0xEF,0x50,0x23,0x01,0x9A,0xFD,0xFD,0xB8,0xAC,0x4D,0xE9,0xB8,0x4D,
+0x6A,0x34,0x65,0xB7,0x41,0x43,0x10,0xEB,0x45,0x38,0xC5,0x69,0x66,0x77,0x26,0xF8,
+0x39,0xD9,0x88,0x09,0xDF,0x68,0x8E,0x5E,0x7C,0xAA,0x6E,0xFB,0x7B,0xC4,0x95,0x56,
+0x8E,0x54,0x05,0x33,0xE4,0x7F,0xB5,0x72,0xB2,0x52,0x58,0x03,0xB1,0x1C,0x4D,0x44,
+0xBB,0x51,0x00,0x03,0x29,0xC5,0x78,0x05,0x2E,0xB6,0x20,0xE7,0x55,0x6D,0x3C,0xD1,
+0xD6,0x5F,0x0E,0x60,0xF0,0x2F,0xA1,0x36,0xCC,0xEF,0x9B,0xBE,0x49,0xC9,0x98,0x69,
+0x1D,0xF9,0xA8,0x0D,0x59,0x01,0x08,0xB1,0x51,0x1C,0xF5,0x4D,0xCE,0xB6,0xE7,0x91,
+0xAC,0xA8,0xF9,0xED,0x3F,0xE4,0x6E,0x32,0x8E,0xF7,0xC1,0xA6,0xA6,0x27,0x76,0x68,
+0xD9,0x76,0x27,0x46,0x02,0x92,0x53,0x79,0x06,0x37,0x89,0x66,0x08,0xCE,0x9F,0x2F,
+0x0C,0xDC,0x8D,0x39,0x7A,0x54,0x2B,0xC7,0xC3,0x50,0x2B,0x01,0x84,0x2E,0x7F,0x43,
+0x4E,0x14,0x45,0xB3,0x3E,0xC4,0x6F,0x13,0x2C,0xBE,0x2A,0xEF,0x19,0xDD,0x8C,0x2D,
+0x97,0x6A,0x3B,0x14,0x98,0xA9,0xC9,0xD8,0x27,0x21,0xBE,0x70,0x9D,0xBD,0xEC,0xC9,
+0x18,0xD8,0x89,0x29,0xD3,0x7A,0x82,0x40,0xA3,0x41,0x5A,0x10,0x57,0x65,0x34,0xDB,
+0xFE,0xAB,0xFA,0xBC,0xB1,0x8F,0xE0,0xD7,0x17,0x24,0x8B,0x75,0x86,0x26,0x77,0x49,
+0x80,0x93,0xC2,0xFA,0x56,0x42,0x07,0xFD,0x95,0x6C,0x41,0x3D,0xFF,0xA4,0xF5,0xB2,
+0x02,0x1B,0x4A,0xF0,0xF5,0x1F,0xA4,0x03,0x26,0x36,0xA8,0x67,0x11,0x5D,0x0C,0xA5,
+0xB6,0x6B,0x3A,0x34,0xC2,0x1A,0x93,0x31,0x59,0x9C,0x7D,0xCD,0xF1,0x0C,0x5D,0x14,
+0xF3,0x91,0xC0,0x8B,0x40,0x63,0x11,0xCA,0xBE,0xF2,0xF4,0xA3,0xD6,0x32,0x63,0x0D,
+0xB4,0x78,0x29,0x25,0x49,0x41,0x18,0xE1,0xBD,0xED,0xE8,0xBC,0x21,0x58,0x09,0x90,
+0x15,0xE2,0xB3,0x1E,0x0A,0x90,0x5B,0x73,0x00,0x1F,0xA7,0x4E,0xBF,0xB4,0xE5,0xE2,
+0xE9,0x52,0x03,0x52,0xAD,0xDD,0xFC,0x99,0x97,0x64,0x4B,0x35,0xC7,0x21,0x70,0x0F,
+0x8D,0xA9,0xF8,0xCD,0xC0,0x6B,0x91,0x42,0x3A,0x92,0x10,0xC3,0x07,0x71,0x20,0x9F,
+0xDD,0xB9,0xE8,0x8D,0x00,0xE3,0x51,0x0A,0xA4,0x7E,0x62,0x2F,0x9E,0xA2,0xF3,0xD5,
+0x5B,0xFE,0xAF,0x4C,0xFF,0x6C,0xAE,0x7A,0x18,0x9B,0x3B,0xCA,0x05,0x79,0x28,0x95,
+0x71,0x19,0x48,0x81,0x30,0xA7,0x61,0x7E,0x15,0x2C,0x81,0x7D,0x47,0x61,0x30,0xCF,
+0x1B,0x25,0x74,0xD7,0x9D,0x99,0xCC,0xED,0xE7,0x71,0x2E,0x20,0x64,0x7F,0x2E,0xF2,
+0x74,0x38,0x69,0xA5,0x04,0xF3,0x55,0x1E,0xAA,0xD6,0xC4,0x87,0xDF,0xA5,0xF4,0x93,
+0x59,0xED,0xBC,0x5D,0xD4,0x3B,0x85,0x06,0xD2,0x43,0x29,0x12,0x71,0x4C,0x1D,0xD4,
+0x0E,0xCF,0x9E,0x28,0x44,0x73,0x15,0xDE,0x0C,0xBF,0x0B,0xEE,0x4E,0xF6,0xA7,0x51,
+0xA0,0x7C,0x2D,0x35,0x6C,0x75,0x3D,0xF0,0x9B,0xC4,0xE7,0x95,0xC6,0x36,0x67,0x19,
+0x21,0x09,0x58,0xC1,0x45,0x53,0x14,0xFF,0x6E,0xA6,0x70,0xF7,0x37,0x74,0x25,0xAA,
+0x04,0xC7,0x96,0x2A,0xEA,0x1C,0xBB,0x1F,0x2B,0x81,0x12,0xD0,0x3F,0xF4,0xA5,0x22,
+0xCD,0x72,0x23,0x56,0xE0,0x6F,0xB1,0x66,0x9A,0xD3,0xF1,0x82,0x70,0x5B,0x0A,0xC2,
+0xF6,0xB0,0xE1,0xAF,0xB2,0xDE,0xE3,0x85,0x10,0x1B,0xB3,0x4A,0xD8,0x9A,0xCB,0xAB,
+0xEE,0x60,0x31,0x67,0x0B,0xB0,0x5A,0x52,0x72,0x02,0xC8,0x53,0x79,0xCC,0x9D,0x5C,
+0x3C,0xF8,0xA9,0x2D,0x22,0x96,0x73,0x5D,0x9F,0xE4,0xC3,0xB5,0xA0,0x0F,0x5E,0x46,
+0xA1,0x92,0xC3,0xDA,0xF1,0x0F,0xA0,0x17,0x83,0x40,0x7B,0x11,0x6A,0xD7,0x86,0x54,
+0x7F,0xDE,0x8F,0x48,0x8E,0x88,0xDF,0xEF,0x82,0x57,0x6D,0x06,0x4F,0xE1,0xB0,0x47,
+0x16,0x1F,0x4E,0xE0,0xA1,0xCF,0xF0,0x87,0x91,0x4C,0x65,0x1D,0xD4,0x3A,0x6B,0x07,
+0x8F,0xBA,0xEB,0xDC,0x99,0x89,0xC8,0xF9,0x7E,0xA2,0x64,0xF3,0xBB,0x94,0xC5,0xC6,
+0x88,0x88,0xD9,0xE9,0x1E,0xC0,0x4F,0x37,0x74,0x2A,0xE6,0x7B,0x04,0x6E,0x3F,0x83,
+0xB0,0xB7,0xE6,0xEE,0xFD,0x1D,0xAC,0x09,0x0A,0x97,0x25,0xC6,0xF7,0x24,0x75,0x3A,
+0xE8,0xBF,0xFA,0x80,0x7A,0xE7,0x58,0x8F,0xC9,0x11,0xA1,0x1D,0xEA,0x48,0x67,0x82,
+0x06,0x50,0xFB,0x6E,0x15,0x49,0x99,0x21,0x6C,0x88,0x04,0x21,0xD2,0x0E,0x19,0xBA,
+0xDD,0xCB,0xBB,0xB5,0x36,0x57,0xA4,0x3F,0xC4,0x2E,0xAC,0x2F,0x8E,0xDC,0x97,0xE6,
+0x60,0xB5,0x78,0x08,0xC5,0x1D,0x1D,0x75,0xFB,0x16,0x93,0x28,0x6D,0x01,0xA9,0x05,
+0xAE,0x5E,0x5D,0xC6,0x61,0x7C,0xD8,0x14,0x8B,0xA2,0xE3,0xEC,0x51,0x57,0xC3,0x39,
+0x48,0xB3,0x56,0x20,0xB8,0xBF,0xC2,0xD7,0x13,0x70,0x7B,0xA6,0x78,0x71,0xCC,0x10,
+0x1D,0x43,0xF3,0x75,0x8E,0x92,0xD9,0xFA,0xAD,0xE1,0xC5,0x89,0xFD,0x49,0x71,0x95,
+0x0A,0x42,0xE5,0x62,0xAB,0xA4,0xCA,0xCC,0xE1,0x3F,0x89,0x1B,0x82,0xCE,0x89,0xEA,
+0xCB,0xEA,0x8C,0xA3,0xFE,0x87,0xBC,0xEF,0xB4,0x9A,0xDC,0xEB,0x99,0xDD,0x81,0xF1,
+0xEC,0xAF,0xEE,0x84,0xF6,0x07,0x34,0x6F,0x7A,0xBF,0x12,0x00,0x36,0x92,0x61,0x5E,
+0x51,0xD1,0x2D,0x39,0x19,0xE9,0x35,0x81,0xC3,0x68,0xAB,0x6E,0xC1,0x1F,0x1B,0xA9,
+0x99,0x5B,0x6F,0xF1,0xB1,0x28,0x5C,0x40,0x01,0x53,0x69,0x97,0x93,0xAE,0xF8,0xFB,
+0x09,0x13,0xB7,0x61,0xB0,0x3F,0x4A,0x57,0x9E,0xC7,0xF6,0x9C,0xA7,0xFA,0x98,0xCF,
+0x9C,0x6B,0x5A,0xF4,0x1E,0xD6,0x0D,0xBE,0x4B,0xEA,0x23,0x64,0x77,0x32,0x80,0x1F,
+0x8E,0x5A,0x79,0xE6,0x07,0x45,0x87,0x2D,0x0F,0x3E,0x67,0xF4,0x1F,0xB4,0x6E,0x77,
+0xF5,0xCD,0x95,0x9D,0x8F,0x85,0xCF,0xED,0xBC,0x90,0xD4,0xE9,0x37,0xB2,0x40,0x5F,
+0xD1,0xD9,0xA5,0xB9,0xC4,0x0A,0x0B,0x62,0x8D,0xC5,0xE5,0x8D,0x8C,0xAD,0xE4,0xE4,
+0x34,0x65,0xFC,0x5C,0x5F,0xD1,0x4B,0xB9,0xCA,0x43,0xA2,0x4C,0x73,0x22,0x94,0x1B,
+0x3B,0x26,0xB0,0x53,0xA5,0x0C,0x6C,0x64,0x56,0x85,0x3E,0x16,0xEE,0x58,0x73,0x86,
+0x66,0xD4,0x1F,0x0E,0x86,0x12,0x51,0x7A,0x6A,0xEF,0x02,0x40,0x43,0x66,0xE0,0x2B,
+0x55,0xC1,0x39,0x3D,0x7E,0xC7,0x7C,0xAF,0x91,0x8B,0xF9,0xDF,0x79,0x51,0xED,0x11,
+0xA7,0x7C,0x76,0xCF,0xE0,0x2B,0x0E,0x43,0x0B,0x2A,0x63,0xE4,0x3A,0x80,0x7F,0x52,
+0xD8,0xFB,0x8E,0xB0,0xC6,0x02,0x01,0x6A,0xDA,0x13,0xB2,0x0C,0xB3,0xAA,0xDC,0xDB,
+0x2E,0x56,0xD5,0x46,0x06,0x52,0x91,0x3A,0x21,0x77,0x49,0x93,0xDE,0x1C,0x07,0xB6,
+0x7C,0xE7,0x36,0x14,0xD0,0x2E,0x3B,0x46,0x68,0x9C,0x00,0x31,0x86,0xDE,0x9D,0xEE,
+0x26,0x54,0xDF,0x4E,0x3E,0xD7,0x2C,0xBF,0xE0,0x1E,0x88,0x3B,0x25,0x83,0x63,0x4D,
+0xB8,0x7F,0x6A,0xD0,0x17,0x41,0x93,0x29,0xE2,0x6D,0x8A,0x4A,0x33,0xA2,0x54,0x5B,
+0xD6,0x98,0xE3,0xBE,0x30,0x7F,0x8A,0x17,0x18,0x28,0x70,0xF5,0xB1,0xDB,0xAF,0xD9,
+0x6B,0xE6,0x20,0x03,0x5C,0xCE,0x57,0xA6,0x19,0x09,0x71,0xD5,0xEB,0x68,0x46,0x83,
+0xF4,0xED,0xB4,0x9C,0xD8,0xAE,0xB3,0xC6,0x67,0xD0,0x0F,0x72,0x4D,0x05,0x8D,0x25,
+0x6E,0xD6,0x15,0x06,0x47,0x55,0xD7,0x3D,0xD8,0x60,0xB0,0x7D,0xC2,0x4E,0x49,0xAA,
+0x0B,0x62,0xC4,0x63,0x96,0x16,0x45,0x7E,0xAB,0x86,0xC3,0xE8,0xA0,0xBB,0xDE,0xC8,
+0xBD,0x4F,0x5F,0xD5,0x67,0x54,0xF6,0x3C,0xDB,0x32,0xB3,0x2C,0x4C,0x25,0xAC,0x24,
+0x56,0x90,0x6B,0x3E,0x0F,0xC5,0x0F,0xAD,0x8A,0x83,0xE2,0xCC,0x2A,0xC0,0x2F,0x42,
+0x1A,0x02,0xB5,0x72,0x45,0x5D,0xDD,0x35,0xAF,0x92,0xC7,0xF8,0x09,0x95,0x59,0x61,
+0x7D,0xC7,0x17,0x15,0xC9,0xBD,0xB1,0xD5,0x05,0x47,0x6D,0x87,0x71,0x53,0xE7,0x19,
+0x18,0x73,0xC6,0x70,0x70,0x6F,0xDA,0x07,0x27,0x10,0x4F,0xF2,0x97,0xBE,0xEC,0xFF,
+0xE0,0xBD,0xF0,0x88,0xBA,0xB7,0xC8,0xDF,0xAA,0xA7,0xC2,0xC8,0xAC,0xA9,0xC0,0xC4,
+0xA5,0x0D,0x05,0xCD,0x88,0xBA,0xF7,0xD2,0x2C,0x48,0x44,0xA1,0x83,0xEE,0xA8,0xEB,
+0xFC,0xEF,0xBE,0x94,0x94,0x1E,0x4F,0x76,0x22,0x25,0x4A,0xC2,0x5A,0x04,0x9B,0x32,
+0x28,0x37,0xB2,0x40,0x38,0xFF,0x02,0x97,0xF3,0x1C,0x9B,0x2A,0x7D,0x41,0xF9,0x15,
+0x31,0x55,0xC9,0x59,0x11,0x69,0xBD,0x01,0xEC,0x00,0x84,0x29,0xB6,0x9A,0xE9,0xDE,
+0x72,0x84,0x5B,0x1A,0xA7,0x04,0x66,0x6C,0x47,0xF4,0x2F,0x76,0x32,0x82,0x75,0x5A,
+0xB7,0x3C,0x26,0xDF,0x8C,0x9A,0xD3,0xF2,0xD3,0x38,0xBB,0x2E,0x23,0xE2,0x04,0x4B,
+0x80,0x39,0x14,0xE8,0x4D,0xDD,0x55,0xB5,0x11,0x03,0x79,0xD7,0x48,0x35,0xB8,0x20,
+0x74,0xE5,0x3C,0x1C,0x1A,0xF6,0x29,0x9E,0x3C,0x18,0x54,0xE1,0xA9,0x99,0xF5,0xC1,
+0xB1,0x5D,0x41,0xD9,0x78,0xEF,0x52,0x87,0xF0,0x4E,0x98,0x7B,0xA8,0xB9,0xD4,0xC0,
+0xF8,0xFF,0xAA,0x90,0xA8,0xBB,0xD6,0xD3,0xA5,0xEB,0xCD,0x8B,0x10,0xF7,0x22,0x78,
+0x45,0x81,0x69,0x2D,0x3D,0xC8,0x30,0xA0,0xC0,0x3A,0xA8,0x3F,0x2F,0xF0,0x1A,0x47,
+0x2A,0x46,0xC1,0x42,0xBC,0x9F,0xE6,0xF7,0x24,0x42,0x4C,0xA3,0x98,0xFD,0xA0,0xF0,
+0x92,0x08,0x37,0xFA,0x10,0x7E,0xAB,0x16,0x66,0xF1,0x0E,0x52,0x31,0xD3,0x27,0x59,
+0x1C,0x63,0xD2,0x74,0xF3,0x30,0x06,0x58,0x17,0x64,0x7F,0xB6,0x29,0x91,0x7D,0x41,
+0xD0,0xF9,0x84,0xB8,0x14,0x5E,0x8F,0x36,0xF9,0x65,0x91,0x59,0x89,0x9D,0xD1,0xE1,
+0x2C,0x27,0xA6,0x44,0x85,0x0D,0x4D,0x65,0xFE,0x23,0x96,0x18,0xED,0x09,0x21,0x85,
+0xC9,0x9B,0xFF,0xA1,0x77,0x50,0xE2,0x38,0xE3,0x4C,0x8B,0x6A,0x3B,0xA0,0x5E,0x53,
+0x73,0xA4,0x7A,0x1B,0x6D,0xDC,0x74,0xB4,0x8F,0xB6,0xE7,0xFC,0x4F,0x74,0xFE,0x27,
+0x03,0x60,0xCE,0x6B,0x3A,0xF7,0x08,0x9F,0xF2,0x3D,0x9A,0x0A,0x81,0x9F,0xDB,0xE9,
+0x0C,0x23,0x82,0x64,0x8A,0xB2,0xFD,0xDA,0xCB,0x62,0xA3,0x6C,0xCC,0x2D,0x24,0xA4,
+0x8D,0x0B,0x2B,0xE5,0x12,0x76,0xA1,0x1E,0xF8,0x44,0x90,0x79,0xFC,0x69,0x50,0x94,
+0x50,0xF1,0x0C,0x38,0x20,0x7B,0x9E,0x13,0xD4,0x7E,0xBC,0x6F,0x95,0xCF,0x9F,0xFD,
+0xCA,0xCA,0xAD,0xA2,0x9E,0x96,0xCD,0xFE,0xE4,0x0A,0x8C,0x2B,0x26,0xD2,0x31,0x4E,
+0x68,0xB7,0x72,0x00,0x4B,0xF5,0x7B,0x9D,0x65,0xA3,0x0D,0x03,0x34,0xE3,0x12,0x5C,
+0x22,0x44,0xCB,0x4A,0x24,0x5B,0xBA,0x33,0x9B,0xF2,0xF3,0xAC,0xA6,0xDA,0xB9,0xCE,
+0x08,0x33,0x96,0x60,0x75,0x58,0xE8,0x30,0x5F,0xAE,0x37,0x34,0x35,0xC3,0x33,0x5D,
+0x33,0xFD,0xF8,0xFA,0xDE,0x8C,0xAD,0x10,0xC5,0xCA,0x3E,0xF0,0x67,0x97,0x0F,0x59,
+0x0B,0xC5,0xBE,0x84,0x7B,0x15,0x91,0xB5,0x04,0xA5,0x90,0x5E,0x66,0x79,0xE0,0xB7,
+0x57,0x99,0x6C,0x0A,0xD3,0xB3,0x9F,0x1D,0x39,0x86,0x8E,0x40,0x26,0xA2,0x7B,0x6C,
+0xB4,0x7A,0xB1,0x34,0xEC,0x8B,0x98,0x22,0x80,0x75,0xC4,0x0A,0xE5,0x1F,0x05,0xD1,
+0x88,0x46,0xE7,0x5E,0x9C,0x3F,0x5C,0x52,0x45,0xD1,0xA5,0x6B,0xC0,0xD1,0xEE,0x1F,
+0xA1,0x6F,0xC1,0x51,0x04,0xED,0x16,0xCA,0x5F,0x08,0x66,0xA8,0xCB,0x37,0x03,0xF9,
+0x24,0xEA,0xF9,0xEC,0xBA,0x7C,0x39,0x74,0x44,0x3E,0x4B,0x85,0x6E,0x62,0xF3,0xAC,
+0x5B,0x95,0x7E,0x14,0xF6,0xA2,0xAB,0x38,0x57,0x1B,0x7D,0xB3,0x78,0x75,0xF2,0xBB,
+0x40,0x8E,0x6D,0x1C,0xA3,0x07,0x5B,0x6D,0x21,0x4E,0x5E,0x90,0x11,0xB4,0x5A,0x7A,
+0xEF,0x21,0x22,0xFC,0x6D,0x22,0xB0,0xA3,0xA9,0x46,0xDE,0x10,0x73,0x93,0x1F,0x5D,
+0x18,0xD6,0xAF,0x86,0xD4,0xF5,0xDE,0x1A,0xA8,0xA9,0x30,0xFE,0xB0,0x2E,0x61,0xE0,
+0x4A,0x84,0x1E,0x65,0x16,0xCE,0x27,0xD8,0xC1,0x01,0xF1,0x3F,0xF2,0xE6,0xEB,0x28,
+0x7E,0xB0,0x4A,0x05,0x89,0x5A,0x2C,0x47,0xD7,0x00,0xE6,0x28,0x2A,0x76,0xA3,0xB8,
+0xAE,0x60,0x82,0x1D,0x5C,0x77,0xD4,0x92,0x90,0xAE,0x0F,0xC1,0xC7,0xE3,0xDB,0x2D,
+0xC6,0x08,0x04,0xF3,0x18,0xA3,0x44,0xD6,0x1A,0xB7,0x9C,0x52,0xE4,0xF1,0xEA,0x3F,
+0xEE,0x20,0x02,0xDD,0xAB,0x0D,0x59,0x65,0x52,0x3F,0x5C,0x92,0x08,0x8A,0x7D,0x44,
+0x55,0x9B,0x1D,0x79,0x9A,0x58,0x3D,0x54,0x96,0x74,0xD3,0x1D,0x38,0xAE,0x69,0x60,
+0xAA,0x64,0x92,0x09,0xDD,0xDE,0xFC,0x13,0xD6,0xEF,0x08,0xC6,0x61,0x4B,0xD5,0x85,
+0x37,0xF9,0xE8,0xEE,0x41,0x18,0xA6,0x8F,0xF1,0x15,0xD5,0x1B,0x2D,0x44,0x96,0x8A,
+0x9A,0x54,0xD6,0x7D,0x7D,0x72,0xF0,0xB3,0xCC,0x36,0xCB,0x05,0x82,0x19,0x64,0xD7,
+0xA0,0x6E,0xE1,0x70,0x86,0x16,0x6F,0x48,0xE1,0xCE,0x1E,0xD0,0xA4,0x2A,0x71,0xE4,
+0xE3,0x2D,0x30,0xE2,0x1C,0xB7,0x54,0xD2,0x93,0x50,0xF2,0x3C,0xEB,0xD8,0xCC,0x16,
+0x6A,0xA4,0x1A,0x41,0xCD,0x8E,0xBC,0x03,0x9C,0x76,0xDB,0x15,0x13,0xA7,0x4B,0x69,
+0x07,0xC9,0xAC,0x9A,0x36,0xEA,0x23,0xF8,0x0C,0xB6,0x8B,0x45,0x48,0x51,0xE6,0x9F,
+0x5F,0x91,0x6E,0x00,0x7F,0x01,0x81,0xB1,0xA6,0x60,0xF7,0x39,0xAB,0x03,0x57,0xCD,
+0xFC,0x32,0x33,0xFE,0xF7,0x83,0x8B,0x39,0xB1,0x8E,0x0E,0xC0,0x42,0x59,0xE4,0x97,
+0xEA,0x24,0x12,0xC9,0xF5,0xF0,0xFA,0x3B,0x0E,0xA7,0x98,0x56,0xF7,0xC7,0xCF,0x09,
+0x68,0xA6,0x6B,0x32,0x0F,0xB5,0x45,0xC1,0x17,0x80,0xA6,0x68,0x7E,0xA9,0x28,0x67,
+0x32,0xFC,0xD8,0xDB,0x0E,0x94,0x65,0xC0,0xCA,0xEC,0x17,0xD9,0xBD,0x14,0x56,0xDA,
+0x94,0x5A,0xB5,0x10,0x70,0x4D,0xC2,0xBE,0x2E,0x68,0x77,0xB9,0x29,0x8B,0x5D,0x45,
+0x1B,0xD5,0xFE,0xD4,0xCF,0xFD,0xCD,0x01,0x4A,0xF7,0x8C,0x42,0x88,0x11,0x66,0xDF,
+0x79,0xB7,0x0B,0x43,0xBC,0x1B,0x58,0x72,0xD8,0x26,0xCF,0x01,0x59,0x74,0xD2,0xBA,
+0x95,0x5B,0x95,0x31,0xCC,0xAF,0x9C,0x02,0x6B,0xD7,0x8D,0x43,0xC2,0xC2,0xFF,0x0C,
+0xF3,0x3D,0x70,0xB2,0x9D,0x1E,0x7C,0x53,0x92,0xBF,0x1C,0xD2,0xF6,0x29,0x20,0xE7,
+0xD0,0x1E,0x25,0xC4,0xB8,0x0F,0x48,0x76,0x40,0xF5,0x84,0x4A,0x28,0x65,0xB2,0xAB,
+0xA8,0x66,0xE3,0x7A,0x12,0xDA,0x37,0xDC,0x2C,0x79,0x64,0xAA,0x8A,0x02,0x77,0xCC,
+0x4E,0x80,0x0E,0x71,0x30,0x8D,0x42,0xFE,0x47,0xC0,0xB6,0x78,0x5B,0x67,0xC3,0xA9,
+0x75,0xBB,0x19,0x5D,0xBD,0x3A,0x78,0x73,0x55,0x0A,0x6E,0xA0,0x6D,0x9F,0x0D,0x51,
+0x5A,0x94,0x5E,0x35,0x3B,0xD5,0x11,0xF5,0x6A,0x38,0x63,0xAD,0x98,0xDA,0xBD,0x14,
+0x83,0x4D,0xB4,0x06,0x35,0xB8,0x72,0xFB,0xD2,0x24,0xC7,0x09,0x23,0x83,0x5F,0x4D,
+0xA4,0x6A,0xF1,0x64,0xE4,0x81,0x9A,0x2A,0x9F,0x88,0x26,0xE8,0x2F,0x57,0x87,0x99,
+0x6F,0xA1,0x2A,0x74,0xFB,0x9D,0x99,0x35,0x20,0xA1,0xB0,0x7E,0x54,0x4E,0xE5,0x80,
+0xEB,0x25,0x32,0xE8,0x50,0x69,0xC6,0x9E,0xFB,0x17,0xDD,0x13,0xC6,0x0D,0x34,0xC3,
+0xFA,0x34,0x52,0x99,0xC4,0xA5,0x9E,0x0A,0x4E,0x3C,0x43,0x8D,0xBB,0xC8,0x8C,0x06,
+0x91,0x5F,0x85,0x25,0x06,0x9E,0x67,0xC8,0xC8,0xFD,0x04,0xCA,0x89,0xFF,0x89,0x31,
+0x70,0xBE,0x29,0x68,0x2B,0x85,0x51,0xE5,0xB4,0xAA,0x2F,0xE1,0xA1,0x0B,0x55,0xC5,
+0x71,0xBF,0x09,0x49,0xE7,0xD3,0xCB,0x29,0xCF,0xC8,0x36,0xF8,0xDC,0xCE,0xED,0x00,
+0xC9,0x07,0x47,0xBF,0xB2,0x76,0x3B,0x7C,0x4B,0x18,0x62,0xAC,0x37,0x87,0x4F,0x49,
+0xF6,0x38,0x40,0x87,0xD7,0xA7,0x8F,0x19,0xAD,0x8D,0x11,0xDF,0xF4,0x3A,0x31,0xF4,
+0x41,0x8F,0x4D,0x3D,0x33,0xDF,0x13,0xFD,0x7B,0x0C,0x46,0x88,0x5C,0x55,0xF6,0x9B,
+0xE8,0x26,0x63,0xBA,0x71,0x6C,0xE2,0xBF,0x36,0xA0,0xA7,0x69,0xAA,0xED,0xB8,0x23,
+0xF0,0x3E,0x21,0xE0,0x00,0xF9,0x06,0xCE,0x9B,0x43,0xE9,0x27,0x4F,0x63,0xD3,0xAD,
+0x50,0x9E,0x2D,0x4C,0xEE,0xF8,0xE9,0x20,0x12,0xA4,0x87,0x49,0x19,0xAF,0x49,0x61,
+0x34,0xFA,0xB9,0xBC,0xE9,0xBE,0xA8,0x27,0xD0,0x35,0xD4,0x1A,0x3B,0x53,0x97,0x9D,
+0xE2,0x2C,0x10,0xC3,0xF4,0xD1,0xDA,0x3A,0x7F,0xC7,0x89,0x47,0x62,0xB6,0x2B,0x78,
+0x96,0x58,0xC4,0x63,0x98,0x2B,0x4C,0x56,0xE9,0xDD,0x05,0xCB,0xE7,0x0C,0x14,0xC2,
+0x58,0x96,0x2F,0x46,0xE5,0xA0,0xBA,0x2B,0x95,0x8A,0x2E,0xE0,0x53,0x7C,0xD0,0xB2,
+0x15,0xDB,0x9D,0xB9,0xDC,0xFF,0xDC,0x12,0x60,0x3A,0x6B,0xA5,0x1F,0x73,0x93,0xBD,
+0x25,0xEB,0xD9,0xCD,0xEF,0xD9,0xC9,0x21,0x3C,0xA2,0xAF,0x61,0xB6,0xF2,0xBB,0x3C,
+0x4C,0x82,0x7F,0x02,0xC3,0xE3,0xDF,0x0D,0x03,0x90,0xA2,0x6C,0x91,0x2F,0x41,0xE1,
+0xFF,0x31,0x62,0xAC,0xF3,0x97,0x9B,0x3D,0x50,0x2E,0x4F,0x81,0x30,0xB5,0x7A,0x7B,
+0xED,0x23,0x53,0x8F,0x72,0x3E,0xB3,0xBC,0xE6,0xFB,0x2C,0xE2,0xEF,0x17,0x07,0xD9,
+0x7F,0xB1,0x6A,0x24,0x8C,0x6F,0x1C,0x42,0x27,0x94,0x82,0x4C,0x56,0x5D,0xF4,0x93,
+0xEC,0x22,0x73,0xAE,0x48,0x33,0x84,0x86,0x75,0xC5,0x81,0x4F,0x0B,0x77,0x83,0xB9,
+0x53,0x65,0x11,0x68,0xDA,0xD8,0x1E,0xEC,0x93,0x68,0xD1,0xE7,0x76,0x69,0x03,0x5F,
+0xC5,0xF3,0x38,0xD7,0xC3,0xA3,0x7C,0xF5,0x83,0xB3,0x1A,0x2C,0x6A,0x76,0x00,0x40,
+0xA8,0x9E,0x8E,0x0C,0x80,0x31,0xAD,0xB6,0x1F,0xAB,0x9E,0xA8,0x9E,0xDD,0x5F,0xEB,
+0x36,0x00,0xA5,0xB9,0x45,0x4C,0x15,0x73,0x6E,0xCB,0x8F,0xB9,0x52,0x49,0x07,0x7F,
+0x71,0x47,0x64,0x3F,0x72,0x7E,0x10,0x44,0xD2,0x1C,0xE4,0xD2,0x69,0x8B,0xFE,0xBD,
+0x5A,0x6C,0x33,0x43,0x86,0x56,0xCC,0xB0,0x9F,0xB0,0x05,0x33,0x72,0xA6,0xC8,0x90,
+0x43,0x75,0x51,0x38,0x43,0x2B,0x74,0x75,0xBE,0x90,0x04,0x32,0x24,0x6A,0x52,0x5C,
+0x17,0x21,0x81,0xBC,0x0A,0xC0,0xD6,0x3C,0x48,0xDE,0xBC,0x8A,0x81,0x3F,0xA2,0x09,
+0xF8,0xCE,0x4E,0x9C,0x4F,0x35,0x66,0x79,0xC6,0x0C,0xE0,0xD6,0x58,0x41,0x05,0x77,
+0x69,0x5F,0x26,0x65,0xA4,0x01,0xB9,0x92,0x45,0xE9,0x86,0xB0,0xE9,0x10,0xE5,0x26,
+0xF1,0xC7,0x6C,0xB7,0xE8,0xDF,0x2B,0xDE,0x33,0xBC,0xA5,0x93,0xF8,0x35,0xD1,0x03,
+0x11,0x27,0xE0,0xDB,0x8F,0x7D,0xEE,0xB9,0x8D,0x7A,0xDD,0xEB,0x2D,0x9F,0xAE,0xA9,
+0xC3,0xF5,0x59,0xB0,0xEA,0xAC,0x5A,0xDC,0x86,0x97,0x3B,0x0D,0x7A,0xBD,0xDB,0x8B,
+0x1B,0x2D,0x93,0xA2,0x12,0x9A,0x94,0x24,0xAA,0x80,0x00,0x36,0xCD,0x30,0xE1,0x06,
+0x16,0x20,0xA1,0x9D,0x57,0x6F,0x24,0x61,0xC2,0xC7,0x2F,0x19,0x22,0xB6,0x88,0x80,
+0xB2,0x84,0xBD,0x25,0x0E,0xD4,0xC6,0x38,0xF1,0x2D,0xF6,0xC0,0x4F,0xB8,0xEB,0x8E,
+0x5B,0x6D,0x13,0x62,0xF1,0xA4,0x49,0xC7,0xB1,0xB6,0x2D,0x1B,0x57,0x68,0x23,0x5E,
+0x1E,0x28,0xA3,0x97,0xFE,0xE8,0x0A,0xC8,0x4E,0x04,0x60,0x56,0x08,0x51,0x45,0x67,
+0xDA,0xEC,0x3B,0xCB,0x7F,0x41,0x22,0x49,0x3A,0x40,0x50,0x66,0x2E,0x62,0x50,0x54,
+0xD7,0xE1,0x09,0xF4,0xA2,0x66,0xD8,0x94,0xF5,0xE6,0x39,0x0F,0x14,0x4E,0x46,0x78,
+0x3A,0x0C,0xB7,0xA7,0x38,0xC7,0xE3,0x0E,0x5B,0xFB,0x8A,0xBC,0x60,0x7E,0x02,0x48,
+0x59,0x6F,0x62,0x11,0x9A,0x18,0x9E,0xAC,0x78,0xCA,0x98,0xAE,0xC9,0xFF,0x2A,0xC9,
+0xF7,0xC1,0x0D,0xD0,0xD0,0xA1,0x6D,0xE6,0xD3,0xF3,0x0A,0x3C,0x98,0x01,0x85,0x37,
+0xF4,0xC2,0x5C,0x82,0xFA,0xFC,0x1A,0xCC,0x59,0xEA,0x99,0xAF,0xC4,0xC5,0x1D,0xF3,
+0x64,0x52,0x14,0x5A,0xB7,0x03,0xA8,0x81,0x70,0xD9,0x83,0xB5,0x50,0x5A,0x16,0x6C,
+0x33,0x05,0x95,0x8C,0xD8,0xAB,0x6F,0xEE,0xCA,0xD4,0x34,0x02,0x28,0xBE,0x8A,0x88,
+0xD2,0xE4,0x39,0xC1,0x60,0x5D,0x21,0x56,0x4D,0xFA,0x9D,0xAB,0x9B,0xFC,0x7B,0xCA,
+0x9C,0xAA,0xDA,0x6C,0xEE,0xB8,0x4A,0xD8,0x17,0xB8,0x85,0xB3,0x0E,0x8D,0x9F,0xBB,
+0xF2,0xC4,0x3D,0xE5,0x22,0xEE,0xD0,0x14,0xBB,0xB4,0x25,0x13,0x0F,0x63,0x70,0x55,
+0xA1,0x97,0xAC,0x27,0xDE,0xCC,0x0E,0xE8,0x4B,0x20,0x41,0x77,0x49,0x64,0x31,0x52,
+0xFC,0xCA,0x5E,0x88,0x3B,0x95,0xB2,0x0D,0x34,0x89,0x97,0xA1,0x26,0x79,0x43,0x4F,
+0x70,0x46,0x44,0x1E,0x81,0x10,0x8D,0xB7,0x94,0x5D,0xE3,0xD5,0xDC,0x15,0xD5,0x23,
+0x2B,0x1D,0xD7,0xD6,0x39,0xE6,0xC3,0x0F,0xEB,0xF4,0x35,0x03,0xF0,0x2E,0xC2,0x18,
+0xAB,0x9D,0xDF,0x5E,0x1E,0x84,0x86,0x28,0x0B,0xBB,0x9A,0xAC,0xD5,0xE0,0x29,0xD6,
+0x45,0x73,0x30,0x5F,0xA3,0x47,0xF8,0x95,0x71,0x36,0x6D,0x5B,0x02,0x59,0x47,0x6F,
+0x84,0xB2,0x98,0x36,0x6B,0x05,0x72,0x5D,0x92,0x87,0x3F,0x09,0x39,0x9B,0xBE,0xAD,
+0x93,0xA5,0x99,0x20,0xFB,0xDD,0x3A,0xCD,0xF2,0xD3,0x0B,0x3D,0xAD,0x04,0xB5,0x32,
+0x7A,0x4C,0x37,0x67,0x6E,0x30,0x42,0x58,0xEA,0x1B,0xDB,0xED,0x80,0xD1,0x4D,0xE7,
+0xE9,0xDF,0x2E,0xED,0x7C,0x13,0x73,0x4A,0x04,0x9D,0xB3,0x85,0x54,0x95,0xDD,0xA3,
+0x29,0x1F,0xA6,0xA5,0x07,0xFF,0xE4,0x31,0x2A,0x9B,0x9B,0xAD,0xFA,0x26,0xC0,0x10,
+0x4B,0x7D,0x53,0x32,0x1A,0x90,0x96,0x2C,0x0D,0x61,0x46,0x70,0x7B,0x53,0x34,0x65,
+0xE5,0xD3,0x3C,0xF3,0xF4,0x91,0x79,0xC2,0x73,0x27,0x7E,0x48,0xE2,0xF6,0x08,0xC0,
+0xFB,0xCD,0x1F,0xCE,0x2F,0xD1,0xE2,0x19,0xFD,0xF5,0x22,0x14,0x44,0x5E,0x06,0x68,
+0xB1,0x87,0xEC,0x77,0x92,0x12,0x9C,0xA4,0xC3,0x28,0xC1,0xF7,0x7C,0x61,0x01,0x57,
+0xD0,0xE6,0x48,0xB2,0x5C,0x37,0x77,0x6A,0xA9,0x7E,0xFD,0xCB,0xC8,0x11,0xC5,0x27,
+0x13,0x25,0x91,0xA8,0xBA,0x3C,0x9A,0x8C,0xA6,0x58,0xD4,0xE2,0x1A,0x89,0x8F,0xBF,
+0x3E,0x08,0xA7,0xB3,0xEF,0x99,0x6A,0xD9,0x1B,0x60,0x51,0x67,0x8B,0x37,0xA0,0x01,
+0x08,0x3E,0x82,0xA0,0xF8,0x8F,0x6B,0xCE,0xE3,0xE7,0x2E,0x18,0x55,0x7B,0x32,0x4D,
+0x82,0xB4,0xF9,0x51,0x8E,0x5C,0xCE,0xB8,0xF7,0xF7,0x2A,0x1C,0xF6,0xF2,0x18,0xC4,
+0x7B,0x4D,0x17,0x46,0xD4,0xB5,0x7D,0xE2,0x09,0xAA,0x89,0xBF,0x74,0x7A,0x12,0x4C,
+0xED,0xDB,0x3E,0xF9,0x4A,0x00,0x56,0x7C,0x3E,0x8B,0x9F,0xA9,0x07,0x78,0x63,0x4E,
+0xD3,0xE5,0x19,0xE0,0x24,0x89,0xB1,0x12,0xC5,0xF2,0x1D,0x2B,0x42,0x82,0xDC,0xB4,
+0x62,0x54,0x75,0x3D,0x99,0x4A,0xCF,0xAF,0x2C,0x41,0x47,0x71,0x63,0x83,0xFC,0xB5,
+0x02,0x34,0xF1,0xD9,0x06,0xDE,0xC4,0x30,0xE7,0x2C,0xE1,0xD7,0xBA,0xFD,0x5B,0xCB,
+0xF9,0xCF,0x6E,0xBD,0x9C,0x7F,0xFF,0xAA,0x23,0x67,0x6E,0x58,0x0A,0x42,0x54,0x74,
+0xBA,0x8C,0xBF,0x2F,0xF9,0xAE,0x4B,0xCF,0xB4,0x92,0x0C,0x3A,0xEC,0x31,0xC1,0x07,
+0xA6,0x90,0xED,0x61,0x23,0xCF,0xF0,0x15,0x8E,0x84,0x20,0x16,0xAF,0x17,0xA4,0x21,
+0x7D,0x4B,0x76,0x21,0xC6,0x96,0x4C,0xF0,0xFE,0x0B,0xDF,0xE9,0x29,0x50,0x65,0x66,
+0xA0,0x96,0x8C,0x06,0xC9,0xDA,0x0F,0xFF,0x19,0x71,0x42,0x74,0xEF,0xCC,0x3F,0xFA,
+0xBE,0x88,0xAF,0x3B,0x94,0x75,0xFD,0xA2,0x8A,0x4F,0xEF,0xD9,0x85,0xF0,0x69,0xC6,
+0x6B,0x5D,0x57,0x16,0xA7,0x53,0xE8,0x91,0x87,0x78,0xD5,0xE3,0xE1,0x0B,0xF6,0x3D,
+0x87,0xB1,0xC9,0x64,0x55,0x1C,0x55,0x63,0x15,0xA9,0x96,0xA0,0x40,0x91,0xCD,0xA7,
+0xAE,0x98,0xEF,0x6B,0x2A,0xE4,0xD2,0x1C,0xB6,0x83,0x1F,0x29,0x79,0x40,0x25,0x76,
+0xFE,0xC8,0x2F,0xFB,0xDC,0xBF,0x7F,0xEA,0x6D,0x35,0x72,0x44,0x1D,0xBB,0xBA,0x8D,
+0xA9,0xCB,0xBC,0xEA,0xF0,0x28,0x7E,0x50,0x5A,0x0C,0xE5,0x37,0x6E,0x57,0x38,0xB1,
+0x98,0xE8,0xAE,0xF8,0x59,0xA9,0xFF,0x78,0x39,0x6F,0x30,0x81,0xCC,0x88,0x9A,0xCC,
+0xA1,0x43,0x3C,0x6A,0x08,0x57,0x01,0xD7,0x97,0xC1,0x5F,0x40,0x86,0x31,0xD0,0x3F,
+0xB8,0xC9,0xAF,0xF9,0x54,0x93,0xC5,0x4F,0x94,0xC2,0x0E,0x12,0xAC,0x6C,0xFA,0x48,
+0xE4,0x21,0x1B,0x4D,0xC7,0x3E,0x68,0x71,0x3B,0x6D,0x41,0xF2,0xA7,0x34,0xF1,0x1B,
+0x56,0xDE,0x56,0x00,0x98,0x07,0x51,0x17,0x7E,0x28,0xF1,0x07,0xA8,0x78,0xFE,0x58,
+0x12,0xAA,0x66,0x30,0xBE,0x34,0x62,0x02,0xBA,0xEC,0x69,0x5B,0x29,0xD1,0x7F,0x70,
+0xB4,0x65,0x0F,0x59,0x84,0x18,0x4E,0x14,0xB7,0xE1,0x5B,0x64,0xF4,0xF6,0xA2,0x8A,
+0xE6,0x2B,0x13,0x45,0x9F,0x35,0x63,0x22,0x92,0xC4,0x6F,0x75,0x74,0x7E,0x22,0x82,
+0x72,0xDB,0x77,0x21,0xD9,0x32,0x64,0x63,0xC1,0x97,0xFE,0xB7,0x88,0x5C,0xDE,0x5C,
+0xDB,0xA4,0xA1,0xF7,0xB6,0x2F,0x79,0x11,0x9C,0xCA,0x0C,0x18,0x6D,0x05,0x3B,0xE0,
+0x0F,0x04,0xD5,0x83,0x4C,0x43,0x15,0x87,0x10,0x46,0x16,0x8E,0xD7,0x80,0x81,0xDF,
+0x8B,0xE0,0xB5,0xE3,0xC0,0x0C,0x5A,0x44,0x04,0x52,0x46,0xCA,0xE1,0x93,0xB7,0xFA,
+0x86,0x5A,0x02,0x54,0xB8,0xE8,0xBE,0xD8,0x53,0x05,0xC7,0x1C,0x8E,0x3B,0xD8,0x3D,
+0xA8,0xDD,0xAB,0xFD,0x0B,0xAA,0xFC,0x29,0xB2,0xE4,0x6B,0x51,0x36,0xCD,0x60,0x73,
+0xEA,0x87,0xB3,0xE5,0x9E,0xDB,0x8D,0xCD,0xFC,0xAA,0x88,0xFC,0xB8,0x28,0xEE,0x18,
+0x4E,0x42,0xD2,0x84,0xF9,0xDD,0x8B,0xAC,0x11,0x47,0x36,0xAF,0x24,0xEE,0x72,0x42,
+0xE2,0x0F,0x33,0x65,0xE2,0xF0,0xA6,0x9A,0x3A,0x6C,0x61,0xD3,0xD0,0xC6,0x86,0x9E,
+0xC2,0x2E,0x32,0x64,0xB4,0x3C,0x6A,0x00,0x23,0x75,0x03,0xA8,0x15,0xBB,0x43,0x26,
+0x8C,0xD8,0x8A,0xDC,0x11,0x69,0x3F,0xF0,0x77,0x21,0xD3,0x2C,0x5C,0x50,0x0A,0x84,
+0x3A,0x03,0xE7,0xB1,0xE6,0x3F,0x69,0x51,0x33,0x65,0x43,0xF8,0x8C,0x48,0xDA,0x4C,
+0xE1,0x13,0x2C,0x7A,0xFA,0x20,0x76,0x52,0xA5,0xF3,0x6A,0x47,0x95,0x33,0xC3,0x2E,
+0xF9,0x8F,0xA8,0xFE,0x0E,0x8B,0xDD,0x0D,0xC8,0x9E,0xDC,0x9C,0xD6,0xA1,0x80,0xFF,
+0x99,0xFE,0xB9,0xEF,0xC2,0x1F,0x49,0x55,0x56,0x00,0xF7,0x29,0x13,0xDC,0x45,0x47,
+0xC5,0x16,0x0D,0x5B,0xEA,0xEB,0xBD,0x89,0xA3,0xF5,0x0B,0x20,0xBC,0x3C,0xEA,0x08,
+0xD2,0x3A,0x36,0x60,0x5D,0x66,0x30,0xB3,0x7B,0x2D,0xC1,0x32,0x44,0x0A,0x12,0xC6,
+0x95,0x52,0x19,0x4F,0xB2,0xE0,0xB6,0xDA,0x76,0x20,0xF3,0x0D,0x01,0xFF,0x57,0x76,
+0x7F,0x61,0xC0,0x96,0xDF,0xEE,0xB8,0xB9,0xD2,0x84,0xEF,0xB5,0x58,0x44,0x0E,0x94,
+0x5E,0x56,0xD6,0x80,0xC8,0x17,0x41,0x57,0x98,0xCE,0x1C,0x0C,0x19,0xA5,0x4F,0x34,
+0xBB,0xD5,0xB0,0xE6,0x79,0x46,0x10,0xB7,0x09,0x5F,0x74,0xF5,0xF2,0x91,0xA4,0xEB,
+0xEE,0xA3,0x93,0xC5,0x68,0x63,0x35,0x83,0x91,0xC7,0x3E,0x27,0xBE,0x4F,0xE8,0x79,
+0x28,0x1D,0xEB,0xBD,0xBD,0xC9,0x9F,0xFC,0x71,0x27,0xB2,0x4B,0xD9,0xED,0x8F,0xBC,
+0x13,0xBC,0x71,0x27,0xF3,0xD5,0x83,0xAE,0x02,0x54,0x27,0xAD,0xCF,0xDA,0x99,0x9D,
+0x7E,0x77,0xD7,0x81,0x2A,0xAB,0xFD,0x09,0x62,0x34,0xA3,0x49,0x50,0x4E,0x06,0x96,
+0x35,0xB3,0x58,0x0E,0x9A,0x14,0x42,0x06,0x99,0xCF,0x3C,0x2D,0xCA,0xEF,0x9C,0xAD,
+0xC0,0x24,0x3A,0x6C,0x7C,0x67,0x31,0x93,0xDA,0x8C,0xED,0xBF,0xAF,0x3E,0xF9,0x19,
+0xA5,0x67,0x1C,0x4A,0x66,0xA4,0xF2,0x4A,0xE2,0xB4,0xAB,0xC1,0xD8,0xCC,0x8E,0x9C,
+0xF8,0x99,0xBF,0xE9,0xE4,0x2C,0x7A,0x40,0x1B,0x4D,0x45,0xD6,0x82,0x25,0xD4,0x2F,
+0xD9,0xAE,0xA9,0xFF,0x97,0x2E,0x78,0x31,0x8D,0xDB,0x6C,0x69,0x1C,0x90,0x4A,0x04,
+0xA0,0x55,0x2B,0x7D,0xD2,0xD4,0x82,0x8E,0xB3,0xE5,0x4B,0x70,0x72,0x19,0x24,0xE3,
+0x2A,0x17,0xE3,0xB5,0x71,0x5D,0x0B,0xA4,0x0B,0x5D,0x05,0x86,0xF1,0xC3,0xA7,0xBA,
+0xFB,0x85,0xA0,0xF6,0xD0,0xC7,0x91,0x9F,0xE7,0xB1,0x9B,0xF4,0x03,0x8C,0x55,0x07,
+0xD1,0x26,0x29,0x7F,0xE9,0x16,0x40,0x77,0xCE,0x98,0xBD,0xFB,0x7C,0x74,0x2A,0x80,
+0x67,0xFD,0x44,0x12,0x8D,0xED,0xBB,0xE8,0x9E,0xC8,0x7D,0x6B,0x8A,0x2F,0xDC,0x2D,
+0xD6,0x1E,0x16,0x40,0x3F,0x41,0x17,0xF6,0xC6,0x90,0xBF,0xF1,0x75,0x5F,0x23,0xA2,
+0x59,0x6E,0xE9,0xBF,0xB9,0x06,0x50,0x37,0x1D,0x4B,0x24,0xB1,0x90,0x06,0xC6,0x1E,
+0x23,0x89,0x74,0x22,0x7F,0x9A,0xCC,0x6D,0xC0,0x96,0xDE,0x96,0x9F,0x4A,0xC9,0x5D,
+0x1D,0x1A,0xD9,0x8F,0x15,0xA6,0xF0,0x3B,0xDE,0x88,0xFD,0xAB,0xC2,0xE5,0x94,0xAF,
+0x81,0x62,0x3D,0x6B,0x3D,0x52,0x04,0xE7,0xF3,0xA5,0xCB,0xB0,0xAD,0x4D,0xFB,0x68,
+0x49,0x7A,0xED,0xBB,0x10,0x87,0xD1,0x1F,0x1A,0x4C,0x65,0xF7,0x38,0xA0,0x6E,0x10,
+0xCF,0x94,0x85,0xD3,0xC4,0xC3,0x95,0x8F,0x89,0xDF,0x7C,0x7D,0x2A,0x83,0x7C,0x21,
+0xC9,0xBA,0xAD,0xFB,0x6A,0x70,0x26,0x92,0x49,0x1F,0xF4,0x35,0x51,0x6F,0x07,0xB6,
+0xA6,0x7B,0x03,0x55,0x60,0x78,0x2E,0x90,0x4B,0x1D,0x85,0x46,0x6F,0x76,0x39,0x91,
+0xE9,0x9B,0xAC,0xFA,0x45,0xB6,0xE0,0x7B,0xCB,0x9D,0x8D,0xCE,0x48,0x14,0x1E,0xD4,
+0x64,0xE1,0x5B,0x0D,0x92,0x0F,0x59,0x15,0x25,0x73,0x62,0xCF,0xF5,0xD7,0xA3,0xAA,
+0xD5,0x02,0x09,0x5F,0xA9,0xCD,0x9B,0xEC,0xE4,0xB2,0xCA,0xA6,0x3D,0x95,0x6B,0x20,
+0x2C,0x39,0xCB,0x9D,0x58,0x47,0x11,0x97,0xB0,0xE6,0x1A,0x22,0x0A,0xA7,0x5C,0x25,
+0x0A,0x36,0xE2,0xB4,0x8A,0xDF,0x89,0xDD,0x73,0x25,0xC3,0x38,0xEC,0xAC,0xBA,0xC8,
+0x32,0x8B,0x67,0x31,0x1B,0x61,0x37,0xF2,0x5E,0x08,0xF5,0x23,0xB9,0x09,0xEF,0x38,
+0xB5,0x73,0x18,0x4E,0xC5,0x2D,0x7B,0x60,0x68,0x3E,0xD0,0x30,0xAE,0x1F,0xF8,0x39,
+0x33,0x9D,0x70,0x26,0xEB,0x05,0x53,0x66,0x2B,0x7D,0x01,0xA2,0x4C,0x00,0x1A,0xC4,
+0x75,0xE3,0x48,0x1E,0x72,0xA0,0xF6,0x5A,0x85,0xD3,0x6E,0x63,0xA2,0x01,0xF4,0x2B,
+0xA7,0x6D,0x14,0x42,0xD4,0x08,0x5E,0x54,0x9B,0xCD,0x4D,0x5E,0x79,0x41,0x2F,0xB0,
+0x7A,0x53,0xF7,0xA1,0xEC,0x37,0x61,0x53,0xD1,0x87,0xBE,0xE7,0xC4,0x82,0x92,0xCE,
+0x22,0x99,0x46,0x90,0x62,0x0F,0xBD,0x46,0x5F,0xA9,0x02,0x76,0x53,0xD6,0x09,0xAE,
+0xDB,0x08,0xD7,0xF8,0x89,0xD0,0x56,0x72,0xBA,0xCF,0x81,0x10,0xB3,0x87,0x58,0x1F,
+0x9C,0xE1,0x3E,0x56,0x49,0x58,0x96,0x3A,0xCC,0xF2,0xCA,0x2D,0x18,0x59,0x86,0x6A,
+0xF0,0x01,0xDE,0xDA,0x2E,0x9D,0xF1,0x98,0x0A,0x8A,0x74,0x55,0x67,0xF3,0x2C,0xBF,
+0xE5,0xEB,0x34,0x25,0xD4,0x22,0x0B,0xDD,0x36,0x2F,0xED,0xF0,0x57,0xF6,0x29,0x8A,
+0xF7,0x33,0xEC,0xEF,0x2C,0xEC,0xF3,0xEB,0x21,0x14,0xC1,0xCB,0x6D,0x7B,0xA4,0x3D,
+0x62,0x42,0x9D,0x0B,0xC8,0x70,0x17,0x93,0x9B,0xD9,0xB6,0x06,0x5D,0x7E,0xA1,0x08,
+0xDA,0xE6,0x39,0x17,0x91,0x92,0x4E,0x28,0x71,0x00,0x85,0xDF,0x3E,0x70,0xAF,0x65,
+0x90,0x35,0xEA,0x8E,0x05,0xCA,0xDA,0xE4,0x05,0x35,0xC4,0xEA,0xB6,0xB0,0x6F,0x2D,
+0x2F,0xA3,0x7C,0xA7,0x1C,0xA8,0xC3,0x9F,0xDE,0xFE,0xD4,0x21,0xB5,0xAF,0x70,0x31,
+0xFE,0xC6,0x19,0x13,0x83,0xA3,0x5C,0x0B,0x7D,0xA0,0x29,0x7F,0xB1,0x8F,0x50,0x15,
+0x4B,0x58,0x87,0x38,0x46,0x1B,0x99,0x76,0x1D,0xB1,0x58,0x6E,0xE9,0x1B,0xC4,0xD9,
+0x04,0xAA,0x75,0x85,0x40,0x7A,0x9F,0x11,0x06,0x2A,0xD8,0xF5,0x7E,0x60,0xBF,0x35,
+0x78,0x81,0x5E,0xD2,0xB4,0xA6,0x6B,0x39,0xAA,0xCB,0x95,0x14,0x48,0x4D,0x92,0x2E,
+0xFB,0xE7,0x38,0x37,0xCC,0x60,0x13,0x87,0x68,0x93,0x0F,0x4C,0x14,0xF9,0x26,0xC6,
+0x7F,0xB3,0x6C,0xE7,0x85,0xC2,0x5A,0x6C,0x26,0x2B,0xF9,0xF4,0xE4,0xAC,0x73,0x63,
+0xCB,0xC3,0x1C,0x23,0x1E,0xD9,0xC1,0xEC,0x62,0x1B,0x8D,0xC4,0x3C,0x78,0xA7,0x6F,
+0x1D,0x94,0x4B,0xA2,0x71,0x1E,0xAE,0x44,0x6F,0xAC,0x37,0x73,0xA0,0x9C,0x43,0x17,
+0x2B,0x6C,0xB3,0x6C,0x28,0xFC,0xF7,0xFF,0x0E,0xAA,0x50,0x75,0x29,0x4B,0x94,0x49,
+0x86,0x22,0xFD,0x8F,0xA6,0x97,0x79,0x1A,0x4C,0xB2,0x0A,0x6D,0xCD,0x3A,0xE5,0xDC,
+0x60,0x51,0x8E,0x1A,0x18,0xB8,0xC7,0x8B,0x96,0x6E,0x0C,0xB1,0x87,0xA2,0x7D,0x0E,
+0xA2,0x02,0xDD,0x8B,0xE4,0x66,0x3B,0xA9,0x02,0x0A,0xFC,0xD5,0xC6,0xA5,0x7A,0x48,
+0x59,0x80,0x5F,0xF2,0x47,0x3B,0x98,0x57,0xEB,0xCC,0xD3,0x13,0x63,0xD3,0x0C,0x9B,
+0xCF,0x0C,0xD3,0xE8,0xFD,0x04,0x22,0xD2,0x3F,0xB8,0x73,0x67,0xF5,0xBF,0x60,0x61,
+0xD0,0xEE,0x31,0x15,0x38,0xBC,0xE7,0xAF,0xB2,0x4F,0x09,0x90,0xF3,0x97,0x48,0x4F,
+0x25,0xAB,0x74,0xA5,0x37,0xFF,0xE8,0xE3,0x00,0x02,0xF6,0xDD,0x95,0xAE,0x71,0x10,
+0xB3,0x27,0xF8,0xBF,0x64,0x6E,0xBB,0x21,0x50,0x16,0xB2,0xC9,0xF0,0x88,0x57,0x53,
+0x8C,0x2A,0xF5,0x8D,0xB9,0x94,0x66,0x06,0xF6,0x7F,0x7D,0xA0,0xE6,0xA4,0x7B,0x69,
+0x56,0xA9,0x76,0xD4,0x5C,0x28,0x83,0x5F,0x7C,0xB7,0x3F,0x68,0x9C,0x39,0xE6,0x8E,
+0xE0,0xCA,0x15,0x01,0xFE,0x55,0x21,0x80,0x4D,0xA5,0x1C,0x7A,0xB4,0xB8,0x67,0x27,
+0xC5,0x04,0xDB,0xEA,0x3C,0xAC,0xE3,0xBB,0x5C,0xB6,0x1E,0x69,0xAB,0x03,0xDC,0x83,
+0x97,0x07,0xD8,0xBB,0x16,0xDB,0xC9,0xE6,0x45,0x25,0x94,0xFA,0x33,0xC7,0x18,0xDF,
+0xB4,0x15,0xCA,0x8A,0x32,0xCF,0xED,0xD6,0x91,0x51,0x34,0x8E,0xBE,0x30,0xEF,0xA5,
+0x75,0xBB,0x64,0xE5,0xDC,0x20,0x03,0xD7,0xD7,0x69,0x4A,0xB6,0x82,0x95,0x4A,0x3C,
+0x30,0x41,0x9E,0x5A,0x54,0x2A,0x8B,0x55,0x9E,0xEE,0x84,0x31,0xB7,0xA7,0x78,0x3B,
+0x89,0x0B,0xD4,0xA9,0xE9,0x54,0x36,0x96,0x43,0x0D,0xBA,0xD2,0xB0,0x98,0x47,0x03,
+0xEF,0xE3,0x3C,0x27,0x7C,0x2C,0xA3,0x7B,0xEE,0xFB,0xE1,0x24,0x39,0x4F,0x90,0x5D,
+0xF5,0x20,0xFF,0xFE,0x9A,0xC1,0x45,0x70,0xC8,0xD2,0xEE,0x0D,0x73,0xD7,0x08,0x8F,
+0xE7,0xF8,0x27,0x34,0x3E,0xDD,0xE1,0xC8,0x51,0x01,0xA4,0xDE,0x84,0xBD,0x62,0x12,
+0xF4,0xCE,0x11,0x11,0x29,0xDC,0xF6,0xDE,0xD6,0x7E,0x5C,0xA1,0x16,0xF1,0x2E,0xCC,
+0x19,0x5B,0x84,0x69,0xD8,0x30,0x07,0xC3,0x0D,0xB5,0x4C,0x6A,0x9F,0x26,0xF9,0x92,
+0x91,0xDB,0x04,0x61,0xFF,0x75,0x20,0xA1,0x42,0x1A,0xAC,0xC5,0x74,0xE8,0x37,0xB7,
+0x71,0x74,0xAB,0x2E,0xAD,0xC4,0x72,0x42,0x31,0x10,0xD5,0xCF,0x08,0x5D,0x82,0x7E,
+0x18,0xB5,0x6A,0x86,0x65,0x4E,0xBA,0x00,0x80,0x42,0x36,0x9D,0xF1,0x9F,0x40,0x45,
+0x20,0x8A,0x55,0x81,0xA8,0xF4,0x77,0x77,0xAD,0xF4,0xAD,0x2B,0xFB,0x17,0xC8,0xC7,
+0x67,0x63,0xBC,0x2F,0x3D,0x8C,0xE2,0x9A,0x65,0x24,0xB5,0xFB,0x03,0xC2,0x1D,0xEA,
+0xE2,0xD9,0x06,0x10,0xC1,0x52,0x1E,0xB8,0x2D,0xB4,0x6D,0x6B,0x76,0xE0,0x3F,0xBD,
+0xAA,0x19,0xC6,0x98,0xBA,0xC5,0x65,0x54,0x2B,0x9C,0x43,0x43,0x6B,0x53,0x8C,0x13,
+0x66,0x8D,0x52,0xC0,0x00,0xFA,0xDF,0xD1,0xBD,0xF0,0xB9,0x2F,0xD3,0x96,0x49,0x6E,
+0x26,0x56,0x89,0x5B,0xE5,0x46,0x3A,0x88,0x32,0x0F,0xC9,0xD0,0x12,0xD1,0x0E,0xE8,
+0x7C,0x4E,0x91,0x19,0x52,0x4B,0x8D,0x32,0xF9,0xC0,0xCD,0x1F,0xDF,0x36,0xE9,0xC2,
+0x41,0x50,0x8F,0x3A,0x0F,0xB9,0xD0,0x9D,0xC7,0x6D,0x5E,0xB2,0x89,0x0A,0xD5,0xA8,
+0x23,0x77,0xA8,0x7F,0x93,0xE3,0x4C,0x5B,0x1F,0xB9,0x52,0x66,0x7B,0x57,0x88,0x07,
+0x51,0x9B,0x44,0xE1,0x61,0x5E,0xBE,0x14,0xCE,0xFA,0xC0,0x25,0x40,0xCD,0x12,0xA6,
+0xBC,0x0E,0xD1,0x99,0x1A,0xC9,0xC5,0xF8,0x83,0x5D,0x2A,0x82,0x0C,0x7D,0xA2,0x5A,
+0x2C,0x5E,0x81,0x59,0xEC,0x64,0x33,0xA3,0x35,0x30,0xF1,0xEF,0x93,0x86,0x59,0x3E,
+0x01,0x8B,0x54,0xA1,0x12,0xCB,0xCD,0xF2,0x1C,0xA6,0x4E,0x79,0xA4,0xBC,0x63,0x33,
+0x16,0x72,0xAD,0x4F,0x48,0x78,0x97,0x1B,0x41,0x05,0xB0,0xDA,0xAE,0x34,0xEB,0xB1,
+0xA7,0x23,0xFC,0xAF,0xE2,0x07,0x3D,0xCE,0x44,0x32,0x82,0xED,0x6A,0x44,0x9B,0x05,
+0xBE,0x1D,0xC2,0x88,0x8C,0xE0,0x53,0x47,0x3D,0xB0,0x79,0x6F,0xD5,0xBE,0x61,0x40,
+0x9E,0xF2,0x2D,0x47,0xC0,0x72,0x1F,0x99,0x9A,0xCE,0xA0,0x11,0xED,0x3B,0xE4,0xFD,
+0x7A,0x92,0x4D,0xC3,0x5F,0x79,0x80,0x0D,0xF7,0x68,0x6B,0xB7,0x4A,0x45,0x9A,0x24,
+0x68,0x4A,0x95,0x09,0x3F,0xFD,0xE0,0xE9,0x24,0x23,0xF3,0xFC,0x77,0xF7,0x28,0xAB,
+0xFA,0x09,0xD6,0xD8,0x5A,0x49,0x85,0x38,0xD1,0x41,0x64,0x9E,0xE2,0x84,0x5B,0x4D,
+0x37,0x1F,0x60,0xC9,0xDD,0x91,0xFA,0x6F,0xE0,0x6F,0x1E,0x39,0xD6,0x1C,0x7C,0x28,
+0x62,0xEF,0xC5,0x9C,0x93,0x29,0x0C,0xD7,0xA9,0x84,0x57,0x9B,0x82,0xCC,0xF8,0x7C,
+0xD6,0xB3,0x2D,0x28,0x51,0x71,0x96,0x8F,0xD1,0x3A,0x2F,0x5D,0xE4,0x29,0x7B,0x1A,
+0xFB,0x85,0x36,0x05,0xFD,0x90,0xDB,0x6E,0x25,0x12,0xDB,0x81,0xCF,0x7E,0x07,0x31,
+0x80,0x12,0xDA,0x7E,0xE6,0x0B,0x5B,0xF5,0x23,0x75,0xDD,0xE0,0x3D,0xC3,0x48,0xC3,
+0x14,0x4A,0x16,0xEA,0x86,0x1A,0x2A,0xE4,0xE6,0x08,0x18,0x58,0xA3,0xE8,0xFD,0x5D,
+0x34,0x4E,0x32,0xCA,0x25,0x44,0xD7,0xBA,0x79,0x9C,0x87,0x53,0xC6,0x5C,0x2C,0x38,
+0x2B,0x4D,0x2E,0xD5,0xFE,0x8F,0xC7,0x71,0x60,0xE7,0x9E,0x31,0x50,0x75,0x93,0xAE,
+0xEB,0xC5,0x66,0x15,0x8A,0xBA,0x86,0x44,0xF4,0x2B,0x0A,0x69,0x83,0xEC,0xD9,0x7D,
+0xE5,0xA6,0x0B,0x1B,0x60,0x63,0xB5,0x9D,0xAD,0x90,0x53,0x8B,0x27,0xF0,0x61,0xD9,
+0xE0,0x96,0x3E,0x1E,0xDA,0xAE,0xC2,0x50,0x49,0xE8,0xB7,0x17,0x56,0x14,0xF4,0xA8,
+0x6D,0xAC,0x89,0x93,0xCD,0x95,0xEE,0x6B,0xB1,0xDE,0x4F,0xD9,0x8E,0xDE,0xE6,0x70,
+0x68,0x9C,0xBC,0x96,0xF1,0x30,0x77,0xCE,0x4B,0x9B,0xB5,0x66,0x64,0x21,0xF3,0x9A,
+0xC2,0xE3,0x69,0x3C,0x37,0x48,0xC9,0xB6,0x2C,0x39,0xD2,0xA3,0x84,0xAD,0x9F,0x7A,
+0x1C,0x48,0x1C,0xE2,0x41,0x75,0x82,0x8B,0xEC,0x71,0x12,0x2B,0x6D,0x03,0xD8,0x93,
+0x4D,0xA8,0xAD,0xB3,0xA4,0x13,0x01,0xED,0x07,0x45,0xF9,0xF4,0xFC,0x6B,0x21,0x02,
+0x5C,0xC8,0xDC,0xA2,0xBE,0x9F,0x97,0x61,0x73,0xE5,0x8D,0x20,0x62,0x40,0x94,0x9C,
+0x98,0x50,0x80,0x66,0xA7,0x0C,0x1D,0xF2,0x59,0xB8,0xA7,0x57,0x61,0x11,0xC6,0x9F,
+0x23,0x4F,0x24,0xDD,0xB6,0x1F,0x1F,0xE1,0x9B,0x83,0x65,0xAE,0xAF,0xFA,0xE3,0x51,
+0xA2,0x67,0x8D,0x5C,0x87,0x0D,0x3C,0xF3,0x39,0x5C,0xC7,0xD3,0xCC,0x2F,0x55,0x32,
+0x3F,0x1D,0x6A,0xC1,0x0D,0xC5,0x7E,0x3B,0xDC,0x05,0x22,0x6F,0x4F,0x76,0x8F,0xB1,
+0x13,0x0B,0x50,0xED,0xAB,0xAC,0xB1,0x52,0x01,0x22,0xFF,0x95,0x42,0x44,0xB0,0xBC,
+0x35,0x6E,0x13,0xCB,0xFB,0xB8,0xF5,0x46,0x52,0xE0,0xAC,0x04,0xCE,0x5E,0x26,0x30,
+0x0C,0x08,0x4C,0xF2,0x49,0xF5,0x0A,0x0B,0x5D,0xAC,0xA3,0x47,0x8B,0xEE,0xD3,0x75,
+0x24,0x0E,0x62,0xDA,0xC4,0x02,0x70,0xFC,0x98,0xD1,0x66,0xFF,0x69,0x13,0xCC,0x97,
+0x48,0x98,0x98,0xB6,0x10,0x76,0xD0,0x88,0x22,0x54,0xDC,0xC0,0xE5,0x09,0x5A,0x1B,
+0x3E,0x3D,0x4B,0xC0,0xF9,0xB0,0xFF,0x4E,0x81,0xAA,0x7F,0x9D,0x67,0x70,0xA1,0x99,
+0x39,0x7C,0x0D,0xC7,0x6D,0xD4,0x0F,0x2A,0x7D,0x88,0x83,0x43,0x34,0xE1,0x63,0xCA,
+0xA1,0x36,0xDF,0x5F,0xB7,0x08,0x09,0xF6,0xC3,0x19,0x3D,0x6C,0x47,0x74,0x85,0xB9,
+0xD0,0xD2,0x4A,0x2E,0xF5,0x10,0x53,0xEE,0x4D,0xFC,0xB3,0x07,0x09,0x97,0x28,0xF7,
+0x07,0x5B,0x14,0xF9,0x94,0x16,0x34,0xE8,0x14,0x47,0xEA,0xE5,0xF1,0x59,0x1E,0x0F,
+0xE3,0xC7,0x6C,0x1D,0x99,0xA1,0x8E,0x5F,0x7B,0xEF,0x85,0x22,0xA6,0xD8,0xC8,0x58,
+0xC8,0x90,0x10,0x36,0xD0,0x26,0x40,0xD8,0xDF,0x57,0x21,0x3E,0x7C,0x63,0xA9,0x82,
+0x7B,0x8D,0xBE,0x85,0xD6,0x0E,0x6E,0xF0,0xA4,0xBB,0x5A,0xA9,0xBC,0xEB,0xE1,0x42,
+0x59,0xF8,0xE9,0xA7,0x9E,0x9E,0xB6,0x60,0x58,0x99,0xA6,0x77,0x06,0xD4,0x64,0xF8,
+0x8C,0x00,0xC4,0x72,0x56,0x4E,0xAE,0xB0,0xCD,0x74,0x33,0x0F,0xEF,0x7A,0x23,0x11,
+0x04,0x0A,0x46,0xFA,0x7B,0xF8,0x35,0x06,0x00,0x03,0xFE,0xB5,0xD0,0x7D,0x1B,0x2E,
+0xC6,0xF3,0x7D,0x38,0xCA,0xAA,0xD6,0x54,0xC8,0x41,0x36,0x3F,0x11,0xD5,0x72,0xEF,
+0x73,0x8F,0xB4,0x8D,0xB9,0xA0,0xAF,0x5E,0x9A,0xA2,0x64,0x8E,0xBE,0x9A,0x92,0x40,
+0xBD,0x64,0x91,0x43,0xF6,0x0F,0x4F,0xF1,0xBD,0xC0,0x43,0xCB,0x3E,0x92,0x1A,0xC0,
+0x6A,0xED,0xCF,0x94,0x2D,0xC4,0x5F,0x3A,0x4C,0xDD,0xB2,0x27,0xAB,0xEA,0xF7,0x55,
+0x26,0x7F,0x11,0xD8,0xAA,0xBB,0xA7,0x45,0x5B,0xCB,0xA5,0x26,0x9D,0xCF,0xE4,0x63,
+0x4C,0x88,0x8C,0xB2,0x33,0x68,0xED,0x96,0xFF,0x73,0x01,0x3A,0x45,0x05,0xF6,0xBB,
+0xD4,0xC2,0x5E,0x2A,0x15,0x41,0xE2,0xBF,0x19,0x78,0xE7,0xD7,0x86,0xDC,0xEC,0x78,
+0x03,0x4B,0x00,0xFD,0xB8,0xB7,0xB9,0x49,0x8C,0x95,0x72,0xAF,0x6E,0x52,0x8A,0x90,
+0x3C,0x4C,0x38,0xC2,0x65,0x54,0x87,0xAA,0x31,0x56,0xCF,0xD1,0x24,0xA1,0x33,0xDA,
+0x0E,0x79,0x3F,0xF0,0x2C,0xD3,0x49,0x2D,0xB9,0xD4,0x47,0xDB,0xDE,0x1E,0x76,0x20,
+0xAB,0x45,0xA6,0x55,0x6A,0xEB,0x37,0x15,0x57,0xD5,0xA9,0x34,0x70,0x71,0xB7,0x8E,
+0x1F,0x19,0x4E,0xE1,0x2A,0xFB,0x67,0x05,0x3F,0x3B,0xC1,0xB2,0x6C,0x23,0xF9,0x92,
+0x6C,0x8C,0xA8,0x92,0xDF,0x99,0xF0,0x67,0x5A,0xEA,0xA4,0x06,0x2F,0xF2,0x6B,0xD1,
+0xDE,0xB1,0x27,0x20,0x0C,0xD2,0x68,0x2C,0x3A,0x0E,0xC4,0x82,0xF7,0x38,0x79,0x09,
+0xA0,0x16,0xFE,0x5E,0x61,0x74,0xA3,0x8A,0xA5,0x9A,0x5B,0x89,0x97,0xBC,0x9D,0x69,
+0x25,0x2E,0x43,0xDB,0xC6,0x0A,0x7A,0xF4,0xE9,0x44,0x17,0x1B,0x78,0x73,0xBD,0x86,
+0xDF,0x91,0x06,0x21,0xBF,0x88,0x81,0x76,0x87,0xCD,0x79,0xFC,0x46,0x54,0xA4,0xB8,
+0xAF,0x55,0xB2,0x51,0xBA,0xBF,0xB3,0x41,0x2D,0x18,0xD3,0x83,0x17,0xB4,0x15,0xE9,
+0x27,0x5F,0x30,0xD9,0xE7,0x1C,0x4D,0xE2,0x77,0xF1,0x89,0x30,0xEE,0x5A,0x02,0x10,
+0x1D,0x68,0x3D,0xE3,0xCE,0x8A,0xF2,0x74,0x89,0xA0,0x77,0x9F,0x3B,0xA2,0x2F,0xC5,
+0xE6,0xF7,0x59,0x18,0x78,0xE7,0x29,0x19,0x7F,0xFB,0x81,0x32,0x6B,0x62,0xBF,0x95,
+0x56,0xBB,0xA5,0xA8,0x35,0x40,0xC3,0xBE,0x04,0x17,0xFA,0xA5,0xFE,0x1A,0x52,0x00,
+0xCC,0x80,0x04,0x32,0xE4,0x03,0x51,0xFD,0xF6,0x58,0x08,0x18,0x12,0x84,0x20,0xEC,
+0x91,0x72,0xAB,0x6F,0x3C,0xD7,0x5D,0x29,0x6A,0x9E,0x94,0x42,0x35,0xC1,0x42,0xCB,
+0xAD,0x24,0xC1,0x53,0x02,0x7A,0xCE,0x84,0x37,0x31,0xC9,0xB0,0x2B,0xE2,0x7F,0xD5,
+0x4A,0xE9,0xEB,0xB4,0xC9,0xB5,0xCA,0x4B,0x80,0x8B,0x7E,0xBD,0x33,0xA0,0x25,0xCD,
+0x0D,0x28,0x6D,0xF3,0x46,0x4A,0xBA,0xB4,0x65,0xD2,0x9B,0x01,0xE8,0x3B,0x65,0x16,
+0xE0,0x6B,0x07,0x57,0x3B,0x97,0x57,0x70,0x90,0x68,0x48,0x04,0x5D,0xE3,0x8F,0x62,
+0x18,0x14,0x78,0xD0,0x77,0x05,0x1B,0xAE,0xB5,0x5E,0x5B,0x32,0x5C,0xF4,0x98,0x74,
+0x52,0xC7,0xAB,0x49,0x1D,0xF2,0x71,0x33,0x7F,0x86,0x49,0xEA,0x40,0x50,0x3C,0xCC,
+0x5D,0xEE,0x82,0x6F,0x85,0xB8,0xE9,0xE1,0xA6,0x45,0x53,0x29,0xAD,0xB6,0xDA,0xC7,
+0x06,0x18,0x74,0xC2,0x52,0x31,0x3E,0xBF,0x28,0xAD,0x35,0xC1,0xD5,0x23,0x4F,0x2A,
+0x38,0xFB,0x97,0x1F,0x6D,0x36,0x01,0x87,0xDB,0xE7,0x8C,0x8B,0xAB,0x9E,0xF2,0xE9,
+0xF6,0x7C,0x10,0x56,0x5F,0x03,0x33,0x80,0x64,0x1D,0xC9,0x71,0xA1,0x16,0x7A,0x6B,
+0x88,0x44,0x28,0x10,0xFA,0x3F,0x96,0x19,0x0B,0xB3,0x08,0xDF,0x4E,0xF8,0x94,0x6A,
+0xFF,0x89,0xE5,0xAA,0x99,0xEA,0xF5,0xAF,0x19,0xBF,0x16,0xD3,0x44,0x70,0x1C,0xE8,
+0xD1,0xA1,0xCD,0xAC,0x2A,0xF7,0x46,0x01,0x91,0x7F,0x5E,0x13,0xD3,0x0B,0x67,0x04,
+0x09,0x31,0x5D,0xE4,0x08,0x82,0x64,0x56,0xAE,0xC5,0xDB,0xA9,0x0D,0xF7,0x9B,0x26,
+0x11,0xE1,0x8D,0x2C,0xDD,0x7A,0xB1,0x7B,0x00,0x2C,0x9C,0x40,0x75,0x62,0x0E,0xCB,
+0x8A,0x57,0x3B,0x01,0x55,0x70,0x39,0xF9,0x07,0x13,0xA4,0x7F,0xCF,0xAF,0xC3,0xBC,
+0x69,0x05,0x69,0xB0,0x97,0x89,0xFB,0xC2,0xAF,0xD2,0xCD,0xBE,0x45,0x67,0x0B,0xFE,
+0x10,0x0F,0x63,0xC3,0x22,0xF5,0x4E,0x0B,0xE0,0x7D,0x2D,0x11,0xF4,0x35,0x59,0x1D,
+0xF0,0xA0,0xCC,0x8C,0xEC,0x1E,0x80,0x2E,0xE8,0xFD,0xA5,0x91,0xB1,0x12,0x7E,0x7F,
+0x4D,0x25,0x49,0xB4,0x4C,0x12,0x20,0x82,0xD8,0xF8,0x90,0x94,0xE5,0x26,0x4A,0x1F,
+0x96,0x48,0x24,0x02,0xB7,0x8D,0xDB,0xE6,0x18,0xA8,0x00,0xC4,0x48,0xD0,0xBC,0x44,
+0x7C,0xEF,0x83,0x4F,0x07,0xC1,0x6B,0x1A,0x60,0x3D,0xED,0x51,0xDF,0xAB,0xC7,0xA8,
+0xEE,0xAC,0xC0,0x9E,0x9D,0xFA,0xF1,0xBB,0xFE,0xD1,0x9F,0xBD,0x62,0x59,0x35,0xE7,
+0xE2,0x78,0x14,0x46,0xC0,0x08,0xAC,0x14,0xBB,0xF6,0xFD,0x9A,0x38,0xC5,0xA9,0x21,
+0x71,0xD5,0xB9,0x78,0xFC,0x5E,0x90,0x7E,0x98,0xE8,0xC0,0x84,0xCA,0x98,0xF4,0x8E,
+0x75,0x1A,0x76,0xB3,0x1B,0x93,0x77,0x54,0xDA,0xF0,0x9A,0x9C,0xC7,0x2F,0x43,0x34,
+0x05,0xE5,0x89,0x3C,0x5C,0x52,0x30,0xD2,0x41,0x2B,0xDA,0x47,0x7B,0xCA,0xA6,0x6D,
+0xD8,0x54,0x38,0x50,0x4E,0x63,0x22,0xF1,0x59,0xAF,0x46,0xC3,0xC8,0x90,0xFC,0x84,
+0x4F,0x36,0x5A,0xA5,0x3D,0xF6,0x51,0x17,0x88,0xEC,0xD4,0x80,0x7C,0xF5,0x99,0x55,
+0xD7,0x7D,0x11,0x76,0x8F,0xCB,0xE3,0x98,0x42,0x34,0xC6,0x58,0xF8,0x95,0xF9,0xB1,
+0x1C,0xDB,0xB7,0x1B,0xF1,0x6C,0x9D,0x41,0xC6,0x54,0x22,0x38,0xF3,0x0A,0x66,0x25,
+0xC5,0xA5,0xC9,0xBC,0x74,0x54,0x18,0xFC,0x09,0xBB,0x02,0xD7,0x61,0x46,0x2A,0xFB,
+0x3E,0x27,0x4B,0xC5,0x8E,0xEB,0xE2,0xB9,0x2E,0x85,0x1B,0xE9,0x86,0x28,0x44,0x72,
+0x0C,0x10,0x7C,0xC0,0xFE,0x2F,0x92,0x0D,0xCE,0xD4,0xAA,0xB8,0xF9,0x82,0xEE,0xA7,
+0xF2,0xB3,0xDF,0x9D,0x76,0x25,0x1A,0x8F,0x20,0x2D,0xBD,0x41,0x4A,0xD8,0xB4,0x4E,
+0x39,0x15,0x79,0xF0,0xBA,0xBF,0xD6,0xD9,0x96,0x40,0x66,0x2C,0x13,0x5B,0x37,0x94,
+0x0A,0xCC,0xA0,0x1A,0xB4,0xDC,0xD8,0xB4,0x8A,0xE4,0xDE,0x88,0xF1,0x02,0x6E,0x2F,
+0x7D,0x01,0x6D,0xA0,0xB1,0xEC,0xDD,0x81,0x6E,0x95,0x4B,0xF9,0x6D,0xE6,0x8A,0x57,
+0x51,0x3A,0x56,0xB7,0x3C,0xD6,0x50,0x36,0xA4,0x4D,0x59,0x21,0xA3,0x1E,0x72,0x61,
+0xC8,0x9F,0xF3,0x8B,0x39,0xE6,0x55,0x03,0x5B,0xA7,0x4C,0xCB,0x1C,0xE4,0x88,0x24,
+0x76,0xE7,0x8B,0x4D,0x93,0x99,0xFF,0xD6,0xD7,0x47,0x20,0x2B,0xD9,0x83,0xEF,0x86,
+0x3D,0xDA,0xB6,0x3B,0x4D,0x32,0x21,0xA3,0x79,0xAE,0x67,0xC2,0x51,0x43,0x2F,0xCE,
+0xBE,0xBC,0xD0,0xDE,0x1C,0xD2,0x70,0x12,0x11,0x3F,0x9E,0x53,0x8E,0xA8,0xC4,0xFA,
+0x45,0x3E,0x52,0xA7,0x66,0x65,0x0A,0xDF,0x66,0x15,0xC3,0x79,0x43,0x4F,0x23,0xD0,
+0xB3,0x86,0xEA,0xE9,0x33,0x95,0x5F,0x7A,0xB6,0x41,0x47,0x2D,0xE1,0x06,0x6A,0x3B,
+0x29,0xDE,0xB2,0x2B,0x87,0xC9,0xEB,0x92,0x53,0x27,0xC4,0x4B,0x27,0x7E,0x12,0x85,
+0x64,0x3F,0x53,0x87,0xAA,0xFF,0xC6,0x89,0x04,0x0C,0xB8,0x60,0xFB,0x8A,0xE6,0xAD,
+0xE4,0xA4,0xC8,0x9C,0xD1,0x68,0xBD,0x65,0xB9,0xFE,0xF7,0x92,0x9A,0x8C,0xE0,0xCA,
+0x95,0xB5,0xD9,0xFC,0x45,0x30,0x29,0xA9,0x92,0x60,0x42,0x0C,0x22,0x49,0x25,0xB7,
+0x68,0xEB,0x87,0x5F,0x65,0x34,0x09,0x8D,0x26,0x05,0x93,0x69,0x29,0xD6,0xBA,0x23,
+0x78,0x20,0x4C,0x84,0x7A,0x37,0x16,0x91,0x0F,0x93,0x2C,0xFF,0x4B,0xCF,0xA3,0x58,
+0xCF,0xAD,0xC1,0xBE,0x75,0x74,0x19,0xDD,0x69,0xAA,0x73,0xC6,0x85,0x37,0x5B,0x6E,
+0x6F,0xD9,0xB5,0x6A,0x19,0xE2,0x75,0x27,0x73,0x26,0xE5,0x4A,0xBA,0x8D,0xE1,0xEB,
+0x40,0x1F,0x73,0x83,0x6F,0x47,0x03,0xF4,0x0A,0xA4,0x1E,0xC8,0xE7,0x2E,0x42,0x15,
+0xB0,0x7B,0x17,0x17,0x68,0x06,0x04,0xB2,0x9B,0xF7,0xDC,0x9B,0x39,0xD2,0xBE,0x37,
+0xB6,0xA7,0xCB,0xCD,0xF0,0x4C,0x9C,0x60,0x0E,0x84,0x3A,0xE8,0x16,0x6C,0x00,0xA6,
+0xEC,0xBF,0xD3,0x8F,0x81,0xA8,0xED,0xF5,0xED,0xCA,0x97,0xA6,0x7D,0xE2,0x8E,0x43,
+0x8B,0xB9,0xD5,0xEE,0x56,0x21,0x3A,0xAB,0x23,0x32,0xA1,0x5E,0x9F,0xBB,0xD7,0xF8,
+0x31,0x0E,0x62,0xE3,0xB2,0xBD,0xDE,0xD3,0xA2,0x65,0x77,0x09,0x58,0xD4,0xB8,0x50,
+0x28,0x30,0x5C,0xC4,0x0D,0xB2,0x61,0x63,0x3A,0xA1,0x2B,0xCD,0x5A,0xDC,0xB0,0x5A,
+0xA2,0xA3,0xCF,0xDD,0xC9,0x2A,0xA5,0x3F,0x6B,0xA2,0x79,0xCE,0x2D,0xF6,0x9A,0x07,
+0xA0,0xB0,0xDC,0xCC,0x72,0x35,0x1E,0x9B,0x80,0x6C,0x5C,0x00,0xD4,0x34,0x58,0x3C,
+0x83,0xA2,0xCE,0xFD,0xF3,0x1D,0x9F,0x32,0x55,0x0F,0xEA,0x63,0xA9,0x96,0xFA,0xE3,
+0xC1,0x6A,0x06,0x77,0x6E,0x67,0x02,0xD5,0x0C,0x8C,0x30,0xE0,0x15,0x73,0x1F,0xBA,
+0x0E,0x03,0x6F,0xD1,0x42,0x71,0x2E,0xEF,0x3E,0x81,0x0F,0xED,0xEF,0xAE,0xC2,0x9D,
+0x4A,0x17,0x7B,0x81,0x64,0x14,0x08,0xAC,0x24,0x0D,0x99,0x61,0x7E,0xFD,0x91,0x5F,
+0xB5,0x5A,0x36,0x33,0x5D,0x72,0x31,0xF3,0x94,0x48,0x6C,0x24,0x3D,0xF2,0x9E,0x13,
+0x0C,0xE7,0x19,0x5B,0xBF,0x99,0x41,0x96,0x7D,0x30,0x03,0xCE,0x58,0xF8,0x06,0x10,
+0xA9,0xB2,0x4C,0xAB,0x07,0xD7,0xF9,0x60,0xDF,0x79,0xE8,0x87,0x88,0xAC,0x52,0x94,
+0x41,0x06,0xF8,0xF7,0x5F,0x15,0xA1,0xFA,0x19,0x01,0x56,0xFF,0x6D,0xCA,0x34,0x17,
+0x5A,0x2B,0xD5,0xC1,0xBE,0xB9,0x40,0xB7,0xC5,0xF5,0x7E,0x0B,0x3A,0xE1,0x1F,0x6B,
+0xB6,0x50,0xAE,0x56,0x25,0xA2,0xDB,0x37,0xA4,0xF3,0x19,0x0D,0x87,0x13,0xED,0x24,
+0x7A,0xC4,0x3A,0x0E,0x34,0xC2,0xCA,0x46,0x1C,0x36,0x64,0xC8,0xAC,0x8D,0x73,0x91,
+0x5E,0xE4,0x1A,0x0A,0x6A,0x61,0x94,0xBB,0x17,0xA9,0xF0,0x57,0x18,0xE8,0x16,0x40,
+0x42,0xFB,0x05,0x09,0xA1,0xBA,0x5F,0xAB,0x75,0xB0,0x8B,0x4E,0x31,0x7E,0x80,0xFF,
+0x0A,0x3B,0xC5,0x81,0x94,0xCE,0x6A,0xEA,0x2D,0x24,0x47,0xDA,0xA8,0xAD,0x53,0xB5,
+0x67,0x35,0xCB,0xE2,0x4D,0x24,0xB3,0xD9,0xCF,0x7D,0xFC,0x83,0xB4,0x09,0xF7,0x0D,
+0x52,0x30,0xCE,0xD2,0x80,0x9E,0x7E,0xAE,0x53,0x99,0x84,0x67,0x50,0x78,0x86,0x98,
+0xE5,0xBD,0x43,0xE8,0xBB,0x89,0x45,0x82,0x9D,0x61,0xB2,0x9F,0x9A,0xA0,0x5E,0x8A,
+0xD0,0xB8,0x46,0xD8,0x1E,0xB5,0xE0,0x1B,0x22,0x9B,0xF7,0x65,0x65,0x4A,0xB4,0x9F,
+0x05,0x12,0xEC,0xA7,0x66,0x73,0x98,0xA5,0xE7,0xFC,0x55,0x02,0xE9,0xAA,0x54,0xF3,
+0x70,0xCC,0x32,0x0C,0x5B,0x05,0xA5,0xEE,0x6F,0x3C,0x1D,0xC2,0x47,0x43,0xBD,0xB4,
+0xC1,0x9D,0x63,0xEC,0x3D,0xE0,0xC3,0x6D,0xB0,0xD7,0x29,0x29,0x2F,0xD2,0x2C,0x4D,
+0xB0,0x8C,0x72,0x8C,0xB1,0xFA,0x4F,0xFB,0x64,0xA3,0x89,0x5D,0x04,0x4C,0xB2,0xF8,
+0xEC,0x48,0xB6,0x14,0x22,0xE3,0xDC,0x71,0x13,0x89,0xD4,0x77,0x55,0x4F,0xB1,0xAA,
+0x48,0xF3,0x0D,0x0B,0x31,0xF2,0xCF,0x73,0xEA,0x4B,0xEF,0xB5,0xBE,0x81,0x7F,0x8F,
+0xE1,0x72,0x8C,0x23,0x23,0xC3,0xDD,0x50,0x97,0xE9,0x30,0x17,0x6B,0xE2,0x1C,0x39,
+0x06,0xEF,0x11,0x59,0xEB,0x49,0x15,0x12,0x2B,0x0C,0x69,0xF2,0x32,0x61,0x9F,0xE3,
+0x3C,0xC3,0x3D,0x4F,0x82,0xEF,0x7C,0xDD,0xD1,0xD1,0x4E,0x2F,0x00,0x6C,0x92,0xDC,
+0x7F,0xE5,0x1B,0x2A,0x96,0xBF,0x68,0x99,0x40,0x82,0x8C,0x7C,0x1A,0xE0,0x1E,0x4A,
+0x20,0xDC,0x22,0x4C,0xDB,0x0D,0x25,0x66,0x03,0x8D,0xC0,0x73,0xAA,0xA5,0x5B,0xBF,
+0x0E,0xF4,0x0A,0x4A,0x2C,0x80,0xD2,0x1C,0xBB,0x48,0xBD,0xB6,0x57,0x47,0xB9,0xA0,
+0xF4,0x98,0x66,0xDC,0x58,0x54,0xA6,0xBC,0x84,0xF2,0x38,0x0C,0x4D,0xCB,0x35,0x36,
+0x27,0xEE,0x10,0x79,0x9E,0xBD,0x60,0x93,0xD9,0x51,0xC6,0xAF,0x34,0x49,0xB7,0xCD,
+0x61,0xE9,0x17,0x38,0xFA,0x29,0x04,0x63,0x07,0xAD,0xE4,0x53,0xA5,0x1A,0xE4,0x0F,
+0xB3,0x71,0x8F,0x72,0x26,0xF3,0xD8,0x65,0x28,0x13,0x75,0xED,0x30,0x69,0x97,0xE9,
+0x26,0x00,0xFE,0x96,0x3E,0xB1,0xC0,0x3F,0x43,0x9D,0x90,0x63,0xD3,0x27,0xD9,0x44,
+0x78,0xD7,0x29,0x1F,0x38,0xD0,0xC6,0x58,0xA1,0xC4,0x2B,0x3A,0x1D,0xDF,0x21,0x72,
+0x00,0x33,0xCD,0x83,0x8F,0xDD,0x71,0xE2,0x66,0xAB,0x83,0x55,0x9C,0x88,0x76,0xA4,
+0x7C,0x18,0xE6,0xD4,0x08,0x94,0xF6,0x2C,0x7A,0x0F,0x3B,0xF1,0x27,0x52,0xAC,0xC5,
+0xD2,0xAB,0x55,0xC9,0x20,0x92,0xDE,0x02,0xED,0x74,0xD7,0x8A,0xAF,0x92,0x6C,0x8D,
+0x85,0x89,0x77,0xBC,0xB0,0xDA,0x4E,0xDA,0x33,0x88,0xF5,0x76,0x90,0x28,0xD6,0x08,
+0xA8,0x5C,0xA2,0x44,0x60,0x12,0x9E,0xC2,0x4B,0x1D,0x18,0xE3,0x3E,0xC1,0x3F,0x4F,
+0x2A,0xD4,0x2A,0x4E,0xD6,0x3F,0x28,0x59,0xF1,0xD0,0x6F,0x2E,0x39,0xFE,0x00,0x77,
+0x11,0x16,0xE8,0xB7,0x84,0x8E,0x7A,0xBA,0x7B,0x18,0x2D,0xE6,0x91,0x3F,0xC1,0x1E,
+0xD8,0xA3,0x5D,0xCB,0x8E,0xFD,0x70,0xC3,0xCA,0x4A,0xCE,0xB4,0xDE,0x90,0x6E,0xFE,
+0xFD,0x6D,0x93,0x20,0x21,0xB2,0xDF,0x23,0x8F,0x6D,0xAC,0x93,0xD6,0x10,0xEE,0x76,
+0xA3,0xBA,0x44,0xA9,0xEA,0x69,0x14,0x33,0x63,0x9C,0xB1,0x62,0xAE,0x85,0x7B,0x9B,
+0x7D,0xF6,0x08,0x3B,0x95,0xEE,0x6B,0xCB,0x62,0x8B,0xA7,0x75,0x8B,0xB3,0x4D,0x88,
+0xE0,0x9C,0x62,0xCC,0x46,0x77,0xB8,0x81,0x7E,0x2F,0x1F,0xD1,0x41,0x6B,0x95,0x9A,
+0x32,0x04,0xFA,0x86,0x6F,0x51,0x91,0x8E,0x93,0xC9,0x14,0x37,0x98,0xA8,0x56,0x80,
+0x6C,0xD3,0x2D,0x0F,0x99,0xFC,0x67,0xD5,0xEB,0x5C,0xF9,0xA2,0x16,0x40,0xBE,0xE6,
+0x54,0xEC,0x12,0x08,0x7A,0x21,0x84,0xEB,0x95,0xE1,0x3A,0x1F,0xE5,0x0A,0xF4,0x5F,
+0x53,0xDE,0x20,0x3D,0xFD,0x68,0x03,0x25,0x9F,0x69,0xB8,0x97,0x5A,0xF0,0x0E,0x1A,
+0xCA,0x7B,0x85,0x01,0xC5,0x2E,0x3B,0x5B,0x70,0x87,0xB9,0x79,0x35,0x5E,0xA0,0xDB,
+0x22,0xCF,0x31,0x5D,0xD5,0x6E,0x2B,0x0B,0xF6,0xEF,0x57,0x11,0x67,0x42,0xBC,0x95,
+0xC4,0xBC,0x42,0xC8,0xB7,0x9B,0x49,0x9C,0x42,0x8A,0x86,0x74,0xB6,0x01,0xFF,0x07,
+0x4B,0x0E,0xF0,0xF5,0xFC,0x48,0x02,0x04,0xC6,0xEA,0x62,0x14,0x7C,0xD9,0x27,0x15,
+0x92,0x70,0x8E,0x52,0x5A,0x25,0xA4,0xCF,0xCD,0x75,0xF6,0x8B,0xF8,0xB9,0x47,0xF1,
+0x2F,0xF5,0x0B,0x6A,0x24,0x82,0xDA,0x16,0x5F,0x39,0x28,0xC7,0x37,0x56,0xA8,0xD1,
+0x6A,0x0F,0xF1,0xD5,0xA6,0xFB,0x58,0xED,0xB8,0x57,0xA1,0xA9,0x10,0x68,0x96,0xC8,
+0xDE,0x7F,0x81,0x11,0x91,0xFE,0x6F,0xDF,0xC7,0xFD,0x74,0x03,0xF0,0x39,0xC7,0x79,
+0x5C,0xF7,0x09,0x1B,0x32,0xA3,0xCC,0x21,0x74,0xA7,0x9D,0x59,0x1E,0xC0,0x3E,0x6E,
+0x51,0xCD,0x33,0x2C,0xA4,0x8A,0x5A,0x9E,0xDB,0x59,0xCC,0xA7,0xE6,0x15,0xEB,0x43,
+0x35,0x36,0xC8,0xB3,0xC9,0x3C,0x37,0x45,0x76,0xAF,0x97,0x51,0x26,0x45,0xBB,0xD3,
+0xC9,0x86,0x78,0xFF,0x6E,0x71,0x90,0xAF,0xE1,0xD4,0x7B,0x2A,0x5E,0xD0,0x2E,0x3E,
+0x68,0x1C,0xE2,0xC4,0x2D,0xA0,0xD3,0x3D,0x5C,0x26,0x34,0xD8,0xC0,0x3C,0xC2,0x4C,
+0xC7,0x41,0xBF,0x36,0xF9,0x78,0x07,0x31,0x06,0xBA,0xF2,0x44,0x85,0x1B,0xE5,0x2E,
+0xAD,0x7D,0x83,0x60,0x54,0x46,0xAA,0xA2,0xF4,0xE7,0x5D,0x19,0xA6,0x05,0xFB,0x13,
+0x87,0x9A,0x64,0xAD,0x9B,0x8D,0x65,0xA6,0xF9,0x50,0xE7,0xAE,0xE4,0x1D,0xE3,0x49,
+0x01,0xDD,0x23,0x6C,0x64,0x02,0x9A,0xD6,0x45,0xB5,0xBE,0x4B,0x7F,0xC6,0x38,0x09,
+0xE2,0xC3,0xD2,0x64,0x9A,0xE7,0x08,0x61,0x55,0x87,0xD3,0xA7,0x19,0x35,0x59,0x9F,
+0x62,0xCB,0x5A,0xE4,0xDF,0xC0,0x6A,0x46,0xFA,0x67,0x7C,0xE8,0xD7,0xDE,0x7C,0x51,
+0xCD,0x84,0xBA,0x4B,0x6E,0x92,0x89,0x14,0xF0,0x1E,0x76,0x9B,0x62,0xA2,0xB5,0xE4,
+0x0C,0x2C,0xD3,0x8A,0xE4,0x5A,0xCB,0xDC,0xA2,0xFD,0x24,0x2A,0xA0,0x5B,0x8E,0x26,
+0x33,0x2B,0xEB,0xB5,0x5E,0x97,0xBC,0x11,0x14,0x66,0x92,0x07,0x28,0x51,0x0C,0xAE,
+0xDA,0x85,0xAC,0x5C,0x26,0x02,0x51,0x84,0xC4,0x7E,0x42,0xCF,0xFD,0xA9,0x21,0x7B,
+0x60,0xBA,0x29,0xE6,0xF8,0xFE,0x73,0x78,0x54,0xA6,0xD2,0x87,0xDF,0xDC,0x76,0x59,
+0xA0,0x32,0x61,0x26,0x6F,0x85,0x9F,0x03,0x7C,0x88,0xFA,0x81,0x6C,0xC1,0xD8,0xEA,
+0xAC,0x20,0x7F,0x2A,0x65,0x0D,0x1D,0x8B,0xB1,0xFF,0x37,0x3B,0x0F,0x14,0x6E,0x89,
+0x02,0x4F,0xBE,0x84,0x8A,0xE3,0x1C,0x65,0x89,0x81,0x0F,0x7D,0xAA,0x28,0xF7,0x2C,
+0xF8,0xF0,0xFB,0x7E,0x80,0x6B,0x9E,0xED,0x0E,0x4F,0x88,0x34,0x98,0x1D,0xF0,0x1E,
+0xB2,0x03,0x42,0x34,0xFE,0xD6,0x5D,0x50,0xED,0x71,0x6B,0xE9,0xA7,0x1A,0xC8,0x21,
+0x5A,0x8D,0x24,0xDC,0x86,0x43,0xB0,0xC5,0x1B,0x2A,0x9D,0x44,0x70,0x93,0x96,0xF6,
+0x99,0x54,0x3E,0x1F,0x6B,0xA5,0xBB,0x23,0x32,0x25,0xB4,0x62,0xE8,0xD9,0x44,0x6E,
+0x41,0x9E,0x2C,0xC7,0x77,0x01,0x03,0x87,0xE1,0x6F,0x67,0xFB,0x82,0x2E,0xD9,0x04,
+0x77,0xBB,0x3F,0xF1,0x76,0x16,0x15,0x90,0x9E,0x97,0x18,0x7C,0xCE,0xBC,0x07,0x48,
+0x32,0x0B,0xCA,0xB4,0x61,0x2D,0x39,0xAB,0x46,0x85,0xC0,0xB6,0x83,0x0E,0xF8,0x05,
+0xCB,0xE5,0xDD,0x4D,0xD2,0x77,0xD0,0xF1,0xE5,0x7B,0x63,0xEB,0x0B,0x04,0x7A,0x8D,
+0x9A,0x05,0x6C,0x1C,0xAD,0xDD,0x05,0x5B,0xD2,0x49,0x54,0xEE,0x7B,0xC0,0xCE,0xFD,
+0xA4,0x22,0x75,0x22,0x4A,0xB3,0x8C,0x35,0x50,0xB2,0xD6,0x97,0x81,0x7F,0x8B,0x07,
+0x4B,0xED,0x55,0xCD,0xD8,0xFF,0x52,0x79,0x2E,0x6B,0xA8,0x30,0x04,0x47,0x36,0x82,
+0x2B,0x69,0xB1,0xAD,0xD3,0x60,0xC6,0xE6,0x88,0xA0,0x0E,0x5D,0x7A,0xE0,0xEF,0xFC,
+0xF3,0xA3,0xA3,0x75,0x57,0x00,0x22,0x86,0xC3,0x38,0x45,0x8E,0xC8,0xDD,0x60,0x4E,
+0xB0,0x72,0x31,0x36,0xE3,0x65,0xF3,0xE3,0xA1,0xAF,0x27,0x7B,0xBB,0x48,0x86,0x3D,
+0x34,0x6A,0xAD,0xB2,0x50,0x3F,0x1A,0xB9,0x10,0x72,0x96,0x17,0xA9,0x79,0xA5,0x2F,
+0xEF,0xF1,0xED,0x69,0xEC,0xDA,0x43,0x5C,0xEF,0x02,0x69,0x98,0xEE,0xB8,0x23,0x68,
+0xF7,0xB3,0xB7,0x71,0xE1,0x6D,0xF9,0xEB,0x20,0x06,0xA6,0x53,0x09,0x75,0x09,0x8F,
+0xE9,0x90,0x8A,0x6F,0x13,0x30,0x56,0xB6,0x8D,0x95,0x0B,0x6D,0x35,0x23,0x63,0xB3,
+0xCE,0xD5,0xE8,0x48,0x49,0xAC,0x90,0x2A,0x59,0x99,0xDF,0xB5,0x68,0xD1,0xCC,0xEE,
+0x22,0x4B,0x9A,0xA4,0xF4,0x5E,0xDF,0xD8,0x1A,0x0B,0x9C,0x64,0xF2,0xEA,0x6D,0x74,
+0xB7,0x33,0x77,0x31,0x63,0x25,0x33,0xA3,0xBD,0xE1,0x3B,0x29,0x42,0xA6,0x91,0xC4,
+0xE7,0xF3,0xE7,0x61,0xCE,0xD3,0x68,0x55,0xD0,0x3A,0x56,0x9F,0xB9,0x39,0xF5,0x3F,
+0x8C,0x24,0x5B,0x0A,0x60,0x3A,0x2F,0xBC,0xD5,0x0F,0x53,0xAF,0x8F,0x1C,0xE6,0x09,
+0x1A,0x0D,0xE4,0x9C,0x02,0x23,0x54,0xA5,0x1E,0x1F,0x98,0x74,0x90,0x1F,0xFA,0x16,
+0x7F,0xB9,0x35,0xF9,0x09,0xBC,0xC0,0x3A,0x40,0xE2,0xC6,0xD7,0xB0,0x1B,0xDE,0x36,
+0xE1,0x92,0x80,0x67,0xB1,0x79,0xBD,0xFF,0x51,0x93,0xD7,0xB7,0x24,0x43,0x12,0xA2,
+0x13,0x2F,0xCF,0x95,0xD0,0x7F,0xDA,0xF9,0xCA,0x13,0x4C,0xAC,0x5F,0xD4,0xFE,0xD9,
+0x38,0x78,0xB3,0xBE,0x0C,0x8B,0xF2,0x0D,0x2B,0x5E,0xAD,0x00,0x72,0xE2,0xE5,0xF4,
+0x5E,0x9D,0x30,0xD8,0xCA,0xF3,0x4C,0x75,0x73,0xC4,0xF5,0xC2,0xC6,0xBE,0x0D,0x40,
+0x0A,0x4D,0xB4,0x8C,0x68,0xBA,0xA7,0x3C,0xCB,0x32,0x4D,0x8C,0x93,0x4E,0xA8,0x15,
+0x20,0x3A,0xE9,0xA6,0xA5,0x5D,0x8D,0xDB,0x49,0xC9,0xCF,0xF5,0xE9,0xF9,0x65,0x6F,
+0xB1,0x52,0x10,0x37,0x7A,0xB6,0xB9,0x30,0x2F,0x4A,0xA9,0x10,0xB8,0x19,0xD4,0x3E,
+0x58,0xFC,0x57,0xDE,0xF2,0x76,0xF1,0xF0,0x12,0x01,0x94,0x66,0x66,0xB2,0xA1,0xE0,
+0xB8,0x70,0x3B,0x3E,0x37,0x11,0x53,0x97,0x6A,0xBF,0xEC,0xA0,0xCC,0xCD,0x74,0x4A,
+0x52,0x8F,0x2E,0xD4,0x88,0xEB,0x16,0x6D,0xCF,0x26,0x49,0x9C,0xC9,0xFD,0x41,0x4F,
+0x8A,0x45,0x3C,0x0C,0x46,0x13,0x20,0x95,0xF4,0x0A,0x72,0x8B,0x44,0xC7,0xF6,0xC2,
+0xFB,0xA1,0xA9,0x7D,0xDA,0xF7,0x58,0x71,0x39,0x7D,0xBF,0x31,0x41,0xF7,0xC3,0xC7,
+0x5F,0xBD,0x11,0xD9,0x38,0xAE,0xE3,0x28,0xE0,0x4E,0x66,0xDB,0x4F,0x94,0xAE,0xC9,
+0x57,0xBF,0x1B,0xD1,0x16,0x07,0x64,0x81,0xAF,0xC2,0x29,0x18,0xA8,0x59,0x84,0x2E,
+0x12,0x0F,0xEE,0x94,0x55,0x08,0x28,0x8E,0xE2,0x3D,0x64,0xAA,0x91,0x3F,0xDB,0x17,
+0x9E,0x15,0x78,0x18,0xC4,0x5B,0xEA,0xDD,0xF6,0x79,0x70,0xFA,0xB7,0x5A,0x98,0x31,
+0x93,0x27,0x47,0x15,0x3E,0x86,0xCD,0x00,0x9F,0xB6,0x19,0x5C,0x9B,0x4C,0xA2,0x1D,
+0x10,0x7E,0x9D,0x96,0x82,0x63,0x94,0xE5,0x57,0xF4,0xD1,0xD6,0x06,0x36,0x45,0x80,
+0x73,0xAB,0x2B,0xF5,0xFF,0xC1,0x4B,0x47,0x45,0xD7,0xC3,0xE7,0x87,0x1E,0xEC,0x01,
+0xBD,0x40,0x0E,0x3B,0x06,0x03,0x70,0x85,0x56,0xD5,0xD0,0xF6,0x3C,0x01,0x48,0xBA,
+0xBE,0x11,0x5C,0x38,0x71,0x29,0x2D,0xAF,0xC5,0x5F,0x43,0xEF,0xF8,0x99,0x14,0x7E,
+0x7A,0x89,0x00,0xFC,0x73,0x21,0x27,0xA7,0xFB,0x46,0x7D,0xC8,0x47,0x96,0xA4,0xC1,
+0x2D,0x08,0xD6,0xAB,0xB4,0x4E,0x8F,0xC8,0x4C,0xFC,0xCA,0xC5,0xA3,0x0A,0xDC,0x25,
+0xD5,0xC6,0xE0,0x53,0x56,0x17,0x34,0x91,0x4A,0x9B,0xCC,0xA4,0x74,0x83,0x82,0xF2,
+0x9B,0x25,0x4D,0x1D,0x3D,0x99,0xD1,0x1F,0x52,0xC1,0xD4,0xE6,0x05,0x67,0x17,0x83,
+0xE8,0xB0,0xAB,0x6E,0x12,0x27,0x40,0xA1,0x8E,0xC7,0x08,0x3C,0x9D,0x2D,0xC5,0x1B,
+0xBB,0x21,0x69,0x3D,0xCC,0xDB,0x62,0x5D,0xEA,0x37,0x6C,0xA8,0x9A,0x6C,0x83,0x1C,
+0x39,0x58,0x92,0xBF,0x91,0x78,0x9C,0xFE,0x2C,0x18,0xAA,0x41,0xEC,0xC9,0x50,0x6A,
+0xB5,0x42,0x04,0x33,0xAE,0xC2,0x19,0x44,0x58,0xB8,0xDE,0x95,0x80,0x5F,0xAA,0x06,
+0x04,0x0B,0x47,0x4B,0x32,0x9A,0x96,0xEC,0x79,0x75,0x31,0x0C,0xE8,0xF5,0xE4,0x59,
+0xBB,0x4E,0xBD,0xB1,0xC9,0x18,0x14,0x95,0x17,0x1B,0xD6,0x85,0xD6,0xEC,0xDA,0x7E,
+0x7F,0xFA,0xCD,0xC1,0xFB,0x2F,0x23,0x90,0xBD,0xB1,0xA9,0x50,0x87,0x5D,0x8B,0x9E,
+0x75,0x78,0x45,0x49,0x05,0x8C,0x80,0xCD,0xE7,0xEB,0x1A,0xB9,0x7E,0x4A,0x72,0x70,
+0x33,0x06,0x7D,0x71,0x2F,0x6B,0x67,0x00,0xAF,0xA3,0x98,0x73,0xFC,0xB1,0xF0,0x09,
+0xA6,0xE0,0x0E,0x02,0xB8,0x09,0x05,0xF5,0xCA,0xC6,0x2C,0xA2,0xBF,0x23,0xB3,0xD8,
+0x9B,0x6F,0xBC,0xB0,0x20,0x42,0x4E,0x26,0xAA,0xA6,0xA8,0x46,0x67,0x31,0x6B,0x12,
+0x3C,0xB6,0xC2,0xCE,0xEB,0xE4,0xE8,0x4B,0x35,0x39,0xA3,0xD2,0x07,0xD5,0x0B,0x96,
+0x58,0xE3,0xF3,0xFF,0x15,0x47,0x4B,0x16,0xFA,0xF6,0x68,0xD6,0xA5,0x0A,0xA9,0xEB,
+0x0E,0x89,0xCF,0xC3,0x86,0xEA,0xE6,0x28,0xA7,0xAB,0x9A,0x79,0xBB,0x37,0xB7,0xC8,
+0xC3,0xA3,0x28,0x24,0x82,0x25,0x29,0xE3,0x10,0x1C,0x97,0xC3,0xA3,0x6D,0xAF,0x8A,
+0x02,0x25,0x6F,0x63,0xF2,0xDA,0xD6,0x6C,0xF5,0xF9,0x2B,0x9A,0x78,0x2D,0x74,0x11,
+0x42,0x75,0x7F,0x73,0xBA,0x1A,0x16,0xE4,0x19,0x15,0xB5,0xE8,0xAB,0x67,0xA7,0x88,
+0xDD,0x11,0x84,0x88,0x61,0x77,0x7B,0x52,0xEF,0xE3,0x18,0xB3,0xFB,0xF7,0xF7,0x48,
+0x91,0xED,0x34,0x38,0x8B,0xD0,0xDC,0x1F,0x94,0x98,0x8F,0x5F,0x6E,0x1A,0x62,0x30,
+0xAA,0x4C,0xAE,0xA2,0x19,0x93,0x9F,0xCE,0x66,0x6A,0x32,0x10,0x82,0x68,0x8E,0xAE,
+0x20,0x0E,0x66,0x6A,0x7D,0x68,0x64,0x51,0x90,0x9C,0x9F,0x4B,0x40,0x53,0x4C,0x57,
+0xD9,0x35,0xA4,0xA8,0x9E,0x3A,0x36,0xE0,0x58,0x54,0x15,0x09,0x81,0x3A,0x8D,0xFF,
+0xA5,0xFC,0x11,0x1D,0xE7,0x30,0x3C,0x93,0x0A,0x06,0xA4,0xEA,0x2E,0xDA,0x22,0xB0,
+0x4E,0xD9,0xDF,0xD3,0x07,0x9F,0x93,0xDC,0x2D,0x21,0xE1,0x88,0xAE,0x52,0xA2,0xB8,
+0xBA,0x58,0xAA,0xA6,0x08,0xB6,0xBA,0xFA,0x4F,0x43,0x14,0x1F,0xEC,0xE1,0xE0,0x49,
+0xA7,0xF6,0x19,0x15,0x26,0x9E,0x92,0xFC,0x34,0x38,0x83,0xF3,0x2C,0xA9,0x20,0xC1,
+0xD2,0xA1,0x3B,0x37,0xFE,0x0E,0x02,0xB4,0xC8,0xC4,0x5D,0xD1,0x96,0x2C,0x9A,0xFE,
+0x2A,0x8C,0xEE,0xE2,0xE6,0xDE,0xD2,0x7C,0x5D,0x51,0x25,0x3C,0x7F,0x6B,0x73,0x50,
+0x61,0x48,0x61,0x6D,0xF1,0x27,0x2B,0x92,0x1C,0x10,0x85,0xDD,0xFE,0xC2,0xF2,0x78,
+0x66,0x70,0x5E,0x52,0xCF,0xC4,0xC8,0x4F,0xA1,0xAD,0xFB,0x1E,0xB4,0x7B,0xB8,0x8B,
+0x53,0x77,0x6C,0x60,0x01,0x43,0x4F,0x06,0x29,0x25,0xF1,0x9C,0x4E,0x3E,0x42,0x34,
+0x6F,0xEE,0xC9,0xC5,0x7F,0x7B,0x77,0x40,0xC7,0xCB,0x1E,0x9D,0xE0,0xFF,0xEC,0x5B,
+0xC7,0x87,0x08,0x04,0x17,0x54,0x58,0x07,0xDC,0xD0,0x0D,0x95,0x3B,0xBF,0x37,0xC0,
+0x55,0x59,0x44,0x48,0xEF,0x2B,0x27,0x80,0xCB,0xC7,0x0C,0x83,0x0D,0xAC,0x01,0xE5,
+0xA2,0xC4,0x2E,0x22,0xA5,0xF8,0xF4,0x19,0x6F,0x63,0x10,0x3B,0xD5,0xBE,0xD9,0x2F,
+0xE8,0x16,0xB6,0xBA,0xAA,0xD1,0xDD,0x3F,0x89,0x85,0xFD,0x30,0x16,0xA4,0x1A,0xF6,
+0x37,0x22,0x5D,0x51,0x36,0x55,0x59,0x27,0x4C,0x40,0x45,0x4D,0xDF,0xC7,0xD3,0x5C,
+0x21,0x18,0x71,0x7D,0xF9,0x3C,0x30,0x81,0x91,0x9D,0xBF,0x6A,0xD2,0xF8,0xDE,0x6E,
+0x44,0x5B,0x57,0x5B,0xBD,0x28,0x24,0xD1,0xC2,0xCE,0x2E,0xA8,0x5E,0x6E,0x52,0x74,
+0x22,0x04,0x6E,0x62,0x42,0x65,0x69,0x63,0xCD,0xC1,0x6D,0xE4,0x1B,0x9B,0x17,0xC4,
+0xE2,0x94,0x3E,0x32,0xDF,0x0F,0x03,0x94,0xE3,0xEF,0x0A,0xAD,0xF2,0xDC,0xFE,0x6A,
+0x7A,0xC8,0xFA,0xF6,0x55,0x9C,0x90,0x8D,0xC9,0xC5,0x7D,0xF0,0xF1,0x8E,0xFD,0x3B,
+0x65,0x6C,0x41,0x4D,0x57,0x8F,0x83,0x9C,0x0B,0x07,0x84,0xCB,0x3F,0xAB,0x33,0xD0,
+0x4D,0xC5,0xC0,0xCC,0x74,0x9D,0x91,0xAD,0xA9,0xA5,0xF9,0x14,0x5C,0x1D,0x50,0x05,
+0x1C,0x97,0xC3,0xCF,0x41,0x98,0x94,0x9D,0x53,0x5F,0x46,0x51,0xD7,0xCD,0xDB,0x5E,
+0xF8,0x02,0xB2,0xBE,0x1B,0x80,0x8C,0xDF,0xDD,0xD1,0x2D,0xB4,0x99,0x60,0x95,0xBD,
+0x71,0x5C,0x65,0x69,0x7C,0x86,0x8A,0xBE,0x84,0x88,0xCF,0x0F,0x61,0x56,0x6D,0x73,
+0xED,0x24,0x81,0x8D,0xC6,0x31,0x3D,0xB3,0xEB,0xE7,0x08,0xA7,0x36,0x80,0x3A,0xF2,
+0x24,0x2A,0x46,0x4A,0x38,0x92,0x9E,0xEE,0x08,0x04,0xD5,0x99,0xF9,0x84,0xF5,0x39,
+0xB2,0xD0,0x2A,0x26,0x98,0xE6,0xEA,0x3A,0xB2,0xBE,0xEA,0x1C,0x75,0x12,0x79,0x23,
+0x17,0x03,0x5C,0x50,0xB7,0x20,0x2C,0xD3,0x11,0x1D,0xB7,0xE2,0xF7,0xE9,0xFB,0x5A,
+0x56,0x45,0x5B,0x57,0x47,0x44,0x48,0x47,0xED,0xE1,0x69,0xC0,0xA4,0x2B,0xA8,0xCB,
+0x38,0x92,0xE2,0xEE,0x13,0x9B,0x97,0xCC,0xB3,0xBF,0xCA,0x3D,0xAD,0x00,0xA1,0xE9,
+0x60,0x5E,0x76,0x7A,0x62,0x8A,0x86,0xAC,0x76,0x7A,0x72,0x40,0x33,0xB5,0x3F,0xC2,
+0x64,0x7A,0x56,0x5A,0x9F,0xD4,0xD8,0x0F,0xE9,0xE5,0x79,0xD4,0x56,0x64,0x5A,0x76,
+0x67,0x66,0x49,0x45,0x8F,0x1F,0x13,0xD4,0xF0,0xFC,0x1B,0xAF,0xC0,0xDB,0xCC,0x5F,
+0x35,0x28,0x55,0x59,0xB2,0x01,0x0D,0xF7,0x70,0x7C,0x13,0x27,0x46,0x34,0x4A,0x36,
+0xC5,0x8D,0x00,0x0C,0x44,0xB9,0xB5,0xB9,0x39,0x35,0xB1,0xCC,0x12,0xB0,0x1E,0xE6,
+0x99,0x65,0xB4,0xB8,0xDE,0xE1,0xED,0x7B,0x41,0x4D,0x77,0x72,0x74,0x33,0x78,0x03,
+0xAF,0x7E,0x99,0x95,0x93,0x00,0x0C,0xD7,0xB5,0xB9,0xAB,0x5A,0x5F,0x4F,0x53,0x54,
+0xB6,0xF4,0x0A,0x06,0x3F,0xA0,0xAC,0xDB,0xDB,0xD7,0x4C,0xD3,0xF4,0xBB,0xF8,0x0B,
+0xC9,0x21,0xA0,0xAC,0x81,0xD8,0xD4,0x1D,0xBC,0xB0,0x89,0x71,0x14,0xD7,0x18,0x87,
+0x62,0x54,0x7E,0x72,0xCA,0xE5,0xE9,0x6B,0x7C,0x70,0x01,0x39,0xFD,0x90,0xF1,0x29,
+0x82,0xE5,0x2F,0x23,0x49,0x83,0x8F,0x8E,0x97,0x9B,0xDE,0x0D,0x6C,0x69,0x60,0x41,
+0xEF,0x2E,0x89,0x85,0xCE,0x2A,0x26,0xA0,0x64,0x68,0x43,0x63,0x13,0x91,0x1F,0xC6,
+0x8C,0x43,0x87,0x8B,0xFD,0xF3,0xFF,0x4A,0x3D,0x31,0xA1,0xD8,0xB7,0x29,0xBB,0xDA,
+0xBC,0x76,0x82,0x8E,0x8A,0x3E,0x32,0xF0,0xD9,0xD5,0x3D,0xA0,0xC6,0xBC,0xCA,0x3E,
+0x86,0xC1,0x0F,0x03,0xA6,0x05,0x09,0xE7,0x21,0x2D,0xF3,0x96,0x1E,0xAE,0x12,0xF4,
+0xFA,0xB4,0xED,0x45,0xDD,0x90,0x61,0xEE,0xFB,0xFB,0x52,0xA3,0x7F,0xE0,0xCD,0x8E,
+0xBF,0x93,0x8F,0x62,0x55,0x10,0xE1,0xE6,0xDE,0x10,0x9C,0x6D,0xD0,0x00,0x82,0x21,
+0xC1,0x2E,0x4C,0xDF,0x54,0xFE,0x0F,0x09,0x09,0x7E,0x25,0xD4,0x27,0x7A,0x0F,0xD6,
+0x4B,0xE6,0x0E,0x17,0x3D,0x3F,0xCE,0xA1,0x32,0x87,0xE7,0x16,0x75,0x99,0xBE,0x84,
+0x03,0x76,0xD6,0x87,0x2B,0x28,0xD9,0xA0,0xA6,0x8C,0x78,0x89,0x41,0xF9,0xEA,0xB0,
+0x7B,0xE3,0x3B,0x12,0x6C,0xC1,0x30,0x0E,0x8B,0x74,0xAD,0x5C,0x91,0xE1,0x22,0x60,
+0x4A,0xF1,0x18,0x00,0xE6,0x52,0xA3,0x17,0x5F,0xE4,0xE9,0x18,0xF9,0x0F,0xA4,0x08,
+0xDD,0x8A,0xF4,0x7B,0xAE,0x92,0x63,0x9F,0xF1,0xF9,0x5A,0xAB,0xD1,0x21,0xA2,0x20,
+0xAF,0x97,0x9B,0x66,0x39,0xF0,0x01,0x6A,0x70,0x0D,0x2F,0xDE,0x0C,0x06,0x58,0xFD,
+0x40,0x79,0x9A,0x88,0xF8,0x5E,0xAF,0x05,0xE9,0x31,0x8A,0x7B,0x34,0x78,0x1E,0xC5,
+0xDB,0xA2,0xDA,0x53,0xC5,0x40,0xB1,0x26,0x4F,0x3F,0x22,0xD3,0x68,0xF6,0xCC,0x99,
+0xA5,0x1F,0x19,0xEE,0x7C,0x0A,0xFB,0xD5,0x77,0x38,0x1D,0xEC,0x8B,0xC8,0x11,0x7A,
+0x4E,0xD1,0x3C,0x20,0xB9,0x6B,0x9A,0x71,0xC3,0xFC,0x6D,0x9C,0xB7,0xA2,0x47,0x46,
+0xA3,0x37,0x37,0xC6,0xA3,0xA8,0x59,0xA8,0x11,0xB6,0xF5,0x04,0x9E,0xAD,0x61,0x6F,
+0x53,0x62,0x92,0x93,0xB8,0x85,0x74,0x9E,0x80,0x99,0x4B,0xBA,0x1B,0x10,0x59,0xEA,
+0x52,0x75,0x84,0x84,0xAB,0xB3,0x42,0xBB,0x5E,0x0B,0x07,0xF6,0x64,0xE8,0xDE,0x95,
+0xF7,0x03,0x57,0xF2,0x5A,0x39,0xC8,0xC0,0xFD,0x21,0x8E,0x7F,0x60,0xFC,0xCE,0x91,
+0x44,0x59,0xBE,0xA8,0x4D,0xC0,0x31,0x2E,0x7F,0x2B,0x06,0xF7,0xC3,0x02,0x93,0x32,
+0x6F,0xC7,0x0B,0x36,0xF2,0x56,0xA7,0x07,0x0C,0x5A,0x04,0xF5,0xD5,0x35,0xB2,0x24,
+0x88,0xA9,0x82,0x58,0xEB,0x68,0x99,0x20,0x49,0xE5,0xFE,0x0F,0x57,0xCE,0xCB,0xA6,
+0xF6,0x14,0x41,0xE5,0x36,0xD9,0x28,0x4C,0x68,0xC5,0xFF,0x0E,0x0D,0x27,0x78,0xFC,
+0xFD,0x8B,0xD5,0x7A,0xD2,0xB9,0x48,0xC8,0xB1,0x62,0x81,0x70,0xAB,0xEC,0x15,0x5A,
+0xC6,0x11,0x74,0xE0,0xB6,0x42,0xB3,0x57,0x01,0x6D,0x3E,0xCF,0x24,0x28,0x5E,0xD5,
+0x72,0x74,0xA5,0x85,0x24,0x01,0xF0,0x86,0xE7,0xF8,0x4D,0xBC,0x46,0xBF,0xAB,0xB7,
+0xC9,0xAE,0xC4,0x5F,0x6A,0x1D,0xEC,0xD4,0xA4,0x9D,0x6B,0x9A,0x6A,0x85,0xBD,0x9B,
+0x75,0x4B,0x9D,0xBA,0x2A,0xC6,0x37,0x4F,0x22,0x5C,0x2C,0xDD,0x95,0xF5,0x32,0x64,
+0x36,0x44,0xD1,0xB5,0x0D,0x1B,0xEA,0xB5,0xE4,0x06,0xB0,0x41,0x08,0x12,0x48,0xF9,
+0xC4,0x19,0x7E,0xE8,0x30,0x05,0xF4,0x96,0x8E,0x50,0x8C,0x7D,0xA5,0x81,0x76,0x54,
+0xD1,0x2A,0x58,0xDB,0x1D,0xD0,0x21,0x6E,0xEA,0xCF,0x77,0x86,0x9F,0x8C,0x41,0x6E,
+0x6C,0xD8,0x17,0x29,0x6F,0x3C,0xCD,0xF0,0x4B,0xF4,0xED,0x1C,0xDC,0x1E,0x90,0x2D,
+0xEB,0xA7,0xEF,0x56,0x60,0x15,0xE4,0xD6,0x72,0x1C,0x3C,0xCD,0x55,0xBD,0xBA,0xA4,
+0x46,0x51,0xB4,0xA0,0xF0,0x45,0xB4,0x16,0x16,0x83,0xC7,0x36,0x38,0x66,0x0C,0xC9,
+0x27,0x57,0xD3,0xA6,0x63,0xE8,0x19,0x28,0x7D,0x3A,0x15,0xE4,0x9B,0x98,0x51,0x6A,
+0x45,0x4E,0xA8,0xBF,0xDC,0x7E,0x8F,0x01,0x61,0x39,0x0A,0xFB,0x50,0x88,0x8A,0xA1,
+0x94,0x0D,0x3A,0xFC,0x07,0x13,0xE2,0xB7,0x95,0x66,0xA1,0x50,0xD4,0x14,0x92,0x25,
+0x2C,0xC8,0x47,0x39,0xB2,0x8D,0x7C,0x9C,0x59,0x3E,0x35,0xC4,0xC5,0x65,0xF2,0x34,
+0x29,0xFF,0x75,0x0E,0x34,0xCA,0x3B,0x5D,0x62,0xC7,0xF7,0x06,0xAE,0xD9,0x25,0x5F,
+0xF5,0x0B,0x5D,0xFA,0x48,0xE1,0x10,0x0A,0x79,0xF1,0xDA,0x2B,0x4F,0x94,0x89,0xBE,
+0x4D,0xCE,0x20,0x3F,0x33,0xF8,0x09,0x68,0x2F,0x6B,0x16,0xE7,0x4E,0xB5,0xA9,0xBF,
+0xEF,0x87,0xCB,0x76,0xB7,0xAC,0x5D,0xB8,0x8A,0x9B,0x43,0xB2,0xF6,0x43,0xE7,0x07,
+0x5F,0xC2,0x3E,0x33,0x97,0x43,0xB2,0x77,0x53,0x3C,0x3D,0xCC,0xAA,0xCD,0x35,0x5B,
+0x80,0x29,0x0A,0xD8,0x6E,0xD2,0x23,0x1F,0xE2,0xDC,0x6C,0x9D,0xCC,0x4E,0xD0,0x3D,
+0x12,0x65,0xD4,0x94,0xBC,0x4A,0xBB,0x55,0xF3,0xE8,0x49,0xB8,0xEF,0x38,0x85,0x1E,
+0xD7,0x02,0x76,0xF3,0xD0,0xAA,0x5B,0xD9,0x26,0x97,0xE3,0x12,0x97,0x86,0x43,0x66,
+0x63,0x67,0xA7,0x96,0xBB,0x78,0x89,0x60,0x71,0xE2,0xC1,0x30,0x71,0x8D,0xAE,0x80,
+0xAD,0x9F,0x91,0x6E,0xA9,0xA0,0x51,0xAA,0xC6,0xD8,0x4C,0xBD,0x4A,0xA1,0xB9,0xBB,
+0x1D,0xDA,0x64,0x2B,0x96,0xAD,0x5C,0x98,0x29,0xB1,0xCA,0x3B,0x65,0xC9,0xFE,0x94,
+0xFF,0x83,0xDF,0x72,0x2E,0x09,0xF8,0x84,0x44,0xD2,0xC4,0x35,0xBC,0xFA,0x14,0x4D,
+0x70,0x7C,0xAF,0x8D,0x69,0xE0,0x11,0x2A,0x5C,0x1A,0x14,0xE5,0x67,0xBA,0x8F,0x96,
+0x33,0x73,0xE3,0x82,0x9C,0xA5,0x54,0x9A,0x03,0x7C,0x2D,0xDC,0x2A,0x45,0x3D,0xDB,
+0x1B,0xF2,0x4A,0x03,0xC0,0x61,0x90,0x02,0x25,0x69,0x1E,0xEF,0x1A,0x31,0x79,0xEB,
+0xE1,0x2F,0x6D,0xDE,0xFF,0x6C,0x9D,0x30,0x1F,0x7F,0x32,0xC3,0x73,0xFE,0xDF,0x82,
+0xDA,0xB5,0xCC,0x44,0xAC,0x81,0x70,0x8E,0x6B,0x3B,0x02,0xF3,0xC0,0x50,0xC2,0x31,
+0xA7,0x17,0x13,0xE6,0x1A,0xE2,0x13,0x5B,0xC2,0x13,0x83,0x72,0xD2,0x73,0xF3,0x23,
+0x54,0x5D,0xAA,0xAC,0xDB,0x4C,0xBD,0x34,0x93,0xBC,0x7D,0x8C,0x40,0xD8,0xCA,0xB1,
+0x23,0x77,0xF7,0x86,0x89,0x4F,0xBE,0x65,0xCF,0x24,0xB9,0x48,0xD3,0x52,0xD3,0x22,
+0x91,0x3A,0x08,0xCB,0x51,0xDF,0x2E,0x2D,0x5B,0x2F,0x26,0xD7,0xC9,0x7B,0xE0,0x38,
+0x56,0x55,0xA0,0xA4,0x87,0x88,0x79,0xAC,0x23,0xB3,0xC2,0x33,0x7E,0xC1,0xED,0x8F,
+0x18,0xED,0x56,0x1C,0xCA,0x69,0x98,0x00,0x90,0x42,0x80,0x71,0xD7,0x46,0xC3,0x26,
+0x73,0x63,0xB3,0x92,0x67,0x27,0xD6,0xE3,0x05,0xA6,0xF1,0x00,0xCF,0x1C,0x81,0x3E,
+0xE9,0xAF,0xE5,0x5E,0xEE,0x49,0xB8,0x04,0x04,0x49,0x1F,0xEE,0x6F,0xB0,0x8D,0x9E,
+0x37,0x53,0xC7,0xA2,0x2C,0x1A,0xEB,0x95,0x42,0x08,0x18,0xE9,0x0B,0x40,0x19,0xFA,
+0x8B,0xB6,0x9E,0x47,0x83,0x47,0xB6,0x67,0x2D,0x7A,0x05,0xF4,0xDD,0x3F,0xB0,0x2C,
+0xB4,0x0C,0x1B,0xFD,0x15,0xCB,0x3A,0x7D,0xD7,0xEC,0x69,0x98,0xA9,0x9F,0x64,0x58,
+0x8A,0x7D,0xBB,0xBE,0x09,0x40,0x0C,0x05,0xD1,0x17,0xD4,0x8A,0xBD,0xB8,0xD8,0x2C,
+0xD1,0xD0,0x4D,0x48,0x59,0x80,0x5C,0x95,0x2A,0x73,0x2F,0x15,0xD0,0xD5,0x03,0x9A,
+0x3D,0x47,0x36,0x33,0xCC,0xF8,0xC9,0x78,0x9A,0x8F,0x9F,0x59,0x77,0x72,0xE9,0xD7,
+0x72,0xFA,0xC4,0xC1,0x20,0x66,0x25,0x0A,0x00,0x2E,0x05,0x62,0x34,0x31,0x7B,0x06,
+0xB4,0xA0,0x58,0x5D,0x07,0x23,0x02,0x68,0x5D,0x81,0x58,0x90,0xE0,0xE5,0x77,0xDE,
+0x1B,0x52,0x05,0x00,0x19,0x00,0x1C,0x55,0x61,0xEB,0x64,0xC6,0x4D,0x48,0xE4,0xE0,
+0xA1,0x5F,0xB2,0xB7,0x01,0x42,0x04,0x0F,0x86,0xC1,0x83,0x0B,0x82,0x87,0xE0,0x2B,
+0xF8,0xE3,0x57,0x52,0xDA,0xD9,0xDF,0x4F,0xC1,0x47,0xC4,0xCA,0x7D,0x78,0x90,0xA4,
+0x11,0x50,0x0D,0x08,0x5E,0xC1,0x5B,0xD3,0xD3,0x64,0xD6,0xFB,0xCC,0xC9,0x4D,0xC8,
+0xC0,0xE4,0x68,0x6D,0x1D,0x10,0x18,0x41,0xA0,0x82,0xA5,0x6E,0xAE,0xAB,0xDA,0x3D,
+0x24,0x60,0x08,0x0D,0xC5,0xDA,0xC0,0x53,0x12,0x0D,0x17,0x53,0xE5,0xE0,0x42,0xEE,
+0xB0,0x6B,0x97,0x92,0xA5,0x5E,0xA0,0xB7,0x6C,0xD4,0x69,0xF4,0x43,0x46,0x89,0x83,
+0x6E,0xF9,0xDB,0xDE,0x4A,0x91,0x4F,0x97,0xE9,0x69,0xEC,0xCC,0x3D,0x38,0x50,0x24,
+0xE7,0x1E,0xB5,0xB0,0x74,0xB6,0x71,0x8E,0x13,0x2C,0x16,0x73,0xBF,0xBA,0xAB,0x5D,
+0x32,0x61,0x1F,0x1A,0x25,0x56,0x20,0x3F,0x63,0x98,0x66,0xB7,0x88,0x8D,0x99,0x58,
+0xDB,0xD2,0x45,0x40,0xDC,0xB8,0xD9,0x28,0xEB,0x1A,0xEE,0xBD,0x2B,0x2E,0x67,0x05,
+0xF7,0xC5,0x7E,0x7B,0x99,0x08,0x9C,0xDD,0xA6,0xE5,0xA3,0x0F,0xF3,0xF6,0x75,0xCF,
+0xE1,0xC4,0x69,0x6C,0xAF,0x2D,0xAA,0xCE,0xEA,0x3B,0xEF,0x9D,0x8C,0x89,0x8D,0x48,
+0x59,0xD8,0xCD,0xC8,0x77,0xE7,0x72,0xDC,0x80,0xA6,0x85,0x6A,0x5F,0x5A,0xC7,0xD1,
+0x52,0x35,0x2B,0x2E,0xB4,0x3E,0xB1,0xC6,0x18,0x74,0x1D,0x20,0x76,0x73,0xC8,0xF7,
+0xBF,0x4D,0xBE,0xBB,0x5C,0xB0,0x59,0xA0,0xCF,0x2A,0xCA,0xA9,0x80,0x85,0x93,0x5A,
+0x7C,0x33,0x03,0x06,0x16,0x43,0x13,0x19,0xF0,0x12,0xF5,0xAE,0x63,0x66,0xAD,0x87,
+0xFE,0x39,0x8B,0x8E,0xEC,0xFC,0xE9,0x5C,0xC2,0x15,0xC7,0x9B,0xE4,0xE1,0x63,0xCE,
+0xFF,0xD6,0x65,0x60,0x42,0x93,0x47,0x9D,0x67,0x8C,0x62,0xA7,0xDC,0xD9,0x1D,0x88,
+0x7D,0xDC,0xED,0xE8,0x4E,0x81,0x4B,0x83,0x04,0x3A,0x01,0x72,0x11,0x14,0x6A,0x32,
+0x91,0x4B,0x96,0x93,0x8E,0x09,0x8B,0xCB,0xB7,0x94,0xB2,0x6F,0x39,0x3C,0x44,0x34,
+0xB3,0x95,0x6A,0x6F,0x34,0x36,0x31,0x4E,0x95,0xC3,0x90,0x1A,0xA9,0xAC,0x9C,0x7C,
+0x5E,0xED,0xFF,0xFA,0xDD,0x98,0xD8,0x09,0x40,0xEE,0x45,0xE2,0x79,0x7C,0x84,0xB4,
+0x29,0x57,0x32,0x37,0xE2,0x9F,0xE7,0x31,0xC8,0x6C,0xCD,0xE8,0xCF,0xCA,0x1F,0x99,
+0x6B,0xDD,0xFA,0xFF,0x23,0x37,0x26,0x58,0x0A,0x57,0x0F,0x11,0x9D,0x98,0xFC,0x28,
+0x88,0x6C,0xA8,0xAD,0x8C,0x78,0x89,0xB8,0xBF,0x9E,0xBA,0x6D,0x97,0x92,0x85,0x5B,
+0xEA,0x29,0x8F,0x8A,0x0C,0x70,0x09,0x30,0x71,0xBB,0x74,0x86,0x38,0x3D,0x65,0x14,
+0xFB,0x1D,0xAA,0xAF,0x5B,0xF1,0x5E,0xE6,0xE8,0x48,0xED,0xEC,0x35,0x30,0x5A,0x26,
+0x7E,0x22,0x10,0x15,0xD7,0xEB,0xD2,0x70,0x84,0xB2,0x81,0x7A,0x41,0x44,0xFA,0xF2,
+0x80,0x7F,0xB3,0xB6,0x55,0x92,0x50,0x8B,0xF2,0x61,0xF7,0xDF,0x87,0x82,0xD5,0x1B,
+0xA2,0xA1,0x4F,0x4A,0x06,0x03,0x03,0x49,0xF5,0x27,0xF0,0x9E,0xE3,0xE6,0x25,0x8F,
+0x33,0x8E,0xF1,0xF4,0x75,0x96,0x70,0xAF,0x6D,0xF5,0x68,0xD4,0x3F,0x3A,0x23,0x55,
+0xD6,0xE5,0x7F,0x7A,0x3B,0x75,0x3E,0x02,0x1C,0x60,0x19,0x30,0x27,0x22,0x79,0x17,
+0x6D,0x07,0x26,0x23,0xC3,0xBB,0xC6,0x34,0xCB,0x3E,0xCE,0xB9,0x21,0x24,0x1E,0x76,
+0xC5,0xC0,0x49,0x4C,0x94,0x3A,0x91,0xE2,0x2F,0x46,0x2A,0x25,0x96,0x93,0xA4,0x7B,
+0xCF,0xC2,0x41,0x44,0x50,0xA2,0x55,0xBE,0x90,0xF6,0x95,0x2A,0xA8,0xAD,0xBD,0x5C,
+0x92,0xB5,0x6B,0x6E,0x53,0xF3,0x56,0xEC,0x54,0xAA,0x51,0xB2,0x3B,0x3E,0x37,0x45,
+0xA9,0x4C,0xA9,0xAC,0x9D,0x18,0x98,0xC9,0xEF,0x0E,0xEA,0xAD,0x28,0x2D,0x35,0x54,
+0x76,0x31,0x0B,0x0E,0xFE,0xCD,0xFB,0x7F,0x6E,0xA7,0x6B,0x85,0x3A,0x3F,0x16,0x65,
+0x2F,0x8D,0xEE,0xEB,0x7D,0x94,0x78,0xA5,0xF3,0x40,0xF6,0xFF,0xF2,0xF7,0x54,0xEF,
+0x08,0x77,0x33,0x36,0x70,0xA6,0x75,0x9A,0xDF,0x7A,0xDA,0xE9,0x9B,0x9E,0x9B,0x49,
+0xCA,0xE6,0x60,0x65,0xFC,0xBC,0xF9,0x0C,0xF9,0x39,0xFC,0x8C,0x8F,0x8A,0xDF,0x19,
+0x86,0xA5,0x6F,0x6A,0xB9,0x0C,0xBC,0xF9,0xC0,0x66,0xC5,0xEA,0xC2,0xC7,0x20,0xAB,
+0x01,0x8B,0xC6,0xC3,0xB1,0x0E,0xB4,0xF3,0x27,0x4C,0x22,0x27,0x8D,0x88,0xAC,0x68,
+0xBA,0x69,0x9F,0x9A,0x15,0x12,0x10,0x4B,0x29,0x21,0x2C,0x44,0x54,0x51,0x9F,0x82,
+0xC2,0xF5,0x7B,0x7E,0x64,0xF6,0x61,0xDE,0x2C,0x14,0x29,0x74,0x99,0x9C,0xE8,0x38,
+0xF4,0x3B,0x83,0x86,0xBC,0x3C,0xB9,0xCC,0xA1,0xA3,0xA4,0x4E,0xA2,0xA7,0xC4,0x2F,
+0xB1,0x84,0x79,0x7C,0x56,0xC3,0x53,0xD9,0xA4,0x96,0xA1,0x7E,0x07,0x02,0x5D,0x13,
+0x13,0x41,0x1E,0x1B,0xB6,0x4F,0xB3,0xB5,0x0E,0x43,0x0B,0x01,0x7F,0x7A,0xE3,0xD5,
+0x5B,0xC9,0xDE,0xDB,0x5F,0xE1,0x5A,0xF2,0xD0,0x36,0xD5,0xAA,0x42,0x47,0xA8,0xA3,
+0x6F,0x16,0x35,0x30,0xCE,0x89,0xCB,0x0B,0x81,0x87,0x84,0x4A,0x24,0x21,0x2B,0x46,
+0x45,0xDB,0xD2,0xD7,0xE4,0xFE,0xE1,0x56,0xFB,0x4A,0xFE,0xFD,0xA6,0xA3,0xD0,0x3F,
+0xAE,0x79,0x9B,0x9E,0xB0,0x2E,0xB5,0xD2,0xAE,0xEF,0xAB,0x0D,0x1E,0x1B,0x26,0x71,
+0x10,0xBF,0xE3,0xE6,0xD6,0xCB,0xD3,0x51,0x1A,0x07,0x1F,0x51,0x46,0x43,0xBC,0xB3,
+0x38,0x63,0x17,0x12,0xFD,0x9C,0xF8,0x2D,0x37,0x1C,0x32,0x67,0xA7,0xA2,0xF1,0x1F,
+0x5F,0x02,0x11,0x14,0x0F,0x21,0x0A,0x62,0x4C,0xF0,0x49,0xF0,0x3C,0x39,0x71,0x04,
+0x22,0xBA,0xD4,0xD1,0x91,0x0A,0x94,0xD7,0xD8,0x3C,0xDD,0xA8,0x2D,0x28,0x00,0x64,
+0xB6,0xB1,0x4B,0x4E,0xF4,0xBE,0xF1,0x06,0xF8,0x18,0xFD,0xAC,0x73,0x76,0xFD,0xC7,
+0xCD,0xD3,0x52,0x57,0x62,0x97,0x67,0xB9,0xE7,0x04,0xE2,0xAF,0xB8,0xBD,0xED,0x1C,
+0x3F,0xEA,0x19,0x13,0x5C,0x10,0xE9,0x80,0x88,0x10,0xAD,0x54,0x45,0xEE,0x9E,0xBC,
+0xA1,0x06,0x6B,0xFF,0x13,0xE2,0x1B,0x3D,0x1A,0xC1,0xEE,0x17,0xDF,0x4F,0xA5,0x26,
+0x87,0x2F,0x64,0xD6,0xEB,0x9D,0x64,0xBA,0xB9,0xEB,0x67,0x9E,0x0E,0x76,0x4D,0xF7,
+0x47,0x7F,0xF4,0x86,0xB0,0x6B,0x92,0x17,0x62,0x5D,0x0A,0xF3,0xF5,0x12,0xD2,0x0C,
+0x85,0x27,0x6E,0xDE,0xC0,0x94,0x6D,0x98,0x81,0xEC,0x58,0xA1,0x59,0xA0,0xCC,0xA0,
+0x1E,0xFC,0x2E,0x05,0x99,0x71,0x88,0x24,0xF1,0x63,0xA7,0x5E,0x1E,0x26,0x0D,0xE7,
+0xE4,0x21,0x09,0xD8,0xD5,0x7E,0x87,0x67,0x16,0x19,0x3A,0xC3,0x82,0xE0,0x57,0x7B,
+0xC7,0x3F,0x34,0xC6,0x7A,0x23,0xDA,0x95,0x85,0x27,0x97,0x6E,0xBE,0x8A,0x01,0x47,
+0x1D,0xE3,0x32,0x1A,0x45,0x2E,0xD7,0xA7,0x23,0x29,0x3F,0xC6,0xCD,0x6C,0x94,0x34,
+0x99,0x83,0xD6,0x7A,0xD1,0xB1,0x48,0xAC,0xE8,0x44,0x99,0x60,0xB3,0xB5,0x33,0x4A,
+0x06,0x78,0xB2,0x81,0x70,0x2B,0xD2,0x97,0x2C,0x0F,0x16,0xEF,0x0C,0x05,0x3C,0xF5,
+0xD7,0x3B,0x20,0xC2,0xA1,0x4E,0xB7,0x23,0xBB,0xFA,0x74,0x8D,0x7F,0xE3,0xA9,0x86,
+0x91,0x03,0x5E,0xFA,0x53,0x39,0xC0,0xA6,0xF8,0x9F,0x52,0xAB,0xBC,0xF9,0x70,0x45,
+0x7F,0xFA,0x49,0x03,0xBA,0x63,0x9A,0x15,0x06,0xC2,0xF1,0x08,0x34,0x7B,0x7A,0xCD,
+0x56,0x6C,0xF6,0x95,0x0F,0xFD,0x04,0x3E,0x31,0xE3,0xE7,0x1E,0x36,0x08,0x0B,0xCF,
+0x71,0x52,0xEF,0xAB,0x86,0x93,0x6A,0xD9,0xCA,0x9A,0x65,0x9C,0xCC,0x4D,0xB4,0x35,
+0x20,0x51,0xBD,0xA8,0x38,0xEB,0x12,0x1F,0xA6,0x16,0x85,0x7C,0x5F,0xC7,0xAD,0xA6,
+0xF9,0x92,0xA7,0x6B,0x33,0x0D,0xF4,0xF2,0xA9,0x30,0xAC,0x55,0xC7,0x15,0xE7,0x3E,
+0xCF,0xBF,0xBC,0x46,0x96,0x58,0xA1,0x02,0x14,0x08,0x29,0xD0,0x79,0x84,0xC8,0x80,
+0xEA,0x89,0xAF,0x70,0x80,0x4F,0xB6,0x03,0xEC,0x8F,0x56,0xAF,0x35,0x5A,0x5A,0xCC,
+0x3B,0xCA,0x3D,0x33,0x9F,0xAD,0x54,0xFE,0x02,0x09,0x3E,0xC7,0x1D,0x74,0x5C,0xE4,
+0x54,0x64,0xFC,0x9D,0x9E,0x43,0xBA,0x11,0x7C,0x4F,0x06,0xFF,0xB8,0xED,0x60,0x41,
+0x77,0x7A,0xC1,0x83,0xDE,0x98,0x61,0x8A,0xF2,0x9D,0x5A,0xA3,0x10,0x4B,0x6E,0xE9,
+0x84,0x30,0x78,0xC9,0x1D,0x25,0xDC,0xF4,0xCC,0x40,0xB9,0x40,0x2F,0x73,0x69,0xD6,
+0xF1,0x12,0x2F,0xEB,0xD2,0x4C,0xB5,0x52,0xFD,0xBB,0x73,0x8A,0x4A,0xA2,0xDD,0xB3,
+0x5F,0xFB,0x68,0x02,0x3F,0xD9,0x20,0x2A,0xE5,0x73,0xA3,0x5A,0x9F,0x8F,0x25,0x66,
+0x46,0x68,0xE2,0x91,0x1C,0xCB,0x32,0x1B,0x0B,0xF5,0xCB,0x32,0xDB,0x5B,0xB5,0x22,
+0xCE,0xA8,0xAA,0x51,0xF0,0xB0,0x49,0x8C,0x25,0xF3,0xE3,0x1A,0x68,0xF5,0xA8,0x91,
+0xBF,0xAA,0xD9,0x53,0xE9,0x8E,0x77,0xAB,0xE4,0x9C,0x4D,0xB4,0x60,0xFF,0xAA,0x99,
+0xB7,0x2A,0x51,0xD3,0x8B,0xA9,0x50,0xEE,0x04,0xD3,0xE2,0x1B,0xAE,0xDA,0x41,0x57,
+0x58,0xC4,0x50,0x3D,0x48,0x14,0xED,0x90,0x7E,0x5E,0x15,0xEC,0x17,0x0D,0x2F,0xEE,
+0xF0,0x05,0x39,0xFC,0x0A,0xDC,0x25,0x1A,0x9D,0xEF,0x47,0xBE,0xD5,0x36,0xD6,0x2C,
+0x55,0x73,0xEA,0x8A,0xE1,0x95,0x6C,0xB8,0xB4,0xDC,0x5D,0xA4,0x2D,0x00,0x18,0xD4,
+0xC4,0x20,0x28,0xD9,0xC3,0x69,0x90,0x66,0x44,0x48,0x39,0xC0,0x2A,0x46,0x59,0xD3,
+0x36,0x7D,0x87,0x84,0x9A,0x8C,0x75,0xDA,0x3B,0xE1,0xEF,0x16,0x37,0x29,0x2B,0xCE,
+0x2C,0xF1,0x11,0x08,0x1F,0x36,0xCF,0xE5,0x9B,0x35,0x9B,0x62,0x5B,0xD3,0xBD,0xA2,
+0x7C,0xE5,0x55,0x1C,0x0C,0x00,0xF9,0xC0,0x7F,0xB1,0xFB,0x02,0x14,0x5F,0x7E,0xED,
+0xFD,0xB2,0x83,0x4B,0xA4,0x6F,0x96,0x07,0xC5,0xBC,0x4C,0xB5,0xF0,0x27,0xE2,0x09,
+0x51,0x53,0xCE,0xAA,0x52,0xD7,0x2E,0x49,0x42,0x92,0xE5,0x1C,0xB2,0x94,0x13,0x4B,
+0xB2,0x1D,0x63,0xE4,0xB7,0x59,0xA0,0x22,0x18,0xD0,0xFD,0x04,0xC3,0x01,0xF7,0x3A,
+0xDF,0xBB,0xA8,0x42,0xC8,0x8F,0x76,0x8B,0x54,0x93,0xF2,0x0B,0x30,0x6F,0x6A,0xC9,
+0x0A,0xD8,0x1E,0x21,0x17,0x2D,0xD4,0xF6,0x77,0xA2,0xE0,0x19,0xB1,0xC6,0x42,0x48,
+0x65,0x76,0xDF,0x8F,0xAE,0x67,0x9E,0x05,0xDC,0x9B,0x72,0x8B,0x4F,0x97,0xED,0xB6,
+0x34,0x75,0x8D,0x8C,0xF3,0x4D,0xB4,0x72,0x56,0x82,0xE1,0x18,0x8B,0xCB,0x75,0x72,
+0x7B,0xDA,0x6D,0x23,0xAB,0x46,0xBF,0x21,0xBE,0xDE,0x55,0xAC,0x26,0x58,0x4B,0xDF,
+0xCB,0x9F,0x98,0x66,0xE7,0x49,0xB0,0x62,0x41,0x6C,0x18,0xE1,0x1F,0x07,0x2D,0xE6,
+0x53,0x5B,0xC4,0xA2,0x4E,0xC8,0x31,0x4A,0x35,0x28,0x28,0xD1,0x2C,0x21,0x38,0xD5,
+0x61,0x56,0xFB,0xAF,0x69,0x15,0xEC,0xB0,0xFA,0x8E,0x41,0xB8,0x00,0x1B,0x2E,0xF9,
+0x31,0x42,0xBF,0xBB,0xA3,0x5D,0xA4,0x32,0x89,0xFF,0x43,0xBA,0xF3,0x75,0xB3,0x0A,
+0xFB,0x9A,0xAD,0x63,0x95,0xA5,0x5C,0xFC,0xA5,0xE8,0x78,0x81,0x7E,0xC2,0x89,0x87,
+0xC9,0x97,0x92,0x6E,0x60,0xE0,0x19,0x4C,0xCD,0xAF,0x57,0xAE,0xF8,0x2D,0xE0,0x01,
+0xD5,0x33,0x2A,0xCA,0xDB,0xB9,0x40,0xAE,0xFE,0x45,0x8E,0x77,0xF6,0x40,0x83,0x0F,
+0x26,0x79,0x93,0x80,0x3A,0xF8,0x01,0x0E,0xC9,0x64,0x98,0x61,0x0F,0x57,0x6D,0xF6,
+0x4E,0xE8,0x6A,0x11,0x0E,0x13,0xEA,0xD1,0x4A,0x81,0xFE,0x07,0x5E,0xE6,0x8D,0xA7,
+0x04,0x70,0xB8,0x89,0xD0,0x5F,0xA6,0x43,0x3C,0xD4,0xDD,0x24,0x7B,0xF7,0xB9,0x82,
+0x88,0x90,0xD4,0x69,0x72,0x38,0xC1,0x86,0x82,0x12,0xA5,0x5C,0xD1,0x22,0xC6,0x28,
+0x0C,0xF0,0x30,0x09,0x71,0xC5,0x3C,0x78,0xDD,0x74,0x9C,0x65,0xC5,0x66,0x96,0x3C,
+0x5B,0xDB,0x4C,0x22,0x59,0x31,0xC8,0xA4,0x90,0xD8,0x7D,0x84,0xE8,0x7D,0xA0,0x11,
+0x39,0xC2,0x37,0x3B,0x24,0xF4,0x0D,0x1C,0xB1,0xF8,0x7C,0x85,0x24,0x2B,0x3A,0xDD,
+0xE9,0x96,0xB3,0x6F,0xCF,0xBD,0x44,0xBE,0x47,0xB6,0xC4,0x3D,0x71,0x8E,0xCA,0x88,
+0x79,0xD2,0x67,0x2B,0xD7,0x6D,0x94,0x76,0x9C,0x00,0xA9,0x50,0x27,0x79,0x6B,0xDE,
+0x50,0x44,0xD8,0xBD,0xAC,0x74,0x8D,0x14,0x8C,0xDB,0x62,0x9B,0x38,0x65,0x68,0xC1,
+0xE6,0x29,0x03,0xD0,0x3E,0x37,0xCE,0xC5,0x10,0xC3,0xE6,0x1F,0x93,0x91,0x37,0x6A,
+0xCD,0xB7,0xB6,0x4E,0x43,0xF2,0x0B,0x7D,0x61,0xA3,0xF7,0x0E,0x07,0x5D,0x6F,0xFE,
+0xCF,0xDC,0xC4,0xDD,0x30,0xA9,0x5C,0xBA,0xE9,0x79,0x46,0x6A,0x1E,0xBA,0x72,0x61,
+0x8C,0x9F,0x15,0x4F,0x84,0xCC,0x8D,0xDF,0x1C,0x1B,0xD1,0x08,0xF8,0x2F,0x01,0x12,
+0x77,0x64,0x8A,0x2B,0xBF,0x56,0x2C,0x45,0x57,0x94,0x15,0x87,0x48,0x20,0xBE,0xAD,
+0x17,0x04,0x0E,0xCF,0xB4,0xC9,0xB8,0xDA,0x3A,0x32,0xDE,0x21,0x91,0x87,0xC0,0xD3,
+0xA6,0xB5,0x62,0x12,0xCA,0x74,0x7B,0x67,0x89,0x68,0x37,0x7B,0xB0,0xA7,0xC1,0xD2,
+0x98,0x8B,0x45,0x0B,0x2D,0x1A,0xF2,0x09,0xF0,0xEA,0xCC,0xF9,0xF5,0x18,0x3B,0x28,
+0x0E,0x1D,0x6C,0xB4,0x06,0x84,0x47,0x97,0xD1,0xFC,0xFB,0xEF,0x86,0x69,0x39,0x2A,
+0xF7,0xE4,0x82,0xA3,0xB5,0xDE,0xAE,0xCD,0x8C,0x5F,0x05,0x4C,0x04,0x63,0xB1,0xA2,
+0x8B,0x98,0x54,0x09,0x04,0x8C,0x4D,0x9F,0x4E,0x07,0x9F,0x14,0xEF,0xC1,0xF8,0xEB,
+0xDB,0xC8,0x94,0x99,0xA9,0x7A,0x16,0x69,0xF8,0x6A,0x44,0x79,0x8B,0x5E,0x03,0x10,
+0xF2,0xE1,0xB2,0x96,0x2E,0x05,0xEE,0x16,0xD2,0xE3,0xE7,0xF0,0xB2,0xB6,0xD2,0xC1,
+0x1E,0x0D,0x2C,0xE4,0x93,0xF7,0xA1,0xE4,0x03,0xA0,0x75,0xB3,0x13,0x8D,0x48,0x5B,
+0xCB,0xD8,0xD4,0xC9,0x86,0xC4,0x87,0xD7,0x34,0x9A,0x78,0x89,0x77,0x12,0xB3,0xA0,
+0xD5,0xC6,0xF7,0xF4,0x74,0x99,0x28,0x8A,0x0A,0x37,0xEB,0x24,0x1D,0x44,0x8F,0x9C,
+0x08,0x1B,0x0D,0xD3,0x37,0x96,0x64,0x85,0x70,0xAA,0x0C,0xB9,0xDB,0x1E,0x13,0x00,
+0xD3,0xC0,0x96,0x93,0x8B,0x73,0x3D,0x60,0xFF,0x55,0x7C,0x46,0x5D,0xDF,0x54,0x47,
+0x5C,0x4F,0xDD,0x57,0x9F,0x57,0x0D,0x44,0xE0,0xEE,0xD8,0xFD,0x08,0xBB,0x65,0x76,
+0x9C,0x8F,0x55,0x1F,0x08,0x2C,0xE1,0x3F,0xE6,0xC6,0xF6,0xD5,0xA6,0xA6,0xD6,0xC5,
+0x0F,0x1C,0x4C,0x95,0x39,0x3E,0xC2,0x2D,0x60,0xAE,0x18,0xBD,0x72,0x36,0x92,0x81,
+0xE6,0xF5,0xE2,0xD2,0x41,0xAB,0x2F,0xB8,0xA8,0x7E,0x00,0x6D,0x5F,0xCE,0x47,0x54,
+0xF1,0xE2,0xE3,0xC4,0x09,0x3B,0xF7,0x28,0xFC,0x4A,0x60,0x59,0xCB,0xC5,0xD8,0xCB,
+0x30,0x23,0x4B,0xAD,0x83,0xF3,0xB5,0xE0,0x4D,0x18,0x83,0x0B,0xF0,0x3C,0x1A,0x09,
+0xDE,0xCD,0xA4,0xAC,0xFD,0x4E,0x76,0x5D,0xC0,0xEF,0xF9,0xFC,0x27,0x52,0xA3,0xB0,
+0x5E,0x4D,0xAC,0x24,0xB8,0x69,0x14,0x7A,0x8F,0x40,0x19,0x53,0x02,0xB9,0x6D,0x7E,
+0x7D,0x6E,0xF9,0x52,0x10,0xA8,0x7D,0xBB,0x9C,0x5B,0x11,0x48,0xA7,0x49,0x38,0x2B,
+0x4B,0x58,0xDC,0x41,0x11,0xBF,0x6B,0xAC,0x1B,0x24,0xE9,0x37,0x79,0xDB,0x74,0x67,
+0x66,0x75,0xEA,0x5A,0xE1,0xEA,0xCE,0xF9,0x23,0xA1,0x54,0xB2,0xE8,0xF4,0xCA,0xD9,
+0xA5,0xB6,0x33,0x40,0x0C,0x0C,0xC5,0x1F,0x05,0x88,0x5B,0x9B,0x3A,0xBE,0x52,0x41,
+0xC4,0xD7,0x97,0x85,0xE7,0xC2,0xE0,0xD1,0x53,0xB4,0x31,0xA7,0x8E,0x7A,0x22,0x31,
+0x8E,0x9D,0x64,0x3C,0x99,0x7F,0x23,0x6C,0x8E,0x57,0x0F,0x44,0xB6,0x7D,0x1D,0x0E,
+0x90,0x83,0x47,0x01,0x02,0xA4,0x63,0xB7,0x5C,0x0B,0x81,0x18,0x10,0x73,0xB5,0xA6,
+0x3E,0x2D,0x28,0xC0,0xED,0x4A,0x62,0x59,0x1A,0x33,0xFF,0x20,0x89,0x4F,0x10,0x03,
+0x81,0x92,0x27,0x70,0x61,0xAA,0x0E,0xB9,0x91,0xEC,0xAB,0xFF,0x36,0x66,0x86,0x95,
+0x82,0x91,0x76,0x22,0x16,0x80,0x53,0x93,0x88,0x7F,0x21,0x6C,0x6A,0xFE,0x42,0x51,
+0x2C,0x3F,0x19,0xE3,0xE5,0xCA,0xEA,0xD9,0xB1,0xED,0x8A,0xFE,0x3B,0x51,0xBC,0xAF,
+0x4F,0x5C,0xCC,0x55,0x98,0x68,0x35,0x7B,0x80,0xFF,0xA9,0xEC,0x92,0x79,0x3D,0x2E,
+0xA2,0xB1,0x72,0x06,0xA3,0xF2,0x94,0xE1,0x9D,0x4C,0x07,0x5F,0xE6,0x3D,0x0D,0x1E,
+0xAF,0xBC,0x40,0x39,0x59,0x2F,0xB3,0x3C,0x3B,0x25,0xC8,0x36,0xDC,0x2B,0x21,0x32,
+0x6B,0x78,0xD8,0x65,0x71,0xAE,0x1A,0xBD,0x7F,0x15,0xBC,0x06,0xFA,0x3E,0x12,0x01,
+0x2E,0x3D,0x68,0x90,0x32,0xA1,0x56,0xB2,0xCD,0x58,0x43,0x4B,0xA5,0x58,0x2B,0x38,
+0x05,0x16,0x3F,0xEC,0xF6,0xD1,0xE2,0xC2,0x26,0x96,0x66,0x85,0x2E,0xAE,0x56,0x45,
+0x89,0x9A,0x25,0x7A,0xC9,0x6B,0x67,0x78,0xF2,0xE2,0xC6,0xF1,0xD4,0x38,0x3A,0x29,
+0xD4,0xC7,0xD7,0xD5,0x75,0x8E,0x3E,0x9D,0x5B,0x34,0xB9,0x27,0xBB,0x4A,0x27,0x34,
+0x87,0x94,0x46,0x17,0xAB,0x72,0x1C,0x61,0xCF,0x50,0x49,0x43,0xFD,0x0B,0x20,0x33,
+0xE9,0xFA,0xA1,0x9E,0x31,0xBE,0x4A,0xAD,0xC3,0xF0,0xE5,0xE3,0xFC,0xE4,0xCE,0xDD,
+0xA7,0xB4,0x42,0x33,0x5A,0x30,0xAF,0x23,0x81,0xE8,0xBF,0xFB,0x69,0x00,0xBF,0xAC,
+0x46,0x55,0xEE,0x7E,0x14,0x88,0x59,0x9B,0xAF,0x41,0x38,0x52,0xDA,0xF1,0xFD,0xEE,
+0x11,0x02,0x6F,0xA8,0xD3,0xE7,0xF1,0xF4,0xA2,0xF6,0x82,0xE5,0xA2,0x6D,0x19,0x0A,
+0x62,0x71,0xFA,0x4E,0xAD,0x5A,0x32,0x49,0xA5,0xC9,0xBA,0xDA,0x73,0xD9,0x7C,0x6F,
+0x36,0x25,0x2A,0xCA,0x0F,0x13,0xD9,0x00,0xEB,0x71,0x4C,0x62,0xD6,0x29,0x29,0x3A,
+0x2F,0x3C,0x48,0xB1,0xB7,0xD6,0xA4,0xC5,0xCB,0x70,0x6D,0x63,0x80,0xB3,0xE5,0xF6,
+0x04,0x17,0x1F,0xCD,0x6B,0x22,0x8C,0x31,0x67,0x91,0x20,0x82,0x9B,0x85,0xC8,0xDB,
+0x43,0x50,0xDE,0x4B,0x6E,0x15,0xBE,0x06,0xB0,0xFA,0x9C,0xE9,0xA0,0x7C,0x0A,0x19,
+0xDD,0xCE,0xF5,0xFE,0xD6,0xD0,0xC3,0xC3,0xD0,0xEB,0xED,0xF8,0x6C,0x24,0x9E,0x8D,
+0xB0,0xA3,0x43,0x25,0x07,0x93,0x51,0x80,0xC8,0x6F,0x71,0x7C,0x98,0x7B,0x35,0x26,
+0x26,0x35,0x6A,0x9A,0x65,0x8A,0x2A,0x99,0x13,0xA4,0x61,0xB7,0x84,0x78,0x2A,0x39,
+0xC7,0xD4,0xC6,0xD7,0xBD,0x5E,0x26,0x4D,0x56,0x83,0x03,0x90,0xBD,0x90,0xFB,0xE8,
+0x63,0x70,0xDA,0x6F,0x5F,0x07,0x9D,0x14,0xBC,0x5A,0x30,0x49,0xD0,0xF3,0xF5,0xE6,
+0x6E,0x7D,0xE8,0x50,0xEF,0x42,0x68,0x51,0xFB,0x75,0x58,0x66,0x3F,0x9A,0x73,0x60,
+0xB6,0xA5,0x22,0x42,0x21,0xBA,0x5E,0xA9,0xEC,0x4E,0x74,0x5D,0x88,0xA0,0xFE,0xED,
+0x64,0x77,0x9B,0x29,0x95,0xDF,0x8F,0xCC,0x01,0xA8,0x7F,0xBB,0xDF,0xD5,0xDC,0xCF,
+0x84,0x97,0x17,0x45,0x50,0xB8,0x2D,0xAB,0xC7,0xD0,0xC1,0xC3,0x0A,0xAA,0x76,0x65,
+0x1C,0x0F,0x5D,0x97,0xC2,0xF4,0xF3,0xE7,0x92,0xF3,0xB7,0xE0,0x1B,0x9E,0x53,0x40,
+0x8D,0x9E,0x35,0x6E,0x1D,0x1F,0xC7,0x0C,0x77,0x95,0x34,0x86,0xAA,0x7E,0x02,0x11,
+0xAA,0x46,0xC0,0x4D,0xB0,0x53,0x28,0xBF,0x5D,0x59,0x23,0xB5,0x9C,0x74,0xCF,0x23,
+0x17,0xFB,0xBE,0x8E,0x43,0x19,0x91,0xF5,0x5A,0x66,0x1B,0x8A,0xA2,0xA9,0x2C,0xC0,
+0xCC,0x20,0x25,0xCE,0x60,0x07,0xAC,0xEB,0x54,0xCE,0xBD,0x22,0x2C,0x7B,0x70,0x9C,
+0x22,0xCE,0xCA,0xCF,0x0F,0xA9,0x6D,0x45,0x68,0x6B,0x24,0x87,0x52,0x3D,0x48,0xA4,
+0xC0,0x2C,0x37,0xD0,0xDE,0xEA,0xFF,0x06,0x6E,0x43,0x0A,0xAF,0xBC,0xBB,0x20,0xCC,
+0xD7,0x3B,0x36,0xC6,0xFB,0xDC,0xEC,0x30,0xFC,0x0F,0xD4,0xE3,0x44,0x3C,0x5F,0xB3,
+0x82,0x6E,0xC6,0x63,0xCD,0xF1,0xF7,0x1D,0xD3,0xB1,0x45,0x5D,0xF9,0x04,0xDA,0x36,
+0x64,0x88,0x2B,0x68,0x14,0x32,0xED,0xDE,0x99,0x29,0x97,0xC5,0xF6,0x22,0xF3,0x1F,
+0x53,0xBF,0x2E,0x5A,0xC4,0x66,0x69,0x8A,0xE2,0xA3,0x66,0x4F,0xCD,0xDB,0x31,0xDD,
+0x9B,0x77,0xA4,0x18,0x6C,0xA7,0x00,0x4B,0x1B,0x61,0x5D,0x8D,0x2E,0x6A,0x63,0x8F,
+0x26,0xCA,0xDA,0xDB,0x83,0x49,0x01,0xA5,0x75,0xD8,0x8A,0x34,0x54,0xE7,0x94,0x78,
+0x01,0xED,0x9F,0xB9,0x8B,0xC9,0x89,0x25,0x9E,0x16,0xAF,0xFA,0xB4,0xA8,0x3B,0xD7,
+0x3F,0xD3,0xB8,0xA0,0xFA,0xCB,0xFA,0x27,0x9C,0x1E,0xA5,0xF2,0x75,0xC7,0x95,0x79,
+0x44,0xA8,0x2F,0x4C,0x72,0x0B,0xB2,0xE7,0x81,0xAD,0x0B,0x41,0x5B,0xC1,0xBD,0x51,
+0x56,0xBA,0x1E,0x6F,0x6B,0x98,0x38,0x74,0x11,0xE9,0xDF,0x05,0xB5,0x47,0xD5,0x39,
+0xC3,0x2F,0x66,0x82,0xC5,0x71,0x7F,0x9D,0xE9,0x3C,0xF2,0xD0,0xAD,0x8F,0x05,0xE9,
+0xAC,0x40,0xA1,0x2A,0xF3,0x5C,0x64,0xB0,0x35,0xC8,0xDA,0x24,0xD5,0x13,0xE1,0x0D,
+0xF1,0x1D,0x53,0x85,0xD0,0x42,0x59,0xAE,0x63,0xF4,0xB0,0x18,0x46,0x2D,0x4C,0xA0,
+0xFE,0x12,0x10,0xC9,0x2A,0x9F,0x7E,0x73,0x39,0x68,0x76,0x84,0xA1,0x57,0xD1,0x3D,
+0x1B,0xF7,0xAC,0x90,0xB1,0x44,0x3E,0xA8,0xF8,0x2F,0xF0,0xC3,0xD1,0xD8,0x2E,0xC2,
+0xE4,0x08,0x23,0xE0,0x73,0x1C,0xA4,0xF0,0xE6,0x83,0x42,0x6F,0x32,0x69,0x7C,0x90,
+0x12,0xFE,0x8E,0xBB,0xB3,0x4C,0x34,0xA0,0x79,0x78,0x26,0x94,0xE9,0xDF,0x11,0xFD,
+0x6D,0x81,0x09,0x43,0x95,0x65,0x3B,0x89,0x91,0xA9,0x1F,0x45,0x4A,0xF5,0x98,0x74,
+0x9F,0x73,0xB4,0x0C,0x0B,0x89,0x49,0x65,0xAA,0x33,0xBE,0xDF,0xD8,0x24,0xDB,0x37,
+0x1C,0xF0,0xED,0xD6,0x45,0x31,0xBF,0xDD,0x80,0xBA,0x1D,0x56,0x9A,0xAE,0x13,0xFF,
+0x72,0x9E,0x0A,0x5F,0x62,0x0F,0xA6,0xE3,0x3F,0x40,0x58,0xAC,0x61,0xD7,0x91,0x7D,
+0xEC,0x00,0x21,0xEA,0x4B,0x99,0x19,0x75,0x4E,0x42,0x2B,0xAE,0x56,0xF6,0x87,0x6B,
+0xB6,0x5A,0x92,0x03,0xA5,0x60,0x0E,0x8C,0x44,0xCA,0xA9,0x26,0xA8,0xAB,0x24,0xC8,
+0xC1,0x2D,0x17,0xF1,0xE3,0x58,0x70,0xB4,0x9D,0x09,0xB3,0xE5,0xEB,0xCE,0x02,0xEE,
+0xA4,0x48,0xA3,0x20,0x32,0x1B,0xE2,0xF7,0x08,0x7A,0x55,0x96,0x7C,0x3B,0x60,0x8C,
+0x3E,0xD2,0x98,0x81,0xAD,0xE0,0x86,0x0C,0x07,0xC5,0xE5,0x29,0xB8,0x70,0xEF,0x03,
+0xA1,0x4D,0x93,0x15,0x29,0x80,0x62,0x6C,0xA0,0xBB,0x3C,0x57,0x73,0x1D,0x49,0xA5,
+0xB7,0x5B,0xB2,0x22,0xBC,0xF3,0x84,0x1F,0xF2,0xA7,0x72,0x4B,0xD2,0x26,0xD3,0x3F,
+0xD0,0x3C,0x77,0x80,0x30,0x13,0xE8,0xFF,0x8D,0x0D,0xA7,0xE1,0x6C,0xE0,0xAB,0x47,
+0x9C,0x70,0xE5,0x5E,0x7A,0x8B,0x3A,0x67,0xB9,0x28,0xB6,0xC4,0x1A,0xB5,0x88,0x64,
+0x77,0x9B,0x3A,0x6A,0x12,0x1A,0xC3,0xF6,0x59,0x79,0x07,0x95,0x99,0x50,0xEE,0x02,
+0x36,0xDA,0x9A,0x8B,0xE1,0x50,0x7A,0xBC,0xB7,0x80,0x10,0x6C,0xAE,0x71,0xF8,0x14,
+0x6F,0x83,0x78,0x30,0xFD,0xF4,0xC2,0x18,0xD4,0x8E,0x7D,0x62,0x9D,0x9B,0x21,0xCD,
+0x2A,0xC6,0xC8,0xC5,0xCF,0xF9,0xFD,0x15,0xBD,0x08,0x92,0xE4,0xF5,0xDC,0x0E,0xE2,
+0xD2,0x3E,0x06,0xF3,0x05,0x21,0xEF,0xCD,0x87,0x85,0x25,0x69,0xD9,0xCB,0x35,0xD9,
+0x7D,0x91,0x49,0x13,0xF9,0xD4,0xE6,0x38,0x5B,0x71,0x0D,0x9D,0x31,0x97,0x81,0x6D,
+0xB8,0x54,0xF1,0x6E,0xD2,0x4A,0x53,0xA6,0x03,0xE5,0xC1,0x09,0x40,0xF7,0x90,0x7C,
+0xFB,0x17,0x20,0xFC,0x64,0x27,0x88,0xCB,0x5C,0x4E,0x35,0xA2,0xDC,0xEF,0x14,0xF8,
+0xE2,0x0E,0x42,0x87,0x4D,0xB1,0x37,0x5D,0x5F,0x51,0x29,0xBD,0xCC,0x34,0xDF,0x33,
+0x32,0xDE,0x8A,0x9F,0xDD,0xF5,0xE3,0x19,0xFE,0x07,0xDE,0xEB,0x17,0x82,0xB2,0x5E,
+0x7B,0x97,0x28,0x74,0x0D,0xA1,0x67,0x4D,0x0E,0x52,0x7B,0xBE,0xE1,0xCC,0x0A,0xE6,
+0xBE,0x52,0x90,0x09,0x6F,0xB8,0x1C,0x54,0x94,0x9E,0x2D,0x72,0xC0,0xEC,0x0B,0xE7,
+0x4A,0xA6,0x4C,0x21,0x38,0x93,0x60,0x7F,0xA2,0xB3,0x36,0x5F,0x8D,0x40,0xEA,0x06,
+0xD6,0x3A,0x16,0xE7,0x86,0x7E,0x33,0x92,0xC3,0xB5,0x51,0x59,0x48,0xE4,0x8B,0x67,
+0x58,0xB4,0x7D,0x02,0x65,0x30,0x9E,0xDC,0x27,0xC4,0xC4,0x28,0x12,0xA6,0x93,0x7F,
+0xE0,0x0C,0x33,0xF4,0xC9,0xD1,0xD3,0x3D,0xD6,0x86,0x77,0x6A,0x95,0x88,0x3A,0xD6,
+0x8F,0x63,0xF4,0x5C,0x48,0x86,0x05,0x6A,0x4A,0x62,0x0F,0x8E,0x2F,0x85,0x8D,0x61,
+0xB9,0x55,0xD1,0x4F,0x18,0x92,0x41,0x7E,0x89,0x2D,0x83,0xC1,0xCB,0x01,0xED,0x01,
+0x03,0xEF,0xEE,0xCA,0x02,0x1E,0xD7,0xF2,0x1F,0x41,0x79,0xAD,0x6B,0xD5,0x99,0x75,
+0xE6,0x0A,0x52,0x93,0xF0,0x43,0x78,0xAF,0x6D,0x5C,0x16,0xB0,0x14,0x7C,0x4F,0xA3,
+0x1A,0xF6,0x8C,0xB1,0x61,0x10,0xBA,0xFC,0x2C,0x5B,0x50,0xB7,0xE4,0xE8,0x2B,0xC7,
+0x9A,0x76,0x84,0x39,0x55,0x35,0xAB,0xD9,0x1A,0x76,0x4B,0x9A,0xAA,0xBA,0x37,0xDB,
+0x47,0xAB,0x7E,0x1E,0x67,0x38,0x94,0xD4,0x0C,0x5A,0x71,0xB6,0x65,0x1C,0x5E,0xB2,
+0xC6,0x2A,0x56,0xB7,0xFF,0xFC,0xC8,0x10,0x19,0x69,0x57,0x85,0x11,0x58,0x6E,0x82,
+0xC9,0x25,0x15,0xFB,0x4F,0xB9,0x3D,0x55,0x7F,0x50,0x08,0xBC,0xEE,0xEA,0x23,0xCF,
+0xC2,0x2E,0x46,0xA3,0x00,0x16,0xDD,0xFA,0x41,0xFD,0x9B,0x11,0x06,0xB6,0x97,0x7B,
+0xE8,0x04,0x31,0xFE,0x51,0x15,0x8F,0xF9,0xD9,0x39,0xC7,0xD5,0x8C,0xAF,0x04,0xE8,
+0xA2,0x4E,0xC2,0x47,0x3E,0xBB,0x4E,0x57,0x76,0xC7,0x96,0x2B,0x27,0x96,0x96,0x7A,
+0x00,0xEC,0xBF,0x98,0xEB,0xD8,0xF8,0x34,0x5E,0x46,0x3F,0xAA,0x04,0xA7,0x84,0x68,
+0xBE,0x9F,0x07,0x6E,0x5E,0x7A,0x8B,0x02,0x2D,0x73,0x89,0x78,0x66,0x0D,0xBC,0x97,
+0x3F,0xC8,0xD1,0x39,0xF6,0x15,0xE4,0xC5,0x97,0x7E,0x3E,0xCF,0x82,0x75,0x20,0x73,
+0x93,0x29,0x9C,0xD8,0x00,0xAD,0x5C,0x8B,0x10,0x50,0x97,0x66,0xC0,0xC6,0xD1,0x31,
+0x70,0x67,0x31,0x96,0xE5,0x23,0xD2,0xE0,0x4A,0x12,0x8F,0x7E,0xB1,0x53,0x35,0x40,
+0x97,0x09,0xB8,0xF8,0xB3,0xEF,0x1E,0x7A,0xE6,0x1E,0x2F,0xDE,0x5F,0x52,0xDA,0xAE,
+0x06,0x5A,0x7A,0xAB,0x91,0x13,0xE2,0xA4,0x16,0x8A,0x4B,0xBA,0x58,0x14,0x9B,0xA9,
+0xF4,0x07,0xD5,0xF6,0xC8,0xF6,0x07,0x18,0x69,0x23,0x9D,0x6C,0x45,0x7B,0xE9,0xB4,
+0xEE,0x8B,0x43,0x7A,0x4D,0x4C,0xBD,0x27,0xC9,0xF7,0xE9,0x18,0x29,0x81,0x7F,0xD8,
+0xB9,0xA0,0x3F,0x51,0xF9,0x3C,0xCD,0xE3,0xEC,0x1C,0x27,0xD6,0x54,0x0A,0x89,0xA5,
+0x09,0xE5,0xCA,0x14,0xB5,0x33,0xC2,0xA0,0x13,0xAE,0x6A,0x9B,0x6D,0x55,0xEF,0x9C,
+0x91,0x21,0x96,0xD0,0x1C,0xB2,0x43,0x88,0x67,0xEA,0x5A,0xAB,0x5E,0x73,0xFA,0xAF,
+0xA3,0x2C,0xA9,0xDD,0x3B,0x6F,0x9E,0x72,0xA8,0x4C,0x33,0xC2,0x72,0x49,0xEC,0x83,
+0x1D,0xC1,0xFA,0x30,0x9A,0xF5,0x04,0x49,0x06,0x51,0x80,0x71,0x42,0x3D,0xA8,0xB3,
+0xC8,0xA2,0x4C,0x53,0x45,0x57,0xA6,0x34,0x25,0x60,0x92,0x63,0xC3,0x94,0x80,0x32,
+0xA7,0x0C,0x8D,0xFD,0xFC,0x1D,0xEC,0xC7,0x8E,0x59,0x00,0xF1,0x3D,0xC5,0x2F,0xCC,
+0xF6,0x0F,0xDF,0xFE,0xA1,0x37,0xC6,0xB0,0x04,0x40,0x93,0x62,0xF9,0x99,0xB7,0x08,
+0xE4,0x03,0xC1,0xF2,0x68,0x82,0x73,0xCC,0x9B,0xA6,0xEA,0x1B,0x7D,0x05,0xAF,0x8C,
+0x8C,0x92,0x38,0x63,0x5C,0x69,0x98,0x13,0x18,0x43,0x8C,0x7D,0x2C,0xB4,0x4F,0xDD,
+0xC6,0x0A,0xEA,0xFB,0x82,0x25,0xD4,0x81,0x6E,0x16,0xAF,0x5E,0x09,0xA5,0x7B,0xF8,
+0x4A,0xEA,0x86,0x1B,0x20,0x42,0xB3,0x44,0xD0,0xD0,0xD7,0x26,0xA3,0x70,0x04,0x52,
+0xF3,0x38,0xED,0xC9,0xF1,0x27,0xD6,0xF0,0xDB,0x3D,0x31,0xC0,0x81,0x27,0x71,0x70,
+0x39,0xE0,0xFF,0x11,0xC7,0xDF,0x2E,0x3E,0xF7,0x2A,0x0A,0xFB,0x0C,0x90,0x4B,0xFD,
+0x0B,0xED,0xC0,0x1C,0x32,0x9A,0x6B,0x8E,0x9F,0x6D,0x25,0xD4,0x8A,0x7F,0x22,0x7B,
+0x17,0x49,0x78,0xB8,0x89,0xC3,0x32,0x6C,0xAC,0x87,0xFC,0x0D,0x84,0x12,0x41,0x75,
+0xBB,0xA8,0x35,0x59,0x85,0x17,0xE6,0xB4,0xCE,0xC2,0xDB,0x2A,0x55,0x2B,0xA9,0xA4,
+0x92,0x3E,0x8A,0xCF,0xFE,0x0E,0xFF,0xD6,0xDE,0x19,0x10,0xE1,0x4A,0x37,0xAA,0xBB,
+0x24,0x53,0x51,0xA2,0x6C,0x4D,0xBC,0x07,0x42,0x01,0x94,0x65,0xE1,0xC3,0xF5,0x10,
+0x0F,0xCD,0xE4,0x3C,0x11,0x88,0x79,0xBF,0x33,0x61,0x85,0x74,0x75,0x0F,0xAD,0x84,
+0xCE,0x8A,0x62,0x7B,0x23,0xBF,0x4E,0xBA,0x8F,0xB6,0xEE,0x1F,0xB7,0x34,0x54,0x46,
+0x99,0xA1,0x1E,0x50,0x0B,0x4B,0xBA,0x66,0xC2,0x1A,0x0F,0xFE,0x9A,0x2F,0x62,0x6B,
+0xFB,0xB8,0x65,0x49,0x76,0x8E,0x7F,0xDE,0xE3,0x3A,0x0E,0xFF,0x56,0x79,0xF8,0xA7,
+0x2B,0xEC,0xE1,0x1D,0x9D,0xC7,0x36,0x7C,0x15,0x74,0xB6,0x47,0x03,0xDC,0x08,0xF2,
+0x47,0x5D,0x3C,0xAC,0x92,0xEE,0x1F,0x5A,0xD3,0x2E,0x2A,0xDB,0x2B,0xF2,0x0E,0xDA,
+0xDC,0x86,0x7C,0x77,0xCB,0x0B,0xFA,0xE6,0xA3,0xA1,0xD5,0x24,0x6C,0x74,0xCF,0x9D,
+0x26,0x5B,0x5B,0xAA,0x87,0x04,0xF5,0xA5,0x44,0xDB,0x48,0xB9,0xF0,0xB2,0x95,0x01,
+0x05,0x45,0x66,0xB4,0x28,0x59,0xA8,0x57,0xD7,0xE5,0xE5,0x14,0xCC,0xD8,0xC3,0x3D,
+0xFD,0x90,0x4B,0x61,0x0E,0x6A,0x9B,0x42,0xDA,0xD2,0xDF,0x2E,0x37,0xBC,0x5C,0xC6,
+0x63,0x7C,0x39,0x8D,0x41,0x98,0x69,0xFF,0x48,0x03,0x9C,0x6D,0xAD,0x1D,0x67,0x5C,
+0x45,0x55,0x36,0xA4,0xB9,0xE7,0x16,0x78,0xEB,0x29,0x15,0xE4,0x7C,0x24,0x8F,0x8D,
+0x85,0x05,0xA6,0xF4,0xE2,0x11,0xE0,0xD5,0x30,0x9F,0x78,0x89,0x87,0x40,0x10,0x76,
+0x53,0x79,0x0C,0x88,0x01,0x43,0xB2,0x64,0xAA,0x5D,0x20,0xD1,0xCE,0xAB,0xB2,0x3F,
+0xBD,0x80,0x1B,0x71,0xE8,0x19,0xE8,0xD7,0x54,0x00,0x83,0x72,0x46,0x29,0xB8,0xB7,
+0x94,0x16,0xA4,0xE7,0x5D,0x87,0x76,0xFC,0x63,0x21,0x95,0x64,0x44,0x5A,0xC9,0xB5,
+0xB3,0x28,0xBD,0xD9,0xD4,0xE9,0x18,0x1B,0x98,0x58,0x17,0xE6,0xBE,0x1F,0x76,0x4F,
+0xDF,0x99,0x60,0x68,0x17,0x54,0xA5,0x65,0x71,0xEB,0x4D,0xBC,0xBF,0x3E,0x56,0x4E,
+0x5B,0xF9,0x84,0x08,0x83,0xCB,0x3A,0x6E,0xBA,0x86,0xEB,0x1A,0xC1,0xE7,0xF1,0x30,
+0xC4,0x02,0xE0,0xF3,0x22,0x51,0xA0,0x55,0x7E,0xCD,0x64,0x95,0x7E,0x57,0xFE,0x8F,
+0x15,0x41,0x72,0xB0,0xF3,0x34,0xC5,0xE1,0xE9,0x38,0x06,0xF7,0x0D,0xB1,0x6B,0xFC,
+0xF9,0xB0,0x6F,0x41,0xCD,0xD7,0x26,0x3C,0x50,0xCB,0x4C,0xBD,0x6F,0x26,0x9E,0x9E,
+0x96,0x1E,0xAE,0xEF,0xCC,0x39,0xC8,0xD3,0x2E,0x8D,0x74,0x85,0xCA,0xBF,0xA2,0x3B,
+0xB5,0x00,0x93,0xF1,0x8C,0xE2,0x13,0x48,0xA0,0x5F,0x28,0xD9,0x62,0x19,0xAC,0x93,
+0x46,0x4A,0x2A,0xBB,0x4F,0x5F,0xAE,0x36,0x9E,0x82,0xCB,0x3A,0x5D,0x21,0xAB,0xAC,
+0xE2,0x2B,0xEF,0xDA,0x6A,0x91,0x60,0xDD,0xF4,0xD4,0xF7,0x06,0x2D,0x95,0x6F,0xDC,
+0x3B,0xE8,0xF5,0x19,0x61,0x77,0x86,0x30,0xFB,0xF2,0xDE,0x2F,0xB5,0x47,0x25,0x44,
+0x0D,0xC5,0xEE,0x34,0xC4,0x22,0xD3,0xC0,0x46,0xCA,0x5B,0xAA,0x0B,0xD6,0x0A,0xFA,
+0x28,0xF3,0xFD,0x02,0xD2,0x35,0xC4,0xC1,0xBE,0x4D,0x24,0xD5,0x47,0x08,0x98,0xB6,
+0x7D,0xD0,0x8B,0x21,0xBB,0xF4,0x05,0x69,0xB6,0x5E,0x3F,0xCE,0x12,0xAD,0x68,0xE3,
+0x75,0x50,0x03,0xA1,0xD9,0xD3,0x22,0x2C,0x56,0x11,0x90,0x61,0xDC,0x88,0x83,0x2D,
+0x9A,0xBE,0x02,0x4F,0x1A,0x6E,0x9F,0x52,0x2C,0x9C,0x67,0x96,0x65,0x5F,0xED,0x94,
+0x32,0x7F,0x6B,0x8E,0x58,0xA6,0x57,0xD8,0xCF,0x2D,0x35,0xC4,0xA7,0x64,0x14,0x56,
+0x33,0x68,0x7D,0x99,0x80,0x36,0xC7,0x90,0xAF,0x79,0x01,0xF0,0x38,0xF0,0x1F,0xC9,
+0x9D,0x81,0x3A,0x70,0x6D,0xA3,0x52,0xE8,0xB7,0xB1,0xD1,0x20,0xED,0xDD,0xE7,0x1C,
+0x84,0x12,0xB0,0xE3,0x4E,0xB1,0x40,0xD9,0x59,0x37,0xB9,0x48,0xA9,0x09,0x77,0x58,
+0x0C,0xD2,0xF8,0x23,0xA2,0xCA,0x3B,0x4E,0x77,0x31,0x91,0x60,0x1A,0xA7,0x6A,0xEB,
+0x42,0x2B,0x55,0x0E,0xE0,0x57,0xBB,0x8B,0xFE,0xB6,0xA5,0x74,0x8E,0xD5,0xCA,0x23,
+0xB4,0x65,0xED,0xB6,0xB5,0xA7,0xEE,0x2E,0xAA,0x32,0xF1,0xA4,0xC7,0x9C,0x21,0x81,
+0x95,0x45,0xEC,0xB7,0x79,0x3D,0x22,0x78,0xB3,0x49,0xE8,0xC6,0x02,0x59,0x5C,0x39,
+0xD8,0xE9,0x0D,0x56,0x54,0x0B,0x0F,0x63,0x98,0x35,0xC3,0x91,0xF6,0xAD,0x74,0xE5,
+0x64,0x3E,0x66,0x3D,0x96,0xF2,0xCD,0x58,0xDF,0xB3,0x84,0x50,0xC1,0x9A,0x46,0xE0,
+0x15,0x5E,0x77,0x2C,0x02,0xAA,0x59,0x94,0x41,0x06,0x1A,0x7B,0x04,0x5F,0x3B,0x58,
+0x89,0x46,0xF3,0xA8,0xA9,0xF5,0xF2,0x60,0x2C,0xDD,0x77,0xCD,0x47,0x1C,0xA9,0x89,
+0x99,0x9D,0x38,0x63,0xB6,0xF6,0xED,0x7C,0xBA,0x62,0xE1,0xE4,0x5E,0x05,0xD2,0xEB,
+0xFB,0xD8,0x1F,0x44,0x67,0x1E,0x3C,0x45,0x5B,0x2F,0x00,0x48,0x8A,0xD1,0xDE,0x33,
+0xC8,0x32,0xC6,0x9D,0x69,0x7D,0x32,0x28,0xFF,0x97,0xA4,0x54,0xD3,0x88,0x65,0xD1,
+0xA0,0x75,0xE9,0xB2,0xEF,0x14,0xB4,0xC7,0xF2,0xA8,0xA9,0x66,0x96,0xCD,0x90,0x61,
+0x8C,0x62,0xD2,0x89,0x62,0x2E,0x39,0x70,0x2A,0xBA,0x71,0xAC,0x6E,0x35,0xA6,0xAF,
+0x87,0x8F,0x34,0x6F,0x40,0x5B,0x1B,0x27,0xF8,0xD1,0xA3,0x15,0x0B,0x50,0x77,0x1B,
+0x39,0x49,0x4C,0x17,0xEA,0x24,0xB1,0xF2,0x18,0xBD,0x43,0x99,0x6C,0x37,0xD5,0xDE,
+0x4F,0x1C,0x6F,0x34,0xCF,0x10,0x94,0xE3,0x80,0x6F,0xDB,0xD3,0x20,0x7B,0x0B,0x4C,
+0xCC,0xF9,0x09,0x52,0x9E,0xF0,0xC5,0x52,0x11,0x96,0x4A,0xBB,0xCB,0x90,0x3F,0x93,
+0x53,0x1F,0x70,0x2B,0x1A,0xE8,0x41,0xCE,0x1D,0x88,0x46,0xA9,0x7E,0x25,0xF6,0xEF,
+0xD9,0x06,0xE3,0xB8,0xDE,0x70,0x85,0x92,0x1E,0xDA,0x45,0xF8,0x54,0x0F,0xAB,0x98,
+0x72,0x3F,0x71,0x2A,0x20,0xDF,0x7B,0xC3,0xB0,0x1B,0xEB,0x97,0x1E,0x45,0x12,0x6B,
+0x51,0x0E,0x63,0x38,0xA1,0xF7,0xFA,0x6A,0xD3,0xAD,0x88,0x42,0xBC,0xE7,0xCD,0x16,
+0xFF,0x13,0xD0,0x8B,0x91,0xB3,0xCA,0x1E,0x3E,0xFE,0x65,0xFC,0x26,0x7D,0x6C,0x2D,
+0x30,0xB5,0xB9,0xE2,0xBD,0xA5,0xE6,0x24,0x33,0xC1,0x68,0xCE,0xFB,0xA0,0x4B,0xD7,
+0x44,0xF1,0x89,0xD2,0x8E,0xB0,0xD5,0x02,0xF7,0x9D,0xAC,0x56,0x7A,0x21,0xE2,0xFF,
+0xBB,0x43,0xC4,0x9F,0xB7,0xD6,0xEC,0x5D,0xB2,0x68,0xE9,0xE6,0x75,0x2E,0xAE,0xBC,
+0x9E,0xA8,0x0A,0x51,0xCA,0x20,0x91,0xD6,0x99,0x14,0xC2,0xB1,0x05,0x5E,0x1A,0x78,
+0x3E,0x7C,0x7E,0x25,0xA6,0xB6,0xFD,0x2C,0x15,0x82,0x4E,0xAB,0xBF,0xE4,0x9F,0x47,
+0x41,0xD5,0xA8,0xF3,0xBB,0xC4,0xE0,0x43,0x48,0x2D,0x13,0x59,0x5A,0x01,0xC6,0xFB,
+0xB1,0x41,0xCC,0x97,0xBC,0x85,0xE7,0x05,0x1B,0xEF,0x40,0xC8,0xA6,0xFD,0xE4,0x25,
+0x1D,0x4D,0x6C,0x37,0x52,0x6A,0x09,0x04,0x75,0x66,0x2E,0x2F,0x6A,0x31,0xB2,0xBF,
+0x47,0x0F,0x74,0x2F,0x23,0x8E,0x78,0x91,0x3B,0xCB,0x60,0xCC,0xE4,0xBF,0x57,0xD4,
+0xC0,0x21,0xDD,0x86,0x61,0x7F,0x3A,0x22,0xDA,0x86,0x81,0x60,0x5C,0x07,0xA1,0x9A,
+0x7A,0x2C,0x6A,0x31,0x85,0xE3,0xDE,0x5A,0x8D,0x50,0xD6,0xE1,0x33,0x68,0x09,0x5D,
+0x20,0x6E,0x72,0x29,0xF9,0x35,0xA2,0xF0,0xC0,0xAF,0x9B,0x53,0x83,0xD8,0xF5,0x11,
+0x0E,0x68,0x5A,0x01,0x4A,0x28,0x11,0x5E,0x00,0xE7,0x5B,0xDB,0xF8,0xA3,0x19,0x86,
+0xE0,0xEE,0x32,0x69,0x0E,0xB8,0x55,0x8A,0x93,0x6D,0xC8,0xC2,0xEA,0xB1,0x3A,0xB7,
+0xF8,0x26,0xE2,0xB9,0xDB,0x40,0x80,0xA7,0x7A,0x2A,0x21,0x6C,0x7F,0x24,0xD7,0xCF,
+0x98,0x72,0xD6,0x8D,0x44,0x4B,0x1F,0x33,0x6D,0x3C,0x36,0x6D,0xEF,0xB4,0x0F,0x87,
+0x7B,0xC3,0x84,0xDF,0x86,0xB2,0xDD,0x08,0xAC,0x55,0xF7,0xC5,0x27,0x7C,0x4D,0x0D,
+0x01,0x4E,0x73,0x28,0x3F,0xDC,0x64,0xDF,0x42,0x54,0x19,0x2A,0x9A,0xC1,0x8E,0x73,
+0xE1,0x01,0xDC,0x87,0xF1,0x37,0xAA,0xFA,0xC2,0xDC,0x99,0x22,0xBD,0xE6,0xEC,0x36,
+0xE9,0x12,0xC7,0x9C,0xA4,0xC7,0xFF,0x5F,0xE1,0xAA,0xBA,0x77,0x7C,0x27,0x85,0x9E,
+0x11,0x95,0xB8,0xE3,0xE8,0x55,0xB3,0x81,0xD7,0xB9,0x8C,0x52,0x6B,0x30,0x93,0x9F,
+0xAC,0xAD,0x3D,0x66,0x56,0x7A,0x0D,0x10,0xFA,0xA2,0xA1,0x64,0x3E,0x65,0x36,0x6F,
+0xA3,0x8B,0x14,0x4F,0xCE,0x30,0x95,0xC2,0x39,0xB8,0x62,0xBD,0xD8,0x83,0x3D,0x82,
+0xC9,0xDD,0x28,0x73,0xBE,0xF4,0xE5,0x76,0x58,0x7D,0x03,0x19,0x16,0x4D,0x18,0x69,
+0xF7,0x00,0xCB,0x90,0x81,0xF3,0xDA,0x4E,0x12,0xC4,0x49,0xEA,0xAB,0xF0,0xDB,0x17,
+0x79,0xD2,0x97,0xCC,0x29,0xFD,0x72,0xE8,0x0C,0xF9,0x57,0xC9,0x70,0x2B,0x9B,0x8C,
+0x07,0x94,0xAF,0xF4,0x8C,0xC1,0xD7,0x71,0xA2,0x38,0xF9,0xA6,0x9E,0xC5,0x9A,0x63,
+0xBE,0x67,0xE5,0xBE,0xEE,0x34,0xB5,0xE6,0x53,0x25,0x08,0x4A,0x7D,0x26,0xA4,0xBE,
+0x29,0x92,0x87,0xDC,0x9D,0xA1,0xC6,0x00,0x10,0xB7,0x4B,0x9B,0x18,0x43,0x75,0x0A,
+0xED,0xD9,0x08,0x53,0x22,0xAE,0x79,0xB0,0xEB,0xD3,0xB0,0x04,0x82,0xD9,0xD4,0x31,
+0x26,0xB4,0xAE,0xF5,0x5C,0x09,0x07,0x69,0x8B,0x37,0xD0,0x80,0x1D,0x46,0x40,0x3A,
+0xCF,0x07,0xF4,0xAF,0x5D,0x29,0x06,0x48,0x3A,0xEA,0x61,0xEC,0xA0,0xFB,0x83,0x44,
+0x34,0x7E,0x76,0x2D,0xA7,0x96,0xFC,0x0D,0x04,0xF3,0x5F,0xCB,0xCE,0x95,0x0A,0xA3,
+0x03,0x5F,0x60,0x3B,0xA5,0xE7,0xFE,0x7E,0x92,0x4C,0xC9,0xE2,0x50,0x0B,0xBF,0x88,
+0xFD,0x02,0xC3,0x98,0x2D,0xED,0x76,0xFC,0x6B,0x5B,0x30,0x0C,0x0A,0x51,0x56,0x3B,
+0x67,0xC0,0x9B,0xC0,0x64,0x4F,0x3F,0x17,0x17,0xF1,0x4C,0xDA,0x58,0x03,0xB5,0x8A,
+0xBC,0x76,0xF6,0xAD,0x9F,0xD0,0xC4,0x73,0x47,0x61,0x1C,0x1A,0xAE,0xF5,0xEE,0x27,
+0x1F,0x5C,0x7F,0x24,0x4E,0x38,0x15,0x4A,0x6E,0x6E,0x35,0x3C,0xD1,0x8A,0x16,0xA0,
+0x8D,0x8D,0x3C,0x67,0xD4,0x03,0x8F,0xEB,0x82,0x1C,0xD9,0xA2,0x23,0x78,0x59,0x1D,
+0x80,0xBA,0x06,0x5D,0x2F,0x9C,0x74,0x8F,0x57,0x31,0x0C,0x5A,0x10,0x4B,0x7F,0x08,
+0x13,0x84,0xAB,0xF0,0x13,0xCA,0x48,0xE5,0x49,0x0C,0x12,0x79,0x4D,0x16,0xD0,0xFA,
+0xF4,0xFE,0x36,0x6D,0x8F,0x90,0xD4,0x23,0x94,0x2B,0xCF,0x83,0x42,0x19,0x9C,0xB9,
+0x84,0x71,0xC9,0x92,0xC8,0x51,0x93,0xA5,0x4F,0x6B,0x14,0x18,0xA7,0xFC,0xC5,0x05,
+0xCD,0xFB,0xF3,0xDC,0x5A,0xD5,0x75,0x4A,0x3D,0xE8,0x12,0x10,0xD3,0xFC,0x81,0xB8,
+0x36,0x82,0x71,0x5E,0xA0,0x6A,0x8F,0x0F,0x03,0xF1,0x2C,0x37,0xBD,0x92,0x08,0x5F,
+0x01,0xA3,0x67,0x48,0xA2,0x1B,0x8D,0x7C,0x95,0x4E,0xBA,0x1E,0x23,0x0C,0xBD,0x74,
+0xFF,0xFE,0xC4,0xEB,0x2A,0x11,0x05,0xFE,0x6C,0x59,0x43,0xF0,0x79,0x56,0x54,0xC7,
+0xBC,0x9B,0xE2,0xCD,0xE9,0xC8,0xC6,0xE4,0x54,0x27,0x7B,0xB6,0x0E,0x21,0xA6,0x42,
+0x2B,0x6E,0x80,0xAF,0x9A,0x5D,0xB5,0x02,0x17,0xB5,0x38,0x67,0x6B,0x44,0x77,0xF6,
+0xEF,0x25,0x0F,0x20,0x25,0x52,0x0A,0xB2,0xEC,0xD1,0xC3,0xF8,0xF1,0xDE,0xD6,0xCD,
+0x24,0x48,0xA9,0x86,0x5B,0xF5,0x74,0x6B,0x8C,0x35,0xA3,0x7C,0x6E,0x41,0x42,0xC6,
+0x82,0x46,0x01,0x2E,0x28,0x60,0x07,0x8D,0x50,0x33,0x7F,0xA6,0x63,0x4C,0x7D,0xF4,
+0x11,0x78,0xAC,0x83,0x14,0x36,0x3B,0xE7,0x4E,0x0E,0x61,0x85,0x3E,0x11,0xD2,0x06,
+0xF6,0x02,0x31,0x1E,0x88,0x6C,0xA7,0x21,0x93,0x29,0xBC,0x7F,0x31,0x1E,0x9E,0x45,
+0x86,0x8D,0xCE,0xE1,0xCF,0xAD,0xE0,0xA7,0x48,0x69,0x67,0xE4,0xD4,0xFB,0xC7,0xF9,
+0x65,0x3C,0x9C,0xB3,0x63,0xB3,0x4C,0x15,0x10,0xF3,0x3F,0x26,0x2B,0x04,0xB7,0x76,
+0xBE,0x8A,0xF1,0xDE,0x98,0x2C,0xB7,0x71,0x40,0x63,0x6F,0xE6,0xDD,0xF2,0xEC,0xDB,
+0x1D,0xA0,0x78,0x57,0x49,0xC4,0x66,0x48,0x69,0x6C,0x46,0xC0,0xA2,0x8D,0x14,0x5C,
+0x8F,0x71,0x3B,0x14,0xD3,0xFF,0xFC,0xE9,0x85,0x1E,0xAA,0x5E,0x50,0x7F,0x5B,0xE1,
+0x9A,0x8E,0xD1,0xFE,0x43,0xB7,0x6C,0x31,0x6A,0x3E,0x45,0x91,0x9C,0xB3,0x0D,0x7B,
+0x79,0x3F,0x83,0xAC,0x81,0x4E,0xAE,0x0A,0xAB,0x57,0x84,0x39,0x54,0x7B,0x4F,0xF1,
+0x03,0xB2,0x74,0x5B,0x38,0x20,0x17,0xDD,0x45,0x56,0x6A,0xD6,0xE9,0xC6,0x8C,0x8F,
+0xE3,0xFD,0xDB,0xF4,0xF6,0xCB,0xD9,0xF8,0xC5,0xDE,0xEA,0xDE,0xCE,0xE1,0xEE,0xCA,
+0x22,0x92,0x75,0x5A,0xFE,0xC9,0xD1,0xF2,0xC7,0xAD,0xE8,0xAF,0xF0,0xDF,0xF7,0xED,
+0x0C,0x94,0x5D,0x72,0x4D,0xD4,0x62,0x5C,0x07,0xE5,0x28,0x27,0x8B,0xA4,0x1B,0x7A,
+0xE2,0x12,0x35,0x1A,0x09,0x44,0x26,0x88,0x94,0x6F,0xBB,0x3E,0x99,0xB6,0x38,0x4B,
+0xFA,0xDA,0xE5,0xCA,0xDC,0xBC,0xF3,0xA5,0x7D,0x28,0x52,0x90,0x0C,0x23,0xD5,0x33,
+0xCB,0x21,0x2F,0x00,0xB9,0x08,0x96,0x74,0x5F,0x7F,0x70,0xE5,0x65,0x4A,0x1A,0x95,
+0xF5,0xFC,0xCC,0xE3,0x86,0x0F,0xA9,0x4C,0x15,0xC6,0x3A,0x16,0xD8,0xF7,0xD9,0xEB,
+0x7B,0x2E,0x90,0xBF,0x2E,0x01,0x01,0xEA,0x0B,0xFB,0x24,0x35,0x03,0x2C,0x99,0x70,
+0x05,0x68,0xA8,0x87,0x8B,0x3D,0xA4,0x73,0xA5,0x3A,0x8A,0x5A,0xED,0xC2,0x98,0x9F,
+0xEB,0xEE,0xC0,0xEF,0xA3,0x3B,0x8C,0x5D,0xE6,0xA8,0xC9,0x8B,0x0F,0x20,0x87,0x62,
+0x13,0x69,0xBF,0x90,0xEF,0xA9,0xC0,0x83,0xD0,0xBB,0xFF,0xAE,0x18,0x37,0x91,0x63,
+0xAE,0x51,0x3A,0x15,0x51,0x86,0x7E,0x12,0xFD,0xA0,0xD2,0x98,0x4D,0x62,0x34,0x93,
+0xA1,0x77,0x13,0x3C,0xC9,0xCC,0xE6,0xC0,0x3E,0xBA,0x11,0x41,0xAB,0x84,0x3F,0x7E,
+0xFD,0xEF,0xD7,0xF8,0x96,0x4F,0xB9,0x1C,0x39,0xFC,0x16,0x00,0x55,0x7A,0x6E,0xD1,
+0x32,0x49,0xBE,0x91,0xBA,0x59,0x95,0x26,0x34,0xC3,0x1B,0x32,0x88,0xA7,0x49,0x2B,
+0x46,0x0D,0x8E,0xA1,0x89,0x4C,0xA6,0x00,0xF0,0x9F,0xDF,0xAA,0x09,0x26,0xE0,0x03,
+0xB9,0xBF,0xC3,0xEC,0xB0,0x2A,0x9F,0x5F,0xB5,0x6A,0x9A,0x1A,0x06,0x29,0xAC,0x40,
+0x51,0xE3,0x77,0x58,0x1D,0x14,0x32,0xCC,0x1A,0x8A,0x35,0x55,0x0D,0x22,0xF4,0x13,
+0xDB,0xFA,0xE4,0xCB,0xD9,0x8C,0xF6,0x90,0x19,0xD8,0x36,0x04,0x27,0x08,0xA9,0x64,
+0x70,0xC3,0x76,0x59,0x27,0x23,0x08,0xC1,0xB7,0x19,0x98,0x6B,0x6D,0x42,0x10,0x97,
+0x53,0xF2,0x64,0x4B,0xA6,0x0B,0x89,0x68,0xD4,0xAF,0xFB,0xBE,0xCF,0xE0,0xCF,0xEA,
+0x1F,0xB1,0x6B,0x44,0x55,0x96,0x7A,0x06,0x72,0x64,0x5D,0xD3,0x19,0x36,0xB0,0x43,
+0x45,0xF3,0x73,0x5C,0x24,0x72,0x0B,0x93,0x3C,0xC9,0x13,0x30,0x97,0xB8,0x55,0x28,
+0xC2,0xDD,0xDA,0xF5,0x66,0x83,0x49,0x20,0xDD,0x84,0xF2,0x9C,0x2F,0x00,0xA3,0x66,
+0x78,0xD0,0x6D,0x42,0x82,0x1F,0xAD,0x58,0x8A,0x52,0xA5,0x1D,0x40,0x6F,0x0B,0xA1,
+0x9C,0x54,0x0D,0x22,0xCD,0xDC,0xE2,0xD4,0x9E,0x16,0xB1,0x4D,0x76,0x59,0x18,0x84,
+0x3C,0x80,0x79,0x56,0xA1,0x4A,0x8E,0x2E,0x12,0x80,0x3D,0x57,0xCC,0xE3,0x9D,0xBB,
+0x43,0x29,0xAF,0x80,0xBC,0x38,0x93,0x41,0x4F,0x2F,0x60,0xA5,0x29,0x06,0xC4,0x07,
+0xB3,0xBD,0xCB,0xE4,0xBB,0x79,0x94,0x07,0x1C,0xED,0x33,0x34,0xD5,0xFA,0xE6,0xD9,
+0x66,0xC2,0x61,0x4E,0x91,0x0E,0xBE,0x5A,0xD8,0xB1,0xF7,0xAC,0xB2,0x9D,0x44,0x1C,
+0x17,0xA2,0x70,0x5F,0x05,0x56,0x2A,0x96,0x46,0x04,0x69,0x87,0x77,0x58,0x39,0xA4,
+0x8B,0xBA,0xF4,0xDB,0xAE,0x09,0x81,0x62,0x2B,0xDF,0x04,0x31,0x34,0x1B,0xAB,0x75,
+0x9B,0x61,0x3F,0x10,0xB1,0x0A,0x9E,0x7E,0xBD,0x60,0x92,0x18,0x2D,0x02,0xD0,0x17,
+0x40,0xD7,0x52,0x7D,0xE7,0xAB,0xC8,0x89,0xF9,0xB4,0xD6,0x88,0xFD,0xD2,0xC8,0xDF,
+0xB6,0x99,0xEA,0xC5,0xB2,0x5B,0x9D,0x2C,0xAD,0x30,0x82,0x58,0xB4,0x9B,0x23,0x7D,
+0x97,0xB9,0xEB,0xC4,0x7E,0xC1,0x51,0x7A,0xB4,0x4B,0x9B,0x3A,0x71,0x5E,0x5E,0xC5,
+0xDA,0x15,0x0A,0x25,0x53,0xF7,0x7C,0x61,0x9F,0x37,0xB0,0x6D,0x85,0xAA,0x76,0x19,
+0x85,0x73,0x33,0x1C,0x47,0xA7,0x68,0x25,0xFF,0xD3,0xD0,0xE9,0x78,0x57,0x75,0xE7,
+0x3B,0xB5,0x4B,0x64,0xED,0xD8,0xC2,0xF0,0x1F,0xBF,0x30,0x65,0x1F,0x30,0xD7,0x22,
+0x4D,0xE0,0x68,0x47,0xC8,0xEC,0xE7,0xE1,0x87,0x6D,0xA8,0x2F,0x53,0x7C,0x09,0xB0,
+0xCE,0x05,0x0E,0x21,0x99,0x0C,0xB6,0x50,0x16,0x94,0x39,0x47,0xB8,0x97,0x3D,0x6F,
+0xF9,0x24,0x18,0x37,0x60,0xE2,0x4F,0x47,0x5C,0x2D,0x73,0xB4,0xF9,0xD6,0xDC,0xCF,
+0xCA,0xCE,0xC1,0xEE,0x6E,0x81,0x41,0x2A,0xF8,0x95,0xD7,0xA8,0xA0,0x8F,0x67,0x2D,
+0xA2,0x89,0xEE,0xC1,0xE8,0xE8,0xC7,0xC5,0xF5,0xAA,0xDA,0x9A,0xE5,0xCA,0x92,0x9D,
+0x8E,0x9E,0xD5,0xFA,0x65,0xD2,0x4A,0x72,0x2D,0xB8,0x02,0x50,0x1D,0x32,0xA4,0x53,
+0x13,0x2B,0x9C,0x35,0x51,0x5C,0x8F,0xDE,0x86,0x09,0x06,0x02,0xBB,0x74,0xFB,0x4D,
+0x8C,0xBF,0x03,0x3E,0x31,0xB8,0x0B,0xBE,0xF8,0x77,0xA1,0xDB,0xD6,0xD2,0x5D,0x86,
+0x16,0x1E,0x99,0x05,0xCA,0xDC,0x94,0x45,0x47,0xC8,0xAE,0x6B,0x9D,0x5D,0xD2,0x42,
+0x73,0xCF,0xFC,0xB1,0x89,0x4E,0x45,0x06,0x34,0xBB,0x3B,0x8D,0x68,0x3F,0xB0,0xD5,
+0x04,0x3D,0x8B,0x34,0xB1,0x30,0x03,0x3E,0xF7,0x78,0xE2,0x97,0x0D,0x19,0x96,0x96,
+0x5E,0xD4,0xD1,0x87,0x48,0x27,0xED,0xC7,0x7F,0xF0,0xE8,0x15,0x50,0xBA,0x35,0x68,
+0xC0,0x61,0x4F,0xAC,0xDE,0x98,0xC4,0x51,0x7D,0xF2,0x99,0x66,0x71,0xAC,0x23,0x5F,
+0xAE,0xE8,0x21,0x4B,0xE0,0x81,0xE3,0x6F,0x87,0x08,0x26,0x23,0x08,0x2E,0xA1,0xA4,
+0x2D,0x32,0xA2,0x12,0x58,0x77,0xAD,0xD7,0x0E,0x81,0x0C,0x80,0x82,0xE6,0x69,0xE6,
+0xDF,0x7D,0x50,0xAF,0xB4,0x05,0x33,0x3B,0x94,0x1B,0x37,0x21,0x53,0xA5,0x2A,0x74,
+0xA0,0x85,0x2F,0x28,0x9D,0x0A,0x15,0x12,0x45,0xCA,0xDF,0x18,0x79,0x2C,0xA3,0xD7,
+0x56,0xDE,0xD9,0x85,0xCD,0x9A,0xD5,0x42,0xBE,0x31,0x40,0x7C,0xCF,0x41,0xCE,0x0C,
+0xA9,0xAE,0x26,0x0A,0x95,0x00,0x17,0x1A,0x12,0x9D,0x5E,0xCE,0x7E,0x13,0x9C,0xEF,
+0x4C,0xF7,0xC3,0xB6,0x4E,0x40,0x8C,0xC1,0x55,0xDA,0x9F,0x48,0xF1,0xEC,0x63,0x9F,
+0x43,0xBB,0xCC,0xF5,0x93,0x67,0x76,0x1C,0xC9,0x46,0xC5,0x8E,0x8B,0x71,0xFE,0x78,
+0x1E,0x14,0x91,0x07,0x8D,0x5A,0x55,0x02,0xF5,0x7A,0x93,0xE4,0xB5,0xDC,0x53,0xEB,
+0x71,0xBC,0xFE,0xC0,0xA0,0x41,0x63,0x2F,0x01,0x8E,0x4F,0xCC,0x29,0x38,0xB7,0x93,
+0xE4,0x51,0x6B,0xB8,0x49,0x06,0xCD,0xC6,0xD4,0x5B,0xB7,0xE1,0xE1,0xE8,0x67,0x8B,
+0xF6,0x72,0x79,0x89,0xDA,0x8C,0xD4,0x55,0x90,0x1F,0x27,0x35,0x67,0x80,0x0F,0x65,
+0x8D,0x9E,0x02,0x1E,0x1A,0xC4,0x5C,0x95,0x23,0xAC,0x3A,0x9B,0x61,0xA8,0x27,0x4B,
+0xB3,0x87,0x3C,0x39,0x18,0xB7,0x2D,0x97,0x2B,0xA4,0x38,0x91,0x0E,0x06,0x89,0x8A,
+0x94,0xE5,0x1B,0x7C,0x98,0x3F,0x25,0x17,0xE5,0x6A,0xD3,0xB4,0x41,0xA9,0x26,0x6A,
+0x29,0x26,0xA6,0x02,0x76,0x3E,0xCA,0xF9,0x5C,0xD3,0xBD,0x63,0xCC,0x5E,0xD1,0x10,
+0xE1,0x64,0x6E,0x88,0xB7,0x57,0x62,0x38,0x9E,0x11,0x44,0x58,0x7D,0x0C,0x83,0xF3,
+0xD6,0x56,0x59,0x8D,0xE3,0xD3,0xB2,0x6C,0x14,0x9B,0x3F,0xA9,0x84,0xCE,0x41,0xC8,
+0x30,0x5D,0xBF,0x60,0x20,0xC9,0x6B,0xAF,0x8C,0x03,0x75,0x7B,0xA2,0xE7,0x68,0xC7,
+0x65,0xF8,0xEA,0x90,0x0D,0xD2,0x5D,0x82,0x32,0xBD,0x5A,0xEA,0x9A,0x62,0xED,0x7A,
+0x72,0xEE,0xFD,0x91,0x3B,0xC1,0x78,0xB4,0x7E,0xF1,0xC8,0x34,0x1D,0x1D,0x92,0x82,
+0x90,0xF1,0x1F,0x6C,0x78,0x53,0xA9,0xF7,0x56,0xD9,0xCE,0x1A,0x9B,0x75,0xFA,0x6C,
+0x7E,0xF0,0xF1,0x83,0xD6,0x92,0xC6,0x59,0xF3,0x7C,0xF2,0x83,0xDD,0x4D,0xC2,0x12,
+0xA5,0xB0,0x2A,0x18,0xC8,0xAF,0xE5,0x47,0x5B,0xD4,0xFC,0x25,0x0F,0x11,0x9E,0x9C,
+0x18,0x73,0x97,0x66,0x82,0x16,0x16,0x0D,0x64,0xEB,0xFB,0x1D,0xD2,0xF2,0x7D,0xA2,
+0xB2,0xA6,0x3D,0x19,0x09,0xC6,0x4D,0x86,0x7B,0xF4,0xF8,0x01,0x01,0xB9,0x36,0x3A,
+0x10,0x79,0x9F,0x64,0x6A,0x70,0x98,0xE5,0xFA,0x75,0xD0,0xA8,0x30,0xAB,0x24,0x19,
+0x5A,0xC0,0xD5,0x97,0xC4,0xB1,0xF7,0x4B,0x04,0x8B,0x7F,0xF9,0x09,0x39,0xB6,0xB2,
+0x70,0x9D,0xFF,0xE0,0xC7,0xE3,0xA6,0x48,0xC0,0x4F,0xE7,0xA5,0x10,0xAA,0x25,0x38,
+0x7B,0xC5,0xF4,0xB3,0x68,0x03,0xE9,0xE7,0x6D,0xE2,0xD9,0x36,0x4C,0x1E,0x91,0xD0,
+0x74,0x89,0xFB,0xF0,0x2D,0xF6,0x59,0xA2,0x54,0xDB,0xBF,0x69,0xFE,0x53,0xDC,0x2F,
+0xF5,0x20,0x7A,0xD8,0xE9,0xAA,0xC1,0x66,0x67,0xE8,0xAA,0x4F,0xBA,0x63,0xEC,0x5B,
+0x28,0x07,0xA7,0x22,0xE4,0x95,0xF3,0x6B,0x4B,0xC4,0xBC,0x75,0x1C,0x0A,0x85,0x94,
+0xA8,0x8F,0x27,0x2A,0xC1,0x84,0xC7,0x4E,0x66,0xE9,0x8A,0x6E,0x4E,0x16,0x99,0xDA,
+0x54,0xAD,0xDB,0xF4,0x92,0x46,0x56,0x1D,0x61,0xEE,0xCB,0x28,0xDA,0x72,0xFD,0x2A,
+0xB1,0xF4,0x3E,0x48,0xCF,0xE9,0xA4,0x40,0x7C,0xF3,0xB9,0x47,0x73,0xA4,0x2B,0x55,
+0x0B,0x71,0x84,0x77,0x43,0x7F,0xBE,0xCC,0x10,0x9F,0x2F,0xBD,0xA7,0xD0,0x5F,0xF5,
+0x3D,0x62,0xB2,0x52,0x57,0x3B,0xEE,0xD8,0x5F,0xD0,0xEC,0x31,0x23,0xB0,0x3F,0x11,
+0x52,0xCA,0xDD,0x95,0x00,0xED,0x6F,0x8F,0xBB,0x34,0x70,0x49,0x2E,0x07,0x88,0xAB,
+0xEA,0x3C,0x65,0xDB,0xE1,0xA0,0xC3,0x6E,0xF9,0x76,0x81,0xFA,0x00,0xAE,0x21,0x2C,
+0x64,0xD9,0xEB,0xB0,0xAF,0x0D,0x20,0x20,0x88,0x07,0x65,0x6F,0x42,0xB6,0x39,0x76,
+0xF8,0x1F,0x77,0xEA,0x42,0x5E,0x9E,0xCD,0x8E,0x01,0x04,0x08,0xE6,0xD7,0x58,0xB3,
+0x0C,0x37,0x83,0x36,0x69,0x22,0xC9,0xE6,0xA3,0x2C,0x32,0x13,0x4A,0x36,0xB9,0xFE,
+0xC9,0x4A,0x46,0x8E,0x70,0x59,0xAB,0xFF,0x6F,0xE0,0xA8,0x45,0x6A,0x37,0xB8,0xDF,
+0x80,0xA1,0x0F,0x2C,0x24,0xDD,0x7B,0xAB,0x3A,0xB5,0x58,0xE0,0x24,0x8F,0x00,0x29,
+0x50,0xB9,0xDF,0xE4,0x60,0x09,0xEB,0xEF,0x6C,0xE3,0xF9,0x17,0x92,0xE2,0x6D,0xF2,
+0x49,0xC2,0xC6,0x86,0xF6,0xB6,0xC2,0x79,0x73,0xFC,0xFA,0x0B,0x49,0x29,0xA6,0xE2,
+0x0A,0x50,0x85,0x57,0x9B,0x6D,0x74,0x14,0xD8,0x57,0xA5,0xFF,0x51,0xAD,0x22,0x7E,
+0xCF,0x2D,0x40,0xEF,0x05,0xD8,0x5F,0x8A,0x4C,0xC3,0xFD,0x33,0x31,0xBC,0x33,0x0F,
+0x60,0xCD,0xEF,0xA0,0xF0,0xD1,0xA3,0x7F,0xB8,0x37,0x21,0x1B,0x6D,0x08,0x87,0xE7,
+0x98,0xFB,0x17,0x6E,0x28,0xC3,0x69,0xA7,0x35,0xBA,0x1B,0xAC,0x7A,0x33,0xBC,0xCB,
+0xDD,0x0E,0x52,0xDE,0x25,0xFC,0x5B,0xAA,0xB3,0x3C,0x72,0x43,0x3D,0x1C,0x93,0xA3,
+0x84,0xB5,0x0B,0x3C,0x81,0x44,0x47,0x0E,0xBD,0x32,0x11,0x2E,0xD7,0xC5,0x4A,0x90,
+0xC5,0x54,0x4A,0x9C,0xCB,0xFD,0xB4,0x44,0x44,0xCB,0xFF,0x39,0xF6,0xD3,0x5C,0xA7,
+0x2E,0x60,0xA1,0x43,0x5A,0x04,0xDC,0xD5,0x15,0x9A,0x1F,0x88,0x13,0xB5,0x3A,0x24,
+0x62,0xBE,0xED,0xD1,0xC2,0xD6,0x96,0x4D,0x30,0xBF,0x2B,0x99,0x46,0x96,0x19,0x52,
+0x05,0x1C,0x8A,0x14,0x22,0xBA,0x1A,0xAD,0x9A,0x15,0x54,0x4C,0x80,0xEE,0x61,0xEC,
+0x8F,0xBB,0x42,0x8E,0x03,0x1B,0xCF,0x6E,0xAC,0x8E,0x60,0x54,0x23,0xEF,0x1C,0x85,
+0x40,0x1D,0x2B,0xE7,0x2F,0x0D,0xE3,0x54,0xA1,0xB1,0x6D,0x66,0xFE,0x32,0x3B,0x7F,
+0x34,0x59,0x1B,0xD7,0x1C,0x18,0xD0,0x72,0x65,0xED,0xA9,0xFE,0x7F,0xB3,0x92,0x57,
+0xCB,0xEB,0x56,0x9A,0x25,0x7E,0xE9,0x2D,0x20,0x18,0xEC,0x4E,0x70,0xBC,0xDE,0x14,
+0x23,0xB7,0xE2,0x2E,0x88,0x40,0x44,0xBE,0x8F,0xF8,0x43,0x01,0x7B,0xB7,0x86,0x47,
+0xA9,0xAE,0x71,0xBD,0x4C,0xD8,0x80,0xE2,0x8C,0xAA,0x40,0x50,0x51,0x9D,0xDB,0x30,
+0x02,0x97,0xE3,0x2F,0xB2,0x77,0x7E,0xB3,0x22,0x6B,0xEE,0x3F,0x1B,0xD7,0x62,0xC3,
+0x21,0xA6,0xF1,0x3D,0x33,0x5F,0xFF,0x1A,0x41,0xDD,0x8D,0xEA,0xB9,0x75,0xBD,0xBE,
+0x6D,0xE5,0xFE,0x32,0xC0,0xC2,0x0C,0x74,0xE7,0x16,0x2B,0x87,0x6F,0xA3,0xC2,0x17,
+0x37,0xA7,0xE6,0x2A,0xB1,0x26,0x7D,0xE1,0xA9,0xBB,0x65,0x64,0xE1,0x2D,0x27,0x7C,
+0xB0,0x89,0x4F,0x83,0xF3,0xD7,0x3F,0x52,0x48,0xF6,0x84,0xC8,0x59,0x95,0xD1,0x32,
+0x0A,0x84,0xF8,0x34,0x17,0x4B,0xDB,0x2A,0x1F,0x20,0xD3,0x49,0x36,0xFA,0x79,0xF5,
+0xEE,0x00,0x98,0x54,0x58,0x88,0x94,0xA6,0x0B,0x64,0xC7,0x19,0x00,0xCC,0x6A,0xD0,
+0x4E,0xD4,0xEC,0x20,0x34,0x1E,0xF8,0x5C,0x87,0xF2,0x4B,0x03,0xBA,0x76,0xEF,0xEF,
+0x31,0x7D,0x3A,0xF6,0x29,0x6C,0xE5,0x33,0xDA,0x5D,0x16,0xF1,0x5F,0x93,0xB6,0x53,
+0xC1,0xE9,0x5E,0x92,0x2E,0x2D,0xE2,0x75,0x89,0x9F,0x45,0x60,0xA3,0x6F,0x94,0x8D,
+0x14,0x96,0xF4,0x38,0x04,0x5A,0xC8,0x28,0x4D,0xC3,0x81,0xF8,0xC4,0x08,0x36,0x48,
+0x65,0xF6,0xE5,0x29,0x90,0x02,0x5C,0xE4,0xD3,0x76,0x1F,0xD3,0x01,0xCD,0x4B,0xF0,
+0xF9,0xEE,0x61,0xAD,0x3B,0x5D,0xF7,0x10,0xBE,0xAD,0x72,0x65,0x42,0x8E,0xD9,0x21,
+0xE9,0x35,0xAA,0x66,0x24,0x5E,0xE8,0x0C,0x28,0x12,0xE4,0x4C,0x5B,0x97,0xA2,0x43,
+0x32,0x83,0xC7,0x0B,0x72,0xFF,0xBE,0xFB,0x6C,0xC6,0xA0,0xDC,0x8B,0x47,0xBA,0x8B,
+0xC4,0xCD,0x7F,0xB3,0x27,0x0F,0xEB,0x5E,0x38,0x42,0xF4,0x0C,0xC2,0x0E,0x51,0x29,
+0xE5,0xED,0x7E,0xB2,0xEB,0x95,0x27,0x08,0x21,0x39,0xED,0x6E,0x07,0xCB,0x2C,0x91,
+0xA8,0x41,0x9F,0x53,0xC6,0xA3,0x0A,0x13,0x0A,0x45,0xC6,0x39,0xF3,0x3F,0x04,0x4D,
+0xF7,0x27,0xA6,0x6A,0xD2,0xF3,0x1E,0x57,0x6A,0xA1,0xA6,0xBD,0x0E,0xC2,0x07,0xB3,
+0x49,0xE1,0xDE,0x12,0x78,0x8C,0xB4,0x82,0x8A,0xCD,0x46,0x31,0x69,0xA5,0xA5,0x76,
+0x3F,0xB4,0xFD,0x31,0x5D,0xB8,0x91,0x93,0x12,0x1F,0xDE,0x7B,0x25,0xE9,0x7B,0xE4,
+0xBC,0x51,0x9B,0x57,0x0C,0x58,0xC0,0x22,0x83,0xE6,0x4F,0x13,0xCE,0x02,0x4F,0x3B,
+0x8B,0x70,0x8D,0x41,0xF5,0xB6,0x39,0x35,0xC9,0x5F,0x05,0xE0,0x8F,0x43,0xAE,0x9B,
+0xB8,0x9A,0x54,0x98,0xFB,0xD5,0x37,0x58,0x6D,0xE7,0xA1,0xFC,0xD6,0x1A,0x15,0x79,
+0xD0,0xDD,0x7B,0xB7,0x7D,0xBC,0xB1,0xB7,0x60,0xD8,0xAC,0xCE,0x93,0x5F,0xE0,0xC9,
+0xFC,0xCA,0x40,0x8C,0xF0,0x86,0x3C,0x00,0xB8,0xCA,0x74,0x04,0x6B,0xA7,0xD6,0x07,
+0xBF,0xAF,0x66,0xAA,0xCF,0x81,0x03,0x38,0xA8,0x9A,0x64,0x44,0xA5,0x69,0xF3,0xEC,
+0x44,0xD6,0xE4,0x28,0x35,0x3E,0xF9,0x7D,0x96,0x83,0x5A,0x63,0xCB,0x07,0x7A,0x0B,
+0x73,0xF7,0xF2,0x3E,0x37,0x4F,0xFB,0x0E,0x00,0x3C,0xCC,0x4A,0x55,0x99,0xCF,0x20,
+0x8D,0xAA,0x51,0x9D,0xBF,0x45,0x73,0x8C,0xF9,0x2B,0x35,0xA4,0x0F,0xC3,0x26,0x93,
+0xCE,0xCF,0x77,0xBB,0x7C,0x9C,0xB0,0x96,0xC1,0x55,0x0D,0xE2,0x78,0xB4,0xD4,0x16,
+0x59,0x3A,0x15,0xD9,0x0F,0x09,0xC3,0x70,0x82,0xC7,0x4E,0x33,0x1D,0xD1,0x05,0xA2,
+0x9D,0x71,0x9A,0x56,0xB0,0x06,0x7C,0xC0,0x79,0xA3,0xB5,0xAC,0x87,0x4B,0xA4,0x99,
+0x56,0x1C,0x3C,0xF0,0xCE,0xA1,0x02,0x19,0x19,0x47,0xD5,0x28,0x18,0xD4,0x30,0x92,
+0xF0,0x12,0x94,0x58,0xBD,0x34,0x71,0xFF,0xC5,0x41,0x09,0xF2,0x15,0xD9,0x0F,0xA0,
+0x63,0x2C,0x39,0xF5,0x81,0x62,0x4D,0x95,0xDB,0x7C,0x17,0xD1,0x48,0x84,0xA0,0x52,
+0x84,0x56,0xA4,0x68,0x1D,0x38,0xD1,0x53,0x06,0x5B,0xCA,0x2B,0x47,0x8B,0xEC,0x11,
+0xF4,0xD9,0x5B,0x97,0x5A,0xF9,0x96,0xD5,0xDD,0x1B,0x11,0xB0,0xA2,0x6E,0xB5,0xAD,
+0x17,0x68,0x09,0xC5,0xF6,0xE7,0x3A,0x67,0x85,0x81,0x49,0x72,0x5D,0x91,0xC5,0x22,
+0xCC,0xDE,0x64,0xA8,0x0D,0x78,0xC1,0x03,0xD5,0x11,0x19,0xB2,0xAB,0x67,0x9E,0x8F,
+0x6F,0xF4,0xED,0x21,0xDC,0x90,0x10,0x3A,0xFC,0x1E,0x30,0x94,0xD4,0x18,0x66,0x08,
+0xFD,0x25,0xAE,0x62,0x46,0xAB,0x8A,0x9B,0x10,0x6C,0xDC,0x0A,0x26,0xEA,0x29,0xB5,
+0xE8,0xDA,0x44,0x88,0xD6,0xE3,0x1A,0x43,0xFF,0x4C,0x33,0xC5,0xEA,0x26,0x7F,0x2F,
+0x0B,0x6B,0x16,0xDA,0x14,0x1A,0xD8,0x78,0x3E,0x25,0xF2,0x6D,0x22,0xEE,0x3D,0xA5,
+0x71,0xE6,0xE1,0x2D,0xAD,0x74,0x61,0xAF,0xD0,0x24,0x1C,0x82,0x9F,0x53,0xFE,0xDB,
+0x91,0xA9,0x4E,0x82,0x63,0x9F,0xAF,0x8A,0x50,0xAC,0x9C,0x8A,0xB8,0x74,0x9C,0x9E,
+0x50,0xC6,0xE0,0x2C,0x6B,0x9D,0xA7,0x80,0x52,0xDF,0x9E,0xFB,0x86,0x4A,0x85,0xB9,
+0x7E,0xC0,0xC8,0x04,0xD8,0x80,0x14,0x2E,0x92,0x97,0x5E,0x73,0xFD,0x31,0x69,0x2E,
+0x90,0x46,0xA0,0x6C,0x9C,0x10,0x50,0xFA,0x01,0x1D,0xCD,0x6A,0xEF,0x23,0x4A,0x1F,
+0x88,0x8E,0x70,0xBC,0x49,0xE8,0x85,0xD7,0xE8,0x5A,0x24,0xC4,0x7A,0xB6,0xA7,0x67,
+0xB9,0x75,0xBA,0x76,0x2C,0x5C,0xE0,0x06,0xCA,0x0D,0x06,0xB1,0x13,0xDF,0x68,0xC1,
+0x87,0xA8,0x59,0x95,0x13,0x5B,0xDF,0x3E,0x80,0xB4,0x4C,0x42,0xAE,0x62,0xAB,0xBF,
+0x09,0x7A,0x05,0xC9,0xBB,0x55,0x77,0x98,0x9E,0x89,0x52,0x61,0x75,0xB9,0xEB,0x24,
+0x77,0x3C,0x3D,0xF1,0x1E,0x69,0xD2,0x01,0x30,0x48,0xFC,0x0E,0x9B,0x57,0xEA,0xCB,
+0x99,0xBA,0x55,0x99,0x36,0x6F,0xFA,0x2F,0x73,0xDA,0xBF,0xDF,0x79,0xB5,0xF5,0x36,
+0x61,0x3D,0x2A,0xE6,0x7A,0xFD,0xB6,0xF1,0x45,0xC9,0x89,0xFA,0x6E,0xA2,0xE3,0x37,
+0xDC,0x05,0xAF,0x63,0xC4,0xD2,0x08,0x60,0x68,0xD2,0xA4,0xCC,0x3B,0xF7,0x46,0xC7,
+0xD3,0x23,0x86,0x4A,0x5C,0x98,0x90,0xB2,0xAB,0xC8,0x67,0x15,0xDD,0x11,0x4D,0x2A,
+0x5E,0x00,0x63,0x4B,0xE9,0xF1,0x30,0xD4,0xD5,0xE8,0x66,0x9B,0xA0,0xAD,0x90,0x25,
+0x07,0xBB,0x3A,0xA9,0x4D,0x49,0x2C,0x70,0xDB,0xE6,0x05,0xF6,0x4A,0x74,0x49,0x16,
+0x42,0x4E,0x7F,0x19,0x40,0x76,0x1E,0x7D,0x5D,0x60,0x6C,0x19,0x0D,0x5B,0x66,0x7E,
+0xBA,0x78,0x87,0xD7,0x98,0x64,0xD4,0xA5,0xD0,0xED,0x56,0xAE,0x1A,0x60,0x5D,0x52,
+0xDF,0xA9,0xE2,0x63,0x4A,0x0F,0x6D,0x77,0xF2,0xCF,0x23,0xF9,0xF7,0x86,0xBB,0x59,
+0xB8,0x0B,0x85,0xA6,0xAA,0x63,0xE1,0x97,0x58,0x65,0x5C,0x2C,0x31,0xFE,0xC3,0xE7,
+0xF4,0xD5,0xC9,0x34,0x32,0xB1,0xAB,0x0F,0x7D,0x40,0x68,0x3D,0x64,0xDD,0xE0,0x91,
+0x1F,0xE1,0x22,0xEB,0xA3,0x48,0xC3,0x9E,0x2C,0x11,0x88,0x8C,0x81,0xBB,0x86,0x12,
+0x5A,0x14,0x67,0x5B,0x4C,0x68,0x0C,0x71,0x52,0x6F,0x2F,0x55,0x53,0xE7,0xDA,0x9C,
+0x13,0xFF,0x2E,0xF9,0x18,0xEC,0xDC,0x25,0x07,0x3A,0xDF,0xF0,0x1D,0x5F,0x62,0x6A,
+0xD6,0x82,0xEB,0x41,0x01,0x97,0xBE,0x3C,0xCB,0xF6,0x45,0xA6,0x3D,0x5E,0x63,0x4B,
+0x22,0xAA,0x1F,0x9D,0x2A,0xEB,0xE9,0x17,0xE6,0xDB,0x73,0xBD,0x91,0xBF,0x82,0x06,
+0x15,0x98,0x28,0x98,0x6D,0x6D,0x28,0x50,0x24,0x19,0x8A,0x86,0x46,0xD4,0xE9,0xBA,
+0xD0,0xE5,0xED,0x20,0xF3,0xD8,0x03,0xCE,0xB0,0x8D,0xD2,0x4A,0x26,0xC5,0xF8,0xCB,
+0x93,0x77,0xAE,0xF1,0x9E,0x03,0xB5,0xA3,0x1B,0x26,0x8D,0xBE,0x3E,0x41,0x7C,0x57,
+0x8A,0x0C,0xB7,0x93,0x08,0xBC,0x9C,0x35,0x04,0x39,0x8E,0xA2,0xE5,0x8A,0xB7,0x47,
+0xD1,0xC4,0xEC,0x00,0x2B,0xCA,0xC9,0x16,0x78,0x45,0x58,0x08,0xD0,0xB8,0x85,0x40,
+0x6B,0x41,0x56,0x3F,0xA7,0x5C,0xD3,0x9A,0x14,0x29,0xCE,0xF2,0x04,0xCC,0xF1,0xE0,
+0x8E,0x18,0xB3,0x83,0xFA,0xF3,0x21,0xC7,0x09,0x34,0xBC,0x9D,0xAD,0x1A,0x27,0x9F,
+0x72,0x3A,0x4F,0x5D,0xA9,0x31,0xB0,0x94,0x0E,0x33,0xFD,0xDB,0x39,0x7E,0x43,0x6F,
+0xBE,0x6C,0x83,0xC7,0xC7,0xB8,0x57,0xFA,0xE0,0xDD,0x12,0xDA,0x35,0xDE,0xE3,0xC3,
+0x30,0x89,0x0D,0xAC,0x89,0x15,0xB4,0xB4,0x91,0xAC,0xF6,0x4F,0x77,0xC6,0xFB,0x99,
+0x88,0x7F,0xB5,0xE2,0x68,0x58,0x18,0x55,0xD3,0xEE,0x07,0xFC,0x59,0x6F,0x52,0x1E,
+0xE7,0xD7,0xDA,0x25,0x3F,0x8E,0x99,0x02,0x37,0x0A,0x9B,0x84,0x54,0xD8,0xE5,0xA4,
+0xAA,0x28,0x97,0x97,0xAF,0x56,0xD1,0x92,0xA8,0x95,0x90,0x10,0x67,0xC2,0xFF,0x8D,
+0x80,0x75,0xBD,0xE0,0xAC,0x04,0x80,0x91,0x6C,0x51,0x08,0x4C,0x7E,0x51,0x6C,0x07,
+0xCA,0xCC,0xF7,0x13,0x02,0xC5,0xEF,0x3F,0x92,0xAF,0xA7,0x1D,0x47,0xC3,0xFE,0xAC,
+0x68,0x13,0x55,0x6E,0x61,0x73,0x3A,0x5C,0x13,0x2E,0x8F,0xB4,0x76,0xD1,0xEC,0x8F,
+0xF2,0xB2,0xCF,0x55,0x8C,0x20,0x84,0xB1,0x23,0x1E,0xCB,0xC0,0x6B,0x62,0x5F,0x21,
+0x2F,0x95,0x12,0xAF,0x81,0x1F,0xB6,0xBC,0x0F,0x32,0xDD,0xFA,0xCD,0x0B,0x36,0xEE,
+0xAE,0x3C,0x93,0x87,0x45,0x43,0x2E,0x78,0x3C,0x01,0xC8,0xDC,0x89,0x3B,0x06,0x9A,
+0xA1,0x70,0x9C,0xC4,0x00,0xB6,0x9E,0x3D,0x05,0x38,0xAE,0x83,0x3B,0x76,0x4B,0x65,
+0xA8,0x5B,0x95,0xE6,0x53,0x74,0x0F,0x6E,0x16,0x2B,0xBF,0x81,0x6A,0x75,0x48,0x37,
+0xBF,0x4D,0x82,0xE7,0x65,0x67,0x2A,0x58,0x5A,0x67,0x2D,0x5F,0xED,0x0A,0x37,0xCF,
+0xEA,0xE8,0xD7,0x17,0x48,0x7C,0x1C,0x75,0xE4,0xD9,0x02,0xCE,0xD5,0x8F,0xB2,0x72,
+0x0C,0xE3,0x31,0xFA,0x8B,0x66,0xC5,0xB6,0x7C,0x41,0x48,0x1C,0xF3,0xA6,0x9B,0x7D,
+0xC2,0xC6,0xFF,0x11,0xEA,0xA3,0x61,0xD7,0x0C,0x31,0x8C,0xA8,0xA5,0x9A,0xA7,0x17,
+0x7F,0x05,0x42,0x6F,0xA0,0x1A,0x92,0x9D,0x33,0x0E,0x8B,0x90,0x78,0x79,0x44,0x29,
+0xA4,0x45,0x99,0xF4,0xBE,0x27,0xB1,0x83,0x9B,0xA6,0x85,0x36,0xAA,0x25,0x18,0xA7,
+0x4A,0x44,0x77,0x1B,0x10,0xE6,0xDE,0x2D,0x3E,0x03,0xB9,0xAF,0xEC,0x1D,0x20,0xD9,
+0x57,0x2B,0x6A,0x69,0x72,0x71,0x2B,0x4F,0x4B,0x76,0x4D,0x2E,0x16,0xC0,0xFD,0xFE,
+0x2C,0xC7,0x11,0xFE,0xB2,0x39,0xA3,0x8F,0xF8,0xC5,0x50,0x80,0x10,0xE8,0xD5,0xD0,
+0x3E,0xE4,0x03,0xCF,0x21,0xB3,0xBA,0x1C,0xBC,0x81,0xC0,0x54,0x96,0x80,0xBD,0x3E,
+0xAB,0x09,0x96,0xB7,0xC8,0xF4,0x14,0xF5,0x69,0x54,0x38,0x79,0x5E,0x50,0x6D,0x26,
+0x3B,0xD1,0x06,0xFF,0xDF,0xE2,0x15,0xE2,0xF6,0xCB,0x33,0xED,0x0A,0x64,0x59,0x46,
+0xF3,0x93,0xCE,0x75,0x1E,0x8B,0xBD,0x23,0x34,0x09,0xCA,0xD6,0xBB,0x36,0x0B,0xA5,
+0x4E,0x50,0x73,0x0B,0xF0,0x8A,0x52,0xCD,0x8D,0xB0,0xA4,0x01,0x36,0xC1,0xFC,0xDF,
+0x69,0x32,0x54,0x4E,0x70,0x02,0x5A,0x4D,0x43,0x7E,0x4F,0x24,0x79,0x6E,0x53,0x3F,
+0x8C,0x6B,0xB1,0xF2,0xA5,0x2F,0xA2,0x98,0xD6,0xEB,0x37,0xC9,0xB8,0x29,0x14,0xB9,
+0x7A,0x30,0x47,0x5F,0xF5,0xBF,0x62,0xC8,0x2D,0x10,0xA8,0xAD,0x0E,0x44,0x79,0x62,
+0x05,0xC8,0x38,0xD8,0xDC,0xB0,0x44,0xE1,0xFC,0xC1,0x40,0x94,0x24,0xCD,0xF0,0xC1,
+0xF7,0x87,0xCA,0x65,0x30,0xC2,0xDA,0x0D,0x66,0x5B,0x7B,0x35,0xF5,0x8E,0xB3,0x53,
+0xC4,0xA1,0xF9,0x70,0xE5,0xEF,0x22,0xD8,0x9D,0xA0,0xE4,0x51,0xC2,0xB4,0x89,0x5E,
+0x99,0x0E,0xA4,0x82,0xFB,0xD2,0x01,0xC6,0xA1,0x9C,0xB2,0x3B,0xFC,0x19,0x24,0xCD,
+0x96,0x42,0xAB,0xC1,0x26,0xF5,0xFB,0x1B,0x3D,0x00,0xE8,0xFD,0x86,0x84,0xB9,0x2A,
+0x73,0x1B,0x4E,0x7D,0xFD,0xB5,0x60,0xC0,0x7A,0x47,0x29,0x7B,0x09,0x7B,0x46,0x5A,
+0xA9,0x7A,0x94,0xC6,0xE1,0xFB,0x32,0xDC,0x5C,0x61,0x4C,0x38,0x1F,0x57,0x6A,0x60,
+0xCC,0xAB,0xF1,0x72,0xA2,0x69,0xE3,0x9F,0x2F,0x12,0xD9,0xDE,0xEA,0x35,0x08,0xF7,
+0x56,0x0A,0x6B,0x49,0x59,0x0D,0x7C,0x64,0x90,0xAD,0xD6,0x6E,0xA1,0xBA,0x87,0x33,
+0xC9,0x9E,0xF4,0x42,0x39,0xE9,0xF8,0x04,0xEE,0xD3,0x71,0xB7,0xCC,0x1C,0x21,0xF8,
+0x74,0x5D,0x49,0x3C,0x88,0x34,0x94,0xB5,0xEF,0xD2,0x51,0x96,0x7F,0x46,0x7B,0x11,
+0x1A,0xD4,0x27,0xDB,0xB6,0x2D,0xB3,0x8B,0x15,0x28,0xEE,0xD3,0x06,0xC4,0xF9,0xEA,
+0x84,0x61,0xB9,0xF0,0x20,0x92,0x9A,0x1D,0x17,0x2A,0x9F,0xA0,0x27,0xD2,0xEF,0xDD,
+0xDE,0x88,0xE3,0x43,0xD9,0x85,0x74,0xE4,0x9F,0xA2,0x95,0x22,0x7A,0x71,0x4C,0x23,
+0xDD,0x75,0xF9,0xEF,0xA0,0xF6,0x35,0x5E,0x9D,0xEC,0xBA,0x44,0x64,0x0F,0xA0,0x08,
+0x5D,0xF5,0xF1,0x67,0xE5,0xD1,0x57,0x79,0xD2,0x43,0x5A,0xEB,0x41,0xE4,0x6E,0xC6,
+0xF2,0x5A,0xBE,0x87,0x54,0x83,0xB4,0x2B,0xA1,0x49,0x23,0xE1,0x88,0x98,0xDB,0x73,
+0x33,0x9B,0x16,0xEE,0xDE,0x4B,0xF6,0xE3,0x10,0x1B,0xC0,0xB3,0xB3,0x61,0x19,0xB1,
+0x0C,0xA4,0x11,0xD6,0x64,0x86,0x81,0x2E,0x3D,0xAD,0x5B,0x05,0x31,0x6B,0x91,0x39,
+0xE5,0x4D,0xBF,0x91,0x1C,0x13,0x6C,0xBB,0xF5,0x7D,0x43,0xD5,0x1C,0x93,0x44,0xEC,
+0x5F,0xF7,0x80,0x14,0xC2,0xEF,0x4E,0x47,0xBD,0xED,0x9B,0x45,0x4B,0xE6,0x66,0xCE,
+0x9F,0x37,0x08,0x5C,0x55,0x94,0xA2,0x3C,0xBB,0xC5,0xB5,0x6D,0xE5,0xFB,0xD5,0x7D,
+0x93,0x3B,0x1A,0x42,0x5F,0x1C,0x20,0xB4,0x01,0x08,0xC2,0xA0,0x53,0x2E,0xB6,0x1E,
+0x3D,0x95,0x75,0x83,0xB0,0xF2,0x21,0x5A,0x47,0x30,0xBC,0x98,0xCA,0x12,0x13,0xBB,
+0xC7,0x6F,0xCA,0xC6,0xBA,0x7A,0xA3,0xD2,0x0E,0xB7,0x72,0x1F,0xCD,0x27,0x21,0x89,
+0x8D,0x25,0x39,0x7F,0xC4,0xC7,0x60,0x6F,0xD3,0x54,0x4C,0xFC,0xF5,0x20,0x1E,0xB6,
+0x65,0xCD,0xB7,0x19,0xBC,0x52,0x8D,0xFA,0x7E,0xA2,0x17,0x0A,0xAB,0xA9,0xC9,0x61,
+0xA6,0x0E,0x6E,0x03,0x51,0xB4,0x86,0x1C,0x58,0x8B,0x18,0x23,0x79,0xE3,0x51,0xF9,
+0x7E,0xD6,0xA4,0x11,0x4D,0x10,0x3E,0xB8,0xC1,0x58,0x52,0xF0,0xE4,0x14,0x3B,0x93,
+0x48,0xE0,0x81,0x02,0x4C,0x07,0x28,0xAF,0x46,0x27,0xAA,0x8F,0x3A,0x86,0x77,0xDF,
+0x0D,0xA5,0x31,0xF7,0x5B,0x3C,0x04,0x94,0x8C,0xFF,0xB8,0x57,0xC5,0x34,0x3A,0x92,
+0xF4,0x5C,0xDF,0xE0,0xE8,0x66,0xED,0xCE,0xD1,0x5C,0x46,0xF4,0x47,0x3E,0xB2,0x1A,
+0xA5,0x0D,0x3F,0x51,0x97,0xCC,0x38,0x64,0xD4,0x6B,0x74,0xC3,0xF3,0xFA,0xC2,0x6A,
+0x9B,0x33,0x18,0x48,0x70,0xA2,0xB1,0x0A,0xAD,0xE9,0x8F,0x41,0xB6,0x45,0x38,0x90,
+0x74,0xDC,0xD7,0x68,0xE2,0xEE,0x6F,0x46,0x0A,0x97,0x56,0x3F,0x0B,0x7D,0xBD,0x15,
+0x14,0xBC,0x53,0x8C,0xE9,0x71,0xFB,0xD9,0x67,0x31,0x9D,0x99,0xD2,0xDA,0xC3,0x6B,
+0xCC,0x64,0x99,0x9E,0x6D,0x11,0x1F,0xB9,0xB4,0x7A,0x05,0xD2,0x5D,0xE7,0x71,0xD9,
+0x8F,0x27,0x48,0x0C,0xD9,0x74,0xCE,0xDC,0x41,0x18,0x92,0xB0,0xBB,0x72,0x02,0xAA,
+0x0B,0xA3,0x50,0x90,0x6A,0x2E,0x27,0x86,0x2D,0xA9,0x4F,0x01,0x98,0x43,0x10,0xB8,
+0xD0,0x78,0xCB,0xD0,0xD6,0xCB,0x7E,0x63,0xA2,0x56,0x3F,0xFE,0x1E,0x82,0x57,0xFF,
+0xC8,0x60,0x89,0x8A,0xDB,0x7C,0xC4,0xD4,0x69,0x99,0x3B,0x31,0x34,0x4F,0xB0,0x18,
+0xD6,0x7E,0xAA,0xB7,0x29,0x21,0x6B,0x89,0x57,0x34,0xA8,0x9C,0x5E,0x19,0x8C,0x24,
+0xF1,0x59,0xEF,0xD5,0x73,0xBD,0xAD,0x15,0x8F,0xE0,0xA4,0x48,0xF1,0xEB,0xD1,0x79,
+0x1D,0xB5,0x71,0xA7,0xCE,0x4F,0xE2,0xE7,0x5E,0xA3,0x36,0x0B,0x50,0xD0,0x4B,0xE3,
+0x88,0x20,0x09,0x4A,0x59,0x34,0x0E,0x9C,0x13,0x04,0xDC,0xAC,0xAC,0x9C,0xFB,0x53,
+0xD8,0x70,0xC9,0xDA,0xF4,0xC2,0x55,0x6A,0xA5,0x69,0x07,0xC1,0xC8,0x03,0x00,0xA8,
+0xB3,0x1B,0x1E,0x66,0x5A,0x2B,0x12,0x83,0x95,0x6C,0x32,0xC4,0xDB,0x26,0x36,0x9E,
+0x25,0x8D,0x37,0xD9,0x38,0x32,0x69,0x9A,0x4E,0xA7,0x22,0x0F,0xC7,0x25,0x29,0x81,
+0x40,0xE8,0x83,0x08,0x33,0xAD,0xFD,0x05,0xED,0xF9,0xDF,0x51,0xE3,0x21,0x09,0xA1,
+0xDE,0x76,0xA8,0xBD,0x8B,0x68,0x80,0xC0,0x8D,0xE8,0xAE,0x40,0x2F,0x79,0x9D,0x35,
+0x2C,0x84,0x15,0xF2,0xEA,0x6E,0xE7,0xC6,0x96,0x73,0x2E,0xDB,0xC3,0xEE,0xE6,0x4E,
+0x07,0xAF,0x42,0x8E,0x36,0x9A,0xCF,0x32,0x3A,0x92,0x63,0x3A,0xD8,0xD8,0xCB,0x63,
+0x61,0xC9,0xA7,0x0D,0xF0,0xE2,0x71,0x4A,0xF8,0xCA,0xF9,0x62,0x30,0x84,0x7F,0xD7,
+0x35,0x9D,0x77,0x89,0x52,0xAB,0x9A,0x03,0xB6,0x72,0x0F,0xDA,0x95,0x74,0x2A,0x82,
+0x1F,0xB7,0x00,0xD4,0x9F,0x4C,0xB0,0xE4,0xCF,0xF0,0xF4,0x58,0x58,0xC3,0x50,0xF8,
+0x8E,0x26,0x68,0x2D,0x40,0xA7,0x84,0x0F,0x2A,0x96,0x77,0x3E,0xE9,0x23,0x01,0xA9,
+0x67,0xCF,0xC6,0x6A,0xC8,0x67,0xCC,0xCF,0x5C,0xAB,0x3C,0x03,0x9C,0x88,0xDF,0x77,
+0x87,0x2F,0x4A,0x06,0x0D,0x00,0x6E,0xA8,0x9A,0xD3,0x82,0x7B,0x49,0xF7,0x75,0xDD,
+0x6D,0xC5,0xB5,0x13,0xB2,0xFA,0x2B,0x52,0xA6,0x76,0x1B,0xDE,0x7C,0xC7,0x70,0xD8,
+0xB5,0x1D,0x7F,0x01,0x7C,0x02,0x1D,0xAA,0xB1,0x4D,0x37,0xE5,0xCB,0xFD,0xFD,0x55,
+0xC4,0x6C,0x9B,0x94,0xE0,0xE6,0x65,0x4E,0x0B,0x80,0x40,0x28,0xFE,0xCD,0xF8,0x50,
+0x60,0xC8,0x87,0x2C,0x02,0xBF,0xDE,0x17,0xE1,0x59,0x73,0xF1,0x93,0xAE,0xF6,0x5E,
+0x68,0xC0,0x85,0x26,0x2C,0x16,0x59,0xBE,0x22,0x16,0xFF,0xBE,0xB9,0x63,0x11,0xB9,
+0x2D,0x85,0x35,0xD3,0x6F,0x19,0x15,0xB1,0x90,0x5B,0x00,0xF3,0xE6,0x05,0x28,0x80,
+0xA1,0x09,0x2F,0x45,0xFE,0x4A,0xD7,0xE2,0xC0,0x4F,0x44,0xE7,0xA5,0x60,0x0E,0xA6,
+0xAC,0x04,0x1D,0x7A,0x04,0x97,0xF0,0x3F,0x66,0x26,0x8B,0x8E,0x9F,0x76,0x22,0x8A,
+0x2F,0x87,0x44,0xA0,0xB8,0x72,0xA9,0xDA,0xEC,0xEE,0xC9,0x46,0x78,0x0C,0xBF,0x17,
+0x4C,0xE4,0x91,0x16,0xC5,0xD0,0x76,0x78,0xDD,0xFC,0xEA,0x54,0xD1,0x24,0x3E,0x96,
+0x82,0x2A,0x7A,0x33,0x3C,0x12,0x4D,0xBA,0xCC,0xEF,0xE8,0x47,0x75,0x3B,0x85,0x2D,
+0x81,0x29,0x2B,0x61,0x4B,0x38,0x10,0x90,0xD5,0x7C,0x62,0xD4,0x29,0xA3,0x41,0xE9,
+0x45,0xED,0xB3,0x3D,0x49,0x30,0x1A,0x98,0xF2,0x42,0x7B,0xEA,0x99,0xAC,0xFE,0x56,
+0x12,0xBA,0x32,0xEB,0x8E,0x5F,0xB2,0xF7,0xFF,0xF5,0xC1,0x5D,0xE1,0x30,0x1A,0xB2,
+0xEA,0x42,0xFC,0xDD,0x6C,0x06,0x09,0xAE,0x9E,0xF3,0xA6,0x5B,0xBF,0xB9,0xCD,0x65,
+0xA4,0x0C,0x1F,0x70,0x07,0x88,0xEC,0x20,0xDC,0xEB,0xFC,0x43,0x2A,0x5D,0xBC,0x14,
+0xD7,0x7F,0x8A,0x96,0x28,0x36,0x7D,0x9E,0x06,0x37,0xFA,0x9F,0xF8,0x17,0x24,0x8C,
+0x84,0x2C,0x1B,0x54,0xF6,0xCA,0x5F,0x62,0x92,0x53,0x0A,0xFB,0xBE,0x56,0x23,0x8B,
+0x06,0xAE,0x62,0xAF,0xAB,0x69,0xA1,0xC1,0x7B,0x95,0x25,0x3D,0x6D,0xF3,0x55,0xFD,
+0x8A,0x22,0x78,0x39,0x94,0xD3,0x24,0x7B,0xAF,0xE1,0x85,0x49,0x97,0x65,0x39,0x91,
+0x77,0xC3,0xF0,0x66,0xF1,0xE2,0x46,0x76,0x76,0xF1,0x0F,0x2C,0x12,0xC5,0x42,0x82,
+0x88,0xB3,0x0F,0xE9,0xB6,0x64,0x87,0x31,0xAD,0x2A,0x94,0x6C,0xAE,0x20,0xA7,0xDB,
+0x15,0x54,0x92,0x93,0x2A,0xA2,0xDD,0xAD,0x70,0xF7,0x6E,0x4B,0xED,0x2F,0xA8,0x97,
+0xB8,0xC7,0x3F,0xAD,0x16,0xC8,0x8B,0x91,0x6E,0xE9,0x4D,0x76,0x1F,0x72,0xF5,0x38,
+0x82,0xCA,0x05,0x9A,0xED,0xAC,0x14,0x6A,0xBB,0x3C,0xB5,0x5B,0x0A,0x41,0xC6,0x1E,
+0xC1,0x58,0x46,0x4B,0x77,0x0D,0x2F,0xF0,0x57,0xD0,0x2B,0x29,0xB7,0xB3,0x34,0x51,
+0x48,0xFB,0xCF,0x61,0xA6,0x34,0xC7,0x21,0x7E,0xF9,0x0D,0x26,0x30,0xCC,0x4B,0xA9,
+0x25,0x20,0xA2,0xD7,0x5D,0x50,0x58,0xDA,0x2E,0xA9,0xCD,0xB6,0x9D,0x3A,0xBD,0xF2,
+0x7D,0xBA,0xFA,0x15,0x14,0xBB,0xFA,0x93,0x52,0xD5,0x1B,0x1C,0x2C,0x68,0xEF,0x11,
+0xDE,0x44,0x59,0x48,0x9C,0x39,0xF0,0x1B,0xAB,0x2C,0xF5,0x0B,0x9F,0x32,0xB5,0xF8,
+0xC8,0x73,0x4F,0x69,0x9E,0x4A,0x81,0x19,0x3D,0xBA,0xDC,0xB4,0xB4,0xAC,0x2B,0x4D,
+0x4A,0x88,0xCD,0x10,0x64,0x0F,0x3E,0xE3,0x03,0x84,0xFB,0xAD,0x53,0xC2,0x45,0xC4,
+0x10,0x61,0x97,0xA3,0x65,0x2E,0x1E,0xE2,0xB2,0x35,0x97,0x70,0x2D,0x7F,0xF8,0x07,
+0xB6,0xAA,0x31,0xCE,0x1B,0xF7,0xB9,0x9C,0xD2,0x55,0x13,0x94,0x26,0xE0,0x67,0x93,
+0x39,0x6E,0xBE,0x85,0xA4,0x47,0xB6,0x23,0x29,0xAE,0x8C,0xF0,0x1D,0x7A,0xFD,0x32,
+0x5B,0xF9,0xDC,0x70,0xD7,0xA1,0x23,0x50,0x6A,0xED,0x5D,0x62,0xA9,0x1F,0x98,0xE3,
+0x11,0x40,0x96,0x83,0xB5,0x36,0xD6,0x32,0x9B,0x1C,0xB1,0x7F,0x74,0xFC,0x7B,0xDD,
+0x29,0x3E,0xAE,0xC5,0x10,0xAF,0xEA,0x97,0x35,0xB2,0xDE,0xBE,0x9B,0x12,0x95,0xDC,
+0x75,0xB0,0xF2,0x17,0xB8,0x09,0xE4,0x3F,0x2B,0xAC,0xFD,0x83,0x00,0xC9,0x4E,0x9C,
+0x96,0x8E,0x11,0xCA,0x87,0x31,0xE3,0x00,0x61,0xE6,0x0E,0x3A,0x7E,0x74,0xF3,0x5F,
+0xAA,0xE4,0x2D,0x9C,0xF7,0x85,0x27,0x70,0x00,0x87,0xAA,0xFF,0x95,0xBA,0x3D,0x7A,
+0x83,0xEB,0x04,0xBA,0x6F,0x57,0x6D,0xE8,0xC3,0x44,0x73,0xE5,0x78,0x5C,0xDB,0x71,
+0x06,0x56,0x81,0x82,0xD1,0xC6,0x42,0x56,0xEE,0x69,0x45,0xFE,0x88,0x09,0x8E,0xD4,
+0x79,0xAE,0xFE,0x05,0x9D,0x18,0xD0,0x1A,0xD8,0x5F,0x60,0xED,0x89,0x1E,0x99,0xC2,
+0x62,0xA6,0xE5,0x16,0xC8,0xBD,0x20,0x4F,0xFB,0x7C,0x35,0x9B,0x21,0xDF,0x58,0xAB,
+0xCD,0x46,0x4A,0x59,0x06,0x98,0xCB,0x81,0x7B,0xFC,0x3D,0x13,0x64,0xF8,0x7F,0xC9,
+0x3A,0x3C,0xBD,0xD4,0xBF,0x4F,0xA5,0x38,0x95,0x12,0xD2,0x12,0x1A,0x45,0xC2,0x0A,
+0x68,0xDF,0xEF,0x65,0x7D,0x74,0x5C,0xFA,0x54,0xD3,0x7A,0x7B,0x90,0x8D,0x0A,0x48,
+0x5C,0xBF,0xDB,0x31,0xE2,0xE0,0x57,0x65,0x43,0xC4,0x7B,0x6D,0xD8,0x1D,0x9A,0x90,
+0x8C,0xA7,0x0B,0xF9,0x37,0xCD,0xAF,0xB0,0xAA,0x2D,0xD5,0x2A,0xA0,0x88,0x0F,0x7D,
+0xE4,0x49,0x63,0x7F,0x73,0x19,0x3F,0xF4,0x39,0xBE,0xCC,0xA0,0x91,0x9A,0x1D,0x5E,
+0xCC,0x67,0x4B,0x79,0xC0,0xB7,0x22,0x47,0xF9,0x7E,0x44,0xE8,0x06,0xE1,0x66,0xB2,
+0xD4,0x3D,0x53,0x3B,0xBC,0x1D,0xF4,0x3B,0xB4,0x33,0xF6,0x17,0x4A,0x51,0xD6,0x4E,
+0x63,0x87,0xE4,0x36,0x58,0x65,0x68,0xDF,0xE3,0x64,0x77,0xC1,0x8D,0x3E,0xB9,0xE6,
+0xCA,0x00,0x4D,0x18,0x1A,0xD6,0x99,0x9D,0x02,0x85,0xDB,0x8C,0xC3,0x86,0x01,0x10,
+0xD2,0x5A,0x55,0x5A,0x6B,0x43,0x7D,0xEC,0x4C,0xCB,0x38,0x21,0xA8,0x08,0x8F,0xF5,
+0x72,0xF6,0xF5,0x56,0x85,0x42,0x92,0x02,0x22,0xA5,0xDF,0xA8,0x32,0xC4,0x43,0xA3,
+0x16,0x06,0x91,0xC2,0x82,0x04,0xD3,0x05,0x71,0xF6,0x4E,0x6A,0xEC,0x38,0xBF,0x81,
+0xC0,0x79,0x47,0x6B,0x9F,0x6B,0xA1,0x18,0x2C,0xAB,0xBC,0xC5,0x50,0xDD,0x5A,0xD8,
+0xB4,0xD9,0x33,0xBF,0xF3,0x91,0x37,0x74,0xA0,0x27,0xA6,0x53,0x6F,0x67,0xE0,0x5D,
+0x7A,0xFC,0xFD,0x54,0x8E,0x1A,0xC1,0x09,0x8B,0x0C,0xF1,0x2F,0xAB,0x17,0x90,0xE9,
+0x37,0x03,0xB0,0xE6,0xB7,0x45,0xA7,0x30,0xCE,0x49,0x41,0xDA,0xE8,0x18,0x9F,0xA5,
+0x07,0x77,0x80,0xA2,0x84,0x63,0xB2,0x03,0x0A,0x8D,0xD9,0x86,0xC0,0x99,0x1E,0x0C,
+0x6E,0xB8,0xE9,0x04,0xA8,0x59,0xA4,0x2F,0x07,0x80,0xEB,0xB9,0x3A,0x44,0xC3,0x2B,
+0xDD,0x16,0x5A,0x19,0x98,0x2D,0xE0,0x1F,0xEA,0x6D,0x55,0xEA,0x01,0xDE,0x59,0x8A,
+0xCF,0x35,0x48,0x28,0x19,0x84,0xC8,0x9E,0x89,0x0E,0x80,0x5C,0x7C,0x7C,0xFB,0x55,
+0x5D,0x9E,0xDA,0x11,0xE7,0xD5,0x67,0x60,0x27,0xA0,0xEF,0x9D,0x8F,0x36,0xB1,0xEC,
+0xCE,0x14,0x49,0x08,0x23,0x89,0xFF,0xA4,0x24,0xA3,0xBE,0xCF,0xF8,0x1C,0x9B,0xB1,
+0xB7,0x8B,0x30,0xEE,0xA7,0x15,0xE7,0x20,0x28,0xAF,0xAC,0xD1,0x84,0xA9,0x2E,0x78,
+0xD1,0x08,0x56,0x0B,0xF6,0xA4,0x07,0x71,0xB9,0x3E,0xC4,0x28,0x5B,0x42,0xC5,0x4C,
+0xF2,0x7E,0x75,0x5E,0xD3,0xB5,0x33,0x54,0x21,0xA6,0x8E,0xFA,0xC9,0x0E,0x89,0x92,
+0x8A,0xC0,0x0D,0x98,0x79,0x60,0x4C,0xFE,0xC1,0x46,0x02,0x96,0x0C,0x69,0xEE,0x30,
+0x6C,0xCB,0xEB,0x75,0x5B,0x37,0x39,0xDC,0x13,0x94,0xBB,0xFD,0xB8,0x0C,0x8B,0xE1,
+0x57,0xE7,0xD0,0x62,0xD6,0x80,0x03,0x51,0xCB,0x4C,0x71,0xEF,0x76,0xF4,0x73,0xD7,
+0x78,0x8F,0xFF,0x25,0x50,0x6F,0x6A,0xD7,0xC6,0x41,0x43,0xD0,0xC6,0xB1,0x36,0x22,
+0xA1,0xBC,0x26,0xCF,0x5E,0x02,0x09,0xD9,0x62,0xE5,0x5F,0x68,0x24,0xE8,0x6F,0x99,
+0x86,0xDE,0x01,0x8A,0x8F,0x3B,0xE1,0x08,0x83,0x04,0xF3,0x25,0xFC,0x3C,0xBB,0x95,
+0x4D,0xCE,0xCA,0x51,0x90,0x27,0xE2,0x17,0x15,0x92,0xDA,0x9A,0x9E,0x25,0xA2,0xEE,
+0xC9,0x52,0x4E,0x49,0x3B,0xD3,0xBD,0xBC,0x78,0xFF,0x6C,0x41,0x4F,0x66,0xE1,0x7C,
+0xD8,0x23,0x5F,0x29,0xAF,0x1F,0xE5,0x28,0xE6,0x61,0x47,0xF4,0xF7,0xA3,0x24,0x01,
+0xB3,0x9F,0x34,0xFE,0x6D,0x24,0x1C,0xEA,0xA1,0x26,0x86,0x72,0xF2,0x94,0x13,0x33,
+0x52,0xD2,0xD5,0x52,0x40,0x3F,0x2A,0xC7,0x8A,0x0D,0xD1,0x0E,0x2E,0x60,0xE7,0x1B,
+0x53,0xF3,0xD4,0x72,0x8C,0x69,0xB0,0x0B,0x93,0x14,0xB3,0x75,0x96,0xA5,0x22,0x66,
+0xEB,0x05,0x6C,0x3C,0xD9,0xCC,0x40,0x5E,0xC7,0x40,0x63,0xF1,0x34,0xEC,0x6B,0x8D,
+0x67,0x9D,0x1F,0xE6,0x83,0x19,0x62,0x7F,0xD9,0x3D,0x7A,0x01,0x2D,0x0F,0xBC,0x56,
+0x0C,0x13,0xFA,0x68,0x2E,0x57,0x2C,0x9C,0x4C,0xD9,0x0B,0x70,0x35,0x55,0xFE,0x4E,
+0xEE,0x4A,0x41,0x31,0x18,0xAF,0xD4,0x52,0x12,0x50,0xDC,0xA7,0x33,0x32,0x9F,0x48,
+0x29,0x25,0xE9,0x5E,0xCE,0xF8,0x83,0xD3,0x6A,0xCC,0x38,0x43,0x84,0x88,0x92,0xFF,
+0xF4,0xC6,0xD7,0xBD,0xCA,0x37,0x4C,0x18,0x64,0x05,0xFF,0x84,0x27,0x76,0xCF,0x5C,
+0xCB,0x7C,0x52,0x07,0x5C,0xBB,0xC0,0x02,0x9E,0x93,0x93,0xE8,0x53,0xD6,0x1B,0x28,
+0x96,0xDF,0xAC,0xA4,0xA7,0x39,0x42,0x7B,0x4D,0x36,0xE5,0x9E,0x95,0xF9,0xF2,0xEE,
+0x48,0x23,0x8E,0x58,0x65,0x6A,0x11,0xEA,0x0B,0x77,0xE2,0x99,0xF1,0x09,0x66,0x8A,
+0x64,0x82,0x03,0xF9,0x89,0x11,0x6A,0x7D,0x6C,0x16,0xE4,0x9F,0xE0,0x78,0x06,0x9B,
+0x9E,0x5F,0x24,0x24,0xB6,0x1C,0x67,0x4F,0x56,0x00,0xC8,0xB3,0x89,0xB7,0xA0,0xF2,
+0x0F,0x0C,0xE6,0x77,0x20,0x90,0xEB,0x55,0x15,0x65,0xEE,0x95,0x9D,0xF3,0xF0,0xE6,
+0x4C,0x03,0xAA,0x78,0xD5,0xD5,0xAE,0xE5,0x4A,0x03,0xD7,0xAC,0xD0,0x0C,0x42,0xAB,
+0x2B,0x2D,0xE3,0x56,0x92,0x3C,0x47,0x4B,0xDA,0xC3,0x87,0xFC,0xBA,0x91,0xB5,0xC1,
+0x5C,0x07,0xBE,0x7C,0xC0,0x3F,0x44,0x1A,0x86,0x5B,0x43,0x38,0x29,0x1B,0xAC,0x52,
+0xA5,0xC5,0x85,0xBE,0xE5,0xF1,0x8A,0xF1,0x22,0x44,0xF8,0x83,0x3A,0x19,0xBD,0x41,
+0xD8,0x67,0x5A,0x1C,0x53,0x92,0xE9,0x24,0x8B,0x6C,0x79,0x02,0x28,0x3A,0x8C,0x53,
+0x6D,0x15,0x9D,0x6E,0xF5,0x3A,0x41,0x2A,0xBA,0x97,0xB3,0xC8,0x15,0x71,0xFA,0x6E,
+0xA8,0x72,0x3F,0x09,0x99,0xDA,0xA1,0xA6,0x6F,0xE8,0x19,0x62,0x6D,0xCF,0x3C,0x16,
+0x20,0xB2,0x77,0xC9,0xDE,0x33,0x48,0x08,0x1A,0x43,0xC7,0xBC,0x50,0x84,0x4A,0x2B,
+0xFF,0x59,0x43,0x22,0x27,0xA2,0xD9,0x60,0xAB,0xA3,0x96,0xED,0x36,0x07,0xAF,0x4D,
+0x62,0xAA,0x2D,0xD1,0xDF,0xDD,0xA6,0xE7,0x60,0xCE,0x30,0x4B,0x9F,0x80,0x81,0xE4,
+0x80,0xF3,0x96,0x88,0x67,0x79,0x02,0xFB,0x0D,0xAD,0x3E,0x45,0x46,0xB3,0x6B,0x3D,
+0x1C,0x17,0xEE,0x6C,0xF2,0x08,0x73,0x1F,0x38,0x9D,0x3B,0x40,0x8B,0xC4,0xD1,0xF0,
+0xD2,0xEF,0xD8,0x94,0xE0,0xD0,0xAB,0xD5,0x8F,0xA7,0xB6,0xCD,0xB0,0xE8,0xC6,0xCB,
+0xEB,0x7D,0x73,0x06,0x4E,0x63,0x18,0xC8,0xDC,0x19,0x5B,0x20,0x2E,0x5D,0xED,0x55,
+0x53,0xB8,0x0E,0xC3,0xFB,0xFD,0x86,0xE3,0x10,0x41,0xCF,0xB4,0x3F,0x2C,0x8D,0x44,
+0x58,0x27,0x9A,0x5C,0x2A,0x98,0xE3,0x57,0x34,0x45,0xEF,0x94,0x61,0xD1,0x2E,0x1A,
+0x3A,0x3E,0xE1,0x45,0x95,0x0E,0x75,0x7E,0x28,0x46,0xF0,0x8B,0xAA,0xC1,0xF5,0xD1,
+0x32,0xBE,0x69,0xC5,0x7A,0x88,0xF3,0x17,0x66,0x14,0xEC,0x97,0xB4,0xFC,0xD6,0xCF,
+0x90,0xF7,0x82,0x8C,0xFE,0xDC,0xA7,0xC7,0xC3,0xE4,0xB9,0xC2,0x0C,0x0A,0x98,0x77,
+0x56,0x8F,0x3C,0xF4,0x7D,0xBA,0xC1,0x22,0x2B,0xB8,0x0D,0x76,0x54,0x90,0x5A,0x2F,
+0x8A,0x7B,0x14,0x00,0x01,0x91,0xEA,0x75,0x30,0x8E,0x20,0x5B,0xB5,0xDD,0xF6,0xCE,
+0x49,0x34,0x98,0x4F,0x44,0x6B,0x10,0xCA,0xAD,0x79,0x4A,0x31,0xF2,0x5B,0x37,0x89,
+0xBB,0x69,0x37,0x12,0x79,0x75,0x0E,0xE9,0xC7,0x2F,0x76,0x0D,0x5F,0xC8,0x09,0x24,
+0xB6,0xDE,0x8D,0xA5,0x23,0x6D,0x16,0xAB,0xED,0xE2,0x91,0xEA,0x90,0xCC,0xC2,0xEB,
+0x0A,0x3B,0xD4,0x40,0x63,0xB6,0xCD,0x30,0x6B,0x23,0xD6,0xAD,0x6F,0xBC,0x4D,0x14,
+0x94,0xD7,0xA6,0xAC,0x29,0x65,0x1E,0xA9,0x3B,0x63,0xC6,0xBD,0xAF,0xF4,0xC5,0xD4,
+0x39,0x21,0xFD,0x5A,0xB9,0x35,0x4E,0x69,0x5F,0xFC,0x3D,0x46,0xC2,0x2F,0x73,0xB9,
+0xAE,0x5A,0x11,0x21,0x54,0xA0,0xDB,0x11,0xA3,0xB0,0x8D,0xF6,0x65,0xC5,0x3E,0x1E,
+0x13,0xA8,0x5E,0xD3,0x26,0x4C,0x37,0x8F,0x02,0x8B,0x17,0x6C,0x26,0x57,0xEF,0x5D,
+0x10,0xB7,0x42,0xCC,0xBB,0x26,0x5D,0x78,0x45,0x25,0xFE,0x85,0x2F,0x7C,0xCD,0x54,
+0xF7,0xD9,0xCB,0xA2,0xA2,0x18,0x63,0x5F,0x00,0x9A,0x04,0x7F,0xAD,0x87,0xB4,0xD6,
+0x88,0x73,0x1E,0x08,0x13,0x49,0x32,0xBF,0xB4,0x5E,0x74,0x0F,0x9A,0xB5,0xB1,0xE1,
+0x3B,0x29,0xF7,0x52,0x04,0xB0,0xCB,0x51,0x36,0x54,0xFC,0x87,0x39,0x4B,0xEC,0x42,
+0xB9,0x61,0x3D,0x1A,0xFF,0x32,0x49,0x28,0x48,0x12,0xC4,0xBF,0xDE,0x61,0x21,0xA5,
+0x0D,0x04,0xEC,0x7F,0x6D,0x71,0x0A,0xF9,0xAE,0x87,0xB7,0xCC,0xBC,0xF6,0xD4,0xC7,
+0x89,0x64,0x08,0x1F,0x7F,0xA9,0xD2,0x33,0x21,0xBA,0x05,0x7E,0xF7,0x6E,0x07,0x8C,
+0x82,0xFB,0x9C,0x80,0x9B,0xC9,0xB2,0xB7,0xF8,0x1D,0x7B,0x00,0x51,0xA5,0x6A,0x2A,
+0xA4,0xD2,0x93,0xA9,0x8C,0x30,0x4B,0x59,0x06,0x40,0xD8,0xA3,0x92,0xBF,0xB3,0xE9,
+0xDA,0x6F,0x50,0x14,0x35,0x7A,0x01,0xAA,0x3E,0x47,0xE7,0x9C,0x71,0x81,0x6E,0x0A,
+0xD0,0xE7,0xD2,0x9C,0x70,0x80,0xFB,0x15,0x39,0x72,0xD5,0xAE,0xF6,0x4F,0x27,0x8D,
+0x3F,0x09,0xD3,0x72,0xB1,0x2E,0x55,0x7A,0xA0,0x4E,0x70,0x0B,0xCE,0x31,0x61,0xB5,
+0x2C,0x12,0xDB,0x69,0xF1,0xF5,0x8E,0xE1,0xC9,0xE6,0xB1,0xCA,0xE1,0x59,0x26,0x9A,
+0x2D,0x05,0xCD,0x7E,0xE2,0xC3,0xB8,0xC4,0x17,0x74,0xFD,0x86,0x9E,0xA1,0xA1,0xE5,
+0x31,0xA1,0x75,0xDA,0xF0,0x1B,0x60,0x0E,0x8A,0x83,0x97,0xEC,0x4D,0xEB,0x38,0x36,
+0xDC,0x47,0x7E,0x3C,0xEA,0xD8,0xA3,0xD7,0x58,0xC9,0x0F,0x74,0x64,0xE4,0x1E,0x1F,
+0xBE,0x5E,0x05,0x25,0x1D,0x8E,0xF5,0x76,0x40,0x01,0xDF,0xA4,0xDD,0x33,0x70,0xA6,
+0x34,0x96,0x47,0xED,0x74,0x4F,0x34,0xDE,0x7B,0xF8,0x1D,0x66,0x8F,0xD0,0xC1,0xF4,
+0x85,0xC4,0xA4,0xBF,0x94,0xE0,0x9B,0x91,0xB2,0x84,0xA8,0xD3,0x85,0xA9,0xB2,0xFE,
+0xC0,0xE3,0xC6,0x98,0x1C,0x60,0x1B,0x99,0x97,0x6F,0x66,0x1D,0x2A,0x49,0xFD,0x51,
+0x35,0x81,0x51,0xFA,0xAF,0x22,0x59,0x68,0x16,0x9B,0x13,0x68,0x03,0x46,0xDB,0x78,
+0xA2,0xFA,0xBD,0x81,0xE7,0xE2,0x99,0xE0,0xB8,0x86,0xA0,0xDB,0x2B,0x68,0xDD,0x50,
+0x7C,0x06,0x9F,0x7D,0x62,0x58,0x23,0xDF,0xEF,0xF3,0x82,0xF9,0xBB,0xB0,0x95,0xC0,
+0x04,0x93,0x72,0xE8,0x25,0xB1,0xCA,0x71,0xC2,0x0B,0x57,0x2C,0x6B,0xA8,0x5D,0x10,
+0x09,0x19,0xD3,0x32,0xFD,0xB0,0xB5,0xA0,0x38,0xC7,0x17,0xD7,0x7E,0x90,0x06,0x16,
+0x8B,0x9B,0xAA,0xC9,0x42,0x4A,0xF0,0x5A,0x1F,0xF9,0x0E,0xE9,0xF7,0x77,0x68,0x78,
+0x9D,0x8D,0x8B,0xFE,0x33,0x48,0x83,0x58,0x36,0x6F,0xB1,0x7F,0x42,0x5C,0xF6,0xE6,
+0x3E,0x2E,0xD6,0x00,0x39,0xC0,0x01,0xD0,0xD8,0x96,0xA6,0x86,0xAB,0xEF,0xAC,0xBC,
+0x18,0x08,0xB3,0x43,0xE0,0x03,0x1B,0x13,0x9E,0xAE,0xD8,0xBE,0x59,0x6A,0xDB,0xCB,
+0x7A,0x6A,0x46,0xD4,0x75,0x70,0xFD,0x60,0x4F,0xED,0x4A,0xFD,0x88,0xDE,0xBE,0xAE,
+0xF5,0xE5,0x0D,0x10,0x7A,0xCF,0x4D,0xDF,0xD0,0x16,0x2E,0x06,0x29,0xE5,0x24,0x34,
+0x53,0x43,0x60,0xDB,0xDD,0xB1,0x94,0xA1,0x54,0x76,0xCA,0x66,0xBD,0xEE,0xBB,0xAB,
+0xFB,0xEB,0x6E,0x7D,0x48,0xC2,0x72,0xD2,0x8E,0xAA,0xCC,0xBA,0x82,0xDC,0xB6,0xA6,
+0x56,0x46,0x50,0xEE,0x1E,0xFE,0x18,0xEE,0xAD,0xB4,0xF1,0xA4,0x2D,0x2E,0xEB,0xFB,
+0xCB,0xDB,0x2A,0x09,0x44,0x62,0xDE,0x72,0x57,0x69,0xD6,0x79,0x61,0x6D,0xE4,0xF4,
+0x34,0x24,0xA5,0x79,0x85,0x25,0x58,0x35,0xCC,0xB2,0x96,0xA2,0x38,0xD1,0x01,0x11,
+0x66,0x76,0x14,0x9A,0x9B,0x89,0xEA,0x99,0x0E,0xEA,0x0C,0xFA,0x48,0x5E,0xFE,0xEE,
+0x0B,0x1B,0xA2,0x41,0x04,0x72,0x8E,0x62,0xCE,0xBA,0x9C,0xAA,0x13,0xF3,0x08,0x18,
+0x82,0x92,0x88,0xE2,0xEC,0xA3,0xB7,0xB3,0xE8,0x93,0x93,0x83,0xEB,0x74,0x77,0x67,
+0xC1,0xD1,0x59,0x70,0xD7,0x39,0x16,0x29,0x76,0x7F,0xE1,0x6F,0xA4,0xC9,0x85,0x95,
+0x2B,0x3B,0xA6,0x65,0x9F,0xA9,0xCE,0xB9,0xB9,0x90,0xC1,0x80,0xF2,0x53,0x49,0x59,
+0x79,0x69,0x17,0x86,0x66,0x6B,0xF5,0x7B,0x11,0x51,0xA8,0x41,0xB0,0xD9,0x81,0x91,
+0x8E,0x9E,0x9A,0xFC,0x08,0xD2,0x22,0xC2,0xFE,0xBF,0xA9,0xAF,0x73,0xA7,0x3C,0x2C,
+0x21,0x31,0xD5,0x1C,0xE3,0x1C,0x07,0x0C,0xF6,0x3F,0x21,0x2F,0x11,0xE2,0x1B,0x0B,
+0x8F,0x9F,0xBA,0xDD,0xE1,0x14,0x0D,0x04,0x87,0x3D,0x52,0x2D,0x08,0xC5,0x25,0x35,
+0xA7,0xB7,0xBC,0xF3,0xFC,0xA7,0xA3,0xB7,0x0F,0xFD,0x1A,0xED,0xE4,0x52,0x5E,0x4E,
+0xCF,0xDF,0x3A,0x1D,0x6C,0xE3,0x77,0xF3,0x16,0x6E,0x90,0x7E,0xC7,0x63,0x4C,0x5C,
+0x1F,0x0F,0xF2,0x05,0x94,0x36,0x5A,0x26,0xB8,0x87,0xD7,0x97,0x2A,0x1B,0xD9,0xC9,
+0xD5,0xC5,0x09,0x34,0x20,0x53,0x8B,0x43,0xCD,0xA5,0x80,0xB5,0xE5,0xBD,0xB0,0xA0,
+0x36,0x26,0xD4,0x0A,0x27,0x6C,0xB3,0x7C,0x3E,0xEF,0x39,0xFF,0x26,0xC3,0x0D,0x1D,
+0x6A,0x7A,0x06,0x84,0x29,0xC4,0x15,0xD4,0x1D,0xF1,0x04,0xE1,0x66,0x58,0xD6,0xC6,
+0x52,0x42,0x40,0xFA,0x15,0x61,0x8C,0x71,0x72,0x5F,0xC5,0x4F,0x67,0xB7,0x38,0x28,
+0x3A,0x2A,0xC6,0x14,0x13,0x49,0xA2,0x59,0xA3,0x1C,0x57,0x0C,0x78,0x4A,0xDA,0xCA,
+0x45,0x55,0x41,0xEC,0x81,0x05,0x7C,0x15,0x86,0x2A,0x44,0x3A,0x6E,0x4B,0xCD,0xDD,
+0xC0,0xD0,0x79,0x51,0xAE,0xBB,0xED,0xAB,0xB0,0x07,0x5F,0x17,0xCB,0xBB,0x98,0x88,
+0xE9,0xF9,0x5F,0x5E,0xE4,0x23,0x3F,0x33,0x69,0xC4,0x45,0xD4,0xC0,0x56,0x7E,0x6E,
+0x2D,0x3D,0xC7,0x02,0x67,0x7C,0xE3,0x6C,0x28,0xC3,0x03,0xD3,0x91,0xF9,0x80,0x90,
+0x44,0x54,0x61,0xCD,0x71,0x50,0xD9,0x40,0x1A,0xCE,0x3C,0xDE,0xB6,0x03,0x5D,0x4D,
+0x74,0x64,0x25,0xB9,0x64,0x63,0xFF,0x73,0x82,0x0A,0x60,0x1A,0x1F,0x2B,0xDC,0xCC,
+0x39,0x29,0x97,0x46,0x02,0x5A,0xA0,0x4A,0x32,0x4F,0x95,0x5F,0x53,0x68,0xD3,0xC3,
+0x8D,0x9D,0xCB,0xAE,0x3C,0xF7,0x33,0xE7,0x7D,0xE0,0x75,0xF0,0x0B,0x3B,0xD8,0xC8,
+0x1E,0x0E,0xD2,0x24,0xA4,0x33,0x6F,0x23,0x2C,0xE3,0x27,0xF3,0x56,0x4C,0xF2,0xE2,
+0x8C,0x9C,0xEB,0x8F,0x0B,0xCD,0x3E,0xDD,0x43,0x4D,0xE6,0x5D,0xEF,0xBF,0xB8,0xA8,
+0x9E,0x8E,0xDA,0xAC,0x23,0x4C,0x97,0x5C,0x96,0x2E,0x50,0x3E,0x30,0xC2,0x1A,0x0A,
+0x91,0x81,0x99,0xE0,0xBE,0xBF,0xF9,0xAF,0xFB,0x88,0x9B,0x98,0x4F,0x6B,0xCC,0xDC,
+0x89,0x99,0xDB,0xBA,0x5A,0xCE,0x6C,0xDE,0x18,0xC6,0x36,0xD6,0xAA,0x00,0x42,0x52,
+0x20,0x30,0xF5,0x3D,0xAB,0x8C,0xDF,0x9C,0xB4,0x27,0x7B,0x37,0x5C,0x4E,0xFA,0xEA,
+0x97,0x87,0xF8,0x87,0x37,0x68,0xA7,0x78,0x35,0x70,0xAD,0x60,0xF4,0x89,0x95,0x85,
+0xF7,0xE7,0x7C,0x63,0xF4,0x27,0x2B,0x37,0x65,0x64,0xE9,0x74,0xE7,0xAC,0xA3,0xB3,
+0x83,0x93,0xA8,0xC3,0x62,0x4B,0xD1,0x5B,0x7F,0xE8,0x7F,0xF8,0x62,0x93,0x19,0x09,
+0x55,0x45,0x01,0xBC,0x10,0x56,0xBE,0x46,0x8D,0xB5,0xD0,0xA5,0x3B,0x2F,0xFC,0xEC,
+0x31,0x21,0x95,0x4C,0x51,0x51,0xF8,0x41,0x1C,0xE6,0x12,0xF6,0x19,0xF1,0x00,0x10,
+0x9B,0x8B,0xEA,0x99,0x26,0x7B,0xA5,0x6B,0x84,0x22,0x4E,0x32,0xBB,0x34,0x67,0x77,
+0x8A,0x9A,0x8A,0xE8,0x7E,0xEF,0x69,0xFF,0xAF,0xBC,0xFB,0xAC,0xC6,0x8C,0xA2,0xB2,
+0x0E,0x1E,0x92,0x74,0x21,0x44,0x9D,0x54,0x19,0xD1,0x20,0xC1,0x54,0x5D,0xE1,0xF1,
+0xC5,0xD5,0x49,0x64,0x22,0x5B,0x81,0x4B,0x30,0x47,0x9F,0x57,0x2F,0x3F,0xF8,0xE8,
+0xA8,0xB8,0xFF,0xBF,0x83,0x0D,0x76,0x1D,0xA0,0x03,0x4B,0x13,0x37,0xF7,0x28,0x38,
+0x10,0x00,0xB1,0x49,0x73,0x58,0xD3,0x48,0x70,0x57,0xCF,0x47,0xDC,0x55,0x61,0x71,
+0x11,0x01,0x91,0x68,0xE9,0x94,0x85,0x84,0x12,0x4E,0xB4,0x5E,0xA1,0xED,0xA4,0xB4,
+0xF0,0xE0,0x3D,0x25,0xDF,0xB9,0x9E,0xA9,0x45,0x65,0xC8,0x75,0x89,0x31,0x50,0x40,
+0xC9,0xD9,0x5B,0x7A,0x8F,0xAD,0xDA,0xBD,0xC1,0x05,0x2C,0x15,0x8A,0xCF,0xAD,0xBD,
+0xB1,0xA1,0x9D,0xC4,0xF0,0x07,0x0F,0x17,0x4D,0xE5,0x40,0xF5,0x28,0x0A,0xCA,0xDA,
+0x92,0x82,0xC8,0xB2,0xC4,0x22,0x1E,0x32,0x07,0x7D,0x92,0x6D,0xF6,0x98,0x86,0x96,
+0xF4,0xE4,0x2D,0x31,0x24,0x73,0xAF,0x63,0x6F,0xEC,0x6B,0xFC,0xC2,0x47,0x6D,0x7D,
+0xE2,0xF2,0x0C,0x06,0xCA,0x8A,0xB8,0x9A,0x9C,0xA6,0xD2,0xB6,0x23,0xE7,0x2C,0x3C,
+0x3B,0x2B,0xE6,0x35,0xA9,0x84,0xD5,0x94,0x80,0x02,0x6A,0x12,0x98,0x05,0x75,0x65,
+0x14,0x04,0xA1,0x5D,0xC0,0x02,0x3A,0x12,0xB2,0x0F,0x55,0x1F,0x6D,0xB5,0x30,0x20,
+0x2F,0x3F,0xB6,0x71,0xFA,0x8F,0x8D,0x9F,0x78,0xD7,0x47,0xC7,0x5B,0x7B,0xC8,0xD8,
+0x3E,0xAF,0x1A,0x7D,0x37,0xB4,0x4B,0x13,0x04,0x20,0x5E,0x92,0x4A,0x20,0x04,0xA2,
+0x91,0x4F,0xB5,0x32,0xF9,0x91,0xA0,0xDD,0x84,0xA0,0x56,0x1A,0x0F,0x07,0x23,0xC0,
+0x66,0x35,0x42,0xBF,0x40,0x46,0xCE,0x64,0x6A,0x4E,0xB9,0x1B,0x71,0xBA,0x9E,0x03,
+0x34,0xD6,0x10,0x0E,0x82,0x7D,0x37,0xA6,0xAB,0x8F,0x11,0x72,0xFB,0x72,0x56,0x41,
+0x00,0xB6,0x24,0x5A,0x1D,0xE9,0x3C,0x39,0xBC,0x98,0x10,0x64,0xB3,0xE2,0xC6,0x99,
+0xD0,0xAE,0xF4,0x92,0xC8,0xC4,0xC4,0xEC,0x55,0x71,0xBE,0x23,0xCB,0x77,0x53,0x74,
+0xB8,0x40,0x9C,0x14,0x8C,0x10,0x54,0xA8,0xC6,0xE2,0xA7,0xA9,0xFA,0x65,0x41,0x57,
+0x90,0x6E,0xB4,0x12,0x3F,0xBE,0x49,0x1B,0x06,0x22,0x2F,0xE1,0x6D,0x1E,0x3A,0xBB,
+0x4D,0x49,0x69,0xE8,0x4A,0x3F,0xBD,0x6E,0x64,0x40,0xDA,0x76,0x1F,0x03,0x27,0xD4,
+0x75,0x37,0x51,0xAE,0xEF,0xA6,0x81,0xCB,0xCA,0xEE,0xB5,0xB7,0xF0,0xED,0xC9,0xD5,
+0x29,0xB9,0x0D,0x7C,0x47,0x00,0x8F,0x63,0xD4,0xF0,0x96,0x8A,0x6B,0x36,0x12,0x95,
+0xCA,0x87,0xEE,0xA1,0x78,0x38,0x88,0x5C,0x9E,0xBA,0x65,0x33,0x15,0x8B,0xAF,0x56,
+0xF6,0xED,0xD2,0xF7,0x08,0x8C,0x4C,0x2C,0xFF,0xDB,0xC1,0xF6,0xFE,0x45,0x61,0x73,
+0xDF,0xE2,0xFB,0xD1,0x90,0x5E,0x06,0xB4,0x3C,0x18,0x18,0xEC,0x13,0xA3,0x87,0x78,
+0x5A,0x5F,0x7E,0xE9,0x2E,0xCF,0x29,0x0A,0x11,0x35,0x2E,0xF7,0xE3,0xF6,0xD2,0xDD,
+0x25,0xA7,0x01,0x6E,0x62,0x11,0xBB,0x46,0x27,0x03,0x0B,0xE4,0xE2,0xE1,0xC5,0xCB,
+0x21,0xB3,0x05,0x7E,0xEB,0xB2,0x91,0xCF,0xAD,0x89,0x70,0x15,0x47,0x97,0xB3,0x18,
+0x82,0x4D,0xA6,0x23,0x63,0x30,0x9B,0x47,0x54,0x70,0x9E,0x02,0xF4,0xCD,0xE9,0xF1,
+0x94,0x7A,0xB0,0x02,0x61,0x43,0xEA,0x45,0xC2,0xE6,0xB7,0xBD,0xDF,0x53,0x77,0x44,
+0x16,0x81,0x32,0x7B,0x9B,0x06,0x55,0xBF,0xFC,0xD8,0x90,0xA4,0x38,0x3D,0x19,0xCD,
+0x4C,0x68,0x68,0xC8,0x9A,0x27,0x75,0xBE,0x4D,0x69,0xFC,0x79,0x46,0x80,0xA4,0x0E,
+0xEA,0xA3,0xCE,0xA5,0xE4,0xFE,0xD2,0xC0,0x2D,0x09,0x78,0x9D,0x4D,0x1F,0x3B,0x9A,
+0x65,0x67,0x41,0xEE,0x5B,0x4E,0xDD,0x7F,0xD6,0xF2,0xE7,0xF9,0x76,0x85,0xA1,0x3B,
+0x07,0xF0,0x23,0x1B,0x28,0xA8,0x48,0x0C,0x95,0xB1,0x36,0x6B,0xC2,0xE0,0xC4,0xEA,
+0x2B,0xCA,0x0F,0x0D,0x0E,0xEB,0x2D,0x2A,0x89,0xAD,0x64,0x25,0x79,0x3A,0x1E,0x8B,
+0xD4,0xBA,0xF0,0x82,0x49,0x6D,0xEC,0x6D,0x52,0x76,0xFF,0x65,0xC5,0xDF,0xFB,0xD2,
+0x49,0x5D,0x6D,0xF8,0xD5,0xAB,0xB6,0xF1,0x8F,0xAB,0x05,0x42,0x86,0xD0,0xF4,0x9E,
+0xE4,0xCE,0xC0,0xC6,0xE9,0xC1,0xE0,0xCD,0x91,0xB5,0x26,0x7F,0x74,0x8D,0xA9,0x31,
+0xDE,0xC3,0xFA,0xF1,0x12,0xA5,0x7F,0x36,0x44,0x60,0xDE,0x52,0x61,0xBE,0x9A,0x17,
+0x9D,0x51,0xB9,0x20,0x88,0x04,0x44,0xAC,0xA8,0x8C,0x40,0x20,0xDC,0x4C,0x68,0x58,
+0x14,0xF2,0x30,0x0A,0x59,0x3D,0xAC,0x7D,0x81,0xA5,0x66,0x2F,0x5B,0x33,0x17,0xA0,
+0x79,0x29,0x5D,0xBC,0xA2,0x59,0x33,0x86,0xD1,0xF5,0xA6,0xBF,0xF6,0xC5,0xE1,0xFB,
+0xDA,0xD7,0xFE,0xE1,0x70,0x32,0x8A,0x54,0x7C,0x58,0x98,0x2C,0x97,0xC3,0xE7,0x9C,
+0x11,0xC7,0x35,0x3A,0x6F,0x2E,0x89,0x4B,0xEA,0xCE,0xB1,0x93,0xF5,0xDA,0xFE,0xE7,
+0x95,0x5B,0xB1,0x22,0xC4,0xDA,0xD6,0xE0,0x87,0xA3,0x07,0x48,0x24,0x99,0xBD,0x75,
+0x84,0x2A,0xA0,0x42,0x50,0x16,0x8E,0x74,0x19,0x3D,0x2C,0xFD,0x9C,0x5C,0x78,0x08,
+0xEF,0x96,0xCB,0x95,0x92,0x2D,0x77,0xB6,0x5E,0x7A,0xED,0x7B,0x99,0x6B,0x4F,0x3A,
+0x0E,0xDB,0x2A,0x39,0xBF,0x36,0x41,0x9B,0x75,0x51,0xBA,0x07,0x45,0x9F,0xBB,0x12,
+0x0F,0xFA,0x2B,0x19,0x73,0x60,0xDB,0x57,0x6C,0x48,0xD8,0x7C,0xFD,0x5A,0x7E,0x6F,
+0xB7,0x0C,0x93,0x57,0x26,0xC5,0x2B,0x02,0x38,0x1C,0x08,0xF8,0x5F,0x13,0x37,0x84,
+0xEB,0x82,0xCF,0x85,0x58,0x1C,0x8C,0x7C,0xD7,0xF3,0xC7,0xD8,0xEF,0x56,0x72,0x71,
+0x8D,0x01,0xA9,0x60,0x09,0xAD,0x6C,0x2D,0x46,0x62,0xAF,0x21,0x30,0xBD,0x99,0x45,
+0xAE,0x77,0x8A,0x35,0x2C,0xBC,0x58,0x08,0xDE,0xFA,0xE5,0xF3,0xA2,0xF1,0xD5,0x9B,
+0xD6,0xC9,0xF2,0xF3,0x86,0x69,0x27,0xA2,0x3E,0x1A,0x69,0x9F,0x67,0x96,0xB2,0x39,
+0x30,0xC2,0x14,0x1E,0xA4,0x3E,0x52,0x80,0xEC,0xC8,0xD0,0xF4,0xD3,0xF3,0xD7,0xE8,
+0x0B,0xEE,0x2F,0x09,0x29,0x89,0x68,0x0D,0x34,0x10,0x1A,0xE6,0x1D,0x0B,0x2F,0xDE,
+0x24,0x86,0x00,0x4E,0xAF,0x66,0x01,0x8B,0x39,0x1D,0x28,0xD9,0xAD,0x4E,0x6A,0x2B,
+0xFD,0xB5,0xD9,0xA4,0xA1,0x0B,0x62,0x85,0x9D,0xB9,0x34,0x61,0x4F,0x17,0x33,0x90,
+0x26,0xF5,0x02,0x3F,0x71,0x13,0xAA,0x55,0x74,0x50,0x9A,0x26,0xC0,0xE8,0xCC,0xE0,
+0x6B,0x0A,0x4F,0x8D,0x48,0x4C,0xCC,0x6C,0x31,0x15,0x2A,0xD3,0x83,0xE7,0xC3,0xAC,
+0x5B,0x7E,0x7F,0xC9,0x7B,0x6A,0xD9,0x5F,0xF5,0xD1,0xB2,0x8F,0xAB,0x66,0x42,0x05,
+0x32,0xB1,0x16,0x6F,0x57,0x50,0xCF,0x73,0xF8,0xDC,0x80,0xB0,0x51,0xBB,0x9F,0x22,
+0x81,0x1F,0xA5,0x72,0x67,0x24,0x8B,0x43,0x15,0x31,0x3E,0xE3,0x6A,0x21,0x05,0x83,
+0x93,0x3C,0xB7,0x43,0xE6,0x8D,0xA3,0xC2,0x76,0x52,0xEB,0x55,0x17,0x83,0xA7,0x5C,
+0x01,0x97,0x25,0x7A,0x18,0xDC,0x0C,0x3C,0xD8,0xFC,0x84,0x94,0xE4,0xC9,0xED,0xE5,
+0x92,0x1D,0xB6,0x63,0xDC,0x80,0x94,0xF8,0xDB,0xFF,0xD5,0xC6,0x93,0xE3,0xC7,0xB8,
+0x88,0x34,0xAC,0x50,0x43,0x14,0x9F,0x67,0x4B,0x6F,0x9D,0x1E,0x21,0xAE,0x8A,0x47,
+0x3F,0x8E,0x1B,0x5D,0xA7,0x6C,0x03,0x83,0x1C,0x38,0x1C,0xC8,0xE6,0xC1,0xE5,0xEF,
+0x96,0x09,0xB2,0x73,0xE5,0xDF,0xF2,0xC1,0xFD,0xD9,0xB0,0x85,0xA8,0x79,0x5D,0x19,
+0x8E,0x53,0xAA,0x31,0x94,0x4A,0x16,0xB0,0xB3,0x97,0x53,0x28,0xC3,0xF7,0xD3,0xFC,
+0x2E,0xFF,0x0A,0x3D,0x7A,0x4B,0xF9,0x5E,0xDD,0xF9,0xB4,0xA1,0x59,0x3B,0x1F,0xAA,
+0x4A,0x0F,0x6E,0xA9,0x7D,0x0D,0xB8,0x59,0x8E,0xAA,0x25,0x63,0x87,0xC7,0xE3,0x88,
+0x9C,0x70,0xB8,0x00,0x60,0x62,0xCA,0x44,0xD3,0xF7,0xD7,0xCC,0x3B,0x22,0x06,0xD1,
+0xE8,0xD0,0xCC,0xD4,0x0C,0x98,0x5C,0x28,0x5F,0x7B,0xCD,0x5A,0x04,0x98,0xBC,0x54,
+0x3B,0xFE,0x96,0x12,0x9B,0x8C,0x47,0x34,0x65,0xC3,0x43,0xA4,0x30,0x5B,0x82,0xDE,
+0xB6,0x84,0xD9,0x25,0xD9,0x02,0x51,0xCC,0xBD,0xFA,0x17,0xB7,0x78,0x84,0x4D,0xEC,
+0x90,0xE9,0xC5,0xD9,0x76,0x7A,0xD9,0xD4,0x76,0x4D,0xC5,0xF3,0x0A,0x3D,0x81,0x11,
+0x26,0xC2,0x72,0xB8,0x0C,0xCB,0xA4,0x71,0xF3,0xEE,0xAD,0x68,0x8C,0x7E,0x5D,0xFB,
+0x0B,0xC1,0xA0,0x92,0x30,0xB9,0x93,0x5E,0xF9,0xBD,0x10,0xB1,0x74,0xC0,0xB3,0x75,
+0x64,0x58,0x04,0x38,0xE6,0x69,0xCA,0x8F,0x60,0x57,0xDF,0x73,0x28,0x73,0xFD,0x07,
+0x04,0x1B,0xB4,0x97,0x5C,0x93,0x46,0x28,0x79,0x66,0x55,0x56,0xDF,0xD6,0xF3,0x02,
+0xF2,0xEE,0x89,0x07,0xAE,0x75,0x9D,0x95,0x01,0x54,0x72,0x81,0x2C,0x9C,0x92,0xA7,
+0x92,0xEE,0x28,0xE8,0x3E,0x31,0x15,0xD9,0x7C,0x9C,0xE1,0x82,0x97,0xE9,0xF9,0x55,
+0x49,0x08,0x80,0x15,0x47,0x01,0xE8,0x72,0x0E,0x85,0x4A,0x4B,0x85,0xAB,0x37,0x70,
+0x37,0x1E,0x62,0xD9,0x0F,0xEB,0x69,0x3B,0x93,0x27,0xC8,0x49,0x60,0x83,0xBB,0xE6,
+0x1A,0x0A,0x24,0x52,0x75,0x98,0x1B,0x4F,0x0A,0x39,0xF5,0xB4,0xE5,0xBB,0x4E,0x94,
+0x6F,0x7A,0x6E,0x2A,0x00,0x57,0xA0,0xDE,0x16,0xBE,0x95,0x01,0x08,0x15,0x39,0x23,
+0x1F,0xBF,0xEE,0xE3,0xA4,0x66,0xAF,0x5C,0x76,0x2D,0x25,0x28,0x98,0x8D,0x00,0x55,
+0x87,0xA9,0x08,0xDA,0x74,0x81,0xEB,0x79,0x9C,0x78,0x0A,0x18,0xB7,0x4D,0x0D,0x9C,
+0x00,0xAD,0x4E,0xC1,0xAC,0xA1,0xCD,0xCB,0xC3,0xFE,0xFE,0x3D,0xD3,0xAA,0x60,0xBB,
+0x0E,0x39,0x5A,0x34,0x5A,0xA4,0xC2,0xAD,0xF5,0xE2,0xDC,0x9C,0x28,0x8F,0x16,0x57,
+0xB0,0xEB,0x70,0xD1,0x29,0xBC,0x52,0x54,0x6E,0x8A,0x27,0xBF,0x95,0xD8,0xA1,0xEA,
+0x6B,0x3E,0xEB,0x9A,0x27,0x91,0x5B,0xB5,0x06,0xE5,0x0D,0x2D,0xEA,0x7F,0xE7,0x52,
+0xD1,0x65,0x0A,0xCF,0xE5,0xE7,0xFC,0x9C,0x6F,0x1B,0xE5,0x52,0xDF,0xEE,0x1A,0xFD,
+0xBD,0x17,0x08,0xB5,0x84,0x60,0x9D,0x5F,0x57,0x23,0xB8,0xE9,0x58,0xD2,0x57,0x02,
+0xE0,0x58,0x94,0x49,0xD0,0xAC,0x86,0x11,0x82,0xED,0xF6,0x52,0x9C,0xB5,0xA6,0xCB,
+0x4F,0xA1,0xCC,0x40,0x60,0xE4,0x04,0x58,0xBC,0x5B,0x41,0x1E,0x57,0x40,0x28,0x1E,
+0x78,0xE1,0x89,0x09,0x00,0x1D,0x7D,0x1F,0x74,0x3D,0xD4,0xAF,0xA4,0xBF,0x83,0xD5,
+0xA0,0x9D,0x8D,0xCA,0x90,0x39,0xCA,0xBF,0x63,0x7E,0x5C,0x57,0x76,0x94,0x34,0x03,
+0xB7,0x90,0x49,0x47,0x05,0xA8,0x8C,0x3A,0x6C,0x95,0xC7,0x12,0x40,0x06,0xDC,0x05,
+0xA5,0xCF,0x87,0xE5,0x9E,0xD0,0xBB,0xAD,0x05,0x6A,0x6D,0xBD,0xBA,0xD7,0x12,0x7F,
+0x48,0x3E,0x74,0xC2,0x6E,0xC2,0x53,0xA6,0x05,0x55,0xB3,0xE1,0x14,0x71,0x0D,0x18,
+0x1C,0x73,0xA8,0xE8,0x1E,0x35,0x4C,0x6A,0xC5,0x36,0x96,0xE6,0xD8,0xAF,0x5B,0x22,
+0xCA,0x6F,0x17,0xEC,0x0F,0xFB,0x3A,0xA4,0xD8,0xF2,0x6C,0xCB,0x77,0x0F,0xAD,0x57,
+0x28,0x4A,0x20,0xB9,0xDD,0xE2,0xB1,0x66,0xCC,0xF7,0x76,0xBB,0x82,0x80,0x5A,0x5D,
+0xF0,0x50,0x3C,0x9E,0x80,0x99,0x8A,0x17,0x58,0x15,0x16,0x84,0xC3,0x23,0x57,0x21,
+0x51,0x42,0x33,0x69,0x7E,0xCE,0x73,0x83,0xB1,0xA6,0x62,0x61,0x90,0x85,0x87,0xC6,
+0x08,0xB0,0xEC,0x4C,0x2C,0xE8,0x47,0x50,0x86,0xD1,0xA6,0xE6,0x5E,0xFC,0xA0,0x75,
+0x3E,0xCC,0x02,0x7A,0xFA,0xF3,0xB0,0xC0,0xCD,0x8F,0xA3,0x11,0xD5,0x89,0xE7,0x56,
+0x44,0x12,0xA3,0x00,0x6F,0x8B,0x22,0x48,0x9C,0xAA,0xC6,0x75,0xBA,0x42,0x7E,0x97,
+0xBE,0x51,0x29,0xB5,0xFD,0x79,0x99,0x7F,0xAA,0x44,0xC3,0x92,0x66,0x65,0x9A,0x47,
+0x29,0x75,0x76,0x5A,0x35,0x4B,0x38,0xB0,0x3B,0xF7,0x21,0xBA,0xBF,0x3F,0xC3,0xC5,
+0x19,0xF7,0xFA,0x51,0xC6,0x38,0xD1,0xF2,0x80,0xF9,0xDD,0xB3,0x17,0x70,0x37,0x3D,
+0xEA,0x1C,0x76,0xD6,0x49,0x11,0xB0,0x54,0x49,0xC6,0xC4,0x02,0x26,0xE6,0x63,0xC4,
+0x5D,0x28,0x84,0x16,0x9F,0xD3,0xC0,0x7F,0x0D,0x54,0x1E,0xB5,0x0C,0x46,0xE3,0x63,
+0x0C,0x26,0x3E,0xB0,0xE8,0xCF,0x17,0xA4,0xD8,0x4C,0x03,0x7B,0xDA,0x2C,0xDC,0x95,
+0x56,0xE7,0xB9,0x88,0x45,0x59,0x89,0xE5,0x65,0x2D,0x2D,0x37,0x0A,0x74,0x39,0xB7,
+0x68,0x4C,0xAB,0xD4,0x28,0x9A,0xED,0xCB,0x7B,0xE5,0x6A,0x6D,0x9D,0x47,0xC5,0xC3,
+0xEC,0x81,0x0B,0xDD,0x4C,0x20,0x27,0xD5,0x04,0xDB,0xB1,0xED,0x51,0xAE,0x45,0xD9,
+0xD9,0xD0,0x8A,0x23,0xBA,0xCC,0xA4,0x3C,0x3E,0xFF,0x9D,0x2F,0x2C,0xA7,0xD3,0x01,
+0x34,0x0B,0x5D,0x7B,0x31,0xDB,0x63,0xA0,0x38,0xAF,0x9F,0x7B,0xB1,0x7B,0x4A,0x42,
+0x7D,0xEF,0xB0,0x95,0xB0,0x77,0x21,0x61,0xDE,0xC0,0x52,0xC9,0x85,0x8A,0xE1,0xDC,
+0x07,0x13,0x7A,0x94,0x18,0x3C,0xE4,0x8A,0x7B,0x0B,0x97,0x4C,0xEF,0xEF,0xE6,0xFE,
+0xED,0x1E,0x35,0x48,0x03,0x58,0x45,0x64,0xB6,0x19,0xC1,0x11,0xE8,0xF1,0x69,0x2F,
+0x4E,0x90,0x63,0x5D,0xFE,0xF8,0x5F,0xC7,0xAE,0x46,0x5F,0xF6,0x53,0x45,0x91,0xED,
+0x30,0x16,0x25,0xFF,0xC7,0x61,0x2E,0x17,0x2F,0xE7,0xDA,0xB9,0x32,0x53,0xAA,0x6D,
+0xDE,0x09,0x7B,0x15,0xCB,0xFA,0x2F,0x31,0x74,0xBC,0xB2,0x24,0x46,0x2F,0xA9,0xB6,
+0x3A,0x98,0xB0,0xBE,0x55,0x2E,0x18,0xB0,0xDF,0x61,0xA9,0xB2,0xC7,0x67,0x92,0x38,
+0x63,0xB7,0xB4,0x4E,0xBD,0x54,0x54,0x6B,0x47,0xD8,0x14,0x8D,0xC4,0xE3,0x4F,0xD2,
+0xB4,0x8B,0x57,0xC2,0xC8,0xC9,0x6C,0x76,0xD6,0xDA,0x22,0x81,0xEB,0x4C,0x71,0xB8,
+0xF4,0x52,0xCB,0x37,0x22,0xFD,0x65,0xF5,0xE4,0xE0,0xCD,0x5B,0xCB,0x82,0xBE,0x50,
+0x36,0x5E,0x2D,0x0B,0x35,0x7C,0x07,0xDD,0x0E,0x3C,0xF9,0x57,0xD1,0x2B,0x80,0x4C,
+0x86,0x2B,0xB8,0x2C,0xBC,0x88,0x43,0xBF,0x1F,0x33,0x12,0x75,0xBD,0xA2,0xE8,0x68,
+0x24,0xC8,0x99,0x45,0xE8,0x1B,0x69,0xEB,0x27,0x79,0x33,0x28,0x00,0x2A,0xBB,0xC0,
+0x13,0x07,0x76,0x15,0x61,0xBA,0xC2,0x9C,0xDD,0x10,0x5E,0xF3,0x01,0x5A,0xCE,0xC4,
+0x6E,0x13,0x38,0xE1,0x0C,0xFF,0x8A,0xF0,0x03,0x87,0x18,0x46,0x55,0x09,0xD7,0x1E,
+0xF7,0x51,0x9E,0x2B,0x48,0x9B,0x90,0xA0,0xEA,0x04,0x9E,0x37,0xD4,0x05,0xB5,0xC7,
+0x32,0xBD,0x9A,0xFE,0xA3,0x8E,0x31,0x72,0xAF,0x33,0xD5,0xFC,0xB8,0x50,0x66,0xB7,
+0xFC,0x57,0xC1,0x97,0x08,0x99,0x8C,0x85,0xEE,0x40,0x50,0xC2,0xA9,0x3B,0x83,0x73,
+0xCB,0x35,0x66,0x08,0xBD,0x60,0xCB,0x36,0x65,0x8F,0xC5,0xF8,0xE6,0xC4,0x86,0x5A,
+0x64,0xD4,0x69,0xE0,0x2D,0x28,0xB8,0x47,0x81,0x5C,0x72,0x8B,0x1E,0x31,0xCC,0xC8,
+0x39,0xE5,0xD9,0xFE,0x9B,0xE4,0x18,0xDD,0xFD,0xF5,0x3C,0x83,0xF4,0x56,0x40,0x6C,
+0x55,0xC8,0xE6,0x63,0x93,0x63,0x78,0xCF,0x4E,0x68,0x61,0x6A,0x0C,0x6A,0x29,0xAA,
+0xEF,0xD3,0xF8,0xA4,0x6B,0x15,0xEF,0x15,0x0F,0x37,0x89,0x9C,0xC1,0xFB,0x57,0x11,
+0x34,0x74,0x34,0xAA,0xC9,0x38,0x84,0x7C,0x10,0x63,0xA3,0x49,0xD1,0x5C,0x73,0x19,
+0x8A,0x9B,0x18,0x95,0x9E,0x20,0x7C,0xDD,0xD3,0x65,0x58,0x44,0x7F,0x0B,0x56,0x73,
+0x74,0xE9,0x87,0x71,0x04,0x1D,0xFC,0x5F,0x68,0x1B,0x92,0xB5,0x92,0xA7,0x33,0x7F,
+0xAC,0xF7,0xB8,0x80,0xB4,0x66,0xAB,0x84,0x9D,0xB7,0xF2,0x18,0x1B,0x04,0xD8,0xE6,
+0x4E,0xDC,0x2B,0x93,0x8F,0x7F,0xDA,0x93,0xB1,0x68,0xE8,0xE6,0xE5,0x8B,0xAF,0xE2,
+0x98,0x9A,0x27,0xCF,0xFC,0xB1,0xC8,0x13,0xAA,0x0D,0x12,0x4A,0x65,0x2B,0x09,0xBC,
+0xCC,0xA9,0x66,0xD5,0x2A,0x46,0x04,0x3A,0xA4,0xF2,0x37,0x4D,0x00,0xF5,0x56,0xA3,
+0x21,0x9D,0x2B,0x4B,0x40,0x54,0x1B,0xE0,0x83,0xCF,0xE9,0x7A,0x58,0x53,0x50,0xBD,
+0x33,0x5B,0x2A,0x77,0x18,0x2C,0x99,0x67,0x1D,0x2E,0x43,0x8E,0xF9,0x82,0xA5,0xAE,
+0x24,0xEE,0x16,0xFC,0x22,0xBD,0xE2,0xC1,0xA2,0x02,0xD8,0x19,0x3C,0x10,0x8A,0x95,
+0x76,0x66,0x93,0x09,0x49,0xF1,0x9D,0x76,0xCE,0x33,0xF6,0xC8,0x38,0x18,0x99,0x65,
+0x80,0x28,0x23,0xFE,0x68,0x17,0xFA,0xAE,0x5E,0xAC,0xD1,0x27,0x32,0x52,0x34,0x49,
+0xE0,0x7D,0x1D,0x71,0xE0,0xED,0x51,0x21,0xE1,0x48,0x5B,0x54,0x14,0xF7,0x35,0x02,
+0x8F,0x94,0x17,0xDD,0x4F,0x3D,0x1E,0x79,0x41,0x2E,0x94,0x13,0xF6,0x44,0xD7,0xDE,
+0xA2,0xE3,0x0C,0x47,0x99,0x4F,0xC8,0xB8,0x6C,0x93,0x29,0x61,0x37,0xFA,0x80,0x20,
+0x14,0x50,0x5F,0x6E,0xE0,0xFE,0x8A,0xF8,0xEA,0x49,0x41,0x51,0x14,0xB9,0x8B,0x36,
+0x32,0x3F,0x8A,0x93,0xFF,0x86,0x09,0x14,0x93,0x9D,0x93,0x50,0x10,0x00,0xDB,0x9E,
+0xBF,0x8B,0x6E,0xCF,0xFA,0x08,0xBB,0x48,0x7E,0x4B,0xC7,0xC8,0x55,0xDF,0x51,0x81,
+0x84,0xB9,0x37,0x8F,0xF5,0x25,0x44,0x69,0x8C,0x1E,0x7A,0xD4,0x03,0x2E,0x0C,0x51,
+0x03,0x97,0x24,0x26,0x29,0x05,0xB9,0x28,0x6F,0xE0,0x8E,0x81,0x41,0xC9,0x33,0x57,
+0x9B,0x2D,0x1A,0x5C,0x3D,0xE2,0x3E,0xA9,0xE0,0x4C,0xA1,0x25,0x52,0x09,0x24,0x20,
+0xEB,0x67,0x99,0x33,0x2C,0xD3,0xEA,0xC6,0x9A,0xC2,0x11,0x9A,0x7F,0x91,0xFE,0x9C,
+0x9E,0x33,0x1B,0xBF,0x96,0x1C,0x72,0xDA,0x80,0xFA,0x71,0xAD,0x93,0x3F,0xC7,0xB7,
+0xB3,0xD6,0x27,0xBA,0x12,0x6F,0x41,0xF4,0x49,0x1D,0x4C,0xEF,0xD1,0x07,0x64,0x8B,
+0xCD,0x0C,0x3D,0x02,0x4E,0x85,0xA2,0xE9,0xF9,0xBD,0xCE,0x2C,0x07,0x2F,0xBF,0x04,
+0x16,0x99,0x56,0xBE,0xDD,0xB5,0xBA,0x5A,0x1C,0x22,0x65,0xB2,0x47,0x6D,0x67,0x48,
+0x30,0x24,0xDB,0x6F,0x50,0x4D,0x46,0xA5,0xBB,0xAC,0xA6,0xFD,0x97,0xC8,0xED,0x2C,
+0xE7,0x5A,0x26,0xA1,0x26,0xD0,0x7D,0x7B,0x9E,0x5F,0x90,0xD4,0x89,0x67,0xED,0xA4,
+0xBE,0x40,0x24,0x02,0x16,0xAA,0x1C,0x04,0x58,0x27,0x2D,0x26,0x76,0xE3,0x97,0xDD,
+0x5A,0x2F,0xB7,0xB7,0x13,0x7E,0x53,0x75,0x17,0xAA,0x36,0x3D,0xDF,0xAB,0x76,0xC8,
+0xB4,0xC1,0x4C,0xE7,0x24,0xE5,0x6A,0xA1,0x5F,0x59,0x5E,0x29,0xEB,0xD7,0xD5,0x2D,
+0xCA,0xC9,0x77,0x17,0x30,0x7C,0x7B,0xD7,0x3C,0xB0,0xDB,0xEF,0x75,0xC1,0x92,0x71,
+0x69,0xB9,0x56,0xC5,0xF7,0xDC,0xFD,0xF7,0x77,0x5F,0x45,0x84,0xF6,0x75,0x7D,0x05,
+0x83,0xA3,0x11,0xB5,0xAE,0xB8,0xAC,0x3D,0x6C,0xB0,0x13,0xD1,0x96,0x6B,0x9C,0x31,
+0xB6,0x45,0xD8,0xF7,0x03,0x0A,0x2C,0x2E,0x52,0xF4,0x51,0xDD,0x8C,0xD4,0xBA,0xB5,
+0x73,0x25,0x1B,0xE3,0x21,0x1F,0x0E,0x4F,0x30,0x8F,0x1A,0xED,0xA6,0x81,0x4A,0xA4,
+0xEA,0xC6,0x77,0x9B,0x62,0x7B,0x7F,0x66,0xDD,0x90,0x9C,0xC9,0x14,0x8D,0xCA,0xDC,
+0x97,0xEE,0x53,0x1A,0x7B,0x3E,0xCF,0x28,0xE5,0xCA,0xDA,0xA9,0x53,0xDE,0x4C,0x84,
+0xA0,0xB1,0x58,0xC0,0x73,0x9F,0x70,0x3A,0xCB,0x0F,0xB7,0x8E,0x2E,0xAE,0x5F,0x62,
+0x02,0x9F,0xCD,0x34,0x83,0x0C,0xA5,0x39,0xF3,0x93,0x96,0x86,0x80,0x26,0x50,0xE2,
+0xB2,0xBE,0xD4,0x50,0xD1,0xF8,0xF6,0x97,0xF2,0x66,0x7D,0x46,0xD8,0xAF,0xDE,0x5D,
+0x70,0x20,0x7D,0x78,0x53,0x79,0xCB,0xD0,0x66,0xB6,0x49,0xAA,0x84,0x06,0x38,0x2F,
+0x6E,0x8A,0xF0,0xAA,0x2C,0x95,0x0C,0xE4,0x95,0xA6,0x40,0xB6,0x4B,0x62,0x8F,0x9C,
+0x9D,0x15,0x56,0xA5,0x17,0xBC,0x6A,0x3F,0xD7,0xF3,0x59,0xE5,0x02,0xF4,0xD2,0x0F,
+0xAD,0x18,0xD3,0x75,0xDC,0xCF,0xA2,0xC4,0xCA,0xF3,0xA5,0x59,0xC9,0xBB,0x03,0x2E,
+0x3A,0xFF,0x9F,0x3E,0x05,0xFD,0xCE,0x74,0x32,0xB4,0x47,0xE8,0xC6,0xE1,0x3C,0xCE,
+0xC0,0xFE,0x1C,0xC7,0x65,0x0F,0x07,0xFC,0xAA,0x55,0x42,0x39,0xD2,0xC6,0x56,0x45,
+0xBA,0x29,0x48,0xF3,0x9A,0x77,0xF9,0xF8,0x59,0x55,0x27,0x7E,0x1C,0x0D,0xAB,0x04,
+0x8C,0x7E,0x0F,0xC2,0xE0,0x6C,0x06,0x98,0x3F,0x43,0x22,0x5C,0x2A,0x78,0x87,0xC3,
+0xD5,0xCE,0x09,0x9A,0xF8,0x4A,0x86,0x00,0xF1,0x81,0xE6,0x67,0x79,0x01,0x75,0xC6,
+0xF9,0x4F,0x2A,0x15,0xE4,0xF3,0x24,0x88,0x26,0x61,0xD6,0x8E,0x9D,0x0E,0xF3,0x87,
+0xB0,0x35,0x6D,0x73,0xE6,0x5F,0x29,0x25,0x9A,0x58,0x1B,0x2B,0xC7,0xFF,0x64,0xF7,
+0x5D,0x6A,0x01,0xBC,0xB7,0x48,0x0B,0xA4,0x13,0xF6,0x19,0x91,0x99,0x23,0x58,0xF2,
+0x68,0xC2,0x23,0x3F,0x33,0xA4,0xF5,0x64,0x45,0xB7,0x35,0x46,0x60,0x2A,0x3A,0x9D,
+0xEC,0x88,0xFE,0xE5,0x96,0x1E,0x8E,0xD6,0x91,0x95,0xEE,0xCF,0x61,0xC3,0xF7,0x21,
+0xD2,0x2C,0x0D,0x17,0xFC,0xDD,0xE5,0x7A,0xDD,0x63,0xA9,0x2F,0x04,0xF0,0x7A,0x8C,
+0x88,0xD4,0xCF,0x6D,0x77,0x4B,0x26,0xEC,0x10,0x8B,0x87,0xBC,0xFD,0xA8,0xD8,0x36,
+0xD9,0xB7,0x79,0x86,0xED,0x57,0xB6,0xED,0xDC,0xF1,0x9A,0xF0,0x91,0xC2,0x64,0x16,
+0xD1,0xEA,0x0C,0xFF,0xF4,0xEA,0x5B,0xD7,0x24,0x11,0x41,0xA3,0xEE,0x39,0xB5,0xF3,
+0x3B,0xC7,0x9D,0xB8,0x6D,0x8E,0x04,0xFA,0x02,0x7F,0x17,0x64,0x35,0x27,0x1C,0x6B,
+0x98,0x06,0x7F,0xAF,0x3B,0x2E,0xC2,0x30,0x1E,0xCB,0x89,0x37,0x9E,0x93,0x20,0xDE,
+0xE6,0x25,0x2A,0xA4,0x3E,0xB7,0xDC,0xC8,0x91,0x93,0x0C,0x0A,0xCE,0x85,0xC9,0xA4,
+0x08,0xB1,0x94,0x2A,0xFC,0x2C,0xB8,0x25,0x23,0xCF,0x64,0xEF,0x03,0xF9,0x19,0x6E,
+0xEC,0xDC,0xDC,0x44,0x34,0xF8,0x04,0x10,0xDE,0xDE,0x7F,0xF5,0x2C,0xB1,0x45,0x9A,
+0xB5,0x1C,0x4D,0xF8,0xF5,0x82,0x9F,0x89,0x6C,0x89,0xC2,0x39,0xA3,0x35,0x26,0x95,
+0x62,0x74,0xB6,0x4C,0xFA,0x1F,0xBC,0x1E,0xB8,0xDC,0xF4,0x58,0x14,0x9A,0xD7,0x43,
+0x22,0x0D,0x97,0xB7,0x9C,0x2B,0x9E,0x8A,0x4D,0xCD,0x1B,0xEB,0x3A,0x54,0x21,0xA8,
+0xE0,0x27,0x04,0x48,0xE5,0xAA,0x2F,0xA4,0x23,0x96,0x2F,0x29,0x46,0xFD,0xFF,0x24,
+0x50,0xC7,0x4E,0x29,0xD3,0x5E,0x7F,0xBE,0xE5,0xE1,0xC4,0x2F,0x8F,0x74,0x48,0x0A,
+0xF2,0x22,0x56,0xF6,0x28,0xCD,0x1F,0x42,0x8F,0x43,0xE5,0x3F,0x63,0xFC,0x2B,0x08,
+0xC5,0x58,0x72,0x47,0xA1,0x6C,0x80,0x47,0xF5,0x6F,0x88,0xC0,0xC2,0x8C,0x64,0xEE,
+0xB8,0x2B,0x2E,0x01,0xDA,0x29,0x53,0x44,0x37,0x4B,0xCE,0x82,0x77,0xDF,0x21,0x7F,
+0x21,0xF1,0xEA,0x58,0xDA,0x4D,0xB8,0x93,0xDC,0x92,0x48,0xB4,0x5E,0xD3,0xFD,0x18,
+0xE4,0xF3,0x9B,0x30,0x57,0x58,0x8E,0x54,0xD5,0xF5,0x03,0xA4,0xCE,0x86,0xF6,0x86,
+0x87,0xC9,0x98,0x33,0xC6,0x18,0x83,0x16,0x46,0x54,0xB4,0xE4,0x14,0x53,0xDB,0xB2,
+0xDE,0x8D,0x68,0x53,0x9D,0x3E,0xDF,0xE4,0x21,0xEF,0x70,0x22,0xAC,0x2A,0xCF,0x4C,
+0xE8,0xBF,0x2E,0x42,0xBF,0x25,0xB1,0x97,0x00,0x48,0x75,0x7A,0x6B,0x5F,0xDA,0x26,
+0x92,0xE8,0xB7,0x69,0xB6,0x5D,0xCD,0x15,0x3B,0x60,0x10,0x69,0x3B,0x94,0xA5,0x48,
+0x68,0x63,0xDD,0x58,0x3B,0xAF,0x07,0x65,0x0B,0x11,0x15,0x88,0xAC,0xB3,0x29,0xBA,
+0xFF,0x75,0x39,0xBC,0x55,0x9D,0xB1,0xEC,0xE6,0x8C,0xF7,0x21,0x11,0xE9,0xA6,0x38,
+0xCF,0xBF,0x07,0x6B,0xA5,0xEE,0x63,0xB7,0xF9,0x1B,0x0B,0x22,0xA1,0xA6,0x87,0x2F,
+0x3C,0xBF,0x43,0x74,0x42,0xC7,0x4D,0xC3,0xD1,0x9C,0x12,0x93,0xBE,0x30,0x3F,0x0B,
+0x8B,0x77,0x14,0x91,0xC0,0x05,0xAE,0xFC,0xAD,0xE9,0xC8,0x57,0xF3,0x90,0xAD,0x62,
+0xDA,0xC5,0x71,0xEE,0x61,0x19,0x7A,0x34,0x75,0x3D,0xD5,0x13,0x28,0xFA,0xE1,0x01,
+0x80,0xF1,0x4A,0xED,0xF2,0x8F,0xEC,0x7C,0x8F,0x1F,0xFB,0xFA,0x85,0xA2,0xB0,0x70,
+0xBE,0x2C,0x09,0x9A,0x9F,0x4C,0xBE,0x21,0x3F,0xB6,0xBC,0x50,0x79,0x91,0xE7,0x95,
+0x3A,0x03,0x1C,0x35,0xA9,0xF6,0x5F,0x17,0x54,0x18,0x67,0x94,0x46,0x78,0xEF,0xB2,
+0x0F,0x6A,0xD2,0x37,0x9B,0x1A,0xDE,0x8C,0x45,0x1F,0x4B,0x20,0xD5,0x71,0xA3,0x01,
+0xE2,0x03,0x31,0x27,0xEC,0x0D,0x71,0x85,0x7D,0x03,0x49,0x06,0x9C,0xAD,0x73,0x5E,
+0xAB,0xE4,0xC4,0xFA,0x41,0xA1,0x0A,0x61,0xD6,0xDB,0x84,0xA6,0xFD,0x5C,0x82,0x2C,
+0xD8,0xE6,0x6B,0x6A,0xAD,0x72,0x12,0xA2,0x84,0xAC,0x0A,0x23,0xD9,0x59,0x90,0x57,
+0x66,0x22,0x4A,0xAC,0x30,0x6A,0xDC,0x32,0x97,0x85,0xF1,0x2E,0xFD,0x0E,0xDD,0xA9,
+0xBD,0x21,0xFF,0xE5,0x16,0x47,0xA4,0x18,0x09,0x46,0xDB,0x98,0x73,0xA9,0xDD,0x20,
+0x07,0x26,0x76,0x39,0x8F,0x31,0xBD,0xD3,0x87,0x00,0x33,0x32,0x5E,0x38,0xD9,0x74,
+0x6B,0x6A,0x10,0x52,0x50,0xB6,0x78,0xB3,0xD8,0x7F,0x6E,0xC3,0xAF,0x04,0x86,0xAD,
+0x36,0x9A,0x18,0x23,0xA2,0x7A,0x85,0xD5,0x76,0x1E,0x20,0x06,0xD5,0x63,0x2A,0xFD,
+0x99,0xA1,0x05,0x36,0x66,0x32,0x66,0x40,0xF7,0xC4,0x97,0x09,0x15,0x96,0x71,0xBC,
+0xAE,0xC2,0xED,0x58,0x33,0xCB,0x61,0x02,0x3D,0x6E,0x02,0x23,0xA2,0x69,0x47,0x84,
+0x76,0xAC,0xD2,0x46,0xD0,0xEF,0xAF,0xB9,0x3F,0xEA,0x8A,0xFC,0x15,0x42,0xDE,0x3E,
+0x61,0x62,0xB9,0x3B,0x30,0x7E,0x5C,0xD7,0x45,0x7A,0x11,0x50,0x99,0xD0,0x4F,0x4A,
+0x73,0x74,0x04,0xB8,0x5B,0x06,0x85,0x70,0x98,0xCC,0xBB,0x7B,0x20,0x01,0x19,0xE4,
+0x9E,0x01,0x53,0x50,0x05,0x14,0x70,0x3F,0xD9,0x8B,0x65,0x6F,0x99,0xA7,0xCC,0xB8,
+0xCA,0xB4,0x9E,0xCA,0xF0,0xE3,0x1E,0x37,0xB3,0xDF,0x40,0x3A,0x22,0x79,0x72,0x9D,
+0x1C,0x49,0x71,0x0A,0xCB,0x2D,0xF7,0x94,0xC7,0x2A,0xBA,0x30,0xB8,0xD9,0xCE,0x9B,
+0xFE,0x27,0x4D,0x49,0x19,0x34,0xC7,0x33,0xC9,0x9D,0xA0,0x25,0xEF,0x56,0xBC,0x37,
+0x26,0xC1,0x23,0x4D,0xB6,0x4F,0x10,0xDA,0x38,0x44,0xC0,0x57,0xAF,0xF5,0xD1,0x97,
+0xED,0x3C,0xDB,0x88,0xBA,0x5A,0x90,0x4F,0xC1,0x16,0x95,0xB7,0xC5,0x8D,0xE2,0xB5,
+0x60,0xD1,0x28,0x76,0x46,0xD4,0x14,0x88,0x16,0x8E,0xC1,0x6E,0x41,0x52,0x66,0x25,
+0x46,0x29,0x49,0x7A,0x4D,0xAC,0x20,0x86,0x1D,0xC2,0x13,0xE6,0x3E,0xEB,0x3A,0x9E,
+0xF0,0x2A,0x4D,0xC5,0xE7,0x1D,0xC2,0xA4,0x28,0xBD,0x7B,0x4B,0x50,0xA8,0x83,0xCC,
+0xDD,0x5E,0xA3,0x9C,0x69,0x6F,0xB3,0x84,0x0D,0xB3,0xC6,0x16,0xB5,0x16,0x60,0xBA,
+0xB2,0x35,0x80,0xCD,0x59,0xBF,0xB6,0x10,0xE0,0x80,0x09,0xAC,0xAE,0xA5,0x10,0x2A,
+0xD2,0x5D,0xC0,0xDD,0x67,0x45,0x4E,0x96,0xE9,0x20,0x83,0x64,0xA8,0x00,0x14,0xB0,
+0x24,0x69,0xBC,0x4A,0x09,0xA3,0x2E,0x1E,0x50,0x3A,0xA4,0x10,0xF7,0x4A,0x2D,0xF3,
+0x44,0x70,0x90,0x3F,0x84,0xE7,0x10,0x9B,0x6E,0x90,0x37,0x9A,0x0F,0x3F,0x6A,0x18,
+0x9F,0x90,0xAB,0xEA,0x9B,0xD7,0x53,0xB8,0x50,0xE0,0x9C,0xAF,0x18,0x7D,0x90,0x28,
+0xE1,0x12,0x3A,0xF5,0xC3,0x3D,0xBA,0x76,0x6A,0xAC,0x1E,0x70,0xCE,0x55,0x39,0x41,
+0xCC,0x33,0x04,0xD5,0xA3,0x4E,0xB2,0xC7,0x19,0x56,0x23,0x6D,0x43,0x6D,0x20,0x9E,
+0xB9,0xCD,0xD9,0x13,0x4E,0x81,0x4C,0x22,0x1D,0x27,0x43,0x8F,0xE5,0xC3,0xC5,0x2C,
+0xC9,0xFB,0xF9,0xD4,0xD3,0xB0,0x3C,0x29,0x19,0xA0,0xF3,0xA2,0xC1,0x5B,0x07,0x19,
+0x51,0xBF,0x1D,0xCA,0x39,0x57,0x47,0x17,0xCB,0xC4,0xDC,0xF0,0xE5,0x9B,0xB1,0x20,
+0xD6,0xBD,0xA8,0x83,0x1F,0x77,0x40,0x8B,0x56,0x65,0x28,0xA5,0x81,0x7C,0x4C,0x92,
+0x50,0xE1,0x19,0xDB,0xB0,0x8D,0x37,0xC3,0xAF,0x38,0xE2,0xA1,0xBA,0x88,0xE1,0x8E,
+0x9C,0x33,0x2E,0xBD,0xC9,0xD0,0x7C,0x07,0xB7,0x1B,0x85,0xE5,0x9D,0xC6,0xE8,0x29,
+0xD4,0x14,0x85,0xE2,0xAF,0x7F,0x17,0xF4,0x02,0x0A,0x70,0x2D,0xE2,0x71,0x04,0x52,
+0x2D,0x29,0x33,0x81,0xD1,0x48,0x4C,0x2D,0x1E,0xC7,0x8F,0x03,0x2E,0xE4,0xCD,0xB9,
+0x94,0x3A,0x71,0xC1,0xFF,0x3E,0x13,0x3C,0x6A,0x88,0xBF,0xBC,0x4E,0xEC,0x8C,0x35,
+0x8C,0xAC,0x4C,0x54,0x67,0x80,0x0B,0x98,0x9E,0xDD,0xE8,0x55,0x23,0x17,0xE8,0xD2,
+0xA1,0xBE,0x22,0xE7,0xB0,0x5B,0x73,0x78,0x0A,0x5A,0x4F,0xFD,0x66,0x3D,0x51,0x34,
+0xD7,0xDB,0x9F,0x34,0x64,0xE1,0xBB,0xFF,0x50,0x73,0xDE,0x31,0x03,0xD5,0xB2,0xD3,
+0x05,0x31,0x95,0x42,0xCF,0x2C,0xA7,0x12,0x08,0xA2,0x9F,0x5A,0xB3,0xA6,0x44,0x60,
+0xCB,0xE5,0x7A,0x01,0x4C,0xFA,0x07,0x91,0x0C,0x04,0x3F,0x0F,0x8E,0x5C,0x56,0x41,
+0xD2,0x43,0x85,0x4C,0xFD,0x18,0x40,0x5D,0x38,0x0E,0xB0,0xD6,0xC0,0x46,0x63,0xDA,
+0xA9,0xB8,0x84,0xC6,0x07,0xC0,0x30,0xC7,0x90,0x89,0x13,0xDD,0xE3,0x26,0xF9,0xBE,
+0x09,0x17,0xE8,0x55,0x03,0x90,0x30,0x42,0x33,0xDE,0xA4,0xA5,0xE2,0x6C,0xB5,0x19,
+0x98,0xD4,0xAB,0x0D,0x80,0x87,0x63,0x74,0x73,0xA4,0x36,0x6F,0xF6,0xF7,0xB6,0xDF,
+0xE0,0x08,0x97,0xFF,0x34,0x95,0x20,0xA6,0xB3,0x59,0xE7,0xD1,0x36,0x5D,0x47,0x5B,
+0xF2,0x73,0xD0,0x54,0x75,0x78,0xD5,0x1C,0x28,0x26,0x41,0x49,0x85,0x83,0x03,0x7E,
+0x89,0x86,0x64,0x24,0x30,0x3B,0x7D,0xF8,0xE8,0x40,0xF0,0xA0,0xFE,0x20,0xB5,0x44,
+0x59,0x5F,0xD8,0x0E,0xC6,0x54,0x94,0x87,0x8C,0xF1,0x43,0x81,0x51,0xEF,0x68,0x9F,
+0xA3,0x93,0xF2,0x8C,0xE1,0x34,0x24,0x51,0xF9,0x4D,0xE6,0x2E,0xCD,0x65,0x6C,0x90,
+0x45,0x52,0x9E,0xFC,0x18,0xC2,0x7B,0x11,0x7E,0xFA,0xAC,0x40,0xD8,0x42,0x76,0xF3,
+0xBC,0xF3,0xB8,0x44,0x2C,0x0B,0xC0,0xB1,0xA8,0xD1,0x6B,0x53,0x55,0x73,0x8A,0xB7,
+0x32,0xEA,0xC8,0xC2,0x96,0x86,0x36,0x4A,0x9C,0x31,0xB4,0x9F,0x86,0x27,0x56,0x47,
+0x4A,0x66,0xD9,0xAF,0x4E,0xA0,0x94,0xDC,0xED,0xF2,0x0D,0xE5,0xC2,0xF5,0xA0,0x04,
+0xFB,0xCC,0x49,0x52,0xBB,0x16,0xCA,0x7A,0x5F,0xDA,0x4E,0x89,0x2A,0x9D,0x28,0x71,
+0x67,0x71,0x20,0xC2,0x71,0x5F,0x25,0x0A,0x0E,0x94,0x25,0xD4,0xDA,0xA5,0x4E,0xA0,
+0x56,0xF9,0x15,0xED,0x65,0x2F,0xE1,0x47,0xA3,0x20,0xBD,0x27,0xFF,0x15,0xD5,0x44,
+0xB1,0x44,0x8F,0xB7,0x9B,0xB7,0x1B,0xA1,0x88,0x21,0x7D,0xAF,0x24,0x3A,0x49,0xC5,
+0x91,0x38,0x65,0xB0,0x1B,0x30,0x5D,0xCC,0x85,0x72,0x9A,0x1C,0x87,0xCE,0x54,0x70,
+0x01,0xD9,0xDF,0x29,0xC8,0xA2,0xBD,0xD8,0x78,0x9E,0xD9,0xC8,0x14,0xD1,0xFF,0xA2,
+0x31,0xC9,0xBD,0xC9,0x1E,0x79,0xBC,0x22,0x06,0x2D,0x9B,0x7B,0x22,0x7A,0x17,0xC7,
+0xDB,0x31,0x2C,0xB3,0x03,0x07,0x87,0x5E,0x39,0xE0,0xB3,0x71,0x22,0xF8,0x7A,0x66,
+0xA8,0x1B,0x67,0xA4,0x3C,0x2A,0x20,0x8F,0xB0,0xC2,0x8B,0xB9,0x83,0xC5,0x6D,0x8A,
+0xCA,0xE9,0x75,0xF2,0x45,0xEE,0xAB,0xFA,0xBC,0xDF,0x1F,0x1D,0x62,0x82,0x98,0x5F,
+0x1E,0xDB,0x17,0x9D,0xA7,0x0A,0x50,0xEC,0x38,0x6E,0x57,0xEB,0x61,0x99,0xC4,0x12,
+0x64,0x3C,0x01,0xC4,0x66,0x53,0xB4,0x48,0x99,0x91,0xD3,0x89,0x73,0x24,0x9D,0x00,
+0xF9,0x77,0xBB,0x02,0x3F,0x84,0x28,0xE4,0x00,0x80,0x7C,0x67,0xBA,0x12,0xF8,0x36,
+0x0C,0x7F,0x69,0x14,0xAF,0x37,0x10,0xB6,0x4A,0xC4,0xDF,0x0C,0x37,0xA7,0x55,0x60,
+0x68,0x35,0x45,0x9F,0x71,0xDD,0x08,0x8A,0xA2,0xEA,0xC1,0x22,0x48,0xF1,0x68,0x61,
+0xC8,0xCE,0x56,0x51,0x7D,0x7E,0x75,0x1A,0xC1,0x22,0x75,0x49,0x15,0x6F,0xF8,0x47,
+0x51,0xF5,0x91,0xAC,0x39,0x00,0xDC,0x0F,0x41,0xD1,0x63,0xB8,0x0C,0xEA,0xBD,0x41,
+0x8A,0xFD,0x6C,0x9D,0x7F,0x23,0x14,0xCD,0xC6,0xEA,0x6A,0x07,0xEA,0x6E,0x7D,0x82,
+0xCF,0x8C,0x0B,0x00,0x53,0x5E,0xD1,0x90,0x3A,0x53,0x39,0x12,0x7E,0x28,0x61,0x33,
+0xAB,0x1D,0xD6,0xA8,0x02,0xC7,0xA2,0x9C,0xB7,0x25,0x35,0xBE,0xAD,0xAE,0xB0,0x40,
+0xBE,0x03,0x5D,0x2D,0xA0,0x02,0x1C,0x90,0xE6,0x3D,0x60,0xE9,0xB6,0xE5,0x56,0x39,
+0xCD,0x1F,0x30,0x25,0x4E,0xC4,0xAA,0x3E,0x3D,0xFB,0xB2,0x3B,0x1E,0xFD,0xC0,0xD4,
+0x4C,0xDE,0x4A,0xA2,0xAD,0x06,0x22,0x11,0x8F,0x6F,0x1B,0x79,0x54,0xC9,0x9F,0x47,
+0xB8,0xEA,0x16,0x3B,0x6F,0xB6,0x0B,0x51,0xEB,0x11,0x92,0x5E,0xA3,0x22,0x02,0x86,
+0x2B,0x2E,0xB4,0xFC,0x10,0x14,0x74,0xEE,0x18,0x61,0x1A,0x58,0x82,0x03,0x1B,0xDB,
+0x49,0x05,0xA3,0x25,0x00,0x8E,0x46,0x9D,0x0E,0x0E,0x55,0x6F,0x6B,0xF3,0x98,0xB3,
+0x7B,0xF0,0xD3,0x1D,0x8B,0x19,0xC6,0xD7,0x6D,0xDC,0x0F,0x09,0xE3,0x11,0x1B,0x25,
+0x08,0x0A,0x09,0x6F,0x4B,0x29,0x4E,0xAB,0xC2,0xD2,0x40,0x95,0x5C,0xED,0xA8,0x74,
+0x21,0xE0,0x70,0x44,0x64,0xDA,0x6C,0x4B,0x57,0xA3,0xD6,0x5E,0xEA,0xF4,0x71,0x23,
+0xFE,0x7A,0xFA,0xB4,0xB6,0x61,0xA9,0xBC,0xD5,0xFF,0xB5,0x5D,0x9A,0x52,0x1D,0xA3,
+0xD8,0x77,0xCA,0x3F,0x36,0x38,0xB7,0x9A,0x02,0xF1,0xCC,0xE6,0x9F,0x96,0x5C,0x64,
+0xC3,0x91,0x0F,0x4E,0x6C,0x0E,0xBB,0xA7,0x09,0x84,0xB9,0xA3,0x05,0x93,0x89,0x71,
+0xBB,0x42,0x7E,0x94,0x1E,0x74,0x27,0x01,0x4A,0x43,0x72,0xC2,0xE0,0xF6,0xB1,0x85,
+0x10,0x97,0x39,0x3C,0xB1,0xDC,0xE3,0x35,0x9B,0x67,0x9E,0xB3,0x52,0x81,0x87,0xE2,
+0xFC,0x30,0x2B,0xF5,0x5B,0xE9,0x56,0x97,0x8A,0x30,0x97,0x9F,0x8A,0xAD,0x40,0x38,
+0xEB,0x90,0x1A,0x8A,0xE8,0x04,0x45,0x28,0x2F,0xDB,0x4B,0xC1,0xC9,0xAF,0x4E,0x23,
+0x47,0xAB,0x3C,0xF8,0xDC,0x4D,0xED,0x3E,0x6C,0x7E,0xBA,0x15,0xEE,0x62,0x49,0x45,
+0xE3,0x4E,0xB8,0x53,0x6A,0x6D,0x86,0xEF,0x8D,0x58,0x76,0xDF,0x8F,0x2E,0xD1,0x29,
+0xFF,0x46,0x40,0xF2,0x92,0x3C,0x36,0x0B,0x66,0x9B,0x1C,0x59,0x2B,0x33,0xB6,0x2B,
+0x69,0x99,0x34,0xA2,0x4D,0x66,0x39,0xFC,0xD3,0x4D,0x44,0x77,0x47,0x1D,0xB4,0x34,
+0xAA,0xE0,0xA7,0xB8,0x56,0x58,0x71,0x05,0xBB,0x38,0x77,0x14,0x23,0x5A,0x73,0x3C,
+0xD2,0xF5,0xFC,0x5E,0x3E,0xB7,0x92,0xB3,0xAC,0x96,0x70,0x15,0x46,0x1B,0x91,0x19,
+0x2B,0x23,0xDC,0x11,0x04,0x80,0x67,0x32,0xE5,0xB5,0x8F,0x06,0x9A,0x8E,0x25,0x4E,
+0x63,0x4E,0xB1,0xA2,0xCF,0x2F,0x8A,0x32,0x3C,0x8E,0x7A,0xEB,0x87,0x39,0x46,0x2A,
+0xAF,0xEE,0x9B,0x43,0x8D,0x72,0xC0,0xD5,0xB9,0x37,0x1D,0xDD,0xB4,0x77,0x8B,0x5B,
+0x28,0x0A,0xEB,0x92,0xDE,0x1E,0x3F,0xBC,0x75,0x62,0x21,0x87,0x6C,0x2A,0x4C,0x0F,
+0x5E,0x2C,0xA0,0x9C,0x70,0xA4,0x35,0xD9,0x80,0xC8,0xB0,0xDB,0x1F,0xC2,0xB3,0xCD,
+0x73,0x12,0xC5,0x54,0x00,0x7F,0x97,0xA5,0xB2,0xB8,0x17,0xF2,0x7C,0xE8,0x83,0xBB,
+0x6B,0x91,0x8B,0x49,0xCE,0xC1,0x4E,0x1C,0xFF,0x93,0x40,0x4F,0x68,0x13,0xDE,0xAB,
+0x56,0xC2,0xD9,0xB0,0x08,0x3F,0x3F,0xA3,0xE0,0xED,0xEC,0x60,0xAD,0xD9,0x4F,0x7B,
+0x2D,0xEA,0x57,0xFB,0x6B,0xE7,0x36,0xB0,0xD0,0x22,0x4F,0x8F,0xFF,0xB9,0x27,0x4A,
+0x34,0x31,0xA9,0x6E,0x1F,0x05,0x09,0x34,0xC4,0xB6,0xC0,0xBC,0xEB,0xA3,0x57,0x3A,
+0xFA,0x49,0x32,0x26,0x7F,0xD3,0x7F,0xDC,0xB9,0x35,0x60,0x2D,0x75,0x59,0x23,0xBC,
+0x0D,0x1A,0x86,0xCF,0x67,0x87,0x4C,0xD2,0xD7,0x5B,0xBE,0xC5,0x20,0x7C,0xAB,0xF3,
+0x1F,0xB0,0xC0,0xCA,0x98,0x6A,0x53,0x28,0xBA,0x5A,0x18,0xE7,0xE9,0xA2,0x40,0x3D,
+0x67,0xC8,0xF6,0x8E,0x61,0x78,0x4D,0xDB,0x6C,0x93,0xC9,0xB2,0x85,0x08,0x06,0xDA,
+0xF6,0x3C,0x96,0xD6,0xC6,0x6F,0xC7,0x25,0x34,0xC9,0x5B,0x71,0x79,0x93,0xC6,0x31,
+0xBA,0x5B,0xB1,0x2F,0x7A,0x3D,0x76,0xB3,0xEC,0xE0,0x53,0xFF,0xA9,0xBD,0xA2,0x1A,
+0x5C,0xFD,0x4C,0x75,0xF9,0xCB,0x3A,0xC9,0x4E,0xB8,0x19,0xE8,0x89,0x9A,0x1D,0x5C,
+0xA6,0x4E,0x48,0x93,0x7D,0xAB,0xF5,0x1A,0xFB,0xD1,0xBC,0x96,0x50,0x10,0xA9,0x73,
+0x76,0x85,0x8C,0x91,0x8C,0xC4,0x69,0x90,0x6C,0x57,0x0F,0x20,0x59,0xDF,0x6D,0xED,
+0x04,0x9C,0x94,0xF4,0x7F,0xE9,0x02,0xD5,0x12,0x03,0xB1,0x01,0x09,0x62,0x3F,0xB5,
+0xB5,0xB0,0x5A,0xF5,0xCF,0x5F,0x12,0xFA,0xE9,0xE1,0xF2,0xE3,0xB5,0x0A,0xD2,0x31,
+0xCD,0x54,0x9E,0xBC,0xD2,0x79,0x8F,0x6C,0xB5,0x6A,0x4B,0x7C,0x2E,0xD8,0x86,0x6E,
+0x43,0x87,0x34,0x12,0x15,0xF4,0xCF,0xC7,0x39,0x7F,0x94,0x26,0x82,0x8C,0xC4,0xF8,
+0x6E,0x51,0xF4,0x55,0xBC,0xCF,0x61,0x65,0x8B,0xAE,0x65,0xEA,0xF8,0x31,0xEB,0x04,
+0x4E,0x59,0x7E,0xB8,0x72,0x48,0x6F,0x9B,0xB9,0x1A,0x82,0xB3,0x50,0xC5,0x14,0x03,
+0xA9,0x41,0x04,0xBE,0x8F,0xD0,0x48,0x01,0x7A,0x58,0x42,0x66,0x33,0xEA,0x8F,0x2F,
+0x98,0xE5,0x5F,0xA1,0x41,0xA0,0xCC,0xD5,0xC0,0xB9,0xDA,0x38,0xB9,0x5A,0xAC,0xE3,
+0x57,0x83,0x46,0x60,0x37,0xD5,0x35,0x49,0x5A,0x42,0x74,0x30,0x2E,0x3A,0x7F,0xDE,
+0x24,0xD8,0x16,0x6F,0x9D,0xF8,0x44,0xA3,0xB7,0x97,0x4C,0xB6,0x2D,0x07,0x87,0x72,
+0xCE,0x57,0x14,0xBF,0xFB,0x86,0xD0,0x34,0xEF,0x01,0x64,0x5A,0x0E,0x85,0x84,0x07,
+0xFE,0xD7,0x31,0xCF,0xB4,0x5D,0x69,0x25,0xE5,0xD8,0x26,0x66,0x4F,0x2E,0xD6,0x4A,
+0x06,0xB0,0x1C,0x33,0xBC,0x7B,0x31,0x31,0x77,0xF0,0x83,0x56,0x1A,0xED,0x31,0x30,
+0x9B,0x55,0x42,0xC8,0x43,0xAC,0xA0,0xF5,0x3D,0x92,0x2C,0x88,0xC3,0xDB,0x62,0x16,
+0xE1,0xA8,0x71,0xC3,0xEE,0xF5,0xD4,0x4C,0x11,0x47,0xA8,0x8B,0xC5,0x66,0x47,0x9E,
+0x35,0x46,0x1F,0x1A,0xDB,0x11,0x81,0xEB,0xF2,0xFA,0xE0,0x3D,0x25,0x7D,0x97,0x36,
+0xAE,0x31,0x97,0x53,0xE6,0xFF,0x57,0x2D,0xC4,0x80,0x9C,0x8C,0x70,0x15,0x6E,0x31,
+0x37,0x70,0x05,0x6E,0x4A,0x81,0x86,0x59,0x0A,0x8F,0x8A,0x15,0x99,0x90,0x04,0xEA,
+0x97,0x85,0x2D,0xAD,0xA5,0x22,0x36,0xBE,0x58,0xE2,0x3E,0x72,0xC7,0x0E,0x02,0x45,
+0xF3,0xE6,0x6B,0xC7,0xF4,0xC8,0x43,0x3B,0xF7,0x2B,0x20,0xC3,0x46,0x58,0x3A,0x27,
+0x41,0xDC,0x40,0x85,0xCC,0xFD,0x64,0x21,0x18,0x84,0x9F,0x9D,0x9D,0x1A,0x9C,0x60,
+0x54,0xF6,0x70,0xCC,0x3E,0x38,0x30,0x4A,0xD1,0xD8,0xCA,0x1A,0x1F,0x51,0xFE,0xD7,
+0x30,0xD9,0x0C,0xC5,0xB8,0xA1,0xA3,0xB5,0x3E,0x9B,0xC6,0xB5,0x10,0xD7,0x38,0xE2,
+0x75,0x7B,0x14,0xDF,0x64,0xDC,0x1C,0xBE,0x62,0xCF,0x95,0x42,0xF8,0x91,0xCD,0x52,
+0xD4,0x20,0xCE,0x49,0xB6,0xEB,0xEE,0xC0,0x8C,0x76,0xE5,0x5C,0x84,0xFC,0xBB,0xA0,
+0x47,0xD0,0x58,0x61,0x81,0x49,0xB3,0x8F,0xD8,0x3B,0x6D,0xE9,0xE7,0xDD,0xE6,0x70,
+0xB3,0x29,0xF6,0xF5,0x20,0xF9,0xE0,0xF9,0xCE,0xC9,0xE4,0xC0,0x9A,0x36,0x45,0x77,
+0x32,0x8D,0xF3,0x01,0x9D,0x3B,0x86,0x42,0xA6,0x9B,0x4D,0xF8,0x96,0x02,0x1A,0xD9,
+0xDE,0xED,0x94,0x4E,0x13,0x25,0x4B,0x00,0x31,0xC1,0x29,0x72,0x22,0x0B,0x4E,0x2F,
+0xF7,0x78,0xA5,0xBB,0xFF,0xD6,0xB0,0x58,0x65,0x8E,0xBF,0xCD,0x5F,0x12,0x11,0x1F,
+0x84,0x57,0x83,0x15,0x2F,0xE6,0xAC,0x9B,0x62,0xEA,0xF0,0x22,0x6C,0xEE,0x2E,0x7D,
+0xB6,0x7D,0x3A,0x8F,0x99,0x71,0x1F,0x89,0xFC,0x6A,0xAA,0x1B,0x2F,0x0C,0x28,0xDB,
+0x44,0x65,0x6A,0x33,0x41,0x8B,0xE7,0x36,0x0D,0x73,0x8D,0x9F,0x4A,0x09,0x0B,0xF7,
+0x3C,0x57,0xA8,0x59,0x20,0xF1,0xC8,0x39,0x36,0xBC,0x46,0x76,0x02,0x6C,0x88,0x3C,
+0x27,0x40,0xE8,0xA9,0xA9,0xC7,0x32,0x0E,0x1F,0xBE,0x33,0x4E,0xEE,0x69,0x27,0xB2,
+0x01,0x98,0x35,0xBB,0xA9,0x9E,0xE1,0xBC,0x8B,0x83,0x4A,0x2C,0xEC,0xAD,0x7E,0x7A,
+0xB8,0x26,0x7D,0xA9,0xF1,0xB2,0xB7,0xB2,0xF2,0x30,0x45,0x39,0x08,0x9D,0x18,0x69,
+0x14,0x56,0xFC,0xF3,0x15,0xFB,0xF5,0xE6,0xD2,0xF0,0xB4,0x93,0xEB,0x50,0x2C,0xF1,
+0x03,0xBC,0x80,0xEC,0x50,0x16,0x8B,0x2A,0x7B,0x41,0x68,0x68,0xF0,0x52,0x08,0x2F,
+0xEF,0x9E,0x1F,0x9B,0x2E,0x23,0xED,0xC2,0x59,0x0B,0x61,0x1A,0xB0,0x7E,0xCD,0x33,
+0x55,0x56,0xFF,0x95,0xBD,0xA7,0x07,0xB3,0x79,0x5B,0x88,0x27,0xB1,0xA5,0x35,0xB6,
+0x96,0xCB,0x73,0xFA,0xAD,0x99,0x3F,0xB6,0x79,0x7B,0xBB,0x6D,0xB6,0xE2,0xC3,0x01,
+0x00,0x9E,0x7C,0x39,0xA9,0xC3,0x0B,0xA5,0x14,0x4D,0xE3,0xC1,0xBA,0xCC,0x22,0xA7,
+0x1C,0x93,0xCA,0xC6,0xEA,0x92,0xBB,0x46,0xD3,0x45,0x89,0x19,0xEF,0xD1,0xF9,0xA7,
+0xA1,0xB0,0x37,0x3E,0xCB,0x85,0xBA,0xDA,0x0F,0xE3,0x74,0xCB,0x09,0xE9,0x68,0x61,
+0x75,0x2A,0x69,0x41,0xEC,0x61,0x4A,0x85,0x77,0x2E,0x3C,0x6C,0x77,0xF2,0xB7,0xA3,
+0x0F,0x51,0x29,0xC4,0x80,0x38,0x00,0xE9,0xDF,0x23,0xB8,0xDD,0x97,0x4F,0x41,0x03,
+0x92,0xAE,0x94,0xA3,0x4B,0xEF,0x20,0xA9,0x7C,0x68,0x17,0xB0,0x0E,0x79,0xF2,0x31,
+0x67,0x5B,0x73,0xD8,0x25,0x5C,0xF7,0x33,0xFD,0x05,0xB4,0x4A,0x7E,0xCC,0x9D,0x68,
+0x03,0xD8,0x20,0x50,0xE9,0xB6,0x2E,0xFA,0x56,0xA6,0xAA,0xF5,0xD2,0x9A,0x96,0xB0,
+0xA3,0x8D,0xEB,0xBC,0xCC,0x15,0xFC,0x8D,0x5B,0x85,0x1E,0x52,0x3C,0x04,0x59,0x84,
+0x3A,0xD5,0xD8,0x0E,0x7C,0x6B,0x23,0x9E,0xE6,0x09,0x08,0x36,0xF8,0x81,0xF6,0xEF,
+0xE1,0x1E,0x3E,0x62,0x51,0x48,0x48,0xB4,0xC4,0x0A,0x01,0x2F,0x40,0x05,0x52,0x5E,
+0xA4,0x5F,0xCA,0xBE,0xA7,0x35,0x4D,0x27,0xA5,0x3A,0x52,0xCB,0x00,0x43,0x7D,0x73,
+0xC0,0x6E,0xC4,0x39,0xC5,0xAC,0x57,0x2E,0xC2,0xB4,0x5E,0x41,0xC3,0xC5,0xB7,0x06,
+0xD5,0x90,0x09,0x72,0x48,0x69,0x8B,0xAC,0x17,0x1D,0x0B,0xCF,0x6B,0x8E,0x06,0x3E,
+0xA6,0xD0,0xF8,0x53,0x22,0xAF,0x54,0x0E,0x4C,0x92,0xD9,0x61,0x72,0x96,0xE0,0xC1,
+0x27,0x5D,0xF5,0xCC,0xAC,0x6D,0xFF,0x98,0x8E,0x69,0x70,0xA5,0x3F,0xA2,0x2E,0x1F,
+0xD3,0x3F,0x7D,0x0A,0xD9,0xDD,0xFA,0xE0,0xDA,0x8C,0xF9,0x63,0x7C,0x49,0xF8,0x71,
+0x40,0x9B,0x90,0x41,0xC7,0x7F,0xC8,0xCE,0x72,0x89,0x71,0xF5,0x24,0x68,0xA1,0x4C,
+0x22,0x80,0x73,0x37,0xC8,0xE5,0x6A,0x96,0xF7,0x17,0x3E,0xBB,0xB7,0x98,0xBA,0x9F,
+0x10,0xCA,0xEC,0x49,0x8F,0x72,0x34,0x15,0x04,0x77,0x64,0xE2,0xFD,0x7A,0xDD,0x29,
+0x63,0x7C,0x07,0x9C,0xB0,0x42,0xF6,0x4E,0x06,0x11,0x2B,0x4F,0x6B,0x86,0xA6,0x49,
+0x4A,0xCB,0x59,0x56,0xB7,0xB1,0xA0,0x1C,0x13,0x8F,0xBD,0x47,0x0A,0x9F,0xC1,0xFB,
+0x95,0x4F,0xFC,0x9B,0x9F,0x0A,0x5D,0xC0,0x7A,0x89,0xDE,0x23,0x3E,0x39,0xE9,0x01,
+0xB3,0x9A,0xC5,0x05,0x8D,0x53,0x7A,0x4B,0x9B,0x7D,0xA7,0x69,0x56,0xFD,0x7A,0xC4,
+0xA8,0xF1,0x63,0x44,0x37,0x65,0x58,0x88,0xFE,0xD9,0xD2,0xFB,0xD1,0xF8,0x75,0xEC,
+0xD0,0xCA,0x2D,0xF4,0xC9,0x1F,0xD4,0x39,0xBC,0x74,0x19,0x39,0xC1,0x9D,0x62,0xAC,
+0x7B,0x3D,0x7F,0xA6,0x54,0xB7,0x34,0x88,0x8D,0xDC,0xF5,0x5E,0xD5,0xEA,0xBD,0x7A,
+0x97,0x5A,0xC2,0x36,0x0A,0x82,0xBC,0x01,0xC8,0x3D,0xFC,0x40,0x06,0xC6,0x46,0x9A,
+0x80,0xCE,0x03,0xE8,0x45,0x6F,0x1F,0xCD,0x56,0x27,0x20,0x50,0x15,0xC4,0x7F,0x4D,
+0x2C,0x77,0xC8,0x67,0x26,0x26,0xCE,0x54,0x18,0x6D,0xD1,0xEB,0x24,0x09,0x2A,0x93,
+0x88,0x01,0x75,0xFA,0x98,0x06,0x1F,0x8F,0x65,0xC2,0x1D,0x09,0xE1,0x45,0xDB,0x36,
+0x94,0xCA,0x35,0x24,0xE4,0x57,0xBD,0x79,0xBD,0x6A,0x77,0xDE,0xD0,0x58,0x28,0x3A,
+0x02,0x57,0x18,0x12,0xDA,0x0D,0x1F,0x03,0xB4,0x02,0x2F,0x09,0x26,0x76,0x5D,0xE8,
+0xC1,0x39,0xD4,0xAD,0xA8,0x33,0xF8,0xF4,0x15,0x1C,0x1C,0x13,0x07,0x31,0x25,0x0C,
+0x3B,0x2F,0x16,0xD4,0xFB,0xE6,0xA0,0x40,0x9A,0x01,0x89,0xCA,0x23,0xE3,0xBA,0x61,
+0xF7,0xD9,0xA5,0xB0,0xB6,0xBB,0x61,0xA9,0x87,0x88,0xEE,0xC5,0x7E,0xAD,0x7F,0xCB,
+0xBF,0xF0,0x28,0x25,0xD2,0x14,0x10,0x6C,0xF5,0x21,0x1B,0xBC,0x9B,0x1A,0x75,0xE0,
+0x46,0x02,0x6F,0xB3,0xA3,0x23,0x40,0x9F,0xED,0x28,0xE4,0x67,0xDD,0x8F,0x09,0xED,
+0xFF,0x37,0x8E,0xCA,0x0F,0x55,0x06,0xFC,0x7D,0xD8,0xD4,0xBD,0x79,0x87,0xA2,0xE2,
+0xE7,0x88,0x0C,0x4A,0x7E,0xEB,0x0D,0x4B,0x09,0xD9,0x83,0xB5,0xDA,0x7C,0xA1,0x9E,
+0xCA,0x34,0x41,0xC5,0xD4,0x30,0x12,0x7E,0xB2,0xE4,0x24,0xC1,0xFD,0x56,0x3B,0xE7,
+0xBC,0x17,0xBE,0x35,0xDC,0x8A,0x27,0x0E,0x86,0x8E,0xB5,0xB0,0xE4,0xBE,0x8C,0xBB,
+0x6E,0xC8,0x20,0x63,0x64,0x47,0x30,0x46,0x28,0x32,0xF4,0xE7,0xF2,0xCD,0xED,0x57,
+0xA0,0xF4,0xB5,0xF4,0xE1,0x91,0xE1,0x8D,0x0A,0x78,0x54,0x28,0xBB,0x37,0xBB,0xCC,
+0xB9,0x26,0x21,0x3C,0x2D,0x73,0x34,0x43,0xE8,0xAA,0xDB,0x34,0x2B,0x2D,0x67,0x43,
+0xC2,0xC9,0x3E,0x10,0x14,0xAB,0x43,0xDB,0xA4,0xC0,0x78,0x36,0x09,0x4D,0x97,0x20,
+0x62,0xD7,0xEB,0xE9,0x6F,0xFB,0xE9,0x01,0x1E,0xAE,0xCF,0xA2,0xC9,0x07,0xEE,0x73,
+0xF3,0x76,0x8F,0xB8,0xAC,0xEC,0x2A,0xBB,0x01,0x43,0x5D,0xAA,0x07,0x9C,0xEA,0x0E,
+0x8B,0x20,0xA7,0x0E,0x16,0xFE,0x00,0x82,0xD9,0x42,0x8C,0x9B,0x04,0x36,0xB6,0x93,
+0x99,0x64,0x6F,0x41,0x35,0x13,0xD1,0x27,0xB8,0xD4,0x2A,0xFF,0x8C,0xE8,0x8C,0x30,
+0xE2,0xB6,0x75,0xF7,0x74,0x50,0xE5,0xAB,0xDC,0x9C,0x9B,0x4D,0xD6,0x4B,0x78,0x7C,
+0x32,0xA1,0x7B,0x28,0x7F,0x3F,0xE8,0xE4,0xB4,0xAA,0x28,0xFD,0x12,0x84,0xBB,0x2D,
+0xC8,0xA9,0xE1,0x3F,0xF5,0x5F,0xD4,0x17,0x8E,0x4E,0x8D,0x7A,0xAD,0x0E,0xBD,0x9B,
+0x2E,0xA0,0xBE,0x6D,0x2E,0xA9,0x15,0xD6,0xBC,0x7F,0xC7,0xF8,0x9F,0x29,0xE7,0xAA,
+0xD7,0xAD,0xA1,0xEA,0xA4,0x60,0x99,0x5A,0x87,0x8E,0x00,0x90,0xD6,0x18,0xF8,0x7D,
+0x59,0x8E,0xFA,0x71,0xF8,0xED,0x1E,0x3B,0xF1,0xA4,0xDF,0xE2,0x93,0x4C,0x4B,0x80,
+0x21,0xF2,0xFC,0xC2,0xD1,0xCB,0xD1,0xE3,0xF9,0x41,0x66,0x1C,0x67,0x9E,0xD9,0xE8,
+0x90,0xA7,0x94,0x24,0xF6,0x7D,0x54,0x5F,0x96,0x44,0x25,0xA4,0x99,0xF6,0xB6,0x5F,
+0x0C,0x82,0xE2,0x06,0x37,0x34,0xAC,0xCA,0x01,0xCE,0x4E,0x88,0x08,0xCE,0x99,0xD2,
+0x3D,0xC0,0x73,0xB5,0x73,0x44,0x3C,0xF8,0x26,0x7C,0xD6,0x53,0x9C,0x7E,0x24,0x34,
+0xDA,0x39,0xDA,0xA2,0x34,0xDC,0x05,0x6A,0xE3,0x00,0x16,0xAD,0x75,0x51,0x26,0xC2,
+0xFA,0x19,0x3A,0x26,0x59,0x5B,0x69,0x6C,0x76,0xA8,0xF1,0x7F,0x96,0xA5,0x92,0x0F,
+0x6A,0xB5,0x39,0x2B,0x7D,0xC9,0x42,0xDD,0x81,0xBB,0xB2,0x0B,0xB7,0xBA,0xF0,0xF3,
+0x5A,0x95,0xF3,0xE3,0x6A,0x12,0xE3,0x29,0xB4,0x27,0xF0,0xF7,0x84,0x11,0xDB,0x66,
+0xB0,0xFD,0x0B,0x08,0x66,0x6C,0x2C,0xD9,0x55,0xAE,0xD8,0xFA,0xA5,0x93,0xDA,0xED,
+0xC3,0x4E,0x50,0x58,0xD4,0x41,0xF4,0x32,0xB7,0xE2,0xE0,0xA9,0x51,0xAE,0x3E,0x85,
+0x55,0xE6,0x85,0x59,0xC7,0x28,0xD7,0x06,0xDA,0x49,0xD0,0x08,0x15,0xBE,0xD4,0x3D,
+0xC8,0xD6,0x3A,0x86,0x88,0xFF,0x02,0xD2,0x6C,0x0A,0x7F,0x2E,0x1F,0x88,0xC3,0xA0,
+0xB2,0xA0,0x6E,0x37,0x34,0xA6,0x94,0xED,0x02,0xA2,0xFB,0x13,0x1B,0x35,0x65,0xB7,
+0x66,0xF2,0xDE,0xC0,0x1E,0x42,0xD0,0x4F,0x49,0xDC,0xB3,0xEA,0xAE,0x2E,0x35,0x87,
+0xFD,0x25,0x90,0xAE,0x68,0xAC,0x92,0x8A,0x83,0xFF,0xCF,0x57,0x09,0x46,0x51,0x6F,
+0x64,0xE7,0xD0,0xA0,0x5B,0xD2,0x74,0xC2,0x55,0xE5,0xD9,0x96,0x08,0xC3,0x79,0x28,
+0xC4,0x6E,0xFF,0xEA,0xC7,0x71,0x10,0xBC,0x3A,0x97,0x6D,0x57,0x3F,0x5D,0xC4,0x63,
+0xA0,0x7C,0x01,0x36,0x27,0x9B,0x62,0xBF,0xBE,0xE1,0x73,0x4F,0x27,0x0B,0x11,0xBF,
+0x12,0x83,0x7D,0x2D,0xC3,0xAE,0x91,0x7C,0xBF,0x1F,0xCC,0xDE,0xF9,0x49,0xB5,0x56,
+0x07,0x5D,0x80,0xB7,0x4D,0x6B,0x65,0x54,0xCE,0xE7,0x99,0xF1,0x88,0x02,0x13,0xD0,
+0x63,0x2A,0x3A,0x9C,0x30,0xF2,0x58,0x0D,0x55,0x21,0x95,0x27,0x34,0x84,0x12,0x16,
+0x26,0x66,0x77,0x83,0x66,0x8F,0xDC,0x71,0x58,0xA3,0xC6,0xAD,0x2B,0xC2,0x15,0x33,
+0x87,0xCF,0xAD,0xA1,0xC4,0xB8,0x44,0x49,0xCB,0x42,0xB6,0x86,0xD2,0xAF,0x72,0x2B,
+0x14,0x46,0xB2,0x18,0x91,0x1A,0x4F,0x08,0x0A,0x02,0x3E,0xD2,0xFE,0x8E,0x03,0xBF,
+0xE0,0x96,0x6B,0xF0,0x73,0xAA,0xA2,0x32,0xF0,0x93,0xB7,0xC0,0x94,0x65,0x81,0xF4,
+0x61,0x5C,0x05,0xA5,0x24,0x68,0x4F,0xD6,0x05,0xFA,0x1E,0xDA,0x1B,0x51,0xEF,0x84,
+0x8D,0x7D,0x7F,0x69,0x72,0x76,0xA4,0xB8,0xD8,0x43,0x7A,0xB7,0xE1,0x58,0xD4,0x70,
+0xA4,0xDC,0x9B,0x44,0xF9,0x85,0x2A,0xF8,0xAF,0xB9,0xEC,0x81,0xE3,0x41,0xB6,0xBC,
+0xD7,0x90,0x0B,0x26,0x12,0xB5,0xA8,0x48,0x40,0x56,0xA3,0x43,0x0E,0xBD,0x78,0xF3,
+0xE5,0x75,0x80,0x29,0x58,0x22,0x8E,0x58,0x96,0x69,0xF9,0x5E,0xE8,0x5F,0xD3,0xE6,
+0x17,0x1F,0x17,0xC7,0xD1,0xD8,0x56,0x4D,0x57,0x89,0xDE,0x2E,0x27,0x5A,0x8A,0x3E,
+0x6F,0x4F,0x93,0x4B,0x0E,0xA2,0x3F,0xEA,0x91,0x62,0x15,0x27,0x0B,0x3F,0x6A,0x12,
+0x74,0xD8,0x76,0xC8,0x20,0x94,0xC9,0xED,0x33,0xF0,0x60,0xFD,0x32,0x3A,0xCE,0x01,
+0x52,0x17,0x73,0x12,0x81,0xCD,0x91,0x2F,0x8A,0xF1,0x19,0x6F,0x6E,0xFE,0x8A,0x53,
+0xEB,0x78,0xCB,0x17,0x45,0xE1,0xEB,0xD6,0x2E,0xC7,0x16,0x1B,0xFC,0xCE,0x9E,0xF7,
+0x47,0xCE,0xA6,0x74,0x4E,0xA8,0x62,0x54,0x37,0x61,0xE7,0x94,0x1D,0x03,0x7A,0x1D,
+0x50,0x60,0x88,0xF1,0x2D,0x45,0x8E,0x33,0x8F,0x6A,0x3B,0x44,0xF4,0x01,0x57,0xE3,
+0xBC,0xC3,0x64,0xBE,0xE2,0x70,0xAC,0x3F,0x9F,0x69,0x32,0xF7,0x73,0x2D,0xD7,0xAF,
+0x06,0x16,0x78,0x2E,0xF8,0xF4,0xBD,0x90,0xC9,0x87,0xDB,0x7D,0xEF,0xF6,0x2B,0x67,
+0xC5,0x69,0x60,0xF5,0xA7,0xCA,0xDB,0x4F,0xBF,0xB9,0xE8,0x79,0x5E,0xB1,0xDB,0x40,
+0x53,0xC4,0x53,0xDE,0x31,0x90,0x75,0x1C,0xB0,0x20,0xB0,0xB4,0xEC,0x9F,0xA4,0x31,
+0x4F,0xB0,0xB7,0x97,0xE3,0xC1,0x4D,0x62,0x2E,0x43,0xDA,0x66,0xCC,0x82,0x50,0xAA,
+0x81,0x71,0x60,0x9C,0xD3,0xE4,0x79,0xD8,0x12,0x74,0x23,0x03,0xEC,0x48,0x02,0xA9,
+0x78,0xD1,0xB2,0xE1,0x6D,0xD3,0x15,0xA2,0x68,0xB0,0xDC,0xC2,0x22,0xDD,0xA6,0x75,
+0x30,0x4B,0x69,0x44,0x62,0x7C,0x60,0xDC,0xC5,0xAC,0x29,0xEE,0xDB,0x6A,0x75,0xFF,
+0xFC,0x93,0xF4,0xBC,0x93,0x21,0xEB,0xF1,0xA6,0xE8,0x4E,0xDC,0x79,0x24,0x68,0xEE,
+0x7B,0x8D,0x27,0xCD,0xAE,0x4D,0xDD,0x3F,0x2F,0x5E,0x72,0x46,0x40,0x79,0xB1,0xD5,
+0x0D,0x63,0x78,0x06,0x8C,0xF7,0xD0,0x3F,0x75,0xE4,0xE3,0x12,0x8D,0x91,0x20,0x42,
+0x20,0xA2,0xD2,0x1F,0x2B,0x2C,0x61,0x99,0xBC,0x81,0x44,0x42,0x3C,0xBB,0x02,0xB2,
+0x38,0x8A,0xA3,0xC9,0x23,0x92,0xE2,0x5A,0xCA,0x32,0x13,0x85,0x8F,0x40,0x43,0xB8,
+0x05,0x59,0xFB,0xFA,0x53,0x6C,0xD5,0x9A,0xF0,0x72,0xBF,0x32,0x07,0x8A,0xCC,0xDB,
+0x7E,0x5E,0x47,0xF9,0x43,0xB4,0x96,0x86,0x3F,0x92,0x1C,0x2A,0xDF,0xEA,0x0E,0xF5,
+0x67,0x0F,0x33,0x6B,0x13,0x56,0x91,0xAF,0x47,0x43,0x93,0xB6,0xF8,0xF0,0x3D,0xDE,
+0xA9,0x0B,0x88,0x2C,0xEE,0x80,0x2F,0x6C,0xF1,0xB2,0x33,0xF0,0x65,0x0A,0x61,0xE1,
+0x5E,0x82,0xBC,0x83,0x0D,0xD4,0xB5,0x48,0xE8,0x0A,0xED,0xE4,0x05,0x2F,0x7C,0xEA,
+0x4C,0x4B,0xA8,0x90,0xCD,0x39,0x95,0x78,0x09,0xC8,0x4B,0x33,0xE3,0xF1,0xFB,0xFA,
+0x34,0x23,0xB1,0x40,0xAC,0x2B,0x84,0xE1,0x3B,0xF6,0x9A,0x15,0xF8,0x5B,0x3B,0x22,
+0xA5,0x11,0x40,0x30,0xCE,0x3C,0x75,0x7B,0xD8,0x31,0x08,0x40,0x9F,0xC0,0x15,0xB5,
+0xE9,0xBF,0x7D,0xD5,0xFA,0x6E,0xDC,0x39,0x69,0xD5,0x00,0x45,0xBD,0xEE,0x6E,0xBA,
+0x0F,0xFF,0x66,0x0F,0x05,0x98,0xDA,0x73,0x4B,0x38,0x4A,0xD8,0xF3,0xC9,0xB1,0x6D,
+0xF5,0xCA,0xE1,0x74,0x33,0xF8,0x42,0x7D,0x74,0x9F,0xEF,0x69,0x0C,0x43,0x6B,0xB1,
+0x25,0x96,0x21,0x2C,0xEC,0x97,0xFF,0xBD,0x2B,0xA5,0x5C,0x4B,0x78,0x8C,0x14,0x41,
+0x57,0x09,0x37,0x42,0x31,0xBA,0xCE,0xD3,0x8F,0x19,0xE2,0x16,0xFB,0x31,0xF5,0xA6,
+0xE6,0x0F,0x85,0x23,0x15,0x0C,0x5F,0x05,0x53,0x55,0xA1,0x5C,0xC3,0x59,0xD7,0xFB,
+0x9E,0x65,0x8B,0x72,0x16,0x2A,0x7F,0x34,0x59,0xE5,0x18,0x9A,0x04,0x8B,0x8E,0xE9,
+0x10,0xC0,0x96,0xAE,0x4B,0xA7,0x8D,0x81,0xD0,0x8D,0xC7,0x97,0xC2,0xDF,0x7A,0x32,
+0x3D,0xE8,0xCB,0x43,0xA4,0x9C,0xBF,0xA3,0x6E,0xE4,0x36,0xE1,0x8B,0x62,0xF6,0xDC,
+0x1D,0x9F,0x33,0xFF,0x74,0x1B,0x7F,0x17,0xA1,0x0C,0xD1,0x83,0x4F,0x96,0x14,0x83,
+0xFA,0xF8,0xFB,0x77,0x99,0x83,0xD0,0x5C,0xE8,0x6E,0x11,0x3D,0xB0,0xB9,0x7B,0xE3,
+0xCB,0xD1,0xB2,0x88,0xD2,0xF3,0xE4,0x23,0x09,0x10,0x89,0x67,0x81,0x09,0xFB,0xF7,
+0x04,0x76,0x58,0xAB,0xD9,0x86,0xBC,0xEA,0x31,0x2D,0x27,0x9B,0xA1,0x69,0x3C,0x30,
+0x77,0x20,0x7A,0x41,0x6A,0xAB,0x1C,0x4B,0x42,0x62,0x1F,0xEE,0x2D,0x54,0xCA,0xB8,
+0x9D,0x17,0x62,0x20,0xBA,0xD5,0x5E,0xFD,0x9D,0x78,0x37,0xC1,0x47,0xD6,0x1D,0x41,
+0xAD,0xB1,0x8F,0xCE,0x4C,0x0E,0x66,0xEC,0x5D,0xF5,0x75,0x58,0x33,0x7D,0xA5,0x6F,
+0xD4,0x45,0x72,0xCD,0x32,0x1A,0x29,0x2D,0x4A,0x84,0x47,0x02,0x34,0x53,0xAB,0x20,
+0xCF,0x5D,0x45,0x1A,0xFB,0x52,0xA0,0x60,0x3C,0xAD,0xA3,0x85,0xC9,0x87,0xE2,0x2A,
+0x5F,0x6D,0xE2,0x29,0x55,0x31,0x4D,0xF2,0xF0,0x4B,0xC9,0x92,0xA0,0xB4,0xF2,0x78,
+0x69,0x07,0x0F,0xF3,0xE7,0x9E,0x74,0xDB,0xB7,0x0D,0x1E,0x67,0x5E,0x29,0xAB,0x0F,
+0xBC,0xD6,0x63,0xD6,0xDE,0x8C,0x46,0x91,0x27,0x0C,0x90,0xB5,0x09,0x25,0xB2,0xB2,
+0xEA,0xA4,0x74,0xAC,0x2D,0x92,0x67,0x34,0x1E,0x3E,0x7A,0x05,0x87,0x41,0x77,0x16,
+0xA7,0xCD,0x98,0xCF,0x33,0x2E,0x69,0xE1,0x9B,0x51,0x4D,0x7B,0xE4,0x1C,0x1C,0xC4,
+0x22,0x07,0x0A,0x20,0x8F,0x38,0x9B,0x6E,0x64,0x07,0x33,0x24,0xEC,0x85,0xA5,0xEB,
+0x65,0x7F,0x76,0xDD,0x15,0x74,0x82,0xAE,0x0B,0x97,0x13,0x03,0xD6,0x82,0x93,0xE4,
+0x23,0xE6,0x1F,0x04,0x79,0x27,0xFB,0x7B,0xF7,0x2D,0x6E,0xFC,0x4A,0xC7,0x0B,0x92,
+0xA8,0x65,0xC9,0x1A,0xC8,0x2D,0xBF,0x6D,0x6E,0xD7,0x4F,0xE2,0x88,0xF3,0x36,0xD2,
+0xE3,0x4D,0x4D,0xBE,0x77,0x78,0x87,0xE5,0x70,0x46,0x8A,0xEE,0x03,0xE6,0xF2,0x43,
+0x84,0x98,0x0D,0x2E,0xB2,0x56,0xB8,0xA5,0x74,0x06,0x4B,0x92,0xB2,0x01,0x6D,0x63,
+0xB0,0xE0,0x4C,0x67,0x8D,0xFF,0x3B,0xBC,0xB5,0xD8,0x89,0x59,0x96,0x80,0x4B,0x8F,
+0x4E,0xDC,0xA1,0x8B,0xE7,0x57,0xCC,0xFC,0xA8,0xD5,0x59,0xA2,0x2A,0x66,0x02,0x9A,
+0x6F,0x93,0x15,0x22,0x46,0xDF,0x92,0x18,0xDF,0x6D,0xFB,0xD6,0x0A,0xF5,0x5D,0xE2,
+0x5C,0x07,0x5E,0x8C,0x5B,0x42,0x60,0x67,0xF7,0xAA,0x54,0xA2,0x69,0x36,0x28,0xDB,
+0xBE,0xD6,0x80,0x90,0x11,0x18,0x99,0x95,0x37,0xD0,0xC3,0xB2,0x5F,0x04,0x7B,0x56,
+0xB9,0x09,0xF0,0x47,0x30,0x9B,0x4B,0x54,0x5D,0xAA,0x97,0x34,0x7C,0x6C,0x03,0xBB,
+0xA0,0x7D,0x0B,0x93,0x47,0x0D,0x84,0x73,0x3C,0x8D,0x64,0x35,0xEA,0x45,0x6E,0xFE,
+0xDB,0x0B,0x2B,0x2E,0x94,0x81,0xC3,0x6B,0x3A,0xD1,0x75,0xCD,0xE0,0x95,0x39,0x99,
+0x1F,0x8F,0x61,0x9F,0x56,0xF8,0x53,0xFB,0xA1,0x3F,0x2C,0xC0,0xAC,0xB3,0xDE,0xA0,
+0xBB,0xF2,0xD0,0x6D,0x59,0x3F,0x5C,0xA9,0x53,0x66,0x39,0xE3,0x11,0xF6,0xF3,0xF9,
+0xDE,0xA5,0x26,0xC3,0xDF,0xF4,0x6B,0xFF,0xF8,0x1B,0x43,0xEE,0xD4,0x8E,0x14,0x9E,
+0xE0,0x54,0x7A,0x8A,0xF8,0xDA,0x4A,0xE3,0x3D,0x1F,0xA4,0xF5,0x47,0xB1,0xDE,0x61,
+0xCC,0x3F,0xA3,0x4D,0xC3,0xD3,0x8E,0x9D,0xEC,0x8E,0x91,0xFD,0x74,0x5D,0xBB,0x03,
+0x2F,0xFB,0x4D,0xB2,0xA7,0xF7,0xE3,0xEE,0xEC,0x80,0x00,0x35,0x35,0x0A,0x5D,0xFB,
+0xE2,0x12,0x17,0x05,0xBD,0x06,0x6D,0x56,0xC2,0x74,0x49,0x16,0x60,0xA6,0x7E,0x62,
+0x7E,0x4E,0x5E,0x8F,0x98,0x51,0x6E,0xD8,0x46,0xBB,0x71,0x0E,0x0D,0xB2,0xD7,0x8A,
+0x63,0x79,0x27,0xE0,0x3D,0x3B,0x2D,0x37,0x06,0x06,0x20,0x2D,0x5B,0xAE,0xBD,0x44,
+0x17,0xFA,0x8F,0xCD,0xD8,0x3A,0x5C,0x51,0xBB,0x52,0x15,0x9C,0x3F,0xE7,0x57,0x42,
+0x50,0xDF,0x75,0x2F,0x1F,0x09,0x75,0x58,0x23,0xAE,0x2B,0x0F,0xA0,0x24,0xD7,0xBB,
+0x8B,0x47,0xD0,0x8E,0xD9,0xC8,0x3E,0x2E,0x00,0x26,0x9D,0x80,0x7D,0xD1,0x74,0xBB,
+0xC5,0x5F,0x10,0x04,0xCC,0xAF,0xF6,0x6F,0xC8,0x5A,0xC0,0x6C,0x0F,0x1D,0xB1,0x3E,
+0xA9,0x8F,0x60,0xB4,0x1E,0xC2,0x8C,0x10,0x31,0xCC,0x05,0xF0,0xD3,0x60,0x9D,0xF0,
+0x3C,0xAE,0x78,0x7D,0x47,0x3D,0xD3,0xBC,0xA3,0x20,0x32,0xAC,0x6C,0x99,0xC8,0xB5,
+0x5A,0xD4,0x1C,0x93,0x5F,0xA5,0xA4,0x94,0x71,0x02,0xCD,0xC7,0x53,0xC1,0x4E,0x67,
+0xA1,0x47,0x0F,0xC1,0xE9,0xF2,0xA6,0x10,0xEC,0x64,0x73,0x74,0xEE,0xD9,0xA9,0x8F,
+0x98,0x97,0x8E,0xA3,0xD1,0x93,0xCD,0x0D,0xBC,0xD3,0xAC,0x89,0xF5,0x9A,0x94,0x62,
+0x70,0x3C,0x9F,0x62,0x16,0x02,0xFE,0x69,0x1F,0x7F,0x16,0x4E,0x37,0xEC,0x62,0x42,
+0x11,0x34,0xFF,0x51,0x08,0x72,0x42,0xA3,0xE2,0xCA,0xB7,0x62,0x60,0x86,0x0D,0x40,
+0xEB,0xD7,0x42,0x7D,0xA1,0xD2,0xF6,0x13,0x9F,0xC6,0x61,0x91,0x6C,0x48,0x38,0x1E,
+0x6B,0x28,0xCD,0x90,0x0E,0x5E,0x73,0xE6,0x08,0xD8,0x8D,0x7D,0xC6,0xE4,0xC4,0x72,
+0x0B,0xE2,0xB8,0x9F,0x32,0xFD,0xA6,0x47,0x3F,0x44,0x55,0x8C,0x08,0x9F,0x71,0x59,
+0xBA,0x49,0xC7,0xD7,0xFF,0x7B,0x44,0x9B,0x58,0xCD,0xCA,0x9B,0x00,0xD5,0x79,0x19,
+0x21,0xF3,0x3D,0x36,0x9C,0xE9,0xEC,0xB2,0x0B,0xAC,0xDD,0xB4,0xE6,0x44,0x16,0x51,
+0xCE,0x69,0x92,0xA2,0x24,0x0C,0xC9,0xA2,0xBA,0x37,0x35,0xA2,0xA9,0xBF,0xBF,0xBF,
+0x10,0x57,0x4C,0x05,0xC3,0xAA,0x22,0x44,0x08,0xB3,0xD8,0x37,0xF9,0xAD,0x56,0x99,
+0xA2,0x00,0x1F,0xB7,0xBD,0x0E,0x4B,0x56,0x47,0xF2,0x19,0xF3,0xF8,0x14,0x9D,0x94,
+0x6D,0x40,0xDE,0x29,0x49,0xBD,0xCD,0x90,0xA1,0x95,0x76,0x9C,0xF2,0xC4,0xA1,0x85,
+0x0F,0xFA,0x89,0x54,0x2C,0xE1,0x97,0xF8,0x50,0xAA,0x8F,0x1E,0x2D,0x08,0xD1,0xE9,
+0x28,0xE5,0x3F,0x65,0x06,0xAB,0x77,0x58,0x9F,0x10,0x79,0xB5,0xFD,0xEE,0xDA,0xD8,
+0x6A,0xCC,0xAE,0x88,0x6F,0xF9,0x8E,0x80,0x51,0x39,0xCB,0x19,0x07,0x7F,0x1F,0x8F,
+0x3E,0xB6,0x85,0x66,0x27,0x26,0x96,0xB5,0x51,0x98,0x46,0x29,0x87,0xF1,0x16,0x27,
+0xD0,0x57,0x48,0xF6,0xCA,0x03,0x65,0x7F,0x59,0x32,0x5B,0xE3,0x36,0xB6,0x2E,0x70,
+0xB8,0xB6,0x7D,0x4F,0x74,0x40,0x8A,0xEF,0x2D,0x1F,0xED,0x49,0x4B,0x07,0xCF,0x1C,
+0x58,0xE4,0xC4,0x9E,0xFA,0xF0,0xD9,0xC8,0x64,0x5C,0x62,0x06,0x90,0x1B,0xD8,0x5D,
+0xE8,0x40,0xCB,0x4F,0x5B,0x68,0xB5,0x07,0xCD,0x68,0x12,0x87,0xB1,0x2A,0xC8,0x10,
+0x83,0xB1,0x0A,0x1F,0xB5,0xD7,0xE0,0x2F,0x2C,0xA4,0x7D,0x79,0xAB,0xDC,0x23,0x12,
+0x77,0x4F,0x00,0x46,0x1F,0x30,0xB0,0xE2,0xA3,0x4A,0xFA,0x21,0x79,0xFC,0x14,0x51,
+0x37,0xED,0x28,0x13,0xBC,0xD6,0xC9,0x68,0xB5,0xA0,0x34,0x17,0x1A,0x7C,0x2B,0x8A,
+0x9C,0x80,0x7D,0xC3,0x12,0x94,0x19,0xFA,0x1F,0xFE,0xEF,0xDD,0xD6,0x4C,0xBF,0x82,
+0x88,0x8C,0x89,0x16,0xA3,0xC6,0xA0,0x6A,0xAF,0xE9,0x67,0x94,0xF6,0xE5,0x12,0x8A,
+0xB5,0x2E,0x88,0xFE,0x9A,0xFE,0x38,0xA8,0xE9,0xAF,0x4A,0x3C,0xB2,0x96,0x3F,0x47,
+0x9E,0xE7,0xE8,0x17,0x3F,0xDD,0xCB,0x28,0xBA,0x7C,0x87,0x06,0xC3,0xCB,0xB6,0x22,
+0xF9,0xF8,0xA8,0x00,0xDD,0x93,0x39,0x9F,0xE8,0x3E,0x4B,0x96,0x70,0x96,0xE2,0x0E,
+0x94,0xBA,0x1F,0x86,0x62,0xFF,0xE5,0xF1,0x73,0xEE,0x36,0x5D,0x26,0x53,0xFD,0x7D,
+0x6B,0x9D,0xC9,0xBB,0xD8,0x6A,0x94,0xEC,0x46,0x9A,0xCF,0xCF,0x8C,0x64,0xBA,0xC6,
+0xF3,0x17,0x23,0xDC,0x8D,0x0C,0x98,0x27,0x93,0xE3,0x97,0x44,0x89,0x9B,0xA0,0x8E,
+0xA4,0x69,0xF4,0x08,0x13,0xF7,0x23,0xE7,0x80,0x38,0x8F,0x73,0x91,0x25,0xBA,0xAF,
+0xC5,0x5A,0x40,0x89,0x01,0xCE,0xD2,0x1A,0xBA,0x74,0xCC,0xF1,0x7C,0xFA,0x28,0x43,
+0x54,0x67,0x01,0xFF,0xA4,0x26,0xFE,0x94,0x49,0x9D,0xBA,0x09,0x9D,0x40,0x17,0xF7,
+0x24,0xA9,0x89,0x3D,0x6B,0x47,0x6C,0x31,0xA1,0xA8,0xD0,0x74,0x7E,0xE1,0x36,0x7D,
+0x84,0x2A,0x6A,0x3D,0x41,0xBD,0x70,0x65,0x06,0xF7,0x1E,0xC5,0x9D,0x37,0x41,0x33,
+0x08,0x82,0x8C,0x95,0x44,0x3D,0x08,0x7C,0x20,0xDB,0xB2,0x03,0x8F,0xDB,0x00,0xF6,
+0xAB,0x54,0x56,0x61,0xF7,0x5D,0x6B,0xAA,0xE9,0xD3,0xC9,0x76,0xC4,0x03,0xE0,0xBE,
+0x2D,0x9A,0x58,0xFC,0xFF,0xEC,0x50,0xC3,0xB7,0x2F,0x83,0x7B,0x48,0x9C,0x47,0xD8,
+0xBF,0xF6,0xD1,0xB7,0x5E,0x77,0xFF,0x0C,0x1B,0xB4,0x12,0x9B,0x79,0x8B,0xCB,0xD5,
+0x5A,0x72,0xBB,0x14,0x7B,0x98,0xE3,0x46,0xA6,0x91,0xE9,0x5A,0x3F,0x63,0x24,0x39,
+0xFC,0x0C,0x79,0x7D,0xEE,0x46,0xE5,0xE3,0x4F,0xAD,0xFB,0xF8,0x7B,0x8E,0xB3,0xA3,
+0x58,0x5C,0xEE,0x23,0x50,0xF4,0x27,0xAB,0x34,0xD5,0x42,0x40,0x9E,0x4F,0x9C,0xA5,
+0xEB,0xF8,0x61,0xF7,0x5F,0x3B,0xFC,0x91,0xE3,0x68,0x92,0xC0,0x50,0x20,0x67,0x77,
+0xB7,0x49,0x87,0x31,0x65,0x59,0x49,0xDC,0xED,0xC0,0x5E,0xD9,0xE8,0xD9,0xB5,0xC8,
+0xFD,0xDB,0x82,0x1C,0xE4,0x7E,0xAE,0x81,0x0C,0x60,0xB8,0xDA,0xA1,0x2F,0xA8,0x32,
+0xAF,0x68,0x8D,0xA9,0xF3,0x3C,0x43,0xF2,0x9B,0x43,0x29,0x7E,0x0E,0x9D,0x56,0xE5,
+0x70,0xC3,0x66,0x24,0xEF,0x68,0x61,0x92,0xAC,0x28,0xA7,0x34,0x87,0x10,0x56,0x9D,
+0x55,0xDA,0x59,0xDB,0x17,0x86,0x33,0x13,0xA7,0x64,0xE0,0xBB,0x96,0x0D,0x6F,0x29,
+0x16,0xB4,0xE3,0x0B,0xE7,0xEE,0x60,0x49,0xC6,0xE0,0x51,0x19,0x97,0xBB,0xFA,0x4E,
+0xA6,0x83,0xE1,0x79,0x40,0x0E,0xB3,0x91,0xE2,0xB4,0x4D,0x3B,0xEF,0x34,0xF3,0xA5,
+0x3E,0x3C,0x05,0x28,0x61,0xBE,0x86,0x07,0x1D,0x91,0x7C,0x5E,0xCA,0x44,0x47,0xA2,
+0x81,0x5D,0xA3,0xFC,0x55,0xD5,0xEC,0x68,0xEC,0x48,0x8A,0x69,0x7B,0x2B,0xD9,0x0A,
+0x66,0x12,0x78,0x8B,0x52,0x21,0x15,0xDB,0x9E,0x7A,0xAA,0x75,0x65,0xAC,0x01,0x1C,
+0x80,0x7D,0x45,0xD3,0x5F,0x61,0x4E,0x89,0x81,0x90,0x2A,0x13,0x6A,0x62,0xAB,0x11,
+0xC2,0xF0,0x8C,0x3B,0xEC,0xCA,0xBD,0xED,0xF6,0xC3,0x1A,0xD0,0x8A,0xB9,0x9A,0x70,
+0x90,0xFC,0x85,0x0C,0x25,0xDE,0xFB,0x6E,0xF0,0xFA,0xB3,0xAF,0x5C,0x31,0xB2,0x35,
+0xA8,0xF9,0xF8,0xD5,0xE5,0xE3,0xD4,0xC9,0x5F,0x0E,0xC0,0xD1,0x9D,0x1C,0xCC,0xA3,
+0x4C,0x1F,0x8A,0xC2,0x46,0x82,0x3B,0x0B,0x5A,0x53,0x05,0xC8,0x68,0x11,0xDF,0x9E,
+0x04,0xD7,0x7F,0x3B,0x15,0x99,0x33,0x77,0xC5,0xC8,0xD1,0x89,0x5A,0xF5,0x18,0xEC,
+0x67,0x91,0x61,0x7B,0x0A,0x09,0x00,0x70,0x1D,0x24,0xE2,0x7F,0x35,0x9F,0x87,0x56,
+0xC8,0xA2,0xBE,0x18,0x1F,0x3F,0x16,0x16,0x03,0x0A,0x7F,0xA0,0xBE,0x48,0xBF,0xB6,
+0xDA,0x1B,0x30,0xD3,0xFE,0xEA,0x62,0x5C,0x17,0xDF,0x73,0xA9,0x3F,0xC6,0x2B,0x74,
+0xC4,0xB9,0xAA,0xBF,0xC7,0xBC,0x16,0xDC,0xEF,0x0C,0x17,0xFE,0xAC,0x2C,0xE4,0x41,
+0x78,0xA9,0x09,0x16,0x0F,0xF1,0x22,0xF7,0x95,0x7B,0x4A,0xD2,0x78,0x1B,0x10,0x92,
+0x6E,0xC9,0x32,0x62,0xA2,0x74,0x95,0x28,0x26,0x42,0xD3,0xCE,0x1C,0x65,0x4C,0xE7,
+0x22,0xB8,0x4A,0x9F,0x51,0x33,0xBB,0x4C,0x66,0x33,0xD4,0x0A,0x97,0x45,0xA4,0xFF,
+0x71,0xDC,0x4C,0xCB,0x25,0x75,0x02,0xCB,0xC3,0x52,0x91,0x19,0x56,0x38,0x2A,0x8C,
+0x7B,0x1F,0x47,0x79,0xFE,0xFE,0xCC,0x9A,0x26,0xB5,0xA5,0x54,0xDD,0x19,0x02,0x3B,
+0x2E,0x2A,0x01,0xD8,0xED,0xB5,0xA1,0x5A,0x4E,0x13,0xB0,0x53,0xE1,0xDC,0x9A,0x22,
+0x00,0xF5,0xDA,0x63,0x4F,0xD2,0xFB,0xAF,0x59,0x9F,0x57,0x4B,0xB5,0x1D,0x57,0x83,
+0xA9,0x1B,0x11,0x6B,0x39,0xE6,0xD8,0xA0,0x56,0x9A,0xD6,0x46,0xF0,0xDF,0x61,0x35,
+0x01,0x28,0xF3,0x68,0x3B,0x18,0x7F,0x61,0xF6,0x1C,0x30,0xA1,0x5D,0x0F,0x64,0xD4,
+0x89,0x62,0x7F,0xC5,0xB7,0x39,0x1D,0x2D,0xDE,0x84,0xA3,0x28,0x11,0xAD,0xF8,0x78,
+0x14,0x2B,0x12,0xD7,0x32,0x0A,0x8D,0x1C,0x0E,0xF3,0x60,0xF4,0xA8,0x02,0x90,0xE0,
+0x4E,0xE0,0xEA,0x81,0x1E,0xE8,0xF3,0xF4,0x3F,0xAB,0x52,0xD6,0xA6,0x95,0x14,0x10,
+0xCD,0x8F,0x03,0x48,0x60,0xEF,0x91,0x81,0xE9,0x15,0x3A,0xA6,0x94,0xC1,0x82,0xF7,
+0x5B,0x40,0x62,0x60,0xAA,0xF6,0xE5,0x4F,0xE0,0xE1,0x13,0x06,0xF9,0x32,0x1C,0xF5,
+0xD7,0xCE,0x84,0xDC,0xDE,0x8D,0x9A,0xD8,0x8B,0x51,0xC3,0x3D,0xC1,0x23,0x4C,0xAD,
+0xAE,0x37,0xC6,0x2C,0xD8,0x49,0x78,0x06,0x9D,0xCF,0xE5,0xD8,0x36,0x7A,0xA5,0xDE,
+0x69,0x64,0xC5,0xBD,0x18,0xED,0x47,0x3A,0x07,0x55,0xA0,0xAE,0xC7,0x6F,0x3A,0xF1,
+0xA2,0x92,0xF5,0x58,0x14,0x88,0xD3,0x73,0xBC,0xB1,0xD8,0x2F,0x62,0x15,0x4D,0x06,
+0x8C,0x0C,0x83,0x1A,0x55,0xB6,0xF2,0x3C,0x97,0xEA,0xE7,0xA3,0xE8,0xF2,0x01,0x66,
+0x85,0x9E,0x0C,0xE0,0xD5,0x9A,0x65,0xDE,0xB4,0xCC,0x0B,0xC7,0xBF,0xC7,0x30,0x1D,
+0xA1,0x8C,0x38,0x77,0xF7,0x79,0x18,0xED,0x3A,0xE5,0x5C,0x84,0x22,0x56,0x33,0x67,
+0x50,0x30,0xC1,0x02,0x10,0xB4,0x8F,0x54,0xB4,0x31,0xF0,0xE0,0xB5,0x1F,0xF3,0xF9,
+0x07,0x66,0xF7,0xB4,0xA6,0x28,0xE8,0xAF,0x4D,0xBE,0xE4,0x03,0xB7,0x27,0x22,0xA7,
+0x6D,0xA9,0x51,0xA3,0xAD,0x35,0xF1,0xEE,0x96,0x6C,0xF8,0xEF,0x4C,0x76,0x87,0xEC,
+0x6C,0x58,0xE6,0x33,0x94,0x41,0xFE,0x9C,0xC2,0x5A,0xB1,0x0F,0xD2,0x43,0x11,0x92,
+0x5F,0x7A,0xFB,0xA9,0xCC,0x06,0x5F,0xD7,0x2A,0x40,0x72,0xED,0x76,0x7D,0x9F,0xEC,
+0x0E,0x4C,0xEA,0x99,0xDA,0x95,0x4E,0xFF,0x98,0x1D,0x67,0xF3,0xF3,0x0B,0x9D,0x15,
+0x45,0xEF,0x4E,0x76,0x40,0xC0,0xBF,0x9F,0xFA,0xB1,0xA2,0x67,0xE2,0x1E,0xD0,0x6B,
+0xCE,0xBD,0x96,0x36,0x23,0xCA,0xBE,0x55,0x7F,0x2C,0x83,0xC0,0xAB,0x2A,0x0A,0xFE,
+0x88,0x53,0x84,0x7F,0x01,0x99,0x10,0x9B,0xA6,0xCB,0xFE,0xB6,0xF4,0x6F,0x6E,0xD1,
+0x82,0xF3,0xA7,0x88,0xC1,0x32,0x7A,0x33,0x1B,0x7B,0x16,0x34,0x97,0x18,0x9F,0x36,
+0xA3,0x5C,0xF0,0x0C,0x82,0xBA,0x1C,0xC1,0xA0,0x27,0xB4,0x1B,0xF6,0x8B,0x36,0x65,
+0x5D,0x14,0x7A,0xA3,0x9B,0x12,0x4A,0xF4,0xB0,0xEA,0x64,0x97,0x20,0x6D,0x8E,0xBA,
+0x69,0x58,0x54,0x91,0x19,0xBB,0x2D,0x5D,0xF7,0x8A,0xA6,0x08,0x37,0xEC,0x99,0x9B,
+0x84,0x47,0xB8,0x9B,0x1A,0x73,0x28,0x8B,0xFB,0x21,0xF3,0xAE,0x06,0xC4,0x52,0x93,
+0xB2,0x08,0xAD,0x13,0xB1,0xDC,0xEE,0xFE,0x18,0xF0,0x24,0x55,0x27,0x59,0x5D,0xC7,
+0x22,0x0D,0xC0,0xF1,0x2A,0xBF,0xAA,0x33,0x78,0x42,0x4E,0x43,0xFC,0x6A,0x52,0x6A,
+0x39,0x3F,0x40,0x56,0x3D,0xF7,0x70,0xC1,0x1A,0xDA,0xAA,0xAB,0xD5,0xBE,0xD1,0xD1,
+0xCF,0x3A,0xDB,0x3E,0xA9,0xD5,0xDC,0x2D,0x75,0x2A,0xDE,0x8A,0x20,0x68,0xDD,0x7D,
+0x4A,0xB9,0x1D,0x35,0x1D,0xC3,0x43,0xB8,0x55,0x13,0xA0,0xB4,0x48,0xF1,0xB5,0xFD,
+0x07,0x3F,0x84,0x94,0x9B,0x7F,0x95,0x4D,0xA2,0xBA,0x97,0xAF,0x3D,0xAC,0x30,0x7D,
+0x51,0x1D,0xAB,0x5A,0xC3,0x61,0xEE,0x4D,0xE8,0x5A,0x7D,0xF6,0x10,0xC8,0xB4,0x89,
+0x0F,0x78,0x5D,0x80,0xC4,0xEB,0x50,0xF5,0xEE,0x2D,0xA4,0x9B,0x73,0x4B,0x5C,0x0C,
+0xC2,0x2F,0x9C,0x90,0x03,0x1A,0xD0,0xCD,0x19,0x1B,0xED,0x27,0x0F,0xE7,0x97,0x0F,
+0x21,0x83,0xEC,0x3C,0x7F,0x3E,0x47,0x34,0x54,0x36,0x7C,0x2A,0x93,0xB0,0x1C,0x3D,
+0x0D,0x4F,0x53,0x84,0xCE,0x37,0xF7,0xEB,0x0F,0x51,0x49,0xD7,0xD7,0x5C,0x1E,0xF8,
+0xBD,0x8B,0x4F,0x40,0x50,0xE4,0x9B,0x82,0x0E,0x23,0xC6,0xAB,0x92,0xC9,0x80,0x12,
+0xFA,0x85,0xC8,0x5B,0xF0,0xD7,0x77,0xB8,0xFF,0xE7,0xF8,0x42,0x09,0x0A,0x62,0x9F,
+0x8E,0x5B,0x51,0x61,0x5B,0xD6,0xA0,0xF1,0x09,0xA1,0xCD,0x1E,0x30,0x43,0x7F,0xA3,
+0x93,0xF4,0x1B,0x50,0x6E,0xBC,0x2C,0xDD,0x27,0x1C,0x9C,0xFD,0xCF,0x5F,0x8D,0xBE,
+0x4D,0xAC,0xE0,0xE6,0x4D,0xE0,0xB8,0xD2,0x4C,0xB9,0x89,0x46,0xBF,0xA8,0x6C,0xA2,
+0x54,0xED,0x02,0x17,0x56,0x76,0xB6,0x0F,0x47,0x5E,0x7A,0xA7,0x06,0x81,0xE9,0xA6,
+0x53,0xF4,0x28,0xE7,0x18,0xF5,0x57,0x87,0xD3,0xBB,0x2E,0xFA,0xB2,0xE9,0x08,0xE5,
+0xB1,0x51,0x9B,0x17,0x9D,0xAF,0x4B,0xE1,0x66,0xD4,0xB9,0xE4,0xA8,0xDB,0xF8,0x1E,
+0x33,0xB8,0xE9,0xB5,0x36,0x19,0x73,0x6A,0xDE,0x27,0xAE,0x43,0xDC,0x63,0x6F,0x2E,
+0x56,0x97,0xE2,0x61,0x00,0xD2,0x02,0x99,0xD8,0x06,0xD4,0xF1,0x5A,0x1B,0xDA,0x98,
+0xF2,0xE5,0xEF,0xAC,0xF2,0x15,0xC6,0x6C,0x0B,0x3F,0xC1,0xA6,0x74,0x5E,0x6B,0x6F,
+0x36,0x6E,0xB4,0xD9,0x8F,0x6C,0x5F,0xB3,0x1F,0x1F,0x98,0x59,0xB4,0x78,0xA2,0x09,
+0xE6,0x12,0x06,0x1B,0x34,0x10,0xAA,0xE9,0x0F,0x83,0xB8,0x30,0x83,0x72,0x19,0x98,
+0x86,0x6E,0xEF,0x19,0x9A,0xB3,0xF3,0x0E,0x3E,0xDB,0x60,0x25,0x07,0x09,0x29,0xDF,
+0x06,0x23,0x53,0x02,0x1E,0x3F,0xC4,0xDC,0x01,0xF2,0x8C,0x5D,0xA5,0xA5,0xE7,0xDE,
+0xFC,0xF6,0x44,0x43,0x6B,0x9F,0xCD,0x5C,0xCB,0xDA,0x5A,0x52,0x61,0x6B,0x96,0x58,
+0xFD,0xA7,0xCF,0x76,0x25,0x47,0xCF,0x90,0x96,0x26,0x35,0xB4,0xD8,0x40,0x1D,0x44,
+0x23,0x6B,0x11,0x49,0xF9,0xE1,0xE9,0x6D,0x96,0xBA,0xD8,0x11,0xEC,0x52,0x22,0xAF,
+0xCC,0x12,0x5E,0x27,0x9C,0x04,0x25,0xF9,0x82,0xA0,0x30,0x93,0xA7,0xA9,0x69,0x30,
+0x57,0x79,0xEF,0x7B,0xDA,0x96,0x9E,0xA7,0x5A,0xEE,0x27,0x37,0x91,0x38,0x90,0x43,
+0xD1,0x8C,0xBB,0x3C,0x5B,0xD0,0xA9,0x94,0xFF,0xE4,0xDF,0x88,0x52,0x74,0x1B,0x04,
+0x44,0x80,0xA2,0xF1,0x40,0x2F,0x84,0x63,0x25,0x12,0xE8,0xBC,0xE3,0x8D,0xF1,0x20,
+0x28,0xE2,0xBE,0x14,0x3F,0x42,0xA0,0x40,0xBD,0x54,0x2D,0xD7,0x7D,0xF0,0xAF,0x9E,
+0x66,0xDD,0xFE,0x1B,0xDE,0x25,0xA9,0x70,0xCE,0xE1,0x70,0x9C,0xF4,0x3C,0x37,0x33,
+0x9D,0xEC,0x40,0x03,0xF4,0xEF,0x5A,0x27,0x76,0xF1,0xFB,0x3D,0x60,0x01,0xE8,0x37,
+0x75,0xC5,0x11,0x59,0x43,0x7E,0xBF,0x6B,0x00,0xE0,0x41,0x12,0x63,0x77,0x97,0x7C,
+0x4C,0x4C,0x9F,0x47,0x56,0x1F,0x04,0x77,0x50,0x9C,0x9E,0xD9,0x2E,0x34,0x6B,0x26,
+0xB7,0x5A,0x64,0x11,0xD7,0x48,0xCA,0xB6,0xE6,0x18,0x20,0xDA,0x4A,0x2C,0x44,0x7D,
+0x9A,0x15,0x3C,0x4C,0x39,0xDD,0xE1,0xAD,0xDE,0x19,0x17,0x0A,0xA8,0x11,0xE4,0x8D,
+0x6E,0xF6,0x30,0xC2,0x25,0x3A,0x41,0x07,0x1C,0x3C,0x90,0x48,0xE1,0x31,0xA7,0x7F,
+0x05,0x98,0x23,0x6A,0x0D,0x85,0xBB,0x21,0x68,0x5A,0xFF,0xB2,0x6A,0xC7,0x7C,0xB3,
+0xB5,0x93,0x3E,0x6E,0xF7,0x1D,0xA9,0x91,0x8B,0xB1,0x8F,0x0E,0xA9,0xF6,0xF5,0x93,
+0x58,0xE0,0xA1,0xAB,0x6E,0x13,0xBC,0xCF,0x36,0x1F,0xA7,0xC6,0x0F,0x7B,0xA8,0x40,
+0x65,0xF8,0xD3,0x2A,0xDC,0x2B,0xA9,0x23,0xB8,0x8D,0x8A,0x91,0xD3,0x08,0xB5,0xD7,
+0x71,0xD4,0x17,0x7A,0x8E,0x79,0x80,0x7F,0x9F,0x81,0x02,0x6D,0x2B,0xA1,0x7C,0xD3,
+0xDA,0xD1,0xD8,0x65,0x9D,0x3B,0xBA,0xFE,0xE4,0xEC,0xD9,0xBE,0xB5,0x91,0xE2,0x6D,
+0xC5,0xAC,0x06,0x06,0xFD,0x46,0x6A,0xAC,0x7F,0x66,0x94,0x32,0x2B,0x03,0x15,0x92,
+0xE2,0x56,0x5D,0x5D,0xB5,0x0C,0xD8,0x25,0x6D,0xA0,0x62,0x63,0x3E,0xE5,0xBC,0x60,
+0x80,0x9A,0x40,0xE1,0x55,0x50,0xF6,0x3B,0xA0,0xCF,0x9B,0x99,0xCC,0x29,0xFD,0x71,
+0x4F,0x76,0x37,0x1D,0x47,0xE3,0x08,0x99,0x0C,0x93,0xF4,0xA2,0x3B,0xF9,0xD6,0x3A,
+0x55,0x38,0xBE,0x35,0xB8,0xAD,0x21,0xDF,0x49,0xEC,0x00,0x57,0x3B,0xEA,0x21,0x13,
+0x3D,0x76,0x9A,0x78,0x4C,0xEE,0x19,0xF9,0x27,0xD6,0xB6,0x04,0x00,0x5B,0x52,0x73,
+0xD3,0xD7,0x73,0x71,0x9D,0xCB,0xDD,0xE9,0x7C,0x36,0xAB,0x28,0xFC,0x1C,0x06,0x1C,
+0x87,0x15,0xAA,0x5C,0x01,0x14,0xCD,0x20,0x99,0x78,0x26,0x68,0x70,0x92,0x00,0xB1,
+0x11,0xF4,0xF0,0x10,0xAD,0xF6,0x0C,0x24,0x89,0x0F,0x22,0x8C,0xE3,0xBD,0x92,0xD4,
+0xD5,0x34,0xE0,0x7E,0x7F,0x8F,0xCE,0xBE,0xDD,0x9F,0x7B,0x6C,0x03,0x9B,0x11,0x84,
+0xD0,0x8A,0xE6,0xEA,0x86,0xFA,0x95,0xC7,0xAD,0x44,0x4D,0xA2,0xB5,0x80,0x8F,0x09,
+0xB5,0x6C,0xD0,0xF5,0xC1,0x31,0xA8,0x37,0xF6,0x8E,0x37,0x74,0x9E,0xF8,0x30,0x67,
+0xB0,0xD6,0xC5,0xCD,0x64,0x16,0x89,0x67,0x9A,0x68,0xCD,0xA4,0x98,0x0A,0x24,0xC5,
+0x52,0xB1,0xA8,0x88,0x0F,0x4C,0xEA,0x76,0xB6,0xE6,0x5A,0x05,0x96,0x38,0x85,0xD4,
+0xAE,0x7C,0xC0,0x85,0xAF,0x03,0x53,0xD5,0xCC,0x5C,0x6A,0x2F,0x1A,0x4B,0x84,0xF5,
+0xB7,0xE2,0xA4,0xDA,0x07,0x95,0x64,0xEE,0xDA,0x7E,0x99,0x8A,0x41,0x62,0x49,0xE7,
+0x6D,0x4C,0x7F,0xDC,0xF7,0x35,0x84,0x30,0xA6,0xE0,0x2E,0x38,0xC4,0xA0,0x01,0xC2,
+0x70,0x40,0xCF,0xA2,0x34,0x5F,0xA1,0xF1,0x71,0x43,0x7F,0x18,0x1C,0xBC,0x92,0xA4,
+0x5E,0x6F,0x68,0xE8,0xF0,0x07,0x36,0x1E,0xD8,0x5E,0x25,0xAD,0xEB,0x2A,0xEA,0xDE,
+0x19,0x05,0x32,0x4A,0x19,0x34,0x43,0xA9,0xD7,0xBA,0x1B,0x40,0xEA,0xE9,0x5F,0xA3,
+0xC2,0x30,0x7D,0x0C,0x31,0xDD,0x3C,0x51,0x6D,0x9B,0x9F,0xAE,0xA2,0x53,0xF7,0xEB,
+0xEE,0x49,0xF6,0x06,0x19,0xD4,0x37,0xC0,0xB0,0x7D,0xAA,0xEF,0x3F,0xBF,0x23,0xAF,
+0xEC,0xF3,0xE6,0x77,0xEC,0x08,0x06,0x16,0xAF,0xE8,0x47,0x94,0xD0,0xA8,0x13,0x90,
+0x21,0x9A,0x35,0xF0,0xF8,0xF9,0xE4,0xAA,0x08,0xB1,0x0E,0xE3,0x08,0x04,0x5B,0x90,
+0xE4,0xE2,0xCE,0x7F,0x53,0x9C,0xAD,0xE5,0xE6,0x60,0x74,0x1D,0x81,0x4F,0x8D,0x16,
+0xB2,0x21,0xF5,0xAC,0x3A,0x82,0x99,0x03,0x8F,0x36,0x9E,0x72,0x6A,0x2B,0x50,0xBF,
+0x2C,0xD1,0x65,0x38,0x5F,0x36,0x7D,0x31,0x4A,0x4F,0x3D,0xB6,0x7A,0x8B,0x9D,0x54,
+0xA9,0xD6,0x25,0xCD,0x46,0x20,0x0A,0x5E,0xB2,0x02,0x43,0x9B,0x7B,0x12,0x19,0xE5,
+0xC1,0x48,0xCF,0x64,0x67,0x5C,0xC1,0x59,0xEC,0x69,0xAD,0xFD,0x29,0x89,0xF8,0xC3,
+0xDA,0x20,0xBE,0xC2,0xAD,0x14,0xF8,0xDC,0x80,0x6B,0x49,0xE9,0xDC,0x5D,0x62,0xFD,
+0x67,0x5D,0xBA,0xE2,0xA3,0x90,0x7F,0x36,0x44,0x2D,0x10,0x59,0x80,0x27,0x28,0xC2,
+0x51,0x84,0x6A,0x45,0x4C,0x3F,0xD6,0x9E,0x35,0x95,0xC7,0xFE,0xCB,0xBA,0xAD,0xB9,
+0xBE,0x00,0x38,0x4D,0x3C,0xF1,0xB8,0x41,0x9C,0x47,0x87,0xE0,0xA1,0x8E,0xAD,0x1B,
+0x8A,0x80,0xB0,0x76,0xC8,0x58,0xC9,0x37,0xF1,0x8C,0x45,0x76,0xDB,0x0F,0x8C,0x38,
+0x61,0x65,0x21,0xC3,0xB0,0xD1,0x48,0xFA,0x99,0x66,0xF5,0x35,0x85,0xFB,0xF2,0x62,
+0x40,0x31,0xDA,0x9C,0x28,0x59,0x3F,0xBE,0x35,0x4F,0x57,0x45,0x5D,0x68,0xB4,0x66,
+0x2D,0x56,0x53,0x40,0xC9,0x29,0x30,0x6F,0x13,0xBF,0x60,0xAF,0x3A,0xC9,0x13,0xFE,
+0x6B,0x5A,0xFF,0x1B,0x62,0x7A,0x8F,0x6E,0x9C,0x23,0x1D,0xF1,0x69,0x8C,0x2F,0x97,
+0xED,0x00,0xDA,0x0C,0x0E,0x76,0x54,0xD7,0x16,0x53,0x84,0x93,0xA3,0xE8,0x99,0xA4,
+0xA6,0xDE,0x43,0x18,0xEA,0x23,0xAD,0x9D,0x68,0xE9,0x41,0xC9,0x84,0xFD,0xEF,0x1D,
+0x30,0x6D,0xD1,0x50,0xEF,0x28,0x94,0x54,0xBF,0x28,0x48,0x8D,0x9F,0xFF,0xF6,0x9D,
+0x64,0x3C,0xFF,0xF8,0x3A,0xF7,0x67,0x0C,0xF7,0x53,0xC5,0xA6,0x8C,0x71,0xCB,0xD7,
+0xB6,0x23,0xE7,0xF5,0xEA,0x4E,0x48,0x14,0x6D,0x3C,0xE3,0x83,0x5B,0x09,0xD5,0xB0,
+0xDE,0x1A,0x8C,0x0F,0x0B,0x0D,0x4A,0x57,0x71,0xA8,0x55,0x0C,0xEF,0xB8,0x39,0x4C,
+0x63,0x6C,0xA2,0x29,0x20,0xB3,0xFA,0xBA,0x83,0xF5,0x78,0xD9,0xF6,0xCA,0xFA,0xC9,
+0xAC,0x7B,0x35,0x4C,0x56,0x00,0x0C,0xB0,0x33,0x34,0x17,0x67,0xE0,0x1A,0x42,0xAC,
+0x26,0xDD,0xD9,0xF8,0x88,0xA5,0xCA,0x51,0x8C,0x75,0x77,0x60,0x3D,0xE0,0x37,0xE2,
+0x01,0x3E,0x2C,0xCB,0x19,0xEF,0xAA,0x47,0x44,0x1D,0x81,0xA6,0x6F,0x06,0x91,0x9D,
+0x92,0xE0,0x13,0xF8,0x4D,0x9A,0xBE,0xFC,0x25,0xF1,0xE1,0xA2,0xC8,0x42,0xDE,0xF5,
+0x39,0x1F,0x4C,0x52,0x90,0xD8,0x67,0xF0,0x50,0xCB,0x3A,0x07,0x08,0x72,0xF2,0x97,
+0xBB,0x12,0x77,0x05,0x99,0xF0,0x66,0x6D,0x18,0x3E,0x44,0x53,0xA4,0x98,0xDB,0x55,
+0x86,0x88,0xF9,0x61,0x07,0xC8,0x2D,0x72,0xDE,0xA7,0x69,0x38,0xBA,0xEB,0x12,0x20,
+0xE6,0xE1,0xE2,0x7C,0x80,0x66,0xE3,0x3E,0x19,0x61,0x1C,0x61,0x0B,0x24,0x07,0x98,
+0x56,0x6C,0xE3,0x2C,0xFB,0xFE,0x54,0x3D,0x5D,0x61,0x6C,0x46,0xFA,0x15,0xC1,0xF8,
+0x79,0x7E,0x83,0x55,0x2C,0x3E,0x1E,0xB3,0x88,0x48,0xF4,0x3E,0x6A,0xF2,0xD3,0xAC,
+0x8D,0x6D,0x67,0x29,0x48,0xD9,0xE0,0x5D,0x88,0x05,0x73,0x3E,0x62,0xD2,0x27,0xCE,
+0xAF,0x92,0x51,0x69,0x91,0xFC,0x4A,0x44,0xF5,0x60,0x7D,0x31,0xC3,0xD7,0xDD,0x3D,
+0x54,0xD2,0xE5,0x14,0x9C,0xAB,0x4F,0x7C,0xC8,0x42,0xC3,0xEF,0x81,0xCF,0xA1,0x6E,
+0x7E,0x79,0xC1,0x04,0x36,0x0C,0x7D,0x44,0xFB,0x06,0x18,0x62,0xDE,0xE2,0x46,0xF0,
+0x96,0x85,0xEC,0x6E,0x2F,0x9D,0x80,0xC2,0xE4,0xCC,0xA2,0xAE,0x12,0x94,0xB0,0x3E,
+0xCB,0xDF,0xB5,0x9D,0xBD,0xA1,0xDE,0xFD,0xE2,0xA8,0xCE,0xAC,0xA3,0x13,0x59,0x48,
+0x85,0xAD,0x15,0x78,0x4A,0xC6,0x5E,0x35,0x20,0x2C,0x93,0x85,0xDA,0xDF,0x65,0x23,
+0x32,0x98,0x95,0x49,0x8E,0x33,0xDB,0x9A,0x29,0xCF,0x3C,0xBC,0xF8,0x97,0xDE,0xC8,
+0xA7,0xFB,0xF3,0xBF,0xAC,0xCC,0x18,0x2E,0x59,0x00,0x0B,0x8B,0x65,0x6E,0x33,0xD6,
+0x2F,0xAF,0xCE,0x48,0xE1,0xE7,0x03,0x3D,0xAA,0xA3,0xD3,0x3C,0xA6,0x4A,0x4B,0x2E,
+0xB4,0xB0,0x72,0xEF,0xD3,0x75,0xFB,0x48,0x49,0x94,0xC4,0x9B,0x23,0xDB,0x0C,0xED,
+0x1E,0x3A,0x2A,0x17,0x62,0xA4,0xFF,0x52,0xC1,0xA9,0xD6,0xC4,0xB7,0xA3,0x5C,0x91,
+0xC0,0x9D,0x5E,0x54,0xFD,0x02,0x8C,0xF1,0x8D,0x54,0x3B,0xEB,0x81,0xB1,0xBE,0xFC,
+0xE5,0x34,0x09,0xCA,0x2F,0xDC,0xE5,0x37,0x89,0xE3,0x6F,0xA3,0xA2,0x46,0xAA,0x35,
+0x1F,0xB0,0x90,0x95,0x4B,0x7C,0x26,0xF8,0x4D,0x6A,0xB9,0xDC,0x8F,0x88,0x43,0x9D,
+0x05,0xD1,0xBF,0x5C,0x1C,0xF3,0xF3,0x26,0x11,0x2A,0x5B,0x76,0xB4,0x91,0x98,0x22,
+0x65,0x7C,0x91,0x7D,0x79,0x50,0x1B,0xB5,0xC4,0x38,0x83,0x31,0x41,0xEA,0x6A,0x70,
+0xA3,0xCF,0xE5,0x71,0xF6,0xBB,0xCD,0xC1,0x3E,0xDE,0xDB,0x84,0xE8,0x6C,0xFF,0x05,
+0xF7,0x71,0x34,0x95,0x20,0x64,0xA8,0xD3,0x07,0x90,0x56,0x83,0xE1,0xE2,0x96,0xED,
+0x25,0xDE,0x5C,0x75,0x61,0xDD,0x78,0xAE,0x8C,0x8C,0x70,0x1D,0xDC,0x9A,0x8E,0x84,
+0x4D,0x83,0x86,0x96,0xD4,0x9E,0x84,0xF5,0xAA,0x59,0xC6,0xED,0x7E,0x2B,0x27,0x79,
+0xF0,0xCC,0x06,0xBF,0x5B,0x20,0x6B,0xFA,0x60,0xD2,0xEB,0x69,0x3D,0x59,0xBF,0x6B,
+0x3F,0x55,0x84,0x1C,0x7B,0x93,0xE0,0x2C,0xDE,0xBE,0x84,0x25,0x11,0x89,0x54,0x5E,
+0xB5,0xAB,0x43,0x61,0xF8,0x36,0x16,0x72,0x7D,0x00,0xE4,0x36,0xA1,0x73,0x71,0xA5,
+0x92,0x20,0xA2,0xB8,0xA4,0x7C,0x1C,0x0E,0x4C,0xF0,0x12,0xCC,0x7D,0x95,0x4A,0xDB,
+0x01,0xDB,0xF8,0xD2,0x63,0x09,0xF9,0xA6,0xCF,0x43,0x72,0x14,0xDD,0xD1,0xF0,0xAC,
+0xAA,0xA8,0x29,0xCC,0x92,0x4B,0xA3,0x0D,0x8F,0x3F,0xA9,0x96,0x81,0xE1,0x34,0xF5,
+0x28,0x68,0x13,0x77,0x1D,0x63,0x7E,0x4E,0x9B,0x2B,0xD7,0xBC,0xD7,0x0B,0x9B,0x82,
+0x15,0x37,0x9F,0x6D,0x19,0x5B,0xF7,0xE0,0xEF,0x80,0xFA,0xD0,0x02,0x78,0xA4,0x0E,
+0x75,0x58,0x18,0xA0,0xD0,0xF5,0x88,0x2A,0xB6,0x17,0x8F,0x2D,0x12,0xB7,0x9B,0xB9,
+0xC5,0xB7,0x4F,0xDB,0x68,0x6D,0xAB,0x0C,0xF9,0xFF,0xFF,0xEC,0x97,0x86,0x36,0xAF,
+0xEA,0x45,0x73,0x65,0x0D,0xAD,0xE4,0x6A,0x51,0x8E,0x67,0x05,0xD2,0x61,0x38,0xD7,
+0x1E,0x92,0x60,0x7F,0xA9,0x4A,0xCA,0xD0,0x0B,0xBD,0xE0,0xB1,0xD2,0x41,0xCF,0x6A,
+0x3C,0xCB,0x13,0x1A,0x71,0x6F,0xE6,0x05,0xD6,0x3D,0xEE,0x66,0xFF,0x44,0xCE,0xC9,
+0xC7,0x84,0x91,0x55,0x68,0x38,0x64,0x72,0x4C,0x4E,0x50,0xD2,0x39,0x5C,0x62,0x82,
+0xED,0xB4,0xAC,0x7D,0x8E,0x9F,0x58,0x1A,0xE3,0x26,0x8B,0x01,0x9A,0x71,0xF1,0xD1,
+0x05,0x93,0xA3,0x80,0x66,0x0E,0x56,0xF8,0x79,0x73,0x31,0xDD,0xCC,0x07,0x1C,0xD2,
+0x58,0xFC,0xD0,0xC1,0x23,0x32,0x8A,0x9E,0x1D,0x91,0x5D,0x83,0xB7,0x80,0x58,0x1C,
+0x16,0x9A,0x52,0x19,0x95,0x55,0x4F,0x1D,0x6B,0x19,0x00,0xC2,0xB7,0x4C,0xAE,0x11,
+0xA1,0xCB,0x7D,0xA9,0x30,0xA0,0xAB,0x04,0xDF,0x0F,0xAF,0xA0,0x70,0x04,0x5A,0xA5,
+0x34,0x18,0xA0,0x65,0xE6,0x5F,0x6F,0xC8,0xEA,0x5E,0x98,0x78,0xE7,0xFD,0xAB,0xB7,
+0xBC,0xD9,0xED,0xD9,0xC7,0x74,0x53,0x56,0x5C,0xF4,0x40,0xF9,0xE0,0xD9,0xBD,0xA3,
+0x27,0x8B,0x7F,0xCF,0x3F,0xE6,0xA7,0x0A,0x3D,0x2B,0x57,0x69,0x1D,0x48,0x47,0x40,
+0x8D,0x28,0x88,0x69,0x7E,0x37,0x34,0x49,0x73,0xFE,0x45,0x00,0x16,0x30,0x44,0x25,
+0x53,0x86,0x3B,0x6E,0xC1,0x91,0x4F,0x2B,0xFB,0x38,0xA8,0xCA,0xD2,0x22,0x91,0x07,
+0x76,0xF9,0x1A,0x1B,0xF9,0x4F,0x90,0x97,0xA2,0xB6,0xFC,0x5A,0xBF,0xD5,0x47,0x19,
+0x8C,0x9A,0xBC,0xCF,0x39,0xEF,0xCF,0x21,0xC4,0x77,0x2A,0x52,0x8E,0x1B,0xCA,0xFE,
+0x96,0x4C,0x13,0xC1,0x40,0x60,0xC6,0xF9,0x7F,0xF4,0xC8,0xB0,0x39,0x02,0xCF,0xB9,
+0xF6,0x28,0x52,0x06,0xA3,0xC3,0xDF,0xAA,0xCA,0x47,0x10,0x7C,0x9B,0x79,0x6C,0xDD,
+0x82,0xC5,0x46,0x87,0xC1,0x65,0x26,0x56,0x49,0x73,0xB1,0x06,0x75,0x2E,0xEC,0x33,
+0x46,0x26,0xC3,0x93,0xD4,0x1C,0x02,0x35,0xA7,0xF1,0xE8,0x2F,0x2C,0x08,0x49,0x54,
+0x43,0xF4,0xDE,0x55,0x4E,0x69,0xFC,0x60,0x22,0x01,0xDE,0x7F,0x53,0x13,0x5D,0x90,
+0x26,0xDE,0xB3,0x34,0x17,0xA2,0xE7,0x2A,0xAA,0x20,0xA4,0xF7,0x91,0x6B,0x29,0x74,
+0x23,0x3F,0x43,0x50,0x80,0x85,0x8D,0x12,0x7F,0x3C,0x5E,0xFE,0x4C,0x99,0xFF,0x34,
+0xC1,0x2C,0x62,0xC5,0x9B,0xDF,0xA3,0xDB,0x40,0x19,0xC9,0xD8,0xFC,0xAB,0xEA,0xAA,
+0x3D,0xEA,0xBD,0x09,0x3A,0x90,0x3E,0xB2,0x72,0xF5,0xF9,0xC8,0x76,0xD8,0x8D,0x57,
+0x24,0x89,0x7B,0x8E,0x8F,0x06,0x03,0xDC,0x9B,0x9C,0x0A,0x39,0x4C,0xF1,0x6B,0x06,
+0xFE,0x64,0xE4,0x7A,0xD9,0xA6,0x5C,0x0F,0xDB,0x49,0xBD,0xD7,0x0B,0x33,0xEE,0x7D,
+0xE3,0x2D,0x70,0x39,0xFF,0xCC,0x02,0xDA,0x2B,0x6D,0xEC,0x4F,0x07,0x2F,0xA6,0xB5,
+0xCD,0x00,0x7B,0x21,0xE7,0x94,0xD6,0x3A,0x68,0x00,0xB6,0xBA,0xB9,0xB9,0xAE,0x96,
+0x8A,0x60,0x2E,0x42,0x18,0xA7,0x79,0x76,0xB3,0x12,0x88,0x92,0x6B,0x7A,0x67,0x57,
+0x51,0x5E,0xB6,0xFD,0x21,0x4E,0x38,0x14,0x4E,0x32,0x0C,0x19,0x84,0xC0,0xAC,0x62,
+0x7D,0xDE,0xE4,0x1E,0x3B,0x47,0x41,0xB6,0xC3,0xE7,0x39,0xEB,0xCB,0x2C,0xC5,0x25,
+0x7F,0x25,0x48,0x30,0x4E,0x9B,0x05,0x03,0x17,0x44,0xD4,0xE8,0x75,0x3B,0xF9,0xF0,
+0xB2,0x6A,0x3B,0xD5,0xEA,0x6A,0x3F,0xB0,0xA9,0x16,0x9D,0xB6,0xA5,0x97,0x8D,0xD5,
+0x77,0xB8,0xD7,0x99,0xF7,0x0F,0x15,0x88,0x7A,0x7A,0xE7,0xBB,0xD2,0xDC,0x67,0x16,
+0x21,0xA2,0xB2,0x02,0x83,0x11,0x9B,0xC0,0xCB,0xC7,0x0D,0x80,0xD0,0xB8,0x6B,0x06,
+0xBF,0x99,0x49,0xDF,0xAE,0xA5,0xE9,0x53,0x2A,0x19,0xAE,0xEE,0x8F,0x18,0xE3,0x93,
+0x3A,0xAF,0x9B,0x66,0x08,0xB3,0x4D,0x30,0xF0,0xAA,0xD0,0x22,0xE3,0x81,0x6D,0x00,
+0x52,0x30,0xD7,0xEF,0xA2,0xCF,0x19,0xC7,0x08,0x6D,0x3E,0x53,0xA2,0x1A,0xE2,0x26,
+0x49,0xF5,0xBB,0x74,0xCB,0x87,0x16,0xAB,0xAF,0xA7,0xDA,0x6E,0x16,0xCE,0x4A,0x6D,
+0xF4,0xA3,0x79,0x05,0x45,0x03,0x77,0xEE,0xB9,0x4E,0x83,0x24,0x59,0xB4,0x39,0x2F,
+0xC2,0x5C,0x3A,0x85,0xDF,0xAC,0x12,0x8D,0xB3,0x95,0x54,0x17,0xE3,0x29,0xCA,0x09,
+0x2D,0x3D,0x9C,0x20,0x4E,0x62,0x86,0xAE,0xB7,0x05,0x14,0x6E,0xCD,0x1D,0x3B,0x13,
+0x19,0x20,0xCA,0xC5,0x1B,0xCB,0x32,0xA8,0x12,0x98,0xD6,0x17,0xBF,0x9C,0x98,0x81,
+0xF2,0xB3,0xAA,0x0A,0x10,0x42,0xD5,0xFD,0xE7,0xF5,0x66,0xA8,0x30,0x68,0x8F,0xB1,
+0xD3,0x57,0x48,0xA4,0x67,0xCA,0xF5,0xEB,0xD0,0xA2,0xC4,0xF9,0x4E,0xFB,0x6C,0x2A,
+0xBE,0xEC,0xC9,0x52,0x20,0xBA,0x0F,0x1C,0xC5,0xEE,0xF3,0x47,0xF0,0x5A,0x9F,0x0E,
+0xF8,0xB5,0xB6,0x25,0xD3,0xE9,0xA0,0x98,0x52,0x83,0x8E,0xA6,0xEC,0x1F,0x8F,0xF0,
+0x7E,0x32,0xF1,0xBE,0x0F,0xE5,0x2E,0x05,0x27,0xDF,0x17,0x8C,0x14,0x7B,0x8F,0xF5,
+0x35,0x8B,0x09,0x48,0xE3,0xB0,0x87,0xAE,0x03,0x5C,0xD2,0x4D,0x90,0x6E,0x98,0x1D,
+0x62,0x69,0x4D,0x70,0xA9,0xE1,0x65,0x1A,0x1B,0x46,0x27,0x53,0xC6,0xB0,0x48,0x9C,
+0x28,0x2A,0xD2,0x17,0x36,0xC6,0x3D,0xC3,0x87,0x38,0xC1,0x27,0x5C,0x46,0xE3,0x3A,
+0x74,0x60,0x78,0xE3,0x60,0xA4,0xB3,0x26,0xD8,0xDC,0x0D,0x9E,0x5C,0xBF,0x23,0x3B,
+0xC7,0xB4,0xA7,0x97,0x86,0x6B,0x8C,0x14,0xA9,0x78,0xDD,0x15,0x6C,0xD0,0x0F,0xF6,
+0x89,0xF6,0xBF,0xCE,0xE2,0x71,0x71,0x59,0x8D,0x0A,0xCE,0xC7,0xCA,0x24,0x1C,0x48,
+0xCA,0x2F,0xEC,0x30,0xAF,0x19,0x7D,0x43,0x2F,0xC7,0x7F,0xD3,0xD4,0x92,0xFE,0x13,
+0xEF,0xDC,0x4F,0xFE,0x6A,0xF7,0x5F,0x10,0x38,0x3E,0x38,0xE8,0x70,0x8F,0xB9,0xC1,
+0x30,0x92,0x2E,0x6B,0x13,0xA3,0xCC,0x75,0x3D,0x90,0xB6,0x9E,0x53,0x02,0x2F,0xDF,
+0xF9,0xF0,0xD7,0x1E,0x07,0xBE,0xCA,0x0D,0x4A,0xF6,0x35,0x6A,0x04,0x33,0xBA,0xA1,
+0x1E,0x57,0x6B,0xE2,0x2A,0x4A,0x84,0x59,0xF3,0xAC,0x15,0xEE,0x59,0xB4,0x93,0xEF,
+0xA1,0x4C,0xAD,0xDA,0x55,0x21,0x7A,0xFB,0x2C,0xAD,0xE3,0xCC,0x28,0xDB,0xF8,0xBE,
+0x39,0xC5,0xEB,0x2A,0x14,0x91,0x54,0x02,0xFA,0xCC,0xD2,0x33,0x55,0xAB,0x65,0xDE,
+0x37,0x49,0xD9,0x21,0x61,0x7C,0xA8,0x4B,0xA5,0xE6,0x5F,0xA4,0xC8,0x83,0x92,0xA8,
+0x0F,0x03,0xDC,0x58,0xA6,0x41,0x67,0xE4,0x04,0x49,0x2C,0xCF,0x88,0xAE,0x7B,0x75,
+0x5D,0x25,0x8F,0x1D,0xD1,0x55,0xCF,0xF2,0x77,0x4C,0x85,0xD7,0x53,0x26,0x62,0x2D,
+0x1F,0xDE,0x98,0xC3,0xEA,0xFE,0xA0,0x9F,0xDD,0x06,0xB5,0x40,0xDE,0xFD,0x17,0x27,
+0xF4,0x87,0x70,0x1D,0xBF,0xF5,0xEF,0x8E,0x36,0x48,0x50,0xA9,0xCE,0xFB,0x33,0x10,
+0x0B,0x44,0xD8,0x9F,0x6D,0x60,0x5D,0x96,0x14,0x7B,0xA9,0x9F,0x98,0xCC,0x1D,0x84,
+0x66,0x98,0xFC,0x2F,0x68,0x0C,0x44,0x02,0xF3,0x57,0xD4,0x37,0x4B,0x09,0xE0,0x77,
+0x01,0x0A,0xAD,0x89,0x46,0x42,0x02,0x8A,0x00,0x58,0x18,0x6D,0xDE,0x54,0xB3,0x43,
+0xCB,0xCF,0xA5,0x1C,0xAC,0xB9,0xA9,0xF5,0x15,0xF3,0x25,0x7E,0xDC,0xDF,0x38,0x71,
+0x5A,0x83,0x0B,0xBC,0xA0,0x51,0x78,0xB0,0xCD,0xB0,0x53,0x41,0x87,0x65,0xAE,0xC3,
+0x3B,0xE5,0xE6,0xD2,0xE5,0x68,0x4D,0xDA,0xA6,0xB7,0x10,0x2F,0x18,0xBA,0x65,0x79,
+0x6C,0xD8,0xBC,0xE8,0x6C,0x93,0xEB,0xEB,0x2A,0xCB,0x08,0x5A,0x0A,0x04,0x27,0xF8,
+0x34,0x0A,0xC4,0xD3,0x19,0xC2,0x36,0xB6,0x04,0x43,0x56,0xC5,0x99,0x9C,0xB4,0x11,
+0x97,0x9A,0x4B,0xB6,0xB8,0xA2,0x70,0xB3,0xF3,0x77,0x2D,0xCC,0x5C,0x44,0x06,0x17,
+0x1B,0x68,0x59,0xBA,0xA2,0x22,0x82,0x30,0x72,0x5C,0x81,0xC8,0x3A,0xA8,0x0E,0x1A,
+0xBB,0xB4,0x52,0x3D,0xDD,0xD8,0xD3,0xEB,0x98,0xA3,0x4F,0x77,0xCB,0x7E,0xF3,0xF5,
+0x63,0x4D,0xBA,0x52,0x5E,0xD9,0x2B,0x3A,0xC7,0x68,0x64,0x30,0x6F,0x11,0x93,0x0A,
+0xC5,0x0F,0x3C,0xA5,0x01,0x07,0x59,0x5F,0xA9,0x69,0x76,0xA8,0xCE,0xFC,0x17,0xAA,
+0x20,0xD0,0x4E,0x6F,0x18,0xE8,0x6C,0x43,0x1A,0xD6,0x8D,0x21,0xF5,0x14,0x8D,0x52,
+0xB2,0xDB,0xBD,0xE3,0xAE,0x73,0xC4,0x1F,0xB5,0x78,0x1C,0xBD,0x36,0x03,0xFD,0xC0,
+0xC4,0xB3,0xE8,0x1D,0x7A,0x69,0xF0,0x9F,0xBD,0x2F,0x8C,0x0E,0x85,0xAD,0x3B,0xBA,
+0x52,0xFC,0x03,0x35,0x98,0x70,0xB0,0x1D,0x46,0xB5,0xA5,0x74,0xC0,0x5E,0x43,0x9A,
+0xD1,0x49,0xB3,0xDA,0xD2,0x77,0xE8,0x48,0x85,0x24,0xCD,0xBA,0x85,0x0A,0x77,0xB6,
+0x8B,0xAB,0xF5,0xD5,0xF7,0x95,0x88,0xC1,0x49,0xDA,0xFF,0x40,0x18,0x9D,0x3E,0x68,
+0x3D,0xCC,0x86,0x86,0xDD,0x17,0x14,0xF0,0xD3,0xD7,0x47,0xE7,0x5A,0x8A,0x31,0x91,
+0xF6,0x32,0xBC,0x88,0x4C,0x72,0xAA,0x7A,0x41,0x4D,0x3F,0x78,0x28,0xF0,0x12,0xE8,
+0x31,0xFE,0xD2,0x4E,0x02,0xD6,0x89,0x50,0xD5,0x18,0x7A,0x83,0x46,0xE5,0x2B,0x73,
+0x48,0xA6,0x78,0x70,0xFC,0x12,0x9D,0x4A,0xBB,0xE7,0x5C,0x7C,0x0C,0xBC,0x4E,0x12,
+0xCF,0x41,0x81,0x32,0x27,0x2B,0x23,0x79,0xC1,0xC4,0x6F,0xEA,0x27,0x80,0x62,0x74,
+0x3E,0x2B,0x97,0x02,0xA9,0xE6,0x81,0xF1,0x42,0x29,0xC3,0x8C,0x7C,0xC9,0x15,0x7A,
+0x1A,0x2C,0x53,0x6F,0x49,0x05,0x48,0x6B,0xE5,0xCA,0x94,0x08,0x80,0x58,0x35,0x55,
+0x13,0xBD,0xE0,0x33,0xA5,0x29,0xF4,0xE4,0xF1,0x2D,0x78,0x5A,0xDB,0x6D,0xBA,0x73,
+0xC0,0xA7,0x04,0xFA,0xAB,0x99,0x1D,0x49,0xB9,0x58,0xED,0x1D,0xFF,0xE2,0x9C,0x65,
+0xF3,0x0A,0x27,0x5F,0xDB,0xDE,0x6A,0x6A,0x92,0x11,0x2E,0x84,0x29,0xDC,0x6B,0xC7,
+0xF2,0xDD,0x72,0xE4,0x8B,0xAA,0x35,0x1F,0x39,0xD9,0x67,0xC8,0x3B,0xE9,0x9D,0xDA,
+0x98,0x15,0xA8,0x5C,0x0D,0xB7,0x02,0xDB,0xBE,0xBF,0x7B,0x7A,0x9F,0xB8,0xB6,0xEE,
+0x57,0xE8,0x0E,0x53,0xEB,0xA0,0xEF,0x21,0x92,0xF8,0xE0,0xD8,0x72,0xD7,0x71,0x6D,
+0xF8,0x9D,0x3B,0x8C,0xD6,0x96,0x4E,0xFB,0xD2,0x30,0x7D,0x8F,0xE9,0x00,0x74,0x1F,
+0x9B,0x70,0xF3,0xC8,0xAD,0x06,0x26,0xCA,0x71,0x3E,0x4E,0x7D,0x92,0x6A,0xF8,0xC8,
+0xD3,0xE1,0x67,0x2E,0xB6,0x1D,0x33,0x5A,0x37,0x4A,0x9A,0x73,0x2F,0x8E,0xD1,0x08,
+0xF1,0x87,0xD6,0x91,0xA1,0xEB,0x59,0xBE,0x48,0x52,0x4C,0x78,0xE9,0xFA,0x37,0x1A,
+0xE7,0x29,0x05,0xE7,0xF3,0x6E,0x49,0xE6,0xE0,0x89,0xD5,0x7F,0xEF,0x84,0x68,0xC5,
+0x5B,0xC1,0x8B,0xF6,0xEF,0x23,0xBB,0xE3,0x47,0xFA,0x88,0x5C,0xA3,0xB3,0x39,0x23,
+0x45,0xE7,0x68,0x57,0x02,0x75,0x18,0xD7,0x43,0xCE,0xEC,0x0A,0x8F,0x59,0xE4,0x71,
+0xB1,0x56,0xD0,0xA6,0xE8,0x2A,0xFF,0x32,0xEA,0x3C,0x2F,0x98,0x1C,0x43,0x7C,0xA5,
+0xE4,0x9D,0x1D,0x80,0x45,0x61,0x38,0x3D,0x9C,0x54,0x3A,0xFF,0x3B,0x86,0x08,0x43,
+0xEE,0x5A,0x59,0x66,0xFE,0xEA,0x38,0x88,0xF2,0xBB,0x0E,0x4D,0x6A,0xA7,0x22,0x49,
+0xBD,0x74,0x65,0xC6,0xB5,0xAC,0x36,0x17,0xC0,0xFD,0x4B,0xAC,0x05,0xDA,0x00,0x84,
+0x16,0xB8,0x96,0x25,0x1F,0xA6,0x0F,0xF2,0x85,0x19,0x3C,0x4B,0x06,0x32,0x84,0x32,
+0x9E,0x29,0x8B,0xDF,0x9C,0x87,0x37,0xD1,0x1A,0x75,0xAF,0x51,0x3A,0x90,0xDE,0x98,
+0x36,0xAE,0xD9,0x87,0x02,0x79,0xB9,0x03,0xDE,0xB9,0x49,0xAA,0xB5,0x40,0x67,0x41,
+0x9F,0xBE,0x49,0x89,0x6F,0x4D,0xF9,0x9F,0x52,0x0C,0xC8,0x64,0xB9,0x82,0xAA,0x7C,
+0xF7,0x80,0x53,0xDB,0xEC,0x27,0x50,0xB9,0x82,0x39,0x8E,0x64,0x7D,0x3C,0xF7,0xF7,
+0x44,0xE9,0x75,0x24,0x02,0xE8,0xF3,0x49,0xD0,0x13,0x5E,0x16,0x1E,0x53,0x5B,0xBC,
+0xE1,0xE5,0x03,0xCC,0x59,0x62,0x04,0xA3,0xBD,0x3D,0xA4,0x36,0x79,0x33,0x88,0x74,
+0xAB,0x01,0x70,0x41,0xA7,0x45,0x48,0x98,0x90,0xE1,0x42,0x2A,0x34,0xC5,0xDC,0x76,
+0x6C,0x5E,0xA9,0xED,0x30,0x74,0xBC,0xD8,0x28,0xCE,0xBB,0x3E,0x61,0x0C,0x56,0x03,
+0xB3,0x24,0x28,0xB4,0xD9,0x20,0x88,0xAD,0x70,0x58,0x35,0xDB,0x6A,0x81,0x54,0xF9,
+0x0A,0xF3,0xFF,0xDC,0xAE,0xF2,0x51,0xAD,0x91,0xB1,0x4D,0x24,0xAE,0xA7,0xE8,0x9A,
+0x49,0x54,0xCF,0xCD,0xD4,0x9A,0x1D,0x1C,0x5B,0xEE,0xFC,0x0B,0x30,0x11,0x1B,0x03,
+0x22,0xE5,0x28,0x05,0x71,0xA2,0x93,0xF7,0xCD,0x67,0x60,0xE7,0xB9,0x58,0xB0,0xE7,
+0xBA,0x59,0xE2,0xE7,0xEE,0x12,0x72,0xB7,0xD4,0x69,0x51,0xD2,0x73,0x28,0x22,0xE9,
+0x7A,0x7F,0x94,0x90,0x05,0x3D,0xB9,0x14,0x7E,0x5C,0xB6,0xE0,0x54,0xB0,0x34,0x32,
+0x9D,0x24,0x99,0x1E,0xBE,0xC9,0x57,0xAE,0xC9,0xE7,0x96,0x4C,0x85,0x37,0xDA,0x26,
+0xDE,0x0A,0x90,0xE7,0x68,0xD6,0xF4,0x5F,0x86,0xA2,0x06,0x08,0x80,0xA5,0xA4,0x98,
+0x9C,0x15,0x4E,0x60,0x3A,0x7D,0xAB,0xD0,0x67,0x96,0x36,0x2D,0x79,0x7E,0x5B,0x7D,
+0xB4,0x63,0x1D,0xF1,0x5E,0xFF,0xD1,0x74,0x67,0x86,0xDC,0x11,0xC1,0x00,0xFB,0x8B,
+0x8C,0x8D,0x81,0xF8,0xA4,0xC2,0x3B,0x19,0x6E,0xF1,0xAF,0x14,0x25,0x2D,0x1D,0xBD,
+0xE5,0xCA,0x67,0x38,0x7F,0x8F,0x43,0xB4,0x4D,0x66,0x57,0xAD,0xEE,0x8A,0x5F,0xF3,
+0x82,0x76,0x54,0x63,0xDE,0xC1,0xE5,0x2B,0x14,0xC9,0x9B,0x68,0x2C,0xD7,0x3A,0x15,
+0x77,0xC8,0xFA,0x48,0x5E,0x76,0x7E,0x87,0x08,0x64,0xD3,0x40,0x52,0x78,0x42,0xB8,
+0x88,0x4A,0xD0,0x6B,0x8D,0xE3,0x10,0x9E,0x1E,0xB4,0x2A,0xDC,0xF8,0x4F,0xA5,0x52,
+0xB8,0x73,0xD1,0x7A,0x48,0xEB,0xAE,0x8B,0xF0,0xF3,0x93,0x36,0x2D,0x39,0xBF,0x43,
+0xEF,0xFB,0x71,0x88,0x40,0x10,0xA5,0xB9,0x54,0xC4,0x8B,0x72,0x3F,0x87,0x7A,0x48,
+0x48,0xB7,0x58,0x6E,0xF6,0x3A,0x78,0x0F,0xBF,0xE6,0xA6,0x2D,0x8F,0x5C,0x62,0xE9,
+0xD9,0x9E,0x07,0x11,0x22,0xD2,0xDE,0xB2,0x10,0x2D,0xD0,0x72,0x88,0xE6,0x09,0x3B,
+0x98,0xDF,0xCA,0x7E,0xE4,0xA1,0x6D,0x7C,0x4B,0x93,0x02,0xF8,0xBC,0x2B,0x0C,0x33,
+0x38,0x83,0x20,0x47,0xC4,0x5B,0xF3,0x35,0x60,0x1C,0xCC,0x0D,0x0B,0xFD,0xDF,0x34,
+0xB7,0xFA,0x76,0xB3,0x34,0x41,0xAF,0xA4,0x07,0x6A,0xD5,0x10,0x53,0x1F,0x2C,0xEA,
+0x14,0x7B,0xDD,0x3C,0x4F,0x21,0xEC,0x3B,0x73,0x26,0xAE,0x6E,0x10,0xC7,0x32,0xE1,
+0xA3,0x7D,0xF7,0xEA,0x16,0x6B,0xB4,0x3A,0x7C,0x94,0x0E,0x1A,0x65,0x97,0x57,0xE6,
+0x31,0x98,0xDC,0x48,0x2E,0xF0,0x03,0x7E,0xA7,0x2E,0x9F,0x34,0x24,0x80,0x91,0xE5,
+0xE0,0xFE,0xE1,0x95,0xD7,0x5A,0x2B,0x30,0x5D,0x00,0xE7,0x60,0x21,0x92,0x58,0x1B,
+0x46,0x82,0x53,0x34,0x81,0x84,0x44,0x4C,0x62,0x5B,0xF5,0x3F,0x61,0x7F,0x1C,0x0A,
+0x52,0x41,0x71,0x07,0x58,0xF4,0x4D,0x6D,0xA3,0x99,0x4E,0xA3,0xAE,0x89,0x85,0x44,
+0x08,0xC2,0xF9,0xD0,0x4F,0x16,0xAA,0xE2,0x1E,0x97,0x7C,0xB6,0xC5,0x1E,0xA6,0x5B,
+0x47,0x45,0xC2,0x43,0x66,0xEA,0xAC,0xF4,0xE9,0xFC,0x0F,0xD4,0x15,0x2E,0x77,0x1E,
+0xD1,0xFE,0x12,0x0E,0x03,0xF3,0x87,0x84,0xBE,0x4A,0x26,0xA8,0x23,0xDD,0xF7,0x27,
+0xB2,0xCC,0x93,0x45,0x65,0x55,0x73,0xBE,0x0D,0x33,0xF9,0x80,0x04,0x66,0xA6,0x9A,
+0xCB,0x4E,0xEB,0xBB,0x01,0x91,0x98,0x43,0x30,0x05,0xDF,0x73,0xA2,0x3F,0xF3,0x2C,
+0xBE,0xAC,0xA5,0xCA,0x80,0x94,0x8D,0x3C,0xCD,0x21,0xC4,0xE3,0x97,0x09,0x96,0x9A,
+0x75,0x90,0x0D,0x81,0x47,0xF1,0xD1,0x51,0x88,0x6D,0xBC,0xDD,0xCC,0x73,0xC5,0x95,
+0x99,0x14,0xDE,0xC0,0xF4,0x86,0x67,0x3A,0xEB,0x14,0x17,0x72,0x57,0xDB,0xBB,0x92,
+0x90,0x1B,0x69,0x3F,0x9F,0xAA,0x3A,0xB6,0x5B,0xD5,0xFB,0xCB,0x61,0xEE,0xD8,0xDB,
+0x4C,0x3D,0x45,0xCC,0x5B,0xA8,0x02,0x5A,0xDE,0x57,0xEC,0x26,0x27,0x03,0xD3,0xA0,
+0xBD,0x0C,0xE9,0x5D,0x81,0x65,0xC2,0xF7,0xF8,0x38,0x40,0xCF,0xD6,0x4A,0x62,0x22,
+0x71,0x66,0x67,0x86,0xB5,0x29,0x84,0x54,0x61,0x14,0xE4,0x2C,0xD2,0x6A,0xB2,0x4C,
+0x1B,0x2B,0x94,0xBD,0x42,0x34,0x19,0xDD,0x4C,0x6E,0xF8,0xDD,0x85,0x3B,0x1E,0x56,
+0x43,0x1A,0xAB,0x7E,0x1B,0x1A,0x52,0x98,0xEF,0x13,0x6E,0xAC,0xC4,0x61,0x38,0x2F,
+0x70,0xD4,0x8C,0xE9,0x9A,0x5D,0x08,0xDC,0xA6,0xB9,0xAD,0x49,0x50,0x5F,0x8F,0x0B,
+0x18,0xE1,0xC8,0x2D,0x86,0x85,0xF6,0xB7,0x68,0xCD,0xCD,0x9E,0x45,0xE9,0x79,0xBE,
+0x50,0x17,0x4A,0x1E,0x72,0x9E,0x58,0x10,0xA1,0xC5,0x19,0xEA,0x00,0x0D,0xBC,0x2F,
+0xD4,0x57,0xB3,0xA0,0x7E,0x23,0x14,0xBE,0x45,0x02,0x63,0x4A,0x4B,0x54,0x35,0x78,
+0x7B,0x68,0x1C,0xDF,0x28,0x15,0xC4,0xED,0x23,0xEE,0xFE,0x74,0xCC,0x83,0xEE,0x97,
+0xD8,0x03,0x65,0xCF,0xB8,0xA0,0xB1,0xE3,0x02,0x29,0x0B,0x92,0x8D,0x30,0x39,0x7C,
+0xC6,0x08,0x9E,0xA2,0x5E,0xF6,0x98,0x8E,0x57,0x04,0x6F,0xE3,0xCB,0xDA,0xFE,0xEA,
+0x72,0x6A,0x60,0x72,0x7B,0x68,0x39,0xA7,0x3F,0x00,0xCF,0xBD,0x6D,0x79,0xB2,0x22,
+0x64,0x14,0xE6,0x70,0x83,0xED,0x2D,0x3D,0x17,0x97,0x56,0x55,0x30,0x07,0x90,0x53,
+0x6D,0x49,0x21,0x38,0x57,0x69,0xF1,0x0F,0x19,0xAB,0x8D,0x15,0xFA,0x24,0x77,0xDE,
+0x3E,0xB6,0x8D,0x88,0xC5,0x2F,0xC6,0x66,0x80,0x28,0xC8,0xDB,0xF5,0x59,0x54,0x08,
+0x32,0x0B,0xC0,0x47,0x33,0xA9,0x20,0x13,0x6E,0xE8,0xAC,0xE1,0x3E,0xC0,0xE3,0x30,
+0x67,0x6A,0x8B,0x3C,0x9A,0xE2,0x5A,0x0D,0x12,0xAF,0xB9,0x3E,0x55,0x05,0xB1,0x16,
+0xB5,0x27,0xBE,0xC5,0x1A,0xFA,0xF4,0x29,0x41,0x83,0xCA,0x1F,0x56,0xC3,0x8B,0x45,
+0x1C,0x01,0x66,0x19,0xDC,0xCE,0x8C,0xB8,0xB0,0x89,0x4B,0x18,0x3B,0x01,0x6B,0x9A,
+0x95,0x1B,0x58,0xB5,0x03,0x25,0xD4,0x27,0x28,0x22,0xBF,0xD5,0x3B,0xB1,0x74,0x41,
+0x1D,0xB4,0x1A,0x71,0x55,0x04,0x24,0x93,0x96,0x3E,0x2C,0x21,0x90,0x13,0xDC,0x8C,
+0x6E,0xD3,0x1F,0xF5,0xCD,0x68,0x69,0x8E,0xEF,0x80,0xA2,0x35,0xD9,0xE5,0xFC,0x60,
+0x4E,0x1E,0x21,0x72,0xBB,0xEF,0xA5,0x15,0x32,0xFC,0x45,0x86,0xD4,0x11,0xF8,0xDD,
+0xB8,0xB2,0x52,0x0F,0xCC,0x80,0x3F,0xC2,0x55,0xFD,0xFA,0x88,0xF8,0x7A,0x1F,0x27,
+0x89,0x10,0x7D,0x1A,0xD2,0xF0,0xFC,0x0F,0x7C,0xA4,0x62,0xFB,0xEC,0xCA,0xEB,0x41,
+0x04,0xCC,0xC2,0x97,0xBF,0xD8,0xF6,0xA2,0xA6,0xB0,0x6C,0xDB,0x5E,0x27,0x89,0xE1,
+0x77,0xC0,0x5C,0x80,0x5C,0xF5,0x57,0x1B,0xD0,0x28,0x54,0x53,0xBD,0x1A,0x3C,0x3B,
+0xDE,0x9A,0x5A,0x70,0x8F,0x7D,0x6C,0x81,0xFA,0xCD,0x06,0x03,0x8D,0x0E,0x6E,0x83,
+0xEE,0x8A,0x25,0xE3,0x89,0xA6,0xAE,0xF4,0x05,0x58,0x44,0xA5,0x44,0xA5,0x35,0xAF,
+0x7C,0x2C,0xB9,0xF3,0xB4,0xEB,0xA1,0xE5,0xEE,0x82,0x39,0xDB,0x6B,0xBA,0x78,0x49,
+0x9A,0xF9,0xD5,0x89,0xA4,0x1D,0x8C,0xCC,0x6A,0x9E,0x73,0xE8,0xF1,0x9D,0x1C,0x31,
+0x56,0x30,0x57,0x17,0x0A,0xE4,0x99,0xBC,0x39,0xE1,0x2F,0x06,0xD7,0xFF,0xBE,0x4E,
+0x86,0x8F,0x9D,0xBA,0x16,0x8B,0x23,0xDD,0x59,0xE6,0x9C,0x75,0xB5,0x30,0x77,0x89,
+0x95,0xEA,0x43,0x73,0xE0,0x7F,0xD8,0xB1,0xC7,0xD7,0xD2,0x9E,0x88,0x2A,0x20,0xDD,
+0x24,0xBA,0x3F,0xAD,0xE1,0xC9,0x37,0x14,0x28,0x50,0x91,0xC2,0xE9,0x42,0xC5,0x75,
+0x63,0x6E,0xC2,0xD7,0x58,0xD4,0x47,0x3F,0x01,0xE5,0xB4,0x99,0x5B,0xAC,0xF8,0x4B,
+0xED,0xBD,0x43,0xFF,0xAD,0x59,0x39,0x37,0xE9,0x35,0x6B,0x7B,0x07,0xF8,0xEA,0x8F,
+0x0D,0x2B,0x84,0x8B,0x35,0xC7,0xD4,0x0C,0xF5,0xBB,0x6F,0xCE,0xC3,0x99,0x39,0xDE,
+0x76,0xD2,0x48,0x44,0x24,0x1F,0x87,0x52,0x09,0xD9,0xCC,0x20,0xD2,0xF9,0x64,0x90,
+0xDA,0x23,0x19,0x45,0x26,0xF3,0xB2,0xA9,0x59,0xB2,0x40,0x63,0xC9,0x79,0x2E,0x6D,
+0x14,0x00,0xA6,0x56,0xC5,0x25,0x35,0xEF,0x1D,0x1D,0xE0,0x76,0x20,0x83,0xC1,0xF8,
+0x3F,0x9F,0xAB,0x8F,0x9B,0x4A,0xD0,0x08,0xD9,0x93,0x38,0x93,0x13,0x82,0xB7,0xD4,
+0x2D,0x6D,0x5D,0x17,0x3F,0xA7,0xD4,0xB2,0x77,0x6B,0x9E,0xA3,0xF2,0x5C,0xDE,0x14,
+0xD6,0x9E,0xF3,0xED,0x1C,0x4F,0xFB,0x15,0x12,0x40,0x7B,0x4C,0xD7,0xB3,0x2C,0x04,
+0x47,0x2A,0x96,0x6A,0xD3,0x58,0x4F,0x94,0xFD,0xEE,0xE9,0x44,0x7D,0x28,0x1E,0xF1,
+0x0B,0x70,0x97,0x01,0x48,0xA0,0x9F,0x08,0x03,0xF9,0xAF,0x29,0x92,0xAE,0xF3,0x34,
+0xF2,0xC6,0x87,0x18,0x93,0x97,0xE9,0x00,0x24,0xF3,0x50,0x98,0x65,0x3B,0xF1,0x33,
+0x8F,0x76,0xF5,0x51,0xDA,0x52,0x33,0x6A,0xD8,0xB9,0x3D,0xF3,0x7B,0x57,0x55,0x24,
+0x43,0x08,0xD6,0x86,0x40,0x0F,0x14,0xA0,0xB2,0x48,0x5A,0x8B,0x9D,0x19,0x67,0x7A,
+0x7E,0xD8,0xD6,0xBD,0x1E,0x84,0xAD,0xD9,0x03,0x43,0x90,0xDD,0x81,0xE2,0x63,0x7A,
+0x08,0x10,0x31,0x74,0x5D,0x3E,0x5C,0x28,0x47,0xBA,0x01,0x2D,0x60,0x0A,0x84,0x44,
+0x4B,0x03,0x32,0x42,0xE1,0xE1,0x36,0xCA,0xBE,0x59,0x60,0x95,0x4F,0x33,0x66,0xA9,
+0x53,0x04,0xFA,0x9A,0x92,0x5F,0x8F,0x50,0x3C,0xF2,0x37,0x8A,0x90,0xC8,0xF1,0xC2,
+0x34,0x10,0xBF,0xF5,0xC2,0xDB,0x37,0xA7,0xE5,0x5D,0x94,0xF4,0xDC,0x70,0x13,0x12,
+0x98,0xA4,0x16,0xA4,0x01,0x92,0x1D,0xC3,0x05,0x2C,0x65,0x97,0x3C,0xBD,0x3C,0x90,
+0xCF,0x8F,0x91,0x5B,0x62,0x03,0xB8,0x78,0x55,0x3A,0x41,0xA8,0x65,0x5E,0x97,0x36,
+0x23,0xBA,0x90,0x6C,0x27,0x36,0xFC,0x0F,0x30,0xBA,0x48,0xEA,0x9C,0x72,0xFF,0x07,
+0xB6,0x16,0x0D,0x24,0x5E,0xB9,0x5D,0x4D,0xC0,0xF1,0x9B,0x7E,0xB2,0xC2,0x42,0x3E,
+0x75,0xF7,0x70,0x6C,0x5E,0x87,0x07,0x26,0x75,0xE2,0xA8,0x3C,0x95,0x85,0xB3,0xE3,
+0x3C,0x30,0x61,0x94,0xCB,0xB2,0x5A,0xD5,0x6A,0x1A,0xA9,0x23,0x27,0xF1,0x84,0x48,
+0x20,0xD3,0xB4,0x7C,0xD5,0xE3,0x02,0x9E,0x18,0xE4,0xC3,0xC8,0x81,0xEC,0xB8,0xB6,
+0xD7,0x50,0xC7,0x3A,0x58,0xF6,0x9E,0xC6,0x99,0x24,0x9F,0xC0,0x32,0x32,0xA4,0x91,
+0xFE,0x61,0x25,0x9D,0x67,0x05,0xED,0x98,0xAE,0xAF,0x09,0xAA,0x78,0x2B,0xE3,0xF1,
+0x96,0xE3,0x60,0xE0,0x82,0x51,0x0B,0xA0,0x26,0xD1,0x8A,0xA6,0xD3,0x2C,0x7E,0x59,
+0xA4,0x1B,0xB6,0xB6,0xEB,0xC6,0x27,0xF3,0x45,0xDC,0xD0,0xC0,0x9F,0xCE,0x0F,0x52,
+0x1C,0x9B,0x53,0x00,0x2E,0xD1,0x71,0xA2,0x8F,0x9D,0x66,0xFC,0xE3,0x4C,0x2E,0x8E,
+0x64,0xD5,0x2E,0x27,0xDA,0xAB,0x1E,0x4E,0x2A,0x2D,0xAD,0x1B,0x6E,0x29,0x7A,0x7B,
+0x21,0x79,0x88,0x51,0x16,0xBE,0xD1,0x60,0x77,0xC6,0x6A,0x6E,0x67,0x8D,0x37,0xEB,
+0x07,0x08,0xF7,0x0D,0x94,0xE7,0x7F,0x27,0x3E,0x02,0x13,0x59,0xAB,0x49,0x4D,0x0A,
+0x74,0x7F,0x26,0x16,0x85,0x18,0x19,0x33,0xA4,0x5F,0xEA,0x00,0xAC,0x71,0x9B,0xCF,
+0x61,0xDF,0x70,0x45,0x70,0xDD,0x7C,0x0C,0xDB,0x42,0xBF,0xD3,0x27,0x3A,0x9F,0x7F,
+0x55,0xEF,0x13,0x32,0x8F,0xFC,0xD8,0x04,0x2B,0x8E,0xB5,0xAE,0x54,0xB1,0x69,0x52,
+0x10,0x8B,0x23,0x0F,0x18,0x81,0x6A,0x13,0x68,0xC4,0xE6,0x40,0x75,0xF7,0xC3,0x11,
+0x67,0xCC,0x60,0xD9,0x34,0x69,0x44,0xE5,0xE0,0x66,0x4D,0x11,0xE3,0xFD,0x5A,0x92,
+0xF4,0x48,0x9B,0xD5,0xF7,0xCB,0x28,0xBB,0x1E,0x78,0xC5,0x25,0xDF,0xDC,0xFB,0xEB,
+0x12,0xED,0x1C,0xE5,0xCA,0x1B,0x2E,0x32,0x87,0xF7,0x6D,0xFE,0x25,0x22,0xA4,0xC2,
+0x93,0x6E,0x86,0x6D,0xCE,0xD9,0xFF,0x55,0xA9,0x25,0xC4,0x38,0x86,0x16,0x3F,0x3F,
+0xBB,0x8F,0x07,0x09,0x9C,0x8C,0x0C,0xF8,0x1D,0xC5,0x0C,0x5F,0xB9,0xFB,0x3F,0x3B,
+0x26,0x5E,0x7D,0xD5,0x65,0x5B,0x16,0xBE,0xC1,0x64,0xA3,0xEF,0xA8,0xCD,0x38,0x94,
+0x15,0x3C,0x58,0x31,0xB9,0x31,0x8D,0x36,0x8C,0xEC,0xC0,0xDC,0x4F,0x5D,0xEE,0xC8,
+0xC1,0x5C,0x0D,0x03,0x5C,0xD5,0xDC,0xFF,0xCE,0x35,0x88,0xE4,0x3B,0x46,0xB7,0x3C,
+0x17,0x97,0x97,0x45,0xE4,0xA1,0xB5,0x86,0x75,0x47,0xAA,0xDB,0x3C,0xB0,0x58,0x95,
+0x8E,0x3E,0x24,0x22,0xBC,0xDF,0x1D,0x4F,0x2C,0xDA,0xBC,0x7A,0xB0,0x35,0x0F,0xE5,
+0xD3,0x34,0xA2,0x0F,0xCE,0xE8,0xA7,0x7E,0x36,0x8F,0x00,0x03,0x33,0x78,0x43,0x8C,
+0xB7,0xFB,0x2A,0xB3,0x18,0x02,0xA8,0x85,0x4D,0x9A,0x1E,0xD5,0xF7,0x2E,0x63,0x31,
+0x20,0xAB,0xBE,0xAC,0x29,0x1B,0xA8,0xD0,0xD4,0xF6,0xB0,0x4A,0x6F,0xC8,0x7E,0x2F,
+0xCA,0x60,0x32,0x43,0x9A,0x7F,0x06,0x8C,0x52,0xFC,0xE6,0xAD,0x2B,0xD6,0x9D,0x01,
+0x69,0x59,0xAC,0xDD,0xBA,0xDF,0xAA,0x4B,0x51,0x42,0x78,0x58,0xB9,0x62,0x33,0x3D,
+0x17,0x30,0x99,0x92,0x14,0x46,0xD8,0x5C,0x43,0x82,0xFD,0x2D,0xBE,0x74,0xF4,0x3C,
+0xF9,0x20,0x62,0x23,0x27,0xDD,0xA5,0x3E,0xA0,0xE2,0x95,0x30,0xA3,0x08,0x57,0x4B,
+0x1D,0x40,0xD8,0x58,0x02,0x09,0xB1,0xBE,0x36,0xA5,0x8E,0x25,0x4D,0x40,0xE7,0xCC,
+0x44,0xDD,0x55,0x33,0x2A,0x73,0xE6,0x84,0x2B,0xEE,0x33,0xB4,0x9D,0xC4,0x6F,0x54,
+0x93,0x09,0x4C,0x82,0x31,0xEE,0x23,0x8F,0x32,0xD5,0x05,0x22,0xEF,0x6B,0xE3,0x37,
+0xD3,0x30,0x3E,0x28,0xEA,0xDA,0x4D,0x78,0x21,0x75,0xEA,0x66,0xFD,0xA5,0xE3,0x3A,
+0x11,0xBE,0x05,0x1A,0x5A,0x5B,0x39,0x9E,0x19,0x71,0xDE,0xBE,0x24,0x0C,0xA8,0x82,
+0xA1,0xAC,0x5F,0xCB,0xDB,0xAF,0xB7,0x7D,0xEB,0x4B,0x35,0x14,0xDC,0x85,0xC4,0x6E,
+0x03,0x5B,0x20,0xDA,0xB7,0x3C,0x14,0xEE,0x98,0xC0,0x14,0x9E,0x2B,0x0D,0xEE,0x18,
+0x34,0xB0,0xB3,0xDA,0x53,0x9D,0xAC,0x0B,0x6B,0xCA,0x79,0x54,0x82,0x7D,0x09,0xD6,
+0x49,0xB2,0x33,0xD2,0x7E,0xD8,0x07,0xB0,0xAC,0x96,0x3F,0x9C,0x7E,0x2E,0x79,0xCF,
+0xD0,0xCA,0x54,0xDD,0x06,0xBC,0x2E,0xE9,0x45,0x6F,0xB9,0x72,0x68,0x22,0x1D,0x92,
+0x15,0xDB,0x2A,0xD3,0xD5,0xA9,0xEB,0x32,0x1C,0xA2,0xF2,0x48,0x7F,0x77,0x28,0x48,
+0x76,0x5E,0x59,0x30,0x7D,0xE9,0x67,0x87,0x48,0x0D,0x45,0x99,0x2C,0xA2,0x27,0x68,
+0x2F,0xB3,0x24,0x27,0x24,0xCF,0x0F,0x66,0xBA,0xF8,0x81,0x91,0xD0,0xDB,0xAA,0xD3,
+0x19,0x66,0xE9,0x41,0x41,0xD4,0xAF,0xAB,0x03,0x13,0x84,0x29,0x9C,0xAE,0xEF,0x7E,
+0x63,0x00,0xCC,0x20,0x68,0xAC,0x77,0x1A,0xB5,0x5C,0xE1,0x32,0xD9,0x65,0xAA,0x51,
+0x99,0x97,0x69,0x11,0x18,0x5E,0x3A,0x66,0x49,0xE9,0xE4,0x88,0x93,0x42,0x19,0x80,
+0x0E,0x55,0x0C,0x88,0xAE,0x6C,0x3D,0xFB,0xF6,0xD0,0x06,0x28,0x11,0x18,0xD2,0xCB,
+0x3E,0xC4,0x4D,0xE6,0x0C,0x1F,0x70,0x1A,0xF8,0xC4,0xFA,0xDC,0x62,0x57,0x02,0x57,
+0xCD,0x51,0x30,0xE3,0x85,0x36,0x13,0x14,0x83,0x92,0xE3,0xB4,0xF7,0xC1,0x56,0xDF,
+0x7A,0xBA,0x05,0x3E,0xAC,0xF4,0xEF,0x0F,0xBE,0xB1,0x39,0x1D,0x48,0x61,0x0E,0x18,
+0x2B,0x74,0x14,0x35,0x8C,0xE8,0xEF,0x0A,0xE0,0x2F,0x24,0x4A,0x71,0x0B,0x40,0x3B,
+0x71,0x77,0x26,0x4C,0x19,0x7E,0x37,0xE0,0x52,0x29,0x0A,0xAA,0xE4,0x53,0x4B,0x78,
+0x4F,0xFD,0xF6,0x73,0x64,0xBD,0x9D,0x29,0x3C,0xCB,0x4D,0xD1,0x2C,0x60,0xE1,0x01,
+0xCB,0xEB,0xD7,0xF4,0xA8,0x07,0x4E,0xF0,0xF7,0x04,0x96,0xA3,0xC8,0x89,0xE3,0xAE,
+0xFE,0x79,0xAA,0x6D,0xA5,0xEB,0x2C,0xC4,0x1E,0xF2,0xBA,0x0C,0x77,0x80,0x62,0x1D,
+0x13,0xED,0x96,0x58,0xE5,0xFC,0x2A,0x6F,0x92,0xF1,0xB8,0xBE,0xE9,0x5C,0x61,0x6C,
+0x5A,0xD5,0xA6,0x82,0xA6,0x50,0x82,0x8B,0x02,0x90,0x75,0x9C,0xC9,0xAD,0x9A,0x3B,
+0x29,0x30,0x9B,0x98,0x47,0x83,0xED,0x6C,0xB6,0x1A,0xFB,0x47,0xE7,0xA8,0xBE,0x65,
+0x97,0xB5,0x8C,0xA8,0x71,0x9B,0x9B,0x85,0x58,0xFC,0x00,0x23,0xB0,0xFF,0x72,0x00,
+0x4C,0xFD,0xA9,0x94,0xFA,0xB6,0x18,0x04,0xBD,0x46,0x2A,0x35,0x1B,0x58,0x55,0x50,
+0xF6,0x2A,0x92,0x98,0x7B,0xC0,0x75,0x28,0xA9,0xE8,0xC2,0x02,0x0B,0xC9,0x18,0xCD,
+0x9A,0x42,0xBA,0xAB,0x3F,0x47,0x52,0x7D,0xB6,0xFB,0x9F,0xE1,0x3D,0xF5,0x89,0x3C,
+0xC7,0xD6,0x22,0x88,0xE5,0x8B,0x4F,0x25,0x1F,0xBF,0xD1,0x43,0x13,0x92,0x40,0xD0,
+0x68,0xCB,0xEA,0xD2,0x5F,0xC3,0x99,0xEC,0x17,0x92,0x66,0x61,0xFD,0x67,0x7E,0x2D,
+0x5F,0x31,0x90,0xDF,0xE0,0x3A,0xE5,0x14,0x08,0x40,0xF3,0xFB,0x9A,0x98,0xC8,0x19,
+0x87,0xF0,0x6E,0x0F,0xBB,0x1E,0xE3,0xD0,0x6C,0xB2,0x7B,0x6C,0x5D,0xB3,0x3D,0xF9,
+0x90,0x09,0x5E,0xD6,0x72,0x8F,0x9C,0x6A,0x05,0x65,0xE0,0x89,0xAD,0x21,0xC4,0x41,
+0x82,0x7B,0x0A,0xB4,0x00,0xF7,0x43,0x59,0xF7,0x56,0x4A,0x55,0xF1,0xF0,0x32,0x71,
+0x6F,0x4A,0xC3,0xFE,0x61,0xE5,0x99,0x83,0xAB,0x19,0x94,0x73,0x97,0x56,0x5C,0x61,
+0x3B,0x0C,0x34,0x96,0x9E,0x12,0x2F,0x04,0x63,0x3C,0xB1,0x23,0xC7,0x88,0x15,0x8E,
+0xED,0xC0,0x7C,0x84,0x9C,0xDC,0x3F,0x79,0xE5,0x66,0x4B,0x4F,0x55,0x28,0x53,0x64,
+0x0F,0x02,0x0C,0x07,0x41,0xC5,0x22,0x92,0x6A,0x7C,0x51,0x38,0xDE,0xA7,0xD8,0xBA,
+0xD7,0x9A,0xB8,0x99,0x61,0xBE,0x03,0x31,0x28,0xE2,0x31,0xFF,0xF5,0x04,0x30,0xD2,
+0x1C,0x1A,0xD9,0xC6,0x97,0xAB,0xC0,0x52,0x03,0x18,0x64,0xA9,0x2A,0x7C,0x53,0xFB,
+0x91,0xB0,0x51,0x7B,0xA2,0x25,0xC1,0x8B,0xDF,0x51,0x30,0x4A,0xE2,0xA3,0x16,0x2D,
+0xB7,0x1A,0x41,0xBA,0xF4,0x5D,0x6B,0x2A,0x61,0xD6,0xE2,0xD2,0xBC,0x1A,0x74,0x86,
+0x01,0xFB,0xCF,0xAC,0x6D,0xEC,0xEA,0x2A,0xD3,0x72,0x8A,0x82,0x6C,0x59,0x5E,0x56,
+0x2C,0xBB,0xCC,0x76,0xCB,0x9E,0x93,0xF6,0x6B,0xB4,0x37,0xB3,0x49,0xE7,0xD6,0xF1,
+0x43,0xAE,0x1F,0xAA,0xE6,0x4E,0x1F,0x80,0x02,0x5D,0xF8,0x7F,0x8B,0x54,0x71,0x1E,
+0x23,0x8C,0xA3,0x7A,0x53,0xB4,0x08,0x6B,0x09,0xF3,0x72,0xBB,0x16,0xF1,0x13,0x49,
+0xD5,0x94,0x75,0xC9,0x81,0x52,0xD1,0xD0,0x13,0xC9,0x55,0xFE,0x0E,0xBB,0x78,0x28,
+0xB5,0x95,0x36,0x05,0xCE,0x16,0x96,0x96,0x97,0x39,0xC6,0x14,0xA9,0xCE,0x27,0xB7,
+0x6E,0x10,0xB3,0xBA,0x53,0x26,0xBD,0xE7,0x44,0xA4,0x6D,0x4B,0x56,0x8C,0x7C,0xBC,
+0x10,0x79,0xCA,0x6D,0x46,0xCC,0x4A,0xC3,0x46,0x97,0xEF,0xD5,0x72,0xA4,0x31,0x33,
+0x3D,0xD5,0x56,0x37,0xF5,0xBF,0x86,0x28,0x9F,0x3C,0xD2,0x53,0xEB,0x9C,0xA6,0x63,
+0x48,0x76,0xA8,0xCB,0x0B,0x70,0xDF,0xC4,0xB9,0xD4,0xB2,0xB3,0x0C,0x32,0x76,0xF1,
+0x38,0xBB,0x97,0x72,0xCA,0x41,0xDF,0x9A,0x5B,0x25,0x02,0x53,0xB8,0xAA,0xB3,0x6F,
+0xA0,0x6A,0x96,0xF4,0xF0,0xA6,0xA5,0xCB,0xD9,0x73,0x2D,0xBD,0xD6,0x6A,0x5B,0xF7,
+0x27,0x5F,0x50,0x73,0x70,0x86,0x0D,0xEF,0xEA,0xCB,0xD9,0x60,0xA2,0x8D,0x51,0xDA,
+0x0E,0x7D,0xF3,0xF4,0x97,0xAB,0xB1,0xD9,0x70,0xA8,0x7A,0x26,0xE2,0xE5,0x3C,0xAF,
+0x8A,0x99,0x3B,0x95,0x65,0x2F,0xE6,0xB0,0xA3,0xC6,0x86,0xA1,0xB0,0x91,0x12,0xB1,
+0x9D,0xDE,0xB8,0xDB,0x10,0x93,0x35,0x29,0x0C,0x0A,0x32,0x16,0x31,0x92,0x86,0x6D,
+0x59,0x15,0x6F,0x84,0x14,0x57,0xA8,0xBC,0xB7,0x03,0x20,0x71,0xCA,0x2B,0xFE,0x8F,
+0xC3,0x2A,0xAD,0x78,0x50,0x64,0x5A,0x9D,0x65,0x0B,0x30,0x7C,0x51,0xA2,0xA9,0xEE,
+0x97,0x62,0x81,0x79,0x63,0xFB,0x4C,0xAF,0xAE,0x4F,0x64,0xE6,0x85,0x66,0xA7,0x48,
+0x3E,0x0A,0x16,0x5F,0xD0,0x67,0x98,0x9F,0x07,0x10,0xE8,0xA4,0xD1,0xA5,0x06,0x8A,
+0x42,0x53,0x75,0xF1,0x32,0x13,0x44,0x5C,0x2B,0xDC,0xAD,0x89,0xE9,0xDB,0xDD,0x7E,
+0x48,0xC1,0xAD,0x0C,0x10,0x45,0x7B,0xAF,0x8F,0xCE,0xC5,0x40,0x31,0x18,0x2C,0xEE,
+0xD9,0x93,0xB7,0x6B,0x02,0x44,0x3A,0x6D,0xAA,0x32,0x54,0xB6,0x63,0xE6,0x17,0xA9,
+0x8E,0x01,0xC5,0xEC,0x90,0x62,0x87,0x58,0x4D,0x83,0x60,0xB6,0xF1,0x74,0x9B,0x7F,
+0xE2,0x8B,0xDF,0x57,0x43,0xF5,0x8A,0x4C,0xC4,0xF9,0xF8,0x1A,0x86,0x19,0xCD,0x3E,
+0x73,0x44,0xFC,0x8B,0xC0,0x42,0x39,0x0C,0xD0,0xEF,0x31,0x98,0x91,0x2A,0xCD,0xAF,
+0xDD,0xA7,0x45,0x59,0x93,0xB4,0xB5,0x67,0xE6,0x9A,0x12,0x1E,0xB6,0xF8,0x9B,0xBE,
+0x91,0xFB,0xC9,0x75,0x30,0x79,0x1A,0x4C,0xA0,0x5E,0xB3,0x5C,0x81,0xD3,0x37,0x1E,
+0x37,0x82,0x84,0xCD,0x52,0xFB,0x5D,0x6F,0x98,0x86,0x2F,0x2A,0x84,0x05,0xD6,0xA8,
+0x54,0xA5,0xA9,0x1F,0x60,0x72,0x89,0x9A,0x53,0x62,0x71,0x78,0x51,0xE3,0x76,0x3D,
+0x8E,0xA0,0x27,0x4A,0x04,0x45,0xC8,0xBE,0x5B,0x5D,0xA6,0xEC,0x77,0xBB,0x2C,0x9F,
+0x54,0xCA,0x18,0x0B,0xD0,0xB3,0x29,0x8C,0x49,0x9F,0xD0,0x67,0x81,0xD4,0xFA,0x8D,
+0x4D,0x75,0x9E,0x32,0x42,0x17,0xBB,0xDF,0xA1,0x76,0x2C,0xC3,0x05,0x96,0xF8,0xEE,
+0xFE,0xE0,0xAF,0xB7,0xFC,0xC5,0x7D,0x7B,0x06,0x54,0x89,0xC3,0x9A,0x38,0x32,0x81,
+0xC1,0x0C,0x7A,0xC2,0x1F,0x4C,0x19,0x45,0x37,0xCA,0x57,0xFE,0x71,0x52,0x52,0xE6,
+0x05,0x02,0x09,0x0E,0x07,0x05,0x00,0x0D,0x0E,0x03,0x0A,0x04,0x08,0x04,0x06,0x0C,
+0x03,0x08,0x0D,0x0B,0x0E,0x0F,0x09,0x07,0x0D,0x0A,0x01,0x03,0x0E,0x0D,0x0B,0x0F,
+0x0C,0x04,0x01,0x09,0x05,0x07,0x0D,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x05,0x02,0x04,0x06,0x07,0x03,0x01,0x06,0x04,0x05,0x01,0x00,0x03,0x02,0x07,
+0x05,0x06,0x02,0x04,0x01,0x00,0x03,0x07,0x01,0x04,0x07,0x00,0x02,0x06,0x05,0x03,
+0x06,0x07,0x03,0x00,0x01,0x05,0x04,0x02,0x07,0x04,0x01,0x00,0x06,0x02,0x05,0x03,
+0x04,0x05,0x03,0x07,0x00,0x06,0x01,0x02,0x02,0x05,0x06,0x00,0x07,0x01,0x04,0x03,
+0x02,0x04,0x07,0x06,0x00,0x03,0x01,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+};
+
+static unsigned char pParameterDataDecTbl[] =
+{
+ 0xF7,0x98,0x19,0xAA,0x41,0xF9,0x71,0xD9,0xDD,0x16,0x0D,0x43,0x72,0x43,0x44,0x39,
+0xDF,0xD8,0x1E,0x03,0x1E,0xFC,0x85,0x6F,0x47,0x54,0x57,0x91,0x14,0xFD,0x82,0x53,
+0x6A,0xF9,0x34,0xC4,0xD8,0x9A,0x3B,0x05,0x22,0x9E,0x45,0x06,0x58,0x84,0xF1,0x18,
+0x34,0x12,0xF4,0x26,0xDD,0x11,0x09,0xE5,0x85,0xDE,0x15,0xDB,0x17,0x32,0x24,0x6C,
+0x67,0xAB,0x00,0x7E,0x73,0xAD,0x4E,0x68,0x55,0x71,0x44,0xA2,0x64,0x9D,0xD6,0x37,
+0x58,0x48,0x60,0xFB,0x43,0xF6,0x7B,0xE4,0xC8,0x5E,0xD5,0x21,0xFA,0xBE,0xE7,0xE6,
+0x30,0xAF,0xBA,0x02,0xE9,0x04,0x18,0xD4,0x8E,0x85,0xC5,0x90,0xDC,0xBC,0xF6,0xC5,
+0x7C,0x07,0x96,0xFE,0xEB,0x0B,0x12,0xE9,0x27,0x57,0x4B,0x5B,0xCB,0xF0,0xB5,0x02,
+0xED,0x69,0x4A,0x3C,0x6C,0x75,0xEA,0x79,0xF0,0x95,0xD1,0x73,0x32,0xFF,0x93,0x70,
+0x59,0x15,0xA5,0xED,0x0F,0xDA,0x87,0x4C,0xF8,0xF4,0xB6,0xD3,0x16,0xA0,0xF5,0xA5,
+0x78,0xBA,0xD8,0xDA,0x12,0x0D,0x29,0x60,0xC3,0x05,0x05,0x6A,0x56,0x1C,0x22,0xEC,
+0xE2,0x06,0x71,0x8C,0x27,0xDD,0x2E,0x0C,0x5D,0x10,0x23,0x02,0x1B,0xF7,0x80,0x6E,
+0xC5,0x29,0x4D,0x95,0x07,0x65,0x0F,0xFE,0x25,0xF3,0x8E,0x57,0xF1,0xD2,0x6B,0xA4,
+0xC2,0xF4,0xC9,0xAD,0xD0,0x25,0xB3,0xB7,0xD3,0x84,0xD3,0x55,0x45,0x36,0xEF,0x54,
+0xCF,0xA6,0xFD,0x17,0xBE,0xBE,0x64,0xD0,0xD1,0x20,0x16,0x59,0xB3,0x33,0xCB,0x1B,
+0xFC,0x4A,0x6C,0x3E,0x36,0xFB,0x2C,0x2F,0x5F,0xB4,0xE6,0x0E,0xC3,0x53,0x9F,0x7F,
+0xA0,0x9C,0xA3,0xD6,0xBC,0xB1,0x6E,0xED,0x01,0x8F,0x47,0x20,0x85,0xD4,0xB1,0xBF,
+0x11,0x00,0xC7,0x35,0xB2,0x4F,0xC8,0xDF,0x10,0x90,0xE3,0xF8,0x6D,0xAC,0x2D,0x83,
+0x14,0xE0,0x4C,0x07,0x4E,0xC2,0xC1,0xB6,0xAD,0x94,0xC7,0xB6,0xEC,0x60,0x75,0xE8,
+0x79,0xE7,0x1D,0xCC,0x97,0x7C,0xDB,0xCD,0x82,0xB3,0xDE,0x8A,0x7F,0x14,0x31,0xF2,
+0xE0,0x3B,0x7E,0x86,0x4C,0xCD,0xCB,0x8B,0x6D,0xBA,0x40,0xF0,0xA8,0xBA,0x2C,0xDE,
+0x9A,0x9F,0x48,0x61,0x46,0x7D,0x49,0x04,0x62,0xB6,0xEC,0x01,0x33,0x6D,0x42,0xB9,
+0xA8,0x2E,0x1C,0x5E,0x89,0x61,0x69,0x81,0xB5,0x74,0x76,0x29,0xE8,0x06,0xFB,0x97,
+0x29,0x3E,0x23,0x88,0x55,0x54,0x41,0x1A,0xEF,0x18,0xAB,0xBD,0x2E,0xDF,0x5C,0xF5,
+0x9C,0x1F,0x09,0x4F,0x8C,0xEA,0x5B,0x61,0x4B,0x62,0x4C,0x8B,0x5D,0x70,0xAE,0xAE,
+0xBF,0x8D,0x7B,0x72,0x9D,0xCC,0x59,0x42,0xEB,0x4F,0xD7,0x07,0x93,0x0A,0x23,0xB1,
+0x5B,0x28,0xAA,0xE7,0x50,0xDF,0x73,0xFA,0x8F,0x1B,0xB7,0x77,0xB4,0x9A,0xE3,0x5B,
+0x09,0xCC,0x9B,0xA9,0x64,0xCA,0x62,0xCB,0x50,0xB8,0x4A,0xFF,0x9C,0x00,0x21,0x8C,
+0x61,0x2B,0x41,0x50,0x26,0x18,0x38,0x51,0x19,0x6F,0xF6,0xBF,0x5E,0xBF,0x08,0x91,
+0x3D,0xFD,0x8E,0xB8,0x35,0x31,0x30,0x4F,0x89,0xE8,0x0E,0xC1,0xD4,0x1F,0xDC,0xB8,
+0xE1,0x66,0xBB,0x90,0x52,0xD0,0x79,0xC7,0x1E,0x02,0x3D,0xEE,0xE3,0x6A,0x77,0xD5,
+0x63,0x16,0x4E,0x5A,0xB9,0x3A,0x5C,0x0D,0xE2,0xB0,0xC2,0x40,0x97,0x6C,0xAD,0xCE,
+0x3A,0x20,0x0A,0x80,0xE4,0x30,0xA2,0x86,0xC2,0x9B,0x77,0x8D,0x8C,0xE5,0x4A,0x0B,
+0xA4,0x21,0xED,0xF2,0x04,0xAF,0x13,0x9E,0x38,0xDA,0x31,0x95,0x7A,0xE0,0x6E,0x44,
+0x0C,0x2C,0x10,0x9B,0x87,0x9F,0xCF,0xB3,0x88,0x76,0x7C,0x26,0x6F,0xF1,0x5A,0x75,
+0x1A,0xD2,0xB2,0xA1,0x6D,0xB0,0xFC,0x24,0x7B,0xC8,0x2F,0x79,0x5C,0xE2,0x7F,0x67,
+0x3E,0x9D,0x44,0xA4,0x96,0xB9,0xCD,0x90,0x5A,0x7D,0xE8,0x53,0xAB,0x75,0x8A,0xE1,
+0xD1,0xEA,0xE0,0xA5,0x3B,0xCF,0x96,0x7D,0x65,0xDB,0x27,0x50,0xCE,0x04,0xEA,0xB4,
+0x1F,0x32,0x39,0x93,0xEE,0x80,0x20,0x09,0x87,0x7A,0xD0,0xD7,0xF7,0xE9,0x92,0x2D,
+0x8D,0x3C,0x2F,0x4D,0xD2,0x2A,0xB9,0x8A,0x0A,0xD4,0x97,0x6B,0x1F,0x91,0x0E,0x11,
+0xCC,0xC6,0x37,0x0B,0x2B,0x2C,0x82,0x03,0xC1,0xA1,0xC0,0x66,0xA1,0x8B,0xD7,0x6A,
+0x5F,0x95,0xE4,0xC3,0x60,0x84,0x46,0x76,0x0F,0x1D,0x99,0x36,0x69,0xCA,0xA3,0xFC,
+0x4D,0xD6,0x08,0xDD,0xC7,0x42,0x9F,0x14,0xAC,0x0A,0xB5,0x51,0x5A,0xD9,0x86,0xEE,
+0xFA,0xCA,0x2D,0x10,0x68,0x3B,0xCE,0xC4,0xA7,0x51,0x65,0x1A,0xC8,0x3F,0x13,0x3D,
+0x3F,0xC0,0x81,0xB2,0x06,0xA0,0x19,0xA3,0x35,0x72,0x58,0x68,0x5F,0x2D,0xD9,0x58,
+0xCA,0x46,0x76,0x25,0xAC,0x52,0x7A,0x93,0xF1,0x0B,0xA3,0x94,0xA4,0x7F,0x88,0xDC,
+0x83,0x0E,0xD1,0xEB,0x2A,0xE9,0x94,0x5E,0x64,0x45,0x55,0xB7,0xE1,0x37,0x00,0x23,
+0x3C,0xA0,0x4B,0xAE,0xA9,0xD9,0x48,0x73,0xDB,0xE5,0xB4,0xF5,0xB5,0x08,0x32,0x92,
+0xCE,0xFB,0x38,0x01,0xAF,0x98,0x66,0xF3,0xE3,0x2E,0xB0,0xA7,0x3D,0xF5,0x91,0x4D,
+0xEC,0x34,0x8F,0x2A,0xBB,0x35,0x56,0x30,0x63,0x28,0x9E,0xE6,0x0F,0x74,0x65,0x96,
+0xBD,0xB0,0x74,0x78,0xE6,0x3F,0xA8,0xBB,0x7C,0xA5,0xE4,0x28,0xAC,0xDC,0xA2,0xA1,
+0xC6,0x49,0x87,0x89,0x39,0xC0,0x9C,0x40,0x36,0x48,0xEF,0x83,0xC5,0x68,0x66,0xF6,
+0xCD,0x9B,0xF2,0x1D,0xFD,0xA9,0x28,0x17,0x45,0xF0,0x92,0x9D,0xAE,0x81,0xD5,0x57,
+0xA7,0x41,0x27,0xEE,0x81,0xDE,0xE1,0x33,0x99,0x69,0xD8,0xFE,0xE2,0xF8,0xA6,0x1C,
+0xF8,0xF7,0x22,0x1A,0xC4,0x88,0x83,0x74,0xBD,0x15,0x11,0x89,0xEF,0xAF,0xD3,0xD7,
+0xC3,0xA9,0x0C,0xBB,0xC0,0xC6,0xA7,0xC9,0xA8,0x5D,0xC9,0xEB,0xD6,0x42,0xAB,0x4E,
+0x40,0x84,0x3C,0x67,0x56,0x9E,0x5D,0x7A,0x80,0x17,0x1B,0x86,0x05,0x8A,0x38,0x1D,
+0x2F,0xBE,0x62,0xA6,0x4B,0x49,0xF3,0x56,0xAA,0xF9,0x0C,0xE7,0x46,0xF9,0x49,0x6B,
+0x25,0x31,0xD2,0x24,0x0D,0xD5,0x8D,0x71,0xB2,0x19,0xBD,0x78,0xC4,0xFA,0xB7,0x3F,
+0x70,0x08,0x67,0x52,0x8B,0x6E,0x63,0xBC,0x43,0x03,0x2B,0x2B,0x15,0x6F,0x53,0x9A,
+0x33,0xCF,0x70,0x1E,0x01,0x24,0x21,0x7E,0x13,0xAA,0x54,0x13,0xBC,0x39,0xC9,0x26,
+0x8E,0x5C,0xE5,0x51,0x99,0x82,0x7D,0xFF,0x52,0x1C,0x8F,0xF3,0x03,0xB1,0xC1,0x94,
+0xFF,0x2A,0xA6,0x22,0x7B,0x12,0xC6,0xDA,0xA2,0x98,0x6B,0x47,0x3E,0x3A,0x37,0x72,
+0x47,0x59,0xB8,0x5F,0xF2,0x92,0x98,0x78,0x3A,0x7E,0xF4,0x99,0x63,0x34,0xFE,0x77,
+0x7A,0x7A,0xE5,0xC9,0xE7,0x72,0x27,0x96,0xCF,0xB7,0xE9,0xCE,0x2C,0xCC,0x27,0x74,
+0x56,0x86,0xA9,0x61,0xE8,0x70,0x1A,0x9C,0x41,0x7C,0x40,0x1C,0x6F,0x0B,0x30,0x38,
+0x8C,0x7F,0xC1,0x86,0x1A,0xDA,0x2A,0xFF,0x51,0xCD,0x06,0xC7,0x7E,0x28,0x16,0x3A,
+0xEC,0xFA,0xFE,0x65,0x41,0xEA,0xA6,0xCA,0xC0,0x4E,0x9B,0xE8,0x4F,0xF9,0x88,0x19,
+0x18,0xA2,0xAD,0xDC,0xFD,0x44,0x2B,0x8D,0x91,0x37,0x4B,0x47,0xBD,0xA2,0xFB,0xB6,
+0xD8,0x40,0xF3,0x37,0x76,0x41,0xCB,0xBF,0xC1,0xEA,0xEC,0x07,0x68,0xD6,0xB4,0x00,
+0xF2,0x87,0x46,0x16,0x10,0x87,0xA1,0x01,0xD3,0x7D,0x89,0xCD,0x1B,0x9D,0xF8,0x79,
+0xF5,0x2E,0x6E,0x56,0x15,0xD8,0x17,0xF5,0x89,0xAF,0x13,0x8F,0xDD,0xF7,0x9E,0xC7,
+0x80,0xBA,0x65,0x84,0x17,0xAF,0xE1,0xA8,0x62,0xE2,0x91,0x2D,0x06,0xB1,0x2F,0xD7,
+0x11,0x93,0x56,0x68,0x52,0x27,0x1E,0xE0,0x92,0xB5,0x1F,0xB9,0x52,0xD5,0x5F,0xB7,
+0x25,0x29,0x5B,0x3A,0xC9,0x49,0x79,0x37,0x57,0xB9,0x1D,0x1D,0x76,0x9A,0xA9,0xB2,
+0xA1,0x11,0x5C,0xE7,0x89,0x9E,0x30,0x8B,0x0A,0xBB,0xEB,0x6A,0xF2,0x6A,0x1D,0x56,
+0x9D,0x08,0x7B,0xC8,0x31,0xBE,0xC2,0xAA,0xA7,0xEE,0x93,0x89,0x19,0xA0,0xF7,0x73,
+0x34,0x5E,0xE1,0x74,0xE1,0x8B,0xAE,0xAD,0x81,0x86,0x0D,0x9C,0xBB,0x22,0xBA,0x98,
+0x49,0x69,0xC0,0xDB,0x36,0x96,0x82,0x03,0x32,0x3F,0x36,0x6D,0x6C,0x6B,0xFA,0x24,
+0xA6,0xB8,0x74,0xA7,0x99,0xF5,0xB7,0x6E,0x55,0x9F,0x3E,0x0C,0x0A,0xBE,0xDE,0x7B,
+0xCF,0x0C,0xB0,0xF0,0xB8,0xCC,0xD4,0xC5,0x2F,0x51,0x21,0x81,0xC5,0x3B,0xC2,0x5B,
+0xF0,0xDA,0x31,0xE0,0x8D,0x10,0x4F,0xED,0xF2,0xC5,0x7B,0xED,0x62,0x59,0x04,0x82,
+0xA4,0xE5,0x03,0x51,0x91,0xDF,0xCA,0xCD,0x68,0xED,0xAC,0x2F,0xDB,0x77,0xDF,0xE9,
+0x92,0x02,0x79,0xF5,0x21,0xD5,0x45,0x4F,0xC4,0x1C,0xA3,0x23,0xB5,0x10,0x44,0x3E,
+0xF1,0x48,0xE0,0x29,0x90,0x0E,0x03,0x5F,0x5A,0x66,0x4C,0x2A,0xA8,0x3C,0x93,0x90,
+0xA0,0x83,0x8D,0x2E,0x2E,0xD7,0x78,0x45,0x43,0x5A,0x63,0x0D,0xEC,0x26,0x00,0xE4,
+0x2B,0xB1,0x88,0xCE,0xA3,0x2B,0x11,0x4C,0x67,0x14,0xDE,0x09,0xB4,0x4D,0x81,0x28,
+0x4F,0x52,0x39,0x52,0x5D,0x25,0x23,0xEA,0xC3,0xCC,0xCF,0x16,0x28,0x71,0x69,0x50,
+0xA2,0xDE,0xFA,0xD8,0xD6,0x20,0xC3,0xD8,0x46,0xAC,0x2C,0x29,0x34,0x00,0x7B,0xE8,
+0x57,0x14,0x78,0xA8,0x3C,0xCB,0x09,0xFD,0xB9,0x02,0xD0,0x9B,0xEE,0x1B,0x0F,0xEE,
+0x62,0x3C,0xA4,0x33,0xDD,0xAC,0x81,0xB4,0x8A,0x2D,0x47,0x71,0x45,0x76,0x38,0x9B,
+0xAD,0xD4,0xF8,0xE5,0xF4,0xBF,0x9F,0xBC,0x72,0x53,0xD7,0xF6,0x91,0x5F,0xB2,0x3B,
+0x77,0x2D,0x90,0x02,0x26,0xFD,0x05,0xE6,0xCE,0x13,0x9E,0x21,0xB8,0x42,0x70,0x84,
+0x46,0x63,0xC2,0xE6,0x33,0xC9,0x34,0xF7,0x33,0x9B,0x41,0x82,0x7A,0x95,0x58,0x1E,
+0x97,0xF6,0x26,0x43,0x20,0x04,0x8C,0xDD,0x53,0xEB,0x25,0xD6,0xBA,0x7F,0x7F,0x8E,
+0xE5,0xCB,0x05,0xD1,0x06,0x15,0xAF,0xDF,0xC8,0x67,0x85,0xFB,0x37,0x60,0xB1,0xF4,
+0xC3,0xC9,0x14,0xF2,0xC6,0x4B,0x44,0x3D,0x13,0x87,0xC4,0x4D,0x97,0xDF,0xF3,0x15,
+0xD5,0x17,0x86,0xFC,0x6C,0x77,0xC7,0xA4,0x54,0x3B,0x49,0xE3,0x0B,0xE3,0x1B,0x6D,
+0x0C,0x21,0x48,0x24,0x23,0xA2,0xB3,0x12,0xA3,0xBC,0xAB,0x42,0x73,0x7A,0x22,0x80,
+0xA8,0x20,0xA7,0x53,0x55,0x0F,0x5E,0x49,0x6C,0xBF,0x94,0xE4,0x13,0x2F,0x47,0xF1,
+0x5E,0x25,0x83,0x1C,0x5C,0xF4,0xEA,0x78,0xAB,0x95,0xB5,0x51,0xE6,0xA9,0xB0,0x66,
+0xFC,0x1F,0x95,0xE2,0x73,0x1E,0x7D,0x4B,0xF8,0xCA,0x46,0xEF,0xC3,0xBB,0x83,0x75,
+0x01,0x76,0x3D,0xEF,0x43,0x9D,0x50,0x97,0xB5,0x79,0xF6,0x43,0xF7,0x8A,0x96,0x64,
+0xE6,0x04,0xA3,0xEE,0xDC,0x7D,0x48,0x26,0xF3,0x61,0x0C,0x02,0xD3,0xC5,0x60,0x61,
+0xA7,0x2A,0xA5,0x6E,0x35,0x30,0xBD,0xCC,0x30,0x19,0x15,0x7C,0xAB,0x5C,0x59,0x8C,
+0x3D,0x6F,0x1A,0xC0,0x05,0xB3,0x90,0x10,0xD1,0x5B,0xAA,0xDC,0x99,0xED,0x0D,0xB3,
+0x9A,0xA1,0x53,0x88,0xBE,0x35,0x5D,0xFE,0x27,0x78,0x3F,0x92,0x11,0x12,0x48,0xFB,
+0x6D,0x36,0xA6,0x0E,0x4C,0x9F,0x6D,0x9D,0xDC,0x84,0xFB,0xEB,0x40,0x96,0xB3,0xA9,
+0xC1,0x94,0x63,0x04,0xD7,0xF1,0x0A,0x4A,0xE1,0xF6,0x69,0xC8,0x8A,0xF3,0x24,0xBB,
+0xE4,0x59,0xD4,0x18,0xAE,0x5E,0xDA,0x1B,0x31,0xBD,0x62,0x93,0x1F,0x20,0xB6,0x5D,
+0x08,0x47,0xC6,0x5B,0x68,0xF9,0xB8,0xC2,0x1D,0xDA,0xC1,0x84,0x3A,0x32,0x85,0x4E,
+0xDB,0x8F,0x55,0x08,0xC0,0xB2,0xCD,0x06,0x44,0x8A,0x0F,0x38,0x4E,0xA4,0x4D,0x0F,
+0xE0,0x3F,0x5A,0x67,0x2A,0x59,0x07,0x23,0x4D,0x07,0x66,0xC4,0x32,0x80,0x3A,0xC6,
+0xCE,0x9E,0x61,0x39,0x64,0x5D,0xBA,0x07,0x95,0x65,0x73,0x8C,0x4A,0x19,0x03,0x2B,
+0xCB,0x6A,0x3E,0x8F,0x32,0x18,0xFD,0x65,0x5C,0x12,0x57,0xF0,0x3F,0xD2,0x0E,0x7C,
+0x1E,0x99,0x54,0x55,0x45,0x64,0xD9,0xAC,0x16,0x71,0x8B,0x69,0x4C,0x99,0x42,0x05,
+0x6B,0x0D,0x5F,0x87,0x2C,0xA0,0x8E,0x18,0x6B,0x6F,0xF8,0xD1,0xFF,0x38,0x29,0xEC,
+0x98,0xFC,0x24,0x7E,0xD3,0x7F,0x75,0x2C,0x60,0xC4,0xB2,0x3C,0x3B,0x6F,0x40,0x58,
+0x63,0xAE,0x75,0xFA,0xD9,0x22,0xFE,0xD2,0x1A,0x0A,0xAD,0xB1,0xFC,0x58,0xE3,0xF0,
+0xD4,0x85,0x57,0x35,0x74,0x36,0x3D,0xE2,0x34,0x4B,0x2D,0xB7,0x08,0x83,0xD1,0x71,
+0x54,0xDB,0xDE,0x97,0x7E,0x6B,0xB6,0x1C,0x70,0x75,0xF4,0xE7,0x67,0xB9,0x8F,0xB0,
+0x4A,0xA6,0x66,0xE4,0xFE,0xE2,0x14,0x42,0xEF,0xAB,0x6C,0x01,0xAE,0xBC,0xD2,0xBE,
+0x09,0xD5,0x17,0x92,0x6E,0x00,0x31,0xF9,0x0B,0x1F,0x9C,0x85,0x58,0x5A,0xEF,0x35,
+0x9C,0x9A,0xAA,0x01,0xC8,0x98,0xB0,0xA5,0xD0,0xFF,0xDD,0x33,0x50,0xE8,0x50,0xBD,
+0x8B,0xD6,0xE9,0xC6,0x82,0x12,0x72,0xE7,0xAF,0xC7,0x8D,0x9A,0xCA,0x54,0xF9,0xEB,
+0x3E,0xA0,0xBC,0xFF,0x39,0x94,0xBF,0x09,0x39,0x94,0x7C,0x80,0x2E,0xF1,0x28,0x7E,
+0x8E,0x22,0xB6,0x70,0xA5,0xD2,0x98,0x77,0x88,0x0B,0x64,0x60,0xD0,0xA5,0xAA,0x7D,
+0xD0,0xE3,0xD9,0x4A,0x72,0xCF,0xB4,0xD9,0x9F,0x6A,0x4E,0x8E,0xA1,0xD3,0xE9,0x0E,
+0x16,0x33,0x03,0xAE,0x92,0xB7,0x4A,0xC3,0xBB,0x71,0xE7,0xE2,0x9B,0xB6,0xDE,0x6B,
+0xAE,0x40,0x1D,0xD3,0x1B,0x37,0x14,0x61,0x23,0x97,0x78,0x3C,0xC6,0xB8,0x17,0x6E,
+0xDA,0xD6,0xD5,0x92,0xE8,0x81,0xAD,0x67,0x0A,0x43,0xD8,0xB6,0x19,0xB5,0x20,0x3F,
+0x67,0x45,0x40,0xDD,0x70,0x27,0xF1,0xE6,0x4B,0xF5,0x03,0x56,0xA6,0x3D,0x28,0x8D,
+0xCC,0x28,0x77,0xA8,0xE4,0x70,0x01,0x68,0xAB,0xF0,0x31,0xDD,0x61,0x76,0x5E,0x26,
+0x99,0x11,0xC2,0xDE,0x62,0xCB,0xEF,0xA5,0x5A,0xEA,0xA7,0x8E,0xB0,0xE3,0xBA,0x83,
+0xA9,0x9D,0x99,0xEB,0xBF,0x3B,0xD1,0x63,0x99,0xFE,0x97,0x23,0xA0,0x06,0xD1,0x04,
+0xC6,0xA7,0xC7,0x2A,0xA2,0xEC,0x7F,0x4F,0xB3,0x10,0x80,0x42,0xE3,0x75,0xA0,0x72,
+0x11,0xEE,0x87,0x96,0x2D,0x2D,0x0F,0x6D,0xA4,0xFC,0x9D,0x2C,0x4A,0x23,0x3A,0xCE,
+0x2A,0xB0,0xA9,0x37,0x29,0x63,0x2B,0xD0,0xB1,0xB4,0x45,0x4E,0x73,0xCE,0x42,0x57,
+0x24,0x82,0x57,0x91,0x14,0x0C,0xA4,0x0E,0x5C,0x19,0x1E,0x38,0x0B,0x0D,0x3C,0x4E,
+0x4E,0x58,0x82,0x62,0x68,0x7B,0x6D,0x2A,0x80,0x80,0x54,0x5B,0x47,0x74,0x4F,0x05,
+0x54,0xA9,0xD1,0xF4,0x0F,0x9A,0x24,0xA2,0x65,0x4C,0x68,0x8D,0x09,0x50,0x4B,0xB8,
+0x2F,0x50,0x22,0x05,0xD0,0x65,0x10,0x59,0x2F,0xA1,0x63,0x26,0x60,0xE4,0x8F,0xEF,
+0x27,0xE2,0x9D,0x8D,0x46,0x3D,0xEA,0xEA,0xFA,0xC7,0x3C,0x02,0x98,0x79,0x78,0x54,
+0x05,0x2D,0x2A,0xA6,0x52,0x90,0xDA,0x29,0x7A,0xC1,0x12,0x43,0xAA,0xF8,0x8C,0x8F,
+0x6A,0x17,0x74,0x67,0xC3,0x4C,0x18,0x47,0x7D,0xAC,0xD9,0x12,0x44,0xBB,0xE9,0x3A,
+0xD5,0xB9,0xEE,0x22,0x40,0x7C,0xC4,0x6A,0xC2,0x0C,0x38,0x50,0x10,0x84,0xDB,0x8B,
+0xD6,0xD9,0x24,0x3E,0xEF,0x05,0x95,0xBA,0x2C,0x9B,0xD4,0xCD,0xFA,0xA1,0x30,0x41,
+0x23,0x5F,0xD3,0xA9,0x45,0xF7,0xF6,0x8A,0xE8,0xE2,0x2F,0x31,0x01,0xF3,0x61,0xC5,
+0xA4,0xCF,0xAD,0x51,0x2E,0xE7,0x13,0x0D,0xB5,0xE3,0x39,0xF4,0xFF,0x55,0x6F,0xF7,
+0x13,0xD3,0x88,0x9C,0x81,0x9E,0x42,0xDD,0xBE,0xB8,0xE9,0xBF,0x6D,0xB3,0xFA,0x24,
+0x25,0xDF,0x92,0x87,0xC2,0x89,0x0E,0x1A,0xD8,0x48,0x4C,0xC3,0x04,0x07,0x3E,0x73,
+0xB6,0x8C,0x41,0x4F,0x89,0x21,0xCA,0x6F,0x16,0xF4,0x15,0x93,0xCC,0x46,0x4A,0xE5,
+0xF6,0x2B,0x9C,0x1F,0x07,0x25,0xAC,0x10,0x9E,0x93,0x5C,0x72,0x52,0x65,0x7B,0x34,
+0x64,0x25,0x8A,0xC1,0x3B,0x8F,0x35,0x93,0x13,0x3D,0x1B,0xCE,0xBA,0x1D,0xE7,0x08,
+0xD7,0x84,0xE1,0x28,0x7F,0x1C,0x41,0x89,0x43,0x94,0x64,0xF6,0x0E,0xF9,0x63,0xF8,
+0x38,0xF3,0x45,0x29,0xD2,0x6A,0x1A,0x64,0x7C,0x32,0xAB,0xF5,0x6B,0x88,0x03,0xAD,
+0xE5,0x35,0xB5,0x17,0x6E,0x3A,0x43,0xAA,0x91,0x9F,0xF0,0x83,0xCA,0x7D,0xB3,0x6C,
+0xF3,0xCB,0x17,0x2D,0x84,0x15,0x70,0x3D,0x62,0x21,0xA3,0xDC,0xF9,0x6E,0x96,0x7E,
+0xD3,0x39,0xAF,0x0C,0x0D,0x95,0x2E,0x9F,0xDB,0x72,0xFB,0x28,0x29,0x69,0xA3,0x12,
+0x4D,0x38,0x48,0x7E,0xED,0x0A,0x9F,0x87,0x21,0x33,0xBD,0x30,0xDF,0x6C,0x87,0x5D,
+0x08,0x7F,0x1E,0x1C,0xBB,0x75,0xF5,0xDE,0x07,0xEB,0xB1,0x4B,0x46,0xE6,0x9E,0xCC,
+0x8A,0x0F,0xEB,0xD6,0x50,0x9F,0xD0,0x14,0xFB,0x59,0x4E,0xE5,0x32,0xE0,0x44,0xD7,
+0x88,0x32,0xE4,0xDC,0xCF,0xBD,0xB4,0x48,0x00,0x86,0x7A,0x1A,0xFB,0x33,0xE1,0x88,
+0xD4,0xE4,0x2B,0x34,0xDC,0x94,0xBC,0x56,0x90,0x01,0x82,0x64,0x71,0x93,0x35,0xA1,
+0xB2,0x31,0x0F,0x6B,0xB9,0x7A,0xFF,0xE3,0x96,0xF2,0x3B,0xD2,0x11,0x16,0x0A,0x42,
+0xE0,0xD5,0x3E,0x25,0x8D,0x6F,0xEE,0xD2,0x49,0x51,0xC6,0x5A,0x39,0x8C,0xC8,0x95,
+0x75,0x06,0xAC,0xC3,0x65,0x4F,0xD7,0x78,0x52,0x8B,0xC0,0x2E,0xF8,0xFC,0x47,0xB7,
+0x56,0x94,0xDE,0xFE,0x74,0x69,0xD5,0x5B,0xF2,0xA6,0x5B,0xA2,0x36,0x86,0xCA,0xA8,
+0x41,0x37,0xB9,0xD2,0x60,0xC4,0xE5,0x98,0xAC,0x9D,0xFA,0x8C,0x4D,0x8A,0x12,0x8E,
+0xC0,0x27,0x86,0x04,0xBC,0xF1,0xCD,0x03,0xF6,0xF1,0x27,0x18,0x8B,0x53,0xB5,0xEC,
+0x09,0x22,0xDB,0x0A,0xA5,0x68,0x47,0x92,0x74,0x53,0xCC,0x55,0x0D,0x36,0xC5,0xC7,
+0x73,0x86,0xED,0xED,0xAF,0xD8,0xC5,0x1D,0x7B,0x5F,0x60,0xA4,0x96,0xE1,0xAB,0xA0,
+0xFD,0xF9,0xE9,0x8B,0xA7,0x67,0x4D,0xAF,0xB4,0x7D,0x4B,0x13,0x49,0xEC,0x9C,0xF1,
+0x90,0xFE,0xB8,0x40,0x7E,0xD9,0x57,0xD4,0x9B,0x5A,0x52,0x2F,0xDA,0x98,0xD8,0xEB,
+0x49,0x85,0x06,0x5A,0x55,0x14,0xE2,0xF4,0x18,0x66,0xCB,0x85,0x20,0x58,0x58,0xA6,
+0xF8,0x19,0x62,0xB9,0x5B,0xEA,0x44,0xC6,0x09,0x79,0x6F,0x5D,0xC8,0x20,0xC4,0x9A,
+0x26,0xBF,0x58,0x9B,0x57,0x1B,0xE8,0xC9,0xC8,0xC9,0x9A,0xFC,0x16,0xBF,0x22,0x02,
+0x15,0x53,0xC9,0xB2,0xDF,0x5E,0xA0,0x36,0x46,0x5D,0x6A,0xAB,0x66,0xDF,0x76,0x66,
+0x2C,0x30,0xE8,0x19,0xEE,0xC0,0x83,0xE7,0x3C,0x1A,0x02,0xF2,0x54,0x5E,0x82,0xBD,
+0x2B,0xED,0x6C,0x21,0x39,0x80,0x3F,0xAE,0xCA,0x6D,0x5F,0xF0,0xE0,0xBA,0x06,0x4D,
+0x91,0xA3,0x7D,0x56,0xFB,0xA8,0xA5,0x79,0xDA,0xEC,0x89,0xCF,0xF3,0x90,0xCB,0xF5,
+0x0B,0x1F,0xD4,0x00,0xCE,0x78,0xA2,0x15,0x44,0xF9,0xAF,0xA7,0xBE,0x7B,0x69,0x77,
+0x04,0x70,0xEF,0xB0,0x85,0xD0,0x66,0x60,0xE9,0x7C,0x5D,0xD6,0x97,0x73,0x7A,0x69,
+0xB0,0x0C,0x00,0x61,0xE6,0x7F,0x0B,0x55,0xE1,0x1D,0x3A,0x76,0xB3,0x2C,0x1C,0xBC,
+0xD9,0xB6,0x1F,0x8E,0x00,0xA1,0x94,0xCD,0x97,0x6C,0x49,0x35,0x79,0x30,0x1F,0xDC,
+0x95,0x1E,0x33,0x72,0x02,0xAE,0x9E,0xF0,0x3E,0xBE,0xC7,0xFE,0x6E,0x7C,0x5C,0x1B,
+0x8E,0xB2,0xA5,0xF2,0x9A,0x08,0xC2,0x71,0x4C,0x98,0xC8,0x07,0xC1,0x11,0x3F,0x2E,
+0xB1,0x51,0xC5,0x77,0xAA,0x53,0xF7,0xFD,0xD1,0xB7,0x59,0x84,0x5F,0x32,0x0E,0xFF,
+0x83,0xE0,0x91,0x48,0x31,0x3F,0xB7,0x1C,0x3B,0x77,0xC9,0xA3,0xFD,0x08,0x18,0x01,
+0xDD,0x0B,0x51,0xAA,0x34,0xB4,0x85,0xFC,0x9C,0x37,0x99,0x7E,0xB2,0xBE,0xCD,0x75,
+0x1E,0x81,0xBC,0x26,0xA8,0x5C,0xFD,0xC0,0xC4,0xFF,0x81,0xE6,0xD7,0xCF,0xAD,0x20,
+0x36,0xC1,0xBB,0x8F,0xF7,0x59,0x09,0x76,0x5E,0xBD,0xDB,0x34,0xB1,0x71,0x6B,0x4A,
+0xBD,0xBA,0x1A,0xBB,0x17,0x26,0x38,0x23,0xB1,0x16,0xF1,0xF7,0x31,0x9B,0x70,0x0F,
+0x93,0x1B,0x21,0xE5,0x59,0x22,0x85,0x07,0x69,0x74,0xE4,0xBF,0x49,0x02,0x49,0xE2,
+0x6D,0xBD,0x2F,0xD7,0x36,0x1F,0x5B,0x88,0x32,0x02,0x09,0x12,0x37,0x1B,0x31,0x21,
+0xB8,0x4E,0x45,0x0D,0x41,0x63,0x7F,0x41,0x78,0x61,0xD5,0x8B,0x44,0x50,0x7D,0x58,
+0xEB,0xD8,0x5F,0xFC,0xA0,0x04,0xF7,0x08,0x44,0xB7,0x30,0x47,0x40,0xED,0x33,0x7C,
+0x18,0x29,0x24,0x05,0x5F,0xDB,0x0C,0x3C,0x4F,0x1C,0x7A,0xAA,0x84,0xBA,0x5A,0xC8,
+0xA7,0xA1,0x2C,0xB7,0x07,0x4D,0xBF,0xC6,0x10,0x38,0xAF,0xCC,0x73,0x01,0xA2,0x55,
+0x10,0x8A,0x0E,0x78,0xAA,0x59,0x7C,0xF6,0x3E,0x79,0x2F,0xCA,0x87,0xDA,0x90,0xD4,
+0x39,0x82,0x1D,0x66,0x8D,0x99,0x96,0x66,0xCB,0xD8,0xEE,0x7A,0xD5,0x3E,0xA1,0x9A,
+0x27,0xFF,0xA5,0x15,0x0D,0x10,0x34,0x38,0x54,0x06,0x76,0x9C,0x1C,0x3B,0xFC,0x94,
+0xEF,0xBE,0xD1,0x83,0xBB,0xE3,0x32,0x81,0xF4,0x8C,0x5F,0x48,0x2B,0x6A,0x23,0x99,
+0x7A,0xF1,0x6C,0x10,0x1D,0x7B,0xB3,0xDD,0x2F,0x6C,0x1E,0xFE,0x23,0xD8,0x9C,0x11,
+0x4D,0x84,0xC7,0x7D,0x4A,0xEF,0x3D,0x2D,0x1D,0xE7,0xFE,0xFB,0x55,0x73,0x5B,0x5A,
+0xF8,0xF2,0x92,0x44,0xF1,0x69,0xF0,0xC3,0x8B,0xB4,0x0F,0xE1,0xB1,0xD6,0x8A,0xCF,
+0xA3,0xC7,0xA2,0xC8,0x01,0xB4,0x36,0xFD,0xBB,0x19,0xCC,0xF5,0xDA,0x51,0x9A,0x2A,
+0xFD,0x06,0xCD,0xF2,0xD6,0xA9,0x1A,0x53,0xAC,0x78,0xE6,0x1B,0xAB,0x27,0xD9,0x59,
+0xA6,0x33,0xFD,0x7E,0x1F,0x0C,0x45,0x80,0x70,0x48,0xCB,0x98,0x70,0x61,0x68,0x49,
+0xB0,0xED,0x6F,0x70,0xB5,0x30,0xC6,0x19,0x37,0xF4,0x46,0x36,0xEC,0x5D,0x80,0x31,
+0xDB,0x04,0xDC,0xD1,0x26,0x74,0xDC,0x6D,0x48,0xCC,0x16,0x9F,0x68,0xAD,0x34,0xD5,
+0x7F,0x05,0x33,0xA6,0x50,0xD9,0x31,0x36,0x87,0xCF,0x29,0x39,0x08,0xF8,0x51,0xA4,
+0x8F,0x3B,0xEE,0x60,0x00,0x65,0xFF,0x6F,0xDC,0xB9,0xC4,0x94,0xB8,0x39,0xF0,0x51,
+0x2D,0x01,0xF8,0x9E,0x2F,0x8F,0x68,0x5C,0x8F,0xE6,0x37,0x2A,0x9D,0x2B,0xC3,0x42,
+0x95,0x20,0xD8,0x6C,0xAF,0x06,0xCA,0x02,0xD7,0x12,0x8E,0x79,0xA8,0x47,0x13,0x45,
+0x72,0x52,0x46,0x6D,0x30,0xE6,0xD2,0xB3,0x91,0x0A,0x74,0x38,0x8C,0x08,0xE5,0x40,
+0x4E,0x4B,0x61,0x42,0x76,0xC8,0x12,0x34,0xF5,0x28,0x28,0xA7,0xE2,0x6F,0x7E,0x97,
+0xD4,0x0E,0xDE,0xEC,0x46,0x4B,0x3F,0xE8,0x14,0x6A,0x97,0x07,0xD0,0xDE,0x2A,0xA8,
+0x1E,0x12,0xDD,0x8C,0x3F,0xE4,0xEF,0xB9,0xF8,0xF7,0x79,0x90,0x3B,0x14,0xC0,0x8D,
+0xE9,0x85,0x28,0x0A,0xCD,0x4E,0xDF,0xDA,0x03,0x0B,0xBD,0xE9,0x6A,0x90,0x3B,0xDF,
+0x97,0x7D,0xAF,0x9A,0xDD,0x25,0x58,0x3F,0x15,0xCE,0xE0,0xE8,0x64,0xA2,0xC5,0x79,
+0xB2,0xB0,0x18,0x86,0xA4,0x8A,0x88,0x6E,0xC5,0x85,0xEB,0xB3,0xF1,0x71,0x57,0x9F,
+0xA8,0xAB,0x2E,0x8A,0xB3,0xC9,0x4F,0x22,0x60,0xF9,0x8D,0x43,0x35,0x26,0x3E,0x2B,
+0x7B,0x63,0xBD,0xD9,0x1B,0x82,0x3A,0xE6,0x39,0xA9,0x43,0xFF,0x41,0xB0,0xF6,0x6A,
+0x83,0xFE,0x4A,0x62,0xFE,0x6B,0xCD,0xC9,0xD6,0xB6,0xF9,0x96,0x19,0xDB,0x77,0xA6,
+0xBC,0x28,0xCB,0x72,0xCB,0xB7,0x56,0xE1,0x0B,0x22,0xA3,0xFA,0xBE,0xB9,0xB1,0x7F,
+0xE1,0x26,0x02,0x77,0x52,0xAE,0xC7,0x6B,0xE0,0x6F,0x21,0x58,0xCE,0x92,0x37,0x1A,
+0xD7,0xC1,0x78,0xD3,0xE2,0xA4,0x48,0xE9,0x4C,0x9E,0x2E,0x54,0xA0,0xF5,0xAC,0xCD,
+0xD3,0xA7,0xF6,0xAC,0x5D,0xAC,0xFA,0x61,0x67,0x29,0xE1,0x76,0x97,0xA4,0x73,0xC0,
+0x82,0x6C,0x9B,0xAB,0xE3,0x75,0x81,0x7B,0x7E,0x15,0xCE,0x51,0xD3,0xBE,0xE0,0xB4,
+0x3C,0x76,0x42,0xD0,0x2E,0x5E,0xA1,0xCE,0xE7,0xBF,0x4D,0x6D,0x53,0xF3,0x1A,0x74,
+0x58,0x95,0xF3,0x4C,0xD0,0x50,0x93,0x68,0x43,0x67,0x5C,0x72,0xCF,0xCF,0xF2,0x0C,
+0x24,0x30,0x03,0x2A,0x4F,0xB0,0x8B,0xD9,0x9D,0x71,0x52,0xE0,0x95,0x99,0x7C,0xCA,
+0xD1,0xFA,0x81,0x5A,0xA5,0x5B,0x41,0xFC,0x62,0xDF,0xAE,0x52,0x4F,0x82,0x08,0xCC,
+0xDE,0xF0,0x83,0x67,0x87,0xC4,0x1D,0x98,0x56,0x20,0x55,0x8D,0xEA,0xDD,0xC1,0x1F,
+0x11,0x18,0xDF,0xB1,0xAE,0xD7,0x03,0x90,0xAE,0x5E,0xC5,0x0A,0x3E,0xF4,0x4B,0xBF,
+0x35,0x47,0xB9,0x64,0x40,0xB2,0xB6,0xD3,0x17,0xE8,0xC3,0xF9,0x01,0x17,0x2B,0x3A,
+0x04,0x09,0xEB,0x80,0x55,0x86,0x87,0xC2,0xEA,0x60,0x1C,0x5A,0xC3,0xC0,0x03,0xA0,
+0x96,0xEF,0x7E,0x53,0x75,0x6E,0x2D,0xFB,0xEC,0x14,0x07,0x80,0x4C,0xE2,0xC2,0xD0,
+0xE4,0xD2,0x5D,0xC1,0x53,0x7F,0x0E,0xF9,0x77,0x98,0xA7,0xAD,0xC1,0xFD,0x0C,0xAA,
+0x25,0xA2,0xD2,0xE3,0x9B,0x0B,0x98,0xB8,0x65,0x0F,0xC2,0x67,0x14,0x89,0x43,0x1C,
+0x09,0x5E,0x9E,0x4B,0x94,0x09,0xA5,0xB2,0xEB,0xC4,0x6B,0xB5,0x57,0x4E,0x54,0x50,
+0x9F,0xDE,0x85,0xE7,0x32,0x91,0x24,0xEE,0xE4,0x3D,0x19,0x93,0x34,0x7B,0xFB,0x3D,
+0xFF,0x5B,0xBA,0x04,0x69,0xA1,0xA8,0xDB,0x75,0xBE,0x84,0xBC,0x05,0xAA,0x65,0x1E,
+0xAB,0x64,0x88,0xB5,0x05,0x3A,0x49,0x9B,0xE5,0x99,0x6E,0x7C,0x13,0x54,0xC7,0x24,
+0x6B,0x86,0xD6,0x5E,0x8E,0x3F,0xA9,0xA9,0xB5,0x44,0xC9,0x3C,0xC6,0x20,0x88,0x92,
+0x86,0x0A,0x15,0xD4,0x66,0xA3,0x95,0xD1,0xAD,0xDC,0x91,0xF4,0xA6,0x75,0xED,0xE3,
+0x81,0xA3,0x3D,0x94,0x63,0xFC,0x23,0x25,0xF7,0x0E,0x0B,0xB6,0x60,0x1F,0x8B,0x5D,
+0x62,0xB7,0x2D,0xEA,0x21,0x5C,0x9C,0xC4,0xB6,0xC6,0x9D,0xC2,0x29,0x57,0x2C,0x93,
+0xF3,0x9E,0x1E,0x06,0x64,0xD4,0x63,0x8C,0x46,0x91,0x13,0x56,0x7D,0x33,0x5C,0xF3,
+0xD2,0x35,0x27,0x65,0xFA,0xE5,0xB2,0xAF,0x2E,0xC8,0x69,0x11,0x89,0xE8,0x6E,0x72,
+0x56,0x0D,0x20,0xB8,0xBA,0x32,0xFB,0x13,0x73,0xCA,0x9F,0x66,0x0D,0x18,0xDA,0x96,
+0x47,0x7A,0x9A,0xF6,0x92,0xF0,0x2C,0x89,0xA5,0xF5,0x8F,0xE7,0xC0,0xA0,0xC9,0xBC,
+0xEE,0x2C,0x00,0x4A,0x42,0xC5,0x40,0x8E,0x83,0x9D,0x11,0xF2,0x62,0x22,0x84,0x57,
+0xD5,0x9C,0x0F,0x25,0xEA,0x8E,0x35,0x4A,0x71,0xEC,0xBC,0x77,0x71,0x3C,0xAD,0x5F,
+0x3A,0x4D,0xBB,0x59,0x45,0xED,0x00,0x27,0x16,0x4C,0xB4,0x16,0x17,0xE9,0x89,0x00,
+0x27,0x89,0x25,0xDB,0x07,0xA0,0xC7,0x46,0xAE,0x3E,0xE7,0x0A,0x78,0x1E,0x31,0x88,
+0x5E,0xFA,0x6E,0x97,0x4D,0x7C,0xA4,0xDF,0xD2,0xF7,0x90,0x2E,0xA2,0xCB,0xC2,0xE2,
+0x9D,0x84,0x77,0xEF,0x16,0x91,0xD2,0x72,0xEF,0x78,0xFF,0xF0,0x90,0x35,0x64,0xEC,
+0x70,0xFC,0xEE,0xD6,0xCE,0x84,0xB0,0x3A,0xEB,0x5C,0xB1,0x4D,0xCE,0x1B,0xC5,0xD7,
+0xAB,0x4A,0xAF,0x36,0x41,0x5A,0xDF,0x07,0x94,0x89,0x0C,0x09,0x0D,0xB6,0xF5,0xC3,
+0x2A,0xBE,0x74,0x04,0x6F,0xDA,0x9E,0x01,0x80,0xB9,0xA1,0xCA,0xC2,0x01,0xDE,0xE1,
+0xB7,0x49,0xCF,0xFC,0x30,0x0F,0xBA,0x67,0x16,0x43,0xF9,0x79,0x70,0xBE,0x56,0xE9,
+0x03,0x8D,0x98,0x95,0x3B,0x45,0x11,0x8A,0xC9,0x77,0x06,0x82,0x89,0x4D,0xA7,0x92,
+0x6E,0xEE,0xAD,0x3A,0x50,0x6B,0xCA,0x33,0xB6,0xA2,0xBB,0xC6,0x65,0xDC,0x8E,0xA1,
+0xE6,0xE6,0x1F,0x85,0x8B,0x2A,0x2A,0x85,0x2E,0xFE,0x1D,0x47,0xF6,0x49,0xC1,0x1C,
+0xEB,0xD1,0x4E,0x5A,0x2B,0x03,0xA0,0x51,0xDD,0x47,0xAB,0x41,0x60,0x81,0x80,0x68,
+0xE5,0x18,0x4B,0x07,0xB4,0x9B,0x7E,0xB7,0x54,0x19,0x2B,0xE3,0x13,0x9F,0xFD,0xD0,
+0x26,0x66,0x52,0x7F,0xD3,0x93,0xDE,0xD6,0x64,0x2C,0x70,0x6F,0x87,0x5B,0x79,0x00,
+0x55,0x17,0x24,0x3C,0xC4,0xB9,0xBF,0x38,0x79,0x82,0xA7,0x43,0xBD,0x05,0xB8,0x6F,
+0xB0,0x7C,0xA3,0x2C,0xF4,0x7A,0x12,0x2C,0xA4,0xBC,0x57,0x85,0x31,0x5E,0x8D,0x5F,
+0x25,0x98,0x06,0xFD,0x62,0x8B,0x41,0x36,0x22,0x52,0xEC,0x48,0x08,0xEB,0xFB,0x0A,
+0xDB,0xC5,0x8D,0xF7,0xF8,0x5C,0x69,0xF4,0x14,0x49,0xF6,0x44,0xD3,0xD9,0x7A,0xFE,
+0xAA,0xA5,0xD8,0x92,0x37,0x63,0x6A,0x52,0xB9,0x12,0x80,0xA9,0xA4,0x7D,0x7B,0x11,
+0x4E,0x21,0x28,0x26,0x48,0x33,0x52,0xFB,0xFD,0x66,0x13,0xB3,0x05,0x16,0x92,0xA2,
+0x36,0xBD,0x14,0xCE,0x0F,0xBE,0xEE,0x55,0xC1,0xFF,0xB9,0x30,0x0B,0x00,0x4C,0x30,
+0x3F,0x41,0x7D,0x43,0xEE,0x01,0xAC,0xF5,0x2B,0xCC,0x96,0xA7,0x18,0xD4,0x2D,0x8B,
+0x3A,0x65,0x32,0xB5,0xA8,0xFB,0xB4,0xB4,0xCB,0x7D,0x09,0xBF,0x19,0x33,0x5F,0x15,
+0x3D,0x50,0x5E,0x65,0xF0,0x42,0x40,0xE7,0x42,0x23,0x89,0x1D,0xEB,0x8B,0x7E,0x35,
+0x2E,0x75,0x4C,0x56,0xA3,0xB1,0x1F,0x59,0xA8,0x10,0xA6,0x8A,0x15,0x29,0x44,0x23,
+0xA0,0xA7,0xE5,0x9D,0x7C,0xC8,0xAD,0x24,0x83,0xA5,0x6B,0xAA,0x7F,0x4F,0xFA,0xE5,
+0xF2,0xF6,0x61,0x66,0x87,0x0C,0x51,0x5D,0x29,0xC6,0x99,0x9A,0xF9,0xB8,0x6D,0x10,
+0xD7,0x1D,0xAB,0x8C,0x6B,0xE2,0xCC,0xCA,0x86,0x97,0xE0,0x4A,0x99,0x72,0x71,0x13,
+0xE8,0x2F,0x1A,0xD8,0x8A,0x5D,0x8E,0x6A,0x05,0x4B,0xD0,0x67,0x37,0xE8,0x34,0xAC,
+0x15,0x8C,0xC5,0x50,0x46,0x36,0x0F,0x32,0x4F,0x99,0xBD,0x4F,0xAC,0xDD,0x1C,0x70,
+0x54,0xF8,0x53,0x98,0x1F,0xF8,0x5F,0x8E,0x04,0x5D,0x15,0x3A,0xFF,0x0E,0xD4,0xE3,
+0xE0,0x3C,0x04,0xF1,0xBA,0x9E,0x23,0x7E,0x47,0x11,0x02,0xFD,0xF3,0x14,0xCF,0xD5,
+0x06,0xA9,0xD7,0x63,0x6A,0x95,0x68,0x25,0xE8,0x40,0x7B,0x2D,0xEF,0x31,0x02,0x62,
+0xB2,0x6D,0x80,0x0A,0x33,0x5B,0x38,0x99,0x69,0x96,0x44,0x3D,0xA6,0x71,0xBE,0xB5,
+0x65,0x03,0xE7,0x91,0x9F,0x54,0xC9,0x95,0x63,0x14,0xF4,0xB2,0x02,0x47,0x59,0xCF,
+0x00,0x73,0xCC,0x17,0x74,0xD6,0x84,0x37,0x7A,0x9E,0x6D,0x23,0x07,0x1A,0x57,0x06,
+0xD9,0xD4,0xAE,0xD1,0xA9,0x8C,0x10,0x5B,0xA6,0xB6,0x58,0xB8,0x17,0x25,0x81,0x87,
+0x73,0x02,0xBA,0x54,0x3C,0x29,0xC1,0xBF,0x9D,0x17,0x76,0xE6,0x39,0xFE,0xEA,0x3E,
+0x0B,0x9E,0x86,0xBC,0x98,0x38,0x19,0xA0,0x93,0xB1,0x88,0xD4,0xA5,0x9A,0x09,0x8F,
+0xCB,0x1E,0xCB,0x46,0x01,0xBB,0xB3,0x9C,0xB8,0x04,0x45,0xF4,0xDE,0x24,0x13,0x56,
+0xBF,0x5A,0xD1,0xD5,0x18,0x94,0x8F,0xBB,0x61,0x1E,0xFB,0x8F,0xD9,0x75,0xD8,0x3B,
+0xC0,0xF3,0x81,0xED,0xD1,0xB0,0xF8,0xC7,0x1A,0xEF,0x08,0x76,0xC4,0xB7,0x67,0x12,
+0x60,0x27,0xA8,0x67,0x29,0x20,0x86,0x40,0x09,0xE7,0x21,0x68,0x12,0x78,0x8F,0x4E,
+0xB3,0x82,0xF7,0xAE,0x1D,0xDB,0x79,0x9F,0x96,0x83,0x03,0x34,0x2F,0x77,0x85,0x4C,
+0xB5,0x58,0xEC,0xDA,0xE2,0x27,0xD7,0x2D,0x7D,0xA6,0xE9,0xFE,0x5F,0x82,0x4F,0xCE,
+0xD5,0x0C,0x88,0xAA,0x08,0xD2,0x3E,0x60,0xB2,0x86,0xF5,0x7B,0xB4,0x42,0xAD,0x90,
+0xAF,0x81,0x97,0x64,0x93,0x72,0xB2,0x4D,0xA3,0x84,0xD3,0x58,0x26,0x30,0x90,0xB3,
+0xDF,0x0E,0xB5,0xA5,0x95,0x69,0xC6,0x97,0x4B,0xBD,0xF3,0xF2,0xF5,0xA2,0x76,0x26,
+0x45,0xCC,0x62,0x8D,0x68,0xB6,0x4E,0x34,0x7F,0xAC,0xE6,0xC3,0x11,0x93,0x38,0x74,
+0x61,0xC8,0xDF,0xC3,0x0A,0xF1,0x18,0x71,0x6C,0xA4,0xCF,0xDD,0x71,0x59,0x24,0x77,
+0x42,0xF9,0x0E,0x5D,0x9B,0x6C,0x9B,0x5E,0x5C,0x91,0x94,0x51,0x92,0x39,0xA1,0x48,
+0x2F,0x9A,0x3B,0xF2,0x94,0x1E,0x62,0x78,0xC4,0xCD,0x32,0xD0,0x3E,0xAF,0x21,0x53,
+0x63,0xD9,0xFC,0xE5,0x1A,0xB7,0xA9,0xAA,0xC6,0xC7,0x3D,0xED,0x96,0x83,0xDD,0x1F,
+0x22,0xAD,0x6A,0x2D,0x88,0x7E,0xA8,0x7B,0x31,0x5A,0xC5,0x56,0xE1,0x27,0xDC,0xF0,
+0x9C,0x6B,0x00,0x4B,0xD2,0xE4,0x7A,0x39,0x6E,0xAE,0xC0,0xE0,0xA1,0x20,0x75,0xD8,
+0xED,0x0B,0x55,0x2E,0xCA,0xBC,0xE2,0xF1,0xF2,0xD6,0x28,0xDC,0x2B,0xCD,0xF9,0x1B,
+0x5B,0xDE,0x21,0x61,0x9A,0x1B,0x3F,0xB1,0xF7,0xE4,0xA3,0x3C,0xC0,0x0D,0x1B,0x45,
+0xE9,0xC0,0x6D,0x7C,0x0C,0xEA,0x6C,0xAB,0xFF,0x6C,0x1C,0x8E,0xCD,0xF0,0x72,0xED,
+0x0D,0x44,0x9D,0xC8,0x51,0x1C,0x6E,0xDC,0x28,0xD0,0x5C,0xC7,0x10,0x74,0x4A,0xEA,
+0x8C,0xB0,0x46,0xFA,0x39,0x66,0x37,0x9B,0x19,0xF3,0xC2,0x16,0x73,0x55,0xE1,0xD3,
+0xEC,0xE4,0x22,0x8A,0xC9,0xE8,0x60,0x0F,0x91,0xBB,0x87,0xE9,0x9F,0xC4,0xC8,0xE0,
+0x7F,0xDA,0x9C,0x2F,0x69,0xC1,0xEA,0xDB,0x20,0x58,0xE3,0x75,0x2C,0x9C,0x32,0x76,
+0x20,0xBC,0x49,0x0B,0x0E,0xC9,0x4A,0xBA,0x43,0x35,0x4C,0x40,0x50,0x73,0xE3,0xC2,
+0x28,0xAF,0x57,0x22,0xFC,0x64,0x3B,0x3F,0x08,0xF1,0xE4,0x35,0x3F,0x48,0x53,0xCD,
+0xC3,0x0D,0xD5,0x6F,0xDA,0xFA,0x53,0x2A,0x3D,0xF6,0x34,0x59,0x83,0xE1,0x05,0x57,
+0xEF,0x7F,0xBF,0x85,0xAD,0xD3,0x09,0x74,0x67,0x15,0xC4,0xF9,0xBB,0x4E,0xD7,0x2D,
+0x3C,0xED,0x59,0x10,0xA6,0x03,0x52,0x3F,0x1E,0xC5,0x6B,0xA8,0x76,0xF9,0xCB,0x08,
+0x6B,0x84,0xED,0xD4,0xC0,0xA6,0xA2,0x43,0x09,0x02,0x28,0xE4,0x6D,0xCF,0xC7,0x12,
+0xFD,0x4C,0xAC,0xA0,0x0E,0xFF,0x1E,0x13,0xA1,0x77,0x63,0x20,0xA5,0x5C,0x94,0xC1,
+0x22,0xC4,0x51,0x03,0x65,0x33,0x46,0x92,0xCC,0x5F,0x29,0xF2,0x8D,0x80,0x0F,0xF4,
+0x93,0x90,0x6E,0x31,0xDA,0xD2,0xE6,0xD0,0xFC,0x72,0xAA,0x2E,0xC8,0x3F,0xA1,0x6E,
+0x59,0x7A,0x4B,0xDA,0x34,0x3E,0x71,0x4D,0x85,0xA2,0x05,0x7F,0xD4,0x3C,0xC1,0xA4,
+0xDD,0x81,0x19,0x8B,0xF0,0xC5,0x08,0xB1,0x77,0x92,0xAF,0x1C,0x43,0xC9,0x47,0x53,
+0x74,0x4A,0x97,0x59,0x89,0x1A,0x75,0x03,0xBA,0xB2,0x84,0xA9,0xFD,0x0F,0x2D,0x35,
+0x66,0x79,0x84,0x7C,0x7A,0x49,0xCB,0x5C,0x95,0x25,0x6E,0x9A,0xC7,0x19,0xD3,0x97,
+0x0A,0xA9,0x83,0x49,0xC3,0x11,0x98,0xA8,0x15,0x87,0xE7,0xC4,0xE6,0x39,0x21,0x2F,
+0x45,0x5F,0x86,0x6D,0x39,0x57,0xD9,0xB0,0x8A,0x9F,0x07,0x75,0x94,0xA7,0x20,0xC8,
+0x2C,0xD2,0x8F,0x91,0x86,0xB6,0x79,0xF2,0xA5,0x08,0xED,0x46,0xF5,0x1C,0x33,0x1C,
+0x10,0x3A,0xF7,0x0D,0x0B,0xF1,0xD7,0x4E,0x0F,0x8B,0xD1,0xDF,0x2B,0x8E,0x3D,0x0A,
+0xE0,0x8E,0x13,0x89,0x5B,0x8E,0x7E,0x76,0x9C,0x91,0x95,0xAB,0xC2,0x3D,0x9C,0x61,
+0xB5,0xEB,0x62,0xE9,0x64,0x41,0xD8,0x75,0xEA,0x7C,0x38,0xF0,0xC3,0xD2,0xEB,0xC5,
+0x3E,0xE1,0x9C,0xB4,0xB3,0xDB,0x1A,0x5D,0xF0,0x70,0x0E,0xEB,0x42,0x26,0x30,0xF7,
+0x9B,0x30,0x09,0x50,0x42,0x4D,0x00,0x0E,0x4B,0xBD,0x88,0x05,0x34,0x73,0x09,0x42,
+0x1C,0x20,0xEC,0x3B,0x81,0x7D,0x14,0xA3,0xBB,0x7B,0x55,0x3B,0x01,0x43,0x85,0x19,
+0x6A,0x63,0x9F,0x4A,0xAB,0x6A,0xFA,0xC2,0x6C,0x57,0x48,0x95,0xC0,0x2C,0xBF,0x47,
+0x73,0x1B,0x5C,0x34,0xA3,0x0D,0x9B,0x62,0x37,0xDB,0x78,0xA0,0x44,0xFC,0x2B,0x83,
+0x76,0x46,0x52,0xFD,0x3B,0x92,0x7D,0xBC,0xB7,0x79,0xF1,0xFE,0x39,0x44,0x58,0x9D,
+0x27,0x99,0x5F,0xCA,0x12,0x32,0xA9,0x36,0x01,0x7F,0x02,0x47,0x78,0x30,0xCE,0x55,
+0x95,0x26,0xD7,0xC2,0x53,0xE9,0x1F,0xD6,0xA7,0xFE,0x9A,0x1B,0x37,0x8D,0x5D,0xC0,
+0xA0,0x89,0xBA,0xA1,0x7D,0x82,0xA6,0x0D,0x1A,0xBA,0xE5,0xCE,0x1E,0xBE,0xB1,0x51,
+0xF7,0xE0,0x0E,0x65,0x37,0x89,0x4B,0xA6,0xE5,0x41,0x3A,0xFA,0xEF,0xC5,0x48,0xA2,
+0x4C,0x18,0x93,0x92,0xE2,0xD6,0x2D,0x82,0xBD,0xF2,0xAC,0x00,0x67,0xCD,0xFA,0x1D,
+0x97,0x2A,0x12,0x66,0x62,0xF8,0x2B,0xC3,0x10,0x31,0xB8,0x30,0x4C,0xEF,0x35,0xAA,
+0xD6,0xCA,0xC9,0xD0,0xBC,0x77,0x16,0xAC,0xAD,0x75,0xC7,0xE5,0x7C,0xFB,0xF6,0x07,
+0x4F,0xF3,0x24,0xA8,0xA9,0xAF,0x5E,0xCE,0xE3,0xC8,0xC3,0xC1,0xDD,0xC0,0xA8,0x29,
+0x56,0x8B,0xE7,0xD6,0x44,0xF4,0xF3,0xB8,0x8C,0x16,0xFE,0x4E,0x7B,0xCE,0x9A,0xD7,
+0x1D,0xC7,0x9E,0xA5,0x98,0xBE,0x6A,0xDB,0xFB,0x32,0x82,0x87,0x88,0xA4,0x40,0x02,
+0xED,0x73,0x7A,0x21,0xC2,0x63,0x06,0x4F,0x28,0x61,0x11,0x4F,0xBC,0x7B,0xBB,0xFD,
+0x6F,0x3E,0x91,0x83,0x5C,0x45,0x13,0x27,0xF8,0x0D,0x24,0x48,0xEA,0xE1,0x07,0x54,
+0x71,0x17,0x99,0x90,0xF1,0xB7,0x96,0x56,0x50,0x78,0x6F,0x8C,0x5A,0xEE,0x68,0x6F,
+0xA4,0x33,0xC6,0xF6,0xF9,0xD0,0xF7,0xF6,0xFF,0x4D,0x0C,0xE1,0x8B,0x5A,0x14,0x80,
+0x1A,0x96,0x55,0xC8,0xD0,0x70,0x23,0x7C,0x9B,0xD1,0xBD,0x02,0x71,0xCC,0xA7,0xD8,
+0x7E,0xE6,0x35,0x9C,0x5E,0x80,0xB7,0x2B,0xDE,0x2E,0x35,0x4A,0x58,0xFF,0x4B,0x49,
+0xA5,0xD4,0xB4,0x68,0x24,0xE8,0xF0,0x72,0x40,0xFF,0x04,0x69,0xF3,0xC6,0x28,0x68,
+0x55,0x60,0x50,0xEC,0xD2,0xB5,0x87,0x70,0x00,0xB6,0xD3,0xD5,0xCB,0xC1,0xF5,0xEC,
+0x19,0x7D,0xE2,0xF2,0x23,0x23,0x9D,0x23,0xBF,0x04,0xDB,0x5D,0xA2,0x69,0xF8,0x11,
+0x6D,0x32,0x54,0x27,0x84,0x73,0xDD,0xFE,0x34,0xE4,0xDE,0x6F,0x40,0x37,0x13,0xD1,
+0x38,0x57,0x25,0x47,0xDC,0x6B,0x15,0x66,0xDC,0xD8,0x42,0x17,0xCC,0xF4,0x99,0x3C,
+0x52,0x31,0x9B,0x81,0x46,0x31,0x57,0xB4,0xD9,0x6E,0x1D,0xE3,0x65,0xDC,0xD9,0x3B,
+0xC4,0xF9,0xDA,0xF5,0x8F,0xA3,0x86,0xB5,0x21,0xD5,0xEA,0x7E,0x64,0x33,0xAE,0x9F,
+0x03,0xEE,0x96,0xB6,0x26,0x2D,0x54,0x7E,0x2E,0xE8,0xE8,0x74,0x98,0x7F,0x06,0xB3,
+0x36,0x41,0xFB,0xD5,0x54,0x22,0x72,0x87,0x88,0x69,0x70,0x28,0x18,0x64,0xAA,0x25,
+0xE7,0xDF,0xD8,0xE4,0xC9,0xB3,0x5D,0x04,0xD3,0xE5,0x40,0x1D,0x9D,0x5B,0x49,0x45,
+0x5A,0x91,0xFC,0xE0,0x8E,0xD1,0x18,0x52,0xFA,0xFB,0x53,0x15,0x81,0x58,0x29,0x8F,
+0x8D,0xB9,0x66,0x22,0x51,0x2C,0xBB,0xDA,0xEF,0xCA,0x67,0x04,0xCF,0x0A,0xCD,0xBE,
+0xAF,0x78,0x16,0xAD,0x4A,0x2A,0x61,0xAE,0xCF,0x60,0x8F,0x3D,0x29,0x9F,0x1E,0x2C,
+0xB0,0xB6,0x6C,0x20,0xEA,0xB1,0x4C,0x22,0xE9,0x43,0x9E,0x3F,0x14,0xBC,0x8C,0x5E,
+0xD4,0xC6,0x0C,0x74,0x1F,0x5B,0x01,0xCB,0xF5,0xC6,0x51,0x1F,0xF6,0xE2,0x67,0x9E,
+0xCF,0xB2,0x0A,0xAE,0xE3,0xA4,0xB3,0x65,0x1F,0x0C,0xBA,0x3A,0x3C,0x60,0x17,0x6B,
+0x90,0x7B,0xD9,0x0B,0x18,0x90,0x6C,0x9A,0x3D,0x50,0x25,0x5E,0x36,0x62,0x2A,0x64,
+0xB9,0xF1,0x79,0xDF,0x88,0x68,0xEB,0xE4,0x14,0x4E,0x36,0x56,0xDE,0x3E,0xFC,0xAB,
+0xE9,0xC9,0x06,0x76,0xAC,0xA1,0x97,0x93,0xE7,0xB7,0x4D,0xA7,0x61,0x17,0xE1,0x69,
+0xF3,0x5A,0x72,0x32,0x83,0xB8,0xB0,0xAF,0x59,0xCC,0x94,0xBD,0xAA,0x7A,0xE6,0x38,
+0xBE,0xA0,0xB2,0xB2,0x00,0x21,0x8C,0x05,0x94,0xEC,0xBF,0x08,0xB0,0xA3,0x9D,0x86,
+0x82,0x48,0xCA,0x2E,0x11,0x85,0x93,0xDD,0x6A,0xDE,0xB1,0xAE,0x53,0x12,0x01,0xE2,
+0x96,0xCD,0x60,0xF8,0xB4,0x10,0x77,0x0C,0x44,0x80,0x8A,0x0F,0x38,0xAB,0x2F,0x39,
+0xF4,0x0B,0xB9,0x5F,0xEE,0xCD,0x1B,0x98,0x71,0x1B,0x56,0x27,0xEE,0x2A,0x3F,0x06,
+0xDF,0x8D,0xDC,0x2F,0x6C,0x26,0xB9,0xD5,0xE8,0x8A,0x4F,0xAD,0xE0,0xE3,0x3A,0x5B,
+0xB8,0x16,0x0B,0x41,0x63,0x8A,0xB5,0x24,0x58,0x05,0x45,0x2F,0x07,0x99,0x9E,0x6D,
+0x20,0xD7,0xF7,0xAF,0x87,0xB2,0xF5,0x36,0x57,0xE0,0x55,0xBA,0xEC,0xDB,0x26,0x0D,
+0x39,0xF0,0xD8,0x93,0xF3,0xA8,0x66,0x72,0x3A,0x2B,0x04,0xBD,0x97,0x65,0x3C,0xD4,
+0xA0,0xCC,0x5B,0x39,0x33,0xE5,0x9C,0xF2,0xE3,0x31,0xBA,0xC6,0xB7,0xA8,0x89,0xFF,
+0x04,0xD3,0x4A,0xE1,0x4B,0xD9,0x74,0x6E,0x52,0xD2,0xDE,0x5A,0x85,0x56,0x2F,0xF1,
+0x91,0x37,0xEF,0x30,0xE1,0xCD,0xF1,0xB8,0xEB,0xB9,0x05,0x74,0xDB,0x78,0x8E,0xCA,
+0x4C,0x5B,0xB5,0xA4,0x38,0xAF,0x37,0x1F,0x6A,0x6F,0x3A,0x64,0x40,0x4D,0xA6,0x16,
+0xA7,0xF9,0x37,0xE9,0x5D,0x84,0xB1,0x6F,0xA3,0x61,0x67,0x61,0xD1,0xD4,0x2C,0x0F,
+0x0B,0xF5,0x38,0x18,0x8A,0xE3,0x2A,0x01,0xD9,0x86,0x51,0xC5,0x5E,0x64,0xAE,0x05,
+0x50,0x58,0xD5,0x6E,0x7D,0x01,0xAD,0xA0,0x18,0x00,0xB3,0x72,0xA0,0xC6,0x94,0x13,
+0xAD,0xFB,0x0A,0xE6,0xE7,0xD6,0x85,0x62,0x4A,0x4E,0x82,0x96,0x91,0xD3,0x85,0x27,
+0xAB,0x21,0x11,0x92,0x97,0xF4,0x44,0xED,0xDF,0xA8,0x10,0x45,0x3B,0xF3,0xBC,0xCF,
+0x30,0x0C,0xB1,0x1E,0xED,0xEB,0x8A,0x60,0xFC,0x95,0x62,0xD7,0x18,0xD5,0xBE,0xDE,
+0xDA,0x41,0x44,0xF7,0x8D,0x8F,0xFA,0x34,0xA2,0x77,0xA2,0x3C,0x9D,0xC9,0x9E,0x11,
+0x25,0xF3,0xB8,0x59,0x8B,0x94,0x8E,0xEE,0x20,0xBD,0x57,0x4C,0x57,0x23,0xBB,0xFA,
+0x11,0x2C,0x43,0xA6,0x58,0xCB,0x47,0x4B,0x22,0xB7,0x58,0x71,0x0B,0x01,0xDF,0x65,
+0xE9,0xAB,0xD3,0xD8,0xF8,0xE2,0xCD,0x9F,0x7E,0x5F,0x97,0xA7,0x15,0x28,0xD7,0x76,
+0xA2,0xDD,0x78,0x1F,0x63,0x42,0x41,0xB2,0x29,0x23,0x2D,0xA3,0x5F,0x83,0xDC,0x9B,
+0xF2,0x9D,0xDF,0xC2,0xD5,0x36,0x0E,0x67,0x77,0xC1,0xED,0x48,0xBF,0x08,0xEE,0x9E,
+0xEA,0x55,0x87,0x5A,0xA4,0x63,0x6B,0x07,0xB4,0x4D,0x00,0xC2,0x83,0xE0,0x96,0x02,
+0xB0,0x17,0x1D,0x88,0x1A,0x09,0x0D,0xC1,0x9C,0xE4,0x07,0x82,0x35,0xE5,0x62,0x5D,
+0x22,0xC6,0xD4,0x89,0x5B,0x9F,0xC5,0xB5,0x73,0xE5,0xA3,0xF5,0x8E,0x1D,0xFF,0xAA,
+0xAC,0x14,0x7D,0x42,0x17,0x58,0xD2,0xF6,0x3F,0x19,0x8F,0x5D,0xB3,0x12,0xF5,0xA8,
+0xA3,0x32,0x0F,0xBB,0x7A,0x6D,0x7D,0x95,0x24,0x99,0x19,0xF1,0x32,0xB4,0xA9,0x30,
+0x32,0x1D,0x92,0x38,0x59,0xBC,0xE3,0xA4,0x1B,0x1C,0x79,0x12,0xBE,0xEF,0x9C,0x00,
+0xE2,0x46,0x99,0x73,0xFB,0xB6,0x4F,0x61,0x3B,0x3D,0xC1,0xE0,0x3A,0x14,0xCE,0x51,
+0xC4,0x53,0x07,0x1B,0x10,0x34,0x02,0xC3,0xA1,0x6B,0x68,0x5C,0x56,0xC4,0xC9,0x64,
+0x36,0xD6,0xAA,0x6A,0x18,0x2A,0x2B,0xD0,0xAE,0xDB,0x53,0x33,0x23,0x6C,0x0D,0x2F,
+0x51,0xB7,0xA2,0xCA,0x47,0xFF,0x0F,0xB6,0x1A,0x0A,0xBC,0x4F,0x16,0xC3,0x60,0x4C,
+0xF1,0x63,0x8B,0x40,0xD4,0x41,0xAA,0x88,0x8C,0xF0,0xE4,0xFC,0x8A,0xA7,0x83,0xFD,
+0x01,0xF7,0x05,0x17,0xB4,0x25,0xDA,0xDC,0xBF,0xD9,0x75,0x10,0x75,0xE2,0xCB,0x75,
+0x69,0xB0,0x7F,0x4E,0x35,0xFE,0xE8,0x28,0x86,0x72,0x54,0x73,0xA4,0x7C,0xE8,0x44,
+0x34,0xC7,0x89,0x4C,0xD1,0x0E,0x5C,0xAC,0x81,0x4A,0xD0,0xAE,0xED,0x3C,0x54,0x93,
+0x03,0xE6,0x26,0x31,0x3B,0xFB,0xB5,0xE1,0xFE,0x9F,0x6D,0xEA,0xE1,0x26,0x4F,0xA5,
+0x08,0x0B,0x6C,0x9A,0x8F,0xAC,0xDC,0x25,0x85,0x6E,0x9E,0x13,0x1A,0xD9,0x7B,0x7A,
+0x57,0x6D,0xB9,0xBE,0x12,0x17,0x24,0xD2,0x8D,0xE6,0x21,0xA1,0xA9,0x81,0x81,0xEC,
+0x79,0x6B,0x39,0xFF,0x93,0xCC,0x16,0x26,0xAF,0xCD,0x96,0x6E,0x6A,0x2C,0xB1,0xF8,
+0xF6,0x56,0xE7,0x90,0x48,0x8D,0xF6,0x90,0xBB,0xFD,0x3B,0xAD,0x2E,0x91,0x64,0x87,
+0x2E,0x1E,0xF2,0xF2,0xA5,0x14,0xCF,0xE8,0x80,0x5C,0x15,0xF3,0x93,0xDF,0x40,0x83,
+0x75,0xB3,0x1F,0x84,0x66,0x0D,0xB7,0x96,0x8E,0xFA,0xEB,0xC1,0x4D,0xB0,0xCF,0xBE,
+0x3F,0x2A,0xC3,0xE7,0x1F,0x46,0xFB,0xE5,0xE4,0x09,0x3E,0x1B,0x69,0xC7,0x06,0xC2,
+0x5A,0x5A,0xE8,0x61,0x1D,0x65,0xDD,0xF4,0x66,0xC3,0xCB,0x6B,0x2B,0xCC,0x6A,0x4E,
+0xCC,0x40,0x19,0x32,0x88,0xC0,0x0C,0x10,0x33,0xB5,0x7E,0x52,0xE6,0x77,0x84,0xC8,
+0xFC,0x54,0xDA,0x9F,0x6D,0x47,0x1C,0x7B,0x03,0x80,0x25,0xDE,0x20,0x87,0xBA,0x15,
+0xEB,0xBA,0xF0,0xFE,0x1E,0x31,0x5F,0x0A,0x6C,0x41,0x7B,0xE4,0x0C,0x50,0x14,0x08,
+0x8C,0xDB,0xF8,0x5E,0xDD,0x28,0x27,0x74,0xBC,0xC5,0xBF,0x70,0x80,0x0B,0x21,0x38,
+0x13,0x3D,0x60,0x80,0xD3,0x2D,0x7A,0xBD,0x04,0xB8,0xA1,0x03,0x22,0x8B,0x7F,0xB1,
+0xB3,0xE9,0x49,0x0A,0xDE,0x7C,0xA5,0x8A,0x70,0xF9,0x69,0x95,0x24,0x3D,0xC6,0x42,
+0x68,0x5F,0x08,0xEA,0x56,0xCE,0x1A,0x82,0xCD,0xB6,0xFC,0x06,0xA5,0x9B,0x9A,0xDA,
+0x9B,0x35,0xD2,0x3F,0x16,0x2F,0x76,0x19,0x4F,0x7C,0x09,0x76,0xE9,0x86,0x28,0xC4,
+0xC8,0x8B,0x21,0x60,0x05,0x3D,0x45,0x3C,0x59,0x46,0xAB,0x88,0x7E,0xA9,0x1B,0x2E,
+0x90,0xD8,0x98,0x94,0x02,0x51,0x95,0x09,0x79,0x67,0x13,0x7A,0xDC,0x29,0x45,0xA7,
+0xD6,0x99,0x62,0x8C,0x07,0x1E,0x63,0x2D,0xE7,0x15,0xF4,0x7B,0xC4,0xB6,0xF4,0x47,
+0x37,0x39,0xDD,0xCE,0x0E,0x77,0xEE,0xD1,0x5C,0x74,0x20,0x68,0x53,0x99,0xC7,0xAD,
+0x70,0x97,0x50,0x72,0x76,0x4B,0x06,0x4D,0xCE,0xAA,0x36,0x66,0xD0,0x33,0x5E,0x91,
+0x0F,0x3E,0x00,0x4A,0x92,0xBB,0xB2,0xC9,0x7D,0x43,0x5D,0xC7,0xCA,0xA0,0x2A,0xD5,
+0xC0,0x98,0x3F,0x49,0xE3,0xEE,0xD7,0xA9,0x92,0x42,0xF9,0xB0,0x27,0xD6,0x71,0x78,
+0x52,0x49,0xF6,0x48,0x3E,0xB4,0x43,0xC5,0x0E,0x3A,0x11,0x8C,0x4E,0x5B,0x78,0x84,
+0x82,0x12,0xFD,0x03,0xD8,0x67,0xD1,0x50,0xB9,0xF7,0x34,0x90,0x9E,0x22,0x29,0x2B,
+0x27,0xE2,0x9B,0x7F,0x6C,0x30,0xB8,0x94,0x8F,0xEC,0x2E,0x9C,0x59,0x35,0x65,0x68,
+0x7E,0x5E,0x55,0x2F,0x2D,0xA6,0x70,0xE0,0x1C,0x24,0xFD,0xCF,0x2C,0x9D,0xA1,0x23,
+0xB2,0x06,0x3E,0xAE,0xD0,0x79,0xF8,0x43,0xC0,0x0C,0xC8,0x54,0x04,0xF0,0x73,0x69,
+0x53,0xA6,0x81,0xEC,0xEF,0xC8,0xAC,0x71,0x7F,0x49,0x52,0xFA,0x29,0xC0,0xAF,0xEA,
+0xBF,0x31,0x6F,0x71,0xCA,0x02,0x46,0x9A,0x7C,0x55,0x98,0x9A,0xF9,0xB9,0xFE,0x45,
+0x44,0x48,0xAB,0x8D,0x98,0x86,0xBD,0xCB,0x89,0xC2,0x6F,0x1C,0xC9,0x4B,0x9D,0xEF,
+0xFD,0x40,0xCD,0x11,0x43,0x92,0x42,0xB3,0xCA,0x3E,0x9D,0x20,0x40,0x18,0x01,0x29,
+0x89,0xD6,0x05,0x50,0xFF,0xC2,0x1B,0x7D,0xBF,0x75,0x59,0x88,0x93,0xD0,0x92,0x7A,
+0x4D,0x81,0x6C,0xE4,0x0F,0xBE,0xBE,0x1B,0x78,0x36,0x15,0x9F,0x89,0xCB,0xA4,0x76,
+0xD8,0x52,0xFE,0x02,0x54,0xF5,0x6E,0x10,0xA8,0x99,0x44,0xE6,0xAC,0x06,0x13,0x6A,
+0xD6,0x60,0x00,0xA4,0x55,0x30,0x78,0x4D,0x2F,0xF2,0xA1,0xF6,0xD2,0xFE,0x94,0xFA,
+0x87,0xE4,0xFB,0xF6,0x2C,0xCC,0x83,0x89,0x1F,0x58,0xC2,0x04,0x25,0x69,0x61,0x7C,
+0x6C,0x2E,0x11,0xD3,0xBB,0x51,0x6F,0x67,0xCF,0xF7,0x93,0x7D,0xEF,0x75,0x62,0x1C,
+0x5E,0x9F,0x45,0xEC,0x1B,0x13,0x8E,0xD8,0xE2,0x74,0x4F,0x4D,0x75,0x30,0xDD,0xB2,
+0x30,0xF8,0xDE,0x3B,0x84,0x31,0xEA,0x84,0x22,0x5A,0xC8,0x0B,0x49,0x29,0xFA,0x9D,
+0x14,0xB7,0x28,0x3E,0xC5,0x29,0xAC,0x7E,0x3A,0xBA,0x79,0x94,0xAE,0x5B,0x64,0x9C,
+0x21,0xDB,0xF8,0x39,0x96,0xDD,0xF4,0xC7,0x98,0x33,0x27,0x14,0x16,0x7A,0x44,0x6E,
+0x04,0xC9,0xCB,0x2A,0x28,0x82,0xA7,0x34,0x0F,0xD9,0x14,0x3B,0xB4,0x40,0x52,0x90,
+0xB4,0x08,0x6A,0xDF,0x85,0xF4,0xFC,0xD9,0xC1,0x65,0x4D,0x6B,0x44,0x7E,0x8F,0x56,
+0xD4,0x5D,0x0F,0xAE,0x23,0xF7,0x33,0xE6,0x2C,0xC8,0x16,0x1D,0xE0,0x7F,0x60,0x21,
+0x50,0xAD,0xBB,0x4A,0x8A,0xCF,0x4C,0xB6,0x36,0x8C,0x62,0x8E,0x8B,0x96,0xD3,0x80,
+0xCC,0x91,0x53,0x32,0x24,0x73,0x0B,0x3B,0xB5,0xB0,0xFB,0x24,0x9D,0x48,0x41,0x8E,
+0x17,0xD7,0xE2,0x22,0xA7,0x43,0xD7,0x16,0xEA,0x15,0x28,0xED,0xC6,0x7D,0x71,0x02,
+0x66,0xA1,0xA1,0x51,0x49,0x22,0xC0,0x3C,0xC6,0x08,0x86,0x3A,0x98,0xBC,0x1E,0x38,
+0x0D,0x26,0xB1,0xB4,0x5D,0x8F,0xF0,0xFF,0x00,0xD5,0xB8,0xCA,0xC3,0x89,0x2E,0xB4,
+0xE9,0x83,0x60,0x21,0x47,0xDC,0x66,0x0E,0xCD,0x53,0x56,0x71,0x76,0xFF,0x7B,0x8D,
+0x9F,0x28,0xA7,0x6A,0x42,0x57,0x54,0xEE,0x43,0xC7,0xA6,0x26,0x41,0x8A,0xD0,0xE0,
+0x97,0x9A,0x18,0xE2,0xF4,0xB7,0x8F,0xAF,0xC2,0x5F,0xFA,0x80,0xD4,0xC5,0x6D,0x73,
+0xA0,0xCB,0xC7,0xEF,0x20,0x3D,0x2F,0x86,0xC4,0xAC,0x43,0x36,0x1C,0x84,0x19,0xE5,
+0x69,0xCE,0x9A,0xE1,0xC6,0xE3,0xB0,0x1E,0x66,0x25,0x1D,0xB6,0x02,0xF9,0xA1,0x96,
+0x3B,0x2A,0xAB,0xAF,0x76,0x42,0x45,0xDF,0x8C,0xE5,0x8D,0x91,0x2B,0xF1,0xB2,0x88,
+0xCF,0xF1,0x99,0x2E,0x70,0x03,0x6B,0x5F,0x4F,0xF1,0xBD,0x3C,0x9C,0xDA,0x90,0x47,
+0x38,0x4A,0x61,0xB3,0x16,0x27,0x34,0x8A,0xFC,0x67,0x47,0x64,0x23,0x52,0x98,0xF5,
+0xFC,0x1D,0x08,0x07,0xFB,0x8C,0x3F,0xC0,0x07,0xB8,0x73,0x9B,0xD0,0xA3,0xE3,0x0C,
+0xF8,0xA0,0x46,0x23,0x37,0x5A,0x03,0x25,0x8F,0xDF,0x3A,0x7A,0x83,0x35,0xF9,0xFD,
+0x8B,0xEB,0x0A,0x5A,0xAE,0x39,0x49,0xF9,0xAB,0xA3,0xF3,0x0D,0x56,0xC6,0x93,0x27,
+0xF5,0xF2,0x72,0x99,0x03,0x4F,0x12,0x14,0x75,0x9E,0x7C,0x62,0xA8,0x60,0x9D,0x15,
+0x8D,0x6B,0x4B,0x74,0x4B,0x2D,0xCA,0x01,0xC8,0x9A,0x58,0x2C,0x86,0xC1,0xA6,0x4B,
+0xAB,0x19,0xB2,0x7B,0xAA,0x77,0x6D,0x44,0xF0,0x51,0x5C,0x7E,0x01,0x36,0x07,0xA9,
+0xCD,0xCC,0x96,0x24,0xCB,0xD7,0x0A,0x4C,0xC5,0x32,0x31,0xD1,0xEE,0xE7,0xB3,0xD5,
+0xDE,0xD2,0xBF,0x2C,0x4E,0xA6,0xF8,0xE1,0xB0,0x79,0xF5,0x79,0xD5,0x57,0xBC,0xBA,
+0x7C,0x50,0xF2,0xC7,0x5B,0xCE,0xDE,0x7F,0xDC,0x4C,0xF2,0xA9,0x7C,0x01,0x26,0x06,
+0xB1,0xE8,0xE1,0xED,0xDA,0xF1,0x08,0x6F,0x0B,0x8E,0x68,0x81,0x6D,0x76,0x9C,0x48,
+0x35,0x18,0x55,0x09,0xAD,0xF3,0x55,0x99,0x42,0x59,0xD4,0xC1,0xE9,0x4E,0x9B,0x95,
+0xC1,0xC3,0x67,0x88,0xEA,0xAA,0x3D,0xE3,0x93,0x68,0xF7,0x5F,0xC8,0xE5,0xA2,0xF6,
+0x95,0xA7,0x17,0xE8,0x7E,0xFD,0xCD,0x6D,0x6C,0xE0,0xBF,0x1A,0x59,0xCC,0x91,0x1A,
+0xDC,0xEF,0xB0,0x26,0x0A,0x35,0x8C,0xFB,0xD3,0x40,0x5E,0x58,0xBA,0xD8,0x81,0x64,
+0x1A,0x85,0xD6,0x98,0x48,0xE7,0xD6,0x61,0x65,0x1F,0xAA,0x5D,0xBD,0x71,0xA9,0x24,
+0x7A,0xD0,0xB3,0xE9,0x80,0x7F,0xCE,0x39,0x59,0x83,0xD2,0xB5,0x50,0xFD,0x6A,0xAE,
+0xAF,0xA4,0xFC,0x5F,0xC0,0xA2,0x9E,0x9E,0xB9,0x86,0xE0,0x3E,0x90,0x1F,0x34,0x45,
+0xB9,0x5A,0x5E,0x65,0x00,0x85,0x0E,0x74,0x58,0x1D,0xA0,0x52,0xC4,0x20,0x06,0xF4,
+0x88,0x8B,0xC0,0x46,0x2F,0x06,0x9F,0xE9,0xD4,0x2D,0x95,0x09,0xA4,0xA5,0x39,0x17,
+0xEB,0xBE,0x6F,0x2B,0x09,0xFF,0x90,0x9B,0x55,0xB5,0xC9,0xAF,0x32,0x25,0x22,0xBB,
+0xA8,0x79,0x78,0x67,0xDB,0x34,0x1E,0x32,0x68,0xB7,0xC3,0xA0,0x1E,0xD9,0x6E,0x13,
+0x7D,0x0D,0x37,0xD1,0x11,0xA3,0x0C,0x57,0xFE,0xC3,0x82,0x68,0xDF,0xA9,0xE1,0x31,
+0xF0,0x12,0xF9,0xAB,0x3C,0x2F,0x97,0xF7,0xDD,0xD2,0x80,0x4E,0xAD,0x94,0xC2,0xA3,
+0x7F,0x30,0x38,0xDB,0xE6,0x5B,0x91,0xEC,0x77,0x3A,0xB9,0x6E,0x3F,0x72,0x57,0x70,
+0xBD,0xE7,0x10,0x41,0x45,0xD3,0x6C,0x33,0x46,0x0E,0xA8,0x7B,0x0E,0x3C,0x05,0x94,
+0x82,0x04,0x70,0xC4,0xB6,0x65,0xD5,0x35,0xF3,0x6B,0xEB,0x95,0x2A,0x63,0x63,0x41,
+0x56,0x2D,0xFA,0x64,0x31,0x1B,0x2D,0xA5,0xED,0x78,0xE3,0xBC,0xE5,0x8B,0x3F,0x97,
+0xF3,0x72,0x33,0xB7,0xEE,0xE4,0x19,0x5E,0xB1,0xE7,0x87,0x9E,0xEA,0x81,0x3D,0xAA,
+0x29,0x69,0x47,0xB1,0x5C,0x4A,0xE6,0xA2,0x7B,0x0C,0xA2,0x74,0x1F,0x4B,0xBF,0xDA,
+0x73,0x3F,0xC9,0x77,0xCE,0x5C,0x38,0xAC,0x63,0xEC,0x13,0xEB,0x63,0xEE,0x4F,0xBC,
+0xEF,0x03,0x21,0x0F,0xD1,0x84,0x9C,0xBD,0x51,0xE2,0xB5,0x15,0x07,0x0D,0xFE,0x20,
+0x6F,0x4E,0xDB,0xCF,0xED,0x2E,0x05,0x3E,0x71,0xC9,0x00,0xD8,0xB9,0x17,0x27,0x5B,
+0x2B,0x54,0x48,0xBB,0xCA,0x12,0x1C,0x11,0x0A,0x10,0x1A,0x66,0xE8,0xDC,0x4A,0x5C,
+0x1C,0x05,0x97,0xB6,0xE8,0xA5,0x37,0xDE,0xB8,0x18,0x92,0xD9,0xEC,0xBA,0xC4,0x23,
+0x72,0x62,0x0C,0x61,0xE4,0x54,0x9B,0xD1,0x37,0x12,0x10,0x69,0xDA,0x5D,0xBE,0x87,
+0x02,0x49,0x8A,0x04,0x46,0x19,0x70,0x53,0xA6,0x0B,0x9A,0xF0,0x87,0x53,0x77,0x82,
+0xA5,0x2B,0x4C,0xDD,0x2A,0x8D,0xAD,0x09,0x3D,0xD7,0xB2,0xC5,0xB8,0x85,0xF6,0x92,
+0x62,0x2C,0x74,0x6B,0xBD,0x89,0xC8,0xA4,0x13,0x72,0xEA,0xA2,0xED,0x57,0xE1,0x86,
+0xFE,0x48,0x97,0xDA,0x8F,0x2F,0xC6,0x5A,0xCB,0x63,0xF5,0x06,0x95,0xCB,0xDD,0x6E,
+0x85,0xF6,0x8D,0x03,0xAF,0x9A,0xED,0x97,0x61,0xE0,0xC9,0x9F,0x55,0x4B,0x90,0x94,
+0x82,0xA7,0x46,0x6E,0xD4,0x80,0x34,0x29,0x5D,0xCF,0xEE,0x86,0x21,0x0F,0x8A,0x07,
+0xFD,0xA3,0x20,0xE0,0x66,0x08,0x3C,0x96,0xEA,0x00,0xCC,0xAD,0x2C,0x38,0xDB,0xD8,
+0x59,0x95,0xC7,0x9A,0xE9,0x8A,0x36,0x26,0x1B,0x0F,0xC0,0x01,0xFB,0x56,0xBC,0x43,
+0x5C,0xC8,0xC9,0x53,0x78,0x00,0x2F,0xBF,0x56,0x8D,0x62,0xEA,0x9E,0x26,0x97,0xC5,
+0x4C,0xF7,0x1F,0xD2,0xE3,0x28,0xF3,0x8A,0xC2,0xD7,0x0E,0x37,0x47,0x81,0xF5,0x03,
+0xEF,0x90,0x33,0xC5,0x20,0x18,0xE7,0x27,0xEC,0x89,0x35,0x96,0x4B,0x59,0xD3,0x78,
+0x7D,0xE2,0x0E,0xE6,0x03,0x1A,0xF6,0x01,0x60,0x29,0x18,0x0D,0x31,0xD4,0xCC,0xB6,
+0xAE,0x70,0xE8,0x73,0xA9,0x23,0x1E,0x21,0x14,0x32,0xC2,0x0B,0x41,0x5B,0xEE,0x77,
+0x4A,0x41,0xA6,0x21,0x98,0x32,0x2A,0x34,0x9C,0xED,0x61,0xF6,0xDB,0x99,0x39,0x5F,
+0x9F,0x65,0xF9,0x47,0x2D,0x71,0x4F,0xDA,0x2A,0xEB,0x92,0x4F,0x5E,0xA6,0xDA,0x3F,
+0x49,0xAA,0x11,0x1B,0x33,0x79,0x5C,0xF3,0x54,0x7B,0x15,0xB7,0xFE,0x72,0xF3,0xB5,
+0x74,0xA5,0x1B,0x19,0x6F,0x1D,0xC3,0xD1,0xAB,0x80,0xCA,0x83,0x2D,0xD7,0xAC,0x7C,
+0x04,0x50,0xD1,0x9B,0xA5,0x38,0x28,0x3B,0x05,0x7C,0x78,0x7C,0x2B,0x0D,0xB7,0x08,
+0xBA,0xF5,0x42,0xA5,0x0D,0xC4,0x64,0x17,0x7A,0x25,0x2E,0x16,0xBC,0xF8,0x31,0xFF,
+0xFA,0xF2,0xEB,0x8D,0xBB,0x30,0x3B,0x12,0xA8,0xBF,0x6C,0x4C,0x02,0x3E,0x5B,0x99,
+0x70,0x1F,0x67,0x4E,0x87,0x48,0xA7,0xFA,0x30,0xE7,0xA4,0x54,0x73,0x5E,0x0E,0xFC,
+0x9B,0xDF,0x85,0x10,0x67,0x7A,0xA2,0x71,0xED,0x40,0xE4,0x04,0xC5,0x8B,0x7A,0xB3,
+0x2A,0x8B,0xBA,0x22,0x86,0x3A,0x39,0x1D,0xCA,0xAA,0x24,0x94,0xFF,0x9D,0x84,0x11,
+0xC9,0xEB,0x3F,0x1D,0x0A,0x0F,0x09,0x46,0x49,0x37,0x0B,0x05,0xDC,0xAC,0x55,0x8F,
+0x65,0x7D,0xBF,0x06,0x8B,0x53,0x91,0xE0,0xB0,0x45,0x2D,0x0A,0xB1,0xCF,0x60,0x20,
+0xCD,0x51,0x43,0x4A,0xB6,0x59,0x93,0xEF,0x7B,0xEC,0xFF,0x84,0xFD,0x8C,0xA7,0x37,
+0x77,0x4E,0xAC,0x23,0x2E,0xC6,0x75,0x31,0x38,0x9A,0x8E,0xF7,0xE1,0x8F,0xC7,0xFD,
+0x0B,0xA1,0x7D,0x97,0x1B,0xAB,0x16,0x9E,0x98,0x92,0xEF,0x90,0xBE,0xE9,0x12,0xD9,
+0x64,0x9A,0xCD,0x98,0x6E,0x6F,0x5D,0x36,0xE9,0x3F,0x6A,0x62,0xB6,0xFA,0x0C,0xF0,
+0xD8,0x33,0x9B,0x02,0x02,0x68,0x68,0xE6,0x81,0xA1,0x7F,0x44,0x5D,0x58,0x8E,0xBD,
+0x96,0x22,0xEC,0xB8,0xD5,0xF2,0xAA,0xCE,0xBE,0xB1,0xFE,0x92,0x77,0x95,0x36,0xAE,
+0x4B,0xA6,0xD4,0xBF,0x9C,0x4E,0x7D,0x8E,0xBC,0x47,0x89,0xCF,0x93,0x11,0xC6,0x1A,
+0x28,0x87,0x7F,0x86,0x4D,0x6D,0x4C,0x10,0xE5,0x3D,0xCE,0xA7,0x12,0xE5,0x1D,0x28,
+0xC4,0x16,0x56,0xB5,0xB2,0x25,0xC4,0x55,0xB2,0xB3,0x5A,0x57,0x72,0xB1,0x79,0x58,
+0x56,0x64,0x6B,0x96,0x52,0x17,0xC1,0xDE,0x0D,0x01,0x52,0xDF,0x35,0x1F,0xF4,0xE4,
+0x99,0xD3,0x40,0xB4,0x91,0x27,0xD5,0x73,0x4C,0x81,0x54,0xF1,0xB4,0xEB,0x2F,0xD6,
+0x2B,0x6C,0xC8,0xBC,0x22,0xDD,0x43,0x2B,0x68,0x54,0x32,0xAE,0x29,0x1C,0x94,0x2E,
+0xD2,0x9F,0x39,0xC7,0xD9,0xE9,0x9C,0xD4,0xC3,0x1E,0xDF,0xA5,0x9D,0xD8,0xC3,0x47,
+0x23,0xCC,0xAF,0xDD,0x51,0xA0,0xFB,0x35,0x15,0xFB,0x13,0x99,0xB9,0xDC,0x7E,0x09,
+0xF9,0x19,0x5C,0xB7,0x75,0x69,0x87,0x42,0x76,0x27,0x8A,0xD3,0xC0,0xAF,0x35,0x45,
+0xCB,0xE7,0xFA,0xB9,0xAB,0xE6,0xBA,0x2D,0x00,0xCA,0x27,0x88,0x03,0xD1,0x2C,0x3D,
+0x95,0xC9,0x5B,0x82,0x16,0xC2,0xBE,0x63,0x62,0xDF,0x6F,0x50,0xEE,0xA9,0xB5,0x04,
+0xDC,0x89,0xE7,0x55,0x34,0xB2,0x31,0xA2,0x0C,0xC8,0x83,0x4D,0xB8,0x33,0x09,0xAD,
+0xE6,0xD7,0x26,0x3A,0x18,0x1C,0x2C,0x75,0x6D,0xE2,0x6D,0x5A,0xCB,0x42,0x7F,0xEE,
+0x6A,0x8C,0x13,0x0A,0xDE,0x22,0xF1,0x85,0xC0,0x21,0x79,0x6A,0x2E,0x29,0xF8,0xFE,
+0x53,0x39,0x65,0x5F,0x13,0xCC,0x77,0x3E,0x93,0xD0,0x63,0xFC,0xBB,0xCD,0x5D,0x2F,
+0x3E,0x0E,0x10,0xF4,0x9D,0x3C,0xE3,0x69,0x18,0x30,0x66,0xCE,0xF0,0xBB,0xF6,0xE8,
+0xAD,0x9B,0x5F,0x49,0x1C,0x60,0x7B,0xCF,0xF8,0x71,0xD0,0x15,0x78,0xB3,0x44,0x57,
+0x3B,0x53,0x1E,0x3D,0x1A,0xD9,0x88,0x79,0x72,0x58,0x04,0xB5,0x75,0x84,0x15,0x88,
+0x48,0x4D,0x63,0x85,0xB8,0x87,0x01,0xF9,0xAC,0xC0,0xE2,0x2A,0x7B,0x4D,0x10,0xD5,
+0x43,0x06,0xB3,0xDE,0xFC,0x52,0x7E,0x44,0x7E,0x5A,0xA0,0x70,0xA1,0x14,0x26,0x91,
+0x42,0xE1,0xC1,0x40,0xE4,0xE3,0x9E,0xDB,0x66,0xA0,0xE1,0x36,0xA4,0x30,0x69,0x67,
+0xB0,0x59,0xE0,0x60,0x46,0xBD,0x17,0x5B,0x92,0x19,0xB2,0x6E,0xA3,0x05,0x05,0xB7,
+0x4E,0xFB,0xDA,0x76,0xD1,0x8E,0xFD,0x74,0xCD,0xEA,0x0C,0x3D,0xB0,0x20,0x17,0x84,
+0x88,0x0B,0xE4,0xAB,0x1F,0xD7,0x41,0x24,0xBB,0x07,0xA1,0x66,0x45,0x90,0xD6,0x25,
+0xFF,0xAF,0xE5,0x44,0xF2,0x8C,0xEC,0x52,0xB8,0x38,0x07,0xA9,0x34,0xF0,0x83,0x40,
+0x5E,0xC4,0x0C,0xF7,0xE8,0xF8,0xA8,0xC1,0x80,0x68,0xAE,0xD6,0xD0,0x74,0x73,0xF4,
+0x50,0xD2,0xD2,0x65,0x6B,0x61,0x94,0x6B,0x3C,0xE5,0x00,0x91,0xA8,0xE8,0x4F,0x1C,
+0xF7,0x0F,0x82,0x25,0x14,0x07,0x1A,0x6F,0xDD,0x6D,0x67,0xD8,0x8B,0xD9,0x9E,0x82,
+0xA4,0xDC,0x4A,0xB6,0x61,0xC3,0x51,0xC7,0x8D,0xA3,0xDB,0x81,0xCA,0xAD,0x08,0x4A,
+0xA8,0xC6,0x51,0x80,0xA6,0x8F,0x12,0xD0,0xF1,0xC5,0x2B,0x24,0x7E,0x69,0x5F,0x23,
+0xB4,0xE3,0x9C,0x37,0x76,0xDE,0xBD,0xA9,0xBA,0xCE,0x70,0xF4,0x98,0xFC,0x8C,0xB1,
+0x24,0x9D,0x64,0xB0,0xF1,0x3B,0xD6,0xB9,0x7F,0x93,0x71,0xE2,0x3E,0xF2,0xBE,0x4F,
+0xA2,0x6A,0xF3,0x45,0xC1,0x58,0x7C,0x4B,0x83,0x57,0x08,0x19,0x6C,0xA3,0x3A,0xB4,
+0xC2,0xA0,0xEF,0x46,0x11,0x09,0xD3,0x32,0x1E,0xB9,0x9F,0xF5,0x49,0x48,0xF0,0x5E,
+0x6C,0x3A,0xAA,0xF9,0x3C,0xD5,0x50,0x02,0x5C,0x06,0x3F,0x14,0x76,0x7A,0x41,0x0A,
+0x34,0xC2,0x8B,0x5B,0x9E,0x9F,0xDE,0x14,0x5E,0x4C,0xB3,0xB7,0x00,0x51,0xCA,0x9F,
+0x8A,0x04,0xE1,0x3D,0xC4,0x05,0x0C,0x56,0x01,0xB8,0xB6,0x01,0x40,0x56,0x63,0xB7,
+0xFB,0x64,0xB4,0x58,0xDC,0x5D,0x94,0x9E,0x9D,0xC0,0x5E,0x3D,0xCA,0xBB,0xEF,0x74,
+0x4D,0xB1,0xC0,0x17,0x8C,0xFA,0x49,0xDE,0x98,0xF2,0xD5,0xDD,0x21,0x7B,0x0D,0x2A,
+0x77,0xA7,0x3E,0xB5,0x1C,0x10,0x6E,0x1E,0x03,0xB2,0xB9,0x3C,0x90,0x2F,0x32,0x18,
+0x54,0x96,0xEF,0x2B,0x8D,0x8D,0xED,0x31,0x33,0x87,0xE2,0xB0,0x73,0x4F,0xB7,0x27,
+0x39,0xF5,0xDA,0x84,0x82,0xFF,0x14,0x17,0xAB,0xDB,0x44,0x31,0xDF,0xD9,0x37,0x3C,
+0x75,0xB6,0x1D,0x93,0x0C,0x56,0xDF,0xC5,0xA9,0xD1,0x4B,0x0C,0x77,0xF5,0xCB,0x70,
+0x69,0xB5,0x7D,0x59,0x7F,0x20,0x9C,0xB4,0x4F,0x4E,0x95,0x94,0xCD,0xEA,0x24,0x19,
+0x36,0xD3,0xA8,0x7D,0x18,0x28,0x3C,0xD5,0x2C,0x23,0x3A,0xA1,0xB1,0x05,0xF5,0xAD,
+0x3E,0xC0,0xB6,0x54,0xEA,0x85,0x4D,0x50,0x67,0xE7,0x92,0xD4,0xDE,0x3E,0x45,0xA2,
+0xD5,0x62,0x34,0x19,0xCC,0x1B,0x25,0x45,0x52,0xE0,0x42,0xB8,0x62,0x97,0x13,0x38,
+0xFF,0xAF,0x8C,0x0A,0x1A,0x0B,0x1A,0xC4,0x90,0x7A,0x6A,0x6F,0x2C,0x86,0x64,0x82,
+0x1B,0x2B,0x7C,0xBE,0x47,0xFD,0x18,0xB3,0x47,0xC6,0x2A,0x26,0xF1,0x02,0x5C,0x85,
+0x9A,0xDF,0xA7,0x8C,0x2F,0x87,0x41,0xF4,0x76,0xE5,0xB4,0xF7,0x92,0x23,0xF7,0xBC,
+0xFA,0x8B,0xC3,0xFC,0xDF,0x09,0x16,0x60,0xFE,0xAD,0xF1,0x08,0x7E,0xB2,0xDE,0x8F,
+0x65,0x6D,0x5B,0x22,0x2A,0xC8,0xB7,0xD0,0xF2,0x01,0x00,0x07,0xD8,0x88,0xFC,0x51,
+0x1D,0xF1,0x67,0xCA,0x8E,0xD9,0x6F,0xCF,0xFC,0xA7,0xFE,0x35,0x44,0xEC,0x1F,0xE0,
+0xDD,0x71,0x2A,0x30,0x17,0x5A,0xC5,0xF3,0xD7,0x12,0x33,0x15,0x3F,0x52,0x05,0x39,
+0xA9,0x35,0x30,0xA3,0x0E,0x75,0xF9,0xD4,0x0E,0x08,0x8D,0x6E,0x38,0x03,0xCE,0x54,
+0xA4,0x02,0x61,0x7C,0x25,0xBA,0x4E,0xF6,0x06,0x80,0x32,0xDC,0x47,0x07,0xA8,0xDA,
+0x73,0x6C,0x06,0xE7,0x89,0xB5,0xBF,0xFA,0x0C,0x02,0x82,0x53,0xE3,0x31,0x4F,0xA0,
+0x16,0x1C,0x2D,0x61,0x62,0x37,0xF2,0x58,0x15,0x88,0x1B,0xC2,0xE6,0x6C,0x41,0x69,
+0xCF,0xBB,0x4F,0xA7,0xBF,0x6D,0x66,0x34,0xC9,0xA0,0x2E,0x59,0xF6,0x53,0x97,0xE8,
+0xC3,0x63,0x69,0xDC,0x1E,0x33,0x48,0x0F,0xDD,0x90,0x83,0x9A,0x55,0x34,0xBB,0xFF,
+0xB9,0xEE,0x76,0x12,0x85,0x93,0xC4,0x22,0xCC,0x92,0xA5,0xB9,0xC7,0x46,0x86,0xDC,
+0xC9,0x61,0x54,0xD3,0x83,0x88,0xB0,0xF8,0x24,0xAB,0x85,0x13,0x14,0xD4,0x60,0x49,
+0x53,0xA3,0x83,0xFB,0x7E,0x57,0x38,0x5B,0x10,0xBA,0x90,0x22,0xF0,0xE5,0x2E,0x1B,
+0xD6,0x9C,0x60,0x9B,0xC7,0x51,0x8E,0xA8,0x75,0xF9,0x7E,0x97,0x25,0xC1,0x71,0x7D,
+0x76,0x48,0x49,0x11,0x3F,0xC1,0xF0,0x2F,0x66,0xF1,0x57,0x89,0xF3,0x0E,0x99,0x21,
+0xA5,0xED,0x16,0xD8,0x0B,0x3A,0x0F,0xF0,0xF9,0x95,0x75,0xD5,0xCE,0x01,0x93,0x23,
+0xA3,0x37,0x0D,0xAC,0xF4,0xC6,0xA1,0x42,0x12,0xB0,0x9F,0x1F,0xBE,0xF4,0x59,0xA1,
+0x29,0x2E,0x9C,0x35,0xF8,0xE0,0xDA,0x9A,0x44,0xDA,0xE0,0x46,0xF9,0xA2,0x3B,0xE4,
+0x2C,0x0A,0xD3,0xC3,0xBE,0x1A,0xC2,0xDB,0xA4,0x6B,0x7F,0x5E,0xF8,0x45,0x49,0x7A,
+0x2B,0x3F,0xBF,0x13,0xE6,0xA3,0x36,0x88,0x2D,0x35,0xFF,0xFC,0x0A,0xFD,0x68,0x5A,
+0x38,0x1A,0xAD,0x20,0xB5,0x50,0x69,0x36,0xC7,0x06,0xD0,0x6B,0xF4,0x5F,0x52,0x4C,
+0xCD,0xAA,0x6C,0x81,0xEE,0xBD,0x1F,0x9B,0x7B,0x5F,0x80,0xA5,0x32,0xAF,0x6C,0x91,
+0xBC,0xCA,0x39,0xE4,0x21,0x82,0x1C,0x3D,0xD6,0x04,0xF6,0x48,0x45,0x0B,0x6D,0x7E,
+0x58,0x4E,0xC9,0x50,0x5E,0xD2,0x24,0x94,0x92,0x70,0x65,0x52,0xE4,0x60,0x84,0xCD,
+0x20,0xD2,0xF5,0xB8,0x19,0x5F,0x98,0x3A,0xAE,0xE9,0xCF,0xD1,0xEA,0x76,0x5A,0x5F,
+0x03,0xE3,0x24,0x26,0x50,0xD7,0x79,0x5D,0x20,0x8F,0xCB,0xAE,0x4D,0xAB,0x0A,0x1F,
+0x42,0x97,0xB2,0xEE,0x09,0x19,0x29,0xE1,0x6B,0x4B,0x63,0xDB,0x1E,0x78,0xC2,0x8C,
+0xF6,0x53,0xE5,0x87,0xAC,0x7F,0x55,0x11,0x28,0x07,0x74,0x1C,0x12,0x62,0xD9,0xBA,
+0x10,0xC6,0x36,0x15,0x7C,0x74,0x1E,0x4A,0x87,0x56,0x0D,0xCC,0x0E,0x47,0x14,0x0D,
+0xB6,0xC8,0x04,0xEB,0x6A,0x29,0xDB,0x4B,0xEC,0xB3,0x1D,0x4B,0x9E,0x39,0xEC,0x8A,
+0xE4,0x99,0x80,0x10,0x91,0xED,0x27,0x32,0x46,0xD0,0xEF,0x7B,0x18,0xCE,0x7B,0x7F,
+0xC1,0x72,0x4A,0xFA,0x7D,0x03,0xBA,0xA5,0xE9,0x81,0x96,0xAB,0x78,0x04,0x67,0x7C,
+0xFE,0x40,0xFB,0xAE,0x9C,0xBC,0xF8,0x05,0x6A,0x5D,0xA6,0x86,0xD6,0x9E,0x22,0xC3,
+0xBD,0x25,0x4E,0x40,0x57,0xBB,0xA9,0x68,0xFB,0x9F,0x7A,0xE8,0xEC,0xC0,0xE3,0xAC,
+0x3C,0xD1,0x95,0x72,0x79,0x3B,0xE8,0x6E,0xEF,0xAF,0xD7,0x2B,0x23,0x77,0xC8,0x8E,
+0xA1,0x26,0x2E,0x8A,0x26,0xEE,0xCC,0x08,0x79,0x55,0x8F,0x98,0x91,0xC8,0x40,0x86,
+0x15,0xE2,0x79,0xE3,0x2D,0xA4,0x67,0xE5,0xA6,0x61,0x70,0x63,0x68,0x3B,0xB1,0xFD,
+0x31,0xE6,0xC4,0xAD,0x11,0x41,0xB1,0x29,0xC1,0x28,0x91,0xEB,0x99,0x68,0x27,0xE7,
+0x48,0x95,0x8F,0xE1,0x5B,0x9D,0xD2,0xB0,0xBD,0xE1,0xE6,0xCF,0x43,0xBD,0xD4,0x8D,
+0x8B,0xEB,0x96,0x99,0x00,0x70,0xA4,0x1D,0x80,0x6E,0x89,0x11,0x71,0x43,0x72,0x83,
+0x66,0x93,0x0F,0xA0,0xD8,0x65,0xC6,0x55,0x84,0x4A,0xC7,0xAC,0x2F,0x6D,0xD3,0xB8,
+0x30,0x09,0xB3,0x09,0xC5,0x72,0xA8,0xB9,0x0B,0x3A,0x06,0x8E,0x66,0x2D,0x6F,0x6F,
+0x43,0x78,0xC5,0x4A,0xD2,0x58,0xC9,0x57,0x16,0x94,0xD1,0xA2,0x5C,0x73,0xAE,0x00,
+0xA6,0x13,0x42,0x5A,0xE2,0x9B,0x64,0x43,0xCB,0xAA,0x21,0x64,0xD0,0x28,0x9B,0x30,
+0x33,0xF7,0xE7,0x8B,0x74,0x6A,0x37,0x59,0x4D,0x44,0x9A,0xA9,0xE9,0x9D,0xED,0x65,
+0x78,0x81,0x4C,0x4C,0x46,0x8A,0xBC,0x5C,0xD9,0xB4,0xCD,0x27,0x84,0xAA,0x98,0xCE,
+0xF0,0x89,0xFE,0xF3,0x9D,0xCB,0x5C,0xEA,0x41,0xE8,0x6B,0xA6,0x17,0x3F,0xD7,0x73,
+0xFD,0xBE,0xAF,0x2C,0x3D,0xE2,0xD6,0x3E,0xB2,0x51,0xDD,0xA0,0x81,0xF7,0x96,0x07,
+0xF3,0x77,0xAA,0x71,0xA2,0x7A,0x08,0xD8,0x3B,0x0F,0x5D,0x02,0xF2,0xE9,0xEB,0xBF,
+0x85,0x46,0x79,0x74,0x84,0xA8,0xBD,0xD4,0x01,0x39,0xF9,0xD7,0x09,0x5F,0x03,0x23,
+0x73,0x43,0x5D,0x3B,0x9C,0xE9,0x47,0x92,0xB0,0xA6,0xE1,0x37,0x97,0x5E,0xE4,0x51,
+0x66,0x52,0x69,0x0A,0x2F,0x45,0xF7,0xDF,0x6C,0x96,0xCC,0xB4,0x3F,0x53,0x19,0x38,
+0x55,0x41,0x4C,0x18,0x70,0xFB,0x04,0x8C,0x5F,0xB9,0x5B,0x5E,0x29,0xAD,0xBB,0x02,
+0xA2,0xD6,0xB9,0x9E,0x5A,0x4E,0x25,0x4B,0x6E,0xB0,0xEF,0xA5,0x0D,0xE2,0x4D,0x07,
+0xC7,0xA7,0xD9,0xCB,0x59,0xE8,0x1A,0x84,0x35,0xC6,0x02,0x08,0xE2,0x95,0xE9,0x06,
+0xFE,0x4A,0xA1,0x52,0xDE,0x49,0xF8,0x73,0x83,0x89,0x76,0xDD,0x2C,0x4D,0x30,0x30,
+0x16,0x32,0x3D,0x6E,0x62,0xE7,0x75,0x34,0x1A,0x23,0xF5,0xE1,0xBE,0x43,0x26,0xEE,
+0xA8,0x28,0xE4,0x15,0x6F,0x92,0xBE,0x63,0x21,0x25,0x7C,0x18,0xFF,0xB9,0x3E,0xA8,
+0x60,0x69,0x90,0x83,0x3F,0x2E,0x70,0x3A,0xE5,0x8D,0x09,0x53,0x6C,0xEA,0xED,0x60,
+0x53,0x7A,0xB5,0x91,0x58,0x39,0xD3,0x16,0x3C,0x4B,0x6B,0xF4,0x7E,0xA9,0x01,0x7E,
+0xC1,0x9C,0x20,0x42,0x13,0x62,0xD8,0xC6,0x6D,0x32,0xBB,0x5B,0xC9,0xB5,0x24,0xB3,
+0x56,0x8E,0xEA,0x27,0x61,0x41,0x4A,0xFB,0xBA,0xA9,0xDC,0x35,0x0C,0xBF,0x88,0x11,
+0xAD,0xDC,0xBB,0xA3,0x9D,0x38,0x8E,0x00,0xD9,0x5B,0xEC,0x9F,0xF9,0x39,0x7F,0x86,
+0xE8,0x94,0x33,0x5C,0xBE,0x76,0x1B,0xF6,0x37,0xE0,0x21,0x19,0xB0,0x71,0xD8,0x48,
+0xBC,0xAB,0x01,0xED,0xFC,0xD6,0xA4,0x17,0xEB,0xD0,0x0C,0x9A,0x0F,0xDF,0x42,0x0D,
+0x34,0x56,0xA2,0x32,0xAE,0x1D,0x9C,0x13,0xC5,0x91,0x8C,0x9C,0xFD,0x84,0x31,0xA2,
+0x06,0xD7,0x56,0xE9,0xEF,0x1B,0x1C,0x3D,0xF5,0x3C,0x4F,0x88,0xDF,0x4B,0x86,0x89,
+0xA5,0x7F,0x91,0xDE,0x21,0x96,0x03,0x47,0x0B,0x36,0xC4,0xD5,0x8E,0xCF,0x7D,0xDB,
+0xCC,0xCB,0x55,0x89,0x8A,0x7B,0x49,0x4C,0x3F,0xC9,0x3F,0x0A,0xF5,0x36,0x8E,0x2A,
+0xA7,0x22,0xE6,0x28,0x94,0xC3,0x3A,0x31,0x8B,0xA0,0x68,0xCE,0xFE,0xE4,0xFB,0xBE,
+0xEB,0x5B,0x95,0x63,0xF7,0x5A,0xE6,0x7B,0x42,0xD7,0x4C,0xB2,0x94,0x3E,0x2E,0x4D,
+0xE6,0x0C,0xE0,0xA8,0x80,0x26,0xC2,0xB2,0x20,0x81,0x0B,0xF7,0xCB,0x88,0x2B,0xB9,
+0xDF,0xE1,0x98,0x31,0xE2,0x6E,0xD7,0x6A,0x04,0xCF,0xB6,0xF3,0xF0,0xD6,0x05,0x18,
+0x0C,0x29,0x0B,0x62,0x8F,0x24,0xFF,0xB8,0xFE,0x97,0x05,0x65,0x73,0xFB,0x35,0xC4,
+0x4F,0x5A,0x7A,0x14,0xEE,0xCA,0xD5,0xAF,0x50,0x40,0x29,0x78,0x1C,0xC1,0x6B,0x05,
+0xCD,0x59,0x84,0x40,0x71,0x2A,0xCD,0x1E,0x2E,0xDC,0x0E,0x3E,0x16,0x4E,0xDB,0x87,
+0x1C,0xCC,0x60,0xE5,0x22,0x30,0x3C,0x88,0xC0,0x67,0xC3,0xB8,0x43,0x77,0x6E,0xF1,
+0xB5,0x9A,0xFA,0x59,0x1A,0x99,0x6C,0xF7,0x82,0x2D,0x01,0x32,0x00,0xB0,0x79,0xBD,
+0x0A,0x12,0xF2,0xEB,0xFA,0x2F,0x2D,0x2C,0xDE,0x8B,0x80,0xAA,0xBD,0x23,0xEC,0xF2,
+0x37,0x99,0x04,0x0D,0x4E,0xAB,0xDD,0xC8,0x65,0x1B,0xA5,0x48,0xCC,0x55,0xAF,0x81,
+0x6A,0x97,0xCD,0x08,0x90,0x4D,0x45,0x57,0x3B,0x9B,0x07,0xC1,0x74,0x26,0xB1,0xFC,
+0x7B,0xE0,0x77,0x46,0x4A,0x25,0xA2,0xAE,0xD2,0xF0,0xA6,0x72,0xC4,0xE7,0x10,0x09,
+0x1D,0x5E,0xB1,0x2C,0x98,0x67,0x38,0xF4,0x26,0xF5,0x10,0x2D,0xEC,0xA7,0x17,0xA0,
+0x51,0x27,0xC2,0x67,0x0F,0xAD,0x5D,0xE6,0x98,0x93,0x7A,0xEB,0x59,0x86,0x3D,0x67,
+0x1E,0x91,0x17,0x13,0xD2,0xED,0xFA,0xB6,0xAA,0x18,0x9A,0xEE,0x07,0x6D,0xFD,0x85,
+0x6D,0x3E,0xE5,0x48,0xAB,0x42,0x2A,0xE7,0xED,0xA4,0x17,0x40,0x54,0xD4,0x09,0xDD,
+0xF3,0x1D,0xD4,0x99,0x28,0x6D,0xB7,0x76,0xD8,0xFF,0x9B,0x70,0x6B,0x37,0x69,0x58,
+0xD5,0x1F,0xC5,0xBA,0x99,0xB6,0xF1,0x66,0xBB,0x0D,0xAB,0xDA,0x03,0xD0,0xB3,0xA1,
+0xC2,0x53,0x86,0x7D,0x52,0x64,0x58,0xE8,0xB1,0x02,0x96,0xD8,0x4F,0x78,0x9F,0x5D,
+0x3B,0x5C,0xA0,0x0F,0x7A,0xA6,0x8F,0x72,0x49,0x7C,0x06,0x5F,0xDE,0x16,0x43,0x9F,
+0x1F,0x03,0xC6,0xDA,0xDA,0xC7,0x87,0x15,0x24,0xD3,0x33,0x3C,0x6A,0x6A,0xAC,0x4E,
+0x5F,0xBF,0x11,0x93,0x63,0x36,0xBC,0xA6,0x8A,0x04,0x1F,0x21,0x4B,0xC5,0xD1,0x79,
+0x12,0x54,0xB3,0x11,0x0B,0x23,0x22,0x80,0x8D,0xD4,0x73,0x14,0xD1,0x79,0x78,0x2F,
+0xF8,0x71,0x58,0xDB,0x5E,0xC0,0x5A,0x2D,0xAC,0x6C,0x81,0x34,0xF6,0x56,0x44,0x36,
+0x4C,0x95,0xDC,0x2B,0x5C,0xB7,0xAC,0x70,0x10,0x2C,0xC8,0xE3,0xF1,0x8B,0xC0,0x0E,
+0xBA,0x90,0xF8,0x64,0x50,0x13,0xAE,0xB5,0xC7,0xB7,0xAF,0x8D,0xFC,0xD9,0xF4,0xB4,
+0xCA,0xF0,0xAC,0x00,0x07,0x87,0x20,0x45,0x8F,0xF2,0x50,0x05,0xCF,0x35,0x65,0x9D,
+0x8C,0x77,0x82,0xC0,0x29,0xBC,0x7E,0xE4,0xCD,0xB8,0x92,0x8F,0x93,0xE3,0xAA,0x75,
+0x64,0x0F,0x1E,0xFC,0xF1,0xA3,0x6F,0x40,0x6B,0x46,0xA0,0x81,0x22,0x7F,0xCE,0x96,
+0xE5,0xC3,0x46,0x97,0xBF,0xA7,0xD2,0x64,0x62,0xCB,0xC9,0x7D,0x27,0x9F,0x45,0xA4,
+0x76,0xB7,0x02,0x8D,0x83,0x80,0xFD,0x7D,0x78,0x75,0xB2,0xA4,0x4A,0x98,0x14,0x6F,
+0xA1,0x19,0x1F,0xA1,0xF9,0x89,0x12,0xE3,0x68,0xC4,0xF4,0x7F,0xD3,0x44,0x77,0x25,
+0x3A,0xCE,0x71,0xC6,0x08,0x85,0x1D,0x4F,0xEA,0x74,0x7B,0x75,0xA9,0xE0,0x41,0xC2,
+0xE1,0xA5,0xC8,0xE8,0x20,0x47,0xCA,0xD5,0xCA,0x68,0xFE,0xBA,0x9B,0x51,0x15,0xFD,
+0x27,0x7C,0x6F,0x8A,0xB4,0x2B,0x90,0x08,0xE2,0x5D,0x65,0x66,0x1A,0x41,0x2A,0x2B,
+0x54,0xD3,0x9D,0xD1,0x82,0x51,0x34,0xEF,0xF8,0xE3,0x1E,0xBF,0xAF,0x60,0x00,0xEC,
+0x9A,0xA9,0x10,0xCE,0x0E,0x7C,0x94,0x74,0xFA,0xC5,0x3D,0xAE,0x8C,0xF2,0x72,0xD1,
+0xBD,0x39,0xD0,0x24,0x7E,0x28,0xF0,0x14,0xD0,0xD6,0x85,0x63,0x68,0x57,0xA3,0x44,
+0x95,0xA3,0x12,0xF3,0xF6,0x8B,0x2F,0xE9,0xC1,0xC3,0xB4,0x57,0x3A,0xB3,0x92,0x0A,
+0x57,0x1C,0x3B,0xEE,0xB6,0x5C,0x66,0x55,0x9B,0x11,0x2E,0x15,0x52,0x54,0x48,0xF3,
+0xDD,0xBC,0xEF,0xC7,0xC8,0xDB,0xF6,0xAD,0x93,0x38,0x30,0x06,0x0E,0x82,0x87,0x1B,
+0xEA,0xC9,0x44,0xAA,0xE7,0x31,0x61,0x9E,0xDA,0xD9,0xB8,0x61,0xD2,0x19,0xB2,0x33,
+0x9E,0xCF,0x9E,0xB1,0x49,0x83,0x9D,0x61,0xFF,0x33,0x72,0x8A,0x50,0x69,0x47,0xF9,
+0xD5,0xBF,0x6B,0xDA,0xD2,0xA0,0xB7,0xEE,0xDB,0x49,0x6B,0x88,0xC2,0xF2,0x95,0xB8,
+0x31,0x8E,0x25,0x88,0xE3,0xB1,0x83,0xFB,0x53,0x96,0xC8,0x75,0x58,0x30,0x42,0x90,
+0x94,0x5F,0xB0,0x6C,0x5B,0x9B,0x4E,0xE8,0x23,0xF2,0x9C,0x15,0xC8,0xF0,0xA8,0xB7,
+0x06,0x2D,0x8D,0x4F,0x78,0x99,0x5F,0xCE,0xAF,0x52,0xB1,0x8E,0xB2,0x7D,0xB7,0x79,
+0x0F,0x6A,0x98,0xB0,0x14,0x9E,0x6A,0x1E,0x64,0xFB,0x63,0x00,0xAE,0x7E,0xD7,0xB3,
+0x7F,0x9F,0x52,0x32,0xDE,0xBB,0x81,0xF4,0xCA,0x07,0xD1,0xFF,0xA8,0xA4,0xCC,0xC7,
+0xE4,0xAA,0x7A,0xEE,0x56,0xF2,0xE6,0x15,0xE5,0x90,0x3B,0xCC,0xDD,0x0F,0xA1,0xF0,
+0x32,0x65,0x92,0xB2,0x48,0xFA,0xF5,0x3C,0x9B,0x00,0xBC,0x34,0x7D,0xDB,0x88,0x7A,
+0xFE,0x39,0x0E,0xAA,0xD4,0x19,0x44,0x58,0xAE,0x9B,0x60,0x1C,0xD6,0xE2,0xEB,0x5B,
+0xF9,0x68,0xC5,0xC7,0xAF,0x03,0x9D,0xE6,0x92,0xB4,0x47,0x05,0xA2,0xA6,0xF1,0xC8,
+0x19,0xE3,0xF7,0xC2,0xC6,0x0A,0x61,0x6B,0xDC,0x09,0x43,0x21,0x6E,0xFE,0x9A,0x49,
+0x85,0x87,0x14,0x73,0xF4,0xAC,0x6F,0x95,0x04,0x18,0x5C,0x85,0x16,0x62,0xA6,0xA1,
+0x27,0x07,0x4A,0xFA,0x03,0x83,0x86,0x70,0x99,0xF6,0xCB,0x69,0x1D,0x8F,0xEC,0x0A,
+0x37,0x38,0x9C,0x7B,0x98,0xAB,0x5A,0x45,0x0D,0xAC,0xA7,0xB4,0xC4,0x28,0x8E,0xCC,
+0x86,0x6C,0xA3,0x49,0x1D,0x8B,0x95,0x59,0x25,0x7B,0x65,0x2E,0xAF,0x91,0xA0,0x17,
+0x22,0x5A,0x44,0x33,0x92,0x09,0x9F,0xE9,0xD4,0x74,0x69,0x82,0x78,0xFF,0xC7,0x8C,
+0x1F,0x55,0x4E,0x31,0x15,0xEC,0xF4,0xF9,0x26,0x44,0xC3,0xE1,0x35,0x53,0x77,0x3F,
+0xA3,0xFC,0x18,0xAB,0x79,0xEB,0xC1,0x29,0x4E,0xDA,0xD6,0xC7,0xDE,0xF1,0xF5,0x72,
+0x0C,0x81,0x2F,0x8A,0x55,0x45,0xDC,0xFE,0xF7,0xE1,0x27,0x74,0x62,0x26,0xBC,0x32,
+0x70,0x6E,0xFE,0x3E,0x60,0x28,0xBF,0x51,0x57,0xE9,0x46,0x13,0x3D,0x40,0x69,0x16,
+0x53,0x48,0xFC,0x2F,0x36,0xEE,0xE5,0xDF,0x2A,0x46,0x67,0x24,0x91,0x4C,0x66,0xE7,
+0xBF,0xD9,0xD5,0x1C,0xC9,0xA6,0x6D,0x9A,0x7D,0xC8,0xF3,0xD4,0xF1,0x18,0x02,0x97,
+0xED,0xED,0x6F,0x11,0xAE,0x71,0x03,0x01,0x71,0xCA,0x57,0x11,0xF4,0x3C,0x4D,0x61,
+0x30,0x69,0x57,0x16,0xE7,0xCD,0xD4,0x41,0x73,0x3C,0x20,0x4C,0x10,0xB8,0xBD,0xD5,
+0x0B,0xD0,0xE4,0xE7,0xFC,0xCB,0x0E,0x35,0xFF,0x9C,0x0D,0xD7,0xF0,0xF7,0x75,0x33,
+0xE0,0x10,0x06,0xB9,0x1C,0xF9,0x0B,0xBE,0x22,0x3B,0x4D,0x87,0x46,0x22,0x01,0x7C,
+0xC1,0x3A,0xC1,0x0C,0x76,0x47,0xCD,0xD8,0xB5,0x5E,0x87,0x95,0x3F,0x51,0x4A,0x30,
+0x81,0x3D,0x68,0x24,0xC0,0xB3,0x92,0xDD,0x67,0xC4,0xC5,0xCF,0x81,0x97,0x20,0x56,
+0x1E,0xB2,0x3C,0xAF,0xF0,0xD0,0x38,0x2F,0x7F,0x3E,0x84,0x89,0x32,0x66,0x1B,0xEF,
+0xB6,0x9E,0xC0,0xE3,0xCD,0xDA,0x3A,0x20,0xB4,0x97,0x56,0x07,0x7E,0x25,0xDC,0xF8,
+0x51,0x44,0x39,0x8B,0xFD,0xB9,0x90,0xD2,0x05,0xD1,0x8D,0x17,0x7C,0x34,0xFF,0xDE,
+0xB2,0x24,0xBC,0xB4,0x71,0x8C,0xA0,0x89,0x86,0x4C,0xA2,0x86,0x5F,0x05,0x2E,0x40,
+0x11,0x43,0x90,0xA3,0xA5,0xA1,0x58,0x4A,0x0F,0x5A,0xD0,0xE9,0xAD,0x80,0x83,0x31,
+0x28,0xF6,0xE6,0xF6,0x68,0x4F,0xDE,0xF1,0x5C,0xAB,0xCA,0x7F,0x38,0x64,0x26,0xE0,
+0xA7,0x46,0x64,0xFC,0x4F,0x31,0x98,0x6D,0xC3,0xB3,0x2A,0xCE,0x3B,0x9A,0x72,0x62,
+0x9D,0x18,0xA5,0x93,0x63,0x9F,0x85,0xBA,0xA2,0x99,0xC4,0xD9,0x48,0xEB,0x04,0x21,
+0x40,0x9C,0x9D,0x94,0x61,0x5A,0x21,0xB6,0xBD,0x23,0xAD,0x36,0xF6,0x2D,0x6E,0x47,
+0x33,0x82,0xE0,0x2C,0xC3,0x04,0xA8,0x36,0x63,0xBB,0x4B,0xA9,0xF8,0xE4,0x6B,0x1A,
+0x45,0xC1,0x93,0x5D,0xE6,0xBF,0x4A,0xA6,0xD7,0x4B,0xCF,0x4D,0x73,0x12,0x8D,0x27,
+0xD6,0x54,0xDC,0xE0,0x67,0xE3,0xD2,0x00,0x37,0x0A,0x79,0x96,0xFB,0x1A,0x3F,0x98,
+0x50,0xA3,0x4B,0x15,0x59,0x5E,0xEA,0xE4,0xA7,0x2F,0x9B,0x2D,0xAA,0xB5,0xEF,0xE1,
+0xA9,0x50,0xBA,0x6E,0xA2,0x6A,0x35,0x1B,0x0C,0x65,0x76,0x26,0x1E,0x71,0xB8,0x88,
+0x2D,0xAB,0xE8,0x3F,0x29,0x94,0x68,0x11,0xC2,0x7A,0xFB,0x5C,0xB6,0xB6,0x8F,0x2B,
+0xE2,0x1C,0xC3,0x1D,0xEA,0xA4,0x7C,0xBC,0x83,0xFA,0xFD,0x72,0x37,0x42,0x54,0x19,
+0xB0,0x28,0x79,0x10,0xD0,0x65,0x13,0xE2,0xCF,0xB1,0x8E,0x0B,0x80,0x78,0x57,0xF2,
+0xEE,0x06,0xD8,0x2B,0x6D,0x41,0x17,0xAC,0xAD,0xA4,0xC6,0xD3,0x6D,0x00,0xCE,0xCB,
+0x58,0x03,0x2C,0x74,0x2A,0x23,0x52,0xFA,0xDA,0x80,0xBA,0x1A,0x3A,0x75,0x05,0xC6,
+0x82,0xD6,0xDF,0x1E,0x0E,0xEA,0x2E,0x8D,0xB9,0x5C,0x23,0x50,0x43,0x06,0x4E,0x8A,
+0xD3,0x09,0xD2,0x29,0xDD,0x0C,0xBB,0x1F,0x3E,0xBE,0x82,0xA7,0xFD,0xC0,0x24,0xEC,
+0xCF,0x2C,0x1F,0x9E,0x0D,0x5D,0x14,0x66,0x75,0xB5,0xD9,0x77,0x1B,0x55,0xF7,0x7E,
+0x8C,0xC0,0x01,0x8C,0x6F,0x84,0xB3,0xA0,0x12,0x16,0xCE,0x5B,0x08,0x70,0xE5,0x4D,
+0xDF,0x13,0xC9,0x1F,0x1A,0x40,0xF8,0x08,0x42,0xD8,0x72,0x02,0x49,0x04,0x73,0x85,
+0xB9,0x6F,0x6C,0xEF,0x6A,0x8A,0x7A,0xFD,0xD1,0xC2,0x36,0x76,0xCA,0xE1,0x8B,0x91,
+0x17,0xF5,0x29,0x50,0x47,0x56,0xF9,0xCD,0x93,0x7D,0x96,0x97,0xF5,0xD3,0x3A,0xC5,
+0x5F,0x52,0xE7,0x19,0x8A,0xB8,0x7F,0x76,0xB0,0xE8,0xD8,0x61,0xBD,0x5B,0xC5,0x80,
+0xD9,0xA5,0x70,0xEC,0xBA,0xDB,0xD5,0x84,0x4C,0x2C,0xA1,0x9A,0xEF,0x0A,0x41,0x7B,
+0xCB,0x96,0x63,0xC9,0x3D,0x3E,0xBE,0x94,0x5D,0x62,0x1B,0xED,0x20,0xAC,0x7E,0x78,
+0x35,0x34,0x59,0xDF,0xAA,0x0D,0x54,0xBB,0x02,0x91,0xA5,0xBE,0x33,0x89,0x6C,0x4B,
+0x38,0xC9,0x30,0x77,0x87,0xD1,0xD7,0x8B,0xB1,0x21,0x09,0xF3,0x22,0xBD,0x5D,0x5E,
+0x39,0x2E,0x42,0xE9,0x9F,0x60,0x37,0x14,0xA9,0xDB,0x48,0xB5,0x27,0x99,0x12,0xA8,
+0x25,0x0B,0x8F,0x5E,0x93,0x7B,0x01,0x0E,0x4F,0x13,0x07,0x55,0x53,0xDD,0x08,0x3B,
+0x2B,0x1D,0x51,0xCC,0x10,0xE2,0x3D,0xA4,0xF3,0x9E,0xA9,0x12,0x2B,0x41,0x34,0xD3,
+0xF3,0xC4,0x67,0x02,0x64,0x54,0xE8,0xEB,0x74,0x7C,0x08,0xE5,0xC6,0x39,0xAD,0xEA,
+0x84,0x60,0x66,0xED,0x89,0x0F,0x45,0x9D,0x77,0x43,0xAE,0x2A,0xB7,0x59,0xF8,0x8F,
+0x66,0x33,0xE9,0x9A,0x76,0x82,0x1D,0xD6,0xB6,0x06,0x79,0xD6,0xC4,0x3A,0xEA,0xA8,
+0xD2,0xD7,0x6D,0x6A,0x74,0xF5,0xEB,0x8B,0x0A,0x46,0x30,0x01,0xC3,0xE7,0x6E,0x90,
+0xE0,0x56,0x99,0xB1,0x2D,0xB2,0x91,0xE3,0x29,0xD8,0xE1,0x30,0xFA,0x84,0x4F,0x3B,
+0x90,0x36,0xCD,0xD5,0x7A,0x26,0x1F,0x13,0x61,0x9D,0x1E,0xB8,0xC9,0x68,0xDE,0x12,
+0x35,0xA5,0xF3,0x6B,0xF0,0xF2,0x36,0xB3,0x82,0xF9,0x82,0x09,0x5F,0xDB,0x86,0xE8,
+0x11,0xFA,0x95,0xBE,0x50,0x93,0x3E,0xD4,0xEF,0x56,0xB7,0x6A,0xEB,0xA7,0x69,0x39,
+0x38,0xF2,0x86,0xA0,0x21,0x16,0x93,0x26,0x2B,0xFE,0xC2,0x21,0xE4,0xC8,0x52,0x89,
+0x75,0x19,0x24,0x22,0x49,0x03,0x0D,0x00,0x2C,0x2E,0xAE,0x14,0x7E,0x74,0xFB,0xDF,
+0xD9,0xBB,0xE1,0x28,0x02,0x58,0x06,0xD0,0x7E,0xD5,0x2A,0x45,0x5E,0x86,0x43,0xFE,
+0x47,0x98,0xD0,0xF9,0x81,0x77,0x9B,0x41,0x4B,0x8E,0xA6,0x75,0x61,0x65,0x23,0x7B,
+0xE8,0xF5,0xB3,0xCC,0x78,0x51,0xE9,0x4E,0x17,0x28,0x27,0xED,0x7A,0xC9,0xB5,0xFB,
+0xFF,0xB9,0xF0,0x0B,0xB3,0x83,0x40,0xC0,0x1D,0x27,0x1A,0xEF,0x36,0x61,0x99,0x07,
+0x37,0xF8,0x84,0x9D,0xB2,0x52,0x89,0x52,0x80,0xDF,0xA1,0x18,0xD9,0x16,0x3D,0x06,
+0x51,0x46,0x42,0xF7,0x60,0x10,0x13,0x08,0x74,0xDA,0x17,0x47,0xF1,0x56,0x3A,0xAF,
+0x34,0x37,0x22,0xA2,0xF8,0xD8,0x4B,0x10,0x0C,0x32,0x2B,0xDB,0x32,0xDC,0xD7,0x23,
+0x7B,0x81,0xF7,0xD6,0x25,0x98,0xEC,0x40,0x3E,0xB9,0xCB,0xDE,0x6C,0x37,0x17,0xC1,
+0xF7,0x1A,0xDA,0x76,0xE2,0xEE,0x47,0x0B,0x35,0x12,0x81,0x33,0x3B,0x33,0xAD,0xBD,
+0x7D,0xBA,0x0E,0x5F,0x9C,0x69,0xD7,0xF3,0x3D,0x3B,0x9F,0x20,0x67,0xE5,0x62,0x55,
+0xB4,0x69,0xAB,0x00,0x63,0xB6,0x2C,0xC7,0x59,0x19,0xC3,0xBF,0x65,0xD8,0x6D,0x5F,
+0xC0,0x6F,0x71,0x1B,0xCD,0x04,0xD0,0x38,0x7C,0xF3,0x09,0x54,0xE7,0xA8,0x98,0x95,
+0xB0,0x0F,0x25,0x7F,0x24,0x49,0x25,0xD2,0x5C,0xEF,0x8C,0x9B,0xB9,0x43,0x58,0x77,
+0x7E,0x75,0xA8,0x60,0xA8,0x64,0x85,0x49,0x5E,0xC9,0xAF,0x8A,0x9A,0xD1,0x2A,0x4A,
+0xBF,0x05,0x27,0x42,0xDC,0xBE,0x9E,0x4F,0x67,0xE9,0x05,0x62,0x0F,0x02,0xB8,0xAC,
+0x97,0x9F,0xE5,0x95,0x54,0x1D,0x41,0xB2,0x76,0xFC,0x34,0x56,0x5D,0xE6,0x89,0xE2,
+0x10,0x68,0x44,0x77,0x22,0xB0,0xAC,0xE9,0x4C,0x5E,0xCA,0x40,0x9C,0x51,0x6B,0x64,
+0x8B,0xBF,0x2A,0x10,0xD3,0xBC,0xA3,0x45,0xCE,0xEE,0x45,0x4A,0xE6,0xF5,0x5D,0x83,
+0x0D,0xDA,0x5A,0x3B,0x9E,0x1E,0x21,0xAE,0x44,0x77,0xD4,0x53,0x2F,0xF0,0x00,0x8D,
+0xCB,0x03,0xFD,0x59,0x0A,0x72,0x7B,0x73,0x6C,0x42,0x4F,0x8F,0xAE,0xE0,0x3F,0x5B,
+0x4E,0xA9,0x2B,0x4D,0xDB,0x96,0xDE,0xE6,0xCD,0x6C,0x11,0xB4,0x17,0xCE,0xE4,0x30,
+0xA6,0xD1,0xB7,0x71,0x03,0x89,0xCF,0x42,0x6B,0x92,0x23,0xBA,0xA6,0x52,0x80,0xD3,
+0x5C,0x11,0x37,0x3C,0xA9,0xB5,0x4C,0xDB,0xDE,0x5F,0x03,0x91,0x7F,0x29,0x3E,0xC9,
+0xCF,0x65,0x73,0x26,0x95,0x92,0x63,0xC2,0xC4,0xE1,0x78,0x48,0x12,0x2E,0x6F,0x02,
+0x87,0x7A,0x8E,0x12,0xB7,0x0D,0x3F,0xA6,0x7F,0x71,0x5D,0xAA,0xCC,0x88,0x55,0x20,
+0x7C,0x28,0xDF,0x96,0x4B,0x74,0xFB,0x5D,0x1C,0x83,0x6D,0x00,0x39,0x0E,0xA2,0xB7,
+0x96,0x0D,0x34,0x5C,0xD6,0xE3,0x15,0xB1,0x4D,0xFA,0xBD,0xAF,0x3A,0x6E,0x68,0xAB,
+0xC2,0x32,0x06,0xED,0x94,0x43,0xAA,0x50,0x91,0xCA,0x90,0x2C,0x85,0xC0,0xF2,0xEE,
+0x4A,0xCF,0xA5,0x32,0x15,0x1B,0xC1,0x9C,0x43,0xA7,0xB8,0x66,0x59,0x5B,0xC7,0xC6,
+0x82,0x8E,0xD1,0xA4,0x45,0xA7,0x0F,0xC5,0x87,0x0F,0xCD,0x2D,0xCA,0x08,0x14,0x0E,
+0xEB,0x3A,0x15,0xF3,0x39,0x57,0x69,0x60,0xCB,0x18,0x0A,0x6E,0xFC,0x04,0x0E,0x15,
+0x79,0xDC,0x80,0x20,0x72,0x0C,0x62,0xB0,0x9A,0x61,0xDA,0xC1,0x4B,0x18,0x2B,0xD8,
+0xED,0x01,0xEC,0x7A,0x73,0xDD,0xAB,0x22,0x93,0xEC,0xB3,0x3D,0xD7,0x24,0xC3,0xA0,
+0x88,0x70,0x8C,0x2F,0x70,0x7B,0x94,0xED,0xC8,0x9A,0x5E,0x90,0x38,0x53,0x67,0xA1,
+0x3C,0x94,0x08,0xDF,0x48,0xD2,0xC4,0x92,0xBC,0x09,0x44,0xD4,0x8B,0xF2,0x0C,0x48,
+0xD4,0xEC,0x94,0xE3,0xF4,0x7C,0x49,0xD5,0x25,0xA3,0xC7,0xE8,0x19,0xFC,0x1A,0x96,
+0x59,0xE5,0x68,0x8A,0xB6,0xDC,0xF6,0x34,0x16,0x8C,0x50,0x02,0xA2,0xEF,0xCE,0xF7,
+0xAF,0xE0,0x4C,0xC5,0xAE,0x9D,0x0C,0x72,0xA7,0x13,0x48,0xE2,0x3C,0xEE,0x29,0x85,
+0x7F,0xE7,0x79,0xA9,0x5A,0xCE,0xB5,0x2A,0xF9,0x93,0xEA,0x6B,0x1C,0x1C,0x91,0xA4,
+0x4C,0xF4,0x5C,0xBB,0x05,0x70,0x46,0x79,0xCA,0xBC,0x7D,0x81,0x0A,0xE2,0x33,0x9E,
+0x20,0xB4,0xC7,0x5A,0xD0,0x1A,0x9C,0x8A,0x78,0xA1,0x31,0x9F,0x88,0x92,0xC6,0x54,
+0x9F,0x3C,0xCF,0xE8,0x30,0xAC,0xDD,0x51,0x24,0x07,0xB0,0x07,0x35,0x01,0x53,0x1B,
+0x40,0x31,0xF8,0xB9,0xBA,0x78,0xF4,0xF1,0x9D,0xB1,0xB6,0xF4,0x41,0x97,0x9B,0x5A,
+0x1D,0x3F,0x31,0xBC,0x64,0x9E,0x6C,0x6E,0xC3,0x31,0x14,0x7D,0xF9,0xE4,0x85,0x27,
+0x65,0xFC,0x4F,0xA5,0xC4,0xFF,0x64,0x09,0xF6,0x6A,0x98,0x4D,0x29,0x70,0x41,0xA3,
+0x26,0x8F,0x3E,0xD3,0xA5,0x11,0x4E,0x1E,0x58,0xBD,0xB4,0x50,0x46,0x4A,0x1F,0x62,
+0x36,0x6A,0x55,0x54,0x08,0x05,0x8D,0x2E,0x66,0x4D,0x72,0x8D,0x76,0xC6,0x44,0x57,
+0xE7,0xFF,0xB1,0xF1,0x5B,0x1F,0x7C,0xB8,0x88,0xF6,0xBF,0x0B,0x23,0xFF,0xF1,0x21,
+0xC1,0xFD,0xA0,0xD2,0xDD,0x6F,0x57,0xDD,0xE4,0xFD,0xFD,0x87,0xA1,0x8F,0x04,0xEB,
+0x8D,0x84,0xD3,0x99,0xBE,0xF6,0x8B,0x97,0x2D,0x8A,0xD9,0xFB,0xCB,0x55,0xD1,0x18,
+0xF5,0x47,0xAD,0x80,0xC8,0x5B,0x66,0xCC,0xA2,0xE5,0x07,0xC6,0xC5,0x67,0x2F,0xBE,
+0xCC,0xAA,0xD5,0x19,0xAA,0x13,0x73,0x14,0x86,0xAB,0xBA,0xC2,0xFE,0x39,0x01,0x1F,
+0x2C,0x71,0x63,0x58,0xC5,0x2E,0xAD,0x9B,0x53,0x16,0xFE,0xBD,0xEA,0xFA,0xAC,0x2F,
+0x1E,0xF0,0x97,0x83,0x84,0x28,0x2D,0xB5,0x63,0xBB,0x3D,0xA9,0xC8,0x35,0x1B,0x04,
+0xE6,0x6D,0x60,0x38,0xA0,0x4E,0xF8,0xEA,0x99,0xE3,0x8E,0x3F,0xC0,0x87,0xA4,0x8C,
+0x8F,0xD9,0xA4,0x6F,0x0B,0xA3,0xB2,0xE1,0xAD,0x1C,0x75,0xE0,0xBB,0x7E,0x57,0x7D,
+0x47,0x65,0xFB,0x96,0x84,0xCB,0x82,0xC8,0xC7,0xB9,0x80,0xC1,0x18,0x27,0xDB,0x01,
+0xA4,0x05,0x7E,0xA9,0x08,0xFE,0xB2,0x93,0x44,0x24,0xAF,0x50,0x3B,0x16,0x0A,0x9F,
+0x43,0xDF,0x87,0xC1,0x38,0x9D,0x18,0x61,0xF5,0x62,0x74,0x40,0x39,0x07,0x29,0xB9,
+0xEB,0xF3,0x7B,0x8D,0x05,0x97,0x1A,0x6E,0x3E,0xCB,0xA6,0xCE,0x75,0x44,0xEE,0xAE,
+0x74,0x7C,0x2F,0x06,0x35,0xF4,0xB0,0x9C,0x26,0x31,0xE7,0x88,0xC6,0xB5,0xD5,0x17,
+0x34,0x7B,0x86,0x2E,0x83,0x00,0xEF,0x99,0xF4,0xAB,0xA5,0xD2,0x78,0x73,0xBF,0x71,
+0x15,0x51,0x41,0x9B,0xE9,0xBE,0x29,0xFF,0x63,0xCE,0x6F,0xC0,0x01,0x00,0xF4,0x3D,
+0xFE,0x91,0xA3,0xC5,0x09,0x8C,0x2C,0x74,0xBE,0x69,0x2F,0x90,0xB7,0xD5,0x80,0x72,
+0xC5,0x28,0x10,0x34,0x12,0x8A,0xF6,0x00,0x32,0xC9,0x02,0x0B,0x57,0x9A,0x48,0x94,
+0x18,0xAC,0x28,0x33,0x5B,0x36,0x21,0x40,0x30,0x3F,0x75,0x56,0xB3,0x1E,0xB8,0x20,
+0x4A,0x98,0x92,0x3E,0x3C,0xE1,0x4F,0xDB,0x3C,0x3D,0xD1,0x93,0xB6,0x3A,0xF7,0xD6,
+0xA6,0x09,0xBB,0x0D,0xC3,0xA9,0xC7,0x9E,0x6B,0xB3,0x45,0x63,0xD6,0x6E,0x93,0xA6,
+0x85,0x2F,0xB9,0x1C,0x95,0x6F,0x9D,0x10,0x16,0x1C,0x64,0x54,0x7A,0x62,0x9C,0x57,
+0xF9,0xC0,0x68,0xA8,0xA0,0x02,0xFE,0xBF,0xB6,0x14,0x05,0x33,0x25,0x04,0x49,0x73,
+0x56,0xBD,0x5F,0x89,0x8C,0xAC,0xE3,0x68,0x0F,0x2F,0xF4,0x80,0x99,0xD3,0x00,0x33,
+0xEA,0x14,0x09,0x13,0xE0,0xAB,0xD6,0xB8,0x67,0xB1,0xE1,0xA6,0x72,0x71,0x82,0x7E,
+0xD7,0x1B,0x03,0x11,0x67,0x4E,0xBD,0xA8,0x95,0x81,0x4B,0xC5,0x3F,0xDD,0x32,0xCD,
+0x73,0x2D,0xE4,0x6B,0xE8,0xCC,0xB7,0x18,0x64,0x8E,0x47,0x69,0xE8,0xB3,0x55,0x56,
+0xC2,0x79,0xDB,0x59,0x6D,0xEC,0x78,0x04,0x4C,0x59,0x85,0xF3,0x83,0x0A,0x7B,0x8D,
+0xD2,0x46,0x0D,0xD8,0xF6,0xC4,0xA4,0x31,0xD8,0x03,0xE9,0x2E,0x5A,0xAD,0x19,0x4B,
+0x70,0xC6,0x53,0x51,0x01,0xEB,0x4D,0xD4,0x45,0xED,0x7E,0xC2,0x51,0x40,0x53,0xE0,
+0xEC,0xA2,0xB0,0xE0,0x33,0x4D,0x43,0x2A,0x9D,0xFC,0x61,0x66,0x29,0xDC,0x6F,0x08,
+0x0C,0x29,0x82,0xE5,0x5A,0x44,0xBF,0xA7,0xD3,0x41,0x65,0x42,0xE5,0x84,0x04,0x89,
+0x0B,0x78,0x49,0x88,0x21,0x5E,0x66,0x19,0xEF,0x6E,0x42,0x5B,0x91,0xC0,0x1E,0x1A,
+0xC7,0x24,0xD5,0x90,0xBD,0xBD,0xD7,0x7D,0xDA,0xF5,0x9E,0x73,0x3A,0xF9,0x7D,0x3B,
+0x11,0xEB,0x3D,0xCC,0xA3,0xB5,0xC4,0x54,0xA4,0x65,0x19,0x8B,0x9A,0x2D,0x54,0xB1,
+0x8A,0xDE,0x15,0x10,0x2B,0xFC,0xA3,0xB5,0x8B,0xF2,0xF3,0xB8,0xEF,0x86,0x39,0x86,
+0xFA,0x2B,0xDF,0x92,0xE1,0xD9,0x48,0x5F,0x25,0x0E,0x41,0x47,0xE9,0x5C,0x22,0xF2,
+0xF3,0x6C,0xCA,0x6D,0x8D,0xDE,0x7D,0x8F,0xEE,0xA7,0x93,0xC9,0xF5,0x5F,0x42,0x38,
+0x61,0x1E,0xF7,0x4E,0xAE,0xDC,0x6C,0xA9,0x62,0x07,0xBE,0x52,0x8F,0xD2,0x5D,0xF6,
+0xC4,0xCF,0x62,0xAA,0x16,0xF6,0xA1,0xBA,0x12,0x63,0xEA,0x32,0x1F,0x12,0xB7,0xD1,
+0x20,0xFE,0x2C,0xF8,0x27,0xE7,0x95,0xAF,0x9A,0xBC,0x49,0xCF,0x85,0xD0,0x60,0xF9,
+0x71,0x21,0x21,0xCF,0x7C,0x48,0x67,0xDC,0x36,0xB6,0x8C,0x6D,0xF0,0x7B,0x0D,0xCE,
+0x06,0x85,0x20,0x20,0x91,0x13,0xCA,0xAA,0x35,0x89,0x2A,0xA2,0x81,0x1B,0x58,0xAB,
+0xDE,0x5C,0x16,0xEE,0xE5,0xA5,0x1F,0xE5,0xB2,0x6B,0x8B,0x55,0x6C,0x63,0xC1,0x92,
+0xD0,0x4A,0xC8,0x7C,0x66,0x3C,0x23,0x4F,0x0E,0xE6,0x25,0x12,0x14,0xFF,0xFD,0x7A,
+0xCC,0x6F,0x05,0xCB,0x6A,0x27,0x15,0x55,0xE8,0x2E,0x6A,0xF2,0x60,0xBB,0xE7,0xE9,
+0xCD,0x88,0x77,0x55,0x72,0x96,0xF5,0xCA,0xF0,0xD4,0x2B,0xB4,0x65,0x9F,0xA8,0x1F,
+0xC0,0x75,0x1E,0xFD,0x5F,0x4A,0x76,0xFA,0x43,0x64,0x87,0xF9,0x74,0xAB,0x99,0x0A,
+0x3E,0xD7,0x24,0xEB,0xC8,0x79,0x9C,0xD5,0x1C,0x97,0x39,0xAA,0x67,0x8E,0x8B,0x39,
+0x2C,0xE4,0x37,0xCE,0x4F,0x9C,0xF7,0xC5,0x0D,0xD9,0x83,0xDD,0xA8,0x28,0xB4,0x3A,
+0xAA,0x13,0xA0,0x3B,0x7F,0xFF,0x5D,0x37,0xF1,0x1D,0xFA,0x26,0xFA,0x79,0x30,0xC1,
+0xE2,0xB4,0x6E,0x72,0xB2,0x11,0xDB,0x8C,0xD2,0x88,0xB4,0xD0,0xB2,0xF1,0xCF,0x84,
+0x4C,0x2E,0x2B,0xCD,0x9F,0xCD,0x58,0xBC,0x90,0x37,0x14,0x31,0x8D,0xC3,0x7E,0xD0,
+0x2A,0x52,0x8E,0x3D,0xEF,0x07,0xDA,0x49,0x03,0x2D,0x50,0x45,0x0E,0x26,0x86,0xC4,
+0x79,0x81,0x46,0xAE,0x9A,0xC3,0x91,0xE1,0x53,0xE3,0xEC,0x1C,0x4F,0x52,0x10,0x0C,
+0x3A,0x6D,0x58,0xBC,0xF8,0x1A,0x36,0x27,0x34,0x40,0xFB,0x30,0x5C,0x77,0x02,0x3F,
+0x26,0x48,0x95,0x0B,0x28,0x4B,0x99,0x5E,0x7F,0x4B,0xA0,0xE0,0xBA,0xE2,0xD1,0xAD,
+0x77,0x97,0x98,0x3C,0xFB,0xAD,0x0C,0xCC,0xF8,0xA9,0x01,0x17,0x04,0x24,0xBB,0xCB,
+0xAD,0x42,0x6B,0x56,0xDF,0x64,0x70,0xBB,0x9B,0x75,0x98,0x5D,0x7D,0x57,0xF0,0x87,
+0x1B,0x47,0x9F,0x09,0x98,0x06,0x35,0xED,0xEC,0x51,0xE4,0x94,0x2A,0x22,0x3B,0x8A,
+0x45,0x69,0x3E,0x32,0x25,0x22,0x31,0xA3,0x8E,0x44,0xAC,0x4C,0xC7,0x5A,0xA2,0xB3,
+0x17,0x5D,0x84,0x3F,0x1F,0xE3,0x5E,0xFD,0xC2,0x0F,0xDF,0x35,0x70,0x60,0xA1,0x58,
+0xD8,0xEA,0xAF,0x1D,0xDC,0xD3,0x4A,0x50,0x83,0x8F,0xD9,0x1B,0xF1,0x94,0x7A,0x6A,
+0x5C,0x11,0xFD,0x4C,0x57,0x2D,0x17,0x5A,0x4D,0x90,0x54,0x61,0x59,0x53,0x4D,0xC9,
+0xA5,0xE2,0x0C,0x37,0xAC,0x19,0xC8,0xA5,0xE6,0xDA,0xB9,0x6A,0xED,0x97,0x1A,0xA0,
+0x23,0x15,0x9B,0xC2,0x92,0xA4,0xF0,0x41,0x76,0xFF,0x5B,0xD1,0xBC,0x38,0xCA,0xD9,
+0xB0,0x80,0xD4,0x7F,0x13,0xF8,0x68,0xE7,0x96,0xBE,0xED,0x0A,0x34,0x30,0x78,0x66,
+0xC6,0xC3,0xA7,0x0E,0x36,0x43,0x8A,0x77,0x22,0x4E,0x69,0xEE,0xBF,0xC6,0x9E,0x5B,
+0xB5,0xDD,0xDA,0xB6,0x94,0x1D,0x03,0xF7,0xFC,0xD6,0x8F,0x71,0xB1,0x0F,0x9B,0x06,
+0x68,0x59,0xE2,0xB1,0x96,0xD8,0xA7,0xFB,0xE3,0x6C,0xE6,0x9E,0x0F,0xC9,0xF1,0x60,
+0x52,0x07,0x23,0xDE,0xBA,0x76,0xBA,0x2C,0x82,0x46,0x08,0x89,0x7C,0xB8,0x87,0x23,
+0xDD,0xB7,0xA1,0xD4,0x9D,0x08,0xFC,0xB0,0x1D,0x5E,0xE8,0x38,0x7F,0x46,0xD3,0xA1,
+0xE4,0x02,0xD7,0x81,0x50,0xE6,0x7A,0x0B,0x4E,0xAF,0xF2,0xAE,0xEA,0xA2,0x76,0x70,
+0x7F,0xB6,0xA3,0xAF,0xD4,0x94,0xDA,0xDB,0x4D,0xA0,0x9B,0x5C,0x7D,0x30,0x99,0x2E,
+0x2E,0x32,0x58,0xFD,0xAD,0x68,0x21,0x1F,0x7D,0x0A,0xF8,0xAE,0x8A,0xA7,0x6C,0xA8,
+0xA6,0xCD,0x1D,0xB5,0xE3,0x4B,0xD7,0x8A,0xB0,0x8C,0x16,0x15,0x2D,0x69,0x25,0xE0,
+0x94,0x7C,0x49,0x8A,0x43,0x09,0x36,0x35,0x9D,0x0F,0xCA,0x25,0xB7,0x2C,0x9A,0x4E,
+0x71,0x84,0x5D,0x09,0x07,0x9A,0x42,0x2F,0xED,0x8D,0x00,0xD0,0xCB,0x89,0x6A,0x28,
+0x05,0x12,0x95,0x48,0xBB,0xCA,0x1B,0xE1,0x98,0xC6,0xC4,0x78,0x18,0x41,0xF9,0x7B,
+0x20,0x00,0xA6,0x5B,0xAC,0xAD,0x37,0x42,0xFA,0x61,0x1D,0xBE,0xF4,0x5F,0xEB,0x38,
+0xB5,0xD3,0x34,0xBD,0xF7,0xE6,0xE7,0x49,0x2A,0xCE,0x4C,0xC7,0xD1,0x92,0x5C,0x24,
+0x2C,0x0F,0x57,0xF7,0xDB,0xAF,0x6A,0xB4,0x7E,0x30,0x4F,0x45,0xB8,0x26,0x98,0x73,
+0x4C,0x5A,0x32,0x86,0x7D,0xAC,0xA5,0x8B,0x93,0x9D,0x14,0x33,0x1C,0x27,0x77,0x04,
+0x34,0xC3,0x0B,0x6B,0xDC,0x2B,0x52,0x69,0xE7,0x48,0xA2,0x7C,0xC5,0x11,0xB9,0xDC,
+0xA8,0xFF,0xE3,0x13,0x72,0x97,0x15,0xE4,0x64,0x74,0x3B,0xD6,0xD3,0xCF,0x2B,0xD2,
+0xEC,0xE5,0x70,0x67,0x3D,0x71,0xF5,0x2C,0x68,0x42,0x20,0xCC,0xF6,0x02,0x9C,0xCE,
+0xC8,0xAA,0x86,0x62,0x7C,0x69,0xB3,0xD6,0x70,0xA2,0x91,0x53,0x11,0x70,0x02,0xCF,
+0xFC,0x9B,0x93,0x73,0xD0,0xDA,0xFE,0x66,0x5D,0x21,0x4D,0x63,0xEC,0x19,0xAA,0xC2,
+0xD9,0x89,0xA0,0x60,0x6E,0x85,0xAD,0x95,0xCA,0xCB,0x7E,0x4C,0x4E,0x23,0xBC,0x3C,
+0x6F,0xC8,0x40,0xBB,0x0C,0xEF,0xD6,0xFD,0x90,0xA7,0xA3,0xD8,0x8C,0x9C,0x95,0x21,
+0x67,0x7A,0xFF,0x33,0xBA,0x0F,0x0D,0xBC,0x11,0x3F,0xFF,0x7E,0x19,0xD3,0x28,0xB2,
+0x91,0x9C,0xC2,0xB8,0x3E,0xBB,0xE9,0x4C,0x34,0xDD,0x44,0xEE,0x5A,0xA0,0x59,0xC4,
+0x58,0x99,0x9F,0xB6,0xD8,0x65,0x76,0xD4,0x96,0x54,0x1A,0x6E,0x44,0xDD,0xE1,0xB7,
+0x9E,0xF3,0xF9,0x08,0xB1,0x7A,0x99,0x6E,0x94,0xF0,0xDF,0x62,0xC0,0xE5,0xE6,0x6A,
+0xEF,0x85,0xBA,0x7B,0x5F,0x1B,0x8E,0x44,0xB8,0xED,0x71,0xB5,0x9E,0x24,0x89,0x50,
+0x11,0xD1,0x38,0x78,0xBF,0x84,0x3F,0x5C,0x9F,0xAB,0x0F,0x29,0x2E,0xA6,0x83,0xDF,
+0xF5,0x74,0xE9,0xED,0xA5,0xD7,0xA9,0xAD,0x52,0x2D,0xE1,0x92,0x9B,0xD0,0xD6,0xE6,
+0x73,0xB9,0x52,0x03,0x56,0x61,0x10,0xAB,0xF9,0x5B,0xAA,0x55,0x0E,0x9F,0x6B,0x75,
+0x00,0xF2,0x1E,0x7A,0xCF,0x02,0x5A,0x77,0xDD,0x27,0x63,0x22,0xDB,0x6C,0x01,0xAF,
+0x75,0x39,0x13,0x2D,0xB3,0x75,0x93,0x53,0x9A,0x62,0x01,0x74,0xDE,0x98,0x5E,0x19,
+0x0D,0xA0,0x2A,0xC0,0xFB,0x17,0x4B,0x46,0x27,0x66,0x25,0x3A,0xF0,0x39,0x65,0x47,
+0x37,0xA3,0xC1,0x77,0x88,0x5B,0x32,0x0D,0x1D,0x09,0xE4,0x64,0xC4,0x83,0x68,0x15,
+0xC3,0x78,0xF3,0xF6,0x8E,0x1A,0x1C,0x8D,0xDE,0x1D,0xD4,0xC9,0x73,0xA8,0x4A,0xDA,
+0x04,0x4F,0x50,0x5E,0x03,0xD4,0x66,0x92,0x55,0x40,0x2A,0xC3,0x88,0xFA,0x1B,0x5E,
+0xC0,0x18,0x39,0xEA,0xEE,0x7F,0x6D,0xD8,0xAE,0x9F,0x1E,0x3C,0x7B,0x0B,0x60,0xA7,
+0xCD,0x4A,0x0D,0x50,0x55,0xAB,0x0C,0xCB,0x10,0xA1,0x8D,0x99,0xB1,0x17,0x63,0xC7,
+0x49,0xBA,0xB9,0xB4,0x22,0xA9,0x51,0x3D,0x59,0x76,0x31,0xD9,0x35,0x2F,0x64,0x1A,
+0x6D,0xF5,0x4F,0xB1,0x86,0xA5,0x94,0x3F,0x3E,0x18,0xE6,0x42,0x01,0x95,0x69,0x48,
+0x39,0x91,0x3F,0xD1,0x12,0xF2,0x64,0xB1,0xC1,0x90,0xAE,0x07,0x90,0xBC,0x5A,0xA4,
+0x35,0x9E,0xCE,0x7D,0x33,0x8F,0x53,0x1E,0x97,0xCA,0x68,0x89,0xB6,0xBE,0x4B,0x87,
+0x53,0x4B,0xEA,0x22,0x52,0x2F,0x34,0x16,0xA2,0xA9,0x05,0x26,0x59,0x6F,0xFF,0xFB,
+0x84,0x02,0xAA,0x9E,0xA3,0x96,0x87,0x2D,0x8E,0xB4,0xAB,0xF1,0x24,0x58,0xDE,0x54,
+0x26,0x80,0xE7,0x75,0xB6,0xFE,0xA1,0xB3,0xE2,0x81,0xAC,0x21,0x8D,0x0E,0x44,0xE8,
+0x70,0xD9,0x98,0x1F,0xD7,0x5E,0xC6,0xBB,0x86,0xD5,0xCC,0x51,0xFC,0xFC,0xC1,0x45,
+0x41,0x08,0x06,0x3C,0xF8,0xDD,0x57,0x26,0x0A,0xE5,0xF9,0x0A,0x9C,0x79,0xFE,0xA6,
+0x50,0x2B,0x20,0x3E,0x23,0x6C,0x47,0x60,0x3A,0x4F,0x9A,0xF8,0x46,0x80,0x96,0x41,
+0x13,0xEC,0x37,0x72,0xF1,0xA7,0xC9,0xC9,0x07,0x4D,0x90,0xF7,0x6A,0x7C,0xDA,0xE9,
+0xE2,0xD7,0x8E,0xC1,0xB0,0xBF,0x8F,0x33,0x37,0xE7,0xF3,0x05,0xE5,0x28,0x51,0x76,
+0x24,0xBD,0xE8,0x7F,0xF2,0x6D,0xD5,0xA9,0x81,0xB8,0x07,0x00,0xE2,0x81,0x79,0x36,
+0x57,0xF6,0xA4,0x06,0x38,0xFA,0xC7,0xCC,0xEB,0x7E,0xB9,0x66,0xC8,0x46,0xCC,0x17,
+0x82,0x82,0xEB,0xB0,0x78,0x27,0x97,0x6B,0x0B,0x7B,0x8B,0xED,0x08,0xA4,0x92,0xFC,
+0xAE,0x7F,0xA2,0x3D,0xC9,0x43,0x74,0xF7,0xBF,0x80,0xBA,0xE4,0xBD,0xD2,0xC7,0xC5,
+0x7A,0x56,0x28,0x9D,0x4E,0x3D,0x8C,0x67,0xA1,0x93,0xB2,0xCD,0x72,0x3A,0x9B,0x13,
+0xD1,0x3B,0x1F,0xE8,0xA4,0x12,0xBF,0xF0,0x29,0xF4,0xFB,0x2C,0x47,0x12,0x47,0x88,
+0x0B,0x20,0x6B,0xEE,0x16,0xBC,0x40,0x0C,0xE3,0x1F,0xDE,0xC6,0xB2,0xD8,0xC5,0xF8,
+0x08,0x40,0xA1,0xF2,0xC4,0x77,0xCE,0xA5,0x8F,0x2A,0xD9,0x16,0xF5,0xCD,0x3A,0xF1,
+0x85,0x5F,0x6F,0x88,0xE9,0xFB,0x55,0x05,0xAC,0x3B,0xDB,0x30,0x87,0xF0,0x19,0x63,
+0x45,0xB5,0x48,0x18,0xBD,0x8B,0x35,0x61,0x14,0xF6,0xF1,0x23,0x56,0x65,0xFD,0xC6,
+0x87,0x62,0x60,0x82,0x1E,0x03,0xC8,0xBE,0x25,0xC2,0xE0,0x36,0x67,0x2B,0xAF,0x22,
+0x8A,0x30,0x54,0x38,0x1C,0x0C,0xC2,0x83,0x65,0xEA,0x49,0x31,0x82,0x04,0x46,0xD5,
+0xE4,0x57,0xCF,0xEF,0x10,0xFD,0x6E,0x8C,0xEA,0xE0,0xCB,0x81,0xB4,0xE3,0x3C,0x71,
+0x5D,0x79,0x14,0x84,0xD2,0xD5,0xF4,0x5B,0x6F,0x2F,0xEB,0x9D,0xE0,0xDC,0x0E,0xC0,
+0xFA,0x1B,0xD2,0x5D,0xBE,0x41,0x29,0x01,0xF4,0xF3,0xC3,0xA8,0xDF,0x0A,0x8F,0xD0,
+0x17,0x51,0x79,0x56,0x29,0xDC,0xC5,0xEF,0x03,0x1A,0xEC,0x4D,0x5F,0x54,0x06,0x72,
+0x8B,0x6D,0x91,0x2E,0x36,0x04,0x61,0xFE,0x31,0x14,0x4A,0xB3,0x3B,0xB7,0xB7,0xEE,
+0xD3,0x06,0x10,0xE2,0x32,0x4A,0x45,0x43,0x58,0xE8,0x43,0x3E,0xB0,0x85,0xB2,0x0E,
+0x97,0x1C,0x83,0x96,0x15,0x76,0x5C,0x6C,0x23,0x31,0x59,0x80,0xE1,0x4E,0xDF,0x09,
+0x0B,0x72,0xE0,0xBD,0x31,0x1E,0x1F,0x64,0x1C,0xDC,0x26,0x87,0x1A,0xA5,0x4D,0x33,
+0xA5,0x6F,0xCC,0x6A,0xF0,0x24,0x41,0x0B,0x6D,0xAF,0x65,0xF1,0x30,0xC4,0x5A,0xDD,
+0xDB,0x29,0xEB,0xF6,0x72,0xAB,0xF1,0x01,0x93,0xAC,0xE7,0xA5,0x28,0x5B,0xEB,0x3D,
+0x35,0xAF,0x26,0x4D,0x04,0x92,0x44,0x54,0x77,0x39,0x36,0x00,0xD9,0x08,0x7D,0x27,
+0x77,0x25,0xE4,0x07,0x48,0x55,0x53,0x17,0xED,0x6F,0x9F,0xBC,0x89,0x30,0x02,0x8E,
+0x2B,0xBD,0x65,0xA1,0x07,0xC6,0xC6,0xAA,0xE5,0xE7,0x20,0x0E,0xC8,0xD0,0xD9,0x38,
+0x90,0x5F,0x40,0x31,0x74,0xB0,0x85,0xDB,0x13,0x6C,0x1D,0xE8,0x38,0x64,0x3D,0xBC,
+0xCE,0xD6,0xE2,0xB1,0x09,0xC3,0x9B,0x63,0xDA,0x62,0x40,0xED,0xA0,0xBA,0xA2,0x5A,
+0x30,0x8B,0x69,0xBB,0x57,0x61,0x1B,0xEA,0xB5,0xA3,0x1E,0xD7,0x79,0x84,0xE6,0x0A,
+0x00,0x9F,0xAA,0x16,0x7C,0xAE,0xAC,0xC8,0x41,0x22,0x2C,0x0C,0xF9,0xC5,0xC8,0x0C,
+0xFE,0xC2,0x21,0x1C,0x2E,0x2A,0x57,0x99,0x86,0x8A,0x8F,0x3B,0xE6,0x0B,0xB2,0x81,
+0xCA,0x1D,0xDA,0xE3,0xDF,0xD3,0xA4,0xE2,0x42,0x3E,0xE6,0x6C,0xAC,0xA0,0xB9,0x6C,
+0x7E,0xD9,0x8D,0x8A,0x4B,0x01,0xD1,0xE9,0xF1,0xD7,0x8D,0xCD,0xDF,0xBE,0xC4,0xD4,
+0xB7,0xA5,0xA9,0xFD,0xB8,0xDB,0x04,0x83,0x82,0xAE,0xC1,0x86,0x03,0xDD,0x8E,0x4D,
+0xD5,0xE0,0xEE,0xAB,0x4C,0x6D,0x01,0xDC,0xF7,0xF9,0xCC,0x4D,0x27,0xAA,0x47,0x31,
+0xF1,0xE4,0x53,0xE5,0xED,0x33,0x2F,0xE7,0x8F,0x14,0xF5,0xD4,0x32,0xC8,0x9F,0x79,
+0xD4,0x0F,0x99,0x0F,0x5D,0x5C,0x14,0xE8,0xF3,0xDD,0x82,0xF0,0x5B,0x45,0x96,0x85,
+0x10,0x44,0xEC,0xA7,0x95,0x0F,0xC7,0x7B,0x87,0x9C,0x4A,0x66,0x95,0x15,0xCF,0x39,
+0xC9,0xE3,0x8E,0x61,0x8B,0x4C,0x2B,0x69,0xA2,0x8F,0x79,0x74,0x36,0x72,0xE3,0x2E,
+0x98,0x4C,0x5E,0x18,0x46,0x50,0x0E,0xDE,0x37,0x69,0xEB,0xA7,0x3D,0x39,0x33,0x75,
+0x4F,0x22,0x39,0x83,0xE4,0x5A,0xA2,0x1B,0xFD,0x7B,0x7C,0xC2,0xAF,0x4B,0x0E,0x56,
+0x2C,0x88,0x09,0x71,0x73,0xDC,0x55,0xEE,0xAC,0x29,0x87,0x46,0x6B,0xB7,0xF5,0x2F,
+0xC2,0x0E,0xC4,0xCA,0xBD,0x94,0xF2,0xA7,0x24,0x61,0xC2,0xB9,0xFE,0x94,0x03,0x61,
+0x1E,0x8D,0xE9,0xFA,0xF8,0x3A,0x68,0x18,0x16,0x5E,0x96,0x08,0x41,0xD6,0xE2,0xC1,
+0xF4,0xC0,0x1C,0x13,0xD6,0xBA,0x29,0x1E,0x6E,0xB3,0xAF,0x91,0x58,0xAE,0x21,0xBF,
+0x45,0x20,0x04,0x8C,0xA4,0xBB,0xCE,0x80,0x4A,0xB6,0x59,0xDE,0xA2,0xB6,0x67,0xFE,
+0x99,0xA3,0x29,0xBC,0xCD,0xB6,0x33,0x28,0x7E,0xA7,0x4C,0xEF,0x12,0x05,0x2A,0x52,
+0xAA,0x49,0xBE,0x93,0xF7,0x48,0x91,0x3E,0x5B,0xB4,0x7F,0xFD,0xE1,0x5A,0x79,0xEC,
+0x9B,0xB2,0x0A,0x9A,0xF2,0x07,0x67,0x1A,0xAE,0x23,0x88,0x7B,0xC0,0x70,0xBE,0x59,
+0xC0,0x1F,0xE7,0xEC,0xF3,0x70,0xC3,0xF5,0xCE,0x52,0xED,0x2E,0xFF,0x73,0x71,0xFF,
+0x76,0xCA,0x93,0xA3,0xC5,0xA8,0x1A,0x3B,0xB6,0xBF,0xD4,0xB7,0x1D,0xF4,0x86,0x5E,
+0xEF,0xF6,0x10,0x09,0x1B,0xA6,0x0C,0xA9,0x2A,0xC7,0x3C,0x8B,0x90,0x48,0xC1,0xF0,
+0x0D,0xA8,0xFB,0xC9,0x19,0x85,0x2A,0xB8,0x8A,0x26,0x7E,0x34,0xD1,0xA8,0x1A,0x46,
+0x0F,0xB9,0xD8,0xEF,0x24,0x17,0x58,0x9B,0x07,0x5C,0xB0,0x2B,0x71,0x24,0x81,0x6B,
+0x25,0x74,0x60,0xFC,0xB1,0xB2,0x89,0x7F,0xC7,0xCC,0x97,0xC1,0x15,0x54,0xE1,0x3F,
+0x34,0x40,0x51,0xE9,0xFF,0x56,0xB8,0x2D,0x05,0x56,0xBF,0x16,0xCA,0xDC,0x1C,0x9C,
+0x6E,0x02,0xCB,0x3B,0x06,0xB1,0x62,0x45,0x2C,0xE9,0x7D,0x0B,0x83,0x9C,0xA0,0x4B,
+0x66,0x11,0xD5,0x12,0xEE,0x67,0xAD,0x19,0xF8,0x49,0xF7,0x22,0x13,0xE2,0x58,0xCC,
+0x2F,0x76,0x5D,0xF3,0xC6,0xFC,0x98,0xC5,0x53,0x3C,0xC0,0x4F,0x84,0xCD,0x6B,0x26,
+0x0A,0x9D,0x97,0x19,0x0C,0x8C,0x6D,0x47,0x89,0x3A,0xB4,0x54,0x78,0x63,0x94,0x94,
+0x38,0x98,0x77,0x92,0x80,0x06,0x80,0x84,0x95,0x82,0xA6,0x25,0x9B,0x03,0x11,0xAB,
+0x9E,0x96,0x45,0x6C,0x63,0x9A,0xE4,0x35,0x09,0xFA,0x4E,0x19,0x8A,0xDB,0xB5,0xB4,
+0x97,0x6A,0x2C,0xE1,0x51,0x7A,0x6F,0x30,0x51,0x36,0xCF,0x72,0x37,0x95,0x91,0xB0,
+0x8D,0xB3,0x57,0x5F,0x9A,0x7D,0x3E,0x5D,0x15,0x42,0x5C,0x68,0x18,0xA9,0x88,0x97,
+0x9D,0x68,0x11,0xEE,0xD0,0xA1,0x5D,0xC4,0x08,0xEC,0x8B,0x44,0xF7,0xD3,0x16,0x9E,
+0x1F,0x62,0x9E,0x5E,0x37,0x05,0x6B,0xBE,0x66,0x3B,0x10,0x23,0xF8,0x22,0xBA,0x92,
+0x3F,0xAD,0x1B,0x42,0x08,0xB4,0x3F,0x8C,0xDF,0x50,0xCB,0x0D,0x2F,0x0A,0x20,0x50,
+0x17,0x71,0x80,0x77,0xDE,0xA4,0x00,0x0D,0x78,0x89,0x0D,0x6F,0x75,0x9E,0xFD,0x3C,
+0xBC,0x48,0xE3,0x56,0x6A,0xF3,0x69,0xC9,0xB7,0xA9,0x11,0xEA,0x6A,0x50,0x87,0xB1,
+0xD1,0x2B,0xD6,0xF9,0xBB,0x8F,0x86,0x7D,0xD1,0xF6,0x35,0x3F,0x62,0xF0,0xE0,0xD0,
+0x7F,0x36,0xFA,0x2E,0x8C,0x20,0xFB,0x5C,0x06,0x4A,0x75,0x76,0x59,0x49,0x53,0x21,
+0x78,0x03,0x96,0xFE,0xDA,0x9C,0x52,0xC6,0xA4,0xA1,0x38,0xF4,0xC7,0x21,0x75,0x34,
+0x59,0x23,0x64,0x46,0xC3,0xB3,0x6E,0xE1,0x4F,0x84,0xD2,0x3E,0xBF,0x74,0xD8,0xD7,
+0xE5,0xF4,0x2D,0x06,0xFB,0x6E,0xEA,0xE6,0xCB,0x60,0x66,0xCE,0x49,0x76,0x85,0xA0,
+0x32,0x9A,0x4A,0x9D,0x41,0x3C,0xDE,0xEB,0xEF,0x65,0x90,0x81,0x4B,0x7A,0x40,0x04,
+0x7A,0x12,0xB5,0xD8,0x68,0xD0,0x4F,0xD8,0xBB,0x05,0xE0,0xE5,0xC5,0x2D,0xB0,0x90,
+0x27,0x65,0x43,0xDA,0xFC,0x02,0x3A,0xD3,0x60,0x15,0x51,0xA3,0x47,0x60,0x5B,0x32,
+0xD3,0x3A,0xF5,0xDF,0x55,0x42,0x3D,0xFB,0xA6,0xAB,0x37,0xC9,0xDD,0xB2,0x01,0x70,
+0x6D,0xFC,0x9F,0xB9,0x92,0x63,0x17,0x4E,0xD5,0xD2,0x7B,0x82,0xB8,0x25,0x13,0xBA,
+0x5F,0xF9,0x7F,0x32,0x70,0x88,0xD7,0x10,0x00,0x64,0x34,0xF6,0x1F,0xF8,0x43,0xFA,
+0x18,0x57,0xF2,0x8E,0x28,0x31,0x23,0x43,0xF2,0xCB,0x47,0xAD,0xCF,0x81,0x12,0x55,
+0x2D,0x67,0x7E,0xD5,0xAD,0xD2,0x43,0x7C,0xC3,0xE8,0xD9,0x7C,0x52,0x02,0x83,0x7A,
+0x4E,0xCD,0x4E,0x27,0x54,0x35,0x99,0x14,0xD2,0xEA,0xFF,0x5F,0x14,0xB3,0x93,0xA1,
+0x44,0xCF,0x73,0x28,0xA8,0x9D,0xB5,0x58,0x91,0xA6,0xE8,0x98,0xBD,0x78,0x1D,0x73,
+0xFF,0xEF,0x83,0x4B,0x9B,0x85,0x91,0xE4,0x19,0xB0,0x6F,0x86,0x91,0x41,0x33,0xDA,
+0x8F,0x1A,0x49,0xC9,0x71,0xA0,0x7A,0x2E,0x07,0xC3,0xD7,0xFB,0x33,0x1F,0xB3,0x53,
+0xA3,0xCD,0xE7,0xD4,0x5A,0xF5,0x1E,0xC6,0xEA,0x49,0x14,0x77,0x9A,0x91,0x78,0x81,
+0x4F,0x5C,0xCE,0xE7,0x1F,0xBD,0x96,0x39,0x70,0xE7,0xAB,0x32,0xB7,0x4D,0x48,0x02,
+0x14,0x2F,0x61,0x15,0x90,0xE9,0x1D,0xA6,0x44,0xB5,0xA6,0x88,0x16,0xA4,0x23,0xB1,
+0xC2,0xE0,0x89,0x49,0xB9,0xE1,0x0E,0xB8,0xD1,0x26,0x1B,0xC7,0x97,0xF8,0x85,0x29,
+0x1D,0x68,0x74,0xEA,0x84,0x6A,0xF8,0x5E,0xD7,0xAF,0xE2,0xFC,0x7A,0xA3,0xF3,0x84,
+0xC0,0xEC,0x4C,0xED,0xC4,0xD6,0x2F,0x17,0x20,0x29,0x17,0x6B,0x4A,0xC0,0x01,0x2E,
+0x0B,0xE1,0x1B,0x98,0x36,0xB5,0x85,0x27,0x38,0xD3,0x56,0x2D,0x9E,0xED,0xC2,0xD6,
+0xF7,0x4F,0xE4,0x2A,0x42,0xB3,0x5F,0x3C,0xE6,0x4B,0xB0,0xB2,0x9B,0xE3,0x9F,0x1F,
+0xB6,0xAF,0x3F,0x9C,0x62,0x8A,0xB7,0x96,0x54,0x32,0xCD,0x6D,0x7B,0xD1,0x14,0x1A,
+0x38,0xF8,0xCF,0x08,0x12,0xEA,0xE3,0xF2,0x16,0x8D,0x6D,0x8C,0xCA,0xEE,0x40,0x28,
+0x60,0x60,0xD7,0xC0,0x75,0xC6,0xF4,0x51,0x52,0xBB,0x34,0x56,0x7D,0x68,0xA2,0xE9,
+0xF0,0x1E,0x2F,0x47,0xFF,0x66,0x20,0x78,0xB2,0xFA,0x82,0x8D,0xCF,0xE0,0x1D,0xE1,
+0x3A,0xF4,0x0A,0xAC,0xE4,0xEF,0xC7,0xBD,0x35,0x18,0x23,0x7A,0x35,0xA6,0x05,0xA0,
+0xCC,0xF6,0x57,0xDB,0x50,0x0B,0x43,0x4D,0xC9,0xDC,0x5A,0x81,0xB1,0xF4,0xFE,0xF1,
+0x25,0x3A,0x70,0x21,0x6B,0xBB,0x4C,0x22,0xC6,0xE1,0x58,0x8B,0x55,0xBA,0xCF,0xA3,
+0xC1,0x0B,0x3E,0x73,0x7E,0xAA,0x78,0x13,0x73,0xD8,0x0D,0xFD,0x98,0x54,0x74,0x25,
+0xEF,0xD0,0x55,0xCA,0x7C,0xF7,0x0F,0xE5,0x8C,0x23,0xD2,0xC9,0x2D,0x17,0x9A,0x40,
+0x53,0x79,0x03,0x50,0xAC,0xF0,0x3A,0x89,0xA9,0x3F,0x65,0x04,0xFD,0x46,0xE3,0xEF,
+0x64,0xDA,0xAB,0x97,0x6D,0x80,0xB5,0xAB,0xC3,0x57,0x07,0x7F,0xBF,0x2A,0xE8,0x63,
+0xF6,0xA8,0x96,0xB4,0x4B,0x82,0xA4,0x88,0x9D,0x6D,0x68,0xBE,0x93,0x84,0x3F,0x7E,
+0xFC,0x04,0x34,0x71,0x7B,0x5E,0x27,0xA5,0x45,0x7C,0x77,0x1A,0x9F,0x9F,0x25,0x48,
+0x80,0xEB,0xE5,0xC5,0xD4,0x33,0x44,0x90,0x96,0x2F,0xE4,0xD2,0xEA,0x5B,0x8D,0x03,
+0xB9,0x5E,0x93,0x90,0x3D,0xD9,0x09,0x65,0x8A,0xAA,0x2B,0xF2,0x73,0xB6,0xB4,0x7B,
+0x66,0xD6,0x6E,0x33,0x15,0x43,0xCB,0xB2,0xD9,0x5B,0x31,0x64,0xD6,0x23,0x65,0x9F,
+0xB4,0xA3,0xFA,0x38,0xBA,0x2E,0xA8,0x87,0xBB,0x4E,0x79,0xBC,0xD4,0xE6,0x69,0x3B,
+0x2A,0xCB,0xDC,0x2D,0xF7,0xC5,0x0A,0x05,0xF0,0x45,0x22,0x6C,0x07,0x00,0xFB,0xAE,
+0x02,0xA6,0x0E,0x67,0x32,0xD3,0x0B,0x58,0x46,0x43,0xD1,0xD5,0x82,0x20,0xE7,0x61,
+0xA2,0x2A,0x95,0x4A,0xFC,0xA9,0x86,0x47,0x27,0x69,0x3F,0xC2,0xF4,0x53,0xA4,0x10,
+0x11,0x72,0x6F,0xDC,0xB7,0x79,0xDD,0x4C,0x97,0xE6,0x35,0x40,0x15,0x13,0xC8,0x8B,
+0x19,0xD2,0x08,0xBD,0x93,0x26,0xBB,0x99,0xC7,0x28,0x89,0x19,0x83,0x52,0x00,0xFF,
+0xD7,0x82,0x51,0x01,0xF5,0x98,0x7D,0xF3,0xAD,0x40,0xEB,0x62,0x20,0x7E,0x67,0xE8,
+0xC7,0xBD,0x87,0x80,0xC0,0xB0,0xA1,0x68,0x83,0x1E,0xD0,0xC3,0x9D,0x5A,0x29,0xEC,
+0xEE,0x37,0x27,0x54,0xAA,0xCB,0xC3,0x00,0x8E,0xD5,0xA5,0x94,0x63,0x60,0x8B,0xFA,
+0x46,0x1B,0xDB,0x18,0xA5,0xC1,0xC1,0x3D,0x98,0xDB,0x37,0x4A,0xE0,0xF9,0x21,0xC6,
+0x76,0xE9,0xB8,0xB2,0xDC,0x90,0x6E,0xED,0x86,0xA8,0x8F,0x37,0xDA,0x38,0x7F,0xA9,
+0xD2,0xDF,0x5F,0xC8,0x6C,0x12,0x64,0x62,0x53,0x72,0xE5,0xC4,0xFE,0xF1,0x08,0xD5,
+0xA1,0xC1,0x22,0x70,0x57,0xA2,0x6B,0x0D,0x41,0x03,0xF9,0x7C,0x94,0x4F,0x6E,0x13,
+0x42,0xA1,0xA7,0x4F,0x0C,0x97,0x5B,0x81,0xE5,0x74,0x16,0x7D,0x79,0x14,0x18,0xBE,
+0x06,0x1C,0x72,0x30,0x8F,0x06,0x74,0x1C,0x4A,0x41,0x75,0x10,0xA7,0x9B,0x77,0x83,
+0x5C,0x88,0xAF,0x5C,0x49,0xDF,0xD3,0x7E,0x28,0x54,0x3D,0xC8,0x3E,0x76,0x4E,0xFB,
+0xCE,0xFA,0x92,0x7F,0x6A,0x29,0x9D,0xEB,0xCA,0xE3,0xFC,0x4E,0xF8,0x48,0xBE,0x26,
+0x67,0x31,0x1C,0xAD,0x7D,0x65,0xDE,0x2C,0x76,0x6E,0x52,0x09,0xC4,0x30,0x56,0xBA,
+0x8B,0xA0,0x35,0x9E,0x92,0xB4,0x6A,0x50,0x5F,0x70,0x41,0x01,0xF5,0x21,0x43,0x8E,
+0x84,0x51,0x99,0x92,0x09,0x63,0x04,0x37,0x3C,0xAC,0xD8,0x4B,0xBE,0x58,0x0F,0xFD,
+0x21,0x80,0x0C,0x76,0x5B,0x67,0xCF,0x0F,0xF1,0x8C,0xF3,0xFE,0x5D,0xDD,0x6F,0xC2,
+0xBC,0x03,0x9D,0x59,0xC5,0x44,0xFE,0xDE,0xF2,0xB3,0x55,0x31,0x08,0xAC,0x0A,0xA2,
+0x0E,0xBC,0x15,0x51,0xDD,0x02,0xBF,0x24,0x26,0xA0,0xEE,0x50,0xA9,0x45,0x61,0x11,
+0x09,0xED,0xDE,0x3C,0x63,0x18,0x66,0x5F,0xD5,0x59,0x95,0xA1,0x52,0x71,0x9E,0xCE,
+0xFB,0x55,0xFF,0x1C,0xB0,0xD0,0xF5,0x0C,0x13,0x3B,0x32,0x78,0xCD,0x25,0x11,0x45,
+0x10,0x95,0x1D,0x42,0x3B,0xE2,0xF0,0xEC,0xB1,0xC5,0x24,0x42,0x5A,0x16,0x3E,0xAF,
+0xE9,0x66,0xEC,0x39,0xEE,0x11,0x9A,0x36,0x2E,0xDD,0xC4,0xF3,0xD9,0x8F,0x94,0x93,
+0x75,0x02,0x0F,0x88,0x10,0xB7,0x94,0x04,0x99,0x12,0xE6,0xD8,0x1A,0xBF,0x39,0x87,
+0x31,0xBF,0xDA,0xF7,0x5D,0x5C,0x36,0x86,0x4C,0xC8,0x8C,0x2B,0x77,0xCA,0x0E,0x2C,
+0x71,0xB8,0x73,0xDF,0x58,0xA8,0x69,0x30,0xAB,0xC9,0x12,0x59,0x6F,0x7B,0x91,0xCC,
+0x6B,0x2B,0x07,0x9B,0xDE,0xCD,0x19,0x1B,0x22,0xDF,0x60,0x36,0x1F,0xB1,0x64,0x4E,
+0x44,0x17,0x1E,0xBC,0x4D,0xB9,0x5D,0x01,0x89,0x95,0x8D,0x3D,0x48,0x05,0x0D,0x8A,
+0x6C,0x7A,0xCC,0xF6,0xB6,0xEB,0x0C,0x85,0xD8,0x92,0xE0,0xF6,0x8E,0x3B,0xFD,0x57,
+0xCB,0xA7,0x9C,0xB6,0xF9,0x5D,0xD9,0xF1,0x87,0x61,0x5E,0xA5,0x9C,0x28,0xCE,0x72,
+0xF9,0x59,0x3A,0xB8,0xCC,0x75,0x05,0x6A,0x47,0x8A,0x00,0x47,0x7F,0xAD,0xAE,0x4D,
+0xE8,0x81,0x9E,0xA7,0x24,0x0D,0x99,0x56,0x06,0x0A,0x06,0x69,0xA4,0x2C,0x9C,0xB9,
+0xAE,0x30,0x8E,0x7C,0xB5,0x24,0xAA,0xBA,0x34,0xD1,0xF2,0xE8,0xAD,0x39,0xDB,0x46,
+0x34,0xE2,0xD4,0x3E,0xD3,0x9A,0x6C,0xD0,0x2C,0x2B,0xB3,0xAE,0xE2,0x3C,0x2D,0x62,
+0x4F,0x9B,0xD1,0x1E,0x8C,0x3F,0x34,0x2E,0xDE,0xD5,0xB0,0x6E,0x92,0x91,0xCB,0xB9,
+0x1E,0x50,0xBC,0x19,0x96,0xE6,0x4F,0x90,0x2F,0x26,0x49,0x15,0x6D,0x4E,0xFF,0x42,
+0xA6,0x71,0x9C,0xEB,0x5E,0x75,0x1C,0x43,0xF6,0xE0,0x2B,0xB2,0xE2,0xC5,0xAB,0xDD,
+0x66,0x93,0xC2,0x00,0x6C,0x70,0xFC,0xC8,0xCC,0x42,0xD5,0xA4,0xCD,0x2F,0x98,0x4A,
+0x95,0x62,0xB9,0xF9,0x9F,0x1A,0x26,0x1D,0x7D,0xDD,0xCD,0x44,0x67,0x13,0x01,0xC9,
+0xF1,0x81,0x08,0x65,0x39,0x14,0x14,0xE3,0x56,0x6A,0x02,0x66,0xCA,0x07,0x31,0x0A,
+0x4C,0x54,0x77,0x21,0xD2,0xB6,0x96,0xAE,0xA5,0xBF,0xD8,0x0C,0xFD,0xAC,0x44,0x67,
+0x4B,0xFD,0x5F,0x61,0x26,0xE9,0x20,0xAB,0xD7,0x58,0xD9,0x92,0x62,0x4C,0xF5,0x7F,
+0xD8,0x89,0x1B,0x7B,0x43,0x99,0x0B,0x2D,0xB8,0xD1,0xCF,0xE0,0x97,0xCE,0x3F,0x0F,
+0xE4,0x90,0x3C,0x54,0x37,0xDD,0x11,0xBE,0xB3,0x7A,0x85,0x0D,0xFE,0x0A,0x8B,0x58,
+0x89,0x42,0x76,0x7C,0x65,0x8C,0x95,0x45,0x78,0x2B,0x82,0x60,0x0E,0xD7,0xB5,0x9E,
+0x54,0x12,0x36,0xDB,0xD3,0x59,0xE1,0x0A,0x2B,0x74,0x71,0xDE,0x3D,0xF2,0xA6,0x8C,
+0xAA,0xB4,0x38,0xE9,0xFB,0x85,0x7A,0x3F,0xC9,0xB4,0x9A,0x80,0x5D,0xCD,0x23,0x6F,
+0x72,0x10,0x27,0xF8,0x83,0x19,0x46,0xD7,0xE7,0xF5,0x1A,0x86,0x6F,0x39,0xA2,0xB4,
+0xC3,0x00,0xFC,0xBE,0xAA,0x2A,0xAA,0x46,0x66,0xC7,0xC1,0x72,0x28,0xC6,0xB7,0xBD,
+0x11,0x5A,0xBE,0x24,0x14,0xEC,0xC0,0x20,0x20,0xDF,0x3B,0x33,0xDE,0xE2,0xB2,0xF2,
+0x71,0xDF,0x81,0xC7,0x16,0xFD,0xE3,0x06,0xEC,0x5E,0x50,0x6B,0x94,0x68,0xF0,0x30,
+0x4E,0x09,0x00,0xD7,0x3E,0x21,0x78,0x33,0x4D,0x70,0x0E,0x50,0xDA,0x6C,0xD4,0x8D,
+0xC4,0xA9,0xD4,0xFE,0x45,0x43,0x10,0x59,0x1A,0x7D,0xC5,0x25,0x78,0x7A,0xEE,0x73,
+0xE8,0x55,0x98,0x56,0x4F,0x41,0x2D,0x56,0xC4,0x6B,0xCB,0xB7,0xD2,0x46,0x77,0xF0,
+0x1A,0x36,0x32,0x66,0x1E,0xEE,0xFD,0x2F,0xB9,0x75,0xB8,0x0F,0x8C,0x29,0xB6,0xCA,
+0x2C,0xD1,0x48,0xC2,0x9C,0xE4,0x72,0x9F,0x4A,0xA0,0x62,0x65,0xFB,0x55,0x7F,0xEE,
+0x32,0xAC,0xF0,0xB1,0x2C,0xEB,0x1D,0xA4,0xF2,0xB2,0x13,0x79,0x9D,0x93,0xC1,0x84,
+0x52,0x29,0xCF,0x52,0x19,0xDB,0x91,0xFF,0xF3,0x16,0x64,0x96,0xEB,0x3E,0x9A,0x69,
+0xEF,0xFC,0xB0,0x16,0x88,0xF4,0x0C,0x7C,0x9E,0xB9,0x51,0xF5,0x84,0x03,0x15,0xB7,
+0x7B,0x21,0xDC,0x4C,0x51,0x53,0x6E,0xBA,0x46,0xDB,0x44,0xBD,0xBD,0x7B,0xF8,0x2E,
+0x09,0x1C,0xFF,0xDE,0xA7,0x1D,0xFB,0x99,0xC0,0x39,0xF3,0x7C,0x4D,0xA6,0xC6,0xE8,
+0xC2,0x92,0x2D,0x77,0xEB,0x5E,0x3C,0x8E,0x87,0x85,0x7E,0xD2,0xA5,0x3A,0xBE,0xD4,
+0x53,0xBB,0x1E,0x9B,0x3A,0xEA,0x40,0x61,0x8F,0xAC,0x60,0xC1,0xB0,0x0E,0xAF,0xE5,
+0xA2,0x17,0x12,0x94,0xED,0x84,0x27,0xFA,0xC5,0xCF,0xBC,0x58,0xFC,0x7D,0xD6,0xAE,
+0x73,0x82,0xF6,0x31,0xE9,0x4F,0x1F,0xA8,0x70,0x02,0x9C,0x73,0x9C,0x42,0x53,0x4D,
+0xF0,0x13,0xD9,0xAC,0xCA,0x7E,0xCE,0x36,0xBF,0x01,0xA3,0xD5,0xF9,0x22,0x22,0x18,
+0xC9,0xFE,0xA1,0x35,0x35,0xCC,0x32,0x98,0x05,0x35,0xF1,0xD8,0x3C,0x23,0x34,0x45,
+0xF8,0xB0,0xF3,0xD1,0x24,0xF8,0x03,0x8D,0x73,0x80,0xC8,0x8D,0x87,0xA5,0xDA,0x88,
+0x23,0xDB,0x4A,0xFF,0x79,0x8F,0xF5,0x8F,0x47,0x7F,0x33,0x52,0x69,0xC0,0x99,0x3D,
+0x8A,0x8D,0xD0,0x43,0x7E,0xBA,0x99,0x5F,0x8A,0x5A,0x2F,0xE5,0x10,0x6F,0xC8,0xED,
+0x29,0x25,0x17,0x74,0x0E,0x35,0xBB,0x9E,0xF1,0x30,0x47,0x87,0x1B,0xE3,0xA4,0xAF,
+0x5B,0x18,0x34,0xE6,0x0C,0x24,0x98,0xB8,0x30,0x6E,0x7D,0xE8,0xCC,0xFE,0x0A,0x83,
+0xF7,0xBA,0xF1,0xEC,0xD0,0xA7,0xB5,0x88,0x94,0xB6,0x6C,0xF7,0xD6,0xC8,0x11,0x8F,
+0x18,0x6B,0x45,0x90,0xBD,0xC4,0x80,0x27,0x5C,0x65,0x3F,0x64,0x7E,0x83,0xD5,0xFA,
+0xAD,0x1D,0x10,0xA9,0x57,0x89,0x75,0xCE,0x7C,0x79,0xBA,0xAB,0x47,0xFB,0x38,0x63,
+0x25,0xE0,0xB3,0x76,0xCD,0x4B,0xA2,0xE6,0xEA,0x2A,0x4B,0xB1,0x96,0x1F,0xAD,0xC6,
+0x50,0x74,0xB8,0xA4,0xA0,0x28,0x97,0x49,0x32,0x48,0x5E,0xF9,0x9A,0xBB,0x68,0xC4,
+0x38,0x52,0xAD,0x3A,0x4B,0x8A,0x15,0x04,0xE2,0x03,0x55,0xA2,0x08,0x2E,0x8E,0x17,
+0x55,0x80,0xE7,0x12,0x5D,0x8B,0x48,0xC1,0x5B,0xB5,0x53,0x51,0x14,0xE1,0xAE,0x92,
+0xD9,0x1B,0xCA,0xB2,0x27,0x06,0x57,0x0F,0x4C,0xD4,0x79,0xBF,0x57,0x90,0xDD,0xE4,
+0x81,0xE1,0x5C,0x01,0xF7,0x5D,0x5C,0x44,0xCE,0x64,0xF6,0xB5,0x3B,0x0B,0x9D,0x05,
+0x21,0x86,0x3D,0x09,0xA8,0x3B,0x89,0x60,0x97,0x34,0x38,0x09,0xF3,0x7F,0xDC,0x93,
+0x1C,0x0D,0xCB,0xEF,0x0B,0x11,0xF4,0x68,0x08,0xEA,0xA0,0xEF,0xC0,0x5A,0xCF,0x81,
+0xE9,0xC7,0x49,0x9F,0x2E,0xFA,0x3E,0x82,0x75,0xF4,0xD3,0x57,0x40,0xD3,0x91,0x23,
+0x3E,0x69,0x54,0xB3,0x7B,0x9E,0xD6,0xA9,0xF9,0x19,0x59,0x94,0x8B,0x01,0x1F,0x8A,
+0xAF,0x40,0x67,0x5F,0x33,0x16,0x29,0xEC,0xBC,0x83,0xF7,0x2B,0xBB,0x82,0xC3,0xA7,
+0xDC,0xEF,0x95,0x04,0x67,0x9D,0xB6,0x63,0x06,0xB7,0xA5,0x26,0xD0,0x31,0x2A,0x06,
+0x13,0x07,0xC9,0xD2,0x6F,0x8E,0xA8,0x4A,0x49,0x22,0x36,0x9B,0x76,0xA9,0x76,0x87,
+0x9B,0xFA,0x6A,0x0D,0xE4,0x78,0x4E,0x77,0x72,0x24,0xBF,0x62,0x00,0x04,0x2D,0x6A,
+0x1F,0xC2,0x6D,0xD0,0x58,0xAF,0x07,0x37,0xE5,0xD3,0x39,0x97,0xF2,0xAE,0x4E,0x5A,
+0x12,0x95,0x18,0x1B,0x3B,0x05,0x37,0xC5,0xA3,0xCB,0xC3,0xD6,0x31,0x56,0x63,0x8E,
+0xBC,0x6A,0xAA,0xE7,0x3D,0xDF,0x2C,0xB1,0x3C,0x15,0x5B,0x30,0x6C,0x9F,0x6D,0x8B,
+0x5C,0xB1,0x1C,0xA6,0x04,0x37,0x86,0x91,0xE3,0xA7,0x22,0x4D,0xE7,0x9A,0x5F,0x6B,
+0x0B,0x41,0x88,0x28,0x64,0x63,0xE2,0xE1,0x02,0xE5,0x9D,0xED,0xB3,0xA8,0x60,0xDA,
+0x93,0x59,0x40,0x70,0x48,0x74,0x41,0x86,0xD8,0xA1,0xAB,0xB4,0x51,0x69,0xE6,0x6D,
+0xED,0xA1,0xC7,0xE0,0xE8,0xA0,0x68,0x0C,0x03,0x41,0xEA,0x02,0xEE,0x61,0x6E,0xDF,
+0x07,0x84,0x2C,0x2A,0x61,0x47,0xAD,0x17,0xF4,0xC6,0x08,0xA3,0xF6,0x20,0x28,0x25,
+0x05,0xD9,0x5B,0xDC,0x85,0xC3,0x5D,0xA3,0x0F,0x3A,0xCC,0xDA,0x0D,0x71,0x7A,0xA1,
+0xFD,0x52,0xC4,0x95,0x04,0xA6,0xD0,0xBA,0xBC,0x48,0xF0,0x87,0x82,0xA2,0x56,0x1B,
+0x42,0x10,0x25,0x35,0x50,0x99,0xE2,0x0B,0xEB,0xC6,0x64,0x77,0xE6,0xC2,0x26,0x4F,
+0x3B,0xA2,0xFA,0x48,0xDB,0xAB,0xE7,0xEB,0x0B,0x87,0xD2,0xAC,0x4C,0xFB,0x06,0xA7,
+0xA3,0x7C,0x65,0xAE,0x86,0xA5,0x2E,0xEE,0xA5,0x7B,0x60,0x53,0x57,0xFD,0x72,0x7D,
+0xAC,0x8D,0xC9,0xA2,0xBA,0xBC,0x09,0xC1,0xB2,0xBC,0x23,0x1F,0x3D,0x43,0x14,0xBB,
+0x68,0x71,0x32,0xDB,0x41,0xEE,0x58,0x45,0xB0,0x4A,0x54,0x42,0xCD,0xA7,0xA0,0x3F,
+0x8A,0xF6,0xC5,0x7A,0x59,0xA8,0x19,0xBF,0x5A,0x80,0xBF,0x67,0x08,0x2E,0xBB,0xD8,
+0xCB,0x16,0x1E,0xCC,0xE6,0x20,0x11,0x0D,0x24,0x10,0x38,0x9F,0x21,0x8E,0x31,0x0C,
+0x97,0x34,0x7A,0x53,0x0C,0x05,0xFA,0xC7,0x18,0x3F,0x1F,0x86,0x49,0xF5,0x5B,0x6E,
+0x39,0xAE,0x3F,0xEC,0x3C,0xD9,0x79,0xEA,0x89,0xD3,0x2C,0xAF,0xB6,0xBD,0x1E,0xE6,
+0xB3,0x43,0xB3,0x2F,0xF7,0x57,0xAB,0x43,0x5E,0xFF,0x31,0x01,0x5E,0xE8,0x35,0x82,
+0xC0,0x5D,0xCE,0x97,0x77,0x09,0x22,0xE1,0xAB,0x8F,0xB3,0xCB,0x94,0xCD,0xDF,0x69,
+0x59,0x64,0x23,0xEF,0x45,0x88,0xD6,0x3A,0xA8,0xB0,0x15,0x04,0x67,0x9E,0x80,0xD7,
+0xDF,0x93,0xB4,0x1A,0xB7,0xEB,0x7C,0x0A,0x2C,0x6D,0x12,0x3C,0x2E,0x22,0xC0,0x00,
+0x56,0x95,0x8F,0xE3,0xC1,0xB0,0xD1,0xE7,0xA4,0xB2,0xB1,0xC1,0xC8,0xA9,0xFD,0xF6,
+0xC5,0x00,0xC0,0x5E,0x67,0xEC,0x49,0x66,0x6B,0x64,0xED,0x29,0xD6,0xA1,0xD4,0xE5,
+0x35,0xB4,0x24,0xDA,0xBF,0x48,0x56,0x77,0x8F,0x5A,0xD5,0x94,0x75,0x8D,0xB3,0xF2,
+0x3E,0xFF,0xF4,0x81,0x2D,0xAE,0xC3,0xA4,0xE7,0xC4,0xC0,0xB2,0xF7,0x66,0xFE,0x50,
+0x2B,0x9D,0x2C,0xC9,0x21,0x6B,0x67,0xA6,0x92,0x16,0xCB,0x26,0xC2,0x0B,0x51,0x33,
+0xDA,0xCE,0xBA,0xD3,0xF0,0xFE,0x83,0x03,0x1A,0xC9,0x68,0xDB,0x15,0x91,0x79,0xF1,
+0x58,0x83,0x51,0x71,0x44,0x1A,0x07,0xF3,0x96,0x69,0x45,0x40,0xE9,0x6E,0xD7,0x43,
+0x96,0xD3,0x08,0xCD,0x8C,0x5B,0x73,0x65,0x36,0x61,0x24,0x27,0x3C,0x31,0xF3,0x25,
+0x19,0x63,0x8A,0xC7,0xE0,0x1B,0xE8,0x84,0x6E,0xD2,0xB2,0xDD,0x37,0xE1,0xB8,0x7E,
+0x33,0x02,0x9D,0x29,0xA3,0x68,0x99,0xF2,0xE2,0x72,0x9F,0x46,0x28,0x9B,0x76,0xF3,
+0x4F,0xED,0x4C,0x9D,0xA7,0x0E,0x17,0x8D,0x3D,0x23,0xA8,0x4B,0xF9,0xB8,0xE8,0xC2,
+0x53,0xC8,0x81,0x2A,0xDE,0x5F,0xB8,0x5D,0x94,0x9F,0x32,0x1D,0x95,0xBF,0x38,0xF7,
+0xA8,0x37,0xB5,0xF5,0x30,0x1C,0xDD,0xE8,0x4F,0xB1,0x8B,0x76,0x63,0xE2,0x3A,0x80,
+0x91,0x82,0xC3,0xA0,0x8B,0xF2,0x5B,0x25,0x7E,0x55,0xD9,0x38,0x52,0xF3,0x2F,0xB4,
+0x5F,0xD2,0x9A,0x1C,0xC9,0x13,0xFB,0x9A,0xAF,0xF0,0x3D,0xAD,0xE0,0x7B,0x90,0xBC,
+0x0C,0x01,0x52,0x8F,0x61,0xD7,0xB0,0xEF,0x40,0x8C,0x89,0x7C,0xD5,0x16,0x3F,0xDF,
+0x1D,0xD9,0xF6,0x90,0x7B,0xCC,0x86,0xE3,0xEC,0x86,0x4C,0xDE,0xF8,0xCA,0x0F,0x5C,
+0x27,0x87,0x37,0xFF,0xAC,0x62,0x9B,0xCF,0x9E,0x14,0x6F,0xE3,0xDB,0xC8,0x29,0x4D,
+0x1E,0x32,0x41,0xAA,0x12,0x78,0x42,0xB4,0x75,0x17,0x55,0x54,0x5C,0x2D,0x39,0x26,
+0x93,0x8E,0x06,0x04,0xFA,0x00,0xDE,0x88,0xBE,0xBE,0x87,0xDA,0x9B,0x61,0x2E,0x65,
+0x24,0x6C,0x80,0xC5,0x0A,0x3E,0x03,0x4E,0xCC,0x2C,0xA4,0xE7,0x0E,0x97,0x0D,0x2B,
+0x31,0x0E,0x58,0x8D,0x33,0xD3,0x7B,0xD7,0x58,0x76,0xC8,0x3A,0x6C,0x4E,0xCB,0x8C,
+0xC3,0xB6,0x79,0xAD,0x4E,0xE4,0x5A,0x78,0x47,0xCC,0xA1,0xD5,0xAE,0x0C,0x81,0x06,
+0xFC,0xB5,0xB6,0x0B,0x2B,0x95,0x3A,0x2D,0xC4,0x51,0x8E,0x44,0x7F,0x2F,0x1F,0x37,
+0xDC,0x78,0x03,0x20,0x4B,0x10,0x05,0xCE,0x15,0xF4,0x6A,0xD1,0x47,0x2B,0x4D,0xFC,
+0x00,0x1B,0x49,0xB9,0x07,0x69,0x76,0x85,0xE4,0xFB,0x66,0x7D,0x20,0xFC,0xD6,0x92,
+0xAB,0xDC,0x02,0xCF,0x65,0xB1,0x3E,0x90,0x5F,0x36,0xE0,0x93,0x4D,0x89,0xE1,0x39,
+0xA5,0xCA,0xDC,0x5D,0xCF,0x28,0x02,0x13,0x73,0x9E,0xAC,0x6F,0x70,0x83,0xEE,0x3B,
+0x6E,0xC7,0x8B,0x28,0x6D,0x12,0x14,0xED,0xF9,0xB7,0x78,0xCF,0x18,0xF8,0x84,0x59,
+0x30,0xE9,0x2A,0x13,0x23,0x36,0x10,0x50,0xC6,0xA7,0xF9,0x19,0x83,0xD0,0xB1,0x85,
+0x04,0xA1,0x35,0xEE,0x5C,0x5C,0x46,0x09,0xE5,0x32,0xB7,0xEF,0xF1,0xDF,0x48,0xA3,
+0x73,0x05,0x34,0x01,0x2A,0x07,0xEB,0xE4,0x85,0xD1,0x88,0x6A,0x7D,0xEA,0x13,0x93,
+0x02,0x17,0x8C,0x1D,0x4C,0xB9,0x2D,0x8E,0x9B,0xA2,0x30,0x17,0x12,0x5A,0x28,0x9C,
+0xD8,0xC2,0x7F,0x77,0x3B,0x70,0x51,0xAA,0xAD,0x06,0x4A,0xF0,0x9D,0xD8,0x98,0x96,
+0x11,0xC3,0xED,0xA6,0x8A,0x60,0x8A,0xEC,0xE3,0xBB,0x4E,0xD4,0x81,0x15,0xBD,0x21,
+0xE2,0x9C,0xBE,0x18,0xB9,0x73,0xAF,0xFE,0x3E,0x1C,0x0E,0x84,0xF5,0xA3,0xF2,0xF4,
+0xE5,0xCD,0x75,0x75,0x49,0x4D,0x72,0x38,0x53,0x34,0x44,0x56,0x71,0xF1,0x09,0xA5,
+0xAF,0x66,0x7E,0x98,0x20,0xF9,0xB6,0x6F,0x6F,0x1B,0x63,0x4F,0x6B,0x85,0x9A,0xE1,
+0x5B,0x68,0xE6,0x4B,0x69,0x74,0x9A,0x92,0xA6,0x44,0xC6,0x9C,0xA0,0xD2,0x97,0x94,
+0xA1,0x70,0xA0,0x0A,0x9F,0x71,0xBE,0xDD,0x74,0xDE,0x84,0xC6,0xCA,0x6C,0xF1,0x52,
+0x7A,0x42,0x21,0xFE,0xD8,0x64,0x41,0xD4,0xC5,0x98,0x5F,0xD6,0x26,0x45,0x60,0x61,
+0xFA,0x03,0x0F,0xF8,0xEA,0xE5,0xB5,0x0F,0x1D,0x89,0x40,0x72,0x1A,0x3D,0x88,0xFD,
+0xB5,0xF5,0x0A,0xDC,0x7A,0x5E,0x57,0x2A,0xD1,0x60,0xBA,0x55,0x9C,0xAA,0x7F,0x08,
+0x4B,0x57,0x30,0xCA,0x55,0x6D,0xBD,0xBD,0x11,0x8B,0xE4,0xB7,0x7C,0x98,0xF4,0x0D,
+0x29,0x91,0xE9,0x6D,0xDA,0x39,0x36,0x22,0xA9,0x79,0xC4,0x96,0x2F,0x50,0x27,0x9E,
+0xD0,0x62,0x18,0x16,0x25,0x0D,0xE9,0xD9,0xF8,0x7E,0xA9,0x5D,0x54,0x4A,0x99,0x47,
+0xB9,0xEF,0x11,0xEA,0xD5,0x33,0x34,0x1F,0xFC,0x01,0x27,0x3B,0x40,0xE0,0x1C,0x91,
+0xB8,0x08,0x63,0x74,0x4A,0x82,0xD4,0x07,0xFB,0x41,0x0F,0x92,0xF6,0x14,0x19,0xCE,
+0x62,0xDD,0x90,0x1E,0x7D,0xF7,0x7F,0x6A,0x46,0x05,0x70,0x47,0x74,0xFF,0x54,0x6C,
+0xAD,0x6A,0xBB,0x3C,0xD0,0xC7,0x6B,0xA9,0x22,0x99,0xC1,0xA4,0x46,0x59,0xAA,0x62,
+0x16,0x7C,0xBA,0x80,0xBC,0xFC,0x07,0x38,0xC8,0xED,0xB1,0xB3,0x6F,0x46,0xB8,0x7B,
+0xFB,0x36,0x11,0x8B,0xEB,0x95,0xB3,0xFC,0xE7,0xCA,0xA8,0x8F,0x2B,0xD5,0xA2,0x0F,
+0x96,0x31,0x40,0x40,0x2D,0x65,0x8D,0x21,0xCF,0x80,0x7A,0xE2,0x7A,0x2E,0x26,0x5D,
+0x28,0xC2,0x1F,0x13,0x3F,0x56,0x9E,0x04,0x68,0xC0,0x2A,0x3F,0xAF,0x61,0x52,0xEB,
+0x76,0x29,0xDF,0xF1,0xDC,0x36,0x1B,0x3B,0x5A,0xCE,0x8C,0xC1,0x73,0x54,0xC9,0xC3,
+0x70,0xA9,0x9E,0xDF,0x07,0x04,0x9A,0xCF,0x4B,0xD1,0x28,0x19,0xEF,0xBC,0xF5,0xBB,
+0x84,0x72,0xAC,0x5E,0x0E,0x43,0x8F,0x30,0x0D,0x0A,0x38,0xA8,0xDC,0x2D,0x19,0x92,
+0xC5,0x88,0xB4,0x18,0x41,0xB5,0x8A,0x14,0x97,0x48,0x62,0x7A,0x1A,0x4B,0x73,0x2C,
+0x98,0x03,0xBE,0xE6,0x0A,0xF9,0xF3,0x67,0xAD,0x27,0xA3,0x24,0xC9,0x45,0x87,0xB4,
+0xE3,0xFA,0x4D,0x17,0xF1,0x06,0xC7,0xB8,0xAA,0x4A,0x68,0x75,0x10,0xFB,0xFC,0xAE,
+0x44,0x98,0x8B,0xCE,0x6E,0x89,0x93,0x33,0x58,0x6A,0x49,0xCD,0x83,0x28,0xAF,0x66,
+0x52,0x66,0x29,0xF4,0xF9,0xA6,0xA0,0xD9,0xB3,0x34,0xAB,0x0D,0x86,0xA3,0x4F,0x54,
+0xB2,0x7E,0xB6,0x45,0x7A,0x0C,0x39,0xE5,0x4A,0x4F,0x5A,0xFE,0xEC,0x76,0x95,0xA7,
+0x90,0xB1,0x01,0x6E,0xB9,0xA1,0x09,0xF1,0xD6,0xFE,0xB9,0x9A,0xE2,0x88,0xA7,0x01,
+0xFA,0x6B,0xD4,0x9D,0xD4,0x96,0x7C,0x5A,0x92,0x81,0x6C,0x27,0x40,0xC5,0x25,0xEA,
+0x64,0x6A,0x33,0xEF,0xCC,0x09,0xCD,0xBA,0xD2,0xA9,0xC5,0x20,0x1F,0xC0,0x93,0x1E,
+0x03,0xE2,0xD2,0xA6,0x04,0xEF,0x2D,0xF5,0xA5,0x46,0xC4,0x84,0x02,0x17,0xBF,0xB0,
+0x4B,0xF7,0xB0,0x7E,0x9D,0xD6,0xC0,0x8D,0xFF,0x2A,0x19,0x10,0xA5,0xD1,0xDD,0x69,
+0x8A,0x40,0x52,0xF8,0x5B,0x26,0xFE,0x50,0x6D,0x09,0x24,0x62,0xEB,0xF2,0x48,0x9F,
+0x24,0xCD,0xEE,0xBF,0x67,0xCE,0x86,0xCC,0xC4,0xDB,0xAA,0xA9,0xA8,0xE5,0x8F,0xD3,
+0x37,0xD3,0xC7,0xB7,0x56,0xDB,0x97,0xF8,0x28,0xE8,0x83,0x38,0x1C,0x0A,0xF3,0x02,
+0xAE,0x0F,0xA4,0xFD,0x1D,0x97,0xEE,0x8B,0x27,0xE4,0x2F,0xC9,0x72,0x91,0x94,0xD5,
+0x85,0x2F,0x69,0x48,0xFE,0xF7,0x6B,0xB4,0x82,0x00,0xBA,0x18,0xB9,0xC3,0xAC,0xD1,
+0x23,0x10,0x6A,0x87,0xAB,0x92,0x1A,0xD4,0x1F,0x2F,0x2B,0x9B,0x88,0x5D,0x7D,0xF2,
+0x9D,0xE3,0x35,0xD4,0x83,0xFF,0xC8,0x9E,0x74,0x77,0xE7,0x1A,0x0B,0x6D,0x50,0x2E,
+0xA6,0xBD,0x1B,0x75,0x3E,0xB1,0xEC,0x9A,0x64,0xF6,0x31,0x25,0xD7,0x58,0xCB,0x06,
+0xD3,0x76,0x16,0x22,0xC0,0x13,0xD6,0x8C,0x4D,0x22,0x91,0xAF,0xB5,0x32,0xA3,0x7D,
+0x41,0x78,0x00,0xFC,0x43,0xB9,0x4F,0xB0,0xE5,0x6E,0x6D,0x83,0xB7,0x3D,0x9E,0x77,
+0xF9,0x0B,0x1E,0x81,0x79,0xE7,0x8E,0xDF,0xD5,0xC4,0x0E,0x71,0x18,0x44,0x4E,0x26,
+0x93,0xD1,0xCB,0x72,0x5D,0x90,0x47,0xA3,0x71,0xBE,0xE9,0x47,0x12,0xF4,0xC1,0xA4,
+0x8F,0xA0,0xD9,0xCA,0x37,0xF6,0xF9,0x65,0x02,0x06,0x94,0x59,0x1D,0xCF,0xAE,0x14,
+0x60,0xD7,0x7D,0xCB,0xDA,0x80,0xA2,0xC8,0xE1,0x39,0x11,0x39,0x2D,0x94,0x22,0x21,
+0x5D,0x09,0x12,0x44,0xD0,0x2C,0x00,0x0D,0x1A,0xE6,0x25,0xC6,0x7F,0xA5,0xC6,0x6F,
+0x47,0xF8,0x41,0xD2,0x75,0xFD,0x95,0xE9,0xC5,0x45,0xD8,0x4E,0xBD,0x8D,0x11,0xF5,
+0x0F,0xED,0x23,0x0A,0x77,0xF1,0x50,0x4D,0x17,0x4E,0x4C,0x3B,0xDE,0x22,0x24,0x98,
+0x54,0xE6,0x68,0xDA,0xA4,0x63,0xB6,0xD8,0x89,0x5B,0x6A,0x53,0x7C,0x6F,0xA6,0x73,
+0xA7,0xE0,0xDE,0x63,0x21,0x7F,0x96,0x17,0xA1,0x11,0xB8,0x3E,0x7D,0xAA,0xFB,0x65,
+0x49,0xCA,0xBF,0x74,0x57,0x3C,0xE5,0x66,0x01,0x3C,0x23,0xB2,0xF0,0x64,0xE4,0x1F,
+0x43,0x45,0x0F,0xF6,0xB6,0x50,0xA5,0xFD,0xB2,0xAA,0xD9,0xEA,0xAB,0x2F,0xEF,0xCF,
+0xFF,0x8B,0x5F,0xAF,0x20,0x98,0xE4,0x89,0xBA,0xCB,0xBE,0x4A,0xCD,0x0B,0x3A,0x90,
+0x2E,0x42,0x5E,0x3D,0xF6,0x57,0x0C,0xD5,0x86,0x57,0xC6,0xA2,0x3A,0xF3,0x81,0x0D,
+0x7B,0x7B,0xEB,0x4B,0x3B,0xEC,0xE2,0x53,0x62,0x05,0x88,0x93,0x0E,0xE6,0xB0,0x1C,
+0xA4,0x80,0x14,0x7F,0x8E,0x02,0xA1,0x36,0x4C,0xBC,0xE3,0x48,0x79,0xE4,0x46,0x41,
+0x13,0x9C,0x31,0xB2,0x5E,0x7B,0xF0,0x99,0xF0,0x26,0xB5,0xE1,0x4C,0x34,0x2A,0x46,
+0x71,0xF4,0x5B,0xC9,0x1C,0x70,0x9C,0x15,0xC7,0xE1,0x1D,0x42,0xC3,0xF5,0x08,0x36,
+0x1E,0xCE,0x05,0x08,0x30,0xA7,0x32,0x08,0x55,0xC2,0x20,0x30,0xD2,0xD3,0x2B,0x34,
+0x01,0xDF,0xDD,0xAC,0x3C,0xBD,0x29,0x3E,0x5F,0x07,0x82,0x9C,0x51,0xE3,0x06,0xE8,
+0x92,0x8C,0x0E,0x64,0x49,0x15,0xED,0x75,0x23,0xB3,0x53,0x73,0x32,0x4C,0x33,0x85,
+0x20,0x70,0xA0,0x9B,0x3D,0x5A,0x5B,0xA0,0xA8,0xEE,0xAD,0x79,0xF3,0xAE,0x84,0x03,
+0xC6,0xE8,0x7E,0x04,0x38,0x07,0x55,0x69,0x54,0x5C,0x52,0xD7,0x29,0xDA,0x9F,0x05,
+0xBB,0x91,0xCC,0xDB,0xD8,0x8C,0x67,0x6C,0x15,0xEA,0x89,0x37,0xC1,0xFA,0x35,0x3C,
+0x1B,0x2E,0x8E,0x3A,0x69,0xD8,0x58,0x5E,0x9B,0x7E,0x79,0x60,0x95,0x8A,0x51,0x5C,
+0x42,0x18,0xCA,0xE0,0xDE,0x3A,0xDE,0x9F,0xC3,0xB6,0x61,0xF8,0x82,0xED,0xF2,0x70,
+0xF4,0x59,0x2A,0x3B,0x6C,0x85,0x56,0x97,0x53,0x31,0x99,0x86,0x56,0x67,0xDB,0xD0,
+0x55,0xBB,0xAD,0xCC,0x96,0x9D,0x10,0xD6,0x99,0xDA,0xBC,0x6C,0xB1,0x7C,0x1E,0x59,
+0x2C,0x7F,0x51,0x37,0x12,0x66,0x42,0x87,0x6F,0xAD,0xE1,0x6E,0x35,0xC8,0xEE,0xBD,
+0x19,0x13,0x81,0x30,0x32,0xAB,0xF7,0xAC,0x5C,0x3D,0x35,0x77,0xE7,0x03,0x47,0x33,
+0xA1,0x60,0x9F,0x4D,0x90,0x2B,0xA9,0x25,0x2C,0xBF,0xFF,0x82,0x0C,0xE9,0x8D,0x16,
+0x62,0xEA,0x72,0xC1,0x39,0xE0,0x27,0xF7,0x00,0xA2,0x51,0x55,0x68,0xC2,0x65,0x43,
+0xDD,0x44,0xE8,0x84,0x14,0xD0,0xFB,0x74,0xEC,0x91,0x78,0xC4,0xE0,0x87,0x9A,0x0B,
+0xD0,0x16,0xDC,0x3E,0xB5,0xBB,0x12,0xC7,0xB7,0x63,0xD7,0xB7,0x6B,0x08,0x05,0x5F,
+0x6D,0x85,0x49,0x71,0x34,0x1D,0x4E,0x5F,0x61,0x3F,0x3F,0x78,0x78,0x21,0x1B,0x57,
+0x94,0x0C,0x4F,0x4A,0xD9,0x6B,0x15,0xF2,0xBE,0x9C,0xC2,0xF0,0x8E,0x1C,0xFD,0xDC,
+0x61,0x8A,0xB8,0xDD,0xE9,0x99,0x76,0x58,0x63,0x9B,0xFA,0x74,0x59,0x5C,0xB4,0x60,
+0x96,0xDB,0x08,0x1A,0x32,0xBB,0xBB,0xFD,0x64,0x54,0x07,0x21,0xE0,0xA5,0x80,0xF7,
+0x7C,0xFE,0xE3,0xD0,0xF8,0x39,0xCB,0x08,0x3A,0xD4,0xA5,0xA8,0xFE,0x1D,0xFD,0x84,
+0xF8,0xC6,0xE4,0x0D,0xB5,0x95,0x7B,0xBB,0x36,0xAF,0x83,0x70,0x97,0xD9,0x49,0xD3,
+0xBD,0x8E,0x6C,0xF2,0x9C,0xA6,0x97,0x2A,0xEA,0x9F,0xAE,0xF3,0x0D,0x66,0x0C,0x7D,
+0x5E,0x9A,0x7C,0x8C,0xF2,0x3B,0xF6,0x07,0x83,0x62,0xA3,0x5B,0x36,0x69,0xBC,0x12,
+0x77,0x92,0x6F,0x92,0x1A,0x67,0x20,0xC8,0xDF,0xC4,0x22,0xC3,0xA3,0xD4,0xF3,0x81,
+0x23,0xAD,0x5D,0x23,0x37,0x9F,0xF4,0x0B,0xBB,0xE6,0x7E,0x5C,0xC7,0x65,0x10,0x1D,
+0x63,0x11,0x8A,0x6A,0x0F,0x98,0x29,0x8F,0xD8,0x14,0x4E,0xF6,0x30,0x90,0x87,0x9B,
+0xA5,0xC8,0x2D,0x08,0x9F,0x58,0xC3,0xA8,0x98,0x78,0xAF,0x6D,0x01,0xC2,0xC9,0x7F,
+0xD1,0xCE,0xF7,0x13,0x60,0xEA,0x3F,0x06,0x96,0x25,0xAA,0xA4,0xDF,0x24,0x56,0xE7,
+0xF5,0x91,0x91,0xC6,0xB4,0x7A,0x0C,0x1F,0x95,0xA7,0xFE,0x5A,0xF1,0x1F,0xF7,0xB9,
+0x85,0xF1,0xC5,0xA2,0x44,0xEE,0x82,0x48,0xAA,0xF3,0x4F,0x68,0xB3,0xBF,0x16,0x06,
+0x18,0x1D,0x52,0x4C,0x54,0x35,0xC4,0xF9,0x9B,0xFA,0xFB,0x93,0x55,0xF0,0xF6,0xCE,
+0x92,0xBD,0x86,0x65,0xAC,0xB2,0x54,0x87,0x13,0x45,0x49,0x9B,0xB5,0x46,0x2D,0x8F,
+0xB7,0x70,0x31,0x79,0x2C,0xA9,0xF8,0x11,0x8F,0x19,0x85,0x83,0x2E,0x28,0xFA,0xE8,
+0x03,0x94,0xB5,0x89,0x71,0xDE,0x0E,0x13,0xDD,0xE2,0x01,0xD2,0xD2,0x51,0x01,0x2C,
+0x99,0xD1,0x0A,0x27,0x45,0x01,0xF5,0xEC,0x2F,0x93,0xAC,0x57,0x94,0x7F,0x86,0xEC,
+0x8C,0xC0,0x3E,0x16,0x0B,0x53,0x11,0xDD,0xC1,0x28,0x61,0xD1,0x21,0x2A,0xF0,0xD5,
+0x4B,0x8B,0x48,0xBD,0x78,0x22,0x67,0x9E,0x3D,0x04,0xC9,0x9D,0x4E,0x17,0x7F,0x0B,
+0x9B,0x8C,0x7D,0xD1,0x2E,0xB8,0xDB,0x37,0x6C,0x7D,0x19,0x32,0x6B,0xA0,0xB2,0x17,
+0xAC,0xF9,0xD6,0xBC,0xED,0xC6,0xC2,0x4F,0xFF,0xD8,0xA7,0x0C,0x7A,0x1A,0xC5,0x59,
+0x8A,0xFB,0xC7,0x9F,0xD0,0xE5,0x50,0x3D,0x51,0x0F,0x8B,0x11,0x24,0x75,0x04,0x63,
+0x33,0x48,0x36,0xA4,0x9E,0xB7,0xB4,0x0C,0x20,0x6A,0xDE,0x71,0x71,0x96,0xA9,0x1B,
+0x9C,0x25,0x55,0x91,0x4F,0x03,0xC8,0xE3,0xE4,0xC2,0xAB,0x3A,0xA2,0x05,0x61,0x48,
+0xF2,0x38,0xB9,0x86,0x15,0x41,0x52,0x31,0x58,0x82,0xE2,0xED,0x3E,0x43,0x1F,0x6F,
+0xDA,0xA2,0x7B,0x51,0xE8,0xE2,0x8D,0xB9,0xCD,0x53,0x47,0x09,0x6D,0x59,0x89,0x9E,
+0x10,0xBE,0x78,0x31,0xA7,0x5F,0x1E,0x2C,0x7B,0x1C,0x33,0xDC,0x17,0x50,0x17,0x71,
+0x5D,0x55,0xDA,0xB3,0x81,0x4A,0x80,0x44,0x9D,0x8E,0xE0,0x49,0x5C,0x0B,0xC7,0x7A,
+0x1B,0xD2,0xF4,0x73,0xEE,0x38,0x96,0xCD,0x28,0x43,0xC0,0x62,0xC0,0x4D,0xB9,0x5D,
+0xD5,0xA8,0x79,0x6C,0x75,0x15,0x36,0x41,0x5B,0x00,0xB6,0x13,0xA1,0xA3,0xAE,0x77,
+0x74,0x5D,0xC9,0xAD,0x73,0xCF,0x2D,0x35,0x29,0xE7,0xB7,0x8D,0x20,0xFB,0x62,0x1C,
+0x50,0x02,0xAF,0x78,0x14,0xAE,0x25,0x95,0x68,0x2F,0x21,0xF9,0x70,0x47,0x3B,0xD2,
+0x27,0xCB,0xD3,0x5C,0xFC,0xF2,0xF3,0x5A,0x21,0xCE,0xA9,0x9E,0x64,0xA2,0xB8,0x2A,
+0x12,0xE3,0x0F,0xC7,0x2A,0x73,0xE3,0x65,0x05,0x80,0x14,0x9A,0x4A,0x99,0x19,0x74,
+0x42,0xBA,0xB3,0x09,0xA0,0x6A,0x72,0xFC,0x82,0xC6,0xD4,0xB4,0x7F,0x45,0x31,0xEF,
+0x4D,0xB0,0xB1,0x34,0x5C,0x26,0xDA,0xD0,0x1B,0x6C,0x57,0x88,0x69,0xD7,0xEF,0xE1,
+0x8B,0x69,0x16,0x56,0x24,0xBA,0xE6,0x38,0x8A,0xEF,0xCA,0xA7,0xB4,0x97,0xBF,0x46,
+0x3B,0xEB,0x1C,0xD9,0xC3,0xC0,0x42,0x0E,0x43,0x98,0xEE,0xDB,0x61,0xFD,0x4C,0x9C,
+0xEB,0xEC,0x29,0xB5,0xDC,0x3D,0x76,0x46,0x6F,0xFF,0x4D,0xCC,0x02,0x64,0x06,0x40,
+0xB0,0xD9,0x19,0x39,0x59,0x02,0x95,0x26,0x34,0x89,0xA0,0x61,0xA6,0x8B,0x07,0x37,
+0xAE,0xA4,0xA1,0x4A,0xD4,0x2E,0x68,0x6F,0x0D,0xA9,0x0A,0x89,0xCF,0x4F,0xB3,0x60,
+0x68,0x7D,0x06,0x28,0x09,0x42,0x32,0xFB,0xE0,0x90,0x93,0xF1,0xAD,0x07,0x6B,0x75,
+0x9A,0x1E,0xAC,0x18,0x67,0xDF,0x53,0xD6,0x4B,0xB1,0xF0,0xC8,0x91,0x20,0x72,0x5A,
+0x8D,0x52,0xEF,0xDF,0xE9,0x0D,0xFA,0x1D,0x33,0x59,0xCC,0x54,0x2D,0x8E,0x35,0xD7,
+0xEE,0x18,0x76,0x03,0xE2,0xE0,0xB0,0xB6,0x23,0xE8,0x8A,0x8F,0xDB,0xAA,0x30,0x98,
+0x75,0xCF,0x18,0x64,0x4E,0xEC,0xBF,0x47,0x5A,0xA4,0xC1,0xFC,0xB8,0x33,0x7A,0x44,
+0x22,0x3F,0x8C,0xEA,0xE6,0x2B,0x88,0xE4,0xD7,0xED,0x3C,0xD0,0x15,0x27,0x4A,0x87,
+0xBC,0x1C,0xBD,0x3B,0x77,0x04,0x15,0x67,0xA6,0x88,0x69,0xB0,0x16,0x81,0x85,0xB8,
+0x84,0x63,0x14,0x6B,0xA5,0x4E,0x3D,0x0A,0x0A,0x79,0x66,0xBC,0x32,0xE7,0xDA,0x6D,
+0x3A,0x79,0xCD,0x10,0x6E,0x23,0x3A,0x5B,0x3E,0x86,0x9D,0x63,0xC1,0x9C,0x2B,0x94,
+0xDC,0x99,0x82,0xD8,0x66,0x30,0x24,0x72,0x6D,0xD9,0x6E,0xDD,0x56,0x56,0x39,0xF1,
+0x57,0xAB,0x87,0x38,0x84,0x6E,0xCF,0xB2,0x5E,0xF6,0xF9,0x37,0xF4,0x40,0x03,0x0F,
+0xF7,0xCC,0xE6,0x30,0x74,0xFA,0x41,0xE5,0xC4,0xDE,0x2E,0xF5,0x7E,0x94,0xA3,0x26,
+0x09,0x6A,0xE8,0x02,0x97,0x4B,0xDD,0x81,0xF4,0x73,0xED,0xE1,0xC9,0xB6,0x88,0xE9,
+0xBF,0xD3,0x1B,0x04,0x08,0xAD,0x45,0x5F,0x00,0x76,0x5B,0xBE,0x4C,0x60,0x22,0xFD,
+0xBA,0x27,0x44,0xB2,0xA1,0x85,0x05,0x58,0xB1,0xE9,0x43,0x5E,0xAB,0xFE,0x50,0xFC,
+0xAA,0xC2,0x2F,0x35,0x65,0xCE,0x70,0xF0,0x7E,0xEA,0x7C,0xF8,0x6E,0xFF,0x46,0xA1,
+0x39,0xB6,0x6B,0x2F,0x7C,0xE9,0x5F,0xCC,0xCA,0x83,0x2B,0x3C,0xC5,0x12,0x4D,0xEB,
+0x1E,0x26,0xAB,0xC5,0xE7,0xC4,0xFF,0x40,0x53,0x29,0xA8,0x00,0x60,0x2C,0xDE,0x55,
+0x51,0x90,0x7E,0xB1,0xB7,0x84,0x58,0x9D,0x40,0x1A,0xBA,0x25,0x3F,0x92,0x8D,0xA6,
+0xC3,0x76,0xEB,0x62,0xE5,0xD5,0xDC,0x66,0x57,0x7B,0x90,0xCB,0xE1,0x74,0x12,0x3E,
+0x2B,0x0E,0x77,0x5E,0x41,0xCA,0xCD,0xBE,0xD6,0x49,0x4B,0x3F,0xA0,0x72,0x3C,0xBE,
+0x34,0xE1,0x1E,0xE4,0xAF,0x4C,0x00,0x05,0x47,0xCA,0xD6,0x10,0xCB,0xC1,0xD5,0x1F,
+0x52,0x5F,0xD8,0x8E,0xF5,0x0E,0x9A,0xD7,0x42,0x3C,0x99,0x34,0xD3,0x80,0x93,0xE5,
+0x1B,0xC3,0x64,0x8D,0x2A,0xA8,0xAA,0xE1,0xC8,0x40,0x5D,0x2F,0xF7,0x0A,0xD4,0x90,
+0xCE,0xB7,0x2B,0x3B,0x8D,0x75,0xFA,0xA1,0xDA,0x65,0x4E,0x1C,0x49,0x55,0x27,0xC3,
+0x0E,0x5D,0x0C,0xAB,0x2D,0xF9,0x61,0x8C,0x59,0x59,0xD7,0xB6,0x77,0xF0,0x99,0x50,
+0x4A,0x47,0x9F,0xDF,0x02,0xC5,0x78,0xAB,0x0E,0x9D,0x63,0xDF,0x9A,0x5B,0xD3,0x5B,
+0xBD,0xFC,0x67,0x42,0xE8,0xE2,0xE8,0x6B,0xEB,0x51,0x5F,0x09,0xE5,0xE6,0x97,0x8E,
+0x7B,0x96,0x01,0xFC,0x72,0x30,0xB2,0x29,0xA4,0x75,0x5A,0xFF,0xA4,0xFE,0x6D,0xC8,
+0x12,0x2C,0x1E,0x13,0xBF,0x8B,0x5C,0xAF,0x39,0x5A,0xCB,0x7C,0x17,0x95,0xCC,0x21,
+0x8E,0x10,0xF6,0x6B,0xAE,0x53,0xF8,0xB0,0xE2,0xAE,0x4A,0x4E,0x11,0xD4,0x4C,0x0F,
+0xE2,0x4A,0x62,0xB6,0xBD,0x87,0x99,0x0B,0x8B,0x52,0x43,0xC3,0x25,0xC1,0x7D,0x1E,
+0xE7,0xAA,0xE9,0x84,0x56,0x47,0x7B,0x55,0x1C,0xB8,0x70,0xEC,0x33,0x63,0x83,0x24,
+0xA8,0x62,0x0F,0x64,0x48,0x6E,0x73,0x46,0xEF,0x06,0x23,0xB3,0xF9,0xF4,0xE6,0x36,
+0x71,0x19,0xB1,0x7E,0x4F,0x3F,0xB8,0x2B,0x14,0xD9,0x17,0x4C,0x82,0x07,0x1F,0xC7,
+0x21,0xC0,0x8F,0x3A,0x77,0x6D,0xBC,0xE0,0x31,0x3B,0xAC,0xDC,0x9B,0x9E,0x8E,0x4D,
+0x7E,0x76,0x8A,0xCE,0x37,0x6A,0x15,0xC8,0x29,0xDB,0x1D,0x43,0x05,0x79,0x8F,0x3F,
+0x8D,0x70,0x3C,0x77,0xAF,0xB4,0x8A,0x2E,0x9F,0x84,0xE9,0x46,0xD3,0xFC,0x9B,0x95,
+0x83,0x42,0xC2,0xD1,0x33,0xD0,0x69,0x9F,0x5C,0x90,0xD9,0xEB,0xF1,0x4B,0x54,0xBE,
+0x8A,0xAD,0xB8,0x4F,0x88,0x28,0xF4,0x68,0xBE,0x31,0x2E,0x6C,0xEB,0x18,0xA5,0x28,
+0xC9,0x6A,0xAF,0x03,0x21,0xE3,0x7A,0xBA,0x82,0xAD,0x56,0x84,0x45,0xA4,0x28,0x6F,
+0x63,0x5A,0x5D,0x60,0x40,0xCE,0x14,0x27,0xE1,0x94,0xFD,0xA5,0x62,0x98,0x07,0x76,
+0xC4,0x38,0x9B,0xB9,0x1A,0x5A,0xC9,0x4B,0x78,0xEC,0x10,0x9C,0x2A,0xFA,0x12,0xAE,
+0xD8,0x49,0x89,0x01,0x67,0x52,0x6A,0x61,0x1B,0xD5,0xBB,0xBD,0xE4,0x23,0xCA,0x98,
+0xE9,0x98,0x17,0x22,0xFA,0xD1,0xFB,0x4E,0x4E,0xB5,0xCA,0xD8,0x42,0x20,0xF5,0x57,
+0x7D,0x16,0x40,0xD2,0xCD,0x72,0x53,0x89,0xB3,0x99,0x47,0x91,0x56,0x8D,0x36,0x67,
+0x13,0x71,0xDB,0x05,0xC2,0x83,0xFF,0x85,0xF8,0xEA,0x3E,0xDD,0xCF,0xEE,0xEA,0x2D,
+0xD4,0x46,0x78,0xAD,0xA8,0xE5,0x41,0x43,0x25,0xED,0x06,0x59,0xB2,0x5C,0x93,0xF2,
+0xD6,0x7B,0x77,0xA7,0x00,0xC9,0xBD,0x0F,0xA6,0xD1,0x9F,0xF3,0x20,0x4A,0x9D,0x2C,
+0x6A,0xB5,0x27,0xFE,0x91,0x50,0x37,0x16,0x66,0xFF,0x18,0xB5,0xFC,0x7F,0x06,0x04,
+0xB6,0x2E,0x12,0xD6,0x81,0x6F,0xE1,0x97,0xDB,0xFB,0x3C,0xFB,0xC7,0x51,0x58,0xA5,
+0x7C,0x4B,0x85,0xC4,0xE7,0x13,0x44,0x67,0xD2,0x04,0x29,0xBC,0xEE,0x93,0x45,0x1A,
+0x4C,0xC7,0xDE,0xF1,0x04,0x73,0xC1,0x58,0x3F,0xA9,0x72,0xCA,0x01,0x37,0x32,0x1B,
+0x79,0xAB,0x0E,0xF6,0x30,0x3B,0xDE,0xA5,0x9C,0xBE,0x5E,0xAD,0x98,0x54,0xEE,0x51,
+0x73,0x24,0xBE,0x74,0x94,0x0D,0x39,0xDF,0xB8,0xC2,0x97,0xDA,0xF2,0x81,0x34,0xA2,
+0xBF,0xC1,0x68,0x48,0xF2,0x71,0x9C,0x2F,0x92,0x2C,0x80,0xBB,0x6E,0x69,0x08,0xDA,
+0x1D,0x43,0x25,0xA3,0x6C,0x19,0xBA,0x3A,0x41,0xB9,0x66,0x29,0x35,0x22,0x03,0x0A,
+0x1E,0x23,0xEF,0xBF,0xFF,0x8C,0xF5,0x87,0x35,0x6C,0xD0,0x66,0x3C,0x58,0xEC,0x94,
+0xDC,0xF4,0xC7,0x25,0x20,0x04,0x08,0x24,0x90,0x88,0x45,0xB7,0x26,0x0B,0x1D,0x02,
+0xCA,0x0A,0x65,0x1F,0x57,0xA0,0x09,0xCB,0x53,0x9C,0x75,0x1A,0x22,0x45,0xA0,0x26,
+0xAC,0xDF,0x41,0x40,0x5F,0x00,0x6E,0xAA,0xC5,0xE8,0x34,0xD2,0x9E,0x15,0x6E,0x7F,
+0x1C,0x1E,0xE0,0xB5,0x44,0x74,0x68,0x70,0xC4,0x76,0x46,0x35,0xC6,0x94,0x05,0xB3,
+0x91,0x01,0x2E,0xCF,0xE4,0xF8,0xF3,0x5D,0xB2,0x07,0x35,0x76,0x28,0xF5,0x2F,0xA4,
+0x18,0xA3,0xAE,0x91,0xA9,0x02,0x33,0xDD,0x6B,0x57,0x71,0x48,0xC5,0x5E,0x65,0xAF,
+0x2D,0xCF,0x7E,0x96,0x15,0xAB,0x65,0x47,0xBB,0xF8,0x20,0x31,0x72,0x7B,0x79,0x62,
+0x5B,0x64,0xB9,0xDD,0x63,0xE8,0x16,0x36,0x13,0xB4,0xDC,0x1D,0x4F,0x14,0xA7,0xED,
+0x6F,0x55,0xAC,0xCC,0x87,0xD9,0x58,0x64,0xDE,0x32,0x32,0xA6,0x1A,0xA1,0x9E,0x9B,
+0x30,0xE3,0xA9,0x38,0xBA,0xD6,0x52,0x66,0xD9,0x5F,0xF9,0xF7,0x60,0x97,0x3A,0x7C,
+0x53,0xD6,0x06,0x55,0xC6,0x39,0x83,0xD2,0xAC,0x14,0x3D,0x5F,0xF3,0x44,0x69,0xB4,
+0xA2,0xED,0xBF,0xE6,0x22,0x08,0xCD,0x80,0xF9,0x74,0x4C,0x3A,0x10,0x11,0x11,0x19,
+0xB3,0xCE,0x99,0xE4,0xB0,0x7A,0xF0,0xA3,0xD5,0x69,0xE2,0xED,0x7F,0x4F,0x2B,0xD8,
+0xA0,0xD0,0xB0,0xEC,0xF0,0x7D,0x59,0x8B,0x3D,0x0D,0xB7,0xC6,0xDA,0x86,0x74,0x0B,
+0xF4,0xB4,0xC0,0x8C,0x7E,0x2A,0xA9,0x1F,0x8C,0x3F,0x88,0x92,0x7A,0xC4,0xCB,0xEA,
+0x92,0x61,0xE4,0xD3,0x4D,0x33,0x7D,0x8F,0xD8,0xC1,0x8B,0x10,0x41,0xEA,0x95,0x4B,
+0x48,0x7A,0x90,0xD5,0xB1,0x9D,0x82,0x3D,0xDD,0x08,0x85,0x4D,0xA7,0x34,0x0D,0xD4,
+0xD0,0xFB,0x36,0x89,0x7C,0x26,0x6C,0xBB,0x73,0xB7,0xC0,0xD7,0x34,0xE7,0x5E,0x1C,
+0x54,0x0B,0x82,0x6D,0x8A,0x24,0x31,0xCC,0xF7,0xE6,0x92,0x2C,0x4D,0x1B,0x9A,0xE7,
+0xE3,0x17,0xA7,0xA0,0x26,0xB2,0xB1,0xD7,0x3B,0xFE,0x0E,0x70,0x23,0x80,0xFD,0x30,
+0x37,0x3E,0x2D,0x00,0xB6,0xCC,0x49,0x50,0x89,0xF6,0x86,0xCF,0x95,0x60,0xBC,0xEB,
+0x09,0x80,0x88,0x93,0xE5,0x1F,0x81,0xC3,0xDC,0x96,0xF7,0xAA,0x03,0x38,0x0F,0x11,
+0x81,0x7F,0xCD,0xDB,0x09,0x8E,0xA8,0xF0,0xF1,0x15,0x2B,0x9A,0xBC,0xA2,0xA1,0x54,
+0x86,0xA2,0x49,0xE3,0xB9,0x3D,0xE5,0x5C,0xD7,0xCD,0x27,0xE1,0x78,0xCB,0xF6,0xE0,
+0x6D,0x68,0xA3,0xC6,0xC9,0xC8,0x2F,0xDE,0x75,0x44,0x79,0x61,0xC0,0xD5,0x85,0x9D,
+0xEF,0x18,0x56,0x0C,0x5B,0xBA,0x12,0xFD,0x3C,0x93,0xC5,0x21,0xF5,0x05,0xE9,0x9A,
+0x38,0x51,0x16,0xB0,0x86,0x3E,0x2A,0xFA,0x0C,0x39,0xA6,0xD3,0x00,0xF2,0x6F,0x0D,
+0x0A,0xE0,0x42,0x8F,0x52,0xFD,0x07,0x02,0x50,0xA6,0xC2,0xF1,0xB1,0x96,0xF3,0xEE,
+0x19,0xFE,0x6B,0x87,0x84,0x32,0xEF,0x5E,0xD1,0x3E,0x9E,0x57,0x0C,0x03,0x60,0xA1,
+0xD5,0x65,0xD8,0x9B,0xEC,0x3F,0x5E,0xCE,0x52,0xA8,0x34,0xF9,0x97,0x78,0x84,0x24,
+0x06,0xAD,0x4B,0xC8,0x28,0x74,0x2B,0x66,0x83,0x47,0x48,0x4D,0x38,0x1B,0xE9,0x11,
+0xDE,0x09,0x54,0xD9,0x33,0x42,0x27,0x7C,0x21,0xEB,0x42,0x88,0x08,0x98,0x35,0x3C,
+0x80,0xC8,0x3B,0xE3,0x9D,0x5F,0x0B,0xAB,0x1C,0x99,0xD0,0xAB,0x2E,0x89,0x37,0x1F,
+0xEA,0xB3,0x59,0x8B,0xF1,0xD3,0x49,0xA0,0xB4,0x3A,0xE7,0x6C,0xEF,0x06,0x47,0x3D,
+0xCF,0x7E,0xEE,0x97,0xA0,0x7C,0x99,0xD9,0xE2,0x93,0x5B,0xF6,0x3F,0x33,0x40,0x51,
+0x30,0x4A,0x31,0x6C,0xE3,0x19,0x2C,0x37,0x89,0x48,0x75,0x4F,0x3D,0x44,0x1D,0xA7,
+0x85,0x3C,0x64,0x55,0x0D,0x9F,0xE1,0x8C,0xC7,0x79,0x91,0x1D,0x28,0x70,0x0C,0x96,
+0x84,0xAE,0xB5,0x9C,0xE5,0xC3,0x37,0x43,0xBF,0x91,0xAD,0x81,0xD0,0x87,0x91,0x2D,
+0xD4,0xF7,0x09,0x52,0xA4,0xB7,0xA1,0x8B,0xD8,0x31,0xA5,0xE0,0xF4,0xE1,0xCE,0xF8,
+0x64,0x75,0x03,0xDD,0xE4,0x2C,0x40,0xE7,0x22,0x69,0x16,0x76,0xBF,0xBA,0x1E,0xF3,
+0x05,0x62,0xED,0xF7,0x97,0x5D,0x36,0xA4,0xB9,0xE5,0xB6,0x5B,0x71,0x37,0x64,0xEC,
+0xB3,0xDB,0x1E,0xF1,0xB7,0x92,0xB3,0xB8,0x6B,0x88,0x9E,0x11,0xB4,0x36,0x72,0xB1,
+0xF8,0x0B,0x45,0xFA,0x51,0x07,0x60,0x2A,0x4D,0xE0,0x00,0x04,0xF9,0x94,0x99,0x33,
+0x9A,0xD3,0x0D,0xEF,0x94,0xA3,0x62,0x26,0xD9,0x95,0xD2,0x0F,0x56,0xF7,0xF4,0x06,
+0xC9,0x45,0x17,0x1E,0x01,0x47,0xC7,0xF7,0x24,0x1D,0x0D,0xAC,0x7E,0x35,0x6E,0xD1,
+0x63,0xDC,0x2B,0x9D,0x77,0x12,0xFE,0x42,0xFB,0xAF,0x74,0xD1,0x87,0x13,0x61,0xA3,
+0x94,0x4B,0xDE,0x1B,0x14,0xB8,0xCE,0xB0,0xC3,0x2B,0xA9,0xD6,0xC7,0xC4,0xDD,0xEA,
+0x92,0x70,0x27,0x92,0x4F,0x15,0x23,0xC6,0x3E,0xA3,0x76,0x75,0xFA,0x32,0x56,0x0C,
+0x07,0x3F,0x9A,0x01,0x13,0x8D,0xA2,0x60,0xD6,0x6C,0xA0,0x29,0xD3,0x21,0x5E,0x12,
+0x33,0x85,0x97,0x53,0xFA,0x3E,0x03,0x0B,0x79,0x1F,0xFB,0xDB,0x5C,0xAA,0x0A,0x8D,
+0xA9,0xC0,0x28,0xFD,0x26,0xBD,0x2E,0x3B,0x50,0x8E,0x17,0xE8,0x19,0x22,0x42,0x72,
+0x44,0x4C,0xEB,0x77,0xA8,0x6F,0x87,0xF0,0xFE,0x59,0x3B,0xF5,0x32,0x46,0x17,0x9A,
+0x5A,0x31,0x53,0x04,0xF6,0xE6,0x25,0x70,0x34,0xAC,0x4B,0x77,0xD8,0xAD,0x32,0x50,
+0x8A,0x36,0x66,0x68,0x43,0xCD,0x05,0xBD,0xE0,0xB5,0x78,0xE7,0x13,0x7F,0xBC,0xF9,
+0x76,0xCD,0x1F,0xAC,0x11,0x9C,0x81,0x46,0xBD,0xB7,0x8E,0x90,0xA7,0xFB,0x58,0x09,
+0xF1,0x3A,0xBE,0x4E,0x57,0xDD,0x7B,0x5E,0x98,0x5D,0x44,0x7B,0xBC,0x1C,0xD1,0xCC,
+0x11,0xE1,0x08,0x0F,0xDF,0xD5,0xC9,0xE1,0x60,0x23,0xD4,0xFC,0x36,0xC8,0x71,0xE5,
+0x55,0x3B,0x51,0x39,0x59,0x14,0x7E,0x03,0x78,0xBB,0x8C,0x34,0x51,0xDF,0x5D,0x46,
+0x17,0xDA,0xF1,0x86,0x66,0x26,0xCF,0x57,0x88,0xEC,0x02,0xA0,0x21,0x8B,0x3D,0x22,
+0xA5,0x05,0x8C,0xFF,0x54,0x23,0x2F,0xDC,0x53,0x0C,0x43,0x16,0x01,0x63,0x04,0x88,
+0x7B,0x9A,0x6A,0x67,0x5A,0xEA,0x2A,0x81,0xAC,0xA2,0xBF,0xA4,0x75,0xB9,0x02,0x93,
+0xE8,0xEE,0x2E,0x7D,0xCC,0xF0,0xDB,0xD2,0xC4,0xFB,0xC5,0xE3,0x1B,0x55,0x1F,0x84,
+0x0F,0x9C,0xB0,0x7C,0x7D,0x10,0xC3,0x4D,0x6D,0xFC,0x85,0xCB,0x1E,0x0A,0xEB,0x32,
+0xDA,0x6F,0xDA,0xA6,0x08,0xBB,0xAE,0x7A,0xB8,0x41,0xC1,0xB4,0x53,0xA8,0x00,0xB0,
+0x6D,0x44,0xF8,0x69,0x38,0xAF,0x6D,0xD7,0x5B,0x25,0x5D,0x05,0xAD,0xA6,0xA6,0x82,
+0xF2,0xF5,0x18,0x71,0xA1,0x93,0xEE,0x7D,0xAA,0xD6,0xA4,0x7E,0x78,0xCC,0x55,0x58,
+0x50,0xCF,0x0E,0x8F,0x92,0x79,0x79,0x52,0x48,0x16,0x4F,0x20,0xF3,0xC9,0x67,0xB8,
+0x96,0x16,0xA9,0xED,0xC6,0xF2,0xE6,0xDD,0x69,0xAE,0xBD,0x00,0x20,0x5A,0xAF,0xEB,
+0x65,0xE7,0xD2,0x14,0xF2,0x2D,0x1D,0x22,0xA2,0xFF,0xBA,0x6D,0x9E,0x83,0xB5,0x90,
+0x6F,0x19,0x8F,0x9F,0x8B,0x5E,0x56,0x6E,0x63,0xA1,0x80,0x02,0x90,0x50,0x2D,0x64,
+0x77,0x5F,0xCE,0x65,0x8E,0x7A,0x19,0x98,0x39,0x73,0x1A,0x40,0xF6,0x96,0x93,0x0E,
+0x45,0xDE,0x3A,0xBE,0x9B,0x85,0x10,0xDF,0x29,0xC2,0x5C,0x9B,0x67,0xA5,0xBA,0xE2,
+0x04,0xF0,0x3C,0x3E,0x1A,0x71,0xCB,0xED,0x8D,0x1A,0x4D,0x84,0x8F,0x39,0xC2,0xDE,
+0xC4,0x12,0x62,0xD5,0x9F,0x4E,0x28,0x8D,0x2B,0xE4,0x7F,0x8A,0xBA,0xE5,0xEA,0x45,
+0x9B,0x41,0xDC,0x26,0x8C,0x6B,0x3A,0xBE,0x7B,0x39,0xD8,0xCA,0xF5,0x30,0x5C,0x31,
+0xCA,0x8A,0xB1,0x21,0xB2,0xB6,0xFC,0x4E,0xA9,0x54,0xF0,0x80,0x0E,0x61,0x0E,0xB5,
+0x61,0x81,0x5C,0x6B,0x06,0x72,0xAB,0x27,0xB0,0x68,0xDF,0xA7,0x9D,0x25,0x7A,0xAF,
+0xA6,0xCA,0x2A,0xC0,0xA3,0x82,0xCD,0x5B,0x10,0xE2,0xF6,0x73,0x4F,0x67,0x20,0x35,
+0x02,0xCB,0xC5,0xB7,0xF8,0x2F,0x20,0x2D,0x95,0x82,0x15,0x4C,0x14,0x57,0x15,0xB9,
+0x10,0x73,0xD9,0xC6,0x46,0xE9,0x4A,0x4B,0xE8,0x9C,0x66,0xF4,0x2F,0x58,0xA5,0xD6,
+0xC5,0x80,0xB3,0x1C,0x8F,0x95,0x6E,0x3C,0x0F,0xAA,0xC2,0x8E,0x9F,0x52,0x27,0x59,
+0xDB,0xFD,0x0B,0x6F,0x4E,0xFA,0x54,0x62,0x6C,0x58,0xF2,0x24,0xE6,0xFD,0x76,0x89,
+0xCD,0x23,0x99,0x61,0xD7,0xC6,0xD7,0xC8,0x90,0x74,0x5A,0x68,0xE9,0xFF,0x7C,0xB4,
+0xC0,0x74,0xEC,0xAA,0xED,0xD0,0x29,0x6A,0x30,0xFE,0x73,0xBC,0x83,0x9D,0x07,0xDC,
+0xEE,0xD5,0xD7,0xF4,0xC9,0xD4,0x94,0x24,0xE6,0xC1,0x63,0x3D,0xB6,0x41,0x2F,0x47,
+0xB1,0x86,0x69,0x07,0x1B,0x9E,0xBC,0x49,0x2A,0x40,0x08,0x65,0x86,0xC2,0xF3,0x6A,
+0xB2,0x49,0xCF,0x38,0x6A,0xFE,0xE9,0x2C,0xBB,0xC3,0x95,0x4A,0x18,0xF3,0xD0,0xBB,
+0x7F,0xFC,0xE4,0x18,0xEF,0xC1,0x0A,0x4C,0x2E,0x12,0x30,0xAE,0x4A,0x38,0xD4,0x83,
+0x1C,0xB6,0x7D,0xC4,0x96,0xB2,0x41,0x00,0x82,0xE3,0x3F,0xA2,0xD1,0x56,0x03,0xE4,
+0x35,0xBE,0x6E,0xDA,0x87,0x86,0x70,0x15,0xAB,0x72,0xD3,0x91,0x3E,0xE2,0xD2,0x98,
+0x89,0xF9,0xC0,0x57,0xFF,0x1A,0x4C,0xFD,0x25,0xB9,0x7A,0x43,0x29,0xA1,0x9E,0x5F,
+0x6B,0x7F,0x01,0xE0,0xC1,0xC7,0x8A,0x0D,0x18,0xCB,0xE8,0x60,0x0A,0xEF,0x68,0xCA,
+0x09,0xA7,0x49,0xF5,0x2C,0xBF,0x13,0x34,0xC5,0x5F,0xB2,0x0C,0xCC,0x48,0xB1,0xA8,
+0x66,0x6E,0x7F,0x92,0xFE,0x4C,0x8B,0xB2,0x2F,0x20,0x8A,0x85,0x7A,0x1F,0x6D,0x58,
+0x40,0x7B,0xE1,0xFA,0x5C,0xCE,0xC6,0x59,0x74,0xF0,0xC1,0x8E,0x9C,0xCC,0xF8,0xCA,
+0x0F,0xC6,0x72,0x6F,0x5F,0xAE,0x0C,0x45,0x7D,0x6E,0xBB,0x61,0x2A,0xB8,0x2D,0x85,
+0xF2,0x65,0xAD,0xE7,0x9D,0x79,0x24,0xDF,0x67,0xF8,0xE8,0x90,0xBF,0x1D,0xC9,0x54,
+0xF3,0x8A,0xDA,0x43,0x8B,0x87,0x86,0xE5,0x63,0xDC,0xA6,0x2D,0x8F,0xDE,0xDD,0xF9,
+0x94,0xEB,0xD2,0xE3,0xED,0x52,0xA2,0xBA,0xDF,0x85,0xF6,0xE3,0xCE,0x48,0xA9,0x31,
+0x92,0x31,0xC9,0x97,0x5D,0x93,0x03,0x4F,0x87,0x49,0x77,0x88,0xBC,0x49,0x37,0xD6,
+0x09,0x1C,0x69,0x1B,0xD0,0x8C,0xCD,0x35,0x69,0x5E,0x16,0xA2,0xCF,0x3F,0x46,0x95,
+0xC9,0x9C,0x24,0xE1,0x59,0x2E,0x4D,0x6B,0x84,0x55,0xBD,0xE8,0x8B,0xE6,0x16,0xAB,
+0x9F,0x06,0x98,0x48,0x6C,0x42,0x9D,0x6C,0x33,0x98,0x98,0xF4,0xDA,0x36,0xB9,0xD2,
+0xEC,0x77,0xEE,0x0B,0x1A,0xE9,0x5A,0x27,0x0E,0x17,0xF7,0x2A,0x26,0x9E,0xF5,0xFE,
+0xA2,0x25,0x0A,0x3A,0x2E,0xD8,0x4F,0x36,0x5B,0x61,0x42,0x13,0xC8,0x53,0x73,0x45,
+0xA8,0x27,0x37,0x35,0x71,0x6E,0x4A,0xC2,0x21,0x86,0x74,0xB7,0x03,0x54,0x1E,0x14,
+0x79,0x93,0x4B,0xDA,0x12,0x5B,0xE5,0xAF,0xB2,0x4E,0xA7,0xE4,0xC7,0x21,0x55,0xBC,
+0x37,0xC1,0xAF,0xEB,0xE3,0x60,0x5C,0x1C,0x51,0xE3,0xF2,0x9C,0xB6,0x74,0x35,0xD9,
+0x0A,0xE2,0x3D,0x99,0xF2,0x43,0x7A,0x1E,0x3E,0x22,0xAC,0xA6,0x18,0x58,0x28,0x0E,
+0xA3,0xCA,0x7D,0x9E,0xE1,0x5D,0x53,0x16,0x9B,0xF1,0x65,0xF9,0x4D,0xB0,0x4C,0x25,
+0x53,0x5E,0xF3,0xC9,0xB5,0x39,0x23,0x76,0x3B,0x10,0x27,0x46,0x72,0x01,0x7E,0x71,
+0x87,0xCE,0xC0,0xD0,0xD3,0xEC,0x07,0x29,0x00,0xB1,0x09,0x18,0x71,0x55,0x80,0xF3,
+0x78,0x7C,0x3C,0x7E,0x09,0xF7,0x73,0x2F,0xE6,0x2E,0xD7,0x80,0x7F,0x50,0x49,0xAE,
+0x96,0xFA,0xF1,0xC5,0x91,0x76,0xD5,0x73,0x75,0xE6,0x04,0xD3,0x3A,0xFE,0xF6,0x34,
+0xCB,0x8D,0x07,0xC7,0x15,0x86,0x61,0x97,0x0C,0x1D,0xF8,0x17,0x68,0x7A,0xA7,0xCF,
+0x4B,0x96,0xAB,0x51,0xA2,0x9A,0x44,0x5A,0x62,0xCA,0x63,0x70,0xF4,0xB6,0xBF,0x93,
+0xB3,0x11,0x3B,0x2F,0x76,0xB3,0xCE,0xFA,0xD4,0x11,0x83,0x31,0x7C,0x04,0xB7,0x2C,
+0x7B,0x82,0x68,0xFC,0x48,0x0D,0x6B,0x69,0x42,0xEB,0xDB,0x82,0x0D,0x51,0xD7,0x49,
+0x52,0xB1,0x84,0x6D,0xC0,0xF2,0x2E,0x21,0xFD,0xAE,0x41,0x2C,0xD1,0x7C,0x54,0x79,
+0x1F,0x1D,0x34,0xDE,0xC7,0x2F,0xAA,0x19,0x39,0x1A,0x28,0x7B,0xDD,0x5A,0x8C,0x02,
+0xD5,0x9F,0x44,0x2B,0x2C,0xE5,0x40,0x3C,0x81,0x67,0x36,0x08,0x83,0xF8,0x05,0x82,
+0xE8,0xBC,0xD6,0x59,0xAE,0x95,0xB5,0xF6,0xB4,0x60,0xE6,0x64,0x3F,0xB1,0xD2,0xC2,
+0xD0,0xBB,0x0B,0xDD,0x79,0xDC,0xF5,0x4A,0x41,0xF7,0x11,0xE2,0x5C,0x81,0x78,0x30,
+0xFD,0x43,0xDF,0x1E,0x4B,0x6D,0xA1,0x75,0xF0,0x14,0x75,0x7E,0x38,0xDD,0xE7,0x12,
+0x15,0x1F,0x09,0xD1,0x58,0x73,0x88,0x7D,0x4D,0x5B,0xE0,0xED,0x64,0x5C,0x7F,0xB4,
+0x50,0xA0,0xA7,0x4B,0x5A,0x4E,0x87,0x77,0xB6,0x6A,0xE9,0x59,0xA7,0x45,0x01,0xCC,
+0x00,0xE0,0x00,0x96,0x8F,0x3A,0xC8,0xC1,0x08,0x39,0xB6,0xAA,0xB4,0x57,0x24,0xFF,
+0x9B,0xCD,0xA0,0x1A,0x4F,0xD0,0xEF,0x51,0x36,0xAA,0x13,0x14,0x2D,0xD4,0x18,0x55,
+0x82,0xEA,0x8F,0x26,0x0B,0xCA,0x7C,0x25,0xDB,0xA1,0xB8,0x5E,0x99,0x83,0xDC,0x3C,
+0x12,0x2A,0x65,0x01,0xFC,0x71,0x84,0xB8,0xA4,0x74,0x05,0x1A,0xA5,0x66,0x10,0xEA,
+0x48,0x68,0xFF,0xD3,0x3A,0x1B,0xE2,0x06,0xE5,0x32,0x1D,0xE0,0xA0,0x29,0x34,0x1C,
+0xA6,0xEE,0x32,0x68,0x53,0xA1,0xFD,0xE9,0x56,0xDB,0x76,0x41,0x31,0xB4,0x1B,0x9F,
+0x02,0xF1,0x23,0xB0,0xCF,0x9D,0x15,0x91,0x50,0xF5,0x37,0xC1,0xB0,0x6F,0xEF,0xAD,
+0x63,0x4A,0x30,0x64,0xA3,0xC7,0x81,0x4C,0x64,0xE4,0x22,0xF0,0xB9,0x06,0x13,0x20,
+0x81,0x14,0xDB,0xA4,0xA6,0x27,0x0A,0x7E,0x72,0xDE,0x80,0x0E,0x8A,0x91,0xF9,0x0F,
+0x89,0x07,0xC5,0x8D,0xE9,0xEF,0xEC,0x9E,0xB8,0xCC,0x17,0x6B,0xD9,0x62,0x47,0x50,
+0x42,0x6A,0xC2,0xDC,0x30,0x94,0x52,0x84,0xC3,0x3D,0xE4,0x92,0xED,0x99,0x98,0xAF,
+0x46,0xA1,0xFA,0x8E,0x60,0x4D,0x6C,0xC0,0xDA,0xB7,0x7D,0x03,0x56,0xBC,0x7A,0x3F,
+0xEF,0x89,0xBA,0x89,0x3F,0xFB,0x69,0x34,0x44,0xC5,0x9A,0x02,0xE7,0xA4,0x9A,0xA0,
+0x70,0x6F,0x22,0x57,0xCC,0xFD,0xDF,0x8D,0x92,0x6F,0x1F,0x16,0x13,0x12,0xC5,0xA5,
+0x93,0xDE,0xBE,0x33,0xC2,0xCF,0x21,0x2B,0xB0,0x44,0xA8,0xD9,0x23,0xD1,0xD1,0x08,
+0x0E,0x29,0x05,0xCB,0xCB,0x20,0x5B,0xB5,0xAA,0xD2,0xFB,0x28,0xD4,0x33,0x70,0x8F,
+0x80,0xFB,0xAC,0x00,0x88,0xE7,0x4C,0xF9,0x04,0x95,0x47,0xA5,0xAC,0x0F,0xEC,0x67,
+0xEE,0x66,0xCD,0x2D,0x22,0xD7,0xBE,0x9A,0x23,0x8C,0x7B,0x8A,0x07,0x6C,0xD5,0x46,
+0x33,0x0A,0x97,0xB9,0x85,0xB5,0x78,0x43,0x6B,0x54,0x19,0x9F,0xEA,0xF5,0xAD,0x7F,
+0x90,0x20,0xEA,0xB1,0x99,0xC4,0x6A,0xFB,0xA5,0x62,0xC0,0x47,0x41,0x96,0x94,0x5E,
+0x01,0x0F,0x77,0x32,0xA8,0x15,0xF4,0xD8,0x03,0xAD,0xC3,0x78,0x30,0xC3,0xF4,0x3B,
+0xA9,0xC8,0x40,0x91,0x3C,0x9B,0xA3,0x28,0x17,0x9D,0x6E,0xBB,0xBD,0x3E,0xD8,0x72,
+0x05,0xC4,0x4F,0x60,0x52,0xFC,0x38,0xFF,0x8E,0xD7,0x0D,0x67,0xC4,0x75,0xAB,0x3E,
+0xBB,0x02,0x25,0x06,0x95,0xCB,0x9B,0x57,0xF3,0x08,0xBF,0x1E,0xFC,0xA8,0xAC,0xBA,
+0x47,0x4E,0x8D,0x2A,0x97,0xF6,0x94,0x5D,0x61,0xD6,0xA9,0x10,0x65,0x2B,0x90,0x10,
+0xCD,0x57,0x1C,0xB3,0x2B,0x38,0xC4,0x04,0xBD,0xFE,0x9C,0x8B,0xE2,0xEB,0xBE,0x56,
+0x1B,0xD6,0x0C,0x8C,0xF7,0xA3,0xF1,0x2C,0x86,0x5F,0xB2,0xD5,0xC6,0x56,0xBA,0x18,
+0xBE,0x26,0x6A,0xF0,0x3D,0xC6,0x66,0x3E,0xAF,0xE0,0x70,0xC8,0xD3,0x5F,0x45,0x5F,
+0x3B,0x19,0x89,0x90,0x0D,0x4A,0x3D,0x0B,0x40,0xE1,0xD4,0xBF,0x88,0xB2,0xE8,0x29,
+0x24,0xE4,0xBD,0xD8,0x38,0x26,0xED,0x0C,0xD9,0xAB,0xB7,0x63,0xA4,0x11,0xFF,0x4E,
+0xC3,0x9E,0x19,0xEE,0x32,0xA9,0x5D,0x8E,0xB3,0x58,0x62,0xB9,0x6D,0x35,0x83,0x39,
+0x92,0x20,0xF5,0xA6,0x05,0x38,0x11,0x8E,0x6B,0x99,0xFD,0x25,0x70,0x02,0xA7,0x07,
+0x80,0x13,0xE6,0x83,0x5A,0x6B,0xAF,0x7D,0x24,0xED,0x28,0x93,0xD7,0x52,0x7A,0x47,
+0x03,0xB9,0x7F,0xBF,0xFF,0xF8,0x91,0xC3,0x03,0x07,0xE8,0x03,0x77,0xC9,0xF6,0x6A,
+0x54,0xD0,0xCB,0x7B,0x54,0xF3,0x7C,0x89,0x90,0x1D,0xAC,0x77,0x58,0xD0,0xCA,0x4D,
+0xB1,0x06,0xF7,0xB7,0xE9,0x26,0x03,0xCD,0x68,0xA6,0x5B,0xEA,0xB2,0x40,0xED,0x8D,
+0xFE,0xF0,0xF2,0x93,0xF1,0x60,0x42,0x37,0x0E,0xCC,0x9D,0x54,0x28,0x1A,0x3F,0xCF,
+0x63,0x73,0x63,0xBC,0x9A,0x89,0xF1,0x96,0x11,0x76,0xF4,0xBB,0xE5,0xF4,0x84,0x49,
+0xB8,0x41,0xE2,0x48,0xDB,0xA7,0xF7,0x16,0xF9,0x4A,0x68,0xC3,0xF4,0x50,0x5C,0x56,
+0xD1,0xCC,0xEB,0xB4,0xCE,0xB6,0xC3,0x27,0x6D,0x10,0x04,0x1E,0xE7,0x31,0x88,0xED,
+0x46,0xE3,0xD8,0x5E,0x6C,0x8C,0xD5,0xD9,0xE6,0xF0,0x01,0x2C,0x0C,0xD3,0x48,0xB3,
+0xB5,0xBC,0x8B,0xE0,0xFB,0x9E,0x1F,0xBC,0x00,0x38,0x4E,0xCC,0x12,0xDB,0x61,0xA0,
+0x4E,0x43,0xBF,0x3F,0x08,0x6F,0x64,0x45,0xBE,0x43,0x97,0xD6,0x15,0x10,0x30,0xCD,
+0x6B,0xD3,0x04,0xDD,0x91,0xE5,0x7D,0xD4,0x80,0x9A,0xC7,0x92,0x2D,0x14,0x62,0x06,
+0x73,0x4C,0xB5,0x3D,0x76,0x97,0xE3,0xD5,0x85,0x2C,0x98,0x66,0x6D,0xBD,0x65,0x2E,
+0xC5,0x49,0x41,0x62,0xF3,0x3D,0x35,0xC1,0x33,0x2A,0x6B,0xDF,0xF5,0x22,0xBB,0xC8,
+0x06,0xE4,0x71,0x76,0x44,0x16,0x17,0x0E,0xCD,0x18,0x65,0x79,0x69,0xC1,0xDF,0x79,
+0xE4,0x63,0x86,0xD7,0x17,0x80,0x0D,0xFF,0xB7,0xF7,0x6C,0xE7,0xD2,0x5C,0x27,0x8E,
+0xD8,0x8B,0xFE,0x4B,0xAB,0xC7,0xA3,0x72,0xA0,0x30,0x2F,0xAB,0x7B,0xD2,0xEC,0x5C,
+0xBB,0xAA,0x55,0x72,0x97,0xDE,0x84,0x5D,0x52,0x00,0x85,0xC8,0x1A,0xBC,0xC1,0xC1,
+0x22,0x93,0xB8,0x0A,0xF5,0x06,0xCC,0x48,0x94,0x62,0x22,0x11,0x40,0x61,0x55,0xAD,
+0x41,0xB2,0x13,0x33,0x2C,0x30,0x02,0x90,0x86,0x13,0x3E,0xA9,0x3D,0xC2,0x5D,0x87,
+0x14,0xD7,0x62,0x53,0x2F,0xFF,0xA4,0xAF,0x18,0xC2,0x0F,0x8A,0xA0,0x53,0xDE,0xA8,
+0xE9,0x9E,0xEF,0x7F,0x82,0xCF,0xB0,0x6C,0x4F,0x4C,0x9B,0x7A,0x97,0xFB,0x7D,0x6F,
+0xA2,0xD2,0x96,0x0C,0xE1,0x85,0x29,0xB0,0xD4,0x2B,0xF5,0xAD,0x98,0x57,0x8C,0x63,
+0x7F,0x56,0xAE,0x0B,0x53,0x5A,0x54,0xC9,0x77,0x1C,0x32,0x05,0xF2,0xE9,0xEA,0xA5,
+0xFC,0xFC,0x37,0x37,0x45,0x84,0xC6,0xC7,0x78,0x21,0x30,0x0F,0x5A,0x15,0xC6,0xE9,
+0x3C,0xBA,0xB0,0x19,0x70,0xAC,0x1A,0x5C,0x28,0xEF,0x8C,0x56,0xCB,0x9F,0x5F,0xF0,
+0x81,0xF4,0x94,0x1D,0x5E,0x0D,0x21,0x02,0x1D,0x74,0x50,0x7E,0xDB,0x49,0x60,0x71,
+0x88,0xB3,0x81,0xE2,0x9C,0xB2,0x08,0x1F,0x8A,0x11,0x9A,0x6C,0xBD,0xEC,0x1C,0x81,
+0x65,0xC5,0xDA,0x4F,0x38,0xB3,0xE7,0x68,0xD1,0x9D,0xAA,0x59,0x5E,0x69,0x7C,0xBE,
+0xC6,0xA2,0xF6,0x58,0x5B,0xF9,0x7E,0xB4,0x01,0xF1,0x9F,0x5E,0x6A,0x76,0x34,0x43,
+0xE2,0xD5,0x3F,0x24,0x8E,0x0A,0x14,0x6E,0xB1,0x7E,0x95,0xDC,0xCE,0x91,0x02,0x39,
+0xC8,0xB4,0x28,0xCA,0x66,0x72,0x88,0x52,0x67,0x9B,0x59,0xE0,0xA8,0x34,0x7E,0xC9,
+0x1B,0x26,0xCE,0x5F,0x2D,0xA2,0xD3,0x59,0x2A,0x19,0xFB,0x0B,0x36,0x12,0x16,0xDC,
+0x6F,0x69,0x78,0x8A,0x57,0x3C,0xDA,0xB6,0xE0,0x79,0xF8,0x17,0xA5,0x5D,0x83,0x61,
+0xCA,0xB8,0xED,0x6E,0x04,0xAA,0xC0,0x47,0xC8,0xAE,0x3A,0x8D,0x7A,0xA0,0x0B,0xC2,
+0x09,0x15,0xDD,0x7A,0x4A,0x8E,0xC4,0xFA,0x6A,0x50,0x2C,0xB7,0x0D,0xA1,0xAF,0x2D,
+0x9F,0xDD,0x9C,0x0E,0x1A,0xD7,0x78,0x34,0x4E,0x85,0x4A,0xE8,0x05,0xC6,0x0F,0x4C,
+0x9E,0x3A,0xEE,0x90,0x9B,0x1B,0x20,0x5F,0xEF,0x44,0xFA,0x1D,0x1E,0xC0,0x7B,0x96,
+0xE8,0x79,0x9D,0xE1,0xFA,0x0C,0xCE,0x75,0x21,0x5B,0x77,0x67,0xBE,0x5B,0xF7,0xBB,
+0x31,0x47,0xD9,0xB1,0x51,0x07,0x23,0x3F,0xA1,0xF9,0xFE,0x39,0xF3,0x9B,0x0D,0x3B,
+0xE1,0x3E,0x88,0x1E,0x74,0xCA,0x94,0x23,0x71,0x95,0xCB,0x3E,0x4F,0xCD,0xA4,0xA1,
+0x49,0x12,0x74,0x52,0x1B,0x45,0xA9,0xFD,0xB6,0x3E,0xBD,0x75,0x39,0xBE,0xE7,0xD0,
+0x84,0xA9,0x9A,0xD4,0xAE,0x33,0xFC,0xC4,0xA3,0x0F,0x89,0x64,0xDD,0xF0,0xD6,0x82,
+0x83,0xF8,0x51,0xB9,0x98,0xD4,0x86,0x60,0xA6,0xB9,0xD6,0x90,0xE0,0xFA,0xD9,0x80,
+0xF6,0x50,0x95,0xF2,0x4B,0x1C,0x15,0x33,0x09,0x8C,0xB5,0xFD,0x9C,0x2B,0x36,0x34,
+0xA3,0x35,0xE4,0x92,0x1E,0xB1,0xF6,0x4B,0xB0,0xB7,0x44,0x4E,0x78,0x65,0x07,0x66,
+0x8F,0xE2,0x4A,0x8F,0x40,0x70,0x99,0x71,0x96,0x94,0x55,0x4C,0xEA,0x58,0x75,0x45,
+0x67,0xC9,0x1F,0xEB,0x89,0xA3,0x3C,0x2E,0xBF,0x8A,0x46,0x44,0xAA,0xF1,0x72,0x6D,
+0xD6,0x9D,0x20,0xD9,0xCB,0x42,0x9C,0x91,0xCF,0xEE,0x12,0x24,0x24,0x01,0x25,0xF9,
+0x82,0x1F,0x23,0x27,0xE5,0xE3,0xA7,0xCF,0xEB,0x3B,0x74,0x7B,0x17,0xD5,0x3C,0x69,
+0x87,0x42,0x2D,0xEE,0x3B,0x7C,0x41,0x57,0x9F,0x20,0xAE,0x7D,0xEB,0x2A,0x92,0xDB,
+0x29,0xD8,0x68,0x51,0xE8,0xB4,0xD2,0x04,0x39,0xA1,0x36,0x21,0x26,0xC4,0x29,0x5D,
+0xAD,0x23,0x3A,0x00,0x14,0x4F,0xAB,0xC0,0x8D,0x51,0xB2,0xC5,0xD0,0x99,0x2B,0x2A,
+0x61,0x7F,0xA6,0x18,0x8F,0x98,0xC5,0xA7,0xA8,0x4D,0x05,0x08,0x7C,0x19,0xBD,0x31,
+0xD3,0xC0,0x2E,0x10,0x6F,0x43,0x73,0xE6,0x22,0x64,0xD1,0xA8,0xEC,0xE1,0xC3,0xB6,
+0x86,0xA5,0x5F,0x70,0x37,0xB9,0xE5,0x55,0x87,0xDA,0xEF,0x3B,0xBF,0x29,0x10,0x25,
+0xAB,0x95,0x83,0xF3,0xAD,0xFC,0x5A,0xFB,0xC2,0x25,0x67,0x73,0x53,0x00,0x81,0x16,
+0x8D,0xEE,0x8F,0x2B,0xC4,0x48,0x9E,0xAC,0x46,0xF8,0x60,0x4B,0xE3,0x4D,0x32,0xBA,
+0x2F,0x6E,0xD1,0xA2,0xDA,0x35,0x26,0xDF,0xAC,0x32,0x8B,0x6E,0x93,0x87,0xC7,0x38,
+0x66,0x2E,0x6D,0x75,0x0A,0x32,0x13,0xB3,0x59,0x42,0x09,0xA4,0x01,0xBA,0xB5,0x1B,
+0x56,0xDC,0x0E,0xDF,0xFD,0xA5,0xE6,0x35,0x19,0x0B,0xDE,0x18,0xDC,0x82,0x31,0x1C,
+0x0A,0xFE,0x6A,0x40,0x99,0x46,0x57,0xA9,0x4D,0xBA,0xEC,0x27,0x08,0xAF,0xF2,0xE4,
+0x8B,0x58,0x36,0xD8,0x0C,0x09,0xEA,0x3A,0x64,0xA4,0xFF,0x2F,0xDE,0x47,0x3D,0xB8,
+0xDB,0x29,0x95,0xB6,0xBF,0x26,0xEE,0x21,0xD0,0xE0,0xB0,0x1C,0xF3,0x0E,0xF5,0x83,
+0x0C,0x47,0xF2,0x2D,0xB3,0x29,0x1F,0x8D,0xA3,0x99,0xFC,0x57,0xB9,0xD2,0x6C,0xE0,
+0xFC,0xD3,0x7C,0x7A,0x74,0x1E,0xBC,0x25,0x8F,0x14,0xB5,0xAA,0x89,0x11,0x78,0x4D,
+0xDF,0xE2,0xAD,0xE4,0x5B,0x83,0x3F,0xB4,0xEF,0x65,0xD0,0xFF,0x46,0x2E,0xDE,0x4E,
+0x67,0xFE,0xDC,0xF6,0x71,0xFE,0x37,0x17,0xD6,0xCE,0xF1,0x9C,0x70,0xF6,0x10,0x97,
+0xBE,0x59,0xBE,0x30,0x1D,0xA4,0xA3,0xCA,0xAE,0x23,0xC8,0x05,0xA8,0xE3,0x58,0xF5,
+0xDD,0xF3,0x8E,0xC2,0x80,0xC5,0x8E,0xA4,0x97,0x88,0xE9,0x66,0xB1,0xCC,0x7F,0xC9,
+0x91,0xB0,0x49,0xD5,0x52,0x6C,0x45,0x2A,0x0B,0xF0,0x01,0x5A,0xF6,0x41,0xD1,0x75,
+0xAA,0x49,0xC0,0xD3,0xE5,0x70,0x60,0xE7,0xF8,0x49,0xB7,0x5C,0x7C,0xD0,0xC8,0xEC,
+0x28,0x43,0x4F,0x63,0x9F,0xD4,0x56,0x00,0x84,0x80,0xC0,0x78,0x8F,0x0A,0xA2,0x39,
+0x2F,0x76,0x23,0xB3,0x62,0xE0,0x1E,0x1F,0x93,0xAC,0xA7,0xDB,0xC5,0xD6,0x3B,0x5A,
+0x1A,0x46,0xAF,0xE8,0x5D,0x03,0x7E,0x9A,0x3E,0xF7,0xD1,0x36,0xC4,0xA1,0xD4,0xFE,
+0x08,0x8C,0xCA,0x7F,0xAD,0x65,0x02,0x3F,0xC1,0xE2,0x96,0x3F,0x7B,0xBC,0xFD,0x3C,
+0x20,0x50,0x51,0x4A,0x2C,0x75,0x3D,0xE9,0xC5,0xC6,0xD8,0x82,0xDA,0xE2,0xC6,0x12,
+0x79,0xEC,0x9F,0x1A,0x35,0xE4,0xA4,0x63,0xEB,0x41,0x9E,0x42,0xF2,0x79,0x1A,0x27,
+0x73,0xEE,0xA2,0x15,0x79,0x4C,0x88,0x9F,0xD7,0xD8,0x34,0xC1,0x2C,0x77,0x88,0x31,
+0xB5,0xB4,0xF4,0x9B,0x8A,0x4A,0x3E,0x26,0x94,0x94,0x23,0x06,0xD1,0xA8,0x2B,0xB9,
+0xCD,0x28,0xC8,0x73,0x95,0x5B,0xE6,0x82,0x60,0x15,0x11,0xDD,0xFF,0x28,0x2D,0xF8,
+0x22,0x41,0x72,0x6C,0x13,0x96,0x5D,0x6C,0x4F,0x84,0x92,0x40,0x16,0x89,0x9E,0x93,
+0x9C,0x87,0x18,0x0A,0x51,0x0C,0x8F,0x36,0x6B,0x81,0x64,0x0F,0x50,0x73,0xDF,0x8B,
+0x01,0x70,0xA3,0xF2,0x91,0xE6,0xA8,0xA6,0xA7,0xBD,0xB2,0xEA,0x85,0x37,0xA0,0x36,
+0x75,0x34,0xB9,0x61,0xB6,0xC9,0x94,0xBF,0x63,0x09,0xDB,0xBD,0x8E,0x7D,0x4D,0x9D,
+0xE5,0xF4,0x53,0x46,0x9B,0x69,0x18,0x24,0x5F,0x90,0x71,0x3E,0x1D,0xC3,0x73,0x38,
+0x53,0x21,0x27,0x09,0xDB,0xCE,0xC5,0x74,0x7A,0x83,0x42,0x2C,0x4E,0x30,0xCD,0x67,
+0x0F,0xB9,0xA6,0xAF,0xA5,0xD7,0xBD,0xB7,0xAA,0x07,0x86,0xB8,0x60,0xB0,0xCB,0x26,
+0xA9,0xB7,0x94,0x51,0x14,0x4B,0xD9,0x54,0xBE,0x37,0x2B,0x7B,0x4B,0x7F,0xE9,0x91,
+0x10,0x44,0x92,0xE7,0xF2,0xD3,0x07,0xCB,0xE1,0xC3,0x2E,0xCD,0xE1,0x6B,0x3F,0x14,
+0xE4,0x1B,0x24,0xE2,0xDA,0x93,0x00,0x62,0x01,0x72,0xB1,0xD5,0x93,0x6A,0xA1,0xF3,
+0xA0,0x4B,0xFD,0xDC,0x11,0xAB,0x52,0x66,0xE3,0xC9,0x21,0xF0,0x19,0xFB,0xB8,0x6A,
+0xBA,0x92,0x86,0x62,0x7C,0xAC,0x03,0xAD,0x3C,0xFD,0xDE,0x0B,0xE8,0x02,0xC3,0x99,
+0x5A,0xDD,0x4E,0x84,0x6F,0xB2,0x2A,0xA5,0x82,0xAE,0x81,0xF8,0xFA,0x67,0x09,0x0E,
+0x68,0xD8,0xAE,0x0F,0x31,0x59,0xEA,0x47,0x68,0x9D,0xAE,0x6F,0xC0,0x99,0x1F,0xAC,
+0xDE,0x0D,0xDA,0x40,0x6A,0x52,0xA1,0x97,0xCC,0x58,0xA2,0x6D,0x35,0x58,0xAF,0x0D,
+0x7E,0xD9,0xF3,0xCA,0xED,0xC2,0xDF,0x6F,0xC4,0xD0,0x1D,0xDF,0xEE,0x19,0x19,0xED,
+0xB3,0x6E,0xEF,0xEF,0xF6,0x6E,0x49,0xEF,0xDC,0x4C,0x41,0x13,0x39,0x7E,0x77,0x76,
+0x57,0xEA,0x1F,0x5B,0x81,0x98,0x4B,0xB2,0x8D,0x1E,0xBA,0x97,0xC2,0xBA,0x0E,0x8A,
+0x0B,0x72,0x9E,0xFD,0x07,0x55,0xF0,0x5C,0x32,0x5B,0x20,0x39,0x0A,0xE9,0x9D,0x59,
+0x0D,0xA8,0x85,0x89,0xB5,0xA9,0x5E,0xA3,0xFB,0x55,0x7D,0x3C,0x95,0x71,0x7B,0x87,
+0x52,0xCE,0x50,0xAD,0x25,0x9A,0x47,0x77,0x05,0x56,0xFF,0x68,0x34,0x2F,0x40,0xA9,
+0x32,0x9A,0x34,0xDD,0xB1,0x14,0x10,0x87,0x37,0x69,0xAB,0xD9,0xD5,0x90,0xE0,0xEB,
+0x59,0x23,0x1A,0x06,0x64,0x60,0x5F,0x31,0x04,0x40,0x3A,0x35,0x7F,0x84,0x36,0x6E,
+0x51,0x30,0x04,0x2F,0x38,0xB6,0x90,0xD9,0x9C,0x1C,0x9C,0xB4,0x30,0x17,0x8B,0xFB,
+0x6E,0x02,0xB5,0x7B,0xC0,0x62,0x53,0xF4,0x03,0x78,0xBE,0xE8,0xD3,0x8B,0x3A,0x9F,
+0xD2,0xD5,0xFC,0x3B,0xC7,0xBF,0xD7,0xCC,0xA9,0x1B,0x4C,0xD8,0x44,0x0D,0xCF,0x68,
+0x18,0x57,0x8C,0xCE,0xE4,0x2D,0xA5,0xF1,0x7E,0xA7,0x0C,0x91,0x43,0x61,0xFA,0xB8,
+0x3D,0xBC,0x46,0x24,0x66,0x5D,0x50,0x3B,0xF7,0xF9,0x8C,0x33,0x3E,0x12,0x42,0xA6,
+0x05,0xBB,0x9B,0xA0,0xCA,0xED,0xE3,0x76,0x2F,0xF5,0xF7,0x15,0x8A,0x45,0x86,0xCF,
+0x4D,0x33,0x64,0xE5,0xF9,0x01,0x72,0x5F,0xAC,0x29,0xC7,0x38,0xCF,0xEB,0x39,0x55,
+0x11,0xAB,0xE5,0x43,0x67,0x00,0x95,0x2D,0x3D,0xEB,0x1B,0x56,0x7A,0xCB,0x12,0x98,
+0x6B,0x26,0xFA,0x8D,0x4A,0xA0,0x19,0xB6,0x4C,0x98,0x58,0x20,0x6D,0xE1,0xFC,0xF9,
+0x9E,0x96,0x3B,0x2C,0x90,0xBB,0x6D,0xB0,0xD2,0xEA,0xBF,0x21,0xA1,0x8A,0xA4,0x78,
+0xC1,0xF0,0xEE,0x08,0xF1,0xB3,0xCD,0xD7,0xA6,0xAB,0x77,0xB7,0xF8,0x44,0x18,0x28,
+0xFB,0xE6,0x10,0xAA,0x1E,0xC4,0x69,0xD6,0xB2,0x9B,0xDA,0x74,0xDC,0xF9,0x1C,0x66,
+0x61,0x24,0xC7,0x82,0xBD,0x1B,0xE1,0x2B,0x56,0x0E,0x0B,0xD1,0x4A,0x08,0x06,0x35,
+0x7D,0x27,0xA7,0x48,0x00,0x88,0x74,0x64,0x83,0xB8,0x44,0xA5,0xD4,0xE7,0x0F,0x4F,
+0x96,0x85,0x25,0x05,0x15,0x16,0x1C,0x42,0x16,0x5E,0xD6,0x76,0x04,0xEC,0x54,0x04,
+0x3A,0x89,0x2A,0xF4,0x99,0x54,0x17,0x2E,0x53,0x3C,0x80,0x31,0x06,0xCF,0x45,0x22,
+0x38,0x98,0x09,0xD2,0xBA,0xC6,0x65,0x13,0x4E,0x92,0x57,0x1D,0xC7,0xF5,0x2A,0x7C,
+0x8B,0x69,0x32,0x6B,0xE8,0x22,0x54,0x5D,0x2E,0xE3,0x32,0x48,0x6A,0x8D,0xC9,0x29,
+0xE6,0x0A,0x07,0xC4,0x5C,0x5E,0xBB,0x8C,0x65,0x27,0x9A,0x3D,0xA2,0xDE,0x5A,0xFA,
+0x12,0x55,0xB1,0xC1,0x5E,0x63,0xB4,0x86,0x08,0xEC,0xCB,0x3A,0x45,0x7A,0x20,0xCC,
+0x03,0x61,0x80,0xD4,0x0C,0x87,0x85,0xC8,0x8E,0x02,0x70,0xF7,0x33,0x43,0x75,0x79,
+0x48,0x17,0x2B,0x13,0x7D,0xF1,0xC6,0xBB,0xC2,0xFE,0x5C,0x5F,0xBC,0x9D,0x48,0x16,
+0x4F,0x22,0x47,0xC3,0xE7,0x4D,0x6F,0xED,0x6D,0xAF,0x25,0x8F,0x71,0x81,0xFF,0x33,
+0x24,0xEF,0x4B,0xFB,0x62,0xF7,0xBC,0x8A,0xD2,0x26,0xF1,0x44,0xDE,0x87,0x06,0xDC,
+0x3E,0x1E,0x18,0x6D,0xC7,0x26,0x29,0x6E,0x0D,0x85,0x0C,0xCC,0x1C,0xAF,0xD1,0x46,
+0x37,0xF1,0x62,0xF3,0xB3,0x69,0x9F,0xBB,0x9E,0x38,0x43,0x59,0x1F,0x65,0xB1,0x5A,
+0x6C,0xFA,0x29,0x23,0x60,0xFB,0x79,0x2E,0x00,0x2D,0x65,0x31,0xBD,0x28,0x33,0xB1,
+0x2A,0xDD,0xB5,0x5D,0x40,0x36,0xCC,0x05,0x16,0x5F,0x0A,0xB8,0x93,0x6E,0xF3,0x36,
+0xC4,0xF7,0xD4,0x4A,0x36,0x75,0xBF,0x74,0xB6,0x72,0x91,0x34,0x1E,0xA0,0xEC,0x4C,
+0x9C,0x9C,0x55,0x86,0x37,0x92,0xCD,0xEA,0xAD,0xA8,0x97,0x40,0xAE,0x01,0x2D,0xB9,
+0x20,0x52,0x05,0xDF,0xA1,0x5A,0x8C,0x9E,0xA5,0xC9,0xF0,0xE0,0xC8,0x25,0xF8,0xE6,
+0x18,0x6C,0xE1,0x62,0x2C,0xE6,0xCB,0x30,0x75,0x66,0xA1,0x99,0x6D,0xEC,0xA7,0x35,
+0x4D,0x55,0x54,0x14,0xE1,0x5D,0x25,0xB6,0x91,0x34,0xEF,0xA8,0x59,0xF9,0x96,0x24,
+0x70,0x8B,0x3B,0x9B,0x49,0x71,0xD9,0xFA,0xE7,0x45,0x9C,0xEB,0x2F,0x3E,0x3D,0x6F,
+0xC7,0x97,0x1E,0x56,0x99,0x08,0x88,0x55,0x5B,0xDF,0xCA,0x42,0x1A,0xEE,0x51,0x68,
+0x7D,0xD9,0x0F,0x21,0x27,0xAD,0x1B,0x6B,0x42,0xA1,0x09,0x3A,0xB1,0xD9,0x3C,0x1D,
+0x12,0xE3,0x51,0xE0,0x0B,0x7A,0xB5,0x76,0xD0,0x82,0x34,0x48,0xA0,0xFF,0x1F,0x1F,
+0xF1,0x9B,0x04,0x4D,0x5E,0x1F,0xC4,0x16,0x34,0xD0,0x7A,0x79,0x51,0x46,0x24,0xAC,
+0x62,0xC8,0xD7,0x85,0x2B,0xB7,0x00,0x5D,0x48,0x64,0xAB,0x96,0x32,0xE9,0x11,0xC1,
+0xA5,0xFF,0x74,0x2D,0x2F,0x0D,0x7C,0x0A,0x43,0x3F,0x7B,0xDD,0x4A,0xD0,0x88,0x2C,
+0x43,0x67,0xAA,0xB2,0x2A,0x50,0x72,0xC3,0xBF,0x8D,0x84,0x73,0x90,0xA4,0x93,0x2A,
+0x78,0x39,0x84,0x13,0x7E,0xD2,0x71,0x3D,0x8C,0x1D,0x50,0x6A,0xF6,0x80,0x46,0x75,
+0xD8,0x86,0xC6,0xF2,0xCF,0x86,0x4E,0x0F,0x02,0x89,0xA0,0x3D,0xA2,0xF0,0x22,0x15,
+0x97,0x4E,0x20,0x12,0x7B,0x8F,0x7F,0xF4,0x44,0x52,0xB0,0x8C,0x35,0x6D,0xCC,0xF9,
+0x21,0x0F,0xC0,0xC9,0xC9,0x30,0xF7,0xFC,0xD4,0xD5,0x48,0xF2,0xE1,0xE7,0xE5,0x59,
+0x4F,0x68,0x5B,0x1E,0x05,0x6C,0x6B,0xE4,0x78,0xCE,0xC8,0x64,0x56,0xC2,0xF9,0x94,
+0x36,0xAC,0xA7,0xE5,0x81,0x97,0x39,0xB5,0x8E,0xB9,0x95,0x66,0xD2,0x76,0x09,0x70,
+0xC2,0x77,0x95,0x64,0x87,0x21,0x80,0x46,0x3B,0xDC,0xD6,0x88,0x6F,0xE3,0x9A,0x3F,
+0x7A,0x04,0x8B,0x19,0x25,0xA1,0xDE,0xCF,0x4B,0x5E,0x1C,0x7D,0x84,0x09,0x50,0x1A,
+0xBE,0x53,0xE2,0xAD,0x03,0xDA,0xD2,0x17,0xFB,0xF2,0x51,0xCE,0x83,0x8D,0x8D,0x22,
+0x01,0xFD,0x78,0xE8,0x2E,0xEA,0x0E,0x94,0x17,0xC1,0x78,0x5F,0x0B,0xC8,0x72,0x6A,
+0x0E,0x92,0x43,0x58,0x23,0x17,0x67,0x3C,0x76,0x5C,0x16,0x72,0x1B,0x2B,0x0C,0x7E,
+0xB3,0x01,0xD6,0x17,0xA2,0xB1,0x3B,0xA4,0xA0,0x00,0xFE,0xBD,0x08,0x02,0x12,0x76,
+0x02,0x9D,0xB2,0xF4,0xFE,0x93,0x5F,0x3B,0x74,0xF8,0xD3,0x7E,0x3A,0x56,0xA3,0x49,
+0xF7,0x1B,0x45,0x63,0xCE,0x61,0x3C,0x91,0xA9,0xFF,0xEB,0xFA,0xED,0x16,0xEA,0xF5,
+0x98,0x21,0x1B,0xA2,0xFC,0x9F,0x9A,0x9F,0xF0,0xA9,0x81,0x85,0x48,0xDF,0xB5,0x26,
+0x75,0x6B,0xB0,0xA9,0xAB,0xF6,0x2E,0x5B,0xDF,0x8E,0x98,0xB9,0x0C,0x4C,0xAF,0x52,
+0x4B,0xD5,0x15,0x3A,0x28,0x5C,0xB7,0x67,0x7F,0xA3,0x03,0x35,0xCC,0x6B,0x45,0xC2,
+0xF5,0x26,0x4A,0x69,0x3A,0x6F,0xA4,0x42,0xD8,0xE3,0x53,0xE8,0x19,0x24,0x31,0x74,
+0x13,0xBE,0x94,0xF6,0x10,0x0E,0xB3,0xAC,0x5C,0xB2,0x01,0x13,0x8C,0xB6,0xE2,0x92,
+0x15,0x3E,0xD5,0xD8,0xCB,0x3C,0x32,0x58,0x4D,0xAD,0xA5,0xCB,0x10,0x5E,0xDE,0xEA,
+0xA6,0x9F,0xBE,0x31,0x56,0xBF,0xA3,0x77,0x80,0x2B,0x4B,0x70,0x79,0x41,0x64,0x05,
+0xE7,0x65,0xA6,0x77,0x19,0x49,0xA6,0x53,0x1A,0x69,0x11,0xA2,0xBF,0x27,0x0E,0xBB,
+0x80,0xED,0x47,0x3E,0xE6,0x0C,0xEE,0xDB,0xBD,0x29,0x41,0x7F,0x73,0xF1,0xEB,0x87,
+0xFB,0x14,0xB4,0xCF,0x1D,0xF3,0xDA,0x04,0xBA,0x44,0x8A,0x2E,0xAA,0x4F,0x90,0x9D,
+0x31,0x71,0x23,0xDD,0xEE,0xAC,0x89,0xBA,0xA4,0x57,0x82,0x07,0xE5,0xA9,0x58,0x7D,
+0x27,0x8F,0x81,0xE7,0x79,0x83,0xBA,0x50,0x4F,0x09,0x60,0xC7,0xE0,0x22,0xB8,0x4F,
+0xF3,0xA6,0x0B,0x47,0xAE,0xAB,0x20,0x92,0xC1,0x9D,0x90,0x90,0x81,0x82,0xB0,0x28,
+0xD1,0x69,0xBC,0x6C,0x6D,0x06,0x10,0x86,0x5D,0x2C,0x73,0xF4,0x8F,0x7C,0x82,0x8E,
+0x07,0x7D,0x39,0xC6,0xDB,0x03,0xE4,0xD9,0xC5,0xCA,0xEC,0x2A,0x7C,0xCA,0x84,0x37,
+0x99,0x7C,0xDE,0xB4,0xC3,0x9C,0x55,0x39,0x85,0xE2,0x45,0x2D,0x23,0xCF,0x32,0xC3,
+0x28,0xE0,0xBA,0x57,0x8A,0xDC,0xE9,0xEE,0xE8,0x49,0x30,0x1A,0xC6,0xDB,0xCA,0x40,
+0x60,0xF5,0xD8,0x8F,0x13,0xE5,0x04,0x96,0xB2,0x25,0xED,0x8E,0x61,0x1D,0xA8,0x99,
+0x47,0xDA,0xE4,0x96,0x70,0xC4,0xAF,0xAF,0xD3,0xB8,0x83,0xA3,0xCB,0xEF,0x98,0xFA,
+0xE9,0x57,0x58,0xD1,0x4C,0x2C,0xD7,0x33,0x7A,0x6A,0x0D,0x68,0x88,0xF8,0x5F,0xB6,
+0xCD,0x18,0xAE,0xD4,0x0A,0x9D,0xC7,0xE8,0x30,0x87,0x06,0xC3,0x11,0x9B,0x83,0xFC,
+0x54,0xC4,0xCD,0x9E,0x41,0xD1,0xBE,0x9B,0x3F,0x8B,0xAA,0x32,0x7F,0x00,0xE4,0x2B,
+0x40,0x07,0x60,0xAE,0xBC,0x98,0x33,0xB7,0x08,0x4C,0x02,0x91,0xEB,0x57,0x6A,0xDB,
+0xE6,0x38,0x63,0x61,0xE9,0xFD,0x42,0xD7,0x95,0x63,0x93,0x12,0xDA,0xC9,0xBB,0xF8,
+0xC5,0xAA,0x11,0x5C,0x29,0xBB,0xC5,0xF9,0x73,0x95,0x18,0x2F,0xB4,0x52,0xDC,0x2F,
+0xFE,0xF4,0x3F,0xFD,0x94,0xF5,0xE1,0xFD,0x63,0x14,0xCE,0x10,0x68,0x67,0x47,0x07,
+0x22,0x6F,0x0A,0xD5,0x54,0xB3,0x66,0xD3,0xF2,0x0D,0x44,0x89,0xD4,0x37,0x89,0x5E,
+0xB0,0x61,0x1C,0x0B,0xD7,0x19,0xFF,0xEF,0x5A,0x41,0xB8,0xA5,0xD6,0x38,0xB4,0x54,
+0xF0,0xC6,0xC1,0x5B,0x4A,0x9A,0x6E,0xC0,0x66,0xDD,0xC0,0x4D,0x71,0xFE,0xD6,0x8D,
+0x9A,0x1C,0x14,0xA8,0x6E,0xED,0xA7,0xBC,0xC2,0xA7,0x27,0x7B,0x7B,0x4E,0x59,0x0F,
+0x03,0xC0,0x77,0xE2,0xCD,0x8A,0x8B,0xAB,0xF6,0x5A,0x38,0x33,0x4E,0x9E,0x35,0x08,
+0xEC,0xB7,0xD3,0xE3,0x20,0xFC,0xD0,0x06,0x15,0x65,0xBD,0x53,0x7E,0xC5,0xB9,0x3D,
+0x14,0x5E,0x63,0xDF,0x1B,0xDC,0x71,0x8E,0xA9,0x93,0x3D,0xC2,0x36,0xFC,0x3A,0x83,
+0x55,0x70,0x65,0x5F,0x9A,0x28,0xAA,0xBC,0x0D,0x4B,0x2C,0xDD,0xDE,0x60,0x42,0xBF,
+0x3E,0x99,0xD6,0xFE,0x0B,0x07,0x37,0x3F,0xE3,0xF0,0xE1,0x5B,0xC1,0x09,0xAD,0x05,
+0x26,0xDF,0x97,0x04,0x0E,0x23,0x78,0xC9,0xB9,0x22,0x7B,0x19,0xA7,0xCF,0x13,0x6F,
+0x9B,0x0A,0xE8,0x40,0x32,0xEF,0x9D,0x1F,0x29,0x05,0x91,0xD9,0x5F,0x38,0x8E,0xD4,
+0x30,0x01,0x05,0x0A,0x86,0x2B,0xCA,0x76,0x30,0x39,0xBE,0xFE,0xCC,0x7C,0xFA,0xCE,
+0x95,0x92,0x3B,0xB4,0x1F,0x17,0x49,0xDC,0xAB,0xB5,0x1E,0xD3,0xEB,0xBC,0x6A,0x24,
+0xCA,0xC1,0x85,0x47,0x0C,0x32,0x5B,0xEF,0xFB,0x68,0xB9,0x93,0xA4,0x69,0xDC,0x50,
+0x8B,0xEF,0x83,0xC7,0x88,0xE2,0xCF,0x2B,0x38,0x10,0xA0,0xED,0x02,0xF1,0x80,0xD1,
+0x3C,0xC4,0xA1,0x08,0xB8,0xF6,0x0C,0x86,0xDB,0x74,0x3C,0x5C,0xFC,0xFF,0x26,0xE3,
+0xB9,0x6E,0x77,0x1C,0x4C,0xA9,0xBA,0x83,0x44,0xAA,0xA4,0xBA,0x4A,0x0C,0x9F,0xE5,
+0x5E,0x1C,0xE9,0x1D,0xFD,0x49,0xA2,0x1C,0xED,0xAD,0xE4,0x92,0x4F,0x53,0x6B,0x53,
+0xC7,0x96,0xF0,0x8C,0x46,0xAB,0x87,0x8C,0xE9,0xFF,0xDC,0x59,0x71,0x03,0x2F,0x8A,
+0x34,0x67,0x8B,0x75,0x72,0x74,0x7C,0x73,0x22,0xAE,0xDB,0x34,0xCF,0xDA,0x35,0xF1,
+0xA3,0x75,0x41,0x10,0x21,0xCA,0x8F,0x2C,0x2A,0x87,0xC5,0x27,0x29,0x95,0xD5,0x39,
+0x01,0x4F,0x57,0xEE,0x12,0x20,0x18,0x03,0xC8,0x47,0x2E,0x79,0xA2,0x90,0xE7,0xD9,
+0x2E,0x7C,0xBD,0x79,0x6F,0x98,0x6B,0x1D,0xAE,0x43,0x51,0xF7,0x1B,0x61,0x54,0xE2,
+0x4D,0x36,0x24,0xA5,0x16,0xEB,0x20,0x51,0x02,0xB2,0x5E,0xFB,0x80,0x0F,0x83,0x85,
+0xE0,0x06,0x30,0x66,0x9B,0xC7,0xDD,0x18,0xAA,0x11,0x69,0x3C,0xD7,0x9B,0x73,0x0B,
+0xE3,0xC9,0x96,0x59,0xEA,0xA7,0x88,0x7D,0x3B,0x92,0xF4,0x13,0x49,0xAA,0x50,0xDA,
+0x3A,0xFF,0x58,0x81,0x41,0x9E,0xEB,0x5C,0x98,0x9A,0x89,0x39,0x5B,0xB6,0xE8,0xAB,
+0x58,0x27,0x10,0x94,0xAC,0xE6,0x72,0x65,0x45,0x0E,0xD3,0x55,0x9D,0x11,0x31,0xC9,
+0x64,0x3E,0x37,0xBB,0x07,0xDF,0x11,0x44,0x2B,0x23,0xB2,0xC8,0x6F,0xBB,0x52,0xF9,
+0xD8,0x79,0x99,0x36,0x7F,0x43,0x2D,0xAC,0xA5,0xE8,0x1B,0x1A,0x78,0xF8,0x1E,0x3E,
+0x41,0xF3,0x80,0xA7,0xC6,0xB0,0x2B,0x1A,0x68,0xCD,0x07,0xAD,0x7E,0x01,0x25,0xB7,
+0x94,0x00,0xEA,0x7D,0x0F,0xCC,0x0F,0x6D,0x8F,0xFB,0xA3,0xD7,0xCE,0x0B,0xA7,0x38,
+0xF7,0x4A,0x73,0xA1,0x23,0xDB,0xAC,0x0A,0x90,0xB3,0x97,0x2A,0x1E,0x3E,0xA0,0x54,
+0x53,0x4B,0x9C,0xD6,0x78,0x76,0x41,0x7C,0x15,0xD3,0x74,0x15,0x45,0x0E,0x95,0xD8,
+0x91,0xF4,0xB5,0xCB,0x6D,0x89,0x48,0x3B,0xB0,0xAF,0x12,0xE5,0xD2,0xC4,0x87,0xBD,
+0xBF,0x55,0x8E,0x95,0x49,0x8D,0xF5,0x75,0x66,0x90,0x02,0x64,0xE7,0x18,0xAF,0x26,
+0x8A,0x7D,0x52,0x0E,0xCE,0xA3,0x35,0x33,0xEC,0x09,0x93,0x7D,0xB7,0xA4,0xF6,0xE8,
+0x9C,0xA3,0xC0,0x00,0x57,0x9F,0xB6,0x99,0x10,0x25,0x3B,0x31,0xB8,0xA6,0xFC,0xD5,
+0x35,0xF5,0x5A,0xBC,0x64,0x75,0x21,0xB6,0xA2,0x38,0x77,0x2F,0xEE,0xE3,0x9E,0x92,
+0x54,0xE2,0xB4,0x96,0x17,0x04,0x57,0xF5,0x39,0xB4,0xD7,0x02,0x20,0x6E,0xE4,0x8D,
+0xD5,0x2E,0xEC,0xFD,0x65,0x9A,0x56,0x12,0x3F,0xC0,0xCC,0xD8,0x81,0xDE,0x11,0x4C,
+0x85,0x77,0x50,0x33,0x24,0xEE,0xC0,0xDA,0x58,0x60,0xC4,0xB9,0xA5,0xB8,0x4E,0x99,
+0xCB,0x53,0x54,0x8E,0x14,0xFA,0x03,0x77,0x59,0xC4,0xB3,0x56,0x07,0xAE,0x74,0x67,
+0x98,0xC5,0x4E,0x7F,0x81,0x1E,0xA6,0xA6,0xA4,0x4C,0x6C,0xF5,0x2F,0x6C,0xEE,0xB0,
+0xE2,0x5B,0x47,0x90,0x37,0xCB,0xD2,0xE9,0xEB,0xD9,0xFF,0x48,0xE5,0x6F,0xF2,0xD0,
+0xA9,0x8B,0x1C,0x9B,0xD1,0x5E,0x01,0x7B,0xCD,0xB1,0x61,0x5D,0xA8,0xCD,0x19,0x52,
+0x8F,0x89,0x0D,0xB8,0xB3,0x1B,0x46,0x2D,0xA1,0xBA,0x23,0xD1,0x59,0xC1,0xB5,0x5D,
+0xD1,0x48,0x62,0x82,0x1D,0x06,0x6A,0xFA,0x9C,0xC8,0xB1,0xF2,0x7F,0xD0,0xB7,0x7E,
+0x84,0xE5,0x81,0xFA,0x6C,0x66,0x3F,0x9F,0xD2,0xF9,0x55,0xA0,0xC6,0x21,0x04,0x45,
+0x57,0x2D,0x12,0xA9,0xA8,0x2D,0x4A,0x37,0x03,0x16,0x29,0x14,0x69,0x42,0x69,0x70,
+0x61,0xCA,0x68,0x0D,0x63,0x40,0x4D,0x66,0x09,0x19,0x14,0x16,0x6C,0x1D,0x9D,0xC6,
+0xD4,0xBC,0x3D,0x34,0x8D,0xC6,0x80,0xDD,0x47,0x28,0xF0,0x44,0x79,0x29,0x8C,0xF7,
+0xBB,0x33,0x00,0xEA,0x71,0x8A,0x28,0xF1,0x34,0x6B,0x86,0x35,0xBE,0x5F,0xC7,0x5C,
+0x9E,0xFE,0xB7,0xF6,0x20,0x25,0xF8,0x88,0x62,0xC2,0x3A,0xAF,0x6E,0x6A,0xC0,0x30,
+0xA0,0xBA,0xE7,0x2F,0xD7,0x84,0x1A,0x0F,0x18,0x0C,0x25,0x22,0xED,0x45,0x51,0xAD,
+0x40,0x61,0x51,0x6E,0x5F,0x8C,0xA8,0xB0,0xE0,0x72,0xB5,0xA5,0x67,0x91,0xF1,0x84,
+0xDB,0xB6,0x3F,0x09,0xC3,0x94,0x64,0xEC,0x60,0xE4,0x19,0xBE,0x42,0x26,0x3C,0x98,
+0x27,0x4D,0x46,0xCD,0x91,0xC5,0xE0,0x17,0x3D,0xE6,0xEF,0xC9,0xF6,0xA2,0xD8,0x68,
+0xF4,0x85,0xD5,0x9E,0xD4,0x7A,0x4E,0x8D,0xD3,0x5D,0x22,0x4F,0x50,0x3A,0x84,0xE9,
+0x2A,0x1A,0x33,0x06,0xDA,0xB3,0x4B,0xD0,0x2C,0xF3,0xDE,0xFD,0x24,0xE0,0x82,0xF2,
+0x04,0xBB,0x08,0x58,0xD9,0x4D,0x1F,0x52,0xF8,0xEA,0xED,0x6D,0x00,0x86,0xDD,0x27,
+0x46,0x5A,0xA8,0xE7,0xE6,0x7F,0xAE,0x06,0x08,0xBD,0x63,0xF9,0x70,0xD2,0xBD,0x43,
+0xC3,0xF0,0x7E,0xF3,0xCF,0x4C,0x42,0x97,0xBE,0xF2,0x17,0x2C,0xAB,0x6B,0xD6,0x6D,
+0x56,0xBF,0xC3,0x60,0x93,0xD4,0xC3,0x31,0x56,0x3D,0xC1,0x70,0x82,0x78,0xDE,0x73,
+0x32,0x5C,0x72,0xFC,0xF7,0x4B,0x9F,0x13,0x7B,0xFE,0x15,0x88,0xD6,0x4A,0xE1,0xC2,
+0xC5,0xCB,0x87,0x7A,0x94,0xE1,0xAF,0xE1,0x43,0x7A,0xC8,0x8F,0x96,0x9D,0x5D,0x8B,
+0x15,0xCC,0xB2,0x16,0x28,0x36,0xE6,0xA1,0x7E,0x08,0x5A,0xAC,0x63,0x1F,0x97,0xFB,
+0x0B,0xB1,0x0A,0x65,0x76,0xBF,0x44,0x21,0xB4,0xFD,0x2A,0x2E,0x89,0xF4,0xB2,0x31,
+0x62,0x05,0xCE,0x32,0x7A,0x67,0x62,0x5A,0xF9,0x4E,0x9A,0x82,0x0D,0xF3,0x8A,0xEC,
+0xF8,0x40,0x71,0x9C,0xA6,0xE4,0x4F,0x6A,0xD0,0xDF,0x76,0xB1,0x48,0x7B,0xC2,0x13,
+0x61,0xE8,0xAE,0x0C,0x87,0x94,0x52,0xA0,0x00,0x58,0x2C,0x04,0xD5,0xF9,0x2C,0x65,
+0x31,0xA8,0x09,0xD1,0x52,0xE0,0x1D,0x16,0xBE,0x0B,0x73,0xF7,0xC6,0xEB,0x09,0x56,
+0xE3,0xE2,0x21,0xBC,0x03,0x64,0xE6,0x44,0xD3,0xC0,0x22,0xF0,0xF8,0x2D,0xD4,0xA6,
+0xFA,0xC5,0x0E,0x80,0x47,0x7E,0x75,0x30,0x3E,0xCB,0x89,0xBA,0x4C,0x7A,0x10,0xCF,
+0x29,0x60,0x51,0x49,0x32,0xB5,0x78,0x67,0xED,0x53,0x87,0x4E,0xC1,0x87,0x3C,0x86,
+0x73,0x22,0xCB,0x9B,0xF4,0xDF,0x1E,0xD9,0xAC,0x15,0x9F,0xB4,0xC4,0xC8,0x18,0x70,
+0x63,0xF9,0x8D,0x2A,0xC7,0x33,0x8F,0xF0,0x58,0x94,0xAD,0x6F,0xD1,0xC1,0xE7,0x37,
+0xC7,0xE6,0x9C,0xF2,0x5B,0x0F,0x67,0x88,0x5E,0xBA,0xEC,0xEF,0x50,0x1A,0x13,0x05,
+0xE0,0x1C,0x75,0x3E,0xAE,0x89,0x90,0x1F,0x7A,0xBF,0x1A,0xA0,0xEB,0x3F,0xF1,0x95,
+0x02,0x42,0x9E,0xFE,0xAB,0x69,0x1B,0x2D,0x6C,0x85,0xB8,0x5E,0xD8,0xA8,0x1B,0xBA,
+0x23,0x62,0x6C,0x46,0x38,0x3A,0xC8,0xE5,0xCB,0x5C,0x7E,0x3C,0x8C,0x37,0x90,0x35,
+0xE8,0x0F,0x6B,0x17,0xE1,0x41,0x76,0xFF,0xB0,0xAD,0x8D,0xC5,0xB8,0xCC,0x4F,0xCA,
+0x8E,0x81,0x14,0x13,0x37,0x55,0xF3,0x55,0x4C,0xA4,0x00,0xAC,0x86,0x0A,0x92,0x3A,
+0x27,0xA9,0x54,0x14,0x68,0xE3,0xF6,0xA1,0xD2,0xD6,0xE7,0xAD,0x37,0x12,0x72,0xA5,
+0xF2,0xD6,0x10,0xA9,0xCA,0x61,0xBB,0x4A,0xB8,0x25,0x32,0x77,0x42,0x7F,0xD9,0x92,
+0x11,0x67,0x8C,0xCD,0xC4,0x53,0x45,0xEC,0x9A,0x0E,0x85,0xB8,0x72,0xBC,0xCD,0x3F,
+0xE1,0xF3,0x02,0x9A,0x80,0x49,0xD6,0x98,0x0C,0xF4,0xDD,0x0B,0xCD,0xA1,0xE4,0xFD,
+0x6F,0x21,0xAB,0x51,0xC3,0x8E,0xC1,0xD4,0xA2,0xB3,0x61,0x86,0xB5,0x9D,0x78,0x15,
+0x52,0x02,0x39,0x23,0x8D,0x1B,0xE2,0x22,0x63,0x35,0x83,0x31,0x8B,0x5B,0xA5,0xE5,
+0x8F,0x6E,0x63,0xB7,0x2A,0x79,0x24,0xFB,0x2B,0xED,0xE1,0x24,0x66,0xC2,0xDD,0xDC,
+0x60,0x07,0xD9,0xA8,0xA0,0xBB,0x6E,0xB9,0x0B,0xCC,0x59,0xD6,0x51,0x6D,0xFC,0xA1,
+0xF1,0x28,0x44,0x2B,0x91,0x6A,0xF0,0x9A,0xAD,0x03,0x5A,0xE9,0x20,0x38,0x9C,0xC4,
+0x64,0xCC,0xE1,0xFA,0x5A,0x52,0xA2,0x9E,0x86,0xB6,0x97,0xC9,0xA5,0xDB,0xA3,0xA4,
+0xC8,0xC0,0xEE,0x0B,0x34,0x35,0x39,0x49,0x1F,0xFC,0xF4,0x15,0xDC,0x90,0xD0,0xE8,
+0x26,0x46,0x23,0xB0,0x9F,0x58,0x0E,0x3C,0x69,0xB7,0x33,0xBE,0x04,0x85,0x98,0x8A,
+0xDA,0x0A,0x8B,0x9C,0x9D,0x65,0x01,0x36,0xFB,0x69,0x25,0xB0,0x9D,0x06,0xA4,0x20,
+0x7A,0xDE,0xA2,0x16,0xFF,0x0D,0x6B,0x4D,0x8E,0x3E,0x28,0x7B,0xA7,0xF8,0xB2,0x82,
+0xAC,0x5F,0xB2,0x29,0x23,0x96,0x5E,0x65,0xB5,0x9F,0x06,0x25,0x83,0x45,0xB6,0xCC,
+0x5A,0x11,0x27,0x0A,0x05,0xE4,0xA7,0x6A,0x48,0x80,0x4E,0x11,0xE9,0x1C,0xE0,0xB3,
+0xDF,0x2E,0xC4,0x6A,0x35,0x68,0xFC,0x5F,0xA7,0x81,0xEA,0x66,0xB2,0xF1,0x4D,0xC5,
+0xA2,0x96,0xB7,0x74,0x3A,0x07,0xC7,0xEF,0xBB,0x39,0xF8,0x17,0x0C,0x9B,0x8B,0xA3,
+0x45,0xEC,0x13,0x42,0x30,0x88,0x77,0x6D,0xD1,0xCA,0x2D,0xCD,0xC5,0xBF,0xF7,0xD4,
+0x21,0x73,0x4F,0x60,0x54,0x60,0x5C,0x38,0x7C,0x91,0x5B,0x20,0xFD,0x62,0xF0,0x50,
+0x07,0x66,0xD1,0x08,0xF6,0xE2,0x11,0xD3,0x27,0x41,0x10,0x2B,0x1B,0xB1,0x65,0xC2,
+0x93,0x6D,0x03,0x7D,0x95,0xD7,0xBE,0xBE,0x6F,0x99,0x72,0x3E,0xDE,0xB3,0xC1,0xCE,
+0x6E,0xCE,0xDC,0xF5,0x57,0x00,0x96,0x24,0x75,0x0F,0x21,0xCF,0x4B,0x16,0x25,0x1F,
+0xF5,0xE3,0x7C,0x79,0xE5,0xFC,0x38,0xDB,0xD7,0xE4,0x6C,0x4D,0xAF,0xE6,0xA1,0xAB,
+0x92,0x82,0x74,0xD9,0x83,0x29,0x1C,0x84,0x6B,0xBD,0x3C,0x83,0xEE,0x70,0xD5,0x63,
+0x68,0x14,0xC7,0x81,0xD8,0x22,0x57,0x54,0x61,0x3F,0x8C,0x0C,0xAE,0x91,0x4E,0x0F,
+0xF3,0x39,0x67,0x0D,0x55,0x3D,0x99,0x2E,0x8F,0x28,0xED,0x26,0xDD,0xE7,0x3F,0x4C,
+0xFE,0x0E,0x36,0xD2,0x64,0xEC,0x07,0x0D,0x3B,0xF9,0x02,0x5A,0xBB,0x98,0xB1,0x48,
+0xA8,0x94,0x8A,0x7B,0x51,0x80,0xD7,0x0A,0x8C,0x34,0x27,0x46,0xEA,0x48,0x1E,0x31,
+0xC3,0x2D,0xA4,0xA0,0x26,0x76,0xD5,0x57,0x53,0x00,0xD8,0xBD,0xA9,0xFD,0x7B,0xDF,
+0x8D,0x7F,0x40,0x91,0x12,0x47,0xC0,0x46,0x06,0x76,0x6D,0x84,0x47,0x30,0xFD,0x64,
+0x18,0x9B,0xE5,0x40,0x1A,0xF5,0x7F,0xCE,0xBA,0x2F,0x3D,0x4A,0xA6,0x8F,0x5D,0x26,
+0xC9,0x2F,0x99,0xAF,0x79,0xC0,0xD0,0xA3,0x29,0xE7,0xEE,0x19,0x62,0xFA,0x16,0x8E,
+0x6B,0xEA,0x93,0x03,0xFA,0xED,0xE0,0x7F,0x36,0x43,0x36,0x08,0x79,0xF6,0x20,0x94,
+0x56,0xC9,0x01,0x71,0xEB,0xCE,0xC6,0x7D,0x59,0x82,0x68,0x32,0xD7,0xDA,0x3D,0x43,
+0x32,0x56,0x5D,0x53,0xBD,0x97,0xB9,0x17,0x33,0x71,0xBD,0xE8,0x13,0xAF,0x76,0xEB,
+0xC2,0xC2,0xD3,0x04,0xE9,0xF3,0xC9,0x77,0x93,0x90,0xFF,0x57,0x2C,0x1E,0x44,0xBF,
+0x19,0x74,0x92,0xE4,0x01,0x59,0xE9,0x4E,0xEE,0x4F,0x4D,0x2E,0x1E,0xFE,0x41,0x34,
+0xE6,0xC6,0x6E,0x4A,0xDB,0x42,0x9D,0x48,0x08,0xD0,0x93,0xB6,0x10,0xFB,0x88,0x69,
+0xAA,0x85,0xA9,0x5D,0x1D,0x28,0xFB,0xF6,0x04,0x7C,0x62,0xB9,0x09,0xD4,0xAF,0x55,
+0xF7,0xF2,0x5F,0x5F,0x99,0xD8,0x4F,0x12,0x7D,0x87,0x9E,0x7D,0x5B,0x50,0xFE,0xAE,
+0xD2,0x19,0x95,0xB5,0x7E,0x1D,0x54,0x9B,0xDC,0x70,0x19,0x9F,0x1D,0xAA,0xBF,0xB6,
+0x2A,0x9E,0x05,0xCB,0xAA,0x34,0xDE,0x3B,0x6A,0xAB,0xF9,0xDE,0x95,0x18,0xB7,0x09,
+0x33,0xB9,0x2A,0xF7,0xC8,0x5C,0xB4,0x40,0xF5,0xCF,0xDB,0x82,0xB0,0xD2,0x5C,0xE3,
+0x1A,0x8A,0xC6,0x66,0x40,0xA3,0xF1,0x08,0x4A,0x8A,0x41,0x2C,0x6C,0xFF,0xDF,0xD3,
+0xB4,0x97,0xEA,0xB1,0x24,0x4B,0xDA,0x5D,0x89,0x06,0xAC,0xA6,0xE2,0x56,0x0D,0x18,
+0x7E,0x15,0x9A,0x44,0xCF,0x81,0x30,0x78,0x31,0x7B,0xB2,0xD5,0xBC,0xF4,0x84,0x98,
+0xB1,0xB3,0xA5,0x47,0x71,0x72,0x6F,0x2B,0x49,0x96,0x8B,0x4C,0x3D,0x2F,0x70,0xAA,
+0x89,0xB4,0x78,0xC3,0xA6,0x3B,0x2F,0x97,0xBC,0x01,0x7C,0xCA,0x5E,0x1F,0xDA,0x58,
+0x74,0x17,0xA7,0x4B,0x50,0xDD,0x12,0x1C,0x45,0x3A,0x7A,0x43,0x05,0xF2,0x77,0x2E,
+0x9C,0x4B,0x71,0x84,0x43,0xC3,0x3B,0x14,0xF8,0x75,0xEF,0xD0,0x59,0x73,0xEF,0x88,
+0xEB,0x30,0x28,0x59,0xF5,0x22,0xF5,0x49,0x28,0x77,0x05,0xE4,0xA9,0xEA,0xBA,0x13,
+0xBD,0xAA,0x94,0xF0,0xC0,0x4E,0x25,0x4E,0x9F,0xBA,0x20,0xF8,0xF8,0x3A,0x15,0x6A,
+0xCE,0xDB,0xE2,0xB3,0xB6,0xE5,0xE2,0x05,0xA2,0x35,0x4F,0x26,0x04,0x92,0x59,0x46,
+0x80,0x89,0x06,0x82,0x82,0xD4,0xF7,0x14,0xF7,0x43,0xFA,0x1F,0xEA,0x5F,0xDF,0xFD,
+0x8A,0x8B,0x3B,0x8D,0xDD,0x62,0xF2,0xE0,0x8D,0xA4,0xCC,0xBB,0x21,0x58,0xB2,0xAC,
+0x5B,0x3F,0x47,0x62,0xBE,0x57,0x5D,0x8D,0x1E,0x6C,0x1F,0xE8,0xE5,0x2D,0xF9,0x04,
+0x15,0x6D,0xA3,0x53,0x4F,0x6C,0xE4,0x3E,0xFD,0xC1,0x4A,0x90,0x94,0x78,0x99,0x61,
+0x28,0x4E,0x31,0x21,0x5E,0x4F,0xC2,0x3C,0x92,0x00,0x14,0xAA,0x3A,0x54,0x84,0xB6,
+0x44,0xC2,0x73,0x2A,0x52,0x40,0x33,0x90,0x83,0x02,0x32,0x89,0x58,0x13,0xC1,0xE0,
+0x62,0xD7,0xED,0x42,0xF0,0xC2,0x7E,0x7B,0xD8,0xD2,0x79,0x82,0xBE,0xC0,0x54,0x72,
+0x2D,0x6A,0x7E,0xD7,0xF3,0xA2,0xB4,0x67,0xD1,0x4C,0x03,0x6D,0x08,0xB4,0x81,0x3D,
+0xD0,0xC9,0xA1,0x5F,0x31,0x75,0x9C,0xFD,0xCB,0xDA,0x50,0x9C,0x9D,0x11,0x65,0xEC,
+0xD1,0x26,0xD6,0xFB,0x27,0x8B,0x3E,0xC7,0xCF,0xFE,0x1E,0x21,0xAD,0xD2,0x71,0x41,
+0xB6,0x47,0xDE,0x5B,0x41,0x5E,0x1A,0x98,0x73,0xA7,0x4E,0xEF,0xEC,0x44,0x05,0x89,
+0xB0,0x9D,0xC5,0x2F,0xF1,0x9F,0xBB,0x6D,0x2B,0x6B,0xCF,0x84,0x9E,0x45,0x9B,0x6E,
+0x2B,0xB0,0x65,0xA3,0x7C,0x80,0x75,0x17,0xC5,0x7C,0xAE,0xAE,0xED,0x33,0xEA,0x2D,
+0x59,0x2E,0x64,0x44,0xE4,0x01,0xD3,0x4B,0xEE,0xC9,0x63,0x8E,0x2F,0x5D,0x7B,0xF1,
+0x70,0x1D,0x88,0xD5,0x6C,0xFE,0x96,0x03,0x51,0x8C,0xF9,0x20,0xF3,0x70,0xF8,0xC1,
+0x3D,0xB1,0x38,0x66,0x6B,0x23,0x12,0x3B,0x95,0x38,0x90,0x77,0xFF,0x56,0x20,0xBA,
+0xF7,0x33,0x48,0x93,0x80,0xE9,0xF8,0x1E,0x2D,0x45,0x8E,0x04,0xA1,0xF4,0xA9,0x3A,
+0xCA,0x10,0xDA,0xE1,0x02,0x99,0x0D,0xD4,0x18,0x42,0x5E,0x68,0x1D,0xBD,0x7E,0x7A,
+0xF2,0x17,0x07,0x65,0xD5,0xD0,0x4D,0x68,0xED,0xD5,0xA9,0xEE,0x7E,0x8D,0xD4,0x88,
+0xDF,0xEF,0xD3,0xA6,0xE7,0x61,0x19,0x57,0x5C,0x36,0xCD,0x72,0x1A,0xD1,0x4B,0xAA,
+0x37,0xB3,0x05,0x69,0xF4,0x7F,0x30,0x5F,0xE1,0x79,0x58,0xE1,0x46,0x50,0xD3,0x0C,
+0x81,0x66,0x71,0x26,0x4D,0x51,0xEB,0x34,0x37,0xD3,0xDD,0xF5,0x6F,0xBC,0xE0,0x9D,
+0x71,0xF2,0xFF,0x71,0x19,0x35,0x9B,0x54,0x97,0x32,0x9F,0x4A,0x50,0x0D,0xD2,0xC9,
+0xA5,0x62,0xCC,0x68,0x7F,0xE0,0xBF,0x0B,0xAC,0x93,0xB1,0x14,0x53,0x59,0x2C,0x4B,
+0x5A,0xD0,0x30,0xC6,0xA5,0xFB,0xCB,0x0D,0x4A,0x0C,0x6F,0x8C,0x5D,0x5C,0xE5,0x16,
+0xB4,0x56,0xFD,0x7D,0x3D,0x7A,0x6D,0x51,0xD9,0xC4,0xBC,0xDF,0x18,0xF2,0x5A,0x8C,
+0xE9,0x21,0x0B,0x7F,0xB9,0x8A,0xD9,0xB5,0xA0,0x3F,0x40,0x1B,0x4A,0x76,0x0B,0x77,
+0x69,0x3A,0xA7,0xE9,0x0E,0x96,0xFC,0x78,0xCE,0xE8,0xDB,0x7C,0xD6,0xBA,0x13,0x2B,
+0x91,0xBD,0x37,0x97,0xDA,0xBF,0x76,0xD8,0x78,0x33,0x3B,0x3D,0x5E,0x08,0x1B,0x94,
+0x41,0xE6,0x3C,0xDC,0x0F,0xCB,0x39,0x6E,0xC8,0xC6,0x9A,0xFC,0x9B,0x0A,0xBF,0x98,
+0xA3,0xB8,0xD7,0x1C,0x0A,0x2B,0xB2,0x5C,0xDE,0xFC,0x38,0x02,0xA8,0x9D,0x55,0xB7,
+0xAB,0xAB,0xC9,0x35,0x45,0xE3,0x54,0xBC,0x14,0xEE,0xAF,0x67,0xFB,0x6E,0xEB,0xE8,
+0x60,0xC6,0xCE,0x64,0x9C,0x98,0xEA,0xA6,0x6F,0x1F,0x5C,0x9E,0xCF,0x95,0x34,0x17,
+0x64,0x0D,0xF6,0x36,0xCC,0x41,0xD4,0xE2,0x76,0x95,0xC5,0x0F,0x74,0xB0,0xD6,0x87,
+0xCD,0x25,0xB6,0x31,0x93,0xF7,0xD1,0x16,0xE8,0xE7,0x22,0x0E,0xC5,0xA8,0x36,0x18,
+0x52,0xC3,0x2E,0xEF,0x60,0xF1,0x67,0xAF,0x3E,0x4D,0xA7,0x1A,0x31,0x1E,0x69,0x1D,
+0xB1,0x72,0xB2,0x8B,0x6E,0xC3,0x99,0x09,0x1C,0x66,0x10,0xD5,0x01,0xDD,0x7D,0xB0,
+0x72,0x0C,0xAB,0xF3,0xF6,0x42,0x3F,0x55,0x1A,0x48,0x51,0x55,0x85,0x49,0xAD,0x74,
+0x22,0x4C,0x0C,0x2E,0x23,0x36,0x70,0xE3,0xA4,0x1B,0x0E,0xA6,0x96,0x5B,0x88,0x47,
+0xB9,0x61,0xAC,0xA2,0xE3,0xDC,0x57,0x73,0x9A,0x88,0xAB,0x18,0x0F,0xD8,0xB4,0xED,
+0xA0,0x46,0x83,0x9E,0xA7,0xC6,0xC4,0x07,0x77,0x83,0x00,0x52,0xBB,0x8F,0x70,0x84,
+0x30,0x86,0x69,0xB9,0x50,0x7D,0x3C,0x9A,0x08,0x56,0xBD,0x16,0x87,0x6A,0xBC,0x52,
+0x6A,0xC4,0xF3,0x6B,0x96,0x17,0x5A,0x24,0x49,0x10,0xA5,0xEC,0x82,0x25,0x98,0xA4,
+0x84,0x42,0x3E,0xD0,0xFF,0xAD,0x45,0xCB,0xFA,0xF9,0xCE,0x4D,0x13,0xB8,0xB7,0x27,
+0x20,0x5D,0x2F,0x08,0x63,0x91,0xAD,0xB3,0xFC,0xD7,0x8F,0xCD,0x92,0x63,0x43,0x15,
+0x99,0xAE,0x29,0xBE,0x39,0xC7,0x23,0x75,0x5F,0x2A,0x07,0x12,0xDE,0xA4,0x00,0x02,
+0x65,0xE2,0x81,0x92,0x3B,0xFA,0x2C,0x7F,0xCD,0xF4,0x11,0x1C,0x47,0x27,0x3C,0xA8,
+0xEF,0xFB,0x10,0x0B,0x87,0x34,0x7C,0x26,0x11,0xDC,0x24,0x87,0xC0,0xE7,0x12,0xEE,
+0x39,0x7A,0x00,0x34,0x5B,0xAF,0x49,0x0E,0x2A,0x7D,0x0A,0xD9,0xE4,0x5A,0x16,0xA0,
+0x9C,0x8A,0x66,0x48,0x91,0xCA,0xDE,0x1C,0x03,0xC2,0xC8,0xC4,0xF1,0x53,0xE9,0xE7,
+0x19,0xB5,0x85,0x28,0xA1,0x46,0x85,0x29,0xEC,0xC3,0x6C,0xB3,0xAA,0xBE,0x44,0x91,
+0x06,0x48,0xB1,0x60,0x94,0x2A,0x55,0x2E,0x75,0x89,0x0F,0x6F,0x86,0x1D,0x53,0xF6,
+0xE1,0x32,0x15,0x56,0x9E,0xA5,0xE5,0xAC,0x1F,0x7A,0xDA,0xB5,0x4F,0x39,0x2F,0x81,
+0x2C,0x85,0x09,0x73,0x67,0x2C,0xE3,0x97,0x06,0xF0,0x43,0x24,0xF6,0x3F,0xDC,0x37,
+0xA2,0x57,0xA0,0xB8,0x24,0xEB,0xF4,0xDB,0xA8,0xB7,0xFF,0xA9,0x8E,0x03,0x40,0xDF,
+0xCC,0xCA,0xC1,0x95,0x8E,0xDB,0x06,0xB8,0x8F,0xAE,0xC3,0x86,0x25,0x60,0x79,0xFE,
+0x11,0xA6,0x9B,0x01,0x29,0xB9,0xC0,0x61,0xC7,0x76,0xA1,0x93,0xC8,0xF9,0x01,0xC7,
+0xB2,0x8C,0xE6,0x09,0x35,0xC8,0xD2,0xD9,0x09,0x40,0x78,0x4B,0x63,0x9A,0x38,0xE6,
+0x23,0xA3,0x7B,0x8A,0x04,0x19,0x4C,0xFA,0xAF,0x8F,0x7B,0x74,0x12,0xCF,0x58,0x83,
+0x8B,0x64,0x4C,0x29,0x90,0x97,0x1B,0x0A,0xBB,0xBF,0xD6,0xB7,0x9F,0x32,0x74,0xCA,
+0x27,0x68,0x43,0xD8,0xFE,0xF0,0x80,0xDD,0x22,0xF5,0xB5,0x6B,0xE6,0x79,0x07,0x86,
+0xE1,0x2B,0xAA,0x38,0xD6,0xE3,0xB5,0xCD,0x81,0x09,0x01,0x8A,0x66,0xD4,0xBB,0xC0,
+0x5F,0xD8,0xF5,0x6B,0xC4,0xD0,0xA6,0xE8,0x26,0x49,0x51,0x57,0xB3,0x9B,0xCF,0x76,
+0x32,0xDF,0xA4,0xA0,0x02,0x20,0x98,0x35,0x0E,0x03,0x83,0x3A,0xE2,0x60,0x4B,0x24,
+0xDF,0x95,0x0F,0xAB,0x55,0x49,0x2C,0xF1,0x21,0x24,0x9A,0x06,0xA6,0xF3,0x51,0x50,
+0x0C,0x61,0x01,0x33,0xA8,0x00,0xA1,0xDD,0x7E,0x81,0x49,0xCF,0xD3,0xFE,0x9A,0x07,
+0x4D,0x9B,0x19,0x75,0xE7,0xF6,0xA4,0xF9,0xE4,0xC3,0x13,0x1D,0x15,0x98,0xF0,0xB9,
+0xB9,0x40,0x2B,0xF4,0xEE,0xB1,0xB1,0x06,0xA2,0x18,0x03,0xAC,0x26,0x09,0x1C,0x90,
+0xBF,0xC0,0x6A,0xDA,0x35,0x83,0x30,0xF2,0xB3,0x07,0xA7,0x74,0xBA,0xE1,0x20,0xE8,
+0x9B,0x8F,0x9C,0xDF,0x10,0x13,0x8B,0x10,0x5A,0xFD,0x80,0xB8,0x4F,0x16,0xA6,0x7F,
+0x8D,0x71,0x3E,0xE5,0x87,0x3C,0xB8,0xFA,0xB1,0xA3,0x62,0x78,0x4A,0x9D,0x46,0x4D,
+0x2A,0x13,0xF8,0x3C,0x18,0xB3,0xEC,0x71,0x43,0x83,0x43,0xC0,0xD9,0x4E,0x15,0x85,
+0x51,0xEA,0x0B,0xCD,0xE3,0x4C,0xD8,0xAE,0x44,0xEE,0x88,0x91,0x00,0xF0,0x6E,0x9F,
+0xAD,0x83,0x86,0xC4,0x25,0xBC,0xE6,0x73,0x3B,0x60,0xEE,0x95,0xD6,0x75,0x7A,0x35,
+0x33,0x82,0x61,0xB6,0x3D,0x23,0x57,0x93,0x7B,0x48,0x47,0x92,0x89,0x70,0xCC,0xC1,
+0x59,0x58,0xB4,0x45,0x50,0x14,0x22,0x38,0x3F,0x37,0x92,0x2F,0x2B,0x3D,0x4E,0x2A,
+0x7B,0x97,0x03,0x6E,0x93,0xB9,0x12,0x2C,0xA3,0x86,0x71,0x4B,0x25,0xC3,0x7C,0x8C,
+0xED,0x24,0x5B,0x94,0x8E,0x7B,0xAD,0x05,0x2D,0x12,0x81,0x1C,0x61,0x50,0x66,0xF8,
+0x43,0xA9,0xE7,0xD3,0xB2,0x93,0xD5,0x99,0x84,0xC0,0x0F,0xD7,0x22,0x47,0xA1,0xB4,
+0x82,0x1E,0x05,0x55,0x74,0x63,0xEB,0x44,0x16,0xE3,0x32,0xA5,0x6C,0x64,0x34,0x42,
+0xCA,0x0B,0x67,0x8D,0xED,0x5A,0x06,0x3C,0x4C,0x8F,0xEF,0x31,0xCB,0xA2,0x56,0x9B,
+0xEA,0xF9,0xDF,0xAC,0x42,0x27,0x31,0x1D,0xF6,0xE6,0x00,0x2E,0x41,0xE8,0x94,0xD9,
+0x4C,0xC6,0xDC,0x63,0x17,0x42,0x40,0x7D,0x6B,0xC9,0x91,0xAD,0x70,0x76,0x45,0xFA,
+0x67,0xE6,0x11,0xD6,0xF4,0x22,0xC5,0x42,0xCE,0x2D,0x04,0x7C,0xBB,0x24,0x7D,0xFE,
+0xFE,0x3A,0x72,0x9C,0xBF,0x6E,0xBC,0x31,0xC1,0x21,0xA8,0x8D,0xD5,0xBF,0x1A,0x29,
+0x88,0x91,0xB5,0xD7,0xAA,0x0C,0x64,0x79,0x0C,0xA7,0x46,0x36,0x7E,0x88,0x77,0x5C,
+0x1A,0x9F,0xA3,0x09,0x29,0xA6,0xFD,0x45,0xA4,0xEB,0xBA,0x1A,0x7C,0x87,0x4A,0x56,
+0x6F,0x54,0xAE,0x5E,0xD7,0x04,0xC7,0x53,0x8D,0x3F,0x1A,0x90,0x1E,0xED,0x22,0x2D,
+0x54,0x0A,0x80,0xFF,0x6A,0x4A,0xE3,0x57,0x9D,0xBE,0xCC,0xAF,0xC2,0xD8,0xB9,0x05,
+0xA9,0x3E,0xC8,0xE0,0x33,0x35,0x89,0x01,0x08,0xF0,0x3A,0x8C,0xE4,0x21,0xCB,0x0A,
+0x46,0x49,0x6C,0xE1,0xDE,0x43,0xD2,0xAC,0xEB,0xCF,0xBF,0xEC,0xD4,0x7A,0x47,0x3F,
+0x5A,0x38,0x7E,0x59,0xB4,0x25,0x6C,0x6A,0x98,0x77,0xC2,0xF2,0xDB,0x41,0x28,0x8F,
+0x30,0xE2,0xAB,0xAA,0x90,0x52,0xA5,0x16,0x3C,0x0D,0x25,0xC4,0xD1,0xF1,0xA7,0x0D,
+0x9D,0x0F,0xDD,0xF1,0x4D,0xD6,0x9D,0x11,0x60,0x92,0x41,0xE6,0xB5,0xDA,0x4F,0x58,
+0xC6,0x04,0x96,0x21,0x9E,0x44,0x7B,0x84,0xFE,0x87,0x67,0x8E,0x17,0x97,0xCD,0xB3,
+0x8E,0x11,0xF4,0xF9,0x9C,0x48,0xBE,0x20,0x2C,0x8C,0xF3,0xFB,0x74,0x38,0xF8,0xDE,
+0x94,0xE0,0xA7,0x6F,0x39,0x99,0x2B,0xC4,0xF3,0x2F,0x0E,0x73,0xB6,0x10,0x2F,0x44,
+0x36,0x62,0xEA,0x84,0xC9,0x2D,0xCF,0x40,0x53,0x02,0x95,0xFF,0x04,0xBE,0xD3,0xBB,
+0x8A,0xAC,0xBA,0xDD,0x5F,0xE5,0x8E,0x34,0x5B,0x63,0xF2,0x5F,0x62,0x9A,0x06,0xE4,
+0x80,0x23,0x0A,0x5F,0xBE,0x89,0xCE,0xAF,0xE8,0xF5,0x08,0x07,0x39,0xD1,0x0D,0x34,
+0x6E,0x09,0x6B,0x48,0xC8,0xCA,0xBD,0xDE,0x48,0xD8,0x93,0x8B,0xB4,0x1F,0x12,0x4E,
+0xDA,0x75,0x84,0x99,0xB7,0xCE,0xDB,0x50,0x19,0xEF,0x9E,0x54,0x85,0x81,0xC3,0x6D,
+0x6D,0x69,0xA1,0x54,0x67,0xB7,0x8A,0xFF,0xA5,0x75,0xC8,0xFD,0xB0,0x51,0xAF,0x6A,
+0xB2,0x92,0x5E,0x60,0xD2,0x59,0xC9,0x9A,0x8B,0xCC,0xA3,0x26,0xC7,0x53,0x59,0x37,
+0xE7,0xAB,0xEB,0x16,0x1F,0xE2,0x27,0x1C,0x6F,0x9E,0xED,0x17,0xF3,0x46,0x68,0x26,
+0x5B,0x65,0xBB,0x4F,0xA0,0xA0,0xC6,0xBC,0xCA,0x7A,0x78,0xC6,0xFB,0xF9,0xDA,0xAE,
+0xC8,0x36,0x68,0x87,0xD5,0x08,0x02,0xF7,0xB6,0xCE,0xA9,0x29,0x98,0x56,0xEF,0xC3,
+0xD7,0x27,0xB0,0x23,0xD9,0x12,0x19,0xC1,0xBC,0x0B,0x0B,0x85,0x1B,0x66,0xC2,0x1F,
+0xB8,0x1D,0xEE,0xE2,0xF5,0xC5,0xB7,0xDC,0x2E,0x28,0x36,0xF7,0x0A,0x40,0xE1,0x1D,
+0xD2,0xC7,0x3B,0x11,0x80,0x6D,0x73,0x97,0x72,0xB7,0x52,0xD5,0x5C,0x3F,0xB8,0x77,
+0x72,0x78,0x79,0xF0,0x31,0x39,0x4C,0xA5,0xFC,0x23,0xA2,0x82,0x08,0x4F,0xDC,0x17,
+0x0F,0x01,0xCB,0x2F,0xD1,0xB2,0x7E,0xA0,0xBD,0x95,0x79,0x62,0xE0,0x6F,0x76,0x2E,
+0xE9,0x99,0x15,0xB0,0xD4,0xEF,0x70,0x69,0x41,0x27,0x86,0xCC,0x3A,0x1B,0x6D,0x28,
+0xE5,0x96,0xE4,0x1C,0xFB,0xD3,0x69,0x4E,0x86,0x64,0xCA,0xDB,0xFC,0x7D,0x07,0x96,
+0x9C,0x52,0x18,0xE7,0x7F,0x28,0x3B,0x1F,0x70,0x13,0x97,0xD9,0x78,0xC9,0xF7,0x72,
+0x3D,0xB0,0x9F,0x10,0x85,0x30,0x7D,0x5E,0xBA,0xF8,0xB2,0x33,0x9F,0xD2,0x32,0xFB,
+0x8B,0xF1,0x7F,0xCB,0x37,0x8F,0xF5,0x56,0x2A,0x7F,0x4A,0x4D,0x4B,0x58,0x1B,0x5B,
+0x14,0xAD,0x5D,0xAF,0xFD,0x65,0xD0,0xBD,0x05,0x58,0x53,0x71,0x29,0x32,0x73,0x20,
+0xAB,0x03,0xC7,0xEA,0xD0,0x55,0x0C,0x3E,0xE9,0x6B,0x7A,0xE0,0xA1,0x77,0x8C,0x68,
+0x68,0x89,0x2A,0x66,0x79,0x9E,0x82,0xEC,0xC5,0x76,0xD4,0x37,0xC5,0x5C,0x64,0x3D,
+0xD0,0xFA,0x34,0x1B,0xDB,0x1E,0xDC,0x65,0xB5,0xF4,0x1E,0xC2,0x2E,0xB6,0xAE,0x18,
+0xA8,0x63,0x0D,0xF6,0x00,0x2C,0x5D,0x91,0x8A,0x52,0xD1,0xC1,0x90,0xE9,0x5D,0x4B,
+0x5D,0xE5,0xFA,0x61,0x30,0xDE,0x3E,0x3B,0x57,0x55,0xE9,0x45,0x47,0xA9,0x14,0xF7,
+0xA4,0x6C,0xFC,0x5A,0xDD,0xA8,0x65,0x96,0x88,0xF6,0x14,0xCD,0xB1,0x94,0xF2,0x7C,
+0x19,0xFF,0x69,0x15,0x5C,0x0E,0x39,0x0E,0x5E,0xAA,0xFC,0x02,0xA2,0xBD,0xEC,0x74,
+0xB8,0x08,0xE7,0x72,0xDD,0x14,0x18,0x62,0xD8,0xD4,0x47,0xE0,0x16,0xA2,0x92,0xCD,
+0x04,0xA1,0xB1,0xE8,0x0D,0x13,0x2D,0x0E,0xFD,0xC8,0xF0,0x2D,0xC6,0xF3,0xEB,0x62,
+0x2A,0x7A,0xDA,0x51,0x0F,0x4E,0x5A,0xF8,0x02,0x33,0x2F,0x19,0x73,0xB0,0x05,0x07,
+0xCE,0x4B,0x94,0x03,0x1A,0x5F,0x6E,0xC9,0xB7,0x0A,0x7A,0x6F,0xBE,0x5E,0xBE,0x81,
+0x6B,0x9A,0x01,0xE7,0xA5,0xD7,0x66,0x7B,0xE7,0xC4,0xC6,0x36,0x01,0xBF,0xFC,0x21,
+0x17,0x75,0xD0,0x53,0x0A,0xBA,0x05,0x4E,0x34,0x97,0x55,0xFE,0x74,0x7B,0x54,0x6A,
+0x1D,0xD9,0x72,0x96,0x3A,0x66,0x86,0x63,0xEC,0x86,0x4A,0x5A,0x78,0x60,0x4E,0x5C,
+0x8F,0xAB,0x4F,0xB5,0x1C,0x64,0x97,0x40,0xB2,0xBC,0x25,0x9B,0x54,0xCE,0x99,0x41,
+0xC1,0xBA,0x38,0x0F,0x86,0x21,0x28,0xEE,0x81,0xAE,0x00,0x88,0xEC,0xE4,0x8A,0x8C,
+0x5F,0xD2,0x1E,0x1A,0xCB,0xCA,0x8A,0x6C,0xCA,0xA5,0x5B,0x58,0x3F,0x02,0x18,0x19,
+0x8D,0xA7,0x8A,0x11,0x64,0xA7,0xE9,0x59,0xA8,0xB0,0x13,0x80,0x3D,0xC7,0x14,0xBD,
+0x52,0x2F,0x77,0xB2,0x4C,0x3D,0x2B,0x8E,0xFB,0x41,0x09,0x16,0x98,0x52,0xC5,0x59,
+0xF2,0xA3,0xEC,0x9F,0xE2,0xC2,0x99,0x72,0xB6,0xC3,0xAB,0xFD,0x68,0xB6,0x71,0xDD,
+0xFA,0x03,0x8B,0xFE,0xC6,0x9D,0xFF,0xA7,0xE6,0x0D,0x17,0xA4,0xFE,0xF7,0xB9,0xA9,
+0x49,0x5B,0x71,0x68,0x8D,0x4D,0xA4,0xAC,0x56,0x82,0x1D,0x26,0x1F,0xB7,0xD5,0x32,
+0xE9,0xD7,0xEA,0x45,0x43,0x37,0x29,0xB3,0x37,0xA8,0xF3,0x31,0x69,0xC4,0x96,0x43,
+0xA4,0x2D,0x2A,0xC5,0x6E,0x59,0xB4,0xD2,0x01,0x0C,0x89,0xD6,0x5C,0xA9,0x39,0x20,
+0x48,0xBC,0x03,0xF6,0x2B,0x11,0x3C,0x2D,0x9B,0xA2,0x36,0x93,0x71,0x75,0x09,0xA3,
+0x64,0x6B,0xAD,0xEB,0x00,0x44,0x58,0xC5,0x76,0x28,0xF5,0x1F,0xD8,0xFB,0xC2,0x71,
+0x14,0x9E,0x67,0x69,0xEA,0x61,0xB3,0x0F,0x68,0x5B,0x4D,0x62,0x7A,0xA5,0x42,0xF8,
+0x2B,0x9D,0xA8,0xCF,0xB5,0x32,0x0D,0xFC,0x51,0xC2,0x35,0x8F,0xA1,0x24,0x70,0x0C,
+0xF6,0x19,0x90,0xC8,0xF5,0x8E,0xDA,0xB5,0xA6,0x44,0xC0,0x18,0x91,0x47,0x82,0xA6,
+0x29,0x91,0x6D,0x6B,0xC8,0x05,0x2C,0x53,0xA0,0xCD,0x39,0x23,0x7C,0x1C,0xF4,0x0B,
+0xFF,0x5E,0x85,0x37,0xE1,0x0D,0x3F,0x4D,0x35,0x5E,0x84,0x6C,0xFD,0x40,0x52,0x93,
+0xD3,0x89,0x2B,0x2A,0x63,0x0E,0xC1,0x19,0x67,0x66,0x4F,0x68,0x21,0x0A,0x31,0x0A,
+0x5D,0xDE,0xDB,0xBE,0x13,0x6E,0x95,0x7D,0x25,0xD9,0xEF,0x89,0x90,0x35,0x65,0x38,
+0x1C,0x3E,0x00,0x08,0x33,0x57,0x7D,0xD7,0x97,0xA0,0x92,0x56,0x70,0x07,0xEE,0x3D,
+0xE0,0x90,0xFF,0xBA,0x47,0x51,0xA7,0xCC,0x49,0x38,0x74,0xC9,0x75,0x09,0xB3,0xF4,
+0x27,0x87,0xB3,0xF9,0x21,0xEF,0x61,0xA6,0xB8,0x37,0x78,0x65,0x5A,0x10,0x8F,0xD3,
+0xD1,0x85,0xEE,0x8E,0x95,0x0B,0xE5,0x56,0x44,0xF3,0x01,0x9E,0xDE,0x42,0x74,0x82,
+0x1B,0x6F,0xCB,0x65,0x8E,0x82,0x02,0x93,0xC3,0x11,0xA0,0x69,0x24,0x04,0x6C,0xC3,
+0x8B,0x11,0x33,0xE2,0x04,0x22,0xD6,0xBA,0x23,0x50,0x16,0xB2,0x96,0x8C,0xD3,0xCB,
+0xFB,0xE4,0xF9,0x60,0x4A,0x06,0xD2,0x07,0xC0,0x2E,0x06,0xA6,0xB1,0xF2,0x4F,0x8D,
+0x10,0x24,0x1B,0x3E,0xC1,0x34,0xD7,0xE7,0x62,0xD0,0x10,0x9C,0x26,0xC1,0x60,0x67,
+0xE2,0x9C,0x3A,0x1E,0x12,0xFC,0x44,0xB4,0xA4,0xB2,0xB7,0x45,0xB9,0x95,0xEF,0xEC,
+0xE5,0xCD,0xF1,0x73,0xAC,0xE6,0x9D,0xCF,0x57,0x4B,0xCC,0xB4,0x42,0xA1,0x10,0x33,
+0x9A,0xC9,0x97,0xFD,0x29,0x4C,0x4B,0xDB,0xDA,0x22,0x30,0xBD,0x84,0x9F,0xE0,0xEE,
+0xDA,0xCE,0x3E,0xD5,0x2C,0xB8,0x14,0x6D,0x3D,0x23,0xAE,0xCF,0x9C,0x2E,0x7F,0x0E,
+0x9E,0x73,0xEB,0xAA,0x61,0x53,0xB6,0xEF,0xE8,0xF9,0xC4,0x3C,0xF1,0x5B,0x48,0xA5,
+0x02,0x17,0x08,0x1B,0x9F,0xF5,0xB8,0xDD,0x5F,0x36,0xE6,0x17,0x32,0x6B,0xE5,0xB1,
+0x20,0xD6,0x78,0x94,0x88,0xB9,0xFB,0x1A,0xF6,0x8A,0x7C,0x41,0x77,0xCC,0xBF,0x50,
+0x87,0x0B,0x28,0xD4,0xC7,0x0F,0x2E,0x6E,0xA9,0x79,0xC2,0x12,0x65,0xDF,0x8C,0x75,
+0xAF,0x66,0xFA,0x9E,0x3C,0x5D,0x7F,0xEA,0xF8,0x7E,0xAF,0xD9,0xA3,0xE1,0x7C,0xA8,
+0x80,0x5A,0xE3,0xB9,0xAF,0x29,0x3B,0xF0,0x53,0x34,0x42,0xD2,0xF4,0x55,0x15,0x6C,
+0xDF,0x93,0x30,0x1C,0xA2,0x7E,0x4E,0x3B,0x5D,0xC0,0x91,0x4A,0x09,0xD8,0x5C,0x40,
+0x45,0x41,0x6A,0x5E,0xC4,0xC0,0x88,0x51,0x45,0x3A,0xD0,0x0C,0x46,0xDD,0xAA,0x64,
+0x03,0xF0,0x7A,0x85,0x55,0xE9,0xBB,0xBD,0x77,0xE1,0x24,0x8D,0x4F,0xC8,0xED,0x9B,
+0x12,0x28,0xDE,0x9A,0xBD,0x91,0x27,0x81,0x36,0x61,0x22,0xA3,0x94,0x49,0xDF,0x6F,
+0xAD,0x6A,0x3F,0x3A,0xD4,0x25,0xE3,0xD6,0xE9,0x30,0x15,0xAE,0x0B,0x1D,0x50,0xE4,
+0x05,0x46,0xC3,0x76,0xDB,0x2F,0xE1,0xEB,0xFF,0x3E,0x87,0x70,0x88,0x84,0xFA,0xD8,
+0x2C,0xCC,0x63,0xA2,0xB1,0x54,0x83,0x83,0xF2,0xF5,0xF2,0x27,0x76,0xBE,0x58,0xCE,
+0x3C,0xF3,0xB5,0x23,0x84,0x7C,0x5F,0x18,0xDC,0xAB,0xC9,0x86,0xCB,0x9A,0x16,0xCA,
+0xA9,0xD0,0x43,0x6D,0x7D,0x73,0x79,0x6A,0x94,0x9F,0x34,0x99,0x92,0xF0,0x69,0x9C,
+0x4A,0xB0,0xC6,0x52,0x26,0x46,0x49,0xE6,0x30,0xE8,0xDB,0x98,0x7F,0xAB,0x1F,0x31,
+0x39,0xAE,0xBB,0xEA,0x1D,0xF6,0x46,0x89,0x22,0x99,0xC7,0x20,0x15,0x15,0x79,0xF7,
+0x9D,0x98,0x5C,0x90,0xAD,0x74,0x4C,0x06,0xF7,0x43,0xAD,0xD3,0x31,0xDC,0x0E,0x8B,
+0x8C,0x40,0xF8,0x8F,0x0C,0x81,0xFC,0xC7,0x07,0x85,0x70,0xED,0x2F,0xD4,0x27,0x98,
+0x25,0x8B,0x76,0x5D,0x1B,0xCD,0xBF,0x00,0xBB,0x08,0xDE,0xAA,0x13,0xAC,0xCF,0x04,
+0xB7,0xF9,0x4B,0x7E,0x38,0x3B,0xF1,0x95,0x59,0xBF,0x1F,0x2C,0xD5,0x92,0x3F,0xD9,
+0xED,0x6D,0x96,0x12,0xFE,0xE2,0x56,0xF7,0x3B,0xAA,0x57,0xF4,0x4C,0x7F,0x06,0xA1,
+0x57,0x72,0x79,0x7B,0xB4,0xA0,0xDC,0x35,0x83,0x58,0x77,0xD5,0xE3,0x48,0x7B,0x80,
+0xCA,0xF1,0xE8,0x54,0x2A,0x83,0xED,0xE4,0x80,0x67,0xD1,0x1A,0xB6,0x39,0x1E,0xE0,
+0x6F,0x20,0x7D,0xB0,0x78,0x87,0x26,0xDC,0x4D,0x47,0xFA,0xAF,0x55,0xBC,0x7E,0xDF,
+0x60,0xD1,0xD1,0xBC,0xE3,0x50,0x48,0xBB,0x2E,0x9B,0x63,0xE5,0x1E,0xC5,0x32,0xAC,
+0x3E,0x39,0x57,0x60,0xA2,0xAA,0x49,0xBC,0xC5,0x5E,0x51,0x8D,0x18,0xEB,0xD6,0x4D,
+0x19,0x16,0x6B,0x79,0x31,0xDE,0x53,0xF8,0x28,0xF5,0x5A,0xC7,0x71,0x2F,0x62,0x1A,
+0x53,0x3E,0x06,0xAB,0xCA,0x8C,0xD7,0xA9,0x45,0xA4,0x91,0xC0,0x81,0xF2,0x5C,0xDC,
+0x13,0x99,0xDB,0xFB,0x85,0x3A,0xA3,0x7C,0xFB,0xFB,0xC2,0x33,0xB2,0xD7,0x4F,0xCE,
+0x1D,0xAB,0x25,0x5D,0xB0,0x12,0x38,0xA0,0xA5,0x3B,0x20,0xD8,0xD2,0xE8,0xCA,0x2D,
+0x02,0xBA,0xFD,0xF9,0x58,0x6A,0x04,0x3C,0xA3,0x7A,0x0E,0x58,0xE0,0x1C,0x4B,0xF6,
+0xD9,0xFC,0x4C,0xE9,0xC9,0x43,0xE8,0x0F,0x57,0x48,0x8F,0x83,0xA7,0xE3,0x5E,0xFF,
+0x9B,0x66,0x9E,0xB3,0xAF,0xFD,0x82,0xC9,0x16,0x50,0xC9,0x79,0x51,0xC7,0x5B,0xB0,
+0xF4,0x5C,0xC0,0x72,0xA1,0x65,0x76,0x1A,0x4B,0x5A,0x37,0xF2,0x1D,0xB4,0x22,0xFB,
+0x99,0x5B,0x91,0xB9,0x1F,0x7F,0x0D,0xC3,0x30,0xA9,0xC6,0x0B,0xE2,0x6B,0x16,0x00,
+0xB9,0xA9,0x29,0x98,0xCC,0xB7,0x5E,0x50,0x97,0x6F,0x1F,0x69,0x6D,0xE0,0x42,0x9F,
+0xE7,0x42,0xE9,0x7A,0x47,0x85,0xBE,0x55,0x81,0xCD,0x25,0x97,0x42,0x0A,0x71,0x08,
+0x9C,0xBB,0x1A,0x8B,0x92,0x76,0x64,0x3F,0x61,0x52,0x94,0x8F,0xE8,0x36,0xE8,0x8B,
+0x2D,0x27,0x7E,0x68,0x6C,0xD0,0x56,0x31,0x43,0xE5,0xBF,0x40,0x45,0x22,0xD8,0x48,
+0x52,0x63,0xC3,0xBD,0x21,0x3B,0xD4,0x93,0x29,0x30,0x4C,0x9A,0x72,0x89,0xAD,0x25,
+0x7A,0x23,0xC4,0x14,0x24,0xCF,0x62,0xCC,0xB7,0xD7,0x3E,0x9B,0xED,0x69,0x1C,0x3D,
+0x95,0x54,0x60,0x15,0xF3,0x61,0x4E,0xD1,0xD0,0x36,0x77,0x13,0x0B,0x26,0xFC,0xF5,
+0xF9,0x0E,0xF4,0xC8,0x35,0xB8,0x2C,0x76,0x98,0x54,0xAF,0x06,0x32,0x5E,0x11,0x6C,
+0xDA,0x9C,0x86,0xF5,0x16,0x4E,0xB9,0x38,0x59,0xB6,0x29,0xB1,0xC2,0x83,0x2F,0xAA,
+0x08,0x35,0x4D,0x7B,0x01,0x02,0x7E,0x7B,0xF7,0x0A,0x6E,0x3C,0x2A,0x1F,0x57,0x96,
+0x3B,0xD9,0xDC,0x52,0xEE,0xD3,0x02,0xCF,0xE4,0x23,0x66,0x22,0x3F,0x2B,0x46,0xA7,
+0x37,0xD6,0x2D,0xFE,0x75,0x04,0x65,0xA1,0x7D,0x40,0x2C,0xFE,0x73,0x58,0x3F,0xEC,
+0xD3,0x73,0xFC,0x6B,0x27,0x00,0x5D,0x6A,0x56,0x8D,0x99,0xDE,0x13,0x67,0xBA,0x0F,
+0xFC,0xEE,0x7F,0xFA,0xB9,0x23,0x8C,0x5B,0xF0,0x8E,0x56,0xE1,0x76,0x07,0xCB,0x5A,
+0xA4,0x85,0xFE,0x36,0x89,0xFF,0xA1,0xD8,0x4E,0xD1,0x05,0x12,0x1B,0x4D,0x19,0x72,
+0x25,0x95,0xC1,0xE0,0xBC,0xD7,0x3A,0x04,0x75,0xFF,0xA4,0x4C,0x55,0x49,0x3D,0xCF,
+0xF1,0xBC,0x4B,0x40,0xD6,0xAC,0x52,0x66,0x00,0xF2,0xF3,0x87,0xF7,0x5F,0x07,0x31,
+0xBD,0x14,0x67,0xBC,0xD9,0xA6,0x6F,0x64,0x92,0xE4,0x2D,0x89,0x5D,0x63,0x9E,0xB2,
+0x17,0x24,0x95,0xDF,0xA0,0xF7,0xBF,0xCB,0x2A,0xFA,0x50,0xFA,0x03,0x0C,0x5F,0x88,
+0x6D,0x80,0xA3,0x38,0x10,0x75,0x30,0xC1,0x40,0x2F,0xA3,0x20,0x74,0x70,0x96,0xAC,
+0xD5,0xF3,0xBD,0x45,0x2B,0xC5,0x5F,0xCE,0x5C,0x3D,0x1B,0x51,0x12,0xB6,0x28,0xC6,
+0xEA,0x10,0xDD,0xC0,0x70,0xF0,0xD3,0xFE,0xB3,0x99,0x1A,0x26,0x64,0x1B,0x73,0x2B,
+0x35,0xEB,0x22,0xF4,0x41,0xBE,0x37,0xAC,0x8E,0xF6,0x95,0xF8,0xC8,0xDE,0xD1,0x21,
+0x96,0x34,0xAA,0x09,0x69,0x24,0xE0,0x6E,0x94,0xA5,0x03,0x09,0x19,0x3A,0x44,0x84,
+0x9D,0xE6,0xDF,0x9D,0xC6,0x49,0xD5,0x0D,0xDC,0xC7,0xDB,0x1C,0x15,0x9E,0x81,0x86,
+0x88,0x78,0xB7,0xBB,0x8B,0xA2,0x57,0xAF,0x87,0x8C,0x0B,0x17,0x87,0x0B,0x67,0x55,
+0xC2,0x50,0xDA,0x69,0x4E,0xB4,0x0A,0xAE,0x74,0x3A,0xB2,0x11,0x9B,0xC4,0x47,0xD0,
+0xEF,0xF0,0x56,0xF2,0x80,0xCE,0x15,0x23,0x9A,0x5B,0xA5,0x3B,0xD8,0xB5,0x34,0xA6,
+0x79,0x43,0x0E,0x08,0xCB,0x1E,0x1E,0x78,0x90,0xEB,0x27,0xB4,0xB4,0x2E,0x74,0x47,
+0x18,0x4B,0xAE,0x6F,0xEF,0x41,0xCB,0x1E,0x2C,0xBB,0x7E,0x7A,0x7C,0x5A,0x35,0xD1,
+0x84,0x77,0x46,0x17,0x17,0xDC,0x70,0xE9,0xFD,0xBA,0xEC,0xB3,0xB3,0x06,0xDD,0x07,
+0xD6,0x93,0x77,0x59,0x02,0xCD,0x41,0xDD,0xA8,0x0F,0x9A,0x8A,0x08,0x80,0x33,0xCA,
+0x6F,0xBD,0xAC,0x32,0x00,0x90,0xB7,0xAA,0x77,0xF0,0xAE,0x71,0xE6,0xE5,0x70,0x7F,
+0xF5,0x01,0x05,0x64,0xD0,0x97,0xDB,0x9F,0xC0,0xD5,0x63,0x6D,0x9F,0x4A,0x21,0xAF,
+0x32,0x36,0xA6,0xCC,0x11,0xE7,0xF9,0x10,0xA2,0xBF,0x18,0x05,0x94,0xC6,0x4D,0xED,
+0x11,0xA4,0xD4,0xF1,0x37,0xE5,0xDA,0x01,0xCD,0xE1,0xD9,0x3F,0x43,0xDB,0xE3,0xC1,
+0xD4,0xAE,0x78,0x53,0x07,0x39,0xF7,0x82,0xD2,0x39,0x7D,0x2E,0x59,0xED,0xF8,0xCD,
+0x60,0xD2,0x97,0x82,0xA8,0x54,0xC2,0xE1,0x41,0xEA,0xB5,0x7D,0xF1,0xA6,0x3C,0xB8,
+0x3D,0x59,0x9D,0x7C,0x4A,0xD2,0x75,0x20,0xF3,0x44,0x4A,0x81,0xBE,0x73,0x8A,0xCC,
+0x8F,0xA5,0x33,0x83,0x3E,0xD4,0x6E,0xFA,0x15,0x9A,0xD5,0x19,0xE3,0xBA,0x84,0xC9,
+0x39,0xE4,0xD3,0x58,0x1E,0xED,0xC4,0x12,0x68,0x28,0x0A,0x60,0x68,0xBF,0xB6,0x29,
+0xAD,0x6A,0x84,0xA8,0x6E,0x8D,0xA0,0x46,0xC8,0x6A,0xEB,0xDF,0x3C,0x8D,0x89,0x98,
+0x65,0x32,0x1C,0xB0,0x09,0xA1,0x03,0x51,0x91,0x2E,0x31,0xE9,0xDE,0x4C,0x0F,0x2F,
+0xE2,0xA2,0x62,0x48,0x83,0x01,0x2A,0x85,0x27,0xCE,0xEA,0xA8,0x61,0x44,0x87,0x9D,
+0x09,0x68,0x88,0x6D,0x98,0x88,0xEF,0x62,0x86,0x49,0x1D,0x4A,0x79,0x05,0xC1,0x67,
+0x7E,0x9E,0x8A,0x30,0x2C,0x6C,0x1F,0xE6,0xFF,0xB5,0xE6,0x8E,0x82,0x54,0x93,0xE3,
+0xEE,0xAD,0x93,0xE4,0xE7,0xE2,0xB6,0x34,0xCA,0x65,0xE1,0xE2,0x4F,0x7F,0x26,0xC3,
+0x6C,0xDD,0x66,0x2E,0x0D,0xC7,0x7C,0xDF,0x72,0x7B,0x9C,0x91,0xCF,0xF6,0x78,0x61,
+0x71,0xF1,0xB1,0x80,0x26,0x92,0x94,0xBB,0xB1,0x96,0x10,0x1B,0x04,0x24,0xF6,0xC8,
+0x42,0x1D,0x20,0xA9,0x63,0xDA,0x6B,0x33,0x0E,0x0C,0x55,0xB5,0x34,0xA7,0x2A,0xE5,
+0xB0,0x46,0x53,0x06,0xEC,0x8E,0xF4,0xB8,0x03,0x38,0xEF,0xE7,0x5F,0x14,0xC3,0x44,
+0xEC,0x90,0x9C,0xEE,0xC5,0x86,0xEA,0xAB,0xBE,0xAD,0xA0,0x74,0xF9,0x8C,0x9F,0xC5,
+0x4F,0x4F,0x14,0x13,0xF8,0x0D,0x0C,0x5D,0x47,0xAB,0x9B,0xFD,0x8F,0x21,0xC4,0x28,
+0x48,0x92,0x90,0x2B,0xB8,0xB1,0x45,0x8A,0xB2,0x5C,0x0C,0x7B,0x7D,0x8B,0xA7,0x18,
+0xAB,0x34,0x0A,0xFD,0xE0,0xD8,0xFE,0x40,0xCE,0xE4,0xBE,0x81,0xB2,0x8B,0xDC,0xC6,
+0x3F,0xBA,0x5D,0x0D,0x90,0xB8,0x9A,0x14,0x6E,0xA6,0x5F,0x3E,0xE6,0xB9,0xE3,0x77,
+0x89,0xFB,0xBD,0xD6,0xB0,0x81,0x30,0xFC,0x13,0x14,0x80,0x47,0x6D,0xBC,0xD1,0x97,
+0x3B,0x07,0x13,0x29,0xC4,0x87,0x2B,0x26,0xF5,0xCA,0x1F,0xDF,0x30,0x75,0xDF,0x92,
+0x78,0xC0,0x04,0x65,0xA2,0x39,0x41,0xE0,0xF9,0x3B,0xB3,0xD0,0x0C,0x52,0xC6,0xBD,
+0x0F,0x36,0x06,0x38,0x16,0xDD,0xB1,0x64,0x80,0xC7,0x48,0x14,0xF7,0x03,0x94,0x39,
+0xE4,0xFC,0xEC,0x1D,0x0D,0x54,0x74,0x83,0x21,0x40,0xBF,0xF6,0xEF,0x42,0xD2,0xC3,
+0x63,0x6C,0x92,0xE5,0x87,0xF4,0x5D,0x57,0x97,0xA0,0x64,0xB7,0x50,0x4A,0x5A,0x71,
+0x44,0x43,0xAE,0xFC,0xED,0x8F,0x35,0x35,0x08,0x82,0x00,0xEB,0xBA,0xA1,0x7F,0xBB,
+0x77,0xAF,0x3F,0xD5,0xA8,0xC7,0xCA,0xBD,0xB7,0x18,0x45,0x45,0x8A,0x22,0xA3,0x96,
+0x6A,0x83,0xE8,0x7B,0x83,0x92,0x22,0xD9,0x74,0xF5,0xC9,0xCF,0x41,0xF0,0x2D,0x3F,
+0xE8,0xF3,0x1D,0xB1,0x69,0xB7,0xE8,0x32,0xCC,0xEB,0xB4,0xBC,0xC1,0x79,0x73,0x9D,
+0x4E,0xCC,0x1E,0x7E,0x36,0xE4,0x1B,0x8C,0xB4,0xD2,0x59,0x25,0xF3,0x8D,0xF2,0x46,
+0x49,0x11,0x9A,0x46,0x76,0x58,0x52,0x5B,0x41,0x25,0xCE,0xA3,0x01,0x27,0x91,0x76,
+0xEA,0xCE,0x12,0xBB,0x4B,0xD3,0xB4,0xAD,0xB8,0x23,0xF5,0x2A,0x77,0x8A,0xCA,0x9B,
+0xB6,0x18,0xDD,0x53,0x62,0xDB,0xAA,0xBE,0x05,0xB6,0xBA,0xB9,0xD1,0x12,0x96,0x1A,
+0x8E,0x26,0x39,0xEE,0x05,0xF7,0x09,0xA9,0x81,0x02,0x5E,0x49,0x09,0x0D,0x32,0x0B,
+0x9B,0xB8,0x51,0xC8,0x48,0x1C,0x8B,0x0B,0xDA,0x49,0x8E,0x42,0x9B,0x98,0xD4,0xD8,
+0x90,0x6A,0x24,0x5C,0xE7,0x71,0xBE,0x68,0x92,0x2B,0x56,0x57,0x97,0x3C,0x11,0xDA,
+0x33,0xB5,0xAC,0xA1,0xCF,0xEB,0x69,0xAA,0x88,0x78,0xC0,0xA6,0x46,0xD8,0x84,0x7F,
+0x1E,0x15,0x20,0x3A,0x61,0x14,0x95,0x18,0x2A,0x35,0x2B,0x24,0xF2,0x5C,0x60,0x8F,
+0x7F,0x1D,0x80,0x5D,0x45,0x4B,0x40,0x7E,0x96,0x65,0x72,0xEA,0x3A,0x28,0x21,0x19,
+0xE9,0xAE,0xD8,0xA7,0x0E,0x9B,0x4B,0x25,0x9C,0xD5,0xF0,0x65,0x56,0xB3,0x61,0xF8,
+0xC4,0x0E,0x54,0x3C,0xC0,0xE1,0x54,0xA8,0x72,0xB4,0xE7,0x4F,0x15,0xC2,0x12,0x8E,
+0xF3,0x5F,0x8B,0x31,0x5E,0xC2,0x85,0x99,0xC6,0x5B,0x36,0x33,0x11,0x4C,0x74,0xF1,
+0x69,0xE3,0x22,0x67,0x8E,0xC5,0xE9,0xAC,0x71,0x7E,0xFB,0x2F,0x68,0xE3,0x25,0x21,
+0xD0,0xCD,0xF9,0x0C,0x8C,0x98,0x1F,0xDB,0xAE,0x81,0xCF,0xD4,0x86,0x86,0x66,0x94,
+0x82,0x29,0xC8,0x42,0x99,0x89,0x2E,0xEF,0xFB,0x34,0xB9,0xED,0x3D,0x00,0x88,0x59,
+0x66,0x8C,0x19,0xD7,0x26,0x01,0x9C,0xE7,0x47,0x64,0xE0,0x23,0x7F,0xA0,0x69,0xE6,
+0xD2,0xF0,0xF6,0x06,0x89,0x6C,0xA9,0x84,0xD4,0xB7,0x28,0x70,0xD7,0xEB,0xAD,0x93,
+0x17,0xFA,0x5A,0xA4,0xB9,0xB0,0x84,0x07,0xCB,0x6F,0x8C,0x61,0xCD,0xDD,0xB6,0x9F,
+0x34,0x68,0x28,0x99,0x9F,0xB2,0xA7,0x16,0xA4,0x31,0x4D,0x5B,0x1A,0xC0,0x18,0xB3,
+0x0E,0x6B,0xC3,0x2E,0x8F,0x57,0x20,0x7D,0xF1,0x84,0x3B,0x62,0xA4,0x19,0x02,0xC8,
+0xDC,0xC2,0x08,0xA0,0x98,0x1B,0xE7,0x3E,0x5F,0x38,0x7C,0xEF,0x4C,0x85,0x7A,0xF4,
+0xFF,0x50,0x7A,0x9D,0xBB,0xED,0x72,0x70,0x9E,0xDA,0xFA,0x58,0xBC,0x58,0x44,0x32,
+0x93,0x0A,0xEE,0x40,0x7D,0x34,0x10,0xD7,0xD6,0xB8,0x22,0x4D,0x85,0x20,0xA9,0xAB,
+0xFA,0xB0,0xF1,0xAF,0x37,0x76,0xD2,0x5D,0xF6,0x00,0x03,0xBF,0xF8,0x01,0x9E,0x04,
+0xD5,0x2D,0x72,0x3E,0xA9,0x55,0x03,0x6C,0x50,0x03,0xCC,0x80,0x9D,0x61,0xEF,0x51,
+0x31,0x88,0xA3,0xAB,0xFB,0x51,0x3B,0xA7,0x7B,0xCE,0x79,0xA0,0xFD,0x5E,0x6A,0xB2,
+0x3D,0x87,0x52,0x07,0x60,0x86,0x5C,0xC9,0xE2,0xAD,0x33,0x7C,0xB1,0x2D,0x13,0xF9,
+0xBB,0x4A,0xE9,0xE9,0x57,0xF3,0x31,0x62,0x94,0x6A,0x78,0xD7,0xD3,0x65,0xCB,0xEC,
+0xF7,0xE2,0xC5,0x15,0x58,0xF9,0x0C,0x60,0x06,0x7C,0xA6,0xD9,0x79,0x59,0x52,0x6F,
+0x23,0xCB,0x4F,0xB5,0x32,0x82,0x64,0x02,0x73,0x71,0xF1,0x12,0xDB,0x4F,0x68,0x91,
+0xA2,0xDB,0x70,0x63,0x07,0xAA,0xFF,0xDE,0x48,0x5F,0x50,0x4C,0x95,0x4B,0x4C,0x2C,
+0xEC,0x4E,0x53,0x95,0xFE,0xA5,0x8D,0xF8,0xB5,0x17,0x4F,0x78,0xEA,0x1D,0x26,0x75,
+0xD3,0xAD,0x33,0x10,0xA5,0x90,0x01,0xC8,0x5A,0xB3,0x4E,0x0F,0x9C,0xB0,0x7D,0x98,
+0x6B,0xDE,0x2D,0x6D,0x9E,0x20,0x6E,0xC7,0x46,0xA1,0xF6,0x7E,0xFA,0x76,0xC3,0xF2,
+0x11,0x7A,0x1B,0x8A,0x2E,0xA2,0xE1,0xCD,0x2C,0x74,0x05,0xA4,0x8D,0x0A,0x0A,0xD6,
+0x15,0xC7,0x55,0xAE,0x0B,0x6F,0xFD,0x7A,0xFD,0x75,0x97,0x6D,0x3C,0xD1,0x1A,0x90,
+0x55,0x60,0x88,0xFE,0x44,0xD9,0x89,0xAF,0x43,0x2A,0xC4,0x9E,0x0F,0xF4,0x09,0x82,
+0x1F,0x48,0xE5,0x2C,0xBF,0x8B,0x0D,0xFE,0x2E,0x7B,0x0F,0x99,0xFF,0x29,0x37,0x44,
+0x38,0x67,0xD9,0x35,0x2C,0xFF,0x17,0xBA,0xC3,0xD0,0x04,0xD3,0x96,0xED,0x83,0x13,
+0x9D,0x38,0x10,0xE6,0x21,0xA8,0xDC,0xCF,0x10,0xDE,0x9C,0x27,0xDF,0xC1,0x0E,0xEE,
+0xDF,0xA2,0xC2,0xBC,0x47,0x16,0xB6,0x09,0x51,0xC6,0xDA,0xDD,0x29,0xE5,0x0B,0xA1,
+0x04,0xE4,0x73,0xAC,0xD6,0x3F,0x5A,0x3A,0xA5,0xF4,0x5B,0x06,0x6E,0x1A,0x1E,0xA8,
+0x1B,0xF5,0xAB,0x08,0x3E,0x47,0x66,0xA6,0xA3,0xB5,0x75,0x86,0x5C,0xEE,0x9F,0x73,
+0xE1,0x1C,0x67,0x2F,0xC9,0xD0,0xE0,0x53,0x87,0x43,0x70,0xC9,0xCC,0x0C,0x24,0x56,
+0xBF,0xF7,0xA7,0xCD,0x42,0xE2,0x00,0x56,0x91,0xE1,0x4A,0x37,0xE3,0xE6,0x17,0xC1,
+0x9F,0x05,0x1F,0xEC,0x91,0x2A,0x53,0xC5,0x36,0x27,0x93,0x55,0x6C,0x6D,0x43,0x5E,
+0xF2,0x02,0x4E,0x27,0x2F,0x30,0x28,0x1C,0x4D,0xD4,0x62,0xAC,0x93,0xB2,0x77,0xA5,
+0x7C,0x7D,0x4A,0x41,0xAA,0x9A,0x3C,0xCA,0xB1,0x59,0x6B,0xC5,0x63,0x6F,0x49,0x63,
+0x54,0x3D,0x4D,0xE8,0xAF,0x6E,0x8A,0x95,0x2F,0xBE,0x19,0xC4,0xFC,0x8F,0xF8,0x7B,
+0x2B,0x79,0xF0,0x3D,0xE2,0x85,0x08,0x37,0x45,0x6B,0xEA,0x1E,0xCB,0x24,0x8D,0x16,
+0x9A,0xE5,0x94,0xDE,0x1C,0x23,0x3A,0x39,0x67,0xDC,0xC1,0xD1,0x66,0x30,0xBD,0xD5,
+0x4C,0x84,0x1A,0x5C,0x20,0x02,0xEB,0x8D,0x75,0xB0,0x7C,0x6C,0x4D,0xF8,0x35,0x40,
+0x1C,0xC4,0xBD,0x81,0x54,0x4D,0x3E,0x3B,0x26,0x43,0x23,0xD2,0x5F,0xEB,0x06,0x65,
+0xCE,0x8E,0x95,0xEC,0xD0,0xB6,0x6F,0x69,0xED,0x44,0x72,0xBF,0x99,0xD5,0xF6,0xB8,
+0xD7,0xA9,0xBA,0xD0,0xCA,0x25,0x2B,0x1D,0xE6,0x0E,0xD9,0x52,0xCE,0x61,0x9F,0x7C,
+0x04,0x0C,0xE5,0x19,0x01,0x28,0x5E,0x4A,0x7E,0xFA,0xD7,0x81,0x33,0xEC,0xD6,0x50,
+0x5E,0x4E,0x7F,0xCB,0x6B,0x4E,0x98,0xF4,0x38,0x00,0xCF,0xC0,0x7C,0xE9,0x20,0x74,
+0x4E,0x95,0x39,0x7A,0x87,0xDF,0xAB,0xDD,0xB9,0xDB,0xFD,0x34,0x75,0xFC,0x67,0x8B,
+0xEA,0x8A,0x28,0xA2,0xBB,0x37,0x37,0xA5,0x97,0x5B,0xBC,0x32,0xAE,0x7D,0x55,0x7F,
+0xCD,0x70,0xC1,0x6E,0x3D,0xC0,0xC2,0x32,0x92,0x14,0x4A,0x16,0x8B,0xC6,0xC5,0x9D,
+0x2F,0x2E,0x2A,0xAE,0xDD,0x4B,0xC7,0x00,0xA8,0xEA,0xE8,0x00,0x1C,0xF5,0xEA,0x77,
+0x0E,0x0E,0xD8,0x16,0x8E,0x98,0x54,0xC8,0x71,0x88,0x2E,0xA7,0x83,0xA1,0x65,0xFC,
+0xC5,0x63,0xDF,0x47,0xF5,0x26,0x8D,0xD2,0x80,0x71,0xDD,0xDC,0x78,0x95,0x9A,0x23,
+0xA3,0xED,0xA0,0x43,0xE1,0xA3,0x5B,0x78,0x89,0x18,0x50,0x20,0xBE,0xAB,0x6A,0xFE,
+0x0A,0xC5,0xE0,0x44,0x57,0xA6,0x04,0x8C,0xFB,0x19,0xB7,0xBE,0xA6,0x1A,0xF5,0x1E,
+0xDF,0xBA,0xA4,0xF9,0xD5,0xEB,0xA6,0x67,0x08,0xC3,0x62,0xD4,0xCB,0x6F,0xC2,0xB5,
+0x3C,0x0B,0x38,0x9D,0xE7,0x15,0xA8,0xC1,0x23,0x0C,0xD5,0xF6,0x08,0x5F,0x6F,0xA1,
+0xCC,0x9F,0xB6,0xCA,0xFD,0x86,0xEC,0xB5,0xD9,0xBF,0x8D,0x60,0x15,0xE0,0xAD,0x88,
+0x42,0x4D,0x1F,0x01,0x3A,0x91,0xAF,0xF9,0x9E,0x32,0x31,0xCE,0x29,0x98,0x45,0x14,
+0x7F,0x6E,0x8D,0x73,0xAF,0xB2,0xE1,0x0F,0x18,0x85,0xD3,0x0F,0xEF,0xA6,0xB5,0xC9,
+0xA2,0x02,0xD7,0xE7,0xCD,0x74,0x46,0xD6,0xC0,0x90,0xB1,0x47,0x76,0x4B,0x8C,0xB1,
+0x4D,0x6B,0x6D,0xF8,0x0F,0x3E,0xCC,0x94,0xE1,0x62,0x09,0x67,0xD9,0x7C,0xF1,0x90,
+0xDC,0x44,0xF0,0x7B,0xDE,0xA0,0xFD,0xB7,0x2E,0x5D,0x0A,0xC1,0x8C,0x0D,0x94,0xF0,
+0x49,0xA0,0x55,0xAA,0xE6,0xF2,0x36,0xB3,0x9B,0x7D,0xC7,0xEA,0x6F,0x88,0xF4,0xCF,
+0xE5,0xAC,0x5A,0x5B,0x81,0x69,0x58,0x64,0xD1,0xA1,0xA4,0x73,0x24,0xF1,0xB8,0xBC,
+0x0B,0x2A,0x97,0xE0,0xEC,0x5E,0xF3,0x11,0x9A,0x0A,0x63,0x05,0x31,0x29,0xDA,0xF4,
+0xF7,0x66,0x3F,0xCC,0xD1,0x51,0xF1,0x1B,0x44,0x04,0x75,0x97,0xB2,0xB0,0x70,0xC8,
+0x57,0xB2,0x16,0x46,0xB9,0x3B,0x93,0x60,0x13,0xCF,0x78,0xE2,0x4C,0x8A,0xD2,0xDE,
+0x81,0x33,0x06,0x79,0x22,0x0E,0x4F,0x48,0xB2,0x91,0x56,0xD9,0xF1,0xAE,0x9C,0xDA,
+0x77,0x7D,0x93,0x5A,0x50,0xF7,0x69,0x47,0xAD,0xA5,0x1E,0x24,0xA8,0xC4,0xE3,0x8C,
+0xF2,0x42,0x70,0x3A,0xDC,0xAC,0x59,0x72,0xAC,0xD2,0xBA,0xCB,0x45,0x9F,0x95,0x21,
+0x8F,0xFA,0x03,0x24,0xB3,0x97,0x56,0xC2,0x14,0xA3,0xA8,0xD7,0x2F,0x21,0xF3,0xE7,
+0x68,0x80,0xA7,0x12,0x3C,0x27,0x5C,0x40,0xE7,0x79,0x7D,0xBD,0x0B,0xE8,0x84,0x9B,
+0x0C,0x1F,0xFB,0x30,0xD4,0x0C,0x38,0x15,0xBC,0x94,0x0B,0x10,0xD6,0xD0,0x00,0x9C,
+0x2A,0x0A,0x65,0x58,0x56,0x41,0x9A,0xFE,0x6C,0x9F,0x40,0x4B,0x05,0x36,0x92,0x09,
+0xBE,0x01,0xB7,0x2D,0x63,0xEE,0xF9,0x93,0xB4,0x8A,0x22,0x03,0x07,0xF3,0x9E,0xAD,
+0x43,0xA2,0x68,0xA5,0xB4,0xC6,0x3B,0x09,0x22,0x7B,0x71,0x19,0xA2,0x66,0x4F,0x49,
+0xD8,0x8F,0xC8,0x29,0x48,0x68,0x89,0xF6,0xC9,0xF9,0x3C,0xBB,0x52,0x82,0xFB,0xCD,
+0xBF,0xEE,0xC0,0x89,0x9D,0x4C,0xEF,0xA9,0x90,0x37,0x6C,0x07,0xC4,0xC3,0x33,0xB9,
+0x45,0x78,0x73,0xD1,0x96,0x07,0xB4,0x79,0x12,0xB8,0xDC,0x0D,0x25,0x83,0x5F,0x22,
+0xDE,0x55,0xD3,0x5D,0x89,0xC9,0x39,0x03,0x05,0x92,0xBD,0xE3,0x53,0xF0,0x1C,0x53,
+0xD3,0x62,0x82,0x82,0x58,0x57,0x08,0x20,0xD4,0xEE,0x52,0x57,0x2C,0x96,0x18,0xDD,
+0x85,0xF8,0x3E,0x2B,0x34,0x87,0x3D,0x27,0x19,0xF2,0x77,0xE0,0xFC,0xC7,0x61,0x72,
+0xEE,0x41,0x10,0xF0,0xC2,0x85,0x4A,0x7A,0x2D,0x09,0x88,0x3F,0x49,0x84,0x8F,0x17,
+0xA0,0x13,0xF4,0xC1,0xF3,0x90,0x7E,0x6B,0x5B,0x30,0x3D,0x6A,0x84,0x6A,0x34,0x91,
+0x35,0xF7,0x51,0x10,0x41,0x2F,0x76,0xE3,0x02,0xFE,0x6D,0xD6,0x3B,0x8B,0x76,0x31,
+0xE4,0x43,0x2D,0xFF,0x74,0x80,0x15,0x8E,0xCA,0xAD,0xBE,0x45,0x4E,0x4F,0xDE,0x7A,
+0x46,0x86,0x27,0x53,0x59,0xB0,0x96,0x52,0x6E,0xBC,0x66,0x5A,0x42,0x54,0xC4,0x4C,
+0x7B,0xA5,0xB5,0x21,0x7A,0x96,0x87,0x50,0xAF,0x86,0x38,0x35,0x6E,0xFA,0x13,0x51,
+0x1F,0x3A,0xE9,0x03,0x23,0xE9,0xD1,0x3A,0x5C,0x5C,0xED,0x5F,0x1B,0x3E,0xBB,0x1A,
+0xEF,0xAE,0x67,0x54,0x47,0x99,0x85,0x5A,0xBD,0xE3,0xAF,0xFF,0xAA,0x01,0xEF,0x28,
+0x34,0x18,0x26,0xB4,0xED,0xB9,0x6D,0x63,0x62,0x9A,0x1D,0x82,0x4A,0x33,0x64,0x2D,
+0xCB,0xAA,0xDA,0x1A,0xF6,0xCD,0xB7,0x65,0xFD,0x02,0xC3,0x64,0x4F,0x3D,0x39,0xE4,
+0x87,0xE9,0x1D,0x0D,0x9C,0xAB,0x71,0xDB,0x51,0x0D,0x32,0x68,0x60,0x24,0x05,0xC3,
+0xDA,0x9E,0xEB,0x0F,0x6C,0x1F,0xF5,0x3F,0xAA,0xC9,0xCE,0x11,0xE4,0x76,0xFE,0x92,
+0xFF,0x75,0x21,0xE5,0xA9,0x04,0x12,0xB6,0x5D,0x2B,0x49,0xB0,0x1E,0x30,0xE6,0xD3,
+0x07,0xF2,0xB1,0x9B,0x80,0x8E,0xC6,0x16,0x86,0x6A,0xA9,0x06,0xAC,0xB8,0x59,0xDB,
+0x1E,0xD5,0x9E,0xA7,0xE8,0xE4,0xA4,0x6D,0xE2,0x36,0x8B,0x99,0x66,0x9D,0xB3,0x30,
+0x37,0xE6,0x72,0x36,0x17,0xA1,0x2C,0x25,0xA7,0x98,0x11,0x26,0x4B,0x41,0x83,0xB3,
+0x99,0xFB,0x5E,0xE1,0xFF,0x8A,0x48,0x70,0x2B,0x12,0xFC,0xE5,0xE2,0xCF,0x48,0x61,
+0x53,0x79,0x2E,0x14,0x35,0x60,0xA3,0x55,0x56,0x61,0xE2,0x5D,0x40,0x91,0xC8,0xE8,
+0x9C,0xDF,0x11,0x17,0xC6,0x3F,0x1D,0x06,0xBB,0xF8,0xDB,0x25,0x9B,0x10,0xFA,0x1C,
+0xA4,0xD8,0xCC,0x93,0x8F,0x7F,0xCA,0xBA,0x2C,0x7E,0x2C,0xD0,0xAB,0x73,0x08,0xB6,
+0x59,0x7B,0x13,0x1B,0x69,0x42,0x3C,0x31,0x17,0xF7,0x2A,0x29,0x46,0x28,0x7E,0x1B,
+0xB1,0x27,0xC5,0xD4,0x77,0x6B,0x2F,0x39,0x58,0x64,0xBF,0x94,0xC7,0x74,0xD8,0x83,
+0x24,0x0B,0xF5,0x60,0x22,0x29,0xB7,0x64,0x52,0x58,0x8D,0x50,0x73,0x9F,0xAD,0xE5,
+0x70,0x34,0xC7,0xD1,0x82,0x96,0x56,0x26,0x22,0x0C,0xE9,0x30,0xE7,0xC8,0x23,0x15,
+0xF2,0x37,0x39,0x85,0xB9,0xC8,0xF7,0x08,0x06,0x6A,0x3C,0x6F,0x77,0xD1,0x10,0xC1,
+0xAF,0x39,0xF0,0x80,0x5F,0x50,0x68,0xD6,0x72,0xB0,0x27,0x69,0xC5,0x7F,0xEC,0x3E,
+0x35,0x7C,0x4F,0x2E,0xCC,0x03,0xA0,0x05,0xD4,0x28,0xA6,0x35,0x43,0xC4,0x21,0xD0,
+0xCE,0x2E,0x1E,0xAA,0xB5,0xC7,0x5B,0xF9,0x60,0xAC,0x56,0xD1,0x34,0xC6,0xD7,0x8D,
+0x92,0xB2,0x06,0x66,0xDB,0xA0,0x8C,0x62,0x45,0x1B,0x4A,0x1C,0x2F,0x50,0x7B,0x0D,
+0x2D,0x3A,0x0E,0xD4,0x6D,0xE1,0x57,0x82,0xCF,0xCF,0x63,0xBC,0xA8,0x2E,0xEB,0xF5,
+0x48,0x4B,0x6E,0x81,0xFB,0x52,0xAD,0xDA,0x6A,0xF1,0xDD,0x2F,0x3B,0xFD,0xB8,0x3D,
+0x78,0x97,0xED,0xAC,0x44,0xFC,0xE8,0x40,0x2F,0x79,0x22,0x67,0x08,0x6C,0x54,0x14,
+0x03,0x9B,0x35,0x8A,0x80,0xAB,0x5C,0x29,0xAB,0x7E,0xFF,0x5F,0xA4,0xDF,0xE4,0x59,
+0x83,0xC5,0xBC,0x28,0x38,0xD8,0x21,0x37,0x41,0x95,0x35,0x7A,0x26,0x2A,0x94,0x93,
+0xC3,0x79,0x6B,0x61,0x0D,0xB4,0x26,0xE7,0xB4,0x17,0x45,0xB0,0x05,0x58,0x06,0xAE,
+0x31,0x1A,0xC1,0x51,0xF8,0x32,0xB1,0x10,0xF4,0xC0,0x0C,0x0C,0x02,0xDC,0xDB,0x96,
+0x13,0x7E,0x5E,0x0D,0x49,0xAE,0x52,0x74,0xA0,0xF2,0xBD,0x33,0xFA,0x1F,0x0F,0xBB,
+0xB5,0x22,0xC6,0x8C,0xF4,0x3D,0x1D,0xE1,0x89,0xE1,0xA3,0x3B,0xA6,0xD0,0xD9,0x53,
+0x59,0x3C,0xD4,0xCF,0x96,0x55,0x66,0x8B,0x8A,0x47,0x9C,0xF4,0xD7,0x93,0xAF,0x20,
+0xCB,0xDA,0x41,0x1C,0xCD,0x5E,0xB6,0xC0,0xC7,0xE5,0x1E,0x1F,0xC2,0xFB,0x31,0x06,
+0x84,0x6C,0x94,0x68,0xC4,0xB1,0x28,0xBA,0x0D,0xE6,0x7E,0x03,0x7F,0x6E,0xA2,0x49,
+0x55,0xF9,0x70,0xCD,0xDE,0x40,0xBE,0xE9,0x25,0x24,0xA9,0x99,0xDC,0xE6,0x7D,0xB4,
+0xF8,0xC9,0x64,0x0E,0xDA,0xFD,0x9A,0xA7,0x87,0x32,0x57,0xA3,0x33,0x42,0x0A,0xB5,
+0x30,0x88,0x10,0x98,0x66,0x33,0xC3,0xF7,0xA3,0x54,0x82,0xFC,0x52,0xE2,0x02,0xD2,
+0xD7,0xFA,0x8E,0x99,0x3E,0x58,0x0F,0x76,0x02,0xE4,0x43,0x09,0x88,0x96,0x19,0xD4,
+0x94,0x89,0xFF,0xEF,0xD0,0x72,0x18,0x17,0xCC,0x69,0x5C,0x73,0xA5,0x1A,0xB9,0x4F,
+0xAA,0xCD,0xAF,0x36,0x3D,0x38,0x13,0xBC,0x4C,0xE0,0xFE,0x2D,0x25,0xE0,0xF4,0x8F,
+0xD3,0x9C,0x00,0xE6,0x8A,0x24,0xDE,0x99,0x9C,0xD5,0x92,0x2A,0xBF,0x49,0x48,0xD9,
+0xFF,0x60,0x4C,0x4E,0xB7,0xFA,0x51,0xF6,0x5B,0xA3,0x39,0x61,0xCE,0x0A,0x3E,0xAA,
+0x44,0x8E,0xCA,0x83,0xE2,0xC3,0x27,0x43,0x4E,0x97,0x08,0x70,0x9C,0x3B,0xDA,0xE4,
+0x15,0x45,0xA7,0x84,0x98,0x67,0xC0,0x75,0x4B,0xC8,0xBE,0x84,0x9E,0x34,0xE7,0xEE,
+0xBD,0x81,0xEC,0xF1,0x0B,0x34,0x08,0xA6,0xE4,0xAB,0x8B,0xE9,0x2A,0xDB,0x9B,0x3F,
+0xD8,0xF0,0x8C,0xA4,0xE8,0x4C,0xA5,0xF3,0x5D,0x5A,0xB0,0x5A,0x78,0xEA,0x7F,0x71,
+0x0F,0x5E,0x91,0x88,0x87,0x76,0x64,0xAD,0x7B,0x4B,0x93,0x58,0x5B,0x98,0xED,0x4C,
+0x8E,0x92,0xC9,0xE3,0x13,0xF8,0x94,0xFA,0x5A,0x72,0xF0,0xF3,0x90,0xCA,0xD5,0x48,
+0x66,0xEA,0x55,0xDF,0xBD,0x75,0xD3,0x46,0x4D,0x31,0x37,0xBF,0x42,0x01,0x7C,0xC6,
+0x47,0x41,0x6C,0xBC,0x9A,0x5A,0xCA,0x7A,0xBF,0x9B,0x07,0xDC,0xDF,0x2C,0x1D,0xA8,
+0x7E,0xAC,0x14,0x25,0xD2,0x4F,0x12,0x18,0x79,0x3C,0x65,0x05,0xB3,0xB8,0x47,0x75,
+0x5F,0x07,0x2D,0x46,0x1C,0x97,0x24,0xC1,0x6B,0x20,0x14,0xBD,0x99,0xB0,0x3A,0xD6,
+0x3A,0x76,0x4D,0x13,0xBA,0xA8,0xEB,0xC2,0xF5,0x11,0xC5,0x9E,0xB6,0x33,0xA7,0x47,
+0x73,0xFB,0x61,0xEE,0xAE,0x6B,0xDB,0x6F,0xA2,0x85,0x4B,0x6E,0x71,0x90,0x90,0xEF,
+0x3F,0x82,0x12,0xA5,0x37,0xB7,0x91,0x0C,0x39,0xEB,0x2C,0xB9,0x7D,0x61,0x9F,0x43,
+0xBB,0xBA,0x15,0x78,0x4A,0xCE,0x4E,0xBE,0x9A,0x2C,0x1B,0x11,0xBB,0x07,0xF5,0xFD,
+0x11,0x23,0x29,0xFB,0xD8,0xC0,0x90,0xA8,0x95,0x2E,0x26,0x1B,0xF7,0x2B,0x5D,0x01,
+0x57,0xA4,0x07,0x3B,0x04,0x5B,0xB8,0x9D,0xC5,0x92,0xE8,0x42,0xEE,0xB2,0xCC,0x8B,
+0x19,0x80,0x03,0x86,0x3F,0x05,0x19,0xB3,0xF0,0x4E,0x73,0x6A,0x6F,0x8D,0xDC,0x5D,
+0x5E,0x95,0xFC,0x8F,0x16,0x18,0xA6,0x71,0x67,0x84,0x16,0x78,0x9F,0xF1,0xBA,0xF8,
+0x28,0xCE,0x51,0x62,0xF9,0x6F,0xA7,0xD5,0x3C,0xB4,0x9A,0x4D,0xA0,0x91,0x59,0x7D,
+0x4F,0xE2,0x46,0xC1,0x60,0xB3,0xED,0xB6,0xEC,0x81,0xF6,0x4A,0x5D,0xD9,0x6D,0x62,
+0x38,0x2B,0x3A,0xE5,0x0A,0x69,0x1E,0x63,0x5C,0x8B,0x79,0xC8,0x27,0xEF,0xC9,0x85,
+0xCD,0xE1,0xB8,0x95,0x0F,0x89,0x2C,0xE8,0x86,0xE3,0x9E,0x31,0x19,0x4A,0x77,0x16,
+0xFE,0xF2,0x9D,0x87,0xB1,0x7A,0x7F,0xB7,0xC9,0x36,0xEA,0x87,0x59,0x97,0xD0,0x46,
+0x54,0x6B,0xA1,0x04,0x8F,0xC4,0xEC,0x12,0xEE,0xF6,0x00,0x17,0x74,0x1B,0x70,0xDD,
+0x3D,0xDF,0x65,0x53,0x62,0x8E,0xE7,0xB9,0x7D,0xB2,0x1A,0x63,0x53,0x27,0x5F,0xC4,
+0xEB,0xE3,0xA9,0xB6,0x1D,0xCA,0x32,0x04,0x85,0x45,0xA1,0xFE,0x93,0x00,0xB5,0x54,
+0x1D,0xE6,0x8D,0xF9,0x5C,0x30,0x74,0x1C,0xE3,0x83,0xCB,0x40,0xD1,0xD2,0x2F,0x0E,
+0x9E,0x77,0xA2,0x64,0xEF,0x91,0x9D,0x77,0xFC,0xEA,0x71,0xAF,0x57,0x69,0xE2,0xE0,
+0xAC,0xF6,0x56,0xBF,0xE9,0x11,0xB3,0x36,0x14,0x76,0x4D,0xD7,0x48,0xB1,0xF3,0x44,
+0x21,0xFF,0xAA,0xD6,0xDD,0x20,0xA2,0x23,0x80,0x1A,0x17,0x0A,0xF3,0x65,0xE0,0x25,
+0x0E,0xCC,0x40,0x41,0xCB,0xDE,0x98,0x81,0x0B,0x1F,0xF7,0x38,0xAD,0xA5,0x0B,0xC7,
+0x51,0x9F,0xFE,0xB2,0x01,0xBB,0x8A,0x16,0xED,0x50,0x3F,0xD8,0xBE,0x8C,0x15,0xCF,
+0xAE,0xAB,0x21,0x49,0x7A,0x42,0x7B,0xE5,0x53,0x89,0x44,0xC2,0xD3,0xDD,0x12,0x04,
+0x3E,0x10,0xC3,0x6C,0x63,0xD3,0xF1,0x7C,0x6D,0xD9,0x9D,0x86,0x18,0x8F,0x2A,0x00,
+0xA1,0xA1,0x23,0x74,0xFD,0xD2,0x83,0x9B,0x68,0x86,0x2B,0x72,0x30,0x88,0x6A,0xA9,
+0xA4,0x55,0x7C,0xC2,0x2B,0xC6,0x29,0x1E,0xDE,0x75,0x2D,0xCB,0xD6,0x56,0xF2,0x36,
+0x09,0x65,0x68,0x01,0x09,0x09,0x02,0xA9,0x20,0x7B,0x1F,0x6D,0x67,0x32,0x6E,0xD5,
+0xB6,0xCD,0x46,0x32,0xAF,0xD8,0x38,0xFB,0xFE,0x24,0xEA,0xD8,0xB1,0x43,0xA5,0x4B,
+0x42,0x16,0x74,0xB3,0xEE,0xF6,0xB8,0xFD,0x62,0xCC,0x92,0xE4,0x69,0x5C,0x01,0x5A,
+0xBD,0x1F,0x33,0xA6,0xDC,0x77,0x63,0x09,0x51,0x5D,0xBB,0x08,0xD8,0x87,0x11,0x1C,
+0x99,0x50,0xC5,0xA3,0xC4,0x31,0x99,0x48,0x97,0x3B,0x05,0x62,0x0A,0xC5,0x4B,0x86,
+0xB5,0xAD,0x8C,0x2E,0xCA,0xA9,0x6D,0x9B,0xE2,0x36,0x52,0xA9,0xC3,0x60,0x98,0xD9,
+0x71,0xFA,0xE5,0x9A,0x61,0xA2,0x27,0x76,0xA6,0xA5,0x26,0xB3,0xFF,0x47,0x81,0xF6,
+0xAC,0x3C,0x15,0xA4,0x30,0x69,0x20,0x1B,0xF7,0x5E,0x74,0x37,0x92,0x0D,0x53,0xDE,
+0x89,0x2E,0x26,0xB7,0x6F,0x3A,0xD3,0xA5,0x22,0x11,0xC2,0x43,0x4F,0x4D,0x03,0x79,
+0x68,0x6B,0x7C,0x10,0xC6,0x6C,0x6F,0x3F,0x61,0x06,0x8E,0x84,0x8E,0xC2,0x73,0x5B,
+0x7C,0xA8,0xD1,0x20,0x71,0x47,0xA0,0x1D,0x6F,0xF8,0x28,0xB6,0xEA,0x73,0x90,0xC7,
+0xD7,0xC5,0xE6,0x55,0xA4,0xB4,0x7A,0x77,0xCD,0xB5,0xC3,0x34,0x57,0x0C,0x45,0x83,
+0x37,0xDD,0x79,0xE4,0x43,0xC6,0x7B,0xE9,0x92,0xB0,0x37,0x82,0x50,0x24,0xEC,0xC3,
+0xEA,0x1B,0x89,0xDA,0xCE,0xCF,0x12,0x15,0x44,0x35,0x9D,0x96,0x54,0xAA,0x8A,0xBC,
+0x35,0xE0,0x76,0xEE,0x3D,0x3E,0xEB,0x6E,0x9D,0x8B,0x87,0xED,0x05,0xC7,0x41,0xBB,
+0xBE,0x7F,0xF9,0xBA,0xFB,0xE7,0x89,0xC9,0x0E,0x58,0x4F,0xBE,0xBD,0xE7,0x60,0x49,
+0x54,0xE8,0xD6,0x89,0x59,0xDD,0x77,0xDF,0x0B,0xD3,0x7D,0x5E,0x7D,0xB9,0x82,0xA2,
+0x75,0x47,0xAB,0xBE,0xB7,0x9E,0xC2,0xBA,0x91,0x7A,0x2B,0xE2,0x48,0x65,0xAA,0x39,
+0x06,0x0C,0xE7,0xC7,0xD4,0xD4,0x1E,0x23,0xFF,0xE1,0xFC,0x85,0xB9,0x69,0x06,0x36,
+0x39,0xEF,0x87,0x42,0x19,0x61,0x3E,0x08,0x34,0xB3,0xF8,0xBD,0x68,0x8D,0x93,0x93,
+0x59,0xBA,0xE2,0x33,0x1A,0xAE,0x01,0xAE,0x05,0x2D,0xDB,0x6C,0xEB,0xA2,0x02,0x0E,
+0x78,0x15,0x9F,0x04,0xA2,0x8F,0xF3,0x8E,0x8F,0x67,0x99,0xAE,0xF4,0xCB,0xED,0xB4,
+0x00,0x8C,0xA6,0xE9,0xC0,0x57,0xE6,0xC6,0x28,0xA1,0x40,0xCC,0x60,0xA7,0x30,0xEE,
+0xDD,0x4A,0x56,0xD7,0x22,0xD1,0x51,0x07,0x66,0x82,0xB6,0x59,0x12,0x84,0x0D,0x7C,
+0x41,0x76,0xBE,0xAF,0x9E,0x96,0xDC,0xA9,0x25,0x95,0xFA,0x9E,0xD9,0x56,0x83,0xD5,
+0x52,0x68,0x97,0xA7,0x6E,0xA8,0x1A,0x74,0x95,0x34,0x0F,0x5F,0x01,0x49,0x27,0xC4,
+0x2E,0x4C,0xE0,0x6E,0xBB,0x5B,0xC0,0x1E,0x9F,0x84,0x8D,0xD0,0x37,0x33,0xC0,0x60,
+0xE8,0x26,0x86,0xD0,0xA9,0xE3,0xB1,0x02,0x90,0xBF,0x3D,0xBF,0x29,0x8B,0xBD,0x13,
+0x45,0xCB,0xF0,0x8B,0x0D,0xE2,0xC6,0xED,0xA0,0xE4,0x08,0x33,0x49,0xB4,0x38,0xF0,
+0x13,0x92,0x8F,0xE1,0x45,0xFD,0xF2,0x10,0x86,0x1D,0x07,0x41,0x6A,0xFA,0xCE,0x65,
+0x17,0x2F,0xC1,0xC5,0x6B,0x5C,0xAC,0x2B,0x5A,0x28,0x2F,0xDA,0x55,0x7B,0x18,0x75,
+0x01,0xD1,0x63,0xFF,0x66,0x0B,0x67,0x5E,0x38,0x42,0x54,0xB2,0xDF,0xAF,0xB8,0x5C,
+0x3D,0x52,0xC9,0x66,0x70,0xD5,0x69,0xCC,0x3A,0x4D,0x5E,0x8F,0xF3,0xE3,0x44,0xF4,
+0x9A,0x30,0x0F,0xBF,0xAE,0x4A,0xF1,0x2A,0xF0,0xDA,0x4C,0xEA,0x4E,0x9C,0x91,0xB0,
+0xEB,0x46,0x4C,0xCC,0xCF,0x5D,0xDB,0xC4,0x7D,0x14,0x36,0xF5,0xC2,0xB1,0x0A,0x10,
+0x70,0xA7,0x20,0x8C,0x7F,0xDF,0x54,0xCE,0x26,0x5F,0xE6,0xFE,0x9A,0x27,0xF0,0xA3,
+0x04,0x31,0xE8,0xCD,0x2F,0x86,0x9A,0x72,0x40,0x7B,0xB9,0x2B,0x3A,0x46,0x97,0xAB,
+0x80,0xC1,0x5C,0x29,0x62,0x6D,0x18,0xD0,0xF2,0xD5,0x46,0xD7,0xB6,0x6B,0x0C,0x0B,
+0x64,0x64,0x8D,0xBC,0x31,0xFB,0xE9,0xCA,0x30,0xFD,0xDC,0x00,0x3E,0xC8,0xF1,0xD4,
+0xC0,0x66,0x81,0x79,0x53,0x23,0xFC,0x82,0x53,0x52,0xB1,0x35,0x4B,0xC3,0x65,0x06,
+0x55,0xB5,0x13,0x9F,0x18,0xF3,0xF7,0xD9,0xF1,0x1F,0x5A,0xB7,0x23,0xD6,0x43,0x98,
+0x98,0x0D,0x00,0xB5,0x2B,0xE0,0xE5,0xFC,0x4E,0x85,0x1F,0x19,0x32,0x6C,0x34,0xD6,
+0x85,0x21,0xD7,0x1B,0x75,0x21,0xDF,0x93,0x5F,0xA3,0x1D,0x3A,0x40,0x4F,0x09,0x44,
+0xB3,0x2D,0xCD,0x00,0xAD,0x85,0xCE,0x8C,0xDC,0x93,0xC1,0x17,0xEC,0x8A,0xAB,0x4E,
+0xF8,0x58,0x65,0xC4,0x7E,0x4D,0x9D,0x1F,0xBF,0x3C,0xAC,0x22,0x03,0x3E,0x7A,0x32,
+0x58,0xE7,0x27,0x25,0x2E,0x14,0x53,0xA3,0xB7,0x83,0x24,0x90,0xD2,0xDA,0xEF,0x97,
+0xDE,0x2A,0x9C,0xCB,0x9B,0x62,0x6A,0xF6,0x83,0x96,0x35,0xA1,0xE3,0x88,0xA1,0x73,
+0xBB,0x9F,0x72,0x88,0x64,0x56,0x91,0x29,0xF4,0x94,0x68,0x57,0x38,0x31,0xCA,0x5D,
+0x14,0x4F,0x0B,0xD9,0x41,0x9B,0x8D,0x9E,0xC1,0x44,0x6F,0x3B,0x91,0xAB,0x9C,0xE1,
+0x12,0xCF,0x4A,0xF7,0xBA,0xC9,0x09,0xCF,0x0F,0x9D,0x59,0xE3,0x88,0x3B,0x48,0xD2,
+0x1A,0x7D,0xF5,0x7F,0x5A,0x12,0x48,0x79,0xDB,0x17,0xF9,0xCA,0xF6,0xBC,0xB0,0x42,
+0x5B,0x87,0xED,0x39,0xDD,0xE5,0xAA,0xD8,0x3C,0x0C,0x70,0x0F,0x1C,0x57,0x95,0x88,
+0x0A,0x03,0x16,0x6B,0x21,0x1E,0x6E,0xA1,0xB8,0xB8,0x94,0xFF,0x1E,0x20,0xC8,0x7E,
+0x2D,0x2C,0x2A,0x72,0xD0,0xB2,0x61,0xAD,0x7E,0xDE,0x2A,0x95,0x09,0x63,0x84,0xB9,
+0xE4,0x29,0x77,0x7C,0x0E,0x2D,0xF9,0x4B,0xA4,0xAA,0x2C,0x8E,0xA7,0xD1,0x7B,0x45,
+0xE1,0xC9,0xFC,0x4E,0xBC,0xF2,0x80,0x36,0x4C,0x8A,0x15,0x24,0x47,0x67,0xA0,0x04,
+0xD3,0x78,0xA8,0x71,0xFE,0x13,0x3F,0x96,0x18,0xFA,0x75,0x40,0x10,0xF3,0x50,0x8A,
+0x4A,0xA4,0xCB,0x3B,0xAC,0x17,0x07,0x5D,0xE6,0x78,0x76,0x14,0xC7,0xEE,0xFE,0xA6,
+0xD2,0x25,0x6D,0x67,0x39,0x58,0x94,0xE0,0xF5,0x51,0x7E,0x0A,0x08,0xB2,0x16,0x70,
+0x7F,0xC8,0x1B,0x3C,0x3F,0x63,0x1D,0x19,0x03,0x6C,0xF5,0xEC,0x80,0x11,0xEB,0xAF,
+0xD5,0xF8,0xE9,0x5F,0xC8,0xF4,0x9B,0xEC,0xD4,0x2C,0x49,0xA5,0x04,0x16,0xD3,0x72,
+0x21,0x23,0xDB,0xDE,0xF1,0x19,0x02,0x94,0x6A,0x73,0x1A,0x56,0x07,0xB0,0x1C,0x4D,
+0xA8,0x81,0x5B,0x80,0xEF,0x64,0x71,0x2C,0x81,0x99,0x3F,0x9C,0xF2,0x32,0xD6,0x3D,
+0x7A,0x28,0x90,0x0E,0x02,0xE8,0xFB,0xEF,0xE5,0xB2,0x6A,0x74,0x25,0x2F,0x78,0x11,
+0xF9,0x05,0xA0,0xD2,0x98,0xAD,0x55,0x50,0x6D,0xF7,0x22,0x8B,0xB4,0x1C,0x51,0xFD,
+0x85,0x72,0x92,0xBF,0xAE,0x3C,0xEB,0x2F,0x6C,0xDF,0x4A,0x98,0xFE,0x11,0xE5,0xAF,
+0xCB,0x56,0x96,0x02,0x95,0x62,0x4A,0x01,0x59,0x03,0xD1,0xB0,0x7F,0x2E,0xF5,0x79,
+0x8D,0xD1,0xB8,0xC2,0x49,0xF9,0x62,0x34,0x09,0xBF,0x1F,0xE9,0x66,0xB7,0x64,0xF3,
+0x27,0x48,0x84,0x41,0xDB,0xF7,0xBC,0x22,0x06,0xBD,0x22,0xE3,0x2A,0x9B,0xCC,0x0F,
+0xA4,0xD9,0xAB,0xDC,0x9B,0x50,0xEC,0xFF,0xC0,0x1A,0x40,0x3A,0xB6,0x73,0xF0,0x77,
+0xD3,0x10,0xD7,0xF8,0xF1,0x8A,0x1F,0x2A,0x70,0x10,0xCF,0xB8,0xCC,0x45,0x54,0x90,
+0xB4,0x3C,0xC0,0x5B,0x68,0x56,0x55,0x49,0xA0,0x25,0xA3,0xBF,0x31,0x0D,0x60,0x8F,
+0xC2,0x67,0x6D,0xB6,0x87,0x21,0x54,0xED,0xFB,0x15,0x2F,0x8A,0x0E,0x6D,0x83,0x0A,
+0xE2,0x5E,0x85,0x1C,0x43,0x76,0xE0,0x84,0xE5,0xAD,0x5C,0xF7,0x22,0x24,0x7E,0x87,
+0xDB,0xB3,0xFD,0x85,0x0B,0x63,0x38,0xE6,0x23,0x0A,0x3E,0x2E,0x4E,0xB0,0x24,0x5A,
+0xFA,0x18,0xC4,0xE6,0x2C,0x4C,0x21,0xDA,0xD1,0xA0,0x0E,0x4D,0xD3,0x9D,0x45,0x34,
+0x12,0x60,0x58,0xDA,0x82,0xC1,0x66,0x66,0xC6,0xE3,0xC9,0x01,0x01,0x56,0xEC,0xBA,
+0xA3,0x70,0x83,0x9C,0xA6,0x8E,0x63,0x90,0xA5,0x7A,0x15,0x4B,0xEC,0xFD,0xA6,0xB1,
+0xEF,0x09,0xF0,0xD7,0x3F,0x52,0x29,0xF3,0x3E,0x14,0x72,0x9C,0xE0,0x0C,0xA9,0x1D,
+0xA6,0x84,0xDC,0x2A,0x2B,0x91,0x19,0x5E,0x69,0x80,0xFC,0x6C,0x27,0xAF,0x9E,0xB5,
+0xC3,0xF5,0xBC,0x7F,0x8D,0xAE,0xD6,0x5D,0xF7,0xB1,0x2D,0x4F,0x08,0x2C,0x03,0x24,
+0x32,0x59,0xB0,0x70,0xEB,0x7B,0x89,0x79,0xCF,0x18,0x7D,0x30,0x42,0x41,0x2B,0xF6,
+0xCD,0x6D,0x6F,0x8B,0x90,0x82,0x78,0x8A,0x71,0xC1,0x06,0x2A,0x2F,0x10,0x2C,0x3D,
+0x92,0x3E,0xD1,0x78,0x5A,0xE7,0x6A,0x1D,0x97,0x8E,0xCE,0xCA,0x3C,0x39,0x32,0x35,
+0xBD,0x0D,0x3B,0xEF,0x4C,0x19,0x50,0xBF,0x1C,0x8B,0x2E,0xF8,0x62,0xF9,0xD9,0xD7,
+0x95,0x97,0xF9,0x38,0x98,0x30,0xF0,0x35,0xBC,0xEA,0x26,0x9F,0xF6,0xAE,0x57,0x27,
+0x38,0xA7,0xED,0xFB,0xBA,0xFF,0xDB,0x82,0x42,0xE4,0x14,0x39,0x47,0xCA,0xCB,0xC4,
+0x3D,0x53,0xB2,0x4D,0x6C,0xEB,0x71,0x07,0xF4,0x17,0x12,0x80,0xA1,0x14,0x53,0x5B,
+0xA2,0xE2,0x52,0x55,0xF2,0xEA,0x03,0xE0,0xF1,0x48,0xA4,0x74,0x89,0x13,0x13,0xF2,
+0xA1,0x2D,0xF4,0x6A,0xF3,0xB7,0x15,0x25,0xE1,0x23,0x23,0x91,0xC2,0xBB,0x66,0x36,
+0xC8,0x99,0x30,0x3D,0x1E,0xFD,0x1E,0x8E,0x72,0x67,0x39,0xE5,0xE5,0x87,0x49,0x2F,
+0x62,0x00,0x0C,0xBE,0x20,0x43,0x8D,0x2B,0x55,0xA7,0xD3,0x75,0xC8,0x0B,0xE9,0xB4,
+0x51,0x13,0x29,0xAC,0x9E,0xB0,0xDE,0x74,0x1A,0x72,0xA7,0xC3,0x88,0xD6,0x4E,0xE4,
+0x30,0x04,0xC7,0x86,0x78,0x28,0x41,0xAA,0x88,0xE7,0x74,0x25,0xD9,0x2D,0xCA,0xB6,
+0x02,0x85,0x33,0x5D,0x7E,0xA8,0x6F,0xEB,0x60,0x7B,0x48,0x5D,0xC6,0xF5,0xDB,0x12,
+0x81,0x14,0x1C,0xC0,0xCD,0x09,0x86,0x80,0x7F,0x12,0xF2,0xB2,0x40,0x4E,0x16,0xFC,
+0x77,0x11,0x38,0x8F,0x8C,0xF3,0xC0,0x98,0x19,0xD4,0x98,0x0C,0x02,0x9C,0x8C,0xA6,
+0x1F,0x37,0x2D,0x11,0xA9,0xE1,0xD3,0xAB,0xDD,0x04,0x0C,0x88,0xB7,0xB6,0xAD,0x61,
+0x9F,0x69,0xA4,0xB3,0x11,0x92,0xAE,0xB5,0x37,0xEF,0xC6,0xAD,0x35,0x43,0xDD,0xAB,
+0xE4,0x65,0x7C,0x95,0xD5,0xC5,0x1A,0xDC,0xB3,0xE8,0x1B,0x95,0x99,0xF0,0x6D,0xE6,
+0xD4,0xB9,0xFF,0xB8,0x6A,0x6B,0x5F,0x46,0xF6,0x60,0xE4,0xDD,0xAA,0x61,0x81,0xCF,
+0x29,0xD0,0x57,0xB5,0x65,0x04,0xEF,0x7D,0x15,0x70,0x9A,0xC9,0x37,0x4C,0xE0,0xA1,
+0x8F,0x8C,0xCF,0x34,0xD8,0x97,0xA0,0xE8,0x3C,0x63,0x84,0xC1,0x6B,0x83,0x36,0x49,
+0xAD,0xE8,0x50,0x68,0x69,0x0B,0x43,0x8C,0x68,0x51,0x35,0xFE,0x93,0x40,0xE2,0x64,
+0x5F,0x8B,0xFA,0x58,0x9C,0x8D,0xD4,0x7B,0x28,0x86,0x7C,0x42,0x94,0xC4,0x3F,0x5C,
+0x33,0xCB,0x61,0xB9,0xCE,0x69,0x9A,0x4A,0xEE,0x21,0x1E,0x9B,0x54,0xE3,0xD5,0xCC,
+0x6E,0xC5,0xA8,0xBC,0x28,0xF1,0x05,0x94,0x9A,0xFB,0x05,0x9D,0xE6,0x4D,0x29,0x33,
+0xEC,0xC6,0x56,0xE8,0x13,0xAF,0xA4,0xBA,0xBE,0x9D,0xD0,0xC2,0x76,0x54,0x1A,0xE7,
+0xB8,0xF9,0x64,0x59,0xB3,0x10,0x45,0xF8,0xCE,0xC9,0xB4,0xA2,0xE2,0x03,0x94,0x17,
+0xB1,0xC8,0x9F,0xED,0xFC,0xD8,0xA5,0x1E,0x53,0x5E,0x5A,0x4E,0x39,0xB2,0xD2,0x07,
+0x0E,0x40,0x97,0x5F,0x4A,0x99,0x7E,0xFE,0xD9,0x8A,0x73,0xEE,0xBE,0xCC,0x42,0xFF,
+0x52,0xDC,0x8F,0x93,0x24,0xFE,0xA9,0x65,0xFC,0x3D,0x6F,0x23,0xA5,0x5A,0xEE,0x7F,
+0xA9,0x8E,0xDE,0x17,0x5D,0x3A,0x52,0x99,0x48,0xB9,0x9F,0xC7,0xD2,0x58,0x18,0x22,
+0xD8,0x7C,0x5B,0xBA,0x73,0xFA,0xD5,0xDF,0xD2,0x06,0x31,0x82,0x0D,0xA7,0xE3,0x16,
+0x63,0x92,0xDD,0x77,0x26,0xC3,0xA3,0x6A,0xC7,0x32,0x00,0x93,0x5F,0x96,0x07,0x58,
+0x4F,0x6E,0x91,0xDF,0x1B,0x1D,0x2C,0x05,0x00,0x44,0xAB,0xD8,0x2E,0xD5,0x71,0x2B,
+0x36,0x3F,0x3E,0x0F,0xAC,0x01,0xE1,0x20,0xD0,0x71,0xC7,0xDF,0xB4,0x7C,0xCD,0x7D,
+0x93,0xAC,0x00,0xB1,0x16,0x4F,0x96,0x31,0xE7,0xDA,0xAA,0xAA,0xCA,0x04,0xD4,0xBE,
+0x44,0x02,0x1D,0x9D,0x79,0x75,0x57,0x6F,0xC1,0xCB,0x89,0xA8,0xE9,0x76,0x46,0x83,
+0x21,0x73,0x7D,0xC8,0x9A,0x0D,0xFA,0x3A,0x78,0x3A,0xB2,0x1B,0xBB,0x47,0xA2,0xCD,
+0x89,0xB7,0x36,0xBD,0x09,0x5E,0x32,0xE9,0xD7,0x59,0x87,0x76,0x0F,0xA8,0xDE,0x1C,
+0xC9,0x0B,0xE1,0xF4,0x4F,0x79,0x4C,0x75,0xB9,0xB5,0x90,0x6B,0x4D,0x7A,0x44,0x46,
+0x18,0x9E,0x05,0x51,0x55,0x88,0xDA,0x26,0x91,0x77,0x47,0xF1,0xEE,0xF2,0x9B,0xBB,
+0x57,0x28,0xD0,0x25,0x5C,0x67,0x44,0x5C,0x5B,0x74,0x27,0xED,0x53,0x67,0x08,0xF4,
+0xC5,0xCE,0x45,0xF6,0x07,0x6C,0x94,0x17,0x16,0xD6,0xA5,0x06,0x46,0x0F,0x96,0xD2,
+0x08,0x7B,0x6E,0xD6,0x41,0x4B,0xEA,0x8B,0x50,0xF8,0x65,0x81,0x34,0x86,0x80,0xBD,
+0x4B,0x08,0x1F,0xA0,0xAF,0x61,0xFD,0xEA,0x9E,0x75,0x7A,0xFB,0x19,0x0A,0x20,0x26,
+0xAC,0x7A,0x81,0xA1,0xF7,0x0A,0x31,0x6B,0x3F,0xC5,0xBB,0x0E,0xC3,0x7E,0x3B,0x20,
+0x64,0x3B,0xF5,0x37,0x4B,0xC4,0x68,0x3B,0x1B,0xA3,0x6E,0x51,0xA2,0xDE,0x33,0x47,
+0xB9,0x36,0x89,0x1B,0x2E,0xFA,0x6C,0xFC,0xF0,0x35,0xCC,0x76,0x0D,0x2D,0xCB,0xF2,
+0xA3,0xA5,0xFD,0x5F,0x37,0xDD,0x50,0xD3,0xA7,0x81,0x08,0x1F,0x06,0x67,0x26,0x59,
+0x49,0x82,0x6D,0x9F,0xAC,0xF0,0xDC,0x73,0x24,0x18,0x34,0xB5,0x95,0xD9,0x18,0xFC,
+0x3D,0xCD,0xDB,0x4A,0xFC,0xB0,0x01,0xD4,0x36,0x0B,0x11,0x86,0xC6,0x2A,0xA6,0xA3,
+0xEE,0x5F,0x3D,0xDF,0xAE,0xE1,0xFA,0x50,0x1C,0x1C,0xFF,0xE7,0x59,0xB2,0x40,0x7D,
+0xD2,0xB7,0x45,0x43,0x0A,0xFE,0x22,0x41,0xC7,0x9D,0x0B,0xD5,0x77,0x32,0x46,0x3C,
+0x68,0xA8,0xAA,0x2A,0xE4,0x78,0x99,0x8C,0x5A,0x0C,0x24,0x56,0x9E,0x93,0xF5,0x57,
+0x02,0xCE,0x14,0xEC,0xBE,0x3A,0x4B,0x16,0x15,0x09,0x00,0xA0,0xD8,0x69,0xB4,0x4F,
+0xE7,0x18,0x28,0x20,0xEE,0x7A,0x96,0xB1,0xEA,0x41,0x88,0xE5,0x91,0xE1,0xD3,0xAE,
+0x9C,0xA6,0x32,0xF9,0x25,0x17,0xC7,0xB6,0x11,0x75,0x57,0x1A,0x60,0x18,0xA8,0x5D,
+0x54,0x40,0xD2,0xB6,0x2D,0x04,0xEE,0xA8,0xE2,0x26,0xE9,0x45,0x72,0x7D,0x62,0xCA,
+0xB4,0xCB,0xE0,0xB3,0xCF,0x5A,0x2E,0x43,0x75,0x15,0x03,0x6A,0x48,0x83,0x74,0x68,
+0xBC,0x6B,0x87,0xD2,0x3F,0xCE,0x79,0xCD,0xA2,0x8F,0xC1,0x42,0xE8,0xAA,0xA0,0xE2,
+0x8E,0x95,0x21,0xDC,0xDC,0x7F,0x1D,0x51,0x61,0xBF,0xD5,0xEF,0xC3,0x65,0x82,0x55,
+0x88,0x23,0x98,0x2F,0x43,0x99,0xC3,0xC9,0xD7,0x4B,0x8A,0xEA,0x69,0x71,0x54,0xD0,
+0x3E,0x26,0x6C,0x70,0xEA,0xB1,0xC4,0x89,0xCF,0xFA,0x6A,0x75,0x1B,0x70,0xCA,0x37,
+0xC6,0x32,0xEF,0x95,0x9F,0x1A,0xF3,0xE4,0x86,0x46,0xBD,0x35,0xF8,0xEC,0x7B,0x53,
+0xA4,0xF4,0x36,0x32,0x42,0x76,0x67,0xBE,0x1F,0xAB,0xC5,0x0C,0x20,0xF9,0x33,0x31,
+0x94,0x06,0x55,0x98,0x2C,0xEB,0x4A,0xDF,0x7C,0x00,0xFC,0x2D,0x39,0xD6,0x14,0x0D,
+0x53,0x11,0x19,0xDB,0xA2,0x39,0x81,0x76,0x40,0x78,0x60,0xC5,0x7E,0x5B,0xBA,0xB1,
+0x8F,0x72,0x53,0x42,0xA9,0xD4,0x2A,0x3C,0x06,0x68,0xBB,0x74,0x7B,0x14,0x9E,0x47,
+0xE8,0xE9,0x84,0x2C,0x05,0xD8,0xDB,0x33,0x4D,0x11,0xC8,0x38,0x31,0xC8,0x07,0x24,
+0x66,0xBE,0x74,0xB8,0xAD,0x1F,0x78,0x04,0xB0,0x9C,0xE4,0x71,0x01,0x0B,0x13,0x89,
+0xB7,0x20,0x57,0x89,0x3C,0x30,0xFB,0x99,0xE5,0xED,0x84,0x14,0xCE,0x34,0xB5,0x8A,
+0xD0,0xBB,0x80,0xE7,0xB7,0xC6,0xC6,0x7F,0x25,0x6A,0xAA,0x52,0xF3,0xA6,0x96,0xF8,
+0x4B,0x8E,0xA8,0x3B,0x61,0x47,0xF9,0x6F,0x98,0x4E,0xAE,0x1C,0x52,0xF8,0xAD,0xD6,
+0x85,0xDE,0xF1,0x87,0xEB,0x5E,0x60,0xFE,0x58,0xC9,0x80,0x5A,0x7A,0x63,0x71,0xE3,
+0xB8,0xD1,0xFB,0x85,0x17,0x12,0x4C,0x56,0xDB,0x50,0xBC,0xF0,0xA4,0x6D,0xE3,0xF5,
+0xDA,0x17,0x22,0x22,0x6F,0x8E,0xA4,0x6A,0x46,0xC1,0x93,0x73,0xF4,0xCA,0xA3,0x28,
+0x55,0xA7,0xA0,0x28,0x88,0xF4,0x92,0xCE,0x62,0x08,0xEF,0x04,0x07,0x10,0xC9,0xFD,
+0x39,0x77,0xA7,0x1D,0x97,0x09,0xDA,0xFA,0xC1,0x24,0xF8,0x63,0x4D,0xCC,0x50,0x9E,
+0xB5,0x2C,0x92,0x2D,0x12,0x36,0xBA,0x19,0x2C,0x7F,0x55,0x15,0x4C,0xBB,0xBF,0x3A,
+0x0A,0x6E,0x73,0x8D,0x5E,0x75,0xAD,0xDE,0x6E,0x13,0xD9,0x1E,0x54,0xE3,0x77,0xA2,
+0xDD,0x46,0xE9,0x4F,0xA3,0xD6,0x25,0x01,0xCB,0x86,0x3D,0xCF,0xC2,0x12,0x6D,0xF1,
+0xBD,0x8C,0xF5,0x4C,0xEC,0x6B,0xB0,0x92,0xBF,0x30,0xE8,0x80,0x5C,0xFD,0x64,0x8B,
+0x3F,0xC1,0x1E,0xEE,0xCA,0x7E,0xD8,0x0C,0x6C,0xD6,0x7D,0x12,0x8C,0xF6,0x3F,0xC0,
+0xFF,0x87,0x99,0xC0,0xA5,0x0C,0x51,0x1A,0x4C,0x63,0x56,0xDF,0xF2,0xD1,0x79,0x5C,
+0xE0,0x49,0xE3,0x4D,0x3E,0x21,0xDD,0xBA,0x3A,0x10,0x27,0x9C,0xE5,0xFB,0x97,0x3D,
+0x21,0xE8,0x16,0xFD,0x38,0xFB,0xA9,0xA1,0x3B,0x62,0xB9,0x7B,0x29,0x90,0xCF,0xBC,
+0xF4,0xCC,0x49,0x9B,0x5F,0x9A,0x09,0xA9,0xAD,0x23,0xCD,0xB3,0x70,0x5E,0x73,0xEC,
+0xAB,0x05,0x9A,0x3E,0x0E,0x35,0x70,0x79,0x20,0x64,0x63,0x0F,0xCD,0x60,0x4B,0x08,
+0x9A,0x10,0x8B,0x0A,0x40,0x67,0x41,0x9D,0xED,0x8A,0xE5,0xB4,0xBB,0x59,0x1E,0xBD,
+0x31,0xD7,0xC0,0x7C,0x33,0x16,0x02,0xEB,0x45,0x76,0xA9,0x98,0x34,0x87,0x23,0xD2,
+0x5D,0x07,0xC7,0x49,0x65,0x8C,0xAB,0x57,0x95,0x27,0x06,0xE1,0xF9,0x9B,0x94,0xF7,
+0x30,0x30,0xB2,0xE2,0xA6,0xF2,0xD3,0x4E,0x2B,0xB4,0x38,0x44,0x8E,0xD5,0x2E,0xE6,
+0x13,0x16,0xB0,0xF3,0x9B,0xD1,0xA1,0xDC,0x07,0x1A,0x25,0x93,0x4F,0xEF,0x41,0xB8,
+0x28,0xAF,0x03,0x02,0xD5,0x83,0x90,0x38,0x52,0x6B,0x45,0xF6,0xE2,0x97,0xA2,0xED,
+0x1D,0x00,0x6E,0x61,0x04,0x37,0x7F,0x44,0x27,0xAF,0x0E,0x5E,0x2A,0xC4,0x31,0x3E,
+0x84,0x39,0x83,0x19,0xD4,0x6C,0x34,0x4F,0x23,0xD3,0x59,0xE4,0x82,0xF3,0xF6,0x9D,
+0x9F,0x4D,0x85,0xC3,0x2B,0xDE,0x9A,0xB3,0x26,0xDD,0x90,0xB9,0x1D,0x6B,0x10,0x43,
+0x4A,0x69,0xDA,0xA5,0xFF,0x4E,0x83,0x80,0x72,0xDE,0x6E,0x3B,0xBC,0x35,0x2B,0x6D,
+0x2E,0x19,0xBA,0xF1,0x0F,0xDA,0xD4,0x0E,0xC3,0xE1,0x5C,0x6F,0x5D,0x8A,0x8B,0x2F,
+0xC0,0x84,0x56,0x66,0x1F,0x01,0x65,0x48,0x77,0xD0,0xA7,0x66,0xBD,0x42,0xC4,0xC9,
+0xE9,0x0E,0xF6,0xB2,0xE7,0x86,0x1B,0xD8,0xC5,0x58,0xAF,0xD9,0x66,0x03,0x72,0x29,
+0xF5,0x2B,0x3B,0x05,0x67,0x9D,0x8D,0x74,0x09,0xC4,0xB7,0x85,0xB1,0x64,0x1C,0xB2,
+0x05,0x9F,0xDF,0x81,0x3A,0xEA,0x8F,0x82,0x8D,0x96,0xE6,0x7E,0x4A,0xA0,0x65,0x4E,
+0x96,0x0A,0x90,0x3C,0x79,0x8F,0x61,0x37,0x8B,0x2F,0x15,0xC8,0xCB,0x7B,0x91,0x7C,
+0x5C,0xE0,0xB5,0xD7,0xB3,0x0D,0x94,0x47,0x29,0x71,0x9C,0x48,0xB6,0x08,0x29,0x62,
+0x81,0x64,0x8D,0xD0,0xFE,0xA1,0x27,0xF7,0x0F,0x7D,0x44,0x33,0x02,0x5F,0xED,0x0B,
+0x7E,0x21,0xC5,0x58,0xD7,0x92,0xB6,0x1B,0x22,0xA1,0xC7,0x03,0x47,0xF1,0x52,0x91,
+0x00,0xC2,0xD1,0x48,0xB9,0x0F,0x9B,0x7A,0x2F,0xC8,0x6F,0xFE,0xF7,0x9E,0x5D,0xAA,
+0x1E,0xEB,0xD9,0x5B,0x51,0x53,0x54,0xAC,0xAE,0x94,0xF7,0x58,0xB8,0x0D,0xE0,0x3F,
+0xAF,0xBF,0xE6,0x69,0x7C,0xAB,0x97,0x78,0xF2,0xF0,0x68,0x7A,0x5B,0x91,0x51,0x5B,
+0xE6,0xFF,0x5A,0xBE,0x44,0xAC,0x13,0xA5,0xC2,0x93,0xC2,0x88,0xCC,0x17,0xA4,0xAC,
+0xE5,0x8E,0x36,0x4E,0xE7,0x87,0x1C,0xE4,0x1B,0x38,0x7C,0x28,0x6A,0x2A,0x98,0x66,
+0x13,0x8B,0x12,0x01,0xA6,0x7D,0x5A,0xFC,0x7D,0xFE,0x16,0x96,0x28,0xF8,0x02,0x3C,
+0x54,0x9E,0xED,0x08,0x52,0xA6,0xDB,0xCE,0xEC,0xCD,0xFA,0xBF,0xF3,0x49,0x44,0x2C,
+0x66,0x1F,0x19,0xD3,0x54,0x26,0xF5,0x8F,0x04,0x51,0xC6,0xC7,0xEC,0x91,0x55,0x88,
+0x06,0x9A,0x26,0x30,0x0A,0xCD,0x17,0x4F,0x31,0x8D,0x5D,0xEF,0xE2,0x6F,0x67,0x2E,
+0x35,0x89,0x03,0x22,0xB4,0x3E,0x44,0x10,0x7E,0x58,0x29,0x59,0xA2,0xB2,0xC0,0x7E,
+0xC5,0xB7,0xDE,0xE4,0xD9,0x39,0x8F,0x41,0x85,0x09,0xAD,0x0B,0xE8,0xDF,0xE8,0xAC,
+0xAC,0x03,0x1A,0xB3,0x34,0x73,0x84,0xEA,0x16,0x4D,0xB7,0x7F,0xCF,0xE3,0xC7,0xB5,
+0x59,0xC9,0x98,0xC3,0x46,0x65,0xEB,0x63,0x90,0x3D,0x9C,0x1A,0x8B,0x70,0xDD,0xC1,
+0xC6,0x78,0x78,0xDB,0xD8,0x64,0x99,0x84,0x95,0x62,0x2A,0xEE,0xA3,0x77,0x9D,0x68,
+0xF1,0x0D,0xD3,0xB6,0xB2,0xBE,0x6A,0x51,0xD8,0xC0,0xA8,0x05,0xDC,0xCA,0xD9,0xBD,
+0x5C,0x3D,0xC7,0x75,0x90,0x71,0x41,0xE6,0x26,0xCE,0x9A,0xA3,0x6D,0xAE,0x45,0x5E,
+0xF6,0xA4,0xFB,0xF6,0x70,0x69,0xF0,0x79,0xF3,0xA4,0x40,0x50,0x16,0x5D,0xBC,0xAF,
+0xD9,0x97,0x11,0x61,0x66,0x97,0xCA,0xDB,0x78,0xA1,0xA0,0x62,0x48,0x9D,0x57,0x4D,
+0x56,0xC3,0x9A,0xFE,0xC1,0xF5,0x13,0x1D,0xAB,0x32,0xF3,0xAA,0x68,0x25,0xA5,0x6C,
+0xA9,0xF7,0x45,0x05,0xBA,0x0C,0xE2,0xEE,0x15,0xEB,0x88,0xB0,0x05,0x74,0xA2,0xA7,
+0xC2,0x1E,0xF6,0xA4,0x01,0x1F,0x83,0x3A,0x0D,0xAA,0x72,0xF6,0x0D,0xCB,0x10,0x2F,
+0xA7,0x6F,0x96,0xF1,0xA7,0x20,0x4C,0x39,0x93,0x9B,0xA3,0xD5,0x22,0x48,0x8D,0xBE,
+0xC7,0xEA,0xA9,0x12,0x8C,0x00,0xF9,0xF4,0xC1,0x50,0x9B,0xD1,0xC6,0x99,0x28,0x2B,
+0x8B,0x93,0xDA,0x59,0x15,0xDC,0xB3,0x97,0x5A,0x3E,0xFC,0x06,0xCA,0x68,0x27,0x87,
+0x9E,0x82,0xEE,0x68,0x06,0xC2,0xBB,0xBE,0xB5,0x8A,0x80,0xD7,0xF9,0xF9,0xCB,0xAE,
+0x76,0xFA,0x72,0x54,0xA8,0x4F,0xFC,0x02,0xA2,0xC9,0x47,0x9B,0x2B,0x32,0x62,0x20,
+0x86,0xC4,0xAF,0x92,0x69,0xF8,0x7A,0xE0,0x81,0x87,0xD2,0x6D,0x08,0x40,0xF0,0x1D,
+0xBF,0x29,0xD7,0x0B,0x21,0xED,0xA2,0x82,0x47,0x20,0xB0,0xB4,0x64,0xD4,0xAA,0xC0,
+0xD0,0xA6,0xEA,0xD5,0x42,0xD8,0xCF,0x2D,0xC4,0x0F,0x2D,0x25,0x1B,0x69,0xEE,0x15,
+0xA6,0xFD,0x47,0x38,0xAD,0xAF,0xCE,0x89,0x9F,0x3F,0xA1,0x10,0x24,0x09,0x0D,0x90,
+0xC0,0x43,0x81,0x52,0xB1,0xDE,0x76,0x9B,0xA4,0x30,0xCE,0xA0,0x9C,0x17,0x7E,0xED,
+0xB7,0x8A,0xFD,0x76,0xDB,0x04,0x85,0x4E,0x14,0x3A,0x41,0x22,0xE6,0x21,0xDA,0x0A,
+0xE9,0x4B,0x92,0x4C,0x63,0x77,0xF8,0x50,0x6D,0x95,0x91,0x73,0x4C,0xD3,0xEA,0x69,
+0x43,0xD2,0xAE,0xCF,0xF1,0x79,0x26,0x46,0x62,0x97,0xAC,0x79,0x00,0xFF,0x42,0x95,
+0xE1,0xE8,0xB8,0x31,0x84,0xB2,0x71,0x4B,0x08,0xF5,0xC4,0x02,0xD4,0x75,0x6B,0x35,
+0xAF,0xCC,0xBC,0x8C,0xBF,0xEC,0xD0,0x65,0x3D,0x29,0x5F,0x2A,0x55,0x4A,0x7B,0xE3,
+0xC8,0xE0,0xAB,0x2F,0xDD,0x84,0xAB,0x0F,0x5B,0xEF,0x35,0x94,0xE9,0x1A,0xB5,0xBA,
+0x00,0xA1,0xDF,0xB9,0x61,0x4A,0xF2,0x5F,0x7F,0x89,0xE0,0xCB,0x88,0xBA,0xBD,0xDD,
+0x6C,0xE1,0x44,0x58,0x6B,0xC5,0x70,0xEF,0x34,0xD2,0xEB,0x1B,0x1E,0xE2,0x0E,0x27,
+0x2F,0x92,0x35,0x2E,0x85,0xEF,0x67,0x8E,0xFA,0x5F,0xF4,0x61,0x33,0x6E,0xAE,0xBC,
+0x33,0xB2,0xFA,0xAB,0x76,0xE9,0xDE,0x38,0x3F,0x5E,0xA9,0x77,0x79,0x03,0x86,0x6E,
+0xA1,0x54,0x6F,0x78,0x2D,0xE2,0x0E,0x73,0x72,0xFC,0x2B,0x9C,0x6C,0x6B,0x18,0x48,
+0xAD,0x91,0xCB,0x7A,0x65,0xF7,0xD6,0x11,0xDD,0x9F,0x1E,0xF1,0x67,0x1E,0xCA,0xDC,
+0x7C,0x04,0x2F,0xDF,0x7F,0x06,0x40,0x42,0xF5,0x5D,0xC9,0x6B,0xC4,0x96,0x15,0x21,
+0x45,0xE9,0x57,0x46,0xB0,0x83,0x60,0x5E,0x1C,0x10,0x3C,0x81,0x91,0x23,0x2C,0x57,
+0xED,0x2D,0x1C,0x33,0x23,0xD0,0xA8,0x8D,0xB3,0x73,0x09,0xEC,0x25,0xCC,0x50,0x86,
+0xF7,0x36,0x2A,0x3F,0x3C,0xC1,0x0C,0x55,0x83,0xF0,0x24,0x30,0xE0,0x60,0x5A,0x24,
+0x20,0x98,0x37,0x13,0x53,0xFB,0xCD,0x0B,0xA5,0xE1,0x07,0x32,0xC3,0x12,0xC8,0x19,
+0x2B,0xF4,0xBB,0x51,0x31,0x93,0xB6,0x61,0x64,0x6E,0x25,0x42,0x04,0xB1,0xFF,0xB1,
+0x52,0xA5,0x14,0x81,0x86,0x8F,0x7B,0x44,0xB4,0x5B,0x49,0x45,0x9E,0x18,0x43,0xE7,
+0xBC,0xE6,0x71,0x34,0x59,0x74,0x4F,0xBB,0xB6,0x2C,0xBF,0x18,0x27,0xC3,0x6D,0x8C,
+0x07,0x08,0xF7,0xF9,0x0C,0x4D,0x39,0x0E,0xA3,0x18,0x8E,0x09,0x75,0xF2,0x89,0xC2,
+0x36,0x46,0xA5,0x1D,0x0E,0x70,0x33,0x01,0x98,0x17,0xE1,0xB9,0x8F,0x3E,0x60,0xE5,
+0xCD,0x14,0xF4,0x99,0x77,0xB4,0xC8,0xFD,0x2C,0x93,0x11,0x5D,0xF8,0x3C,0x96,0xB8,
+0xD5,0x52,0xB5,0x63,0xD6,0x56,0x3F,0x7A,0x37,0x74,0xD4,0xD4,0x13,0xD6,0x5C,0x9D,
+0x6A,0xDA,0xBD,0xD1,0x60,0x17,0xE4,0x9A,0xBD,0xA0,0xFD,0x74,0x94,0xA8,0xCC,0x65,
+0x88,0x5C,0x7C,0x66,0x39,0x21,0x3E,0xDE,0xDA,0xB7,0x5E,0x58,0x5C,0x30,0x94,0x7D,
+0xDC,0x63,0x4E,0xD7,0x99,0x9E,0xDF,0x9C,0xAA,0xE3,0x3A,0x38,0xC8,0x67,0x1A,0x8D,
+0x57,0x51,0x4B,0x37,0xE4,0xE7,0x00,0x2E,0x8A,0x0B,0x90,0x01,0x7E,0x87,0x5B,0x56,
+0x0A,0x5F,0x82,0x32,0x02,0x7F,0x9F,0xF0,0xFE,0xD1,0x8B,0x07,0xCC,0x29,0xA7,0xA9,
+0xC9,0x72,0x7A,0xE6,0x43,0x85,0xD9,0xE8,0x0C,0x7B,0xBB,0x64,0xB9,0x24,0x6C,0xFE,
+0x3B,0x11,0xD0,0xD6,0xB6,0x03,0x4E,0x1F,0x4C,0xAC,0xF2,0xD8,0xBE,0xA0,0xB1,0xC6,
+0x4D,0x4A,0x7D,0x3B,0x4F,0x8A,0x75,0x19,0x71,0x5A,0x14,0x53,0x1D,0x28,0x6E,0x3B,
+0xEB,0x16,0xE5,0xBA,0xF2,0x19,0x3A,0x8C,0x58,0x49,0x0A,0x5B,0x41,0xE7,0xB8,0xD3,
+0x80,0xFF,0x56,0x1B,0xFF,0x4B,0x80,0xB8,0xD7,0xC2,0x95,0x0F,0xB3,0x94,0xE3,0x7C,
+0xB0,0x23,0xD5,0x36,0x40,0xE5,0xC5,0x22,0x92,0x4A,0x6A,0x47,0x80,0x05,0x0F,0x55,
+0x7B,0xAD,0x07,0x9F,0x83,0x6F,0x49,0xCF,0xB9,0x2E,0x82,0x12,0x9D,0xD2,0x23,0xFB,
+0xFB,0xF3,0x8E,0x3D,0x3B,0x1C,0x34,0xD1,0x53,0xC5,0x48,0x37,0x1F,0x27,0x53,0x31,
+0xDB,0xF3,0x97,0xEE,0x1C,0x18,0xCE,0x3D,0x60,0x0A,0x19,0x0B,0x7E,0x7A,0x5D,0x98,
+0x42,0xCA,0x7A,0x96,0xC4,0x50,0xAC,0x28,0x02,0xD3,0xBE,0xCD,0xA3,0x20,0x31,0x0C,
+0x84,0x3A,0x44,0x4B,0x42,0x91,0x4E,0x9F,0x97,0x25,0xF0,0xEE,0x9E,0xB2,0x12,0x7E,
+0xB8,0xD2,0x3C,0xD7,0x05,0x3F,0xF2,0x12,0x50,0x69,0xB3,0xF9,0x10,0x1B,0xC0,0xB5,
+0x89,0xC7,0x2D,0xE3,0x0D,0x2C,0xDB,0x0C,0x2C,0xB8,0x07,0x16,0x39,0xF7,0xF3,0x24,
+0xC2,0x8B,0x54,0x90,0x47,0xB5,0xB8,0xD0,0x4B,0x6F,0x69,0x8D,0x95,0xF8,0xFF,0xD5,
+0x21,0xEB,0xD1,0xAF,0xF2,0x9E,0x75,0xF0,0x73,0x6B,0xA2,0xDF,0x00,0x5D,0x1B,0x04,
+0x74,0x8E,0xA0,0xCF,0x3D,0x38,0x76,0xCF,0xA2,0x48,0x93,0x41,0x91,0xC0,0x34,0x87,
+0x5C,0xE3,0x72,0x85,0x6E,0x86,0x29,0x3C,0x8F,0x94,0x10,0x71,0x5D,0xAB,0x6C,0x06,
+0xE1,0xAD,0x56,0x81,0xCF,0xBD,0x07,0x62,0x14,0xBC,0xCC,0x44,0x8B,0xBB,0xED,0x39,
+0x1F,0x0F,0x6C,0x97,0x98,0xC8,0x0A,0xA9,0x7C,0xC7,0xAE,0x2E,0x2B,0x92,0x39,0xB3,
+0x9C,0xA5,0xF5,0xAB,0x46,0x5A,0x1C,0xA7,0x41,0xCD,0xAC,0x21,0xD7,0x3A,0x75,0x9F,
+0xA6,0xFB,0x34,0xC4,0x3B,0xE2,0x02,0xD4,0x91,0x9C,0x03,0x58,0xB4,0x0A,0xDF,0x6D,
+0x82,0x8C,0xFD,0xB8,0xC8,0x88,0xD7,0x0E,0x1E,0x1E,0x09,0xE8,0x53,0xAE,0xA5,0x5B,
+0xE8,0xEA,0x43,0x7E,0x70,0x94,0xC5,0x7F,0x71,0xAE,0x06,0xD3,0x2E,0xDD,0x1D,0x45,
+0x05,0x9C,0x18,0xD3,0x71,0x7B,0x61,0x08,0xFD,0x9B,0x36,0x88,0xAB,0x3E,0x22,0x25,
+0x63,0xE0,0xBD,0x23,0x3A,0x0D,0xA6,0xA3,0x67,0xC1,0x74,0x5A,0x0B,0x17,0xF6,0xAF,
+0x34,0x89,0x09,0xE7,0x31,0xE0,0x0D,0xE9,0x7D,0xB5,0x30,0xC9,0x12,0x38,0xD1,0x93,
+0xF2,0x79,0x37,0x3A,0xFA,0x8D,0x5C,0xEE,0xF9,0xE7,0x61,0x32,0xC0,0x10,0x9B,0xFE,
+0xE0,0x4A,0x24,0x1F,0xA9,0x33,0x03,0x1D,0x8D,0x51,0xB4,0x7D,0x90,0xB7,0xDB,0x23,
+0x03,0x2A,0xA1,0x20,0x4B,0x6D,0xC3,0xF6,0x16,0x79,0x68,0x48,0x36,0x85,0xD5,0xDD,
+0xD8,0x18,0x20,0xD4,0x65,0x6B,0x82,0x76,0x2A,0x01,0xF4,0xA0,0x92,0x94,0xCA,0x05,
+0xD1,0x5F,0x35,0x2B,0xE4,0x9F,0xB0,0xAD,0xC6,0x28,0xC7,0x31,0x82,0xD2,0x11,0xB4,
+0x9E,0xA9,0x30,0x0F,0xA2,0xDE,0xA8,0x57,0xAC,0x96,0x01,0x57,0xD8,0x48,0x53,0x66,
+0xD5,0xE5,0x49,0x7C,0x5C,0x83,0xA2,0xDC,0x58,0x0E,0xD2,0x59,0x19,0x72,0x3C,0x38,
+0x2E,0x1A,0x7D,0xA3,0xAD,0xF8,0x51,0x25,0x23,0x14,0x0B,0xE7,0xD2,0x75,0x51,0x69,
+0xB1,0x95,0x29,0x28,0x74,0x5F,0x97,0x47,0x70,0xDC,0x98,0x34,0xF3,0x87,0x71,0xD1,
+0x26,0xBA,0x1A,0xC2,0x4E,0x49,0x35,0xB9,0x90,0xEE,0x9D,0xBF,0x11,0x6C,0x2F,0x11,
+0xA5,0x10,0x83,0xFE,0xFF,0xA9,0xAA,0xA1,0x4A,0x1D,0xF7,0x6A,0xE0,0x95,0x54,0xE2,
+0x66,0xBD,0xB3,0xEA,0xD4,0x8B,0x1D,0x6E,0x78,0xBB,0xF9,0x94,0x03,0x09,0xE5,0x86,
+0x0B,0x8A,0xC6,0x41,0x27,0xE1,0xC8,0xB4,0xFA,0x50,0x5B,0xD9,0xD6,0x4D,0x9A,0x3B,
+0x13,0x15,0x77,0xA1,0x55,0x7F,0x2F,0xB5,0x4C,0xA4,0x04,0xDC,0x7F,0x0D,0xB2,0x3C,
+0xE2,0x46,0xE1,0xBB,0x21,0x3B,0xBC,0xAF,0x5B,0xB9,0xE8,0xB2,0x17,0x77,0xF5,0x65,
+0xE7,0x1B,0xEF,0x72,0xBE,0xDD,0x62,0x37,0x40,0xBF,0x32,0xC6,0xE8,0x8B,0x47,0xCB,
+0x07,0x90,0xDD,0x77,0x61,0xA0,0xD0,0x4E,0xEA,0x86,0xDA,0xE6,0x33,0xCA,0xF1,0x2B,
+0xB6,0xC4,0xE2,0x45,0x80,0x00,0x92,0xF1,0x8E,0xE6,0x8E,0x96,0xC3,0x44,0x65,0x7C,
+0x01,0x26,0x64,0x84,0x5A,0x59,0xD6,0xC7,0x2D,0xCA,0x99,0xF1,0xDB,0x1C,0xAD,0xE4,
+0xB3,0x99,0xEC,0x8C,0x81,0xEF,0x36,0x86,0x04,0x6A,0x4D,0x7B,0x23,0x8C,0x2A,0x9A,
+0x49,0x81,0xAA,0xCD,0x76,0x4E,0xB1,0x64,0xC1,0xE3,0xAA,0x60,0x06,0x46,0xC1,0x70,
+0xCD,0x7A,0xF8,0x9C,0x8D,0x37,0x4D,0xA0,0x31,0x07,0x2E,0xD4,0x5B,0xB0,0xB6,0x72,
+0xED,0xB7,0x4D,0xB7,0x8A,0x02,0x9D,0xCC,0x98,0x89,0xFC,0x1F,0x8F,0x83,0x26,0x6B,
+0x4F,0x37,0x13,0x3E,0xF7,0xBA,0x83,0xBF,0x52,0xAC,0x17,0xF5,0x45,0xF3,0xA4,0x9E,
+0xE6,0xFC,0x9D,0xEC,0x7B,0x79,0x6E,0x35,0xBA,0xF9,0x73,0xDE,0xEB,0xDF,0xB9,0x49,
+0xCB,0xCC,0x41,0x6F,0x3E,0xC6,0xF4,0x9B,0x45,0xB1,0xFB,0x9B,0xC2,0x33,0x8A,0xD8,
+0x6A,0xA7,0xA8,0xDC,0x84,0xCB,0xC0,0xC9,0xDA,0xE5,0x70,0x14,0x6D,0x68,0x78,0xAB,
+0xEB,0x01,0xF4,0x44,0xCB,0x76,0x55,0x5A,0xC4,0xED,0x63,0x3D,0x85,0xBE,0x24,0x64,
+0x06,0x77,0xAF,0xE9,0xF0,0x8F,0x53,0xD3,0x22,0x66,0x95,0x00,0x78,0x61,0x87,0xEC,
+0x36,0x85,0xCC,0x43,0x67,0x7A,0xA4,0x55,0x6B,0xDA,0x42,0x40,0x40,0xBC,0x80,0x68,
+0x0F,0x30,0xBA,0x16,0xFE,0x46,0x0E,0xD6,0x19,0xD5,0x64,0xB9,0x9F,0xC5,0xFD,0xDA,
+0xAA,0xE1,0x2F,0xF2,0x68,0x5C,0x5D,0x27,0xCE,0x4F,0xA6,0x91,0x62,0x1A,0x5E,0x52,
+0xA8,0xED,0xEA,0x56,0xB0,0x14,0x3F,0x32,0xFB,0x22,0xC5,0x3E,0xF6,0xC8,0x55,0x27,
+0x7B,0x7F,0x0C,0xC3,0x60,0x4F,0x74,0x39,0x79,0xC9,0x67,0x73,0xD0,0x56,0x40,0x4F,
+0xFE,0x63,0x2C,0x0C,0xD9,0xBC,0xC2,0x3F,0x24,0xDF,0x66,0xB6,0x02,0x7E,0x0A,0x22,
+0x88,0x20,0x5F,0x7D,0xCE,0x52,0xA3,0x15,0x3B,0xA5,0xEB,0x78,0x99,0xDE,0x27,0xAE,
+0x69,0x4C,0x1F,0xE6,0x4C,0x58,0x13,0x9A,0x30,0x75,0xB0,0x33,0x63,0x6D,0xB1,0xF6,
+0xFF,0x84,0x5E,0x92,0x15,0xE4,0x43,0x54,0xE5,0x2A,0xD6,0x17,0x04,0x65,0xD0,0x56,
+0x29,0x4B,0xB6,0xCE,0x87,0x35,0x42,0x9D,0x5E,0xB7,0x21,0xEF,0x7C,0x59,0x4C,0xBE,
+0xE4,0xF0,0x58,0x48,0xF1,0x60,0xF7,0xA4,0x6F,0xA6,0x15,0xFA,0x32,0xBD,0x1E,0x8F,
+0x51,0x1E,0x1B,0x2D,0xC5,0xBF,0x08,0x5F,0x99,0xFB,0x62,0xF8,0x59,0x93,0xA7,0x54,
+0x81,0x67,0x4A,0x82,0x08,0x08,0x2D,0x43,0xF5,0xFC,0x57,0x28,0x0F,0x2F,0x3D,0xFD,
+0xC3,0x6C,0x26,0x0E,0x73,0x6A,0x47,0x2B,0xD7,0x8C,0xD8,0xE9,0xA7,0x18,0xFA,0x5E,
+0xEF,0xBB,0x88,0x13,0xB2,0x05,0x19,0x11,0xF4,0x8E,0xC9,0xCF,0x9A,0x8A,0xD9,0x2C,
+0xE3,0xA1,0x93,0x25,0x16,0x1A,0xC1,0x00,0xD9,0x52,0x4A,0xFF,0x38,0x80,0x1C,0x80,
+0x96,0x09,0x57,0x6E,0xDE,0x89,0x12,0x53,0xEC,0x3F,0x29,0x50,0xE9,0xFC,0xA8,0x6F,
+0x72,0xF6,0x68,0x8B,0xA9,0xE4,0xA8,0x48,0x1F,0x1D,0x20,0xC1,0x90,0xE2,0x0C,0x88,
+0x06,0xB9,0xDE,0x5E,0xF9,0xA4,0x75,0xEF,0x0D,0x0E,0x05,0xF2,0xC3,0x11,0xB2,0xD7,
+0x82,0x42,0x8C,0x0F,0x2B,0xEE,0x18,0xC7,0xCB,0x30,0xD8,0x02,0x08,0x16,0xDF,0x86,
+0x98,0xD1,0xF8,0x4B,0x32,0xC9,0x24,0xE8,0x9C,0x84,0x1C,0x6B,0x03,0x5C,0x32,0x2D,
+0x53,0xDC,0xAF,0x3E,0xE1,0x6C,0xED,0xB7,0x61,0x09,0x30,0x22,0x9B,0xA8,0xE1,0x23,
+0x39,0xBA,0x11,0xF8,0xBB,0x2E,0x3F,0x2D,0x2E,0x0C,0x14,0xD4,0xDD,0x52,0xA0,0x3B,
+0xD5,0x2B,0x38,0xCB,0xAB,0xF5,0x8E,0x6B,0x27,0x19,0xEB,0x93,0x5C,0x89,0x54,0x09,
+0xE9,0xC3,0x40,0x57,0x0F,0xEA,0x56,0x7A,0xFC,0x98,0x1F,0xA1,0x72,0x09,0x52,0x48,
+0x6F,0x34,0xD7,0xA2,0x28,0x10,0x9A,0x93,0xD9,0x23,0xFD,0x31,0x77,0x46,0x76,0xBE,
+0x8F,0xBF,0xE5,0xA7,0xCA,0x4E,0x5A,0x78,0x4E,0x10,0x17,0x1E,0x4D,0xB8,0x60,0x1C,
+0xDC,0x6C,0x2D,0x34,0xEB,0x6E,0xE2,0x8A,0xD1,0x44,0x9C,0x91,0x94,0xDA,0xC7,0xDA,
+0xA7,0xD2,0x37,0xED,0x20,0x03,0xB3,0x8D,0x2A,0x70,0x43,0x6E,0x65,0x23,0xBC,0x29,
+0xB3,0x57,0x9D,0x3B,0x46,0x8D,0xB7,0xF2,0xEC,0x4E,0x9E,0x9E,0x6C,0x4A,0x40,0xA4,
+0x05,0x52,0x69,0x64,0xEF,0xA5,0xB0,0xB2,0xF4,0xFF,0x7E,0x01,0x1E,0x4B,0xDE,0x43,
+0x87,0x1F,0x82,0xC6,0x3A,0xDA,0x0D,0xF6,0x99,0x8A,0xD5,0x36,0xED,0x91,0xB4,0x96,
+0xB5,0xE1,0x24,0xC8,0xD9,0x6B,0x69,0x6A,0x5A,0xBA,0xC1,0x9B,0xC6,0x5E,0x96,0x21,
+0xAF,0x72,0x50,0x8C,0x29,0xFF,0x3E,0xE4,0x47,0x05,0xE8,0x59,0x3C,0xED,0x00,0x79,
+0x68,0x65,0x1C,0xCF,0xA7,0x2D,0xF5,0x4D,0x7B,0x7D,0x74,0xB1,0x7B,0x60,0xAE,0xC5,
+0xFD,0x46,0xEA,0x81,0x9A,0x0E,0x87,0xDF,0xBD,0x43,0xA9,0x41,0xFD,0xD7,0x6F,0x27,
+0x9F,0x80,0x33,0x26,0x47,0x62,0x13,0x85,0x24,0xAE,0xD1,0x78,0x25,0xC2,0x27,0x45,
+0x5D,0xCA,0x71,0xAC,0xA8,0x0B,0x0C,0x3F,0x8B,0x99,0xF0,0x05,0x04,0x30,0x07,0xFD,
+0x8C,0x54,0x52,0x9D,0x39,0x24,0x8F,0xA2,0xDE,0xE8,0x90,0x60,0xCB,0x0F,0xA1,0xFE,
+0xB4,0x06,0x56,0x56,0xAC,0xC0,0x5E,0x07,0x3D,0x6D,0xAF,0x00,0x7E,0x2F,0x8A,0x33,
+0xD3,0x9D,0x81,0x38,0x00,0xCC,0xAF,0x08,0x76,0x14,0xDC,0x4C,0x34,0xF3,0x13,0x50,
+0xBE,0xAA,0xF4,0x93,0xEE,0x4A,0x14,0xC5,0x63,0xCC,0x94,0x2E,0x7F,0x58,0x65,0x97,
+0x83,0xA5,0xFE,0x91,0x12,0x06,0x38,0x6D,0xE0,0x55,0xA8,0x84,0xA1,0x56,0xF7,0x81,
+0xEB,0xCF,0x85,0xF3,0xB2,0xD2,0xB2,0x44,0x1E,0x6F,0xBE,0x26,0xF6,0x9D,0x82,0x8C,
+0x70,0xFA,0xAD,0x2F,0x64,0x53,0x8D,0x54,0xA3,0x4B,0xBA,0x68,0x57,0xC3,0xB9,0xA2,
+0x02,0x03,0xA2,0x09,0x92,0x1D,0xAE,0xC1,0xFA,0x21,0xEC,0x17,0x48,0xF7,0x44,0xEA,
+0x8E,0x58,0x97,0x39,0x17,0x22,0xCE,0x22,0x17,0x7A,0x41,0x61,0x49,0x80,0xAB,0x4E,
+0xE1,0x63,0x27,0x36,0x6A,0x9A,0xD0,0x51,0x7D,0xC4,0x87,0x07,0xF1,0xF1,0xB7,0x5C,
+0x6E,0xD3,0xA5,0x3C,0x8D,0xE0,0xE6,0xF5,0x59,0x0D,0xFB,0x70,0x02,0x2B,0xDD,0x89,
+0x86,0xF8,0xF0,0x58,0xE9,0x7F,0xC4,0xA9,0x84,0x35,0xFC,0xF4,0x59,0xC6,0x70,0xFF,
+0x04,0xB5,0x1B,0xFA,0xCF,0x6A,0xAC,0x37,0x57,0xD3,0x69,0x66,0x89,0xCD,0x2B,0xB4,
+0x31,0x1A,0x76,0x99,0x5B,0x61,0xD9,0xE5,0x55,0x16,0xCD,0x6A,0x51,0xD8,0x63,0xD6,
+0xE6,0x32,0xEC,0x5B,0xA6,0xC2,0x51,0x3A,0xF0,0x83,0x29,0xBB,0xC7,0x29,0x79,0x85,
+0x1A,0x9C,0x13,0xE9,0x3D,0xEF,0xDD,0x9A,0x00,0x67,0xAD,0x0F,0x2C,0xAB,0xDB,0xC8,
+0xCF,0xB8,0x4C,0x8F,0x5A,0x8E,0x7D,0x92,0x96,0x26,0xD9,0xC7,0x75,0x65,0x67,0x98,
+0xC4,0xF3,0x9C,0xD4,0xA0,0x18,0x25,0x21,0x77,0x66,0x42,0xAB,0xF7,0xEA,0x6D,0x28,
+0xDB,0x3D,0xE6,0x59,0x3B,0x35,0xA9,0x81,0x01,0x15,0x33,0xE8,0xE0,0xC0,0x83,0x49,
+0x0A,0xA3,0xC5,0x68,0x36,0x02,0x76,0xD0,0x7E,0x73,0xBD,0xEC,0x31,0xBC,0x37,0xA6,
+0x66,0x73,0xC2,0x5D,0x60,0x98,0xDF,0x6C,0xAE,0x22,0x12,0x95,0xFC,0xA0,0x80,0x83,
+0x90,0x71,0x9F,0x2A,0x0B,0x21,0x04,0x42,0x1B,0x61,0x77,0x7B,0xC8,0x5B,0x5F,0x7C,
+0xA1,0x64,0x8E,0x1E,0x45,0x73,0x35,0xA6,0xD6,0x8F,0xF1,0xC0,0xBE,0x62,0x0A,0xC9,
+0x13,0xDB,0x06,0x16,0xD0,0x97,0xE4,0x03,0x69,0x6E,0x51,0x82,0xE7,0xAC,0xB6,0x99,
+0x26,0x74,0x6B,0x75,0x01,0x23,0x0B,0x7F,0x1C,0xAA,0x1A,0x2A,0x2F,0xFF,0x25,0x4A,
+0x0B,0x44,0xB7,0xF6,0xA3,0xE6,0xA7,0x75,0x10,0xB1,0x2C,0x30,0x8B,0xEE,0x3A,0x92,
+0x28,0x62,0xB5,0xE7,0x9E,0xC5,0xD5,0xE7,0x3C,0x1F,0x31,0xE7,0x4A,0xD4,0x55,0xCC,
+0x71,0x1D,0xDF,0xB1,0xFA,0x5A,0xF7,0xBB,0x49,0xDB,0x7A,0x4F,0xB9,0x0E,0x3F,0x19,
+0x15,0x6D,0xBF,0xE5,0x0A,0xCE,0xA0,0x35,0xF8,0xE4,0x48,0x1B,0x58,0xB1,0x9F,0x5B,
+0xBF,0x4D,0x86,0x0D,0xD1,0x78,0x40,0x74,0x18,0xD6,0x4D,0x90,0x87,0xC8,0xE2,0xE9,
+0xA4,0x39,0x80,0xD7,0x2E,0xCA,0xEE,0x88,0x1D,0xD8,0x84,0xCD,0x18,0x50,0x04,0x37,
+0xCE,0x5F,0x3E,0x11,0x62,0x89,0xF9,0x4F,0x32,0xC1,0xA3,0xF1,0xB4,0x5F,0x08,0xC6,
+0x3E,0xEB,0xDA,0x95,0x3F,0xFE,0xFB,0xB9,0xB6,0x93,0xF2,0x0A,0x4F,0x9B,0x71,0x3A,
+0xFB,0xF0,0x53,0x72,0x1A,0x15,0x11,0x73,0x4C,0xD5,0xB3,0x12,0xB8,0x79,0xD0,0xBD,
+0xD2,0x7A,0xF3,0xA6,0xE2,0x92,0x6F,0xE3,0xFE,0x5D,0xBB,0xAD,0x63,0x38,0x66,0x5D,
+0xBA,0x10,0x88,0xC4,0xFB,0xB5,0x53,0xCC,0x34,0x78,0x50,0x47,0x07,0x64,0xF9,0x7F,
+0x45,0x55,0xC0,0x4C,0xD2,0x86,0xC2,0x20,0x19,0xA4,0xD3,0x77,0x42,0xCA,0x46,0xE5,
+0xAD,0x7E,0x95,0x28,0x7C,0x9B,0x15,0x0C,0xB0,0x2A,0x01,0xBC,0xCE,0x40,0x85,0x08,
+0x67,0x94,0xB0,0xC3,0xB6,0x19,0xE0,0x7C,0x12,0x74,0x88,0x3C,0xB3,0x33,0x3D,0x16,
+0x94,0xCB,0xE3,0x7D,0x79,0xBF,0xE3,0x43,0xC9,0xF5,0x7C,0x0E,0x5E,0xAA,0x45,0x2F,
+0xDD,0x8B,0x5F,0xAA,0x41,0xB8,0x67,0x9E,0xF9,0x96,0xD6,0xFC,0xC9,0x2C,0xB0,0xD8,
+0x3B,0xB6,0xD4,0x5C,0xBC,0x1B,0xEF,0x41,0x14,0xCD,0x7B,0x8A,0xF2,0xA5,0x49,0xDE,
+0x25,0x9F,0xDC,0x4F,0x54,0x47,0x20,0x97,0x95,0x91,0xE3,0x2C,0xBD,0x36,0xF4,0x4B,
+0xA6,0xF9,0xF2,0x30,0xFB,0x77,0x06,0xB3,0xE3,0x5C,0xAA,0x46,0x76,0xF4,0xCB,0xA8,
+0x57,0x82,0x0B,0xC3,0x00,0x88,0xD9,0x87,0x28,0x5B,0xFB,0x2B,0x0D,0xEE,0x75,0x71,
+0x8E,0x25,0x69,0x05,0x9F,0x07,0x52,0xD3,0x09,0xA9,0x43,0x0B,0x5E,0x26,0xA6,0xE2,
+0xB4,0x33,0x97,0xA7,0x08,0x28,0xB8,0xE0,0xEB,0x42,0x83,0x55,0xBE,0x14,0x2D,0xE7,
+0x05,0xD3,0x8F,0x38,0x8B,0x82,0x84,0x79,0x1A,0xBB,0x70,0x2E,0x64,0xE7,0xF8,0x8D,
+0x2E,0xF1,0x40,0x8F,0x48,0x2F,0x90,0x49,0xF9,0x27,0x14,0x9F,0x56,0x41,0x06,0x83,
+0xDD,0x9B,0x9A,0x5A,0x25,0x18,0x3B,0x3C,0x2C,0x63,0xA9,0xE0,0xD4,0xAA,0x4B,0x21,
+0xAF,0x05,0x9B,0xBD,0x3D,0x87,0xDB,0x8D,0x85,0x23,0xAE,0xC8,0x62,0x5E,0x4E,0x7E,
+0xC0,0x77,0x8D,0x34,0x4D,0x72,0x59,0x47,0xF1,0x39,0x3D,0x8C,0x49,0x3B,0xC8,0x0E,
+0xCB,0x9A,0xC7,0x9F,0x1A,0x1B,0x9D,0xF3,0xE8,0x16,0x01,0xAB,0x53,0x4F,0x5B,0x4A,
+0x00,0xF7,0xC0,0xCE,0xDC,0xEB,0x40,0xCD,0x3A,0x3E,0x6C,0xE1,0xD7,0x1D,0xA0,0x1B,
+0x53,0x49,0x33,0x91,0xCE,0xD8,0x65,0xDE,0x6A,0x99,0xB1,0xA1,0xA3,0xAB,0xEF,0xCE,
+0xB1,0x17,0xD8,0x51,0x2D,0xB8,0x5A,0x5B,0xCC,0xAB,0x4F,0xAF,0x38,0x83,0xDA,0x12,
+0x9F,0x11,0x58,0x10,0xF6,0x8A,0xAE,0xDA,0x68,0xBA,0x97,0xB0,0x04,0xFB,0x32,0x8E,
+0x1E,0xE5,0x83,0x22,0xFF,0xCD,0x51,0xCF,0x78,0xFC,0x26,0x6B,0xE8,0xD2,0xA3,0xBD,
+0x58,0xA4,0x79,0x3A,0xB0,0x3B,0x75,0xCA,0x22,0x66,0xF4,0x29,0x82,0x6C,0xC5,0x7B,
+0x94,0xFC,0x12,0xBB,0x72,0x71,0xFF,0x88,0xA7,0x85,0x94,0x16,0xA1,0x6E,0xE3,0x6A,
+0x35,0xC7,0x4C,0x95,0xCF,0x3F,0xFB,0xAC,0x71,0x95,0xAB,0x97,0x3A,0x46,0xD6,0xB6,
+0x62,0xB2,0x87,0x98,0x31,0x9D,0xED,0x96,0xD1,0xBC,0x21,0x43,0x52,0x3D,0xBC,0xD4,
+0xBC,0x20,0x89,0x8E,0xB2,0x37,0xD1,0x0F,0x2D,0x14,0x0D,0x0F,0x6F,0x37,0xB3,0xD6,
+0xC1,0x98,0xFA,0x90,0x88,0x69,0xBE,0xCE,0x4E,0x24,0xFF,0xA5,0xBF,0x66,0xCA,0x79,
+0x32,0xF2,0x20,0x45,0xAC,0x1E,0xC2,0x07,0xA9,0x80,0xC9,0xDF,0x30,0xE4,0x7A,0x73,
+0x8A,0xEE,0x51,0x57,0xC6,0x78,0x04,0xB9,0xD4,0xF3,0xD7,0x67,0x5F,0x54,0x41,0x7C,
+0x8B,0x01,0x26,0xF3,0x2B,0x0E,0xA9,0xE2,0x51,0x10,0xB7,0x58,0xD3,0x61,0x1A,0x4C,
+0xE6,0x62,0x13,0x5C,0xF5,0x61,0x94,0x6D,0x84,0x54,0x0A,0x27,0x4E,0xF0,0x99,0x63,
+0x3E,0x2A,0x06,0x3E,0x6C,0x58,0xEC,0x80,0x59,0x0E,0x9E,0x4B,0x2C,0x29,0x5F,0xC4,
+0xB8,0xEB,0xB1,0xDC,0xAA,0xA8,0x31,0xBE,0x64,0x9C,0xEC,0x68,0xB9,0xDF,0x7C,0x8A,
+0xFF,0x45,0x3C,0x60,0x96,0x40,0xAD,0xC6,0xEA,0x35,0x27,0xBA,0x7E,0x93,0x6B,0xC9,
+0xF7,0x56,0x22,0x49,0xA7,0x55,0x99,0xD7,0xC3,0xD9,0xB6,0x89,0x02,0x42,0x84,0x7D,
+0xBD,0xCF,0xFE,0x2A,0xEC,0x19,0xEA,0xAE,0x6F,0xD6,0x47,0x85,0x65,0x95,0x1F,0x13,
+0x08,0xE4,0xDE,0xE7,0x0F,0x79,0xD5,0x2B,0xFA,0x73,0x96,0x61,0x5D,0x91,0x4D,0xD8,
+0xC7,0x42,0xE1,0xE4,0x5A,0x1C,0xB5,0x5A,0x6B,0xEE,0x15,0x4E,0x8C,0xB2,0xD3,0xE9,
+0x7D,0x4F,0xB3,0xD0,0x07,0xD9,0xB4,0x4C,0x86,0x77,0x2C,0x36,0x70,0x4D,0x7D,0x5B,
+0x0B,0x1A,0x8A,0x65,0xCA,0x62,0x32,0xA2,0xC8,0x93,0x1D,0x64,0x41,0x5C,0x68,0x6F,
+0x3F,0xC5,0x71,0x9A,0x7F,0x8C,0x57,0xE1,0xA3,0xBD,0xC6,0xDD,0xB7,0x01,0x6A,0x18,
+0xF2,0x72,0x6D,0xBF,0xAF,0xF5,0xF8,0xB0,0xF5,0x01,0x6F,0x47,0xDB,0x06,0xBA,0x2D,
+0x89,0x10,0x05,0xD5,0xED,0xFE,0x74,0xDC,0x5D,0x36,0xCC,0x80,0xF9,0x76,0x7B,0xA2,
+0x48,0x7F,0x3F,0x8B,0xC1,0x29,0x69,0x72,0x60,0xA4,0xBE,0xA3,0xDA,0x74,0x5D,0xB3,
+0xEC,0x60,0x2E,0x53,0xCD,0x33,0x5F,0x69,0xC2,0xAE,0x12,0x66,0xF7,0xA8,0x6D,0x30,
+0x24,0xF3,0x7D,0x80,0xB8,0x9B,0x14,0xAD,0x13,0xD2,0xFD,0xD2,0xC2,0xC5,0xC2,0x53,
+0x04,0x3C,0xF8,0x9C,0x21,0xA2,0x6C,0x40,0x65,0xEB,0x48,0x87,0x37,0x2F,0x2B,0x1E,
+0x92,0x26,0x09,0xCF,0x84,0x73,0x88,0xD5,0x98,0x34,0xC0,0x24,0xE0,0xB5,0x03,0xDC,
+0x4A,0x6E,0x1C,0xAD,0x86,0x7F,0x2C,0x10,0x0C,0xE6,0xB5,0x2F,0xD5,0xD8,0xAC,0xBF,
+0x9A,0x35,0x17,0xE6,0x55,0xED,0xB9,0xF6,0x2A,0x78,0xDD,0x3A,0x57,0x33,0xE1,0x1D,
+0x23,0xC6,0x11,0x50,0xD0,0xF1,0x76,0xD6,0xF8,0x50,0xB0,0x70,0x0A,0x25,0x24,0x1C,
+0x34,0x28,0x3B,0x31,0xA6,0xB2,0x07,0xA5,0x63,0xF0,0x3C,0x5D,0x15,0x5F,0xEA,0x91,
+0xB6,0x22,0xB4,0x81,0x47,0xDE,0x9C,0xE5,0x99,0x43,0x64,0xCB,0x1E,0x8F,0xA1,0xCA,
+0xEF,0x9E,0x7A,0xD1,0xD1,0x16,0xE8,0xA4,0xFE,0x4B,0xC4,0xAA,0xCB,0xD0,0x85,0xAC,
+0x70,0x78,0xE2,0x0F,0xC3,0x25,0xCD,0xB7,0x75,0xAD,0xF9,0x5C,0xB6,0x73,0x8D,0x86,
+0x0D,0xC0,0x91,0x11,0x61,0xA5,0x44,0xE9,0xBF,0xDD,0x0C,0xDE,0x7C,0x56,0x67,0x6D,
+0x81,0x03,0x1B,0xFC,0xC8,0x6E,0x96,0x67,0x11,0xF1,0xDB,0xC3,0x94,0x03,0x4C,0x09,
+0xC4,0xBC,0xB5,0x66,0xE5,0x5E,0x15,0xBB,0x38,0x1D,0x4A,0xF0,0x6B,0x4B,0x09,0x81,
+0x7E,0xB1,0xE7,0x52,0x44,0x35,0xA6,0x52,0x97,0x46,0x39,0x02,0xF4,0x1F,0x86,0x0A,
+0x31,0x0C,0x74,0xC7,0xC5,0x93,0x3E,0x0E,0x7F,0x90,0xF6,0x5E,0xEA,0x17,0xAF,0x19,
+0x0A,0xF5,0xFD,0xC1,0x28,0xE5,0x93,0x55,0x82,0x4F,0x7E,0xFD,0x0C,0x9C,0x92,0xEF,
+0x9D,0x00,0x7B,0x36,0x18,0x17,0x39,0x36,0xBA,0x92,0xFA,0xFA,0x45,0x20,0xD2,0x38,
+0xDB,0x41,0x81,0x2E,0xCC,0xD4,0xC1,0x1B,0xED,0x59,0xF7,0x8F,0x75,0x43,0x20,0x92,
+0x44,0xA7,0x19,0xF0,0xC9,0x89,0x08,0x15,0x12,0xA5,0x59,0x3D,0x6E,0x45,0x54,0x48,
+0x9B,0xDA,0x60,0x42,0x29,0x02,0x0D,0x27,0xC9,0xE4,0xB9,0x8B,0xC4,0x7C,0x74,0xA0,
+0x7A,0x7A,0xDF,0x00,0x98,0x56,0x3F,0x18,0x39,0x6A,0xEE,0x1F,0xA0,0x1C,0x04,0xF4,
+0xA0,0x23,0xE9,0x44,0x2F,0xB4,0xFE,0x9E,0x21,0x32,0x76,0xD7,0x03,0x30,0x63,0xE3,
+0x7B,0x95,0xA8,0xA4,0x9D,0x0B,0xF6,0x16,0xD9,0xA2,0x08,0x50,0x2A,0x90,0xE9,0x37,
+0x8C,0x34,0x4A,0x23,0x67,0x13,0xB7,0x50,0xFC,0x68,0xE2,0xBB,0xEF,0x19,0xF2,0xD0,
+0x77,0x4D,0x8E,0xDF,0xE3,0xE8,0xE6,0x02,0xA1,0x9E,0xE0,0xCC,0x1F,0xFD,0x46,0x54,
+0xC5,0xC3,0x01,0x1D,0x82,0xB7,0xFF,0x5C,0x2F,0xF4,0xF4,0x8E,0x5B,0x18,0x89,0xAF,
+0xE1,0xC7,0xBC,0x53,0xDC,0x99,0xC4,0xFD,0x07,0x6F,0xC1,0x52,0x4B,0xCE,0xB6,0x2E,
+0x66,0xE9,0x7C,0x15,0x47,0xAC,0x18,0xD5,0x5E,0xA1,0x91,0xEE,0xDA,0x44,0x2F,0x37,
+0xFF,0xD5,0xFF,0xBF,0x49,0xBA,0x8A,0x0B,0x54,0x9C,0x9E,0xEC,0x72,0xB8,0x03,0x7B,
+0x6E,0xFA,0x62,0x3C,0xEE,0x67,0xCA,0x5B,0x8D,0xFE,0x58,0x4B,0x4E,0xC0,0xEB,0xE7,
+0xA7,0x86,0x46,0x4B,0x34,0xB2,0xA0,0xA8,0x0F,0x71,0xE8,0x41,0xEA,0x27,0xDD,0x9D,
+0x8B,0x91,0xE5,0x2C,0xE8,0xD1,0x39,0xE2,0x08,0x1D,0x38,0x74,0xDE,0x38,0x95,0x60,
+0xD0,0x3C,0x08,0x5A,0x9F,0x75,0xD6,0xE3,0x3D,0x91,0x63,0x44,0x3D,0xBD,0xF5,0x5F,
+0xE9,0xD4,0xA2,0x7A,0xC8,0x1C,0x12,0x57,0x40,0xE2,0x7D,0xFC,0xC0,0x30,0xBC,0x73,
+0x04,0xAC,0x3B,0x43,0xDD,0x7E,0x5A,0x8F,0x99,0x80,0xBB,0x5B,0x9A,0xED,0x28,0x1F,
+0xAF,0x95,0x58,0x62,0xF2,0x42,0x7D,0x96,0xFA,0xB0,0x49,0xF1,0xFB,0x83,0x05,0x82,
+0xD7,0x09,0x64,0x8A,0x7F,0xFE,0xD3,0xD1,0xB6,0x77,0x5E,0xB2,0x52,0x0D,0xCE,0x50,
+0xC7,0xD2,0x22,0x3B,0x30,0x08,0xF7,0xD4,0xFC,0xAB,0x3D,0x2B,0x18,0x06,0x65,0xBD,
+0xBE,0xA1,0x69,0x77,0xEC,0x6B,0x6E,0x9E,0x2B,0xCC,0xA6,0x45,0x17,0xAA,0x94,0xB1,
+0x33,0x8D,0x94,0x3E,0x2F,0xC6,0x7A,0xAE,0xDB,0x42,0xF1,0xD1,0x20,0x02,0x37,0x76,
+0x42,0xED,0xC1,0x5B,0x10,0xC5,0xDC,0x61,0xF8,0x93,0x6F,0xE0,0xBD,0x93,0xB4,0x59,
+0xEE,0xE1,0xCE,0xAA,0xC5,0xE1,0xBA,0x3E,0x87,0xC3,0x57,0x49,0x95,0x41,0xD9,0x13,
+0xDA,0x3E,0x35,0x55,0x3C,0x12,0xC1,0xCF,0x9D,0xB8,0xE9,0x90,0x92,0x8A,0x88,0x7E,
+0x89,0x80,0xC6,0x0A,0x59,0x85,0x0B,0xDD,0x7D,0x70,0x0F,0xDF,0x8C,0x82,0xA1,0x6D,
+0xBA,0x6A,0x51,0x25,0xA7,0x27,0x1D,0xE7,0x4F,0x90,0x84,0xDA,0x67,0x60,0x61,0x33,
+0x20,0xA8,0x86,0x0D,0x8E,0xAD,0xC9,0x47,0x28,0x98,0x24,0xBB,0xE9,0x90,0x36,0xA7,
+0x10,0xBC,0x45,0xA0,0x41,0x1A,0xEB,0x6C,0x8E,0xAA,0xDA,0xB5,0x75,0x73,0x52,0x16,
+0xE4,0xE3,0xF3,0xA5,0x55,0x9F,0x3D,0xC6,0x37,0xAC,0x6C,0x46,0xED,0xEC,0x8C,0xF0,
+0x55,0x03,0xEB,0x3A,0x54,0x78,0xA3,0xB4,0xC3,0x1A,0x69,0x19,0xAD,0x45,0x8B,0xD8,
+0x9A,0xA5,0xD4,0x39,0x09,0xBD,0xA2,0xA2,0x26,0x9D,0x79,0x72,0xD8,0x81,0x23,0x93,
+0x2E,0x61,0x83,0x50,0x43,0x16,0x4F,0xA9,0x52,0x87,0xEA,0x36,0xF7,0x98,0x1F,0xB4,
+0xB7,0x5D,0x00,0xFA,0xFD,0xB3,0x71,0x3A,0xC2,0x6D,0xCD,0xF6,0x57,0x03,0x93,0x99,
+0xA4,0x78,0x12,0xC9,0x0E,0xEC,0xCF,0x69,0x74,0x19,0x82,0x23,0xF0,0x53,0x4E,0xD9,
+0xB3,0x96,0x38,0xA8,0x96,0x32,0x29,0xF6,0x92,0xCA,0x10,0xB6,0x74,0x01,0xB5,0x88,
+0x32,0x62,0xE3,0x9A,0x16,0x73,0x2F,0xD8,0xEA,0xF6,0xF8,0x2A,0x65,0xA5,0x6D,0x97,
+0xA3,0x4D,0x7E,0x19,0xB7,0x18,0x9C,0x31,0x05,0x4C,0xE7,0x43,0xA8,0x4B,0xD6,0x11,
+0xA6,0x69,0x31,0xEF,0x4D,0x00,0xDD,0x77,0xBB,0x26,0x81,0x85,0x32,0x11,0x04,0x53,
+0x80,0x7C,0xAF,0x87,0x5F,0x33,0xF8,0x64,0x3F,0xB2,0x45,0x55,0x13,0xD6,0x2E,0xE6,
+0xDE,0xF5,0x0D,0x07,0x2C,0x2D,0x40,0x19,0x1A,0x78,0xAF,0xBE,0x63,0x1C,0xDB,0x64,
+0xD2,0x2D,0x2B,0x7C,0x7B,0x44,0x84,0xAD,0x22,0xA5,0x2B,0xB9,0xD3,0x51,0x68,0xC8,
+0x0E,0xAE,0x06,0x4C,0xD5,0xDE,0x3B,0xE8,0x6A,0x5A,0x6E,0x31,0x3F,0x78,0xF9,0xFB,
+0x67,0x06,0x0B,0xB1,0xBA,0xE5,0x34,0x58,0x7E,0x24,0x8D,0x21,0x5E,0x16,0xD4,0x66,
+0x3B,0x9E,0x8A,0x17,0x29,0x70,0x89,0x17,0x76,0x3A,0xA4,0x32,0x88,0xFE,0x1B,0x3A,
+0x5F,0x01,0xD6,0x35,0xB5,0x14,0x38,0xF4,0x49,0x8B,0xF0,0x00,0x5C,0xD3,0xD8,0xC2,
+0x3C,0xAB,0xE6,0xC7,0x33,0xE3,0xCD,0x63,0xF5,0xC2,0xB0,0xD7,0x81,0xEB,0x5C,0xC5,
+0x7C,0x30,0x07,0xAB,0xD7,0xD2,0x9F,0x2D,0x2C,0xA0,0x76,0x70,0x6B,0x7B,0x7B,0x05,
+0x72,0xF9,0x02,0xF6,0x4F,0x0C,0x79,0xB2,0x2A,0xBB,0x02,0xAA,0x97,0x84,0xD5,0xB7,
+0x71,0x07,0x56,0x74,0x11,0x22,0x42,0x13,0x75,0x6E,0x26,0xCC,0xA4,0x50,0xCC,0x27,
+0x4E,0x35,0xE7,0x20,0xAE,0x60,0xE2,0xF2,0x15,0x0A,0x56,0x98,0x2A,0xA0,0x9B,0xB3,
+0x7F,0xCE,0x53,0x29,0x66,0x86,0xAD,0x12,0xF9,0xE4,0xCB,0x0F,0x6C,0xB0,0x2A,0x68,
+0xF7,0xC6,0xE1,0x96,0x27,0x66,0x1B,0xC9,0x59,0xCD,0x41,0xDB,0xFC,0x48,0x54,0xEF,
+0x6B,0xDE,0x2D,0xCA,0x40,0xFD,0x75,0x1E,0x94,0xD1,0x64,0x6C,0x50,0xC8,0xC2,0xF4,
+0x39,0x8F,0xA9,0x31,0x84,0x01,0x0C,0xE5,0x70,0x21,0xD0,0xE8,0xA6,0x95,0xC0,0x83,
+0xCB,0x0A,0x04,0x40,0x44,0x47,0x22,0x62,0x35,0x8F,0x4A,0x57,0x5D,0xA1,0x3F,0x5C,
+0x25,0x8C,0xC9,0xFB,0x7D,0xF2,0x77,0x14,0x24,0xBE,0x5F,0x63,0xB9,0xEF,0x0E,0x0E,
+0xD9,0xC0,0x61,0xD7,0xA3,0x9D,0x4A,0x9B,0x6F,0x15,0x98,0x15,0xCF,0x9C,0x4D,0x7F,
+0x88,0x6F,0xB1,0xAE,0xBF,0xB8,0xFD,0x56,0x68,0x79,0x48,0x20,0x73,0xCA,0xE4,0xE5,
+0x1B,0x51,0x0F,0x0B,0xF1,0xA9,0x47,0x21,0x1D,0x14,0x7F,0x8B,0x6A,0x09,0x9C,0x9B,
+0xB5,0x4C,0x23,0xDC,0xCB,0xF7,0x28,0xE0,0x1F,0x37,0x59,0x9A,0xF8,0x34,0xEE,0xB8,
+0xC4,0x2C,0x76,0xB9,0xB3,0xA2,0xCB,0x4D,0xAC,0x0C,0xE0,0x6B,0x1C,0x7A,0xDF,0xEA,
+0x00,0x67,0x03,0x11,0xE0,0x71,0x58,0x85,0xC1,0x39,0x4F,0x08,0x60,0xAB,0x30,0x5E,
+0xBC,0xB0,0x4A,0x51,0xC7,0xED,0x1E,0xFB,0xDC,0x2E,0x21,0xE4,0xFA,0xF1,0xE2,0x1C,
+0x29,0x54,0xEF,0x80,0x36,0xBE,0x04,0x6D,0x46,0xF9,0x09,0x26,0x25,0x0C,0x6A,0xBF,
+0x9F,0x81,0x9B,0xCF,0xD9,0xC4,0x0D,0xF3,0x5A,0x99,0xC3,0x25,0xB6,0x43,0xFF,0x02,
+0x79,0x14,0x48,0x5D,0xD2,0x8F,0x56,0x23,0xB1,0x1B,0x8E,0x87,0x28,0x65,0x97,0x17,
+0xCC,0x3F,0x68,0x90,0xF5,0x13,0x10,0x5D,0x36,0xDB,0xC8,0xA9,0x3E,0x0A,0x1E,0x65,
+0xBF,0x4E,0x1E,0xD3,0xDF,0x72,0xFE,0x4A,0x4C,0xC4,0x06,0x24,0x9E,0x91,0x92,0x48,
+0xCD,0xD0,0x1F,0x34,0xB4,0xF3,0xA6,0x86,0xB9,0x05,0xA7,0x94,0x85,0x97,0xE6,0x92,
+0x8C,0xA4,0x89,0xFC,0x7A,0xA3,0x1A,0xDF,0xE6,0xD0,0x83,0xF2,0x8D,0xF0,0x46,0xF3,
+0x3F,0xBB,0xFB,0x9B,0xD3,0x47,0x8E,0xA4,0x08,0x53,0x5C,0x18,0x5C,0x7A,0x7A,0xE1,
+0xB0,0x0B,0x79,0x91,0x34,0x3D,0xB8,0x00,0x2C,0x9A,0x20,0x6F,0xAF,0xA0,0x10,0x34,
+0xDF,0x30,0xC9,0x9E,0x49,0x85,0xA6,0x73,0x46,0x24,0xE6,0x09,0x17,0xD1,0x0C,0x26,
+0x53,0x6B,0xFC,0xAE,0xCC,0xBA,0xC6,0x90,0xAB,0x7F,0x4B,0x7F,0x16,0xA6,0xE3,0x82,
+0x21,0x92,0xF3,0x88,0x3A,0xF4,0xE5,0x05,0xF2,0x15,0x1D,0x00,0x09,0x92,0x1E,0xCA,
+0xBA,0xA7,0xDB,0x54,0xEC,0x75,0xDA,0x15,0x4F,0x31,0x19,0x4E,0xA8,0xCC,0x25,0xE4,
+0xD2,0xCD,0xA0,0x36,0x4C,0xA1,0x50,0x3C,0xB1,0x0B,0x0F,0xEC,0xFF,0x07,0x50,0xE9,
+0xEF,0xC2,0xAA,0x34,0xB0,0xED,0x7C,0x94,0x32,0x92,0x33,0x46,0x21,0x09,0xC2,0xFF,
+0x82,0xF5,0xDF,0x9F,0x5E,0x6B,0xC7,0x59,0x27,0x4A,0x7B,0x24,0x6A,0xA2,0xB4,0x38,
+0xE5,0x6E,0x08,0xF1,0xF2,0x67,0x36,0x56,0x6C,0x33,0x08,0x68,0x20,0x7E,0x2D,0x5B,
+0xDD,0x3C,0x0C,0x3A,0x67,0x83,0xE7,0xF3,0x8F,0xB6,0x37,0x08,0x95,0x5E,0x06,0x96,
+0x0C,0xA2,0x2F,0x0B,0xF6,0xAC,0x64,0x6E,0xDA,0xC7,0x57,0x6D,0x5A,0x61,0xA0,0x95,
+0xCE,0xE8,0x6D,0x81,0x19,0xC5,0x7B,0xD4,0x75,0xF0,0x76,0x10,0x7B,0x93,0x80,0x2D,
+0xAC,0x2E,0xB4,0x26,0xC4,0xA9,0xEF,0x8E,0xEC,0x1D,0x0E,0x29,0xA3,0x86,0xC8,0x4F,
+0x39,0x0D,0x42,0x68,0xF9,0x8A,0x9D,0x1C,0x2A,0x23,0xD3,0xD9,0x25,0x31,0x09,0xAD,
+0xFE,0x1A,0x0E,0x2B,0x77,0x58,0x56,0xB5,0x16,0x5B,0x4F,0x31,0x62,0xBC,0xA7,0x11,
+0xE4,0x89,0x7A,0x6F,0x87,0xCC,0x01,0x3B,0x0B,0xE4,0x66,0xF3,0x98,0x0F,0x31,0x49,
+0xD6,0x77,0xDC,0x61,0x64,0x7D,0x65,0xA7,0xC8,0xD4,0x72,0x5E,0xB3,0xC0,0x13,0xFE,
+0x54,0x3A,0x37,0xC3,0xB1,0x02,0xD8,0xE3,0xA5,0xA1,0xD9,0x69,0x40,0x1A,0x79,0x2B,
+0xE2,0x3F,0xC3,0x9C,0x18,0x2A,0xDF,0xA3,0xBD,0x10,0x39,0xF6,0x32,0x1B,0xE7,0xCC,
+0xF6,0xBA,0x69,0x4A,0x7E,0xA4,0xDB,0xDC,0x7B,0x2E,0xE4,0x06,0x3B,0x72,0x1B,0x41,
+0x8D,0x04,0x73,0x93,0xB5,0xC9,0x8A,0xDB,0x80,0x1A,0x3B,0xF9,0xCA,0x8B,0x60,0xB2,
+0xDE,0xD7,0xBB,0x00,0x94,0xE9,0x32,0x29,0x1F,0x4E,0xB0,0x76,0x13,0xE9,0xC7,0x74,
+0x3E,0x5C,0x89,0x05,0x76,0xB7,0xF2,0xC2,0x88,0x7D,0x5A,0x59,0x29,0x17,0xD1,0xD6,
+0xB8,0xAB,0x1E,0xF0,0x51,0x4D,0x3E,0x2B,0xAD,0xC6,0xB8,0xC9,0x2C,0x58,0xF5,0x20,
+0x84,0x43,0x66,0x6C,0xF5,0x52,0xE6,0x3A,0x76,0x47,0x4C,0xFB,0x02,0xD8,0xF3,0x61,
+0x68,0xD2,0x4F,0x5F,0xE5,0x89,0x57,0x7C,0x7F,0x52,0xB3,0xBC,0x83,0x03,0x07,0x53,
+0x02,0xB4,0xF1,0x99,0xBF,0xCB,0x85,0xE6,0x30,0x57,0x97,0x4A,0xC5,0xF9,0x46,0x4B,
+0xC9,0xB9,0xA6,0xEC,0x6C,0x6E,0x4C,0xB9,0xCD,0xDA,0xBB,0x03,0x5D,0x0D,0x95,0x45,
+0xD3,0x2A,0xD2,0xA8,0x75,0x49,0x70,0x96,0x9A,0x6E,0x7F,0x6A,0x56,0x47,0x78,0xEE,
+0x57,0xD1,0x80,0xF9,0xA7,0x03,0x1D,0xBE,0x5C,0x50,0xA2,0x9A,0x9D,0x40,0x15,0xBF,
+0x23,0x9E,0x36,0x2C,0xF7,0x43,0xC0,0x19,0x4E,0x43,0x87,0xA9,0xCE,0xB3,0xAB,0xE0,
+0x74,0xF7,0x82,0xE8,0x0A,0xE0,0x48,0xC6,0xC4,0xCF,0x44,0x44,0xE3,0x67,0x53,0x23,
+0x6A,0xDE,0x8A,0xFB,0xE2,0xBC,0x87,0x10,0x45,0x93,0xDC,0xE2,0xAC,0xF4,0xEE,0xB6,
+0x8C,0xE3,0x01,0x0D,0x1F,0x1F,0x0F,0xCF,0xA8,0xC8,0x71,0x94,0x97,0x7D,0x17,0xB0,
+0xC5,0xA3,0xBD,0xDA,0x27,0x18,0x8B,0x12,0x98,0xAB,0xDB,0x66,0x00,0xFB,0xE2,0x47,
+0x36,0xFC,0xEE,0x64,0xE8,0xBE,0x88,0x2D,0x43,0x2A,0x2F,0x54,0xED,0x62,0x9A,0x7E,
+0xFC,0x16,0xCB,0x8F,0x22,0x3C,0x7D,0x5D,0xE1,0x74,0xA6,0xD4,0x90,0x11,0x22,0x60,
+0x14,0x3D,0x9E,0xEB,0x8C,0x21,0xAA,0x71,0x48,0xFA,0x74,0x1F,0x1C,0x9B,0xE1,0x8D,
+0xEB,0x78,0xD6,0x63,0xA5,0x12,0x3B,0x9D,0x65,0x26,0xF7,0x2F,0x59,0x35,0x5E,0x17,
+0x83,0x12,0xAD,0x01,0xBC,0x35,0x07,0xB2,0xAF,0x03,0x1C,0xC5,0x3D,0x69,0xC1,0x35,
+0xAA,0x98,0x0D,0xD5,0x44,0xB2,0x79,0x22,0x1D,0x8B,0x14,0x7A,0xE6,0x28,0x77,0xD5,
+0x6F,0x83,0x84,0x32,0x61,0x59,0x93,0xE8,0xE7,0xCD,0x55,0x62,0x11,0xCA,0xD6,0x52,
+0x9F,0x37,0x60,0xB6,0x3C,0x2E,0x91,0x1E,0x63,0x9F,0x04,0x99,0xEA,0x0E,0xAF,0xAE,
+0xF5,0x51,0xDE,0x70,0x70,0x6D,0x86,0xD9,0x4C,0x86,0x23,0xA5,0x46,0x01,0xA3,0x5F,
+0xEE,0x25,0xD8,0xAA,0x8F,0xDF,0x28,0x25,0x49,0x88,0xEA,0xF8,0xD9,0x99,0x45,0x81,
+0x44,0x05,0xE1,0x42,0x54,0x69,0xC8,0x64,0xA9,0xBA,0xEF,0x73,0x06,0xE0,0x38,0x33,
+0x20,0x75,0x81,0x16,0xA4,0xFD,0x9F,0xEA,0x18,0x85,0xDD,0x27,0xE7,0x5F,0x98,0x71,
+0x79,0x0A,0xEB,0x40,0xC0,0x62,0xBD,0xB6,0x6D,0x41,0x96,0x8F,0x14,0x85,0xF2,0xA4,
+0x5A,0x2C,0xE9,0x51,0xFD,0x41,0xCF,0x24,0x41,0xEF,0x8B,0x58,0xD5,0xBF,0x9D,0xFA,
+0x77,0x1C,0x35,0xD2,0x5F,0x84,0x63,0x2E,0x4D,0xF4,0xBD,0x42,0x71,0xAE,0x82,0x22,
+0x42,0xB3,0x58,0xB1,0x8E,0x30,0x8C,0x52,0x38,0x30,0xF6,0xEA,0xB9,0xFD,0x11,0xF1,
+0xF0,0x0C,0xD0,0xB9,0x1B,0xD4,0x5D,0xF7,0x87,0xD1,0x56,0xA8,0xE0,0x33,0xAD,0xA1,
+0xC1,0x19,0xC1,0x8D,0x55,0x86,0x6C,0x13,0x4A,0x3F,0xD0,0x13,0x96,0x0A,0xF8,0x14,
+0x37,0x1B,0x9C,0xFA,0x3E,0x3F,0xB7,0x3D,0xFF,0x7C,0xB5,0xFD,0xA2,0xF1,0x27,0xEB,
+0x5B,0xCB,0x9B,0xCF,0x68,0xA5,0x1E,0x81,0x2F,0x2D,0x1A,0x84,0x6F,0xED,0x90,0xCE,
+0x8A,0x55,0xB8,0xFE,0x65,0x92,0xC1,0xD0,0x50,0x4B,0x94,0x80,0xBE,0x91,0x24,0x21,
+0x95,0x9B,0xC2,0x73,0xFE,0xBF,0x4D,0x70,0x26,0x38,0xE5,0xC3,0xA9,0xBB,0xCA,0x40,
+0x9E,0xD0,0x12,0x28,0x04,0x29,0x15,0xC3,0xC7,0x78,0x7E,0xAF,0x2B,0x34,0xC0,0xF0,
+0x4B,0xF4,0x4D,0x4E,0x63,0x48,0xB5,0xCB,0x51,0x39,0x0A,0x67,0x72,0xFA,0x7C,0xA0,
+0xB7,0x5A,0xB2,0xFC,0xF8,0x65,0x39,0x6B,0xA1,0xDD,0x8E,0xD3,0x99,0x78,0xDE,0xED,
+0x60,0x72,0x28,0x3E,0x05,0xC6,0xB1,0xB4,0x04,0x48,0x6A,0x02,0x0F,0x89,0xC4,0xBE,
+0x55,0xDD,0x45,0x5D,0x91,0xCD,0xC4,0x66,0x06,0x8D,0xCE,0x0E,0xD7,0x9C,0x8C,0xDC,
+0xD7,0x90,0xAE,0xFF,0xB7,0xD8,0xAC,0xF8,0xD5,0x6B,0x5B,0x9C,0x07,0x97,0xD7,0x97,
+0xBA,0xA6,0xE4,0x7F,0xDB,0xA9,0xB6,0x3B,0xFD,0xBD,0x17,0xDC,0xA6,0x1A,0x9E,0x19,
+0xD9,0x93,0x4B,0x12,0x34,0x78,0xCA,0x8F,0xB6,0x15,0xD3,0xA9,0x75,0x89,0x56,0x4A,
+0x5A,0xBE,0x7B,0xCE,0x98,0xDA,0xC0,0x4A,0x80,0x0F,0xC8,0xA5,0xAD,0x96,0xF2,0x5B,
+0x4B,0x9D,0x5D,0xCC,0xEA,0xE7,0x52,0x69,0x9D,0xD8,0x66,0x89,0xF3,0xF9,0x33,0x61,
+0xC4,0xBF,0x9C,0xBC,0x49,0x4F,0x65,0xAE,0x11,0xD3,0x0A,0xCB,0x99,0x9B,0x48,0x09,
+0xF1,0xD3,0x4C,0xBB,0xE0,0x19,0xD9,0x34,0xBE,0xAA,0x5B,0x1B,0xBC,0x2C,0x85,0x15,
+0x86,0x25,0x4E,0xE6,0x3B,0x72,0xF7,0x8D,0xDB,0x44,0x18,0xAE,0x43,0xF3,0xB1,0xEE,
+0xB2,0x14,0x5B,0xF7,0x0A,0x3C,0x13,0xDF,0x5D,0xFF,0xF6,0x63,0xF6,0xA6,0xC7,0xD7,
+0x45,0xAF,0xA3,0x6A,0xE2,0x44,0x2F,0x43,0x01,0x30,0x1E,0xB5,0xF7,0x77,0x55,0x1E,
+0x23,0x7A,0x87,0x35,0x42,0x23,0x27,0x22,0x75,0xF8,0x5F,0x23,0xA7,0xCB,0x0C,0xD0,
+0x78,0x71,0xCC,0xE5,0x1A,0xD9,0x94,0xB4,0xEE,0x94,0x1F,0xC2,0x17,0xC1,0x8E,0x5F,
+0xF5,0x6E,0x02,0x9F,0x96,0x42,0x34,0x99,0x9F,0xD7,0x6C,0xB4,0x76,0x2F,0x99,0x75,
+0xF4,0x33,0xC7,0x89,0xFB,0x90,0x1C,0xD3,0x50,0xCB,0x4C,0x31,0xC0,0xDC,0x20,0x73,
+0x56,0xB1,0x8A,0x62,0x93,0xB6,0x82,0xC6,0xC5,0x59,0xAA,0xE2,0x8B,0x87,0xF0,0x78,
+0x35,0x84,0x25,0x0F,0xE6,0x22,0x50,0xCD,0x61,0x55,0x6F,0xE0,0xE9,0xCF,0x28,0x6D,
+0xF7,0x53,0x0D,0x95,0x6E,0xDF,0x8F,0x6E,0x85,0x84,0xFA,0x45,0xBA,0xD5,0xBE,0x9C,
+0xD1,0x21,0xF4,0x9A,0xDC,0x00,0xF6,0x13,0xD0,0x31,0x8C,0x7C,0x10,0xE9,0x27,0x1F,
+0x06,0x68,0xB4,0x26,0x58,0x38,0x2B,0x14,0x7A,0xC3,0xEF,0x4C,0xE7,0x1C,0xB0,0x99,
+0xF0,0x8E,0x89,0xAD,0xD0,0xC5,0xF4,0xB7,0xD7,0xB5,0xB4,0xA1,0xE1,0xE5,0x8B,0x10,
+0xE3,0x90,0xA0,0xA5,0x1F,0x2D,0x22,0xEB,0x4F,0x13,0xE8,0x20,0x74,0x58,0xC4,0x83,
+0x68,0x0F,0x2F,0xF1,0x6C,0x82,0x79,0x19,0xFC,0x78,0x01,0x81,0x40,0x55,0x7E,0xD1,
+0xE0,0xF0,0x6A,0xB9,0xFD,0xAB,0x95,0x2A,0x7F,0x48,0xDD,0xAC,0xDA,0xEA,0x3B,0x7F,
+0x84,0x18,0x41,0xEC,0x2A,0x05,0xB9,0x37,0xAD,0x83,0x53,0x05,0x37,0x29,0xB7,0xF5,
+0x6F,0xD2,0xAB,0xC9,0xDF,0xCF,0xC9,0xB5,0x24,0x03,0x0D,0xA7,0x29,0x91,0xCA,0x86,
+0xBD,0x7B,0x60,0x47,0xC6,0x1B,0xFA,0x25,0x0F,0xCE,0xB8,0x87,0xF9,0xA4,0xCD,0xEA,
+0x39,0x8B,0xD4,0xA3,0xC4,0x46,0x0C,0x52,0x5E,0x35,0xEA,0x03,0x05,0xDD,0x36,0x2E,
+0xDE,0x4E,0xCF,0x2A,0x2E,0x63,0xC6,0xB9,0x1F,0x2D,0xAC,0xF9,0x82,0x7C,0xC1,0xCC,
+0x0A,0x67,0x45,0x8A,0x50,0x9B,0x56,0x3E,0x17,0x92,0x24,0x4B,0x62,0xCA,0x1A,0x8D,
+0x1D,0xC4,0x22,0xA6,0xC8,0x83,0x0E,0xF6,0xD6,0x70,0xA2,0xFC,0x26,0x93,0xC0,0xBB,
+0x49,0xA0,0x52,0xC6,0x9F,0x73,0x80,0x62,0xE4,0x24,0x9D,0x4D,0x64,0x33,0x21,0x04,
+0xA1,0x0A,0x72,0xFF,0x7F,0xA8,0xC1,0xD4,0xE1,0xAF,0xAF,0xAD,0xD6,0x4E,0xFE,0x7D,
+0x7B,0x11,0x06,0xF9,0xD1,0x57,0x3D,0x66,0x28,0xF2,0xA1,0xA8,0x08,0xA8,0x61,0xE5,
+0x97,0x06,0x68,0xE4,0x88,0x3F,0x47,0x21,0x32,0xA1,0x37,0x59,0x9B,0xEC,0x15,0xFF,
+0xC8,0xB0,0x6D,0x10,0x8F,0x96,0x07,0x09,0xD2,0x3E,0x86,0x41,0x7C,0x72,0x67,0xFE,
+0x6A,0x32,0x20,0xFB,0x32,0x43,0x43,0x76,0x79,0x09,0xF3,0x2C,0xA9,0x18,0x94,0x24,
+0x64,0x00,0xDE,0x5D,0x56,0xA0,0xDF,0xC7,0x6D,0xA4,0xC3,0xEF,0x1E,0x3A,0xBF,0xEB,
+0x0E,0xDA,0x0B,0xAE,0xA5,0x51,0x26,0xBC,0x51,0x0E,0x5A,0x6C,0x81,0xDA,0x0E,0xF3,
+0x0B,0x3A,0x80,0x9C,0x65,0xB3,0xCD,0xE2,0xBB,0x21,0x69,0xFB,0x23,0xCC,0x34,0x0D,
+0x98,0x69,0x53,0x54,0xDD,0x92,0x3F,0xC2,0x30,0xAE,0x3D,0x64,0xE5,0x6B,0xED,0x6F,
+0x41,0x12,0xED,0x4E,0x8C,0x59,0x38,0xAF,0xEF,0x51,0x09,0x9F,0x16,0x10,0x1C,0x96,
+0x92,0xE6,0xE3,0xD6,0xD2,0x98,0x02,0xC0,0x9C,0x1D,0x70,0xD4,0x1C,0x4D,0xE2,0x1D,
+0x54,0x8C,0x85,0x68,0x00,0xC2,0x98,0x82,0xB8,0xEB,0x75,0x9B,0x04,0x0C,0xA4,0xE7,
+0x67,0x60,0x14,0x41,0xB1,0xD2,0xDE,0x59,0x47,0xAC,0x60,0x92,0x36,0xF8,0x25,0x3C,
+0xFB,0x5C,0xFC,0x39,0x69,0x76,0xCF,0x46,0xB3,0x9E,0xE1,0x49,0x77,0xFE,0x0B,0xBC,
+0x27,0xC7,0xC9,0x11,0x97,0xD0,0xFD,0x48,0x8C,0xFE,0x64,0xAA,0xB7,0xA0,0xE9,0x57,
+0xF2,0xB3,0x86,0xA7,0x4A,0x80,0x5A,0x08,0xA9,0xCD,0x77,0xB8,0xE8,0x1E,0xBA,0xA4,
+0xA3,0x37,0x7D,0xF5,0x27,0x52,0x72,0x42,0x74,0x3D,0x49,0x7E,0xB9,0x73,0x71,0xA3,
+0xE7,0x2D,0xEE,0x81,0x1B,0x4B,0x5D,0x65,0xB0,0x54,0xFD,0x29,0x12,0x9E,0x7A,0xE9,
+0xA5,0xB7,0x3C,0xDB,0x91,0xEB,0x74,0xB1,0x40,0x28,0x58,0x4F,0xD5,0xE8,0x31,0x42,
+0x95,0x3B,0x67,0xEE,0xF1,0x6E,0x97,0x8E,0xED,0x5E,0x03,0xA2,0x71,0x07,0x30,0x35,
+0x9A,0x54,0x5C,0x5E,0xEF,0x13,0xE4,0x36,0x2B,0x38,0xBD,0xC8,0x63,0x1B,0x88,0x44,
+0x90,0xDB,0xEC,0xDC,0xD9,0xF4,0x40,0x4C,0x57,0x4F,0x74,0xEC,0xB6,0x71,0x7B,0x9E,
+0x3F,0x0B,0x95,0x8D,0x2B,0x97,0x70,0xE6,0x38,0x11,0xB5,0xD6,0xA8,0xC9,0x06,0xED,
+0x3D,0x36,0x9A,0x87,0x07,0x6B,0xD8,0xAA,0x04,0xBB,0x2C,0x55,0xBE,0x5B,0xD8,0xE3,
+0x5F,0x5E,0xF0,0xFC,0x8D,0xCB,0xF1,0x7E,0x12,0x19,0x16,0xAB,0xB3,0x2E,0x8F,0x28,
+0x83,0xC5,0xC5,0xD4,0xB2,0x1D,0xE1,0xFF,0x16,0x57,0x32,0x16,0x9D,0x15,0x2E,0x76,
+0x00,0xE8,0xF5,0x08,0x33,0xD1,0x8A,0xA7,0x5C,0x3A,0xE0,0x3E,0xC2,0xAB,0x7D,0x85,
+0x31,0x39,0x6B,0x2B,0xB0,0x40,0x17,0x88,0x3C,0x5F,0x91,0x6B,0xC1,0x0D,0xB2,0xBA,
+0xFA,0x01,0x39,0x2F,0x61,0xD5,0xB2,0x6C,0x03,0x3F,0x14,0x88,0x0C,0x26,0x07,0x9A,
+0x94,0x66,0xA2,0xF8,0x90,0x79,0xBD,0x60,0x70,0x73,0x6D,0xC3,0x6F,0xBF,0x4D,0x46,
+0x20,0x1A,0x4D,0x29,0x01,0x50,0x51,0x53,0x44,0x66,0x7C,0xF2,0x46,0xAC,0x45,0x58,
+0x63,0xDD,0x5A,0x65,0xCA,0xDE,0xF8,0x81,0xD8,0x8E,0x04,0xCE,0xFA,0x02,0x02,0xD5,
+0x2D,0x48,0x79,0x93,0xB8,0xE3,0x6A,0xA2,0x05,0x7E,0x3A,0x08,0x18,0xC3,0x84,0x62,
+0x8A,0x2A,0xBF,0x4A,0x2C,0x3E,0x30,0xCE,0x7D,0x47,0xD7,0x91,0x7A,0x8B,0x5C,0x77,
+0xF8,0x56,0x9A,0x18,0xF9,0x2D,0x3B,0x57,0x1A,0x5B,0xAF,0xD0,0x3C,0xFB,0x27,0x99,
+0x47,0xDE,0x92,0xAA,0x4F,0x6C,0xE0,0xB7,0x90,0x8F,0x86,0x70,0xBB,0x85,0xB7,0x61,
+0x1B,0x42,0x8A,0x66,0x21,0x0B,0x37,0x2C,0xB5,0x38,0x9A,0xBD,0xA0,0x13,0x1B,0xE1,
+0xE0,0x10,0xDB,0xE2,0x58,0xCF,0xCC,0xD0,0x01,0xBC,0x6A,0x59,0xD7,0x11,0xED,0xBC,
+0x7A,0x55,0x64,0x4C,0xCB,0x9C,0x04,0x03,0xA7,0x24,0xEB,0x05,0x51,0xAA,0x20,0x52,
+0x27,0x5B,0xAD,0x49,0x2D,0x04,0x9B,0xDD,0xD3,0xFE,0xF0,0x03,0xE3,0x04,0xDC,0xAD,
+0xA5,0x58,0x53,0x1D,0x16,0x5A,0x3A,0xF3,0xF7,0x98,0x25,0x5C,0x73,0x1D,0xEF,0x79,
+0xF1,0x67,0x61,0xAC,0xB6,0xE5,0xDB,0xB1,0x87,0xCC,0x41,0x3C,0xE7,0x4A,0x61,0x89,
+0x60,0x4E,0x52,0x40,0x60,0xF1,0x71,0x34,0x5C,0x75,0x6F,0x57,0x32,0x05,0x15,0x3F,
+0xC6,0x12,0xCA,0xC1,0xDD,0x62,0x3E,0xA1,0x75,0x66,0x71,0x5F,0x6E,0xCA,0xC3,0xD7,
+0xE4,0x76,0x55,0x9D,0x6C,0xFE,0xDD,0xC5,0x21,0x54,0xC0,0x60,0x96,0x09,0x17,0xFA,
+0x16,0x15,0xFF,0xAD,0x99,0x78,0x4A,0x32,0x61,0x83,0x89,0xDC,0x91,0x8D,0xCA,0xC2,
+0x56,0xA9,0x28,0xE4,0xAC,0x14,0x4D,0xE2,0x94,0x01,0xF9,0x16,0xB2,0xFF,0x58,0xFF,
+0xD6,0xF7,0xA1,0x46,0x14,0x67,0x30,0xFC,0x7E,0xEA,0x33,0x33,0x30,0x0A,0x28,0x35,
+0xAD,0xFB,0x79,0x60,0xD0,0x30,0x84,0x95,0xFA,0xED,0xEE,0x0B,0x9C,0xB9,0x98,0x78,
+0x9D,0x27,0xFA,0x4D,0x6F,0x9E,0xC1,0x0F,0xBF,0x65,0x11,0x43,0xAF,0x28,0x74,0x51,
+0x41,0xE5,0x6B,0x23,0x44,0xBE,0x74,0xC2,0x19,0xFD,0x90,0x1F,0x31,0xCF,0x75,0x23,
+0x02,0x96,0x1A,0x55,0xAA,0x94,0x63,0xA3,0xD7,0x70,0x8F,0x65,0x1C,0x43,0xD5,0xB8,
+0xE5,0xE4,0x84,0x54,0xF2,0xFF,0xAF,0x22,0x76,0xC0,0x4E,0x90,0xC6,0x37,0xCE,0xBE,
+0x2D,0xA5,0xF0,0xC2,0x4E,0x31,0xF6,0x72,0x52,0xA6,0x9B,0xCF,0xA7,0x97,0xC6,0xD9,
+0x80,0x95,0xE4,0x01,0x4A,0x8C,0xD2,0x3C,0xF0,0xB0,0x65,0xF5,0x48,0x33,0xB1,0xD8,
+0x51,0x00,0x00,0xA4,0x50,0x7D,0x44,0x6F,0xD8,0x72,0xB2,0x6F,0xEB,0xBB,0x6E,0x25,
+0x1E,0xB6,0xD5,0xD0,0x59,0x92,0xDA,0x15,0x12,0x71,0xD2,0x73,0x56,0x2E,0xFD,0x6A,
+0x8C,0x50,0x40,0x03,0x02,0x99,0x0A,0x5E,0x5F,0xD3,0x50,0x98,0x43,0x46,0x63,0x4C,
+0xDA,0x32,0x05,0x44,0x13,0xBA,0x08,0x78,0xAE,0xDF,0x5F,0x34,0xCF,0x4D,0x21,0x20,
+0x0D,0x9C,0x18,0x68,0x7C,0x80,0xC9,0x26,0x88,0xCE,0x7C,0x36,0xEC,0x3F,0xB3,0x1D,
+0x68,0xED,0x78,0x3D,0x9F,0xF8,0x64,0x73,0x31,0x3F,0x47,0x85,0xBE,0x0E,0x57,0x53,
+0xC0,0x29,0x33,0x48,0x0C,0xAB,0xAC,0xA0,0x9E,0x5C,0x72,0xE8,0x0A,0xE1,0x2B,0x82,
+0x91,0xE2,0x5E,0x4F,0x76,0x0F,0x4B,0x96,0x9B,0x03,0xC4,0x1C,0x08,0xEE,0x16,0x88,
+0x2A,0x0C,0xD8,0x82,0x23,0x36,0x3D,0x23,0x8E,0x37,0xF5,0x0D,0x5A,0xDF,0xF2,0xC6,
+0x06,0xF0,0x94,0x2A,0x1E,0xE8,0xB2,0x4C,0x49,0x41,0x5E,0x46,0x2B,0x9C,0x84,0xB5,
+0x7F,0xA1,0x3B,0xFA,0xA9,0xF4,0x7F,0x69,0x99,0x74,0x32,0x41,0xB1,0x35,0x38,0xE3,
+0xEA,0xEE,0x86,0x69,0xA3,0x7B,0xFD,0xD9,0xEC,0x7F,0xE0,0xD5,0xE9,0xB4,0x53,0x2F,
+0xA6,0x97,0xF5,0x22,0x3A,0xA7,0xB7,0xBA,0x77,0x11,0x87,0x02,0xE5,0x45,0x5C,0x83,
+0xEF,0x1A,0xD9,0xDF,0x2E,0x64,0x87,0x17,0x20,0x85,0x09,0xF2,0x22,0xE6,0x6B,0x2B,
+0x8A,0x6B,0xB9,0x8A,0x88,0x5B,0x48,0x14,0xBE,0xB4,0xD8,0xD1,0x0D,0x65,0xF6,0xBA,
+0xAB,0xC0,0x80,0xE9,0x46,0x83,0x7E,0xCD,0xAC,0xA8,0xA9,0x69,0x27,0x6D,0x8B,0x19,
+0x92,0x2D,0xF8,0x70,0x0E,0x96,0xA6,0xAF,0x6A,0x0F,0xCB,0xB0,0x4B,0xF9,0xD1,0xC4,
+0xB3,0x86,0xC1,0x13,0x29,0xB9,0xBF,0x93,0x98,0xA5,0xFB,0xD3,0xD6,0xD4,0xB0,0xAA,
+0x5B,0xFE,0x5D,0x2F,0x87,0x34,0xF8,0x2F,0x8F,0xE6,0x3C,0x9F,0x04,0x1F,0x19,0x24,
+0xED,0x47,0xAE,0x29,0x9E,0xA5,0x72,0xB6,0x89,0x1F,0xB5,0xA4,0xB3,0x3A,0x05,0xE9,
+0x9A,0x8E,0xD2,0x0D,0xF4,0x7F,0x81,0x63,0x39,0x15,0x3A,0x26,0xC9,0x0C,0xA1,0x0E,
+0xFD,0xA2,0xC5,0xAE,0x6D,0xA3,0xCB,0x00,0xE9,0x20,0x56,0x21,0x34,0x44,0x95,0x11,
+0x8B,0xF9,0x68,0x43,0x82,0xD4,0xCA,0xA4,0xB2,0x10,0xDA,0x14,0x0B,0x24,0x76,0x94,
+0xCC,0xEC,0x97,0x4A,0xAB,0xC9,0x75,0x66,0x25,0xDA,0xBF,0x06,0xFB,0x58,0x10,0x31,
+0x82,0xC8,0x93,0xF7,0x90,0x97,0xD4,0x48,0x10,0x06,0x24,0x2E,0x7A,0x67,0x00,0xE7,
+0xC4,0x4F,0xBD,0x37,0x4C,0x0C,0xFC,0x7D,0x40,0xBA,0xEA,0x77,0x63,0xFE,0x91,0x6D,
+0x6E,0xD6,0x81,0xB4,0xDE,0x02,0x22,0x6B,0x4F,0xB8,0xD7,0x7D,0x2F,0xD2,0x39,0x91,
+0x79,0x9A,0xC2,0x73,0x7D,0xDD,0xDF,0xE3,0xC1,0xE2,0x81,0xBB,0xDC,0x64,0x3F,0x28,
+0x4B,0x1B,0x36,0xA8,0x7B,0x5D,0xF1,0xA2,0x29,0x7E,0xBD,0xC3,0xC3,0xBC,0x2E,0x8C,
+0xC8,0x8A,0x19,0x35,0xC8,0xFC,0x18,0xC9,0x36,0x17,0x07,0x2C,0x45,0x07,0xE3,0x62,
+0x3E,0x8F,0x3D,0x7A,0x89,0x06,0x5E,0xD1,0x50,0xD1,0x6D,0x92,0x07,0xD5,0x79,0x38,
+0xE8,0xB3,0xF1,0x9F,0xF6,0x42,0x8B,0x6C,0xA8,0x26,0xD6,0x0F,0xC7,0xF2,0x93,0xA8,
+0x81,0x07,0x35,0xC8,0x1B,0x08,0x80,0xC7,0x3B,0x62,0xCC,0x7B,0xE0,0xCE,0xBC,0xB1,
+0x2B,0x9E,0x09,0x4B,0x25,0xB6,0x13,0x62,0x1C,0xA2,0x26,0xEB,0xCD,0x42,0x1C,0x2A,
+0x18,0x8D,0x2C,0x59,0x9B,0x45,0x40,0x3D,0x53,0x77,0x52,0x5D,0x8D,0x9F,0xBB,0x7A,
+0xDC,0x09,0xFC,0xCD,0x9D,0xC5,0x6E,0x7C,0xF5,0xEF,0xD3,0x01,0xF3,0xE7,0xA2,0xB9,
+0x71,0x39,0xE8,0x0E,0xBF,0x0A,0x45,0xCB,0x0B,0xE1,0xE1,0xA7,0x42,0x83,0x3E,0x5A,
+0x74,0xCD,0xB7,0xB8,0x69,0x1E,0xEF,0x4E,0xBD,0x12,0xE7,0x1E,0xA4,0x5D,0xA6,0xC5,
+0xEB,0x7C,0x57,0xA0,0xF7,0x1F,0x9D,0xA9,0xB8,0x4D,0x51,0xEA,0x8C,0x5A,0xE6,0x6C,
+0x7B,0xC7,0xB5,0x85,0xEE,0x8E,0x17,0x30,0x86,0x1D,0x88,0xAE,0x47,0x08,0xDE,0x68,
+0x84,0xF3,0x6A,0x7E,0x95,0x77,0xE6,0xC3,0x38,0xC4,0xF3,0xB4,0x2A,0x59,0xD9,0xA3,
+0xDB,0xA0,0xD4,0x8D,0x5F,0x12,0xF4,0x54,0xDE,0x8B,0x3B,0x54,0x39,0x70,0xC7,0xAB,
+0xF4,0x93,0x3E,0x1A,0x49,0xEC,0xCE,0xF6,0x55,0x8E,0xDB,0x66,0x67,0xB0,0x2C,0x49,
+0x6B,0x9E,0xD7,0x4F,0x20,0xAA,0x77,0x44,0xEC,0x17,0x09,0xB0,0xE1,0xB1,0x0B,0xC7,
+0x89,0xC0,0x3C,0x8F,0xC0,0x21,0x72,0x76,0xD6,0xE9,0xAB,0xA6,0x76,0x82,0x24,0x2D,
+0x81,0xD3,0x22,0xA6,0x08,0xC7,0x3D,0x96,0xC4,0x8C,0x3C,0x6C,0x85,0xD1,0x7B,0x93,
+0x4A,0xBE,0x25,0xF7,0x73,0x79,0xE4,0x8C,0x35,0x75,0xCF,0x17,0x7E,0xE5,0x84,0x4C,
+0x4E,0x75,0x1D,0xA5,0xAA,0x47,0xB4,0xC8,0xBF,0xE4,0x56,0x0E,0x5B,0x5E,0x14,0xAE,
+0xE7,0x5D,0x5D,0xA2,0x1C,0x42,0xEB,0x3C,0xCD,0xE5,0xB1,0x90,0x43,0xEF,0x8B,0x4E,
+0x78,0xBB,0xC5,0x7C,0x1A,0xF4,0x18,0x85,0x67,0xF1,0x34,0x46,0xF5,0x1B,0x8E,0x11,
+0x9B,0x0A,0x59,0x18,0x28,0x0A,0x16,0x23,0x4C,0x3E,0x83,0x64,0x36,0x2B,0x23,0x05,
+0x58,0x74,0x40,0x60,0xA9,0xAC,0x8E,0x7F,0x62,0xBE,0xC2,0x62,0xA2,0xAF,0xE7,0xD5,
+0x08,0x34,0xE7,0xBD,0xDD,0xE3,0x5B,0xC9,0x31,0x4D,0x9D,0xDC,0xB0,0xBC,0xD4,0xF0,
+0x93,0x19,0x47,0x31,0x37,0xC4,0x9B,0x59,0xA2,0xF3,0x38,0xE2,0x33,0x25,0x7E,0xCC,
+0x8A,0x3E,0x68,0x0D,0x2D,0x57,0xDF,0x2D,0xA9,0xB9,0x93,0x0F,0x64,0x91,0x17,0x08,
+0x1A,0xFE,0x82,0x2A,0x96,0xAF,0x28,0xB0,0x7C,0xFD,0x2E,0x70,0x81,0xAD,0xC1,0xC4,
+0x40,0xBC,0x18,0xF8,0xFC,0xC9,0xEE,0x0E,0x3A,0x07,0x36,0x31,0xCE,0xA8,0x37,0xE0,
+0xAE,0x3A,0xD5,0x43,0x46,0xD6,0x87,0xE1,0xD3,0xA6,0x5D,0x82,0x53,0x39,0xB4,0xCF,
+0x0A,0x25,0xC4,0x9B,0x7A,0x3E,0x1B,0x99,0xFD,0x26,0x1C,0x84,0x88,0xB8,0x86,0x3B,
+0xB3,0xD6,0xC2,0x2D,0x2C,0xB0,0x41,0x5F,0x00,0xF9,0x94,0x27,0x4F,0xF4,0x91,0x78,
+0x4F,0x9A,0x6A,0x01,0x11,0xBF,0x43,0x55,0xDE,0xF7,0x82,0xB5,0xCC,0x6D,0x3B,0x44,
+0xC5,0x83,0xFB,0x98,0xDF,0xEF,0xFF,0x0C,0xF6,0x6C,0xB7,0x69,0x0C,0xEA,0x7D,0x6A,
+0x13,0x02,0xEB,0xA7,0x44,0xDA,0x23,0x24,0x57,0x32,0x99,0x52,0xB1,0xCE,0x33,0x6E,
+0xB6,0xF2,0x8D,0xDB,0x21,0x4D,0xE9,0x36,0xE8,0x2F,0x5B,0x7B,0xB8,0xDB,0x74,0x91,
+0x33,0xCD,0x6E,0xBB,0xAD,0x16,0xD9,0x03,0xE9,0x58,0xFF,0x94,0x55,0x80,0x02,0x3C,
+0x2C,0x30,0x5A,0xF3,0xC1,0xC6,0xEC,0x04,0xA3,0x84,0x9C,0x0D,0xF6,0xAC,0x65,0x2B,
+0xCB,0x4A,0xFE,0xC5,0x4E,0x76,0xE6,0x86,0x50,0x5E,0x49,0x67,0xD2,0x65,0x12,0x57,
+0x06,0xFD,0xE2,0xE0,0xC7,0x70,0x1F,0xBD,0xDA,0xCF,0xD0,0x7E,0xD4,0xDC,0xA4,0xA4,
+0x88,0x2F,0x4B,0x2B,0x00,0x67,0x5C,0xF1,0x9D,0x42,0x6C,0xD0,0xE8,0xA4,0x4C,0x38,
+0xE6,0xB2,0x2A,0x06,0x30,0x95,0xF6,0x92,0x84,0x6D,0x50,0xF7,0x8B,0x0F,0x6D,0x01,
+0x3B,0xDE,0x70,0x92,0x52,0x53,0x51,0x4B,0x5C,0x78,0x32,0xBF,0x12,0xE2,0x54,0x79,
+0x98,0xF4,0x0D,0x9A,0x23,0x41,0x4D,0xF3,0x6A,0xA0,0xEB,0x71,0x71,0x49,0x75,0x40,
+0x09,0xDB,0x90,0x19,0xF2,0xDF,0x7C,0xD0,0xA5,0x9F,0xE8,0xD7,0x24,0x38,0x10,0x20,
+0xA1,0x1C,0xA7,0xBA,0x7C,0x88,0xE8,0x20,0x95,0x5C,0x45,0xC3,0xD9,0xB5,0x59,0x0C,
+0x0D,0x10,0xA8,0x4B,0x1B,0x13,0x86,0xF7,0xDF,0x80,0x26,0x5A,0x92,0xCC,0x15,0x7F,
+0xC1,0x48,0xC3,0xCA,0xC9,0x66,0x8D,0x63,0x5D,0x0F,0x96,0x50,0x01,0x83,0x80,0xC2,
+0x97,0xD2,0x7F,0x63,0xA5,0xB6,0xB8,0x64,0x90,0x13,0xB3,0xE7,0xD1,0xD2,0xF9,0x6D,
+0xE4,0xA3,0x09,0x20,0x0E,0x71,0xCE,0x2F,0x1F,0xCD,0xDC,0xDA,0x79,0x2E,0xD5,0x21,
+0xAA,0xF1,0xED,0x11,0x3F,0x64,0xFA,0x3E,0x69,0xF4,0x69,0x8F,0xB4,0xC0,0x6E,0xA7,
+0xA0,0xF3,0xD0,0x1E,0x89,0x61,0xA5,0xCA,0x8E,0x50,0x5F,0xF5,0xB3,0x0B,0x3F,0xCA,
+0x71,0x47,0xAC,0xF1,0xBC,0xCE,0xC6,0xA7,0x46,0x03,0x8C,0x66,0xC6,0xCF,0x97,0x81,
+0x3F,0x15,0x48,0xC0,0x87,0x77,0x37,0x14,0xEB,0x7B,0xD9,0x85,0x93,0xBE,0xF2,0xE1,
+0x02,0x36,0xDA,0xB2,0xA4,0x51,0x26,0x16,0x2A,0x41,0x87,0xEA,0xBF,0x10,0x25,0xFC,
+0x6E,0xBA,0x98,0xB9,0xAB,0xA0,0x2A,0xBA,0x28,0x62,0xA1,0xFB,0xF8,0x72,0x73,0xB9,
+0x48,0xAF,0x06,0xD1,0x29,0xED,0x88,0x51,0xF8,0x69,0xEA,0xA0,0x2B,0x94,0xE1,0x2C,
+0x07,0x12,0x95,0x44,0x49,0x27,0x8B,0x4D,0x66,0x86,0x90,0xA9,0x5F,0x22,0xAE,0xF9,
+0xFA,0xB1,0x4A,0xCC,0x9E,0x0F,0x49,0xD7,0xF0,0x77,0xC3,0xB3,0xFA,0xB7,0x7F,0x1D,
+0xFB,0x5E,0x3D,0x68,0x60,0xAD,0x5F,0xED,0xD4,0xCA,0x8D,0xB7,0x39,0x87,0xD2,0x09,
+0x9C,0x3F,0x35,0xC8,0xB5,0x89,0x39,0xB2,0x8D,0x04,0xDD,0x0B,0xAF,0xC6,0x1A,0x7D,
+0x9A,0xE5,0x2E,0xBC,0x74,0x28,0x89,0x47,0x41,0x6F,0x5C,0x53,0xAE,0xB4,0xFD,0xE3,
+0x01,0xC8,0x8E,0x30,0x6B,0xE6,0x04,0x3D,0x56,0x45,0x3D,0xBD,0xD8,0xC7,0xBE,0x92,
+0x73,0x56,0x8F,0xD7,0xEA,0x40,0x9C,0x61,0xE3,0x65,0xF0,0x96,0xB6,0x05,0x62,0x03,
+0x5A,0x65,0x63,0x46,0x15,0x05,0x14,0x29,0xA6,0xCB,0x6A,0x29,0x9B,0xD9,0x52,0x80,
+0x17,0xC9,0xD3,0xF5,0xC8,0x81,0x13,0x11,0x12,0x9C,0x03,0xED,0xBD,0xD5,0x29,0x58,
+0xDD,0x4B,0xA3,0x00,0x02,0x6B,0xF8,0x34,0x6F,0xEF,0x1D,0x55,0x1F,0x8B,0xA9,0xD1,
+0xE0,0x68,0x31,0x72,0x72,0x9E,0x7A,0xFE,0x68,0x83,0xCD,0x60,0x56,0x37,0xE9,0x06,
+0xD8,0x6F,0xEC,0xF6,0x3B,0xDE,0xAD,0x42,0xFF,0x05,0x3A,0x95,0x66,0x54,0x1B,0xAC,
+0xF5,0x97,0x38,0x35,0x8A,0x8A,0x9F,0x7D,0x1C,0x99,0x5E,0x24,0x3A,0x30,0x39,0x33,
+0x1D,0xCB,0xEE,0xFA,0x94,0xA3,0x8C,0x75,0x53,0x0A,0xCB,0x99,0xBB,0x6C,0x9F,0xAB,
+0xAB,0x1E,0x9A,0xB5,0xBA,0x78,0x35,0x1E,0xF9,0x1E,0x4E,0x4F,0x57,0x45,0x0E,0x98,
+0x5B,0x8A,0x14,0xE2,0xDE,0x08,0x61,0x7E,0x18,0xA1,0x0C,0xEF,0xE6,0x7A,0x5A,0xAA,
+0x8F,0x1A,0x27,0xFB,0x0B,0x2C,0x07,0x21,0xB9,0xFF,0x22,0xD4,0xB2,0x79,0xD8,0x54,
+0x70,0xA8,0xDB,0x55,0x10,0x58,0xDD,0x27,0x26,0x67,0xFC,0x32,0xB7,0x77,0x85,0x9D,
+0x9E,0x2E,0x16,0xEE,0x91,0xFE,0x45,0x7B,0xEE,0x34,0x2F,0xA1,0x19,0x32,0x1F,0x22,
+0xC3,0x59,0xE0,0xEC,0x61,0x4A,0xC1,0x9F,0x15,0xF0,0xD3,0xD8,0x9D,0x60,0xE4,0x73,
+0x43,0x42,0x4C,0x7A,0x7D,0x6F,0x76,0x52,0xC2,0x97,0x48,0xB6,0x51,0xFC,0xB8,0x6B,
+0xBB,0xC5,0xDC,0x04,0x54,0xE5,0xA2,0xF2,0x19,0xD6,0xA8,0x00,0xE3,0x74,0x07,0x63,
+0x9E,0xBE,0xA9,0xD6,0x4D,0xCD,0x89,0x17,0xFF,0xE7,0xF4,0xA9,0xFE,0xE2,0xBA,0x6C,
+0xDF,0x28,0xDD,0x1E,0x83,0x94,0xD9,0xAB,0x99,0x32,0xAB,0x8D,0x9F,0x85,0xB2,0xCC,
+0xAD,0x29,0x43,0xF9,0xE8,0x58,0x58,0xF3,0x29,0xF3,0x5E,0x2C,0x45,0x83,0xA9,0xB8,
+0xDE,0x5F,0x32,0xBA,0xC2,0x4F,0x39,0x1D,0xA4,0xEC,0x24,0xE2,0x68,0x18,0x09,0x34,
+0x6B,0x7F,0x19,0x77,0xE5,0x31,0xA5,0x5B,0x8A,0x2C,0xA3,0xA4,0x1A,0x77,0x1F,0xBD,
+0x8D,0xAC,0x8C,0xE5,0xEE,0xE1,0xEE,0x00,0x28,0xAE,0x48,0xE9,0x0F,0x51,0x81,0xD5,
+0x3B,0xD8,0x59,0xAA,0x01,0x7F,0x94,0x09,0x2B,0xCE,0x54,0x23,0xB2,0x1E,0x12,0x40,
+0xAE,0x7D,0xBD,0x7B,0xF0,0xE9,0xC7,0x13,0xE9,0x19,0xCE,0x0B,0x11,0xE3,0xCD,0xC8,
+0x12,0x34,0x6A,0x3B,0xD7,0x97,0x5B,0x55,0x05,0x0E,0xD3,0x65,0x53,0xB9,0x57,0x1A,
+0xD6,0x41,0x21,0x93,0x84,0x5F,0x88,0xC6,0x66,0x3B,0xBE,0xCA,0xE7,0x68,0x2B,0xF5,
+0xA7,0x14,0x41,0xF6,0xFC,0xF2,0xDD,0x25,0x97,0x00,0x0D,0x73,0xB5,0x26,0xCF,0xC4,
+0x09,0x38,0x5C,0x21,0xC6,0x33,0x83,0x4A,0x86,0x23,0x0F,0x55,0x96,0x1B,0x5D,0xB6,
+0x9A,0x86,0x62,0x84,0x88,0x44,0x92,0xF0,0x2D,0x4E,0x7A,0x62,0xE8,0xD8,0x44,0xCE,
+0xCB,0x56,0xCD,0xFD,0x94,0x89,0xB7,0x47,0x18,0x22,0x7D,0xB2,0x72,0x8E,0xF8,0x67,
+0x37,0xFE,0x81,0xD1,0x4A,0x06,0xD8,0x7A,0x6E,0x89,0x36,0x75,0x03,0xFD,0x8E,0x24,
+0xD9,0x33,0x07,0x6A,0x73,0x70,0x6D,0x2F,0x5A,0xB8,0x27,0x60,0x51,0xB3,0x6A,0x15,
+0x2B,0x9E,0x82,0x1B,0xB3,0xF7,0x2B,0x01,0xE5,0x16,0x62,0xFA,0x8E,0x87,0x91,0xEA,
+0x79,0x1A,0xD3,0xE0,0x77,0x0C,0xD7,0x78,0x61,0xE6,0x86,0x4E,0xF9,0xDA,0x67,0xE8,
+0xE5,0xD6,0xCB,0xBC,0x10,0xDB,0x4C,0x16,0xD6,0xFA,0x4B,0x6B,0xE2,0x5A,0xCB,0x7E,
+0x6D,0x64,0xC3,0x03,0x51,0x00,0xAC,0xA0,0x02,0xD3,0xEB,0xE1,0x65,0xA2,0x5B,0x00,
+0x5C,0xD0,0x38,0x0A,0x99,0xE0,0x4A,0xEF,0x95,0x3D,0x07,0x7C,0xBE,0xB2,0x1D,0xB1,
+0x63,0x61,0x0A,0x5E,0x26,0x01,0x08,0x4F,0xC1,0x59,0x67,0x0C,0x2A,0x42,0x93,0xE6,
+0x60,0x35,0xF4,0xDC,0x78,0xA0,0x26,0x74,0xA7,0x8C,0x38,0x28,0xBA,0x96,0xA0,0xFF,
+0x6E,0x30,0x3D,0x81,0xE0,0x3F,0xF8,0x92,0x7D,0x97,0x3E,0x5C,0x08,0x69,0x5C,0x51,
+0x2E,0xD1,0xA6,0xED,0x04,0x71,0xC9,0xC0,0xDA,0xF5,0xE7,0x9A,0xC8,0xF9,0xB6,0x76,
+0x4D,0xE1,0x0C,0x1F,0x82,0xE6,0x3E,0x35,0x0D,0xBC,0x5B,0xDA,0xCF,0xC1,0x6B,0xF2,
+0x29,0xBD,0x93,0x3D,0x1E,0x05,0x5A,0x84,0x3F,0x0D,0x64,0x8E,0x37,0xEC,0xBF,0x31,
+0x75,0x3C,0x0B,0x9B,0x8D,0x4A,0xCF,0x39,0x2C,0x13,0x6C,0xA7,0x6B,0x04,0x69,0xFE,
+0x1C,0x31,0xA3,0x66,0xE2,0xFA,0xF4,0x36,0x3C,0x6D,0x78,0x44,0xF6,0x6A,0x08,0xD3,
+0xC0,0x1C,0x20,0x56,0x4C,0xBF,0x6E,0x89,0xB4,0x92,0x30,0x01,0xC5,0x43,0xE4,0x42,
+0xCC,0x3A,0xF8,0x2D,0x1B,0x0B,0x07,0x4D,0xB3,0x4F,0x08,0x85,0x69,0x0E,0x54,0xF1,
+0x92,0x98,0x71,0xAD,0x68,0x76,0x19,0xF5,0x58,0x85,0x2D,0x6F,0xEB,0xC4,0x24,0x04,
+0xB4,0x06,0x64,0xC5,0x7A,0x65,0x2A,0xD0,0x88,0x11,0xA9,0xAB,0x5E,0x03,0x05,0x2E,
+0xB1,0x49,0x40,0x33,0x80,0x23,0x32,0x91,0x4E,0x7B,0x17,0xCD,0x1C,0x59,0x9F,0xFC,
+0x20,0xD4,0x6F,0xB0,0x21,0xCA,0x59,0x22,0x27,0xC1,0xF8,0xD2,0x9A,0xB7,0x52,0x47,
+0xA1,0x0F,0x9B,0x82,0xA1,0xE4,0x18,0x24,0xBB,0xFD,0x80,0x3A,0x85,0x13,0x43,0x9F,
+0xB6,0x25,0x75,0xE3,0x39,0x7B,0xC6,0xC2,0x2E,0x2E,0x66,0xA8,0xD4,0x41,0xC7,0x64,
+0xA5,0x37,0x50,0xD0,0xCA,0x28,0x99,0x7C,0xFB,0x5A,0xD0,0xE7,0x94,0x11,0x60,0xB9,
+0x3C,0xB4,0x6C,0x7A,0x74,0xBB,0x3C,0x42,0x3B,0xB0,0x40,0xC0,0xB9,0x8A,0xC0,0x35,
+0x88,0xE3,0xA8,0x13,0x3E,0xB0,0x97,0xAF,0x7F,0xAA,0x34,0x53,0x9E,0x93,0xEF,0x09,
+0x47,0xDC,0x0E,0x10,0x63,0xA6,0x52,0xAE,0x14,0x2D,0xD1,0x43,0xD5,0x57,0x9A,0xA1,
+0xF6,0xC4,0xEE,0x8F,0x62,0xD4,0xB5,0x30,0x4B,0x9B,0x25,0x46,0xFD,0xFE,0xDA,0xA6,
+0x02,0x72,0xB1,0x8A,0x76,0x7E,0x30,0xE6,0xB8,0x9D,0x9C,0xF0,0x1B,0x61,0x42,0x78,
+0x32,0xB1,0xA5,0x27,0xB9,0x55,0x87,0xC4,0xB6,0xAF,0x3A,0x0E,0xAA,0x82,0xDE,0x1C,
+0xA8,0x66,0x67,0x0F,0x90,0xF5,0x0D,0x10,0xD7,0xA7,0x5D,0xAE,0x3E,0x72,0x50,0x4B,
+0x9B,0xF1,0x8D,0x20,0x6E,0xCF,0xAF,0x06,0xD2,0x47,0x6F,0x25,0x60,0x90,0xBB,0x8B,
+0xC8,0x02,0x33,0x7F,0x0B,0xDD,0x38,0xCC,0x9D,0x8F,0x8F,0xC3,0x73,0x98,0xA5,0xA2,
+0xFC,0xF9,0xEC,0x80,0xF2,0x2C,0xCB,0xB7,0x44,0xF4,0x95,0x7D,0x1E,0x53,0xA2,0xF3,
+0x50,0xF6,0xE0,0x71,0x27,0x73,0xEF,0xD1,0xED,0xA4,0xEA,0x45,0x54,0x81,0x8A,0x9E,
+0x21,0xA3,0x80,0x14,0x18,0xBC,0xEC,0x77,0xDC,0x75,0xC9,0xDB,0x7B,0x10,0x17,0x1D,
+0xAC,0x5E,0xAC,0x5D,0xDB,0x8C,0x41,0x63,0x48,0xFB,0x39,0x8C,0xBC,0xB8,0x20,0xBE,
+0xD5,0x15,0xDF,0x11,0x07,0xC6,0x22,0xFA,0x26,0x9C,0xEE,0x17,0xB0,0x14,0x2F,0x4F,
+0xC5,0x53,0x04,0xA0,0x48,0xC3,0xD4,0xDE,0xBF,0x40,0xA4,0x74,0x5D,0x1F,0x65,0xE4,
+0xBD,0x6F,0x98,0x48,0xC5,0x84,0x68,0x70,0xFC,0x87,0xE8,0x63,0x8F,0x91,0xCC,0x2F,
+0x16,0x0C,0xA1,0x69,0xEA,0x9D,0x54,0x57,0x56,0xB7,0x8B,0x91,0x12,0xFF,0xAD,0x02,
+0xFB,0x95,0xD9,0x50,0xFF,0x45,0x36,0x1F,0xF1,0xD5,0x52,0x57,0x7E,0x22,0xF7,0x96,
+0xC2,0x3F,0x31,0x70,0xA8,0xF1,0x5F,0xDB,0x49,0xA6,0x2F,0x49,0x52,0xAF,0x0A,0xDF,
+0x99,0xD2,0x9C,0x06,0xDF,0xF0,0xFB,0x34,0x79,0x2A,0x1A,0x12,0x6D,0x2A,0xE9,0xBF,
+0xB5,0x71,0x8B,0x61,0x03,0xBA,0x98,0xAD,0x4C,0x46,0x1D,0xC2,0x90,0x35,0xDD,0xF7,
+0x7C,0x55,0xF7,0x16,0xD9,0x49,0x4D,0xC7,0x46,0xC9,0x9F,0x72,0xEA,0xD2,0x79,0xC1,
+0xED,0xC8,0xD8,0x95,0x7E,0x19,0x90,0x87,0xE1,0xAB,0x46,0xB4,0x76,0xAA,0x45,0x29,
+0x74,0x4B,0xE4,0x3F,0x70,0xC7,0x86,0x15,0xE3,0x96,0x4C,0xBB,0x3A,0x56,0xED,0x05,
+0xF3,0x8B,0xCA,0x79,0xEB,0xEF,0xB3,0xC9,0x5F,0x58,0x15,0xEB,0x23,0xDC,0x7C,0x9C,
+0xD7,0x36,0xCE,0x37,0xB5,0x4E,0x9D,0xF2,0x83,0xC3,0x3D,0xDE,0xA2,0x0A,0x6C,0xA3,
+0xD7,0x7D,0xEF,0xA0,0xBC,0xED,0xCF,0xB1,0xD8,0x08,0xBA,0x0B,0x91,0x47,0x85,0x27,
+0xA3,0xCB,0xA0,0x75,0xEC,0x4A,0x8F,0x6C,0xEB,0x1B,0xA8,0x2E,0xCE,0xB4,0xD6,0x99,
+0x27,0x99,0x5B,0x24,0x3E,0x62,0xC5,0x01,0x1B,0x25,0x6E,0xF3,0x9F,0xB3,0x1D,0xF4,
+0x3D,0xED,0xC8,0x60,0x27,0x4D,0xE2,0x3D,0x72,0x91,0x39,0x37,0x34,0xF9,0x16,0x19,
+0xF6,0xBA,0xC5,0x15,0xF4,0x12,0x47,0xF4,0x3B,0x1C,0xC4,0x1B,0x3A,0x0D,0x8E,0xCA,
+0x9C,0x04,0xA3,0xD3,0xAE,0x88,0x05,0x26,0xCD,0x19,0x8B,0x3F,0x22,0xF7,0xC8,0x8B,
+0x70,0x2D,0x32,0xE0,0xBE,0xCE,0xDE,0x97,0x8A,0x0C,0x82,0xC0,0x10,0x2C,0x49,0x7F,
+0x4C,0x55,0xDA,0x7C,0x1A,0xDF,0xC1,0x4F,0xB8,0x8D,0x59,0x34,0x51,0xAC,0x67,0x79,
+0xCA,0xC2,0x2D,0x89,0x3D,0x36,0x3B,0x83,0x28,0x36,0x7C,0xD6,0xA7,0xE3,0x62,0x5D,
+0x2A,0xF0,0xA6,0x8C,0xDF,0xDD,0x65,0x43,0x07,0x05,0xEB,0x3C,0x05,0x1D,0x58,0x4B,
+0x79,0x38,0x75,0x1F,0xFE,0x2F,0x45,0xFB,0x88,0x51,0x74,0xB7,0xC3,0x7F,0x81,0xEC,
+0x02,0x22,0xCB,0xC6,0x35,0x28,0x28,0xAA,0x77,0x65,0x8F,0x68,0x30,0x86,0x70,0x97,
+0x16,0x88,0x4E,0x10,0x53,0x57,0xA6,0xAE,0x87,0x5B,0x49,0xB5,0xBD,0xEF,0x79,0x6B,
+0xA0,0x7C,0x4B,0x4F,0xFA,0x17,0x8E,0xA9,0x18,0xEA,0x51,0x55,0x5A,0xEE,0x0B,0xF5,
+0x22,0x97,0x06,0xED,0x2F,0x53,0xF1,0x14,0x2F,0x9F,0x3C,0xFE,0x8F,0x34,0xF8,0x9F,
+0x10,0x31,0xF8,0xE3,0xCC,0xCF,0x40,0x70,0x82,0xAF,0xFF,0xEA,0x38,0xFB,0xD3,0xBD,
+0x0A,0x45,0x6B,0xA7,0x3C,0x41,0xD4,0x27,0x40,0x10,0xE2,0xC3,0x60,0x48,0x29,0x2B,
+0xCD,0x09,0x7C,0xE4,0xB2,0xE8,0x06,0xEC,0xA8,0x68,0xDE,0x5F,0xDC,0xC5,0x6E,0x85,
+0x58,0xFF,0x5F,0xAA,0x8F,0x7A,0x25,0x9E,0x58,0x56,0x18,0x82,0x3E,0x72,0xE8,0x44,
+0x3A,0x26,0x99,0x0D,0x52,0x20,0x49,0x0A,0x61,0xBB,0x81,0xFA,0x5C,0x67,0x30,0x0C,
+0xF8,0x64,0xD3,0x87,0xBD,0x9A,0x20,0x15,0x1C,0x8C,0x2E,0xDB,0xE4,0x95,0x11,0x2C,
+0x29,0x47,0x4D,0xB6,0x2C,0x07,0x0F,0x96,0x79,0xFD,0x7B,0xBB,0xE7,0xAA,0xDE,0x8A,
+0x11,0x43,0x1F,0x7D,0xB9,0xA2,0xEB,0x47,0x19,0x78,0x98,0x84,0x2A,0x8A,0x6B,0xA1,
+0x76,0x94,0x84,0x13,0x15,0xAD,0xE7,0xB6,0x55,0x01,0xD3,0xF7,0x49,0x56,0x21,0x38,
+0x1B,0xE1,0xB3,0xB8,0xFB,0x60,0x61,0x0D,0x37,0xD9,0xC6,0xBF,0x8E,0xFD,0x6A,0x4E,
+0x26,0xEB,0xBC,0xBA,0x07,0xC8,0x2D,0x21,0x9D,0x40,0x45,0x83,0x98,0xF3,0xB4,0xDC,
+0x4E,0x90,0xD6,0xD8,0xA7,0xE1,0xF9,0xAB,0x3F,0x7A,0xBB,0x95,0x95,0x38,0xE3,0xA9,
+0xD5,0xB8,0xE3,0x04,0x71,0xF1,0x78,0x94,0x71,0x5E,0x06,0x91,0xBB,0x66,0x42,0x92,
+0xA7,0xB7,0x1A,0x22,0x87,0x64,0x36,0xB7,0x0E,0x34,0x5F,0xC7,0xF3,0x52,0x5D,0x6F,
+0x2B,0x82,0x41,0x12,0x02,0x87,0x09,0xD7,0x78,0x6F,0xB2,0x6A,0x57,0x25,0x5C,0x80,
+0x44,0x32,0x7A,0x1D,0x7F,0xF4,0xB1,0xC9,0x1E,0xD1,0xD8,0xAC,0x45,0x54,0xE4,0x9C,
+0xCB,0xB0,0xCA,0x17,0x98,0x50,0xCB,0xFF,0x69,0x18,0xFC,0xD0,0x90,0x8E,0x17,0xF6,
+0x23,0xE5,0xE1,0x73,0xFC,0x0C,0x54,0xDD,0xED,0x20,0x21,0xD7,0xE6,0x63,0x4C,0x5B,
+0xA1,0x0E,0xAC,0xD1,0xDA,0x92,0x41,0xB5,0x7F,0xC6,0xF2,0x42,0xAD,0x68,0x9C,0x00,
+0x94,0x63,0x03,0xB2,0x4E,0x40,0x4A,0xC0,0x73,0x03,0xF0,0xE6,0xCF,0x7D,0x44,0x48,
+0x43,0xF9,0x2B,0x70,0xB3,0x9F,0xE9,0x48,0xA2,0x96,0x55,0x02,0x9C,0x8C,0xD2,0x52,
+0xBF,0x06,0x85,0xC2,0x28,0x3F,0xC4,0xC4,0x16,0x72,0xA5,0x86,0xD1,0x0E,0x39,0xF0,
+0x6A,0x59,0xA1,0xA4,0x4F,0x37,0xA5,0x64,0xDE,0x33,0x33,0xF2,0x81,0xC0,0x60,0x4C,
+0x61,0x89,0xEA,0xFF,0xB5,0x84,0x33,0x3C,0xB2,0x73,0xD2,0x69,0x31,0x4F,0xE2,0x46,
+0x7E,0xF3,0x24,0x72,0x2E,0x24,0x1E,0xB0,0xF1,0x00,0xA4,0x18,0x50,0x65,0xF5,0xA8,
+0xAF,0xD0,0xBA,0x43,0x23,0x75,0x29,0x6F,0xF5,0x66,0xDB,0x96,0xBF,0x19,0x24,0x1C,
+0xC3,0xD7,0x6A,0x76,0x75,0xC9,0xB3,0xC6,0x8C,0x37,0x0B,0x39,0x9A,0x05,0xE9,0xAB,
+0x35,0x8A,0x68,0x01,0x1E,0xE7,0x0A,0x1D,0x62,0x74,0xBE,0x5C,0x65,0xFE,0xDD,0x74,
+0x04,0x9B,0x7D,0x35,0x50,0x03,0x58,0x2C,0xD9,0x9A,0x73,0xDA,0xD0,0xC7,0xAB,0x21,
+0xB6,0x13,0xC2,0x3D,0xC5,0xA6,0xBC,0xFD,0x9B,0x7B,0xCC,0x7A,0x80,0x09,0xF2,0x9D,
+0x83,0x7E,0x6D,0x5E,0x14,0xDA,0x08,0x12,0x33,0xBF,0xB9,0x31,0x53,0x5A,0x3A,0x0E,
+0xAE,0xA2,0x5D,0xDD,0xB6,0xD0,0xCD,0xBE,0x29,0xA4,0xB5,0x07,0x8B,0x4B,0x9E,0x11,
+0x8D,0xA0,0x7B,0xCC,0x8B,0x42,0xEE,0xCC,0xFE,0x0A,0x99,0x1A,0xD5,0x71,0x5F,0x7E,
+0xD4,0xCA,0x04,0x9A,0xEF,0x1E,0x71,0xEE,0x56,0xCE,0xEC,0x51,0x00,0xAB,0xAC,0x14,
+0xB0,0xAA,0x74,0xCE,0x1F,0x90,0xE5,0xB9,0x02,0xF1,0x5D,0x63,0x42,0x14,0x4D,0xB4,
+0x1A,0x93,0x54,0x26,0xC4,0xD1,0x53,0x59,0x89,0xC3,0xBD,0x66,0xF0,0x6D,0x92,0xC9,
+0x01,0x95,0x20,0xFC,0x3B,0x2D,0xE1,0xF7,0xD4,0xCD,0xB8,0xAF,0x2E,0xF5,0x0D,0x2F,
+0x6B,0x2B,0x46,0x3A,0x77,0xEA,0xA2,0xE0,0xE8,0xD4,0x97,0x88,0xDF,0xFA,0xA1,0x23,
+0x9B,0xCF,0xF2,0xBE,0x2A,0x1C,0xD5,0xE2,0x13,0x86,0x13,0xD9,0x23,0x3E,0x5A,0x5A,
+0x5E,0x46,0xE9,0x59,0x0F,0xD6,0x3E,0x08,0x0B,0xC0,0xE9,0x98,0xA4,0xDC,0xAD,0xFB,
+0x77,0xE6,0x63,0x8D,0xF7,0x46,0xB9,0x76,0xB4,0x48,0x5B,0x90,0x44,0x9D,0x76,0x4D,
+0x1F,0x9D,0x09,0xEF,0xEE,0x69,0x9E,0x4A,0x5E,0x6D,0x91,0x7B,0x66,0xC1,0x12,0xD2,
+0xE0,0xD5,0x4C,0x67,0xC7,0x85,0xAD,0xDB,0x6E,0xB1,0xBC,0xF8,0xFC,0x6F,0x57,0x6D,
+0x08,0x80,0x67,0x03,0x69,0xA9,0xB0,0x0C,0xA5,0x3F,0x15,0x2A,0x11,0xE5,0xDB,0xAE,
+0xC2,0xA5,0x8D,0xE8,0xA3,0xD9,0x32,0xF9,0x25,0x61,0xB7,0xA3,0x0F,0x96,0xA6,0x16,
+0x31,0xF6,0xD2,0x56,0x6C,0xE6,0x94,0xFA,0x17,0xE0,0x6C,0x57,0x36,0x0F,0x4B,0x6E,
+0x78,0x4A,0x92,0x81,0x54,0x3B,0x93,0x7E,0xE5,0x83,0x5C,0xFD,0xC1,0x89,0xDC,0x9B,
+0x9E,0xC1,0xAF,0x77,0xA9,0xE4,0x30,0xF6,0x93,0xD8,0xB1,0x50,0xC7,0x00,0xE7,0x62,
+0x80,0xC9,0x86,0x64,0x41,0x32,0x6C,0x39,0x35,0x84,0x30,0xC8,0x52,0x93,0xA8,0xDF,
+0x03,0x45,0x81,0x05,0xDD,0xA5,0x84,0xDD,0x57,0xC4,0x3C,0x15,0x22,0x0B,0x6F,0x78,
+0x01,0x32,0xDC,0xF3,0x59,0x11,0x74,0x39,0xAC,0xBD,0xC0,0xD1,0x70,0xF0,0x3E,0xFC,
+0xEB,0xD9,0xF9,0x39,0xBE,0x0A,0xB1,0xB0,0x5B,0x1C,0x47,0x33,0x36,0xE8,0x7F,0x06,
+0x95,0x5E,0x01,0xA9,0x6A,0x80,0x98,0x10,0x80,0xAA,0xA7,0x72,0xBE,0x57,0x77,0xB4,
+0x0D,0x96,0x19,0xF1,0x7D,0xE7,0x3B,0x3C,0x5A,0xF3,0xE3,0x44,0x38,0xB5,0xB6,0x03,
+0x5A,0x02,0xE9,0x7F,0x29,0x97,0x5F,0x5C,0xBB,0x53,0xA1,0xFB,0x07,0xE1,0x84,0xB2,
+0xBA,0xB4,0x32,0x3E,0xC1,0xB7,0xF5,0x65,0x64,0x2E,0x13,0x82,0x35,0x6A,0x81,0x52,
+0x14,0x06,0xCD,0xC2,0x1B,0xC3,0xEE,0x63,0xFB,0xC8,0xCD,0x1A,0x3B,0x37,0x48,0x57,
+0x19,0x73,0x9A,0x09,0xB1,0x31,0xDE,0x00,0xBD,0x89,0xD5,0xE0,0x16,0xF4,0xB0,0x83,
+0x9D,0x74,0xA2,0xD4,0x66,0x71,0x97,0xBC,0x2A,0x7C,0x22,0x66,0x75,0x06,0x1A,0xB3,
+0x15,0xD7,0x5F,0x0B,0x90,0x4C,0x71,0x37,0x11,0x85,0x24,0xEF,0x2E,0x70,0xB7,0x5E,
+0xDA,0x8B,0xB7,0xDD,0x83,0x65,0x6F,0x3F,0x5E,0x38,0xB1,0x7C,0x72,0xD6,0x2F,0xDF,
+0xA9,0x79,0x18,0x86,0x08,0xEA,0xF0,0x6B,0xE4,0x35,0x85,0x2E,0x9B,0xBD,0x9C,0x7E,
+0x38,0x4A,0x31,0x6A,0x80,0xAF,0x0F,0x23,0xA1,0x8A,0x1F,0x80,0x47,0x8D,0x1F,0x53,
+0xEF,0x57,0x9F,0x46,0xE4,0x84,0xE7,0x76,0x2D,0x49,0xF2,0x0A,0xC9,0x46,0xCD,0xFA,
+0x1A,0xD5,0x55,0x36,0x0F,0x6E,0x2D,0x53,0x50,0xF1,0xEC,0x79,0x97,0xC6,0x44,0x58,
+0x27,0x23,0xDE,0xD0,0x25,0x66,0x50,0xF0,0xCF,0x17,0x32,0xE1,0x84,0xF5,0x61,0x4A,
+0x87,0x42,0xB9,0xD8,0x43,0x42,0x85,0xAF,0x96,0xAB,0x62,0x2F,0xC5,0x3D,0x15,0xDC,
+0xDF,0xD4,0x43,0x6B,0x18,0x09,0x8E,0x7F,0x14,0xA1,0xD2,0xA0,0x85,0x51,0x8E,0x3D,
+0x53,0xF9,0xD8,0xCB,0x95,0xC7,0x91,0x05,0x03,0x4F,0xB3,0x8A,0xF6,0x12,0xFF,0x4B,
+0x3E,0xB3,0x0A,0xE3,0x94,0x02,0xCC,0x13,0xBA,0xBC,0x05,0x8C,0xD6,0x0E,0x30,0xCE,
+0x56,0xA6,0x2C,0x7D,0x36,0x4F,0x4E,0xF8,0x6A,0xE7,0x4E,0x87,0x30,0x9C,0xA5,0x1D,
+0x23,0xAD,0xB8,0xAF,0x55,0xE0,0x7B,0x95,0xB2,0xAF,0x2C,0x92,0xF5,0x90,0x01,0x1F,
+0xAB,0x0E,0x45,0x70,0x97,0xC8,0xAC,0x0F,0x24,0xB5,0x7F,0x63,0x60,0x41,0xE5,0xBA,
+0x1E,0x5B,0x33,0x49,0xDA,0x21,0x59,0xE5,0x04,0x7A,0x63,0xE6,0x8D,0x78,0x9D,0x23,
+0xF1,0xEF,0xE2,0x35,0xB9,0x8E,0x6C,0x88,0xCC,0xE9,0xB0,0xB5,0x49,0xD0,0xD6,0x56,
+0x5D,0x2A,0x40,0x3F,0x3A,0xBE,0x41,0x54,0x68,0xF6,0x68,0xA4,0x52,0xCA,0xE0,0x5A,
+0x2F,0x09,0x7D,0xAD,0x2B,0x98,0x62,0x56,0xA9,0x99,0x36,0x9E,0xFC,0x1D,0xFD,0x76,
+0x8C,0xCE,0xD5,0x9A,0xA4,0x59,0x40,0x26,0xD2,0xFB,0x5C,0xF6,0x90,0x16,0x71,0x34,
+0x25,0x54,0x83,0x26,0x91,0x89,0x2C,0x21,0x1F,0x4C,0x79,0xEA,0xC1,0x6F,0xDE,0xE4,
+0xFE,0xED,0xE8,0x08,0xE6,0x8B,0xDA,0x7C,0x2B,0x93,0x86,0x11,0x82,0x81,0xBB,0x51,
+0xCF,0xBF,0xA6,0xEC,0xD2,0x9E,0xEB,0x6D,0x5D,0xC6,0x33,0x28,0x6C,0x3A,0x3D,0x9C,
+0xF6,0xC7,0x4B,0x75,0x60,0x30,0x17,0x92,0xE7,0xCB,0x07,0x7A,0x7A,0xFF,0x3C,0xC1,
+0x75,0xE8,0xDA,0xE8,0x51,0xAE,0xC6,0xB1,0x28,0x6D,0x04,0x45,0x0B,0x9A,0x5C,0x94,
+0xA4,0x0C,0x4F,0x4D,0x9A,0xFC,0xFE,0xB5,0x9D,0x46,0xC9,0x65,0x8E,0xFA,0x63,0x77,
+0x55,0x00,0xE3,0x42,0xF4,0x67,0x99,0x62,0xD7,0xDF,0xAA,0xB9,0xF7,0xB6,0x10,0x3C,
+0xC4,0x33,0xCA,0xAE,0x40,0x88,0xE5,0xB3,0xDF,0xCC,0x83,0xA7,0xE6,0xA3,0x24,0x0D,
+0x0F,0xE1,0x44,0x07,0x03,0x9F,0x22,0xFF,0x98,0x62,0x3F,0x2A,0x9E,0x4B,0xB8,0x31,
+0x7D,0xC2,0x79,0x95,0x4D,0xBC,0xB7,0x09,0x1E,0xA3,0xDD,0x9D,0xA0,0xBB,0x65,0xF7,
+0xE9,0xAE,0xA4,0xCF,0xEA,0x7A,0xD5,0xD0,0xC6,0xEB,0xBF,0x88,0x4D,0x82,0x1D,0x6E,
+0x54,0xD1,0x71,0x8B,0xC5,0xF9,0x48,0x41,0xAB,0x88,0x10,0xBD,0xC2,0xED,0x20,0xB0,
+0x34,0xEE,0xF4,0x68,0xF5,0xA2,0xC4,0x74,0xAA,0x67,0xB4,0xCA,0x99,0x9B,0x8D,0x5D,
+0x2A,0x56,0x89,0x1B,0xFA,0x99,0xAB,0xC4,0x12,0x7B,0xA6,0xBB,0x27,0xFD,0x4B,0x37,
+0x1C,0x2C,0x6E,0xBF,0xF0,0x29,0x24,0x46,0xE1,0x11,0x73,0x61,0xEE,0x8A,0x37,0x13,
+0xEE,0x86,0x0D,0x8F,0x5F,0x50,0xF4,0x17,0x9C,0xA9,0x6D,0x12,0x2F,0xD4,0x58,0x29,
+0xC2,0xCA,0xF1,0x27,0x5D,0x5F,0xC9,0x1D,0x42,0x3B,0x7B,0x1C,0xB6,0x7E,0x64,0xAA,
+0x48,0x1E,0x51,0x0E,0x3F,0x35,0xA1,0x66,0x15,0x4E,0x76,0xD7,0x8C,0xDC,0x72,0x54,
+0x77,0x9F,0x87,0x1E,0xE3,0x00,0x3A,0x4E,0xB4,0x75,0x58,0x89,0xA8,0x92,0x76,0xE9,
+0x17,0xA0,0x02,0xFD,0xF2,0x26,0x19,0x4C,0x78,0x2D,0xD9,0xE2,0xEA,0xD8,0xFC,0x2B,
+0xC5,0xE2,0x58,0x67,0x34,0x40,0x73,0xF2,0x3E,0x6C,0xC1,0x18,0xEF,0x2E,0xD8,0x64,
+0x74,0x39,0x48,0x21,0x07,0xD1,0x9F,0xDB,0xBF,0x98,0xF3,0xC3,0xFA,0x69,0x27,0x6D,
+0xAC,0x26,0xEC,0x30,0x9B,0x39,0xA3,0xA3,0x91,0x9E,0xB2,0x43,0x7B,0x5B,0xD3,0xB6,
+0x52,0x28,0x4A,0x02,0x47,0x0C,0x38,0x8B,0x73,0xC0,0x72,0xA8,0xFE,0x3B,0xEC,0x55,
+0x8F,0x68,0x1A,0xA5,0x92,0x43,0x4C,0x3D,0x20,0x7E,0x2D,0x5B,0xED,0x08,0xC9,0x47,
+0xE2,0x22,0xC8,0x8D,0xC3,0xB8,0xC8,0x6F,0xEB,0x13,0x7C,0x5C,0xD3,0xF8,0x14,0x81,
+0xDE,0x05,0xD1,0xA2,0x87,0x2B,0xD2,0x1B,0xE0,0xFE,0xD7,0x16,0x67,0x91,0xD0,0xD6,
+0x4D,0x41,0xA5,0xB8,0xF7,0xAD,0xF9,0x7E,0x8F,0x8C,0x5E,0x00,0xAD,0x64,0x52,0xA6,
+0x4A,0x69,0x0C,0xF8,0xA8,0xA8,0x4F,0x8A,0xFD,0x12,0xB9,0x01,0x1C,0xFB,0xB2,0xBE,
+0xF7,0x16,0xD9,0xBC,0x0A,0xE5,0xCD,0x61,0x0E,0x78,0x6C,0xDB,0x69,0xCC,0x19,0xD3,
+0x93,0xA7,0x3A,0x20,0x04,0x1B,0xFF,0xC7,0x25,0x5A,0xDB,0x14,0x59,0x61,0x0D,0x10,
+0x60,0xDC,0xCB,0xD9,0x6E,0xCE,0x25,0x34,0x94,0xBA,0x44,0x0C,0xC0,0xCB,0x31,0x93,
+0xA0,0x82,0x29,0x32,0x6B,0x45,0xC5,0x06,0xAE,0xAC,0xE6,0xF2,0xF3,0xE4,0xDB,0x04,
+0x18,0xA2,0x08,0xC0,0xF8,0x96,0x96,0xCE,0x77,0x0B,0x20,0x90,0xA7,0x6B,0x50,0x9B,
+0x49,0xCF,0xC3,0xC7,0x21,0x28,0xED,0xD4,0x86,0x70,0xD3,0x69,0x93,0x94,0x8F,0x60,
+0x6C,0x78,0x4C,0xC3,0xA5,0x54,0x47,0x4B,0x9B,0x31,0xD0,0x83,0x7A,0x77,0x74,0xD9,
+0xD8,0x2F,0x88,0xAA,0xEF,0x5F,0xEC,0xA6,0xDF,0x2B,0xA4,0x10,0x5D,0x6E,0x5B,0xE5,
+0x41,0xAC,0xB4,0x00,0x51,0xCC,0x49,0x98,0x1F,0xC1,0x34,0x37,0x70,0xF5,0xFB,0x69,
+0x52,0xBE,0x91,0x33,0xA2,0x9F,0x16,0x26,0xCA,0xB5,0x82,0x78,0x30,0xA5,0x5C,0xB4,
+0x45,0x94,0x7F,0x52,0x3A,0x00,0xC8,0xC0,0x5F,0x66,0x64,0xEA,0x61,0xF7,0xD8,0x4F,
+0xC4,0x4F,0x8B,0x60,0xBA,0x2E,0x89,0xC6,0xC3,0x5A,0x1C,0x02,0x7E,0x53,0xC9,0x97,
+0x55,0xD2,0xA4,0xE3,0x1B,0xC7,0xE2,0x75,0xAA,0xE0,0xF3,0x1D,0xF8,0xBD,0x04,0x2C,
+0x50,0x9D,0x80,0x15,0xE1,0x81,0xFA,0x34,0x6C,0x8A,0x4D,0x7B,0xBA,0xE7,0x9E,0xFE,
+0x18,0x62,0x08,0x50,0x69,0xC8,0x1B,0x53,0xA0,0x6F,0x71,0xAD,0xFA,0xB7,0x39,0x23,
+0x2C,0x99,0xD7,0xAF,0x90,0x39,0xE8,0x28,0x79,0x14,0x6B,0x13,0x97,0x7C,0x3E,0x72,
+0x7F,0x6A,0x69,0xF0,0xF5,0x2B,0x7F,0xE2,0x36,0xDC,0x8B,0xF5,0x84,0x74,0x20,0x5B,
+0x4C,0xFD,0x83,0xDF,0x0B,0x11,0xDD,0xF4,0x33,0x3C,0xB9,0x7E,0xDA,0x96,0xCB,0x9B,
+0xD6,0x2A,0x41,0xF7,0x22,0xB1,0x57,0x20,0x52,0x34,0xDE,0xDE,0x4E,0x66,0x45,0xCC,
+0xE6,0xE9,0x55,0x5A,0xED,0x9A,0xE0,0x02,0x5C,0x06,0x78,0x20,0xFF,0x85,0xD9,0xA8,
+0x12,0x5F,0x0A,0x5F,0xF9,0x30,0x65,0xD4,0xAF,0x00,0xC1,0x96,0x19,0x1A,0x41,0x76,
+0xA3,0x47,0xEA,0xC0,0xF8,0x42,0x82,0x4A,0xF0,0xB6,0x35,0x93,0x31,0xB3,0x01,0x71,
+0x1F,0x0E,0x3D,0x80,0x64,0xA1,0xE6,0xFB,0x15,0x4E,0xB6,0x87,0x9A,0xC6,0x6C,0x46,
+0xF2,0x97,0x45,0xB9,0x71,0x79,0x84,0xB3,0xB2,0x2C,0x6F,0x41,0xF6,0x1B,0x36,0xD2,
+0x59,0xF4,0x7C,0x98,0x5E,0x60,0xB8,0x94,0x18,0x1C,0x0C,0xB3,0x6B,0x75,0x57,0xFF,
+0x21,0xC8,0xE0,0x70,0xD3,0x27,0x04,0x3A,0x5B,0xDB,0x40,0xA4,0xB9,0xFB,0xFE,0x34,
+0x31,0x8E,0x3B,0xC1,0x9C,0x22,0xF2,0x1E,0xC2,0x07,0x0A,0xC7,0x54,0xF0,0xB4,0x9F,
+0x48,0xC5,0x48,0x8D,0x40,0x68,0x91,0x87,0xAC,0x60,0xDD,0x5C,0x58,0x5C,0xBB,0x6E,
+0xC5,0x38,0x64,0xC4,0x83,0x58,0x3C,0x93,0x38,0xEE,0x2D,0x0B,0x9F,0xF4,0x8C,0xCD,
+0xB4,0x6D,0x04,0xA1,0xBC,0x97,0x3F,0x35,0x09,0x3F,0x0E,0x95,0xB0,0x65,0x11,0x4E,
+0x33,0xAD,0x2A,0xE7,0x2E,0xAA,0x4D,0x16,0x67,0x58,0xD9,0x0E,0x46,0xEE,0xF7,0x73,
+0x17,0x10,0x2E,0xA9,0x70,0x0B,0x63,0x2D,0xBB,0xC3,0xF1,0x3B,0xC7,0x38,0xE7,0x4C,
+0x90,0xD0,0x00,0xEF,0xEB,0x23,0x56,0xF1,0x07,0x0D,0xA8,0x6B,0xDE,0xB2,0x76,0xD5,
+0x09,0x53,0x3C,0x45,0xE5,0xFD,0x40,0x63,0x05,0x30,0xA2,0x64,0x92,0x4E,0xDE,0xF9,
+0x98,0xCE,0x13,0xC6,0x42,0xAD,0x9D,0x23,0xA2,0x52,0x7B,0xA2,0x0E,0x36,0xE2,0x11,
+0x51,0xEA,0x6F,0xB1,0x98,0x5E,0x48,0x49,0xA8,0xDD,0xF9,0x12,0x74,0xD1,0x46,0x27,
+0x7D,0x49,0x78,0xD6,0x44,0x14,0x2B,0xD0,0x9D,0xB1,0xFE,0xC2,0x89,0xCE,0x72,0x6F,
+0x26,0xA4,0xD5,0xA0,0x33,0x15,0x8F,0x3F,0xAD,0x3D,0xCB,0x99,0xB6,0x4B,0x91,0x0F,
+0x4A,0xE6,0x59,0xAB,0x6B,0x0D,0x17,0xF7,0x0D,0x82,0x2A,0xDB,0xF5,0x07,0x56,0x18,
+0xDF,0x43,0xBD,0x7A,0x9A,0x9B,0x44,0xED,0xCF,0x55,0xB0,0xF3,0x56,0xFA,0x89,0x90,
+0x69,0x37,0x68,0x35,0x75,0x05,0x3E,0xE4,0xCC,0x35,0xAC,0x39,0xEB,0xB5,0x1A,0x05,
+0x8F,0xE4,0xFD,0xA7,0x7E,0xD5,0x75,0xBF,0x6E,0xB7,0x47,0x74,0xFE,0x93,0x84,0x6D,
+0x3A,0xC4,0xD6,0x6A,0x59,0xAB,0xE9,0xF9,0x40,0x77,0xC0,0x32,0x8C,0xFC,0x92,0xE4,
+0x49,0xB2,0xA7,0x29,0x73,0xBC,0x88,0x17,0xCD,0x68,0xBA,0xFC,0xA1,0x67,0x32,0x68,
+0x3B,0xB3,0x39,0xCE,0x18,0x70,0x09,0x4F,0x7D,0xA9,0x4F,0x5D,0x7B,0x61,0x29,0x1C,
+0x7A,0x25,0x4D,0x06,0xD6,0x29,0x59,0xF3,0x1B,0x7C,0x10,0x79,0x1A,0x06,0x21,0xBC,
+0x3D,0xA8,0xE3,0xBA,0xE8,0x94,0xBD,0xCB,0xBE,0x23,0xC3,0xB0,0xB5,0x57,0xF1,0xC5,
+0xD3,0x65,0x65,0x01,0xD1,0xE2,0x08,0x9E,0x8A,0x12,0xD2,0xA5,0xE7,0x19,0x15,0xF4,
+0x2F,0xCD,0x29,0x2D,0x0F,0x6D,0x67,0xA3,0xFC,0xB9,0x99,0x62,0x96,0x6A,0x63,0xB7,
+0x7E,0x1D,0x86,0x54,0x13,0xA0,0x42,0x14,0xC9,0xD5,0x9E,0xB2,0x0C,0x3C,0xDF,0x1E,
+0xED,0xA3,0xB8,0xF1,0x5D,0xD7,0x53,0xAE,0x62,0xB8,0xEB,0x85,0x72,0xFF,0xC6,0x66,
+0x43,0x8F,0xA5,0x26,0x67,0x16,0x0D,0xC1,0x73,0x9B,0xE9,0xA3,0x51,0xC2,0x54,0x14,
+0x32,0xDA,0xC5,0x43,0x1F,0xBB,0x58,0x22,0x82,0xA0,0x5A,0x1A,0x03,0x8C,0xB0,0x25,
+0xF6,0xAF,0x8E,0xEB,0x4C,0x73,0x8B,0xB1,0xE1,0x95,0x37,0xB5,0xB7,0x5D,0xCC,0xCA,
+0x8A,0xAB,0xD9,0x51,0x7B,0xDB,0x28,0x76,0x99,0x0C,0xDA,0x8C,0xEC,0x8D,0xC7,0x81,
+0x84,0xAE,0x10,0x0C,0xE3,0x44,0xF6,0x90,0x43,0x17,0xDC,0xF8,0x5E,0x72,0x3B,0x2F,
+0x87,0xFA,0xEE,0x8E,0xBD,0xE5,0xD8,0xAB,0x25,0xC2,0x83,0xDC,0xCE,0xA6,0x08,0x36,
+0xB8,0x4B,0xDC,0xDA,0x02,0x04,0x9A,0x0B,0x71,0xA6,0xE3,0xAC,0x5A,0x56,0x86,0x61,
+0x89,0xFF,0x27,0xD3,0xCA,0xE4,0x7C,0x44,0xE6,0x48,0x0F,0x31,0x81,0x46,0xC0,0xD0,
+0x01,0x4D,0x2F,0x6C,0x8B,0x3F,0x9C,0xF2,0x32,0x61,0xAF,0xBB,0x06,0xBE,0x50,0xAE,
+0x9D,0x81,0x37,0x30,0xEC,0xE8,0x07,0x9C,0x85,0x7D,0x62,0x9E,0x1D,0x3E,0xFC,0x38,
+0xCF,0x05,0x66,0xCB,0x28,0x13,0xFB,0xE5,0x01,0x8D,0x86,0x2A,0x6A,0x63,0x0A,0x3A,
+0x76,0x03,0x95,0x7D,0xF3,0x92,0xC9,0x11,0xBC,0x1E,0xC9,0xBF,0x0F,0x20,0xBF,0xD4,
+0x28,0xA1,0x1C,0xFD,0x80,0xEF,0xD7,0xA9,0x57,0xD4,0xEC,0x55,0x8D,0xEA,0xCF,0x21,
+0x24,0x87,0xC4,0x86,0xD7,0x5B,0xBE,0x6D,0x50,0x09,0xD4,0xD1,0x21,0xA7,0x7F,0x92,
+0xF8,0xAA,0x47,0xB6,0x79,0x1E,0x24,0xD2,0xD8,0xF6,0x9C,0x94,0x12,0x8E,0x93,0x03,
+0x91,0xA7,0xEF,0x4B,0x16,0xAE,0x1F,0xDD,0xC8,0x88,0x88,0x77,0x8F,0xE0,0xF2,0x2E,
+0xCD,0x26,0x77,0xED,0x85,0xE1,0x8A,0x60,0xDB,0x96,0x80,0x5E,0xD3,0x08,0x24,0xE1,
+0xA9,0x7A,0xE8,0xCF,0x19,0x02,0xEE,0xD1,0xE9,0x27,0xBF,0x0A,0x2B,0x25,0xF0,0x22,
+0xCA,0x4A,0x42,0x3D,0x9F,0x95,0x19,0x24,0x3E,0x6E,0x03,0x4A,0x2C,0x1D,0x2D,0xA6,
+0x5D,0xFF,0x00,0xDE,0x47,0x2C,0xC2,0x12,0x29,0xF7,0x43,0xCD,0x89,0x4B,0x90,0xAC,
+0x6F,0x59,0xFE,0xD0,0xA4,0xB0,0x73,0x76,0x84,0xC7,0x80,0xD9,0x3E,0x84,0xBB,0x8E,
+0x69,0xE0,0x48,0x23,0x3B,0x28,0x95,0xA8,0x81,0x33,0x36,0x86,0xBB,0x90,0x11,0x58,
+0xDF,0x14,0x4D,0x7C,0x92,0x68,0xBD,0xAF,0x1E,0x82,0x2E,0x66,0x5C,0x91,0x63,0xC6,
+0x06,0x50,0x73,0x2C,0x96,0x50,0x76,0xFD,0x8E,0x39,0x0B,0x84,0xC5,0x00,0xE9,0xDF,
+0x7D,0x4A,0xCD,0xF5,0x5D,0x57,0x1B,0xAC,0x71,0x0D,0xF0,0x5B,0x36,0xF9,0x18,0xA4,
+0xB5,0xAA,0x2B,0xBA,0x55,0x49,0x08,0x85,0x2E,0x5E,0x03,0xE5,0xA1,0x9C,0x0A,0x6E,
+0x55,0x98,0xA0,0xBF,0xB7,0xA2,0x56,0x45,0x01,0x6D,0x94,0x0F,0x03,0x62,0x30,0x78,
+0x0F,0x45,0x34,0xD3,0xD6,0xB1,0xED,0x91,0x8C,0x64,0xFD,0xF3,0x16,0x53,0x21,0x4C,
+0x33,0x3D,0xDC,0x4F,0x72,0xA0,0xF2,0x49,0xBE,0xE5,0x26,0x07,0x57,0xD3,0x0F,0x4A,
+0x89,0xD2,0xC3,0x26,0x9C,0x6D,0x74,0xF2,0x3D,0x74,0xBB,0x28,0x3C,0x72,0xE6,0xF9,
+0xE3,0x6C,0xA5,0xE0,0xC6,0xF7,0x36,0x20,0xCB,0x71,0xF4,0x0C,0x24,0x88,0xA0,0xB8,
+0x58,0xF1,0x5D,0x17,0x56,0x1D,0xF6,0x07,0x1D,0x4D,0x11,0xC0,0x99,0xCC,0x75,0xC7,
+0x42,0x85,0xCE,0x53,0x4F,0x32,0xD1,0x3B,0x74,0xF9,0x46,0x04,0x32,0x86,0x7E,0x2A,
+0xA8,0x15,0xE9,0x93,0xD4,0x92,0xFC,0xB7,0xDE,0x60,0xC5,0x38,0x97,0x38,0xED,0x14,
+0xDC,0xA3,0xA6,0x46,0x84,0x35,0xBC,0x6A,0xED,0x73,0xD7,0x1D,0xC8,0xCB,0xBE,0xAA,
+0x3B,0x5A,0x7C,0x2E,0x17,0x8B,0x82,0xCF,0x18,0xB9,0xA7,0x9F,0x43,0x2B,0x8C,0xAF,
+0xB4,0xD8,0xCC,0x24,0xF0,0x2F,0xF8,0xF9,0x6F,0x70,0x83,0xE3,0x96,0xF1,0x7F,0xC5,
+0xD8,0xDF,0x1C,0x11,0xEF,0x1B,0x05,0xB1,0x08,0x5C,0x20,0xF4,0xF5,0x2D,0x35,0x5C,
+0x54,0xEA,0x47,0x21,0x6A,0xF8,0x3A,0xD1,0x7E,0x07,0xCD,0x59,0x51,0x5A,0x34,0xB3,
+0x31,0xF8,0xD0,0xEB,0xCF,0x9E,0xCA,0xAD,0x39,0x12,0xC4,0xA6,0x93,0x47,0x8B,0x9A,
+0xAA,0xD0,0xE5,0x37,0x19,0x8E,0x4B,0x92,0x77,0x36,0x79,0xA2,0xBD,0x19,0x2A,0xA1,
+0x64,0x89,0xB5,0x8B,0x93,0x1F,0x52,0x0B,0x31,0xB1,0xB9,0x8C,0x88,0x82,0x02,0x7D,
+0x59,0x83,0xBA,0x89,0x6F,0xB7,0x1E,0x27,0x9B,0x28,0x3A,0xB0,0x9E,0x8C,0xDC,0xEF,
+0x6E,0x2B,0x19,0x4E,0xD1,0xDD,0xD8,0x41,0x1F,0x10,0xE7,0xB7,0x2C,0xF5,0x03,0x92,
+0x09,0xFC,0x82,0x20,0x7D,0xD2,0xD4,0xB0,0x53,0x69,0xAC,0xC4,0x4F,0x29,0x49,0x0B,
+0x87,0x0C,0xD5,0xB4,0xD5,0xE5,0x13,0x13,0x1A,0xE4,0x51,0xE8,0xE2,0xEA,0x79,0x1F,
+0x56,0x2F,0x4B,0x85,0x44,0x78,0x3C,0x90,0x7F,0x95,0x04,0x88,0xE1,0xD5,0xB6,0xB9,
+0x27,0x97,0x59,0x99,0xE7,0x05,0x16,0x98,0x5E,0x3E,0x67,0xB1,0x38,0x0D,0x80,0x77,
+0x45,0x4E,0x9F,0x3E,0x3A,0x5F,0x7A,0x0C,0x67,0xD3,0xFE,0xC9,0x5A,0x18,0x58,0x3F,
+0x75,0x2D,0x6D,0x94,0x54,0x3E,0xE7,0x21,0x46,0x78,0x9D,0xF0,0x66,0x37,0x41,0x18,
+0xB2,0x61,0x7A,0xD7,0xDA,0x97,0x35,0xEA,0xAE,0x00,0xA1,0x6C,0xDA,0xBA,0x06,0xB6,
+0xD1,0xCA,0x5B,0xEE,0xDE,0xAF,0xFE,0xB8,0x2F,0xCC,0xCA,0x34,0x8D,0x34,0xF6,0x22,
+0xF2,0xC8,0x7D,0xFF,0xE3,0x3D,0xDD,0xCA,0xF8,0x62,0xE6,0x29,0xD3,0x0E,0x37,0x4D,
+0xC9,0x7B,0xC4,0x0E,0xAD,0xD9,0x8F,0xFB,0x9D,0x13,0xB3,0x49,0x86,0x76,0x9A,0xAE,
+0xFC,0x16,0x6B,0x6D,0x7C,0xA5,0x3B,0x14,0x35,0xD7,0xC6,0x02,0x55,0x25,0x52,0x3D,
+0x4A,0xE2,0x6E,0x32,0x76,0x98,0x39,0x1B,0x64,0x1C,0xC1,0x6F,0x63,0x81,0xB5,0x47,
+0x7B,0xF3,0x7B,0x06,0x38,0x7C,0x6B,0x2A,0xDF,0xF2,0x0C,0xE9,0xD6,0xB8,0xC3,0x12,
+0xD0,0xB8,0xBC,0x70,0x4B,0x0A,0x1A,0x69,0xF3,0x0E,0xA4,0xA5,0xB9,0x66,0x4C,0x2F,
+0xBC,0xBF,0x6C,0x45,0x1D,0xB6,0x80,0xC0,0x8A,0x5F,0x74,0x0A,0x9C,0x7A,0x81,0x98,
+0x1E,0xE1,0xEC,0xCC,0xDD,0xFB,0x00,0x3A,0xB4,0x1B,0xAD,0x5A,0x37,0x30,0x8A,0x75,
+0x01,0x9B,0x22,0x41,0x46,0x5B,0x2D,0xB6,0xF7,0x68,0xDB,0x2B,0x56,0x1A,0x9D,0x9B,
+0xC0,0x6E,0x83,0xF1,0x40,0x40,0xF7,0xC2,0x10,0x1A,0xDA,0xB5,0xD7,0x71,0x51,0xC3,
+0x15,0x31,0xA7,0x97,0x27,0x48,0x96,0x62,0xD8,0x5B,0x4C,0xC1,0x87,0xBF,0x08,0x7F,
+0xEB,0x0B,0x05,0x81,0x26,0x3F,0x79,0xC6,0x75,0x6B,0x8F,0xD5,0xC9,0x02,0x2C,0x7B,
+0x3C,0x91,0x2D,0x43,0xDB,0xE0,0xDA,0x4E,0xA4,0xFE,0x2A,0x31,0x9A,0xF3,0xBA,0x61,
+0x5C,0x8D,0xE7,0x40,0x94,0x73,0x67,0xDB,0xEB,0x48,0x5E,0xE4,0xE0,0x1C,0x24,0x68,
+0xDE,0x66,0xAA,0xE2,0xB2,0xED,0x72,0xB3,0x79,0xAE,0x8D,0x71,0xAB,0x17,0xF4,0x33,
+0xE1,0xA9,0xA9,0x44,0xC1,0x9B,0x03,0xF0,0x95,0xB0,0xCE,0x63,0xC1,0x7F,0x8F,0x51,
+0xFF,0xA1,0x80,0x57,0x29,0x4D,0x5F,0x3F,0x33,0xEC,0x4F,0xFB,0x54,0xEC,0xC0,0xEC,
+0x4E,0x9E,0xD4,0x65,0x04,0x99,0xA7,0xFC,0x11,0x88,0x13,0x64,0x30,0x70,0x23,0x5D,
+0x07,0x22,0x94,0xB2,0x3C,0x44,0xA0,0x78,0xE3,0xEB,0x23,0xCE,0xC7,0xF6,0xB4,0xA8,
+0x77,0xE8,0x61,0x30,0x01,0xD6,0x83,0x0A,0xA3,0x57,0x6A,0x19,0x17,0x9A,0xB3,0x9D,
+0xBD,0xCD,0x8B,0xDB,0xCB,0xA6,0x01,0xFF,0x23,0x09,0xC8,0x90,0x09,0xE9,0xCE,0x25,
+0x60,0xF5,0x0F,0xDC,0x86,0x16,0xAD,0x4C,0x58,0x05,0xEE,0x48,0x60,0xBE,0x7A,0xE1,
+0x9F,0xBD,0x4A,0x54,0xAF,0xFA,0x9E,0xDD,0x68,0xD9,0xC3,0xCB,0xFA,0x10,0x3F,0x5E,
+0x21,0x2E,0xEF,0x6A,0x67,0xA9,0x0D,0x0E,0x0D,0xA8,0x96,0xAB,0xA2,0xA3,0xC5,0xC8,
+0x08,0x8E,0x65,0xBE,0x9F,0x39,0x8A,0x70,0xB2,0x20,0x24,0xA3,0x42,0xE2,0x1E,0x7E,
+0x14,0x43,0x40,0x09,0x1F,0x95,0x91,0xE6,0xEE,0xBC,0xE8,0xBB,0xD9,0x85,0xC9,0x10,
+0xE4,0xA7,0xF4,0x8D,0x42,0x63,0xE6,0xE4,0x15,0xEE,0x6C,0xEA,0x25,0x41,0x32,0x69,
+0x65,0xFB,0x52,0x15,0xAC,0xAE,0x60,0x5F,0x8F,0xAB,0xC2,0x55,0xF6,0x12,0xFA,0xFA,
+0x7E,0xFD,0x26,0xCF,0x53,0x52,0xD2,0xF1,0xD2,0xA5,0xC7,0x9C,0x28,0x8A,0x65,0x1C,
+0xAB,0xA2,0x02,0xA9,0x87,0x61,0x42,0xE8,0x50,0xA6,0x93,0x62,0x06,0xD4,0xC4,0x27,
+0xCF,0xC2,0x72,0xFD,0x77,0xEF,0xD6,0xBF,0x04,0x99,0x22,0x50,0x44,0x6B,0x25,0x87,
+0xC0,0x81,0x4C,0xA6,0xC1,0x17,0x1A,0x05,0xC8,0x7A,0x91,0xF4,0xE8,0xBA,0xB7,0x41,
+0x60,0xC3,0xF3,0x47,0x95,0x25,0x25,0xB4,0x46,0x2D,0x05,0x04,0x8C,0xEE,0xC7,0x21,
+0x5B,0xED,0xAD,0xE6,0x17,0xDB,0x26,0xE0,0x75,0x34,0x95,0xD0,0x59,0x88,0xE3,0x7E,
+0xBD,0x33,0x35,0x79,0x4A,0x12,0x28,0xE5,0x89,0x9A,0x27,0x2F,0x42,0x52,0x97,0x78,
+0x2E,0xE0,0x66,0xB1,0xD0,0xAD,0x6D,0x4B,0x44,0x21,0xA1,0xC1,0xC3,0xCA,0x31,0x24,
+0x57,0x1C,0xA2,0x4A,0x2B,0xFC,0x3F,0xCF,0xB2,0x23,0xD6,0x9C,0x33,0x4E,0x85,0xC0,
+0x39,0x87,0xC5,0x9D,0x77,0xE4,0xA3,0x03,0x1E,0xB5,0xCD,0x1C,0x2F,0xF9,0xA0,0x0D,
+0x8F,0x67,0x84,0x46,0xC8,0xEC,0x2B,0xB1,0x8E,0xCB,0x4A,0xE4,0x06,0x2D,0x2A,0xAD,
+0x19,0x3F,0x37,0xBC,0xAD,0x8C,0x5A,0xE4,0xDD,0x18,0xD9,0x2C,0xB8,0x13,0x8F,0x3E,
+0xA6,0xA5,0x99,0xF9,0x9D,0x0F,0x86,0xC9,0x31,0x89,0xEA,0x05,0x47,0x9B,0xCA,0x76,
+0x62,0xCC,0xCE,0x4D,0xE6,0xD7,0x8A,0xEF,0x81,0x3A,0x46,0x48,0x9A,0x9C,0x4E,0x4E,
+0xDA,0xD2,0xBD,0x30,0x66,0x5E,0xD4,0x4D,0xF1,0xCF,0xC4,0x82,0x50,0x77,0xA4,0x6B,
+0xEF,0x02,0xD1,0x37,0x26,0x89,0x68,0x04,0x63,0xBD,0xE7,0xBF,0x20,0xF5,0x51,0xA1,
+0x1A,0xF5,0x57,0xA0,0xD4,0x23,0x0B,0x34,0xBE,0x39,0xE0,0x87,0x69,0x22,0x11,0x1D,
+0xAB,0x91,0xCB,0x43,0xF6,0xBC,0x6F,0x68,0x6A,0xFA,0x18,0xAA,0xD8,0x10,0x45,0x22,
+0x16,0x04,0x58,0x0C,0x50,0x24,0x33,0xE9,0xBC,0x35,0x44,0x42,0xC6,0x03,0x6C,0x2A,
+0x74,0x6E,0x30,0x77,0xBC,0x36,0x2D,0xAA,0xCA,0x76,0x35,0x31,0xF9,0xA5,0x6F,0xE5,
+0x2F,0x25,0x3B,0xA7,0x2E,0xA3,0xCB,0x79,0x54,0x1E,0x20,0x17,0x7B,0x07,0x22,0x0E,
+0x26,0x5F,0xD4,0x39,0x61,0x76,0x7D,0x0D,0xC7,0x8B,0x9D,0x58,0x1B,0x04,0xE8,0x12,
+0x3C,0x0C,0x25,0xAF,0xB0,0x92,0xE8,0xA8,0x18,0x03,0x3E,0xA5,0xCC,0xC6,0xC0,0x88,
+0x38,0x42,0x98,0x8B,0x1D,0x86,0xD8,0x6B,0x6F,0xA7,0xD1,0xA4,0x32,0xD0,0x62,0xB2,
+0x84,0x12,0x56,0xD2,0xD5,0xF2,0x99,0xFD,0x67,0x07,0xB0,0xC3,0xE7,0xB6,0x46,0xED,
+0xDC,0x93,0x3D,0x1E,0x32,0x6C,0xEB,0xFC,0x7C,0x73,0x6A,0xC5,0x26,0x06,0xE7,0x18,
+0x32,0xF2,0x17,0x09,0x71,0x1D,0x98,0x8A,0xDC,0xFF,0x47,0x5E,0x39,0x8B,0x29,0x62,
+0xDF,0x59,0x5D,0x02,0x4F,0x4D,0xDC,0x53,0x91,0x05,0xC7,0x9E,0x9B,0x02,0xA9,0x3C,
+0x68,0x7C,0x41,0xCF,0x36,0xE2,0x8D,0x83,0x2D,0xAC,0x5D,0xC8,0xF7,0x37,0x79,0x3B,
+0x55,0x13,0x9F,0x40,0x1A,0xAE,0x71,0x2B,0x5B,0xEF,0x2C,0xBB,0x5C,0x41,0xBE,0x70,
+0x00,0xA6,0xA6,0x36,0xA1,0x28,0x9F,0xE6,0xBF,0xDE,0x7E,0xF5,0x6D,0x75,0xAB,0x61,
+0x7A,0x90,0x02,0xD1,0xF0,0x45,0x54,0xE1,0x82,0xD1,0x7C,0xFF,0xDB,0x2A,0xAE,0x95,
+0xE9,0x43,0x51,0x19,0x58,0x0E,0x90,0x94,0xFE,0x3E,0xC8,0x2E,0xEE,0x49,0x01,0xF8,
+0x0A,0x16,0x29,0xB4,0x3D,0x6E,0xE1,0xC1,0x1A,0x0F,0x9A,0x60,0xD5,0xB8,0xB8,0x4B,
+0x65,0x48,0x13,0x75,0xEA,0x73,0x4F,0xED,0x88,0x7D,0xB9,0x5D,0xF6,0xA9,0x9E,0x49,
+0xF1,0x1F,0x9D,0x85,0x6B,0x2B,0x83,0x86,0xB0,0x2F,0x72,0x59,0x95,0x90,0xBF,0xE2,
+0x5F,0xA3,0x10,0xC2,0x83,0xB7,0xFB,0xBA,0x19,0xE4,0xA0,0xD7,0x52,0xD3,0xA8,0xAE,
+0x78,0x9F,0x3F,0xDB,0xA2,0x8E,0x50,0xD9,0x78,0xC9,0x3D,0xB9,0x62,0x79,0x5A,0xCD,
+0x30,0xFD,0x2A,0x03,0x9B,0xF6,0xBD,0x40,0x22,0x5D,0x51,0x64,0x00,0xDE,0x9C,0x14,
+0xFE,0x24,0xF2,0x35,0xBA,0xCF,0x16,0x23,0x5F,0x55,0x7B,0xC7,0x71,0xC2,0x8E,0xAC,
+0x58,0x27,0xCD,0xFA,0xDF,0xAF,0x67,0x76,0xC2,0xD6,0x54,0x56,0xA0,0xF3,0x10,0x8F,
+0x4C,0x8A,0x0E,0xCA,0x96,0x83,0xEA,0x8B,0xF5,0x75,0x93,0xFE,0x2E,0x67,0x47,0x7F,
+0xD5,0xE9,0xD2,0x80,0xDA,0xF0,0x93,0xC0,0xFA,0x84,0x9F,0x52,0x49,0x09,0xDC,0xA8,
+0xA8,0x5B,0xAB,0x5F,0x5E,0xF7,0xAB,0x1D,0x90,0xE2,0x59,0xEC,0x7E,0xCE,0x7F,0x00,
+0x3A,0x4D,0xA5,0x81,0xF4,0xCB,0x32,0x9E,0x38,0xCE,0x15,0x10,0x43,0xCC,0x70,0x0A,
+0xE6,0x78,0x3E,0xA9,0xB2,0xE5,0xB5,0x5E,0xA9,0x57,0x0C,0x9A,0x8D,0x70,0x20,0x53,
+0xDD,0x56,0x60,0x08,0xFC,0xE1,0x91,0xE3,0xB9,0x68,0x8D,0x4C,0x16,0xAC,0x15,0x7B,
+0xF4,0x94,0x7D,0xB7,0xBB,0x1E,0x84,0xEA,0xDF,0x14,0x7D,0xE9,0x73,0x66,0x82,0x69,
+0x1B,0x30,0x0A,0xB6,0xCD,0xB3,0xDF,0x07,0x3C,0x74,0x42,0x6C,0xFF,0x56,0xD9,0x5C,
+0x82,0x53,0xD6,0xFC,0xAA,0xA4,0xF3,0xA4,0x08,0x3C,0xBF,0x73,0x93,0x63,0x09,0x5B,
+0xE8,0x86,0x0C,0x0F,0xDD,0xD8,0x3A,0x80,0xAC,0x0A,0xC5,0x94,0x1C,0x69,0xB9,0xD9,
+0xED,0x0D,0xEC,0x3D,0x28,0x5A,0xF0,0xF0,0x12,0xAF,0xFB,0x07,0xFB,0x01,0x63,0x20,
+0x53,0x52,0x1F,0x6E,0x1B,0x7F,0xE3,0xE2,0xB5,0x72,0xBB,0x57,0x8F,0xD4,0x2C,0x96,
+0x6D,0xF7,0xA1,0xFD,0xB1,0x43,0x7A,0x61,0x15,0xFE,0x96,0xCC,0x65,0x14,0x0B,0x06,
+0x80,0x5C,0xEB,0xF6,0xD8,0x87,0xCE,0x36,0x3A,0xC2,0xB1,0xD5,0x7F,0x50,0x98,0x72,
+0xFF,0xE1,0xAF,0x23,0x0E,0x4B,0xF2,0xD3,0xD0,0xE5,0x71,0x45,0xC4,0xA7,0x60,0xEF,
+0xBE,0xF9,0x55,0x65,0xF8,0x6F,0xF7,0x9C,0x4A,0x37,0x33,0x1F,0xAE,0x61,0x06,0x51,
+0x0D,0x92,0xF4,0x8C,0x7B,0x40,0x66,0x01,0x87,0x8C,0xB5,0xF1,0x14,0x08,0x19,0xBE,
+0x0B,0xD3,0x74,0xA2,0x49,0xB4,0xE7,0xDA,0x96,0x54,0xAA,0x55,0x28,0x94,0xF1,0xC6,
+0x3F,0xC6,0x45,0xB3,0xC4,0x48,0xEE,0xB3,0x85,0x80,0x11,0x34,0x72,0xF8,0x65,0x1B,
+0x29,0x64,0xBB,0x89,0xEB,0xA2,0xDD,0x24,0x6E,0x40,0x4F,0xD6,0x92,0xFD,0xEE,0x29,
+0xE3,0xF3,0xDE,0x9B,0xB4,0x1C,0x8E,0xD7,0x70,0x69,0x5C,0xDE,0x5A,0xB2,0x08,0xC9,
+0x98,0x00,0x27,0x6A,0x4B,0xC3,0xBA,0x2C,0x77,0x38,0x31,0x15,0x21,0x6B,0xB6,0xD3,
+0x81,0x99,0xB6,0xE0,0xDB,0x21,0x01,0x09,0x4F,0x6A,0xFA,0x11,0xF8,0x3B,0x88,0x97,
+0x1F,0x7E,0xB7,0x92,0x44,0xC1,0xB0,0x11,0x0F,0x6D,0xD2,0xB8,0x4E,0x64,0x8D,0x63,
+0xC9,0xFB,0xA3,0x38,0x41,0x9E,0x44,0xA7,0x97,0xB3,0x34,0x27,0x48,0x97,0x3B,0xDA,
+0xEB,0x4C,0x6C,0x13,0xEC,0x8A,0x74,0x64,0x0B,0xD7,0x85,0xC4,0x7A,0x99,0xC5,0x7C,
+0xF8,0xD7,0xE1,0xCC,0xD0,0xD0,0x65,0xA1,0x6A,0xDD,0xA5,0x32,0xB8,0xAE,0xA8,0xA6,
+0x7E,0x6C,0x2C,0x22,0x65,0x85,0x13,0x98,0x5B,0xC8,0x91,0x23,0x5C,0xFC,0x99,0xE8,
+0x32,0x40,0x84,0xDE,0x0A,0xB8,0x9C,0x46,0xF0,0x0F,0xE7,0x68,0x2A,0x8D,0xDA,0x9B,
+0x9D,0x39,0x54,0x8F,0x2F,0x0F,0x51,0x5A,0x9C,0xDF,0xD2,0x6F,0x96,0x17,0x73,0xCD,
+0xA3,0x9C,0xEA,0x1C,0x3E,0xB5,0x26,0x14,0xF1,0xE8,0x79,0x1A,0x8F,0x69,0x0B,0x0E,
+0xBE,0x4B,0xC6,0xB2,0x60,0xDA,0xE7,0x2E,0xD2,0xCE,0x68,0x18,0x1D,0x4A,0x79,0x33,
+0xDE,0x2E,0x93,0xC3,0x35,0x39,0x4A,0x56,0xE9,0x77,0x99,0xAB,0xF9,0x18,0x48,0x7D,
+0x95,0x86,0xE6,0x07,0xE6,0xAA,0x82,0x05,0xDC,0xD8,0xFA,0xC6,0x85,0xAC,0xA7,0xAC,
+0x42,0xC6,0xAF,0xBB,0x7A,0xEC,0xFC,0x22,0xCB,0xB6,0x16,0xDB,0x1F,0xEE,0x75,0xF6,
+0xA6,0x17,0x0A,0x2E,0x29,0xF6,0x6A,0xD3,0x1C,0x9E,0xD4,0x41,0xC0,0x4D,0xFD,0x0B,
+0x73,0x58,0x7E,0x98,0x53,0xFF,0xF4,0x3C,0x7C,0x54,0xD7,0x5D,0x53,0xF0,0x68,0x44,
+0xE6,0xCA,0xAD,0x7E,0x18,0xA4,0x24,0x37,0xFE,0x19,0x75,0xB6,0xCD,0xE5,0x00,0x62,
+0xCD,0x07,0x8D,0xCB,0x84,0xE2,0x5A,0x10,0x3E,0x5F,0x5B,0x31,0xDB,0x97,0x89,0x0D,
+0xBC,0x44,0xFB,0xB8,0xE5,0x0C,0x4D,0x3A,0x21,0x91,0xD6,0x4B,0x7B,0xBA,0x05,0x96,
+0x22,0xA3,0xFA,0xCA,0x64,0x54,0x81,0x51,0xE0,0x30,0x66,0xBE,0x60,0x60,0x71,0x90,
+0x56,0x6B,0x6C,0x8B,0x34,0xE8,0xD8,0x9F,0x35,0x14,0x00,0xE1,0x68,0x01,0xD1,0xF7,
+0x8E,0x10,0x4A,0x87,0xA4,0x0A,0x63,0xBA,0x57,0xD2,0xA7,0x38,0xF6,0x14,0xB9,0xD1,
+0x07,0x90,0xE8,0xD9,0xBA,0xB2,0x1E,0xC9,0x9D,0x38,0x4C,0x1D,0x86,0x96,0x4C,0x1B,
+0xDF,0xEB,0xCE,0xD5,0xD3,0x76,0xAA,0x9E,0x40,0xBC,0x4B,0x25,0x36,0x3A,0xFF,0x56,
+0x5C,0xDB,0xE3,0x09,0x49,0xC9,0xEF,0x30,0xBF,0xF9,0xC3,0x6D,0xDA,0x09,0x6E,0x7F,
+0xF4,0x26,0xEE,0x60,0x72,0xC6,0x5F,0x5F,0xC1,0x1A,0xD3,0x79,0xBB,0x94,0x43,0x11,
+0x6C,0x80,0x6F,0x3C,0xE7,0x7B,0x10,0xCC,0xDF,0x33,0xC0,0x71,0x6D,0xC8,0x8C,0xF9,
+0xF3,0xA2,0x33,0x58,0x83,0xCA,0xF3,0x50,0x6E,0x67,0xF2,0x4E,0xB9,0x30,0x4F,0xD4,
+0x59,0x50,0x03,0x3B,0x74,0x3F,0x64,0xD6,0x27,0x27,0x25,0xF2,0x64,0x37,0xCB,0xEC,
+0xC2,0x3C,0xE2,0x7B,0x45,0x6D,0x2A,0x32,0x45,0xE1,0x82,0x2B,0x8E,0xF7,0xEC,0x7C,
+0x0B,0x61,0xE7,0x75,0x9B,0x8B,0xB5,0xAA,0x5E,0x95,0x58,0x2D,0x72,0x45,0x42,0x83,
+0xF5,0xE3,0xB3,0x76,0xB5,0xB0,0x14,0xF4,0x8B,0xB1,0x3E,0x72,0x41,0xD5,0x5B,0x57,
+0xC7,0xB7,0x02,0x49,0xF7,0x10,0xF5,0x4B,0xEF,0xC1,0x6A,0x12,0xCF,0x41,0x0C,0xA7,
+0x3C,0xBE,0xB6,0x78,0x11,0x5F,0x15,0x83,0x01,0x5C,0xFD,0xFE,0x89,0x9A,0xBD,0xB7,
+0x34,0x01,0x04,0xF0,0xF1,0xE9,0xCE,0xC2,0x28,0xD6,0x29,0x5E,0x19,0x1D,0xC3,0x4F,
+0x2C,0x5D,0xC8,0x6C,0x6A,0x87,0x19,0xA5,0x34,0xF3,0x9E,0x93,0xB5,0x06,0x55,0xCF,
+0x7D,0xA6,0x4C,0x3E,0x96,0xFE,0xE2,0x61,0xC4,0x47,0x1A,0x77,0x43,0x71,0x57,0x92,
+0x13,0x3D,0x2B,0xE9,0x76,0x48,0x39,0x20,0x26,0xC0,0xBB,0x80,0x70,0xE1,0x4E,0x46,
+0xCC,0xC2,0xD0,0xDD,0x85,0x33,0xC8,0xD9,0x5D,0x7E,0x62,0x9A,0x77,0x8C,0x1F,0x8D,
+0x72,0x9D,0x23,0x8E,0x12,0xF9,0xDA,0xBC,0x95,0x98,0x2D,0x7A,0x69,0x9F,0x36,0x85,
+0x98,0xB2,0xB4,0xBD,0xB0,0xEF,0xE0,0x42,0x75,0x13,0x28,0x48,0x82,0xC1,0xF6,0x67,
+0x5A,0x9A,0x63,0x27,0x3A,0x3B,0x40,0x6B,0x7D,0xB3,0x49,0x2F,0x0C,0x55,0xA1,0x97,
+0x4E,0x37,0xA0,0x17,0x8D,0x19,0x6B,0xA4,0x4F,0x4D,0x47,0x89,0x90,0xE4,0xC5,0x74,
+0x11,0x32,0x16,0xE3,0x08,0xCF,0xC1,0xB0,0x49,0xFB,0xB4,0x30,0x08,0x02,0x1B,0xEB,
+0xF1,0xAD,0x0E,0x52,0xEF,0x51,0xB3,0xB1,0xFF,0xFE,0xEB,0xC4,0x48,0x2A,0x1C,0x42,
+0x57,0xAE,0x31,0x9D,0x2A,0x50,0xA5,0xEC,0x78,0xEE,0x80,0x21,0x3D,0x61,0xB4,0x86,
+0x93,0xC7,0x66,0x29,0x81,0xBD,0xAE,0xA6,0x62,0x7D,0xC4,0x55,0x12,0x46,0x88,0x9F,
+0xAF,0x6D,0xE5,0xB0,0x24,0x83,0x3D,0x18,0x88,0x5A,0x04,0xC5,0xB2,0x6B,0x04,0x04,
+0x8A,0x5E,0xF7,0xA3,0x7B,0x3D,0x6E,0xEB,0xFC,0x15,0xD1,0x73,0x15,0x2B,0xD9,0x54,
+0x64,0x3F,0xDD,0xB4,0xA5,0xDB,0xF1,0x73,0x2F,0x87,0x44,0x95,0x91,0x7A,0x22,0x06,
+0x90,0x0D,0x06,0x35,0xE4,0xDD,0xDF,0xF3,0x13,0x6F,0xD8,0xED,0x80,0x65,0xFA,0xA2,
+0xBF,0x8E,0x9B,0xA4,0x8F,0x6E,0x36,0x52,0xA9,0x70,0xB1,0x02,0x4D,0xE3,0x41,0x4C,
+0x9B,0x78,0xD4,0xA1,0x97,0x2F,0x70,0xA8,0xC3,0x16,0x77,0xBC,0xD7,0xA1,0x93,0x16,
+0x31,0x8A,0xE4,0xC2,0x20,0x0D,0x5B,0x67,0x11,0x63,0x7C,0x28,0xBE,0x5D,0x1E,0x1F,
+0x35,0xC4,0x59,0xE6,0x0E,0x36,0xFA,0x39,0x8A,0x56,0xA0,0x00,0xAE,0xDC,0x21,0xC9,
+0x1B,0x82,0x99,0x61,0x3B,0xEA,0xD2,0xA2,0x44,0x06,0x1C,0x59,0x3F,0xC5,0xB8,0x43,
+0x27,0x28,0x1A,0xF8,0x2D,0x78,0x0C,0xAC,0x79,0x09,0x1E,0x53,0x97,0x89,0x94,0xBF,
+0x08,0xAB,0x87,0x69,0xF0,0x38,0x5C,0x0B,0x1B,0xCF,0xB9,0x8A,0xAB,0x15,0x7C,0xC7,
+0x74,0xDC,0xA3,0xA0,0x25,0x52,0xAF,0xD1,0x94,0x7F,0xB3,0x08,0x0F,0x6F,0x4A,0x20,
+0x63,0xBB,0x00,0x8C,0x46,0xCB,0xE5,0x0D,0xF8,0xAF,0x86,0x0F,0x3B,0x92,0x02,0x3F,
+0xCE,0xCD,0xED,0xD7,0xE2,0x24,0xE4,0x7A,0x74,0xF4,0xB6,0x3A,0xD8,0xAD,0x62,0xBA,
+0x26,0xED,0x47,0xEE,0x8B,0xE0,0x50,0x2D,0x07,0xEA,0x0E,0x47,0x25,0x81,0x2B,0x37,
+0x5E,0xD4,0xDE,0x03,0xE9,0xA8,0x88,0x38,0x65,0x2C,0xA9,0x9E,0x7F,0xED,0xBF,0xEA,
+0x67,0xF5,0xBD,0xA8,0xD5,0x8F,0x91,0x17,0x55,0xDE,0x03,0xFD,0x1E,0x70,0x92,0x84,
+0xFB,0x1D,0x81,0xD0,0x69,0x21,0xD6,0x9A,0x92,0xC9,0x40,0xB1,0xB7,0xA2,0x59,0x0A,
+0x20,0xAC,0xC7,0xC0,0x9F,0x05,0xD3,0xD5,0x4E,0xAA,0xD9,0xFB,0xFD,0x4F,0xF2,0x01,
+0x53,0xE0,0x8C,0xB9,0xFC,0x9C,0x99,0x09,0x29,0x31,0xB7,0x2C,0xF2,0x43,0x03,0xAD,
+0x7F,0xA9,0x71,0x34,0x51,0x88,0xA9,0xCA,0xA7,0x66,0x23,0xDC,0xC5,0x84,0xA0,0x05,
+0x1F,0xCC,0x24,0x45,0x52,0x2E,0x66,0xF5,0x76,0xF8,0x12,0xFF,0x58,0xAB,0x23,0x94,
+0xF2,0xA4,0x5D,0x47,0x68,0x24,0xA2,0x61,0xA7,0x32,0xAA,0xF4,0x36,0x29,0x1D,0x69,
+0x3C,0x29,0x27,0x58,0x45,0xA8,0x02,0xFA,0xD4,0x43,0xE9,0x82,0x21,0x48,0xF3,0x43,
+0x9D,0x99,0xD2,0x99,0x9F,0xDC,0x19,0xFC,0xA6,0xDD,0x0E,0x83,0xED,0xC9,0xAB,0x28,
+0xB9,0xFF,0x8D,0x4C,0xFE,0x7C,0x11,0x9B,0xE7,0xA9,0xC6,0x15,0xB4,0x99,0x17,0xE6,
+0x1B,0xE9,0xB7,0xB2,0x11,0xD8,0x66,0x9A,0xD7,0xBD,0x6B,0xD6,0x90,0xD7,0x13,0x5B,
+0x33,0x2B,0x2D,0x65,0xB2,0x50,0xB9,0x67,0x42,0x59,0xBA,0x73,0x06,0x84,0x09,0xAA,
+0xF9,0x28,0x31,0x05,0x0F,0xC5,0x2A,0x28,0xF4,0x8C,0xF5,0x07,0x98,0xFE,0x00,0x45,
+0xB4,0x8A,0xDA,0x87,0x1A,0xAD,0xB4,0x0E,0x12,0x19,0x67,0xD4,0x48,0xB5,0x5B,0x4E,
+0x45,0x86,0x76,0x88,0x96,0xA6,0xF6,0x62,0x70,0x5C,0x31,0x93,0x4A,0x93,0x4A,0x6D,
+0x63,0x97,0x74,0xAB,0xB5,0xD4,0x64,0x5F,0xDE,0x41,0xE6,0xBF,0x8B,0xCD,0x25,0x57,
+0xDA,0x66,0xC7,0x90,0xE7,0xE5,0x80,0x11,0xAF,0x21,0x83,0xEA,0x26,0x98,0xC6,0x2F,
+0x75,0x05,0xAA,0xA5,0x53,0x0A,0xFC,0xC0,0x6B,0x6A,0x2B,0x9F,0xEE,0x4B,0x55,0x7C,
+0x70,0x5A,0x5E,0x13,0x51,0x05,0xC1,0xCA,0xA0,0x07,0x7A,0x98,0x09,0x7D,0x2F,0xD8,
+0x65,0x6E,0x4F,0x22,0x03,0x34,0x25,0x84,0x4E,0x81,0xC1,0x55,0x7F,0xC8,0x7A,0xE1,
+0xA2,0x18,0x04,0x89,0x72,0x77,0x53,0xF7,0xB2,0xCD,0xED,0xFD,0xF0,0xA7,0x47,0x3F,
+0x72,0x2D,0x03,0xE5,0xE8,0xDE,0xEF,0xA1,0xE3,0x62,0x94,0x2D,0x3D,0x82,0xF0,0x23,
+0xF1,0x02,0x92,0x78,0x65,0x10,0xF0,0xDB,0x14,0xC3,0x13,0xCF,0x79,0xBC,0xA0,0xFA,
+0x7B,0xD6,0x32,0x51,0xE2,0x6E,0x60,0x23,0x9C,0xCB,0xAC,0x7D,0xA2,0x5C,0x16,0xBB,
+0x5E,0x61,0xFF,0x4D,0xF9,0xF8,0xCC,0xA3,0x00,0xD3,0xF0,0xB1,0x75,0xC7,0x78,0xDC,
+0xEA,0xE5,0x1B,0xBD,0x8E,0xFA,0x3A,0xFE,0x52,0x82,0x0B,0x35,0x8E,0x3B,0x01,0x18,
+0x4C,0x7D,0x47,0x3C,0x08,0x41,0xF7,0x10,0x17,0x3D,0x91,0x9B,0x46,0xE8,0x92,0x4B,
+0x38,0xA7,0x41,0x27,0xBA,0xEF,0x0B,0xEF,0x19,0xF4,0xCC,0x9E,0xD9,0x36,0x74,0xD3,
+0x1C,0xC1,0x1E,0xF2,0x2A,0xF6,0x38,0x3B,0x1A,0x0A,0x4E,0xCA,0x78,0x18,0x4F,0x8D,
+0x6C,0x95,0x7E,0x96,0xBE,0xA1,0xB6,0xCB,0x25,0x38,0x1A,0x7B,0x99,0x5A,0xEF,0x32,
+0xB7,0x2C,0x15,0xB8,0x6B,0xEE,0xC2,0x7D,0x0C,0x0B,0x8B,0x97,0x33,0xDF,0x39,0x26,
+0x9E,0x3F,0x1D,0xA6,0x37,0x21,0x14,0x95,0x50,0x93,0x2D,0x16,0x7C,0x4A,0x84,0xB5,
+0xCA,0x0D,0x22,0x17,0xCF,0xE2,0xC0,0xB8,0x34,0x0C,0x0F,0x4A,0x9F,0x2E,0x35,0x29,
+0x8A,0xDA,0x9E,0x5E,0xC8,0x66,0x1D,0x80,0x57,0xA6,0xFD,0x7A,0x08,0xD9,0xC0,0xAF,
+0x7F,0x58,0x54,0x2E,0xEB,0x14,0x8F,0xBD,0xEB,0x71,0xBD,0x33,0x0F,0x09,0xF5,0xC3,
+0x95,0xB3,0x71,0xE4,0x69,0xE1,0xFF,0x77,0xB5,0xF8,0x3D,0x91,0x72,0x17,0x4D,0xB0,
+0x11,0xB4,0x49,0x39,0xC5,0x52,0x4F,0x3A,0xB9,0x20,0x46,0xB7,0xC6,0x7E,0x89,0xE7,
+0x54,0x3C,0x01,0xC6,0xF6,0xC3,0xA3,0x13,0x65,0xA3,0x76,0x9A,0x83,0xE4,0x36,0x49,
+0x2A,0xBB,0xF9,0x56,0x85,0x8F,0xE8,0x6A,0xD8,0x9B,0x92,0xA4,0x9D,0x08,0x24,0x0A,
+0xC2,0x27,0x81,0x6A,0x9A,0x57,0xF9,0xCE,0x59,0x6F,0xA0,0x7F,0xB3,0x49,0x22,0x8A,
+0xDD,0x4E,0x6E,0xD0,0x1C,0xEC,0x34,0x20,0xC8,0x40,0x23,0xE2,0x5A,0x22,0x91,0x2B,
+0xBB,0x88,0xD0,0xBA,0x5E,0x3E,0xAE,0x7A,0xCD,0x64,0xD5,0xAD,0x1C,0x3A,0xD0,0xD1,
+0x43,0x7F,0x4D,0x01,0x9E,0x19,0x44,0xEA,0xF1,0xA8,0x03,0x48,0xC9,0x87,0xAF,0x95,
+0xD0,0x3B,0x39,0x1B,0xB9,0x25,0x6B,0xF3,0x45,0x6C,0x6A,0x1F,0xC2,0x2C,0x42,0xDF,
+0xF7,0xFB,0xA9,0xF1,0x94,0xA9,0xCB,0x68,0xDC,0x50,0xC0,0x9C,0x51,0x89,0x7C,0x61,
+0xB8,0x2E,0x1F,0x85,0xD4,0x74,0x6C,0x38,0xCF,0x75,0xF3,0x8E,0x02,0xD6,0xC2,0x92,
+0x1E,0xB6,0x43,0x04,0xAA,0x0C,0x75,0xFB,0x4B,0xA5,0x37,0x1A,0x2C,0x97,0xC4,0x12,
+0xE0,0xB8,0xE5,0x36,0x1B,0x68,0xE9,0x18,0x7B,0xB1,0x9A,0xD9,0x07,0x20,0xE6,0xDD,
+0x56,0x4B,0x5C,0x30,0xFD,0xB6,0x71,0x87,0x8F,0xEE,0x9F,0x6F,0xAD,0xA5,0x30,0xC9,
+0x53,0x14,0xA8,0x86,0xD5,0xB1,0x31,0x2E,0x3E,0x0E,0x00,0x77,0xDF,0x42,0xAE,0xC8,
+0x6D,0x44,0xEC,0x5F,0x1E,0xE3,0x09,0x2A,0x85,0xEC,0x90,0x52,0x55,0xDB,0xB7,0x59,
+0xD3,0x9D,0xF6,0x24,0x73,0xB2,0x0E,0xE1,0xB1,0x33,0x6F,0xA9,0xA4,0x28,0xCC,0xA0,
+0x35,0xD2,0x16,0xEC,0x60,0x9B,0x10,0xE9,0xE2,0x8D,0x30,0x5A,0xB6,0xBF,0x06,0xC5,
+0xBE,0xD7,0x24,0x0C,0x3E,0x5B,0xFB,0x0B,0xD1,0x67,0x1F,0xCD,0x8C,0x1D,0x10,0x3B,
+0x07,0x26,0x97,0x37,0xB0,0x5F,0x84,0x6D,0xAC,0xDF,0x01,0xBE,0xBF,0x32,0xFA,0xAC,
+0x9C,0x48,0x40,0x50,0xBC,0xAE,0x8B,0xC1,0xD5,0xAC,0x4D,0xF5,0xF5,0x51,0x63,0x70,
+0xCB,0xDC,0xB0,0xDE,0x7B,0x0D,0xBC,0x69,0x58,0x80,0x04,0x08,0xC5,0xFC,0x77,0xB3,
+0x55,0xED,0x93,0x0F,0x54,0x8E,0x21,0xF8,0x29,0xE0,0x61,0x5D,0x0A,0xFF,0xD1,0x8C,
+0x47,0xF1,0x2B,0x7E,0x7E,0x86,0x5C,0x5B,0x82,0xD9,0x40,0x3E,0x3C,0x26,0x1F,0x54,
+0x81,0x56,0xF2,0x1C,0x12,0x12,0x06,0x86,0x6F,0xA1,0x79,0xA7,0xE4,0x44,0x57,0x41,
+0x73,0xFC,0x91,0x2C,0x8F,0x3F,0x67,0xE8,0xC4,0x98,0x58,0xC4,0xFD,0x78,0x70,0x6E,
+0x64,0xBF,0xDD,0xEB,0x5D,0xF4,0xCE,0x66,0xBC,0x04,0xB0,0xF8,0xBA,0xC4,0xDE,0xE3,
+0x62,0x46,0xE6,0x62,0xEA,0xD1,0xD2,0xAB,0x05,0xF7,0x06,0xFE,0x30,0x5D,0xC7,0x72,
+0xD2,0x4C,0x64,0xED,0x90,0xE7,0x76,0x4C,0xCC,0x8B,0x71,0xDA,0xC3,0x88,0xAD,0xA8,
+0x02,0x79,0x63,0x81,0x6D,0xAF,0x42,0x53,0xE0,0x9C,0x16,0x79,0x89,0xEB,0x34,0x74,
+0x59,0x49,0x56,0x0D,0x52,0xCF,0xA1,0xD6,0xBB,0x31,0x60,0x94,0x88,0x4F,0xDB,0x03,
+0xCE,0x83,0x44,0x68,0xA2,0xB3,0xC7,0x73,0xAE,0xCE,0x27,0x9D,0x37,0x8D,0xF2,0x1E,
+0xFB,0x5F,0x6C,0xF3,0x23,0x8C,0xD7,0xA5,0x8A,0xCA,0x69,0x20,0x96,0xA3,0xC9,0x40,
+0xAB,0xE3,0x35,0x3D,0x3A,0x15,0x46,0x2F,0x0D,0xE4,0x2F,0xE0,0xBE,0x96,0x15,0xDB,
+0xA4,0xE1,0x3F,0x00,0x76,0x39,0xEE,0xD3,0x94,0xD8,0x85,0x63,0x60,0x80,0x87,0xD5,
+0x36,0xB1,0x7E,0x26,0x1D,0xF3,0x84,0x74,0xB6,0x57,0x79,0xC6,0xB8,0xEB,0x41,0x18,
+0x03,0x61,0x12,0x21,0xB4,0x69,0xD2,0xC8,0x66,0x2E,0xD6,0x97,0xA4,0x5C,0x64,0xD5,
+0x75,0xA6,0xB9,0x6A,0xF7,0x18,0xA1,0xBE,0xCE,0x02,0x9A,0x6B,0x7A,0x61,0x0B,0x5A,
+0x41,0xB3,0x88,0x7B,0xC6,0x4A,0xEF,0x5A,0x03,0xB9,0x1C,0x85,0x43,0x34,0xBE,0x2C,
+0x1E,0xB6,0x3E,0x8F,0xC9,0x48,0xE5,0x67,0x04,0xE8,0x71,0x4E,0xE7,0x4E,0x88,0xCB,
+0x7D,0x19,0x0B,0xE2,0x26,0xFC,0x34,0x1B,0x71,0x40,0x3A,0x8A,0xB4,0xDD,0x5B,0x03,
+0x8C,0xA0,0x30,0x51,0x17,0xAE,0x7A,0xFF,0x24,0x25,0x5A,0xFB,0xCC,0x3E,0x0E,0xAE,
+0x9D,0x86,0x13,0x53,0x65,0x8D,0x47,0x6D,0x08,0xF2,0x47,0x55,0xF6,0x51,0x50,0x6F,
+0x91,0x77,0x1C,0xFF,0x6E,0x01,0x2B,0x2F,0x4F,0xA4,0x02,0x37,0xD5,0x40,0x76,0x6D,
+0x33,0x3A,0x9E,0x14,0x06,0x14,0x0D,0xB1,0x9C,0x36,0x97,0xD1,0xDE,0x1B,0x3D,0xBD,
+0x30,0xF0,0xFE,0x08,0x93,0xA9,0x42,0x22,0xE8,0x79,0x42,0x67,0x31,0x12,0x47,0x23,
+0xF2,0xD8,0x29,0x92,0x1B,0x0A,0xBF,0xFD,0x4D,0xA8,0xA6,0xF2,0xC0,0x08,0x14,0xB5,
+0xE4,0x7A,0xD7,0xA8,0xBF,0xE5,0xBE,0x8A,0x8E,0x05,0xB2,0xC2,0x7D,0x0C,0x5A,0x91,
+0x82,0x5E,0x02,0xF7,0x1F,0x84,0xD9,0x82,0x18,0xCD,0xC6,0x83,0xB3,0xB0,0x0A,0xC8,
+0x32,0xFF,0xC3,0x02,0x6B,0x5E,0xDF,0x99,0x19,0x2A,0x58,0xF1,0xD8,0xE8,0x8B,0x04,
+0xBF,0x31,0xDC,0x78,0xE7,0x73,0x44,0x39,0x6F,0x69,0x29,0x82,0xF2,0x06,0xEA,0x13,
+0x27,0x97,0x5D,0x24,0x00,0xED,0x36,0x38,0x01,0xB5,0xB8,0x40,0xD2,0x2D,0x27,0xA6,
+0xAF,0xD2,0xA2,0x6C,0x91,0xDE,0x1F,0xD4,0x2C,0x85,0x3B,0x9C,0x7C,0x92,0xBD,0xE3,
+0xA8,0x56,0x7F,0x54,0x22,0x72,0x52,0x64,0x0A,0xFE,0xE3,0x90,0x2B,0x56,0xD4,0x57,
+0x43,0xBC,0xB5,0x71,0xD7,0xF0,0x98,0x14,0xA8,0x7E,0x6A,0xCE,0x58,0xEE,0xCA,0x2A,
+0xC1,0x49,0xC5,0xBB,0xA5,0xD3,0xA5,0x86,0xE1,0x3E,0xBD,0x72,0x34,0xDB,0x1A,0x2D,
+0x16,0x09,0x8C,0x07,0x21,0xD4,0x9D,0x5B,0xD1,0xCC,0x17,0x11,0xB2,0x2E,0xED,0xBA,
+0x24,0x5D,0x3D,0x38,0xE2,0x2C,0xB0,0x8F,0x8D,0xEE,0x88,0x75,0x2E,0x9F,0x89,0x59,
+0x37,0x74,0x23,0x30,0x2D,0x70,0x58,0x59,0x0C,0x48,0x10,0x29,0xBD,0x22,0x1C,0x16,
+0x8E,0xAF,0x0D,0x5B,0x62,0xA5,0xEE,0x2D,0xE0,0xD9,0x23,0x00,0xA9,0xF4,0x99,0xBC,
+0xDA,0xDF,0x69,0x3B,0x35,0x31,0x1E,0xA3,0x51,0x8D,0x11,0x3F,0x16,0x54,0xDB,0x5D,
+0xBC,0xFB,0xBC,0x64,0x2C,0xA1,0xCA,0x90,0x05,0x0F,0xEF,0x3C,0x48,0x6F,0xF5,0xFC,
+0x66,0x8F,0xA7,0x62,0x82,0x13,0x35,0x6C,0x00,0x52,0x26,0x32,0xD0,0x89,0x2B,0x63,
+0xFE,0x29,0x26,0x3E,0x39,0x95,0xDB,0xA1,0xAE,0xC8,0x99,0x77,0x83,0x1A,0xF8,0xAB,
+0x7A,0x9D,0xD6,0xDA,0x3B,0xE2,0x86,0x57,0x2A,0x33,0xC8,0x25,0x47,0x63,0x04,0x50,
+0xCD,0xB8,0xCA,0x17,0xAD,0xF9,0x06,0xFB,0xE6,0x6F,0xD0,0xB9,0x20,0x0D,0x9F,0x87,
+0x19,0x32,0xE3,0xB7,0xD3,0x7E,0xFE,0x6B,0x54,0xD0,0xD8,0x31,0x61,0xBB,0x7F,0x5C,
+0xCC,0x7D,0x97,0x01,0x98,0x25,0x2E,0x60,0x56,0xDC,0x7C,0xF4,0xA0,0x0B,0xDE,0xA9,
+0xC9,0xF6,0x77,0x33,0x58,0x7B,0xCC,0x8B,0xC1,0xF3,0x96,0xC7,0x5E,0x1D,0x7C,0x93,
+0x86,0x10,0xBF,0xD3,0x71,0x68,0xC4,0x95,0x32,0xAC,0x28,0x94,0x3B,0xD7,0xEB,0x81,
+0x5F,0xAE,0xC4,0xC9,0x20,0x05,0x0F,0x92,0xC9,0x53,0xF7,0xA0,0xC2,0xAC,0x18,0x70,
+0x0F,0x90,0x1D,0x8D,0x72,0xCE,0x0B,0xAA,0xEC,0xC3,0x15,0x1B,0x53,0xB5,0x81,0xFA,
+0x50,0x95,0xAB,0x79,0x75,0xE6,0xA2,0xEA,0xF4,0x5C,0xF5,0xAA,0x52,0x2B,0x66,0x88,
+0xA3,0x23,0xAD,0xC0,0xAB,0x00,0x3D,0x72,0x42,0x59,0xAA,0x5E,0x46,0xFD,0xE3,0x22,
+0xAD,0xDD,0x9F,0x66,0xCF,0xB1,0xDE,0xEE,0x81,0xF4,0xBE,0x6E,0x89,0xDF,0x54,0x09,
+0x35,0x7B,0x1E,0x3A,0xB7,0xCF,0x1D,0xF7,0x15,0x30,0x6E,0xEA,0x09,0xD9,0x15,0x27,
+0xE0,0x34,0x6A,0x8C,0x6A,0x8F,0x4D,0x50,0x07,0x03,0x4B,0xF9,0xFA,0x67,0x4A,0x74,
+0x20,0x13,0x80,0x1C,0xE6,0xA2,0xD6,0xF0,0x84,0xA9,0x77,0x60,0x44,0x59,0xEF,0xE7,
+0x64,0x80,0x9A,0x68,0xDA,0x85,0xCF,0xDF,0xD3,0xC0,0xB3,0xD4,0x0E,0xB4,0x44,0xEC,
+0x93,0x78,0x21,0xF5,0xFD,0x45,0x5F,0x35,0x36,0x16,0x7F,0xE8,0x4A,0xCB,0xF9,0x39,
+0x55,0x1E,0x4B,0x4B,0x2F,0x07,0x05,0xAF,0x79,0xE0,0x5B,0xED,0xB0,0x8A,0xE1,0x7F,
+0x3C,0x01,0xF1,0xA4,0x94,0x81,0xEB,0x62,0xE4,0x63,0x74,0x7C,0x11,0x39,0x8A,0x96,
+0xA0,0xE9,0xCD,0xDC,0x4C,0x9E,0x4F,0x73,0x3F,0x51,0x80,0xFD,0x91,0x3F,0xCB,0xB8,
+0xFA,0x67,0x9B,0x1A,0xFA,0x6D,0xF6,0x75,0xF8,0x46,0xC3,0xB1,0x4E,0x9C,0x43,0x45,
+0xF8,0x68,0xA6,0x10,0xD6,0x21,0x0A,0xDD,0x7B,0xEC,0xFF,0x28,0x40,0x0E,0x55,0x9B,
+0x44,0x38,0x68,0x49,0x4F,0x38,0x80,0x4C,0xBB,0xAA,0xD1,0xAF,0xDB,0xD2,0x60,0xB3,
+0x98,0x0D,0xF3,0x61,0x70,0xB9,0x56,0x5C,0x06,0xE4,0xD5,0x8B,0x85,0xE9,0x4E,0x12,
+0x52,0x9A,0x96,0x73,0x0C,0x49,0xF3,0x3A,0x0F,0xA3,0x2A,0x9E,0x98,0xC0,0x8C,0xAD,
+0x62,0xC1,0x1A,0x46,0x6C,0x76,0x76,0xD9,0xE2,0xD5,0x87,0xC5,0xEF,0x2F,0x28,0xAC,
+0x57,0x11,0x76,0x41,0x24,0x8B,0x69,0xED,0x41,0xB2,0x90,0xE9,0x33,0xB6,0x4B,0xE6,
+0x5D,0xA1,0xF9,0xC3,0x12,0xF1,0x8E,0x49,0x65,0xC5,0xEC,0x20,0xE9,0xDC,0x9E,0x15,
+0xA4,0xA7,0x70,0xF8,0x37,0x46,0x43,0x55,0x63,0x73,0x1F,0x99,0x78,0xC5,0x07,0x9F,
+0xE7,0xB0,0xB7,0xB4,0xFC,0x94,0xCD,0xFC,0x5F,0x9B,0x83,0xE1,0xF5,0x6B,0xBB,0xD8,
+0x4D,0x42,0x87,0xD7,0xD1,0x09,0xA3,0x9D,0x3C,0xBA,0xBA,0x4A,0xDA,0x4C,0x87,0xC1,
+0xEA,0x84,0xE5,0x0E,0x45,0x65,0x7E,0xC7,0xA5,0x83,0xC2,0xA7,0xCF,0x04,0xE5,0x19,
+0xF6,0x96,0x94,0xB6,0x4D,0x4F,0xDD,0xBA,0xC6,0xA2,0xFB,0x0C,0x17,0xCA,0x3C,0x2F,
+0xC7,0x08,0x45,0x95,0xCE,0x60,0x4C,0x27,0x93,0xC7,0x9B,0x7D,0x28,0x6C,0x3F,0xE0,
+0x53,0x5F,0xCB,0x65,0x6D,0xA7,0xE4,0x10,0x6E,0x8E,0xB7,0xF0,0xEB,0x78,0x92,0xD0,
+0x3D,0xC4,0xAC,0xB2,0x9C,0xAB,0x48,0x1F,0x25,0xC2,0xC4,0x89,0x37,0xE1,0xF1,0x9A,
+0xAA,0xF6,0x72,0x86,0xF9,0xD8,0xA0,0x8B,0xD1,0x5E,0x9D,0x41,0xE4,0x06,0x76,0x9D,
+0x8E,0x3F,0x05,0xFA,0x0A,0x02,0xCA,0x5E,0x61,0xDC,0x12,0x4B,0xD2,0xA2,0x91,0xE7,
+0xE4,0x81,0x63,0x3C,0xB2,0x73,0xD6,0x4C,0x5A,0x6C,0x7D,0x44,0xCC,0xD1,0xEC,0x5F,
+0x09,0xDA,0x15,0x91,0xB3,0x04,0x39,0xE8,0x01,0x59,0xF1,0x74,0xAC,0x32,0x69,0x60,
+0x50,0xB0,0x6A,0xC7,0xAC,0x30,0xC4,0xA0,0xF8,0x56,0x83,0x52,0x8F,0xA7,0x9F,0x2E,
+0xED,0x94,0x24,0xC3,0x0D,0x6E,0xFF,0x8E,0xCD,0x7E,0x18,0x8E,0xB0,0xB7,0x49,0xAF,
+0x13,0xAE,0x86,0xD5,0x5A,0xA5,0x8A,0x83,0xA7,0x05,0x70,0xEC,0x3A,0x9E,0xE9,0x7B,
+0x90,0x37,0x2C,0xE9,0x84,0xAB,0x18,0x95,0xA8,0x0F,0x4D,0xEE,0x16,0x36,0x15,0x37,
+0x85,0xEF,0x4E,0xA1,0xCF,0x00,0x6E,0x52,0x9F,0x7A,0x20,0x45,0xAD,0xFB,0xFB,0xB1,
+0xCE,0x96,0x02,0xD2,0x85,0xDC,0xF7,0x31,0x04,0xAD,0x47,0x2B,0x5C,0xF4,0x57,0xBD,
+0x2D,0x13,0x62,0xED,0x30,0xFC,0xDC,0xFC,0x56,0xA9,0x7F,0xE0,0x8D,0x51,0xC2,0x59,
+0x78,0x62,0x07,0x8D,0xFF,0xC3,0x7A,0xFF,0xC8,0x8A,0xAE,0xD1,0x0E,0xCC,0x53,0x76,
+0xD7,0x55,0x7A,0xAC,0xDE,0x31,0x5A,0x47,0x82,0xC8,0x6C,0x5B,0x11,0x76,0xBC,0x1F,
+0x4E,0xB8,0x43,0xD4,0x06,0x24,0x12,0x25,0x44,0x11,0x0E,0xFC,0x85,0x2C,0x61,0x73,
+0x88,0x86,0xB3,0x09,0x80,0x93,0xD3,0xC7,0x67,0xE7,0x9B,0xB2,0xF7,0xBE,0x5C,0x50,
+0xB4,0xFE,0x5B,0x95,0xC7,0x1E,0x7D,0x7B,0x70,0xAB,0x5C,0xF1,0x3C,0x17,0xD2,0x82,
+0xA9,0x41,0x99,0xBC,0x3D,0xAD,0xEB,0x23,0xE3,0xDF,0x46,0xB5,0x6B,0x99,0x22,0x16,
+0x6A,0x71,0x34,0xA8,0x16,0x62,0xC9,0x94,0x1D,0x79,0x74,0xBB,0x0F,0x05,0xC1,0xA7,
+0x07,0x04,0x03,0x03,0xE5,0xB8,0xA3,0x41,0x50,0x92,0xF6,0x19,0xB2,0x41,0x14,0xD8,
+0x1F,0xB5,0x9C,0xE3,0x97,0xB9,0x3D,0xA6,0x55,0x66,0x40,0x46,0xB5,0x01,0xBD,0xF0,
+0xD9,0x8B,0x6C,0x3E,0x9E,0xD0,0xC1,0x2B,0xD0,0xCC,0x54,0x90,0xB1,0x7E,0xDB,0x7E,
+0x22,0xBF,0x93,0xE1,0x6F,0x29,0xBA,0xD8,0x6E,0xD6,0x2F,0x49,0xE0,0x79,0x10,0x13,
+0xBD,0xEB,0x1C,0x6A,0xB6,0x4B,0x1D,0x1E,0xBD,0x1E,0x7C,0xDA,0x58,0x8B,0x31,0x33,
+0x2A,0xD8,0x33,0x80,0x8C,0xB5,0x0B,0xBC,0x36,0x2C,0x9C,0xDF,0x98,0x60,0xD3,0x6D,
+0x0F,0x63,0xA3,0x62,0x89,0xFA,0x2F,0x4A,0xC1,0xBB,0x1A,0x2A,0x54,0x89,0xF4,0x97,
+0xD4,0xE2,0x91,0x96,0xA7,0x7A,0x29,0x0B,0x29,0xC3,0x26,0xB6,0x8C,0x98,0x50,0x88,
+0xDD,0xF7,0xD6,0x69,0x26,0xA1,0xDD,0x39,0xB8,0xEA,0xCA,0x85,0x3D,0xDE,0x40,0x53,
+0x92,0xF2,0x20,0x4D,0x60,0x5B,0x9C,0x21,0xDE,0x54,0xA0,0x43,0xEF,0x44,0x1A,0x11,
+0x6F,0x7F,0x69,0x61,0xF8,0xAF,0x4F,0x2F,0xD3,0x03,0x6B,0x36,0x26,0x1B,0xC9,0xB4,
+0x38,0xCB,0x00,0xA5,0xF3,0xE5,0xA2,0x84,0x40,0x77,0x71,0x72,0x1A,0x34,0xD0,0x93,
+0xFE,0xF5,0xF0,0x78,0x38,0xE2,0xCF,0xD5,0xBB,0x25,0xF5,0x23,0x77,0x1C,0x02,0xD9,
+0xEC,0xE6,0xC3,0x5D,0x6B,0x11,0x71,0x8A,0xF4,0x93,0x81,0xF6,0xAA,0xBB,0x52,0x99,
+0x66,0x6A,0x2E,0x9E,0x46,0xC5,0x89,0x49,0x9D,0x27,0xD6,0x32,0x22,0x64,0xAF,0x3A,
+0xE7,0x36,0x88,0x06,0x09,0x56,0x34,0xDC,0xB4,0x2F,0xC8,0x21,0xED,0xB2,0x47,0x66,
+0x0A,0x6D,0xFE,0xAB,0x32,0xDF,0xCD,0xDA,0x89,0xA4,0x2E,0xD7,0x65,0x6D,0xBA,0xC5,
+0x3A,0x0E,0x0C,0x01,0xA5,0x59,0x38,0x2D,0xC9,0x18,0x67,0x00,0xE1,0xB0,0x82,0xC2,
+0xE1,0x8F,0x3E,0xF5,0x48,0xC0,0x40,0x14,0x96,0x4B,0x94,0xBE,0xE2,0x8F,0x4D,0x64,
+0x43,0xD1,0xBE,0x7C,0x35,0xB3,0xF8,0x0A,0x7C,0x6E,0x5E,0x55,0x17,0xFF,0x87,0xE6,
+0xEA,0x5F,0x75,0xAE,0xB9,0x39,0x3B,0xE7,0x57,0x3B,0xB6,0x31,0xC0,0xD3,0x29,0xFB,
+0xC7,0x83,0x45,0x2D,0xFC,0x97,0x84,0x7D,0x12,0x73,0x49,0xB9,0x51,0x3F,0x00,0xC8,
+0x0D,0xA6,0xAF,0xC6,0x98,0xCB,0x1B,0x5F,0x78,0x08,0x21,0xDB,0x6D,0x10,0x19,0xEF,
+0xBF,0x2E,0x10,0xCE,0x43,0x8A,0xAD,0xBF,0xF2,0xA8,0x08,0x0F,0x13,0x80,0xE1,0x68,
+0x45,0x68,0x08,0x8F,0xB4,0x68,0x0C,0x38,0xE9,0x21,0xCD,0xE8,0xF9,0x4A,0xC4,0x83,
+0xC1,0x3A,0xF3,0xDE,0x4F,0xAC,0x75,0xC4,0x5D,0xC5,0x3D,0x6C,0xFB,0xBC,0x99,0xF4,
+0xEE,0x23,0xCF,0xF9,0xE3,0xA3,0x79,0x35,0x3B,0x7B,0x57,0xAA,0xEC,0x7B,0xD5,0xB7,
+0xEB,0x2D,0x92,0x30,0x7C,0x3B,0x9F,0xEB,0x4F,0x7D,0x4C,0x70,0x42,0x87,0x2A,0x05,
+0x0B,0x1F,0x19,0x35,0xA3,0x42,0xE2,0x59,0x6F,0x44,0xE6,0x98,0xA2,0xC6,0xF1,0xB3,
+0xBA,0x20,0x4D,0x07,0x42,0xFD,0x42,0x1B,0x1F,0x24,0x82,0xCC,0xF5,0x48,0x01,0x27,
+0xCF,0xE4,0xE5,0x4C,0xB1,0x27,0x28,0xCE,0x60,0x4E,0xDB,0x9A,0xD7,0x14,0x65,0xB8,
+0xE3,0x4A,0x32,0x51,0x70,0x1D,0x47,0x90,0x46,0x4C,0xF8,0x8B,0xA5,0x86,0x58,0x9B,
+0xEF,0x51,0x28,0x67,0xD4,0x0C,0x58,0x48,0x76,0x90,0xD5,0x08,0x09,0x8C,0xFA,0x5E,
+0x9A,0x95,0x80,0x2C,0x1C,0x5F,0xCB,0x9B,0xD9,0xFD,0xE0,0x6B,0xE6,0xF0,0x2B,0xEA,
+0x25,0x74,0xC2,0x8C,0x45,0x91,0x77,0xCB,0x66,0x75,0x52,0x63,0x37,0x55,0xBE,0x0E,
+0xE8,0x9A,0x79,0x0A,0x33,0xA8,0x22,0x7E,0x73,0x64,0x63,0x57,0x06,0xB1,0xF0,0x5C,
+0x5D,0xD9,0x97,0x6F,0x07,0x53,0xFD,0x81,0x71,0x39,0x95,0x20,0xDD,0x9F,0x9B,0xE5,
+0x8D,0x88,0xEE,0xC0,0xCA,0x4F,0x4A,0xA4,0xA1,0x3E,0xF9,0x15,0x74,0x23,0xCD,0x7F,
+0xF2,0xEE,0xEA,0x4E,0x1B,0x33,0xFE,0x4B,0x3F,0x1D,0x28,0x24,0xAB,0x72,0xC0,0x48,
+0x84,0x9D,0xA9,0x3F,0x0C,0x19,0x10,0x2A,0xF1,0x67,0x37,0xA9,0x27,0xD2,0x5B,0x65,
+0x65,0xDD,0xC5,0xA4,0x8E,0x96,0x1A,0x9A,0xBA,0xB7,0x3C,0xF2,0x7F,0x61,0xA1,0xF3,
+0xF3,0x9C,0x0D,0xD0,0xD7,0x58,0xA6,0xCA,0x9E,0xE8,0xE9,0x94,0xDF,0x69,0xC6,0x92,
+0x03,0x78,0xB9,0x54,0x3C,0xDA,0x04,0x87,0x30,0x17,0x15,0x26,0x53,0xC9,0x5D,0xBF,
+0xA6,0xED,0x68,0xB0,0xAA,0x2B,0x1E,0xD4,0x18,0x8D,0xC2,0xE4,0xDB,0x16,0xA0,0x1C,
+0xA4,0x28,0x64,0x14,0x72,0x3E,0x56,0xB6,0xB7,0xE0,0xF7,0x87,0xAE,0xC4,0x34,0x17,
+0x77,0xCE,0xF6,0x81,0xA2,0x35,0x0D,0xFD,0xFA,0x0B,0x75,0x25,0xC6,0x5A,0x12,0x02,
+0xCB,0x82,0x42,0x28,0x8A,0xAC,0x88,0x23,0x51,0x9C,0xC3,0x01,0x4D,0x7B,0xED,0x13,
+0xFB,0x41,0x56,0x85,0x45,0x87,0x3F,0x01,0x5F,0xAE,0x65,0xFF,0xFC,0x98,0x71,0x77,
+0x0F,0xF7,0x09,0x80,0x51,0x2D,0xBA,0xD7,0xAC,0xA8,0xDC,0x49,0x1A,0x07,0xE9,0xA9,
+0xBE,0xEF,0xE9,0x1F,0x50,0x5F,0x5D,0x49,0xF3,0x1E,0x28,0x4C,0x32,0xAE,0xA9,0xAE,
+0x05,0xCA,0x0B,0x8F,0xC1,0xD5,0xC4,0x50,0xA3,0xC7,0x6C,0x72,0xF9,0xAA,0x91,0xFC,
+0x31,0x31,0xD4,0x70,0x38,0x24,0x37,0x2B,0x7A,0xBC,0x76,0xCC,0x94,0x61,0x96,0xAD,
+0x62,0xC2,0x6A,0x2F,0x5D,0x36,0xA0,0xE1,0x35,0x74,0x96,0x2A,0x87,0x69,0x88,0x84,
+0x51,0x55,0x80,0x00,0xA3,0x0C,0x02,0xF7,0x30,0x94,0xA4,0xA1,0xD9,0x8B,0x63,0x44,
+0x58,0x3C,0x7C,0x8D,0x92,0x1D,0x17,0xC3,0x5C,0xCE,0x79,0x35,0x62,0xEA,0x70,0x90,
+0xD9,0xE7,0x88,0xBF,0x12,0x33,0x56,0xC5,0xC0,0xF2,0x01,0xDD,0x7D,0x4E,0x61,0x48,
+0x48,0x7A,0xA7,0x3C,0xB3,0xDA,0x3D,0x76,0xA9,0x48,0xEE,0xC2,0xFB,0xA0,0xAC,0xF3,
+0x4D,0x35,0x83,0xCA,0x49,0x9C,0x25,0x37,0x6F,0x22,0x50,0xA4,0xB9,0xFA,0x36,0x21,
+0x71,0xD0,0x4F,0x1C,0x0D,0x49,0x98,0x48,0x98,0x99,0xCD,0x5C,0x79,0x6A,0xDC,0x06,
+0xC5,0x87,0x8B,0x75,0x47,0x42,0x33,0xA5,0xDC,0x83,0xB9,0xCF,0x5E,0x73,0xF3,0x3A,
+0x5C,0x04,0xB7,0xDF,0xF9,0xD1,0x96,0x9B,0x1C,0x69,0x29,0xE8,0x73,0xE8,0x53,0xB6,
+0x4F,0x16,0x92,0xEC,0x0A,0x82,0xC9,0x25,0xC9,0x1D,0x9F,0xA7,0x33,0xB8,0xF4,0x6B,
+0x85,0x66,0x10,0x19,0xEA,0xB0,0x42,0x20,0xA1,0xFA,0x66,0x7D,0x0D,0x2B,0x4A,0xCE,
+0x4C,0x42,0x6C,0x6E,0x30,0x43,0x97,0x4A,0xAB,0x75,0xE4,0xCD,0x77,0xCC,0xEE,0xF8,
+0x60,0xE1,0x7B,0x09,0xEC,0x09,0xF4,0xD3,0x9E,0x19,0xE3,0x1D,0x8A,0xD3,0xDA,0xB0,
+0x3B,0x0C,0xD6,0x7F,0x9B,0x08,0x50,0x3C,0xAE,0x95,0xD6,0x46,0xB5,0x56,0x39,0xD0,
+0x2E,0x05,0x29,0x38,0x86,0xB7,0x92,0x15,0x64,0xF0,0xC4,0xD1,0x45,0xF3,0x5F,0xAC,
+0x0A,0xB8,0x2D,0x76,0xD8,0x16,0xBC,0x2E,0xB8,0x6B,0xEC,0xE4,0xC4,0x25,0x4F,0x93,
+0x8D,0x78,0x03,0x30,0x43,0x3E,0x89,0xF2,0x04,0xA5,0xB5,0xB4,0xDD,0xAF,0xDE,0x0A,
+0x14,0xFB,0x3F,0x9A,0x4D,0xE0,0x9F,0x60,0x06,0x98,0xBF,0xBB,0x91,0x53,0x76,0x26,
+0x2C,0x26,0x38,0x1E,0x34,0x3F,0x2D,0x1D,0xC1,0xAF,0x17,0x18,0x57,0xED,0x1C,0x40,
+0x55,0x6D,0x4B,0x52,0xE8,0x75,0x4E,0x84,0xAF,0xC8,0xC0,0x83,0x5B,0x41,0x13,0xB1,
+0xD8,0x90,0x67,0x1B,0x2B,0x45,0xE3,0x90,0x3B,0x46,0x30,0xD4,0x9C,0xE9,0x24,0x12,
+0xA9,0xC5,0x07,0x7E,0x14,0x8A,0xE0,0x36,0x0A,0x97,0x13,0x4A,0xB3,0x78,0xB9,0x91,
+0x02,0xA6,0x3E,0x5F,0xCC,0xBC,0x39,0xF8,0x16,0xE6,0xAB,0x58,0x99,0xDB,0xC4,0x99,
+0xEF,0x3F,0x46,0x66,0xD9,0x64,0x5B,0xB0,0xB1,0x84,0x72,0x9E,0xF5,0x06,0x9E,0x0D,
+0x44,0x5C,0x7F,0x47,0xF6,0x7D,0x67,0x97,0x1B,0xB4,0x11,0x6C,0x68,0x68,0xFF,0x20,
+0x3C,0x60,0xE3,0xAF,0x7B,0x3A,0xDB,0x39,0x58,0x73,0x5D,0x7B,0xBA,0xE6,0x56,0xEB,
+0xF0,0x0B,0xBB,0x2E,0xF5,0xCA,0x8C,0xAD,0x61,0x10,0xF6,0x5A,0x71,0xE2,0x6E,0xB9,
+0x5E,0x27,0xA6,0xF9,0xCF,0x0B,0xD2,0xC2,0x70,0x33,0xF4,0x7C,0x52,0xDF,0xFC,0xCB,
+0x2F,0x72,0xC6,0x9C,0xB7,0xA6,0x87,0x21,0x81,0x08,0x47,0xC5,0x00,0x91,0x18,0xFA,
+0xEB,0x07,0x8D,0x34,0xE4,0x6E,0x54,0xB2,0xE2,0x3D,0x2A,0x6A,0xB4,0x40,0x64,0x15,
+0x20,0x00,0xE0,0x65,0x40,0x89,0x62,0xC8,0xBD,0x8B,0xDE,0x6F,0xB6,0x4A,0x59,0x1A,
+0xCE,0xCD,0x66,0xDE,0x79,0xFF,0xD7,0x9D,0x89,0xBA,0xCF,0x7A,0xE4,0x04,0xBD,0x2B,
+0x32,0x65,0x2A,0xF2,0xA7,0x70,0xB8,0xA0,0xFF,0x11,0x84,0xBD,0x95,0x77,0xCB,0x68,
+0x63,0xB5,0x85,0x8B,0xBB,0xBD,0x9D,0x17,0xCA,0x7D,0x83,0x6D,0x0F,0x21,0x77,0xC1,
+0x27,0x6C,0xD5,0xB5,0xF1,0xB6,0x36,0xFA,0x43,0xDF,0xDD,0xED,0x8F,0xE1,0x3A,0x3B,
+0x54,0x1A,0xA4,0xF6,0xDB,0xA1,0x57,0x14,0xCE,0xC0,0xA7,0x23,0xA2,0x7A,0x9A,0xB7,
+0x26,0x1B,0x3A,0x11,0xB0,0x6D,0xD6,0x4C,0x7E,0x01,0x52,0x82,0x78,0x7C,0x81,0xC3,
+0x67,0x8D,0x4E,0xD9,0x7E,0x34,0x86,0xF0,0x18,0xD4,0x0D,0xA6,0x19,0x1B,0x89,0x63,
+0x57,0x4E,0x5A,0x74,0xC3,0x10,0xC8,0xF4,0x0E,0x2A,0x37,0x04,0xF6,0x1A,0xFE,0xC7,
+0xC2,0xEB,0xBE,0xA5,0x32,0x86,0x9B,0xEE,0xCC,0xFD,0xAD,0x2C,0x55,0xE7,0x21,0x4F,
+0x74,0x9F,0x6B,0xEA,0xDD,0x18,0xE1,0xE7,0xCF,0x9D,0xB1,0xE6,0xE8,0xA8,0xB2,0xDA,
+0x92,0x4C,0xFE,0x78,0xD6,0xC8,0xAA,0xBC,0x6D,0x1F,0x5A,0xAB,0xFD,0x8E,0x2C,0xB2,
+0x8C,0x0F,0xEC,0x94,0xBE,0xB3,0xC0,0xDE,0xCB,0x20,0x95,0xA8,0x8C,0xFD,0x5A,0xF1,
+0xD0,0x8E,0x74,0x32,0x2D,0xFC,0x55,0x63,0xD8,0x3E,0x9D,0x81,0xD0,0x15,0x8C,0x3E,
+0xB4,0xD2,0xEB,0x10,0xB1,0x1F,0x31,0xD2,0xEA,0x8F,0xA2,0xD5,0x28,0x38,0x58,0xFD,
+0xD7,0xE2,0x41,0xE2,0x37,0x88,0xC6,0x27,0x3D,0xC6,0x1E,0x95,0x2F,0x00,0x85,0x79,
+0x6B,0xAB,0x96,0xA2,0x5B,0x8F,0x16,0x12,0xBF,0xB6,0xD4,0x60,0x0C,0x3D,0x17,0x0B,
+0x35,0x09,0x1F,0x22,0x28,0xF2,0x08,0xAA,0x54,0x7C,0xF1,0x8A,0x8E,0xF7,0x67,0xFE,
+0x39,0x2F,0xC7,0x59,0x7F,0x46,0x61,0x6E,0x53,0xA1,0xC9,0x0E,0x22,0xBA,0xD7,0x4D,
+0xE5,0x02,0x44,0x69,0xD1,0x03,0xFB,0xD1,0xDB,0x5E,0x81,0x4B,0x11,0x93,0x3B,0xDC,
+0x94,0x57,0x24,0x0C,0x62,0xF9,0xA3,0x47,0xE5,0xE0,0x12,0xEE,0x82,0x5B,0x68,0x0F,
+0x1C,0xE5,0x2C,0xB3,0x23,0x22,0x43,0xF1,0x31,0xC9,0xB2,0x64,0x05,0xA3,0xF8,0x71,
+0x80,0x29,0x34,0xEF,0x44,0xF5,0xD8,0x9F,0x86,0xD5,0x7F,0x41,0x1E,0x23,0x54,0xE7,
+0xD2,0xAD,0x65,0x14,0x80,0x0E,0x24,0xE6,0x02,0x25,0x9B,0xF5,0x69,0x7E,0xA2,0xE5,
+0x97,0x03,0xDA,0x8E,0xD3,0xC6,0xF7,0x75,0x9A,0xA4,0xC7,0x53,0xEF,0x90,0x6F,0x5E,
+0x99,0x06,0x13,0xD3,0x4B,0x59,0x29,0x93,0x40,0xBF,0xC1,0x27,0x5D,0x6F,0x93,0xF0,
+0x9A,0x52,0xED,0x51,0x15,0xF8,0x07,0xA8,0x26,0x6A,0x9E,0x03,0xCD,0xBB,0xA0,0xE9,
+0xA5,0xE3,0xDF,0x05,0xAA,0x19,0x45,0x08,0x72,0x0E,0xFE,0x73,0x59,0x4B,0x2E,0xBE,
+0xF5,0x14,0xD8,0x5B,0xDB,0xE9,0xDE,0xF8,0x4D,0xF0,0x24,0xFE,0xCC,0x16,0x04,0x25,
+0xB9,0x67,0xA1,0x10,0x42,0x8A,0x02,0xB2,0x9A,0x9E,0xBF,0x99,0x60,0xE7,0x08,0x2A,
+0xD9,0x58,0x24,0xF3,0x69,0x47,0x22,0x07,0x9E,0x55,0xED,0xA1,0xF5,0x36,0xEC,0x8F,
+0xBC,0x38,0x55,0xA6,0xCF,0x44,0x1D,0xC8,0xBD,0x64,0x73,0x70,0x64,0xB5,0xC3,0x12,
+0xC1,0x19,0x62,0x09,0xEF,0xFC,0xEF,0xE9,0xFF,0xEE,0x39,0xB2,0x8B,0xAA,0xAA,0xA8,
+0xF8,0x61,0x8F,0x90,0xA7,0x9E,0xFA,0x31,0x26,0x49,0xFF,0xD0,0x56,0x3E,0xC6,0xF2,
+0x08,0xBC,0xB1,0x56,0x66,0x7C,0x4D,0xB7,0xD0,0x07,0xDC,0x45,0x6B,0x4C,0xE5,0x60,
+0xE0,0x20,0xC9,0x6A,0xC8,0xC0,0xC0,0xF0,0x9C,0x44,0xCB,0x82,0xE5,0x87,0x37,0xC9,
+0xC9,0x33,0xC1,0x74,0x15,0x30,0x06,0xCE,0x69,0xF4,0x6A,0x43,0x41,0x5F,0x28,0xD8,
+0xBE,0x4F,0x08,0x50,0x7F,0xE5,0xDC,0x3D,0xEB,0xFE,0xDA,0xCC,0xA6,0x69,0x52,0x7C,
+0xD8,0x89,0xB6,0x3A,0x63,0xF7,0xAD,0x85,0x5B,0xF1,0xE1,0xA3,0xDB,0x77,0xEA,0x0F,
+0xAE,0x24,0xED,0xD7,0x8C,0x53,0xDA,0x84,0x6E,0xC1,0xBA,0x2F,0x5E,0x17,0xD5,0xEC,
+0xD1,0x72,0x87,0x8E,0x71,0x1B,0xEE,0x9B,0x61,0xE7,0x43,0x5D,0xA8,0x34,0x9B,0x79,
+0x9F,0x76,0xA3,0x33,0x4A,0x35,0xB0,0x3A,0x49,0x3B,0x76,0xC6,0x7E,0x0B,0x1A,0x69,
+0x3D,0x60,0x99,0xCD,0x3F,0x38,0x7B,0x6D,0x32,0x59,0x1C,0xAE,0xDE,0x81,0xCE,0x40,
+0x97,0x5C,0x00,0x4E,0xAD,0x2E,0x75,0xB3,0x38,0x5B,0x13,0x93,0x22,0xAD,0x82,0xE8,
+0x18,0xD7,0x54,0xD1,0x9A,0xF1,0x24,0xBE,0x8C,0x9F,0x7A,0xC4,0xC3,0xEF,0x22,0x57,
+0x2A,0x23,0xD5,0x0A,0x9C,0xB0,0xA4,0x90,0xF4,0x03,0x92,0xF8,0x67,0x37,0x3D,0x46,
+0x6D,0xDC,0xC0,0x03,0x68,0x82,0x7F,0x11,0xDD,0x30,0x03,0x14,0x77,0x86,0xE6,0x00,
+0x9B,0xF8,0xC5,0x4C,0x29,0x9A,0x85,0x57,0x63,0xF6,0x65,0x7E,0x2D,0x54,0xA4,0x9A,
+0xD2,0xD4,0x48,0xB1,0xFA,0x94,0x71,0xCF,0x34,0x83,0x68,0xB5,0xFE,0x9D,0x01,0xC5,
+0xBB,0x10,0xFC,0xE6,0x17,0x3F,0x3B,0xC4,0x40,0xC7,0xFB,0xAF,0xE7,0xA1,0x26,0xEA,
+0x4B,0xCD,0xC2,0x20,0x7A,0x6E,0x3C,0x0F,0x12,0x96,0x00,0x2B,0x35,0xCC,0x6C,0xC2,
+0x78,0xE8,0xD1,0x32,0xC4,0x31,0xCF,0x5C,0xA4,0x43,0x4F,0x5F,0x65,0x11,0x2C,0x65,
+0x22,0x09,0x76,0x77,0x5E,0x98,0x73,0x0A,0xE8,0x00,0x58,0x98,0x15,0xD0,0xA3,0x47,
+0x8F,0x1D,0x46,0xB4,0x7C,0x2F,0xBC,0x21,0x4E,0x0E,0xA6,0xAA,0xF6,0xB4,0x12,0xDB,
+0xB8,0xB6,0x33,0xD9,0x16,0xFA,0x66,0xD2,0xA5,0xAC,0xEB,0x28,0x23,0x09,0x6D,0x9F,
+0x27,0x56,0x82,0xC1,0x88,0x1D,0x67,0xA0,0x51,0xF3,0xEE,0x9E,0x8A,0x0E,0x45,0xDF,
+0xD7,0x8B,0xBC,0x07,0x74,0x90,0x0E,0xA9,0xFB,0x25,0x6B,0x8A,0xEC,0x0A,0xCB,0xA0,
+0x28,0x54,0x88,0xFC,0x0F,0x63,0xF7,0x58,0xE1,0xFC,0xD5,0xF1,0x27,0x5B,0xA6,0xA7,
+0xA7,0xDF,0xDC,0x63,0xA8,0xA5,0x95,0x81,0x29,0x6F,0x06,0xA2,0x06,0xE3,0x86,0x55,
+0x88,0x35,0xEF,0xF4,0xBE,0x07,0x6B,0xBB,0x1B,0x6A,0x8D,0x42,0xE4,0x23,0xD8,0xBE,
+0x14,0x73,0x91,0xD3,0xAE,0xE4,0x15,0xAF,0x3F,0x6E,0xC3,0xFF,0x2E,0xD6,0x5A,0xCE,
+0xAB,0x7B,0x19,0x61,0x18,0x04,0x54,0x74,0x9F,0xBA,0x49,0xD6,0xD6,0xA8,0xDD,0x5E,
+0xB3,0x3A,0x5F,0x9B,0xB9,0x83,0xB6,0x83,0x16,0x5D,0x52,0x13,0xF3,0x42,0x36,0x94,
+0x48,0x6B,0x0D,0x1F,0xC0,0x7F,0x72,0x78,0xF2,0xD9,0xE6,0xE3,0xAE,0x40,0x41,0x62,
+0x74,0x4C,0x14,0x30,0xCC,0x8E,0x7D,0xD4,0x4C,0x1F,0x80,0x89,0xE2,0x57,0x02,0xA5,
+0x29,0x85,0x1A,0x35,0x2A,0x50,0xE5,0x4B,0x4A,0xC5,0xF4,0x92,0x1D,0xF9,0xB0,0x59,
+0xA2,0x80,0x28,0xD5,0x57,0xE2,0x9C,0x94,0x73,0x2D,0xD4,0x38,0xC6,0x19,0x06,0x18,
+0xF6,0xB2,0x17,0x64,0xF7,0xA0,0x23,0x75,0x13,0x79,0xA4,0x5C,0x36,0x4E,0x92,0x96,
+0x95,0x2B,0x5D,0xB8,0x3C,0xF2,0x1B,0x71,0x10,0x87,0x26,0x08,0x98,0x99,0x8F,0xBA,
+0x33,0xB3,0x01,0x39,0x81,0x67,0x88,0x3E,0x18,0x94,0x0F,0x16,0x70,0x56,0xD3,0x6C,
+0x45,0x1E,0x5A,0xD4,0x78,0x61,0x01,0x05,0x93,0x62,0x32,0xF0,0x8D,0xDE,0x70,0xB3,
+0xB7,0xB4,0x39,0xE4,0x8D,0x96,0x87,0x92,0x2F,0xB5,0x72,0xB9,0xB5,0x5A,0x77,0x6E,
+0x85,0x40,0xB8,0x3F,0xF5,0xAF,0x1E,0x7F,0x7C,0x0B,0x2D,0x4A,0x7A,0x59,0xD1,0x51,
+0x05,0xC9,0xE6,0x9D,0x4D,0xB1,0x6D,0x02,0x59,0xE0,0xC7,0x80,0xB0,0xAC,0x53,0x21,
+0xCE,0x1B,0x68,0x34,0x8E,0x5C,0xE7,0x8E,0x0C,0x84,0xEC,0x68,0x1E,0x7B,0x4E,0x0D,
+0xFE,0x98,0xB4,0x19,0x31,0xC6,0x49,0xCB,0x44,0x0C,0xA9,0x97,0x37,0xEA,0x7D,0xE1,
+0x51,0xFB,0xD9,0x2C,0x4B,0xF0,0xED,0x2C,0x2A,0x91,0x84,0xF6,0xF7,0x10,0xFD,0xAC,
+0x12,0x8A,0xAA,0x5A,0xA5,0x91,0xC7,0x3B,0x50,0x1C,0x4A,0xE9,0x6C,0x9C,0xD0,0x0C,
+0x7E,0x11,0xEA,0xBB,0xAF,0x21,0x48,0xB9,0x80,0x47,0x01,0xE2,0x96,0xC4,0x46,0xBF,
+0xB6,0x65,0xAB,0x2D,0x13,0x71,0x86,0xE0,0xDF,0x21,0x25,0x37,0xF1,0x64,0x27,0xB7,
+0x02,0xE1,0x4F,0xDD,0xB1,0x3C,0x04,0x0B,0x20,0x93,0x8B,0xCB,0x6A,0xE8,0x0A,0x17,
+0xD3,0x05,0xDA,0x78,0xAB,0x6F,0xF5,0x9D,0xBA,0x51,0xA3,0x1C,0x97,0x60,0xA9,0xC8,
+0xDF,0xA1,0x1F,0x7A,0xE3,0x0D,0xE0,0x45,0xD7,0x32,0x0C,0x29,0x03,0x15,0xA2,0x1A,
+0x4D,0x34,0xF9,0xA9,0xB8,0x46,0xEB,0x95,0x3C,0x90,0x41,0xAB,0x25,0x7D,0xB7,0x84,
+0x5E,0xF9,0xD3,0x11,0x9D,0x75,0xF9,0x86,0x79,0x2F,0xDB,0x05,0x52,0x6C,0x0D,0xCA,
+0x89,0xE4,0x7D,0x3D,0xF2,0x2B,0xC3,0x47,0x7B,0x3E,0xFD,0x26,0x6F,0x1E,0x2E,0x58,
+0x93,0xD2,0x66,0x31,0xED,0xF3,0xD2,0xE3,0xA7,0xBD,0xCD,0x0B,0xCD,0xB2,0xEB,0x52,
+0x3B,0x99,0xA2,0x44,0x7E,0x20,0x81,0x2B,0xCA,0xDE,0x62,0x3E,0x1C,0x5D,0x5F,0x2E,
+0x79,0x39,0x43,0xFB,0xC2,0x70,0x4F,0x72,0x42,0xD6,0xDD,0x8C,0x89,0x8C,0xBB,0x8B,
+0xC2,0xBF,0xAD,0x36,0x97,0xC5,0x76,0x04,0x53,0xE2,0xC8,0xBD,0xC7,0xBD,0xE9,0x6F,
+0x2C,0xDA,0xEE,0x83,0x48,0x3A,0x8D,0x30,0x0E,0x95,0xCA,0x4B,0xAC,0x66,0x50,0x41,
+0x55,0x75,0xBF,0x53,0xFF,0x1F,0x91,0xFD,0x09,0xA0,0x1A,0x27,0xFA,0xCF,0xCA,0xFD,
+0x18,0x2F,0xDD,0x34,0x76,0x72,0x4B,0x8B,0xB2,0x15,0xD9,0x6A,0x8D,0x5C,0xF6,0x0A,
+0x75,0x1A,0xBE,0x9B,0x0A,0xA3,0xA4,0x3F,0xF9,0x60,0x1D,0xC2,0x1E,0x94,0xA5,0xD9,
+0xC6,0x21,0x4F,0x22,0xEE,0xED,0x95,0x6D,0x99,0x35,0x6C,0xA7,0xFD,0x39,0xDD,0x8C,
+0xC4,0x02,0x5E,0x04,0x7C,0xD0,0xE7,0x4E,0x84,0x19,0xC2,0x70,0x92,0xF8,0xE7,0xD2,
+0xB1,0x6F,0xF5,0x33,0x65,0x13,0x9F,0x30,0xBA,0xA7,0x51,0xD5,0x28,0x8F,0xA9,0xC3,
+0xB6,0x03,0xC0,0xE3,0xD9,0x45,0x36,0xAA,0x15,0x77,0x00,0xAC,0x9F,0x42,0xB5,0xE6,
+0xFD,0xA8,0xB6,0x24,0xAF,0x36,0x75,0xDB,0x59,0xDF,0xFC,0x80,0xA2,0xCD,0x6B,0x89,
+0xEC,0x99,0x82,0x31,0x4B,0x78,0x44,0x89,0xDF,0x12,0x12,0x3B,0xF7,0xBB,0x52,0x3C,
+0x3F,0xC6,0x27,0xF8,0x9B,0x29,0x3D,0x26,0x71,0x9F,0x55,0x87,0xCF,0x06,0x6C,0xD8,
+0x60,0x13,0x41,0xDC,0x93,0x4E,0x9D,0x47,0x05,0x09,0x14,0x4F,0x73,0x5F,0xA2,0x88,
+0x95,0xD2,0xF1,0x7D,0x88,0x48,0xE9,0x9D,0x9B,0x08,0x66,0xA8,0x2B,0x93,0xC9,0x09,
+0xEF,0xCD,0x7C,0xB3,0x28,0xD3,0x65,0xB0,0xEA,0x7E,0x15,0xEB,0xC5,0x84,0xE3,0x68,
+0x68,0x0D,0x52,0xF5,0x3E,0xBC,0xEC,0xC2,0xC1,0x5E,0xA0,0x26,0x83,0xFA,0xC4,0xF4,
+0x83,0x8F,0xF0,0xB8,0xA0,0x9A,0x84,0xD7,0x54,0x8D,0x46,0xB4,0xD8,0x2A,0xCF,0xBF,
+0x9F,0xEF,0xF3,0x72,0x33,0xD5,0x11,0x6A,0x81,0xF9,0xF0,0xFB,0xD1,0xB4,0x20,0xC5,
+0x05,0x38,0x31,0x5A,0xEC,0x28,0x99,0xC9,0x65,0x5C,0x65,0x2A,0xCB,0x22,0xD1,0x96,
+0x2C,0xD4,0x02,0xCB,0x97,0x32,0x27,0x10,0x7E,0xF0,0xE5,0xBC,0x18,0xBA,0x25,0x98,
+0x90,0x9D,0xD5,0x8B,0x4A,0x0A,0xA3,0x17,0xD4,0xC0,0x86,0x4E,0xED,0x2D,0xA3,0x6F,
+0xAF,0x2C,0xE7,0xDF,0x9E,0x27,0x60,0xEF,0x4B,0x9C,0xE2,0x6C,0x5C,0xCE,0x3F,0x0B,
+0xA7,0x32,0xF4,0xF6,0x48,0xCF,0xAF,0xB3,0xD3,0x1D,0xBE,0xCA,0xE1,0x81,0xAC,0x9E,
+0xB3,0x4C,0xE4,0x15,0x29,0xA1,0x82,0x2E,0x7B,0x10,0xD7,0x37,0xEE,0x31,0xC3,0xA5,
+0xFB,0xB3,0x6C,0x50,0xC5,0x88,0x13,0x1D,0xF8,0x3D,0x0B,0x07,0x51,0x74,0x6D,0x3F,
+0xC3,0x6E,0x6B,0xD4,0x75,0xC5,0xA0,0xB1,0x20,0x1B,0x07,0x7C,0x95,0xC0,0x3A,0x56,
+0xE6,0xA4,0x80,0x3E,0x05,0x0F,0x55,0x33,0xA9,0xB9,0x59,0xFC,0x2D,0xBD,0x49,0x48,
+0xA9,0x37,0x3D,0xAB,0xB0,0x4C,0xBB,0x56,0x5A,0xBF,0xE0,0x4A,0xD9,0x3C,0x92,0x7A,
+0x4D,0xC7,0xB9,0x1F,0x46,0x11,0xB9,0x21,0x0B,0x3B,0xB2,0xB1,0xA0,0xC7,0x56,0x86,
+0x80,0xDB,0x0E,0x3A,0xEA,0x91,0x2F,0x3A,0x13,0xF7,0x2E,0xED,0xCE,0x10,0x31,0x1D,
+0x20,0xF2,0xDA,0xB0,0x7A,0x69,0x51,0xBD,0x1B,0x45,0xA6,0x52,0x78,0xCB,0x70,0xFD,
+0xCC,0x1C,0x4D,0x2D,0x3C,0x79,0xE0,0x66,0xE0,0xF1,0x97,0x5B,0x37,0x2B,0xB8,0x1B,
+0xAC,0x78,0x19,0x5D,0xB2,0x89,0xB7,0xF2,0xD2,0x40,0xA8,0x0F,0x97,0xCA,0x07,0x59,
+0xF3,0xAD,0x7F,0x79,0x81,0x5D,0xAE,0x62,0x2C,0x14,0xAB,0x8D,0xAC,0x6B,0x59,0x77,
+0xF5,0xB6,0xA5,0x0D,0x7D,0xA2,0x00,0xD0,0xE5,0x11,0xA5,0xD0,0x4A,0xF4,0xC1,0xA9,
+0x1A,0x0C,0xCC,0x12,0xBB,0x9C,0xF0,0x0D,0xD6,0xFD,0x8C,0x41,0x76,0x6D,0x42,0x03,
+0xEE,0xBA,0x93,0x17,0xFB,0x35,0xF7,0x25,0x36,0xE5,0x3D,0xDE,0xE8,0x1F,0x43,0xE4,
+0x57,0xBC,0x60,0xA1,0x63,0xAA,0x29,0xC3,0x69,0x53,0xC9,0xDB,0x3E,0xB5,0x57,0x61,
+0xF1,0x8E,0x6E,0x5F,0xFF,0x49,0x4D,0x72,0x7D,0x90,0xF9,0x76,0x1C,0x9E,0x98,0xD6,
+0x96,0x86,0x0F,0xFF,0x71,0xB9,0x1A,0xE6,0xBF,0x47,0x63,0x5E,0xC8,0x3E,0xB1,0x5C,
+0xA4,0x66,0x0A,0x74,0x9A,0x5B,0xDA,0xB8,0x55,0xD0,0x50,0x71,0xDE,0x04,0x4F,0xFE,
+0x44,0xAE,0x45,0x92,0x84,0x53,0xF3,0xAB,0xEB,0x23,0x03,0x2E,0x14,0x16,0x2A,0x69,
+0x5E,0xD5,0x9C,0x2C,0x83,0x98,0xA2,0xC6,0x34,0xD8,0x37,0xD1,0x6F,0xE7,0xD3,0x9A,
+0x62,0x30,0x50,0xFA,0x24,0xC8,0x7F,0x86,0xBC,0x27,0x7F,0x94,0x08,0xAE,0x5B,0x7B,
+0xDC,0x5A,0x96,0x9C,0xBE,0x92,0xAD,0xC4,0x98,0x68,0x7A,0x62,0x49,0xE8,0xA1,0x63,
+0x33,0xE0,0xFF,0x83,0x73,0x7C,0x16,0x42,0xB7,0xF5,0xEB,0xE1,0xFA,0x01,0x00,0x08,
+0x4B,0xDC,0x63,0x6B,0x62,0xD8,0xCE,0x5D,0x43,0x2E,0x6A,0xD3,0xFC,0x2F,0x80,0x49,
+0xAD,0x0F,0xF6,0xF9,0xE6,0x8A,0x35,0x0C,0xAD,0x04,0x7D,0xB2,0x1A,0xB0,0x18,0x97,
+0x1B,0x7B,0x23,0xB6,0x41,0xDA,0xE8,0x4C,0x88,0x16,0x6E,0x81,0xA4,0xE3,0xEB,0xC8,
+0x8B,0x91,0xE3,0x91,0xE1,0x41,0x64,0x61,0xB4,0x95,0xF7,0x2B,0x9A,0x70,0x55,0x6D,
+0xFF,0x8B,0xA7,0x02,0xCE,0x58,0x58,0x46,0x70,0xC2,0x43,0x42,0x77,0x7B,0x1F,0xC6,
+0xE4,0x87,0x91,0x18,0x2B,0x64,0x8E,0x8A,0xE9,0x1E,0x09,0x21,0x03,0x3A,0x89,0x0E,
+0xD1,0x0B,0xA1,0x43,0xC8,0xE1,0xEE,0xB5,0x44,0xF3,0x52,0x57,0xEC,0x3B,0xFE,0xAA,
+0xD6,0x67,0x94,0x93,0xFC,0xFE,0xA6,0x48,0x53,0x50,0x7E,0x30,0x75,0x71,0x22,0xC9,
+0x54,0xE8,0x9E,0x23,0x58,0x19,0x90,0x32,0x2F,0x74,0xB7,0x47,0x1F,0x82,0xF8,0x1C,
+0x8D,0x8A,0x39,0xE5,0x64,0x61,0x78,0xAE,0x00,0xE9,0x26,0xC4,0x5F,0xD2,0x5F,0xC1,
+0x87,0xB7,0x3B,0xEA,0xCC,0x9D,0x54,0xE2,0x3C,0x6A,0xBF,0x6E,0xCD,0x0C,0x51,0xD7,
+0xDE,0x79,0x87,0xBA,0x5D,0x17,0xCD,0xFB,0x12,0xAA,0x38,0x28,0x11,0x24,0xCA,0xE2,
+0xF6,0xE2,0x5B,0x8F,0x4D,0xC1,0xF2,0x7A,0x16,0x17,0x1C,0x66,0x2A,0x85,0x94,0xCC,
+0x21,0x85,0x35,0x14,0xAB,0x4A,0xCF,0x8C,0x38,0xD7,0x9B,0x20,0x09,0xB8,0x06,0xBE,
+0x02,0x54,0x04,0x8A,0x36,0xDB,0x4C,0xA3,0x58,0x82,0xEA,0x45,0xAF,0x77,0x39,0xBD,
+0xF2,0xDA,0x90,0xDD,0x01,0x73,0xEF,0x64,0x74,0x7F,0x67,0x0C,0xBB,0x47,0xFA,0x10,
+0x25,0xBD,0xFE,0x46,0x0E,0xDF,0x1E,0x68,0x07,0x34,0x1E,0x40,0x22,0x0D,0x26,0x73,
+0x6F,0x61,0x67,0x25,0x44,0xD4,0xB5,0x85,0xDC,0x72,0x0E,0xF1,0x06,0x08,0x69,0x85,
+0x23,0xA6,0x24,0x32,0xED,0x5A,0x7E,0x57,0x40,0x4E,0x76,0x19,0xA8,0x4F,0xE4,0x39,
+0x40,0x96,0x8E,0xC0,0x8C,0x34,0x53,0xCA,0x79,0x2D,0xDD,0x38,0x8F,0x56,0xCB,0x05,
+0x99,0xF4,0x29,0x06,0xD6,0xE9,0xC7,0xA6,0x01,0xB4,0x30,0x01,0xC7,0x8E,0xDE,0x67,
+0x05,0x65,0x41,0x6D,0x2F,0x8F,0x2F,0x83,0x2D,0xB5,0x30,0x6A,0xF7,0x5A,0x60,0x99,
+0xB2,0x40,0x5D,0xA0,0x56,0x20,0x7E,0x53,0x91,0x1C,0xAA,0x3C,0x9B,0x6F,0xB0,0x9E,
+0x6D,0xBF,0xA6,0x94,0xB8,0x45,0x3D,0xE6,0xBF,0xC7,0x13,0x57,0x6D,0x18,0xB2,0xC3,
+0x38,0x0A,0x9F,0xE2,0x03,0xC3,0xD3,0x2B,0x5B,0xF6,0x41,0x19,0x5C,0x2C,0xA7,0xD2,
+0x84,0x5A,0x51,0xBB,0x41,0x63,0x32,0x94,0xFE,0x27,0xA5,0x8C,0xEE,0x24,0x18,0x5A,
+0x17,0x89,0x02,0x73,0xE9,0x28,0xF6,0xE1,0x82,0xC8,0x11,0x5D,0xDB,0x47,0xB7,0x37,
+0x08,0x51,0x13,0xD7,0xF3,0x1E,0xED,0xED,0x88,0x64,0xD4,0xFF,0xF6,0xC4,0x87,0xEB,
+0x67,0x0F,0x29,0x16,0x24,0x03,0x43,0xC1,0x1A,0x16,0xF7,0xC2,0xD5,0xD5,0xA1,0xE9,
+0x42,0x3C,0x3B,0x05,0x37,0xCE,0x69,0x79,0x54,0x07,0x4D,0xB5,0x7B,0x6A,0x3B,0xAC,
+0x19,0x77,0x30,0xD5,0xA5,0x5B,0x8F,0xAA,0xCA,0x6F,0x58,0x93,0xF9,0xC8,0x76,0x47,
+0x51,0x15,0x25,0x0D,0xA9,0xFF,0x4A,0xA8,0x18,0x1A,0x53,0x07,0xCC,0xAB,0xD9,0x2A,
+0x4B,0x46,0xD4,0x9B,0x78,0x1B,0xDF,0x0D,0xC7,0x92,0xF0,0xFA,0x1B,0x69,0xF1,0xB0,
+0xE9,0x0B,0x56,0x70,0xCC,0x9F,0x3B,0xFD,0x67,0x1E,0xDD,0x61,0xE7,0xDB,0x5F,0x4F,
+0x55,0x5B,0x98,0x29,0x04,0xEB,0x7A,0x6B,0x6F,0xBE,0xBC,0x06,0x32,0xBD,0x7B,0x10,
+0x5F,0xEB,0x17,0xAB,0x68,0x70,0x3A,0x8A,0xDC,0xE6,0x2A,0xFC,0x39,0xE6,0x30,0xC0,
+0xB1,0x8A,0x3D,0xBC,0x2B,0x01,0x49,0xFC,0x7C,0x6A,0x07,0x67,0x26,0x6B,0xFE,0xBA,
+0xCB,0xBC,0x99,0x5B,0x84,0x62,0x24,0xC9,0x31,0x90,0x87,0xA7,0x47,0xF6,0xD3,0xD4,
+0x74,0x26,0x37,0x1E,0xB4,0xE1,0xF8,0xE4,0xDD,0x01,0xB4,0x8E,0xB8,0x7E,0x96,0x9C,
+0xB7,0xCB,0xBD,0x92,0x7F,0x33,0x76,0x4D,0xF1,0xD6,0xA9,0x20,0x50,0x1A,0xBD,0xC9,
+0x0F,0xD5,0xCE,0xEF,0xFF,0xBA,0x28,0xEF,0x81,0x23,0x2B,0xEA,0x9A,0xF1,0x57,0xEC,
+0x77,0xEC,0x57,0x02,0xCD,0x4E,0xA9,0x34,0xBE,0x20,0x8D,0x25,0x69,0x4F,0x08,0xBF,
+0x82,0x1B,0xD1,0x95,0x3F,0xE4,0xCA,0x04,0x63,0xA4,0x8A,0x1D,0x20,0x98,0x48,0x03,
+0x7B,0x1D,0x58,0xAE,0x49,0x49,0x91,0xE9,0xBC,0x2C,0x29,0xE0,0xC6,0x6E,0x75,0x88,
+0xC6,0x88,0xCB,0xE1,0xEF,0xD1,0xCD,0x68,0x6A,0xE3,0x75,0x08,0xD8,0x7D,0x5C,0x80,
+0x0D,0xDA,0xF3,0xE5,0x8C,0x48,0x87,0xB4,0x46,0x34,0x68,0xA6,0x8C,0x83,0xDE,0x83,
+0xAD,0x98,0x4C,0x04,0xD8,0x7A,0xB8,0x05,0xC8,0x63,0xFC,0x56,0xE8,0xD7,0xAE,0xE3,
+0xD0,0x2A,0x35,0xDB,0x53,0x7F,0x8A,0xE5,0x89,0x83,0x4A,0x8D,0x42,0x3F,0x8E,0xDA,
+0x36,0xF4,0xAD,0x44,0x0E,0xB6,0x84,0xE0,0x75,0x2D,0xF8,0x72,0x59,0xE5,0xFA,0xDC,
+0x3A,0x05,0xA2,0xE8,0x32,0x91,0x9D,0xCF,0xB2,0x3A,0xBB,0x3E,0x33,0x23,0x9C,0x62,
+0x43,0xF9,0x66,0x13,0xC9,0xC0,0xCF,0x4B,0x44,0x38,0xCC,0x63,0xC3,0xA7,0x28,0x86,
+0xE2,0x7E,0x84,0xE4,0xD1,0x81,0x89,0xB1,0x8E,0xD2,0x27,0x46,0x06,0x40,0x33,0x0F,
+0x54,0x9E,0xC5,0x3F,0x6E,0x89,0x01,0x03,0x1E,0xAC,0xA0,0xBE,0x2F,0x94,0xB9,0xAF,
+0x44,0x7D,0xBB,0x2B,0xF2,0xCF,0x7F,0x24,0x6E,0x59,0x22,0x74,0x92,0x90,0xF7,0x8B,
+0x52,0xDF,0x45,0x11,0xDD,0x25,0x4C,0xB3,0x85,0x99,0x7C,0x96,0x72,0x95,0x7C,0xB9,
+0xF5,0x19,0x27,0xC8,0x52,0xAE,0x18,0x2C,0x77,0x21,0x5C,0xB7,0x21,0x06,0xAF,0x71,
+0x8E,0xEA,0xDE,0x39,0xAD,0x71,0x2C,0xD7,0x70,0x70,0x31,0x7C,0x5A,0xDF,0x11,0x6B,
+0x72,0x67,0xB7,0x30,0x5D,0xAC,0x12,0x11,0x0F,0x74,0xBF,0x1A,0x4E,0x09,0x94,0xC1,
+0xEC,0x80,0xB6,0x42,0xC2,0x4C,0xA3,0x09,0x4F,0x73,0x97,0xB3,0xF8,0x56,0x91,0x35,
+0x86,0x55,0x6C,0xB1,0xF5,0xE7,0xD6,0x64,0x0B,0xCE,0xE8,0x66,0x7A,0xF4,0xDC,0xDE,
+0xA4,0xE2,0xA3,0x9A,0x58,0xF3,0xE6,0xA7,0x97,0xAA,0x59,0x85,0x48,0xFA,0x22,0x78,
+0x3E,0x4B,0x1F,0xCC,0x02,0x12,0x41,0xE2,0xB5,0x6B,0xD6,0xF5,0x8F,0xB9,0x35,0x34,
+0x80,0x14,0xEC,0x9F,0x31,0x37,0x52,0xF0,0x12,0xB6,0x96,0xA5,0xFB,0x6C,0x7A,0x82,
+0xED,0x45,0xEB,0x54,0xC1,0xEA,0x6C,0x36,0x3A,0xDB,0xDC,0x77,0x7F,0x3D,0x81,0xD0,
+0x00,0xEE,0xA1,0x5F,0xA8,0x2E,0xD8,0x61,0x15,0xE7,0xFB,0x6E,0x65,0x79,0x12,0xA4,
+0xD3,0xE0,0x55,0xC7,0xE1,0x02,0x55,0x9C,0x4A,0x2E,0x5E,0xBD,0xAE,0x0C,0x1F,0xF3,
+0x92,0xF8,0xAF,0x81,0x17,0x26,0x50,0xD3,0xD0,0xFC,0x1C,0xE7,0xC4,0xCA,0x79,0x4D,
+0x66,0xCA,0x74,0x00,0x50,0xD9,0x45,0xDA,0x96,0x4D,0xC7,0xF7,0x28,0xF9,0xE8,0x64,
+0x60,0x8B,0xF4,0x2E,0x62,0x2D,0xC4,0x01,0x87,0x95,0xD8,0x53,0x14,0x65,0x00,0x1C,
+0x57,0x54,0xA5,0x23,0xED,0xA6,0x90,0x9E,0x38,0xD7,0x78,0xB2,0x43,0xA1,0x69,0xA8,
+0xC5,0x42,0xAB,0xFD,0x47,0x9A,0x09,0x1D,0x90,0xFB,0x34,0x4E,0x7E,0xA3,0x66,0xA2,
+0xB0,0x4F,0x60,0xAA,0xE5,0x8C,0x33,0xE3,0xB9,0x71,0xE0,0xEE,0x16,0xC1,0x0C,0xD9,
+0x8B,0x61,0x3E,0x0B,0xAB,0x88,0x17,0x5E,0xA9,0x4E,0x61,0x38,0x8D,0x1D,0x39,0xF1,
+0x76,0x29,0x0A,0x14,0xD4,0xDE,0x7D,0x07,0x3C,0x6D,0x2F,0xCE,0xFF,0x3B,0xC0,0xFE,
+0x99,0x8D,0x7D,0x15,0xA2,0x73,0x26,0xEA,0xDF,0x0D,0x10,0x4B,0x73,0x0B,0x9B,0xCB,
+0x85,0x9F,0x0C,0xAD,0xC4,0xB5,0x98,0x80,0xAC,0x13,0xA8,0x36,0x1C,0x04,0xA0,0x7B,
+0xEF,0x4A,0xD6,0x5E,0xB3,0xC9,0x51,0xA4,0x08,0x25,0xD2,0xD1,0x93,0x0E,0x10,0xF9,
+0x32,0xBA,0x10,0x60,0x9A,0xDA,0x59,0xBA,0x19,0xFD,0xCD,0x75,0x52,0xBE,0xB1,0x0C,
+0x9C,0x06,0x9D,0x27,0x72,0x46,0x21,0x86,0xB0,0x36,0x1F,0xFB,0x95,0xFD,0xA6,0x40,
+0x5D,0xE4,0x2A,0xA1,0x82,0x9B,0x1F,0x40,0x22,0x44,0x3C,0xC6,0x00,0xB3,0x85,0xB6,
+0x15,0x86,0x3F,0x79,0xBB,0xE3,0xF2,0xD9,0x78,0xD0,0x50,0x1B,0x62,0x14,0x43,0x6F,
+0x35,0x3E,0xCD,0x58,0xC6,0xC2,0xC5,0x76,0xC2,0xCF,0x39,0xF4,0xA0,0x9E,0x09,0x2D,
+0x93,0x3D,0xF2,0x97,0xA3,0xA2,0xB4,0x23,0x5F,0x4C,0x16,0x65,0x71,0xAF,0x97,0x0E,
+0xB8,0xF0,0xD2,0x22,0xC3,0x9D,0x31,0xC0,0xFA,0x9D,0xF2,0xF0,0x49,0x64,0xC5,0x0A,
+0x21,0x93,0x0E,0x68,0x8F,0xEE,0x48,0x8B,0xF5,0x6C,0xFE,0x5C,0x2E,0x0A,0x5E,0xDD,
+0xAB,0xDC,0x04,0x3D,0x0D,0xAA,0xF4,0x96,0xA2,0xD2,0x55,0x0F,0xEC,0x64,0x80,0xEB,
+0x5D,0xF8,0x01,0x72,0x4C,0xB2,0x0E,0xD0,0x1C,0x14,0x33,0x65,0xB6,0xB6,0xC2,0x71,
+0x1A,0x07,0x14,0x7B,0xB8,0x80,0xD5,0x51,0x35,0x27,0xA2,0x89,0xA6,0x07,0x19,0x37,
+0x28,0xF3,0x95,0xA0,0xBE,0xC1,0x55,0x7F,0x4D,0xBB,0x4A,0xB5,0x02,0xDF,0x06,0x26,
+0x48,0xCC,0x10,0x43,0xE0,0x01,0xBE,0x9D,0x65,0x67,0x7F,0x2E,0xA4,0x21,0x08,0x14,
+0x7B,0xE9,0x03,0x51,0x5E,0x5E,0x4D,0xCE,0xD3,0xB2,0x30,0x5A,0xF4,0xFC,0x48,0xB3,
+0x8B,0x34,0x3D,0x97,0x33,0x0F,0x4A,0x05,0x81,0xE3,0xCB,0xDE,0x26,0x91,0x02,0x9B,
+0xE2,0xF0,0x89,0xC0,0xDE,0xA4,0x00,0x0E,0xF5,0xA7,0x58,0xC4,0x3F,0xAD,0x25,0xB4,
+0x17,0x72,0x43,0xB0,0xAC,0x2D,0x16,0x61,0x90,0xD7,0xDE,0xEF,0x4B,0x3E,0x61,0xAE,
+0x88,0x92,0xF2,0xA8,0x32,0xCA,0x17,0x13,0x64,0x88,0xDB,0x59,0xE2,0x39,0x49,0xEE,
+0xBF,0x39,0x87,0xC5,0x58,0x1F,0xCD,0xE0,0x8F,0x2A,0x96,0xDB,0x37,0x84,0x36,0xAA,
+0x12,0x2D,0xB7,0x06,0x7A,0xA8,0x02,0xCB,0x29,0x24,0x68,0xE9,0xD4,0xE0,0x87,0x36,
+0xB8,0x11,0x2E,0x85,0x9A,0x37,0x1A,0x7A,0xDA,0x4E,0xBD,0x33,0x25,0x13,0xFC,0xCF,
+0x97,0xFB,0x1D,0x12,0x8C,0x95,0xE4,0x40,0xE8,0x4B,0x36,0xD3,0xC7,0xD3,0xA2,0x24,
+0x18,0x70,0x49,0x8D,0x2B,0x53,0x86,0x99,0x20,0xD8,0xE5,0x80,0xE6,0x6B,0x82,0xD6,
+0xE7,0xAF,0x7D,0x76,0x50,0xA0,0x7F,0x68,0x3A,0x01,0x5B,0xFB,0x2D,0x3A,0xEF,0xD1,
+0x8C,0x1C,0x94,0xD7,0xEB,0x74,0x6C,0x09,0x7C,0x40,0x43,0x01,0xA5,0x85,0xE7,0x63,
+0xE9,0x7C,0xE5,0x82,0x4D,0x77,0x53,0xC6,0x5F,0x71,0xDD,0xD0,0x34,0x06,0xC8,0xFE,
+0x89,0x43,0x60,0x61,0x66,0xBA,0x73,0x73,0x5B,0xBA,0x8F,0xE8,0xA1,0xD7,0x2C,0x5B,
+0xC5,0x30,0x19,0x2A,0xFF,0xD9,0xAF,0x39,0x8C,0xD4,0x14,0x8F,0x0D,0x26,0x20,0x54,
+0xD0,0x04,0x08,0x1B,0xEC,0xF0,0xB1,0x31,0x5D,0x60,0xFB,0xF3,0x24,0xB7,0x13,0xB8,
+0x38,0x98,0x70,0x27,0x42,0x4C,0x3C,0x76,0x11,0x23,0xEC,0x34,0xAA,0x7C,0xC1,0x11,
+0xC8,0x45,0x4E,0xE1,0x83,0xAE,0x8B,0xF0,0xE7,0x6D,0xCF,0xA1,0x97,0x0E,0xE2,0x83,
+0xF1,0x3D,0xA3,0x78,0xCB,0xCC,0x9E,0x28,0x3E,0xCA,0x09,0xC3,0x4A,0x9A,0x8E,0xD9,
+0x9E,0x00,0x2C,0xA6,0xA8,0x63,0xAB,0x45,0xAF,0xE5,0x8A,0x5E,0x9F,0x27,0xF1,0x9D,
+0xE8,0xAD,0x77,0x4B,0x47,0xC7,0xDC,0x44,0x9A,0xD5,0xD1,0xD2,0x1A,0x47,0xCE,0x7E,
+0x8E,0x6B,0xC9,0x21,0x5B,0xD5,0xAD,0xFC,0x2A,0xDA,0xEA,0xBD,0x67,0x59,0x76,0x0D,
+0xF9,0x17,0x00,0x05,0x31,0x00,0x77,0x0F,0xA8,0xD0,0x5A,0x32,0x80,0x6F,0x0C,0xA9,
+0xA7,0x78,0xC1,0x3F,0x89,0x1E,0x04,0x72,0xF9,0x7F,0x23,0xE2,0xE3,0x9D,0xA6,0x99,
+0x0D,0x44,0x58,0xBC,0x1B,0x08,0x0A,0xAC,0xF3,0x7D,0x2C,0xDF,0x1F,0xB1,0xEA,0x31,
+0xAF,0x52,0x62,0x42,0x6E,0x05,0xC1,0xFB,0x88,0x1F,0x46,0xB7,0xBF,0x3B,0x3E,0x18,
+0xE1,0x56,0x46,0xFF,0x55,0x2B,0x9F,0x5A,0xA0,0xC3,0x73,0x2C,0x69,0x04,0xBF,0x08,
+0x86,0x41,0x6A,0x5C,0x37,0x41,0xF7,0x21,0x1E,0x05,0x15,0x46,0x30,0x54,0x03,0xC6,
+0x4E,0x35,0x2B,0xCA,0x8B,0x11,0x39,0x78,0x41,0x63,0x31,0x93,0x57,0xF4,0x62,0xCE,
+0x22,0xAE,0x6B,0x2B,0x81,0xA1,0xB6,0xFA,0x91,0x38,0x7A,0x98,0xAD,0xAC,0xF4,0x7D,
+0x61,0xDF,0x18,0x5D,0x6F,0xC0,0x9C,0xED,0xEB,0xB5,0xB4,0x87,0x36,0x20,0xD9,0xDD,
+0x7D,0x10,0x38,0xD8,0x9C,0x76,0x9A,0x54,0xFD,0xB4,0x71,0xDA,0xE4,0x4D,0x93,0xF5,
+0xEF,0x85,0xDE,0x0B,0xC7,0x3D,0x91,0x84,0x16,0x16,0x3C,0x58,0xC2,0x25,0x86,0x6B,
+0xE3,0x21,0x1B,0x09,0x8F,0x5F,0x84,0x5C,0x7B,0x75,0x93,0x6D,0x56,0x50,0x8D,0xB9,
+0x32,0xC5,0x8E,0xAC,0x95,0x0C,0x75,0xCA,0xE1,0xB7,0xBB,0xBA,0xAB,0xD8,0x2E,0x66,
+0x0B,0xBD,0x63,0x35,0x5A,0x10,0xF0,0xEA,0x0B,0xFA,0x52,0x4F,0xDD,0x6D,0x7B,0x5F,
+0xA3,0xF6,0xA7,0x40,0xC9,0xC3,0xA3,0x22,0x66,0x99,0xFD,0x7A,0x0C,0x82,0xCF,0x23,
+0xB9,0xC0,0xBC,0x4C,0xD6,0x1B,0xB2,0x86,0xBA,0x1A,0xCD,0x57,0xAE,0x2E,0x0A,0x29,
+0x6E,0xDD,0x12,0x60,0xB9,0x45,0x88,0x47,0xB8,0x0B,0xEB,0x74,0x93,0x5C,0x29,0xBB,
+0x65,0x51,0x7E,0x22,0xDB,0x2F,0xE0,0x3C,0xC8,0x84,0x2A,0x56,0x3B,0xFF,0xEE,0x8C,
+0x1C,0xFE,0x2F,0xF2,0x6C,0x0A,0xFC,0xF1,0xCF,0xB1,0xFA,0x3A,0x6D,0x56,0x74,0x30,
+0xF2,0x9B,0x6C,0x47,0xB3,0xF5,0x07,0xC5,0x92,0xC6,0xF8,0xCC,0x06,0x8D,0xCD,0x1E,
+0x49,0x1D,0x82,0x8A,0xE6,0x40,0x3E,0xB3,0x83,0xF2,0xED,0xFD,0x48,0xBC,0x9F,0xFA,
+0x78,0x4F,0xCC,0x6E,0xE4,0x4F,0x03,0xB9,0x33,0xFD,0xD6,0x92,0x6F,0x70,0x65,0x13,
+0x83,0x1E,0x9E,0xEA,0x9D,0xB3,0xC7,0x42,0xD7,0x79,0x62,0x62,0x32,0x72,0x12,0xE5,
+0x9B,0x5F,0xD8,0x10,0x3C,0x34,0x25,0xB5,0x5E,0x9E,0x79,0xA7,0x17,0x98,0xF9,0x2F,
+0x24,0x57,0x50,0xA2,0x8A,0xD4,0x64,0x6E,0xFE,0x4A,0xF3,0x8E,0xEF,0xE6,0x7E,0xBF,
+0xC6,0x96,0xD6,0x15,0xD3,0x90,0x52,0xB4,0xD2,0x5D,0x94,0x2D,0xF7,0x7E,0xB6,0xE7,
+0x92,0xA4,0xE9,0xA4,0x73,0xD2,0xED,0x55,0xB2,0x09,0xE4,0x49,0x07,0x29,0x22,0x69,
+0x19,0xA1,0xDB,0x44,0x0E,0x60,0x94,0x8A,0x8B,0xE1,0xC4,0xE3,0xDC,0xC9,0x94,0x28,
+0x44,0x68,0xD5,0x41,0xE8,0xBE,0x0C,0x15,0x8D,0x3B,0xB0,0xF8,0x23,0x67,0x26,0xD4,
+0x87,0x90,0xF8,0x95,0xA9,0xA6,0xF6,0x53,0xEE,0x91,0x42,0xC8,0x74,0x6A,0x53,0x1F,
+0x75,0x3A,0x9B,0xA5,0x5C,0x51,0x70,0xC4,0x52,0x46,0x02,0x81,0x4C,0xEE,0x54,0xC2,
+0x03,0x97,0xC0,0x48,0xA5,0x57,0xF9,0xFF,0xD9,0xB0,0x3F,0x67,0xB1,0x66,0xF7,0x1D,
+0xA5,0x0F,0x9C,0xC9,0x18,0xC2,0x6A,0xB0,0xD1,0xA3,0x16,0x79,0x59,0xA9,0xAB,0xCB,
+0xCE,0xBC,0x75,0x68,0x15,0xF6,0x38,0x0A,0x85,0x28,0x99,0xE6,0xF6,0xDA,0x59,0x90,
+0xFE,0x3F,0xA9,0x45,0xAA,0x6C,0x96,0x4F,0xCD,0xA0,0xDC,0x19,0xDF,0x4B,0x6A,0x7C,
+0x35,0xED,0x27,0xEC,0x69,0x81,0x1C,0xC3,0x98,0xC4,0xF7,0xF1,0x71,0x9C,0x77,0x50,
+0xB5,0x64,0x79,0x4E,0xD1,0x9F,0x6F,0xBE,0xBD,0x2F,0x1D,0x3B,0xBB,0x69,0xF5,0x20,
+0x68,0xA0,0x43,0x47,0x7C,0x45,0xC4,0x73,0x82,0xD0,0x4A,0xC8,0x92,0xCD,0x35,0xA3,
+0xAC,0x5B,0xBF,0x3E,0x2E,0xC1,0x95,0x88,0x80,0x8D,0xBC,0xBF,0x26,0x3D,0xD1,0x27,
+0xCB,0x8C,0x24,0x50,0xB2,0x0D,0x8D,0xD4,0x16,0x0D,0x10,0xA4,0x03,0x21,0x1C,0x90,
+0x8A,0x57,0xC4,0xE6,0x3A,0xBF,0x85,0x6B,0x68,0xF5,0x80,0x23,0x89,0x08,0xBC,0x44,
+0x42,0xB7,0x22,0xA9,0x0B,0x0B,0x7E,0x62,0xD9,0xE5,0xC6,0xF8,0x14,0xE6,0x50,0xD3,
+0xFD,0x56,0x60,0x09,0x34,0xBA,0x4C,0x36,0x8E,0x15,0x48,0x6C,0x64,0x82,0x30,0x87,
+0xA3,0xF7,0x4E,0x32,0x37,0xEE,0xB2,0xB4,0x97,0xC1,0x7B,0xFC,0x40,0x57,0x6F,0xE1,
+0x3B,0x68,0x90,0xD4,0x39,0xEB,0x7B,0xE9,0x39,0x3E,0x87,0x4E,0x34,0x4C,0x69,0x3B,
+0xDF,0x26,0xA1,0x86,0x79,0x0A,0xE0,0x85,0x1E,0xAE,0x6D,0x8E,0xF2,0x2E,0xB0,0x9C,
+0x59,0xB1,0x56,0x73,0x1A,0x3A,0x4A,0x77,0x9A,0x96,0xB0,0x89,0xB2,0x67,0x0C,0x4B,
+0xC5,0x52,0x32,0xC2,0x7E,0x66,0xD5,0x55,0x59,0xBB,0x64,0x71,0xE6,0xD6,0x33,0x79,
+0x56,0x1D,0xA7,0x7F,0x22,0xE7,0x4D,0xF3,0x96,0x53,0xB2,0x2D,0xCF,0xC8,0x3B,0x6A,
+0x39,0xAD,0x9C,0x70,0x4B,0xEA,0xE5,0x0E,0xBB,0x3D,0xD3,0xB0,0x2C,0xB6,0x2F,0x7A,
+0x97,0xE8,0x06,0xCF,0x97,0xC7,0x66,0x3E,0x2A,0x14,0x3F,0x83,0x69,0x49,0x67,0xF2,
+0xC0,0x5C,0x6F,0x0B,0x9B,0xE1,0xBE,0x45,0x99,0x59,0x8F,0x2F,0xED,0x94,0x5F,0xF5,
+0xB3,0x21,0x71,0xB3,0xC5,0x43,0x37,0xC5,0x6C,0x93,0xFF,0xAD,0x07,0x5E,0x7A,0x1E,
+0x96,0x9A,0xE1,0x51,0xC9,0x65,0xEF,0xBE,0x04,0xB5,0x61,0xB8,0xC1,0x3C,0xA3,0xB9,
+0x58,0xC3,0xB1,0xED,0x88,0xF3,0x9B,0x76,0xA4,0xD2,0x69,0xD9,0xE5,0xE9,0xFC,0xDF,
+0x33,0x0F,0x30,0xB5,0xFA,0xF2,0x05,0x91,0xD0,0xD4,0x72,0x03,0x44,0x28,0x09,0x6F,
+0x19,0x18,0x51,0x5B,0x89,0x84,0x74,0xD2,0x5C,0x4F,0xD2,0x2E,0x8A,0x37,0x73,0xE2,
+0x3E,0x66,0xCD,0x1D,0x3C,0xA4,0x5F,0x1F,0xD5,0x20,0xC4,0x5C,0xCC,0xF7,0xF4,0xCC,
+0x35,0xB6,0x86,0x46,0xDA,0x77,0xCA,0x8D,0xBD,0x06,0x5A,0x49,0x81,0x75,0x1F,0x6E,
+0xDA,0x28,0xFC,0x4F,0x6C,0x03,0x1F,0xC2,0x28,0x49,0xC9,0xF4,0x4B,0x15,0x03,0x6D,
+0x2B,0xBE,0xAF,0x55,0xF9,0xA6,0xFB,0x13,0xA0,0xB4,0x16,0x57,0x63,0xC2,0x99,0xAF,
+0x0C,0xC0,0x33,0x13,0x45,0xEF,0x2C,0x53,0x72,0xEE,0x8C,0x15,0x0D,0xD5,0x84,0x43,
+0x5F,0x08,0xE0,0x80,0x81,0x9A,0x67,0xFB,0x9D,0x3F,0xF0,0xA1,0xA2,0xE0,0xE9,0x20,
+0x27,0xA5,0xB5,0x63,0xF0,0xCF,0x07,0x9E,0xAC,0x71,0x14,0xF3,0x1B,0xDB,0x5A,0xD1,
+0x1D,0x64,0xEB,0x0C,0x5E,0xE3,0x1A,0x49,0xDE,0x4C,0x86,0xD0,0x3D,0xF8,0x58,0xC0,
+0x53,0x13,0xFA,0xB6,0xCD,0x5D,0x24,0xEC,0xA6,0x8F,0x9F,0xAE,0x0A,0x95,0x2D,0x6B,
+0x4F,0xDE,0xDF,0x01,0x9C,0x8D,0x8B,0x95,0x0F,0xD9,0x23,0x34,0xDA,0xF9,0x2A,0x5E,
+0x91,0x51,0xB0,0x3C,0x60,0x25,0xC7,0xB9,0x4C,0xAA,0x55,0x45,0x1D,0x52,0x61,0x28,
+0xA8,0x27,0x05,0x69,0x8E,0xE8,0x41,0x02,0x7D,0xE4,0xB1,0x17,0x08,0x63,0x70,0x1C,
+0xFC,0x24,0x87,0x97,0x07,0x2D,0xA6,0x19,0xF6,0xD6,0x51,0x12,0x2D,0x7F,0xBD,0xAB,
+0xC3,0xEB,0x84,0x31,0x76,0x78,0xC6,0x7C,0x75,0x47,0xCC,0x3D,0xB3,0xAE,0x9E,0x9A,
+0x00,0xDB,0x29,0x25,0xFB,0x85,0xEA,0x35,0xD6,0xEF,0xFB,0xFA,0xE4,0x20,0x6E,0x0E,
+0xDC,0x91,0x4A,0xBC,0x82,0xCE,0x99,0x79,0x27,0x43,0xF4,0xF6,0x7F,0x47,0xB9,0x60,
+0x93,0x94,0xBC,0x98,0x92,0x88,0x42,0xC8,0x8C,0x48,0xBE,0x1B,0x1C,0x9B,0xF3,0xF9,
+0x1E,0xD3,0x00,0x36,0xEA,0xB4,0xDE,0x20,0x47,0xC6,0x17,0xC9,0x0B,0x5C,0xBF,0xBA,
+0x31,0xCA,0x3C,0x11,0x41,0xD7,0xE7,0x01,0x6A,0xA8,0x76,0x54,0xF9,0x6C,0xDC,0x10,
+0x24,0x12,0x5E,0x59,0xAC,0x4E,0x9F,0x38,0xFE,0x75,0x2C,0x38,0x3F,0x0E,0x05,0xB7,
+0x73,0xA6,0x37,0x9D,0x95,0xE4,0x77,0x18,0xB7,0xF8,0xD1,0x14,0x21,0x7D,0x78,0x0F,
+0x04,0xA7,0x93,0x72,0xCE,0x09,0xDA,0x6E,0xD7,0x7D,0x32,0x2B,0x7A,0xF1,0x4D,0x3F,
+0xD8,0xED,0xF0,0xEB,0xE2,0xAA,0xCD,0x09,0x9F,0x62,0x06,0xD6,0xAA,0x9D,0x4A,0x0A,
+0x02,0x1E,0x25,0x81,0x2B,0x8E,0xB1,0x7E,0xA9,0x85,0xA2,0xAC,0x1A,0x12,0xC8,0x00,
+0xA5,0x4E,0xF8,0xC1,0xBA,0x13,0x9E,0xFD,0x41,0xFD,0x9E,0x30,0xDC,0x70,0x11,0xA7,
+0xAB,0x90,0xEE,0x53,0x23,0x90,0xA2,0x57,0x6D,0x01,0x36,0x7C,0xD3,0x4D,0x1B,0xA5,
+0x30,0xB8,0xDB,0x8F,0xA4,0x50,0x8C,0x11,0xF4,0x8B,0xA7,0x65,0x83,0x83,0x42,0x19,
+0x6E,0x19,0xF5,0xB4,0x80,0xED,0x88,0x5F,0xCB,0x5D,0xB7,0xE4,0xB6,0x18,0x6A,0xC5,
+0xA1,0x32,0x42,0x96,0xE3,0xDD,0x22,0xAD,0x46,0x54,0xDE,0x18,0xC3,0xCA,0xFE,0xCE,
+0x5B,0x74,0x5A,0xD7,0xE6,0x92,0x06,0x5B,0x94,0x0E,0x44,0x5A,0xA5,0xA0,0x40,0x08,
+0xFA,0x9D,0x31,0x64,0x77,0x0F,0x29,0xD8,0x2F,0xE0,0x89,0xDC,0xBA,0x1A,0xAF,0x61,
+0x7A,0xB3,0x70,0x62,0xF6,0xD4,0xDD,0xEA,0xF7,0x44,0x98,0xC3,0x52,0x26,0xD7,0xFD,
+0xE2,0x2C,0xAE,0x84,0xE1,0xFE,0x33,0x8B,0x0C,0x16,0x1C,0x92,0xC0,0xF5,0x31,0x68,
+0x11,0x7F,0xF1,0x3A,0xF2,0xEC,0x16,0xB8,0xD1,0x46,0xBB,0xD2,0x8F,0x81,0x87,0xBD,
+0xAF,0xEC,0x54,0x04,0x6B,0x6F,0x2A,0x12,0x5D,0xDD,0x1B,0xFF,0xA8,0x6B,0x17,0x7D,
+0xE5,0xE7,0xFF,0xE9,0xDF,0x38,0xEE,0x7B,0x61,0xC4,0x34,0xD8,0x3B,0x71,0x63,0x39,
+0xB8,0xF1,0x3A,0xE8,0x10,0x07,0x48,0x78,0xC9,0x00,0x41,0x93,0x2B,0xF6,0x86,0x52,
+0xB9,0x83,0xDD,0x76,0xA1,0x1F,0xA8,0xE7,0xCE,0xA9,0x01,0xBB,0x2E,0x40,0x72,0x0D,
+0xAD,0x29,0x58,0xA0,0x55,0xA9,0xF7,0xE2,0x10,0x36,0x99,0x5D,0x98,0x46,0xCB,0xFE,
+0x62,0x02,0xEF,0x82,0x65,0x6A,0xE3,0x4F,0x74,0xD5,0x05,0xEC,0x66,0x74,0x6D,0xF0,
+0x4B,0xA2,0x65,0x56,0xFF,0xBD,0x21,0x67,0x23,0x25,0x8B,0x78,0xC6,0x7C,0x0A,0x91,
+0xB5,0x98,0xC7,0x40,0xCC,0x2A,0xCB,0x48,0xE3,0xC7,0x60,0x26,0x4D,0x9C,0x38,0x94,
+0xD0,0x8A,0x50,0x8A,0x9F,0xD9,0x75,0x17,0xCA,0xCF,0x7E,0x35,0xAB,0x54,0xD8,0xDB,
+0x29,0x7B,0xA3,0xF1,0xAB,0x22,0xAA,0xE8,0x9B,0x04,0x79,0x58,0x15,0x2F,0xC2,0x02,
+0x4D,0x66,0x2C,0x19,0x5E,0x2F,0x7A,0x23,0x7E,0xAD,0x49,0x21,0x46,0x6C,0xEB,0x94,
+0x72,0x54,0x78,0xA8,0xE1,0xCE,0x38,0x83,0x0E,0xF9,0x29,0x45,0xD2,0x9C,0x65,0xC3,
+0x40,0x51,0xF3,0x48,0x98,0x11,0x8A,0xFE,0x2E,0x11,0x10,0xEF,0x64,0x47,0x24,0x23,
+0x4E,0x98,0xAE,0x4D,0x00,0x8E,0x54,0x18,0x5A,0xCB,0x16,0xF4,0xD6,0xB8,0xD8,0x8D,
+0x57,0xBF,0x92,0x62,0x0F,0x22,0xA5,0x14,0x3C,0x0D,0xA8,0x9E,0x95,0xF4,0x1F,0x9A,
+0x05,0xEE,0x69,0xE6,0xCB,0xD9,0x59,0x6D,0x88,0x89,0x4C,0x6E,0xE2,0xA9,0xE9,0x98,
+0x43,0xAF,0x71,0x1C,0x29,0x2E,0xDE,0xCC,0x93,0x6E,0xC5,0xAB,0x09,0x8C,0x23,0x72,
+0xCB,0xA7,0xCE,0xAE,0x68,0xF5,0x3E,0x7A,0x19,0xBA,0x65,0x82,0x8E,0x74,0xB3,0x0C,
+0xEE,0x4C,0x24,0x64,0x34,0x91,0x1C,0xE5,0x73,0xD8,0x1E,0xEA,0xA9,0x6D,0x9C,0x30,
+0x32,0xCF,0x14,0x49,0x9A,0xD4,0x86,0x5A,0x36,0x50,0x56,0x15,0x9A,0x44,0x70,0xA1,
+0xBC,0x1D,0xDF,0xE0,0x10,0x58,0x6B,0x99,0x1D,0x34,0x03,0xFD,0x87,0xEA,0x5C,0x76,
+0xE2,0x94,0x5F,0x42,0x63,0x25,0x75,0x21,0xF7,0xDF,0x26,0x37,0x05,0x20,0x2C,0x83,
+0x63,0x60,0x6D,0x99,0xFA,0xC8,0x4C,0x59,0xA8,0x61,0x75,0xC4,0xA3,0xEF,0x13,0x80,
+0x00,0xCA,0x9F,0xA9,0x7C,0x5F,0xBB,0xAC,0xE8,0xB6,0xC9,0x8D,0xA4,0xD7,0xCE,0x04,
+0x5B,0x67,0xE9,0x44,0xF5,0x64,0xBD,0x55,0xD5,0x40,0x42,0x6B,0x07,0x2A,0x11,0x8C,
+0x07,0xFF,0x4F,0xC5,0x66,0x2B,0x28,0xE8,0xFC,0x53,0x4A,0x75,0x5B,0xC2,0xC7,0x43,
+0xA3,0xE0,0x97,0xD4,0x96,0xCF,0x9C,0x6C,0x9B,0x44,0x66,0xD6,0x63,0x7F,0xF9,0xA7,
+0x45,0x75,0x05,0x07,0x9D,0x1F,0xD7,0x37,0xD6,0xE6,0x8D,0x54,0x76,0x59,0x67,0xCF,
+0x80,0xD1,0x09,0x05,0x88,0xC7,0xB5,0x7F,0x79,0x85,0xE0,0x61,0x7D,0xCD,0xB5,0xBA,
+0x15,0x35,0xD8,0xA0,0x79,0x51,0xE6,0x65,0x51,0x47,0x7A,0xB6,0xDE,0x30,0x6A,0x32,
+0xF1,0xB1,0x6C,0x50,0xFB,0xBA,0xAB,0xC7,0xFF,0xF5,0x85,0x4A,0xF3,0xAB,0xCA,0xBE,
+0xB0,0xC5,0xA4,0xC6,0x35,0xE3,0xFB,0x7B,0xDB,0x93,0xDA,0x9F,0x92,0xCC,0xC2,0x1E,
+0xF0,0x5E,0xC8,0x27,0xBA,0x61,0x4B,0x71,0x90,0xC8,0x0A,0x94,0x04,0x36,0x71,0x46,
+0x83,0x2F,0x8B,0x51,0x90,0x76,0x2A,0x9F,0x5E,0x45,0x70,0x8B,0x29,0xAD,0xD1,0xCA,
+0xE5,0xA1,0x8F,0x2E,0xEC,0xA7,0xC5,0x2B,0xC0,0x74,0x53,0x5A,0x1E,0xA0,0x80,0x15,
+0xB4,0x0E,0xF6,0xFE,0xF0,0x6A,0xE0,0x9C,0x10,0x41,0x54,0x36,0x84,0xF6,0x3C,0xBC,
+0xF7,0x6B,0x18,0x4B,0x0B,0x5E,0x1F,0x43,0x12,0x36,0x09,0xC0,0x3D,0x9D,0x12,0x67,
+0x19,0xED,0xA3,0x86,0x32,0x28,0xAA,0x16,0x07,0x02,0x18,0xF1,0x6F,0xD3,0xF6,0x56,
+0xF8,0x4D,0xE1,0x39,0xFC,0x71,0xFA,0xAA,0xB8,0x0A,0x90,0x43,0x8B,0x46,0x53,0x87,
+0x3C,0x06,0x49,0x4C,0xAF,0xB9,0x29,0x39,0x17,0x69,0xFD,0x76,0x3F,0x97,0x2F,0x68,
+0x27,0x30,0x53,0x40,0xBE,0x1D,0xF1,0x26,0x27,0xEA,0x21,0x5B,0xFA,0x35,0x25,0xC4,
+0x89,0x2D,0x84,0x6C,0x84,0xDC,0xAF,0x49,0x01,0xFB,0x23,0x78,0xD9,0x08,0xB7,0xB6,
+0x93,0xF4,0x3A,0x17,0xBD,0xAA,0x1A,0x1C,0x11,0x90,0xC6,0xFF,0xE3,0xBF,0xB4,0x5D,
+0xEB,0x68,0xD2,0x2B,0x30,0xED,0xA6,0xB2,0x06,0xD3,0x8A,0x38,0x31,0x31,0x1D,0x96,
+0xD5,0xB5,0x22,0xED,0x87,0x6B,0x44,0x73,0x25,0x9D,0x7C,0xAD,0x12,0x0C,0x8F,0xE4,
+0x38,0xCD,0x1B,0x74,0x92,0xB3,0x26,0x3B,0xE3,0x3A,0xA5,0xCF,0x7E,0xD1,0xD5,0x70,
+0x0F,0xEC,0x66,0xDB,0x60,0x92,0x9E,0x1B,0xA9,0xB0,0xE7,0x0D,0x17,0x3E,0x6F,0x6F,
+0x7E,0x8C,0x03,0x8E,0x5F,0x5D,0x9D,0xBD,0x37,0x81,0xC4,0xDC,0x38,0xAF,0xF2,0xEC,
+0xFB,0xB3,0x63,0x6D,0x7F,0xE8,0x50,0x96,0x65,0x4A,0xC0,0xE4,0xDC,0x3A,0x57,0x3D,
+0x82,0xC0,0x2F,0x26,0xA3,0xA2,0x33,0x0F,0xFE,0x24,0x17,0x83,0xD0,0x96,0x58,0xCC,
+0x5A,0x88,0x4D,0x33,0x08,0xE9,0xF4,0x79,0xC9,0x8F,0x62,0xEE,0x56,0x78,0x95,0x77,
+0xC3,0xB4,0xE7,0xB0,0x06,0x37,0xE2,0xEB,0xC6,0x8D,0x68,0xD3,0x1A,0x84,0x3D,0x5B,
+0xF9,0xA2,0x45,0x4E,0xCD,0x60,0xEF,0x9E,0xAC,0xEF,0x13,0xBB,0xCE,0x24,0x14,0xD1,
+0xDD,0xA6,0x0B,0xF3,0x93,0xC1,0xC1,0xA5,0x99,0x33,0x3B,0x20,0x4F,0xF2,0x04,0xEE,
+0xB7,0xF0,0x74,0xAA,0xA7,0xDE,0x89,0x58,0x60,0x15,0x34,0x52,0x01,0x04,0x91,0xCD,
+0xEC,0x5D,0x02,0x47,0xD0,0xDF,0x2D,0xB7,0x3B,0x25,0x01,0xDE,0x3E,0x81,0x72,0xAD,
+0x52,0x9B,0x64,0x2D,0xA1,0x67,0x3F,0xAB,0x00,0x2A,0xB1,0xB1,0x86,0xFC,0x01,0xB3,
+0x9B,0xE7,0x13,0x09,0x7B,0x94,0xEA,0xC1,0xB0,0x20,0x33,0x3E,0xFC,0x1B,0xA5,0x85,
+0x8B,0x3C,0xA2,0x4F,0xB2,0x06,0xEB,0x10,0x95,0x97,0xFE,0x22,0xF8,0x3F,0x18,0xCB,
+0x98,0x19,0x91,0x5D,0x41,0x55,0xB4,0xAE,0xDA,0x42,0x48,0x56,0xB8,0x6F,0xBF,0x16,
+0xA6,0xC4,0x61,0x9B,0x46,0x9E,0xE5,0xC3,0x21,0x13,0x1A,0xD2,0xF2,0xBD,0x97,0x7B,
+0x12,0x00,0x08,0xCC,0x0C,0x95,0x4E,0x2E,0xB2,0x57,0x6E,0xC8,0xD5,0xA4,0xB8,0x47,
+0x9F,0x2C,0x41,0x31,0xF8,0x0D,0x40,0xFD,0xBF,0x22,0x39,0x03,0x70,0x77,0xE7,0x8E,
+0x9A,0x08,0xB7,0x7E,0x02,0x4B,0x58,0xBC,0xD9,0xE4,0x87,0x69,0x32,0x2D,0x7D,0x5C,
+0x8F,0xF7,0xF0,0x77,0xD9,0xCA,0x6A,0x48,0x48,0xD7,0xAE,0x85,0xE9,0x3D,0x3B,0xED,
+0x0E,0x03,0xC2,0xAC,0x59,0xE4,0x2B,0x4E,0xA0,0x4B,0xD6,0xB9,0xF6,0x99,0x2A,0x35,
+0xB5,0xE1,0x52,0x89,0x16,0xE1,0xDD,0x6A,0x57,0xBE,0x41,0x3F,0x0C,0xBE,0xC3,0xF9,
+0x86,0x0B,0x7D,0x1E,0xE8,0xDB,0x7F,0x7C,0xDC,0xBB,0x73,0xDF,0x52,0x5C,0x28,0x39,
+0xD2,0x80,0xF2,0x81,0x8A,0x02,0xB9,0xDB,0x0F,0x28,0xBB,0x8C,0x72,0x7D,0xDA,0x81,
+0xE6,0x5F,0x0D,0x7A,0x73,0xF3,0x4A,0xA0,0xB1,0xF1,0xA1,0xF7,0x1F,0xB6,0xDD,0xD0,
+0xD8,0x82,0xFD,0xBC,0x1A,0xFA,0xC7,0x5C,0x34,0x27,0x0B,0xE3,0x91,0xD0,0xA2,0xD4,
+0x69,0x62,0x62,0xA4,0x1B,0x88,0x20,0xC2,0x31,0x78,0xFF,0x55,0xB9,0x79,0xE2,0xD3,
+0x1C,0xC9,0x55,0xC9,0xC1,0x7B,0xF5,0xA8,0x7C,0xDA,0x14,0xD7,0xC6,0xAC,0xA6,0x6E,
+0x2C,0xDD,0xF8,0x0A,0x0E,0x50,0x42,0x8A,0x82,0xD4,0xB2,0xE5,0x77,0x4F,0x3A,0x0A,
+0xB8,0x0E,0xB8,0x94,0x92,0xA3,0x62,0x7A,0x3B,0x3E,0x95,0x48,0xAE,0xB0,0xF3,0xD9,
+0x35,0xB2,0x16,0xD3,0xEA,0x9F,0xFE,0x92,0xE9,0xF5,0x3C,0xC6,0xB9,0x77,0xBF,0x9A,
+0x1A,0x8E,0x31,0xCA,0x41,0xFC,0xC7,0xB3,0x74,0xD8,0x5D,0xA8,0x4B,0x47,0xDC,0x30,
+0x0F,0xEC,0x79,0x12,0xAC,0x65,0xBF,0x8A,0x18,0x4C,0x07,0x75,0x8D,0x25,0x05,0x97,
+0xD7,0x35,0xB7,0x24,0x07,0x06,0x86,0xAB,0x32,0x44,0x7A,0xD6,0x9F,0x54,0xBD,0x8B,
+0xE8,0x36,0x11,0xEB,0x76,0x53,0xE6,0xCE,0x1D,0xC7,0xE7,0x47,0x01,0x85,0x9E,0xBA,
+0x2B,0x9B,0x05,0xDB,0xFB,0xAE,0xCA,0x87,0xDA,0x64,0xD0,0xEF,0x56,0x0B,0x6E,0x2E,
+0xF7,0xF8,0x9C,0x91,0x82,0xE5,0xB9,0xCB,0xD6,0x95,0xDF,0x43,0xCD,0x6C,0xB9,0x40,
+0x8E,0x4A,0xE1,0x4E,0xBA,0x38,0xBE,0x4F,0x10,0xF3,0xB5,0xFD,0x6E,0x5B,0x11,0x87,
+0x80,0x5C,0x73,0x90,0x23,0xBB,0x82,0xE5,0x5C,0xDF,0x1D,0x01,0x61,0x66,0x1B,0x85,
+0x1B,0x69,0xAF,0xB8,0xA4,0x7B,0xAC,0xA3,0x45,0x46,0x8C,0x8B,0x31,0xA8,0x42,0x39,
+0x45,0x47,0x94,0x19,0x80,0xC6,0xA8,0xED,0xC4,0x79,0x9C,0x5D,0x04,0x33,0x6A,0xE5,
+0x58,0x85,0xBD,0xA6,0x95,0xCF,0x57,0xAA,0x34,0x05,0xFA,0xF8,0x93,0x56,0x78,0x2F,
+0x2F,0x21,0x52,0xA7,0xCE,0x22,0xFA,0xDC,0x0B,0x65,0x19,0x7D,0xC8,0xDA,0x4D,0x1F,
+0xF3,0x42,0xCB,0xED,0xE2,0x81,0xED,0xBB,0xF6,0x2D,0x2D,0x62,0x18,0xB6,0x4A,0x2A,
+0x29,0x97,0xA1,0x1E,0x2B,0xA5,0x91,0xCC,0x8C,0x1B,0x89,0x85,0xA8,0x39,0xC8,0x20,
+0xC9,0x1C,0xA4,0x2C,0xE1,0xD5,0x13,0x39,0xB2,0xBE,0x37,0x16,0x72,0xDE,0x31,0x48,
+0x3A,0x43,0x1A,0x7F,0xF2,0xC7,0x36,0x0A,0xF2,0x63,0x90,0x46,0x3D,0xAA,0x87,0x9D,
+0x84,0xE6,0x24,0xEC,0x6B,0x44,0x0A,0xA0,0xDF,0xEF,0x30,0xDD,0x1A,0x40,0x17,0x5D,
+0xCE,0x4D,0xC9,0xE7,0xDF,0x13,0xCE,0xC9,0xF8,0xD3,0x1F,0xC4,0x89,0x5A,0x63,0x19,
+0x8A,0xF0,0xB6,0x32,0xE3,0xF6,0x02,0x1F,0x38,0xF4,0xF5,0x54,0x71,0xE1,0xFE,0xEE,
+0x70,0xE8,0xF7,0x74,0xE6,0xB9,0x26,0xE9,0x7A,0x26,0x6F,0x0E,0x17,0x8B,0x40,0x28,
+0xD1,0x83,0x44,0x9D,0x77,0x24,0x09,0x6A,0xFC,0x9D,0xA2,0xE0,0x08,0x31,0xAF,0x41,
+0x51,0xC2,0x42,0xB3,0xF6,0xFF,0xFD,0x58,0xE3,0x45,0xB3,0x44,0xE0,0x0D,0xD7,0xDD,
+0x60,0xD7,0x76,0xA2,0xFF,0x96,0x01,0xD5,0x58,0x91,0xA0,0x25,0x74,0x57,0x0A,0xB1,
+0x9E,0x75,0x60,0x98,0xCC,0x01,0xEB,0xFA,0x06,0x51,0x4B,0xC7,0xFF,0xB7,0x38,0xB4,
+0xFB,0xE2,0xAA,0x8A,0x9F,0xF2,0x55,0xA5,0x15,0x78,0x55,0xCF,0x19,0x7F,0xD8,0xFB,
+0x02,0x11,0xD1,0x7B,0xAB,0x09,0x8A,0x5A,0x78,0x29,0x52,0x04,0xA7,0x04,0xC2,0x22,
+0x93,0x88,0xC8,0xF1,0x10,0x2C,0x68,0xCA,0xB3,0x7B,0x6A,0x00,0x99,0xDD,0x86,0x72,
+0x92,0x6F,0x56,0x83,0xA1,0x34,0x88,0x55,0x9B,0x7C,0x2A,0xA9,0x9C,0x6B,0x72,0x2D,
+0x86,0xEA,0x80,0x29,0x55,0x82,0xD7,0x50,0x7D,0xA2,0xB2,0x36,0x2A,0x6D,0xCB,0xDE,
+0x49,0x5D,0xA2,0x02,0x65,0x41,0xC3,0xFD,0xCC,0xC6,0x2E,0xD5,0xD4,0x5F,0x6D,0xD0,
+0x69,0x90,0x89,0xB7,0x0B,0x20,0x5E,0xD0,0xD8,0x6B,0xED,0xE5,0xA6,0xCD,0x50,0xF3,
+0xD6,0xD2,0x29,0x56,0x34,0x91,0x6C,0x84,0x4C,0x3C,0x63,0x15,0xD6,0xA9,0x30,0xA7,
+0x88,0xFC,0x12,0xF7,0x37,0xC5,0x92,0x06,0xDC,0x25,0x50,0xC1,0xF2,0x7C,0x6F,0xC1,
+0x10,0x22,0xF4,0x68,0x39,0xC0,0x5B,0x5B,0x6E,0x8B,0xAC,0x3E,0x86,0x67,0x69,0x1B,
+0x43,0xF1,0x67,0xA0,0x7C,0x6E,0xE4,0xC1,0xE8,0x30,0x61,0xD0,0x20,0xE6,0x35,0x83,
+0x87,0x0D,0x1E,0x5B,0x2E,0xEA,0xB5,0x3A,0x9F,0x32,0x97,0x8D,0x94,0x16,0xD1,0x07,
+0xE0,0x96,0x70,0x8C,0xB2,0x26,0xAD,0x66,0x84,0xA4,0x3B,0x0D,0xB1,0x0A,0x1C,0xB0,
+0xA1,0x76,0xC6,0x57,0x3A,0x94,0xA5,0xD9,0x03,0xDA,0xAB,0xF5,0x3B,0x23,0xBC,0x64,
+0x12,0x2E,0x50,0xAD,0x4B,0xC1,0xC5,0xBC,0x90,0x09,0xF8,0x3D,0x9E,0x9D,0x2F,0x5A,
+0xBC,0xB4,0xEF,0xE8,0x97,0xEC,0x46,0x8C,0xA3,0x98,0x14,0x14,0xDB,0x62,0x67,0xD2,
+0xEB,0xDD,0x2B,0x5C,0x9B,0xCA,0x9E,0xF7,0x0F,0x2B,0xA4,0x59,0x5F,0xBF,0x5F,0xD5,
+0x98,0xC3,0x93,0x21,0xC5,0x68,0x17,0x77,0x8D,0xDE,0xD4,0x93,0xB5,0x75,0x7A,0x3E,
+0xF4,0x13,0xA6,0x26,0x79,0x21,0xC0,0x37,0xAE,0xAC,0x46,0xAE,0x40,0x05,0xB0,0xBC,
+0x72,0xE4,0x53,0xB1,0x1A,0x11,0x6A,0xC5,0xA9,0x28,0x9B,0x96,0x00,0x4C,0x0C,0x6B,
+0xEE,0x80,0xE2,0x52,0x7E,0x4D,0xF5,0xE7,0x51,0xEB,0x4F,0xBB,0x54,0xFD,0x33,0x59,
+0x7D,0x15,0x5F,0x1D,0x22,0xCC,0x6D,0x41,0x0D,0x24,0x99,0x53,0x7D,0xE3,0x3B,0x4A,
+0x15,0x7F,0x3D,0x66,0x3C,0x8F,0x7F,0xAD,0x7C,0x67,0xEF,0x20,0x7E,0xDC,0xF4,0xEC,
+0x1E,0x34,0x66,0xB6,0xDA,0x5C,0xEA,0x3F,0x69,0x0F,0x71,0x06,0x33,0x5E,0x1F,0x4E,
+0xF1,0x4E,0x6F,0x28,0x6C,0x28,0x3F,0x70,0xD4,0x9A,0xE2,0x49,0xF9,0x3E,0x03,0x4D,
+0x00,0x1D,0x75,0xBE,0xF9,0x8D,0xDB,0xA1,0x77,0x12,0x3D,0xB4,0xD1,0xE9,0x99,0x8F,
+0xBD,0x53,0x71,0x9A,0xC9,0x4E,0xCF,0x0C,0x98,0xB6,0x4A,0xB5,0x73,0x17,0xA3,0x99,
+0x73,0x03,0xCD,0xC3,0x88,0xD8,0xBB,0xC4,0xF9,0x16,0x42,0xD2,0x57,0xC2,0xFC,0xFF,
+0x18,0x82,0x95,0x0F,0xFA,0xD9,0x25,0x23,0x23,0x62,0x59,0xD4,0xF6,0x03,0x09,0x4F,
+0x32,0xE3,0x7B,0x18,0x89,0xAF,0x54,0x60,0x0E,0xEE,0xF9,0x4F,0x38,0x1C,0x73,0xC2,
+0x78,0x48,0x96,0x13,0xCD,0x76,0x04,0x5E,0x8E,0x14,0xB4,0x8F,0xB8,0xBE,0x2D,0x4B,
+0x64,0x6D,0x21,0xDE,0x9C,0xA6,0xAB,0x27,0x14,0xBD,0x08,0xD9,0x68,0xD2,0x2A,0x7E,
+0xBA,0x02,0x1C,0x51,0x60,0x0E,0xE7,0x0B,0x65,0xFE,0x7E,0xAA,0xAF,0x79,0x61,0x08,
+0x83,0xB7,0x49,0x27,0x8E,0xC3,0x61,0xB0,0x37,0xCF,0x9A,0xE4,0xBA,0x48,0x70,0x3C,
+0x27,0x81,0x33,0xC0,0x45,0xC4,0x0C,0xE1,0x35,0xC0,0xA7,0xEE,0xBF,0xFE,0x84,0x63,
+0x74,0x52,0xA0,0x08,0x81,0xB1,0x47,0x49,0x81,0x2F,0xDB,0x3F,0x10,0xCB,0xE9,0x00,
+0x0C,0x07,0x43,0xA5,0xF0,0xE4,0x27,0x2C,0xD3,0x1E,0x3F,0x71,0xA9,0xF0,0x5A,0xF1,
+0x36,0x59,0x2C,0x64,0x5E,0xC8,0x3A,0xFB,0xF0,0x6C,0xAD,0x4C,0x8F,0xD3,0x58,0xE0,
+0x08,0xAE,0x98,0x5B,0x91,0x78,0x1A,0x5B,0xCF,0x14,0x0C,0x27,0x52,0xCC,0xA0,0xE1,
+0x12,0x3D,0xDC,0x2F,0x88,0x57,0x3D,0x67,0x0B,0x7D,0x5B,0x93,0xF9,0x86,0xAB,0x0C,
+0x96,0xC6,0x8D,0x7D,0x5A,0x7F,0x77,0x0A,0xD6,0x8D,0x9D,0xAD,0xA8,0x81,0x60,0x61,
+0xE2,0x89,0x58,0xCB,0x0A,0xD8,0x37,0xD7,0xF3,0xBE,0x8F,0xBE,0xF7,0x72,0x33,0xDF,
+0x79,0xBC,0x84,0xE3,0xAC,0xEA,0x39,0x29,0xCC,0xDE,0x6C,0x3B,0x37,0x99,0xD1,0x81,
+0x45,0x54,0x18,0x9B,0x08,0xFB,0x26,0xF1,0x38,0xEC,0xB7,0xBA,0x76,0x19,0xFF,0x87,
+0xA9,0xC5,0x2B,0xB2,0x18,0xBD,0xFD,0x40,0xC7,0xAB,0xBE,0xAF,0x44,0xC2,0x7E,0x73,
+0xC3,0xA3,0xED,0x0C,0x42,0x27,0xBF,0x92,0xE3,0x5D,0xF1,0xAA,0x5C,0x38,0x38,0x32,
+0x37,0xAD,0x3E,0x94,0x83,0x1D,0xD0,0xCC,0x90,0x11,0xBA,0xD3,0x56,0xB3,0xC6,0x6F,
+0x4C,0x13,0xE7,0x8E,0x48,0x1A,0xBD,0x9D,0x4F,0xEE,0x41,0xE7,0xA5,0x4A,0x37,0x14,
+0x1F,0xC0,0x74,0x46,0x69,0xE8,0x9D,0x25,0xC4,0x61,0xDE,0xB3,0x63,0x28,0xEE,0xB3,
+0xFF,0x4B,0x71,0x74,0x8B,0x03,0xC3,0xE5,0x2E,0x4E,0x49,0x80,0xC1,0xD6,0xD4,0xA5,
+0x25,0x9E,0x1B,0x87,0x7A,0xFA,0xB8,0x16,0x12,0xE4,0xCA,0x19,0x5E,0xCE,0x65,0x45,
+0x17,0x60,0x15,0x21,0x99,0x66,0x09,0x72,0x06,0x49,0x09,0x29,0xE9,0x01,0x4E,0x67,
+0x95,0x2D,0xB7,0xCA,0x4C,0x22,0x76,0xCF,0xAD,0x7E,0x64,0x5C,0x3C,0xDB,0xBD,0x0D,
+0x23,0x28,0xE8,0x3E,0xE5,0x62,0x5E,0xC8,0x4D,0xE1,0x7C,0xED,0xDB,0xDA,0xCF,0x93,
+0x0F,0xFF,0xF5,0x90,0xE4,0x15,0xB1,0x6C,0x02,0x07,0xB4,0x0D,0x3A,0x52,0x86,0xF4,
+0x6D,0x39,0x52,0x49,0x39,0x4F,0xDD,0xF8,0x7A,0x3E,0x2D,0xE0,0x58,0x47,0x5E,0xBC,
+0xF8,0x1A,0x1C,0xBF,0x04,0xDD,0xFE,0x8A,0xA7,0xCE,0xEB,0xDE,0xBA,0xF0,0xD8,0x7D,
+0x3F,0x0D,0x5F,0xF3,0x8A,0x74,0x2C,0x41,0x3B,0x26,0xD7,0xA6,0x06,0x7D,0x9F,0xD3,
+0x43,0xE2,0xEB,0x22,0xA3,0x98,0x1F,0xD0,0x0F,0x33,0xE6,0xB7,0x2F,0x63,0x97,0xC0,
+0x24,0x79,0x85,0xF5,0x0F,0x97,0x13,0x21,0x7C,0x7F,0xAD,0xCE,0x4C,0xBF,0xDD,0x59,
+0x1C,0x2B,0x4E,0xF1,0x9A,0x32,0xF7,0xF0,0x43,0x1F,0x4E,0x4B,0x81,0x9F,0x68,0x72,
+0xCD,0xB5,0x7F,0xD2,0x0B,0xAF,0xD8,0x73,0x23,0x7A,0x1B,0x3A,0x82,0xA0,0xA7,0xD4,
+0xE0,0x85,0xFC,0x0E,0xC7,0xC4,0x80,0xF2,0x69,0x17,0x33,0xE8,0xDD,0x53,0xF4,0x6A,
+0x7B,0xB0,0x20,0x26,0x11,0xD4,0x01,0xCD,0x6D,0x59,0x8E,0xCC,0xF3,0x0D,0x55,0x51,
+0x13,0xDA,0x42,0x5D,0xB1,0xFD,0xD5,0x47,0x7B,0xFB,0x70,0xF6,0xFE,0xC6,0x02,0x24,
+0x2E,0xD5,0x40,0x57,0x4D,0x55,0x99,0x6B,0x47,0x51,0xF3,0x6F,0xE8,0xC8,0xDC,0xB6,
+0xFE,0xAC,0xEF,0x06,0x2E,0x65,0x33,0x99,0x28,0x0F,0xC9,0xAE,0xF6,0xBB,0xA1,0x0E,
+0x71,0x1C,0xE5,0x84,0xC9,0xC1,0x49,0xAF,0x54,0x78,0xED,0x67,0x23,0x61,0x52,0x64,
+0x1E,0x27,0xEA,0x34,0xB4,0xB2,0xF1,0xB1,0x92,0x1E,0x87,0xD9,0x31,0x10,0xEA,0x78,
+0x92,0x7C,0xDA,0x01,0x31,0x51,0xCE,0xD1,0x3F,0x68,0x6A,0x82,0x95,0x67,0xEB,0x97,
+0x76,0x4D,0x88,0x4F,0x05,0xAA,0x11,0x2E,0xFA,0xC4,0x60,0x20,0xFA,0xB9,0x64,0xAA,
+0xA1,0x65,0x4A,0xD5,0xF8,0x75,0xB2,0xA6,0x1E,0x15,0xC5,0xB5,0xA9,0x48,0xF2,0xB0,
+0x94,0xCA,0x29,0xB8,0x6C,0xA7,0xB9,0xD3,0xBA,0x19,0xC7,0x70,0xCB,0x5D,0x2A,0xF8,
+0x16,0x87,0x8B,0x53,0x4A,0x39,0xAC,0xBB,0x2F,0x8B,0x14,0x96,0x80,0x56,0xFA,0xA3,
+0x4B,0x42,0x8A,0x45,0x98,0x11,0xE6,0xD6,0xE0,0x97,0x91,0xB6,0x36,0x50,0x43,0x50,
+0x54,0x8C,0x07,0x3F,0x03,0xB1,0xCB,0x5A,0x91,0xD4,0xE7,0xC5,0x57,0x7A,0x54,0xBE,
+0x5F,0xC7,0x5C,0xEF,0xF9,0x02,0x5D,0x02,0x0A,0xB8,0x06,0x85,0xE7,0xF5,0xD6,0xB4,
+0x8A,0xE3,0x3A,0xB0,0x9E,0x0A,0x3C,0xA2,0x7E,0x70,0x90,0xC4,0xB7,0x3B,0x8F,0x08,
+0x31,0x1B,0xCD,0x2D,0xE6,0x36,0xA0,0x4A,0x22,0xBF,0x46,0x2C,0xB6,0xF2,0x1D,0xD9,
+0x00,0x0E,0xF9,0x3C,0xA8,0xD2,0xF2,0x7B,0xA4,0x04,0x8B,0xC2,0x03,0xCB,0x6B,0x8C,
+0xF6,0x0C,0x8E,0x61,0xC3,0xFC,0x4B,0xA0,0xC1,0xEA,0x3E,0x81,0xFC,0x30,0x5F,0x53,
+0x9A,0xDC,0xBB,0x66,0x95,0x40,0xD1,0x09,0x6E,0x93,0xEE,0xD0,0xD9,0x2C,0x92,0xE4,
+0xB8,0x1D,0x34,0x16,0x3D,0x77,0x16,0xAA,0xE2,0x98,0xAC,0xBC,0xB3,0x44,0xE9,0x86,
+0x9B,0x3B,0x25,0x14,0x00,0xE5,0x35,0xD8,0xFF,0x4F,0x80,0x12,0xED,0x7E,0x28,0xE9,
+0xB6,0x0B,0xA6,0xC8,0xA2,0xEF,0xF0,0x74,0xC9,0x55,0x8C,0x09,0x35,0x6F,0x8C,0xF6,
+0x83,0xA4,0xC5,0xA5,0x73,0x93,0x44,0x9B,0x82,0xFD,0xF9,0xCD,0xE6,0x3C,0x44,0x65,
+0x34,0x46,0x04,0x23,0x8D,0x18,0x19,0x91,0x57,0xB2,0x8D,0x7B,0x48,0xC0,0xBB,0xD7,
+0x2F,0x32,0xDE,0x25,0x72,0xE4,0xAB,0x3F,0x9E,0xEF,0x88,0x75,0x96,0x58,0x24,0x31,
+0x85,0x12,0x36,0x1C,0xA9,0xA5,0x1D,0xDF,0x9B,0x64,0x68,0x47,0x24,0x21,0xFB,0x4C,
+0xE1,0x62,0x62,0x7C,0x59,0x2B,0x89,0x88,0xA9,0x30,0xD9,0x78,0x66,0x9E,0x1A,0xEC,
+0x42,0x05,0x75,0x50,0x41,0x73,0x41,0x10,0x68,0xD2,0x6E,0xFE,0x22,0xA8,0xC0,0xB5,
+0x6B,0x8F,0xA1,0xF0,0xB9,0xE3,0xC6,0x6E,0x60,0x6D,0xDC,0x76,0xC2,0xE9,0x1B,0x03,
+0xAE,0x94,0x46,0x79,0x9C,0x29,0x2D,0x84,0x21,0x75,0x26,0x30,0x45,0x0B,0xEC,0xA2,
+0x5E,0x20,0xC2,0x9D,0xC1,0xDF,0x5A,0x86,0x70,0x8E,0xA2,0x62,0xB9,0xCF,0x17,0xDB,
+0xF7,0xEB,0x10,0x13,0x15,0xEC,0xCA,0x9F,0x5B,0x43,0x82,0xD7,0x69,0xA3,0x10,0xEE,
+0x3D,0x01,0xFB,0x36,0xDF,0x9C,0x48,0x6A,0xD2,0xC3,0x20,0x89,0x77,0xD0,0x6D,0x56,
+0xD5,0x2A,0x9F,0x63,0x71,0xB0,0x55,0xBD,0x00,0x08,0x89,0x07,0x9A,0x5A,0xE1,0x95,
+0x2A,0x6F,0x17,0x2B,0x58,0x5C,0x66,0x2C,0x83,0x38,0xA4,0xDB,0x00,0xF4,0xA4,0x2A,
+0xB5,0xE0,0x9C,0x7F,0xF7,0x07,0x94,0x5F,0x30,0x53,0x05,0x32,0x34,0xA6,0x1E,0x27,
+0xAB,0xC9,0x8F,0x77,0x1F,0xD1,0xC8,0x90,0xA8,0xF5,0x84,0x6E,0xA1,0x35,0x51,0x9A,
+0x4D,0xF4,0x79,0xFC,0xE2,0x0E,0x6B,0x18,0x05,0x83,0x69,0x35,0xA7,0xBC,0x6A,0x63,
+0x04,0xB4,0xAE,0x40,0xDA,0xD3,0x6C,0x9C,0xAF,0x71,0x59,0x56,0x50,0x3A,0xFD,0x96,
+0x91,0x8D,0xEB,0xB1,0xE6,0x5A,0x9E,0x80,0x71,0x24,0x2D,0xE7,0x5D,0xFD,0xB6,0xDE,
+0x6D,0x23,0x59,0x4E,0xE0,0x41,0x44,0xF4,0x97,0xFA,0xB5,0x78,0x00,0xF8,0xB8,0x17,
+0x5E,0x3A,0xC9,0x9A,0xBF,0x94,0x22,0xD0,0xAC,0xD4,0xEB,0xD9,0x82,0xAC,0xBB,0xE9,
+0xD0,0x6D,0x5D,0x6A,0xDF,0xF0,0x76,0xA0,0x0C,0x96,0x54,0x38,0xD6,0x1D,0x84,0xDB,
+0x96,0xDC,0x86,0x7A,0x33,0x1E,0xE1,0x3D,0x43,0x70,0x9C,0xD8,0xDF,0xA9,0xB5,0x20,
+0x06,0xA2,0x01,0x82,0x93,0x37,0x35,0xB7,0xF5,0x90,0xDD,0x03,0x60,0x1B,0x3D,0x28,
+0xAA,0x34,0x1A,0x02,0x5E,0x2B,0x82,0x92,0x9B,0x0B,0xBA,0xD4,0x3C,0xD7,0xA1,0x30,
+0x5C,0x36,0x6D,0x5F,0xBA,0xDB,0x06,0x26,0xE2,0xF7,0x7E,0x2F,0xC7,0x53,0xF3,0x61,
+0xE9,0xD8,0x08,0x1C,0xF5,0x48,0xBB,0xB3,0x16,0xC5,0xA5,0xAE,0x71,0x55,0x4A,0x92,
+0x99,0x2D,0x8A,0xD6,0xD0,0x82,0x50,0x59,0xAE,0xDB,0xD6,0xD3,0xF1,0xF7,0x14,0x1B,
+0x29,0x9E,0x26,0x9B,0xE8,0x5F,0x57,0xDD,0x6A,0xB2,0x81,0x67,0x8A,0xD1,0x18,0xC3,
+0xC5,0x0F,0x15,0xB2,0xA0,0xA0,0xDF,0x98,0xD5,0x28,0x2F,0x22,0xBA,0xFC,0xC4,0x40,
+0xA4,0x22,0x88,0xDC,0xB4,0xDE,0xCF,0x7B,0xDA,0x13,0x40,0x92,0x47,0xF1,0xAD,0xE8,
+0x72,0xED,0xD4,0x34,0xBC,0xC0,0xDC,0x52,0x67,0x86,0xD3,0xDD,0xE1,0x70,0xF1,0x70,
+0xA6,0x2E,0x2C,0x19,0x83,0x71,0xEE,0x06,0xD6,0xE2,0x4F,0x3E,0xC3,0x2C,0x95,0xEF,
+0x7B,0xAA,0x2B,0x21,0x3F,0x38,0x39,0x46,0x23,0x15,0xC9,0xA9,0x31,0x1C,0xF6,0x45,
+0x00,0x14,0xF2,0x3B,0x16,0xD4,0x0A,0xD7,0xF0,0x1B,0x3D,0x31,0xA7,0xB0,0x76,0x5E,
+0xDF,0x9C,0x51,0xC6,0x8C,0x03,0xC8,0xFF,0xEA,0x48,0xCC,0xA7,0x76,0x15,0xE3,0xBA,
+0x4C,0x09,0xEC,0x89,0x90,0x63,0xCB,0x35,0xE3,0x32,0x23,0x39,0x39,0x61,0x55,0x6F,
+0xD2,0x61,0xF9,0xAF,0x7B,0xE1,0x69,0x78,0xB8,0x79,0x28,0xE9,0xAB,0xB2,0xB3,0xFA,
+0xC4,0xE8,0x8B,0xC0,0xFC,0x21,0x47,0x3E,0xFE,0xE5,0x0F,0x97,0x66,0x92,0x06,0xD1,
+0x64,0x64,0xA6,0x5B,0x86,0x3E,0xCA,0xF0,0x10,0x84,0x25,0x80,0x25,0xE4,0x75,0xA0,
+0x7F,0x10,0x7C,0x5D,0x73,0xFF,0x7A,0x51,0x48,0x05,0x4E,0x4C,0xC2,0xE5,0x07,0x3E,
+0x77,0xB0,0x1D,0x3A,0x2C,0x2A,0x1C,0x75,0xF4,0x55,0x80,0x15,0x0A,0x73,0x46,0x4A,
+0xA7,0xC9,0xB2,0x6B,0xFF,0x75,0xB9,0xBC,0xCC,0xB1,0xBE,0xA8,0xB6,0xFE,0x01,0xE4,
+0x43,0xF8,0xE0,0x25,0xEE,0x44,0x8D,0xA9,0x99,0x04,0x87,0xDE,0x0D,0x33,0xEF,0x62,
+0x35,0xBB,0x91,0x56,0xA5,0xEF,0xFB,0x6E,0xA4,0x6B,0x59,0x51,0x21,0x9B,0x13,0x2E,
+0x89,0x12,0x0B,0x00,0xA2,0x83,0xCE,0xBE,0x13,0x4E,0x45,0x9C,0x58,0x4B,0x42,0x81,
+0x90,0x6A,0x75,0xC3,0xD7,0xEE,0x65,0x89,0xA9,0x5F,0x0B,0xEB,0xFD,0xF5,0xD1,0xBF,
+0x02,0x18,0x56,0xFE,0xD5,0xCD,0x74,0xAF,0xC6,0x01,0x31,0x2A,0x2A,0xD9,0x7F,0xA2,
+0xE6,0x29,0x04,0xB0,0x66,0xF6,0x85,0x16,0x25,0x54,0x49,0x87,0x4F,0x8C,0x0E,0xC2,
+0x9A,0xC6,0xB0,0x61,0x0B,0xC3,0xE6,0xB9,0xB6,0x87,0x1A,0x4F,0xE7,0xF9,0xCA,0x89,
+0x3A,0x4A,0x9D,0xFA,0x8A,0x18,0x12,0x8B,0xFC,0xEA,0x32,0x9D,0x8C,0x58,0x23,0x3A,
+0x60,0xDE,0xF1,0x27,0x53,0x7A,0xB5,0x4D,0xB4,0x88,0x27,0x45,0xB5,0xC1,0xCE,0x42,
+0x01,0xF3,0x6C,0x49,0x30,0x4A,0x1F,0xBF,0x93,0xB4,0x08,0x5C,0x94,0xA2,0x65,0x7B,
+0xA8,0x38,0xBE,0xC7,0x7C,0x8D,0x5C,0xA8,0x3D,0x08,0x85,0x1B,0x7C,0x9E,0x1D,0xE7,
+0xE2,0x93,0x53,0xCC,0x36,0x51,0xC5,0xCB,0x19,0xFE,0xCA,0x1E,0xCD,0xD8,0x0D,0x3C,
+0xED,0x62,0x5F,0x60,0xE1,0x36,0xAB,0x50,0x80,0x9D,0x16,0x54,0x81,0x93,0x74,0x4F,
+0xDA,0xC1,0x98,0xC8,0x11,0xB8,0x3F,0x07,0x94,0x30,0xD5,0x64,0xC8,0x6E,0xF9,0x63,
+0x47,0x42,0xB7,0x59,0x32,0x69,0x0E,0x99,0x32,0x33,0xEA,0xAB,0xAD,0x3B,0x88,0x03,
+0xA1,0x7F,0x41,0xD2,0xE5,0x0E,0x60,0x02,0x11,0x41,0x78,0x96,0xEB,0xFB,0x0F,0x2D,
+0xB1,0x40,0xC0,0x04,0xCD,0x95,0xBC,0x37,0x2A,0x6F,0x26,0x37,0xA5,0x46,0x2B,0x29,
+0x20,0xD9,0xD9,0x8E,0x94,0x5B,0x00,0x67,0xF6,0x5A,0xBD,0x1F,0xE3,0x86,0xAC,0x07,
+0x88,0xF5,0x95,0x72,0x9E,0x66,0x02,0x68,0x64,0x4C,0xB3,0xC1,0x49,0x05,0x35,0x3B,
+0xB4,0x1D,0x09,0x0A,0x47,0x04,0xA5,0xAE,0x24,0x91,0x14,0x91,0xCA,0x98,0xA4,0x14,
+0x10,0x2B,0x73,0xED,0xC5,0x8B,0xAF,0x1E,0x4E,0x44,0xCE,0x62,0xBD,0xBC,0x6D,0x68,
+0x24,0x63,0x8E,0xF2,0xC2,0xE7,0x9A,0xCE,0xD7,0x27,0x12,0x28,0xDA,0x1F,0x41,0x7F,
+0xC7,0x03,0xB1,0x77,0xF7,0x6B,0xAA,0x95,0x38,0x83,0x65,0x29,0xAC,0xF2,0x1A,0xD2,
+0x22,0xD5,0x7D,0x4B,0xEC,0x67,0x9C,0x8F,0x4C,0x4B,0xF3,0x68,0xCF,0x2E,0x50,0x4B,
+0x0D,0xE9,0x5A,0x52,0x98,0x7D,0xD8,0x1C,0xA1,0xE0,0xB9,0x63,0xA6,0x79,0xE4,0x8F,
+0xAD,0x65,0x77,0xC9,0x08,0x97,0x18,0x3B,0x9F,0x45,0x07,0xF0,0x0C,0xFA,0x7D,0xB3,
+0x0A,0xB8,0x37,0x99,0xBE,0xE3,0xCD,0x74,0x21,0x1A,0xF4,0xA3,0x3F,0xE8,0x6E,0x96,
+0x8E,0x43,0x66,0xCB,0x58,0x30,0x58,0xE6,0xC7,0xC4,0x6C,0x3C,0x5E,0xC2,0x79,0x78,
+0x9F,0x9B,0x79,0x6F,0x20,0x0C,0xC4,0x0E,0xC1,0x85,0xEC,0x12,0x6C,0x19,0xF8,0x8C,
+0x52,0x20,0xFF,0x81,0xCF,0xB6,0xAD,0x11,0x72,0xEE,0x4D,0xFB,0xEF,0x84,0x69,0xA3,
+0xC8,0xF2,0xBD,0xDB,0x71,0xDC,0x6B,0x77,0x33,0xF6,0xB7,0xBD,0x19,0xCB,0x6C,0x87,
+0x6F,0x2F,0xFD,0x8B,0x4D,0x39,0xA7,0xA1,0x54,0x17,0x3F,0xF4,0x5C,0x34,0x24,0x0F,
+0x68,0x7E,0x90,0x40,0x57,0x42,0x7E,0x1F,0x2F,0xE4,0xC6,0x05,0xA3,0xCF,0x10,0xD0,
+0x76,0x57,0x83,0x48,0xB7,0x8A,0x31,0xF9,0xE5,0x73,0xA3,0x17,0xFC,0x3C,0x43,0x6E,
+0x9D,0x97,0xDD,0xAA,0x85,0x6A,0x34,0x72,0xF3,0xD1,0x5D,0x2D,0xD3,0xAB,0x70,0x84,
+0x13,0xC0,0x49,0x5A,0xE2,0x62,0x55,0xD2,0x27,0x5B,0x74,0x8D,0xFB,0x7C,0xEA,0x46,
+0x8F,0xA4,0xF8,0xB9,0x44,0x50,0x5B,0x2C,0x05,0xEC,0xBB,0xA6,0x56,0xBF,0xDA,0x52,
+0x17,0x7A,0x1E,0x26,0xFD,0x56,0xA8,0x9A,0xD3,0x69,0xAF,0x0C,0x53,0x09,0x2E,0x0D,
+0x57,0x7D,0x36,0x8F,0x09,0xE0,0xF7,0x9F,0x4D,0x8E,0xAE,0x7E,0xCC,0x11,0x9F,0xED,
+0x7A,0x6A,0x9D,0xA0,0x09,0x42,0xCD,0x15,0x35,0x96,0x56,0xEC,0xE5,0x15,0x9D,0x43,
+0xE0,0x2F,0x33,0x1F,0x8A,0x72,0xE0,0xC9,0xD9,0xBF,0xC7,0xDF,0xAD,0x50,0x15,0xBC,
+0x0D,0xA3,0xB9,0xDC,0x58,0xB9,0x49,0x47,0xF5,0x11,0x10,0xC2,0xF8,0x7B,0x71,0x54,
+0x13,0xDE,0xCA,0x64,0xD1,0x39,0xEB,0x19,0x85,0xDB,0xE5,0x40,0xDD,0x91,0x9A,0x9E,
+0x2A,0x33,0x53,0x1C,0x25,0x0B,0x30,0x98,0xBA,0x14,0xE6,0xE6,0x8E,0xCE,0x24,0x6D,
+0xDD,0xA4,0xD5,0xE9,0x8F,0xF9,0x00,0xFB,0x67,0x2C,0x62,0xE1,0x32,0x8E,0xF3,0x24,
+0xDB,0x9F,0x5C,0x10,0x22,0x8F,0xED,0xA0,0xB8,0xD1,0xEA,0x42,0xB9,0xB3,0x05,0xC2,
+0x4E,0xD0,0xCF,0xAD,0xBA,0x29,0x6C,0xFC,0x6E,0x39,0x25,0x1E,0xB1,0x9A,0x16,0xDC,
+0x1C,0xD4,0xF7,0x66,0x23,0x4A,0xB0,0xB6,0x42,0x97,0xF2,0x03,0xB2,0x18,0xE8,0x88,
+0x5E,0x35,0x48,0xC6,0x11,0x1E,0x01,0x89,0xCC,0x67,0xA5,0x97,0xD2,0x68,0xBC,0xEC,
+0xEC,0xEA,0x31,0xBB,0x14,0x95,0xE1,0xBB,0x8D,0xBC,0x45,0x21,0xEB,0x48,0x54,0x46,
+0x32,0x75,0xA9,0x5D,0xDD,0xC8,0xE4,0xB5,0x71,0x43,0xEB,0x93,0xED,0x3C,0x8E,0x5D,
+0xC3,0xD9,0xA6,0x51,0xFA,0xF4,0xCB,0xAC,0xB6,0x0F,0xFC,0xD0,0x53,0x5A,0x48,0x37,
+0x3F,0x22,0x62,0x28,0xAB,0x0F,0x4F,0xFE,0x40,0x52,0xFE,0xA7,0xB7,0xEE,0xCC,0xC7,
+0xB8,0xD5,0x80,0x89,0xEA,0x17,0xB5,0xB8,0x8A,0x77,0x14,0x4C,0x3E,0xF5,0x2B,0x02,
+0x58,0x0E,0xC1,0x3F,0xE2,0xA8,0x07,0x30,0x1A,0x8F,0x6A,0xCB,0x9E,0x7F,0xFF,0x2B,
+0xA3,0x5C,0x45,0x6E,0xE4,0xE9,0x87,0x1E,0x29,0x5B,0x73,0x5B,0xA8,0xA6,0x31,0xF3,
+0x86,0x91,0x59,0xD9,0x4B,0x90,0x57,0x4F,0x95,0x0D,0xDA,0xC1,0xAF,0x76,0x04,0x9F,
+0x79,0xA5,0xA2,0x06,0x2E,0x7E,0xE2,0x0C,0xBB,0x66,0x01,0x78,0xF2,0x74,0x73,0x69,
+0xCC,0xD3,0x9B,0x53,0xA8,0xC5,0x2F,0xE2,0x5F,0x28,0x30,0x2A,0xE3,0x61,0x47,0x58,
+0x9C,0x8A,0x55,0xEF,0x08,0x87,0x90,0x03,0xFA,0xBD,0xE1,0xCE,0x6B,0xDE,0x4F,0xEA,
+0x4F,0x42,0x06,0x7C,0x43,0x2F,0xE5,0xC7,0x86,0x6C,0x0E,0x7A,0x06,0x71,0x2C,0xDF,
+0x97,0xE6,0x17,0x63,0x75,0x35,0xE9,0xDC,0x8C,0xCE,0xA2,0xBF,0xDA,0x41,0xAF,0xF2,
+0xC9,0x27,0x2D,0x0C,0x68,0xE2,0xC5,0x72,0x1E,0xF3,0xD0,0x9C,0xD8,0x67,0xBE,0xD1,
+0xFA,0x34,0x3F,0x29,0xA5,0xF1,0x7D,0x58,0x50,0x84,0xC1,0x26,0x9D,0xFD,0x01,0x7F,
+0xB1,0xE4,0x34,0x72,0x30,0x63,0xAE,0xBE,0xCE,0xA2,0xA9,0x33,0x76,0xB0,0xA3,0xFD,
+0xD3,0x3C,0x21,0x3A,0x94,0x6F,0xAC,0x7B,0x1C,0x36,0xDC,0x38,0x1B,0x1F,0xC0,0xC8,
+0x80,0xAA,0xD0,0x20,0x70,0xBE,0x09,0xEE,0xC3,0xCB,0x54,0x9B,0x81,0x37,0x02,0x1F,
+0xCD,0x41,0x52,0x82,0xF4,0x0A,0xF9,0x0A,0x63,0x50,0xD8,0xB6,0x7E,0x99,0xB0,0xE3,
+0x9D,0x18,0x9C,0x3E,0x80,0xC2,0x6F,0x4B,0x6B,0x37,0x78,0xD7,0x21,0xBD,0xD6,0x36,
+0x2D,0x9A,0x13,0x34,0x1B,0xAE,0x8E,0x0B,0xD8,0xCD,0x20,0x41,0xF1,0xF6,0x8D,0x3D,
+0x4C,0x8D,0x39,0xDA,0x6A,0xED,0xF8,0x78,0x78,0x56,0xAC,0x6C,0x8B,0x38,0x00,0x22,
+0x92,0x12,0xA1,0x3C,0xCD,0x2B,0x9A,0xA1,0x3C,0x83,0x11,0x13,0x99,0xAF,0xCA,0x47,
+0x84,0xCC,0xAF,0xAE,0xF1,0x81,0x19,0x38,0x94,0x7F,0x3D,0x5F,0x93,0xA0,0xC8,0x7A,
+0x89,0x9B,0x64,0xDB,0xE7,0x23,0xE7,0x02,0xBD,0xDF,0xB7,0x8B,0xE8,0xCA,0xAA,0x12,
+0xA7,0x3A,0x3A,0xE0,0xE3,0x6D,0x5A,0x26,0xAD,0x09,0x88,0x0A,0xC0,0xFF,0x76,0x89,
+0xEF,0x25,0x0E,0x1D,0xB5,0x12,0x03,0x4C,0x38,0xFF,0xAB,0x44,0xCF,0x06,0x50,0xFB,
+0x4B,0x24,0x79,0xF2,0x18,0x64,0xEE,0x17,0xDB,0x7A,0xCB,0x7B,0xFA,0x5D,0x60,0x77,
+0x59,0x9C,0x08,0xEE,0xDE,0x02,0x84,0xA9,0xA8,0x07,0xD5,0xC3,0x4A,0x66,0x6F,0x18,
+0x8C,0x6F,0xD2,0x84,0xA2,0x75,0xA0,0x60,0x0C,0xE0,0xE3,0xB9,0xC8,0xD6,0x65,0x97,
+0x7C,0x51,0x14,0x59,0xB1,0x5C,0xBE,0x68,0x1D,0x44,0x3B,0xA6,0x3D,0x77,0xD5,0x56,
+0xC0,0x16,0x99,0xF7,0x2D,0xB4,0x82,0x10,0xB4,0xCA,0xF0,0x74,0x71,0x60,0x96,0x91,
+0x22,0x90,0x2E,0x36,0xF0,0x44,0x44,0x2E,0x26,0xF7,0x82,0x57,0x87,0x43,0xD8,0x04,
+0x40,0x48,0x3B,0x7E,0x88,0x7D,0xDD,0xC3,0x7C,0x2A,0x16,0x3B,0x5E,0x85,0x7F,0x66,
+0xF8,0x69,0xC9,0x5E,0xA9,0x00,0x72,0xF4,0xC6,0xC5,0x09,0x52,0x1C,0xCF,0xF5,0xA4,
+0xFB,0xA6,0xF6,0xF8,0xC9,0x65,0x27,0x85,0x5B,0x54,0x8A,0x7D,0x3F,0x51,0xC4,0x75,
+0x36,0x13,0xD6,0xD3,0xF6,0x05,0xC4,0x00,0xFE,0xC1,0x5B,0x99,0x3B,0x03,0x0F,0x4D,
+0x55,0x59,0x0A,0x4A,0x85,0x49,0x8F,0x79,0xF1,0x6D,0xAA,0x95,0xEC,0x98,0x61,0x2A,
+0xBB,0x1A,0xBF,0x2F,0xA4,0x34,0x20,0x4E,0x6A,0x45,0x9F,0x49,0xBA,0x31,0xFB,0x96,
+0x19,0x20,0x41,0x39,0x4E,0x1B,0xB7,0x7D,0x81,0xA7,0x5F,0x17,0x88,0xBA,0xFE,0x76,
+0xDF,0xF9,0x23,0x9E,0xC5,0x94,0x28,0x29,0x73,0x86,0xE7,0x37,0x40,0x69,0x6D,0x25,
+0x2C,0x08,0xDA,0xE5,0x1A,0x6B,0xD3,0x1D,0x74,0x4D,0xB6,0x5A,0x5A,0xD7,0xB4,0x5E,
+0xA1,0x01,0xB3,0x19,0xC7,0x9B,0x15,0x23,0x0B,0x2B,0xB2,0xD4,0xF0,0x52,0x62,0x4A,
+0x46,0x73,0xB2,0x87,0x27,0x04,0x0D,0x92,0x4B,0x82,0xB5,0xFC,0x04,0x57,0x3D,0xFC,
+0x93,0x80,0x68,0xED,0x8C,0x33,0x60,0xE7,0x0F,0x57,0x08,0x83,0xEF,0x1A,0x9F,0x7E,
+0x24,0xAB,0xA7,0xCF,0x98,0x9E,0xA3,0xD7,0x93,0xB4,0x6C,0x32,0x49,0xE4,0x91,0x4C,
+0x8D,0xFD,0x1B,0x55,0x79,0xC4,0xE6,0x70,0xB1,0xC4,0xAD,0xBD,0x05,0xF3,0xD2,0x8B,
+0xD2,0xAE,0xE8,0xEB,0x5C,0xF7,0xF4,0x63,0x16,0x94,0x70,0xFD,0xB3,0xBC,0x07,0xFF,
+0x83,0x65,0xEF,0x86,0x81,0x07,0x32,0x5D,0x3E,0x46,0x1D,0xB7,0xE1,0x47,0x56,0x7B,
+0x28,0x6E,0xA5,0x6B,0x45,0x6E,0x65,0xE9,0x11,0x5F,0x21,0x90,0x95,0xD4,0x12,0x61,
+0x26,0xF6,0x51,0xB8,0x69,0x27,0x98,0x64,0x4E,0x8C,0xE8,0x35,0xC2,0xD9,0x67,0xAA,
+0x3E,0xB0,0xAB,0xF9,0x4D,0xD1,0xD7,0x61,0xD4,0xD6,0x3A,0x77,0x7C,0xBF,0xA1,0xC0,
+0x0C,0x31,0x70,0x0D,0xB2,0x96,0xDE,0x74,0x92,0xC6,0x8B,0xAC,0x55,0x2E,0x92,0x2C,
+0x4D,0x1F,0xF0,0x0B,0x46,0xA4,0x05,0xF5,0x83,0x62,0x53,0xB3,0x2D,0xC6,0x0E,0x10,
+0x4D,0x27,0x60,0xA0,0xF7,0xF7,0x64,0x5B,0x54,0x38,0x05,0x5D,0xC5,0x8D,0xFE,0x8B,
+0xFA,0x0C,0xAF,0x82,0xE3,0x5A,0xA7,0x6B,0xC8,0xDB,0x61,0xEC,0x63,0x73,0xF0,0xB9,
+0x2F,0xFF,0x75,0xE8,0x48,0x6D,0xCA,0x1E,0x8C,0x0E,0xDC,0x93,0x88,0x3E,0x52,0x3B,
+0xC8,0x8D,0x74,0x76,0xA8,0xF2,0xD2,0xAF,0xCC,0xA7,0xDB,0xBB,0x7C,0x3B,0x0D,0x8D,
+0x45,0x84,0x1D,0x8A,0x75,0x02,0x14,0x91,0xB3,0xC1,0xDF,0x35,0xD6,0xBE,0xDB,0x99,
+0xB6,0x75,0xE4,0xF1,0xAA,0xFD,0xEF,0xA5,0xB4,0x0A,0x8E,0x58,0xCC,0x00,0x02,0xE2,
+0x70,0xAC,0x86,0x56,0x21,0x72,0x70,0xF1,0x46,0x2B,0x36,0x78,0x04,0xD3,0x91,0xB1,
+0xD2,0x96,0x78,0x40,0xCB,0x5D,0xE7,0xC2,0xAD,0xC9,0xF6,0x26,0x36,0x58,0x94,0x51,
+0x24,0x93,0x37,0x64,0x29,0xCD,0xC2,0x79,0x44,0xEE,0x3A,0xDC,0xA1,0xAF,0x61,0xD7,
+0x65,0xBD,0xB7,0x62,0xDD,0xFF,0x19,0xF8,0x55,0x4A,0xE2,0xC3,0xD9,0x47,0xFD,0xEB,
+0x57,0x3C,0x6C,0x96,0x22,0xB8,0x10,0xED,0x13,0x5A,0x53,0x18,0xF0,0xD6,0xCE,0x07,
+0x4F,0x7A,0x96,0xD7,0x06,0x4E,0x5F,0xE8,0x89,0x00,0x81,0x5A,0x4E,0xB0,0x08,0x6D,
+0x41,0xE2,0x62,0x04,0x2A,0x07,0xA2,0x65,0xD6,0xD3,0x48,0xFF,0x19,0xBD,0x7D,0xA6,
+0xEA,0xE9,0x28,0xE9,0xEE,0x6E,0xF5,0xD1,0xF9,0xCA,0x74,0xD8,0x6D,0x2E,0x39,0xBC,
+0xBB,0x22,0x2F,0x84,0x33,0x9E,0x33,0xEF,0xD1,0x18,0x19,0x92,0x3F,0xD5,0x68,0x38,
+0xE4,0x71,0xDC,0x3A,0x16,0xAD,0x21,0xFC,0x76,0x48,0xC4,0xD2,0x89,0x9A,0xBD,0x4C,
+0xE5,0xE3,0x15,0xEB,0xCD,0x1C,0x67,0xEC,0xCB,0x6C,0x8A,0xD6,0x44,0xBF,0x0A,0x50,
+0x30,0x10,0xCF,0x81,0xB1,0x6B,0x43,0x25,0x6F,0x8B,0xBC,0xAC,0xC6,0x0F,0x00,0xDF,
+0x22,0xA8,0xBE,0x9D,0x77,0x0D,0x29,0x9B,0x1C,0xF6,0xA2,0x14,0x76,0x34,0x0F,0xB0,
+0x86,0xA9,0xC9,0x72,0xDA,0x7B,0xC4,0xC0,0xFF,0x73,0xC2,0x2B,0x43,0x6F,0x3F,0x3C,
+0xCE,0xB6,0xFD,0x8F,0x8C,0x04,0x9D,0xAA,0x6A,0x85,0xE1,0x65,0x4C,0x96,0x19,0x4E,
+0xE0,0x17,0xA3,0xB4,0x88,0x4A,0x20,0x8E,0x7A,0x53,0xDE,0xE4,0x64,0xA3,0xC5,0xD5,
+0xED,0x40,0x68,0xC1,0x9E,0xE8,0xDE,0xB4,0x53,0xF3,0x54,0x30,0x1F,0xC9,0xA7,0xBD,
+0xFB,0x9E,0x66,0x53,0xA2,0x42,0x5D,0x2D,0xFB,0x0F,0x78,0x7C,0x15,0xC6,0xA5,0x80,
+0x3C,0xD5,0xCD,0x25,0xEA,0x20,0x48,0xF5,0x36,0xE1,0xC3,0xFA,0x60,0xF1,0x0E,0xED,
+0x5F,0x9F,0x11,0xBC,0x99,0x6C,0x03,0x8C,0x39,0x4D,0x32,0xF6,0xB7,0x6A,0x60,0x8A,
+0x92,0x2A,0x31,0x97,0xA6,0x0C,0xE0,0x09,0x9C,0xD8,0xE3,0x12,0xB3,0x38,0xAB,0xB2,
+0x91,0xE5,0x0E,0x31,0xC6,0x69,0xB5,0x78,0x01,0x49,0x60,0x3D,0x90,0xA6,0x9A,0x63,
+0x29,0xC4,0xFC,0x11,0xE7,0x14,0x1A,0x4F,0xBB,0xA6,0x7F,0x54,0xD2,0xEC,0x10,0xA1,
+0x4B,0x1C,0xE9,0x59,0x9F,0x2D,0x83,0xA2,0xE1,0x7B,0xEB,0x38,0x0B,0x2A,0xB7,0xC3,
+0xA9,0x9A,0x5E,0x98,0x42,0xDD,0x45,0x9C,0x73,0x46,0x99,0x1B,0xFD,0x09,0xF9,0x56,
+0x15,0xDD,0xD3,0x36,0xDE,0x35,0x79,0xE4,0xDA,0xC8,0x52,0xC9,0xB1,0x1E,0xBA,0x91,
+0xA0,0xAB,0xEA,0x63,0x07,0x8B,0x02,0xFE,0xD9,0x7F,0xB9,0xF3,0x54,0x0E,0xD1,0x16,
+0xFE,0x6A,0xD0,0x0C,0x1A,0x5C,0x2E,0x50,0x4B,0x42,0xCB,0xD0,0x56,0x28,0xC0,0x35,
+0x26,0xCE,0xC1,0x13,0x2C,0x46,0x22,0x4B,0x41,0xE0,0x67,0x15,0x8A,0x18,0x43,0x18,
+0xF5,0x06,0x92,0x80,0x67,0xEE,0x57,0x8F,0x3D,0x31,0x88,0xA1,0xE7,0xB7,0x20,0x2D,
+0xA5,0x5F,0x5C,0x3C,0xC7,0xAC,0xE8,0x6E,0x98,0xA4,0x59,0x45,0x6F,0x08,0x28,0x9F,
+0x10,0x29,0x65,0x69,0x41,0x17,0x25,0x80,0x7C,0xEA,0x68,0x17,0x7E,0x1D,0x1C,0xAE,
+0xEF,0x1D,0x9E,0xB6,0x24,0xF9,0x90,0xC3,0x52,0x81,0xB3,0xAE,0x23,0x1F,0x6B,0x58,
+0xCA,0xD0,0x82,0x01,0x8B,0x80,0x40,0x92,0xEE,0xD7,0x1A,0x34,0x24,0xCF,0x5E,0x34,
+0x25,0x01,0xFE,0xB5,0x05,0x84,0x3F,0xF4,0xBF,0xDA,0xC5,0x03,0x07,0x51,0x6F,0xE5,
+0x44,0x16,0xD4,0x5B,0x74,0xC7,0x49,0x87,0x1F,0x41,0x49,0x2E,0x7D,0x9F,0xE2,0xFA,
+0xF4,0x94,0x5B,0x51,0xEF,0xAB,0xA8,0xC7,0xAC,0xBB,0x11,0xB8,0xAD,0xD4,0xB9,0xF1,
+0xA4,0xCD,0x95,0xED,0x9B,0x63,0x3E,0x86,0xA4,0xDC,0xB1,0xD9,0xF2,0xF0,0xDF,0x24,
+0xE9,0x26,0x17,0x4F,0x1F,0xD7,0xCE,0x62,0x04,0x47,0x3D,0xF4,0x0D,0x5E,0x6D,0xD8,
+0xBA,0xB0,0xE6,0x55,0xFB,0x06,0x6B,0xF7,0xDB,0xBA,0xB5,0x57,0x97,0x76,0xAF,0x0F,
+0xD8,0x68,0xF3,0x1D,0x5F,0x0A,0x69,0x32,0x09,0x2E,0xC0,0x5C,0xFA,0xD9,0xCC,0x3A,
+0x93,0xB8,0xF8,0x46,0xCA,0x98,0xBA,0xD4,0x97,0x08,0xA8,0x49,0x11,0x94,0x6E,0xB8,
+0x27,0x5C,0x08,0xC2,0xD5,0x40,0xAB,0x70,0xA9,0xB5,0x4C,0x71,0x3D,0xF3,0x79,0x1B,
+0xB2,0x13,0x9B,0x7F,0x4D,0xE6,0x2A,0x2C,0x7F,0x5D,0x83,0x2D,0x35,0xDA,0x6A,0x05,
+0xB4,0x28,0x12,0x86,0xE0,0x90,0xC7,0x77,0xA0,0xA0,0x0B,0x8E,0xBE,0xE7,0x9C,0xE3,
+0x43,0xBF,0x94,0x73,0x4A,0x62,0xF7,0x14,0x7D,0x98,0x8F,0x89,0x02,0xA7,0x4B,0xAA,
+0x7A,0x52,0x0D,0x0B,0xBE,0x50,0x2C,0x95,0x42,0x57,0x8C,0x2F,0x51,0xF8,0xF5,0x59,
+0x64,0x2F,0x7E,0xB3,0x37,0xD0,0x8E,0xCB,0x32,0x9D,0x79,0xAD,0x74,0x12,0x1E,0x93,
+0x89,0xA3,0xF4,0x70,0xE5,0x1B,0x27,0x45,0x1E,0x33,0xAE,0xB0,0x21,0x39,0x7A,0x7B,
+0x13,0xE6,0x5A,0xCF,0x66,0x2B,0x0A,0x99,0xF2,0x1A,0x3F,0x83,0x69,0x7C,0xF2,0x84,
+0x31,0x82,0x06,0x50,0x8D,0xC1,0xC0,0xBC,0xDD,0x03,0x03,0xA4,0x12,0x16,0x90,0xEC,
+0xD1,0x59,0x47,0xE6,0x85,0x7E,0x72,0x34,0x4D,0xFB,0x7D,0x23,0xB2,0x9C,0x44,0xC5,
+0x56,0xAE,0xA5,0x47,0xC4,0x66,0x88,0x72,0x87,0xDE,0x97,0xC8,0x3B,0x87,0xA3,0x00,
+0xAA,0x55,0x61,0x3E,0x95,0x9D,0x0C,0x20,0x71,0x83,0x95,0xBF,0xDF,0x33,0x27,0xF0,
+0x5B,0xF9,0x6E,0x32,0xB2,0xA1,0x23,0x39,0xB6,0xCF,0x82,0xFC,0x61,0x55,0xE1,0x9A,
+0x85,0x66,0xF6,0xD4,0x7B,0xFC,0x26,0x37,0x4A,0x30,0x2C,0x4E,0x67,0x21,0x3B,0x81,
+0x37,0xB9,0x8F,0xA9,0x7E,0x77,0xC6,0x05,0x0B,0xEB,0xCC,0xF8,0x5E,0x01,0xD3,0x2B,
+0x75,0x58,0x30,0x09,0x4C,0x23,0x77,0x3A,0x85,0x1B,0x9B,0x6C,0x3E,0x71,0x87,0x4F,
+0x48,0xB7,0x3B,0x40,0x1A,0x95,0xAF,0xDB,0xEE,0xDD,0xBB,0x9A,0x6D,0x4E,0x5B,0x4F,
+0x32,0x3A,0xF5,0x5F,0xBA,0x0E,0x23,0xF6,0xAD,0xAC,0xC8,0xEC,0x83,0x59,0x71,0x2E,
+0xE2,0x61,0xBE,0x54,0x09,0xF4,0x7B,0x60,0xC1,0x37,0x88,0x0D,0x89,0xDB,0xFE,0x9E,
+0xBD,0x07,0x9A,0x81,0x01,0x93,0xDB,0x01,0x09,0x43,0xC9,0x9B,0x35,0x82,0x30,0xCE,
+0x42,0xB5,0x34,0x7D,0xA1,0x08,0x57,0x2C,0xBD,0xC7,0x2D,0x6B,0x97,0x69,0xB2,0x83,
+0xD8,0x77,0x1C,0xAA,0x7E,0xF5,0xDF,0x8F,0x6C,0x23,0xB8,0xCE,0x8D,0xFF,0x43,0xD0,
+0xB5,0x14,0xB3,0x9F,0xAC,0x61,0xAA,0x84,0x60,0x87,0x7D,0xCC,0xC5,0x27,0x56,0xB2,
+0x5E,0xB6,0xFE,0x1D,0x32,0x47,0xC2,0x91,0xF2,0x12,0x9B,0x1F,0x9E,0xF7,0x5D,0xF9,
+0x1B,0x09,0x64,0xB3,0x7C,0x30,0xD3,0x2B,0xE1,0xDF,0xB1,0xA7,0xBB,0xE4,0x4F,0xCA,
+0x19,0x18,0x42,0x90,0xEE,0x0D,0xA1,0x08,0x36,0xC2,0x1F,0x8B,0xD4,0x25,0x75,0x94,
+0xC5,0x9B,0x72,0xBD,0xE4,0xAF,0x0D,0xCD,0x2C,0xF4,0x04,0x87,0xCB,0x81,0x64,0x4C,
+0xA8,0xF8,0xDD,0x88,0x98,0x7E,0xE2,0x79,0x84,0xBF,0xC0,0xF2,0x58,0x49,0x37,0x9F,
+0x20,0xF0,0x62,0x3A,0x3D,0xEB,0x33,0x9D,0xC6,0x1F,0x21,0x4D,0xE4,0x10,0xF9,0xCF,
+0x31,0xC4,0x77,0x0B,0xD9,0xA5,0x02,0xCF,0x7D,0x99,0xCF,0x80,0xB1,0x66,0xC0,0x7A,
+0x6C,0xB3,0x75,0xFD,0xF7,0xCE,0xD9,0x76,0x93,0xFC,0x8C,0x35,0x6E,0x52,0x3B,0x85,
+0x6B,0x86,0xA5,0x91,0x4B,0x98,0x70,0xEC,0xEA,0x53,0xDD,0xE5,0xD9,0x9F,0x27,0xA0,
+0x5D,0x48,0x7C,0x49,0x78,0x4C,0x69,0x7C,0xAB,0x55,0xF3,0x65,0x88,0xCD,0xA3,0x5B,
+0xFD,0x9C,0xF6,0x60,0xE8,0xB4,0x17,0xFB,0x14,0x5D,0x7B,0xD7,0x3E,0x16,0xE2,0xBB,
+0x74,0x7B,0xED,0xA5,0x22,0x91,0xFD,0x10,0x0C,0x1C,0x3D,0x2D,0x9F,0xE1,0x00,0x3C,
+0x90,0xFF,0x59,0x55,0xD4,0xCC,0xFF,0x67,0xF7,0x4D,0x6F,0xA9,0xE6,0x1A,0xC4,0xC0,
+0x2E,0x39,0x3F,0x3F,0x13,0x80,0xE8,0x24,0xCB,0x6A,0x76,0x86,0xEA,0xB6,0xCB,0x31,
+0x28,0xE3,0x4B,0x24,0xEF,0x7F,0x46,0x96,0x96,0xA3,0x78,0x83,0x0C,0x29,0x53,0xEF,
+0x11,0x0B,0x6B,0x8E,0xAE,0xA4,0xA6,0x20,0x1D,0xA6,0x4A,0x63,0x71,0xF6,0x2A,0x5D,
+0x71,0x5F,0x1B,0xEA,0x20,0x54,0xF1,0xB4,0x49,0x94,0x75,0xD2,0xD1,0x17,0x95,0x1F,
+0x72,0xA1,0x99,0xBE,0x0C,0xFA,0x26,0xA9,0x2A,0x0D,0x3F,0x0E,0x1A,0x13,0xAD,0x4D,
+0x7A,0xB2,0xB0,0xA0,0xDA,0x12,0xE9,0xF5,0x8C,0x95,0x63,0x8F,0xA7,0x5C,0x3E,0xD8,
+0xF1,0x44,0x8D,0x46,0x05,0xEF,0x61,0x56,0xFA,0x38,0x38,0x62,0x5E,0x67,0xB7,0xDE,
+0x4D,0x93,0xCD,0x0F,0xD8,0xD7,0xE5,0x51,0x08,0x92,0x5B,0x52,0xAB,0xF0,0x31,0x29,
+0x1E,0x2D,0x92,0xFC,0xE7,0x18,0xE6,0xF7,0x3A,0x66,0xDA,0x89,0xD3,0x1D,0xA8,0x10,
+0x3B,0xC6,0x78,0x36,0x97,0xD2,0x13,0x75,0xBA,0xEF,0x84,0x2B,0x6B,0x60,0xDB,0x0E,
+0x6E,0xA2,0x53,0xDE,0xBB,0x7C,0xC4,0x68,0x71,0x3D,0x0A,0x82,0xA8,0xEC,0x51,0xE3,
+0x26,0x2A,0x16,0x21,0x57,0x55,0x55,0x5B,0x41,0xBE,0xD6,0xAF,0x17,0xA9,0xFF,0x79,
+0xEE,0xB9,0xC5,0x72,0xE1,0xA1,0x50,0x04,0xA7,0xF1,0x36,0x67,0xBC,0xDC,0x92,0x4E,
+0x96,0x25,0x2D,0x4E,0xF0,0x05,0x88,0x1B,0x95,0x05,0xB7,0xBC,0xBA,0xF2,0x12,0x0F,
+0xBF,0x16,0xBC,0xA2,0xB6,0x15,0x39,0xC0,0xD2,0xFA,0xA2,0xB5,0x4E,0x73,0xC9,0x3D,
+0x01,0xD0,0xDA,0xC8,0x2C,0x4F,0xEB,0x82,0x24,0xDE,0xA7,0xFA,0x0F,0x35,0x33,0x25,
+0x56,0xA5,0xD7,0x03,0x73,0x9C,0x22,0x27,0x6D,0xF2,0x2A,0x07,0xDC,0xAD,0xC7,0x2B,
+0x22,0xE1,0x44,0x19,0x5C,0x85,0x1E,0x00,0x04,0x36,0x9E,0x50,0x31,0xA6,0x8D,0x80,
+0x70,0xB0,0xBF,0x9D,0x74,0x57,0x73,0x4A,0xF4,0xEB,0xA0,0x96,0x5C,0x6D,0x8A,0xD1,
+0xC6,0x65,0xF0,0xE9,0xD3,0x07,0xAE,0x0A,0xC7,0xCE,0xB3,0x84,0xE2,0x3E,0x79,0x8E,
+0x8A,0x26,0xE7,0x2E,0xF1,0x77,0x6F,0x85,0x9D,0x2F,0x14,0xC1,0x78,0x68,0xC5,0x27,
+0x2C,0x28,0x19,0x1C,0x6D,0x94,0x0B,0x34,0x30,0x3B,0x24,0x02,0x5A,0x43,0x0A,0x90,
+0xC7,0x8A,0x54,0x9E,0x29,0x41,0xB6,0x4B,0x07,0x90,0x51,0x6F,0x30,0xB0,0xD0,0x45,
+0x33,0xD5,0x51,0x28,0x69,0xE8,0xB1,0x63,0x98,0x70,0xE0,0x77,0xAE,0xC2,0xD1,0xA2,
+0x99,0x03,0xD4,0x3C,0x16,0x8E,0xB5,0xED,0x68,0xAD,0xDE,0xB1,0x52,0xCB,0xB8,0x2F,
+0x83,0xDA,0x6A,0x47,0x11,0x45,0xE4,0x80,0x97,0x72,0xEA,0x4A,0x29,0x3A,0x41,0xDC,
+0x4B,0x49,0xB9,0x14,0xE3,0x64,0x5C,0xA0,0x18,0xF9,0xBE,0xD5,0x8E,0xE3,0x23,0x1A,
+0x79,0x4C,0x32,0xF4,0x08,0x86,0x9C,0xFE,0x37,0x13,0x8D,0x42,0x98,0xD9,0xDD,0xB8,
+0x2F,0xD6,0x9B,0x48,0x93,0xAE,0xA9,0x22,0x4A,0x32,0xBA,0xED,0xFD,0x9A,0x68,0x56,
+0xF8,0xB8,0x00,0x2F,0x9C,0x02,0x58,0x2E,0x06,0x41,0xC3,0xA6,0x64,0xD0,0xB4,0x35,
+0xFC,0x73,0x52,0x17,0x39,0x97,0x89,0xCA,0x66,0x7E,0x46,0x45,0x4F,0x65,0x94,0xF8,
+0xDF,0x42,0xCC,0xC6,0xA4,0x06,0x0A,0xE5,0x03,0x1E,0x37,0x10,0xE9,0xAA,0xAB,0xFB,
+0x9D,0xC8,0x86,0x04,0x1E,0xE9,0x15,0x8C,0x7E,0x3F,0x00,0xBF,0xC9,0x8B,0x59,0x43,
+0x44,0x6F,0x40,0x66,0x44,0x34,0x81,0xE0,0x47,0x47,0xED,0x26,0x81,0x53,0x4C,0x21,
+0xB2,0x21,0x63,0xF3,0xD6,0x09,0xF3,0xC3,0xB7,0x9A,0xD3,0xE0,0x40,0xD5,0xFB,0xC3,
+0xFE,0x62,0x74,0x34,0x7F,0x87,0x38,0x11,0x5F,0x06,0xAB,0xDC,0xEE,0x92,0x76,0x7F,
+0x0B,0xD2,0xD5,0xF5,0x6E,0x23,0xE0,0x0E,0x76,0x15,0xA3,0xC2,0x33,0xAC,0xB0,0x8F,
+0x89,0xD8,0x65,0x7A,0xCA,0xC4,0xD6,0x74,0x01,0x69,0x6A,0xE6,0x59,0x5F,0x6A,0x5A,
+0x39,0xD7,0x5E,0x15,0xB9,0xB9,0xC8,0xCC,0x67,0xAF,0xD4,0x8C,0x45,0xE7,0x1B,0x48,
+0x0C,0xE7,0x05,0x99,0x5A,0x3C,0xA8,0xF3,0x11,0x02,0x8F,0x61,0xAA,0xE6,0x6C,0xEC,
+0x03,0xC1,0xFC,0xEB,0xCF,0xCA,0x8B,0xBD,0x6E,0x54,0xE5,0x38,0x57,0xF9,0x58,0xA4,
+0x2B,0x1D,0xC9,0x70,0xDF,0x1C,0xB4,0x3C,0x20,0x50,0xC1,0x85,0x6C,0x58,0x06,0x8A,
+0x50,0x7F,0xA3,0x18,0xF6,0xBC,0x3E,0xE8,0x82,0x46,0xFB,0x7B,0x19,0x0F,0xCD,0x87,
+0x5A,0x7D,0xAC,0x25,0x5E,0x40,0x12,0xA4,0x28,0x7A,0x62,0xF8,0x8B,0xD1,0xC3,0x91,
+0x59,0xD0,0xBE,0xEA,0x49,0xD1,0x61,0x2D,0x8A,0xCF,0x11,0x17,0xB3,0xAB,0x40,0x8E,
+0x3D,0x33,0x22,0x5B,0x47,0x2F,0x53,0x8B,0x45,0xE4,0xA6,0x35,0x83,0x06,0x54,0x4D,
+0x80,0xE6,0x66,0x24,0xE5,0x62,0xD1,0x60,0x9F,0x17,0x73,0x5F,0xF6,0x31,0xFF,0x20,
+0x87,0x4F,0x26,0x0C,0xBA,0x67,0x67,0x94,0x9E,0x65,0x94,0xC1,0x47,0xAE,0x1F,0x38,
+0x83,0x29,0x59,0x82,0x6C,0xE2,0x73,0x3E,0xF7,0x6C,0x19,0x3D,0x79,0x5E,0xC2,0xFE,
+0xD2,0xE2,0x5E,0xEF,0xB5,0x5C,0x08,0x24,0x0E,0x9D,0xEA,0x46,0x4D,0xA1,0x1D,0x05,
+0x6A,0xC3,0xAC,0xCF,0x26,0x8F,0x5B,0xEC,0x6C,0x44,0x2C,0xE1,0x19,0x2E,0x96,0x9A,
+0xAA,0x21,0x47,0x91,0x23,0x04,0xBB,0xDE,0x92,0x7E,0x8E,0xF7,0x2A,0x01,0x7C,0x0D,
+0x66,0x06,0xAE,0x6B,0xD6,0xF3,0x3D,0x49,0xDD,0x7B,0x78,0xD3,0x91,0x91,0x9E,0x28,
+0xBE,0xA2,0xBF,0x74,0x4A,0x1B,0x01,0x31,0x5D,0x55,0x39,0xD5,0x10,0xA3,0x6A,0xF3,
+0x0F,0xB2,0xF9,0xAF,0x79,0x8A,0xED,0x18,0x86,0xD4,0x0B,0x21,0x05,0xE4,0x95,0xFA,
+0xDD,0xE8,0x63,0xED,0xBF,0xEC,0x87,0xA6,0x7C,0x92,0x13,0x60,0x00,0x12,0xB1,0xB5,
+0x14,0x3B,0x3C,0x48,0xCA,0xE1,0x4C,0xF1,0x88,0x0A,0x1D,0xB3,0x8D,0x5B,0x9D,0x48,
+0x28,0x22,0x13,0x6F,0x8E,0x72,0x56,0x85,0xC2,0x01,0xB6,0x5E,0x39,0x32,0x59,0x1F,
+0x45,0xF0,0x3B,0x25,0xDF,0x89,0xD2,0xD7,0xC5,0xCA,0xE7,0x33,0x07,0xC2,0x84,0xD9,
+0x98,0xA0,0x9C,0x65,0x0A,0xC6,0xA6,0x61,0x36,0x99,0xB8,0x8D,0x14,0xF1,0xA1,0xCB,
+0xD6,0x84,0x21,0x61,0xBD,0xE3,0xBA,0xAC,0xFF,0x0B,0xB9,0x5C,0x04,0x40,0x7A,0x8D,
+0xE0,0x63,0x85,0x1B,0xB7,0x53,0x35,0x2E,0x25,0xF8,0x6C,0x36,0xCD,0x37,0x06,0xA9,
+0xFE,0x1E,0xF6,0xA3,0xB8,0x68,0x5A,0x9E,0x54,0x40,0x7E,0x2A,0x73,0x51,0xC0,0xC3,
+0x9E,0x9B,0x15,0x9C,0x88,0x33,0xD6,0xAB,0x23,0x41,0xDA,0xC5,0x28,0x27,0x6D,0x2E,
+0xBD,0x6D,0x80,0xD2,0xAE,0xCA,0xA4,0xA4,0x17,0x5E,0x92,0x38,0x42,0x58,0x3B,0x77,
+0x82,0xBB,0x90,0x53,0x72,0xFF,0x3F,0x8C,0x49,0xFF,0xBC,0x03,0x66,0x16,0x3F,0xCA,
+0x08,0x1B,0xB9,0x87,0x10,0x95,0x57,0xF7,0x82,0xA8,0xB1,0x76,0x5C,0xB4,0x29,0x34,
+0x24,0xE7,0x11,0xCB,0x12,0x9A,0x6A,0xFD,0x8C,0x76,0xA7,0xE4,0xC5,0x1E,0x15,0xB7,
+0x9F,0x09,0xDC,0x4D,0xB9,0xAD,0x07,0x88,0x27,0x3D,0x60,0x92,0x1D,0x7C,0x5D,0xA2,
+0x6E,0xA5,0xD3,0x41,0xD7,0x36,0x60,0x5F,0xFB,0x77,0x03,0x0B,0x64,0x30,0x2E,0xE9,
+0xBF,0x30,0x76,0xA5,0x1C,0x64,0x58,0x5B,0xDB,0xC2,0xCE,0x20,0xE1,0x50,0x11,0x0A,
+0x3C,0xA1,0xEB,0x8A,0x2D,0xFA,0x89,0x78,0xE4,0x0D,0xCD,0x86,0x90,0x35,0x71,0x5F,
+0x23,0x4E,0x51,0xE3,0xA7,0xB0,0x4B,0x3A,0x16,0x2C,0x75,0xA6,0xA7,0x48,0x50,0xF0,
+0xB7,0x93,0x0B,0x8F,0x00,0x76,0x29,0xE3,0x03,0xF4,0x17,0xEE,0x4A,0x71,0x28,0x69,
+0xC5,0xAE,0x99,0xAC,0x4E,0x55,0xBC,0x15,0xB4,0x72,0xF5,0x2F,0x74,0x81,0xF5,0xAF,
+0x0E,0x20,0x30,0x7E,0x0D,0x42,0x7B,0x59,0x39,0x35,0x49,0x81,0x0C,0x69,0x69,0x93,
+0xE5,0x97,0x33,0x44,0x66,0x52,0xFC,0xBC,0x00,0x43,0xFC,0xD4,0x16,0xD7,0xB0,0xE8,
+0x97,0xAA,0xA1,0x67,0x77,0x74,0xDF,0xBE,0x3A,0x82,0xA2,0xBB,0xB8,0x00,0xAD,0xC4,
+0x3B,0x08,0xAB,0xA2,0xF4,0x44,0xF2,0x62,0x2B,0x26,0x7A,0xA4,0xA3,0x1A,0x9B,0xC8,
+0xD4,0xD9,0xD7,0x16,0x97,0xEB,0xC7,0x0F,0x78,0xEE,0xA9,0x37,0x67,0xB2,0xD0,0xBD,
+0x05,0x4C,0x72,0xF2,0x9F,0x54,0x75,0x87,0xB6,0xB7,0xF9,0x8B,0x86,0xF0,0x70,0x02,
+0x34,0x02,0x96,0xA0,0xAB,0x41,0x44,0x96,0x8F,0xC1,0x4C,0xDE,0x68,0x4B,0xF6,0xCF,
+0xEF,0x69,0xB8,0x19,0xDC,0x43,0xB2,0xCB,0x74,0xF5,0xB3,0x01,0x2B,0xA5,0x93,0x7A,
+0x46,0x3F,0x04,0x83,0xE9,0x93,0xDE,0xCC,0x68,0x38,0x96,0xB6,0x7A,0xDC,0x3C,0xAA,
+0x99,0x32,0x55,0xB4,0xD8,0x0D,0x0F,0xEF,0x14,0xE9,0x79,0x02,0x1C,0xD8,0xB2,0xD5,
+0x15,0xA9,0xF5,0x99,0x55,0xC3,0x10,0x95,0x3E,0xFE,0x18,0xEC,0x6F,0x9B,0xC3,0xA3,
+0x4D,0x53,0x46,0x0F,0x0E,0x88,0x1B,0x45,0xB1,0x7C,0xA8,0xE6,0x2F,0xF7,0x58,0x42,
+0xED,0x34,0x4E,0x6E,0x68,0xAC,0xCE,0x1A,0x7F,0x25,0xF8,0x5A,0x6E,0x3F,0x2C,0xD4,
+0x61,0xAF,0xEE,0x43,0xDA,0x02,0x32,0xE5,0xFD,0xCE,0xB5,0xF8,0x8A,0x8B,0xA8,0x24,
+0xE9,0x52,0x31,0xE0,0x18,0x2A,0xE5,0x7F,0x0C,0x58,0xE6,0xE2,0x1F,0x5A,0x4C,0x81,
+0x9C,0xC6,0xE3,0xEB,0x7B,0x85,0xD0,0x12,0x19,0x80,0x84,0xAA,0xDA,0x56,0xE8,0x83,
+0xF4,0xE0,0x7D,0xFE,0xD9,0xC8,0x52,0xF9,0x12,0x50,0xCF,0xF1,0x3C,0xC4,0x7D,0x50,
+0x10,0x5D,0x43,0xC6,0xCE,0xAF,0xF1,0xD5,0xE2,0xB4,0x7B,0x75,0x98,0x1C,0x62,0x41,
+0xDF,0xB5,0x95,0x9A,0xDD,0x86,0xEF,0xDD,0x71,0xFB,0xEE,0xC8,0xC4,0xBA,0xFA,0xC0,
+0x57,0x48,0x4A,0x39,0x2B,0xBB,0x09,0x56,0xF8,0xC0,0xE8,0x31,0x9F,0xCC,0x57,0x2D,
+0xD3,0x70,0x97,0x3E,0xFC,0xFB,0x40,0xEA,0x7E,0x57,0x1F,0xC4,0xFC,0x3E,0xFD,0x1D,
+0xD0,0xBF,0xA8,0x98,0x42,0xA4,0xB3,0xB9,0xE7,0xBA,0x26,0xBC,0x7D,0x0C,0x09,0xC6,
+0x25,0x75,0xD8,0x1A,0xA9,0x4E,0x79,0x9C,0x94,0xC7,0x38,0x04,0x23,0x8C,0x80,0x64,
+0xF2,0xDB,0xF4,0x07,0xCD,0x65,0x91,0xC9,0x1E,0x4B,0xD5,0xC7,0xAD,0x47,0x52,0xCD,
+0x63,0xF2,0x18,0x34,0x45,0x20,0x6E,0x81,0xB0,0x0E,0x4F,0x78,0x71,0x77,0xD1,0xE0,
+0x5F,0xEB,0x37,0x13,0x27,0x4A,0x06,0xFA,0xEC,0x6A,0x6D,0xE7,0x54,0x9D,0x3A,0x2A,
+0x21,0x13,0xA7,0x94,0xF3,0xC0,0x2F,0x5A,0xAD,0xB1,0x8D,0x51,0xDC,0x22,0x32,0x98,
+0xCB,0x36,0x6D,0x7F,0x14,0xDB,0xEA,0xD3,0x4F,0x46,0x0A,0xF0,0x9A,0x3A,0x73,0x62,
+0xC9,0x6B,0x9B,0x08,0x90,0x6F,0x1A,0x37,0x8B,0xBD,0xF6,0x89,0xC8,0xC1,0x22,0xE6,
+0xDE,0x27,0x5C,0x4B,0x56,0x09,0x70,0x89,0x84,0x11,0x07,0x85,0xD1,0xFD,0x05,0xC9,
+0x70,0xD8,0xA0,0xF9,0x8C,0x7D,0x6B,0x8F,0x1C,0x8E,0xD9,0x63,0xDF,0xA0,0xCC,0xCC,
+0x90,0x03,0xE1,0x4F,0x64,0x5D,0xC1,0xB6,0x65,0x51,0x6B,0x1E,0xED,0x2B,0xC9,0x2C,
+0xC7,0xF3,0x6F,0xDB,0x30,0x2D,0xA5,0xD6,0xDA,0xB0,0x29,0xBE,0xD2,0x7F,0xFB,0x9D,
+0x4D,0xD8,0x2E,0x47,0xE9,0xFF,0xD1,0x24,0x71,0x0D,0x2B,0x63,0x92,0xA0,0xEC,0x25,
+0x13,0x33,0xCC,0x87,0x62,0xFA,0xE3,0xC4,0x4B,0xF3,0x3D,0xC1,0x05,0x4A,0xC3,0x16,
+0x33,0xC1,0xED,0x3F,0xB1,0x69,0x2B,0x97,0x92,0x91,0x9A,0x07,0x9A,0xC1,0x4C,0x42,
+0x5E,0xC6,0x26,0x6E,0x0F,0xB0,0x31,0xEC,0x63,0x68,0xE1,0xF4,0x61,0x1E,0xB3,0x76,
+0xD0,0xB9,0x40,0x6A,0x8A,0x66,0x9B,0xF8,0x6A,0x01,0x1D,0x79,0xA7,0xC3,0x43,0x48,
+0xF8,0xF9,0xE9,0x6D,0x8F,0x39,0x6F,0x4E,0x18,0x00,0x83,0x9E,0xBF,0x23,0xDC,0xF9,
+0x87,0xBD,0x3C,0xD0,0xC2,0x9B,0x84,0xCC,0xEB,0xDA,0xE9,0x4B,0xD2,0x88,0xEB,0x8C,
+0x36,0x21,0xDF,0xB4,0x3C,0x95,0x22,0xFE,0xC0,0x15,0xCB,0xFC,0x11,0x9C,0x46,0xBC,
+0xB9,0x03,0xAF,0x75,0x2B,0xD6,0x6E,0x39,0x96,0xA9,0x51,0x55,0x54,0x7D,0x1C,0x1B,
+0xF9,0xA4,0xFF,0xA8,0x64,0x03,0xD8,0x4D,0xC5,0x5A,0xEF,0x0A,0x46,0x58,0x2F,0x08,
+0xB3,0x8C,0x2D,0xC5,0x9F,0x52,0x8A,0xC9,0x0E,0x5D,0x82,0x5B,0x80,0x85,0xDF,0x36,
+0x94,0xA3,0x34,0xF9,0x0C,0x16,0xFE,0xD3,0x05,0x17,0x6F,0xF0,0xD7,0x41,0xB6,0x82,
+0x31,0xFC,0xE7,0x30,0x01,0x63,0xA9,0x18,0x9D,0xE3,0xBC,0xFE,0x2A,0x6D,0xFF,0x0F,
+0x73,0x66,0xBD,0xE2,0x67,0xA5,0x17,0x72,0xDB,0x19,0xFD,0xE6,0x65,0x49,0x09,0x0A,
+0xA8,0x20,0xAD,0x53,0xF6,0x96,0x3E,0x9E,0x5A,0xC2,0x09,0xD4,0x6C,0xB6,0x4E,0x1F,
+0xB7,0x31,0x09,0x8B,0x1E,0x0A,0x46,0xA2,0x74,0x42,0x0F,0x95,0xB7,0x42,0x7C,0x9E,
+0x17,0x8E,0xE8,0xC9,0x77,0xCE,0xF2,0xF5,0x79,0x13,0x38,0x4A,0x28,0xC9,0xF3,0xCA,
+0x5B,0x26,0x14,0xE5,0x78,0xCC,0xF8,0xC8,0xA7,0x1D,0xAA,0x5C,0xAB,0xF5,0x59,0x53,
+0x8F,0x0F,0xB4,0x6F,0x12,0xAE,0x83,0xA0,0xF0,0xD6,0xDF,0x51,0x55,0xE3,0xFB,0x69,
+0x0E,0x1F,0x62,0x50,0x27,0x72,0xAB,0x3B,0x51,0x88,0xE4,0x7F,0xE8,0xE7,0xB5,0x4D,
+0x40,0x8A,0x94,0x73,0xDE,0x54,0xA4,0x49,0x4E,0xBC,0x19,0x37,0xB1,0xB1,0xCA,0x27,
+0x7F,0x69,0x11,0x13,0x85,0x64,0x91,0xC5,0x4F,0xCB,0xF6,0x93,0x5C,0x1C,0xBC,0x7C,
+0xC7,0x1A,0x6C,0x0D,0xBE,0x6B,0x21,0xAA,0xF7,0xBA,0xEA,0x81,0x36,0xDA,0xDA,0xC2,
+0xBD,0xBE,0x8B,0x3B,0x0E,0x61,0xA3,0x25,0x04,0x60,0x80,0x54,0x12,0xA6,0xAD,0x0B,
+0xA2,0xAF,0x2F,0xE3,0xAF,0xD1,0x56,0xE4,0x3A,0xA6,0x5D,0xA4,0x0C,0xB5,0x84,0x03,
+0x70,0x06,0xA1,0x28,0xB8,0x92,0x1A,0x23,0x7D,0x2B,0xF3,0x18,0x30,0x29,0x6C,0x7B,
+0x53,0x94,0x9C,0x5A,0x9B,0xDC,0xEC,0xB6,0xFB,0x9C,0x32,0xFA,0xF6,0xF4,0x9C,0x45,
+0x3F,0xCE,0x41,0xCE,0x5D,0x7B,0x35,0xD4,0x23,0x89,0x7A,0x98,0x6F,0x8C,0xA5,0xA8,
+0x56,0x74,0xAE,0xD1,0x17,0xF1,0x77,0x16,0x02,0x7B,0x5A,0x20,0xC0,0xAD,0xD8,0x9F,
+0x79,0xE9,0x3F,0x52,0x89,0xC0,0x54,0xC7,0xCD,0x44,0xFC,0x23,0x95,0xCD,0xBD,0xEE,
+0x9D,0x4C,0xAA,0x83,0xDB,0x0B,0x50,0xFF,0x78,0x64,0xD7,0xEE,0x76,0xF2,0xDD,0x6B,
+0x91,0x43,0x06,0x72,0x40,0x65,0x87,0x98,0x32,0xB8,0x4E,0x8D,0x3D,0x81,0x91,0x12,
+0x5F,0x9B,0x30,0xAB,0x7E,0x35,0xC3,0x41,0x37,0xF7,0x6A,0x7B,0x35,0xE0,0x31,0x75,
+0xC5,0x27,0x66,0x02,0xAE,0x00,0xC4,0x2D,0xFA,0xEB,0xDD,0x5E,0xE5,0x4F,0x48,0x24,
+0x7C,0x09,0x0D,0xD9,0xAC,0x77,0x99,0xDB,0xCE,0x10,0x02,0xA1,0x50,0x2A,0xA6,0x67,
+0x2E,0xED,0x43,0xE8,0xB9,0x43,0x88,0xEA,0xB8,0x29,0x57,0x14,0x9D,0xAC,0x1D,0x89,
+0xCA,0x48,0xD6,0x39,0x06,0x4B,0x00,0x58,0xE1,0xE7,0xEB,0x44,0x22,0x0C,0x5F,0x68,
+0x7E,0x34,0x07,0xD6,0xA9,0x28,0x6D,0x6D,0x29,0xB4,0x78,0x97,0x57,0x47,0xF7,0xAC,
+0xBB,0x3E,0xA5,0x7A,0x99,0xAB,0xB1,0x40,0x8D,0xA5,0x67,0x4F,0x5B,0x71,0xED,0xB7,
+0x98,0xAC,0x98,0x08,0xBF,0xBA,0xB3,0x63,0x4C,0x9F,0x08,0x11,0x77,0x6C,0x3A,0x19,
+0x22,0xE2,0xEF,0x19,0x25,0x05,0xF6,0xCD,0x5F,0x8D,0x2D,0x22,0xCF,0xA1,0x29,0x33,
+0x37,0x7C,0xC9,0x71,0x68,0xA7,0x1D,0x4F,0x8F,0x86,0x76,0x69,0x1C,0x34,0xBB,0xD5,
+0x3C,0xAE,0x5D,0x04,0xC7,0xC4,0x70,0x7A,0x57,0x93,0x3E,0x0B,0x1E,0x90,0xB7,0x10,
+0x9F,0x71,0xA0,0x8C,0xEF,0x06,0xEA,0xAD,0xC1,0x62,0x24,0x58,0xBB,0x74,0x66,0x85,
+0xB2,0xD1,0x3B,0x00,0x41,0xB4,0x15,0x51,0x2A,0xE0,0x86,0x15,0x4B,0xF0,0xD2,0x61,
+0xD3,0xD9,0x5C,0xA0,0x65,0xD2,0x4A,0x84,0x73,0x2E,0x3A,0x45,0xDD,0x84,0x1A,0x20,
+0x45,0x6A,0xA6,0xF8,0x2E,0x89,0x9A,0x8F,0xF1,0xA1,0x30,0xF5,0x3C,0x1F,0x76,0x60,
+0x68,0xCA,0x3D,0x74,0xE0,0x04,0xE0,0x90,0xE6,0x8B,0xDE,0x94,0x4A,0x6E,0x35,0x13,
+0xE8,0x87,0xFD,0x8E,0xCD,0x99,0x8E,0xF1,0x01,0x2F,0xA4,0xA2,0x7F,0x0D,0x9A,0x7E,
+0xDB,0x6B,0xD4,0x1F,0x88,0x11,0xC6,0x0E,0x44,0x81,0x1B,0x38,0x52,0x8E,0xAA,0xA2,
+0xC6,0x47,0x7A,0xC8,0xA3,0x75,0x93,0xE6,0xC8,0x0B,0xD8,0xD5,0xFB,0x5C,0x61,0x2C,
+0x44,0x37,0xB0,0x3D,0x49,0x9E,0xB6,0x2C,0xB5,0x78,0x60,0xCB,0x59,0xD5,0xE1,0x72,
+0xE2,0x08,0x7F,0x3E,0x16,0x20,0xE5,0xDF,0x58,0xE1,0x18,0xF2,0x82,0x21,0xD3,0xF3,
+0xE5,0xD5,0x47,0xBA,0x56,0xF7,0x59,0x96,0xCF,0x67,0xED,0x05,0xB2,0x8B,0x21,0x90,
+0x46,0x0A,0xBA,0x32,0x6B,0x01,0xD2,0x70,0xF4,0xEE,0x14,0x03,0x5F,0x26,0x57,0xCB,
+0x1A,0xDC,0x52,0xFD,0x42,0x12,0xDA,0x6E,0xBB,0x7D,0xA9,0x96,0xDE,0xBE,0xF1,0x97,
+0x07,0xF0,0xFC,0x2A,0xC0,0xEC,0xD9,0x3A,0xBF,0x45,0x62,0xC4,0x02,0x27,0x92,0xDD,
+0x93,0x7E,0x0C,0x7D,0xB0,0xB8,0xB9,0x5E,0x5E,0xFA,0xC2,0x86,0xB3,0x15,0xC6,0xE2,
+0x25,0x3F,0xD7,0x9D,0x90,0x50,0x80,0xF4,0x81,0x83,0xBF,0x34,0x53,0x10,0x4D,0xD0,
+0x97,0xC3,0x28,0x33,0xE4,0x8A,0x86,0xEF,0x1E,0x1B,0x59,0xEA,0x56,0xD9,0x10,0xDE,
+0xD4,0x04,0x64,0x24,0x82,0x4C,0x38,0x85,0xB2,0x14,0x55,0x1B,0x79,0xFE,0x2C,0xC7,
+0xA3,0xF2,0x39,0x26,0x36,0xC8,0xDC,0x75,0x49,0xD0,0x2C,0xE7,0xFD,0xAF,0xD7,0x95,
+0x48,0x38,0x1C,0xCC,0x2D,0x2F,0x55,0xB0,0xBE,0x32,0x8D,0x60,0x07,0xEE,0xCF,0xD3,
+0xCF,0xA8,0xE4,0xB2,0xA7,0xFB,0xF5,0x99,0x65,0x73,0x3B,0x80,0xB5,0xE6,0x70,0x5B,
+0x6E,0x7C,0xA4,0xDA,0x0F,0x04,0x57,0xA6,0xA3,0x10,0x5B,0x0A,0xD2,0xD1,0x40,0xE1,
+0xF4,0xC0,0xF2,0x73,0xDF,0x31,0x50,0xCA,0x6E,0x0C,0xEC,0x2F,0x02,0x7E,0x39,0xB0,
+0x4D,0xEE,0x99,0xA8,0xDD,0x46,0x0D,0x3C,0x5A,0xF7,0x33,0xD0,0xB7,0x1B,0xD7,0xF3,
+0x1F,0x0A,0xD7,0x99,0xC8,0x72,0x1C,0x0D,0x2C,0xCE,0x66,0x65,0x7A,0x9D,0x6C,0x1D,
+0xFB,0xAF,0x42,0x48,0x77,0x7A,0x94,0xBF,0x75,0x00,0xDA,0x35,0xC5,0x3D,0x2E,0xFC,
+0x4F,0xD3,0x93,0xA7,0xD8,0x19,0xF9,0x8A,0xBD,0x53,0x49,0xE6,0xB0,0x76,0x86,0x38,
+0x8A,0xD9,0x31,0x0B,0xE8,0x9A,0x25,0xA7,0x19,0x42,0x56,0x3E,0xBC,0x40,0x9C,0x23,
+0xA9,0x4B,0x0C,0x79,0xCE,0x8B,0x27,0x84,0xD8,0x78,0x39,0x60,0x90,0x5D,0x4B,0x8D,
+0x13,0x05,0x7B,0x68,0x54,0x34,0x62,0x2A,0xCB,0x6A,0x1C,0x53,0x28,0x90,0x58,0xA7,
+0x06,0x9B,0x5D,0x00,0x19,0x96,0x89,0xA8,0x1B,0x61,0x47,0x18,0xFB,0x05,0xCA,0x41,
+0x0D,0x49,0xC9,0x75,0xB6,0xF5,0xE4,0x9D,0xC3,0x74,0x0F,0x7A,0xF9,0xA1,0xC6,0x84,
+0xAE,0x96,0x34,0xFD,0x9E,0x37,0x7E,0x4A,0x55,0x85,0x15,0x29,0x5C,0x45,0x17,0x11,
+0x83,0x36,0xAF,0x71,0x30,0x85,0x81,0xB6,0xBE,0x07,0xB7,0x64,0xAC,0xC1,0xA3,0xF5,
+0xE2,0x3E,0xC8,0xD1,0x14,0xE3,0xDE,0x63,0xE7,0xC9,0x0B,0x34,0x3A,0xB5,0x6B,0xB4,
+0x74,0x8D,0x32,0x89,0x5F,0xB8,0x0E,0x68,0x65,0x46,0x01,0x84,0xDB,0x2E,0x07,0xF4,
+0x59,0x2D,0xA9,0x05,0x91,0x35,0x74,0x77,0x72,0x6C,0xEF,0xE5,0xAD,0x5F,0x44,0x87,
+0xD9,0x60,0x69,0xFF,0xBC,0xA8,0x1A,0x16,0x95,0xC8,0x95,0xD3,0x98,0x3C,0xEB,0xEA,
+0xEA,0x8C,0x40,0x6E,0xF9,0x20,0x52,0xE9,0xD0,0x66,0x2A,0x49,0xB5,0xBF,0xDB,0x36,
+0xF7,0xA0,0xEE,0xB9,0xD2,0x44,0x07,0x01,0x5C,0xEC,0xE9,0xA4,0x1C,0x6D,0x10,0xB8,
+0x75,0xD0,0x24,0x4C,0x38,0xAF,0x22,0xCB,0x21,0x9F,0x51,0xBA,0xBE,0xE4,0x90,0xE6,
+0xD3,0xEF,0xEB,0x4F,0x67,0x11,0x71,0x38,0xCC,0x06,0x29,0x83,0x65,0x10,0xA2,0x67,
+0xD4,0x32,0xD3,0xCB,0x27,0xC6,0xCD,0x71,0x5B,0x80,0xDC,0x74,0x55,0xBA,0x50,0x04,
+0x77,0xED,0x2E,0x43,0x1A,0x30,0x46,0x97,0x60,0x09,0x25,0x72,0xB8,0x17,0x26,0x5F,
+0x2B,0x3B,0xC6,0x8C,0x33,0x23,0x4E,0x89,0x2F,0x9A,0x98,0xE7,0x39,0x8F,0x80,0x03,
+0x36,0x17,0x68,0x5B,0xB1,0xDD,0x4D,0xDD,0x2B,0xA2,0x53,0xB5,0xE5,0x16,0xE3,0x49,
+0xA2,0x99,0x98,0x0C,0xC1,0x89,0x2D,0xB9,0xCA,0x1D,0xF3,0xF7,0x54,0x24,0xB7,0x76,
+0x14,0xD8,0x43,0xEC,0xE1,0x61,0x14,0x13,0x15,0x64,0x8E,0x45,0xB4,0x21,0x3C,0x44,
+0xA6,0x24,0xBC,0x42,0x95,0xBB,0x12,0x08,0x8A,0xFC,0x68,0x9B,0xB1,0xE8,0x61,0x4A,
+0xE5,0xE3,0xF0,0x55,0xF3,0x7D,0xAC,0x62,0x26,0xF3,0x64,0x6A,0x9E,0xCF,0x5D,0x53,
+0x92,0x15,0xAD,0x57,0x47,0xF9,0x48,0x92,0xDD,0x37,0x1D,0x96,0x1A,0x9E,0xA6,0x01,
+0x79,0xDF,0x88,0xBD,0x5C,0x1E,0xC1,0x57,0x2A,0xD5,0xBC,0x11,0xE0,0xDF,0xBE,0x47,
+0xFE,0x4F,0x70,0xC3,0xD6,0xCA,0x61,0x7E,0xF1,0x94,0x0A,0xF1,0x52,0xD7,0x01,0xCF,
+0x7C,0x3F,0xBA,0x36,0x98,0xCE,0x45,0xC3,0xE5,0xEA,0x1A,0x12,0x75,0x91,0x9D,0xB1,
+0x22,0xD4,0x58,0xF6,0x13,0xCB,0x77,0x23,0xDF,0x14,0x0C,0xB0,0xE2,0x7B,0xB2,0x82,
+0x02,0x26,0x79,0x4E,0xC0,0x58,0xBF,0x70,0x06,0x76,0xAB,0x76,0x7D,0xF0,0x3D,0xD6,
+0x6F,0x21,0xB2,0x1F,0x7E,0x81,0xA5,0x0B,0xF7,0x8F,0xD0,0x85,0x86,0x2F,0xC2,0xE2,
+0xE1,0x5E,0xD4,0x1B,0xFB,0x57,0x0F,0x1F,0xFE,0xE6,0x2C,0x08,0x40,0xF2,0x32,0xDC,
+0xC9,0x1E,0x7D,0x1C,0xFE,0x08,0xFB,0xA9,0x8C,0xE7,0xB2,0xEF,0x58,0x12,0xAD,0x6D,
+0xB6,0x5A,0xA8,0xA1,0xB3,0xAA,0x10,0x2B,0x7F,0x3D,0xD8,0x3A,0x35,0xB9,0x9A,0x18,
+0x07,0xC6,0x4B,0xC5,0x4D,0xA4,0xB6,0x19,0x54,0xF2,0xFA,0x8D,0xF6,0xAD,0x37,0x28,
+0x88,0xE4,0x3B,0x04,0x5A,0xE7,0xFA,0xDE,0x02,0x4E,0x60,0x24,0xB3,0x4C,0x6D,0x8F,
+0xC8,0x43,0x6B,0xD9,0x15,0x32,0x4C,0xAA,0x51,0xBD,0xDE,0x7B,0xA1,0x69,0x5E,0x9C,
+0x82,0x6B,0xB9,0xB4,0xEE,0x63,0x1E,0x2E,0x9A,0xBA,0xB3,0x2A,0x67,0xB4,0xAE,0xA2,
+0xA5,0x44,0xA0,0x88,0x7D,0x27,0x6A,0x34,0x91,0xF0,0x5E,0x81,0x30,0x70,0xC7,0x16,
+0x00,0x1B,0x73,0x41,0x70,0x52,0x3D,0xFF,0x09,0x04,0x8D,0x8F,0xCD,0x5C,0x8E,0x9B,
+0x42,0x81,0x29,0x93,0x16,0x94,0x83,0x95,0x4F,0xFE,0xCC,0x97,0x82,0x78,0x78,0x9E,
+0x99,0xC7,0x39,0x22,0x87,0xA7,0xAA,0x79,0xCE,0x25,0x38,0xA5,0x8B,0x87,0x3F,0x8B,
+0x86,0xD6,0x9D,0xFA,0x6F,0x3B,0xD2,0x45,0xE0,0xA5,0x3E,0xE4,0x50,0x73,0x0D,0x0A,
+0x26,0x69,0x7C,0xB8,0x06,0xFF,0x66,0x12,0xED,0xF4,0x09,0x3B,0xCF,0xF8,0x82,0x5E,
+0x6A,0xC1,0x80,0x94,0x09,0xFD,0x6C,0x2F,0x33,0xFA,0x9B,0x2D,0x4C,0xC4,0x28,0xC7,
+0xBE,0xE8,0x20,0x1E,0x63,0x9F,0x17,0x47,0x64,0x31,0xEE,0x20,0xB2,0xD2,0x8A,0xFD,
+0x3F,0xF8,0xF6,0x21,0x56,0x43,0x3F,0xDC,0xC5,0x6F,0xD5,0x0E,0x0F,0xD6,0xC4,0xD9,
+0x71,0x6D,0x00,0x02,0xAF,0x65,0x30,0xAE,0xDA,0x5B,0x28,0x46,0x56,0x80,0xBB,0xB3,
+0x4E,0x8E,0x85,0x62,0xF4,0x55,0x05,0x22,0xDB,0x2C,0xC7,0xE2,0xBB,0x2D,0xCD,0xE8,
+0xF6,0xFD,0xF8,0x7C,0xCF,0x5A,0xB5,0x4D,0x63,0x5D,0xDB,0xF0,0xD1,0xEB,0xAB,0x56,
+0x8C,0x59,0x1F,0x4A,0x7F,0x50,0x37,0xC2,0x90,0x87,0xB1,0x25,0xF5,0x97,0xDC,0x9F,
+0x93,0x48,0xBB,0x92,0xDE,0xE0,0xC2,0x03,0xAE,0x41,0x6C,0xD5,0xEB,0x84,0xF5,0x97,
+0x41,0xE1,0x35,0x59,0xC9,0xA3,0x8E,0xC4,0xE9,0xCC,0xC2,0x69,0xD7,0x18,0x1D,0xEF,
+0x62,0x73,0x08,0x2B,0xEA,0xED,0x78,0x51,0x6F,0x7B,0x03,0x8B,0x11,0xC5,0xED,0xD1,
+0x0E,0x29,0xD5,0xBF,0x2C,0x4A,0xA1,0x33,0xB7,0x6E,0x4B,0xE9,0x88,0xBD,0xD4,0x3C,
+0x67,0x93,0x3A,0xA0,0x66,0xC0,0xE3,0xF1,0x96,0x9C,0x6B,0x51,0x27,0x9C,0xA9,0x0B,
+0x48,0x0E,0xAB,0x23,0xF8,0xF1,0xC0,0x20,0x59,0xA3,0xCD,0x52,0x72,0xFC,0xCC,0x7A,
+0xAC,0xAB,0x3E,0xF2,0xAA,0x3A,0xC4,0x18,0xEC,0x83,0xE6,0x9F,0x91,0xC3,0xAC,0xFF,
+0xA0,0xA4,0x92,0x03,0x31,0x54,0x13,0x7F,0xA6,0x5F,0x7F,0xFC,0xDA,0xB0,0xE0,0x86,
+0x8D,0xE9,0x55,0x85,0xAA,0x67,0x66,0x7E,0x0B,0x4B,0x04,0x05,0xE7,0x1F,0x93,0x8B,
+0x62,0x9E,0x54,0x21,0xDC,0xCA,0x3D,0x93,0x8E,0xA8,0x3B,0x65,0x6B,0x2F,0xC8,0xBE,
+0xFB,0x42,0x1E,0x42,0xBB,0xDD,0x11,0x30,0x91,0x9C,0xC6,0x2D,0x07,0x1A,0x18,0xB9,
+0x91,0x98,0xED,0x97,0xCC,0xA1,0xD8,0x14,0x76,0x38,0xBC,0x1B,0x88,0x10,0xA8,0x3B,
+0xD1,0x3F,0xBD,0x4A,0x4F,0x8E,0x49,0x89,0x0E,0x04,0x20,0xF3,0xEA,0xB7,0x6E,0xE2,
+0x43,0x31,0x63,0x5C,0xE5,0xB2,0xD0,0x0A,0xF2,0xAC,0x6C,0xDF,0xD7,0xB5,0x61,0xE8,
+0x9F,0xAA,0x4B,0x69,0xA3,0x9C,0x57,0xCA,0x78,0x3D,0x75,0x46,0x19,0x09,0x31,0xB1,
+0xA4,0xF4,0xEA,0x47,0xED,0x98,0x73,0x77,0xAE,0x2D,0xF4,0x79,0x82,0xD5,0x04,0x99,
+0x87,0x66,0xD7,0x35,0xAB,0xB6,0xF4,0xB7,0x25,0xCB,0x02,0x44,0xE5,0xBB,0x9F,0x4E,
+0x21,0x59,0x18,0x36,0xCE,0xD6,0x85,0xE2,0xB4,0x56,0x2D,0xC7,0x34,0x8A,0x01,0x6D,
+0x35,0x9A,0x28,0x9B,0x87,0xFA,0x08,0x1F,0x1C,0x61,0xEA,0x64,0xBA,0x1E,0x56,0x9D,
+0xAC,0x46,0x62,0xF8,0xCB,0x89,0x71,0x54,0xB0,0x6E,0xE6,0x95,0xDD,0x70,0xCD,0x4A,
+0x88,0x09,0x67,0x0E,0x7A,0x52,0x61,0x12,0xBB,0x24,0x0B,0x3E,0x01,0xE9,0xAE,0x00,
+0x26,0x84,0x20,0xB2,0x92,0xCE,0x19,0x2E,0x35,0x8D,0xD9,0xF5,0xC6,0xAA,0xB9,0x4C,
+0x01,0xAB,0x39,0x8E,0xB3,0xF7,0xB2,0x4D,0x5B,0xEC,0x44,0xD8,0xF6,0x00,0x4B,0x2F,
+0x49,0xBE,0xE1,0xEC,0x8A,0x8F,0x5F,0xD4,0x86,0xB6,0x28,0x4C,0x94,0xA7,0x8D,0xF6,
+0xF8,0x22,0x02,0x88,0xCA,0x58,0xE3,0x9D,0xF3,0xDB,0x83,0x7B,0x6C,0x42,0x99,0x75,
+0x66,0x23,0x70,0x6F,0x55,0xB8,0x52,0x85,0x5A,0x9B,0xAB,0x7C,0xDA,0x1D,0x9C,0x81,
+0xB0,0x37,0xDA,0xEA,0x50,0xE7,0xA6,0x33,0xC5,0x03,0x4D,0xA2,0xDC,0xEE,0x2A,0x38,
+0x92,0xF8,0xF1,0x5D,0xFD,0xF3,0x96,0xF0,0x26,0x9F,0xFC,0xC6,0xEE,0xE0,0xD4,0x9E,
+0x46,0xD1,0x51,0xD7,0xD5,0x31,0x0C,0x27,0xD6,0x11,0x68,0x91,0xE6,0x81,0x74,0xF9,
+0x50,0x2F,0x6B,0x75,0xFA,0xDB,0x3F,0xB0,0x34,0xFA,0x36,0x51,0x06,0x84,0xFF,0xCB,
+0x9A,0x4A,0x79,0xE2,0xA5,0x65,0x6C,0x43,0x3C,0xE4,0x25,0x78,0xCE,0xCB,0x19,0x2B,
+0xE1,0xB3,0x88,0x11,0x5A,0xBA,0x58,0xB8,0xF7,0xE3,0x48,0x29,0xB5,0x12,0xA7,0x31,
+0x86,0x3B,0xC1,0xF0,0x1F,0x32,0x10,0x47,0xA7,0x44,0x08,0xF4,0x50,0xDE,0x71,0x0D,
+0xC7,0xC1,0x87,0xE8,0xE9,0x16,0x15,0x08,0xFD,0xDE,0x4A,0x26,0x3A,0x18,0x17,0xB3,
+0x74,0x60,0x6E,0x83,0x6A,0x39,0x84,0x95,0x13,0x13,0xCC,0x9D,0x80,0x71,0x08,0x5C,
+0x72,0xE0,0x40,0xC2,0x58,0xCD,0x05,0x4E,0xB7,0x02,0xD3,0x45,0xBC,0xED,0xE0,0x24,
+0x94,0x78,0xDF,0x1C,0x39,0x23,0x12,0x64,0xE5,0x86,0x82,0xBE,0x6F,0x78,0x72,0xC2,
+0x2A,0x8B,0x8C,0x43,0x0A,0x06,0x01,0x76,0xB5,0x21,0xC2,0x63,0x1B,0xAD,0x3D,0x74,
+0x14,0x35,0x1F,0xE6,0xA0,0x3A,0x98,0xF5,0x2E,0x81,0xEF,0xEF,0xF1,0x6D,0x1A,0xE4,
+0xF9,0x7F,0x14,0x4D,0xC9,0xFE,0x2C,0xA2,0x37,0xAE,0xC8,0xD3,0xEB,0x29,0x89,0x90,
+0x96,0x45,0xD5,0x13,0x37,0xF0,0x8A,0x90,0x5D,0xF7,0x9E,0xAC,0xB4,0x8C,0x40,0x43,
+0x63,0xC3,0x42,0xE4,0xC5,0x5A,0xE9,0xA0,0x65,0x2A,0x99,0x28,0xFD,0x5B,0x00,0xFF,
+0xD2,0x5F,0xA1,0x80,0xE7,0xC5,0x8D,0xFC,0x48,0xFE,0x61,0xEB,0x4C,0x69,0x54,0xC0,
+0x6F,0xCC,0xEE,0x15,0x41,0x5D,0xD1,0x7D,0xA0,0x28,0x3D,0x24,0x52,0x7A,0x7D,0xC8,
+0x60,0xA3,0x5E,0x2E,0xBC,0xF5,0xB8,0x70,0xCE,0x49,0xA0,0x09,0x2C,0x6A,0x9E,0xDC,
+0xDF,0x0D,0x1B,0xB4,0x8C,0x76,0x64,0x5D,0xE7,0xA5,0x93,0x98,0xD3,0xE2,0xDB,0x94,
+0x1B,0x5A,0xAF,0xDD,0xF7,0xAE,0x68,0x7B,0xAA,0x15,0x3F,0x2B,0x0E,0xE5,0x5F,0xAC,
+0xA3,0x29,0xD2,0xC3,0x77,0x27,0x36,0xD9,0x60,0x65,0xBD,0xDE,0xC4,0x0E,0xB5,0x89,
+0x57,0xF2,0x53,0xF1,0xC1,0xD4,0x8F,0xDF,0x23,0xD0,0xD8,0x30,0x57,0xB3,0x20,0xC6,
+0x2E,0x36,0xA8,0x0D,0x3A,0x85,0xDD,0x5B,0x7E,0x26,0xAF,0x32,0xA7,0x37,0x94,0x22,
+0x40,0x51,0x7F,0x96,0x66,0x9D,0x41,0x97,0xFE,0x8A,0xB4,0xA4,0xBB,0x80,0xB1,0xEF,
+0xF6,0x10,0xA4,0x76,0xD9,0x95,0xC9,0x25,0x06,0x1A,0x33,0xDA,0x92,0x54,0x3B,0x4F,
+0xB9,0xD8,0x44,0x90,0xD0,0x6E,0xF8,0x91,0x16,0x5C,0xE8,0x6B,0x7C,0xC3,0xA6,0xA3,
+0x19,0x67,0xA5,0xD2,0x84,0x5C,0xC7,0x20,0xE6,0xD2,0x7C,0x3C,0x18,0x97,0xD6,0xC3,
+0x22,0x39,0x04,0xFC,0x06,0xA2,0xC4,0x74,0x32,0xE1,0xEC,0x25,0xCD,0xF1,0xF2,0x9C,
+0xC4,0xA1,0x9B,0x22,0x5B,0x6B,0xCA,0x71,0xCD,0x1D,0x5E,0x8B,0xD6,0x2B,0x86,0x9A,
+0x03,0x96,0x33,0x81,0xE1,0x3C,0xB6,0x75,0x1D,0x16,0x05,0xC0,0x4F,0x53,0xBF,0x77,
+0x90,0xC5,0xFB,0x52,0x49,0x77,0x72,0x00,0xCC,0x6A,0xB1,0x2F,0x7A,0x30,0x10,0x1A,
+0x73,0xBD,0x56,0x07,0x2C,0x17,0x03,0x55,0x82,0x8E,0xE3,0x1E,0x41,0xC1,0xA9,0xA9,
+0x1C,0x87,0x97,0x59,0xFB,0x0A,0xAD,0x79,0xBF,0x1C,0xC0,0x6C,0x62,0xD0,0x8F,0xAB,
+0xA6,0xC9,0xE0,0x48,0x5E,0x34,0x3E,0xC7,0x7C,0x05,0xBE,0x14,0x0F,0x7B,0xB8,0xDE,
+0x11,0xD5,0x2D,0x6D,0x27,0x9B,0x6F,0x17,0x2A,0xB9,0x24,0xBD,0x63,0x4E,0x68,0xD9,
+0x2C,0x0B,0xA2,0x02,0x0B,0xD7,0x93,0xBF,0x59,0xCF,0x55,0xFE,0xC8,0x38,0xAF,0x92,
+0x79,0x32,0xD4,0xB7,0xB0,0x51,0x7D,0x72,0x17,0x2B,0x07,0xCF,0xF9,0x0C,0xBA,0x83,
+0x41,0x0C,0x69,0x53,0x0C,0xFF,0x3A,0xFF,0x46,0xFB,0xA8,0xB6,0xA6,0xA9,0x73,0x50,
+0xFD,0xC2,0x30,0x03,0xC4,0x8B,0x7B,0x69,0x21,0xF3,0xC9,0x16,0x73,0xCF,0x57,0x0F,
+0xA5,0xA9,0xFC,0x82,0x23,0x15,0x09,0x68,0x27,0xE8,0x13,0x62,0xB2,0x7F,0xF6,0xFA,
+0x4B,0x83,0xEB,0xE3,0x60,0x64,0x7A,0x1E,0xBC,0x48,0x3E,0xEE,0xAD,0xF2,0x38,0x80,
+0x0D,0xA4,0x95,0x7F,0xAD,0x4F,0xCF,0x3E,0xD3,0x5E,0x4C,0x67,0x6D,0xDC,0x7E,0x07,
+0x56,0xAF,0x45,0x34,0x3F,0xDA,0x29,0xED,0xF5,0xC0,0x59,0x0F,0xEF,0x7E,0x33,0xEC,
+0x5F,0x40,0xDB,0x4E,0x70,0x0F,0x9F,0x99,0xBA,0x53,0xE4,0x9A,0x8F,0x7D,0xF9,0xF0,
+0x45,0xB1,0x4D,0x1D,0xA1,0xEB,0x0A,0x3C,0x47,0x8C,0x47,0x12,0x58,0xBF,0xD1,0x6A,
+0x05,0x59,0xE9,0xC5,0xE8,0xD9,0xD9,0xDA,0x08,0x3E,0x4C,0x4D,0x55,0xA9,0xCA,0x18,
+0x57,0x08,0x12,0x41,0x2C,0x22,0x25,0xA3,0xBC,0xBA,0xA8,0xBD,0x22,0xF4,0x3C,0x1A,
+0xCB,0x10,0x4E,0x8D,0x4B,0xF5,0xBE,0xCD,0x99,0x0D,0x65,0xA1,0x39,0x74,0x90,0x8C,
+0x43,0x18,0xF1,0x3F,0x0A,0x2E,0x5E,0x7B,0x13,0xD9,0xC5,0x88,0xBE,0x8C,0x00,0xF2,
+0x72,0xE3,0xF8,0x8B,0xC2,0xCE,0xB8,0x34,0x8E,0x4E,0x29,0x66,0x65,0x9C,0x46,0x43,
+0x4D,0xD1,0xAC,0x3A,0x7D,0x2F,0xFA,0x94,0xFE,0x1A,0x49,0x02,0xF1,0x6C,0xC8,0x14,
+0x4E,0x2F,0x2E,0x6E,0x23,0x8E,0xD4,0xAF,0xDA,0x7C,0x16,0xD7,0x61,0xB8,0xFB,0x0D,
+0x40,0xE6,0x73,0x6B,0xBB,0x11,0x0A,0x49,0xAE,0xA6,0x10,0xCC,0xD3,0x47,0x07,0xA3,
+0x00,0x7D,0x1F,0x8A,0x5F,0x5F,0x3B,0x1B,0x68,0x01,0xC9,0xAE,0x13,0xD7,0xED,0x84,
+0x63,0xD7,0xED,0xBA,0xD9,0xC8,0xCC,0xEE,0x28,0xD6,0x75,0xE7,0x14,0xEF,0x30,0x00,
+0x07,0x48,0xCF,0xE6,0x45,0x2B,0xA8,0x5F,0x7C,0xE4,0x4A,0x56,0xEC,0xC2,0xE4,0xC3,
+0x5B,0xD0,0x69,0x67,0xD6,0x64,0x3D,0xE2,0x55,0xF7,0x42,0x48,0xB0,0x2A,0x32,0x0C,
+0x32,0x78,0x94,0x6A,0xB9,0xD4,0x06,0xED,0xB6,0xE7,0x56,0x36,0x2D,0x44,0x53,0x21,
+0xEE,0xFB,0xA4,0x47,0x17,0x91,0x9C,0x52,0xF3,0x6F,0x1E,0xC9,0x1E,0x6D,0xBF,0xB0,
+0xE2,0x23,0xDF,0x61,0x40,0x25,0xF5,0x96,0x77,0x68,0x26,0x14,0xB2,0x20,0x0F,0x03,
+0xBC,0xAA,0x5F,0xC3,0x33,0x58,0xEB,0x2E,0x9D,0x83,0x03,0xDE,0x30,0xEA,0x7F,0xF6,
+0xB0,0x72,0x24,0xE5,0x16,0xE3,0x7B,0xCC,0x5B,0x24,0xDA,0xBC,0x25,0xCC,0xE1,0x9E,
+0xF1,0x06,0xEC,0x73,0xD8,0xBA,0x2B,0x70,0x7F,0x42,0x85,0x69,0x44,0xAB,0xE9,0x3E,
+0x83,0x98,0x0B,0x72,0xB3,0x76,0xAA,0x28,0xDE,0xF2,0x70,0xA8,0x9E,0xAD,0xF2,0x4A,
+0xF0,0xE9,0x48,0x04,0x99,0x61,0xCB,0xC6,0x10,0x7F,0x0A,0xB7,0xB3,0x36,0x52,0xC6,
+0x45,0xC2,0x85,0x24,0xBE,0x1F,0x57,0x80,0x56,0x51,0x8D,0x77,0xC1,0x59,0x44,0x4F,
+0xA3,0x57,0x17,0xF7,0xB5,0xCF,0x1C,0xDB,0x1B,0xF3,0x66,0xF5,0xD4,0x7F,0xDA,0x27,
+0x15,0x82,0x58,0x83,0x5A,0x51,0x66,0xD2,0xD1,0xF0,0x7A,0x95,0x69,0x30,0x49,0xB2,
+0x80,0x66,0x89,0x26,0xAB,0xC7,0x35,0xC8,0xF9,0x32,0xE0,0x42,0xCA,0xCD,0x96,0x3A,
+0x3C,0xB1,0xC9,0x6F,0x8C,0xB9,0xA9,0x8E,0x97,0xDE,0xFD,0x55,0x88,0x97,0x0C,0xE8,
+0xF8,0xFA,0x61,0x1A,0xDF,0x71,0x7A,0x1D,0x38,0xBD,0x90,0x60,0x3C,0x46,0x70,0x07,
+0x89,0x9A,0x04,0x4F,0xA7,0xDC,0x2F,0xFE,0x81,0x4C,0x23,0x5B,0x6E,0x08,0x94,0x36,
+0x27,0x87,0xD3,0x63,0x9D,0x1D,0x71,0x91,0xA7,0x5D,0x21,0x78,0x4D,0x35,0x06,0x44,
+0xB4,0xB9,0x76,0xDD,0xD3,0x6A,0x60,0x2B,0x90,0xF6,0x54,0x15,0x33,0xF6,0x1F,0x3C,
+0xE5,0x16,0x0F,0x0D,0xCF,0xA7,0x45,0x9C,0x40,0xC3,0x53,0x79,0xA9,0xA0,0xA3,0x95,
+0x19,0x5A,0x23,0xA5,0x11,0x28,0x2A,0xA1,0x87,0xB5,0x18,0xD2,0xD8,0xD3,0xD5,0xD6,
+0xF7,0xDC,0x98,0x68,0x28,0x5E,0x9F,0xF4,0x92,0x81,0x09,0xE3,0x8A,0x9D,0x31,0xE7,
+0x7E,0x3B,0x83,0xAD,0x7C,0x5D,0x1D,0x0A,0xB7,0x36,0xC4,0xFF,0x8F,0xAF,0xD1,0x6C,
+0x0F,0x5B,0xE6,0xF8,0x43,0x92,0x1E,0xAC,0x29,0x07,0xE7,0x2E,0xA0,0x3E,0x4C,0xEF,
+0x82,0x77,0xAF,0x05,0x80,0xA2,0xB3,0xB8,0x7E,0x93,0x17,0xA0,0x67,0x96,0x7B,0x4C,
+0xFB,0x04,0xE3,0x4E,0x5C,0xE8,0xD0,0x21,0xE5,0xFD,0xC0,0xC7,0x6B,0x3A,0x74,0xBD,
+0xEB,0xDF,0x52,0x08,0x13,0xED,0x26,0x05,0x86,0x64,0x8A,0x1B,0x86,0x31,0x3E,0x16,
+0x93,0x43,0xBA,0x34,0x9E,0xAA,0x9A,0xAB,0x91,0x27,0xC6,0xDC,0x54,0xBF,0x97,0xDD,
+0x38,0x7A,0x9B,0x57,0xB1,0xB3,0xA6,0x8C,0x63,0x8D,0xA5,0xEC,0xC9,0xD1,0xF6,0xF0,
+0xD5,0x02,0xA2,0xCE,0xA4,0x6B,0xC4,0xC4,0xA5,0x2A,0x7C,0x8E,0xA5,0x0C,0xAC,0x64,
+0xEC,0xEA,0x82,0x64,0xF3,0xDF,0xAD,0x00,0xBB,0x92,0x01,0xFD,0x89,0x81,0x51,0x2D,
+0xB7,0x47,0xF4,0x89,0x84,0xDE,0x09,0xEF,0xE0,0xA2,0x34,0x71,0xB6,0x04,0xB2,0x4D,
+0x9B,0x50,0x93,0x2A,0x58,0x94,0x6A,0x76,0x30,0x97,0x33,0x1D,0x4B,0x1B,0x86,0x05,
+0x52,0x2C,0xE4,0x0E,0x82,0x67,0xBF,0x1C,0x80,0x9D,0xB1,0x92,0x31,0xFC,0x22,0x33,
+0xC3,0x03,0x67,0x93,0x25,0x37,0x62,0x5C,0x46,0x3A,0x68,0xF0,0xAD,0x84,0x1E,0xDB,
+0x5A,0x3F,0xCD,0x10,0x2B,0xE9,0x74,0xCE,0x49,0x38,0x62,0xCD,0xE1,0x78,0xB6,0xF7,
+0xDD,0x11,0x8B,0xD0,0xB0,0xC1,0x41,0x12,0x19,0x84,0x3B,0x03,0xF8,0xF2,0x27,0x6E,
+0xF9,0x15,0xC5,0x6D,0xEE,0x60,0x6F,0x29,0x2C,0x58,0x13,0x98,0x79,0x24,0x37,0x51,
+0x9A,0xBF,0x37,0x5D,0x21,0x4B,0xD8,0x0B,0x59,0x53,0x87,0x4A,0x85,0x2D,0x5E,0xDC,
+0x9F,0x9B,0xC1,0x12,0xDB,0x0D,0xC0,0x4A,0x3F,0x95,0x39,0x20,0xC7,0x77,0xC4,0x0E,
+0x0E,0xB4,0x42,0x8F,0x7A,0xE4,0xAB,0xF9,0x20,0xFC,0xD6,0x9A,0x41,0x99,0x09,0xB5,
+0x8F,0x40,0x70,0x54,0xFA,0xCA,0xEA,0xFF,0xC8,0x60,0xAE,0xA6,0x5E,0x3D,0x18,0x6D,
+0x98,0xAE,0x11,0x7E,0x62,0x55,0x34,0x19,0x5A,0xF5,0x48,0x75,0x0F,0x6F,0x9C,0x96,
+0x8B,0x8B,0x22,0x6C,0x91,0x06,0x6B,0xA7,0x15,0x20,0xFE,0x01,0x4F,0x3F,0x3B,0x4B,
+0x12,0xB7,0x88,0xEF,0x2F,0x95,0xCE,0x99,0x32,0xE0,0x6E,0xEB,0x62,0xA4,0x9B,0xC7,
+0xA6,0x73,0xE1,0xB8,0x65,0x9E,0x65,0x74,0xA1,0xA4,0x1A,0xF1,0x45,0xBD,0xB4,0xFB,
+0x69,0xD5,0xE2,0x87,0x38,0x88,0xA0,0x75,0xB1,0xCF,0xFF,0x76,0x0E,0x79,0xC1,0x53,
+0xD8,0x35,0x7D,0x9F,0x39,0xFA,0x47,0xEB,0xB4,0x90,0x0B,0xC0,0x26,0xD0,0x81,0x54,
+0x2C,0x6A,0x78,0x29,0x2D,0x50,0xC2,0x3D,0x02,0x63,0xB2,0xC6,0xC0,0x4F,0x19,0x8A,
+0x1C,0x7E,0xD5,0xEA,0xE2,0x7B,0x75,0x1F,0xFC,0x6D,0x14,0xF4,0x71,0xAC,0x85,0xEE,
+0x86,0xBC,0xFD,0x3D,0xCB,0xDB,0xFF,0xCB,0x5C,0x0C,0x73,0xFC,0xE5,0x5C,0x0B,0xB9,
+0xB5,0x56,0xD2,0xAA,0x35,0xE1,0x5D,0xDD,0xD7,0x09,0x41,0x1C,0xBB,0xBE,0xE0,0x79,
+0xE6,0xE8,0x8D,0x59,0x50,0xF3,0xCA,0x17,0x31,0x46,0xA1,0xD4,0xA8,0xB6,0xFE,0x50,
+0xD2,0x37,0x72,0xA2,0xA9,0x02,0x39,0x6C,0x8F,0x9F,0xBB,0xAF,0xC5,0x7D,0xF9,0x01,
+0xF9,0xDD,0xC8,0x01,0x8D,0xCC,0x93,0xED,0x44,0xF0,0x62,0xA1,0x5C,0x2F,0x11,0xF7,
+0x0A,0xB7,0x1D,0xDB,0xA9,0x05,0xE4,0x91,0x72,0x8A,0x85,0x05,0x56,0xAD,0x9E,0x47,
+0x40,0x2E,0x7E,0x07,0x0A,0x29,0x83,0x86,0x3A,0x77,0x9A,0x31,0x63,0xAA,0xF2,0x97,
+0x41,0xC1,0xDA,0x70,0xE7,0x72,0xF5,0x2B,0x5A,0x48,0x1F,0xD2,0x53,0x9F,0x7E,0xCC,
+0xFE,0xE8,0x18,0x6D,0xEE,0x67,0xB2,0xD4,0x26,0xB8,0xBA,0xB4,0x99,0x8D,0x1B,0x5B,
+0x5F,0xD3,0x36,0x33,0x53,0x43,0xFC,0xD0,0x19,0x39,0x6C,0xA4,0x45,0xA5,0x80,0x6E,
+0x77,0x0F,0x03,0xA8,0x93,0xC4,0xBA,0xFE,0x80,0x20,0xE6,0x35,0xF9,0xFC,0x4E,0x3E,
+0xA9,0x9D,0x15,0xA6,0x10,0x5D,0x10,0xC2,0xAC,0x6C,0x1A,0x9D,0xFB,0xF6,0x73,0x31,
+0x76,0xE0,0xA7,0xDF,0xCD,0x65,0x94,0xC5,0xCA,0xAA,0xA4,0xF7,0x3C,0x5E,0x44,0x92,
+0x3C,0x79,0xC4,0x03,0x86,0x1C,0xD8,0xB6,0x3B,0xA6,0x08,0xF8,0x52,0x89,0x23,0x09,
+0x0C,0x6D,0x69,0xC0,0x7B,0x91,0x91,0x9A,0x98,0x61,0xA0,0xCF,0xC6,0x79,0xAD,0x5E,
+0xC3,0xCB,0x6A,0xFF,0x2E,0xE0,0xF4,0xFA,0x1B,0x4E,0x31,0x52,0xF7,0x5A,0x7C,0xC0,
+0xF5,0x05,0xB3,0x27,0x4D,0x4B,0xD5,0xC3,0x13,0x64,0x92,0x2F,0xEB,0xE2,0x0D,0xD2,
+0x2D,0x4D,0xD1,0x32,0xD4,0xA6,0xEC,0xBB,0x87,0x08,0x4F,0x75,0x4C,0x3B,0x6F,0x14,
+0x34,0x6A,0xED,0x1D,0xB7,0x0D,0xCD,0x82,0xAA,0x95,0x21,0x14,0xE6,0x58,0x5F,0xE6,
+0x73,0xC4,0x51,0x90,0x8B,0x75,0x25,0x1E,0x61,0x47,0xAF,0xBD,0xA5,0x14,0x98,0xF1,
+0xE5,0xDE,0x02,0x61,0x69,0x82,0xA2,0xBF,0x99,0xB0,0x32,0x06,0xAC,0x8A,0x77,0x8B,
+0xCE,0xFC,0xB5,0xAE,0xAA,0xB2,0x0F,0xAB,0xFD,0x01,0xD1,0x9A,0xA2,0x2C,0x45,0x75,
+0x64,0x2A,0x30,0xBA,0x1C,0x46,0x0A,0xF4,0x23,0xE7,0x4E,0x02,0x51,0x95,0x43,0xC3,
+0x16,0xB4,0xD7,0xBB,0x04,0xF7,0x95,0x14,0x24,0xCF,0xE7,0x42,0x0E,0x61,0xF5,0xC6,
+0x9C,0xAD,0x4E,0x2A,0x21,0x4C,0x05,0xF6,0x76,0x04,0xE3,0x7A,0x5E,0x25,0x2C,0xF8,
+0x6D,0xD6,0xBD,0xD3,0xDA,0x78,0xFA,0x29,0x27,0x69,0x28,0x7D,0x87,0x3F,0x57,0x46,
+0x7F,0x1C,0x2A,0xB6,0x29,0x2B,0xA5,0x97,0x0E,0x7A,0x20,0x63,0xC8,0xDF,0x9F,0xA0,
+0x45,0x0A,0x88,0x48,0xBE,0x18,0x8A,0x7D,0xCE,0x24,0xC2,0x88,0xCD,0xED,0x7F,0x2B,
+0x54,0x3E,0x9D,0x79,0xD7,0x11,0x07,0x81,0x1A,0x9F,0xA3,0x9B,0xA1,0x30,0x25,0xBF,
+0x7A,0x38,0xDC,0xF9,0x0C,0x90,0x35,0x75,0xC2,0x80,0x07,0x8A,0x3D,0x48,0x19,0x57,
+0x93,0x8B,0xB7,0x58,0x91,0x01,0xB6,0x5A,0x79,0x06,0xE9,0x47,0x54,0xA7,0xA3,0x48,
+0xD5,0xCA,0xAF,0xA2,0xDE,0x04,0x40,0x7E,0xAB,0x44,0xB3,0xDD,0x92,0x19,0xC9,0x2E,
+0x00,0xB5,0x12,0xE6,0x3B,0x38,0x96,0xB2,0x8C,0x84,0x23,0x37,0x65,0x84,0x72,0xD6,
+0x0B,0x58,0xB9,0xAC,0x6C,0x8C,0xFF,0x76,0xB0,0xA3,0x3A,0x18,0x21,0xF0,0x68,0x45,
+0x98,0x66,0x1C,0x12,0xEF,0x15,0x55,0x4A,0x3C,0x8E,0xA1,0xB8,0xE1,0x60,0x82,0x62,
+0xCB,0xD8,0x43,0xE1,0xFD,0x06,0x66,0x6F,0xE1,0xCE,0xF1,0x1F,0x34,0xD6,0xF6,0x2D,
+0xFA,0x23,0x4A,0x55,0xE4,0xC5,0x1E,0x11,0x7B,0x71,0xB4,0xB1,0x36,0xDC,0xCB,0x22,
+0xB5,0x9E,0xDF,0xC6,0x65,0x99,0xB8,0x89,0xB4,0x2D,0x5C,0x67,0x25,0xD4,0xD5,0x0B,
+0x56,0x2F,0xBB,0x5A,0x39,0xFD,0x9A,0x16,0x77,0xD5,0x71,0xB3,0x17,0xEB,0x64,0x5F,
+0xC1,0xDA,0x4C,0xDC,0x09,0x9E,0x68,0xBC,0xF3,0xD2,0x49,0x6E,0xC0,0x57,0x2D,0x1F,
+0xC6,0xEF,0x9C,0xB0,0x40,0x22,0x28,0x6B,0x81,0xF1,0x74,0xFC,0x42,0x9D,0x5D,0xEA,
+0xBB,0x57,0x82,0xC3,0xE2,0x7C,0xA8,0xE2,0x74,0x73,0xBE,0x8C,0xA9,0xB8,0x97,0x00,
+0x0F,0x93,0xEB,0x94,0xC4,0x70,0xD3,0x3A,0xC7,0xDF,0xF3,0x3C,0xAE,0x80,0x4A,0x84,
+0x4A,0x2C,0x71,0x3A,0xE9,0xAC,0xE3,0xB9,0x56,0xEC,0xDA,0xD0,0x26,0xC8,0xB5,0xC1,
+0xB0,0xBA,0x29,0x89,0xBC,0xDD,0x86,0xD9,0x85,0x7F,0x12,0x83,0x18,0x5B,0x0B,0x64,
+0x6B,0x0C,0xC9,0xC8,0x0E,0x55,0x39,0xD1,0xFB,0xF8,0xEA,0x13,0xCC,0xFB,0x22,0xEE,
+0xBC,0x62,0x52,0xAF,0xC2,0xC9,0x65,0xC9,0x6D,0xE3,0x6A,0xBF,0x7B,0x36,0x3E,0xCB,
+0x47,0x1B,0xAE,0x6B,0x46,0x9B,0x9E,0x98,0x6F,0x94,0x37,0x49,0xFF,0xD2,0xCE,0x7F,
+0x8F,0x88,0x7D,0x38,0xE8,0xDE,0x04,0x27,0xD4,0x12,0xD9,0x84,0x67,0x8E,0x4F,0xD9,
+0x10,0x6E,0xA3,0xA0,0xED,0xD0,0x59,0xEE,0x7A,0xA0,0x26,0x78,0xBD,0x88,0x54,0xAD,
+0xB1,0x55,0x8D,0xFE,0xB9,0xD3,0xDB,0x10,0x63,0x30,0xF2,0x4B,0xDB,0xD7,0x81,0x89,
+0x50,0xF5,0xCF,0x41,0x08,0xEC,0x8F,0x22,0x34,0xA4,0x02,0xC5,0x8F,0xB7,0xE5,0xF9,
+0x83,0x50,0x06,0x1E,0xE0,0xB9,0xA4,0x46,0x33,0x8C,0xAB,0x85,0x9C,0xBF,0xFB,0xD0,
+0x42,0x3F,0x58,0x24,0xCC,0x17,0x73,0x5B,0x41,0xAF,0x96,0x17,0x8D,0xBD,0xD8,0xF6,
+0xEF,0xDC,0x0D,0x5C,0x99,0x66,0x16,0x3B,0x70,0xFD,0xD8,0xF3,0x7C,0x0E,0xE3,0x4F,
+0x27,0x4F,0xDE,0x0F,0xEC,0xA2,0xBE,0x70,0x9F,0x49,0x09,0x8F,0x1F,0x63,0xD6,0xE0,
+0xC0,0x35,0xE8,0xAB,0xEB,0x69,0xEF,0x1D,0x90,0x4B,0x03,0xB2,0x40,0x97,0x60,0xE5,
+0xB6,0x60,0x5D,0x92,0x26,0x87,0x54,0x9B,0xA1,0x19,0x4D,0x56,0x74,0x86,0x51,0xF0,
+0x39,0x5D,0x32,0x4C,0x8E,0x7B,0x78,0xD7,0xE2,0x68,0x3E,0x20,0x02,0xCD,0xFA,0x37,
+0xF4,0xEA,0x17,0x50,0x5E,0x2A,0x01,0x78,0x4B,0xF2,0x68,0x9C,0x37,0xCA,0x96,0xE7,
+0xFF,0x07,0xBC,0x1A,0x87,0x6E,0x3F,0x28,0xB1,0x72,0xA8,0xD1,0xBE,0x94,0x34,0x67,
+0xE8,0xE9,0xDD,0x30,0xF1,0x1D,0x7C,0x59,0x3D,0x5F,0x33,0x71,0x33,0xEE,0x2B,0xA9,
+0x24,0xB1,0x5C,0x5B,0xF0,0x6F,0x9B,0xC7,0x49,0x85,0x35,0x6A,0x83,0x1B,0xEA,0x08,
+0x7D,0x0D,0x0C,0x95,0x66,0x2E,0x53,0xB3,0xE9,0xE4,0x52,0x62,0xE5,0x44,0x3F,0x2C,
+0x59,0x09,0x42,0x28,0xA5,0x1E,0xFE,0xA7,0x4D,0x0B,0x53,0x15,0xF3,0x7E,0xC1,0x8E,
+0xCF,0x13,0x11,0xD9,0x00,0x8B,0x2F,0x43,0xC5,0xA8,0xAE,0xCA,0x31,0xE4,0x16,0xA6,
+0x51,0x1A,0x6B,0x36,0x74,0x3D,0x60,0x96,0x50,0x15,0xE1,0x59,0x32,0xF8,0x76,0x6C,
+0x81,0x41,0x20,0x3D,0xA7,0xDB,0xF2,0x03,0x38,0x00,0xC7,0xC7,0x90,0x13,0xF4,0x21,
+0x19,0xE4,0x82,0x4B,0xE7,0xAA,0x32,0xA9,0x22,0x7F,0x95,0x66,0x4A,0xCE,0x56,0xAE,
+0x2F,0x03,0x26,0x31,0xED,0x1A,0xBD,0x2B,0xF8,0x8C,0x40,0x0C,0x83,0xB9,0x2A,0x8A,
+0x67,0x1C,0x12,0xCC,0xD8,0xCA,0xD1,0x2C,0x24,0xC6,0x23,0x95,0xAF,0xDE,0x3D,0x29,
+0x07,0x99,0xF1,0xF3,0xE8,0x91,0x5D,0x19,0x53,0xC7,0x87,0x7A,0xF4,0xA8,0x90,0xC4,
+0x7B,0x3C,0x97,0x03,0x22,0x06,0x38,0x0B,0x4E,0x78,0x45,0x53,0xE1,0xEF,0x6F,0xCD,
+0x44,0xEA,0x87,0x82,0xFE,0x33,0xA3,0x23,0x10,0xD9,0x6B,0x68,0xC5,0xA1,0x6B,0x70,
+0xDD,0x60,0x16,0x9B,0x42,0x63,0x6D,0x7A,0x8B,0xF1,0x5E,0xB4,0x42,0xE7,0x45,0xB0,
+0xF1,0x9C,0xBE,0xD7,0x40,0x6C,0x50,0x70,0x85,0x2F,0x48,0x26,0xDB,0x4D,0x79,0x33,
+0x97,0x22,0xD4,0x11,0x87,0xCF,0x67,0xD8,0xFC,0xF0,0xFA,0x5B,0xE3,0xC9,0x7E,0xEE,
+0x66,0x8E,0xDB,0x1D,0xE9,0x54,0x00,0x0F,0x20,0xBA,0x99,0xC2,0x9A,0x85,0x0D,0xA5,
+0xC5,0x26,0xEC,0xDA,0x7D,0x03,0x8E,0xFF,0xE3,0x8A,0x34,0xD6,0x17,0xCC,0x21,0x58,
+0x46,0xB7,0x71,0xF5,0x4C,0x9D,0x5F,0xDC,0xDC,0x45,0x37,0x70,0x66,0xA9,0x41,0x0D,
+0x4E,0x14,0x0C,0xDF,0x50,0x8F,0x2E,0x64,0x04,0x73,0xEE,0xBE,0xCD,0x88,0x78,0x6E,
+0xDA,0xC9,0x56,0xB3,0xF7,0x49,0x4C,0xBD,0x11,0xAB,0x8C,0xF6,0x20,0xB1,0x00,0xF7,
+0xF7,0xA7,0x37,0x2E,0x5D,0xBB,0x7C,0xDE,0x3E,0xB2,0xB0,0xD1,0x8B,0x90,0x39,0x94,
+0x3C,0x29,0x9E,0xFC,0x1E,0xAC,0xBB,0x92,0xB3,0xF5,0x0C,0x7F,0xF3,0x78,0xA5,0xA8,
+0xC4,0xB4,0x25,0x0B,0x17,0xD6,0x54,0x0C,0x42,0x63,0x5F,0x65,0x04,0xFF,0x04,0x4A,
+0xA0,0x57,0xB9,0xBA,0x19,0x28,0x66,0xAA,0x8D,0x48,0xE8,0x47,0x34,0x52,0x10,0x89,
+0x7E,0xC8,0x21,0x5C,0xEA,0x9E,0x60,0x13,0x99,0xE2,0x6D,0x91,0xC0,0x57,0x4F,0x3F,
+0x79,0x61,0x61,0x74,0xB5,0x9B,0xD6,0xE7,0x98,0x90,0x8A,0x0F,0x71,0xC8,0xAF,0x27,
+0x2B,0x65,0x59,0xBF,0xE5,0xA5,0x0F,0xA3,0x09,0x1A,0x13,0x16,0xCA,0x58,0x4D,0x02,
+0x7A,0xAE,0x5E,0xD2,0x3C,0x1B,0x74,0xB9,0xF0,0xEB,0xE0,0x6D,0xFE,0xA7,0x92,0xF9,
+0x53,0xA6,0x40,0xC1,0x73,0xFD,0xBC,0x59,0x95,0xF9,0x77,0xA7,0xAD,0xF8,0x2C,0x0A,
+0x93,0x44,0xAB,0x9F,0x76,0x76,0x5C,0x6B,0x6B,0xC3,0xD5,0xB1,0x9E,0xD7,0xC6,0x9D,
+0x47,0x25,0xB8,0x24,0x1A,0xE2,0x06,0xB6,0x5A,0xD2,0xC0,0x85,0x97,0x5A,0x3A,0xF4,
+0x9F,0x81,0xA9,0x3B,0x86,0x0A,0x3A,0xCE,0xDA,0xFC,0x81,0x83,0x16,0x68,0xCE,0x2F,
+0x24,0x6F,0x64,0xBD,0xEF,0x15,0x80,0x21,0x7B,0x15,0xEA,0x30,0x87,0xEB,0xE1,0xB2,
+0xF6,0x35,0xFE,0xFF,0x29,0x73,0xEA,0x9F,0x81,0x53,0xF2,0x71,0x82,0x1D,0xC5,0xFD,
+0xD1,0xA5,0x14,0x3F,0xDE,0x8B,0x51,0x02,0xC5,0x86,0x4F,0x0E,0xBE,0xCB,0x09,0x18,
+0xED,0xBC,0x3B,0x18,0x9A,0x18,0x4B,0x76,0x8F,0x8D,0xE4,0xE3,0x0A,0xA2,0xCD,0x4F,
+0x61,0x27,0x9B,0x35,0x5A,0x3F,0xA1,0xE6,0x31,0x1E,0x41,0xDD,0x93,0x08,0xF1,0xCC,
+0xBC,0x77,0x3C,0x75,0x8F,0x70,0xD5,0x50,0xC2,0x4D,0x1E,0x63,0x80,0x3B,0xD4,0xDE,
+0x26,0x32,0x92,0xCA,0x8D,0x7F,0xE8,0x5A,0x76,0x7C,0x17,0x98,0x43,0x43,0xAA,0xC7,
+0xE9,0xDA,0x44,0x96,0x9E,0x56,0xF6,0x52,0xE5,0x33,0x82,0x25,0x1F,0xE5,0x32,0x46,
+0x2A,0xF7,0x90,0x6E,0xAC,0x02,0x47,0x6D,0x79,0xD0,0xE6,0x94,0x7B,0xC7,0xAD,0x1A,
+0xAE,0xCF,0x4D,0x69,0x7B,0x42,0x0E,0xD1,0xFF,0x47,0x11,0x61,0x18,0x35,0x07,0x2A,
+0xDC,0xF2,0xDF,0x4A,0xF9,0xB7,0x7E,0x1B,0x93,0x40,0xC1,0x54,0xA4,0x75,0xD0,0x63,
+0x29,0x38,0xAF,0xC8,0x12,0x5D,0xB4,0x3E,0xE0,0x3D,0xDF,0xEC,0xFA,0xF5,0x59,0xC1,
+0x9A,0x75,0x1F,0x64,0x15,0xD9,0x69,0x06,0xB7,0x89,0xB6,0x28,0xF6,0x8E,0x81,0xE7,
+0x0B,0x5C,0xF3,0x57,0x9D,0x9C,0x96,0x4E,0x19,0xCC,0x2C,0x97,0x2A,0xBE,0x02,0xCA,
+0xD8,0x94,0xA0,0xC4,0xA3,0x39,0x28,0xDD,0xAA,0x36,0x74,0x01,0x5B,0xDB,0x62,0x9F,
+0xA6,0x6C,0x30,0x43,0x77,0xB3,0x01,0x7D,0xEB,0xED,0x94,0xB7,0xD3,0x64,0x6A,0x2D,
+0x30,0xEC,0x9C,0x58,0xC0,0x96,0x1D,0xB0,0x8C,0x3A,0x0F,0xD9,0x4F,0x38,0x72,0xE1,
+0x32,0xB1,0x6A,0x2F,0x44,0x22,0xED,0x54,0x48,0xC1,0xF3,0xA0,0x1D,0xC3,0x23,0x65,
+0x89,0x5F,0xA7,0xA9,0xDC,0x84,0x6C,0x08,0x1B,0x09,0x20,0x33,0x58,0x59,0x9C,0xCB,
+0x27,0xA0,0x5B,0x1B,0x06,0xF0,0x77,0x0E,0x83,0x96,0xFE,0xD5,0x56,0x04,0x55,0xCE,
+0x3E,0x74,0x68,0x8B,0x60,0xD4,0xA2,0x51,0xDD,0x37,0xD0,0xEE,0x55,0x86,0xAB,0x9A,
+0x69,0x84,0xE6,0x1F,0x34,0xA4,0xC6,0x31,0x62,0xD6,0x92,0x4E,0x6A,0xD2,0x99,0x2B,
+0x6E,0x2D,0xA6,0x37,0x27,0x8D,0xD8,0x39,0x3D,0x05,0x5B,0xEB,0x3F,0xF9,0xFD,0xC3,
+0x1C,0x10,0x34,0x14,0x36,0xAB,0xFB,0x3B,0x07,0xC4,0x05,0x84,0x91,0x2E,0xE0,0xEF,
+0x2D,0x5E,0xD0,0x46,0xC7,0x12,0xC0,0x88,0x7F,0x69,0x50,0x67,0xE0,0x4B,0x80,0xBA,
+0xC2,0x8F,0xAC,0xF2,0xA4,0xBD,0xF5,0xE5,0x2C,0xA1,0x83,0xF4,0x24,0xE3,0xCB,0xCF,
+0xCD,0x85,0x91,0xF0,0xFB,0xB8,0x43,0x11,0x88,0x46,0xB5,0x8E,0xEF,0xB2,0xA6,0xC8,
+0xFC,0xCB,0x75,0xA2,0xCF,0xAD,0x72,0x00,0xB1,0x30,0x00,0xDB,0x01,0x09,0x20,0x05,
+0xBF,0xB8,0x03,0xD3,0xB9,0x6A,0xD9,0x4B,0x6F,0xBF,0x6F,0xE6,0xFD,0x25,0x6C,0xAD,
+0x16,0xEE,0xBF,0x49,0x8C,0xBA,0xB5,0x4C,0x73,0x72,0x4A,0x51,0xAC,0x5C,0xC3,0x7D,
+0xEC,0x2E,0xF2,0xC9,0x05,0x3A,0x17,0x12,0x39,0x79,0xE1,0xBC,0xE8,0x62,0x93,0xA4,
+0x60,0xB5,0x52,0xE4,0x88,0xF4,0x08,0x68,0x13,0x6E,0x80,0x52,0x9B,0x21,0xE2,0xD2,
+0x14,0xB3,0x49,0x3E,0x38,0x55,0xC9,0x9D,0x78,0xA2,0x01,0x0A,0xE9,0xC6,0x7C,0xD3,
+0xB4,0xD4,0x41,0x5F,0x5E,0x71,0x1C,0xC2,0xB6,0xFB,0x51,0xB6,0xA8,0x0E,0x08,0x45,
+0x10,0xD5,0x36,0xB0,0x48,0xD3,0xE2,0xF8,0x0B,0xDF,0x1F,0xB2,0x98,0xA3,0x1C,0x86,
+0x98,0x28,0xE9,0x13,0x8A,0xFB,0x35,0x62,0xFA,0x49,0x4C,0xA8,0x0D,0x72,0xF8,0x23,
+0x0D,0x67,0x7A,0xAE,0x89,0x31,0x55,0x7E,0x15,0xD7,0x36,0xA1,0xBB,0x3D,0x2D,0x57,
+0x65,0x41,0xE4,0xBB,0x2B,0x7C,0xD7,0x95,0x1E,0x07,0x7D,0xFA,0x5D,0xAF,0xB8,0x84,
+0xD8,0xD2,0xF2,0x3F,0x5D,0x9F,0xB7,0x84,0x39,0x80,0xE0,0x3B,0x6A,0x2A,0x1E,0xD2,
+0x69,0x86,0xC0,0x00,0xBC,0x20,0x17,0xC6,0x6D,0xF0,0x84,0x5B,0x3D,0xA4,0xEE,0x46,
+0x89,0x0D,0xC5,0x32,0x63,0x59,0x6A,0x74,0x85,0xD0,0x2E,0x62,0xDD,0xE5,0x35,0xF0,
+0x8C,0x50,0x0C,0x3C,0xFC,0xC1,0x8C,0xAA,0x5F,0xA4,0x35,0x64,0x73,0x19,0xCA,0x42,
+0xA3,0x6C,0x2B,0x25,0x50,0xCE,0x80,0x5B,0x99,0xC2,0x5F,0xDA,0x64,0xDE,0x86,0x01,
+0x27,0x97,0x7A,0x77,0xAB,0x0A,0xF9,0xA7,0x1D,0x76,0xAF,0x3E,0x66,0x28,0xDB,0x76,
+0xDD,0x8F,0x3B,0x31,0x5C,0xE8,0x58,0x20,0xFA,0x6D,0x6A,0xB7,0x8C,0xE2,0xFE,0x9D,
+0x6F,0x30,0x33,0xB9,0x87,0xA9,0xEE,0xC0,0x2E,0xE7,0x43,0x17,0xF2,0x72,0x06,0x1A,
+0xA5,0xDA,0xD8,0x9C,0xE3,0xF5,0x71,0xE2,0x4C,0x8D,0x2B,0x6C,0xCE,0x5D,0x1F,0x3D,
+0x88,0xEA,0x5B,0x40,0xA6,0x5B,0xCE,0x78,0xC4,0xC8,0xD4,0x24,0x5F,0xB1,0x36,0x0E,
+0x21,0x21,0x89,0xCE,0x2A,0xD1,0x0D,0x95,0xA0,0xE3,0x3C,0x71,0x88,0x9D,0x98,0x13,
+0x83,0xA1,0x00,0x90,0x57,0xA2,0xB5,0x8B,0x4B,0x09,0xF6,0x54,0x7D,0xED,0x52,0x91,
+0x58,0x93,0xF4,0x11,0xBA,0x3B,0xCD,0xB2,0xF5,0x56,0x05,0x07,0x7E,0xD2,0x9D,0x37,
+0x68,0x61,0x5E,0x72,0x2D,0xBD,0x38,0x45,0x22,0x16,0x4C,0xBB,0xFA,0x0F,0xA5,0x30,
+0x85,0x17,0xF3,0x29,0x16,0x34,0xC1,0x43,0xD4,0x2B,0xAA,0x30,0x72,0xD0,0x58,0x93,
+0x04,0xB1,0x6B,0x75,0x59,0xA7,0x7C,0xD6,0xC7,0x02,0xB4,0x38,0xBD,0x06,0xB0,0xCF,
+0x15,0x69,0x74,0xD1,0xBD,0x57,0xF8,0x62,0xD0,0x65,0x17,0x14,0x59,0x38,0x0D,0xF7,
+0xC6,0xFB,0xE1,0x37,0x6D,0x5C,0xA3,0x29,0x72,0x28,0x95,0xFF,0x31,0xA6,0x2B,0xE2,
+0xC4,0xF7,0x45,0xF2,0xB5,0x49,0xEB,0x4B,0x11,0x87,0xA0,0x92,0x44,0x74,0xBF,0xE9,
+0x61,0x26,0xA1,0x67,0x23,0xB8,0xF1,0x18,0xD3,0xAF,0x77,0x08,0xCC,0xAB,0x42,0x4A,
+0x91,0x92,0x25,0x83,0xC8,0x3A,0x53,0x55,0x61,0x01,0x8B,0xF7,0x40,0x0B,0xD9,0x67,
+0x07,0x5A,0x51,0xC2,0x91,0xF4,0xEF,0x05,0x07,0x25,0x5E,0xA8,0xE0,0x03,0xBE,0x06,
+0xE6,0x36,0xCA,0x82,0x13,0x7B,0xE5,0xB5,0x5C,0x6E,0x55,0x78,0xB8,0xB0,0x44,0x90,
+0x90,0x75,0xBB,0xF1,0x04,0x51,0x0B,0xD4,0xD1,0xA0,0x4A,0x02,0x34,0x10,0xDF,0xBD,
+0xEF,0x71,0x35,0x97,0xD5,0x2D,0xBF,0x3B,0xE0,0x3E,0x9B,0x21,0xEB,0x41,0xD2,0x8A,
+0x3F,0x08,0x9A,0xC6,0x18,0x31,0x08,0x1E,0xD5,0xEE,0xF7,0x26,0x42,0xFD,0x84,0x10,
+0x8A,0xE6,0xFF,0x85,0x2C,0xCA,0xD7,0xE1,0xA2,0xEC,0x01,0x7B,0x99,0xD3,0xEF,0xA9,
+0x47,0x5D,0x79,0x6B,0x5A,0xF3,0x82,0x54,0x96,0xF9,0x30,0x6A,0xA8,0x37,0xA1,0xFB,
+0xF8,0x1F,0xD9,0x8A,0x03,0x3D,0x3E,0x04,0x9E,0x46,0x82,0xE2,0x79,0x92,0x34,0x1F,
+0x8D,0xB7,0x92,0x4E,0xCB,0x6E,0xAD,0xD7,0xFD,0xE9,0xB7,0x8F,0x96,0xEE,0xE5,0xAB,
+0x81,0xAD,0xA4,0x55,0x6F,0x7F,0xB2,0x0F,0x7E,0xD9,0x9A,0x53,0x3A,0xE4,0x47,0x6E,
+0xAD,0x7A,0xB9,0xFB,0xAE,0x45,0xDD,0x51,0x6F,0xFF,0xB9,0x51,0x48,0x76,0x7A,0x4D,
+0xD6,0xC4,0x60,0xE1,0xD8,0x7C,0x88,0xE4,0x04,0xEF,0x3E,0xB4,0xA3,0x75,0xCD,0x77,
+0xEA,0x2C,0xFC,0x99,0x9F,0xF1,0x26,0x58,0x47,0xF8,0xF9,0xF8,0x68,0xDC,0x43,0xA5,
+0x2C,0xDC,0x21,0xA7,0x19,0x46,0xE7,0xBA,0x09,0xDB,0x6C,0x0E,0x1A,0x4E,0x7E,0x86,
+0xB5,0xE5,0x59,0x4A,0xC1,0x53,0xAF,0xD8,0xAE,0x1D,0x0E,0xD7,0x8E,0x14,0xA3,0xEA,
+0x1A,0x98,0x78,0x7D,0xE0,0xA1,0x8F,0x60,0x24,0x57,0xCC,0x95,0x91,0xAE,0x4C,0x83,
+0x4F,0xFD,0x18,0x0C,0x2F,0x9E,0x29,0x63,0x15,0xC9,0x1D,0xB6,0x12,0x33,0xDD,0xAC,
+0xAC,0x9D,0x27,0x89,0x9A,0xBE,0x02,0xAE,0xDE,0x9B,0x25,0xB2,0xC3,0x96,0x48,0x48,
+0xE7,0xD1,0x54,0xF0,0xD0,0x62,0x9B,0xCD,0xB0,0x00,0x42,0x65,0x32,0x99,0xE4,0x44,
+0xF2,0xB3,0x1C,0x28,0x9B,0xC9,0xED,0x0A,0x1B,0x37,0x2F,0x10,0x89,0x54,0x0A,0xC2,
+0x71,0x19,0x20,0xB1,0x45,0xC7,0x7F,0x1C,0x19,0x38,0x12,0x1A,0xA5,0xFC,0xF6,0x8E,
+0x8F,0xBB,0x36,0x8B,0x12,0x0C,0x0A,0x11,0x7B,0x52,0x7A,0x61,0x2F,0xD5,0x56,0x5A,
+0x32,0xF5,0x32,0xAF,0xB3,0x52,0x31,0x3F,0xA7,0x67,0xE1,0x49,0x10,0xC5,0x80,0xDB,
+0x6B,0x8A,0x64,0xC5,0xAC,0x66,0xCC,0x77,0x81,0x9E,0x93,0x46,0x33,0x50,0x76,0x95,
+0x86,0xFC,0xC9,0x9E,0xAD,0x11,0x23,0xD3,0xB1,0xC5,0x1F,0x73,0x53,0xB3,0xF3,0xAA,
+0xEC,0x9A,0x0F,0x20,0x15,0x60,0x3F,0xC1,0xBE,0xFE,0x70,0xC3,0x4D,0xC0,0x8E,0x12,
+0xC8,0xED,0x73,0xE9,0xE6,0xBA,0x55,0x14,0xB4,0x4E,0xFF,0x41,0x7B,0x64,0x69,0x68,
+0x8E,0x5C,0xA8,0xF9,0x74,0x73,0x84,0x15,0x03,0x6B,0xE3,0x8C,0x35,0xD9,0x4D,0x6C,
+0x9C,0x6F,0x8D,0xEA,0x27,0x80,0x3A,0x4A,0xD6,0x24,0x97,0x3A,0xE8,0x7E,0x1D,0x2C,
+0x5A,0x9F,0x50,0xD4,0xEC,0x87,0x57,0x1B,0x87,0xDF,0x13,0x68,0x85,0x56,0xCF,0x66,
+0x0D,0xF6,0x94,0x60,0xE7,0xCD,0xBA,0xB0,0xC3,0x4C,0x09,0x1C,0xB9,0x79,0xD6,0x41,
+0xF0,0xBF,0xB8,0xED,0x7F,0x39,0x69,0xBE,0xB6,0x41,0xC2,0x4B,0x70,0x26,0x05,0xE4,
+0xBF,0x49,0x9C,0xE8,0x39,0xC3,0x28,0xA6,0x70,0x27,0xA8,0xF5,0xA2,0xBC,0x5F,0xA6,
+0xB6,0x0E,0x63,0xFD,0xB8,0x18,0xDC,0x94,0x43,0xB6,0x44,0xDC,0x13,0xFA,0x4F,0x7D,
+0x6D,0x3C,0x97,0x7C,0x96,0x98,0xDA,0xD5,0xDF,0x5E,0x78,0xA4,0xCB,0xEB,0xEB,0x62,
+0x48,0xAC,0x75,0xC7,0x93,0xD7,0xFE,0x23,0x2A,0xA9,0xFE,0x33,0x07,0x02,0xCC,0x98,
+0xDF,0x83,0x9F,0xF4,0xA9,0x29,0xE8,0x81,0x2F,0x22,0x1E,0x01,0xC7,0xE9,0x2E,0xC6,
+0x40,0x0C,0x14,0xA0,0x70,0x4B,0x4F,0x47,0xBC,0xF1,0x4D,0xC9,0x7F,0x1B,0x0F,0xE6,
+0xBB,0xF3,0xCB,0x94,0x81,0xB2,0x34,0xB4,0x65,0x4F,0x36,0xD3,0x2E,0x1C,0xC4,0x8B,
+0x7D,0x03,0x16,0xAA,0x88,0xDB,0xC8,0x39,0xB3,0xCA,0x22,0x79,0x2A,0x63,0xA2,0x05,
+0x65,0x9C,0xF6,0x1B,0xFA,0xDA,0x56,0xDE,0xEC,0xCF,0x94,0x8D,0x2D,0x23,0x0B,0x2D,
+0x08,0xAB,0x5D,0x6E,0x09,0x00,0x3C,0x0B,0x4E,0x82,0x16,0x66,0x90,0x67,0xDE,0x52,
+0xCB,0x06,0x49,0x5E,0x22,0xCF,0x1E,0xBC,0x40,0x7C,0x24,0xC0,0xF4,0xFB,0x3D,0xE3,
+0x9A,0x88,0x6E,0x24,0xF2,0x56,0x52,0x6D,0x94,0x3B,0x0C,0x7C,0xA6,0x23,0xFF,0x05,
+0x17,0x97,0x14,0xEA,0x7E,0x7B,0xC9,0xCD,0xE7,0x4D,0x7D,0x3F,0x8C,0xCD,0x9E,0x12,
+0xA7,0x56,0xE1,0x4B,0x0A,0xA1,0xCF,0xD6,0x95,0x4C,0xE3,0xD8,0xE7,0x95,0x1F,0xDE,
+0xC1,0x83,0xBE,0x6F,0xAA,0xC0,0xA8,0xDE,0xD4,0xDA,0x97,0x10,0x29,0x29,0x4F,0x87,
+0xD7,0x7D,0x84,0xCD,0x0E,0x2F,0xA9,0xA9,0xE4,0x19,0x83,0xBD,0x94,0x2D,0x01,0xA3,
+0x15,0xAA,0x1E,0xE5,0x86,0x8C,0x54,0x76,0x71,0xBC,0x67,0x6C,0x65,0x37,0x52,0x35,
+0x16,0xCA,0x02,0x2F,0x13,0x31,0x1B,0xE5,0xC7,0xC8,0xB2,0x23,0x8A,0x3E,0x28,0xAB,
+0xB4,0x48,0xE9,0x62,0x7B,0x24,0x3D,0x7B,0x21,0x1B,0x27,0xB1,0x81,0x65,0x63,0x7B,
+0xB8,0x47,0x45,0x93,0x70,0xA8,0x51,0x39,0x43,0x5C,0x62,0xE7,0xA2,0x74,0x45,0x79,
+0xA9,0x64,0x47,0xB5,0x02,0x8B,0x6C,0xAB,0xED,0x70,0x7F,0x30,0x98,0x1B,0x1B,0xB8,
+0x58,0x5F,0xF4,0x0C,0x33,0xD9,0x22,0x4F,0x9C,0x25,0x1F,0x55,0xE0,0xF8,0x4E,0x15,
+0x3B,0x6A,0x99,0xA3,0xDC,0x6D,0xF3,0x33,0x58,0x50,0x54,0xFD,0xB3,0x6B,0x9D,0xDD,
+0x64,0xDC,0x6D,0xA6,0xD3,0x6F,0xF9,0x0E,0x93,0x57,0x39,0xAC,0x17,0x11,0xAB,0x3A,
+0x50,0xED,0x7C,0xB3,0xE2,0x3D,0xB7,0xEA,0x7D,0x9A,0xBF,0x17,0x2E,0x44,0x1E,0x4C,
+0x26,0x46,0x37,0x74,0xA1,0x4C,0xC4,0x9C,0x81,0x32,0xF3,0x3B,0xF0,0x79,0x71,0xC3,
+0x13,0x2A,0x30,0xA4,0x08,0xD6,0x92,0x20,0xD0,0xE2,0x5C,0x42,0xEC,0xCE,0x54,0x0E,
+0x3C,0xB7,0xA1,0x27,0xC6,0x5B,0xE8,0x3F,0x27,0x00,0xFD,0xC5,0x35,0x9E,0x6A,0x4A,
+0xE8,0x9E,0x01,0xAD,0xB8,0xDC,0x10,0xAF,0xAF,0xB2,0xF5,0x7A,0x74,0x28,0x8A,0x91,
+0x5F,0x82,0xCC,0x88,0x2E,0xC7,0x90,0x03,0x33,0x7E,0xED,0x26,0x13,0x46,0x11,0x46,
+0xDB,0x72,0x28,0x3C,0x2C,0xB0,0xCD,0xF5,0x61,0xFA,0xBC,0xDD,0xD7,0x3F,0xED,0xBD,
+0x43,0xF3,0x74,0x9A,0x97,0x36,0x23,0x38,0x24,0x54,0x03,0x47,0x84,0xAC,0x3E,0x75,
+0x99,0xE8,0x72,0xEE,0x39,0x84,0xDC,0xC4,0x2A,0x51,0xCA,0x1A,0x1C,0x4A,0xE0,0xEA,
+0xFF,0x3D,0x2D,0xCA,0x20,0x14,0x08,0xF7,0x29,0x05,0x34,0x98,0x42,0x71,0xCE,0x4B,
+0xAB,0x59,0x4D,0xBA,0x77,0x80,0xF8,0x79,0x16,0xB4,0x06,0xCC,0xFD,0xD1,0x8C,0xAA,
+0x12,0x77,0x26,0x61,0x38,0x55,0x4E,0x0D,0x3F,0x58,0x35,0x5D,0xE9,0x07,0x09,0x00,
+0x01,0x69,0x2E,0x48,0xF7,0x09,0xA6,0xDB,0x63,0xD9,0xAD,0xFB,0x7A,0xBA,0x9C,0x4F,
+0x33,0xD8,0x11,0x1C,0x34,0xF1,0x8B,0x0F,0x07,0x85,0x32,0xD9,0xE6,0x0B,0xF8,0xAC,
+0xE4,0x91,0xAD,0x5C,0xB0,0xF6,0xB3,0xD2,0x64,0xB5,0x98,0x2B,0x60,0xFE,0x0F,0x3B,
+0x66,0xE1,0x67,0xA9,0xC2,0xD5,0x8E,0x40,0xD8,0xFC,0x4F,0x6B,0x0C,0xCB,0xDF,0x3C,
+0x8D,0x2B,0x42,0x43,0x37,0x57,0x44,0x30,0x86,0x5E,0xC6,0xEB,0x7F,0x73,0xC1,0x41,
+0x8A,0xF6,0x7A,0xC7,0x84,0xFB,0x09,0x80,0x8A,0x78,0x1E,0x90,0x28,0xB7,0xA8,0xF5,
+0x02,0x09,0x32,0x82,0x15,0xC8,0x20,0x6C,0x56,0x55,0x9D,0xA0,0x86,0x08,0x32,0xB0,
+0x85,0x99,0xCA,0xFC,0x59,0xBB,0x59,0x27,0xEB,0x6B,0xA5,0x44,0xC5,0x1A,0xDE,0xAE,
+0x19,0xA5,0xB2,0x14,0x81,0xA4,0xFD,0x36,0x6A,0xB0,0x51,0x76,0x45,0x1C,0x9F,0x80,
+0x70,0x1F,0x5D,0x0B,0x3A,0x22,0x13,0xFB,0xFB,0x2D,0x7E,0xF5,0xE4,0xAF,0xF4,0x69,
+0xB6,0x75,0xE3,0x6D,0xE8,0x60,0x49,0x61,0xFE,0x62,0x5A,0x03,0x1E,0xEE,0xEC,0x2F,
+0x41,0xCE,0x7E,0x95,0xCF,0xA0,0xD9,0x8B,0xC2,0x87,0x96,0xD5,0x5A,0x91,0x51,0xFA,
+0x05,0xD4,0x0A,0x06,0xF3,0x87,0xC0,0xA4,0x76,0xD0,0x52,0xBC,0x10,0x7C,0xFA,0xF1,
+0xC5,0x3E,0x9A,0x21,0x7F,0xAA,0x5B,0x04,0xEF,0x53,0x6E,0x16,0xAE,0x42,0x5F,0x62,
+0x10,0x4A,0x2C,0x6E,0xA2,0xEA,0x0B,0xA3,0xFC,0x41,0x4B,0x25,0x5D,0xFC,0x00,0x31,
+0x88,0xCB,0x70,0xC8,0xDA,0x94,0xC8,0xBA,0x78,0xD5,0x9B,0xE1,0xDD,0xFA,0x41,0x1F,
+0x86,0xF9,0xD6,0x36,0xBE,0x25,0x2B,0x26,0x48,0x16,0x8F,0x4C,0x12,0xD8,0xF6,0x34,
+0x75,0xFF,0x6F,0x80,0x60,0xC3,0xB4,0xBE,0xBC,0xA0,0xD0,0x49,0x06,0x0E,0x73,0x9E,
+0x2A,0x49,0x9B,0x85,0x67,0xEB,0x1D,0xFE,0x0D,0xB8,0x30,0xD6,0x07,0x90,0x94,0xEC,
+0x7A,0x90,0xDF,0xBB,0x35,0x20,0x19,0xC6,0xB6,0x9D,0xD2,0x46,0x96,0x89,0x0D,0x66,
+0xA3,0xEB,0xC5,0x05,0x64,0x4D,0xD2,0xC1,0x82,0x66,0x0D,0xB9,0x6F,0xF2,0xFE,0x97,
+0xEC,0x23,0x25,0xE3,0x4D,0x5E,0xDA,0xDF,0xD1,0x95,0xB3,0xE6,0x0A,0x38,0x69,0x85,
+0xE9,0xC3,0x17,0x68,0x8D,0x00,0x38,0x34,0xE2,0x02,0x59,0xC9,0xF4,0x2E,0xCB,0xBF,
+0x18,0xF8,0xA4,0xD1,0x89,0x8E,0x5E,0x4B,0x9F,0x71,0xE1,0xD7,0x63,0xC4,0xE4,0x8C,
+0x76,0x9F,0x73,0x4A,0x78,0x82,0xF2,0x44,0xE6,0x3A,0x92,0x9B,0xBF,0x5D,0x87,0xC6,
+0xE2,0x11,0x83,0x1D,0xDB,0x45,0x5A,0x73,0x6B,0xC7,0xBE,0xD2,0x7C,0x49,0x2A,0xF6,
+0xD3,0xC0,0xA0,0x83,0x58,0x6A,0xCB,0xEE,0x1A,0x92,0xDE,0xB7,0x43,0xEF,0x29,0x39,
+0xCF,0xB1,0x18,0x91,0x50,0x40,0x68,0x93,0xB1,0xF1,0xE7,0x96,0x9B,0x21,0xF0,0x0F,
+0x68,0xD3,0xC1,0x57,0xC4,0x2C,0xB5,0xC9,0x5C,0x68,0x9F,0xAF,0x8E,0x69,0x92,0xD7,
+0xC2,0xE3,0xA2,0xA5,0xE9,0xB1,0xDB,0xA8,0xF7,0x0B,0xA6,0x8E,0xA1,0x4E,0xAE,0xCE,
+0x81,0x24,0xEE,0xB2,0x22,0x63,0x55,0x01,0x8F,0x37,0x3A,0x66,0x2C,0xE0,0x12,0x89,
+0x78,0xAD,0xD5,0xB4,0x07,0xD4,0x98,0x1D,0x36,0x31,0xC9,0xD0,0xBD,0xF9,0x8B,0x03,
+0x72,0x22,0x57,0x04,0x31,0xAE,0x7F,0xB9,0xFF,0x15,0xB5,0xA7,0x67,0x93,0x5E,0xF0,
+0x47,0x4E,0x50,0xD4,0x79,0x53,0x60,0x8D,0xD3,0xB6,0xA2,0xC0,0xBB,0x0A,0x3D,0xBA,
+0x77,0xC2,0x65,0x8F,0x19,0x6C,0xE5,0x6E,0x88,0x5B,0x0F,0xB6,0xCC,0xE5,0x99,0xBB,
+0xBD,0xA7,0x77,0x18,0x65,0x9C,0x40,0x08,0x9D,0x52,0xF0,0xF1,0xD1,0xCC,0x5B,0x04,
+0x61,0x3C,0x5F,0x2D,0x5A,0x1D,0x96,0x18,0xB9,0xEF,0xF4,0xBF,0x8F,0xF7,0x75,0xA5,
+0xDD,0xF2,0x06,0x7D,0xC3,0x04,0x1C,0x89,0x3E,0x2F,0xDA,0xF9,0x14,0x2B,0x40,0x8D,
+0xDF,0xCF,0x0C,0x72,0xEF,0x48,0xE0,0x21,0xA7,0xAC,0xE6,0x53,0x1A,0xB9,0x56,0x53,
+0x5C,0x50,0x66,0xC8,0x92,0xCA,0xB4,0x1E,0x8E,0x7E,0xAA,0x1D,0x99,0x67,0x5A,0x8D,
+0x07,0x5B,0x2D,0x18,0x74,0x19,0x26,0x8B,0xA8,0x16,0x34,0x08,0x1B,0x2A,0xB1,0x2F,
+0x0E,0xB4,0x57,0x86,0xC2,0x6D,0x69,0x5E,0xE7,0x83,0xA7,0xB5,0x7B,0xE0,0xAD,0x2C,
+0x14,0x45,0x04,0x10,0x57,0xC8,0xB8,0xBA,0x1A,0x0B,0x78,0x16,0xAC,0xC8,0x37,0xEE,
+0x10,0xF8,0x4A,0x34,0x67,0x0B,0x15,0xAE,0x1B,0xAF,0x0F,0xF9,0x52,0x6A,0x0D,0xF8,
+0xAC,0x36,0x1A,0x6D,0x26,0x9D,0xDD,0xDA,0x7C,0x0F,0x07,0x98,0x87,0x4E,0x52,0x9E,
+0xF4,0x5D,0x9B,0xA1,0x54,0x9C,0x3A,0x44,0x7A,0x7B,0x1C,0x42,0x46,0xEF,0xA7,0x2E,
+0x1A,0x77,0xFA,0xB6,0x27,0xEA,0x79,0x35,0xE1,0xF7,0xBC,0x6F,0x59,0x21,0xDD,0xA3,
+0xF7,0x3D,0x51,0xBD,0x63,0x33,0x47,0x65,0x21,0x0D,0xF1,0xEF,0xFB,0xA1,0x83,0x2A,
+0x40,0x21,0x74,0x70,0x32,0xE3,0x3E,0xCA,0x77,0xA4,0x4D,0x75,0x97,0x71,0x84,0x1F,
+0x7D,0xFF,0x1B,0xFF,0xCE,0x4B,0x12,0x86,0x04,0xE7,0x3B,0x04,0x3C,0xB6,0xCF,0x69,
+0x28,0xC6,0xAE,0x89,0x20,0x86,0xA9,0x00,0x4A,0xD6,0xDF,0x56,0x0D,0xA3,0xDE,0x5D,
+0x52,0x62,0x98,0x6E,0xEB,0x81,0xF8,0x6D,0x40,0xD9,0xE2,0x54,0xBB,0xA6,0x2A,0x02,
+0xC1,0x31,0x4B,0xA6,0x2F,0xF4,0x50,0x26,0x91,0x36,0x9E,0xE0,0x8E,0x09,0x47,0x61,
+0x22,0x49,0x1E,0x0B,0x5E,0xA1,0x35,0x46,0xDF,0x07,0x7A,0xB2,0xB5,0xB0,0xF4,0x90,
+0x4D,0x73,0x40,0xCA,0xF0,0x8D,0xE2,0x5B,0xE2,0x75,0xE8,0x91,0x96,0x96,0xF6,0x81,
+0xE8,0x2C,0x89,0x19,0xA5,0x65,0xC9,0x3F,0x4B,0x72,0xA8,0xB9,0x88,0xBF,0xFE,0x92,
+0x48,0x93,0xCB,0xF8,0x9A,0xD4,0x9D,0x0D,0xBB,0x25,0x26,0x2D,0xEC,0xCF,0x9E,0xC6,
+0x73,0xCD,0xE5,0x59,0x99,0x80,0x1F,0xF3,0x6F,0x3C,0x15,0xBD,0x39,0xEB,0xC1,0xA0,
+0x95,0x55,0x3B,0xC6,0x97,0x85,0x42,0x3A,0x90,0x92,0xE9,0x0F,0x22,0x9F,0xC7,0x7A,
+0x06,0x06,0xE8,0x0E,0xD2,0x2B,0xD8,0x85,0x7E,0x29,0x24,0x89,0xA3,0x39,0x9B,0xE2,
+0x7F,0xC2,0x14,0xF5,0x80,0xAF,0x23,0xD4,0x23,0x2B,0xD2,0xFE,0x53,0x8D,0x7F,0x66,
+0x11,0xA5,0x8F,0x22,0x1C,0x63,0x7F,0xCC,0xA3,0xBD,0x7E,0xE5,0x4F,0xA8,0xB2,0xD1,
+0xA7,0xE4,0x6F,0xF9,0x94,0xD1,0xC0,0xC4,0x5B,0xC3,0xEE,0x62,0x66,0x22,0x12,0x05,
+0x31,0x57,0x37,0x03,0xE5,0x84,0xA5,0xA4,0x93,0x10,0xBD,0xF1,0xD8,0x87,0x81,0x3B,
+0x8E,0xF9,0xAD,0x46,0x39,0xA9,0x95,0x27,0xBA,0x81,0x51,0xC2,0x27,0xC2,0xC9,0xB3,
+0x4A,0xAE,0xC4,0xF2,0x35,0x8F,0xEE,0xFF,0xF7,0x32,0xE1,0x6E,0xFA,0x46,0xF1,0xB4,
+0xF2,0xDD,0xDA,0x8F,0x6B,0x2D,0x6E,0x76,0x3D,0xC7,0x91,0xEC,0x30,0xAC,0xD4,0x5F,
+0xC7,0xB1,0x0A,0x88,0xD7,0x64,0x2E,0xA1,0x00,0xB5,0x03,0xCF,0x40,0x59,0x1E,0xDD,
+0x32,0x37,0xFD,0x1F,0xB4,0x54,0xDC,0x0B,0x38,0x31,0xDE,0xC8,0x09,0x19,0xA2,0x0A,
+0x83,0xAB,0x99,0xFC,0xD0,0x08,0xFE,0x94,0x15,0xF2,0x0A,0x30,0xB8,0x4D,0x9D,0x38,
+0x3E,0x38,0x0C,0xB3,0x8C,0x89,0x58,0x0C,0xFD,0x3D,0xDC,0x6C,0xA6,0x64,0x95,0x2B,
+0xC5,0x8C,0x05,0x82,0x4F,0x90,0x20,0x72,0xB8,0xA7,0x72,0xD3,0x9B,0x6B,0x9F,0x29,
+0x7B,0x7F,0x5A,0xD1,0x5C,0x82,0x13,0x57,0xE8,0x7A,0xD5,0x93,0xEF,0x24,0x29,0xFC,
+0x45,0xC1,0xFF,0x42,0xC5,0x01,0xB9,0x6B,0x73,0xF6,0x75,0xBE,0x05,0x03,0xB9,0x3C,
+0xA8,0x8B,0x54,0x49,0x71,0x56,0xD0,0xAF,0x6A,0xCA,0x5A,0x99,0x1F,0x90,0xCD,0x78,
+0xD7,0xCF,0xE9,0x9C,0x4D,0xB3,0x06,0x63,0xFA,0xED,0xB0,0x59,0xA4,0x68,0x50,0x8F,
+0x96,0x35,0xF1,0xDA,0x48,0xFC,0xF0,0x47,0xA0,0x3F,0x2A,0x1B,0xCE,0x0E,0xEE,0x49,
+0x25,0x94,0x9A,0x33,0xD9,0x61,0x73,0x68,0x4E,0x84,0xE7,0x9D,0x74,0x11,0x01,0x20,
+0x23,0x14,0xDB,0x1D,0x58,0xBA,0x41,0x9C,0xEA,0x5C,0xF6,0x82,0x48,0xF9,0x79,0xBC,
+0x17,0x25,0xCE,0x0C,0x51,0xD3,0xCC,0x60,0x8B,0x88,0xE5,0x39,0x12,0x6D,0xA4,0xD0,
+0x01,0xDB,0x6C,0x36,0x62,0x44,0xE3,0x8A,0x69,0x48,0x0E,0x67,0xF2,0xE6,0x96,0xD5,
+0xCB,0xBE,0xFB,0x24,0x31,0xB7,0xBC,0x34,0x61,0x61,0x10,0x74,0x3A,0x00,0x76,0x9A,
+0xB0,0x47,0x08,0xD5,0x05,0x4C,0x43,0xEB,0xAA,0x30,0x17,0x19,0x41,0xBE,0x6C,0x43,
+0xA9,0xD6,0x91,0x5F,0xBE,0x69,0xD3,0x09,0xAE,0x62,0x2F,0xD2,0x98,0x80,0x28,0x13,
+0x37,0xD7,0x76,0x2D,0x0F,0x71,0x4C,0xE9,0x07,0x65,0x6F,0xFA,0x2E,0x85,0xDC,0x4C,
+0xE1,0xC3,0xF3,0x87,0xFB,0xC7,0x49,0xB6,0x98,0xBB,0xF7,0x1C,0x28,0x33,0x65,0xBF,
+0xC3,0x0C,0x44,0xAC,0xCB,0x04,0xE4,0xA2,0x7B,0xDF,0x6B,0xAD,0x1A,0xCD,0xC3,0xB1,
+0xD9,0xFD,0x17,0x3A,0x3C,0xE6,0x63,0x03,0xE6,0x27,0xD0,0x5A,0xF5,0xB7,0x5D,0xB8,
+0x77,0x70,0xAB,0x7D,0x44,0xDA,0x8B,0x9F,0x68,0xEC,0x79,0x88,0x32,0xA0,0x11,0xFB,
+0x50,0x5F,0x97,0x64,0xEF,0xB9,0xAA,0xA6,0x06,0xC1,0x18,0x15,0x02,0x52,0x72,0x51,
+0x18,0x4A,0xF5,0xBC,0x02,0x20,0x93,0xDE,0xDB,0x55,0x42,0x79,0x60,0x94,0xAB,0xF6,
+0xD6,0x92,0x2C,0x8A,0xA9,0x43,0xB2,0xE7,0x78,0x5D,0x3F,0x53,0x11,0x86,0x13,0xEA,
+0x70,0xAD,0x2F,0x45,0xD8,0x16,0xD7,0x87,0xE9,0xDE,0xA2,0x7C,0xC0,0x18,0x30,0xDB,
+0x64,0x6E,0x82,0x75,0x55,0xEB,0x9E,0xAB,0x41,0x7D,0x95,0xBB,0x4E,0x4F,0xC0,0x4F,
+0xFD,0xB2,0xE1,0x3F,0x2C,0xA0,0xD2,0xD8,0xED,0x8C,0x9A,0xB7,0x29,0xD4,0x17,0x21,
+0x80,0xCB,0x53,0xE0,0x14,0x7D,0x56,0xDF,0x53,0xEA,0xF0,0x71,0x1E,0x77,0xBF,0xE6,
+0x12,0xC5,0x45,0x3E,0x8D,0xFE,0xFC,0xE3,0xAF,0xC6,0x58,0x3D,0x23,0x78,0xB5,0xE4,
+0xCE,0x5E,0x70,0x16,0x0A,0x3E,0xBA,0xCD,0x25,0x5F,0xC9,0x24,0xED,0x28,0xEC,0x58,
+0xF5,0x00,0x5E,0xB7,0x2E,0x83,0xF4,0xC9,0xF3,0x60,0xD9,0xA5,0x76,0x1D,0xC4,0x84,
+0xDC,0x1D,0x9C,0x08,0x3B,0x8A,0xB3,0x36,0x56,0x1C,0xBF,0x55,0x13,0x8A,0xD6,0x4E,
+0x33,0x6A,0x38,0x09,0x60,0x67,0xC5,0x9B,0xD3,0x7C,0x5C,0x6A,0x9F,0xD1,0xE3,0x7E,
+0xAA,0xB6,0x5B,0x43,0x4C,0xC4,0xA2,0x8C,0xCC,0x34,0x68,0x97,0xF3,0x01,0xE4,0x4B,
+0xC0,0x6C,0x8E,0xB0,0x85,0xE0,0xD5,0xF0,0x2B,0x02,0xCC,0xED,0x7C,0xB1,0x66,0x41,
+0x40,0xE0,0xB0,0x2A,0xE6,0x1A,0x59,0x67,0x61,0xBB,0xBB,0x90,0x0C,0xA7,0x44,0x5D,
+0xF6,0x35,0xC4,0x65,0x3B,0x5A,0xFE,0x37,0x52,0xA9,0x9E,0x83,0xB2,0x54,0x1B,0x0E,
+0x66,0xF5,0x2E,0x42,0xB7,0x77,0x5E,0xAC,0xF8,0x2A,0xA2,0x1A,0x8C,0xEA,0xBE,0x9D,
+0x12,0xB1,0x34,0xD1,0x8B,0x50,0x71,0xB5,0x91,0x7D,0x66,0xAE,0x61,0xA0,0x15,0x96,
+0x8F,0x46,0x8F,0x29,0xAC,0x90,0x9B,0x25,0x47,0x98,0xAA,0x92,0x1E,0xE4,0xA8,0x43,
+0x31,0x80,0xE5,0x4F,0x7E,0xD2,0x01,0x7F,0xB1,0xD7,0x8E,0x97,0x5F,0x1E,0xB0,0x05,
+0xDE,0xE9,0x5F,0x50,0xC5,0x54,0xCC,0x91,0x32,0x4A,0xA1,0x06,0xEC,0xBF,0xDB,0xEC,
+0xA6,0x75,0x63,0xB8,0x1D,0x4B,0xDD,0x35,0x00,0x91,0x55,0x87,0xEA,0x3F,0x9A,0xC2,
+0x7B,0x19,0x39,0x2C,0xC9,0xF0,0xCE,0x54,0x8D,0xF8,0xA9,0x8E,0xDE,0x0E,0x8F,0xD3,
+0x49,0x1C,0xD9,0xA7,0x09,0xAE,0x25,0xB6,0xA2,0x6F,0x43,0xBD,0xC8,0xF0,0x2D,0xE9,
+0xA9,0x53,0x11,0x41,0x20,0xBD,0x3B,0xBE,0xFD,0x9C,0xFD,0xEE,0x02,0x95,0xBA,0xFB,
+0xB3,0x8A,0x6A,0xFF,0x71,0xD0,0x3C,0x75,0x02,0x67,0x22,0xDA,0x79,0x6C,0x49,0x0A,
+0xF7,0xDA,0xB3,0xC1,0x23,0x1B,0x04,0x71,0x92,0x42,0xC0,0x61,0x60,0xFD,0xD0,0x80,
+0x03,0x85,0x05,0xC4,0x24,0x33,0x44,0xD8,0x0D,0x5A,0x20,0xD0,0xFE,0xFC,0x37,0xF2,
+0xBA,0x76,0x03,0x72,0xFA,0xD5,0xDC,0x47,0x08,0xEC,0x7F,0x24,0x28,0xE8,0xB2,0x58,
+0x1C,0x78,0x31,0x8C,0x9E,0x64,0x40,0xA4,0xA5,0x2F,0x6B,0x14,0x0A,0x27,0x05,0x73,
+0x82,0x71,0xDE,0xF6,0x66,0x93,0xFB,0x39,0x22,0xCD,0xCA,0xE3,0x10,0xD6,0x56,0xE5,
+0xCE,0x32,0x19,0xE1,0xAD,0x41,0x52,0xB7,0xCA,0xF1,0x56,0x9B,0xBE,0x5B,0xEA,0xA2,
+0xAD,0x98,0x29,0x13,0x80,0xDC,0x33,0xD9,0xEB,0x92,0x6F,0x30,0x99,0x74,0xD6,0xBB,
+0x74,0x3F,0x4B,0xD5,0x14,0xB0,0x69,0x04,0xD2,0x0B,0x17,0xDD,0xD1,0x61,0xB4,0x63,
+0xCC,0x23,0x3A,0xC7,0x1C,0x9A,0x14,0xA7,0xF3,0x68,0x2E,0x76,0x1F,0xB9,0x6D,0x55,
+0xEF,0x12,0xEB,0x59,0x9F,0xB5,0x89,0x36,0x96,0x3D,0x4E,0x07,0xB9,0x86,0x6E,0x9A,
+0x1F,0x86,0x65,0x0E,0x3C,0x72,0xBE,0x9E,0xDF,0xC0,0x62,0x8A,0xAD,0x45,0xC3,0xAA,
+0xC8,0xE8,0x02,0x95,0xCD,0x7E,0xB1,0x32,0x93,0x8B,0x11,0xF3,0x34,0x99,0xA0,0xE0,
+0x60,0x2F,0x35,0x36,0xAB,0xB8,0xDB,0x8C,0x17,0x56,0x16,0xCB,0x49,0xE0,0x12,0x3F,
+0x6A,0x2D,0x08,0x39,0x87,0xF4,0x73,0x70,0xBD,0xD5,0x2A,0x52,0xDB,0xEE,0x04,0xE1,
+0x33,0x91,0xC6,0x69,0x1E,0xED,0xE2,0xFA,0xFB,0x15,0x04,0xD5,0x07,0x75,0x31,0xC9,
+0x1B,0x4D,0x5D,0x5C,0x21,0x6C,0xF2,0x2C,0xB5,0xA8,0x00,0xF1,0x3C,0x2B,0x1F,0x68,
+0x09,0x87,0x38,0xCB,0x5D,0x9C,0x94,0x89,0xF2,0xA1,0xFF,0xE4,0x15,0x36,0xDD,0xD7,
+0x3C,0xB7,0xB4,0x90,0x3D,0xA3,0x77,0x0C,0x84,0x4C,0x52,0xBF,0xFA,0x41,0x79,0xD6,
+0x3B,0x82,0xD8,0x40,0x75,0x5E,0x43,0x13,0xE3,0xEF,0x45,0x93,0x63,0x9D,0x1A,0x9C,
+0xB9,0x88,0x57,0xF0,0x43,0x24,0xE7,0xF4,0x94,0xCB,0x39,0x5A,0x09,0x47,0xCF,0x6F,
+0x85,0x44,0xB2,0x26,0x3F,0xD4,0x81,0x51,0xF5,0xE1,0xD7,0x4D,0x95,0x7B,0x27,0x17,
+0x6E,0xE6,0x30,0x6B,0x57,0xC1,0x1F,0x77,0x67,0x32,0x42,0xAB,0xCE,0x70,0x6C,0xC7,
+0x72,0xE5,0x50,0xA1,0xC2,0x7C,0x8C,0x38,0x28,0x46,0x97,0x1D,0xC7,0x9F,0x16,0x59,
+0xE8,0x27,0x87,0x89,0x4A,0xDF,0x53,0xC5,0xF9,0xE3,0x73,0x88,0xDD,0x6E,0x45,0xCF,
+0xD2,0x31,0x79,0x2B,0xEE,0x30,0x24,0xC4,0x54,0x20,0x67,0xB8,0xD9,0xD3,0x0B,0xEB,
+0x8D,0x57,0xAC,0x0F,0x4E,0x51,0x2C,0xA3,0x9C,0xB6,0x13,0xF9,0x65,0x1D,0x5B,0xB2,
+0x78,0xE7,0x6D,0xAE,0x3A,0x8B,0x37,0xA5,0x7B,0xB7,0x8D,0x8B,0x3D,0x76,0xDA,0x7E,
+0x02,0x6A,0x72,0x60,0xB6,0xA6,0x97,0x3E,0x38,0xC1,0xFC,0xF8,0xD3,0x5C,0xBB,0x69,
+0x5C,0xE3,0xD0,0xE0,0x4C,0x26,0xDA,0xFE,0x06,0x18,0xAC,0xBC,0x3E,0x16,0x10,0x62,
+0x5B,0xD6,0xBC,0x30,0xE5,0xBC,0x66,0xA8,0x7F,0xC8,0x03,0xED,0x89,0x0A,0x35,0xAF,
+0x10,0xA0,0x17,0xF7,0xA6,0xCD,0x10,0xDB,0x53,0x60,0x4F,0x11,0xB4,0xD4,0x5A,0x20,
+0x01,0x94,0x26,0xE2,0x97,0x9F,0xF4,0x95,0xE8,0xAD,0xC9,0xFF,0xE1,0xED,0xEF,0x56,
+0xF5,0xCB,0x90,0xE7,0x98,0x9D,0xC9,0x9F,0xB9,0xAA,0xA4,0x34,0x9B,0x49,0xD9,0xB1,
+0x98,0xA8,0xA5,0x48,0x77,0x29,0xB5,0x4E,0x11,0xDF,0xEF,0xF0,0x08,0x1A,0x0A,0x79,
+0x2B,0x59,0x9E,0xF1,0x46,0x7B,0x51,0x00,0x74,0x8A,0x8F,0x81,0xEB,0x62,0x5F,0xD4,
+0x29,0x48,0xBD,0xD7,0x34,0x58,0xC3,0x3D,0xA3,0xA6,0x92,0x2F,0x84,0x58,0x01,0x15,
+0x21,0x5B,0xA3,0xFE,0x33,0x70,0x83,0x94,0x88,0x4E,0xF6,0x7A,0x21,0x07,0xC8,0xC6,
+0x41,0x0F,0xC7,0x8E,0x64,0xE4,0x0D,0x64,0xDC,0xFF,0xC4,0x45,0x81,0xB8,0x8A,0x27,
+0x1E,0x69,0x12,0xAA,0x7D,0x74,0x3E,0xB0,0x5E,0xAB,0x3A,0x46,0xBA,0xE6,0xA4,0x86,
+0x18,0xB3,0x09,0xDE,0xD3,0xC6,0xC2,0x4F,0x03,0xAE,0xF3,0x48,0x5C,0x7E,0x7A,0x19,
+0x44,0x2B,0x88,0x78,0x68,0x40,0x0F,0xA1,0x99,0x00,0x4C,0x0D,0xCF,0x2D,0xA9,0xD1,
+0xA0,0xAF,0x78,0xCC,0x6A,0x37,0xF9,0xFC,0x62,0x84,0x1D,0x5F,0xB6,0xE9,0x55,0x2A,
+0x6D,0x18,0x64,0xE9,0xFC,0x2C,0x55,0x7C,0x3E,0x48,0x05,0xC3,0xD8,0x8E,0xCE,0xFD,
+0xCD,0xCC,0x4D,0x63,0x82,0xAB,0xC5,0x84,0x81,0xFA,0x0D,0x4B,0x6E,0xCF,0x2E,0x26,
+0x5E,0xF2,0xF3,0xC6,0x51,0x38,0x96,0x4C,0xE4,0xAF,0x6D,0x3A,0xF8,0x7C,0x76,0xDC,
+0x16,0x7A,0x0C,0x83,0xC0,0x0B,0x7A,0x65,0xD4,0x82,0xEE,0xE6,0x47,0xD2,0xEC,0x99,
+0x2E,0x7D,0xD1,0x07,0x73,0xA7,0xCA,0x28,0xAF,0xA4,0x36,0xEA,0x83,0x85,0x85,0x2D,
+0x0B,0x96,0x1B,0xED,0x86,0x25,0xBA,0xE2,0x2F,0x06,0xBF,0xB4,0x3B,0xF6,0x9B,0x50,
+0xC1,0x14,0x6B,0x18,0xF4,0x06,0x28,0xDF,0x6F,0x4F,0x68,0x08,0x0E,0x9A,0x4B,0x57,
+0x7D,0xC3,0x22,0x58,0x70,0x01,0xF5,0xE7,0x9D,0x7F,0xC2,0x6B,0xFB,0x1C,0xBC,0xC0,
+0x42,0xF1,0x93,0x0C,0xB3,0xF9,0x21,0xCA,0xBF,0x23,0x5D,0x0F,0x4A,0x80,0xD8,0x23,
+0x4A,0xE2,0x8D,0x25,0x7C,0xA5,0xF7,0x22,0x19,0xA2,0xC5,0x53,0xF7,0x13,0x4D,0x6C,
+0x47,0x17,0x4B,0x59,0xE9,0x5A,0xE7,0xF4,0xF9,0x66,0x8C,0xCB,0xB9,0x56,0x75,0x90,
+0x71,0xF0,0x31,0xFD,0x66,0xD8,0xED,0x44,0x23,0x0C,0x7F,0x1E,0x70,0x2A,0x51,0xE7,
+0x39,0xEF,0xCC,0xC9,0x0A,0xDF,0xD8,0x94,0xFF,0x95,0x35,0x7D,0x5C,0x3D,0xF2,0x80,
+0x59,0x6A,0xF3,0x2A,0x86,0xEA,0xE8,0xCF,0x88,0x7A,0x34,0xD9,0x07,0x90,0x1F,0xF6,
+0x25,0xCF,0x03,0x4C,0xE3,0xF8,0x22,0x58,0x95,0x53,0x8B,0x1B,0x12,0x6F,0x16,0xB1,
+0x1A,0x19,0x82,0x5C,0x78,0xD0,0xFE,0x6D,0xCB,0x68,0x2A,0x35,0x36,0x6B,0xAB,0xFF,
+0x83,0x93,0x9B,0xCD,0xB6,0x89,0x42,0x3D,0x50,0xB4,0x02,0x00,0xB1,0x45,0x6B,0xB9,
+0xAF,0x6F,0xD7,0x65,0x8B,0x83,0x40,0x32,0x5E,0x26,0xDC,0x16,0x28,0x79,0xE8,0x13,
+0xC9,0xD1,0x11,0x0F,0xBC,0x2B,0x87,0x91,0x27,0x5B,0x03,0xA4,0x10,0x7E,0x35,0x97,
+0x38,0x7D,0x1D,0x00,0xDB,0xFC,0xE9,0x0A,0xFB,0xC2,0x49,0xC7,0x69,0x0D,0x7E,0xDB,
+0x9B,0xD5,0xDA,0x37,0x55,0x0C,0x7D,0x5D,0x38,0xD6,0x79,0x6A,0xE4,0x21,0x83,0x92,
+0x18,0x44,0xF5,0xAA,0x84,0x2F,0x4C,0xC3,0x07,0x70,0xB6,0x69,0x95,0x41,0xD6,0xF7,
+0x10,0xE7,0xDF,0xD7,0xF5,0x97,0x50,0xD1,0xDF,0xBE,0x80,0xB0,0x3E,0x78,0xB5,0xD6,
+0x84,0x3A,0xB3,0x8D,0x97,0x4E,0xF7,0x17,0xCA,0xF6,0x58,0xD2,0xD3,0x00,0x2C,0xEF,
+0xA9,0x54,0x2E,0xEC,0xA7,0x2D,0x5D,0xE5,0xE5,0xD1,0x41,0xEE,0x78,0x39,0x4F,0xCE,
+0x62,0xDA,0xFC,0x45,0x60,0x61,0x1E,0xF2,0x68,0x7F,0x06,0x52,0x00,0xA5,0x73,0x26,
+0x9A,0x47,0x0B,0xFE,0x8F,0xFF,0x17,0x88,0x99,0x65,0x90,0x01,0xF7,0x04,0x91,0xA1,
+0xFE,0xA4,0xBA,0x62,0xBD,0x59,0x19,0x76,0x56,0x47,0xBB,0xB6,0xC7,0x10,0x52,0x0C,
+0x20,0x3B,0x5C,0xFA,0xBB,0xE0,0xEA,0xC0,0x42,0x91,0x11,0x33,0x33,0x4F,0xE4,0x09,
+0x27,0x92,0x74,0xBA,0x0D,0x14,0xB5,0xC5,0x43,0x0F,0x63,0xD4,0x82,0xAF,0xFC,0x96,
+0x75,0x96,0xBF,0x82,0xD4,0x50,0xE5,0xFB,0xD2,0x16,0xE9,0x4D,0x39,0x4D,0xD9,0x06,
+0x24,0x5D,0xD2,0x85,0xAF,0x4A,0x3C,0x45,0x2B,0x6D,0x18,0xBE,0x0D,0x92,0x22,0xF9,
+0x0D,0x55,0xC1,0x9B,0x67,0xAA,0x73,0xA3,0x4E,0xA7,0x0A,0x29,0x5E,0x2C,0xD1,0xA6,
+0xCD,0xB7,0x9F,0x70,0x87,0x98,0x76,0x28,0xB0,0xB1,0x30,0x8B,0x6D,0xC6,0x46,0x89,
+0x19,0xD6,0x24,0x63,0xDD,0x45,0x1A,0xBC,0x81,0x85,0x21,0x9E,0x64,0x3A,0x2F,0x04,
+0xC1,0x72,0x3B,0x72,0xE1,0x3D,0x86,0x54,0x01,0x83,0x0F,0xDF,0xE5,0xCE,0xF4,0x36,
+0x7A,0x9C,0xBD,0xBF,0x5B,0xD2,0xEF,0x4B,0xA0,0x30,0xE6,0xB4,0x74,0xE1,0x69,0xB5,
+0xA8,0xC6,0xFF,0x25,0x31,0x6C,0x29,0x2D,0x5A,0x71,0xA0,0xAC,0x71,0xC5,0x26,0x43,
+0x8F,0x56,0x3F,0xCF,0x8A,0xF1,0xDE,0xD5,0x1E,0x0E,0x75,0x11,0x4D,0x09,0xC3,0x95,
+0xB3,0x4F,0x18,0xE0,0x90,0x85,0x9A,0x46,0x54,0xE3,0x7E,0xBA,0xF9,0xCD,0x94,0xFC,
+0x3F,0xD4,0x35,0x40,0x7A,0x15,0x5A,0x61,0xEA,0xDD,0xED,0x1F,0x60,0xF1,0x17,0x56,
+0xE2,0x84,0x75,0xE7,0x0E,0xA3,0x8F,0x2E,0x19,0x63,0xBE,0x40,0x73,0xD4,0x05,0x65,
+0x78,0xC1,0xCA,0x49,0x33,0xA9,0x8D,0x21,0xAD,0x98,0x8F,0x49,0xB0,0xAA,0x1C,0x1D,
+0xB7,0x29,0x96,0x9F,0x2D,0xA1,0x9E,0x08,0x3E,0x25,0xC0,0xDC,0xEC,0x32,0x9D,0xBB,
+0x74,0x04,0x6E,0x4B,0x9C,0x9E,0xAC,0x5C,0xA2,0x94,0x23,0xB8,0x88,0xAD,0xC1,0x99,
+0xF0,0x3C,0x69,0x96,0xD5,0x22,0x7B,0x1C,0x24,0x61,0xB4,0x4F,0xEB,0x07,0xF1,0x6B,
+0x82,0x01,0x4A,0x04,0xA5,0xE8,0xF9,0xE9,0x48,0x54,0xB3,0x9F,0x57,0xD0,0xB8,0x2B,
+0x77,0xCB,0xC8,0x74,0x6F,0xCD,0x12,0x03,0x3B,0xEC,0xCE,0x81,0x09,0x59,0x1A,0xAB,
+0xC4,0x86,0x64,0xC4,0xB2,0xF5,0x15,0x87,0x6C,0x28,0x7A,0xE8,0x05,0x81,0x3C,0xD0,
+0x55,0xAF,0x57,0x28,0x4D,0xBD,0x9D,0xC2,0xC2,0x97,0x3F,0x72,0xD9,0x02,0x11,0xE0,
+0x86,0x67,0xC4,0x7B,0xF3,0x2E,0xA3,0x67,0x71,0x01,0xC5,0x2A,0xA8,0x62,0x44,0x85,
+0xF8,0x9F,0x43,0xEB,0xDA,0x8E,0x77,0xED,0x30,0xB7,0x1E,0xCA,0x20,0x6A,0xF6,0x3A,
+0x6E,0x1F,0x58,0x47,0xC6,0x43,0xC0,0xC8,0x57,0xD9,0xC9,0x51,0xBC,0x72,0x3A,0x66,
+0x6C,0x42,0x2F,0xB1,0x36,0xA7,0x44,0x7C,0x93,0xA0,0x32,0xAD,0xEE,0x23,0xBE,0x9D,
+0xD7,0xAC,0xA9,0x7C,0xB7,0xFB,0xDC,0xDA,0xC0,0x33,0xFA,0x7E,0xAB,0x9C,0x10,0x07,
+0x79,0x53,0x1B,0x80,0xAC,0xFD,0x06,0xAE,0x58,0xD5,0x65,0xA0,0xA5,0x55,0x15,0x5A,
+0x60,0x87,0x8B,0xB3,0x79,0xA2,0x60,0x8A,0x06,0xEE,0xC4,0x8E,0xA6,0xAB,0x41,0xD8,
+0x37,0x77,0x1F,0x3D,0x1D,0xC2,0x34,0xFA,0xB9,0x4E,0x25,0xCC,0x99,0x99,0xF0,0x8C,
+0x30,0xDE,0x37,0x7D,0x03,0xCA,0x27,0xD3,0xE6,0xEB,0xF6,0x05,0xCC,0xFD,0x18,0xA7,
+0x42,0xE3,0x14,0xEF,0x20,0xC8,0x36,0xF5,0xDC,0x84,0x37,0x5B,0x62,0xE0,0x34,0x70,
+0x73,0xAD,0x46,0x0B,0x1B,0x7B,0xC7,0x4C,0xA4,0x67,0x9A,0x0E,0x13,0x80,0x61,0x15,
+0x9C,0x7C,0xF2,0x77,0x2E,0x16,0xA4,0xE3,0xF7,0xF4,0x52,0xDD,0xD7,0xCB,0x14,0xBD,
+0x93,0x76,0xF0,0x4A,0x98,0xE2,0xFB,0xE6,0x53,0x8E,0xB5,0xEB,0x1C,0xA6,0x13,0xEC,
+0xA2,0x38,0xA2,0xAE,0xA9,0xF3,0xCF,0xF3,0x6A,0xDB,0xC3,0x5E,0xF2,0x20,0xDE,0x57,
+0xE1,0x4B,0xD3,0xD8,0x02,0xB8,0xB9,0x34,0xB4,0xE6,0x4C,0x31,0x0E,0x6C,0x76,0x7B,
+0x48,0x1D,0x49,0x64,0x6E,0xBF,0x8C,0xE4,0xA8,0x51,0x81,0x14,0x5F,0xC3,0xA6,0x02,
+0xB2,0xDD,0xC9,0x29,0xCC,0xE1,0x05,0x64,0xE2,0xBC,0x8A,0xBF,0x1B,0x93,0x7F,0x3C,
+0x3E,0x46,0xE4,0x89,0xD3,0x9B,0x88,0xAA,0xC8,0x52,0x9D,0xDE,0x68,0xE2,0x09,0x7F,
+0x4A,0x40,0x3E,0x92,0x12,0x6E,0x38,0x0B,0xA3,0x0A,0x51,0x5F,0x1A,0x7C,0x08,0x98,
+0xEA,0x27,0x5F,0x9A,0xC7,0x31,0x5E,0x2F,0x6D,0xB6,0x08,0x0F,0x5B,0x08,0x9E,0x50,
+0x4E,0x26,0xB0,0xED,0x39,0x0B,0x48,0x8D,0xD0,0xB2,0x2C,0x41,0x6B,0x1C,0x5D,0xFD,
+0xC6,0xDB,0x13,0x32,0xEE,0x91,0x8A,0xA5,0x21,0xA8,0xBA,0x12,0xFE,0xF8,0xF8,0x2C,
+0x53,0x94,0xAE,0xA1,0x8E,0x8D,0x89,0x6F,0xCE,0xA1,0x24,0x68,0x48,0x2D,0x8C,0x63,
+0x3B,0xB2,0xBB,0x3F,0x0C,0x66,0x2B,0x22,0xC5,0xFA,0xF4,0x23,0xAE,0xB8,0x5F,0xF1,
+0x1E,0xBC,0x48,0xCC,0x2E,0x7D,0xFF,0x98,0x9F,0xB9,0xA6,0x88,0x06,0x06,0xDD,0x69,
+0xEA,0xE3,0xFE,0xC9,0x29,0x55,0xBF,0x31,0x00,0xA1,0x46,0x39,0x98,0x07,0x3A,0x1B,
+0x53,0x10,0xF8,0x7F,0xF7,0xB3,0x27,0xAE,0x05,0x17,0x19,0xCD,0x4E,0x13,0xBF,0xB1,
+0xF5,0x1E,0xCA,0x81,0x93,0x02,0xBB,0x4D,0xA8,0xD4,0x0D,0xFD,0x6C,0xDC,0x08,0x9A,
+0x92,0x7F,0xC2,0x21,0xC4,0x96,0x35,0xBD,0x80,0x03,0xCF,0x67,0xB8,0xF5,0x82,0x3A,
+0xA0,0x7A,0x22,0xAA,0x04,0xC8,0xDE,0x5F,0xAF,0x94,0x25,0x54,0xAE,0x0B,0x20,0x00,
+0x40,0x35,0xEA,0x4C,0x2D,0xDB,0xC0,0x57,0xF0,0x67,0x9B,0x07,0x64,0x6E,0xB7,0x12,
+0x5A,0xEC,0x91,0xF2,0x7C,0xB6,0xC7,0x9C,0x0F,0x9C,0x44,0x33,0x1F,0x97,0x44,0xE3,
+0x66,0x20,0x74,0x24,0xA1,0xF6,0x60,0xCC,0x4A,0x63,0xCC,0x7B,0x78,0x1F,0xA5,0xAA,
+0xD8,0xE6,0x1E,0x42,0x73,0xB4,0xFA,0x96,0xBC,0x2C,0xE8,0x7E,0x39,0xE5,0xBD,0xEC,
+0x37,0x8F,0xA4,0x5D,0xC8,0x32,0x37,0x78,0x3F,0xB1,0xC7,0xEF,0x8A,0x44,0xD6,0x05,
+0x4F,0x13,0x98,0xB5,0x10,0x2D,0x26,0xDC,0x0D,0x6A,0x33,0x6E,0x8C,0xC4,0x97,0x2B,
+0xA9,0x86,0x4B,0x27,0xEB,0x7C,0xA2,0x8E,0x6C,0x40,0xDD,0x79,0x6A,0x5C,0x49,0xB4,
+0x1F,0x53,0x3F,0x68,0x36,0x3C,0x05,0xDE,0x5F,0x52,0xF8,0x6A,0xD4,0xAF,0x16,0xE7,
+0x8F,0x93,0xD5,0x4F,0xBA,0x11,0xA5,0x45,0xF5,0xD1,0xC4,0xF3,0xEA,0x11,0xB3,0x74,
+0xFB,0xD7,0xCF,0xDC,0x86,0x36,0x8A,0x5C,0x9C,0x86,0x00,0x47,0x07,0x5B,0x18,0x7F,
+0xE0,0xE1,0xC3,0xC6,0x50,0xFA,0x6F,0x60,0xFF,0x5A,0x99,0x0D,0x73,0xCD,0xD0,0x3E,
+0xD5,0xD1,0x4F,0x9D,0x30,0xC5,0x8C,0xE5,0x89,0xB7,0x34,0x56,0x9C,0xBA,0x74,0x3F,
+0xD2,0xE4,0x23,0x4D,0x78,0x38,0xB8,0xFA,0xEE,0x14,0x23,0x7A,0x05,0x66,0x17,0x75,
+0x50,0xEE,0xAC,0xFD,0x4E,0x42,0x1C,0x1D,0x99,0x30,0x5F,0xB3,0x6F,0xBC,0xC2,0x86,
+0x89,0x49,0xCE,0x3B,0xA6,0xDE,0x20,0x65,0x1A,0xAD,0x70,0x22,0x2F,0x1B,0x1F,0xD6,
+0x83,0x4B,0xF3,0x34,0x8A,0x92,0x88,0x99,0xB0,0x2E,0x4C,0xBB,0xBD,0x15,0x09,0x08,
+0xDA,0xF7,0x3D,0x64,0x13,0x8B,0x19,0x13,0xF6,0xEE,0x62,0x3C,0x61,0x8E,0x3C,0x20,
+0xF2,0x2B,0xA6,0x51,0x2C,0x0A,0x09,0xC5,0xB8,0x53,0x66,0x18,0x5A,0xD0,0x12,0x81,
+0x25,0x45,0xC1,0xCA,0x11,0xFC,0xEF,0x4E,0xFE,0x93,0x48,0x9F,0x79,0x42,0x60,0xBC,
+0x06,0x74,0x10,0x54,0x92,0xD3,0x72,0xDF,0x9B,0xC6,0x28,0xEE,0xDF,0x7D,0x63,0x73,
+0xF6,0xE0,0x9E,0x03,0x31,0x14,0x45,0x77,0xD2,0x3B,0x04,0x63,0xCB,0xBE,0xCE,0x43,
+0x21,0x8E,0xF9,0x98,0xC0,0x18,0x4A,0xDB,0x9E,0x70,0x77,0x1A,0x52,0x62,0xAD,0x09,
+0x6B,0x17,0x25,0xFB,0x6B,0xF5,0x00,0xD0,0x2F,0x36,0xAC,0x0A,0x76,0x2D,0x5B,0x0C,
+0x27,0x54,0xE2,0xEC,0xA0,0x27,0xA9,0x5E,0xC7,0x0A,0x30,0x72,0xD8,0xA0,0xE7,0x4B,
+0x44,0xFE,0xD2,0x1E,0x8D,0xBA,0xC8,0x30,0xE6,0x69,0x09,0xD9,0xFF,0x8F,0xDB,0x52,
+0x9D,0x59,0xB0,0xD8,0x19,0xD6,0x92,0xED,0xDF,0xF0,0x71,0x34,0xB7,0x9A,0xB9,0x8A,
+0x1C,0xAD,0x6B,0xEA,0x95,0xFB,0x32,0x76,0xB4,0x51,0xC2,0xDD,0xFD,0xB2,0xD4,0x58,
+0x71,0xCE,0x5E,0x45,0x7A,0x4F,0x4E,0xA7,0x1C,0x24,0x89,0x19,0x6E,0xE1,0x07,0x90,
+0xC2,0x3F,0x65,0xFC,0x4B,0x1D,0xAA,0xE9,0x79,0x71,0xE9,0x68,0x8D,0x99,0x52,0x3D,
+0xC0,0x2E,0x46,0xDA,0x39,0x3E,0x38,0xD4,0xAE,0x5D,0xF4,0xC6,0xE2,0xA3,0x0C,0xFC,
+0xB5,0x85,0x2B,0xED,0x41,0x40,0x21,0x17,0x0B,0xE3,0xCA,0x55,0x58,0xED,0x1D,0x8B,
+0xB2,0xB0,0x47,0x3D,0xE8,0xDA,0x9D,0x41,0x72,0x33,0x65,0x04,0xEF,0xF1,0x38,0x46,
+0xF9,0xC6,0xEC,0xFA,0xAB,0xAB,0xEB,0x32,0x5E,0x9B,0x29,0xF8,0xD2,0x2F,0x57,0xC9,
+0xE8,0xF2,0xDD,0xEF,0x9A,0xF9,0x0F,0x7C,0xE5,0x56,0xAF,0x16,0x87,0x16,0xE2,0xBF,
+0x3B,0x57,0x82,0x26,0xE3,0x56,0xDF,0x2D,0x59,0xDB,0x01,0x51,0xBF,0x28,0x06,0x02,
+0x64,0x31,0x57,0x02,0x43,0x37,0xD7,0x4A,0x91,0x4D,0x75,0x10,0x03,0xE6,0x56,0x5B,
+0x91,0x81,0x96,0xA3,0x37,0xED,0xCC,0x4C,0x76,0x4C,0xEB,0x62,0x5B,0x8D,0xD7,0x97,
+0xEB,0x0C,0x89,0x6D,0xBB,0xC0,0x6C,0xD7,0x35,0x3A,0x9A,0x11,0xB5,0xA7,0xB6,0x80,
+0x6C,0x22,0x49,0x2B,0x32,0xB2,0x7A,0xB8,0xF8,0x1A,0xB1,0xA4,0xF3,0x80,0x2A,0xFE,
+0x87,0x80,0xCB,0x66,0x5A,0xA7,0xE4,0x9E,0x6A,0xC9,0x24,0x42,0xA8,0x8B,0x61,0x2E,
+0x9B,0x83,0xAB,0xAC,0xCF,0x1A,0x77,0xD1,0x25,0xBD,0xF1,0xF4,0xA1,0x64,0x1B,0xB0,
+0x01,0x41,0x7C,0x84,0x47,0xB9,0xA8,0x2C,0xF4,0x18,0x15,0x61,0xBB,0x95,0x48,0x26,
+0x28,0x72,0x90,0x15,0xF9,0x60,0xD3,0x36,0x62,0xB4,0x0E,0xE1,0x68,0x61,0x46,0xBE,
+0x94,0xA5,0xD9,0x55,0x7D,0x67,0x0E,0x0E,0x90,0x84,0xA4,0x82,0x9D,0xE7,0xB1,0x29,
+0xAB,0x97,0x68,0x01,0xBE,0x9F,0xDA,0x23,0xB2,0xD8,0x3B,0xE6,0x2C,0x7B,0xD5,0xCA,
+0xA3,0x84,0x76,0x28,0x71,0xC3,0x0C,0xCB,0x14,0x59,0xA3,0xBA,0x91,0xE8,0x40,0x85,
+0xB7,0x94,0x08,0xCB,0x5C,0x5E,0x6D,0xA5,0xE9,0x54,0x0B,0xD3,0x9E,0x87,0x7B,0x35,
+0xFF,0x1C,0xF7,0x8E,0xCD,0x6D,0x81,0x8C,0xD9,0x79,0x88,0x0F,0x21,0x29,0xE1,0x70,
+0xC7,0x1B,0x2A,0x0A,0x7E,0xC1,0x31,0xC1,0xA2,0x5F,0x50,0x03,0xE5,0x7E,0x88,0xC4,
+0xE2,0xF0,0xE0,0xE0,0x8B,0x43,0x41,0x0B,0x22,0xFD,0xD9,0x5D,0x5D,0x0D,0x96,0xB9,
+0xAD,0x4D,0x73,0x75,0x65,0x26,0xF4,0x48,0x94,0xFB,0x2A,0xE4,0xA9,0xD6,0xA4,0x38,
+0x49,0xC9,0x83,0xC1,0x67,0x51,0x02,0x15,0x6F,0x7F,0x7B,0xB6,0xD0,0x12,0x58,0xC3,
+0x84,0x7E,0x9F,0xE4,0xF1,0x4A,0xAE,0x95,0x33,0xB3,0x63,0x2A,0xBE,0x75,0xC3,0x14,
+0x24,0xAA,0xB6,0x6E,0x8F,0xCD,0x3E,0x6D,0x8C,0x01,0x6B,0xA2,0x08,0x34,0x23,0xCF,
+0xC8,0x3D,0x58,0xF3,0x3E,0x16,0x78,0x7D,0x85,0xB5,0x90,0x93,0x47,0xFC,0xC5,0x2F,
+0xA8,0x69,0x3C,0x83,0x69,0x82,0xF6,0x8D,0xD1,0x04,0xA2,0xAC,0xE7,0x43,0x87,0xCE,
+0xF7,0x0F,0xE9,0xA7,0x70,0x12,0xC5,0x59,0x53,0x50,0x5C,0xAF,0xDC,0x1D,0xA9,0x6F,
+0xF1,0xD5,0xF2,0xD3,0xDE,0xA0,0x39,0xA6,0x0E,0x55,0x95,0xA1,0x3A,0x85,0x77,0xF0,
+0x91,0xD5,0x2A,0x72,0x30,0xB9,0xA6,0x9A,0x70,0x8E,0x10,0x9D,0x09,0xA9,0x5F,0xA1,
+0x03,0x33,0xBF,0xA1,0x3B,0x69,0xFD,0xD1,0xF2,0x2C,0xFB,0xD0,0x2F,0xBC,0xC1,0xC9,
+0x0F,0xF6,0x1B,0xA3,0x2E,0xB1,0xB5,0xB3,0xC7,0x4F,0x96,0x7F,0xBB,0xB7,0x13,0xBC,
+0xDE,0x63,0xFF,0x06,0xDF,0x27,0xAF,0xE0,0x10,0x8D,0x0C,0x57,0x46,0x14,0xCC,0x34,
+0x6A,0x87,0x7B,0xF6,0x5D,0xCC,0x0D,0xAD,0xEC,0x3F,0xF3,0xF9,0xDD,0x39,0x6C,0xB8,
+0xA2,0xC6,0x0F,0x60,0x93,0x95,0xB1,0xFD,0x39,0x59,0xAC,0xDD,0xBA,0x58,0x64,0x18,
+0xCE,0x86,0x94,0x81,0x1C,0x17,0xBB,0x4D,0x32,0x02,0x7C,0x96,0x40,0xCE,0xD7,0x40,
+0x8D,0xF5,0xE5,0xF7,0x36,0x00,0x55,0x2C,0x2D,0x8F,0x06,0x58,0xDB,0xE3,0x77,0xCC,
+0x89,0x93,0x6B,0x88,0x4A,0xD1,0xE1,0xC3,0xFC,0xBE,0x25,0xC6,0xD6,0xD4,0x26,0x13,
+0xF0,0xC2,0xC4,0x58,0x56,0x1C,0x56,0xE6,0x90,0x8B,0x22,0x16,0x80,0x4E,0x9A,0xBA,
+0x1E,0x81,0xA1,0xED,0xAD,0x28,0x89,0x19,0x66,0xFC,0x7F,0x14,0xEB,0xF7,0xB4,0x61,
+0xA5,0x6F,0x27,0x20,0x94,0x5E,0xDC,0xAC,0x57,0xC8,0x6E,0x01,0xA5,0xA5,0x50,0x50,
+0xE7,0x8E,0x87,0x9F,0x5A,0x07,0x60,0xFC,0xE5,0xC0,0xE6,0xBE,0x30,0x41,0xF5,0x81,
+0x4F,0x4A,0xCC,0xEA,0x09,0xCF,0xF3,0x2F,0xD0,0xA3,0x8B,0x11,0xE1,0xF5,0x89,0x6E,
+0x55,0x51,0xFA,0xE6,0x18,0x6B,0xEC,0xF7,0xFD,0x20,0x57,0x21,0x43,0x30,0x83,0xC2,
+0x82,0xFF,0xE7,0xCA,0x22,0xAA,0x83,0xA9,0xDE,0x31,0x55,0x07,0x7E,0x13,0x11,0xB0,
+0x2A,0x3B,0xAC,0xBF,0xF8,0x59,0xE9,0x7C,0x87,0x67,0x3F,0x78,0x1A,0x8C,0x4D,0x92,
+0x7E,0x04,0x9E,0x0E,0x47,0xB8,0x49,0x3E,0xE3,0x33,0x5F,0x08,0xEA,0x18,0xC3,0xC5,
+0xF5,0x36,0x9B,0xEE,0x3E,0x67,0x34,0x8C,0x49,0xDB,0x66,0x28,0x31,0xAE,0x82,0x25,
+0xA8,0x38,0x52,0xEB,0xA6,0xF8,0xD2,0x52,0x52,0x01,0x60,0x5C,0xCE,0x1C,0x7E,0x8B,
+0x94,0x21,0x75,0xC4,0xA9,0x54,0xDE,0xA3,0x38,0xC7,0xDE,0x3A,0x82,0x5F,0xB9,0x9C,
+0x6F,0x73,0x24,0x40,0x6D,0xAF,0xA7,0x5F,0xC8,0x43,0x3A,0x8E,0xDF,0x28,0x4F,0x9E,
+0x77,0x35,0x65,0xBA,0x8F,0x58,0x06,0xD8,0x0D,0xA4,0xB3,0x95,0xFA,0xC3,0x85,0x74,
+0xC8,0xBD,0x6D,0x08,0xCE,0x83,0xB0,0x38,0x24,0x70,0x13,0x1F,0x02,0x44,0x15,0x0A,
+0x22,0x98,0x86,0xC2,0x92,0xE7,0x2F,0x1A,0x4C,0x12,0x68,0x75,0x1B,0x63,0x3A,0x36,
+0x12,0x44,0x05,0xEF,0x3C,0xA2,0x90,0x80,0xB3,0x9A,0x20,0x30,0x32,0x50,0xD6,0xA7,
+0xD9,0xCA,0xD7,0x46,0xB6,0x2E,0x53,0x6D,0x5B,0xFE,0x75,0x1B,0x9C,0x4D,0xFA,0x70,
+0x59,0x94,0x5E,0xE4,0xC5,0x53,0xEB,0x73,0x91,0x15,0x50,0xF1,0x56,0xCF,0x8A,0x85,
+0x6B,0x15,0xAA,0x3F,0x5C,0xBE,0x93,0x4A,0x62,0xAB,0x03,0xAE,0x99,0x69,0xB5,0x86,
+0x99,0x76,0x00,0x0F,0xDA,0x29,0x66,0xBD,0x2B,0x7C,0xBF,0xEE,0xA1,0x6E,0x68,0x02,
+0xEF,0x2D,0xAD,0xE2,0x53,0x12,0x9F,0xBB,0xCD,0x8A,0x34,0xD3,0x5C,0xCD,0xB7,0x8A,
+0x49,0x71,0x35,0x63,0xC0,0x5D,0x22,0x2E,0xD3,0x99,0x3C,0xFA,0xB4,0x91,0x61,0x45,
+0xA4,0xFD,0xF6,0xE9,0x14,0x70,0xDA,0xED,0x84,0x5D,0x88,0x93,0x49,0x32,0xBE,0xCD,
+0x97,0xEE,0xD3,0xFB,0xE7,0x23,0x64,0xB2,0xF0,0x88,0x3E,0xDC,0x19,0x72,0x19,0x10,
+0x67,0xD0,0x0E,0x3D,0xE0,0xE8,0x09,0xE3,0x74,0xD9,0x6C,0x27,0xCB,0x38,0x31,0x7D,
+0x0E,0x64,0xCA,0x6A,0xAA,0xE3,0xE4,0x48,0x6E,0x9D,0x18,0xB4,0xD2,0x1F,0x1E,0x41,
+0x47,0xE9,0xE6,0x97,0x5E,0x7B,0x37,0x46,0xA5,0xE8,0x4F,0xB9,0x01,0xBA,0x41,0x88,
+0xB1,0xEC,0xC2,0xD8,0xA4,0x3D,0x76,0x5E,0xCF,0x2E,0xF1,0xDF,0x5B,0xF8,0xDB,0x5A,
+0xF6,0xF9,0x3D,0xD1,0x7F,0xBC,0x82,0x6C,0x23,0x1D,0xD8,0x4E,0x4B,0x23,0x9D,0xEB,
+0xC4,0x78,0xC9,0x0A,0xFF,0x92,0x84,0x2D,0x1F,0x81,0xA0,0xA6,0xEF,0x3C,0x8C,0x33,
+0x54,0xC3,0x2B,0x2F,0xB0,0x97,0xA0,0xDB,0x99,0x74,0x37,0x51,0xC8,0xC6,0x65,0xFF,
+0x7B,0xF0,0xC1,0xB8,0x4E,0xAD,0xB6,0x79,0x79,0x71,0x05,0xDA,0x2A,0x98,0x8E,0x3F,
+0xF4,0xA4,0x4A,0x27,0x2C,0x74,0x11,0xBF,0x2A,0xE2,0xCD,0x09,0x0B,0xB8,0x7C,0x87,
+0x0B,0x90,0x95,0xDC,0xD5,0x85,0x6A,0x4C,0x51,0x3B,0xD7,0xB7,0xC0,0xD5,0x7B,0xD6,
+0xFB,0xAE,0x48,0x1A,0xBC,0x8C,0x96,0xC1,0x45,0xED,0x7D,0x32,0xA6,0x5B,0x04,0xD2,
+0x64,0x1F,0xA8,0x02,0xBD,0xFE,0x08,0x26,0xF3,0xB2,0x89,0x37,0x0F,0x73,0x44,0xD5,
+0x53,0x6A,0x03,0x6F,0x67,0x0D,0x62,0xF3,0x71,0x10,0x62,0x7A,0xDA,0x0C,0x00,0x68,
+0xFE,0x5A,0x17,0xAC,0xA8,0x26,0x40,0x44,0x43,0x1E,0xC4,0x84,0x39,0xBD,0x9C,0x0C,
+0x3C,0xE5,0x3E,0xB1,0x1B,0xDC,0xD6,0x1C,0x59,0x5A,0xB0,0x17,0xC9,0x29,0x12,0x5B,
+0xD4,0x9D,0xA2,0x8D,0x96,0x9B,0x78,0xA0,0x9E,0x19,0xFC,0x00,0x47,0xFB,0xBB,0x90,
+0x24,0xA3,0x7F,0x4B,0x21,0x1D,0xB9,0x42,0x0B,0x57,0x0A,0x23,0x7A,0xD8,0x29,0xE2,
+0x1D,0x4E,0x07,0xD2,0x34,0xC5,0xF1,0x20,0x69,0xF0,0xD3,0xE5,0xA7,0xB4,0x73,0x76,
+0x60,0x79,0x26,0x7D,0xC6,0xE4,0xD1,0x98,0xAB,0x7A,0x91,0xAF,0x48,0xDD,0xC9,0x69,
+0x05,0x08,0x46,0x28,0xF9,0x2B,0x77,0x9B,0x7A,0x4B,0xB2,0x31,0xD9,0xF2,0x54,0xEA,
+0x65,0x8D,0x79,0xCB,0xD9,0x9E,0x5C,0x56,0x42,0x80,0xB6,0x63,0x4C,0x16,0xF1,0x3B,
+0x29,0xF4,0x0A,0x80,0x05,0xD4,0xC5,0x35,0x25,0xEE,0x61,0xF8,0xE0,0x1A,0xFE,0xCA,
+0x4B,0x2C,0x42,0x95,0xAE,0x9F,0xB3,0xF2,0x48,0x45,0x14,0xCF,0x0E,0x9C,0x33,0x71,
+0xE1,0xB5,0x7E,0x16,0xA0,0x41,0x21,0xE4,0x75,0x47,0x1E,0xC0,0xF2,0xD0,0x9B,0x5D,
+0x43,0x8F,0x68,0xE8,0x6B,0x16,0x54,0xE9,0x1D,0x25,0x65,0xAA,0x52,0x04,0xB2,0xD7,
+0x0D,0xAB,0x6C,0x55,0x35,0xB7,0x6F,0xC7,0x86,0xF9,0x4D,0x9F,0x84,0x85,0xA2,0xE8,
+0x72,0xC1,0x3A,0x0C,0x01,0xA8,0x92,0x8F,0xF4,0xDF,0x42,0x66,0x72,0xCB,0x37,0xCB,
+0x04,0x9A,0x97,0xE1,0x76,0xA9,0x7D,0x2B,0x78,0xEF,0x77,0x3D,0xF7,0xF4,0xD4,0xAB,
+0x62,0x24,0x51,0x8B,0x07,0x11,0x61,0x39,0x17,0xE0,0xC7,0x06,0x8A,0x4C,0xA7,0xB5,
+0x15,0xED,0x2D,0xAF,0xDD,0xE2,0x0B,0xEC,0x98,0xEA,0x45,0xB6,0x6D,0x36,0x03,0x83,
+0x53,0xD5,0xC7,0x7C,0xBD,0xEF,0x99,0x3C,0x09,0xF0,0xB8,0xF8,0x45,0xB9,0x84,0xD4,
+0x86,0xA1,0x88,0xCA,0xED,0x48,0x44,0x7C,0x1A,0xC3,0xAA,0xDD,0xB6,0xE6,0xD7,0x6A,
+0xD7,0x25,0x73,0x98,0x3F,0x60,0x29,0x36,0x24,0x33,0x6C,0x00,0xB1,0xB7,0x1C,0x07,
+0x93,0x3F,0xE0,0xEC,0x26,0x4F,0x15,0x11,0x90,0x5A,0x3B,0xC4,0xFB,0x1C,0x17,0xEA,
+0xE6,0xF4,0xED,0xBB,0xF5,0x10,0xDC,0xB4,0x1D,0x13,0xC6,0xE8,0x0F,0x12,0x8F,0x39,
+0x20,0x9E,0x8B,0x05,0xAF,0x8A,0x0E,0xF6,0x18,0xE5,0x89,0xCC,0xF5,0x0A,0xC9,0x78,
+0x13,0x72,0x1A,0x2C,0xBF,0xCC,0xBF,0x2D,0x0D,0xA2,0x80,0x33,0x2E,0x38,0x48,0x8C,
+0x8F,0x4E,0xF2,0x54,0x1B,0xDD,0x67,0x32,0x8C,0x90,0x5B,0xC7,0xAE,0x79,0x66,0x8A,
+0x7A,0xC8,0x05,0xC3,0x3C,0x34,0xAB,0xC8,0x37,0x00,0x7E,0x25,0xE1,0x8F,0x63,0xAE,
+0x7F,0x28,0x8E,0xF1,0xDE,0xDF,0x6B,0x96,0x04,0x2F,0xE9,0xCF,0x1F,0x2D,0x59,0xB8,
+0xEC,0x7B,0x5D,0x39,0xFF,0x2D,0xD3,0xB6,0x50,0xA0,0x76,0x44,0x7D,0xEB,0x80,0x1F,
+0x35,0x00,0xE3,0x23,0x34,0x2A,0x82,0xDB,0x64,0x5F,0x8D,0x9B,0x84,0x18,0x71,0x64,
+0xE3,0x14,0x66,0x89,0x52,0x55,0x86,0x55,0x5A,0xAF,0x4B,0x46,0xED,0x95,0x78,0x98,
+0xBC,0xA2,0x63,0x7D,0xFB,0x15,0x81,0x7D,0xEB,0x30,0x53,0xA6,0xEC,0x72,0x0A,0x06,
+0x1E,0x20,0x2E,0x96,0x2E,0x51,0x3C,0x02,0x9E,0x07,0x3E,0x0D,0x36,0xA7,0xF9,0x6C,
+0x10,0x12,0xD0,0x30,0xCD,0xCD,0x58,0xB3,0xAE,0xAA,0xFD,0x19,0xF9,0x10,0xD2,0x4E,
+0x54,0x08,0x43,0x44,0x3D,0x43,0x0F,0x27,0x11,0x68,0xE0,0x30,0x4A,0x48,0x28,0xD8,
+0x17,0xCF,0x54,0x08,0xB3,0xEA,0xC4,0xF5,0x69,0x80,0xDC,0xAC,0xC7,0xF4,0x6F,0x76,
+0x59,0x5A,0x77,0xFE,0x8E,0x78,0xB6,0xD6,0x57,0x70,0x1A,0x71,0x70,0x16,0xE9,0xB7,
+0xFE,0x38,0xB1,0x27,0x53,0x22,0x22,0xBA,0xBA,0x49,0x83,0x09,0x65,0x74,0x31,0xFF,
+0x74,0xFA,0xFB,0x65,0xBC,0x98,0x3D,0xD3,0x8D,0x34,0x2C,0x28,0x97,0xCC,0x10,0xDF,
+0x45,0x2B,0x65,0x46,0x2D,0x05,0xBE,0xFC,0xFC,0x51,0x79,0x48,0xA8,0xCF,0xDF,0x79,
+0x8E,0x13,0x37,0x42,0xB8,0xA0,0x6F,0x18,0x79,0x31,0x9A,0x77,0x88,0x02,0x6A,0x52,
+0xE0,0x74,0xAC,0x95,0x14,0xAF,0x9E,0x14,0x00,0x7D,0xD1,0x04,0x54,0x61,0x20,0xCB,
+0x4B,0x19,0x9B,0xE0,0xFA,0x62,0x25,0x92,0xD8,0x1F,0xC4,0x4C,0xFF,0xA6,0x6B,0xBD,
+0x49,0x24,0x94,0xEA,0x06,0xCA,0x09,0xDE,0x41,0xB5,0x47,0x70,0xF1,0xB0,0xB5,0x2F,
+0x2B,0x4C,0xFE,0x91,0xA6,0xE3,0x83,0x0A,0x7B,0x17,0xB9,0x66,0x3A,0xBD,0xE2,0x5A,
+0xF7,0xD7,0xCB,0xB9,0x70,0xF3,0xBC,0x8B,0x5F,0x59,0x04,0x62,0x64,0x93,0x43,0x61,
+0xD1,0xA5,0x32,0xB6,0x86,0x66,0x9F,0xC5,0x35,0x26,0x5D,0x34,0x50,0xDB,0x5C,0x9C,
+0xE1,0x29,0x69,0x83,0x03,0x85,0xFF,0xFA,0x6E,0x50,0xB0,0x99,0x27,0x7F,0x5D,0x73,
+0xEE,0x46,0x52,0x33,0x7E,0xF6,0xE1,0x42,0xD0,0x36,0xDA,0x5F,0x56,0x6D,0xE5,0x6F,
+0xE4,0xC9,0xE2,0xB1,0x99,0x52,0xD7,0x38,0x19,0x41,0xFE,0x23,0x8C,0xB8,0x16,0x05,
+0x80,0x21,0xC9,0xE4,0xFD,0x0E,0xF5,0xA7,0x21,0xC5,0x23,0x24,0x61,0xCE,0x4D,0xA8,
+0x22,0xA3,0x84,0x0F,0xDB,0x90,0x9D,0xB2,0xC7,0x57,0xF0,0xB1,0x6A,0x85,0x9D,0xF3,
+0x41,0x96,0x2B,0x62,0x4F,0x42,0xE8,0xB9,0x02,0x5B,0xF2,0x15,0x7F,0xE7,0x45,0xBB,
+0x83,0x41,0x03,0xF8,0xB2,0x9D,0x60,0x1A,0x97,0x8A,0x57,0xF1,0x8E,0xB4,0xD3,0xA1,
+0x31,0xBD,0xAD,0x07,0x29,0x3D,0xEC,0x37,0x73,0x3E,0xA7,0x75,0x0C,0xF9,0x38,0x03,
+0x57,0x68,0x89,0x58,0x4E,0x35,0x4C,0x56,0x32,0xF6,0x31,0x01,0xC2,0xA9,0x61,0xBF,
+0x0C,0x63,0xC2,0x88,0xB4,0x86,0x14,0xC0,0x72,0x9A,0xD0,0x9A,0x4D,0x19,0xE3,0xB5,
+0x81,0x7C,0x0C,0xF2,0x2F,0x26,0x98,0xED,0x01,0xD9,0xA6,0xEB,0x67,0x78,0xF4,0x5B,
+0xB0,0xAD,0x92,0xD1,0x22,0x77,0x47,0xDA,0x67,0xDD,0xD9,0x65,0x1B,0x97,0x25,0xEF,
+0x85,0xC1,0x42,0xD6,0x74,0xCB,0xEE,0x40,0x36,0xA4,0x09,0xCA,0x07,0xB2,0xE8,0x58,
+0xF2,0x37,0x40,0x8B,0x1F,0xE5,0x35,0xF9,0x75,0x4A,0xBC,0xAF,0xFC,0x4D,0xDC,0x87,
+0xC6,0x06,0x55,0x9A,0x51,0x01,0x04,0xAB,0x9B,0xF1,0x71,0x29,0xC5,0xF8,0xAA,0xD2,
+0xCE,0xB4,0xEA,0x12,0xC4,0xA4,0xD5,0x4F,0x7A,0xB3,0xCE,0x89,0x0B,0xA8,0xF3,0x6E,
+0xAD,0x81,0x45,0x7F,0x15,0xD8,0x3A,0xFB,0xBE,0x1B,0xBB,0xC2,0x58,0x7B,0x3B,0xFD,
+0x2E,0xAC,0x75,0xA3,0xB7,0xD2,0x96,0x3E,0xA5,0x01,0xB7,0xF4,0x49,0xA3,0x9F,0xE2,
+0x3F,0x8F,0x53,0xA1,0x8A,0x40,0xE4,0x1D,0x0B,0xD6,0x9B,0xE9,0x73,0xFD,0x5E,0x8D,
+0x69,0xD6,0x2C,0xCB,0xEE,0x1C,0xC6,0x82,0xCF,0x7E,0xEE,0xA2,0xA9,0x28,0xAD,0xE7,
+0x3D,0xB2,0x5C,0xAB,0x1E,0x92,0x91,0x16,0xF0,0x2A,0x5F,0x90,0x16,0x6A,0x4C,0x47,
+0xD5,0x18,0x7C,0x92,0xC5,0xD3,0x71,0xA0,0xC2,0xA1,0xBF,0x95,0x6F,0xD8,0x93,0x3A,
+0x0F,0x03,0x08,0x94,0x3A,0x2F,0xDF,0x12,0xCC,0xFC,0xBA,0x5C,0xF7,0x06,0x0C,0xDC,
+0xC9,0x69,0x6E,0x2A,0x76,0xE8,0xC8,0x51,0xD5,0xC0,0x95,0x7B,0xF8,0xF7,0xA0,0xD0,
+0x4D,0x99,0xDA,0xCE,0x2B,0x1E,0xCA,0x26,0x87,0x3B,0x11,0x2A,0x3C,0x0B,0x5B,0xA9,
+0xAA,0x5C,0xC1,0x47,0x0E,0xD4,0x20,0xCD,0xC1,0x23,0xEB,0x6B,0xDE,0x8C,0xAC,0x08,
+0x7E,0x75,0x4B,0xE7,0xF6,0x44,0x5E,0x4A,0x49,0x9C,0x59,0x63,0x9F,0x6C,0x77,0xBE,
+0x1C,0x1D,0x21,0x9C,0xEF,0x6B,0x62,0x6D,0x6C,0x76,0x93,0x88,0xC3,0x4E,0x13,0x21,
+0x94,0xE2,0x64,0xD4,0xC6,0x87,0xF3,0x5E,0xB0,0x46,0xBE,0x0B,0x6D,0xD4,0x56,0x9E,
+0xF0,0x0A,0x4F,0x81,0x68,0xAB,0x24,0x43,0x3E,0x8D,0x17,0xD9,0xE7,0x39,0xDA,0x5D,
+0x1B,0xC0,0xA5,0xA4,0xA2,0xDB,0xD1,0xC1,0x60,0x0D,0xB5,0x50,0x94,0x27,0xA7,0xE5,
+0xA5,0x33,0xFA,0xF7,0x6D,0xE4,0xD2,0x67,0xE1,0x3F,0x6E,0xA4,0x0D,0x1E,0x4A,0x9D,
+0x72,0x7A,0xBA,0x4B,0x55,0x39,0x56,0x60,0x82,0xCD,0x5E,0x0E,0x8B,0xE9,0xDD,0x68,
+0x84,0x9C,0x87,0xC0,0xA8,0xE6,0xDE,0xC3,0xD9,0xBB,0xB3,0xA3,0x02,0xEF,0xE6,0x91,
+0x97,0x82,0xAE,0xC8,0x40,0x30,0x11,0x9F,0x85,0x1D,0x32,0x3B,0x91,0x7A,0xA9,0x2C,
+0x3A,0x5D,0xCD,0x1A,0x07,0x8A,0x63,0x16,0x49,0x95,0xA9,0x83,0x53,0x55,0xC9,0xCE,
+0x21,0x29,0xCB,0xC0,0xB5,0x24,0x9C,0xEA,0x80,0x9B,0xF4,0x86,0x8D,0xCA,0x2F,0x56,
+0x8B,0x09,0xF2,0x28,0x03,0xC4,0x47,0xAB,0x85,0xA9,0x7F,0x66,0x3F,0x15,0x52,0x2F,
+0xEF,0x79,0x92,0x7C,0x97,0x93,0xB7,0x25,0xB7,0x96,0x2B,0xD7,0x7D,0xF4,0xF2,0x90,
+0x4C,0x1E,0xBE,0x6B,0x5F,0x0B,0xAF,0x7D,0x76,0x10,0xC9,0x60,0x39,0x2E,0xAB,0xA6,
+0x65,0x94,0x1E,0xBF,0xD8,0x75,0x57,0xED,0x7E,0x98,0x76,0xD2,0xD9,0xF5,0x1D,0xE7,
+0xA0,0x8F,0x97,0x58,0x33,0x9F,0x72,0x27,0x3F,0xDE,0x6E,0x28,0x5E,0x02,0xBC,0x05,
+0x50,0x3B,0x73,0xDC,0x44,0x9D,0x2F,0xD1,0x6E,0x8C,0x95,0xAC,0xA2,0xF9,0xC5,0xC1,
+0xF9,0xF0,0xFD,0x0E,0xD4,0x84,0xFB,0xE2,0x45,0x39,0x58,0x8C,0x72,0xFE,0xF0,0xAD,
+0x33,0x1A,0xD8,0xE5,0x56,0x71,0x31,0x92,0xCC,0x67,0xD8,0x2E,0x6C,0x83,0x48,0xDE,
+0xDB,0x31,0x8D,0x81,0x4B,0xA6,0x9F,0xBE,0x1E,0xE9,0x13,0x87,0x81,0x0F,0x8B,0x54,
+0x24,0x74,0xC5,0x09,0x78,0x37,0xB6,0x52,0x9D,0x35,0x23,0xAA,0x1B,0x4A,0x34,0xFA,
+0xBB,0xFB,0x91,0x82,0x8A,0x44,0x19,0x09,0x2E,0xDC,0x48,0x0B,0x2F,0xF0,0x39,0xA8,
+0xA5,0xD2,0x99,0x91,0xD6,0x8B,0xF1,0xDF,0xB6,0x80,0xEE,0x8A,0xBA,0xBF,0x84,0x3B,
+0x43,0xEF,0x12,0x67,0x75,0x03,0x0C,0x00,0x1B,0xDB,0x98,0x67,0xBC,0x84,0x7D,0xB2,
+0x0A,0xAF,0xAE,0xB0,0x72,0x87,0x34,0xDD,0xB1,0xB8,0x6A,0x57,0x4B,0x13,0x88,0x34,
+0x78,0x56,0xA1,0x96,0x0F,0x35,0xEB,0xA4,0xE4,0xCE,0xDF,0x6E,0xE1,0x8A,0xB4,0xB7,
+0xAF,0x7E,0x3B,0x54,0xAC,0xBD,0x16,0x7B,0x00,0x5B,0x0E,0xCB,0xB2,0x1C,0xAE,0x46,
+0x9A,0xD1,0x56,0x37,0xA7,0xC8,0x82,0xA9,0xA4,0x9E,0x02,0xC9,0xD0,0xC4,0xE6,0x53,
+0x18,0x9C,0xBD,0x95,0xB2,0xA0,0xA4,0x37,0x31,0x78,0x90,0x1A,0x9B,0x14,0xBD,0x58,
+0x45,0x59,0xAB,0x94,0xF8,0xCD,0x76,0x1F,0xFE,0x58,0x8C,0x9F,0x2D,0xAD,0x4E,0x5E,
+0x5A,0x97,0xD1,0x19,0xD5,0x41,0xED,0xBF,0x8F,0x2B,0xCF,0xE9,0x4C,0xBA,0xA0,0x74,
+0x51,0xDC,0x01,0x42,0x43,0x19,0x17,0x0C,0x14,0x6B,0xA3,0x08,0xFC,0x38,0xAA,0xFB,
+0x84,0xF8,0x5E,0x24,0x22,0xB9,0x70,0x04,0x60,0x2A,0x6B,0x9E,0xAC,0x61,0x16,0x35,
+0x3F,0x00,0xC3,0xD3,0xBE,0x51,0x08,0x38,0x3C,0xC2,0xA4,0x48,0xAD,0xF3,0xC7,0xFC,
+0x0E,0x15,0xD2,0xE7,0xEC,0x60,0x46,0xDC,0xBA,0x2C,0x1F,0x85,0x18,0x85,0x92,0xC5,
+0xF8,0x17,0x8F,0x90,0x55,0xBB,0x2D,0xF2,0xDF,0x6F,0xF1,0x30,0xE7,0xB1,0x4D,0x3E,
+0x94,0xC7,0x88,0xA5,0xCF,0x12,0x7B,0x4E,0x70,0x3E,0x88,0xE0,0xC2,0x7C,0xFA,0x22,
+0xB6,0x06,0xF8,0x2A,0x08,0xB1,0xD3,0x79,0xFC,0x52,0x83,0xA2,0xA8,0x07,0x98,0x4A,
+0x95,0x20,0xFA,0x3B,0x2B,0xC3,0xEE,0xEB,0xE1,0xFC,0x54,0x8E,0xF6,0xC6,0xF7,0x70,
+0xB8,0x10,0x26,0xB8,0xEE,0x6F,0x4C,0xE1,0xD7,0xE7,0x4E,0x82,0x2E,0x62,0xE8,0x61,
+0x8D,0xBF,0x4B,0xDB,0x5A,0x80,0x9D,0x9D,0x9C,0x23,0xE6,0xF7,0xFD,0xAA,0x7B,0x32,
+0x01,0xE4,0x7E,0xEB,0xAF,0x77,0x0A,0x1B,0x1C,0xE3,0x1C,0xBA,0x21,0x68,0xEA,0x5C,
+0x63,0x22,0xA7,0x4C,0xC3,0xE3,0xD7,0x41,0x64,0x0E,0x25,0x23,0x43,0xB0,0xA2,0x49,
+0xF6,0x01,0x51,0x02,0xE0,0x91,0xEA,0xD3,0xB9,0x30,0xD5,0xE5,0xA1,0x36,0x63,0xFE,
+0x31,0x16,0x1D,0x41,0x32,0x5A,0x64,0x7A,0x25,0x48,0x3D,0xD9,0x1D,0x71,0xCD,0x73,
+0x4D,0xF9,0xCC,0xF5,0x01,0xCB,0x4D,0x96,0x11,0x59,0x28,0xE8,0x34,0x79,0xDE,0x6D,
+0x2A,0x62,0x1B,0x9B,0x0D,0x3A,0xE1,0x99,0x62,0x20,0x64,0xA3,0x57,0x33,0x47,0xB1,
+0x12,0x30,0x1F,0x50,0xE9,0xEB,0x74,0x3C,0x5D,0xA5,0x04,0x40,0x9A,0x86,0x6C,0x91,
+0xC3,0xAE,0x3C,0x61,0xC6,0x68,0xE5,0xA1,0x3D,0xD4,0x61,0x15,0x99,0x49,0xCA,0xAE,
+0xEE,0x9E,0xE0,0xE2,0x9E,0xE9,0x29,0xCA,0x77,0x06,0x0C,0x3D,0xC6,0x1A,0x74,0x5D,
+0x75,0xAB,0xC8,0x3E,0x1F,0xD6,0xFF,0xDA,0x73,0x22,0x42,0x80,0xE8,0xBB,0x4F,0x03,
+0x1D,0xC1,0xB3,0x5C,0xCB,0x5C,0x5F,0xF3,0x65,0x18,0xE0,0x7E,0xE5,0xEC,0x3A,0xC8,
+0x20,0xCE,0xB9,0x5E,0x87,0x70,0xA3,0x5B,0x59,0x81,0x4A,0xFD,0xF3,0x32,0xA8,0xC6,
+0xF0,0xB7,0xE8,0xF1,0x2D,0x82,0xC0,0x6B,0x36,0x40,0x14,0xC7,0xED,0x4F,0x10,0xB5,
+0x7F,0x07,0x6A,0xFB,0x57,0xB4,0x27,0xCF,0x4A,0x89,0x63,0xE3,0x38,0xBC,0x7A,0x6F,
+0x10,0x3C,0xDA,0xF4,0xEF,0xAA,0x5A,0xBC,0x8C,0x37,0x05,0x89,0x2A,0x04,0x66,0x1E,
+0x9C,0x67,0xEF,0xC4,0xD0,0xCA,0xDF,0x5F,0x21,0x6C,0x73,0x64,0x8E,0x05,0x89,0x69,
+0x06,0xB5,0xB5,0x86,0x04,0x40,0x7F,0x76,0xD1,0xC9,0x0F,0x02,0x49,0x4E,0xFF,0xC2,
+0x1C,0x26,0xC1,0xC2,0x23,0x7C,0x66,0x59,0x15,0x7D,0x66,0x55,0xE2,0x45,0x12,0x88,
+0x98,0xDD,0x93,0x93,0x69,0x11,0xB4,0x71,0xC8,0x43,0x96,0x93,0xB3,0x8E,0x7F,0x8F,
+0xEC,0x92,0x25,0x46,0x29,0xCC,0xE4,0xD6,0xED,0x50,0xA5,0x81,0xEC,0xDD,0xC1,0x7C,
+0x77,0xA7,0x0D,0x9A,0x27,0x32,0x42,0xE4,0xD2,0xD5,0xC5,0x62,0x2C,0x3F,0x9F,0x97,
+0x4B,0x4F,0x75,0x06,0x38,0xEA,0xE6,0xF5,0x26,0x54,0xF7,0xB9,0x6D,0x11,0x99,0x17,
+0xA7,0xDE,0x5C,0x35,0xE3,0x5B,0xF6,0xB3,0xD9,0x41,0xB0,0xB0,0x5F,0x90,0x6D,0xCC,
+0xCD,0xB8,0xE2,0xF3,0xA1,0x89,0xAC,0x29,0xFD,0x44,0x46,0xFF,0x47,0xD6,0x2C,0x36,
+0x39,0xB6,0x7A,0x20,0xCE,0xD7,0x6D,0x13,0x8E,0x3D,0x0A,0xB4,0x4D,0x28,0x71,0xBD,
+0x42,0x08,0x60,0xF9,0xA3,0x86,0xA6,0x14,0x51,0x09,0xF5,0x4F,0xBE,0xD9,0x0A,0x44,
+0x11,0xDB,0xA8,0x6A,0x83,0x3E,0x87,0xE6,0xDA,0x5D,0x7A,0xD0,0x78,0x00,0xAD,0x26,
+0xF1,0x50,0x9A,0x6F,0xDD,0xFE,0x65,0x0D,0x30,0x6E,0x55,0x47,0xDA,0x3A,0xBB,0xD8,
+0x2B,0x85,0x69,0x05,0xA6,0x0D,0x94,0xF4,0x0C,0xF7,0xFF,0xC4,0x45,0x8B,0x5B,0xC0,
+0x19,0x7B,0xCF,0x0B,0x17,0x69,0x77,0x68,0x18,0xC7,0x52,0x07,0xF2,0xA0,0x79,0x0F,
+0x9B,0x36,0x24,0xA9,0x68,0xD4,0xA2,0x2C,0xB3,0xB2,0x65,0x6A,0x27,0x53,0x13,0xD5,
+0x2D,0x33,0xD0,0xF6,0x40,0xD3,0x0B,0x6C,0x53,0x03,0xFA,0x72,0xC0,0x21,0x8D,0xD4,
+0xB6,0x29,0xA2,0xE3,0xFF,0x3B,0x1A,0xC7,0xF0,0xAA,0x00,0xA8,0xA0,0xCD,0x91,0xA0,
+0x84,0xD7,0x04,0xED,0x4E,0x5F,0xF9,0x5B,0xE4,0x9A,0xAD,0x6B,0x17,0xE6,0xB3,0x6F,
+0x82,0x61,0xBD,0x1E,0xA8,0x81,0x66,0xC3,0xBB,0x6E,0xA8,0xDD,0x92,0x4C,0x65,0x7B,
+0x34,0x64,0x49,0x41,0x80,0x86,0xCF,0x83,0x5B,0xDF,0x37,0xC5,0x75,0x3E,0xFB,0x7A,
+0xED,0x5A,0x0D,0x11,0x4B,0xD4,0xCB,0xBB,0xB9,0x64,0xA7,0xE0,0xEC,0xB4,0xE2,0xEB,
+0x96,0xE4,0x17,0xC8,0x26,0x85,0x00,0xBC,0x66,0x50,0x58,0x1B,0x1F,0x45,0x99,0x12,
+0x5E,0x02,0xF7,0x87,0x35,0xAC,0x08,0xA2,0xD8,0x03,0x07,0xE8,0x88,0x57,0x53,0x77,
+0xBE,0x89,0xC5,0x82,0x6B,0x6C,0xEA,0x49,0x32,0x30,0x28,0x7F,0x2A,0x6D,0x45,0x89,
+0xE4,0x1D,0x18,0xEE,0xD0,0xB8,0x8B,0x5A,0xCE,0x39,0xA5,0x16,0x3F,0x7C,0x71,0xB8,
+0xD8,0xF5,0x60,0x72,0xCF,0x60,0x2F,0x4B,0x3A,0xB8,0x97,0xCD,0x7E,0x52,0x77,0x38,
+0x62,0xEA,0x8F,0x1B,0x49,0xDB,0xC1,0x86,0x15,0x29,0x14,0x50,0x15,0xBB,0xC4,0x99,
+0x08,0x8C,0x31,0xDD,0x0B,0x09,0x9B,0x1C,0x31,0x2C,0xE2,0x1F,0x0D,0xFD,0x85,0x63,
+0xB3,0x74,0xAC,0x2A,0xCB,0x2E,0x0B,0xF6,0xFD,0x10,0x34,0xFA,0xB0,0x28,0xFA,0x27,
+0xA9,0xE7,0xD8,0x6E,0xEC,0x12,0x12,0xD9,0x39,0xA4,0x5D,0xAD,0x1B,0x23,0x17,0x6D,
+0x43,0xC0,0x48,0xAE,0xC1,0x9E,0x89,0x79,0x05,0x3D,0xF7,0x2E,0xBE,0xB0,0x29,0xD3,
+0x37,0x8F,0xFE,0x7B,0x81,0x43,0xD9,0xDE,0x20,0x2E,0xC4,0x3C,0xE1,0xE3,0x97,0x20,
+0xD0,0x55,0x07,0x13,0xBF,0xE6,0x4A,0x60,0xA2,0xE4,0x31,0x4C,0x6A,0xD1,0x92,0xC0,
+0x5F,0xE5,0x85,0x19,0xC5,0xD0,0xAD,0xC4,0xDE,0x2D,0x46,0x68,0xBF,0x22,0xF8,0x1A,
+0x33,0x35,0x82,0x2C,0x38,0x98,0xB2,0xF0,0xC9,0x01,0x21,0xCB,0xDC,0x68,0x61,0xC6,
+0xBF,0x6E,0xB7,0x1C,0x07,0xF8,0x37,0x13,0x64,0x5A,0x57,0x26,0x78,0x69,0x8E,0xB1,
+0xDA,0xF9,0xA5,0xD6,0xF7,0x84,0x92,0x75,0x9B,0x4F,0x10,0x2F,0xBA,0xD6,0xA7,0xAC,
+0x41,0xCC,0x8D,0x0A,0x76,0xBB,0x44,0x65,0x9F,0x6B,0x5E,0x92,0x94,0x77,0x9C,0xF2,
+0x8F,0x9C,0xD4,0xB6,0x6F,0x22,0xCE,0xF4,0xB1,0xEC,0x18,0x52,0xA1,0x5F,0x40,0x69,
+0xB2,0x93,0xDE,0xB4,0x23,0x0E,0x32,0x5C,0x8D,0x75,0xB2,0xD1,0xB7,0x81,0xD2,0x67,
+0x85,0x30,0x76,0x73,0xE5,0x68,0x8C,0x36,0x8A,0x4D,0x36,0x0C,0x05,0x5E,0xAF,0x1E,
+0xE2,0xAB,0xA1,0x1D,0xE9,0x99,0x20,0x39,0xF9,0x34,0x7A,0x47,0x66,0x14,0x36,0xC2,
+0x6C,0xFC,0x51,0x89,0x2E,0x3A,0x88,0x0E,0xD5,0xB9,0x33,0xBA,0xCB,0x24,0x22,0x01,
+0xBD,0x62,0x72,0xB8,0x01,0xB9,0x19,0x93,0xB5,0xC8,0x56,0xEF,0xC8,0xEB,0x84,0x3E,
+0xCC,0x70,0xCA,0xA4,0x2B,0xB1,0xBA,0xEE,0x8C,0x63,0x77,0x8C,0x11,0xDD,0x4A,0xE6,
+0xAE,0xB6,0x13,0x03,0x47,0x25,0x67,0xB4,0xF4,0x8E,0x4E,0x15,0x73,0x05,0x02,0xF3,
+0x9E,0x44,0x70,0xA9,0xDA,0x08,0x09,0xD5,0xCD,0x25,0x6F,0x76,0x4F,0x1C,0x25,0xDC,
+0x59,0x53,0x3C,0xEA,0x08,0xC3,0x87,0x7C,0x51,0x5D,0x87,0x4A,0xF3,0x5B,0x8B,0x51,
+0x3A,0x72,0x97,0xD3,0xC3,0x91,0x83,0x44,0x09,0x91,0x06,0x21,0xA4,0xAB,0x1F,0xDF,
+0x19,0x54,0x95,0xC2,0xE0,0xE3,0xBE,0xD6,0x14,0x3F,0xD1,0x0D,0xFA,0x6A,0x70,0xE5,
+0x22,0xED,0x26,0x33,0xB2,0xD2,0xF0,0x32,0x74,0x4E,0xB4,0x58,0xAF,0xC7,0x93,0x9D,
+0x17,0x42,0x4B,0x50,0x06,0x3D,0x21,0x4E,0x3F,0x8A,0x1C,0x2D,0x7C,0x0F,0x00,0xCE,
+0xA1,0x47,0xBF,0x0F,0x04,0x32,0x2B,0x73,0x52,0x41,0x4D,0x2A,0x4A,0xE8,0x7A,0x6A,
+0x90,0x52,0xAE,0x3B,0x56,0x03,0x65,0x97,0xD4,0xAF,0xF6,0xE7,0xFF,0x9E,0x2F,0x53,
+0x3B,0x95,0xE5,0x4D,0x27,0x40,0x16,0xE1,0x98,0x53,0xDA,0x4F,0x90,0x11,0x12,0x8D,
+0x57,0x45,0xE2,0x78,0xBD,0xE9,0x40,0x5D,0x37,0x02,0xA3,0x9F,0xB5,0xDC,0xA5,0x91,
+0xF5,0xC5,0xBC,0xF1,0x3D,0x13,0x80,0x10,0x67,0x46,0x9D,0x46,0x1E,0xD7,0x48,0xDB,
+0xEA,0x0B,0xC6,0x7C,0x10,0x9F,0x1B,0xB0,0x16,0x35,0xDE,0x30,0x7F,0xC0,0xA6,0xF1,
+0x2B,0xAA,0x33,0xCC,0xCA,0xEB,0x1D,0xAB,0x88,0x47,0x39,0x31,0xFE,0x0C,0xFE,0x9A,
+0xFE,0x8E,0x6C,0xAA,0xAB,0x4B,0x7A,0xA3,0xFC,0x06,0xF1,0xA7,0xAE,0x55,0x42,0x54,
+0x00,0x2C,0x56,0xBC,0x44,0xEF,0x7B,0xD4,0xE8,0x36,0x5C,0x64,0xE0,0x71,0x46,0xE9,
+0xD7,0x04,0xCC,0x7E,0xE7,0x67,0x86,0x0B,0x0C,0xA3,0x8D,0xC1,0xB3,0xE7,0x5C,0x18,
+0xB7,0xCE,0xD0,0x7D,0x5A,0xF2,0xC9,0x98,0xD9,0x15,0xC2,0xB5,0xC9,0x79,0x55,0xF7,
+0x35,0x83,0x3B,0xDF,0x4F,0x9A,0xEF,0x06,0x4C,0xF3,0x50,0x66,0x82,0xA9,0x0E,0xFC,
+0x0A,0x80,0xF4,0x79,0x3E,0xD9,0x9C,0x70,0x5E,0xED,0xBC,0x25,0xE8,0xD2,0x6C,0x94,
+0x14,0xA9,0xFC,0x6A,0x62,0x16,0x74,0xA6,0xC6,0xB1,0x1A,0xA4,0x7D,0x9D,0xD1,0x07,
+0xA5,0xFD,0xC3,0x58,0x9A,0xD5,0x59,0x72,0x59,0xD5,0x38,0xF8,0x19,0x7E,0x60,0x9B,
+0xEC,0xBD,0x7F,0x8F,0x9D,0x51,0x61,0xAF,0xF3,0xB6,0xCA,0xC8,0xEE,0xE9,0x95,0x1D,
+0x9C,0x48,0xB5,0x0D,0xBE,0x23,0x5C,0x3D,0x24,0x0A,0x8A,0x81,0x3E,0xEE,0xA0,0x71,
+0x56,0xA2,0x90,0xE6,0x3C,0xD6,0x96,0x4D,0xAD,0x54,0x0A,0x23,0x20,0x93,0x18,0x02,
+0x8B,0x26,0xA8,0xE1,0x90,0x65,0xDB,0xFD,0x75,0x58,0x71,0x05,0x49,0x27,0xDC,0x55,
+0x74,0x63,0xE0,0x69,0xA3,0xF4,0xF2,0x11,0xF6,0x84,0x41,0x28,0xD3,0x62,0x63,0xFB,
+0xCA,0xC6,0x73,0x57,0x30,0x27,0x3A,0x42,0x96,0xF5,0x24,0x7D,0x8B,0x98,0xF5,0x48,
+0xE3,0x4C,0xD3,0x83,0xB7,0x59,0xC2,0xD2,0x9E,0x7D,0x9B,0xCF,0x6B,0x43,0x43,0x09,
+0xFF,0x69,0x1E,0x34,0xAC,0xCF,0x42,0x7E,0x86,0xE1,0xC7,0x03,0xF0,0x94,0x2D,0x6E,
+0x0F,0xDD,0xFA,0xB0,0xDB,0xCD,0x1F,0x88,0xD7,0xB3,0x3C,0x87,0x0C,0x6F,0x54,0xAA,
+0x8E,0x7B,0xA6,0x28,0x5D,0x76,0xF1,0x45,0x68,0xF6,0xA6,0x29,0xDF,0xA7,0xC7,0xF9,
+0x95,0x0F,0xA0,0xF2,0xEF,0xD8,0x0E,0xB9,0xA1,0xF8,0xFB,0x2C,0x01,0x38,0x21,0x61,
+0x40,0x2B,0xFF,0x94,0x7F,0xC1,0xDA,0x8A,0x5F,0xFB,0x79,0x78,0x2F,0x99,0x1A,0x3F,
+0x24,0x5B,0x9F,0xC0,0xEB,0x96,0x2A,0x04,0x6D,0xC4,0x2D,0xC9,0x6D,0x78,0xBA,0x80,
+0x8F,0x15,0xDC,0x08,0x78,0x37,0x1D,0x00,0x6F,0x7C,0x1D,0xEE,0x77,0x1A,0xD1,0x28,
+0xE3,0x4F,0x48,0xD5,0xA1,0x55,0xDB,0xA7,0xB7,0x1E,0x08,0xA6,0xEE,0x23,0x3C,0x50,
+0x7E,0x2E,0x65,0xBB,0xC2,0x65,0x29,0x0D,0xAE,0x22,0x27,0x81,0x8D,0x02,0x97,0x69,
+0xAC,0x87,0xAE,0x35,0x8E,0xA2,0x3E,0x4E,0xE9,0x9E,0xAA,0x2F,0xB1,0xEA,0xEF,0xF5,
+0x41,0xCD,0x05,0x3E,0xC4,0x7E,0x5D,0xD7,0xEC,0x68,0xE5,0x0B,0xF7,0x5B,0xFF,0x2E,
+0x4D,0xC2,0xF4,0x92,0x13,0x19,0xC6,0xB9,0xA6,0x0B,0x39,0x92,0xBC,0x17,0x86,0x5D,
+0x8A,0xF5,0x57,0x3A,0xE3,0x97,0x91,0x2D,0x96,0xA6,0xFA,0x86,0x41,0x5E,0x0B,0x71,
+0xA5,0x68,0xD4,0xAB,0xC0,0x46,0x0F,0x1C,0x59,0xA5,0xC5,0x20,0x14,0x3B,0x7A,0x11,
+0x53,0x8E,0xE9,0x20,0x17,0x21,0x94,0x72,0x64,0xD7,0x57,0x03,0xD4,0x7D,0xFD,0x3F,
+0xD2,0x9E,0xD6,0xF6,0x3F,0xBA,0xA1,0xAE,0xC5,0xF9,0x09,0x38,0x69,0x33,0xD9,0x3B,
+0xCB,0x0F,0x4F,0x7C,0x66,0x74,0xF1,0x12,0xED,0xCC,0x92,0xE4,0xA9,0x75,0x5E,0x15,
+0x87,0xA7,0x63,0x80,0x6C,0x49,0xFE,0x10,0x33,0xDA,0x9C,0x76,0x2A,0xDF,0xC7,0x29,
+0x1B,0x9B,0x8B,0xF8,0xB5,0x2B,0x38,0xB7,0x63,0x07,0x3B,0x36,0xB7,0x5C,0x56,0x06,
+0x61,0x3F,0xBD,0x1F,0x37,0xA4,0x88,0xBD,0x90,0xD2,0xE1,0x5C,0x93,0x2B,0x9F,0x7A,
+0x9C,0x0B,0xF5,0x00,0x30,0xC8,0x58,0x88,0xDA,0xB1,0x3D,0xC5,0x30,0x4C,0xB3,0x6D,
+0xA3,0xE8,0x95,0x85,0x05,0x44,0x03,0xB8,0xDB,0x15,0x4A,0x2A,0xDD,0x3A,0xE8,0xC0,
+0x6F,0x0D,0x43,0xB9,0x1E,0x48,0x19,0x8E,0x9A,0xDD,0xDC,0x5E,0x01,0x59,0xA2,0x59,
+0x48,0x22,0x7F,0xA0,0x6A,0x52,0x8A,0xCA,0x91,0x76,0x96,0xB3,0x56,0x30,0x16,0x9D,
+0x65,0x82,0xF3,0x3B,0xFA,0xB8,0xAD,0x0A,0x02,0xD3,0x28,0x8D,0xD5,0x9A,0x8F,0xA1,
+0x25,0x25,0x2E,0x6B,0x4C,0xCC,0xE2,0xDF,0x51,0x8C,0xDB,0x33,0xC7,0xA9,0x9C,0x84,
+0x74,0xA1,0xD5,0x39,0xAA,0x1F,0x70,0x4A,0xCE,0x52,0x43,0xD5,0xED,0xC8,0x8B,0x6A,
+0x6B,0xB0,0x0D,0x9D,0xD2,0x23,0x98,0xD6,0xE0,0x13,0xC3,0xD3,0x36,0xFA,0x0A,0x9E,
+0xED,0x7D,0xB6,0x73,0x3D,0x99,0x87,0xBF,0x09,0x78,0x62,0x60,0xAB,0x79,0x9B,0xB1,
+0xAF,0xE7,0x64,0x29,0x83,0xF3,0xE1,0x79,0x4F,0x60,0x98,0x21,0xE4,0x8F,0x9E,0x95,
+0xEF,0x40,0xB9,0x79,0xBF,0x16,0x37,0xB5,0x06,0x81,0x10,0x46,0x1B,0xCA,0xD6,0x1D,
+0x82,0x47,0xE8,0xB2,0xA5,0x6D,0x89,0x6C,0xF7,0x72,0xE9,0x3D,0xE0,0x35,0xE2,0xC2,
+0x91,0x59,0xC1,0xBA,0x45,0xA5,0x6F,0x23,0xE5,0xE5,0x8C,0xF7,0x13,0x6A,0xB1,0x7C,
+0xCF,0xB2,0x01,0x58,0x77,0x45,0xE4,0x26,0xDF,0x47,0x72,0xE1,0x84,0x45,0x82,0x96,
+0x5B,0x3C,0x56,0xA8,0x10,0x4D,0x44,0x47,0x7F,0xCD,0x5B,0x35,0x53,0x6D,0x18,0x54,
+0xEA,0xA0,0x32,0x4B,0xB6,0x7F,0xBA,0x49,0x54,0x7A,0x94,0x17,0x90,0xC0,0x28,0x40,
+0x0C,0x38,0xEC,0xD4,0x0F,0x79,0x0C,0xBA,0xFE,0xFF,0x80,0xC1,0x26,0xC5,0xDC,0x1F,
+0x24,0x78,0xEB,0x7D,0xFB,0xCF,0x09,0xE5,0x8C,0x18,0x81,0x5F,0x3E,0x5A,0x6D,0xFF,
+0xF9,0xBE,0x1B,0x43,0x14,0x75,0x16,0x8C,0x15,0xB2,0x02,0x63,0xD2,0xCB,0x44,0xCC,
+0x4B,0x42,0xB5,0xBC,0x12,0x6E,0x62,0x56,0x8A,0x6C,0x9A,0x85,0xD7,0x96,0x4A,0x05,
+0xDB,0x71,0xAC,0x68,0x4D,0xBB,0x46,0x30,0x2B,0x42,0xC4,0xBE,0x83,0x14,0x49,0xFB,
+0x4F,0xFF,0xFB,0x98,0x2D,0xDF,0x36,0x64,0xCA,0x00,0x7B,0x1E,0x32,0x40,0x76,0xC9,
+0x94,0xB9,0x4A,0x88,0xC1,0x31,0xAB,0xF3,0x2A,0xE6,0xB3,0x51,0x86,0x49,0x47,0x32,
+0x13,0x29,0x34,0x70,0x61,0x18,0x21,0x27,0xF1,0x06,0xF2,0xE7,0x34,0xF6,0xCF,0x3A,
+0x08,0x85,0xA2,0xF0,0xAC,0x04,0x04,0x90,0x26,0x9D,0x95,0x89,0xF8,0xAA,0x53,0x22,
+0x7F,0x73,0xA0,0xAD,0x48,0xF4,0xB0,0x14,0xDD,0x61,0x51,0xF0,0x7C,0x51,0x01,0x73,
+0x1A,0xC6,0x4E,0xEE,0x07,0x67,0x25,0xA9,0x5C,0x53,0x8A,0x04,0x7A,0xE7,0xB8,0x80,
+0x98,0xB6,0xBB,0x24,0x22,0xAD,0xCF,0x42,0x21,0x4D,0xF9,0xBC,0xD8,0x67,0xE6,0x09,
+0x34,0x06,0x08,0x69,0x1A,0x70,0x4B,0x45,0x95,0x24,0xAE,0x78,0xFE,0x1C,0xEA,0xD1,
+0x07,0xEA,0x99,0x40,0x52,0x8F,0x0E,0xCD,0xD0,0xBE,0x00,0xC7,0xD3,0x2C,0x36,0x52,
+0x9A,0x8B,0xB4,0x2E,0x46,0xF1,0xED,0xDD,0x60,0x85,0x6F,0xC8,0xDE,0xD1,0x5F,0xFA,
+0xC6,0x5D,0x7B,0xC6,0x4E,0xEF,0xC4,0xCE,0x2F,0x10,0xFC,0x75,0x5F,0x77,0x03,0x62,
+0x3E,0x89,0xB8,0xEB,0x71,0x5E,0x90,0xFC,0xCC,0x74,0x60,0xC4,0x03,0x55,0x67,0xFD,
+0x39,0x54,0x3C,0xD3,0xCD,0x17,0xD0,0x2B,0x5B,0x83,0xE6,0x31,0x33,0xA7,0x04,0x57,
+0xE0,0x2F,0x82,0xC9,0xE4,0xFB,0x41,0x18,0xC3,0x8D,0x12,0xE2,0x9F,0x31,0x84,0x4C,
+0x43,0xF0,0x0A,0x34,0x7E,0x2C,0x69,0xDA,0x55,0xDE,0xE3,0xF8,0x3A,0xE0,0x11,0xA8,
+0xFE,0x63,0x9F,0x7B,0x62,0x4C,0xA3,0xD9,0xCB,0xA4,0x0C,0xF1,0x4E,0xAF,0xA7,0x7D,
+0xEB,0xFD,0xF7,0x5D,0x89,0xCE,0xEE,0x7B,0x1B,0xEF,0x07,0xAA,0x9D,0x3D,0x41,0xE8,
+0x99,0xEB,0x7E,0x32,0x0E,0x0E,0xA8,0x55,0x65,0x73,0x20,0xEC,0xBD,0xF0,0xF4,0xC3,
+0xB4,0x4B,0xF2,0xA9,0x74,0x11,0x66,0xD8,0x72,0x12,0x0A,0x02,0xCB,0xB3,0x87,0xB2,
+0x6E,0x50,0x86,0xAF,0x81,0xD0,0xC7,0x68,0xBE,0x93,0x61,0x5A,0xCA,0x54,0xF5,0x2C,
+0x0F,0x58,0x26,0xC8,0xDE,0x05,0xE3,0x0E,0xE7,0xC3,0xAF,0xE6,0x5C,0x9C,0xB4,0x58,
+0xA0,0x88,0x5F,0x99,0x0D,0x5A,0x2A,0xAB,0x5A,0x27,0x91,0xDE,0xD1,0x20,0xF3,0xF6,
+0xF2,0x6C,0x6E,0xD7,0x1C,0x6B,0x3F,0x9F,0x2C,0x92,0xA8,0x8B,0x1C,0x9B,0x1D,0x70,
+0x83,0x1A,0x2D,0xA4,0x57,0xC0,0xF8,0xE9,0xA3,0xFD,0x76,0xB6,0xB4,0xB7,0xE1,0x3C,
+0x19,0xA6,0x84,0xF2,0x50,0xAC,0x28,0xDC,0x6E,0xD8,0x6A,0x01,0x64,0xCE,0xB0,0x93,
+0x67,0xBF,0xFC,0x31,0x25,0xC1,0x1F,0x77,0x19,0xC9,0x24,0xBB,0xDA,0x6B,0x23,0xAD,
+0x44,0x2D,0x8E,0x0C,0x27,0xE2,0x39,0x66,0xD8,0x97,0x1E,0xD4,0xF6,0xBC,0x8D,0xB0,
+0x16,0xC9,0xBF,0x42,0x94,0xD9,0x80,0x97,0x75,0xC2,0x66,0x37,0xA3,0xD9,0xFC,0xD0,
+0xA2,0xB5,0x50,0x93,0xF9,0xEC,0x2F,0xF4,0xBD,0x11,0x35,0xA4,0xD6,0x71,0x38,0x9B,
+0x81,0x94,0x45,0xA5,0x49,0x86,0x06,0x9F,0xD2,0x61,0xE8,0x48,0x8E,0xB4,0xF6,0x17,
+0x3D,0x43,0x0C,0xE5,0xCD,0x81,0xDB,0xA7,0x20,0x51,0x42,0x2B,0x7B,0x32,0x01,0x80,
+0x02,0x71,0xBD,0xB1,0x0E,0x79,0x0F,0x8A,0x02,0x0D,0xDD,0x4F,0xCA,0xAE,0x65,0x63,
+0x0A,0x62,0xA3,0x98,0xC1,0x25,0xD9,0x62,0xA4,0x8C,0x45,0x13,0x77,0x3D,0xF0,0x2C,
+0x1E,0x72,0xDD,0x7B,0xEC,0xB8,0xB8,0x0C,0x59,0x81,0xED,0x7A,0x78,0x52,0xCB,0x9C,
+0x56,0xFA,0x22,0x3E,0x7D,0x8B,0x54,0x25,0x69,0xAC,0x6E,0xA6,0xC7,0xFC,0x51,0xD9,
+0x6E,0xFD,0xFF,0xBA,0xCE,0x27,0xE4,0x68,0x12,0x8A,0xB6,0xAA,0x03,0xAB,0x38,0x6D,
+0x4B,0x16,0x35,0x50,0x3B,0xA5,0x94,0xA2,0x92,0x28,0x3F,0xF4,0xBB,0xD8,0x26,0x10,
+0x04,0xAB,0xA6,0xC5,0xD5,0xC0,0x21,0xE1,0x24,0x2E,0xCC,0x4D,0x4F,0x03,0x14,0x91,
+0xE0,0x2F,0x56,0x71,0xD7,0xB7,0xD7,0xBC,0xDF,0xAA,0x9D,0x1F,0x36,0xC7,0xE8,0x6A,
+0x2D,0x98,0x4A,0x54,0x41,0xAC,0x7B,0x3C,0x83,0x66,0x85,0x83,0x58,0xA0,0x73,0xBD,
+0x8D,0x4C,0x63,0xDE,0x3F,0x2B,0xEB,0xC4,0x3C,0xD4,0x8D,0x0B,0xEE,0xE1,0x93,0x66,
+0x61,0xDB,0x8D,0x43,0x8E,0xF0,0xAD,0xD4,0x35,0x60,0x76,0x3A,0xA1,0x29,0x75,0x86,
+0x01,0x8F,0xE9,0x33,0xD9,0x64,0x23,0x24,0x61,0xD1,0x44,0x05,0x01,0x96,0x37,0x67,
+0x5E,0xE9,0x3C,0x17,0xC0,0xF4,0x10,0xF0,0xE3,0x85,0xBA,0x06,0x3A,0xC8,0x19,0xC6,
+0x58,0x33,0x27,0x63,0x6E,0x46,0xEC,0x0F,0xBE,0x80,0x73,0x08,0xDC,0x50,0xC7,0x59,
+0xB5,0x4B,0xBE,0x5A,0x25,0x1D,0xE7,0xDF,0x04,0x84,0x24,0x74,0x1B,0x67,0x64,0xF1,
+0xD8,0x28,0x8B,0xF5,0xCA,0xA9,0x9B,0x0E,0xAC,0xF1,0x6F,0xB0,0x88,0x34,0xB7,0x39,
+0x6B,0xD9,0xB0,0x4C,0xFB,0xFB,0x7F,0x40,0xC9,0xA4,0x0F,0xC1,0x6B,0x4C,0xE2,0x94,
+0x69,0xC8,0x93,0x6A,0x89,0xD8,0xED,0x7D,0x1E,0x88,0x12,0x6F,0x04,0x76,0xBC,0x55,
+0x1C,0x63,0xFE,0x5D,0xF1,0xA6,0xF4,0xBE,0xBB,0x36,0x2C,0xFC,0xBE,0x38,0xAD,0x22,
+0x1B,0x56,0x92,0x8D,0x58,0x3C,0x48,0xE8,0xC2,0xE6,0x83,0xAD,0x09,0x24,0x88,0xEF,
+0x50,0x20,0x39,0x4A,0x1B,0x4D,0x3E,0x9B,0xEE,0x4E,0xCF,0x51,0x34,0xFA,0xE7,0x60,
+0x41,0x14,0x08,0x5F,0x2A,0x1F,0xDA,0xD5,0x55,0x83,0x49,0xBF,0x61,0xC3,0x52,0x16,
+0x92,0xB1,0x57,0x96,0x53,0xB0,0x0A,0x84,0xE9,0x0E,0xE7,0xF8,0x59,0xFD,0xB6,0xAB,
+0xCD,0xD7,0x82,0xB2,0xF3,0xD1,0x02,0xE3,0x21,0x98,0x93,0xB9,0xE5,0x33,0xE6,0xF2,
+0x38,0x67,0x43,0x13,0x87,0x0B,0x19,0xE5,0xC6,0x99,0x0D,0xCB,0xBD,0x58,0x67,0x3E,
+0x42,0xEA,0x5C,0xDD,0x0B,0x26,0xB9,0x7E,0x85,0xEF,0x7C,0xB8,0x53,0x72,0x06,0x29,
+0xC5,0xC4,0x9C,0x9B,0x82,0x54,0xAF,0x11,0x48,0xCF,0x57,0x0D,0x15,0x55,0x9A,0x57,
+0x2E,0x66,0x1E,0xD6,0xEA,0x41,0x31,0x37,0xDA,0x1C,0xC2,0xEB,0x4E,0x5E,0xD1,0x87,
+0x32,0x65,0x7E,0x1C,0x7F,0xFC,0xA2,0x78,0x95,0x68,0x17,0x5D,0x47,0xB1,0xAB,0x19,
+0xA8,0xA7,0xA9,0x34,0xF7,0x5F,0x7D,0x85,0x44,0xCD,0xF3,0xC8,0x5D,0x40,0xF8,0x8F,
+0x49,0x07,0x16,0x76,0xE0,0x1C,0xBA,0xC9,0x4F,0x8F,0x7F,0xA4,0x95,0x18,0x60,0x97,
+0x7C,0x37,0x9A,0x2D,0x80,0x23,0x59,0x4C,0x39,0x62,0xD2,0xFF,0x7A,0x6F,0xC4,0x96,
+0x7B,0x02,0xF6,0xFD,0xC8,0xDE,0x6D,0x53,0x5E,0xC1,0xC5,0xD3,0xE3,0xB3,0xA7,0xDC,
+0xF9,0x08,0x79,0x4D,0xFE,0xA4,0xC9,0xB4,0x29,0xE5,0xB9,0x1A,0x89,0x69,0x72,0x2F,
+0x20,0xAF,0x1B,0x8B,0x16,0x38,0xF5,0xCC,0xAA,0x78,0x96,0x8B,0xC9,0xCE,0xAF,0x7F,
+0x2A,0xAD,0x26,0x84,0x3A,0x74,0x5D,0x30,0x00,0xFB,0xAA,0x12,0x5B,0xC0,0xB9,0xA1,
+0x73,0x11,0xE8,0xD4,0xA3,0x6D,0xCC,0xBA,0x46,0x3B,0x84,0x95,0x87,0x5B,0x8C,0x89,
+0x5B,0xCD,0x73,0xE1,0x9C,0xEC,0xDC,0x6C,0x08,0x86,0x80,0xB1,0xBC,0x05,0xA2,0x28,
+0x8C,0xA3,0x14,0x7A,0xA1,0x1A,0x3A,0xE7,0x4E,0x46,0xAE,0x36,0x9F,0x97,0xD0,0x15,
+0xAF,0x92,0xC5,0xE4,0x22,0x35,0xA7,0x76,0x2B,0x13,0xCE,0x47,0x39,0xA8,0xD3,0xDA,
+0x5F,0x06,0x4B,0xB3,0x81,0xF2,0x90,0xDE,0x62,0xEE,0xE2,0xCA,0x2D,0x6B,0x7E,0xEA,
+0x88,0x68,0x2C,0x28,0x70,0xFE,0x9F,0x72,0x2E,0xA5,0x91,0xB3,0xB4,0xB7,0x1D,0xA0,
+0xC2,0xF1,0xF0,0x4B,0xDB,0x13,0xD5,0x79,0x9F,0xE3,0x4A,0xA3,0x90,0xF8,0xEB,0xA5,
+0x8E,0xB2,0x37,0x5C,0x10,0xC1,0x7C,0xF7,0x77,0xDF,0xD6,0xDB,0x3E,0x75,0x57,0xE2,
+0xED,0x18,0x07,0xAE,0x3D,0x5C,0x1D,0x99,0x56,0xBC,0xEF,0x70,0x19,0x5A,0x6B,0xFB,
+0x34,0xBF,0x65,0x68,0xA9,0x30,0x47,0x44,0x6F,0x25,0x97,0x9D,0x51,0x4F,0x09,0x23,
+0xB7,0x5A,0x9D,0x7C,0x9E,0x9B,0x2A,0x31,0x2F,0x6C,0x40,0x21,0xE0,0xD3,0x6D,0xC0,
+0x43,0x05,0x2B,0x79,0x99,0xB3,0x6A,0x98,0xB0,0x74,0xA0,0x90,0x7E,0xD2,0x8A,0xB2,
+0xFA,0xF6,0x2D,0xCF,0x47,0x55,0xF2,0x07,0xB5,0xC2,0xFF,0x64,0xA8,0xC6,0x0F,0x18,
+0x5C,0xF8,0x1F,0x31,0x23,0xE4,0x6E,0xE4,0x18,0x01,0xEB,0x54,0x8A,0x09,0xB8,0x33,
+0x3B,0x99,0x17,0x91,0x74,0x70,0xE0,0x14,0x30,0xD6,0x29,0xCE,0x5E,0x20,0x32,0x93,
+0x09,0x9C,0xF7,0x1A,0xB4,0x2E,0x0B,0xF6,0x1F,0x41,0xC3,0xFD,0x48,0xDE,0x90,0xA9,
+0xE9,0xD3,0x3F,0xFC,0x9D,0x3D,0x15,0xFE,0x40,0xB2,0x7D,0xAE,0x82,0xBB,0x07,0xBB,
+0xF3,0x0A,0x44,0x42,0xCC,0x50,0x12,0x35,0xBF,0x49,0xA2,0x9A,0xF9,0x42,0xF4,0x4A,
+0xCF,0xC6,0xA1,0x94,0x11,0x10,0xB5,0x65,0xFA,0xB6,0x2A,0xD2,0x9E,0xCA,0x15,0x03,
+0x71,0x00,0xCB,0xF2,0xC3,0x52,0x2F,0x3F,0x0C,0xF9,0x0E,0xD7,0xDF,0x30,0x0D,0x45,
+0x9E,0x69,0x71,0xED,0x78,0xD4,0xE2,0xD1,0x8F,0x64,0x21,0x46,0x6C,0x91,0x66,0xAC,
+0xE6,0xF5,0x4D,0x05,0xA0,0xCB,0xF3,0x75,0xBD,0xBF,0xD5,0xC7,0x6A,0x11,0x27,0x82,
+0x00,0x60,0x9E,0x97,0x5B,0x9A,0x77,0x27,0xDC,0x95,0x3B,0xD0,0x8C,0x89,0xF9,0x1D,
+0xB6,0xB5,0xEA,0xD8,0x86,0xDA,0xD0,0x77,0xEF,0x87,0x1E,0xC3,0x32,0x7A,0xA6,0x4E,
+0x26,0x75,0x00,0xFF,0x0A,0xF7,0x70,0xEC,0x45,0x04,0x22,0x5A,0x0C,0xC4,0x03,0xDD,
+0x52,0x31,0x1A,0x6C,0x36,0xD0,0x5F,0xF5,0x2C,0x53,0xE6,0xEE,0xE1,0x8E,0xA8,0xD6,
+0x84,0x76,0x6D,0x94,0x89,0xA1,0xC3,0xA8,0x5A,0x5B,0xAF,0x5C,0x55,0x9B,0xDA,0x11,
+0x78,0xD8,0x92,0x26,0x53,0xD5,0xC5,0xB3,0xBC,0xC4,0x71,0xC4,0x08,0x95,0x13,0x14,
+0x39,0x38,0x49,0x90,0xBB,0xF5,0xFC,0x19,0xC1,0x1B,0xC3,0xBD,0x83,0xA7,0x16,0xF4,
+0xB7,0x6F,0xB9,0x04,0xEF,0x85,0x9C,0x7D,0x61,0xFA,0x81,0x02,0xD7,0x98,0x24,0x45,
+0xEF,0xF7,0xA1,0xCC,0xF8,0xE2,0xB0,0xDE,0x38,0x20,0xC5,0x34,0x35,0x1E,0xE5,0xF2,
+0x7F,0x89,0x59,0x4B,0x2C,0x68,0x10,0xF7,0x8E,0xFB,0x25,0x75,0x8A,0x96,0xED,0x40,
+0xB5,0x63,0x7C,0xA0,0xCB,0x73,0x99,0x32,0x2F,0x0C,0xA2,0x97,0x92,0xD0,0xAC,0xBA,
+0x43,0x61,0x21,0xD7,0x4F,0xC7,0x7D,0xC2,0x56,0xF7,0x5E,0x53,0x69,0x82,0xFD,0x3E,
+0x70,0x78,0xF5,0x47,0x9D,0x0C,0xF3,0x6B,0x63,0xF0,0x8E,0x3F,0xA4,0x37,0xD6,0x1E,
+0x00,0x8D,0x3F,0xC5,0x76,0xE6,0xD6,0xA1,0xDB,0x8D,0x90,0x4C,0x24,0x69,0x5F,0xBC,
+0x2C,0x5A,0x91,0xD8,0x12,0xCD,0x83,0x49,0x18,0x01,0x7D,0xC6,0xEF,0xE7,0x8D,0x15,
+0xC0,0xCB,0xB8,0xEB,0x9A,0x88,0xCB,0xB6,0xA7,0x44,0xE7,0x68,0xDF,0x3B,0x0E,0x38,
+0x9B,0xB8,0x17,0x19,0x11,0x07,0x9F,0x29,0xAA,0xFE,0xD3,0x3A,0xB4,0xD2,0xBD,0x99,
+0x4D,0x77,0xFF,0x45,0x02,0x2E,0x97,0x37,0x17,0xB1,0x46,0xA9,0x12,0x8E,0x25,0x18,
+0x92,0xFF,0x02,0xE6,0xF4,0x13,0x1C,0xD1,0xEE,0x8A,0x40,0x20,0x64,0xD5,0x88,0xF5,
+0x4F,0x7B,0x3A,0xE1,0x23,0x53,0xA0,0x98,0x1B,0x1D,0xB7,0xA6,0x96,0xB6,0x22,0xC5,
+0x36,0xC9,0xE5,0x9C,0x05,0xAA,0xAF,0xEA,0x27,0x84,0x1D,0x25,0x23,0xC0,0x77,0xFC,
+0xE9,0x41,0x18,0x3F,0xC7,0x82,0x35,0x3D,0x3D,0x12,0x4E,0xD4,0xF2,0x55,0x93,0x59,
+0x3B,0x34,0x8C,0x34,0xA4,0x2D,0x58,0x08,0x75,0xCA,0x2C,0xC1,0xFE,0x90,0x37,0x5B,
+0xA5,0x5C,0xAA,0x21,0x06,0x60,0xB3,0x8A,0x2E,0x1A,0x67,0xCA,0x6C,0x76,0xA2,0x88,
+0x8D,0x31,0x78,0x6B,0x07,0xA5,0xA5,0xD7,0xDD,0xA3,0xD1,0xCC,0x70,0x56,0x6D,0x0D,
+0x2D,0xBD,0xE3,0x46,0x8A,0x6B,0xDF,0xC8,0x33,0xB4,0xB0,0xE6,0x33,0x25,0x1C,0x7B,
+0x9E,0xE5,0x19,0xD0,0xD1,0x20,0x0F,0xC3,0x39,0x36,0x00,0x69,0x5F,0x65,0x87,0x9A,
+0x96,0x45,0x7E,0xB1,0xB7,0x04,0x50,0x16,0x85,0x6F,0x50,0xA7,0x97,0x24,0xF3,0x0C,
+0xAA,0xAD,0x06,0x2D,0x40,0xFC,0xCD,0xAD,0x54,0xFD,0x51,0x6E,0x58,0xCC,0xAF,0xDA,
+0x4E,0x9C,0x48,0x7F,0x74,0xE9,0xDC,0x9C,0x01,0x8B,0xE4,0x57,0xE3,0x22,0x29,0x17,
+0x60,0x47,0x23,0xC6,0x03,0xEB,0x81,0x6A,0xDE,0xBF,0x1B,0xAC,0x0D,0x61,0x4C,0xA2,
+0xDC,0xEE,0x75,0x5C,0x36,0x3B,0x86,0x06,0x69,0x72,0x3E,0xB0,0x74,0x30,0xE3,0x72,
+0xEB,0x4D,0xDD,0x9B,0xB9,0xFA,0xF6,0x24,0x0B,0x09,0x54,0xD8,0x7F,0x5C,0x6F,0x30,
+0x79,0x3F,0xE0,0xB8,0xA8,0xDC,0xF4,0x07,0x64,0xC8,0x0A,0xE2,0xA8,0xF2,0x72,0x1C,
+0x73,0x93,0x42,0x7D,0x2B,0xEC,0x28,0x2A,0x7B,0x6C,0xD2,0xF3,0xB2,0xE9,0x44,0x10,
+0x0F,0x7C,0x93,0xC9,0x48,0x43,0x45,0x1F,0xE8,0xA4,0x01,0xA0,0x1A,0x2D,0x0F,0x65,
+0x89,0x8B,0x04,0x3C,0x78,0x18,0x70,0x93,0x79,0x66,0xDD,0xCE,0xE0,0xED,0x8F,0x28,
+0xD3,0x1F,0xD9,0x50,0xDF,0xDE,0xA9,0xF1,0x31,0xBE,0xBF,0xDB,0xD9,0x00,0xF7,0xB1,
+0x41,0x6D,0xE4,0x73,0x91,0xFD,0x5F,0x64,0xF0,0x38,0x5D,0x6C,0x29,0x3E,0x2A,0x77,
+0xE8,0xA6,0x6A,0xA1,0xD2,0xEA,0x13,0xA3,0x5E,0x7F,0xE1,0xE1,0xC1,0x46,0xB6,0x4B,
+0x04,0x37,0x43,0x92,0x66,0x05,0xC2,0xDF,0x4D,0x77,0xC8,0xFF,0xD4,0x57,0x82,0x7A,
+0x0B,0xC6,0xEF,0x9E,0x08,0x9E,0x15,0xB8,0xD4,0x3D,0xAB,0x23,0x98,0x2E,0xF1,0x31,
+0xAE,0x17,0x7A,0x7A,0xC3,0xCC,0x11,0x80,0xFF,0x88,0x66,0x03,0xF8,0xAB,0xCE,0xD2,
+0x33,0x94,0xEB,0x55,0xF2,0x52,0x32,0x51,0x59,0x47,0x65,0x3C,0x9D,0xDA,0xAE,0x87,
+0x58,0x15,0x27,0x0D,0x71,0x62,0xEE,0x7C,0xE7,0x14,0x3A,0xCF,0xF0,0x08,0xE4,0xAF,
+0x48,0x2A,0xF1,0x8C,0xAD,0x57,0xC6,0xE7,0xDC,0xB5,0x14,0x91,0xBE,0x2C,0xE0,0x12,
+0x61,0xA0,0x51,0x58,0xCF,0x3D,0xBD,0x8F,0xA9,0xE2,0x19,0x5A,0x1C,0x16,0xF6,0xEC,
+0xC9,0x8C,0xAD,0x14,0xCD,0x32,0xB7,0xB2,0x3B,0x3C,0x0F,0x54,0xB6,0x8F,0xCA,0x6F,
+0xF9,0x7E,0xCE,0xBE,0x62,0x4B,0xE6,0x62,0x83,0x41,0x11,0x27,0xE8,0x4E,0xA5,0x55,
+0x5D,0x48,0x29,0xC4,0x68,0xFB,0x64,0xED,0xE9,0xB2,0xC4,0xFD,0x9F,0x87,0xD9,0x71,
+0x2E,0x56,0x54,0x7C,0x67,0xC0,0xD4,0x82,0xF5,0x0A,0xD6,0x8C,0xF9,0x39,0x1F,0x1B,
+0xCD,0x36,0xD1,0x43,0x57,0x9B,0xE1,0x0E,0x1A,0x0B,0x72,0xFB,0x8F,0x62,0xB2,0xF6,
+0xE4,0xBC,0x71,0x97,0x15,0x49,0xBB,0x94,0x6C,0x40,0xB5,0x50,0xF3,0xC7,0x42,0x90,
+0xCB,0x80,0x68,0xB0,0x51,0xDA,0xCF,0x8E,0x81,0x4B,0x1E,0x1A,0x9A,0x73,0x86,0xC7,
+0xE3,0xED,0xBA,0xFA,0x00,0x21,0x9D,0x0A,0xEC,0x80,0x4F,0x1D,0x6A,0x4D,0x5B,0x01,
+0x44,0x30,0xEA,0xBA,0xD5,0x6E,0x2B,0x7E,0x52,0xD3,0x10,0xEE,0x59,0x5E,0x7E,0x13,
+0x76,0xCE,0x4C,0xB4,0x09,0x5B,0x03,0xE5,0x0C,0x31,0xD0,0x05,0x39,0xDB,0x41,0xF0,
+0x67,0x16,0xE8,0xAB,0x95,0xB3,0x7B,0xD9,0x0A,0x1F,0x91,0x85,0x0B,0x5A,0xB5,0x2B,
+0x21,0xA7,0xF8,0x70,0xA6,0x22,0x52,0x35,0xFE,0x9E,0xA3,0x5E,0x4C,0x4F,0x4A,0x22,
+0xBB,0x75,0xA2,0x32,0x60,0x44,0xEC,0x5F,0xBF,0xD8,0xBB,0xA4,0xBA,0x4A,0x6E,0x6D,
+0x81,0x2B,0x63,0x5D,0xB3,0x4A,0x74,0xAB,0xE2,0x26,0xB1,0x2F,0xF6,0x33,0x1D,0x26,
+0x86,0x7A,0xA8,0x30,0x6A,0xF4,0x6E,0xD0,0x99,0xD7,0x42,0xD6,0x09,0x07,0xC2,0xDD,
+0x74,0xC2,0x89,0x10,0xF9,0x27,0xA6,0x83,0x3E,0x0E,0x84,0xB4,0x86,0x53,0x49,0x42,
+0x9F,0x02,0x6B,0x4E,0xFC,0xAC,0x94,0x63,0x28,0x34,0x26,0x4A,0xA9,0x60,0xA3,0xD5,
+0x66,0xF1,0x9A,0x35,0x96,0x79,0x67,0xB9,0xC8,0x85,0xB9,0x52,0x03,0xF9,0x9F,0x56,
+0xFA,0x95,0x79,0x84,0x98,0x87,0xC1,0x8B,0xEA,0xAE,0x0E,0x9D,0xAE,0xC9,0x8B,0x95,
+0xBE,0x28,0xAC,0xFB,0x3A,0xCA,0x2A,0x09,0x80,0x5D,0xDB,0x47,0x99,0xBC,0x20,0xF8,
+0xFE,0x2F,0x05,0xD3,0x65,0xCF,0xDE,0xBF,0x1E,0x2F,0x3C,0x46,0x06,0x0D,0xC0,0xE0,
+0xF6,0x4E,0x63,0x9C,0x14,0xED,0xBC,0x0B,0xE6,0x8C,0x47,0x68,0x10,0x88,0x5C,0x14,
+0x50,0x40,0x51,0x62,0x70,0x5C,0x20,0xE8,0x4B,0x4F,0x53,0x58,0x32,0x47,0xEB,0x3F,
+0xBB,0xE2,0xD3,0x2F,0xCD,0x23,0x64,0x3D,0x7C,0x22,0xF8,0x2D,0x58,0x9D,0x3E,0xCC,
+0x4F,0xBD,0x65,0x2A,0xCA,0x0B,0x24,0x94,0xE3,0x3A,0x18,0x9C,0xC6,0x9C,0xD9,0xBE,
+0xE5,0x6B,0x71,0xAF,0xCE,0x85,0x5B,0xF2,0x13,0xFC,0xC5,0xA2,0x3A,0xF5,0x54,0xB7,
+0xFF,0xB2,0x0A,0x11,0x9F,0xE8,0x5C,0x39,0xEC,0x07,0x1A,0x96,0x41,0x0C,0xA7,0x46,
+0x37,0x21,0x59,0xC2,0x27,0xC8,0xAE,0x18,0x63,0x98,0x91,0xC2,0xE6,0x6E,0x61,0x9F,
+0x05,0x24,0xB9,0x49,0xE7,0x96,0x45,0xFA,0x4C,0x0F,0x7B,0xF1,0xF0,0x90,0xC3,0xA5,
+0x92,0xD1,0x3F,0xBE,0x2B,0x6C,0xAC,0xDD,0xDC,0x2A,0x99,0x4A,0xD4,0xDF,0x35,0xA0,
+0xEA,0x4D,0x03,0x56,0xF3,0x73,0xBD,0x79,0xEE,0xF1,0x6D,0xCB,0xD2,0x5F,0x74,0x8E,
+0xC3,0x7E,0xEF,0xC7,0x42,0xA8,0xFB,0x69,0xA9,0xF8,0x92,0xDE,0x26,0x84,0x46,0x0F,
+0x7D,0xB8,0x85,0xA1,0x90,0xEA,0x61,0x33,0x5F,0xB7,0xB6,0xDB,0x67,0x7E,0x5E,0x49,
+0x2A,0xCD,0x4E,0xAC,0x59,0x4F,0x3E,0xE0,0x16,0x4A,0x9A,0x56,0xB4,0x8A,0x50,0xD1,
+0x5E,0x89,0x54,0x3F,0x65,0x68,0x11,0xF9,0x7F,0x1D,0x5E,0xE2,0x59,0xC0,0xFB,0xDA,
+0x0C,0xD8,0xD0,0xC4,0x08,0x22,0x39,0x2B,0x8F,0xDB,0x83,0xDC,0x34,0xC7,0xAA,0x11,
+0xBA,0x0D,0xA4,0x8B,0xD5,0x62,0x9E,0x7B,0xBC,0xC9,0xA6,0xCF,0x8A,0x34,0xF5,0x42,
+0x77,0xBA,0xB8,0xAE,0x9B,0x66,0x23,0x5F,0x0D,0x8F,0x7D,0xDF,0x5B,0xFD,0xF4,0xD0,
+0xF5,0xB0,0x37,0x1E,0xAD,0x1C,0x87,0xB8,0x7A,0xAB,0x01,0x16,0x31,0x27,0x21,0x23,
+0x45,0xBF,0x58,0x25,0xB3,0xA4,0xF4,0xC5,0x1C,0xC1,0xC7,0xA8,0x2D,0x56,0x33,0x9B,
+0x70,0x8F,0xD4,0x7E,0xD3,0x9B,0x17,0x40,0x6A,0x2C,0x6A,0xF3,0xC2,0x21,0x97,0x9A,
+0x7F,0xA9,0xA6,0x87,0xF0,0xD5,0x82,0xB6,0x15,0x75,0x3C,0x99,0x3F,0x15,0xDF,0x85,
+0x57,0x75,0x3D,0xB2,0xCF,0x54,0x92,0x60,0x5B,0xC8,0x38,0xBD,0x04,0x4B,0xF1,0x24,
+0x2C,0x17,0x55,0xD8,0x45,0x80,0xBB,0xC0,0xF9,0x36,0x2E,0x87,0x71,0x80,0xFC,0x73,
+0x26,0x15,0x68,0xD7,0x69,0xCC,0x13,0x3C,0x53,0xB5,0x12,0x1E,0xE3,0x8E,0xEA,0xAD,
+0x53,0xBE,0x05,0xE0,0xD2,0x4A,0xDE,0xD2,0x31,0xA0,0x5A,0xC6,0x95,0x25,0x2D,0xE6,
+0x84,0xD0,0x62,0x7B,0x23,0x46,0xD1,0x7E,0x7D,0xEB,0x29,0xBF,0x0C,0xF9,0x4E,0xAC,
+0x80,0x1B,0x5A,0x29,0xF2,0xA2,0x74,0xEB,0x1D,0x08,0x16,0x3A,0x27,0xD9,0x83,0x19,
+0xA3,0x2A,0x8B,0xB7,0x71,0x8D,0xE9,0x7A,0x78,0x5D,0x76,0x4B,0x81,0xE6,0x80,0xD6,
+0xE1,0xA0,0x49,0xFD,0x6E,0xE4,0x53,0x95,0x05,0xF2,0x57,0x7C,0xA1,0x14,0x38,0xF7,
+0x38,0x07,0x2B,0x3B,0xFA,0x88,0x09,0x48,0x3C,0x6B,0x2F,0x91,0xE9,0x01,0x5A,0x2F,
+0xCE,0x49,0xBE,0x18,0x88,0xAB,0x9B,0x75,0xCC,0xAD,0xF2,0xAF,0x28,0xB6,0xB8,0xA9,
+0x82,0x0A,0x79,0x0F,0x43,0x79,0x32,0xFB,0x24,0x91,0x6E,0xD7,0x86,0x3B,0x04,0xEE,
+0x67,0x61,0xFE,0x1F,0xA8,0x43,0x31,0x4C,0x9A,0xEA,0xB7,0xCD,0xD3,0x02,0xB1,0x98,
+0x65,0x70,0xDD,0x39,0xDA,0x60,0xA3,0x71,0x4D,0xC6,0xAA,0x63,0xBC,0x38,0xEF,0x59,
+0xB9,0xF3,0xF0,0x09,0x76,0xA5,0xA9,0xD3,0x57,0xCA,0x9C,0x78,0xA3,0x29,0x37,0xFD,
+0xD4,0x90,0xC5,0xA6,0x99,0x11,0xD5,0x02,0xFF,0xBF,0xD7,0xBC,0x30,0x7A,0xE4,0x35,
+0x5C,0x98,0x77,0x19,0x48,0xF5,0x70,0x97,0xBD,0x00,0x77,0x5D,0x8C,0xB4,0xB4,0x6C,
+0x4D,0xAC,0x46,0x0C,0x79,0xA7,0x94,0xD9,0x06,0xCD,0xF1,0xB3,0xD9,0x8D,0x01,0x1A,
+0x10,0xDB,0xB0,0x0E,0xA2,0x1E,0xBA,0xB2,0xE8,0x78,0x94,0xF0,0x06,0x76,0xFE,0x2E,
+0x17,0xEE,0xDC,0xDE,0x0B,0x84,0x06,0xE4,0x91,0xA8,0x3B,0xA1,0xB1,0x6A,0xDB,0xE3,
+0x34,0xDF,0x0D,0x40,0xD4,0xB3,0x57,0xE9,0x95,0xD7,0xB5,0xC7,0x05,0x16,0x34,0x32,
+0x4E,0x52,0x12,0x8E,0x58,0x9E,0xF7,0x72,0xD6,0xA1,0xC4,0xB4,0xEB,0x3C,0x55,0x25,
+0x9E,0x09,0x19,0xC5,0x00,0x08,0x44,0x88,0xBA,0x40,0x5F,0xF4,0xE1,0xB3,0xE5,0xA7,
+0xC1,0x6F,0xCC,0xE1,0xA0,0x69,0x4C,0xEF,0x72,0xD6,0x2B,0xB5,0x5D,0x7D,0xB5,0xFE,
+0x3E,0xDD,0x30,0x4F,0x2C,0x44,0xEC,0x74,0xC6,0x26,0xAF,0x51,0xFF,0xFF,0xF8,0x15,
+0xA4,0x1F,0xE7,0x67,0xA4,0xE7,0x33,0x89,0x17,0x83,0x4B,0xC4,0xE5,0x0E,0xAB,0x83,
+0xC9,0x7C,0xD2,0xC8,0xD1,0xEC,0xE1,0x1D,0x1B,0x81,0xEF,0x01,0xAD,0x1B,0xC9,0x5B,
+0x22,0xDE,0x50,0x85,0xB9,0xF9,0x7F,0x3B,0x89,0x52,0x7A,0xE7,0xF6,0x10,0x82,0x8B,
+0x0E,0xC9,0xF3,0xE2,0x5D,0xC1,0x41,0x86,0x51,0x43,0x65,0x43,0x72,0xE0,0x36,0x6F,
+0x06,0xDA,0xED,0xCB,0x92,0x9D,0x97,0x6E,0xF7,0xC2,0xFD,0x1F,0xCF,0x73,0xA3,0x20,
+0x8D,0x2C,0x0B,0xF6,0x1A,0x3E,0x48,0x93,0x81,0x2F,0x50,0x44,0x36,0xFA,0xA5,0x1B,
+0x31,0xFB,0x42,0xB6,0x9E,0x39,0x95,0xAB,0x73,0x1F,0xFA,0x27,0xC3,0x7C,0x52,0x8C,
+0x62,0x45,0xB1,0xE9,0x9D,0x9F,0xAA,0x64,0x41,0xC4,0x0E,0xA6,0xBB,0xE5,0x6B,0x61,
+0x47,0xAE,0x7B,0x03,0x68,0x1D,0xDA,0xAE,0xC1,0x66,0x87,0xF8,0x03,0x96,0x75,0x1C,
+0x12,0xCA,0x93,0x28,0xBF,0x00,0xF6,0x00,0x0A,0xCF,0x55,0x76,0xC0,0x1C,0x98,0x90,
+0x5A,0x42,0x6C,0x6D,0x2E,0x33,0x1A,0x29,0x3A,0xE2,0xD6,0xAA,0x7F,0xB2,0x02,0xD5,
+0x21,0x20,0x04,0x07,0x12,0x14,0x35,0x30,0xD0,0x28,0x3D,0x8F,0xE0,0xEE,0x20,0xB1,
+0x81,0xF4,0x2D,0x8D,0x6C,0x93,0xA5,0xC8,0x6F,0x9A,0x35,0x07,0x56,0xAF,0xC0,0x6A,
+0x08,0x13,0xE8,0x96,0x86,0x78,0x6F,0xED,0x77,0x60,0x74,0x41,0xF7,0x4D,0x47,0x9D,
+0xEC,0x97,0x18,0x22,0x84,0x0F,0x99,0xB0,0x8C,0xE4,0x25,0x13,0x8E,0x89,0xBB,0x66,
+0x52,0x51,0x72,0x44,0x93,0x4C,0x5E,0xFC,0xB0,0xCB,0x02,0x0A,0x82,0x86,0x4A,0xCA,
+0x54,0x8B,0x69,0x30,0x3D,0xFE,0xA2,0x03,0xED,0xCE,0xCB,0x04,0x64,0x1E,0x94,0x55,
+0x6D,0x63,0xC3,0x10,0xDD,0x48,0xE3,0xD8,0x66,0x2E,0xCE,0x36,0x19,0x67,0x26,0x8A,
+0x0D,0x37,0xA7,0x60,0x8A,0xDC,0x6D,0x28,0x32,0x9F,0xFC,0x09,0xB9,0xD8,0x64,0x6B,
+0x96,0xD4,0xB0,0x53,0xD8,0x5B,0xE4,0x09,0x0C,0x44,0xD1,0x20,0x7F,0xBB,0xBE,0xDC,
+0x01,0xFB,0x83,0xB9,0xCE,0xF9,0xDE,0xF7,0x09,0x76,0x5A,0xC0,0xBF,0x59,0xE0,0x37,
+0x9E,0x74,0xD7,0x32,0x69,0x3F,0x07,0x95,0x9A,0xBE,0x89,0x93,0x07,0x78,0xC0,0xC5,
+0x65,0x8B,0xE3,0xED,0x12,0xCC,0xF6,0x6C,0x43,0xA4,0x37,0xE8,0x56,0xB3,0xAD,0xC2,
+0xA3,0x7B,0xDD,0x30,0xEE,0x41,0xFF,0x05,0x95,0x0E,0xB2,0xFC,0x52,0xD5,0x23,0xBD,
+0xBB,0xE4,0x6C,0xD0,0x70,0xA6,0x8D,0x04,0xCA,0xFA,0xB7,0x4A,0x55,0x7C,0x0B,0xFD,
+0xD6,0xD3,0x19,0x7B,0x1A,0x73,0x7E,0xDE,0x68,0x11,0xFA,0xC8,0xE8,0xA9,0x74,0xB9,
+0x15,0x7E,0x29,0x6F,0x38,0xC4,0x55,0x11,0x66,0xB7,0x04,0xFA,0x8C,0x4A,0xC5,0x25,
+0x50,0x24,0x8E,0x8E,0xA2,0x6D,0x03,0xAD,0x25,0xFB,0x13,0x3D,0x4D,0x3A,0x4A,0x07,
+0x42,0x17,0x9D,0xAB,0x1C,0x32,0x50,0x5E,0xF0,0x4D,0x5C,0x49,0x90,0x6A,0x0A,0xA0,
+0x84,0xE7,0xA3,0x76,0x71,0x63,0x9B,0x59,0xA1,0x1F,0xA7,0xCD,0xFD,0xB8,0x40,0x88,
+0xD3,0x8E,0x17,0xB2,0x9C,0xC8,0x90,0x13,0xE5,0x6B,0x34,0xD7,0xC1,0xA1,0x67,0xA7,
+0x2E,0xC7,0x9A,0x9E,0x4F,0xC6,0x08,0xE7,0x90,0x3C,0x39,0x1C,0x08,0x72,0xC2,0xF8,
+0x61,0x31,0x9F,0xBA,0x0E,0xDE,0x4E,0x1D,0x56,0x82,0x5F,0x76,0xDA,0x28,0x80,0x62,
+0x68,0x76,0x8A,0x45,0xFA,0xEC,0xCF,0xC6,0x65,0xAB,0xCE,0x9A,0x6B,0x38,0x5B,0x24,
+0xB3,0x44,0x0B,0xB1,0xFC,0xAD,0xE1,0x46,0xF9,0xD3,0x26,0xA6,0xB3,0x9C,0x44,0x35,
+0x2C,0xCB,0x5F,0x3A,0xCB,0x72,0xEC,0x17,0x3D,0x67,0x4F,0xF1,0xF1,0x7D,0xE4,0x8A,
+0xAF,0x61,0xC6,0x06,0x59,0x64,0x32,0x19,0x3F,0x6D,0x40,0xCC,0xDD,0x81,0xA8,0x22,
+0x51,0xC3,0xFC,0x10,0x2C,0x69,0x65,0xD2,0x5D,0x16,0x2A,0xA4,0x57,0x21,0x7C,0x0B,
+0xEC,0x8D,0xD8,0x14,0x17,0x47,0xC4,0x8C,0x81,0x3E,0x1F,0x3F,0x68,0xF7,0xFD,0x1B,
+0xB5,0xF2,0xB2,0x42,0xEA,0x0F,0xDB,0xB8,0xA7,0x31,0xE6,0x4D,0x4B,0x01,0xB3,0x8E,
+0x58,0x84,0xE9,0xEF,0x05,0xAB,0xDA,0xCF,0x97,0x04,0xBD,0xC1,0x2B,0x84,0x8C,0x6D,
+0x32,0xE2,0x57,0x29,0x19,0xB9,0x62,0xBE,0x98,0xB4,0x86,0xAE,0x35,0xF9,0x34,0x1E,
+0x16,0x95,0x9E,0x55,0x73,0x6C,0x91,0x64,0x92,0x36,0x36,0x21,0x03,0x1E,0x4E,0xBA,
+0x08,0xBC,0x96,0x46,0xAE,0x9C,0xAF,0xA2,0x22,0xC3,0x97,0xE0,0xDB,0xBA,0x51,0xAB,
+0x34,0x54,0xEE,0xDA,0x00,0x20,0xE8,0x2F,0x61,0x8F,0x80,0x27,0x10,0x34,0x83,0x02,
+0xF2,0xA4,0xD0,0x07,0xC1,0xC2,0x6E,0x98,0x2F,0x79,0xA3,0xB2,0x62,0x09,0xA0,0x90,
+0x6B,0x9D,0x3D,0x7F,0x89,0xA0,0xB6,0x8D,0x88,0xA0,0x65,0xD0,0xF6,0xD4,0xCC,0xCA,
+0xC4,0xE0,0x0A,0x5E,0xA9,0x18,0x97,0x7F,0x02,0xE2,0x2F,0x12,0xE9,0x3B,0xA5,0x70,
+0x91,0x85,0x7B,0x3E,0x0F,0x1B,0x58,0x40,0x33,0xC1,0xB1,0xC3,0x6A,0xAA,0x8A,0xED,
+0x72,0xE5,0xFE,0x01,0x24,0xD6,0xED,0x60,0xF8,0xC5,0xE3,0xFB,0xBB,0x3F,0x6E,0x48,
+0x39,0xA9,0x87,0x72,0xBD,0xB5,0xA7,0xBC,0x96,0x12,0x78,0x9C,0x4A,0x93,0x62,0x47,
+0x31,0x09,0xE0,0x13,0x99,0x43,0xA2,0xF3,0xC6,0x56,0x46,0x45,0x93,0xA5,0xAC,0x9F,
+0xE1,0x70,0xB1,0xBC,0x2E,0x66,0x6F,0xEF,0xF3,0x51,0x96,0x29,0x3A,0xF3,0x36,0x23,
+0x54,0x9E,0xF2,0xD9,0xF1,0x99,0x5B,0x14,0x84,0x0C,0x94,0xDF,0xE1,0x98,0x8F,0x0D,
+0x99,0x25,0x1C,0x5F,0xA4,0x2C,0x2D,0x2D,0xB0,0x1D,0x81,0xEE,0xD0,0xD6,0xDD,0xE9,
+0x26,0x67,0xFD,0xFF,0x18,0x7C,0x74,0xE3,0xB8,0x95,0x3E,0x5C,0x01,0x43,0x39,0x4C,
+0x53,0xCF,0x39,0xB4,0x8B,0xAF,0xBC,0xB0,0xDB,0xF8,0x91,0x69,0xEE,0x92,0x8D,0x30,
+0x5F,0xD5,0x22,0x82,0x94,0x77,0x18,0xA1,0x58,0x24,0xA1,0x44,0x42,0x30,0x48,0x3A,
+0x73,0x02,0x8C,0x9F,0xFB,0x29,0xD9,0x9B,0x49,0x26,0x87,0x67,0x30,0x0D,0x6B,0xA8,
+0xCB,0x11,0xA6,0x52,0xDE,0x1A,0xCA,0x89,0xF6,0x63,0x1D,0xC9,0x21,0x7A,0xD1,0xE6,
+0x18,0x83,0x40,0xC7,0x85,0x51,0x1A,0x82,0x54,0x88,0x50,0x4B,0x49,0x5C,0xC4,0x78,
+0x1A,0x8F,0x85,0x63,0xCD,0x33,0xC2,0x97,0x37,0xE5,0xFF,0x7E,0x3C,0xC8,0xCF,0xAA,
+0xBF,0x5E,0x10,0x87,0xD7,0x60,0x54,0x66,0xF5,0x7F,0xD7,0xA9,0xB4,0x35,0x6C,0x75,
+0x4F,0xEA,0xF4,0x03,0x75,0x2D,0xBF,0xE4,0x47,0x80,0x79,0x55,0x38,0xAE,0x41,0xD5,
+0xD9,0x22,0xB5,0x77,0xC9,0x7D,0xE6,0x2A,0x21,0xDF,0x5D,0x80,0x98,0xC9,0x20,0xDD,
+0x38,0x4E,0xF5,0xEC,0xC3,0xCD,0x64,0xA5,0x7A,0x0F,0x16,0x8B,0xC0,0x33,0xB6,0x6E,
+0x4E,0x0D,0x86,0x9D,0x2D,0xAC,0x73,0x8F,0xF7,0x75,0xD8,0x94,0x4C,0xA8,0x9B,0xCE,
+0x7B,0xA2,0xEB,0xFE,0x57,0x9A,0x94,0x2B,0x6A,0x1B,0xF5,0xF5,0xB6,0x68,0x1B,0x83,
+0x56,0x92,0x37,0x7D,0xE8,0x00,0xD1,0x85,0xE2,0x53,0xB0,0x0A,0x27,0x41,0x28,0x6F,
+0xFF,0x59,0xB9,0xAF,0x2B,0xED,0x5D,0x0F,0x86,0x06,0x9B,0xE2,0xF0,0xEF,0x35,0x43,
+0x5D,0xD9,0xE7,0x26,0x93,0xF3,0x20,0x7C,0x6D,0x23,0x71,0x28,0x05,0x25,0xB7,0x33,
+0x86,0xEB,0x66,0xD2,0xEB,0xCA,0xCD,0xE5,0xD3,0x70,0x2E,0xDB,0x06,0xEA,0x11,0x0C,
+0xB6,0x19,0x05,0x78,0x1E,0x3D,0x5A,0x63,0x04,0xCC,0x6E,0x92,0x82,0xD2,0x16,0xD1,
+0x5B,0x6F,0x5E,0xD5,0xE7,0x3B,0x61,0xEA,0xF2,0x47,0x53,0x74,0x0A,0x2F,0xB5,0x0E,
+0xDA,0xC9,0x02,0x4D,0x5A,0xAE,0x2E,0x79,0xE1,0x4F,0x7A,0x6A,0xC5,0xC7,0xE9,0xD8,
+0x06,0xAA,0x48,0xD4,0x91,0xFC,0x2A,0x41,0x1F,0x4C,0xF8,0x3E,0x12,0x69,0xF4,0xF4,
+0xB7,0xFE,0x77,0xE6,0x31,0xBE,0xCB,0xFE,0x4B,0x2C,0x88,0x5A,0x45,0x99,0x60,0x7A,
+0x57,0x75,0x45,0xE3,0x4C,0x0C,0x14,0x87,0xA3,0x15,0xA8,0xF0,0xA5,0x42,0xD6,0x3B,
+0x52,0x28,0x4B,0x2A,0xAA,0xD2,0x8B,0x1F,0x79,0x13,0xDC,0xEB,0x0B,0xBD,0x64,0xC7,
+0x7D,0x14,0x52,0x0D,0xA6,0x23,0x27,0x10,0xBF,0xAD,0xBA,0x81,0x1C,0xF1,0x27,0x00,
+0xF9,0xEF,0x00,0x5C,0xDF,0xDF,0xDC,0xD4,0x3B,0x49,0x0E,0x71,0x1E,0xAC,0x50,0xF6,
+0x03,0xF7,0x46,0x1D,0x7E,0x58,0x2B,0x36,0xDC,0xC0,0x15,0xB4,0xF4,0x89,0xBB,0x3C,
+0xB1,0x48,0xCE,0x15,0xC8,0xB8,0xF0,0x77,0x08,0x60,0x9F,0x9D,0x8A,0x71,0x3C,0xAC,
+0xA3,0x83,0x39,0x27,0x90,0x05,0xF8,0x41,0xD6,0x23,0x15,0xF0,0xF4,0x83,0x69,0xB2,
+0xA6,0x77,0x66,0x91,0xD0,0xAC,0xD0,0x46,0xCE,0xC3,0xA4,0x6F,0x86,0x1D,0x68,0x55,
+0x10,0xCE,0x95,0x97,0x48,0x33,0x36,0x98,0x78,0x9C,0x50,0x6A,0x2C,0xCB,0x7C,0xD0,
+0xEE,0x68,0x9B,0xA5,0xD4,0xD0,0x87,0xFC,0xBB,0x88,0x60,0xC7,0x07,0xE9,0xB3,0x67,
+0x4E,0x0F,0xFA,0xAD,0x5A,0x20,0x13,0xAB,0x6C,0x4A,0xFA,0xEF,0xA7,0x3D,0x9A,0xED,
+0xC5,0x3D,0xFF,0x4D,0xB1,0xC2,0x4D,0x6B,0xFB,0xA0,0xC9,0xC0,0x9D,0x2B,0x64,0x4F,
+0x23,0xDD,0xB0,0x85,0xAF,0xCA,0x5E,0x42,0x08,0x1E,0x9A,0x9F,0x8F,0xE1,0x01,0xD8,
+0x9D,0xC7,0x69,0xFE,0xA8,0x01,0x33,0x13,0xF3,0xC1,0xAE,0x60,0x7E,0x9A,0xF8,0x2B,
+0x4B,0xFB,0xA5,0x1B,0x0F,0x51,0x73,0xCE,0x0C,0x49,0xE6,0x25,0x37,0xFD,0x70,0xCA,
+0x2D,0x45,0x63,0x71,0x95,0x0B,0x31,0x1C,0x43,0x6D,0xE3,0xD3,0x71,0xBC,0x8A,0xD2,
+0x32,0xAA,0x0A,0xCB,0x58,0xE5,0xB7,0xA7,0xDE,0x42,0x72,0x50,0x98,0x0F,0x2B,0xB9,
+0xDA,0xD2,0x96,0xF7,0x49,0x41,0xA8,0x7F,0x05,0xB6,0xF3,0x62,0xB6,0x09,0xAB,0xF8,
+0x48,0x34,0x03,0x24,0xCD,0x13,0xF9,0x84,0x2F,0x58,0xE4,0x03,0x29,0xEF,0x33,0x26,
+0x07,0x82,0xD6,0x50,0x6A,0x43,0xB9,0x59,0x3D,0x7D,0xF7,0x30,0x7A,0x51,0xC0,0x79,
+0x20,0x12,0x16,0xBA,0xCA,0xD8,0x94,0xD5,0xBE,0x41,0x6E,0x9A,0xE9,0x6F,0x7E,0xDC,
+0xB3,0x66,0x52,0xA0,0xE5,0xC1,0xB3,0xE9,0xE9,0x85,0xDA,0xF3,0xE2,0x82,0x34,0x77,
+0xA9,0x7D,0x64,0xAC,0x00,0xFD,0x7F,0x3F,0x35,0x1C,0x90,0x90,0xA3,0xF6,0xA2,0xBF,
+0xF2,0x48,0x54,0x20,0xE3,0x78,0x40,0x5F,0xD8,0xB1,0xCB,0xE6,0xA2,0x19,0xD5,0x1B,
+0x22,0x4F,0x61,0x4C,0xD7,0x67,0xBD,0x17,0x7B,0xA6,0xE7,0x81,0xE8,0x80,0x09,0x78,
+0x92,0xCD,0x6B,0xC3,0x73,0x80,0xC7,0x21,0x5F,0xDA,0x2E,0xF6,0x1B,0xEA,0xD3,0xAD,
+0x54,0x14,0xCC,0xA1,0x4F,0xF8,0x5B,0xC9,0xC2,0xF5,0xBF,0x75,0x4B,0xAA,0x74,0x70,
+0x5B,0x1E,0xCE,0x9C,0xE7,0x04,0x17,0xE5,0x41,0xC9,0x26,0xDF,0x95,0x38,0x7A,0x66,
+0x0B,0x47,0x72,0x52,0x76,0x8E,0x0E,0x7C,0x81,0xE7,0xA1,0x99,0xBD,0xE4,0xE1,0x53,
+0x3E,0x6F,0xAE,0xC9,0x66,0x58,0x8F,0x43,0x3C,0xE3,0x85,0xD7,0x1C,0xDF,0xBF,0x7D,
+0xA5,0xB8,0xC0,0xAE,0x80,0xD3,0x79,0x7E,0xFC,0xCD,0x02,0x91,0x21,0xFC,0x2D,0x0F,
+0x3B,0x9B,0xF1,0x7F,0x1D,0x42,0x56,0xFD,0xA9,0xAD,0x73,0xF4,0xEE,0x5A,0x12,0x0C,
+0x6C,0x6B,0x65,0xF1,0x2A,0xEA,0x91,0x5E,0x54,0x81,0xFE,0xBD,0xDE,0x4E,0xD1,0xA1,
+0xF7,0xBC,0x0B,0x96,0x25,0x46,0x9D,0xAF,0x1F,0xF2,0x87,0xF1,0x94,0xD7,0x0D,0xC2,
+0x94,0xF6,0x92,0x4A,0x6F,0x4D,0x70,0x04,0x59,0x29,0x97,0x40,0x91,0xF3,0x42,0x34,
+0x83,0xBA,0xD1,0x8D,0xC6,0xC3,0xA2,0xCF,0x65,0xB5,0xEF,0xA8,0xD6,0x5D,0xCF,0x88,
+0x71,0xD9,0x7B,0xBD,0xA7,0xAD,0x3F,0xE2,0x06,0x8C,0x44,0x89,0xCF,0x7A,0xE0,0xB4,
+0xB7,0x00,0xDC,0xDF,0xFD,0x70,0x53,0x76,0x9F,0xF4,0xA9,0xB0,0x17,0x32,0xF5,0xD6,
+0x85,0x81,0x28,0x04,0x5D,0xEB,0x7E,0xFA,0x3E,0x47,0x40,0xDB,0xC5,0x78,0xDD,0xBB,
+0x2A,0xEC,0x4B,0x31,0x21,0x3A,0xCA,0x15,0x4B,0x0C,0x84,0x73,0x0D,0xEB,0x8E,0x68,
+0x93,0x5F,0xBA,0x0A,0xC5,0x74,0x98,0x24,0x1E,0x6C,0xF5,0x16,0xA0,0x08,0xF6,0x3D,
+0xB5,0x5D,0xAB,0x29,0x57,0x49,0xBB,0x56,0x32,0x71,0x5B,0xC1,0x61,0x67,0xCC,0x63,
+0x82,0x28,0x00,0x44,0x4E,0x8A,0xC5,0x2E,0x8C,0x4F,0xC8,0x64,0x16,0xDD,0x82,0x72,
+0x52,0x2F,0x35,0x28,0xF2,0xDC,0x5F,0x87,0x5C,0xE0,0x99,0x1D,0xDB,0x6A,0x9E,0x57,
+0x95,0x64,0x43,0x83,0x84,0xAF,0x2E,0xC4,0xF4,0xAC,0x65,0x31,0x54,0x57,0x40,0x38,
+0x80,0x75,0x77,0xB2,0x60,0xE1,0x7C,0xF5,0x39,0x2A,0x8B,0x8A,0x22,0x02,0x79,0x8D,
+0x49,0xA6,0xD2,0xED,0xB0,0xB0,0xD3,0x8C,0xB4,0x84,0xCC,0x36,0x9F,0x3A,0x47,0x69,
+0x6D,0xF9,0xB4,0x38,0xB8,0xD7,0xB2,0x2C,0x22,0xF0,0x8D,0xFE,0xC6,0x86,0x89,0x39,
+0xCC,0x0C,0x04,0xF9,0xA3,0xD1,0x68,0x58,0x23,0x6E,0xFF,0x19,0x0A,0xDE,0xE2,0xB8,
+0x02,0x76,0x89,0xE6,0x03,0x4A,0x45,0xD4,0x55,0x1F,0x8C,0x5A,0x1D,0x30,0xC8,0xD9,
+0x44,0xF1,0xA7,0x26,0x15,0x25,0x37,0x5D,0x75,0x34,0x39,0x97,0x63,0x76,0xEF,0x45,
+0x09,0x1A,0x05,0xA4,0x8B,0x03,0x22,0x35,0xA6,0xA1,0xDF,0x05,0xB3,0x2D,0xE4,0x0E,
+0xC3,0x06,0x06,0xC4,0x18,0x4C,0x9F,0xA0,0xD2,0x74,0x69,0x4A,0x2D,0x24,0x0B,0x74,
+0xEB,0x9C,0xC4,0x13,0xC7,0xB1,0x3C,0x28,0x77,0x90,0xFC,0x9B,0xBB,0x3E,0xFA,0x27,
+0x7A,0xB5,0xF7,0xFF,0xBC,0xAB,0xE5,0x96,0xDB,0x8B,0x7C,0x0D,0x23,0xED,0x0E,0x29,
+0x3A,0x09,0x20,0xB6,0x61,0x93,0xE2,0x12,0xEB,0x21,0x1F,0xFF,0xB4,0x18,0x88,0xDE,
+0x6E,0x36,0x12,0x07,0xB5,0xBE,0x1A,0xD1,0xB7,0xBE,0x7B,0xDD,0x57,0xA9,0x14,0xBA,
+0x47,0x3E,0x01,0x19,0x63,0x56,0x46,0x1E,0x36,0x26,0x27,0x7B,0x18,0x14,0x87,0x2F,
+0xA4,0x2A,0x11,0x67,0x02,0x38,0xDB,0x33,0x3B,0x8E,0x4E,0x86,0xA8,0x1B,0xE8,0x14,
+0xE1,0x62,0x99,0x98,0xEE,0x11,0xE8,0xA2,0x16,0x0D,0x92,0xB6,0xED,0xA4,0x46,0x8E,
+0x65,0x5A,0x9E,0x45,0x5E,0x5C,0x44,0x11,0x30,0xD5,0x9E,0xCD,0x59,0x60,0x11,0xE7,
+0x8F,0x7F,0x75,0x8F,0x2E,0x96,0xC6,0xE4,0x92,0x5C,0xC0,0x4D,0x24,0xD8,0x62,0xF9,
+0x1A,0x30,0xC8,0x1C,0x9B,0xD5,0xA3,0x0A,0x94,0xAF,0x79,0xFB,0xA5,0x2C,0xB9,0xCB,
+0xAE,0xD4,0x4C,0xEC,0x6D,0x88,0xD4,0x08,0x10,0xFE,0x2B,0x00,0x5E,0x55,0x7D,0x37,
+0x8B,0x19,0xFB,0xF0,0xC1,0x08,0xCF,0x9E,0xDC,0xE6,0xB7,0x5C,0x89,0x3B,0x1A,0xAC,
+0x01,0xB9,0x2F,0xD9,0x51,0xF0,0x48,0xE0,0x6E,0xEE,0x3F,0xE3,0x52,0x8D,0x5B,0x4C,
+0x9C,0x55,0xB8,0x37,0x17,0xE0,0x93,0x51,0xDA,0x15,0x0E,0xEA,0xB2,0xC2,0x93,0xAA,
+0xEC,0x35,0xEC,0x53,0x99,0x10,0x07,0x06,0x6B,0x27,0x31,0xBE,0x53,0x62,0x2C,0xE8,
+0xC8,0x6A,0x8A,0x86,0xAA,0xC4,0x97,0x1F,0x3F,0xD9,0x32,0x3C,0xF2,0x59,0x72,0xC6,
+0xBC,0x6C,0x50,0x9D,0x56,0x3B,0x25,0xB1,0x3A,0x10,0x3C,0x61,0x6D,0xBF,0xEA,0x18,
+0xD7,0x55,0x05,0xE0,0xBA,0x88,0x69,0x43,0x3A,0x6F,0xA6,0x02,0x53,0xDF,0xFB,0xA3,
+0x19,0x2F,0x88,0xFF,0x1A,0x13,0x44,0xCF,0x4C,0x1E,0xD5,0x41,0x44,0x31,0xD1,0xC2,
+0x52,0xFF,0xD3,0xF4,0xA9,0xE9,0xD2,0x97,0xAD,0x85,0x95,0x2D,0xC6,0x3B,0x5E,0x72,
+0x76,0xA0,0xB5,0x21,0xA1,0x8E,0xB3,0x37,0x3B,0xF1,0xD4,0xE5,0x9F,0x87,0x90,0x22,
+0xD8,0x5F,0x07,0xDD,0x01,0x15,0x9E,0xBB,0xCB,0x75,0x30,0x51,0x74,0x25,0x12,0x6F,
+0xF0,0xC5,0xC5,0x0A,0xDE,0xE8,0x3D,0x33,0x6E,0x91,0xA5,0x80,0xE2,0x3F,0xE3,0x3C,
+0x5F,0xA8,0xA6,0x3F,0x0C,0x7C,0x36,0x46,0x6C,0x35,0x60,0x8C,0x3A,0x77,0xF6,0x5E,
+0x12,0x43,0x04,0xBD,0x92,0x5A,0x23,0x2E,0xBF,0xA0,0x86,0x1E,0xEA,0x2C,0xFD,0x15,
+0x88,0x06,0xBB,0x13,0xDC,0x2D,0x99,0x3F,0x07,0x6D,0xAC,0x0D,0xF9,0x09,0xEF,0x26,
+0xAE,0x04,0xAA,0x30,0x4E,0x10,0xBA,0x4D,0x2B,0x70,0x02,0xDA,0x38,0x66,0xD5,0x78,
+0x9E,0xD8,0x29,0x1D,0x44,0xB2,0x7F,0xE1,0x27,0x46,0x19,0xC0,0x9C,0x79,0xC4,0xA0,
+0x31,0xB5,0x4A,0x28,0x38,0x63,0xCB,0x0E,0x52,0x0D,0xDD,0x68,0x54,0xEA,0x97,0x73,
+0x8E,0x3D,0x42,0x9A,0x9D,0xF6,0x2F,0xDF,0xED,0xAD,0x3C,0x2A,0x0D,0x56,0x59,0x23,
+0x9B,0x2C,0x76,0xAB,0x79,0xB8,0x7D,0xEE,0x20,0x2B,0xD2,0x91,0x7B,0x03,0x60,0x96,
+0x99,0x71,0x01,0x5D,0x57,0xD3,0xC4,0x35,0x95,0x4E,0x91,0x7F,0x4F,0xDC,0x9B,0x69,
+0x49,0x76,0x34,0x31,0xEB,0x85,0x5E,0x9C,0x45,0xE1,0xC0,0x06,0x82,0x6B,0x87,0x4C,
+0x90,0x40,0xFA,0xE9,0xD8,0x51,0xCE,0x85,0xC5,0xE7,0xEE,0x47,0xD0,0x3A,0x03,0xB7,
+0x1A,0xE0,0x2E,0xC0,0x48,0xA9,0x49,0xFB,0x77,0xEF,0x66,0xF8,0x0B,0x8C,0x42,0x57,
+0x01,0x69,0xC9,0x05,0x82,0x8C,0xA2,0x11,0x8D,0xAE,0x20,0xE0,0xFC,0x2D,0xA0,0xD0,
+0xB5,0x8D,0x4D,0xF5,0x74,0xD1,0xD5,0x13,0x09,0xFF,0x72,0x1B,0x07,0x54,0x64,0x2C,
+0xD3,0x33,0x8B,0x9F,0xB3,0x9D,0x96,0x04,0x26,0xD8,0x6B,0x27,0xAB,0x58,0x6B,0xDD,
+0xA7,0x35,0x51,0x84,0x4F,0x62,0x24,0xAA,0x23,0x11,0x65,0x7A,0x34,0xBE,0xF3,0x03,
+0x87,0x0C,0xB9,0x2E,0x0E,0xB9,0x92,0x4A,0xC3,0x14,0x57,0xF1,0xEB,0xC3,0x8A,0xB1,
+0xF7,0x6C,0xED,0x4A,0x80,0x49,0x06,0x1D,0x72,0x26,0x68,0xA5,0x0A,0x63,0x35,0xF3,
+0x75,0x6F,0x13,0x1E,0xAC,0xE7,0x1B,0xCA,0xAE,0xBF,0x22,0xC6,0x0E,0xA8,0x0D,0xA1,
+0x5C,0x67,0x00,0x00,0x7A,0x0F,0x47,0x05,0x2F,0x27,0x7E,0x60,0x41,0x15,0x9E,0x34,
+0x61,0xEC,0xF6,0xE6,0xA5,0xF2,0xE4,0x8D,0xC2,0x8A,0x25,0x16,0x7A,0xEC,0x17,0x32,
+0x21,0x50,0x21,0xAF,0x78,0xCA,0xE3,0x09,0xF2,0x20,0x46,0xE4,0xED,0x19,0x91,0xC5,
+0x7E,0x03,0x9F,0x5C,0x47,0x05,0x45,0x0A,0x29,0xD4,0xC7,0xD6,0x00,0x61,0x08,0xFC,
+0x94,0x26,0x74,0x96,0x37,0xCF,0xC7,0xFF,0x8B,0x5D,0x99,0x56,0x7D,0xD9,0x7B,0xE2,
+0xBF,0x73,0x10,0x7E,0x1B,0x61,0xDA,0x28,0x22,0x8F,0x17,0x9D,0xF1,0x1A,0xF1,0x0F,
+0xFA,0x3B,0x98,0x81,0xF7,0x48,0xE9,0xB9,0x0F,0x0C,0xCB,0xAD,0xB4,0xA5,0x5F,0x95,
+0x29,0xF3,0x0B,0xD2,0x41,0xBC,0xB6,0xBC,0xC7,0x43,0x2B,0x4B,0xC1,0x0E,0x32,0xA2,
+0xC1,0x8B,0x97,0xEE,0x50,0x18,0xA9,0x64,0x1C,0xB7,0xAA,0x79,0xEF,0x08,0xB2,0xE3,
+0x50,0xA2,0xA4,0x02,0x16,0x08,0x72,0xD5,0x15,0x48,0xBF,0x3E,0x6E,0xFC,0x69,0xD1,
+0x36,0x1C,0x62,0x68,0x8C,0x52,0x30,0x07,0x5A,0x6C,0xBA,0xC8,0x28,0xBD,0x93,0xC9,
+0x3B,0x4B,0x17,0xA3,0xD3,0x81,0x95,0xCE,0xA7,0x40,0x37,0x81,0xB0,0x6E,0x67,0xC7,
+0xA8,0x3F,0x53,0xB9,0xFC,0x98,0xB2,0xF2,0xF0,0x84,0x83,0xE8,0xBB,0x83,0x2D,0x6C,
+0x53,0x6D,0x02,0x3D,0xD4,0x4A,0xF8,0x9F,0x36,0x59,0xBD,0x18,0x70,0xEE,0x2A,0x3D,
+0x1C,0xDB,0xD7,0x49,0x73,0x1A,0xB8,0x42,0x24,0x7C,0xAE,0x2B,0x23,0x50,0xD9,0x62,
+0x0B,0x97,0x94,0x8E,0x51,0x6A,0x37,0x83,0x61,0x9D,0x09,0x71,0x75,0xCA,0x65,0xCB,
+0xF5,0x31,0x9A,0xBC,0xCD,0x89,0x86,0xE7,0xA2,0x89,0x39,0xDC,0x5E,0xE8,0xAA,0x7C,
+0xB8,0xDA,0x38,0x3E,0x89,0x5C,0xF9,0x5A,0xCF,0x22,0x4C,0xEB,0xAD,0x82,0x70,0xA9,
+0xBD,0x2E,0x67,0x88,0xC9,0xF5,0xD1,0x5D,0xD7,0xC2,0xFD,0x74,0xDF,0x1C,0x71,0x4E,
+0x38,0x84,0xB1,0x9C,0xB6,0x93,0x5F,0x59,0x11,0x1F,0xC3,0x84,0xD6,0xE0,0x18,0xC3,
+0x86,0x9E,0x68,0xE7,0xB1,0x58,0x32,0x08,0xEA,0xC0,0xF7,0x7B,0x27,0x9B,0xE1,0x30,
+0x55,0x56,0xFB,0xB4,0x43,0x79,0x12,0xB0,0x75,0x4B,0xA3,0xF4,0xFE,0x3C,0x83,0xF6,
+0xDE,0x64,0xFE,0x54,0xA8,0x9B,0x4C,0x70,0xE2,0xA1,0x90,0xDB,0xC4,0x2A,0x7D,0x54,
+0x77,0x32,0x64,0xE8,0x33,0xB3,0x90,0x45,0x4D,0x80,0xA7,0xA6,0x87,0x4F,0xC8,0xBA,
+0xEC,0xE5,0x0A,0x8F,0x3C,0x1F,0x9C,0xB4,0x06,0xF3,0xDE,0xEA,0xCD,0xD6,0x14,0xD9,
+0xBE,0xE1,0xC1,0xB7,0x99,0x8A,0x78,0x65,0xE5,0xCC,0x5B,0x8A,0x78,0xFD,0x34,0x14,
+0x20,0xC2,0xF0,0x66,0x04,0x1B,0x57,0xE6,0xB0,0xAC,0x2A,0xEF,0xB7,0x5B,0x0B,0x17,
+0x6A,0x80,0x7A,0xA4,0xBE,0xF4,0x3E,0xF9,0x1F,0x8D,0x1D,0x92,0x96,0x7B,0xF9,0xAF,
+0xAC,0x59,0xDD,0xC6,0xE4,0x29,0x52,0x6D,0x86,0xF5,0xF0,0xAB,0x4E,0x33,0xEC,0xCD,
+0x8F,0xAF,0x93,0x53,0x76,0x14,0x71,0x1F,0x40,0x28,0xCE,0x5B,0xC8,0xF2,0x5B,0x2F,
+0x98,0xE3,0xD0,0x94,0xDF,0x9A,0xA3,0xD4,0x7C,0xB4,0xB6,0xB3,0x8F,0x5C,0xD6,0x93,
+0x39,0x16,0x60,0x55,0xCE,0x3E,0xBC,0x0C,0x62,0xA7,0xBE,0x9A,0xB1,0x81,0x10,0x63,
+0x89,0x94,0x6A,0xDA,0x6A,0xD9,0xC6,0x3A,0x46,0xDB,0x77,0xED,0x42,0xEB,0xCA,0xB6,
+0xB2,0x24,0x65,0xB5,0x19,0xA4,0x7E,0x24,0x2C,0x1D,0xC9,0x8B,0xFA,0xF7,0xBB,0xA4,
+0xE9,0x11,0x55,0x39,0xFA,0x21,0x41,0x44,0xC1,0xB0,0x92,0xFD,0xFB,0x18,0xCC,0x00,
+0x10,0x1E,0x73,0x4B,0x6F,0xD7,0x0F,0x67,0x98,0xE6,0xF8,0x82,0xE4,0xE5,0xF8,0x48,
+0x25,0x36,0xAF,0xD0,0x7F,0x01,0x8E,0x58,0x25,0xE2,0xDC,0xCC,0x45,0xDE,0xA6,0x66,
+0x4F,0x4D,0xCD,0xB8,0x56,0xA1,0x5A,0xD2,0xDB,0xF4,0xE6,0x6E,0x12,0xAB,0x6D,0x6B,
+0x40,0x47,0xCF,0x85,0xFE,0x5D,0x16,0xFE,0x58,0xC8,0x7F,0xC4,0xCC,0x39,0x63,0x7D,
+0xE9,0x58,0xC1,0x9F,0xA7,0x85,0x45,0xEE,0xBC,0x5F,0x89,0xD8,0xCC,0x05,0x1B,0x39,
+0x04,0x12,0x6A,0x94,0x13,0xD2,0x2C,0x2A,0xA5,0x63,0xA6,0xFF,0xD6,0x96,0x6F,0x7D,
+0x3A,0xAC,0xCF,0x07,0x8A,0x51,0x86,0x16,0x3E,0xEF,0x06,0xD2,0x3C,0xB1,0xFF,0xBD,
+0x84,0x5F,0x90,0x54,0x99,0x43,0xB5,0x33,0x6E,0x32,0xA1,0x92,0x48,0xFE,0x49,0x68,
+0x62,0xC7,0x4E,0xCB,0x8E,0x69,0xD4,0xDD,0x3C,0xC9,0x25,0xC3,0x9B,0x6C,0xAF,0xFD,
+0x64,0x47,0x0F,0xE5,0x0F,0xB2,0xE6,0x29,0x98,0x11,0x34,0xDC,0xA7,0x84,0xD7,0x61,
+0xD7,0xE6,0x64,0x0C,0x9E,0x2F,0x65,0x06,0x76,0xAA,0xF9,0x5A,0x1D,0x9B,0x38,0x08,
+0x96,0x1C,0x7C,0x4A,0x9B,0x60,0x93,0x22,0x2C,0x78,0x63,0x18,0x77,0xFD,0x86,0xCE,
+0xF1,0x94,0x9D,0x03,0xD3,0x9F,0xD6,0xAA,0x7C,0xA5,0xC4,0x58,0x92,0x2B,0xBA,0x02,
+0x8A,0x6D,0x6E,0xF2,0xE7,0x64,0x29,0x75,0xB7,0xF4,0xC3,0x35,0xE9,0x95,0xA0,0xDB,
+0x40,0x08,0xF9,0xE0,0xB4,0x97,0x76,0xCB,0xBF,0xDD,0xDD,0x26,0x21,0x73,0x40,0x94,
+0x56,0xF6,0x5B,0xDA,0x87,0x00,0x59,0x21,0x5D,0x1D,0x36,0x78,0xC1,0xF8,0x72,0x91,
+0x82,0xDF,0xD1,0x7A,0x1D,0xD7,0x71,0xE3,0xAD,0x4A,0xB8,0xEC,0xC9,0x58,0x15,0xF0,
+0xA0,0x10,0x66,0x51,0x2D,0x14,0xDC,0xF7,0x4E,0x2E,0x24,0x5D,0xFB,0xA6,0xB3,0xFE,
+0x76,0x04,0xE3,0xFB,0xD9,0xA2,0xD9,0xA8,0xD1,0xF0,0xBC,0xBB,0xFD,0x10,0x0A,0x0D,
+0xE8,0x05,0x04,0x89,0x68,0xBA,0x46,0x48,0x78,0xF7,0xFC,0x93,0x4B,0x15,0xFE,0x52,
+0x59,0x99,0x60,0x6A,0xD4,0xF3,0x06,0x9F,0x0D,0xC0,0x91,0x38,0xB3,0x01,0x7D,0xB7,
+0x11,0x8C,0x02,0xB2,0x39,0x6A,0x3F,0xE7,0xD0,0x54,0xCB,0x54,0xD1,0xC7,0xA4,0x10,
+0x36,0xA3,0x3E,0xAB,0x92,0x09,0x1E,0xDE,0xBE,0x79,0xAA,0xC9,0xE1,0x35,0xC7,0xBA,
+0x98,0x2E,0x82,0xEC,0xEA,0x35,0xF6,0x42,0x30,0xB2,0x03,0x1B,0x26,0x22,0x8B,0xF9,
+0xBC,0x61,0x74,0xE9,0xFA,0x73,0x47,0x99,0x3B,0x19,0x49,0xF6,0xFA,0x41,0xC1,0x60,
+0x25,0xBD,0x17,0xA3,0x83,0x38,0x0B,0xEA,0x97,0xE8,0x46,0xFA,0x9D,0xDA,0x16,0x0E,
+0x31,0x7E,0xBA,0x93,0x0E,0xC5,0x42,0xC6,0x3F,0x4B,0x71,0x3D,0x13,0x8D,0xE6,0x9A,
+0x97,0x41,0xB9,0x5C,0x7F,0x90,0x27,0xA6,0xAE,0xC8,0xEC,0x12,0xC2,0x13,0xC5,0xAB,
+0xB4,0xD3,0xCB,0x61,0xF8,0x50,0x61,0x88,0x25,0xF5,0x0A,0xE4,0xA5,0x88,0x12,0xC5,
+0x8F,0x8D,0xE5,0xC0,0xDC,0xED,0x2F,0x8C,0xF3,0xCA,0x1A,0x65,0x3E,0xBD,0x3A,0x19,
+0x53,0x16,0xD0,0xE8,0x5B,0x2D,0x69,0xA2,0x79,0x53,0x8B,0x7C,0xF0,0xED,0x63,0xA5,
+0xC1,0x18,0xC6,0x36,0xC2,0xAE,0xC3,0x9E,0x85,0x7F,0x23,0x30,0xCD,0xE2,0x69,0xA7,
+0x81,0xBF,0x1B,0x66,0x53,0x33,0x40,0xB1,0xFD,0x97,0x1F,0xAC,0xAF,0x24,0xB0,0x00,
+0xEB,0x65,0xCE,0x95,0x9A,0x17,0x37,0xCD,0x1A,0xA1,0xBB,0xD6,0x20,0x94,0x32,0x0A,
+0x72,0xB9,0xAD,0xDF,0xB6,0xB4,0x50,0xDA,0x05,0xE9,0x8F,0x2B,0x4C,0x44,0x35,0x3F,
+0x9D,0xCE,0x09,0xDE,0xED,0x59,0x26,0x77,0x80,0x89,0x6C,0x14,0xC0,0x1F,0x00,0x0F,
+0x55,0x96,0x91,0xC6,0x81,0x1B,0x2D,0xFB,0xCC,0x9E,0xAB,0x57,0x7F,0x5D,0xE1,0xAF,
+0x4F,0x67,0xC2,0x50,0x14,0xBE,0xFC,0x1F,0x31,0x16,0x74,0xF4,0xA8,0x75,0x7B,0x6D,
+0x46,0x88,0xB8,0xCE,0xA2,0xCA,0xB3,0xCA,0x7E,0x83,0xE7,0x49,0xC8,0xBF,0x67,0x6E,
+0x1D,0x83,0xF3,0x1E,0x44,0x19,0x21,0x5F,0x58,0xEB,0x79,0x5C,0x4A,0xF2,0x8C,0xCC,
+0x5B,0xA4,0x6F,0x60,0xF1,0x39,0xEC,0x74,0x37,0x62,0x6F,0x2E,0x8A,0xB4,0x0B,0xE2,
+0xB5,0x8E,0x0E,0x77,0x82,0x4F,0xAF,0x05,0xAC,0xEE,0xCF,0x03,0x95,0x7A,0x71,0x6F,
+0xED,0xE5,0x8F,0xBB,0xF0,0x4E,0x48,0x9B,0xAA,0x9A,0xD4,0xD9,0x54,0xDB,0x84,0xDF,
+0x51,0x2B,0xDF,0xE2,0xB1,0xD8,0x80,0xEF,0xCD,0x3A,0xDC,0xB8,0x81,0xFF,0xDB,0xB9,
+0x69,0x15,0x3B,0x5F,0xF6,0x55,0x3C,0x41,0x9C,0x43,0x0C,0x17,0xDE,0x36,0x08,0x1C,
+0x3C,0x2C,0x8E,0x29,0x18,0x98,0x87,0xC7,0xD2,0x72,0xE8,0x45,0xEF,0x23,0x19,0x28,
+0x01,0xF2,0xE1,0xA6,0xE4,0x30,0xAB,0x8B,0xA1,0x31,0x9E,0x34,0x44,0xE4,0x52,0x5E,
+0xB6,0xEE,0xC4,0x6B,0xB5,0xE0,0xD2,0x24,0xF7,0x98,0x22,0xAE,0x28,0x34,0x55,0x6B,
+0x0C,0xA0,0xD5,0x1C,0x26,0x5E,0x77,0x1A,0x34,0xE0,0x3B,0xD0,0x45,0x03,0x20,0xC0,
+0x63,0x9A,0x8B,0xDD,0x88,0x72,0xA0,0x07,0x09,0x92,0xA9,0xF3,0x66,0x25,0x22,0xD1,
+0x80,0xE2,0xDE,0x70,0xF9,0x27,0xC5,0x67,0x47,0xA3,0x4D,0xA1,0x5D,0x9C,0x91,0x20,
+0x13,0xB1,0x0D,0xB8,0x3D,0x52,0x6D,0x2C,0x96,0x4C,0x31,0x15,0x68,0x33,0xFC,0x43,
+0xD4,0x86,0xAE,0x10,0x41,0x56,0xD7,0x7B,0x46,0x07,0x3A,0x4E,0xF1,0x0A,0x11,0x3B,
+0x32,0x1E,0x70,0x8F,0x4F,0x53,0x8A,0xB2,0xB9,0xA9,0xC6,0xFC,0xEA,0x7E,0x17,0xE1,
+0x09,0x40,0x5E,0x2E,0x4C,0x07,0x08,0x4C,0x6D,0xB0,0xF5,0x6C,0x3F,0x5A,0x48,0x87,
+0xA9,0xFF,0x1C,0xCF,0x73,0xB6,0x5C,0x7E,0x9D,0xE7,0x7B,0xF8,0x5B,0x2A,0x28,0xD3,
+0xE6,0x37,0xFA,0x2F,0x42,0x02,0x55,0x85,0x8D,0x56,0x3D,0x23,0xB5,0xB7,0xC4,0x44,
+0x50,0x76,0x1A,0xF4,0xCA,0xB0,0xEA,0x8D,0x75,0x28,0xAD,0xA4,0x9C,0x3D,0x64,0x90,
+0x3E,0x11,0x81,0x23,0x56,0x7C,0xB6,0x95,0xF5,0xBE,0x01,0xBF,0x80,0x18,0xA9,0x27,
+0x47,0xD5,0x7D,0xD8,0x04,0xF8,0x4D,0xC4,0xA8,0xBC,0xF7,0xC8,0x70,0xAC,0x4D,0xA3,
+0xB3,0x0E,0x4F,0x59,0xBD,0xFE,0xFB,0x37,0xEB,0x52,0x42,0xAD,0xE3,0x39,0x02,0x1E,
+0x0B,0x7D,0x51,0x24,0xE3,0x5C,0x7B,0xBE,0x21,0xA7,0x32,0x2F,0x29,0xD3,0x27,0xF5,
+0xCF,0x2A,0x38,0x90,0xEF,0x7A,0x00,0x66,0x6C,0x14,0x82,0x83,0xF4,0x57,0x1F,0xF2,
+0x70,0x84,0xA2,0xD5,0x33,0x57,0x30,0xE5,0x45,0x85,0x6E,0xB0,0x0B,0x12,0x57,0x7A,
+0x7F,0xEB,0x99,0x65,0x5A,0x5A,0xCD,0x4D,0x2B,0xA8,0x0F,0x2D,0x75,0xF1,0x43,0x6A,
+0xC2,0x78,0x0C,0x2A,0x06,0xDB,0x6B,0xD5,0xC3,0x67,0xD9,0x71,0x6B,0xD8,0x4B,0x79,
+0x73,0xE4,0x68,0xC9,0x62,0x87,0x49,0x4A,0xEE,0xA4,0x0D,0x89,0xDA,0x8C,0x74,0x4B,
+0x86,0x62,0x9F,0x5E,0x01,0xB7,0xBB,0xE0,0xD6,0x20,0xD0,0x8E,0x93,0xCC,0xC8,0x9C,
+0x3F,0x00,0x8F,0xEF,0x06,0xC2,0xF5,0xD5,0x37,0x42,0x73,0xF1,0x8A,0xE0,0x0D,0x64,
+0x11,0x80,0x89,0xAE,0x34,0x36,0x2E,0x54,0x28,0xE6,0x62,0x29,0x16,0xDC,0x75,0x8C,
+0x90,0x5B,0x7D,0x9C,0x73,0xC9,0x27,0x41,0xF3,0xF6,0x24,0x98,0x25,0x30,0x5C,0x1D,
+0xD6,0xA1,0x3C,0x84,0x85,0xED,0x68,0x44,0xB1,0xAC,0xBE,0x4A,0xE3,0x5A,0xE2,0x7B,
+0x4E,0x55,0xEF,0x8A,0xCC,0xC1,0x95,0xC9,0x14,0x7F,0xE1,0x83,0x96,0x91,0xB5,0x76,
+0x45,0x1F,0x02,0x21,0xA5,0x05,0xC2,0x7D,0x33,0x66,0xCE,0xBF,0xD2,0x8B,0xC1,0xE5,
+0x8E,0x18,0x6F,0x70,0x55,0xD8,0x04,0x43,0x79,0xB4,0xE6,0xD2,0x83,0x0F,0x93,0x1E,
+0xDD,0xEB,0xD1,0x2F,0x66,0xFD,0x16,0x50,0x39,0xE4,0x41,0x0F,0x56,0x7B,0x25,0x51,
+0x8B,0x57,0x4B,0x86,0x3C,0x1C,0x53,0xF7,0xB6,0x94,0x63,0xCE,0x15,0xBC,0x69,0x46,
+0xA0,0x98,0x69,0x31,0x91,0x08,0x90,0xC7,0x07,0x77,0xFF,0xAA,0x1B,0x8E,0xCF,0xB8,
+0x53,0x42,0x03,0xE4,0xA6,0xA3,0xFD,0xB2,0x78,0xA2,0xBB,0x17,0xB9,0x0C,0x24,0xF5,
+0x21,0x43,0x9D,0x03,0x39,0x43,0xE5,0x03,0x50,0x0B,0xFB,0x10,0xE6,0xBA,0xD0,0xF0,
+0x28,0x2A,0x61,0x8E,0xC9,0x9E,0x23,0x3D,0xDE,0x6D,0x84,0x14,0x30,0xAE,0x7A,0x75,
+0xD9,0xD3,0x1A,0x7D,0x36,0x41,0xD8,0x09,0xB3,0xA6,0x83,0x45,0xE9,0xD5,0x60,0xCB,
+0x00,0xB1,0xBD,0xBB,0xB9,0xCA,0x47,0x5D,0x93,0x87,0x71,0xFD,0x7A,0x86,0xA8,0x18,
+0x3A,0x4F,0xAB,0x19,0x96,0x20,0xD0,0x6E,0xCD,0x65,0x9A,0x3D,0x7F,0x66,0x9A,0x93,
+0x79,0xFA,0xCE,0xF7,0xEB,0x01,0x7F,0x59,0x11,0x4D,0x01,0x08,0xE5,0xDA,0xCC,0x3A,
+0x33,0x26,0x57,0x94,0xA7,0x72,0x34,0x20,0x1D,0xE1,0x0E,0xF9,0x8B,0xBD,0x1B,0xA1,
+0x86,0x06,0x7C,0x59,0xC7,0x4D,0xD7,0xA5,0xF9,0x74,0xAB,0x28,0x40,0x85,0x1F,0xF3,
+0x49,0x39,0xDA,0x5A,0xA2,0x2D,0x82,0xD4,0xD6,0xE5,0x36,0xAB,0x71,0x54,0x3C,0x6D,
+0x68,0xCB,0xFA,0xE2,0xDF,0x0C,0x2D,0xE3,0xBF,0x0A,0x8C,0xB4,0xFB,0x96,0x7E,0x27,
+0xB0,0xDE,0xB2,0x80,0xE6,0x74,0xB4,0x0E,0xD3,0xD7,0xD6,0x20,0x5C,0xF4,0xA7,0xE1,
+0x36,0x69,0x73,0x62,0x16,0xA9,0x72,0x30,0xF0,0xEA,0x44,0x52,0x12,0x61,0x51,0xC2,
+0x71,0xE4,0xDD,0xDE,0xFE,0x35,0x4E,0x48,0x22,0x64,0xED,0x99,0x51,0xA6,0x1D,0xD5,
+0x4F,0x22,0x00,0x2E,0xD7,0x26,0x50,0x40,0x3D,0xC0,0xFC,0x41,0xE1,0x67,0xE8,0x74,
+0xBC,0xF8,0x6A,0xFB,0xA0,0x5A,0x74,0x89,0x47,0x27,0x58,0x77,0xEB,0xE8,0x6A,0xC4,
+0x04,0x89,0x76,0xE9,0xC6,0x9C,0x1E,0x37,0xFF,0x5A,0x2B,0x69,0xE4,0x87,0xDA,0xFF,
+0x05,0xFE,0x99,0x4D,0xB0,0x31,0xF3,0x6C,0xC0,0xDF,0xC8,0x09,0xD4,0x0B,0xEF,0xA4,
+0x1A,0xCA,0x64,0x05,0xCF,0x67,0xAA,0x06,0x8E,0x29,0x5D,0x2A,0xF2,0x79,0xE0,0x5D,
+0xBB,0x94,0x5F,0x2B,0x81,0x63,0x17,0x22,0x0F,0xFF,0x4D,0x15,0x2E,0xE2,0xC8,0x68,
+0xEC,0x5F,0x2A,0x26,0x23,0x75,0xE9,0x18,0xDB,0x5F,0x64,0x9F,0x4C,0x8A,0xB3,0x02,
+0x32,0x51,0xB8,0x30,0x89,0x49,0x6A,0x81,0x97,0xA3,0xCC,0xB3,0x4E,0xB7,0xB9,0x0D,
+0xAD,0xC9,0x5E,0xEE,0x4F,0xEE,0x08,0x58,0xE8,0x76,0x88,0x0E,0x84,0xD2,0xAB,0x9A,
+0xBA,0xE3,0xB0,0x8F,0x0C,0x9F,0x7E,0x2B,0xC5,0xED,0x28,0x82,0x09,0xCD,0xD1,0x54,
+0x38,0x6C,0xBA,0x3F,0x60,0x04,0x9F,0x6B,0x53,0x17,0x9B,0xDA,0x52,0xC6,0x01,0x1F,
+0x61,0xA2,0x06,0x6F,0xA8,0x70,0x09,0x2A,0x32,0x70,0x93,0x7A,0x34,0x13,0x5E,0x3B,
+0x8A,0x20,0xA4,0x22,0x1C,0xF4,0xF9,0xCE,0x1F,0xEB,0x33,0xF6,0x86,0xEF,0xA1,0x95,
+0x1C,0xD1,0xBE,0x71,0xCD,0x10,0x5C,0x5B,0xBC,0x16,0xEC,0x7E,0x44,0x38,0x3B,0xBD,
+0xC4,0xC4,0xF6,0x13,0xC1,0xB4,0x5E,0x9E,0xB7,0x82,0x3E,0x0B,0x27,0x0D,0x56,0x12,
+0x14,0xCF,0xAD,0x58,0x53,0x21,0x8D,0x78,0xA2,0xA4,0xA0,0x63,0x85,0x8F,0xBD,0x5F,
+0x07,0xDD,0x88,0x6B,0x40,0xEC,0x35,0x52,0x18,0xD3,0xEE,0x72,0x3A,0x21,0xF8,0xC5,
+0xC6,0xE7,0xE7,0x35,0x97,0xF1,0x19,0xFC,0x3B,0xEE,0x7C,0x00,0x2B,0x02,0xFA,0xE3,
+0x62,0xF6,0xF8,0xED,0x8D,0xC7,0x15,0xE7,0xFE,0x4C,0x76,0xAC,0xA8,0x2F,0x26,0xD3,
+0xAA,0xA5,0x6B,0x3E,0x25,0x8C,0x60,0x23,0x4A,0x9D,0x0A,0x43,0xCB,0x1A,0x4B,0x7C,
+0xF3,0x6B,0xD7,0x6E,0x67,0x2C,0xDF,0xC2,0xAE,0x08,0xAF,0x92,0xC3,0xA8,0xC3,0xC3,
+0x85,0x52,0x82,0xDB,0xDC,0xAA,0x12,0x2C,0xFC,0x46,0x4B,0xA3,0xF7,0x99,0xD2,0xD6,
+0xB1,0xA9,0x5D,0x24,0x32,0xCF,0xA7,0x6F,0x45,0x2D,0x65,0x78,0x80,0x6F,0x8F,0xD4,
+0x7C,0xB5,0xEA,0x01,0x4B,0x60,0x77,0x3E,0xDF,0x7B,0xD9,0xD1,0xB5,0x03,0x88,0x04,
+0x2E,0x31,0xBB,0xFA,0x0A,0x66,0xF7,0x10,0x4F,0xAF,0xEA,0xC8,0x7B,0xDB,0xBE,0xDD,
+0xF5,0x70,0x0D,0x1A,0xB5,0x6E,0x45,0x98,0xC8,0x57,0x7A,0xB6,0xAF,0xF2,0x1E,0x57,
+0x02,0x92,0xAC,0x9D,0xAD,0x2F,0xBF,0xDE,0x23,0x72,0xB0,0x5C,0x48,0x37,0x97,0x4C,
+0xF9,0x56,0xD5,0x61,0x56,0x7E,0x3B,0x8C,0x54,0x2F,0x46,0x5E,0xCC,0xC7,0x73,0xF8,
+0x55,0x59,0xD9,0x90,0x6A,0x59,0x14,0x95,0x17,0x63,0x81,0x49,0x0A,0xAD,0xCD,0x9E,
+0xCA,0xC1,0x3F,0x4E,0x37,0x90,0x11,0x9B,0xA5,0x9C,0x7D,0xE7,0xD0,0xB6,0xCB,0xEA,
+0x15,0xB8,0x42,0xFC,0xBC,0x95,0xF1,0xA9,0x13,0x47,0x3C,0x07,0x38,0x1C,0xF2,0xCA,
+0xF4,0x07,0xE2,0xBE,0xE8,0xA7,0x40,0x96,0x87,0xB7,0xB2,0x50,0x6C,0x78,0x92,0xBA,
+0xF0,0x3F,0x29,0xEC,0x8B,0x3E,0x9C,0xDC,0x9A,0x19,0x9E,0x87,0x92,0x2C,0x91,0x38,
+0xBF,0xAC,0x94,0x79,0x2D,0xA6,0x1D,0x80,0xC6,0xF1,0x48,0x48,0x81,0x32,0x99,0x11,
+0x84,0x25,0x6D,0x7F,0x5B,0x0B,0xF0,0xDB,0x65,0x0C,0x97,0xC0,0x77,0xD4,0x12,0x2C,
+0x13,0xA3,0x98,0x88,0xA9,0xA1,0xC0,0xB8,0x62,0x34,0x4A,0x44,0xA0,0x9D,0xAE,0x6C,
+0xFE,0x3A,0xE0,0xB1,0x9B,0x55,0x1B,0x39,0xC4,0xFB,0x75,0x47,0x1E,0x6E,0xFD,0x33,
+0x83,0x49,0x58,0xAF,0x1B,0xDC,0xB9,0x67,0x46,0x31,0x05,0xB2,0xF5,0xA4,0xD8,0xD9,
+0x0F,0xC3,0x9B,0x42,0xD0,0x0E,0x10,0xE9,0x5B,0x9F,0x29,0x65,0x91,0x4C,0x8D,0xF2,
+0x4A,0x6D,0x24,0xD8,0xE0,0x8D,0x3D,0x35,0x68,0xB6,0xC5,0xF4,0x19,0xB3,0xC5,0xB7,
+0xFB,0x51,0x4E,0xA6,0x98,0xEB,0xC2,0x45,0xC9,0x19,0xA6,0x07,0x53,0xE3,0xB7,0xB8,
+0xEA,0xF5,0x96,0xB9,0x04,0x03,0xBA,0x79,0x88,0x99,0x88,0x01,0x61,0x62,0x6C,0x4C,
+0x27,0x1B,0x2D,0x3F,0x6D,0x1C,0x55,0xC3,0xE3,0x38,0x61,0xB2,0xE2,0xF3,0xF1,0x63,
+0xBD,0x41,0xFF,0x7D,0xAB,0x7A,0xEB,0xA9,0xFB,0xC2,0x27,0xF3,0x14,0xF6,0xBE,0x47,
+0x57,0xD1,0xD8,0xBD,0x5C,0x82,0x76,0x12,0x46,0x86,0xF2,0x8C,0xC2,0xCA,0x5B,0x8B,
+0x78,0xC8,0xE4,0x9A,0x18,0x11,0x02,0x08,0xED,0xCC,0xF9,0x61,0xAB,0x7E,0x0C,0x4F,
+0xD8,0x53,0x68,0xB7,0xD8,0x36,0x92,0xE2,0x48,0x72,0x6A,0x5F,0x01,0xE7,0x8F,0x73,
+0x7F,0x03,0xB5,0xF7,0x0D,0x79,0x24,0x96,0x17,0x81,0x39,0xE1,0x32,0xF4,0x9D,0x56,
+0x66,0xC0,0xCD,0x89,0x95,0xDF,0x78,0x17,0x56,0x01,0x17,0xE7,0xF6,0x70,0x09,0x86,
+0xFA,0x23,0xA9,0x38,0x9B,0x21,0xDE,0x25,0xE1,0xCE,0x3C,0xC5,0x5B,0x40,0xCA,0x92,
+0x62,0xBC,0x77,0xDE,0x68,0x97,0x67,0x23,0x64,0xDA,0x96,0x13,0x5E,0xB4,0x7C,0xCD,
+0x22,0x15,0x70,0xF6,0x37,0x92,0x93,0x95,0x83,0xDB,0xE4,0x8D,0xC1,0x05,0x64,0x2D,
+0x1A,0x11,0x22,0x3D,0x67,0xAC,0xD7,0x4C,0x1A,0x4A,0x6E,0x94,0x51,0xBE,0x41,0xCF,
+0x1D,0xDA,0x73,0x50,0xBE,0x12,0xCD,0x37,0xE9,0xB3,0x9F,0xEF,0xAE,0x8A,0xBA,0x10,
+0x03,0xD2,0x5A,0x43,0xF1,0xF4,0x2D,0xFF,0x7E,0xD6,0x8D,0x25,0xF1,0xD9,0x49,0xAE,
+0xE8,0x30,0x9A,0x1D,0xF4,0x7F,0x1F,0x1F,0xDC,0x28,0xB7,0x33,0xDE,0xEA,0xDE,0x44,
+0x97,0x56,0x9E,0x93,0x05,0xC6,0xAC,0x24,0xF3,0xBF,0x84,0xD9,0xC0,0x97,0xAD,0xFC,
+0x98,0xFA,0x6F,0x9F,0x6B,0x5D,0x7B,0x43,0x90,0x63,0xCE,0x40,0x8C,0xEE,0xE6,0x8F,
+0xAF,0x52,0xCC,0x58,0xFF,0x0A,0x8B,0xCD,0x3D,0xA0,0xFE,0x54,0xC5,0x63,0x1B,0xA3,
+0x32,0xC3,0x4F,0x77,0xCE,0x94,0xA8,0x1C,0x3E,0x9F,0x31,0xF2,0xA0,0x12,0x4E,0xC3,
+0x4F,0x60,0x47,0x5D,0xD2,0x86,0x10,0x6D,0xE7,0x47,0x07,0x3C,0x81,0xB9,0x2D,0xFA,
+0x15,0xBD,0xD3,0x31,0x75,0x40,0xC9,0x0F,0x85,0x52,0xDF,0x74,0xB8,0x54,0xB4,0x82,
+0x74,0xD3,0xFE,0xAC,0xDF,0xB2,0xAA,0x3F,0xB9,0x7D,0xC6,0x53,0x99,0xFF,0xD7,0xBB,
+0xDD,0x5D,0x35,0x7E,0x9C,0xA5,0xE6,0xF8,0x05,0xF0,0x81,0xFD,0x71,0x87,0xEB,0x27,
+0xC1,0x90,0x10,0xC9,0x65,0xA3,0xDD,0x71,0x9C,0x61,0x0B,0xE4,0xC7,0x3E,0xED,0xD4,
+0x65,0x77,0x26,0xB3,0x6F,0x13,0x5F,0xFE,0x49,0xBB,0xF8,0x8E,0xB0,0xF7,0xC9,0xA8,
+0x51,0x68,0x6E,0x4E,0x5A,0xC3,0x58,0x92,0x2A,0x67,0xB2,0x17,0xD7,0xDB,0x6A,0xBF,
+0xB2,0xED,0x0E,0x71,0x6A,0x98,0x6D,0x1E,0x8E,0x10,0xB3,0xF8,0xA1,0x80,0x87,0x12,
+0xD4,0x48,0x72,0x81,0xA0,0x0F,0x7F,0x7B,0x4C,0x0D,0x0C,0xD1,0xE6,0x95,0x8E,0xED,
+0xC4,0x9E,0x4D,0x00,0x7C,0x3A,0x57,0xE0,0x62,0x53,0xAD,0xEA,0xA8,0xB1,0x33,0xE9,
+0x55,0x14,0xD4,0x19,0xC0,0x6A,0x0E,0x2E,0x57,0xC8,0x85,0x36,0xEE,0x36,0xF3,0xC7,
+0xFD,0xE8,0xF8,0x55,0xC2,0x65,0x04,0x13,0x41,0xC6,0x5B,0xA4,0x44,0xAF,0x70,0xFB,
+0xB1,0x5A,0xE5,0x4B,0x87,0x33,0x66,0x54,0xE8,0x7A,0x0D,0x3E,0x6B,0x9C,0xE7,0x11,
+0x11,0xC1,0x69,0x66,0x0A,0xFD,0x1C,0x4B,0x89,0x50,0x1A,0xD0,0x28,0xEF,0x91,0x60,
+0x0A,0xC7,0x1D,0xBC,0xBA,0x5C,0xE9,0x8A,0x08,0x3B,0xD6,0x88,0xCF,0x9D,0x90,0xFE,
+0x02,0xA0,0xBD,0xDD,0xDC,0x78,0xB6,0x5F,0x58,0xF5,0x8F,0x34,0x07,0xDC,0x06,0x8A,
+0x75,0xA1,0x19,0x32,0xCA,0xDA,0x8C,0xA1,0x16,0x48,0xAB,0x30,0xAA,0xEC,0xC5,0x9E,
+0xAA,0x5C,0x91,0x91,0x08,0xF2,0x16,0x76,0x45,0xB9,0x3D,0x2A,0x7B,0x79,0x60,0x7A,
+0x39,0x13,0x04,0x2C,0x0B,0x38,0x0A,0x16,0x3F,0x56,0xA3,0x23,0x34,0xCF,0x14,0xAF,
+0xA7,0x35,0x6C,0x39,0xA9,0x75,0xE1,0x94,0x74,0x5D,0x73,0x78,0xA6,0x29,0xC7,0x3A,
+0xE5,0x59,0x67,0xB5,0xA5,0x84,0x4D,0x9B,0x52,0x7E,0x71,0x69,0xF0,0x4B,0x80,0x7F,
+0x77,0x64,0x15,0x96,0xB4,0xA2,0x4F,0xB8,0x0C,0x44,0xB0,0x06,0x27,0xE5,0xAC,0x62,
+0x93,0x2A,0x24,0xC4,0x45,0x1B,0xFC,0x83,0x59,0x3C,0x1D,0xE5,0x42,0x94,0xF9,0x02,
+0xEF,0xFB,0xCB,0x70,0x26,0xB4,0x91,0xB6,0x8A,0x6F,0xD5,0x76,0xEA,0x50,0x8C,0x49,
+0xD2,0xF1,0xC4,0x72,0x79,0xB1,0x65,0x00,0xBC,0xCB,0x32,0x0C,0xBB,0x9B,0x8B,0x24,
+0x36,0xBF,0xF5,0x20,0x4D,0xA4,0x74,0x31,0x09,0xF2,0x44,0x59,0x00,0x75,0x46,0xA2,
+0x40,0xCC,0xB6,0x51,0x3B,0x63,0x3F,0x9A,0x66,0x2C,0xCB,0x64,0x2C,0x89,0xEE,0xEE,
+0xFC,0x9A,0x1F,0xCB,0x0E,0xB3,0x38,0xF6,0x43,0x30,0x06,0xD3,0x55,0xD8,0x3E,0x41,
+0xE3,0xE0,0xD1,0x46,0x21,0x30,0xA9,0x6B,0x7D,0xE9,0x42,0x83,0xD2,0x2F,0xDC,0xE0,
+0x73,0x18,0xAF,0xC1,0xF5,0xBA,0x09,0x42,0x9D,0xA8,0x99,0x35,0x6D,0xA7,0x6E,0xE8,
+0xDF,0x98,0x39,0xDA,0x42,0x9F,0xC4,0x5E,0x06,0xCF,0x4E,0x5B,0x31,0x3B,0xA2,0xF0,
+0x29,0xC5,0x3B,0xAD,0xC6,0x2B,0x20,0xAE,0xFA,0x0B,0xB5,0x22,0xCA,0x69,0x26,0xA1,
+0xE4,0x2B,0x80,0x2B,0x5E,0x8D,0x7C,0x2F,0x29,0x58,0x7D,0xB1,0x50,0x2C,0x88,0x1E,
+0x18,0xD4,0x2E,0x99,0x84,0xF9,0x7A,0x34,0xF7,0xC0,0xE2,0x57,0x0D,0x22,0x8D,0xD7,
+0x2B,0x00,0x37,0x09,0xE2,0xDD,0x25,0xE1,0xD9,0x9E,0x43,0x6C,0x8F,0x21,0xD9,0x29,
+0xA5,0xF0,0x60,0x9D,0xB6,0xAD,0x45,0x85,0x9B,0x21,0xA2,0xCC,0xDB,0x1E,0x68,0x1B,
+0xD1,0x46,0x2F,0x48,0x0F,0x76,0x2E,0xAB,0x1E,0x35,0x08,0x1A,0x4A,0x37,0x84,0x28,
+0x07,0xAE,0xE0,0x14,0x1C,0x5F,0x26,0xB5,0x8B,0xA6,0x47,0xA7,0xEC,0x6B,0x05,0xB0,
+0xD3,0x83,0x23,0xEC,0x2E,0x0B,0x19,0x04,0xEF,0x3A,0xA4,0x16,0xCE,0x0F,0x59,0x2F,
+0x0E,0xBB,0xA7,0xEB,0xF9,0x4B,0xA5,0x4D,0x18,0xBC,0x33,0xE3,0x3C,0x6C,0x69,0x85,
+0x9C,0x86,0xD5,0xC8,0x7B,0xBE,0x6F,0x3D,0xC8,0xD0,0x34,0xD6,0x7C,0xD0,0x20,0x52,
+0xEC,0x4C,0x20,0x4A,0x90,0x54,0x4A,0xF7,0xD6,0xA3,0x49,0x6E,0xFC,0x8E,0x82,0xDB,
+0x5C,0x01,0x93,0xE6,0x97,0xD0,0x72,0x2A,0xBF,0xF4,0xFD,0xAA,0x87,0x82,0xA4,0x03,
+0xB0,0x28,0x02,0xD5,0x1F,0x95,0x3A,0xD5,0x25,0x5A,0xB8,0x15,0xB7,0x5E,0x89,0x80,
+0xAA,0x91,0x6A,0x3B,0xDA,0x30,0x36,0xEF,0xF4,0x7B,0xB2,0x0A,0x70,0x8A,0xA6,0x0D,
+0x85,0x88,0x56,0x1C,0x9E,0xA3,0x42,0xF5,0x5F,0x31,0xB9,0xE7,0x19,0x3E,0xF1,0xC9,
+0x25,0x13,0xDA,0x31,0x5E,0x84,0xD2,0x1F,0xFA,0x8F,0x2A,0xD9,0xB3,0xA7,0x72,0xF5,
+0x82,0x43,0x07,0x71,0x8B,0xCB,0x64,0x6B,0xA5,0x7C,0x79,0x67,0x80,0xB4,0x60,0xD0,
+0x06,0x11,0xFC,0x20,0x1E,0x59,0x82,0xB8,0x7B,0xE4,0xE6,0x81,0xE1,0xA3,0x4A,0x3E,
+0x17,0xB5,0x24,0x3F,0x82,0xB1,0xFA,0x84,0x3A,0x64,0xC8,0x87,0xD3,0x22,0x91,0xCA,
+0xDA,0x5B,0x9F,0xB9,0xEB,0xAE,0x15,0x3E,0x51,0xC5,0x21,0x34,0x50,0xB3,0x0C,0xE5,
+0x40,0x01,0x4D,0xFB,0x2D,0xC8,0xAB,0x54,0x49,0x3F,0x67,0x75,0xA6,0xB6,0x43,0xC1,
+0xE7,0x51,0x90,0xBB,0xE1,0x1E,0x97,0xB1,0xA8,0xB7,0x2E,0x12,0xE3,0xFE,0xBC,0x49,
+0xE0,0x9A,0xC1,0xD6,0x38,0xA0,0x8D,0xCA,0x5B,0x4E,0xDF,0x69,0x1C,0xCA,0x47,0x96,
+0xFE,0x92,0xE8,0xC5,0x77,0x46,0x6D,0x02,0xCC,0x2B,0xCD,0xA3,0x43,0x99,0xB4,0x28,
+0x15,0x70,0x28,0x9B,0x72,0xCD,0x5F,0xE2,0x6E,0xD5,0xF7,0xB5,0x6C,0xAA,0x23,0xC2,
+0x9B,0x80,0x7F,0x0F,0x13,0x6D,0x38,0xEA,0xE4,0xFC,0x57,0x61,0x44,0x30,0xF4,0x00,
+0x07,0x63,0x1B,0xBE,0x1D,0x93,0x9E,0xD8,0x53,0x33,0x7C,0x43,0xE9,0x00,0x37,0x14,
+0x9F,0xFC,0xC5,0x58,0xEE,0x25,0x27,0xDE,0xD6,0x27,0xD6,0x95,0xEC,0xF4,0x81,0x4B,
+0xDF,0x55,0xC2,0x70,0xB1,0x20,0xD3,0x68,0x31,0x26,0xA4,0x0B,0x73,0x45,0x99,0xAB,
+0xB2,0x20,0xF5,0xDB,0x54,0x34,0x50,0x90,0x55,0xBA,0x47,0xBA,0x33,0xF9,0xD0,0x7C,
+0xE8,0xFD,0x61,0xB7,0xF3,0xF2,0x89,0xF2,0x37,0xAF,0x9F,0xF2,0x0A,0x14,0x49,0x04,
+0x89,0x93,0x4C,0x2A,0x59,0x00,0xEA,0xC2,0x0B,0x80,0x86,0xD5,0x2B,0xBF,0x2A,0x3D,
+0x20,0x1D,0x87,0xF8,0x1A,0x17,0xA6,0x05,0xB7,0x0D,0xC1,0x7B,0xC3,0xC7,0x16,0xA1,
+0x6A,0x16,0x2C,0x15,0x83,0x74,0xEC,0xD9,0x41,0x42,0xC4,0x5F,0x72,0xD7,0x50,0x7A,
+0x65,0xBA,0xDD,0x19,0xED,0xEF,0x3B,0xBE,0x22,0x9E,0x8E,0xC6,0x3E,0xAE,0x1B,0x09,
+0x52,0x12,0x7E,0xDE,0x79,0xB8,0xCB,0x30,0x8F,0x5D,0xBE,0xD2,0x77,0x23,0xE6,0x25,
+0xCF,0x83,0xFD,0xF1,0x48,0x26,0xE8,0xE1,0x8C,0x62,0x71,0x74,0x12,0x52,0xB3,0x45,
+0x29,0x08,0xC0,0x07,0x26,0xBD,0x3F,0x86,0xFE,0xF0,0x4C,0x57,0x54,0xD5,0x73,0x6B,
+0x39,0xDE,0xFF,0x86,0xFA,0x88,0x17,0x1D,0xD0,0xAE,0xED,0x6C,0x1A,0xF1,0xCE,0x6F,
+0xA8,0x54,0x66,0x9F,0x46,0xD8,0x4E,0xD3,0xE5,0x35,0xC5,0xB0,0x5C,0x76,0x0E,0x41,
+0x00,0xA8,0x4A,0xD3,0x44,0xD7,0x44,0xEE,0xF3,0x3B,0x1B,0x22,0xF6,0xEF,0x8D,0x7D,
+0x3C,0xD0,0xA2,0x4F,0xE3,0x11,0x9D,0x8C,0x2E,0x9C,0x4B,0x62,0x75,0x7E,0x10,0x52,
+0x98,0x37,0x94,0x35,0xE9,0xA1,0x1F,0x03,0xFB,0x46,0xB8,0x08,0x02,0xB7,0x34,0x2E,
+0xAC,0x28,0xDC,0xC8,0xDC,0x71,0x18,0x6F,0x98,0x9A,0xF2,0x91,0x65,0x9B,0x97,0x39,
+0x4F,0xAD,0xBC,0xF7,0xEC,0x2A,0x2D,0xE3,0x3C,0xED,0xF3,0x7E,0x13,0xC0,0x7A,0x94,
+0x88,0xE1,0xAB,0xB4,0x4C,0x68,0xCC,0x5C,0xA4,0xB5,0xEB,0xB6,0x18,0xAC,0x38,0x18,
+0x57,0x1C,0x23,0x17,0x8E,0x40,0x56,0x8B,0xF7,0x44,0x7D,0xAC,0xC9,0x39,0x9D,0xFC,
+0xC4,0x53,0xB6,0xAA,0x8D,0x8A,0x4A,0xEB,0x8D,0xAB,0xE3,0xA5,0x86,0x8F,0xE9,0x29,
+0x5A,0x75,0xDE,0xBF,0x2F,0xC7,0xA1,0x69,0xC6,0xA0,0x33,0xFE,0x14,0x69,0x3A,0xBC,
+0x4C,0x1A,0x57,0xCD,0x01,0x81,0x26,0xA9,0x5A,0x87,0x4D,0xB8,0xD9,0xDC,0x1A,0x97,
+0xEC,0x81,0xDB,0xE0,0x8C,0x4F,0x5C,0xB6,0x3B,0xAD,0x5A,0x56,0x9A,0xAF,0x6C,0xE6,
+0xF7,0x87,0xAF,0x3A,0x3C,0xEE,0xA9,0x77,0xBA,0xC6,0x96,0x0E,0x7D,0xDD,0x6D,0x78,
+0xFF,0xE0,0x0F,0x5B,0x5A,0xCA,0xF6,0xA2,0xEA,0x08,0xCF,0xB2,0xB5,0x9C,0xFB,0x0C,
+0x2F,0xB1,0x76,0xF4,0xFF,0x03,0x25,0xFD,0x0E,0x36,0x72,0x8A,0x09,0xDB,0x76,0xA2,
+0xCB,0xFF,0x47,0xA6,0xCB,0x16,0x34,0xCC,0xBB,0x0F,0x04,0xDF,0xB2,0x35,0xBB,0x24,
+0xBD,0x8C,0x04,0xD7,0xBD,0xD1,0x7F,0x67,0xD4,0xD1,0x8B,0xE2,0x9E,0xC9,0x13,0x68,
+0x01,0xDA,0xAD,0x4D,0x88,0x01,0x78,0x0B,0xF1,0xCD,0x46,0x55,0xE7,0x98,0xC3,0xC7,
+0x18,0x19,0xD5,0x33,0x23,0x36,0x0D,0x66,0xE0,0x83,0x31,0xEF,0x42,0x0B,0x7D,0xF9,
+0x8A,0x24,0xA7,0x10,0x32,0x10,0x0F,0x45,0xBE,0xB9,0xF0,0x80,0x95,0xA5,0x51,0xE4,
+0x6E,0x6A,0x96,0x42,0xC3,0xA9,0xBC,0x7E,0xEB,0xC1,0x5D,0x63,0xF0,0xD4,0x04,0x84,
+0x12,0xBB,0x79,0xF6,0xA0,0x06,0xD1,0x4B,0x38,0x92,0x95,0xF0,0x58,0x10,0x71,0xCF,
+0x19,0x6B,0x32,0xAD,0xD8,0x3F,0x3C,0xD2,0x9B,0xA5,0x3D,0x37,0xE2,0x6C,0x75,0x98,
+0xE5,0x94,0x9C,0x1F,0x02,0x4B,0x3A,0xC9,0x45,0x3D,0xA2,0xD1,0xBF,0x62,0x70,0x51,
+0xD6,0x40,0x85,0x8F,0x64,0x6F,0x65,0x1C,0x6B,0x63,0x03,0xEA,0x3D,0x61,0x24,0xAF,
+0x58,0xB0,0xD2,0x1B,0x30,0x1F,0x05,0x78,0x29,0xDC,0xE2,0x4A,0x69,0x5E,0x95,0x9D,
+0x1E,0xA0,0x63,0xC0,0xA7,0x82,0xE9,0x96,0xCF,0x14,0x02,0x05,0x60,0x6F,0x21,0x66,
+0x8E,0x58,0x1D,0x47,0x73,0x08,0x49,0xBF,0x2F,0x55,0xD9,0xB3,0xDF,0xE7,0x93,0x6E,
+0x22,0xD8,0x8B,0x5C,0xC4,0x2D,0x84,0xA3,0xB4,0x32,0x0E,0xDD,0x83,0x7B,0x5F,0x76,
+0xD4,0x85,0x89,0x2B,0x40,0x99,0x60,0x53,0x48,0xF6,0xF5,0xA4,0x78,0x29,0xDB,0x27,
+0x61,0xC6,0x67,0x4E,0xFD,0x0C,0x2F,0xC0,0x7A,0x2D,0x74,0x50,0xCE,0x90,0xDD,0xD4,
+0x11,0x0C,0x92,0xCC,0x16,0xE6,0x0A,0x0A,0x64,0x5E,0x09,0xE8,0x4E,0xCE,0x7F,0x5D,
+0xA1,0x41,0x21,0x60,0x11,0x62,0x32,0xD7,0x0D,0x09,0xBD,0x2C,0x35,0xC2,0x59,0x85,
+0x4D,0x68,0xB0,0x53,0x99,0x27,0x7A,0x28,0x97,0xA7,0xF8,0x93,0x05,0x1E,0x74,0x06,
+0x2C,0x06,0x9D,0xCE,0x89,0xC4,0x6E,0x56,0xAC,0xC8,0x48,0x9C,0xF8,0x77,0x79,0xAE,
+0xFA,0xEE,0x52,0x92,0x9A,0xED,0x66,0x48,0x39,0x5B,0x07,0x21,0x5E,0x2B,0xF8,0x36,
+0x2E,0xC3,0x91,0x6A,0xA8,0xB9,0x59,0xF9,0x5D,0xC7,0xE4,0x90,0x7C,0x4F,0xA4,0xA9,
+0xF3,0xFB,0x15,0x6D,0x7F,0xF9,0xE5,0xB0,0xAA,0x41,0x73,0x65,0x8E,0x2C,0x94,0x03,
+0x38,0x7F,0xDE,0x4B,0x63,0x1C,0xA8,0xA2,0xDF,0x2E,0x22,0x8E,0xE6,0x41,0x85,0xAF,
+0x84,0x36,0x09,0x0B,0xE7,0x1B,0x75,0x9A,0x75,0x4D,0x12,0x7C,0x13,0xC7,0x12,0x58,
+0x0F,0xD0,0xFF,0x36,0x6F,0xB8,0xAA,0x67,0xD8,0x16,0xFF,0x0A,0xEA,0x4E,0x29,0x5E,
+0x07,0xCE,0xEC,0x1F,0xA0,0xE4,0x7C,0x8F,0x40,0x4A,0x7E,0xAC,0x57,0xDD,0x66,0xCB,
+0x53,0x51,0x67,0x90,0xD3,0x16,0x27,0x20,0xF3,0xA3,0xDF,0xC7,0x5A,0x8F,0xDC,0xFF,
+0x1B,0xAE,0xEF,0xD5,0x42,0x25,0xCB,0x09,0x70,0x7F,0xF2,0xF7,0xE5,0x21,0x99,0x65,
+0x4E,0x46,0x8B,0xFE,0x95,0x38,0xE7,0xA7,0xA2,0xF1,0x5B,0x3C,0x26,0xAB,0x15,0x88,
+0x6B,0x8C,0x60,0x14,0x60,0xBA,0x97,0x6D,0x2B,0xAF,0xF9,0xBC,0x9E,0xD8,0x68,0x96,
+0xE5,0x25,0xB2,0xDF,0x79,0x2A,0xA4,0xB9,0x00,0x1A,0xD9,0x71,0xAB,0xB4,0x6F,0x46,
+0x01,0xD5,0x36,0x6B,0x7B,0x5D,0x52,0xE4,0x51,0x48,0x5D,0x8A,0xD2,0x70,0x94,0xBA,
+0x88,0x10,0xD1,0x70,0x91,0xB6,0x98,0xC1,0x10,0x0E,0xA7,0x92,0x73,0x92,0x63,0x3D,
+0x28,0x39,0x05,0xFA,0xEF,0x31,0x08,0x39,0x18,0x86,0x15,0x2D,0xC5,0xD3,0xB8,0xDD,
+0x04,0x9A,0x12,0x9D,0x77,0xF9,0x50,0x21,0xD9,0x00,0xA2,0xCF,0x9C,0xE5,0x62,0x99,
+0x64,0xFE,0x46,0xED,0x20,0x6D,0xDE,0xD1,0xEB,0x3F,0x13,0x9B,0x3C,0x5A,0x83,0xDB,
+0x5D,0x54,0xAE,0xCD,0xC0,0xDB,0x9F,0x0A,0xEE,0x0D,0xF3,0x10,0x41,0x23,0x5C,0x69,
+0x5B,0x4F,0x74,0xB9,0x6E,0x69,0x63,0xF5,0x27,0x03,0xF6,0x4D,0xA7,0xBB,0xC3,0xB7,
+0xDD,0xF8,0xB5,0x5B,0x64,0x34,0xE8,0x0B,0xF2,0xB5,0x82,0x02,0x15,0x47,0x3C,0x19,
+0xB0,0xCD,0xD6,0xF4,0x8B,0x80,0x94,0xDA,0xB9,0x71,0xF7,0xAA,0x86,0x14,0xF4,0xCA,
+0x6C,0xE0,0x55,0xC4,0x27,0x45,0x9E,0x78,0x8F,0x6A,0xFB,0xB0,0x99,0x05,0x50,0x12,
+0x6E,0xC3,0x44,0xE2,0x55,0x66,0x0C,0x45,0x92,0xC4,0xD7,0x67,0xF6,0x3F,0x91,0x4C,
+0x1E,0xE1,0xCB,0x23,0xF6,0xA1,0x3B,0xED,0x1E,0xA8,0x95,0x6C,0x94,0x57,0xEA,0x26,
+0x19,0x8D,0xFE,0xF3,0x5F,0x3B,0x87,0xBB,0xB1,0xF9,0x45,0x15,0x23,0x4B,0x27,0x03,
+0x44,0x7B,0x89,0xF1,0x84,0x82,0xA9,0xD0,0xD4,0xBA,0xF0,0xFB,0xFC,0xB0,0x13,0xFC,
+0x55,0x4A,0xBD,0xE4,0xB5,0xD0,0x4D,0x9E,0x52,0x54,0x3D,0x40,0xA9,0x89,0x65,0x49,
+0xC8,0xF1,0x4A,0x1C,0x5D,0x4C,0x71,0xE6,0x0E,0xBC,0xEB,0x8F,0x78,0x40,0xF7,0x48,
+0x97,0x24,0x2C,0x38,0xFD,0x2D,0x79,0x81,0x7A,0xFD,0x7D,0x47,0xC4,0x8E,0xAE,0x18,
+0x47,0x2F,0x77,0x73,0xA5,0xBB,0xCA,0x7B,0xE1,0xBD,0x9C,0x2B,0xCE,0x01,0x2C,0xA8,
+0x3D,0x30,0xFA,0xBD,0x29,0x96,0x6A,0xE0,0x90,0xCE,0xEA,0x68,0x20,0x2B,0x3B,0xC9,
+0x2B,0x6D,0xFB,0x78,0x44,0xDC,0x42,0x32,0x5F,0xEE,0x6F,0x74,0xD3,0x2D,0x82,0x7F,
+0xC0,0xEF,0x59,0x35,0x2C,0xC9,0xDC,0x14,0xCA,0x08,0xBC,0xE6,0x88,0x26,0x52,0x34,
+0xAD,0xDA,0x3A,0x9A,0x59,0xC2,0x0E,0x80,0x6E,0xCD,0xBE,0xEA,0xC0,0x33,0x8A,0x56,
+0x37,0x0D,0xF8,0xB2,0xD1,0x61,0xD1,0x7D,0x8A,0x58,0x1B,0x3B,0xDA,0xC2,0x1C,0x05,
+0x79,0xE9,0xAA,0x83,0x2E,0xBE,0x2A,0x49,0x4F,0xFA,0x11,0x97,0xE7,0x1C,0x93,0x6A,
+0x4C,0x65,0x9A,0xD8,0x4E,0x81,0xC9,0xCC,0xE2,0xA1,0xFC,0xE1,0x08,0x6B,0x92,0xCE,
+0xFC,0x0A,0x95,0xE3,0x50,0x39,0xBA,0xB1,0x24,0x1F,0x96,0x87,0x14,0x1A,0x2A,0xDC,
+0x7E,0x85,0x9F,0x53,0x66,0x43,0x1E,0x56,0x58,0xD6,0xB2,0xF0,0x7E,0xC0,0xD9,0x09,
+0x2F,0x55,0x30,0x2A,0x94,0xE9,0x2E,0x35,0x37,0x17,0x88,0xAE,0xC6,0xB3,0xA4,0x17,
+0x25,0x68,0x32,0x25,0xB8,0xA5,0x86,0xC9,0x0B,0x8E,0x0B,0x04,0x54,0xBD,0x7A,0x01,
+0x5E,0x00,0x50,0x4F,0x32,0x71,0xAF,0x69,0x1D,0xB4,0xF5,0xA6,0x21,0x76,0x2D,0x0C,
+0x76,0x9B,0x8C,0x7A,0x0D,0xF0,0xBF,0xBF,0x19,0x90,0x48,0xE8,0x1A,0x28,0x8C,0x22,
+0xAA,0xB6,0x0F,0x4A,0x8C,0xA8,0xD4,0x73,0x53,0x42,0x60,0x85,0xA4,0xDB,0xDF,0x7D,
+0x89,0x67,0x3E,0xD4,0x0F,0x87,0x49,0xE2,0x33,0x33,0x35,0xE0,0x02,0xE4,0x10,0x7E,
+0x8D,0x5F,0xF5,0x86,0xDE,0x63,0xEC,0x77,0x0C,0xB6,0xD6,0x80,0x29,0xC4,0xA5,0xB3,
+0x5A,0x38,0x9B,0x1D,0x2F,0x6F,0xE3,0xDB,0x7F,0xCF,0x9D,0xCC,0xB0,0x18,0xEF,0xD0,
+0x8B,0x44,0x2F,0xF2,0xBE,0x5C,0x0F,0xF2,0x4B,0xDE,0xAC,0xD9,0xA3,0x06,0xE7,0xF9,
+0xC7,0x83,0x6C,0xE5,0x75,0x8E,0xA6,0x7C,0xD7,0xA6,0x90,0x31,0x0D,0x8B,0xA0,0x45,
+0x31,0x16,0x22,0xC6,0x07,0xAD,0x34,0x41,0x0A,0x98,0x56,0xC1,0xCC,0x3C,0x26,0xA7,
+0xE8,0x74,0x85,0x00,0x93,0xC1,0x6E,0x9C,0x72,0x75,0xCF,0xF8,0x84,0x29,0xFE,0xC5,
+0x46,0x58,0x98,0xD7,0x37,0x2E,0x19,0x9D,0x3D,0x95,0x07,0x1E,0xE3,0xA1,0xB7,0x24,
+0xB2,0xEE,0xC7,0xD2,0x30,0x06,0x59,0x34,0xDD,0x24,0x1F,0x81,0x7D,0xA0,0xC5,0xC3,
+0x59,0x6C,0x65,0x9F,0x8D,0x79,0x1D,0xE1,0x76,0x51,0x72,0xB6,0x17,0x7A,0x36,0x16,
+0xFF,0x5E,0x6B,0x61,0xE9,0xC8,0x81,0x02,0x62,0x61,0xB1,0x1B,0x35,0xB5,0x1D,0xA1,
+0x0C,0x84,0x01,0xB4,0x1A,0xB3,0x78,0xF3,0x5E,0xF8,0x32,0xB1,0xD5,0xAD,0xAC,0x3E,
+0x3E,0x64,0x04,0x3F,0xDA,0xED,0x93,0x11,0xB4,0xCB,0xA5,0x9E,0xC3,0x53,0x96,0x9C,
+0xF6,0x37,0x97,0xEC,0x62,0xCD,0x61,0x30,0x3F,0x9F,0x3A,0x11,0x64,0x31,0x4F,0x5A,
+0xEC,0x4C,0x4E,0x52,0x33,0xA0,0x66,0xFB,0xE0,0xAB,0xC1,0xEE,0x1F,0xC8,0xBE,0xA9,
+0x74,0xB8,0x9D,0x5C,0x6D,0xCF,0x5C,0x3A,0x93,0xD2,0x8A,0xA2,0x42,0x43,0x40,0xA3,
+0xCA,0xD2,0x5B,0x3A,0xBF,0x8D,0xC6,0x60,0xB7,0xD7,0xC5,0x54,0x03,0xB9,0x06,0xBB,
+0xE3,0x3E,0x68,0xAB,0x0E,0x56,0x80,0x70,0x48,0xC2,0xCC,0x13,0xF7,0x62,0x87,0x89,
+0x9B,0x02,0xF4,0x43,0xD6,0x49,0x91,0xD4,0xBC,0x43,0x17,0x21,0xF1,0xE2,0xA9,0xC8,
+0xB3,0x99,0x28,0x76,0x28,0x47,0xA3,0x72,0x83,0xC6,0xF4,0x41,0xAF,0x09,0x4B,0x08,
+0x05,0xED,0xFD,0x39,0xF5,0x07,0x04,0x22,0xA6,0xD5,0xE6,0x72,0x11,0xFA,0x18,0x57,
+0x57,0x69,0xAC,0xC2,0x98,0x4D,0x2C,0xF0,0x7B,0xEB,0x20,0x82,0x7C,0xFD,0xD3,0x06,
+0x23,0x73,0xE8,0x51,0xA4,0x6A,0x03,0xE9,0xBF,0x5F,0x77,0xEB,0x91,0xB7,0xD8,0xAD,
+0x98,0x38,0x27,0x0C,0x22,0xA7,0x79,0x9E,0x3D,0xDC,0xAB,0x78,0x96,0x6C,0xAA,0x33,
+0xFE,0x1C,0xF2,0x53,0x45,0xAF,0xD9,0xFF,0xAB,0xA8,0x63,0x39,0x58,0x3C,0x16,0x6A,
+0xA5,0x57,0xF9,0x83,0xBF,0x1C,0x81,0x69,0x4A,0x33,0x0F,0x79,0xD7,0x8C,0x1C,0xE8,
+0x28,0x99,0xE6,0xF9,0x24,0xBC,0x0D,0x44,0x3C,0x42,0x4C,0x0A,0xFD,0xED,0xF2,0xFF,
+0x29,0x5C,0xBB,0xEF,0xF6,0x94,0x60,0x0E,0xB9,0x8D,0x50,0x2A,0xFB,0x5B,0x01,0x46,
+0x8B,0x11,0x39,0x04,0xD0,0x0A,0x08,0x1B,0x6A,0x18,0xC2,0xCC,0xF0,0x10,0x5A,0x96,
+0xE8,0xBE,0x0C,0x69,0x44,0xD8,0x7D,0x10,0x68,0xBC,0xCE,0x09,0xE5,0x72,0x12,0x4E,
+0x2A,0x96,0xDB,0xF3,0xB9,0x07,0xF5,0xB3,0xCD,0x58,0x1F,0x9C,0x14,0x21,0x08,0xD8,
+0x67,0x7F,0x2E,0x19,0xCF,0x3E,0x40,0xE6,0x54,0x20,0x26,0x71,0x91,0x3D,0xC7,0xF8,
+0x04,0xD0,0x1B,0x74,0x1E,0x42,0xAF,0x52,0x21,0x6B,0x8E,0xB5,0xC2,0xEE,0x54,0x30,
+0x87,0xE0,0x36,0xA8,0xBC,0x48,0x03,0x97,0x2D,0x5D,0x94,0xAE,0xD3,0x36,0x4B,0x94,
+0x96,0xC6,0x15,0xAA,0x81,0xDA,0x71,0xB4,0x01,0x40,0x43,0x00,0xE9,0x68,0x24,0x55,
+0x19,0x07,0x37,0xDA,0x29,0xED,0xD2,0x73,0x43,0xCC,0x48,0x6C,0x81,0x02,0x46,0x2E,
+0x2C,0xD7,0x5B,0xDD,0x7F,0x51,0x7B,0xE9,0x93,0x63,0x31,0x3D,0x9D,0x27,0xF1,0xE3,
+0x5B,0xD5,0xAD,0x80,0x14,0x7F,0xA0,0x50,0x26,0x06,0xDF,0x7E,0x66,0xD8,0x2E,0xD7,
+0x6F,0xC0,0x9C,0x91,0x5A,0x9B,0x91,0x02,0xEB,0x80,0x64,0x90,0x5F,0x6D,0x7B,0xA1,
+0x60,0xFB,0xF3,0x21,0x7D,0x72,0x5D,0xF8,0x0F,0xD2,0x55,0xDE,0x62,0x62,0x79,0xAB,
+0xE4,0x4F,0x03,0xC5,0x20,0x84,0x5F,0x8F,0x8B,0x83,0xAE,0x8C,0xA6,0x9E,0x00,0x50,
+0x03,0x54,0xC6,0x4C,0x05,0x4E,0xB5,0x64,0x71,0xC2,0xB6,0xCA,0x44,0x19,0xA1,0xA7,
+0xD7,0xDE,0xEF,0xEC,0xFD,0xDE,0xCB,0xE3,0xC3,0xCA,0x09,0x42,0x05,0xF9,0x17,0x7C,
+0xC0,0xB9,0x4C,0xC0,0xE5,0x86,0x53,0x2B,0x74,0x0B,0xEB,0xC4,0x33,0xBD,0x4E,0xA6,
+0x94,0xC9,0x28,0xA0,0x15,0x08,0x04,0xBF,0xC5,0x39,0xBF,0xFB,0x8C,0xFF,0xEE,0x47,
+0x7C,0xE9,0x82,0x99,0xCE,0x49,0xE4,0x09,0x25,0x3C,0x34,0xC9,0xF5,0x4D,0x93,0x98,
+0xA6,0x9D,0x99,0x9F,0x31,0xB5,0x4A,0xBB,0x20,0xF5,0x69,0xC7,0x6D,0x93,0x75,0x07,
+0x0C,0x6F,0xA9,0xFC,0x66,0x7E,0x47,0xCE,0xF4,0x0D,0xAA,0xEA,0x97,0x8B,0x34,0x41,
+0xDB,0x2F,0xE0,0x40,0x5E,0xA3,0xC3,0xC9,0xC4,0xA7,0x58,0x89,0x11,0x7C,0xC1,0xD6,
+0x2D,0x12,0x06,0xCB,0xA3,0x7C,0x4B,0x6A,0x29,0x0A,0x2E,0xD2,0x98,0x7A,0x38,0xED,
+0x3E,0x3B,0x18,0xC3,0x4B,0xAA,0x84,0x36,0xA8,0x92,0x88,0x8E,0x0B,0xEF,0x85,0xA2,
+0xB5,0xB4,0x87,0x97,0xE4,0xF1,0xF7,0xC4,0x09,0x21,0xE3,0x67,0x59,0xDB,0x88,0x18,
+0x3D,0xF1,0x78,0xDF,0xCD,0x1D,0x66,0xF7,0x24,0xA2,0xD3,0xBB,0xF7,0x41,0x37,0x5D,
+0x59,0xDA,0x90,0x8A,0x63,0x31,0xB1,0xEA,0x8D,0x70,0x18,0x35,0x7D,0xAC,0xF4,0xD1,
+0xB2,0x30,0x5A,0xAF,0xA9,0x41,0x44,0x68,0x2F,0xF9,0x98,0x6B,0x0E,0xB2,0x4C,0xAC,
+0x4F,0x78,0x6E,0xB0,0xFE,0x8A,0x49,0x1D,0x5C,0x41,0x86,0x16,0x95,0x87,0x90,0x84,
+0x89,0x1E,0x04,0x0E,0xA4,0x10,0x9B,0x5F,0x13,0x65,0x70,0x13,0x6F,0x9F,0xD1,0xC2,
+0xBA,0x8F,0xE8,0x27,0xB4,0x56,0x2A,0x84,0x1A,0x9A,0x37,0x06,0xB4,0xAD,0x25,0x43,
+0x26,0x67,0xD4,0x5F,0x10,0x47,0xF2,0x9B,0xC1,0x6E,0x05,0x87,0x34,0xEC,0x23,0x6D,
+0xFA,0x52,0x4F,0x77,0xB6,0x75,0x0C,0x95,0x22,0x51,0x65,0x02,0xDF,0x2C,0x7D,0x8F,
+0x2F,0x1D,0x3B,0xC1,0xE6,0xD2,0xD1,0xD5,0x30,0x74,0x56,0x11,0x2C,0x73,0xC3,0xDC,
+0x7E,0xE6,0xBF,0x93,0x34,0xFA,0xBC,0x9F,0xF6,0xA9,0xA6,0x2F,0x2B,0x22,0xAE,0x17,
+0x3A,0x75,0xA5,0xE7,0x2D,0xD5,0x80,0xB8,0xA1,0x6D,0xCF,0x9B,0x61,0x89,0x43,0x1C,
+0x4A,0xF3,0x8E,0x82,0x59,0xCF,0x13,0xFC,0xD1,0xEF,0x3A,0x51,0x77,0x00,0x31,0x73,
+0x15,0xF6,0x38,0x76,0xF0,0x8F,0x14,0xD4,0xC9,0x0F,0xA5,0xE0,0x76,0xE7,0xAF,0x01,
+0xB7,0xBB,0xBA,0x9D,0x25,0xCB,0xA9,0xAB,0xA4,0xA4,0x92,0x95,0xAC,0x32,0xC5,0xF2,
+0xB9,0x45,0x88,0x3B,0xC6,0x57,0xCD,0x1A,0x67,0xB0,0x3F,0xA5,0x63,0x85,0xE7,0xD9,
+0xD3,0x90,0x52,0xC8,0x37,0xAE,0x3E,0x61,0xE4,0x8C,0x95,0x3C,0x7B,0x1A,0x07,0x68,
+0xD6,0x1B,0xB2,0xFA,0xD5,0x45,0xFE,0x3F,0x73,0x66,0xBA,0x0F,0x85,0xB8,0x11,0x52,
+0x45,0xC8,0xE1,0x32,0xF4,0xB7,0x46,0x1F,0xEC,0xED,0x35,0x5B,0xE7,0x7E,0xB6,0x8B,
+0x9C,0x76,0x9A,0x28,0x3F,0xB0,0x17,0x72,0x17,0x32,0xCA,0x6F,0x1E,0x8D,0xCD,0x7A,
+0xDD,0x6E,0x60,0x6E,0xB7,0x02,0xA8,0x7A,0xB6,0x81,0xA1,0x86,0x0D,0x59,0x76,0x1B,
+0xEC,0xF0,0xB1,0x4D,0x26,0x9F,0x2B,0x55,0xE3,0xE1,0xC4,0xF7,0x32,0x5A,0xD0,0xD4,
+0x27,0xA2,0x89,0x49,0xB3,0x3A,0xFA,0xB1,0x00,0xDE,0xA4,0x72,0x12,0x97,0xFB,0x61,
+0x49,0x39,0xEE,0x9E,0x1F,0x35,0x0B,0xBD,0x4B,0xAD,0xE8,0x0B,0xCE,0xF4,0x62,0x2B,
+0xFD,0xD6,0x92,0x4F,0x36,0xD9,0x9A,0x8E,0x7A,0x99,0xFD,0x1A,0xD0,0xDD,0x71,0x23,
+0xBE,0xC1,0x55,0x03,0xB8,0x70,0x51,0x5C,0x46,0x05,0x15,0x62,0x5D,0x61,0xDF,0x64,
+0xF0,0xE2,0xC0,0xF5,0x85,0xE2,0x23,0x7F,0x80,0xD8,0xE5,0x5C,0xEA,0x83,0x1E,0xE2,
+0x57,0x24,0xA2,0x2C,0x58,0xB8,0xB7,0x13,0x19,0xA0,0xDC,0xB1,0xFF,0xE1,0x56,0x3A,
+0x78,0xA7,0x3F,0xBD,0x8D,0xFC,0x0A,0x6C,0xC7,0x9D,0xB3,0x3E,0xCA,0x4E,0x35,0x57,
+0x48,0xFC,0xB3,0x88,0x08,0x1F,0x6A,0x53,0x2A,0x30,0xC5,0x65,0xBD,0xEA,0xDA,0x56,
+0x47,0xC7,0xDC,0x38,0x75,0x6C,0x74,0xEB,0x40,0xF6,0xA3,0xDB,0xCC,0xF8,0xC6,0xEE,
+0x4D,0x77,0x53,0xBA,0x92,0xC8,0x42,0x91,0x64,0x8A,0xD4,0x12,0x16,0x2D,0xAC,0x1D,
+0xE2,0x0E,0x83,0xEB,0xF1,0xF8,0xB0,0x3B,0x5E,0xE5,0x8A,0xD3,0x65,0x33,0x14,0x60,
+0xE0,0x01,0xBE,0xE1,0x0D,0x50,0x9C,0x77,0xDD,0xD9,0x20,0x4A,0x6B,0x25,0x86,0xBE,
+0x82,0x6B,0xD6,0x9A,0xAD,0x79,0x16,0xA3,0x23,0xCF,0x82,0x70,0xA0,0x28,0xF3,0xE9,
+0x5E,0x5E,0x4D,0xB2,0x7B,0x69,0x29,0x22,0x9E,0xCB,0xCC,0x54,0xFE,0x06,0xC8,0x48,
+0xF2,0x77,0x16,0x21,0x8A,0x21,0x02,0x9F,0xB8,0x0E,0x88,0x93,0x1E,0xD4,0x8F,0x0B,
+0x76,0x25,0xED,0x70,0xF3,0xDD,0xF9,0x5B,0x0C,0xFE,0x6C,0x17,0x1C,0x89,0x79,0x7C,
+0x8C,0x63,0xF5,0x31,0x52,0x5A,0x0E,0xB9,0x17,0x3B,0xE5,0xF0,0xF6,0xAC,0xB3,0x97,
+0x3E,0xEB,0x4A,0x39,0xE4,0xBA,0xD5,0xF8,0x9D,0x12,0x45,0x24,0x88,0x54,0x23,0x10,
+0x89,0x6D,0xA8,0xF8,0xBD,0xFE,0x0F,0xCE,0xFA,0xB1,0x69,0x33,0x10,0x4C,0x7B,0xD8,
+0x38,0x52,0xFC,0xCA,0x1D,0xBC,0xEE,0x71,0x8A,0xD5,0x09,0x67,0x47,0xBC,0xF5,0x4C,
+0xD8,0x60,0x77,0xCF,0x60,0x0E,0x31,0x08,0xAA,0x7F,0x30,0x8F,0xA7,0x67,0xB4,0xFA,
+0xDD,0x6E,0x2A,0x06,0x86,0xD0,0xAE,0x90,0xDE,0x64,0x36,0x55,0x09,0x98,0x48,0x48,
+0x09,0x43,0xE9,0xFE,0xC7,0xC8,0xE8,0x6A,0x2C,0x54,0x55,0xFF,0x04,0xCF,0x83,0x3D,
+0x39,0x20,0x1B,0x54,0x32,0x3F,0x7F,0xEC,0x6C,0x1D,0xE9,0x28,0x80,0xF7,0x5E,0x3A,
+0xD4,0x7B,0x6D,0xF9,0xCB,0x39,0x44,0x65,0x51,0xFB,0x62,0xDE,0x08,0x0A,0x81,0x99,
+0x55,0x27,0xCB,0x61,0x76,0xAC,0x0B,0xF6,0x78,0xE5,0x6A,0xCD,0xC7,0xE2,0x57,0xC5,
+0xF4,0xCE,0xA0,0xD2,0x7B,0x98,0xB1,0xA4,0xF7,0x7A,0x3E,0x46,0xB4,0x4D,0x0C,0x37,
+0xD9,0x12,0x90,0x51,0xC4,0x02,0xF4,0x0A,0xB2,0x85,0x76,0xCE,0x25,0x64,0xE0,0x04,
+0x70,0x9C,0x5B,0x83,0x07,0xEF,0x78,0x80,0x99,0x6D,0x23,0xAA,0xF2,0xCA,0xCC,0x19,
+0xD2,0xC2,0xDB,0x0A,0xBF,0xF1,0x05,0xF3,0x73,0xA7,0x06,0x41,0x07,0x00,0xBC,0x9B,
+0xC0,0xD1,0xE8,0x2F,0x59,0x2F,0x9A,0x6B,0x7B,0xDA,0xA5,0x6B,0x3A,0x8B,0x5A,0x6D,
+0x56,0x90,0x20,0x5B,0xE5,0x7F,0xC3,0xA5,0x5F,0x0F,0xFA,0x0D,0x9A,0xEC,0x52,0x0C,
+0xB7,0xD0,0x4C,0xC0,0xEF,0xCF,0x41,0x2A,0x14,0x04,0x2A,0x56,0xC2,0x16,0xE1,0x9A,
+0xC1,0xA3,0x0F,0xB1,0x01,0xAE,0x56,0x00,0xDA,0x1B,0x50,0xDB,0x4E,0x8D,0x41,0xB7,
+0x44,0x83,0x13,0x7E,0xF2,0x18,0xEF,0x06,0x1F,0x46,0x46,0xDA,0x23,0x5F,0x69,0xFD,
+0x97,0x65,0x81,0xEB,0xA9,0x53,0x3F,0x0D,0x52,0xC4,0xAD,0x78,0x4B,0x79,0xF7,0xE8,
+0x95,0xA0,0x8D,0x4F,0xE1,0x31,0xE7,0x18,0xFD,0xF1,0xC0,0x1B,0x3E,0xED,0x25,0xE3,
+0x30,0x35,0x5C,0xAB,0xFB,0x62,0x71,0xE9,0xD5,0x26,0x5A,0xD9,0xB6,0x10,0xFA,0x40,
+0xA9,0xD8,0x65,0xD3,0x34,0x7E,0x51,0x6C,0x3C,0xD3,0xB0,0x94,0x03,0x66,0xC3,0x15,
+0xDC,0x1C,0xCD,0x98,0xA7,0xAD,0x99,0x3F,0x93,0xE6,0xDD,0xF7,0xEC,0xB7,0xBF,0xA1,
+0xD0,0x07,0xD7,0xAE,0xB8,0x75,0x3D,0x2E,0xA3,0xCB,0x01,0x74,0x40,0x15,0xB5,0x64,
+0xFC,0xA9,0x00,0xB3,0xD7,0x2B,0xFC,0x14,0x85,0xE8,0x03,0x65,0x32,0x28,0x27,0x47,
+0xBE,0xC5,0x0B,0x3F,0xB5,0x41,0x87,0x7C,0x44,0xCA,0x73,0xEA,0x91,0x80,0x10,0x80,
+0x6E,0x94,0x72,0x90,0x02,0x64,0x4A,0x60,0x94,0xA6,0x74,0xDF,0x38,0xD6,0xAC,0x1A,
+0xDB,0xD7,0x9C,0xF5,0xDD,0x9B,0x7E,0x9B,0x96,0x50,0x29,0xA8,0xE3,0xBD,0x82,0xA3,
+0x16,0x39,0x27,0x73,0x88,0x2E,0x08,0xA2,0x83,0x61,0x38,0x9C,0xD2,0xF3,0x66,0xF1,
+0x4B,0x2F,0xE2,0x72,0x85,0x1A,0xB2,0xF0,0x2D,0x9D,0xC7,0x2E,0xEB,0x1E,0xFF,0x89,
+0x1E,0x5E,0x87,0x12,0x23,0x19,0x7D,0xCF,0xB3,0x4C,0xE4,0x1F,0x68,0x8F,0x62,0xA6,
+0xFD,0xDB,0xE7,0x2D,0x08,0xD4,0xC8,0xEF,0xE1,0x74,0xE0,0xD4,0xB9,0x1A,0xC7,0x42,
+0xB6,0xA2,0xAB,0x5E,0x91,0xB7,0x82,0x33,0x7A,0x13,0x37,0xBA,0x48,0xB6,0xC8,0x4E,
+0x87,0xB3,0xBE,0x6A,0x82,0x9E,0x8A,0x2D,0x95,0x6F,0xE6,0x0E,0xD9,0x9F,0x24,0x7D,
+0xBB,0xCB,0x56,0xF6,0x2C,0x22,0xCD,0xA0,0x82,0xA8,0xAA,0x4D,0x12,0x11,0x8D,0xAF,
+0x7D,0xF5,0xA6,0x2B,0xED,0xC0,0x4B,0x17,0xA1,0x3D,0x5C,0x03,0x60,0x2C,0x1F,0x8C,
+0xE4,0x18,0x9F,0x53,0xA5,0xA2,0x93,0x02,0x67,0x5F,0x85,0xA4,0xF4,0xF1,0x45,0xE0,
+0x3A,0x97,0xF0,0x6E,0xC6,0x0D,0xFE,0x37,0xE4,0xC2,0x14,0x8B,0x49,0x24,0x01,0x9F,
+0xD7,0xCC,0x86,0xC3,0x29,0xA9,0xFF,0x40,0xBF,0x4E,0x21,0xBB,0x29,0xA1,0xE2,0xA0,
+0xBD,0x72,0xE0,0x05,0x35,0xBB,0x47,0x31,0x84,0x21,0x91,0xB4,0x37,0xDC,0x91,0x18,
+0x99,0xBB,0x97,0x79,0x5F,0x6E,0xB4,0xEB,0x34,0xAE,0x13,0xBE,0x01,0x3B,0x35,0x62,
+0xA3,0x7A,0xC9,0x16,0xE7,0x70,0xC9,0x98,0x4D,0x7E,0x42,0x11,0xF3,0x58,0x05,0xC8,
+0x20,0xE3,0x63,0x2A,0x75,0x66,0x17,0x96,0x42,0x43,0x48,0x13,0xDF,0xA4,0xAD,0x84,
+0xDE,0xD9,0xC1,0x3C,0x00,0x6B,0x40,0x5D,0x28,0x2B,0x33,0x71,0x55,0x04,0x84,0x50,
+0x63,0xFD,0x8F,0x38,0x3B,0x45,0xE1,0x03,0x1D,0xB0,0x1B,0xAD,0x6A,0xD2,0x94,0xD1,
+0xA1,0xBF,0xC5,0xB2,0x63,0xC4,0x2D,0x68,0x3B,0x93,0x19,0xBC,0x0A,0x57,0x77,0xEE,
+0xEE,0xBA,0x33,0x96,0x22,0xDC,0x6B,0x92,0x5D,0xF9,0xA7,0x7A,0xD8,0x0D,0xED,0xAC,
+0xE7,0xAF,0x74,0x69,0xD6,0xEE,0xEA,0x49,0xCC,0x15,0x8E,0x49,0x69,0x1D,0xAB,0x77,
+0x3C,0x2E,0x46,0x9D,0xD0,0xAF,0xC4,0xC9,0x24,0x29,0xF6,0xD5,0xB1,0xB9,0xBA,0x68,
+0xDF,0xAB,0x26,0xA2,0x8E,0x6F,0x26,0x22,0x11,0xB2,0xDE,0x09,0x4F,0x1F,0x88,0x66,
+0xCD,0xB8,0x15,0x87,0x30,0x30,0x75,0xD1,0x5E,0xC6,0x68,0xDC,0x92,0x4F,0x2F,0x26,
+0x0B,0x86,0xE5,0x5A,0x5D,0x61,0xBE,0xD6,0xA5,0x42,0x3A,0x8D,0xFF,0x9D,0x07,0x6C,
+0x5C,0x32,0x8C,0x9E,0xB0,0xCA,0xB5,0x9C,0x36,0x58,0x4E,0xC9,0xC3,0x84,0x28,0x4B,
+0x2C,0xF8,0x79,0x1C,0xC2,0x43,0xDA,0x8A,0xB0,0x73,0x2B,0xB9,0x50,0xF0,0x32,0x0F,
+0x34,0x49,0xE6,0xFC,0x5C,0xA4,0xA8,0x8B,0xB5,0xC5,0xDF,0xE6,0x57,0x59,0x72,0x27,
+0x59,0x3C,0xD1,0x57,0x36,0x71,0x5B,0x51,0xF8,0x47,0x34,0x44,0xEA,0x8C,0x36,0x58,
+0x9A,0x0C,0x7C,0x43,0x14,0xC6,0x70,0x9E,0x06,0x75,0x92,0x4A,0x8E,0x6F,0xAA,0xE9,
+0x19,0x95,0xD6,0x7F,0xF4,0x59,0xC1,0x86,0xD3,0xAF,0x61,0x20,0x7D,0x9E,0x53,0x92,
+0x8E,0xA6,0xF9,0x95,0xE2,0xFB,0xFB,0x78,0x58,0x4F,0x53,0x25,0xBD,0x7C,0xB8,0xCC,
+0x11,0xF2,0x76,0x1E,0x45,0x3D,0x22,0x1A,0x8B,0x1C,0x9B,0xB6,0x05,0x5D,0x4A,0xEC,
+0xEA,0xC6,0x89,0xC1,0x3E,0xCE,0xD3,0xE3,0x35,0x67,0x81,0x6F,0x54,0x96,0x4D,0x81,
+0x41,0xBC,0xC6,0x68,0xA4,0x3C,0x55,0x66,0x9D,0x91,0xB7,0x23,0x2A,0xAB,0x5C,0x06,
+0xF7,0xC8,0x13,0x27,0x79,0x7C,0xF2,0x36,0xB8,0x82,0xA5,0x10,0x94,0x58,0x0F,0x59,
+0x67,0x22,0xD3,0x00,0xF5,0x51,0x52,0xAD,0x84,0x1B,0x26,0xBA,0xAA,0xE6,0x9C,0xFC,
+0x13,0x38,0x97,0x93,0xC9,0x76,0x7D,0xB4,0x40,0xAF,0x71,0xD3,0x47,0xAC,0x97,0x57,
+0x8E,0x83,0x60,0x6B,0xEE,0xB6,0x97,0x24,0x8C,0x93,0x94,0x05,0x38,0xE8,0x42,0xEA,
+0x30,0xE9,0xA6,0x0D,0x3C,0xF4,0x0D,0x7E,0xA8,0x96,0xDB,0xF3,0x79,0x12,0x04,0xF2,
+0xDF,0x53,0xCF,0x12,0x87,0x72,0xC0,0x90,0x87,0x07,0x46,0x70,0xCA,0xB3,0xED,0x99,
+0xA7,0x6F,0x53,0xFA,0x5F,0x6D,0xD1,0x34,0x73,0x86,0x9D,0x42,0xCC,0x33,0xC3,0xD8,
+0x7A,0x35,0x3F,0x6E,0x8B,0xD6,0xC2,0x55,0x8F,0x8F,0xF4,0xCF,0xF8,0x02,0xD2,0xCD,
+0x48,0xD5,0x3A,0xE5,0x4B,0x88,0x29,0xB7,0x65,0xBC,0x63,0xE0,0xEE,0xFC,0xE8,0x6F,
+0xA8,0x1D,0x75,0x03,0x62,0x9B,0x37,0xBF,0xDB,0xEF,0x90,0xBF,0x24,0x99,0xFA,0xF8,
+0xB2,0x66,0xAC,0xBD,0x33,0xF6,0x30,0x74,0x04,0xDB,0x6B,0x40,0x5F,0x60,0x0B,0x0B,
+0xF6,0xBF,0xFC,0x83,0x61,0x3D,0x08,0x70,0xE6,0x60,0x4E,0xD0,0x46,0xF1,0x81,0x92,
+0x02,0x09,0xA3,0x86,0x66,0x15,0x48,0xD9,0x06,0xD1,0x56,0x4F,0xD8,0xF0,0xF3,0x75,
+0xBB,0x0F,0x50,0x30,0xB8,0xF3,0xD0,0x46,0x59,0x25,0xE0,0x4A,0x0E,0xE4,0x59,0xF0,
+0x1D,0x3D,0x5E,0xCE,0xDC,0x42,0x4C,0xA5,0x4D,0x15,0x23,0xE7,0x2C,0x2B,0x72,0x47,
+0x83,0xD2,0x57,0xB4,0x24,0xB5,0xF7,0x38,0xEC,0xE2,0xC1,0x60,0x36,0xDA,0xE4,0x14,
+0xCF,0x15,0x14,0xA3,0xEF,0x67,0x5E,0xB6,0x70,0x9A,0xFD,0x88,0x98,0x57,0xA3,0xA8,
+0xAC,0x25,0xBE,0x51,0xC2,0xFA,0x3F,0xD8,0x49,0x31,0x9E,0xA9,0xBF,0x78,0xBA,0x94,
+0x75,0x47,0x19,0x97,0x56,0x96,0x65,0x05,0x31,0xDC,0x07,0x90,0xF7,0x6D,0x62,0xF6,
+0xCD,0x36,0x05,0x85,0x5E,0xBC,0x18,0xA6,0x08,0x77,0x64,0xB1,0x39,0xB5,0x54,0x2F,
+0xEE,0xE7,0x34,0x1B,0xDD,0x93,0x85,0x37,0x68,0x06,0x31,0xD4,0x9F,0x8A,0x9B,0x2C,
+0x1E,0x69,0xA0,0x4C,0x7E,0x54,0xB2,0x9F,0x44,0x8B,0xCC,0x9D,0x8B,0x49,0xAB,0x81,
+0xC9,0x0E,0xCE,0xD7,0x8F,0x58,0xBD,0x33,0x37,0xF2,0x87,0xD1,0x12,0x95,0xE1,0xE2,
+0x61,0x39,0x09,0x74,0xE9,0x9E,0xD7,0x8D,0x30,0xCA,0x5A,0x55,0x6F,0xEC,0x3E,0x50,
+0x6B,0x04,0x0B,0x7B,0xC5,0xD2,0x7F,0x71,0x0C,0x53,0xD9,0xFF,0xFD,0xE2,0xE0,0x46,
+0x32,0xCA,0xB7,0x2B,0x5C,0xCB,0xEE,0xFB,0x22,0xD4,0x19,0xB9,0x21,0x79,0xC8,0x73,
+0x1A,0x51,0x6B,0x1E,0x63,0x4A,0xFE,0x2D,0x26,0xF0,0xA4,0xF7,0x1A,0x27,0x69,0x5D,
+0x08,0x34,0xA1,0x89,0x1F,0xBA,0x98,0x88,0xD9,0xE5,0xAD,0xB0,0x33,0x3A,0xD6,0x9F,
+0x3D,0xB8,0x91,0xD2,0x7F,0x85,0x7B,0x0D,0x74,0xBE,0x40,0xC6,0xDC,0x4D,0xD7,0x3B,
+0x3A,0xD4,0xA4,0x02,0x37,0x78,0x4F,0x12,0x63,0x92,0xE3,0xA1,0x45,0x91,0x9D,0x58,
+0xB8,0x5B,0xAE,0xB2,0x01,0x02,0xEB,0xF5,0x1F,0x5B,0xC7,0xD6,0x2F,0x4B,0x6E,0x8D,
+0x84,0xBE,0x62,0x64,0x7D,0xF2,0x8D,0x50,0xF1,0x4C,0xED,0xB7,0xB3,0x77,0x16,0x65,
+0x6F,0x3C,0xC0,0x29,0x15,0xE7,0x13,0x76,0x64,0xAA,0x3E,0x25,0xE8,0x7C,0xC6,0x2E,
+0x73,0x5C,0xC3,0xE3,0x80,0x5A,0x80,0x39,0xB1,0x1C,0x4A,0x6A,0xE1,0x93,0x58,0x54,
+0xE9,0x8B,0x01,0xCB,0x08,0xF9,0x5F,0xC4,0x55,0x89,0xEF,0xBB,0xFB,0x62,0xCE,0x07,
+0xD3,0x75,0x17,0x69,0xAC,0x16,0x28,0xC5,0x41,0xB9,0x2C,0x16,0xFF,0xDF,0xEA,0x49,
+0x8C,0xA0,0x71,0x4D,0x0C,0x77,0x20,0xA2,0x35,0xF8,0xBA,0xDE,0x43,0x11,0xB3,0x19,
+0x79,0x61,0xC1,0xEC,0x78,0xAD,0x3B,0xA4,0xAB,0x8A,0xBB,0x39,0x1B,0x7A,0x7F,0x98,
+0x03,0x7E,0x4C,0x22,0xF4,0x80,0x9B,0x3F,0xDA,0xF9,0xCD,0x7A,0xF5,0x50,0x68,0xF9,
+0x5D,0xDC,0xC5,0xA2,0x0E,0x00,0xD6,0xFF,0x8A,0xBD,0x14,0x44,0x18,0x1A,0x63,0x52,
+0x5A,0xB0,0xF0,0x72,0xA7,0x9A,0x6A,0xA9,0x25,0xEC,0xC4,0x3D,0xAF,0x06,0xAE,0x77,
+0x11,0x1B,0x86,0xB5,0xE4,0xEB,0x1C,0xDA,0x69,0x10,0x6C,0x11,0x92,0xD8,0x21,0x18,
+0x00,0x2A,0xB2,0xA0,0xD5,0xB9,0xF8,0x94,0xEF,0xFE,0xA1,0xAA,0xC7,0xE1,0x57,0xAD,
+0xF4,0x9C,0xED,0xA5,0xDA,0xBB,0xC5,0x9E,0x82,0x35,0xA6,0xFB,0xBD,0x45,0xB0,0x9B,
+0x99,0xA9,0x8E,0x0A,0x35,0x0F,0xB9,0x4F,0xC9,0xF1,0xD3,0x53,0x2E,0x16,0x78,0x48,
+0x2A,0x92,0x7F,0xB3,0x04,0x5D,0x5D,0x01,0xA9,0x80,0x86,0x36,0xCD,0x6E,0xD5,0x1D,
+0x28,0xB1,0x6E,0x95,0x76,0x7E,0xCF,0x3C,0xB4,0x2E,0xAA,0xE1,0xA2,0x54,0x14,0x43,
+0x20,0xAF,0x7D,0xBC,0x71,0x56,0x8F,0x95,0xD0,0x7B,0x42,0xCA,0x07,0x0B,0xC7,0x8A,
+0x40,0xCB,0x29,0xCC,0x26,0xC2,0x01,0x65,0xE2,0x44,0xF3,0x9E,0xA7,0xB4,0x26,0xC8,
+0x1F,0x1E,0x4F,0xE8,0x3F,0x52,0x32,0xB1,0x1C,0x47,0xA7,0x1C,0x9C,0xEA,0x87,0xE6,
+0x19,0x05,0x95,0x9C,0x91,0xE0,0xCE,0x4E,0xD5,0x49,0xA2,0x41,0x7A,0x72,0x18,0x38,
+0x45,0x84,0x0D,0x3A,0x2A,0x66,0x03,0xA0,0x6A,0x0C,0x0C,0xDB,0xE9,0x21,0xD0,0xEB,
+0xA1,0x74,0x89,0x8E,0x28,0x11,0xF5,0xFD,0x3B,0x5E,0x88,0x20,0x90,0xE5,0x2B,0x17,
+0x6C,0x68,0x3E,0xAB,0xBE,0x0A,0x59,0x7D,0x23,0xC2,0x44,0x7C,0xFE,0x82,0xFC,0x8C,
+0xCC,0x41,0xEA,0x21,0xC0,0x8D,0xC9,0x85,0x2B,0x4A,0xF6,0xC3,0x48,0xC3,0x27,0x6C,
+0x5F,0xFF,0xD4,0x84,0x13,0x1E,0x9A,0x4D,0x4B,0x3B,0xA3,0xA6,0xDE,0x70,0xDD,0x34,
+0x17,0x00,0x5C,0xC1,0x82,0x2D,0x76,0x64,0xC8,0xE7,0x8E,0x96,0x61,0xDE,0x98,0xAE,
+0x2F,0xDD,0x5B,0x45,0x31,0x81,0xC6,0x29,0x10,0xEB,0xA8,0xED,0xA5,0x89,0x2C,0xC7,
+0x0A,0x17,0xB0,0xAF,0xC4,0x03,0xB6,0xE3,0x99,0xB5,0x0A,0x6D,0x1D,0xFA,0x51,0xD9,
+0xC0,0x67,0x32,0x5A,0xB6,0x20,0x24,0xDE,0x4E,0x09,0x43,0x2D,0x28,0x96,0x56,0x09,
+0x7C,0x2E,0xE5,0x1A,0x32,0x27,0xF9,0xE6,0xE4,0x6A,0x73,0xDF,0xDD,0x10,0xC1,0xFE,
+0x43,0x9F,0xD7,0x4E,0xF1,0xDF,0x2D,0xCB,0x7B,0x0E,0x2F,0xFD,0x6C,0x8C,0x22,0x9A,
+0x4B,0x81,0xC4,0x67,0x3E,0x83,0xFB,0x23,0xE3,0x52,0xAE,0x5B,0xD1,0x1F,0x6D,0x0F,
+0x34,0x1A,0x2B,0x5B,0x9A,0x11,0x44,0x5B,0x46,0x9F,0x2D,0x2E,0xBB,0x64,0xB3,0xA3,
+0xE1,0x55,0x5F,0xED,0xCA,0xB6,0x99,0x1B,0x54,0xBA,0x1E,0x3D,0x48,0x3B,0x0D,0xF0,
+0xB0,0xAE,0xDB,0xBF,0x18,0x9E,0xF4,0x51,0x92,0x67,0xEE,0x03,0x4F,0x6A,0x60,0x3B,
+0xF4,0x3D,0xC1,0xCB,0x01,0xB1,0xC8,0x76,0xC5,0xA3,0x87,0xB7,0x05,0xC1,0x8D,0x30,
+0x81,0x30,0x0A,0x9C,0xD2,0xEE,0x01,0xD3,0x38,0x8F,0xCE,0x3A,0xF1,0xCF,0x5E,0xA8,
+0x47,0x56,0x60,0x22,0x88,0x74,0xD3,0x91,0x77,0xAB,0x38,0x3F,0x0B,0xD7,0x1F,0xEE,
+0x74,0xC7,0x8C,0x0B,0x98,0x32,0x62,0x4A,0x7E,0x54,0x7F,0x2A,0xD0,0xE5,0xEB,0x6F,
+0xE8,0x2F,0xB0,0x73,0x3C,0x23,0xBA,0x55,0xA5,0xA0,0x4D,0xAB,0x50,0xA4,0xED,0x41,
+0x1D,0xD8,0x36,0xE4,0x1B,0xCA,0x76,0xAF,0x80,0x42,0xDD,0x10,0x1F,0x52,0xC9,0x44,
+0x18,0x53,0xD6,0xD6,0xF9,0x21,0xB6,0xF1,0x17,0xA8,0xF2,0x23,0xE1,0xF0,0xDF,0x7E,
+0x8B,0x80,0x85,0x1E,0xD8,0xD3,0x0E,0xD1,0x88,0x23,0x7D,0x77,0x83,0x36,0x78,0xA7,
+0x52,0x3E,0xFE,0x04,0x13,0xD4,0x5F,0xBC,0x73,0xFC,0x82,0x43,0x7A,0xC5,0x03,0x56,
+0x84,0xBB,0xEA,0xAE,0x75,0xAB,0x5B,0x32,0xB5,0x21,0x72,0x7D,0x13,0x48,0xFF,0x5F,
+0xDB,0xBE,0x5C,0x5A,0xDC,0xEB,0x5C,0x1A,0xAD,0xC1,0xED,0xCC,0x12,0xAF,0x61,0x2D,
+0x79,0xF3,0xDE,0xB1,0x09,0xAF,0xE1,0x65,0xC0,0x6A,0xDA,0xB9,0xC8,0x7A,0x0B,0xDE,
+0x77,0x0D,0xEC,0x17,0xEA,0x33,0x85,0xD4,0x03,0x7E,0x77,0x89,0x07,0xCD,0x29,0xF5,
+0x33,0x9E,0xF6,0x63,0x1A,0xBD,0xD2,0x40,0x1E,0x57,0xB5,0x36,0xB4,0x95,0xBF,0x0F,
+0x70,0x89,0x31,0x2F,0x94,0x14,0x19,0x92,0x22,0xCB,0x5D,0x4E,0x39,0x29,0x11,0x48,
+0x3E,0xAA,0xA4,0xD9,0xA9,0x86,0x6B,0xB1,0xE4,0x16,0xAD,0x70,0x8E,0xCB,0xD0,0xCE,
+0x99,0x6C,0xC6,0x00,0x74,0xDC,0xFF,0xDD,0x7D,0x6E,0x94,0x9D,0x9B,0xA9,0x98,0x16,
+0x13,0x26,0x04,0x42,0x9B,0x66,0xE0,0xB4,0xD2,0x4F,0xE9,0xAA,0x69,0x11,0xB8,0x37,
+0x22,0xB8,0xD5,0x61,0x0A,0xFB,0x63,0x9B,0x87,0x2F,0x8C,0xDB,0x56,0x12,0x1E,0xF8,
+0xE9,0xEA,0xED,0x65,0x9F,0x5E,0xB2,0x7F,0x64,0x10,0xEC,0x5E,0x76,0xDF,0x35,0x4D,
+0x87,0x71,0x8A,0xB2,0x33,0x51,0x43,0x73,0x2F,0x63,0xA0,0x27,0xAA,0xBC,0xAC,0x07,
+0x2C,0x46,0xE7,0xC7,0xDD,0x9C,0xF8,0xF5,0x3A,0x2B,0xC2,0xFF,0x01,0x7B,0xDA,0x4C,
+0x2E,0x49,0xDA,0xCD,0x21,0x34,0xD4,0xB9,0xB9,0x17,0x68,0x66,0x0F,0x6D,0x48,0x92,
+0x4C,0x23,0xB2,0xB6,0x81,0x1D,0x5E,0x6D,0x47,0x01,0xCA,0x5C,0xC4,0x60,0x3D,0xC5,
+0x90,0x16,0x29,0x9E,0x57,0x0D,0x61,0xEC,0xFA,0x05,0x84,0x78,0x9A,0x4E,0x06,0x64,
+0xB6,0xEF,0x5B,0x91,0xA1,0x98,0x42,0xA2,0xA3,0x53,0xFB,0x12,0xAE,0x06,0xFB,0x7B,
+0x86,0xB4,0xD7,0xA4,0x24,0x7B,0x22,0x9D,0x4E,0xFE,0x8D,0x49,0xD9,0xA2,0x14,0x7A,
+0x89,0x8F,0xB8,0x14,0x59,0x08,0x3C,0x25,0x24,0x38,0xEB,0xF7,0xA8,0xB0,0x08,0xC2,
+0x83,0x3F,0x37,0x96,0xBE,0xAC,0x0A,0x5F,0x00,0x44,0x9C,0x3E,0x72,0x65,0x62,0x31,
+0xE7,0x14,0xDF,0xC3,0xDA,0xF0,0x28,0xC0,0xDD,0x43,0x18,0x06,0x9F,0x13,0xCF,0x6A,
+0x45,0x59,0x5D,0x28,0xFC,0x6E,0x40,0xD5,0x0E,0xD6,0x8A,0xE0,0x94,0x58,0x94,0xBA,
+0x26,0xF6,0x68,0x45,0x68,0xBC,0x35,0xDE,0x0C,0x72,0x86,0x25,0x81,0x3A,0xDC,0x62,
+0xE4,0xDE,0xBF,0xDF,0x95,0x63,0xBD,0x7D,0xA9,0x96,0x57,0xB0,0x70,0x69,0xC6,0xF4,
+0x56,0x70,0x43,0x20,0x0E,0xC3,0x31,0x50,0x59,0x12,0xE3,0x54,0xF2,0x24,0x64,0x1F,
+0x30,0x54,0x96,0x7F,0x69,0xCB,0x91,0x31,0xCF,0x66,0x2B,0x15,0x3C,0x74,0xD8,0x46,
+0x6B,0x1F,0x9D,0xAF,0x93,0x78,0xC9,0xA7,0x2E,0xFD,0x47,0x55,0xB3,0xC4,0xD2,0xC4,
+0xE6,0xD1,0x82,0xD5,0x08,0xD8,0x45,0x8A,0x58,0x8C,0x04,0x26,0x99,0xA5,0x3C,0xD3,
+0xD7,0x4F,0x53,0xF6,0x05,0x89,0x9A,0xBD,0x27,0x02,0x00,0x40,0xE5,0x4A,0x88,0x02,
+0xE2,0x9F,0x3F,0xF1,0x53,0x35,0x33,0x27,0xF7,0xAD,0x79,0x11,0xF9,0x6F,0x3F,0xCF,
+0x95,0x9D,0xC9,0xAC,0x38,0x1B,0xE8,0x9E,0x42,0xC8,0x97,0x52,0x02,0x90,0xE0,0xFB,
+0xA1,0x88,0xF8,0xBD,0x76,0xFF,0xD9,0xCC,0x8F,0x4E,0x2C,0xBC,0x3B,0x25,0xB5,0x8D,
+0xA9,0x37,0x4A,0x35,0xE3,0x5A,0x08,0x28,0x30,0xEE,0x6E,0x5D,0xF5,0x75,0x09,0xD4,
+0xCA,0x98,0x7F,0x58,0x32,0x26,0xE7,0x9C,0x45,0xA5,0xC6,0x99,0xA6,0xA6,0x9A,0x1C,
+0x49,0xA8,0x52,0x84,0x90,0x2C,0x4B,0x59,0x49,0x93,0xDC,0x82,0xB7,0x7E,0x85,0xB8,
+0x58,0x8E,0x71,0x86,0xAD,0xBE,0x39,0x7A,0x65,0x8E,0x0B,0x2C,0x8D,0x20,0xEA,0x79,
+0x0E,0xF1,0x28,0xEC,0xC9,0xE2,0x1B,0xE5,0x10,0xC5,0xA3,0xE8,0x57,0xF5,0x80,0x8A,
+0x5A,0x81,0x4C,0x8C,0x39,0x6C,0x4C,0x71,0xA1,0xF7,0xF7,0xD7,0xE8,0xB7,0x20,0x6B,
+0xB2,0xA1,0xE6,0xB5,0xE2,0x2D,0xAC,0xC7,0x41,0xF2,0x7C,0xE5,0x91,0x05,0x5D,0xB4,
+0x68,0xD5,0xFD,0xB3,0x1D,0xD1,0x02,0x75,0x44,0x3B,0x21,0xEB,0x09,0xDB,0xBB,0x2B,
+0xAE,0xB3,0x97,0x0D,0x51,0x16,0x15,0x36,0x6B,0x1C,0x1D,0xF2,0x06,0x2A,0xB7,0x87,
+0x2A,0x07,0x67,0xE9,0x0C,0xE0,0x17,0x41,0xEF,0x4D,0xE6,0xA0,0xC2,0xD6,0xCE,0x7C,
+0xCD,0x1C,0xA2,0x60,0x29,0x2A,0xFD,0xAA,0x15,0x0C,0xFE,0xE6,0x20,0x51,0x6F,0x8B,
+0x19,0x96,0x8B,0xC0,0xD1,0xBA,0x83,0x2D,0xA7,0x04,0x41,0x6E,0x61,0xB1,0xD9,0x50,
+0x7B,0xFC,0xE3,0xBB,0xC8,0x95,0xBF,0x0A,0x6D,0xEF,0xAB,0x4B,0x3D,0x93,0x46,0x34,
+0xF3,0xB9,0x1C,0xF3,0xE1,0x79,0x2E,0x39,0x40,0x6C,0x9B,0x97,0x93,0x09,0xF9,0x71,
+0x97,0x92,0xF4,0xA6,0x4F,0x55,0xF9,0x24,0xE9,0xBE,0x50,0x19,0x19,0xE4,0x3A,0xFD,
+0x7C,0x78,0x3E,0x83,0x85,0x25,0x0C,0xA6,0x4B,0x37,0xD0,0x47,0x6A,0xFA,0x82,0x80,
+0xC2,0x27,0xCD,0xD0,0x4A,0x1A,0x0F,0x00,0x90,0xC3,0xE2,0xC6,0xF3,0xC3,0xFA,0x6D,
+0x15,0x67,0x84,0x6C,0x72,0xC7,0x8B,0x07,0xA0,0x69,0x10,0xA5,0x75,0x34,0x0F,0xFA,
+0xE3,0x5A,0x62,0xE7,0x8F,0x18,0x03,0xA4,0x4D,0xC4,0x66,0xFE,0xFC,0x32,0xF6,0xC1,
+0xF0,0x73,0x7C,0xEF,0x67,0xCE,0xCC,0xF8,0xCC,0x5C,0xC0,0xA2,0x6F,0xA7,0x4B,0x8E,
+0xEF,0xD1,0xF0,0xD5,0xEE,0x43,0x20,0x56,0x61,0x6C,0xFE,0x48,0x7B,0x27,0xD2,0x33,
+0xF9,0x43,0x2E,0xDB,0x6D,0xDA,0x1C,0xFC,0x9D,0x40,0xB2,0xE0,0x71,0x25,0xDD,0x0E,
+0xF4,0x36,0x79,0x10,0x93,0xE0,0x0A,0x5E,0x3D,0xCA,0x66,0xC9,0x0A,0x47,0xB7,0x66,
+0xDA,0x0D,0xD8,0x4E,0x2E,0xC4,0x0E,0x10,0xEB,0xF5,0xE7,0xD9,0x22,0x9B,0x82,0xFD,
+0x92,0xF0,0xC7,0x7A,0x77,0xAE,0x58,0x6F,0x1D,0xD6,0xA9,0x4C,0x2D,0xBD,0x7B,0x8F,
+0x36,0x1F,0xC6,0x0D,0x9A,0xF5,0xF5,0x19,0x98,0xB6,0x96,0xAF,0x18,0x8D,0x20,0x03,
+0x24,0x03,0x7E,0x7C,0xF0,0x4B,0x33,0x7F,0xE5,0xA8,0x2E,0xDC,0xA8,0x82,0x1B,0x6C,
+0xF1,0x69,0x8D,0xA6,0xD4,0x82,0x4F,0x08,0x02,0x9E,0x54,0x78,0x2A,0x88,0xAB,0xE3,
+0x01,0xB4,0xB3,0x60,0xCA,0x8A,0x5C,0x21,0xA6,0x46,0x4B,0x69,0xDF,0x38,0x0A,0x22,
+0xBD,0x1A,0xF4,0xED,0xF6,0xF2,0xC0,0xC9,0x28,0x8D,0x99,0xC0,0x93,0x7B,0x1D,0xE5,
+0x5F,0xDB,0x72,0x5A,0x30,0xCC,0x1D,0x39,0x15,0xFF,0xBA,0x52,0x65,0x35,0x3E,0x70,
+0x3D,0x93,0xAA,0x4F,0xA9,0x21,0x65,0x00,0xC8,0x6B,0xD6,0x08,0xBC,0x92,0xF8,0x12,
+0x85,0xB3,0x8B,0xBD,0x06,0x16,0x44,0x7D,0x27,0x74,0xBF,0xB2,0xFE,0x18,0xB2,0xD0,
+0x86,0x15,0x44,0x82,0x53,0x67,0x24,0x18,0xB6,0xF7,0x90,0x2F,0xDD,0x29,0x2C,0x01,
+0x4B,0x3E,0xF1,0xA2,0xB0,0xE2,0x1B,0x78,0x23,0x26,0x74,0x8A,0xD9,0xE2,0x7E,0x39,
+0x28,0xA7,0xBB,0x7E,0xFB,0x9B,0x68,0x34,0x8F,0xD7,0x78,0x85,0x0E,0x8C,0xE5,0x5E,
+0xC6,0xC2,0xF8,0xCB,0x54,0xAC,0x49,0x49,0xA7,0xE2,0xA4,0x1E,0x58,0x16,0x4C,0xE2,
+0x64,0xD4,0xC2,0x35,0xC3,0x9F,0xA3,0x66,0x45,0x22,0xFA,0xF5,0x6A,0x13,0xC7,0x02,
+0xA2,0x73,0x1B,0x57,0x5C,0xCB,0x28,0xE9,0x64,0x9A,0xDA,0x07,0xA2,0x80,0x14,0x51,
+0x51,0x08,0xEA,0xAE,0xA7,0xFF,0xF7,0x16,0xAF,0xCB,0xB7,0x00,0xB8,0x59,0xAA,0x2A,
+0xDC,0xF4,0xE3,0xC7,0x61,0xC1,0x2A,0xE6,0xC9,0xCF,0x39,0x7F,0x12,0x8F,0x2F,0x3E,
+0x3B,0x6A,0x91,0xC6,0x79,0x70,0xCA,0x79,0x60,0xC8,0x11,0x3F,0xE6,0xD0,0x2A,0x88,
+0xEE,0x00,0x62,0x1C,0x14,0x05,0x61,0x4E,0xB5,0x75,0x6E,0x7B,0x0D,0x72,0x67,0x0A,
+0x59,0x22,0x49,0xD3,0xD7,0x35,0x75,0xE3,0x56,0x11,0xDF,0xE7,0xAB,0x7C,0x99,0x38,
+0xF0,0xB8,0x1F,0x6F,0x92,0x92,0x94,0xB9,0x26,0xD0,0x50,0xC5,0xE7,0x3F,0x8E,0xFF,
+0xAF,0x06,0x4C,0x9C,0x80,0x81,0xB1,0x8A,0x76,0x0D,0x10,0x62,0x51,0xEA,0xC1,0x8B,
+0xFE,0x6B,0x87,0x9B,0x46,0xBF,0x6C,0x7A,0xA4,0x60,0x5A,0x4A,0x03,0xBB,0x3A,0x0F,
+0x55,0x86,0x8C,0xD1,0x11,0x0B,0xA8,0x13,0xBD,0x5C,0x7D,0x65,0x77,0xFF,0xA9,0x15,
+0x5B,0x55,0x14,0x25,0xEC,0x86,0x84,0x5A,0x6E,0x95,0xD8,0x3A,0x20,0x8A,0xA4,0xDE,
+0x43,0x14,0x52,0xDF,0xA3,0x83,0xA0,0xAC,0x34,0x47,0x9A,0xA0,0x9E,0x4C,0xC2,0xB4,
+0x71,0xE0,0xD3,0x04,0xAA,0x96,0x5F,0xEB,0x24,0xF6,0x41,0xE6,0xB7,0x7F,0x53,0x58,
+0x30,0xE6,0xFD,0x84,0x71,0x17,0xAB,0xD9,0x80,0x2E,0x5E,0xF7,0xCF,0xE3,0xBB,0x64,
+0x07,0x4D,0x88,0xE9,0xB9,0xF7,0xE4,0x3F,0x74,0x2B,0x01,0x41,0x07,0x70,0x68,0x37,
+0x9D,0xF2,0xCD,0x47,0x94,0x2B,0x67,0x0F,0x5D,0xBA,0x32,0xAD,0x4F,0xF8,0x2D,0xC8,
+0x70,0x31,0x41,0xCD,0x3D,0xA5,0xB5,0xC4,0xF3,0x6D,0x2F,0x81,0x1A,0x9C,0x06,0x20,
+0x6E,0x89,0x3C,0xBE,0x9F,0xFB,0x3C,0x44,0x39,0x98,0xAD,0xF1,0x3F,0x77,0xEC,0xEA,
+0x57,0xF1,0xD1,0x27,0x44,0x7A,0xC8,0x76,0xF6,0x9B,0x0B,0xCE,0x6C,0xC9,0xB3,0x19,
+0xA0,0x04,0x46,0xA1,0x74,0x19,0x62,0x84,0xCE,0x1F,0x0C,0x13,0xD0,0x1E,0xF3,0x50,
+0xA6,0xFD,0x7D,0x28,0x99,0x42,0xCF,0xF2,0x33,0x97,0xAF,0xCC,0x5B,0xE8,0xCE,0xB6,
+0x33,0x40,0x32,0xBB,0x18,0x1E,0x57,0x54,0xDB,0x58,0xF3,0x1A,0x53,0xFB,0xE7,0xA8,
+0x61,0x8B,0x36,0x83,0xC4,0x54,0xCE,0x37,0x75,0x8F,0xEE,0x36,0x50,0x05,0x65,0xFC,
+0x23,0x2B,0xD7,0x3C,0x75,0x6B,0xFC,0x63,0x85,0xD8,0x7A,0xB8,0x30,0x51,0x15,0x98,
+0x91,0x56,0x08,0x45,0x95,0x59,0xF9,0xE8,0x5E,0x38,0xCC,0xF9,0x09,0xB9,0x35,0x32,
+0x4F,0xB0,0x97,0xDD,0x90,0x57,0x30,0xB5,0xA1,0x96,0x7E,0x05,0x0F,0x63,0x41,0x29,
+0xBE,0xBC,0x3B,0xD2,0xBF,0x4E,0x17,0x89,0xED,0x81,0x3D,0xC2,0xB1,0xA5,0x27,0x43,
+0x42,0xC5,0xC0,0x16,0x3B,0x1C,0x46,0x72,0xB0,0x83,0x4A,0x34,0x55,0x21,0x93,0xB3,
+0xC5,0x64,0x37,0xF4,0xC1,0x5A,0x07,0x6A,0x95,0x69,0xA1,0xFE,0xDC,0xC6,0x88,0x76,
+0x25,0xD2,0xEC,0xB5,0x73,0xD2,0x0F,0xD5,0x6D,0x17,0x26,0x6E,0x7C,0x12,0x02,0x5F,
+0xDE,0x83,0xBE,0x31,0xF3,0xFC,0x09,0x94,0xB9,0x0E,0xB6,0x5D,0x4A,0xDC,0xDB,0x87,
+0xFB,0x34,0x73,0x2D,0x23,0xAD,0xA6,0xED,0xEF,0xA7,0x2C,0xE1,0x4D,0xE9,0x0B,0xEB,
+0x04,0xEB,0x47,0xD6,0x96,0xEE,0xC3,0x03,0x84,0x7C,0x95,0xCF,0x10,0x9E,0x09,0x1D,
+0xB1,0xBE,0x31,0xEF,0x5B,0x00,0x45,0xB8,0xCA,0x4D,0xC7,0x2B,0x01,0xAA,0x1C,0x2C,
+0xE1,0x02,0x68,0x21,0xE4,0xE1,0xE5,0xFA,0x5F,0x9C,0x23,0x8E,0x89,0xA2,0xA3,0x9E,
+0x32,0x91,0xA0,0x72,0x91,0x25,0xAE,0x52,0x8E,0x73,0x97,0xF2,0xE4,0xC1,0x0C,0xAB,
+0xEA,0x8E,0x04,0x63,0x9D,0x3E,0x98,0x48,0x2C,0xDF,0x52,0xF8,0x38,0x42,0x3C,0x86,
+0xB4,0xE1,0xC5,0x59,0xB1,0x90,0x85,0x9F,0x11,0xAD,0x71,0x6A,0x3A,0x53,0x1A,0xA5,
+0x87,0xC4,0xD6,0x4B,0x09,0xBA,0x48,0x8C,0x66,0xBC,0xCB,0x24,0x7F,0xEC,0x80,0x0B,
+0xCC,0x9F,0x06,0x40,0xDA,0x5C,0xDD,0x1E,0x40,0xD4,0xDE,0xBA,0x94,0x4E,0xCD,0x89,
+0xAE,0xD7,0xDE,0x55,0xD8,0x99,0x79,0x12,0xD4,0xA1,0xD5,0x68,0xF9,0x2D,0x62,0xBC,
+0xFD,0xCD,0x48,0xA4,0x7D,0x0C,0x9D,0xC3,0x29,0x29,0x76,0xB7,0x63,0xEF,0x4A,0x6B,
+0xB0,0x6F,0xA3,0x26,0x8D,0xE8,0x19,0x77,0xB2,0xA5,0x5B,0x17,0x9C,0x5D,0xE4,0x97,
+0xE0,0xD3,0xFA,0xE8,0x1B,0xA9,0x6D,0xBF,0xD5,0x05,0x3A,0x1F,0xC3,0x3B,0xC0,0x42,
+0x50,0xD9,0x78,0x67,0xFA,0xE9,0xF6,0xD3,0x2F,0x5D,0xAC,0xAC,0x13,0x60,0x8B,0x49,
+0x31,0x37,0x6F,0x4D,0x8C,0x9A,0x87,0x90,0xB4,0xD1,0x81,0x0C,0x69,0xED,0x45,0x56,
+0x2D,0xC3,0x66,0x1D,0x01,0xAB,0x74,0x08,0xB6,0x66,0x98,0x16,0x91,0x62,0xAA,0xFF,
+0x1E,0xE6,0x75,0x0F,0xF2,0xF8,0xCA,0x57,0x00,0x29,0x4D,0x62,0xC1,0x22,0x77,0x58,
+0xB4,0xDA,0xEC,0x8C,0x4C,0x6B,0xF4,0xF2,0x90,0x0E,0x8D,0x88,0x5A,0x0F,0xFB,0xF8,
+0xDD,0x1E,0x58,0xDB,0x06,0x60,0x19,0x59,0xE4,0x9D,0xC9,0x92,0x43,0x28,0xC7,0xD7,
+0x0B,0xD2,0x64,0x3E,0x42,0xB5,0x66,0xE4,0x79,0x65,0x3E,0x29,0xD3,0xE8,0xE0,0x3D,
+0xFD,0xF6,0x61,0x71,0xB8,0xF3,0x27,0xFC,0xC7,0x03,0xF8,0x43,0x89,0xAA,0x32,0xA7,
+0x7E,0xD9,0xF0,0xEC,0x19,0x1A,0x94,0x97,0x28,0x1C,0x91,0xF9,0x67,0x2C,0x89,0x6A,
+0x4C,0x2D,0x71,0x37,0x99,0x34,0x92,0xD6,0x50,0xF4,0x0D,0xC5,0xC3,0x33,0x51,0x7B,
+0xC1,0xD1,0x78,0x5E,0xA8,0x25,0xA6,0xC3,0x8D,0x60,0x61,0x9F,0xA2,0x88,0x85,0x68,
+0xEE,0x3B,0x4B,0xC9,0x56,0x1F,0xB0,0x61,0xBF,0xEB,0x64,0x7F,0x40,0xD6,0x45,0x83,
+0xB1,0x85,0x18,0x3A,0x33,0x0D,0x7A,0xF6,0x5F,0x0D,0x2B,0xB7,0x48,0xC5,0x6C,0x9D,
+0x4E,0x5A,0x2C,0xC1,0xCA,0xFC,0x01,0x05,0x45,0xB3,0xF2,0xCC,0x83,0xA8,0x3D,0x9A,
+0xDE,0xB8,0x97,0xE4,0x5B,0x76,0x18,0x9C,0x01,0x8D,0xA2,0x15,0x87,0x63,0x6F,0xA2,
+0x41,0x58,0x26,0xFC,0x5A,0x04,0x86,0x7B,0xF5,0x88,0xFD,0xA3,0x2E,0x4B,0x68,0xE2,
+0x44,0x07,0xD2,0x4A,0x4E,0xAE,0x50,0xFE,0x4C,0x3E,0x0E,0xA5,0xB1,0xAD,0xB6,0x7A,
+0xE9,0x13,0xE2,0x89,0x81,0x85,0x72,0x49,0xEA,0xC0,0x00,0x97,0x52,0x1C,0xD2,0xE6,
+0x6E,0xB2,0x15,0x6B,0x70,0x13,0x68,0x1A,0x74,0xBA,0x09,0x78,0xCF,0xEB,0x2A,0x5D,
+0x86,0x2E,0x6D,0x57,0xFD,0x54,0xC6,0xA6,0x38,0xAD,0x4A,0xBF,0x41,0x39,0xE1,0xF4,
+0xA7,0x17,0xC6,0x34,0xD2,0x4D,0xE1,0x9A,0x5B,0x5F,0xE0,0x8F,0x2F,0xA4,0xCC,0x95,
+0x9E,0x6F,0x2B,0xAD,0xC7,0x95,0xA9,0xF8,0x82,0x99,0x47,0xED,0xF2,0xC8,0x58,0xCF,
+0xBF,0x56,0x80,0xCE,0x1F,0xA3,0x67,0x21,0x3A,0x8B,0x5B,0x9C,0x51,0xE2,0x50,0xB2,
+0xDA,0x36,0xF1,0x9B,0x20,0x6C,0xC1,0x22,0x19,0x15,0x6A,0x4D,0xC0,0xCD,0xD3,0x2F,
+0x93,0x1A,0x7C,0x66,0xE3,0x5C,0xD5,0x8F,0xE9,0x42,0xFE,0xC3,0x68,0x0A,0x70,0x18,
+0xDF,0x69,0x05,0x2D,0x3F,0x16,0x4C,0xEC,0x3E,0xD9,0x90,0xA4,0xC4,0x06,0x81,0x17,
+0x5B,0x6E,0x3D,0xF0,0x46,0xC9,0x31,0x5E,0x96,0x7A,0x57,0x93,0x7A,0xC0,0xE7,0x7D,
+0xF1,0x52,0xA4,0x73,0x48,0x17,0xA3,0x48,0x9C,0x75,0x55,0xAE,0x86,0x8C,0xCB,0xD5,
+0xB7,0x7C,0x23,0xB3,0xD3,0x3F,0x7F,0x7D,0xC5,0x25,0xE9,0x60,0x0C,0x95,0x52,0x44,
+0xF9,0x78,0x07,0x0E,0x8D,0x9E,0x44,0x53,0xED,0x10,0x35,0xFB,0xDA,0x14,0x6D,0x54,
+0xBE,0x87,0x12,0x07,0x90,0x21,0x6D,0x91,0xFF,0x87,0xFF,0x9E,0x7F,0xE4,0x11,0x32,
+0xC8,0x2A,0x49,0xEA,0xE7,0x20,0x82,0x35,0xCA,0xDC,0xCF,0x12,0xFA,0xDB,0x71,0xD1,
+0xAF,0x3D,0x65,0x49,0x3B,0x6A,0x1B,0x56,0xCD,0x0C,0xFA,0x7E,0xE5,0x26,0x39,0xE5,
+0xD8,0x41,0xAC,0x6D,0xE1,0x99,0x71,0x83,0x4F,0xBC,0xF0,0xF1,0x02,0x5C,0x0F,0x41,
+0xB9,0xAF,0xBB,0x47,0xDD,0xE1,0xED,0x6B,0x73,0x6A,0x3C,0x14,0xA7,0xAC,0x73,0x27,
+0x2B,0x3A,0x5D,0x94,0xD6,0x31,0xB6,0x20,0x98,0x27,0x9E,0x96,0x81,0xB9,0x1B,0xB9,
+0x64,0xEF,0xEB,0xE0,0x39,0xAF,0xBF,0x5A,0x84,0xED,0x9D,0xF6,0xCE,0x04,0x8E,0x2A,
+0xB5,0x0B,0x7E,0x45,0xC8,0x39,0xA5,0x09,0x1E,0xC5,0x5F,0x21,0x33,0xA7,0x06,0xF5,
+0x18,0x1F,0x4E,0x86,0x75,0x1D,0xA1,0x47,0x24,0x67,0x49,0xDF,0x32,0x48,0xA2,0x82,
+0xD0,0x6B,0x0F,0x10,0xBB,0x44,0x1D,0x17,0x7B,0x43,0x2F,0x0A,0x55,0x29,0x02,0x8A,
+0x37,0xF5,0x7D,0x11,0xD0,0x88,0x45,0x96,0x8E,0xE2,0x9F,0xCB,0x53,0xF3,0x76,0x91,
+0x74,0x84,0x0E,0x67,0xFA,0x9F,0xAB,0xF7,0xF4,0x2C,0x12,0xD4,0xC8,0xDE,0xFA,0x31,
+0x4A,0xD4,0x4A,0xBE,0xB0,0x94,0x46,0x5C,0xAA,0xAC,0x9B,0x76,0x08,0x5E,0x00,0x7C,
+0x33,0x7B,0x1B,0x6E,0xAC,0x59,0xF1,0x79,0xAD,0x7C,0xAE,0x1A,0x5E,0xC4,0xA9,0xC0,
+0x1F,0x37,0xE7,0xC6,0x72,0xD6,0xCC,0x16,0xE6,0xBB,0xD8,0xB1,0x2D,0xB5,0xEA,0xB6,
+0xA4,0xB1,0x09,0x0B,0x4B,0xA0,0x99,0xA3,0xF7,0xAE,0xEC,0x80,0x63,0xE7,0xDB,0x52,
+0xF5,0xDC,0xC2,0x0C,0xEF,0x47,0xE3,0x95,0x03,0xAB,0xB3,0x36,0x69,0xE5,0xD4,0x6F,
+0x5D,0x97,0x06,0x79,0xBC,0x8F,0x70,0x46,0x6E,0x04,0xD0,0x03,0xB8,0x51,0x3B,0x13,
+0x38,0xF7,0x77,0x2C,0xC4,0x22,0x93,0x13,0xDD,0xBD,0x21,0x38,0xF6,0x03,0x0A,0xF7,
+0xEF,0xEA,0xD9,0x00,0xFE,0xE3,0xFC,0x4D,0xDF,0x9B,0x30,0x1B,0xCB,0x20,0x78,0x65,
+0xC4,0x8E,0x8C,0xE8,0xA1,0x30,0x59,0x84,0xD7,0xB2,0x23,0x05,0x62,0x08,0x7F,0x25,
+0x90,0xBC,0xB3,0x59,0x1E,0xD1,0xF9,0xC6,0xB7,0xC2,0x77,0x61,0x92,0x9C,0x28,0xAB,
+0x12,0x42,0xB0,0x0D,0x40,0x70,0xC2,0xE8,0xE8,0xE6,0x11,0xB4,0x46,0x0C,0x31,0x98,
+0x4F,0x8B,0xBE,0x08,0xD8,0xEF,0x24,0x36,0xEE,0x92,0xCB,0xAF,0xB9,0xBE,0x9F,0x64,
+0xD5,0x34,0xFB,0xA6,0x8B,0x27,0xB7,0xE5,0xB2,0x34,0x53,0x2E,0x57,0x38,0x24,0xA9,
+0x2E,0x65,0xA9,0x22,0x4F,0xDC,0xCE,0x19,0x56,0x80,0xD7,0xDE,0x0A,0x4F,0x26,0x5F,
+0x72,0x7D,0x35,0xEE,0x28,0x0B,0xA0,0x82,0x9B,0xA5,0x60,0xC2,0x8A,0x54,0xB0,0xF3,
+0xCD,0x75,0xBD,0x5C,0x69,0xD0,0x16,0x62,0x3B,0x2F,0xB4,0xEB,0x72,0xD3,0xCE,0x63,
+0xA8,0x15,0xCC,0x09,0xDA,0x2A,0x80,0x3A,0xA8,0x8A,0x8A,0x55,0xBA,0x40,0x1D,0x30,
+0x98,0x96,0x10,0x24,0x74,0x6F,0x3F,0xA0,0xE0,0xCF,0x02,0xAA,0x93,0x73,0x8C,0xDC,
+0xE3,0x4E,0x1C,0x02,0x23,0xDB,0xFB,0xC9,0xD8,0x4B,0x05,0x77,0xDE,0xDF,0x3F,0x6C,
+0x63,0xC7,0x42,0xA0,0x50,0xA6,0x43,0xD7,0xFD,0xA1,0xEE,0xBD,0x14,0x5D,0xCA,0x1C,
+0x23,0x10,0xFE,0xE9,0x3C,0xA1,0x76,0x07,0x37,0x54,0x6C,0xCD,0x29,0x7E,0xB8,0x8E,
+0xD1,0xBA,0x9D,0xD9,0xBA,0x36,0x83,0xF0,0x8B,0x14,0xBB,0x84,0x11,0x79,0x3C,0x53,
+0xF3,0x25,0xF9,0x85,0x26,0xD5,0x32,0x94,0xB4,0x40,0x89,0x35,0x3C,0x81,0xFF,0x87,
+0x55,0xBD,0xA5,0x04,0xB5,0x9A,0x8F,0x01,0xBC,0x69,0x9A,0x2B,0xD4,0xDD,0x30,0x51,
+0x32,0x4E,0x6F,0x7B,0xC7,0x26,0x0E,0xE5,0x82,0x9F,0x38,0x20,0xA2,0xF5,0xB4,0x95,
+0x00,0x1A,0xDE,0x44,0x26,0x99,0x4C,0x45,0xE6,0xCB,0x48,0x40,0x2C,0xA2,0x20,0x65,
+0xFE,0x98,0x8A,0x47,0x87,0xC7,0x62,0x7E,0x33,0xAD,0x6C,0x1F,0x1F,0xBB,0xB0,0xB1,
+0x37,0xC5,0x8F,0x49,0x18,0x5F,0xBC,0x98,0x28,0x77,0x18,0x19,0xE3,0x15,0x02,0x4E,
+0x88,0x5F,0x21,0x0C,0xD0,0x0C,0x6F,0x0B,0xA9,0xEF,0xBE,0x45,0x2E,0xAE,0x84,0xA0,
+0xD9,0xA4,0xA5,0x5E,0x2B,0xC8,0x93,0x72,0x59,0x6B,0x0A,0xA1,0xD8,0xAC,0xF3,0xFD,
+0xC1,0xF8,0x69,0xC2,0xFC,0xAF,0x08,0x1C,0x45,0xDC,0x2F,0x6C,0x74,0x3A,0xE8,0x7D,
+0xC9,0x47,0xDB,0x4A,0x27,0xEE,0xE8,0xAA,0x6C,0x08,0xA5,0xCC,0xE4,0x44,0x6F,0x85,
+0xA9,0x22,0x8E,0x3B,0xDD,0x5D,0xB0,0x3C,0xD2,0x36,0x00,0x5F,0xB7,0x97,0xFC,0x4D,
+0x2A,0x12,0xA3,0xE7,0x98,0xF3,0x2A,0x83,0x2D,0xBE,0x45,0x17,0x5B,0x06,0xCF,0x64,
+0xF2,0x69,0x85,0xEB,0x2C,0xA4,0x43,0x47,0xF0,0xB9,0xC1,0x2F,0xEB,0xB5,0x63,0x29,
+0x7B,0xE9,0x27,0xB5,0x51,0xD7,0x5D,0xFF,0x3A,0x52,0x2B,0x0A,0x9B,0x40,0xE1,0xE3,
+0xAC,0xA9,0x6E,0x09,0x56,0xBB,0x8D,0xCA,0x4A,0xD0,0xDE,0xC0,0x09,0x32,0xC2,0xDE,
+0x06,0x5B,0x5E,0x6A,0xC1,0x3D,0x7A,0x3F,0x03,0x07,0x9E,0x7C,0xD4,0xB6,0xC5,0xE6,
+0x99,0x79,0x02,0x0E,0x22,0xA1,0x1E,0x8E,0xB2,0x35,0xCA,0x43,0x00,0x75,0x3D,0xCB,
+0x01,0xDF,0x83,0x52,0x6D,0x32,0x8B,0x33,0xAC,0x26,0xE3,0x4B,0xD6,0xBA,0x61,0x23,
+0x13,0x33,0xC0,0x4C,0x16,0x5A,0xE1,0x51,0x93,0x80,0xE0,0x84,0xA0,0xF9,0x10,0x50,
+0x86,0xA1,0x13,0xAA,0xC6,0x51,0xAA,0x0A,0x11,0x22,0xAD,0x6F,0x3E,0x91,0x05,0x76,
+0x53,0xEE,0x67,0x1C,0x58,0xBE,0xD0,0x03,0x71,0x21,0x67,0x73,0xAD,0x04,0xB8,0x39,
+0xB7,0x3F,0xC2,0x89,0xCE,0x4F,0x83,0x19,0xA6,0xE3,0x4F,0xE9,0x72,0x8C,0x1B,0xC4,
+0xA3,0x92,0x01,0xB9,0xEA,0xF2,0xCD,0x1D,0x58,0xF5,0xED,0xD3,0x05,0x28,0xF4,0xC5,
+0xD7,0x5A,0x97,0xF8,0xB3,0x3C,0x9D,0xA1,0x8D,0x93,0xC9,0x8C,0x0D,0x88,0x95,0xA2,
+0x49,0xBD,0x96,0x8A,0x7F,0x57,0x1C,0xF9,0x4C,0x23,0x68,0x79,0x16,0xFC,0x4F,0xA4,
+0x38,0xFE,0xE0,0xF9,0x68,0x7D,0x7D,0x17,0x53,0xAE,0xA6,0x03,0xB6,0x70,0x62,0x3F,
+0x68,0xC0,0x39,0xBD,0x63,0x37,0xD6,0xFA,0xF1,0x27,0x26,0x5D,0xFB,0x8A,0xE2,0xFF,
+0xC7,0xB9,0xE9,0xEC,0xAE,0x2B,0xF3,0x4D,0x9D,0x12,0xF6,0x5A,0x47,0x23,0x78,0xA9,
+0x8B,0x95,0x41,0x10,0x21,0xF5,0x9C,0x70,0x36,0x64,0x31,0x11,0x31,0x60,0x09,0xDA,
+0x0D,0x2E,0x8C,0xFE,0x57,0xCC,0x29,0x25,0x07,0x50,0x24,0x00,0xD5,0x51,0x5B,0x94,
+0x60,0x7F,0x8B,0x35,0xB0,0x68,0x1F,0x5F,0xB1,0x0F,0x21,0xF4,0xE8,0x5E,0x59,0x9E,
+0x2B,0xD7,0xFE,0xF1,0x78,0x3B,0xCC,0xCC,0x84,0x6C,0x8E,0x99,0x94,0xB1,0xED,0x4F,
+0x4B,0xB2,0xAB,0x80,0xD5,0x43,0x99,0x2F,0xBF,0x9D,0x37,0x2A,0x70,0x80,0xBF,0x01,
+0x56,0x65,0x87,0x2E,0x14,0x79,0xC7,0x40,0x9C,0x8C,0x11,0x28,0xE2,0xF2,0x9C,0x3C,
+0x0E,0xE4,0xEC,0xE2,0xE4,0xF7,0x90,0xD4,0xFF,0xB5,0x30,0x83,0xDA,0xA0,0x57,0x38,
+0x92,0x0C,0xD0,0x9A,0xA3,0x7A,0x2C,0x7A,0x38,0xF6,0x27,0xCF,0x73,0x6B,0x85,0xB6,
+0xAB,0x2D,0xB3,0x31,0xBA,0x55,0x10,0x5D,0x08,0x5C,0xD5,0xAC,0x12,0x46,0x18,0xD8,
+0xD3,0x14,0x2A,0xDC,0x62,0x40,0x72,0x15,0x6A,0xFB,0x13,0x75,0x48,0xD2,0x74,0x05,
+0xEA,0x35,0x49,0x77,0x54,0x98,0xAB,0xDB,0x1B,0xE7,0x01,0xCD,0x35,0xDA,0x5E,0xA6,
+0x8A,0x50,0x1C,0x06,0x9B,0xA7,0xA8,0x7D,0xCA,0xD6,0x9F,0xEE,0xA8,0x59,0x71,0x37,
+0xA6,0x19,0xE1,0x8B,0xAB,0x64,0x05,0x69,0x44,0x42,0xC8,0x1E,0x9F,0xFA,0xB6,0x9F,
+0xD5,0x55,0xAA,0xF2,0xE1,0xB8,0x66,0xF0,0x23,0x2C,0x53,0xC9,0x90,0x0B,0xBA,0x33,
+0xD2,0xD1,0x77,0xCA,0x3E,0xC1,0xD4,0x8D,0x14,0xEB,0xF0,0x61,0xFA,0x6D,0x7C,0x8D,
+0xEE,0x7B,0xF4,0x53,0xE0,0xCF,0xC2,0x1F,0x29,0xE9,0xFF,0x6B,0x52,0x41,0x30,0x71,
+0xC0,0x3D,0x34,0xD4,0xC8,0x54,0xF7,0xC3,0xE7,0x55,0xAF,0x32,0xC3,0xD8,0x29,0xFB,
+0xC4,0x73,0x89,0xF0,0x69,0x0A,0xD9,0xF8,0x7C,0x89,0x9A,0x1A,0xD3,0xE7,0xA8,0x2D,
+0x3B,0x34,0x80,0xE5,0xD6,0x17,0x1B,0xD1,0x19,0x43,0x0D,0x08,0xB5,0x9B,0x58,0x88,
+0x96,0x42,0x6D,0xBE,0xD7,0x60,0xBF,0x3E,0x95,0x73,0x56,0x3D,0x56,0xFB,0x67,0x0D,
+0x81,0x25,0xCE,0x92,0x9D,0xBC,0xDC,0xA7,0xF9,0x46,0x86,0x3A,0x62,0xB3,0x9A,0x12,
+0xFD,0x52,0xEA,0x5B,0x6E,0x66,0x09,0xCD,0x76,0x4C,0x36,0xB8,0xC6,0x85,0xE0,0xF5,
+0x7F,0xA7,0x9A,0x91,0x5C,0x86,0x82,0xC8,0x91,0x24,0xEC,0x41,0x78,0x20,0xDE,0x66,
+0x5A,0x94,0x88,0x82,0x0F,0x75,0xDD,0x76,0xE5,0xF1,0xA3,0xF7,0xDF,0xFD,0x9E,0x36,
+0x66,0x3E,0x0B,0x1B,0x9C,0xCB,0x78,0x48,0x0F,0x31,0x84,0x67,0x7F,0x71,0xB3,0xAD,
+0xA2,0x57,0x5C,0xAF,0x97,0x81,0xD3,0xA5,0x15,0x75,0x17,0x13,0x50,0x4D,0x94,0xB4,
+0x6E,0x81,0xB9,0x93,0x42,0xC5,0x6E,0xDA,0xAE,0x82,0xEF,0x8E,0xBA,0x6A,0x54,0x24,
+0x4A,0x77,0xF6,0x96,0x04,0x3F,0x76,0x9B,0xC4,0x44,0x89,0x30,0x20,0xB8,0x16,0x7E,
+0x65,0xF4,0x6B,0x07,0xED,0x9E,0x1D,0x28,0x7E,0x2D,0x96,0xDF,0xED,0x03,0x90,0x90,
+0x91,0xC6,0xB0,0x86,0xC3,0x1E,0x5C,0x2E,0x42,0xB1,0x7E,0xA7,0xFC,0xDB,0x8F,0x34,
+0x6D,0x4B,0xD9,0x8F,0xD2,0x2F,0x49,0x1A,0x18,0xDD,0xEA,0x7A,0xEF,0x0F,0x34,0x55,
+0x87,0x64,0x4E,0xBC,0xE8,0xD1,0xEB,0x0C,0xF8,0xD8,0x61,0x48,0x04,0xCF,0x6A,0xB7,
+0x39,0x3B,0xBD,0xEF,0xFA,0xB4,0x7C,0xC6,0x30,0x97,0x87,0xA8,0x1A,0xE6,0x79,0xBF,
+0xE6,0xC4,0x46,0xDB,0x0B,0x4D,0x8F,0xBD,0x4B,0x4E,0x39,0xB2,0x1D,0xB7,0x14,0x74,
+0x04,0x54,0x63,0x60,0x81,0xDC,0x16,0xA4,0x92,0x1E,0x07,0xF6,0x25,0xE5,0xDF,0x70,
+0xE4,0xCB,0x7B,0xD1,0xF3,0xDD,0xF1,0x3A,0x24,0x41,0x02,0x02,0x65,0xE2,0xF7,0xD9,
+0xBB,0xCE,0xCD,0x25,0x59,0xC9,0x74,0xEC,0x22,0xB2,0xB4,0xBB,0xFD,0x3C,0x11,0x46,
+0xAF,0x63,0x0E,0x15,0x72,0x06,0xC3,0xCE,0x10,0xBC,0x4A,0x1D,0x61,0x58,0xA0,0xA5,
+0xD5,0x80,0xE3,0x01,0xAD,0x63,0x9B,0x43,0x0E,0xEC,0xF8,0x98,0x3D,0x12,0xC3,0x0F,
+0x8E,0xB0,0xD6,0x8D,0x4E,0xE6,0xA4,0x23,0x55,0x9A,0x55,0x75,0x3C,0xFD,0x67,0x78,
+0x5E,0x85,0xD1,0xE1,0x7A,0xF9,0x59,0x6B,0x79,0xFD,0x42,0xD6,0x76,0x64,0x04,0xA4,
+0xEE,0x8F,0x53,0x6E,0xDE,0x1E,0x23,0x5D,0xB0,0x8A,0x3E,0xF2,0x85,0x0E,0xD1,0x7E,
+0x28,0x28,0x8A,0x0C,0xE2,0x66,0xBF,0xB5,0x21,0x09,0x11,0x6F,0xD5,0x4E,0x0C,0xD9,
+0x27,0x2A,0x80,0x31,0x4A,0x9A,0xF3,0x99,0xB8,0xA3,0x2D,0xEC,0x0B,0xDC,0x1A,0xD7,
+0x77,0x96,0xD9,0xFF,0xDB,0x10,0xEA,0x00,0x3F,0xE5,0x03,0x2C,0x23,0x00,0x2F,0x4C,
+0x42,0x4A,0xF1,0x64,0xCB,0xC6,0x6B,0x3F,0x1B,0xAB,0x07,0x91,0x82,0x3B,0x01,0x12,
+0xD9,0x24,0x26,0x03,0x2D,0x4D,0x9D,0x02,0x9C,0xED,0x29,0x51,0xBF,0x18,0x73,0x80,
+0x47,0x15,0x05,0xD2,0xB0,0xDC,0xB2,0x81,0xED,0x88,0x49,0x04,0x70,0xBE,0x70,0xBF,
+0x10,0x81,0xF5,0x5C,0x87,0x74,0x75,0x22,0x60,0xC1,0x65,0xF9,0x40,0xAA,0xDD,0x7C,
+0x8B,0xEF,0x22,0x3B,0x88,0xD8,0x79,0xD3,0x19,0x8D,0x16,0xB2,0x0A,0x33,0xBE,0xA0,
+0xE8,0x76,0x68,0xE7,0xC2,0xD3,0x94,0x78,0x09,0x3C,0xCD,0xF4,0x0F,0x17,0x48,0xEF,
+0xFF,0x35,0x24,0x20,0x6B,0x5D,0x46,0xB3,0x71,0xD4,0x51,0xC8,0x48,0xB9,0xF4,0x62,
+0x0D,0x9F,0x47,0x10,0x0A,0x33,0xDB,0x9E,0xDA,0xF5,0x68,0xAB,0x51,0x9E,0xC8,0x4D,
+0xCB,0x38,0x9E,0x72,0x50,0xEE,0xB7,0x0A,0x37,0xCC,0x10,0x32,0x89,0xD6,0xAA,0x58,
+0xDF,0xDD,0x1D,0x8A,0x3D,0x9B,0x1C,0x3D,0x8B,0x8C,0xC7,0x7B,0x6A,0x67,0xCE,0xC4,
+0xDA,0x82,0xE9,0x3C,0x7D,0x32,0x34,0x3A,0x3A,0x13,0x27,0x63,0x18,0xF9,0x29,0xC5,
+0x6C,0x71,0x50,0x3A,0xE5,0xAD,0xD2,0xE4,0xCE,0x16,0x78,0xD5,0xB2,0x2F,0xAC,0xD1,
+0x92,0x7F,0xF6,0x08,0x79,0x4E,0x63,0x80,0xFE,0xBB,0x6C,0x16,0x99,0x0D,0x1B,0x1E,
+0x32,0x1E,0x91,0x00,0xF7,0xBE,0xF7,0xD7,0x64,0x93,0xAE,0xC1,0x39,0xD9,0x91,0x37,
+0xB9,0x1B,0xA3,0xE0,0x1C,0x5C,0xA9,0x17,0x57,0xBC,0x44,0x56,0x03,0xCF,0x33,0xC9,
+0x5F,0x54,0x43,0x28,0x02,0x54,0xBA,0x3E,0x04,0xE3,0xFA,0xA5,0x11,0x05,0xA4,0xAC,
+0xE1,0x8D,0x59,0x53,0x05,0x9F,0xD7,0x6F,0x30,0x1C,0x25,0x5E,0xE0,0x7E,0x57,0x55,
+0x37,0x41,0x65,0xB6,0xA2,0xCF,0x97,0xB2,0x78,0x59,0xAD,0xA1,0xA9,0x19,0xB6,0xDD,
+0x51,0x87,0xDB,0xDC,0x38,0x95,0xD5,0x60,0x7D,0xAF,0x89,0xEE,0xEF,0x58,0xAE,0x27,
+0x4E,0xEE,0x34,0x66,0xF5,0x7B,0x53,0xDB,0xEC,0x2C,0xA6,0x73,0x06,0xEB,0xC5,0x86,
+0xA6,0x72,0x4C,0x5A,0xE4,0xDF,0x4C,0x03,0x6D,0x1E,0x52,0xA8,0x28,0xED,0x84,0x06,
+0x34,0xE7,0xAA,0x89,0x60,0x8D,0x1D,0xF8,0x7A,0x7F,0xBC,0x82,0xB7,0x0B,0x5A,0x9E,
+0x7B,0x32,0x1C,0xFD,0xC7,0xDD,0x5D,0x25,0x69,0x4C,0x99,0x90,0xE4,0xB5,0x05,0x6D,
+0x5C,0xF2,0x8C,0x17,0x67,0x46,0x70,0xA9,0xF0,0xE6,0xA5,0x13,0x77,0x8B,0xA0,0xD3,
+0xCF,0xB6,0xF8,0x0D,0x48,0x5F,0x57,0x95,0x44,0x8F,0x61,0x44,0x7C,0x66,0x0B,0x99,
+0x06,0x13,0x2B,0x52,0x11,0x35,0x01,0xEA,0xE2,0x71,0x6F,0x76,0xBD,0x09,0x55,0xA3,
+0x46,0xC4,0x97,0x1B,0xCC,0x0D,0x06,0x6E,0x81,0x83,0xC5,0x46,0x2A,0xFC,0xA2,0x25,
+0x12,0xF6,0xA8,0xAA,0x18,0x20,0xFE,0xAD,0xE5,0xA1,0x5A,0x1A,0xC9,0x4D,0xC6,0xB9,
+0x3B,0xE5,0xA0,0xB4,0xCE,0xC8,0xA2,0x62,0xB9,0x07,0xC2,0x9B,0x86,0xF0,0x53,0x2A,
+0xD8,0xF5,0xB4,0xCA,0xAF,0xA6,0x3F,0x4F,0xD0,0xFA,0x6A,0x96,0x36,0xFF,0x68,0x45,
+0x9D,0x7D,0xFC,0x35,0x43,0x8F,0x0C,0xDE,0x0C,0xCA,0xE9,0xBB,0x73,0x40,0xF2,0xEB,
+0x19,0x7A,0xC4,0xE8,0xF3,0xC2,0xA0,0x6D,0x00,0xB1,0x31,0x9D,0xC7,0x84,0x9B,0xBC,
+0xF3,0x91,0xE1,0x22,0x83,0x08,0x22,0x98,0x5E,0x31,0xB8,0x3F,0xBA,0x3C,0x85,0xCF,
+0x66,0x2C,0xAE,0xB1,0x36,0x4B,0x47,0x76,0xE7,0x87,0x4B,0x39,0x3B,0xC8,0xB7,0x14,
+0xD2,0xA8,0x4A,0x41,0xC0,0x16,0x30,0x74,0xB5,0x7C,0x1A,0xBD,0xC0,0xB1,0x4B,0xD0,
+0xF7,0x1F,0x87,0x5D,0x6C,0x96,0x2B,0xE2,0x29,0x20,0x02,0x71,0x17,0xDF,0xD0,0xB7,
+0x7D,0xCB,0x27,0x74,0xFC,0x6E,0xAC,0x9C,0xA1,0x9F,0x0A,0xC3,0xCC,0x69,0x30,0xF6,
+0xE0,0x5C,0xCB,0x9A,0xBA,0x7E,0x77,0x2D,0x90,0x96,0xF1,0x77,0x2C,0x26,0xD6,0x3E,
+0x90,0x08,0xAB,0xFE,0x34,0x8E,0xE3,0x7A,0xAF,0xC2,0xC3,0xC6,0xCD,0x86,0x94,0x81,
+0xB4,0x6E,0xF4,0x2B,0x07,0x5A,0x73,0x63,0xAC,0x40,0x3D,0x92,0x6C,0xBD,0xBA,0xDF,
+0xC0,0xB4,0xF2,0x30,0xFB,0xA5,0xC1,0xCD,0xA2,0x1D,0xF4,0x97,0xF3,0x5B,0x64,0x47,
+0xF9,0xCC,0x1F,0xA9,0xF0,0x75,0x9A,0x86,0xDE,0xA7,0xA3,0x93,0x5B,0x9C,0xC7,0x70,
+0x56,0xAF,0x72,0x9C,0x8C,0xA4,0x2E,0x69,0x1A,0x0F,0xE8,0xE6,0x93,0x0F,0x14,0x23,
+0xEF,0x5E,0xC1,0xA7,0x68,0xEA,0x7C,0x58,0x6B,0x6A,0x88,0xB3,0x3E,0xEC,0x41,0x5B,
+0xC9,0x4F,0xC3,0x84,0xFA,0xD7,0x5F,0x2A,0xC5,0xBD,0x95,0x9F,0xFF,0x83,0x1F,0x61,
+0xFE,0xE4,0xB6,0xE9,0xE3,0x14,0x21,0x52,0x56,0x18,0xAB,0x21,0x88,0x39,0x0E,0x2F,
+0x2E,0xD1,0xB1,0x85,0x5F,0x42,0xBB,0xFB,0x07,0x61,0x04,0xF1,0x45,0x8E,0x2B,0x33,
+0xE9,0xA7,0xFA,0x2E,0x29,0x31,0xCA,0xB8,0xFB,0x4D,0x48,0x59,0xCA,0xB3,0x44,0xED,
+0xFC,0x93,0xEB,0x1F,0xCD,0x7F,0x98,0x89,0x15,0xF6,0xCE,0x94,0xBC,0xE6,0xF1,0xD4,
+0x35,0x36,0x38,0x40,0x1D,0x2E,0x37,0xF0,0x52,0x4A,0x60,0x19,0x01,0xDE,0x15,0xEA,
+0x11,0x50,0x67,0x95,0x15,0x49,0x56,0x50,0x13,0x82,0x14,0x8F,0x58,0x62,0x45,0x24,
+0xB0,0xE0,0x92,0x54,0x0E,0x4F,0x8C,0x24,0x61,0x65,0x8A,0x8E,0x94,0x3A,0xC4,0x4F,
+0x7E,0x6D,0xE8,0x4B,0xAE,0xD4,0xA1,0xA8,0x12,0x26,0xFB,0xF8,0x83,0xD4,0xA5,0x65,
+0x38,0x43,0x6F,0x8B,0xB8,0xBB,0xD3,0x21,0xA7,0xEB,0xD0,0xD8,0xFD,0x92,0x39,0x42,
+0x75,0xE1,0x84,0x09,0x26,0x9D,0xC6,0x49,0x41,0x79,0x45,0x0B,0x2D,0xC9,0x72,0x49,
+0xBF,0xE2,0x98,0x69,0xB5,0xD2,0x7B,0xDC,0xF7,0x36,0x90,0x7F,0xB3,0xC0,0x08,0xA6,
+0x97,0x20,0x02,0xBE,0x6A,0x2F,0xD8,0x54,0x62,0xE7,0x74,0xDA,0x25,0xDA,0x5B,0x57,
+0x98,0x12,0xA1,0x80,0x0B,0x2E,0x46,0x07,0x85,0x4D,0x4D,0xE6,0x2B,0xB2,0xB1,0x54,
+0x66,0x28,0x03,0x96,0xE1,0x01,0x75,0x90,0x45,0xA6,0xAF,0xB8,0xA0,0x80,0x51,0x51,
+0x04,0xF1,0xC5,0x31,0x6A,0x8E,0x21,0x0F,0xFD,0x54,0x8E,0x98,0x73,0x48,0x02,0xC2,
+0xFD,0x00,0x36,0x4A,0xB5,0x71,0x15,0xF4,0xAC,0x53,0x45,0xF5,0xCD,0x52,0x79,0x1B,
+0x94,0x09,0xBB,0xB6,0x68,0x81,0x2B,0x32,0xA8,0x2C,0x23,0x7B,0x48,0xF8,0x6D,0xCD,
+0x95,0x7B,0x5C,0x28,0x88,0x1E,0x9A,0x2A,0xAF,0x6C,0x8A,0x53,0x4D,0x0C,0xDB,0x92,
+0x4F,0x88,0x89,0x42,0x23,0x29,0xEF,0x47,0x12,0x28,0x5F,0x2C,0x00,0xE7,0x59,0x30,
+0x80,0xA3,0x3E,0x60,0x37,0x84,0xDF,0x84,0x76,0xB4,0xBC,0x9D,0xFE,0x41,0x6B,0x3E,
+0x3C,0xF5,0x97,0xFA,0xD6,0xDE,0x78,0xC1,0xB7,0x96,0xCC,0x12,0xE9,0x0D,0xAC,0x7D,
+0xCF,0xA6,0xC8,0x44,0xF3,0xED,0x6B,0xD3,0x6A,0x31,0x9C,0x52,0xA6,0xBB,0xD8,0xA8,
+0xC8,0x6D,0x99,0x29,0x2E,0x1D,0x55,0x15,0x07,0x19,0x4E,0x18,0x5D,0xE9,0x5C,0xF9,
+0x82,0x66,0x32,0xC4,0xEA,0x74,0xE1,0x42,0x3B,0x36,0x57,0x3F,0xCE,0x9D,0x46,0xBD,
+0x76,0xFE,0x3C,0x17,0xC6,0x3D,0x6C,0xBF,0xF2,0x69,0x84,0x9A,0xC3,0xCA,0x8D,0xC8,
+0x8C,0xB8,0x24,0x56,0xE2,0xCB,0x69,0xF0,0x20,0xF3,0xDE,0xD8,0xA5,0x74,0xE7,0x0E,
+0x57,0x39,0x16,0xA2,0x1D,0x8C,0x7C,0xF9,0x91,0xB5,0xCE,0x03,0x34,0x5D,0x0B,0x3D,
+0xD7,0x17,0x57,0xA4,0xE9,0xBE,0xFD,0x22,0x49,0xA4,0x6A,0x1C,0xDC,0x25,0x37,0xA1,
+0x86,0x1A,0x88,0x93,0x62,0x31,0xA9,0xBD,0x0B,0x1B,0x8B,0xBC,0xB5,0x91,0x60,0x65,
+0x88,0xC4,0x9E,0x01,0x5E,0x9B,0x30,0x3E,0x27,0xB3,0x77,0xF0,0xBA,0x9B,0x5D,0x67,
+0x43,0x93,0x93,0x74,0x48,0x39,0x0A,0xC0,0xAD,0x9A,0xD7,0x24,0xD0,0xE0,0x35,0x05,
+0x1D,0x32,0xBD,0x4F,0x4C,0x77,0x2E,0x7D,0x92,0x8A,0x01,0xA5,0xE5,0xC8,0xAE,0xD9,
+0x29,0x2D,0xF5,0xB2,0x1A,0x08,0x44,0x24,0xB1,0x1F,0xF7,0xEB,0x1C,0xC7,0xDC,0xFF,
+0x5E,0x2C,0x51,0x5D,0xB7,0x7E,0x1F,0xC9,0xD1,0xFC,0x72,0xD4,0x47,0xF2,0x50,0xCF,
+0x2F,0x94,0x43,0x41,0x71,0x18,0xA1,0xA3,0xCF,0x8F,0x0F,0x6C,0x7C,0x42,0x3F,0xC0,
+0xF5,0x67,0x96,0x2B,0x0D,0x6F,0x68,0x87,0xF9,0x2B,0xE8,0x16,0xCC,0xC0,0xB0,0xCA,
+0x33,0x59,0x66,0xF6,0x1E,0x46,0x60,0x99,0x21,0x3A,0x4C,0x09,0x6D,0x35,0x71,0x7A,
+0xBE,0x1E,0xDA,0x58,0x82,0xAE,0x18,0xA5,0xEA,0x93,0xC2,0xDB,0x7A,0x79,0xB6,0x39,
+0x09,0x98,0x38,0x99,0x5F,0x5E,0x26,0x63,0x98,0x01,0xFF,0xF8,0x59,0x8F,0x23,0x77,
+0x1C,0x40,0x5A,0xD1,0x27,0x67,0xCB,0xFA,0x0C,0x5B,0x22,0x94,0x9F,0x56,0x41,0xD0,
+0xEE,0x61,0xE2,0xF1,0x06,0x1A,0xFC,0x55,0x13,0xE1,0xCD,0xFD,0xD5,0x14,0x83,0x5A,
+0xD1,0xAE,0xE1,0x57,0x66,0x7F,0x8D,0x00,0x90,0x7C,0x5C,0xD2,0x4B,0x37,0x52,0x6B,
+0xF1,0x1B,0x2C,0x7C,0x59,0x1F,0x08,0xE3,0x41,0xD9,0xC9,0x36,0x19,0x33,0x6A,0xA0,
+0x2D,0x51,0x4F,0xE5,0x2A,0x53,0x71,0xA8,0xB0,0xD6,0x65,0x3A,0x82,0xE4,0x0D,0xCE,
+0x62,0x54,0xB9,0xC1,0x4B,0xF3,0x16,0xA0,0x69,0x0E,0x53,0xF4,0xBC,0xA0,0xD4,0x9E,
+0x7E,0x99,0x9C,0x76,0xE4,0x8A,0x47,0x70,0xC0,0xB2,0x05,0x6E,0x6C,0xA7,0xB8,0xAB,
+0x85,0xAD,0x63,0xA9,0x81,0x64,0x04,0xC5,0x1B,0x9C,0x6E,0xD7,0x6E,0xFA,0x4E,0xDC,
+0xBC,0xDB,0xD6,0xFC,0x07,0xDF,0xEA,0x08,0x2A,0x78,0x20,0x85,0x7B,0xEB,0x7F,0xE8,
+0x72,0x82,0x86,0x40,0xA7,0x9D,0x0B,0xB7,0xFB,0xDD,0xB5,0x61,0xC4,0x63,0xCD,0xE0,
+0x21,0x4A,0x55,0xD3,0xEC,0x35,0xCF,0xC2,0x14,0xA1,0x64,0xD5,0x6B,0x0E,0xF8,0x83,
+0x30,0xEE,0x8D,0xCC,0xDA,0x2F,0xD4,0xCE,0xB8,0xAB,0xC6,0x10,0x5B,0xD2,0xD5,0x00,
+0x0A,0x2F,0xD3,0xA3,0xC7,0xF8,0x7A,0xE2,0xCA,0x39,0xFB,0x33,0x7D,0xD0,0xF6,0x11,
+0x18,0x3C,0xE0,0x86,0x0A,0xEB,0x50,0x5A,0xDB,0x77,0x8C,0x89,0xE7,0x95,0x58,0xAE,
+0x13,0xEC,0xAB,0xDD,0x9F,0x79,0xB6,0x89,0xB3,0xE9,0xAA,0x9C,0xAA,0x7E,0xDA,0x0C,
+0x06,0x34,0xC9,0x95,0x3B,0x75,0x73,0x8B,0xC6,0x3B,0x3E,0x97,0x05,0x13,0xEF,0x6F,
+0xF7,0xA2,0x9A,0x8F,0xDF,0xA4,0xE6,0x2E,0x4E,0xE4,0xC3,0x34,0x2D,0x89,0x38,0xAD,
+0x75,0x49,0xD7,0x2D,0x5B,0x10,0x02,0xDE,0xC2,0x44,0x58,0x19,0x83,0x76,0xC4,0x1F,
+0xBB,0x10,0x87,0x91,0x2F,0xD8,0x43,0x48,0x62,0x4C,0x3F,0x78,0xA7,0x29,0x11,0x79,
+0x34,0x92,0x37,0x9B,0xB4,0xB4,0x03,0xA9,0x3A,0xFF,0xC5,0xEE,0xEC,0xF9,0x1A,0x22,
+0x1E,0x85,0x56,0x75,0xC5,0xF7,0x70,0xDF,0xB6,0x5F,0x5E,0xC3,0x22,0x83,0x05,0xAF,
+0xBA,0x62,0x60,0x0F,0xA6,0x58,0x1D,0xEA,0x4C,0x12,0x9E,0x43,0x0F,0xED,0x64,0x32,
+0x14,0x27,0xFA,0xB0,0x25,0x68,0xC1,0xC7,0xDD,0xFE,0xB7,0x70,0x4A,0xA5,0x9B,0xBA,
+0x9E,0xAB,0x17,0x73,0xF7,0xA3,0x4F,0x6E,0x0A,0xD2,0x19,0x6D,0x61,0xF0,0x73,0xDE,
+0xED,0xD6,0x09,0xCB,0x7E,0x23,0x11,0xCC,0xFF,0xA2,0xD3,0xEF,0x8B,0xD5,0xB9,0x35,
+0x74,0x3B,0x30,0xB3,0x8A,0x11,0x90,0x17,0xFC,0x9D,0x1C,0x49,0xD4,0x86,0x4A,0x8B,
+0xF2,0xAC,0xC7,0x46,0x20,0xE3,0xF3,0x27,0x78,0x40,0x24,0x4E,0x94,0x3A,0x03,0x5C,
+0x7B,0x97,0xC1,0xBF,0x8D,0x95,0xA8,0xCA,0xF0,0x9F,0xD9,0xED,0xA9,0xB1,0xE5,0xAA,
+0xE8,0xD8,0x54,0x02,0x15,0x33,0xF4,0x4B,0x3F,0x49,0x31,0xB1,0x80,0xB9,0xFB,0xB9,
+0xD0,0xDC,0x06,0xC9,0x8C,0x50,0xBE,0x97,0xE8,0x65,0x9F,0xAC,0x02,0xBA,0xAF,0x47,
+0x6F,0x3D,0x44,0x69,0xBE,0x04,0x81,0x26,0xBF,0xEB,0x6F,0x38,0x72,0xDA,0xCB,0x13,
+0x16,0xE2,0xF6,0x14,0xBB,0x8F,0xB3,0xC6,0x5F,0xAA,0xB4,0x8E,0x52,0xE3,0x61,0xFB,
+0x8E,0x7D,0x28,0xF2,0x72,0xD2,0xBD,0xC3,0xF1,0x56,0x4B,0x3C,0x26,0xE5,0x7A,0x21,
+0x81,0xD1,0xD9,0xFE,0x55,0xEE,0xA4,0xEC,0xE6,0x91,0x07,0x7F,0x40,0x5B,0x10,0xE7,
+0x45,0x2A,0x25,0x87,0x04,0x15,0xF6,0x68,0xE4,0x67,0x5A,0x08,0xF4,0xBF,0xE0,0x63,
+0xA7,0xDD,0xA2,0x26,0x45,0x0D,0xB0,0x92,0x0E,0xAD,0x7F,0xE3,0xEF,0x36,0x25,0x84,
+0xE6,0x06,0x42,0x90,0x4D,0xB2,0x38,0x20,0x70,0x3D,0x87,0x64,0x65,0x96,0x0C,0x50,
+0xEC,0x8F,0xD0,0x2D,0x36,0x37,0x4A,0x65,0xF1,0xDB,0x20,0x50,0x70,0x30,0x0D,0x6F,
+0x24,0xDC,0x43,0xFE,0x9E,0x7C,0x3F,0xA1,0x45,0x0A,0x5C,0xBF,0x13,0x05,0x60,0xC0,
+0x80,0xCD,0x5C,0x26,0x84,0x4A,0x33,0xBA,0x80,0xA8,0x56,0x13,0x90,0x28,0xBC,0xF0,
+0x41,0xF7,0x33,0x78,0x53,0x57,0x1F,0x14,0xA3,0x95,0xC4,0x61,0x81,0x0B,0xBE,0xD6,
+0x3A,0x9F,0x51,0x12,0x58,0xDB,0x5D,0x78,0x64,0x3D,0xF3,0xC2,0x0E,0x29,0xCE,0x17,
+0xF7,0x83,0xE6,0x37,0x21,0x74,0x8D,0x29,0xFE,0x6B,0x4F,0x6B,0x3B,0x45,0xC9,0xC7,
+0xC3,0x78,0x39,0xC8,0xCF,0x11,0x38,0x6A,0x47,0x00,0x61,0xB0,0x4C,0xB3,0x94,0xC5,
+0xB5,0x41,0x6C,0x7D,0x74,0x97,0xF5,0x84,0x15,0x4E,0x85,0x81,0x78,0x82,0x85,0xD0,
+0x27,0x88,0xBD,0x7C,0xBB,0xCB,0x23,0x6C,0x89,0x36,0xB9,0x69,0x8F,0x39,0x18,0x28,
+0x7E,0x46,0x01,0x2C,0x73,0xBF,0xB5,0x2D,0xE8,0x51,0xB1,0xC9,0xE9,0xEC,0x47,0x0C,
+0xFC,0xC9,0x0B,0x9C,0x1F,0x24,0x54,0x6D,0x7E,0xAB,0x02,0x91,0xB2,0xE7,0x97,0x47,
+0xEB,0xE3,0xE5,0xFD,0x5C,0x55,0x22,0x1E,0x53,0x30,0xA2,0x1D,0x3F,0xF8,0xED,0x89,
+0x52,0xE5,0x16,0x4B,0x40,0x9A,0xA7,0x3E,0x19,0xE2,0x8A,0x70,0x3E,0xA5,0xFB,0x4C,
+0x82,0xEE,0x4D,0x00,0xD2,0x0F,0x74,0xD8,0x0C,0xC4,0x14,0x18,0x9C,0x27,0x10,0x01,
+0x5A,0xFB,0x05,0x62,0xDE,0xAB,0x76,0x1D,0x07,0x50,0xC6,0x6D,0xFF,0x12,0x7D,0xAE,
+0xCC,0x0A,0x1F,0x31,0x0F,0x4F,0xD3,0x88,0xA4,0xAD,0x19,0xE5,0x3D,0xC5,0xE7,0x86,
+0x55,0x89,0x23,0x9B,0xBA,0x1A,0xEA,0xFE,0xD9,0x72,0x60,0x57,0x1B,0xB7,0xE8,0x7F,
+0xC2,0x0F,0xD6,0x6C,0x48,0xB0,0xDA,0x9D,0xDE,0x4A,0xBD,0xD3,0xCC,0xFE,0x54,0x3F,
+0xF9,0x86,0x2F,0x6A,0x3E,0x1D,0x37,0xC6,0x7D,0xB7,0x62,0x5B,0x3A,0x18,0xDF,0x02,
+0xB6,0x15,0x92,0xFF,0x98,0x85,0xB6,0x9A,0x21,0x5F,0xB4,0x94,0x29,0x06,0xD7,0x2B,
+0x0C,0x47,0x9F,0xCB,0xF3,0x36,0x17,0x73,0xD3,0xF0,0xEF,0xE7,0xA2,0x99,0x83,0xA4,
+0x49,0xE9,0x20,0x51,0xC3,0xB5,0x3A,0xAF,0xE0,0xD9,0x03,0x76,0x2A,0x66,0xCB,0xE1,
+0xC5,0x63,0xE3,0xBC,0x08,0x67,0x93,0x21,0xFD,0x77,0x2F,0xA1,0x4E,0x8E,0x9E,0xCA,
+0xB8,0x10,0x5B,0xA2,0x88,0xEE,0x31,0x7F,0x7F,0xBD,0x5F,0x54,0xA5,0x44,0xBB,0x20,
+0xBF,0x7C,0x6E,0x72,0x45,0xC5,0x11,0xCA,0xEF,0x69,0x6C,0x4D,0x77,0xED,0x35,0xEB,
+0x44,0xB8,0x17,0x8E,0xBE,0x94,0x95,0x98,0x98,0x34,0x9A,0x4F,0xF3,0x1D,0xD1,0x5F,
+0xB3,0x5A,0xB6,0x09,0xA6,0xD5,0x6F,0xDE,0x73,0x11,0x50,0xA5,0x14,0xD8,0x58,0x44,
+0x68,0x1B,0x00,0xE9,0x19,0xDD,0xDD,0x56,0xF4,0xE9,0xC0,0xDB,0xC0,0xF1,0xF8,0xCE,
+0xB2,0x2D,0x59,0xAD,0xFB,0x1C,0x6A,0xD0,0x3C,0xF1,0x98,0x43,0xD7,0x52,0xD4,0xA9,
+0x53,0x92,0xF9,0xEF,0xAF,0x2E,0xDB,0xEF,0xA8,0x01,0x16,0x14,0x83,0x36,0xB4,0xD9,
+0x8C,0xEB,0x84,0x5D,0x24,0x2B,0x3B,0xDD,0x1E,0xDA,0x57,0xF4,0x6B,0x9C,0x8D,0xF9,
+0x13,0x73,0x62,0x83,0x79,0xE2,0x3E,0xD3,0xAC,0x25,0xAB,0x5A,0xB1,0x87,0x8B,0x8D,
+0x67,0x69,0x26,0x10,0x2A,0xF8,0xCF,0x45,0xEB,0x4D,0xD1,0x03,0x5D,0x90,0x96,0xE3,
+0x15,0x68,0xB8,0xF7,0xB5,0x18,0xD7,0xF4,0xC3,0xE4,0x91,0x04,0x02,0x26,0x62,0xE6,
+0xE6,0xB2,0xD2,0x22,0x82,0xB3,0xBA,0x81,0xBC,0x31,0xD5,0xB9,0xA0,0xA4,0x89,0xAB,
+0xCD,0x7D,0xF0,0x95,0x2F,0xA7,0x79,0xB1,0x0D,0xD2,0x49,0xDD,0xAE,0x96,0x2F,0x55,
+0x7C,0x65,0x10,0x0A,0x85,0x9B,0xFA,0x28,0x76,0x23,0xB0,0x2E,0xC4,0x4C,0xDC,0x80,
+0x46,0x9B,0x06,0xA8,0xAA,0x71,0x6D,0x1B,0x28,0xC1,0x5B,0xEE,0xC1,0xAC,0xEE,0x0B,
+0x9F,0xF9,0xA1,0x6E,0x25,0xFA,0xF2,0x4F,0x08,0xE0,0xA9,0x56,0x52,0xFF,0x26,0xD8,
+0x6E,0x00,0xDA,0x9D,0xDA,0x25,0x09,0x7B,0x65,0x2B,0xAE,0x07,0x8B,0x84,0x3C,0x66,
+0x90,0x8B,0x87,0x97,0x96,0x56,0x42,0x02,0x0A,0xEA,0x94,0x59,0x58,0x70,0xA4,0x68,
+0xD6,0x71,0xC6,0x8F,0x60,0x72,0x0D,0x07,0x48,0xB0,0x0E,0x8B,0x9E,0x1A,0x1A,0x0E,
+0x57,0xAA,0x32,0xBD,0x27,0x8D,0x04,0x12,0x93,0xA0,0x48,0x3A,0xAD,0xF6,0x33,0x9F,
+0x79,0x2A,0x34,0xFC,0x15,0x79,0xDF,0x93,0x8C,0x04,0x59,0xE2,0x31,0xCA,0x4B,0x77,
+0x9B,0xC1,0x6A,0x3C,0x75,0x46,0x3C,0x16,0x82,0xA2,0x6B,0x1C,0xED,0x51,0x63,0x42,
+0xC8,0x32,0xD4,0x63,0x46,0x63,0x2E,0x05,0xC2,0xF2,0xCC,0xC1,0x38,0x25,0xD5,0x0D,
+0x03,0x35,0xB9,0x32,0xB6,0xBE,0xE8,0x3B,0x88,0x20,0xE4,0xAC,0x69,0xA1,0x87,0xF6,
+0x08,0x7F,0x54,0x99,0xDF,0x7A,0xBF,0x8F,0xAF,0x39,0xCB,0x90,0x2D,0xBB,0xF3,0x65,
+0x43,0xD4,0x22,0x5E,0xA3,0x8A,0xD9,0x2A,0x7B,0x99,0xE2,0x1A,0x6F,0x21,0xA9,0xB7,
+0x42,0xA3,0xCD,0xFA,0xD5,0x27,0x34,0x71,0x44,0x1C,0x01,0x7A,0x5F,0xAD,0x9C,0xEC,
+0xFA,0xD2,0xD1,0xE8,0xB3,0xE1,0x5E,0xCF,0xFC,0x61,0x72,0x64,0x50,0xC2,0x2C,0xD7,
+0x09,0x08,0xBB,0x3D,0xC4,0x9D,0x7A,0x06,0x86,0x86,0xD6,0x52,0x5A,0x4D,0xAE,0x67,
+0x74,0x7B,0x03,0x23,0x9A,0xF2,0x40,0xC7,0x2C,0xE5,0xE6,0xA0,0xF5,0x9D,0xFF,0x1E,
+0xAA,0x75,0x91,0x35,0x30,0xCE,0xC3,0x5E,0x60,0x19,0x4E,0x8C,0xF7,0xA0,0xF5,0x11,
+0xFD,0xBE,0xE4,0x38,0x92,0xD8,0x3D,0x64,0xB4,0xB9,0x67,0x06,0x95,0xC8,0x8E,0x7B,
+0x5C,0xE0,0xDF,0x16,0xDC,0xDC,0x80,0x40,0x35,0x6F,0x77,0x39,0x49,0x53,0xA6,0x4E,
+0x0F,0x13,0x61,0x49,0xB1,0x96,0xA8,0x92,0x6D,0xA3,0x1C,0xB8,0xCA,0x7E,0x7A,0x7E,
+0xC0,0x2C,0xC7,0x4A,0xD4,0xF6,0xFD,0xE3,0x42,0x32,0x81,0x3B,0xFB,0xAF,0x59,0xE0,
+0x75,0x0C,0xEC,0x87,0xB4,0xC9,0x1E,0x66,0xA6,0xA7,0x24,0xEA,0x30,0x97,0x5D,0xB2,
+0x3F,0xD0,0x75,0xE4,0xF8,0xBA,0x55,0x1F,0xAA,0x0B,0x2B,0x1B,0x5E,0xF0,0x8A,0x29,
+0x37,0xCE,0x66,0xCD,0xED,0x8E,0x64,0x0E,0x99,0x22,0xC7,0x8A,0xEA,0x8C,0x5B,0xC6,
+0x70,0x43,0xC8,0x71,0x05,0x12,0x58,0x76,0x4B,0xAC,0x6E,0x41,0xA9,0x4B,0x17,0xD1,
+0xF6,0xF4,0x09,0x93,0xF5,0xCF,0x9E,0x48,0x68,0x91,0xFC,0x33,0xE7,0xDE,0xE1,0xF2,
+0x2E,0xE1,0x41,0xF1,0xCC,0xB7,0x07,0xA5,0x04,0x4C,0xA6,0xA7,0x40,0xBC,0x38,0x34,
+0x45,0xE8,0xE6,0xDD,0x9E,0xF8,0xFA,0xA9,0x2F,0x32,0x94,0xF9,0x70,0xF2,0x16,0x2C,
+0x05,0x3F,0x5A,0x94,0x43,0xC0,0xFD,0x2D,0x4C,0xC0,0x3E,0xC9,0xE7,0x07,0xE1,0xAA,
+0x51,0x0D,0x65,0x25,0x97,0xED,0x05,0xEE,0x28,0xE2,0xA1,0x95,0x04,0xB6,0x85,0x36,
+0x78,0x1E,0x6D,0x3B,0x41,0x05,0x59,0x21,0x74,0x44,0x39,0x14,0x4B,0x0B,0x10,0xA5,
+0x9B,0x0E,0x79,0x45,0x20,0x6B,0xC4,0x0C,0x1D,0xB9,0x91,0x19,0xFB,0x04,0x2B,0xCA,
+0xDE,0x86,0x31,0xBA,0xCC,0x42,0xF7,0x9D,0xC1,0x89,0x12,0x34,0xBE,0xBB,0xB1,0x64,
+0x5A,0x81,0x09,0x67,0x7C,0x0F,0x5B,0x2E,0xCD,0xF2,0xCA,0x12,0x0A,0x7F,0xD8,0x33,
+0xB0,0x6A,0x2C,0xAD,0x0C,0xC5,0xD9,0xDB,0x93,0x72,0x43,0xB0,0x77,0xC7,0xC6,0x40,
+0x25,0xD7,0x63,0x3E,0xB9,0x86,0xBC,0x35,0x2A,0xC4,0xB0,0xB6,0xF6,0x33,0xF4,0x9B,
+0x91,0x53,0x87,0xCE,0x4F,0xDB,0xCB,0x37,0x78,0x3F,0xE1,0x32,0x0D,0x4A,0x08,0x5F,
+0xB4,0xE4,0x4A,0xD2,0xE3,0x5B,0xD0,0xA1,0xE4,0x63,0xF9,0xFE,0xDA,0x24,0x93,0x38,
+0x3E,0x30,0xEA,0xFB,0x73,0xA3,0x57,0xDF,0x6C,0xDC,0xF1,0x4C,0x01,0x92,0x73,0x79,
+0xA3,0xA7,0x06,0x15,0x35,0xB3,0x8C,0x6E,0x5D,0xD5,0x0A,0xF8,0xE1,0xDD,0x95,0xB1,
+0xD3,0xF3,0x66,0x71,0xBB,0x43,0x18,0x39,0x62,0x81,0x38,0x49,0x00,0x7D,0xD7,0x0E,
+0xF7,0x95,0x39,0xA4,0x88,0x97,0x88,0x20,0x61,0x03,0xC6,0x1D,0xA1,0x46,0xF9,0x50,
+0x83,0x4F,0x3F,0xBF,0x74,0x68,0x3A,0x8E,0x6F,0x5E,0x0F,0x18,0x3E,0xA0,0x27,0xC8,
+0xBA,0x37,0xD2,0x26,0x7F,0xB8,0x61,0xC5,0x13,0xE4,0x58,0x1C,0x96,0x67,0x84,0xFF,
+0x15,0x54,0xBF,0x13,0x03,0x69,0xD5,0x2A,0xD7,0x4C,0x13,0x69,0x5E,0xF4,0x57,0xAC,
+0xAC,0xA5,0x0C,0x28,0xE7,0x27,0x87,0x1B,0xA6,0x29,0x73,0x3C,0xF3,0x17,0x02,0xD4,
+0x8A,0xB4,0x0E,0x0B,0x75,0x1A,0xA4,0x69,0x08,0xFE,0x6E,0x10,0x32,0x78,0x5C,0xEE,
+0xBD,0x1F,0x7B,0x66,0x6C,0xD9,0xDA,0x11,0x9B,0x5B,0x50,0xAE,0x45,0xC2,0x4D,0xA0,
+0x6D,0x2A,0x7C,0x0A,0xD0,0x8F,0x40,0xB8,0xCA,0x22,0xFF,0x7E,0x88,0x75,0x68,0xBC,
+0xAA,0x5C,0x37,0xA1,0xA6,0xFC,0x31,0xFB,0x36,0x0E,0xB3,0xD6,0x07,0x48,0x07,0x62,
+0xBF,0x68,0x26,0x90,0x42,0xB2,0x63,0xCA,0xD8,0xB5,0x35,0x1B,0x71,0x1D,0xB2,0x5B,
+0x76,0xCD,0xF5,0xCF,0x92,0xE3,0xCC,0xB3,0x9F,0x09,0x9B,0x96,0xCC,0x25,0x56,0x65,
+0x52,0xAB,0xAA,0x1A,0x9A,0x84,0xAD,0x13,0xDE,0xC1,0xEF,0x00,0x95,0x99,0x06,0xAB,
+0xF3,0x1B,0x5F,0xDB,0x81,0x82,0x77,0x67,0xAC,0x26,0x71,0x01,0x59,0xC1,0x87,0xC0,
+0x3D,0x96,0x25,0xC4,0x21,0x19,0x5A,0xEB,0xDF,0x65,0x00,0x77,0x4E,0x2F,0xE6,0xEA,
+0x7B,0xB8,0xA2,0x04,0x37,0x76,0x28,0x62,0x6A,0xA8,0x2B,0x57,0x30,0x69,0x7A,0xCD,
+0x36,0x1A,0x49,0x86,0xA9,0x50,0x3D,0x0A,0x8C,0x3A,0xBE,0x84,0xE0,0x32,0x31,0xC6,
+0xFC,0x19,0x55,0xE6,0x3A,0x1F,0x80,0x9F,0x3A,0x75,0x6B,0xF0,0x7E,0x3B,0x4B,0x29,
+0xD4,0xDB,0xCF,0x31,0xE5,0xE2,0x23,0x17,0xAF,0xA4,0x8F,0x55,0xE8,0x21,0x18,0xD8,
+0x96,0x7B,0x2E,0x8E,0x22,0xAE,0x60,0x00,0xC3,0xAF,0x03,0x17,0xF0,0xE9,0x80,0x80,
+0xCD,0x4B,0x1B,0x02,0xC1,0x2B,0x5F,0x60,0x98,0xD9,0xAE,0xFA,0xF1,0x06,0x24,0xF7,
+0x1D,0x7E,0x1C,0x6E,0xF5,0x34,0xA2,0x28,0xB4,0xBE,0xB9,0x59,0xBB,0x9F,0x47,0x2B,
+0xAD,0x74,0x9E,0xE1,0x51,0xD3,0xD8,0x1E,0x7D,0xC9,0xC5,0x7D,0x48,0xF5,0x92,0xF1,
+0x6B,0xD3,0x47,0x83,0x6D,0xAB,0x44,0xF6,0xEC,0x4A,0xEA,0xE0,0x18,0xB5,0x4F,0x56,
+0x64,0xD1,0x4D,0xBE,0xC5,0x57,0x08,0xDA,0x75,0xE0,0xD6,0x63,0xC6,0x27,0x59,0x58,
+0x34,0x6D,0x14,0x70,0x54,0xDD,0x11,0x43,0xF2,0xA6,0xF8,0xA3,0xEE,0xFB,0x6C,0xC3,
+0x01,0xB1,0x3C,0xEB,0x44,0x0B,0x90,0x7C,0xD6,0xE8,0xFC,0x1E,0x4F,0xC0,0x42,0x9D,
+0x9A,0xDF,0xEB,0x8C,0xA2,0x80,0x66,0x41,0x51,0xAE,0xD2,0xDE,0x72,0xE3,0x30,0x0F,
+0x04,0xEE,0xC8,0x5D,0x3F,0x11,0x49,0xC2,0x20,0xCB,0xB2,0x8B,0xBD,0x45,0x33,0x30,
+0x53,0x7A,0x38,0xD3,0x08,0xB9,0x8E,0x61,0xAD,0x82,0x9E,0x76,0x8D,0x51,0x9E,0xF3,
+0xC8,0x14,0xEF,0xB4,0x07,0x15,0x82,0x90,0xD4,0xCE,0xED,0x3D,0xC7,0xC8,0xFD,0x2F,
+0xAB,0x8D,0xA5,0x68,0x4D,0x1E,0x6F,0x3B,0xC4,0x7F,0x36,0x7B,0xC2,0xEC,0x0B,0x60,
+0xBC,0xCE,0xE9,0xAF,0xE4,0x90,0xBD,0xF0,0xBC,0x97,0xAA,0x47,0x85,0x42,0xB7,0xED,
+0x4E,0x64,0x8A,0x9F,0x85,0xFE,0x20,0xDD,0x17,0xB6,0x93,0x24,0x9C,0x65,0x8B,0xC2,
+0x88,0xC3,0x53,0xFD,0xDF,0x23,0x4C,0x49,0xFA,0x8F,0xEB,0xBD,0x44,0x2D,0xE9,0xD7,
+0x9C,0x26,0xD0,0x05,0xB2,0x56,0xE7,0x7E,0x46,0xCF,0x3C,0xF4,0xA7,0x9C,0x8D,0x4B,
+0x99,0x79,0x24,0xB3,0xF2,0xFF,0xCF,0x79,0xF7,0x50,0xDC,0xEC,0xD5,0x02,0x6A,0x4A,
+0x2F,0x8A,0x9D,0xB5,0x6A,0x60,0x29,0xA7,0x03,0x55,0x83,0x5A,0x7F,0xD4,0xEF,0x5E,
+0xD1,0x84,0x3B,0x87,0xF6,0x83,0x98,0xC3,0x33,0xF8,0x97,0x99,0x54,0xF6,0x58,0x91,
+0x71,0xE5,0x5C,0x8F,0x78,0x73,0x0C,0x94,0xA9,0xD0,0x55,0x4E,0xF4,0x22,0xD2,0xB8,
+0xFA,0xE0,0x6E,0x6F,0x93,0x91,0x52,0x54,0x9A,0xFF,0xBF,0xD9,0xCE,0x34,0x70,0x46,
+0x1C,0xAF,0x8E,0xA7,0x8D,0x99,0x41,0x7D,0xC9,0xA0,0x01,0x2A,0xDC,0xFE,0xE7,0x23,
+0xA2,0x76,0x94,0xDC,0x8A,0x52,0x2C,0x2C,0xFD,0x5F,0xDE,0xD1,0x2D,0x85,0x14,0xDA,
+0x74,0xBA,0xA8,0x39,0x2D,0x02,0x6C,0xF1,0xB5,0x1A,0x56,0x2E,0x64,0xE2,0xF5,0x52,
+0x12,0x7C,0x16,0x53,0xB7,0x58,0x2E,0x23,0xB0,0xEC,0x72,0x61,0x22,0xA3,0xED,0xA8,
+0x0D,0x15,0xF9,0xE9,0x7A,0xB6,0xA8,0x98,0x21,0x6F,0x5D,0xFC,0xCB,0x10,0x86,0x09,
+0xE5,0x89,0x81,0xD5,0x6B,0x12,0xB7,0x40,0xA0,0x5D,0xA9,0x27,0xE5,0x16,0xC7,0x89,
+0x77,0x1C,0x67,0x06,0xEF,0x40,0xE6,0xBB,0xB7,0x3C,0x47,0x0D,0x7A,0xF0,0x19,0x11,
+0x38,0xC9,0xD1,0x72,0x48,0x10,0xA6,0x66,0xA4,0x0F,0x62,0x1F,0x29,0x4E,0x46,0xE2,
+0x1F,0x09,0x41,0x98,0xE8,0x8B,0x8B,0xEA,0x3D,0xA5,0x5E,0x9C,0xBA,0x70,0xE3,0x5C,
+0x8C,0x4D,0x35,0x82,0xC7,0x92,0xAC,0xD6,0x89,0xCC,0x9A,0xCB,0xB1,0x9D,0x48,0x16,
+0x37,0x31,0xF2,0x49,0xBD,0x44,0x34,0x68,0x91,0x0E,0x10,0xE2,0x7F,0x8D,0x99,0x0E,
+0x0B,0x9B,0x71,0xD0,0x63,0x4A,0x22,0xFA,0xAC,0x0C,0x1F,0xE8,0xD7,0xA1,0xD5,0xF2,
+0x25,0xDD,0xB1,0x57,0x4B,0xD1,0x17,0x26,0x62,0xB0,0x4F,0xB1,0x46,0x38,0xCC,0x78,
+0x21,0x93,0x0C,0x73,0xEA,0x8F,0x39,0x1D,0xF9,0x6C,0x7A,0x99,0x56,0x07,0x4D,0xAE,
+0xDE,0xD4,0x05,0x66,0x55,0x92,0xFB,0x34,0x9C,0xA6,0xED,0x8B,0x30,0x7B,0xBD,0x0B,
+0x73,0xA2,0xE8,0x3D,0x54,0xE5,0x5F,0xDB,0x10,0x96,0xB6,0xBE,0xD3,0x1B,0x82,0x8E,
+0x64,0xC5,0x4B,0x11,0x1E,0x39,0x3C,0x42,0x7C,0xA3,0x66,0xB9,0xE7,0x53,0x7F,0x91,
+0x18,0xB2,0x6F,0xD8,0xED,0xE3,0xE9,0x28,0xF3,0xA9,0xD6,0x3B,0x43,0x65,0x05,0x76,
+0xEB,0x04,0x69,0x61,0x67,0x72,0x70,0x31,0x7A,0x50,0xD0,0x00,0x5F,0x40,0xB2,0xBB,
+0x77,0xEC,0x55,0x19,0x20,0xFF,0xCC,0x9F,0xBD,0x13,0xC7,0x4C,0xF6,0x8B,0x60,0x35,
+0x4E,0xCD,0x36,0xB2,0x39,0xD0,0xF0,0xB8,0x8D,0xB9,0x35,0x2F,0x97,0xA6,0xFD,0x5B,
+0x36,0xF4,0xAF,0x5F,0xE1,0xC5,0x92,0xF0,0xEF,0x1E,0xF3,0xF6,0xCD,0x32,0x91,0x86,
+0x0F,0xD5,0xCC,0xF4,0xD7,0x1D,0x4B,0x3E,0x9E,0x02,0xE1,0x4E,0xB0,0x3A,0xBB,0x25,
+0x6F,0xB0,0x99,0x85,0x18,0x22,0x48,0x98,0x4F,0x33,0x7F,0x6D,0x2D,0xB9,0x94,0xB4,
+0x43,0xF9,0x64,0x08,0x28,0xE1,0xE5,0x8C,0xC1,0xA7,0x28,0x9D,0x1A,0x1A,0x53,0x1C,
+0x30,0xB5,0x2F,0x71,0x62,0x3D,0x86,0x15,0xA6,0xC9,0xB3,0x4A,0x15,0xEB,0x5F,0xB0,
+0x88,0xAB,0x5C,0x0C,0x51,0xAA,0xA9,0xFF,0x9D,0x38,0x0A,0xF9,0x6A,0xEF,0xD1,0xD6,
+0x62,0x84,0xCB,0x3F,0x6B,0x54,0x0B,0xE9,0x7D,0x3D,0x81,0xCB,0x81,0x2F,0x8F,0x34,
+0xDC,0xDB,0x38,0x6C,0x79,0x31,0x9C,0x23,0xB5,0x72,0x67,0x2B,0x9F,0x06,0x9C,0x3C,
+0x03,0x24,0xC3,0x58,0x88,0xC8,0x6F,0x58,0xCE,0xAB,0xD9,0x31,0x98,0x57,0xF1,0xF7,
+0xE1,0xB4,0xE6,0xE3,0x02,0x59,0xF6,0x41,0x17,0xFB,0xE7,0x75,0xA0,0x05,0x3A,0xF3,
+0x01,0x2B,0xFE,0x52,0x70,0x58,0x11,0xDF,0xA1,0xA4,0xE2,0x81,0xE0,0x02,0x12,0x5A,
+0x5E,0x2E,0x48,0xA6,0xDA,0x4C,0x94,0x09,0xA7,0x57,0x54,0x38,0x78,0xDC,0xF4,0xC5,
+0x4A,0x83,0x8B,0x96,0xF1,0x83,0x23,0x2B,0x95,0x59,0xAA,0x9E,0xE4,0xB8,0x45,0x26,
+0x9A,0x47,0x1F,0x12,0xDF,0x03,0x62,0x2D,0x14,0xC1,0x0C,0xC2,0xFD,0xC0,0x3B,0xE5,
+0xBF,0x74,0x0D,0x01,0x8C,0xF0,0x3D,0x93,0x60,0x14,0x43,0x74,0x5A,0x1D,0x7B,0xB5,
+0x83,0xDE,0x8E,0x98,0x1F,0x4E,0x98,0xAD,0x8A,0xD4,0x64,0xE4,0xFA,0x91,0x56,0x2E,
+0x47,0xB7,0xD9,0x2C,0x14,0x04,0x33,0x40,0x90,0x90,0xF7,0x90,0xD5,0xAD,0x71,0x37,
+0x8B,0x61,0x3C,0x10,0xC1,0x40,0x8E,0x3F,0x2B,0x67,0x0F,0x0D,0x3F,0x8A,0xB1,0xA7,
+0xAF,0x97,0x73,0x15,0x87,0xBA,0x96,0x7E,0x41,0xA1,0x69,0xB3,0xA5,0x58,0xF3,0xFD,
+0x80,0x14,0xEE,0x84,0x6E,0x1B,0xFD,0xCD,0xFB,0xC8,0x76,0x5C,0x68,0xE3,0x75,0x13,
+0x74,0x26,0x35,0x05,0x40,0x9B,0xBC,0xCB,0xC7,0x54,0x9E,0x24,0x79,0x3B,0x6A,0xB7,
+0x4C,0xC2,0x0B,0xB8,0x5E,0xD8,0x50,0xD9,0x57,0xD3,0xE0,0xDC,0x32,0x77,0x19,0xCE,
+0xCF,0xF2,0x26,0x64,0x1B,0x76,0xCA,0x66,0xA8,0x5B,0xA5,0x94,0xDE,0xE6,0x2A,0xE7,
+0x17,0x89,0x00,0x68,0xAF,0x21,0xA3,0xA2,0x75,0x5C,0x21,0xAC,0x6E,0x55,0x86,0xAA,
+0x9E,0x09,0xA2,0x36,0xD2,0x52,0xBD,0x1A,0xBF,0xB7,0xCB,0x89,0x1E,0xA0,0x04,0x60,
+0x49,0x49,0xEB,0x8A,0xD5,0x3E,0x6D,0x2F,0xCF,0x35,0x3E,0x43,0x8C,0xD2,0x27,0x5D,
+0xE3,0xBB,0xDB,0xE9,0x42,0xB8,0x9A,0xDA,0x86,0xE2,0x7E,0xFF,0x51,0x56,0x20,0x65,
+0x7C,0x99,0x87,0x8D,0xA1,0x24,0xFE,0x6B,0x37,0xD0,0x2A,0xC0,0x85,0x95,0xD8,0x48,
+0xE4,0x3F,0x06,0xD1,0xEE,0xB7,0x6B,0xD6,0x29,0xC3,0x03,0xC8,0x53,0x5A,0x84,0xA0,
+0xD7,0xAE,0xEA,0xF8,0x44,0xA3,0xEE,0x00,0x07,0x7A,0xD8,0xA3,0x27,0x15,0x51,0x16,
+0xE5,0xFA,0x5B,0xC7,0xA5,0x1C,0xAC,0xA0,0x63,0x2E,0xA8,0xC3,0xA9,0x42,0xC5,0xE6,
+0x1B,0x78,0x0F,0xC4,0x04,0x42,0x82,0x9B,0xB6,0x48,0x8C,0x9C,0x9A,0x5B,0x55,0x32,
+0xD2,0x25,0x0A,0xCA,0x9B,0xDA,0x5C,0x7D,0xAD,0x92,0xF8,0x9A,0x66,0xF5,0xE7,0xCD,
+0x6D,0xBF,0xA4,0x8F,0x53,0x89,0x8F,0xEE,0x2C,0x0A,0x5E,0xC6,0xAB,0x4E,0x61,0x23,
+0x3C,0x44,0x20,0xDD,0xA8,0x4D,0x73,0x97,0xDC,0x8E,0xEA,0x22,0x5D,0x4C,0x16,0x7E,
+0x24,0x18,0xEC,0x41,0x7F,0x2A,0xE8,0xF9,0xC0,0x39,0xCF,0xEF,0xF1,0xDA,0x0D,0xFE,
+0x2C,0xA7,0x5E,0xC9,0xA4,0x6B,0x08,0x4F,0xE9,0xED,0x45,0x4F,0x61,0xA4,0x8A,0x06,
+0x8D,0x20,0xBC,0x3E,0xE0,0xB2,0x36,0x1F,0x74,0xC2,0xC6,0xDE,0x7E,0x6A,0x07,0x7C,
+0x22,0x59,0x6C,0x6F,0x2D,0xAE,0x13,0xA8,0x18,0xF7,0x16,0xD9,0xC2,0xC3,0x9D,0x2A,
+0x6E,0x75,0xC4,0x93,0xA2,0x70,0x7C,0x95,0xB3,0x81,0xD1,0x92,0xB4,0x80,0xEC,0x59,
+0xE8,0xCE,0x09,0x7D,0xD4,0x49,0xC9,0xC0,0x82,0xB5,0xC4,0x83,0x50,0xB1,0xBE,0x17,
+0x85,0x9F,0x0E,0xB6,0x33,0xED,0xFF,0xBA,0x34,0xEA,0xC1,0x77,0x6D,0xBE,0xBC,0x1D,
+0xCE,0x37,0x7B,0x72,0xFB,0xBE,0x2C,0x29,0x01,0x89,0x6E,0x1A,0x11,0x51,0x08,0xCC,
+0xAE,0x52,0x2E,0x03,0x56,0xC6,0x79,0xCA,0x3A,0x78,0xD7,0xA9,0xF5,0x60,0x5A,0x82,
+0xB3,0x85,0x02,0xAD,0x97,0xFC,0x27,0xA5,0x19,0x69,0xF1,0xAB,0x67,0x12,0x79,0xBF,
+0xF6,0xD3,0x45,0xCF,0x95,0xDF,0x01,0xB4,0x16,0x65,0x00,0x07,0x25,0x19,0xF5,0xD3,
+0x63,0x41,0x96,0x29,0x45,0xD4,0x4A,0xEF,0x94,0xC7,0x4D,0xEC,0xBB,0x71,0xE0,0xF5,
+0xB6,0x0E,0xE2,0x9F,0xDB,0x3B,0x30,0xE6,0xF4,0xC4,0x87,0xF0,0x28,0xE4,0x5D,0xBA,
+0x52,0xDF,0x47,0x0A,0x4D,0xCA,0x63,0xFC,0x23,0x06,0xAF,0x6A,0xF7,0x6C,0xFE,0x47,
+0x46,0x72,0x84,0x3A,0x69,0x77,0x2D,0xF8,0xDD,0x10,0x0D,0x50,0x80,0xC8,0x11,0x46,
+0x32,0xBA,0x12,0x7B,0x30,0xB9,0x7D,0x44,0x08,0x76,0x29,0x0F,0x88,0x68,0x70,0x21,
+0xAC,0x5D,0x13,0x09,0xFC,0xD2,0xFC,0x1C,0xC9,0xC6,0x88,0xFA,0x93,0x1C,0xAA,0x27,
+0xDD,0x1E,0x65,0x7A,0xEB,0xF8,0x9D,0xF2,0xD6,0x4B,0x46,0x80,0x33,0x90,0x87,0xBC,
+0x75,0x5A,0xB3,0xB0,0x7D,0x59,0x49,0xB9,0x4E,0xA5,0xD7,0x60,0x52,0xAD,0x12,0xF2,
+0xA8,0x0A,0xF3,0x17,0xCB,0x2D,0x9C,0xF6,0xBD,0x1B,0x88,0x33,0x40,0xBE,0x37,0xC1,
+0x24,0x91,0xDE,0xB7,0x5B,0xC7,0x5C,0xD1,0x03,0x25,0x2D,0xA0,0xC3,0x27,0x0B,0x6B,
+0x18,0x88,0xF9,0x98,0x2F,0xDD,0x18,0x42,0x49,0xC8,0x86,0xAB,0x94,0x93,0xCF,0x02,
+0x3F,0x18,0x39,0x72,0xB2,0x66,0xEF,0xBA,0x0D,0xB7,0x3B,0x7E,0x71,0xAF,0x03,0xD4,
+0xED,0x42,0x7B,0xE8,0x0C,0x0C,0x29,0xDC,0xF7,0xF6,0x23,0x38,0x3E,0xAA,0x27,0x22,
+0x56,0xAC,0xFD,0x25,0xE3,0xB6,0x40,0xC3,0x56,0x45,0x48,0xD1,0xA3,0x3B,0x08,0xA1,
+0x8E,0x08,0xE2,0x34,0x9B,0x8A,0xDC,0x2B,0xD6,0x43,0x09,0xFF,0x78,0xBA,0xFC,0x93,
+0x5A,0x69,0x59,0x27,0x46,0xD0,0xB0,0xBF,0xE7,0x77,0x1C,0xEE,0x11,0xB3,0x00,0x1E,
+0x9A,0x8B,0x07,0xCC,0x74,0x30,0xB5,0x34,0x19,0x61,0xBE,0xD4,0x86,0x80,0xEA,0x31,
+0xB3,0x83,0x14,0xD2,0x94,0xF8,0xFA,0xD2,0x7C,0xAB,0x29,0xC6,0x75,0xD3,0x54,0x6E,
+0xE2,0x48,0x79,0xD5,0x8E,0x83,0x23,0x6C,0x85,0xD0,0xDA,0x37,0x8E,0xE7,0x8B,0x91,
+0xB0,0x4C,0xB2,0xED,0xCA,0x5A,0x73,0x52,0x14,0xC9,0x43,0xBD,0xAB,0x5C,0x69,0x01,
+0xB7,0xE5,0x9A,0xAD,0x3E,0xEC,0x2C,0x57,0x15,0x57,0xA4,0xCF,0xB3,0xED,0x89,0x9E,
+0x69,0x7A,0x7C,0x35,0x87,0xEA,0xDF,0xE1,0x01,0x81,0x21,0x65,0x05,0x19,0xD6,0x9B,
+0x0D,0x99,0xCD,0xA9,0x21,0xD8,0xD1,0x1F,0xCE,0xA3,0x96,0x4E,0xC6,0x29,0xC2,0x36,
+0xF5,0x04,0x3A,0x12,0xBF,0x37,0xD8,0x65,0x3F,0xB9,0xC5,0xD8,0x24,0xDE,0x63,0xB1,
+0x3E,0x8A,0xE8,0xBB,0xF3,0xF0,0x9B,0x72,0xB2,0x17,0x79,0x9F,0x18,0xA6,0xFF,0x59,
+0x13,0xE4,0x75,0xDA,0x90,0xC0,0x31,0x80,0x9D,0x30,0x45,0x86,0x7B,0x0D,0xC6,0x78,
+0x87,0x39,0x19,0x80,0x49,0xA2,0x96,0x46,0x88,0x78,0x27,0x5E,0xE2,0xE0,0xBE,0x41,
+0x8F,0x9A,0x33,0xFD,0xF1,0xD3,0x8A,0x54,0x50,0xB6,0xFE,0x68,0x81,0x4B,0x87,0x60,
+0x0C,0x0B,0x1C,0x60,0xD2,0x02,0xBB,0xCA,0x6F,0x10,0xFD,0xA7,0xD4,0x3A,0xE7,0x05,
+0xAF,0xA3,0xDB,0x57,0x22,0x8C,0x2F,0x9D,0xAC,0x04,0x50,0x97,0x29,0xB7,0xCB,0x4C,
+0x5E,0x0F,0xD7,0x58,0xF5,0xEB,0x41,0x06,0x70,0x9D,0x33,0xDD,0x62,0xCE,0xB8,0x00,
+0x38,0xB1,0x11,0x32,0x5D,0xDC,0x86,0xA5,0x09,0xE0,0x81,0x02,0xBF,0xF6,0xBF,0x84,
+0x14,0x4D,0x5D,0x9A,0x57,0xE1,0x84,0xAA,0x07,0x72,0x97,0xDC,0x3C,0x6F,0x83,0x2E,
+0x8D,0xC7,0x44,0x0B,0x0E,0x2F,0x38,0xFA,0x9C,0xAE,0xA2,0xF4,0xFC,0xE8,0xAD,0x68,
+0xB2,0x11,0xC5,0x1B,0x26,0xB4,0xE4,0xCF,0xC2,0x95,0x8C,0x55,0x41,0xCC,0xA9,0x26,
+0xCE,0xB4,0x35,0x7D,0x34,0xD1,0x2E,0x58,0xDF,0xBC,0x4E,0xEA,0x48,0xD9,0x56,0x61,
+0xAE,0x31,0x0A,0x9E,0x01,0x5D,0x1E,0x03,0xA8,0x53,0xEA,0xEB,0xA5,0x82,0xFB,0x17,
+0xE6,0x2E,0xF7,0xAA,0x06,0x31,0x2B,0xD3,0x74,0xCA,0x89,0xA1,0x06,0xAE,0xEC,0x70,
+0xD0,0xC9,0x8D,0x0E,0x84,0xBE,0x21,0x63,0xAE,0xA0,0x5C,0x52,0x22,0x67,0x90,0x07,
+0xAC,0x6C,0x7D,0x68,0xB8,0x5B,0xED,0xB5,0x92,0x3C,0xB4,0x2A,0x08,0x70,0x7E,0x66,
+0xC4,0x4A,0x68,0xF6,0x53,0xD9,0x4F,0xF8,0x99,0x67,0xFF,0xFA,0xDB,0x96,0xEB,0xF4,
+0x51,0x05,0xD5,0x65,0x4F,0xB9,0x4C,0x32,0x76,0x6E,0x85,0x64,0xAF,0x20,0x3E,0xBB,
+0xD9,0xF8,0x76,0xBA,0xD5,0x6E,0x8E,0x1A,0x87,0x74,0xD6,0xF2,0x0A,0xB5,0xDA,0x6A,
+0x7D,0xF9,0x99,0xCD,0xEF,0x90,0x98,0xB8,0x3A,0x70,0x98,0xD6,0xC9,0x85,0xCE,0xC7,
+0xDD,0x9E,0xF8,0xC5,0xB0,0x45,0xFE,0x9C,0xF4,0xCC,0xC8,0x8F,0x5F,0xC4,0xBA,0x0F,
+0xA9,0x98,0x22,0xDE,0x45,0x84,0x4E,0x3D,0x9F,0x94,0x49,0x43,0x5E,0xB6,0x24,0xE8,
+0x25,0x03,0x0F,0x7E,0x3F,0x9B,0xC3,0xF3,0xB5,0x7A,0x28,0x54,0x28,0xC5,0x55,0xAB,
+0xDF,0xC3,0x8F,0x33,0x61,0x39,0x4A,0x73,0xFF,0x97,0x83,0x5F,0xF1,0x81,0x05,0x95,
+0x76,0x95,0x15,0x8F,0x66,0x55,0x7F,0xA3,0xE3,0x20,0xA6,0x92,0x21,0xD0,0xAA,0xEC,
+0x35,0xE6,0x64,0xF9,0x2D,0xFE,0x09,0x64,0x3D,0x1D,0xC9,0x1D,0x89,0x2C,0xE6,0xC0,
+0x04,0xA8,0x36,0x1D,0x3C,0xCF,0x3D,0x71,0x04,0x48,0x7C,0x6B,0x44,0xC2,0x60,0x7B,
+0x0B,0xA2,0x34,0x20,0xC8,0x79,0x62,0x74,0xA0,0x32,0x4A,0x8C,0x43,0x09,0x0D,0x2A,
+0xE4,0x73,0x80,0x5C,0xA5,0x4C,0x01,0xDB,0xF3,0xA1,0x99,0x44,0x36,0xCD,0x46,0x82,
+0xD5,0x3D,0xD2,0xB8,0x16,0x77,0xF0,0x62,0x8B,0x42,0xCC,0xE9,0x63,0xBC,0x26,0xE7,
+0xA7,0x00,0xF1,0x2A,0x14,0x54,0xE1,0x44,0xB1,0x2D,0x92,0x28,0x4F,0x12,0x3B,0x30,
+0xA0,0xA9,0xD9,0x6A,0x1C,0x4A,0xF2,0x6D,0xEE,0x88,0x5B,0xFB,0xA7,0x47,0x5F,0x1B,
+0xF7,0x59,0x4D,0xE4,0x7C,0x2E,0xA6,0x1D,0x51,0x28,0x19,0x1A,0x16,0x78,0x6D,0x4F,
+0xEE,0x8D,0xDD,0xD7,0x23,0xFB,0xC0,0x39,0x0F,0x13,0x37,0xBB,0x42,0x7B,0x93,0xCD,
+0x40,0x72,0x6F,0x2B,0x25,0xE0,0x1A,0x4D,0x97,0xF5,0xE9,0x24,0x47,0x75,0x5A,0x90,
+0xFB,0x9C,0xE9,0xE6,0x79,0x61,0x82,0xEB,0xC4,0x66,0x3A,0xEC,0xE9,0x30,0xE5,0x0A,
+0xF9,0xC1,0x9E,0x10,0x9D,0x91,0x06,0x5F,0x00,0x1F,0xC6,0x17,0x6D,0x62,0xB4,0xF1,
+0x6F,0x41,0x85,0xBC,0x50,0x8D,0xB1,0x7A,0x67,0x71,0x5D,0xC0,0xA1,0xFE,0xAC,0xAD,
+0x11,0xB9,0x02,0x2C,0xF0,0xA4,0x65,0xF0,0x26,0xC7,0xBD,0x1B,0x13,0x76,0xA4,0x12,
+0xC2,0x71,0x91,0x7F,0x63,0x1A,0x5B,0x55,0x95,0x51,0xE5,0xE1,0x46,0x07,0xC4,0x77,
+0x53,0x58,0xA2,0x93,0x2B,0xE5,0xD3,0x10,0x3B,0xEE,0x7F,0xA4,0x6B,0xDB,0x47,0x47,
+0xE0,0x15,0x0E,0x23,0x13,0x38,0xD4,0x94,0x6C,0x2A,0x16,0x10,0x4D,0xD7,0x9F,0x3C,
+0x15,0xDF,0x8C,0x53,0x36,0xF2,0x3F,0x7E,0x1F,0x92,0x08,0x6D,0xEF,0x89,0x16,0xBC,
+0x67,0xE2,0xAF,0xC1,0xFC,0x82,0xBD,0x8B,0x73,0xA7,0xD8,0x6A,0xA6,0x35,0xC1,0xFC,
+0xE3,0xDA,0xA8,0x1C,0x40,0xCB,0x6A,0xCB,0xF5,0x52,0x2F,0xFD,0x96,0x56,0x6B,0x0E,
+0x20,0xF7,0x50,0xC8,0x7F,0x7A,0x58,0x9F,0x69,0xE3,0x4B,0x1E,0xCA,0x32,0xF4,0x2C,
+0xEF,0x1F,0x0C,0x1E,0x77,0x64,0x4B,0xB6,0xFA,0x5E,0xDE,0x51,0x4B,0x6E,0x6C,0x8A,
+0x44,0xBF,0x0E,0x63,0xF6,0xEB,0x69,0xA5,0x69,0xCB,0xE8,0x1D,0x5C,0x70,0xA8,0x47,
+0x3A,0x47,0x89,0xF3,0x56,0xC2,0xBD,0x2F,0x28,0x7D,0x08,0xC6,0xEE,0xF8,0xA0,0xF8,
+0xAC,0xC7,0x92,0x5F,0x9B,0xDE,0x0A,0x0A,0x4F,0x13,0x93,0x11,0x22,0x64,0xB8,0xA4,
+0xAE,0x9A,0xE5,0xA9,0x7F,0x2E,0x8E,0xBE,0x8B,0x6A,0x6F,0xEA,0xA6,0x36,0xE9,0x5F,
+0x15,0x74,0x63,0x64,0x23,0xAF,0x16,0x18,0xD8,0xF9,0xBC,0x22,0x08,0x73,0x56,0xC5,
+0xBB,0x8B,0xD1,0x98,0x25,0xB4,0xCC,0x6C,0x40,0x1F,0x62,0xBD,0x0D,0x7D,0x9F,0x98,
+0xA2,0x5F,0x41,0xAB,0x7A,0x61,0xAA,0x48,0x1E,0x24,0x4C,0x1C,0x59,0x7E,0x61,0x1A,
+0xF5,0xAF,0xD5,0x25,0x1A,0x05,0xFE,0x38,0xA1,0x84,0x0E,0xFD,0xE8,0x41,0x53,0x4E,
+0xBA,0x19,0x00,0x51,0x71,0x2B,0x47,0xE3,0xB5,0x52,0x8B,0x57,0x04,0x68,0x60,0xDF,
+0x75,0xF1,0x5C,0x87,0x79,0x35,0x54,0xCA,0x26,0xEF,0x1E,0x18,0x85,0x34,0xF8,0x79,
+0xB6,0xDC,0xA4,0x53,0x46,0x84,0x66,0x9E,0xBA,0x5E,0x7A,0xFB,0xD9,0x50,0x67,0x5B,
+0x32,0xE4,0xA3,0x8E,0xFA,0xCD,0xB1,0xDE,0x3C,0xAB,0x8D,0x6C,0xE9,0x33,0xCD,0xA9,
+0x40,0xD9,0x80,0x1C,0x30,0xBD,0x33,0x2B,0x50,0x9E,0x5D,0x6B,0xA0,0x8F,0x1A,0xE9,
+0xB5,0x13,0x02,0x6C,0x15,0x77,0xD8,0xC1,0x23,0x26,0x43,0x16,0x02,0xD1,0x93,0x69,
+0x06,0x5E,0xAE,0xDC,0x2D,0xAA,0xDF,0x45,0x74,0xE2,0x2A,0xA2,0x24,0xDD,0x4B,0x12,
+0x97,0x77,0x9D,0x30,0x65,0x55,0x57,0x00,0xDA,0x5D,0xB0,0xE7,0x09,0x01,0xC8,0x22,
+0x70,0x05,0x03,0x31,0x39,0xD4,0xCF,0xA6,0xFA,0x76,0x7D,0x52,0x67,0xC3,0x59,0xFE,
+0xFC,0x9E,0x2E,0x91,0x43,0xCB,0x42,0x68,0xD0,0x98,0x1C,0x45,0x11,0xB0,0x28,0xBD,
+0x88,0x98,0xF4,0x8A,0xB6,0x0A,0xF2,0xC9,0xBB,0xC0,0x9D,0x89,0x10,0xC2,0xB6,0x5A,
+0x28,0xFF,0x95,0x82,0xE9,0xDF,0x94,0xED,0x75,0x7C,0xCD,0xD0,0x86,0x83,0xC2,0x92,
+0x8C,0xFE,0x7A,0xF5,0xD3,0x21,0x82,0x4F,0xC8,0x78,0x83,0xF4,0x45,0xB3,0xD6,0x3F,
+0x04,0x03,0xD9,0x2A,0x49,0xF6,0x40,0x67,0x39,0x62,0xD0,0x62,0xE0,0x26,0x32,0xEE,
+0x91,0x4C,0x64,0xB9,0x55,0x96,0x43,0xAD,0xD6,0x6B,0xAA,0xFC,0x94,0x90,0xE7,0xA1,
+0xF9,0x6A,0x71,0x27,0xBE,0x14,0xE1,0xE0,0xDD,0x30,0xE1,0x2C,0x47,0x76,0x72,0x33,
+0xF2,0x06,0xFD,0x65,0x12,0x1B,0xED,0x11,0xFE,0x21,0xC7,0x2E,0x00,0x14,0x37,0x65,
+0x80,0x3B,0xDE,0xF7,0x10,0x38,0xFC,0x37,0xC4,0x4E,0x99,0xEF,0x2C,0xBA,0x2A,0xB2,
+0xB1,0x75,0x8C,0x13,0xA3,0x03,0x0D,0x8E,0xBC,0xAD,0xCC,0x42,0x79,0xCB,0x4A,0xD7,
+0x5E,0xA4,0x38,0x6F,0xCE,0x36,0x6E,0x21,0xEF,0x3E,0x1F,0x8A,0x0C,0x0F,0x01,0x7F,
+0x51,0xAE,0x3A,0x52,0x3A,0x80,0x31,0x24,0x4B,0x44,0x29,0x6D,0x0B,0xC4,0x6C,0x2E,
+0x60,0xE0,0x68,0xB6,0x2B,0xB1,0x05,0x31,0x72,0x11,0x9C,0x1B,0xC6,0x2A,0xEA,0x95,
+0x23,0x93,0x19,0xC0,0x60,0x1A,0x73,0xF6,0xAC,0x2C,0xF3,0x94,0x6E,0xD6,0xA6,0xB9,
+0x8A,0xC5,0x83,0x7C,0x67,0x76,0x46,0x26,0xB0,0x9B,0xD6,0x59,0xBE,0x87,0x09,0xC0,
+0x0B,0x09,0xDB,0x17,0xF3,0xA4,0x4D,0x53,0x3F,0x91,0x66,0xDB,0x2D,0xC8,0xB4,0x55,
+0xFA,0xA5,0xD7,0x18,0x24,0xC3,0x23,0xC8,0xE3,0x08,0x05,0x91,0x66,0xB1,0xC7,0x19,
+0x59,0x0D,0x10,0x2F,0xD4,0x4D,0xB7,0x9F,0x20,0x1C,0xA8,0xA1,0x9B,0x3C,0xEB,0x50,
+0xDA,0x9C,0x3F,0xB2,0xF7,0x9C,0x86,0x01,0x1F,0xBA,0xAB,0x6E,0xCE,0x4D,0x8B,0x35,
+0xD2,0x3F,0x15,0xCF,0x4F,0xED,0x9A,0x13,0xC7,0x74,0x72,0x58,0xAD,0xE6,0xB2,0x14,
+0x46,0xE2,0x79,0x95,0x96,0x8F,0x3D,0xD5,0xD2,0x3C,0x10,0x80,0x34,0x0B,0xCA,0x2D,
+0x6B,0x8C,0xE4,0xF4,0xF5,0xBF,0x97,0x27,0xFD,0x1B,0x2C,0x99,0x57,0xA0,0xF3,0x0C,
+0xA0,0x02,0x36,0x5D,0xB9,0x78,0xD4,0x30,0x70,0xB5,0x90,0xDE,0x6B,0xD8,0x6F,0xE4,
+0x85,0xCF,0x81,0x41,0x82,0xF1,0x2D,0x36,0xE1,0xAC,0x09,0x54,0x6D,0x61,0x9C,0x52,
+0xB3,0x28,0xFB,0xE5,0x00,0x7E,0x27,0x86,0x3B,0xC6,0xDC,0xA7,0x49,0xA8,0xE0,0x25,
+0xFB,0x37,0x06,0xD1,0x07,0x12,0x12,0x56,0xE7,0x5F,0xBF,0xED,0xEA,0x84,0xF7,0x42,
+0x9B,0xB2,0x39,0x32,0x32,0x9E,0x22,0x0D,0x90,0xB0,0x1B,0xEC,0x07,0xDF,0x5A,0x34,
+0xE7,0x17,0xC9,0x54,0x20,0xFB,0xE8,0x9A,0x8D,0x99,0xD9,0x53,0x0E,0xCA,0xA5,0x73,
+0xD8,0xC1,0x48,0x44,0x08,0x60,0x34,0xAF,0xD3,0xA2,0xF7,0xF2,0xB3,0xEE,0xA1,0x3D,
+0x41,0x4B,0x51,0xD5,0x51,0xAE,0x88,0xFF,0x48,0x7E,0xC2,0xDA,0x73,0x69,0x8F,0x7B,
+0x6D,0xB7,0x1D,0x7D,0x5B,0x93,0x8A,0xF0,0x46,0xEC,0xD4,0x04,0xF0,0xF0,0xB3,0xD1,
+0xDB,0x0E,0xEE,0x7B,0x9D,0xC5,0xD0,0x7E,0x99,0x4F,0x5C,0xF9,0x37,0xBC,0xF0,0xC6,
+0x03,0xAA,0xF1,0x6A,0xE5,0xF9,0x4C,0x96,0x19,0x49,0x1D,0xD7,0xEC,0x3D,0x04,0xF4,
+0xB8,0x44,0x77,0xA7,0x0A,0x43,0x25,0x89,0xB8,0xFA,0x76,0x3E,0x71,0xAC,0x2B,0x77,
+0x6A,0x1E,0x35,0x3D,0xB4,0x29,0xE3,0xEF,0x42,0xBB,0x6E,0x78,0x3E,0xA9,0x0F,0x81,
+0x4D,0x8E,0xF5,0xD7,0x29,0x92,0x14,0x17,0x06,0xC4,0xD3,0xAD,0xDB,0x95,0xC3,0x57,
+0x71,0x97,0xD2,0xF8,0x5D,0x88,0x50,0x84,0x4C,0x29,0x78,0xA6,0x8C,0x21,0x07,0x3E,
+0xFD,0x0C,0xFF,0x58,0xCD,0x62,0x90,0xA3,0xF2,0x17,0xDD,0x35,0x0F,0xB8,0x3B,0x94,
+0x20,0x5C,0xBF,0xFF,0x7B,0x16,0x45,0xEC,0x01,0xA9,0x82,0x66,0x1D,0xAB,0x1E,0xA7,
+0x58,0x9F,0xC1,0xE6,0x27,0x97,0xDD,0x4A,0x81,0xAF,0xC3,0x48,0x89,0x2F,0xCE,0x63,
+0x3C,0x7C,0x70,0x7A,0x81,0xA5,0xD3,0xB4,0x4E,0x8D,0x74,0x63,0x4A,0x1F,0xDA,0xCE,
+0xE2,0xE3,0x96,0xE2,0x38,0xA3,0x20,0x02,0x5A,0x5B,0xF1,0xC9,0xFC,0xEB,0x85,0xCB,
+0xE5,0x4A,0xBE,0xA2,0xCC,0x15,0x7F,0x07,0x5B,0xC5,0x16,0xBB,0xE4,0x5A,0x65,0x54,
+0xB7,0x4E,0x75,0x9A,0x88,0xCC,0x2F,0x39,0xCA,0xDC,0x8F,0x31,0xC1,0xE1,0x87,0xC4,
+0xE6,0x85,0x18,0x9D,0x92,0xB7,0xF6,0x87,0x33,0xA7,0x7C,0xC0,0x3A,0xD5,0x58,0x3B,
+0xCF,0x8D,0x0B,0x83,0x72,0x7F,0xB9,0x61,0x56,0x6D,0xEB,0xD2,0xC9,0x86,0xE6,0x64,
+0x0F,0x6F,0x55,0x68,0x40,0x9F,0xBC,0xEA,0xA8,0x7B,0x49,0xE8,0x5E,0xB5,0x0C,0x4B,
+0x01,0x42,0x0F,0x0B,0xBA,0xC8,0xDB,0x2C,0x04,0x32,0x0B,0x40,0xB8,0xEE,0xBF,0x4C,
+0xFC,0xE1,0xD0,0x83,0x78,0xE0,0x0C,0xB6,0x57,0xC3,0x9D,0x5A,0x69,0x0A,0x1A,0xD9,
+0xB3,0x5C,0x43,0x16,0x7B,0x2A,0x6C,0xAA,0x2D,0x2C,0x03,0x53,0x26,0xDF,0x6E,0x6F,
+0x95,0x49,0xDD,0x7E,0xD9,0x67,0xEE,0x41,0x66,0x27,0xD3,0x08,0xB4,0x4A,0xBD,0x89,
+0xFA,0x3B,0xCB,0xF7,0xF7,0x21,0x2E,0xC6,0xFA,0x00,0xAD,0x4E,0x79,0x61,0x9D,0x3C,
+0x61,0x16,0x6B,0x7B,0x7A,0xEF,0x31,0xBC,0x9B,0x2A,0xBA,0xA0,0x3A,0x10,0xEB,0x4F,
+0x67,0xCC,0x70,0x0F,0xCA,0x4E,0xF0,0x49,0x1A,0x41,0x76,0xF8,0xDD,0x8E,0xEA,0x3D,
+0x00,0xAD,0x78,0xAF,0xAC,0x6A,0x25,0x16,0x4A,0x8F,0x2F,0x44,0x15,0xFA,0x7C,0x7C,
+0x51,0x02,0xA8,0xD6,0x09,0xA3,0x7A,0xC5,0xAE,0xB1,0x92,0x7C,0xA9,0x54,0xF1,0x3B,
+0x1F,0x50,0x4C,0xE7,0x3D,0xB6,0x4B,0xD4,0x1B,0x88,0xE4,0x29,0x12,0xD2,0x3C,0xD5,
+0x6C,0x21,0x3A,0xA4,0x4B,0x71,0xE0,0x9F,0x74,0x56,0x6B,0x14,0x3E,0x9E,0x94,0x29,
+0x3A,0xBB,0x86,0x0D,0x7E,0xA1,0x8C,0x98,0x51,0x4A,0xA6,0xA3,0x47,0x31,0x44,0x78,
+0xF9,0xC5,0x9F,0x75,0xD5,0x96,0xE1,0xED,0x40,0x04,0xD1,0x19,0xE2,0x0F,0xFA,0xEB,
+0xC4,0xE6,0x0D,0x07,0xC4,0xB0,0xC2,0xEF,0x1E,0x3E,0x10,0x76,0x35,0x12,0xD6,0x45,
+0x8A,0xB4,0xE9,0x36,0x35,0x09,0xF9,0x5C,0x4B,0x46,0xBD,0x95,0x50,0x72,0x83,0x34,
+0x5B,0x00,0x95,0xD9,0x56,0xA6,0xCC,0x31,0x98,0x15,0x75,0x06,0xF8,0x39,0xF6,0xF0,
+0x8B,0x5B,0x9E,0x92,0x2E,0x9F,0x55,0xDC,0x3B,0x22,0xDD,0xC1,0x42,0x6E,0xF2,0x8C,
+0x74,0xE9,0x62,0x3C,0xF4,0xEB,0x4E,0xDA,0xE5,0xBA,0x42,0x27,0x1F,0xA7,0xF7,0x82,
+0xA0,0x79,0x51,0x25,0x92,0xCF,0x9B,0x85,0xCB,0xE4,0xE3,0x1C,0x9D,0x59,0xA3,0x81,
+0x50,0xED,0xDF,0x72,0xC6,0xBF,0xFF,0xE5,0x89,0x5B,0x02,0xBC,0xC9,0x6B,0x12,0xBE,
+0x40,0x36,0x99,0xC3,0x51,0x22,0x11,0x09,0x6F,0x93,0xE2,0xF3,0xC0,0x90,0xA6,0x8F,
+0xB8,0xB1,0x09,0xBD,0x85,0xA8,0x38,0xA9,0x8F,0xD2,0x39,0x45,0x7F,0x98,0x14,0x07,
+0x38,0xAA,0xA5,0x2B,0x32,0x8D,0x24,0x64,0x14,0xB5,0xEE,0x2B,0x23,0x80,0xD8,0x9B,
+0x65,0xDD,0x53,0x29,0xB6,0x39,0xD4,0x80,0xE8,0x71,0x15,0x52,0xD8,0xD1,0x5C,0xC9,
+0x26,0xB8,0xE6,0xC7,0x0B,0xAC,0x47,0xCF,0xDA,0xAA,0x94,0xA6,0x6E,0x22,0x5A,0x70,
+0xEC,0x3A,0x96,0x32,0xE0,0x46,0x8D,0xEA,0xC4,0xD9,0xE9,0x1E,0xEE,0xAB,0xF8,0x2E,
+0xA1,0x96,0x26,0x81,0xE7,0xC2,0x50,0xD2,0xAD,0x8E,0x5D,0xDA,0x95,0x73,0xDE,0x22,
+0x88,0xA5,0xCA,0x10,0x6F,0x87,0xAF,0x9A,0x37,0x20,0x18,0x65,0xA5,0xF0,0xF3,0xFE,
+0xE6,0x38,0xAB,0x3D,0x7F,0x64,0xD1,0x8E,0x0C,0x4F,0xA8,0x6A,0x58,0x58,0xFE,0x97,
+0x0E,0x64,0x7D,0xF2,0x6C,0x4D,0xCF,0x86,0x99,0xDC,0xE7,0xD7,0xFE,0xC0,0x7F,0xCB,
+0x23,0x9C,0xA9,0x31,0x5E,0x19,0x7E,0xB9,0xFD,0x40,0x04,0x66,0xDC,0x5F,0x23,0xAF,
+0x1B,0x9B,0x74,0xB5,0x89,0x59,0x37,0x05,0x0A,0xC6,0x93,0x93,0x2E,0xF5,0x13,0xCC,
+0x71,0xCD,0x2D,0xCA,0x2C,0x90,0x68,0xD6,0x54,0xFC,0x52,0xFC,0xD0,0xFB,0x21,0x6A,
+0x68,0xEA,0x02,0xF6,0x68,0x03,0x72,0xA2,0xFF,0xB6,0x59,0x11,0xB9,0x3F,0x76,0xDE,
+0xF3,0xC7,0xA2,0x7A,0xA8,0x24,0x98,0x32,0x5A,0x08,0xCA,0x2F,0x13,0x03,0xF5,0x47,
+0xA3,0x87,0x05,0xA7,0x7D,0x6B,0xEC,0x84,0x05,0xFB,0x99,0x91,0x20,0x26,0xE7,0x54,
+0xF1,0xD6,0x81,0x5C,0xE8,0xF9,0x3F,0x62,0xDB,0x63,0x06,0x77,0x41,0xC8,0xCD,0x43,
+0x55,0xC9,0x90,0x84,0x74,0x11,0x03,0x1A,0x9A,0xE3,0x28,0x71,0x73,0x3C,0x16,0xC2,
+0xBB,0x4F,0x5D,0x3F,0x1D,0x0E,0xB9,0xF5,0xF1,0x42,0xC1,0xC2,0xF0,0x13,0x8B,0x53,
+0xE1,0x0D,0xC7,0xED,0xDB,0x68,0xD3,0x4B,0xE9,0xB8,0x87,0x83,0x06,0x37,0xC4,0x56,
+0xB1,0x4D,0x60,0x30,0x17,0xBE,0x36,0x77,0x08,0x30,0xCE,0xE4,0x43,0xBF,0x3B,0x1E,
+0x7A,0x20,0x67,0x61,0xCE,0x00,0x4D,0x6D,0xFB,0xC9,0x3F,0x9F,0xBC,0x60,0xC0,0x2A,
+0x72,0x33,0x79,0x48,0x81,0xE6,0x85,0x8D,0x6C,0xAC,0x2D,0x55,0xE3,0xDE,0x33,0x79,
+0x90,0x6D,0x92,0x88,0x84,0x6D,0x65,0xBF,0xCE,0x52,0x17,0x43,0xCC,0x34,0xA4,0x4A,
+0x60,0xF9,0x1C,0xDF,0xE5,0xCD,0x6D,0xD8,0x44,0x7B,0xB7,0x97,0xE4,0xF6,0x73,0xD0,
+0x83,0x48,0x80,0xBB,0xEB,0x33,0x5F,0x7E,0xF3,0xB4,0x9C,0xB5,0x49,0xE2,0xB0,0xE0,
+0x1C,0xAE,0x18,0x65,0x18,0x85,0x59,0xC7,0x76,0xA0,0x36,0x63,0x4C,0xBD,0x06,0x14,
+0xB5,0x86,0x58,0x62,0x47,0x80,0xEF,0x33,0x91,0xA1,0x44,0xFD,0xD3,0x5D,0x1E,0xA5,
+0xC0,0x2D,0x35,0x55,0xA2,0x94,0x17,0xB0,0xF5,0x3D,0xA7,0x4C,0x93,0x8A,0x57,0x19,
+0x1D,0x41,0x6F,0xC1,0x05,0x52,0x75,0x69,0x97,0x28,0x7F,0x04,0xAA,0xF2,0xCE,0xF4,
+0x73,0xDC,0x0E,0xEC,0xAF,0xA0,0x45,0x0A,0xAB,0x07,0x66,0x23,0x8B,0xCB,0xAD,0x5F,
+0xFD,0x0E,0xA7,0x27,0xEC,0xB7,0x82,0x46,0x17,0x8A,0x21,0x8D,0x63,0x57,0x91,0x27,
+0xF6,0xE3,0xED,0x8C,0x75,0xD4,0x5E,0x0C,0xE1,0xC5,0x24,0xA9,0xD2,0x8C,0xD7,0x37,
+0x5A,0xEF,0xE2,0x7D,0x1B,0x4F,0x39,0xDB,0x82,0x19,0x6E,0x30,0x9E,0xFF,0x9C,0x4E,
+0xF2,0x28,0xD5,0xDE,0x8F,0x18,0xB7,0x2B,0x2F,0xDA,0x5E,0x24,0xD7,0xD3,0x61,0xC3,
+0x63,0x07,0x48,0x5D,0xBE,0x86,0x66,0x08,0x2C,0xE5,0x91,0x82,0xB2,0xB3,0x34,0xB2,
+0xE8,0xF1,0xAE,0x60,0xD0,0x1D,0x01,0xDF,0x5E,0x77,0xAC,0xA1,0xF4,0x9D,0xF4,0x35,
+0x3E,0x70,0xBE,0x5F,0x0C,0x28,0x9A,0xF7,0x70,0x29,0x0D,0x9A,0xBA,0x99,0x49,0x11,
+0xB4,0x69,0x2F,0xC6,0xB0,0x78,0x54,0xAE,0x45,0xB2,0x25,0x46,0xFC,0xB7,0x89,0x96,
+0x48,0x25,0x87,0xEA,0xB2,0x77,0x69,0xA4,0x53,0xBC,0xFB,0xD4,0x56,0x8B,0x0A,0x0F,
+0x30,0xB9,0xBB,0x02,0x15,0xB1,0x0B,0x7D,0x8E,0x1B,0xAB,0x94,0xD5,0xA4,0x97,0x9E,
+0xD7,0xC3,0x1F,0x34,0x1F,0x01,0x84,0xFF,0x5B,0xC1,0x58,0xFE,0xA2,0xD8,0xB3,0x57,
+0xC8,0x3E,0x2B,0x7C,0x2A,0xD1,0xE8,0xF8,0x38,0x1D,0x12,0x67,0xC5,0xCF,0x10,0x7B,
+0x4D,0x01,0xC8,0x1C,0x1A,0x8A,0x64,0xCD,0x9C,0x6A,0x13,0x88,0xB3,0x62,0xFD,0x20,
+0x5C,0x1B,0x39,0x74,0x13,0x13,0x99,0x3D,0x7C,0x10,0x4F,0x05,0xC4,0x74,0x02,0x53,
+0x48,0xD8,0x94,0x44,0xDC,0x38,0x2E,0x1F,0xDA,0xEE,0x41,0x37,0x27,0xE8,0x66,0xE2,
+0x17,0x6E,0x91,0xB0,0xC8,0x92,0xAB,0xC9,0x63,0x58,0xB2,0x31,0xB8,0x70,0xB8,0x04,
+0xF7,0x76,0x0E,0x01,0xC9,0xE0,0x4C,0x57,0x97,0x5D,0xED,0x87,0x11,0x30,0xBF,0x2C,
+0x15,0x53,0x9E,0xBA,0x58,0x6A,0xD5,0x4E,0xD3,0x63,0xBD,0x5E,0x15,0x08,0xED,0xE7,
+0xCA,0xA8,0x61,0x8E,0xA1,0x9B,0x26,0x35,0xC9,0xDD,0x64,0x25,0xDE,0x0F,0xBC,0x8A,
+0x74,0x5B,0x3E,0xDD,0xC4,0x89,0xB1,0xFF,0x29,0x3B,0x2B,0xED,0xD6,0x11,0x95,0x99,
+0x9E,0xCC,0x11,0xEE,0x3A,0xB3,0x13,0xE9,0x1B,0xB0,0x2E,0x0D,0x34,0xFA,0x55,0xC7,
+0x62,0xA5,0x9C,0xE7,0x0B,0xA2,0x06,0xDD,0xC6,0x24,0x42,0x57,0x55,0xE9,0x81,0x7C,
+0x96,0x7E,0xAE,0x66,0x8B,0x8C,0x47,0xDB,0xBE,0xCC,0xDE,0x6B,0xF1,0xF8,0x59,0x63,
+0xB9,0xE3,0x2D,0xF7,0x2A,0x65,0x2C,0x68,0x51,0xD3,0xB7,0xD1,0x1F,0x35,0xE2,0xE5,
+0x9D,0xAC,0xDB,0xF2,0xD0,0x23,0x34,0x29,0xEF,0xB5,0x71,0xBB,0x45,0xAF,0x30,0xA7,
+0x51,0x49,0x0D,0xCE,0x94,0xF6,0x89,0x56,0x72,0x4D,0x86,0x00,0xD5,0x45,0x17,0x67,
+0x95,0x1E,0x64,0x7A,0xDE,0xFD,0x22,0xBB,0x06,0xDE,0xC2,0x1A,0xCC,0x6A,0x2B,0x40,
+0xA9,0x9D,0xCE,0xE3,0x60,0x6E,0x87,0x85,0x96,0xF9,0x02,0xF0,0x57,0xCA,0xA7,0x6D,
+0x8C,0x8F,0xFD,0xF0,0x93,0x3D,0xD8,0x3B,0x20,0xB6,0xD7,0x84,0x07,0x6D,0x7A,0x2D,
+0x0E,0xFF,0x08,0x3A,0x73,0x0F,0x53,0x3E,0xD9,0x6C,0xBF,0x63,0x94,0xD3,0xDF,0x13,
+0x72,0xDB,0x7F,0xF3,0xA9,0xFC,0x86,0x54,0x5B,0xDC,0xB5,0xEC,0x73,0x77,0xE9,0x69,
+0x65,0x78,0x18,0xDF,0x75,0xB6,0xE5,0xCD,0x5C,0x0C,0x80,0x80,0x6C,0x43,0xA1,0x94,
+0xC8,0x95,0x6E,0x84,0x02,0xB7,0x41,0x22,0x69,0x57,0xB0,0x0C,0xE9,0xA0,0xC1,0xAB,
+0x37,0x9C,0x29,0x91,0x1F,0x08,0x83,0x0B,0x7B,0xC0,0x7A,0x69,0x4C,0xC6,0xBD,0x5B,
+0x33,0x21,0x67,0xB5,0x41,0xA9,0xAD,0x30,0x53,0xF5,0xA6,0xF2,0x9A,0xD6,0x82,0xDA,
+0x1D,0xE1,0x21,0x32,0xDA,0x81,0x98,0xEC,0x0A,0xA5,0x1A,0x3C,0x10,0x47,0x1B,0xC3,
+0x21,0x62,0x8B,0xAB,0xD4,0x5F,0x8E,0x7E,0x00,0xAA,0x18,0x01,0xEC,0xEF,0x37,0x8F,
+0x26,0xBF,0x0F,0x93,0xAD,0x80,0x3C,0x03,0xA8,0x09,0xDF,0x36,0x52,0x85,0x51,0x49,
+0x55,0xF4,0x43,0xEA,0x71,0xCA,0x5F,0x9A,0x7F,0x92,0xB1,0x51,0xFE,0x8A,0xA0,0x45,
+0x79,0x09,0x0A,0x67,0xB2,0xFA,0xF2,0x8E,0x8F,0xC5,0x25,0xDF,0x56,0xBD,0x03,0x82,
+0x19,0x5C,0x6F,0x16,0x8D,0x35,0xF1,0x28,0xAC,0x5B,0x14,0x0E,0xC7,0x20,0x80,0xAD,
+0x20,0x3F,0x4E,0xBD,0x55,0x03,0x28,0xE6,0x14,0x49,0x08,0x7F,0x64,0x5D,0x88,0x87,
+0x58,0xA6,0x77,0x50,0x40,0xDB,0x4A,0xAE,0xCD,0x8F,0xAF,0x1D,0xB9,0x07,0x1C,0xEB,
+0x61,0xC5,0x56,0xFB,0x6F,0xC2,0x76,0x89,0xAE,0x7D,0x05,0x2D,0xD7,0x66,0x31,0x76,
+0xFD,0xF9,0xBE,0x83,0xE2,0x85,0xCA,0x27,0xE2,0x6A,0x46,0xEA,0x59,0xCF,0xFA,0xA4,
+0xA5,0x92,0x3F,0x4F,0x6C,0x75,0x9D,0xB3,0x49,0x4B,0x7F,0x89,0x5D,0xF7,0xA8,0x6F,
+0xB8,0xBE,0xE8,0xE1,0x56,0xB4,0xC3,0xDC,0x4B,0x6D,0x6E,0xAA,0x60,0x65,0xDA,0x4C,
+0xD8,0xEB,0x8D,0x90,0x2E,0x19,0x96,0x3F,0xF8,0xD4,0x9F,0x91,0x2E,0x81,0xEB,0x1E,
+0x93,0x9E,0x25,0x54,0x7D,0xD1,0x45,0xAC,0x95,0x7B,0xFC,0xA4,0xFF,0xFD,0x04,0xAA,
+0xFE,0x99,0x74,0x9F,0xD9,0x36,0x73,0xD6,0x61,0x7E,0xA3,0x12,0xF5,0xC0,0x0B,0xA8,
+0x78,0x54,0xCF,0x71,0xE0,0x40,0xC6,0x83,0x70,0x6B,0x97,0x23,0xBB,0x24,0x3A,0xFA,
+0x34,0xFC,0xE3,0x8D,0x3E,0xCF,0xA9,0xBE,0x3B,0xAC,0xE1,0x88,0xC8,0x52,0x79,0x8B,
+0x9B,0x2C,0x9A,0xDC,0x22,0x02,0x8C,0x09,0x3C,0x7C,0xD4,0xE4,0x9E,0xEE,0xD0,0x11,
+0xCB,0xF5,0xA4,0x98,0x68,0x09,0x27,0xE4,0x62,0xFC,0x5D,0x46,0x5E,0xA3,0x2A,0x91,
+0xBA,0x83,0xE7,0xEB,0x42,0x1E,0x46,0x0A,0x18,0x32,0xD0,0x59,0xC5,0x03,0xA6,0xBC,
+0x24,0x82,0x00,0x99,0x29,0xD2,0xC7,0x52,0xED,0x93,0x60,0x98,0xC3,0x18,0xD2,0x66,
+0x50,0x14,0xC8,0xD8,0xE7,0x8B,0x97,0xEE,0xB2,0xB7,0x06,0x4D,0xA4,0x10,0x72,0x07,
+0x44,0xD7,0x65,0xE8,0x5A,0xAF,0xD9,0xEA,0x88,0x15,0x10,0xB3,0xA5,0x67,0xD6,0xE8,
+0xA0,0x72,0xB4,0x7D,0xAB,0x39,0x8A,0xF0,0x12,0x3D,0xD2,0x64,0x58,0xB8,0x5E,0x4B,
+0x75,0x06,0xFB,0xCB,0x44,0xA7,0xF0,0xF9,0x0E,0xF7,0xD1,0x04,0x17,0x2B,0xCB,0xF6,
+0xE0,0xD5,0x69,0x2D,0x4F,0x77,0xBB,0xA2,0xE5,0xBA,0x73,0x86,0x31,0xB5,0xA3,0xE3,
+0xF2,0x96,0x85,0x33,0x27,0x0C,0xD1,0xC0,0x2A,0xB9,0xD5,0xB9,0x42,0xC3,0xE0,0x92,
+0x6A,0x17,0x23,0x6F,0xB4,0x43,0x44,0x7D,0x22,0x90,0xC6,0xA7,0xAA,0x15,0x2F,0xCE,
+0xF5,0x4B,0x01,0x0B,0x28,0xA0,0x20,0xCC,0x1D,0xC4,0xF4,0x16,0x87,0xC1,0xEC,0x36,
+0x5F,0x7B,0xF3,0x68,0xAE,0x37,0xD7,0x39,0xA1,0x84,0x23,0x5F,0xBF,0x1C,0x68,0x31,
+0x88,0x32,0xB3,0xD4,0xC2,0x30,0x07,0x0C,0x6B,0x71,0xA1,0x2F,0x82,0x8E,0x1A,0x12,
+0x01,0x90,0x33,0x8A,0xB1,0x4D,0x19,0xB4,0x4E,0x9B,0x4A,0xE5,0x48,0xFE,0xEF,0x90,
+0xD9,0xB6,0x48,0x86,0xE6,0xF9,0x70,0x70,0x76,0x1F,0x4D,0x38,0x05,0x4E,0x5C,0x3C,
+0x5A,0x9B,0x78,0x5A,0x48,0xBC,0xEA,0xCF,0x3E,0x5A,0xC5,0xC7,0x2C,0xA2,0xCD,0x0F,
+0x3A,0xCE,0x1D,0x2B,0xFB,0x46,0xB2,0x59,0xAD,0xFF,0xFB,0x79,0xE4,0xF1,0x1E,0x9C,
+0x32,0x7C,0xA2,0xA3,0xBA,0x9D,0x52,0xEF,0x0D,0x75,0x2F,0x50,0x1C,0x61,0x60,0x1B,
+0x2A,0xB0,0xFE,0x3F,0xDD,0x4A,0xC9,0x81,0xC0,0x50,0x98,0x4C,0x9C,0xCD,0xF6,0x00,
+0x7B,0x34,0x05,0x6D,0x19,0xB1,0x35,0xF8,0x24,0xE4,0x1C,0xBC,0xC1,0x3B,0xF4,0x77,
+0xC4,0x9A,0x9F,0x28,0x4A,0x79,0xE6,0x6B,0x78,0x42,0x84,0x3D,0x2F,0xF6,0x4F,0xF1,
+0x0D,0x9F,0xC2,0x26,0xD2,0xE6,0x38,0x8D,0x7E,0x36,0x5E,0x26,0xD0,0x0A,0xE1,0x43,
+0xF3,0xCB,0x40,0x25,0x8C,0x47,0x16,0xB6,0x21,0x12,0x38,0xF3,0x04,0x39,0xF8,0xD3,
+0xC1,0x7A,0x14,0x1A,0x33,0xA6,0x54,0x16,0x41,0x62,0x6C,0x97,0xF4,0xB7,0xAF,0x47,
+0xBC,0x99,0x44,0x9C,0x02,0xB4,0x71,0x60,0x13,0x2B,0x81,0x47,0x1C,0x35,0xD2,0xA7,
+0xC6,0x3D,0x72,0x7B,0x8D,0x36,0xC1,0x6A,0xE0,0xFE,0xEB,0x9D,0xD5,0x11,0xA5,0xDB,
+0x7E,0x4E,0x6C,0x06,0xE2,0x86,0xFA,0x65,0x58,0xEC,0xF7,0xEC,0x6B,0x7B,0xC3,0x1D,
+0x41,0xAD,0x0C,0x83,0x6E,0xB3,0xA1,0x55,0x59,0x48,0x18,0x9B,0x30,0x96,0xB5,0xB0,
+0x0F,0x38,0x2F,0x75,0x1C,0xBC,0x58,0x73,0x46,0x00,0xE5,0xAF,0x5A,0xCF,0xCA,0xE6,
+0x8E,0x28,0x10,0xA3,0x87,0x94,0x6D,0xAF,0xE7,0x2E,0xDE,0xF1,0x7E,0x72,0x84,0xE2,
+0x5A,0x01,0x9A,0x03,0xEF,0xEF,0x07,0xCD,0xB0,0x23,0xAB,0x3A,0x44,0x8C,0x26,0xF4,
+0x16,0xA9,0xB6,0xFF,0xD2,0xE5,0x08,0xCF,0x6E,0x35,0x39,0x34,0xDD,0x0F,0x8C,0xC8,
+0x90,0x64,0x0D,0x11,0xBF,0x90,0x3F,0x64,0x25,0xF2,0x4F,0x9F,0x05,0x1A,0xEE,0x80,
+0x9C,0x6B,0xFC,0xBD,0xD8,0x47,0xA4,0x0A,0x6F,0x91,0xD6,0x43,0x7C,0x51,0xA2,0xF3,
+0x78,0xCE,0x2D,0x28,0xE0,0x43,0xF6,0xC1,0xDA,0x5C,0xFD,0x63,0xF9,0xB2,0xC2,0xCC,
+0x57,0x53,0xAE,0xB9,0x31,0x60,0x68,0xF0,0x15,0x5F,0x5B,0x5C,0x88,0xE7,0xA7,0xAC,
+0x3E,0xE9,0xB1,0x56,0xF3,0x22,0x22,0x7A,0x34,0xE7,0x7B,0xAE,0xBF,0x48,0xDA,0x8D,
+0x52,0xB3,0x25,0x8B,0x91,0xFB,0xE4,0xDD,0xEC,0x85,0x33,0xBB,0x52,0xD1,0xE3,0xF5,
+0x71,0x21,0x57,0xB6,0x04,0x0D,0xC7,0x93,0x6A,0x67,0xF2,0x0C,0x6C,0x17,0x13,0x28,
+0xA3,0x88,0x9C,0x38,0xC3,0x41,0xD0,0xD0,0x2D,0xDB,0x5C,0x81,0x14,0x2B,0xFB,0xB4,
+0x37,0x06,0xCB,0xC8,0xD9,0x35,0x43,0x94,0xD7,0x83,0xCA,0x32,0xAB,0x36,0x39,0x9D,
+0x86,0x9A,0xAF,0x2B,0xEB,0x93,0xBD,0x9A,0xFC,0x34,0xE8,0xFD,0x9B,0xF5,0x94,0x89,
+0xF9,0xDE,0x12,0xFE,0x69,0x78,0xF0,0x38,0x0F,0xE1,0x82,0x27,0xEE,0x98,0xA3,0x22,
+0xD1,0x9E,0x15,0x57,0xDF,0x8C,0xF5,0x67,0x7D,0x06,0x1C,0x26,0x5F,0x80,0x3C,0xC2,
+0x5F,0xE1,0x11,0x31,0xCB,0x26,0x70,0xB1,0x74,0x8B,0xE0,0x4F,0x61,0x46,0xCC,0x1F,
+0x32,0xE6,0x40,0xFA,0xB0,0x3C,0xCE,0x68,0x85,0x78,0x9B,0xB6,0x55,0xBD,0x33,0xC0,
+0x12,0x14,0xF8,0xDB,0xE3,0xF4,0x1D,0xFB,0x5C,0xBE,0x3C,0xD4,0x01,0x22,0xBC,0x4B,
+0x4C,0xFF,0x38,0x39,0x03,0xC6,0x96,0xFE,0x66,0x1C,0x2A,0x2A,0x32,0xB5,0x93,0xA1,
+0xB6,0x16,0xF4,0x1E,0x85,0x51,0x61,0x0B,0x63,0xEA,0x0E,0x65,0x89,0x90,0x03,0x43,
+0xA9,0x07,0x2C,0xBA,0xB9,0x29,0x89,0x97,0x4D,0xAB,0x08,0xE5,0x08,0x4B,0x31,0xB7,
+0x72,0x41,0x9D,0xAA,0x55,0x00,0x18,0xA4,0xCC,0x99,0xFC,0x3E,0x1D,0x42,0x76,0x48,
+0x30,0xDB,0x4F,0xF0,0x3F,0xBE,0x7E,0x62,0x8A,0x81,0xBD,0xC4,0x18,0x0D,0x80,0x6C,
+0x95,0x84,0x86,0x23,0xF4,0xE9,0x73,0x17,0x12,0x8F,0x6E,0x30,0x95,0xF0,0xC9,0x40,
+0xB2,0xAB,0xBA,0x3A,0xEE,0x9D,0xE0,0x53,0x19,0x24,0x83,0x7A,0x21,0xA7,0xA0,0x84,
+0xF8,0x83,0xD7,0xE8,0x6A,0xCF,0x1B,0x02,0xD2,0x75,0xEE,0x7D,0x1F,0x61,0x50,0x59,
+0xB8,0x24,0x0A,0xB8,0x1E,0x79,0x54,0xD7,0x81,0x2A,0x50,0x8E,0x0C,0x73,0x63,0x7C,
+0x1B,0xFB,0x82,0x45,0x49,0xCD,0x3D,0x13,0xAC,0xE9,0xA8,0x5A,0x80,0xF9,0x8E,0xBF,
+0x47,0x2D,0x4D,0xAD,0x57,0xC5,0x14,0x00,0xE3,0x7C,0x15,0xC9,0xDC,0x78,0x28,0x27,
+0xE4,0xF2,0xC5,0x50,0xB1,0x4E,0x29,0xF6,0xD8,0x7A,0xEC,0x40,0x87,0x95,0x5E,0x8A,
+0xE3,0x2F,0x41,0x68,0xF8,0xF2,0x69,0x21,0x4F,0x8D,0x19,0xC6,0xE4,0xA5,0xAC,0x20,
+0x45,0x10,0x42,0xA7,0x0B,0xA1,0x36,0x9F,0xA2,0xB4,0x61,0x5F,0x65,0x7E,0x9E,0xD4,
+0xC7,0x60,0xB7,0x6D,0xC1,0x84,0xDC,0x74,0xDF,0xAA,0xD9,0x2C,0x3B,0xDC,0x1E,0x5D,
+0xDA,0x4C,0x60,0xC3,0x29,0xD1,0xF7,0x10,0x53,0x47,0x1A,0xA6,0xB5,0x75,0xD5,0x8F,
+0xE9,0xA0,0xF1,0xEA,0xD6,0x99,0xB2,0x98,0x16,0xDD,0xA5,0x08,0x69,0x58,0xE5,0x0C,
+0xCE,0x8F,0xCD,0xF3,0xBE,0xE2,0xD8,0xFA,0x72,0xFF,0x3A,0x54,0x4C,0x92,0x0F,0xE7,
+0x49,0x1F,0xB3,0x0B,0x97,0x42,0x52,0x2E,0xA9,0x1F,0x8C,0x15,0xC4,0x20,0xB0,0xEF,
+0xA2,0xD5,0x59,0x2E,0x52,0xCB,0x49,0xC9,0x5E,0x98,0x2D,0xF7,0x82,0xDA,0xA8,0xAE,
+0xD5,0x23,0x5B,0x73,0xA2,0x2F,0xFD,0x4D,0xA5,0x64,0x54,0x33,0xD0,0x5E,0x53,0xFF,
+0x96,0xE4,0x4C,0x3F,0xC8,0x91,0x9B,0x8B,0x09,0x95,0x58,0x3C,0xC9,0x71,0x6F,0xD8,
+0x24,0x18,0xE2,0xC0,0xD3,0x97,0xEF,0x51,0x96,0x4B,0xBE,0xA4,0xC7,0x74,0x32,0x11,
+0x92,0x59,0x02,0x1B,0x79,0xAE,0xCF,0xB9,0x49,0xF9,0xC3,0xDD,0xF5,0x94,0xB9,0x14,
+0x06,0xD7,0x55,0xEB,0x1D,0xCE,0xBF,0xED,0xA8,0xBB,0x63,0x62,0xCA,0x25,0xED,0x26,
+0x99,0x8B,0x77,0x8F,0x44,0xA4,0xC0,0xBB,0x5B,0x6E,0x09,0xB8,0x0E,0x50,0x45,0x6D,
+0xBA,0x19,0x05,0xB2,0x67,0xA6,0xE6,0xAA,0x9A,0x30,0x66,0x82,0xA0,0x7C,0x92,0x70,
+0x7F,0x13,0xA9,0x10,0x4A,0x7A,0xD6,0x29,0x3E,0xE8,0x79,0x93,0xBB,0x70,0x88,0x46,
+0xCB,0x6F,0x46,0xC1,0x7F,0x17,0x79,0x4A,0xF6,0x3B,0xEA,0xC0,0x7F,0x05,0x20,0x0D,
+0x2F,0xCA,0x97,0x54,0xCD,0x9F,0xC6,0x42,0xAF,0x6B,0x56,0x0E,0x9E,0xBA,0x62,0xAD,
+0x7D,0x2E,0xA6,0x1A,0xFC,0x8E,0xD3,0x76,0xD9,0xDE,0x03,0x37,0x70,0x77,0xD9,0x2B,
+0xC4,0x00,0x7D,0x71,0x0A,0xD3,0xD1,0x01,0xED,0x21,0xDC,0xCC,0x33,0xC2,0x37,0x4E,
+0x5E,0xBC,0xD4,0x27,0x66,0xD4,0x01,0x34,0x20,0x04,0x6B,0xD0,0x62,0x12,0x4E,0xE1,
+0x69,0xED,0x0B,0x2A,0xB7,0xF7,0x9F,0x05,0xF1,0xEB,0xDF,0xAC,0x04,0x6D,0x4A,0x6F,
+0x44,0x4D,0x87,0xB1,0xA8,0x8D,0x51,0x88,0xE6,0x8A,0x31,0x86,0x77,0x1B,0x09,0x1E,
+0xD2,0xFE,0xDF,0x4B,0xA3,0x5D,0x1A,0xD3,0x64,0x3A,0x3B,0x09,0x37,0xFA,0x65,0x85,
+0xB3,0xF6,0x7F,0x2C,0x76,0x02,0x3E,0xB5,0x3D,0x6A,0x87,0xC7,0x76,0x6C,0xAD,0xF1,
+0x9E,0x56,0xF3,0xB7,0x8A,0xFD,0x90,0x07,0xD6,0x27,0x25,0x45,0x92,0x9C,0x19,0x75,
+0x3D,0x89,0x7B,0x4A,0x5D,0x67,0xB8,0xC5,0x40,0x74,0x3F,0xB4,0x07,0x39,0xC8,0x91,
+0x36,0x5B,0x0E,0xDE,0x68,0x0A,0x17,0xA6,0x98,0x16,0x77,0xA1,0xC2,0x3B,0xC4,0x35,
+0x23,0xC5,0x66,0xF8,0xEA,0xE1,0x5A,0x04,0x48,0x5D,0x2C,0xAA,0x24,0xE8,0x56,0xA0,
+0x49,0xAE,0x45,0x31,0x8A,0x57,0x1A,0x9C,0x39,0xCD,0xFB,0x11,0x2B,0xFD,0xD3,0xB8,
+0xCF,0x59,0xD2,0xC4,0x78,0xFD,0x79,0xAC,0x3E,0xF5,0x26,0x95,0xFC,0xBD,0x6F,0xF1,
+0x53,0x3D,0x31,0x75,0x5A,0x62,0x1D,0xF0,0xC6,0xD8,0xF2,0x56,0xCE,0xE9,0x50,0x40,
+0xC0,0xA8,0x7E,0xC8,0xFC,0xFA,0x41,0x71,0x9A,0x30,0x24,0x99,0xDD,0xC0,0x58,0x5E,
+0xAF,0x93,0xCE,0xC7,0x01,0x52,0x28,0x7C,0x07,0x5E,0x45,0xB4,0xCD,0x23,0x4C,0x20,
+0x01,0x09,0x8B,0x78,0x31,0xD1,0xF4,0x51,0x34,0x77,0xA9,0x25,0x45,0x66,0x04,0xDF,
+0x56,0x60,0x3F,0xBC,0x4A,0x09,0xF8,0x77,0x98,0x3A,0x19,0x96,0x42,0xE2,0x3C,0x02,
+0x25,0x7E,0x42,0x04,0xCA,0x80,0xA6,0xD5,0x1A,0xF0,0x69,0x63,0xA9,0x08,0x19,0xC8,
+0xFE,0x4C,0xC3,0xF0,0x7C,0x73,0x1F,0xD3,0x7F,0xB3,0xDC,0x8D,0x14,0x9D,0x56,0x5B,
+0x3A,0xB0,0x38,0x89,0x87,0x22,0x4D,0x57,0x08,0xEE,0x2A,0x8F,0x90,0x29,0xB2,0xAB,
+0x5D,0x2B,0xEF,0xE7,0xDB,0x3A,0xD1,0x9B,0x13,0x6E,0x86,0x19,0x27,0x0C,0x7F,0xB7,
+0x1C,0xCB,0x34,0x51,0x64,0x32,0x59,0x29,0x94,0x96,0x16,0x67,0xF3,0x86,0xDF,0x9E,
+0xD4,0x2D,0xD4,0x1E,0x6D,0xC9,0x68,0x9D,0x4F,0x86,0x50,0xD6,0x64,0x1B,0x33,0x70,
+0x6B,0x6F,0x35,0xBE,0x39,0xFB,0x57,0x2C,0xDB,0x76,0xDE,0x81,0x30,0x6B,0x53,0x14,
+0x35,0x41,0x94,0x85,0xBB,0x05,0x54,0x78,0x4B,0xA2,0xED,0x98,0x56,0x4F,0x0C,0xC1,
+0xAD,0x9F,0x0B,0x63,0xE6,0xCC,0x5A,0x7D,0xF9,0x5D,0x11,0x36,0x8C,0x3B,0x0A,0xDA,
+0x9A,0x3C,0xA3,0xA4,0x5C,0x9B,0x26,0x79,0xA2,0x8D,0x1A,0x7D,0xF4,0x02,0xE7,0x43,
+0xC9,0xEF,0x6B,0x37,0xF4,0xD0,0xE2,0x0C,0x16,0x5C,0x66,0x92,0x97,0xAD,0x8A,0x76,
+0xB1,0xBA,0xC6,0xD4,0x91,0xB0,0x93,0x59,0x44,0x12,0x82,0xA3,0x66,0x14,0x39,0x4D,
+0x8B,0xE4,0x07,0xBB,0x46,0xAD,0x3D,0x75,0x67,0x2F,0x10,0xD1,0x77,0x32,0x3B,0x6E,
+0xC5,0xF5,0x70,0x01,0xE3,0x93,0xAE,0xCB,0x19,0xEC,0x09,0xA9,0xDC,0x05,0x4E,0x03,
+0xD9,0xD0,0xBD,0xB6,0x9A,0x3C,0xFF,0x1B,0x83,0xBA,0xB5,0x00,0xE9,0xD5,0x49,0x6F,
+0x07,0xBF,0x32,0x8B,0xB6,0x70,0x03,0xB3,0xF2,0xC9,0xC3,0x43,0x9F,0x12,0x02,0xC4,
+0x3E,0x0A,0x44,0xDE,0x0D,0xF6,0xED,0x7E,0xA0,0x87,0x27,0x72,0xAB,0x07,0x13,0xF5,
+0x00,0xEE,0xF9,0xE6,0xB1,0x58,0xAA,0xF3,0x0F,0xD6,0xF7,0x0B,0x0E,0xCE,0xC0,0xAA,
+0xCE,0xBE,0xA0,0x5A,0x79,0x2C,0xEB,0x65,0x6E,0xB1,0xFF,0xAB,0x68,0xEA,0x9F,0x7F,
+0xA5,0x3F,0x6C,0x02,0x9E,0xB2,0x99,0x64,0xB4,0xB7,0xE4,0xDF,0xD8,0x4B,0x6A,0xBE,
+0x8F,0x5E,0x7B,0xEC,0xDD,0xC3,0xEA,0x12,0x99,0x2C,0x44,0x53,0x55,0x85,0x10,0xA1,
+0xA8,0xC2,0x05,0xAA,0x10,0xE8,0x5F,0x32,0xEB,0x43,0x52,0xDA,0x7B,0xC3,0x97,0x61,
+0xA3,0x89,0xD5,0xF1,0x82,0x7D,0xB9,0xE1,0xFE,0x65,0xCC,0xB2,0xD9,0x8E,0x7C,0xE3,
+0x4C,0xF3,0x4B,0xF8,0xCD,0xA8,0x0F,0x95,0x43,0x2A,0x5F,0x27,0xDA,0x44,0x60,0x83,
+0xBD,0xA0,0xDD,0xE2,0x1C,0x4C,0x9A,0x30,0xE0,0xD7,0x80,0xAF,0x18,0x6C,0xFA,0x54,
+0xE5,0x38,0xC5,0x2A,0x17,0xC0,0xF6,0x72,0xA3,0x9B,0x47,0xB8,0xB8,0x2E,0x1B,0xEB,
+0x92,0x9C,0xC4,0xC5,0x61,0x6D,0xAD,0x9F,0x9C,0x1E,0xA4,0xD8,0x88,0x75,0x2E,0x67,
+0x4E,0xFF,0x8E,0x5C,0x06,0x7A,0x81,0x3C,0x61,0x01,0x90,0x90,0xBD,0xA5,0x29,0x0B,
+0x94,0x2A,0x7D,0x36,0x71,0x06,0x48,0x18,0x1B,0xE6,0x34,0xA6,0xB7,0x15,0xAB,0x84,
+0x33,0xF7,0x2D,0x76,0xF2,0x29,0xD9,0x85,0x87,0x9E,0x08,0x4E,0x10,0xD3,0x72,0xE6,
+0x3D,0xE1,0xF3,0xE4,0x58,0x15,0x40,0x06,0xCB,0x62,0xA0,0x62,0x12,0xDC,0x78,0xDB,
+0xA6,0xD4,0xDB,0x38,0x1E,0x3B,0xC7,0xC6,0xD2,0xE8,0x31,0xFB,0xAE,0x8C,0x21,0x15,
+0xF8,0xFA,0x7A,0x03,0x50,0x3F,0xE3,0x7B,0x53,0x3E,0x21,0xC4,0x72,0xB9,0x09,0x8E,
+0x6A,0x88,0x47,0x20,0x16,0x11,0x64,0xBB,0xA5,0xB5,0xC7,0xF9,0x1C,0x22,0xDE,0xE9,
+0x55,0x8B,0x88,0x86,0x73,0x71,0x15,0xEE,0x8A,0x24,0x5A,0x7A,0x2D,0xBC,0xFD,0x38,
+0x96,0x26,0xB8,0x92,0x3A,0x5D,0x98,0x13,0x4D,0x8C,0x6D,0xD9,0xB9,0xEB,0x0D,0xB6,
+0x4A,0x45,0xF2,0x0B,0x76,0x2E,0xE1,0x58,0x41,0x20,0x62,0x28,0xD7,0x70,0xDA,0xD1,
+0x05,0xB3,0xF7,0x2F,0xC7,0xF5,0xF1,0x1E,0xAC,0x2B,0x28,0x83,0x4E,0x13,0x90,0x0D,
+0x88,0x0F,0xB0,0x81,0x2F,0x69,0x89,0x22,0x7E,0xA5,0x81,0x48,0x0D,0x04,0xDC,0xCA,
+0xA7,0x33,0xA9,0xA6,0x0E,0x50,0x22,0x41,0xE3,0xCB,0xE0,0x65,0xA7,0xF6,0xBF,0xFA,
+0xB2,0x51,0x71,0xEE,0x37,0x28,0xCF,0xD8,0x8F,0x16,0xBA,0xF1,0x00,0x30,0x66,0x98,
+0x2E,0x35,0x92,0x5F,0x77,0xFF,0x73,0x91,0x24,0x63,0xD7,0xC6,0xE5,0x24,0xE5,0x60,
+0x2F,0xD2,0xE0,0xC1,0xE8,0x1F,0xC2,0x89,0x0C,0xCA,0x97,0xC1,0xBA,0x21,0x11,0xD6,
+0x3B,0x57,0x4A,0x17,0xED,0x40,0x36,0x3F,0xEA,0x55,0x0F,0x1F,0x49,0x97,0xA8,0xD0,
+0xF4,0xE0,0x61,0x35,0x40,0x54,0x06,0xFC,0x5B,0xB6,0x93,0x7B,0x47,0x69,0x0E,0xE2,
+0xDD,0x6A,0xC1,0xE1,0x68,0x96,0x9C,0x2B,0xCF,0x46,0x1D,0x2C,0x26,0xC9,0x69,0xEA,
+0x23,0xC8,0xFB,0xF7,0x47,0x7C,0xAF,0xBC,0x91,0xA4,0xF6,0xEC,0x23,0x42,0x5B,0x0A,
+0x46,0x5F,0xE9,0x3D,0x18,0xC2,0xFC,0x4F,0x82,0xAC,0xE8,0xC5,0x6C,0xA4,0xBB,0xC2,
+0xBF,0xAC,0x18,0x46,0xE7,0x1D,0xC8,0xB4,0xEF,0x67,0xEF,0x94,0xB5,0x1A,0xA1,0xB9,
+0x37,0x4D,0x51,0x21,0xA2,0x95,0x80,0x4B,0xAF,0x37,0x48,0x49,0x79,0xCC,0x9D,0x5C,
+0xCD,0x55,0x17,0x60,0x54,0xB1,0x85,0x04,0xED,0x6D,0xD2,0x9B,0xBF,0xAA,0x23,0x36,
+0x6C,0x3E,0xFE,0xD3,0xD7,0x9E,0x14,0x99,0x6B,0x83,0x1F,0x20,0xD6,0xB5,0xCC,0x8C,
+0xEC,0x7F,0xD0,0xD5,0xE5,0x6A,0x95,0x42,0x74,0x27,0x0E,0xF8,0x4A,0x5D,0xB4,0xB0,
+0x74,0xA1,0x4F,0x33,0x84,0x84,0x82,0x68,0x25,0x75,0x8A,0x03,0xDF,0xCF,0x52,0x63,
+0x87,0xFE,0x1C,0x8D,0xB7,0xA1,0x91,0x7A,0x65,0x25,0x2D,0xDE,0x0A,0x80,0xE4,0x17,
+0x39,0x5B,0x8F,0xB3,0x1D,0x9D,0x08,0xF9,0x48,0xBE,0x8D,0x52,0xCA,0xA7,0x74,0xFD,
+0x73,0xF0,0x84,0x5E,0x74,0x59,0xBC,0xAE,0x6F,0xA7,0xA2,0x6E,0x8E,0x34,0x00,0xE7,
+0x72,0x48,0xA4,0xC3,0x8A,0xEB,0x73,0xE8,0x0F,0x4D,0x55,0xB2,0x2E,0x8B,0x2E,0xFE,
+0x4A,0x4F,0x79,0x47,0x5D,0xAB,0x3A,0x54,0xF8,0xCB,0xC2,0x47,0xDC,0x21,0x1E,0x9D,
+0xB7,0xEC,0xA6,0xCF,0xAB,0x96,0xDC,0xDF,0xFE,0x42,0xF9,0xBE,0xAA,0x8C,0xF3,0xC6,
+0x5F,0xB0,0x70,0x00,0xB8,0xBF,0xC2,0xD7,0x6B,0xD1,0xB6,0x03,0x0C,0x14,0x72,0x9A,
+0xF0,0x42,0x2B,0x73,0x33,0x30,0x5D,0x83,0x5F,0x83,0x0C,0x0E,0x67,0xA7,0xD3,0x73,
+0xD9,0x71,0xC7,0xE2,0xBB,0x75,0xA2,0xCB,0xC5,0x2D,0x49,0xB1,0x57,0x24,0xFE,0xAF,
+0x77,0x6C,0xEB,0x35,0xDF,0x5E,0x4A,0x9E,0x28,0xA7,0xC5,0x72,0x9C,0xF6,0x57,0x21,
+0xBD,0xEE,0x9B,0xC0,0x34,0xB4,0x80,0xBB,0x36,0xD4,0xB8,0xCA,0x1C,0x7F,0xF5,0x7F,
+0x69,0x7E,0xA8,0xD9,0xE6,0x7F,0x29,0x35,0xE6,0xB8,0xBF,0xFF,0xD1,0x54,0xD5,0xCA,
+0x34,0x09,0x5E,0xDB,0x62,0xCB,0xD9,0xD1,0x1A,0x7C,0x44,0x86,0x2A,0x05,0x51,0x98,
+0x11,0xE2,0x94,0x31,0x85,0xD0,0x1C,0x58,0x9D,0x9E,0xB3,0x27,0x32,0x44,0xAB,0xDE,
+0xE9,0x65,0x04,0x4F,0x51,0x5A,0x35,0xF8,0x7D,0xDF,0x68,0x91,0x8D,0x4C,0x19,0x56,
+0xF1,0xAD,0x5C,0xD7,0x46,0x3D,0x96,0xD4,0x39,0xE9,0xB2,0xC8,0x6F,0x8D,0xAE,0xD0,
+0x01,0x39,0xD2,0x80,0x12,0x4D,0xF2,0xB4,0x7B,0x56,0x53,0x68,0x3B,0xBF,0x1F,0xEF,
+0xDA,0x8F,0x93,0x60,0xFA,0x6D,0x58,0x8D,0xC9,0x2F,0x8C,0x15,0xB0,0xBA,0xFF,0xDD,
+0x25,0x3D,0x6F,0xCE,0x20,0x19,0x43,0x8B,0x17,0xB7,0x13,0xF3,0xED,0x73,0xFA,0xD3,
+0xDB,0x60,0xE4,0xC4,0xE1,0xFB,0xF4,0x0D,0xB9,0x4B,0xEC,0x41,0xA2,0xA6,0x8E,0x65,
+0x0A,0xD4,0x98,0x2B,0x82,0x54,0xC1,0x60,0x6A,0x18,0x24,0xD2,0x0A,0xED,0xFB,0xA1,
+0xA8,0x11,0x92,0x87,0x01,0x64,0xEC,0xBC,0xB2,0x09,0x80,0xCD,0x10,0xDB,0xF7,0xBA,
+0x95,0x32,0x00,0xF5,0x10,0x42,0xCF,0xBE,0xEC,0x33,0x41,0xA2,0xC7,0xC6,0xDB,0x14,
+0x3D,0xF5,0x37,0x56,0x9F,0x83,0xED,0xCE,0x86,0x5B,0x3A,0xC0,0xCC,0x4A,0x99,0x78,
+0x6B,0x6F,0x8B,0xFF,0xAA,0x53,0x81,0xC9,0xA3,0x47,0xF7,0x77,0xB5,0xE5,0x49,0x29,
+0x00,0xD6,0xA5,0x24,0xDD,0x51,0x77,0x94,0x5C,0xBC,0xC3,0xA8,0x5B,0x80,0xFC,0x6A,
+0x4E,0x84,0x41,0x15,0xE9,0x44,0x46,0x85,0xE9,0x85,0xB5,0xFD,0xE0,0x06,0x31,0x84,
+0x36,0x18,0x7D,0xFD,0x1E,0xBC,0xFD,0x18,0xE8,0x4C,0x27,0x2C,0x2F,0x5A,0xE7,0x6C,
+0x51,0x79,0x75,0x5D,0x78,0x98,0x28,0x47,0xB8,0x82,0x7E,0x90,0xE7,0x2E,0x71,0x2D,
+0xAB,0xEF,0xC6,0x05,0x23,0xD3,0x23,0x97,0x08,0x0D,0xFC,0x9A,0x8B,0xB5,0x90,0x6D,
+0x30,0xC2,0x66,0x89,0xAE,0x1D,0x3C,0xED,0x69,0x27,0xEB,0x74,0xC8,0xC4,0xE6,0x1E,
+0xE2,0x88,0x4E,0xE4,0xAF,0xD8,0x61,0xFB,0xDF,0x21,0x52,0x87,0xD4,0x0B,0x63,0x3E,
+0xC4,0x9D,0xD0,0x8C,0x0D,0x95,0xE3,0x10,0x94,0x2A,0x82,0xDC,0x46,0x9E,0xB0,0xD8,
+0x50,0x96,0x02,0xF9,0x6E,0x3A,0xD6,0x7D,0xF6,0x3F,0x5A,0x94,0x4A,0x3A,0xB2,0x1D,
+0xAD,0x35,0xDD,0x71,0xAC,0x12,0x01,0xE7,0xA5,0xCE,0xCC,0x8E,0x9B,0xDE,0x17,0x88,
+0x99,0xEA,0x26,0x8E,0xFE,0x23,0xE5,0xA9,0xCA,0x10,0x43,0xB3,0x37,0x1B,0x1D,0x2A,
+0x1C,0xD5,0xC5,0xEE,0xCE,0x78,0x69,0x9C,0x6E,0x67,0x42,0x5C,0x41,0xB6,0xF0,0x71,
+0x61,0x6D,0xB6,0xF0,0xC1,0x43,0x06,0x2C,0x7C,0x16,0xFA,0x40,0x27,0x70,0x9A,0xCF,
+0x86,0x17,0x12,0xC6,0xCB,0xF3,0x89,0xAE,0xA9,0xCC,0x09,0x2A,0x50,0x0C,0xBE,0x06,
+0xE5,0xBD,0x22,0x34,0x64,0x8A,0x59,0xFF,0xB7,0xBF,0x74,0x92,0x0E,0x63,0x84,0xC7,
+0x19,0xF1,0x8A,0x18,0x66,0x85,0x64,0xF5,0xA1,0xB1,0xAA,0x00,0xA4,0x5F,0x07,0x5E,
+0xB9,0x25,0xA3,0x92,0x04,0xEF,0x0C,0x8E,0xAC,0x7A,0xFD,0x75,0x06,0x49,0xF9,0x64,
+0x6F,0xA4,0xB3,0xAD,0xD8,0xDA,0x97,0xA6,0x82,0x24,0x5C,0x4E,0x48,0x4D,0x44,0x40,
+0xA3,0xFC,0xD8,0x2C,0x5B,0xEA,0xBA,0x7A,0xDD,0xD7,0x0F,0xF0,0x25,0x07,0x6C,0x92,
+0x32,0xD3,0x45,0xAF,0x6A,0x74,0x6B,0x59,0xDE,0xE8,0xC0,0x56,0x40,0x67,0x39,0xE3,
+0xA7,0x37,0xE0,0x7E,0xA1,0x26,0x53,0x5D,0x13,0xC8,0x75,0x7D,0x20,0x58,0xDA,0x66,
+0x0B,0x3B,0xEF,0x8F,0xCF,0xBD,0x34,0x8A,0x70,0x14,0x3F,0xE4,0x6C,0x2B,0x91,0x1F,
+0x22,0x08,0x03,0x1E,0x7B,0x52,0x48,0x5B,0x59,0x0A,0x37,0xF7,0x79,0x1F,0xA0,0x0E,
+0xAC,0xDA,0xAA,0xD5,0x38,0x45,0x8F,0x17,0xE5,0x87,0x70,0x59,0x91,0x83,0x9C,0x76,
+0x91,0xF9,0x38,0xA7,0x76,0x66,0x1A,0xE1,0x07,0x30,0xF6,0x98,0x61,0x5E,0x5A,0x48,
+0x4C,0x95,0x62,0x33,0xD1,0xA0,0x78,0x38,0x65,0x25,0x2E,0xD0,0x58,0x26,0xC3,0xA5,
+0x4D,0x7A,0x15,0x97,0xCC,0x77,0x54,0x96,0x84,0xAD,0x67,0xB7,0xBE,0x69,0x0B,0x45,
+0xE4,0x52,0x55,0x90,0x93,0x72,0xE2,0x62,0x63,0xAC,0x15,0x29,0x21,0x89,0x13,0xF4,
+0x31,0x2D,0x11,0x2D,0x31,0x3F,0x60,0x89,0xB6,0x76,0xE6,0x43,0x16,0x22,0x7E,0x81,
+0xD2,0x9C,0x8D,0x49,0x3F,0xC1,0x52,0x2F,0x01,0xB9,0xCD,0x61,0xBB,0x36,0xBD,0xB1,
+0x23,0xE7,0x74,0xBA,0x55,0x14,0x88,0xDC,0x9E,0xA1,0x7C,0x81,0x11,0x0A,0x3E,0x28,
+0xC1,0xB9,0x9F,0x7A,0x50,0x9F,0x68,0xEE,0x3C,0x5F,0x46,0x97,0x3E,0xE0,0xA9,0x1B,
+0xE0,0x99,0x6D,0xC2,0xC3,0x4C,0x3B,0x26,0xFA,0x3D,0x9F,0x30,0xB1,0x6B,0x36,0x4F,
+0x2B,0xF4,0x6A,0x93,0x1A,0xF2,0x40,0x3C,0x09,0xC4,0x6E,0x4B,0x4E,0xB4,0xCD,0x7B,
+0xEA,0x9B,0x50,0xCD,0xC9,0xFC,0xB4,0xA4,0x03,0x4F,0x90,0x16,0x02,0xC7,0x86,0x02,
+0xB0,0xD9,0xCA,0x1F,0x0F,0x9A,0xDE,0x1A,0x1B,0xB5,0xD6,0x57,0xF4,0xE3,0xC9,0x07,
+0xA0,0x02,0x8C,0xAE,0x3C,0x0B,0x32,0x33,0x29,0x6E,0x57,0xA3,0xB3,0x1C,0xC0,0x12,
+0x04,0x1D,0x9D,0x76,0xA0,0xE3,0x0E,0x4B,0x68,0xEE,0x79,0xA5,0x81,0xE8,0x1B,0x93,
+0xA2,0x13,0xAF,0x88,0x7C,0xD6,0x95,0x63,0xA8,0x05,0x9B,0xFB,0xE1,0xD7,0xF8,0x16,
+0xF2,0x53,0x08,0x55,0xA9,0x99,0xE1,0xD5,0xF7,0xF6,0xC8,0x45,0xD2,0xF2,0xEA,0x05,
+0x20,0x19,0x20,0x38,0xF8,0x62,0x65,0x87,0xA6,0xF1,0x03,0x28,0x22,0x2F,0x2C,0x3B,
+0x39,0x3E,0x0F,0x04,0xBC,0xF1,0x7F,0xF3,0x0D,0xBB,0x08,0xC5,0x4B,0xEB,0x7B,0x8F,
+0x60,0x93,0xF1,0xD6,0x7A,0x77,0x42,0x0B,0x9A,0xEF,0x7D,0x21,0x6A,0xC5,0x6B,0xC9,
+0x95,0x59,0x73,0xA6,0x5F,0xBD,0xA9,0xE1,0xE9,0x57,0x63,0x5C,0xC8,0x9B,0xE2,0x49,
+0x26,0x14,0xDF,0x16,0x67,0x60,0xAE,0x65,0xBE,0x93,0x0A,0xE8,0xEE,0x97,0x3A,0x32,
+0xB7,0x3D,0xEC,0xFA,0x2F,0x9F,0x26,0x20,0x10,0x2C,0x90,0xAD,0xC3,0x4B,0xB9,0x02,
+0x9A,0x53,0x71,0x9B,0x3B,0xE1,0x36,0xC3,0x7F,0x23,0xAB,0x1D,0xCE,0x22,0x11,0xFF,
+0x55,0xBB,0x2D,0x4D,0x33,0xFF,0x25,0xEA,0xEC,0x9E,0x3E,0x52,0x4F,0x7E,0x89,0x59,
+0x96,0x96,0xD5,0x99,0x0C,0x4E,0x17,0xBE,0x70,0x2F,0x5A,0xB1,0x13,0x1A,0x16,0x7B,
+0x12,0xAE,0xD2,0x44,0xB0,0x07,0xC0,0xFE,0xF6,0xDA,0xAD,0x26,0x23,0x79,0xBC,0x89,
+0x35,0x3E,0x12,0xAE,0x69,0x65,0x67,0x38,0x12,0x88,0x9C,0x68,0xC2,0x39,0x27,0xE5,
+0x9B,0xC1,0xA0,0x52,0x6F,0x7E,0xBD,0x4C,0x8A,0x6E,0x42,0xF7,0xC7,0x37,0xEE,0xB8,
+0x82,0x15,0x30,0x61,0x30,0xAB,0xDB,0x68,0xD4,0x55,0x6C,0x56,0x93,0x34,0x10,0x3A,
+0xD5,0xE5,0xA4,0xEF,0x50,0xCF,0x8F,0x18,0x6B,0xF5,0x2E,0xB7,0x22,0x0B,0x22,0x6E,
+0x64,0xF5,0x7F,0xA9,0xBC,0x21,0x18,0x85,0xA3,0xBA,0xC8,0x57,0x96,0x3A,0xD9,0x67,
+0x1A,0x0D,0xF8,0x39,0x1C,0x08,0xCC,0x0F,0xE2,0x0C,0x28,0x8C,0x24,0xB2,0xD1,0xD8,
+0x8C,0x8D,0xE3,0x95,0xD1,0x14,0x7B,0x2A,0x85,0x62,0xB3,0x5B,0xE8,0x2E,0xC9,0x84,
+0x8E,0xD0,0x94,0x63,0x35,0xE4,0xFF,0x9E,0x41,0x1B,0x4F,0xA0,0x6C,0x7C,0x98,0x7F,
+0x71,0xE4,0x4B,0x98,0x70,0x4A,0x40,0x04,0x81,0x35,0x09,0x27,0xC1,0x8E,0x1D,0x0E,
+0x40,0xAA,0x19,0x7C,0x61,0x7B,0x74,0x11,0xB8,0x60,0xBC,0x51,0x0C,0x60,0x9B,0xB5,
+0x03,0xD9,0x68,0x0A,0x2A,0xD0,0x02,0xD6,0x66,0x5D,0xD3,0xDE,0xA4,0x9C,0xD7,0x99,
+0xAA,0x8F,0xF2,0xB6,0x2D,0xBC,0x37,0x06,0x7A,0xEA,0xF6,0x13,0x74,0xCD,0x78,0xE0,
+0xD2,0x4C,0x8C,0xAF,0x58,0xD1,0x9C,0x31,0x34,0x50,0xE7,0x64,0xCA,0x5E,0x46,0x45,
+0xA0,0x71,0xAF,0x3D,0x5A,0xF2,0x8D,0x17,0x0E,0x3F,0xB9,0xA5,0xE6,0xF0,0x5B,0x92,
+0x91,0x3F,0xFD,0xD9,0xE9,0xC9,0x7C,0xAE,0x76,0xDC,0xEC,0x08,0xB3,0x81,0x3B,0xF7,
+0x7E,0xEE,0x49,0xA5,0x84,0xFC,0x1F,0x01,0x25,0x4F,0x3F,0xC0,0xC6,0x45,0x70,0x5F,
+0xAC,0xB4,0x0B,0x3F,0x99,0xEB,0xF3,0x6F,0x02,0x09,0xA3,0xBE,0x8F,0xF9,0xA7,0x1F,
+0x24,0x49,0xA8,0xE0,0x03,0x3C,0x31,0x47,0xF3,0x13,0xF0,0x28,0x2A,0x6C,0x43,0xCE,
+0xB1,0x06,0x15,0x73,0x1F,0x5C,0x32,0x8D,0x1C,0x1A,0x8A,0xB6,0x5E,0xDA,0x96,0x81,
+0xD9,0x20,0x00,0xED,0xF4,0xDE,0x90,0xC0,0x17,0x41,0xC1,0x66,0x8D,0x3C,0x03,0x13,
+0x50,0x4F,0x72,0xFB,0x73,0x1E,0xBE,0x86,0x30,0x07,0x5D,0x18,0xAD,0x89,0x28,0xDE,
+0xDC,0xD4,0x5F,0x5B,0x09,0x01,0x33,0x48,0x1A,0xE9,0x3C,0x0F,0xDB,0xFA,0x59,0x9D,
+0xA8,0xD2,0x85,0x40,0xFC,0xC0,0x83,0xE9,0x71,0xB1,0xBD,0xC3,0xDA,0x88,0xC7,0x7A,
+0x08,0xB5,0xE4,0x48,0xA3,0x15,0xE5,0xCD,0xBF,0x0D,0xED,0x9A,0x4C,0xC9,0xB3,0xB2,
+0xC7,0x5D,0xB8,0x9E,0x6A,0x31,0x99,0xBA,0x47,0xE8,0xF9,0x19,0xC4,0x80,0xD4,0x53,
+0xF8,0x8B,0x39,0x8E,0x42,0xAA,0x45,0x8F,0x19,0xD3,0xD7,0xB8,0x79,0xA4,0xD0,0x1D,
+0x61,0x01,0x20,0x1F,0x1B,0x64,0xF9,0xDF,0x82,0x0F,0xE2,0x90,0xB9,0x23,0xFE,0x5B,
+0x4D,0xFD,0x6C,0xB7,0x11,0x59,0xFB,0xD0,0x8C,0x9D,0xF4,0x4E,0x3A,0xBA,0xC2,0xF1,
+0xA5,0x85,0xF0,0x8B,0xC8,0x3B,0x5C,0x16,0x2B,0xDD,0x29,0x1E,0xA7,0x2B,0xED,0x72,
+0x93,0x62,0x8A,0x2F,0x4A,0xB4,0x56,0xA6,0xF1,0xB7,0xFC,0xED,0x83,0xE2,0x91,0x05,
+0xDB,0x7D,0x77,0x1B,0x4D,0xD8,0x63,0x76,0x2D,0x2E,0x9F,0xA7,0x20,0xCE,0x86,0x62,
+0xBB,0xF8,0x48,0xF8,0x78,0x54,0x53,0x2D,0x5A,0xC1,0x3B,0xA6,0xCD,0x95,0x2B,0x14,
+0xF2,0x75,0x64,0x05,0x05,0x27,0xEB,0x33,0x0D,0x05,0x52,0x12,0x67,0xAC,0xC3,0x34,
+0x66,0xA8,0x08,0x5F,0xDC,0x45,0x4C,0xF5,0x18,0x4D,0x30,0xCA,0xFE,0x41,0xBB,0x0D,
+0x4B,0xC6,0x95,0x3E,0xBF,0x75,0xE6,0x07,0x37,0x6A,0x0C,0xD3,0x9D,0xEA,0x82,0x2C,
+0x80,0x48,0x47,0x97,0xF3,0xB2,0xA5,0x10,0xBA,0xC4,0xB0,0x94,0xA1,0x92,0x1E,0xC4,
+0x2B,0x43,0xAA,0xDD,0xB9,0x6E,0x3C,0x73,0xF5,0xE0,0x46,0x91,0xE7,0x82,0xC5,0x75,
+0xDA,0xEF,0xA6,0xD2,0x6E,0x09,0x52,0xE8,0x29,0x79,0x25,0xDB,0xAC,0xFB,0xB6,0x39,
+0x79,0x47,0x61,0xE5,0x9E,0x87,0xC6,0xBF,0xEA,0x6D,0x88,0xEB,0x51,0x76,0x9A,0x70,
+0xFA,0xD6,0x4E,0x78,0xBD,0x56,0xF7,0x21,0xD5,0xCB,0x8B,0x24,0x04,0x07,0xFA,0x15,
+0x97,0x04,0x04,0x50,0xC2,0x06,0x5E,0x19,0x00,0xAD,0xAF,0x7B,0x0B,0xAB,0xF6,0xE4,
+0xC6,0xCF,0x69,0x57,0xD8,0x7D,0x87,0xA7,0xF9,0xD6,0x5C,0x8A,0xF0,0x9F,0x29,0x1B,
+0xEF,0xC7,0x7A,0x49,0x38,0xB5,0xC8,0x41,0x9C,0x1C,0xCB,0x98,0x03,0xCC,0x97,0x44,
+0x2F,0x25,0x24,0xA2,0x0A,0x55,0xCD,0xCA,0x62,0x0A,0x69,0xA2,0x94,0xFF,0x7D,0x6B,
+0x78,0xD5,0xB0,0x2C,0x6D,0x5D,0xAC,0x6A,0x4B,0xDE,0xE3,0x02,0x43,0x65,0xBF,0x43,
+0x1C,0x36,0x01,0xB0,0xCB,0x6F,0xA2,0x94,0x84,0xFC,0x54,0x29,0x80,0x55,0xAB,0xEE,
+0xC2,0xA9,0xE7,0x28,0x72,0x69,0x51,0x22,0x90,0x2A,0xD1,0x83,0x36,0xA1,0xF4,0xEB,
+0xC5,0x00,0xCF,0x68,0x86,0xDF,0x0E,0x27,0x91,0xB4,0x36,0xF1,0x2E,0x10,0x14,0x74,
+0x6D,0xC4,0x84,0x1D,0x63,0x58,0x65,0x37,0xCC,0xB5,0xF3,0xE7,0x11,0xDF,0xB2,0x77,
+0x51,0xDD,0xA3,0x32,0x17,0x42,0x21,0xA4,0x86,0x58,0x58,0xEC,0x46,0x6B,0x76,0x1E,
+0xDD,0x46,0x8E,0x92,0x87,0xA8,0xE1,0x83,0x38,0x66,0xFD,0x7F,0xC5,0xF2,0x4A,0xB4,
+0x00,0x16,0xCE,0x35,0x31,0xDC,0x34,0xCC,0xCB,0xD8,0xA2,0x2C,0xD7,0xE1,0x6F,0x87,
+0xFB,0x44,0x9F,0xB1,0xD7,0x0F,0xA1,0x5E,0x53,0x3E,0x7C,0xB3,0xFD,0xF6,0x81,0xE6,
+0x23,0xE0,0x80,0xA0,0xAF,0x33,0x3D,0xB6,0xD3,0x38,0x3D,0x9D,0x26,0x77,0x75,0xD4,
+0x98,0x0E,0x06,0x6D,0x40,0x89,0x54,0xA9,0x72,0x8B,0x56,0x74,0xBB,0xE6,0x5A,0x57,
+0x4A,0x54,0x44,0xF7,0xFE,0xE3,0x92,0xCF,0x88,0xCA,0x4E,0x32,0xF4,0xE3,0x7E,0xA1,
+0xDA,0xF6,0x34,0xF7,0x64,0x3E,0xE5,0xDB,0xC5,0x3A,0x24,0x50,0x21,0x1E,0x68,0x15,
+0x2C,0xF3,0x10,0xB8,0x22,0xC4,0xA4,0xC3,0xAF,0xFC,0x42,0xEE,0xBB,0x44,0x2A,0xC7,
+0x6B,0xE6,0xEF,0xB1,0xA3,0x1F,0x50,0xF1,0x43,0xCF,0xD3,0xC7,0xFD,0x54,0xF1,0x76,
+0x59,0x67,0x1B,0x6A,0x8D,0x9F,0x56,0xB0,0x7F,0x53,0x3B,0xBF,0xEC,0xF0,0xEE,0xAE,
+0x39,0xE2,0x24,0x89,0x6F,0x74,0x08,0x70,0xE4,0x8F,0x0E,0x97,0xDE,0x56,0xE0,0x50,
+0x0A,0xF1,0x01,0x9B,0x3C,0x87,0xB6,0x2F,0x90,0x5A,0x41,0x21,0x79,0x06,0xA0,0x8D,
+0xFA,0xCF,0xDC,0x5D,0xF7,0x80,0xDB,0x7E,0x14,0x0B,0xBA,0x73,0x51,0xD4,0xEA,0xE0,
+0x93,0x7B,0x18,0x0A,0xFC,0xCA,0x36,0xD5,0x0E,0x4F,0x29,0x07,0x7E,0xCD,0xCD,0xDC,
+0x66,0xB1,0x9A,0x7A,0x93,0xDC,0x44,0x5C,0x25,0x3F,0xAF,0x62,0x64,0xB9,0x89,0x4F,
+0xF9,0x00,0x7A,0x62,0xE1,0xDD,0xDA,0xBB,0x93,0x60,0xAA,0x96,0x24,0x10,0xA1,0x48,
+0xCE,0x75,0xD1,0x0F,0x12,0x07,0xB0,0x6E,0x11,0xC2,0xE7,0x7D,0x60,0xC5,0xDE,0xF5,
+0x63,0x45,0xC5,0xCC,0x39,0xC8,0x92,0xD9,0x23,0xCC,0x19,0xDB,0xFC,0x26,0x6F,0x91,
+0xC9,0xDC,0xF9,0x4F,0x88,0xD0,0x72,0x46,0xF9,0xA6,0xCC,0x28,0x05,0xD7,0x14,0x62,
+0xE6,0xEF,0x13,0xD8,0xB2,0x2E,0x64,0xE4,0x19,0xA3,0x47,0x1A,0xEE,0x35,0x4A,0xA2,
+0x69,0xBB,0x98,0x47,0x6B,0x4C,0xC3,0x22,0x4A,0x30,0x94,0xD2,0x1C,0x14,0x6A,0x1A,
+0x96,0x8F,0x47,0xBC,0x9A,0xB5,0xB8,0xD1,0x31,0xE9,0x2A,0xC8,0x1B,0xDF,0x07,0x4B,
+0xFD,0x66,0xF4,0x1D,0xFB,0xA6,0x03,0x05,0xCB,0xA8,0x32,0x8E,0xA9,0x57,0x0F,0xF4,
+0x98,0x17,0x94,0x48,0x34,0x99,0xA5,0x06,0x1A,0x99,0xAC,0xAD,0x34,0xC6,0x20,0x77,
+0xF8,0x92,0xAB,0xAB,0x81,0xB9,0x8E,0xCB,0x22,0x52,0xFE,0xA9,0x91,0x53,0xC4,0xA6,
+0xB4,0xEB,0xD8,0xE0,0xCB,0x65,0x17,0xA8,0x45,0x3C,0x65,0x7E,0x9E,0xFF,0xC8,0x57,
+0xA1,0xFA,0xEC,0xD1,0xC3,0x7B,0x04,0x81,0x39,0x88,0x8A,0xAF,0x72,0xD6,0xFB,0xC6,
+0x49,0x82,0x70,0xED,0x84,0xF6,0xAA,0x3D,0xFE,0xCB,0x9D,0xE3,0xDB,0x58,0x29,0x0D,
+0xB9,0xBC,0xAD,0x2B,0x02,0x41,0x6B,0xDF,0x6B,0x85,0xBE,0x15,0x49,0x65,0x0A,0x7F,
+0x80,0x51,0xD5,0xB2,0xDA,0x54,0x23,0xBD,0x09,0x22,0x78,0xCC,0x13,0xB8,0x66,0xEB,
+0xEF,0xDE,0xE8,0x6C,0xB7,0x61,0x40,0x12,0x94,0x0D,0xFB,0x5D,0x57,0x6D,0x19,0x56,
+0x99,0x85,0x45,0x81,0xB6,0x16,0xAF,0xB6,0x18,0x3D,0xA0,0x68,0xB4,0xE8,0x26,0x36,
+0xFF,0x3B,0x83,0xEB,0x0E,0x67,0xB3,0xA4,0x77,0x32,0x9B,0xD8,0xC7,0x95,0x9E,0x28,
+0x88,0xF2,0xFF,0xCF,0xFD,0xBD,0xD9,0x71,0xF8,0x38,0x2B,0x5A,0x63,0x72,0xE4,0x1E,
+0xD6,0x33,0x90,0xF5,0x80,0xCE,0x61,0x6F,0x28,0x97,0x52,0x0B,0x53,0x11,0x4E,0xEC,
+0x7C,0xAA,0xAC,0x76,0x5E,0xC0,0xF3,0x79,0x15,0x95,0x5D,0x01,0xFB,0xED,0x02,0xC0,
+0xDE,0x90,0xBA,0x88,0x09,0x0B,0x86,0x74,0x7D,0xF7,0x37,0x7A,0xD2,0x4D,0xD6,0x4A,
+0x90,0xB4,0xBE,0x35,0xA8,0x55,0xBD,0x5A,0xE6,0x2B,0x02,0x52,0xC2,0x9B,0x57,0x75,
+0xF7,0x98,0xA9,0x96,0xD3,0x3D,0xDF,0x30,0x8C,0xED,0x64,0xEC,0x0C,0xC2,0xEB,0x25,
+0x3F,0xD9,0xDD,0x00,0x8A,0xF3,0x63,0x60,0x59,0x8B,0x40,0xB3,0x04,0xA5,0x8A,0x85,
+0x53,0x99,0x46,0xE1,0x08,0x7C,0x69,0xD0,0x52,0xD0,0x0B,0x63,0xB7,0x5F,0x1C,0xDD,
+0x10,0xEA,0x37,0x97,0x1F,0x56,0x87,0xB1,0x4D,0x5D,0xC5,0x19,0x17,0xC4,0x31,0x51,
+0x0C,0xCA,0xF8,0x12,0xA6,0x50,0x74,0x07,0x10,0x5C,0x00,0x0F,0x3F,0x16,0x7B,0x3C,
+0x9E,0x2C,0x6D,0xC1,0x76,0x5B,0x2F,0x4C,0x92,0xFE,0x4D,0xE4,0xA1,0x30,0x6E,0x54,
+0x92,0xE9,0xC9,0xC3,0xAE,0x4E,0x67,0x2E,0xA7,0x9D,0xE2,0x89,0x73,0xA4,0x65,0x21,
+0x43,0x7C,0x2D,0x66,0x38,0xBF,0x7D,0x7D,0x70,0x5F,0xCA,0x13,0xAC,0x59,0xC6,0xA9,
+0x7A,0x91,0x55,0xFF,0x18,0x3A,0xB2,0x61,0x85,0x12,0x23,0xF9,0x95,0x2F,0x93,0x1C,
+0xD2,0x55,0x1E,0x8A,0xD0,0x69,0x21,0xB2,0xB0,0x71,0x8C,0x94,0xE9,0xFE,0x27,0xF3,
+0xC8,0x4E,0x28,0x86,0x74,0x78,0x3E,0x6A,0x9D,0xF2,0xBC,0x48,0xE3,0x5C,0xE2,0x5F,
+0x1F,0xE0,0x35,0xAA,0xB5,0x42,0x51,0x34,0xBE,0xE3,0x9A,0x4A,0x71,0x61,0xC1,0x2D,
+0x14,0x8C,0xB9,0xE8,0xCE,0x2A,0x33,0x5E,0x9C,0x6C,0x5B,0x3A,0x46,0xC9,0x06,0x8E,
+0x6D,0xDD,0x16,0x38,0x03,0x36,0x84,0x7B,0xF0,0x59,0x8B,0x3D,0xFA,0x9F,0x9C,0x27,
+0x83,0x9E,0x73,0x8D,0x37,0xCD,0x5B,0x84,0x06,0x2E,0x89,0x60,0xD4,0xF4,0x25,0xFC,
+0x38,0x70,0xF5,0x40,0x41,0xF4,0x0E,0x31,0x37,0x1A,0x9C,0x71,0x30,0xBA,0x77,0xCD,
+0x09,0x3E,0xA7,0xA4,0x4B,0xC9,0x0C,0x3E,0x58,0x15,0xA7,0xC1,0xD9,0x9D,0x8D,0x01,
+0xF2,0x6C,0xF6,0x20,0xB0,0x0D,0x75,0xC2,0xA8,0x91,0x13,0x25,0x2F,0xC0,0xFA,0x03,
+0xEA,0x2A,0xB7,0xDA,0x47,0xEF,0xD4,0x45,0x6D,0x76,0x08,0xAC,0xE5,0xE5,0x11,0xE9,
+0x55,0xA2,0xBF,0x68,0x9C,0xAE,0x62,0xA5,0x44,0xA2,0x82,0x0C,0x75,0x1D,0x96,0x97,
+0xB7,0x24,0x7E,0xDF,0x46,0x98,0x3B,0xE1,0xE7,0xB5,0xE5,0x20,0x2D,0x05,0x5E,0x0F,
+0xE3,0x1B,0x4C,0x6E,0xA7,0x27,0x9B,0xA3,0x83,0xE1,0x95,0x40,0xA3,0xF5,0xCA,0x58,
+0x68,0x29,0x49,0x8E,0x78,0x5E,0xE6,0x11,0x29,0x09,0xB5,0x79,0xE2,0x2E,0x7C,0xB8,
+0x35,0x27,0x80,0x8B,0xE7,0xC6,0x00,0xCF,0x32,0xD3,0xC1,0x7F,0x1E,0xD1,0xCE,0x16,
+0xF6,0x0A,0x78,0x5F,0xA1,0x3C,0x41,0xD7,0x02,0x79,0x33,0x1C,0xD5,0x86,0xBB,0x1B,
+0x04,0x69,0xD2,0x6F,0x36,0xBA,0xB4,0x20,0x4B,0xAE,0x73,0xA0,0x08,0xBE,0xBC,0x9F,
+0x72,0x32,0x7F,0x82,0x0D,0x33,0x4D,0x26,0xAD,0x58,0x4E,0x2B,0xD7,0x43,0x1F,0x17,
+0xD4,0x6E,0xE7,0x03,0x42,0xA0,0xF0,0xB3,0xB3,0x4B,0x67,0x23,0x01,0xAB,0x43,0xD8,
+0xBF,0x87,0x54,0xA2,0xF8,0xF2,0xFD,0x87,0x2C,0xC0,0xE8,0x77,0x5A,0x04,0xB1,0xAB,
+0x8F,0x5B,0xD7,0x8F,0xBD,0x5C,0x42,0x1D,0xD3,0x48,0xAD,0x3F,0xB6,0x2D,0x82,0x3A,
+0x44,0xD5,0x05,0x26,0x31,0xD6,0x81,0xF0,0x3B,0x2C,0x86,0x6A,0x9A,0x83,0x9F,0xED,
+0xC4,0x8B,0x8C,0x84,0x4C,0xA5,0x39,0xEE,0xF1,0xC7,0x6C,0x4F,0xEA,0x49,0x1D,0x18,
+0xA6,0x8D,0xCB,0x30,0x57,0xC3,0x1E,0xCC,0x86,0x84,0x73,0xF9,0xC4,0x3B,0xCE,0xF9,
+0x93,0xE1,0x1B,0x37,0xEB,0x95,0xB7,0x56,0xD7,0xFD,0xDC,0x29,0x09,0x27,0xEB,0x4E,
+0xE4,0x17,0x19,0x6A,0xC5,0xFE,0x6C,0xEF,0x94,0x13,0xB9,0x9C,0x3D,0xDC,0x14,0x91,
+0xD0,0x26,0x0C,0x7B,0x21,0xB0,0x5D,0xBD,0x7A,0xA8,0x3F,0x51,0x4B,0xE5,0xA1,0xC4,
+0xD8,0x94,0xB3,0xF3,0x84,0x25,0x8C,0x59,0x9B,0xEA,0x9F,0xEE,0x12,0x2B,0xF1,0x78,
+0xBB,0xA1,0x1C,0x9E,0xF8,0xF4,0x63,0xED,0x5F,0x42,0xD4,0x9B,0xDA,0x78,0x22,0xEB,
+0x38,0x8C,0x2C,0x42,0xF2,0x56,0xCF,0x28,0x44,0x58,0xE2,0x97,0x7E,0x69,0xFA,0xF4,
+0x29,0xAF,0x0A,0x40,0x60,0x6B,0xBD,0x0B,0xEA,0x8F,0xFF,0xBB,0xBF,0x53,0xA4,0x9B,
+0x96,0x01,0x90,0x05,0x2E,0x1C,0xAC,0xB1,0xC0,0x9C,0x32,0x03,0xAC,0x41,0x97,0xBE,
+0x34,0x83,0xDD,0xEE,0xB0,0x3A,0xC4,0xA4,0x26,0x0E,0xA7,0xD0,0x7C,0x4A,0xDC,0xE5,
+0x57,0xB6,0x72,0x83,0x62,0xAE,0xB1,0xAF,0xE3,0x02,0x03,0xD2,0xA4,0x5F,0xBE,0xAD,
+0x95,0x61,0x5A,0x19,0xBD,0x53,0x39,0x0C,0x76,0xD3,0xE7,0x77,0x32,0xAE,0xED,0xB7,
+0x27,0x9D,0xF4,0xE6,0x1D,0xC8,0xB5,0x21,0x92,0x67,0x63,0x87,0xD9,0x2C,0xA0,0x15,
+0x41,0x48,0xD0,0xB9,0x15,0xAF,0x15,0x40,0xD3,0xAF,0x17,0x11,0x80,0xE2,0xF0,0xA9,
+0x1A,0x43,0x9B,0x69,0xA6,0x55,0x4D,0xD6,0x93,0xC3,0x8C,0xF0,0x02,0x6D,0x40,0xA3,
+0x97,0x5C,0x55,0x13,0x06,0xCE,0xC1,0xFB,0xE0,0x80,0xFD,0x86,0x15,0x47,0x21,0x4D,
+0x0A,0x3D,0x78,0x7D,0x4B,0x0E,0x3B,0x7B,0x8D,0x2F,0x9E,0xB3,0xF2,0xE3,0x17,0x37,
+0x82,0xC2,0x3D,0x35,0xA7,0x27,0xAA,0x48,0x51,0x1F,0x1D,0x9E,0xB7,0x4D,0x8D,0x88,
+0xE6,0x2A,0x16,0x60,0x8B,0x89,0x7D,0x55,0xDF,0xD4,0xCF,0x37,0x3B,0xC7,0x60,0x4B,
+0x0D,0xE0,0xFC,0x45,0xFB,0x43,0x88,0xD7,0x81,0x54,0x46,0x95,0x46,0xB4,0x7E,0xF3,
+0xB3,0x13,0xA3,0x16,0xC4,0x8C,0x8B,0x71,0x00,0x66,0xB2,0x4E,0xAB,0x2D,0x47,0x8B,
+0x64,0x5A,0xE3,0xAA,0x19,0xB4,0x0F,0x76,0x63,0x94,0x18,0x7E,0x3C,0xAB,0xB0,0x7E,
+0x92,0xBC,0xDE,0x21,0xC6,0x49,0x87,0xD5,0x38,0xE2,0xB5,0x93,0x07,0x22,0xB6,0x87,
+0x81,0xA2,0xF7,0x29,0x10,0xA1,0x48,0x89,0x64,0x44,0x2D,0x12,0x48,0xB1,0x23,0x3A,
+0x7F,0xF6,0x75,0x2A,0x3C,0x0F,0x9F,0x94,0x2E,0x27,0xB4,0xCE,0x4C,0x89,0x71,0xF1,
+0x2B,0x92,0x05,0x4A,0xB2,0xFF,0xC8,0x00,0x11,0x73,0x86,0x7F,0xAD,0x36,0x33,0x51,
+0xC3,0x38,0x25,0x73,0xF3,0x24,0x28,0xB6,0x23,0xF8,0x83,0x9F,0x72,0x4F,0x81,0x2C,
+0x19,0x23,0x51,0x75,0x0F,0xDB,0x86,0x04,0x2D,0xA5,0x4A,0x9A,0xED,0xD7,0x5F,0xCA,
+0xDF,0x49,0x37,0xCB,0xC8,0x97,0x91,0x47,0x34,0x99,0x6D,0xB5,0x41,0xD8,0xAE,0xC6,
+0x5B,0xB9,0x83,0x2F,0x3E,0xCA,0x93,0x30,0x66,0x62,0x3C,0x31,0xBA,0x1C,0x52,0xBF,
+0xBC,0x7C,0x98,0xA6,0xF4,0xEF,0x79,0xDB,0x20,0x7A,0x7D,0xCB,0x4D,0xFE,0xD5,0x1E,
+0x68,0x55,0x12,0x06,0x64,0x17,0x07,0x5C,0xA8,0xC5,0x75,0x79,0x96,0xBF,0x35,0xA8,
+0x6C,0xE8,0x5C,0x22,0x14,0xDD,0xF2,0xDE,0xD6,0x59,0x33,0x5E,0x82,0xC1,0xD6,0xB8,
+0x69,0x08,0xD7,0x10,0xFF,0x3F,0x32,0x80,0xE5,0x76,0xD9,0xC9,0xB8,0x3F,0x74,0xAE,
+0xFA,0x5B,0x04,0xD8,0x0D,0x1E,0x8A,0xA0,0xB1,0xF9,0x52,0x56,0x61,0x5D,0xB2,0x09,
+0x23,0x20,0xBA,0xC2,0x0A,0xD5,0xDB,0xCD,0x85,0x06,0x8D,0xAD,0x90,0xA4,0x41,0x72,
+0xF5,0x34,0x3F,0x68,0x75,0xB3,0xDF,0x43,0xBB,0xF6,0x50,0x6B,0x99,0xCD,0xCC,0x8E,
+0xAA,0x82,0x3A,0x9C,0x35,0x1A,0xD8,0x6B,0x0A,0x69,0xB0,0x73,0xEB,0xCC,0x2B,0x10,
+0x08,0x00,0x77,0x77,0x71,0xCF,0x65,0x14,0x7F,0x5E,0x1B,0x1E,0x18,0x16,0xFE,0x7A,
+0x06,0x32,0x89,0xD1,0xED,0x2C,0x01,0xA5,0x4F,0xF3,0x0F,0xDD,0x33,0xD9,0x49,0x58,
+0x45,0xF5,0x9E,0x9D,0xCF,0x5C,0xC0,0x2A,0xE8,0xA9,0xEE,0x98,0x65,0x65,0xE0,0xC2,
+0x90,0x81,0xD1,0x2B,0x68,0x0C,0x1D,0x6A,0xFB,0x9A,0xCB,0x8A,0x36,0x96,0xBF,0x7C,
+0xC1,0x05,0x2A,0x79,0x40,0xDE,0x70,0x20,0xC5,0x6A,0x16,0x4C,0xFD,0x91,0xEE,0x11,
+0x85,0x1F,0xB9,0x0D,0x6F,0xC7,0x4C,0x07,0x71,0x03,0xD2,0x1B,0xF6,0xDB,0x45,0xFC,
+0xF0,0xD4,0xB4,0x5A,0x30,0x14,0x85,0xA2,0xFC,0x4A,0xFE,0xE6,0x6E,0x2F,0x4B,0x2F,
+0x36,0xBE,0xD2,0xE4,0xAA,0x4E,0x57,0xE0,0xF9,0xBC,0xDA,0xA9,0x28,0xD5,0x53,0x6E,
+0x05,0x52,0x43,0xCD,0xEC,0x5E,0xE6,0x3B,0xEC,0xFB,0x25,0xA0,0xA9,0x0E,0x61,0x9A,
+0x99,0x6E,0xAB,0xB5,0xFD,0xFA,0x3E,0x24,0x6D,0xC9,0xD1,0x7B,0x87,0x8E,0x20,0x9C,
+0x5D,0x39,0xC2,0x01,0x42,0x1B,0x7C,0x84,0x39,0x46,0x5A,0xE4,0x8A,0xDF,0xFF,0xAB,
+0x5F,0x04,0xCD,0x0B,0xEA,0xE7,0x50,0xC8,0xA0,0xEC,0x66,0x67,0x54,0xD1,0xE9,0x39,
+0x3D,0x6C,0xA7,0x70,0xC3,0x47,0xDA,0x1C,0x9A,0x4E,0x70,0x99,0x03,0x1A,0xE4,0x4C,
+0xE1,0xF7,0x92,0x58,0xD3,0x91,0xE5,0x9D,0xBE,0x00,0x74,0x24,0xA2,0x44,0xCA,0x77,
+0xC7,0x85,0x6B,0x57,0x46,0x67,0xC6,0xD3,0xD4,0x7F,0x22,0x7D,0xBD,0x70,0x82,0x8A,
+0xF7,0x09,0x30,0x62,0xA5,0xE2,0xA6,0xEC,0x8F,0x09,0x8F,0x90,0xBC,0x07,0x26,0x65,
+0xF8,0x66,0x0B,0xD2,0xD6,0x9F,0xB8,0x54,0x31,0x6F,0x49,0xFA,0x04,0x76,0x34,0x79,
+0xF2,0xE9,0xBB,0x50,0x72,0x78,0x8E,0x2E,0xF8,0x18,0x35,0xDE,0xF7,0xAC,0xE1,0x13,
+0x42,0x28,0x1A,0xA5,0x63,0xDC,0x56,0x31,0xF0,0x31,0x26,0xC0,0xC9,0x6A,0x11,0xCE,
+0x01,0xEF,0x0D,0xE9,0xCA,0x52,0x9D,0xE3,0x88,0xD9,0xBA,0xFC,0x8E,0xE7,0xAD,0x60,
+0x4F,0x7A,0x2E,0x1F,0x58,0x6F,0xEF,0xC0,0xB6,0x29,0x67,0x3A,0x08,0x50,0x4F,0xA1,
+0xE8,0x18,0xE8,0xC6,0x02,0xB2,0x7B,0xAC,0x5B,0x10,0x1F,0xA3,0xD0,0x45,0x2D,0xE9,
+0x62,0xDA,0xA2,0x84,0xB8,0x5D,0x64,0xC5,0x6C,0x6D,0x3E,0x0C,0xF1,0xB7,0x95,0xC9,
+0x53,0x0B,0x3C,0xA7,0x25,0xCC,0xE7,0xEA,0x1D,0x08,0x5E,0x59,0x3E,0x88,0x96,0x6F,
+0x98,0x33,0x6E,0xA3,0x80,0x59,0x36,0x0E,0x98,0x68,0x61,0xBA,0x8B,0xA8,0x5B,0x44,
+0xF6,0x54,0xF5,0x74,0x8F,0xF5,0xC7,0x02,0xE1,0x24,0x12,0xF1,0xC1,0x74,0x38,0xDD,
+0x2B,0x1F,0xC7,0x5E,0xA0,0x56,0x4F,0x99,0xED,0x2E,0x8A,0x74,0xFA,0x13,0x02,0x29,
+0xFD,0xD0,0x2F,0x02,0x89,0x45,0x47,0x87,0x50,0x61,0x19,0xE1,0x62,0xB5,0x5E,0xA8,
+0x22,0x58,0xD2,0xA1,0xB4,0xB3,0xCC,0x61,0xA9,0x5A,0x90,0xE7,0xCF,0xC3,0x05,0x45,
+0xFF,0xDC,0xEA,0xA6,0xF4,0x64,0x70,0x28,0x5C,0xCD,0x16,0x10,0x65,0x31,0x66,0x75,
+0xC0,0xDF,0x25,0x00,0xAB,0xDA,0x23,0xDB,0x24,0x20,0x8F,0x29,0x91,0x03,0xE7,0xAE,
+0xB0,0x2A,0xEF,0x82,0x41,0x31,0x06,0x11,0x9C,0x5D,0xFC,0x37,0x18,0x83,0xB9,0x0C,
+0x9C,0xFD,0x41,0x9F,0x6A,0x55,0x53,0xF9,0x5F,0xD1,0x76,0xDA,0xCA,0x48,0x37,0xA5,
+0x70,0x6C,0x68,0xAC,0x2F,0xDD,0x1B,0x06,0xE0,0x94,0xD8,0x40,0x49,0x78,0xEB,0x88,
+0x5F,0x50,0x71,0x8B,0x45,0xBF,0x60,0x6E,0x7F,0xF0,0x84,0x62,0xA2,0x92,0xCE,0x42,
+0xCF,0x2E,0x89,0x0C,0xCF,0x6B,0xC0,0x47,0xC9,0x2B,0xC5,0x82,0xAA,0x2D,0x46,0xF0,
+0x05,0xC4,0xAC,0xE7,0xD4,0x8C,0x49,0x82,0x68,0xDC,0x27,0x05,0xEB,0x35,0x00,0x0A,
+0xF3,0xC6,0xF1,0x90,0x60,0x08,0xAD,0x72,0x11,0x27,0xE3,0xF9,0xBA,0xCE,0x52,0x8E,
+0x34,0xD1,0xBD,0xD3,0x06,0xCE,0x13,0x18,0x1D,0x8B,0xEC,0x08,0x9D,0xF2,0x4B,0xA1,
+0xC8,0x7F,0x42,0x61,0x72,0x14,0x15,0x03,0xFB,0x14,0x74,0xD6,0x54,0xAF,0x45,0xA4,
+0x89,0x9F,0x99,0xD7,0x52,0xFC,0x2C,0xA9,0x86,0xCB,0x0D,0x64,0x51,0x24,0x77,0x44,
+0x07,0xC8,0x69,0x43,0x22,0xA8,0x4C,0xCD,0x26,0x2A,0xB2,0x26,0x63,0x70,0x48,0xF5,
+0x5B,0xEA,0x0D,0xDC,0x5D,0xFE,0x26,0x94,0x4C,0xD9,0x68,0xF3,0x28,0xD8,0x8C,0x80,
+0xC9,0x98,0x30,0xFF,0x7B,0xEF,0x24,0xB7,0x23,0x18,0x52,0xAD,0x35,0x0F,0x22,0xAC,
+0xC3,0x34,0x92,0x3A,0x4B,0x6C,0xF8,0x9A,0x3C,0xBC,0x43,0x75,0x03,0x15,0x39,0xA0,
+0xBF,0xDB,0x43,0x8E,0xE4,0x0F,0x95,0xAF,0xAF,0x74,0x10,0xA6,0x48,0xBD,0xFD,0xD5,
+0x1A,0x0A,0xD6,0x6A,0x5B,0x07,0x1D,0x1D,0x13,0x2D,0xDE,0xF6,0xE8,0xFF,0x1C,0x6A,
+0xFE,0x3B,0x98,0x38,0x4E,0x33,0x0C,0x2C,0x46,0x5B,0xE7,0x43,0x6E,0x44,0xF2,0xA7,
+0xD0,0xE0,0xF3,0x81,0x4C,0x44,0x51,0xDA,0x99,0x6F,0x1C,0xBC,0x0B,0xAA,0xB1,0x12,
+0x6C,0x49,0xA5,0x1B,0x9C,0x71,0x56,0xB6,0x2E,0xA2,0x00,0x99,0xA4,0xD3,0xE0,0xC2,
+0x3D,0x96,0xA8,0x2C,0x02,0x40,0x75,0x67,0x9A,0x73,0x7C,0x76,0x2A,0xD7,0x86,0xBD,
+0x9D,0x1A,0x33,0x01,0xCC,0xCD,0x0F,0x78,0x74,0x64,0x56,0x17,0x5B,0x94,0xF5,0xCB,
+0x2E,0x42,0xC9,0x97,0x87,0x96,0xDF,0x73,0x7E,0xE6,0xD9,0xA7,0xC0,0xF8,0xB5,0x2A,
+0x26,0xE2,0xAE,0xF6,0xA3,0xF0,0x80,0xA6,0xC2,0xBF,0x17,0xF7,0xB4,0x30,0xF4,0xBC,
+0x86,0x6E,0x35,0xDB,0x0D,0x42,0x7F,0x5A,0x60,0x54,0x95,0xBA,0x30,0x84,0x10,0x4C,
+0x59,0xE6,0xC8,0x78,0x25,0x80,0xE5,0x8D,0x7A,0xC2,0x64,0xE9,0xD4,0x55,0x85,0xE9,
+0x8B,0x93,0x5C,0x73,0x8A,0xE3,0x88,0xB8,0x32,0x1A,0x71,0x8B,0x70,0x59,0x40,0xEB,
+0x15,0xFB,0x7A,0x66,0xC7,0x41,0x63,0x3A,0x69,0xCA,0x7A,0xC0,0xE5,0xCB,0xA6,0x38,
+0x49,0xD9,0x1E,0xF9,0xEC,0x25,0x36,0xD2,0xC4,0x91,0x97,0xB6,0xE2,0x4F,0x9E,0xE5,
+0xED,0xEF,0xF9,0x83,0x5C,0x2F,0xB4,0x5D,0xAE,0x62,0x4D,0x63,0x9E,0x38,0x57,0xC1,
+0x9E,0xF1,0x84,0x3B,0x67,0x20,0x04,0x32,0xB2,0xDA,0x3C,0x71,0x58,0x5E,0xE9,0xAB,
+0x7D,0x91,0x01,0x04,0x3C,0x10,0x31,0xBE,0x5D,0xDB,0x4B,0xD5,0xF5,0x28,0xB2,0x46,
+0xE8,0xB2,0xF7,0x4A,0xC5,0x36,0x3E,0xCC,0xA0,0xC4,0x7F,0x9D,0xA3,0x57,0xD8,0x1F,
+0xF8,0x8D,0x21,0xCB,0xF0,0xEA,0x16,0x57,0x9B,0x65,0x21,0xB3,0xA7,0x19,0xFC,0xA2,
+0xD1,0x07,0x81,0x1F,0x9A,0x88,0x6D,0x3F,0xEE,0x32,0xEA,0xBE,0xB1,0xBB,0xC6,0x5C,
+0x79,0x2B,0x7D,0x53,0x95,0x8A,0x67,0x02,0x7C,0xEC,0xE4,0xA8,0x8D,0x11,0x5F,0xDF,
+0xB4,0x90,0x93,0xD5,0xA2,0x21,0x12,0x6F,0x0A,0xA7,0x4F,0x6F,0xC5,0x73,0x87,0xCA,
+0xBB,0x61,0x3F,0xD9,0x39,0x4F,0xC5,0x08,0x93,0xED,0x93,0x0C,0xB6,0x3F,0xFE,0x81,
+0x1E,0xB0,0xAA,0x3D,0x6B,0x84,0xC1,0x30,0xB8,0x58,0xB3,0xC1,0x89,0x5F,0x7B,0x62,
+0x83,0x33,0x3B,0x12,0xF5,0xB5,0xE2,0xE1,0x1E,0x97,0x8C,0xC2,0xE9,0x3A,0x0A,0x37,
+0x39,0x2C,0xD4,0x7B,0xBF,0x3F,0xA0,0x23,0x3E,0xB6,0x7E,0x7A,0xC8,0x47,0x3D,0x98,
+0x63,0xB8,0x09,0x17,0x79,0x98,0x79,0x41,0x76,0x6E,0x6B,0x18,0xB0,0x7E,0xD0,0x01,
+0xF1,0xCA,0x34,0x34,0x5A,0xD6,0x8F,0xD4,0xB7,0xE8,0xDC,0xFA,0x6D,0x8E,0xEE,0xC7,
+0x58,0x01,0xBA,0xE6,0x4D,0x95,0xC3,0x13,0x19,0xAF,0x51,0x46,0xF1,0x66,0x96,0xFB,
+0xD6,0x56,0x4A,0x72,0xDE,0xD1,0xB7,0x09,0x8F,0x55,0xE2,0x1E,0xD8,0xA4,0x29,0xE6,
+0x4A,0x32,0xA9,0xC3,0x20,0xDF,0x11,0x3B,0xAD,0x7E,0x2D,0xA9,0xCC,0x09,0x19,0x25,
+0x0E,0x8F,0x7C,0xBC,0x6D,0x7D,0xFA,0xB9,0xC7,0x8D,0xF7,0x7C,0x67,0x3E,0x6C,0x48,
+0x4E,0x88,0xD5,0x94,0x68,0x22,0x0E,0x0F,0x59,0xFF,0xF6,0x9B,0x87,0xA1,0xDD,0x50,
+0x31,0x8C,0xB3,0x1A,0xED,0xF4,0xA4,0x1B,0xA5,0xF6,0x9F,0x16,0x5A,0x51,0xE3,0x96,
+0x36,0xDD,0x78,0x77,0x53,0x2D,0xBE,0x60,0xDE,0x07,0x66,0xE5,0x85,0xAE,0xD7,0x6D,
+0xC4,0x65,0x59,0x57,0x80,0xBE,0x76,0x33,0x79,0xDE,0x04,0x23,0x0E,0x21,0x83,0xF2,
+0x2F,0xA5,0xBB,0x09,0x0B,0xBB,0x44,0xD3,0x6F,0xE4,0xFA,0x81,0xE4,0x0E,0xB0,0x65,
+0xC6,0x69,0x9C,0xF3,0xFC,0x4E,0xD3,0x55,0x4B,0xE1,0xB5,0x77,0x06,0x9E,0x0B,0x40,
+0xD7,0xB1,0x38,0xEC,0x14,0xD2,0xAB,0x69,0x4D,0xCF,0x35,0x36,0xF2,0xAC,0x8A,0x9B,
+0x91,0x00,0x28,0x37,0x85,0xE1,0x82,0x85,0xB9,0x4E,0xEE,0x04,0x0D,0xEB,0x9F,0x92,
+0x0B,0xD2,0x72,0x75,0xE3,0x27,0x3C,0xEF,0xF8,0x08,0x14,0x1C,0x29,0x1D,0x9A,0xDD,
+0x54,0x1B,0xA1,0xD0,0xEE,0x52,0x6B,0x24,0x2B,0x90,0xE0,0x12,0x05,0x54,0x17,0x20,
+0x7B,0x27,0xB8,0xF7,0x7D,0x16,0x1F,0x3E,0xC6,0x9B,0xAA,0xB9,0xC1,0x3D,0xA3,0x77,
+0x53,0x4A,0x6A,0xBD,0x86,0x47,0x4D,0xBA,0xAB,0x50,0xAD,0xE8,0x1C,0xCD,0x9D,0xB1,
+0xF4,0x97,0x3A,0xFD,0xC9,0x92,0xFB,0xCE,0x15,0x03,0x5E,0xB7,0x39,0xFE,0x8E,0xA3,
+0xA7,0xA1,0x95,0x34,0x14,0x1E,0xB4,0x60,0x9C,0xE0,0x63,0xEA,0xE8,0x30,0xFB,0x65,
+0xF9,0x28,0x37,0xB4,0xAC,0x00,0xC7,0x1D,0x76,0x2A,0x46,0x01,0x1D,0xB2,0x8B,0xAF,
+0x77,0xFA,0x9E,0x7F,0x6F,0xED,0x4D,0x91,0x5D,0xC2,0x13,0x65,0xCA,0xAF,0xA7,0x01,
+0xAB,0x79,0xB3,0x4F,0xD0,0x77,0xE3,0xD4,0x18,0x3D,0x5B,0xED,0x5B,0x9C,0x4B,0x28,
+0x42,0xCA,0x12,0x24,0xDD,0x43,0xB1,0x6E,0x97,0xA2,0x0F,0x66,0x28,0x6E,0x10,0x87,
+0x1E,0x52,0x93,0x82,0x60,0xD6,0x22,0x21,0xBE,0xBC,0x07,0x75,0xE7,0x32,0xC6,0x6F,
+0x45,0xFF,0x7E,0xF4,0x99,0xD0,0xAB,0x1A,0x83,0x5A,0x8C,0x83,0x6F,0x91,0x19,0x92,
+0x26,0x55,0x4E,0x06,0x6C,0x27,0x2D,0x8D,0xC3,0x13,0x30,0x54,0xEB,0x96,0xC4,0xAA,
+0x0B,0xAD,0x9A,0xC5,0x2D,0x3F,0xD7,0xCB,0x31,0x23,0x53,0xFE,0xE6,0xE3,0x0F,0xFD,
+0x05,0x64,0x9F,0x98,0xCB,0xE1,0x4F,0x54,0x45,0x38,0x55,0x24,0x48,0x51,0xF3,0x02,
+0x37,0x61,0x7F,0x13,0xB6,0x53,0x36,0x8B,0x65,0x92,0x6C,0xCC,0xA8,0xE7,0xB2,0xD9,
+0x08,0x53,0xCE,0x47,0x16,0x11,0x89,0x6A,0x15,0xF6,0x0C,0x98,0xFF,0x73,0x3C,0x29,
+0x8E,0x92,0x79,0xA5,0x4F,0x55,0xBF,0xB0,0x72,0x55,0x20,0x8F,0x67,0xBB,0x64,0x31,
+0x06,0x9A,0xCB,0x1A,0xF9,0xB5,0xFE,0x6B,0xF8,0x7C,0x80,0x5B,0x19,0x3C,0xF4,0xC9,
+0x40,0xDB,0x31,0x02,0x58,0x32,0x1C,0x9C,0xE3,0xB9,0x09,0xBC,0xF3,0xD7,0x3E,0xEC,
+0x12,0x8A,0xB5,0xF9,0x21,0xCE,0xD8,0x67,0x57,0x49,0xED,0x38,0xF1,0xA0,0xC8,0xB1,
+0x5C,0xD8,0x51,0xC8,0x23,0xC1,0xE5,0x6D,0x6C,0x26,0x5D,0x37,0x3D,0x5A,0x21,0x96,
+0xB2,0x5E,0x9C,0x73,0x76,0x74,0xDC,0x1B,0x79,0x17,0x4C,0x03,0x0C,0x08,0xC5,0xD8,
+0xF1,0x3B,0x29,0x9D,0xA9,0x8B,0x27,0x2F,0x7B,0xE1,0x11,0x74,0xD7,0xB1,0xEB,0xB3,
+0xA0,0x94,0xF9,0xE4,0x1E,0xAE,0x3B,0xE2,0xAB,0x8D,0x16,0x41,0x7E,0x2B,0x57,0xE5,
+0xCC,0x18,0xBB,0xEF,0x7C,0xC4,0x53,0x99,0x6A,0xAF,0x66,0xCE,0xDD,0xEC,0x60,0x4D,
+0x62,0x05,0x97,0x38,0x13,0x9A,0x69,0x58,0x4C,0x8C,0x64,0xDF,0xAF,0xCF,0xF2,0x70,
+0x79,0x33,0x9B,0x22,0x0C,0x42,0x78,0xFC,0x7C,0xA1,0xB8,0x5C,0x03,0x0A,0xF8,0xD2,
+0xBD,0x78,0xEE,0x8A,0x9F,0x91,0x2B,0x34,0xD3,0x94,0xD5,0x3F,0xEC,0xBE,0x84,0x03,
+0x50,0x00,0x77,0xB3,0x50,0x8D,0xAE,0x14,0x3A,0x61,0x3F,0x72,0x59,0xEB,0xBD,0x75,
+0xC5,0xE4,0xD2,0x62,0x4A,0xDE,0x5F,0x82,0x12,0xB6,0xA5,0xB0,0xD1,0x48,0x62,0x88,
+0x00,0x40,0xD0,0x6E,0x02,0xBC,0x4A,0x5A,0xBD,0x83,0xC8,0xD3,0xA4,0x43,0xB0,0x1C,
+0xE6,0xD5,0x03,0xFC,0x59,0xF7,0x41,0x8A,0xF0,0x01,0x23,0x71,0xCC,0x56,0x2E,0x3A,
+0xC6,0x1A,0x86,0xE0,0xAA,0x41,0x47,0x33,0x35,0x5C,0x35,0x70,0xA1,0x1C,0x06,0xE8,
+0xB5,0x6B,0xF0,0xA3,0x44,0x20,0x6D,0x24,0xFB,0x43,0x4F,0xFD,0x2D,0x31,0xA6,0x73,
+0xF5,0xF0,0x11,0xCF,0x4E,0x90,0xE2,0xA6,0xB0,0x48,0x9F,0xA6,0x75,0xA7,0x15,0x89,
+0xB4,0x84,0x87,0x07,0xF2,0xC0,0x2C,0xFF,0x94,0x9D,0xC0,0xC0,0xD5,0xC6,0x1D,0xEE,
+0x98,0x93,0x24,0x60,0x90,0xAA,0x44,0x84,0xF2,0xF7,0x7E,0x06,0x85,0x7A,0xD3,0xB7,
+0xBC,0x97,0x99,0x2E,0xAB,0x84,0x1A,0x25,0xC7,0x6C,0x56,0xDA,0xBA,0xFB,0xC3,0x61,
+0x86,0x81,0x67,0x8C,0xDE,0x89,0xD1,0x72,0xAD,0x04,0x2D,0xB8,0x30,0x2F,0xEA,0xC1,
+0x1F,0xBD,0xE4,0x26,0x4C,0x9F,0xDF,0xAC,0xA2,0x39,0x27,0xBA,0x1C,0x63,0x42,0x3D,
+0xDE,0xD2,0xDE,0x78,0xF4,0x81,0xAC,0xD1,0xDB,0xE9,0x76,0x15,0xEE,0xC9,0x72,0x5E,
+0x17,0xAE,0xFA,0x0F,0x9E,0x54,0x76,0x22,0x6B,0x66,0xF4,0x1F,0xD8,0xB3,0xD6,0xB9,
+0xA9,0x68,0x90,0x69,0x82,0x46,0x07,0x9A,0x50,0x09,0x44,0x10,0xC6,0x0B,0xA5,0xC4,
+0xF2,0xC5,0x7D,0x1F,0x6D,0xE2,0x70,0x9B,0x0B,0x85,0x71,0x20,0xA6,0x34,0x46,0x41,
+0x7D,0xF8,0xA3,0x70,0x0E,0x4D,0x45,0xF6,0x88,0x18,0xE0,0x0F,0x1B,0x4B,0x02,0x94,
+0x90,0x80,0x3A,0x49,0x46,0x2F,0x50,0x2E,0x4E,0x7A,0x39,0xA8,0x8F,0x27,0x58,0x49,
+0xAE,0x5D,0xFC,0xB9,0x87,0xCD,0xE7,0xA8,0x6D,0xEF,0xCF,0xE6,0xFD,0x04,0xCA,0x74,
+0xD6,0xC1,0xC0,0x51,0x29,0x71,0x6A,0xEF,0x7A,0x28,0x83,0xA5,0x36,0xD6,0x63,0xFA,
+0xC7,0xF5,0xF1,0x44,0x3A,0x58,0x74,0xE7,0x95,0x54,0x52,0x11,0xA7,0xE5,0x8F,0xD3,
+0xBE,0x86,0xBA,0x08,0xA3,0x3B,0xA8,0xAD,0x0E,0x33,0x85,0x7F,0x56,0xE9,0x80,0x7F,
+0x3B,0xB9,0x59,0x68,0x88,0xF6,0x88,0x18,0x5C,0x0B,0x81,0xB4,0x87,0x0D,0x25,0xEA,
+0x4A,0xD9,0x0C,0x0D,0x2E,0xF5,0xB7,0xD7,0xC2,0xDA,0xA2,0x85,0x04,0x22,0xB8,0x7B,
+0xA3,0x6A,0xAD,0x66,0x95,0x21,0xA4,0xB6,0xDA,0x20,0xE4,0xC4,0xBB,0x2A,0x0A,0xF3,
+0x97,0xB5,0x56,0x99,0xEE,0xD2,0x5D,0x47,0x64,0x5B,0xFE,0x1D,0xEA,0x47,0x0D,0x38,
+0xC3,0x3E,0xC9,0x16,0x49,0x14,0x3F,0x9E,0xB7,0x08,0x36,0x8E,0x52,0x67,0xFF,0x19,
+0xF0,0xD4,0x5E,0x39,0x5F,0xB6,0xC1,0xA4,0x3C,0xE8,0x04,0x8B,0x92,0x39,0x14,0xFB,
+0x69,0xE8,0xDD,0x93,0xBF,0x29,0xD9,0x15,0xE9,0x32,0xF7,0xE1,0x61,0x42,0xED,0x0A,
+0x59,0xFC,0x1E,0x3E,0x9D,0x9E,0x16,0x3E,0x17,0x00,0x51,0xEF,0x05,0xF3,0x71,0xE9,
+0x2C,0x57,0x73,0x09,0xF7,0x4B,0xCC,0xCD,0x5A,0x82,0xBA,0x4D,0xB8,0x8C,0x35,0x3C,
+0x9D,0xB7,0x6B,0x96,0x69,0xAC,0xCD,0xBF,0x5F,0x34,0x4E,0x12,0xBF,0xA4,0x75,0x95,
+0x57,0x35,0x1B,0x63,0x1B,0x25,0xDB,0xD0,0xD9,0x1F,0x2B,0x62,0x2C,0xE0,0x6F,0xE1,
+0xE3,0xF1,0x4C,0x0A,0xF6,0x8E,0x91,0xDB,0x4A,0x05,0x5F,0x26,0x10,0xC7,0x40,0xF8,
+0xDD,0x2C,0x8A,0xFA,0x9B,0xDF,0x96,0x10,0xB1,0x81,0x0D,0x77,0x7D,0x8D,0x68,0x2A,
+0xCE,0x09,0x98,0xC9,0x25,0x80,0x65,0x43,0xFE,0xF5,0xBB,0xA2,0xA0,0xCD,0xCF,0x7A,
+0x4B,0x36,0x7B,0xA9,0x7B,0x40,0x8E,0xA1,0xCB,0x6E,0x93,0x7E,0x5E,0xC3,0xFD,0xDC,
+0xCA,0xC2,0xA0,0x9B,0x7D,0x01,0x0E,0x8F,0x23,0x52,0xEB,0xE2,0x86,0xDC,0xEC,0x78,
+0xDF,0x3D,0xA9,0xDC,0x89,0x33,0xD5,0x0E,0xB2,0xBE,0xC2,0xD1,0x37,0x07,0xAA,0x68,
+0xDA,0x19,0xE6,0x2A,0xC8,0x2B,0x2F,0x48,0xD4,0xD4,0x7C,0x17,0xE5,0x45,0x30,0x32,
+0x23,0xDC,0x8F,0x24,0x36,0xCF,0xAA,0xE9,0xEF,0x8B,0x1B,0x8E,0xAA,0xD8,0xE9,0x5C,
+0x47,0xAC,0xEF,0x70,0x61,0x5B,0x5A,0x67,0xDD,0xB4,0xAA,0xDA,0x0A,0x9A,0x08,0xE3,
+0xED,0x8C,0xD6,0x98,0x81,0xED,0x81,0x26,0xD8,0x86,0x4A,0x51,0x77,0x28,0xD7,0x9A,
+0xF6,0xF8,0xD0,0x42,0x2F,0x5F,0x7E,0xDA,0x11,0x88,0x4F,0x0C,0x91,0xF6,0x48,0x02,
+0x9C,0x9E,0x6E,0x84,0x38,0x1C,0x32,0x1D,0x36,0x91,0x60,0x30,0x9D,0x07,0xE4,0x0D,
+0x6C,0x2A,0x8A,0x00,0x3A,0x6B,0x6F,0xEB,0x67,0xC3,0xE4,0xCB,0xE4,0xFB,0x1F,0xC9,
+0xA9,0x31,0x03,0xE7,0xD0,0x80,0x4A,0x21,0x26,0x85,0x1E,0xD3,0x45,0x7C,0xE8,0x2B,
+0x80,0xBB,0xA3,0x33,0xAE,0x07,0xB2,0xB1,0x2E,0x0D,0xAC,0x6C,0xF3,0x9C,0x33,0x6A,
+0xE8,0xD1,0xD8,0x51,0x92,0x20,0xAB,0x9E,0xC5,0x28,0x66,0x86,0x6C,0xBE,0x57,0x36,
+0x17,0x94,0x90,0xD9,0x03,0x13,0x82,0x72,0x46,0xF4,0x4B,0xB6,0xD3,0x24,0x12,0x98,
+0xFF,0xBF,0xC5,0xBD,0xD4,0x0E,0x2C,0x5E,0x94,0x7A,0xE2,0x7D,0x10,0xC9,0x9E,0x12,
+0x35,0x55,0xE0,0x56,0x21,0x8C,0xE6,0x2E,0x1D,0x24,0x40,0xFD,0xA8,0xD7,0xE3,0x61,
+0xC6,0x0A,0xB3,0xE8,0x22,0x2A,0x29,0x11,0xE9,0xA5,0x9B,0xCF,0xD0,0xEE,0x0E,0xF8,
+0x8F,0x4A,0x0F,0x3F,0xA6,0x2D,0x11,0xCC,0x43,0xC6,0xAB,0x3D,0x25,0x19,0x99,0x7E,
+0x69,0x77,0x84,0xC9,0x2E,0x8E,0xEC,0x13,0xEE,0x9D,0x46,0x4B,0xDC,0x1F,0xA2,0xF7,
+0x77,0x5E,0x8C,0xDA,0xE1,0xD2,0x04,0xC5,0x76,0xC1,0xC7,0xED,0x61,0x8A,0xED,0x64,
+0xD4,0x39,0xA0,0xCD,0x05,0xEA,0xB9,0xFB,0x69,0x65,0xD6,0x35,0xE5,0x3E,0x09,0x94,
+0x56,0x74,0x4B,0x6F,0x6D,0xFF,0x9F,0x65,0xFC,0x83,0x05,0xA7,0xBE,0x75,0xD9,0x9F,
+0x63,0xDB,0x26,0x0C,0x18,0xF4,0x0B,0xB7,0x58,0x46,0x07,0xAB,0xF6,0x17,0x01,0x8A,
+0xB4,0xF3,0xBC,0xCE,0x90,0x57,0xF6,0x68,0xBC,0xD3,0xA2,0x7A,0xEC,0x44,0x97,0x7B,
+0x48,0x5D,0x43,0x7C,0x1C,0x7A,0x6D,0xC8,0x38,0x37,0x52,0xCE,0x4E,0x09,0x7C,0xF9,
+0x9D,0x79,0x1C,0x1A,0xBC,0x1B,0x0A,0xC0,0x4C,0x76,0xC4,0x06,0xF2,0x59,0x25,0x37,
+0x96,0x32,0xCC,0x41,0xE4,0x8D,0xF0,0x73,0xD7,0x36,0x25,0x6A,0xF8,0xE9,0xA7,0xB8,
+0x89,0xFC,0xB6,0xCC,0x68,0xA0,0x6B,0xD3,0xA6,0x45,0x53,0x29,0x16,0x88,0xB0,0x92,
+0x58,0x62,0x95,0xFD,0xB7,0x97,0x66,0x82,0x28,0x23,0x2C,0x2D,0xA2,0x67,0x61,0xEE,
+0x34,0xB2,0x92,0xC8,0x1E,0x0D,0x30,0x3E,0x87,0x72,0xFC,0x54,0x15,0x42,0xAC,0xF2,
+0xC2,0xB0,0xCF,0xBF,0xC5,0xB4,0x5B,0x10,0xE2,0x31,0x49,0xBA,0xCA,0xBD,0x98,0x09,
+0xF3,0xA5,0xDE,0x8B,0xF4,0xE6,0x15,0xF4,0x64,0xDF,0x84,0x01,0x9F,0x08,0xEE,0x30,
+0x41,0x1A,0x56,0x83,0x25,0x02,0x80,0x51,0xC4,0x3E,0x3B,0x43,0x23,0x58,0xB7,0xFE,
+0x74,0xB5,0x3B,0xE0,0xCA,0xB6,0x51,0x2D,0x8F,0xFA,0x4E,0xEB,0xB0,0x8B,0x7F,0xAD,
+0x59,0x85,0xE7,0x63,0x66,0x73,0xF3,0x27,0xB9,0xE1,0x42,0xF1,0xAF,0x53,0xDB,0xBC,
+0x7A,0xA3,0xE5,0x72,0x14,0x50,0xCE,0xB5,0xA4,0x4F,0x6E,0x26,0xC0,0x0D,0x1A,0x86,
+0xFD,0xB3,0x00,0x19,0xFF,0x6A,0x79,0xB6,0x7D,0x55,0x15,0x98,0x95,0xB8,0x6C,0xBF,
+0x3A,0xA4,0x4C,0x5A,0x34,0xB8,0xF7,0x1F,0xE1,0x2D,0x29,0x70,0x3B,0x04,0x2B,0x32,
+0xAF,0x87,0xBA,0x14,0x46,0x9B,0xCA,0x8D,0x3C,0x13,0xEF,0x80,0xFA,0xE6,0xAD,0x85,
+0xCD,0x41,0x63,0xB3,0xD2,0xF7,0x17,0xD7,0x44,0xFE,0x76,0xB9,0xB2,0x84,0x75,0x90,
+0x0F,0x0B,0x21,0x39,0xCD,0x9E,0xF8,0x6D,0x65,0xC9,0xD9,0xC4,0x92,0x3C,0x54,0x62,
+0xDE,0x95,0x02,0x08,0x4E,0xB1,0x69,0xF0,0x05,0xB8,0x8C,0xA1,0x34,0x3F,0x9B,0x5D,
+0xE6,0xC7,0x06,0xC3,0x9F,0x55,0xFC,0x55,0x3A,0x3D,0x6F,0xC1,0x1F,0xF2,0x2E,0x7D,
+0x81,0x5C,0xD1,0xAD,0x6E,0x59,0x50,0x5A,0x49,0x44,0x24,0x8D,0x86,0x91,0x64,0xA1,
+0xEC,0x6B,0xA4,0x06,0xD5,0xDF,0xBE,0x97,0x01,0x9C,0x31,0xEF,0xF0,0x56,0x2F,0x0A,
+0xD1,0x64,0xAE,0x04,0xF9,0x93,0x42,0x3F,0x3D,0x05,0xB2,0x45,0x62,0x40,0xF1,0x04,
+0xB9,0x0E,0xD5,0x66,0x73,0x47,0xE2,0x16,0x2B,0x3F,0x4C,0xE7,0x17,0x4D,0xA6,0xCF,
+0x22,0x3B,0xFD,0xBA,0x4C,0xC6,0x34,0x06,0x2F,0x1B,0xF1,0xA9,0x2C,0x63,0x07,0x91,
+0x50,0xC2,0xF2,0x9C,0x6F,0x88,0xC2,0x93,0x79,0x71,0xA8,0xD6,0xD1,0x2B,0x18,0xA5,
+0xDC,0x99,0xC7,0xAC,0x0F,0xB7,0x47,0x70,0xD4,0x2A,0x45,0xA0,0x3E,0x8F,0x19,0xD2,
+0xB3,0xA2,0x77,0xA3,0x11,0x0F,0x3A,0x03,0x12,0x94,0x2F,0xC6,0x22,0x9D,0xA1,0xA3,
+0x3C,0x12,0xF5,0xA9,0x27,0x75,0xDD,0xA7,0x6E,0x5D,0x0B,0xB1,0x48,0x48,0x52,0x79,
+0x20,0x37,0x38,0x1E,0x69,0x71,0xF9,0x1A,0xB5,0x4D,0x4D,0x00,0x99,0x49,0xC0,0xB0,
+0x54,0x78,0x8E,0xCB,0xB4,0x31,0xA9,0xBD,0x90,0x5E,0x5F,0x33,0x27,0x16,0x93,0x43,
+0xD0,0x83,0xDC,0x9A,0xD9,0x7B,0x7B,0x95,0x4D,0x60,0x99,0xC3,0x4A,0x47,0x58,0x44,
+0xCA,0x10,0xA8,0xDE,0xE5,0x5C,0x62,0xBA,0x89,0xD4,0xCE,0xAA,0xA7,0xEC,0x53,0x0E,
+0x01,0x1D,0xFF,0xAB,0x2C,0xF9,0xB1,0xE5,0xA5,0x59,0x33,0xE3,0x74,0xE2,0xCB,0xFA,
+0x6B,0x7B,0x41,0x6D,0xFE,0xBB,0xEB,0x7F,0x81,0x5C,0x7C,0x15,0x35,0xFA,0x8D,0x00,
+0x87,0xEA,0x68,0x5E,0x4F,0x60,0xFB,0x39,0x7E,0x49,0x75,0x52,0xC1,0xC8,0x0C,0xDB,
+0xBB,0x02,0x10,0xC2,0x97,0x7F,0x5F,0x28,0x8A,0xC8,0xAE,0x60,0xC7,0x89,0x22,0x5B,
+0x3D,0xF5,0x87,0x37,0x5B,0x85,0x78,0xC1,0x68,0x73,0x8B,0xF0,0xE3,0x7F,0x27,0x14,
+0xDD,0x7E,0xB5,0x32,0x9B,0xDB,0x9A,0x2A,0x82,0x40,0x1C,0xDF,0xF5,0xDD,0x1D,0xEA,
+0x8E,0xAD,0x7D,0xA1,0x23,0xFB,0xBB,0xD8,0x09,0x14,0x83,0x50,0x52,0x1B,0xC4,0x88,
+0xF5,0x13,0x67,0x78,0x72,0x96,0x70,0xDF,0xD6,0x20,0x78,0xAF,0x29,0xE8,0x35,0x71,
+0xE1,0x96,0xCD,0xAE,0x76,0x18,0x16,0xA0,0x0B,0x1E,0xBE,0x5F,0xD5,0x65,0x3C,0x18,
+0x57,0x93,0x39,0xF1,0x71,0x30,0xBF,0xE0,0xEB,0xAF,0xA6,0xC0,0x4B,0x82,0x4E,0x19,
+0xD5,0xDE,0xD2,0x53,0xCC,0x4F,0x6A,0xA4,0x40,0xDA,0xCB,0xF7,0x21,0x57,0xBD,0xC3,
+0xE7,0x20,0x74,0x5D,0xA8,0xFE,0x89,0x38,0x54,0xEA,0x08,0x5A,0x03,0xE0,0x96,0x0C,
+0xD3,0x7B,0x9E,0x0B,0xB8,0xF3,0xB3,0x07,0x5F,0xFE,0xB7,0x0B,0xF1,0xB7,0xB9,0x3A,
+0x04,0x53,0x04,0xC9,0x30,0x50,0x4E,0xD8,0xBB,0x6B,0x12,0xDA,0xEB,0xE4,0x2F,0xCB,
+0x64,0x99,0x18,0xCA,0xA5,0xED,0x01,0x4B,0x6E,0xDD,0x66,0x95,0xE2,0x9E,0xB1,0x24,
+0xE6,0xD4,0xF3,0x68,0xCD,0xF8,0x27,0xD5,0xFB,0x3B,0xB5,0x07,0xB9,0xD5,0x61,0x2F,
+0x26,0x92,0x74,0x46,0x44,0x8A,0x48,0xC3,0xD0,0x8E,0x95,0xCA,0xFF,0x49,0x1F,0x08,
+0x39,0x5C,0x0E,0xCB,0xC8,0xA7,0xD3,0x63,0xA1,0xFD,0xE3,0x89,0x11,0x28,0x08,0x22,
+0xF8,0xFD,0xFB,0x7B,0xBC,0x7D,0xD5,0x78,0x3F,0x8F,0xE2,0x6E,0x49,0xA9,0xC4,0x49,
+0x2D,0xD9,0xA4,0x1D,0x1C,0x1C,0xB2,0x70,0x4B,0xCE,0x74,0xA6,0xF5,0xF9,0x9D,0x87,
+0x72,0x10,0x77,0xB8,0x65,0xB3,0xE3,0xA0,0xE5,0x89,0xF9,0x1A,0xCD,0x1D,0x20,0xB9,
+0x43,0x05,0x66,0x8C,0x54,0xE1,0xAD,0x44,0x63,0x67,0x34,0xA1,0x98,0xA8,0x56,0x80,
+0xE8,0xC2,0x2D,0xFA,0x17,0x90,0xDE,0x32,0x2F,0x9B,0x9C,0x8D,0xA5,0xC7,0xD9,0x5E,
+0x84,0x12,0x2A,0xCF,0xBE,0x0A,0x88,0x8E,0x80,0xCA,0x4C,0xF4,0x12,0xE2,0x14,0x42,
+0xE9,0x25,0x5F,0x64,0xC6,0x74,0x4B,0x97,0xBE,0x59,0xF2,0x51,0xA8,0xF3,0x63,0x0C,
+0xCA,0x03,0x5D,0x75,0xB4,0x57,0x76,0x05,0xA3,0xF7,0xDE,0x86,0xC7,0xAD,0xA2,0x36,
+0xF1,0xBA,0xEE,0x84,0x85,0x05,0x38,0xE1,0xC3,0x86,0x8B,0xE3,0x24,0xF8,0x0F,0x4E,
+0xC4,0x15,0x83,0xE7,0x6A,0xB1,0xE9,0x9D,0x88,0x42,0xFE,0x4B,0xB7,0x2B,0xC7,0x1D,
+0x5D,0x2C,0x6E,0x9F,0x21,0xEA,0x39,0x96,0xDF,0x3E,0xFA,0xF1,0x70,0x88,0x6F,0x2A,
+0x46,0x58,0x68,0x45,0x8F,0x58,0xC6,0x6A,0x16,0x30,0xFF,0xAC,0x96,0x56,0xF0,0xB2,
+0x93,0x7C,0x37,0x23,0x96,0xC8,0x12,0x59,0xE8,0x33,0xAB,0x2E,0xAD,0x78,0x51,0xEC,
+0xF7,0x0C,0x57,0x77,0xC1,0x5C,0xE2,0xD7,0xDA,0x0C,0x1A,0x7A,0x0D,0x3A,0xB0,0x53,
+0x19,0x91,0xBB,0xE0,0x70,0x87,0xF2,0x91,0x21,0x3D,0xAE,0x73,0x42,0xDC,0x50,0x9B,
+0x30,0x1B,0x1B,0x34,0x0E,0x00,0x0A,0x01,0x29,0xB5,0x1C,0xCC,0xF4,0x3C,0x8B,0xDA,
+0x2C,0x3E,0xD6,0x83,0x98,0x1B,0x8A,0xAD,0x31,0x29,0xD0,0x90,0x9A,0xA7,0x5C,0xBD,
+0xDC,0x8A,0x32,0x07,0x9A,0x6C,0xD7,0x5B,0x60,0x7B,0x54,0x6B,0xE3,0x5B,0xA7,0x79,
+0x4F,0x1F,0x7D,0xBA,0x74,0x09,0x94,0xEE,0x93,0xC2,0x52,0xDD,0x17,0x69,0x26,0xA2,
+0x85,0xF5,0x58,0x51,0x81,0x8B,0x5E,0x9E,0x1A,0x9C,0xF0,0x5D,0xAF,0x77,0x5B,0xD1,
+0x58,0x71,0x60,0x56,0x32,0x27,0x13,0x2E,0xC2,0x90,0xD6,0x26,0x6B,0x1E,0xEF,0x86,
+0xA7,0x34,0x28,0xDE,0xA3,0x14,0x3A,0xC2,0x41,0x4C,0xFB,0x16,0xD4,0x84,0xAA,0x28,
+0xD9,0xD7,0x3C,0xCE,0x8E,0x89,0x54,0xA3,0xE9,0x25,0xF6,0xEB,0xDB,0xBF,0x1A,0x47,
+0xC7,0xFE,0x34,0xDD,0x41,0xD5,0xBC,0x75,0x71,0x79,0x77,0x4D,0x66,0x2A,0x55,0xD4,
+0x76,0xAA,0x0B,0xEF,0x82,0x2D,0x91,0xA1,0xEE,0x1D,0x2B,0x6F,0xD7,0x4E,0xB6,0x48,
+0x3F,0xEA,0xB7,0x38,0x06,0x2A,0xA9,0x7C,0x44,0x7E,0x1B,0x9D,0x22,0xB9,0x21,0xCE,
+0x60,0x23,0x64,0x9D,0x79,0x7C,0xC3,0x25,0x4A,0xD8,0x29,0x63,0x4D,0xE7,0xE0,0xF4,
+0x7A,0xB0,0x10,0xD9,0x45,0x5B,0xDA,0x0A,0x8E,0x6C,0x7E,0x0A,0xA0,0x4C,0xEB,0xBE,
+0x90,0x97,0x80,0x19,0xC9,0x76,0x41,0xAA,0xB2,0xF5,0xFD,0xA0,0x9E,0xE9,0x78,0x00,
+0xE4,0xD8,0x36,0xCC,0x14,0x36,0x11,0x0D,0x97,0xE6,0xEF,0x93,0x20,0xB6,0x2B,0xF3,
+0x37,0x4A,0xD0,0x59,0xEF,0x67,0x43,0x89,0x79,0xF1,0xC5,0xF2,0xC6,0x68,0xB4,0x6B,
+0x0B,0xA2,0xA8,0xC5,0x37,0x78,0xE7,0x98,0x8D,0x70,0x1E,0xC0,0xC0,0x29,0x9A,0xEB,
+0xB1,0xBD,0x47,0xAC,0x8C,0xFE,0x09,0x55,0xA2,0xE1,0x83,0x43,0x73,0x42,0x73,0x4A,
+0xDB,0xDB,0xF9,0x6A,0x5E,0xBC,0x53,0xCF,0x86,0xE4,0xCC,0xB5,0x32,0x5A,0x35,0xB0,
+0x3E,0x0D,0xC5,0xA6,0x83,0xFC,0x03,0x68,0x0E,0xAC,0x33,0xF0,0x55,0xBB,0x7C,0x38,
+0x45,0xB3,0xDF,0x7F,0xD2,0x91,0xC8,0x6F,0xD1,0x98,0xC8,0x0F,0x2E,0x48,0x8D,0xC1,
+0x8D,0x55,0x3F,0x30,0xFB,0x82,0xC0,0x71,0x6F,0xCB,0x3B,0x50,0xE4,0xDF,0x9F,0xA4,
+0x6D,0xDE,0x0D,0x35,0x3B,0xDC,0x22,0x9A,0x85,0xF8,0xAC,0x7F,0xF2,0x7D,0xA5,0x5A,
+0x65,0x7E,0x6A,0x54,0x6C,0x48,0xD2,0x14,0x47,0x62,0x7B,0x57,0x26,0xF7,0x05,0x73,
+0x57,0x80,0xCC,0x5A,0x08,0xF9,0x31,0x88,0x53,0x52,0xB8,0xFA,0x04,0x40,0x2E,0xBC,
+0x51,0x36,0x75,0xA9,0xD6,0x1F,0xAE,0x10,0x0C,0xA6,0x0E,0xFF,0xD2,0xC5,0x84,0xA8,
+0xE7,0x33,0x81,0xF6,0xD1,0x37,0x07,0x50,0xEC,0x17,0x16,0x60,0x4C,0x22,0xF6,0xA9,
+0x1F,0x27,0x02,0x13,0xE6,0x9C,0x72,0x3D,0x3B,0xAB,0x5F,0x20,0xFD,0x46,0x15,0x35,
+0x7D,0xE1,0xDB,0xB4,0x72,0xF0,0xAF,0x67,0x43,0x46,0xC6,0x19,0xB5,0x24,0xCD,0x20,
+0x4D,0x13,0xB8,0x1E,0x5F,0x6D,0xC1,0x06,0x7A,0xED,0xA5,0x38,0x92,0x18,0xD4,0x0F,
+0x8A,0x04,0xF4,0x5D,0x94,0xBF,0x4F,0xAF,0xE6,0x95,0x99,0xD0,0x3C,0xA4,0x93,0x82,
+0x56,0x67,0xBE,0xC4,0x3F,0x52,0x44,0xE5,0x3D,0x85,0xDF,0x61,0x18,0x52,0x96,0xCD,
+0x31,0xFC,0x69,0xAA,0xCE,0x5E,0xE8,0xEA,0x4E,0xFC,0x94,0x2D,0x81,0x31,0xDC,0x11,
+0xBF,0xAB,0x99,0x3E,0x6D,0x99,0x40,0xDD,0x62,0x71,0x69,0x64,0x95,0x9C,0xEC,0xD2,
+0x6E,0x35,0xBA,0x0F,0xEE,0xB6,0xD1,0x40,0x02,0x00,0x3C,0x01,0x33,0x9F,0x23,0xED,
+0x09,0xAE,0x6D,0x61,0xD3,0x40,0x5A,0xA6,0x2C,0x87,0xFC,0x47,0x10,0xED,0x1E,0x7F,
+0x92,0x9B,0x45,0xBD,0xEC,0xC1,0x8C,0xB6,0x28,0xA3,0x41,0x09,0x2B,0xC3,0xBF,0x21,
+0x5C,0xCB,0x1C,0x01,0x75,0xD8,0x06,0x27,0x06,0x24,0x81,0x4F,0xF7,0xF6,0x97,0xBA,
+0x61,0xC4,0x16,0x03,0x59,0x94,0xFA,0x8F,0x3A,0xBD,0x02,0xE5,0x65,0xE0,0x49,0xB4,
+0x03,0x02,0xCF,0xA4,0xB1,0x08,0x82,0xB3,0x15,0x2C,0x9F,0x66,0x25,0x3D,0x19,0x13,
+0x8C,0xB2,0x4D,0xAE,0x87,0x72,0x65,0x17,0x69,0xE5,0xBB,0x11,0x4F,0xE8,0xEA,0xC9,
+0xE0,0x62,0x4A,0x9B,0xCF,0x8F,0x7A,0x23,0x7E,0xC9,0x18,0x76,0xD6,0x8B,0xA0,0x15,
+0x6C,0x39,0x7F,0xAB,0xAF,0xB0,0xFF,0xC0,0xD3,0x92,0xF5,0x00,0x39,0x2F,0xA1,0x62,
+0x39,0x27,0x14,0x2E,0xC0,0x35,0xD1,0xB0,0x77,0x6E,0x51,0x60,0x48,0xE1,0x7E,0x87,
+0xFD,0x6C,0x61,0x86,0x53,0xE6,0x82,0x78,0xD8,0x5B,0x3C,0x03,0xA7,0x55,0x02,0x56,
+0xE6,0x5A,0x6D,0x9C,0x4C,0x3E,0x93,0xDC,0xE8,0x76,0xE0,0x80,0x0B,0x90,0x08,0xF4,
+0x48,0x47,0x41,0x4B,0x23,0x60,0xA9,0x1D,0xCE,0x55,0xE2,0x91,0x79,0xB3,0x9A,0xC9,
+0x24,0xCB,0x03,0x40,0x41,0x0A,0xC1,0x66,0x0F,0x77,0x92,0x1E,0xDA,0x74,0xAD,0x61,
+0x75,0x64,0xD3,0x39,0xF6,0x2F,0xDD,0xAB,0xDF,0x1B,0x95,0x2B,0x73,0xEE,0x11,0x37,
+0x36,0x01,0x66,0xD7,0x29,0xD0,0x26,0x9F,0xDD,0xED,0xC8,0x5C,0xA8,0x57,0x3F,0x5C,
+0xD8,0x87,0xAB,0x6C,0x7C,0x65,0x1F,0xE9,0xC8,0xDC,0xD9,0x68,0x99,0x05,0xDB,0x12,
+0x30,0xDB,0x7D,0xA3,0xAD,0x64,0xD6,0x7B,0x30,0x67,0x44,0x9F,0x71,0x99,0xE7,0x6A,
+0x71,0xAF,0xEB,0x6B,0x11,0x34,0x18,0x22,0x14,0xB2,0x1B,0xF9,0xD1,0xF8,0xEF,0x0D,
+0x31,0x34,0x0A,0x07,0x1B,0x84,0x97,0xA0,0x5F,0xB9,0xCB,0xA2,0x89,0x6E,0x5C,0xF7,
+0x42,0x45,0x7C,0x44,0xF5,0xE5,0xBD,0xB7,0x91,0xA6,0xB1,0x2F,0x05,0x43,0xFC,0x6C,
+0x62,0x8A,0xF9,0x58,0x06,0x53,0xBB,0x0E,0x54,0xFB,0xA7,0x2E,0x68,0x09,0xD4,0xBE,
+0x84,0x1F,0x2A,0xCA,0x5D,0x18,0xB0,0xDE,0x19,0x79,0x4C,0x8C,0x00,0x1C,0x4A,0x98,
+0x41,0xBB,0x28,0xC6,0x15,0x7A,0xA5,0x06,0xB6,0x4C,0x21,0xEF,0x75,0x17,0x98,0x0C,
+0xD4,0x5F,0x8D,0x17,0x0F,0x29,0x54,0x90,0x9E,0x9B,0xBB,0x2D,0xFD,0xB4,0x47,0xF1,
+0xA2,0x0A,0xB4,0xA2,0x33,0x83,0xD7,0x09,0x67,0xE9,0xB4,0x0B,0x4F,0xC9,0x3E,0x2E,
+0xC1,0xA0,0x84,0x50,0xC6,0x74,0x51,0x9E,0x27,0xA0,0x08,0xDC,0xCB,0xCE,0xE3,0x16,
+0x9A,0x0D,0x69,0x26,0x3F,0x72,0xD8,0xA5,0x1A,0x46,0x83,0x2A,0x43,0x6D,0x3C,0xEB,
+0xC6,0x95,0xE8,0x80,0x82,0xE7,0x4B,0xEA,0x33,0x58,0x8B,0x39,0x8C,0x31,0xEA,0x03,
+0x2F,0x26,0x49,0xEB,0x8F,0xD3,0x19,0x50,0xBC,0xC7,0xDF,0xB2,0xFF,0xC3,0xB1,0xAC,
+0xF3,0xA5,0x64,0xDB,0x30,0x49,0xB7,0x15,0xF9,0x38,0x97,0x3A,0x6E,0xF0,0x5D,0x85,
+0x7D,0x77,0xCD,0x10,0xF3,0xA4,0x3D,0x99,0xD2,0xD0,0xC2,0x5E,0xB9,0xED,0x71,0x2B,
+0x23,0xFE,0x6F,0x90,0x4B,0xBA,0x4E,0xE4,0x38,0x1A,0xE7,0xB5,0x4C,0x6F,0x01,0xE1,
+0x96,0xD5,0x4F,0x5D,0x7E,0x6A,0x22,0xE3,0xF3,0xB3,0x69,0x67,0x55,0xFF,0x32,0x35,
+0xC4,0x84,0xCB,0xA6,0x07,0x96,0xE6,0x18,0x47,0x43,0x8D,0xE3,0x57,0x88,0xC4,0x68,
+0x82,0xC5,0x31,0xBE,0xA6,0x11,0x04,0xEF,0x5C,0x86,0x04,0x04,0xBD,0x63,0x0E,0x4D,
+0x0A,0xCD,0x83,0x01,0x10,0xF1,0x45,0x34,0xD6,0xAF,0xA4,0xD0,0xC3,0xE4,0x9E,0xB5,
+0x8C,0x0C,0x34,0xE3,0x49,0xB5,0x73,0xEE,0xB1,0x0C,0x88,0xC7,0x5B,0x2C,0xC6,0xAD,
+0xB3,0x3E,0x85,0xB7,0xE9,0xF7,0xCC,0x0F,0xC1,0x68,0xE8,0x93,0x0C,0xB8,0x48,0x5D,
+0x81,0x3B,0x65,0x3C,0x94,0x45,0xB5,0xD0,0xE1,0xC2,0xD1,0x7B,0xEC,0x0E,0x09,0x86,
+0x8F,0xF2,0x60,0x61,0x72,0x9B,0x2D,0x4F,0x95,0xD9,0xD7,0xA1,0x42,0xBC,0xF5,0x79,
+0x19,0xE8,0x91,0x32,0x36,0x08,0x37,0x3B,0xFB,0xCE,0xCA,0x4D,0x1B,0xFB,0x8F,0x11,
+0xA8,0x08,0x89,0xAD,0xA8,0xEF,0x36,0x49,0xFE,0x78,0x3E,0x12,0x1C,0xD3,0xCF,0xB8,
+0xDD,0xA3,0xE4,0x9A,0xC2,0x3A,0xEC,0xBA,0xB3,0xFA,0xD5,0xB0,0xA1,0xAC,0x8B,0x6D,
+0xED,0xB7,0x27,0x37,0xE0,0x8D,0x23,0x91,0x4D,0xC8,0x73,0xBE,0xC5,0x1D,0x17,0x8E,
+0x74,0x8B,0xA4,0x9D,0x00,0x12,0x3B,0x20,0x98,0x12,0x80,0xD4,0x36,0x66,0xEE,0x7F,
+0x47,0x61,0x33,0xB2,0x16,0xB0,0xC5,0x1A,0x13,0xF2,0xB2,0xD1,0xF6,0x38,0x05,0x9D,
+0x13,0xEA,0xAC,0x3D,0xB1,0x76,0xA7,0xC3,0xC0,0xA1,0x7A,0x42,0x4E,0x18,0xF7,0xBC,
+0x27,0x35,0x57,0xC2,0xCA,0x85,0x5E,0x32,0x7E,0xDA,0x60,0x9B,0x1F,0x75,0xF0,0x77,
+0x5E,0x46,0x1C,0x8E,0x97,0x8F,0xD5,0xCC,0x70,0x2E,0xF8,0x48,0x41,0x1A,0xCA,0xB6,
+0x5B,0x62,0x53,0x78,0xD6,0x97,0x2F,0x8A,0x16,0x44,0x46,0x8E,0x93,0x58,0x50,0xEC,
+0x4E,0x9D,0x5A,0x3F,0x22,0xA5,0xF4,0x0B,0x87,0xA8,0x6F,0xBD,0x22,0x83,0x16,0xFC,
+0xCF,0x69,0x81,0x0D,0x24,0xE4,0x74,0x25,0x6F,0x94,0x17,0x21,0xFA,0x9C,0x07,0x58,
+0x4A,0x56,0x62,0x6D,0x7A,0x24,0x9F,0xC7,0x5A,0x0F,0x3F,0xFD,0x04,0x92,0x35,0xFE,
+0x59,0x73,0x70,0x5E,0xC4,0x7B,0x6C,0x94,0x15,0x7B,0x89,0x28,0xD9,0xD2,0x92,0xAE,
+0x67,0xAE,0xB6,0xAE,0xA9,0x2A,0x6B,0x5F,0xEE,0xFF,0xDB,0x79,0xB4,0x98,0xBA,0x7C,
+0xD3,0x6A,0xE1,0xC7,0x44,0x81,0x21,0x54,0x7D,0xE5,0xAF,0x3D,0x88,0xBF,0x95,0x65,
+0x76,0x9A,0x87,0xBB,0x32,0x46,0x8A,0x1F,0xAF,0x7F,0xF5,0x7F,0x02,0x6B,0xBC,0xC5,
+0x2D,0x37,0x6A,0xCD,0xDD,0xE2,0xFD,0x1E,0xF4,0xF3,0xC0,0x4F,0x62,0x54,0x5F,0x40,
+0x93,0xF1,0x00,0xAB,0xC1,0xF0,0x8C,0xA6,0xCF,0x9C,0x70,0x40,0x7C,0xEC,0x2C,0x3D,
+0x5A,0x8D,0x24,0xDC,0xAB,0x25,0x56,0x55,0x7F,0x13,0xF2,0x4A,0x4A,0x96,0x88,0xDA,
+0x9B,0xE2,0x1E,0x82,0x13,0x3B,0x25,0x28,0x06,0xC3,0xA3,0xE5,0xB8,0x3C,0xB8,0xB9,
+0x02,0xDE,0x9D,0x28,0x81,0x2D,0x2B,0xF6,0x09,0xFE,0xA9,0xE7,0x94,0x70,0x10,0x45,
+0x38,0xC8,0x63,0x8A,0xF4,0x20,0xE0,0xA1,0x63,0x96,0xD2,0x85,0x1E,0xA4,0x39,0xE5,
+0x1C,0xCC,0xDE,0xC4,0xCF,0x0E,0xBE,0x00,0x56,0x0D,0xFA,0x59,0x21,0x25,0x29,0x33,
+0xCE,0x86,0xF6,0xA9,0x71,0x51,0x4D,0x53,0x66,0x20,0x26,0xDA,0xA0,0x7D,0x42,0xFF,
+0xBF,0xE6,0xA3,0xCC,0xD7,0x52,0x72,0x9C,0xF8,0xF1,0x05,0xEB,0x23,0x52,0xDF,0x6E,
+0x3A,0xD9,0x40,0xAC,0xFC,0x9F,0x52,0x29,0xAA,0xC9,0x01,0x20,0xF2,0xB6,0x7A,0xFB,
+0x43,0xAA,0x0B,0xE0,0x65,0xFC,0x8E,0x63,0x31,0xAE,0xD6,0x4E,0x03,0xBA,0x75,0x57,
+0x52,0x9E,0x3A,0xF5,0x76,0xD5,0x90,0x6B,0xDE,0xD2,0x07,0xFA,0x92,0x89,0x99,0x7E,
+0x2A,0x02,0x06,0x1D,0xD8,0x69,0x1D,0x2C,0xC9,0x15,0x4B,0xB9,0x59,0x5B,0x30,0xF0,
+0x14,0xDF,0xC0,0xED,0x19,0x8B,0xAA,0xAA,0xEA,0x80,0xBD,0xF7,0x2B,0x78,0xA2,0xCD,
+0xF9,0xA7,0x59,0xD4,0x51,0xE9,0xBF,0x72,0x2C,0xE2,0x64,0x50,0xBF,0x14,0xF8,0x10,
+0x88,0xBD,0x62,0xD5,0x66,0x54,0x50,0x7C,0xE1,0x9D,0x57,0x46,0xC1,0xC3,0x81,0x98,
+0x84,0xB2,0x93,0x79,0x01,0x83,0xCB,0x12,0xAB,0xFE,0xCE,0x9A,0xB8,0x88,0xCD,0xEB,
+0x60,0x17,0x42,0xEC,0x39,0x87,0x99,0xD9,0x1E,0x33,0xE5,0xBA,0x3D,0x6B,0xAD,0xD4,
+0x4F,0x8A,0xC1,0x7D,0xE8,0xA4,0x07,0xE8,0xD1,0x30,0x43,0x85,0x4C,0x3E,0xC8,0xB4,
+0x26,0x30,0xDE,0x92,0x2A,0xE6,0x4D,0x62,0xF0,0x88,0x63,0x77,0x7B,0x91,0xB5,0x95,
+0x4A,0x6A,0x4A,0x4F,0x48,0x3F,0x8B,0xC5,0x28,0xEA,0x2B,0x62,0x96,0x08,0x8C,0xED,
+0x69,0xF8,0x38,0x72,0xDD,0xC9,0xA8,0x8B,0xAE,0x08,0xEA,0xD5,0xA8,0xCE,0x7C,0x30,
+0xBB,0x51,0xF3,0xFC,0x1A,0x85,0xBF,0xC8,0xE9,0xB4,0x44,0x58,0xD0,0xF2,0x94,0xAC,
+0xA4,0x40,0x2B,0x58,0xDB,0x70,0x1E,0x78,0xD7,0x44,0x99,0x9E,0xD8,0xEC,0xBD,0xBF,
+0xDE,0xE4,0x1D,0xBF,0x54,0xF2,0xAE,0x72,0x24,0x91,0xF3,0x44,0x11,0xC8,0xCA,0xC3,
+0x66,0x97,0x03,0xC2,0x3B,0x42,0x95,0x7D,0x9C,0x83,0xEF,0x35,0xAF,0xA2,0xAC,0x05,
+0x59,0x74,0x63,0x47,0xB7,0x77,0xCE,0x4D,0x9D,0x27,0x00,0x42,0xF4,0x4F,0xDA,0xA8,
+0x17,0xE1,0x40,0xB1,0xC5,0x78,0x37,0x6B,0x82,0x6F,0xFD,0x76,0x9E,0x16,0xA5,0xFE,
+0x96,0xF1,0x7F,0x67,0x5E,0x50,0x02,0xB7,0x23,0x41,0xC6,0x28,0xBA,0xAB,0xEB,0xFA,
+0x42,0xD8,0xF5,0xC7,0x36,0x2B,0x68,0xD5,0x74,0x4C,0xB3,0xE3,0x80,0x55,0x49,0xEC,
+0x0E,0x70,0xD9,0x3B,0x0B,0x21,0x67,0xD7,0xAA,0x5A,0x21,0xED,0x19,0xD6,0xE3,0xD0,
+0xAE,0xCF,0x9B,0xDA,0x5C,0x95,0x0E,0x13,0xA7,0x85,0x16,0xBC,0x4D,0x49,0x6C,0x5B,
+0xB1,0xDE,0x43,0x7E,0x60,0xED,0xE6,0x8F,0x89,0xC4,0x10,0x3C,0xCC,0x92,0x5E,0xAF,
+0x6A,0x98,0xF2,0x6E,0x8C,0xC4,0x77,0xBC,0x08,0xF6,0xE4,0xE7,0xD9,0x9B,0x19,0x50,
+0x28,0x02,0x20,0x34,0xE6,0x7A,0x11,0x7A,0x4E,0xEE,0xA5,0x1D,0xDC,0xD4,0xEF,0x74,
+0x8D,0x5D,0xE9,0xE7,0x2D,0x2D,0x1C,0x0F,0xD6,0xE0,0x76,0xE9,0x51,0x29,0xA6,0x58,
+0xAA,0x72,0xD5,0xFE,0x37,0x59,0x8F,0x4B,0xDD,0x4B,0x9B,0xA3,0xE5,0x7E,0xCF,0x9C,
+0xE0,0x5A,0xB8,0x2C,0xB3,0x0B,0x74,0x1A,0x16,0x1A,0xF6,0xA4,0xDB,0xB8,0x3F,0x41,
+0xA0,0xFD,0x65,0x7C,0xC7,0xBD,0x3B,0xCF,0x45,0x45,0x48,0x57,0xC8,0xAA,0x0C,0x64,
+0x2F,0xDF,0xA4,0x0C,0x00,0xF1,0x2C,0x8C,0x13,0xEC,0xD2,0xEB,0x6F,0xEF,0x56,0x85,
+0x9E,0x43,0xC0,0xEF,0x32,0x57,0xD2,0x82,0x38,0x5B,0xF0,0x24,0x5F,0x2C,0xFB,0x91,
+0xE1,0x07,0x7D,0x3A,0xB0,0xBC,0x9F,0x20,0xCB,0x8E,0x9A,0xFE,0x2A,0x41,0xCC,0x3A,
+0xC9,0x47,0x7A,0x93,0x06,0x48,0x9A,0x7F,0xB9,0x69,0x04,0xFF,0x9B,0x59,0x53,0xDA,
+0x47,0x38,0x7E,0xF5,0x12,0xE2,0x1F,0xA9,0xB0,0xE4,0xF8,0x96,0xA5,0x9F,0xA3,0x07,
+0x2A,0x3F,0x2F,0x3E,0x69,0xF8,0xA1,0x70,0x41,0x17,0x83,0x6F,0x91,0x64,0x5C,0xD8,
+0x0A,0xCD,0x97,0x1F,0x3A,0x30,0x72,0xE3,0x98,0xD1,0x24,0x0D,0xC5,0xFB,0xD3,0x53,
+0x54,0x26,0x57,0xFD,0xDA,0x02,0xF9,0xE6,0xA2,0x73,0x32,0xF3,0xF6,0x6C,0xFC,0xB9,
+0xD6,0x56,0xA2,0x37,0x67,0x26,0xB7,0xE2,0xB6,0x90,0x22,0x8D,0x88,0x4B,0x60,0xFF,
+0x51,0xC6,0xDC,0xCF,0x4E,0x86,0x3D,0x36,0x6D,0x70,0x94,0xCC,0x00,0xF9,0xDF,0xF7,
+0xBA,0x0C,0x36,0xEA,0x8B,0x0F,0x26,0xD1,0x9A,0xF7,0x35,0x2E,0x46,0x03,0xC7,0xB6,
+0xCD,0xFA,0x34,0xB7,0x7B,0xEB,0x92,0x55,0x61,0x0B,0x4C,0xEA,0x14,0x87,0x3C,0xE7,
+0x8E,0x3D,0x23,0xFB,0x11,0x55,0xF4,0x93,0xCD,0xFA,0x40,0xE5,0x0D,0xA8,0x00,0xC0,
+0x3C,0xC1,0x8D,0x04,0x0A,0x53,0x80,0x49,0x52,0x24,0xA6,0x7D,0x03,0xAD,0x5D,0x09,
+0x8A,0x80,0x6D,0xDF,0xA0,0x6A,0xA0,0xA1,0x8D,0x96,0xDB,0x04,0x31,0x4D,0xD6,0x0C,
+0x1E,0x0E,0x3A,0x2F,0xC4,0x0A,0xD0,0xF5,0x6C,0xD4,0x7B,0xBB,0x0E,0xFC,0x82,0x3E,
+0x03,0x22,0xED,0x81,0x90,0x09,0x52,0x0B,0x68,0x86,0xB0,0x83,0x44,0x20,0xE1,0xA7,
+0x5F,0xF4,0x22,0x69,0x8E,0x01,0x7B,0x18,0x27,0x13,0x0D,0x10,0x18,0xA1,0x47,0x3F,
+0xFC,0x2B,0xAA,0x94,0x68,0x8A,0x46,0xEE,0x1C,0x15,0xF4,0x99,0x43,0x4C,0x31,0x92,
+0xFB,0xF6,0x2E,0xAC,0x21,0x36,0x06,0x39,0x8B,0xE2,0x01,0x1F,0x20,0x7C,0xC3,0x38,
+0x5D,0xC9,0x2D,0x63,0xD2,0x65,0x59,0x87,0x66,0xDB,0x79,0x86,0xA1,0xA7,0xF1,0xCC,
+0xDF,0xB9,0xD8,0xA9,0x18,0x40,0xB3,0x6C,0x1B,0xC5,0xC1,0xF5,0xFF,0x05,0x71,0x45,
+0xC2,0x95,0x0F,0x07,0xF0,0x15,0x98,0x08,0x97,0x28,0x02,0x7F,0x71,0xAC,0xBA,0x97,
+0xF1,0x79,0x9E,0x2E,0x0F,0x5D,0xDD,0x80,0xD2,0xB2,0xBD,0xD1,0xAD,0x81,0x8A,0x14,
+0x71,0x34,0x64,0xEE,0x6E,0x33,0xF0,0x1D,0x35,0x84,0xC7,0x75,0xC0,0xB4,0x25,0x77,
+0x5C,0x94,0xE8,0x75,0x71,0x49,0x3E,0x90,0x22,0xE5,0x29,0x5F,0xB3,0xC2,0x66,0x06,
+0xCA,0x27,0xB0,0x8F,0x7A,0x99,0x75,0xCB,0xA0,0x55,0x23,0xD0,0xF3,0x23,0x0A,0x9D,
+0xAB,0x2F,0x10,0xE8,0xAF,0xC6,0x51,0xAD,0xF9,0x05,0x9F,0x1E,0xB2,0xB5,0xC2,0xE9,
+0x86,0x8F,0x9C,0x73,0x53,0x39,0xFF,0x1F,0x12,0x48,0x3D,0x9C,0x56,0x45,0x76,0x6D,
+0x25,0x50,0x14,0x8E,0x84,0xA3,0xD7,0xDD,0x84,0x1B,0x27,0x6D,0xC3,0xE0,0xA7,0x89,
+0x2E,0x82,0x61,0x1A,0xB1,0xCE,0x78,0xBE,0x5C,0x79,0x6F,0x78,0x06,0xE2,0xAB,0x2D,
+0x3B,0x1C,0x09,0x3C,0x33,0x25,0x35,0x1C,0x8C,0x32,0x34,0x73,0xE0,0x31,0x39,0xB8,
+0x81,0x52,0x18,0x4B,0x9D,0x60,0xAF,0xA3,0x9F,0x01,0x11,0x61,0xCA,0x89,0x2A,0x75,
+0xA2,0xC0,0x6A,0x76,0xBE,0x62,0x89,0xB2,0x5E,0x5F,0x7E,0x5B,0x64,0xA5,0xFD,0x68,
+0x67,0xCA,0xC6,0xD4,0x93,0xBE,0xB9,0x31,0xFA,0x87,0x61,0x4A,0x7F,0xA9,0xE7,0x5E,
+0xD3,0xB6,0x29,0x05,0xA6,0xD3,0x16,0x52,0x32,0x54,0xF2,0x19,0xBB,0xDC,0x4F,0x15,
+0x37,0x13,0xF8,0x90,0x14,0x5B,0xA9,0x5A,0x6B,0x04,0x4E,0xD7,0x5A,0x63,0x0D,0xB5,
+0x65,0xF7,0xC9,0xDE,0x25,0x4A,0xBC,0x6E,0x1D,0xB1,0x1B,0xEE,0xB4,0xAE,0xB6,0x33,
+0xDC,0xD9,0x12,0xB5,0xD3,0x17,0xBE,0x19,0x29,0x4E,0xC4,0x15,0xF7,0x1B,0x58,0x56,
+0x46,0x65,0xBB,0xE3,0xBF,0x10,0x6E,0x2C,0xE4,0x6B,0x73,0x09,0xA6,0xCB,0x21,0xF9,
+0x5B,0x11,0xA5,0xEF,0x63,0x2F,0x1F,0x86,0x7E,0xAF,0xDD,0x90,0xC8,0x4F,0x9B,0x81,
+0xED,0xCA,0xE4,0x0F,0xD1,0xA7,0xA0,0x8E,0xEE,0x28,0xA3,0x68,0x42,0x66,0x4F,0x21,
+0x4C,0x3D,0x06,0x88,0x2B,0xE1,0xB8,0xCF,0x24,0xC3,0x49,0x4D,0x59,0xA3,0xA8,0xA8,
+0x35,0xC6,0xC2,0x74,0xAF,0xB3,0x43,0x9E,0xD2,0xB4,0x4B,0x10,0xED,0x53,0x2C,0x4C,
+0x39,0x6A,0xCD,0x85,0x80,0xAA,0x7F,0xB9,0x15,0xF7,0x5C,0x5C,0x8B,0x39,0xEA,0xF2,
+0xDF,0xF5,0x55,0x5B,0x85,0xA4,0x22,0x70,0xE9,0x45,0xF2,0xA3,0xFF,0x22,0x30,0xF4,
+0xA2,0x2A,0x2C,0xE9,0x65,0x96,0xA9,0x75,0xA8,0xF3,0x12,0x78,0xDF,0x88,0xD8,0xCD,
+0x02,0xCB,0x93,0xAB,0xD4,0xA9,0xFD,0x47,0x26,0x67,0x45,0x88,0xAF,0xEC,0x8C,0xAD,
+0xC9,0xCF,0xAB,0xF9,0x08,0xE3,0x9E,0xDE,0x0A,0x7A,0x92,0x26,0x2D,0xB8,0x72,0xAE,
+0x74,0x80,0x38,0x6C,0x89,0xBF,0x38,0x46,0xDC,0x26,0x5D,0xCE,0x04,0xA6,0x61,0xA6,
+0x8D,0xBB,0xB1,0x6A,0x64,0xE4,0x4E,0xEB,0x03,0x85,0xD5,0x33,0x39,0x40,0x97,0x2D,
+0x78,0x2C,0x37,0x9D,0x54,0x87,0xBC,0x41,0xDE,0x82,0x51,0x0B,0x79,0x09,0x40,0x91,
+0x00,0xC1,0xAE,0xA4,0x8F,0x06,0x8E,0xB5,0xE1,0x24,0x52,0xC4,0x26,0xFA,0xFE,0xC2,
+0xB8,0xBC,0xDD,0xBA,0x2D,0x58,0x0E,0x3C,0x91,0xA6,0xA7,0x0E,0xCC,0x30,0x15,0xE7,
+0x7B,0x30,0x57,0x57,0x84,0xD6,0xC5,0xEE,0xBD,0xBB,0x70,0xA0,0xE7,0xD8,0x71,0xB2,
+0xC4,0x75,0xF9,0xCD,0xA9,0x0A,0xF5,0x6D,0x51,0x88,0xE1,0x89,0xA2,0x27,0xF9,0xFA,
+0xBE,0x92,0x5D,0xFB,0x9C,0x67,0x5A,0x0E,0x1C,0x08,0x1B,0x49,0x8F,0x46,0x64,0x94,
+0x50,0x85,0x77,0x9A,0xEA,0x14,0x19,0x7F,0xBC,0x25,0x97,0xD2,0x41,0x59,0xE9,0xEE,
+0x5A,0x07,0xF8,0x2A,0x0B,0x54,0x75,0xE4,0x0F,0xB3,0xCF,0x28,0x0A,0x52,0xB2,0x3E,
+0xE6,0x5E,0x36,0x7A,0x9D,0x15,0xBD,0x90,0x07,0xD2,0x6F,0x4F,0x2E,0x87,0xD4,0x61,
+0x44,0xB5,0xB4,0x37,0x6D,0xF1,0x09,0x14,0xA7,0xFF,0xE3,0xD4,0x80,0x7B,0x66,0x9E,
+0x5E,0x23,0x45,0x64,0xC8,0x64,0xD8,0xF0,0x78,0x5C,0x6B,0x29,0xA8,0xAC,0xA4,0x04,
+0x16,0xFB,0x50,0x06,0xCA,0xA1,0xD4,0x54,0xAA,0x57,0x1E,0xBD,0x07,0x99,0xC7,0x69,
+0x4D,0x2B,0x5B,0x4D,0x19,0x47,0x46,0xC1,0x34,0x42,0x76,0x9B,0x4A,0x1B,0x65,0x82,
+0x68,0x38,0x49,0x7E,0xA1,0x6D,0x55,0x0C,0x7A,0xF8,0x67,0xEC,0xD0,0xB5,0xDA,0xC7,
+0x07,0xF9,0x73,0x20,0x8D,0xC3,0x82,0x11,0xE8,0xDB,0x15,0xD1,0xF6,0x96,0xCB,0xC5,
+0x18,0x5D,0x62,0xF8,0x81,0xD8,0x98,0x27,0xE2,0x1E,0xB9,0x73,0xC6,0xBB,0x48,0x19,
+0x8B,0x95,0x31,0x2B,0xF4,0x1C,0x30,0x6C,0x9E,0xAA,0x56,0xA2,0x69,0x8E,0x2B,0x74,
+0x37,0xCC,0xFF,0x7B,0x4B,0xFD,0x72,0xCC,0x3B,0x4E,0x87,0x37,0xD6,0x3C,0x23,0xFC,
+0x62,0xBA,0xC6,0xCE,0x86,0x13,0xC9,0x4A,0xDF,0x1C,0xB6,0x79,0xC3,0x0D,0x17,0xED,
+0xBD,0x8E,0x3D,0x31,0x33,0x50,0x27,0x2F,0xF1,0xA5,0x6D,0x12,0xC1,0xFB,0x60,0xB0,
+0x0A,0x43,0x21,0x14,0xE3,0x01,0x5E,0x80,0x4D,0x3F,0xC4,0x44,0x11,0x97,0x55,0xB7,
+0x2E,0x46,0x6E,0xE2,0xEB,0x66,0xFE,0xE1,0x95,0xF1,0x1D,0x72,0x2F,0x4E,0x05,0xF3,
+0xB7,0x0C,0xB2,0x81,0xA0,0x1F,0xB2,0x92,0x9A,0xFD,0xEC,0xDE,0xB4,0x29,0x6B,0x24,
+0x9C,0xB9,0x92,0x4C,0x43,0x9A,0xD2,0xAD,0x3F,0x19,0x3D,0x4B,0xE6,0x11,0xA0,0x20,
+0x3A,0x76,0xAD,0x4F,0x16,0xEB,0xB7,0xCD,0xA2,0x36,0xBE,0xDA,0x78,0xC0,0x91,0x03,
+0x1A,0x57,0x5F,0xF7,0xB9,0xDC,0xCA,0xEC,0x18,0x5F,0xA1,0x35,0x32,0x02,0x1B,0x41,
+0x52,0x8F,0x4A,0x95,0x20,0x31,0xF3,0x94,0x42,0x33,0x35,0xE8,0xF4,0x60,0xBC,0x98,
+0x93,0x09,0xFD,0x77,0xE6,0x0F,0x03,0x49,0xD0,0x10,0x47,0xD5,0xD7,0xF5,0xF2,0x6E,
+0x3D,0x4E,0x70,0xCB,0xDA,0x77,0xEB,0xD5,0x79,0xC2,0x8C,0x5B,0xC0,0x32,0xB1,0x22,
+0xE0,0x70,0xB6,0x3B,0xC4,0x7F,0xC2,0xC6,0x68,0xDD,0x54,0xFF,0x61,0xF3,0x01,0xD7,
+0x8A,0x83,0x6C,0xEE,0xE0,0xB6,0xB5,0xBA,0xCC,0xA7,0x62,0x18,0xD1,0x7C,0x0B,0x55,
+0x96,0x3B,0x1D,0xFC,0x8A,0x08,0xD3,0x7C,0xBF,0x1F,0x7C,0x65,0xEA,0x13,0x04,0xE5,
+0x79,0x3A,0x6A,0x58,0x67,0x53,0xA5,0xD1,0x5C,0x20,0x1C,0xE0,0xB1,0x9F,0x34,0xD0,
+0x84,0x25,0x5E,0x10,0x3E,0x39,0xDA,0x87,0xC9,0x6E,0x3F,0x16,0x48,0xED,0x12,0xDF,
+0xBF,0x84,0x00,0x3E,0x83,0x1D,0x94,0x83,0xD9,0xEF,0x00,0xC0,0x7D,0x76,0xCE,0xF7,
+0xCA,0xD3,0xCB,0x33,0x7D,0x27,0x36,0x95,0xF0,0x3B,0x8A,0x60,0x17,0x1E,0xAC,0x8C,
+0x58,0x0D,0xC5,0x25,0xFE,0xBE,0x9C,0xA9,0x58,0x77,0xA6,0x9C,0x18,0x23,0xAE,0x86,
+0x6F,0x00,0x94,0xFA,0x61,0xEA,0x13,0x22,0xE7,0xD7,0xE4,0x7D,0x71,0x74,0x6A,0x32,
+0x69,0x2E,0x14,0xBB,0xBA,0x6B,0x21,0xD6,0xF6,0xC8,0x3C,0xD9,0x99,0x48,0xF6,0x4A,
+0x9D,0xAF,0xCF,0x89,0xB3,0x7E,0x66,0x29,0xB0,0x13,0x8D,0xC9,0x08,0xA4,0xC5,0x63,
+0xDC,0xE9,0x35,0x91,0xFC,0x7B,0x90,0x0D,0x2A,0x51,0x5F,0x93,0x6E,0xCE,0x03,0xDD,
+0x0F,0x71,0xC1,0x9F,0x01,0xF6,0xD9,0x21,0x75,0xF4,0x96,0x40,0x63,0x05,0x76,0x8A,
+0xE2,0x7A,0x8B,0x34,0x56,0x42,0xB0,0xE5,0x5A,0xD3,0xAA,0x59,0xF0,0x1F,0x32,0xFE,
+0x8F,0xB1,0x8C,0x65,0x90,0x7C,0x40,0x38,0x72,0x99,0xC7,0x8B,0x0B,0x9B,0x63,0xAC,
+0x31,0xE2,0x7F,0x3A,0x82,0x6F,0x73,0x1D,0xD5,0xD9,0x1A,0xDB,0x44,0xEF,0xB6,0x1A,
+0xAB,0xB4,0xC3,0x93,0xC7,0xC8,0x29,0xFC,0xF7,0x56,0xDB,0xAB,0x53,0x28,0xF5,0x56,
+0x89,0x9F,0x0C,0x24,0x04,0xF8,0x84,0xE8,0x6B,0xE7,0xBF,0x48,0xAD,0x1A,0xFB,0xF0,
+0xE3,0x6C,0xD6,0xF1,0x69,0x8D,0xB3,0x43,0x2F,0x98,0x02,0x9D,0xE0,0x98,0x59,0x1B,
+0x7D,0x1E,0xD7,0x16,0x71,0x3C,0x2C,0xA3,0x6F,0xB0,0x05,0x34,0xE5,0x2E,0x06,0xEF,
+0x81,0x17,0xBE,0x9B,0xB7,0x02,0xDC,0x7E,0x10,0x3E,0x01,0x52,0x60,0x3A,0xD0,0x45,
+0xFA,0xE6,0x47,0x68,0x4C,0x36,0x23,0xA1,0x17,0x53,0x50,0x99,0xDE,0x41,0x09,0x5F,
+0x5D,0x3F,0x25,0xAE,0xD3,0x62,0xAC,0x2A,0xE5,0x73,0xE8,0xB8,0x0D,0x12,0x9A,0x97,
+0x4B,0x05,0xDB,0x0C,0x44,0x51,0x83,0xC0,0x0E,0x2D,0x28,0x5A,0x86,0xF2,0x9F,0xA5,
+0x67,0x8D,0xDF,0x58,0x81,0xE2,0x99,0x5D,0xE8,0x0A,0x2D,0x26,0xA0,0xA1,0xF7,0x0A,
+0x13,0x58,0x90,0xEE,0x5C,0xA2,0xC9,0xFA,0xDB,0x18,0x3E,0x03,0xF3,0xFE,0x04,0xB4,
+0x97,0x09,0x6B,0xBC,0x31,0xE8,0x1B,0xD2,0x2B,0xDE,0x00,0xDE,0x38,0xAF,0x03,0xD9,
+0x8D,0x4D,0xF8,0xC8,0x0D,0xCF,0x02,0xFD,0x42,0x89,0xB4,0x1A,0x33,0x04,0x49,0x34,
+0x46,0x38,0xF5,0x9F,0xC4,0x6A,0xD1,0xA2,0x0B,0x74,0x39,0x36,0xAB,0x0A,0xBD,0xE7,
+0x2C,0xFE,0x93,0x21,0x16,0x28,0x8B,0x38,0xFD,0x3B,0x3C,0x12,0xED,0x12,0x47,0xA6,
+0xC0,0xCD,0x02,0x08,0xA7,0xF3,0x9B,0x7E,0xBA,0x32,0x29,0xED,0x6C,0x20,0x9C,0x52,
+0xFC,0x51,0xEA,0x70,0x7F,0xEC,0x3F,0x6F,0x88,0xE9,0xA8,0x19,0x42,0x61,0x1C,0x54,
+0x7A,0xA4,0x1D,0xE7,0xB3,0x16,0x18,0x86,0x18,0xCC,0x13,0xFB,0x47,0x97,0x53,0x70,
+0x9A,0xA1,0x96,0xD5,0x73,0x48,0xFA,0x6D,0x37,0x5B,0x20,0x11,0x7D,0x35,0xAD,0x66,
+0xC9,0x32,0x45,0x1D,0xCB,0x68,0xDB,0x9F,0xB8,0xC4,0x74,0x9A,0xA4,0xF3,0xCF,0xC1,
+0xB2,0xEB,0xFB,0x07,0x9A,0x05,0x10,0x98,0x47,0x3F,0x40,0x45,0x55,0x00,0x36,0xBA,
+0xA6,0x3D,0x7E,0xAD,0x9E,0x8B,0x76,0xE7,0xB7,0xF9,0x7E,0x98,0x5C,0x8D,0x5F,0x46,
+0x10,0x62,0x7B,0x59,0x99,0xA3,0xDF,0xA7,0x28,0xE1,0xCF,0x78,0x2E,0x6A,0x5E,0xD8,
+0x92,0xC0,0x36,0xB2,0x24,0xDC,0x0A,0xE3,0x1F,0x8C,0xBA,0xD3,0xDD,0xBF,0x84,0xB2,
+0xA0,0xCE,0xC8,0x14,0x40,0x6D,0xE9,0x7F,0xB2,0x4F,0x8A,0xC7,0xF6,0x08,0x4B,0x90,
+0xBA,0x8A,0x5B,0x60,0x17,0xF9,0x19,0xF1,0x70,0x52,0x35,0xEE,0x0C,0x50,0xF8,0x06,
+0x7D,0xC9,0x4C,0x2C,0xDC,0x2B,0x97,0x58,0x98,0x6E,0x4D,0x72,0x4B,0xEC,0x75,0xA8,
+0xE8,0x87,0x6F,0xDA,0xAE,0x08,0xAA,0xCA,0x68,0xA8,0x73,0xAF,0xCD,0x0E,0xC2,0x69,
+0x8A,0x20,0xA9,0x03,0x3A,0x64,0x77,0x90,0x51,0x31,0x9E,0xD7,0x15,0x6C,0xD7,0x21,
+0x48,0xAA,0xE3,0x41,0x25,0x0D,0x98,0x2A,0x2C,0x9E,0xA9,0xF6,0x34,0xD4,0x25,0x01,
+0x99,0x9B,0x7D,0x62,0xA6,0x22,0x09,0xB7,0x49,0xCB,0xD8,0x96,0xFB,0xD7,0x1A,0xA7,
+0xA1,0x50,0x2F,0x66,0x77,0xC6,0x9C,0x12,0x29,0x28,0x5D,0xA9,0x4E,0x1A,0x3A,0x8C,
+0xC6,0x3E,0xB4,0xB1,0x86,0xCA,0x30,0x1D,0x65,0x63,0x24,0xDA,0x04,0x79,0xE6,0x15,
+0xAB,0x95,0x83,0xC4,0x3D,0x4C,0xDE,0xD0,0x07,0x76,0xFC,0x92,0x4F,0xBE,0x4D,0x63,
+0x96,0x97,0x8C,0xCE,0x11,0x00,0x22,0x78,0xAD,0xF5,0x65,0xAE,0x91,0xA8,0x43,0xF1,
+0xFE,0xF5,0xE6,0xB5,0x9B,0xD4,0x82,0x51,0x0F,0x0B,0x5F,0xB8,0xC6,0xA5,0x88,0x84,
+0x65,0x29,0xD3,0x9D,0xA4,0x55,0x54,0x41,0x41,0xB6,0x7B,0xBC,0x67,0x8B,0xD6,0xBF,
+0x17,0x0F,0x2A,0x92,0x87,0x1B,0xA2,0xD4,0x3E,0xEF,0x11,0xEA,0x78,0xC3,0xE2,0x42,
+0x9B,0x3F,0x71,0xA7,0xE7,0x24,0x27,0x37,0x48,0x02,0x4A,0x47,0x79,0x67,0x95,0xAD,
+0xF4,0x30,0x4A,0x17,0xF9,0x9C,0x5A,0x44,0x2E,0x68,0xF4,0x81,0xC1,0x75,0xE4,0xB1,
+0x7B,0x3A,0xFA,0x95,0xCF,0xE6,0xBD,0xE0,0x59,0x4C,0x3D,0xFD,0x32,0xA0,0x3E,0xDB,
+0x93,0x5E,0xD1,0xC0,0xED,0x79,0xD9,0xBC,0xDD,0x91,0x05,0xFA,0x69,0xD6,0xD3,0x76,
+0x11,0xFC,0x9C,0x2B,0x85,0x6C,0xFF,0x22,0x4F,0x42,0xE3,0x6F,0xB9,0x9D,0xD8,0x2D,
+0x24,0x9F,0x33,0x46,0xF0,0x67,0x6B,0xF0,0x43,0x40,0x26,0xCB,0x61,0xFF,0xCD,0x65,
+0xF3,0x5D,0x1B,0xDC,0x78,0xC4,0x96,0x2F,0x92,0xE5,0xB3,0x2F,0xF7,0xAC,0x3C,0x7F,
+0x0F,0xEF,0xB5,0x23,0xF4,0xE9,0x0D,0x8F,0x26,0x15,0x57,0xAB,0x1C,0xE1,0xBE,0xDD,
+0xDA,0x89,0x91,0x7C,0x54,0x88,0x6A,0x87,0xEE,0x83,0x16,0xDF,0x45,0xB1,0x70,0x61,
+0xD1,0xD2,0xDA,0xAC,0x0C,0x1E,0x90,0x34,0x82,0x62,0x56,0x44,0xC7,0x01,0xFF,0x6B,
+0xCE,0x5F,0x14,0xD6,0x80,0x33,0x0B,0x94,0xC1,0x14,0x25,0x35,0xD0,0x60,0xD5,0x85,
+0x1F,0x6E,0x8A,0xF5,0x5F,0x04,0x06,0xC5,0xC5,0x6B,0x43,0xBB,0x01,0x8F,0xA9,0x31,
+0x73,0x5B,0x5A,0xF2,0xF6,0x9E,0x50,0x79,0xBC,0xBB,0x12,0x14,0xCC,0xAA,0xB5,0x86,
+0x85,0x2C,0x58,0xAF,0x2D,0x27,0x3B,0x57,0x52,0x0E,0x51,0x71,0xF8,0x55,0x4E,0x59,
+0xB4,0x18,0x4D,0xBE,0x1C,0x75,0x75,0xB3,0xE9,0xC3,0xBF,0xF7,0x8E,0xE0,0x77,0x0C,
+0x06,0x10,0xF2,0x36,0xCD,0x91,0xE0,0x16,0xAB,0x7C,0x5E,0x57,0xD7,0xB0,0xB9,0xB0,
+0x33,0x73,0x5D,0x5B,0x22,0x25,0x31,0x6A,0x03,0x09,0x9A,0x1C,0x1F,0x63,0xEA,0x23,
+0x1E,0xF0,0x6D,0x87,0x8E,0xE0,0x93,0x60,0x19,0x05,0x81,0x2A,0xBB,0xBB,0xFB,0x3C,
+0x3D,0xE1,0x4B,0x85,0xFC,0xC3,0xAE,0xF2,0xCE,0x29,0x2F,0x37,0x7A,0xE5,0xC1,0x53,
+0x64,0xB7,0x34,0xEF,0xDE,0x5C,0xCA,0xAE,0x66,0x5C,0xEB,0x7C,0x89,0x30,0x1B,0x39,
+0x00,0xE3,0x44,0x8F,0x89,0xC8,0x3A,0x20,0x32,0xED,0xD4,0x4E,0x68,0x72,0xA4,0x99,
+0xAA,0x0B,0x64,0xB6,0x69,0x7E,0xE1,0x61,0xB9,0x0D,0xE6,0x4B,0xB7,0xC0,0xDD,0xE4,
+0xB1,0xD1,0x10,0xB0,0xC7,0xCC,0x1E,0x9D,0xE4,0x08,0xE8,0x82,0x28,0x1E,0x45,0x02,
+0xDB,0x17,0x76,0x0E,0xD0,0x8F,0x52,0x5A,0xD8,0x27,0xF1,0xA5,0x84,0xEF,0x4A,0x0E,
+0x2B,0x93,0xC2,0xEA,0xD2,0xF8,0x0F,0xAC,0x23,0xA3,0xA3,0xF4,0x7F,0x13,0x8E,0x77,
+0xEE,0x74,0xD9,0x63,0x38,0x13,0x2A,0x66,0x3B,0x59,0xE5,0xB5,0x88,0x94,0x6C,0xD6,
+0xC7,0xA0,0x53,0xC3,0x46,0x94,0xD2,0xF6,0x84,0xEB,0x6D,0xBD,0x53,0x74,0x2D,0x60,
+0xAF,0xC2,0x39,0xB8,0x7A,0xB3,0xCB,0xD9,0x6E,0x21,0x48,0x56,0x37,0x56,0x71,0xFF,
+0x50,0x4A,0x7C,0xF0,0xEB,0x80,0xE2,0x35,0x5E,0x0C,0x94,0xD5,0x72,0xCC,0xDF,0x40,
+0xB8,0x2E,0x57,0xA5,0x3C,0x9D,0x4C,0x19,0x95,0xA5,0x1A,0x07,0xFE,0x21,0x55,0x83,
+0x72,0xC5,0xBD,0x80,0xC9,0x1F,0x86,0x69,0x15,0x07,0x44,0x8E,0x83,0x3F,0x26,0x3B,
+0x81,0x7B,0xE2,0xD3,0xCA,0xB9,0x49,0x56,0x27,0xDC,0xC5,0x7A,0x6E,0x06,0xBF,0x43,
+0xC8,0xAC,0xA2,0x6F,0x4E,0xBE,0x71,0x8B,0xD5,0xEC,0xA6,0xD0,0xF9,0xF1,0x39,0xB6,
+0x2E,0x5A,0x9F,0xE4,0xC6,0x1D,0x8C,0x54,0xA3,0x01,0xFD,0x7D,0xC2,0xF7,0xB0,0x4F,
+0x30,0x49,0xB6,0xEC,0x09,0x41,0x64,0x82,0x05,0x80,0xA1,0xE5,0x8D,0x62,0x23,0xF2,
+0x65,0xEA,0x9B,0x83,0x13,0xA3,0x62,0x02,0x2C,0xA4,0x61,0x6C,0xCE,0x19,0xC7,0x01,
+0xB1,0x4A,0xB2,0x09,0x83,0x5B,0x1C,0x85,0x9E,0xAC,0xDE,0xE4,0x2E,0x58,0x71,0xDA,
+0x06,0x87,0xAE,0x2C,0x2F,0xDB,0x8A,0x9E,0x52,0xB4,0x82,0x78,0xB5,0x3F,0x1F,0x0D,
+0x82,0x63,0x5E,0x98,0xD9,0x86,0x88,0xE9,0xD6,0xE5,0x79,0x2A,0x49,0xFB,0x66,0xF6,
+0x1A,0x3F,0xDF,0x3E,0x14,0x68,0x33,0x6F,0x78,0x5A,0xE3,0x6F,0x9A,0xA8,0xF5,0x3E,
+0xC0,0x39,0xC4,0x4A,0xE8,0x97,0x9D,0xDD,0x7D,0x93,0xBE,0x61,0x44,0x30,0x13,0xA1,
+0xA6,0x66,0x11,0x6E,0xDB,0x43,0x84,0x4D,0x29,0x6D,0x3C,0x62,0x6A,0x6E,0x28,0x00,
+0xF2,0x06,0x75,0x1E,0x55,0xB3,0xD3,0xD9,0x98,0x5F,0x68,0x5D,0x28,0xD1,0x88,0xE1,
+0x4B,0x6D,0x5B,0xC5,0x21,0x05,0x9C,0x0C,0x74,0x6C,0xF9,0x74,0xAD,0xC5,0x5E,0x4B,
+0x58,0x65,0x45,0xEC,0xF7,0xED,0x53,0x50,0xF5,0xF4,0x5F,0x28,0x38,0x56,0xE3,0x04,
+0x6A,0x5A,0xF4,0xB8,0x23,0xC0,0x90,0xA8,0xA9,0x6B,0x7D,0x4C,0x5C,0xCA,0x52,0xE7,
+0xBD,0xE6,0xBD,0xF8,0xFE,0xF8,0x14,0xAF,0x99,0xC1,0x8F,0x2F,0xAB,0x4C,0xA7,0x70,
+0x3F,0x2C,0xCD,0x0D,0x6C,0xC5,0x66,0x8C,0xD0,0x16,0xCF,0x93,0x7B,0x20,0x92,0x77,
+0xD4,0x09,0x07,0xE7,0x1C,0x0F,0x93,0x0E,0x72,0x9F,0x4F,0xCD,0x65,0x53,0x2A,0x0A,
+0xD3,0x31,0xDA,0x63,0xAC,0x42,0x20,0xA2,0x54,0x47,0x34,0xC1,0x0C,0x04,0xEE,0xBE,
+0x5B,0x79,0x25,0x26,0x40,0x6B,0xB1,0x91,0x79,0xC4,0x04,0x1D,0x96,0xAA,0x51,0xFB,
+0xC3,0x25,0xA4,0x80,0x41,0x19,0x56,0x0F,0x17,0x55,0xD8,0xDF,0x5B,0x8A,0x7A,0x4E,
+0x4E,0x5F,0xBB,0x4E,0xE1,0x82,0xDA,0x22,0x61,0x24,0x9B,0xAC,0x3A,0xA0,0x94,0x59,
+0xFE,0xAA,0x7A,0xEF,0xFA,0x84,0xAE,0xF8,0x60,0xBA,0x7C,0xDE,0xBB,0xCB,0xCC,0x95,
+0x98,0xF5,0xAF,0xCB,0xF2,0xE3,0x0E,0x99,0xF6,0xCE,0xB4,0x9F,0xEB,0x05,0x70,0xCC,
+0x8E,0xCF,0x51,0x69,0x85,0xE2,0xAA,0x76,0x35,0xDA,0x19,0xAF,0xA5,0xB8,0x74,0xE8,
+0x4C,0x55,0x86,0x41,0x5A,0x1F,0x22,0xD5,0x90,0x3E,0xC8,0x3A,0xF6,0x49,0x6E,0x7E,
+0x4F,0x49,0xE6,0x8B,0xC9,0x50,0xB7,0x68,0xE4,0xEB,0x87,0x8C,0x8C,0xA6,0x67,0xE0,
+0xED,0xA2,0x64,0xC6,0x57,0x76,0xDF,0x7D,0x37,0x7E,0x15,0x6A,0xC7,0xAD,0x3C,0x30,
+0xE1,0x0E,0x6B,0x37,0x15,0x1A,0xD4,0xF1,0x70,0x3B,0x43,0x08,0xE1,0x8E,0x2D,0x32,
+0xF0,0x0C,0x48,0x11,0x87,0x27,0xA6,0xD2,0x5C,0x26,0x94,0xA6,0xBF,0xB4,0x42,0xF3,
+0x01,0xBF,0x73,0xA8,0x63,0x69,0x97,0x80,0x09,0x46,0xF1,0xD7,0xEA,0xCC,0xA1,0x5E,
+0x62,0xD2,0x46,0x07,0x1F,0xB8,0x78,0x34,0x7C,0x0D,0x59,0x13,0x39,0x9F,0x32,0x96,
+0x3D,0x26,0xF0,0x02,0x22,0xB2,0x77,0x36,0x7B,0x60,0x08,0xD8,0x0F,0x3B,0x48,0x71,
+0x09,0x37,0xC1,0x17,0xC6,0xFC,0x46,0x64,0xB6,0xE6,0xB3,0x36,0xBA,0x02,0x1D,0x07,
+0x7F,0x7C,0x6A,0xD0,0xB0,0x8F,0x05,0x15,0x1E,0xAA,0x9F,0xCA,0xD5,0xDC,0x20,0x88,
+0x4A,0x7B,0x06,0x00,0x0C,0xD9,0xAC,0x8F,0xCE,0x05,0xE6,0x9B,0xF0,0xC0,0x97,0x45,
+0x41,0xEF,0xD4,0x75,0x67,0x15,0x2D,0xD7,0x5D,0xB8,0x73,0xD4,0x40,0x4F,0x9D,0xC7,
+0x2F,0x38,0xB3,0xEE,0x68,0xB9,0xDC,0xDB,0x16,0xCB,0x3F,0xAD,0x23,0x93,0x04,0x8D,
+0xBB,0xC8,0x3D,0xB9,0x5F,0x11,0x7F,0x1C,0xEB,0xE7,0x76,0x20,0x8E,0x50,0x10,0xBD,
+0x8A,0xEB,0xEC,0x27,0xC2,0x80,0xFC,0x33,0xBE,0x87,0x13,0x51,0x8D,0x6F,0xB6,0x72,
+0x96,0x53,0x9D,0x35,0xBF,0x23,0xF4,0x19,0xDD,0xBE,0x32,0xFA,0x54,0xB7,0x78,0x44,
+0x31,0x8A,0xFF,0xF3,0xE5,0xFE,0x60,0x75,0x44,0xC6,0x0B,0x17,0x36,0xA2,0x30,0x9C,
+0x9B,0xE9,0xCF,0x01,0x84,0x90,0x4D,0xE8,0x27,0xFF,0x2A,0xBC,0x0A,0x8D,0x17,0x85,
+0xD8,0xA5,0x08,0x16,0x2D,0x1E,0x86,0x3A,0x1B,0x63,0xC2,0xC4,0xB6,0x00,0xB9,0xC2,
+0x21,0x9E,0x81,0x10,0x31,0xD3,0xA3,0x8D,0x1D,0x90,0x74,0x7D,0x2F,0x91,0xA0,0x48,
+0x2B,0x1C,0x0E,0xA0,0x95,0x34,0x95,0xF7,0x39,0xEC,0x03,0xB4,0xFA,0x4B,0xCA,0xBB,
+0x1E,0x1B,0x62,0x70,0xA1,0x2B,0xDD,0x0A,0x9A,0xFB,0x64,0x98,0x99,0x97,0x53,0xF1,
+0x2E,0x2E,0xEE,0x2B,0x42,0xAE,0xBD,0x35,0x77,0x56,0x12,0xC3,0x3D,0xE0,0xBC,0xF0,
+0xE4,0x3C,0x8B,0xBC,0x24,0x0B,0xC1,0xC5,0x7E,0xA9,0x55,0xD6,0xFF,0xFD,0x95,0x4F,
+0x38,0x14,0x10,0x89,0x34,0xDD,0xFE,0x44,0xC3,0xAD,0x1B,0xF2,0xD1,0xA3,0xAE,0xEE,
+0x84,0x4D,0xDE,0xD9,0xA5,0x57,0x67,0x5D,0x03,0x83,0x5D,0x75,0xE4,0x38,0x72,0xC6,
+0x86,0x47,0xE3,0xD6,0x0D,0xAB,0x4B,0x11,0x80,0xBF,0xF7,0xEC,0xF2,0x36,0xE0,0x18,
+0xDC,0x81,0xB5,0x58,0x0B,0x12,0xFD,0xE2,0x47,0xFC,0xE0,0xA0,0x7A,0xE9,0x43,0xE5,
+0x40,0xF9,0x89,0xB0,0x1A,0xB6,0x25,0xFD,0x9C,0x08,0xD2,0x21,0x3B,0x69,0x45,0xCB,
+0x29,0x16,0x33,0xAF,0xD7,0x58,0x9E,0x7B,0x01,0x27,0x51,0xB0,0x50,0xC8,0xF6,0x22,
+0xEF,0xA8,0x59,0xC9,0x4D,0x02,0x4C,0x39,0x4E,0x03,0xA7,0xB5,0x48,0x32,0xB7,0x64,
+0x18,0x35,0xE2,0x31,0xA7,0x92,0x6B,0xF9,0xAB,0xCF,0x71,0x89,0xF5,0x76,0xC8,0xB1,
+0x5C,0x41,0xF8,0xA2,0x88,0x8B,0x57,0xDE,0xFC,0x0B,0x18,0x3D,0x5E,0x3C,0x25,0xBA,
+0x9C,0xD1,0x12,0x85,0x28,0x10,0xDB,0xF3,0x7F,0x37,0xB2,0xA4,0xFB,0x82,0x1B,0x29,
+0x49,0x67,0x66,0xCA,0x8F,0x40,0x06,0xB3,0x6D,0x12,0x81,0xB7,0xA4,0x71,0xA5,0x7A,
+0xD1,0x3B,0xE7,0x6C,0x96,0x83,0x7E,0xCD,0xF9,0xC2,0x45,0x33,0xE5,0xF1,0xA3,0x54,
+0xDF,0x9D,0xD5,0x92,0x0A,0x60,0x1A,0x7C,0x3A,0xD6,0xE8,0x03,0x52,0x3E,0x81,0x7F,
+0x2C,0x24,0xD3,0x24,0x92,0xFF,0xC4,0x9A,0x8C,0x89,0xED,0xF7,0xD7,0x2A,0x57,0xD5,
+0x73,0xD0,0x65,0x21,0xD2,0x56,0xC3,0xB2,0x94,0x69,0x72,0x46,0x30,0x2B,0xC9,0xA7,
+0x23,0x94,0xBC,0x1F,0xEA,0x52,0x91,0x79,0xB1,0x8B,0xE2,0xFD,0xA9,0xBA,0xD0,0x2D,
+0xFA,0x8E,0xC7,0xA1,0xED,0x99,0xC0,0x14,0x4A,0x54,0x1D,0xC9,0x5A,0x43,0xAB,0xDC,
+0xB5,0x6E,0x0F,0x47,0xF3,0x91,0xE9,0x07,0xB9,0xEA,0x42,0x9A,0xCD,0x26,0x61,0xCE,
+0xB0,0x5C,0xEF,0xCC,0x18,0x73,0x29,0x59,0x2E,0x00,0x6D,0xA9,0x6F,0xD8,0x77,0xF4,
+0xB3,0xC8,0x95,0x1E,0x2C,0x13,0x30,0xD8,0x98,0x09,0x4C,0xFC,0x9D,0xA9,0x2A,0x62,
+0x90,0x56,0xA4,0xCF,0x03,0x90,0xAD,0x49,0xF8,0x78,0x19,0x99,0xA2,0x0F,0xE5,0x61,
+0x60,0x01,0x30,0x41,0xC4,0x33,0x9A,0xE1,0xD4,0xF5,0xE4,0xD0,0x61,0x1B,0xD5,0xCC,
+0xB7,0x9A,0x5E,0x26,0xC8,0xC2,0x95,0x4D,0xA7,0x8C,0xAF,0x9C,0xBD,0x82,0x9F,0xAF,
+0xFD,0xF9,0xC7,0xFA,0x25,0x69,0xDF,0x46,0x7C,0x9C,0xE9,0x2D,0xF2,0xA6,0x9A,0x59,
+0xB1,0xEE,0x84,0x3D,0xF7,0xA2,0x76,0xC8,0xE0,0xE4,0xD5,0xC5,0x7F,0x08,0xDD,0xE5,
+0xD2,0x1C,0x2E,0x0D,0x6A,0x8F,0x17,0xA6,0xD9,0x4F,0xB6,0xE4,0x50,0x2F,0xC4,0xD9,
+0x0B,0xDA,0x89,0x6F,0x06,0x1B,0x4D,0x7B,0xA1,0xA2,0x2F,0xDD,0x45,0x67,0x1C,0xBB,
+0x76,0xC4,0x31,0x1C,0x2A,0x52,0xB0,0xF6,0x49,0x9B,0x85,0xFD,0x12,0xA3,0xA8,0xD2,
+0x43,0x9F,0x01,0x90,0x15,0x32,0x53,0x73,0xE4,0xC0,0x68,0x8B,0x65,0x4C,0xA9,0x76,
+0x44,0x4F,0x34,0xFC,0xE8,0x7A,0x67,0x6C,0xF3,0xEC,0xCB,0xEC,0xB9,0xD5,0xE3,0x15,
+0xC6,0xFF,0x3E,0x73,0x92,0x4C,0xC3,0x8B,0x8F,0x25,0xEF,0x9B,0x63,0xBF,0x10,0xC0,
+0x1F,0x39,0x99,0x11,0x0E,0xA4,0xFF,0xF3,0xA0,0xB4,0x72,0x18,0xC4,0xFF,0x40,0x1D,
+0x15,0x36,0x9B,0x2C,0x42,0x88,0x57,0x0F,0x9C,0x2D,0xF1,0xB2,0xCA,0x6D,0x9E,0x0B,
+0x4C,0x66,0x27,0xE2,0x5B,0x11,0xC6,0x85,0xB2,0xAA,0x31,0xF4,0x51,0xB1,0xB6,0x3E,
+0x64,0x53,0xFB,0x79,0xDA,0x2E,0xD6,0x53,0xB6,0x8E,0x8C,0xBA,0x0F,0x8A,0x17,0x10,
+0xF0,0x26,0xF0,0xAB,0x26,0xA3,0xBF,0x5A,0x1C,0xED,0xBC,0x48,0xC0,0xA8,0x3C,0xA7,
+0x4E,0x40,0x36,0xC1,0x64,0x71,0x25,0x00,0x38,0xE8,0xF3,0xBE,0x3A,0xE9,0x7A,0xBF,
+0xA1,0x5F,0x5F,0x7B,0xE2,0xCA,0xE8,0xEE,0x17,0x79,0x6E,0x3D,0x9B,0x5A,0x93,0xD4,
+0xD9,0xB7,0xC3,0x47,0xFD,0x12,0xF9,0x4A,0xE3,0xF8,0xB5,0x0F,0x1B,0x5C,0xBD,0x95,
+0x3F,0x25,0x56,0x94,0xAC,0xE9,0x7D,0x18,0x0D,0xEF,0x9F,0x6E,0x83,0xBA,0x22,0x4B,
+0x89,0x6A,0x83,0xE0,0xEC,0x34,0xDA,0x48,0x28,0xFC,0x8D,0x5D,0x70,0x04,0x71,0x14,
+0x19,0x4D,0x43,0x0A,0xC1,0xB8,0x7A,0xD3,0x14,0x65,0x0E,0xF7,0xCE,0x3A,0xE2,0xB1,
+0x6D,0xDE,0x07,0x10,0xE6,0x84,0x55,0xCA,0xD0,0xD1,0x59,0x9E,0x84,0xD7,0xE9,0x1A,
+0x88,0xCE,0x6C,0x97,0xAD,0x2C,0x20,0x0E,0x76,0x1E,0x66,0x9D,0xD9,0xD6,0xFF,0xDF,
+0x7C,0xCB,0x33,0x21,0x85,0x2B,0x60,0xA7,0x96,0xAF,0x7E,0x02,0xD8,0x48,0x8D,0x38,
+0xC5,0x7D,0xC0,0x27,0x63,0xF5,0xF8,0x38,0xC9,0x5B,0xC8,0x07,0xCC,0x9E,0x27,0xBD,
+0x63,0x83,0xCE,0x15,0xD2,0x91,0x64,0xDB,0xDD,0x6B,0x0B,0xAA,0x03,0xBC,0x0C,0x0A,
+0x04,0x23,0xAF,0x1D,0x46,0xC6,0xEA,0x2B,0x1F,0xF1,0xDC,0x82,0x2A,0x68,0xAC,0x80,
+0x36,0xA8,0xAA,0xFD,0x18,0x06,0x01,0xC9,0xF5,0xC2,0x4B,0xAD,0xD4,0x7E,0x96,0x22,
+0xD6,0x4E,0xE5,0x35,0x0B,0x2F,0x1F,0xC1,0x4B,0x91,0xB8,0xF2,0xB1,0xB4,0x84,0xB5,
+0xCC,0xF0,0x3C,0x4E,0x66,0x7E,0x18,0x0A,0x94,0xA5,0x43,0x0D,0x48,0xCF,0x75,0x46,
+0x3B,0x77,0x9D,0xAC,0xF6,0x67,0x2B,0xDE,0xFA,0x72,0x24,0x96,0x09,0x79,0xAE,0xA6,
+0xDF,0xC3,0x19,0x5C,0x81,0x65,0xDD,0x83,0xAB,0x20,0xA0,0x6D,0xCD,0x00,0x55,0x5A,
+0x12,0xE6,0xAE,0x40,0x9A,0xF3,0x71,0x03,0xB3,0xBC,0x6C,0x31,0xAA,0x6E,0x82,0xC1,
+0xB2,0x6C,0x7A,0x69,0x1D,0x8D,0xE1,0xFB,0xBB,0x34,0xDE,0x8E,0xEB,0xD8,0x59,0x21,
+0x5E,0xF1,0xED,0x87,0xC6,0x3C,0xA7,0xEB,0x40,0x05,0x6A,0x87,0x23,0x97,0xB9,0xC7,
+0x3E,0x81,0xB9,0xE3,0x52,0x6B,0x29,0x1B,0x72,0x3A,0xDB,0xD3,0x9C,0x37,0x58,0x85,
+0x61,0xA5,0xDF,0x36,0xC2,0x72,0x1A,0xCF,0x8C,0x39,0x8F,0x51,0xC2,0x0C,0xF9,0xAB,
+0x67,0xD1,0x05,0x2D,0x70,0xDC,0xE6,0x30,0x45,0x37,0x8A,0x0C,0x5A,0xEA,0x66,0x75,
+0xBE,0x17,0xA2,0x4F,0xB0,0xFB,0x0C,0xA0,0xDE,0x77,0x6B,0x60,0xBE,0xB8,0x28,0x44,
+0x02,0x57,0x75,0x06,0xB7,0x7F,0xD1,0x98,0x74,0x14,0x5B,0x92,0x38,0x4D,0xBF,0xB3,
+0x3D,0x03,0x47,0xB7,0x4F,0xBC,0x05,0xB5,0xEB,0x70,0x07,0xB0,0xA4,0xFC,0x5C,0xD7,
+0x35,0x2A,0x54,0xA9,0x13,0x73,0xD3,0x5D,0x73,0x2C,0x86,0x16,0x37,0x41,0x13,0x42,
+0x21,0xC9,0x44,0xD7,0x8E,0x5E,0xB2,0x33,0xDB,0x45,0x8B,0xEB,0x58,0x4E,0xA3,0x79,
+0x69,0x8C,0xCC,0x28,0xBD,0xCF,0x5E,0x1A,0x58,0x99,0xA6,0xDB,0xF6,0xF1,0xE6,0xE3,
+0x51,0x08,0xCB,0xF5,0x11,0x7C,0xEE,0x57,0x80,0x95,0x80,0xA0,0xA1,0x35,0x52,0x8A,
+0x74,0xE2,0x20,0x3F,0x93,0x89,0x9E,0x9D,0x09,0xCB,0x22,0x20,0xD2,0x8D,0x2F,0x94,
+0xAD,0x24,0x87,0x5D,0x86,0xE1,0x00,0xBB,0xD1,0xC7,0x04,0x5B,0xF7,0x6F,0x94,0x04,
+0xF2,0x00,0xE1,0x88,0xE7,0x41,0x08,0xDC,0xA5,0x86,0x92,0x93,0x39,0xD3,0xCD,0x54,
+0x07,0xA1,0x51,0x49,0x3D,0x35,0x13,0xDA,0x3B,0xF4,0x93,0x74,0x52,0x8B,0x01,0xD5,
+0x7D,0x6F,0xDC,0x56,0x10,0xB9,0xB3,0x41,0x4A,0x87,0xE5,0x37,0x78,0x65,0x16,0xB4,
+0xFA,0x29,0xF2,0x96,0x62,0x30,0xA5,0x2E,0x61,0x32,0xC5,0xFA,0x5F,0x23,0x68,0x28,
+0x11,0x64,0x50,0x14,0x77,0x58,0x3B,0x08,0xF4,0xD4,0x16,0x68,0x54,0x78,0xB8,0x63,
+0x0D,0xAE,0x53,0x74,0xCA,0xCD,0xA8,0x47,0x21,0x62,0x62,0x27,0xBB,0x71,0x26,0x19,
+0x97,0x86,0x91,0xA3,0x69,0x45,0x77,0xBA,0xC5,0xF7,0xC7,0xF6,0x4A,0x6B,0xB0,0x4A,
+0x8A,0xE8,0x7D,0xB4,0x2B,0x97,0xED,0xE0,0x12,0x4B,0x8E,0xB6,0x6D,0x2D,0xCE,0xD6,
+0xE7,0x47,0x1E,0x81,0x9F,0x78,0x91,0x31,0x59,0x8F,0xFB,0x1E,0x3E,0xBE,0x06,0x05,
+0x54,0xFE,0xEF,0xBA,0xCD,0x49,0x75,0x7F,0x39,0xFE,0xAE,0x7B,0x46,0x5D,0xAB,0x50,
+0x56,0xD8,0xFE,0x99,0xEE,0x3B,0xE7,0x42,0x24,0x50,0x82,0xAC,0x7C,0x32,0x6A,0x0E,
+0x23,0xEF,0x55,0xF4,0x90,0x43,0xFE,0x81,0x1A,0xC3,0x3C,0x09,0x32,0x88,0x1D,0x1F,
+0x24,0x3F,0x60,0x98,0x0A,0xEA,0x42,0xD7,0xB5,0x92,0xEC,0x70,0x2E,0x3F,0xD0,0x3A,
+0x6F,0xF8,0x16,0x33,0x7B,0xA9,0x34,0xA4,0xF9,0x6E,0x44,0x5C,0xF0,0x02,0x5F,0x55,
+0x7E,0xED,0x22,0x02,0x29,0x98,0xD0,0xEA,0x7F,0x80,0x89,0xE7,0xC9,0x57,0x29,0xE0,
+0xA1,0xB1,0x1A,0xBE,0x4D,0x0B,0xBA,0xDD,0xE7,0xBE,0x8A,0xF9,0x55,0x44,0x43,0x71,
+0x8A,0x06,0x38,0x71,0x59,0xA6,0x79,0xED,0x56,0x5D,0x16,0x9D,0x67,0x4A,0xE5,0x8F,
+0x79,0xD3,0x52,0xAB,0xF2,0x91,0x14,0x98,0x29,0x88,0x52,0x20,0xE5,0xE8,0x0E,0xC2,
+0x0B,0x34,0xCC,0xAA,0x12,0x0E,0x0C,0x29,0x01,0x21,0x12,0x27,0x53,0xB7,0xFA,0xC7,
+0x02,0xB9,0x30,0xC3,0xCF,0xFE,0xCA,0x17,0x8F,0x47,0x6D,0x23,0x47,0x61,0x50,0x42,
+0xF3,0x4A,0x4B,0x3A,0x10,0x01,0x31,0x23,0xE2,0x8C,0x6A,0x72,0x3C,0xB8,0x4A,0xFC,
+0x2A,0x8C,0xEC,0x58,0x9B,0x8E,0xAE,0x77,0xC2,0xAD,0x98,0xCA,0x6F,0x2B,0x82,0x2F,
+0x10,0x2E,0xFA,0xA6,0x71,0xA1,0x39,0x44,0x9C,0x4F,0x73,0x0A,0x8F,0x2E,0xB0,0xA4,
+0x15,0xD8,0xDE,0xE9,0x93,0x31,0x1C,0xFF,0x66,0x68,0x9A,0xC6,0x09,0xDB,0x27,0x53,
+0x3B,0x99,0xD8,0x69,0x67,0x03,0xC7,0x7E,0x79,0xCC,0x8B,0x1E,0x35,0x47,0x5F,0xBB,
+0xBA,0xAB,0x2C,0xB2,0x98,0x44,0xCE,0x6B,0xA2,0xDC,0xCD,0xAF,0xD9,0x74,0x76,0x2A,
+0xFC,0xB3,0x6D,0x48,0xBC,0xB2,0x81,0x6E,0xE0,0x86,0x57,0x7D,0xB3,0xB2,0xC8,0x4C,
+0x64,0xBD,0xBE,0xBC,0x90,0xFB,0x7C,0xE3,0x45,0x55,0x08,0xB4,0x78,0xC7,0x9F,0x41,
+0x6F,0x16,0x53,0xF6,0x54,0x92,0x2B,0x57,0x62,0x4C,0x27,0x88,0x62,0x83,0xEB,0xD2,
+0xA4,0x47,0x3E,0xF1,0x89,0x62,0xED,0x69,0x28,0x9E,0x0F,0xE5,0xE6,0xD2,0xB9,0x29,
+0xF7,0x18,0x80,0x02,0xAC,0x51,0xFF,0x7A,0x68,0xCE,0xA8,0x38,0x92,0x07,0x0F,0x66,
+0x65,0x19,0x51,0xCB,0x77,0xE0,0xB9,0x6A,0x6C,0xEA,0x15,0x76,0x8E,0xB0,0xC2,0x43,
+0x96,0xCC,0x3B,0x11,0x0B,0x97,0x9D,0xA3,0x16,0x0D,0xB1,0x40,0x01,0xBA,0x40,0xF3,
+0x2E,0xDE,0x27,0x60,0xCD,0xF1,0xF7,0x1D,0xAE,0x70,0xC2,0x5E,0x6E,0xB5,0xF0,0xC8,
+0x2F,0x7A,0xC8,0x17,0x60,0x87,0x1A,0x46,0x91,0xF5,0x21,0x3E,0xE2,0x85,0xC5,0x93,
+0x30,0x32,0x35,0x23,0x36,0xF8,0x43,0x2C,0xDF,0x03,0xB4,0x1D,0x90,0xA3,0xCA,0x6A,
+0x91,0x1C,0x0E,0x7D,0x32,0xB6,0xFE,0x08,0x5E,0xD5,0xA4,0x22,0x0B,0x7F,0xE2,0x5F,
+0xC6,0x11,0x7B,0xB6,0x24,0x14,0x00,0x32,0x8A,0x75,0x8D,0xA8,0x63,0x1D,0x99,0x35,
+0x18,0x07,0xE9,0xB8,0x18,0xBE,0x83,0xAB,0xC6,0x89,0x25,0x84,0x5E,0x1F,0x93,0x3A,
+0x53,0xC0,0x9F,0x13,0x50,0xDC,0x96,0x73,0x40,0x67,0xE8,0x3F,0x33,0xB4,0xE6,0x0D,
+0x19,0xA3,0x06,0xCF,0x23,0x90,0xDD,0x0A,0x4C,0xCB,0xE7,0xCE,0x54,0xDA,0x31,0x96,
+0xAC,0x6E,0x2D,0xEF,0x1C,0xF0,0x3E,0x8F,0xA8,0x5E,0x42,0x1F,0x6C,0x11,0x35,0xC4,
+0x63,0x6D,0x8B,0xD0,0x7C,0x95,0x6B,0xFE,0x87,0xCF,0xDF,0x9C,0xBD,0x20,0x16,0x5A,
+0x42,0xD5,0xAB,0x22,0x5D,0xE8,0xC4,0xC9,0xEE,0x20,0x65,0x83,0x7F,0xAA,0x54,0x10,
+0x9A,0xB7,0xE3,0x37,0x25,0xD1,0x5D,0x24,0x82,0xFD,0x3F,0x17,0x1D,0x0D,0x8D,0xD6,
+0x1C,0x55,0x22,0x80,0xF8,0x21,0x9B,0x1A,0xA1,0xC0,0xAD,0x65,0x88,0x43,0x7B,0xF5,
+0x5B,0xE9,0x8C,0x0D,0x64,0xC9,0xA7,0x62,0x73,0x4E,0x04,0xAE,0x4F,0x00,0x37,0xE2,
+0x2D,0x5C,0xD9,0x34,0xBD,0x77,0xDC,0x78,0x49,0xF9,0x07,0x45,0xC8,0x6B,0xD2,0xF2,
+0xEC,0x02,0xB6,0x0E,0xA0,0xA0,0xF0,0xD6,0x6A,0xC4,0x95,0x37,0xEB,0x7A,0xD0,0xD4,
+0x48,0xDA,0xA9,0x1F,0x96,0xBA,0xFC,0xCD,0xAF,0x66,0x9F,0x9B,0xC6,0xF9,0x0C,0xE4,
+0x80,0x09,0x3A,0x4C,0xDD,0x12,0x89,0x09,0x1B,0xB7,0xE3,0x74,0xF3,0x9A,0x61,0x4B,
+0xD9,0x59,0x86,0x82,0x7D,0x50,0x36,0xE8,0xFF,0x22,0x46,0xA5,0x41,0x92,0xE9,0xF4,
+0xAF,0xEC,0xD3,0xBB,0xFB,0xEB,0xFB,0x06,0xAD,0x6C,0xA2,0x94,0x70,0xA6,0xF8,0xE1,
+0x9B,0x13,0x0C,0x40,0x9E,0x05,0x4E,0x45,0x14,0x07,0x8C,0x4F,0x86,0xD1,0xA5,0xE3,
+0x56,0x36,0xBB,0x5C,0x31,0x7C,0x9E,0x14,0x8E,0x51,0x30,0xE6,0xEA,0xE4,0xA2,0x33,
+0x87,0xD9,0x0F,0x20,0xBF,0x78,0xE1,0x72,0xB9,0x5C,0x61,0x39,0x3B,0xD5,0x81,0xAD,
+0x90,0xB8,0xE1,0x0A,0xCE,0x3B,0x97,0x01,0x94,0xC7,0xC1,0xB5,0x24,0x58,0xFB,0x63,
+0x12,0x08,0xEB,0x85,0x55,0x57,0x76,0x41,0x02,0x3D,0x72,0xED,0x2F,0x03,0x2B,0x28,
+0x4B,0x58,0x57,0x4B,0x21,0x9F,0xE0,0x00,0x63,0x5A,0x7A,0x4D,0xFA,0x65,0x74,0x0C,
+0xA0,0x15,0xF5,0xC9,0xA5,0x2B,0x10,0xE4,0x4E,0xC1,0xDA,0xC1,0x06,0xD7,0x8B,0xA2,
+0x36,0x46,0xEF,0x38,0x41,0xFA,0xB5,0x71,0xED,0x3C,0x05,0x49,0xD1,0x15,0x11,0x8A,
+0xEE,0x24,0xA7,0x2D,0xE5,0xF6,0xB7,0xB4,0xE6,0xA8,0xD7,0x3C,0xE4,0x76,0x7C,0x25,
+0x3E,0x6F,0xFC,0x26,0x70,0x64,0x64,0x52,0xF3,0x8E,0x49,0x54,0x66,0xD4,0x97,0x68,
+0xDA,0xDB,0x78,0xD6,0x6F,0xBC,0x75,0xF6,0xCB,0x33,0x77,0xB0,0xC5,0xC3,0xBB,0x0F,
+0x95,0x4E,0xC5,0x45,0xF7,0x1A,0xF4,0xAA,0x97,0xDB,0xA1,0x7F,0xDB,0xD0,0xB3,0x26,
+0xAE,0x48,0x3C,0xCC,0x5A,0x6C,0x19,0xF1,0x34,0x26,0x7E,0xF7,0x3D,0x26,0x38,0x1B,
+0x39,0xBF,0xC9,0x4A,0xF0,0x9E,0x29,0x92,0x33,0x1E,0xA3,0x73,0x74,0xF1,0x84,0x5B,
+0xD4,0x86,0xB1,0xD3,0x04,0xAC,0xF2,0x13,0x95,0xD1,0x9C,0x70,0x87,0x4F,0xD7,0x04,
+0xA9,0x98,0x09,0xA0,0x8D,0x2C,0x50,0x4D,0x17,0x1B,0xEC,0x85,0x4D,0xA4,0xF2,0xEE,
+0x25,0x75,0xCA,0x2A,0x5F,0xE7,0xF9,0xC3,0x0A,0xB5,0xC0,0x52,0xA5,0xC0,0xA7,0xC5,
+0x60,0xEF,0x75,0x84,0xDC,0xD7,0xD4,0x1F,0x39,0x9C,0x2C,0xC3,0x5A,0x48,0xEF,0x80,
+0x04,0xCD,0xEA,0xD8,0x37,0x3D,0x1E,0x3A,0x1E,0x85,0x03,0xFF,0x32,0x2A,0x94,0xEA,
+0xDF,0x2D,0x5C,0x99,0x3F,0x82,0xAC,0xB2,0x99,0x7D,0x93,0x81,0x1B,0xFE,0x34,0x60,
+0x28,0xAA,0xFD,0x7B,0x7E,0x9A,0x56,0xF4,0x72,0x58,0x59,0x6B,0xDE,0x19,0xBD,0x7B,
+0xD3,0x56,0x84,0xBF,0x2F,0x61,0xD2,0xA6,0x05,0x05,0xAF,0x69,0x2E,0x9D,0x59,0xCF,
+0x7F,0xA7,0x88,0xB0,0x08,0x5D,0xFD,0xBF,0x46,0x49,0x68,0x7E,0x44,0x5B,0xE7,0xA9,
+0xE0,0x79,0x6E,0x28,0xC1,0x00,0xF8,0xB1,0xF4,0xB6,0x94,0xD0,0x5F,0x81,0xE1,0xDD,
+0x3F,0xCB,0x13,0x51,0xC4,0x8B,0x18,0x83,0x42,0x6D,0xD5,0x30,0xF5,0x69,0xD8,0xFD,
+0xDE,0x89,0xB3,0xEE,0xF6,0xDF,0xA9,0xBC,0xD6,0x9D,0x5B,0x67,0x91,0x3D,0xB8,0x8D,
+0x5E,0xAB,0x40,0xF7,0xF7,0x2D,0x15,0x9F,0xB9,0x25,0x04,0x5A,0x46,0x06,0x85,0xBB,
+0x76,0x02,0x00,0xF0,0x41,0xD9,0x10,0xC0,0xB8,0xBB,0xE3,0x28,0xD9,0x1E,0x65,0x0A,
+0x90,0x9D,0x98,0x2E,0x47,0x60,0xA6,0x33,0xAC,0x6D,0x66,0x82,0xDC,0xA8,0x3A,0xFE,
+0x21,0x7E,0x04,0x4A,0x75,0xC6,0x58,0x3D,0x63,0x4F,0xD1,0xA9,0x71,0x6B,0x2E,0xCE,
+0xB5,0x8E,0x8A,0x1D,0x7D,0xA1,0xF8,0x5C,0x4A,0x9B,0x5B,0x09,0x59,0xBC,0xEC,0x54,
+0xEB,0x6C,0x61,0xDD,0x9D,0x93,0x73,0x59,0xB4,0x8D,0xF9,0x33,0x76,0x2B,0x06,0x67,
+0xF8,0x64,0x7F,0xF4,0x55,0x73,0x95,0x16,0xD1,0x47,0x6E,0x21,0x29,0xD8,0xB8,0x34,
+0x95,0xAF,0x78,0xA5,0x2E,0x69,0x2B,0xCF,0x28,0x3C,0x9D,0xD0,0xD6,0x23,0x67,0x00,
+0xD5,0xFF,0xDF,0x78,0xCB,0x55,0xFD,0x03,0xA0,0x5B,0x7C,0x99,0x93,0xDC,0xEF,0x48,
+0x97,0xA5,0x45,0xAA,0xA1,0xEB,0x9B,0xC5,0x5A,0x1A,0x64,0xDF,0x65,0x93,0xCB,0x4D,
+0x11,0x4B,0x88,0x11,0x1B,0x04,0x84,0xAC,0xFB,0xA9,0x0F,0x36,0xE6,0x0E,0xE4,0xDC,
+0x0E,0xEF,0x99,0xC9,0x27,0x7C,0x6C,0x30,0x7B,0xAF,0x4E,0x18,0xD4,0xD5,0x10,0x5D,
+0x5F,0xBD,0x1D,0x32,0xF4,0x9A,0xFE,0xA5,0xE3,0x49,0x90,0x87,0xB5,0xFF,0xFE,0x4A,
+0x1F,0xED,0xBA,0xEF,0x80,0x2C,0xB1,0x70,0x10,0xF7,0xCF,0xD4,0x86,0xED,0xDB,0x59,
+0x32,0x76,0x1A,0x63,0x6A,0xBC,0x96,0xB0,0xAE,0xC9,0x6A,0x47,0x2C,0x6E,0xE7,0xC0,
+0x15,0x6F,0x35,0x5F,0x70,0xC8,0x05,0xF4,0xE4,0x24,0xC1,0x4C,0x45,0x39,0x23,0x74,
+0xD9,0x53,0xD0,0x89,0x7C,0xD3,0x1F,0xC2,0x72,0x50,0x09,0x0D,0x26,0xE5,0xBA,0x3E,
+0xE6,0xD6,0x33,0xE9,0xF0,0xE6,0x44,0xF2,0x05,0xBF,0xAD,0x0C,0x50,0x08,0x17,0x65,
+0x1B,0xC9,0x07,0xA1,0x9C,0xE1,0x94,0xC7,0xD9,0x26,0xCE,0x46,0x37,0xAB,0x00,0x49,
+0x61,0x2E,0xA3,0x97,0x13,0x63,0x24,0xCD,0x03,0x4C,0x1B,0xB5,0x40,0x8F,0x7C,0x80,
+0xFD,0x56,0x9F,0x7F,0x71,0xBA,0xE2,0x6A,0xA4,0x0C,0xC6,0xE5,0xC3,0x12,0x53,0x11,
+0xB1,0xAA,0x37,0x53,0x4C,0xB0,0xED,0x68,0xAA,0x9E,0xD0,0x3B,0x69,0x91,0x6F,0x88,
+0xA8,0x20,0xA6,0xCA,0x82,0xE9,0xBD,0xD4,0x31,0x42,0xE5,0x13,0x2F,0x51,0x41,0x0F,
+0x29,0xF6,0xB6,0xF5,0x19,0xC1,0x88,0x08,0x6F,0x79,0xCB,0xB2,0x61,0xEC,0x45,0x2B,
+0xDF,0x7D,0x50,0xC8,0x7E,0x16,0x13,0x66,0xFD,0x5A,0xB9,0x8F,0x27,0x2C,0x6B,0xAC,
+0xF0,0xEC,0xCD,0x4B,0xAF,0x35,0x8D,0x57,0xC2,0xFC,0xBA,0x40,0x42,0x79,0x0B,0xDD,
+0x37,0x44,0xFA,0xE8,0x21,0xC5,0xDA,0xC3,0x01,0xE8,0x17,0x70,0x0B,0x84,0x27,0x50,
+0x3B,0xE8,0xF5,0x19,0x46,0x12,0x41,0xAD,0xDD,0x71,0x74,0x3A,0x47,0xCF,0x54,0x29,
+0xD6,0xE3,0xBF,0xB2,0x9A,0x58,0x22,0x34,0x92,0x55,0x82,0x3F,0xF6,0x89,0x8F,0x39,
+0x04,0x6D,0x16,0x79,0x5D,0x14,0x35,0x77,0x1F,0xFB,0x3E,0x78,0x1E,0xB5,0x13,0x41,
+0x99,0x03,0x77,0x54,0x6D,0x77,0xC7,0xDD,0x30,0xDC,0x02,0x61,0x3F,0xD6,0x2A,0xEA,
+0xF5,0xDE,0x2D,0xC0,0x0F,0xAE,0x01,0x7A,0x25,0x94,0x60,0xB9,0x06,0x4F,0x52,0x07,
+0xD8,0x45,0x8D,0x4C,0xD4,0x2F,0x33,0x8E,0x0D,0xDE,0x0D,0x6B,0x6D,0xEE,0xE1,0xEE,
+0x6C,0x94,0xF1,0xA3,0xE1,0x42,0x9C,0xED,0x5E,0x4D,0xDE,0xA3,0xC5,0x9B,0xAA,0x2A,
+0x3E,0xDA,0x15,0x92,0xDA,0xF1,0x25,0x1C,0x26,0xAE,0x8B,0x0E,0xA0,0xCE,0xCA,0x5B,
+0x1D,0xE7,0x87,0xE0,0xF9,0xF3,0x03,0x0D,0x1C,0xC1,0xD5,0xCF,0x77,0xE2,0xD7,0xF5,
+0x63,0x24,0x9E,0x98,0x94,0x86,0x34,0xA6,0x52,0x7B,0xC4,0xB8,0xD2,0x5C,0xE9,0x66,
+0xF9,0x72,0x22,0x31,0xF8,0x81,0xE4,0x93,0x4E,0xCC,0xE1,0x75,0xAB,0x8C,0x46,0x37,
+0x88,0x01,0x54,0x72,0x53,0xCA,0x23,0xE5,0x90,0xF1,0x8E,0xFA,0x87,0x24,0x0A,0xCB,
+0xDA,0x4F,0xB0,0x43,0x62,0xDB,0x36,0xD1,0xA9,0xA4,0x3B,0x8C,0x3C,0xE9,0x8C,0x25,
+0x75,0x1E,0x60,0x3A,0x3D,0x08,0xFF,0x74,0x97,0x9C,0xDF,0x31,0x80,0x64,0x22,0x62,
+0x14,0x79,0x68,0x9A,0xE8,0x57,0xDB,0x12,0x59,0x20,0x8F,0x68,0x48,0xF2,0x56,0x23,
+0xCE,0x7F,0x73,0xEE,0x29,0xA2,0x7A,0xA2,0x32,0x78,0x0E,0xA4,0xAF,0xF3,0xC8,0x51,
+0xE3,0xE4,0xD3,0x62,0x36,0xD8,0xB4,0x2F,0x18,0x96,0x6F,0xB3,0xEC,0x85,0xB9,0x22,
+0x91,0x8B,0xC5,0xEB,0xF6,0x5F,0xF2,0x01,0x3F,0xD0,0xF3,0xCD,0x21,0xA5,0x92,0x97,
+0x84,0xAD,0x5B,0x83,0x74,0xB4,0xBF,0xA3,0x34,0x8B,0xB8,0x1D,0xB3,0x76,0x07,0x71,
+0x39,0xE2,0xC8,0x16,0x14,0xA8,0x75,0xA0,0xDB,0x82,0xC2,0x83,0xFC,0x02,0xD2,0xC7,
+0x9A,0x1F,0x17,0x9E,0xC3,0x32,0x5D,0x62,0x2A,0x98,0x91,0x15,0x2D,0xA7,0x36,0x52,
+0x43,0x05,0x6C,0x20,0x2F,0x1B,0xCC,0x51,0xDE,0x4B,0x9F,0x8D,0xBB,0x0B,0x2D,0xD2,
+0x44,0x3D,0xB1,0xA4,0x66,0xA7,0x8C,0x86,0x58,0xBE,0x68,0x1A,0x49,0x3B,0x87,0xB1,
+0xBC,0x10,0x65,0x67,0xD7,0x98,0xD8,0xB4,0xC4,0x0F,0x0C,0xF9,0x6B,0x67,0x18,0xD5,
+0xE0,0xF8,0xB3,0xA8,0xC9,0x90,0xF1,0xA7,0x57,0xB2,0x99,0xB6,0xCD,0xE6,0x80,0x89,
+0x7D,0x96,0xD2,0x85,0xB7,0x84,0x12,0xB7,0x38,0xBD,0xA2,0x06,0x30,0xEB,0x28,0xE0,
+0x4E,0xBF,0x3E,0x14,0x48,0xCC,0x57,0x3F,0x96,0x02,0x38,0x43,0x00,0xC6,0xAB,0x3C,
+0xE2,0xF2,0x8E,0xA7,0x95,0xF4,0xD3,0x38,0xC1,0xC6,0x51,0xF7,0x7B,0xE0,0x73,0x30,
+0x60,0x38,0xFE,0x52,0x5F,0xD1,0x39,0xD3,0xB2,0x7E,0x4F,0x8A,0xFB,0x42,0xFA,0x6E,
+0x05,0x7B,0x4B,0xBC,0xCC,0x9E,0xAC,0x6E,0x69,0x8A,0x7D,0x0B,0x4D,0x44,0x09,0xD7,
+0x72,0x26,0xBD,0xBE,0x3C,0x7A,0x18,0xEA,0xAD,0xF3,0x81,0xF0,0xB6,0xC0,0x58,0x85,
+0x69,0xA6,0x11,0x28,0x20,0xB7,0x3D,0x5D,0xCA,0x9D,0x1A,0x27,0xEA,0x0C,0x40,0x19,
+0xEE,0x5E,0x81,0x56,0x09,0x17,0xB7,0x89,0x8B,0x2B,0xFA,0xFC,0x55,0xBE,0x48,0x91,
+0x35,0x4E,0xC7,0xE7,0xE7,0xFB,0x2A,0x1E,0x43,0x64,0x1C,0x1C,0x5C,0x0A,0xB3,0xA0,
+0xA1,0xBE,0x49,0xB0,0x83,0x9B,0x5A,0x4A,0xFC,0xC4,0x5E,0xFD,0x08,0xBB,0x81,0x9F,
+0x31,0x6A,0x7A,0xA9,0x56,0xC4,0x7E,0x2C,0xA2,0xFF,0x70,0x5C,0x8A,0xEF,0x7F,0x9C,
+0x83,0x95,0x86,0x07,0x4D,0xC2,0x0A,0xF6,0x3A,0x19,0xAE,0xC3,0xD7,0xEA,0xB6,0x92,
+0xAB,0x9B,0xBD,0xB4,0x87,0x45,0x96,0x0D,0x74,0xF4,0x67,0x3E,0xBC,0x94,0xB5,0x88,
+0xB3,0x7B,0x22,0x05,0x60,0xDB,0xE4,0x0C,0x71,0x42,0x93,0x61,0x15,0x93,0xF5,0xA0,
+0xDE,0xD0,0x15,0x70,0xB5,0xB1,0x17,0xD6,0x3C,0xC0,0x78,0xC3,0xC0,0x2E,0xB1,0xDF,
+0x1D,0xC4,0xB8,0x40,0x02,0x93,0x3C,0x19,0xC2,0xF2,0xDE,0xCD,0x23,0x4A,0x2D,0x6E,
+0x9E,0xF8,0x12,0xD9,0x9D,0x73,0x8D,0x01,0x17,0x28,0x2D,0xA7,0xD2,0xB9,0xD4,0x15,
+0x09,0x12,0x3D,0xEA,0x3F,0x65,0xB7,0xFF,0x9C,0xC8,0x1F,0xA2,0x30,0x79,0x3F,0x4B,
+0x96,0x99,0xB2,0xBE,0xF9,0xC2,0x6E,0x9D,0x4F,0x9B,0xD7,0x31,0x11,0xC1,0xCD,0x6B,
+0x6D,0x46,0x4D,0x8A,0x0A,0xB9,0x9F,0x64,0xF1,0xE0,0xCD,0xE8,0xDA,0x90,0xCA,0x06,
+0x26,0x35,0x01,0xF3,0x00,0xE4,0x61,0xEF,0xFF,0x14,0x55,0x3B,0x1B,0xCE,0xF0,0x69,
+0x69,0x11,0xF7,0xF6,0x18,0xA5,0x27,0x15,0x99,0x7E,0xEB,0xFD,0x41,0x1C,0x6A,0x2B,
+0x60,0xEE,0xB0,0xE3,0x2A,0x51,0xA6,0xCE,0x08,0x92,0xC2,0xCE,0x51,0xAD,0x2C,0xF0,
+0xBB,0x1A,0x82,0x62,0x6B,0x57,0x88,0x4E,0xE0,0xAE,0xBA,0x52,0xF5,0x75,0x3D,0xEF,
+0x58,0x25,0xE2,0xE7,0xAB,0x09,0x6A,0xA5,0xD5,0x35,0x92,0x8E,0x53,0x8B,0x0F,0xE1,
+0x4A,0x00,0xD1,0xF4,0xF4,0xB7,0x39,0x56,0x9A,0x41,0x24,0x5B,0x03,0x56,0xA8,0xA1,
+0x8C,0xDD,0x21,0xCA,0xA5,0xDA,0xF2,0x51,0x61,0xC5,0x76,0x0A,0xD1,0x3B,0x80,0xEB,
+0xDB,0x19,0x48,0x7E,0x0E,0x37,0xF9,0x1B,0xF2,0xDF,0x02,0x4E,0xC8,0x07,0xAF,0xCC,
+0xBD,0xE9,0x34,0xDB,0xC9,0x41,0xB2,0xB0,0x20,0x45,0x58,0x0C,0x68,0x8D,0x86,0x18,
+0x50,0x44,0x42,0x80,0x6D,0xAE,0xB3,0xC7,0x7B,0xC9,0x6D,0x3C,0xED,0xED,0x65,0x27,
+0x3A,0x82,0x24,0x3E,0x7F,0xB2,0x0B,0xB6,0x40,0xA6,0xDD,0x33,0x90,0xF3,0x16,0x9F,
+0x1E,0xFE,0x53,0xF7,0xAA,0xD8,0xF8,0x6C,0xF0,0x29,0x5F,0x39,0x77,0xC5,0xB2,0xE5,
+0x24,0x91,0x0D,0x36,0xB4,0x60,0x85,0x1F,0x89,0xF9,0x0E,0x96,0x14,0x37,0x82,0x4F,
+0xA7,0xAD,0xA7,0xAF,0xA2,0xF2,0x5B,0x11,0x86,0xC4,0x04,0x94,0xE8,0x1B,0x2A,0x03,
+0x59,0xBB,0x05,0x95,0xAF,0x87,0x0C,0xDA,0xEC,0xAC,0x7F,0xF6,0x48,0x91,0x03,0xD7,
+0xE4,0xBF,0x4B,0xB1,0x81,0xBC,0xAD,0x84,0xD9,0x37,0x57,0x2A,0x9E,0xAE,0x13,0x56,
+0xCC,0xF5,0x26,0x63,0xDE,0x02,0xFE,0x77,0xE9,0x1A,0x8B,0xA9,0x52,0x2F,0x78,0x0E,
+0x99,0x95,0x43,0x12,0xDD,0xA4,0x31,0x48,0x77,0xCB,0xA8,0x98,0xC3,0xAC,0xE5,0x21,
+0x7A,0xAA,0x23,0x97,0x10,0x8F,0x84,0x68,0x25,0xF3,0xAC,0x53,0x56,0x7D,0x40,0xC5,
+0x31,0xD9,0x6F,0xEE,0x73,0x16,0xCE,0xB4,0xBE,0x94,0x7B,0x3D,0xFA,0x8C,0x4F,0xC9,
+0x00,0xED,0x7A,0xFF,0x5A,0x05,0xC6,0xAA,0x51,0xE8,0xAA,0x89,0xD3,0x1D,0xA3,0xFA,
+0x3C,0x71,0x92,0x87,0xE6,0xAB,0x81,0x27,0x46,0x2F,0xE6,0xCA,0x5D,0xD6,0x0A,0x28,
+0xFA,0xAC,0x62,0xB9,0x04,0x6A,0x07,0x90,0x65,0xBA,0x10,0x84,0x60,0xA4,0x98,0x0B,
+0x63,0xD4,0x5B,0x54,0x66,0x22,0xDF,0x85,0xA3,0xD8,0xC9,0x23,0xBD,0x30,0xC2,0x67,
+0x2E,0x54,0xA1,0x94,0xBA,0xB3,0x1D,0xEB,0xF8,0x54,0xFC,0x13,0x2A,0xC7,0x44,0x92,
+0x5B,0x1F,0x09,0x50,0x69,0x20,0xD5,0xB8,0x57,0x61,0x91,0x70,0xFB,0x28,0x38,0x26,
+0x57,0x29,0x13,0x4B,0xB1,0x3F,0x71,0xA9,0x67,0x4C,0x4D,0xF3,0x59,0x84,0x32,0xE3,
+0x7B,0x34,0xC4,0xE5,0xEF,0x50,0xB0,0x93,0x41,0x6F,0x4F,0xE2,0x64,0xF6,0xA0,0xC0,
+0x39,0xB8,0xCF,0x89,0x85,0x32,0xCB,0xFB,0x80,0x4D,0x3F,0x6D,0xCC,0x55,0x97,0x07,
+0xE9,0x17,0xB6,0xD8,0xA0,0x85,0x06,0xE7,0x50,0x21,0x38,0x58,0x9A,0xFC,0x2B,0x9D,
+0x5C,0x72,0x58,0x9B,0x5F,0x5A,0x32,0x1C,0x52,0xD7,0x65,0x2F,0xF1,0x27,0x05,0x24,
+0x91,0xF4,0xE3,0x75,0xEA,0x0F,0x44,0x25,0x47,0xE6,0x74,0x1B,0xBF,0x16,0xE1,0x76,
+0x47,0xA8,0x2C,0x9D,0xEB,0xDE,0xD6,0xEC,0xBF,0x5D,0xE9,0xEC,0xC7,0xFE,0xDD,0xEA,
+0xD1,0xDC,0xE4,0xDC,0xBB,0x62,0x8F,0x22,0x9B,0x88,0xB6,0x8A,0xA0,0x5E,0xD5,0x8B,
+0x30,0x47,0x88,0x9C,0x0B,0x68,0x0D,0xAD,0xD0,0x83,0x66,0xD1,0x5A,0x06,0x66,0x1D,
+0x46,0x36,0xCB,0xEF,0x6A,0x86,0x1A,0x87,0x1E,0x9C,0x1C,0x5C,0xC1,0x8A,0xC6,0x30,
+0xC3,0xF9,0xD7,0xCF,0xDC,0x75,0xA3,0x81,0xDB,0xC1,0x0A,0x5D,0x13,0xE7,0xEE,0x7A,
+0x10,0x6C,0x45,0x29,0x97,0x2E,0x73,0x8A,0x96,0x43,0xE1,0xFF,0x35,0x8F,0x70,0x6F,
+0x12,0xC8,0x49,0xEC,0xF5,0x66,0xAB,0x9F,0x39,0x76,0x8C,0x9C,0xA1,0xFA,0xA2,0x64,
+0xB7,0x2C,0x98,0x79,0xA6,0x7C,0x3D,0x6E,0x11,0xA1,0x16,0x5E,0x5C,0x72,0x7D,0xC7,
+0x8E,0x79,0x2D,0x0F,0x0C,0x40,0xA4,0xED,0xE8,0xD3,0x19,0x78,0x83,0xC0,0x04,0xBA,
+0xBE,0xD3,0xDF,0x6C,0xFB,0xB5,0x33,0x6B,0xA8,0x9A,0xA5,0xAF,0xBB,0x44,0xD9,0xBD,
+0x53,0x7E,0xA9,0x37,0xFD,0x4C,0x08,0xE2,0x95,0x7C,0x2E,0x59,0x46,0xCC,0x06,0x1E,
+0xD2,0xE6,0x0F,0x6B,0x68,0xF1,0x47,0x71,0xBC,0x62,0x26,0x4A,0xAE,0x03,0xD0,0x42,
+0x73,0x55,0x64,0x82,0x5C,0xFC,0xFD,0x23,0x33,0xFD,0x72,0xC1,0x01,0x70,0x8B,0xB0,
+0x5E,0xD6,0x54,0x5E,0xC6,0x43,0xB8,0x8D,0x76,0x02,0x3A,0x49,0x28,0xE1,0x67,0x83,
+0xF7,0x04,0x9F,0xD0,0x2B,0x80,0x34,0x07,0x5D,0xEA,0x6F,0x2D,0x86,0x36,0x4B,0x9E,
+0x55,0x8D,0x1F,0x8E,0x35,0x38,0x49,0x74,0xB7,0x20,0x4A,0xC6,0x4C,0xC3,0x3B,0x1C,
+0x75,0xA6,0xD2,0x3B,0xE5,0x0D,0x4E,0x18,0x7C,0x89,0xC4,0x14,0x98,0xDA,0x08,0x8C,
+0xF1,0xF7,0x29,0x69,0x19,0x74,0xB5,0xDC,0xC8,0x79,0x20,0x90,0xC5,0xD8,0xFE,0xFB,
+0x0B,0xB6,0x31,0x2F,0x9E,0xD5,0x42,0x3E,0xD3,0xBC,0xA9,0x77,0xE0,0x32,0x34,0x10,
+0xB9,0xBE,0x8E,0xA7,0x7E,0x63,0x99,0x7F,0x59,0x95,0x09,0xA3,0x18,0x4C,0xA4,0x97,
+0x0E,0x7F,0x6C,0x21,0x3A,0x3A,0x43,0x49,0x3E,0x36,0x25,0xB4,0x00,0xD4,0xFC,0x5F,
+0xBF,0x4D,0x38,0x1E,0x78,0x9A,0xA2,0xF6,0x4E,0x52,0x45,0xE0,0xF0,0x83,0x72,0xCB,
+0x5F,0x48,0xB3,0x2C,0xCA,0xE7,0x7D,0x8F,0x6E,0xF8,0x7C,0x08,0x2B,0x63,0x33,0x7D,
+0x5A,0x81,0xEE,0x22,0x14,0x01,0xE2,0x17,0x1A,0xE3,0x7A,0xD2,0xD4,0xCD,0xCF,0xCF,
+0x1C,0x02,0x54,0x84,0x4F,0xE5,0x0D,0xD9,0x29,0xB3,0xB3,0x23,0x65,0x16,0xA3,0xA2,
+0x4F,0x91,0x87,0x4C,0xE7,0xAE,0xC9,0xAC,0xC6,0xCF,0x62,0x97,0x08,0xB9,0x96,0xC1,
+0x5E,0x8E,0x5F,0xE8,0xFD,0x98,0xD2,0xA0,0x6A,0xC5,0xC0,0x52,0xD4,0x89,0xBB,0x42,
+0x64,0xE1,0x01,0x29,0x2A,0x85,0x7C,0x8C,0x18,0x57,0xFD,0x71,0xD6,0xAF,0x98,0x53,
+0x0C,0x83,0x6B,0x52,0x21,0x09,0x10,0xCE,0xBB,0x60,0x55,0xB6,0xA6,0x6E,0xBA,0xDC,
+0x10,0x34,0x4E,0x9F,0x58,0xA6,0x41,0x1E,0x12,0xDC,0x03,0x2C,0xA1,0xBE,0xD6,0xE9,
+0xEB,0xEB,0xB1,0xAB,0xB6,0xC3,0x02,0xAB,0xC9,0xF2,0x68,0x95,0xFC,0xBC,0x20,0x9E,
+0xD2,0xBE,0x04,0xDD,0x0D,0x45,0xEC,0x66,0xF8,0x16,0x26,0xC7,0xED,0xA9,0x11,0xAA,
+0x1B,0x6F,0x05,0x4F,0xC2,0x19,0x04,0xB0,0x10,0x2A,0x5E,0x5B,0x70,0x51,0xAA,0x5D,
+0xD5,0xD3,0x55,0x16,0x0A,0x6D,0x45,0x26,0xB0,0x22,0x39,0x3A,0x2F,0x75,0x7F,0x3B,
+0x5A,0xD9,0xE5,0x94,0x66,0xF6,0x05,0xC7,0xE8,0x91,0xC3,0xAC,0xFF,0x3E,0x74,0x60,
+0x70,0x37,0x84,0x83,0x25,0x87,0x76,0xB1,0x64,0x31,0x58,0x81,0x85,0xF0,0x6B,0xED,
+0x76,0xC4,0x32,0x3A,0x39,0x48,0x56,0x34,0x09,0x19,0x8A,0xCB,0x93,0x35,0x36,0xEC,
+0x7D,0x9F,0x79,0xEA,0xAB,0xDD,0xB0,0xE7,0x61,0x87,0xAC,0xDE,0x78,0x78,0xB4,0x4E,
+0x68,0xD7,0x1B,0x32,0xA7,0x79,0x75,0xE5,0x14,0x55,0x38,0xD5,0x15,0xD7,0x81,0x2D,
+0x99,0xCD,0x48,0xA4,0x76,0x9D,0xE0,0x40,0x9C,0x8A,0xC5,0x76,0x8F,0xFF,0x56,0xEF,
+0x1A,0xF1,0xE2,0x3D,0xC3,0xC8,0x96,0x79,0x2E,0xF3,0x1A,0x0B,0x80,0x06,0x24,0xC9,
+0x9C,0x04,0x15,0xAA,0x31,0x62,0xF5,0x49,0xAA,0x2E,0x22,0x0C,0x3C,0x46,0x6D,0x1E,
+0x15,0xFD,0x13,0x91,0x47,0xCF,0xAE,0xA4,0x22,0xF1,0xDF,0xAF,0xB7,0x7B,0x8B,0xE8,
+0x86,0x40,0x86,0xDE,0xE1,0x57,0xF2,0x25,0xED,0x27,0x37,0xF3,0xBF,0x52,0x95,0xFB,
+0xD4,0x4D,0xB2,0x64,0x8A,0xE4,0x1B,0x84,0x9E,0x7C,0x98,0x01,0xEB,0xDD,0x0A,0x70,
+0x7A,0xF2,0x28,0x21,0xBA,0x67,0xC7,0xA9,0x0F,0x90,0xB1,0x32,0xA3,0x98,0xF5,0xF8,
+0xF0,0x31,0xC5,0xAD,0x71,0xB5,0x49,0x00,0xD8,0xBC,0x1F,0x2F,0xF6,0xB3,0x1D,0x9C,
+0x83,0x89,0xDB,0xD0,0xF1,0x3C,0x17,0xA2,0x2D,0xCC,0xD5,0xAD,0xD3,0x59,0xD7,0x77,
+0xEF,0xBC,0x0B,0xD7,0x3C,0x17,0xA2,0x82,0x34,0xFF,0x01,0x3D,0x5D,0x92,0x7E,0xA5,
+0x2B,0xC5,0xF7,0x2C,0xC7,0x46,0xF0,0x06,0x36,0x09,0x5C,0x4A,0xB9,0x26,0x8E,0x21,
+0xC9,0x64,0x70,0xDB,0xDF,0x07,0xB6,0xFC,0xDC,0xC3,0x79,0xA1,0x30,0x3D,0x4B,0xC6,
+0x88,0xD2,0x90,0x00,0x60,0x0F,0x3E,0x4E,0xA2,0x53,0x81,0x26,0x90,0xB7,0x62,0x12,
+0xBE,0x8B,0xD4,0xDA,0x82,0xCE,0xB8,0xF9,0x3A,0x0B,0x99,0xEE,0xBC,0xD0,0xC1,0x05,
+0x01,0x2B,0x96,0x3B,0xD6,0xFC,0x87,0x48,0x6D,0x85,0x69,0x7A,0xDC,0xA0,0xA5,0x51,
+0x78,0x56,0x24,0xE4,0x5D,0xF9,0xB5,0xA8,0x8D,0xC4,0xB2,0xCC,0xE5,0x80,0x0F,0xB9,
+0xE0,0xB0,0xFA,0x7B,0x00,0x30,0xBB,0xAD,0x23,0x38,0x4D,0x7E,0xE3,0xF4,0x14,0x63,
+0xFA,0xF4,0x69,0x0F,0x53,0x2A,0x2D,0x5C,0x7A,0x42,0x25,0x39,0xFE,0x9A,0x03,0x8F,
+0xFB,0x6A,0x8E,0x7D,0xCC,0xCA,0x9C,0x44,0x7D,0x02,0x8C,0x11,0x0A,0x9F,0xB5,0xD0,
+0x21,0x00,0x5B,0x8E,0xFB,0x61,0xE9,0x29,0xC0,0x46,0x59,0x6E,0xE1,0xD2,0x37,0x72,
+0xEE,0x22,0xEC,0xA5,0x56,0x75,0xD9,0xEA,0xA4,0xDA,0xBA,0xDF,0x47,0x2C,0x05,0x7C,
+0xF6,0xC2,0x73,0x14,0xFC,0x49,0x40,0x69,0x57,0x23,0x4B,0xA4,0xB4,0xF9,0xDF,0x16,
+0x08,0xD4,0xD1,0x2E,0xD3,0xA3,0x73,0xFE,0x97,0xC8,0xA9,0xFA,0x86,0x72,0x3F,0x13,
+0x6A,0x73,0x17,0xF7,0x5C,0x28,0x27,0x61,0x2F,0x3A,0x88,0xDA,0x4E,0xA1,0x6C,0x80,
+0x93,0x08,0xE4,0x06,0xA3,0xF7,0x13,0x9A,0x7E,0x3D,0x43,0xB7,0x54,0x1F,0x17,0x59,
+0x18,0x55,0xEE,0xF8,0xEF,0x84,0x6A,0xD1,0x20,0x07,0x82,0xD8,0xCC,0x11,0xE3,0x8A,
+0xE2,0x14,0xF6,0xBE,0x19,0xA0,0x6F,0x9E,0xF2,0x9D,0xD8,0x9A,0x72,0x77,0x89,0x4C,
+0x39,0xE0,0xC4,0x3F,0x5E,0x5F,0x7A,0x97,0x43,0xDB,0xC8,0x41,0x5B,0xE6,0x65,0x7F,
+0xB9,0xE6,0x85,0x11,0x6C,0xAB,0xFB,0x4C,0x9B,0xCA,0x6C,0x5E,0x23,0x0E,0x59,0xE3,
+0x52,0xB8,0x45,0xF3,0x0C,0x94,0x7E,0xAF,0x65,0xF8,0xCA,0x50,0x0B,0x3B,0xC2,0x3F,
+0xA1,0x06,0x1A,0xA0,0x3F,0xB1,0x6D,0xBD,0xB8,0x5F,0x9A,0x10,0xBD,0x74,0xB6,0xEA,
+0xA6,0x6B,0x4B,0x6B,0xCF,0x6C,0x53,0x7B,0xD5,0x77,0x48,0x5A,0xEF,0x8F,0x32,0xBB,
+0xEC,0x86,0xE0,0x60,0xA6,0xA8,0xE7,0x2C,0xE9,0x58,0x51,0x7D,0x9B,0x1C,0x28,0xFF,
+0x47,0xF0,0x27,0x2B,0xDA,0x58,0x42,0x4A,0x63,0x71,0xF1,0xA9,0xC1,0xCE,0xB2,0xBD,
+0x30,0x1F,0x83,0x2A,0xAC,0xF5,0x19,0xA7,0x03,0x92,0x74,0x96,0xF4,0x95,0x3E,0x8D,
+0x41,0x03,0x91,0x92,0xCA,0x33,0xA7,0xCD,0x1D,0xE1,0x09,0x2E,0x44,0xAE,0x51,0x82,
+0x9B,0x69,0x44,0x61,0xBD,0x4F,0x6E,0xE9,0x2B,0x45,0xEE,0x54,0xC6,0x1E,0xDE,0x88,
+0xE8,0xD1,0x5A,0x1C,0xE3,0x20,0xAF,0xD3,0xD9,0x75,0x8D,0xFE,0x97,0x67,0x0E,0x27,
+0xE6,0x43,0x4C,0xC2,0x49,0x1C,0x36,0x50,0xF5,0xDD,0x71,0xB2,0x9D,0x68,0x33,0x25,
+0x2D,0x36,0x41,0x95,0xEB,0x0A,0x0C,0xAE,0x7F,0xF4,0xD1,0x66,0xE6,0x02,0x5B,0x47,
+0x73,0x0D,0x6F,0x34,0xA5,0x0E,0x28,0x13,0x40,0xE4,0x07,0xE7,0xCE,0x37,0xC0,0x9B,
+0x80,0xB3,0x30,0x67,0xC8,0x44,0xFA,0x3B,0xC1,0x8F,0xCB,0xBF,0x12,0x07,0xED,0x18,
+0xBF,0x15,0x33,0xA8,0xAD,0x24,0x8B,0x6E,0x42,0x12,0x5A,0x90,0x31,0x99,0x3C,0x29,
+0x9F,0x3E,0xFE,0x1D,0xCD,0x1B,0x0E,0x8D,0x93,0xB7,0xCF,0x74,0x35,0xCB,0x04,0xE2,
+0x43,0xA7,0x9D,0x57,0x81,0x68,0x77,0xC6,0x62,0xB8,0x63,0x78,0xE2,0x50,0x63,0x8C,
+0x5D,0xB4,0xB4,0x5F,0x94,0x5C,0x66,0xF7,0xF3,0x54,0x4A,0x4B,0x33,0xBF,0x1F,0x38,
+0xD0,0x1A,0x08,0x18,0x7C,0xC0,0x1E,0xCB,0x38,0xFD,0xC4,0x99,0x7F,0xA8,0xD8,0x7B,
+0x67,0xDB,0xEA,0x9E,0x8C,0x1D,0x20,0x0D,0x4A,0x6F,0xF9,0xBA,0x89,0x8B,0x4D,0x35,
+0x72,0x93,0x88,0x46,0xB5,0x65,0xCD,0x94,0xDE,0x35,0x24,0xD6,0x50,0x4D,0x2F,0x92,
+0x2D,0x9D,0x23,0x95,0x74,0x56,0xE0,0x20,0x75,0x84,0x0F,0x21,0xA0,0x24,0xFD,0xF1,
+0x83,0x61,0xDC,0x27,0x72,0x4D,0x3A,0x54,0xEA,0x5A,0xE9,0xB9,0x69,0x2A,0xA0,0xF4,
+0x9A,0x52,0x08,0xB7,0x2D,0x98,0x5C,0x70,0x4B,0x74,0xD2,0xE7,0x97,0x29,0x22,0xA0,
+0xCD,0xDC,0xF8,0x23,0x4D,0xFC,0x08,0x00,0xAA,0x36,0x72,0x58,0xA5,0x16,0x76,0x11,
+0x7C,0x9A,0xE8,0xF8,0xA1,0x12,0x9F,0x9D,0x4A,0xD0,0x3D,0x90,0x5E,0x27,0x7F,0xA5,
+0x02,0x0A,0x10,0x7F,0x01,0x3B,0x4B,0x17,0x91,0x30,0x8B,0xD1,0x56,0xAF,0xC0,0x17,
+0x94,0xA6,0x90,0x64,0xCC,0x27,0xFC,0x32,0x46,0xAB,0xE5,0xB6,0x4E,0x33,0x9C,0xDB,
+0x96,0x50,0xCD,0x13,0x28,0xD7,0x78,0x86,0xBD,0x57,0x9C,0x72,0x1F,0x61,0x67,0x5F,
+0x78,0xE5,0x8E,0x76,0x67,0x44,0xC5,0x13,0x3C,0x65,0x68,0xA9,0xEC,0xD8,0xD1,0x59,
+0x8D,0x95,0x44,0xF4,0x42,0x8E,0x2E,0xF9,0x41,0x7B,0xD0,0xDA,0x65,0x86,0x51,0xFB,
+0x3E,0x25,0x09,0x58,0x7A,0x53,0x29,0x7D,0xF5,0x12,0x14,0x8D,0xBD,0x8A,0x2A,0xDD,
+0xAF,0xC9,0x20,0x6B,0x32,0xAC,0xA1,0x38,0xB0,0x88,0xAB,0x23,0x3E,0x56,0x1A,0xF0,
+0x82,0xA8,0x4E,0xF6,0x26,0xD2,0xB1,0xDB,0x00,0xB3,0xA4,0x4C,0x96,0x3F,0xE7,0xFD,
+0x4D,0x7E,0xA6,0xAA,0x2E,0xCC,0xA2,0xF2,0x4F,0x26,0x19,0xDF,0x0E,0x63,0x41,0x7C,
+0x8E,0xAA,0x8B,0x52,0x11,0x7D,0x90,0xA6,0xAC,0x42,0xA8,0x43,0x91,0x07,0x63,0x20,
+0x0A,0x77,0xB3,0x55,0xAD,0x34,0x47,0xE6,0x3B,0xB5,0x5D,0xC5,0x3B,0x64,0x91,0x10,
+0xB4,0x0C,0xA9,0x8C,0x84,0xD8,0x74,0x77,0xA3,0xBB,0x8E,0x31,0x20,0xE4,0x07,0xBC,
+0x3C,0xD3,0x54,0x2F,0x1E,0x0F,0xB6,0x5F,0x35,0xE8,0x94,0xC0,0xC4,0x71,0xD6,0x19,
+0xA9,0x40,0x1B,0x92,0x02,0x6F,0xB5,0x95,0xAB,0x92,0x9D,0x2F,0x11,0xC7,0x99,0x6D,
+0xC1,0xDE,0x3D,0x87,0xE9,0xED,0x17,0xD8,0x7B,0xD9,0xC6,0x24,0x84,0x21,0x0B,0xBE,
+0x48,0xC8,0x52,0xF5,0x6E,0x2D,0x39,0x9E,0x05,0x45,0x80,0x03,0xAF,0x94,0xC6,0x9E,
+0xC4,0x68,0xC9,0xD8,0x14,0x32,0xB4,0x50,0x12,0x24,0x6E,0x29,0xDE,0xE7,0x85,0xE8,
+0xB0,0x73,0xCF,0x02,0xE1,0xF3,0x04,0xF1,0xDE,0xA5,0x36,0x42,0x40,0x95,0x62,0xE9,
+0x10,0x7B,0xA8,0x63,0xBE,0x26,0x62,0xD5,0x87,0xF5,0x8A,0x8C,0x34,0xD4,0xAA,0x7F,
+0x69,0xAB,0xF9,0xCC,0x6D,0x79,0xC7,0x1C,0x3A,0x11,0xB2,0xB2,0x9A,0x93,0x16,0xF2,
+0x58,0x4F,0xB7,0x9E,0x7C,0x48,0xF3,0x09,0x4C,0xA4,0xE7,0x8B,0x1C,0x7D,0xAD,0x3F,
+0x1B,0x39,0xC4,0xEF,0x37,0xE3,0x85,0xCE,0xC3,0xCB,0xDA,0x55,0x50,0x81,0x81,0x97,
+0xB2,0x85,0x92,0x75,0x30,0x8F,0xB0,0x1E,0x0E,0xEE,0x6D,0x49,0xFF,0xD0,0xF8,0x47,
+0xCA,0x9C,0x51,0x0B,0x45,0xE2,0x1B,0x29,0x79,0xFF,0xD7,0x07,0xC1,0x43,0x5D,0xF9,
+0xB8,0x0E,0x6C,0x28,0x47,0xC1,0x0A,0x0F,0xB8,0xA1,0xB8,0x3D,0xDC,0xED,0x8A,0xD5,
+0x89,0xEA,0x22,0x7A,0xF4,0xFA,0xFB,0xB6,0x15,0xF4,0x5B,0x45,0xBC,0x9C,0xEF,0x80,
+0x66,0x96,0xF3,0xCE,0x99,0xCF,0x98,0x19,0xDD,0x27,0xC8,0x16,0xF7,0x58,0x47,0xF5,
+0xEA,0x36,0x68,0xE3,0x18,0x14,0x6C,0x2B,0x0F,0x4A,0x82,0x3E,0x44,0xB1,0x2C,0x54,
+0x7E,0x6C,0xB5,0x8F,0xC1,0x76,0xCB,0xED,0xD7,0x28,0xCA,0x2B,0x3C,0x5C,0x15,0xCD,
+0x53,0x0D,0xDB,0x12,0xA2,0x46,0x61,0x1F,0xCE,0x14,0xED,0x04,0x05,0xF7,0x34,0xAE,
+0x98,0xA4,0x55,0xC0,0xEE,0x81,0x22,0x08,0x89,0xA8,0x43,0x89,0x99,0x8F,0xDC,0x92,
+0x33,0xEE,0x5E,0x2D,0xA4,0x5D,0xBB,0x6B,0x8C,0x5E,0x67,0xC6,0x42,0x9F,0x6D,0xD4,
+0xC2,0xE1,0xF2,0x21,0x73,0x3A,0xD5,0xF0,0xC6,0x3D,0xFE,0x1A,0x31,0xE6,0x21,0x9F,
+0x61,0xD6,0x5A,0xE6,0x83,0xB4,0x41,0xA7,0xF6,0x90,0xEA,0xD9,0x1D,0x6B,0x68,0x62,
+0xE2,0x4B,0xCB,0xC9,0xA0,0x65,0x70,0x39,0x39,0x93,0x4C,0xE6,0x7D,0x1A,0x0D,0x37,
+0xDF,0xAD,0x40,0x3F,0x77,0x02,0x1E,0xA2,0x04,0xE1,0x6F,0x74,0x53,0x9D,0x4B,0xF7,
+0xE0,0xBD,0x96,0xBE,0x5F,0x99,0xC2,0x97,0xA5,0xCF,0x54,0x2A,0x57,0xB9,0x05,0x4A,
+0x79,0x2C,0x1C,0xA7,0x06,0x57,0x7E,0xC7,0x8D,0xFA,0x88,0xB1,0x79,0x3E,0x43,0x8A,
+0x55,0x84,0xE0,0xEB,0x0C,0x6A,0x7C,0xC8,0x53,0xEC,0x1A,0xBF,0x45,0xA7,0xE9,0x09,
+0xBD,0xB8,0x98,0x77,0xD5,0x08,0xDB,0x0E,0x03,0x31,0x5A,0x18,0x6A,0x36,0x6A,0x94,
+0x8B,0x1C,0x7F,0x0D,0x57,0x87,0xD1,0xBE,0xF0,0xE4,0x30,0xC2,0x16,0xFF,0x1D,0xB0,
+0xC3,0x28,0x60,0xF0,0x50,0xEB,0xE4,0x6E,0xBA,0x87,0xA9,0x1E,0x01,0xD3,0x7A,0x13,
+0xA3,0xCB,0xE5,0xCF,0x65,0x67,0xD4,0x35,0xBB,0x23,0x46,0x69,0xAC,0x88,0x0C,0xFE,
+0x75,0x2E,0xD9,0x03,0x7E,0x6B,0xE2,0x2F,0xFA,0xEB,0x32,0xFF,0x35,0xC2,0x6F,0x22,
+0x49,0x01,0xC0,0x24,0x0A,0x71,0xA6,0xBC,0xF1,0x40,0xDF,0xB5,0xF1,0x76,0x06,0x75,
+0xC5,0xA1,0x5B,0x09,0x9A,0x9B,0x66,0x9B,0x62,0xE5,0xE1,0x0B,0xCD,0xEF,0xAC,0xF6,
+0x18,0x06,0x0B,0x49,0x2C,0xEF,0xB3,0xD4,0x31,0xBA,0x5F,0xF8,0xE8,0xFC,0x9F,0xE4,
+0xE3,0x82,0x59,0x18,0xCA,0x3C,0x26,0x46,0xAE,0x64,0xB9,0x60,0x06,0xEB,0xFE,0xCE,
+0x3B,0x93,0xFD,0x07,0xB2,0x00,0xBA,0xAE,0x80,0x25,0xBF,0xE0,0xF2,0x6A,0xCC,0x15,
+0x80,0x5E,0x13,0x81,0x5D,0xBA,0xD3,0xB1,0x69,0x4E,0x0C,0x41,0xDD,0xFB,0x4F,0x88,
+0x52,0xC4,0x49,0xC3,0xE3,0xD0,0x15,0xD7,0x2F,0x56,0x4D,0xBB,0xF9,0xFE,0xB9,0xC7,
+0x8F,0x63,0x19,0x83,0xDF,0x35,0xD9,0x01,0x66,0xB7,0x2A,0x33,0x71,0xB6,0xFC,0x38,
+0xDE,0x64,0xD2,0xEE,0xC5,0x4E,0x00,0xBF,0x97,0x44,0x51,0xCA,0xAE,0x82,0x03,0xC3,
+0xF7,0x7A,0xDA,0xFD,0x25,0x86,0x4F,0x59,0x85,0xD3,0x9B,0xAF,0x10,0xD1,0x5C,0x30,
+0x37,0x91,0x38,0xA3,0x17,0x66,0x4A,0xD2,0xBF,0x71,0x8D,0x51,0xFA,0xE2,0x73,0xA7,
+0x60,0x1F,0xC8,0x37,0x70,0x6E,0x2B,0x72,0x1F,0xFB,0x59,0x78,0x38,0x78,0x5B,0x70,
+0x04,0x83,0x2B,0x86,0xD6,0x5C,0x25,0x8C,0x34,0x4C,0x7B,0xB7,0x2C,0x48,0xF6,0xB3,
+0xDA,0x1B,0xB4,0x60,0x6F,0x5A,0xD6,0x3A,0x9E,0xC9,0xAD,0xA3,0x73,0xBC,0xF3,0x05,
+0xDD,0x5B,0x1D,0x48,0x9B,0xEC,0x89,0x3F,0xEC,0x2E,0x33,0xA2,0x93,0x0D,0x6C,0x1D,
+0x1F,0x4A,0xD3,0x4A,0x3C,0xFE,0x9B,0x63,0xBD,0x08,0x57,0xA6,0xFD,0x38,0x1C,0x70,
+0x50,0x6E,0x25,0x4F,0x24,0xBF,0xDD,0x99,0xDB,0x62,0xE9,0x60,0xA7,0xEA,0x86,0x32,
+0xCD,0x41,0xA6,0xDE,0x4F,0x0C,0x34,0x38,0xC4,0xD8,0x06,0x09,0x49,0x51,0x4B,0xB4,
+0x16,0xB5,0x94,0x5F,0x0E,0x0A,0x1A,0xB8,0x2C,0xE4,0x7E,0x95,0xED,0x89,0x5A,0xAB,
+0x3C,0x5B,0xF5,0x48,0xD0,0xEC,0x85,0x20,0xBE,0x37,0x98,0x00,0xBF,0x72,0xDE,0xFA,
+0x2E,0x7E,0xC6,0x5B,0x8F,0x52,0xD6,0xD3,0xF1,0x43,0x2E,0xD5,0xEF,0xAF,0x79,0xBA,
+0xAD,0x42,0x6C,0xC2,0x2A,0x6C,0x45,0x6D,0xD6,0xA9,0xBE,0x15,0x74,0x23,0xD9,0x97,
+0xFA,0x86,0x05,0x76,0x81,0x81,0x4E,0x27,0x45,0xB3,0xCA,0x51,0x6D,0x1F,0xF6,0xB0,
+0xC5,0x20,0x06,0xB9,0x44,0x80,0x58,0x7A,0x55,0x34,0x2F,0x3A,0xA9,0xB7,0x83,0xFB,
+0xDD,0xC0,0x99,0x08,0xA3,0x1E,0x2A,0x7B,0x50,0x82,0xDB,0x65,0x00,0xB0,0xC3,0xD3,
+0x6B,0x9F,0x9C,0xFC,0x26,0xC8,0x80,0x6F,0xE6,0x84,0x62,0x96,0x9F,0x6E,0x5B,0x35,
+0xA8,0x8B,0x31,0xCC,0x91,0xEA,0xAB,0xA0,0x18,0xB6,0xC4,0x98,0x7C,0x0A,0xC7,0x84,
+0x7F,0x49,0x19,0x56,0x1B,0x3E,0x0B,0x89,0xB8,0xBE,0xA3,0xF9,0x8C,0x5D,0x49,0x10,
+0xE8,0xA3,0x36,0x65,0xB9,0x28,0x31,0x77,0x33,0x5E,0x91,0xFC,0x6E,0x9D,0xA2,0x4E,
+0x1B,0x1D,0x69,0x36,0x2E,0xE2,0x23,0x12,0xD5,0x96,0x71,0xB3,0x66,0xB4,0xBC,0x5D,
+0xE0,0xC2,0x96,0x02,0xDD,0x99,0xD2,0xEB,0x6B,0xED,0x6B,0x6A,0xAD,0xE5,0xBB,0x30,
+0xEF,0xCE,0x67,0xAE,0xF9,0xFF,0x8D,0x3E,0x53,0xBD,0x14,0xC3,0x7F,0x88,0x93,0x7A,
+0xBA,0xAE,0x02,0xDF,0xFA,0x59,0x42,0x01,0xCD,0x6C,0x37,0xF2,0xEE,0x0B,0x0E,0x55,
+0x47,0x82,0x4B,0x52,0x57,0x4D,0x72,0xC2,0x9A,0xE2,0xC7,0x66,0x46,0xA8,0x39,0x92,
+0x0C,0xF1,0x07,0x2B,0x34,0xD4,0x38,0x1E,0x01,0x85,0x10,0x08,0xEA,0x59,0x36,0x9E,
+0x4A,0x2A,0xB6,0x3B,0xC2,0xF0,0x3D,0x51,0x62,0x59,0x5A,0x91,0xE1,0xF2,0x7C,0x73,
+0x76,0xB6,0x5E,0x43,0x7E,0x5E,0x7A,0xDC,0x75,0x9E,0x16,0xD2,0x6F,0x39,0xD5,0xA1,
+0x15,0x8F,0x7F,0xE8,0x42,0x79,0x63,0xF3,0x87,0xAE,0x75,0x78,0x01,0x14,0xB4,0x3C,
+0x8C,0xF7,0x46,0x05,0x20,0x31,0xBB,0xE6,0x41,0xCC,0xAC,0xDF,0xDC,0x80,0xEE,0x50,
+0x26,0x1F,0x66,0x3C,0x49,0xF5,0x0F,0xB1,0x5F,0xBF,0xD1,0x67,0x51,0xC9,0x13,0x7C,
+0xCB,0xB2,0x10,0x67,0xED,0x1A,0x0E,0xC6,0x04,0x33,0xE4,0x57,0xD4,0xA9,0xF0,0x43,
+0x68,0xA5,0x77,0x4B,0x8E,0x83,0x44,0x1A,0xD4,0x5F,0xE3,0x62,0xCB,0xE1,0xC4,0xBE,
+0x4C,0xD9,0x00,0x82,0x5B,0xE9,0xB7,0xC0,0x64,0xD0,0x61,0x68,0x2C,0xD7,0x60,0xC4,
+0xD1,0xF6,0x83,0x13,0x86,0xA9,0xE7,0x67,0xA2,0xB2,0xB8,0xCF,0x54,0x3F,0x5C,0x58,
+0x52,0xCA,0x29,0x8A,0x90,0x3B,0x39,0x69,0xAD,0x8F,0xB2,0xCD,0xA8,0x13,0xF4,0x14,
+0x92,0xE4,0x6F,0x0D,0xA5,0xE7,0x11,0xF2,0xFD,0x41,0xEB,0x71,0x22,0x8A,0x65,0x0D,
+0x2F,0xE0,0x21,0x29,0x8B,0xDC,0xB0,0xAC,0xC8,0xDA,0xC3,0xAD,0xF4,0xB5,0x75,0x8C,
+0xA7,0x87,0xC0,0x60,0x9F,0x39,0x33,0x54,0xBF,0xFE,0x0A,0xD1,0x1C,0x7A,0xA3,0xD0,
+0x31,0xF3,0x08,0x21,0xCF,0x85,0x6A,0x9A,0x9B,0x2B,0x55,0xB7,0x7B,0xDA,0xAB,0xB1,
+0x30,0x6D,0xEF,0x53,0x4E,0xDD,0xA6,0xF1,0x3A,0xEA,0xA0,0x07,0x7D,0xAE,0xB0,0x6B,
+0x46,0x1C,0xAC,0x20,0x2F,0x33,0xB1,0xDB,0xF4,0xF5,0xDA,0x8A,0xE6,0x22,0x10,0x46,
+0x66,0x37,0x61,0x95,0xB3,0x75,0xCF,0xFC,0xB2,0x35,0x5D,0xA4,0x89,0xAB,0x06,0x34,
+0xB5,0xA2,0xF3,0x73,0xF8,0x2E,0x1F,0xF7,0xFF,0xB7,0xB6,0x06,0xAF,0xC3,0x98,0x21,
+0xC1,0x77,0xBC,0xC5,0x82,0x27,0x81,0x18,0x35,0xD7,0xAA,0x05,0xE0,0x56,0x0B,0x9C,
+0x64,0x93,0x6D,0x50,0xD1,0x3D,0x17,0xE9,0x1D,0x00,0x30,0xC7,0x1D,0xDE,0xD4,0x3F,
+0x2D,0x44,0x2D,0xEC,0x4D,0x7B,0x69,0xCE,0x73,0x17,0x2D,0x2B,0x47,0x0C,0x4E,0x7D,
+0x58,0x0F,0x85,0x28,0x9E,0xE8,0xA1,0x9D,0xDC,0x22,0x40,0x48,0x96,0xE3,0x32,0xC9,
+0x0D,0x6F,0xE0,0x59,0xCB,0x0B,0x0C,0xE5,0x65,0x19,0xF3,0xB9,0xD8,0xD2,0xD6,0x9B,
+0x21,0x72,0x37,0xF7,0x95,0x64,0xCD,0xDF,0x43,0x3A,0xF1,0xA8,0xE5,0xA0,0x44,0xB8,
+0x9F,0x4C,0x92,0x64,0x84,0xDE,0xBA,0x91,0x74,0x57,0x84,0x03,0x26,0xD8,0x5D,0xC6,
+0x4F,0xE3,0xEB,0x35,0xA1,0x69,0x77,0x8D,0xA4,0x3B,0x83,0x36,0x70,0x71,0xE1,0x5C,
+0xE7,0xAF,0xC7,0xC9,0xCE,0x54,0xF8,0x53,0x63,0x90,0xC8,0x40,0x03,0x32,0x97,0x2D,
+0x2A,0x29,0x7C,0x27,0x7B,0x01,0x8E,0x6A,0x76,0xA1,0xD9,0x74,0x4D,0x03,0x73,0x7F,
+0x87,0xAC,0x0D,0xD5,0x3D,0x2F,0x09,0xAA,0xEC,0x0F,0x9C,0xCB,0x79,0xFC,0x88,0xA0,
+0x03,0xFD,0xF6,0x87,0xC1,0x56,0xF2,0x6E,0x58,0xFF,0x78,0x4F,0x24,0xFE,0x7E,0xD7,
+0xCF,0xE5,0xAA,0x1B,0x5A,0x38,0x25,0x09,0x7D,0xE3,0xB5,0xF8,0xA4,0x68,0xD2,0xCC,
+0x7D,0xED,0x15,0x93,0xBA,0x8E,0xFE,0x48,0xF7,0xCA,0x15,0x2C,0x5C,0x16,0x42,0x4B,
+0xC9,0x16,0x1C,0xA2,0x5C,0xC1,0x1E,0x80,0x6A,0x24,0xF9,0xBB,0x4C,0xA7,0x04,0x90,
+0x78,0x24,0x48,0x9D,0x1E,0x61,0xFF,0x3F,0x1A,0x40,0x99,0xEF,0xBC,0xF0,0x8A,0x04,
+0x2C,0xDA,0xCA,0x9E,0x30,0x5A,0x5E,0x61,0x3E,0x95,0xC6,0x89,0x68,0xE9,0xB9,0x94,
+0x29,0x13,0x97,0x90,0xEE,0xBC,0xC1,0xF9,0x4A,0x8E,0xC0,0x53,0x97,0x47,0x45,0x26,
+0xC8,0x88,0xFB,0xD0,0xDF,0xEE,0x8F,0x1D,0x8C,0xEC,0x19,0xF4,0x07,0x60,0xAF,0xE6,
+0xF8,0x22,0x09,0xB3,0x28,0x1B,0x18,0x9B,0xCC,0xA5,0xA5,0x23,0x3F,0xE4,0x72,0xE1,
+0xA4,0xBD,0x2B,0xD7,0x4C,0xAA,0xFB,0x07,0x98,0x14,0x9A,0x11,0x12,0x27,0xA6,0x19,
+0x25,0x25,0x8D,0x8B,0xD9,0x17,0xB4,0x94,0xB1,0x0A,0x92,0x02,0xFA,0xE8,0x70,0x45,
+0x28,0x8D,0x70,0xE2,0xE2,0x18,0x04,0xFB,0x52,0x74,0x86,0x12,0x94,0xC5,0x11,0xD8,
+0x05,0x0E,0x40,0x3E,0x78,0xA7,0x41,0x55,0x17,0x8B,0xCE,0x9A,0xBD,0x54,0xFD,0xEB,
+0x23,0xD6,0x3B,0x32,0x11,0x63,0xF5,0x02,0x93,0x56,0xF6,0x9D,0xF0,0xE7,0x4D,0x47,
+0x81,0x5F,0xBB,0x6C,0x0F,0xDB,0x88,0x71,0x79,0x9C,0xD3,0x76,0x3A,0x12,0x3D,0xC5,
+0x2B,0x46,0x89,0x73,0xEE,0x4E,0x12,0x8B,0x81,0x02,0x60,0x58,0x7C,0x39,0x10,0x29,
+0x86,0x85,0xB9,0x67,0xC5,0x81,0x30,0x3C,0x27,0xFC,0x6E,0x6A,0xCD,0xDA,0x74,0xB5,
+0x83,0x33,0x4D,0x38,0x6F,0x95,0xE6,0xB9,0x9E,0x4A,0x9D,0x6C,0x2B,0x45,0xAA,0x2D,
+0x1C,0x2B,0xFC,0xD8,0x1D,0x94,0x78,0x5E,0x6A,0x4F,0xC2,0xDA,0x03,0xEC,0xAD,0x6D,
+0x8C,0x0E,0x47,0x3A,0x97,0x05,0x61,0xC7,0x2E,0x71,0x92,0x03,0xC8,0xE8,0xFF,0x55,
+0x73,0xF5,0x73,0xE5,0x66,0xFC,0x1A,0x34,0x34,0xCF,0x4B,0x78,0xA5,0x23,0xAE,0x52,
+0x2C,0x06,0x20,0x5B,0x74,0x99,0xD0,0xA3,0xD4,0x29,0x04,0xB0,0xB6,0x2B,0x87,0x4C,
+0x03,0x91,0x13,0xB1,0x4E,0x67,0xC6,0x01,0xE6,0xA2,0x01,0x50,0xE8,0xC9,0x47,0xA7,
+0x8E,0xF8,0x1A,0x4D,0x5F,0x56,0xF2,0x14,0x3B,0x36,0x6D,0x0A,0x53,0xA8,0x93,0xB4,
+0xBC,0x23,0x9B,0xB9,0x71,0xD6,0xF4,0x55,0x43,0xDE,0xF1,0x36,0x4C,0x0C,0x4B,0xA5,
+0x3F,0xBE,0x0A,0x96,0x98,0x77,0x47,0x3E,0xAC,0xC1,0x98,0x8C,0xCA,0xE2,0xF0,0x68,
+0xC9,0xF1,0x0F,0xB2,0xDE,0x8D,0x06,0x26,0x12,0xA7,0x5E,0xE6,0x88,0xB8,0x22,0xF2,
+0x1F,0x14,0x33,0x7E,0x0B,0xC9,0x79,0x9B,0x8F,0x5F,0xA9,0x5D,0x48,0x28,0x05,0x18,
+0x76,0x43,0x87,0xBA,0x00,0x83,0x94,0x30,0xFB,0xCC,0xED,0x47,0x6F,0x31,0x39,0x37,
+0xDC,0xC0,0x1E,0x86,0x93,0x3D,0xAA,0x95,0x6B,0xEB,0x2D,0xAD,0x42,0xAA,0xB5,0x97,
+0xEF,0xD2,0x0D,0xA3,0xC0,0xCE,0x14,0xCA,0xDD,0xA4,0xF8,0xD9,0x02,0xFA,0x68,0x30,
+0x1A,0xA2,0xC7,0x21,0xF2,0x2E,0x11,0x41,0x24,0x7E,0x90,0x3E,0x3C,0x69,0xCD,0x8E,
+0x6D,0x86,0x0E,0x5D,0x01,0xF4,0x7B,0x94,0xA6,0xCE,0x9A,0xB1,0x46,0x8E,0xFB,0x2A,
+0x0A,0x25,0x22,0x4A,0x4B,0x28,0xE2,0xF7,0xA1,0x1E,0xAF,0xDD,0xBB,0x91,0xB3,0x1E,
+0x7C,0xC8,0x79,0xE7,0x4A,0x5F,0x0D,0x53,0x94,0x45,0x9F,0x51,0x84,0x14,0xD3,0xFD,
+0x3B,0xC1,0x6C,0x18,0xF5,0x42,0x24,0x91,0x86,0xD2,0x55,0x34,0x74,0xB1,0xAF,0x9B,
+0x75,0x7C,0x48,0x1C,0x54,0x1C,0x1F,0xBF,0xAE,0xE7,0x89,0xAF,0xF5,0x67,0x90,0x8B,
+0x33,0xBC,0xCF,0x32,0x7C,0x87,0xC3,0x8A,0xF7,0xB7,0x35,0x61,0xEC,0xED,0x09,0x1A,
+0x99,0x3F,0x56,0x0E,0xA2,0x89,0x51,0x9C,0xFD,0xB8,0x37,0x5C,0xA0,0x11,0x25,0xB2,
+0x1D,0xE2,0x6E,0x09,0x7D,0xF0,0x2C,0x2E,0x55,0x1B,0xF0,0x6B,0x66,0xAF,0x43,0xD8,
+0x51,0xA9,0x17,0x7A,0x37,0x2C,0xB5,0x4D,0x82,0x80,0x9E,0x0C,0x6A,0x03,0xB2,0xD7,
+0x18,0x54,0x9A,0x56,0x07,0xEF,0xA1,0xE0,0x72,0xD7,0x0A,0x82,0xAD,0xAB,0x11,0xE0,
+0x7D,0x01,0xEB,0x36,0xC8,0xD0,0x07,0xE3,0x51,0x49,0x3B,0x53,0x82,0x3A,0x92,0x7D,
+0x5C,0x62,0x40,0x0F,0xFE,0x08,0xC9,0x3A,0xE9,0x5B,0x27,0x22,0xA8,0x99,0x9A,0x00,
+0x65,0xFB,0xAD,0x77,0x26,0x1D,0x81,0x58,0x30,0x9D,0x80,0x40,0xC4,0x44,0x0E,0x5A,
+0x44,0x98,0x06,0x4E,0x3F,0x32,0xA6,0x64,0x53,0x6F,0x2A,0x70,0x59,0x2A,0x23,0x3B,
+0xAC,0xA4,0x7E,0xD2,0x78,0xBF,0x08,0xD8,0x1F,0x78,0x69,0xB7,0x8B,0xA4,0xE8,0x92,
+0x2D,0xCF,0xB2,0x8A,0x88,0x31,0x9C,0x8F,0xB4,0x59,0x50,0xD4,0x40,0xA0,0xBA,0xAA,
+0xFA,0xE3,0x1C,0x97,0x49,0x0B,0xF3,0xD1,0xB6,0x7F,0x41,0xF7,0x63,0x9D,0xC8,0x38,
+0x9F,0xB6,0x6D,0xF7,0xE4,0x73,0x10,0x84,0x05,0xC6,0xB0,0xCC,0x31,0xD3,0xF9,0xDC,
+0x37,0xC3,0xA9,0xBC,0x2C,0x20,0x83,0x57,0x68,0x69,0xD3,0xF9,0x85,0x02,0x16,0xA0,
+0x66,0xC4,0x62,0xD1,0xCB,0x84,0xF9,0x61,0x9C,0x6C,0x8C,0x4F,0x87,0x08,0x19,0x9D,
+0xDD,0x09,0x8C,0x57,0xBD,0xBD,0xAC,0xD4,0x8D,0x79,0xB8,0x7E,0xD5,0x46,0x28,0x79,
+0xF1,0xA1,0x70,0x1B,0x32,0x63,0x91,0xBB,0xC6,0xBE,0xCE,0xD5,0xA4,0x35,0x6B,0x0F,
+0x88,0x71,0x21,0xB4,0xFF,0x7F,0x26,0x9E,0xC1,0x6E,0xFB,0xB9,0x3E,0x63,0xC2,0xB3,
+0xB6,0xA8,0x65,0xE4,0xF4,0x35,0xCB,0x35,0x9F,0xEE,0x72,0x1B,0xBE,0xA3,0x38,0xFE,
+0xF5,0xDE,0x16,0x95,0xE3,0x1F,0x25,0x54,0xE5,0x20,0xFF,0x04,0x93,0x38,0xB4,0x5E,
+0x12,0xDF,0x64,0x0B,0x2F,0x74,0x7D,0xD5,0x10,0x81,0x4F,0xC5,0x49,0x3E,0xC0,0x45,
+0xDA,0x49,0x25,0x7F,0x76,0xBA,0xC1,0x85,0x4F,0xA5,0x29,0x10,0x28,0x59,0x60,0x4D,
+0x77,0x8A,0x15,0x6B,0x52,0x07,0xC5,0xCB,0x75,0x07,0x3F,0xEE,0xC7,0x58,0xC4,0x3A,
+0xA6,0x2F,0x80,0x8F,0xC4,0xF6,0xDF,0x98,0xEF,0x2F,0xFD,0x39,0x64,0xA5,0x4C,0xE5,
+0xE9,0x5B,0x36,0x5A,0x5A,0x19,0xD6,0xE2,0xF3,0xE5,0xFE,0x59,0xD9,0xEA,0xD9,0x76,
+0x7B,0x88,0xD0,0xCF,0x8A,0x12,0x8D,0xA9,0x18,0xA8,0x5C,0xDB,0xCC,0xCC,0xB1,0xE8,
+0x97,0xCB,0xCE,0xDD,0xF1,0x7A,0xEF,0xC3,0xD7,0xAB,0xFA,0xE4,0xBD,0xBF,0xF2,0x9E,
+0x31,0x4A,0x92,0x45,0xBE,0xE9,0x52,0x56,0xDF,0x82,0xE9,0xFA,0xE1,0x57,0x3D,0x48,
+0x13,0x16,0xF6,0xDA,0x5D,0x75,0xE3,0x32,0xE0,0xD6,0xDB,0x4B,0x19,0x7A,0xFE,0x9C,
+0xE1,0x26,0x95,0x70,0xCA,0xF3,0x16,0xC5,0x5C,0x96,0x0C,0x02,0x1E,0x42,0x7A,0x41,
+0xA1,0x6F,0x29,0xA7,0xCD,0x9F,0x23,0x15,0x96,0x63,0x8E,0x72,0x3D,0x7F,0x08,0xD3,
+0x21,0xCD,0x77,0x2E,0xB0,0xEC,0x9B,0x0B,0xB3,0x89,0x65,0xB8,0xBF,0xB5,0xFD,0xA3,
+0x5A,0xEB,0x7B,0xF6,0x04,0xBB,0x5F,0x62,0x8B,0x0D,0x62,0x65,0x13,0xF8,0x4E,0x13,
+0x6A,0xC6,0xA7,0x75,0x41,0x15,0xE0,0xF8,0xC3,0x48,0xEA,0x9A,0x20,0xD1,0xDF,0xFF,
+0x0F,0x93,0xD6,0x15,0xBB,0xA6,0x76,0xA0,0x50,0xED,0xD4,0x24,0xB3,0x19,0x0C,0xAC,
+0xB0,0x21,0x5E,0x1D,0x60,0xE7,0xC0,0x40,0xF0,0x67,0x00,0x0D,0x34,0xE1,0x72,0x3C,
+0xEC,0xED,0xC2,0x05,0xB7,0x80,0xAE,0xDB,0x3D,0x42,0xB7,0x11,0x2F,0x61,0xE4,0x90,
+0x17,0x69,0x90,0x54,0x4C,0x44,0xD7,0x27,0xD9,0xF6,0x33,0xE1,0x58,0x3C,0xE6,0x66,
+0x8D,0xC7,0xD5,0xEB,0x84,0x17,0x44,0xF4,0x85,0x50,0xAB,0x60,0xDE,0xD2,0x5D,0xAB,
+0xD0,0xC2,0xDB,0x22,0x1B,0x8F,0xA2,0x2A,0x83,0x24,0x71,0x7B,0x6C,0x2D,0xF3,0x57,
+0x52,0x96,0xD8,0xDC,0xBA,0xD1,0x99,0x04,0xDC,0x00,0x17,0xAE,0xFC,0xF9,0xEA,0x64,
+0x06,0x27,0xE7,0xEE,0x5B,0x6E,0x39,0x46,0xBC,0x70,0x43,0xCA,0x68,0x09,0xBD,0xEA,
+0xA7,0x11,0x26,0x77,0xD0,0x2C,0x91,0x2C,0x63,0xC5,0x30,0x47,0x2A,0x27,0xB1,0xD4,
+0x7F,0x73,0x6E,0x62,0xA8,0x15,0x08,0xC1,0x0F,0x18,0x6A,0xD3,0x48,0x80,0x68,0x12,
+0xF9,0x91,0xAF,0xD5,0x75,0xE5,0xCE,0xFF,0x2C,0x25,0xF8,0xA1,0xDD,0xCE,0x9E,0x31,
+0xBE,0x2D,0x01,0x58,0xE9,0x0D,0xF2,0x87,0xFE,0xAB,0x51,0x6A,0x1A,0x8D,0xD2,0x26,
+0xB6,0x04,0x12,0x46,0xDD,0x18,0xC3,0x96,0xCD,0x82,0xBD,0xFB,0x66,0x39,0x03,0xC9,
+0xFC,0x67,0x8B,0x9A,0xAE,0x54,0x88,0xEF,0xC1,0x2E,0xB2,0x0A,0x01,0x57,0xD4,0x52,
+0x49,0xAA,0xA0,0xBA,0x91,0x34,0x6B,0x6A,0x25,0xBB,0x17,0xDB,0x39,0x9C,0xD0,0x00,
+0x86,0xA9,0x06,0x85,0xF1,0x51,0x3E,0x1B,0x0A,0x2A,0x8A,0x58,0xE8,0xAD,0xF3,0x9E,
+0xD5,0xF6,0xB8,0x76,0xBB,0x3C,0x16,0xC9,0x52,0xE6,0xE1,0xD9,0xC5,0x2E,0x2F,0xAE,
+0x74,0xD8,0x83,0x28,0xBF,0x72,0xAB,0xED,0xD3,0x30,0xF1,0xE6,0x5E,0xF2,0x07,0x9B,
+0x23,0xD5,0xF6,0xE3,0xA9,0xD0,0x55,0xD7,0x07,0x90,0xD8,0x6C,0x36,0x90,0x7C,0xF1,
+0xFD,0xC3,0x64,0xED,0x95,0x7A,0xD6,0x4E,0x4B,0x6C,0x70,0x40,0x0B,0x92,0x76,0xFE,
+0x80,0xDD,0xDC,0x9E,0xFA,0x24,0xEC,0x8F,0xE1,0x0F,0x40,0xB2,0xDB,0x3D,0x27,0x87,
+0x73,0x08,0xB6,0x44,0x86,0x53,0xC8,0x46,0x9B,0xE8,0xE4,0x84,0x54,0x37,0xA5,0x37,
+0xCB,0x1A,0xAA,0x35,0x40,0x35,0xA2,0xF8,0x23,0x95,0x97,0x9A,0x3B,0x38,0x15,0x0C,
+0xCA,0xBE,0x45,0x42,0xED,0x43,0x4F,0xA3,0x1C,0x10,0x74,0xFA,0xB7,0x08,0x20,0x57,
+0x81,0x79,0x33,0xE9,0x1D,0x3F,0x29,0x06,0xC8,0xB0,0x5D,0x70,0x2D,0x4A,0x7A,0x85,
+0x8A,0xD2,0xDE,0xA3,0xD9,0x56,0x7E,0xB2,0xEF,0xA9,0x72,0x4C,0x37,0x0E,0x0E,0x16,
+0x41,0x83,0xB3,0xA4,0x04,0xA6,0xB8,0x8C,0xA5,0x7B,0x5A,0x21,0xB3,0x5F,0x5C,0xED,
+0x12,0xDC,0x0D,0x57,0x21,0x95,0xAA,0x9F,0xE5,0x2B,0xFD,0xFC,0xC7,0x8A,0xEA,0xA2,
+0xF0,0x1C,0x53,0xBC,0x1E,0xF5,0x49,0x1A,0xEB,0x8D,0xCF,0x02,0x5C,0x56,0xC2,0x97,
+0xDE,0x5D,0x55,0x3C,0xEA,0xC7,0x92,0x9B,0xF4,0x29,0xDE,0xDA,0x60,0xCA,0xBA,0x7F,
+0x5F,0x6F,0xA1,0xE7,0x15,0x80,0x9B,0x8E,0x2F,0x39,0x98,0x6B,0x8C,0xF9,0x93,0xEE,
+0x19,0x77,0xE0,0x1D,0x31,0x76,0xD4,0x8B,0x6D,0x63,0x02,0xB9,0xE6,0x3F,0x2D,0x88,
+0xE7,0x7D,0xBD,0x96,0x42,0x3A,0x9F,0xF2,0x02,0xA2,0x38,0xE7,0x12,0xEC,0xB5,0x86,
+0x16,0x8E,0xC6,0x6F,0x9D,0xC5,0x64,0xC6,0x6F,0x69,0x3F,0xB6,0x69,0x35,0xAF,0x38,
+0xCF,0x48,0x61,0x0D,0x16,0x4A,0xFB,0x92,0x4F,0x48,0xCD,0x0E,0x3A,0xA6,0x67,0xEB,
+0xF5,0xEA,0x77,0xF3,0xFC,0x65,0x6C,0xA1,0x11,0xAA,0x26,0xCE,0xDA,0xA3,0x55,0x60,
+0x44,0x75,0x97,0xEB,0xC0,0xCF,0xEF,0x38,0x6A,0x5B,0xDF,0x3D,0x00,0xC9,0xA6,0xB5,
+0x6F,0xC2,0xB5,0x24,0xD4,0x62,0x2C,0x08,0xDB,0xB8,0x43,0x59,0x32,0xC7,0x00,0x4B,
+0x9C,0x17,0xDF,0xFE,0x7F,0x55,0x41,0x7D,0xA4,0x6D,0x07,0xE4,0xB0,0x65,0xEB,0x06,
+0xEE,0xF0,0x41,0xFF,0x9F,0xCA,0x59,0xCC,0x8C,0xC4,0x47,0xE3,0x06,0x3A,0x1F,0x03,
+0x9A,0x63,0x05,0xE5,0x85,0x99,0xA8,0x5A,0xCB,0xAC,0x3D,0xBA,0x11,0xD6,0x02,0x6D,
+0x05,0xBD,0xE3,0x7D,0x4C,0xC4,0xAD,0x54,0x79,0x53,0xC1,0x14,0x0A,0x0C,0x04,0x19,
+0xDA,0x0F,0x9E,0x04,0x49,0x4F,0x4D,0x66,0xCF,0x88,0x80,0xF4,0xA0,0xE4,0x3D,0x39,
+0x3B,0x4D,0x3E,0xBB,0x7B,0x1B,0xFC,0x59,0x5B,0x78,0x0E,0xA3,0xC4,0xB0,0x5D,0x49,
+0xE1,0x09,0x67,0x8D,0xBA,0xF9,0x4B,0xDF,0x93,0x60,0x56,0x3B,0x67,0xA7,0x71,0x2E,
+0x3A,0xE9,0xD1,0xCC,0xB2,0x46,0xF9,0x57,0x14,0x98,0xC6,0x45,0x4E,0x73,0xD1,0xA4,
+0xCD,0x6E,0x70,0x2E,0xF3,0x5E,0x03,0x11,0xFF,0xBD,0x0C,0xAF,0x8B,0x94,0x58,0xBF,
+0x36,0x92,0x09,0xEA,0xA2,0xA5,0x87,0x43,0x88,0xE0,0xFA,0xAD,0x7B,0x10,0xBC,0x0B,
+0x31,0x42,0x3C,0x86,0x89,0x68,0xA7,0xF6,0x18,0x34,0xC9,0xB4,0xD2,0xC2,0x32,0xC0,
+0x4C,0x5C,0x84,0xF5,0x00,0xE8,0x05,0xA8,0x9A,0xFE,0xB9,0x41,0x18,0x29,0x17,0x2A,
+0xC0,0xB1,0x47,0x7F,0xD2,0x23,0xAC,0x26,0x87,0x50,0x95,0x96,0xF0,0x4D,0x42,0x01,
+0x85,0x2B,0xF8,0xD1,0x51,0x13,0x81,0xFA,0xB4,0x79,0x79,0x07,0x0F,0xC5,0x0A,0x44,
+0x3F,0x1F,0xF5,0x83,0xE2,0x78,0x20,0x13,0x46,0xD6,0x22,0x74,0x90,0x4E,0x5E,0xCB,
+0x70,0x8A,0x48,0x10,0x7A,0xDE,0xA1,0x4F,0x1A,0x3E,0xF4,0xBB,0x8E,0x5D,0x56,0xE2,
+0x4B,0x8C,0xB1,0x99,0xD7,0xA8,0x4C,0x14,0xB9,0xC3,0x2B,0x33,0x68,0xAB,0xDD,0xDF,
+0xDC,0x7B,0x44,0x1F,0x7D,0x5A,0x7C,0x77,0xBE,0xFB,0xF6,0xB7,0x21,0x7C,0x61,0x9F,
+0x45,0xD1,0x78,0x9C,0x28,0xEF,0x45,0x01,0xC3,0x24,0x8F,0x05,0x53,0x5A,0x6E,0x66,
+0xD3,0x82,0x62,0x6D,0xCC,0x3E,0xE0,0x94,0x60,0xD9,0x50,0x8D,0x84,0x98,0xF4,0x4E,
+0x0B,0xE0,0x2A,0x78,0x68,0x32,0xE2,0x51,0x6B,0x4D,0x82,0xF8,0xB1,0xFB,0x99,0xE1,
+0xDB,0xAB,0x71,0x73,0xFD,0xA0,0x31,0xB7,0x7E,0x6B,0x1C,0x90,0x33,0x59,0x72,0xAC,
+0x62,0x1D,0x82,0x75,0x32,0xBC,0xB4,0x97,0x34,0xB9,0x34,0xFD,0x6E,0x58,0x64,0x69,
+0x75,0x7C,0x6C,0x5F,0x43,0xFF,0xC2,0xE4,0x19,0x22,0x94,0x71,0x71,0xD5,0x1E,0xA7,
+0xF7,0xCC,0x66,0xD0,0xD8,0x93,0x23,0xA4,0x8F,0xD8,0x27,0x29,0x7A,0x8E,0xCE,0xEC,
+0xAE,0x9C,0xDA,0x1E,0xAC,0x5B,0xB5,0xE5,0xEE,0xBF,0x2F,0x89,0xAF,0xE8,0x91,0xC8,
+0x3C,0x9D,0x0B,0xD7,0xF0,0x94,0x63,0x0D,0x72,0xC7,0x13,0x61,0x14,0x1F,0x0C,0x30,
+0x4A,0x28,0x5E,0xEE,0x76,0x2F,0xAE,0xE3,0x20,0x89,0xF7,0x50,0x25,0x2B,0x1D,0x25,
+0x7E,0xD7,0x81,0x15,0x13,0xC1,0x1B,0xA0,0x99,0xE2,0xD9,0x8B,0xD3,0x5C,0x40,0x27,
+0xB3,0xF2,0x36,0x09,0xBC,0xB8,0xCB,0xF1,0x03,0xB4,0x65,0x22,0xBF,0x69,0x47,0xF7,
+0xC8,0x98,0x54,0x61,0x30,0xB3,0x89,0x9D,0xC4,0x1C,0x52,0x81,0x9D,0xE6,0x37,0x36,
+0x09,0xC6,0x3B,0x5B,0x2D,0x64,0xA5,0x33,0xE7,0x21,0xC0,0xF3,0xBE,0xF7,0x35,0x10,
+0xAD,0x1E,0x24,0x4A,0x1B,0x7E,0xA9,0x28,0x22,0x83,0xCA,0x5F,0x93,0x74,0xE9,0x20,
+0x65,0xCD,0xB7,0x19,0x50,0xD6,0xDC,0xEC,0x96,0x52,0xB6,0xB0,0xA6,0x17,0x84,0x8F,
+0x21,0xB0,0xB2,0x13,0x09,0x95,0xF1,0xB1,0x6E,0x11,0x90,0x9D,0x4A,0x68,0x65,0x86,
+0xEA,0x19,0x3C,0xC1,0x45,0x52,0xB2,0xA6,0x29,0xAD,0x3E,0x10,0xD6,0x10,0x8D,0xBA,
+0xC7,0x78,0x52,0x5C,0x26,0x62,0x18,0x54,0x30,0x91,0x19,0x3F,0xEF,0xBB,0xAC,0xD9,
+0x53,0x22,0x8F,0x30,0xFF,0x00,0xBF,0x92,0xE8,0xF3,0x51,0x2A,0x97,0x56,0x95,0x40,
+0x5B,0x5F,0x2C,0x1A,0x47,0x71,0xA3,0x80,0xDE,0x2A,0x9F,0xF2,0xAE,0xFD,0xB4,0x23,
+0xD8,0xC2,0xBD,0x35,0x64,0xA0,0x92,0x1E,0x11,0x29,0x39,0xCD,0xCE,0x8C,0xD1,0x76,
+0x7B,0xF5,0x15,0xF2,0x94,0x2E,0x06,0x49,0x21,0x84,0x2D,0x0E,0xE2,0x01,0x98,0x8B,
+0x8A,0xFA,0xB9,0xFE,0x43,0x49,0x68,0xD2,0x6B,0xE7,0xB4,0xD2,0x91,0x78,0xD4,0xC0,
+0xEC,0x90,0x07,0x38,0xEB,0x7E,0xAF,0x71,0xB4,0x55,0xC9,0xAB,0x96,0x40,0x50,0x1D,
+0xC0,0x38,0xFB,0x74,0xE1,0x43,0xAD,0x7E,0x6A,0x43,0x5B,0xA5,0xAA,0xD9,0xFA,0x9E,
+0x59,0xA9,0x71,0x6D,0xB8,0x8D,0x11,0x2E,0x42,0x76,0x87,0x3E,0x84,0x5E,0xBC,0x5E,
+0x66,0xB9,0xA7,0xEC,0x90,0x16,0xCD,0x1B,0xE3,0x58,0xBC,0x60,0x80,0x7A,0xF2,0xE3,
+0x1A,0xDF,0x02,0x1C,0x82,0x73,0x07,0x8C,0x5C,0x9A,0x95,0x7D,0x7F,0x6F,0xB5,0xEA,
+0x7A,0x3C,0x87,0x23,0xB7,0xFF,0x37,0xD7,0x5D,0x3E,0x7A,0x0A,0xD2,0x34,0xC3,0x07,
+0x32,0x08,0x98,0xDE,0xB0,0x93,0x02,0x07,0x17,0x5D,0xE3,0xD6,0xC5,0x18,0xA4,0xA4,
+0x04,0xAC,0x7F,0xA4,0x32,0x1C,0x08,0xB7,0xE4,0x88,0x89,0x0C,0xB9,0xD1,0xD3,0x80,
+0xA1,0x12,0xEC,0x9A,0xCB,0xFB,0x60,0x6D,0xD6,0x03,0x8C,0xEC,0x3B,0x1B,0x26,0xF0,
+0x7C,0xB5,0xBC,0xDA,0x7D,0x8F,0xB5,0x22,0x85,0x5C,0x32,0x1F,0x1E,0x08,0x15,0xE2,
+0xF0,0x15,0x27,0xF7,0xED,0x65,0x75,0x05,0x16,0xF9,0x0C,0xA1,0x22,0x91,0xBF,0x61,
+0xCC,0x3A,0x3E,0xD0,0x99,0x7F,0x31,0x96,0x1D,0x52,0xE1,0xEB,0xE6,0x25,0xD6,0x36,
+0xEB,0xD0,0xAE,0x10,0x04,0xC4,0xC6,0x6E,0xC8,0xEF,0x9E,0xAF,0x2A,0x19,0x00,0xD3,
+0x39,0x4A,0xF4,0x52,0xBA,0xAE,0x00,0x08,0x8E,0xF7,0xDF,0x55,0x0E,0x1C,0xF6,0x9C,
+0x82,0x87,0x1A,0xD4,0x55,0x14,0x69,0x17,0x67,0x9C,0x6C,0xF4,0x21,0x8D,0x75,0x01,
+0x5A,0x96,0xBE,0xCB,0x2D,0x28,0xF5,0xFF,0x49,0xDD,0x6A,0x74,0xD5,0x0C,0x47,0xDA,
+0x8E,0x85,0xDF,0x70,0xF0,0x72,0x99,0x6B,0x58,0xC8,0x5E,0x45,0x29,0x05,0xCA,0xB3,
+0x4E,0x6E,0x3D,0x2E,0xC2,0x92,0x9C,0xE0,0x62,0x6A,0x48,0xBB,0xC3,0x36,0xE5,0x24,
+0x67,0x70,0x35,0x3D,0x22,0x5A,0xD3,0x06,0x70,0xFD,0x82,0xDE,0x7D,0x65,0xBA,0xD7,
+0x36,0x77,0xFE,0x50,0x38,0x21,0x0A,0xB8,0x81,0x0E,0xF9,0x27,0xA2,0x51,0x45,0x2C,
+0x64,0x4F,0xFA,0x9B,0x7C,0xF8,0x5A,0x86,0x0B,0x97,0xE0,0xB6,0x40,0xEA,0xD5,0x09,
+0x63,0x0F,0x53,0xB3,0x88,0x4E,0x05,0x83,0x79,0x70,0x7E,0xB7,0xA0,0x5B,0x4A,0x11,
+0xBD,0x97,0xCC,0x55,0x31,0x48,0xF6,0x35,0xD3,0xF5,0xA8,0xA3,0xFF,0xAF,0x4F,0xA7,
+0xD9,0x0B,0x2F,0xE4,0x97,0x7A,0xF8,0xCB,0xF8,0x42,0x8A,0x6C,0xEB,0x9F,0xE2,0x64,
+0x74,0xC8,0x1F,0xF0,0xAA,0xE8,0xDB,0xB9,0x4D,0x8F,0xA1,0x4C,0x76,0xF1,0xCF,0x05,
+0x23,0x46,0xEF,0x64,0xCA,0x8C,0x8F,0xC9,0xAC,0xCD,0x01,0xF3,0x44,0xCE,0x9B,0xB4,
+0x3A,0x75,0x3B,0xF4,0x95,0x59,0xE9,0xED,0x0D,0xE3,0x3A,0xAD,0xBA,0xCD,0x19,0xE0,
+0x94,0x89,0xC4,0x46,0x93,0x42,0x33,0x99,0x92,0x3D,0xDC,0x35,0x73,0xC3,0x44,0xE5,
+0x2F,0x44,0x2A,0xC0,0xCF,0xC3,0xAB,0x3F,0x5A,0xEE,0x4F,0x66,0xCC,0x86,0xDE,0x4B,
+0x2D,0xB2,0x77,0xB7,0x2B,0x33,0x2F,0x8B,0xA1,0x12,0x36,0xA2,0x9D,0xD4,0x25,0xCF,
+0xBB,0x1E,0xF7,0xAC,0xE6,0x2F,0x98,0xAE,0x76,0x89,0x58,0xC5,0x85,0x48,0x79,0x03,
+0xC5,0x8E,0x0F,0x2B,0x46,0x06,0x4C,0x24,0xAD,0x69,0xEE,0x84,0x8D,0xC0,0xC6,0xB1,
+0x16,0xDD,0xC7,0xB8,0xD5,0xB8,0x72,0x81,0x57,0x31,0x78,0x37,0xED,0xB1,0xA3,0xE4,
+0x87,0x31,0xEE,0x8B,0x9D,0x47,0xFA,0xC4,0x12,0xAB,0xC7,0x99,0x6E,0x6D,0x93,0xC9,
+0x34,0x81,0xA3,0x27,0xA5,0x9A,0xFD,0x40,0xA6,0xC2,0x03,0xCE,0xB6,0x61,0xE8,0xEF,
+0xC1,0xF1,0x69,0xA5,0x80,0x50,0x16,0xAA,0xDB,0xDC,0xBB,0xBD,0x3F,0x3F,0x68,0x4D,
+0xB3,0x63,0x54,0x86,0x4A,0x20,0x94,0x5F,0xDC,0x0C,0x8E,0xD1,0xE8,0x83,0x28,0x04,
+0x37,0xBE,0x6C,0x81,0xF6,0x69,0x43,0x1F,0x4B,0xFB,0x7B,0x57,0x42,0xE0,0xDA,0x34,
+0xF4,0x6A,0x41,0x79,0xC9,0xD8,0x71,0x4B,0xA8,0x9F,0xCA,0xCB,0xDD,0x84,0xF8,0x68,
+0x3B,0xBC,0xA9,0x25,0xC1,0xC6,0x62,0x62,0xE7,0x0A,0x77,0x58,0x45,0xD8,0x5E,0xE9,
+0x78,0xCA,0xDA,0x54,0x0E,0xF9,0xC4,0x61,0x9C,0x60,0x15,0x30,0x57,0xC6,0xB2,0xAA,
+0x10,0x54,0xFC,0x41,0xE5,0x7B,0x66,0x2C,0x4C,0x2B,0x4E,0x3B,0xC2,0x20,0x20,0x79,
+0x85,0xC7,0xB3,0xFC,0xF9,0x1B,0x65,0xE6,0xD2,0x51,0x47,0xD4,0x17,0x96,0x6F,0x0D,
+0x0D,0x18,0x4E,0x5F,0x63,0xCC,0xA7,0xCE,0x44,0x02,0x5D,0x25,0xF3,0x03,0xBE,0xA8,
+0xA9,0x6F,0x4F,0xB0,0x59,0x32,0xB1,0x6C,0x60,0x4C,0x59,0x98,0xE7,0x33,0x13,0x6B,
+0x09,0x67,0x28,0xD1,0x06,0xE7,0xD7,0x48,0x39,0x1C,0xE5,0x56,0x93,0x72,0xDB,0xFD,
+0x7D,0x7C,0x2E,0x0B,0xF3,0x26,0x67,0xE9,0xF5,0x9D,0xBD,0x3D,0x0D,0x00,0x3C,0xFC,
+0xF1,0xDC,0xB5,0x26,0x89,0x39,0xEA,0x27,0xE2,0xFC,0x53,0x17,0x7C,0x73,0x7F,0x8A,
+0x0B,0x91,0x75,0xA6,0xD7,0x9B,0x63,0xA7,0xE9,0x57,0xBE,0x5D,0x2C,0x37,0x41,0x53,
+0xA2,0x2D,0x23,0x3C,0xD0,0xF7,0x56,0x77,0x24,0x72,0x09,0x41,0x83,0x66,0x38,0x83,
+0xE1,0x5B,0x50,0x4D,0x9B,0x5C,0x20,0xB0,0xAB,0x1D,0x34,0x9F,0xCF,0x9A,0x14,0x2B,
+0xD0,0xBF,0x1E,0x1F,0x8A,0x6D,0x14,0xA5,0xDD,0xA8,0x61,0xA6,0x49,0x74,0xAF,0xE6,
+0xDF,0x82,0x14,0x1D,0x7E,0xDB,0x4B,0xA0,0x3A,0x9E,0x1B,0x02,0x24,0xBF,0xFE,0xE1,
+0x30,0xFE,0xC5,0xA9,0x13,0xEE,0x28,0x0F,0xF2,0x4D,0x88,0x51,0x6F,0x7B,0x56,0x94,
+0x01,0x1A,0x8B,0xFB,0xA0,0xD5,0xD9,0xB6,0x5F,0x18,0x6B,0x29,0x0F,0x0A,0x33,0xC1,
+0x73,0x88,0xB6,0xD8,0xA2,0xF6,0xC8,0x90,0x9E,0x46,0x04,0x13,0x12,0xA4,0xE4,0xED,
+0xF6,0xEF,0x45,0xDE,0x41,0x93,0x64,0xA1,0xAA,0xFF,0xA4,0x71,0x2C,0x75,0x5C,0x8C,
+0xE2,0xDF,0x86,0x73,0x8E,0xB8,0xD3,0x83,0x98,0xF1,0x5A,0xD7,0x48,0xE9,0xED,0x6F,
+0x49,0xAA,0xEB,0x44,0x54,0x4B,0x06,0xE9,0x1A,0x53,0x17,0x3C,0xF5,0xAD,0x92,0xBA,
+0xA9,0x1B,0xF3,0xDB,0x55,0x39,0xE1,0x77,0xAC,0x0C,0x12,0xC8,0xF2,0xED,0xBA,0x13,
+0x74,0x25,0x35,0x2B,0x3C,0x30,0x6C,0x8B,0xB8,0xDA,0x97,0x62,0xF6,0x92,0x34,0x75,
+0xAB,0x11,0xCE,0xD4,0xC5,0xC1,0x9F,0xF0,0xC3,0x03,0x29,0x78,0xA7,0x95,0x59,0xBE,
+0x20,0x45,0x51,0x5B,0xA7,0x18,0x59,0x57,0x90,0x90,0xFA,0xB0,0x1F,0x67,0x79,0x9F,
+0xCA,0x76,0xC6,0x74,0x59,0x22,0xFB,0x41,0x70,0x95,0x71,0x82,0xDF,0x8C,0x27,0x7D,
+0x28,0xCD,0xE3,0xE4,0x16,0x27,0x0D,0x65,0xF6,0x60,0x86,0x15,0x13,0x65,0xDD,0x5A,
+0xDC,0x4C,0x38,0xD6,0x96,0x09,0x4C,0x63,0xCA,0xFC,0x6E,0x6D,0xCB,0x74,0xC2,0xFE,
+0x23,0x59,0x31,0x91,0x4D,0x88,0x7E,0x97,0x26,0xCF,0xFF,0x44,0x7A,0x32,0x19,0xEE,
+0x07,0x5C,0x7E,0x67,0xB7,0xCE,0x66,0xD6,0x4C,0x09,0x99,0xFA,0xA8,0xA8,0x5B,0xB4,
+0x2B,0xD1,0x83,0x2E,0x43,0x56,0x68,0x05,0x87,0x7C,0x94,0xAD,0x61,0xF7,0xFE,0x67,
+0xEF,0x65,0xD4,0x47,0x09,0x5D,0xC3,0xE8,0x9D,0x38,0x07,0xD9,0x5D,0xD8,0xD9,0x7E,
+0x32,0x5B,0x12,0xB7,0x0E,0x96,0x92,0x85,0x19,0x69,0xFC,0x8B,0x30,0xF0,0x93,0xAC,
+0x17,0x48,0x00,0x84,0xFD,0xC5,0xCD,0x3B,0x6D,0xBC,0xB3,0x3D,0xED,0x57,0xD3,0xFC,
+0xCC,0x58,0x46,0x35,0x34,0x57,0xCC,0xEA,0x71,0x0B,0x96,0xF0,0xA3,0xEA,0xD7,0xD8,
+0xB0,0x91,0x62,0x42,0xEE,0xA4,0x19,0x80,0xFE,0x01,0x26,0x72,0x95,0x4E,0xAD,0x3F,
+0x76,0x2F,0x08,0x24,0x9F,0x1C,0x0B,0x9C,0x91,0x0E,0x1D,0xC2,0x8B,0x3D,0x15,0x42,
+0xDB,0x74,0xE5,0x52,0xE8,0x1D,0xAF,0x73,0x1D,0x3E,0x46,0xF7,0xEB,0xDE,0x2A,0xC7,
+0x8D,0x1E,0xBC,0x2D,0xDC,0x02,0xE7,0x8E,0x6F,0x18,0xBF,0xF8,0xC8,0x4B,0x64,0x31,
+0x89,0x3A,0x01,0x63,0x82,0xA3,0xC9,0xB5,0xF4,0xC4,0x8A,0xD0,0xF7,0x5B,0xE5,0xE7,
+0x9F,0x00,0xFF,0xC1,0x49,0xF4,0xC4,0xC0,0x9C,0xA6,0xE0,0xAB,0x7D,0x72,0x31,0x47,
+0xA3,0x99,0x7C,0x6B,0x47,0x2A,0xD2,0x52,0xA1,0xA4,0xEF,0xA1,0x51,0xDA,0x7D,0xBB,
+0xEB,0x41,0x69,0x09,0xEC,0x61,0x15,0x24,0xCC,0x0F,0xD8,0xD4,0xEA,0x17,0xFB,0x55,
+0x98,0x38,0x22,0x45,0x30,0x2B,0x76,0xBD,0xAB,0x61,0x43,0x03,0x1B,0x18,0xF7,0xF9,
+0xA7,0xBD,0xC1,0x25,0x10,0x9E,0xBB,0x96,0x93,0xAA,0x11,0x07,0xCA,0xBD,0x13,0x6C,
+0xC7,0xCC,0x94,0x40,0x2F,0x51,0xB8,0x30,0x42,0x9B,0x8F,0x24,0x49,0x20,0x3C,0xFD,
+0xE6,0xFB,0x3B,0x3D,0xDD,0x70,0x00,0x10,0x80,0x11,0xC5,0x66,0x56,0x9A,0x55,0x12,
+0x9E,0x16,0xA2,0x04,0xC8,0xA8,0x62,0x58,0xE2,0xB6,0x03,0xBF,0xC2,0xC0,0x39,0xCF,
+0x43,0x28,0x64,0xF4,0x7F,0x2E,0x80,0x99,0x77,0xF8,0x20,0x49,0xB0,0x52,0x1A,0xF2,
+0xDF,0x50,0x58,0x1C,0xF2,0x69,0x3C,0x37,0xB0,0xBB,0x37,0x05,0x7B,0xFB,0xC8,0x7C,
+0x06,0x4A,0x23,0xA2,0xCB,0x1F,0x89,0x62,0x37,0xD0,0x27,0xE0,0x90,0xF8,0xF2,0xCB,
+0x1B,0xE4,0x0F,0x75,0xF1,0xDE,0xD7,0x0D,0x14,0xC1,0x01,0xE2,0xE2,0x6A,0xD1,0xF6,
+0x2D,0xFF,0x03,0x6F,0xE0,0x7A,0x0F,0x12,0x39,0x42,0x31,0x3E,0x4E,0x60,0x14,0x54,
+0x66,0x3B,0x76,0xC7,0xB3,0xB2,0xDC,0x81,0x0C,0x21,0x9E,0x53,0xA1,0x1C,0xA0,0x85,
+0xC6,0xDA,0xC9,0x85,0x7D,0xEB,0x8C,0x3D,0xBE,0x29,0x21,0xDB,0x70,0xB9,0x44,0x10,
+0x40,0x34,0x04,0x3E,0x44,0x9D,0x39,0x68,0x8F,0x1D,0x34,0xCA,0x41,0x5D,0x16,0x5E,
+0x25,0x77,0xB1,0xD0,0xBF,0xA9,0xC6,0xB7,0x79,0x6A,0x36,0x97,0x9A,0x73,0xAF,0x35,
+0x8A,0x26,0x61,0xA9,0xA3,0x64,0xE3,0x00,0x15,0x5F,0xE6,0x90,0x33,0xCF,0x35,0x63,
+0x04,0x40,0x1E,0xAD,0xDF,0xB5,0x0C,0xB4,0xC4,0x6E,0x78,0xB3,0xEC,0x9E,0x02,0x6E,
+0x75,0x33,0x68,0xEE,0xF5,0xA2,0x6D,0x5A,0xDB,0xE3,0xB6,0xC9,0x60,0x3E,0x2F,0xF5,
+0xEE,0x73,0x89,0x82,0x7A,0x20,0xDD,0x50,0xD0,0xB8,0xFD,0x19,0x38,0x8D,0xB9,0x0F,
+0x9A,0x32,0x1F,0x4A,0xB4,0x79,0x8D,0xEC,0x05,0xDE,0xD9,0x46,0x98,0x85,0xD8,0x68,
+0x1E,0xD6,0xEF,0xFE,0x36,0x92,0xC0,0x4E,0xF9,0x6C,0x77,0xB9,0x14,0x25,0xF5,0xF3,
+0xFA,0x43,0x4A,0x2F,0xC7,0x04,0x93,0x54,0x2E,0xAE,0x5F,0x23,0x9C,0xFA,0x56,0x0E,
+0x5E,0x86,0x48,0x23,0xD2,0xDC,0xF1,0x1C,0x1B,0xCD,0xF0,0x4E,0xE9,0x28,0x5D,0x9A,
+0xCB,0x60,0x9B,0xB1,0xD9,0x0C,0xBA,0x47,0x99,0x6F,0xBD,0xA5,0x81,0xB6,0x48,0xBC,
+0xD4,0xC4,0x8A,0x69,0x29,0xE8,0x0E,0xC3,0x3A,0x78,0xDA,0x89,0x65,0x88,0x70,0x01,
+0x4C,0x98,0x0B,0xCF,0xBA,0xA7,0x9B,0x7E,0x24,0x6B,0xF3,0x81,0xAA,0x5E,0x2C,0xE9,
+0xE1,0xC3,0xE6,0xB9,0x33,0x9C,0x9D,0x87,0xC2,0x9D,0xCE,0x0A,0x22,0x81,0x8F,0x14,
+0x4B,0xA0,0xD6,0x4B,0xB5,0x0B,0x6A,0x72,0x8B,0x4A,0x8E,0xB6,0xA6,0x5C,0x88,0x2C,
+0xBF,0x21,0x0D,0x79,0x2C,0xE6,0x53,0x0A,0x78,0xF4,0xD1,0xE5,0xA5,0x63,0x2E,0xE3,
+0x36,0x7F,0xAF,0xF9,0x5F,0x9B,0x4D,0xB2,0xB2,0x1F,0x3B,0xC0,0x50,0x13,0xAC,0x29,
+0xE4,0xF1,0x06,0x32,0xD5,0x17,0xA0,0x71,0x5A,0x7B,0x10,0x95,0x87,0x3F,0xB1,0x87,
+0x67,0x2D,0x2B,0x02,0x7B,0x52,0x3A,0xCE,0xA5,0xF3,0x55,0xDD,0x16,0xD3,0x82,0xAE,
+0x8C,0x08,0xE1,0xE8,0x27,0x36,0x18,0x51,0xCD,0x91,0x3F,0xA6,0x2A,0xFC,0xA5,0xB7,
+0x84,0x80,0x53,0x57,0x66,0xED,0xF8,0xE7,0xE4,0x45,0xB5,0x06,0x54,0x6C,0x22,0x4F,
+0xC5,0xC6,0xA9,0x4F,0x84,0x1A,0x7F,0x46,0x21,0xA2,0xAE,0x8F,0xBE,0xA6,0xC9,0x6A,
+0x94,0x94,0x2D,0xB4,0x40,0xE1,0x83,0x3F,0xD1,0x26,0x1A,0x6B,0xBC,0x50,0xBE,0x37,
+0xB3,0x8D,0x02,0x88,0x4F,0x4D,0x72,0x33,0xBB,0xE0,0x7C,0xD5,0xAB,0x97,0xFD,0x7B,
+0x7A,0x83,0x07,0xD5,0xD7,0xD2,0xAC,0xD5,0xA0,0x3A,0x08,0xD3,0x05,0x6B,0x4F,0x84,
+0x7F,0xB1,0xE7,0x5E,0xAE,0x0D,0x1E,0xA8,0x0A,0xD2,0x28,0xEA,0xE5,0x2A,0xF9,0x5F,
+0x4D,0x8E,0x56,0x0A,0x11,0xEC,0x5C,0x08,0x6E,0x86,0x58,0x8A,0xB2,0xA4,0x6D,0xAF,
+0x12,0x50,0x4F,0x56,0x60,0xD3,0xCB,0x83,0xD9,0xE8,0xE5,0x08,0x00,0x15,0xD4,0xDE,
+0x61,0x13,0x3E,0x20,0x8E,0xB2,0xE1,0x94,0x54,0x92,0xFA,0xC6,0xA0,0x38,0x4F,0x52,
+0x13,0xF4,0xA0,0x21,0xD6,0x33,0x8A,0x58,0xE4,0x67,0x3B,0x67,0xBB,0xE2,0x49,0x26,
+0x52,0x3C,0xD4,0xB7,0x6A,0x63,0x44,0x01,0x82,0x38,0xEE,0x43,0xB3,0x83,0x2E,0x86,
+0x62,0x91,0xC0,0x74,0x6E,0x2D,0xF9,0x25,0x94,0x02,0x10,0xE1,0xC4,0x6C,0x2F,0x22,
+0xF7,0x40,0x24,0xD1,0x74,0x7E,0x08,0xB3,0x56,0x98,0xC7,0xC9,0x1B,0xCF,0xD2,0xAA,
+0x41,0x0F,0xF1,0xA5,0x7D,0x04,0xE7,0x2D,0x55,0x84,0xA7,0x03,0x88,0x72,0x9D,0x3F,
+0xA7,0x9D,0x64,0x76,0x26,0x4F,0xEC,0xFD,0xF7,0x6F,0x25,0x4E,0x16,0x67,0xBB,0x57,
+0xC5,0xCB,0x21,0x31,0x37,0x69,0xCF,0xFF,0xFB,0xC3,0x2A,0xBF,0x54,0xEB,0xD7,0x5C,
+0x6B,0x1C,0x3C,0x1D,0x58,0x37,0xF5,0x3E,0xEA,0xC1,0x09,0x99,0xC6,0xC8,0xEA,0x2E,
+0x1A,0x79,0x5C,0x48,0xBB,0x62,0x8D,0x93,0x1B,0x72,0x32,0x20,0x22,0x9A,0xA4,0x1F,
+0xDE,0xD1,0x17,0x3D,0x28,0xB1,0xDE,0x5B,0x78,0x1F,0x07,0x8F,0x5E,0x2E,0x75,0xF0,
+0x15,0x80,0x7A,0x3A,0x52,0x87,0x7A,0xBC,0x27,0xEB,0xB1,0x8A,0x63,0x2C,0x7F,0xFF,
+0xFB,0x3B,0xFC,0xF7,0x07,0x32,0x43,0xCA,0x13,0xFA,0x80,0x9F,0x87,0x7E,0x31,0xCE,
+0x07,0x17,0xB0,0x5F,0x3A,0x5D,0x9D,0x45,0x65,0xB1,0x2B,0x58,0xF1,0x0F,0x42,0x8D,
+0x56,0x6E,0x1F,0x8F,0x8D,0x78,0x81,0x88,0x50,0xB6,0x47,0x88,0x4D,0x95,0x14,0x24,
+0xA1,0xE9,0xBE,0x6D,0xDD,0x46,0x58,0xCC,0x7F,0x27,0xDA,0x0B,0x52,0x18,0x6E,0xEA,
+0x29,0x56,0xB6,0xDF,0x6B,0xA6,0x19,0x17,0xAB,0x87,0xF3,0x81,0xC2,0x9F,0x96,0x94,
+0xB5,0x0A,0xAE,0x13,0x05,0x3D,0x7E,0xC0,0x1C,0x4A,0xEF,0xA4,0x6E,0x84,0x16,0x02,
+0xE7,0xF1,0xFF,0x97,0x7C,0xC1,0xBA,0x3B,0x98,0xAE,0x1F,0x10,0x98,0xF3,0x4B,0x00,
+0xA2,0x6B,0x40,0x39,0xEF,0x12,0xE9,0xF3,0x00,0xF2,0x9E,0xB6,0x55,0x75,0xA5,0xBB,
+0xAC,0x36,0x89,0x3C,0x09,0xCC,0x71,0x6C,0xDA,0xF4,0x85,0xC2,0xA9,0xC7,0x5A,0x15,
+0xAF,0xB4,0x77,0x68,0x32,0xE2,0x2F,0xCD,0xBC,0xAB,0x50,0xE6,0x9A,0x57,0x8E,0x0C,
+0x90,0xE0,0x45,0xD9,0x92,0xA0,0x90,0x2C,0xE8,0xCB,0x34,0x96,0x14,0xC3,0x7E,0x5B,
+0xB9,0x71,0x76,0x35,0x44,0x25,0x84,0x86,0x51,0xA0,0x1A,0x4D,0x60,0x16,0xC8,0x14,
+0xE5,0xD7,0xEE,0xB4,0xF9,0xB0,0x17,0xC9,0x42,0xA8,0x04,0x64,0xB6,0x4A,0x20,0xDB,
+0x81,0xF5,0x71,0xE8,0x48,0xD4,0x8B,0x2A,0x70,0x97,0xB5,0x30,0x62,0xB2,0x0D,0x18,
+0xE2,0x07,0xDB,0xD8,0xBD,0x23,0x0D,0xBD,0xA7,0x2B,0xFC,0x70,0xBF,0xB5,0x35,0x9C,
+0x5E,0x47,0x0C,0x91,0x88,0xF3,0x61,0xBA,0x25,0xE1,0x8C,0x85,0x2D,0x96,0x08,0xEE,
+0x00,0xC7,0x85,0x33,0x30,0xED,0x12,0xC7,0xCE,0xC4,0x46,0x6F,0x5D,0x14,0xC2,0x1B,
+0x0C,0xBC,0x5D,0x15,0xF4,0x84,0x45,0x73,0xC9,0xFC,0x9B,0xEB,0xED,0xB8,0x8F,0xA8,
+0xD0,0x8C,0xDE,0x38,0x4B,0x1E,0xEB,0x36,0x41,0xB4,0x64,0xAE,0x01,0x8B,0xA6,0x39,
+0x6D,0x68,0xE6,0x06,0x59,0xF2,0xA8,0x28,0xC6,0x4C,0xF4,0xD0,0x4A,0xF8,0xDF,0x75,
+0xEC,0x5A,0x12,0xDD,0x5F,0xB3,0x28,0x06,0x5A,0x34,0xC8,0x38,0x5B,0xE7,0x7B,0xAD,
+0x7D,0xD9,0x3D,0x40,0xEC,0xD8,0x89,0xEF,0x33,0xDB,0x72,0x27,0x96,0x61,0x95,0x16,
+0x78,0x2F,0x19,0x0F,0xAD,0xC0,0x73,0xA9,0xF5,0x65,0x18,0x41,0x0C,0x23,0xCF,0xC4,
+0x44,0xF9,0xD5,0xEA,0xD2,0x7D,0x37,0x7C,0x02,0xF8,0xA3,0xB9,0xE6,0xE3,0x5F,0xE3,
+0xF0,0x90,0x11,0xBD,0x3F,0xD6,0x7D,0x77,0x46,0x8C,0xB9,0x2A,0xC9,0xC4,0x46,0xDF,
+0x69,0x3A,0x2D,0x3E,0x01,0x73,0xC3,0xE4,0x86,0x1C,0x53,0x0D,0x69,0xE9,0xDD,0x53,
+0x7A,0x09,0x08,0x2C,0xBF,0x2C,0x30,0xB7,0x53,0xAA,0x27,0x42,0xCE,0xA9,0x8D,0x8E,
+0xFE,0xCD,0xD8,0xB8,0xB9,0x6D,0xB0,0x99,0xCB,0xF6,0xA6,0xE4,0xD7,0xD7,0x4E,0xF6,
+0xCE,0x60,0xCC,0x7B,0x9B,0xDA,0x7F,0xB2,0xC5,0x50,0x94,0x1A,0x4B,0x66,0xAD,0x92,
+0x3A,0x65,0x93,0xCD,0x4D,0x5F,0x6B,0x18,0x36,0xE9,0x92,0xAC,0xD3,0x80,0x32,0x4C,
+0x8B,0xFA,0x73,0xD5,0xD3,0xB8,0x6A,0x6A,0x69,0x1D,0x24,0xA9,0x93,0xA8,0x9B,0x4B,
+0x30,0x6A,0x91,0xF0,0xCA,0x21,0xFB,0xE0,0x39,0x59,0xFD,0x97,0xAB,0x63,0x9F,0x19,
+0x04,0x95,0x4E,0x0B,0xB1,0xD2,0x02,0x11,0xE0,0x43,0x86,0x29,0xAC,0x0E,0x54,0x48,
+0x57,0xCA,0xF0,0xF8,0x7B,0x45,0x67,0x03,0xAF,0xA3,0x4E,0xCF,0xB2,0x1D,0x5C,0x61,
+0x64,0xE5,0x1A,0x6F,0x6D,0xE7,0x99,0x39,0xAA,0x91,0xAE,0x44,0x59,0x43,0xBE,0xA1,
+0x19,0xFB,0xA2,0x1C,0x87,0xC8,0x0E,0x0A,0x5B,0x22,0x95,0xFD,0x26,0xCD,0xD8,0xA5,
+0x60,0xB7,0xD1,0x57,0x1E,0xAB,0xD2,0x40,0x35,0xF5,0xF2,0x66,0x29,0xC1,0x74,0x54,
+0xED,0xFE,0xFD,0xAA,0x0A,0x06,0x11,0x70,0xA1,0x05,0x7C,0x31,0x1E,0x06,0xDC,0xF7,
+0x9C,0x9B,0x9D,0xFF,0xAC,0x05,0x2E,0xBF,0x90,0x26,0xAD,0xAF,0x83,0x29,0x4D,0x74,
+0x37,0xBA,0xA4,0x9C,0x62,0xDC,0xF6,0x89,0x8C,0x9E,0xDC,0xBD,0xFE,0x03,0xEE,0x7C,
+0xDA,0x83,0xDC,0x05,0x2A,0xBE,0xE3,0x51,0x2B,0x47,0xBE,0x7B,0xA4,0x6F,0x33,0xE8,
+0x71,0xA2,0xE5,0x66,0x0D,0x82,0xCC,0x48,0x81,0x24,0x8E,0x89,0xC5,0xF2,0x5D,0xC5,
+0x09,0x4A,0x79,0x5A,0xA3,0x3E,0x41,0x0F,0xC2,0x68,0x49,0x9E,0x6C,0x20,0xD3,0x0E,
+0xB0,0xFC,0x8A,0x5C,0xBA,0xA7,0xD0,0x85,0x3B,0x53,0xC0,0x98,0x70,0x97,0x1E,0x2B,
+0x79,0x8B,0xF6,0x78,0xD0,0x72,0x0A,0x76,0x31,0xD1,0x4F,0x28,0xD4,0xED,0xF9,0x1D,
+0x55,0xEC,0xE1,0xDB,0x49,0x11,0xD6,0x3C,0x04,0xD6,0x23,0xF8,0xE0,0x10,0xE6,0x55,
+0x0E,0x9A,0x4C,0x36,0xA6,0xB5,0xA1,0x3D,0x34,0xE3,0xAF,0xA3,0x03,0x2F,0x63,0x35,
+0x1B,0xDD,0xB3,0x3F,0x8F,0x77,0xBC,0x82,0xFE,0xF1,0xCA,0x34,0x65,0xDF,0xC6,0x49,
+0x3F,0x93,0xB7,0x82,0xB4,0x59,0xE2,0x23,0x22,0xD9,0x51,0x01,0x75,0x5E,0x10,0x76,
+0xB8,0xD5,0x99,0x42,0x68,0x6C,0x79,0x0B,0x9E,0x80,0x9F,0x51,0xE4,0x47,0x9A,0xEF,
+0x21,0x7F,0xA5,0xC1,0xFA,0x7A,0x77,0xD5,0x9C,0x8A,0xA2,0x5E,0x4C,0x0B,0x66,0xC3,
+0xB7,0xD9,0x51,0x7B,0xD4,0x3A,0x44,0xD7,0x90,0xE9,0x14,0xE3,0x42,0xFA,0x96,0xBA,
+0x1F,0xAC,0x95,0x30,0x1C,0x69,0xD7,0x04,0xFD,0x46,0x77,0xD6,0xF6,0x2B,0x79,0xC6,
+0x7A,0xF9,0xE4,0x50,0xB1,0x11,0x34,0x51,0x4E,0xFF,0x86,0xED,0xA4,0x65,0x48,0x22,
+0xAD,0xD5,0x4A,0x4D,0x70,0x2B,0x5B,0x0F,0x4C,0xD9,0x97,0xCE,0x87,0x58,0x3A,0xB0,
+0x08,0x6B,0xD9,0x73,0x07,0x65,0xE1,0x1E,0x39,0xEE,0x3C,0xA3,0xF9,0x9B,0x42,0xA9,
+0x71,0xBB,0x88,0xDC,0xCA,0x79,0x56,0x3B,0x3E,0x3E,0x09,0xCF,0x63,0xCD,0xEB,0x15,
+0x5D,0x13,0x74,0x90,0x45,0xA7,0x6B,0x54,0x75,0xF9,0x7F,0x64,0x12,0xBE,0xA8,0x63,
+0xE6,0xDE,0x9A,0x16,0x33,0x9E,0x3E,0xE1,0x64,0xEC,0x4B,0x55,0x40,0xF0,0x99,0x87,
+0x5A,0x53,0xDD,0xB8,0x8E,0xA0,0x06,0x05,0xB7,0x25,0xEE,0x0A,0xEF,0xA1,0xE0,0x57,
+0x92,0xC5,0x9C,0xCC,0xD7,0x6E,0xBA,0x55,0xE8,0x01,0x88,0xDF,0x8E,0xC6,0x40,0x5F,
+0x75,0xC4,0xEE,0x52,0x1B,0x05,0xE2,0xD4,0x1D,0xA0,0x38,0x1E,0x54,0xC0,0x34,0x44,
+0x36,0xB2,0x9D,0x23,0x0C,0x2F,0x0C,0xB5,0x67,0x6E,0xB5,0x01,0x79,0x5B,0xB8,0xE4,
+0xFB,0x92,0x28,0x08,0x72,0x08,0x4A,0x29,0xE0,0x28,0x9B,0xC1,0x0B,0x34,0x31,0xF2,
+0x69,0x41,0xCE,0x9D,0xA2,0x03,0x11,0x62,0x0B,0x65,0x39,0x43,0x1E,0x12,0x59,0x6C,
+0x26,0x35,0x78,0x48,0x3C,0xEC,0x18,0x18,0x17,0xAF,0x3A,0x23,0xA3,0x5D,0xCC,0xFF,
+0xF7,0x90,0xED,0xAC,0xAA,0x1D,0x02,0x4B,0x8D,0x87,0xF8,0xF4,0x00,0xA0,0x44,0x20,
+0x61,0x3C,0x6D,0xB7,0x32,0xE9,0xD1,0x45,0xA4,0x16,0xCB,0x18,0xD9,0xBA,0xFA,0x5B,
+0x93,0x0C,0x0E,0x1D,0xA5,0x6F,0x24,0xB2,0x18,0x56,0x1C,0x51,0xDE,0x82,0x7E,0x86,
+0xB1,0x50,0x6A,0x82,0x46,0xF3,0x95,0xD6,0x27,0x02,0x2E,0xE0,0x26,0xAF,0xBD,0x52,
+0x17,0xD1,0x36,0x1A,0x09,0x60,0x28,0x43,0x2F,0x2B,0x3D,0xFE,0x7A,0x47,0x72,0x84,
+0xEA,0xDC,0x5F,0xB2,0xB9,0x0F,0x27,0x78,0x3B,0xC8,0x2D,0x80,0xE7,0x29,0x5F,0xE5,
+0xDA,0xF1,0x83,0x31,0xFC,0xA1,0x98,0xE2,0x73,0x8D,0xA5,0x7F,0xD4,0x00,0xCE,0x09,
+0xA1,0xD7,0x8F,0xE9,0x48,0xF6,0x5C,0x8B,0x4B,0x09,0xA2,0xA2,0x78,0x4D,0x7D,0xB9,
+0x21,0x75,0xD1,0x60,0x35,0x85,0xE4,0x95,0x6E,0xE3,0x49,0x68,0xFA,0x87,0x88,0xC9,
+0x97,0x73,0x68,0x93,0xB4,0x5E,0x10,0xA7,0x21,0x76,0xF4,0xFB,0x9F,0xC4,0x66,0x7C,
+0x6C,0xF7,0x3A,0xC2,0x4F,0x9A,0x69,0x5B,0xC5,0xC2,0x70,0x0B,0xE8,0x99,0x64,0x8A,
+0x30,0x3B,0xA6,0xDA,0x98,0xFD,0x07,0xC0,0x08,0xE7,0xC7,0x17,0xF3,0x19,0xF2,0x26,
+0x8F,0x89,0x2E,0xD2,0x43,0xBC,0xB1,0x20,0xA8,0x6D,0x13,0x3E,0x74,0xE1,0x8C,0xB6,
+0x86,0x3D,0x1F,0x29,0xA3,0x74,0xFE,0xC6,0x44,0xF0,0x84,0xD0,0xAF,0xF1,0x3D,0xF0,
+0xD2,0x8C,0x20,0x1B,0x42,0xCB,0x5E,0x84,0x24,0x80,0xD0,0xB4,0x3B,0x01,0x6A,0x7E,
+0x50,0xD8,0x23,0xE5,0xE3,0x95,0x65,0xAA,0x7B,0xA4,0xB6,0x61,0xAB,0xD5,0x73,0x4D,
+0x0D,0xDD,0x2D,0x2C,0x7C,0x0D,0x83,0x74,0x7D,0xD0,0x6C,0x7A,0x19,0x2A,0xDD,0xB1,
+0x9C,0x31,0x04,0x1F,0xE5,0x8E,0xBF,0xDE,0x92,0xCF,0x05,0xC0,0xC4,0x14,0x2D,0x77,
+0x03,0x29,0xB5,0xFF,0x97,0x8F,0x21,0x39,0x66,0xCA,0x5A,0x76,0xEC,0xBD,0x2A,0x37,
+0x06,0x9F,0x41,0xA0,0x3D,0x9B,0xF7,0xBC,0xDF,0x7C,0xA9,0x70,0x0A,0x22,0xF4,0xAF,
+0xAB,0x5C,0x71,0xB4,0x16,0x54,0xD5,0x0B,0x79,0x82,0xA7,0x42,0xBB,0xC1,0x90,0x33,
+0x83,0x8B,0xEB,0x76,0xB6,0x7D,0x01,0x81,0x1E,0x22,0xC6,0x4A,0x2F,0x31,0xC7,0xBD,
+0xAC,0x1C,0xD8,0x9C,0x8C,0x83,0x17,0x23,0x2C,0xA9,0xC3,0xAA,0x71,0xD3,0x07,0x56,
+0xF3,0xEF,0x8B,0x22,0x9E,0xE6,0xDD,0xB4,0xCC,0x4F,0x8C,0x62,0x62,0xDB,0x2E,0x48,
+0x0C,0x14,0xBF,0xFD,0x6F,0x1F,0xA6,0x47,0xD6,0xF1,0x55,0x19,0x0F,0x10,0x7F,0x4F,
+0x49,0xEB,0xF7,0x75,0x26,0x97,0xC1,0xA6,0xEA,0x27,0x99,0xFC,0x4F,0x40,0xA2,0xE8,
+0xBF,0xA4,0xF2,0x51,0x60,0x6D,0x80,0xBE,0x54,0x41,0x5F,0x96,0x0D,0x1A,0x70,0x72,
+0x3C,0x39,0x63,0x7E,0x89,0xCC,0x33,0xD5,0xBB,0x5E,0x36,0x2C,0x8B,0xF4,0xCB,0xBF,
+0x0E,0xE2,0xE2,0x8A,0xA7,0x4C,0x35,0x94,0xC3,0xB6,0xAA,0x10,0x94,0x50,0x13,0xAE,
+0x6F,0xC8,0xF5,0x64,0x38,0xD4,0xD3,0x4A,0x25,0x24,0x3F,0xC3,0xC5,0x02,0xE8,0x2A,
+0x5C,0xDA,0xE6,0x41,0x6B,0x27,0x6D,0x15,0x93,0x6B,0xEA,0xB7,0x85,0x52,0x35,0x8D,
+0xF6,0x59,0x7F,0x7D,0xF8,0x99,0x53,0xB0,0x03,0x4C,0x2A,0x5D,0xA8,0xC9,0xB9,0x2D,
+0x9F,0x0E,0xCB,0xB9,0xF3,0xD3,0xBE,0x1B,0x77,0xDF,0x6E,0x47,0x8F,0xD0,0x85,0x02,
+0xFC,0xD2,0x81,0x20,0xB2,0x45,0xCA,0xD3,0x6C,0xC5,0x58,0x4B,0x43,0xEC,0x53,0xE7,
+0x8A,0x3F,0xDA,0x8D,0xB3,0x32,0x25,0x77,0x59,0x9E,0x68,0xC7,0x7C,0x69,0x33,0x04,
+0xED,0x9C,0xF6,0x9A,0xF9,0xEE,0xBC,0x14,0x5E,0x4E,0x5D,0xAB,0x81,0x76,0x7B,0x30,
+0x9A,0xB8,0x3F,0xE6,0x0A,0x34,0xD6,0xC1,0xDC,0xFE,0x57,0x24,0xFB,0x91,0x4D,0x94,
+0x19,0x25,0xAE,0xC9,0x5A,0x93,0x96,0x1C,0x05,0x38,0xF0,0x46,0x67,0xE9,0xA5,0xA8,
+0xB3,0xA6,0x37,0xF5,0x84,0x9D,0x04,0x0A,0x0F,0x37,0xF2,0x7B,0x2B,0x15,0x89,0x00,
+0xF5,0x66,0xB0,0xDB,0xAC,0x06,0xD8,0x3F,0x56,0x67,0x4E,0xB5,0x32,0x9F,0x10,0x91,
+0xBB,0xDB,0x94,0xDF,0x0D,0x58,0xE3,0x11,0x7E,0x52,0x92,0x2E,0xB3,0x49,0x2F,0x81,
+0xFD,0x1B,0x13,0xF1,0x30,0xCA,0xC0,0x63,0xA9,0xC9,0xFC,0x49,0x45,0xC2,0x12,0x67,
+0x98,0x4E,0x62,0x91,0xFF,0xF5,0x66,0x60,0x8A,0x57,0xCD,0x98,0x6A,0x53,0x91,0xFA,
+0xD1,0xB3,0xEF,0xBD,0xCF,0x36,0x72,0xCD,0x7A,0x00,0x59,0x16,0xAD,0xFB,0x32,0xCD,
+0x9D,0xF8,0x96,0xCE,0x85,0xEA,0xEB,0xAE,0xAD,0x9B,0x37,0x71,0xA1,0x57,0xC3,0xC2,
+0x2C,0xBE,0x86,0x15,0x80,0xA5,0xCF,0x58,0xE7,0xF8,0xAE,0xAD,0x4C,0x5C,0x68,0x88,
+0xC4,0x82,0xFE,0x89,0xC7,0x28,0x61,0xE4,0xAB,0xEF,0xED,0x6A,0x9E,0xD2,0xA3,0x21,
+0xE5,0xE1,0x55,0xB0,0xDE,0x07,0x46,0xD8,0xC8,0x1D,0x47,0x5A,0x03,0xBC,0x8E,0x40,
+0xDC,0x78,0xB8,0xC8,0x06,0x12,0x0E,0xBA,0x11,0xDB,0xE0,0x38,0x6F,0x61,0x1A,0x1A,
+0xAE,0xFE,0x96,0x12,0x9B,0x51,0x47,0x34,0x65,0xC3,0x86,0xA4,0x30,0xE3,0x82,0xDE,
+0x90,0x84,0xD9,0x25,0xD9,0xE2,0x51,0xCC,0xBD,0xFA,0xE1,0xB7,0x78,0xA5,0x4D,0xEC,
+0xC5,0xE9,0xC5,0xD9,0x76,0xB5,0xD9,0xD4,0x76,0x4D,0xA0,0xF3,0x0A,0x03,0x81,0x11,
+0x4C,0xC2,0x72,0xB8,0x0C,0x74,0xA4,0x71,0xF3,0xEE,0x36,0x68,0x8C,0x91,0x5D,0xFB,
+0x43,0xC1,0xA0,0x92,0x30,0x18,0x93,0x5E,0xF9,0xBD,0x2B,0xB1,0x74,0x80,0xB3,0x75,
+0x21,0x58,0x04,0x38,0xE6,0x27,0xCA,0x8F,0x60,0x57,0x5E,0x73,0x28,0x76,0xFD,0x07,
+0x63,0x1B,0xB4,0x97,0x5C,0xE9,0x46,0x28,0x79,0x66,0x0E,0x56,0xDF,0xCC,0xF3,0x02,
+0x97,0xEE,0x89,0x07,0xAE,0x79,0x9D,0x95,0x01,0x54,0x99,0x81,0x2C,0x16,0x92,0xA7,
+0xB2,0xEE,0x28,0xE8,0x3E,0x8F,0x15,0xD9,0x7C,0x9C,0xDE,0x82,0x97,0xDF,0xF9,0x55,
+0xC6,0x08,0x80,0x15,0x47,0xEA,0xE8,0x72,0x0E,0x85,0xF7,0x4B,0x85,0x62,0x37,0x70,
+0x4D,0x1E,0x62,0xD9,0x0F,0xDD,0x69,0x3B,0x93,0x27,0x01,0x49,0x60,0x48,0xBB,0xE6,
+0xA7,0x0A,0x24,0x52,0x75,0x83,0x1B,0x4F,0x0A,0x39,0xFD,0xB4,0xE5,0x4E,0x4E,0x94,
+0x7B,0x7A,0x6E,0x2A,0x00,0xC4,0xA0,0xDE,0x16,0xBE,0x00,0x01,0x08,0x50,0x39,0x23,
+0xB4,0xBF,0xEE,0xE3,0xA4,0x29,0xAF,0x5C,0x76,0x2D,0xCD,0x28,0x98,0xFB,0x00,0x55,
+0xE7,0xA9,0x08,0xDA,0x74,0x75,0xEB,0x79,0x9C,0x78,0xB9,0x18,0xB7,0x22,0x0D,0x9C,
+0x89,0xAD,0x4E,0xC1,0xAC,0x07,0xCD,0xCB,0xC3,0xFE,0xD6,0x3D,0xD3,0x20,0x60,0xBB,
+0x25,0x39,0x5A,0x34,0x5A,0x9F,0xC2,0xAD,0xF5,0xE2,0xF3,0x9C,0x28,0xE8,0x16,0x57,
+0xD5,0xEB,0x70,0xD1,0x29,0xCF,0x52,0x54,0x6E,0x8A,0x0D,0xBF,0x95,0x64,0xA1,0xEA,
+0x4F,0x3E,0xEB,0x9A,0x27,0x04,0x5B,0xB5,0x06,0xE5,0x3C,0x2D,0xEA,0xF4,0xE7,0x52,
+0xB6,0x65,0x0A,0xCF,0xE5,0x9C,0xFC,0x9C,0x6F,0x1B,0x82,0x52,0xDF,0xD8,0x1A,0xFD,
+0x6D,0x17,0x08,0xB5,0x84,0xF2,0x9D,0x5F,0x57,0x23,0x87,0xE9,0x58,0xBD,0x57,0x02,
+0x8A,0x58,0x94,0x49,0xD0,0x3E,0x86,0x11,0x82,0xED,0xF6,0x52,0x9C,0xBC,0xA6,0xCB,
+0x7D,0xA1,0xCC,0x40,0x60,0x61,0x04,0x58,0xBC,0x5B,0x71,0x1E,0x57,0x40,0x28,0x1E,
+0xEC,0xE1,0x89,0x09,0x00,0xFC,0x7D,0x1F,0x74,0x3D,0x08,0xAF,0xA4,0xA4,0x83,0xD5,
+0x52,0x9D,0x8D,0xCA,0x90,0x55,0xCA,0xBF,0x63,0x7E,0x26,0x57,0x76,0xF9,0x34,0x03,
+0xF8,0x90,0x49,0x47,0x05,0xDA,0x8C,0x3A,0x6C,0x95,0xCE,0x12,0x40,0x7F,0xDC,0x05,
+0x57,0xCF,0x87,0xE5,0x9E,0x46,0xBB,0xAD,0x05,0x6A,0x6B,0xBD,0xBA,0x8E,0x12,0x7F,
+0x8C,0x3E,0x74,0xC2,0x6E,0x95,0x53,0xA6,0x05,0x55,0x8D,0xE1,0x14,0xFE,0x0D,0x18,
+0x28,0x73,0xA8,0xE8,0x1E,0x93,0x4C,0x6A,0xC5,0x36,0x65,0xE6,0xD8,0x33,0x5B,0x22,
+0xEE,0x6F,0x17,0xEC,0x0F,0x96,0x3A,0xA4,0xD8,0xF2,0x24,0xCB,0x77,0x94,0xAD,0x57,
+0x59,0x4A,0x20,0xB9,0xDD,0x41,0xB1,0x66,0xCC,0xF7,0x6E,0xBB,0x82,0xB8,0x5A,0x5D,
+0xA8,0x50,0x3C,0x9E,0x80,0xCB,0x8A,0x17,0x58,0x15,0x5B,0x84,0xC3,0x1C,0x57,0x21,
+0xFF,0x42,0x33,0x69,0x7E,0x5D,0x73,0x83,0xB1,0xA6,0x7E,0x61,0x90,0xA6,0x87,0xC6,
+0x53,0xB0,0xEC,0x4C,0x2C,0xEB,0x47,0x50,0x86,0xD1,0xBB,0xE6,0x5E,0x09,0xA0,0x75,
+0xE6,0xCC,0x02,0x7A,0xFA,0xF5,0xB0,0xC0,0xCD,0x8F,0xD9,0x11,0xD5,0xFA,0xE7,0x56,
+0xA9,0x12,0xA3,0x00,0x6F,0xA2,0x22,0x48,0x9C,0xAA,0x92,0x75,0xBA,0x42,0x7E,0x97,
+0x45,0x51,0x29,0xB5,0xFD,0x6A,0x99,0x7F,0xAA,0x44,0x56,0x92,0x66,0xE0,0x9A,0x47,
+0xB7,0x75,0x76,0x5A,0x35,0xD3,0x38,0xB0,0x3B,0xF7,0x0C,0xBA,0xBF,0x38,0xC3,0xC5,
+0x81,0xF7,0xFA,0x51,0xC6,0xC9,0xD1,0xF2,0x80,0xF9,0xB1,0xB3,0x17,0xF1,0x37,0x3D,
+0x9D,0x1C,0x76,0xD6,0x49,0xAD,0xB0,0x54,0x49,0xC6,0xBF,0x02,0x26,0x3B,0x63,0xC4,
+0x84,0x28,0x84,0x16,0x9F,0x1A,0xC0,0x7F,0x0D,0x54,0x73,0xB5,0x0C,0x1F,0xE3,0x63,
+0xD2,0x26,0x3E,0xB0,0xE8,0x5F,0x17,0xA4,0xD8,0x4C,0xAF,0x7B,0xDA,0x0A,0xDC,0x95,
+0x49,0xE7,0xB9,0x88,0x45,0x14,0x89,0xE5,0x65,0x2D,0xAA,0x37,0x0A,0x2D,0x39,0xB7,
+0x54,0x4C,0xAB,0xD4,0x28,0x17,0xED,0xCB,0x7B,0xE5,0x88,0x6D,0x9D,0x70,0xC5,0xC3,
+0x85,0x81,0x0B,0xDD,0x4C,0x23,0x27,0xD5,0x04,0xDB,0x0B,0xED,0x51,0x60,0x45,0xD9,
+0x32,0xD0,0x8A,0x23,0xBA,0x2C,0xA4,0x3C,0x3E,0xFF,0xD4,0x2F,0x2C,0x98,0xD3,0x01,
+0xBA,0x0B,0x5D,0x7B,0x31,0x11,0x63,0xA0,0x38,0xAF,0x2A,0x7B,0xB1,0x5C,0x4A,0x42,
+0xC2,0xEF,0xB0,0x95,0xB0,0x1B,0x21,0x61,0xDE,0xC0,0xE4,0xC9,0x85,0xA1,0xE1,0xDC,
+0x67,0x13,0x7A,0x94,0x18,0x4A,0xE4,0x8A,0x7B,0x0B,0x8B,0x4C,0xEF,0xCA,0xE6,0xFE,
+0x7C,0x1E,0x35,0x48,0x03,0x9A,0x45,0x64,0xB6,0x19,0x69,0x11,0xE8,0xDC,0x69,0x2F,
+0xD0,0x90,0x63,0x5D,0xFE,0xBE,0x5F,0xC7,0xAE,0x46,0xF0,0xF6,0x53,0x78,0x91,0xED,
+0x10,0x16,0x25,0xFF,0xC7,0x02,0x2E,0x17,0x2F,0xE7,0x44,0xB9,0x32,0x30,0xAA,0x6D,
+0x19,0x09,0x7B,0x15,0xCB,0x3F,0x2F,0x31,0x74,0xBC,0xED,0x24,0x46,0x47,0xA9,0xB6,
+0x39,0x98,0xB0,0xBE,0x55,0xC8,0x18,0xB0,0xDF,0x61,0xD7,0xB2,0xC7,0xC3,0x92,0x38,
+0xC1,0xB7,0xB4,0x4E,0xBD,0x3D,0x54,0x6B,0x47,0xD8,0x06,0x8D,0xC4,0x3A,0x4F,0xD2,
+0xDB,0x8B,0x57,0xC2,0xC8,0x2E,0x6C,0x76,0xD6,0xDA,0xAB,0x81,0xEB,0x66,0x71,0xB8,
+0xB3,0x52,0xCB,0x37,0x22,0x58,0x65,0xF5,0xE4,0xE0,0xD1,0x5B,0xCB,0xEF,0xBE,0x50,
+0xC0,0x5E,0x2D,0x0B,0x35,0x34,0x07,0xDD,0x0E,0x3C,0x4B,0x57,0xD1,0xE5,0x80,0x4C,
+0xAC,0x2B,0xB8,0x2C,0xBC,0x12,0x43,0xBF,0x1F,0x33,0x05,0x75,0xBD,0x72,0xE8,0x68,
+0x9B,0xC8,0x99,0x45,0xE8,0x7A,0x69,0xEB,0x27,0x79,0x1D,0x28,0x00,0x6C,0xBB,0xC0,
+0xB0,0x07,0x76,0x15,0x61,0x77,0xC2,0x9C,0xDD,0x10,0x2F,0xF3,0x01,0x5A,0xCE,0xC4,
+0x35,0x13,0x38,0xE1,0x0C,0xA3,0x8A,0xF0,0x03,0x87,0x68,0x46,0x55,0x31,0xD7,0x1E,
+0x0F,0x51,0x9E,0x2B,0x48,0x9E,0x90,0xA0,0xEA,0x04,0x15,0x37,0xD4,0x6F,0xB5,0xC7,
+0x1E,0xBD,0x9A,0xFE,0xA3,0x13,0x31,0x72,0xAF,0x33,0xC7,0xFC,0xB8,0x37,0x66,0xB7,
+0x6E,0x57,0xC1,0x97,0x08,0x22,0x8C,0x85,0xEE,0x40,0x88,0xC2,0xA9,0x96,0x83,0x73,
+0xB1,0x35,0x66,0x08,0xBD,0xDA,0xCB,0x36,0x65,0x8F,0x3F,0xF8,0xE6,0x99,0x86,0x5A,
+0x5E,0xD4,0x69,0xE0,0x2D,0x1B,0xB8,0x47,0x81,0x5C,0x78,0x8B,0x1E,0xA1,0xCC,0xC8,
+0x90,0xE5,0xD9,0xFE,0x9B,0xE6,0x18,0xDD,0xFD,0xF5,0x00,0x83,0xF4,0xAB,0x40,0x6C,
+0x15,0xC8,0xE6,0x63,0x93,0xB0,0x78,0xCF,0x4E,0x68,0x68,0x6A,0x0C,0xE5,0x29,0xAA,
+0xC9,0xD3,0xF8,0xA4,0x6B,0xA5,0xEF,0x15,0x0F,0x37,0x3E,0x9C,0xC1,0xA0,0x57,0x11,
+0x32,0x74,0x34,0xAA,0xC9,0xCA,0x84,0x7C,0x10,0x63,0xEE,0x49,0xD1,0xAD,0x73,0x19,
+0x10,0x9B,0x18,0x95,0x9E,0x97,0x7C,0xDD,0xD3,0x65,0xF3,0x44,0x7F,0xAE,0x56,0x73,
+0xB6,0xE9,0x87,0x71,0x04,0x82,0xFC,0x5F,0x68,0x1B,0x0D,0xB5,0x92,0x69,0x33,0x7F,
+0xEC,0xF7,0xB8,0x80,0xB4,0x5A,0xAB,0x84,0x9D,0xB7,0xFF,0x18,0x1B,0xD0,0xD8,0xE6,
+0x05,0xDC,0x2B,0x93,0x8F,0x81,0xDA,0x93,0xB1,0x68,0x27,0xE6,0xE5,0x17,0xAF,0xE2,
+0x0B,0x9A,0x27,0xCF,0xFC,0x4B,0xC8,0x13,0xAA,0x0D,0x3B,0x4A,0x65,0x73,0x09,0xBC,
+0x01,0xA9,0x66,0xD5,0x2A,0xB3,0x04,0x3A,0xA4,0xF2,0xE9,0x4D,0x00,0x51,0x56,0xA3,
+0xC4,0x9D,0x2B,0x4B,0x40,0x1C,0x1B,0xE0,0x83,0xCF,0x45,0x7A,0x58,0xE7,0x50,0xBD,
+0x28,0x5B,0x2A,0x77,0x18,0xF8,0x99,0x67,0x1D,0x2E,0x13,0x8E,0xF9,0x18,0xA5,0xAE,
+0x63,0xEE,0x16,0xFC,0x22,0x40,0xE2,0xC1,0xA2,0x02,0x5C,0x19,0x3C,0x4F,0x8A,0x95,
+0xD2,0x66,0x93,0x09,0x49,0x8B,0x9D,0x76,0xCE,0x33,0x8F,0xC8,0x38,0x19,0x99,0x65,
+0x95,0x28,0x23,0xFE,0x68,0xE0,0xFA,0xAE,0x5E,0xAC,0x0A,0x27,0x32,0xCD,0x34,0x49,
+0x7D,0x7D,0x1D,0x71,0xE0,0x8D,0x51,0x21,0xE1,0x48,0xA4,0x54,0x14,0xA9,0x35,0x02,
+0xAF,0x94,0x17,0xDD,0x4F,0xD5,0x1E,0x79,0x41,0x2E,0xB5,0x13,0xF6,0x24,0xD7,0xDE,
+0xF1,0xE3,0x0C,0x47,0x99,0x5F,0xC8,0xB8,0x6C,0x93,0x7A,0x61,0x37,0x8E,0x80,0x20,
+0x6B,0x50,0x5F,0x6E,0xE0,0x55,0x8A,0xF8,0xEA,0x49,0x09,0x51,0x14,0xE2,0x8B,0x36,
+0xA7,0x3F,0x8A,0x93,0xFF,0xD6,0x09,0x14,0x93,0x9D,0x21,0x50,0x10,0xC0,0xDB,0x9E,
+0xBF,0x8B,0x6E,0xCF,0xFA,0xC8,0xBB,0x48,0x7E,0x4B,0x16,0xC8,0x55,0xA8,0x51,0x81,
+0x6D,0xB9,0x37,0x8F,0xF5,0x79,0x44,0x69,0x8C,0x1E,0x83,0xD4,0x03,0x72,0x0C,0x51,
+0x57,0x97,0x24,0x26,0x29,0xFD,0xB9,0x28,0x6F,0xE0,0xA3,0x81,0x41,0x85,0x33,0x57,
+0x11,0x2D,0x1A,0x5C,0x3D,0xDC,0x3E,0xA9,0xE0,0x4C,0x61,0x25,0x52,0x94,0x24,0x20,
+0xBC,0x67,0x99,0x33,0x2C,0x80,0xEA,0xC6,0x9A,0xC2,0x7B,0x9A,0x7F,0x87,0xFE,0x9C,
+0xD3,0x33,0x1B,0xBF,0x96,0x66,0x72,0xDA,0x80,0xFA,0xC6,0xAD,0x93,0x20,0xC7,0xB7,
+0x31,0xD6,0x27,0xBA,0x12,0x70,0x41,0xF4,0x49,0x1D,0xDD,0xEF,0xD1,0xF0,0x64,0x8B,
+0xFE,0x0C,0x3D,0x02,0x4E,0x8A,0xA2,0xE9,0xF9,0xBD,0xAA,0x2C,0x07,0xB8,0xBF,0x04,
+0x4A,0x99,0x56,0xBE,0xDD,0xC2,0xBA,0x5A,0x1C,0x22,0x6A,0xB2,0x47,0x04,0x67,0x48,
+0x77,0x24,0xDB,0x6F,0x50,0x41,0x46,0xA5,0xBB,0xAC,0x0E,0xFD,0x97,0x93,0xED,0x2C,
+0xBA,0x5A,0x26,0xA1,0x26,0xEA,0x7D,0x7B,0x9E,0x5F,0xC1,0xD4,0x89,0x7E,0xED,0xA4,
+0x6C,0x40,0x24,0x02,0x16,0x9A,0x1C,0x04,0x58,0x27,0x33,0x26,0x76,0xBD,0x97,0xDD,
+0x03,0x2F,0xB7,0xB7,0x13,0x98,0x53,0x75,0x17,0xAA,0x5D,0x3D,0xDF,0xCF,0x76,0xC8,
+0x4D,0xC1,0x4C,0xE7,0x24,0xD8,0x6A,0xA1,0x5F,0x59,0x7C,0x29,0xEB,0x50,0xD5,0x2D,
+0x64,0xC9,0x77,0x17,0x30,0x65,0x7B,0xD7,0x3C,0xB0,0x08,0xEF,0x75,0x35,0x92,0x71,
+0x47,0xB9,0x56,0xC5,0xF7,0xF4,0xFD,0xF7,0x77,0x5F,0x1D,0x84,0xF6,0x39,0x7D,0x05,
+0xBB,0xA3,0x11,0xB5,0xAE,0xF2,0xAC,0x3D,0x6C,0xB0,0xF7,0xD1,0x96,0x67,0x9C,0x31,
+0xE4,0x45,0xD8,0xF7,0x03,0xCC,0x2C,0x2E,0x52,0xF4,0x9B,0xDD,0x8C,0x9D,0xBA,0xB5,
+0x91,0x25,0x1B,0xE3,0x21,0x3A,0x0E,0x4F,0x30,0x8F,0xF9,0xED,0xA6,0xA2,0x4A,0xA4,
+0x23,0xC6,0x77,0x9B,0x62,0xAC,0x7F,0x66,0xDD,0x90,0x2D,0xC9,0x14,0xC3,0xCA,0xDC,
+0xB4,0xEE,0x53,0x1A,0x7B,0x76,0xCF,0x28,0xE5,0xCA,0xD9,0xA9,0x53,0x53,0x4C,0x84,
+0x5B,0xB1,0x58,0xC0,0x73,0x1F,0x70,0x3A,0xCB,0x0F,0x2A,0x8E,0x2E,0x58,0x5F,0x62,
+0x3C,0x9F,0xCD,0x34,0x83,0x59,0xA5,0x39,0xF3,0x93,0x14,0x86,0x80,0xEB,0x50,0xE2,
+0x8C,0xBE,0xD4,0x50,0xD1,0x2B,0xF6,0x97,0xF2,0x66,0xF6,0x46,0xD8,0xCE,0xDE,0x5D,
+0x1A,0x20,0x7D,0x78,0x53,0xB9,0xCB,0xD0,0x66,0xB6,0x7F,0xAA,0x84,0x0F,0x38,0x2F,
+0x9E,0x8A,0xF0,0xAA,0x2C,0x2E,0x0C,0xE4,0x95,0xA6,0x54,0xB6,0x4B,0x2C,0x8F,0x9C,
+0xDF,0x15,0x56,0xA5,0x17,0x89,0x6A,0x3F,0xD7,0xF3,0x92,0xE5,0x02,0x29,0xD2,0x0F,
+0xE1,0x18,0xD3,0x75,0xDC,0xA6,0xA2,0xC4,0xCA,0xF3,0x12,0x59,0xC9,0x71,0x03,0x2E,
+0xD4,0xFF,0x9F,0x3E,0x05,0x02,0xCE,0x74,0x32,0xB4,0xE3,0xE8,0xC6,0xFB,0x3C,0xCE,
+0x74,0xFE,0x1C,0xC7,0x65,0xC5,0x07,0xFC,0xAA,0x55,0x42,0x39,0xD2,0x60,0x56,0x45,
+0x9C,0x29,0x48,0xF3,0x9A,0x43,0xF9,0xF8,0x59,0x55,0xE8,0x7E,0x1C,0xEF,0xAB,0x04,
+0x37,0x7E,0x0F,0xC2,0xE0,0x44,0x06,0x98,0x3F,0x43,0x36,0x5C,0x2A,0x2F,0x87,0xC3,
+0xD1,0xCE,0x09,0x9A,0xF8,0x34,0x86,0x00,0xF1,0x81,0xED,0x67,0x79,0xFC,0x75,0xC6,
+0x4C,0x4F,0x2A,0x15,0xE4,0x06,0x24,0x88,0x26,0x61,0x30,0x8E,0x9D,0x84,0xF3,0x87,
+0x3D,0x35,0x6D,0x73,0xE6,0x07,0x29,0x25,0x9A,0x58,0xD7,0x2B,0xC7,0x48,0x64,0xF7,
+0xB2,0x6A,0x01,0xBC,0xB7,0x1E,0x0B,0xA4,0x13,0xF6,0x56,0x91,0x99,0x46,0x58,0xF2,
+0xCB,0xC2,0x23,0x3F,0x33,0xFA,0xF5,0x64,0x45,0xB7,0xC7,0x46,0x60,0xDB,0x3A,0x9D,
+0xB7,0x88,0xFE,0xE5,0x96,0xDE,0x8E,0xD6,0x91,0x95,0x6F,0xCF,0x61,0x75,0xF7,0x21,
+0x49,0x2C,0x0D,0x17,0xFC,0x52,0xE5,0x7A,0xDD,0x63,0x9F,0x2F,0x04,0x25,0x7A,0x8C,
+0x38,0xD4,0xCF,0x6D,0x77,0x62,0x26,0xEC,0x10,0x8B,0x0C,0xBC,0xFD,0x26,0xD8,0x36,
+0x86,0xB7,0x79,0x86,0xED,0x4E,0xB6,0xED,0xDC,0xF1,0xF5,0xF0,0x91,0xBE,0x64,0x16,
+0x7F,0xEA,0x0C,0xFF,0xF4,0x05,0x5B,0xD7,0x24,0x11,0x8E,0xA3,0xEE,0x1F,0xB5,0xF3,
+0x27,0xC7,0x9D,0xB8,0x6D,0xD7,0x04,0xFA,0x02,0x7F,0x03,0x64,0x35,0x0E,0x1C,0x6B,
+0x4A,0x06,0x7F,0xAF,0x3B,0x3F,0xC2,0x30,0x1E,0xCB,0x67,0x37,0x9E,0xA0,0x20,0xDE,
+0x21,0x25,0x2A,0xA4,0x3E,0x78,0xDC,0xC8,0x91,0x93,0xB3,0x0A,0xCE,0x25,0xC9,0xA4,
+0x62,0xB1,0x94,0x2A,0xFC,0x15,0xB8,0x25,0x23,0xCF,0x02,0xEF,0x03,0xBC,0x19,0x6E,
+0x7C,0xDC,0xDC,0x44,0x34,0x0D,0x04,0x10,0xDE,0xDE,0x6A,0xF5,0x2C,0x8B,0x45,0x9A,
+0xFF,0x1C,0x4D,0xF8,0xF5,0xC1,0x9F,0x89,0x6C,0x89,0x48,0x39,0xA3,0xA3,0x26,0x95,
+0xF5,0x74,0xB6,0x4C,0xFA,0x5B,0xBC,0x1E,0xB8,0xDC,0x24,0x58,0x14,0xD0,0xD7,0x43,
+0x2A,0x0D,0x97,0xB7,0x9C,0x16,0x9E,0x8A,0x4D,0xCD,0x2D,0xEB,0x3A,0xD1,0x21,0xA8,
+0x76,0x27,0x04,0x48,0xE5,0xBB,0x2F,0xA4,0x23,0x96,0x3E,0x29,0x46,0xCB,0xFF,0x24,
+0x57,0xC7,0x4E,0x29,0xD3,0xFD,0x7F,0xBE,0xE5,0xE1,0x2F,0x2F,0x8F,0x09,0x48,0x0A,
+0xD3,0x22,0x56,0xF6,0x28,0xC7,0x1F,0x42,0x8F,0x43,0xD8,0x3F,0x63,0x29,0x2B,0x08,
+0x68,0x58,0x72,0x47,0xA1,0xE0,0x80,0x47,0xF5,0x6F,0xAE,0xC0,0xC2,0xC0,0x64,0xEE,
+0x20,0x2B,0x2E,0x01,0xDA,0x54,0x53,0x44,0x37,0x4B,0x12,0x82,0x77,0x00,0x21,0x7F,
+0xDA,0xF1,0xEA,0x58,0xDA,0x9B,0xB8,0x93,0xDC,0x92,0x5A,0xB4,0x5E,0x77,0xFD,0x18,
+0xCC,0xF3,0x9B,0x30,0x57,0x79,0x8E,0x54,0xD5,0xF5,0x8A,0xA4,0xCE,0x6C,0xF6,0x86,
+0x4C,0xC9,0x98,0x33,0xC6,0x3A,0x83,0x16,0x46,0x54,0x01,0xE4,0x14,0xAA,0xDB,0xB2,
+0xB1,0x8D,0x68,0x53,0x9D,0xF4,0xDF,0xE4,0x21,0xEF,0x0B,0x22,0xAC,0xD2,0xCF,0x4C,
+0x70,0xBF,0x2E,0x42,0xBF,0x1B,0xB1,0x97,0x00,0x48,0x33,0x7A,0x6B,0x95,0xDA,0x26,
+0x88,0xE8,0xB7,0x69,0xB6,0xC4,0xCD,0x15,0x3B,0x60,0x3C,0x69,0x3B,0x22,0xA5,0x48,
+0x3D,0x63,0xDD,0x58,0x3B,0xBA,0x07,0x65,0x0B,0x11,0x04,0x88,0xAC,0x59,0x29,0xBA,
+0x60,0x75,0x39,0xBC,0x55,0x98,0xB1,0xEC,0xE6,0x8C,0x07,0x21,0x11,0x44,0xA6,0x38,
+0x0F,0xBF,0x07,0x6B,0xA5,0x63,0x63,0xB7,0xF9,0x1B,0x0A,0x22,0xA1,0x94,0x87,0x2F,
+0x1A,0xBF,0x43,0x74,0x42,0xBF,0x4D,0xC3,0xD1,0x9C,0x4F,0x93,0xBE,0xC2,0x3F,0x0B,
+0xE1,0x77,0x14,0x91,0xC0,0xA1,0xAE,0xFC,0xAD,0xE9,0xD9,0x57,0xF3,0x91,0xAD,0x62,
+0x2B,0xC5,0x71,0xEE,0x61,0xAF,0x7A,0x34,0x75,0x3D,0xBD,0x13,0x28,0x8D,0xE1,0x01,
+0xF0,0xF1,0x4A,0xED,0xF2,0x46,0xEC,0x7C,0x8F,0x1F,0x7A,0xFA,0x85,0x55,0xB0,0x70,
+0x28,0x2C,0x09,0x9A,0x9F,0x1C,0xBE,0x21,0x3F,0xB6,0xC3,0x50,0x79,0xA7,0xE7,0x95,
+0xEA,0x03,0x1C,0x35,0xA9,0xC9,0x5F,0x17,0x54,0x18,0xE5,0x94,0x46,0xF6,0xEF,0xB2,
+0x52,0x6A,0xD2,0x37,0x9B,0x82,0xDE,0x8C,0x45,0x1F,0xB2,0x20,0xD5,0xB9,0xA3,0x01,
+0xB6,0x03,0x31,0x27,0xEC,0x6E,0x71,0x85,0x7D,0x03,0x4D,0x06,0x9C,0xEF,0x73,0x5E,
+0x19,0xE4,0xC4,0xFA,0x41,0xAB,0x0A,0x61,0xD6,0xDB,0xFB,0xA6,0xFD,0x43,0x82,0x2C,
+0xA8,0xE6,0x6B,0x6A,0xAD,0x7E,0x12,0xA2,0x84,0xAC,0x51,0x23,0xD9,0x49,0x90,0x57,
+0x0C,0x22,0x4A,0xAC,0x30,0x4B,0xDC,0x32,0x97,0x85,0xDB,0x2E,0xFD,0xB8,0xDD,0xA9,
+0x23,0x21,0xFF,0xE5,0x16,0x75,0xA4,0x18,0x09,0x46,0x83,0x98,0x73,0x38,0xDD,0x20,
+0x84,0x26,0x76,0x39,0x8F,0x34,0xBD,0xD3,0x87,0x00,0x86,0x32,0x5E,0xFE,0xD9,0x74,
+0x9E,0x6A,0x10,0x52,0x50,0x7B,0x78,0xB3,0xD8,0x7F,0x56,0xC3,0xAF,0x47,0x86,0xAD,
+0xEE,0x9A,0x18,0x23,0xA2,0x9D,0x85,0xD5,0x76,0x1E,0x85,0x06,0xD5,0x9C,0x2A,0xFD,
+0xE9,0xA1,0x05,0x36,0x66,0x36,0x66,0x40,0xF7,0xC4,0x45,0x09,0x15,0x42,0x71,0xBC,
+0x6F,0xC2,0xED,0x58,0x33,0xDE,0x61,0x02,0x3D,0x6E,0xCA,0x23,0xA2,0xE8,0x47,0x84,
+0x50,0xAC,0xD2,0x46,0xD0,0x61,0xAF,0xB9,0x3F,0xEA,0x71,0xFC,0x15,0x6D,0xDE,0x3E,
+0xB4,0x62,0xB9,0x3B,0x30,0x18,0x5C,0xD7,0x45,0x7A,0xEC,0x50,0x99,0xFC,0x4F,0x4A,
+0xAD,0x74,0x04,0xB8,0x5B,0x97,0x85,0x70,0x98,0xCC,0xE2,0x7B,0x20,0x7D,0x19,0xE4,
+0xAC,0x01,0x53,0x50,0x05,0xE6,0x70,0x3F,0xD9,0x8B,0x2E,0x6F,0x99,0x9A,0xCC,0xB8,
+0xE4,0xB4,0x9E,0xCA,0xF0,0x2C,0x1E,0x37,0xB3,0xDF,0x14,0x3A,0x22,0x5F,0x72,0x9D,
+0xC8,0x49,0x71,0x0A,0xCB,0x92,0xF7,0x94,0xC7,0x2A,0x8C,0x30,0xB8,0xA6,0xCE,0x9B,
+0xF8,0x27,0x4D,0x49,0x19,0xE3,0xC7,0x33,0xC9,0x9D,0x8F,0x25,0xEF,0x35,0xBC,0x37,
+0x74,0xC1,0x23,0x4D,0xB6,0x1D,0x10,0xDA,0x38,0x44,0xDF,0x57,0xAF,0xC5,0xD1,0x97,
+0x32,0x3C,0xDB,0x88,0xBA,0xA9,0x90,0x4F,0xC1,0x16,0x65,0xB7,0xC5,0xF7,0xE2,0xB5,
+0x30,0xD1,0x28,0x76,0x46,0xC6,0x14,0x88,0x16,0x8E,0x17,0x6E,0x41,0x99,0x66,0x25,
+0x40,0x29,0x49,0x7A,0x4D,0x10,0x20,0x86,0x1D,0xC2,0xD4,0xE6,0x3E,0x6B,0x3A,0x9E,
+0xEB,0x2A,0x4D,0xC5,0xE7,0xDD,0xC2,0xA4,0x28,0xBD,0x39,0x4B,0x50,0xA4,0x83,0xCC,
+0x58,0x5E,0xA3,0x9C,0x69,0x11,0xB3,0x84,0x0D,0xB3,0xCD,0x16,0xB5,0x5D,0x60,0xBA,
+0x5E,0x35,0x80,0xCD,0x59,0xED,0xB6,0x10,0xE0,0x80,0x93,0xAC,0xAE,0xB7,0x10,0x2A,
+0xCF,0x5D,0xC0,0xDD,0x67,0xCE,0x4E,0x96,0xE9,0x20,0x9F,0x64,0xA8,0xA2,0x14,0xB0,
+0x72,0x69,0xBC,0x4A,0x09,0xE7,0x2E,0x1E,0x50,0x3A,0xFA,0x10,0xF7,0xD6,0x2D,0xF3,
+0xDC,0x70,0x90,0x3F,0x84,0x1E,0x10,0x9B,0x6E,0x90,0xF9,0x9A,0x0F,0x73,0x6A,0x18,
+0x06,0x90,0xAB,0xEA,0x9B,0x89,0x53,0xB8,0x50,0xE0,0x69,0xAF,0x18,0x87,0x90,0x28,
+0x90,0x12,0x3A,0xF5,0xC3,0x3B,0xBA,0x76,0x6A,0xAC,0x08,0x70,0xCE,0x53,0x39,0x41,
+0x66,0x33,0x04,0xD5,0xA3,0x4E,0xB2,0xC7,0x19,0x56,0x37,0x6D,0x43,0x31,0x20,0x9E,
+0x13,0xCD,0xD9,0x13,0x4E,0xB0,0x4C,0x22,0x1D,0x27,0xA5,0x8F,0xE5,0xD5,0xC5,0x2C,
+0x81,0xFB,0xF9,0xD4,0xD3,0x26,0x3C,0x29,0x19,0xA0,0x64,0xA2,0xC1,0x5C,0x07,0x19,
+0xF3,0xBF,0x1D,0xCA,0x39,0x96,0x47,0x17,0xCB,0xC4,0x41,0xF0,0xE5,0xBE,0xB1,0x20,
+0xB5,0xBD,0xA8,0x83,0x1F,0xF1,0x40,0x8B,0x56,0x65,0xF2,0xA5,0x81,0x80,0x4C,0x92,
+0xEE,0xE1,0x19,0xDB,0xB0,0xF5,0x37,0xC3,0xAF,0x38,0x38,0xA1,0xBA,0x82,0xE1,0x8E,
+0x10,0x33,0x2E,0xBD,0xC9,0x79,0x7C,0x07,0xB7,0x1B,0xC8,0xE5,0x9D,0xD2,0xE8,0x29,
+0x21,0x14,0x85,0xE2,0xAF,0xE9,0x17,0xF4,0x02,0x0A,0x52,0x2D,0xE2,0x19,0x04,0x52,
+0x9F,0x29,0x33,0x81,0xD1,0xC5,0x4C,0x2D,0x1E,0xC7,0xAB,0x03,0x2E,0x81,0xCD,0xB9,
+0x9A,0x3A,0x71,0xC1,0xFF,0xA0,0x13,0x3C,0x6A,0x88,0x70,0xBC,0x4E,0xEF,0x8C,0x35,
+0xEB,0xAC,0x4C,0x54,0x67,0xA1,0x0B,0x98,0x9E,0xDD,0x97,0x55,0x23,0x23,0xE8,0xD2,
+0x6C,0xBE,0x22,0xE7,0xB0,0x5D,0x73,0x78,0x0A,0x5A,0x60,0xFD,0x66,0x7C,0x51,0x34,
+0x15,0xDB,0x9F,0x34,0x64,0xB9,0xBB,0xFF,0x50,0x73,0xF1,0x31,0x03,0xE1,0xB2,0xD3,
+0x3B,0x31,0x95,0x42,0xCF,0xE4,0xA7,0x12,0x08,0xA2,0x4F,0x5A,0xB3,0x48,0x44,0x60,
+0xD3,0xE5,0x7A,0x01,0x4C,0x62,0x07,0x91,0x0C,0x04,0xE5,0x0F,0x8E,0xC7,0x56,0x41,
+0x76,0x43,0x85,0x4C,0xFD,0x93,0x40,0x5D,0x38,0x0E,0x4A,0xD6,0xC0,0x5B,0x63,0xDA,
+0x90,0xB8,0x84,0xC6,0x07,0xE3,0x30,0xC7,0x90,0x89,0x91,0xDD,0xE3,0x88,0xF9,0xBE,
+0x78,0x17,0xE8,0x55,0x03,0x2E,0x30,0x42,0x33,0xDE,0x35,0xA5,0xE2,0x8E,0xB5,0x19,
+0x39,0xD4,0xAB,0x0D,0x80,0x89,0x63,0x74,0x73,0xA4,0xF3,0x6F,0xF6,0x8B,0xB6,0xDF,
+0x73,0x08,0x97,0xFF,0x34,0xA5,0x20,0xA6,0xB3,0x59,0x44,0xD1,0x36,0x5C,0x47,0x5B,
+0x46,0x73,0xD0,0x54,0x75,0x01,0xD5,0x1C,0x28,0x26,0xB5,0x49,0x85,0xD6,0x03,0x7E,
+0x9B,0x86,0x64,0x24,0x30,0xFE,0x7D,0xF8,0xE8,0x40,0xB3,0xA0,0xFE,0x4C,0xB5,0x44,
+0xFC,0x5F,0xD8,0x0E,0xC6,0xB8,0x94,0x87,0x8C,0xF1,0x8D,0x81,0x51,0xFF,0x68,0x9F,
+0xBD,0x93,0xF2,0x8C,0xE1,0x1E,0x24,0x51,0xF9,0x4D,0xD8,0x2E,0xCD,0xA8,0x6C,0x90,
+0x2B,0x52,0x9E,0xFC,0x18,0x8C,0x7B,0x11,0x7E,0xFA,0x51,0x40,0xD8,0x69,0x76,0xF3,
+0x36,0xF3,0xB8,0x44,0x2C,0x9D,0xC0,0xB1,0xA8,0xD1,0x5E,0x53,0x55,0x05,0x8A,0xB7,
+0x43,0xEA,0xC8,0xC2,0x96,0x6B,0x36,0x4A,0x9C,0x31,0x3C,0x9F,0x86,0x3A,0x56,0x47,
+0x13,0x66,0xD9,0xAF,0x4E,0xD1,0x94,0xDC,0xED,0xF2,0x7E,0xE5,0xC2,0xF4,0xA0,0x04,
+0x84,0xCC,0x49,0x52,0xBB,0x0B,0xCA,0x7A,0x5F,0xDA,0x8A,0x89,0x2A,0x64,0x28,0x71,
+0xC3,0x71,0x20,0xC2,0x71,0xC2,0x25,0x0A,0x0E,0x94,0xAF,0xD4,0xDA,0x92,0x4E,0xA0,
+0xEA,0xF9,0x15,0xED,0x65,0x7F,0xE1,0x47,0xA3,0x20,0xDB,0x27,0xFF,0xF7,0xD5,0x44,
+0x1C,0x44,0x8F,0xB7,0x9B,0x55,0x1B,0xA1,0x88,0x21,0x50,0xAF,0x24,0xC0,0x49,0xC5,
+0xE0,0x38,0x65,0xB0,0x1B,0x53,0x5D,0xCC,0x85,0x72,0xBA,0x1C,0x87,0x9E,0x54,0x70,
+0x1D,0xD9,0xDF,0x29,0xC8,0x4D,0xBD,0xD8,0x78,0x9E,0x66,0xC8,0x14,0xD9,0xFF,0xA2,
+0xD0,0xC9,0xBD,0xC9,0x1E,0xE6,0xBC,0x22,0x06,0x2D,0xA9,0x7B,0x22,0x34,0x17,0xC7,
+0xA4,0x31,0x2C,0xB3,0x03,0x3F,0x87,0x5E,0x39,0xE0,0xFA,0x71,0x22,0x68,0x7A,0x66,
+0xCB,0x1B,0x67,0xA4,0x3C,0x3D,0x20,0x8F,0xB0,0xC2,0x94,0xB9,0x83,0x1A,0x6D,0x8A,
+0x96,0xE9,0x75,0xF2,0x45,0xD7,0xAB,0xFA,0xBC,0xDF,0x7A,0x1D,0x62,0x57,0x98,0x5F,
+0x74,0xDB,0x17,0x9D,0xA7,0xC1,0x50,0xEC,0x38,0x6E,0x61,0xEB,0x61,0x87,0xC4,0x12,
+0xED,0x3C,0x01,0xC4,0x66,0x65,0xB4,0x48,0x99,0x91,0xCD,0x89,0x73,0xA3,0x9D,0x00,
+0x59,0x77,0xBB,0x02,0x3F,0x2D,0x28,0xE4,0x00,0x80,0x0D,0x67,0xBA,0x1F,0xF8,0x36,
+0xF0,0x7F,0x69,0x14,0xAF,0x5A,0x10,0xB6,0x4A,0xC4,0x04,0x0C,0x37,0x22,0x55,0x60,
+0xCA,0x35,0x45,0x9F,0x71,0xDE,0x08,0x8A,0xA2,0xEA,0x24,0x22,0x48,0xD5,0x68,0x61,
+0x1B,0xCE,0x56,0x51,0x7D,0x27,0x75,0x1A,0xC1,0x22,0xDC,0x49,0x15,0x20,0xF8,0x47,
+0xB6,0xF5,0x91,0xAC,0x39,0x7B,0xDC,0x0F,0x41,0xD1,0xC6,0xB8,0x0C,0x33,0xBD,0x41,
+0xCC,0xFD,0x6C,0x9D,0x7F,0xF2,0x14,0xCD,0xC6,0xEA,0xAE,0x07,0xEA,0x45,0x7D,0x82,
+0x56,0x8C,0x0B,0x00,0x53,0xF8,0xD1,0x90,0x3A,0x53,0xDD,0x12,0x7E,0x29,0x61,0x33,
+0x18,0x1D,0xD6,0xA8,0x02,0x6F,0xA2,0x9C,0xB7,0x25,0xB1,0xBE,0xAD,0x0F,0xB0,0x40,
+0x00,0x03,0x5D,0x2D,0xA0,0x71,0x1C,0x90,0xE6,0x3D,0x86,0xE9,0xB6,0x67,0x56,0x39,
+0x32,0x1F,0x30,0x25,0x4E,0x47,0xAA,0x3E,0x3D,0xFB,0xAD,0x3B,0x1E,0x6A,0xC0,0xD4,
+0x75,0xDE,0x4A,0xA2,0xAD,0x2C,0x22,0x11,0x8F,0x6F,0x28,0x79,0x54,0xBE,0x9F,0x47,
+0x08,0xEA,0x16,0x3B,0x6F,0x72,0x0B,0x51,0xEB,0x11,0x12,0x5E,0xA3,0x83,0x02,0x86,
+0xDA,0x2E,0xB4,0xFC,0x10,0x2A,0x74,0xEE,0x18,0x61,0x03,0x58,0x82,0x0E,0x1B,0xDB,
+0x63,0x05,0xA3,0x25,0x00,0xBB,0x46,0x9D,0x0E,0x0E,0xE2,0x6F,0x6B,0x40,0x98,0xB3,
+0xA6,0xF0,0xD3,0x1D,0x8B,0x14,0xC6,0xD7,0x6D,0xDC,0x4E,0x09,0xE3,0xF6,0x1B,0x25,
+0xC4,0x0A,0x09,0x6F,0x4B,0xE7,0x4E,0xAB,0xC2,0xD2,0xFB,0x95,0x5C,0xE8,0xA8,0x74,
+0x8F,0xE0,0x70,0x44,0x64,0x5F,0x6C,0x4B,0x57,0xA3,0xB4,0x5E,0xEA,0xBF,0x71,0x23,
+0x4B,0x7A,0xFA,0xB4,0xB6,0xFD,0xA9,0xBC,0xD5,0xFF,0x58,0x5D,0x9A,0x77,0x1D,0xA3,
+0x11,0x77,0xCA,0x3F,0x36,0x25,0xB7,0x9A,0x02,0xF1,0xAA,0xE6,0x9F,0xCE,0x5C,0x64,
+0xAC,0x91,0x0F,0x4E,0x6C,0xEC,0xBB,0xA7,0x09,0x84,0x9C,0xA3,0x05,0xD4,0x89,0x71,
+0xA2,0x42,0x7E,0x94,0x1E,0x26,0x27,0x01,0x4A,0x43,0x80,0xC2,0xE0,0xB0,0xB1,0x85,
+0x6E,0x97,0x39,0x3C,0xB1,0x02,0xE3,0x35,0x9B,0x67,0x99,0xB3,0x52,0x07,0x87,0xE2,
+0xB2,0x30,0x2B,0xF5,0x5B,0x17,0x56,0x97,0x8A,0x30,0xCF,0x9F,0x8A,0x42,0x40,0x38,
+0xB7,0x90,0x1A,0x8A,0xE8,0x30,0x45,0x28,0x2F,0xDB,0x54,0xC1,0xC9,0x09,0x4E,0x23,
+0x95,0xAB,0x3C,0xF8,0xDC,0x6D,0xED,0x3E,0x6C,0x7E,0x49,0x15,0xEE,0x0A,0x49,0x45,
+0x16,0x4E,0xB8,0x53,0x6A,0x7D,0x86,0xEF,0x8D,0x58,0x98,0xDF,0x8F,0x3E,0xD1,0x29,
+0xC9,0x46,0x40,0xF2,0x92,0x85,0x36,0x0B,0x66,0x9B,0x2F,0x59,0x2B,0x31,0xB6,0x2B,
+0x37,0x99,0x34,0xA2,0x4D,0x41,0x39,0xFC,0xD3,0x4D,0xA7,0x77,0x47,0x0C,0xB4,0x34,
+0xF9,0xE0,0xA7,0xB8,0x56,0xBC,0x71,0x05,0xBB,0x38,0xDF,0x14,0x23,0x06,0x73,0x3C,
+0xAD,0xF5,0xFC,0x5E,0x3E,0xC3,0x92,0xB3,0xAC,0x96,0x6B,0x15,0x46,0xE3,0x91,0x19,
+0x11,0x23,0xDC,0x11,0x04,0x03,0x67,0x32,0xE5,0xB5,0x23,0x06,0x9A,0x57,0x25,0x4E,
+0x59,0x4E,0xB1,0xA2,0xCF,0x74,0x8A,0x32,0x3C,0x8E,0xD9,0xEB,0x87,0x98,0x46,0x2A,
+0x89,0xEE,0x9B,0x43,0x8D,0x6F,0xC0,0xD5,0xB9,0x37,0xCF,0xDD,0xB4,0x7A,0x8B,0x5B,
+0x2E,0x0A,0xEB,0x92,0xDE,0xD2,0x3F,0xBC,0x75,0x62,0x29,0x87,0x6C,0x15,0x4C,0x0F,
+0x3D,0x2C,0xA0,0x9C,0x70,0xC8,0x35,0xD9,0x80,0xC8,0x75,0xDB,0x1F,0xB8,0xB3,0xCD,
+0x2C,0x12,0xC5,0x54,0x00,0x0A,0x97,0xA5,0xB2,0xB8,0x54,0xF2,0x7C,0xFE,0x83,0xBB,
+0xDB,0x91,0x8B,0x49,0xCE,0x2A,0x4E,0x1C,0xFF,0x93,0xD0,0x4F,0x68,0xC4,0xDE,0xAB,
+0x01,0xC2,0xD9,0xB0,0x08,0xBF,0x3F,0xA3,0xE0,0xED,0x61,0x60,0xAD,0x16,0x4F,0x7B,
+0x69,0xEA,0x57,0xFB,0x6B,0x88,0x36,0xB0,0xD0,0x22,0x7F,0x8F,0xFF,0x0E,0x27,0x4A,
+0x4B,0x31,0xA9,0x6E,0x1F,0xA0,0x09,0x34,0xC4,0xB6,0xFC,0xBC,0xEB,0xC2,0x57,0x3A,
+0x27,0x49,0x32,0x26,0x7F,0xD3,0x7F,0xDC,0xB9,0x35,0xF6,0x2D,0x75,0x58,0x23,0xBC,
+0x8D,0x1A,0x86,0xCF,0x67,0x1C,0x4C,0xD2,0xD7,0x5B,0x7C,0xC5,0x20,0x06,0xAB,0xF3,
+0x00,0xB0,0xC0,0xCA,0x98,0x0D,0x53,0x28,0xBA,0x5A,0x24,0xE7,0xE9,0xD4,0x40,0x3D,
+0x64,0xC8,0xF6,0x8E,0x61,0xA3,0x4D,0xDB,0x6C,0x93,0x49,0xB2,0x85,0x3C,0x06,0xDA,
+0xB0,0x3C,0x96,0xD6,0xC6,0x26,0xC7,0x25,0x34,0xC9,0x22,0x71,0x79,0x7B,0xC6,0x31,
+0xE6,0x5B,0xB1,0x2F,0x7A,0xF5,0x76,0xB3,0xEC,0xE0,0xE9,0xFF,0xA9,0xCA,0xA2,0x1A,
+0xB1,0xFD,0x4C,0x75,0xF9,0xBA,0x3A,0xC9,0x4E,0xB8,0x51,0xE8,0x89,0x81,0x1D,0x5C,
+0x4E,0x4E,0x48,0x93,0x7D,0xEC,0xF5,0x1A,0xFB,0xD1,0xB5,0x96,0x50,0x6D,0xA9,0x73,
+0xF8,0x85,0x8C,0x91,0x8C,0x40,0x69,0x90,0x6C,0x57,0x1A,0x20,0x59,0xA8,0x6D,0xED,
+0xDA,0x9C,0x94,0xF4,0x7F,0x92,0x02,0xD5,0x12,0x03,0xE2,0x01,0x09,0xA2,0x3F,0xB5,
+0xBE,0xB0,0x5A,0xF5,0xCF,0x8E,0x12,0xFA,0xE9,0xE1,0x28,0xE3,0xB5,0xAC,0xD2,0x31,
+0x79,0x54,0x9E,0xBC,0xD2,0x56,0x8F,0x6C,0xB5,0x6A,0xF3,0x7C,0x2E,0x45,0x86,0x6E,
+0xC0,0x87,0x34,0x12,0x15,0xA4,0xCF,0xC7,0x39,0x7F,0x2B,0x26,0x82,0x1F,0xC4,0xF8,
+0x07,0x51,0xF4,0x55,0xBC,0x5A,0x61,0x65,0x8B,0xAE,0x3E,0xEA,0xF8,0xB9,0xEB,0x04,
+0x04,0x59,0x7E,0xB8,0x72,0x47,0x6F,0x9B,0xB9,0x1A,0x63,0xB3,0x50,0x9B,0x14,0x03,
+0x09,0x41,0x04,0xBE,0x8F,0x97,0x48,0x01,0x7A,0x58,0x0C,0x66,0x33,0x60,0x8F,0x2F,
+0x4C,0xE5,0x5F,0xA1,0x41,0xC1,0xCC,0xD5,0xC0,0xB9,0x19,0x38,0xB9,0xBC,0xAC,0xE3,
+0x02,0x83,0x46,0x60,0x37,0xA9,0x35,0x49,0x5A,0x42,0x4F,0x30,0x2E,0x39,0x7F,0xDE,
+0x08,0xD8,0x16,0x6F,0x9D,0xD1,0x44,0xA3,0xB7,0x97,0xB2,0xB6,0x2D,0xF7,0x87,0x72,
+0x30,0x57,0x14,0xBF,0xFB,0x96,0xD0,0x34,0xEF,0x01,0x73,0x5A,0x0E,0x18,0x84,0x07,
+0x3F,0xD7,0x31,0xCF,0xB4,0x21,0x69,0x25,0xE5,0xD8,0x8B,0x66,0x4F,0xC7,0xD6,0x4A,
+0x17,0xB0,0x1C,0x33,0xBC,0x5C,0x31,0x31,0x77,0xF0,0xE7,0x56,0x1A,0x2F,0x31,0x30,
+0x8F,0x55,0x42,0xC8,0x43,0xA5,0xA0,0xF5,0x3D,0x92,0xCB,0x88,0xC3,0x91,0x62,0x16,
+0x8C,0xA8,0x71,0xC3,0xEE,0x36,0xD4,0x4C,0x11,0x47,0xFB,0x8B,0xC5,0xE0,0x47,0x9E,
+0xDC,0x46,0x1F,0x1A,0xDB,0xC6,0x81,0xEB,0xF2,0xFA,0x77,0x3D,0x25,0x1E,0x97,0x36,
+0x72,0x31,0x97,0x53,0xE6,0x6E,0x57,0x2D,0xC4,0x80,0x53,0x8C,0x70,0x62,0x6E,0x31,
+0xEF,0x70,0x05,0x6E,0x4A,0xFF,0x86,0x59,0x0A,0x8F,0xB7,0x15,0x99,0x1B,0x04,0xEA,
+0xE1,0x85,0x2D,0xAD,0xA5,0x7E,0x36,0xBE,0x58,0xE2,0xAE,0x72,0xC7,0x94,0x02,0x45,
+0x2D,0xE6,0x6B,0xC7,0xF4,0x99,0x43,0x3B,0xF7,0x2B,0xAF,0xC3,0x46,0xE5,0x3A,0x27,
+0x55,0xDC,0x40,0x85,0xCC,0x44,0x64,0x21,0x18,0x84,0x9D,0x9D,0x9D,0x78,0x9C,0x60,
+0x86,0xF6,0x70,0xCC,0x3E,0x9F,0x30,0x4A,0xD1,0xD8,0xED,0x1A,0x1F,0x9E,0xFE,0xD7,
+0x46,0xD9,0x0C,0xC5,0xB8,0x41,0xA3,0xB5,0x3E,0x9B,0xEA,0xB5,0x10,0x35,0x38,0xE2,
+0xC9,0x7B,0x14,0xDF,0x64,0xEB,0x1C,0xBE,0x62,0xCF,0x6C,0x42,0xF8,0xDD,0xCD,0x52,
+0x52,0x20,0xCE,0x49,0xB6,0x4A,0xEE,0xC0,0x8C,0x76,0xAB,0x5C,0x84,0x7D,0xBB,0xA0,
+0xD8,0xD0,0x58,0x61,0x81,0xBB,0xB3,0x8F,0xD8,0x3B,0x0F,0xE9,0xE7,0x48,0xE6,0x70,
+0x80,0x29,0xF6,0xF5,0x20,0x3B,0xE0,0xF9,0xCE,0xC9,0x20,0xC0,0x9A,0x76,0x45,0x77,
+0x85,0x8D,0xF3,0x01,0x9D,0xFD,0x86,0x42,0xA6,0x9B,0x87,0xF8,0x96,0x37,0x1A,0xD9,
+0xA6,0xED,0x94,0x4E,0x13,0xD6,0x4B,0x00,0x31,0xC1,0x10,0x72,0x22,0xB3,0x4E,0x2F,
+0x67,0x78,0xA5,0xBB,0xFF,0x5F,0xB0,0x58,0x65,0x8E,0x82,0xCD,0x5F,0x25,0x11,0x1F,
+0x42,0x57,0x83,0x15,0x2F,0xBD,0xAC,0x9B,0x62,0xEA,0xF0,0x22,0x6C,0x95,0x2E,0x7D,
+0xF1,0x7D,0x3A,0x8F,0x99,0x83,0x1F,0x89,0xFC,0x6A,0xB6,0x1B,0x2F,0xF2,0x28,0xDB,
+0xFA,0x65,0x6A,0x33,0x41,0x70,0xE7,0x36,0x0D,0x73,0xDF,0x9F,0x4A,0x1D,0x0B,0xF7,
+0x6A,0x57,0xA8,0x59,0x20,0x84,0xC8,0x39,0x36,0xBC,0x05,0x76,0x02,0x8A,0x88,0x3C,
+0x0B,0x40,0xE8,0xA9,0xA9,0x50,0x32,0x0E,0x1F,0xBE,0x93,0x4E,0xEE,0x38,0x27,0xB2,
+0x34,0x98,0x35,0xBB,0xA9,0x32,0xE1,0xBC,0x8B,0x83,0x65,0x2C,0xEC,0x4D,0x7E,0x7A,
+0xCE,0x26,0x7D,0xA9,0xF1,0x5E,0xB7,0xB2,0xF2,0x30,0x5B,0x39,0x08,0x12,0x18,0x69,
+0x90,0x56,0xFC,0xF3,0x15,0xB4,0xF5,0xE6,0xD2,0xF0,0x5D,0x93,0xEB,0xEE,0x2C,0xF1,
+0x9C,0xBC,0x80,0xEC,0x50,0xA1,0x8B,0x2A,0x7B,0x41,0xCC,0x68,0xF0,0xCD,0x08,0x2F,
+0xF9,0x9E,0x1F,0x9B,0x2E,0xD5,0xED,0xC2,0x59,0x0B,0x71,0x1A,0xB0,0xE4,0xCD,0x33,
+0x66,0x56,0xFF,0x95,0xBD,0xF4,0x07,0xB3,0x79,0x5B,0x31,0x27,0xB1,0xAA,0x35,0xB6,
+0x14,0xCB,0x73,0xFA,0xAD,0x9A,0x3F,0xB6,0x79,0x7B,0x33,0x6D,0xB6,0xC5,0xC3,0x01,
+0xD7,0x9E,0x7C,0x39,0xA9,0x68,0x0B,0xA5,0x14,0x4D,0x43,0xC1,0xBA,0x13,0x22,0xA7,
+0x3A,0x93,0xCA,0xC6,0xEA,0xA7,0xBB,0x46,0xD3,0x45,0xE8,0x19,0xEF,0xDE,0xF9,0xA7,
+0xDE,0xB0,0x37,0x3E,0xCB,0xD3,0xBA,0xDA,0x0F,0xE3,0x07,0xCB,0x09,0xF7,0x68,0x61,
+0xCF,0x2A,0x69,0x41,0xEC,0x5E,0x4A,0x85,0x77,0x2E,0xD5,0x6C,0x77,0xAF,0xB7,0xA3,
+0xF5,0x51,0x29,0xC4,0x80,0x63,0x00,0xE9,0xDF,0x23,0xA8,0xDD,0x97,0xF1,0x41,0x03,
+0x70,0xAE,0x94,0xA3,0x4B,0xB7,0x20,0xA9,0x7C,0x68,0xEF,0xB0,0x0E,0x9A,0xF2,0x31,
+0x5B,0x5B,0x73,0xD8,0x25,0xBA,0xF7,0x33,0xFD,0x05,0xDD,0x4A,0x7E,0xAC,0x9D,0x68,
+0x6C,0xD8,0x20,0x50,0xE9,0xD2,0x2E,0xFA,0x56,0xA6,0xC5,0xF5,0xD2,0xB2,0x96,0xB0,
+0x00,0x8D,0xEB,0xBC,0xCC,0xF4,0xFC,0x8D,0x5B,0x85,0x8B,0x52,0x3C,0x25,0x59,0x84,
+0x73,0xD5,0xD8,0x0E,0x7C,0x98,0x23,0x9E,0xE6,0x09,0x11,0x36,0xF8,0x2F,0xF6,0xEF,
+0x1B,0x1E,0x3E,0x62,0x51,0xEE,0x48,0xB4,0xC4,0x0A,0x6B,0x2F,0x40,0xA6,0x52,0x5E,
+0x01,0x5F,0xCA,0xBE,0xA7,0xFD,0x4D,0x27,0xA5,0x3A,0xC6,0xCB,0x00,0xFA,0x7D,0x73,
+0xF9,0x6E,0xC4,0x39,0xC5,0x08,0x57,0x2E,0xC2,0xB4,0x17,0x41,0xC3,0x03,0xB7,0x06,
+0xD9,0x90,0x09,0x72,0x48,0xFF,0x8B,0xAC,0x17,0x1D,0x2D,0xCF,0x6B,0x87,0x06,0x3E,
+0xD0,0xD0,0xF8,0x53,0x22,0xC2,0x54,0x0E,0x4C,0x92,0x84,0x61,0x72,0xF0,0xE0,0xC1,
+0x10,0x5D,0xF5,0xCC,0xAC,0x7E,0xFF,0x98,0x8E,0x69,0x30,0xA5,0x3F,0xB8,0x2E,0x1F,
+0xBC,0x3F,0x7D,0x0A,0xD9,0x5A,0xFA,0xE0,0xDA,0x8C,0xA9,0x63,0x7C,0x1C,0xF8,0x71,
+0xA7,0x9B,0x90,0x41,0xC7,0x8A,0xC8,0xCE,0x72,0x89,0x4B,0xF5,0x24,0x0A,0xA1,0x4C,
+0x02,0x80,0x73,0x37,0xC8,0xDB,0x6A,0x96,0xF7,0x17,0x24,0xBB,0xB7,0x61,0xBA,0x9F,
+0x7A,0xCA,0xEC,0x49,0x8F,0xD1,0x34,0x15,0x04,0x77,0xEA,0xE2,0xFD,0x9C,0xDD,0x29,
+0xF2,0x7C,0x07,0x9C,0xB0,0xEC,0xF6,0x4E,0x06,0x11,0x14,0x4F,0x6B,0x58,0xA6,0x49,
+0x45,0xCB,0x59,0x56,0xB7,0xE3,0xA0,0x1C,0x13,0x8F,0xCB,0x47,0x0A,0xA0,0xC1,0xFB,
+0x94,0x4F,0xFC,0x9B,0x9F,0xD7,0x5D,0xC0,0x7A,0x89,0x48,0x23,0x3E,0xB0,0xE9,0x01,
+0x89,0x9A,0xC5,0x05,0x8D,0xD4,0x7A,0x4B,0x9B,0x7D,0x6A,0x69,0x56,0xED,0x7A,0xC4,
+0x12,0xF1,0x63,0x44,0x37,0x9F,0x58,0x88,0xFE,0xD9,0x6F,0xFB,0xD1,0xCA,0x75,0xEC,
+0x44,0xCA,0x2D,0xF4,0xC9,0xDA,0xD4,0x39,0xBC,0x74,0xB3,0x39,0xC1,0xDF,0x62,0xAC,
+0x5D,0x3D,0x7F,0xA6,0x54,0x6D,0x34,0x88,0x8D,0xDC,0x7F,0x5E,0xD5,0xFB,0xBD,0x7A,
+0x41,0x5A,0xC2,0x36,0x0A,0x09,0xBC,0x01,0xC8,0x3D,0x71,0x40,0x06,0x31,0x46,0x9A,
+0x77,0xCE,0x03,0xE8,0x45,0x13,0x1F,0xCD,0x56,0x27,0xCC,0x50,0x15,0xF8,0x7F,0x4D,
+0x85,0x77,0xC8,0x67,0x26,0xAA,0xCE,0x54,0x18,0x6D,0x96,0xEB,0x24,0x20,0x2A,0x93,
+0x69,0x01,0x75,0xFA,0x98,0x62,0x1F,0x8F,0x65,0xC2,0x52,0x09,0xE1,0x82,0xDB,0x36,
+0x26,0xCA,0x35,0x24,0xE4,0x35,0xBD,0x79,0xBD,0x6A,0x19,0xDE,0xD0,0x3A,0x28,0x3A,
+0x93,0x57,0x18,0x12,0xDA,0x2B,0x1F,0x03,0xB4,0x02,0x7B,0x09,0x26,0xC9,0x5D,0xE8,
+0x3F,0x39,0xD4,0xAD,0xA8,0x9D,0xF8,0xF4,0x15,0x1C,0xBE,0x13,0x07,0x66,0x25,0x0C,
+0x68,0x2F,0x16,0xD4,0xFB,0x0B,0xA0,0x40,0x9A,0x01,0x9B,0xCA,0x23,0xDC,0xBA,0x61,
+0x99,0xD9,0xA5,0xB0,0xB6,0x81,0x61,0xA9,0x87,0x88,0xAE,0xC5,0x7E,0x78,0x7F,0xCB,
+0x2E,0xF0,0x28,0x25,0xD2,0x56,0x10,0x6C,0xF5,0x21,0xE4,0xBC,0x9B,0x54,0x75,0xE0,
+0xE8,0x02,0x6F,0xB3,0xA3,0x53,0x40,0x9F,0xED,0x28,0xA5,0x67,0xDD,0xF3,0x09,0xED,
+0x4C,0x37,0x8E,0xCA,0x0F,0x55,0x06,0xFC,0x7D,0xD8,0x4D,0xBD,0x79,0x3E,0xA2,0xE2,
+0x97,0x88,0x0C,0x4A,0x7E,0x86,0x0D,0x4B,0x09,0xD9,0xAB,0xB5,0xDA,0x4E,0xA1,0x9E,
+0x38,0x34,0x41,0xC5,0xD4,0x1A,0x12,0x7E,0xB2,0xE4,0x0E,0xC1,0xFD,0xBF,0x3B,0xE7,
+0x92,0x17,0xBE,0x35,0xDC,0x95,0x27,0x0E,0x86,0x8E,0xE6,0xB0,0xE4,0x39,0x8C,0xBB,
+0x2C,0xC8,0x20,0x63,0x64,0x3C,0x30,0x46,0x28,0x32,0xC8,0xE7,0xF2,0x64,0xED,0x57,
+0xBD,0xF4,0xB5,0xF4,0xE1,0xA1,0xE1,0x8D,0x0A,0x78,0xB1,0x28,0xBB,0x80,0xBB,0xCC,
+0x4A,0x26,0x21,0x3C,0x2D,0xFE,0x34,0x43,0xE8,0xAA,0x36,0x34,0x2B,0x7C,0x67,0x43,
+0xAD,0xC9,0x3E,0x10,0x14,0x32,0x43,0xDB,0xA4,0xC0,0x47,0x36,0x09,0x7D,0x97,0x20,
+0x76,0xD7,0xEB,0xE9,0x6F,0x5C,0xE9,0x01,0x1E,0xAE,0x42,0xA2,0xC9,0x18,0xEE,0x73,
+0x8F,0x76,0x8F,0xB8,0xAC,0xC4,0x2A,0xBB,0x01,0x43,0xFC,0xAA,0x07,0x34,0xEA,0x0E,
+0x15,0x20,0xA7,0x0E,0x16,0x0F,0x00,0x82,0xD9,0x42,0xCD,0x9B,0x04,0xA4,0xB6,0x93,
+0xE5,0x64,0x6F,0x41,0x35,0x5F,0xD1,0x27,0xB8,0xD4,0x33,0xFF,0x8C,0x28,0x8C,0x30,
+0x49,0xB6,0x75,0xF7,0x74,0xC7,0xE5,0xAB,0xDC,0x9C,0x16,0x4D,0xD6,0xE0,0x78,0x7C,
+0x27,0xA1,0x7B,0x28,0x7F,0xB5,0xE8,0xE4,0xB4,0xAA,0x79,0xFD,0x12,0xE2,0xBB,0x2D,
+0x74,0xA9,0xE1,0x3F,0xF5,0xE9,0xD4,0x17,0x8E,0x4E,0x0D,0x7A,0xAD,0x3B,0xBD,0x9B,
+0xBB,0xA0,0xBE,0x6D,0x2E,0x04,0x15,0xD6,0xBC,0x7F,0xC0,0xF8,0x9F,0x90,0xE7,0xAA,
+0x67,0xAD,0xA1,0xEA,0xA4,0x43,0x99,0x5A,0x87,0x8E,0x3D,0x90,0xD6,0x8E,0xF8,0x7D,
+0x8D,0x8E,0xFA,0x71,0xF8,0x1D,0x1E,0x3B,0xF1,0xA4,0xC1,0xE2,0x93,0x88,0x4B,0x80,
+0x06,0xF2,0xFC,0xC2,0xD1,0x2A,0xD1,0xE3,0xF9,0x41,0x37,0x1C,0x67,0xA2,0xD9,0xE8,
+0x72,0xA7,0x94,0x24,0xF6,0x4F,0x54,0x5F,0x96,0x44,0x1E,0xA4,0x99,0x1F,0xB6,0x5F,
+0x57,0x82,0xE2,0x06,0x37,0xB9,0xAC,0xCA,0x01,0xCE,0x59,0x88,0x08,0xD6,0x99,0xD2,
+0xA3,0xC0,0x73,0xB5,0x73,0x29,0x3C,0xF8,0x26,0x7C,0xCE,0x53,0x9C,0x0C,0x24,0x34,
+0xE1,0x39,0xDA,0xA2,0x34,0xE7,0x05,0x6A,0xE3,0x00,0x9E,0xAD,0x75,0xB6,0x26,0xC2,
+0x83,0x19,0x3A,0x26,0x59,0xD8,0x69,0x6C,0x76,0xA8,0xEB,0x7F,0x96,0x40,0x92,0x0F,
+0x8C,0xB5,0x39,0x2B,0x7D,0xB4,0x42,0xDD,0x81,0xBB,0xF6,0x0B,0xB7,0x51,0xF0,0xF3,
+0x05,0x95,0xF3,0xE3,0x6A,0x75,0xE3,0x29,0xB4,0x27,0x60,0xF7,0x84,0xC3,0xDB,0x66,
+0x50,0xFD,0x0B,0x08,0x66,0x22,0x2C,0xD9,0x55,0xAE,0x21,0xFA,0xA5,0x65,0xDA,0xED,
+0x6E,0x4E,0x50,0x58,0xD4,0x91,0xF4,0x32,0xB7,0xE2,0x46,0xA9,0x51,0x23,0x3E,0x85,
+0xE1,0xE6,0x85,0x59,0xC7,0x4F,0xD7,0x06,0xDA,0x49,0x6A,0x08,0x15,0x9E,0xD4,0x3D,
+0x7B,0xD6,0x3A,0x86,0x88,0x45,0x02,0xD2,0x6C,0x0A,0x19,0x2E,0x1F,0xF2,0xC3,0xA0,
+0xB7,0xA0,0x6E,0x37,0x34,0xC6,0x94,0xED,0x02,0xA2,0x31,0x13,0x1B,0xD0,0x65,0xB7,
+0xAF,0xF2,0xDE,0xC0,0x1E,0xD8,0xD0,0x4F,0x49,0xDC,0x06,0xEA,0xAE,0xB8,0x35,0x87,
+0xC2,0x25,0x90,0xAE,0x68,0x9B,0x92,0x8A,0x83,0xFF,0x9F,0x57,0x09,0x09,0x51,0x6F,
+0x85,0xE7,0xD0,0xA0,0x5B,0xF0,0x74,0xC2,0x55,0xE5,0x1A,0x96,0x08,0xDD,0x79,0x28,
+0x6D,0x6E,0xFF,0xEA,0xC7,0x9D,0x10,0xBC,0x3A,0x97,0xB4,0x57,0x3F,0xB9,0xC4,0x63,
+0xBF,0x7C,0x01,0x36,0x27,0xC5,0x62,0xBF,0xBE,0xE1,0xA5,0x4F,0x27,0x34,0x11,0xBF,
+0xC3,0x83,0x7D,0x2D,0xC3,0x76,0x91,0x7C,0xBF,0x1F,0xD6,0xDE,0xF9,0x30,0xB5,0x56,
+0x21,0x5D,0x80,0xB7,0x4D,0x60,0x65,0x54,0xCE,0xE7,0xCD,0xF1,0x88,0xE0,0x13,0xD0,
+0xEE,0x2A,0x3A,0x9C,0x30,0x9A,0x58,0x0D,0x55,0x21,0xBA,0x27,0x34,0xA8,0x12,0x16,
+0x5A,0x66,0x77,0x83,0x66,0xD2,0xDC,0x71,0x58,0xA3,0x7A,0xAD,0x2B,0x14,0x15,0x33,
+0x7D,0xCF,0xAD,0xA1,0xC4,0x69,0x44,0x49,0xCB,0x42,0x93,0x86,0xD2,0x62,0x72,0x2B,
+0x47,0x46,0xB2,0x18,0x91,0xED,0x4F,0x08,0x0A,0x02,0xB3,0xD2,0xFE,0x95,0x03,0xBF,
+0x01,0x96,0x6B,0xF0,0x73,0xCC,0xA2,0x32,0xF0,0x93,0x71,0xC0,0x94,0x84,0x81,0xF4,
+0xAC,0x5C,0x05,0xA5,0x24,0x90,0x4F,0xD6,0x05,0xFA,0x6B,0xDA,0x1B,0x97,0xEF,0x84,
+0x05,0x7D,0x7F,0x69,0x72,0xA0,0xA4,0xB8,0xD8,0x43,0x78,0xB7,0xE1,0xF5,0xD4,0x70,
+0xD9,0xDC,0x9B,0x44,0xF9,0xB5,0x2A,0xF8,0xAF,0xB9,0x2E,0x81,0xE3,0xB0,0xB6,0xBC,
+0x22,0x90,0x0B,0x26,0x12,0xDA,0xA8,0x48,0x40,0x56,0xFE,0x43,0x0E,0xBD,0x78,0xF3,
+0x00,0x75,0x80,0x29,0x58,0x87,0x8E,0x58,0x96,0x69,0xE3,0x5E,0xE8,0xBE,0xD3,0xE6,
+0x7E,0x1F,0x17,0xC7,0xD1,0x32,0x56,0x4D,0x57,0x89,0x98,0x2E,0x27,0x86,0x8A,0x3E,
+0xA1,0x4F,0x93,0x4B,0x0E,0xCA,0x3F,0xEA,0x91,0x62,0x2F,0x27,0x0B,0x89,0x6A,0x12,
+0x4E,0xD8,0x76,0xC8,0x20,0x0B,0xC9,0xED,0x33,0xF0,0x68,0xFD,0x32,0xB1,0xCE,0x01,
+0x80,0x17,0x73,0x12,0x81,0xF6,0x91,0x2F,0x8A,0xF1,0x10,0x6F,0x6E,0xBB,0x8A,0x53,
+0x11,0x78,0xCB,0x17,0x45,0xA3,0xEB,0xD6,0x2E,0xC7,0xF9,0x1B,0xFC,0x41,0x9E,0xF7,
+0xD4,0xCE,0xA6,0x74,0x4E,0x0C,0x62,0x54,0x37,0x61,0x55,0x94,0x1D,0xF7,0x7A,0x1D,
+0x38,0x60,0x88,0xF1,0x2D,0xE8,0x8E,0x33,0x8F,0x6A,0x03,0x44,0xF4,0x08,0x57,0xE3,
+0x73,0xC3,0x64,0xBE,0xE2,0x50,0xAC,0x3F,0x9F,0x69,0x4C,0xF7,0x73,0x5F,0xD7,0xAF,
+0xA6,0x16,0x78,0x2E,0xF8,0x92,0xBD,0x90,0xC9,0x87,0x1D,0x7D,0xEF,0x79,0x2B,0x67,
+0xFC,0x69,0x60,0xF5,0xA7,0x4A,0xDB,0x4F,0xBF,0xB9,0xEF,0x79,0x5E,0xC0,0xDB,0x40,
+0x15,0xC4,0x53,0xDE,0x31,0x91,0x75,0x1C,0xB0,0x20,0x37,0xB4,0xEC,0x07,0xA4,0x31,
+0x1B,0xB0,0xB7,0x97,0xE3,0x5B,0x4D,0x62,0x2E,0x43,0x2B,0x66,0xCC,0x63,0x50,0xAA,
+0x64,0x71,0x60,0x9C,0xD3,0xD5,0x79,0xD8,0x12,0x74,0x52,0x03,0xEC,0x70,0x02,0xA9,
+0x8C,0xD1,0xB2,0xE1,0x6D,0x53,0x15,0xA2,0x68,0xB0,0xF8,0xC2,0x22,0xFF,0xA6,0x75,
+0x27,0x4B,0x69,0x44,0x62,0x54,0x60,0xDC,0xC5,0xAC,0x26,0xEE,0xDB,0x3F,0x75,0xFF,
+0xC1,0x93,0xF4,0xBC,0x93,0x24,0xEB,0xF1,0xA6,0xE8,0xFD,0xDC,0x79,0xEC,0x68,0xEE,
+0x8E,0x8D,0x27,0xCD,0xAE,0x3E,0xDD,0x3F,0x2F,0x5E,0x44,0x46,0x40,0x3C,0xB1,0xD5,
+0xCF,0x63,0x78,0x06,0x8C,0x99,0xD0,0x3F,0x75,0xE4,0x82,0x12,0x8D,0x39,0x20,0x42,
+0xF1,0xA2,0xD2,0x1F,0x2B,0xB6,0x61,0x99,0xBC,0x81,0x02,0x42,0x3C,0x61,0x02,0xB2,
+0xC4,0x8A,0xA3,0xC9,0x23,0x12,0xE2,0x5A,0xCA,0x32,0xF3,0x85,0x8F,0xEB,0x43,0xB8,
+0xA7,0x59,0xFB,0xFA,0x53,0xCE,0xD5,0x9A,0xF0,0x72,0x7F,0x32,0x07,0x65,0xCC,0xDB,
+0x59,0x5E,0x47,0xF9,0x43,0x42,0x96,0x86,0x3F,0x92,0x8F,0x2A,0xDF,0x35,0x0E,0xF5,
+0x28,0x0F,0x33,0x6B,0x13,0x72,0x91,0xAF,0x47,0x43,0x1C,0xB6,0xF8,0x36,0x3D,0xDE,
+0x96,0x0B,0x88,0x2C,0xEE,0x5E,0x2F,0x6C,0xF1,0xB2,0xE5,0xF0,0x65,0xAE,0x61,0xE1,
+0x5C,0x82,0xBC,0x83,0x0D,0x16,0xB5,0x48,0xE8,0x0A,0x20,0xE4,0x05,0x94,0x7C,0xEA,
+0x2D,0x4B,0xA8,0x90,0xCD,0x17,0x95,0x78,0x09,0xC8,0xC7,0x33,0xE3,0x58,0xFB,0xFA,
+0xA2,0x23,0xB1,0x40,0xAC,0x0E,0x84,0xE1,0x3B,0xF6,0x46,0x15,0xF8,0x56,0x3B,0x22,
+0xDB,0x11,0x40,0x30,0xCE,0xEA,0x75,0x7B,0xD8,0x31,0xD7,0x40,0x9F,0xCB,0x15,0xB5,
+0x5D,0xBF,0x7D,0xD5,0xFA,0xC8,0xDC,0x39,0x69,0xD5,0x6C,0x45,0xBD,0x40,0x6E,0xBA,
+0x74,0xFF,0x66,0x0F,0x05,0x75,0xDA,0x73,0x4B,0x38,0x18,0xD8,0xF3,0x25,0xB1,0x6D,
+0x57,0xCA,0xE1,0x74,0x33,0xE4,0x42,0x7D,0x74,0x9F,0x0D,0x69,0x0C,0x29,0x6B,0xB1,
+0xAB,0x96,0x21,0x2C,0xEC,0xE2,0xFF,0xBD,0x2B,0xA5,0xE7,0x4B,0x78,0x77,0x14,0x41,
+0x67,0x09,0x37,0x42,0x31,0x51,0xCE,0xD3,0x8F,0x19,0x1E,0x16,0xFB,0x83,0xF5,0xA6,
+0xAA,0x0F,0x85,0x23,0x15,0xFA,0x5F,0x05,0x53,0x55,0xD1,0x5C,0xC3,0x6E,0xD7,0xFB,
+0x7C,0x65,0x8B,0x72,0x16,0x8A,0x7F,0x34,0x59,0xE5,0x23,0x9A,0x04,0xAD,0x8E,0xE9,
+0x13,0xC0,0x96,0xAE,0x4B,0x88,0x8D,0x81,0xD0,0x8D,0x4D,0x97,0xC2,0xDF,0x7A,0x32,
+0x4B,0xE8,0xCB,0x43,0xA4,0x0F,0xBF,0xA3,0x6E,0xE4,0x3A,0xE1,0x8B,0x48,0xF6,0xDC,
+0x2C,0x9F,0x33,0xFF,0x74,0x49,0x7F,0x17,0xA1,0x0C,0x04,0x83,0x4F,0xFB,0x14,0x83,
+0x9C,0xF8,0xFB,0x77,0x99,0x3B,0xD0,0x5C,0xE8,0x6E,0xE6,0x3D,0xB0,0xDE,0x7B,0xE3,
+0x0A,0xD1,0xB2,0x88,0xD2,0xA9,0xE4,0x23,0x09,0x10,0x6F,0x67,0x81,0x1F,0xFB,0xF7,
+0xF4,0x76,0x58,0xAB,0xD9,0xDC,0xBC,0xEA,0x31,0x2D,0x8B,0x9B,0xA1,0x8D,0x3C,0x30,
+0x81,0x20,0x7A,0x41,0x6A,0x2A,0x1C,0x4B,0x42,0x62,0xE9,0xEE,0x2D,0xB2,0xCA,0xB8,
+0x33,0x17,0x62,0x20,0xBA,0xBC,0x5E,0xFD,0x9D,0x78,0x3D,0xC1,0x47,0xD3,0x1D,0x41,
+0xA4,0xB1,0x8F,0xCE,0x4C,0x66,0x66,0xEC,0x5D,0xF5,0xC9,0x58,0x33,0x43,0xA5,0x6F,
+0x0A,0x45,0x72,0xCD,0x32,0x12,0x29,0x2D,0x4A,0x84,0x3D,0x02,0x34,0xEB,0xAB,0x20,
+0xFB,0x5D,0x45,0x1A,0xFB,0x98,0xA0,0x60,0x3C,0xAD,0x08,0x85,0xC9,0x4F,0xE2,0x2A,
+0x7B,0x6D,0xE2,0x29,0x55,0xC0,0x4D,0xF2,0xF0,0x4B,0x36,0x92,0xA0,0x60,0xF2,0x78,
+0xBD,0x07,0x0F,0xF3,0xE7,0xC5,0x74,0xDB,0xB7,0x0D,0x77,0x67,0x5E,0xC7,0xAB,0x0F,
+0x04,0xD6,0x63,0xD6,0xDE,0x15,0x46,0x91,0x27,0x0C,0x38,0xB5,0x09,0xDD,0xB2,0xB2,
+0xDF,0xA4,0x74,0xAC,0x2D,0xC6,0x67,0x34,0x1E,0x3E,0xDE,0x05,0x87,0xAD,0x77,0x16,
+0x01,0xCD,0x98,0xCF,0x33,0x06,0x69,0xE1,0x9B,0x51,0x75,0x7B,0xE4,0xAA,0x1C,0xC4,
+0xAB,0x07,0x0A,0x20,0x8F,0x89,0x9B,0x6E,0x64,0x07,0x9D,0x24,0xEC,0x2C,0xA5,0xEB,
+0x2E,0x7F,0x76,0xDD,0x15,0x32,0x82,0xAE,0x0B,0x97,0x22,0x03,0xD6,0x13,0x93,0xE4,
+0xBF,0xE6,0x1F,0x04,0x79,0xAF,0xFB,0x7B,0xF7,0x2D,0x5B,0xFC,0x4A,0xF7,0x0B,0x92,
+0x3E,0x65,0xC9,0x1A,0xC8,0xA1,0xBF,0x6D,0x6E,0xD7,0xD4,0xE2,0x88,0xEE,0x36,0xD2,
+0xD9,0x4D,0x4D,0xBE,0x77,0x6D,0x87,0xE5,0x70,0x46,0xA5,0xEE,0x03,0xEF,0xF2,0x43,
+0x1C,0x98,0x0D,0x2E,0xB2,0x57,0xB8,0xA5,0x74,0x06,0x6F,0x92,0xB2,0xA7,0x6D,0x63,
+0xE5,0xE0,0x4C,0x67,0x8D,0xCF,0x3B,0xBC,0xB5,0xD8,0xD1,0x59,0x96,0x8B,0x4B,0x8F,
+0x76,0xDC,0xA1,0x8B,0xE7,0xCC,0xCC,0xFC,0xA8,0xD5,0xA0,0xA2,0x2A,0xBB,0x02,0x9A,
+0x86,0x93,0x15,0x22,0x46,0x9C,0x92,0x18,0xDF,0x6D,0x5E,0xD6,0x0A,0x37,0x5D,0xE2,
+0xB4,0x07,0x5E,0x8C,0x5B,0x26,0x60,0x67,0xF7,0xAA,0xEA,0xA2,0x69,0x71,0x28,0xDB,
+0xDA,0xD6,0x80,0x90,0x11,0x54,0x99,0x95,0x37,0xD0,0x85,0xB2,0x5F,0x73,0x7B,0x56,
+0x28,0x09,0xF0,0x47,0x30,0x97,0x4B,0x54,0x5D,0xAA,0x53,0x34,0x7C,0x03,0x03,0xBB,
+0xE7,0x7D,0x0B,0x93,0x47,0x7A,0x84,0x73,0x3C,0x8D,0x9E,0x35,0xEA,0xA8,0x6E,0xFE,
+0x1E,0x0B,0x2B,0x2E,0x94,0x8E,0xC3,0x6B,0x3A,0xD1,0x52,0xCD,0xE0,0x1B,0x39,0x99,
+0xF4,0x8F,0x61,0x9F,0x56,0xD0,0x53,0xFB,0xA1,0x3F,0xAE,0xC0,0xAC,0x1D,0xDE,0xA0,
+0xE1,0xF2,0xD0,0x6D,0x59,0xDC,0x5C,0xA9,0x53,0x66,0x8D,0xE3,0x11,0x8C,0xF3,0xF9,
+0x95,0xA5,0x26,0xC3,0xDF,0xB9,0x6B,0xFF,0xF8,0x1B,0xA4,0xEE,0xD4,0x31,0x14,0x9E,
+0x30,0x54,0x7A,0x8A,0xF8,0xBA,0x4A,0xE3,0x3D,0x1F,0x5D,0xF5,0x47,0x9F,0xDE,0x61,
+0xC4,0x3F,0xA3,0x4D,0xC3,0x2A,0x8E,0x9D,0xEC,0x8E,0xCA,0xFD,0x74,0x45,0xBB,0x03,
+0x10,0xFB,0x4D,0xB2,0xA7,0x4B,0xE3,0xEE,0xEC,0x80,0x78,0x35,0x35,0xD3,0x5D,0xFB,
+0x72,0x12,0x17,0x05,0xBD,0x74,0x6D,0x56,0xC2,0x74,0x0D,0x16,0x60,0x25,0x7E,0x62,
+0x96,0x4E,0x5E,0x8F,0x98,0xE6,0x6E,0xD8,0x46,0xBB,0xF3,0x0E,0x0D,0x50,0xD7,0x8A,
+0x1F,0x79,0x27,0xE0,0x3D,0x27,0x2D,0x37,0x06,0x06,0x65,0x2D,0x5B,0xC2,0xBD,0x44,
+0xFD,0xFA,0x8F,0xCD,0xD8,0x02,0x5C,0x51,0xBB,0x52,0xD5,0x9C,0x3F,0xB0,0x57,0x42,
+0xC3,0xDF,0x75,0x2F,0x1F,0xB1,0x75,0x58,0x23,0xAE,0xB2,0x0F,0xA0,0xF6,0xD7,0xBB,
+0x5C,0x47,0xD0,0x8E,0xD9,0xCD,0x3E,0x2E,0x00,0x26,0x46,0x80,0x7D,0x3C,0x74,0xBB,
+0x4D,0x5F,0x10,0x04,0xCC,0x40,0xF6,0x6F,0xC8,0x5A,0x94,0x6C,0x0F,0x64,0xB1,0x3E,
+0xE3,0x8F,0x60,0xB4,0x1E,0x24,0x8C,0x10,0x31,0xCC,0x7C,0xF0,0xD3,0x09,0x9D,0xF0,
+0x66,0xAE,0x78,0x7D,0x47,0xF0,0xD3,0xBC,0xA3,0x20,0x3B,0xAC,0x6C,0x62,0xC8,0xB5,
+0xFF,0xD4,0x1C,0x93,0x5F,0x41,0xA4,0x94,0x71,0x02,0x56,0xC7,0x53,0x21,0x4E,0x67,
+0xC8,0x47,0x0F,0xC1,0xE9,0x29,0xA6,0x10,0xEC,0x64,0x4E,0x74,0xEE,0x3F,0xA9,0x8F,
+0xE0,0x97,0x8E,0xA3,0xD1,0x0B,0xCD,0x0D,0xBC,0xD3,0x82,0x89,0xF5,0xBC,0x94,0x62,
+0x93,0x3C,0x9F,0x62,0x16,0x67,0xFE,0x69,0x1F,0x7F,0x18,0x4E,0x37,0xB6,0x62,0x42,
+0x92,0x34,0xFF,0x51,0x08,0x6E,0x42,0xA3,0xE2,0xCA,0x55,0x62,0x60,0x69,0x0D,0x40,
+0x88,0xD7,0x42,0x7D,0xA1,0x7D,0xF6,0x13,0x9F,0xC6,0xF8,0x91,0x6C,0x35,0x38,0x1E,
+0x4A,0x28,0xCD,0x90,0x0E,0x6C,0x73,0xE6,0x08,0xD8,0xBE,0x7D,0xC6,0x14,0xC4,0x72,
+0x6A,0xE2,0xB8,0x9F,0x32,0x9B,0xA6,0x47,0x3F,0x44,0x84,0x8C,0x08,0x90,0x71,0x59,
+0x83,0x49,0xC7,0xD7,0xFF,0xED,0x44,0x9B,0x58,0xCD,0xA3,0x9B,0x00,0x2B,0x79,0x19,
+0x43,0xF3,0x3D,0x36,0x9C,0x51,0xEC,0xB2,0x0B,0xAC,0x17,0xB4,0xE6,0x63,0x16,0x51,
+0x34,0x69,0x92,0xA2,0x24,0x19,0xC9,0xA2,0xBA,0x37,0xD8,0xA2,0xA9,0x99,0xBF,0xBF,
+0x2F,0x57,0x4C,0x05,0xC3,0xC9,0x22,0x44,0x08,0xB3,0x3A,0x37,0xF9,0x8F,0x56,0x99,
+0xE9,0x00,0x1F,0xB7,0xBD,0x42,0x4B,0x56,0x47,0xF2,0x79,0xF3,0xF8,0x0F,0x9D,0x94,
+0x91,0x40,0xDE,0x29,0x49,0x48,0xCD,0x90,0xA1,0x95,0xB7,0x9C,0xF2,0xF2,0xA1,0x85,
+0xD6,0xFA,0x89,0x54,0x2C,0x70,0x97,0xF8,0x50,0xAA,0x58,0x1E,0x2D,0x33,0xD1,0xE9,
+0x61,0xE5,0x3F,0x65,0x06,0x7F,0x77,0x58,0x9F,0x10,0x87,0xB5,0xFD,0xCB,0xDA,0xD8,
+0x1A,0xCC,0xAE,0x88,0x6F,0x47,0x8E,0x80,0x51,0x39,0xF9,0x19,0x07,0x7E,0x1F,0x8F,
+0x07,0xB6,0x85,0x66,0x27,0x44,0x96,0xB5,0x51,0x98,0xDB,0x29,0x87,0x23,0x16,0x27,
+0xD7,0x57,0x48,0xF6,0xCA,0x49,0x65,0x7F,0x59,0x32,0x20,0xE3,0x36,0x4C,0x2E,0x70,
+0x81,0xB6,0x7D,0x4F,0x74,0x0C,0x8A,0xEF,0x2D,0x1F,0xFC,0x49,0x4B,0x59,0xCF,0x1C,
+0xD2,0xE4,0xC4,0x9E,0xFA,0x9A,0xD9,0xC8,0x64,0x5C,0xE2,0x06,0x90,0xA2,0xD8,0x5D,
+0xCE,0x40,0xCB,0x4F,0x5B,0xFE,0xB5,0x07,0xCD,0x68,0xEC,0x87,0xB1,0x68,0xC8,0x10,
+0x16,0xB1,0x0A,0x1F,0xB5,0x39,0xE0,0x2F,0x2C,0xA4,0x05,0x79,0xAB,0xB3,0x23,0x12,
+0xE4,0x4F,0x00,0x46,0x1F,0x80,0xB0,0xE2,0xA3,0x4A,0x5F,0x21,0x79,0x6B,0x14,0x51,
+0xB5,0xED,0x28,0x13,0xBC,0xA6,0xC9,0x68,0xB5,0xA0,0x8A,0x17,0x1A,0xA9,0x2B,0x8A,
+0xFA,0x80,0x7D,0xC3,0x12,0xF1,0x19,0xFA,0x1F,0xFE,0xC1,0xDD,0xD6,0x11,0xBF,0x82,
+0xAC,0x8C,0x89,0x16,0xA3,0x0E,0xA0,0x6A,0xAF,0xE9,0x2D,0x94,0xF6,0xF5,0x12,0x8A,
+0x00,0x2E,0x88,0xFE,0x9A,0xB8,0x38,0xA8,0xE9,0xAF,0xE8,0x3C,0xB2,0x5A,0x3F,0x47,
+0xF7,0xE7,0xE8,0x17,0x3F,0x67,0xCB,0x28,0xBA,0x7C,0x62,0x06,0xC3,0x2B,0xB6,0x22,
+0xA9,0xF8,0xA8,0x00,0xDD,0x8D,0x39,0x9F,0xE8,0x3E,0x64,0x96,0x70,0xD7,0xE2,0x0E,
+0xA5,0xBA,0x1F,0x86,0x62,0x98,0xE5,0xF1,0x73,0xEE,0xF5,0x5D,0x26,0xF4,0xFD,0x7D,
+0xC0,0x9D,0xC9,0xBB,0xD8,0xEC,0x94,0xEC,0x46,0x9A,0x48,0xCF,0x8C,0xDD,0xBA,0xC6,
+0x5F,0x17,0x23,0xDC,0x8D,0xCD,0x98,0x27,0x93,0xE3,0x08,0x44,0x89,0x93,0xA0,0x8E,
+0x2D,0x69,0xF4,0x08,0x13,0xA3,0x23,0xE7,0x80,0x38,0x0A,0x73,0x91,0xFC,0xBA,0xAF,
+0xEE,0x5A,0x40,0x89,0x01,0x51,0xD2,0x1A,0xBA,0x74,0x7A,0xF1,0x7C,0x2A,0x28,0x43,
+0x03,0x67,0x01,0xFF,0xA4,0x9E,0xFE,0x94,0x49,0x9D,0xD1,0x09,0x9D,0xE7,0x17,0xF7,
+0x9F,0xA9,0x89,0x3D,0x6B,0xEF,0x6C,0x31,0xA1,0xA8,0x29,0x74,0x7E,0x8A,0x36,0x7D,
+0x5E,0x2A,0x6A,0x3D,0x41,0x66,0x70,0x65,0x06,0xF7,0xBB,0xC5,0x9D,0x1C,0x41,0x33,
+0x7B,0x82,0x8C,0x95,0x44,0x84,0x08,0x7C,0x20,0xDB,0xC9,0x03,0x8F,0xAC,0x00,0xF6,
+0xC8,0x54,0x56,0x61,0xF7,0xBA,0x6B,0xAA,0xE9,0xD3,0x8F,0x76,0xC4,0xCB,0xE0,0xBE,
+0xC3,0x9A,0x58,0xFC,0xFF,0x49,0x50,0xC3,0xB7,0x2F,0xE6,0x7B,0x48,0x24,0x47,0xD8,
+0x53,0xF6,0xD1,0xB7,0x5E,0xBD,0xFF,0x0C,0x1B,0xB4,0x3C,0x9B,0x79,0xB3,0xCB,0xD5,
+0x32,0x72,0xBB,0x14,0x7B,0x69,0xE3,0x46,0xA6,0x91,0xAA,0x5A,0x3F,0x01,0x24,0x39,
+0x0D,0x0C,0x79,0x7D,0xEE,0x0B,0xE5,0xE3,0x4F,0xAD,0x5C,0xF8,0x7B,0x74,0xB3,0xA3,
+0x6C,0x5C,0xEE,0x23,0x50,0x7D,0x27,0xAB,0x34,0xD5,0xA4,0x40,0x9E,0x41,0x9C,0xA5,
+0xBF,0xF8,0x61,0xF7,0x5F,0xA6,0xFC,0x91,0xE3,0x68,0xD4,0xC0,0x50,0xA7,0x67,0x77,
+0x7F,0x49,0x87,0x31,0x65,0x78,0x49,0xDC,0xED,0xC0,0xD3,0xD9,0xE8,0x0C,0xB5,0xC8,
+0xF0,0xDB,0x82,0x1C,0xE4,0xD2,0xAE,0x81,0x0C,0x60,0x55,0xDA,0xA1,0xE4,0xA8,0x32,
+0x6B,0x68,0x8D,0xA9,0xF3,0x73,0x43,0xF2,0x9B,0x43,0x92,0x7E,0x0E,0x44,0x56,0xE5,
+0xE1,0xC3,0x66,0x24,0xEF,0x82,0x61,0x92,0xAC,0x28,0x36,0x34,0x87,0x71,0x56,0x9D,
+0xB9,0xDA,0x59,0xDB,0x17,0x02,0x33,0x13,0xA7,0x64,0x19,0xBB,0x96,0x4F,0x6F,0x29,
+0xBC,0xB4,0xE3,0x0B,0xE7,0xC4,0x60,0x49,0xC6,0xE0,0xBE,0x19,0x97,0x0E,0xFA,0x4E,
+0x2E,0x83,0xE1,0x79,0x40,0x65,0xB3,0x91,0xE2,0xB4,0xDE,0x3B,0xEF,0x16,0xF3,0xA5,
+0xB6,0x3C,0x05,0x28,0x61,0x9C,0x86,0x07,0x1D,0x91,0xF2,0x5E,0xCA,0xA8,0x47,0xA2,
+0xB5,0x5D,0xA3,0xFC,0x55,0x0F,0xEC,0x68,0xEC,0x48,0xC2,0x69,0x7B,0xD9,0xD9,0x0A,
+0xE5,0x12,0x78,0x8B,0x52,0xFF,0x15,0xDB,0x9E,0x7A,0x4E,0x75,0x65,0x27,0x01,0x1C,
+0x4B,0x7D,0x45,0xD3,0x5F,0x57,0x4E,0x89,0x81,0x90,0x6A,0x13,0x6A,0x5B,0xAB,0x11,
+0xD6,0xF0,0x8C,0x3B,0xEC,0xC6,0xBD,0xED,0xF6,0xC3,0x8E,0xD0,0x8A,0x22,0x9A,0x70,
+0xD8,0xFC,0x85,0x0C,0x25,0x47,0xFB,0x6E,0xF0,0xFA,0x97,0xAF,0x5C,0xAD,0xB2,0x35,
+0x14,0xF9,0xF8,0xD5,0xE5,0xA0,0xD4,0xC9,0x5F,0x0E,0x96,0xD1,0x9D,0xDC,0xCC,0xA3,
+0x3E,0x1F,0x8A,0xC2,0x46,0x63,0x3B,0x0B,0x5A,0x53,0x07,0xC8,0x68,0x80,0xDF,0x9E,
+0x3D,0xD7,0x7F,0x3B,0x15,0x7E,0x33,0x77,0xC5,0xC8,0x5A,0x89,0x5A,0xA2,0x18,0xEC,
+0x30,0x91,0x61,0x7B,0x0A,0xAE,0x00,0x70,0x1D,0x24,0x35,0x7F,0x35,0x59,0x87,0x56,
+0x75,0xA2,0xBE,0x18,0x1F,0xF8,0x16,0x16,0x03,0x0A,0x20,0xA0,0xBE,0x85,0xBF,0xB6,
+0x3B,0x1B,0x30,0xD3,0xFE,0x90,0x62,0x5C,0x17,0xDF,0x76,0xA9,0x3F,0x00,0x2B,0x74,
+0x31,0xB9,0xAA,0xBF,0xC7,0xE8,0x16,0xDC,0xEF,0x0C,0x8B,0xFE,0xAC,0xCE,0xE4,0x41,
+0x09,0xA9,0x09,0x16,0x0F,0xAF,0x22,0xF7,0x95,0x7B,0x4A,0xD2,0x78,0x21,0x10,0x92,
+0x06,0xC9,0x32,0x62,0xA2,0x18,0x95,0x28,0x26,0x42,0xB2,0xCE,0x1C,0xFE,0x4C,0xE7,
+0xDF,0xB8,0x4A,0x9F,0x51,0xCC,0xBB,0x4C,0x66,0x33,0xD0,0x0A,0x97,0xF3,0xA4,0xFF,
+0x88,0xDC,0x4C,0xCB,0x25,0x83,0x02,0xCB,0xC3,0x52,0x68,0x19,0x56,0xB8,0x2A,0x8C,
+0x77,0x1F,0x47,0x79,0xFE,0xD5,0xCC,0x9A,0x26,0xB5,0x8C,0x54,0xDD,0x54,0x02,0x3B,
+0xC1,0x2A,0x01,0xD8,0xED,0x79,0xA1,0x5A,0x4E,0x13,0x23,0x53,0xE1,0x91,0x9A,0x22,
+0xE3,0xF5,0xDA,0x63,0x4F,0xAB,0xFB,0xAF,0x59,0x9F,0xDB,0x4B,0xB5,0x9B,0x57,0x83,
+0x87,0x1B,0x11,0x6B,0x39,0xB7,0xD8,0xA0,0x56,0x9A,0x11,0x46,0xF0,0x95,0x61,0x35,
+0x40,0x28,0xF3,0x68,0x3B,0x6F,0x7F,0x61,0xF6,0x1C,0xCA,0xA1,0x5D,0x7C,0x64,0xD4,
+0xF9,0x62,0x7F,0xC5,0xB7,0x9D,0x1D,0x2D,0xDE,0x84,0x12,0x28,0x11,0x26,0xF8,0x78,
+0x38,0x2B,0x12,0xD7,0x32,0x86,0x8D,0x1C,0x0E,0xF3,0x58,0xF4,0xA8,0x2F,0x90,0xE0,
+0x50,0xE0,0xEA,0x81,0x1E,0xB1,0xF3,0xF4,0x3F,0xAB,0x46,0xD6,0xA6,0x37,0x14,0x10,
+0x72,0x8F,0x03,0x48,0x60,0x99,0x91,0x81,0xE9,0x15,0xC5,0xA6,0x94,0xFB,0x82,0xF7,
+0x1E,0x40,0x62,0x60,0xAA,0xEA,0xE5,0x4F,0xE0,0xE1,0xCF,0x06,0xF9,0x61,0x1C,0xF5,
+0xB4,0xCE,0x84,0xDC,0xDE,0x25,0x9A,0xD8,0x8B,0x51,0x45,0x3D,0xC1,0x3F,0x4C,0xAD,
+0x39,0x37,0xC6,0x2C,0xD8,0x34,0x78,0x06,0x9D,0xCF,0x1D,0xD8,0x36,0xED,0xA5,0xDE,
+0x5D,0x64,0xC5,0xBD,0x18,0x9A,0x47,0x3A,0x07,0x55,0x70,0xAE,0xC7,0x05,0x3A,0xF1,
+0x89,0x92,0xF5,0x58,0x14,0x1F,0xD3,0x73,0xBC,0xB1,0x1B,0x2F,0x62,0x42,0x4D,0x06,
+0x94,0x0C,0x83,0x1A,0x55,0xFA,0xF2,0x3C,0x97,0xEA,0x52,0xA3,0xE8,0xDA,0x01,0x66,
+0x28,0x9E,0x0C,0xE0,0xD5,0x3A,0x65,0xDE,0xB4,0xCC,0x1A,0xC7,0xBF,0x6E,0x30,0x1D,
+0x60,0x8C,0x38,0x77,0xF7,0x4D,0x18,0xED,0x3A,0xE5,0xE0,0x84,0x22,0xA1,0x33,0x67,
+0xB0,0x30,0xC1,0x02,0x10,0x56,0x8F,0x54,0xB4,0x31,0xF6,0xE0,0xB5,0x43,0xF3,0xF9,
+0x17,0x66,0xF7,0xB4,0xA6,0xEB,0xE8,0xAF,0x4D,0xBE,0x10,0x03,0xB7,0x2C,0x22,0xA7,
+0x04,0xA9,0x51,0xA3,0xAD,0xF1,0xF1,0xEE,0x96,0x6C,0x4C,0xEF,0x4C,0x81,0x87,0xEC,
+0x15,0x58,0xE6,0x33,0x94,0x33,0xFE,0x9C,0xC2,0x5A,0x6D,0x0F,0xD2,0xC7,0x11,0x92,
+0xE2,0x7A,0xFB,0xA9,0xCC,0x13,0x5F,0xD7,0x2A,0x40,0xE9,0xED,0x76,0xFD,0x9F,0xEC,
+0xB0,0x4C,0xEA,0x99,0xDA,0xD3,0x4E,0xFF,0x98,0x1D,0x43,0xF3,0xF3,0x04,0x9D,0x15,
+0x41,0xEF,0x4E,0x76,0x40,0x59,0xBF,0x9F,0xFA,0xB1,0x76,0x67,0xE2,0xA0,0xD0,0x6B,
+0xF6,0xBD,0x96,0x36,0x23,0x8E,0xBE,0x55,0x7F,0x2C,0x3C,0xC0,0xAB,0x8C,0x0A,0xFE,
+0x30,0x53,0x84,0x7F,0x01,0x8B,0x10,0x9B,0xA6,0xCB,0x7D,0xB6,0xF4,0x2B,0x6E,0xD1,
+0x94,0xF3,0xA7,0x88,0xC1,0x8D,0x7A,0x33,0x1B,0x7B,0x95,0x34,0x97,0xE6,0x9F,0x36,
+0x4F,0x5C,0xF0,0x0C,0x82,0x5E,0x1C,0xC1,0xA0,0x27,0x73,0x1B,0xF6,0x96,0x36,0x65,
+0xE0,0x14,0x7A,0xA3,0x9B,0xC2,0x4A,0xF4,0xB0,0xEA,0xD6,0x97,0x20,0x67,0x8E,0xBA,
+0x4A,0x58,0x54,0x91,0x19,0x4D,0x2D,0x5D,0xF7,0x8A,0x3E,0x08,0x37,0xE1,0x99,0x9B,
+0xF4,0x47,0xB8,0x9B,0x1A,0xE4,0x28,0x8B,0xFB,0x21,0x10,0xAE,0x06,0xBC,0x52,0x93,
+0x65,0x08,0xAD,0x13,0xB1,0x79,0xEE,0xFE,0x18,0xF0,0x69,0x55,0x27,0x58,0x5D,0xC7,
+0x92,0x0D,0xC0,0xF1,0x2A,0x26,0xAA,0x33,0x78,0x42,0xEE,0x43,0xFC,0xA4,0x52,0x6A,
+0x75,0x3F,0x40,0x56,0x3D,0xEA,0x70,0xC1,0x1A,0xDA,0x9F,0xAB,0xD5,0xA5,0xD1,0xD1,
+0xAE,0x3A,0xDB,0x3E,0xA9,0x84,0xDC,0x2D,0x75,0x2A,0x9A,0x8A,0x20,0xC0,0xDD,0x7D,
+0x57,0xB9,0x1D,0x35,0x1D,0x1C,0x43,0xB8,0x55,0x13,0x24,0xB4,0x48,0xEC,0xB5,0xFD,
+0xCD,0x3F,0x84,0x94,0x9B,0xD7,0x95,0x4D,0xA2,0xBA,0x15,0xAF,0x3D,0x7C,0x30,0x7D,
+0x3D,0x1D,0xAB,0x5A,0xC3,0x87,0xEE,0x4D,0xE8,0x5A,0xEB,0xF6,0x10,0xF0,0xB4,0x89,
+0x91,0x78,0x5D,0x80,0xC4,0x1F,0x50,0xF5,0xEE,0x2D,0xCE,0x9B,0x73,0x38,0x5C,0x0C,
+0xFF,0x2F,0x9C,0x90,0x03,0x6D,0xD0,0xCD,0x19,0x1B,0xA1,0x27,0x0F,0x3A,0x97,0x0F,
+0xAC,0x83,0xEC,0x3C,0x7F,0x31,0x47,0x34,0x54,0x36,0xD5,0x2A,0x93,0xE3,0x1C,0x3D,
+0x63,0x4F,0x53,0x84,0xCE,0xDC,0xF7,0xEB,0x0F,0x51,0x18,0xD7,0xD7,0x48,0x1E,0xF8,
+0xBF,0x8B,0x4F,0x40,0x50,0x9B,0x9B,0x82,0x0E,0x23,0xE5,0xAB,0x92,0x56,0x80,0x12,
+0x55,0x85,0xC8,0x5B,0xF0,0xC5,0x77,0xB8,0xFF,0xE7,0x19,0x42,0x09,0x50,0x62,0x9F,
+0xDE,0x5B,0x51,0x61,0x5B,0xF2,0xA0,0xF1,0x09,0xA1,0xEF,0x1E,0x30,0x7A,0x7F,0xA3,
+0xAA,0xF4,0x1B,0x50,0x6E,0x97,0x2C,0xDD,0x27,0x1C,0xC6,0xFD,0xCF,0xC7,0x8D,0xBE,
+0x8F,0xAC,0xE0,0xE6,0x4D,0x61,0xB8,0xD2,0x4C,0xB9,0x81,0x46,0xBF,0x0E,0x6C,0xA2,
+0x7B,0xED,0x02,0x17,0x56,0xF1,0xB6,0x0F,0x47,0x5E,0x16,0xA7,0x06,0xD4,0xE9,0xA6,
+0x39,0xF4,0x28,0xE7,0x18,0x3F,0x57,0x87,0xD3,0xBB,0x46,0xFA,0xB2,0x6E,0x08,0xE5,
+0x5B,0x51,0x9B,0x17,0x9D,0x00,0x4B,0xE1,0x66,0xD4,0x33,0xE4,0xA8,0x98,0xF8,0x1E,
+0x54,0xB8,0xE9,0xB5,0x36,0x6C,0x73,0x6A,0xDE,0x27,0x2E,0x43,0xDC,0x89,0x6F,0x2E,
+0xDD,0x97,0xE2,0x61,0x00,0xAD,0x02,0x99,0xD8,0x06,0xB8,0xF1,0x5A,0x1B,0xDA,0x98,
+0x88,0xE5,0xEF,0xAC,0xF2,0xFA,0xC6,0x6C,0x0B,0x3F,0xF9,0xA6,0x74,0xBD,0x6B,0x6F,
+0xB6,0x6E,0xB4,0xD9,0x8F,0x49,0x5F,0xB3,0x1F,0x1F,0x9E,0x59,0xB4,0xFB,0xA2,0x09,
+0x06,0x12,0x06,0x1B,0x34,0x0B,0xAA,0xE9,0x0F,0x83,0xDF,0x30,0x83,0x2F,0x19,0x98,
+0x17,0x6E,0xEF,0x19,0x9A,0x86,0xF3,0x0E,0x3E,0xDB,0x0D,0x25,0x07,0x77,0x29,0xDF,
+0x2D,0x23,0x53,0x02,0x1E,0xBB,0xC4,0xDC,0x01,0xF2,0x70,0x5D,0xA5,0x29,0xE7,0xDE,
+0xA8,0xF6,0x44,0x43,0x6B,0x6F,0xCD,0x5C,0xCB,0xDA,0x37,0x52,0x61,0x42,0x96,0x58,
+0x83,0xA7,0xCF,0x76,0x25,0x62,0xCF,0x90,0x96,0x26,0x05,0xB4,0xD8,0x74,0x1D,0x44,
+0xB4,0x6B,0x11,0x49,0xF9,0x0A,0xE9,0x6D,0x96,0xBA,0x1D,0x11,0xEC,0x6A,0x22,0xAF,
+0xD8,0x12,0x5E,0x27,0x9C,0x2C,0x25,0xF9,0x82,0xA0,0x53,0x93,0xA7,0xFD,0x69,0x30,
+0xAB,0x79,0xEF,0x7B,0xDA,0x40,0x9E,0xA7,0x5A,0xEE,0xC9,0x37,0x91,0xF7,0x90,0x43,
+0xC3,0x8C,0xBB,0x3C,0x5B,0x36,0xA9,0x94,0xFF,0xE4,0xB3,0x88,0x52,0x7E,0x1B,0x04,
+0xD9,0x80,0xA2,0xF1,0x40,0x25,0x84,0x63,0x25,0x12,0x1E,0xBC,0xE3,0x22,0xF1,0x20,
+0x21,0xE2,0xBE,0x14,0x3F,0xD0,0xA0,0x40,0xBD,0x54,0xCF,0xD7,0x7D,0xDB,0xAF,0x9E,
+0x01,0xDD,0xFE,0x1B,0xDE,0x27,0xA9,0x70,0xCE,0xE1,0xF5,0x9C,0xF4,0x5F,0x37,0x33,
+0x08,0xEC,0x40,0x03,0xF4,0x1A,0x5A,0x27,0x76,0xF1,0x5C,0x3D,0x60,0x28,0xE8,0x37,
+0xC8,0xC5,0x11,0x59,0x43,0xA6,0xBF,0x6B,0x00,0xE0,0xE8,0x12,0x63,0x60,0x97,0x7C,
+0x64,0x4C,0x9F,0x47,0x56,0x82,0x04,0x77,0x50,0x9C,0x71,0xD9,0x2E,0xC4,0x6B,0x26,
+0x7F,0x5A,0x64,0x11,0xD7,0x52,0xCA,0xB6,0xE6,0x18,0x93,0xDA,0x4A,0xD2,0x44,0x7D,
+0xDA,0x15,0x3C,0x4C,0x39,0x03,0xE1,0xAD,0xDE,0x19,0xFC,0x0A,0xA8,0xB9,0xE4,0x8D,
+0xA2,0xF6,0x30,0xC2,0x25,0x09,0x41,0x07,0x1C,0x3C,0x32,0x48,0xE1,0x44,0xA7,0x7F,
+0x2A,0x98,0x23,0x6A,0x0D,0x34,0xBB,0x21,0x68,0x5A,0xCC,0xB2,0x6A,0x80,0x7C,0xB3,
+0x9D,0x93,0x3E,0x6E,0xF7,0x3B,0xA9,0x91,0x8B,0xB1,0x13,0x0E,0xA9,0x78,0xF5,0x93,
+0x4C,0xE0,0xA1,0xAB,0x6E,0x0F,0xBC,0xCF,0x36,0x1F,0x90,0xC6,0x0F,0x68,0xA8,0x40,
+0x51,0xF8,0xD3,0x2A,0xDC,0x0C,0xA9,0x23,0xB8,0x8D,0xB2,0x91,0xD3,0x35,0xB5,0xD7,
+0xCA,0xD4,0x17,0x7A,0x8E,0x47,0x80,0x7F,0x9F,0x81,0xB7,0x6D,0x2B,0x12,0x7C,0xD3,
+0x9C,0xD1,0xD8,0x65,0x9D,0x02,0xBA,0xFE,0xE4,0xEC,0x6B,0xBE,0xB5,0x07,0xE2,0x6D,
+0x85,0xAC,0x06,0x06,0xFD,0xB5,0x6A,0xAC,0x7F,0x66,0xA7,0x32,0x2B,0x23,0x15,0x92,
+0x99,0x56,0x5D,0x5D,0xB5,0xD1,0xD8,0x25,0x6D,0xA0,0xA9,0x63,0x3E,0xE9,0xBC,0x60,
+0xAF,0x9A,0x40,0xE1,0x55,0xCB,0xF6,0x3B,0xA0,0xCF,0x14,0x99,0xCC,0x20,0xFD,0x71,
+0x5D,0x76,0x37,0x1D,0x47,0x72,0x08,0x99,0x0C,0x93,0x4E,0xA2,0x3B,0xF8,0xD6,0x3A,
+0xB1,0x38,0xBE,0x35,0xB8,0xBA,0x21,0xDF,0x49,0xEC,0x8A,0x57,0x3B,0x5A,0x21,0x13,
+0xFE,0x76,0x9A,0x78,0x4C,0xED,0x19,0xF9,0x27,0xD6,0xC1,0x04,0x00,0xE2,0x52,0x73,
+0x4B,0xD7,0x73,0x71,0x9D,0xF3,0xDD,0xE9,0x7C,0x36,0xA3,0x28,0xFC,0x11,0x06,0x1C,
+0xE7,0x15,0xAA,0x5C,0x01,0x45,0xCD,0x20,0x99,0x78,0x66,0x68,0x70,0xBE,0x00,0xB1,
+0xD2,0xF4,0xF0,0x10,0xAD,0xC8,0x0C,0x24,0x89,0x0F,0x0A,0x8C,0xE3,0x63,0x92,0xD4,
+0x22,0x34,0xE0,0x7E,0x7F,0x98,0xCE,0xBE,0xDD,0x9F,0xF4,0x6C,0x03,0xEF,0x11,0x84,
+0xB1,0x8A,0xE6,0xEA,0x86,0x9B,0x95,0xC7,0xAD,0x44,0x85,0xA2,0xB5,0xDF,0x8F,0x09,
+0x48,0x6C,0xD0,0xF5,0xC1,0x03,0xA8,0x37,0xF6,0x8E,0x3B,0x74,0x9E,0xF3,0x30,0x67,
+0x8D,0xD6,0xC5,0xCD,0x64,0x39,0x89,0x67,0x9A,0x68,0xF1,0xA4,0x98,0xBB,0x24,0xC5,
+0x6A,0xB1,0xA8,0x88,0x0F,0xF5,0xEA,0x76,0xB6,0xE6,0x80,0x05,0x96,0xBA,0x85,0xD4,
+0xEB,0x7C,0xC0,0x85,0xAF,0xFB,0x53,0xD5,0xCC,0x5C,0x0F,0x2F,0x1A,0xA3,0x84,0xF5,
+0x7A,0xE2,0xA4,0xDA,0x07,0x66,0x64,0xEE,0xDA,0x7E,0x76,0x8A,0x41,0x47,0x49,0xE7,
+0xFF,0x4C,0x7F,0xDC,0xF7,0xDD,0x84,0x30,0xA6,0xE0,0xC9,0x38,0xC4,0x78,0x01,0xC2,
+0x55,0x40,0xCF,0xA2,0x34,0x52,0xA1,0xF1,0x71,0x43,0x21,0x18,0x1C,0xFE,0x92,0xA4,
+0x8B,0x6F,0x68,0xE8,0xF0,0x92,0x36,0x1E,0xD8,0x5E,0x8A,0xAD,0xEB,0xF9,0xEA,0xDE,
+0x50,0x05,0x32,0x4A,0x19,0x41,0x43,0xA9,0xD7,0xBA,0x6C,0x40,0xEA,0x89,0x5F,0xA3,
+0xE9,0x30,0x7D,0x0C,0x31,0x91,0x3C,0x51,0x6D,0x9B,0x23,0xAE,0xA2,0x93,0xF7,0xEB,
+0x2F,0x49,0xF6,0x06,0x19,0x94,0x37,0xC0,0xB0,0x7D,0x62,0xEF,0x3F,0x34,0x23,0xAF,
+0xAF,0xF3,0xE6,0x77,0xEC,0xCC,0x06,0x16,0xAF,0xE8,0x5C,0x94,0xD0,0x1B,0x13,0x90,
+0x5E,0x9A,0x35,0xF0,0xF8,0x46,0xE4,0xAA,0x08,0xB1,0x69,0xE3,0x08,0xBF,0x5B,0x90,
+0x97,0xE2,0xCE,0x7F,0x53,0xE5,0xAD,0xE5,0xE6,0x60,0xE6,0x1D,0x81,0xA2,0x8D,0x16,
+0xA9,0x21,0xF5,0xAC,0x3A,0x56,0x99,0x03,0x8F,0x36,0x81,0x72,0x6A,0xE4,0x50,0xBF,
+0x4B,0xD1,0x65,0x38,0x5F,0x73,0x7D,0x31,0x4A,0x4F,0x31,0xB6,0x7A,0x96,0x9D,0x54,
+0xC2,0xD6,0x25,0xCD,0x46,0xB2,0x0A,0x5E,0xB2,0x02,0xA7,0x9B,0x7B,0x04,0x19,0xE5,
+0x26,0x48,0xCF,0x64,0x67,0x20,0xC1,0x59,0xEC,0x69,0x59,0xFD,0x29,0x71,0xF8,0xC3,
+0x44,0x20,0xBE,0xC2,0xAD,0x1F,0xF8,0xDC,0x80,0x6B,0x2C,0xE9,0xDC,0x87,0x62,0xFD,
+0x90,0x5D,0xBA,0xE2,0xA3,0x7E,0x7F,0x36,0x44,0x2D,0x9E,0x59,0x80,0x11,0x28,0xC2,
+0x64,0x84,0x6A,0x45,0x4C,0xEE,0xD6,0x9E,0x35,0x95,0x09,0xFE,0xCB,0xCB,0xAD,0xB9,
+0xC1,0x00,0x38,0x4D,0x3C,0xED,0xB8,0x41,0x9C,0x47,0xF0,0xE0,0xA1,0x65,0xAD,0x1B,
+0xB5,0x80,0xB0,0x76,0xC8,0x88,0xC9,0x37,0xF1,0x8C,0xD9,0x76,0xDB,0xD8,0x8C,0x38,
+0xA0,0x65,0x21,0xC3,0xB0,0x84,0x48,0xFA,0x99,0x66,0xFA,0x35,0x85,0x49,0xF2,0x62,
+0x4A,0x31,0xDA,0x9C,0x28,0xDA,0x3F,0xBE,0x35,0x4F,0x06,0x45,0x5D,0x4F,0xB4,0x66,
+0xB3,0x56,0x53,0x40,0xC9,0x2E,0x30,0x6F,0x13,0xBF,0xCA,0xAF,0x3A,0xFC,0x13,0xFE,
+0x7C,0x5A,0xFF,0x1B,0x62,0xC3,0x8F,0x6E,0x9C,0x23,0x07,0xF1,0x69,0x57,0x2F,0x97,
+0x8E,0x00,0xDA,0x0C,0x0E,0x00,0x54,0xD7,0x16,0x53,0xD1,0x93,0xA3,0x27,0x99,0xA4,
+0xE0,0xDE,0x43,0x18,0xEA,0x72,0xAD,0x9D,0x68,0xE9,0xBE,0xC9,0x84,0x25,0xEF,0x1D,
+0x7B,0x6D,0xD1,0x50,0xEF,0x9D,0x94,0x54,0xBF,0x28,0x6E,0x8D,0x9F,0xDB,0xF6,0x9D,
+0x60,0x3C,0xFF,0xF8,0x3A,0x4D,0x67,0x0C,0xF7,0x53,0x8C,0xA6,0x8C,0xCD,0xCB,0xD7,
+0x17,0x23,0xE7,0xF5,0xEA,0x05,0x48,0x14,0x6D,0x3C,0x43,0x83,0x5B,0x37,0xD5,0xB0,
+0xD7,0x1A,0x8C,0x0F,0x0B,0xB9,0x4A,0x57,0x71,0xA8,0xF7,0x0C,0xEF,0x7F,0x39,0x4C,
+0x3E,0x6C,0xA2,0x29,0x20,0xCF,0xFA,0xBA,0x83,0xF5,0xD0,0xD9,0xF6,0xC4,0xFA,0xC9,
+0x1E,0x7B,0x35,0x4C,0x56,0x38,0x0C,0xB0,0x33,0x34,0xEA,0x67,0xE0,0x40,0x42,0xAC,
+0xDC,0xDD,0xD9,0xF8,0x88,0x29,0xCA,0x51,0x8C,0x75,0xAC,0x60,0x3D,0x61,0x37,0xE2,
+0xC6,0x3E,0x2C,0xCB,0x19,0x3A,0xAA,0x47,0x44,0x1D,0x01,0xA6,0x6F,0x3D,0x91,0x9D,
+0xC7,0xE0,0x13,0xF8,0x4D,0x33,0xBE,0xFC,0x25,0xF1,0x4C,0xA2,0xC8,0xE2,0xDE,0xF5,
+0xB4,0x1F,0x4C,0x52,0x90,0x5F,0x67,0xF0,0x50,0xCB,0xD6,0x07,0x08,0xE8,0xF2,0x97,
+0x9C,0x12,0x77,0x05,0x99,0x7D,0x66,0x6D,0x18,0x3E,0x1A,0x53,0xA4,0x6B,0xDB,0x55,
+0xAB,0x88,0xF9,0x61,0x07,0x15,0x2D,0x72,0xDE,0xA7,0x02,0x38,0xBA,0x75,0x12,0x20,
+0x32,0xE1,0xE2,0x7C,0x80,0xA4,0xE3,0x3E,0x19,0x61,0x6F,0x61,0x0B,0x36,0x07,0x98,
+0xB7,0x6C,0xE3,0x2C,0xFB,0x70,0x54,0x3D,0x5D,0x61,0x28,0x46,0xFA,0x5D,0xC1,0xF8,
+0x19,0x7E,0x83,0x55,0x2C,0x14,0x1E,0xB3,0x88,0x48,0xC0,0x3E,0x6A,0x30,0xD3,0xAC,
+0x08,0x6D,0x67,0x29,0x48,0x99,0xE0,0x5D,0x88,0x05,0x12,0x3E,0x62,0x68,0x27,0xCE,
+0x54,0x92,0x51,0x69,0x91,0xEC,0x4A,0x44,0xF5,0x60,0xBC,0x31,0xC3,0x0E,0xDD,0x3D,
+0xF8,0xD2,0xE5,0x14,0x9C,0x5A,0x4F,0x7C,0xC8,0x42,0x79,0xEF,0x81,0xA1,0xA1,0x6E,
+0xAE,0x79,0xC1,0x04,0x36,0xA5,0x7D,0x44,0xFB,0x06,0x95,0x62,0xDE,0x45,0x46,0xF0,
+0xE1,0x85,0xEC,0x6E,0x2F,0xF2,0x80,0xC2,0xE4,0xCC,0xDE,0xAE,0x12,0xFD,0xB0,0x3E,
+0xB0,0xDF,0xB5,0x9D,0xBD,0xD4,0xDE,0xFD,0xE2,0xA8,0x0B,0xAC,0xA3,0x3F,0x59,0x48,
+0x42,0xAD,0x15,0x78,0x4A,0x6D,0x5E,0x35,0x20,0x2C,0x51,0x85,0xDA,0xE7,0x65,0x23,
+0x9A,0x98,0x95,0x49,0x8E,0xAA,0xDB,0x9A,0x29,0xCF,0xB8,0xBC,0xF8,0x3C,0xDE,0xC8,
+0x86,0xFB,0xF3,0xBF,0xAC,0xCE,0x18,0x2E,0x59,0x00,0xB6,0x8B,0x65,0xF6,0x33,0xD6,
+0xD5,0xAF,0xCE,0x48,0xE1,0x58,0x03,0x3D,0xAA,0xA3,0xA8,0x3C,0xA6,0x0D,0x4B,0x2E,
+0x83,0xB0,0x72,0xEF,0xD3,0x1D,0xFB,0x48,0x49,0x94,0x74,0x9B,0x23,0x18,0x0C,0xED,
+0x53,0x3A,0x2A,0x17,0x62,0x10,0xFF,0x52,0xC1,0xA9,0x8F,0xC4,0xB7,0x77,0x5C,0x91,
+0x4E,0x9D,0x5E,0x54,0xFD,0x13,0x8C,0xF1,0x8D,0x54,0xAD,0xEB,0x81,0x2A,0xBE,0xFC,
+0x35,0x34,0x09,0xCA,0x2F,0x2B,0xE5,0x37,0x89,0xE3,0xD3,0xA3,0xA2,0x9F,0xAA,0x35,
+0x82,0xB0,0x90,0x95,0x4B,0x24,0x26,0xF8,0x4D,0x6A,0x0C,0xDC,0x8F,0x67,0x43,0x9D,
+0xC5,0xD1,0xBF,0x5C,0x1C,0x1C,0xF3,0x26,0x11,0x2A,0xE3,0x76,0xB4,0xA6,0x98,0x22,
+0xBD,0x7C,0x91,0x7D,0x79,0x16,0x1B,0xB5,0xC4,0x38,0x2D,0x31,0x41,0x5B,0x6A,0x70,
+0xF7,0xCF,0xE5,0x71,0xF6,0x0B,0xCD,0xC1,0x3E,0xDE,0x30,0x84,0xE8,0x0C,0xFF,0x05,
+0xED,0x71,0x34,0x95,0x20,0x18,0xA8,0xD3,0x07,0x90,0x9D,0x83,0xE1,0x50,0x96,0xED,
+0x2F,0xDE,0x5C,0x75,0x61,0x09,0x78,0xAE,0x8C,0x8C,0xDB,0x1D,0xDC,0x71,0x8E,0x84,
+0x0F,0x83,0x86,0x96,0xD4,0xFE,0x84,0xF5,0xAA,0x59,0xE1,0xED,0x7E,0xF5,0x27,0x79,
+0xE6,0xCC,0x06,0xBF,0x5B,0x88,0x6B,0xFA,0x60,0xD2,0xC6,0x69,0x3D,0x4E,0xBF,0x6B,
+0x26,0x55,0x84,0x1C,0x7B,0x34,0xE0,0x2C,0xDE,0xBE,0x72,0x25,0x11,0x06,0x54,0x5E,
+0x51,0xAB,0x43,0x61,0xF8,0x7C,0x16,0x72,0x7D,0x00,0xBD,0x36,0xA1,0xFC,0x71,0xA5,
+0x4A,0x20,0xA2,0xB8,0xA4,0xAC,0x1C,0x0E,0x4C,0xF0,0x5F,0xCC,0x7D,0xEA,0x4A,0xDB,
+0x39,0xDB,0xF8,0xD2,0x63,0xA8,0xF9,0xA6,0xCF,0x43,0x23,0x14,0xDD,0x59,0xF0,0xAC,
+0x28,0xA8,0x29,0xCC,0x92,0x25,0xA3,0x0D,0x8F,0x3F,0xF1,0x96,0x81,0x01,0x34,0xF5,
+0x86,0x68,0x13,0x77,0x1D,0x41,0x7E,0x4E,0x9B,0x2B,0x19,0xBC,0xD7,0x6C,0x9B,0x82,
+0x03,0x37,0x9F,0x6D,0x19,0x95,0xF7,0xE0,0xEF,0x80,0x5E,0xD0,0x02,0x07,0xA4,0x0E,
+0x9A,0x58,0x18,0xA0,0xD0,0x24,0x88,0x2A,0xB6,0x17,0x33,0x2D,0x12,0x44,0x9B,0xB9,
+0xAD,0xB7,0x4F,0xDB,0x68,0x4C,0xAB,0x0C,0xF9,0xFF,0x2B,0xEC,0x97,0x5A,0x36,0xAF,
+0x85,0x45,0x73,0x65,0x0D,0x6E,0xE4,0x6A,0x51,0x8E,0xE7,0x05,0xD2,0xD9,0x38,0xD7,
+0xF6,0x92,0x60,0x7F,0xA9,0x02,0xCA,0xD0,0x0B,0xBD,0x7D,0xB1,0xD2,0xD3,0xCF,0x6A,
+0xB7,0xCB,0x13,0x1A,0x71,0xFF,0xE6,0x05,0xD6,0x3D,0x87,0x66,0xFF,0xC7,0xCE,0xC9,
+0xAB,0x84,0x91,0x55,0x68,0x9B,0x64,0x72,0x4C,0x4E,0x89,0xD2,0x39,0x0D,0x62,0x82,
+0x73,0xB4,0xAC,0x7D,0x8E,0x5C,0x58,0x1A,0xE3,0x26,0x60,0x01,0x9A,0xD6,0xF1,0xD1,
+0x81,0x93,0xA3,0x80,0x66,0xE5,0x56,0xF8,0x79,0x73,0x3A,0xDD,0xCC,0x0E,0x1C,0xD2,
+0xD0,0xFC,0xD0,0xC1,0x23,0xC3,0x8A,0x9E,0x1D,0x91,0xEF,0x83,0xB7,0xCC,0x58,0x1C,
+0x9F,0x9A,0x52,0x19,0x95,0x94,0x4F,0x1D,0x6B,0x19,0xA4,0xC2,0xB7,0x74,0xAE,0x11,
+0xC9,0xCB,0x7D,0xA9,0x30,0x6B,0xAB,0x04,0xDF,0x0F,0x48,0xA0,0x70,0x90,0x5A,0xA5,
+0x65,0x18,0xA0,0x65,0xE6,0xDD,0x6F,0xC8,0xEA,0x5E,0x8D,0x78,0xE7,0x3F,0xAB,0xB7,
+0x8C,0xD9,0xED,0xD9,0xC7,0x27,0x53,0x56,0x5C,0xF4,0x1C,0xF9,0xE0,0x6A,0xBD,0xA3,
+0xF4,0x8B,0x7F,0xCF,0x3F,0x2D,0xA7,0x0A,0x3D,0x2B,0xD2,0x69,0x1D,0x97,0x47,0x40,
+0xB3,0x28,0x88,0x69,0x7E,0x15,0x34,0x49,0x73,0xFE,0x3D,0x00,0x16,0x56,0x44,0x25,
+0x04,0x86,0x3B,0x6E,0xC1,0x1A,0x4F,0x2B,0xFB,0x38,0xE2,0xCA,0xD2,0xAE,0x91,0x07,
+0x7F,0xF9,0x1A,0x1B,0xF9,0x22,0x90,0x97,0xA2,0xB6,0x9C,0x5A,0xBF,0x1B,0x47,0x19,
+0x62,0x9A,0xBC,0xCF,0x39,0x21,0xCF,0x21,0xC4,0x77,0xBE,0x52,0x8E,0x46,0xCA,0xFE,
+0xB2,0x4C,0x13,0xC1,0x40,0x2C,0xC6,0xF9,0x7F,0xF4,0x45,0xB0,0x39,0x29,0xCF,0xB9,
+0xE4,0x28,0x52,0x06,0xA3,0x69,0xDF,0xAA,0xCA,0x47,0x99,0x7C,0x9B,0x3C,0x6C,0xDD,
+0x4B,0xC5,0x46,0x87,0xC1,0x57,0x26,0x56,0x49,0x73,0x47,0x06,0x75,0x76,0xEC,0x33,
+0xDA,0x26,0xC3,0x93,0xD4,0xCA,0x02,0x35,0xA7,0xF1,0x3E,0x2F,0x2C,0x92,0x49,0x54,
+0x5B,0xF4,0xDE,0x55,0x4E,0xC4,0xFC,0x60,0x22,0x01,0xB1,0x7F,0x53,0x8B,0x5D,0x90,
+0xBC,0xDE,0xB3,0x34,0x17,0x08,0xE7,0x2A,0xAA,0x20,0xC0,0xF7,0x91,0x8A,0x29,0x74,
+0x79,0x3F,0x43,0x50,0x80,0x32,0x8D,0x12,0x7F,0x3C,0x0A,0xFE,0x4C,0xC2,0xFF,0x34,
+0x80,0x2C,0x62,0xC5,0x9B,0xAA,0xA3,0xDB,0x40,0x19,0xB4,0xD8,0xFC,0xEE,0xEA,0xAA,
+0x13,0xEA,0xBD,0x09,0x3A,0xA9,0x3E,0xB2,0x72,0xF5,0xC5,0xC8,0x76,0xDE,0x8D,0x57,
+0xE3,0x89,0x7B,0x8E,0x8F,0xF9,0x03,0xDC,0x9B,0x9C,0x3B,0x39,0x4C,0x52,0x6B,0x06,
+0x6F,0x64,0xE4,0x7A,0xD9,0x77,0x5C,0x0F,0xDB,0x49,0x58,0xD7,0x0B,0x8E,0xEE,0x7D,
+0x9E,0x2D,0x70,0x39,0xFF,0xFD,0x02,0xDA,0x2B,0x6D,0x6D,0x4F,0x07,0x2A,0xA6,0xB5,
+0x1E,0x00,0x7B,0x21,0xE7,0xA5,0xD6,0x3A,0x68,0x00,0x53,0xBA,0xB9,0x05,0xAE,0x96,
+0xD8,0x60,0x2E,0x42,0x18,0xA0,0x79,0x76,0xB3,0x12,0x12,0x92,0x6B,0xA2,0x67,0x57,
+0x61,0x5E,0xB6,0xFD,0x21,0x70,0x38,0x14,0x4E,0x32,0x5D,0x19,0x84,0xB8,0xAC,0x62,
+0xBA,0xDE,0xE4,0x1E,0x3B,0xA3,0x41,0xB6,0xC3,0xE7,0xBB,0xEB,0xCB,0xC8,0xC5,0x25,
+0x64,0x25,0x48,0x30,0x4E,0x63,0x05,0x03,0x17,0x44,0x10,0xE8,0x75,0xCF,0xF9,0xF0,
+0xCE,0x6A,0x3B,0xD5,0xEA,0xEC,0x3F,0xB0,0xA9,0x16,0xF8,0xB6,0xA5,0x49,0x8D,0xD5,
+0x55,0xB8,0xD7,0x99,0xF7,0xDF,0x15,0x88,0x7A,0x7A,0x38,0xBB,0xD2,0xFA,0x67,0x16,
+0xA1,0xA2,0xB2,0x02,0x83,0x4F,0x9B,0xC0,0xCB,0xC7,0xAF,0x80,0xD0,0x20,0x6B,0x06,
+0x75,0x99,0x49,0xDF,0xAE,0x2E,0xE9,0x53,0x2A,0x19,0x1D,0xEE,0x8F,0xB6,0xE3,0x93,
+0x17,0xAF,0x9B,0x66,0x08,0x11,0x4D,0x30,0xF0,0xAA,0x68,0x22,0xE3,0x40,0x6D,0x00,
+0xF3,0x30,0xD7,0xEF,0xA2,0x83,0x19,0xC7,0x08,0x6D,0x96,0x53,0xA2,0x35,0xE2,0x26,
+0x7A,0xF5,0xBB,0x74,0xCB,0x42,0x16,0xAB,0xAF,0xA7,0x00,0x6E,0x16,0xA7,0x4A,0x6D,
+0x98,0xA3,0x79,0x05,0x45,0x67,0x77,0xEE,0xB9,0x4E,0xB0,0x24,0x59,0xD5,0x39,0x2F,
+0xA6,0x5C,0x3A,0x85,0xDF,0xD4,0x12,0x8D,0xB3,0x95,0xD7,0x17,0xE3,0x93,0xCA,0x09,
+0xD1,0x3D,0x9C,0x20,0x4E,0x43,0x86,0xAE,0xB7,0x05,0x8F,0x6E,0xCD,0x14,0x3B,0x13,
+0xBF,0x20,0xCA,0xC5,0x1B,0x31,0x32,0xA8,0x12,0x98,0xE0,0x17,0xBF,0x16,0x98,0x81,
+0x4D,0xB3,0xAA,0x0A,0x10,0xF2,0xD5,0xFD,0xE7,0xF5,0x36,0xA8,0x30,0x66,0x8F,0xB1,
+0x82,0x57,0x48,0xA4,0x67,0x1F,0xF5,0xEB,0xD0,0xA2,0xFB,0xF9,0x4E,0xCD,0x6C,0x2A,
+0x7B,0xEC,0xC9,0x52,0x20,0xEB,0x0F,0x1C,0xC5,0xEE,0x37,0x47,0xF0,0x7E,0x9F,0x0E,
+0x91,0xB5,0xB6,0x25,0xD3,0xB5,0xA0,0x98,0x52,0x83,0xCB,0xA6,0xEC,0x78,0x8F,0xF0,
+0x84,0x32,0xF1,0xBE,0x0F,0xB9,0x2E,0x05,0x27,0xDF,0xE8,0x8C,0x14,0xE9,0x8F,0xF5,
+0xF0,0x8B,0x09,0x48,0xE3,0xDC,0x87,0xAE,0x03,0x5C,0xC1,0x4D,0x90,0x54,0x98,0x1D,
+0x50,0x69,0x4D,0x70,0xA9,0xE8,0x65,0x1A,0x1B,0x46,0xB8,0x53,0xC6,0x0A,0x48,0x9C,
+0xFC,0x2A,0xD2,0x17,0x36,0x5E,0x3D,0xC3,0x87,0x38,0x7D,0x27,0x5C,0xA5,0xE3,0x3A,
+0xAA,0x60,0x78,0xE3,0x60,0xA1,0xB3,0x26,0xD8,0xDC,0x91,0x9E,0x5C,0x41,0x23,0x3B,
+0xE5,0xB4,0xA7,0x97,0x86,0xF6,0x8C,0x14,0xA9,0x78,0xDA,0x15,0x6C,0xF9,0x0F,0xF6,
+0xB4,0xF6,0xBF,0xCE,0xE2,0xD0,0x71,0x59,0x8D,0x0A,0x0F,0xC7,0xCA,0x3B,0x1C,0x48,
+0x46,0x2F,0xEC,0x30,0xAF,0x69,0x7D,0x43,0x2F,0xC7,0x55,0xD3,0xD4,0xE3,0xFE,0x13,
+0x9E,0xDC,0x4F,0xFE,0x6A,0xAE,0x5F,0x10,0x38,0x3E,0xBC,0xE8,0x70,0x38,0xB9,0xC1,
+0x82,0x92,0x2E,0x6B,0x13,0xCA,0xCC,0x75,0x3D,0x90,0xB2,0x9E,0x53,0xF2,0x2F,0xDF,
+0xD1,0xF0,0xD7,0x1E,0x07,0x5C,0xCA,0x0D,0x4A,0xF6,0xAC,0x6A,0x04,0x09,0xBA,0xA1,
+0x87,0x57,0x6B,0xE2,0x2A,0x19,0x84,0x59,0xF3,0xAC,0x70,0xEE,0x59,0x1C,0x93,0xEF,
+0x57,0x4C,0xAD,0xDA,0x55,0x14,0x7A,0xFB,0x2C,0xAD,0x8B,0xCC,0x28,0x73,0xF8,0xBE,
+0x4A,0xC5,0xEB,0x2A,0x14,0x17,0x54,0x02,0xFA,0xCC,0xA9,0x33,0x55,0x2E,0x65,0xDE,
+0x31,0x49,0xD9,0x21,0x61,0x2F,0xA8,0x4B,0xA5,0xE6,0xD7,0xA4,0xC8,0x9B,0x92,0xA8,
+0x86,0x03,0xDC,0x58,0xA6,0x20,0x67,0xE4,0x04,0x49,0x08,0xCF,0x88,0x63,0x7B,0x75,
+0xC1,0x25,0x8F,0x1D,0xD1,0x18,0xCF,0xF2,0x77,0x4C,0xE7,0xD7,0x53,0xA2,0x62,0x2D,
+0xB9,0xDE,0x98,0xC3,0xEA,0x12,0xA0,0x9F,0xDD,0x06,0x29,0x40,0xDE,0x5F,0x17,0x27,
+0x7F,0x87,0x70,0x1D,0xBF,0x99,0xEF,0x8E,0x36,0x48,0x6A,0xA9,0xCE,0xDF,0x33,0x10,
+0x64,0x44,0xD8,0x9F,0x6D,0x49,0x5D,0x96,0x14,0x7B,0x88,0x9F,0x98,0xC9,0x1D,0x84,
+0x13,0x98,0xFC,0x2F,0x68,0x01,0x44,0x02,0xF3,0x57,0x47,0x37,0x4B,0x33,0xE0,0x77,
+0xD3,0x0A,0xAD,0x89,0x46,0xBD,0x02,0x8A,0x00,0x58,0xF3,0x6D,0xDE,0x7B,0xB3,0x43,
+0x3A,0xCF,0xA5,0x1C,0xAC,0xCB,0xA9,0xF5,0x15,0xF3,0xD4,0x7E,0xDC,0xC0,0x38,0x71,
+0x1A,0x83,0x0B,0xBC,0xA0,0x3C,0x78,0xB0,0xCD,0xB0,0xEE,0x41,0x87,0x44,0xAE,0xC3,
+0xD8,0xE5,0xE6,0xD2,0xE5,0x2D,0x4D,0xDA,0xA6,0xB7,0xA8,0x2F,0x18,0x65,0x65,0x79,
+0xC2,0xD8,0xBC,0xE8,0x6C,0x3E,0xEB,0xEB,0x2A,0xCB,0x05,0x5A,0x0A,0x39,0x27,0xF8,
+0xC3,0x0A,0xC4,0xD3,0x19,0x37,0x36,0xB6,0x04,0x43,0x48,0xC5,0x99,0xE6,0xB4,0x11,
+0xB0,0x9A,0x4B,0xB6,0xB8,0x5B,0x70,0xB3,0xF3,0x77,0xD2,0xCC,0x5C,0xEC,0x06,0x17,
+0x98,0x68,0x59,0xBA,0xA2,0x79,0x82,0x30,0x72,0x5C,0x1E,0xC8,0x3A,0x6F,0x0E,0x1A,
+0xAF,0xB4,0x52,0x3D,0xDD,0x11,0xD3,0xEB,0x98,0xA3,0x06,0x77,0xCB,0x71,0xF3,0xF5,
+0x36,0x4D,0xBA,0x52,0x5E,0xA0,0x2B,0x3A,0xC7,0x68,0x6B,0x30,0x6F,0x32,0x93,0x0A,
+0xB3,0x0F,0x3C,0xA5,0x01,0x74,0x59,0x5F,0xA9,0x69,0x2C,0xA8,0xCE,0x59,0x17,0xAA,
+0x1D,0xD0,0x4E,0x6F,0x18,0x10,0x6C,0x43,0x1A,0xD6,0xC4,0x21,0xF5,0x34,0x8D,0x52,
+0x0C,0xDB,0xBD,0xE3,0xAE,0x9D,0xC4,0x1F,0xB5,0x78,0x16,0xBD,0x36,0x6C,0xFD,0xC0,
+0x93,0xB3,0xE8,0x1D,0x7A,0xE1,0xF0,0x9F,0xBD,0x2F,0xE2,0x0E,0x85,0xA6,0x3B,0xBA,
+0xAD,0xFC,0x03,0x35,0x98,0x52,0xB0,0x1D,0x46,0xB5,0x85,0x74,0xC0,0xE0,0x43,0x9A,
+0x4F,0x49,0xB3,0xDA,0xD2,0x77,0xE8,0x48,0x85,0x24,0x35,0xBA,0x85,0x92,0x77,0xB6,
+0xC6,0xAB,0xF5,0xD5,0xF7,0xB6,0x88,0xC1,0x49,0xDA,0xA3,0x40,0x18,0x00,0x3E,0x68,
+0x22,0xCC,0x86,0x86,0xDD,0x24,0x14,0xF0,0xD3,0xD7,0x5D,0xE7,0x5A,0x75,0x31,0x91,
+0x40,0x32,0xBC,0x88,0x4C,0x1B,0xAA,0x7A,0x41,0x4D,0x28,0x78,0x28,0x83,0x12,0xE8,
+0x94,0xFE,0xD2,0x4E,0x02,0x7A,0x89,0x50,0xD5,0x18,0x9A,0x83,0x46,0x15,0x2B,0x73,
+0x60,0xA6,0x78,0x70,0xFC,0xEA,0x9D,0x4A,0xBB,0xE7,0x0D,0x7C,0x0C,0xCF,0x4E,0x12,
+0xC5,0x41,0x81,0x32,0x27,0xE9,0x23,0x79,0xC1,0xC4,0xF4,0xEA,0x27,0x61,0x62,0x74,
+0xB1,0x2B,0x97,0x02,0xA9,0x8C,0x81,0xF1,0x42,0x29,0xDD,0x8C,0x7C,0xDC,0x15,0x7A,
+0xA4,0x2C,0x53,0x6F,0x49,0x80,0x48,0x6B,0xE5,0xCA,0xFE,0x08,0x80,0x4D,0x35,0x55,
+0x4E,0xBD,0xE0,0x33,0xA5,0xDE,0xF4,0xE4,0xF1,0x2D,0x02,0x5A,0xDB,0x4B,0xBA,0x73,
+0xB7,0xA7,0x04,0xFA,0xAB,0x2A,0x1D,0x49,0xB9,0x58,0xCE,0x1D,0xFF,0xF8,0x9C,0x65,
+0x78,0x0A,0x27,0x5F,0xDB,0xC7,0x6A,0x6A,0x92,0x11,0x03,0x84,0x29,0x53,0x6B,0xC7,
+0x8A,0xDD,0x72,0xE4,0x8B,0x04,0x35,0x1F,0x39,0xD9,0xD5,0xC8,0x3B,0x23,0x9D,0xDA,
+0xE4,0x15,0xA8,0x5C,0x0D,0x76,0x02,0xDB,0xBE,0xBF,0xBA,0x7A,0x9F,0x21,0xB6,0xEE,
+0xD6,0xE8,0x0E,0x53,0xEB,0xCC,0xEF,0x21,0x92,0xF8,0x0E,0xD8,0x72,0x67,0x71,0x6D,
+0x26,0x9D,0x3B,0x8C,0xD6,0x9C,0x4E,0xFB,0xD2,0x30,0xF0,0x8F,0xE9,0xEB,0x74,0x1F,
+0xB5,0x70,0xF3,0xC8,0xAD,0x9F,0x26,0xCA,0x71,0x3E,0x81,0x7D,0x92,0xDB,0xF8,0xC8,
+0x4C,0xE1,0x67,0x2E,0xB6,0x07,0x33,0x5A,0x37,0x4A,0x3F,0x73,0x2F,0xF7,0xD1,0x08,
+0x89,0x87,0xD6,0x91,0xA1,0x3D,0x59,0xBE,0x48,0x52,0xF5,0x78,0xE9,0xBF,0x37,0x1A,
+0x6E,0x29,0x05,0xE7,0xF3,0xF1,0x49,0xE6,0xE0,0x89,0x84,0x7F,0xEF,0xBE,0x68,0xC5,
+0xEF,0xC1,0x8B,0xF6,0xEF,0xFF,0xBB,0xE3,0x47,0xFA,0x0B,0x5C,0xA3,0xA7,0x39,0x23,
+0x7E,0xE7,0x68,0x57,0x02,0x62,0x18,0xD7,0x43,0xCE,0x72,0x0A,0x8F,0x43,0xE4,0x71,
+0xFB,0x56,0xD0,0xA6,0xE8,0xD9,0xFF,0x32,0xEA,0x3C,0xCD,0x98,0x1C,0x7C,0x7C,0xA5,
+0x51,0x9D,0x1D,0x80,0x45,0x56,0x38,0x3D,0x9C,0x54,0x25,0xFF,0x3B,0xFA,0x08,0x43,
+0x8F,0x5A,0x59,0x66,0xFE,0x96,0x38,0x88,0xF2,0xBB,0x8E,0x4D,0x6A,0xFD,0x22,0x49,
+0x54,0x74,0x65,0xC6,0xB5,0x45,0x36,0x17,0xC0,0xFD,0x68,0xAC,0x05,0x8D,0x00,0x84,
+0xED,0xB8,0x96,0x25,0x1F,0x95,0x0F,0xF2,0x85,0x19,0x27,0x4B,0x06,0x97,0x84,0x32,
+0x2B,0x29,0x8B,0xDF,0x9C,0x90,0x37,0xD1,0x1A,0x75,0x66,0x51,0x3A,0x30,0xDE,0x98,
+0xAB,0xAE,0xD9,0x87,0x02,0xC8,0xB9,0x03,0xDE,0xB9,0x58,0xAA,0xB5,0x1F,0x67,0x41,
+0x5A,0xBE,0x49,0x89,0x6F,0x42,0xF9,0x9F,0x52,0x0C,0x6D,0x64,0xB9,0xBB,0xAA,0x7C,
+0xBC,0x80,0x53,0xDB,0xEC,0xC4,0x50,0xB9,0x82,0x39,0x76,0x64,0x7D,0xC6,0xF7,0xF7,
+0x7A,0xE9,0x75,0x24,0x02,0xC1,0xF3,0x49,0xD0,0x13,0x37,0x16,0x1E,0x61,0x5B,0xBC,
+0xFA,0xE5,0x03,0xCC,0x59,0x99,0x04,0xA3,0xBD,0x3D,0x09,0x36,0x79,0x4E,0x88,0x74,
+0x0B,0x01,0x70,0x41,0xA7,0x13,0x48,0x98,0x90,0xE1,0x3C,0x2A,0x34,0xEA,0xDC,0x76,
+0xAA,0x5E,0xA9,0xED,0x30,0x88,0xBC,0xD8,0x28,0xCE,0x9C,0x3E,0x61,0x2D,0x56,0x03,
+0x00,0x24,0x28,0xB4,0xD9,0x07,0x88,0xAD,0x70,0x58,0x74,0xDB,0x6A,0xAB,0x54,0xF9,
+0xDE,0xF3,0xFF,0xDC,0xAE,0xC7,0x51,0xAD,0x91,0xB1,0xDF,0x24,0xAE,0xAC,0xE8,0x9A,
+0x05,0x54,0xCF,0xCD,0xD4,0x14,0x1D,0x1C,0x5B,0xEE,0x39,0x0B,0x30,0xDC,0x1B,0x03,
+0xD8,0xE5,0x28,0x05,0x71,0x6C,0x93,0xF7,0xCD,0x67,0xA4,0xE7,0xB9,0xEE,0xB0,0xE7,
+0x3F,0x59,0xE2,0xE7,0xEE,0xA0,0x72,0xB7,0xD4,0x69,0xD5,0xD2,0x73,0xEF,0x22,0xE9,
+0xBE,0x7F,0x94,0x90,0x05,0xAE,0xB9,0x14,0x7E,0x5C,0x5A,0xE0,0x54,0xF6,0x34,0x32,
+0x2F,0x24,0x99,0x1E,0xBE,0x33,0x57,0xAE,0xC9,0xE7,0x23,0x4C,0x85,0x12,0xDA,0x26,
+0x87,0x0A,0x90,0xE7,0x68,0x9D,0xF4,0x5F,0x86,0xA2,0x5F,0x08,0x80,0x36,0xA4,0x98,
+0x77,0x15,0x4E,0x60,0x3A,0xCD,0xAB,0xD0,0x67,0x96,0xA1,0x2D,0x79,0xBA,0x5B,0x7D,
+0xE4,0x63,0x1D,0xF1,0x5E,0xCE,0xD1,0x74,0x67,0x86,0xD0,0x11,0xC1,0x8A,0xFB,0x8B,
+0x1D,0x8D,0x81,0xF8,0xA4,0x56,0x3B,0x19,0x6E,0xF1,0x6E,0x14,0x25,0xA6,0x1D,0xBD,
+0xE6,0xCA,0x67,0x38,0x7F,0x7B,0x43,0xB4,0x4D,0x66,0x9F,0xAD,0xEE,0xA9,0x5F,0xF3,
+0x29,0x76,0x54,0x63,0xDE,0x96,0xE5,0x2B,0x14,0xC9,0x52,0x68,0x2C,0x02,0x3A,0x15,
+0xDB,0xC8,0xFA,0x48,0x5E,0x55,0x7E,0x87,0x08,0x64,0x84,0x40,0x52,0x72,0x42,0xB8,
+0xB5,0x4A,0xD0,0x6B,0x8D,0x27,0x10,0x9E,0x1E,0xB4,0xEB,0xDC,0xF8,0x70,0xA5,0x52,
+0x94,0x73,0xD1,0x7A,0x48,0xB8,0xAE,0x8B,0xF0,0xF3,0xA5,0x36,0x2D,0x30,0xBF,0x43,
+0xE0,0xFB,0x71,0x88,0x40,0xDD,0xA5,0xB9,0x54,0xC4,0x8C,0x72,0x3F,0x8D,0x7A,0x48,
+0xF5,0xB7,0x58,0x6E,0xF6,0xD1,0x78,0x0F,0xBF,0xE6,0xAF,0x2D,0x8F,0x1C,0x62,0xE9,
+0x1F,0x9E,0x07,0x11,0x22,0x8F,0xDE,0xB2,0x10,0x2D,0x53,0x72,0x88,0x1A,0x09,0x3B,
+0x73,0xDF,0xCA,0x7E,0xE4,0x75,0x6D,0x7C,0x4B,0x93,0x0C,0xF8,0xBC,0x24,0x0C,0x33,
+0x11,0x83,0x20,0x47,0xC4,0x4A,0xF3,0x35,0x60,0x1C,0x79,0x0D,0x0B,0xD2,0xDF,0x34,
+0xC5,0xFA,0x76,0xB3,0x34,0x2B,0xAF,0xA4,0x07,0x6A,0xCB,0x10,0x53,0x44,0x2C,0xEA,
+0x31,0x7B,0xDD,0x3C,0x4F,0xBB,0xEC,0x3B,0x73,0x26,0x5C,0x6E,0x10,0x9E,0x32,0xE1,
+0xC2,0x7D,0xF7,0xEA,0x16,0xB0,0xB4,0x3A,0x7C,0x94,0xB3,0x1A,0x65,0xF7,0x57,0xE6,
+0xFC,0x98,0xDC,0x48,0x2E,0x03,0x03,0x7E,0xA7,0x2E,0xD4,0x34,0x24,0xB1,0x91,0xE5,
+0x1E,0xFE,0xE1,0x95,0xD7,0x26,0x2B,0x30,0x5D,0x00,0x64,0x60,0x21,0xC3,0x58,0x1B,
+0x97,0x82,0x53,0x34,0x81,0xE7,0x44,0x4C,0x62,0x5B,0xF2,0x3F,0x61,0x51,0x1C,0x0A,
+0x67,0x41,0x71,0x07,0x58,0xF1,0x4D,0x6D,0xA3,0x99,0x3A,0xA3,0xAE,0x63,0x85,0x44,
+0xE2,0xC2,0xF9,0xD0,0x4F,0x25,0xAA,0xE2,0x1E,0x97,0x7D,0xB6,0xC5,0x08,0xA6,0x5B,
+0x4C,0x45,0xC2,0x43,0x66,0x41,0xAC,0xF4,0xE9,0xFC,0x95,0xD4,0x15,0x65,0x77,0x1E,
+0x5D,0xFE,0x12,0x0E,0x03,0xCC,0x87,0x84,0xBE,0x4A,0x47,0xA8,0x23,0x3D,0xF7,0x27,
+0x92,0xCC,0x93,0x45,0x65,0x66,0x73,0xBE,0x0D,0x33,0x19,0x80,0x04,0xB7,0xA6,0x9A,
+0xE1,0x4E,0xEB,0xBB,0x01,0x0A,0x98,0x43,0x30,0x05,0x83,0x73,0xA2,0xBD,0xF3,0x2C,
+0xC9,0xAC,0xA5,0xCA,0x80,0x28,0x8D,0x3C,0xCD,0x21,0x4F,0xE3,0x97,0x3E,0x96,0x9A,
+0xFE,0x90,0x0D,0x81,0x47,0x40,0xD1,0x51,0x88,0x6D,0x57,0xDD,0xCC,0x20,0xC5,0x95,
+0x6B,0x14,0xDE,0xC0,0xF4,0x9A,0x67,0x3A,0xEB,0x14,0x85,0x72,0x57,0x91,0xBB,0x92,
+0x4B,0x1B,0x69,0x3F,0x9F,0x6D,0x3A,0xB6,0x5B,0xD5,0xBF,0xCB,0x61,0x15,0xD8,0xDB,
+0x89,0x3D,0x45,0xCC,0x5B,0x7C,0x02,0x5A,0xDE,0x57,0xF9,0x26,0x27,0x34,0xD3,0xA0,
+0x93,0x0C,0xE9,0x5D,0x81,0x6F,0xC2,0xF7,0xF8,0x38,0x54,0xCF,0xD6,0x68,0x62,0x22,
+0x2E,0x66,0x67,0x86,0xB5,0xC8,0x84,0x54,0x61,0x14,0x3B,0x2C,0xD2,0x8E,0xB2,0x4C,
+0x35,0x2B,0x94,0xBD,0x42,0x18,0x19,0xDD,0x4C,0x6E,0xD9,0xDD,0x85,0x98,0x1E,0x56,
+0x42,0x1A,0xAB,0x7E,0x1B,0x50,0x52,0x98,0xEF,0x13,0x16,0xAC,0xC4,0x62,0x38,0x2F,
+0x82,0xD4,0x8C,0xE9,0x9A,0xEC,0x08,0xDC,0xA6,0xB9,0xA2,0x49,0x50,0x2A,0x8F,0x0B,
+0x60,0xE1,0xC8,0x2D,0x86,0x7E,0xF6,0xB7,0x68,0xCD,0x86,0x9E,0x45,0xCA,0x79,0xBE,
+0xD7,0x17,0x4A,0x1E,0x72,0x71,0x58,0x10,0xA1,0xC5,0x59,0xEA,0x00,0x32,0xBC,0x2F,
+0x90,0x57,0xB3,0xA0,0x7E,0x49,0x14,0xBE,0x45,0x02,0xB6,0x4A,0x4B,0xF3,0x35,0x78,
+0xE8,0x68,0x1C,0xDF,0x28,0x43,0xC4,0xED,0x23,0xEE,0x78,0x74,0xCC,0x0E,0xEE,0x97,
+0x80,0x03,0x65,0xCF,0xB8,0x0D,0xB1,0xE3,0x02,0x29,0xFD,0x92,0x8D,0x58,0x39,0x7C,
+0xD6,0x08,0x9E,0xA2,0x5E,0x48,0x98,0x8E,0x57,0x04,0x21,0xE3,0xCB,0x4D,0xFE,0xEA,
+0x06,0x6A,0x60,0x72,0x7B,0x45,0x39,0xA7,0x3F,0x00,0xDA,0xBD,0x6D,0x22,0xB2,0x22,
+0x1B,0x14,0xE6,0x70,0x83,0x46,0x2D,0x3D,0x17,0x97,0xF8,0x55,0x30,0x7F,0x90,0x53,
+0xE5,0x49,0x21,0x38,0x57,0x81,0xF1,0x0F,0x19,0xAB,0x5E,0x15,0xFA,0x6A,0x77,0xDE,
+0x17,0xB6,0x8D,0x88,0xC5,0x38,0xC6,0x66,0x80,0x28,0x04,0xDB,0xF5,0xB2,0x54,0x08,
+0xCF,0x0B,0xC0,0x47,0x33,0xFF,0x20,0x13,0x6E,0xE8,0xED,0xE1,0x3E,0x69,0xE3,0x30,
+0xD3,0x6A,0x8B,0x3C,0x9A,0x9B,0x5A,0x0D,0x12,0xAF,0xE3,0x3E,0x55,0xA3,0xB1,0x16,
+0x01,0x27,0xBE,0xC5,0x1A,0xB9,0xF4,0x29,0x41,0x83,0xE9,0x1F,0x56,0x5B,0x8B,0x45,
+0xAD,0x01,0x66,0x19,0xDC,0x0F,0x8C,0xB8,0xB0,0x89,0x2C,0x18,0x3B,0xF4,0x6B,0x9A,
+0xFB,0x1B,0x58,0xB5,0x03,0xF0,0xD4,0x27,0x28,0x22,0xC0,0xD5,0x3B,0x10,0x74,0x41,
+0xB4,0xB4,0x1A,0x71,0x55,0xA7,0x24,0x93,0x96,0x3E,0x8B,0x21,0x90,0xA8,0xDC,0x8C,
+0x1F,0xD3,0x1F,0xF5,0xCD,0xD7,0x69,0x8E,0xEF,0x80,0xEF,0x35,0xD9,0xA4,0xFC,0x60,
+0x33,0x1E,0x21,0x72,0xBB,0x69,0xA5,0x15,0x32,0xFC,0x77,0x86,0xD4,0x5D,0xF8,0xDD,
+0x03,0xB2,0x52,0x0F,0xCC,0x18,0x3F,0xC2,0x55,0xFD,0x74,0x88,0xF8,0xCE,0x1F,0x27,
+0x8F,0x10,0x7D,0x1A,0xD2,0xE6,0xFC,0x0F,0x7C,0xA4,0x24,0xFB,0xEC,0x3E,0xEB,0x41,
+0xAB,0xCC,0xC2,0x97,0xBF,0x9A,0xF6,0xA2,0xA6,0xB0,0x8A,0xDB,0x5E,0x96,0x89,0xE1,
+0x4F,0xC0,0x5C,0x80,0x5C,0xE3,0x57,0x1B,0xD0,0x28,0x17,0x53,0xBD,0x07,0x3C,0x3B,
+0x56,0x9A,0x5A,0x70,0x8F,0x6C,0x6C,0x81,0xFA,0xCD,0x19,0x03,0x8D,0x86,0x6E,0x83,
+0x57,0x8A,0x25,0xE3,0x89,0x1D,0xAE,0xF4,0x05,0x58,0xD5,0xA5,0x44,0x61,0x35,0xAF,
+0x65,0x2C,0xB9,0xF3,0xB4,0x80,0xA1,0xE5,0xEE,0x82,0xAD,0xDB,0x6B,0xBC,0x78,0x49,
+0x15,0xF9,0xD5,0x89,0xA4,0x66,0x8C,0xCC,0x6A,0x9E,0x7E,0xE8,0xF1,0x67,0x1C,0x31,
+0x12,0x30,0x57,0x17,0x0A,0xCD,0x99,0xBC,0x39,0xE1,0xBE,0x06,0xD7,0xB9,0xBE,0x4E,
+0x94,0x8F,0x9D,0xBA,0x16,0x25,0x23,0xDD,0x59,0xE6,0x31,0x75,0xB5,0x13,0x77,0x89,
+0x53,0xEA,0x43,0x73,0xE0,0x85,0xD8,0xB1,0xC7,0xD7,0xAA,0x9E,0x88,0xB2,0x20,0xDD,
+0xF7,0xBA,0x3F,0xAD,0xE1,0xB0,0x37,0x14,0x28,0x50,0x20,0xC2,0xE9,0x43,0xC5,0x75,
+0xD8,0x6E,0xC2,0xD7,0x58,0x8E,0x47,0x3F,0x01,0xE5,0x78,0x99,0x5B,0xC3,0xF8,0x4B,
+0x7F,0xBD,0x43,0xFF,0xAD,0xCF,0x39,0x37,0xE9,0x35,0x7D,0x7B,0x07,0x05,0xEA,0x8F,
+0xE8,0x2B,0x84,0x8B,0x35,0x4B,0xD4,0x0C,0xF5,0xBB,0x5E,0xCE,0xC3,0x2E,0x39,0xDE,
+0x7A,0xD2,0x48,0x44,0x24,0xDD,0x87,0x52,0x09,0xD9,0x9F,0x20,0xD2,0xA7,0x64,0x90,
+0x08,0x23,0x19,0x45,0x26,0x6D,0xB2,0xA9,0x59,0xB2,0xBA,0x63,0xC9,0x45,0x2E,0x6D,
+0x4E,0x00,0xA6,0x56,0xC5,0x0A,0x35,0xEF,0x1D,0x1D,0x09,0x76,0x20,0x7B,0xC1,0xF8,
+0x27,0x9F,0xAB,0x8F,0x9B,0xE5,0xD0,0x08,0xD9,0x93,0x02,0x93,0x13,0x88,0xB7,0xD4,
+0xFD,0x6D,0x5D,0x17,0x3F,0x72,0xD4,0xB2,0x77,0x6B,0x92,0xA3,0xF2,0x7C,0xDE,0x14,
+0x6B,0x9E,0xF3,0xED,0x1C,0xC0,0xFB,0x15,0x12,0x40,0xF3,0x4C,0xD7,0xA8,0x2C,0x04,
+0x9D,0x2A,0x96,0x6A,0xD3,0xB5,0x4F,0x94,0xFD,0xEE,0xCC,0x44,0x7D,0xCA,0x1E,0xF1,
+0xA3,0x70,0x97,0x01,0x48,0xEA,0x9F,0x08,0x03,0xF9,0x36,0x29,0x92,0xA6,0xF3,0x34,
+0xA5,0xC6,0x87,0x18,0x93,0x16,0xE9,0x00,0x24,0xF3,0x68,0x98,0x65,0x4C,0xF1,0x33,
+0x34,0x76,0xF5,0x51,0xDA,0x35,0x33,0x6A,0xD8,0xB9,0x64,0xF3,0x7B,0x59,0x55,0x24,
+0x89,0x08,0xD6,0x86,0x40,0x1C,0x14,0xA0,0xB2,0x48,0x01,0x8B,0x9D,0x2D,0x67,0x7A,
+0xC9,0xD8,0xD6,0xBD,0x1E,0x52,0xAD,0xD9,0x03,0x43,0x9E,0xDD,0x81,0x0C,0x63,0x7A,
+0xCB,0x10,0x31,0x74,0x5D,0x3D,0x5C,0x28,0x47,0xBA,0xEC,0x2D,0x60,0x62,0x84,0x44,
+0xBB,0x03,0x32,0x42,0xE1,0xEB,0x36,0xCA,0xBE,0x59,0x2F,0x95,0x4F,0x90,0x66,0xA9,
+0x10,0x04,0xFA,0x9A,0x92,0x26,0x8F,0x50,0x3C,0xF2,0xC2,0x8A,0x90,0x5F,0xF1,0xC2,
+0x93,0x10,0xBF,0xF5,0xC2,0x1B,0x37,0xA7,0xE5,0x5D,0x55,0xF4,0xDC,0x3B,0x13,0x12,
+0xDB,0xA4,0x16,0xA4,0x01,0xAF,0x1D,0xC3,0x05,0x2C,0xE9,0x97,0x3C,0xFB,0x3C,0x90,
+0x21,0x8F,0x91,0x5B,0x62,0x60,0xB8,0x78,0x55,0x3A,0xA1,0xA8,0x65,0x8C,0x97,0x36,
+0x37,0xBA,0x90,0x6C,0x27,0x82,0xFC,0x0F,0x30,0xBA,0x71,0xEA,0x9C,0x97,0xFF,0x07,
+0xD1,0x16,0x0D,0x24,0x5E,0xED,0x5D,0x4D,0xC0,0xF1,0xD6,0x7E,0xB2,0x2A,0x42,0x3E,
+0x8D,0xF7,0x70,0x6C,0x5E,0x40,0x07,0x26,0x75,0xE2,0xC5,0x3C,0x95,0x30,0xB3,0xE3,
+0xAC,0x30,0x61,0x94,0xCB,0x06,0x5A,0xD5,0x6A,0x1A,0xD4,0x23,0x27,0xF2,0x84,0x48,
+0x28,0xD3,0xB4,0x7C,0xD5,0x3C,0x02,0x9E,0x18,0xE4,0x23,0xC8,0x81,0xD2,0xB8,0xB6,
+0x99,0x50,0xC7,0x3A,0x58,0xEE,0x9E,0xC6,0x99,0x24,0xF9,0xC0,0x32,0x47,0xA4,0x91,
+0x87,0x61,0x25,0x9D,0x67,0xF6,0xED,0x98,0xAE,0xAF,0x91,0xAA,0x78,0x70,0xE3,0xF1,
+0x04,0xE3,0x60,0xE0,0x82,0x3A,0x0B,0xA0,0x26,0xD1,0xB3,0xA6,0xD3,0x58,0x7E,0x59,
+0x0E,0x1B,0xB6,0xB6,0xEB,0xA0,0x27,0xF3,0x45,0xDC,0xDF,0xC0,0x9F,0x2B,0x0F,0x52,
+0x84,0x9B,0x53,0x00,0x2E,0xFE,0x71,0xA2,0x8F,0x9D,0x75,0xFC,0xE3,0xE4,0x2E,0x8E,
+0xDC,0xD5,0x2E,0x27,0xDA,0x2C,0x1E,0x4E,0x2A,0x2D,0xF8,0x1B,0x6E,0xF5,0x7A,0x7B,
+0xB1,0x79,0x88,0x51,0x16,0xC4,0xD1,0x60,0x77,0xC6,0x9C,0x6E,0x67,0x5B,0x37,0xEB,
+0xDA,0x08,0xF7,0x0D,0x94,0x83,0x7F,0x27,0x3E,0x02,0x48,0x59,0xAB,0xDE,0x4D,0x0A,
+0x11,0x7F,0x26,0x16,0x85,0x32,0x19,0x33,0xA4,0x5F,0x1E,0x00,0xAC,0x0D,0x9B,0xCF,
+0xA9,0xDF,0x70,0x45,0x70,0x79,0x7C,0x0C,0xDB,0x42,0x49,0xD3,0x27,0x42,0x9F,0x7F,
+0x4D,0xEF,0x13,0x32,0x8F,0x95,0xD8,0x04,0x2B,0x8E,0xB6,0xAE,0x54,0x14,0x69,0x52,
+0xE2,0x8B,0x23,0x0F,0x18,0x50,0x6A,0x13,0x68,0xC4,0x00,0x40,0x75,0xB8,0xC3,0x11,
+0x1A,0xCC,0x60,0xD9,0x34,0x5A,0x44,0xE5,0xE0,0x66,0x22,0x11,0xE3,0x6A,0x5A,0x92,
+0xD0,0x48,0x9B,0xD5,0xF7,0x54,0x28,0xBB,0x1E,0x78,0x46,0x25,0xDF,0x76,0xFB,0xEB,
+0x0B,0xED,0x1C,0xE5,0xCA,0xBD,0x2E,0x32,0x87,0xF7,0x81,0xFE,0x25,0xAE,0xA4,0xC2,
+0xD3,0x6E,0x86,0x6D,0xCE,0xE7,0xFF,0x55,0xA9,0x25,0x38,0x38,0x86,0x5C,0x3F,0x3F,
+0xC6,0x8F,0x07,0x09,0x9C,0x41,0x0C,0xF8,0x1D,0xC5,0xFF,0x5F,0xB9,0xA2,0x3F,0x3B,
+0x9B,0x5E,0x7D,0xD5,0x65,0x63,0x16,0xBE,0xC1,0x64,0xFC,0xEF,0xA8,0xBF,0x38,0x94,
+0xF4,0x3C,0x58,0x31,0xB9,0x98,0x8D,0x36,0x8C,0xEC,0xF1,0xDC,0x4F,0x6F,0xEE,0xC8,
+0xE1,0x5C,0x0D,0x03,0x5C,0x44,0xDC,0xFF,0xCE,0x35,0xB4,0xE4,0x3B,0x39,0xB7,0x3C,
+0xB7,0x97,0x97,0x45,0xE4,0xC1,0xB5,0x86,0x75,0x47,0xFA,0xDB,0x3C,0x51,0x58,0x95,
+0x4A,0x3E,0x24,0x22,0xBC,0x0F,0x1D,0x4F,0x2C,0xDA,0xF0,0x7A,0xB0,0x29,0x0F,0xE5,
+0x8B,0x34,0xA2,0x0F,0xCE,0xE0,0xA7,0x7E,0x36,0x8F,0xC8,0x03,0x33,0x6E,0x43,0x8C,
+0x73,0xFB,0x2A,0xB3,0x18,0x3F,0xA8,0x85,0x4D,0x9A,0xC7,0xD5,0xF7,0xD9,0x63,0x31,
+0x9D,0xAB,0xBE,0xAC,0x29,0x78,0xA8,0xD0,0xD4,0xF6,0xA1,0x4A,0x6F,0xB0,0x7E,0x2F,
+0x7B,0x60,0x32,0x43,0x9A,0x08,0x06,0x8C,0x52,0xFC,0x7A,0xAD,0x2B,0x63,0x9D,0x01,
+0xD0,0x59,0xAC,0xDD,0xBA,0x0F,0xAA,0x4B,0x51,0x42,0xA4,0x58,0xB9,0xA3,0x33,0x3D,
+0x38,0x30,0x99,0x92,0x14,0x89,0xD8,0x5C,0x43,0x82,0x0E,0x2D,0xBE,0x2C,0xF4,0x3C,
+0x98,0x20,0x62,0x23,0x27,0x4E,0xA5,0x3E,0xA0,0xE2,0xAF,0x30,0xA3,0xB7,0x57,0x4B,
+0xAD,0x40,0xD8,0x58,0x02,0xEA,0xB1,0xBE,0x36,0xA5,0x5E,0x25,0x4D,0x3D,0xE7,0xCC,
+0x93,0xDD,0x55,0x33,0x2A,0xC5,0xE6,0x84,0x2B,0xEE,0xDE,0xB4,0x9D,0x65,0x6F,0x54,
+0xD2,0x09,0x4C,0x82,0x31,0x62,0x23,0x8F,0x32,0xD5,0x18,0x22,0xEF,0x60,0xE3,0x37,
+0xCA,0x30,0x3E,0x28,0xEA,0x02,0x4D,0x78,0x21,0x75,0xB9,0x66,0xFD,0xF2,0xE3,0x3A,
+0x74,0xBE,0x05,0x1A,0x5A,0x2E,0x39,0x9E,0x19,0x71,0x40,0xBE,0x24,0x6A,0xA8,0x82,
+0x05,0xAC,0x5F,0xCB,0xDB,0x1E,0xB7,0x7D,0xEB,0x4B,0xD3,0x14,0xDC,0x69,0xC4,0x6E,
+0xFB,0x5B,0x20,0xDA,0xB7,0x92,0x14,0xEE,0x98,0xC0,0x23,0x9E,0x2B,0x39,0xEE,0x18,
+0x87,0xB0,0xB3,0xDA,0x53,0xB6,0xAC,0x0B,0x6B,0xCA,0x8B,0x54,0x82,0x97,0x09,0xD6,
+0xFE,0xB2,0x33,0xD2,0x7E,0x52,0x07,0xB0,0xAC,0x96,0x1A,0x9C,0x7E,0x0A,0x79,0xCF,
+0x71,0xCA,0x54,0xDD,0x06,0x4B,0x2E,0xE9,0x45,0x6F,0x9B,0x72,0x68,0x04,0x1D,0x92,
+0x00,0xDB,0x2A,0xD3,0xD5,0x4A,0xEB,0x32,0x1C,0xA2,0x7C,0x48,0x7F,0xC8,0x28,0x48,
+0xF7,0x5E,0x59,0x30,0x7D,0xBE,0x67,0x87,0x48,0x0D,0xBB,0x99,0x2C,0x2B,0x27,0x68,
+0x0B,0xB3,0x24,0x27,0x24,0xB8,0x0F,0x66,0xBA,0xF8,0x51,0x91,0xD0,0x75,0xAA,0xD3,
+0x28,0x66,0xE9,0x41,0x41,0x29,0xAF,0xAB,0x03,0x13,0x44,0x29,0x9C,0x79,0xEF,0x7E,
+0x01,0x00,0xCC,0x20,0x68,0x94,0x77,0x1A,0xB5,0x5C,0x30,0x32,0xD9,0x1C,0xAA,0x51,
+0x4F,0x97,0x69,0x11,0x18,0xD4,0x3A,0x66,0x49,0xE9,0x11,0x88,0x93,0x83,0x19,0x80,
+0x20,0x55,0x0C,0x88,0xAE,0xD6,0x3D,0xFB,0xF6,0xD0,0x7F,0x28,0x11,0xF1,0xD2,0xCB,
+0xF6,0xC4,0x4D,0xE6,0x0C,0xA6,0x70,0x1A,0xF8,0xC4,0x8D,0xDC,0x62,0x32,0x02,0x57,
+0x3B,0x51,0x30,0xE3,0x85,0x0D,0x13,0x14,0x83,0x92,0x42,0xB4,0xF7,0xDF,0x56,0xDF,
+0x56,0xBA,0x05,0x3E,0xAC,0xF5,0xEF,0x0F,0xBE,0xB1,0x33,0x1D,0x48,0x43,0x0E,0x18,
+0xC0,0x74,0x14,0x35,0x8C,0x67,0xEF,0x0A,0xE0,0x2F,0xBA,0x4A,0x71,0x82,0x40,0x3B,
+0x70,0x77,0x26,0x4C,0x19,0x15,0x37,0xE0,0x52,0x29,0x58,0xAA,0xE4,0xA7,0x4B,0x78,
+0x17,0xFD,0xF6,0x73,0x64,0x53,0x9D,0x29,0x3C,0xCB,0x66,0xD1,0x2C,0x14,0xE1,0x01,
+0xF8,0xEB,0xD7,0xF4,0xA8,0x3A,0x4E,0xF0,0xF7,0x04,0x95,0xA3,0xC8,0x1F,0xE3,0xAE,
+0x6F,0x79,0xAA,0x6D,0xA5,0xE0,0x2C,0xC4,0x1E,0xF2,0x61,0x0C,0x77,0x8F,0x62,0x1D,
+0xDD,0xED,0x96,0x58,0xE5,0x76,0x2A,0x6F,0x92,0xF1,0xB5,0xBE,0xE9,0xEE,0x61,0x6C,
+0xA8,0xD5,0xA6,0x82,0xA6,0x80,0x82,0x8B,0x02,0x90,0xD7,0x9C,0xC9,0xD1,0x9A,0x3B,
+0xF3,0x30,0x9B,0x98,0x47,0x84,0xED,0x6C,0xB6,0x1A,0x5A,0x47,0xE7,0xE4,0xBE,0x65,
+0xEB,0xB5,0x8C,0xA8,0x71,0x9A,0x9B,0x85,0x58,0xFC,0x6D,0x23,0xB0,0x8C,0x72,0x00,
+0x27,0xFD,0xA9,0x94,0xFA,0x19,0x18,0x04,0xBD,0x46,0x45,0x35,0x1B,0xAE,0x55,0x50,
+0xBD,0x2A,0x92,0x98,0x7B,0x13,0x75,0x28,0xA9,0xE8,0x36,0x02,0x0B,0xC2,0x18,0xCD,
+0xE3,0x42,0xBA,0xAB,0x3F,0x99,0x52,0x7D,0xB6,0xFB,0xF9,0xE1,0x3D,0x68,0x89,0x3C,
+0x31,0xD6,0x22,0x88,0xE5,0xC1,0x4F,0x25,0x1F,0xBF,0xE8,0x43,0x13,0xE5,0x40,0xD0,
+0xD9,0xCB,0xEA,0xD2,0x5F,0xAC,0x99,0xEC,0x17,0x92,0x46,0x61,0xFD,0x81,0x7E,0x2D,
+0x9E,0x31,0x90,0xDF,0xE0,0xC7,0xE5,0x14,0x08,0x40,0xC3,0xFB,0x9A,0x55,0xC8,0x19,
+0x06,0xF0,0x6E,0x0F,0xBB,0x8E,0xE3,0xD0,0x6C,0xB2,0x26,0x6C,0x5D,0x48,0x3D,0xF9,
+0xB2,0x09,0x5E,0xD6,0x72,0xC6,0x9C,0x6A,0x05,0x65,0xE6,0x89,0xAD,0xF4,0xC4,0x41,
+0x7D,0x7B,0x0A,0xB4,0x00,0x3C,0x43,0x59,0xF7,0x56,0x91,0x55,0xF1,0xBC,0x32,0x71,
+0x9F,0x4A,0xC3,0xFE,0x61,0x2A,0x99,0x83,0xAB,0x19,0x8A,0x73,0x97,0x6C,0x5C,0x61,
+0xF0,0x0C,0x34,0x96,0x9E,0xCC,0x2F,0x04,0x63,0x3C,0x37,0x23,0xC7,0xCB,0x15,0x8E,
+0x5D,0xC0,0x7C,0x84,0x9C,0x90,0x3F,0x79,0xE5,0x66,0x2D,0x4F,0x55,0xD8,0x53,0x64,
+0x1B,0x02,0x0C,0x07,0x41,0xB1,0x22,0x92,0x6A,0x7C,0xEF,0x38,0xDE,0xC9,0xD8,0xBA,
+0x21,0x9A,0xB8,0x99,0x61,0x35,0x03,0x31,0x28,0xE2,0xCF,0xFF,0xF5,0x3E,0x30,0xD2,
+0x5C,0x1A,0xD9,0xC6,0x97,0xDB,0xC0,0x52,0x03,0x18,0xBF,0xA9,0x2A,0xE2,0x53,0xFB,
+0x7E,0xB0,0x51,0x7B,0xA2,0x86,0xC1,0x8B,0xDF,0x51,0xA2,0x4A,0xE2,0xE1,0x16,0x2D,
+0x85,0x1A,0x41,0xBA,0xF4,0xE9,0x6B,0x2A,0x61,0xD6,0x72,0xD2,0xBC,0xEC,0x74,0x86,
+0x59,0xFB,0xCF,0xAC,0x6D,0xFC,0xEA,0x2A,0xD3,0x72,0x24,0x82,0x6C,0xA9,0x5E,0x56,
+0xDC,0xBB,0xCC,0x76,0xCB,0xAA,0x93,0xF6,0x6B,0xB4,0x4C,0xB3,0x49,0xE7,0xD6,0xF1,
+0x12,0xAE,0x1F,0xAA,0xE6,0x57,0x1F,0x80,0x02,0x5D,0x34,0x7F,0x8B,0xED,0x71,0x1E,
+0xFD,0x8C,0xA3,0x7A,0x53,0x96,0x08,0x6B,0x09,0xF3,0x73,0xBB,0x16,0xD5,0x13,0x49,
+0x22,0x94,0x75,0xC9,0x81,0x6E,0xD1,0xD0,0x13,0xC9,0xC4,0xFE,0x0E,0xDA,0x78,0x28,
+0x2F,0x95,0x36,0x05,0xCE,0x0C,0x96,0x96,0x97,0x39,0x10,0x14,0xA9,0x03,0x27,0xB7,
+0x64,0x10,0xB3,0xBA,0x53,0xB4,0xBD,0xE7,0x44,0xA4,0x5F,0x4B,0x56,0x54,0x7C,0xBC,
+0x88,0x79,0xCA,0x6D,0x46,0x50,0x4A,0xC3,0x46,0x97,0x09,0xD5,0x72,0xAB,0x31,0x33,
+0x4D,0xD5,0x56,0x37,0xF5,0xFF,0x86,0x28,0x9F,0x3C,0xA5,0x53,0xEB,0x1D,0xA6,0x63,
+0x47,0x76,0xA8,0xCB,0x0B,0x07,0xDF,0xC4,0xB9,0xD4,0x77,0xB3,0x0C,0x3F,0x76,0xF1,
+0x49,0xBB,0x97,0x72,0xCA,0xCD,0xDF,0x9A,0x5B,0x25,0x6B,0x53,0xB8,0x5B,0xB3,0x6F,
+0xA0,0x6A,0x96,0xF4,0xF0,0x16,0xA5,0xCB,0xD9,0x73,0xB3,0xBD,0xD6,0x9C,0x5B,0xF7,
+0xFA,0x5F,0x50,0x73,0x70,0xCE,0x0D,0xEF,0xEA,0xCB,0x41,0x60,0xA2,0x25,0x51,0xDA,
+0x0E,0x7D,0xF3,0xF4,0x97,0xAB,0xB1,0xD9,0x70,0xA8,0x7A,0x26,0xE2,0xE5,0x3C,0xAF,
+0x8A,0x99,0x3B,0x95,0x65,0x2F,0xE6,0xB0,0xA3,0xC6,0x86,0xA1,0xB0,0x91,0x12,0xB1,
+0x9D,0xDA,0xB0,0xD4,0x10,0x93,0x3B,0x2F,0x0C,0x03,0x3F,0x1B,0x31,0x92,0x84,0x68,
+0x57,0x15,0x68,0x86,0x15,0x59,0xAA,0xBE,0xB9,0x0E,0x22,0x71,0xC6,0x27,0xFC,0x8D,
+0xCE,0x2B,0xAD,0x79,0x50,0x61,0x53,0x97,0x67,0x0F,0x30,0x78,0x52,0xA6,0xAA,0xEC,
+0x95,0x6A,0x81,0x76,0x64,0xF5,0x49,0xAF,0xA3,0x42,0x64,0xEC,0x88,0x6B,0xAD,0x4E,
+0x37,0x03,0x16,0x59,0xD0,0x65,0x9B,0x9C,0x0E,0x1C,0xE8,0xA1,0xD1,0xA2,0x07,0x89,
+0x42,0x5A,0x7D,0xF4,0x33,0x18,0x4A,0x5D,0x2B,0xD0,0xA5,0x8F,0xE4,0xD6,0xDE,0x7F,
+0x4A,0xC3,0xA5,0x0C,0x10,0x44,0x77,0xA8,0x89,0xCE,0xCD,0x46,0x31,0x12,0x23,0xE5,
+0xDF,0x91,0xB4,0x6B,0x06,0x4A,0x3E,0x6F,0xA8,0x32,0x57,0xB0,0x69,0xEB,0x1C,0xAD,
+0x8D,0x01,0xCF,0xEA,0x90,0x65,0x8E,0x5F,0x4E,0x8B,0x68,0xB6,0xF1,0x78,0x9C,0x7D,
+0xE2,0x89,0xD0,0x5C,0x42,0xF4,0x86,0x4A,0xC4,0xF3,0xF5,0x17,0x83,0x17,0xC9,0x3B,
+0x70,0x4A,0xFC,0x89,0xC0,0x43,0x36,0x0D,0xD6,0xE4,0x35,0x98,0x91,0x25,0xCC,0xAE,
+0xD3,0xA7,0x41,0x5E,0x92,0xB7,0xBB,0x6F,0xED,0x9F,0x12,0x1B,0xB4,0xF8,0x99,0xBA,
+0x91,0xF6,0xC3,0x7D,0x30,0x71,0x18,0x4F,0xA8,0x5E,0xB4,0x55,0x82,0xD6,0x3A,0x1E,
+0x30,0x82,0x89,0xCA,0x53,0xF4,0x5B,0x6C,0x97,0x8B,0x2F,0x2C,0x85,0x07,0xD9,0xAD,
+0x54,0xAD,0xA1,0x1A,0x60,0x73,0x8C,0x9E,0x53,0x60,0x79,0x7C,0x51,0xE5,0x79,0x3B,
+0x8B,0xA2,0x27,0x4F,0x02,0x44,0xC7,0xBD,0x5E,0x55,0xA6,0xE8,0x76,0xB8,0x2A,0x9F,
+0x51,0xCF,0x1E,0x0B,0xD0,0xB7,0x2A,0x8E,0x44,0x96,0xD0,0x62,0x81,0xD2,0xF3,0x88,
+0x49,0x75,0x98,0x33,0x44,0x15,0xB9,0xDF,0xAD,0x7A,0x2C,0xC7,0x06,0x9B,0xFC,0xED,
+0xF6,0xE0,0xAB,0xB3,0xFC,0xC9,0x71,0x77,0x0E,0x54,0x8D,0xCF,0x92,0x38,0x3A,0x85,
+0xC1,0x0C,0x7A,0xC2,0x1F,0x4C,0x19,0x45,0x37,0xCA,0x57,0xFE,0x71,0x52,0x52,0xE6,
+0x05,0x02,0x09,0x0E,0x07,0x05,0x00,0x0D,0x0E,0x03,0x0A,0x04,0x08,0x04,0x06,0x0C,
+0x03,0x08,0x0D,0x0B,0x0E,0x0F,0x09,0x07,0x0D,0x0A,0x01,0x03,0x0E,0x0D,0x0B,0x0F,
+0x0C,0x04,0x01,0x09,0x05,0x07,0x0D,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x05,0x02,0x04,0x06,0x07,0x03,0x01,0x06,0x04,0x05,0x01,0x00,0x03,0x02,0x07,
+0x05,0x06,0x02,0x04,0x01,0x00,0x03,0x07,0x01,0x04,0x07,0x00,0x02,0x06,0x05,0x03,
+0x06,0x07,0x03,0x00,0x01,0x05,0x04,0x02,0x07,0x04,0x01,0x00,0x06,0x02,0x05,0x03,
+0x04,0x05,0x03,0x07,0x00,0x06,0x01,0x02,0x02,0x05,0x06,0x00,0x07,0x01,0x04,0x03,
+0x02,0x04,0x07,0x06,0x00,0x03,0x01,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+};
+
diff --git a/SPC/Inc/Util.h b/SPC/Inc/Util.h
new file mode 100755
index 0000000..0a270c8
--- /dev/null
+++ b/SPC/Inc/Util.h
@@ -0,0 +1,30 @@
+
+
+/*
+#ifdef _LINUX
+ unsigned long long timeGetTime();
+#endif
+*/
+/**
+4byte unsinged char * unsigned int ȯ.
+@param pData (Input) - ȯ unsigned char
+@param uData (Output) - ȯ unsigned int Data
+*/
+void ConvertUint8ToUint32 (unsigned char* pData, unsigned int* uData);
+
+/**
+unsigned int 4byte unsigned char * ȯ
+@param uData (Input) - ȯ unsigned int Data
+@param pData (Output) - ȯ unsigned char
+*/
+void ConvertUint32ToUint8 (unsigned int uData, unsigned char* pData);
+
+/**
+ * @fn GetFileLength(FILE *pFp,int *nFileLen)
+ * @brief Get File length
+ *
+ * @param [in] pOutMsg Input File pointer
+ * @param [out] nOutLen file total length
+ * @return result of GetFileLength
+*/
+int GetFileLength(FILE *pFp,int *nFileLen); \ No newline at end of file
diff --git a/SPC/Inc/WhiteBox/SDWAP.h b/SPC/Inc/WhiteBox/SDWAP.h
new file mode 100755
index 0000000..26367c1
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SDWAP.h
@@ -0,0 +1,76 @@
+/**
+ * @file SDWAP.h
+ * @brief Dynamic white box AES module for SSA(Samsung Security Architecture)
+ * @author Samsung Dynamic WhiteBox AES
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * @see SDWAP
+ * @date 2013-01-10
+ * @version 1.0
+ * @par Copyright:
+ * Copyright 2013 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of dynamic whitebox table generation is confidential.
+ */
+
+
+/**
+ * @interface SDWAP
+ * @brief encryption/decryption processing module of SDWAP(Samsung Dynamic Whitebox AES Project Version 2)
+ *
+ * @par Features :
+ * # Functionality1 : encryption/decryption processing module of SDWAP
+ * @date 2012-01-10
+ * @version 1.0
+ */
+
+#ifndef _SAMSUNG_DYNIMIC_WHITE_BOX_AES_PROJECT_H_
+#define _SAMSUNG_DYNIMIC_WHITE_BOX_AES_PROJECT_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+/*! SDWAP return values */
+typedef enum
+{
+ SDWAP_RETURN_SUCCESS = 0x00000000, /*!< success case */
+ SDWAP_RETURN_INVALID_PARAMETER = 0x80000001, /*!< null parameter */
+ SDWAP_RETURN_INVALID_TBLSIZE = 0x80000002, /*!< invalid table size */
+ SDWAP_TBLGEN_INVALID_OTMZ_LEVEL = 0x80000003 /*!< invalid optimization level */
+} SDWAP_RETURN_VAL;
+
+/**
+ * @fn SDWAP_RETURN_VAL SDWAP_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int OptimizLev)
+ * @brief processing encryption or decryption according to the table
+ *
+ * @param [in] Table look-up table for SDWAP
+ * @param [in] TableLen byte-length of look-up table
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @return SDWAP_RETURN_VAL
+ */
+SPC_INTERNAL SDWAP_RETURN_VAL SDWAP_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int isEncryption);
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
+#endif //_SAMSUNG_WHITE_BOX_AES_PROJECT_H_
+
diff --git a/SPC/Inc/WhiteBox/SDWAP_TblGen.h b/SPC/Inc/WhiteBox/SDWAP_TblGen.h
new file mode 100755
index 0000000..8cfc9b1
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SDWAP_TblGen.h
@@ -0,0 +1,92 @@
+/**
+ * @file SDWAP_TblGen.h
+ * @brief Dynamic white box AES table generation module for SSA(Samsung Security Architecture)
+ * @author Samsung Dynamic WhiteBox AES
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * @see SDWAP
+ * @date 2013-01-10
+ * @version 1.0
+ * @par Copyright:
+ * Copyright 2013 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of dynamic whitebox table generation is confidential.
+ */
+
+
+/**
+ * @interface SWPAv2_TblGen
+ * @brief table generator of SDWAP(Samsung Dynamic Whitebox AES Project Version 2)
+ *
+ * @par Features :
+ * # Functionality1 : table generator of SDWAP
+ * @date 2012-11-15
+ * @version 1.0
+ */
+
+#ifndef _SDWAP_TABLE_GENERATOR_H_
+#define _SDWAP_TABLE_GENERATOR_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+
+/*! SDWAP table generator return values */
+typedef enum
+{
+ SDWAP_TBLGEN_RETURN_SUCCESS = 0x00000000, /*!< success case */
+ SDWAP_TBLGEN_RETURN_INVALID_PARAMETER = 0x80000011, /*!< null parameter */
+ SDWAP_TBLGEN_RETURN_INVALID_KEYLEN = 0x80000012, /*!< invalid key length */
+ SDWAP_TBLGEN_RETURN_INVALID_OTMZ_LEVEL = 0x80000013, /*!< invalid optimization level */
+ SDWAP_TBLGEN_RETURN_MEM_ALLOC_FAILED = 0x80000014 /*!< memory allocation failed */
+} SDWAP_TBLGEN_RETURN_VAL;
+
+typedef enum
+{
+ SDWAP_TBL_TBOX = 0x00,
+ SDWAP_TBL_KEYLOOKUP = 0x01
+}SDWAP_TBLGEN_TYPE;
+
+typedef enum
+{
+ SDWAP_DECRYPTION = 0x00,
+ SDWAP_ENCRYPTION = 0x01
+}SDWAP_CRYPTO_MODE;
+
+/**
+ * @fn unsigned int SDWAP_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, unsigned int OptimizLev)
+ * @brief derivate look-up table from given key
+ *
+ * @param [in] Key user key (cipher key)
+ * @param [in] KeyLen byte-length of cipher key
+ * @param [in] seed random seed
+ * @param [out] Table look-up table for SDWAP
+ * @param [out] TableLen byte-length of look-up table
+ * @param [in] isEncryption flag ordering encryption or decryption
+ * @return SDWAP_TBLGEN_RETURN_VAL
+ */
+unsigned int SDWAP_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, int TableType);
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
+#endif //_SDWAP_TABLE_GENERATOR_H_
+
diff --git a/SPC/Inc/WhiteBox/SDWAP_defines.h b/SPC/Inc/WhiteBox/SDWAP_defines.h
new file mode 100755
index 0000000..e9a1677
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SDWAP_defines.h
@@ -0,0 +1,91 @@
+/**
+ * @file SDWAP_defines.h
+ * @brief defines the constants, types and macros used in SDWAP(Samsung Dynamic Whitebox AES Project version2)
+ * @author Samsung Dynamic WhiteBox AES
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * @see SDWAP
+ * @date 2013-01-10
+ * @version 1.0
+ * @par Copyright:
+ * Copyright 2013 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of whitebox table generation is confidential.
+ */
+
+#ifndef _SDWAP_DEFINES_H_
+#define _SDWAP_DEFINES_H_
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+
+////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////
+#define SDWAP_WORD_SIZE 4 /*!< Each word has 4-byte length, defined in FIPS-197 */
+#define SDWAP_COLUMNS 4 /*!< Number of columns comprising the State. Defined as Nb in FIPS-197 */
+
+#define SDWAP_128_ROUNDS 10 /*!< Number of rounds, for AES-128 */
+#define SDWAP_192_ROUNDS 12 /*!< Number of rounds, for AES-192 */
+#define SDWAP_256_ROUNDS 14 /*!< Number of rounds, for AES-256 */
+
+////////////////////////////////////////////////////////////////////////////
+// Types
+////////////////////////////////////////////////////////////////////////////
+typedef unsigned char SDWAP_WORD[SDWAP_WORD_SIZE]; //!< SDWAP_WORD represents each word
+typedef unsigned char SDWAP_RK_BOX[SDWAP_COLUMNS][SDWAP_WORD_SIZE]; //!< SDWAP_RK_BOX represents round keys for one round
+typedef SDWAP_WORD SDWAP_MIX_COLUMN_BOX[16][16]; //!< SDWAP_MIX_COLUMN_BOX represents each MC box
+typedef unsigned char SDWAP_SBOX[16][16]; //!< SDWAP_SBOX represents each S-box
+typedef SDWAP_WORD SDWAP_TBOX[16][16]; //!< SDWAP_TBOX represents transform table for each byte of round key
+typedef unsigned char SDWAP_PBOX[4][8]; //!< SDWAP_PBOX represents permutation table for each round
+typedef unsigned char SDWAP_PVECTOR[16]; //!< SDWAP_PVECTOR represents permutation vector for each round
+typedef SDWAP_WORD SDWAP_WORD_PBOX[16]; //!< SDWAP_WORD_PBOX represents permutation word of transform table for each round
+typedef unsigned char SDWAP_BIT_PBOX[8]; //!< SDWAP_BIT_PBOX represents permutation word of transform table for each round
+
+typedef unsigned char SDWAP_KEY_LOOKUP[4][17]; //!< SDWAP_KEY_LOOKUP represents transform table for each column of round key
+typedef unsigned char SDWAP_KEY_RANDOM_MASK[5][4];
+typedef unsigned char SDWAP_KEY_BYTE_PBOX[17]; //!< SDWAP_KEY_BYTE_PBOX represents permutation word of transform table for each round
+typedef unsigned char SDWAP_KEY_BIT_PBOX[8]; //!< SDWAP_KEY_BIT_PBOX represents permutation word of transform table for each round
+
+////////////////////////////////////////////////////////////////////////////
+// Macros
+////////////////////////////////////////////////////////////////////////////
+#define SBOX_SIZ (16 * 16) /*! SBOX_SIZ represents the size of S-box(16x16 matrix), for 4bit-4bit lookup */
+#define SDWAP_T_TABLE_ROUND_SIZE (sizeof(SDWAP_TBOX) * SDWAP_COLUMNS * SDWAP_WORD_SIZE) /*! SDWAP_T_TABLE_ROUND_SIZE represents the size of transform table for one round */
+#define SDWAP_P_TABLE_ROUND_SIZE (sizeof(SDWAP_PBOX)) /*! SDWAP_P_TABLE_ROUND_SIZE represents the size of permutation table for one round */
+#define SDWAP_WP_TABLE_ROUND_SIZE SDWAP_WORD_SIZE * 4 /*! SDWAP_WP_TABLE_ROUND_SIZE represents the size of permutation word of transform table for one round */
+#define SDWAP_BP_TABLE_ROUND_SIZE 8 /*! SDWAP_BP_TABLE_ROUND_SIZE represents the size of permutation bit of transform table for one round */
+
+#define SDWAP_KEY_LOOKUP_COLUMN_SIZE 17 * 4 /*! SDWAP_KEY_LOOKUP_SIZE represents the size of key lookup table for one round */
+#define SDWAP_KEY_RANDOM_MASK_SIZE sizeof(SDWAP_KEY_RANDOM_MASK)
+
+#define SETBIT_U8(val, idx, bit) bit == 1 ? (unsigned char) ( val | (1 << idx) ) : (unsigned char) ( val & (~(1 << idx)) ) /*! set a bit */
+#define GETBIT_U8(val, idx) (val & (1 << idx)) >> idx /*! get a bit */
+
+
+/**
+ * @var static const unsigned char byte_pMatrix[24][4]
+ * @brief look-up matrix for CalcPWTBox, Calculate Word-Permutation T-Box
+ */
+static const unsigned char byte_pMatrix[24][4] =
+{
+ {0, 1, 2, 3}, {0, 1, 3, 2}, {0, 2, 1, 3}, {0, 2, 3, 1}, {0, 3, 1, 2}, {0, 3, 2, 1},
+ {1, 0, 2, 3}, {1, 0, 3, 2}, {1, 2, 0, 3}, {1, 2, 3, 0}, {1, 3, 0, 2}, {1, 3, 2, 0},
+ {2, 0, 1, 3}, {2, 0, 3, 1}, {2, 1, 0, 3}, {2, 1, 3, 0}, {2, 3, 0, 1}, {2, 3, 1, 0},
+ {3, 0, 1, 2}, {3, 0, 2, 1}, {3, 1, 0, 2}, {3, 1, 2, 0}, {3, 2, 0, 1}, {3, 2, 1, 0}
+};
+
+#endif //_SDWAP_DEFINES_H_
diff --git a/SPC/Inc/WhiteBox/SWAPv2.h b/SPC/Inc/WhiteBox/SWAPv2.h
new file mode 100755
index 0000000..de0666b
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SWAPv2.h
@@ -0,0 +1,75 @@
+/**
+ * @file SWAPv2.h
+ * @brief white box AES module for SSA(Samsung Security Architecture)
+ * @author Samsung WhiteBox AES Version 2 (SWAPv1 based)
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * Samsung WhiteBox AES Version 1
+ * - Jisoon Park(js00n.park@samsung.com)
+ * - Dept: DMC R&D Center/Convergence Software Lab.
+ *
+ * @see SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ * @par Copyright:
+ * Copyright 2012 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ */
+
+/**
+ * @interface SWAPv2
+ * @brief encryption/decryption processing module of SWAPv2(Samsung Whitebox AES Project Version 2)
+ *
+ * @par Features :
+ * # Functionality1 : encryption/decryption processing module of SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ */
+
+#ifndef _SAMSUNG_WHITE_BOX_AES_PROJECT_VERSION2_H_
+#define _SAMSUNG_WHITE_BOX_AES_PROJECT_VERSION2_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+/*! SWAPv2 return values */
+typedef enum
+{
+ SWAPv2_RETURN_SUCCESS = 0x00000000, /*!< success case */
+ SWAPv2_RETURN_INVALID_PARAMETER = 0x80000001, /*!< null parameter */
+ SWAPv2_RETURN_INVALID_TBLSIZE = 0x80000002, /*!< invalid table size */
+} SWAPv2_RETURN_VAL;
+
+/**
+ * @fn SWAPv2_RETURN_VAL SWAPv2_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int OptimizLev)
+ * @brief processing encryption or decryption according to the table
+ *
+ * @param [in] Table look-up table for SWAPv2
+ * @param [in] TableLen byte-length of look-up table
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @param [in] OptimizLev Performance Optimization Level [0~2]
+ * @return SWAPv2_RETURN_VAL
+ */
+SPC_INTERNAL SWAPv2_RETURN_VAL SWAPv2_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out);
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
+#endif //_SAMSUNG_WHITE_BOX_AES_PROJECT_H_
+
diff --git a/SPC/Inc/WhiteBox/SWAPv2_TblGen.h b/SPC/Inc/WhiteBox/SWAPv2_TblGen.h
new file mode 100755
index 0000000..ceb88ae
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SWAPv2_TblGen.h
@@ -0,0 +1,78 @@
+/**
+ * @file SWAPv2_TblGen.h
+ * @brief white box AES table generation module for SSA(Samsung Security Architecture)
+ * @author Samsung WhiteBox AES Version 2 (SWAPv1 based)
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * Samsung WhiteBox AES Version 1
+ * - Jisoon Park(js00n.park@samsung.com)
+ * - Dept: DMC R&D Center/Convergence Software Lab.
+ *
+ * @see SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ * @par Copyright:
+ * Copyright 2012 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ */
+
+/**
+ * @interface SWPAv2_TblGen
+ * @brief table generator of SWAPv2(Samsung Whitebox AES Project Version 2)
+ *
+ * @par Features :
+ * # Functionality1 : table generator of SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ */
+
+#ifndef _SWAPv2_TABLE_GENERATOR_H_
+#define _SWAPv2_TABLE_GENERATOR_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif //__cplusplus
+
+#ifndef _WIN
+
+ #define SPC_INTERNAL __attribute__((visibility("hidden")))
+#else
+ #define SPC_INTERNAL
+#endif
+
+/*! SWAPv2 table generator return values */
+typedef enum
+{
+ SWAPv2_TBLGEN_RETURN_SUCCESS = 0x00000000, /*!< success case */
+ SWAPv2_TBLGEN_RETURN_INVALID_PARAMETER = 0x80000011, /*!< null parameter */
+ SWAPv2_TBLGEN_RETURN_INVALID_KEYLEN = 0x80000012, /*!< invalid key length */
+ SWAPv2_TBLGEN_RETURN_INVALID_OTMZ_LEVEL = 0x80000013, /*!< invalid optimization level */
+ SWAPv2_TBLGEN_RETURN_MEM_ALLOC_FAILED = 0x80000014 /*!< memory allocation failed */
+} SWAPv2_TBLGEN_RETURN_VAL;
+
+/**
+ * @fn unsigned int SWAPv2_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, unsigned int OptimizLev)
+ * @brief derivate look-up table from given key
+ *
+ * @param [in] Key user key (cipher key)
+ * @param [in] KeyLen byte-length of cipher key
+ * @param [in] seed random seed
+ * @param [out] Table look-up table for SWAPv2
+ * @param [out] TableLen byte-length of look-up table
+ * @param [in] isEncryption flag ordering encryption or decryption
+ * @return SWAPv2_TBLGEN_RETURN_VAL
+ */
+unsigned int SWAPv2_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption);
+
+#ifdef __cplusplus
+}
+#endif //__cplusplus
+
+#endif //_SWAPv2_TABLE_GENERATOR_H_
+
diff --git a/SPC/Inc/WhiteBox/SWAPv2_defines.h b/SPC/Inc/WhiteBox/SWAPv2_defines.h
new file mode 100755
index 0000000..78fa022
--- /dev/null
+++ b/SPC/Inc/WhiteBox/SWAPv2_defines.h
@@ -0,0 +1,87 @@
+/**
+ * @file SWAPv2_defines.h
+ * @brief defines the constants, types and macros used in SWAPv2(Samsung Whitebox AES Project version2)
+ * @author Samsung WhiteBox AES Version 2 (SWAPv1 based)
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * Samsung WhiteBox AES Version 1
+ * - Jisoon Park(js00n.park@samsung.com)
+ * - Dept: DMC R&D Center/Convergence Software Lab.
+ *
+ *
+ *
+ *
+ * @see SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ * @par Copyright:
+ * Copyright 2012 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of whitebox table generation is confidential.
+ */
+
+#ifndef _SWAPv2_DEFINES_H_
+#define _SWAPv2_DEFINES_H_
+
+//#define SPC_INTERNAL
+
+
+
+////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////
+#define SWAPv2_WORD_SIZE 4 /*!< Each word has 4-byte length, defined in FIPS-197 */
+#define SWAPv2_COLUMNS 4 /*!< Number of columns comprising the State. Defined as Nb in FIPS-197 */
+
+#define SWAPv2_128_ROUNDS 10 /*!< Number of rounds, for AES-128 */
+#define SWAPv2_192_ROUNDS 12 /*!< Number of rounds, for AES-192 */
+#define SWAPv2_256_ROUNDS 14 /*!< Number of rounds, for AES-256 */
+
+////////////////////////////////////////////////////////////////////////////
+// Types
+////////////////////////////////////////////////////////////////////////////
+typedef unsigned char SWAPv2_WORD[SWAPv2_WORD_SIZE]; //!< SWAPv2_WORD represents each word
+typedef unsigned char SWAPv2_RK_BOX[SWAPv2_COLUMNS][SWAPv2_WORD_SIZE];//!< SWAPv2_RK_BOX represents round keys for one round
+typedef SWAPv2_WORD SWAPv2_MIX_COLUMN_BOX[16][16]; //!< SWAPv2_MIX_COLUMN_BOX represents each MC box
+typedef unsigned char SWAPv2_SBOX[16][16]; //!< SWAPv2_SBOX represents each S-box
+typedef SWAPv2_WORD SWAPv2_TBOX[16][16]; //!< SWAPv2_TBOX represents transform table for each byte of round key
+typedef unsigned char SWAPv2_PBOX[4][8]; //!< SWAPv2_PBOX represents permutation table for each round
+typedef unsigned char SWAPv2_PVECTOR[16]; //!< SWAPv2_PVECTOR represents permutation vector for each round
+typedef SWAPv2_WORD SWAPv2_WORD_PBOX[16]; //!< SWAPv2_WORD_PBOX represents permutation word of transform table for each round
+typedef unsigned char SWAPv2_BIT_PBOX[8];
+
+
+////////////////////////////////////////////////////////////////////////////
+// Macros
+////////////////////////////////////////////////////////////////////////////
+#define SBOX_SIZ (16 * 16) /*! SBOX_SIZ represents the size of S-box(16x16 matrix), for 4bit-4bit lookup */
+#define SWAPv2_T_TABLE_ROUND_SIZE (sizeof(SWAPv2_TBOX) * SWAPv2_COLUMNS * SWAPv2_WORD_SIZE) /*! SWAPv2_T_TABLE_ROUND_SIZE represents the size of transform table for one round */
+#define SWAPv2_P_TABLE_ROUND_SIZE (sizeof(SWAPv2_PBOX)) /*! SWAPv2_P_TABLE_ROUND_SIZE represents the size of permutation table for one round */
+#define SWAPv2_WP_TABLE_ROUND_SIZE SWAPv2_WORD_SIZE * 4 /*! SWAPv2_WP_TABLE_ROUND_SIZE represents the size of permutation word of transform table for one round */
+#define SWAPv2_BP_TABLE_ROUND_SIZE 8 /*! SWAPv2_BP_TABLE_ROUND_SIZE represents the size of permutation bit of transform table for one round */
+
+#define SETBIT_U8(val, idx, bit) bit == 1 ? (unsigned char) ( val | (1 << idx) ) : (unsigned char) ( val & (~(1 << idx)) ) /*! set a bit */
+#define GETBIT_U8(val, idx) (val & (1 << idx)) >> idx /*! get a bit */
+
+
+/**
+ * @var static const unsigned char byte_pMatrix[24][4]
+ * @brief look-up matrix for CalcPWTBox, Calculate Word-Permutation T-Box
+ */
+static const unsigned char byte_pMatrix[24][4] =
+{
+ {0, 1, 2, 3}, {0, 1, 3, 2}, {0, 2, 1, 3}, {0, 2, 3, 1}, {0, 3, 1, 2}, {0, 3, 2, 1},
+ {1, 0, 2, 3}, {1, 0, 3, 2}, {1, 2, 0, 3}, {1, 2, 3, 0}, {1, 3, 0, 2}, {1, 3, 2, 0},
+ {2, 0, 1, 3}, {2, 0, 3, 1}, {2, 1, 0, 3}, {2, 1, 3, 0}, {2, 3, 0, 1}, {2, 3, 1, 0},
+ {3, 0, 1, 2}, {3, 0, 2, 1}, {3, 1, 0, 2}, {3, 1, 2, 0}, {3, 2, 0, 1}, {3, 2, 1, 0}
+};
+
+#endif //_SWAPv2_DEFINES_H_
diff --git a/SPC/Inc/Wrapper_common.h b/SPC/Inc/Wrapper_common.h
new file mode 100755
index 0000000..30e6a24
--- /dev/null
+++ b/SPC/Inc/Wrapper_common.h
@@ -0,0 +1,186 @@
+//SAKEP Message Format
+#define SAKEP_AKE_MSG_START_INDEX 0
+#define SAKEP_AKE_MSG_VERSION_LEN 1
+#define SAKEP_AKE_MSG_DATATYPE_LEN 1
+#define SAKEP_AKE_MSG_TIMESTAMP_LEN 4
+#define SAKEP_AKE_MSG_PAYLOAD_ALG_LEN 1
+#define SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN 4
+#define SAKEP_AKE_MSG_USERID_LENGTH_LEN 4
+#define SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN 128
+#define SAKEP_AKE_MSG_INITIAL_SETUP_DATA_LEN 128
+#define SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN 20
+#define SAKEP_AKE_MSG_ACK_SERVER_PAYLOAD_LEN 20
+#define SAKEP_AKE_MSG_SK_PAYLOAD_HASH_DATA_LEN 20
+#define SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN 1
+#define SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN 4
+#define SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN 20
+#define SAKEP_AKE_MSG_TOT_HASH_DATA_LEN 20
+#define SAKEP_AKE_MSG_CLIENTHELLO_FIXED_LEN 168
+#define SAKEP_AKE_MSG_SERVERHELLO_FIXED_LEN 148
+#define SAKEP_AKE_MSG_INITALSETUP_FIXED_LEN 148
+#define SAKEP_AKE_MSG_RECORD_FIXED_LEN 36
+#define SAKEP_AKE_MSG_ACK_FIXED_LEN 20
+#define SAKEP_MAC_KEY_SIZE 20
+#define SAKEP_AKE_USERID_LEN 32
+#define SAKEP_SHARED_KEY_SIZE 16
+#define SAKEP_SK_PRIME_KEY_SIZE 20
+#define SAKEP_PREVIOS_MESSAGE_HASH_SIZE 20
+#define SAKEP_SHA1_HASH_SIZE 20
+#define SAKEP_DLBP_PAK_PARMETER_SIZE 128
+#define SAKEP_DLBP_PAK_ORDER_PARMETER_SIZE 20
+#define SAKEP_SHA1_DIGEST_LENGTH 20
+#define SPC_SERVERACK_SUCCESS 0//ack payload message
+#define SAKEP_IV_SIZE 16
+#define SAKEP_AES_ECB_ADDED_PADDING_SIZE 16
+#define SPC_WB_BLOCK_SIZE 16
+#define SAKEP_GXY_KEY_SIZE 16
+
+//PBKEF
+#define SAKEP_PBKDF_DK_SIZE 16
+#define SAKEP_MFEK_KEY_SIZE 16
+#define SAKEP_AUTH_KEY_SIZE 16
+#define SAKEP_PBKDF_COUNT 100
+
+//ERROR message
+#define SPC_SUCCESS 0
+
+#define SAKEP_FILE_ENDECRYPTION_FILE_OPEN_ERROR -161
+#define SAKEP_FILE_ENDECRYPTION_FILE_SEEK_ERROR -162
+#define SAKEP_FILE_ENDECRYPTION_FILE_READ_WRITE_ERROR -163
+#define SAKEP_FILE_ENDECRYPTION_FILE_ENDECRYPTED_ERROR -164
+#define SAKEP_ENCRYPTION_DECRYPTION_ERROR -165
+
+#define SAKEP_MEMROY_ALLOCATE_ERROR -180
+#define SAKEP_INPUT_INVALID_ERROR -181
+#define SAKEP_MESSAGE_ERROR -182
+#define SAKEP_NULL_POINT_ERROR -183
+#define SAKEP_UNEXPECTED_MESSAGE_ERROR -184
+#define SAKEP_CREATE_PIPRIME_ERROR -185
+#define SAKEP_GETGX_SETBSPARAM_ERROR -186
+#define SAKEP_GETGX_GENEARTORBSPRIVATE_ERROR -187
+#define SAKEP_GETGX_ERROR -188
+#define SAKEP_GETGYWC_SETBSPARAM_ERROR -189
+#define SAKEP_GETGYWC_GENEARTORBSPUBLIC_ERROR -190
+#define SAKEP_INVAILD_STATE_ERROR -191
+#define SAKEP_MESSAGE_GENERATE_FAIL -200
+
+#define SAKEP_VALIDATION_FAILED -201
+#define SAKEP_INVALID_PARAMETER -202
+#define SAKEP_MAC_VALIDATION_FAILED -203
+#define SAKEP_INVALID_RECOVERY_DATA_LENGTH -204
+#define SAKEP_IV_CREATE_FAIL -205
+#define SAKEP_SDWAP_FAILED -206
+#define SAKEP_SWAP_FAILED -207
+#define SAKEP_KEY_CREATE_FAIL -208
+#define SAKEP_GD_DECRYPITON_FAIL -209
+#define SAKEP_PASSWORD_TRANSFORM_FAIL -210
+#define SAKEP_INVALID_TRANSFORMED_PADDING -211
+#define SAKEP_ENCRYPT_GX_FAIL -212
+#define SAKEP_DECRYPT_GX_FAIL -213
+#define SAKEP_DECRYPT_GY_FAIL -214
+#define SAKEP_ENCRYPT_GY_FAIL -215
+#define SAKEP_USERID_INVAILD -216 // USERID IS NOT SAME (Peer UserID and My UserID)
+#define SAKEP_ERROR -1
+#define SAKEP_SUCCESS 0
+#define SAKEP_VALIDATION_SUCCESS 0
+
+
+//error Type
+typedef enum {
+ UNSPPORTED_VERSION_ERROR=0x81,
+ INVALID_RECORD_PROTOCOL_ERROR,
+ INTEGRITY_ERROR,
+ INTEGRITY_LENGTH_ERROR,
+ UNEXPECTED_MESSAGE_ERROR,
+ INVALID_CLIENT_HELLO_ERROR,
+ INVALID_SERVER_HELLO_ERROR,
+ INVALID_SERVER_ACK_ERROR,
+ INVALID_CLIENT_ACK_ERROR,
+ INVALID_INITIALSETUP_ERROR,
+ INVALID_TOKEN_REQ_ERROR,
+ INVALID_TOKEN_VALIDATION_REQ_ERROR,
+ INVALID_CLIENT_ACK_PAYLOAD_ERROR,
+ RECORD_ENCRYPTED_ERROR,
+ RECORD_DECRYPTED_ERROR,
+ RECORD_INVALID_INTEGRITY_ERROR,
+ FILE_ENCRYPTED_ERROR,
+ FILE_DECRYPTED_ERROR,
+ UNSPPORTED_ENDECRYPTION_MODE,
+ INVALIED_PARAMETER_ERROR,
+ INVALIED_PAYLOAD_LEN_ERROR,
+ LOGIN_COUNT_LIMITED_ERROR,
+ UNKNOWN_ERROR,
+ GD_DECRYPTION_ERROR,
+ PASSWORD_TRANSFORM_FAIL,
+ SUCCESS=0x00
+}ErrorType;
+
+typedef enum {
+ STATE_IDLE,
+ STATE_WAIT_INITALSETUP,
+ STATE_WAIT_CLIENTHELLO,
+ STATE_WAIT_SERVERHELLO,
+ STATE_WAIT_SERVERACKHELLO,
+ STATE_WAIT_CLIENTACKHELLO,
+ STATE_AKE_CANCEL,
+ STATE_ERROR,
+ STATE_COMPLETED
+
+}AkeState;
+
+typedef struct
+{
+ unsigned char pSharedkey[SAKEP_SHARED_KEY_SIZE];
+ unsigned char pSKPrime[SAKEP_SK_PRIME_KEY_SIZE];
+ unsigned char pPreHashMsg[SAKEP_SHA1_HASH_SIZE];
+ AkeState eState;
+ ErrorType eErrorType;
+// unsigned int nSeqNum;
+// unsigned char pCurrentID[SAKEP_AKE_USERID_LEN];// ID
+}Handle_CTX;
+
+typedef enum
+{
+ SERVER_MODE,
+ CLIENT_MODE
+}ModeType;
+
+
+
+#define ID_MAX_LEN 256
+#define PWD_MAX_LEN 32
+#define TOT_USERCOUNT_LEN 4
+#define ID_PWD_FIELD_LEN 4
+#define USERCOUNT_MAX 8
+#define SPC_LOGIN_LIMITED_COUNT 5
+
+
+
+#define SPC_ENCRYPT_FORMAT_MFEK1_LEN 4
+#define SPC_ENCRYPT_FORMAT_USERID_LEN 4
+#define SPC_ENCRYPT_FORMAT_FILE_LEN 4
+#define SPC_ENCRYPT_FORMAT_FEK1_LEN 4
+#define SPC_ENCRYPT_FORMAT_FEK1_LEN 4
+#define SPC_ENCRYPT_FORMAT_USERMAC_LENGTH_LEN 4
+#define SPC_ENCRYPT_FORMAT_USERMAC_LEN 20
+
+
+
+//Error type
+#define SPC_SUCCESS 0
+#define SPC_FAIL -1
+#define INPUT_ERROR -200
+
+
+typedef struct
+{
+ //unsigned char pUserID[ID_MAX_LEN];
+ unsigned char *pUserID;
+ unsigned int nUserIDLen;
+ unsigned int LoginTryCount;
+ Handle_CTX ctx;
+}SPCHandle_CTX;
+
+
+
+
diff --git a/SPC/Inc/base/ANSI_x931.h b/SPC/Inc/base/ANSI_x931.h
new file mode 100755
index 0000000..dd07c96
--- /dev/null
+++ b/SPC/Inc/base/ANSI_x931.h
@@ -0,0 +1,48 @@
+/**
+ * \file ANSI_x931.h
+ * @brief Pseudorandom number generator based on a design described in ANSI X9.31
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Junbum Shin
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/23
+ */
+
+#ifndef _ANSI_X931_H
+#define _ANSI_X931_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <time.h>
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_RNG_X931
+ * @brief generate random number with seed
+ *
+ * @param Seed [in]seed for RNG System
+ * @param bitLength [in]bit length of data to generate
+ * @param data [out]generated data
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_RNG_X931(cc_u8 *Seed, cc_u32 bitLength, cc_u8 *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/aes.h b/SPC/Inc/base/aes.h
new file mode 100755
index 0000000..6544614
--- /dev/null
+++ b/SPC/Inc/base/aes.h
@@ -0,0 +1,171 @@
+/**
+ * rijndael-alg-fst.h
+ *
+ * @version 3.0 (December 2000)
+ *
+ * Optimised ANSI C code for the Rijndael cipher (now AES)
+ *
+ * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
+ * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
+ * @author Paulo Barreto <paulo.barreto@terra.com.br>
+ *
+ * This code is hereby placed in the public domain.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''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 AUTHORS 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.
+ */
+
+#ifndef _AES_H
+#define _AES_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_rijndaelKeySetupEnc
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param rk [out]expanded round key
+ * @param cipherKey [in]user key
+ * @param keyBits [in]bit-length of cipherKey
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_rijndaelKeySetupEnc(cc_u32 rk[/*4*(Nr + 1)*/], const cc_u8 cipherKey[], int keyBits);
+
+/*
+ * @fn SDRM_rijndaelKeySetupDec
+ * @brief Expand the cipher key into the decryption key schedule
+ *
+ * @param rk [out]expanded round key
+ * @param cipherKey [in]user key
+ * @param keyBits [in]bit-length of cipherKey
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_rijndaelKeySetupDec(cc_u32 rk[/*4*(Nr + 1)*/], const cc_u8 cipherKey[], int keyBits);
+
+/*
+ * @fn SDRM_rijndaelEncrypt
+ * @brief 16 byte AES Encryption with round key
+ *
+ * @param rk [in]expanded round key
+ * @param Nr [in]numer of rounds
+ * @param pt [in]plain text
+ * @param ct [out]cipher text
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_rijndaelEncrypt(const cc_u32 rk[/*4*(Nr + 1)*/], int Nr, const cc_u8 pt[16], cc_u8 ct[16]);
+
+/*
+ * @fn SDRM_rijndaelDecrypt
+ * @brief 16 byte AES Decryption with round key
+ *
+ * @param rk [in]expanded round key
+ * @param Nr [in]numer of rounds
+ * @param ct [in]cipher text
+ * @param pt [out]plain text
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_rijndaelDecrypt(const cc_u32 rk[/*4*(Nr + 1)*/], int Nr, const cc_u8 ct[16], cc_u8 pt[16]);
+
+/*
+ * @fn SDRM_AES128_Encryption
+ * @brief AES-128 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES128_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+
+/*
+ * @fn SDRM_AES128_Decryption
+ * @brief AES-128 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES128_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+/*
+ * @fn SDRM_AES192_Encryption
+ * @brief AES-192 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES192_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+
+/*
+ * @fn SDRM_AES192_Decryption
+ * @brief AES-192 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES192_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+/*
+ * @fn SDRM_AES256_Encryption
+ * @brief AES-256 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES256_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+
+/*
+ * @fn SDRM_AES256_Decryption
+ * @brief AES-256 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES256_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/bignum.h b/SPC/Inc/base/bignum.h
new file mode 100755
index 0000000..035fcdc
--- /dev/null
+++ b/SPC/Inc/base/bignum.h
@@ -0,0 +1,611 @@
+/**
+ * \file bignum.h
+ * @brief big number library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/03
+ */
+
+#ifndef _BIGNUM_H
+#define _BIGNUM_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Parameters and Bit-wise Macros
+////////////////////////////////////////////////////////////////////////////
+/*! @brief byte-length of single cc_u32 */
+#define SDRM_SIZE_OF_DWORD 4
+/*! @brief bit-length of single cc_u32 */
+#define SDRM_BitsInDWORD (8 * SDRM_SIZE_OF_DWORD)
+
+/*! @brief get k-th bit form cc_u32 array A */
+#define SDRM_CheckBitUINT32(A, k) (0x01 & ((A)[(k) >> 5] >> ((k) & 31)))
+
+/*! @brief get k-th byte from cc_u32 array A */
+#define SDRM_CheckByteUINT32(A, k) (cc_u8)(0xff & (A[(k) >> 2] >> (((k) & 3 ) << 3)))
+#define SDRM_isEven0(X) (((X)[0] & 0x01) == 0)
+#define SDRM_isOdd0(X) (((X)[0] & 0x01) == 1)
+
+/*! @brief increase 1 from Byte Array A, byte-length of B */
+#define SDRM_INC_BA(A, B) do { \
+ for (i = 0; i < (B); i++) { \
+ if (++A[i] != 0) break; \
+ } \
+ } while(0) \
+
+////////////////////////////////////////////////////////////////////////////
+// MACROs for cc_u32 Evaluation
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_DIGIT_Mul(Dest, Src1, Src2)
+ * @brief Double-width UINT32 Multiplication
+ * @param Dest [out]destination, 2-cc_u32-size array
+ * @param Src1 [in]first element
+ * @param Src2 [in]second element
+ *
+ * @return void
+ */
+#ifndef _OP64_NOTSUPPORTED
+#define SDRM_DIGIT_Mul(Dest, Src1, Src2) do { \
+ (Dest)[0] = (cc_u32) ((cc_u64)(Src1) * (Src2)); \
+ (Dest)[1] = (cc_u32)(((cc_u64)(Src1) * (Src2)) >> SDRM_BitsInDWORD); \
+ } while(0)
+#else
+CRYPTOCORE_INTERNAL void SDRM_DIGIT_Mul(cc_u32 *Dest, cc_u32 Src1, cc_u32 Src2);
+#endif
+
+/*
+ * @fn SDRM_DIGIT_Div(Src1, Src2, Div)
+ * @brief Doublue-width DWROD Division
+ *
+ * @param Src1 [in]upper-digit of dividend
+ * @param Src2 [in]lower-digit of dividend
+ * @param Div [in]divisor
+ */
+#ifndef _OP64_NOTSUPPORTED
+#define SDRM_DIGIT_Div(Src1, Src2, Div) (cc_u32)((((cc_u64)(Src1) << SDRM_BitsInDWORD) ^ (Src2)) / (Div))
+#else
+CRYPTOCORE_INTERNAL cc_u32 SDRM_DIGIT_Div(cc_u32 Src1, cc_u32 Src2, cc_u32 Div);
+#endif
+
+/*
+ * @fn SDRM_DIGIT_Mod(Src1, Src2, Div)
+ * @brief Doublue-width DWROD Modular
+ *
+ * @param Src1 [in]upper-digit of dividend
+ * @param Src2 [in]lower-digit of dividend
+ * @param Div [in]divisor
+ */
+#ifndef _OP64_NOTSUPPORTED
+#define SDRM_DIGIT_Mod(Src1, Src2, Div) (cc_u32)((((cc_u64)(Src1) << SDRM_BitsInDWORD) ^ (Src2)) % (Div))
+#else
+CRYPTOCORE_INTERNAL cc_u32 SDRM_DIGIT_Mod(cc_u32 Src1, cc_u32 Src2, cc_u32 Div);
+#endif
+
+/*
+ * @fn SDRM_DWD_Copy(Dest, Src, Size)
+ * @brief Copy Digit Array
+ *
+ * @param Dest [in]destination, cc_u32 array
+ * @param Src [in]source, cc_u32 array
+ * @param Size [in]length of dSrc
+ */
+#define SDRM_DWD_Copy(Dest, Src, Size) do { \
+ memcpy(Dest, Src, SDRM_SIZE_OF_DWORD * Size); \
+ } while(0)
+
+////////////////////////////////////////////////////////////////////////////
+// MACROs for Big Number
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_BN_IS_ODD(a)
+ * @brief check big number a is an odd number
+ */
+#define SDRM_BN_IS_ODD(a) ((a)->pData[0] & 1)
+
+/*
+ * @fn SDRM_BN_FREE(X)
+ * @brief free allocated memory
+ */
+#define SDRM_BN_FREE(X) do {if (X) free(X);} while(0)
+
+/*
+ * @fn SDRM_BN_OPTIMIZE_LENGTH(BN
+ * @brief optimize SDRM_BIG_NUM's length member
+ */
+#define SDRM_BN_OPTIMIZE_LENGTH(BN) do { \
+ while((BN)->Length > 0) \
+ if((BN)->pData[(BN)->Length - 1]) \
+ break; \
+ else \
+ (BN)->Length--; \
+ } while(0)
+/*
+ * @fn SDRM_IS_BN_NEGATIVE(X)
+ * @brief check big number's sign
+ */
+#define SDRM_IS_BN_NEGATIVE(X) ((X)->sign)
+
+/*! @brief calc cc_u32-length when byte array is converted to cc_u32 array */
+#define SDRM_B2DLEN(X) ((X) > 0 ? (((X) - 1) >> 2) + 1 : 0)
+
+/*! @brief count byte-length of big number */
+#define SDRM_BN_GETBYTELEN(X, A) do { \
+ if (!((X)->Length)) (A) = 0; \
+ else { \
+ (A) = (X)->Length * 4; \
+ while(SDRM_CheckByteUINT32((X)->pData, (A) - 1) == 0) {(A) -= 1;} \
+ } \
+ } while(0)
+
+/*! @brief count bit-length of big number */
+#define SDRM_BN_GETBITLEN(X, A) do { \
+ if (!((X)->Length)) (A) = 0; \
+ else { \
+ (A) = (X)->Length * SDRM_BitsInDWORD; \
+ while(SDRM_CheckBitUINT32((X)->pData, (A) - 1) == 0) {(A) -= 1;} \
+ } \
+ } while(0)
+
+////////////////////////////////////////////////////////////////////////////
+// Global Variables
+////////////////////////////////////////////////////////////////////////////
+/*! @brief some special big numbers */
+extern CRYPTOCORE_INTERNAL SDRM_BIG_NUM *BN_Zero, *BN_One;
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+CRYPTOCORE_INTERNAL int SDRM_DWD_Classical_REDC(cc_u32 *pdDest, cc_u32 DstLen, cc_u32 *pdModulus, cc_u32 ModLen);
+
+/*
+ * @fn int SDRM_BN2OS(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst)
+ * @brief Convert Big Number to Octet String
+ *
+ * @param BN_Src [in]source integer
+ * @param dDstLen [in]Byte-length of pbDst
+ * @param pbDst [out]output octet string
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if arrary is too small
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN2OS(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst);
+
+/*
+ * @fn int SDRM_OS2BN(cc_u8* pbSrc, cc_u32 dSrcLen, SDRM_BIG_NUM *BN_Dst)
+ * @brief Convert Octet String to Big Number
+ *
+ * @param pbSrc [in]source octet string
+ * @param dSrcLen [in]Byte-length of pbSrc
+ * @param BN_Dst [out]output big number
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if arrary is too small
+ */
+CRYPTOCORE_INTERNAL int SDRM_OS2BN(cc_u8* pbSrc, cc_u32 dSrcLen, SDRM_BIG_NUM *BN_Dst);
+
+/*
+ * @fn int SDRM_I2OSP(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst)
+ * @brief Converts a nonnonegative integer to an octet string of a specified length
+ *
+ * @param BN_Src [in]nonnegative integer to be converted
+ * @param dDstLen [in]intended length of the resulting octet string
+ * @param pbDst [out]corresponding octet string of length dDstLen
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_I2OSP(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst);
+
+/*
+ * @fn int SDRM_BN_Clr(SDRM_BIG_NUM* BN_Src)
+ * @brief Clear the SDRM_BIG_NUM structure
+ *
+ * @param BN_Src [in]source
+ *
+ * @return CRYPTO_SUCCESS
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Clr(SDRM_BIG_NUM* BN_Src);
+
+/*
+ * @fn int SDRM_BN_Copy(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src)
+ * @brief copy SDRM_BIG_NUM
+ *
+ * @param BN_Dest [out]destination
+ * @param BN_Src [in]source
+ *
+ * @return CRYPTO_SUCCESS
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Copy(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src);
+
+/*
+ * @fn SDRM_BIG_NUM *SDRM_BN_Alloc(cc_u8* pbSrc, cc_u32 dSize)
+ * @brief allocate big number from buffer
+ *
+ * @param pbSrc [in]start pointer of buffer
+ * @param dSize [in]buffer size of big number
+ *
+ * @return pointer of SDRM_BIG_NUM structure
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *SDRM_BN_Alloc(cc_u8* pbSrc, cc_u32 dSize);
+
+/*
+ * @fn SDRM_BIG_NUM *SDRM_BN_Init(cc_u32 dSize)
+ * @brief Allocate a new big number object
+ *
+ * @param dSize [in]buffer size of big number
+ *
+ * @return pointer of SDRM_BIG_NUM structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *SDRM_BN_Init(cc_u32 dSize);
+
+/*
+ * @fn int SDRM_BN_Cmp(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief Compare two Big Number
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return 1 if BN_Src1 is larger than pdSrc2
+ * \n 0 if same
+ * \n -1 if BN_Src2 is larger than pdSrc1
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Cmp(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2); // sign 񱳾
+
+/*
+ * @fn int SDRM_BN_Cmp_sign(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief Compare two Big Number considering sign
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return 1 if BN_Src1 is larger than pdSrc2
+ * \n 0 if same
+ * \n -1 if BN_Src2 is larger than pdSrc1
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Cmp_sign(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2); // sign
+
+/*
+ * @fn int SDRM_BN_Rand(SDRM_BIG_NUM *BN_Dst, cc_u32 BitLen)
+ * @brief Generate simple random number
+ *
+ * @param BN_Dst [out]destination
+ * @param BitLen [in]bit-length of generated random number
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Rand(SDRM_BIG_NUM *BN_Dst, cc_u32 BitLen);
+
+/*
+ * @fn int SDRM_BN_SHL(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift)
+ * @brief Big Number Shift Left
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param NumOfShift [in]shift amount
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_SHL(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift);
+
+/*
+ * @fn int SDRM_BN_SHR(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift)
+ * @brief Big Number Shift Right
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param NumOfShift [in]shift amount
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_SHR(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift);
+
+/*
+ * @fn int SDRM_BN_Add(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief Big Number Addition
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Add(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2);
+
+/*
+ * @fn int SDRM_BN_Sub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief Big Number Subtraction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Sub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2);
+
+/*
+ * @fn int SDRM_BN_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief Big Number Multiplication
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2);
+
+/*
+ * @fn int SDRM_BN_Div(SDRM_BIG_NUM *BN_Quotient, SDRM_BIG_NUM *BN_Remainder, SDRM_BIG_NUM *BN_Dividend, SDRM_BIG_NUM *BN_Divisor)
+ * @brief Big Number Division
+ *
+ * @param BN_Quotient [out]quotient
+ * @param BN_Remainder [out]remainder
+ * @param BN_Dividend [in]dividend
+ * @param BN_Divisor [in]divisor
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Div(SDRM_BIG_NUM *BN_Quotient, SDRM_BIG_NUM *BN_Remainder, SDRM_BIG_NUM *BN_Dividend, SDRM_BIG_NUM *BN_Divisor);
+
+/*
+ * @fn int SDRM_BN_ModAdd(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Addition
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element of addition
+ * @param BN_Src2 [in]second element of addition
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModAdd(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModSub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Subtraction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element of subtraction
+ * @param BN_Src2 [in]second element of subtraction
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModSub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModRed(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Reduction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModRed(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModMul(SDRM_BIG_NUM *BN_Res, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Multiplication
+ *
+ * @param BN_Res [out]destination
+ * @param BN_Src1 [in]first element of multiplication
+ * @param BN_Src2 [in]second element of multipliation
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModMul(SDRM_BIG_NUM *BN_Res, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModInv(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Inverse
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]soure
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_NEGATIVE_INPUT if source is negative value
+ * \n CRYPTO_INVERSE_NOT_EXIST if inverse is not exists
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModInv(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModExp(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Exponentiation
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Base [in]base
+ * @param BN_Exponent [in]exponent
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModExp(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn int SDRM_BN_ModExp2(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Big Number Modular Exponentiation2 - Karen's method
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Base [in]base
+ * @param BN_Exponent [in]exponent
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModExp2(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn void SDRM_PrintBN(const char* s, SDRM_BIG_NUM* bn)
+ * @brief Show out a Big Number
+ *
+ * @param level [in]log level
+ * @param s [in]title
+ * @param bn [in]big number to show out
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_PrintBN(const char* s, SDRM_BIG_NUM* bn);
+
+/*
+ * @fn int SDRM_BN_num_bits(SDRM_BIG_NUM *BN_Src)
+ * @brief Calc bit-length of Big Number
+ *
+ * @param BN_Src [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_num_bits(SDRM_BIG_NUM *BN_Src);
+
+/*
+ * @fn int SDRM_UINT32_num_bits(cc_u32 *pdSrc)
+ * @brief Calc bit-length of cc_u32
+ *
+ * @param pdSrc [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_UINT32_num_bits(cc_u32 *pdSrc);
+
+/*
+ * @fn int SDRM_INT_num_bits(int Src)
+ * @brief Calc bit-length of integer
+ *
+ * @param Src [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_INT_num_bits(int Src);
+
+/*
+ * @fn int SDRM_MONT_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_MONT *Mont)
+ * @brief Montgomery Multiplication
+ *
+ * @param BN_Dst [out]destination, montgomery number
+ * @param BN_Src1 [in]first element, montgomery number
+ * @param BN_Src2 [in]second element, montgomery number
+ * @param Mont [in]montgomery parameters
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_MONT_Zn2rzn(DST, SRC1, MONT)
+ * @brief Convert normal number to Montgomery number
+ * @param Dst [out]destination, montgomery number
+ * @param SRC1 [in]source, normal number
+ * @param MONT [in]montgomery parameters
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+#define SDRM_MONT_Zn2rzn(DST, SRC1, MONT) SDRM_MONT_Mul(DST, SRC1, (MONT)->R, MONT)
+
+/*
+ * @fn int SDRM_MONT_Rzn2zn(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_MONT *Mont)
+ * @brief Convert Montgomery number to normal number
+ *
+ * @param BN_Dst [out]destination, normal number
+ * @param BN_Src1 [in]source, montgomery number
+ * @param Mont [in]montgomery parameters
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Rzn2zn(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_BIG_MONT *SDRM_MONT_Init(cc_u32 dSize)
+ * @brief Allocate new momory for Montgomery parameter
+ *
+ * @param dSize [in]size of buffer of big number
+ *
+ * @return Pointer to created structure
+ * \n NULL if malloc failed
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_MONT *SDRM_MONT_Init(cc_u32 dSize);
+
+/*
+ * @fn int SDRM_MONT_Set(SDRM_BIG_MONT *Mont, SDRM_BIG_NUM *BN_Modulus)
+ * @brief Set Montgomery parameters
+ *
+ * @param Mont [out]montgomery parameter
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n BN_NOT_ENOUGHT_BUFFER if malloc is failed
+ * \n CRYPTO_INVERSE_NOT_EXIST if inverse is not exists
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Set(SDRM_BIG_MONT *Mont, SDRM_BIG_NUM *BN_Modulus);
+
+/*
+ * @fn void SDRM_MONT_Free(SDRM_BIG_MONT *Mont)
+ * @brief Free allocated memory for montgomery paramter
+ *
+ * @param Mont [in]montgomery parameters
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_MONT_Free(SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn int SDRM_BN_CheckRelativelyPrime(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+ * @brief get gcd of two big number
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_ISPRIME if two elements are relatively prime
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR otherwise
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_CheckRelativelyPrime(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2);
+
+/*
+ * @fn int SDRM_BN_MILLER_RABIN(SDRM_BIG_NUM* n, cc_u32 t)
+ * @brief MILLER_RABIN Test
+ *
+ * @param n [in]value to test
+ * @param t [in]security parameter
+ *
+ * @return CRYPTO_ISPRIME if n is (probably) prime
+ * \n CRYPTO_INVALID_ARGUMENT if n is composite
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_MILLER_RABIN(SDRM_BIG_NUM* n, cc_u32 t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _BIGNUM_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/des.h b/SPC/Inc/base/des.h
new file mode 100755
index 0000000..ed0057b
--- /dev/null
+++ b/SPC/Inc/base/des.h
@@ -0,0 +1,411 @@
+/**
+ * \file des.h
+ * @brief high-speed implementation of DES
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/06
+ */
+
+#ifndef _DES_H
+#define _DES_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Define Constants
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_DES_NUM_OF_ROUNDS 16
+
+////////////////////////////////////////////////////////////////////////////
+// Macros
+////////////////////////////////////////////////////////////////////////////
+/*! @brief circular left and right shifts for cc_u32 */
+#ifdef _MSC_VER
+ #define SDRM_rotl32(A, B) _lrotl((A), (B))
+ #define SDRM_rotr32(A, B) _lrotr((A), (B))
+#else
+ #define SDRM_rotl32(A, B) (((A) << (B)) + ((A) >> (32 - (B))))
+ #define SDRM_rotr32(A, B) (((A) >> (B)) + ((A) << (32 - (B))))
+#endif
+
+/*! @brief permutation operation */
+#define SDRM_PERM_OP(a,b,t,n,m) { \
+ (t) = ((((a)>>(n))^(b))&(m)); \
+ (b) ^= (t); \
+ (a) ^= ((t)<<(n)); \
+}
+
+/*! @brief initial permutation */
+#define SDRM_IP(l,r) { \
+ cc_u32 tt; \
+ SDRM_PERM_OP(r,l,tt, 4,0x0f0f0f0f); \
+ SDRM_PERM_OP(l,r,tt,16,0x0000ffff); \
+ SDRM_PERM_OP(r,l,tt, 2,0x33333333); \
+ SDRM_PERM_OP(l,r,tt, 8,0x00ff00ff); \
+ SDRM_PERM_OP(r,l,tt, 1,0x55555555); \
+}
+
+/*! @brief inverse of initial permutation */
+#define SDRM_INV_IP(l,r) { \
+ cc_u32 tt; \
+ SDRM_PERM_OP(l,r,tt, 1,0x55555555); \
+ SDRM_PERM_OP(r,l,tt, 8,0x00ff00ff); \
+ SDRM_PERM_OP(l,r,tt, 2,0x33333333); \
+ SDRM_PERM_OP(r,l,tt,16,0x0000ffff); \
+ SDRM_PERM_OP(l,r,tt, 4,0x0f0f0f0f); \
+}
+
+/*! @brief encrypt one round */
+#define SDRM_D_ENCRYPT(L,R) { \
+ u = R ^ RoundKey[i][0]; \
+ t = R ^ RoundKey[i][1]; \
+ t = SDRM_rotr32(t, 4); \
+ L^= SDRM_DES_SPtrans[0][(u >> 2U) & 0x3f]^ \
+ SDRM_DES_SPtrans[2][(u >> 10U) & 0x3f]^ \
+ SDRM_DES_SPtrans[4][(u >> 18U) & 0x3f]^ \
+ SDRM_DES_SPtrans[6][(u >> 26U) & 0x3f]^ \
+ SDRM_DES_SPtrans[1][(t >> 2U) & 0x3f]^ \
+ SDRM_DES_SPtrans[3][(t >> 10U) & 0x3f]^ \
+ SDRM_DES_SPtrans[5][(t >> 18U) & 0x3f]^ \
+ SDRM_DES_SPtrans[7][(t >> 26U) & 0x3f]; \
+}
+
+////////////////////////////////////////////////////////////////////////////
+// static values - specified in FIPS 46
+////////////////////////////////////////////////////////////////////////////
+static const cc_u8 SDRM_DES_KS_SHIFT[16] = {1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1};
+
+static const cc_u32 SDRM_DES_BitMask[] = {
+ 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01
+};
+
+static const cc_u8 SDRM_DES_KS_PC1[] = {
+ 56, 48, 40, 32, 24, 16, 8,
+ 0, 57, 49, 41, 33, 25, 17,
+ 9, 1, 58, 50, 42, 34, 26,
+ 18, 10, 2, 59, 51, 43, 35,
+
+ 62, 54, 46, 38, 30, 22, 14,
+ 6, 61, 53, 45, 37, 29, 21,
+ 13, 5, 60, 52, 44, 36, 28,
+ 20, 12, 4, 27, 19, 11, 3
+};
+
+static const cc_u32 SDRM_des_skb[8][64]={
+ {
+ /* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
+ 0x00000000L,0x00000010L,0x20000000L,0x20000010L,
+ 0x00010000L,0x00010010L,0x20010000L,0x20010010L,
+ 0x00000800L,0x00000810L,0x20000800L,0x20000810L,
+ 0x00010800L,0x00010810L,0x20010800L,0x20010810L,
+ 0x00000020L,0x00000030L,0x20000020L,0x20000030L,
+ 0x00010020L,0x00010030L,0x20010020L,0x20010030L,
+ 0x00000820L,0x00000830L,0x20000820L,0x20000830L,
+ 0x00010820L,0x00010830L,0x20010820L,0x20010830L,
+ 0x00080000L,0x00080010L,0x20080000L,0x20080010L,
+ 0x00090000L,0x00090010L,0x20090000L,0x20090010L,
+ 0x00080800L,0x00080810L,0x20080800L,0x20080810L,
+ 0x00090800L,0x00090810L,0x20090800L,0x20090810L,
+ 0x00080020L,0x00080030L,0x20080020L,0x20080030L,
+ 0x00090020L,0x00090030L,0x20090020L,0x20090030L,
+ 0x00080820L,0x00080830L,0x20080820L,0x20080830L,
+ 0x00090820L,0x00090830L,0x20090820L,0x20090830L,
+ },
+ {
+ /* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
+ 0x00000000L,0x02000000L,0x00002000L,0x02002000L,
+ 0x00200000L,0x02200000L,0x00202000L,0x02202000L,
+ 0x00000004L,0x02000004L,0x00002004L,0x02002004L,
+ 0x00200004L,0x02200004L,0x00202004L,0x02202004L,
+ 0x00000400L,0x02000400L,0x00002400L,0x02002400L,
+ 0x00200400L,0x02200400L,0x00202400L,0x02202400L,
+ 0x00000404L,0x02000404L,0x00002404L,0x02002404L,
+ 0x00200404L,0x02200404L,0x00202404L,0x02202404L,
+ 0x10000000L,0x12000000L,0x10002000L,0x12002000L,
+ 0x10200000L,0x12200000L,0x10202000L,0x12202000L,
+ 0x10000004L,0x12000004L,0x10002004L,0x12002004L,
+ 0x10200004L,0x12200004L,0x10202004L,0x12202004L,
+ 0x10000400L,0x12000400L,0x10002400L,0x12002400L,
+ 0x10200400L,0x12200400L,0x10202400L,0x12202400L,
+ 0x10000404L,0x12000404L,0x10002404L,0x12002404L,
+ 0x10200404L,0x12200404L,0x10202404L,0x12202404L,
+ },
+ {
+ /* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
+ 0x00000000L,0x00000001L,0x00040000L,0x00040001L,
+ 0x01000000L,0x01000001L,0x01040000L,0x01040001L,
+ 0x00000002L,0x00000003L,0x00040002L,0x00040003L,
+ 0x01000002L,0x01000003L,0x01040002L,0x01040003L,
+ 0x00000200L,0x00000201L,0x00040200L,0x00040201L,
+ 0x01000200L,0x01000201L,0x01040200L,0x01040201L,
+ 0x00000202L,0x00000203L,0x00040202L,0x00040203L,
+ 0x01000202L,0x01000203L,0x01040202L,0x01040203L,
+ 0x08000000L,0x08000001L,0x08040000L,0x08040001L,
+ 0x09000000L,0x09000001L,0x09040000L,0x09040001L,
+ 0x08000002L,0x08000003L,0x08040002L,0x08040003L,
+ 0x09000002L,0x09000003L,0x09040002L,0x09040003L,
+ 0x08000200L,0x08000201L,0x08040200L,0x08040201L,
+ 0x09000200L,0x09000201L,0x09040200L,0x09040201L,
+ 0x08000202L,0x08000203L,0x08040202L,0x08040203L,
+ 0x09000202L,0x09000203L,0x09040202L,0x09040203L,
+ },
+ {
+ /* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
+ 0x00000000L,0x00100000L,0x00000100L,0x00100100L,
+ 0x00000008L,0x00100008L,0x00000108L,0x00100108L,
+ 0x00001000L,0x00101000L,0x00001100L,0x00101100L,
+ 0x00001008L,0x00101008L,0x00001108L,0x00101108L,
+ 0x04000000L,0x04100000L,0x04000100L,0x04100100L,
+ 0x04000008L,0x04100008L,0x04000108L,0x04100108L,
+ 0x04001000L,0x04101000L,0x04001100L,0x04101100L,
+ 0x04001008L,0x04101008L,0x04001108L,0x04101108L,
+ 0x00020000L,0x00120000L,0x00020100L,0x00120100L,
+ 0x00020008L,0x00120008L,0x00020108L,0x00120108L,
+ 0x00021000L,0x00121000L,0x00021100L,0x00121100L,
+ 0x00021008L,0x00121008L,0x00021108L,0x00121108L,
+ 0x04020000L,0x04120000L,0x04020100L,0x04120100L,
+ 0x04020008L,0x04120008L,0x04020108L,0x04120108L,
+ 0x04021000L,0x04121000L,0x04021100L,0x04121100L,
+ 0x04021008L,0x04121008L,0x04021108L,0x04121108L,
+ },
+ {
+ /* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
+ 0x00000000L,0x10000000L,0x00010000L,0x10010000L,
+ 0x00000004L,0x10000004L,0x00010004L,0x10010004L,
+ 0x20000000L,0x30000000L,0x20010000L,0x30010000L,
+ 0x20000004L,0x30000004L,0x20010004L,0x30010004L,
+ 0x00100000L,0x10100000L,0x00110000L,0x10110000L,
+ 0x00100004L,0x10100004L,0x00110004L,0x10110004L,
+ 0x20100000L,0x30100000L,0x20110000L,0x30110000L,
+ 0x20100004L,0x30100004L,0x20110004L,0x30110004L,
+ 0x00001000L,0x10001000L,0x00011000L,0x10011000L,
+ 0x00001004L,0x10001004L,0x00011004L,0x10011004L,
+ 0x20001000L,0x30001000L,0x20011000L,0x30011000L,
+ 0x20001004L,0x30001004L,0x20011004L,0x30011004L,
+ 0x00101000L,0x10101000L,0x00111000L,0x10111000L,
+ 0x00101004L,0x10101004L,0x00111004L,0x10111004L,
+ 0x20101000L,0x30101000L,0x20111000L,0x30111000L,
+ 0x20101004L,0x30101004L,0x20111004L,0x30111004L,
+ },
+ {
+ /* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
+ 0x00000000L,0x08000000L,0x00000008L,0x08000008L,
+ 0x00000400L,0x08000400L,0x00000408L,0x08000408L,
+ 0x00020000L,0x08020000L,0x00020008L,0x08020008L,
+ 0x00020400L,0x08020400L,0x00020408L,0x08020408L,
+ 0x00000001L,0x08000001L,0x00000009L,0x08000009L,
+ 0x00000401L,0x08000401L,0x00000409L,0x08000409L,
+ 0x00020001L,0x08020001L,0x00020009L,0x08020009L,
+ 0x00020401L,0x08020401L,0x00020409L,0x08020409L,
+ 0x02000000L,0x0A000000L,0x02000008L,0x0A000008L,
+ 0x02000400L,0x0A000400L,0x02000408L,0x0A000408L,
+ 0x02020000L,0x0A020000L,0x02020008L,0x0A020008L,
+ 0x02020400L,0x0A020400L,0x02020408L,0x0A020408L,
+ 0x02000001L,0x0A000001L,0x02000009L,0x0A000009L,
+ 0x02000401L,0x0A000401L,0x02000409L,0x0A000409L,
+ 0x02020001L,0x0A020001L,0x02020009L,0x0A020009L,
+ 0x02020401L,0x0A020401L,0x02020409L,0x0A020409L,
+ },
+ {
+ /* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
+ 0x00000000L,0x00000100L,0x00080000L,0x00080100L,
+ 0x01000000L,0x01000100L,0x01080000L,0x01080100L,
+ 0x00000010L,0x00000110L,0x00080010L,0x00080110L,
+ 0x01000010L,0x01000110L,0x01080010L,0x01080110L,
+ 0x00200000L,0x00200100L,0x00280000L,0x00280100L,
+ 0x01200000L,0x01200100L,0x01280000L,0x01280100L,
+ 0x00200010L,0x00200110L,0x00280010L,0x00280110L,
+ 0x01200010L,0x01200110L,0x01280010L,0x01280110L,
+ 0x00000200L,0x00000300L,0x00080200L,0x00080300L,
+ 0x01000200L,0x01000300L,0x01080200L,0x01080300L,
+ 0x00000210L,0x00000310L,0x00080210L,0x00080310L,
+ 0x01000210L,0x01000310L,0x01080210L,0x01080310L,
+ 0x00200200L,0x00200300L,0x00280200L,0x00280300L,
+ 0x01200200L,0x01200300L,0x01280200L,0x01280300L,
+ 0x00200210L,0x00200310L,0x00280210L,0x00280310L,
+ 0x01200210L,0x01200310L,0x01280210L,0x01280310L,
+ },
+ {
+ /* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
+ 0x00000000L,0x04000000L,0x00040000L,0x04040000L,
+ 0x00000002L,0x04000002L,0x00040002L,0x04040002L,
+ 0x00002000L,0x04002000L,0x00042000L,0x04042000L,
+ 0x00002002L,0x04002002L,0x00042002L,0x04042002L,
+ 0x00000020L,0x04000020L,0x00040020L,0x04040020L,
+ 0x00000022L,0x04000022L,0x00040022L,0x04040022L,
+ 0x00002020L,0x04002020L,0x00042020L,0x04042020L,
+ 0x00002022L,0x04002022L,0x00042022L,0x04042022L,
+ 0x00000800L,0x04000800L,0x00040800L,0x04040800L,
+ 0x00000802L,0x04000802L,0x00040802L,0x04040802L,
+ 0x00002800L,0x04002800L,0x00042800L,0x04042800L,
+ 0x00002802L,0x04002802L,0x00042802L,0x04042802L,
+ 0x00000820L,0x04000820L,0x00040820L,0x04040820L,
+ 0x00000822L,0x04000822L,0x00040822L,0x04040822L,
+ 0x00002820L,0x04002820L,0x00042820L,0x04042820L,
+ 0x00002822L,0x04002822L,0x00042822L,0x04042822L,
+ }
+};
+
+static const cc_u32 SDRM_DES_SPtrans[8][64]={
+ // nibble 0
+ {
+ 0x02080800, 0x00080000, 0x02000002, 0x02080802, 0x02000000, 0x00080802, 0x00080002, 0x02000002,
+ 0x00080802, 0x02080800, 0x02080000, 0x00000802, 0x02000802, 0x02000000, 0x00000000, 0x00080002,
+ 0x00080000, 0x00000002, 0x02000800, 0x00080800, 0x02080802, 0x02080000, 0x00000802, 0x02000800,
+ 0x00000002, 0x00000800, 0x00080800, 0x02080002, 0x00000800, 0x02000802, 0x02080002, 0x00000000,
+ 0x00000000, 0x02080802, 0x02000800, 0x00080002, 0x02080800, 0x00080000, 0x00000802, 0x02000800,
+ 0x02080002, 0x00000800, 0x00080800, 0x02000002, 0x00080802, 0x00000002, 0x02000002, 0x02080000,
+ 0x02080802, 0x00080800, 0x02080000, 0x02000802, 0x02000000, 0x00000802, 0x00080002, 0x00000000,
+ 0x00080000, 0x02000000, 0x02000802, 0x02080800, 0x00000002, 0x02080002, 0x00000800, 0x00080802
+ },
+ // nibble 1
+ {
+ 0x40108010, 0x00000000, 0x00108000, 0x40100000, 0x40000010, 0x00008010, 0x40008000, 0x00108000,
+ 0x00008000, 0x40100010, 0x00000010, 0x40008000, 0x00100010, 0x40108000, 0x40100000, 0x00000010,
+ 0x00100000, 0x40008010, 0x40100010, 0x00008000, 0x00108010, 0x40000000, 0x00000000, 0x00100010,
+ 0x40008010, 0x00108010, 0x40108000, 0x40000010, 0x40000000, 0x00100000, 0x00008010, 0x40108010,
+ 0x00100010, 0x40108000, 0x40008000, 0x00108010, 0x40108010, 0x00100010, 0x40000010, 0x00000000,
+ 0x40000000, 0x00008010, 0x00100000, 0x40100010, 0x00008000, 0x40000000, 0x00108010, 0x40008010,
+ 0x40108000, 0x00008000, 0x00000000, 0x40000010, 0x00000010, 0x40108010, 0x00108000, 0x40100000,
+ 0x40100010, 0x00100000, 0x00008010, 0x40008000, 0x40008010, 0x00000010, 0x40100000, 0x00108000
+ },
+ // nibble 2
+ {
+ 0x04000001, 0x04040100, 0x00000100, 0x04000101, 0x00040001, 0x04000000, 0x04000101, 0x00040100,
+ 0x04000100, 0x00040000, 0x04040000, 0x00000001, 0x04040101, 0x00000101, 0x00000001, 0x04040001,
+ 0x00000000, 0x00040001, 0x04040100, 0x00000100, 0x00000101, 0x04040101, 0x00040000, 0x04000001,
+ 0x04040001, 0x04000100, 0x00040101, 0x04040000, 0x00040100, 0x00000000, 0x04000000, 0x00040101,
+ 0x04040100, 0x00000100, 0x00000001, 0x00040000, 0x00000101, 0x00040001, 0x04040000, 0x04000101,
+ 0x00000000, 0x04040100, 0x00040100, 0x04040001, 0x00040001, 0x04000000, 0x04040101, 0x00000001,
+ 0x00040101, 0x04000001, 0x04000000, 0x04040101, 0x00040000, 0x04000100, 0x04000101, 0x00040100,
+ 0x04000100, 0x00000000, 0x04040001, 0x00000101, 0x04000001, 0x00040101, 0x00000100, 0x04040000
+ },
+ // nibble 3
+ {
+ 0x00401008, 0x10001000, 0x00000008, 0x10401008, 0x00000000, 0x10400000, 0x10001008, 0x00400008,
+ 0x10401000, 0x10000008, 0x10000000, 0x00001008, 0x10000008, 0x00401008, 0x00400000, 0x10000000,
+ 0x10400008, 0x00401000, 0x00001000, 0x00000008, 0x00401000, 0x10001008, 0x10400000, 0x00001000,
+ 0x00001008, 0x00000000, 0x00400008, 0x10401000, 0x10001000, 0x10400008, 0x10401008, 0x00400000,
+ 0x10400008, 0x00001008, 0x00400000, 0x10000008, 0x00401000, 0x10001000, 0x00000008, 0x10400000,
+ 0x10001008, 0x00000000, 0x00001000, 0x00400008, 0x00000000, 0x10400008, 0x10401000, 0x00001000,
+ 0x10000000, 0x10401008, 0x00401008, 0x00400000, 0x10401008, 0x00000008, 0x10001000, 0x00401008,
+ 0x00400008, 0x00401000, 0x10400000, 0x10001008, 0x00001008, 0x10000000, 0x10000008, 0x10401000
+ },
+ // nibble 4
+ {
+ 0x08000000, 0x00010000, 0x00000400, 0x08010420, 0x08010020, 0x08000400, 0x00010420, 0x08010000,
+ 0x00010000, 0x00000020, 0x08000020, 0x00010400, 0x08000420, 0x08010020, 0x08010400, 0x00000000,
+ 0x00010400, 0x08000000, 0x00010020, 0x00000420, 0x08000400, 0x00010420, 0x00000000, 0x08000020,
+ 0x00000020, 0x08000420, 0x08010420, 0x00010020, 0x08010000, 0x00000400, 0x00000420, 0x08010400,
+ 0x08010400, 0x08000420, 0x00010020, 0x08010000, 0x00010000, 0x00000020, 0x08000020, 0x08000400,
+ 0x08000000, 0x00010400, 0x08010420, 0x00000000, 0x00010420, 0x08000000, 0x00000400, 0x00010020,
+ 0x08000420, 0x00000400, 0x00000000, 0x08010420, 0x08010020, 0x08010400, 0x00000420, 0x00010000,
+ 0x00010400, 0x08010020, 0x08000400, 0x00000420, 0x00000020, 0x00010420, 0x08010000, 0x08000020
+ },
+ // nibble 5
+ {
+ 0x80000040, 0x00200040, 0x00000000, 0x80202000, 0x00200040, 0x00002000, 0x80002040, 0x00200000,
+ 0x00002040, 0x80202040, 0x00202000, 0x80000000, 0x80002000, 0x80000040, 0x80200000, 0x00202040,
+ 0x00200000, 0x80002040, 0x80200040, 0x00000000, 0x00002000, 0x00000040, 0x80202000, 0x80200040,
+ 0x80202040, 0x80200000, 0x80000000, 0x00002040, 0x00000040, 0x00202000, 0x00202040, 0x80002000,
+ 0x00002040, 0x80000000, 0x80002000, 0x00202040, 0x80202000, 0x00200040, 0x00000000, 0x80002000,
+ 0x80000000, 0x00002000, 0x80200040, 0x00200000, 0x00200040, 0x80202040, 0x00202000, 0x00000040,
+ 0x80202040, 0x00202000, 0x00200000, 0x80002040, 0x80000040, 0x80200000, 0x00202040, 0x00000000,
+ 0x00002000, 0x80000040, 0x80002040, 0x80202000, 0x80200000, 0x00002040, 0x00000040, 0x80200040
+ },
+
+ // nibble 6
+ {
+ 0x00004000, 0x00000200, 0x01000200, 0x01000004, 0x01004204, 0x00004004, 0x00004200, 0x00000000,
+ 0x01000000, 0x01000204, 0x00000204, 0x01004000, 0x00000004, 0x01004200, 0x01004000, 0x00000204,
+ 0x01000204, 0x00004000, 0x00004004, 0x01004204, 0x00000000, 0x01000200, 0x01000004, 0x00004200,
+ 0x01004004, 0x00004204, 0x01004200, 0x00000004, 0x00004204, 0x01004004, 0x00000200, 0x01000000,
+ 0x00004204, 0x01004000, 0x01004004, 0x00000204, 0x00004000, 0x00000200, 0x01000000, 0x01004004,
+ 0x01000204, 0x00004204, 0x00004200, 0x00000000, 0x00000200, 0x01000004, 0x00000004, 0x01000200,
+ 0x00000000, 0x01000204, 0x01000200, 0x00004200, 0x00000204, 0x00004000, 0x01004204, 0x01000000,
+ 0x01004200, 0x00000004, 0x00004004, 0x01004204, 0x01000004, 0x01004200, 0x01004000, 0x00004004
+ },
+ // nibble 7
+ {
+ 0x20800080, 0x20820000, 0x00020080, 0x00000000, 0x20020000, 0x00800080, 0x20800000, 0x20820080,
+ 0x00000080, 0x20000000, 0x00820000, 0x00020080, 0x00820080, 0x20020080, 0x20000080, 0x20800000,
+ 0x00020000, 0x00820080, 0x00800080, 0x20020000, 0x20820080, 0x20000080, 0x00000000, 0x00820000,
+ 0x20000000, 0x00800000, 0x20020080, 0x20800080, 0x00800000, 0x00020000, 0x20820000, 0x00000080,
+ 0x00800000, 0x00020000, 0x20000080, 0x20820080, 0x00020080, 0x20000000, 0x00000000, 0x00820000,
+ 0x20800080, 0x20020080, 0x20020000, 0x00800080, 0x20820000, 0x00000080, 0x00800080, 0x20020000,
+ 0x20820080, 0x00800000, 0x20800000, 0x20000080, 0x00820000, 0x00020080, 0x20020080, 0x20800000,
+ 0x00000080, 0x20820000, 0x00820080, 0x00000000, 0x20000000, 0x20800080, 0x00020000, 0x00820080
+ }
+};
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_DES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 RKPos, cc_u32 RKStep)
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param RoundKey [out]generated round key
+ * @param UserKey [in]user key, 8 byte
+ * @param RKPos [in]index of round key starts
+ * @param RKStep [in]step for index
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 RKPos, cc_u32 RKStep);
+
+/*
+ * @fn int SDRM_DES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out)
+ * @brief DES processing for one block
+ *
+ * @param RoundKey [in]expanded round key
+ * @param msg [in]8 byte plaintext
+ * @param out [out]8 byte ciphertext
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out);
+
+/*
+ * @fn int SDRM_DES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+ * @brief one block DES Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+
+/*
+ * @fn int SDRM_DES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+ * @brief one block DES Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/ecc.h b/SPC/Inc/base/ecc.h
new file mode 100755
index 0000000..36eb611
--- /dev/null
+++ b/SPC/Inc/base/ecc.h
@@ -0,0 +1,248 @@
+/**
+ * \file ecc.h
+ * @brief ecc library based on big number
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jiyoung Moon
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/05/03
+ * Note : optimized by Jiyoung Moon & Jisoon Park, August,2006.
+ */
+
+#ifndef _ECC_H
+#define _ECC_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+#include "bignum.h"
+#include "sha1.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_MAX_DIMENSION_ECC 256
+#define SDRM_SIZE_OF_ECC_KEY (SDRM_SIZE_OF_DWORD * SDRM_ECC_BN_BUFSIZE)
+
+////////////////////////////////////////////////////////////////////////////
+// Macros for ECC
+////////////////////////////////////////////////////////////////////////////
+#define SDRM_EC_FREE(X) if (X) {free(X);}
+
+#define SDRM_EC_SET_ZERO(A) do { \
+ memset((A), 0, sizeof(SDRM_EC_POINT) + SDRM_ECC_ALLOC_SIZE * 5); \
+ (A)->IsInfinity = 0; \
+ A->x = SDRM_BN_Alloc((cc_u8*)A + sizeof(SDRM_EC_POINT), SDRM_ECC_BN_BUFSIZE); \
+ A->y = SDRM_BN_Alloc((cc_u8*)A->x + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE); \
+ A->z = SDRM_BN_Alloc((cc_u8*)A->y + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE); \
+ A->z2 = SDRM_BN_Alloc((cc_u8*)A->z + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE); \
+ A->z3 = SDRM_BN_Alloc((cc_u8*)A->z2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE); \
+ } while(0)
+
+#define SDRM_EC_CLR(A) SDRM_EC_SET_ZERO(A)
+
+#define SDRM_ECC_Clr(A) do { \
+ SDRM_BN_Clr((A)->ECC_p); \
+ SDRM_BN_Clr((A)->ECC_A); \
+ SDRM_BN_Clr((A)->ECC_b); \
+ SDRM_BN_Clr((A)->ECC_n); \
+ SDRM_BN_Clr((A)->PRIV_KEY); \
+ EC_Clr((A)->ECC_G); \
+ EC_Clr((A)->PUBLIC_KEY); \
+ } while(0)
+
+#define SDRM_ECC_FREE(X) do { \
+ if ((X)) { \
+ SDRM_BN_FREE(X->ECC_a); \
+ SDRM_EC_FREE(X->ECC_G); \
+ SDRM_EC_FREE(X->PUBLIC_KEY); \
+ SDRM_EC_FREE(X); \
+ } \
+ } while(0)
+
+#define SDRM_EC_COPY(A, B) do { \
+ (A)->IsInfinity = (B)->IsInfinity; \
+ SDRM_BN_Copy((A)->x, (B)->x); \
+ SDRM_BN_Copy((A)->y, (B)->y); \
+ SDRM_BN_Copy((A)->z, (B)->z); \
+ SDRM_BN_Copy((A)->z2, (B)->z2); \
+ SDRM_BN_Copy((A)->z3, (B)->z3); \
+ } while(0)
+
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+///// ECC Լ
+/*
+ * @fn SDRM_ECC_Init
+ * @brief return SDRM_EC_POINT structure
+ *
+ * @return address of allocate structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_EC_POINT *SDRM_ECC_Init(void);
+
+/*
+ * @fn SDRM_CURVE_Init
+ * @brief return SDRM_ECC_CTX structure
+ *
+ * @return address of allocate structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_ECC_CTX *SDRM_CURVE_Init(void);
+
+///// ECC Point Լ
+/*
+ * @fn SDRM_CTX_EC_Chain
+ * @brief Chain Լ
+ *
+ * signed window method : size of window = 4
+ * chain for addition/subtraction of k Using sliding window method
+ * @param chain [out]destination
+ * @param L_Src [in]byte-length of chain
+ * @param Len_Src [in]number of doubling in chain
+ * @param k [in]source
+ * @param window_size [in]size of window
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if given value is incorrect
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Chain(signed char *chain, cc_u32 *L_Src, cc_u32 *Len_Src, SDRM_BIG_NUM *k, int window_size);
+
+/*
+ * @fn SDRM_CTX_EC_kP
+ * @brief get EC_Dst = kP by Montgomery Method
+ *
+ * @param ctx [in]ecc context
+ * @param EC_Dst [out]destination
+ * @param EC_Src [in]first element(P)
+ * @param k [in]second element(k)
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if the arguemnt represents a minus value
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_INFINITY_INPUT if the argument is a infinity value
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_kP(SDRM_ECC_CTX *ctx, SDRM_EC_POINT* EC_Dst, SDRM_EC_POINT *EC_Src, SDRM_BIG_NUM *k);
+
+/*
+ * @fn SDRM_CTX_EC_2kP
+ * @brief get EC_Dst = k1*C1 + k2*C2
+ *
+ * @param ctx [in]ecc context
+ * @param EC_Dst [out]destination
+ * @param k1 [in]first element(k1)
+ * @param EC_Src1 [in]second element(C1)
+ * @param k2 [in]third element(k2)
+ * @param EC_Src2 [in]fourth element(C2)
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if the arguemnt represents a minus value
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_INFINITY_INPUT if the argument is a infinity value
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_2kP(SDRM_ECC_CTX *ctx, SDRM_EC_POINT *EC_Dst, SDRM_BIG_NUM *k1, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *k2, SDRM_EC_POINT *EC_Src2);
+
+///// Functions of Converting Coordingate
+/*
+ * @fn SDRM_Mont_Jm2Jc
+ * @brief ǥȯ 1
+ * Modified Jacobian => Chundnovsky Jacobian
+ * (A->y) <= (A->y)/2
+ * (A->z2) <= (A->z)^2
+ * (A->z3) <= (A->z)^3
+ *
+ * @param EC_Dst [out]destination
+ * @param new_a [in]first element
+ * @param new_b [in]second element
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_Mont_Jm2Jc(SDRM_EC_POINT *EC_Dst, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_Mont_Jc2Jm
+ * @brief ǥȯ 2
+ * Chundnovsky Jacobian => Modified Jacobian
+ * (A->y) <= 2*(A->y)
+ * (A->z2) <= new_a*(A->z)^4
+ * @param A [out]destination
+ * @param new_a [in]first element
+ * @param new_b [in]second element
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_Mont_Jc2Jm(SDRM_EC_POINT *A, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_CTX_EC_Add_Jc
+ * @brief Chundnovsky Jacobian coordinate
+ * using montgomery (A = B + C)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param EC_Src2 [in]second element(C)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Add_Jc(SDRM_EC_POINT* EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_EC_POINT *EC_Src2, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_CTX_EC_Double_Jc
+ * @brief Chundnovsky Jacobian coordinate
+ * montgomery (A = 2B)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Double_Jc(SDRM_EC_POINT *EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont);
+
+/*
+ * @fn SDRM_CTX_EC_Double_Jm
+ * @brief Modified Jacobian coordinate
+ * montgomery (A = 2B)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Double_Jm(SDRM_EC_POINT *EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _ECC_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/fast_math.h b/SPC/Inc/base/fast_math.h
new file mode 100755
index 0000000..c0f4cbb
--- /dev/null
+++ b/SPC/Inc/base/fast_math.h
@@ -0,0 +1,290 @@
+/**
+ * @file fast_math.h
+ * @brief Header file for fast_mathf.c
+ *
+ * [Optional] Detail description (major features, interface description, flow of control, and so on)
+ * @see [Optional] Related information
+
+ * Copyright 2008 by Samsung Electronics, Inc.,
+ *
+ * This software is the confidential and proprietary information
+ * of Samsung Electronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement
+ * you entered into with Samsung.
+ *
+ * \internal
+ * Author : Karen Ispiryan
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2008/08/28
+*/
+
+#ifndef FAST_MATH_H
+#define FAST_MATH_H
+
+#include "CC_Type.h"
+
+#ifndef _OP64_NOTSUPPORTED
+# define ORD_32
+#else
+# define ORD_16
+#endif //_OP64_NOTSUPPORTED
+
+/* when we have only 16 bit processor available */
+#ifdef ORD_16
+
+typedef cc_u16 BasicWord;
+typedef cc_u32 BasicDWord;
+
+#define DIV_BY_ORD_BYTES_COUNT(x) (BasicWord)((x) >> 1)
+#define MUL_BY_ORD_BYTES_COUNT(x) (BasicWord)((x) << 1)
+
+#define BASICWORD_BITS_COUNT 16
+#define BASICWORD_BYTES_COUNT 2
+#define MAXDIGIT (BasicWord)(0xFFFF)
+
+#endif
+
+/* when we have 32 bit processor available and also have 64 bit data type */
+#ifdef ORD_32
+
+typedef cc_u32 BasicWord;
+typedef cc_u64 BasicDWord;
+
+#define DIV_BY_ORD_BYTES_COUNT(x) (BasicWord)((x) >> 2)
+#define MUL_BY_ORD_BYTES_COUNT(x) (BasicWord)((x) << 2)
+
+#define BASICWORD_BITS_COUNT 32
+#define BASICWORD_BYTES_COUNT 4
+#define MAXDIGIT (BasicWord)(0xFFFFFFFF)
+
+#endif
+
+#define LOW_WORD(a) (BasicWord) (a)
+#define HIGH_WORD(a) (BasicWord)((a) >> BASICWORD_BITS_COUNT)
+
+/* In our implementation we are using assumption that DWord data type available for using. */
+/* If for some reasons it isn't so, then we just need to redefine rhe following two macros in appropriate way
+ * and functions will work properly.
+ */
+#define _add_add_(aw1,aw2,aw3,rwl,rwh) { \
+ BasicDWord dw = (BasicDWord)(aw1)+(aw2)+(aw3); \
+ rwl = LOW_WORD(dw); \
+ rwh = HIGH_WORD(dw); \
+ }
+
+#define _mul_add_add(wm1,wm2,aw1,aw2,rwl,rwh) { \
+ BasicDWord dw = (BasicDWord)(wm1)*(wm2)+(aw1)+(aw2); \
+ rwl = LOW_WORD(dw); \
+ rwh = HIGH_WORD(dw); \
+ }
+
+#define IN
+#define OUT
+
+/*===========================================================================================================*/
+
+/**
+ * @fn SDRM_ll_Cmp
+ * @brief Compare two large unsigned integers
+ *
+ * @param pFirstOperand [in] the first operand
+ * @param pSecondOperand [in] the second operand
+ *
+ * @return 0 if they are equal
+ * 1 if first bigger then second
+ * -1 if the seond one is bigger then first
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Cmp(const BasicWord *pFirstOperand, const BasicWord *pSecondOperand, unsigned uOperandLength);
+
+/**
+ * @fn SDRM_ll_Copy
+ * @brief Just copy two large unsigned integers from one into another
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Copy(BasicWord *pFirstOperand, const BasicWord *pSecondOperand, unsigned uOperandLength);
+
+/**
+ * @fn SDRM_ll_bit_RShift
+ * @brief Shift large unsigned integer to the right by uBits
+ *
+ * @param pOperand [inout] pointer to the operand to be shifted
+ *
+ * @return Nothing
+ * @warning We have to be careful when using this function because it modifies uOperandLength+1 words
+ * that is by 1 word bigger then operand original size.
+ * WWW....Operand...WWW|W <- it modifies the word immediately after the last one of passed operand.
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_bit_RShift(IN OUT BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord uBits);
+
+/**
+ * @fn SDRM_ll_bit_LShift
+ * @brief Shift large unsigned integer to the left by uBits
+ *
+ * @param pOperand [inout] pointer to the operand to be shifted
+ *
+ * @return Nothing
+ * @warning We have to be careful when using this function because it modifies uOperandLength+1 words
+ * that is by 1 word bigger then operand original size.
+ * It modifies the word immediately prior to the first one of passed operand -> W|WWW....Operand...WWW
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_bit_LShift(IN OUT BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord uBits);
+
+/**
+ * @fn SDRM_ll_getMSW
+ * @brief Return index of most significant word.
+ *
+ * @param pOperand [in] pointer to the large integer.
+ *
+ * @return The index of most significant word.
+ * -1 if passed integer actually is equal to 0.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_getMSW(IN const BasicWord *pOperand, IN BasicWord uOperandLength);
+
+/**
+ * @fn SDRM_ll_Add
+ * @brief Add two large unsigned integers that have the same size.
+ *
+ * @param pFirstOperand [in] pointer to first large integer
+ * @param pSecondOperand [in] pointer to second large integer
+ * @param uOperandsLength [in] length of the operands in words
+ * @param pResult [out] pointer to result of subtraction
+ *
+ * @return carry if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Add(IN const BasicWord *pFirstOperand,
+ IN const BasicWord *pSecondOperand,
+ IN BasicWord uOperandsLength,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn SDRM_ll_AddCarry
+ * @brief Add carry to large unsigned integer
+ *
+ * @param oneWord [in] value of carry
+ * @param pOperand [inout] pointer to large integer
+ * @param uOperandLength [in] length of the second operand in words
+ *
+ * @return carry if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_AddCarry(IN BasicWord oneWord, IN BasicWord *pOperand, IN BasicWord uOperandLength);
+
+/**
+ * @fn SDRM_ll_Sub
+ * @brief Subtract two large unsigned integers that have the same size.
+ *
+ * @param pFirstOperand [in] pointer to first large integer
+ * @param pSecondOperand [in] pointer to second large integer
+ * @param uOperandsLength [in] length of the operands in words
+ * @param pResult [out] pointer to result of subtraction
+ *
+ * @return borrow if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Sub(IN const BasicWord *pFirstOperand,
+ IN const BasicWord *pSecondOperand,
+ IN BasicWord uOperandsLength,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_MulAdd(IN BasicWord *pFirstOperand, IN BasicWord uFirstOperandsLength,
+ IN BasicWord *pSecondOperand, IN BasicWord uSecondOperandsLength,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Mul(IN BasicWord *pFirstOperand, IN BasicWord uFirstOperandsLength,
+ IN BasicWord *pSecondOperand, IN BasicWord uSecondOperandsLength,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Square(IN BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_mont_Rem(IN OUT BasicWord *pFirstOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLength,
+ IN BasicWord inv);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_mont_Square(IN BasicWord *pFirstOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLength,
+ IN BasicWord Inv,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_mont_Mul(IN BasicWord *pFirstOperand,
+ IN BasicWord *pSecondOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLengthInBytes,
+ IN BasicWord Inv,
+ OUT BasicWord *pResult);
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_ExpMod( IN BasicWord *pBase, IN BasicWord uBaseLengthInBytes,
+ IN BasicWord *pExponent, IN BasicWord uExponentLengthInBytes,
+ IN BasicWord *pModule, IN BasicWord uModuleLengthInBytes,
+ OUT BasicWord *pResult);
+
+#endif /*FAST_MATH_H*/
diff --git a/SPC/Inc/base/hash.h b/SPC/Inc/base/hash.h
new file mode 100755
index 0000000..8acfa84
--- /dev/null
+++ b/SPC/Inc/base/hash.h
@@ -0,0 +1,337 @@
+/**
+ * \file hash.h
+ * @brief hash API function
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/08
+ */
+
+#ifndef _HASH_H
+#define _HASH_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_SHA1_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_init(CryptoCoreContainer *crt);
+
+/*
+ * @fn SDRM_SHA1_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_SHA1_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA1_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA224_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_init(CryptoCoreContainer *crt);
+
+
+/*
+ * @fn SDRM_SHA224_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_SHA224_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA224_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA256_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_init(CryptoCoreContainer *crt);
+
+
+/*
+ * @fn SDRM_SHA256_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_SHA256_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA256_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA384_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_init(CryptoCoreContainer *crt);
+
+/*
+ * @fn SDRM_SHA384_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_SHA384_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA384_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA512_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_init(CryptoCoreContainer *crt);
+
+/*
+ * @fn SDRM_SHA512_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_SHA512_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_SHA512_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+/*
+ * @fn SDRM_MD5_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_init(CryptoCoreContainer *crt);
+
+/*
+ * @fn SDRM_MD5_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen);
+
+/*
+ * @fn SDRM_MD5_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_final(CryptoCoreContainer *crt, cc_u8 *output);
+
+/*
+ * @fn SDRM_MD5_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/md5.h b/SPC/Inc/base/md5.h
new file mode 100755
index 0000000..403e328
--- /dev/null
+++ b/SPC/Inc/base/md5.h
@@ -0,0 +1,30 @@
+/*
+ * Implementation of MD5
+ */
+
+#ifndef _MD5_H
+#define _MD5_H
+
+#include <stdio.h>
+#include <string.h>
+#include "CryptoCore.h"
+
+//prototypes
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+CRYPTOCORE_INTERNAL void SDRM_MD5_Init(SDRM_MD5Context *ctx);
+
+CRYPTOCORE_INTERNAL void SDRM_MD5_Update(SDRM_MD5Context *ctx, cc_u8* buffer, cc_u32 cc_u8Count);
+
+CRYPTOCORE_INTERNAL void SDRM_MD5_Final(SDRM_MD5Context *ctx, cc_u8* output );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _MD5_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/moo.h b/SPC/Inc/base/moo.h
new file mode 100755
index 0000000..53677a5
--- /dev/null
+++ b/SPC/Inc/base/moo.h
@@ -0,0 +1,206 @@
+/**
+ * \file moo.h
+ * @brief implementation of mode of operations
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/04
+ */
+
+
+#ifndef _MOO_H
+#define _MOO_H
+
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+#include "aes.h"
+#include "des.h"
+#include "tdes.h"
+
+
+////////////////////////////////////////////////////////////////////////////
+// Macros for Mode of operation
+////////////////////////////////////////////////////////////////////////////
+#ifndef SDRM_CheckByteUINT32
+/*! @brief get k-th byte from cc_u32 array A */
+#define SDRM_CheckByteUINT32(A, k) (cc_u8)(0xff & (A[(k) >> 2] >> (((k) & 3 ) << 3)))
+#endif
+
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_ECB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key)
+ * @brief Encrypt a block with ECB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key);
+
+
+/*
+ * @fn int SDRM_ECB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key)
+ * @brief Decrypt a block with ECB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key);
+
+
+/*
+ * @fn int SDRM_CBC_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+ * @brief Encrypt a block with CBC mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CBC_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV);
+
+
+/*
+ * @fn int SDRM_CBC_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+ * @brief Decrypt a block with CBC mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CBC_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV);
+
+
+/*
+ * @fn int SDRM_CFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+ * @brief Encrypt a block with CFB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV);
+
+
+/*
+ * @fn int SDRM_CFB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+ * @brief Decrypt a block with CBC mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CFB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV);
+
+
+/*
+ * @fn int SDRM_OFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+ * @brief Encrypt a block with OFB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_OFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV);
+
+
+/*
+ * @fn SDRM_OFB_Dec(ALG, OUT, IN, KEY, IV)
+ * @brief Decrypt a block with OFB mode
+ *
+ * \n ALG [in]algorithm
+ * \n OUT [out]plain text block
+ * \n IN [in]cipher text block
+ * \n KEY [in]user key
+ * \n IV [in]initial vector
+ */
+#define SDRM_OFB_Dec(ALG, OUT, IN, KEY, IV) SDRM_OFB_Enc(ALG, OUT, IN, KEY, IV)
+
+/*
+ * @fn int SDRM_CTR_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV, cc_u32 counter)
+ * @brief Encrypt a block with CTR mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ * @param counter [in]counter
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTR_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV, cc_u32 counter);
+
+
+/*
+ * @fn SDRM_CTR_Dec(ALG, OUT, IN, KEY, IV, CTR)
+ * @brief Decrypt a block with CTR mode
+ *
+ * \n ALG [in]algorithm
+ * \n OUT [out]plain text block
+ * \n IN [in]cipher text block
+ * \n KEY [in]user key
+ * \n IV [in]initial vector
+ * \n CTR [in]counter
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+#define SDRM_CTR_Dec(ALG, OUT, IN, KEY, IV, CTR) SDRM_CTR_Enc(ALG, OUT, IN, KEY, IV, CTR)
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _MOO_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/pkcs1_v21.h b/SPC/Inc/base/pkcs1_v21.h
new file mode 100755
index 0000000..5d4e725
--- /dev/null
+++ b/SPC/Inc/base/pkcs1_v21.h
@@ -0,0 +1,142 @@
+/**
+ * \file pkcs1_v21.h
+ * @brief PKCS#1 V1.5, V2.0(RSAES-OAEP), V2.1(RSASSA-PSS) Implemetation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ */
+
+#ifndef _PKCS1_V21_H
+#define _PKCS1_V21_H
+
+//////////////////////////////////////////////////////////////////////////
+// Include Header Files
+//////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include "CryptoCore.h"
+#include "bignum.h"
+
+//////////////////////////////////////////////////////////////////////////
+// Define Constants
+//////////////////////////////////////////////////////////////////////////
+/*! @brief padding mode - enpadding */
+#define SDRM_ENPADDING 11111
+/*! @brief padding mode - depadding */
+#define SDRM_DEPADDING 11112
+
+/*! @brief DER message */
+#define SDRM_DIGESTINFO_MD5_VALUE {0x30, 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x02, 0x05, 0x05, 0x00, 0x40, 0x10}
+#define SDRM_DIGESTINFO_SHA1_VALUE {0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14}
+#define SDRM_DIGESTINFO_SHA256_VALUE {0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x05, 0x00, 0x04, 0x20}
+#define SDRM_DIGESTINFO_SHA384_VALUE {0x30, 0x41, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x02, 0x05, 0x00, 0x04, 0x30}
+#define SDRM_DIGESTINFO_SHA512_VALUE {0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40}
+
+/*! @brief byte-length of DER message */
+#define SDRM_DIGESTINFO_MD5_LEN 18
+#define SDRM_DIGESTINFO_SHA1_LEN 15
+#define SDRM_DIGESTINFO_SHA256_LEN 19
+#define SDRM_DIGESTINFO_SHA384_LEN 19
+#define SDRM_DIGESTINFO_SHA512_LEN 19
+
+#define SDRM_EMSA_PSS_SALT_LEN 4
+
+//////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+//////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_Padding_Rsaes_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, cc_u32 k)
+ * @brief RSAES PKCS#1 v1.5
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsaes_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, cc_u32 k);
+
+/*
+ * @fn int SDRM_Padding_Rsaes_oaep(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, int HASH_Algorithm, cc_u32 k)
+ * @brief RSAES OAEP
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsaes_oaep(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, int HASH_Algorithm, cc_u32 k);
+
+/*
+ * @fn int SDRM_Padding_Rsassa_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, int MODE, int HASH_Algorithm, cc_u32 k);
+ * @brief RSASSA PKCS#1 v1.5
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param pszHash [in]hash of BN_Src
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_INVALID_ARGUMENT if source is not in the right form
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsassa_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, int MODE, int HASH_Algorithm, cc_u32 k);
+
+/*
+ * @fn int SDRM_Padding_Rsassa_pss(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, cc_u32 emBits, int MODE, int HASH_Algorithm, cc_u32 MaxByte)
+ * @brief RSASSA PSS
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param pszHash [in]hash of BN_Src
+ * @param emBits [in]bit-length of EM
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param MaxByte [in]max byte-length for MGF function
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_INVALID_ARGUMENT if source is not in the right form
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsassa_pss(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, cc_u32 emBits, int MODE, int HASH_Algorithm, cc_u32 MaxByte);
+
+/*
+ * @fn int SDRM_MGF1(int HASH_Algorithm, cc_u8* mask, cc_u8* pbSeed, cc_u32 SeedLen, cc_u32 dMaskLen)
+ * @brief MGF1 Function (Mask Generation Function based on a hash function)
+ *
+ * @param mask [out]byte-length of generated mask
+ * @param pbSeed [in]seed for MGF
+ * @param SeedLen [in]byte-length of pbSeed
+ * @param dMaskLen [in]byte-length of mask
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_MGF1(int HASH_Algorithm, cc_u8* mask, cc_u8* pbSeed, cc_u32 SeedLen, cc_u32 dMaskLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/rc4.h b/SPC/Inc/base/rc4.h
new file mode 100755
index 0000000..112676e
--- /dev/null
+++ b/SPC/Inc/base/rc4.h
@@ -0,0 +1,60 @@
+/**
+ * \file rc4.h
+ * @brief implementation of RC4 encryption scheme
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/01
+ */
+
+#ifndef _RC4_H
+#define _RC4_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_RC4_Setup(SDRM_RC4Context *ctx, cc_u8 *UserKey, cc_u32 keyLen)
+ * @brief intialize s
+ *
+ * @param ctx [in]crypto context
+ * @param UserKey [in]user key
+ * @param keyLen [out]byte-length of UserKey
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_Setup(SDRM_RC4Context *ctx, cc_u8 *UserKey, cc_u32 keyLen);
+
+/*
+ * @fn int SDRM_RC4_PRNG(SDRM_RC4Context *ctx, cc_u8 *in, cc_u32 inLen, cc_u8 *out)
+ * @brief process stream data
+ *
+ * @param ctx [in]crypto context
+ * @param in [in]plaintext
+ * @param inLen [in]byte-length of in
+ * @param out [out]cipher text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_PRNG(SDRM_RC4Context *ctx, cc_u8 *in, cc_u32 inLen, cc_u8 *out);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/sha1.h b/SPC/Inc/base/sha1.h
new file mode 100755
index 0000000..1bc10e1
--- /dev/null
+++ b/SPC/Inc/base/sha1.h
@@ -0,0 +1,30 @@
+/*
+ * Implementation of SHA-1
+ */
+
+#ifndef _SHA1_H
+#define _SHA1_H
+
+#include <stdio.h>
+#include <string.h>
+#include "CryptoCore.h"
+
+//prototypes
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Init(SDRM_SHA1Context* ctx);
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Update(SDRM_SHA1Context* ctx, const cc_u8* buffer, int ByteCount);
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Final(SDRM_SHA1Context* ctx, cc_u8* output);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _SHA1_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/sha2.h b/SPC/Inc/base/sha2.h
new file mode 100755
index 0000000..68062a1
--- /dev/null
+++ b/SPC/Inc/base/sha2.h
@@ -0,0 +1,44 @@
+/*
+ * Implementation of SHA-2
+ */
+
+#ifndef _SHA2_H
+#define _SHA2_H
+
+#include <stdio.h>
+#include <string.h>
+#include "CryptoCore.h"
+
+//prototypes
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Init(SDRM_SHA224Context* ctx);
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Update(SDRM_SHA224Context* ctx, const cc_u8 *message, cc_u32 len);
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Final(SDRM_SHA224Context* ctx, cc_u8 *digest);
+
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Init(SDRM_SHA256Context* ctx);
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Update(SDRM_SHA256Context* ctx, const cc_u8 *message, cc_u32 len);
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Final(SDRM_SHA256Context* ctx, cc_u8 *digest);
+
+#ifndef _OP64_NOTSUPPORTED
+
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Init(SDRM_SHA384Context* ctx);
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Update(SDRM_SHA384Context* ctx, const cc_u8 *message, cc_u32 len);
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Final(SDRM_SHA384Context* ctx, cc_u8 *digest);
+
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Init(SDRM_SHA512Context* ctx);
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Update(SDRM_SHA512Context* ctx, const cc_u8 *message, cc_u32 len);
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Final(SDRM_SHA512Context* ctx, cc_u8 *digest);
+
+#endif //_OP64_NOTSUPPORTED
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _SHA2_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/base/snow2.h b/SPC/Inc/base/snow2.h
new file mode 100755
index 0000000..1061cca
--- /dev/null
+++ b/SPC/Inc/base/snow2.h
@@ -0,0 +1,68 @@
+/**
+ * \file snow2.h
+ * @brief implementation of SNOW 2.0 encryption scheme
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/02
+ */
+
+
+#ifndef _SNOW2_H
+#define _SNOW2_H
+
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_SNOW2_Setup(SDRM_SNOW2Context *ctx, cc_u8 *UserKey, cc_u32 keyLen, cc_u8 *IV)
+ * @brief Setup FSM and s values
+ * @param ctx [out]crypto context
+ * @param UserKey [in]User Key, 128 or 256 bit
+ * @param keyLen [in]byte-size of User Key, 16 or 32
+ * @param IV [in]16 byte initial vector
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_Setup(SDRM_SNOW2Context *ctx, cc_u8 *UserKey, cc_u32 keyLen, cc_u8 *IV);
+
+/*
+ * @fn int SDRM_SNOW2_getKeyStream64(SDRM_SNOW2Context *ctx, cc_u32 *keyStream64)
+ * @brief get 64 byte key stream
+ * @param ctx [out]crypto context
+ * @param keyStream64 [in]generated key stream
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_getKeyStream64(SDRM_SNOW2Context *ctx, cc_u32 *keyStream64);
+
+/*
+ * @fn int SDRM_SNOW2_getKeyStream(SDRM_SNOW2Context *ctx, cc_u32 *keyStream)
+ * @brief get 4 byte key stream
+ * @param ctx [out]crypto context
+ * @param keyStream [in]generated key stream
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_getKeyStream(SDRM_SNOW2Context *ctx, cc_u32 *keyStream);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _SNOW2_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/drm_macro.h b/SPC/Inc/drm_macro.h
new file mode 100755
index 0000000..94432b3
--- /dev/null
+++ b/SPC/Inc/drm_macro.h
@@ -0,0 +1,201 @@
+/**
+ * \file drm_macro.h
+ * @brief Common Macro Difinitions
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Changsup Ahn
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/02
+ */
+
+#ifndef _DRM_MACRO_H
+#define _DRM_MACRO_H
+
+////////////////////////////////////////////////////////////////////////////
+// Header File Include
+////////////////////////////////////////////////////////////////////////////
+#include <stdio.h>
+
+////////////////////////////////////////////////////////////////////////////
+// Macros
+////////////////////////////////////////////////////////////////////////////
+/*! @brief get larger of two */
+#define MAX2(A, B) ((A) > (B) ? (A) : (B))
+
+/*! @brief get largest of three */
+#define MAX3(C, D, E) ((C) > MAX2((D), (E)) ? (C) : MAX2((D), (E)))
+
+/*! @brief print out by byte unit */
+#undef PrintBYTE
+#define PrintBYTE(msg, Data, DataLen) { \
+ int idx; \
+ printf("%10s =", msg); \
+ for( idx=0; idx<(int)DataLen; idx++) { \
+ if( (idx!=0) && ((idx%16)==0) ) printf("\n"); \
+ if((idx % 4) == 0) printf(" 0x"); \
+ printf("%.2x", Data[idx]); \
+ } \
+ printf("\n"); \
+}
+
+/*! @brief print out in hexa representation */
+#undef PrintBYTE_HEX
+#define PrintBYTE_HEX(msg, Data, DataLen) { \
+ int idx; \
+ printf("%10s =", msg); \
+ for( idx=0; idx<(int)DataLen; idx++) { \
+ if( (idx!=0) && ((idx%8)==0) ) printf("\n"); \
+ printf("0x%.2x, ", Data[idx]); \
+ } \
+ printf("\n"); \
+}
+
+/*! @brief print out in hexa representation without length information */
+#undef PrintBYTE_FILE_RAW // raw data · ֵ Hex ·
+#define PrintBYTE_FILE_RAW(pfile, Data, DataLen) { \
+ int idx; \
+ for( idx=0; idx<(int)DataLen; idx++) { \
+ if( (idx==0) || ((idx%8)!=0) ) \
+ fprintf(pfile, "0x%.2x, ", Data[idx]); \
+ else \
+ fprintf(pfile, " \n0x%.2x, ", Data[idx]); \
+ } \
+}
+
+/*! @brief print out message */
+#undef PrintMSG
+#define PrintMSG(msg) { \
+ fprintf(stdout, "\n************************************************\n"); \
+ fprintf(stdout, "* %s\n", msg); \
+ fprintf(stdout, "*\n"); \
+}
+
+/*! @brief copy 16 byte block */
+#undef BlockCopy
+#define BlockCopy(pbDst, pbSrc) { \
+ memcpy(pbDst, pbSrc, 16); \
+}
+
+/*! @brief xor 16 byte block */
+#undef BlockXor
+#define BlockXor(pbDst, phSrc1, phSrc2) { \
+ int idx; \
+ for(idx = 0; idx < 16; idx++) \
+ (pbDst)[idx] = (phSrc1)[idx] ^ (phSrc2)[idx]; \
+}
+
+/*! @brief convert 32-bit unit to 4 byte */
+#undef GET_UINT32
+#define GET_UINT32(n,b,i) \
+{ \
+ (n) = ((unsigned int)((b)[(i) ]) << 24 ) \
+ | ((unsigned int)((b)[(i) + 1]) << 16 ) \
+ | ((unsigned int)((b)[(i) + 2]) << 8 ) \
+ | ((unsigned int)((b)[(i) + 3]) ); \
+}
+
+/*! @brief 4 byte to 32-bit unit */
+#undef PUT_UINT32
+#define PUT_UINT32(n,b,i) \
+{ \
+ (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \
+ (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \
+ (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \
+ (b)[(i) + 3] = (unsigned char) ( (n) ); \
+}
+
+/*! @brief convert 24-bit unit to 3 byte */
+#undef GET_UINT24
+#define GET_UINT24(n,b,i) \
+{ \
+ (n) = ( (b)[(i) ] << 16 ) \
+ | ( (b)[(i) + 1] << 8 ) \
+ | ( (b)[(i) + 2] ); \
+}
+
+/*! @brief convert 3 byte to 24-bit unit */
+#undef PUT_UINT24
+#define PUT_UINT24(n,b,i) \
+{ \
+ (b)[(i) ] = (unsigned char) ( (n) >> 16 ); \
+ (b)[(i) + 1] = (unsigned char) ( (n) >> 8 ); \
+ (b)[(i) + 2] = (unsigned char) ( (n) >> ); \
+}
+
+/*! @brief convert 16-bit unit to 2 byte */
+#undef GET_UINT16
+#define GET_UINT16(n,b,i) \
+{ \
+ (n) = ( (b)[(i) ] << 8 ) \
+ | ( (b)[(i) + 1] ); \
+}
+
+/*! @brief convert 2 byte to 16-bit unit */
+#undef PUT_UINT16
+#define PUT_UINT16(n,b,i) \
+{ \
+ (b)[(i) ] = (unsigned char) ( (n) >> 8 ); \
+ (b)[(i) + 1] = (unsigned char) ( (n) ); \
+}
+
+/*! @brief read 1 byte of s form o & increase o */
+#undef READ_8
+#define READ_8(t,s,o) { \
+ t = (unsigned char) s[o]; \
+ o+=1; \
+}
+
+/*! @brief read 2 byte of sfrom o & increase o */
+#undef READ_16
+#define READ_16(t,s,o) { \
+ GET_UINT16(t,s,o); \
+ o+=2; \
+}
+
+/*! @brief read 3 byte of s from o & increase o */
+#undef READ_24
+#define READ_24(t,s,o) { \
+ GET_UINT24(t,s,o); \
+ o+=3; \
+}
+
+/*! @brief read 4 byte of s from o & increase o */
+#undef READ_32
+#define READ_32(t,s,o) { \
+ GET_UINT32(t,s,o); \
+ o+=4; \
+}
+
+/*! @brief write 4 byte to s from o & increase o */
+#undef WRITE_32
+#define WRITE_32(t,s,o) { \
+ PUT_UINT32(s,t,o); \
+ o+=4; \
+}
+
+/*! @brief write 3 byte to s from o & increase o */
+#undef WRITE_24
+#define WRITE_24(t,s,o) { \
+ PUT_UINT24(s,t,o); \
+ o+=3; \
+}
+
+/*! @brief write 2 byte to s from o & increase o */
+#undef WRITE_16
+#define WRITE_16(t,s,o) { \
+ PUT_UINT16(s,t,o); \
+ o+=2; \
+}
+
+/*! @brief write 1 byte to s from o & increase o */
+#undef WRITE_8
+#define WRITE_8(t,s,o) { \
+ t[o] = (unsigned char)s; \
+ o+=1; \
+}
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/cmac.h b/SPC/Inc/middle/cmac.h
new file mode 100755
index 0000000..3b5b4a3
--- /dev/null
+++ b/SPC/Inc/middle/cmac.h
@@ -0,0 +1,95 @@
+/**
+ * \file cmac.h
+ * @brief funciton for c-mac code generation by AES-128
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ */
+
+#ifndef _CMAC_H
+#define _CMAC_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CC_API.h"
+#include "moo.h"
+#include "aes.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_CMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen)
+ * @brief Parameter setting for mac code generation
+ *
+ * @param crt [out]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen);
+
+/*
+ * @fn int SDRM_CMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen)
+ * @brief process data blocks
+ *
+ * @param crt [out]crypto parameter
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen);
+
+/*
+ * @fn int SDRM_CMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen)
+ * @brief process last data block
+ *
+ * @param crt [in]crypto parameter
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn int SDRM_CMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen)
+ * @brief generate c-mac code
+ *
+ * @param crt [in]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _CMAC_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/dh.h b/SPC/Inc/middle/dh.h
new file mode 100755
index 0000000..b18943c
--- /dev/null
+++ b/SPC/Inc/middle/dh.h
@@ -0,0 +1,94 @@
+/**
+ * \file dh.h
+ * @brief implementation of Diffie-Hellman Key Exchange Protocol
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2012/04/12
+ */
+
+#ifndef _DIFFIE_HELLMAN_H
+#define _DIFFIE_HELLMAN_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <stdio.h>
+#include "CC_API.h"
+
+#define DH_DEFAULT_GENERATOR 5 /**< fixed generator value */
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @fn SDRM_GenerateDHParam(SDRM_DHContext* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned int* pGenerator)
+ * @brief generate parameters for Diffie-Hellman protocol
+ *
+ * @param [out] crt context
+ * @param [out] pPrime prime number
+ * @param [in] nPrimeLen size of pPrime buffer
+ * @param [out] pGenerator generator value
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GenerateDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned char* pGenerator);
+
+/**
+ * @fn SDRM_SetDHParam(SDRM_DHContext* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned int nGenerator)
+ * @brief set parameters for Diffie-Hellman protocol
+ *
+ * @param [out] crt context
+ * @param [in] pPrime prime number
+ * @param [in] nPrimeLen size of pPrime buffer
+ * @param [in] pGenerator generator value
+ * @param [in] nGeneratorLen generator len
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_SetDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned char* pGenerator, unsigned int nGeneratorLen);
+
+/**
+ * @fn SDRM_GenerateDHPrivate(CryptoCoreContainer* crt, unsigned char* pPub)
+ * @brief generate private value and calculate public value
+ *
+ * @param [in] crt context
+ * @param [out] pPriv private value
+ * @param [out] pPub public value
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GenerateDHPrivate(CryptoCoreContainer* crt, unsigned char* pPriv, unsigned char* pPub);
+
+/**
+ * @fn SDRM_GetDHSharedSecret(CryptoCoreContainer* crt, unsigned char* pPub, unsigned char* pSharedSecret)
+ * @brief calculate shared secret
+ *
+ * @param [in] crt context
+ * @param [in] pPriv private value
+ * @param [in] pPub guest's public value
+ * @param [out] pSharedSecret public value
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GetDHSharedSecret(CryptoCoreContainer* crt, unsigned char* pPriv, unsigned char* pPub, unsigned char* pSharedSecret);
+
+/**
+ * @fn SDRM_FreeDHContext(CryptoCoreContainer* crt)
+ * @brief free context buffer
+ *
+ * @param [in] crt context
+ */
+CRYPTOCORE_INTERNAL void SDRM_FreeDHContext(SDRM_DHContext* ctx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DIFFIE_HELLMAN_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/dsa.h b/SPC/Inc/middle/dsa.h
new file mode 100755
index 0000000..7b76f09
--- /dev/null
+++ b/SPC/Inc/middle/dsa.h
@@ -0,0 +1,171 @@
+/**
+ * \file dsa.h
+ * @brief implementation of dsa signature/verifycation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/23
+ */
+
+#ifndef _DSA_H
+#define _DSA_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <stdio.h>
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_DSAContext *SDRM_DSA_InitCrt(void)
+ * @brief generate DSA Context
+ *
+ * @return pointer to the generated context
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_DSAContext *SDRM_DSA_InitCrt(void);
+
+/*
+ * @fn int SDRM_DSA_SetParam(CryptoCoreContainer *crt, cc_u8 *DSA_P_Data, cc_u32 DSA_P_Len, cc_u8 *DSA_Q_Data, cc_u32 DSA_Q_Len, cc_u8 *DSA_G_Data, cc_u32 DSA_G_Len)
+ * @brief set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_P_Data [in]octet string of p value
+ * @param DSA_P_Len [in]legnth of p_val
+ * @param DSA_Q_Data [in]octet string of q value
+ * @param DSA_Q_Len [in]legnth of q_val
+ * @param DSA_G_Data [in]octet string of al value
+ * @param DSA_G_Len [in]legnth of al_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_SetParam(
+ CryptoCoreContainer *crt,
+ cc_u8 *DSA_P_Data, cc_u32 DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 DSA_G_Len);
+
+/*
+ * @fn int SDRM_DSA_SetKeyPair(CryptoCoreContainer *crt, cc_u8 *DSA_Y_Data, cc_u32 DSA_Y_Len, cc_u8 *DSA_X_Data, cc_u32 DSA_X_Len)
+ * @brief set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_Y_Data [in]octet string of y value
+ * @param DSA_Y_Len [in]legnth of y_val
+ * @param DSA_X_Data [in]octet string of a value
+ * @param DSA_X_Len [in]legnth of a_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_SetKeyPair(
+ CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 DSA_X_Len);
+
+/*
+ * @fn int SDRM_DSA_GenParam(CryptoCoreContainer *crt, cc_u32 T_Siz, cc_u8 *DSA_P_Data, cc_u32 *DSA_P_Len, cc_u8 *DSA_Q_Data, cc_u32 *DSA_Q_Len, cc_u8 *DSA_G_Data, cc_u32 *DSA_G_Len)
+ * @brief generate and set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param T_Siz [in]fix the length of p to 512 + 64t bit (0 <= T_Siz <= 8)
+ * @param DSA_P_Data [out]octet string of p value
+ * @param DSA_P_Len [out]legnth of p_val
+ * @param DSA_Q_Data [out]octet string of q value
+ * @param DSA_Q_Len [out]legnth of q_val
+ * @param DSA_G_Data [out]octet string of al value
+ * @param DSA_G_Len [out]legnth of al_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_GenParam(
+ CryptoCoreContainer *crt,
+ cc_u32 T_Siz, cc_u8 *DSA_P_Data, cc_u32 *DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 *DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 *DSA_G_Len);
+
+/*
+ * @fn int SDRM_DSA_GenKeypair(CryptoCoreContainer *crt, cc_u8 *DSA_Y_Data, cc_u32 *DSA_Y_Len, cc_u8 *DSA_X_Data, cc_u32 *DSA_X_Len)
+ * @brief generate and set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_Y_Data [out]octet string of y value
+ * @param DSA_Y_Len [out]legnth of y_val
+ * @param DSA_X_Data [out]octet string of a value
+ * @param DSA_X_Len [out]legnth of a_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_GenKeypair(
+ CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 *DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 *DSA_X_Len);
+
+/*
+ * @fn int SDRM_DSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_sign(
+ CryptoCoreContainer *crt,
+ cc_u8 *hash, cc_u32 hashLen,
+ cc_u8 *signature, cc_u32 *signLen);
+
+/*
+ * @fn int SDRM_DSA_verify(CryptoCoreContainer *crt,cc_u8 *hash, cc_u32 hashLen,cc_u8 *signature, cc_u32 signLen,int *result)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of veryfing signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_verify(
+ CryptoCoreContainer *crt,
+ cc_u8 *hash, cc_u32 hashLen,
+ cc_u8 *signature, cc_u32 signLen,
+ int *result);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _DSA_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/ecdh.h b/SPC/Inc/middle/ecdh.h
new file mode 100755
index 0000000..a58803d
--- /dev/null
+++ b/SPC/Inc/middle/ecdh.h
@@ -0,0 +1,61 @@
+/**
+ * \file ecdh.h
+ * @brief implementation of EC Diffie-Hellman Key Exchange Protocol
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/27
+ */
+
+#ifndef _ECDH_H
+#define _ECDH_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <stdio.h>
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_generateDH1stPhaseKey(CryptoCoreContainer *crt, cc_u8 *pchXk, cc_u8 *pchXv)
+ * @brief generate Xk and its Xv
+ *
+ * @param crt [in]crypto context
+ * @param pchXk [out]Generated Random Number
+ * @param pchXv [out]DH 1st phase value
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_generateDH1stPhaseKey(CryptoCoreContainer *crt, cc_u8 *pchXk, cc_u8 *pchXv);
+
+/*
+ * @fn int SDRM_generateDHKey(CryptoCoreContainer *crt, cc_u8* pchXk, cc_u8* pchYv, cc_u8* pchKauth)
+ * @brief genenrate auth key with Xk and Yv
+ *
+ * @param crt [in]crypto context
+ * @param pchXk [in]Generated Random Number
+ * @param pchYv [in]DH 1st phase value
+ * @param pchKauth [out]authentication key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_generateDHKey(CryptoCoreContainer *crt, cc_u8* pchXk, cc_u8* pchYv, cc_u8* pchKauth);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _ECDH_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/ecdsa.h b/SPC/Inc/middle/ecdsa.h
new file mode 100755
index 0000000..13d2098
--- /dev/null
+++ b/SPC/Inc/middle/ecdsa.h
@@ -0,0 +1,144 @@
+/**
+ * \file ecdsa.h
+ * @brief implementation of public key signature algorithm
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/13
+ */
+
+#ifndef _ECDSA_H
+#define _ECDSA_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CC_API.h"
+#include "ecc.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_ECDSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECDSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen);
+
+/*
+ * @fn int SDRM_ECDSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of veryfing signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECDSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result);
+
+/*
+ * @fn SDRM_ECC_Set_CTX
+ * @brief Set parameters for ECC
+ *
+ * @param crt [out]crypto env structure
+ * @param Dimension [in]dimension
+ * @param ECC_P_Data [in]represents p
+ * @param ECC_P_Len [in]byte-length of p
+ * @param ECC_A_Data [in]represents a
+ * @param ECC_A_Len [in]byte-length of a
+ * @param ECC_B_Data [in]represents b
+ * @param ECC_B_Len [in]byte-length of b
+ * @param ECC_G_X_Data [in]represents x coordinate of g
+ * @param ECC_G_X_Len [in]byte-length of x coordinate of g
+ * @param ECC_G_Y_Data [in]represents y coordinate of g
+ * @param ECC_G_Y_Len [in]byte-length of y coordinate of g
+ * @param ECC_R_Data [in]represents r
+ * @param ECC_R_Len [in]byte-length of r
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_Set_CTX(
+ struct _CryptoCoreContainer *crt, cc_u16 Dimension,
+ cc_u8* ECC_P_Data, cc_u32 ECC_P_Len,
+ cc_u8* ECC_A_Data, cc_u32 ECC_A_Len,
+ cc_u8* ECC_B_Data, cc_u32 ECC_B_Len,
+ cc_u8* ECC_G_X_Data, cc_u32 ECC_G_X_Len,
+ cc_u8* ECC_G_Y_Data, cc_u32 ECC_G_Y_Len,
+ cc_u8* ECC_R_Data, cc_u32 ECC_R_Len
+);
+
+/*
+ * @fn SDRM_ECC_genKeypair
+ * @brief Generate Private Key and Generate Key Pair for ECC Signature
+ *
+ * @param crt [out]crypto env structure
+ * @param PrivateKey [in]represents x coordinate of public key
+ * @param PrivateKeyLen [in]byte-length of x coordinate of public key
+ * @param PublicKey_X [in]represents x coordinate of public key
+ * @param PublicKey_XLen [in]byte-length of x coordinate of public key
+ * @param PublicKey_Y [in]represents y coordinate of public key
+ * @param PublicKey_YLen [in]byte-length of y coordinate of public key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_genKeypair(
+ CryptoCoreContainer *crt,
+ cc_u8 *PrivateKey, cc_u32 *PrivateKeyLen,
+ cc_u8 *PublicKey_X, cc_u32 *PublicKey_XLen,
+ cc_u8 *PublicKey_Y, cc_u32 *PublicKey_YLen
+);
+
+/*
+ * @fn SDRM_ECC_setKeypair
+ * @brief Set key data for ECC
+ *
+ * @param crt [out]crypto env structure
+ * @param PRIV_Data [in]represents private key
+ * @param PRIV_Len [in]byte-length of private key
+ * @param PUB_X_Data [in]represents x coordinate of public key
+ * @param PUB_X_Len [in]byte-length of x coordinate of public key
+ * @param PUB_Y_Data [in]represents y coordinate of public key
+ * @param PUB_Y_Len [in]byte-length of y coordinate of public key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_setKeypair(
+ CryptoCoreContainer *crt,
+ cc_u8* PRIV_Data, cc_u32 PRIV_Len,
+ cc_u8* PUB_X_Data, cc_u32 PUB_X_Len,
+ cc_u8* PUB_Y_Data, cc_u32 PUB_Y_Len
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/hmac.h b/SPC/Inc/middle/hmac.h
new file mode 100755
index 0000000..45e0582
--- /dev/null
+++ b/SPC/Inc/middle/hmac.h
@@ -0,0 +1,93 @@
+/**
+ * \file hmac.h
+ * @brief funciton for c-mac code generation by SHA1 and MD5
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/19
+ */
+
+#ifndef _HMAC_H
+#define _HMAC_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_HMAC_init
+ * @brief Parameter setting for mac code generation
+ *
+ * @param crt [out]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen);
+
+/*
+ * @fn SDRM_HMAC_update
+ * @brief process data blocks
+ *
+ * @param crt [out]crypto parameter
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen);
+
+/*
+ * @fn SDRM_HMAC_final
+ * @brief process last data block
+ *
+ * @param crt [in]crypto parameter
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_HMAC_getMAC
+ * @brief generate h-mac code
+ *
+ * @param crt [in]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _HMAC_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/rng.h b/SPC/Inc/middle/rng.h
new file mode 100755
index 0000000..bd00090
--- /dev/null
+++ b/SPC/Inc/middle/rng.h
@@ -0,0 +1,59 @@
+/**
+ * \file rng.h
+ * @brief Random Number Generator Interface
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/07
+ */
+
+#ifndef _RNG_H
+#define _RNG_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <time.h>
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_X931_seed
+ * @brief Seed RNG System
+ *
+ * @param crt [in]crypto env structure
+ * @param seed [in]seed for RNG System
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_X931_seed(CryptoCoreContainer *crt, cc_u8 *seed);
+
+/*
+ * @fn SDRM_X931_get
+ * @brief generate random number
+ *
+ * @param crt [in]crypto env structure
+ * @param bitLength [in]bit length for generated number
+ * @param data [out]generated data
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_X931_get(CryptoCoreContainer *crt, cc_u32 bitLength, cc_u8 *data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _RNG_H
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/rsa.h b/SPC/Inc/middle/rsa.h
new file mode 100755
index 0000000..ceb5511
--- /dev/null
+++ b/SPC/Inc/middle/rsa.h
@@ -0,0 +1,273 @@
+/**
+ * \file rsa.h
+ * @brief implementation of rsa encryption/decryption and signature/verifycation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ */
+
+#ifndef _RSA_H
+#define _RSA_H
+
+//////////////////////////////////////////////////////////////////////////
+// Include Header Files
+//////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include "CC_API.h"
+
+//////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+//////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_RSA_InitCrt
+ * @brief generate RSA Context
+ *
+ * @return pointer to the generated context
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_RSAContext *SDRM_RSA_InitCrt(cc_u32 RSAKeyByteLen);
+
+/*
+ * @fn SDRM_RSA_setNED
+ * @brief set RSA parameters
+ *
+ * @param crt [out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_N_Data [in]n value
+ * @param RSA_N_Len [in]byte-length of n
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_D_Data [in]d value
+ * @param RSA_D_Len [in]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_setNED
+(
+ CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len
+);
+
+/*
+ * @fn SDRM_RSA_setNEDPQ
+ * @brief set RSA parameters
+ *
+ * @param crt [out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_N_Data [in]n value
+ * @param RSA_N_Len [in]byte-length of n
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_D_Data [in]d value
+ * @param RSA_D_Len [in]byte-length of d
+ * @param RSA_P_Data [in]p value
+ * @param RSA_P_Len [in]byte-length of p
+ * @param RSA_Q_Data [in]q value
+ * @param RSA_Q_Len [in]byte-length of q
+ * @param RSA_DmodP1_Data [in]d mod (p-1) value
+ * @param RSA_DmodP1_Len [in]byte-length of d mod (p-1)
+ * @param RSA_DmodQ1_Data [in]d mod (q-1) value
+ * @param RSA_DmodQ1_Len [in]byte-length of d mod (q-1)
+ * @param RSA_iQmodP_Data [in]q^(-1) mod p value
+ * @param RSA_iQmodP_Len [in]byte-length of q^(-1) mod p
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_setNEDPQ
+(
+ CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_DmodP1_Data, cc_u32 RSA_DmodP1_Len,
+ cc_u8* RSA_DmodQ1_Data, cc_u32 RSA_DmodQ1_Len,
+ cc_u8* RSA_iQmodP_Data, cc_u32 RSA_iQmodP_Len
+);
+
+/*
+ * @fn SDRM_RSA_GenerateKey
+ * @brief generate and set RSA parameters
+ *
+ * @param crt [out]rsa context
+ * @param PaddingMethod [out]padding method
+ * @param RSA_N_Data [out]n value
+ * @param RSA_N_Len [out]byte-length of n
+ * @param RSA_E_Data [out]e value
+ * @param RSA_E_Len [out]byte-length of e
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateKey
+(
+ CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 *RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+);
+
+/*
+ * @fn SDRM_RSA_GenerateND
+ * @brief generate and set RSA parameters with specfied e
+ *
+ * @param crt [in/out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_N_Data [out]n value
+ * @param RSA_N_Len [out]byte-length of n
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateND
+(
+ CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+);
+
+/*
+ * @fn SDRM_RSA_GenerateDwithPQE
+ * @brief generate D with specfied p, q, d mod (p-1), d mod (q-1) and e
+ *
+ * @param crt [in/out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_P_Data [in]n value
+ * @param RSA_P_Len [in]byte-length of n
+ * @param RSA_Q_Data [in]d value
+ * @param RSA_Q_Len [in]byte-length of d
+ * @param RSA_D_P_Data [in]d mod (p-1) value
+ * @param RSA_D_P_Len [in]byte-length of d mod (p-1)
+ * @param RSA_D_Q_Data [in]d mod (q-1) value
+ * @param RSA_D_Q_Len [in]byte-length of d mod (q-1)
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateDwithPQE
+(
+ CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len
+);
+
+/*
+ * @fn SDRM_RSA_encrypt
+ * @brief generate and set RSA parameters
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to encrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]encrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_encrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+/*
+ * @fn SDRM_RSA_decrypt
+ * @brief RSA Decryption
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to decrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]decrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_decrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+/*
+ * @fn SDRM_RSA_decryptByCRT
+ * @brief RSA Decryption using CRT
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to decrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]decrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_decryptByCRT(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+/*
+ * @fn SDRM_RSA_sign
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen);
+
+/*
+ * @fn SDRM_RSA_verify
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of veryfing signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/symmetric.h b/SPC/Inc/middle/symmetric.h
new file mode 100755
index 0000000..8c1376a
--- /dev/null
+++ b/SPC/Inc/middle/symmetric.h
@@ -0,0 +1,246 @@
+/**
+ * \file symmetric.h
+ * @brief API for symmetric encryption
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/07
+ */
+
+#ifndef _SYMMETRIC_H
+#define _SYMMETRIC_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CC_API.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn SDRM_AES_init
+ * @brief intialize crypt context for aes
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+
+/*
+ * @fn SDRM_AES_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_AES_final
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_RC4_init
+ * @brief intialize crypt context for RC4
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method, not needed
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector, not needed
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+
+/*
+ * @fn SDRM_RC4_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_process(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+/*
+ * @fn SDRM_SNOW2_init
+ * @brief intialize crypt context for SNOW2
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method, not needed
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+
+/*
+ * @fn
+ * @brief process message block
+ * @param crt [in]crypto env structure
+ * @param in [in]message block
+ * @param inLen [in]byte-length of Text
+ * @param out [out]processed message
+ * @param outLen [out]byte-length of output
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_process(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen);
+
+/*
+ * @fn SDRM_DES_init
+ * @brief intialize crypt context for des
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+
+/*
+ * @fn SDRM_DES_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param in [in]message block
+ * @param inLen [in]byte-length of Text
+ * @param out [out]processed message
+ * @param outLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_DES_final
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_TDES_init
+ * @brief intialize crypt context for triple des
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV);
+
+/*
+ * @fn SDRM_TDES_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen);
+
+/*
+ * @fn SDRM_TDES_final
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Inc/middle/tdes.h b/SPC/Inc/middle/tdes.h
new file mode 100755
index 0000000..9799672
--- /dev/null
+++ b/SPC/Inc/middle/tdes.h
@@ -0,0 +1,84 @@
+/**
+ * \file tdes.h
+ * @brief high-speed implementation of Triple DES-EDE
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/06
+ */
+
+#ifndef _TDES_H
+#define _TDES_H
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "CryptoCore.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Function Prototypes
+////////////////////////////////////////////////////////////////////////////
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * @fn int SDRM_TDES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 KeyLen, cc_u32 RKStep)
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param RoundKey [out]generated round key
+ * @param UserKey [in]user key, 16 or 24 byte
+ * @param KeyLen [in]byte-length of UserKey
+ * @param RKStep [in]operation mode
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 KeyLen, cc_u32 RKStep);
+
+/*
+ * @fn int SDRM_TDES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out)
+ * @brief Triple DES processing for one block
+ *
+ * @param RoundKey [in]expanded round key
+ * @param msg [in]8 byte plaintext
+ * @param out [out]8 byte ciphertext
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out);
+
+/*
+ * @fn int SDRM_TDES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+ * @brief one block Triple DES Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+
+/*
+ * @fn int SDRM_TDES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+ * @brief one block Triple DES Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/CC_API.c b/SPC/Src/CC_API.c
new file mode 100755
index 0000000..6fc2582
--- /dev/null
+++ b/SPC/Src/CC_API.c
@@ -0,0 +1,440 @@
+/**
+ * \file CC_API.c
+ * @brief API of samsung Crypto Library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jae Heung Lee
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/10/24
+ * Note : modified for implementation, by Jisoon, Park, 06/11/06
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include "CryptoCore.h"
+#include "rng.h"
+#include "symmetric.h"
+#include "hash.h"
+#include "ecdsa.h"
+#include "cmac.h"
+#include "rsa.h"
+#include "dsa.h"
+#include "ecdh.h"
+#include "hmac.h"
+#include "dh.h"
+
+////////////////////////////////////////////////////////////////////////////
+// functions
+////////////////////////////////////////////////////////////////////////////
+CRYPTOCORE_INTERNAL void *CCMalloc(int siz)
+{
+ cc_u8 *pbBuf = (cc_u8*)malloc(siz);
+
+ if (pbBuf == NULL)
+ {
+ return NULL;
+ }
+ else
+ {
+ memset(pbBuf, 0, siz);
+ return (void*)pbBuf;
+ }
+}
+
+CRYPTOCORE_INTERNAL void CCFree(void *ptr)
+{
+ if (ptr != NULL)
+ {
+ free(ptr);
+ }
+}
+
+/*
+ * @fn CryptoCoreContainer *create_CryptoCoreContainer(cc_u32 algorithm)
+ * @brief memory allocation and initialize the crypt sturcture
+ *
+ * @param algorithm [in]algorithm want to use
+ *
+ * @return address of created sturcture
+ */
+CRYPTOCORE_INTERNAL CryptoCoreContainer *create_CryptoCoreContainer(cc_u32 algorithm)
+{
+ CryptoCoreContainer *crt;
+ srand((unsigned int)time(NULL));
+
+ // allocate memory for crypt data structure (by using CCMalloc)
+ crt = (CryptoCoreContainer *)CCMalloc(sizeof(CryptoCoreContainer));
+ if (crt == NULL)
+ {
+ return NULL;
+ }
+
+ crt->ctx = (CryptoCoreCTX *)CCMalloc(sizeof(CryptoCoreCTX));
+ if (crt->ctx == NULL)
+ {
+ free(crt);
+ return NULL;
+ }
+
+ crt->PRNG_seed = NULL;
+ crt->PRNG_get = NULL;
+ crt->MD_init = NULL;
+ crt->MD_update = NULL;
+ crt->MD_final = NULL;
+ crt->MD_getHASH = NULL;
+ crt->MAC_init = NULL;
+ crt->MAC_update = NULL;
+ crt->MAC_final = NULL;
+ crt->MAC_getMAC = NULL;
+ crt->SE_init = NULL;
+ crt->SE_process = NULL;
+ crt->SE_final = NULL;
+ crt->AE_encrypt = NULL;
+ crt->AE_decrypt = NULL;
+ crt->DS_sign = NULL;
+ crt->DS_verify = NULL;
+ crt->DSA_genParam = NULL;
+ crt->DSA_setParam = NULL;
+ crt->DSA_genKeypair = NULL;
+ crt->DSA_setKeyPair = NULL;
+ crt->RSA_genKeypair = NULL;
+ crt->RSA_genKeypairWithE= NULL;
+ crt->RSA_genKeyDWithPQE = NULL;
+ crt->RSA_setKeypair = NULL;
+ crt->EC_setCurve = NULL;
+ crt->EC_genKeypair = NULL;
+ crt->EC_setKeypair = NULL;
+ crt->DH_GenerateParam = NULL;
+ crt->DH_SetParam = NULL;
+ crt->DH_Gen1stPhaseKey = NULL;
+ crt->DH_GenAuthKey = NULL;
+ crt->ECDH_Gen1stPhaseKey= NULL;
+ crt->ECDH_GenAuthKey = NULL;
+
+ // allocate memory for context data structure
+ // and set up the member functions according to the algorithm
+ crt->alg = algorithm;
+ switch(algorithm)
+ {
+ case ID_X931:
+ crt->ctx->x931ctx = (SDRM_X931Context*)CCMalloc(sizeof(SDRM_X931Context));
+ crt->PRNG_seed = SDRM_X931_seed;
+ crt->PRNG_get = SDRM_X931_get;
+ break;
+ case ID_MD5:
+ crt->ctx->md5ctx = (SDRM_MD5Context*)CCMalloc(sizeof(SDRM_MD5Context));
+ crt->MD_init = SDRM_MD5_init;
+ crt->MD_update = SDRM_MD5_update;
+ crt->MD_final = SDRM_MD5_final;
+ crt->MD_getHASH = SDRM_MD5_hash;
+ break;
+ case ID_SHA1:
+ crt->ctx->sha1ctx = (SDRM_SHA1Context*)CCMalloc(sizeof(SDRM_SHA1Context));
+ crt->MD_init = SDRM_SHA1_init;
+ crt->MD_update = SDRM_SHA1_update;
+ crt->MD_final = SDRM_SHA1_final;
+ crt->MD_getHASH = SDRM_SHA1_hash;
+ break;
+ case ID_SHA224:
+ crt->ctx->sha224ctx = (SDRM_SHA224Context*)CCMalloc(sizeof(SDRM_SHA224Context));
+ crt->MD_init = SDRM_SHA224_init;
+ crt->MD_update = SDRM_SHA224_update;
+ crt->MD_final = SDRM_SHA224_final;
+ crt->MD_getHASH = SDRM_SHA224_hash;
+ break;
+ case ID_SHA256:
+ crt->ctx->sha256ctx = (SDRM_SHA256Context*)CCMalloc(sizeof(SDRM_SHA256Context));
+ crt->MD_init = SDRM_SHA256_init;
+ crt->MD_update = SDRM_SHA256_update;
+ crt->MD_final = SDRM_SHA256_final;
+ crt->MD_getHASH = SDRM_SHA256_hash;
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384:
+ crt->ctx->sha384ctx = (SDRM_SHA384Context*)CCMalloc(sizeof(SDRM_SHA384Context));
+ crt->MD_init = SDRM_SHA384_init;
+ crt->MD_update = SDRM_SHA384_update;
+ crt->MD_final = SDRM_SHA384_final;
+ crt->MD_getHASH = SDRM_SHA384_hash;
+ break;
+ case ID_SHA512:
+ crt->ctx->sha512ctx = (SDRM_SHA512Context*)CCMalloc(sizeof(SDRM_SHA512Context));
+ crt->MD_init = SDRM_SHA512_init;
+ crt->MD_update = SDRM_SHA512_update;
+ crt->MD_final = SDRM_SHA512_final;
+ crt->MD_getHASH = SDRM_SHA512_hash;
+ break;
+#endif
+ case ID_CMAC:
+ crt->ctx->cmacctx = (SDRM_CMACContext*)CCMalloc(sizeof(SDRM_CMACContext));
+ crt->MAC_init = SDRM_CMAC_init;
+ crt->MAC_update = SDRM_CMAC_update;
+ crt->MAC_final = SDRM_CMAC_final;
+ crt->MAC_getMAC = SDRM_CMAC_getMAC;
+ break;
+ case ID_HMD5:
+ case ID_HSHA1:
+ case ID_HSHA224:
+ case ID_HSHA256:
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384:
+ case ID_HSHA512:
+#endif //_OP64_NOTSUPPORTED
+ crt->ctx->hmacctx = (SDRM_HMACContext*)CCMalloc(sizeof(SDRM_HMACContext));
+ crt->MAC_init = SDRM_HMAC_init;
+ crt->MAC_update = SDRM_HMAC_update;
+ crt->MAC_final = SDRM_HMAC_final;
+ crt->MAC_getMAC = SDRM_HMAC_getMAC;
+ break;
+ case ID_DH :
+ crt->ctx->dhctx = (SDRM_DHContext*)CCMalloc(sizeof(SDRM_DHContext));
+ crt->DH_GenerateParam = SDRM_GenerateDHParam;
+ crt->DH_SetParam = SDRM_SetDHParam;
+ crt->DH_Gen1stPhaseKey = SDRM_GenerateDHPrivate;
+ crt->DH_GenAuthKey = SDRM_GetDHSharedSecret;
+ break;
+ case ID_ECDH :
+ crt->ctx->ecdhctx = (SDRM_ECDHContext*)SDRM_CURVE_Init();
+ crt->EC_setCurve = SDRM_ECC_Set_CTX;
+ crt->EC_genKeypair = SDRM_ECC_genKeypair;
+ crt->EC_setKeypair = SDRM_ECC_setKeypair;
+ crt->ECDH_Gen1stPhaseKey = SDRM_generateDH1stPhaseKey;
+ crt->ECDH_GenAuthKey = SDRM_generateDHKey;
+ break;
+ case ID_AES128:
+ crt->ctx->aesctx = (SDRM_AESContext*)CCMalloc(sizeof(SDRM_AESContext));
+ crt->SE_init = SDRM_AES_init;
+ crt->SE_process = SDRM_AES_process;
+ crt->SE_final = SDRM_AES_final;
+ crt->SE_EncryptOneBlock = SDRM_AES128_Encryption;
+ crt->SE_DecryptOneBlock = SDRM_AES128_Decryption;
+ break;
+ case ID_AES192:
+ crt->ctx->aesctx = (SDRM_AESContext*)CCMalloc(sizeof(SDRM_AESContext));
+ crt->SE_init = SDRM_AES_init;
+ crt->SE_process = SDRM_AES_process;
+ crt->SE_final = SDRM_AES_final;
+ crt->SE_EncryptOneBlock = SDRM_AES192_Encryption;
+ crt->SE_DecryptOneBlock = SDRM_AES192_Decryption;
+ break;
+ case ID_AES256:
+ crt->ctx->aesctx = (SDRM_AESContext*)CCMalloc(sizeof(SDRM_AESContext));
+ crt->SE_init = SDRM_AES_init;
+ crt->SE_process = SDRM_AES_process;
+ crt->SE_final = SDRM_AES_final;
+ crt->SE_EncryptOneBlock = SDRM_AES256_Encryption;
+ crt->SE_DecryptOneBlock = SDRM_AES256_Decryption;
+ break;
+ case ID_DES:
+ crt->ctx->desctx = (SDRM_DESContext*)CCMalloc(sizeof(SDRM_DESContext));
+ crt->SE_init = SDRM_DES_init;
+ crt->SE_process = SDRM_DES_process;
+ crt->SE_final = SDRM_DES_final;
+ crt->SE_EncryptOneBlock = SDRM_DES64_Encryption;
+ crt->SE_DecryptOneBlock = SDRM_DES64_Decryption;
+ break;
+ case ID_TDES:
+ crt->ctx->tdesctx = (SDRM_TDESContext*)CCMalloc(sizeof(SDRM_TDESContext));
+ crt->SE_init = SDRM_TDES_init;
+ crt->SE_process = SDRM_TDES_process;
+ crt->SE_final = SDRM_TDES_final;
+ crt->SE_EncryptOneBlock = SDRM_TDES64_Encryption;
+ crt->SE_DecryptOneBlock = SDRM_TDES64_Decryption;
+ break;
+ case ID_RC4:
+ crt->ctx->rc4ctx = (SDRM_RC4Context*)CCMalloc(sizeof(SDRM_RC4Context));
+ crt->SE_init = SDRM_RC4_init;
+ crt->SE_process = SDRM_RC4_process;
+ break;
+ case ID_SNOW2:
+ crt->ctx->snow2ctx = (SDRM_SNOW2Context*)CCMalloc(sizeof(SDRM_SNOW2Context));
+ crt->SE_init = SDRM_SNOW2_init;
+ crt->SE_process = SDRM_SNOW2_process;
+ break;
+ case ID_RSA512:
+ crt->ctx->rsactx = SDRM_RSA_InitCrt(64);
+ crt->RSA_genKeypair = SDRM_RSA_GenerateKey;
+ crt->RSA_genKeypairWithE = SDRM_RSA_GenerateND;
+ crt->RSA_genKeyDWithPQE = SDRM_RSA_GenerateDwithPQE;
+ crt->RSA_setKeypair = SDRM_RSA_setNED;
+ crt->RSA_setKeypairForCRT = SDRM_RSA_setNEDPQ;
+ crt->AE_encrypt = SDRM_RSA_encrypt;
+ crt->AE_decrypt = SDRM_RSA_decrypt;
+ crt->AE_decryptByCRT = SDRM_RSA_decryptByCRT;
+ crt->DS_sign = SDRM_RSA_sign;
+ crt->DS_verify = SDRM_RSA_verify;
+ break;
+ case ID_RSA:
+ case ID_RSA1024:
+ crt->ctx->rsactx = SDRM_RSA_InitCrt(128);
+ crt->RSA_genKeypair = SDRM_RSA_GenerateKey;
+ crt->RSA_genKeypairWithE = SDRM_RSA_GenerateND;
+ crt->RSA_genKeyDWithPQE = SDRM_RSA_GenerateDwithPQE;
+ crt->RSA_setKeypair = SDRM_RSA_setNED;
+ crt->RSA_setKeypairForCRT = SDRM_RSA_setNEDPQ;
+ crt->AE_encrypt = SDRM_RSA_encrypt;
+ crt->AE_decrypt = SDRM_RSA_decrypt;
+ crt->AE_decryptByCRT = SDRM_RSA_decryptByCRT;
+ crt->DS_sign = SDRM_RSA_sign;
+ crt->DS_verify = SDRM_RSA_verify;
+ break;
+ case ID_RSA2048:
+ crt->ctx->rsactx = SDRM_RSA_InitCrt(256);
+ crt->RSA_genKeypair = SDRM_RSA_GenerateKey;
+ crt->RSA_genKeypairWithE = SDRM_RSA_GenerateND;
+ crt->RSA_genKeyDWithPQE = SDRM_RSA_GenerateDwithPQE;
+ crt->RSA_setKeypair = SDRM_RSA_setNED;
+ crt->RSA_setKeypairForCRT = SDRM_RSA_setNEDPQ;
+ crt->AE_encrypt = SDRM_RSA_encrypt;
+ crt->AE_decrypt = SDRM_RSA_decrypt;
+ crt->AE_decryptByCRT = SDRM_RSA_decryptByCRT;
+ crt->DS_sign = SDRM_RSA_sign;
+ crt->DS_verify = SDRM_RSA_verify;
+ break;
+ case ID_RSA3072:
+ crt->ctx->rsactx = SDRM_RSA_InitCrt(384);
+ crt->RSA_genKeypair = SDRM_RSA_GenerateKey;
+ crt->RSA_genKeypairWithE = SDRM_RSA_GenerateND;
+ crt->RSA_genKeyDWithPQE = SDRM_RSA_GenerateDwithPQE;
+ crt->RSA_setKeypair = SDRM_RSA_setNED;
+ crt->RSA_setKeypairForCRT = SDRM_RSA_setNEDPQ;
+ crt->AE_encrypt = SDRM_RSA_encrypt;
+ crt->AE_decrypt = SDRM_RSA_decrypt;
+ crt->AE_decryptByCRT = SDRM_RSA_decryptByCRT;
+ crt->DS_sign = SDRM_RSA_sign;
+ crt->DS_verify = SDRM_RSA_verify;
+ break;
+ case ID_DSA:
+ crt->ctx->dsactx = (SDRM_DSAContext*)SDRM_DSA_InitCrt();
+ crt->DSA_genParam = SDRM_DSA_GenParam;
+ crt->DSA_setParam = SDRM_DSA_SetParam;
+ crt->DSA_genKeypair = SDRM_DSA_GenKeypair;
+ crt->DSA_setKeyPair = SDRM_DSA_SetKeyPair;
+ crt->DS_sign = SDRM_DSA_sign;
+ crt->DS_verify = SDRM_DSA_verify;
+ break;
+ case ID_ECDSA:
+ crt->ctx->ecdsactx = (SDRM_ECDSAContext*)SDRM_CURVE_Init();
+ crt->EC_setCurve = SDRM_ECC_Set_CTX;
+ crt->EC_genKeypair = SDRM_ECC_genKeypair;
+ crt->EC_setKeypair = SDRM_ECC_setKeypair;
+ crt->DS_sign = SDRM_ECDSA_sign;
+ crt->DS_verify = SDRM_ECDSA_verify;
+ break;
+ default:
+ // free CryptoCoreContainer data structure
+ free(crt->ctx);
+ free(crt);
+ crt = NULL;
+ break;
+ }
+ return crt;
+}
+
+/*
+ * @fn void destroy_CryptoCoreContainer(CryptoCoreContainer* crt)
+ *
+ * @brief free allocated memory
+ * @param crt [in]crypt context
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void destroy_CryptoCoreContainer(CryptoCoreContainer* crt)
+{
+ if (crt == NULL)
+ {
+ return;
+ }
+
+ if (crt->ctx == NULL)
+ {
+ free(crt);
+ return;
+ }
+
+ // free context data structure
+ switch(crt->alg)
+ {
+ case ID_X931:
+ CCFree(crt->ctx->x931ctx);
+ break;
+ case ID_MD5:
+ CCFree(crt->ctx->md5ctx);
+ break;
+ case ID_SHA1:
+ CCFree(crt->ctx->sha1ctx);
+ break;
+ case ID_SHA224:
+ CCFree(crt->ctx->sha224ctx);
+ break;
+ case ID_SHA256:
+ CCFree(crt->ctx->sha256ctx);
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384:
+ CCFree(crt->ctx->sha384ctx);
+ break;
+ case ID_SHA512:
+ CCFree(crt->ctx->sha512ctx);
+ break;
+#endif
+ case ID_CMAC:
+ CCFree(crt->ctx->cmacctx);
+ break;
+ case ID_HMD5:
+ case ID_HSHA1:
+ case ID_HSHA256:
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384:
+ case ID_HSHA512:
+#endif //_OP64_NOTSUPPORTED
+ CCFree(crt->ctx->hmacctx);
+ break;
+ case ID_AES128:
+ case ID_AES192:
+ case ID_AES256:
+ CCFree(crt->ctx->aesctx);
+ break;
+ case ID_DES:
+ CCFree(crt->ctx->desctx);
+ break;
+ case ID_TDES:
+ CCFree(crt->ctx->tdesctx);
+ break;
+ case ID_RC4:
+ CCFree(crt->ctx->rc4ctx);
+ break;
+ case ID_SNOW2:
+ CCFree(crt->ctx->snow2ctx);
+ break;
+ case ID_RSA512:
+ case ID_RSA:
+ case ID_RSA1024:
+ case ID_RSA2048:
+ CCFree(crt->ctx->rsactx);
+ break;
+ case ID_DSA:
+ CCFree(crt->ctx->dsactx);
+ break;
+ case ID_ECDSA:
+ CCFree(crt->ctx->ecdsactx);
+ break;
+ case ID_ECDH:
+ CCFree(crt->ctx->ecdhctx);
+ break;
+ case ID_DH :
+ SDRM_FreeDHContext(crt->ctx->dhctx);
+ CCFree(crt->ctx->dhctx);
+ break;
+ }
+
+ // free CryptoCoreContainer data structure
+ CCFree(crt->ctx);
+ CCFree(crt);
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/DRMLog.c b/SPC/Src/DRMLog.c
new file mode 100755
index 0000000..5c1cdc9
--- /dev/null
+++ b/SPC/Src/DRMLog.c
@@ -0,0 +1,151 @@
+#include <time.h>
+#if defined(_WIN32_WCE)
+#include <winbase.h>
+#endif
+#include "DRMLog.h"
+
+void DRMLOG_API DRMLOG_SetFormat(DRMLOG_CTX* ctx, int format)
+{
+ if (ctx == NULL)
+ {
+ return;
+ }
+
+ ctx->format = format;
+}
+
+void DRMLOG_API DRMLOG_SetLevel(DRMLOG_CTX* ctx, int level)
+{
+ if ((ctx == NULL) || ((level < LOG_DEBUG) && (level > LOG_FATAL)))
+ {
+ return;
+ }
+
+ ctx->level = level;
+}
+
+void DRMLOG_API DRMLOG_SetOutput(DRMLOG_CTX* ctx, FILE *output_file)
+{
+ if (ctx == NULL)
+ {
+ return;
+ }
+
+ ctx->file = output_file;
+}
+
+static void PrintHeader(DRMLOG_CTX* ctx, int level, const char* filename, int line_number)
+{
+#ifdef _DRMLOG_DISABLE
+ return;
+#else
+
+#if defined(_WIN32_WCE)
+ SYSTEMTIME stm;
+#else
+ time_t long_time;
+ struct tm* tm;
+#endif
+
+ static const char* _level_str[] = {"DEBUG", "INFO", "WARN", "ERROR", "FATAL"};
+
+ if(ctx == NULL)
+ {
+ return;
+ }
+
+ // level
+ if (ctx->format & LOG_FORMAT_LEVEL)
+ {
+ fprintf(ctx->file, "[%s]", _level_str[level-1]);
+ }
+
+ // tick
+ if (ctx->format & LOG_FORMAT_TICK)
+ {
+ #if defined(_WIN32_WCE)
+ fprintf(ctx->file, "[%ul]", GetTickCount());
+ #endif
+ }
+
+ // date / time
+ if (ctx->format & LOG_FORMAT_TIME)
+ {
+ #ifdef _WIN32_WCE
+ GetSystemTime(&stm);
+ fprintf(ctx->file, "[%04d/%02d/%02d,%02d:%02d:%02d.%03d]",
+ stm.wYear, stm.wMonth, stm.wDay, stm.wHour, stm.wMinute, stm.wSecond, stm.wMilliseconds);
+ #else
+ time(&long_time);
+ tm = localtime(&long_time);
+ fprintf(ctx->file, "[%04d/%02d/%02d,%02d:%02d:%02d]",
+ tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
+ #endif
+ }
+
+ // file and line-number
+ if(ctx->format & LOG_FORMAT_FILE)
+ {
+ char* file_name;
+ #if defined(_WIN32) || defined(_WIN32_WCE)
+ file_name = strrchr(filename, '\\');
+ #else
+ file_name = strrchr(filename, '/');
+ #endif
+ fprintf(ctx->file, "[%s:%d]", (file_name ? (file_name + 1) : filename), line_number);
+ }
+#endif
+}
+
+void DRMLOG_API DRMLOG_Message(DRMLOG_CTX* ctx, int level, const char* file_name, int line_number, const char* format, ...)
+{
+#ifdef _DRMLOG_DISABLE
+ return;
+#else
+ if ((ctx != NULL) && (ctx->file != NULL) && (ctx->level <= level))
+ {
+ va_list lArg;
+ char log_buffer[LOG_BUFFER_LEN] = {0};
+
+ va_start(lArg, format);
+ vsprintf(log_buffer, format, lArg);
+ va_end(lArg);
+
+ PrintHeader(ctx, level, file_name, line_number);
+ fprintf(ctx->file, "%s", log_buffer);
+ fflush(ctx->file);
+ }
+#endif
+}
+
+void DRMLOG_API DRMLOG_HexaBytes(DRMLOG_CTX* ctx, int level, const char* file_name, int line_number,
+ const char* szMsg, const unsigned char* bytes, int len)
+{
+#ifdef _DRMLOG_DISABLE
+ return;
+#else
+ int idx;
+ if ((ctx != NULL) && (ctx->file != NULL) && (ctx->level <= level))
+ {
+ PrintHeader(ctx, level, file_name, line_number);
+ fprintf(ctx->file, "%s =>\n", szMsg);
+ for(idx = 0; idx < (int)len; idx++)
+ {
+ if((idx != 0) && ((idx % 16) == 0))
+ {
+ fprintf(ctx->file, "\n");
+ }
+
+ if ((idx % 4) == 0)
+ {
+ fprintf(ctx->file, " 0x");
+ }
+
+ fprintf(ctx->file, "%.2x", bytes[idx]);
+ }
+
+ fprintf(ctx->file, "\n");
+ fflush(ctx->file);
+ }
+#endif
+}
diff --git a/SPC/Src/DtcpCTcpSocket.cpp b/SPC/Src/DtcpCTcpSocket.cpp
new file mode 100755
index 0000000..151e1d6
--- /dev/null
+++ b/SPC/Src/DtcpCTcpSocket.cpp
@@ -0,0 +1,855 @@
+// DtcpCTcpSocket.cpp: implementation of the DtcpCTcpSocket class.
+//
+//////////////////////////////////////////////////////////////////////
+#include "DRMLog.h"
+#include "DtcpCTcpSocket.h"
+//#include "DtcpCUtil.h"
+
+#ifndef _LINUX
+#include <winsock2.h>
+//#define _WSPIAPI_COUNTOF
+#include <Ws2tcpip.h>
+#endif
+
+#define DEFAULT_TTL_VALUE 64
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+FILE* logfile = NULL;
+FILE* msgfile = NULL;
+DRMLOG_CTX DtcpLogCTX;
+
+
+/// tcpip
+#define DTCP_TCPIP_SUCCESS DTCP_SUCCESS
+#define DTCP_TCPIP_SOCKET_CLOSED DTCP_SUCCESS + 1
+#define DTCP_ERR_TCPIP_BIND -151
+#define DTCP_ERR_TCPIP_CONNECT -152
+#define DTCP_ERR_TCPIP_READ -153
+#define DTCP_ERR_TCPIP_SEND -154
+#define DTCP_ERR_TCPIP_CLOSE -155
+#define DTCP_ERR_TCPIP_LISTEN -156
+#define DTCP_ERR_TCPIP_ACCEPT -157
+#define DTCP_SOCKET_TIMEOUT -158
+
+/// common
+#define DTCP_SUCCESS 0 /// Function succeeded
+#define DTCP_FAILURE -1 /// General failure
+
+/*
+#ifdef _WIN32_
+int GetLocalIP (IN_ADDR* localHost)
+#elif _LINUX
+int GetLocalIP (struct in_addr* localHost)
+#endif
+
+{
+
+ #ifndef _LINUX //anyview , win32
+ WSADATA wsaData;
+ if (0 == WSAStartup(MAKEWORD(2, 2), &wsaData))
+ {
+ if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
+ {
+ WSACleanup();
+ return DTCP_FAILURE;
+ }
+ }
+
+ int reValue;
+ char aHostName [255];
+ HOSTENT *pHost;
+
+ memset(aHostName, 0x00, 255);
+ gethostname(aHostName, 255);
+ pHost = gethostbyname(aHostName);
+
+
+ if(pHost==NULL)
+ {
+ reValue = DTCP_FAILURE;
+ }
+ else
+ {
+ memcpy(localHost, pHost->h_addr, pHost->h_length);
+ reValue = DTCP_SUCCESS;
+ }
+
+ WSACleanup ();
+#else //LINUX
+
+ int reValue = DTCP_SUCCESS, s;
+
+ struct ifreq ifr;
+ struct sockaddr_in *sin = (struct sockaddr_in*)&ifr.ifr_addr;
+
+ memset(&ifr,0, sizeof ifr);
+ memset(localHost,0,sizeof(localHost));
+
+ if(0 > (s = socket(AF_INET,SOCK_STREAM,0))){
+ return DTCP_ERR_LOCALIP;
+ }
+
+ strcpy(ifr.ifr_name,"eth0");
+ sin->sin_family = AF_INET;
+
+
+ if(0 == ioctl(s,SIOCGIFADDR,&ifr)){
+ if(!inet_aton(inet_ntoa(sin->sin_addr),localHost))
+ return DTCP_ERR_LOCALIP;
+ }
+
+ ::close(s);
+
+
+ #endif
+ return reValue;
+}
+
+*/
+
+/**
+*Constructor [DtcpCTcpSocket]
+* Parameters:
+* Return Value:
+*/
+#ifdef _DTCP_PLUS
+DtcpCTcpSocket::DtcpCTcpSocket (bool bSetTTL)
+#else
+DtcpCTcpSocket::DtcpCTcpSocket ()
+#endif
+{
+ int iReuseAddr = 1;
+
+ init();
+
+ if (0 == m_iFd)
+ m_iFd = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+
+ DRMLOG_Msg (&DtcpLogCTX, LOG_DEBUG, "[Network] Socket m_iFd: %d\n",m_iFd);
+
+ if (0 != ::setsockopt(m_iFd, SOL_SOCKET, SO_REUSEADDR,
+ (const char*)&iReuseAddr, sizeof(iReuseAddr)))
+ DRMLOG_Msg (&DtcpLogCTX, LOG_ERROR,
+ "[Network] %s \n","setsockopt Error");
+ else
+ {
+#ifdef _DTCP_PLUS
+ SetTTL (bSetTTL);
+#else
+ SetTTL ();
+#endif
+ }
+
+}
+
+void
+#ifdef _DTCP_PLUS
+DtcpCTcpSocket::SetTTL (bool bSetTTL)
+#else
+DtcpCTcpSocket::SetTTL ()
+#endif
+{
+#ifdef _DTCP_PLUS
+ if (bSetTTL == true)
+#endif
+ {
+ int aTtl = 3;
+ setsockopt (m_iFd, IPPROTO_IP, IP_TTL, (char*)&aTtl, sizeof (aTtl));
+ }
+#ifdef _DTCP_PLUS
+ else
+ {
+ int aTtl = DEFAULT_TTL_VALUE;
+ setsockopt (m_iFd, IPPROTO_IP, IP_TTL, (char*)&aTtl, sizeof (aTtl));
+ }
+#endif
+}
+
+/**
+* Constructor [DtcpCTcpSocket with parameter]
+* Parameters:
+* uFd
+* [in] Socket handle (File descriptor)
+* Return Value:
+*/
+#ifdef _DTCP_PLUS
+DtcpCTcpSocket::DtcpCTcpSocket(cc_u32 uFd, bool bSetTTL)
+#else
+DtcpCTcpSocket::DtcpCTcpSocket(cc_u32 uFd)
+#endif
+{
+ int iReuseAddr = 1;
+
+ init();
+
+ m_iFd = uFd;
+ DRMLOG_Msg (&DtcpLogCTX, LOG_DEBUG,"[Network] Socket m_iFd: %d\n",m_iFd);
+
+ if (0 != ::setsockopt(m_iFd,
+ SOL_SOCKET,
+ SO_REUSEADDR,
+ (const char*)&iReuseAddr,
+ sizeof(iReuseAddr)))
+ {
+ printf("DtcpCTcpSocket==> setsockopt Error!\n");
+
+ }
+ else
+ {
+#ifdef _DTCP_PLUS
+ SetTTL (bSetTTL);
+#else
+ SetTTL ();
+#endif
+ }
+
+}
+
+DtcpCTcpSocket::~DtcpCTcpSocket()
+{
+
+ //printf ("~DtcpCTcpSocket::DtcpCTcpSocket \n");
+
+ closeSocket();
+#ifdef _WIN32_
+ ::WSACleanup();
+#elif _ANYVIEW
+ ::WSACleanup();
+#endif
+
+}
+
+#ifdef _WIN32_
+static int iWinSockInit = FALSE;
+#elif _ANYVIEW
+static int iWinSockInit = FALSE;
+#endif
+
+
+/**
+* Initialize socket
+* Parameters:
+* Return Value:
+*/
+int DtcpCTcpSocket::init()
+{
+#ifdef _WIN32_
+ if (TRUE == iWinSockInit)
+ return (DTCP_TCPIP_SUCCESS);
+
+ else
+ {
+ WSADATA wsaData;
+
+
+ if (0 == ::WSAStartup(MAKEWORD(2, 2), &wsaData))
+ {
+ if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
+ {
+ ::WSACleanup();
+ }
+ }
+ }
+#elif _ANYVIEW
+ if (TRUE == iWinSockInit)
+ return (DTCP_TCPIP_SUCCESS);
+
+ else
+ {
+ WSADATA wsaData;
+
+ if (0 == ::WSAStartup(MAKEWORD(2, 2), &wsaData))
+ {
+ if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
+ {
+ ::WSACleanup();
+ }
+ }
+ }
+#endif
+
+ ::memset(&m_AddrLocal, 0, sizeof(struct sockaddr_in));
+ ::memset(&m_AddrDest, 0, sizeof(struct sockaddr_in));
+ m_iFd = 0;
+ m_bNonBlocking = false;
+
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+/**
+*Bind a socket to a specified port and IP address
+* Parameters:
+* pAddr
+* [in] Pointer to a sockaddr structure
+* Return Value:
+*/
+int
+DtcpCTcpSocket::bindSocket(sockaddr_in* pAddr)
+{
+ m_AddrLocal.sin_family = AF_INET;
+ m_AddrLocal.sin_port = pAddr->sin_port;
+ m_AddrLocal.sin_addr.s_addr = pAddr->sin_addr.s_addr;
+
+ int reValue = ::bind(m_iFd, (struct sockaddr *)&m_AddrLocal, sizeof(struct sockaddr_in));
+ if (0 != reValue )
+ {
+ DRMLOG_Msg (&DtcpLogCTX, LOG_ERROR,
+ "Bind Error [Address %s, Port %d ] \n",
+ inet_ntoa(m_AddrLocal.sin_addr), ntohs (pAddr->sin_port)
+ );
+ return DTCP_ERR_TCPIP_BIND;
+ }
+
+ SetTTL ();
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+/**
+* Estabilish a connection to a specified socket (to a remote computer)
+* Parameters:
+* pDest
+* [in] Pointer to a sockaddr structure
+* Return Value:
+*/
+long
+DtcpCTcpSocket::connectSocket(sockaddr_in* pDest)
+{
+ m_AddrDest.sin_family = AF_INET;
+ m_AddrDest.sin_port = pDest->sin_port;
+ m_AddrDest.sin_addr.s_addr = pDest->sin_addr.s_addr;
+
+ //////////////////////////////////////////////////////////////////
+ // for TTL Setting
+ // ӽ..
+
+#ifndef _LINUX
+ IN_ADDR inLocalAddr;
+ GetLocalIP (&inLocalAddr);
+
+ sockaddr_in LocalAddr;
+ LocalAddr.sin_family = AF_INET;
+ LocalAddr.sin_addr.s_addr = inLocalAddr.s_addr;
+ LocalAddr.sin_port = htons(0);
+
+ bindSocket (&LocalAddr);
+#endif
+
+ if (0 != ::connect(m_iFd, (struct sockaddr *)&m_AddrDest, sizeof(m_AddrDest)))
+ {
+ printf ("After connect \n");
+#ifdef _WIN32_
+ cc_u32 i = WSAGetLastError();
+#elif _ANYVIEW
+ cc_u32 i = WSAGetLastError();
+#endif
+
+ DRMLOG_Msg (&DtcpLogCTX, LOG_ERROR,"[Network] %s\n", "Connect Error");
+ return DTCP_ERR_TCPIP_CONNECT;
+ }
+
+ SetTTL ();
+ return DTCP_TCPIP_SUCCESS;
+}
+/**
+* Read char-typed data from a connected or bound socket
+* Parameters:
+* pchBuf
+* [out] char-typed Buffer for incoming data
+* dwBufLen
+* [in] Length of buffer
+* pdwRcvLen
+* [out] Received length
+* dwMsec
+* [in] timeout
+* Return Value:
+*/
+/*
+int
+DtcpCTcpSocket::read(cc_u8* pchBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwRcvLen,
+ cc_u32 dwMsec)
+{
+ // Synchronization I/O
+
+ if (INFINITE_32 != dwMsec)
+ {
+ int iRes = 0;
+
+ fd_set readset;
+ timeval t;
+
+ t.tv_sec = dwMsec/1000;
+ t.tv_usec = (dwMsec%1000) * 1000;
+
+ FD_ZERO(&readset);
+ FD_SET(m_iFd, &readset);
+
+#ifdef _DTCP_DEBUG_VER
+ LOG_DEBUG(&DtcpLogCTX), "[network] DtcpCTcpSocket::read ==> m_iFd: %d\n",m_iFd);
+ // printf("DtcpCTcpSocket::read ==> m_iFd: %d\n", m_iFd);
+#endif
+
+ iRes = select(m_iFd+1, &readset, 0, 0, NULL);
+ if (-1 == iRes)
+ {
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] %s\n","DtcpCTcpSocket::read ==> select error!");
+ printf("DtcpCTcpSocket::read ==> select error!\n");
+#endif
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else if (0 == iRes)
+ {
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network]%s\n","DtcpCTcpSocket::read ==> select error!, Time-out");
+ //printf("DtcpCTcpSocket::read ==> select error!, Time-out\n");
+#endif
+ //return DTCP_ERR_TCPIP_READ;
+ }
+
+ if (0 == FD_ISSET(m_iFd, &readset))
+ {
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] %s\n","DtcpCTcpSocket::read ==> FD_ISSET error!");
+ //printf("DtcpCTcpSocket::read ==> FD_ISSET error!\n");
+#endif
+ return DTCP_ERR_TCPIP_READ;
+ }
+ }
+
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] %s\n","DtcpCTcpSocket::read ==> before ::recv!");
+ //printf("DtcpCTcpSocket::read ==> before ::recv\n");
+#endif
+
+ *pdwRcvLen = ::recv(m_iFd, (char *)pchBuf, dwBufLen, 0);
+
+
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] DtcpCTcpSocket::read ==> after ::recv, ReceivedLength: %d\n",*pdwRcvLen);
+// printf("DtcpCTcpSocket::read ==> after ::recv, ReceivedLength: %d\n", dwBufLen);
+#endif
+
+
+ if (*pdwRcvLen == (unsigned)-1)
+ {
+ *pdwRcvLen = 0;
+
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] %s\n","DtcpCTcpSocket::read ==> Recv Error !");
+ //printf("DtcpCTcpSocket::read ==> Recv Error !\n");
+#endif
+
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else if (0 == *pdwRcvLen)
+ return DTCP_TCPIP_SOCKET_CLOSED;
+
+
+#ifdef _DTCP_DEBUG_VER
+ LOG_INFO(&DtcpLogCTX), "[network] %s\n","DtcpCTcpSocket::read ==> Recv Success !");
+ //printf("DtcpCTcpSocket::read ==> Recv Success \n");
+#endif
+
+ return DTCP_TCPIP_SUCCESS;
+}
+*/
+
+#if 0
+int
+DtcpCTcpSocket::read(cc_u8* pbyBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwRcvLen,
+ cc_u32 dwMsec)
+{
+
+// cc_u32 t0=GetTickCount();
+ //*pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+ /*
+#ifdef _WIN32_
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+
+#elif _ANYVIEW
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+#else
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+#endif
+*/
+/*
+ cc_u32 t1=GetTickCount();
+ if( (t1 - t0 )>= dwMsec)
+ {
+ printf(" Time out!\n");
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else
+ printf(" %ld \n",(t1-t0));
+*/
+ if (*pdwRcvLen == (unsigned)-1)
+ {
+ *pdwRcvLen = 0;
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else if (0 == *pdwRcvLen)
+ return DTCP_TCPIP_SOCKET_CLOSED;
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+#endif
+int
+DtcpCTcpSocket::read(cc_u8* pbyBuf,
+ cc_u32 dwBufLen,
+ cc_u32* pdwRcvLen,
+ cc_u32 dwMsec)
+{
+
+ *pdwRcvLen = 0;
+ cc_u32 uRecvLen = 0 ;
+
+ fd_set fds ;
+ int n ;
+ struct timeval tv ;
+
+ // Set up the file descriptor set.
+ FD_ZERO(&fds) ;
+ FD_SET(m_iFd, &fds) ;
+
+ // Set up the struct timeval for the timeout.
+ tv.tv_sec = dwMsec/1000 ;
+ tv.tv_usec = 0 ;
+
+ // Wait until timeout or data received.
+ n = select ( m_iFd+1, &fds, NULL, NULL, &tv ) ;
+ if ( n == 0 )
+ {
+ printf ("TimeOut \n");
+ return DTCP_SOCKET_TIMEOUT;
+
+ }
+ else if (n == 1)
+ {
+ uRecvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+ *pdwRcvLen = uRecvLen;
+
+ if (uRecvLen != dwBufLen)
+ {
+ DRMLOG_Msg (&DtcpLogCTX, LOG_INFO,
+ "Requested length %d, Read length %d \n",dwBufLen,uRecvLen);
+ }
+
+ }
+ else
+ {
+ printf ("Error \n");
+ return DTCP_FAILURE;
+ }
+
+ /*
+
+ do
+ {
+ uRecvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+
+ if (uRecvLen != -1)
+ *pdwRcvLen += uRecvLen;
+
+ uEndTime = timeGetTime ();
+ if (uEndTime - uStartTime > dwMsec)
+ {
+ printf ("TimeOut !!! \n");
+ break;
+ }
+ }while (dwBufLen < *pdwRcvLen);
+ */
+ //DRMLOG_Msg(&DtcpLogCTX,LOG_ERROR,"*pdwRcvLen %d , %d \n", *pdwRcvLen, (uEndTime - uStartTime));
+
+
+// cc_u32 t0=GetTickCount();
+ //*pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+ //*pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+ /*
+#ifdef _WIN32_
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+
+#elif _ANYVIEW
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+#else
+ *pdwRcvLen = ::recv(m_iFd, (char *)pbyBuf, dwBufLen, 0);
+#endif
+*/
+/*
+ cc_u32 t1=GetTickCount();
+ if( (t1 - t0 )>= dwMsec)
+ {
+ printf(" Time out!\n");
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else
+ printf(" %ld \n",(t1-t0));
+*/
+ if (*pdwRcvLen == (unsigned)-1)
+ {
+ *pdwRcvLen = 0;
+ return DTCP_ERR_TCPIP_READ;
+ }
+ else if (0 == *pdwRcvLen)
+ return DTCP_TCPIP_SOCKET_CLOSED;
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+
+/**
+* Query TCP socket to see how many bytes are in read buffer
+* Parameters:
+* iBufLen
+* [out] Length of buffer
+* Return Value:
+*/
+long
+DtcpCTcpSocket::readBufLen(int* iBufLen)
+{
+ if (NULL != iBufLen)
+ {
+#ifdef _WIN32_
+ if (0 != ioctlsocket(
+#elif _ANYVIEW
+ if (0 != ioctlsocket(
+#else
+ if (ioctl(
+#endif
+ m_iFd,
+ FIONREAD,
+#ifdef _WIN32_
+ (u_long *)iBufLen))
+#elif _ANYVIEW
+ (cc_u32 *)iBufLen))
+#else
+ iBufLen))
+#endif
+ return DTCP_ERR_TCPIP_READ;
+
+ }
+ else
+ return DTCP_ERR_TCPIP_READ;
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+/*
+* Send char-typed data on a connected socket
+* Parameters:
+* pchBuf
+* [in] char-typed Buffer containing the data to be transmitted
+* dwBufLen
+* [in] Length of buffer
+* pdwSndLen
+* [out]
+* Return Value:
+*/
+int
+DtcpCTcpSocket::send(const char* pchBuf, cc_u32 dwBufLen, cc_u32* pdwSndLen)
+{
+
+#ifdef _DTCP_DEBUG_VER
+#ifdef _DTCP_FILE_LOG
+ if (pchBuf[0] == 0x01)
+ {
+ fprintf (msgfile, "\n\n*** Send Msg ***");
+ PrintAkeMessage ((cc_u8 *)pchBuf, dwBufLen);
+ }
+#endif
+#endif
+
+#ifdef _WIN32_
+ cc_u32 iFlags = 0;
+ *pdwSndLen = ::send(m_iFd, pchBuf, dwBufLen, iFlags);
+
+#elif _ANYVIEW
+ cc_u32 iFlags;
+ *pdwSndLen = ::send(m_iFd, pchBuf, dwBufLen, iFlags);
+#elif _LINUX
+ *pdwSndLen = write(m_iFd,pchBuf,dwBufLen);
+#endif
+
+
+
+ if ((unsigned)-1 == *pdwSndLen)
+ {
+ *pdwSndLen = 0;
+
+ return DTCP_ERR_TCPIP_SEND;
+ }
+
+ return DTCP_TCPIP_SUCCESS;
+}
+
+/**
+* Send cc_u8-typed data on a connected socket
+* Parameters:
+* pbyBuf
+* [in] cc_u8-typed Buffer containing the data to be transmitted
+* dwBufLen
+* [in] Length of buffer
+* pdwSndLen
+* [out]
+* Return Value:
+*/
+/*
+int
+DtcpCTcpSocket::send(const cc_u8* pbyBuf, cc_u32 dwBufLen, cc_u32* pdwSndLen)
+{
+
+ int iFlags = 0;
+
+#ifdef _WIN32
+ *pdwSndLen = ::send(m_iFd, (char *)pbyBuf, dwBufLen, iFlags);
+#else
+ *pdwSndLen = ::send(m_iFd, pbyBuf, dwBufLen, iFlags);
+#endif
+
+ if ((unsigned)-1 == *pdwSndLen)
+ {
+ *pdwSndLen = 0;
+
+ return DTCP_ERR_TCPIP_SEND;
+ }
+ else if (0 == *pdwSndLen)
+ return DTCP_TCPIP_SOCKET_CLOSED;
+
+ return DTCP_TCPIP_SUCCESS;
+}
+*/
+/**
+* Set non-blocking mode
+* Parameters:
+* Return Value:
+*/
+bool
+DtcpCTcpSocket::setNonBlocking(bool bNonBlocking)
+{
+ m_bNonBlocking = bNonBlocking;
+
+ return true;
+}
+
+/**
+* Close an exiting socket
+* Parameters:
+* Return Value:
+*/
+int
+DtcpCTcpSocket::closeSocket(void)
+{
+ if (m_iFd == 0)
+ {
+ return DTCP_ERR_TCPIP_CLOSE;
+ }
+
+ DRMLOG_Msg (&DtcpLogCTX, LOG_DEBUG,"[Network] closesocket %d\n",m_iFd);
+
+ int reValue = 0;
+#ifdef _WIN32_
+ reValue = ::closesocket(m_iFd);
+#elif _ANYVIEW
+ reValue = ::closesocket(m_iFd);
+#else
+ reValue = ::shutdown (m_iFd,SHUT_RDWR);
+ if (reValue == 0)
+ {
+ reValue = ::close(m_iFd);
+ }
+#endif
+
+ m_iFd = 0;
+ if (reValue != 0)
+ {
+ return DTCP_ERR_TCPIP_CLOSE;
+ }
+ else
+ {
+ return DTCP_TCPIP_SUCCESS;
+ }
+}
+
+
+
+/**
+* Listen
+* Parameters:
+* Return Value:
+*/
+int
+DtcpCTcpSocket::listen(void)
+{
+ int reValue = ::listen(m_iFd, SOMAXCONN);
+ if (reValue != 0)
+ {
+ DRMLOG_Msg (&DtcpLogCTX, LOG_ERROR,
+ " Listen Error [ErrorCode :%d] \n",reValue);
+ }
+
+ return reValue;
+
+ //return (0 != ::listen(m_iFd, SOMAXCONN) ? DTCP_ERR_TCPIP_LISTEN : DTCP_TCPIP_SUCCESS);
+}
+
+/**
+* Permit an incoming connection attempt on a socket
+* (Block waiting for a remote connection on a bound socket)
+* Parameters:
+* Return Value:
+*/
+DtcpCTcpSocket*
+DtcpCTcpSocket::accept()
+{
+ struct sockaddr destAddr;
+#ifdef _WIN32_
+ int iDestSize = sizeof(destAddr);
+#elif _ANYVIEW
+ int iDestSize = sizeof(destAddr);
+#else
+ socklen_t iDestSize = sizeof(destAddr);
+#endif
+
+ int iFd = -1;
+ while (1)
+ {
+ iFd = ::accept(m_iFd, &destAddr, &iDestSize);
+
+ if (-1 == iFd)
+ {
+ DRMLOG_Msg (&DtcpLogCTX, LOG_ERROR,
+ "[Network] %s\n","Accept FAILURE\n");
+ return NULL;
+ }
+ else
+ {
+ DRMLOG_Msg (&DtcpLogCTX, LOG_INFO,
+ "[Network] accept socketId m_iFd: %d\n",m_iFd);
+ }
+ break;
+ }
+
+ DtcpCTcpSocket* ptSocket = new DtcpCTcpSocket((cc_u32)iFd);
+
+ memcpy(&ptSocket->m_AddrDest, &destAddr, sizeof(m_AddrLocal));
+ memcpy(&ptSocket->m_AddrLocal, &m_AddrLocal, sizeof(m_AddrLocal));
+
+#ifdef _DTCP_PLUS
+ SetTTL (true);
+#else
+ SetTTL ();
+#endif
+
+ return ptSocket;
+}
+
+
+
diff --git a/SPC/Src/SAKEP.cpp b/SPC/Src/SAKEP.cpp
new file mode 100755
index 0000000..572059e
--- /dev/null
+++ b/SPC/Src/SAKEP.cpp
@@ -0,0 +1,8213 @@
+#include <string.h>
+#include <time.h>
+#include "SAKEP.h"
+
+#include "CC_Context.h"
+#include "bignum.h"
+#include "ANSI_x931.h"
+#include "SPC_Table.h"
+#include "DRMLog.h"
+
+
+
+#define MIN(a,b) (((a) < (b)) ? (a) : (b))
+
+
+static unsigned char generator[SAKEP_DLBP_PAK_PARMETER_SIZE] =
+{
+ 0xab,0xf9,0xef,0x8e,0x95,0x7c,0x6e,0xe4,0xd4,0x90,0xf9,0xa0,0x3a,0x64,0x78,0x2e,
+ 0x3e,0x59,0x97,0x6e,0x21,0x2d,0xd1,0xbc,0x7e,0xe4,0x99,0x32,0xd3,0xc4,0x0d,0x8a,
+ 0x79,0x9e,0xeb,0x39,0x9a,0xa9,0xe0,0xfe,0x00,0x0c,0xa9,0xbb,0xb1,0x33,0xaf,0x9c,
+ 0x78,0xa8,0x75,0xbc,0xde,0x1c,0x32,0x84,0x93,0xa2,0x70,0x29,0x03,0x5a,0x86,0x8a,
+ 0x91,0x44,0x93,0x26,0xd9,0x1d,0x4d,0x71,0x2a,0xf3,0x52,0x91,0x0b,0xe8,0xc5,0xfb,
+ 0x98,0x59,0x17,0x41,0x1e,0xdd,0x2a,0x42,0x8b,0xd6,0x15,0x1e,0xda,0x08,0xf0,0xc1,
+ 0x85,0x47,0xc0,0x4d,0x19,0x3c,0x3d,0x30,0x58,0x82,0x50,0xe2,0xfe,0x60,0xb8,0x47,
+ 0xf2,0x50,0x91,0x5e,0x56,0xe8,0xf2,0x55,0x57,0x19,0x46,0x18,0xe7,0x83,0x2f,0x73
+};
+
+ static unsigned char prime[SAKEP_DLBP_PAK_PARMETER_SIZE] =
+{
+ 0xb3,0x61,0xeb,0x0a,0xb0,0x1c,0x34,0x39,0xf2,0xc1,0x6f,0xfd,0xa7,0xb0,0x5e,0x3e,
+ 0x32,0x07,0x01,0xeb,0xee,0x3e,0x24,0x91,0x23,0xc3,0x58,0x67,0x65,0xfd,0x5b,0xf6,
+ 0xc1,0xdf,0xa8,0x8b,0xb6,0xbb,0x5d,0xa3,0xfd,0xe7,0x47,0x37,0xcd,0x88,0xb6,0xa2,
+ 0x6c,0x5c,0xa3,0x1d,0x81,0xd1,0x8e,0x35,0x15,0x53,0x3d,0x08,0xdf,0x61,0x93,0x17,
+ 0x06,0x32,0x24,0xcf,0x09,0x43,0xa2,0xf2,0x9a,0x5f,0xe6,0x0c,0x1c,0x31,0xdd,0xf2,
+ 0x83,0x34,0xed,0x76,0xa6,0x47,0x8a,0x11,0x22,0xfb,0x24,0xc4,0xa9,0x4c,0x87,0x11,
+ 0x61,0x7d,0xdf,0xe9,0x0c,0xf0,0x2e,0x64,0x3c,0xd8,0x2d,0x47,0x48,0xd6,0xd4,0xa7,
+ 0xca,0x2f,0x47,0xd8,0x85,0x63,0xaa,0x2b,0xaf,0x64,0x82,0xe1,0x24,0xac,0xd7,0xdd
+
+};
+
+////////////////////////////////////////////////////////////////////////////
+// Global Variables
+////////////////////////////////////////////////////////////////////////////
+cc_u32 DWD_ZERO[2] = {0, 0};
+cc_u32 DWD_ONE[2] = {1, 0};
+
+SPC_INTERNAL SDRM_BIG_NUM _BN_ZERO = {0, 1, 2, DWD_ZERO};
+SPC_INTERNAL SDRM_BIG_NUM _BN_ONE = {0, 1, 2, DWD_ONE};
+
+SPC_INTERNAL SDRM_BIG_NUM *BN_ZERO = &_BN_ZERO;
+SPC_INTERNAL SDRM_BIG_NUM *BN_ONE = &_BN_ONE;
+
+
+
+SPC_INTERNAL SAkepApi::SAkepApi()
+{
+ memset(m_pPrivatekeyY,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ memset(m_pPublickeyY,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ memset(m_pWc,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+
+ m_pMac = NULL;
+
+ m_nMyMacLen = 0;
+}
+
+SPC_INTERNAL SAkepApi::SAkepApi(Handle_CTX* ctx,ModeType eMode)
+{
+ ctx->eErrorType = SUCCESS;
+
+ memset(m_pPrivatekeyY,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ memset(m_pPublickeyY,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ m_pMac = NULL;
+ memset(m_pWc,0x00,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ m_nMyMacLen = 0;
+
+}
+
+SAkepApi::~SAkepApi()
+{
+ if(m_pMac != NULL)
+ {
+ free(m_pMac);
+ }
+
+}
+
+SPC_INTERNAL void* SAkepApi::SAKEPMalloc(int siz)
+{
+ cc_u8 *pbBuf = (cc_u8*)malloc(siz);
+
+ if (pbBuf == NULL)
+ {
+ return NULL;
+ }
+ else
+ {
+ memset(pbBuf, 0, siz);
+ return (void*)pbBuf;
+ }
+}
+
+SPC_INTERNAL void SAkepApi::SAKEPFree(void *ptr)
+{
+ if (ptr != NULL)
+ {
+ free(ptr);
+ }
+}
+
+
+SPC_INTERNAL SAKEPContainer* SAkepApi::create_SAKEPContainer()
+{
+ SAKEPContainer *crt;
+ srand((unsigned int)time(NULL));
+
+ // allocate memory for crypt data structure (by using CCMalloc)
+ crt = (SAKEPContainer *)SAKEPMalloc(sizeof(SAKEPContainer));
+ if (crt == NULL)
+ {
+ return NULL;
+ }
+
+ crt->ctx = (SAKEP_BSContext *)SAKEPMalloc(sizeof(SAKEP_BSContext));
+ if (crt->ctx == NULL)
+ {
+ free(crt);
+ return NULL;
+ }
+
+ return crt;
+}
+
+/*! \brief free allocated memory
+ * \param crt [in]crypt context
+ * \return void
+ */
+SPC_INTERNAL void SAkepApi::destroy_SAKEPContainer(SAKEPContainer* crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return;
+ }
+ // free CryptoCoreContainer data structure
+ SAKEPFree(crt->ctx);
+ SAKEPFree(crt);
+}
+
+
+
+SPC_INTERNAL int SAkepApi::EncryptGy(unsigned char* pPwd,unsigned int nPwdLen , unsigned char* pInGy, unsigned int nInGyLen, unsigned char* pOut, unsigned int* pOutLen)
+{
+ int reVal = SAKEP_SUCCESS;
+ unsigned char pGyTempHash[ SAKEP_SHA1_DIGEST_LENGTH] = {0,};
+ unsigned char pGyKey[SAKEP_GXY_KEY_SIZE] = {0,};
+
+ CryptoCoreContainer *ctx;
+ ctx = create_CryptoCoreContainer(ID_SHA1);
+ if(ctx == NULL)
+ {
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer(ID_SHA1) [ ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ ctx->MD_init(ctx);
+ ctx->MD_update(ctx, pPwd,nPwdLen);
+ ctx->MD_final(ctx, pGyTempHash);
+ destroy_CryptoCoreContainer(ctx);
+
+ memcpy(pGyKey,pGyTempHash,SAKEP_GXY_KEY_SIZE);
+ memset (pGyTempHash,0x00,SAKEP_SHA1_DIGEST_LENGTH);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_AES128);
+ if(crt == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer Error [ ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+
+ crt->SE_init(crt, ID_ENC_CBC, ID_NO_PADDING,pGyKey, 16,NULL);
+ crt->SE_process(crt, pInGy, nInGyLen, pOut, pOutLen);
+ destroy_CryptoCoreContainer(crt);
+
+ return reVal;
+
+
+}
+
+
+SPC_INTERNAL int SAkepApi::DecryptGx(unsigned char* pPwd,unsigned int nPwdLen , unsigned char* pInEncryptedGx, unsigned int nInEncryptedGxLen, unsigned char* pOut, unsigned int* pOutLen)
+{
+ int reVal = SAKEP_SUCCESS;
+ unsigned char pGxTempHash[ SAKEP_SHA1_DIGEST_LENGTH] = {0,};
+ unsigned char pGxKey[SAKEP_GXY_KEY_SIZE] = {0,};
+
+ CryptoCoreContainer *ctx;
+ ctx = create_CryptoCoreContainer(ID_SHA1);
+ if(ctx == NULL)
+ {
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer(ID_SHA1) [ ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ ctx->MD_init(ctx);
+ ctx->MD_update(ctx, pPwd,nPwdLen);
+ ctx->MD_final(ctx, pGxTempHash);
+ destroy_CryptoCoreContainer(ctx);
+
+ memcpy(pGxKey,pGxTempHash,SAKEP_GXY_KEY_SIZE);
+ memset (pGxTempHash,0x00,SAKEP_SHA1_DIGEST_LENGTH);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_AES128);
+ if(crt == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer Error [ ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+
+ crt->SE_init(crt, ID_DEC_CBC, ID_NO_PADDING,pGxKey, 16,NULL);
+ crt->SE_process(crt, pInEncryptedGx, nInEncryptedGxLen, pOut, pOutLen);
+ destroy_CryptoCoreContainer(crt);
+
+ return reVal;
+
+
+}
+
+
+/**
+ * @fn int SAKEP_SetBSParam(SAKEPContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned char* pGenerator, unsigned int nGeneratorLen)
+ * @brief set parameters for Diffie-Hellman protocol
+ *
+ * @param [out] crt context
+ * @param [in] pPrime prime number
+ * @param [in] nPrimeLen size of pPrime buffer
+ * @param [in] pGenerator generator value
+ * @param [in] nGeneratorLen generator Length
+ *
+ * @return int
+ */
+
+SPC_INTERNAL int SAkepApi::SAKEP_SetBSParam(SAKEPContainer* crt, const unsigned char* pPrime, unsigned int nPrimeLen,const unsigned char* pGenerator, unsigned int nGeneratorLen)
+{
+ SAKEP_BSContext* ctx;
+ SDRM_BIG_NUM* p = NULL;
+ SDRM_BIG_NUM* g = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (pPrime == NULL) || (pGenerator == NULL))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_SetBSParam Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_NULL_POINT_ERROR;
+ }
+
+ ctx = crt->ctx;
+
+ p = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (p == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_SetBSParam p parameter Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ g = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (g == NULL)
+ {
+ free(p);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_SetBSParam g parameter Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ SDRM_OS2BN((unsigned char*)pPrime, nPrimeLen, p);
+ SDRM_OS2BN((unsigned char*)pGenerator, nGeneratorLen, g);
+
+ ctx->PrimeLen = nPrimeLen;
+ ctx->p = p;
+ ctx->g = g;
+
+ return SAKEP_SUCCESS;
+}
+
+
+/** g^y
+ * @fn int SAKEP_SAKEP_GenerateBSPublic(SAKEPContainer* crt, unsigned char *pPin,unsigned int nPinLen,unsigned char* pPriv, unsigned char* pPub)
+ * @brief generate private value and calculate public value and generate public Key
+ *
+ * @param [in] crt context
+ * @param [in] pPin password
+ * @param [in] nPinLen password length
+ * @param [out] pPriv private value
+ * @param [out] pPub public length
+ * @return int
+ */
+SPC_INTERNAL int SAkepApi::SAKEP_GenerateBSPublic(SAKEPContainer* crt, unsigned char *pPin,unsigned int nPinLen,unsigned char* pPriv/* x */, unsigned char* pPub/* g^x */)
+{
+ SAKEP_BSContext* ctx;
+ cc_u32 Seed[4] = {0,};
+ int retVal;
+ //unsigned int WcLen;
+
+ unsigned int nPrivLen = 0;
+ unsigned int nPubLen = 0;
+
+ SDRM_BIG_NUM* priv = NULL;
+ SDRM_BIG_NUM* pub = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (pPriv == NULL) || (pPub == NULL))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_NULL_POINT_ERROR;
+ }
+
+ ctx = crt->ctx;
+
+ priv = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (priv == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic priv Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ pub = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (pub == NULL)
+ {
+ free(priv);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic pub Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+
+
+ //generate priv
+ //priv->Length = (ctx->PrimeLen + 3) / 4;
+ priv->Length = (ctx->PrimeLen + 3) / 4;
+ SDRM_RNG_X931((cc_u8 *)Seed, ctx->PrimeLen * 8, (cc_u8*)priv->pData);
+ retVal = SDRM_BN_ModRed(priv, priv, ctx->p);
+ if (retVal != SAKEP_SUCCESS)
+ {
+ free(priv);
+ free(pub);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SDRM_BN_ModRed SDRM_BN_ModRed Error [ErrorCode : %d ]\n",retVal);
+
+ return retVal;
+ }
+
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(pub, ctx->g, priv, ctx->p);
+#else
+ retVal = SDRM_BN_ModExp(pub, ctx->g, priv, ctx->p);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != SAKEP_SUCCESS)
+ {
+ free(priv);
+ free(pub);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic SDRM_BN_ModExp2 Error [ErrorCode : %d ]\n",retVal);
+
+ return retVal;
+ }
+
+
+
+ SDRM_BN_GETBYTELEN(priv, nPrivLen);
+ SDRM_I2OSP(priv, ctx->PrimeLen, pPriv);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic Priv length %d \n",nPrivLen);
+/*
+ if(nPrivLen <128)
+ {
+ memmove(pPriv + 128 - nPrivLen, pPriv, nPrivLen);
+ memset(pPriv, 0x00, 128 - nPrivLen);
+ }
+*/
+ SDRM_BN_GETBYTELEN(pub, nPubLen);
+ SDRM_I2OSP(pub, ctx->PrimeLen, pPub);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GenerateBSPublic Pub length %d \n",nPubLen);
+/*
+ if(nPubLen <128)
+ {
+ memmove(pPub + 128 - nPubLen, pPub, nPubLen);
+ memset(pPub, 0x00, 128 - nPubLen);
+ }
+*/
+
+ free(priv);
+ free(pub);
+
+ return SAKEP_SUCCESS;
+}
+
+
+/**
+ * @fn int SAKEP_GetAuthClient(unsigned char* pPrivY,unsigned int nPrivYLen,unsigned char* pGX,unsigned int nGXLen,unsigned char* pSharedSecret,unsigned int *pSharedSecretlen)
+ * @brief calculate shared secret(Z = g^xy mod p)
+ *
+ * @param [in] pPrivY priavate key Data of y
+ * @param [in] nPrivYLen private key data length of y
+ * @param [in] pGX public key Data
+ * @param [in] nGXLen public key data length
+ * @param [out] pSharedSecret SharedSecret Value(Z = g^xy mod p)
+ * @param [out] pSharedSecretlen SharedSecret Length
+ *
+ * @return int
+ */
+SPC_INTERNAL int SAkepApi::SAKEP_GetAuthClient(unsigned char* pPrivY,unsigned int nPrivYLen,unsigned char* pGX,unsigned int nGXLen,unsigned char* pSharedSecret,unsigned int *pSharedSecretlen)
+{
+ int reVal = SAKEP_SUCCESS;
+
+ SDRM_BIG_NUM *BN_GXY,*BN_GX,*BN_Y;
+
+
+ unsigned char pDecryptedGx[128] = {0,};
+ unsigned int nDecryptedGxLen = 0;
+ unsigned int nGXYLen = 0;
+
+
+ BN_GXY = SDRM_BN_Init(nPrivYLen / 2);
+ if (BN_GXY == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer BN_GXY memory allocate Error [ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+
+ BN_Y = SDRM_BN_Init(nPrivYLen / 2);
+ if (BN_Y == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer BN_GXY memory allocate Error [ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ SDRM_OS2BN(pPrivY, nPrivYLen, BN_Y);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pPrivY " ,pPrivY,nPrivYLen);
+
+
+ BN_GX = SDRM_BN_Init(nPrivYLen / 2);
+ if (BN_GX == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer BN_GXY memory allocate Error [ErrorCode : %d \n]",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ SDRM_OS2BN(pGX, nGXLen, BN_GX);
+
+ SAKEPContainer *crt = create_SAKEPContainer();
+ if (crt == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ if( SAKEP_SetBSParam(crt,prime, SAKEP_DLBP_PAK_PARMETER_SIZE, generator,SAKEP_DLBP_PAK_PARMETER_SIZE) != 0)
+ {
+ destroy_SAKEPContainer(crt);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GetGyWc SAKEP_SetBSParam Error [ErrorCode : %d ]\n",SAKEP_GETGYWC_SETBSPARAM_ERROR);
+
+ return SAKEP_GETGYWC_SETBSPARAM_ERROR;
+ }
+
+ //[Dpwd(g^y)] ^ x
+ unsigned char* pModulus;
+ unsigned int nModuluslen = 0;
+ SAKEP_BSContext* ctx;
+ ctx = crt->ctx;
+
+ reVal = SDRM_BN_ModExp2(BN_GXY,BN_GX,BN_Y,ctx->p);
+ if(CRYPTO_SUCCESS != reVal)
+ {
+ destroy_SAKEPContainer(crt);
+ return reVal;
+ }
+
+
+ SDRM_BN_GETBYTELEN(ctx->p, nModuluslen);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer BN_GXY Length :%d ",nGXYLen);
+
+ pModulus = (unsigned char*) malloc (sizeof(unsigned char) * nModuluslen);
+ SDRM_I2OSP(ctx->p, nModuluslen, pModulus);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pModulus " ,pModulus,nModuluslen);
+
+ if(pModulus)
+ free(pModulus);
+
+
+ destroy_SAKEPContainer(crt);
+
+ SDRM_BN_GETBYTELEN(BN_GXY, nGXYLen);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SAKEP_GetAuthServer BN_GXY Length :%d ",nGXYLen);
+
+ SDRM_I2OSP(BN_GXY, nGXYLen, pSharedSecret);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "Client pSharedSecret " ,pSharedSecret,nGXYLen);
+
+
+
+ if(nGXYLen <128)
+ {
+ memmove(pSharedSecret + 128 - nGXYLen, pSharedSecret, nGXYLen);
+ memset(pSharedSecret, 0x00, 128 - nGXYLen);
+ }
+
+ *pSharedSecretlen = 128;
+
+return reVal;
+}
+
+/**
+ * @fn int SAkepApi::GetGy(unsigned char *pPin,unsigned int nPinLen,unsigned char* pGy,unsigned char *py)
+ * @brief calculate public key
+ *
+ * @param [in] pPin password
+ * @param [in] nPinLen password length
+ * @param [out] pGy public key
+ * @param [out] py private key data *
+ * @return int
+ */
+SPC_INTERNAL int SAkepApi::GetGy(unsigned char *pPin,unsigned int nPinLen,unsigned char* pGy,unsigned char *py)//,unsigned char* pWc,unsigned int* nWcLen)
+
+{
+
+ SAKEPContainer *bob = create_SAKEPContainer();
+ if (bob == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GetGyWc Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ if( SAKEP_SetBSParam(bob,prime, SAKEP_DLBP_PAK_PARMETER_SIZE, generator,SAKEP_DLBP_PAK_PARMETER_SIZE) != 0)
+ {
+ printf("SAKEP_SetBSParam() failed\n");
+ destroy_SAKEPContainer(bob);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GetGyWc SAKEP_SetBSParam Error [ErrorCode : %d ]\n",SAKEP_GETGYWC_SETBSPARAM_ERROR);
+
+ return SAKEP_GETGYWC_SETBSPARAM_ERROR;
+ }
+
+ //if(SAKEP_GenerateBSPublic(bob, pPin,nPinLen, py, pGy,pWc,nWcLen) != 0)
+ if(SAKEP_GenerateBSPublic(bob, pPin,nPinLen, py, pGy) != 0)
+ {
+ printf("SAKEP_GenerateBSPrivate() failed\n");
+ destroy_SAKEPContainer(bob);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GetGyWc SAKEP_GenerateBSPublic Error [ErrorCode : %d ]\n",SAKEP_GETGYWC_GENEARTORBSPUBLIC_ERROR);
+
+ return SAKEP_GETGYWC_GENEARTORBSPUBLIC_ERROR;
+ }
+
+ destroy_SAKEPContainer(bob);
+
+ return SAKEP_SUCCESS;
+}
+
+
+
+
+SPC_INTERNAL int SAkepApi::GeneratorServerHello(Handle_CTX* ctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pUserID,unsigned int nUserIDLen,unsigned char* pOutMsg,unsigned int* nOutLen)
+{
+
+ int reValue = 0;
+ unsigned int index = 0;
+ unsigned int nPayloadLen = 0;
+ //unsigned int nUserIDLen = 0;
+
+ unsigned char pGy[SAKEP_DLBP_PAK_PARMETER_SIZE] = {0,};unsigned char pPrivateY[SAKEP_DLBP_PAK_PARMETER_SIZE] = {0,};
+ unsigned char pWc[SAKEP_DLBP_PAK_PARMETER_SIZE] = {0,};
+ unsigned int nWcLen = 0;
+
+ unsigned char pEncGy[SAKEP_DLBP_PAK_PARMETER_SIZE] ={0,};
+ unsigned int nEncGyLen = 0;
+
+ unsigned char pEncWBGy[SAKEP_DLBP_PAK_PARMETER_SIZE] ={0,};
+
+ unsigned char *pTempHash=NULL;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"+++++++++++ GeneratorServerHello +++++++++++++\n");
+
+ if(ctx == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_NULL_POINT_ERROR;
+ }
+ if(ctx->eErrorType >= 0x81)
+ {
+ pOutMsg[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ pOutMsg[index] = ctx->eErrorType;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pOutMsg+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pOutMsg[index] =NO_ENCRYPTION;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+ ConvertUint32ToUint8(0,pOutMsg+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+
+ *nOutLen = index;
+ ctx->eState = STATE_ERROR;
+ return SAKEP_MESSAGE_ERROR;
+ }
+ if( (pPwd == NULL) || (nPwdLen <=0 )|| (pUserID == NULL)||(pOutMsg == NULL))
+ {
+ ctx->eErrorType = INVALIED_PARAMETER_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ if(ctx->eState != STATE_WAIT_SERVERHELLO )
+ {
+ ctx->eErrorType = UNEXPECTED_MESSAGE_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello State Error [State : %d ,ErrorCode : %d ]\n",ctx->eState,SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_INVAILD_STATE_ERROR;
+ }
+ pOutMsg[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ pOutMsg[index] =SERVER_HELLO;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pOutMsg+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pOutMsg[index] =0x00;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+
+ nPayloadLen = SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN + SAKEP_AKE_MSG_USERID_LENGTH_LEN + nUserIDLen;
+ ConvertUint32ToUint8(nPayloadLen,pOutMsg+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+ ConvertUint32ToUint8(nUserIDLen,pOutMsg+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+ memcpy(pOutMsg+index,pUserID,nUserIDLen);index+=nUserIDLen;//UserID Len
+
+
+ reValue = GetGy(pPwd,nPwdLen,pGy,pPrivateY);// modified 0404
+ if(reValue != 0)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello GetGyWc Error [ErrorCode : %d ]\n",reValue);
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "password" ,pPwd, nPwdLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "pGy" ,pGy, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "pPrivateY" ,pPrivateY, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ return SAKEP_MESSAGE_GENERATE_FAIL;
+ }
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "Input password" ,pPwd, nPwdLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "My public Key pGy" ,pGy, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pPrivateY" ,pPrivateY, SAKEP_DLBP_PAK_PARMETER_SIZE);
+
+ SetPrivatekeyY(pPrivateY);
+ SetPublicKeyY(pGy);
+ SetMac(pUserID,nUserIDLen);//MACa --> 수정 필요 UserIDLen 저장 필요
+
+
+ reValue = EncryptGy(pPwd,nPwdLen,pGy,128,pEncGy,&nEncGyLen);
+
+ if(reValue != 0)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello GetGy Error [ErrorCode : %d ]\n",reValue);
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "password" ,pPwd, nPwdLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "pGy" ,pGy, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "pPrivateY" ,pPrivateY, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ return SAKEP_ENCRYPT_GY_FAIL;
+ }
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "password" ,pPwd, nPwdLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "pGy" ,pGy, SAKEP_DLBP_PAK_PARMETER_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "Encrypted pGy" ,pEncGy, nEncGyLen);
+
+ EncryptParameterDataWithWB(pEncGy,pEncWBGy);
+
+ memcpy(pOutMsg+index,pEncWBGy,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);index+=SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN;//Epwd(g^y)
+ pOutMsg[index] =NO_INTEGRITY;index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;//integrity type
+ memset(pOutMsg+index,0x00,SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN);index+=SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN;//integrity length
+
+ //previous message
+
+ pTempHash = (unsigned char*) malloc (sizeof (unsigned char) * nPayloadLen);
+ if (pTempHash == NULL)
+ {
+ ctx->eErrorType = INVALID_SERVER_HELLO_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello pTempHash malloc Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ ConvertUint32ToUint8(nUserIDLen, pTempHash);
+ memcpy(pTempHash+SAKEP_AKE_MSG_USERID_LENGTH_LEN,pUserID,nUserIDLen); //MACa(UserID)
+ memcpy(pTempHash+SAKEP_AKE_MSG_USERID_LENGTH_LEN+nUserIDLen,pEncWBGy,SAKEP_DLBP_PAK_PARMETER_SIZE);//modified 0404
+
+ //PRINT_BUFFER(" pPreMessage ",pTempHash,SAKEP_AKE_MSG_USERID_LENGTH_LEN+ nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "GeneratorServerHello previos Mesage " ,pTempHash, SAKEP_AKE_MSG_USERID_LENGTH_LEN+ nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ if(pTempHash != NULL)
+ free(pTempHash);
+ ctx->eErrorType = INVALID_CLIENT_ACK_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello create_CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pTempHash,nPayloadLen);
+ crt->MD_final(crt, ctx->pPreHashMsg);
+ destroy_CryptoCoreContainer(crt);
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "GeneratorServerHello previos Hash Mesage " ,ctx->pPreHashMsg, 20);
+
+// PRINT_BUFFER(" geneartor ServerHello ctx->pPreHashMsg : ",ctx->pPreHashMsg, 20);
+
+ if(pTempHash != NULL)
+ {
+ free(pTempHash);
+ }
+
+ ///////////////////////////////////////////////////////////////////////
+ //soket일때는 살리자.
+ ///////////////////////////////////////////////////////////////////////
+
+ ctx->eState = STATE_WAIT_CLIENTHELLO;
+
+ *nOutLen = index;
+
+ return 0;
+}
+
+SPC_INTERNAL int SAkepApi::ParseClientHello(Handle_CTX* ctx,unsigned char* pPwd, unsigned int nPwdLen,unsigned char* pMessage,unsigned int nInLen)
+{
+ int reValue = SAKEP_SUCCESS;
+ int index = 0;
+ unsigned int nPayloadLen = 0,nIntegrityLen=0,nUserIDLen=0;
+ unsigned char pPayloadHash[SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN] = {0,};
+ unsigned char *pPreMessage = NULL;
+
+
+ unsigned char pGx[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN]={0,};
+ unsigned char pMyPublicKey[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN]={0,};
+ unsigned char pMyPrivateY[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN]={0,};
+
+
+ unsigned char *pMyMac =NULL;
+ unsigned char *pPeerMac=NULL ;
+
+ unsigned char *SKPrimeTemp= NULL;
+ unsigned char pSkPrime[SAKEP_SHA1_HASH_SIZE]={0,};
+ unsigned char pSKHashTemp[SAKEP_SK_PRIME_KEY_SIZE+1] = {0,};
+ unsigned char pSKTemp[SAKEP_SK_PRIME_KEY_SIZE]={0,};
+
+
+ unsigned char pPriv[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN];
+ unsigned int nSharedSecretlen;
+ unsigned char pSharedSecret[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN] = {0};
+
+ unsigned char *pTempZMacHash= NULL;
+ unsigned char pZMacHash[SAKEP_SHA1_HASH_SIZE] = {0,};
+
+ unsigned int nMyMacLen = 0;
+ unsigned char pDecryptedGx[128] = {0,};
+ unsigned int nDecryptedGxLen = 0;
+
+ DRMLOG_Message(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__,"++++++++++++++++++++++ParseClientHello++++++++++\n");
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "parser Client Hello TotalMessage " ,pMessage, nInLen);
+ DRMLOG_Message(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__,"++++++++++++++++++++++ParseClientHello++++++++++\n");
+
+ if((ctx == NULL)|| (pMessage == NULL) || (nInLen <=0 ))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+
+ if(ctx->eState != STATE_WAIT_CLIENTHELLO)
+ {
+ ctx->eErrorType = UNEXPECTED_MESSAGE_ERROR;
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello State Error [State:%d , ErrorCode : %d ]\n",(AkeState)ctx->eState,SAKEP_UNEXPECTED_MESSAGE_ERROR);
+
+ return SAKEP_UNEXPECTED_MESSAGE_ERROR;
+ }
+
+ unsigned char* pCurrent = pMessage;
+ //version
+ if(pCurrent[index] != 0x01)
+ {
+ ctx->eErrorType = UNSPPORTED_VERSION_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello Version Error [Version:%d , ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN;
+
+
+ //data type
+ if(pCurrent[index] != 0x01 )
+ {
+ ctx->eErrorType = (ErrorType) pCurrent[index] ;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello data type Error [data Type:%d , ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN+SAKEP_AKE_MSG_TIMESTAMP_LEN;
+
+ //payload en/decryption algorithm
+ if(pCurrent[index] != 0x00 )
+ {
+ ctx->eErrorType = UNSPPORTED_ENDECRYPTION_MODE;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseClientHello payload en/decryption algorithm Error [payload en/decryption algorithm:%d , ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;
+
+ //Payload length
+ ConvertUint8ToUint32(pCurrent+index,&nPayloadLen);
+
+
+ index+= SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;
+
+ //UserID length
+ ConvertUint8ToUint32(pCurrent+index,&nUserIDLen);
+
+ //previous Message
+ pPreMessage = (unsigned char*) malloc (sizeof(unsigned char) * (SAKEP_AKE_MSG_USERID_LENGTH_LEN+nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN ));
+ if(pPreMessage ==NULL)
+ {
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello pPreMessage malloc Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ memcpy(pPreMessage,pCurrent+index,SAKEP_AKE_MSG_USERID_LENGTH_LEN+nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ memcpy(pPreMessage+SAKEP_AKE_MSG_USERID_LENGTH_LEN+nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN, ctx->pPreHashMsg,SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN);
+ index+= SAKEP_AKE_MSG_USERID_LENGTH_LEN;
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "parser Client Hello PreHashMessage " ,pPreMessage, SAKEP_AKE_MSG_USERID_LENGTH_LEN+ nUserIDLen+ SAKEP_DLBP_PAK_PARMETER_SIZE+SAKEP_SHA1_HASH_SIZE);
+ //Mac Value(UserID)
+ pPeerMac = (unsigned char*) malloc(sizeof (unsigned char) * (nUserIDLen+1));
+
+ if (pPeerMac == NULL)
+ {
+ free(pPreMessage);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello pPeerMac malloc Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ memset(pPeerMac,0x00,(nUserIDLen+1));
+
+ memcpy(pPeerMac,pCurrent+index,nUserIDLen);
+ index+= nUserIDLen;
+
+
+ memcpy(pGx,pCurrent+index,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+
+ unsigned char pDecGx[SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN] = {0,};
+ DecryptParameterDataWithWB(pGx,pDecGx);
+
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "parser Client Hello pGx " ,pGx, SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "parser Client Hello WB pGx " ,pDecGx, SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "[ParseClientHello ] pEncryptedGx : ", pGx,128 );
+
+ printf(" pPWd : %s \n",pPwd);
+ reValue = DecryptGx(pPwd,nPwdLen,pDecGx,128,pDecryptedGx,&nDecryptedGxLen);
+ if (reValue != SAKEP_SUCCESS)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello DecryptGx Error [ErrorCode : %d \n]",reValue);
+
+ return SAKEP_DECRYPT_GX_FAIL;
+ }
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "[ParseClientHello ] pDecryptedGx : ", pDecryptedGx,nDecryptedGxLen );
+
+
+ GetPrivatekeyY(pPriv);
+
+ SAKEP_GetAuthClient(pPriv,128,pDecryptedGx,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN,pSharedSecret,&nSharedSecretlen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "[ParseClientHello - pPreviousMsgTemp]Server pSharedSecret : ", pSharedSecret,nSharedSecretlen );
+
+
+
+ index+= SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN;
+
+
+ memcpy(pPayloadHash,pCurrent+index,SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN);
+ index+= SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN;
+
+ GetMyMacLen(&nMyMacLen);
+ pMyMac = (unsigned char*)malloc(nMyMacLen);
+ if (pMyMac == NULL)
+ {
+ free(pPreMessage);
+ free(pPeerMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello pMyMac malloc Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ GetMac(pMyMac,nMyMacLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "[ParseClientHello - pPreviousMsgTemp]Server MACa(GetMac) : ", pMyMac,nMyMacLen );
+
+
+
+ pTempZMacHash = (unsigned char*) malloc (sizeof(unsigned char) * (nMyMacLen + nSharedSecretlen));
+ if(NULL == pTempZMacHash)
+ {
+ if(pPreMessage != NULL)
+ {
+ free(pPreMessage);
+ }
+
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello pTempZMacHash malloc Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ memcpy(pTempZMacHash,pMyMac,nMyMacLen);
+ memcpy(pTempZMacHash+nMyMacLen,pSharedSecret,nSharedSecretlen);
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseClinetHello pMyMac Messsage" ,pMyMac, nMyMacLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "GenerateClientHello pSharedSecret Message" ,pSharedSecret, nSharedSecretlen);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ if(pTempZMacHash != NULL)
+ {
+ free (pTempZMacHash);
+ }
+
+ if(pPreMessage != NULL)
+ {
+ free(pPreMessage);
+ }
+
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pTempZMacHash,(nMyMacLen + nSharedSecretlen));
+ crt->MD_final(crt, pZMacHash);
+ destroy_CryptoCoreContainer(crt);
+
+ if(pTempZMacHash != NULL)
+ {
+ free(pTempZMacHash);
+ }
+
+ //check ClientHello's Mac Value
+ if(0!=memcmp(pZMacHash,pPayloadHash,SAKEP_SHA1_HASH_SIZE))
+ {
+ ctx->eErrorType = INTEGRITY_ERROR;
+ free(pPreMessage);
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello Previous Hash message Error [ErrorCode : %d ]\n",SAKEP_MESSAGE_ERROR);
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseClinetHello Previous Hash Messsage" ,pZMacHash, 20);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "GenerateClientHello Hash Message" ,pPayloadHash, 20);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ else
+ {
+ printf(" CleintHello's Hash Value same\n");
+ }
+
+
+ //integrity type
+ if(pCurrent[index] != 0x00)
+ {
+ ctx->eErrorType = INTEGRITY_ERROR;
+ free(pPreMessage);
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello Integrity Type Error [integrity type :%d , ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;
+
+ //integrity Length
+ ConvertUint8ToUint32(pCurrent+index,&nIntegrityLen);
+ if(nIntegrityLen !=0)
+ {
+ ctx->eErrorType = INTEGRITY_LENGTH_ERROR;
+ free(pPreMessage);
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello Integrity Length Error [integrity lehgth :%d , ErrorCode : %d ]\n",nIntegrityLen,SAKEP_MESSAGE_ERROR);
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+
+ //hash of previous message ( MACb || g^x mod p)
+ //ClientHello에서 받은 메시지 hash value
+
+ crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ if(pPreMessage != NULL)
+ {
+ free (pPreMessage);
+ }
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pPreMessage,(SAKEP_AKE_MSG_USERID_LENGTH_LEN+nUserIDLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN ));
+ crt->MD_final(crt, ctx->pPreHashMsg);
+ destroy_CryptoCoreContainer(crt);
+
+ //PRINT_BUFFER(" parserClientHello ctx->pPreHashMsg : ",ctx->pPreHashMsg, 20);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "ParseClientHello Hash Message" ,ctx->pPreHashMsg, 20);
+
+ if(pPreMessage != NULL)
+ {
+ free(pPreMessage);
+ }
+
+ //generator Sk`
+
+ GetMyMacLen(&nMyMacLen);
+ GetMac(pMyMac,nMyMacLen);
+ GetPublicKeyY(pMyPublicKey);
+ GetPrivatekeyY(pMyPrivateY);
+
+
+
+ //PRINT_BUFFER("[ParseClientHello - pMyMac]Client MACb(GetMac) : ", pPeerMac, 6);
+
+ SKPrimeTemp = (unsigned char*) malloc (sizeof(unsigned char) * (nUserIDLen+nMyMacLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN));
+ if (SKPrimeTemp == NULL)
+ {
+ free(pPeerMac);
+ free(pMyMac);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello SKPrimeTemp malloc Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+
+ //Generator sk'
+ memcpy(SKPrimeTemp,pPeerMac,nUserIDLen); //MACa
+ memcpy(SKPrimeTemp+nUserIDLen,pMyMac,nMyMacLen);//MACb
+ memcpy(SKPrimeTemp+nUserIDLen+nMyMacLen,pDecryptedGx,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);//g^x
+ memcpy(SKPrimeTemp+nUserIDLen+nMyMacLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN,pMyPublicKey,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);//G^y
+ memcpy(SKPrimeTemp+nUserIDLen+nMyMacLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN,pSharedSecret,SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);//z = G^xy
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pPeerMac :" ,pPeerMac, nUserIDLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pMyMac :" ,pMyMac, nMyMacLen);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pGx :" ,pDecryptedGx, SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pMyPublicKey :" ,pMyPublicKey, SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "pSharedSecret :" ,pSharedSecret, SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+
+
+
+ free(pPeerMac);
+ free(pMyMac);
+
+ //hash of previous message ( MACb || g^x mod p)
+ crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ if(SKPrimeTemp != NULL)
+ {
+ free (SKPrimeTemp);
+ }
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, SKPrimeTemp,nUserIDLen+nMyMacLen+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN+SAKEP_AKE_MSG_PAYLOAD_EN_DATA_LEN);
+ crt->MD_final(crt, pSkPrime);
+ destroy_CryptoCoreContainer(crt);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "SKPrimeTemp :" ,SKPrimeTemp, SAKEP_SK_PRIME_KEY_SIZE);
+
+
+ if(SKPrimeTemp != NULL)
+ {
+ free(SKPrimeTemp);
+ }
+
+ //----------------------------------------- 다음 부터 수정
+
+ //SetSKPrime(pSkPrime);
+ memcpy(ctx->pSKPrime,pSkPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "before ApplyKeyTransform of SK Value :" ,pSKTemp, SAKEP_SK_PRIME_KEY_SIZE);
+
+ //Create SK
+ memcpy(pSKHashTemp,pSkPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ pSKHashTemp[SAKEP_SK_PRIME_KEY_SIZE]=0;
+
+ crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ ctx->eErrorType = INVALID_CLIENT_HELLO_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pSKHashTemp,21);
+ crt->MD_final(crt, pSKTemp);
+ destroy_CryptoCoreContainer(crt);
+
+ //0215 pSKTemp permitation
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "before ApplyKeyTransform of SK Value :" ,pSKTemp, SAKEP_SK_PRIME_KEY_SIZE);
+ ApplyKeyTransform(pSKTemp,pSKTemp);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "After ApplyKeyTransform of SK Value :" ,pSKTemp, SAKEP_SK_PRIME_KEY_SIZE);
+ memcpy(ctx->pSharedkey,pSKTemp,SAKEP_SHARED_KEY_SIZE);
+ PRINT_BUFFER("[ParseClientHello] sk Client : ",ctx->pSharedkey, SAKEP_SHARED_KEY_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__, "Client SK Value " ,ctx->pSharedkey, SAKEP_SHARED_KEY_SIZE);
+
+ ctx->eState = STATE_WAIT_SERVERACKHELLO;
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello State [State:%d ]\n",(AkeState)ctx->eState);
+
+ return reValue;
+}
+
+
+SPC_INTERNAL int SAkepApi::GeneratorServerAck(Handle_CTX* ctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+{
+ int reValue = SAKEP_SUCCESS;
+ unsigned int index = 0;
+
+
+ if((ctx == NULL)|| (pOutMsg == NULL))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerAck Input parameter Error [ErrorCode : %d ]\n",SAKEP_NULL_POINT_ERROR);
+
+ return SAKEP_NULL_POINT_ERROR;
+ }
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerAck State [State:%d ]\n",ctx->eState);
+
+ if(ctx->eErrorType >= 0x81)
+ {
+ pOutMsg[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ pOutMsg[index] = ctx->eErrorType;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pOutMsg+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pOutMsg[index] =NO_ENCRYPTION;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+ ConvertUint32ToUint8(0,pOutMsg+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+
+ *nOutLen = index;
+ ctx->eState = STATE_ERROR;
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+ if(ctx->eState != STATE_WAIT_SERVERACKHELLO)
+ {
+ ctx->eErrorType = UNEXPECTED_MESSAGE_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerAck State Error [State:%d , ErrorCode : %d ]\n",ctx->eState,SAKEP_UNEXPECTED_MESSAGE_ERROR);
+
+ return SAKEP_UNEXPECTED_MESSAGE_ERROR;
+ }
+
+ pOutMsg[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ pOutMsg[index] =SERVER_ACKNOWLEDGEMENT;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pOutMsg+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pOutMsg[index] =NO_ENCRYPTION;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+ ConvertUint32ToUint8(SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN,pOutMsg+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+
+ unsigned char pServerAckMsg [SAKEP_MAC_KEY_SIZE];
+ unsigned char pServerAckMakeTempMsg[SAKEP_MAC_KEY_SIZE +1];
+ memcpy(pServerAckMakeTempMsg,ctx->pSKPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ memset(pServerAckMakeTempMsg+SAKEP_SK_PRIME_KEY_SIZE,0x01,1);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ ctx->eErrorType = INVALID_CLIENT_ACK_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerAck CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pServerAckMakeTempMsg,SAKEP_MAC_KEY_SIZE+1);
+ crt->MD_final(crt, pServerAckMsg);
+ destroy_CryptoCoreContainer(crt);
+
+ PRINT_BUFFER("pServerAckMsg: ", pServerAckMsg, 20);
+
+
+ memcpy(pOutMsg+index,pServerAckMsg,SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN); index+= SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN;//H(SK' || 0x01)
+ pOutMsg[index] =NO_INTEGRITY;index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;//integrity type
+ memset(pOutMsg+index,0x00,SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN);index+=SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN;//integrity length
+
+ *nOutLen = index;
+ ctx->eState = STATE_WAIT_CLIENTACKHELLO;
+ return reValue;
+}
+
+
+
+SPC_INTERNAL int SAkepApi::ParserClientAck(Handle_CTX* ctx,unsigned char* pMessage,unsigned int nInLen)
+{
+ int reValue = SAKEP_SUCCESS;
+ int index = 0;
+ unsigned int nPayloadLen = 0,nIntegrityLen=0;
+
+
+ if((ctx == NULL)|| (pMessage == NULL) || (nInLen <=0 ))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck input parameter Error [ErrorCode : %d ]\n",SAKEP_INPUT_INVALID_ERROR);
+
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ if(ctx->eState != STATE_WAIT_CLIENTACKHELLO)
+ {
+ ctx->eErrorType = UNEXPECTED_MESSAGE_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck State Error [State: %d, ErrorCode : %d ]\n",ctx->eState,SAKEP_UNEXPECTED_MESSAGE_ERROR);
+ return SAKEP_UNEXPECTED_MESSAGE_ERROR;
+ }
+
+ unsigned char* pCurrent = pMessage;
+ //version
+ if(pCurrent[index] != 0x01)
+ {
+ ctx->eErrorType = UNSPPORTED_VERSION_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck Version Error [Version: %d, ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN;
+
+ //data type
+ if(pCurrent[index] != CLIENT_ACKNOWLEDGEMENT )
+ {
+ ctx->eErrorType = (ErrorType) pCurrent[index] ;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck data type Error [data type: %d, ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN+SAKEP_AKE_MSG_TIMESTAMP_LEN;
+
+ //payload en/decryption algorithm
+ if(pCurrent[index] != 0x00 )
+ {
+ ctx->eErrorType = UNSPPORTED_ENDECRYPTION_MODE;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParserClientAck payload en/decryption algorithm Error [payload en/decryption algorithm type: %d, ErrorCode : %d ]\n",pCurrent[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;
+
+ //Payload length
+ ConvertUint8ToUint32(pCurrent+index,&nPayloadLen);
+ if(nPayloadLen != SAKEP_AKE_MSG_ACK_SERVER_PAYLOAD_LEN)
+ {
+ ctx->eErrorType = INVALID_CLIENT_ACK_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck payload length Error [payload length: %d, ErrorCode : %d ]\n",nPayloadLen,SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;
+
+ //Payload Value
+ PRINT_BUFFER("ctx->pSKPrime: ", ctx->pSKPrime, SAKEP_AKE_MSG_PAYLOAD_HASH_DATA_LEN);
+ unsigned char pClientAckMsg [SAKEP_MAC_KEY_SIZE];
+ unsigned char pClientAckMakeTempMsg[SAKEP_MAC_KEY_SIZE +1];
+ memcpy(pClientAckMakeTempMsg,ctx->pSKPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ memset(pClientAckMakeTempMsg+SAKEP_SK_PRIME_KEY_SIZE,0x02,1);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ ctx->eErrorType = INVALID_CLIENT_ACK_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck create_CryptoCoreContainer Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pClientAckMakeTempMsg,SAKEP_MAC_KEY_SIZE+1);
+ crt->MD_final(crt, pClientAckMsg);
+ destroy_CryptoCoreContainer(crt);
+
+ if( 0 != memcmp(pClientAckMsg,(const char*)pCurrent+ index , SAKEP_MAC_KEY_SIZE) )
+ {
+ ctx->eErrorType = INVALID_CLIENT_ACK_PAYLOAD_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck Mac key Error [ErrorCode : %d ]\n",SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+ index+= nPayloadLen;
+
+ //integrity type
+ if(pCurrent[index] != 0x00)
+ {
+ ctx->eErrorType = INTEGRITY_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck integrity Error [integrity type: %d, ErrorCode : %d ]\n",pCurrent[index] ,SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;
+
+ //integrity Length
+ ConvertUint8ToUint32(pCurrent+index,&nIntegrityLen);
+ if(nIntegrityLen !=0)
+ {
+ ctx->eErrorType = INTEGRITY_LENGTH_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParserClientAck integrity length Error [integrity length: %d, ErrorCode : %d ]\n",nIntegrityLen ,SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+
+ ctx->eState = STATE_COMPLETED;;
+
+
+ return reValue;
+}
+
+
+
+//add Header 16 byte
+SPC_INTERNAL int SAkepApi::GeneratorRecordMsg ( Handle_CTX* ctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen)
+{
+ int reValue = SAKEP_SUCCESS;
+ int index = 0;
+ unsigned int nPaddingLen = 0;
+ unsigned int nEnTempLen = 0;
+ unsigned char *pEnTemp;
+
+ if((ctx == NULL)|| (pPlainData == NULL)||(uPlainDataLen <=0 )||(pEncryptedData == NULL) || (uEncryptedDataLen ==NULL))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorRecordMsg input parameter Error [ErrorCode : %d ]\n",SAKEP_INPUT_INVALID_ERROR);
+
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ if(ctx->eErrorType >= 0x81)
+ {
+ printf(" ctx->eErrorType %d \n",ctx->eErrorType);
+ pEncryptedData[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ pEncryptedData[index] = ctx->eErrorType;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pEncryptedData+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pEncryptedData[index] =NO_ENCRYPTION;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+ ConvertUint32ToUint8(0,pEncryptedData+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+
+ *uEncryptedDataLen = index;
+ ctx->eState = STATE_ERROR;
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+ pEncryptedData[index] = 0x01;index+=SAKEP_AKE_MSG_VERSION_LEN;//Version
+ //pEncryptedData[index] = ENCRYPTED_DATA ;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ pEncryptedData[index] = ENCRYPTED_CREDENTAIL_DATA ;index+=SAKEP_AKE_MSG_DATATYPE_LEN;//Data Type
+ memset(pEncryptedData+index, 0x00,SAKEP_AKE_MSG_TIMESTAMP_LEN);index+=SAKEP_AKE_MSG_TIMESTAMP_LEN;//TimeStamp
+ pEncryptedData[index] = AES_E_CRT;index+=SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;//Payload encryption algorithm
+
+
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ //encryption 수행 start
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ pEnTemp = (unsigned char*) malloc (uPlainDataLen+SAKEP_AES_ECB_ADDED_PADDING_SIZE);
+ if(pEnTemp == NULL)
+ {
+ ctx->eErrorType = RECORD_ENCRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorRecordMsg pEnTemp memory allocate Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ //memcpy(pEnTemp,pEncryptedData+index,uPlainDataLen);////
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_AES128);
+ if(crt == NULL)
+ {
+ if(pEnTemp!=NULL)
+ free(pEnTemp);
+ ctx->eErrorType = RECORD_ENCRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorRecordMsg create_CryptoCoreContainer memory allocate Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ //AES-ECB
+ //2015 ctx->pSharedkey ReverseKeyTransform
+ PRINT_BUFFER("[0215] before ReverseKeyTransform ctx->pSharedkey : ",ctx->pSharedkey, SAKEP_SHARED_KEY_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ReverseKeyTransform SK:" ,ctx->pSharedkey, SAKEP_SHARED_KEY_SIZE);
+ unsigned char pTempSK[16] = {0,};
+ ReverseKeyTransform(ctx->pSharedkey,pTempSK);
+ PRINT_BUFFER("[0215]atter ReverseKeyTransform ctx->pSharedkey : ",pTempSK, SAKEP_SHARED_KEY_SIZE);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "after ReverseKeyTransform SK:" ,pTempSK, SAKEP_SHARED_KEY_SIZE);
+ crt->SE_init(crt, ID_ENC_ECB, ID_PKCS5, pTempSK, SAKEP_SHARED_KEY_SIZE, NULL);
+ crt->SE_process(crt, pPlainData, uPlainDataLen, pEnTemp, &nEnTempLen);
+ crt->SE_final(crt, NULL, 0, pEnTemp + nEnTempLen, &nPaddingLen);
+ memset(pTempSK,0x00,16);
+
+ nEnTempLen += nPaddingLen;
+
+ destroy_CryptoCoreContainer(crt);
+ ConvertUint32ToUint8(nEnTempLen,pEncryptedData+index);index+=SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;//Payload length
+ memcpy(pEncryptedData+index,pEnTemp,nEnTempLen);
+
+
+ //index+= uPlainDataLen;
+ index+= nEnTempLen;
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ //encryption 수행 End
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+
+ unsigned char pTempPayloadMac[SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN] = {0,};
+ unsigned int nMacOutMsgLen= 0;
+
+ //Mac key 생성 // by added sangsu . 130111
+ unsigned char pMacKey[SAKEP_MAC_KEY_SIZE+1];
+ unsigned char pMacMakeTempMsg[SAKEP_MAC_KEY_SIZE +1];
+ memcpy(pMacMakeTempMsg,ctx->pSKPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ memset(pMacMakeTempMsg+SAKEP_SK_PRIME_KEY_SIZE,0xFF,1);
+
+ crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ free(pEnTemp);
+ ctx->eErrorType = RECORD_ENCRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorRecordMsg create_CryptoCoreContainer memory allocate Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pMacMakeTempMsg,SAKEP_MAC_KEY_SIZE+1);
+ crt->MD_final(crt, pMacKey);
+ destroy_CryptoCoreContainer(crt);
+
+
+ pEncryptedData[index] =0x01;index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;//integrity type
+
+ ConvertUint32ToUint8(SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN,pEncryptedData+index);index+=SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN;//Payload length
+
+ crt = create_CryptoCoreContainer(ID_HSHA1);
+ if(crt == NULL)
+ {
+
+ if(NULL!=pEnTemp)
+ free(pEnTemp);
+
+ ctx->eErrorType = RECORD_ENCRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorRecordMsg create_CryptoCoreContainer memory allocate Error [ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MAC_getMAC(crt, pMacKey, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN, pEnTemp,nEnTempLen, pTempPayloadMac,&nMacOutMsgLen);
+ destroy_CryptoCoreContainer(crt);
+
+
+ memcpy(pEncryptedData+index,pTempPayloadMac,nMacOutMsgLen);
+
+// PRINT_BUFFER("pTempPayloadMac : ",pTempPayloadMac, nMacOutMsgLen);
+ index+=nMacOutMsgLen;
+ *uEncryptedDataLen = index;
+
+
+ if(NULL!=pEnTemp)
+ free(pEnTemp);
+
+ return reValue;
+
+}
+SPC_INTERNAL int SAkepApi::ParseRecordMsg ( Handle_CTX* ctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen)
+{
+ int reValue = SAKEP_SUCCESS;
+ int index = 0;
+ unsigned int nIntegrityLen = 0;
+ unsigned int nPayloadLen = 0;
+
+ unsigned int nPaddingLen = 0;
+ unsigned char *pEnData;
+
+ if((ctx == NULL)|| (pEncryptedData == NULL) || (uEncryptedDataLen <= 0) ||(pPlainData == NULL)||(uPlainDataLen == NULL ))
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg Input parameter Error [ErrorCode : %d ]\n",SAKEP_INPUT_INVALID_ERROR);
+
+ if(ctx == NULL)
+ printf("ctx null\n");
+ else if(pEncryptedData == NULL)
+ printf("(pEncryptedData == NULL)");
+ else if (uEncryptedDataLen <= 0)
+ printf("(uEncryptedDataLen <= 0) ");
+ else if (pPlainData == NULL)
+ printf("(pPlainData == NULL)");
+ else if(uPlainDataLen == NULL )
+ printf("uPlainDataLen == NULL )");
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ if(pEncryptedData[index] != 0x01)
+ {
+ ctx->eErrorType = UNSPPORTED_VERSION_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg Version Error [Vesrion:%d , ErrorCode : %d ]\n",pEncryptedData[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN;
+
+ //data type
+ if(pEncryptedData[index] != 0x11 )
+ {
+ if(pEncryptedData[index] > 0x81)
+ {
+ ctx->eErrorType = (ErrorType)pEncryptedData[index];
+ }
+ else
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg data type Error [Vesrion:%d , ErrorCode : %d ]\n",pEncryptedData[index],UNEXPECTED_MESSAGE_ERROR);
+
+ ctx->eErrorType = UNEXPECTED_MESSAGE_ERROR;
+ }
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_VERSION_LEN+SAKEP_AKE_MSG_TIMESTAMP_LEN;
+
+ //payload en/decryption algorithm
+ if(pEncryptedData[index] != 0x01 )
+ {
+ ctx->eErrorType = UNSPPORTED_ENDECRYPTION_MODE;
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseRecordMsg payload en/decryption algorithm Error [payload en/decryption algorithm:%d , ErrorCode : %d ]\n",pEncryptedData[index],SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+ index+= SAKEP_AKE_MSG_PAYLOAD_ALG_LEN;
+
+ //Payload length
+ ConvertUint8ToUint32(pEncryptedData+index,&nPayloadLen);
+
+ index+= SAKEP_AKE_MSG_PAYLOAD_LENGTH_LEN;
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ //decryption 수행 start
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+ pEnData = (unsigned char*) malloc (nPayloadLen);
+ if(pEnData == NULL)
+ {
+ ctx->eErrorType = RECORD_DECRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg pEnData memory allocate Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ memcpy(pEnData,pEncryptedData+index,nPayloadLen);
+ index+=nPayloadLen;
+ //integrity type
+ if(pEncryptedData[index] == 0x00)
+ {
+ if(pEnData != NULL)
+ {
+ free(pEnData);
+ }
+ ctx->eErrorType = INTEGRITY_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg integrity type Error [integrity type%d, ErrorCode : %d ]\n",pEncryptedData[index] ,SAKEP_MESSAGE_ERROR);
+
+ return SAKEP_MESSAGE_ERROR;
+
+ }
+ else if(pEncryptedData[index] == 0x01 )
+ {
+ unsigned char pTmpPayloadMac[SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN] ={0,};
+ unsigned int nMacOutMsgLen= 0;
+ unsigned char pInMsgPayloadMac[SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN] ={0,};
+ index+=SAKEP_AKE_MSG_INTEGRYITY_TYPE_LEN;
+
+ //integrity Length
+ ConvertUint8ToUint32(pEncryptedData+index,&nIntegrityLen);
+ index+=SAKEP_AKE_MSG_INTEGRYITY_LENGTH_LEN;
+ memcpy(pInMsgPayloadMac,pEncryptedData+index,nIntegrityLen);
+
+ //Mac key 생성 // by added sangsu . 130111
+ unsigned char pMacKey[SAKEP_MAC_KEY_SIZE];
+ unsigned char pMacMakeTempMsg[SAKEP_MAC_KEY_SIZE +1];
+ memcpy(pMacMakeTempMsg,ctx->pSKPrime,SAKEP_SK_PRIME_KEY_SIZE);
+ memset(pMacMakeTempMsg+SAKEP_SK_PRIME_KEY_SIZE,0xFF,1);
+
+ //MAC key 생성
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_SHA1);
+ if(crt == NULL)
+ {
+ if(pEnData != NULL)
+ {
+ free(pEnData);
+ }
+ ctx->eErrorType = RECORD_DECRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainerError [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MD_init(crt);
+ crt->MD_update(crt, pMacMakeTempMsg,SAKEP_MAC_KEY_SIZE+1);
+ crt->MD_final(crt, pMacKey);
+ destroy_CryptoCoreContainer(crt);
+
+ crt = create_CryptoCoreContainer(ID_HSHA1);
+ if(crt == NULL)
+ {
+ if(pEnData != NULL)
+ {
+ free(pEnData);
+ }
+ ctx->eErrorType = RECORD_DECRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ crt->MAC_getMAC(crt, pMacKey, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN, pEnData,nPayloadLen, pTmpPayloadMac,&nMacOutMsgLen);
+ destroy_CryptoCoreContainer(crt);
+
+ if(0!=memcmp(pTmpPayloadMac,pInMsgPayloadMac,SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN))
+ {
+ printf(" Integrity Fiail\n");
+ if(pEnData != NULL)
+ {
+ free(pEnData);
+ }
+ ctx->eErrorType = RECORD_INVALID_INTEGRITY_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg Inegrity Invalid Error [ ErrorCode : %d ]\n",SAKEP_MESSAGE_ERROR);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseRecordMsg Calcurated Mac Value " ,pTmpPayloadMac, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN);
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "ParseRecordMsg Input Message Mac Value " ,pInMsgPayloadMac, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN);
+
+
+ return SAKEP_MESSAGE_ERROR;
+ }
+
+
+ // PRINT_BUFFER("pTmpPayloadMac : ",pTmpPayloadMac, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN);
+ // PRINT_BUFFER("pInMsgPayloadMac : ",pInMsgPayloadMac, SAKEP_AKE_MSG_INTEGRYITY_MAC_LENGTH_LEN);
+
+
+
+ }
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ //decryption 수행 start
+ ///////////////////////////////////////////////////////////////////////////////////////////
+
+
+ //PRINT_BUFFER("ctx->pSharedkey : ",ctx->pSharedkey, 16);
+
+ CryptoCoreContainer *crt = create_CryptoCoreContainer(ID_AES128);
+ if(crt == NULL)
+ {
+ if(pEnData != NULL)
+ free(pEnData);
+ ctx->eErrorType = RECORD_DECRYPTED_ERROR;
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseRecordMsg create_CryptoCoreContainer Error [ ErrorCode : %d ]\n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ //0215 repermition
+ unsigned char pTempSK[16] = {0,};
+ ReverseKeyTransform(ctx->pSharedkey,pTempSK);
+ crt->SE_init(crt, ID_DEC_ECB, ID_PKCS5, pTempSK, 16,NULL);
+ crt->SE_process(crt, pEnData, nPayloadLen-1, pPlainData, uPlainDataLen);
+ crt->SE_final(crt, pEnData+nPayloadLen-1,1, pPlainData + (*uPlainDataLen), &nPaddingLen);
+
+ memset(pTempSK,0x00,16);
+
+ (*uPlainDataLen) +=nPaddingLen;
+ destroy_CryptoCoreContainer(crt);
+
+ free(pEnData);
+
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ //decryption 수행 End
+ ///////////////////////////////////////////////////////////////////////////////////////////
+ ctx->eErrorType = SUCCESS;
+
+ return reValue;
+}
+
+
+SPC_INTERNAL int SAkepApi::SetPrivatekeyY(unsigned char* pPrivateKey)
+{
+ int reValue = 0;
+ memcpy(m_pPrivatekeyY,pPrivateKey,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ return reValue;
+}
+
+SPC_INTERNAL int SAkepApi::GetPrivatekeyY(unsigned char* pPrivatekey)
+{
+ int reValue = 0;
+ memcpy(pPrivatekey,m_pPrivatekeyY,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ return reValue;
+}
+
+SPC_INTERNAL int SAkepApi::SetMac(unsigned char* pMac,unsigned int nMacLen)
+{
+ int reValue = 0;
+ m_pMac = (unsigned char*) malloc (sizeof(unsigned char) * (nMacLen+1));
+ memset(m_pMac,0x00,(nMacLen+1));
+ if(m_pMac == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"SetMac m_pMac memory allocate Error [ ErrorCode : %d ] \n",SAKEP_MEMROY_ALLOCATE_ERROR);
+
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ }
+ memcpy(m_pMac,pMac,nMacLen);
+ m_nMyMacLen =nMacLen; //߰ 0314
+ PRINT_BUFFER("[0217] Set Mac ",m_pMac,nMacLen);
+
+ return reValue;
+}
+SPC_INTERNAL int SAkepApi::GetMac(unsigned char* pMac,unsigned int nMacLen)
+{
+ int reValue = 0;
+ memcpy(pMac,m_pMac,nMacLen);
+ PRINT_BUFFER("[0217] GetMac Mac ",pMac,nMacLen);
+ return reValue;
+}
+
+SPC_INTERNAL int SAkepApi::GetMyMacLen(unsigned int* pMacLen)
+{
+ int reValue = 0;
+ *pMacLen = m_nMyMacLen;
+ return reValue;
+}
+
+SPC_INTERNAL int SAkepApi::SetPublicKeyY(unsigned char* pPublicKey)
+{
+ int reValue = 0;
+ memcpy(m_pPublickeyY,pPublicKey,SAKEP_DLBP_PAK_PARMETER_SIZE);
+ return reValue ;
+}
+
+SPC_INTERNAL int SAkepApi::GetPublicKeyY(unsigned char* pPublicKey)
+{
+ int reValue = 0;
+
+ memcpy(pPublicKey,m_pPublickeyY,SAKEP_DLBP_PAK_PARMETER_SIZE);
+
+ return reValue;
+}
+
+SPC_INTERNAL int SAkepApi::EncryptParameterDataWithWB(unsigned char* pIn, unsigned char* pOut)
+{
+ unsigned int i;
+
+ for (i = 0; i < 128; i += 16)
+ {
+ SWAPv2_Process(pParameterDataEncTbl, sizeof(pParameterDataEncTbl), pIn + i, pOut + i);
+ }
+
+ return SPC_SUCCESS;
+}
+
+SPC_INTERNAL int SAkepApi::DecryptParameterDataWithWB(unsigned char* pIn, unsigned char* pOut)
+{
+
+ unsigned int i = 0;
+
+ for (i = 0; i < 128; i += 16)
+ {
+ SWAPv2_Process(pParameterDataDecTbl, sizeof(pParameterDataDecTbl), pIn + i, pOut + i);
+ }
+
+ return SPC_SUCCESS;
+}
+
+static void X931_Prng(unsigned char* Key, unsigned char *Si, unsigned int nByteLen, unsigned char* pData)
+{
+ int i, offset;
+ int numBlock, residueBlock;
+ unsigned char *DT;
+ unsigned char I[16] = {0};
+ unsigned char Ri[16];
+ unsigned int Date[4];
+ unsigned int RoundKey[4 * (10 + 1)]; //AES Round Key
+
+ time_t nowTime;
+
+ time(&nowTime);
+ Date[0] = (cc_u32)nowTime;
+ Date[1] = clock();
+ Date[2] = rand();
+ Date[3] = rand();
+
+ DT = (cc_u8*)Date; //DT : Time | Clock | RND | RND
+
+ SDRM_rijndaelKeySetupDec(RoundKey, Key, 128);
+
+ memset(pData, 0x00, nByteLen);
+
+ numBlock = nByteLen / 16;
+ residueBlock = nByteLen - numBlock * 16;
+ offset = 0;
+
+ for(i = 0; i < numBlock; i++)
+ {
+ SDRM_rijndaelDecrypt(RoundKey, 10, DT, I);
+ BlockXor(I, I, Si);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Ri);
+ BlockXor(I, I, Ri);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Si);
+ memcpy(pData + offset, Ri, 16);
+ offset += 16;
+ }
+
+ if (residueBlock != 0)
+ {
+ SDRM_rijndaelDecrypt(RoundKey, 10, DT, I);
+ BlockXor(I, I, Si);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Ri);
+ BlockXor(I, I, Ri);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Si);
+ memcpy(pData + offset, Ri, residueBlock);
+
+ }
+
+ BlockXor(Si, I, Si);
+
+ return;
+}
+
+int (*pAesEncrypt)(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey);
+int (*pAesDecrypt)(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey);
+
+
+#define PRNG_TRANSFORM_NR 2
+#define KEY_TRANSFORM_NR 3
+
+static void SimpleTransform_ProcNormal(SWAPv2_TBOX *pTBox, SWAPv2_PBOX *pPBox, SWAPv2_WORD_PBOX* pWPBox, SWAPv2_BIT_PBOX* pBPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+{
+ unsigned int i, j;
+ unsigned int idx = 0;
+ unsigned int idx16;
+ unsigned char idx_wps[16];
+ unsigned char state[16]; //state
+ SWAPv2_WORD* itmdt[16]; //intermediate value
+
+
+ //3. Process initial permutation
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 8; j++)
+ {
+ idx_wps[(pPBox[0][i][j]) & 0x0f] = state[(pPBox[0][i][j]) & 0x0f] = in[i * 8 + j];
+ }
+ }
+
+ //4. Process each rounds
+ do
+ {
+ idx16 = (idx << 4);
+
+ for (i = 0; i < 16; i++)
+ {
+ itmdt[i] = (SWAPv2_WORD*)pTBox[idx16 + i][state[i] >> 4][state[i] & 0xf];
+ }
+ idx++;
+
+
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ state[ pPBox[idx][i][j] & 0x0f ] = (*itmdt[ pPBox[idx][i][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][i][4] & 0x0f ] & 0xf) % 4 ]][j] ]
+ ^ (*itmdt[ pPBox[idx][i][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][i][5] & 0x0f ] & 0xf) % 4 ]][j] ]
+ ^ (*itmdt[ pPBox[idx][i][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][i][6] & 0x0f ] & 0xf) % 4 ]][j] ]
+ ^ (*itmdt[ pPBox[idx][i][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][i][7] & 0x0f ] & 0xf) % 4 ]][j] ];
+ }
+ }
+
+ for (i = 0; i < 16; i++)
+ {
+ idx_wps[i] = state[i];
+ }
+ } while(idx < (Nr - 1));
+
+ idx16 = (idx << 4);
+
+
+ //5. Process final round
+ for (i = 0; i < 16; i++)
+ {
+ out[pPBox[Nr][i / 8][i % 8] & 0x0f] = pTBox[idx16 + i][state[i] >> 4 ][ state[i] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[i] & 0x0f) % 4]][0]];
+ }
+
+ return;
+}
+
+#define SIMPLE_AES_NR 2
+static void SimpleTransform(unsigned char* table, unsigned int nr, unsigned char* in, unsigned char* out)
+{
+ unsigned int TBoxSize;
+ unsigned int PBoxSize;
+ unsigned int WPBoxSize;
+
+ SWAPv2_TBOX *pTBox = NULL;
+ SWAPv2_PBOX *pPBox = NULL;
+ SWAPv2_WORD_PBOX* pWPBox = NULL;
+ SWAPv2_BIT_PBOX* pBPBox = NULL;
+
+ unsigned char isLittleEndian;
+
+ {
+ //get little endian flag
+ unsigned int EndianTestVector = 1;
+ isLittleEndian = *(unsigned char*)(&EndianTestVector);
+ }
+
+ //Get pointer of P-Box
+ pTBox = (SWAPv2_TBOX*)table;
+ TBoxSize = SWAPv2_T_TABLE_ROUND_SIZE * nr;
+
+ pPBox = (SWAPv2_PBOX*)((unsigned char*)pTBox + TBoxSize);
+ PBoxSize = SWAPv2_P_TABLE_ROUND_SIZE * (nr + 1);
+ WPBoxSize = SWAPv2_WP_TABLE_ROUND_SIZE * (nr);
+
+ pWPBox = (SWAPv2_WORD_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize);
+ pBPBox = (SWAPv2_BIT_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize + WPBoxSize);
+
+ SimpleTransform_ProcNormal(pTBox, pPBox, pWPBox, pBPBox, nr, in, out, isLittleEndian);
+
+ return;
+}
+
+
+
+
+SPC_INTERNAL int SAkepApi::ApplyPasswordTransform(unsigned char* pPwd, unsigned int nPwdLen, unsigned char* pTransPwd, unsigned int* pTransPwdLen)
+{
+ unsigned int nOutLen = (nPwdLen / 16) * 16 + 16;
+ unsigned int i;
+
+ if(pPwd == NULL || nPwdLen == 0 || pTransPwd == NULL)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ApplyPasswordTransform input parameter Error [ ErrorCode : %d ] \n",SAKEP_INPUT_INVALID_ERROR);
+
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ApplyPasswordTransform Password:" ,pPwd, nPwdLen);
+
+ memcpy(pTransPwd, pPwd, nPwdLen);
+ memset(pTransPwd + nPwdLen, nOutLen - nPwdLen, nOutLen - nPwdLen);
+
+ for (i = 0; i < nOutLen; i += 16)
+ {
+ ApplyKeyTransform(pTransPwd + i, pTransPwd + i);
+ }
+
+ if (pTransPwdLen != NULL)
+ {
+ *pTransPwdLen = nOutLen;
+ }
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ApplyPasswordTransform Password:" ,pTransPwd, *pTransPwdLen);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ApplyPasswordTransform OutLen:%d ",nOutLen);
+ return SPC_SUCCESS;
+}
+
+SPC_INTERNAL int SAkepApi::ReversePasswordTransform(unsigned char* pTransPwd, unsigned int nTransPwdLen, unsigned char* pPwd, unsigned int* pPwdLen)
+{
+ unsigned char tmp[16];
+ unsigned char pad[16];
+ unsigned int padLen;
+ unsigned int i = 0;
+
+ if ((nTransPwdLen % 16) != 0)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ReversePasswordTransform input parameter Error [ ErrorCode : %d ] \n",SAKEP_INPUT_INVALID_ERROR);
+
+ return SAKEP_INVALID_PARAMETER;
+ }
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ReversePasswordTransform Password:" ,pTransPwd, nTransPwdLen);
+
+ for (i = 0; i < (nTransPwdLen - 16); i += 16)
+ {
+ ReverseKeyTransform(pTransPwd + i, pPwd + i);
+ }
+
+ ReverseKeyTransform(pTransPwd + i, tmp);
+
+ padLen = tmp[15];
+
+ if (padLen > 16)
+ {
+ memset(pPwd, 0xAA, i);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ReversePasswordTransform Padding Length is greater than 16 Error [padLen:%d, ErrorCode : %d ] \n",padLen,SAKEP_INVALID_TRANSFORMED_PADDING);
+
+ return SAKEP_INVALID_TRANSFORMED_PADDING;
+ }
+
+ memset(pad, padLen, padLen);
+ if (memcmp(tmp + 16 - padLen, pad, padLen) != 0)
+ {
+ memset(pPwd, 0xAA, i);
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ReversePasswordTransform Padding Error [ ErrorCode : %d ] \n",SAKEP_INVALID_TRANSFORMED_PADDING);
+ return SAKEP_INVALID_TRANSFORMED_PADDING;
+ }
+
+ memcpy(pPwd + i, tmp, 16 - padLen);
+
+ if (pPwdLen != NULL)
+ {
+ *pPwdLen = nTransPwdLen - padLen;
+ }
+
+ DRMLOG_HexaBytes(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__, "before ReversePasswordTransform Password:" ,pPwd, *pPwdLen);
+
+ memset(tmp, 0xAA, 16);
+
+ return SPC_SUCCESS;
+}
+
+SPC_INTERNAL void SAkepApi::ApplyKeyTransform(unsigned char* in, unsigned char* out)
+{
+ const unsigned char KeyTransformArray[] =
+ {
+ 0xAC, 0xE3, 0xE9, 0xC6, 0xC3, 0xBA, 0x8C, 0xB5, 0xEA, 0xC5, 0x8A, 0xE3, 0x64, 0x2B, 0x91, 0x39,
+ 0x85, 0xCA, 0x32, 0x34, 0xF2, 0xE0, 0xBD, 0xDE, 0xCC, 0x33, 0x7C, 0x33, 0x0F, 0x40, 0x0E, 0xCD,
+ 0x21, 0x6E, 0x51, 0xF3, 0x7E, 0x50, 0x31, 0xE2, 0x86, 0x06, 0x49, 0x4C, 0x17, 0x58, 0x8F, 0x54,
+ 0x5B, 0x14, 0xC7, 0x1F, 0xBE, 0x74, 0xF1, 0x06, 0xBE, 0x83, 0xCC, 0xF1, 0xE0, 0xAF, 0xA1, 0x8D,
+ 0xEE, 0xA1, 0xAD, 0xC0, 0xBA, 0x64, 0xF5, 0x12, 0x38, 0xFD, 0xB2, 0x09, 0x25, 0x6A, 0x9D, 0x74,
+ 0x17, 0x58, 0x53, 0xC7, 0x92, 0xB7, 0xDD, 0xE9, 0x0D, 0x29, 0x66, 0xE8, 0xEB, 0xA4, 0x69, 0x4E,
+ 0x1E, 0x51, 0xDB, 0x46, 0xE1, 0xA9, 0xAE, 0x84, 0x88, 0x71, 0x3E, 0x35, 0xB2, 0xFD, 0xE4, 0x9A,
+ 0x6D, 0x22, 0xC5, 0x2B, 0x80, 0xF6, 0xCF, 0xBA, 0x36, 0x8A, 0xC5, 0x70, 0x75, 0x3A, 0x98, 0x21,
+ 0xA0, 0xEF, 0x79, 0x5A, 0xB8, 0x24, 0xF7, 0x50, 0xD5, 0x26, 0x69, 0x3F, 0x4A, 0x05, 0x12, 0x94,
+ 0xBC, 0xF3, 0xE8, 0xD7, 0xAA, 0x65, 0xE5, 0x03, 0x22, 0xCE, 0x81, 0x20, 0x9B, 0xD4, 0x3F, 0x68,
+ 0xDE, 0x91, 0xFF, 0xA2, 0x00, 0xD6, 0x4F, 0x1A, 0x46, 0x0C, 0x43, 0x86, 0xE2, 0xAD, 0xE1, 0xCF,
+ 0xC9, 0x86, 0xA6, 0xEC, 0xD8, 0x73, 0x97, 0x67, 0x25, 0xA8, 0xE7, 0x41, 0x79, 0x36, 0x08, 0xBD,
+ 0x5E, 0x11, 0xDF, 0x02, 0x15, 0xCF, 0x5A, 0x16, 0x3D, 0xAD, 0xE2, 0x5C, 0x9A, 0xD5, 0x37, 0x61,
+ 0x9A, 0xD5, 0xEB, 0xF2, 0xD6, 0xA3, 0x99, 0xB9, 0x70, 0xFE, 0xB1, 0x42, 0x0A, 0x45, 0x16, 0xD0,
+ 0x3D, 0x72, 0xC0, 0x7E, 0xA4, 0xB5, 0xEB, 0xDD, 0xED, 0xA3, 0xEC, 0x82, 0x3A, 0x75, 0x44, 0xB2,
+ 0x30, 0x7F, 0x58, 0xEB, 0x9E, 0x27, 0xD1, 0x75, 0xD1, 0x66, 0x29, 0x7B, 0x6F, 0x20, 0x59, 0xFA,
+ 0xDB, 0x94, 0xE7, 0xBF, 0x52, 0x93, 0x1D, 0x0D, 0x9A, 0x43, 0x0C, 0x15, 0x21, 0x6E, 0x8D, 0x60,
+ 0x76, 0x39, 0x0C, 0xF9, 0xBC, 0x34, 0xF3, 0x44, 0x4E, 0x0D, 0x42, 0x8F, 0xF1, 0xBE, 0xA8, 0x95,
+ 0x3B, 0x74, 0x90, 0x28, 0xA6, 0xF5, 0xE9, 0x9F, 0xC1, 0x62, 0x2D, 0x6F, 0xDB, 0x94, 0x3B, 0x2C,
+ 0x24, 0x6B, 0x49, 0xEE, 0xBF, 0x7C, 0xF0, 0x0F, 0x60, 0xFA, 0xB5, 0x56, 0x19, 0x56, 0x5F, 0x8A,
+ 0x46, 0x09, 0x5E, 0x9B, 0xE4, 0xB1, 0xAB, 0x99, 0x82, 0x46, 0x09, 0x08, 0x44, 0x0B, 0xC2, 0x4A,
+ 0xCE, 0x81, 0xFE, 0xB3, 0x8E, 0x26, 0xC1, 0x64, 0x89, 0x61, 0x2E, 0x24, 0xBB, 0xF4, 0x6C, 0x1B,
+ 0x15, 0x5A, 0x13, 0x85, 0x23, 0xCD, 0x6C, 0x22, 0xB3, 0xD2, 0x9D, 0xAD, 0x1B, 0x54, 0x1F, 0xC8,
+ 0xE0, 0xAF, 0x7D, 0x1E, 0x4F, 0x0A, 0x00, 0x89, 0x41, 0x6A, 0x25, 0xE7, 0x38, 0x77, 0x04, 0xF0,
+ 0xFC, 0xB3, 0xEC, 0x93, 0x1F, 0x0F, 0x50, 0xDC, 0xC8, 0x73, 0x3C, 0x77, 0x4D, 0x02, 0x4A, 0xCB,
+ 0x4A, 0x05, 0xCE, 0x07, 0xB4, 0xB4, 0xFB, 0xCC, 0x81, 0x60, 0x2F, 0x2D, 0x28, 0x67, 0x05, 0xE1,
+ 0x95, 0xDA, 0x33, 0x25, 0x49, 0x5A, 0x06, 0xDF, 0x75, 0xAE, 0xE1, 0x17, 0xF6, 0xB9, 0xF0, 0xCA,
+ 0x53, 0x1C, 0x47, 0x97, 0x02, 0x96, 0x4D, 0x58, 0x85, 0x20, 0x6F, 0x69, 0x04, 0x4B, 0xC6, 0x0E,
+ 0xFE, 0xB1, 0xAC, 0xD1, 0xC2, 0xB2, 0x8D, 0xBC, 0xFA, 0xC1, 0x8E, 0xF7, 0x2E, 0x61, 0x55, 0xB7,
+ 0x2C, 0x63, 0xC9, 0x66, 0x45, 0xCA, 0x0A, 0x43, 0x66, 0x8C, 0xC3, 0x26, 0x50, 0x1F, 0xD3, 0x4F,
+ 0xCA, 0x85, 0xEE, 0xA7, 0xAC, 0x35, 0xE3, 0x55, 0x9F, 0x13, 0x5C, 0x40, 0x42, 0x0D, 0x92, 0x1C,
+ 0xC0, 0x8F, 0x2E, 0x6D, 0x9C, 0x67, 0xD3, 0x37, 0x9C, 0x35, 0x7A, 0x65, 0x07, 0x48, 0x8E, 0x45,
+ 0x55, 0x1A, 0x17, 0xC1, 0x03, 0x9E, 0x4C, 0x51, 0xA7, 0x96, 0xD9, 0xFD, 0xFF, 0xB0, 0x78, 0x4B,
+ 0xDC, 0x93, 0xBF, 0xE0, 0x08, 0x56, 0x47, 0x92, 0x52, 0x48, 0x07, 0xD6, 0x5E, 0x11, 0x03, 0x91,
+ 0xEA, 0xA5, 0xBD, 0xD4, 0xCF, 0x2A, 0x80, 0x29, 0x2F, 0x9F, 0xD0, 0x7C, 0xF0, 0xBF, 0xA0, 0x9C,
+ 0x19, 0x56, 0x83, 0x19, 0xC6, 0xA2, 0x89, 0xA8, 0x2D, 0xA9, 0xE6, 0x48, 0x84, 0xCB, 0xE6, 0xAE,
+ 0x9E, 0xD1, 0xFB, 0xE6, 0xCB, 0x3A, 0x84, 0x3D, 0x68, 0xFB, 0xB4, 0x5F, 0x4C, 0x03, 0x42, 0xC2,
+ 0x7B, 0x34, 0x94, 0x6C, 0x3F, 0x5C, 0x70, 0xAF, 0x11, 0x6C, 0x23, 0xB1, 0xF8, 0xB7, 0x20, 0x14,
+ 0xA3, 0xEC, 0x31, 0x11, 0xDF, 0x2B, 0x90, 0x38, 0xF7, 0x90, 0xDF, 0xAB, 0xE8, 0xA7, 0x21, 0x05,
+ 0xE4, 0xAB, 0x6D, 0x0A, 0xFC, 0x30, 0xB3, 0x00, 0x39, 0xED, 0xA2, 0x18, 0xF9, 0xB6, 0x28, 0x1D,
+ 0x37, 0x78, 0x00, 0xB4, 0xCC, 0x62, 0x83, 0x62, 0x2C, 0xB9, 0xF6, 0x59, 0x5F, 0x10, 0x0B, 0x98,
+ 0x38, 0x77, 0xD8, 0x63, 0x70, 0x80, 0x3F, 0x3C, 0x23, 0xDE, 0x91, 0x31, 0x16, 0x59, 0x87, 0x5D,
+ 0x1C, 0x53, 0x9B, 0x04, 0x27, 0xDD, 0x68, 0x36, 0x8A, 0x47, 0x08, 0x01, 0x30, 0x7F, 0x84, 0x78,
+ 0x9F, 0xD0, 0xF3, 0xEF, 0x32, 0xC4, 0x7D, 0x3A, 0xE3, 0xD4, 0x9B, 0xFB, 0x7C, 0x33, 0x10, 0xA0,
+ 0xC8, 0x87, 0xAE, 0xE5, 0xBD, 0x3C, 0xF2, 0x4D, 0x8C, 0x31, 0x7E, 0x71, 0x3D, 0x72, 0x1C, 0xED,
+ 0x57, 0x18, 0x57, 0x83, 0x3B, 0x4C, 0x74, 0xBB, 0x6F, 0x9D, 0xD2, 0x3E, 0x98, 0xD7, 0x77, 0x23,
+ 0x26, 0x69, 0x09, 0xAC, 0x7B, 0x48, 0x34, 0xFF, 0xB6, 0x82, 0xCD, 0xF8, 0xD9, 0x96, 0x7B, 0x6E,
+ 0xC6, 0x89, 0x7E, 0x3B, 0x59, 0x5B, 0x16, 0xCE, 0x40, 0x7A, 0x35, 0xF6, 0x55, 0x1A, 0xCB, 0x52,
+ 0xED, 0xA2, 0xE5, 0x8B, 0xE6, 0xF1, 0xA9, 0xDB, 0xF2, 0xC0, 0x8F, 0xFE, 0xA7, 0xE8, 0xFD, 0x96,
+ 0x8B, 0xC4, 0xE2, 0xEA, 0xEE, 0x71, 0xA1, 0x53, 0x1D, 0x2D, 0x62, 0xFC, 0x4B, 0x04, 0x1A, 0x9D,
+ 0xC4, 0x8B, 0x3E, 0x79, 0x3E, 0x54, 0x71, 0xA6, 0xB9, 0xE5, 0xAA, 0x90, 0x1D, 0x52, 0x4F, 0x9E,
+ 0xDA, 0x95, 0xEF, 0xB6, 0xF5, 0xB8, 0xBA, 0x81, 0x76, 0x88, 0xC7, 0x32, 0x36, 0x79, 0xD4, 0x2E,
+ 0x93, 0xDC, 0x63, 0x73, 0x2C, 0x15, 0x63, 0xF5, 0x97, 0x12, 0x5D, 0x49, 0x68, 0x27, 0x01, 0xA5,
+ 0x22, 0x6D, 0x19, 0xB8, 0xF7, 0xF8, 0xB8, 0xC3, 0x4B, 0x5D, 0x12, 0xDA, 0xD3, 0x9C, 0xBB, 0xA4,
+ 0xA5, 0xEA, 0x61, 0x47, 0x65, 0x99, 0x2A, 0x30, 0x07, 0x1E, 0x51, 0xD5, 0xE7, 0xA8, 0xF9, 0xD2,
+ 0x1B, 0x54, 0xC3, 0x5B, 0x24, 0x95, 0x6B, 0x7D, 0xD9, 0x67, 0x28, 0x72, 0x2A, 0x65, 0x45, 0xA3,
+ 0x86, 0xC9, 0x7A, 0x7F, 0x37, 0xDC, 0x78, 0x27, 0xAB, 0xD7, 0x98, 0xB0, 0xDD, 0x92, 0x6B, 0x7A,
+ 0x14, 0x5B, 0x1B, 0x8C, 0x0B, 0x1E, 0x44, 0xD9, 0x14, 0x3C, 0x73, 0xE4, 0xC7, 0x88, 0xAA, 0xA1,
+ 0x4E, 0x01, 0xDE, 0x13, 0x57, 0x8B, 0x18, 0x10, 0x7F, 0x99, 0xD6, 0x2A, 0x2F, 0x60, 0x5D, 0xBE,
+ 0x13, 0x5C, 0x43, 0xD3, 0xB5, 0xBC, 0xFA, 0xC5, 0xD2, 0x40, 0x0F, 0x5E, 0xB6, 0xF9, 0xF4, 0x8E,
+ 0x64, 0x2B, 0x4D, 0xAA, 0xB7, 0xFC, 0xF8, 0x87, 0x06, 0x0E, 0x41, 0xC4, 0x41, 0x0E, 0xDA, 0x57,
+ 0xC2, 0x8D, 0x6E, 0x2F, 0xB0, 0xA4, 0xFF, 0xD8, 0x29, 0xE9, 0xA6, 0x0C, 0x76, 0x39, 0xD0, 0x6A,
+ 0xEF, 0xA0, 0xA5, 0xC9, 0xF4, 0xB0, 0xBB, 0x88, 0xD7, 0x10, 0x5F, 0x0B, 0x7D, 0x32, 0x18, 0xA9,
+ 0x87, 0xC8, 0x72, 0x76, 0x97, 0xAF, 0xD8, 0xF4, 0x6A, 0xCD, 0x82, 0x6B, 0x4E, 0x01, 0x02, 0x80,
+ 0x85, 0xF3, 0x9D, 0xBF, 0x03, 0xEB, 0x75, 0x39, 0x89, 0xB7, 0xC1, 0xEF, 0xCD, 0xBB, 0x1F, 0x03,
+ 0x5E, 0x28, 0x70, 0x89, 0xB2, 0x91, 0xC4, 0xF2, 0x33, 0x0C, 0x7A, 0xEE, 0x82, 0xF4, 0xC3, 0x90,
+ 0xCC, 0xBA, 0x11, 0x7A, 0x35, 0xE9, 0x43, 0x0D, 0x71, 0x38, 0x4E, 0x98, 0xC1, 0xB7, 0x8F, 0x9F,
+ 0x8D, 0xFB, 0x1D, 0x37, 0x8B, 0x4B, 0xFD, 0x11, 0xCD, 0xF5, 0x83, 0xE9, 0xB8, 0xCE, 0x51, 0x38,
+ 0x4F, 0x39, 0x79, 0x91, 0x7D, 0x6D, 0x0B, 0xC1, 0x75, 0x78, 0x0E, 0xDC, 0x1F, 0x69, 0x7A, 0xB4,
+ 0x47, 0x31, 0xF9, 0x19, 0x1B, 0x6A, 0x6D, 0xA0, 0x92, 0x94, 0xE2, 0xD7, 0xF2, 0x84, 0x95, 0xB6,
+ 0x97, 0xE1, 0xDC, 0xEC, 0x54, 0xB6, 0x22, 0x33, 0xC7, 0xC2, 0xB4, 0xD4, 0x3A, 0x4C, 0x31, 0xDA,
+ 0x5C, 0x2A, 0x30, 0xCB, 0x4A, 0x67, 0x3C, 0xFC, 0x5C, 0xE9, 0x9F, 0x64, 0x57, 0x21, 0xFE, 0x78,
+ 0x1E, 0x68, 0x74, 0xCD, 0xF4, 0xC5, 0x82, 0xE0, 0x52, 0x9E, 0xE8, 0x1D, 0xD1, 0xA7, 0x8E, 0x8E,
+ 0x19, 0x6F, 0x2C, 0x92, 0x52, 0xE6, 0x24, 0x65, 0x58, 0xA9, 0xDF, 0x20, 0x36, 0x40, 0xA1, 0x46,
+ 0x5D, 0x2B, 0x38, 0xC2, 0x7F, 0x2D, 0x09, 0x83, 0x90, 0xA2, 0xD4, 0xE3, 0xCF, 0xB9, 0x5F, 0x41,
+ 0x3E, 0x48, 0x27, 0xBE, 0x17, 0xFA, 0x61, 0x3C, 0x8A, 0x91, 0xE7, 0xCA, 0x12, 0x64, 0xE2, 0x21,
+ 0x9E, 0xE8, 0x54, 0x6D, 0x16, 0xF2, 0x60, 0x35, 0xE3, 0x02, 0x74, 0x30, 0x08, 0x7E, 0x23, 0xFA,
+ 0xA2, 0xD4, 0x96, 0x93, 0x84, 0x93, 0xF2, 0xC6, 0x22, 0x18, 0x6E, 0xEB, 0xE3, 0x95, 0x9C, 0xAE,
+ 0xFE, 0x88, 0x03, 0x5A, 0xDE, 0x56, 0xA8, 0x59, 0xD5, 0xF0, 0x86, 0xF4, 0x46, 0x30, 0xF7, 0x60,
+ 0x1C, 0x6A, 0x34, 0x8F, 0x83, 0xCB, 0xF5, 0x99, 0x7C, 0x69, 0x1F, 0xC4, 0x9F, 0xE9, 0x5A, 0x14,
+ 0x62, 0x14, 0xB2, 0x77, 0x0E, 0x73, 0x78, 0xAC, 0xCA, 0x93, 0xE5, 0x88, 0x24, 0x52, 0xE0, 0x15,
+ 0x96, 0xE0, 0xD4, 0xE5, 0xEB, 0x1C, 0x9D, 0x26, 0xA8, 0x27, 0x51, 0x5E, 0xB3, 0xC5, 0x99, 0xFB,
+ 0x76, 0x00, 0xA3, 0x72, 0x33, 0xB9, 0x45, 0x5B, 0xA9, 0x37, 0x41, 0x4F, 0x4F, 0x39, 0x7F, 0xE1,
+ 0x55, 0x23, 0xB8, 0x4A, 0x74, 0xE5, 0x02, 0x40, 0xA0, 0x26, 0x50, 0x57, 0x32, 0x44, 0xB1, 0x52,
+ 0xAA, 0xDC, 0x16, 0x1B, 0xC5, 0x9F, 0xB3, 0x8B, 0xF0, 0x20, 0x56, 0x01, 0x49, 0x3F, 0x2F, 0xB7,
+ 0xA1, 0xD7, 0xDE, 0xD8, 0x4C, 0x37, 0x3A, 0xAA, 0x8B, 0x81, 0xF7, 0xDB, 0x97, 0xE1, 0xDA, 0x9C,
+ 0x66, 0x10, 0xA2, 0x63, 0x7A, 0x35, 0x0C, 0x9E, 0x28, 0x2F, 0x59, 0xD6, 0x40, 0x36, 0xA7, 0x36,
+ 0x6F, 0x19, 0x2A, 0xE2, 0x89, 0x0B, 0xFF, 0x53, 0x6E, 0x5B, 0x2D, 0xE4, 0x76, 0x00, 0xA5, 0x02,
+ 0x14, 0x62, 0xB4, 0x07, 0x58, 0x26, 0x2E, 0xAF, 0x94, 0xE2, 0x94, 0xA7, 0xEE, 0x98, 0x04, 0x3B,
+ 0x92, 0xE4, 0xC4, 0xF1, 0xC7, 0xDF, 0xB1, 0xC9, 0xFF, 0x47, 0x31, 0x69, 0x42, 0x34, 0xE7, 0x74,
+ 0xD2, 0xA4, 0xC0, 0xB5, 0xB6, 0x81, 0xC0, 0xE6, 0xF3, 0x06, 0x70, 0x24, 0x5D, 0x2B, 0x3E, 0xB2,
+ 0xF0, 0x86, 0xD3, 0x84, 0x56, 0xF6, 0x20, 0x71, 0x43, 0x8A, 0xFC, 0x18, 0xA5, 0xD3, 0xC8, 0xBC,
+ 0x65, 0x13, 0xEA, 0x28, 0xA7, 0x88, 0xD1, 0xFE, 0x83, 0x80, 0xF6, 0xD2, 0x66, 0x10, 0xA4, 0x13,
+ 0xD9, 0xAF, 0x08, 0x76, 0xA8, 0x50, 0xDE, 0x29, 0x0F, 0xC9, 0xBF, 0x17, 0x01, 0x77, 0xAB, 0x7B,
+ 0x8E, 0xF8, 0x55, 0x7C, 0x8C, 0x13, 0xFA, 0x4E, 0x0C, 0xEF, 0x99, 0x32, 0x98, 0xEE, 0x02, 0x4B,
+ 0x9B, 0xED, 0x4C, 0x70, 0x0F, 0x7B, 0x79, 0xA5, 0x98, 0xA3, 0xD5, 0xEA, 0x0B, 0x7D, 0x6B, 0xB1,
+ 0x4D, 0x3B, 0x39, 0xD3, 0xD6, 0xD6, 0xA0, 0xD1, 0x4A, 0x9B, 0xED, 0x00, 0x99, 0xEF, 0x0A, 0x42,
+ 0x27, 0x51, 0xAE, 0x2E, 0x5E, 0x76, 0x28, 0xF9, 0xE4, 0x64, 0x12, 0x51, 0xBE, 0xC8, 0x01, 0x6E,
+ 0x8A, 0xFC, 0x45, 0x68, 0x85, 0x9B, 0xF3, 0xCF, 0x97, 0xC4, 0xB2, 0x82, 0x0D, 0x7B, 0x3B, 0xE7,
+ 0xE6, 0x90, 0x82, 0xC3, 0x70, 0xF5, 0x06, 0x54, 0x8C, 0xE7, 0x91, 0xBA, 0xB5, 0xC3, 0xC9, 0xAD,
+ 0xFB, 0x8D, 0x1B, 0x47, 0x4B, 0x6F, 0x3D, 0xF5, 0x05, 0xFE, 0x88, 0x2A, 0x9C, 0xEA, 0x12, 0x5F,
+ 0x15, 0x63, 0xBC, 0x0E, 0xE6, 0x84, 0x90, 0xB3, 0x20, 0x2E, 0x58, 0xDF, 0xD2, 0xA4, 0xC6, 0xC5,
+ 0x0F, 0x79, 0x7D, 0xD5, 0xAB, 0x18, 0xDD, 0x62, 0xB3, 0x04, 0x72, 0x66, 0xBD, 0xCB, 0x49, 0x25,
+ 0x16, 0x60, 0xF4, 0x45, 0xB4, 0xC1, 0xC2, 0xA4, 0xD7, 0xC6, 0xB0, 0xC0, 0x25, 0x53, 0xE8, 0x1C,
+ 0x6B, 0x1D, 0x3A, 0xF6, 0x6E, 0x24, 0x18, 0x9B, 0xDD, 0xF1, 0x87, 0xFD, 0x1E, 0x68, 0x72, 0xBD,
+ 0xEC, 0x9A, 0x42, 0x09, 0xBC, 0x41, 0xCA, 0x2C, 0x5B, 0x8F, 0xF9, 0x05, 0x53, 0x25, 0xEE, 0x6C,
+ 0x05, 0x73, 0xBD, 0x1F, 0x5A, 0x66, 0x2C, 0xED, 0x1A, 0x9D, 0xEB, 0x56, 0xCC, 0xBA, 0x17, 0x0A,
+ 0x35, 0x43, 0xEF, 0x7D, 0x50, 0xA6, 0x26, 0x27, 0x06, 0xD8, 0xAE, 0x0F, 0xEA, 0x9C, 0x14, 0x2F,
+ 0xB6, 0xC0, 0x87, 0x96, 0x6C, 0x64, 0x1A, 0xD9, 0xC2, 0x92, 0xE4, 0x81, 0xAC, 0xDA, 0x40, 0x3D,
+ 0x1D, 0x6B, 0x3C, 0x86, 0xDA, 0x46, 0xAC, 0x4D, 0x8D, 0xF7, 0x81, 0xAB, 0xBF, 0xC9, 0x09, 0x67,
+ 0xE0, 0x96, 0xD2, 0x95, 0x05, 0xBB, 0x73, 0x6F, 0x78, 0x29, 0x5F, 0x80, 0x71, 0x07, 0xFD, 0x5D,
+ 0xAB, 0xDD, 0x1E, 0x12, 0xC3, 0xCF, 0xB5, 0xDD, 0x4E, 0xDB, 0xAD, 0x44, 0xFF, 0x89, 0x0D, 0x23,
+ 0x13, 0x65, 0xEC, 0x58, 0x7E, 0x25, 0x08, 0x8A, 0x15, 0xFA, 0x8C, 0x3E, 0x22, 0x54, 0xB0, 0x43,
+ 0x3B, 0x4D, 0x3F, 0xA3, 0x87, 0xDB, 0xF1, 0x8D, 0xE1, 0x34, 0x42, 0x04, 0xF6, 0x80, 0x85, 0xA2,
+ 0x48, 0x3E, 0x21, 0xCE, 0x8E, 0x53, 0xF8, 0x0C, 0x6C, 0x6D, 0x1B, 0xD0, 0xAE, 0xD8, 0x00, 0x7F,
+ 0x29, 0x5F, 0x7E, 0xF0, 0xFD, 0x4D, 0x8B, 0x61, 0x10, 0xAA, 0xDC, 0x6B, 0x55, 0x23, 0xBE, 0x3A,
+ 0x6A, 0x1C, 0x32, 0xFF, 0x3C, 0x61, 0x4A, 0x8C, 0x19, 0xBB, 0xCD, 0x73, 0x1A, 0x6C, 0x62, 0xA9,
+ 0x5B, 0x2D, 0x68, 0x94, 0x15, 0xBA, 0x63, 0x7E, 0x86, 0xD0, 0xA6, 0x87, 0xEC, 0x9A, 0x44, 0x79,
+ 0xD7, 0xA1, 0xD8, 0xA8, 0xB1, 0xD9, 0xC7, 0xB9, 0x07, 0xC8, 0xBE, 0x1E, 0xD9, 0xAF, 0x0E, 0x06,
+ 0x17, 0x61, 0xFC, 0x4C, 0xCB, 0x4F, 0xBD, 0x55, 0x29, 0x3F, 0x49, 0xC7, 0x5C, 0x2A, 0x36, 0xBB,
+ 0xBC, 0xCA, 0x47, 0x5C, 0xCE, 0x57, 0xB8, 0x48, 0xBF, 0x45, 0x33, 0x2B, 0x72, 0x04, 0xB5, 0x16,
+ 0x7F, 0x09, 0x2B, 0xF3, 0x0A, 0x63, 0x7C, 0xB8, 0x9E, 0xD5, 0xA3, 0x9A, 0x21, 0x57, 0xF8, 0x08,
+ 0x0D, 0x7B, 0x3D, 0x97, 0xAD, 0x48, 0xDB, 0x34, 0xCC, 0xE5, 0x93, 0xF8, 0x7C, 0x0A, 0x65, 0xC8,
+ 0x37, 0x41, 0xAF, 0x3F, 0xA0, 0xD0, 0xD6, 0xA1, 0xD1, 0xB0, 0xC6, 0xB0, 0xB9, 0xCF, 0x59, 0x31,
+ 0x11, 0x67, 0xAC, 0x1A, 0x30, 0xF1, 0x46, 0x10, 0x9A, 0x95, 0xE3, 0xDE, 0xF9, 0x8F, 0x5D, 0x75,
+ 0x03, 0x75, 0xED, 0x49, 0x2C, 0x60, 0x5A, 0x9D, 0xB7, 0x44, 0x32, 0x22, 0x11, 0x67, 0xAA, 0x6A,
+ 0xA9, 0xDF, 0x5E, 0x50, 0x4E, 0x77, 0x38, 0xE8, 0x69, 0x3D, 0x4B, 0x85, 0xD3, 0xA5, 0xCE, 0xCC,
+ 0x71, 0x07, 0xFB, 0x2D, 0x59, 0x2E, 0x2F, 0xA6, 0x80, 0xA6, 0xD0, 0xF7, 0x77, 0x01, 0xAD, 0x0B,
+ 0xE6, 0x87, 0xAC, 0x0F, 0xA3, 0xEF, 0xC2, 0x68, 0x6E, 0xBB, 0xDA, 0xF1, 0xA5, 0xC4, 0xBF, 0x3E,
+ 0x68, 0x09, 0x5C, 0x71, 0x51, 0xD9, 0x30, 0xAC, 0x1A, 0x7D, 0x1C, 0x43, 0xEE, 0x8F, 0x73, 0xB9,
+ 0xA6, 0xC7, 0xA8, 0x4B, 0x8F, 0x2C, 0xEE, 0x87, 0xE7, 0xA2, 0xC3, 0x61, 0x13, 0x72, 0x9D, 0xAA,
+ 0xB5, 0xD4, 0xE1, 0x11, 0xEA, 0x63, 0x8B, 0xAD, 0xC5, 0x14, 0x75, 0xF5, 0xB8, 0xD9, 0x26, 0xBA,
+ 0xF3, 0x92, 0xB5, 0x03, 0xA0, 0xA7, 0xC1, 0x23, 0x07, 0x28, 0x49, 0x0B, 0x3B, 0x5A, 0x4E, 0x51,
+ 0xD5, 0xB4, 0xB6, 0x26, 0xE5, 0xBB, 0x84, 0x7A, 0xC7, 0x22, 0x43, 0xC1, 0x0B, 0x6A, 0x1C, 0x33,
+ 0x4A, 0x2B, 0x4F, 0x40, 0xF7, 0xFA, 0x96, 0x29, 0xE0, 0xC4, 0xA5, 0x00, 0xE2, 0x83, 0xE3, 0x25,
+ 0x07, 0x66, 0xD3, 0x91, 0x89, 0x7C, 0xE8, 0xD1, 0x85, 0x16, 0x77, 0xB7, 0x65, 0x04, 0x9B, 0xDA,
+ 0x3C, 0x5D, 0x49, 0x30, 0xBE, 0x76, 0xDF, 0xEC, 0x60, 0xCC, 0xAD, 0x88, 0x18, 0x79, 0x55, 0x69,
+ 0xA4, 0xC5, 0xE8, 0x09, 0x7C, 0x12, 0x1D, 0x4A, 0xB9, 0xD3, 0xB2, 0x4E, 0x01, 0x60, 0xDC, 0xF9,
+ 0xCB, 0xAA, 0x67, 0xE9, 0x56, 0x81, 0x37, 0xF3, 0x25, 0x9E, 0xFF, 0x9F, 0x1B, 0x7A, 0x1D, 0x22,
+ 0x85, 0xE4, 0xB3, 0x73, 0x86, 0xA4, 0xE7, 0x06, 0xCE, 0x33, 0x52, 0xD9, 0xF5, 0x94, 0xBA, 0x6B,
+ 0xAC, 0xCD, 0x68, 0x81, 0x9F, 0x2D, 0xFE, 0x96, 0x54, 0x08, 0x69, 0x78, 0xE8, 0x89, 0x23, 0xEF,
+ 0x14, 0x75, 0x9A, 0xCB, 0xBC, 0x36, 0xDD, 0xAE, 0x3A, 0xFD, 0x9C, 0xE3, 0x84, 0xE5, 0xE4, 0x44,
+ 0xA7, 0xC6, 0xA0, 0x42, 0x1C, 0x45, 0x7D, 0x7D, 0xD7, 0x26, 0x47, 0xD5, 0x29, 0x48, 0x0F, 0x02,
+ 0x80, 0xE1, 0xAB, 0x6E, 0xE3, 0xEB, 0x82, 0x2C, 0x77, 0xAE, 0xCF, 0xFD, 0x43, 0x22, 0x98, 0xFF,
+ 0x6E, 0x0F, 0x0C, 0x27, 0xDE, 0x21, 0xBF, 0xDB, 0x8F, 0x21, 0x40, 0x8A, 0x7F, 0x1E, 0x5A, 0x01,
+ 0xCA, 0xAB, 0x6F, 0xE0, 0x45, 0xC8, 0x24, 0xA9, 0xD6, 0x36, 0x57, 0xC4, 0xA7, 0xC6, 0xFF, 0x7C,
+ 0x08, 0x69, 0x0B, 0x46, 0x3C, 0x16, 0x5D, 0x0E, 0xC1, 0x54, 0x35, 0xB1, 0x0D, 0x6C, 0x4C, 0x65,
+ 0xE0, 0x81, 0xFC, 0x59, 0xED, 0x3B, 0x8C, 0xF2, 0x50, 0x48, 0x29, 0x3C, 0x1F, 0x7E, 0x0D, 0x36,
+ 0xA0, 0xC1, 0xF8, 0x1D, 0xC8, 0x70, 0xA9, 0x9C, 0x71, 0xD8, 0xB9, 0x8D, 0x39, 0x58, 0x0E, 0x13,
+ 0x65, 0x04, 0xC4, 0xE4, 0x9D, 0x6D, 0xFC, 0xD4, 0xE9, 0xD5, 0xB4, 0x18, 0x03, 0x62, 0x9C, 0xBB,
+ 0x38, 0x59, 0x59, 0x24, 0xAD, 0x3F, 0xCC, 0xB6, 0xC2, 0x72, 0x13, 0x94, 0x71, 0x10, 0x8A, 0xDF,
+ 0x6B, 0x0A, 0x14, 0x3A, 0x3D, 0x1E, 0x5C, 0x07, 0xF6, 0xB6, 0xD7, 0x64, 0xB2, 0xD3, 0xE6, 0x70,
+ 0x45, 0x24, 0x97, 0x97, 0x47, 0x88, 0x26, 0xEB, 0xEE, 0xB3, 0xD2, 0x79, 0x19, 0x78, 0x5D, 0x60,
+ 0xC0, 0xA1, 0xAF, 0x2A, 0xB0, 0xA6, 0xD1, 0x32, 0x78, 0xC9, 0xA8, 0x95, 0xD9, 0xB8, 0x79, 0x84,
+ 0xF5, 0x94, 0xE5, 0x55, 0xA8, 0x27, 0xC9, 0xAB, 0x1B, 0x6D, 0x0C, 0x52, 0x55, 0x34, 0xC9, 0xB8,
+ 0x03, 0x62, 0xC3, 0x85, 0xC3, 0xB8, 0xA2, 0x5F, 0xC0, 0x44, 0x25, 0xA0, 0x64, 0x05, 0x93, 0xD3,
+ 0x4C, 0x2D, 0x1F, 0x16, 0xD2, 0xB1, 0xB3, 0x47, 0xEC, 0x85, 0xE4, 0x4D, 0x27, 0x46, 0xDF, 0xDC,
+ 0xB7, 0xD6, 0xA1, 0x53, 0x15, 0xCD, 0x74, 0xFC, 0xF2, 0xF6, 0x97, 0x20, 0x46, 0x27, 0x80, 0xE2,
+ 0xEF, 0x8E, 0x24, 0x8E, 0x4C, 0x40, 0x2D, 0x28, 0x7A, 0xFF, 0x9E, 0xA1, 0x35, 0x54, 0x9E, 0x8F,
+ 0x3B, 0x5A, 0x11, 0x6F, 0x82, 0xB4, 0xE3, 0x12, 0x84, 0x06, 0x67, 0xA6, 0x1D, 0x7C, 0x4D, 0x74,
+ 0x86, 0xE7, 0xFB, 0x38, 0x11, 0xDD, 0x70, 0xE8, 0x6A, 0xFB, 0x9A, 0xB5, 0x12, 0x73, 0x95, 0xA3,
+ 0x5F, 0x3E, 0x56, 0x4C, 0x88, 0x74, 0xE9, 0xD8, 0xF7, 0xA6, 0xC7, 0x75, 0xF0, 0x91, 0xA2, 0x76,
+ 0xFA, 0x9B, 0x3D, 0x82, 0x60, 0x83, 0x01, 0xC7, 0x32, 0xFC, 0x9D, 0xEA, 0xAC, 0xCD, 0x37, 0xBF,
+ 0x11, 0x70, 0x82, 0xD6, 0x7A, 0x42, 0x1B, 0x1C, 0x53, 0x6E, 0x0F, 0x19, 0x90, 0xF1, 0xF5, 0x41,
+ 0x0B, 0x6A, 0x43, 0x0D, 0xE9, 0x2B, 0x88, 0xE6, 0x5B, 0x6F, 0x0E, 0x10, 0x30, 0x51, 0x86, 0x92,
+ 0xD6, 0xB7, 0xFE, 0x6D, 0xDA, 0x31, 0xBB, 0xCF, 0x8C, 0x07, 0x66, 0xAF, 0x53, 0x32, 0x99, 0xEE,
+ 0x2F, 0x4E, 0x00, 0x6A, 0xD1, 0xF9, 0xB0, 0x0C, 0x47, 0x2A, 0x4B, 0x49, 0x17, 0x76, 0x8D, 0xBE,
+ 0xC8, 0xA9, 0x2F, 0xA2, 0xE6, 0xF3, 0x87, 0x31, 0x64, 0x8C, 0xED, 0xCC, 0x10, 0x71, 0xD5, 0xE1,
+ 0x4E, 0x2F, 0x5F, 0x54, 0x91, 0xFD, 0xF0, 0x48, 0xC6, 0x32, 0x53, 0xD0, 0x52, 0x33, 0x91, 0xE7,
+ 0x23, 0x42, 0x90, 0xF6, 0xBA, 0x66, 0xDB, 0xF8, 0x17, 0x2C, 0x4D, 0x1F, 0x99, 0xF8, 0x7D, 0xC0,
+ 0xEB, 0x8A, 0x34, 0x9A, 0xEC, 0x33, 0x8D, 0xFB, 0xCB, 0x63, 0x02, 0x8C, 0x49, 0x28, 0x58, 0x35,
+ 0x06, 0x67, 0xDB, 0x98, 0x00, 0xD4, 0x61, 0xF0, 0xCC, 0x05, 0x64, 0xED, 0x41, 0x20, 0xD8, 0xBD,
+ 0xA1, 0xC0, 0xF0, 0x14, 0x8D, 0x6C, 0xEC, 0xC5, 0xEA, 0xF3, 0x92, 0x3D, 0x83, 0xE2, 0xBC, 0x1B,
+ 0xD8, 0xB9, 0x2E, 0xB3, 0x40, 0xD0, 0x21, 0xB4, 0x48, 0x4D, 0x2C, 0x21, 0xC2, 0xA3, 0xB0, 0x56,
+ 0x9B, 0xFA, 0x62, 0xBC, 0x74, 0x92, 0x15, 0xC2, 0x30, 0xCA, 0xAB, 0xDE, 0x50, 0x31, 0xD1, 0xA5,
+ 0xD4, 0xB5, 0xBE, 0x2F, 0xCF, 0x28, 0xAE, 0xC3, 0x4A, 0x7B, 0x1A, 0x15, 0x8B, 0xEA, 0x3C, 0x93,
+ 0x12, 0x73, 0xCA, 0x9D, 0xDB, 0x39, 0xBA, 0xC6, 0xDA, 0x77, 0x16, 0x89, 0x95, 0xF4, 0xED, 0x5C,
+ 0x81, 0xE0, 0xA3, 0x67, 0x97, 0xAD, 0xF6, 0x1E, 0xB2, 0xF4, 0x95, 0x62, 0x80, 0xE1, 0xF4, 0x50,
+ 0x18, 0x79, 0x0A, 0x57, 0xB1, 0xAE, 0xD0, 0x3B, 0xF1, 0xD0, 0xB1, 0x05, 0xD7, 0xB6, 0xA9, 0x5A,
+ 0x7F, 0x1E, 0x05, 0x3F, 0xF8, 0x22, 0x99, 0xFE, 0x29, 0xDF, 0xBE, 0xD2, 0x6B, 0x0A, 0x4B, 0x04,
+ 0xBC, 0xDD, 0x69, 0x90, 0xF2, 0xE2, 0x93, 0x34, 0x57, 0x2E, 0x4F, 0x5D, 0xFE, 0x9F, 0x72, 0xA8,
+ 0x44, 0x25, 0x9F, 0x9E, 0x7E, 0x52, 0x1F, 0x08, 0x20, 0xCE, 0xAF, 0xCA, 0xDC, 0xBD, 0x61, 0x99,
+ 0x5B, 0x3A, 0x46, 0x58, 0x3F, 0x5E, 0x5E, 0x45, 0x7E, 0xBF, 0xDE, 0xE5, 0x9C, 0xFD, 0x65, 0xDD,
+ 0xF7, 0x96, 0xA5, 0x17, 0x9A, 0x35, 0xFB, 0x8B, 0x87, 0x20, 0x41, 0x83, 0x1A, 0x7B, 0x15, 0x2B,
+ 0x6F, 0x0E, 0x04, 0x2E, 0x23, 0xCF, 0x42, 0xC8, 0xAA, 0xF1, 0x90, 0x7F, 0x61, 0x00, 0x8B, 0xCE,
+ 0x59, 0x38, 0x06, 0x1A, 0x57, 0x89, 0x36, 0xFA, 0x94, 0x02, 0x63, 0xB2, 0x68, 0x09, 0x03, 0x4F,
+ 0x8E, 0xEF, 0x7B, 0xB0, 0xF9, 0x2A, 0x98, 0xF7, 0x96, 0x34, 0x55, 0x86, 0xAF, 0xCE, 0x7F, 0xF4,
+ 0x50, 0x31, 0x8E, 0x9B, 0x58, 0x51, 0x39, 0x2D, 0x3E, 0xBD, 0xDC, 0xA7, 0xA4, 0xC5, 0xB7, 0x37,
+ 0x2B, 0x4A, 0x10, 0x7E, 0x5E, 0x01, 0x3F, 0x7B, 0x44, 0x0C, 0x6D, 0x6C, 0x5B, 0x3A, 0x19, 0x66,
+ 0x56, 0x37, 0xDE, 0xCD, 0x4F, 0x08, 0x2E, 0x63, 0x18, 0x4B, 0x2A, 0x77, 0x78, 0x19, 0x02, 0x5E,
+ 0xAA, 0xCB, 0x38, 0xD7, 0x5F, 0x09, 0x3E, 0x72, 0xBD, 0x93, 0xF2, 0x0A, 0x98, 0xF9, 0x75, 0xC9,
+ 0x3D, 0x5C, 0x41, 0x39, 0xEB, 0x6B, 0x8A, 0xA4, 0xD2, 0x76, 0x17, 0x80, 0x6C, 0x0D, 0x13, 0x5B,
+ 0x2C, 0xDB, 0xAD, 0x0D, 0x00, 0x5F, 0x05, 0x24, 0x4A, 0xAA, 0xBA, 0x9B, 0xA7, 0xEB, 0x16, 0xCA,
+ 0x26, 0x1B, 0x67, 0x07, 0x52, 0x3D, 0x35, 0x14, 0x6F, 0xA9, 0x9C, 0xBD, 0xBB, 0xAE, 0x4F, 0x8F,
+ 0x18, 0x99, 0xDB, 0x39, 0x87, 0xB6, 0x6B, 0x4A, 0xFD, 0xCF, 0x68, 0x49, 0x60, 0x87, 0xBD, 0xA6,
+ 0xCA, 0xFC, 0x6C, 0xEB, 0xFF, 0x49, 0xEC, 0xCD, 0x2C, 0x53, 0x25, 0x04, 0xE6, 0xF9, 0x45, 0xD8,
+ 0x73, 0x06, 0x2F, 0x52, 0x6F, 0xD5, 0xE0, 0xC1, 0x1D, 0x40, 0x07, 0x26, 0xC5, 0x5F, 0xC0, 0x7E,
+ 0xB5, 0x72, 0x9D, 0x94, 0xA3, 0x52, 0xAB, 0x8A, 0x63, 0xB0, 0x89, 0xA8, 0xF3, 0xAD, 0x04, 0x8C,
+ 0x1A, 0xD9, 0x99, 0x3B, 0x3A, 0xD6, 0xB6, 0x97, 0x7D, 0xFD, 0xDA, 0xFB, 0x7F, 0xE4, 0xC1, 0xC5,
+ 0xAC, 0xFB, 0x0D, 0x8D, 0x81, 0xC6, 0x1D, 0x3C, 0x27, 0xB4, 0xC9, 0xE8, 0x30, 0x81, 0xEB, 0xA0,
+ 0xF3, 0x26, 0x8F, 0xD2, 0xF8, 0x28, 0x8A, 0xAB, 0xA7, 0x86, 0x7B, 0x5A, 0x2A, 0xB2, 0xC2, 0x93,
+ 0x06, 0x48, 0x14, 0x27, 0x3F, 0x83, 0xE6, 0xC7, 0xED, 0x74, 0xC3, 0xE2, 0x31, 0x91, 0xFA, 0xB0,
+ 0xA0, 0x6B, 0x91, 0x81, 0x84, 0x93, 0x4D, 0x6C, 0x02, 0xB7, 0xEF, 0xCE, 0xF7, 0xED, 0x40, 0xCC,
+ 0x28, 0xCB, 0xB9, 0x09, 0x13, 0x6E, 0x27, 0x06, 0x2E, 0xBC, 0xC8, 0xE9, 0x59, 0x12, 0x11, 0x33,
+ 0xDD, 0xA5, 0x22, 0xFC, 0xC0, 0x95, 0x0F, 0x2E, 0x65, 0xF4, 0xCB, 0xEA, 0x0E, 0x72, 0x26, 0x53,
+ 0xC2, 0x7C, 0xE4, 0xE3, 0x49, 0x05, 0x16, 0x37, 0x5C, 0x55, 0x53, 0x72, 0x6A, 0xB0, 0x80, 0x91,
+ 0x3D, 0xD2, 0xB5, 0x1C, 0xA6, 0x07, 0xFB, 0xDA, 0x1F, 0xAF, 0xEA, 0xCB, 0xB8, 0x88, 0x6A, 0xA9,
+ 0x90, 0x39, 0xF3, 0xB1, 0x01, 0x4E, 0x15, 0x34, 0x85, 0x7B, 0xA4, 0x85, 0x9D, 0x58, 0x9F, 0x79,
+ 0xDB, 0xF5, 0x74, 0xFA, 0x80, 0xD7, 0x0D, 0x2C, 0x88, 0xD8, 0x0A, 0x2B, 0x71, 0x93, 0xB8, 0xB2,
+ 0xD6, 0x6D, 0xE1, 0xF7, 0x12, 0x7F, 0x37, 0x16, 0x71, 0xE4, 0xCF, 0xEE, 0x6C, 0xC6, 0xF0, 0xE7,
+ 0xB8, 0xEA, 0x08, 0x99, 0xFA, 0x1C, 0xBC, 0x9D, 0x56, 0x08, 0x04, 0x25, 0x02, 0x33, 0x6B, 0x12,
+ 0x7C, 0xDE, 0xF8, 0x5D, 0x96, 0xB3, 0x7F, 0x5E, 0x48, 0x45, 0x57, 0x76, 0x23, 0xA3, 0xDA, 0x82,
+ 0x38, 0xCA, 0xA8, 0x19, 0xE3, 0x10, 0xA9, 0x88, 0x8C, 0x73, 0xA5, 0x84, 0xD4, 0x4B, 0xC5, 0x6A,
+ 0x2F, 0x93, 0xE6, 0x0E, 0x46, 0x6D, 0x71, 0x50, 0x4B, 0x10, 0x01, 0x20, 0x3D, 0xD0, 0xB7, 0xF1,
+ 0x46, 0x4C, 0x50, 0x67, 0x11, 0x5A, 0x11, 0x30, 0x35, 0xE0, 0x8F, 0xAE, 0x27, 0xE3, 0x9E, 0xC2,
+ 0x5A, 0xDD, 0xDD, 0x7B, 0x50, 0x09, 0x03, 0x22, 0x2A, 0x17, 0x67, 0x46, 0x0A, 0x32, 0x62, 0x13,
+ 0xF8, 0xEE, 0x4C, 0xD9, 0x9C, 0x8E, 0x48, 0x69, 0x3F, 0xBD, 0xD8, 0xF9, 0xD1, 0x1B, 0x90, 0x3A,
+ 0x8B, 0xF0, 0x21, 0xAA, 0xC3, 0xB0, 0x29, 0x08, 0x7A, 0x03, 0x23, 0x02, 0xAD, 0xDC, 0x2B, 0xFD,
+ 0x08, 0x98, 0xCA, 0x29, 0x51, 0x18, 0x13, 0x32, 0x03, 0x0D, 0x54, 0x75, 0xA8, 0x8C, 0x7E, 0xAD,
+ 0xF1, 0x66, 0xCD, 0xD0, 0x82, 0xE3, 0x3B, 0x1A, 0xE2, 0x38, 0x80, 0xA1, 0x5C, 0x42, 0x44, 0x63,
+ 0xC7, 0x64, 0xF9, 0xE6, 0x65, 0xE8, 0xD7, 0xF6, 0x46, 0xB3, 0xAF, 0x8E, 0xBA, 0xBE, 0x5E, 0x9F,
+ 0xBD, 0xF2, 0x15, 0x9C, 0x41, 0x0C, 0x17, 0x36, 0xFB, 0x8B, 0x2A, 0x0B, 0x94, 0x49, 0x87, 0x68,
+ 0x4A, 0xDC, 0xCC, 0x6B, 0x8F, 0xBF, 0x6A, 0x4B, 0xE9, 0xDF, 0x6C, 0x4D, 0xA4, 0xCD, 0x33, 0xEC,
+ 0x63, 0x07, 0x3E, 0x42, 0xD5, 0xD4, 0x5B, 0x7A, 0x39, 0xF9, 0x9A, 0xBB, 0x3B, 0xA6, 0xC7, 0x87,
+ 0x09, 0x90, 0xC3, 0x28, 0x85, 0x82, 0x5D, 0x7C, 0x01, 0xE2, 0xB9, 0x98, 0x2D, 0xD4, 0xA3, 0xF5,
+ 0x61, 0x47, 0x7C, 0x40, 0x9A, 0xFE, 0x3E, 0x1F, 0x61, 0x5F, 0x64, 0x45, 0x37, 0xE7, 0x8A, 0xC6,
+ 0x82, 0x78, 0xA0, 0xA3, 0xC9, 0x8D, 0x1E, 0x3F, 0xCE, 0x33, 0xA7, 0x86, 0xEF, 0xE8, 0x5D, 0xC9,
+ 0x24, 0x5B, 0x25, 0x05, 0x91, 0xD2, 0x19, 0x38, 0x06, 0x1C, 0x40, 0x61, 0xE5, 0xDF, 0x60, 0xFE,
+ 0xA8, 0xEB, 0x19, 0x89, 0xBE, 0x1A, 0xFE, 0xDF, 0x20, 0x4A, 0x30, 0x11, 0x68, 0x86, 0xB4, 0xA7,
+ 0xF5, 0x76, 0xD9, 0xD4, 0x89, 0xCF, 0x1C, 0x3D, 0x54, 0xE7, 0xE9, 0xC8, 0xC1, 0x1F, 0x84, 0x3E,
+ 0x60, 0x4F, 0x75, 0x41, 0xE9, 0x2D, 0x9E, 0xBF, 0xBA, 0x9E, 0x7E, 0x5F, 0x5E, 0x74, 0x70, 0x55,
+ 0xF2, 0x2E, 0x86, 0xD3, 0x2B, 0xD3, 0xA2, 0x83, 0xEE, 0x21, 0x95, 0xB4, 0x9F, 0x6E, 0xAB, 0x4F,
+ 0x43, 0x54, 0x4D, 0x62, 0xAC, 0x3A, 0xCC, 0xED, 0xDF, 0x32, 0xB7, 0x96, 0xCC, 0x4E, 0xD8, 0x6F,
+ 0xFD, 0xF6, 0x51, 0xDC, 0xA0, 0x77, 0x8D, 0xAC, 0x78, 0xEC, 0xCE, 0xEF, 0x70, 0x83, 0xA9, 0xA2,
+ 0x75, 0x56, 0x79, 0x54, 0x20, 0xFF, 0x85, 0xA4, 0x43, 0xA2, 0xBB, 0x9A, 0x34, 0xC1, 0xAF, 0xE0,
+ 0xC4, 0x2C, 0xB2, 0xE5, 0xCD, 0xC9, 0x5E, 0x7F, 0xD0, 0x7E, 0xF4, 0xD5, 0x8E, 0x7A, 0xAE, 0x5B,
+ 0x22, 0x0B, 0x73, 0x03, 0x61, 0xAC, 0x97, 0xB6, 0x9A, 0x8C, 0x4C, 0x6D, 0x7A, 0xB4, 0x94, 0x95,
+ 0x3C, 0xDA, 0xBC, 0x1D, 0x8D, 0x8B, 0x5C, 0x7D, 0x38, 0x43, 0x21, 0x00, 0xE1, 0x9F, 0x24, 0xBE,
+ 0x0B, 0xD0, 0x81, 0x2A, 0xC4, 0xD1, 0x4F, 0x6E, 0xF4, 0xC7, 0x69, 0x48, 0xC8, 0x0E, 0x9C, 0x2F,
+ 0x6D, 0xD7, 0xE0, 0x4C, 0x44, 0x59, 0x47, 0x66, 0xF6, 0x28, 0x84, 0xA5, 0x2F, 0xE2, 0x97, 0xC3,
+ 0xC0, 0x3C, 0xA6, 0xE1, 0x7D, 0xF5, 0xD2, 0xF3, 0xF2, 0x83, 0x2B, 0x0A, 0x4E, 0x70, 0x64, 0x51,
+ 0x20, 0x4B, 0x31, 0x01, 0x6E, 0xC4, 0xF0, 0xD1, 0xFC, 0x75, 0xD3, 0xF2, 0xFE, 0xFC, 0x58, 0xDD,
+ 0x2E, 0x9B, 0xEF, 0x0F, 0x09, 0x47, 0x14, 0x35, 0x7B, 0xB9, 0x98, 0xB9, 0x29, 0x94, 0xE7, 0xB5,
+ 0xB1, 0x62, 0x89, 0x90, 0x79, 0xB1, 0x92, 0xB3, 0x34, 0x5A, 0x34, 0x15, 0x42, 0x31, 0x29, 0x10,
+ 0xFA, 0xAE, 0x0E, 0xDB, 0xE8, 0x3C, 0x8E, 0xAF, 0x0B, 0xBF, 0xEE, 0xCF, 0xB1, 0x99, 0x72, 0xB8,
+ 0x79, 0xC6, 0xE5, 0x58, 0xF1, 0x30, 0x9B, 0xBA, 0xF1, 0xD6, 0x7D, 0x5C, 0x25, 0xD5, 0xAA, 0xF4,
+ 0xD1, 0x35, 0xBE, 0xF0, 0x57, 0x68, 0x65, 0x44, 0x53, 0x19, 0x10, 0x31, 0x3E, 0xF6, 0x92, 0xD7,
+ 0xDE, 0xED, 0x69, 0xFF, 0xB5, 0x36, 0xD9, 0xF8, 0x3B, 0x16, 0x77, 0x56, 0xB2, 0xBF, 0x57, 0x9E,
+ 0x45, 0x04, 0x1B, 0x64, 0x1E, 0x32, 0x76, 0x57, 0xA1, 0xC2, 0x39, 0x18, 0x14, 0x41, 0x0F, 0x60,
+ 0x02, 0x58, 0x00, 0x23, 0x05, 0x0A, 0x55, 0x74, 0x12, 0x0C, 0x44, 0x65, 0x1D, 0x50, 0x17, 0x71,
+ 0x78, 0xCE, 0xEC, 0x59, 0x0F, 0x37, 0x62, 0x43, 0x55, 0x5D, 0x52, 0x73, 0x77, 0xE5, 0xC8, 0xC4,
+ 0x9D, 0xA1, 0x66, 0xBC, 0x69, 0xA5, 0x96, 0xB7, 0xBB, 0x24, 0xC5, 0xE4, 0x15, 0x51, 0x1E, 0x70,
+ 0x0C, 0x88, 0xDE, 0x2D, 0x1F, 0x23, 0x66, 0x47, 0x76, 0x1A, 0x36, 0x17, 0x95, 0x59, 0x96, 0x78,
+ 0xFF, 0xB6, 0x13, 0xDE, 0x97, 0xA2, 0x6F, 0x4E, 0x42, 0x18, 0x00, 0x21, 0xD3, 0x2D, 0xA4, 0x0C,
+ 0xB3, 0x22, 0xCB, 0x92, 0xAB, 0x5B, 0xAA, 0x8B, 0xF7, 0x92, 0x3F, 0x1E, 0x4D, 0x56, 0x41, 0x77,
+ 0x3A, 0x8A, 0xEA, 0x1B, 0x63, 0x98, 0xA1, 0x80, 0xDC, 0x67, 0xE1, 0xC0, 0x36, 0xF7, 0x9B, 0xD6,
+ 0x41, 0x49, 0x82, 0xD5, 0x71, 0xBA, 0xAB, 0x07, 0x7B, 0xB0, 0x46, 0x2B, 0x8C, 0xB8, 0x47, 0xE9,
+ 0xB3, 0x60, 0xAB, 0x0E, 0x40, 0x8B, 0xC0, 0x5D, 0x8D, 0x46, 0x96, 0x0D, 0xE7, 0x4C, 0x2C, 0x76,
+ 0x6A, 0x97, 0x5C, 0x20, 0x3D, 0xF6, 0x73, 0x93, 0xCB, 0x00, 0x84, 0x59, 0x63, 0xF8, 0xA8, 0x46,
+ 0x86, 0xED, 0x26, 0xB6, 0xFD, 0x36, 0x97, 0xB7, 0x4E, 0x85, 0x39, 0x61, 0x94, 0x21, 0x5F, 0x68,
+ 0xB2, 0xDB, 0x10, 0xB4, 0x11, 0xDA, 0x9C, 0x50, 0x61, 0xAA, 0x9D, 0xEA, 0x68, 0x3B, 0xA3, 0x8E,
+ 0xB5, 0x22, 0xE9, 0x4A, 0x39, 0xF2, 0x67, 0x83, 0xB5, 0x7E, 0x7C, 0xDF, 0xA6, 0x01, 0x6D, 0x7A,
+ 0x5E, 0xA1, 0x6A, 0x22, 0x03, 0xC8, 0xCF, 0x11, 0xC2, 0x09, 0x05, 0xD1, 0xF6, 0x54, 0x3D, 0x7F,
+ 0x33, 0xD2, 0x19, 0x3C, 0x62, 0xA9, 0xF1, 0x4E, 0x39, 0xF2, 0x40, 0x6F, 0x31, 0xEF, 0xFA, 0x03,
+ 0xA2, 0x70, 0xBB, 0x0F, 0x29, 0xE2, 0x76, 0x82, 0x86, 0x4D, 0x55, 0xC5, 0x18, 0x1D, 0xD3, 0xD8,
+ 0x2F, 0x6C, 0xA7, 0x9E, 0x3B, 0xF0, 0x25, 0xC3, 0x6E, 0xA5, 0x4A, 0x32, 0xC9, 0xE1, 0x02, 0xF5,
+ 0x99, 0x05, 0xCE, 0x41, 0x5B, 0x90, 0x12, 0x94, 0xE0, 0x2B, 0x34, 0xC2, 0xFA, 0xC8, 0x31, 0xEF,
+ 0xD7, 0x12, 0xD9, 0x18, 0x83, 0x48, 0x6F, 0x31, 0x44, 0x8F, 0xF3, 0xA1, 0x61, 0xBA, 0xAA, 0x06,
+ 0x87, 0x56, 0x9D, 0x0C, 0x55, 0x9E, 0xCC, 0x44, 0xB6, 0x7D, 0x37, 0x97, 0x89, 0xA5, 0x42, 0xF1,
+ 0x77, 0x92, 0x59, 0x38, 0x96, 0x5D, 0x63, 0x28, 0xE5, 0x2E, 0x29, 0xDA, 0x19, 0x14, 0xD2, 0xD0,
+ 0x9E, 0xFC, 0x37, 0xBF, 0x1D, 0xD6, 0x00, 0xC0, 0x2E, 0xE5, 0x0E, 0x36, 0xEC, 0x8F, 0x27, 0xBE,
+ 0x0B, 0xF1, 0x3A, 0x27, 0x27, 0xEC, 0xA8, 0x52, 0xEB, 0x20, 0xF7, 0x0A, 0xB9, 0xC7, 0x72, 0xA3,
+ 0x8C, 0xBA, 0x71, 0xEB, 0x3F, 0xF4, 0x31, 0xD3, 0x45, 0x8E, 0xFA, 0xA9, 0x72, 0xE0, 0xB9, 0x4F,
+ 0xCA, 0x17, 0xDC, 0x00, 0xD1, 0x1A, 0x78, 0x74, 0x0B, 0xC0, 0x60, 0x7D, 0xA2, 0x15, 0x69, 0x6A,
+ 0x9B, 0xE8, 0x23, 0xAE, 0x3C, 0xF7, 0x7A, 0x9B, 0xB2, 0x79, 0x23, 0x87, 0x9A, 0xFF, 0x51, 0xB8,
+ 0x5D, 0xF7, 0x3C, 0x77, 0x25, 0xEE, 0xEA, 0x12, 0x2A, 0xE1, 0x1A, 0x26, 0x58, 0x59, 0x93, 0xDC,
+ 0xC6, 0x02, 0xC9, 0x19, 0x0D, 0xC6, 0x11, 0xC1, 0x29, 0xE2, 0x51, 0x6E, 0x38, 0x6E, 0xF3, 0x8B,
+ 0xEE, 0x8A, 0x41, 0xB9, 0x67, 0xAC, 0xEC, 0x56, 0x0E, 0xC5, 0x7D, 0x65, 0xC7, 0x3F, 0x0C, 0x25,
+ 0x6B, 0x2C, 0xE7, 0x9A, 0xCC, 0x07, 0xFC, 0xED, 0x22, 0xE9, 0x92, 0xA6, 0xBB, 0x85, 0x70, 0xE3,
+ 0xF0, 0xD9, 0x12, 0xF4, 0xA0, 0x6B, 0x57, 0x2A, 0x9A, 0x51, 0xD8, 0x54, 0x98, 0xBD, 0x53, 0xF8,
+ 0x72, 0x86, 0x4D, 0x29, 0x37, 0xFC, 0xB9, 0x53, 0x28, 0xE3, 0x58, 0x66, 0xAB, 0x94, 0x60, 0xE2,
+ 0xE6, 0x30, 0xFB, 0x0B, 0x9C, 0x57, 0xA9, 0xE8, 0x3B, 0xF0, 0x02, 0x2F, 0xCE, 0xBE, 0x05, 0xAD,
+ 0xE2, 0x9F, 0x54, 0xA0, 0x81, 0x4A, 0x2D, 0x71, 0x68, 0xA3, 0x1C, 0x62, 0x87, 0x7B, 0x4C, 0x21,
+ 0x50, 0x59, 0x92, 0xD4, 0xCA, 0x01, 0xAA, 0xBD, 0xE6, 0x2D, 0x62, 0x92, 0x75, 0xBF, 0xBE, 0x17,
+ 0x13, 0xE0, 0x2B, 0x2E, 0xC6, 0x0D, 0x36, 0x2D, 0xC4, 0x0F, 0x53, 0x81, 0xD3, 0x3A, 0x18, 0x34,
+ 0xA4, 0x32, 0xF9, 0x4B, 0x41, 0x8A, 0xC9, 0x55, 0x89, 0x42, 0x82, 0x1D, 0xAD, 0xC2, 0x66, 0xB2,
+ 0x18, 0x0C, 0xC7, 0xC9, 0x1F, 0xD4, 0x42, 0x80, 0x7D, 0xB6, 0x10, 0x7B, 0x84, 0x30, 0x4F, 0x69,
+ 0xD2, 0x06, 0xCD, 0x09, 0x2F, 0xE4, 0x20, 0xD2, 0x5B, 0x90, 0x35, 0x78, 0xC1, 0x69, 0x0A, 0x75,
+ 0x95, 0x10, 0xDB, 0x58, 0x8B, 0x40, 0xE7, 0xB1, 0x00, 0xCB, 0xA3, 0xB5, 0xDD, 0xE4, 0x16, 0xE4,
+ 0xB4, 0x99, 0x52, 0xF0, 0x80, 0x4B, 0x24, 0x79, 0xDE, 0x15, 0x88, 0x40, 0x7C, 0x3E, 0xB7, 0x9F,
+ 0x6C, 0xD5, 0x1E, 0x64, 0x45, 0x8E, 0xDD, 0x45, 0xE1, 0x2A, 0x3D, 0xCA, 0x07, 0xDB, 0xCC, 0x01,
+ 0xA1, 0x26, 0xED, 0x5A, 0x4C, 0x87, 0x5C, 0xCD, 0xD7, 0x1C, 0x09, 0xC8, 0x73, 0xE9, 0xB8, 0x47,
+ 0x19, 0xB7, 0x7C, 0x73, 0xBC, 0x77, 0xDA, 0xBB, 0x24, 0xEF, 0xC4, 0xF6, 0x7B, 0x61, 0xB0, 0xC7,
+ 0x93, 0x52, 0x99, 0x1C, 0x48, 0x83, 0x48, 0xDD, 0xB3, 0x78, 0x2A, 0x8F, 0xCF, 0xB7, 0x04, 0xA5,
+ 0x7F, 0x28, 0xE3, 0x8A, 0x7F, 0xB4, 0x75, 0xD7, 0xA5, 0x6E, 0x6D, 0xDE, 0x7A, 0x68, 0xB1, 0xCF,
+ 0x64, 0x6F, 0xA4, 0xD6, 0x5C, 0x97, 0x4D, 0xCC, 0xD8, 0x13, 0xDE, 0x10, 0x6B, 0x70, 0xA0, 0xC6,
+ 0x16, 0xF4, 0x3F, 0x3F, 0xF3, 0x38, 0x49, 0x67, 0x96, 0x5D, 0x44, 0xC4, 0x95, 0x28, 0x5E, 0x60,
+ 0xC1, 0xFB, 0x30, 0xE7, 0x4F, 0x84, 0x17, 0x85, 0xF1, 0x3A, 0x2C, 0xCB, 0xDC, 0xED, 0x17, 0xEC,
+ 0x9A, 0x53, 0x98, 0x14, 0xB1, 0x7A, 0x4F, 0x23, 0x9C, 0x57, 0x8E, 0x04, 0xFF, 0xD5, 0x34, 0xF7,
+ 0x71, 0xD0, 0x1B, 0x7C, 0xA4, 0x6F, 0x43, 0x3A, 0x0F, 0xC4, 0x74, 0x6D, 0xB3, 0x0D, 0x78, 0x63,
+ 0xF6, 0x9B, 0x50, 0xB0, 0xB8, 0x73, 0xCE, 0xAB, 0xD5, 0x1E, 0x4B, 0x88, 0x1B, 0x56, 0xD0, 0x90,
+ 0x90, 0x04, 0xCF, 0x49, 0x3E, 0xF5, 0x38, 0xDB, 0x79, 0xB2, 0x04, 0x6B, 0xBE, 0x98, 0x75, 0xFB,
+ 0x4E, 0x0A, 0xC1, 0x99, 0xDA, 0x11, 0xBB, 0xBC, 0x32, 0xF9, 0x83, 0xA7, 0xD6, 0x27, 0x1D, 0x2C,
+ 0xD9, 0xEA, 0x21, 0xEE, 0xF8, 0x33, 0x8A, 0xAF, 0xCA, 0x01, 0x8D, 0x51, 0x5A, 0x1B, 0x91, 0x9C,
+ 0x9F, 0x47, 0x8C, 0x05, 0x6D, 0xA6, 0x26, 0x96, 0x65, 0xAE, 0x89, 0xFA, 0xC8, 0xE8, 0x03, 0xFD,
+ 0xFE, 0x21, 0xEA, 0x02, 0x65, 0xAE, 0xAE, 0x16, 0x88, 0x43, 0x8B, 0x15, 0x24, 0xE3, 0xEF, 0x1A,
+ 0xC3, 0x16, 0xDD, 0x08, 0x76, 0xBD, 0xF4, 0x5F, 0xC0, 0x0B, 0x47, 0x91, 0xB5, 0x5B, 0x7E, 0x33,
+ 0x0C, 0x08, 0xC3, 0xD9, 0xBD, 0x76, 0xD3, 0xB3, 0xAD, 0x66, 0xE5, 0x5E, 0x9E, 0xEB, 0x55, 0xA8,
+ 0xCD, 0xEE, 0x25, 0xFE, 0x74, 0xBF, 0xB6, 0x1F, 0x15, 0xDE, 0xAF, 0xAC, 0x50, 0xD1, 0x9B, 0x5C,
+ 0x06, 0x5F, 0x94, 0x84, 0xAF, 0x64, 0x80, 0xF2, 0x5A, 0x91, 0x3C, 0x70, 0xEB, 0xD0, 0x20, 0xE6,
+ 0x2E, 0xD7, 0x1C, 0x24, 0xA7, 0x6C, 0x08, 0x72, 0x2F, 0xE4, 0x07, 0x3E, 0xA9, 0xD6, 0x62, 0xA2,
+ 0x32, 0x69, 0xA2, 0x86, 0xE6, 0x2D, 0x45, 0x7E, 0x56, 0x9D, 0xA0, 0xE0, 0x64, 0xA7, 0xAF, 0x1E,
+ 0xF9, 0xD8, 0x13, 0xFC, 0x88, 0x43, 0xAC, 0xF9, 0x74, 0xBF, 0x91, 0xF3, 0x44, 0xD4, 0x8F, 0x4D,
+ 0x0A, 0x4A, 0x81, 0x9D, 0xB4, 0x7F, 0x52, 0x3B, 0x9F, 0x54, 0xC5, 0x4C, 0x5E, 0x0F, 0x95, 0x8C,
+ 0xA6, 0xDF, 0x14, 0xA4, 0x36, 0xFD, 0xB0, 0x5B, 0x08, 0xC3, 0x2B, 0x35, 0x35, 0xFB, 0xFE, 0x13,
+ 0x66, 0x82, 0x49, 0x39, 0xD4, 0x1F, 0x65, 0x6C, 0xD1, 0x1A, 0x5F, 0x98, 0xAC, 0xCB, 0x67, 0xBA,
+ 0x5A, 0x0E, 0xC5, 0x89, 0x33, 0xF8, 0xAD, 0x43, 0xA1, 0x6A, 0x79, 0xCE, 0xF5, 0x1F, 0x3E, 0x37,
+ 0xDF, 0xA8, 0x63, 0xAA, 0x34, 0xFF, 0xF2, 0x1B, 0x46, 0x8D, 0xB1, 0xE1, 0xC2, 0x22, 0x09, 0x3D,
+ 0x03, 0x4B, 0x80, 0x95, 0x14, 0xDF, 0x81, 0x48, 0x85, 0x4E, 0x1E, 0x8D, 0xCD, 0xF5, 0x06, 0xE5,
+ 0xBC, 0x23, 0xE8, 0x42, 0x77, 0xBC, 0xFD, 0x57, 0x58, 0x93, 0x7E, 0x30, 0xFE, 0xDC, 0x35, 0xFF,
+ 0x2D, 0xAC, 0x55, 0x79, 0x30, 0xE4, 0xB1, 0x54, 0x73, 0x5A, 0xDB, 0xA9, 0x15, 0x94, 0xAF, 0x3A,
+ 0x2A, 0xAB, 0x0D, 0x26, 0x96, 0xC7, 0x17, 0xD1, 0x79, 0x6D, 0xEC, 0x94, 0xF2, 0x73, 0x80, 0xF2,
+ 0x6E, 0xEF, 0x19, 0x76, 0xBB, 0x0C, 0x3A, 0x37, 0xB1, 0x66, 0xE7, 0x57, 0x0B, 0x8A, 0x7E, 0xF5,
+ 0x0D, 0x8C, 0x06, 0x0A, 0xD3, 0xDB, 0x52, 0x88, 0xAB, 0x55, 0xD4, 0x7E, 0xD6, 0x57, 0xC3, 0x95,
+ 0xAD, 0x2C, 0x75, 0xD9, 0xD2, 0xD3, 0x53, 0x81, 0xC2, 0xC6, 0x47, 0x84, 0xCC, 0x4D, 0x02, 0x4E,
+ 0x91, 0x10, 0xB7, 0x27, 0x40, 0xB2, 0xC1, 0x72, 0x03, 0xDC, 0x5D, 0x5F, 0x27, 0xA6, 0xBD, 0x1A,
+ 0xCD, 0x4C, 0x22, 0xEE, 0x1A, 0x77, 0x9B, 0xED, 0xF4, 0x34, 0xB5, 0x40, 0x82, 0x03, 0xD6, 0xD4,
+ 0x2F, 0xAE, 0x15, 0x3B, 0x47, 0xEA, 0xC6, 0x2D, 0x5D, 0xAD, 0x2C, 0x70, 0x5B, 0xDA, 0x7B, 0xA0,
+ 0xB6, 0x37, 0xBC, 0x0B, 0xC7, 0xCA, 0x46, 0x8D, 0xA8, 0x73, 0xF2, 0x5B, 0x09, 0x88, 0x3E, 0xB7,
+ 0x6D, 0xEC, 0x51, 0x3D, 0x76, 0xB0, 0xF7, 0x46, 0x12, 0xC8, 0x49, 0x5A, 0x46, 0xC7, 0xE2, 0x24,
+ 0xFF, 0x7E, 0x30, 0xCE, 0xF1, 0xC8, 0x70, 0xB9, 0x50, 0xFC, 0x7D, 0x2C, 0x05, 0x84, 0xAE, 0x2B,
+ 0xBE, 0x3F, 0x3C, 0x83, 0x4F, 0x6A, 0xCE, 0xA5, 0xEC, 0x31, 0xB0, 0x5D, 0x7C, 0xFD, 0x70, 0x8C,
+ 0x7C, 0xFD, 0x58, 0x25, 0xB9, 0x4C, 0x38, 0x75, 0x54, 0xBC, 0x3D, 0x68, 0xDB, 0x5A, 0x5B, 0x00,
+ 0x74, 0xF5, 0xD8, 0xAD, 0xDF, 0x4B, 0x5E, 0x14, 0xB3, 0x50, 0xD1, 0x63, 0x36, 0xB7, 0xB4, 0x02,
+ 0xA4, 0x25, 0xFD, 0x58, 0x90, 0x97, 0x11, 0x87, 0xE6, 0x06, 0x87, 0x60, 0xFE, 0x7F, 0x10, 0x6E,
+ 0x6F, 0xEE, 0x11, 0x7F, 0x8E, 0x46, 0x0F, 0x48, 0x7D, 0x2D, 0xAC, 0xD0, 0x93, 0x12, 0xDF, 0xCC,
+ 0x27, 0xA6, 0x95, 0xB3, 0x9C, 0x07, 0x1D, 0x1B, 0xB5, 0x26, 0xA7, 0x13, 0x2A, 0xAB, 0x25, 0x8F,
+ 0xA1, 0x20, 0xE5, 0x45, 0x03, 0xFE, 0x82, 0x7D, 0xDE, 0x83, 0x02, 0xDD, 0x86, 0x07, 0xC6, 0xC0,
+ 0xE1, 0x60, 0xE1, 0x01, 0x72, 0xA0, 0xF3, 0x52, 0xD2, 0xC2, 0x43, 0x90, 0x99, 0x18, 0x1F, 0x06,
+ 0xC3, 0x42, 0xF2, 0x30, 0x92, 0xD7, 0x13, 0xC5, 0x62, 0x4E, 0xCF, 0xAC, 0x61, 0xE0, 0xE9, 0x08,
+ 0x56, 0xD7, 0xCB, 0x9C, 0x63, 0xA9, 0xE2, 0x4A, 0xA2, 0x44, 0xC5, 0x66, 0xA2, 0x23, 0x85, 0xA7,
+ 0xEA, 0x6B, 0x29, 0xC2, 0x6C, 0x71, 0xED, 0x9D, 0x2E, 0x0D, 0x8C, 0xA3, 0xC5, 0x44, 0x8A, 0xCF,
+ 0xBD, 0x3C, 0x74, 0xC8, 0x48, 0x32, 0xC9, 0xFA, 0x2D, 0x2B, 0xAA, 0x86, 0x5C, 0xDD, 0x23, 0xFF,
+ 0xA8, 0x29, 0x6D, 0xC4, 0xCB, 0x5A, 0x4A, 0x11, 0xB9, 0x67, 0xE6, 0x5E, 0xCF, 0x4E, 0x4A, 0x05,
+ 0x51, 0xD0, 0x93, 0xC3, 0xCA, 0x52, 0x4B, 0x18, 0xEB, 0x57, 0xD6, 0x3C, 0xE0, 0x61, 0xC1, 0xA1,
+ 0xA5, 0x24, 0xF5, 0x51, 0x2F, 0x3D, 0xAE, 0x92, 0x89, 0xE3, 0x62, 0xEA, 0x77, 0xF6, 0xB8, 0x4F,
+ 0x45, 0xC4, 0x82, 0xC6, 0xF7, 0x98, 0x76, 0xEF, 0x88, 0xF3, 0x72, 0xFB, 0x8B, 0x0A, 0x5E, 0x55,
+ 0x66, 0xE7, 0x99, 0xFE, 0xB0, 0xC4, 0x31, 0xF4, 0x81, 0xE2, 0x63, 0xE3, 0xF6, 0x77, 0x90, 0xE6,
+ 0x99, 0x18, 0x37, 0xAF, 0x01, 0xBE, 0x80, 0x3F, 0xD1, 0xE4, 0x65, 0xB5, 0x8D, 0x0C, 0x0E, 0x03,
+ 0x92, 0x13, 0xFF, 0x6C, 0x88, 0x16, 0x09, 0x1E, 0xAA, 0x45, 0xC4, 0x6F, 0x53, 0xD2, 0xFB, 0x28,
+ 0x55, 0xD4, 0x83, 0xD7, 0xBE, 0x14, 0x3F, 0x2A, 0x09, 0xEB, 0x6A, 0x62, 0x84, 0x05, 0x86, 0x82,
+ 0x5C, 0xDD, 0x0B, 0x56, 0x4D, 0x2A, 0xCC, 0xE7, 0x4F, 0x9F, 0x1E, 0x50, 0xB2, 0x33, 0x84, 0xB6,
+ 0x58, 0xD9, 0x1B, 0x42, 0xAA, 0x05, 0x2B, 0x2F, 0xFC, 0x35, 0xB4, 0x49, 0xDA, 0x5B, 0x53, 0x09,
+ 0xDF, 0x5E, 0x63, 0xBD, 0x78, 0x60, 0xF9, 0x98, 0x7A, 0x4B, 0xCA, 0xB1, 0x97, 0x16, 0xCF, 0xD8,
+ 0x36, 0xB7, 0x9C, 0xAB, 0x9E, 0x47, 0x1F, 0x59, 0x3B, 0x59, 0xD8, 0xE2, 0x08, 0x89, 0x36, 0xBE,
+ 0x06, 0x87, 0xCE, 0xC9, 0x94, 0x87, 0x15, 0x93, 0x27, 0x1C, 0x9D, 0xBB, 0x2E, 0xAF, 0x35, 0x9B,
+ 0x85, 0x04, 0xA6, 0x22, 0xA8, 0x45, 0x29, 0x6D, 0xE3, 0x56, 0xD7, 0x35, 0x68, 0xE9, 0x61, 0x89,
+ 0x2E, 0xAF, 0x1D, 0x32, 0x1E, 0x67, 0x9F, 0xF9, 0xAC, 0x33, 0xB2, 0x1F, 0x7B, 0xFA, 0x28, 0xD3,
+ 0xD3, 0x52, 0xF3, 0x21, 0xC1, 0x9A, 0x40, 0xDB, 0x59, 0xED, 0x6C, 0x34, 0xB5, 0x34, 0xDC, 0xE9,
+ 0x98, 0x19, 0x3F, 0xA6, 0x07, 0xEE, 0x86, 0x69, 0x6F, 0x1F, 0x9E, 0xF0, 0x3B, 0xBA, 0x2C, 0x97,
+ 0x7E, 0xFF, 0x18, 0x67, 0x12, 0xF7, 0x93, 0x65, 0x6B, 0x5F, 0xDE, 0xB4, 0x5D, 0xDC, 0x2B, 0xF6,
+ 0x14, 0x95, 0x8F, 0x9A, 0x9A, 0x57, 0x1B, 0x4D, 0xC5, 0xA0, 0x21, 0xE5, 0x7A, 0xFB, 0x20, 0xDA,
+ 0xB9, 0x38, 0x64, 0xDC, 0x41, 0xBA, 0xC0, 0x7B, 0xB6, 0x00, 0x81, 0x36, 0xC9, 0x48, 0x1A, 0x53,
+ 0xD5, 0x54, 0xA3, 0x77, 0xB4, 0xD4, 0x35, 0xE0, 0xAD, 0x23, 0xA2, 0x0E, 0x71, 0xF0, 0xE8, 0x19,
+ 0xC8, 0x49, 0x3A, 0xF3, 0x8F, 0x4E, 0x0E, 0x41, 0x24, 0x3A, 0xBB, 0x9E, 0x58, 0xD9, 0x33, 0xEB,
+ 0x26, 0xA7, 0x9D, 0xBA, 0x22, 0xA5, 0xA3, 0x07, 0x01, 0xEA, 0x6B, 0x6B, 0x16, 0x97, 0xE7, 0x71,
+ 0x3C, 0xBD, 0x5C, 0x61, 0x6F, 0x39, 0xEE, 0xD6, 0x92, 0xC0, 0x41, 0xD2, 0x79, 0xF8, 0x68, 0x91,
+ 0x25, 0xA4, 0xD5, 0xF1, 0x70, 0xE0, 0xF1, 0x10, 0xF6, 0x02, 0x83, 0x74, 0xE1, 0x60, 0xC9, 0xA8,
+ 0x8F, 0x0E, 0x66, 0xE8, 0x0A, 0x76, 0x8B, 0xFC, 0x9E, 0x81, 0x00, 0x9F, 0xB6, 0x37, 0x94, 0xA2,
+ 0x4C, 0xCD, 0x0A, 0x47, 0xCE, 0x42, 0x4F, 0x0C, 0xBF, 0x11, 0x90, 0x2E, 0xE5, 0x64, 0xD9, 0xBC,
+ 0x3E, 0xBF, 0x1C, 0x23, 0x69, 0x69, 0xE8, 0x80, 0xED, 0x21, 0xA0, 0x4C, 0xB8, 0x39, 0x44, 0x7C,
+ 0x04, 0x85, 0x8E, 0x8B, 0x64, 0xF1, 0xE5, 0x15, 0xF0, 0x74, 0xF5, 0x04, 0x7D, 0xFC, 0x78, 0x85,
+ 0x22, 0xA3, 0x8D, 0xAE, 0xF4, 0xD0, 0x75, 0xA4, 0xBB, 0x51, 0xD0, 0x6A, 0x3D, 0xBC, 0x7C, 0xC1,
+ 0x30, 0xB1, 0xCC, 0xFD, 0xE8, 0x41, 0x69, 0x29, 0x96, 0x80, 0x01, 0x96, 0xD5, 0x54, 0x8B, 0xDE,
+ 0x9A, 0x1B, 0x7F, 0xE4, 0x8A, 0x56, 0x0B, 0x5C, 0x48, 0xF9, 0x78, 0x31, 0x17, 0x96, 0xEF, 0x78,
+ 0x42, 0xC3, 0xDA, 0x99, 0x9D, 0x0F, 0x1C, 0x12, 0xA1, 0x62, 0xE3, 0x43, 0xB3, 0x32, 0x8C, 0xBF,
+ 0x20, 0xA1, 0xCD, 0xEC, 0xBA, 0x04, 0x3B, 0x3E, 0x34, 0x3E, 0xBF, 0x8A, 0xE6, 0x67, 0x91, 0xF7,
+ 0x08, 0x89, 0x1E, 0x17, 0x43, 0xFA, 0xC2, 0x39, 0xC0, 0xF0, 0x71, 0xB0, 0x32, 0xB3, 0xA4, 0x16,
+ 0x7B, 0xFA, 0x00, 0x7A, 0x4A, 0x72, 0xCB, 0xB8, 0x4D, 0xA9, 0x28, 0x64, 0x6A, 0xEB, 0x21, 0xCB,
+ 0x1A, 0x9B, 0x5F, 0x44, 0x39, 0x6C, 0xB8, 0xD5, 0x31, 0x6E, 0xEF, 0xDF, 0x91, 0x10, 0x9F, 0x8E,
+ 0x59, 0xD8, 0x13, 0x4B, 0xF8, 0x40, 0x79, 0x38, 0x38, 0x7F, 0xFE, 0xC7, 0xDE, 0x5F, 0x43, 0x1D,
+ 0x68, 0xE9, 0x49, 0x20, 0xD1, 0x9B, 0x50, 0xCA, 0xA7, 0x14, 0x95, 0x33, 0x28, 0xA9, 0x65, 0xCD,
+ 0xE4, 0x65, 0xF9, 0x1C, 0x75, 0xF8, 0xF4, 0x0D, 0x26, 0x0C, 0x8D, 0xAA, 0x1D, 0x9C, 0x2F, 0xB2,
+ 0x24, 0xA5, 0xDD, 0xF8, 0x0F, 0x6E, 0x8E, 0xE1, 0x08, 0xFB, 0x7A, 0x73, 0x98, 0x19, 0x17, 0x0F,
+ 0x83, 0xAE, 0xE2, 0xBB, 0xAF, 0xF3, 0x93, 0xAB, 0x54, 0x71, 0xEA, 0xD2, 0x78, 0xFB, 0x4C, 0xC3,
+ 0x43, 0x8A, 0x06, 0x7B, 0x39, 0x1F, 0xE9, 0xD1, 0x8D, 0x5F, 0x1D, 0x25, 0x40, 0x7E, 0xF1, 0x46,
+ 0x3E, 0x44, 0xB5, 0x06, 0x17, 0xC6, 0x1E, 0x26, 0x39, 0x6F, 0x99, 0xA1, 0x14, 0x38, 0xE3, 0x00,
+ 0x0F, 0x1E, 0xDE, 0x37, 0xCC, 0x34, 0x37, 0x0F, 0xCD, 0xF0, 0xF2, 0xCA, 0x32, 0xCE, 0x33, 0xF6,
+ 0x1C, 0x57, 0x84, 0x24, 0x25, 0x46, 0xAC, 0x94, 0x9A, 0x1A, 0x4F, 0x77, 0x76, 0x8C, 0x35, 0xB4,
+ 0x7D, 0x08, 0xBA, 0x45, 0x3B, 0x2B, 0xDF, 0xE7, 0x21, 0x66, 0x88, 0xB0, 0xC8, 0x77, 0x70, 0x4F,
+ 0x47, 0x9A, 0x12, 0x7F, 0x53, 0xC0, 0x5C, 0x64, 0x74, 0x63, 0xD8, 0xE0, 0xC6, 0x00, 0x09, 0x38,
+ 0x6F, 0x49, 0xE9, 0x57, 0xAD, 0xC7, 0xA5, 0x9D, 0x4E, 0x97, 0x16, 0x2E, 0xF3, 0xD4, 0xE8, 0xEC,
+ 0xFD, 0x28, 0x1A, 0xC5, 0x01, 0xA2, 0x6C, 0x54, 0xCF, 0x1F, 0x1F, 0x27, 0xB8, 0xF1, 0x86, 0xC9,
+ 0x25, 0x8D, 0x67, 0x1D, 0x58, 0xEC, 0x7B, 0x43, 0xBD, 0xF6, 0x84, 0xBC, 0xDB, 0x55, 0x41, 0x6D,
+ 0x45, 0xDA, 0x50, 0x7D, 0x87, 0x5A, 0x12, 0x2A, 0x94, 0xEC, 0xB7, 0x8F, 0x2B, 0xDB, 0x3F, 0xE3,
+ 0x57, 0x9B, 0x03, 0x6F, 0x16, 0xD7, 0x0E, 0x36, 0x68, 0xC1, 0x66, 0x5E, 0xDC, 0x33, 0x20, 0x0B,
+ 0x59, 0x4B, 0xDD, 0x61, 0x3E, 0x7E, 0x8F, 0xB7, 0xB2, 0xBA, 0xC7, 0xFF, 0x13, 0x5E, 0x82, 0x66,
+ 0x63, 0xD9, 0x75, 0x5B, 0xA6, 0xEB, 0x82, 0xBA, 0xFA, 0xA7, 0x92, 0xAA, 0x2F, 0x9B, 0x7B, 0xA3,
+ 0xE8, 0x31, 0x16, 0xD0, 0x21, 0x02, 0xEC, 0xD4, 0x61, 0xC9, 0x67, 0x5F, 0xC3, 0x50, 0x5C, 0x68,
+ 0x2B, 0x5D, 0xB9, 0x13, 0x15, 0xF2, 0x28, 0x10, 0xD0, 0xE8, 0xF7, 0xCF, 0x8E, 0x03, 0x42, 0x3B,
+ 0x5B, 0x0B, 0x9F, 0x63, 0x6E, 0x28, 0x89, 0xB1, 0x2C, 0xC5, 0x26, 0x1E, 0x3F, 0x9F, 0x6F, 0xA7,
+ 0x42, 0x82, 0x0F, 0x7A, 0xB7, 0xEE, 0x96, 0xAE, 0x8A, 0xA1, 0xE4, 0xDC, 0x9E, 0x07, 0x56, 0x3F,
+ 0xAF, 0x6D, 0x0D, 0x97, 0x19, 0xBF, 0x69, 0x51, 0x60, 0x73, 0xDC, 0xE4, 0x64, 0xBE, 0x15, 0x86,
+ 0x41, 0xCA, 0x44, 0x79, 0xF2, 0xF9, 0xC4, 0xFC, 0x95, 0x56, 0x0C, 0x34, 0xB0, 0xF0, 0x8F, 0xC8,
+ 0xDE, 0x33, 0x22, 0xE6, 0xED, 0x85, 0xA7, 0x9F, 0xC8, 0xE1, 0xE6, 0xDE, 0x4D, 0x2F, 0xAD, 0x17,
+ 0xB2, 0xF4, 0x89, 0x8A, 0x83, 0x1E, 0x52, 0x6A, 0xF0, 0xFA, 0xC5, 0xFD, 0xBF, 0x97, 0xE7, 0xAF,
+ 0x19, 0x4F, 0x99, 0x21, 0xA0, 0x9B, 0xF4, 0xCC, 0x4A, 0x3C, 0xB9, 0x81, 0x7C, 0xBB, 0x08, 0x83,
+ 0x73, 0xD8, 0x64, 0x4B, 0x00, 0xB3, 0x7C, 0x44, 0x1B, 0x92, 0x46, 0x7E, 0x77, 0x9C, 0x24, 0xA4,
+ 0xB4, 0xA4, 0xDF, 0x8C, 0xCD, 0x25, 0x27, 0x1F, 0xCA, 0x0E, 0x0B, 0x33, 0x8B, 0x53, 0x17, 0x6B,
+ 0xFF, 0x68, 0x58, 0xC7, 0xB9, 0x97, 0xE1, 0xD9, 0x0E, 0x38, 0xF9, 0xC1, 0x7B, 0xDD, 0x69, 0xE5,
+ 0xE2, 0xF1, 0xDC, 0xDA, 0x12, 0x93, 0x4E, 0x76, 0xCB, 0xB4, 0xB0, 0x88, 0x36, 0x8E, 0x77, 0xB6,
+ 0x49, 0x4A, 0xCC, 0x71, 0x30, 0x07, 0xF8, 0xC0, 0xE1, 0xFB, 0xD5, 0xED, 0x7F, 0x9D, 0x2D, 0xA5,
+ 0x51, 0xCB, 0x55, 0x69, 0x10, 0xA7, 0x78, 0x40, 0x1C, 0x6C, 0xBF, 0x87, 0x61, 0xEE, 0x40, 0xD6,
+ 0x61, 0x99, 0x37, 0x59, 0xD0, 0x6D, 0x72, 0x4A, 0x45, 0x70, 0xFA, 0xC2, 0x62, 0xC8, 0x65, 0xF0,
+ 0x3F, 0x4C, 0xBC, 0x07, 0x52, 0xD1, 0x4C, 0x74, 0xB7, 0xAB, 0xD3, 0xEB, 0x04, 0x3C, 0xF7, 0x04,
+ 0xB8, 0x34, 0x43, 0x80, 0x37, 0x66, 0x9E, 0xA6, 0x4F, 0x2D, 0xAD, 0x95, 0x98, 0x71, 0x26, 0x49,
+ 0x32, 0xD4, 0x29, 0x0A, 0x43, 0xD4, 0x58, 0x60, 0x9C, 0x5E, 0x0D, 0x35, 0xD1, 0x62, 0x7C, 0x5A,
+ 0x3B, 0x5C, 0xA8, 0x03, 0x7D, 0x19, 0xAB, 0x93, 0xAE, 0x18, 0x79, 0x41, 0xD3, 0x54, 0x48, 0x6C,
+ 0xFE, 0x60, 0x51, 0xC6, 0xE9, 0xC1, 0xE7, 0xDF, 0x4B, 0x86, 0x02, 0x3A, 0x59, 0x6B, 0xFD, 0x53,
+ 0xF5, 0xA8, 0x92, 0xCD, 0x41, 0xE0, 0x6E, 0x56, 0x91, 0xFD, 0xA3, 0x9B, 0xAC, 0xB5, 0xD6, 0x8D,
+ 0x22, 0xD5, 0x38, 0x1A, 0xCF, 0x11, 0x11, 0x29, 0x05, 0xDF, 0x15, 0x2D, 0x09, 0x6D, 0xAB, 0x55,
+ 0x01, 0xCE, 0x00, 0x39, 0x93, 0x0A, 0x56, 0x6E, 0x1D, 0xD6, 0x04, 0x3C, 0xC7, 0x10, 0x18, 0x28,
+ 0x36, 0xC4, 0x3D, 0x0E, 0x05, 0xE6, 0x2C, 0x14, 0xC2, 0xBC, 0xB1, 0x89, 0x96, 0x06, 0x5F, 0x3E,
+ 0xC2, 0xA2, 0xAF, 0xFA, 0x6A, 0x6C, 0xC9, 0xF1, 0x14, 0xDE, 0x05, 0x3D, 0xEF, 0x91, 0xB1, 0xA9,
+ 0xDA, 0x23, 0x36, 0xE2, 0x65, 0x04, 0xAE, 0x96, 0x78, 0x7A, 0xCD, 0xF5, 0x74, 0xBA, 0x01, 0x82,
+ 0xCF, 0x3A, 0x3A, 0xF7, 0x0D, 0xEF, 0x2D, 0x15, 0xA0, 0xEE, 0x81, 0xB9, 0x1D, 0x29, 0xFB, 0x11,
+ 0x31, 0x9C, 0x62, 0x09, 0xFE, 0xB4, 0x85, 0xBD, 0x98, 0xF5, 0xA2, 0x9A, 0xD2, 0x44, 0x59, 0x7C,
+ 0x8D, 0x7E, 0x3C, 0xB5, 0x26, 0x63, 0x8A, 0xB2, 0x5D, 0x79, 0xEB, 0xD3, 0xDD, 0x23, 0x31, 0x1B,
+ 0x86, 0xB6, 0xFF, 0xBE, 0xF7, 0xAC, 0x94, 0xAC, 0x6E, 0x85, 0x24, 0x1C, 0x48, 0x7F, 0xF8, 0x47,
+ 0xA4, 0xA5, 0xCE, 0x9C, 0x80, 0x3B, 0x74, 0x4C, 0x52, 0x35, 0xA8, 0x90, 0xBE, 0x87, 0xF6, 0xBF,
+ 0x40, 0xC2, 0x4D, 0x78, 0x50, 0xE5, 0x7A, 0x42, 0xED, 0xE2, 0xC0, 0xF8, 0x72, 0xCC, 0x71, 0xF4,
+ 0xC6, 0xB2, 0xBB, 0xFE, 0xA9, 0x83, 0xE5, 0xDD, 0x23, 0x89, 0x65, 0x5D, 0x91, 0x60, 0x3E, 0x58,
+ 0xC3, 0xAA, 0xA6, 0xFB, 0xC0, 0x79, 0x76, 0x4E, 0x9E, 0xB1, 0xE0, 0xD8, 0x47, 0x18, 0x90, 0x20,
+ 0x08, 0x46, 0x81, 0x30, 0x11, 0xB6, 0x68, 0x50, 0x2E, 0x2A, 0xCB, 0xF3, 0x88, 0x75, 0x32, 0x4D,
+ 0x1B, 0x0F, 0xDB, 0x23, 0x1B, 0x8B, 0x5F, 0x67, 0x96, 0x03, 0x5A, 0x62, 0x0C, 0x3D, 0xFE, 0x05,
+ 0x13, 0x8F, 0x53, 0x2B, 0x1C, 0xEA, 0x39, 0x01, 0x9D, 0xE4, 0xB6, 0x8E, 0xE3, 0xD0, 0xFC, 0xE8,
+ 0x98, 0x67, 0x30, 0xA0, 0x9F, 0x47, 0x17, 0x2F, 0xD2, 0x07, 0x1A, 0x22, 0xF9, 0xE3, 0xD5, 0xDB,
+ 0xD9, 0x6B, 0x7D, 0xE1, 0x3D, 0x5B, 0xA9, 0x91, 0xA3, 0xBB, 0xD7, 0xEF, 0x27, 0x9A, 0x72, 0xA2,
+ 0xD1, 0xEB, 0xF5, 0xE9, 0x9D, 0x73, 0x21, 0x19, 0xA5, 0xFF, 0x95, 0xAD, 0x69, 0xEF, 0x49, 0xD7,
+ 0x0A, 0x06, 0xC3, 0x32, 0xE7, 0xB8, 0x90, 0xA8, 0xA4, 0x45, 0x2E, 0x16, 0xB5, 0xA0, 0xDA, 0x98,
+ 0xAA, 0x75, 0x10, 0x92, 0x20, 0x13, 0xFC, 0xC4, 0xBE, 0xA3, 0xD2, 0xEA, 0x81, 0x64, 0x2A, 0x5C,
+ 0x48, 0x42, 0xC5, 0x70, 0xBD, 0xD3, 0xA1, 0x99, 0x8E, 0x0A, 0x4B, 0x73, 0x2C, 0xBD, 0x5E, 0x85,
+ 0xCA, 0x22, 0x27, 0xF2, 0x84, 0x7F, 0x34, 0x0C, 0x7A, 0x95, 0x20, 0x18, 0x55, 0x2A, 0xB0, 0x12,
+ 0xF6, 0xE0, 0xD9, 0xCE, 0xE5, 0x8C, 0xA6, 0x9E, 0xA1, 0x54, 0x3A, 0x02, 0xEA, 0xC1, 0xE4, 0xF9,
+ 0x09, 0x4E, 0x88, 0x31, 0x5B, 0xC9, 0x5D, 0x65, 0xA9, 0xE6, 0x80, 0xB8, 0x29, 0xED, 0x0B, 0xD5,
+ 0x6A, 0x51, 0xF4, 0x52, 0x8C, 0x76, 0x35, 0x0D, 0x80, 0xFC, 0xB3, 0x8B, 0x94, 0x30, 0x6B, 0x08,
+ 0x4A, 0x02, 0x87, 0x72, 0xB3, 0xAA, 0xD6, 0xEE, 0x57, 0x24, 0xBC, 0x84, 0xF8, 0xF3, 0xC4, 0xCB,
+ 0x4D, 0x5A, 0xD8, 0x75, 0x90, 0x2F, 0x70, 0x48, 0x6A, 0x2E, 0x8B, 0xB3, 0xD7, 0x14, 0x0C, 0x2C,
+ 0xE0, 0x8F, 0xC1, 0x3B, 0x76, 0x38, 0xE7, 0xC5, 0x43, 0x0D, 0x02, 0x5B, 0x82, 0x75, 0xCC, 0xA3,
+ 0x91, 0x42, 0x0C, 0x87, 0x0F, 0x41, 0x40, 0x1B, 0x02, 0x4C, 0x4F, 0x57, 0x3C, 0x69, 0x72, 0x01,
+ 0x97, 0x00, 0x4E, 0xC3, 0x7A, 0x34, 0x7B, 0x55, 0x0A, 0x44, 0xC7, 0xD7, 0xB4, 0x41, 0xFA, 0xA1,
+ 0x96, 0xBB, 0xF5, 0x79, 0x35, 0x7B, 0xE8, 0x89, 0xD1, 0x9F, 0xF1, 0x3A, 0x05, 0x8A, 0x4B, 0xDB,
+ 0xAC, 0x75, 0x3B, 0x8D, 0x8D, 0xC3, 0xA2, 0x7B, 0x18, 0x56, 0x94, 0x96, 0xE3, 0x4B, 0xAD, 0xFC,
+ 0x1C, 0x5E, 0x10, 0x16, 0xE0, 0xAE, 0x00, 0xB4, 0xD3, 0x9D, 0xB3, 0x7A, 0xFD, 0x84, 0xB3, 0x2D,
+ 0xA4, 0xCF, 0x81, 0x3F, 0xA8, 0xE6, 0xCC, 0x30, 0xC0, 0x8E, 0xE9, 0x33, 0xCA, 0xB9, 0x84, 0x27,
+ 0xAF, 0x23, 0x6D, 0xD8, 0x45, 0x0B, 0xCE, 0xDF, 0xC8, 0x86, 0x61, 0xB3, 0xAC, 0xD8, 0xE2, 0x20,
+ 0x9B, 0x15, 0x5B, 0xDA, 0x78, 0x36, 0x39, 0x15, 0xD2, 0x9C, 0xBA, 0x72, 0xC8, 0xFB, 0x86, 0x67,
+ 0xB2, 0x26, 0x68, 0xC0, 0xA5, 0xEB, 0x59, 0xA8, 0xB1, 0xFF, 0xC6, 0x6D, 0xA0, 0x44, 0xEE, 0xB0,
+ 0x65, 0x29, 0x67, 0x18, 0x66, 0x28, 0xF6, 0xC4, 0x91, 0xDF, 0xB5, 0x3E, 0x43, 0x98, 0x0D, 0x8F,
+ 0x58, 0x1E, 0x50, 0x12, 0x81, 0xCF, 0x3E, 0xEB, 0x96, 0xD8, 0xEA, 0x66, 0xE5, 0x1D, 0xAB, 0xAC,
+ 0x8C, 0x47, 0x09, 0x9F, 0xF1, 0xBF, 0x18, 0xBD, 0x71, 0x3F, 0x22, 0x49, 0x69, 0x21, 0x27, 0x1C,
+ 0xBC, 0xDE, 0x90, 0x36, 0x28, 0x66, 0x6C, 0x10, 0x93, 0xDD, 0xF7, 0x7E, 0x34, 0xE1, 0x7A, 0x81,
+ 0x48, 0xB5, 0xFB, 0xA9, 0xBF, 0xF1, 0x82, 0x69, 0x11, 0x5F, 0x15, 0x1E, 0xA1, 0x4D, 0xEF, 0xB8,
+ 0x93, 0xAF, 0xE1, 0x68, 0x54, 0x1A, 0xD6, 0xD6, 0x2D, 0x63, 0xEB, 0xDC, 0x33, 0xBE, 0x7D, 0xD9,
+ 0x37, 0x80, 0xCE, 0xE3, 0xF8, 0xB6, 0x99, 0x35, 0xF9, 0xB7, 0x0A, 0xE9, 0x84, 0x23, 0xCA, 0xF3,
+ 0x2F, 0x91, 0xDF, 0xEA, 0x85, 0xCB, 0x2A, 0xFB, 0xDA, 0x94, 0x32, 0xF2, 0xC3, 0x38, 0x8D, 0xAF,
+ 0xF0, 0x24, 0x6A, 0x80, 0x93, 0xDD, 0x6D, 0xAA, 0xED, 0xA3, 0x0F, 0xF8, 0xB9, 0xD4, 0xF7, 0x39,
+ 0x26, 0x90, 0xDE, 0xE2, 0x04, 0x4A, 0x83, 0xD3, 0x19, 0x57, 0x9D, 0x9E, 0x5C, 0x5E, 0x12, 0x56,
+ 0xAE, 0x98, 0xD6, 0x62, 0xF7, 0xB9, 0x4E, 0xED, 0xE9, 0xA7, 0x1B, 0xE8, 0xCD, 0xE6, 0x83, 0x7F,
+ 0x9C, 0xEC, 0xA2, 0x24, 0xC1, 0x8F, 0x7A, 0xEF, 0xE0, 0xAE, 0x9A, 0x60, 0x3E, 0x2B, 0x70, 0x41,
+ 0x79, 0x97, 0xD9, 0xBA, 0xFE, 0xB0, 0xCF, 0x65, 0x25, 0x6B, 0x63, 0x5C, 0x72, 0xF3, 0x3C, 0xD5,
+ 0xA3, 0x36, 0x78, 0xC1, 0x20, 0x6E, 0xE4, 0x90, 0x2E, 0x60, 0xA0, 0x94, 0xFB, 0xD2, 0xB5, 0x7D,
+ 0x5C, 0xB1, 0xFF, 0xB9, 0xEA, 0xA4, 0xCA, 0x74, 0x5D, 0x13, 0xCD, 0x8A, 0x01, 0x9E, 0x4F, 0xCB,
+ 0x60, 0x3D, 0x73, 0x09, 0x12, 0x5C, 0xC4, 0x82, 0x7F, 0x31, 0xFC, 0x99, 0xE1, 0x09, 0xAF, 0xBC,
+ 0xDF, 0x55, 0x1B, 0xDE, 0x59, 0x17, 0x43, 0x4E, 0x9B, 0xD5, 0x7F, 0xFE, 0xEF, 0xD7, 0xA1, 0x6C,
+ 0x11, 0xF0, 0xBE, 0xB5, 0xF5, 0xBB, 0x0C, 0xAD, 0x1D, 0x53, 0x89, 0x8E, 0x70, 0xB1, 0x3E, 0x95,
+ 0x4A, 0x58, 0x16, 0x46, 0x2F, 0x61, 0x33, 0x48, 0x01, 0x4F, 0x04, 0x1F, 0x3B, 0x36, 0x75, 0x59,
+ 0x92, 0x14, 0x5A, 0xD2, 0xBC, 0xF2, 0xC9, 0x21, 0x14, 0x5A, 0x08, 0x06, 0xB8, 0xDD, 0xF6, 0x31,
+ 0xAA, 0x37, 0x79, 0xC9, 0xD1, 0x9F, 0x6B, 0xEE, 0xEA, 0xA4, 0x50, 0xA0, 0x10, 0x86, 0x5E, 0xC2,
+ 0x6F, 0x7E, 0x30, 0x45, 0xB6, 0xF8, 0x03, 0xE1, 0x56, 0x18, 0x0E, 0x42, 0x1F, 0x51, 0x51, 0x1A,
+ 0xFA, 0x73, 0x3D, 0xDD, 0xBA, 0xF4, 0x9F, 0x71, 0x05, 0x4B, 0x10, 0x0F, 0x32, 0xB7, 0x7C, 0xD1,
+ 0xC2, 0x50, 0x1E, 0xC6, 0x02, 0x4C, 0xD5, 0x83, 0x69, 0x27, 0xBB, 0xC8, 0xC7, 0x2C, 0x89, 0xBF,
+ 0x78, 0x2C, 0x62, 0x00, 0x2E, 0x60, 0x3A, 0x40, 0xC2, 0x8C, 0xAB, 0x73, 0x61, 0xA9, 0x2F, 0x9C,
+ 0x29, 0xD3, 0x9D, 0xAE, 0x09, 0x47, 0x16, 0x4B, 0xA8, 0xE6, 0x56, 0xE4, 0xE9, 0x81, 0xA7, 0x3C,
+ 0x1E, 0xB3, 0xFD, 0xF9, 0x0A, 0x44, 0x5D, 0x03, 0x80, 0xCE, 0xAD, 0x37, 0x1C, 0x1A, 0x52, 0x52,
+ 0xB8, 0x71, 0x3F, 0x9D, 0x92, 0xDC, 0x64, 0xA2, 0x99, 0xD7, 0x3D, 0xBE, 0x03, 0xDC, 0x4D, 0x8B,
+ 0x52, 0x49, 0x07, 0x4F, 0x2B, 0x65, 0x27, 0x58, 0x74, 0x3A, 0x3F, 0x51, 0xFC, 0x8D, 0xB2, 0x25,
+ 0xA7, 0x99, 0xD7, 0x6A, 0x65, 0x2B, 0xBD, 0x8C, 0x9A, 0xD4, 0x76, 0xF6, 0x51, 0xCB, 0x1F, 0xCE,
+ 0x2E, 0x2A, 0x64, 0x50, 0x7B, 0x35, 0x72, 0x5D, 0x8A, 0xC4, 0x67, 0xF7, 0xED, 0x95, 0xA3, 0x2C,
+ 0x77, 0x6F, 0x21, 0x4C, 0x5D, 0x13, 0x57, 0x5E, 0xBA, 0xF4, 0x05, 0xA5, 0xE7, 0x5F, 0xA9, 0xEC,
+ 0x85, 0x46, 0x08, 0x97, 0xA9, 0xE7, 0xC5, 0x38, 0xE4, 0xAA, 0x8E, 0x70, 0xD9, 0xE3, 0x97, 0x6E,
+ 0x7D, 0x38, 0x76, 0x11, 0xE4, 0xAA, 0x14, 0xA4, 0x63, 0x2D, 0x71, 0x08, 0x0B, 0x54, 0x45, 0x0B,
+ 0xF8, 0x9E, 0xD0, 0x32, 0xC6, 0x88, 0x25, 0xB7, 0x6F, 0x21, 0xED, 0x98, 0xB2, 0x17, 0xFC, 0xF1,
+ 0x3C, 0x6C, 0x22, 0x04, 0x48, 0x06, 0x5B, 0x47, 0x24, 0x6A, 0x6A, 0x54, 0x74, 0xA5, 0x3A, 0x85,
+ 0xF9, 0x25, 0x6B, 0x88, 0x1B, 0x55, 0x45, 0x0A, 0x39, 0x77, 0xEE, 0xCD, 0xDB, 0xA1, 0x95, 0x2E,
+ 0xD3, 0x40, 0x0E, 0xC7, 0x08, 0x46, 0x1F, 0x43, 0x92, 0xDC, 0xFE, 0x76, 0x6D, 0x35, 0x23, 0x0C,
+ 0xA8, 0xDA, 0x94, 0x26, 0x19, 0x57, 0x07, 0x4A, 0xC7, 0x89, 0xB6, 0x6B, 0x39, 0x74, 0x77, 0x19,
+ 0x13, 0x1D, 0x53, 0x5A, 0xE2, 0xAC, 0x42, 0xF4, 0xA6, 0xE8, 0x88, 0x34, 0x4A, 0x19, 0x04, 0x07,
+ 0x46, 0x4D, 0x03, 0x5F, 0x95, 0xDB, 0x3B, 0xFA, 0x9C, 0xD2, 0x20, 0xA6, 0xC9, 0xF2, 0x87, 0x6F,
+ 0x7C, 0x83, 0xCD, 0xAB, 0x41, 0x0F, 0xDA, 0xCF, 0xB4, 0xFA, 0xDB, 0x75, 0x30, 0xF5, 0x7E, 0x91,
+ 0x66, 0x7F, 0x31, 0x4D, 0x6E, 0x20, 0x7E, 0x44, 0x58, 0x16, 0xD0, 0x92, 0x06, 0xC1, 0x48, 0x93,
+ 0xBF, 0x88, 0xC6, 0x63, 0xEB, 0xA5, 0xC3, 0x7C, 0x98, 0xD6, 0x34, 0xB6, 0x7C, 0x2D, 0x32, 0x05,
+ 0x0B, 0x0C, 0x42, 0x53, 0xAD, 0xE3, 0xD1, 0x28, 0xE5, 0xAB, 0x87, 0x78, 0x8B, 0xF4, 0xC5, 0x2B,
+ 0xFF, 0x67, 0x29, 0xCC, 0x5B, 0x15, 0x01, 0x0E, 0xD4, 0x9A, 0xEC, 0x22, 0xA2, 0x06, 0xEC, 0xF0,
+ 0x80, 0x52, 0x1C, 0x86, 0xCB, 0x85, 0xB0, 0x2F, 0x82, 0xCC, 0xEF, 0x77, 0x1A, 0x4C, 0x54, 0x02,
+ 0xC8, 0x07, 0x49, 0x9B, 0x0E, 0x40, 0x49, 0x13, 0xB8, 0xF6, 0x47, 0xE5, 0x17, 0xD9, 0x59, 0x9A,
+ 0x53, 0xF2, 0xBC, 0xF5, 0xC5, 0x8B, 0x6E, 0xFF, 0x33, 0x7D, 0x24, 0x0D, 0x79, 0x30, 0x37, 0x1D,
+ 0xE2, 0x62, 0x2C, 0xD4, 0x96, 0xD8, 0x70, 0xB2, 0xF0, 0xBE, 0x8B, 0x61, 0xBD, 0xC0, 0xF3, 0x29,
+ 0xFD, 0x8A, 0xC4, 0x23, 0x64, 0x2A, 0xB4, 0x84, 0x26, 0x68, 0x28, 0x14, 0xF9, 0x90, 0xB7, 0x3D,
+ 0x8F, 0x11, 0x5F, 0xCA, 0xC0, 0x8E, 0x73, 0xE7, 0xFE, 0xB0, 0x55, 0xB1, 0xEE, 0xDE, 0xA0, 0x64,
+ 0xA6, 0x22, 0x6C, 0xD0, 0x4E, 0x00, 0x0D, 0x17, 0x9E, 0xD0, 0x62, 0xE6, 0x87, 0x68, 0xC9, 0xBB,
+ 0x5A, 0xF3, 0xBD, 0xFD, 0xA6, 0xE8, 0x12, 0xE0, 0x8C, 0xC2, 0x31, 0xA7, 0x9B, 0xE5, 0xD5, 0x2A,
+ 0xB6, 0x6D, 0x03, 0x74, 0x92, 0x15, 0x5F, 0x9D, 0x48, 0x25, 0xB5, 0x77, 0x03, 0x43, 0x98, 0x81,
+ 0x54, 0x5A, 0xD6, 0x96, 0x0F, 0xD5, 0x02, 0xC0, 0x78, 0x8C, 0x2C, 0xEE, 0xAE, 0x9A, 0xEC, 0x58,
+ 0x08, 0xCF, 0x1F, 0xCA, 0xCA, 0x4A, 0x58, 0x9A, 0x67, 0x7B, 0xC4, 0x06, 0xC5, 0x3F, 0x22, 0xFD,
+ 0x34, 0x0D, 0xE1, 0xF6, 0xAB, 0xB9, 0xCA, 0x08, 0xBC, 0xBA, 0xDE, 0x1C, 0x7A, 0xD4, 0x76, 0x16,
+ 0x94, 0x7E, 0x32, 0x56, 0xA3, 0xB0, 0xCB, 0x09, 0x46, 0xD3, 0x4D, 0x8F, 0xBB, 0xCE, 0xAD, 0x0C,
+ 0xF7, 0x61, 0x4E, 0x35, 0x74, 0x0F, 0xA3, 0x61, 0x6F, 0xC9, 0x7E, 0xBC, 0x06, 0x13, 0xCD, 0xD1,
+ 0xB3, 0x75, 0x1E, 0x71, 0xBF, 0xE9, 0x8E, 0x4C, 0xAC, 0x01, 0x75, 0xB7, 0xF8, 0xEA, 0xCA, 0x28,
+ 0xB4, 0x2D, 0x41, 0x76, 0x9C, 0x6C, 0x28, 0xEA, 0x91, 0x0B, 0x42, 0x80, 0xD7, 0x0D, 0x02, 0xCF,
+ 0xF6, 0x69, 0x47, 0x34, 0x3E, 0x70, 0x96, 0x54, 0xE8, 0x05, 0x35, 0xF7, 0xA7, 0x8B, 0xF4, 0x49,
+ 0x3D, 0x85, 0x60, 0xFF, 0xEF, 0xBF, 0x88, 0x4A, 0x58, 0x9E, 0x1E, 0xDC, 0x68, 0xE6, 0x56, 0x24,
+ 0xED, 0xA0, 0x95, 0x2F, 0x33, 0x2C, 0xC7, 0x05, 0x5B, 0xCB, 0x48, 0x8A, 0xCC, 0x2E, 0x3A, 0xEC,
+ 0xE5, 0x20, 0x1D, 0x27, 0x34, 0x4D, 0xA1, 0x63, 0x50, 0x2C, 0xA4, 0x66, 0x23, 0xC3, 0x38, 0x01,
+ 0x27, 0x44, 0xBB, 0xE5, 0x12, 0x9D, 0x57, 0x95, 0x65, 0x94, 0x29, 0xEB, 0x08, 0x64, 0xB4, 0xA6,
+ 0x66, 0x48, 0xF6, 0xA4, 0xB0, 0x81, 0xE9, 0x2B, 0x14, 0x28, 0xE4, 0x26, 0xD6, 0x1D, 0x13, 0xDF,
+ 0xF4, 0x29, 0x05, 0x36, 0xC8, 0x7E, 0x6E, 0xAC, 0x62, 0x6A, 0xD0, 0x12, 0x9A, 0x5E, 0x1C, 0x9C,
+ 0x2F, 0xC4, 0x33, 0xED, 0xB2, 0xB5, 0xDF, 0x1D, 0x63, 0xD0, 0x6B, 0xA9, 0x46, 0x11, 0x8F, 0xD3,
+ 0x31, 0x15, 0xFC, 0xF3, 0x22, 0x29, 0xD3, 0x11, 0x66, 0xC1, 0x7F, 0xBD, 0x32, 0xD7, 0x3D, 0x15,
+ 0x24, 0x0C, 0xF0, 0xE6, 0x4A, 0xC2, 0x50, 0x92, 0xBE, 0x55, 0x33, 0xF1, 0x5B, 0x44, 0xC7, 0x86,
+ 0x73, 0x51, 0xFA, 0xB1, 0x09, 0xA5, 0x74, 0xB6, 0x9B, 0x56, 0x15, 0xD7, 0xF2, 0xDD, 0xF7, 0x1F,
+ 0xCF, 0xB3, 0xA4, 0x0D, 0xD1, 0x72, 0x7B, 0xB9, 0x5E, 0xDA, 0x5C, 0x9E, 0xFD, 0xBA, 0x9F, 0x78,
+ 0x5A, 0x8A, 0x08, 0x98, 0xAF, 0xFD, 0x8A, 0x48, 0x94, 0x1A, 0x56, 0x94, 0x91, 0x79, 0x30, 0xBB,
+ 0x78, 0x99, 0x39, 0xBA, 0xD8, 0x6A, 0x6A, 0xA8, 0xA8, 0xAA, 0xDA, 0x18, 0x67, 0x81, 0x3E, 0x43,
+ 0x38, 0x9D, 0x7D, 0xFA, 0x86, 0x45, 0x1B, 0xD9, 0xE5, 0xA6, 0x9B, 0x59, 0xBE, 0x9E, 0xF8, 0x5C,
+ 0xBE, 0xED, 0x8B, 0x7C, 0x7F, 0x23, 0x84, 0x46, 0x2B, 0xCD, 0x3E, 0xFC, 0x5D, 0x32, 0xB7, 0xF0,
+ 0xC5, 0x73, 0x6E, 0x07, 0x52, 0xDF, 0x55, 0x97, 0x68, 0x37, 0x87, 0x45, 0xFC, 0xAA, 0x8E, 0x68,
+ 0xCC, 0xFB, 0xEF, 0x0E, 0x6C, 0x12, 0xA6, 0x64, 0x5A, 0x71, 0xF3, 0x31, 0xFE, 0x9C, 0xBA, 0x5E,
+ 0x0B, 0x87, 0x54, 0xC9, 0x6E, 0x26, 0x90, 0x52, 0x57, 0xD2, 0x5D, 0x9F, 0x83, 0x4B, 0x10, 0x89,
+ 0x00, 0x4F, 0x97, 0xC2, 0xC6, 0x07, 0x19, 0xDB, 0x8D, 0xA9, 0xFC, 0x3E, 0x76, 0x95, 0x3B, 0x57,
+ 0xFF, 0xE1, 0xC6, 0x3D, 0xBC, 0xCC, 0xA8, 0x6A, 0xDB, 0xF9, 0xFA, 0x38, 0xE8, 0xEE, 0xDE, 0x2C,
+ 0xDC, 0xFA, 0xFE, 0x1E, 0xE0, 0xD7, 0xEF, 0x2D, 0xC3, 0xF0, 0xEB, 0x29, 0x26, 0x93, 0x6D, 0x51,
+ 0x3C, 0x8D, 0x69, 0xFE, 0x45, 0xAA, 0x37, 0xF5, 0xD2, 0xF1, 0xFB, 0x39, 0xC0, 0x6F, 0x77, 0xAD,
+ 0xC8, 0xEB, 0xFB, 0x0A, 0x2A, 0x20, 0xD2, 0x10, 0x04, 0x93, 0x4F, 0x8D, 0xB9, 0xF8, 0x99, 0x3A,
+ 0x01, 0x47, 0x9E, 0xC3, 0x96, 0x51, 0x1F, 0xDD, 0xC8, 0x17, 0x07, 0xC5, 0x54, 0x23, 0xAF, 0xE1,
+ 0x4A, 0x8B, 0x19, 0x88, 0xE2, 0xE3, 0xD9, 0x1B, 0x0C, 0x21, 0xF5, 0x37, 0xA4, 0xAD, 0xD1, 0x6F,
+ 0xB7, 0x65, 0x0A, 0x75, 0x1F, 0xC1, 0x06, 0xC4, 0x27, 0xD4, 0x2B, 0xE9, 0x50, 0x63, 0xEB, 0xA1,
+ 0x1C, 0xDE, 0x1A, 0xDE, 0x3D, 0x55, 0xB0, 0x72, 0x0D, 0x9B, 0x4E, 0x8C, 0x19, 0x70, 0xB1, 0xB2,
+ 0x9F, 0xB6, 0xF1, 0x5D, 0xFF, 0xAB, 0x8C, 0x4E, 0x83, 0x5F, 0x04, 0xC6, 0x4D, 0x36, 0xA3, 0xF4,
+ 0xAF, 0xE4, 0x93, 0x6D, 0x3F, 0x61, 0x86, 0x44, 0xDA, 0x43, 0x41, 0x83, 0x4E, 0x10, 0x86, 0xD2,
+ 0x46, 0x1B, 0x85, 0x84, 0x18, 0xA0, 0x60, 0xA2, 0x89, 0x02, 0x53, 0x91, 0xB7, 0x8F, 0xE0, 0x4D,
+ 0xC1, 0x63, 0x7A, 0x03, 0x7D, 0x17, 0xB2, 0x70, 0x71, 0x84, 0x2D, 0xEF, 0x2B, 0xC2, 0x31, 0x00,
+ 0xBC, 0xAD, 0xC9, 0x7E, 0x98, 0x28, 0x68, 0xAA, 0x4C, 0x8E, 0x1A, 0xD8, 0xB1, 0xF9, 0x90, 0x3B,
+ 0xA5, 0x24, 0x59, 0x67, 0x41, 0xEE, 0x77, 0xB5, 0xEA, 0xEA, 0xD8, 0x1A, 0x10, 0x61, 0xA9, 0xA3,
+ 0xBF, 0xE5, 0x82, 0x7D, 0xDD, 0x3F, 0x3A, 0xF8, 0x53, 0x79, 0xF2, 0x30, 0x9F, 0x0E, 0x49, 0xCC,
+ 0x51, 0x42, 0xCB, 0x93, 0x36, 0x79, 0x97, 0x55, 0xA6, 0x5C, 0x22, 0xE0, 0x4B, 0x40, 0xD3, 0x82,
+ 0x4C, 0xDB, 0x4F, 0x8E, 0xAC, 0xD8, 0xAC, 0x6E, 0x36, 0xD5, 0x3B, 0xF9, 0x90, 0x69, 0x21, 0xAB,
+ 0x20, 0x1C, 0xE4, 0xE2, 0xC2, 0x43, 0x59, 0x9B, 0x0E, 0xCE, 0x18, 0xDA, 0x62, 0xD1, 0x6B, 0x13,
+ 0x8D, 0xF7, 0xA2, 0x4F, 0x2F, 0x75, 0x82, 0x40, 0xDD, 0xBD, 0xB8, 0x7A, 0x58, 0x62, 0xE2, 0xA0,
+ 0xE7, 0x60, 0x5F, 0x25, 0x8F, 0x5D, 0x0A, 0xC8, 0x8C, 0x13, 0x47, 0x85, 0x53, 0x45, 0xCE, 0x87,
+ 0xDB, 0xA2, 0xA1, 0x19, 0x77, 0x2A, 0x85, 0x47, 0x7B, 0xD9, 0x7A, 0xB8, 0xF4, 0xAB, 0x87, 0x69,
+ 0x03, 0x07, 0xDC, 0xC1, 0x2E, 0x64, 0x92, 0x50, 0x09, 0x30, 0xE1, 0x23, 0x97, 0x0F, 0x40, 0xCD,
+ 0xA9, 0xB4, 0xC5, 0x6B, 0x39, 0x11, 0xF0, 0x32, 0xAE, 0xEE, 0x98, 0x5A, 0xF3, 0xCD, 0xE6, 0x0F,
+ 0xBB, 0xF5, 0x96, 0x79, 0xA8, 0x9C, 0xEC, 0x2E, 0x52, 0xC3, 0x49, 0x8B, 0x04, 0x25, 0xF9, 0xE7,
+ 0x9D, 0xF6, 0xB3, 0x5F, 0x89, 0x2D, 0x7C, 0xBE, 0x3C, 0x88, 0x6C, 0xAE, 0x00, 0x65, 0xBD, 0xA7,
+ 0xA7, 0x64, 0x1B, 0x65, 0x11, 0xB8, 0x71, 0xB3, 0x74, 0x95, 0x39, 0xFB, 0x3C, 0xA0, 0x44, 0x62,
+ 0xD5, 0x72, 0x7F, 0x17, 0x3A, 0x34, 0xD6, 0x14, 0x16, 0xC7, 0x09, 0xCB, 0xA1, 0xFD, 0x84, 0x3F,
+ 0x16, 0x1E, 0xD0, 0xD4, 0x0E, 0xC4, 0x12, 0xD0, 0xA7, 0xE6, 0x99, 0x5B, 0xEC, 0xAE, 0x9A, 0x6C,
+ 0xBD, 0xA5, 0xC0, 0x7F, 0x16, 0xD9, 0x17, 0xD5, 0x4B, 0x70, 0xE3, 0x21, 0x6F, 0x80, 0x37, 0x42,
+ 0x7D, 0x81, 0x24, 0xBF, 0x80, 0x35, 0x6D, 0xAF, 0x92, 0x5E, 0x14, 0xD6, 0x57, 0x05, 0x8A, 0xC7,
+ 0xF1, 0x31, 0x18, 0x33, 0xE3, 0xF2, 0xC9, 0x0B, 0x0B, 0xDF, 0x0C, 0xCE, 0x1D, 0x30, 0xF5, 0xF2,
+ 0xC0, 0x6B, 0x73, 0x02, 0x38, 0x00, 0xE0, 0x22, 0xFF, 0x40, 0x67, 0xA5, 0x3B, 0xC6, 0x25, 0x04,
+ 0x83, 0x27, 0x7C, 0x41, 0x14, 0xED, 0x21, 0xE3, 0xE7, 0x49, 0x76, 0xB4, 0xE7, 0x89, 0xB6, 0x4B,
+ 0xE2, 0x78, 0x42, 0x20, 0x0A, 0x80, 0x52, 0x90, 0x5C, 0x35, 0xB1, 0x73, 0x59, 0x72, 0xF3, 0xB0,
+ 0x91, 0x66, 0x2F, 0x53, 0x82, 0x01, 0x5B, 0x99, 0x88, 0xB8, 0xE8, 0x2A, 0xDC, 0x2A, 0x2E, 0xE8,
+ 0xB9, 0xB5, 0xD4, 0x7B, 0x7C, 0x06, 0xA2, 0x60, 0xB2, 0x4C, 0x26, 0xE4, 0xE9, 0xFE, 0xCF, 0x3C,
+ 0x11, 0x63, 0x40, 0x5D, 0xA1, 0x82, 0xB7, 0x39, 0x39, 0x1A, 0xB6, 0x83, 0xD0, 0x98, 0xF3, 0x67,
+ 0x2B, 0xAD, 0x8E, 0xA9, 0x75, 0x56, 0x56, 0x0C, 0x11, 0x32, 0x4D, 0x50, 0x29, 0x9F, 0x0A, 0x99,
+ 0x7E, 0xFD, 0xDE, 0xAC, 0x02, 0x21, 0x2F, 0x02, 0x2B, 0x08, 0xE5, 0xC2, 0xAA, 0x74, 0x89, 0xF1,
+ 0xC5, 0x3A, 0x19, 0xD0, 0xF9, 0xDA, 0x6A, 0xBC, 0x4A, 0x69, 0xDB, 0x9D, 0xD9, 0x19, 0xFA, 0xEF,
+ 0x92, 0x87, 0xA4, 0x3A, 0xBB, 0x98, 0x6C, 0xF8, 0x59, 0x7A, 0x81, 0xD4, 0x42, 0x6B, 0x61, 0x06,
+ 0x66, 0xEC, 0xCF, 0xA5, 0x4D, 0x6E, 0xBC, 0xDE, 0x68, 0x4B, 0xEA, 0x8E, 0x6B, 0x99, 0x48, 0xDD,
+ 0xD2, 0x68, 0x4B, 0x95, 0x0B, 0x28, 0xAE, 0x8A, 0x15, 0x36, 0x59, 0x40, 0x9C, 0x40, 0xBF, 0xF3,
+ 0x0B, 0x9F, 0xBC, 0xBB, 0x8E, 0xAD, 0x13, 0xB2, 0xD5, 0xF6, 0xBD, 0x64, 0xE6, 0xAC, 0xC5, 0x65,
+ 0x8F, 0x82, 0xA1, 0x22, 0x76, 0x55, 0x1D, 0x44, 0x7D, 0x5E, 0xE6, 0x97, 0x5D, 0xAD, 0x7E, 0xDF,
+ 0x3E, 0x12, 0x31, 0x03, 0x25, 0x06, 0x03, 0x09, 0xBE, 0x9D, 0x49, 0xFB, 0x99, 0x5D, 0xBA, 0xEB,
+ 0xA5, 0xE7, 0xC4, 0x6D, 0xEE, 0xCD, 0x24, 0xE5, 0x35, 0x16, 0x2A, 0x13, 0xF7, 0xB4, 0xD4, 0x6C,
+ 0xED, 0xB2, 0x91, 0x70, 0x2B, 0x08, 0xDD, 0xD9, 0x0F, 0x2C, 0x82, 0x81, 0xFA, 0x21, 0xD9, 0xF4,
+ 0x37, 0x13, 0x30, 0x0B, 0x46, 0x65, 0x7F, 0x16, 0x01, 0x22, 0x5C, 0x51, 0x7B, 0x88, 0x58, 0xDC,
+ 0xCB, 0xC2, 0xE1, 0x26, 0xAE, 0x8D, 0x60, 0xE1, 0x13, 0x30, 0x0F, 0x10, 0x67, 0x05, 0x44, 0x4D,
+ 0xE2, 0xF1, 0xD2, 0x3C, 0x20, 0x03, 0x1E, 0x11, 0x73, 0x50, 0x38, 0x47, 0x0E, 0xB3, 0x2D, 0x92,
+ 0x90, 0x6A, 0x49, 0xD5, 0x84, 0xA7, 0xD9, 0x72, 0xAB, 0x88, 0x45, 0xE2, 0x19, 0xFD, 0x3A, 0xCB,
+ 0x44, 0x33, 0x10, 0x58, 0xE9, 0xCA, 0x7B, 0xBD, 0x25, 0x06, 0x3B, 0x12, 0x09, 0xEC, 0x2A, 0xCA,
+ 0x15, 0xCC, 0xEF, 0xF6, 0xCE, 0xED, 0x57, 0xB6, 0x4F, 0x6C, 0xC6, 0x85, 0x81, 0xC4, 0xA2, 0x6A,
+ 0xAF, 0xB0, 0x93, 0x30, 0xE2, 0xC1, 0xB8, 0x75, 0xE4, 0xC7, 0xD6, 0x3E, 0x27, 0x41, 0x04, 0x49,
+ 0x97, 0x93, 0xB0, 0x2B, 0x5A, 0x79, 0xF2, 0x87, 0x88, 0xAB, 0x7D, 0xF9, 0xD2, 0xDA, 0xF1, 0x27,
+ 0xCA, 0x79, 0x5A, 0x9C, 0x85, 0xA6, 0xD0, 0x7A, 0x17, 0x34, 0x1B, 0x00, 0xB1, 0xA6, 0x92, 0x38,
+ 0x3F, 0xA9, 0x8A, 0xB9, 0xCB, 0xE8, 0x4A, 0xAE, 0xF9, 0xDA, 0x52, 0xA7, 0x1C, 0xE0, 0x3F, 0xD3,
+ 0xD5, 0x91, 0xB2, 0x6B, 0x72, 0x51, 0x09, 0x54, 0x14, 0x37, 0x50, 0x48, 0xE3, 0xB1, 0xC0, 0x7D,
+ 0x73, 0x53, 0x70, 0x0F, 0xEA, 0xC9, 0x30, 0xF5, 0x0D, 0x2E, 0xC0, 0xC1, 0xFC, 0x77, 0xDF, 0xA4,
+ 0x10, 0xD8, 0xFB, 0xE7, 0x04, 0x27, 0x79, 0x52, 0xEE, 0xCD, 0x1C, 0xFE, 0xEB, 0x39, 0xC8, 0xFD,
+ 0xE8, 0xA6, 0x85, 0x61, 0x49, 0x6A, 0xA8, 0xCE, 0x69, 0x4A, 0xE3, 0x86, 0x39, 0x8E, 0x1A, 0x98,
+ 0x1A, 0x8F, 0xAC, 0xBA, 0xBD, 0x9E, 0x3A, 0xA8, 0x37, 0x14, 0x68, 0x53, 0x07, 0x32, 0x24, 0x1A,
+ 0x43, 0xCA, 0xE9, 0xA6, 0x9B, 0xB8, 0x1F, 0xAB, 0x07, 0x24, 0x0A, 0x01, 0x0D, 0xF8, 0x2E, 0xDA,
+ 0xBE, 0xA0, 0x83, 0x31, 0xE8, 0xCB, 0x72, 0xB5, 0x1F, 0x3C, 0x93, 0x80, 0x8D, 0x58, 0xAE, 0xFA,
+ 0x94, 0xC5, 0xE6, 0x7E, 0xFB, 0xD8, 0x28, 0xFC, 0xB4, 0x97, 0x83, 0x3B, 0x3B, 0xCC, 0x18, 0xD8,
+ 0x51, 0x8C, 0xAF, 0xF2, 0xA8, 0x8B, 0x36, 0xB1, 0xA9, 0x8A, 0x07, 0xA2, 0x94, 0xC8, 0xB7, 0x73,
+ 0x95, 0x7E, 0x5D, 0xC4, 0x26, 0x05, 0x48, 0x41, 0xE2, 0xC1, 0x80, 0x6E, 0x52, 0x7A, 0x71, 0x07,
+ 0x4B, 0x70, 0x53, 0x14, 0xE4, 0xC7, 0xEE, 0x25, 0x94, 0xB7, 0xF0, 0x68, 0xBC, 0x33, 0x9F, 0xA0,
+ 0x9D, 0xC4, 0xE7, 0x76, 0x73, 0x50, 0x00, 0x5C, 0x60, 0x43, 0x62, 0x0E, 0x59, 0xB9, 0x7A, 0xCF,
+ 0x42, 0x71, 0x52, 0x1C, 0x65, 0x46, 0x47, 0x0D, 0x57, 0x74, 0x5F, 0x04, 0x23, 0x55, 0x00, 0x59,
+ 0x5A, 0x60, 0x43, 0x15, 0x18, 0x3B, 0xF4, 0xC3, 0x74, 0x57, 0x67, 0x1F, 0x64, 0x4E, 0x47, 0x05,
+ 0xCE, 0xD6, 0xF5, 0x37, 0xC0, 0xE3, 0x89, 0x66, 0xA3, 0x80, 0xCD, 0x62, 0x1B, 0xBF, 0x38, 0x8B,
+ 0x14, 0x77, 0x54, 0x4C, 0x1E, 0x3D, 0xA2, 0x93, 0xA8, 0x8B, 0x0E, 0xAA, 0x92, 0x9E, 0xB1, 0x23,
+ 0xF1, 0x0C, 0x2F, 0xD2, 0x21, 0x02, 0x17, 0x19, 0x6D, 0x4E, 0xF7, 0x96, 0xDE, 0x46, 0xFD, 0xB7,
+ 0xC3, 0x78, 0x5B, 0x94, 0x17, 0x34, 0x23, 0x1B, 0x64, 0x47, 0x76, 0x1E, 0x2D, 0x8B, 0x0E, 0x89,
+ 0x7C, 0x10, 0x33, 0x43, 0x15, 0x36, 0x61, 0x5B, 0x90, 0xB3, 0xE4, 0x78, 0x90, 0xDC, 0xB3, 0x63,
+ 0xB2, 0xB5, 0x96, 0x28, 0xB9, 0x9A, 0x2E, 0xB8, 0x16, 0x35, 0x12, 0x08, 0x0F, 0xBA, 0x2C, 0x9A,
+ 0x0D, 0xDD, 0xFE, 0xFF, 0xF2, 0xD1, 0xA9, 0x74, 0xF2, 0xD1, 0x91, 0x6F, 0x01, 0x64, 0x22, 0x4A,
+ 0x31, 0x51, 0x72, 0x4F, 0x0A, 0x29, 0xA7, 0x82, 0xD0, 0xF3, 0xA0, 0x7C, 0xE1, 0xF3, 0xC2, 0x3D,
+ 0x02, 0x9E, 0xBD, 0xB3, 0x56, 0x75, 0x6E, 0x17, 0xDB, 0xF8, 0x63, 0xB4, 0xFF, 0x3C, 0xDC, 0xEC,
+ 0xC7, 0xD7, 0xF4, 0x3F, 0x31, 0x12, 0x06, 0x18, 0x67, 0x44, 0x3D, 0x56, 0xF0, 0xEB, 0xD3, 0x34,
+ 0xFF, 0xF4, 0xD7, 0x24, 0x5C, 0x7F, 0xA4, 0xD7, 0x99, 0xBA, 0x65, 0xF0, 0x58, 0xB0, 0x7B, 0xC7,
+ 0x27, 0xB8, 0x9B, 0xB0, 0xCF, 0xEC, 0x5E, 0xBE, 0x8C, 0xAF, 0x69, 0xE9, 0xDB, 0x5B, 0xF8, 0xAF,
+ 0xFB, 0x5B, 0x78, 0x8F, 0xD5, 0xF6, 0x85, 0x7F, 0x5C, 0x7F, 0x9C, 0xCC, 0xE5, 0xE7, 0xC6, 0x2D,
+ 0xFA, 0xE0, 0xC3, 0x35, 0x9A, 0xB9, 0x16, 0xA3, 0x87, 0xA4, 0xAA, 0x21, 0x54, 0x2C, 0x77, 0x57,
+ 0xFC, 0xA2, 0x81, 0x71, 0xEF, 0xCC, 0x2D, 0xED, 0x8F, 0xAC, 0x22, 0xA1, 0xDC, 0x04, 0xFF, 0xF7,
+ 0x8D, 0x6F, 0x4C, 0xCD, 0x96, 0xB5, 0x8A, 0x33, 0xCE, 0xED, 0x6F, 0xAD, 0x62, 0x18, 0x41, 0x55,
+ 0xC2, 0xC3, 0xE0, 0x2E, 0xA5, 0x86, 0xA3, 0x29, 0x45, 0x66, 0x0C, 0x45, 0x4C, 0xB5, 0x6F, 0xD6,
+ 0xC9, 0x2F, 0x0C, 0xC9, 0x48, 0x6B, 0xA1, 0xC6, 0x4D, 0x6E, 0x84, 0xC5, 0x2A, 0xD4, 0x09, 0xD1,
+ 0x71, 0xBE, 0x9D, 0xE0, 0x00, 0x23, 0x6D, 0x42, 0x5E, 0x7D, 0xDE, 0x8C, 0x1D, 0xE9, 0x3E, 0xDB,
+ 0xC1, 0x95, 0xB6, 0x7B, 0x6D, 0x4E, 0xCF, 0x8D, 0x95, 0xB6, 0xF9, 0x60, 0x03, 0x26, 0x20, 0x0A,
+ 0x35, 0xFE, 0xDD, 0xE4, 0x61, 0x42, 0x53, 0x1D, 0x1B, 0x38, 0x87, 0x90, 0x05, 0x70, 0x26, 0x5A,
+ 0x08, 0xC9, 0xEA, 0xEE, 0x86, 0xA5, 0x9B, 0x32, 0x1C, 0x3F, 0xD8, 0xC8, 0xA3, 0xF5, 0x80, 0x79,
+ 0xDF, 0xC6, 0xE5, 0x36, 0x45, 0x66, 0x34, 0x5E, 0x3C, 0x1F, 0xAB, 0x9B, 0x40, 0x29, 0x63, 0x46,
+ 0xF6, 0xF5, 0xD6, 0x2C, 0x98, 0xBB, 0x54, 0xE3, 0x5F, 0x7C, 0xD7, 0x84, 0x28, 0x96, 0x0B, 0x91,
+ 0xFE, 0x4F, 0x6C, 0x9E, 0xB4, 0x97, 0xBB, 0x20, 0xA0, 0x83, 0x86, 0x2A, 0xD3, 0xD3, 0xF0, 0x2F,
+ 0x25, 0x55, 0x76, 0x5F, 0x5F, 0x7C, 0xEF, 0x9F, 0x9C, 0xBF, 0x78, 0xE8, 0x41, 0x20, 0x62, 0x4E,
+ 0xD1, 0x3E, 0x1D, 0xC0, 0xC8, 0xEB, 0x01, 0xE6, 0x1E, 0x3D, 0x9A, 0x88, 0xD4, 0x8C, 0xF7, 0x77,
+ 0xE1, 0xA7, 0x84, 0x69, 0x11, 0x32, 0x75, 0x4B, 0xFC, 0xDF, 0x4F, 0xBF, 0x89, 0x4C, 0xAA, 0xEA,
+ 0xBE, 0x46, 0x41, 0x46, 0x45, 0x17, 0xEB, 0x10, 0x39, 0xE8, 0x68, 0x3E, 0x7C, 0x4A, 0x8F, 0x88,
+ 0x89, 0x93, 0xA3, 0xA4, 0x85, 0x4A, 0x76, 0x4D, 0xA0, 0xD8, 0xC1, 0xA7, 0x08, 0xE7, 0x56, 0x51,
+ 0xE9, 0x71, 0x21, 0x26, 0x29, 0xDF, 0x4F, 0xD8, 0xCB, 0x2C, 0x5E, 0xCC, 0xE6, 0x9E, 0xC1, 0xC6,
+ 0x2B, 0x8F, 0x1D, 0x1A, 0xDA, 0x4D, 0x2E, 0x4A, 0xD1, 0xF7, 0x9F, 0xD6, 0xB2, 0x21, 0x2A, 0x2D,
+ 0x85, 0xDE, 0xE2, 0xE5, 0x9F, 0xB6, 0x90, 0xB1, 0x6B, 0xFF, 0x2D, 0x6C, 0x5D, 0xE2, 0x06, 0x01,
+ 0x9A, 0xA2, 0x81, 0x86, 0x20, 0xDE, 0x47, 0xD9, 0x58, 0xD6, 0x37, 0x5F, 0x3D, 0x5F, 0xDB, 0xDC,
+ 0xC9, 0xD1, 0xA1, 0xA6, 0xFC, 0x3D, 0x78, 0x3A, 0x57, 0x01, 0xEF, 0x50, 0x92, 0x33, 0x18, 0x1F,
+ 0x91, 0x8E, 0xA6, 0xA1, 0x79, 0x9B, 0x5B, 0x9C, 0x60, 0x3C, 0xE5, 0x67, 0x5A, 0x1C, 0xFF, 0xF8,
+ 0x61, 0xF0, 0x28, 0x2F, 0x2F, 0x9D, 0x0B, 0x9A, 0x0B, 0xC8, 0x7A, 0x0C, 0xC6, 0x8C, 0xF3, 0xF4,
+ 0x8D, 0xD7, 0xE3, 0xE4, 0xE0, 0x83, 0xDA, 0x84, 0x20, 0x78, 0xE1, 0x27, 0x64, 0x43, 0x9E, 0x99,
+ 0xC4, 0x8D, 0xF0, 0xF7, 0xDD, 0xB4, 0xD0, 0xB3, 0xB1, 0xC0, 0xC8, 0xB6, 0xA8, 0xC7, 0xD6, 0xD1,
+ 0x44, 0x05, 0xF8, 0xFF, 0xBC, 0xD2, 0xD7, 0xD5, 0x5D, 0xCB, 0x2F, 0x5A, 0xAA, 0x28, 0x3B, 0x3C,
+ 0xAC, 0x66, 0x73, 0x74, 0x11, 0xFC, 0x54, 0xFB, 0xF1, 0x84, 0xCC, 0xF6, 0x83, 0x32, 0x08, 0x0F,
+ 0xA0, 0x2B, 0x32, 0x35, 0x0D, 0x42, 0xF6, 0x45, 0x3C, 0xF5, 0x70, 0x3B, 0x24, 0xEC, 0x71, 0x76,
+ 0x20, 0xA3, 0x3A, 0x3D, 0x25, 0xCA, 0x56, 0xCD, 0x7E, 0xF3, 0x34, 0x79, 0x1F, 0xA2, 0x04, 0x03,
+ 0xCD, 0x95, 0xE1, 0xE6, 0xEE, 0x7B, 0x2C, 0x7C, 0xC5, 0xF2, 0x8E, 0xC2, 0x8C, 0x7E, 0x4B, 0x4C,
+ 0xE8, 0x60, 0x31, 0x36, 0x52, 0x45, 0xAE, 0x42, 0x26, 0x2E, 0xB1, 0x21, 0x57, 0xBF, 0x51, 0x56,
+ 0xF1, 0x6C, 0x24, 0x23, 0xB9, 0xC6, 0xC6, 0xC1, 0x6A, 0xF6, 0x25, 0x6D, 0xAD, 0xD6, 0xC2, 0xC5,
+ 0x57, 0x34, 0xDA, 0xDD, 0xE2, 0x6E, 0x35, 0x69, 0x49, 0xCE, 0x3E, 0x4E, 0x0F, 0x19, 0xAF, 0xA8,
+ 0xB5, 0x6A, 0x66, 0x61, 0x35, 0x61, 0xED, 0x66, 0x00, 0x0B, 0xB2, 0x07, 0x67, 0x16, 0xC8, 0xCF,
+ 0x7D, 0xA9, 0x6D, 0x6A, 0xFA, 0x7F, 0x3C, 0x78, 0xCF, 0x38, 0x4E, 0xC8, 0xAE, 0x83, 0x94, 0x93,
+ 0x6E, 0x98, 0x4F, 0x48, 0x6D, 0x9F, 0x4B, 0x98, 0x43, 0x04, 0xFE, 0x44, 0xA0, 0x75, 0x6C, 0x6B,
+ 0x09, 0x1B, 0xAB, 0xAC, 0xB3, 0x91, 0x9B, 0x96, 0x2B, 0xBB, 0x29, 0x2C, 0x27, 0xB9, 0x27, 0x20,
+ 0x79, 0xED, 0x2D, 0x2A, 0xD5, 0x0E, 0x62, 0x09, 0x8E, 0x75, 0x42, 0x89, 0x68, 0x5A, 0x8B, 0x8C,
+ 0x1F, 0x7F, 0xD9, 0xDE, 0x82, 0xB3, 0x88, 0xB4, 0xE6, 0xCA, 0x95, 0xE1, 0x2A, 0x1A, 0x89, 0x8E,
+ 0x97, 0xFE, 0xD0, 0xD7, 0x4F, 0x40, 0xB6, 0x47, 0x92, 0xF8, 0xD3, 0x95, 0x1E, 0x18, 0xBF, 0xB8,
+ 0xAB, 0x07, 0x15, 0x12, 0x97, 0x0C, 0x22, 0x0B, 0xE9, 0x1D, 0x4D, 0xEE, 0xAB, 0x92, 0x80, 0x87,
+ 0x63, 0xC4, 0x1E, 0x19, 0xB6, 0x85, 0x8A, 0x82, 0x48, 0xC7, 0x36, 0x4F, 0x80, 0x67, 0x5E, 0x59,
+ 0x1E, 0x6E, 0xC9, 0xCE, 0x47, 0xFA, 0x04, 0xFD, 0xFE, 0x53, 0x14, 0xF9, 0xFD, 0xC2, 0x86, 0x81,
+ 0x05, 0x56, 0xEA, 0xED, 0x5C, 0xBD, 0x58, 0xBA, 0xEF, 0x4B, 0x1D, 0xE8, 0x4E, 0x0C, 0xFB, 0xFC,
+ 0x0F, 0x6B, 0xDD, 0xDA, 0xB0, 0xC7, 0xCE, 0xC0, 0x5A, 0x94, 0x77, 0x5D, 0x09, 0x5D, 0xED, 0xEA,
+ 0x69, 0xF9, 0x29, 0x2E, 0x3A, 0x22, 0xA1, 0x25, 0xEE, 0x42, 0x15, 0xE9, 0xE7, 0x24, 0x7A, 0x7D,
+ 0x6F, 0x89, 0x5F, 0x58, 0x73, 0xCC, 0x06, 0xCB, 0xE0, 0x9C, 0xC5, 0xE7, 0x41, 0x40, 0xB8, 0xBF,
+ 0xA3, 0x0E, 0x14, 0x13, 0xC1, 0x0A, 0x72, 0x0D, 0x12, 0x58, 0xF3, 0x15, 0x3F, 0xB0, 0x36, 0x31,
+ 0x3A, 0x8A, 0x09, 0x0E, 0xC5, 0xA5, 0xD9, 0xA2, 0x5B, 0x9D, 0x7F, 0x5C, 0x21, 0xFD, 0x65, 0x62,
+ 0x81, 0x9A, 0xA2, 0xA5, 0x51, 0x13, 0xFB, 0x14, 0x3E, 0xB7, 0x30, 0x39, 0x7B, 0xB4, 0x76, 0x71,
+ 0x00, 0x03, 0xBA, 0xBD, 0xF1, 0x93, 0xDB, 0x94, 0x54, 0x4A, 0xA7, 0x53, 0x16, 0xAA, 0x05, 0x02,
+ 0x52, 0x61, 0x8A, 0x8D, 0x3B, 0x99, 0x1B, 0x9E, 0x11, 0x13, 0xBB, 0x16, 0x33, 0xA9, 0x23, 0x24,
+ 0x87, 0xEA, 0xD4, 0xD3, 0x87, 0xA7, 0x99, 0xA0, 0x38, 0xE1, 0x60, 0x3F, 0xA1, 0xCF, 0xD7, 0xD0,
+ 0xFF, 0x15, 0x53, 0x54, 0x30, 0x75, 0xFC, 0x72, 0x46, 0x19, 0xE6, 0x41, 0x70, 0x53, 0x9A, 0x9D,
+ 0xC0, 0xC9, 0xB0, 0xB7, 0x7E, 0x62, 0xA5, 0x65, 0xCD, 0x7A, 0x0E, 0xCA, 0x39, 0xF4, 0x74, 0x73,
+ 0x49, 0x59, 0xA9, 0xAE, 0xB8, 0x7D, 0x7C, 0x7A, 0x0F, 0xDC, 0x6A, 0x08, 0x00, 0x55, 0xEC, 0xEB,
+ 0xA6, 0x5B, 0x44, 0x43, 0xE9, 0x82, 0xD2, 0x85, 0x37, 0x36, 0xB8, 0x30, 0x43, 0xAF, 0x55, 0x52,
+ 0x01, 0x12, 0xAA, 0xAD, 0xAF, 0x2F, 0x39, 0x28, 0xE7, 0xC3, 0x9D, 0xE0, 0xD9, 0x7B, 0x1B, 0x1C,
+ 0xF8, 0x74, 0x35, 0x32, 0xD3, 0x4C, 0x26, 0x4B, 0x0D, 0x9E, 0x2A, 0x0A, 0xFB, 0x86, 0xC4, 0xC3,
+ 0x3F, 0xDF, 0x59, 0x5E, 0x48, 0xB9, 0x48, 0xBE, 0x2E, 0xA6, 0x31, 0x29, 0xB1, 0x74, 0x7C, 0x7B,
+ 0x84, 0xCF, 0xF2, 0xF5, 0xCD, 0x1F, 0x6B, 0x18, 0x52, 0x1C, 0xF7, 0x55, 0x5E, 0xB7, 0x50, 0x57,
+ 0x13, 0x32, 0x98, 0x9F, 0xE5, 0x97, 0xCB, 0x90, 0xAD, 0x4D, 0x59, 0xAA, 0x72, 0xBC, 0x77, 0x70,
+ 0xE3, 0x4C, 0x16, 0x11, 0xF4, 0x87, 0xCA, 0x80, 0xF4, 0x99, 0xD4, 0xF3, 0xD0, 0x73, 0x1A, 0x1D,
+ 0x46, 0x31, 0xCE, 0xC9, 0xBA, 0x90, 0x93, 0x97, 0x6F, 0xEB, 0x3D, 0x68, 0x17, 0x10, 0xBE, 0xB9,
+ 0x11, 0x06, 0xAE, 0xA9, 0x0C, 0xF9, 0x4C, 0xFE, 0x5C, 0xC2, 0x27, 0x5B, 0x69, 0xE0, 0x30, 0x37,
+ 0x50, 0x55, 0xBC, 0xBB, 0x81, 0xE5, 0xDD, 0xE2, 0x8D, 0x3E, 0x0A, 0x8A, 0x76, 0x17, 0xD8, 0xDF,
+ 0x80, 0x8B, 0xB2, 0xB5, 0x28, 0x64, 0xF5, 0x63, 0x2C, 0xE4, 0x71, 0x2B, 0xD4, 0xD8, 0xB5, 0xB2,
+ 0x12, 0x23, 0x88, 0x8F, 0xBD, 0x69, 0x6D, 0x6E, 0x79, 0xAC, 0x6C, 0x7E, 0x2D, 0xE4, 0x70, 0x77,
+ 0xFA, 0x40, 0x03, 0x04, 0x54, 0x07, 0xEA, 0x00, 0x8C, 0x37, 0x02, 0x8B, 0x0A, 0x08, 0xBB, 0xBC,
+ 0x96, 0xEF, 0xC0, 0xC7, 0xA4, 0xC3, 0xDE, 0xC4, 0x1C, 0x86, 0x23, 0x1B, 0x14, 0x45, 0xE8, 0xEF,
+ 0x65, 0xB4, 0x68, 0x6F, 0xA5, 0x78, 0x64, 0x7F, 0x01, 0x02, 0xBA, 0x06, 0x1A, 0xB3, 0x10, 0x17,
+ 0x41, 0x50, 0xA8, 0xAF, 0x49, 0x02, 0xF2, 0x05, 0xF6, 0xDB, 0x94, 0xF1, 0xA7, 0x8B, 0x95, 0x92,
+ 0x8F, 0xE3, 0xD5, 0xD2, 0x90, 0xF5, 0xDC, 0xF2, 0x72, 0x6F, 0xA4, 0x75, 0xB5, 0xDF, 0xD3, 0xD4,
+ 0xD5, 0x88, 0xE4, 0xE3, 0x62, 0xDC, 0x07, 0xDB, 0x19, 0x9B, 0x3B, 0x1E, 0x65, 0xF9, 0x25, 0x22,
+ 0x9C, 0xD2, 0xF7, 0xF0, 0x10, 0x47, 0xEE, 0x40, 0xA4, 0xCC, 0xD1, 0xA3, 0x63, 0xBD, 0x67, 0x60,
+ 0xC3, 0xEC, 0x96, 0x91, 0x7D, 0x34, 0xF0, 0x33, 0x63, 0x77, 0xAD, 0x64, 0x26, 0x03, 0x9C, 0x9B,
+ 0x51, 0x44, 0xAC, 0xAB, 0x96, 0xB7, 0x98, 0xB0, 0x33, 0x22, 0xA8, 0x34, 0x5F, 0x0D, 0xEB, 0xEC,
+ 0x82, 0xBF, 0x84, 0x83, 0x91, 0x4E, 0x66, 0x49, 0xFD, 0x18, 0x5C, 0xFA, 0xBE, 0x38, 0x3F, 0x38,
+ 0xA7, 0x32, 0xE7, 0xA3, 0xE4, 0x53, 0xC5, 0x17, 0x26, 0xDF, 0x8B, 0x62, 0x1E, 0xAC, 0xC0, 0x84,
+ 0x7F, 0xE5, 0xE8, 0xAC, 0xBA, 0xEF, 0x27, 0xAB, 0x41, 0xB7, 0x84, 0x05, 0xDB, 0x20, 0x89, 0xCD,
+ 0x3C, 0x82, 0xCC, 0x88, 0xB0, 0xB8, 0x7A, 0xFC, 0xD8, 0x87, 0x2D, 0x9C, 0xFE, 0x23, 0xAF, 0xEB,
+ 0x54, 0x69, 0x4F, 0x0B, 0xBC, 0xAD, 0x63, 0xE9, 0x4B, 0x7D, 0x44, 0x0F, 0x26, 0xB7, 0xE3, 0xA7,
+ 0x09, 0x63, 0x18, 0x5C, 0xCB, 0x22, 0x9B, 0x66, 0xAE, 0xF7, 0x2B, 0xEA, 0x6B, 0xBB, 0xA2, 0xE6,
+ 0xF0, 0x05, 0x87, 0xC3, 0x3D, 0xA4, 0xEB, 0xE0, 0x02, 0xB8, 0xC8, 0x46, 0xA5, 0xD0, 0x07, 0x43,
+ 0xAE, 0x2A, 0xF6, 0xB2, 0x79, 0xE4, 0xEF, 0xA0, 0x1D, 0x7E, 0x11, 0x59, 0xE8, 0xDC, 0x46, 0x02,
+ 0xD9, 0xBD, 0x16, 0x52, 0x48, 0xC6, 0xFC, 0x82, 0xE5, 0x70, 0xE7, 0xA1, 0xD4, 0x6C, 0xCA, 0x8E,
+ 0xB0, 0x47, 0x85, 0xC1, 0xD7, 0x9C, 0x39, 0xD8, 0x09, 0x7B, 0x00, 0x4D, 0xCD, 0xDF, 0x60, 0x24,
+ 0x18, 0x66, 0x0C, 0x48, 0x14, 0x97, 0xF1, 0xD3, 0xD7, 0x50, 0xF5, 0x93, 0x17, 0xA4, 0xC1, 0x85,
+ 0x1A, 0x52, 0x3A, 0x7E, 0xAF, 0x50, 0x8D, 0x14, 0x00, 0xFA, 0x88, 0x44, 0x1A, 0x07, 0x6F, 0x2B,
+ 0x24, 0x9F, 0xC9, 0x8D, 0x2E, 0x59, 0x05, 0x1D, 0x36, 0xCE, 0x8A, 0x72, 0x28, 0x41, 0x1B, 0x5F,
+ 0x5C, 0x60, 0x4E, 0x0A, 0xBB, 0x54, 0x9D, 0x10, 0x64, 0xD9, 0xCF, 0x20, 0x44, 0xE5, 0xD3, 0x97,
+ 0x33, 0xEA, 0xAB, 0xEF, 0x29, 0xA0, 0xFB, 0xE4, 0xF3, 0x37, 0xB6, 0xB7, 0x92, 0x87, 0x67, 0x23,
+ 0x96, 0x97, 0x73, 0x37, 0xBE, 0x40, 0x8C, 0x04, 0x0F, 0x2D, 0x50, 0x4B, 0x83, 0x86, 0x77, 0x33,
+ 0xCA, 0x8C, 0x34, 0x70, 0x86, 0x63, 0x97, 0x27, 0x72, 0x9E, 0x9E, 0x36, 0x9B, 0x8F, 0x66, 0x22,
+ 0xDD, 0xF9, 0x56, 0x12, 0xA1, 0xA8, 0x7B, 0xEC, 0x48, 0x36, 0x0C, 0x0C, 0xFC, 0xCC, 0x42, 0x06,
+ 0xBC, 0x0A, 0xC4, 0x80, 0x5F, 0x94, 0xB9, 0xD0, 0xA3, 0x62, 0xB3, 0xE7, 0x27, 0x0D, 0x58, 0x1C,
+ 0x79, 0x95, 0x9E, 0xDA, 0x96, 0xC8, 0x2C, 0x8C, 0x06, 0xAC, 0xD8, 0x42, 0x38, 0xFA, 0xB0, 0xF4,
+ 0xE4, 0x55, 0xC3, 0x87, 0x43, 0x2A, 0x1B, 0x6E, 0xDF, 0xD8, 0x75, 0x9B, 0x08, 0x53, 0x29, 0x6D,
+ 0xEA, 0x2C, 0xB4, 0xF0, 0x01, 0x28, 0x5B, 0x6C, 0x91, 0x42, 0xA1, 0xD5, 0xD1, 0x7D, 0xDE, 0x9A,
+ 0xC9, 0xA9, 0x12, 0x56, 0x5E, 0x2F, 0x03, 0x6B, 0x76, 0x8A, 0x8E, 0x32, 0xEC, 0x77, 0xE9, 0xAD,
+ 0x02, 0x4F, 0x3F, 0x7B, 0x0E, 0x6B, 0x17, 0x2F, 0x8F, 0x8D, 0x70, 0xCB, 0x2F, 0xBF, 0xE2, 0xA6,
+ 0xD5, 0xF0, 0x57, 0x13, 0x72, 0x08, 0x08, 0x4C, 0x52, 0xED, 0xCD, 0x16, 0x06, 0xA5, 0xD1, 0x95,
+ 0x42, 0x0D, 0x3D, 0x79, 0x5D, 0x79, 0x56, 0x3D, 0x5F, 0x78, 0x55, 0x1B, 0x10, 0x5A, 0x38, 0x7C,
+ 0x45, 0x6C, 0x5B, 0x1F, 0xD5, 0x71, 0xD6, 0x35, 0xB2, 0x7A, 0xBA, 0xF6, 0x1B, 0xBD, 0xD4, 0x90,
+ 0x99, 0xFF, 0x14, 0x50, 0x20, 0xA1, 0xF3, 0xE5, 0x7A, 0x16, 0x1E, 0x3E, 0x18, 0xE8, 0x82, 0xC6,
+ 0x48, 0x30, 0x0A, 0x4E, 0x07, 0x6A, 0x1F, 0x2E, 0x17, 0xB4, 0xD1, 0x53, 0xA8, 0x73, 0xA9, 0xED,
+ 0xC4, 0xF5, 0x43, 0x07, 0x73, 0xB3, 0xB2, 0xF7, 0x8D, 0xCF, 0x30, 0xC9, 0x23, 0xA6, 0xF7, 0xB3,
+ 0xBE, 0x3E, 0xF2, 0xB6, 0x45, 0x68, 0x5F, 0x2C, 0xC2, 0x5C, 0xEC, 0x86, 0x22, 0x1C, 0x4C, 0x08,
+ 0xC6, 0xC1, 0x75, 0x31, 0xB6, 0xFA, 0x3E, 0xBE, 0x81, 0x53, 0xA0, 0xC5, 0x54, 0x5E, 0x78, 0x3C,
+ 0x64, 0xDD, 0xCB, 0x8F, 0xFB, 0xBB, 0x32, 0xFF, 0xF8, 0xF4, 0x7E, 0xBC, 0x25, 0xE2, 0xB5, 0xF1,
+ 0xDE, 0xDC, 0x70, 0x34, 0xD6, 0x27, 0x83, 0x63, 0xB9, 0xB9, 0x72, 0xFD, 0x12, 0xB5, 0xD5, 0x91,
+ 0x4F, 0x51, 0x6C, 0x28, 0x85, 0x35, 0xC2, 0x71, 0x51, 0xA6, 0x85, 0x15, 0xEE, 0x98, 0x04, 0x40,
+ 0x58, 0x24, 0x0E, 0x4A, 0x9C, 0x9F, 0x71, 0xDB, 0x93, 0x00, 0xE1, 0xD7, 0x49, 0x46, 0x7D, 0x39,
+ 0x01, 0x6A, 0x19, 0x5D, 0xE1, 0x47, 0xD4, 0x03, 0x37, 0xC7, 0x82, 0x73, 0x3B, 0xAF, 0xE6, 0xA2,
+ 0x78, 0x84, 0x8E, 0xCA, 0x90, 0x8A, 0x68, 0xCE, 0x32, 0xDA, 0x9A, 0x76, 0xE7, 0x90, 0x05, 0x41,
+ 0x4C, 0x74, 0x4A, 0x0E, 0x3F, 0x49, 0x04, 0x0D, 0x61, 0xC4, 0xD7, 0x25, 0x56, 0xB1, 0x95, 0xD1,
+ 0x67, 0xF8, 0xED, 0xA9, 0x5B, 0x3B, 0x12, 0x7F, 0x3C, 0x04, 0x4A, 0x78, 0x34, 0xE3, 0xA5, 0xE1,
+ 0xFF, 0x6D, 0xE0, 0xA4, 0xF3, 0x01, 0x80, 0x45, 0xF9, 0xFD, 0x76, 0xBD, 0x7C, 0xFE, 0xF0, 0xB4,
+ 0x4E, 0x40, 0x7C, 0x38, 0x33, 0x5C, 0x1D, 0x18, 0x5A, 0x65, 0x4D, 0x1E, 0xBF, 0x36, 0xFB, 0xBF,
+ 0x95, 0xB2, 0x55, 0x11, 0x58, 0x6D, 0x47, 0x29, 0xAC, 0xB5, 0x6B, 0xE8, 0x4B, 0xA9, 0x90, 0xD4,
+ 0xF6, 0x75, 0xF1, 0xB5, 0x64, 0xE1, 0xF7, 0xA5, 0x99, 0xCA, 0x21, 0xDD, 0xD2, 0x28, 0x88, 0xCC,
+ 0x60, 0x99, 0x8B, 0xCF, 0x80, 0x21, 0xD3, 0x65, 0x1C, 0x77, 0x19, 0x58, 0x0B, 0x06, 0x7F, 0x3B,
+ 0x0A, 0x46, 0x3E, 0x7A, 0x94, 0x25, 0xC3, 0x61, 0x62, 0x8F, 0x9F, 0x26, 0xF2, 0x3A, 0xBA, 0xFE,
+ 0xF4, 0x41, 0xC7, 0x83, 0x6F, 0x0D, 0x10, 0x49, 0xB6, 0x6E, 0xAA, 0xF2, 0xC8, 0xCE, 0x74, 0x30,
+ 0x7C, 0xC0, 0xCE, 0x8A, 0x02, 0x7E, 0x0E, 0x3A, 0xEE, 0xB3, 0x2F, 0xAA, 0x1C, 0x43, 0x2D, 0x69,
+ 0x62, 0xAD, 0xBD, 0xF9, 0x3C, 0x1F, 0x51, 0x5B, 0x15, 0xF6, 0x91, 0x51, 0xA7, 0x3F, 0xEA, 0xAE,
+ 0x4B, 0x15, 0x2C, 0x68, 0x5A, 0x80, 0xA8, 0xC4, 0xEC, 0xF1, 0x6F, 0xA8, 0x4D, 0xED, 0xD2, 0x96,
+ 0x69, 0x81, 0x9A, 0xDE, 0x4A, 0x2B, 0x13, 0x6F, 0xFF, 0xAB, 0x26, 0xBB, 0x67, 0xA2, 0xB7, 0xF3,
+ 0x94, 0xA3, 0x45, 0x01, 0x59, 0xD6, 0xFD, 0x92, 0x31, 0x91, 0xD2, 0x75, 0x4C, 0x57, 0x69, 0x2D,
+ 0xE0, 0x11, 0x83, 0xC7, 0xDE, 0x9D, 0x31, 0xD9, 0xBF, 0xEF, 0x22, 0xFB, 0x88, 0x61, 0x9B, 0xDF,
+ 0x0B, 0x57, 0x2E, 0x6A, 0x3A, 0x5D, 0x15, 0x19, 0x5E, 0x71, 0x5D, 0x1A, 0x31, 0xF2, 0xB1, 0xF5,
+ 0x6E, 0xE0, 0xFC, 0xB8, 0xC5, 0xDA, 0x6D, 0x9E, 0x13, 0xA0, 0xC1, 0x57, 0xC9, 0x74, 0xCF, 0x8B,
+ 0x49, 0x21, 0x1A, 0x5E, 0xD3, 0x33, 0x92, 0x77, 0x8C, 0xC6, 0x38, 0xC8, 0x9A, 0x35, 0xDD, 0x99,
+ 0x89, 0xEB, 0x10, 0x54, 0xB1, 0x03, 0xC0, 0x47, 0xAA, 0xE3, 0x3B, 0xEE, 0xC3, 0x29, 0x98, 0xDC,
+ 0x40, 0x39, 0x0B, 0x4F, 0x8B, 0xCD, 0x34, 0x89, 0xDC, 0x93, 0x3D, 0x98, 0xE6, 0x2A, 0xBE, 0xFA,
+ 0xAB, 0x7F, 0xA6, 0xE2, 0xC2, 0x23, 0x93, 0x67, 0x92, 0x09, 0xE9, 0xD6, 0x13, 0x0F, 0x6E, 0x2A,
+ 0x37, 0xAE, 0xEB, 0xAF, 0x19, 0x39, 0x52, 0x7D, 0xFD, 0xE9, 0x66, 0xB9, 0xAA, 0x9C, 0x44, 0x00,
+ 0xEE, 0x68, 0xF4, 0xB0, 0x89, 0x20, 0xDB, 0x64, 0x65, 0xD0, 0xC7, 0x21, 0x0C, 0xF8, 0x86, 0xC2,
+ 0xF9, 0x1D, 0x96, 0xD2, 0x1F, 0x7B, 0x16, 0x3F, 0xD9, 0x8E, 0x25, 0x9D, 0xCC, 0x65, 0xDB, 0x9F,
+ 0x59, 0x35, 0x1E, 0x5A, 0xE2, 0x11, 0x81, 0x55, 0xFE, 0xA2, 0x2E, 0xBA, 0x9D, 0xCB, 0x24, 0x60,
+ 0xB4, 0x03, 0xC5, 0x81, 0xA4, 0xBC, 0x6A, 0xF8, 0x4D, 0x2B, 0x14, 0x09, 0x4E, 0xB8, 0x84, 0xC0,
+ 0xDA, 0x98, 0x30, 0x74, 0x0F, 0xD0, 0xAD, 0x94, 0xF5, 0x61, 0xE6, 0xB1, 0x76, 0xA3, 0xA7, 0xE3,
+ 0x9E, 0x11, 0xD9, 0x8B, 0x12, 0x8F, 0xCB, 0xDD, 0x41, 0x28, 0x3F, 0x13, 0xBC, 0x1D, 0xF7, 0xA5,
+ 0x03, 0xD1, 0x84, 0xD6, 0xC7, 0x6D, 0xFC, 0x3F, 0x98, 0x5C, 0x92, 0xCA, 0x8C, 0xB4, 0x6E, 0x3C,
+ 0x3A, 0x7D, 0x11, 0x43, 0x25, 0xEF, 0x9C, 0xBD, 0x0F, 0xB2, 0xEB, 0x5D, 0x78, 0x2B, 0x05, 0x57,
+ 0x5B, 0x8E, 0x83, 0xD1, 0xDB, 0xD3, 0x5E, 0x81, 0xE4, 0xE6, 0x54, 0xB6, 0xA3, 0xEA, 0x1F, 0x4D,
+ 0xE5, 0xCB, 0x78, 0x2A, 0x8A, 0x2C, 0xF0, 0x7E, 0xC8, 0x09, 0x97, 0x9A, 0xAB, 0x58, 0xA5, 0xF7,
+ 0x32, 0x74, 0x10, 0x42, 0xF6, 0x4F, 0xEF, 0x1D, 0x15, 0x69, 0x2A, 0x47, 0x82, 0x42, 0x96, 0xC4,
+ 0x0D, 0xA8, 0xF3, 0xA1, 0x85, 0x6F, 0xBC, 0x3D, 0xD6, 0xC6, 0x46, 0x84, 0x55, 0x9A, 0x99, 0xCB,
+ 0x2E, 0x2D, 0x55, 0x07, 0xDA, 0x68, 0xE4, 0x3A, 0x31, 0x0E, 0x69, 0x63, 0x68, 0x90, 0xAE, 0xFC,
+ 0x7E, 0x7B, 0x53, 0x01, 0xA4, 0xE6, 0x14, 0xB4, 0x3D, 0x92, 0xF9, 0x6F, 0x9C, 0x0F, 0xC5, 0x97,
+ 0xAF, 0xB4, 0x4D, 0x1F, 0x83, 0x2D, 0xF8, 0x7F, 0x50, 0x30, 0x36, 0x02, 0x2C, 0x94, 0xEE, 0xBC,
+ 0xA5, 0x89, 0x7A, 0x28, 0xD9, 0x3E, 0xB1, 0x6C, 0x18, 0xFC, 0xB2, 0x4A, 0x94, 0xBD, 0x7F, 0x2D,
+ 0xA2, 0xE8, 0x1C, 0x4E, 0x51, 0x36, 0x31, 0x64, 0xF5, 0xFE, 0x5D, 0xA7, 0x9F, 0x5A, 0x93, 0xC1,
+ 0x21, 0x45, 0x32, 0x60, 0x32, 0xBD, 0xD9, 0xEF, 0xC6, 0xD7, 0x47, 0x94, 0xD0, 0xB9, 0x3F, 0x6D,
+ 0x83, 0x59, 0x8C, 0xDE, 0x7F, 0xFC, 0xD5, 0xAE, 0xBF, 0x70, 0x99, 0xED, 0xA1, 0x05, 0xF2, 0xA0,
+ 0x23, 0x71, 0x04, 0x56, 0xF7, 0xF4, 0x55, 0xA6, 0xCA, 0x4B, 0xD7, 0x98, 0xA7, 0x41, 0xB0, 0xE2,
+ 0x59, 0xBA, 0xB5, 0xE7, 0xC1, 0x2F, 0xB8, 0x7D, 0x85, 0xD8, 0x0B, 0xD7, 0xA6, 0xFB, 0x0B, 0x59,
+ 0xDB, 0x06, 0x8B, 0xD9, 0x34, 0xFF, 0x9D, 0xAD, 0x9F, 0x03, 0xCA, 0xCD, 0x7A, 0xC4, 0xE8, 0xBA,
+ 0xB3, 0xED, 0x08, 0x5A, 0x38, 0xEA, 0x84, 0xB8, 0x0C, 0xF9, 0xA3, 0x5E, 0xA2, 0x50, 0xA4, 0xF6,
+ 0x40, 0xB6, 0xA0, 0xF2, 0x60, 0x14, 0x22, 0x46, 0x61, 0x5B, 0x6C, 0x33, 0x9A, 0x4B, 0x87, 0xD5,
+ 0x98, 0x61, 0xAF, 0xFD, 0x3E, 0xA8, 0xC0, 0xFA, 0x06, 0x33, 0x63, 0x54, 0x5F, 0xC7, 0xCE, 0x9C,
+ 0x49, 0xAE, 0xB1, 0xE3, 0xFD, 0xA3, 0x08, 0xF1, 0x5A, 0xFA, 0xF6, 0x08, 0x6C, 0x3B, 0x01, 0x53,
+ 0x3E, 0x39, 0x51, 0x03, 0xCC, 0x81, 0x1B, 0xD3, 0xA2, 0xF4, 0x00, 0xF0, 0x50, 0x8B, 0x8D, 0xDF,
+ 0xEE, 0xE7, 0x5F, 0x0D, 0x4F, 0x65, 0x7C, 0x37, 0xE9, 0x73, 0xCC, 0xBB, 0xEF, 0x5C, 0xE5, 0xB7,
+ 0x17, 0x81, 0xC0, 0x92, 0xB9, 0xE3, 0x0C, 0xB1, 0x45, 0x3C, 0x2F, 0x17, 0x21, 0x37, 0x40, 0x12,
+ 0xFD, 0xD6, 0x7D, 0x2F, 0x2B, 0x17, 0x6A, 0x45, 0x47, 0x7E, 0x6F, 0x15, 0x9E, 0xE0, 0x28, 0x7A,
+ 0xC3, 0x1B, 0x8E, 0xDC, 0xAA, 0x1E, 0xE2, 0x4C, 0x71, 0x4A, 0x6D, 0x23, 0xAC, 0xA6, 0x5C, 0x0E,
+ 0x57, 0xC3, 0xC2, 0x90, 0x53, 0xDB, 0xDE, 0x89, 0x4E, 0xFF, 0xE7, 0x1C, 0x49, 0x38, 0x27, 0x75,
+ 0xFF, 0xE2, 0x4B, 0x19, 0x90, 0xD0, 0x16, 0x82, 0x90, 0xD4, 0x12, 0xC2, 0x93, 0x43, 0x86, 0xD4,
+ 0x71, 0x13, 0x34, 0x66, 0x3A, 0x07, 0x6B, 0x55, 0x48, 0xA9, 0xB7, 0x1A, 0x07, 0x61, 0x30, 0x62,
+ 0x2D, 0x08, 0x73, 0x21, 0x02, 0x24, 0x70, 0x76, 0x35, 0x1A, 0x79, 0x67, 0x1F, 0x68, 0x21, 0x73,
+ 0xBB, 0xE4, 0x09, 0x5B, 0x3F, 0x13, 0x7A, 0x41, 0x23, 0x5D, 0x28, 0x71, 0xC0, 0x02, 0x94, 0xC6,
+ 0xD4, 0x6E, 0xEC, 0xBE, 0xAD, 0xE7, 0x1C, 0xB5, 0xB4, 0xB3, 0x51, 0xE6, 0x16, 0x60, 0x20, 0x72,
+ 0x73, 0x27, 0x02, 0x50, 0xDD, 0x91, 0x1A, 0xC3, 0x76, 0x15, 0x35, 0x24, 0xC8, 0xB0, 0x2E, 0x7C,
+ 0x07, 0x95, 0xC4, 0x96, 0x5A, 0xDA, 0xD6, 0x88, 0xF8, 0x6B, 0xC5, 0xAA, 0x0C, 0x86, 0xDC, 0x8E,
+ 0xAC, 0x91, 0x6B, 0x39, 0xDE, 0xC7, 0x4F, 0x95, 0xAB, 0x75, 0x88, 0xF9, 0xC9, 0x0A, 0x95, 0xC7,
+ 0x8E, 0x05, 0xDD, 0x8F, 0xCE, 0x6C, 0xF4, 0x3E, 0xB8, 0x2F, 0xC1, 0xEA, 0xE3, 0x45, 0xF0, 0xA2,
+ 0xAE, 0xA5, 0x5D, 0x0F, 0x57, 0x74, 0x75, 0x26, 0xCB, 0x42, 0xDF, 0x99, 0x1E, 0xD2, 0x9A, 0xC8,
+ 0x6E, 0x6F, 0x57, 0x05, 0x35, 0x44, 0x27, 0x16, 0xED, 0x67, 0xDC, 0xBF, 0x47, 0xCE, 0xDF, 0x8D,
+ 0xEC, 0xD3, 0x69, 0x3B, 0xBE, 0x1A, 0xF2, 0x48, 0x19, 0xF5, 0xBA, 0x4B, 0xB5, 0x15, 0xF6, 0xA4,
+ 0x89, 0x64, 0xBB, 0xE9, 0x41, 0x9D, 0x8A, 0xCF, 0x54, 0x24, 0x26, 0x06, 0x4D, 0x93, 0x88, 0xDA,
+ 0xD0, 0x2A, 0xAC, 0xFE, 0x9D, 0x7E, 0xB5, 0x2C, 0xBA, 0x6D, 0x81, 0xE8, 0x2E, 0x7B, 0x03, 0x51,
+ 0x09, 0xEC, 0xB3, 0xE1, 0x0D, 0x67, 0x3C, 0x35, 0x22, 0x54, 0x20, 0x70, 0x88, 0x1F, 0xC1, 0x93,
+ 0xA7, 0xBD, 0x4C, 0x1E, 0x0F, 0x8A, 0xD3, 0xD8, 0x9B, 0x17, 0xDA, 0xC9, 0x62, 0xCD, 0xF9, 0xAB,
+ 0x4C, 0xFB, 0xE1, 0xB3, 0x46, 0x64, 0x74, 0x36, 0xD5, 0x8D, 0x0E, 0x87, 0x97, 0xE8, 0x29, 0x7B,
+ 0x53, 0x87, 0x82, 0xD0, 0x20, 0xFB, 0x8D, 0xA9, 0x0A, 0xAF, 0xF3, 0x58, 0xCA, 0x5F, 0xC3, 0x91,
+ 0x3D, 0x1C, 0x77, 0x25, 0x8B, 0x97, 0x4A, 0xC5, 0xB2, 0xE5, 0x01, 0xE0, 0xF2, 0x44, 0xE0, 0xB2,
+ 0x1E, 0x99, 0xD1, 0x83, 0x9B, 0x3C, 0xF1, 0x6E, 0x9E, 0x0A, 0xC2, 0xCC, 0x48, 0x82, 0x9C, 0xCE,
+ 0xBE, 0xB1, 0x59, 0x0B, 0x66, 0x56, 0x66, 0x04, 0xB9, 0x26, 0xC9, 0xEB, 0x19, 0x2C, 0x63, 0x31,
+ 0xBF, 0xA0, 0x49, 0x1B, 0x18, 0xD8, 0x96, 0x8A, 0xD4, 0x84, 0x06, 0x86, 0xCD, 0xA1, 0x3A, 0x68,
+ 0xE6, 0xEE, 0x5E, 0x0C, 0x65, 0x00, 0x33, 0x52, 0x70, 0x43, 0x65, 0x22, 0xBF, 0x48, 0xA1, 0xF3,
+ 0x39, 0x58, 0x37, 0x65, 0x52, 0x60, 0x64, 0x32, 0xFE, 0x3D, 0x95, 0xAC, 0x96, 0x52, 0x92, 0xC0,
+ 0xA8, 0xD5, 0x2B, 0x79, 0x01, 0x72, 0x25, 0x20, 0x16, 0x22, 0x62, 0x44, 0x6A, 0x7F, 0x43, 0x11,
+ 0x80, 0x7C, 0xAA, 0xF8, 0xDF, 0x7C, 0xF5, 0x2E, 0x7B, 0x80, 0xAD, 0x29, 0xB0, 0x04, 0xE2, 0xB0,
+ 0x18, 0xE9, 0xA7, 0xF5, 0x77, 0x46, 0x67, 0x14, 0xBE, 0x79, 0x91, 0xEC, 0xF8, 0x19, 0xB7, 0xE5,
+ 0x9F, 0x00, 0xC9, 0x9B, 0x14, 0xCD, 0x8F, 0x9F, 0x75, 0x5E, 0x7D, 0x27, 0x63, 0x77, 0x42, 0x10,
+ 0xAB, 0xF0, 0x0D, 0x5F, 0xBB, 0x0E, 0xE3, 0x5C, 0x26, 0x40, 0x30, 0x74, 0xD2, 0x56, 0xD2, 0x80,
+ 0x11, 0xF1, 0xB6, 0xE4, 0xE0, 0xA6, 0x10, 0xF4, 0xDE, 0x4E, 0xC6, 0x8C, 0x56, 0xCF, 0xCF, 0x9D,
+ 0x87, 0x1D, 0xCC, 0x9E, 0x04, 0x66, 0x34, 0x34, 0x5B, 0xF3, 0xFE, 0x09, 0x8F, 0xE1, 0x38, 0x6A,
+ 0xA9, 0xC4, 0x3B, 0x69, 0xB7, 0x1B, 0xFA, 0x49, 0x1D, 0xE1, 0xAA, 0x4F, 0x3B, 0xD1, 0xBC, 0xEE,
+ 0x72, 0x36, 0x12, 0x40, 0xDC, 0x2A, 0xA0, 0x78, 0xEB, 0x31, 0x8C, 0xB9, 0xCF, 0x4E, 0xD7, 0x85,
+ 0x9B, 0x44, 0x89, 0xDB, 0x86, 0x39, 0xE9, 0x6B, 0xA9, 0x37, 0xC8, 0xFB, 0x98, 0xA4, 0x6A, 0x38,
+ 0x85, 0x29, 0xFA, 0xA8, 0xB8, 0x58, 0xB6, 0x0A, 0x52, 0x72, 0x76, 0x00, 0x23, 0xD8, 0xAD, 0xFF,
+ 0xED, 0xC2, 0x79, 0x2B, 0x10, 0x62, 0x24, 0x30, 0x25, 0x0B, 0x78, 0x77, 0x76, 0xDD, 0xFD, 0xAF,
+ 0x13, 0xC5, 0x80, 0xD2, 0xEB, 0x4A, 0xF7, 0x18, 0xF1, 0xEA, 0x4D, 0xA3, 0x4C, 0x29, 0x33, 0x61,
+ 0x3F, 0x43, 0x48, 0x87, 0x57, 0x4C, 0x2F, 0x83, 0xF4, 0x1D, 0xDD, 0x3B, 0x20, 0xD7, 0xC3, 0x0C,
+ 0x0B, 0xB3, 0x8C, 0x43, 0xF8, 0x8F, 0x43, 0x40, 0xA7, 0x03, 0x90, 0x68, 0x91, 0xF6, 0x53, 0x9C,
+ 0x20, 0x3F, 0x2B, 0xE4, 0x9C, 0xFD, 0x55, 0x32, 0xFA, 0xC3, 0x0D, 0x35, 0xF3, 0xA4, 0x63, 0xAC,
+ 0xB8, 0xAA, 0x26, 0xE9, 0x34, 0xC7, 0xC7, 0x08, 0x3F, 0x3A, 0x31, 0xF0, 0xBB, 0xB9, 0x36, 0xF9,
+ 0x99, 0x1B, 0xB6, 0x79, 0x11, 0xE1, 0xC4, 0x2E, 0x7F, 0x7E, 0x35, 0xB0, 0xD5, 0xF2, 0x13, 0xDC,
+ 0x08, 0x96, 0xAA, 0x65, 0x42, 0xF3, 0x85, 0x3C, 0x97, 0x61, 0xC2, 0x58, 0x29, 0xDF, 0xC2, 0x0D,
+ 0x1F, 0xE3, 0xC8, 0x07, 0x5B, 0x59, 0x36, 0x96, 0x55, 0xC7, 0xA6, 0x9A, 0x8E, 0x01, 0xBB, 0x74,
+ 0x46, 0xAD, 0xDF, 0x10, 0x26, 0x81, 0x93, 0x4E, 0xF1, 0x00, 0xC5, 0x3E, 0xFC, 0xE8, 0x20, 0xEF,
+ 0x4D, 0x81, 0xF8, 0x37, 0x53, 0xE3, 0x84, 0x2C, 0xA4, 0x48, 0xD8, 0x6B, 0x35, 0x7D, 0x7C, 0xB3,
+ 0xB3, 0x86, 0x01, 0xCE, 0xA8, 0xCB, 0x57, 0x04, 0x70, 0xA9, 0xED, 0xBF, 0x0F, 0x89, 0xB2, 0x7D,
+ 0x3B, 0x07, 0x08, 0xC7, 0xC5, 0xB8, 0x49, 0x77, 0x28, 0x74, 0x68, 0xE7, 0xDB, 0x04, 0xEB, 0x24,
+ 0x25, 0x6A, 0x7B, 0xB4, 0xFB, 0xD9, 0x16, 0x16, 0xD3, 0x31, 0xD6, 0x1C, 0x60, 0x78, 0x2C, 0xE3,
+ 0x09, 0x87, 0xBA, 0x75, 0xF4, 0x9A, 0x5A, 0x55, 0x9C, 0xA2, 0x0A, 0x53, 0x78, 0x71, 0x3D, 0xF2,
+ 0xD2, 0x75, 0x93, 0x5C, 0x9F, 0xAB, 0x00, 0x64, 0x6A, 0x72, 0x2C, 0xA5, 0x8C, 0xEE, 0x56, 0x99,
+ 0xB1, 0xB2, 0x37, 0xF8, 0xA3, 0x27, 0xB0, 0xE8, 0x5F, 0x0D, 0x66, 0x90, 0x15, 0x6F, 0x4E, 0x81,
+ 0x27, 0x5E, 0x4D, 0x82, 0x47, 0xE7, 0x94, 0x28, 0xDA, 0xB0, 0x5E, 0x15, 0xCC, 0x41, 0xB9, 0x76,
+ 0x4C, 0x90, 0xE8, 0x27, 0xFD, 0x9B, 0x52, 0x54, 0x98, 0xB6, 0x1A, 0x57, 0xF6, 0xB5, 0x77, 0xB8,
+ 0x29, 0x27, 0x3A, 0xF5, 0x02, 0x1C, 0x2A, 0xD3, 0xD5, 0x67, 0x86, 0x1A, 0x0E, 0x33, 0x09, 0xC6,
+ 0x0E, 0xE6, 0xDC, 0x13, 0x14, 0xF5, 0xD5, 0x3A, 0x4A, 0x01, 0x7F, 0x85, 0x5D, 0x72, 0x1B, 0xD4,
+ 0xCE, 0x2C, 0xD6, 0x19, 0x76, 0xC5, 0x87, 0x0A, 0x6C, 0x24, 0x7C, 0xA3, 0x04, 0x6E, 0x5E, 0x91,
+ 0x0C, 0xD2, 0xEA, 0x25, 0x9D, 0x46, 0xEF, 0x89, 0x2A, 0x36, 0x28, 0xE5, 0x8A, 0xAA, 0x14, 0xDB,
+ 0x2E, 0x46, 0x5C, 0x93, 0x8D, 0xED, 0x54, 0x22, 0x39, 0x6C, 0x61, 0xF6, 0xA0, 0xE5, 0x71, 0xBE,
+ 0xD3, 0x64, 0x83, 0x4C, 0x9E, 0x10, 0xBA, 0xDF, 0xF7, 0x56, 0x95, 0x38, 0x8B, 0x10, 0xAF, 0x60,
+ 0xA7, 0xD6, 0x45, 0x8A, 0x19, 0x5B, 0x76, 0x94, 0x79, 0x28, 0x65, 0xB6, 0x4F, 0x26, 0x5D, 0x92,
+ 0xBE, 0xDA, 0x50, 0x9F, 0xD8, 0xBD, 0x51, 0x72, 0x1F, 0x49, 0x62, 0xD0, 0x0B, 0x22, 0x1D, 0xD2,
+ 0x1E, 0xF2, 0xD8, 0x17, 0x25, 0xD7, 0xC6, 0x18, 0x38, 0x65, 0x69, 0xF7, 0x5A, 0x8C, 0xE2, 0x2D,
+ 0xF3, 0xC4, 0x03, 0xCC, 0x63, 0x7A, 0x2D, 0xB5, 0x8B, 0xEC, 0x53, 0x44, 0x89, 0xFF, 0x42, 0x8D,
+ 0x9D, 0x5F, 0xF6, 0x39, 0xC8, 0x16, 0xEA, 0xD9, 0x33, 0xA6, 0xA1, 0xFC, 0xB1, 0xE4, 0x61, 0xAE,
+ 0x07, 0xFE, 0xCD, 0x02, 0x4C, 0x0B, 0x73, 0xC4, 0x1A, 0x54, 0x7A, 0xD5, 0x21, 0x6D, 0x78, 0xB7,
+ 0xEC, 0xB8, 0x60, 0xAF, 0x05, 0xE5, 0xD4, 0x2A, 0x54, 0xCE, 0xAE, 0x9B, 0xD4, 0x48, 0xA8, 0x67,
+ 0x70, 0x69, 0x2D, 0xE2, 0xDE, 0xFF, 0x15, 0x30, 0x3B, 0x2E, 0x21, 0xF4, 0x6D, 0xDB, 0x82, 0x4D,
+ 0xA9, 0xAF, 0x32, 0xFD, 0x4E, 0xE6, 0x9C, 0x29, 0xA3, 0x17, 0x80, 0x6C, 0xCB, 0xBF, 0x40, 0x8F,
+ 0x4E, 0xA4, 0xDE, 0x11, 0x0C, 0xE4, 0xDC, 0x2B, 0x68, 0x30, 0x6C, 0xA7, 0xAC, 0xFC, 0x64, 0xAB,
+ 0xB7, 0xC2, 0x41, 0x8E, 0xFA, 0x62, 0xAC, 0xAD, 0xC4, 0x7F, 0x8F, 0x0B, 0x62, 0x97, 0xC1, 0x0E,
+ 0xE9, 0xED, 0x30, 0xFF, 0xBE, 0x22, 0xA8, 0xED, 0xDB, 0xB9, 0x56, 0x14, 0x2F, 0x9B, 0x80, 0x4F,
+ 0x9E, 0x7A, 0xD0, 0x1F, 0x8F, 0x00, 0xBB, 0xCF, 0x23, 0xB7, 0xA0, 0xEC, 0x13, 0x2B, 0x0C, 0xC3,
+ 0xE0, 0xF5, 0x21, 0xEE, 0x23, 0x95, 0x82, 0x5A, 0xE0, 0x18, 0xCC, 0x2F, 0xD9, 0xEB, 0x06, 0xC9,
+ 0x38, 0x22, 0x2E, 0xE1, 0x7D, 0x29, 0x60, 0xE6, 0x87, 0x70, 0xC3, 0x48, 0x1C, 0x67, 0x4F, 0x80,
+ 0x7B, 0x45, 0x0A, 0xC5, 0x77, 0x7E, 0x3D, 0xB1, 0x1E, 0x40, 0x6A, 0xD1, 0x39, 0x64, 0x69, 0xA6,
+ 0x13, 0xAE, 0x89, 0x46, 0x7B, 0x6B, 0x24, 0xA4, 0x8D, 0xBA, 0x03, 0x42, 0xE1, 0xF0, 0x25, 0xEA,
+ 0x1B, 0xA7, 0x88, 0x47, 0x7C, 0x92, 0xDA, 0x5D, 0xA2, 0x1E, 0x88, 0x6D, 0x83, 0xA2, 0x15, 0xDA,
+ 0x74, 0x2D, 0x6D, 0xA2, 0xEE, 0x66, 0xBC, 0xA9, 0x35, 0xF0, 0xF1, 0xFA, 0x55, 0xC0, 0xA1, 0x6E,
+ 0xD1, 0x50, 0xB5, 0x7A, 0x79, 0x86, 0xCB, 0x49, 0xC9, 0xEA, 0x17, 0x06, 0x44, 0xC1, 0xB1, 0x7E,
+ 0x8D, 0x4B, 0xF2, 0x3D, 0x41, 0xA5, 0xD0, 0x6A, 0xB4, 0x59, 0xD9, 0x7B, 0x5C, 0xC8, 0xA0, 0x6F,
+ 0xF7, 0x80, 0x43, 0x8C, 0x10, 0x5A, 0x7E, 0x95, 0xCF, 0xBC, 0x47, 0x00, 0x0A, 0x98, 0xA6, 0x69,
+ 0x5F, 0xA1, 0xCA, 0x05, 0xD3, 0x51, 0xB6, 0x9E, 0x11, 0x97, 0xB2, 0xDE, 0xD0, 0xE3, 0x07, 0xC8,
+ 0x5D, 0x95, 0xFC, 0x33, 0x68, 0x96, 0xCA, 0x59, 0xC6, 0x3D, 0xCF, 0x09, 0xDD, 0x40, 0xA9, 0x66,
+ 0x63, 0x58, 0x0F, 0xC0, 0xE9, 0x9F, 0x42, 0x50, 0xF0, 0x09, 0xCD, 0x3F, 0xEF, 0x06, 0xDD, 0x12,
+ 0xAD, 0xEB, 0x72, 0xBD, 0xC6, 0xEE, 0x1C, 0x21, 0x57, 0x85, 0xE6, 0x98, 0x16, 0x3A, 0x18, 0xD7,
+ 0x8E, 0x6E, 0xD4, 0x1B, 0x99, 0xE9, 0x44, 0x26, 0xB0, 0x4D, 0xC9, 0x7F, 0x2B, 0x30, 0x2F, 0xE0,
+ 0x45, 0x88, 0xF9, 0x36, 0xC9, 0xAD, 0x50, 0x62, 0x49, 0x4A, 0x37, 0x86, 0xE8, 0xF8, 0x24, 0xEB,
+ 0x92, 0x37, 0x91, 0x5E, 0xB5, 0xCE, 0x4F, 0x01, 0x94, 0x2A, 0x8A, 0x5B, 0xC1, 0xE2, 0x17, 0xD8,
+ 0x9A, 0x3E, 0x90, 0x5F, 0x66, 0x6E, 0x3C, 0xA1, 0x8E, 0xF1, 0x4B, 0x41, 0x3B, 0x8B, 0x84, 0x4B,
+ 0xFB, 0xCD, 0x02, 0xCD, 0x98, 0x52, 0xFE, 0x9D, 0x65, 0xA5, 0xF4, 0xAA, 0xE0, 0x4A, 0x9E, 0x51,
+ 0x3E, 0x52, 0x58, 0x97, 0x51, 0x0E, 0x6B, 0xC1, 0xC0, 0x6B, 0x9F, 0x0F, 0xFF, 0xBD, 0x76, 0xB9,
+ 0xA3, 0x92, 0x05, 0xCA, 0x84, 0xEC, 0x5C, 0x23, 0x19, 0x1F, 0x32, 0xD6, 0xCF, 0x14, 0xEF, 0x20,
+ 0x83, 0x32, 0x85, 0x4A, 0xB4, 0x75, 0xF5, 0xBA, 0x4B, 0x08, 0x77, 0x84, 0xE4, 0xE1, 0x31, 0xFE,
+ 0xF9, 0xF9, 0x34, 0xFB, 0x82, 0xAE, 0x18, 0x61, 0x04, 0x9B, 0xAB, 0xCB, 0xE5, 0x5B, 0x8A, 0x45,
+ 0x81, 0x06, 0xB3, 0x7C, 0x71, 0x3C, 0x79, 0xF3, 0x47, 0x94, 0xE7, 0x88, 0x93, 0x19, 0xBE, 0x71,
+ 0x23, 0x1A, 0x0D, 0xC2, 0x3C, 0x7D, 0x75, 0xB2, 0x3E, 0x33, 0x39, 0xF1, 0xE2, 0xA5, 0x73, 0xBC,
+ 0x05, 0xCA, 0xFB, 0x34, 0x9A, 0xBF, 0x11, 0x70, 0x99, 0xBF, 0x12, 0x56, 0xD7, 0x1D, 0xFE, 0x31,
+ 0x02, 0xAB, 0x9D, 0x52, 0x12, 0xB7, 0x91, 0x78, 0x74, 0xBD, 0xFD, 0xBB, 0xDC, 0xFA, 0x12, 0xDD,
+ 0xDE, 0x38, 0xD2, 0x1D, 0xE7, 0x67, 0xB4, 0xA8, 0xBC, 0xD1, 0x59, 0x73, 0xDF, 0xAF, 0x44, 0x8B,
+ 0x0F, 0xF7, 0xCC, 0x03, 0xC0, 0xAC, 0x58, 0x63, 0xD1, 0x73, 0x96, 0x1E, 0x6F, 0x34, 0x6F, 0xA0,
+ 0x02, 0x2B, 0x12, 0xCB, 0x7B, 0x42, 0x57, 0xCE, 0xDE, 0xE7, 0x7A, 0x7F, 0x1C, 0x3F, 0x25, 0xC1,
+ 0xFC, 0x17, 0x2E, 0x09, 0xE9, 0xD0, 0xA4, 0xAF, 0xC4, 0xFD, 0xA1, 0xBE, 0xF7, 0x6B, 0xCE, 0x7E,
+ 0x1E, 0x95, 0xAC, 0x69, 0x7C, 0x45, 0x08, 0x96, 0xAF, 0x96, 0x55, 0x21, 0x60, 0x85, 0x59, 0x07,
+ 0xCB, 0x77, 0x4E, 0x5E, 0x21, 0x18, 0xC8, 0x0B, 0x36, 0x0F, 0x65, 0x88, 0xB9, 0xF1, 0x80, 0xAA,
+ 0x03, 0x90, 0xA9, 0x71, 0xAD, 0x94, 0xF4, 0xBB, 0x6F, 0x56, 0xB1, 0x05, 0xC9, 0xD7, 0xF0, 0xFC,
+ 0x5C, 0x97, 0xAE, 0x29, 0x0B, 0x32, 0x71, 0x98, 0x58, 0x61, 0x8C, 0x0F, 0x2E, 0x1F, 0x17, 0xD3,
+ 0x2F, 0xB7, 0x8E, 0x7A, 0xE8, 0xD1, 0xAD, 0xA7, 0x57, 0x6E, 0x5B, 0xD7, 0xED, 0xB0, 0xD4, 0xBF,
+ 0x53, 0xD4, 0xED, 0x65, 0x80, 0xB9, 0x12, 0x70, 0x64, 0x5D, 0x72, 0xCD, 0x30, 0xD0, 0x09, 0x02,
+ 0x88, 0xCE, 0xF7, 0xA4, 0xE4, 0xDD, 0x31, 0x37, 0x52, 0x6B, 0x46, 0xCF, 0x0D, 0x27, 0x34, 0xC8,
+ 0x00, 0xC6, 0xFF, 0x24, 0x82, 0xBB, 0x50, 0x30, 0xBE, 0x87, 0x4D, 0x28, 0xE0, 0x25, 0xD9, 0x27,
+ 0x5A, 0xD5, 0xEC, 0x6D, 0xB5, 0x8C, 0x6D, 0x3A, 0x2F, 0x16, 0xF5, 0x01, 0xA8, 0xE9, 0x91, 0xA3,
+ 0x7D, 0x1E, 0x27, 0x81, 0xAB, 0x92, 0xA2, 0xEB, 0x04, 0x3D, 0x45, 0x9A, 0xC5, 0x4B, 0xFC, 0x6C,
+ 0x18, 0xD7, 0xEE, 0x2D, 0x4D, 0x74, 0x63, 0xCC, 0xCA, 0xF3, 0x7F, 0x6E, 0x7D, 0x01, 0x44, 0x9E,
+ 0x2E, 0x0C, 0x35, 0xC0, 0xFC, 0xC5, 0xA8, 0xB6, 0x71, 0x48, 0x7E, 0xD4, 0x32, 0x92, 0x0B, 0x42,
+ 0xA6, 0x04, 0x3D, 0x40, 0x74, 0x4D, 0x80, 0x16, 0x33, 0x0A, 0x78, 0x90, 0x47, 0xA9, 0x7E, 0x0C,
+ 0xEB, 0x45, 0x7C, 0x4C, 0xCA, 0xF3, 0x9C, 0xB4, 0xFE, 0xC7, 0x09, 0x2C, 0x3E, 0x0E, 0x07, 0xD2,
+ 0xE7, 0x50, 0x69, 0x55, 0x57, 0x6E, 0xB8, 0x0D, 0x0F, 0x36, 0x86, 0x52, 0xFE, 0xEA, 0xC7, 0xF6,
+ 0xB9, 0xEC, 0xD5, 0xB7, 0x58, 0x61, 0x6F, 0xD5, 0x46, 0x7F, 0x43, 0xDE, 0x99, 0x82, 0xA0, 0xF9,
+ 0xE1, 0x12, 0x2B, 0x11, 0xF0, 0xC9, 0x34, 0x26, 0x65, 0x5C, 0x7B, 0xC5, 0xF4, 0x20, 0xCD, 0x36,
+ 0xED, 0x07, 0x3E, 0x08, 0x73, 0x4A, 0xDF, 0x4E, 0x29, 0x10, 0xA3, 0x51, 0x67, 0xDA, 0x5E, 0x5F,
+ 0x60, 0x1B, 0x22, 0x99, 0x38, 0x01, 0x58, 0x82, 0x81, 0xB8, 0xF8, 0xA2, 0xBD, 0xE5, 0x84, 0xBA,
+ 0x96, 0x9D, 0xA4, 0xE9, 0xA7, 0x9E, 0x3E, 0x7B, 0x24, 0x1D, 0x36, 0xC9, 0x11, 0xAA, 0x28, 0x59,
+ 0x15, 0x79, 0x40, 0x8E, 0xA9, 0x90, 0xE0, 0xAB, 0x4C, 0x75, 0x89, 0x1E, 0x5A, 0x2D, 0x63, 0x95,
+ 0x24, 0x5B, 0x62, 0x9D, 0x49, 0x70, 0x77, 0xDC, 0xC0, 0xF9, 0xB5, 0xAE, 0xA2, 0x23, 0x9B, 0x63,
+ 0x49, 0x28, 0x11, 0x83, 0xB3, 0x8A, 0x3B, 0x6A, 0x47, 0x7E, 0x4A, 0xD6, 0x68, 0x0D, 0x51, 0x87,
+ 0x8A, 0x23, 0x1A, 0x4B, 0x3A, 0x03, 0x1A, 0xC2, 0xE6, 0xDF, 0x90, 0xAD, 0xB6, 0x26, 0x8F, 0x72,
+ 0x73, 0xE6, 0xDF, 0x77, 0x76, 0x4F, 0xC2, 0x56, 0x9D, 0xA4, 0x75, 0x33, 0x89, 0x93, 0xB0, 0xF8,
+ 0xF2, 0xEF, 0xD6, 0xFF, 0x85, 0xBC, 0x0F, 0x68, 0xE9, 0xD0, 0x47, 0x75, 0xBF, 0xA7, 0x86, 0xFA,
+ 0x74, 0x1F, 0x26, 0x89, 0x14, 0x2D, 0xB7, 0x41, 0xE1, 0xD8, 0xCF, 0xF5, 0x4C, 0x6A, 0x75, 0xC4,
+ 0xE6, 0xEB, 0xD2, 0xEF, 0xF1, 0xC8, 0x3D, 0x2E, 0x55, 0x6C, 0x19, 0x97, 0xDB, 0x84, 0xE2, 0xBD,
+ 0xDB, 0xDC, 0xE5, 0xE5, 0x8B, 0xB2, 0xD1, 0xB8, 0xE0, 0xD9, 0xC6, 0xFD, 0xCD, 0xC3, 0xF4, 0xEC,
+ 0xE3, 0xFF, 0xC6, 0xFE, 0xCC, 0xF5, 0xCA, 0xE4, 0xF1, 0xC8, 0xDE, 0xF4, 0xB0, 0x70, 0x89, 0x22,
+ 0x17, 0x94, 0xAD, 0x61, 0x25, 0x1C, 0xDC, 0x1B, 0x31, 0x08, 0x3A, 0xD0, 0x40, 0xF6, 0x79, 0x54,
+ 0x07, 0x3F, 0x06, 0xDA, 0x93, 0xAA, 0x48, 0x39, 0x54, 0x6D, 0x10, 0x9F, 0x53, 0xAC, 0x6A, 0x1D,
+ 0x83, 0x22, 0x1B, 0x43, 0x3C, 0x05, 0x4C, 0x92, 0x1D, 0x24, 0xD5, 0x13, 0x00, 0xB2, 0x39, 0x50,
+ 0x04, 0x69, 0x50, 0x8F, 0xFA, 0xC3, 0xFE, 0xE6, 0xEF, 0xD6, 0x11, 0x25, 0x8E, 0xCC, 0xB7, 0xA0,
+ 0x98, 0x65, 0x5C, 0x1F, 0x43, 0x7A, 0xBD, 0x1C, 0x49, 0x70, 0x94, 0x06, 0xAC, 0xFD, 0x95, 0xB3,
+ 0x67, 0xE2, 0xDB, 0x67, 0x91, 0xA8, 0x0A, 0x79, 0x37, 0x0E, 0x6C, 0x80, 0xE1, 0x2C, 0xD8, 0x2F,
+ 0xEC, 0xBC, 0x85, 0xB2, 0xAF, 0x96, 0xB6, 0xFB, 0x1E, 0x27, 0x9E, 0x5B, 0x15, 0xBE, 0x2C, 0x49,
+ 0x8E, 0x8C, 0xB5, 0xE0, 0xA5, 0x9C, 0x7C, 0x3B, 0x5B, 0x62, 0xC7, 0x47, 0x33, 0x9B, 0x0A, 0x4A,
+ 0x9F, 0x9C, 0xA5, 0xE1, 0x19, 0x20, 0x22, 0xD9, 0xE8, 0xD1, 0x4E, 0x7D, 0x2D, 0x54, 0x14, 0x9B,
+ 0xD6, 0x72, 0x4B, 0x46, 0xB4, 0x8D, 0x64, 0x32, 0x38, 0x01, 0xBB, 0x58, 0x63, 0xCE, 0x5A, 0x4F,
+ 0xD4, 0x9F, 0xA6, 0xA9, 0x4B, 0x72, 0x35, 0x9C, 0x00, 0x39, 0x51, 0x8A, 0xDA, 0x8D, 0xE3, 0xB5,
+ 0x44, 0x86, 0xBF, 0x20, 0x54, 0x6D, 0xF3, 0x45, 0xC2, 0xFB, 0xF7, 0xEE, 0x42, 0xB4, 0x7B, 0x14,
+ 0xBF, 0xAE, 0x97, 0xF3, 0xA1, 0x98, 0x68, 0x2B, 0xA2, 0x9B, 0xC0, 0xB9, 0x41, 0xFF, 0x78, 0x5C,
+ 0x42, 0xC4, 0xFD, 0x64, 0x29, 0x10, 0x40, 0x8B, 0x5D, 0x64, 0x91, 0x17, 0x66, 0xD3, 0x5F, 0x57,
+ 0x52, 0x6F, 0x56, 0xDF, 0x8F, 0xB6, 0xC5, 0xA8, 0x21, 0x18, 0x2B, 0xD1, 0x4A, 0x3C, 0x73, 0x94,
+ 0xF9, 0x03, 0x3A, 0x18, 0x7A, 0x43, 0x5E, 0xC6, 0x02, 0x3B, 0x13, 0xCA, 0xF2, 0x76, 0xCB, 0x66,
+ 0xD8, 0x8A, 0xB3, 0xB0, 0xD3, 0xEA, 0x0C, 0x3D, 0x82, 0xBB, 0xB3, 0xEA, 0xEE, 0xFB, 0xD7, 0xF7,
+ 0x8B, 0x98, 0xA1, 0xF1, 0xCF, 0xF6, 0x81, 0xAC, 0x53, 0x6A, 0x4F, 0xC7, 0x06, 0xE4, 0x3F, 0x00,
+ 0xBC, 0xF8, 0xC1, 0xA6, 0xA6, 0x9F, 0x37, 0x73, 0x60, 0x59, 0x66, 0xDD, 0x88, 0x9A, 0xB1, 0xF0,
+ 0xC1, 0x20, 0x19, 0x03, 0xB1, 0x88, 0x79, 0x2A, 0xFB, 0xC2, 0x14, 0x34, 0x2C, 0x5D, 0x15, 0x93,
+ 0x62, 0xF6, 0xCF, 0x76, 0xF5, 0xCC, 0x29, 0x3E, 0x13, 0x2A, 0x0B, 0xC3, 0xDE, 0x99, 0xE7, 0xA5,
+ 0xCD, 0x35, 0x0C, 0x1A, 0x31, 0x08, 0xD9, 0x0A, 0x83, 0xBA, 0xBA, 0xE2, 0x8D, 0x87, 0xB4, 0xE8,
+ 0xAE, 0xBE, 0x87, 0xF2, 0x5F, 0x66, 0x30, 0x8D, 0x76, 0x4F, 0x21, 0x8C, 0x46, 0xA0, 0x7F, 0x04,
+ 0x06, 0x84, 0xBD, 0x60, 0x52, 0x6B, 0xA5, 0x15, 0x23, 0x1A, 0x69, 0x91, 0x83, 0x59, 0xBA, 0x38,
+ 0x05, 0xD2, 0xEB, 0x35, 0xEA, 0xD3, 0xEF, 0xE7, 0x16, 0x2F, 0x16, 0xDB, 0x13, 0xE8, 0x2A, 0x19,
+ 0x6E, 0xE3, 0xDA, 0x6F, 0xC3, 0xFA, 0x1D, 0x3C, 0x7D, 0x44, 0xE2, 0x44, 0xE5, 0x38, 0xDC, 0x3F,
+ 0xDD, 0x9E, 0xA7, 0xA1, 0x34, 0x0D, 0xC4, 0x12, 0xF9, 0xC0, 0x56, 0x74, 0xA3, 0x2A, 0x9A, 0x6B,
+ 0x39, 0x5E, 0x67, 0x85, 0x4E, 0x77, 0x28, 0x84, 0x0E, 0x37, 0x8F, 0x5A, 0x26, 0x97, 0x1F, 0x53,
+ 0x32, 0xB2, 0x8B, 0x62, 0x78, 0x41, 0x1C, 0x86, 0xF2, 0xCB, 0x95, 0xBC, 0x09, 0x33, 0x30, 0xD8,
+ 0xC9, 0x9A, 0xA3, 0xB1, 0x81, 0xB8, 0x1B, 0x78, 0x3C, 0x05, 0xAF, 0x48, 0xDD, 0xD2, 0xE4, 0xED,
+ 0x61, 0xA0, 0x99, 0x23, 0x02, 0x3B, 0xF0, 0x10, 0x6C, 0x55, 0xFA, 0x4D, 0xAA, 0xAB, 0x93, 0xE3,
+ 0x5F, 0xC1, 0xF8, 0x7C, 0x71, 0x48, 0x9D, 0x0E, 0xAB, 0x92, 0x41, 0x31, 0x51, 0xEE, 0x68, 0x5D,
+ 0x6B, 0xCF, 0xC4, 0xE2, 0xD8, 0xB1, 0x09, 0x80, 0x6E, 0xB2, 0xBC, 0x35, 0xC6, 0x7A, 0xDC, 0xF3,
+ 0x25, 0x1B, 0x5E, 0xAC, 0xFD, 0x44, 0xD9, 0x50, 0x28, 0x59, 0x11, 0x98, 0x61, 0x94, 0x95, 0x1D,
+ 0x4A, 0x94, 0xBE, 0xC3, 0x6E, 0xFD, 0xF3, 0x7A, 0xF9, 0xC5, 0x5C, 0xD5, 0xA0, 0x8E, 0x4E, 0x07,
+ 0xD2, 0x35, 0x87, 0x5B, 0x0A, 0x5B, 0x31, 0xB8, 0x3F, 0x1C, 0x43, 0xCA, 0x29, 0x97, 0xDE, 0x1E,
+ 0x6E, 0xD7, 0xD9, 0xE7, 0x97, 0x9B, 0x6C, 0xE5, 0x4A, 0x0B, 0x21, 0xA8, 0xE4, 0xCC, 0x48, 0x45,
+ 0x49, 0xDC, 0xF5, 0xC0, 0x39, 0xCA, 0x93, 0x1A, 0x62, 0xAB, 0xA9, 0x20, 0x73, 0xA6, 0xB5, 0x2F,
+ 0xFA, 0xE6, 0x7C, 0x73, 0x4A, 0x19, 0x33, 0xBA, 0x54, 0x46, 0x72, 0xFB, 0x98, 0x0B, 0xF3, 0x82,
+ 0x42, 0x14, 0x36, 0xCB, 0x51, 0x21, 0x10, 0x99, 0xCF, 0x28, 0x87, 0x0E, 0x5F, 0x67, 0x58, 0xEE,
+ 0x5B, 0x9D, 0xA6, 0xD2, 0x1F, 0x1A, 0x65, 0xEC, 0x42, 0xB9, 0x9B, 0x12, 0x5A, 0x37, 0x0D, 0xBE,
+ 0x48, 0xD4, 0xFC, 0xC1, 0x50, 0x30, 0x00, 0x89, 0xD6, 0x9B, 0x2D, 0xA4, 0xE1, 0x9C, 0x1D, 0x15,
+ 0x86, 0x20, 0xC6, 0x0F, 0xA5, 0x1B, 0xDE, 0x57, 0xF4, 0x66, 0xF2, 0x7B, 0x0F, 0x61, 0x0E, 0xE8,
+ 0x08, 0xD0, 0xB8, 0x81, 0x93, 0xDF, 0x2C, 0xA5, 0x46, 0x12, 0x34, 0xBD, 0xC3, 0x2A, 0x89, 0xA3,
+ 0xE9, 0xAF, 0x26, 0x60, 0x00, 0x66, 0x06, 0x8F, 0x00, 0xF9, 0x99, 0x10, 0xE7, 0xEA, 0x6D, 0x63,
+ 0xA4, 0x33, 0xF7, 0x2D, 0x86, 0x9E, 0x78, 0xF1, 0xB7, 0x9C, 0x4B, 0xC2, 0x9F, 0x6D, 0x92, 0xE4,
+ 0x3B, 0xCA, 0x91, 0xB2, 0xC7, 0xCD, 0x6A, 0xE3, 0x76, 0xBB, 0xAD, 0x24, 0x60, 0x84, 0x84, 0x0D,
+ 0x1D, 0xC9, 0xB4, 0x94, 0xDB, 0x94, 0x2F, 0xA6, 0xBC, 0x7B, 0xA7, 0x2E, 0x32, 0xB4, 0xE6, 0x3D,
+ 0xED, 0xBF, 0x32, 0x64, 0xC4, 0xE8, 0x4C, 0xC5, 0x17, 0xBC, 0xCB, 0x42, 0xEF, 0xEB, 0x64, 0x62,
+ 0x1B, 0x99, 0xE2, 0x92, 0x5B, 0x1C, 0x27, 0xAE, 0xE5, 0x67, 0xE2, 0x6B, 0xB5, 0xDA, 0x0F, 0x53,
+ 0x2E, 0xD3, 0x9D, 0xA7, 0xDA, 0x85, 0x3F, 0xB6, 0x22, 0x04, 0x46, 0xCF, 0x05, 0x56, 0x33, 0xDF,
+ 0xAB, 0xEB, 0x20, 0x22, 0xF4, 0x5C, 0xC8, 0x41, 0xCE, 0x92, 0x3C, 0xB5, 0x21, 0x96, 0xD7, 0x1F,
+ 0xD5, 0x6D, 0xD8, 0x5C, 0xC8, 0xA5, 0x0D, 0x84, 0x11, 0xF8, 0x89, 0x00, 0x31, 0x92, 0xC3, 0x1B,
+ 0x01, 0x58, 0x39, 0x88, 0x3C, 0x9F, 0xC3, 0x4A, 0x16, 0x06, 0x70, 0xF9, 0xE2, 0xBA, 0x38, 0x33,
+ 0x59, 0xDD, 0xE4, 0xD0, 0xB1, 0x4B, 0x9A, 0x13, 0x97, 0x8E, 0x79, 0xF0, 0xFC, 0xC9, 0x55, 0x40,
+ 0xA2, 0x63, 0xA1, 0x2B, 0xCD, 0xF0, 0x5D, 0xD4, 0xFA, 0x90, 0x0A, 0x83, 0xA3, 0xA8, 0x6B, 0x21,
+ 0x0E, 0x80, 0xEE, 0x87, 0x47, 0x45, 0x62, 0xEB, 0x8B, 0x2C, 0xC7, 0x4E, 0x71, 0x90, 0x81, 0x19,
+ 0xE6, 0x77, 0xF1, 0x6F, 0x6A, 0xB9, 0xB3, 0x3A, 0x06, 0xBD, 0xDB, 0x52, 0x30, 0x82, 0xD2, 0x0B,
+ 0x24, 0x13, 0x57, 0xAD, 0xB4, 0x1E, 0xCA, 0x43, 0x73, 0xAA, 0xB9, 0x30, 0x83, 0x28, 0xCB, 0xA1,
+ 0x80, 0x70, 0x90, 0x09, 0x5D, 0x6C, 0x51, 0xD8, 0x3D, 0xF3, 0xAE, 0x27, 0x26, 0xF0, 0xB6, 0x79,
+ 0x85, 0x68, 0x8D, 0x0C, 0x62, 0xB0, 0xB2, 0x3B, 0xD3, 0x8A, 0x39, 0xB0, 0x9A, 0x3D, 0xC7, 0xB4,
+ 0xD6, 0x25, 0x93, 0x5F, 0x43, 0x01, 0x22, 0xAB, 0x23, 0xBE, 0xFD, 0x74, 0xF6, 0xFE, 0x68, 0x77,
+ 0x8B, 0xB8, 0x53, 0x02, 0x11, 0x63, 0x12, 0x9B, 0xAF, 0x95, 0x5A, 0xD3, 0xE0, 0x8C, 0x0C, 0x05,
+ 0x4E, 0x84, 0xAA, 0xC7, 0x0C, 0x2B, 0x47, 0xCE, 0x3A, 0x0D, 0x57, 0xDE, 0x72, 0xB6, 0xA4, 0x3F,
+ 0xE8, 0xA7, 0x2F, 0x61, 0xA8, 0x47, 0x8F, 0x06, 0x5A, 0xB0, 0x8A, 0x03, 0xA4, 0xCE, 0x0A, 0x47,
+ 0x05, 0x48, 0x2D, 0x8C, 0x4F, 0x4C, 0x63, 0xEA, 0x3B, 0xB7, 0xEC, 0x65, 0x24, 0xC6, 0x82, 0x4F,
+ 0xCD, 0xEC, 0x41, 0x44, 0x1A, 0x4F, 0x35, 0xBC, 0xA8, 0x6B, 0xA3, 0x2A, 0x01, 0x16, 0x77, 0x9F,
+ 0xA0, 0x23, 0xE3, 0x29, 0x81, 0xFF, 0x1E, 0x97, 0x67, 0xBA, 0xBD, 0x34, 0xED, 0xDD, 0x50, 0x54,
+ 0x3A, 0xC2, 0x98, 0xB3, 0x54, 0x74, 0x40, 0xC9, 0xA2, 0x36, 0xF4, 0x7D, 0x40, 0x04, 0x24, 0x8D,
+ 0x75, 0x1E, 0x0B, 0xFC, 0xEE, 0x75, 0xFB, 0x72, 0x69, 0x4C, 0x45, 0xCC, 0xAD, 0xDF, 0x12, 0x56,
+ 0x36, 0x52, 0x04, 0xBF, 0xAC, 0x03, 0xCF, 0x46, 0x96, 0x34, 0xC2, 0x4B, 0xCC, 0x4D, 0xE1, 0xC4,
+ 0x4F, 0x8C, 0xA3, 0xC6, 0x10, 0x72, 0x02, 0x8B, 0x8A, 0x96, 0x7C, 0xF5, 0xC0, 0x0C, 0xAC, 0x85,
+ 0xFF, 0xFE, 0x61, 0x76, 0x3E, 0xAB, 0xF5, 0x7C, 0xAE, 0x2F, 0xE1, 0x68, 0x89, 0x1F, 0xF6, 0x96,
+ 0x14, 0x41, 0x35, 0x9D, 0xFF, 0x70, 0xEF, 0x66, 0x5D, 0x4E, 0x73, 0xFA, 0x4B, 0x23, 0x08, 0xAA,
+ 0xB1, 0x2A, 0xFB, 0x38, 0x08, 0x6F, 0x07, 0x8E, 0xC2, 0x8B, 0x29, 0xA0, 0xDE, 0x7F, 0xC1, 0xF6,
+ 0x68, 0x87, 0x8F, 0xE1, 0xA1, 0x5F, 0x9E, 0x17, 0x02, 0x16, 0x74, 0xFD, 0xE9, 0x9D, 0x14, 0x14,
+ 0x26, 0x53, 0x15, 0xAF, 0x8F, 0x86, 0x69, 0xE0, 0x7B, 0x18, 0x03, 0x8A, 0xA9, 0x9F, 0x56, 0x16,
+ 0xC1, 0x7C, 0xDD, 0x48, 0x85, 0xBB, 0x5E, 0xD7, 0xFE, 0x3B, 0xA5, 0x2C, 0xF1, 0x98, 0x09, 0x11,
+ 0x38, 0x82, 0xDA, 0xB1, 0x4D, 0x78, 0x55, 0xDC, 0x18, 0xF0, 0x88, 0x01, 0xE5, 0xDC, 0x59, 0x55,
+ 0xE5, 0x3F, 0xBA, 0x6C, 0x57, 0x51, 0x66, 0xEF, 0xA7, 0x27, 0xE0, 0x69, 0xFA, 0xBF, 0x25, 0x36,
+ 0xBE, 0xF2, 0x2C, 0x37, 0x2D, 0x9A, 0xD7, 0x5E, 0x10, 0x42, 0x32, 0xBB, 0xCB, 0x2B, 0x80, 0xA2,
+ 0x60, 0x07, 0x07, 0xE9, 0x56, 0x40, 0x76, 0xFF, 0x31, 0xEA, 0xBB, 0x32, 0x03, 0x20, 0x43, 0xA9,
+ 0xB7, 0x7A, 0xAD, 0x3E, 0xF5, 0x4D, 0xD8, 0x51, 0x05, 0xE8, 0x8D, 0x04, 0x7F, 0xE7, 0xF8, 0x6E,
+ 0x81, 0x78, 0x99, 0x08, 0xB3, 0x7F, 0xAC, 0x25, 0xC8, 0xD6, 0x7E, 0xF7, 0xF7, 0xEE, 0x79, 0x67,
+ 0xD3, 0x3D, 0x8E, 0x5A, 0x17, 0x13, 0x64, 0xED, 0x37, 0xAE, 0xF9, 0x70, 0x6F, 0xE3, 0xEC, 0x6A,
+ 0x44, 0x44, 0x60, 0xCD, 0x75, 0xC5, 0xD0, 0x59, 0xBD, 0xC1, 0x1C, 0x95, 0x09, 0x17, 0x7E, 0x9E,
+ 0xB8, 0xA2, 0x7A, 0x31, 0x74, 0xD4, 0xC0, 0x49, 0xC0, 0x64, 0xC4, 0x4D, 0x7E, 0xF7, 0xE9, 0x7E,
+ 0xC5, 0x6C, 0xC9, 0x4C, 0x7D, 0xCC, 0xD1, 0x58, 0xDB, 0x38, 0x83, 0x0A, 0x65, 0xD4, 0xD1, 0x5D,
+ 0x91, 0x79, 0x88, 0x18, 0x5E, 0x49, 0x77, 0xFE, 0x65, 0x55, 0x50, 0xD9, 0x37, 0xE4, 0xB3, 0x6D,
+ 0xF6, 0x76, 0xE0, 0x7F, 0xD2, 0x8C, 0x3E, 0xB7, 0xB2, 0x8D, 0x5F, 0xD6, 0xD5, 0x58, 0xED, 0xD1,
+ 0x6F, 0xDF, 0xD0, 0xE6, 0xD1, 0xA9, 0x18, 0x91, 0xD5, 0xCE, 0x7B, 0xF2, 0x88, 0x0F, 0xE7, 0x86,
+ 0xFC, 0xB6, 0x2A, 0x75, 0x45, 0x71, 0x54, 0xDD, 0x3E, 0xA6, 0xF8, 0x71, 0x91, 0x1A, 0xEB, 0x93,
+ 0x19, 0xD9, 0xA0, 0x90, 0x49, 0x3C, 0x15, 0x9C, 0x34, 0xFB, 0xAF, 0x26, 0x69, 0x95, 0x9C, 0x1C,
+ 0xB5, 0x3A, 0xEF, 0x3C, 0x22, 0xF2, 0xB0, 0x39, 0x52, 0x02, 0x30, 0xB9, 0x19, 0x13, 0x6A, 0x9A,
+ 0xAA, 0xE3, 0x29, 0x23, 0x2E, 0xBF, 0xF1, 0x78, 0x7D, 0x5C, 0x41, 0xC8, 0x1D, 0x53, 0x2E, 0xDA,
+ 0x52, 0x15, 0x27, 0xDB, 0x9E, 0x83, 0x7D, 0xF4, 0xEA, 0x2B, 0xA1, 0x28, 0x0E, 0x71, 0x1F, 0xF8,
+ 0xDA, 0x37, 0xB5, 0xEC, 0x37, 0x85, 0x68, 0x31, 0xF3, 0x37, 0x1E, 0x47, 0xFB, 0xCD, 0x16, 0x58,
+ 0xD0, 0x3D, 0x7F, 0x2C, 0x85, 0x43, 0xAE, 0x45, 0xC3, 0x65, 0x2E, 0x25, 0xB0, 0x4A, 0x5D, 0x94,
+ 0x05, 0xE8, 0x97, 0x11, 0x3A, 0x2B, 0xC6, 0x92, 0x7C, 0xCF, 0x91, 0x30, 0x14, 0x8D, 0xF9, 0xF7,
+ 0xF0, 0x1D, 0x0C, 0x7F, 0xFC, 0x34, 0xD9, 0x4B, 0x10, 0x08, 0xFD, 0x9B, 0x0D, 0x1D, 0xE0, 0x7E,
+ 0xEE, 0x03, 0xC3, 0xAE, 0x81, 0xEC, 0x01, 0xEE, 0x9D, 0xB0, 0x70, 0xAE, 0xAD, 0xCE, 0x40, 0x0D,
+ 0x3C, 0xD1, 0x74, 0xCB, 0x15, 0x5A, 0xB7, 0xCC, 0x1A, 0xC8, 0xF7, 0x51, 0x06, 0xDE, 0xEB, 0xB6,
+ 0x56, 0xBB, 0x89, 0x5C, 0xAD, 0xCB, 0x26, 0xE5, 0xBB, 0xB3, 0x56, 0x8B, 0xE0, 0x1F, 0x0D, 0x91,
+ 0xDE, 0x33, 0xA1, 0xFC, 0xEB, 0x66, 0x8B, 0x0E, 0xD1, 0x24, 0x3C, 0x76, 0x0E, 0x56, 0xE3, 0x36,
+ 0xFF, 0x12, 0xDB, 0xA7, 0x01, 0x5E, 0xB3, 0xDC, 0xAB, 0xB2, 0x46, 0x9A, 0xE5, 0x02, 0x08, 0x89,
+ 0x97, 0x7A, 0x64, 0x70, 0xC1, 0x03, 0xEE, 0x41, 0xC8, 0xAD, 0x25, 0xE6, 0x07, 0xD7, 0xEA, 0xBE,
+ 0xB5, 0x58, 0x55, 0x63, 0x6B, 0xD4, 0x39, 0x3C, 0x3A, 0x9B, 0xD7, 0x22, 0x8C, 0xB4, 0x61, 0x56,
+ 0x0B, 0xE6, 0x49, 0xC1, 0xA4, 0xCA, 0x27, 0xED, 0x7B, 0x97, 0x96, 0x6F, 0x47, 0x93, 0xAA, 0xBA,
+ 0x74, 0x99, 0xB8, 0x4F, 0x6D, 0x96, 0x7B, 0x78, 0xE8, 0xFE, 0x05, 0x95, 0x85, 0x35, 0x68, 0xDE,
+ 0xD2, 0x3F, 0x3D, 0x6C, 0x9E, 0x04, 0xE9, 0x19, 0xEF, 0xA6, 0x02, 0xCA, 0xB9, 0xCB, 0x54, 0x1C,
+ 0x83, 0x6E, 0x61, 0x61, 0x99, 0xFD, 0x10, 0xE7, 0x73, 0x17, 0x9E, 0xE7, 0x54, 0xC9, 0xB9, 0xF3,
+ 0x32, 0xDF, 0xAA, 0x1B, 0xF8, 0x9B, 0x76, 0xE0, 0xA8, 0xFA, 0x45, 0xD1, 0x5C, 0x41, 0xB1, 0x73,
+ 0x4C, 0xA1, 0x52, 0x9D, 0x05, 0xF1, 0x1C, 0x77, 0x1D, 0x90, 0xF0, 0x0E, 0x44, 0xD8, 0xA9, 0xF2,
+ 0x6A, 0x87, 0x77, 0x9E, 0x7B, 0x7F, 0x92, 0x87, 0x58, 0x8C, 0xB5, 0x57, 0xB6, 0x1C, 0x5B, 0xC4,
+ 0x8D, 0x60, 0xBF, 0xB1, 0x7D, 0x3D, 0xD0, 0xC3, 0x44, 0x1D, 0xA9, 0xDA, 0x69, 0x3E, 0x84, 0x39,
+ 0x35, 0xD8, 0xF5, 0x43, 0x44, 0xA5, 0x48, 0x62, 0x67, 0x06, 0x8A, 0xE2, 0xAB, 0x98, 0x46, 0x5D,
+ 0x9E, 0x73, 0xE5, 0xF8, 0x65, 0x2C, 0xC1, 0xCA, 0x71, 0x57, 0x9C, 0xA5, 0xFF, 0xD9, 0x12, 0x48,
+ 0xD3, 0x3E, 0x34, 0x64, 0x3F, 0x3F, 0xD2, 0x83, 0x0F, 0xD1, 0xE2, 0x5D, 0x9A, 0xF3, 0x77, 0x07,
+ 0x19, 0xF4, 0x1A, 0x80, 0x07, 0x1C, 0xF1, 0x98, 0x1B, 0xC0, 0xF6, 0x58, 0x93, 0x72, 0x7E, 0x8F,
+ 0x3E, 0xD3, 0x36, 0x8B, 0x9D, 0x52, 0xBF, 0x4C, 0xE4, 0x6E, 0x09, 0x09, 0x43, 0x87, 0xAE, 0xAA,
+ 0x4F, 0xA2, 0x19, 0xD5, 0x38, 0xC6, 0x2B, 0x7D, 0x22, 0x1A, 0xCF, 0xBB, 0x9D, 0xAC, 0x70, 0x5F,
+ 0x92, 0x7F, 0x79, 0x68, 0x4C, 0x1F, 0xF2, 0xD0, 0x11, 0x00, 0xFC, 0x92, 0x04, 0x9C, 0xE9, 0xF6,
+ 0x41, 0xAC, 0xC7, 0x05, 0x82, 0xBA, 0x57, 0xBB, 0xB8, 0xFB, 0x55, 0xC0, 0xAF, 0x8C, 0x42, 0x4D,
+ 0x38, 0xD5, 0x60, 0xDB, 0x20, 0xD7, 0x3A, 0x74, 0x75, 0x47, 0x98, 0xB1, 0x84, 0x3C, 0x69, 0xD6,
+ 0x51, 0xBC, 0xD6, 0x04, 0xA2, 0x88, 0x65, 0xA9, 0x1E, 0xD8, 0xF3, 0x45, 0x6F, 0x68, 0x82, 0x69,
+ 0xB6, 0x5B, 0x1E, 0x2B, 0xF6, 0x63, 0x8E, 0x16, 0x29, 0xD2, 0xC4, 0x78, 0x75, 0xB3, 0x98, 0xA8,
+ 0x4D, 0xA0, 0x5B, 0x95, 0xEC, 0x9F, 0x72, 0xF0, 0x37, 0x03, 0xDA, 0xB7, 0x15, 0x84, 0xF8, 0xFF,
+ 0x02, 0xEF, 0xC8, 0x49, 0xEE, 0x72, 0x9F, 0x1F, 0x8C, 0xB9, 0x61, 0xB6, 0xF9, 0x8F, 0x14, 0x18,
+ 0x2D, 0xC0, 0x6C, 0xC2, 0xB0, 0xCE, 0x23, 0xFD, 0xFB, 0xB7, 0x16, 0xCF, 0xB2, 0x08, 0x5F, 0xD4,
+ 0x20, 0xCD, 0xF9, 0x5A, 0xFE, 0xD9, 0x34, 0xA4, 0xC1, 0x25, 0x2C, 0x67, 0x6A, 0x75, 0x87, 0x71,
+ 0x0E, 0xE3, 0x54, 0xD9, 0xE1, 0x31, 0xDC, 0x53, 0xBE, 0xAB, 0x53, 0x96, 0xCC, 0xF0, 0x21, 0x52,
+ 0x7D, 0x90, 0x39, 0xC7, 0x0D, 0x4B, 0xA6, 0xC5, 0xDF, 0xF4, 0x32, 0xA8, 0x0C, 0x14, 0xE1, 0x76,
+ 0x4E, 0xA3, 0x10, 0xDD, 0x48, 0xB0, 0x5D, 0x7B, 0x4A, 0xCD, 0xA7, 0x04, 0x0A, 0x42, 0xE7, 0x26,
+ 0x8A, 0x67, 0xE0, 0xE9, 0xC5, 0xAC, 0x41, 0xEA, 0x89, 0xA1, 0x64, 0xAB, 0x18, 0x11, 0xF5, 0x67,
+ 0xFE, 0x13, 0xD2, 0xAF, 0xD4, 0xBC, 0x51, 0xEB, 0xE5, 0x66, 0x08, 0x00, 0x71, 0xA7, 0x9C, 0xB8,
+ 0x07, 0xEA, 0xD5, 0x51, 0x26, 0x95, 0x78, 0x30, 0xCD, 0xB5, 0x20, 0xFB, 0x40, 0xCC, 0xAD, 0xE2,
+ 0x36, 0xDB, 0xBE, 0x0B, 0x16, 0x0C, 0xE1, 0x99, 0x24, 0x4A, 0xC9, 0xED, 0x95, 0x24, 0x78, 0xDF,
+ 0xD6, 0x3B, 0x29, 0x7C, 0xFD, 0x8F, 0x62, 0xF1, 0x06, 0x59, 0xEB, 0xDC, 0x80, 0x28, 0x6D, 0xC6,
+ 0xB3, 0x5E, 0x03, 0x33, 0xC6, 0xFA, 0x17, 0xBF, 0x80, 0x29, 0x6D, 0x2A, 0x7D, 0x3B, 0x90, 0x28,
+ 0xF4, 0x19, 0x18, 0x6F, 0x0B, 0x09, 0xE4, 0x81, 0xA3, 0x32, 0x4E, 0x12, 0x74, 0xBA, 0x99, 0xA0,
+ 0xD8, 0x35, 0xF7, 0xAC, 0xA6, 0x27, 0xCA, 0x02, 0xE2, 0x3E, 0x0F, 0x5F, 0x7E, 0x70, 0x93, 0x60,
+ 0x47, 0xAA, 0x91, 0x55, 0x71, 0x28, 0xC5, 0xDA, 0x64, 0x4E, 0x89, 0xA9, 0xC2, 0x2E, 0x2F, 0x82,
+ 0x8E, 0x63, 0xF4, 0xF9, 0xD3, 0x45, 0xA8, 0x15, 0x94, 0x38, 0x79, 0x2F, 0xB1, 0x43, 0x5C, 0x9C,
+ 0x6B, 0x86, 0x7E, 0x96, 0xF2, 0xCC, 0x21, 0xBD, 0x60, 0x5E, 0x8D, 0xBD, 0xBA, 0x80, 0x57, 0x54,
+ 0xFC, 0x11, 0x90, 0xEF, 0x94, 0x53, 0xBE, 0x44, 0x65, 0x46, 0x88, 0xA0, 0x50, 0xDD, 0xBD, 0xE3,
+ 0x39, 0xD4, 0x69, 0xD3, 0x53, 0xF7, 0x1A, 0x27, 0x30, 0x5B, 0xDD, 0xE8, 0xCB, 0xAF, 0x26, 0x0A,
+ 0x2E, 0xC3, 0x27, 0x8A, 0x5E, 0x59, 0xB4, 0x84, 0xED, 0xE6, 0x00, 0x88, 0xA5, 0x46, 0x48, 0x8D,
+ 0xD5, 0x38, 0x62, 0x34, 0xE3, 0xDC, 0x31, 0xBC, 0x2A, 0x9A, 0xC7, 0x33, 0x52, 0x9F, 0xBF, 0xA3,
+ 0xF2, 0x1F, 0x4E, 0x3F, 0x2D, 0x79, 0x94, 0xD7, 0xC5, 0x35, 0x28, 0x73, 0xF8, 0x86, 0x15, 0x10,
+ 0xA1, 0x4C, 0x50, 0x72, 0x32, 0x91, 0x7C, 0x20, 0x55, 0x14, 0xB8, 0xC2, 0x29, 0x7A, 0xC4, 0x3D,
+ 0xA2, 0x4F, 0x1B, 0x3A, 0xF1, 0x9A, 0x77, 0xE8, 0x7A, 0x9F, 0x97, 0x66, 0xD6, 0x2B, 0x3B, 0x93,
+ 0x76, 0x9B, 0xFA, 0x0F, 0x21, 0x6C, 0x81, 0xCE, 0xB4, 0x6B, 0x59, 0x5C, 0xBD, 0xDF, 0x50, 0x0C,
+ 0xDD, 0x30, 0xEA, 0xB4, 0x13, 0x18, 0xF5, 0x88, 0x86, 0x79, 0x6B, 0x7C, 0x82, 0x6A, 0x6F, 0x86,
+ 0x25, 0xC8, 0xE4, 0x42, 0xE9, 0x8B, 0x66, 0xE1, 0x0A, 0xC9, 0xE7, 0x40, 0xCE, 0xB2, 0x23, 0x12,
+ 0xCF, 0x22, 0xB9, 0xF5, 0x6E, 0xC0, 0x2D, 0x2D, 0xB7, 0x23, 0x5A, 0x17, 0x42, 0x8E, 0xAF, 0xA2,
+ 0xB2, 0x5F, 0x0A, 0x3B, 0x5A, 0xF6, 0x1B, 0x2F, 0xA6, 0x2A, 0x4B, 0x0F, 0x36, 0xBC, 0xDB, 0xE4,
+ 0x6E, 0x83, 0x63, 0x8E, 0x4B, 0xE6, 0x0B, 0x2E, 0x62, 0x1E, 0x8F, 0xFF, 0xED, 0x8A, 0x00, 0x09,
+ 0xC2, 0x2F, 0x2C, 0x6D, 0x23, 0x81, 0x6C, 0x21, 0xC7, 0x75, 0x2A, 0x31, 0xA4, 0x4F, 0x49, 0x85,
+ 0xA4, 0x49, 0x4D, 0x6A, 0xEF, 0xC9, 0x24, 0xA5, 0x13, 0x40, 0xFE, 0xD0, 0x4D, 0x59, 0xA0, 0x7A,
+ 0x33, 0xDE, 0xA3, 0x13, 0xC4, 0x17, 0xFA, 0x50, 0xA7, 0x22, 0x4A, 0x06, 0xEC, 0x83, 0x01, 0x01,
+ 0x7B, 0xA8, 0x03, 0xF3, 0x6C, 0x9E, 0x22, 0x16, 0x52, 0xDA, 0x5A, 0xD8, 0xD8, 0x05, 0x0D, 0x85,
+ 0x4B, 0xCA, 0x51, 0xC3, 0xA0, 0xD5, 0xA5, 0x5D, 0x58, 0xD0, 0x90, 0x18, 0x6A, 0x71, 0xCB, 0x43,
+ 0xF4, 0xDF, 0xFB, 0x7C, 0xC3, 0x71, 0x62, 0xF9, 0x8D, 0x05, 0x78, 0x25, 0xD5, 0xA6, 0xA3, 0x2B,
+ 0x98, 0x74, 0x3C, 0x10, 0x4A, 0x68, 0xF2, 0xE0, 0x78, 0xF0, 0xE3, 0x4B, 0x13, 0x7F, 0xBC, 0x34,
+ 0x15, 0x41, 0x84, 0x9D, 0x39, 0xC8, 0x21, 0x40, 0x66, 0xEE, 0x2C, 0x9A, 0x6E, 0xDA, 0x64, 0xEC,
+ 0x92, 0xBE, 0xFC, 0x1A, 0x82, 0x63, 0x31, 0xEB, 0xB4, 0x3C, 0x9B, 0xFF, 0xFA, 0xF8, 0xD2, 0x5A,
+ 0x33, 0x64, 0x87, 0xBB, 0xA5, 0x85, 0xF0, 0x0D, 0xDE, 0x56, 0x66, 0x68, 0x42, 0xD1, 0x43, 0xCB,
+ 0x59, 0x99, 0x10, 0xD1, 0x02, 0x6B, 0xB9, 0xE3, 0x56, 0xDE, 0x4E, 0xC8, 0x04, 0x3A, 0xEE, 0x66,
+ 0x23, 0x75, 0x86, 0xAB, 0xBD, 0x80, 0xED, 0x08, 0x77, 0xFF, 0x34, 0x93, 0xEE, 0xE8, 0xD6, 0x5E,
+ 0x40, 0x09, 0x99, 0xC8, 0x8A, 0x62, 0x38, 0xEA, 0x1F, 0x97, 0x8B, 0x44, 0x2E, 0x75, 0x8B, 0x03,
+ 0xB2, 0xCD, 0xAF, 0x3A, 0x62, 0xE9, 0x5B, 0x61, 0x3D, 0xB5, 0xBA, 0x57, 0x84, 0x08, 0x5C, 0xD4,
+ 0xF3, 0x80, 0xA3, 0x7B, 0x8E, 0x22, 0x7C, 0xAA, 0x83, 0x0B, 0xA6, 0xF5, 0x4B, 0xD9, 0x42, 0xCA,
+ 0x60, 0x7A, 0xCA, 0xE8, 0xEA, 0xE0, 0xDA, 0x68, 0xFC, 0x74, 0x57, 0x7B, 0x82, 0x4C, 0x1E, 0x96,
+ 0x67, 0x25, 0x92, 0xEF, 0x28, 0xDC, 0x24, 0x54, 0x5A, 0xD2, 0xD2, 0x58, 0x71, 0x2D, 0x8C, 0x04,
+ 0xFB, 0x08, 0x23, 0x73, 0xC7, 0x31, 0x26, 0xB9, 0x0B, 0x83, 0x8E, 0x55, 0x76, 0xD3, 0x75, 0xFD,
+ 0x20, 0x3E, 0xCE, 0xA8, 0x47, 0x39, 0xAE, 0xB1, 0xBA, 0x32, 0x45, 0x2F, 0x17, 0xD4, 0x13, 0x9B,
+ 0x95, 0xE1, 0xA4, 0x1D, 0xC6, 0x21, 0x37, 0xA9, 0xC4, 0x4C, 0xBD, 0xA9, 0xEA, 0x43, 0x79, 0xF1,
+ 0xD0, 0xB8, 0xB8, 0x58, 0xF0, 0xD3, 0xF3, 0x5B, 0xE2, 0x6A, 0x98, 0xAA, 0x94, 0xB3, 0xF7, 0x7F,
+ 0xCC, 0x35, 0x29, 0x44, 0x0D, 0x0C, 0xD1, 0x84, 0x05, 0x8D, 0x50, 0x85, 0x92, 0xF7, 0xB5, 0x3D,
+ 0xEF, 0x0D, 0x32, 0x67, 0x69, 0xCE, 0x77, 0x46, 0xBD, 0x35, 0x1A, 0x77, 0xAB, 0x56, 0x2D, 0xA5,
+ 0xF9, 0x4A, 0x63, 0x71, 0x7C, 0x9A, 0x36, 0x12, 0x16, 0x9E, 0x0A, 0xCC, 0x8A, 0xFE, 0xA4, 0x2C,
+ 0x87, 0xB2, 0xE5, 0x0F, 0x33, 0xFF, 0x1C, 0x77, 0x5B, 0xD3, 0xDB, 0x50, 0xD0, 0xB7, 0xB7, 0x3F,
+ 0x93, 0xB7, 0xF4, 0x1B, 0xBB, 0xF6, 0x9D, 0x7E, 0x91, 0x19, 0xF5, 0xB4, 0xE8, 0xAC, 0x94, 0x1C,
+ 0x6C, 0xE6, 0x5A, 0xE4, 0x9E, 0x26, 0x68, 0xAE, 0xB6, 0x3E, 0xD9, 0xBF, 0x72, 0x78, 0xDA, 0x52,
+ 0xAA, 0x54, 0x2E, 0x22, 0x6B, 0xF8, 0x43, 0x70, 0xC7, 0x4F, 0xF6, 0xE1, 0xD7, 0x49, 0x4E, 0xC6,
+ 0x99, 0x7D, 0x34, 0x11, 0xC2, 0x61, 0x73, 0xE9, 0x1A, 0x92, 0x96, 0x5C, 0xA3, 0xE4, 0x97, 0x1F,
+ 0x30, 0x2F, 0xCF, 0xB8, 0x79, 0xCA, 0x63, 0x42, 0xC9, 0x41, 0x28, 0x31, 0x6D, 0x8F, 0x32, 0xBA,
+ 0xFD, 0x5E, 0x73, 0x75, 0xE2, 0xE1, 0xD3, 0x69, 0xB0, 0x38, 0x8F, 0xEF, 0xCF, 0x40, 0x5F, 0xD7,
+ 0x96, 0xAA, 0xEC, 0x1E, 0x5D, 0x0A, 0x87, 0x82, 0xD9, 0x51, 0x39, 0x30, 0x4D, 0x9D, 0x00, 0x88,
+ 0xA1, 0x97, 0xE6, 0x29, 0x9C, 0x10, 0x5C, 0x98, 0x3E, 0xB6, 0xF1, 0x1F, 0x19, 0x22, 0xEB, 0x63,
+ 0xBF, 0x58, 0x37, 0x37, 0xCB, 0x70, 0x6B, 0xF8, 0xC5, 0x4D, 0xB4, 0xA1, 0x03, 0xC4, 0x17, 0x9F,
+ 0x04, 0x59, 0x8D, 0x8C, 0x2C, 0x9C, 0x60, 0x14, 0x8A, 0x02, 0x27, 0x7D, 0x01, 0x2B, 0xFA, 0x72,
+ 0x73, 0x20, 0x83, 0xFB, 0xE0, 0xD7, 0xE7, 0x5F, 0xA5, 0x2D, 0x83, 0xF6, 0x5F, 0xC9, 0x46, 0xCE,
+ 0x49, 0x88, 0x11, 0xC1, 0x45, 0x0F, 0x9A, 0x87, 0xA8, 0x20, 0x16, 0x6E, 0x11, 0x90, 0x51, 0xD9,
+ 0x36, 0x79, 0x9F, 0xBE, 0x66, 0xA9, 0x1F, 0x21, 0x86, 0x0E, 0xBB, 0xED, 0x0E, 0x67, 0xB9, 0x31,
+ 0x57, 0x47, 0xC0, 0xDF, 0x42, 0x69, 0xFB, 0xE1, 0xF5, 0x7D, 0xD6, 0xF3, 0xE2, 0xF1, 0xC3, 0x4B,
+ 0xC2, 0xEB, 0xF9, 0x4A, 0x12, 0x6F, 0xAD, 0xE7, 0xC6, 0x4E, 0xFF, 0xE9, 0xA7, 0x4F, 0x38, 0xB0,
+ 0x01, 0x44, 0x95, 0x89, 0x53, 0x7D, 0xFE, 0xF5, 0x02, 0x8A, 0x0F, 0xDD, 0x2A, 0xDE, 0x24, 0xAC,
+ 0x6D, 0xEF, 0x52, 0xE5, 0x8C, 0x14, 0x48, 0x9C, 0x76, 0xFE, 0x3D, 0x9B, 0x3B, 0xDF, 0x34, 0xBC,
+ 0x45, 0x14, 0x81, 0xCD, 0xD6, 0x25, 0x23, 0xAD, 0x8F, 0x07, 0x3A, 0x65, 0xC9, 0x04, 0x1D, 0x95,
+ 0xAC, 0x02, 0x7E, 0x24, 0xEB, 0xF0, 0xCB, 0x78, 0xBE, 0x36, 0x51, 0x3F, 0xF9, 0xAD, 0x84, 0x0C,
+ 0x8E, 0x33, 0x6D, 0x06, 0xF2, 0xE5, 0xC7, 0x6D, 0x5E, 0xD6, 0xC6, 0x48, 0x12, 0xC5, 0x07, 0x8F,
+ 0x08, 0xC5, 0x1D, 0x80, 0x1C, 0x18, 0xD4, 0x90, 0x3B, 0xB3, 0xEC, 0x07, 0x29, 0x8B, 0x72, 0xFA,
+ 0x2B, 0xFD, 0x06, 0xA3, 0x94, 0x11, 0x55, 0x99, 0x7C, 0xF4, 0xF7, 0x5B, 0xE4, 0xB5, 0x81, 0x09,
+ 0x6A, 0xB0, 0x0A, 0xE2, 0x54, 0x1B, 0x9F, 0x93, 0x50, 0xD8, 0x18, 0x98, 0x49, 0x36, 0xAF, 0x27,
+ 0xEC, 0x46, 0x7A, 0x64, 0xB6, 0xA7, 0xC1, 0x2F, 0xCF, 0x47, 0x7E, 0x61, 0x9E, 0xEE, 0xA0, 0x28,
+ 0x1C, 0xC0, 0x0C, 0x94, 0xA8, 0xD4, 0xAC, 0x5C, 0x06, 0x8E, 0x1B, 0xCD, 0x3C, 0x21, 0xCD, 0x45,
+ 0xE8, 0x52, 0x6A, 0x60, 0x60, 0xDF, 0x6F, 0x57, 0xE3, 0x6B, 0x91, 0xA2, 0x1D, 0x89, 0x44, 0xCC,
+ 0xED, 0x4F, 0x72, 0x65, 0xD7, 0x35, 0x32, 0xBD, 0x74, 0xFC, 0x7F, 0xDB, 0x7B, 0x70, 0xDB, 0x53,
+ 0xB8, 0x07, 0x6F, 0x30, 0x3E, 0xAE, 0x40, 0x26, 0xB1, 0x39, 0x86, 0xE7, 0xBC, 0x13, 0x7F, 0xF7,
+ 0x65, 0x67, 0xD2, 0xED, 0xB9, 0xC0, 0xA9, 0x48, 0xA6, 0x2E, 0xC8, 0xBE, 0xB1, 0xB0, 0xD1, 0x59,
+ 0xA2, 0xDC, 0xAE, 0x2A, 0x97, 0x37, 0x70, 0xBF, 0x5D, 0xD5, 0x8D, 0x00, 0x0C, 0x88, 0x54, 0xDC,
+ 0x4D, 0x9C, 0x01, 0xC5, 0x24, 0x9D, 0x69, 0x15, 0x7A, 0xF2, 0xA1, 0x0B, 0xC2, 0xE3, 0xF1, 0x79,
+ 0xDD, 0x2D, 0x20, 0x55, 0x09, 0x4C, 0x95, 0xC4, 0x29, 0xA1, 0xBF, 0x46, 0xDD, 0x14, 0x19, 0x91,
+ 0xF2, 0x89, 0xAB, 0x7A, 0xA7, 0xB3, 0xC4, 0x3B, 0x2A, 0xA2, 0xF4, 0x0E, 0x1E, 0xDC, 0x12, 0x9A,
+ 0x3C, 0xB3, 0x5F, 0xB4, 0x38, 0xD8, 0x30, 0x50, 0xFE, 0x76, 0x15, 0x3B, 0xCE, 0xFA, 0xE4, 0x6C,
+ 0x0E, 0x93, 0x4D, 0x86, 0xB2, 0xE7, 0x85, 0x6F, 0x55, 0xDD, 0x05, 0x80, 0xFC, 0xBC, 0x90, 0x18,
+ 0x82, 0xAF, 0xFD, 0x0A, 0x26, 0xAB, 0x5D, 0x23, 0xAD, 0x25, 0x0B, 0x76, 0x06, 0xD5, 0x03, 0x8B,
+ 0x3F, 0xF8, 0x17, 0xB7, 0x96, 0x27, 0x61, 0xAF, 0x47, 0xCF, 0x56, 0xC1, 0x81, 0x19, 0x48, 0xC0,
+ 0x2E, 0xE0, 0x1E, 0xA6, 0xD0, 0x53, 0x53, 0xDB, 0x3A, 0xB2, 0xE5, 0x0F, 0xB5, 0x1B, 0x7E, 0xF6,
+ 0xEA, 0x10, 0x2A, 0x62, 0x3D, 0x88, 0x65, 0x00, 0xE6, 0x6E, 0x8C, 0xBA, 0xA4, 0x1A, 0x6E, 0xE6,
+ 0x4F, 0xDE, 0x41, 0xC7, 0xB1, 0xC1, 0xA0, 0x49, 0x4A, 0xC2, 0xC3, 0x59, 0xCC, 0x15, 0x09, 0x81,
+ 0x9B, 0x3F, 0x74, 0x13, 0x4E, 0x28, 0xB6, 0xA0, 0x2C, 0xA4, 0xA2, 0x5E, 0x00, 0x91, 0x41, 0xC9,
+ 0x2F, 0xE9, 0x16, 0xA7, 0x35, 0x89, 0x6C, 0x01, 0xBB, 0x33, 0x4C, 0x27, 0x2B, 0x64, 0x9F, 0x17,
+ 0x10, 0xF5, 0x49, 0x2C, 0xFA, 0x2A, 0x46, 0xA5, 0x3A, 0xB1, 0x42, 0xFE, 0x2F, 0x93, 0xF5, 0x13,
+ 0x72, 0x41, 0xFD, 0xFA, 0x5B, 0x51, 0xE7, 0x7F, 0x43, 0x5F, 0xD5, 0x69, 0xF1, 0x4D, 0x00, 0x38,
+ 0x4E, 0x84, 0x38, 0x03, 0x5A, 0x59, 0xE6, 0x76, 0xDE, 0x9F, 0x88, 0x34, 0x00, 0xBC, 0x7E, 0xB7,
+ 0x25, 0x21, 0x9D, 0xCD, 0x13, 0xD5, 0xAF, 0xB3, 0x3D, 0xD0, 0x24, 0x98, 0x67, 0xDB, 0x71, 0xDF,
+ 0x73, 0x51, 0xED, 0xEB, 0xF5, 0xF2, 0x49, 0x72, 0xA5, 0x45, 0x29, 0x95, 0x26, 0x9A, 0x7D, 0x92,
+ 0x7A, 0x40, 0xFC, 0xF3, 0x81, 0xB4, 0x3D, 0x40, 0x6B, 0xF6, 0x54, 0xE8, 0x10, 0xAC, 0x7F, 0xA6,
+ 0x29, 0x60, 0xDC, 0x80, 0x35, 0xD6, 0x89, 0x96, 0xE4, 0x16, 0x3B, 0x87, 0xFE, 0x42, 0xD8, 0xEF,
+ 0x99, 0xEC, 0x50, 0xBC, 0x79, 0x42, 0xC5, 0x4E, 0x12, 0x18, 0xC3, 0x7F, 0x6D, 0xD1, 0xB1, 0x15,
+ 0xCF, 0x9C, 0x20, 0x9A, 0x61, 0xC3, 0xDD, 0xD7, 0x6A, 0xE7, 0x44, 0xF8, 0x7C, 0xC0, 0xB8, 0x0D,
+ 0x3B, 0x52, 0xEE, 0xA0, 0x0A, 0x5C, 0xB6, 0x23, 0x5F, 0x06, 0x90, 0x2C, 0x8A, 0x36, 0x9E, 0xDD,
+ 0x65, 0x23, 0x9F, 0x8F, 0x4F, 0x40, 0xF3, 0x7A, 0x6F, 0xB2, 0x14, 0xA8, 0x9F, 0x23, 0x87, 0xD1,
+ 0x44, 0xB3, 0x0F, 0x3E, 0x9E, 0x6D, 0x22, 0x86, 0x22, 0xAC, 0x47, 0xFB, 0x77, 0xCB, 0x70, 0xCE,
+ 0xB6, 0x0B, 0xB7, 0x74, 0x12, 0xDD, 0xAE, 0xBA, 0xDA, 0xDB, 0xC8, 0x74, 0xBF, 0x03, 0xD4, 0xA2,
+ 0xCA, 0xCC, 0x70, 0xCF, 0xE5, 0xF3, 0x59, 0x63, 0x64, 0x9E, 0x33, 0x8F, 0x3A, 0x86, 0xEC, 0x1F,
+ 0x16, 0x83, 0x3F, 0x5C, 0xE7, 0xB3, 0x5B, 0x21, 0xBF, 0x6C, 0x1A, 0xA6, 0xB5, 0x09, 0x14, 0x68,
+ 0x0B, 0xD6, 0x6A, 0x14, 0x7C, 0x5A, 0xC0, 0x53, 0x83, 0x95, 0xDF, 0x63, 0x11, 0xAD, 0x77, 0xAF,
+ 0x68, 0x72, 0xCE, 0xD3, 0x06, 0xCC, 0xBA, 0xBF, 0xA9, 0x08, 0x68, 0xD4, 0xA3, 0x1F, 0x45, 0x2F,
+ 0x0E, 0x86, 0x3A, 0x41, 0x0D, 0x04, 0xB1, 0x7C, 0xC6, 0x82, 0x8D, 0x31, 0x2A, 0x96, 0xED, 0x0E,
+ 0x6E, 0x04, 0xB8, 0xA3, 0xC9, 0x30, 0x75, 0x8C, 0xFC, 0x0B, 0x3E, 0x82, 0xC1, 0x7D, 0x52, 0x5A,
+ 0x1E, 0x82, 0x3E, 0x55, 0x75, 0xD2, 0xC9, 0xD2, 0x05, 0x6D, 0xA1, 0x1D, 0xCE, 0x72, 0x8A, 0x8D,
+ 0x79, 0x66, 0xDA, 0xD6, 0xCA, 0x78, 0x76, 0xC7, 0x63, 0xFF, 0x55, 0xE9, 0x1C, 0xA0, 0xEF, 0x3A,
+ 0x62, 0x45, 0xF9, 0xEE, 0xC3, 0xF0, 0x7F, 0x46, 0x3F, 0xE4, 0x12, 0xAE, 0xEF, 0x53, 0xD1, 0xF7,
+ 0x1A, 0xC2, 0x7E, 0x11, 0x22, 0x8F, 0x9E, 0xD8, 0x5B, 0x42, 0xD0, 0x6C, 0xEA, 0x56, 0xC9, 0xEA,
+ 0x09, 0xE0, 0x5C, 0x20, 0x37, 0x96, 0x8B, 0xD4, 0x2C, 0xD5, 0x30, 0x8C, 0x69, 0xD5, 0xA1, 0x01,
+ 0x36, 0x03, 0xBF, 0xFC, 0xC6, 0xE8, 0x7A, 0x5B, 0xFF, 0x2E, 0x18, 0xA4, 0x5A, 0xE6, 0xBB, 0x28,
+ 0xE5, 0x2B, 0x97, 0x07, 0xF7, 0xB2, 0x4B, 0x30, 0x01, 0x29, 0xE1, 0x5D, 0x73, 0xCF, 0x60, 0xDA,
+ 0x9D, 0xAC, 0x10, 0xF8, 0xBD, 0x76, 0x01, 0xBE, 0x8D, 0xEC, 0xA8, 0x14, 0x56, 0xEA, 0x2B, 0xB4,
+ 0xF1, 0x6F, 0xD3, 0x57, 0xAF, 0x37, 0x13, 0xED, 0xB9, 0x1C, 0x6C, 0xD0, 0x4A, 0xF6, 0xBA, 0x39,
+ 0xFB, 0x58, 0xE4, 0x6A, 0x7B, 0x02, 0xC7, 0x0C, 0x89, 0xA8, 0xE8, 0x54, 0xD7, 0x6B, 0x03, 0x1D,
+ 0xA4, 0x39, 0x85, 0x54, 0xBB, 0x26, 0x07, 0xE8, 0x97, 0xC5, 0x9B, 0x27, 0xAD, 0x11, 0x95, 0xF1,
+ 0xE7, 0x1D, 0xA1, 0x33, 0x05, 0x84, 0xB9, 0xF4, 0x92, 0x90, 0xCB, 0x77, 0x28, 0x94, 0xAD, 0x4C,
+ 0x75, 0x27, 0x9B, 0x9B, 0xDD, 0x21, 0x61, 0x89, 0x0A, 0x05, 0xC6, 0x7A, 0x3F, 0x83, 0xF4, 0x02,
+ 0x53, 0xD1, 0x6D, 0x4B, 0xA2, 0xAF, 0x1E, 0x78, 0xC5, 0xA7, 0xAB, 0x17, 0x79, 0xC5, 0xA0, 0x10,
+ 0xE9, 0x6A, 0xD6, 0x4A, 0x4E, 0x48, 0xF2, 0x73, 0x19, 0x34, 0xE4, 0x58, 0x94, 0x28, 0x4F, 0x12,
+ 0x88, 0xF8, 0x44, 0xB9, 0xD8, 0x39, 0x64, 0x94, 0x54, 0x2A, 0xB7, 0x0B, 0x6E, 0xD2, 0xF9, 0x5E,
+ 0x82, 0xCF, 0x73, 0x84, 0xC2, 0xF8, 0x7E, 0x4F, 0x7B, 0xE2, 0x50, 0xEC, 0x85, 0x39, 0x46, 0x0A,
+ 0xAB, 0x5E, 0xE2, 0x3C, 0x18, 0x1D, 0xA4, 0x70, 0x55, 0x3B, 0xA7, 0x1B, 0x5C, 0xE0, 0xEB, 0x7E,
+ 0x17, 0x93, 0x2F, 0x4D, 0x33, 0x86, 0x8F, 0xC0, 0x8B, 0x9C, 0xDE, 0x62, 0x31, 0x8D, 0x24, 0xDC,
+ 0x4A, 0xC4, 0x78, 0x47, 0x2A, 0x0F, 0x96, 0x50, 0x85, 0xE5, 0xA9, 0x15, 0x20, 0x9C, 0x2D, 0xC4,
+ 0x50, 0xF7, 0x4B, 0x6E, 0xB3, 0xA6, 0x0F, 0x60, 0x38, 0x85, 0x74, 0xC8, 0xF9, 0x45, 0x80, 0xB0,
+ 0x90, 0xFD, 0x41, 0xA4, 0x24, 0xDF, 0x98, 0x8E, 0xD0, 0xE6, 0xFF, 0x43, 0xFA, 0x46, 0xC8, 0xFB,
+ 0x3E, 0x02, 0xBE, 0xF5, 0xF4, 0xFA, 0x48, 0x7B, 0xDB, 0xCA, 0xD8, 0x64, 0xB4, 0x08, 0x1C, 0x61,
+ 0x07, 0x97, 0x2B, 0x59, 0x48, 0x18, 0xF4, 0x25, 0xA8, 0x19, 0x78, 0xC4, 0xCA, 0x76, 0x9A, 0x99,
+ 0x81, 0xE9, 0x55, 0xA1, 0x2D, 0x57, 0x91, 0x0F, 0x34, 0xC8, 0x35, 0x89, 0xD9, 0x65, 0xD3, 0xC3,
+ 0x4D, 0xA2, 0x1E, 0x26, 0xDE, 0x69, 0x62, 0xC2, 0xE1, 0x43, 0x6B, 0xD7, 0xDB, 0x67, 0x93, 0x81,
+ 0x56, 0x81, 0x3D, 0x1E, 0x1C, 0x0D, 0xA0, 0x64, 0x13, 0x09, 0xD3, 0x6F, 0x43, 0xFF, 0x32, 0xB8,
+ 0xC0, 0xFB, 0x47, 0xF2, 0xF3, 0xA2, 0x4F, 0x24, 0xCD, 0xAE, 0xAA, 0x16, 0x17, 0xAB, 0x27, 0xF9,
+ 0xDC, 0xBE, 0x02, 0xAB, 0x01, 0x94, 0xBD, 0xE0, 0xCE, 0x8B, 0x8C, 0x30, 0x99, 0x25, 0xD7, 0x87,
+ 0x47, 0x95, 0x29, 0x1B, 0xE3, 0xA3, 0x5F, 0x35, 0x31, 0x9D, 0x65, 0xD9, 0x1B, 0xA7, 0xB7, 0x65,
+ 0xAA, 0x4E, 0xF2, 0x2D, 0xEB, 0x23, 0x57, 0xBD, 0x4B, 0x56, 0xD4, 0x68, 0x7D, 0xC1, 0xB0, 0x04,
+ 0xAE, 0x0E, 0xB2, 0x69, 0x32, 0x8E, 0x8E, 0xC9, 0x1F, 0x44, 0x92, 0x2E, 0x70, 0xCC, 0x28, 0x91,
+ 0xF6, 0x09, 0xB5, 0x36, 0x0E, 0x4C, 0xB2, 0x37, 0x3C, 0xC1, 0x34, 0x88, 0xE2, 0x5E, 0x49, 0x62,
+ 0xCB, 0xDC, 0x60, 0xDE, 0x3B, 0x06, 0x87, 0x48, 0x33, 0xA9, 0x53, 0xEF, 0x32, 0x8E, 0x6C, 0x97,
+ 0xC7, 0x9D, 0x21, 0x93, 0xF0, 0xEA, 0x4C, 0x6F, 0x91, 0xB5, 0xED, 0x51, 0x2C, 0x90, 0xBD, 0x58,
+ 0xE2, 0x4D, 0xF1, 0x66, 0x52, 0xD9, 0xEE, 0xFE, 0xF7, 0x27, 0x19, 0xA5, 0xB8, 0x04, 0x8C, 0xFD,
+ 0xFD, 0x2E, 0x92, 0x1A, 0xB0, 0xEE, 0x0C, 0x2B, 0x20, 0x98, 0x71, 0xCD, 0xE5, 0x59, 0x11, 0x3D,
+ 0xE3, 0x5D, 0xE1, 0x77, 0x57, 0xC1, 0xEB, 0xE3, 0x0C, 0x75, 0xB0, 0x0C, 0x2D, 0x91, 0xB5, 0x51,
+ 0x74, 0x37, 0x8B, 0x8A, 0xB9, 0x66, 0x05, 0xAA, 0xAC, 0x5D, 0x38, 0x84, 0x80, 0x3C, 0x5E, 0x17,
+ 0xE0, 0x7B, 0xC7, 0x52, 0x1A, 0x5D, 0xA6, 0x32, 0xFE, 0x3F, 0x08, 0xB4, 0x0A, 0xB6, 0xBE, 0x7D,
+ 0x98, 0xFC, 0x40, 0xAD, 0xB1, 0xE6, 0x0D, 0x22, 0x9B, 0x88, 0xDA, 0x66, 0xBC, 0x00, 0x9C, 0xE9,
+ 0x9F, 0x9A, 0x26, 0xCC, 0xA3, 0xA7, 0x1F, 0x71, 0x41, 0x6B, 0xE3, 0x5F, 0xCD, 0x71, 0xC2, 0xC6,
+ 0x58, 0xF6, 0x4A, 0x67, 0xBA, 0x2E, 0x06, 0xE1, 0x2F, 0xF0, 0x16, 0xAA, 0xD2, 0x6E, 0x1B, 0x00,
+ 0x67, 0x15, 0xA9, 0xBB, 0x4C, 0x08, 0xF0, 0x31, 0xBC, 0x49, 0x3C, 0x80, 0x63, 0xDF, 0x61, 0xCB,
+ 0x35, 0x25, 0x99, 0xD9, 0x07, 0xC4, 0xBB, 0xB6, 0x7C, 0x83, 0x36, 0x8A, 0xA5, 0x19, 0x15, 0x79,
+ 0xD4, 0x06, 0x83, 0x79, 0xA2, 0x5D, 0x8F, 0xD1, 0x62, 0x5B, 0xB0, 0x17, 0xE2, 0x00, 0x30, 0x1E,
+ 0x0D, 0xDF, 0xF7, 0xD4, 0xC2, 0x80, 0x52, 0x6C, 0xFB, 0xF2, 0x29, 0x27, 0xD1, 0x29, 0x03, 0x04,
+ 0xA8, 0x7A, 0x39, 0xBF, 0x7C, 0x53, 0x81, 0x01, 0x50, 0x49, 0x82, 0x37, 0x78, 0x7B, 0xAA, 0xFF,
+ 0xC5, 0x17, 0x9B, 0x70, 0xDB, 0x2A, 0xF8, 0xDF, 0x7B, 0xD2, 0xA9, 0x87, 0xB5, 0x0A, 0x67, 0x43,
+ 0x9A, 0x48, 0x19, 0xAD, 0x6D, 0x43, 0x91, 0x00, 0x90, 0x6D, 0x42, 0xD3, 0xDE, 0xFE, 0x0C, 0xDC,
+ 0x71, 0xA3, 0x4D, 0x12, 0xA5, 0xA4, 0x76, 0x2F, 0x8A, 0xAC, 0x58, 0x08, 0xE9, 0xC3, 0x3B, 0xD6,
+ 0x8D, 0x5F, 0x57, 0xF4, 0xE0, 0x5F, 0x8D, 0x91, 0xEA, 0xFB, 0x38, 0x3F, 0xF7, 0x0C, 0x25, 0x07,
+ 0x60, 0xB2, 0x55, 0x1B, 0x73, 0x10, 0xC2, 0x4D, 0x06, 0x1C, 0xD4, 0x34, 0x4C, 0x0D, 0x9E, 0xBD,
+ 0xE3, 0x31, 0xBE, 0x73, 0xE9, 0x5E, 0x8C, 0x99, 0xBB, 0xF6, 0x69, 0x63, 0xDD, 0xB5, 0x0F, 0x94,
+ 0x6D, 0xBF, 0xC0, 0x83, 0xCC, 0x78, 0xAA, 0x9A, 0x49, 0xC0, 0x9B, 0xA7, 0x98, 0xEC, 0x4A, 0x88,
+ 0x2F, 0xFD, 0xC6, 0xC7, 0x04, 0x9F, 0x4D, 0xB5, 0x96, 0x3D, 0x44, 0x85, 0x84, 0x61, 0x56, 0x19,
+ 0xB7, 0x65, 0xFF, 0x66, 0x4E, 0x27, 0xF5, 0x47, 0x54, 0x59, 0x86, 0x23, 0xA7, 0x59, 0x75, 0x02,
+ 0x3E, 0xEC, 0xDE, 0xCE, 0x5E, 0x8C, 0x5E, 0xFC, 0x00, 0x4C, 0xD2, 0x62, 0xB1, 0x1E, 0x63, 0x53,
+ 0x2D, 0xFF, 0x84, 0x87, 0x8F, 0xC1, 0x13, 0x60, 0x65, 0x03, 0xB7, 0x48, 0xCF, 0xE6, 0x1D, 0xD5,
+ 0x0E, 0xDC, 0xBC, 0x9C, 0xA1, 0x0B, 0xD9, 0x84, 0x6C, 0x8B, 0xBE, 0xC9, 0xDB, 0xE3, 0x09, 0xC4,
+ 0x40, 0x92, 0x26, 0x48, 0x8D, 0x2C, 0xFE, 0x8F, 0xBC, 0xAE, 0x6E, 0x3C, 0x24, 0xB2, 0xF6, 0x6A,
+ 0x4C, 0x9E, 0xBA, 0xD8, 0x60, 0xED, 0x3F, 0xA3, 0x1A, 0x8D, 0xC8, 0xB9, 0x6B, 0x21, 0xB9, 0xB6,
+ 0x11, 0xC3, 0x7A, 0x45, 0xDF, 0x85, 0x57, 0x74, 0xF8, 0xBA, 0x2A, 0x6C, 0x08, 0x5D, 0xDA, 0xA9,
+ 0xC6, 0x14, 0xD0, 0x38, 0xEE, 0xA7, 0x75, 0x67, 0x73, 0x52, 0xA1, 0x0F, 0xFA, 0x99, 0x28, 0x9F,
+ 0xD8, 0x0A, 0x1F, 0xE9, 0xF2, 0x19, 0xCB, 0xC5, 0xB8, 0xBE, 0x6A, 0x28, 0xBB, 0xD4, 0x69, 0x93,
+ 0x84, 0x56, 0xD6, 0x7C, 0x03, 0x66, 0xB4, 0x4B, 0x7A, 0xDA, 0xA8, 0x8E, 0x28, 0x2E, 0xFA, 0xFA,
+ 0x16, 0xC4, 0x25, 0x1D, 0x86, 0xC0, 0x12, 0x68, 0x46, 0x18, 0x94, 0x70, 0x2F, 0x71, 0xFD, 0xA2,
+ 0xEF, 0x3D, 0x22, 0xE3, 0xDA, 0x91, 0x43, 0x65, 0xAB, 0xF7, 0x79, 0x72, 0xB3, 0x5C, 0x61, 0x13,
+ 0x89, 0x5B, 0x43, 0xE4, 0x11, 0x20, 0xF2, 0x1F, 0xA3, 0x77, 0x71, 0xFA, 0x68, 0x6A, 0xBA, 0xFE,
+ 0x97, 0x45, 0x8C, 0x35, 0x0E, 0xC8, 0x1A, 0xE8, 0x04, 0x5C, 0xD6, 0x76, 0x33, 0xFC, 0xE1, 0x33,
+ 0x51, 0x83, 0x3E, 0x41, 0xC4, 0xC2, 0x10, 0x28, 0x4F, 0x90, 0x9D, 0xF1, 0x03, 0x9E, 0xD1, 0x61,
+ 0x39, 0xEB, 0x81, 0x96, 0x2C, 0x17, 0xC5, 0x15, 0xEB, 0xF3, 0x39, 0x36, 0xBC, 0x8B, 0x6E, 0xCB,
+ 0x26, 0xF4, 0x47, 0x4F, 0xB7, 0xE2, 0x30, 0x7B, 0xF2, 0x7A, 0x20, 0xA6, 0xD0, 0x20, 0x02, 0x0C,
+ 0xFE, 0x2C, 0x3A, 0xEA, 0x78, 0xFC, 0x2E, 0xAA, 0x52, 0x09, 0x80, 0x75, 0x5D, 0x15, 0x8F, 0xB4,
+ 0x48, 0x9A, 0xAE, 0xC8, 0xCF, 0x2E, 0xFC, 0xCF, 0xF9, 0xB2, 0x2B, 0x65, 0xDA, 0xEA, 0x08, 0xCC,
+ 0xD9, 0x0B, 0x16, 0xE1, 0x32, 0x44, 0x96, 0x58, 0x1F, 0x95, 0xCD, 0xA4, 0x7B, 0x30, 0xA9, 0xB7,
+ 0x74, 0xA6, 0x50, 0x0A, 0x1A, 0xCC, 0x1E, 0xF8, 0xF1, 0x32, 0x23, 0xED, 0x11, 0xCD, 0xC3, 0x20,
+ 0x0A, 0xD8, 0xA8, 0x8C, 0x51, 0xCF, 0x1D, 0xB0, 0x7D, 0x82, 0xAF, 0xD1, 0x46, 0xC7, 0x94, 0x7D,
+ 0x99, 0x4B, 0x52, 0xE5, 0x5F, 0x37, 0xE5, 0x46, 0x31, 0x16, 0xE3, 0x09, 0xCA, 0xFB, 0x18, 0xCD,
+ 0xD2, 0x00, 0xD5, 0x29, 0x02, 0xDD, 0x0F, 0xF1, 0xBD, 0xA6, 0x6F, 0x35, 0x77, 0xAC, 0xA5, 0x27,
+ 0xE4, 0x36, 0xE1, 0x2B, 0xB1, 0xA0, 0x72, 0x3F, 0xC9, 0xE0, 0x1B, 0x07, 0x66, 0xB4, 0xB4, 0x2E,
+ 0xF4, 0x26, 0xF0, 0x2A, 0xD8, 0x7C, 0xAE, 0x8A, 0x12, 0x0D, 0xC0, 0x31, 0xA2, 0x44, 0x70, 0x1A,
+ 0x93, 0x41, 0x98, 0x25, 0x97, 0xD0, 0x02, 0x69, 0x5B, 0x81, 0x89, 0xF4, 0x07, 0x8A, 0xD5, 0x71,
+ 0xDB, 0x09, 0x54, 0xA1, 0xF6, 0xB6, 0x64, 0x6E, 0xB2, 0x7E, 0x60, 0xE2, 0xD3, 0x6B, 0x01, 0x44,
+ 0x05, 0xD7, 0x7F, 0x54, 0x18, 0x21, 0xF3, 0x17, 0x13, 0x05, 0xC1, 0x38, 0x67, 0xBD, 0xB5, 0x26,
+ 0x41, 0x93, 0x2F, 0x40, 0x2B, 0xEE, 0x3C, 0xEB, 0xAF, 0xE7, 0x7D, 0x66, 0xA5, 0x1B, 0x77, 0x42,
+ 0xE5, 0x37, 0xE8, 0x23, 0xD2, 0x2B, 0xF9, 0xD7, 0x34, 0x0E, 0xE6, 0x14, 0xF0, 0x53, 0x22, 0x5F,
+ 0x4B, 0x99, 0xE5, 0x80, 0x9C, 0x3C, 0xEE, 0x8E, 0x5A, 0x89, 0x88, 0xFD, 0x2D, 0x33, 0xFF, 0xE2,
+ 0xCE, 0x1C, 0x58, 0xB8, 0xD9, 0xC7, 0x15, 0x30, 0xAD, 0xA7, 0x7F, 0x24, 0xEA, 0x88, 0x38, 0x9E,
+ 0x6B, 0xB9, 0x96, 0xD3, 0xF5, 0xE0, 0x32, 0x3B, 0x07, 0x14, 0xD5, 0x3D, 0x05, 0xC8, 0xD7, 0x31,
+ 0x83, 0x51, 0x89, 0x24, 0xEB, 0xB3, 0x61, 0x76, 0xD6, 0x39, 0x04, 0xC1, 0x95, 0x79, 0x47, 0x10,
+ 0x88, 0x5A, 0x4A, 0xEC, 0xA0, 0xB0, 0x62, 0x3E, 0x29, 0x97, 0xFB, 0x90, 0xBA, 0xDD, 0x68, 0x9B,
+ 0x7E, 0xAC, 0x9A, 0xCA, 0x41, 0x64, 0xB6, 0x0B, 0x42, 0x08, 0x90, 0x64, 0x74, 0xE7, 0xA6, 0x6F,
+ 0x1E, 0xCC, 0xAD, 0x9D, 0x05, 0x24, 0xF6, 0x0F, 0x6A, 0xDB, 0xB8, 0x9F, 0xE4, 0x56, 0x36, 0x4E,
+ 0x9D, 0x4F, 0x46, 0xF5, 0x92, 0xC4, 0x16, 0x78, 0x7F, 0xC2, 0xAD, 0x93, 0xC6, 0x67, 0x14, 0x5D,
+ 0xE8, 0x3A, 0x7D, 0xBB, 0xB8, 0xA1, 0x73, 0x37, 0x82, 0x2C, 0x50, 0x80, 0x40, 0x91, 0x92, 0x2D,
+ 0x1B, 0xC9, 0xB0, 0x85, 0xA3, 0xE6, 0x34, 0x6B, 0x8B, 0xA4, 0x59, 0x01, 0x63, 0xA9, 0xB1, 0x36,
+ 0x35, 0xE7, 0x1D, 0x06, 0x4C, 0xCA, 0x18, 0xA8, 0x81, 0x64, 0x53, 0xCB, 0x22, 0xE4, 0xF0, 0x3A,
+ 0x3A, 0xE8, 0xCA, 0xDE, 0x2A, 0x55, 0x87, 0x51, 0x3D, 0x86, 0xEF, 0x95, 0xA4, 0x12, 0x76, 0x4A,
+ 0x57, 0x85, 0x68, 0x11, 0x4F, 0x9C, 0x4E, 0xFD, 0x4E, 0x98, 0x9C, 0xF8, 0x54, 0x94, 0x86, 0x3C,
+ 0xDE, 0x0C, 0x49, 0xB9, 0xC5, 0x79, 0xAB, 0x92, 0x45, 0x50, 0x97, 0x3B, 0xA0, 0x06, 0x72, 0x5A,
+ 0xDC, 0x0E, 0x0B, 0xF9, 0xD7, 0x3F, 0xED, 0xC6, 0x4D, 0xD0, 0x9F, 0xB3, 0x3B, 0x74, 0xE9, 0xB3,
+ 0xCB, 0x19, 0x45, 0xA0, 0x42, 0x32, 0xE0, 0x5E, 0x95, 0x75, 0x47, 0xCE, 0x01, 0xDC, 0xD3, 0x21,
+ 0x23, 0xF1, 0x5A, 0x57, 0xEF, 0x1C, 0xCE, 0xDD, 0x33, 0x56, 0xE1, 0x4B, 0x7E, 0x2D, 0xAC, 0xAF,
+ 0x59, 0x8B, 0xB6, 0xC1, 0x82, 0x6F, 0xBD, 0xC3, 0xF3, 0x72, 0x21, 0xAF, 0x1F, 0x13, 0xCD, 0xF0,
+ 0xA2, 0x70, 0xF3, 0x7F, 0xAB, 0x5C, 0x8E, 0xD9, 0xF5, 0x22, 0x27, 0xF9, 0x8A, 0xBF, 0x58, 0xC9,
+ 0xBE, 0x6C, 0x7E, 0xEE, 0x5B, 0x98, 0x4A, 0xED, 0xE7, 0x63, 0x35, 0xAA, 0x49, 0x10, 0x9B, 0xA5,
+ 0xAE, 0x7C, 0x6F, 0xEF, 0x69, 0xEC, 0x3E, 0xAB, 0x8E, 0xBC, 0x5C, 0x1C, 0x25, 0xBB, 0xF7, 0x62,
+ 0x87, 0x55, 0x9D, 0x34, 0x6E, 0x15, 0xC7, 0x55, 0xBF, 0xE6, 0x6D, 0x77, 0x0D, 0x40, 0xDF, 0xB1,
+ 0x8F, 0x21, 0x20, 0x5F, 0x2A, 0xB8, 0x1C, 0x68, 0x14, 0xC4, 0x53, 0xC9, 0xDF, 0xE2, 0xB3, 0x63,
+ 0x84, 0xE2, 0xE8, 0x54, 0x4C, 0x4C, 0x8E, 0x9C, 0x9D, 0x4D, 0x72, 0x61, 0x55, 0x8D, 0x56, 0x86,
+ 0xF7, 0x8F, 0xF6, 0x27, 0x3A, 0xBC, 0x08, 0x6C, 0xF0, 0x20, 0xD0, 0xAE, 0x30, 0x21, 0x9F, 0x4F,
+ 0x4B, 0xD1, 0x14, 0x9B, 0x4A, 0x3A, 0xFE, 0xEA, 0xFF, 0x2F, 0x07, 0x76, 0x56, 0xD8, 0x00, 0xD0,
+ 0x41, 0x1B, 0xD4, 0x91, 0x46, 0x7B, 0xB3, 0xAB, 0xD1, 0x01, 0xAA, 0xF5, 0xB9, 0x1B, 0x2C, 0xFC,
+ 0x48, 0x9A, 0x5C, 0x98, 0x5D, 0x58, 0x8B, 0x88, 0x22, 0xF2, 0x67, 0xCB, 0xA2, 0x47, 0x6B, 0xBB,
+ 0xB5, 0x89, 0xB2, 0x65, 0x2D, 0xDE, 0x7D, 0x0E, 0x57, 0x87, 0x5C, 0x85, 0x88, 0x08, 0x0E, 0xDE,
+ 0xA0, 0x85, 0xAB, 0x70, 0x3E, 0xFC, 0x4C, 0x2C, 0xD4, 0x04, 0xB7, 0xED, 0x1F, 0x7F, 0xEE, 0x3E,
+ 0x75, 0x6D, 0x96, 0xA5, 0xC1, 0x15, 0x5A, 0xC5, 0x4D, 0x9D, 0x87, 0x44, 0x74, 0x25, 0xDF, 0x0F,
+ 0x44, 0x06, 0xCC, 0x94, 0x12, 0x3D, 0xA1, 0xED, 0x64, 0xB4, 0x75, 0x9F, 0x73, 0xDB, 0x26, 0xF6,
+ 0x2D, 0xB0, 0x13, 0xFD, 0xD5, 0x51, 0x0A, 0x81, 0x74, 0xA4, 0x64, 0x9E, 0x41, 0x9D, 0x52, 0x82,
+ 0x3F, 0xE3, 0x52, 0xEF, 0xB9, 0x92, 0xA5, 0x42, 0x68, 0xB8, 0xE9, 0x0F, 0xB1, 0xA9, 0x96, 0x46,
+ 0x39, 0xB5, 0x02, 0xE9, 0x80, 0x07, 0x09, 0xD7, 0x93, 0x43, 0xAC, 0xB1, 0x98, 0xB3, 0xA5, 0x75,
+ 0xF9, 0x51, 0x26, 0x29, 0xDF, 0x66, 0x37, 0xB6, 0xE9, 0x39, 0x40, 0x27, 0xF5, 0xAD, 0xD6, 0x06,
+ 0x5F, 0xD4, 0x05, 0x8F, 0x51, 0x19, 0xC6, 0xC9, 0x01, 0xD1, 0x5F, 0xD0, 0x58, 0x2E, 0xF8, 0x28,
+ 0x87, 0xA9, 0xA0, 0x57, 0xC3, 0x23, 0x6E, 0xF3, 0x16, 0xC6, 0x11, 0x89, 0xCD, 0xB6, 0xF5, 0x25,
+ 0xD9, 0x22, 0x75, 0x09, 0x56, 0x7F, 0xA7, 0xAF, 0xCF, 0x1F, 0x65, 0x24, 0x02, 0x67, 0xEB, 0x3B,
+ 0x78, 0xF8, 0x0E, 0xA8, 0x34, 0xCB, 0x71, 0x1B, 0x11, 0xC1, 0x4E, 0xD1, 0xEC, 0x1E, 0x7C, 0xAC,
+ 0x91, 0xEE, 0xF1, 0x41, 0x01, 0x1F, 0x90, 0xCF, 0x59, 0x89, 0x82, 0x55, 0x8D, 0x19, 0x1A, 0xCA,
+ 0xD8, 0x2B, 0x7D, 0x08, 0x6A, 0xBA, 0x5E, 0x6A, 0x3E, 0xEE, 0xEA, 0x5A, 0xC2, 0xFA, 0xB6, 0x66,
+ 0x03, 0x1D, 0x90, 0xD3, 0x5E, 0x7E, 0xAE, 0xAE, 0x2E, 0xFE, 0xFB, 0x5B, 0xAB, 0x4F, 0x6A, 0xBA,
+ 0x77, 0x2F, 0xD6, 0xA7, 0x57, 0x6F, 0xB6, 0xBF, 0x18, 0xC8, 0xCF, 0x59, 0x18, 0x81, 0x17, 0xC7,
+ 0xFB, 0x13, 0x66, 0x2B, 0xBD, 0xD2, 0xE1, 0x02, 0x53, 0x83, 0x48, 0x95, 0x45, 0x36, 0xFD, 0x2D,
+ 0xB7, 0xCB, 0xF2, 0x67, 0x0D, 0x5E, 0xDD, 0x8E, 0xC0, 0x10, 0xB2, 0xFC, 0x4B, 0xC0, 0x05, 0xD5,
+ 0x88, 0x7E, 0x78, 0x58, 0x1F, 0x6C, 0xFD, 0xBC, 0xB4, 0x64, 0x80, 0xBA, 0x5B, 0x7B, 0xAE, 0x7E,
+ 0xE3, 0x8A, 0xE7, 0x33, 0xEB, 0xA2, 0xC7, 0x72, 0x42, 0x92, 0x50, 0x9C, 0xBA, 0x4E, 0x7A, 0xAA,
+ 0x1C, 0xDB, 0x49, 0xCC, 0x60, 0x8D, 0x63, 0x5D, 0x49, 0x99, 0x93, 0x54, 0xF1, 0x06, 0x79, 0xA9,
+ 0xCD, 0x27, 0x64, 0x1D, 0x41, 0x1D, 0xD2, 0xCD, 0xA1, 0x71, 0x8C, 0xA3, 0xEF, 0x4B, 0x2A, 0xFA,
+ 0x67, 0x3E, 0xD7, 0xB7, 0xEE, 0xF2, 0x92, 0x22, 0x04, 0xD4, 0x42, 0xC8, 0xC3, 0x40, 0x0D, 0xDD,
+ 0x90, 0xE7, 0xF9, 0x40, 0x92, 0x35, 0x29, 0xE5, 0x81, 0x51, 0xFF, 0xF0, 0x86, 0xFE, 0xF6, 0x26,
+ 0xFE, 0x0E, 0x7E, 0x2E, 0x2F, 0xE8, 0x49, 0x38, 0x2F, 0xFF, 0xF2, 0x53, 0xC8, 0xA7, 0xE1, 0x31,
+ 0x65, 0x7C, 0x97, 0xB5, 0x32, 0xBD, 0x01, 0x6D, 0x8B, 0x5B, 0x35, 0x30, 0x31, 0x9B, 0x24, 0xF4,
+ 0x69, 0xE0, 0x07, 0xB9, 0x8E, 0x70, 0x70, 0xA0, 0x43, 0x93, 0x59, 0x94, 0x0B, 0x6F, 0xEA, 0x3A,
+ 0x61, 0x68, 0x87, 0xB1, 0x63, 0xAB, 0x46, 0x7B, 0x25, 0xF5, 0x38, 0x93, 0xC0, 0x15, 0x5B, 0x8B,
+ 0x8C, 0x6A, 0x68, 0x5C, 0xD2, 0x37, 0x6B, 0xE7, 0xDC, 0x0C, 0x3F, 0x6D, 0x9C, 0x18, 0x0A, 0xDA,
+ 0xB0, 0x94, 0xAA, 0x60, 0x8A, 0x30, 0x34, 0xE0, 0x4E, 0x9E, 0xCC, 0x0C, 0x19, 0x3B, 0xAC, 0x7C,
+ 0x72, 0x32, 0xCE, 0xA2, 0xE3, 0xA3, 0xCE, 0x73, 0x12, 0xC2, 0x05, 0x99, 0xE8, 0xB5, 0xD3, 0x03,
+ 0xB9, 0x15, 0x22, 0x69, 0xEF, 0xE2, 0x83, 0x32, 0x0C, 0xDC, 0xCA, 0x48, 0xF4, 0x17, 0x6D, 0xBD,
+ 0x32, 0x76, 0xCA, 0xE2, 0xD9, 0x10, 0x47, 0xC0, 0xDB, 0x0B, 0x60, 0x35, 0xC5, 0x04, 0x4F, 0x9F,
+ 0xD0, 0xA3, 0xFD, 0x00, 0xC6, 0x73, 0x3B, 0xA3, 0x86, 0x56, 0xA0, 0xA8, 0x7A, 0xD3, 0x27, 0xF7,
+ 0x3B, 0xF7, 0x42, 0xEB, 0x50, 0x09, 0xD7, 0xD9, 0xBE, 0x6E, 0x4A, 0x7A, 0x00, 0x88, 0x06, 0xD6,
+ 0xD5, 0xBE, 0xE5, 0x05, 0xC7, 0x63, 0x2A, 0xB3, 0x13, 0xC3, 0x0C, 0x91, 0x28, 0x28, 0x8E, 0x5E,
+ 0x33, 0x7F, 0xC2, 0xE3, 0xBC, 0xC2, 0xF0, 0x12, 0x82, 0x52, 0xB4, 0xB8, 0xD5, 0xBF, 0xE4, 0x34,
+ 0x98, 0x6F, 0x79, 0x48, 0xC4, 0x45, 0x0F, 0x95, 0x34, 0xE4, 0x20, 0x9A, 0x62, 0xDA, 0x36, 0xE6,
+ 0x38, 0xBC, 0x0A, 0xE8, 0x7C, 0xC8, 0x3A, 0x18, 0xEC, 0x3C, 0x5D, 0x3F, 0xAD, 0x0B, 0x28, 0xF8,
+ 0x21, 0x2C, 0x83, 0xF1, 0xBB, 0xA4, 0x91, 0x74, 0xF3, 0x23, 0x9B, 0xE6, 0x36, 0x65, 0xDD, 0x0D,
+ 0x85, 0xEB, 0xE0, 0x55, 0x11, 0x1B, 0x84, 0xCB, 0x9B, 0x4B, 0x24, 0x31, 0xDE, 0x58, 0x08, 0xD8,
+ 0xCE, 0x6C, 0x2C, 0x1E, 0x43, 0x2B, 0xE6, 0xFB, 0x5D, 0x8D, 0x96, 0x45, 0x14, 0x98, 0x02, 0xD2,
+ 0xCC, 0x2E, 0x6C, 0x1C, 0xCD, 0x54, 0x17, 0x84, 0xAA, 0x7A, 0x4F, 0x6B, 0x69, 0x3D, 0xDA, 0x0A,
+ 0x20, 0x25, 0x8B, 0xF0, 0x77, 0xEF, 0x16, 0x3F, 0x47, 0x97, 0x4D, 0x84, 0xFA, 0xE1, 0x95, 0x45,
+ 0x40, 0x12, 0xDC, 0x90, 0xA6, 0xF1, 0xD9, 0x21, 0xBB, 0x6B, 0x57, 0x62, 0xBF, 0x5F, 0x6E, 0xBE,
+ 0x5A, 0xC9, 0x1D, 0x8A, 0xAC, 0xC6, 0xE4, 0x16, 0x50, 0x80, 0x03, 0xDD, 0x77, 0x70, 0x89, 0x59,
+ 0xB1, 0x9D, 0xA2, 0x61, 0x33, 0xAD, 0x10, 0x7D, 0x0F, 0xDF, 0x81, 0x00, 0xC1, 0xAF, 0xE0, 0x30,
+ 0x9A, 0x2D, 0x39, 0x4A, 0x8F, 0x60, 0x61, 0xB0, 0x62, 0xB2, 0x23, 0xCF, 0x66, 0x71, 0x99, 0x49,
+ 0x31, 0x3D, 0x82, 0xE1, 0x74, 0xC9, 0x33, 0x19, 0xC7, 0x17, 0xED, 0xA4, 0xD8, 0x1C, 0x4A, 0x9A,
+ 0xA8, 0x0D, 0x2B, 0x78, 0x6E, 0xFA, 0x1A, 0x2A, 0x1E, 0xCE, 0x99, 0x09, 0xB8, 0xA1, 0x97, 0x47,
+ 0x76, 0x26, 0xDE, 0xA6, 0x1A, 0x3C, 0xA8, 0xEC, 0x8A, 0x5A, 0x3C, 0x38, 0x97, 0xFF, 0xE6, 0x36,
+ 0xA6, 0xD3, 0xFB, 0x76, 0xB4, 0xC3, 0xF9, 0x13, 0xC4, 0x14, 0xA6, 0xEC, 0xBB, 0xF4, 0xC1, 0x11,
+ 0xAF, 0x52, 0x73, 0x7F, 0xA5, 0xD7, 0xFC, 0x07, 0xE7, 0x37, 0x9E, 0xF7, 0x95, 0x10, 0x0B, 0xDB,
+ 0xCA, 0x78, 0x3C, 0x1A, 0x23, 0xA9, 0x04, 0x79, 0xF4, 0x24, 0xC4, 0xBE, 0x44, 0x8C, 0x46, 0x96,
+ 0x9E, 0x39, 0x29, 0x4E, 0x72, 0xBF, 0x43, 0x6F, 0x7D, 0xAD, 0xE5, 0x16, 0x54, 0x37, 0xED, 0x3D,
+ 0x5C, 0x9F, 0x4D, 0x8C, 0x69, 0x9C, 0x7B, 0x4C, 0xE5, 0x35, 0xDC, 0xB7, 0x1E, 0xC5, 0x55, 0x85,
+ 0x83, 0xBD, 0xB0, 0x53, 0xF8, 0x80, 0xF6, 0x50, 0xA7, 0x77, 0xDA, 0xF3, 0xD6, 0xEA, 0xB2, 0x62,
+ 0x71, 0x79, 0x86, 0xA1, 0xE4, 0xC5, 0xAF, 0x15, 0x29, 0xF9, 0xA4, 0x03, 0xF3, 0xE9, 0x94, 0x44,
+ 0xE8, 0x1B, 0xA1, 0x17, 0x0A, 0x47, 0x1F, 0xB8, 0x71, 0x8E, 0x2B, 0x08, 0x56, 0xAD, 0xA9, 0x56,
+ 0x2D, 0xE2, 0x9D, 0xD2, 0x69, 0xE3, 0xD8, 0x1C, 0x24, 0xDB, 0x63, 0x15, 0x24, 0x44, 0x32, 0xCD,
+ 0x3A, 0xAC, 0xC4, 0xC5, 0xCA, 0x4D, 0xD5, 0xB2, 0xF9, 0x06, 0x03, 0xA8, 0xCD, 0xC3, 0x5C, 0xA3,
+ 0xC1, 0xE9, 0x7A, 0x3E, 0xF2, 0xC8, 0x68, 0x37, 0x3E, 0xC1, 0xB8, 0xD4, 0x14, 0xED, 0xAB, 0x54,
+ 0xE6, 0xC5, 0x71, 0x19, 0x99, 0x6D, 0xA6, 0x92, 0xD1, 0x2E, 0xF8, 0x7B, 0x0D, 0x5E, 0x01, 0xFE,
+ 0xB5, 0xDB, 0x3C, 0x4A, 0x6E, 0x85, 0xB9, 0x7A, 0x41, 0xBE, 0x49, 0x5A, 0xF1, 0x73, 0xD0, 0x2F,
+ 0xB6, 0x90, 0x74, 0x49, 0xA6, 0x8E, 0x7A, 0x71, 0x6E, 0x91, 0xED, 0xD1, 0xA0, 0xDD, 0x2F, 0xD0,
+ 0x62, 0x71, 0x41, 0x9D, 0x80, 0x78, 0xAA, 0x87, 0xA0, 0x5F, 0xD7, 0x25, 0x54, 0x42, 0x44, 0xBB,
+ 0xC9, 0x61, 0xFA, 0x36, 0xC6, 0x0C, 0x98, 0xF3, 0x92, 0x6D, 0xF7, 0x37, 0xE1, 0xC8, 0x7B, 0x84,
+ 0x31, 0x6F, 0x0C, 0xCE, 0xAF, 0x9F, 0x62, 0x60, 0x1E, 0xE1, 0xCB, 0x87, 0x39, 0x5C, 0x37, 0xC8,
+ 0xDB, 0x32, 0xBB, 0x24, 0x63, 0xD4, 0xE5, 0x2B, 0xA3, 0x5C, 0x9C, 0x6D, 0x05, 0xEC, 0xBB, 0x44,
+ 0xA6, 0x81, 0x75, 0x59, 0x61, 0xE2, 0xD1, 0x1D, 0xB2, 0x4D, 0x84, 0x64, 0x37, 0xAA, 0xCF, 0x30,
+ 0x7A, 0xE8, 0xC0, 0x85, 0x60, 0xF2, 0xC0, 0x0D, 0x76, 0x89, 0x74, 0x50, 0x01, 0x47, 0x14, 0xEB,
+ 0xD6, 0xA7, 0x23, 0x29, 0x6F, 0x95, 0xA8, 0x6A, 0xD3, 0x2C, 0xBA, 0x3B, 0xC4, 0xCB, 0x5D, 0xA2,
+ 0xB0, 0xC6, 0x24, 0x4F, 0xEB, 0xDD, 0x64, 0x22, 0x07, 0xF8, 0x5B, 0x0E, 0xD2, 0x34, 0xB4, 0x4B,
+ 0x27, 0x28, 0x5D, 0xD8, 0x1E, 0x03, 0x4F, 0xFC, 0xB3, 0x4C, 0x8D, 0x6C, 0x08, 0x4F, 0x15, 0xEA,
+ 0x39, 0xE7, 0x8C, 0xC6, 0xB3, 0xDA, 0x3B, 0x25, 0xEF, 0x10, 0x44, 0xF9, 0x83, 0x9A, 0x4B, 0xB4,
+ 0x34, 0x72, 0x14, 0xCB, 0xEA, 0xCD, 0x75, 0x32, 0xD5, 0x2A, 0xEC, 0x6B, 0xFE, 0x3F, 0x93, 0x6C,
+ 0x1A, 0xDF, 0x97, 0xE5, 0x1D, 0x25, 0x6A, 0xDA, 0xAA, 0x55, 0x1D, 0xE5, 0x7B, 0x1C, 0x35, 0xCA,
+ 0x69, 0xB2, 0x89, 0x96, 0x8B, 0x5F, 0x86, 0xA0, 0xCB, 0x34, 0x23, 0xBA, 0x9F, 0x38, 0xF5, 0x0A,
+ 0x5A, 0x9B, 0x93, 0xA5, 0x35, 0xA4, 0xC3, 0x5B, 0x5E, 0xA1, 0x8F, 0x83, 0xC9, 0x68, 0xF3, 0x0C,
+ 0x9E, 0x6B, 0xA7, 0x61, 0xA4, 0xB8, 0x4E, 0x47, 0x9D, 0x62, 0x20, 0xEF, 0x9A, 0x29, 0xE1, 0x1E,
+ 0xEA, 0x59, 0xE1, 0x15, 0xA5, 0xA8, 0x5F, 0x57, 0xF1, 0x0E, 0x8B, 0x28, 0x2C, 0xF6, 0x88, 0x77,
+ 0x13, 0x5E, 0x1F, 0xEC, 0x7E, 0x81, 0xAD, 0x7E, 0xD9, 0x26, 0x70, 0xFB, 0x47, 0xAC, 0xB9, 0x46,
+ 0x22, 0x35, 0x45, 0xDD, 0xD7, 0x18, 0x9D, 0xE7, 0x30, 0xCF, 0x66, 0x04, 0xAF, 0x91, 0x6C, 0x93,
+ 0xC2, 0xA2, 0x32, 0x3D, 0xBF, 0x9B, 0x76, 0x64, 0x12, 0xED, 0x57, 0x17, 0xA3, 0x88, 0x79, 0x86,
+ 0xA7, 0x88, 0x7D, 0x58, 0xF1, 0xEE, 0x4D, 0x11, 0x94, 0x6B, 0xA1, 0x67, 0xB0, 0x66, 0x84, 0x7B,
+ 0xE0, 0x93, 0x21, 0x1F, 0xCF, 0x1D, 0x80, 0xE2, 0xB7, 0x48, 0x99, 0x7C, 0x31, 0xEE, 0x8D, 0x72,
+ 0xCC, 0x7C, 0xE2, 0x33, 0x4C, 0x33, 0x2D, 0xCC, 0xF6, 0x09, 0xD4, 0x70, 0xFB, 0x2E, 0x87, 0x78,
+ 0x53, 0x1A, 0x1B, 0xAC, 0x94, 0x3C, 0xFA, 0xC3, 0x70, 0x8F, 0x22, 0x00, 0xA5, 0xCC, 0x3B, 0xC4,
+ 0x9A, 0x7F, 0xB7, 0x65, 0x5B, 0x51, 0x58, 0xAE, 0x80, 0x7F, 0xA4, 0x76, 0xC8, 0xD2, 0x48, 0xB7,
+ 0x7F, 0xF5, 0xD8, 0x80, 0xF3, 0xD8, 0x79, 0x27, 0x74, 0x8B, 0x36, 0x10, 0x0B, 0x1A, 0x43, 0xBC,
+ 0x58, 0xD9, 0xD3, 0xA7, 0x39, 0xE5, 0x8E, 0x1A, 0x09, 0xF6, 0x85, 0xDE, 0x53, 0xBC, 0xBD, 0x42,
+ 0x7E, 0xFC, 0xD0, 0x81, 0xC9, 0x6B, 0xF0, 0x94, 0x4C, 0xB3, 0xDC, 0xC2, 0x97, 0x8A, 0x4F, 0xB0,
+ 0x99, 0x34, 0xFF, 0x66, 0x8D, 0x29, 0xF6, 0xD6, 0x50, 0xAF, 0x51, 0x53, 0xB5, 0x77, 0x90, 0x6F,
+ 0x21, 0x7E, 0x0D, 0xDE, 0x2C, 0xB1, 0xCF, 0x4E, 0x73, 0x8C, 0x69, 0x48, 0x13, 0x13, 0x52, 0xAD,
+ 0x8A, 0x6E, 0xB6, 0x75, 0x84, 0x38, 0xEE, 0xC7, 0x65, 0x9A, 0x2E, 0x19, 0x52, 0x06, 0x06, 0xF9,
+ 0xC7, 0xBF, 0x2A, 0x38, 0xCD, 0x2B, 0xB4, 0xD4, 0x1B, 0xE4, 0xD6, 0x9F, 0x78, 0x49, 0x63, 0x9C,
+ 0x0D, 0x91, 0xCE, 0xF2, 0xD6, 0x08, 0x8C, 0xF7, 0x0F, 0xF0, 0xD3, 0x8E, 0xF9, 0xC1, 0x6A, 0x95,
+ 0x2A, 0xBD, 0xC5, 0xD5, 0x02, 0x46, 0x16, 0xB9, 0xF0, 0x0F, 0x82, 0x20, 0x0C, 0xE4, 0xBA, 0x45,
+ 0x5B, 0x92, 0x9B, 0xA4, 0x33, 0xD2, 0xB3, 0x2D, 0x36, 0xC9, 0x30, 0x54, 0x27, 0x11, 0x64, 0x9B,
+ 0x86, 0xF2, 0x26, 0x79, 0x9E, 0x0B, 0xC7, 0xF4, 0x05, 0xFA, 0x19, 0x4E, 0x17, 0xB8, 0xFD, 0x02,
+ 0x55, 0x4C, 0x4B, 0xAA, 0xF5, 0xAE, 0x09, 0x51, 0xAC, 0x53, 0x4B, 0xB5, 0x07, 0x03, 0x56, 0xA9,
+ 0x2C, 0xEB, 0x95, 0xD3, 0x3A, 0xC3, 0xAB, 0x3C, 0x61, 0x9E, 0x3A, 0x09, 0xB7, 0x98, 0x7D, 0x82,
+ 0x45, 0x5D, 0x4A, 0xBA, 0xE7, 0x9C, 0x29, 0x63, 0x0A, 0xF5, 0xCE, 0x96, 0xE3, 0x27, 0x96, 0x69,
+ 0xA2, 0x95, 0x65, 0x5D, 0x58, 0x77, 0x7D, 0x88, 0x3D, 0xC2, 0xF3, 0x9C, 0x38, 0xE6, 0x8C, 0x73,
+ 0x59, 0xD0, 0xDB, 0xA6, 0xBE, 0x8B, 0x67, 0x74, 0x23, 0xDC, 0x3C, 0x4D, 0x0F, 0xB1, 0xEC, 0x13,
+ 0x16, 0x43, 0x07, 0xE9, 0x51, 0x66, 0x65, 0x99, 0x98, 0x67, 0x3D, 0xF7, 0x04, 0x56, 0x00, 0xFF,
+ 0xCE, 0x3E, 0xA2, 0x31, 0x7F, 0x91, 0xBC, 0x6E, 0xE7, 0x18, 0xCC, 0x79, 0x46, 0x16, 0x02, 0xFD,
+ 0xC4, 0xF4, 0x62, 0x3B, 0x0B, 0x57, 0x0E, 0xA8, 0xD7, 0x28, 0xAE, 0x2B, 0xC1, 0xDA, 0x49, 0xB6,
+ 0x11, 0x1C, 0x5F, 0xEE, 0xDC, 0x3F, 0xB1, 0xC0, 0x68, 0x97, 0xBB, 0x81, 0x06, 0xB9, 0xED, 0x12,
+ 0xE4, 0x87, 0x31, 0x1B, 0x05, 0x20, 0x77, 0xDF, 0x04, 0xFB, 0x10, 0x46, 0x96, 0x30, 0xF4, 0x0B,
+ 0xFA, 0x48, 0xE0, 0x05, 0xA0, 0xF8, 0x0A, 0x07, 0x89, 0x76, 0x25, 0xFE, 0x45, 0x43, 0x54, 0xAB,
+ 0x28, 0xFF, 0x85, 0xD7, 0x82, 0x4E, 0x9E, 0xB1, 0x0E, 0xF1, 0xDA, 0x86, 0x55, 0xF8, 0xFF, 0x00,
+ 0x42, 0x02, 0x12, 0xBD, 0xAB, 0xDF, 0x26, 0x20, 0xAF, 0x50, 0x00, 0xFD, 0x94, 0xDF, 0x19, 0xE6,
+ 0xCA, 0x2A, 0xB2, 0x35, 0x40, 0x72, 0x60, 0x8D, 0xC5, 0x3A, 0xFD, 0x6A, 0xDD, 0x78, 0xF7, 0x08,
+ 0xEB, 0x50, 0xE9, 0x14, 0x92, 0x4A, 0x8A, 0xB5, 0xBF, 0x40, 0x11, 0xFC, 0x89, 0xC7, 0x1C, 0xE3,
+ 0x83, 0xEF, 0x3E, 0x7C, 0x0F, 0x17, 0x4A, 0xE8, 0xDC, 0x23, 0x6D, 0xE3, 0x5C, 0xF0, 0xFE, 0x01,
+ 0xA1, 0xDE, 0x2D, 0x5E, 0x72, 0xC0, 0xE0, 0x3F, 0x2E, 0xD1, 0xA9, 0xD5, 0x3F, 0x18, 0x75, 0x8A,
+ 0x1F, 0xC2, 0x8F, 0xE0, 0xA3, 0xDE, 0x2F, 0x21, 0x6F, 0x90, 0xE4, 0xD9, 0x18, 0xF4, 0xBE, 0x41,
+ 0x60, 0x33, 0x01, 0x9F, 0x36, 0x82, 0xE6, 0x7D, 0xFC, 0x03, 0x1E, 0xB0, 0xBE, 0x90, 0x7C, 0x83,
+ 0xC6, 0xB6, 0x22, 0x39, 0x57, 0x10, 0x15, 0xEF, 0xFB, 0x04, 0x41, 0xE8, 0x40, 0x52, 0x40, 0xBF,
+ 0x97, 0xEA, 0x2F, 0x68, 0xA9, 0xE9, 0x12, 0x16, 0x67, 0x98, 0x6C, 0x59, 0x42, 0xBD, 0xAD, 0x52,
+ 0x26, 0x21, 0x55, 0xD9, 0xAE, 0x8F, 0x73, 0x70, 0xBC, 0x43, 0x5A, 0xB4, 0xCA, 0x3D, 0xA5, 0x5A,
+ 0x1E, 0x41, 0x8E, 0x3D, 0x76, 0x10, 0xB7, 0xC5, 0xF5, 0xBE, 0x29, 0x0D, 0x91, 0x80, 0xC0, 0x33,
+ 0x37, 0x5B, 0xBD, 0x0E, 0xEF, 0x20, 0x1E, 0x5C, 0x95, 0x63, 0x94, 0xD0, 0x3C, 0x59, 0xB4, 0xEA,
+ 0x3D, 0x06, 0xEA, 0x59, 0xF6, 0xB0, 0x97, 0x45, 0xEC, 0x14, 0x9A, 0xA7, 0x35, 0x48, 0xAC, 0xFB,
+ 0x4C, 0xBA, 0x27, 0x94, 0xDD, 0x00, 0x0C, 0x6E, 0x4B, 0x6D, 0x44, 0xDE, 0xFA, 0x25, 0x0E, 0x96,
+ 0xF4, 0x93, 0xB6, 0x05, 0x07, 0x3F, 0xE9, 0xB4, 0x92, 0x9A, 0x6A, 0x29, 0x57, 0xFC, 0x7A, 0x4F,
+ 0xC9, 0x99, 0x81, 0x32, 0x1D, 0xE4, 0x28, 0xAE, 0x5A, 0x7D, 0x45, 0xCE, 0xE8, 0x17, 0x2E, 0xA4,
+ 0x3A, 0xF8, 0x13, 0xA0, 0x8B, 0x03, 0x59, 0x38, 0x44, 0x2E, 0x08, 0x9D, 0x5E, 0xED, 0x62, 0x5E,
+ 0x3B, 0x42, 0xA8, 0x1B, 0x67, 0x08, 0xBE, 0xD4, 0xD7, 0x61, 0xD4, 0xD2, 0xB1, 0x00, 0x60, 0xB3,
+ 0xDB, 0xCD, 0xC7, 0x74, 0xC4, 0x90, 0x85, 0x77, 0xFB, 0x46, 0xDF, 0xF5, 0xC6, 0xE0, 0xF7, 0x53,
+ 0x82, 0xD1, 0x82, 0x31, 0x36, 0x54, 0xB3, 0x85, 0xDE, 0x60, 0xDC, 0xD3, 0x36, 0x6E, 0x89, 0xDD,
+ 0x6E, 0x47, 0xF8, 0x4B, 0xD9, 0x14, 0x1C, 0x6A, 0x79, 0x19, 0x02, 0xAA, 0x23, 0x3A, 0xC8, 0x89,
+ 0x56, 0x5C, 0xDB, 0x68, 0x1B, 0xB2, 0x78, 0xA8, 0x33, 0xA1, 0xF0, 0x12, 0x82, 0xA2, 0xF1, 0x11,
+ 0xD1, 0x90, 0x90, 0x23, 0xE8, 0x7F, 0x46, 0x5B, 0xB8, 0xFF, 0x25, 0x4C, 0xC2, 0xA0, 0xB3, 0x13,
+ 0x29, 0x16, 0xEE, 0x5D, 0x8D, 0x55, 0x09, 0x3E, 0x69, 0xB2, 0xB9, 0x01, 0x8B, 0xB3, 0xE9, 0x00,
+ 0x85, 0x2F, 0x7B, 0xC8, 0x31, 0x0B, 0xEB, 0x82, 0xBA, 0x12, 0xCA, 0xA1, 0x0D, 0xCD, 0x11, 0x7E,
+ 0xD4, 0x81, 0x84, 0x37, 0xE1, 0xFE, 0xCE, 0x52, 0x96, 0x35, 0xC1, 0x86, 0xD9, 0x83, 0x8B, 0x30,
+ 0x6A, 0xEC, 0x57, 0xE4, 0x75, 0x5B, 0xFF, 0xC6, 0xE8, 0xBB, 0x31, 0x08, 0x00, 0x9C, 0x4D, 0x2F,
+ 0x16, 0xF3, 0x34, 0x87, 0x97, 0x8E, 0xC8, 0x24, 0x57, 0xD3, 0xE6, 0x60, 0x9D, 0xC1, 0x8D, 0x72,
+ 0xE3, 0xD6, 0xE4, 0x57, 0x35, 0x1F, 0xFB, 0x86, 0xC5, 0x27, 0x80, 0x94, 0xAC, 0x55, 0x28, 0xE6,
+ 0xAE, 0xDA, 0xA5, 0x16, 0xFE, 0x38, 0x17, 0x4D, 0xD9, 0x99, 0x22, 0x2A, 0x7D, 0x4B, 0xE7, 0xF8,
+ 0x46, 0xE7, 0x70, 0xC3, 0xCB, 0x47, 0x5D, 0x78, 0xB1, 0xFE, 0x2D, 0x4D, 0x58, 0x9B, 0x12, 0x28,
+ 0x19, 0xBF, 0x77, 0xC4, 0xF7, 0xB9, 0x9F, 0x44, 0x34, 0x58, 0x0E, 0xEB, 0x39, 0x09, 0xE1, 0xBA,
+ 0x5D, 0xBB, 0x37, 0x84, 0x2E, 0xCD, 0x32, 0x9D, 0x26, 0x1E, 0x5A, 0xAD, 0xA1, 0x04, 0x74, 0xB7,
+ 0x6B, 0x56, 0xEC, 0x5F, 0x26, 0x45, 0xB2, 0x95, 0xED, 0xAF, 0x20, 0x1C, 0xA6, 0x62, 0x15, 0xD1,
+ 0xA9, 0x24, 0x5C, 0xEF, 0xC2, 0xC6, 0xD5, 0x71, 0xF3, 0xFC, 0x6D, 0x4F, 0x04, 0xDC, 0x09, 0x6F,
+ 0xCB, 0x76, 0x6C, 0xDF, 0x89, 0x41, 0x19, 0x3A, 0x39, 0xF6, 0xAD, 0x45, 0x70, 0x1A, 0xBB, 0xA9,
+ 0x17, 0x49, 0x8F, 0x3C, 0x7F, 0x91, 0x3F, 0xCC, 0x80, 0xDC, 0x3E, 0x6F, 0x0A, 0xAB, 0x70, 0x18,
+ 0xBC, 0x8E, 0xE3, 0x50, 0x66, 0x01, 0xB6, 0xD5, 0x1B, 0x29, 0x50, 0x9A, 0xD3, 0xB4, 0xB6, 0x07,
+ 0xDD, 0x89, 0x85, 0x36, 0x74, 0x52, 0xF7, 0xC7, 0xF8, 0x10, 0x8A, 0xA3, 0x8D, 0xC5, 0x99, 0x76,
+ 0x22, 0xF1, 0x02, 0xB1, 0xDF, 0x42, 0x4C, 0x6C, 0x4F, 0xC2, 0xEF, 0x71, 0xAF, 0x73, 0x0D, 0xC0,
+ 0xFA, 0x65, 0x4E, 0xFD, 0x7C, 0xDA, 0x77, 0xCF, 0x2D, 0xF2, 0xBD, 0x41, 0x4F, 0xF9, 0x67, 0x4A,
+ 0x07, 0xF2, 0x24, 0x97, 0x92, 0x93, 0xD0, 0x21, 0x05, 0x7A, 0x1D, 0xC9, 0xA4, 0x54, 0x21, 0xE7,
+ 0xCC, 0x88, 0x95, 0x26, 0xBC, 0x3E, 0x53, 0x0F, 0x68, 0x09, 0x03, 0xBA, 0xA0, 0x14, 0x65, 0xA7,
+ 0xF0, 0x38, 0x19, 0xAA, 0xF0, 0xE6, 0xC7, 0x43, 0x66, 0xF1, 0xF5, 0x42, 0xC9, 0x87, 0x9F, 0x34,
+ 0x83, 0x6B, 0x39, 0x8A, 0x44, 0x30, 0xA5, 0xF7, 0x86, 0x9E, 0x7A, 0x2D, 0x6E, 0x69, 0xD6, 0xDA,
+ 0x9B, 0x62, 0x28, 0x9B, 0x30, 0x02, 0xE3, 0x83, 0x35, 0xE3, 0xB4, 0x50, 0x6C, 0x5F, 0xE2, 0xEC,
+ 0xBD, 0x34, 0x58, 0xEB, 0xD6, 0xC3, 0xC4, 0x65, 0xA0, 0xEE, 0x2C, 0x5D, 0x60, 0x1E, 0xAF, 0xAD,
+ 0x73, 0x5F, 0xFD, 0x4E, 0x9F, 0x06, 0x48, 0x2C, 0xEF, 0x42, 0xCF, 0xF1, 0x6F, 0x79, 0xC7, 0xCA,
+ 0x8A, 0x63, 0x38, 0x8B, 0x9E, 0x0F, 0x40, 0x2D, 0x2F, 0x1F, 0x52, 0xAC, 0x11, 0x88, 0x48, 0x3B,
+ 0x5C, 0x01, 0x8C, 0x3F, 0x3F, 0xD5, 0x3B, 0x8C, 0xC1, 0x88, 0x2B, 0x3B, 0xE4, 0x56, 0x63, 0xE5,
+ 0x64, 0x1A, 0xAF, 0x1C, 0xB9, 0x23, 0x4B, 0x0A, 0xE5, 0x15, 0x92, 0xA6, 0x66, 0x68, 0xDF, 0xDB,
+ 0x2C, 0x07, 0xFA, 0x49, 0x22, 0x51, 0xA2, 0x91, 0x1C, 0xD0, 0xAE, 0x63, 0x05, 0xCC, 0x18, 0x7F,
+ 0xBF, 0xDB, 0xB5, 0x06, 0x20, 0x13, 0xE2, 0x93, 0xEE, 0xF9, 0x75, 0x4A, 0xFD, 0x43, 0x6F, 0xF0,
+ 0x04, 0xA7, 0x72, 0xC1, 0xD7, 0xCA, 0xCC, 0x64, 0xAB, 0x02, 0xCB, 0xB1, 0xC5, 0xC6, 0xD2, 0x75,
+ 0x4E, 0x55, 0xCA, 0x79, 0x5B, 0xF6, 0x7C, 0xE8, 0xDC, 0x8D, 0x33, 0x3E, 0x61, 0x0E, 0xBE, 0xBD,
+ 0xFF, 0x74, 0x5A, 0xE9, 0x8A, 0x0A, 0x51, 0x39, 0xC2, 0xDE, 0x7E, 0x6D, 0x96, 0xE6, 0xA1, 0x55,
+ 0xD0, 0x2A, 0x2B, 0x98, 0xCF, 0x53, 0x4D, 0x7C, 0x76, 0x5A, 0x4E, 0xE9, 0x8F, 0xF3, 0xAD, 0x40,
+ 0xEA, 0xDE, 0xE5, 0x56, 0xA4, 0xA7, 0xD2, 0x17, 0x97, 0x8E, 0x7B, 0x3D, 0xA9, 0x05, 0x7D, 0xB6,
+ 0x50, 0x18, 0x99, 0x2A, 0xF2, 0xA4, 0x87, 0x41, 0xA5, 0xFA, 0x3D, 0x49, 0xB0, 0x10, 0x71, 0xA3,
+ 0x61, 0x0B, 0xBB, 0x08, 0xE7, 0xA8, 0x9E, 0x54, 0x32, 0x1A, 0x4A, 0xA9, 0xD8, 0x93, 0x9A, 0x20,
+ 0x9E, 0x73, 0x3C, 0x8F, 0x06, 0x36, 0xE1, 0xB5, 0x94, 0xD8, 0x2E, 0x6B, 0xC0, 0x96, 0x87, 0x25,
+ 0xA6, 0x68, 0x1F, 0xAC, 0x0F, 0xB7, 0x69, 0xBC, 0x8F, 0x9F, 0x72, 0x2C, 0xFE, 0x65, 0x4A, 0xD6,
+ 0x25, 0x0F, 0xFB, 0x48, 0xB0, 0xA2, 0xC3, 0x03, 0x1D, 0x6B, 0x14, 0xD8, 0x9B, 0xB7, 0xFD, 0x04,
+ 0xD3, 0x7F, 0x7D, 0xCE, 0x0C, 0xFC, 0x21, 0xBF, 0x7B, 0xF4, 0xED, 0x47, 0x43, 0xB8, 0x2A, 0x0B,
+ 0x31, 0x1F, 0xFF, 0x4C, 0xC8, 0x0C, 0x15, 0x7B, 0xF2, 0x47, 0xD7, 0xF4, 0xFC, 0x53, 0x7E, 0xE0,
+ 0xA3, 0x79, 0x0B, 0xB8, 0xC3, 0xCF, 0xDD, 0x70, 0x78, 0xA2, 0xB8, 0x11, 0x54, 0xDA, 0x5F, 0x69,
+ 0xEB, 0x64, 0x5E, 0xED, 0x18, 0xF9, 0x30, 0xAB, 0x75, 0x0C, 0x1B, 0xBF, 0xE5, 0x46, 0x72, 0xF5,
+ 0x43, 0xF6, 0x64, 0xD7, 0xC0, 0x84, 0x95, 0x73, 0xE0, 0x01, 0x83, 0xB2, 0xBC, 0x51, 0x3C, 0xE2,
+ 0x24, 0xB5, 0x40, 0xF3, 0x7E, 0x98, 0x37, 0xCD, 0xB5, 0x51, 0x86, 0xE2, 0x84, 0xD4, 0x81, 0x67,
+ 0x1A, 0xEA, 0x21, 0x92, 0xBE, 0x7C, 0x13, 0x0D, 0xD8, 0x22, 0x98, 0x91, 0x12, 0xAE, 0x6D, 0x1D,
+ 0x27, 0xE0, 0x16, 0xA5, 0x6A, 0x9D, 0x26, 0xD9, 0x6C, 0xA6, 0xA8, 0x15, 0xAB, 0x33, 0x49, 0x80,
+ 0x88, 0x8C, 0xD5, 0x66, 0x78, 0xCE, 0x67, 0xCB, 0x9C, 0x62, 0x9C, 0xD1, 0x3A, 0x2F, 0xC4, 0x9C,
+ 0x77, 0xF4, 0x52, 0xE1, 0x32, 0x40, 0xA3, 0x81, 0x59, 0x2B, 0x10, 0x98, 0x71, 0x0A, 0xAA, 0xB9,
+ 0x8C, 0x27, 0x7A, 0xC9, 0x03, 0x2B, 0xF9, 0xB0, 0x5E, 0xD2, 0xEE, 0x61, 0xAA, 0x23, 0x58, 0x90,
+ 0x04, 0xE3, 0x08, 0x22, 0xDA, 0x3C, 0x09, 0x1A, 0xA5, 0x83, 0x39, 0x73, 0x74, 0x7F, 0xE4, 0xC2,
+ 0xF2, 0x33, 0x2E, 0xD4, 0xEF, 0xE8, 0xE8, 0xCE, 0xCE, 0xE8, 0xCD, 0xEC, 0x4E, 0x8B, 0x2A, 0x0C,
+ 0xE7, 0x3F, 0x37, 0xC1, 0xDF, 0x6C, 0x5C, 0x4A, 0x8B, 0xAD, 0x94, 0xF0, 0x61, 0xD5, 0x5B, 0x7D,
+ 0x0F, 0x20, 0xC0, 0x29, 0x92, 0x3F, 0x42, 0x19, 0x5A, 0x7C, 0x68, 0xDD, 0xD0, 0xF4, 0xCB, 0xED,
+ 0xC7, 0x4C, 0x64, 0xE1, 0x6A, 0xB0, 0x35, 0x96, 0xD6, 0xF0, 0x54, 0x6D, 0x9A, 0x06, 0x73, 0x55,
+ 0x42, 0xF1, 0x5C, 0x64, 0xD4, 0x4B, 0x70, 0x6D, 0x21, 0x07, 0x8D, 0x43, 0x21, 0x7A, 0xB4, 0x92,
+ 0xCD, 0x86, 0xA4, 0xEB, 0x0F, 0x62, 0x82, 0x44, 0x23, 0x05, 0xCF, 0x03, 0xB2, 0xA6, 0xFB, 0xDD,
+ 0x69, 0x41, 0xC7, 0x4F, 0x33, 0xA7, 0x7B, 0x81, 0xB8, 0x9E, 0xBD, 0xEA, 0xFA, 0xBB, 0xAE, 0x88,
+ 0x57, 0xFD, 0x45, 0x71, 0x8A, 0x3A, 0x5F, 0x1C, 0x3E, 0x18, 0x4B, 0x9A, 0xC2, 0xA0, 0x8D, 0xAB,
+ 0x89, 0xD6, 0xB0, 0xAF, 0xF3, 0xAD, 0xB1, 0x8B, 0x9F, 0xB9, 0x91, 0xE1, 0x14, 0xC2, 0x39, 0x1F,
+ 0x78, 0x59, 0xCE, 0x5E, 0x6E, 0xF0, 0x71, 0xD6, 0x9E, 0xB8, 0x98, 0xE9, 0xED, 0xFE, 0xFC, 0xDA,
+ 0x1F, 0x31, 0xC1, 0x39, 0x8D, 0x5C, 0x3E, 0x7A, 0xD7, 0xF1, 0x5D, 0x65, 0x23, 0x95, 0x59, 0x7F,
+ 0x5E, 0x7C, 0xCD, 0x78, 0x15, 0x51, 0xAB, 0x77, 0x31, 0x17, 0x9C, 0x42, 0x05, 0xC3, 0x29, 0x0F,
+ 0x68, 0x48, 0xCF, 0x4E, 0xDB, 0x2C, 0x18, 0x0A, 0x45, 0x63, 0xAE, 0x04, 0x1D, 0xCA, 0x38, 0x1E,
+ 0x86, 0x01, 0x68, 0xA0, 0x54, 0x43, 0xF8, 0x65, 0xF1, 0xD7, 0x78, 0x66, 0x6E, 0x99, 0x18, 0x3E,
+ 0x15, 0xFB, 0x01, 0x33, 0xA2, 0xBB, 0xF6, 0x9D, 0xBD, 0x9B, 0xA0, 0xF2, 0x52, 0x29, 0x94, 0xB2,
+ 0x22, 0xC6, 0x0B, 0x04, 0x4F, 0x60, 0xC0, 0x46, 0x02, 0x24, 0xB5, 0x58, 0x12, 0x86, 0x7B, 0x5D,
+ 0x0B, 0x34, 0xD0, 0x2D, 0xB1, 0x99, 0xC7, 0xBF, 0x33, 0x15, 0xDE, 0x02, 0xE9, 0x55, 0x53, 0x75,
+ 0x2E, 0x5A, 0x9B, 0x08, 0x3D, 0xD0, 0x02, 0xF6, 0x79, 0x5F, 0x50, 0xC6, 0x16, 0x2D, 0xD4, 0xF2,
+ 0x32, 0xD7, 0x0A, 0x14, 0x09, 0x14, 0xF2, 0x32, 0x6B, 0x4D, 0x03, 0x87, 0xB9, 0x41, 0x17, 0x31,
+ 0xAF, 0xF3, 0xB3, 0x89, 0x39, 0x90, 0x46, 0xB6, 0xBF, 0x99, 0xE2, 0xB2, 0x84, 0x4B, 0x20, 0x06,
+ 0xD5, 0x1F, 0x25, 0xF3, 0x27, 0xE3, 0x2B, 0xC5, 0x7F, 0x59, 0x06, 0x96, 0xBA, 0x14, 0x41, 0x67,
+ 0x50, 0xA2, 0x1D, 0x76, 0x22, 0xB3, 0x7E, 0x95, 0xC1, 0xE7, 0x1A, 0x34, 0xDD, 0x57, 0x65, 0x43,
+ 0x47, 0xEC, 0x44, 0x61, 0xBA, 0xBE, 0xEB, 0x98, 0x19, 0x3F, 0x67, 0x91, 0x75, 0xC5, 0x5F, 0x79,
+ 0xDB, 0xC1, 0xF5, 0xFD, 0x19, 0x10, 0xE6, 0x36, 0xC2, 0xE4, 0x51, 0x7C, 0x3D, 0xD8, 0x0A, 0x2C,
+ 0x52, 0xE0, 0x5D, 0x74, 0x76, 0xF5, 0x6C, 0xD3, 0xC9, 0xEF, 0x92, 0xB4, 0xAF, 0xBE, 0xFE, 0xD8,
+ 0xB9, 0xB4, 0xE2, 0x9F, 0x4C, 0x46, 0xE5, 0x60, 0x0D, 0x2B, 0x62, 0x80, 0x4D, 0xDE, 0x7C, 0x5A,
+ 0xB6, 0x63, 0x3A, 0x90, 0xB5, 0xD9, 0x83, 0xFF, 0xB1, 0x97, 0x3C, 0x62, 0xBB, 0xAE, 0xFA, 0xDC,
+ 0x64, 0xD4, 0x5F, 0x42, 0xD3, 0x2D, 0x11, 0x0B, 0x0E, 0x28, 0x29, 0xC8, 0x38, 0xC9, 0x1E, 0x38,
+ 0x97, 0x19, 0x61, 0xB1, 0x8F, 0x6A, 0x0A, 0x4C, 0x07, 0x21, 0xA8, 0x40, 0x00, 0xD2, 0x3D, 0x1B,
+ 0x92, 0x04, 0x79, 0xB4, 0xEB, 0xA8, 0xAC, 0x8E, 0xE6, 0xC0, 0x36, 0x3F, 0xFF, 0xAA, 0xBA, 0x9C,
+ 0x11, 0xEF, 0x11, 0x37, 0x9C, 0x48, 0x3B, 0x6E, 0xF3, 0xD5, 0x3A, 0x26, 0xCE, 0xB9, 0x98, 0xBE,
+ 0x82, 0x15, 0x78, 0xA4, 0x60, 0x87, 0x08, 0xA1, 0xE0, 0xC6, 0x60, 0x6F, 0x4A, 0x20, 0x85, 0xA3,
+ 0xCC, 0x8F, 0xAC, 0xEA, 0x6B, 0xA0, 0x24, 0x86, 0x30, 0x16, 0x95, 0x4A, 0x1B, 0x8E, 0x7A, 0x5C,
+ 0xB2, 0x77, 0x2A, 0x94, 0x18, 0x00, 0xF7, 0x26, 0x8C, 0xAA, 0xCB, 0xA8, 0xB7, 0xB7, 0xEF, 0xC9,
+ 0xA1, 0x2D, 0x63, 0x87, 0x84, 0x4D, 0x26, 0x6B, 0xE9, 0xCF, 0xE1, 0xE7, 0x4F, 0x31, 0x91, 0xB7,
+ 0xA3, 0x6F, 0x23, 0x85, 0x51, 0x13, 0xAD, 0x35, 0x1A, 0x3C, 0x2C, 0xD9, 0xC8, 0xFD, 0xDA, 0xFC,
+ 0x3B, 0x56, 0x82, 0x1D, 0xA3, 0xAB, 0xE7, 0x8D, 0xD8, 0xFE, 0x8A, 0xBD, 0xF0, 0xE6, 0xF9, 0xDF,
+ 0x6F, 0x17, 0x97, 0x49, 0x7D, 0xD2, 0x40, 0xF4, 0x37, 0x11, 0xCA, 0x12, 0x1C, 0x70, 0x83, 0xA5,
+ 0xE1, 0x69, 0x67, 0xC7, 0x7E, 0xF4, 0x65, 0xD2, 0xC5, 0xE3, 0x0E, 0x24, 0x45, 0x6C, 0xC6, 0xE0,
+ 0x01, 0xFE, 0x10, 0x27, 0x75, 0xD3, 0x49, 0xF5, 0x66, 0x40, 0x96, 0x1F, 0xA5, 0xE3, 0xA9, 0x8F,
+ 0xEC, 0xFC, 0xFF, 0xCA, 0xA9, 0x9C, 0xDA, 0xBA, 0x8A, 0xAC, 0x9D, 0xF8, 0xA4, 0x59, 0x12, 0x34,
+ 0x16, 0xB0, 0x49, 0x30, 0xE4, 0xCF, 0xC4, 0xE9, 0x1C, 0x3A, 0x7A, 0x89, 0x57, 0x38, 0x80, 0xA6,
+ 0xFD, 0xE4, 0xF6, 0xDB, 0xCB, 0x28, 0x0C, 0x0E, 0x06, 0x20, 0xA1, 0x48, 0x6A, 0x32, 0xB7, 0x91,
+ 0x24, 0x90, 0x5B, 0x02, 0xE5, 0xDF, 0xD5, 0xF9, 0xDC, 0xFA, 0x9E, 0xAD, 0xD2, 0x1B, 0x26, 0x00,
+ 0x49, 0x32, 0x94, 0x6F, 0x3B, 0xA6, 0x72, 0x80, 0xF7, 0xD1, 0x2E, 0x36, 0xA3, 0xA7, 0xEB, 0xCD,
+ 0x58, 0x2A, 0x9D, 0x7E, 0x35, 0xD1, 0x0B, 0xF7, 0xEE, 0xC8, 0xBE, 0xBF, 0xA9, 0xFA, 0xBC, 0x9A,
+ 0x81, 0x5E, 0x30, 0xA7, 0x88, 0x0C, 0x6B, 0x2A, 0x77, 0x51, 0x8E, 0x16, 0x80, 0xE0, 0x8F, 0xA9,
+ 0x55, 0xBF, 0x05, 0x73, 0xBC, 0xC8, 0x9B, 0xEE, 0x93, 0xB5, 0x0D, 0x71, 0x99, 0x53, 0x25, 0x03,
+ 0xF8, 0xF9, 0xEE, 0xDE, 0x1C, 0x40, 0xB3, 0x66, 0x7D, 0x5B, 0x44, 0xD6, 0x64, 0xC4, 0x4F, 0x69,
+ 0x72, 0x93, 0x0E, 0x54, 0x4E, 0x70, 0xD1, 0x56, 0xDE, 0xF8, 0xDC, 0xED, 0xBC, 0x50, 0x03, 0x25,
+ 0xC4, 0x07, 0x2C, 0xE2, 0x2B, 0xA2, 0x66, 0x84, 0x75, 0x53, 0xCC, 0x56, 0x43, 0x28, 0x84, 0xA2,
+ 0xB5, 0x28, 0x72, 0x93, 0xF1, 0x9B, 0x85, 0xBD, 0x67, 0x41, 0x9F, 0x17, 0x22, 0x2F, 0xE2, 0xC4,
+ 0xAA, 0xEE, 0xAB, 0x8C, 0x9F, 0x6E, 0x1E, 0x48, 0x7E, 0x58, 0x0F, 0x9E, 0x89, 0xE8, 0x8E, 0xA8,
+ 0x1B, 0x25, 0xD1, 0x3D, 0x0C, 0x44, 0xA7, 0x62, 0x88, 0xAE, 0xDF, 0xB8, 0x55, 0xD7, 0x6D, 0x4B,
+ 0xDD, 0x97, 0xA5, 0xFB, 0xCC, 0x4E, 0x6D, 0x68, 0xC3, 0xE5, 0x58, 0x74, 0x37, 0x85, 0x5D, 0x7B,
+ 0x63, 0x8B, 0x07, 0x45, 0x81, 0x1D, 0x73, 0x3B, 0x27, 0x01, 0xDB, 0x13, 0xF5, 0xF7, 0xED, 0xCB,
+ 0x05, 0xEA, 0x00, 0x23, 0xFB, 0xAC, 0xB8, 0x8A, 0x2F, 0x09, 0x53, 0x93, 0xC3, 0x1A, 0x36, 0x10,
+ 0x08, 0x7F, 0x98, 0x2E, 0xAF, 0xEA, 0xAA, 0xCC, 0xF6, 0xD0, 0x27, 0x3E, 0x87, 0x1E, 0x76, 0x50,
+ 0x9A, 0x8C, 0xF9, 0xBC, 0x8C, 0x4C, 0x2F, 0x6A, 0xCA, 0xEC, 0xD9, 0xFC, 0xD8, 0x46, 0x71, 0x57,
+ 0x4A, 0x79, 0xDC, 0x6C, 0x83, 0x2B, 0x47, 0x0D, 0xFF, 0xD9, 0xA6, 0xB6, 0x30, 0x7B, 0xA4, 0x82,
+ 0x54, 0xB6, 0x0D, 0x72, 0x21, 0x95, 0x5B, 0xB3, 0x34, 0x12, 0x81, 0x5A, 0x7D, 0x77, 0xE5, 0xC3,
+ 0xC0, 0x13, 0x3C, 0xE6, 0x47, 0x61, 0xC9, 0x47, 0x96, 0xB0, 0x10, 0x69, 0x88, 0x52, 0x35, 0x13,
+ 0x9D, 0xD3, 0xA1, 0xBB, 0x90, 0x09, 0x76, 0x2F, 0x74, 0x52, 0xC5, 0x5E, 0xF4, 0x4D, 0x56, 0x70,
+ 0x5A, 0x74, 0xFE, 0x48, 0x8F, 0x75, 0x2A, 0x39, 0x8C, 0xFC, 0x16, 0x4A, 0xB8, 0xB5, 0xDD, 0x03,
+ 0x04, 0x96, 0x42, 0xF4, 0x09, 0x83, 0x5A, 0xBF, 0x5B, 0xF3, 0xCE, 0x45, 0x41, 0x2A, 0xBB, 0x9C,
+ 0x69, 0x88, 0x31, 0x87, 0xF9, 0x05, 0x2C, 0x4F, 0xF9, 0x9E, 0x01, 0x28, 0xED, 0xE3, 0xDE, 0x55,
+ 0xAA, 0x40, 0x3A, 0x8C, 0x0D, 0x97, 0x4A, 0xBB, 0xD8, 0x17, 0xA9, 0xA1, 0x82, 0x06, 0x54, 0xB0,
+ 0x0E, 0xCB, 0x15, 0xA3, 0x49, 0xC7, 0x5E, 0xFF, 0x3C, 0xD7, 0x8D, 0x61, 0x1F, 0x5B, 0x94, 0xED,
+ 0x02, 0xD2, 0x00, 0xB6, 0x6B, 0xF6, 0x4D, 0xDD, 0xD7, 0x54, 0xE5, 0xE2, 0x68, 0xBB, 0x03, 0x0D,
+ 0x11, 0x3C, 0xFD, 0x4B, 0xED, 0x00, 0x3D, 0x5B, 0xEC, 0x21, 0xAB, 0x97, 0x27, 0xDE, 0x29, 0x68,
+ 0x90, 0xB4, 0xF4, 0x42, 0xCE, 0x38, 0x26, 0x78, 0x21, 0xD2, 0x95, 0x64, 0x7B, 0x99, 0x32, 0x2F,
+ 0x68, 0x32, 0x8A, 0x3C, 0x27, 0x2E, 0xD9, 0x91, 0x62, 0x6B, 0x6F, 0xDD, 0xC9, 0x23, 0x3A, 0x95,
+ 0x3B, 0x73, 0x98, 0x2E, 0xE4, 0x81, 0xB5, 0x52, 0xEF, 0x77, 0xFE, 0xC1, 0xFD, 0xE7, 0xCA, 0x51,
+ 0x8D, 0xAC, 0xF1, 0x47, 0x88, 0x2A, 0x72, 0x3E, 0xFE, 0x67, 0xFF, 0xD1, 0xBB, 0x93, 0xF8, 0x25,
+ 0xE6, 0xF6, 0xC0, 0x76, 0xA0, 0xD1, 0xA1, 0x16, 0x0C, 0x4E, 0x24, 0xF8, 0x45, 0x6A, 0xFF, 0xDC,
+ 0x22, 0xC0, 0x32, 0x84, 0x96, 0xE5, 0xA3, 0x20, 0x9A, 0x15, 0xE9, 0xA3, 0xD6, 0x40, 0x46, 0xF6,
+ 0x5F, 0x65, 0xEA, 0x5C, 0xAC, 0x4D, 0x31, 0x1A, 0xD4, 0x02, 0xB0, 0xB4, 0x4E, 0x4D, 0xD3, 0xFB,
+ 0xDA, 0x46, 0x4C, 0xFA, 0xD3, 0xBC, 0xBF, 0x65, 0xCB, 0xEA, 0x47, 0x5C, 0xCD, 0x63, 0x7E, 0xD5,
+ 0x3E, 0x62, 0x8C, 0x3A, 0xB2, 0x82, 0xE0, 0x04, 0x27, 0x90, 0xD1, 0x26, 0xD3, 0x10, 0x13, 0xA6,
+ 0xA0, 0x1D, 0x6D, 0xDB, 0x0F, 0xD5, 0x0A, 0xB9, 0x61, 0x3D, 0x3A, 0x8B, 0x9A, 0x03, 0x49, 0xB5,
+ 0x65, 0x91, 0x24, 0x92, 0xAA, 0x1B, 0x61, 0x1C, 0x09, 0x5A, 0x35, 0xEC, 0x79, 0xAF, 0x06, 0x19,
+ 0x73, 0x6E, 0xCD, 0x7B, 0x7E, 0xFA, 0x54, 0xC8, 0xC5, 0x12, 0xB1, 0xA4, 0x7E, 0xC9, 0x67, 0x7F,
+ 0xA9, 0x15, 0x6C, 0xDA, 0xCA, 0x2C, 0x36, 0x7C, 0xEE, 0xCC, 0x44, 0x7A, 0x07, 0x5E, 0x89, 0xE8,
+ 0x40, 0x92, 0x02, 0xB4, 0xEB, 0x56, 0x6D, 0x5D, 0x39, 0xC3, 0x9C, 0x75, 0xA0, 0xB0, 0xC0, 0x06,
+ 0x98, 0x06, 0x4E, 0xF8, 0x67, 0x6A, 0xDD, 0xD1, 0xC3, 0x50, 0xF5, 0xE6, 0x56, 0x48, 0xCE, 0xFE,
+ 0xA4, 0xB6, 0xC2, 0x74, 0xDA, 0x3D, 0x37, 0x6C, 0x44, 0x1B, 0x39, 0xAD, 0xE1, 0xA2, 0x93, 0x14,
+ 0x96, 0xF0, 0xB6, 0x00, 0xCB, 0x25, 0x3E, 0x7D, 0x70, 0x2D, 0x3B, 0x9B, 0x2F, 0xDF, 0x20, 0x69,
+ 0xAC, 0x04, 0x78, 0xCE, 0xA8, 0x59, 0x21, 0x1E, 0x07, 0xA2, 0xC3, 0x14, 0x2B, 0x9F, 0x64, 0x29,
+ 0x50, 0x29, 0xA9, 0x1F, 0x38, 0xE8, 0x00, 0x8E, 0x18, 0x4A, 0x34, 0xFC, 0x66, 0xCC, 0x7A, 0x7A,
+ 0x01, 0x87, 0x56, 0xE0, 0x17, 0x4C, 0x8B, 0xA1, 0xDB, 0x41, 0xFC, 0xF7, 0x2E, 0xCF, 0x31, 0x79,
+ 0xF5, 0x18, 0x3D, 0x8B, 0xD9, 0x76, 0x7F, 0x6F, 0x0B, 0xB7, 0xDA, 0x01, 0x1B, 0x1B, 0xD0, 0xAD,
+ 0xF7, 0xF7, 0xD0, 0x66, 0x08, 0x8A, 0x52, 0xBE, 0xBE, 0x88, 0x50, 0x3E, 0xFB, 0x91, 0xBA, 0x27,
+ 0x85, 0x1E, 0x4B, 0xFD, 0x5D, 0xC2, 0x4F, 0xEB, 0x79, 0x2C, 0x33, 0x9A, 0xC7, 0x54, 0x43, 0xE2,
+ 0x6C, 0x99, 0x25, 0x93, 0x80, 0xA2, 0xF2, 0x36, 0x74, 0x82, 0x90, 0x34, 0x9E, 0x43, 0x0D, 0xF5,
+ 0xB5, 0xB7, 0xD2, 0x64, 0x47, 0x19, 0x8E, 0xF1, 0xC9, 0x07, 0xA8, 0xB1, 0x20, 0xB8, 0x48, 0x0E,
+ 0x1F, 0xCA, 0x05, 0xB3, 0x85, 0xBF, 0xEA, 0x33, 0x47, 0x4D, 0x6C, 0xFB, 0x5B, 0x19, 0x92, 0xAF,
+ 0xE1, 0x08, 0x39, 0x8F, 0x82, 0xE0, 0xB2, 0x34, 0xB4, 0xDF, 0x0D, 0x69, 0x78, 0xBF, 0x17, 0x09,
+ 0xE3, 0xE7, 0xD4, 0x62, 0x1E, 0xCD, 0x03, 0xA8, 0xB3, 0x26, 0xF3, 0x90, 0x75, 0xEE, 0x4B, 0x58,
+ 0x6B, 0x67, 0xDC, 0x6A, 0xC5, 0xFB, 0xEE, 0x73, 0xD2, 0x40, 0xF4, 0xF6, 0x0F, 0x5F, 0x80, 0xE9,
+ 0x28, 0x9D, 0x65, 0xD3, 0xC6, 0xB0, 0xA6, 0x70, 0x2B, 0x85, 0xC8, 0x33, 0xB3, 0x92, 0xF1, 0x24,
+ 0xFD, 0xAA, 0x87, 0x31, 0xA5, 0xCC, 0xB9, 0x13, 0xEB, 0xD8, 0x55, 0x6E, 0x64, 0xFA, 0x4E, 0x4C,
+ 0x9E, 0x42, 0x0C, 0xBA, 0x57, 0x08, 0x8F, 0xE1, 0x41, 0x0F, 0x28, 0xB9, 0x77, 0xD8, 0x7F, 0x6E,
+ 0xB9, 0xAE, 0xC7, 0x71, 0x16, 0x45, 0x83, 0xA0, 0x8E, 0x11, 0xF9, 0xA7, 0xD5, 0x66, 0x63, 0xD0,
+ 0xE4, 0x19, 0x2D, 0x9B, 0xF0, 0x84, 0xA4, 0x46, 0xAB, 0x37, 0xFA, 0x81, 0xBA, 0x83, 0xE9, 0x35,
+ 0xF4, 0xA2, 0x86, 0x30, 0x77, 0x7B, 0xDC, 0xC1, 0x3F, 0x81, 0xD8, 0x37, 0xDF, 0x51, 0x5E, 0xE7,
+ 0x35, 0x85, 0x60, 0xD6, 0xD6, 0xA1, 0xA7, 0x60, 0x87, 0x10, 0xF1, 0xA6, 0x48, 0x3B, 0xA3, 0x8D,
+ 0x7C, 0x22, 0x8E, 0x38, 0xBC, 0x5C, 0x30, 0x0A, 0xC1, 0xBD, 0x1A, 0x0B, 0xE8, 0xB3, 0x8B, 0x05,
+ 0xE7, 0x4C, 0x7B, 0xCD, 0x9E, 0x6D, 0x23, 0x28, 0x1D, 0x5E, 0x25, 0xE8, 0xF8, 0xB7, 0x9F, 0x01,
+ 0x60, 0x80, 0x30, 0x86, 0xAE, 0x0F, 0x71, 0x18, 0xAF, 0x98, 0x51, 0x2E, 0x38, 0xBD, 0x55, 0x0B,
+ 0xA7, 0xE3, 0x94, 0x22, 0x11, 0x1A, 0xDB, 0xA7, 0x10, 0xF0, 0x86, 0x46, 0x05, 0x68, 0xBD, 0xDE,
+ 0x37, 0x6A, 0x8D, 0x3B, 0x7D, 0xB1, 0x1C, 0xCB, 0xD6, 0xEF, 0x5F, 0x59, 0x6B, 0x9D, 0x26, 0x2B,
+ 0x42, 0x7D, 0xEF, 0x59, 0x73, 0x6F, 0xCC, 0xC5, 0x88, 0x53, 0xBD, 0xE5, 0x10, 0x3C, 0xFC, 0x8A,
+ 0x99, 0xBC, 0xF5, 0x43, 0x44, 0x52, 0xC6, 0xF2, 0xDC, 0xB8, 0x02, 0x0E, 0x3F, 0xDB, 0x34, 0x6D,
+ 0xAE, 0xEB, 0x95, 0x23, 0x5A, 0x9D, 0x17, 0xEC, 0xC6, 0x44, 0xE4, 0xF2, 0x81, 0x20, 0x71, 0x96,
+ 0xA5, 0x0C, 0x79, 0xCF, 0xE1, 0x9C, 0xAD, 0x57, 0xC4, 0xA9, 0x0B, 0x1F, 0x5D, 0x6F, 0xE2, 0xD9,
+ 0x86, 0x4B, 0x1D, 0xAB, 0x4F, 0x91, 0x0E, 0xF9, 0x12, 0x1D, 0x69, 0xAB, 0xC1, 0x22, 0x33, 0x94,
+ 0xB6, 0xE2, 0x84, 0x32, 0x7C, 0xB8, 0x14, 0xCA, 0x66, 0xC4, 0xC4, 0x72, 0x7C, 0xFF, 0x53, 0x49,
+ 0xA6, 0x59, 0x2F, 0x99, 0xD5, 0xEA, 0xEF, 0x63, 0xA8, 0x61, 0xAF, 0xD7, 0x11, 0x2C, 0xED, 0x9A,
+ 0x16, 0xC2, 0x04, 0xB2, 0x18, 0x9B, 0x53, 0xAE, 0x0A, 0x0C, 0x60, 0xBA, 0xCF, 0x55, 0x4A, 0xE3,
+ 0xF3, 0x5C, 0x7F, 0xC9, 0x1C, 0x8F, 0x43, 0xAA, 0x4F, 0xF7, 0xDE, 0x41, 0xEC, 0xF3, 0xCF, 0x45,
+ 0xD9, 0x13, 0x1A, 0xAC, 0x62, 0x77, 0xC5, 0xD4, 0x15, 0xE4, 0x97, 0x52, 0x70, 0xBE, 0x1E, 0x08,
+ 0x58, 0x9B, 0x13, 0xA5, 0x76, 0x72, 0xD4, 0xC0, 0x2D, 0xC7, 0x8C, 0x71, 0x94, 0x74, 0x30, 0xC2,
+ 0xAD, 0xBE, 0xC3, 0x75, 0x89, 0x23, 0x7A, 0x3F, 0xB7, 0x89, 0x58, 0x3F, 0x9F, 0x53, 0x1C, 0xE5,
+ 0xF2, 0xE6, 0xC4, 0x72, 0x70, 0x24, 0x84, 0xC6, 0x2F, 0x2A, 0x63, 0x9C, 0x89, 0x21, 0x78, 0x97,
+ 0x36, 0xD0, 0x36, 0x80, 0x35, 0x7D, 0x98, 0x83, 0x51, 0xA4, 0x93, 0x12, 0x8A, 0x07, 0x5D, 0xB1,
+ 0x14, 0x2D, 0xE9, 0x5F, 0x29, 0xF0, 0x09, 0x9F, 0x57, 0xE6, 0xD7, 0x50, 0xA5, 0xE0, 0x95, 0x56,
+ 0xB2, 0x49, 0x2B, 0x9D, 0x0A, 0xC8, 0x12, 0xBC, 0x6E, 0x7E, 0x76, 0xC8, 0x57, 0x58, 0xDF, 0xEE,
+ 0xAE, 0x0D, 0x4D, 0x02, 0xEC, 0xD5, 0xAC, 0xD8, 0xBB, 0x43, 0x59, 0x19, 0xFA, 0xBA, 0x80, 0xDB,
+ 0x79, 0x65, 0x25, 0xBD, 0xB1, 0x48, 0xF1, 0x18, 0xA4, 0x3F, 0x3A, 0x7A, 0x18, 0x58, 0xB7, 0x0E,
+ 0x6A, 0x47, 0x07, 0x8C, 0x66, 0x35, 0x26, 0xB2, 0x92, 0xFB, 0xC8, 0x88, 0x93, 0xD3, 0x5F, 0x6D,
+ 0xC8, 0xF9, 0xB9, 0x90, 0x78, 0xE4, 0x38, 0x7D, 0x9E, 0xB6, 0x89, 0xC9, 0x58, 0x18, 0xB3, 0x4A,
+ 0x46, 0x86, 0xC6, 0x61, 0x24, 0x71, 0x64, 0xB4, 0xF7, 0x4C, 0x1A, 0x5A, 0x9A, 0xDA, 0xD7, 0xEC,
+ 0x65, 0x20, 0x60, 0xE4, 0xB6, 0x10, 0xF6, 0x47, 0xAF, 0x13, 0x1D, 0x5D, 0xA6, 0xE6, 0x15, 0x12,
+ 0x68, 0x71, 0x31, 0xB8, 0x4F, 0xEE, 0x0F, 0x40, 0x1E, 0x3E, 0x81, 0xC1, 0x4B, 0x0B, 0xFA, 0x10,
+ 0x12, 0xC0, 0x80, 0x73, 0x29, 0xE9, 0x69, 0x21, 0xF3, 0x08, 0x5A, 0x1A, 0x43, 0x03, 0x7A, 0x98,
+ 0xE5, 0x28, 0x68, 0x6C, 0x37, 0x38, 0x77, 0xEE, 0x3E, 0x9E, 0x01, 0x41, 0xE4, 0xA4, 0x51, 0x14,
+ 0x25, 0x22, 0x62, 0xA6, 0xF1, 0x4C, 0xB1, 0x5C, 0x6C, 0xFC, 0x31, 0x71, 0xAF, 0xEF, 0x9D, 0x93,
+ 0x18, 0xF7, 0xB7, 0x4E, 0x99, 0x9B, 0xD9, 0xE3, 0xC6, 0xE9, 0x8E, 0xCE, 0x0B, 0x4B, 0xFE, 0x54,
+ 0x76, 0x02, 0x42, 0xD5, 0x86, 0x42, 0xC6, 0x25, 0x01, 0x42, 0xE2, 0xA2, 0x12, 0x52, 0x77, 0xC4,
+ 0xA7, 0x1C, 0x5C, 0x1A, 0x5E, 0xE7, 0x1E, 0x58, 0xB9, 0x77, 0x6F, 0x2F, 0xB2, 0xF2, 0x04, 0x17,
+ 0xC2, 0xCE, 0x8E, 0xAD, 0xE8, 0xC5, 0xA8, 0xCC, 0xC1, 0x88, 0xE8, 0xA8, 0x19, 0x59, 0xBF, 0x07,
+ 0x55, 0xA4, 0xE4, 0x50, 0x79, 0xEC, 0x39, 0x74, 0xBA, 0x52, 0x49, 0x09, 0xFF, 0xBF, 0x98, 0xC6,
+ 0xF5, 0x2C, 0x6C, 0x78, 0xD4, 0x07, 0x94, 0x32, 0x2D, 0xAF, 0x23, 0x63, 0x11, 0x51, 0x3F, 0x8F,
+ 0xDC, 0xBD, 0xFD, 0xC0, 0x74, 0x74, 0x34, 0xE1, 0x13, 0x62, 0xD0, 0x90, 0x82, 0xC2, 0x56, 0x75,
+ 0x61, 0x60, 0x20, 0xA0, 0xAD, 0xD9, 0xED, 0x95, 0x09, 0x4B, 0xE3, 0xA3, 0x1B, 0x5B, 0xFF, 0x45,
+ 0x0C, 0xB3, 0xF3, 0x1E, 0x08, 0xB2, 0x48, 0x5B, 0xF2, 0x19, 0x4A, 0x0A, 0xB0, 0xF0, 0x44, 0x55,
+ 0xD2, 0xCA, 0x8A, 0xB9, 0x65, 0x7D, 0x25, 0xF9, 0x4E, 0x68, 0x87, 0xC7, 0x9B, 0xDB, 0xDF, 0xE5,
+ 0x0D, 0xA3, 0xE3, 0x0F, 0x3A, 0xA0, 0x7A, 0x7B, 0xD1, 0x9C, 0xEC, 0xAC, 0x70, 0x30, 0x60, 0xB1,
+ 0x22, 0x44, 0x04, 0xC7, 0xD1, 0x1F, 0x91, 0x2F, 0xDB, 0xA1, 0xDB, 0x9B, 0x6A, 0x2A, 0xA1, 0x6A,
+ 0x9C, 0xBF, 0xFF, 0x82, 0x2D, 0xF9, 0x6D, 0x35, 0x0A, 0x6E, 0xC5, 0x85, 0x0A, 0x4A, 0xF6, 0x5D,
+ 0x40, 0xF0, 0xB0, 0x11, 0xC0, 0x16, 0x80, 0x37, 0xB0, 0x6F, 0x7E, 0x3E, 0xE6, 0xA6, 0x11, 0x56,
+ 0x94, 0xBE, 0xFE, 0x8B, 0x43, 0x7E, 0x03, 0xDC, 0x99, 0xD7, 0xEF, 0xAF, 0x5B, 0x1B, 0xFB, 0x01,
+ 0x97, 0x98, 0xD8, 0xAE, 0xCD, 0x8E, 0x8D, 0xA2, 0x85, 0x8E, 0xAA, 0xEA, 0xA9, 0xE9, 0xCD, 0xC5,
+ 0xB8, 0x7F, 0x3F, 0x66, 0x8F, 0xCA, 0xCF, 0xA4, 0x14, 0x03, 0xB6, 0xF6, 0x76, 0x36, 0x30, 0xE7,
+ 0x4A, 0xC7, 0x87, 0x2C, 0x17, 0x6B, 0x57, 0x9D, 0x0F, 0x3B, 0x95, 0xD5, 0xB4, 0xF4, 0x54, 0x41,
+ 0xF1, 0x6C, 0x2C, 0x3C, 0x9E, 0xC3, 0xDE, 0xBC, 0x5E, 0x7C, 0x83, 0xC3, 0xE0, 0xA0, 0x41, 0x00,
+ 0x6D, 0x21, 0x61, 0xED, 0x8D, 0x8A, 0xCD, 0xE6, 0xD8, 0x84, 0xFD, 0xBD, 0x85, 0xC5, 0x0E, 0x2A,
+ 0x89, 0xEB, 0xAB, 0xC3, 0xAE, 0x91, 0xEE, 0xDE, 0xC9, 0x81, 0xE9, 0xA9, 0x8C, 0xCC, 0x86, 0xAB,
+ 0x82, 0xCC, 0x8C, 0xEF, 0xE0, 0x45, 0xA0, 0x44, 0x67, 0xD0, 0x16, 0x56, 0x5C, 0x1C, 0xA3, 0x5E,
+ 0x02, 0xC4, 0x84, 0x67, 0xBE, 0x90, 0xFE, 0xCF, 0x43, 0x34, 0xD6, 0x96, 0x8A, 0xCA, 0xD6, 0xFD,
+ 0x75, 0x24, 0x64, 0xF0, 0x3D, 0xF8, 0x7D, 0x24, 0x50, 0x05, 0xF4, 0xB4, 0x9F, 0xDF, 0xCF, 0xF1,
+ 0x3A, 0x41, 0x01, 0xDA, 0x48, 0xB6, 0x08, 0x1F, 0x20, 0xF3, 0x72, 0x32, 0x62, 0x22, 0x21, 0xE2,
+ 0x66, 0x06, 0x46, 0xC1, 0xBB, 0x88, 0xFB, 0xD2, 0x3B, 0xCB, 0x51, 0x11, 0x6B, 0x2B, 0xA9, 0x63,
+ 0xA5, 0x2A, 0x6A, 0x2E, 0x95, 0x0B, 0xD5, 0x7F, 0x37, 0x86, 0x10, 0x50, 0x61, 0x21, 0x69, 0xA9,
+ 0x5C, 0xB5, 0xF5, 0x48, 0x9A, 0xD3, 0xDA, 0xA8, 0x47, 0x70, 0x96, 0xD6, 0xDD, 0x9D, 0x8B, 0xF7,
+ 0xF0, 0x7C, 0x3C, 0x2D, 0xF7, 0x1C, 0xB7, 0x0A, 0x31, 0xF6, 0x66, 0x26, 0xAE, 0xEE, 0x95, 0x9A,
+ 0x9F, 0x99, 0xD9, 0xA7, 0x7E, 0xB4, 0x3E, 0x2B, 0x57, 0x64, 0x92, 0xD2, 0xA5, 0xE5, 0x5D, 0x59,
+ 0xCB, 0xDF, 0x9F, 0xB5, 0x7C, 0xF4, 0x3C, 0x69, 0xBE, 0x16, 0x09, 0x49, 0xAD, 0xED, 0xDD, 0xD1,
+ 0x53, 0xD2, 0x92, 0x20, 0x6B, 0xAD, 0x2B, 0x27, 0x2C, 0xBE, 0x33, 0x73, 0x75, 0x35, 0x78, 0xAC,
+ 0xD0, 0xFC, 0xBC, 0x8D, 0x83, 0x5A, 0xC3, 0x38, 0xA2, 0x4F, 0x4C, 0x0C, 0xD3, 0x93, 0x5B, 0x29,
+ 0xCE, 0x8F, 0xCF, 0xE0, 0xF9, 0xCC, 0xB9, 0xD4, 0xFD, 0x71, 0x2D, 0x6D, 0x13, 0x53, 0x7F, 0xCD,
+ 0xD4, 0xBC, 0xFC, 0xC9, 0x02, 0x72, 0x42, 0x91, 0xC4, 0xDD, 0xB8, 0xF8, 0x15, 0x55, 0x2F, 0x9B,
+ 0xE0, 0x78, 0x38, 0x39, 0x1E, 0xE3, 0x5E, 0x1C, 0xA8, 0x72, 0x7B, 0x3B, 0x07, 0x47, 0x6E, 0xC8,
+ 0xA6, 0x0C, 0x4C, 0x0B, 0x0E, 0xE2, 0x4E, 0x0D, 0x6F, 0xD9, 0x17, 0x57, 0x6E, 0x2E, 0xB1, 0x7E,
+ 0x58, 0xF5, 0xB5, 0x0C, 0x27, 0x39, 0x67, 0xFF, 0xBC, 0x22, 0x3F, 0x7F, 0x5F, 0x1F, 0xEB, 0x15,
+ 0xBD, 0x2F, 0x6F, 0x33, 0xAA, 0x81, 0xEA, 0xCA, 0x70, 0xA5, 0x74, 0x34, 0x9D, 0xDD, 0x8F, 0xB3,
+ 0x4B, 0xD7, 0x97, 0x3D, 0x39, 0xE8, 0x79, 0x30, 0xC0, 0x99, 0xF8, 0xB8, 0xD1, 0x91, 0x1B, 0x6B,
+ 0xFC, 0x3D, 0x7D, 0x60, 0x72, 0x24, 0x32, 0xB7, 0x2A, 0xCE, 0x45, 0x05, 0x5D, 0x1D, 0xAB, 0x57,
+ 0x32, 0x40, 0x00, 0xD3, 0x44, 0x26, 0x04, 0x83, 0x23, 0xD6, 0x54, 0x14, 0x29, 0x69, 0xED, 0x65,
+ 0x87, 0x9C, 0xDC, 0xBA, 0x54, 0x27, 0x14, 0x92, 0x17, 0x26, 0x90, 0xD0, 0xF2, 0xB2, 0x00, 0x53,
+ 0x64, 0x30, 0x70, 0xF5, 0x33, 0x28, 0x73, 0xFA, 0x7C, 0xE8, 0x35, 0x75, 0xBB, 0xFB, 0x8C, 0x96,
+ 0x63, 0x56, 0x16, 0x94, 0x7B, 0xAC, 0x3B, 0x36, 0x49, 0x09, 0xE1, 0xA1, 0x52, 0x12, 0x73, 0x80,
+ 0x1A, 0xC1, 0x81, 0x7A, 0xA5, 0x59, 0xE5, 0x1D, 0x2B, 0xDF, 0x55, 0x15, 0xF3, 0xB3, 0x08, 0x5A,
+ 0xE6, 0x0E, 0x4E, 0x49, 0xE1, 0x4D, 0xA1, 0x4D, 0x4F, 0x79, 0x97, 0xD7, 0x4F, 0x0F, 0xEA, 0x04,
+ 0xDA, 0xCB, 0x8B, 0xB0, 0x45, 0x2E, 0x05, 0x8A, 0x52, 0x31, 0xC2, 0x82, 0xD4, 0x94, 0x03, 0x76,
+ 0x83, 0xDC, 0x9C, 0xFE, 0xEB, 0x8D, 0xAB, 0x87, 0xEF, 0x51, 0x1F, 0x5F, 0xBA, 0xFA, 0x84, 0x9F,
+ 0x3D, 0x27, 0x67, 0xBB, 0x6E, 0xB5, 0x2E, 0x3A, 0x93, 0xEA, 0xD8, 0x98, 0x4D, 0x0D, 0xAA, 0x46,
+ 0x36, 0x00, 0x40, 0x97, 0xCB, 0xDE, 0x8B, 0xF4, 0x3C, 0xAA, 0x37, 0x77, 0xE7, 0xA7, 0x19, 0x5F,
+ 0x7B, 0x53, 0x13, 0x89, 0x23, 0x29, 0x63, 0xEB, 0x1D, 0x1B, 0xA7, 0xE7, 0x36, 0x76, 0x34, 0xA3,
+ 0x33, 0x50, 0x10, 0xC2, 0x28, 0xE1, 0x68, 0x28, 0x96, 0xBF, 0x88, 0xC8, 0xC9, 0x89, 0x9A, 0xF2,
+ 0x06, 0x84, 0xC4, 0x23, 0xDE, 0xC7, 0x9E, 0xF8, 0x62, 0x85, 0x46, 0x06, 0xA2, 0xE2, 0x05, 0x06,
+ 0x21, 0x43, 0x03, 0x93, 0xC4, 0x85, 0xE7, 0xF0, 0xF7, 0xE6, 0x95, 0xA0, 0x76, 0x7C, 0x14, 0xD9,
+ 0x1B, 0x79, 0xAB, 0x01, 0xB9, 0x5D, 0x3F, 0x55, 0xFA, 0x7E, 0x98, 0x35, 0x61, 0x32, 0x03, 0x80,
+ 0x64, 0x06, 0x5A, 0x8F, 0x3C, 0xFB, 0x99, 0x76, 0xD4, 0xFD, 0xB6, 0x98, 0x89, 0x2D, 0xEB, 0x77,
+ 0x05, 0x67, 0x64, 0xD0, 0xD8, 0x3B, 0x59, 0x52, 0xA7, 0xE3, 0xC5, 0xF5, 0xF3, 0xC1, 0x91, 0xE1,
+ 0x90, 0xF2, 0xC8, 0xE9, 0x8E, 0x3D, 0x5F, 0x02, 0x94, 0xF9, 0xF6, 0xDC, 0x08, 0x84, 0x6A, 0x5F,
+ 0x53, 0x31, 0x67, 0x85, 0xDD, 0x2F, 0x4D, 0x43, 0x50, 0xCD, 0x32, 0x2C, 0x14, 0x09, 0x76, 0xCE,
+ 0x3F, 0x5D, 0xCC, 0x42, 0x6B, 0x46, 0x24, 0x9C, 0x24, 0x8B, 0x46, 0x1E, 0x04, 0x18, 0x66, 0xCF,
+ 0x17, 0x75, 0x37, 0x91, 0x00, 0x77, 0x15, 0xC6, 0xDD, 0x75, 0xBF, 0x19, 0x2D, 0xEA, 0x4F, 0x14,
+ 0xFE, 0x9C, 0x21, 0x6E, 0xE8, 0xA2, 0xC0, 0xFB, 0xEC, 0x2F, 0x8E, 0x72, 0xB4, 0xDA, 0xD6, 0xBD,
+ 0xDC, 0xBE, 0x10, 0x7D, 0xE4, 0xB7, 0xD5, 0xE2, 0x0C, 0x58, 0x6E, 0xE5, 0x37, 0x31, 0x55, 0xD5,
+ 0x5A, 0x38, 0xE6, 0x0D, 0xF7, 0x4A, 0x28, 0x0C, 0x69, 0x17, 0x0B, 0xCF, 0x42, 0x0A, 0x20, 0x9B,
+ 0x79, 0x1B, 0xDE, 0x16, 0x76, 0x43, 0x21, 0x84, 0x2E, 0x4B, 0x4C, 0xD4, 0xB1, 0xC7, 0xD3, 0xA5,
+ 0x38, 0x5A, 0x93, 0x1A, 0xBC, 0x49, 0x2B, 0x44, 0x02, 0x88, 0x60, 0x3B, 0x9F, 0x6A, 0xFD, 0x26,
+ 0xBE, 0xDC, 0x65, 0x6A, 0xE2, 0xF5, 0x97, 0xA6, 0x9D, 0x71, 0xFF, 0x5D, 0x90, 0xBD, 0xF2, 0xFE,
+ 0x4E, 0x2C, 0xE3, 0x1C, 0x8F, 0x86, 0xE4, 0xB8, 0x54, 0xDD, 0x36, 0x38, 0xFD, 0x1F, 0x9F, 0x31,
+ 0xBA, 0xD8, 0x71, 0x7A, 0x4C, 0x8D, 0xEF, 0x70, 0xB1, 0xB2, 0xD3, 0xB2, 0x74, 0x3E, 0x16, 0x99,
+ 0xBF, 0xDD, 0x6C, 0x62, 0x11, 0x67, 0x05, 0xC7, 0x26, 0xCB, 0x44, 0x5C, 0xEB, 0x58, 0x89, 0x60,
+ 0xEA, 0x88, 0x24, 0x7F, 0x63, 0xFC, 0x9E, 0x2E, 0xE3, 0xF7, 0x81, 0xA5, 0x4F, 0x9F, 0x2D, 0x03,
+ 0x37, 0x55, 0x44, 0xC2, 0x8A, 0x92, 0xF0, 0xA9, 0xF4, 0xAE, 0x96, 0xEB, 0xE1, 0x92, 0x83, 0xA0,
+ 0xF0, 0x92, 0xFF, 0xBE, 0x53, 0x65, 0x07, 0x87, 0x0F, 0x10, 0x6D, 0xAE, 0x64, 0x2F, 0x06, 0x98,
+ 0x1F, 0x7D, 0xBF, 0x11, 0x4A, 0xCF, 0xAD, 0x34, 0x28, 0x1B, 0x4A, 0x82, 0xC1, 0xE1, 0xA3, 0xF3,
+ 0x8F, 0xED, 0x0E, 0x30, 0xB6, 0x1E, 0x7C, 0x19, 0x7B, 0x56, 0x19, 0x9C, 0x29, 0xFE, 0x4B, 0x04,
+ 0xA0, 0xC2, 0xAA, 0xBB, 0xE7, 0xE1, 0x83, 0xB7, 0x78, 0x1E, 0x1A, 0xD7, 0x22, 0x3D, 0x40, 0xCC,
+ 0x6E, 0x0C, 0x90, 0x4F, 0x13, 0x8A, 0xE8, 0x28, 0xAC, 0x2B, 0xCE, 0x36, 0xD4, 0xED, 0xB6, 0xEA,
+ 0x5C, 0x3E, 0xB0, 0x5D, 0xA6, 0xB5, 0xD7, 0xA2, 0x07, 0x90, 0x65, 0x26, 0xA0, 0xDF, 0xC2, 0xAC,
+ 0xD0, 0xB2, 0x8C, 0xED, 0x7E, 0xF9, 0x9B, 0x36, 0xFF, 0x66, 0x9D, 0x28, 0x33, 0x25, 0x51, 0xC5,
+ 0x6D, 0x0F, 0xDB, 0x07, 0x42, 0x75, 0x17, 0x86, 0x15, 0xD1, 0x77, 0x75, 0x78, 0xA2, 0x1A, 0x09,
+ 0x7C, 0x1E, 0xC3, 0x0E, 0x70, 0x01, 0x63, 0xC0, 0x68, 0x1F, 0x0A, 0xC6, 0x4E, 0x96, 0x2C, 0x0B,
+ 0xB8, 0xDA, 0x33, 0x3A, 0x46, 0xDA, 0xB8, 0x2D, 0xB4, 0xAA, 0xD6, 0xAF, 0x5E, 0x87, 0x3C, 0x0A,
+ 0x1D, 0x7F, 0xFD, 0x51, 0x83, 0x93, 0xF1, 0xA1, 0x18, 0x49, 0x7A, 0xE0, 0x39, 0xEF, 0x5B, 0x05,
+ 0xC9, 0xAB, 0x1C, 0x64, 0x95, 0x7A, 0x18, 0x5E, 0x7E, 0x4E, 0x1C, 0x81, 0x71, 0x23, 0x13, 0x81,
+ 0x7D, 0x1F, 0xCA, 0x06, 0x4F, 0xDB, 0xB9, 0x25, 0xE9, 0x37, 0x8B, 0x6F, 0xAF, 0x08, 0xCD, 0x74,
+ 0x29, 0x4B, 0x8B, 0x13, 0x01, 0xCC, 0xAE, 0x7C, 0x00, 0xC8, 0x62, 0x79, 0x3D, 0xFB, 0x5F, 0x15,
+ 0x19, 0x7B, 0xE9, 0x41, 0x86, 0x87, 0xE5, 0xB0, 0x0A, 0x08, 0x68, 0xB3, 0xFB, 0x49, 0x99, 0x61,
+ 0xA6, 0xC4, 0xFC, 0xEB, 0x41, 0x23, 0x41, 0xD3, 0xDF, 0x35, 0xBD, 0x5B, 0x93, 0xF6, 0xF1, 0xB6,
+ 0xCA, 0xA8, 0x57, 0x2C, 0xD1, 0x3A, 0x58, 0x5A, 0x2A, 0x5B, 0x48, 0xC0, 0x8C, 0x30, 0xEE, 0x6F,
+ 0x47, 0x25, 0x62, 0x94, 0x02, 0x9A, 0xF8, 0x29, 0x34, 0x8A, 0x56, 0x0F, 0x54, 0x4D, 0x36, 0xCA,
+ 0xC0, 0xA2, 0x9D, 0xEC, 0x12, 0x31, 0x53, 0x92, 0xE6, 0xEF, 0x84, 0xB8, 0xE2, 0xD9, 0x80, 0xE8,
+ 0x61, 0x03, 0x47, 0x97, 0xD3, 0xD7, 0xB5, 0xB5, 0x8C, 0x78, 0xEE, 0x45, 0x73, 0x61, 0x11, 0xC1,
+ 0x0B, 0x69, 0xBA, 0x00, 0x9A, 0x39, 0x5B, 0x12, 0x04, 0xD8, 0x66, 0x6D, 0xDE, 0x27, 0xBC, 0x2A,
+ 0x71, 0x13, 0x56, 0x96, 0xCE, 0xD2, 0xB0, 0xAD, 0x25, 0x83, 0x47, 0x17, 0xE6, 0xCD, 0x84, 0xF8,
+ 0x12, 0x70, 0x2A, 0x89, 0x1B, 0x30, 0x52, 0x9A, 0x4D, 0x54, 0x2F, 0xA8, 0xBB, 0x0D, 0xD9, 0x65,
+ 0xE0, 0x82, 0xEE, 0xBF, 0x78, 0xBB, 0xD9, 0x72, 0x6F, 0x47, 0x0D, 0x99, 0x6C, 0xA7, 0x0E, 0x18,
+ 0xA1, 0xC3, 0xA3, 0xB3, 0x5F, 0x70, 0x12, 0x9E, 0xD1, 0xE5, 0xB3, 0x85, 0x72, 0x68, 0x10, 0xC9,
+ 0x32, 0x50, 0x59, 0xDA, 0xF9, 0xB2, 0xD0, 0xFA, 0xAE, 0x6B, 0xCC, 0x74, 0x2E, 0xA1, 0x4C, 0x5C,
+ 0x35, 0x57, 0x06, 0x82, 0x07, 0x8E, 0xEC, 0x38, 0x08, 0x48, 0x6A, 0xF1, 0xBC, 0x52, 0xDE, 0x3D,
+ 0xA9, 0xCB, 0x2B, 0x33, 0x05, 0x63, 0x01, 0xD7, 0x59, 0x45, 0x3B, 0xAD, 0x45, 0x55, 0x27, 0xC3,
+ 0x72, 0x10, 0x1D, 0xDE, 0x8D, 0x6B, 0x09, 0x57, 0xE8, 0x3F, 0x8A, 0x66, 0x23, 0x34, 0x41, 0xC4,
+ 0xC7, 0xA5, 0xC2, 0xB4, 0x14, 0x73, 0x11, 0xD6, 0x96, 0xB9, 0xF4, 0x9E, 0x49, 0xC9, 0x2B, 0x53,
+ 0x82, 0xE0, 0x9B, 0xA8, 0xD0, 0x81, 0xE3, 0xE0, 0xB0, 0xBA, 0xD2, 0xBB, 0xC7, 0xB7, 0xA5, 0xA3,
+ 0x9E, 0xFC, 0x16, 0x39, 0xF2, 0x5E, 0x3C, 0x1D, 0x57, 0x95, 0x35, 0x73, 0x85, 0xB1, 0xE7, 0xE7,
+ 0xBD, 0xDF, 0x2E, 0x22, 0x54, 0x9C, 0xFE, 0x79, 0xEF, 0x67, 0x8D, 0x39, 0x1D, 0x88, 0x7F, 0x46,
+ 0xAB, 0xC9, 0x69, 0x73, 0x15, 0xC8, 0xAA, 0x6C, 0x44, 0xDC, 0x26, 0x29, 0x94, 0xA9, 0xF6, 0xEE,
+ 0xD5, 0xB7, 0x91, 0xF5, 0x3F, 0xAD, 0xCF, 0x23, 0x09, 0x40, 0x6B, 0xF8, 0x87, 0xF3, 0xE5, 0xA7,
+ 0xC1, 0xA3, 0x94, 0xE4, 0xBE, 0xA4, 0xC6, 0xAB, 0xC3, 0xA4, 0xA1, 0xD6, 0xA4, 0xCB, 0xC6, 0xBC,
+ 0x3E, 0x5C, 0xC5, 0x4A, 0x4B, 0x74, 0x16, 0x8E, 0xE4, 0xAF, 0x86, 0xFA, 0xEA, 0x51, 0x88, 0x68,
+ 0xF8, 0x9A, 0x77, 0x3E, 0x60, 0xAA, 0xC8, 0x7B, 0x95, 0xF1, 0xF7, 0xD5, 0x7E, 0xF4, 0x1C, 0x59,
+ 0xCB, 0xA9, 0x5E, 0x24, 0x50, 0x33, 0x51, 0xD2, 0x48, 0x4C, 0x2A, 0xB5, 0xA7, 0x80, 0xC5, 0xF4,
+ 0x62, 0x00, 0x0C, 0xDF, 0x40, 0x98, 0xFA, 0x69, 0x9B, 0x21, 0xF9, 0x0B, 0x02, 0x4E, 0x60, 0x9F,
+ 0xAF, 0xCD, 0x7D, 0x63, 0xF0, 0xB3, 0xD1, 0xF2, 0xE2, 0xFF, 0x80, 0xAC, 0x6F, 0xEC, 0x0D, 0x50,
+ 0xC4, 0xA6, 0x89, 0xFC, 0xA4, 0x58, 0x3A, 0x4D, 0x8B, 0x20, 0xE9, 0x1A, 0x30, 0x6E, 0x52, 0x8D,
+ 0xF3, 0x91, 0xB4, 0xF6, 0x7F, 0x42, 0x20, 0x8C, 0x6C, 0x0F, 0x0E, 0xD2, 0xDB, 0x3A, 0xB9, 0x32,
+ 0xED, 0x8F, 0x7B, 0x27, 0x48, 0x22, 0x40, 0xDB, 0x97, 0xB1, 0xF5, 0x97, 0x27, 0x20, 0x45, 0xD4,
+ 0x56, 0x34, 0x7A, 0x9D, 0x43, 0xCE, 0xAC, 0x3C, 0xD8, 0x6D, 0xBA, 0x04, 0xCA, 0x22, 0xA8, 0x3B,
+ 0x90, 0xA0, 0x8D, 0xAF, 0x98, 0x9C, 0xB9, 0xBA, 0xB0, 0x9D, 0xB2, 0xBF, 0xFA, 0xBC, 0xFB, 0x9E,
+ 0xB5, 0xA3, 0xAB, 0x89, 0x16, 0xE2, 0x49, 0x34, 0xE9, 0xD8, 0xAE, 0xFA, 0xCC, 0x4E, 0x3F, 0x6C,
+ 0x12, 0x7D, 0xD2, 0xF0, 0x42, 0xA3, 0x5C, 0x60, 0x05, 0xA2, 0x38, 0x80, 0x63, 0xA1, 0x7F, 0x83,
+ 0x58, 0x8F, 0x6A, 0x48, 0xDA, 0x9A, 0xFD, 0xF8, 0x3D, 0x81, 0x23, 0xA3, 0x07, 0x63, 0xD9, 0x41,
+ 0xD3, 0x5A, 0x34, 0x16, 0xD8, 0xD8, 0xBD, 0xFA, 0xBA, 0xCA, 0xEF, 0xE8, 0x39, 0x90, 0x14, 0xB2,
+ 0x02, 0xC6, 0x79, 0x5B, 0xCB, 0x82, 0xF4, 0xE9, 0x42, 0xB4, 0x69, 0x96, 0x76, 0xF5, 0x3E, 0xD7,
+ 0xD1, 0xB5, 0xD9, 0xFB, 0xB5, 0x7A, 0x72, 0x97, 0xEE, 0x21, 0x50, 0x03, 0x94, 0x49, 0x60, 0x6B,
+ 0xFD, 0xBE, 0xFE, 0xDC, 0xFB, 0xE0, 0xA6, 0xD9, 0xBF, 0xDE, 0xFE, 0xFC, 0xB1, 0x99, 0x95, 0xBB,
+ 0x9E, 0x56, 0x75, 0x57, 0xF8, 0xAB, 0xEE, 0xDA, 0x75, 0xD4, 0x3E, 0xF6, 0xC8, 0x0E, 0x7B, 0x2C,
+ 0xFE, 0xEB, 0xA8, 0x8A, 0x21, 0xDF, 0x43, 0x03, 0x5C, 0xE7, 0x24, 0xC5, 0x61, 0x97, 0x4B, 0xB5,
+ 0x87, 0xE5, 0xDF, 0xFD, 0x30, 0xC7, 0x4A, 0x12, 0x56, 0xB0, 0x79, 0x92, 0xE8, 0x8E, 0xDB, 0xAC,
+ 0x20, 0x3B, 0xA6, 0x84, 0x5D, 0x65, 0x85, 0x7F, 0x27, 0x7D, 0xC5, 0x5F, 0x73, 0xA5, 0x6B, 0x87,
+ 0xF9, 0x15, 0x51, 0x73, 0x84, 0x11, 0x28, 0xA6, 0x9F, 0xEC, 0xEC, 0xCE, 0x96, 0x7F, 0x54, 0x5D,
+ 0x31, 0x3A, 0xB6, 0x94, 0x6F, 0x45, 0x97, 0x4D, 0xA2, 0xDB, 0xE6, 0xF9, 0x57, 0x65, 0x8F, 0x47,
+ 0x2F, 0x77, 0xE5, 0xC7, 0x95, 0x09, 0x21, 0xB7, 0x51, 0x49, 0x87, 0x6B, 0x26, 0xF3, 0x68, 0xD1,
+ 0xBC, 0xAB, 0xAA, 0x88, 0x78, 0x0B, 0xCE, 0x5A, 0x50, 0xF2, 0x3D, 0xD0, 0xC1, 0x1F, 0x63, 0x3D,
+ 0x98, 0x12, 0x37, 0x15, 0xA4, 0x62, 0x7B, 0x86, 0xC2, 0x06, 0x5B, 0x24, 0xAA, 0xBA, 0xAD, 0x98,
+ 0x52, 0xD2, 0x3D, 0x1F, 0x62, 0xD0, 0x0F, 0x40, 0xA0, 0x36, 0x09, 0x14, 0x66, 0xF1, 0x2A, 0xD3,
+ 0xEB, 0x41, 0x17, 0x35, 0xD3, 0x1B, 0x75, 0xF1, 0x7C, 0xD5, 0x36, 0xF7, 0x40, 0x07, 0xFA, 0x25,
+ 0x70, 0x2F, 0xE2, 0xC0, 0xCC, 0xDD, 0xAC, 0xEE, 0xD7, 0xB9, 0xF1, 0x9B, 0xC9, 0x1E, 0x6A, 0x3C,
+ 0x93, 0xF5, 0xDB, 0xF9, 0xBD, 0xF2, 0xF2, 0x9F, 0xB6, 0xDF, 0xF6, 0xFD, 0x88, 0x0C, 0x39, 0x2E,
+ 0x24, 0x90, 0x09, 0x2B, 0x0B, 0x66, 0xD0, 0x29, 0x49, 0x58, 0x8E, 0x7A, 0x33, 0xA7, 0x29, 0x85,
+ 0x46, 0xC2, 0x39, 0x1B, 0x81, 0x0C, 0x30, 0xA3, 0x91, 0x14, 0x1A, 0x36, 0x08, 0x04, 0xB1, 0x26,
+ 0x6E, 0x62, 0xB1, 0x93, 0x2C, 0x4A, 0xDB, 0x0E, 0x6C, 0x7E, 0x8D, 0x5C, 0xAF, 0xEA, 0xF8, 0xC8,
+ 0x83, 0x4E, 0x70, 0x52, 0xE4, 0x26, 0x7F, 0xC6, 0x01, 0x0D, 0x93, 0x2F, 0x80, 0x0D, 0x30, 0x2F,
+ 0x3C, 0x99, 0x18, 0x3A, 0xB9, 0xE6, 0xE2, 0x9B, 0x7D, 0x6E, 0x8C, 0x4C, 0xB7, 0xEF, 0xE5, 0xCD,
+ 0xAE, 0xFF, 0xEC, 0xCE, 0x2D, 0x43, 0xD3, 0x0F, 0x88, 0xBE, 0xA9, 0x9C, 0x84, 0x4D, 0x74, 0x6F,
+ 0xB2, 0x5D, 0x52, 0x70, 0x33, 0x8C, 0x02, 0x11, 0xC5, 0xFF, 0xA5, 0xDD, 0x68, 0x86, 0x53, 0xA4,
+ 0xDA, 0x52, 0x35, 0x17, 0xE3, 0x79, 0x27, 0xC1, 0x2D, 0x2A, 0x98, 0x08, 0x22, 0xB3, 0x2C, 0x91,
+ 0x5F, 0x71, 0x93, 0xB1, 0x71, 0x8A, 0x46, 0x53, 0x72, 0x2D, 0xC0, 0x0F, 0xE0, 0x8F, 0xD2, 0xAD,
+ 0x4D, 0x25, 0xD5, 0xF7, 0x7C, 0x1F, 0xDE, 0x5E, 0x36, 0x6D, 0xC4, 0x4F, 0x4D, 0x56, 0xA6, 0x74,
+ 0x86, 0x5F, 0x64, 0x46, 0x1A, 0x7E, 0xD9, 0x38, 0x00, 0xB6, 0x29, 0x94, 0xCD, 0x5E, 0x2E, 0x7C,
+ 0x8E, 0xED, 0xDE, 0xFC, 0x10, 0xB4, 0x19, 0x32, 0x0F, 0xF5, 0x65, 0xD7, 0x34, 0xC1, 0x48, 0xE3,
+ 0x77, 0xD1, 0x1B, 0x39, 0xB4, 0x73, 0x7A, 0x96, 0x47, 0xA0, 0x78, 0x82, 0xDD, 0x5A, 0x3A, 0x78,
+ 0x85, 0x0A, 0x32, 0x10, 0x3B, 0x04, 0x82, 0x19, 0xD4, 0xEF, 0xA4, 0xCD, 0x9D, 0x58, 0x78, 0x7A,
+ 0xC0, 0xB4, 0xC9, 0xEB, 0xBE, 0xB9, 0xBA, 0x9C, 0x6F, 0x28, 0xD8, 0x0A, 0xB3, 0xAF, 0xA1, 0x8D,
+ 0xB7, 0x4C, 0x46, 0x64, 0x76, 0xD5, 0x1E, 0x54, 0x25, 0x90, 0x2A, 0xB2, 0x03, 0x23, 0x9D, 0x01,
+ 0xA9, 0x01, 0x15, 0x37, 0x9E, 0xCA, 0xE9, 0xBC, 0x94, 0x00, 0x0B, 0x22, 0x2E, 0xF2, 0x61, 0xD0,
+ 0x1D, 0x31, 0x91, 0xB3, 0x8B, 0xC6, 0xF0, 0xA9, 0xBB, 0x71, 0x55, 0x53, 0x32, 0xB7, 0x38, 0x95,
+ 0xFC, 0x04, 0x45, 0x67, 0x7D, 0x16, 0xD6, 0x5F, 0x81, 0xBF, 0xA1, 0x9D, 0xAD, 0xDC, 0xCC, 0xFE,
+ 0x03, 0x7C, 0xC2, 0xE0, 0x6C, 0x0E, 0xDF, 0x4E, 0xA7, 0xCF, 0xF7, 0xED, 0x2C, 0xC4, 0x55, 0xE6,
+ 0x0D, 0x8A, 0x3A, 0x18, 0xFF, 0xF4, 0xB6, 0xDD, 0x9B, 0x43, 0x47, 0x61, 0xB8, 0x88, 0x8D, 0xAA,
+ 0xED, 0x05, 0x55, 0x77, 0x11, 0xBD, 0x11, 0x33, 0xE8, 0x63, 0x14, 0x41, 0xDA, 0x3C, 0x5B, 0x1E,
+ 0x5E, 0xCB, 0x28, 0x0A, 0x27, 0x89, 0x13, 0x05, 0xF0, 0x72, 0x1D, 0x50, 0x9C, 0x48, 0x69, 0x6A,
+ 0xCB, 0x53, 0x25, 0x07, 0x66, 0xC4, 0x1F, 0x44, 0xD6, 0x02, 0x4B, 0x20, 0xBB, 0xAE, 0xA8, 0x8C,
+ 0x84, 0xB0, 0x89, 0xAB, 0x01, 0xAC, 0x10, 0x23, 0x18, 0xA7, 0x20, 0x85, 0x37, 0xE7, 0x6D, 0xC5,
+ 0x44, 0x2D, 0xD4, 0xF6, 0xF0, 0x23, 0x6E, 0xD2, 0xE1, 0x62, 0x1C, 0x40, 0x3F, 0xE6, 0x64, 0xC4,
+ 0xAA, 0x54, 0x43, 0x61, 0x2E, 0x08, 0x9B, 0x0C, 0x37, 0xD6, 0x7E, 0xF4, 0x44, 0x47, 0xBE, 0x65,
+ 0x1E, 0x64, 0xC7, 0xE5, 0x3E, 0x19, 0x9A, 0x1C, 0x80, 0x04, 0x1B, 0x26, 0x4F, 0x60, 0x92, 0x42,
+ 0x8B, 0xFC, 0xCA, 0xE8, 0x29, 0x57, 0xC3, 0x0B, 0x28, 0x3E, 0x89, 0x1C, 0xEA, 0xB8, 0xEF, 0x9A,
+ 0xDE, 0xF9, 0x9A, 0xB8, 0xAC, 0xEA, 0xFB, 0x8E, 0x4F, 0x1A, 0xCA, 0x38, 0x48, 0x06, 0xF3, 0x24,
+ 0xB3, 0xE7, 0xE9, 0xCB, 0xD6, 0x06, 0x6D, 0xF4, 0x71, 0x7B, 0x95, 0x59, 0x6C, 0xC6, 0x17, 0xE4,
+ 0x07, 0xD7, 0x6D, 0x4F, 0x4B, 0x22, 0xD4, 0x69, 0x4C, 0x4C, 0x9F, 0x6E, 0x59, 0x12, 0xF6, 0x30,
+ 0xF7, 0xE3, 0xA9, 0x8B, 0x57, 0xAF, 0x45, 0x75, 0xE3, 0x8F, 0xF3, 0xAD, 0x18, 0x00, 0xA5, 0x22,
+ 0x32, 0x6F, 0xE0, 0xC2, 0x72, 0xC1, 0x0E, 0x50, 0x1C, 0x08, 0x8B, 0x2A, 0xDC, 0x4A, 0x2B, 0x68,
+ 0x35, 0x91, 0x19, 0x3B, 0x5B, 0x33, 0xD5, 0x79, 0xE7, 0x20, 0x58, 0x02, 0x86, 0x7B, 0x40, 0x59,
+ 0xCE, 0x42, 0x31, 0x13, 0x68, 0x1A, 0xCF, 0x4A, 0x3B, 0xC3, 0x67, 0xE1, 0xF8, 0x8A, 0xCF, 0xA8,
+ 0x59, 0x35, 0xD1, 0xF3, 0xEB, 0xF1, 0xA7, 0xC9, 0x0A, 0xE1, 0x74, 0xC3, 0xE1, 0x9F, 0xC3, 0xBD,
+ 0xFF, 0x51, 0x13, 0x31, 0xEE, 0xEC, 0xBF, 0xCC, 0xF5, 0x66, 0x0C, 0x44, 0x9E, 0x7E, 0x5D, 0x5C,
+ 0xE4, 0x0D, 0x54, 0x76, 0x1D, 0x21, 0x81, 0x3F, 0xCD, 0x45, 0x17, 0x67, 0x16, 0x77, 0xDC, 0x55,
+ 0x76, 0x6B, 0xA0, 0x82, 0xCF, 0x96, 0xE4, 0xED, 0x4E, 0xA1, 0x70, 0x83, 0xBC, 0xC8, 0xC9, 0xEA,
+ 0x10, 0x92, 0x3F, 0x1D, 0xC0, 0x41, 0x3C, 0xE2, 0xB8, 0x27, 0x00, 0x05, 0x5E, 0x74, 0x97, 0x56,
+ 0x99, 0xA8, 0x8C, 0xAE, 0x2B, 0x15, 0x83, 0x09, 0x5A, 0xA5, 0x60, 0x87, 0x6A, 0xB0, 0x67, 0x92,
+ 0x13, 0xC7, 0x69, 0x4B, 0xA2, 0x34, 0x2B, 0x80, 0xC8, 0x51, 0x06, 0x73, 0xA2, 0xBB, 0xA4, 0x99,
+ 0xFF, 0x6F, 0xB5, 0xF6, 0x68, 0x9F, 0xD2, 0x2B, 0xB0, 0x5A, 0x8C, 0x19, 0xCC, 0x1B, 0xF2, 0x58,
+ 0xEF, 0xD4, 0x1E, 0x5D, 0xEF, 0x60, 0xAA, 0xAC, 0x24, 0xEC, 0xAE, 0xAF, 0xA9, 0xC9, 0x45, 0x8A,
+ 0x2E, 0xF3, 0xF8, 0xBB, 0x4E, 0xBA, 0xD1, 0x0D, 0x9C, 0x7D, 0x87, 0x3E, 0x3E, 0xA3, 0xB8, 0xE0,
+ 0x67, 0x54, 0x16, 0x55, 0x24, 0x47, 0x46, 0x67, 0xDA, 0xD0, 0x6C, 0x93, 0x9E, 0x2B, 0x90, 0x68,
+ 0xFC, 0x3A, 0xE3, 0xA0, 0x06, 0x76, 0x55, 0x45, 0x06, 0x33, 0x53, 0x70, 0x8E, 0x2F, 0x84, 0x6C,
+ 0x7B, 0xF6, 0xA8, 0xEB, 0x36, 0x14, 0x07, 0x75, 0xB4, 0xF5, 0x27, 0xB6, 0x4E, 0x25, 0x4E, 0x66,
+ 0xBC, 0x95, 0x0C, 0x4F, 0x89, 0x01, 0xAD, 0xCA, 0x0B, 0x9D, 0xF0, 0xDE, 0x73, 0xF0, 0xA6, 0xB3,
+ 0x2C, 0x1C, 0x15, 0x56, 0xE5, 0xAA, 0x6A, 0xA6, 0xCD, 0x82, 0x29, 0xC1, 0x1D, 0x05, 0x3D, 0x46,
+ 0x04, 0xBC, 0x9D, 0xDE, 0x1D, 0xA4, 0x9C, 0x5E, 0x5C, 0x20, 0x1A, 0x63, 0x2D, 0x81, 0x89, 0xC2,
+ 0xFA, 0x7E, 0xA1, 0xE2, 0x1A, 0xFB, 0xC4, 0x59, 0xAF, 0xB2, 0x7B, 0xF1, 0x0E, 0x27, 0x0C, 0x64,
+ 0xF8, 0x91, 0x4C, 0x0F, 0x86, 0xD6, 0x75, 0xC5, 0xA8, 0x4B, 0x85, 0x08, 0x03, 0x76, 0x50, 0x35,
+ 0x70, 0x11, 0x44, 0x07, 0x5D, 0xE0, 0x98, 0x1E, 0xC9, 0x2D, 0x82, 0x6E, 0x79, 0xC7, 0x9B, 0x84,
+ 0x33, 0xEB, 0xFD, 0xBE, 0x5E, 0xAB, 0xD0, 0x1D, 0x30, 0xE8, 0xBE, 0xAB, 0xC5, 0x0A, 0xEA, 0x49,
+ 0xE6, 0xDC, 0x1F, 0x5C, 0x3D, 0xD7, 0xCF, 0x7E, 0xF0, 0xB5, 0x23, 0xF6, 0x12, 0x62, 0x55, 0x21,
+ 0x85, 0x34, 0x94, 0xD7, 0xCF, 0x13, 0xF9, 0x8C, 0x5A, 0x62, 0x5E, 0x21, 0x01, 0x40, 0x64, 0x03,
+ 0xA2, 0xD8, 0x5F, 0x1C, 0x8E, 0x5E, 0xF5, 0xCD, 0x95, 0x7C, 0x8F, 0x3F, 0xA3, 0xFE, 0x78, 0xBD,
+ 0xE8, 0x2A, 0xE7, 0xA4, 0x84, 0x94, 0x35, 0xC7, 0x54, 0x9A, 0xA8, 0xD9, 0x9A, 0x6B, 0xD4, 0x28,
+ 0xC2, 0x65, 0x82, 0xC1, 0xFA, 0x6C, 0xB3, 0xB9, 0x0E, 0x89, 0xE1, 0xCA, 0x06, 0x26, 0x05, 0x65,
+ 0x43, 0xED, 0x8B, 0xC8, 0xEE, 0x69, 0xA2, 0xAD, 0x36, 0xAA, 0xFA, 0xE9, 0xE2, 0xEC, 0x2B, 0xAF,
+ 0xB6, 0xC8, 0x5B, 0x18, 0x11, 0x38, 0x0C, 0x52, 0xAC, 0xE4, 0x2E, 0xA7, 0xE9, 0xCB, 0x07, 0x88,
+ 0xE9, 0x90, 0x5C, 0x1F, 0xE8, 0x3F, 0xF2, 0xAB, 0x34, 0x47, 0x15, 0x04, 0xFF, 0xB9, 0x63, 0xFA,
+ 0x2D, 0xA6, 0xAE, 0xED, 0xAD, 0x66, 0xEE, 0xEE, 0x4A, 0xC9, 0xE5, 0x8A, 0xFC, 0x9F, 0x46, 0xDC,
+ 0x0F, 0x5B, 0x71, 0x32, 0xB1, 0xEB, 0x7F, 0xF2, 0x4C, 0x8B, 0xA1, 0xC8, 0xD3, 0x78, 0x8E, 0x3B,
+ 0xA9, 0x3F, 0xB3, 0xF0, 0x92, 0xD3, 0x64, 0xD1, 0x75, 0x13, 0x00, 0x50, 0x21, 0xC0, 0xC4, 0x83,
+ 0x59, 0x0B, 0x77, 0x34, 0xEB, 0x74, 0xBA, 0xA8, 0x93, 0x3E, 0xCB, 0x7D, 0x66, 0xA4, 0xE7, 0xE7,
+ 0x82, 0xCA, 0x6D, 0x2E, 0xDC, 0x49, 0xB0, 0x9F, 0xC7, 0xD5, 0x74, 0x96, 0x49, 0x43, 0x2F, 0x00,
+ 0xB5, 0x9D, 0x0D, 0x4E, 0xC2, 0x86, 0x61, 0x81, 0xDD, 0x29, 0x92, 0x6A, 0xF7, 0xB8, 0x6A, 0xFB,
+ 0xBE, 0x7A, 0xE1, 0xA2, 0x79, 0x87, 0xDB, 0x3A, 0xDF, 0xC4, 0x7D, 0x87, 0x2B, 0xF7, 0xF9, 0xB4,
+ 0x9D, 0x3D, 0x85, 0xC6, 0xD7, 0x8A, 0x78, 0x94, 0x09, 0x70, 0x1F, 0x33, 0xB7, 0xBA, 0x28, 0xF9,
+ 0xAD, 0x94, 0x1C, 0x5F, 0xE4, 0xA3, 0x62, 0xA7, 0x7D, 0xA9, 0xB2, 0xEA, 0x0A, 0x67, 0x48, 0x24,
+ 0xBD, 0x2F, 0xB7, 0xF4, 0x4D, 0xF1, 0x99, 0x0E, 0xB3, 0x0C, 0xD9, 0x4F, 0x67, 0xB4, 0xF6, 0xF7,
+ 0x0D, 0xB4, 0x9C, 0xDF, 0x80, 0x80, 0x25, 0xC3, 0x11, 0x61, 0x16, 0x22, 0xB9, 0xCD, 0x51, 0x8E,
+ 0x73, 0x44, 0x12, 0x51, 0xBF, 0x35, 0xAF, 0xFC, 0x79, 0x06, 0x19, 0x45, 0xBF, 0xBB, 0x21, 0xF8,
+ 0x20, 0x05, 0x00, 0x43, 0x7C, 0x9A, 0xC3, 0x3F, 0xF4, 0x1A, 0x88, 0x59, 0x8B, 0x7F, 0xD1, 0x3C,
+ 0x96, 0xDA, 0x69, 0x2A, 0x10, 0x31, 0x04, 0x53, 0xE5, 0x0A, 0x89, 0x49, 0xCD, 0x0B, 0xE3, 0x48,
+ 0xFD, 0x80, 0x58, 0x1B, 0x38, 0xCA, 0xD7, 0x7B, 0x17, 0x23, 0x52, 0x60, 0x33, 0xF2, 0xE4, 0xB1,
+ 0x39, 0xB6, 0xAA, 0xE9, 0x0E, 0xFE, 0xD5, 0x4D, 0x81, 0x78, 0x9F, 0x3B, 0xA0, 0xD8, 0x5D, 0x9B,
+ 0x44, 0x13, 0x72, 0x31, 0x34, 0x56, 0x47, 0x77, 0xCF, 0x6F, 0xC6, 0x2C, 0x38, 0xD5, 0xC8, 0x96,
+ 0xC1, 0x30, 0xD4, 0x97, 0x4B, 0xA7, 0xC9, 0x08, 0xD0, 0x87, 0x31, 0xC4, 0xBB, 0xFB, 0x65, 0xB8,
+ 0x25, 0x14, 0x14, 0x57, 0x2A, 0x99, 0x96, 0x69, 0x3C, 0xFD, 0xA7, 0xBE, 0xA5, 0x88, 0x08, 0xCB,
+ 0x41, 0x02, 0x66, 0x25, 0x17, 0x6E, 0x5C, 0x54, 0x97, 0x91, 0x60, 0xD2, 0xCE, 0x2D, 0xC6, 0x6E,
+ 0x1F, 0xE0, 0xDA, 0x99, 0x91, 0x98, 0x2C, 0xD2, 0x40, 0x9E, 0xB8, 0xDD, 0x37, 0xB2, 0xA0, 0xF1,
+ 0x72, 0xFE, 0xA9, 0xEA, 0x61, 0x1E, 0x5A, 0x22, 0xE2, 0xF3, 0x77, 0xB0, 0x9B, 0x7B, 0xC5, 0x38,
+ 0xB1, 0x36, 0xA2, 0xE1, 0x95, 0x8C, 0x3C, 0xD6, 0xC3, 0x7A, 0xDF, 0x39, 0xF4, 0x9E, 0x4F, 0xDD,
+ 0x15, 0xBD, 0x8D, 0xCE, 0xD1, 0xDC, 0x28, 0x92, 0x27, 0xBA, 0xFB, 0xF9, 0x69, 0xC3, 0x8F, 0x80,
+ 0x19, 0xA4, 0x98, 0xDB, 0xF3, 0xED, 0x3B, 0xB0, 0xCC, 0x39, 0x93, 0x7A, 0x1E, 0x23, 0x18, 0x60,
+ 0x0A, 0x4A, 0x65, 0x26, 0x75, 0x1B, 0x4B, 0x36, 0xF7, 0x4C, 0xDD, 0x0F, 0x51, 0x46, 0x32, 0x05,
+ 0x8B, 0xC2, 0x6C, 0x2F, 0x56, 0x23, 0x50, 0x15, 0x3A, 0xBF, 0xE3, 0xFC, 0x0D, 0x01, 0x29, 0x42,
+ 0xB7, 0x72, 0xE0, 0xA3, 0x30, 0x42, 0x57, 0x73, 0x1C, 0xCF, 0xB5, 0x8C, 0x5D, 0x07, 0x7F, 0x44,
+ 0x4B, 0x5F, 0x31, 0x72, 0xA0, 0xF3, 0x76, 0xE3, 0x03, 0x27, 0x42, 0x64, 0x10, 0x54, 0x61, 0x17,
+ 0x1A, 0xF1, 0xCE, 0x8D, 0x8F, 0x57, 0xFD, 0xCC, 0xC0, 0x2C, 0x8A, 0x6F, 0x58, 0x57, 0x2A, 0x14,
+ 0xEE, 0x6E, 0xA5, 0xE6, 0x41, 0x6D, 0x09, 0x02, 0x10, 0xDA, 0xAC, 0x99, 0x6D, 0x83, 0xCB, 0xC0,
+ 0xEC, 0x81, 0x48, 0x0B, 0x90, 0x91, 0x24, 0xD3, 0xA5, 0xE5, 0x26, 0xA6, 0x8D, 0x09, 0xA1, 0x4A,
+ 0x9E, 0x68, 0xD3, 0x90, 0xC5, 0xD9, 0x39, 0x86, 0x62, 0x41, 0x45, 0x02, 0xB1, 0xCC, 0x58, 0x8F,
+ 0x77, 0xEF, 0xBD, 0xFE, 0x18, 0xB9, 0x84, 0x5B, 0x6F, 0xEF, 0xE6, 0xAC, 0xE8, 0xDB, 0x16, 0x98,
+ 0xAE, 0xC1, 0x4A, 0x09, 0xDF, 0x02, 0xF8, 0x9C, 0xD2, 0x6A, 0xDE, 0x29, 0x56, 0x20, 0x53, 0x63,
+ 0xBB, 0x6B, 0xF5, 0xB6, 0x97, 0xCE, 0x7C, 0xD4, 0x7A, 0x50, 0x4C, 0x13, 0xEC, 0x9B, 0x52, 0xD8,
+ 0x7E, 0xE7, 0xBC, 0xFF, 0x32, 0x00, 0x17, 0x71, 0x12, 0x37, 0x43, 0x74, 0x0F, 0x37, 0x1D, 0x74,
+ 0x68, 0x18, 0x55, 0x16, 0xE6, 0xE1, 0x22, 0xA5, 0xDE, 0x7F, 0xC7, 0x3C, 0x08, 0x51, 0x7C, 0x12,
+ 0xB2, 0x63, 0xF4, 0xB7, 0x52, 0x37, 0x40, 0x11, 0xF5, 0xA1, 0x32, 0xE2, 0x71, 0xC6, 0x92, 0x85,
+ 0x5B, 0xE4, 0x9A, 0xD9, 0x73, 0x4D, 0x1B, 0x30, 0x22, 0xAE, 0xEA, 0xED, 0xD6, 0x28, 0xDB, 0x6B,
+ 0x83, 0x70, 0xD6, 0x95, 0xFF, 0x71, 0xAB, 0xBC, 0xD8, 0x3D, 0x83, 0x7E, 0x20, 0xD0, 0xD5, 0x93,
+ 0xBF, 0xC0, 0x5A, 0x19, 0x42, 0x26, 0x41, 0x01, 0x5F, 0x76, 0x4F, 0x35, 0x97, 0x3A, 0x88, 0x79,
+ 0x8D, 0x86, 0x2E, 0x6D, 0x53, 0x3E, 0x48, 0x10, 0x6B, 0x40, 0x4D, 0x03, 0x59, 0x47, 0x3B, 0x04,
+ 0x89, 0x25, 0xCB, 0x4E, 0xC2, 0x01, 0x2C, 0xCF, 0x96, 0x32, 0x46, 0xA8, 0xD3, 0x3D, 0xAF, 0x9E,
+ 0xB1, 0xA0, 0x4E, 0xF3, 0x39, 0xBF, 0xD7, 0x8A, 0xB8, 0xEB, 0xB1, 0x5F, 0x14, 0xFA, 0xD3, 0x25,
+ 0x12, 0x0E, 0xE0, 0xFE, 0x2E, 0xE6, 0xC0, 0xC4, 0x3F, 0x02, 0xDF, 0x31, 0xC9, 0x27, 0x6E, 0x45,
+ 0x71, 0xAA, 0x44, 0x39, 0xEB, 0xDA, 0x05, 0x3D, 0xD6, 0x70, 0x44, 0xAA, 0x9C, 0x72, 0x73, 0x0D,
+ 0xFB, 0x95, 0x7B, 0x8C, 0x61, 0x3A, 0x8F, 0x57, 0x39, 0x72, 0xA9, 0x47, 0x4D, 0xA3, 0x5E, 0xF1,
+ 0xDD, 0x63, 0x8D, 0x5C, 0xB5, 0x0F, 0x5B, 0xB6, 0xA6, 0x86, 0xC2, 0x2C, 0x83, 0x6D, 0xAA, 0xCB,
+ 0x15, 0x68, 0x86, 0x9F, 0xB6, 0x47, 0x58, 0xFD, 0x08, 0xD7, 0x3D, 0xD3, 0xAC, 0x42, 0x21, 0x6F,
+ 0xE2, 0x80, 0x6E, 0x80, 0xE5, 0x0A, 0x0B, 0xE3, 0x25, 0x2B, 0xEC, 0x02, 0x3C, 0xD2, 0x00, 0xDE,
+ 0x1A, 0x0F, 0xE1, 0xF7, 0xA5, 0x0E, 0x4B, 0xA7, 0xD1, 0x11, 0x22, 0xCC, 0x5F, 0xB1, 0x1F, 0xA2,
+ 0x18, 0x39, 0xD7, 0xC3, 0xD8, 0xC0, 0x36, 0x14, 0x97, 0x23, 0x56, 0xB8, 0x4E, 0xA0, 0x16, 0xBA,
+ 0xD4, 0x72, 0x9C, 0x44, 0x32, 0x77, 0xDC, 0x49, 0x27, 0x1F, 0xDA, 0x34, 0xF3, 0x1D, 0xFC, 0xED,
+ 0xBD, 0xE1, 0x0F, 0xBE, 0xCA, 0x81, 0x24, 0x47, 0xB3, 0xC7, 0x96, 0x78, 0x7F, 0x91, 0x4C, 0xD1,
+ 0x65, 0xEE, 0x00, 0x69, 0x24, 0x26, 0xCA, 0x0E, 0x34, 0x2E, 0xF8, 0x16, 0x5E, 0xB0, 0x17, 0xAB,
+ 0x90, 0x30, 0xDE, 0x42, 0xB3, 0x5F, 0x5D, 0xE0, 0x4F, 0xF4, 0x59, 0xB7, 0xEA, 0x04, 0x75, 0x7D,
+ 0x14, 0x78, 0x96, 0x8E, 0xD5, 0x58, 0x3B, 0x81, 0xB0, 0xE2, 0xB0, 0x5E, 0x3E, 0xD0, 0x40, 0x9C,
+ 0x1B, 0x1F, 0xF1, 0xE6, 0x79, 0xBB, 0x97, 0xCE, 0x3C, 0x27, 0xF9, 0x17, 0x9B, 0x75, 0x2B, 0x52,
+ 0xF0, 0xB2, 0x5C, 0xA0, 0x6A, 0xF2, 0x84, 0x94, 0x43, 0xB9, 0x18, 0xF6, 0x26, 0xC8, 0xC1, 0x05,
+ 0x66, 0xC8, 0x26, 0x4C, 0x19, 0xEC, 0xF7, 0xF9, 0x67, 0x5D, 0xD8, 0x36, 0x47, 0xA9, 0x9E, 0x3B,
+ 0x91, 0x20, 0xCE, 0x53, 0x37, 0x6F, 0xD9, 0x54, 0x44, 0xD8, 0x7E, 0x90, 0x38, 0xD6, 0x10, 0xCA,
+ 0xC8, 0x37, 0xD9, 0x1D, 0x3A, 0xF7, 0xD4, 0xC1, 0xE1, 0xA5, 0xA6, 0x48, 0x02, 0xEC, 0x82, 0x62,
+ 0x05, 0x6C, 0x82, 0x8B, 0x10, 0x64, 0xFE, 0x78, 0xD7, 0x61, 0x54, 0xBA, 0x34, 0xDA, 0x80, 0x56,
+ 0xDE, 0x45, 0xAB, 0x79, 0xE9, 0x9A, 0x07, 0x7F, 0x8D, 0x0A, 0x65, 0x8B, 0x1C, 0xF2, 0x53, 0xAD,
+ 0xDF, 0x55, 0xBB, 0x68, 0x9D, 0xDC, 0x73, 0x4D, 0x52, 0xBC, 0x0C, 0xE2, 0x70, 0x9E, 0x94, 0x06,
+ 0x4E, 0x49, 0xA7, 0xE5, 0x59, 0xE8, 0xB7, 0xBD, 0x13, 0xEF, 0x1E, 0xF0, 0xB3, 0x5D, 0xF8, 0xA9,
+ 0xB4, 0xF0, 0x1E, 0xA6, 0xE3, 0x5A, 0x0D, 0xB5, 0x95, 0x17, 0x60, 0x8E, 0x5A, 0xB4, 0x07, 0xBF,
+ 0x8A, 0x03, 0xED, 0x6B, 0xA4, 0x06, 0x4A, 0xAE, 0x1D, 0x96, 0x69, 0x87, 0x79, 0x97, 0x1C, 0x87,
+ 0xC4, 0x76, 0x98, 0x50, 0xC1, 0x49, 0x2F, 0x84, 0xF3, 0x85, 0x94, 0x7A, 0xFF, 0x11, 0x6C, 0x71,
+ 0xAC, 0xF5, 0x1B, 0xBB, 0x21, 0x3E, 0xCF, 0x13, 0xEA, 0x89, 0x81, 0x6F, 0xDD, 0x33, 0x7F, 0x40,
+ 0x88, 0x35, 0xDB, 0x5F, 0x7C, 0xA3, 0x92, 0xD3, 0x61, 0x2D, 0xAE, 0x40, 0x99, 0x77, 0x6B, 0x10,
+ 0x20, 0xBC, 0x52, 0x7E, 0x99, 0xCC, 0x77, 0x59, 0xA9, 0xEE, 0xA5, 0x4B, 0x6D, 0x83, 0x0D, 0x82,
+ 0xEF, 0xD1, 0x3F, 0xDC, 0x50, 0x60, 0xBE, 0x3C, 0xB7, 0x83, 0xD6, 0x38, 0x9D, 0x73, 0x7B, 0x04,
+ 0x37, 0xDE, 0x30, 0x0B, 0xCF, 0x99, 0x21, 0x5A, 0x55, 0xDD, 0x6A, 0x84, 0x1B, 0xF5, 0x0B, 0xF2,
+ 0x57, 0x5C, 0xB2, 0xE9, 0x22, 0x76, 0xCC, 0x58, 0x68, 0x35, 0xBF, 0x51, 0x9E, 0x70, 0x33, 0x4F,
+ 0xF6, 0xC4, 0x2A, 0xD0, 0x9A, 0x84, 0x74, 0x12, 0x0C, 0x93, 0x7D, 0x93, 0xBD, 0x53, 0x28, 0x77,
+ 0xB2, 0x86, 0x68, 0xD6, 0x7D, 0xAB, 0x93, 0xDA, 0xF1, 0xB1, 0xA2, 0x4C, 0xA1, 0x4F, 0xB9, 0xFA,
+ 0x42, 0x08, 0xE6, 0xA8, 0x5B, 0xA8, 0xB5, 0xFF, 0xC7, 0x75, 0x50, 0xBE, 0xE4, 0x0A, 0xA5, 0xA3,
+ 0x79, 0xAB, 0x45, 0x30, 0x29, 0xBE, 0xC7, 0x9B, 0x9F, 0x2A, 0x57, 0xB9, 0x1D, 0xF3, 0x5B, 0xA4,
+ 0xAD, 0xE5, 0x0B, 0xAA, 0x0E, 0xB5, 0xE0, 0xB7, 0xBA, 0xDF, 0x87, 0x69, 0xE2, 0x0C, 0xF5, 0xF5,
+ 0xB6, 0xC6, 0x28, 0x92, 0xC4, 0x51, 0x2A, 0x99, 0x32, 0x5E, 0x8E, 0x60, 0xF6, 0x18, 0xE4, 0xF0,
+ 0xFF, 0xD5, 0x3B, 0xC8, 0x89, 0xCD, 0x67, 0x48, 0x7D, 0x74, 0xEB, 0x05, 0x88, 0x66, 0x62, 0x08,
+ 0x41, 0x2E, 0xC0, 0x8D, 0x2F, 0xEE, 0xC1, 0xCD, 0xE3, 0x91, 0x90, 0x7E, 0x8C, 0x62, 0x72, 0x1C,
+ 0x8E, 0x43, 0xAD, 0x2F, 0x56, 0x30, 0xB8, 0x6A, 0x78, 0x21, 0xBB, 0x55, 0x41, 0xAF, 0xCE, 0x6D,
+ 0xE5, 0xE6, 0x08, 0xE1, 0x85, 0x5D, 0x6B, 0xD4, 0xC3, 0x31, 0x10, 0xFE, 0xE8, 0x06, 0x35, 0x3F,
+ 0x48, 0x3F, 0xD1, 0x95, 0x58, 0xE0, 0xB6, 0xB4, 0x6A, 0x01, 0x89, 0x67, 0xDB, 0x35, 0x2F, 0x16,
+ 0x2A, 0x8B, 0x65, 0x43, 0x15, 0x7C, 0xFB, 0x65, 0x2D, 0x22, 0xED, 0x03, 0x75, 0x9B, 0x8C, 0x1B,
+ 0xC5, 0x66, 0x88, 0x41, 0x5A, 0xA0, 0xB4, 0xF6, 0xCA, 0x29, 0x01, 0xEF, 0xCE, 0x20, 0x36, 0x1A,
+ 0x23, 0x9A, 0x74, 0x5B, 0xA1, 0x1E, 0x4F, 0xB3, 0x9D, 0x1E, 0x61, 0x8F, 0xD0, 0x3E, 0xE7, 0xD5,
+ 0x9C, 0x71, 0x9F, 0x0F, 0x46, 0x31, 0xA8, 0x7B, 0x5C, 0xC5, 0x7B, 0x95, 0xE7, 0x09, 0xED, 0xE8,
+ 0x7E, 0xCD, 0x23, 0x51, 0xE7, 0x4A, 0x09, 0xA1, 0x4B, 0xB0, 0x19, 0xF7, 0xE9, 0x07, 0x3D, 0x36,
+ 0xA7, 0xD2, 0x3C, 0x97, 0x12, 0x24, 0xFC, 0x3A, 0xC2, 0x20, 0x00, 0xEE, 0x85, 0x6B, 0xFA, 0x9D,
+ 0x70, 0xBA, 0x54, 0x28, 0xC7, 0x19, 0x29, 0xD2, 0xA1, 0xE7, 0xA4, 0x4A, 0x3A, 0xD4, 0x50, 0x88,
+ 0x04, 0x7C, 0x92, 0x9A, 0xCD, 0xD9, 0x23, 0x18, 0x6D, 0x60, 0xEF, 0x01, 0x0A, 0xE4, 0x02, 0xEA,
+ 0x3B, 0x9F, 0x71, 0x46, 0xC9, 0xC9, 0x27, 0x0C, 0x03, 0xFB, 0x1A, 0xF4, 0x28, 0xC6, 0x11, 0xDB,
+ 0xD0, 0x32, 0xDC, 0x00, 0x41, 0x69, 0xAF, 0x24, 0xA4, 0xB2, 0xF4, 0x1A, 0x42, 0xAC, 0x86, 0x26,
+ 0xF9, 0xA3, 0x4D, 0xB8, 0x2B, 0xFE, 0xC5, 0xD9, 0x83, 0x73, 0x12, 0xFC, 0xE3, 0x0D, 0xFD, 0xFC,
+ 0xDB, 0x15, 0xFB, 0x2C, 0xF9, 0x9B, 0x17, 0x6E, 0x38, 0x63, 0xB9, 0x57, 0x64, 0x8A, 0x85, 0x03,
+ 0xD8, 0x33, 0xDD, 0x09, 0x1C, 0xF4, 0xF2, 0xE4, 0x8F, 0x3E, 0x53, 0xBD, 0x82, 0x6C, 0xA2, 0xC2,
+ 0x09, 0x2D, 0xC3, 0xC6, 0xA2, 0x56, 0x4C, 0xF8, 0x63, 0x19, 0x98, 0x76, 0xC3, 0x2D, 0xAE, 0x8F,
+ 0x74, 0xFA, 0x14, 0x6C, 0x80, 0x45, 0x6E, 0xC9, 0x8B, 0x7A, 0x13, 0xFD, 0x31, 0xDF, 0x98, 0x4B,
+ 0xE9, 0xA7, 0x49, 0xAC, 0xE8, 0x92, 0x06, 0x76, 0xBC, 0xAF, 0xF1, 0x1F, 0x52, 0xBC, 0x87, 0x37,
+ 0xD5, 0x62, 0x8C, 0x55, 0x25, 0x2E, 0xCB, 0x07, 0x46, 0xEC, 0x48, 0xA6, 0x51, 0xBF, 0xCF, 0x7C,
+ 0xD2, 0x04, 0xEA, 0x34, 0x94, 0x54, 0x7A, 0xCC, 0xC6, 0x64, 0x40, 0xAE, 0x8A, 0x64, 0x22, 0x4A,
+ 0x2C, 0xFD, 0x13, 0x33, 0xC5, 0x59, 0x2B, 0x90, 0x29, 0x66, 0xAD, 0x43, 0x16, 0xF8, 0x93, 0x67,
+ 0x4D, 0x6F, 0x81, 0xC0, 0x63, 0x7A, 0x8D, 0x15, 0xEB, 0x98, 0x91, 0x7F, 0x11, 0xFF, 0xCB, 0x38,
+ 0x08, 0xF1, 0xA4, 0x7A, 0x70, 0x51, 0xA8, 0xF7, 0xD8, 0x5F, 0x21, 0x51, 0x4A, 0xA5, 0xB3, 0xC0,
+ 0xE8, 0x11, 0x33, 0x0D, 0x9B, 0xD2, 0x2B, 0x9F, 0xFA, 0x4C, 0x03, 0x60, 0x5F, 0xA9, 0xA6, 0xD9,
+ 0x2A, 0xD3, 0x95, 0x69, 0x86, 0xD7, 0x2E, 0x87, 0x7D, 0x34, 0x84, 0x9F, 0xBE, 0x37, 0x47, 0xA6,
+ 0x6D, 0x94, 0x8E, 0x35, 0x4B, 0x24, 0xDD, 0xB9, 0x5E, 0x2F, 0xA7, 0xA7, 0xB7, 0xB6, 0x4E, 0x2E,
+ 0x99, 0x60, 0x1C, 0x53, 0xFC, 0xF6, 0x0F, 0xDC, 0xBA, 0x48, 0x43, 0x24, 0x08, 0xA3, 0xF1, 0x84,
+ 0x06, 0xFF, 0x7A, 0xAA, 0x2B, 0xF9, 0x00, 0x04, 0x3C, 0x38, 0xC5, 0xD2, 0xB4, 0xFD, 0x4D, 0x66,
+ 0xB5, 0x4C, 0xF3, 0x90, 0x7F, 0x12, 0xEB, 0xBB, 0xBE, 0x58, 0x47, 0x30, 0x70, 0x0D, 0x89, 0x52,
+ 0x50, 0xA9, 0x79, 0xFF, 0x5E, 0x9B, 0x62, 0x13, 0x4A, 0x3E, 0xB3, 0xA2, 0x7B, 0xCE, 0x82, 0x9A,
+ 0xFE, 0x07, 0x74, 0x5C, 0x73, 0x07, 0xFE, 0xA2, 0x1F, 0x23, 0xE6, 0xEA, 0xA0, 0xF8, 0x59, 0x77,
+ 0xF3, 0x0A, 0xE1, 0xC4, 0x3D, 0x10, 0xE9, 0xFB, 0x25, 0xB1, 0xDC, 0x42, 0x78, 0x85, 0x81, 0xD2,
+ 0xA3, 0x5A, 0xB4, 0xC1, 0x80, 0x95, 0x6C, 0xC3, 0x01, 0xF2, 0xF8, 0x25, 0xC6, 0x99, 0x3F, 0x70,
+ 0xD0, 0x29, 0xD9, 0xDF, 0x6C, 0xEF, 0x16, 0x55, 0x60, 0xAD, 0x99, 0x1B, 0x06, 0x7D, 0xFF, 0x54,
+ 0x54, 0xAD, 0x6D, 0xEF, 0x48, 0x72, 0x8B, 0xEC, 0x57, 0xA7, 0xAE, 0x26, 0xD2, 0x9C, 0x2B, 0x61,
+ 0x90, 0x69, 0x9D, 0xDB, 0xC5, 0x6E, 0x97, 0x7D, 0x94, 0xCB, 0x6D, 0x89, 0xC0, 0xCF, 0x39, 0x20,
+ 0xD9, 0x20, 0x58, 0x57, 0xAB, 0x4B, 0xB2, 0x36, 0x13, 0xB3, 0xEA, 0x76, 0x8A, 0x41, 0x73, 0xE4,
+ 0x20, 0xD9, 0x5F, 0xA9, 0x59, 0x62, 0x9B, 0xED, 0x3B, 0x60, 0xC2, 0x8D, 0xBB, 0x2A, 0x42, 0xBE,
+ 0xFB, 0x02, 0x69, 0x44, 0x64, 0x55, 0xAC, 0xE7, 0xD4, 0xCF, 0x2D, 0xCD, 0x04, 0x3F, 0xFD, 0x14,
+ 0x03, 0xFA, 0x67, 0xB2, 0x9E, 0xC6, 0x3F, 0x8E, 0x58, 0x7F, 0xA1, 0xF1, 0x48, 0xE7, 0xB1, 0x80,
+ 0x6C, 0x95, 0x87, 0x3D, 0xD7, 0x28, 0xD1, 0x29, 0x78, 0x2C, 0x81, 0x82, 0xFC, 0x31, 0x05, 0xE2,
+ 0x11, 0xE8, 0x34, 0xF3, 0xE3, 0x1E, 0xE7, 0x2B, 0x69, 0x25, 0x90, 0x9A, 0x88, 0x03, 0x71, 0xA4,
+ 0x1C, 0xE5, 0xA1, 0x6B, 0xAE, 0x5F, 0xA6, 0x27, 0x19, 0x73, 0xE0, 0xBC, 0x6E, 0xC2, 0x97, 0x83,
+ 0xB0, 0x49, 0xEE, 0x88, 0xC6, 0x38, 0xC1, 0x28, 0xBC, 0x18, 0x45, 0x72, 0x27, 0x07, 0xDE, 0x0F,
+ 0xED, 0x14, 0x2E, 0x15, 0x49, 0xC9, 0x30, 0x56, 0x79, 0x24, 0x80, 0x8B, 0x26, 0x0E, 0xDF, 0x07,
+ 0x7A, 0x83, 0xC0, 0x6C, 0x62, 0x17, 0xEE, 0xA3, 0xCD, 0x46, 0x34, 0x5D, 0x87, 0xD4, 0x7E, 0x7C,
+ 0xE7, 0x1E, 0xE4, 0xD5, 0xDE, 0x29, 0xD0, 0x21, 0xEE, 0x5D, 0x17, 0x65, 0x01, 0x22, 0xF8, 0x0C,
+ 0x22, 0xDB, 0x1D, 0xE9, 0x19, 0x8D, 0x74, 0x42, 0xBB, 0x40, 0x42, 0x2D, 0x9A, 0x50, 0x63, 0xE5,
+ 0x0B, 0xF2, 0xEF, 0x32, 0x6E, 0x02, 0xFB, 0xBA, 0xF4, 0x9C, 0x0D, 0xBE, 0x98, 0x12, 0x61, 0xA5,
+ 0xF0, 0x09, 0xAA, 0x8C, 0xD3, 0x87, 0x7E, 0x82, 0x33, 0xE0, 0xCA, 0x05, 0x6F, 0xCB, 0x96, 0x8B,
+ 0x7F, 0x86, 0xDD, 0x74, 0xBF, 0x4F, 0xB6, 0x26, 0x8B, 0x12, 0x72, 0x4F, 0xE3, 0xF7, 0x1A, 0x3B,
+ 0x2C, 0xD5, 0xC3, 0x39, 0xA0, 0xA7, 0x5E, 0xD1, 0x1B, 0x33, 0xE2, 0xFE, 0x32, 0x0B, 0xCB, 0x16,
+ 0xA8, 0x51, 0x77, 0x09, 0xAC, 0xB2, 0x4B, 0xC8, 0x6A, 0x6D, 0x93, 0xD1, 0x77, 0x52, 0x8E, 0x0A,
+ 0x7C, 0x85, 0x96, 0x3C, 0x7C, 0x44, 0xBD, 0xEE, 0xA4, 0x99, 0x5D, 0xEB, 0x1C, 0xA6, 0xE5, 0x95,
+ 0x49, 0xB0, 0xE9, 0x76, 0x4C, 0xDD, 0x24, 0x47, 0x16, 0xAB, 0xEF, 0x6B, 0xCD, 0x5A, 0x34, 0xB8,
+ 0x21, 0xD8, 0x56, 0xA1, 0x8C, 0x80, 0x79, 0xDA, 0x75, 0xB4, 0x8C, 0x17, 0x2F, 0x8F, 0xD6, 0x8F,
+ 0xD5, 0x2C, 0xC4, 0xC7, 0x29, 0x14, 0xED, 0xEB, 0xA5, 0x91, 0x5C, 0xE2, 0x8D, 0x1E, 0x74, 0xBC,
+ 0x6B, 0x92, 0xD8, 0x65, 0xE6, 0x0A, 0xF3, 0x3A, 0xE4, 0x9D, 0x1D, 0xAF, 0x46, 0x39, 0xBF, 0x50,
+ 0x0C, 0xF5, 0xB0, 0x6A, 0x13, 0xDA, 0x23, 0x1F, 0x31, 0xA0, 0xC8, 0x47, 0x73, 0x46, 0x8A, 0x1A,
+ 0xAA, 0x53, 0x35, 0x49, 0xE0, 0x48, 0xB1, 0x7E, 0x36, 0xF8, 0xCF, 0x18, 0x4F, 0xB8, 0xB6, 0xD8,
+ 0xEC, 0x15, 0x27, 0x1D, 0x75, 0x45, 0xBC, 0xE6, 0x76, 0xFC, 0x8F, 0x5C, 0x96, 0xCC, 0x6F, 0x75,
+ 0x5D, 0xA4, 0xEC, 0x67, 0x14, 0x23, 0xDA, 0xE1, 0xAD, 0x11, 0x54, 0x6A, 0x9E, 0x44, 0x67, 0xF5,
+ 0x0E, 0xF7, 0xF2, 0x2A, 0x08, 0x9D, 0x64, 0x43, 0x1D, 0x63, 0xE4, 0xA8, 0x7A, 0xC7, 0x83, 0x92,
+ 0x04, 0xFD, 0x38, 0xEA, 0xBA, 0x5B, 0xA2, 0x37, 0x2D, 0x31, 0xD4, 0xCA, 0x31, 0x40, 0xC8, 0x5E,
+ 0x2E, 0xD7, 0x81, 0x79, 0x71, 0xEA, 0x13, 0x4D, 0xCE, 0x0E, 0x37, 0x16, 0xC7, 0x90, 0x3E, 0x78,
+ 0xDB, 0x22, 0x1A, 0x17, 0xB7, 0xF5, 0x0C, 0x94, 0xA2, 0xC9, 0x5B, 0xBD, 0xDE, 0x00, 0x27, 0xF1,
+ 0xE2, 0x1B, 0xF9, 0xCD, 0x98, 0x84, 0x7D, 0xCA, 0xC4, 0xCE, 0x3D, 0xDC, 0xCC, 0x53, 0x35, 0xB0,
+ 0x30, 0xC9, 0x4E, 0xA8, 0x0C, 0x32, 0xCB, 0xE8, 0x43, 0xB6, 0xBA, 0x23, 0x67, 0x43, 0x9E, 0x0B,
+ 0x00, 0xF9, 0x2C, 0xFA, 0x66, 0xB8, 0x41, 0x08, 0x0F, 0x22, 0xF6, 0xFB, 0xC4, 0xDB, 0x3D, 0x30,
+ 0x88, 0x71, 0x04, 0x5A, 0x20, 0x15, 0xEC, 0xE3, 0x65, 0xB5, 0x9C, 0x06, 0x2A, 0x92, 0xD3, 0x97,
+ 0x4C, 0xB5, 0xF4, 0x6E, 0xC1, 0xC1, 0x38, 0xD6, 0xCF, 0x06, 0x36, 0x1F, 0xCE, 0x11, 0x37, 0xF0,
+ 0x91, 0x68, 0x94, 0xD3, 0xB5, 0x18, 0xE1, 0x7B, 0xFC, 0x1C, 0x05, 0x36, 0x57, 0x21, 0xAE, 0x59,
+ 0xE6, 0x1F, 0xED, 0xDD, 0xAD, 0x09, 0xF0, 0x72, 0xAB, 0x41, 0x52, 0x3C, 0x4E, 0xB1, 0xB7, 0xD0,
+ 0x9F, 0x66, 0x4A, 0x03, 0x0F, 0x64, 0x9D, 0xBD, 0x66, 0xFD, 0x9F, 0x4D, 0x65, 0x01, 0x9C, 0x4B,
+ 0x68, 0x91, 0x93, 0x2D, 0x7B, 0xBD, 0x44, 0x10, 0xF7, 0xD4, 0x0E, 0xF5, 0xBF, 0x3E, 0x46, 0xAE,
+ 0x8F, 0x76, 0x5B, 0x02, 0x2F, 0x56, 0xAF, 0xAF, 0xC0, 0xDE, 0x39, 0xC8, 0xA5, 0xE5, 0x5C, 0x6F,
+ 0xDC, 0x25, 0x45, 0x4F, 0x63, 0xAC, 0x55, 0x19, 0x52, 0xBF, 0xAB, 0x3B, 0x33, 0x02, 0xCA, 0x1E,
+ 0x93, 0x6A, 0xD6, 0x93, 0x61, 0x41, 0xB8, 0xF6, 0xE9, 0x05, 0x10, 0x3A, 0xDF, 0x09, 0x26, 0xF9,
+ 0xB4, 0x4D, 0xFA, 0x98, 0xF6, 0xA1, 0x58, 0x81, 0x86, 0x8A, 0x7F, 0xDA, 0x7C, 0x91, 0x85, 0xC2,
+ 0x92, 0x6B, 0xDF, 0x9B, 0x88, 0x2F, 0xD6, 0x71, 0xC3, 0x96, 0x3A, 0x83, 0x8E, 0x55, 0x77, 0xF4,
+ 0xEB, 0x12, 0x78, 0x45, 0xC9, 0x7B, 0x82, 0x64, 0xB9, 0x00, 0x40, 0x6F, 0x61, 0x15, 0x98, 0x5B,
+ 0x53, 0xAA, 0x32, 0xB7, 0xF0, 0xE3, 0x1A, 0xC5, 0x9A, 0x1B, 0x63, 0x57, 0xA3, 0xB3, 0x5A, 0x3F,
+ 0x0D, 0xF4, 0xB9, 0x62, 0xB2, 0xE1, 0x18, 0x85, 0xD1, 0xD7, 0x28, 0xD0, 0x50, 0x7E, 0xA9, 0x01,
+ 0x40, 0xB9, 0x68, 0xFE, 0xE8, 0xF2, 0x0B, 0xCC, 0xAF, 0x51, 0x56, 0x28, 0x35, 0x54, 0xCC, 0x4E,
+ 0xE0, 0x19, 0xBB, 0x8D, 0x10, 0x8C, 0x75, 0x4A, 0x3A, 0x68, 0xC3, 0x84, 0x89, 0x0A, 0x70, 0xAC,
+ 0xC7, 0x3E, 0x97, 0x86, 0x8A, 0xC2, 0x3B, 0x9E, 0xC5, 0xC6, 0x3C, 0xD5, 0x59, 0xFF, 0xA0, 0x89,
+ 0x10, 0xB5, 0x8A, 0xBC, 0x5F, 0x2D, 0x60, 0x54, 0xAE, 0xF9, 0x4E, 0x71, 0xFF, 0xC0, 0xD4, 0x32,
+ 0xAF, 0x5E, 0x61, 0xE8, 0xB8, 0x02, 0x87, 0x9C, 0x6F, 0x22, 0x54, 0x6B, 0xC8, 0xF7, 0xDE, 0x0F,
+ 0x19, 0xA4, 0x9B, 0xA4, 0xEB, 0x4F, 0xD4, 0x82, 0x1E, 0xC5, 0xC2, 0xFD, 0x5A, 0x65, 0xBF, 0xFC,
+ 0xF6, 0x49, 0x76, 0xA6, 0xA4, 0x93, 0x9B, 0x11, 0xF9, 0xCE, 0x2E, 0x11, 0xE1, 0xDE, 0x05, 0xFD,
+ 0xD6, 0xC9, 0xF6, 0x06, 0x7B, 0x6E, 0x44, 0x33, 0xF0, 0xD6, 0x3F, 0x00, 0xC7, 0xF8, 0x06, 0xD8,
+ 0x7B, 0x10, 0x2F, 0x72, 0xA6, 0xD3, 0x99, 0x53, 0x59, 0xE6, 0xA6, 0x99, 0xF4, 0xCB, 0x1C, 0xF1,
+ 0x72, 0x01, 0x3E, 0x6A, 0xD1, 0xDD, 0xEE, 0x2A, 0xD0, 0x76, 0xBF, 0x80, 0xA3, 0x9C, 0x41, 0xFB,
+ 0xBD, 0x6C, 0x53, 0xC8, 0xA8, 0x03, 0x97, 0x8D, 0x4B, 0xC6, 0x94, 0xAB, 0x6E, 0x51, 0xFD, 0x8A,
+ 0x85, 0xE9, 0xD6, 0x75, 0x3A, 0x62, 0x05, 0x7E, 0x01, 0xB9, 0xA1, 0x9E, 0xD9, 0xE6, 0xD7, 0x17,
+ 0xCC, 0xFA, 0xC5, 0x2F, 0x77, 0xFE, 0x48, 0xAF, 0x4E, 0x93, 0xC4, 0xFB, 0xA7, 0x98, 0x51, 0xEF,
+ 0x4A, 0x84, 0xBB, 0xD7, 0xD7, 0x8D, 0xE8, 0x7C, 0xAC, 0xCD, 0x78, 0x47, 0x32, 0x0D, 0x68, 0x43,
+ 0x9E, 0xCA, 0xF5, 0x4D, 0xF0, 0x86, 0xCF, 0x50, 0x89, 0x38, 0xA8, 0x97, 0xCD, 0xF2, 0xC6, 0x12,
+ 0x81, 0xA9, 0x96, 0x31, 0x83, 0x98, 0xBC, 0x3D, 0xC2, 0x56, 0x8D, 0xB2, 0x8E, 0xB1, 0x8A, 0x1D,
+ 0x71, 0x27, 0x18, 0x4F, 0xA5, 0x9B, 0x9A, 0x18, 0xF4, 0x92, 0x7F, 0x40, 0xCB, 0xF4, 0x96, 0x44,
+ 0x64, 0x73, 0x4C, 0x0E, 0xDC, 0x45, 0xE3, 0xBF, 0x5B, 0xD2, 0x90, 0xAF, 0xB1, 0x8E, 0x00, 0xA8,
+ 0xC5, 0xEB, 0xD4, 0x37, 0x64, 0xB7, 0x5B, 0xF5, 0x3F, 0x74, 0x52, 0x6D, 0x92, 0xAD, 0x1B, 0x90,
+ 0x1F, 0xD2, 0xED, 0xD4, 0x3B, 0x6A, 0x04, 0x77, 0x1A, 0x81, 0x82, 0xBD, 0x39, 0x06, 0xA0, 0x80,
+ 0x7E, 0x40, 0x7F, 0x27, 0x9D, 0x49, 0xA2, 0xF2, 0xD8, 0x7F, 0xBE, 0x81, 0x3E, 0x01, 0xF8, 0xDF,
+ 0xE6, 0x4D, 0x72, 0xB2, 0xDB, 0x1D, 0xE4, 0xE0, 0x75, 0x0B, 0x67, 0x58, 0x7E, 0x41, 0xFC, 0x9B,
+ 0xE1, 0x2B, 0x14, 0xD3, 0x6A, 0x67, 0x55, 0x2B, 0xF5, 0x83, 0x6F, 0x50, 0xA5, 0x9A, 0x11, 0xAD,
+ 0x47, 0xD5, 0xEA, 0x8B, 0x7E, 0x76, 0x41, 0x2E, 0xB8, 0x9D, 0x3C, 0x03, 0x1E, 0x21, 0xAB, 0xAC,
+ 0xDA, 0x88, 0xB7, 0x4B, 0x16, 0xA1, 0x29, 0x91, 0x8F, 0x48, 0xDE, 0xE1, 0x7D, 0x42, 0xB4, 0xD0,
+ 0xEB, 0x1C, 0x23, 0xEE, 0xE2, 0xC7, 0xDD, 0x03, 0xBC, 0xD9, 0x7C, 0x43, 0xAD, 0x92, 0x91, 0x25,
+ 0x3A, 0x02, 0x3D, 0x21, 0x5C, 0x65, 0x63, 0x1F, 0x50, 0xFE, 0xB7, 0x88, 0xEC, 0xD3, 0x9D, 0x68,
+ 0xCA, 0x8C, 0xB3, 0x5F, 0xD5, 0xCD, 0xEA, 0x3E, 0xB0, 0x94, 0x3D, 0x02, 0xCC, 0xF3, 0xCE, 0x1B,
+ 0xE8, 0x3A, 0x05, 0xCB, 0x07, 0xA8, 0x38, 0x89, 0x0B, 0x84, 0x96, 0xA9, 0x4B, 0x74, 0xB6, 0xE4,
+ 0x08, 0xB0, 0x8F, 0xA1, 0x37, 0xFA, 0x08, 0xEB, 0x30, 0x1C, 0x35, 0x0A, 0x07, 0x38, 0x22, 0x3C,
+ 0xE3, 0x1D, 0x22, 0xE7, 0xBF, 0x5A, 0x80, 0xC3, 0x97, 0x55, 0xDB, 0xE4, 0x6D, 0x52, 0xB5, 0xC1,
+ 0x43, 0x95, 0xAA, 0xCF, 0x39, 0x2A, 0x06, 0x35, 0x92, 0x00, 0x8B, 0xB4, 0x15, 0x2A, 0x63, 0x6F,
+ 0x37, 0x53, 0x6C, 0x7D, 0x33, 0xEA, 0x0C, 0xFF, 0x5E, 0x87, 0xC0, 0xFF, 0x25, 0x1A, 0x31, 0x0D,
+ 0x4D, 0xE2, 0xDD, 0xB6, 0x19, 0x79, 0x26, 0x46, 0x78, 0x57, 0x36, 0x09, 0xC6, 0xF9, 0x0E, 0xD1,
+ 0x94, 0xFD, 0xC2, 0x70, 0xEC, 0x17, 0xD3, 0xDD, 0xF1, 0xC7, 0x2F, 0x10, 0xAA, 0x95, 0xC9, 0x7A,
+ 0x27, 0x57, 0x68, 0x69, 0x2B, 0x6B, 0x14, 0x66, 0x83, 0x05, 0x9F, 0xA0, 0x11, 0x2E, 0x73, 0x7B,
+ 0x28, 0x30, 0x0F, 0x01, 0x87, 0x88, 0xB8, 0x29, 0x0F, 0xC0, 0xD6, 0xE9, 0xB4, 0x8B, 0x18, 0xB5,
+ 0x56, 0xC1, 0xFE, 0x8E, 0xDA, 0x15, 0xE5, 0xE9, 0x07, 0xC9, 0xD7, 0xE8, 0x71, 0x4E, 0x24, 0x4C,
+ 0xA3, 0x1F, 0x20, 0xA5, 0x4D, 0x6C, 0x72, 0x07, 0x7C, 0x13, 0x76, 0x49, 0xC5, 0xFA, 0x46, 0x9A,
+ 0xE7, 0x5D, 0x62, 0xA3, 0xCC, 0x44, 0xF3, 0xAE, 0x14, 0xF8, 0xF5, 0xCA, 0xDC, 0xE3, 0xCF, 0x0A,
+ 0x8E, 0xCE, 0xF1, 0x59, 0x34, 0xB2, 0x0B, 0xA0, 0x80, 0x20, 0xB9, 0x86, 0x50, 0x6F, 0x7F, 0x36,
+ 0x29, 0x20, 0x1F, 0x10, 0x5B, 0x3D, 0x64, 0x40, 0xE2, 0xF6, 0x0D, 0x32, 0x70, 0x4F, 0x2C, 0x45,
+ 0x2B, 0x16, 0x29, 0x24, 0x26, 0xF3, 0x19, 0xF3, 0xA4, 0xC4, 0x79, 0x46, 0x61, 0x5E, 0x25, 0x5D,
+ 0x26, 0x47, 0x78, 0x78, 0x48, 0x74, 0x77, 0x1A, 0x3B, 0x30, 0x12, 0x2D, 0x83, 0xBC, 0x12, 0x88,
+ 0xD1, 0xAF, 0x90, 0x67, 0x1B, 0x39, 0x24, 0x04, 0x16, 0xCC, 0xC3, 0xFC, 0x13, 0x2C, 0x33, 0x39,
+ 0xC8, 0xBA, 0x85, 0x6B, 0x9F, 0x09, 0xA0, 0xB0, 0x0A, 0x95, 0x86, 0xB9, 0x62, 0x5D, 0x6D, 0x16,
+ 0xEE, 0x4C, 0x73, 0xBB, 0x4B, 0x3C, 0x74, 0x51, 0x95, 0x61, 0xED, 0xD2, 0xAC, 0x93, 0x99, 0x2C,
+ 0x21, 0x21, 0x1E, 0x19, 0xD0, 0xD5, 0xEF, 0x23, 0x0C, 0xE5, 0xF0, 0xCF, 0xE6, 0xD9, 0x5D, 0xA2,
+ 0x42, 0x85, 0xBA, 0xDE, 0x15, 0xE9, 0x2A, 0xDA, 0xE5, 0x97, 0x6B, 0x54, 0xB3, 0x8C, 0x40, 0xEA,
+ 0xBA, 0x0A, 0x35, 0xA9, 0x3C, 0x32, 0x03, 0x28, 0xA5, 0xD5, 0x69, 0x56, 0xFC, 0xC3, 0x9C, 0x79,
+ 0x82, 0x8F, 0xB0, 0x14, 0xC7, 0x8C, 0xF8, 0x6D, 0x8B, 0x0C, 0x9E, 0xA1, 0x3B, 0x04, 0xE0, 0xC2,
+ 0xDC, 0xFE, 0xC1, 0x3B, 0xAE, 0x53, 0x91, 0xDB, 0x84, 0x64, 0xF9, 0xC6, 0xB2, 0x8D, 0x48, 0xE3,
+ 0x04, 0xF1, 0xCE, 0xEC, 0x31, 0xAA, 0x0E, 0xBD, 0x66, 0x3A, 0x45, 0x7A, 0x34, 0x0B, 0x38, 0x15,
+ 0xBB, 0x1A, 0x25, 0xB8, 0x82, 0x90, 0xBD, 0x34, 0x52, 0xCA, 0x81, 0xBE, 0xB6, 0x89, 0x58, 0xF7,
+ 0x13, 0x93, 0xAC, 0x99, 0x67, 0xFF, 0x58, 0xBE, 0x9A, 0x09, 0x8A, 0xB5, 0x42, 0x7D, 0x3E, 0x65,
+ 0xF7, 0x59, 0x66, 0xB7, 0x3F, 0x7A, 0x00, 0x63, 0xC0, 0x62, 0xBB, 0x84, 0xD0, 0xEF, 0x5F, 0x96,
+ 0x9F, 0xDA, 0xE5, 0x5C, 0xDF, 0x0D, 0xE0, 0xF4, 0xD9, 0x6E, 0xAE, 0x91, 0xF2, 0xCD, 0x4C, 0xA7,
+ 0x87, 0xDF, 0xE0, 0x41, 0x1D, 0x69, 0x22, 0x52, 0xA6, 0xF0, 0x4F, 0x70, 0x75, 0x4A, 0x34, 0x58,
+ 0xB9, 0x2C, 0x13, 0x8C, 0x5A, 0x35, 0x65, 0x49, 0x2E, 0x71, 0x46, 0x79, 0x56, 0x69, 0x2F, 0x60,
+ 0xEC, 0x7A, 0x45, 0x8F, 0x63, 0xEF, 0x5C, 0xAA, 0x61, 0x5B, 0x23, 0x1C, 0x5F, 0x60, 0xA7, 0xE1,
+ 0x7D, 0x66, 0x59, 0x02, 0xA7, 0xDB, 0x98, 0x5A, 0x20, 0x08, 0x31, 0x0E, 0x9C, 0xA3, 0xCB, 0x4E,
+ 0x36, 0x43, 0x7C, 0x6C, 0xEE, 0x57, 0xD1, 0x9F, 0xE4, 0x86, 0x7B, 0x44, 0x1B, 0x24, 0xB3, 0xB1,
+ 0xED, 0x6A, 0x55, 0x9E, 0x17, 0xA9, 0x28, 0x98, 0xBE, 0xED, 0x4A, 0x75, 0x33, 0x0C, 0x60, 0x4A,
+ 0xA2, 0x0F, 0x30, 0xB4, 0xC9, 0x5C, 0xF6, 0xB3, 0x77, 0x3F, 0x51, 0x6E, 0x17, 0x28, 0x23, 0x2D,
+ 0xFB, 0x18, 0x27, 0xFA, 0xC4, 0xC4, 0xFB, 0x26, 0xD2, 0x42, 0x89, 0xB6, 0x2D, 0x12, 0xB1, 0x85,
+ 0xC3, 0x9D, 0xA2, 0x47, 0x94, 0xC1, 0xAB, 0x73, 0x70, 0x5E, 0x37, 0x08, 0x09, 0x36, 0xF2, 0xE2,
+ 0x55, 0xE7, 0xD8, 0xAB, 0xE7, 0xDF, 0xD8, 0x1E, 0x54, 0xBA, 0xF7, 0xC8, 0x68, 0x57, 0xAD, 0xDC,
+ 0x0D, 0xBE, 0xD4, 0xE1, 0xCE, 0x8E, 0x1C, 0x7F, 0x61, 0x18, 0x84, 0xFA, 0x09, 0x98, 0xAE, 0xB0,
+ 0x1B, 0x6B, 0xD5, 0x53, 0xB3, 0xF0, 0xD7, 0xE6, 0xCC, 0xD0, 0x01, 0xC2, 0x45, 0xFD, 0x55, 0x6F,
+ 0xB0, 0xC3, 0x6B, 0xC1, 0xFE, 0xD6, 0x20, 0x36, 0x91, 0xAE, 0xBB, 0x91, 0xE4, 0xF3, 0xE2, 0x19,
+ 0x21, 0x0A, 0xEB, 0x8B, 0xA1, 0x83, 0x63, 0xE1, 0x0B, 0x4F, 0x53, 0xD1, 0x59, 0x9B, 0x86, 0x06,
+ 0x12, 0xE1, 0x7D, 0x26, 0x52, 0x48, 0xB8, 0xE8, 0x3F, 0x35, 0x7C, 0x3B, 0xAE, 0x9A, 0x03, 0x64,
+ 0xBD, 0x0F, 0x0E, 0xBE, 0x09, 0xF9, 0x2E, 0x8A, 0xE2, 0x36, 0x4A, 0x24, 0x6E, 0x83, 0x66, 0x27,
+ 0xE1, 0x68, 0xCC, 0x4E, 0xDE, 0x5D, 0xC2, 0x06, 0x0A, 0xF3, 0x8A, 0xD1, 0xDF, 0x2C, 0x06, 0x0A,
+ 0x1E, 0x75, 0x48, 0x70, 0x8D, 0xEF, 0x88, 0x2E, 0x7D, 0x9C, 0x1F, 0xF1, 0xE9, 0x0B, 0x33, 0x4C,
+ 0x3F, 0x97, 0x2B, 0x8E, 0x55, 0xFA, 0xD5, 0xF1, 0x0C, 0xF9, 0x6E, 0x0F, 0x6A, 0x1A, 0x22, 0x7F,
+ 0xA6, 0xC0, 0xCE, 0x2A, 0x52, 0x1F, 0xAD, 0xB0, 0x68, 0x6B, 0x10, 0xA3, 0xBD, 0x60, 0x23, 0x96,
+ 0xB9, 0x9A, 0xBB, 0x70, 0xAF, 0xF1, 0x95, 0x9B, 0xFF, 0xA4, 0x8F, 0x5C, 0xB8, 0x78, 0xFC, 0x6C,
+ 0xCF, 0x6A, 0x49, 0x41, 0xD6, 0x6D, 0x24, 0x7A, 0x37, 0xBA, 0x35, 0x05, 0x10, 0xCE, 0x96, 0x6E,
+ 0x97, 0xC8, 0xDA, 0xE6, 0x6B, 0xEF, 0x4F, 0xEA, 0x9A, 0x46, 0xEA, 0x81, 0xAA, 0xB4, 0xE3, 0xBF,
+ 0x0A, 0x46, 0x78, 0x2F, 0xE5, 0x76, 0x66, 0xAB, 0xF1, 0xC0, 0x3D, 0xED, 0x85, 0x47, 0x98, 0xD9,
+ 0x43, 0xA6, 0x3A, 0x09, 0x38, 0x0B, 0x2B, 0xF2, 0x00, 0xD0, 0x26, 0x45, 0x26, 0xAC, 0x04, 0xA1,
+ 0xBA, 0x90, 0xAE, 0x38, 0x96, 0xFF, 0xCD, 0x95, 0x73, 0x2E, 0x11, 0x04, 0x97, 0x5A, 0x9F, 0x77,
+ 0x74, 0xC0, 0x40, 0xF2, 0x44, 0xA4, 0x19, 0x45, 0xFF, 0x57, 0x6D, 0x6B, 0xFE, 0x34, 0xAD, 0x51,
+ 0xFC, 0x13, 0x67, 0xB9, 0x47, 0x5D, 0x2A, 0xD0, 0x80, 0x26, 0x4C, 0xE1, 0xBA, 0x73, 0xA4, 0x23,
+ 0x2F, 0x8A, 0x79, 0xE3, 0x39, 0xB6, 0xE5, 0x02, 0xD0, 0x89, 0xED, 0xC2, 0xAA, 0xAB, 0x12, 0xEF,
+ 0x89, 0x7C, 0xBF, 0xB8, 0x7C, 0x82, 0xDD, 0x3A, 0x77, 0x24, 0x33, 0x2D, 0xBA, 0x96, 0x76, 0x28,
+ 0x0E, 0xE9, 0xF1, 0x2B, 0xF6, 0x5A, 0xD4, 0x81, 0x43, 0xAD, 0x8B, 0x55, 0xD9, 0x0C, 0xF8, 0x8C,
+ 0x5B, 0x7A, 0xA6, 0x54, 0xB1, 0x00, 0x25, 0xDE, 0x40, 0xBD, 0xC0, 0x8E, 0x8F, 0xC1, 0xBA, 0xA0,
+ 0x7D, 0x47, 0x71, 0xB4, 0x5D, 0x91, 0xF4, 0x1D, 0xB4, 0xD9, 0x48, 0x1A, 0xA9, 0xA0, 0x42, 0xA4,
+ 0xDE, 0x3C, 0x42, 0x97, 0xA5, 0xE1, 0x13, 0x64, 0xBB, 0xBF, 0x28, 0xA0, 0x66, 0x54, 0x58, 0x39,
+ 0x45, 0x3F, 0x17, 0x3A, 0x93, 0x86, 0xC4, 0xE5, 0xCD, 0xC7, 0x7A, 0xA9, 0x00, 0x36, 0xCC, 0xDA,
+ 0xD6, 0x4C, 0x0C, 0x72, 0x69, 0x4F, 0x07, 0xDE, 0xC8, 0xCD, 0xD8, 0x4E, 0x6D, 0x08, 0x51, 0xD1,
+ 0x9C, 0xE7, 0x17, 0x93, 0xFF, 0xA5, 0xC6, 0x7A, 0x9F, 0xA4, 0x16, 0xFC, 0xDD, 0x44, 0x9E, 0x13,
+ 0x8E, 0xBF, 0xB8, 0x55, 0xA2, 0xAE, 0xB5, 0x9C, 0xAD, 0xD1, 0xFB, 0xD3, 0x8A, 0x69, 0xCB, 0xCC,
+ 0xD0, 0x17, 0x69, 0xA8, 0x92, 0x37, 0x29, 0x71, 0x37, 0x7A, 0x6C, 0x5D, 0x0E, 0x23, 0xBE, 0x6F,
+ 0xC5, 0x3D, 0x9F, 0xB1, 0x13, 0x08, 0x85, 0xED, 0xFB, 0xA9, 0xA9, 0xE4, 0x01, 0x6A, 0x6C, 0xCF,
+ 0xC7, 0xEA, 0x09, 0xD1, 0xC8, 0x13, 0xFF, 0x1E, 0xC2, 0x49, 0xAE, 0xD6, 0x27, 0x5E, 0x2C, 0x19,
+ 0xBC, 0x21, 0x66, 0x8F, 0xE3, 0x3B, 0xDF, 0x7E, 0xFB, 0x29, 0x76, 0x66, 0x8C, 0xD9, 0xEB, 0xD6,
+ 0xAF, 0x83, 0x1B, 0xAE, 0x95, 0xC5, 0xA2, 0x37, 0x2D, 0x36, 0x9F, 0x21, 0xD8, 0xF8, 0x0C, 0x8E,
+ 0xB1, 0x68, 0x37, 0xC7, 0x50, 0x02, 0xDB, 0x5C, 0xAA, 0x6D, 0xC9, 0x01, 0xB9, 0x3C, 0x13, 0x9A,
+ 0x86, 0xD7, 0x7E, 0x1F, 0x2A, 0x34, 0xDA, 0xF7, 0x8F, 0xE7, 0x79, 0xA3, 0x3C, 0x49, 0x24, 0x48,
+ 0xD1, 0xDC, 0xD0, 0xFF, 0xD9, 0xC3, 0x05, 0x4E, 0x81, 0xE4, 0x82, 0xCA, 0x3D, 0x1D, 0x75, 0xE2,
+ 0x39, 0x81, 0xBB, 0x01, 0xD6, 0x70, 0x61, 0x6C, 0xF7, 0x10, 0xF7, 0x3F, 0x5E, 0x7F, 0x5C, 0xAB,
+ 0x71, 0x11, 0xDC, 0xC3, 0x78, 0xC6, 0x3B, 0x6F, 0xCE, 0x2F, 0xEC, 0xDC, 0x86, 0x9D, 0xDA, 0x7C,
+ 0xEB, 0x04, 0xE2, 0xB6, 0xD2, 0x58, 0x2D, 0x8F, 0x5F, 0xC3, 0xA8, 0x7C, 0x85, 0x81, 0xFE, 0x80,
+ 0x8C, 0x39, 0xE4, 0xB1, 0xE3, 0xD5, 0x9E, 0x46, 0xAD, 0xA9, 0xE6, 0x5D, 0x1D, 0x4E, 0xD4, 0x6D,
+ 0x06, 0xBA, 0xC5, 0x3F, 0xCF, 0xEF, 0xB6, 0x6D, 0xBF, 0x1F, 0xB3, 0x82, 0x7F, 0x56, 0xAD, 0x45,
+ 0x62, 0x33, 0x5A, 0x3B, 0x7A, 0x07, 0x90, 0xA3, 0xC5, 0x89, 0x59, 0x67, 0x10, 0x0F, 0x46, 0x22,
+ 0xE2, 0xCD, 0xE1, 0x73, 0x4D, 0xCD, 0x5C, 0xE0, 0xA3, 0xA5, 0xEE, 0x7B, 0x17, 0xE8, 0x2B, 0x44,
+ 0xFA, 0x73, 0x18, 0x11, 0x58, 0x43, 0xD2, 0x23, 0xEB, 0x90, 0x50, 0x42, 0x93, 0x65, 0xAA, 0x6A,
+ 0x70, 0x77, 0x9A, 0x96, 0xD1, 0x85, 0x15, 0x22, 0xE9, 0x99, 0x64, 0xC1, 0x51, 0x77, 0x59, 0x5F,
+ 0xA4, 0x6E, 0xA0, 0xC1, 0x0F, 0xC9, 0x27, 0xFC, 0x0B, 0xAA, 0x80, 0x19, 0x2B, 0xE0, 0x61, 0xFF,
+ 0xF2, 0x11, 0x92, 0x05, 0xCF, 0x35, 0x37, 0xF0, 0xAC, 0xD9, 0xBE, 0xEC, 0x83, 0x3A, 0xD9, 0x2F,
+ 0x3E, 0x39, 0x65, 0xC5, 0x67, 0x2B, 0xE7, 0xDA, 0x91, 0xEC, 0xE3, 0xA5, 0x19, 0x55, 0x55, 0x28,
+ 0x75, 0xA9, 0x20, 0x1A, 0x08, 0x26, 0x72, 0xE1, 0xFD, 0xB2, 0xA7, 0x44, 0x7E, 0x5D, 0x3E, 0x40,
+ 0xDC, 0xC3, 0x68, 0x5B, 0xAE, 0xD1, 0x18, 0x65, 0xC5, 0x6F, 0x93, 0xB4, 0x1D, 0x40, 0x5E, 0x77,
+ 0x58, 0x32, 0x0C, 0x4F, 0x88, 0x0F, 0xF5, 0x9A, 0x1F, 0x49, 0x99, 0x29, 0x13, 0x14, 0x6A, 0xBC,
+ 0xCA, 0x81, 0xBA, 0xDC, 0x36, 0xE3, 0xB7, 0x89, 0x83, 0xFF, 0x02, 0x2C, 0xFB, 0xBF, 0x14, 0x07,
+ 0x57, 0x5E, 0xF5, 0x51, 0xB4, 0x0E, 0xF9, 0x29, 0xC8, 0x3A, 0x46, 0x37, 0x67, 0xC3, 0x01, 0x2C,
+ 0x04, 0xE3, 0x65, 0x6C, 0x4C, 0x73, 0xF0, 0x18, 0x73, 0x6C, 0x00, 0x39, 0x05, 0xEF, 0xDB, 0xF8,
+ 0x51, 0x46, 0x55, 0xBB, 0xD3, 0xE8, 0xD3, 0x5D, 0x17, 0x48, 0x32, 0xE6, 0xAB, 0x7B, 0x6D, 0x9D,
+ 0xF1, 0x06, 0x66, 0x0D, 0xFE, 0x4D, 0x4B, 0x33, 0x80, 0xBD, 0xC8, 0x13, 0x86, 0xCB, 0xF9, 0xD8,
+ 0x22, 0x43, 0xE5, 0x12, 0xA5, 0x83, 0x91, 0x11, 0x2D, 0x57, 0x68, 0x5A, 0x43, 0x52, 0x17, 0xDE,
+ 0xA3, 0x6F, 0x14, 0xBC, 0x38, 0x96, 0x8D, 0xFC, 0x48, 0x02, 0xAA, 0x71, 0x6A, 0x03, 0x3C, 0xF2,
+ 0xF6, 0x69, 0x59, 0x6F, 0x5D, 0x38, 0x5F, 0x62, 0x10, 0x58, 0xE9, 0xFB, 0xC9, 0x17, 0x6E, 0xB4,
+ 0x67, 0xF6, 0x79, 0xE1, 0x82, 0xA1, 0x6F, 0x34, 0xB3, 0x59, 0xFE, 0xE2, 0x26, 0xCC, 0x5A, 0x38,
+ 0xA1, 0xD6, 0x0C, 0xEF, 0x4F, 0x95, 0x92, 0x1A, 0x50, 0x2D, 0x30, 0x87, 0x8F, 0x87, 0xEF, 0x14,
+ 0xE4, 0x48, 0x14, 0xE1, 0xC5, 0x7E, 0x7E, 0x1F, 0x98, 0x34, 0x4D, 0x50, 0x41, 0xB2, 0x2D, 0xE4,
+ 0xA5, 0xF3, 0x4B, 0xB8, 0xFD, 0xD4, 0x38, 0x1F, 0x77, 0x9D, 0x94, 0xAA, 0xDC, 0x41, 0x3F, 0xD7,
+ 0x6B, 0x4D, 0x01, 0xDE, 0x12, 0x69, 0x09, 0x06, 0xEB, 0xC3, 0x42, 0x5A, 0x37, 0x31, 0xEC, 0xF2,
+ 0xFD, 0xBF, 0xEA, 0x07, 0xA1, 0xC1, 0x3E, 0x10, 0xB7, 0x3E, 0x91, 0xA0, 0x08, 0xD1, 0x58, 0x9E,
+ 0x38, 0x59, 0x43, 0x31, 0x07, 0xF7, 0x77, 0x78, 0x3D, 0x6D, 0x84, 0x96, 0xC8, 0x7D, 0xF5, 0x5B,
+ 0x22, 0xC6, 0x9C, 0xDE, 0x2D, 0x4B, 0x8D, 0xFF, 0xDA, 0x83, 0xE8, 0x5E, 0x16, 0x8B, 0xF3, 0xF5,
+ 0xFA, 0xCB, 0xC5, 0xF0, 0xA0, 0x9E, 0x0A, 0x3A, 0x3F, 0xAA, 0x93, 0x5D, 0xDF, 0xAB, 0x1D, 0xF2,
+ 0x8C, 0x66, 0x3E, 0xBD, 0xA0, 0x4F, 0x5C, 0xFB, 0x96, 0x5B, 0x82, 0xE0, 0xFE, 0x53, 0xBB, 0xE1,
+ 0x2E, 0x36, 0x7B, 0xF1, 0x2C, 0x89, 0x62, 0x81, 0x48, 0xD7, 0x11, 0x1B, 0x36, 0x90, 0x38, 0xA7,
+ 0xAF, 0x90, 0x48, 0xFD, 0x27, 0x47, 0x3D, 0x71, 0xF3, 0xE8, 0xDA, 0xBD, 0x02, 0xE1, 0x44, 0x96,
+ 0x42, 0x0F, 0xC0, 0x4A, 0xFB, 0x32, 0x10, 0x0C, 0x46, 0x1B, 0xC8, 0xBE, 0x54, 0x92, 0x1C, 0xEB,
+ 0x94, 0xA3, 0xAD, 0x90, 0x95, 0x38, 0x95, 0x5E, 0x2E, 0xDB, 0x0F, 0x51, 0x35, 0x71, 0x68, 0x29,
+ 0xDF, 0xFA, 0xE8, 0x24, 0x52, 0x72, 0x58, 0x5E, 0xE5, 0x04, 0x5A, 0x53, 0x4C, 0x80, 0x9F, 0x7E,
+ 0x7C, 0xAA, 0x58, 0x69, 0x4A, 0x72, 0x00, 0x3F, 0x14, 0x35, 0x8A, 0xC5, 0xB6, 0x47, 0xAA, 0x04,
+ 0x1C, 0x77, 0xCF, 0xC1, 0x80, 0xD4, 0xF4, 0xEE, 0x77, 0x12, 0x29, 0x6C, 0xA2, 0xA0, 0x09, 0x55,
+ 0x18, 0xDA, 0x86, 0xDA, 0xA5, 0x81, 0x27, 0x59, 0x3D, 0xA8, 0xA8, 0x41, 0x46, 0x7E, 0xB7, 0x78,
+ 0x39, 0x39, 0x11, 0xFF, 0x34, 0xD2, 0x60, 0x3E, 0xE3, 0xDD, 0x20, 0x40, 0xD8, 0x4D, 0xC6, 0xD5,
+ 0x67, 0x5B, 0xA1, 0x13, 0x6D, 0x81, 0xC2, 0xB9, 0x36, 0x01, 0xDD, 0x4C, 0x96, 0x89, 0x5F, 0x6A,
+ 0xB9, 0xF5, 0x52, 0xAE, 0x30, 0x0E, 0xFF, 0x0F, 0xC8, 0x2A, 0x7B, 0x2D, 0x8E, 0xB1, 0xE4, 0x92,
+ 0x69, 0xD4, 0x85, 0x9E, 0x2A, 0xAE, 0x13, 0x10, 0x7C, 0xB0, 0x5E, 0x5E, 0x27, 0x32, 0x97, 0xC6,
+ 0xBE, 0x1D, 0x56, 0x02, 0xBF, 0x05, 0xE0, 0x40, 0xF0, 0x03, 0xC3, 0x78, 0x00, 0x1B, 0xB9, 0x63,
+ 0x45, 0x2A, 0xA1, 0xEE, 0x42, 0x8A, 0x0E, 0x6C, 0x47, 0x3A, 0xEE, 0xC4, 0x0F, 0x99, 0x4C, 0xFB,
+ 0x72, 0x61, 0x61, 0x6F, 0xE7, 0x45, 0xF8, 0x59, 0x33, 0xE8, 0x17, 0xE3, 0x8B, 0x7F, 0xEB, 0x90,
+ 0x44, 0x04, 0x73, 0xC3, 0x69, 0x3B, 0x34, 0xC8, 0xE2, 0x50, 0xF2, 0xE0, 0xF5, 0xF9, 0x0A, 0x5A,
+ 0x3A, 0x1F, 0x05, 0xCC, 0xE9, 0x13, 0x4E, 0x0E, 0xA8, 0x48, 0x6B, 0x40, 0x9C, 0x81, 0x7B, 0x9F,
+ 0x61, 0x8D, 0x76, 0xCB, 0x94, 0xDD, 0x9A, 0x23, 0xEE, 0xF3, 0x9B, 0xD4, 0xA0, 0x70, 0xC3, 0x29,
+ 0xDB, 0x5C, 0xF4, 0x9E, 0x71, 0xAF, 0x2C, 0x62, 0x0D, 0x51, 0xED, 0x91, 0x9E, 0xC1, 0x99, 0x7E,
+ 0x1E, 0x7F, 0xE8, 0x61, 0x05, 0xBC, 0xD7, 0x2C, 0x35, 0x7D, 0xE9, 0xD8, 0x16, 0x7A, 0xF3, 0xAB,
+ 0x28, 0xC3, 0xC7, 0x76, 0xAD, 0x63, 0xCE, 0x0A, 0x65, 0x46, 0x46, 0x60, 0xDF, 0xEC, 0xE2, 0xAE,
+ 0x4B, 0xB2, 0xCB, 0x19, 0x95, 0xA6, 0x5F, 0x60, 0x02, 0xB0, 0x4A, 0x3A, 0x2E, 0xDC, 0x14, 0x7B,
+ 0xDE, 0x10, 0x25, 0xC8, 0xD9, 0xDD, 0x78, 0x77, 0x94, 0x31, 0xB5, 0x04, 0x87, 0x96, 0xBC, 0xD0,
+ 0x55, 0xDE, 0xF7, 0x3B, 0x11, 0xC3, 0xA9, 0xB4, 0x42, 0xF9, 0x4F, 0xA4, 0x97, 0x83, 0x8C, 0x19,
+ 0xD0, 0xCE, 0x4A, 0x65, 0x98, 0x06, 0xCC, 0x59, 0x0E, 0x50, 0x59, 0x92, 0xBA, 0x48, 0x29, 0xE9,
+ 0x07, 0xDC, 0x19, 0xE4, 0x0A, 0x0A, 0xCF, 0x20, 0x68, 0x3F, 0x75, 0x4C, 0x8B, 0x37, 0x69, 0x7A,
+ 0xEF, 0x2D, 0x64, 0xD3, 0xFA, 0xF4, 0xA7, 0xB9, 0xF9, 0xD7, 0xE4, 0x53, 0x70, 0x74, 0x27, 0x37,
+ 0x19, 0x09, 0xE7, 0x42, 0x9E, 0xFD, 0xE6, 0xB6, 0xE9, 0x3A, 0xB0, 0x96, 0xBD, 0x2A, 0x05, 0xD9,
+ 0x64, 0x7C, 0xFB, 0x33, 0x7A, 0xAF, 0xD3, 0xFB, 0x22, 0x08, 0xF5, 0xC4, 0xC2, 0xC6, 0x21, 0x05,
+ 0x16, 0x60, 0x65, 0xAA, 0x8F, 0xAF, 0x65, 0xAE, 0x3D, 0x9A, 0x3F, 0x3F, 0x55, 0x5D, 0x83, 0x83,
+ 0xC0, 0xC3, 0xFF, 0xF2, 0xAD, 0x83, 0x15, 0xB5, 0xBC, 0x3E, 0xF1, 0x43, 0x49, 0x6C, 0x7A, 0x4C,
+ 0xFE, 0xCC, 0x72, 0x46, 0x9A, 0xBC, 0x57, 0xAD, 0xF4, 0x53, 0xF7, 0xF1, 0xD4, 0xD9, 0xA2, 0xC7,
+ 0x3C, 0x9E, 0xDF, 0xC5, 0xB1, 0x3C, 0x06, 0xB4, 0x7A, 0x0E, 0x76, 0x00, 0x13, 0xC5, 0x5A, 0xBA,
+ 0xAA, 0xF2, 0x54, 0x13, 0x92, 0x88, 0x98, 0x28, 0xEF, 0xD6, 0x33, 0x75, 0xCE, 0x3B, 0xCB, 0xAA,
+ 0xBD, 0x39, 0xF2, 0x59, 0x67, 0xFF, 0x43, 0x72, 0xBC, 0x66, 0xA2, 0x59, 0x4D, 0x0B, 0x6B, 0xCA,
+ 0x54, 0x4C, 0xFD, 0xAF, 0x45, 0x33, 0xBB, 0xC9, 0x47, 0xE0, 0x50, 0x93, 0x30, 0xA4, 0x41, 0x4D,
+ 0x12, 0x93, 0xCB, 0xC3, 0x50, 0x00, 0x97, 0x5E, 0x48, 0x20, 0x03, 0x06, 0x24, 0xAD, 0x30, 0x89,
+ 0x9C, 0x62, 0x34, 0xDA, 0x1E, 0x54, 0x9F, 0x73, 0x1E, 0x14, 0xA5, 0xB2, 0xFB, 0x1F, 0x26, 0x3B,
+ 0x66, 0xA6, 0xF4, 0x1F, 0xD9, 0x50, 0x2F, 0xA6, 0x31, 0xE6, 0x05, 0x97, 0xAB, 0x87, 0x8B, 0xD0,
+ 0xC7, 0x4E, 0x3C, 0x38, 0x82, 0x5E, 0x14, 0xBF, 0x31, 0x19, 0x88, 0x8F, 0x13, 0x4C, 0xBB, 0xB6,
+ 0xF3, 0xC7, 0xCF, 0x5F, 0x73, 0x0B, 0x09, 0xDE, 0x43, 0x05, 0x21, 0x9A, 0x45, 0x26, 0x3D, 0xB9,
+ 0x56, 0x8B, 0xF0, 0xBE, 0x7A, 0xF1, 0xEB, 0xE4, 0x88, 0x28, 0x9E, 0x01, 0x18, 0xE3, 0xC2, 0x96,
+ 0xCD, 0x05, 0x9F, 0x0A, 0x16, 0x21, 0x40, 0xA2, 0x2C, 0x25, 0x0C, 0xFC, 0xD5, 0xA1, 0x48, 0x02,
+ 0xD4, 0x53, 0xAB, 0x03, 0xB4, 0x46, 0xB4, 0x6A, 0xF0, 0x39, 0xF0, 0xD5, 0x9E, 0x73, 0x47, 0x63,
+ 0x30, 0x03, 0x3D, 0x02, 0x8C, 0x2F, 0x23, 0xB3, 0x4C, 0x9A, 0x24, 0x08, 0xF9, 0x41, 0xB2, 0x85,
+ 0xB7, 0x67, 0x7A, 0x97, 0x58, 0xF9, 0x01, 0xC2, 0x0C, 0x28, 0x6A, 0xC9, 0x6E, 0xB3, 0xC2, 0x76,
+ 0xEA, 0x9C, 0x41, 0xF2, 0x06, 0x5C, 0x6E, 0x86, 0x55, 0x11, 0xA6, 0x9F, 0x62, 0x63, 0xC7, 0x3D,
+ 0x0D, 0x4E, 0xFD, 0x67, 0x2E, 0x44, 0x5B, 0x6E, 0x1D, 0x4B, 0x36, 0xA0, 0xB9, 0xC4, 0x71, 0xE9,
+ 0xE7, 0xFE, 0xEA, 0x83, 0x2B, 0x7C, 0x02, 0x65, 0x30, 0x85, 0x52, 0xE9, 0xE8, 0xE2, 0x1A, 0x05,
+ 0x04, 0x61, 0xE0, 0x4F, 0x0F, 0x89, 0x31, 0x61, 0x07, 0xD0, 0xAE, 0x7E, 0xD9, 0x86, 0x4C, 0x11,
+ 0xBA, 0x9C, 0x3F, 0xB2, 0x70, 0x11, 0xBC, 0x50, 0x29, 0xDD, 0xB6, 0x02, 0x94, 0x08, 0xB8, 0x2B,
+ 0xB8, 0x19, 0xFC, 0x77, 0xDE, 0xCF, 0xC9, 0x16, 0x0C, 0x3A, 0x25, 0x27, 0x4E, 0x6F, 0x5B, 0x5D,
+ 0xA3, 0x1C, 0xB4, 0x1F, 0xE1, 0x60, 0x2B, 0x06, 0xFB, 0xC9, 0x6D, 0x41, 0x72, 0x35, 0x0B, 0x9C,
+ 0xB2, 0xCA, 0x53, 0x34, 0xB9, 0x4F, 0x1A, 0x06, 0xE9, 0x93, 0xD8, 0xD7, 0x0F, 0xCA, 0x02, 0xCA,
+ 0xFC, 0x7E, 0xCC, 0xB3, 0x1F, 0x86, 0xD5, 0xED, 0xB1, 0x07, 0xBF, 0xD1, 0xB9, 0x79, 0x89, 0x0A,
+ 0x9D, 0x73, 0x20, 0x00, 0xD4, 0x77, 0x68, 0x5B, 0x11, 0x1A, 0xE5, 0xAC, 0x4D, 0x8F, 0x1C, 0xAC,
+ 0xCB, 0x50, 0xE5, 0x33, 0xF0, 0x72, 0xAC, 0xA9, 0x01, 0x69, 0xFB, 0xFC, 0xD0, 0xF6, 0x69, 0x0C,
+ 0xD6, 0xBB, 0xE2, 0x48, 0x45, 0x21, 0x49, 0x1F, 0xD3, 0x01, 0x85, 0xFE, 0x76, 0x51, 0xDB, 0x26,
+ 0x2D, 0xCF, 0x25, 0xBF, 0xD0, 0x19, 0x1D, 0x5F, 0x3F, 0xFF, 0xD2, 0x45, 0xF1, 0x8E, 0xA7, 0x61,
+ 0x1F, 0xAD, 0xD3, 0xD0, 0x69, 0xC8, 0xF9, 0x8F, 0xB0, 0xB7, 0x71, 0x8A, 0xD6, 0xDB, 0xC3, 0x7B,
+ 0x29, 0x5E, 0x78, 0x76, 0x2F, 0x89, 0xE0, 0x16, 0x64, 0xC1, 0xDE, 0xB6, 0x77, 0x4D, 0x7B, 0xD7,
+ 0xE9, 0x36, 0x12, 0x22, 0x22, 0x73, 0x4F, 0x19, 0xCC, 0x54, 0x82, 0x5B, 0x7D, 0xA1, 0x92, 0x49,
+ 0x7C, 0x39, 0xAF, 0xF9, 0x1D, 0x39, 0x68, 0xBC, 0xC7, 0xDE, 0x7D, 0x58, 0x90, 0xEB, 0x9E, 0x6E,
+ 0xE7, 0x57, 0x3C, 0xFF, 0x65, 0x00, 0xFB, 0xFB, 0x4F, 0x14, 0x6E, 0x08, 0xB4, 0x7F, 0xED, 0x46,
+ 0x62, 0x97, 0xF0, 0xA1, 0xFB, 0xA0, 0x9E, 0x13, 0xA9, 0xED, 0x78, 0x0C, 0xC7, 0xB4, 0x97, 0xAD,
+ 0xD8, 0x53, 0xA4, 0xCA, 0xEA, 0x6A, 0x90, 0x1C, 0xF6, 0x88, 0xD3, 0x08, 0xA1, 0x43, 0xBA, 0x02,
+ 0x30, 0x2A, 0xBA, 0xCE, 0xEF, 0xA2, 0xF8, 0x91, 0x58, 0xA1, 0x42, 0x9B, 0x37, 0x00, 0x86, 0x81,
+ 0x89, 0x17, 0x4C, 0xC7, 0x93, 0x46, 0xD7, 0xCB, 0x8D, 0x32, 0xF4, 0x09, 0xE9, 0x2C, 0x21, 0x64,
+ 0x5E, 0x25, 0x73, 0xF7, 0x50, 0xAA, 0x24, 0x0A, 0x12, 0x56, 0x69, 0x62, 0x81, 0x05, 0x93, 0x79,
+ 0x45, 0xA0, 0x84, 0x1C, 0x75, 0xA1, 0xCF, 0x48, 0x6C, 0xE3, 0x20, 0x90, 0x03, 0x48, 0x96, 0xB7,
+ 0x72, 0x0C, 0x0F, 0x58, 0xD4, 0x15, 0x39, 0x7E, 0x05, 0x44, 0xD9, 0x56, 0xD9, 0xAE, 0xF9, 0x4F,
+ 0x0D, 0x90, 0x7B, 0xCA, 0xE0, 0x79, 0x79, 0x86, 0x9C, 0x7F, 0x5C, 0x77, 0x22, 0xB6, 0x77, 0x7B,
+ 0x73, 0x00, 0x1B, 0x7D, 0x19, 0xCE, 0x03, 0x1D, 0x8A, 0x31, 0xC5, 0x5F, 0x30, 0xCE, 0xD3, 0x99,
+ 0xEC, 0xE3, 0xF3, 0x8F, 0xA6, 0xEA, 0x1B, 0x92, 0xDE, 0xBF, 0xDA, 0xA6, 0x5B, 0xF6, 0x63, 0x74,
+ 0x56, 0x76, 0xE2, 0x00, 0x3B, 0x64, 0xAD, 0xE2, 0x21, 0xEE, 0xAC, 0x38, 0x37, 0x47, 0xFC, 0xE6,
+ 0xE8, 0x9C, 0xD5, 0xBA, 0xCC, 0xF0, 0x6F, 0xBC, 0xD8, 0xD3, 0x6D, 0xFE, 0x5A, 0xB7, 0xB3, 0xF6,
+ 0xA3, 0x00, 0x1B, 0x8C, 0xC9, 0xB7, 0xA2, 0x5E, 0xE7, 0x88, 0x38, 0x09, 0x61, 0x46, 0x0A, 0x1A,
+ 0x2B, 0xB7, 0xE3, 0xB9, 0x75, 0x33, 0xC3, 0xE7, 0x21, 0x88, 0x1E, 0xEB, 0x5F, 0x97, 0x0F, 0x77,
+ 0x4B, 0xB2, 0xFF, 0xB1, 0x6A, 0x04, 0x37, 0x4E, 0xCE, 0xE0, 0xBD, 0x83, 0x31, 0x70, 0x6B, 0xD9,
+ 0x0E, 0x90, 0xA1, 0x14, 0x91, 0xA9, 0x57, 0x71, 0x0F, 0x57, 0x17, 0x8C, 0xE2, 0x7A, 0x7A, 0x78,
+ 0x2F, 0x10, 0x43, 0xAF, 0x94, 0xBA, 0x10, 0xCC, 0xD9, 0xE4, 0x9F, 0x9F, 0xA1, 0x49, 0x62, 0xF4,
+ 0x8E, 0xAD, 0xE6, 0x5C, 0x9D, 0x80, 0xC8, 0x2C, 0x69, 0x36, 0x4C, 0x97, 0x7A, 0x86, 0x6A, 0xA2,
+ 0x50, 0x8A, 0x5B, 0xC8, 0xE4, 0x34, 0xF5, 0x88, 0xB4, 0x70, 0xEA, 0x8F, 0xB8, 0xBE, 0x3F, 0x77,
+ 0x0F, 0xDD, 0x7E, 0xBB, 0x6D, 0x15, 0x40, 0x96, 0x07, 0xCD, 0xB3, 0x16, 0x3E, 0x4A, 0x2D, 0x89,
+ 0xCA, 0xDC, 0x72, 0x5F, 0x1D, 0xCB, 0x09, 0x06, 0x71, 0x19, 0xA6, 0xB0, 0xD6, 0xE6, 0x71, 0x32,
+ 0xCD, 0xD6, 0x53, 0x23, 0x8D, 0x64, 0x3D, 0x99, 0x52, 0x2C, 0xA4, 0xFF, 0x74, 0x9C, 0xF5, 0xA5,
+ 0x15, 0x97, 0xAA, 0x68, 0xC2, 0x52, 0xBA, 0x4B, 0x46, 0x77, 0xDF, 0x62, 0xC4, 0xBC, 0x7A, 0xE8,
+ 0x19, 0x3F, 0xAC, 0x0B, 0x3F, 0x87, 0x55, 0x5C, 0x26, 0x6F, 0x26, 0x2E, 0xB9, 0xA7, 0x5A, 0x24,
+ 0xBB, 0x35, 0xAD, 0xE5, 0xE8, 0xA4, 0x6B, 0x35, 0x96, 0x79, 0xB5, 0xEF, 0x94, 0x64, 0x8E, 0x4D,
+ 0x75, 0xD3, 0x10, 0xF3, 0x1A, 0x04, 0x27, 0x27, 0x99, 0xF0, 0xFF, 0xED, 0x9B, 0xA5, 0x6E, 0xE1,
+ 0x98, 0xD1, 0xF1, 0x9A, 0x14, 0x6F, 0x0A, 0xFD, 0xF6, 0x84, 0xED, 0x50, 0x60, 0xD6, 0x4B, 0x3E,
+ 0x94, 0x3B, 0x2B, 0x42, 0x01, 0x87, 0x1C, 0xAC, 0x15, 0xA2, 0x5A, 0xE6, 0xFE, 0x02, 0x17, 0xE5,
+ 0x8F, 0x94, 0xDB, 0x3F, 0x8D, 0x94, 0xFE, 0xA1, 0x4B, 0x5C, 0x12, 0xDB, 0xB4, 0x58, 0xDE, 0xC0,
+ 0xCB, 0x93, 0xB7, 0xA6, 0x9F, 0xDA, 0xE2, 0xBF, 0xE3, 0xD9, 0x88, 0x23, 0xAF, 0x4E, 0x49, 0x86,
+ 0x85, 0xC5, 0x15, 0x41, 0x96, 0xF2, 0x2D, 0xBE, 0xC7, 0xF1, 0xEF, 0xB6, 0xBD, 0xFD, 0xB2, 0x86,
+ 0xFC, 0xA0, 0x6B, 0xDF, 0x9A, 0x91, 0x9B, 0x43, 0x80, 0x1B, 0xCC, 0xA0, 0x9E, 0xC1, 0x9B, 0x7A,
+ 0xAA, 0xB2, 0x9F, 0x5C, 0x0B, 0x45, 0x5F, 0x6D, 0x7E, 0x43, 0xD2, 0x08, 0x88, 0xB8, 0x10, 0x1F,
+ 0x1A, 0x17, 0x2B, 0xB7, 0x0F, 0x4E, 0x2A, 0xEA, 0x45, 0x06, 0xE5, 0xC8, 0x01, 0xB9, 0x87, 0xE5,
+ 0xE1, 0x87, 0xB7, 0x43, 0x66, 0xE1, 0x7E, 0x9E, 0xF1, 0x8B, 0xB2, 0xCC, 0x93, 0x66, 0xAC, 0x3F,
+ 0x07, 0x04, 0xF7, 0x1D, 0xDD, 0xC3, 0x14, 0xAD, 0xD9, 0x26, 0x13, 0xB1, 0x57, 0x76, 0xA1, 0xB7,
+ 0xE3, 0xD1, 0x01, 0x5D, 0x39, 0x8B, 0x83, 0x12, 0x78, 0x71, 0xC7, 0x0B, 0x9D, 0x44, 0x5B, 0xC2,
+ 0xDD, 0x1B, 0x3B, 0x44, 0x64, 0x86, 0x59, 0x72, 0x29, 0x31, 0x91, 0x64, 0x3B, 0x54, 0x3A, 0x9C,
+ 0x80, 0xCE, 0x5F, 0xFD, 0x97, 0x64, 0x36, 0xBD, 0x43, 0x97, 0x5D, 0xF8, 0xA4, 0x84, 0x32, 0x88,
+ 0xD0, 0xE8, 0x2C, 0x7E, 0xF8, 0x78, 0x35, 0x84, 0x63, 0xFF, 0x65, 0x4C, 0x03, 0xD5, 0x42, 0x08,
+ 0x3A, 0x41, 0x25, 0xC4, 0xE4, 0xFA, 0x6C, 0xE4, 0x8D, 0x78, 0x01, 0xD0, 0x7F, 0xF3, 0xA0, 0xDC,
+ 0x8D, 0x76, 0xBD, 0x11, 0x6E, 0xFD, 0x8B, 0xD4, 0x83, 0x75, 0x81, 0x62, 0x71, 0x3F, 0x0C, 0x6F,
+ 0x33, 0xB9, 0xFA, 0xC2, 0x2C, 0xE9, 0x06, 0x1C, 0xA8, 0x88, 0x99, 0x9E, 0xE2, 0xB1, 0x37, 0x34,
+ 0x25, 0xE6, 0x1E, 0xBE, 0xB8, 0x94, 0xA0, 0xF5, 0x87, 0xF3, 0x34, 0xC4, 0x4C, 0x9A, 0xF2, 0x6B,
+ 0x63, 0x02, 0xF5, 0x3B, 0xC9, 0x3C, 0x8C, 0xC0, 0xCD, 0x45, 0x67, 0xF8, 0x25, 0x93, 0xA2, 0xA3,
+ 0x51, 0x40, 0x5F, 0x82, 0x6E, 0x2D, 0x18, 0x9C, 0xA1, 0x8D, 0x32, 0xBF, 0xB9, 0xB0, 0x94, 0x49,
+ 0xAB, 0x88, 0x53, 0x62, 0x3D, 0xF7, 0xA8, 0xEA, 0xFC, 0xB0, 0x92, 0x1F, 0x54, 0x28, 0x66, 0x6E,
+ 0xC4, 0x45, 0xEF, 0x78, 0x58, 0x5D, 0x3E, 0x16, 0x26, 0x0A, 0x16, 0xBB, 0xC1, 0x11, 0x8F, 0xFD,
+ 0xF0, 0xAA, 0xBA, 0x34, 0xA8, 0x1E, 0x23, 0x32, 0x8D, 0x67, 0xBF, 0xC7, 0x58, 0x7B, 0xC0, 0xE1,
+ 0xFA, 0x6D, 0x93, 0x1F, 0x9B, 0x58, 0x77, 0xE9, 0xDD, 0x4A, 0x3B, 0x30, 0x4E, 0x96, 0x22, 0x00,
+ 0x61, 0x05, 0xB9, 0x2B, 0x37, 0x11, 0xDC, 0x04, 0x7B, 0xC3, 0xA9, 0xFF, 0x99, 0xD4, 0x9D, 0x2B,
+ 0x53, 0x42, 0xB6, 0x70, 0xA8, 0x32, 0xE4, 0x5F, 0x19, 0x22, 0xC2, 0xB4, 0xF2, 0xF1, 0x24, 0x12,
+ 0x2E, 0x50, 0x52, 0xB6, 0x84, 0x23, 0xD1, 0xF1, 0x92, 0xC3, 0x87, 0xEF, 0x34, 0x1D, 0x39, 0x87,
+ 0xF7, 0x39, 0x7E, 0x5C, 0x94, 0x98, 0x22, 0x9F, 0xF4, 0x26, 0xC6, 0x6C, 0x51, 0x5B, 0xF2, 0x4B,
+ 0x21, 0x9F, 0xC4, 0x82, 0xBB, 0xD7, 0x52, 0x30, 0x6E, 0xF4, 0x08, 0x0E, 0x41, 0x6A, 0x66, 0x09,
+ 0x0B, 0x3F, 0x97, 0x8F, 0x04, 0xE6, 0x31, 0x02, 0xCF, 0x46, 0x41, 0xA5, 0x8A, 0xF2, 0x98, 0xAE,
+ 0xC9, 0x71, 0xDC, 0x83, 0x13, 0x0B, 0x60, 0x93, 0xB4, 0xDA, 0xC0, 0xD8, 0x15, 0xEE, 0x8C, 0xF6,
+ 0x8A, 0x9D, 0x1B, 0x97, 0xD7, 0x46, 0x74, 0xA5, 0x5F, 0xE9, 0x95, 0x8E, 0x21, 0x3C, 0x0F, 0x04,
+ 0x9D, 0xAE, 0xC5, 0xD6, 0x3D, 0x0F, 0xAF, 0x31, 0xE7, 0x73, 0x04, 0x40, 0xCC, 0x0C, 0x0A, 0x6F,
+ 0xB0, 0xDC, 0x9D, 0xE9, 0xA0, 0xE6, 0xE8, 0xD9, 0x2A, 0x1F, 0x7E, 0xFF, 0x2C, 0xF6, 0xA5, 0x9A,
+ 0xF8, 0xD3, 0x3C, 0x7B, 0x84, 0xF2, 0xB2, 0x41, 0x27, 0xFC, 0x65, 0x10, 0x5A, 0x14, 0x75, 0x5D,
+ 0x62, 0xD4, 0xC7, 0xED, 0x64, 0x21, 0xA4, 0xB4, 0x8E, 0xFA, 0x21, 0xFA, 0x3B, 0x08, 0x3E, 0x46,
+ 0x05, 0x26, 0xA6, 0x98, 0xC5, 0x39, 0x17, 0x20, 0x5B, 0x7F, 0x6F, 0x43, 0x63, 0xC7, 0xCA, 0xF9,
+ 0x26, 0xEB, 0x9A, 0x67, 0x39, 0x4C, 0x2B, 0x3B, 0x05, 0x3E, 0x16, 0x4A, 0x8E, 0x71, 0xC3, 0x0E,
+ 0x38, 0x94, 0x7A, 0x8F, 0x9F, 0xD8, 0x52, 0x4D, 0x6A, 0x53, 0x40, 0xEB, 0x71, 0xB5, 0xBF, 0xC6,
+ 0x0F, 0xE6, 0xFD, 0x33, 0xD9, 0xD5, 0x53, 0xFD, 0x84, 0xC0, 0xF0, 0xC4, 0x73, 0xC0, 0xAA, 0x79,
+ 0x58, 0x2E, 0x87, 0xA5, 0xF7, 0x02, 0x8C, 0x55, 0x79, 0x3D, 0x0B, 0x5C, 0x60, 0x94, 0x30, 0x6F,
+ 0xF9, 0x84, 0x44, 0x26, 0x78, 0x22, 0x9C, 0xDB, 0xA5, 0x10, 0xED, 0xA4, 0x5D, 0xFE, 0xA9, 0x79,
+ 0x2D, 0xF8, 0x84, 0xE2, 0x73, 0xF0, 0xAE, 0x9B, 0x93, 0xA7, 0x09, 0x81, 0xA2, 0x69, 0xD3, 0x94,
+ 0x7B, 0x7B, 0x67, 0x2C, 0x65, 0x0C, 0xBE, 0xA9, 0xCC, 0xFF, 0x37, 0x55, 0xDF, 0xB3, 0xE8, 0xAA,
+ 0xB7, 0x56, 0x54, 0xDD, 0x4A, 0xF3, 0x6E, 0x48, 0x56, 0xFA, 0x6A, 0x07, 0xEA, 0xDC, 0x6A, 0x70,
+ 0x8F, 0xA2, 0x47, 0xB7, 0xA2, 0xC3, 0x3F, 0xCD, 0x30, 0x5F, 0x3A, 0x1F, 0x5A, 0xDF, 0x34, 0x7A,
+ 0xEB, 0x9B, 0x33, 0x91, 0xCB, 0x24, 0x19, 0xFE, 0x49, 0xEE, 0xD0, 0x44, 0x57, 0x86, 0x81, 0x88,
+ 0x6B, 0xF5, 0xBB, 0x7E, 0x83, 0x53, 0xD5, 0x79, 0x4A, 0xAD, 0x67, 0xC7, 0x8A, 0x61, 0x39, 0x20,
+ 0x73, 0x18, 0x3E, 0xFD, 0x50, 0xE2, 0x5B, 0x4C, 0x40, 0xDF, 0xD9, 0xFF, 0xDE, 0xEC, 0x2C, 0xAA,
+ 0xDE, 0x8F, 0x4C, 0xE3, 0xCA, 0x9E, 0x70, 0xB8, 0x2E, 0x92, 0xCF, 0x3E, 0x77, 0x4A, 0xA1, 0x1E,
+ 0x8D, 0x09, 0xCE, 0x37, 0x88, 0xDD, 0x79, 0xAF, 0xDD, 0x52, 0x89, 0x29, 0xC2, 0x66, 0xED, 0xC0,
+ 0xD8, 0x2E, 0xF9, 0x58, 0x33, 0x83, 0x5A, 0xF9, 0x13, 0x68, 0xBB, 0x59, 0x37, 0xF2, 0xCB, 0x60,
+ 0x78, 0x06, 0x5A, 0x7A, 0xF1, 0x96, 0xC2, 0x5D, 0xA9, 0xB3, 0x41, 0xF9, 0x95, 0x42, 0x43, 0x29,
+ 0xFC, 0x9E, 0x0A, 0x6D, 0x49, 0xF9, 0xFB, 0x05, 0xE7, 0xC1, 0x2E, 0xC9, 0x87, 0xD4, 0x4E, 0xF2,
+ 0x55, 0x05, 0x4A, 0x13, 0xEF, 0xD5, 0x91, 0xBF, 0xC3, 0x32, 0x1A, 0x67, 0x7C, 0xC9, 0x54, 0x47,
+ 0xD1, 0x4F, 0x7F, 0xFA, 0xA5, 0x84, 0x7C, 0xA5, 0xED, 0x11, 0x10, 0xD1, 0xEB, 0x9D, 0xDB, 0x2E,
+ 0x43, 0xDB, 0x9A, 0x19, 0x97, 0xCB, 0x3E, 0x08, 0x92, 0x17, 0x8B, 0x7C, 0xA6, 0x36, 0xF6, 0xC3,
+ 0x28, 0x5F, 0xF3, 0x3B, 0xE9, 0xD0, 0x1B, 0x68, 0x4C, 0x92, 0xB9, 0x8B, 0xC9, 0x0E, 0xD1, 0x37,
+ 0x6D, 0x93, 0x43, 0xFF, 0x7A, 0x1F, 0xF7, 0xCE, 0x76, 0x89, 0xC4, 0xA5, 0xC5, 0x3B, 0xAA, 0xFE,
+ 0x2C, 0xDB, 0x68, 0x18, 0xCA, 0xC3, 0xB1, 0x81, 0x32, 0x13, 0x1D, 0xA3, 0xBA, 0xC8, 0x67, 0x14,
+ 0xE2, 0x99, 0x22, 0x26, 0xE7, 0x12, 0x80, 0xD0, 0x2E, 0xF1, 0xCB, 0xAE, 0xB6, 0xB8, 0xA8, 0x5E,
+ 0xAB, 0x1C, 0x52, 0xFA, 0xB5, 0x25, 0x18, 0x06, 0x2C, 0x1E, 0xE1, 0xE1, 0x0C, 0xDB, 0x23, 0x65,
+ 0x2A, 0x18, 0x13, 0x7F, 0x21, 0x2D, 0x04, 0xDE, 0xCD, 0xAE, 0x23, 0xCD, 0x3D, 0x8A, 0x16, 0x06,
+ 0x7F, 0x42, 0xE6, 0x27, 0xE0, 0x56, 0xD6, 0xB6, 0x4B, 0x11, 0x60, 0x9D, 0xB9, 0x9E, 0xD6, 0x33,
+ 0xEE, 0x10, 0x8E, 0x22, 0xA5, 0x74, 0xE6, 0x33, 0x21, 0x11, 0x77, 0x52, 0x1D, 0x45, 0x99, 0xF0,
+ 0x9B, 0x88, 0x0B, 0xFE, 0x8F, 0x04, 0x31, 0xD9, 0x5E, 0xC6, 0xF5, 0xEF, 0x63, 0x13, 0xCC, 0xFF,
+ 0x34, 0x38, 0x45, 0xB8, 0xC9, 0x6B, 0xA7, 0x7F, 0xEE, 0xA2, 0xC3, 0x97, 0xB7, 0x0A, 0x7B, 0x90,
+ 0x68, 0xD0, 0x02, 0x93, 0xB8, 0x67, 0x4B, 0xBD, 0xF3, 0xBB, 0x03, 0xD5, 0xFB, 0xA5, 0x48, 0xFE,
+ 0x97, 0x60, 0x32, 0xD3, 0xA5, 0xE1, 0x01, 0x55, 0xB9, 0x1C, 0x96, 0x84, 0x2F, 0x82, 0x01, 0xDC,
+ 0x84, 0x73, 0x00, 0x8A, 0xE5, 0x5C, 0x95, 0x07, 0x25, 0xA0, 0x0D, 0x15, 0xA6, 0x11, 0xE4, 0xDE,
+ 0x92, 0xFE, 0xF0, 0x5D, 0xB6, 0x0D, 0x5E, 0xFB, 0x3E, 0x54, 0x88, 0xEB, 0x70, 0x74, 0x7B, 0x23,
+ 0x39, 0x6A, 0x3B, 0xE3, 0xF5, 0xB8, 0xA9, 0xCE, 0x41, 0x18, 0x32, 0x36, 0x81, 0x7A, 0x6A, 0x76,
+ 0xA8, 0x5A, 0xCC, 0xAE, 0xF5, 0x50, 0xEA, 0x36, 0x91, 0x52, 0xDA, 0x10, 0x7B, 0x12, 0x19, 0x98,
+ 0x1E, 0x8F, 0x05, 0x1F, 0x19, 0xFF, 0xC6, 0x9F, 0xC0, 0xBF, 0x63, 0xE0, 0xDA, 0x3D, 0xFC, 0xC7,
+ 0x83, 0xD3, 0xB9, 0xBB, 0x43, 0x41, 0xEF, 0x55, 0xD8, 0xCD, 0xB4, 0x8D, 0xDD, 0xCE, 0x3E, 0x28,
+ 0xCA, 0x96, 0xB5, 0x77, 0x2C, 0xD1, 0xA2, 0x36, 0xD8, 0x88, 0xAF, 0x3C, 0xA6, 0x25, 0xDE, 0x0A,
+ 0x33, 0xC7, 0xCB, 0x75, 0x74, 0x31, 0x44, 0xBA, 0xF3, 0xD8, 0x98, 0x8C, 0x54, 0xD3, 0xC6, 0x74,
+ 0xB6, 0x39, 0x2F, 0xAF, 0x31, 0x41, 0x5C, 0x4D, 0xE6, 0x3A, 0xE7, 0x27, 0x69, 0x93, 0x71, 0xA2,
+ 0x2F, 0x2B, 0x04, 0xEB, 0x9C, 0xDF, 0x24, 0x18, 0x4C, 0xDF, 0x99, 0xB8, 0xE6, 0xE9, 0x92, 0xB6,
+ 0x30, 0x47, 0x3B, 0xC2, 0x42, 0x65, 0x1C, 0xBF, 0x5E, 0x3E, 0x06, 0x37, 0x4F, 0xF1, 0xD6, 0x36,
+ 0x46, 0x2A, 0x9D, 0x52, 0xC8, 0x76, 0xAD, 0x59, 0x46, 0xA5, 0xBC, 0xE8, 0x47, 0x47, 0x2A, 0x64,
+ 0x87, 0x20, 0x14, 0x13, 0x76, 0xC8, 0x5D, 0x5C, 0x55, 0x35, 0x02, 0x9F, 0x1F, 0x85, 0xBB, 0x55,
+ 0xD2, 0xE1, 0x37, 0x61, 0x57, 0x7A, 0xAC, 0xCC, 0xCB, 0x62, 0x49, 0x03, 0xCC, 0x48, 0xAF, 0xDC,
+ 0xF4, 0x7E, 0x75, 0xCC, 0x6B, 0x84, 0x7D, 0x99, 0x8A, 0x70, 0xC1, 0x47, 0xC8, 0x29, 0xAB, 0x75,
+ 0x57, 0x33, 0xBD, 0x26, 0x12, 0x1F, 0x9A, 0x35, 0x5D, 0x57, 0xA1, 0xFF, 0x7F, 0xDD, 0xEA, 0xD1,
+ 0xFD, 0xBA, 0xF7, 0x9C, 0xF0, 0x54, 0x90, 0xB5, 0x95, 0x96, 0xE4, 0x33, 0x3D, 0xBD, 0xDE, 0xDA,
+ 0x75, 0x96, 0x71, 0xB3, 0xF2, 0x70, 0xA3, 0x80, 0x9E, 0xA9, 0xC5, 0x1A, 0x9A, 0xFA, 0x7D, 0x67,
+ 0xA6, 0xF6, 0x4B, 0x09, 0x03, 0x82, 0x6C, 0xED, 0x77, 0xC8, 0x64, 0x25, 0x15, 0x22, 0x8E, 0x6F,
+ 0x00, 0xCD, 0x26, 0x18, 0x58, 0x5E, 0x54, 0x60, 0xFF, 0xDD, 0xBA, 0xF7, 0x6F, 0x1F, 0x9F, 0x2A,
+ 0x59, 0x0A, 0xAA, 0x1B, 0xE4, 0x75, 0xA0, 0x9C, 0xD4, 0x6A, 0xE5, 0xC5, 0x34, 0xAA, 0xA3, 0x83,
+ 0x4C, 0xDD, 0xB3, 0xD2, 0xB0, 0x8F, 0x0C, 0x73, 0x9E, 0x86, 0x20, 0xD0, 0x6A, 0xE3, 0x9D, 0xE7,
+ 0x4E, 0x05, 0x92, 0xFC, 0x0F, 0xFE, 0x76, 0x71, 0xCB, 0x0F, 0x27, 0x2A, 0xCE, 0xD7, 0xBF, 0xFD,
+ 0x35, 0xF8, 0x4B, 0x3B, 0x2F, 0x2E, 0x56, 0xF0, 0xDD, 0x41, 0xFF, 0xC5, 0xFA, 0x50, 0x3F, 0x92,
+ 0xCC, 0x82, 0xDD, 0x49, 0x5A, 0x2B, 0x4D, 0xB6, 0x6C, 0x19, 0xF3, 0x93, 0xB5, 0xBF, 0xDD, 0x52,
+ 0x5F, 0x4C, 0xF0, 0x38, 0x3B, 0xCB, 0x8E, 0x97, 0x13, 0x01, 0x51, 0x40, 0x26, 0x81, 0xDF, 0xE2,
+ 0x15, 0xF4, 0x10, 0x16, 0xFC, 0xBE, 0x4F, 0xBF, 0x27, 0xAD, 0x9F, 0xFA, 0x97, 0xCD, 0x71, 0x39,
+ 0x07, 0x64, 0x91, 0xF9, 0x3C, 0xCA, 0x3C, 0x43, 0xB9, 0x74, 0x72, 0x4E, 0x70, 0xE0, 0xA2, 0xD4,
+ 0x52, 0x9C, 0x73, 0xCF, 0x33, 0xD8, 0xEF, 0x2A, 0x40, 0x05, 0x9A, 0x66, 0xEB, 0xE7, 0x0F, 0x48,
+ 0xC9, 0x81, 0x6A, 0x19, 0x97, 0xB9, 0x44, 0x92, 0x58, 0x59, 0x08, 0xA4, 0x9D, 0xA5, 0xD5, 0x09,
+ 0xC3, 0x98, 0xB8, 0xCA, 0x53, 0x56, 0x10, 0x3D, 0x97, 0x8F, 0x8C, 0x88, 0x2D, 0x48, 0x0F, 0xE3,
+ 0xF7, 0xA7, 0x3F, 0xBD, 0x84, 0x14, 0x0D, 0x38, 0x4F, 0x9B, 0x25, 0x8F, 0xA8, 0x22, 0x21, 0xA4,
+ 0x98, 0x31, 0x1B, 0xBE, 0x47, 0x13, 0x9B, 0x0E, 0x1C, 0x24, 0xA1, 0xAE, 0x9E, 0x1B, 0x3B, 0x4C,
+ 0x62, 0x7B, 0xA7, 0x83, 0x81, 0x28, 0x2B, 0x05, 0x90, 0xB4, 0x01, 0xA2, 0xF8, 0x83, 0x51, 0x06,
+ 0x50, 0xCF, 0x39, 0xA2, 0xE2, 0x7F, 0xBF, 0x28, 0x2D, 0x74, 0x54, 0x6F, 0x56, 0xA0, 0xA9, 0xC5,
+ 0x16, 0x88, 0xBF, 0x40, 0x24, 0x05, 0x93, 0xF3, 0x02, 0x7C, 0x07, 0xE9, 0x8A, 0xA9, 0xD9, 0xCE,
+ 0xAE, 0x51, 0x86, 0xE8, 0x77, 0x20, 0x9C, 0x08, 0x87, 0xB2, 0x37, 0xA7, 0xE8, 0x3F, 0xAF, 0xE3,
+ 0xB9, 0xF2, 0x5F, 0x9C, 0x33, 0x04, 0x47, 0x08, 0xD1, 0x00, 0xA6, 0xF1, 0xF1, 0x0F, 0x0F, 0x3D,
+ 0xFA, 0x4B, 0xC4, 0xE5, 0xC0, 0x4D, 0x53, 0x0D, 0xA1, 0x50, 0xF3, 0x7F, 0x9D, 0xDD, 0x55, 0x02,
+ 0x38, 0x23, 0x99, 0x1E, 0xB5, 0x1A, 0x02, 0x7D, 0x56, 0x12, 0x72, 0x2E, 0x3B, 0xC1, 0x9D, 0x18,
+ 0x12, 0x74, 0xB3, 0x6B, 0x9C, 0x16, 0x61, 0xFC, 0x93, 0x81, 0x3B, 0x9F, 0xB6, 0x59, 0xC8, 0xF3,
+ 0xC4, 0x4D, 0x8C, 0x20, 0xD9, 0x41, 0x11, 0x51, 0xFB, 0xCA, 0xF5, 0x57, 0x6B, 0x68, 0x6F, 0x44,
+ 0x1D, 0x69, 0xE2, 0x48, 0x78, 0x89, 0xE2, 0x00, 0x3F, 0x9E, 0xB4, 0x8F, 0xB9, 0x2E, 0x54, 0xA8,
+ 0x60, 0x3E, 0xA2, 0x34, 0xA9, 0xB1, 0xD7, 0x86, 0x55, 0x9B, 0xF1, 0xE8, 0x94, 0xC2, 0x31, 0x85,
+ 0xD2, 0x63, 0x51, 0x4F, 0x71, 0x67, 0x4D, 0x44, 0x6B, 0xAB, 0x81, 0xF1, 0x61, 0x55, 0x4C, 0x53,
+ 0x29, 0xD3, 0x7D, 0x40, 0xBF, 0x45, 0x19, 0xDF, 0x0E, 0xEF, 0xD6, 0x7F, 0xC8, 0x8A, 0xC3, 0xC1,
+ 0x99, 0x8D, 0xE1, 0x23, 0xFD, 0x18, 0x6C, 0x23, 0x4B, 0xD9, 0xE1, 0x1B, 0x5C, 0x8B, 0xC4, 0x2C,
+ 0xCF, 0xAB, 0xBC, 0xF1, 0x1C, 0x19, 0xA8, 0x3C, 0x24, 0x37, 0xFF, 0x6E, 0x26, 0xF2, 0x78, 0x51,
+ 0xB6, 0x79, 0x4C, 0xC5, 0x7D, 0x99, 0x1E, 0x0C, 0x46, 0x24, 0xDC, 0x14, 0x63, 0xCE, 0x20, 0x80,
+ 0xF8, 0x6A, 0x69, 0x4B, 0xE7, 0xA8, 0xD1, 0xAF, 0xEA, 0x7D, 0xBB, 0xD9, 0x49, 0x7D, 0xD5, 0x05,
+ 0xBC, 0x55, 0x43, 0xD1, 0x9B, 0x8F, 0xCD, 0x6B, 0xE7, 0xEB, 0x21, 0x4B, 0xA2, 0x6B, 0x1D, 0x73,
+ 0xA7, 0xBB, 0x0C, 0xE1, 0x23, 0x58, 0x2F, 0xC7, 0xA4, 0x69, 0x69, 0x2D, 0x9E, 0x31, 0xF7, 0xC8,
+ 0x00, 0x5F, 0x84, 0x22, 0x1C, 0xC5, 0x35, 0x6F, 0x74, 0x08, 0xAA, 0x7B, 0x9F, 0x82, 0xB8, 0xC8,
+ 0xBE, 0xC9, 0xBD, 0xC4, 0x7E, 0xF3, 0xB8, 0xBA, 0xD2, 0xC2, 0xB2, 0x78, 0xF7, 0x0C, 0xFC, 0x9B,
+ 0x09, 0x66, 0xDC, 0x5F, 0x1F, 0x83, 0x5F, 0x27, 0x55, 0xDF, 0x32, 0xA1, 0xCB, 0xC0, 0x9D, 0x3C,
+ 0xE3, 0xAA, 0x50, 0x5A, 0xDE, 0x01, 0x06, 0x6B, 0xD6, 0x11, 0x56, 0x9F, 0x73, 0xE6, 0x59, 0x22,
+ 0xB3, 0xA2, 0xA0, 0x4E, 0xF4, 0x72, 0x05, 0x09, 0xF7, 0x5D, 0x6E, 0xE8, 0x55, 0xB7, 0xB2, 0xCF,
+ 0xEE, 0x69, 0x7E, 0xF4, 0x66, 0xEC, 0x6A, 0x0A, 0xA1, 0x14, 0xA2, 0x3B, 0xB6, 0x67, 0x93, 0xE0,
+ 0xD0, 0xF4, 0xB7, 0xFA, 0xE2, 0x0D, 0xB0, 0x78, 0xB1, 0xC7, 0xF4, 0xD3, 0xDD, 0x77, 0xD3, 0x54,
+ 0x34, 0xDC, 0x4C, 0x25, 0x7C, 0xED, 0x27, 0x2E, 0xE0, 0x7F, 0x20, 0xFF, 0xC1, 0x45, 0x95, 0x12,
+ 0x63, 0xCF, 0x97, 0x52, 0x59, 0xFC, 0xC6, 0x18, 0xDA, 0x8A, 0xD9, 0x23, 0x08, 0x8D, 0x84, 0x0B,
+ 0xBD, 0x0C, 0xCA, 0xE4, 0xB3, 0xD9, 0xFB, 0xDE, 0x25, 0xFC, 0x7F, 0x1A, 0x7F, 0xB5, 0x49, 0xBB,
+ 0x1C, 0x1A, 0xA9, 0xDE, 0xDD, 0xA2, 0x23, 0x34, 0x62, 0x2E, 0xAC, 0x30, 0xD4, 0x7A, 0x67, 0xF8,
+ 0x3D, 0x07, 0x22, 0x86, 0x3A, 0x61, 0x64, 0x7B, 0xB3, 0x36, 0x24, 0xBD, 0xFA, 0x49, 0xC6, 0x06,
+ 0x78, 0x7F, 0x77, 0x8F, 0x69, 0x69, 0x04, 0x08, 0xE2, 0xA4, 0x8E, 0x88, 0xDC, 0x43, 0xEA, 0xB9,
+ 0x18, 0x4A, 0xB3, 0x1E, 0xAF, 0x43, 0xF0, 0x00, 0xAA, 0xF3, 0x2D, 0xCF, 0xBE, 0xA4, 0xBB, 0x21,
+ 0x90, 0x18, 0x6D, 0x00, 0x75, 0xA8, 0x91, 0x27, 0x91, 0xEB, 0x0B, 0xF0, 0x8A, 0x75, 0xF7, 0x61,
+ 0xDB, 0x19, 0x9A, 0x17, 0x38, 0x39, 0x5C, 0x22, 0x60, 0xD0, 0x5E, 0xCC, 0x6B, 0x84, 0x70, 0xB6,
+ 0xAB, 0xE2, 0xFD, 0x4F, 0x4F, 0x03, 0x39, 0xBB, 0x08, 0x3F, 0xDE, 0xB1, 0x4B, 0xE5, 0x50, 0x8F,
+ 0x46, 0xF3, 0xE9, 0x03, 0xD9, 0xFA, 0x14, 0xD1, 0x1C, 0x24, 0xCC, 0xEB, 0xB2, 0x96, 0xE8, 0x4F,
+ 0x88, 0xEC, 0xC8, 0x9E, 0xBC, 0x18, 0x58, 0x89, 0x13, 0xB7, 0x86, 0x34, 0x4A, 0x57, 0x99, 0xC0,
+ 0x2A, 0xBA, 0x66, 0x44, 0xB5, 0xFD, 0x66, 0xFC, 0xF9, 0xEE, 0x15, 0xA1, 0x2C, 0x94, 0x67, 0x9A,
+ 0x26, 0xD0, 0x92, 0x10, 0xA1, 0xDA, 0x89, 0xAA, 0xEF, 0x7A, 0xEC, 0xB6, 0xEB, 0x8F, 0x93, 0xB9,
+ 0xFE, 0x44, 0xF3, 0x49, 0xC1, 0xE2, 0x0E, 0xB9, 0x44, 0xFA, 0x97, 0xF8, 0xBF, 0xAF, 0x2E, 0x30,
+ 0xF9, 0x81, 0x59, 0x3B, 0xAD, 0xE1, 0x3A, 0x73, 0xF9, 0x4D, 0x95, 0x0C, 0xA4, 0xD5, 0x7E, 0x5C,
+ 0x3C, 0xB6, 0x97, 0x57, 0x38, 0x2C, 0x73, 0xE1, 0xA1, 0x9F, 0x80, 0xFF, 0xC4, 0x79, 0xDD, 0xFD,
+ 0x03, 0x8A, 0x5F, 0xBD, 0xE3, 0xA8, 0xCB, 0xA5, 0x07, 0x7C, 0x71, 0xF0, 0xFF, 0x33, 0x84, 0x38,
+ 0xEB, 0xE1, 0xCB, 0xC8, 0xF5, 0x98, 0xA3, 0xDA, 0x12, 0x4D, 0xE0, 0x17, 0x69, 0x70, 0xC3, 0xAB,
+ 0x51, 0x73, 0xA3, 0xD5, 0xFA, 0x2F, 0xAD, 0x81, 0x37, 0x0F, 0x4B, 0xA8, 0xE3, 0x87, 0xC2, 0xEF,
+ 0xD4, 0x0E, 0x04, 0xFB, 0xA3, 0x58, 0xC8, 0xF2, 0xEE, 0x29, 0x5D, 0x32, 0xA6, 0x4C, 0x5C, 0xC6,
+ 0x4F, 0x6B, 0xBE, 0x71, 0x29, 0x4B, 0x5B, 0xBA, 0xAA, 0x67, 0x4E, 0x5C, 0x4F, 0xD8, 0x0F, 0x57,
+ 0xDA, 0x71, 0xB6, 0x89, 0x91, 0x39, 0x7C, 0x8E, 0x1B, 0x81, 0xB1, 0x8A, 0x3D, 0x92, 0x7C, 0x33,
+ 0x1A, 0xD2, 0x95, 0x5D, 0xFF, 0xE4, 0xD3, 0xB1, 0x27, 0x10, 0xED, 0x7D, 0x03, 0x7E, 0x2E, 0xA3,
+ 0x2C, 0x23, 0xBE, 0x7D, 0x8A, 0xE2, 0xCA, 0x3C, 0x67, 0xBD, 0x42, 0xA6, 0x3D, 0xE8, 0x1E, 0x3E,
+ 0x65, 0xA0, 0x81, 0x41, 0xDC, 0x80, 0x9E, 0x61, 0x73, 0x0D, 0x9F, 0x52, 0x00, 0x74, 0xA8, 0xC2,
+ 0xDF, 0x4A, 0x13, 0xF5, 0x1A, 0x19, 0x28, 0x3D, 0x10, 0x0D, 0xE9, 0x61, 0x32, 0xC5, 0x2D, 0x52,
+ 0x40, 0x26, 0x4C, 0x81, 0x2B, 0xD5, 0x30, 0xD6, 0x64, 0x0A, 0xF6, 0xC6, 0xD4, 0xFD, 0x13, 0xD3,
+ 0x3E, 0x40, 0x5F, 0xCC, 0x8B, 0xD3, 0x4A, 0x69, 0x9A, 0xAF, 0x6F, 0x74, 0x4D, 0x85, 0x2E, 0x23,
+ 0x41, 0xDF, 0xB1, 0x1A, 0x9F, 0xCE, 0x0A, 0xB7, 0xED, 0xC6, 0xEA, 0x78, 0x33, 0x9D, 0xC9, 0xAA,
+ 0x76, 0x13, 0x81, 0x4A, 0x26, 0x7F, 0xFC, 0xE1, 0x3C, 0xF6, 0x13, 0xAC, 0x75, 0x7B, 0xDB, 0xCB,
+ 0x6D, 0x7C, 0x67, 0x67, 0x04, 0xCC, 0x17, 0x7F, 0x43, 0xD1, 0x5A, 0x0E, 0xF0, 0x36, 0xCD, 0x48,
+ 0xBA, 0xA6, 0x75, 0x9A, 0xBA, 0x3A, 0xE4, 0x5C, 0xCE, 0x70, 0xC7, 0xF9, 0xEA, 0x1F, 0x1D, 0x03,
+ 0x5C, 0x69, 0x10, 0xAC, 0x34, 0x5B, 0x74, 0xE6, 0x6D, 0x92, 0xF6, 0x62, 0x9A, 0xC3, 0x86, 0xA9,
+ 0x44, 0x8A, 0xA2, 0x02, 0xF8, 0x1C, 0xFA, 0x6E, 0x7D, 0xD4, 0x48, 0x7B, 0x27, 0x4E, 0x7B, 0x0D,
+ 0xC4, 0xE0, 0xAC, 0x34, 0xCB, 0x74, 0x36, 0x26, 0xD7, 0x15, 0xFF, 0x49, 0x10, 0xA9, 0xEB, 0xDE,
+ 0xA0, 0x73, 0x57, 0x5B, 0xE4, 0x5A, 0x10, 0x6A, 0x4F, 0x77, 0x15, 0xD3, 0x2E, 0xF0, 0xD4, 0xA9,
+ 0x98, 0xF7, 0x78, 0x31, 0x50, 0x97, 0x41, 0x47, 0x08, 0xF1, 0x45, 0xED, 0x94, 0xF3, 0x5D, 0x16,
+ 0x54, 0x6E, 0x21, 0x2B, 0xEB, 0xFE, 0x91, 0x08, 0x05, 0xE9, 0x18, 0x06, 0xDB, 0x9C, 0x6C, 0x6C,
+ 0x02, 0x20, 0x7D, 0x71, 0xF2, 0xAE, 0x81, 0x5E, 0x3D, 0x8B, 0x26, 0x44, 0x8F, 0x46, 0x01, 0x78,
+ 0xD6, 0x4F, 0xA9, 0x6E, 0x1E, 0xCE, 0xB3, 0x1C, 0x63, 0x63, 0xC2, 0x8B, 0x78, 0xD1, 0xD2, 0x86,
+ 0x77, 0x8C, 0x01, 0x7B, 0xD6, 0x91, 0xA3, 0xFA, 0x82, 0xA5, 0x24, 0x39, 0xE5, 0xBB, 0x3C, 0x2A,
+ 0x20, 0x89, 0x95, 0xDB, 0x11, 0x75, 0x7C, 0xBA, 0xE3, 0x81, 0xDF, 0xFF, 0xE9, 0xEF, 0x6B, 0xC6,
+ 0x17, 0x02, 0x97, 0x06, 0x96, 0x5A, 0x7D, 0x2C, 0xB0, 0x3D, 0x6F, 0xD6, 0xCE, 0x9A, 0x47, 0xE3,
+ 0x09, 0x7D, 0xAF, 0x13, 0x93, 0x6E, 0x04, 0x84, 0x44, 0xF4, 0x39, 0xA9, 0x2F, 0x5E, 0x07, 0xA3,
+ 0x2A, 0xE8, 0x2E, 0xD3, 0x43, 0xC7, 0x38, 0xAB, 0x8D, 0xF4, 0x40, 0xB5, 0x3A, 0xE8, 0x40, 0xE3,
+ 0x4D, 0x0F, 0x45, 0x5F, 0x01, 0x64, 0x8B, 0x6B, 0x9E, 0x45, 0x0E, 0x31, 0xFC, 0x27, 0x80, 0x70,
+ 0xD7, 0x69, 0x45, 0x0E, 0x27, 0xE6, 0x9D, 0xAC, 0x5D, 0x5B, 0x4A, 0x3A, 0x81, 0x3B, 0x01, 0x82,
+ 0x9F, 0xD3, 0xCA, 0xF8, 0x61, 0xC8, 0xC7, 0xC5, 0xE3, 0xC7, 0x51, 0x00, 0x30, 0xD9, 0x20, 0x02,
+ 0xC1, 0xE3, 0xF8, 0x73, 0x25, 0x77, 0xC9, 0xB9, 0xAE, 0x7B, 0x58, 0x0A, 0x20, 0x6A, 0xF2, 0xFA,
+ 0x50, 0x81, 0x45, 0x99, 0xBA, 0x87, 0xF9, 0x7D, 0x03, 0x19, 0x4F, 0x43, 0x7D, 0xB1, 0x48, 0x56,
+ 0x05, 0xBC, 0xB3, 0x39, 0xFD, 0xF7, 0x2B, 0x2A, 0x16, 0x26, 0x0C, 0x9D, 0xC3, 0xA5, 0x74, 0xF0,
+ 0x84, 0x11, 0xF8, 0x24, 0xAA, 0x33, 0x37, 0x54, 0x29, 0x07, 0xCE, 0x04, 0x0B, 0xF4, 0x6F, 0x2C,
+ 0xCD, 0xAE, 0x57, 0x48, 0x9E, 0x27, 0xAF, 0x87, 0x15, 0x45, 0xE4, 0x09, 0xF7, 0x97, 0xCA, 0x61,
+ 0x03, 0xF0, 0xC8, 0x9D, 0x00, 0x0A, 0x9E, 0x6D, 0x2D, 0x62, 0x32, 0x34, 0x14, 0xE7, 0x99, 0xBD,
+ 0x42, 0xCA, 0x8A, 0x95, 0x18, 0x7C, 0xD8, 0xC8, 0xCE, 0x5A, 0xEB, 0xFA, 0x6D, 0x14, 0x21, 0x41,
+ 0x07, 0x89, 0xEF, 0x5C, 0xDF, 0x22, 0x34, 0x4F, 0x86, 0xC4, 0x96, 0xAA, 0x28, 0x21, 0x7C, 0x96,
+ 0x6C, 0x1D, 0x59, 0x8D, 0x7E, 0x93, 0x11, 0xAA, 0x56, 0x4E, 0xA4, 0xBA, 0x7C, 0x19, 0x04, 0x65,
+ 0xFE, 0xD5, 0xD4, 0x03, 0x46, 0x13, 0x53, 0xBE, 0x85, 0x02, 0x3F, 0x02, 0xE9, 0xB2, 0xC7, 0xC6,
+ 0x7A, 0xD3, 0xDC, 0xBB, 0xCD, 0x20, 0xBE, 0xF4, 0xBE, 0xA3, 0x35, 0x49, 0x50, 0xE6, 0xF2, 0xF6,
+ 0xD3, 0x6E, 0xDA, 0x72, 0x39, 0xF8, 0xD4, 0xE8, 0x98, 0xF6, 0x01, 0xFB, 0x95, 0xFB, 0x96, 0x92,
+ 0x57, 0x56, 0x1A, 0x56, 0x04, 0xFD, 0xED, 0x8A, 0xA4, 0x35, 0x6E, 0x43, 0x46, 0x6D, 0x42, 0xE5,
+ 0xF7, 0x8D, 0x6B, 0x6B, 0x8D, 0x6B, 0x75, 0x6E, 0xE2, 0x50, 0x94, 0x9C, 0xFF, 0xDD, 0xDD, 0x6E,
+ 0xA2, 0xE7, 0x6C, 0x44, 0x4D, 0xF8, 0x56, 0xDB, 0x76, 0xEC, 0xA6, 0xE8, 0x06, 0x49, 0xBD, 0x58,
+ 0xF1, 0x48, 0xBD, 0xC6, 0x47, 0xD5, 0x5F, 0x5C, 0xC0, 0x30, 0xE0, 0x82, 0xC9, 0x65, 0xA1, 0xB5,
+ 0x69, 0xD3, 0x23, 0x8A, 0x88, 0xF6, 0x82, 0x6F, 0x6E, 0x4A, 0x93, 0xEA, 0x5E, 0x68, 0x06, 0xE0,
+ 0x1F, 0xDB, 0x01, 0x78, 0x52, 0x43, 0x33, 0xA5, 0x40, 0x7A, 0x29, 0x0C, 0x40, 0xDE, 0x4A, 0x01,
+ 0x00, 0x19, 0x0D, 0x24, 0x04, 0xB7, 0x0B, 0x38, 0x8A, 0x67, 0xB6, 0x3D, 0xDD, 0xC6, 0xCE, 0xE7,
+ 0x99, 0x1B, 0xB9, 0x50, 0x59, 0x2E, 0x73, 0x18, 0x2A, 0x95, 0xC8, 0x9D, 0x37, 0xBC, 0x54, 0xCE,
+ 0x1C, 0x9C, 0xE3, 0xFD, 0xC1, 0x83, 0x6B, 0x7C, 0x55, 0x44, 0xB7, 0x32, 0x99, 0xFC, 0xB7, 0x96,
+ 0xE5, 0x25, 0x4C, 0x12, 0x78, 0x3F, 0x8D, 0x8E, 0x36, 0xCB, 0x80, 0xEF, 0xF8, 0x0A, 0xD1, 0x6A,
+ 0xAC, 0x41, 0x40, 0x4B, 0x54, 0xEF, 0xC0, 0x18, 0xA7, 0x55, 0x9B, 0xB0, 0x0A, 0xE1, 0x7A, 0xA7,
+ 0x31, 0x48, 0x23, 0x10, 0x11, 0xA9, 0xE9, 0x56, 0x58, 0xD9, 0x4C, 0xA9, 0x31, 0x12, 0xE4, 0xD0,
+ 0x87, 0x54, 0x67, 0x3D, 0xDC, 0xEA, 0xC5, 0x47, 0x6A, 0x65, 0xF5, 0x0E, 0xEF, 0x3D, 0xE8, 0x49,
+ 0x16, 0x51, 0x1F, 0xED, 0xF6, 0x72, 0x86, 0x6E, 0x25, 0xA8, 0x1D, 0x14, 0xE1, 0x55, 0x9F, 0x1B,
+ 0xBD, 0x59, 0x0A, 0x9A, 0x41, 0x1B, 0x71, 0xC3, 0x09, 0x57, 0xA7, 0xD6, 0xA2, 0x5B, 0x17, 0x94,
+ 0xAB, 0x5B, 0xFB, 0x64, 0x52, 0xD9, 0xBA, 0x6F, 0x5E, 0x53, 0x22, 0xB7, 0xD6, 0x3E, 0xAC, 0xE8,
+ 0xB8, 0x9B, 0x1B, 0x74, 0x96, 0x23, 0x2E, 0x94, 0x70, 0xC0, 0xB9, 0x36, 0x36, 0xAD, 0xB6, 0xBC,
+ 0x47, 0xED, 0xCA, 0xD2, 0x48, 0x2C, 0x64, 0x5D, 0xFE, 0x18, 0x2C, 0x8E, 0xA7, 0x8A, 0x3A, 0x3F,
+ 0x1B, 0x58, 0x4A, 0x7C, 0x2B, 0x55, 0x88, 0xDB, 0x1E, 0x5D, 0xEC, 0xA2, 0xB3, 0x25, 0x57, 0xC9,
+ 0xB4, 0xB2, 0x5E, 0xE6, 0xCE, 0xEA, 0x1E, 0x2B, 0xC6, 0xEE, 0xDA, 0x52, 0x37, 0x3C, 0x46, 0xDD,
+ 0x28, 0xA9, 0x9D, 0x04, 0x6E, 0x96, 0x13, 0x7D, 0x99, 0x87, 0x5D, 0x1C, 0x4D, 0xCF, 0x7D, 0x5A,
+ 0x3A, 0x3F, 0xBB, 0x14, 0x56, 0xC9, 0x60, 0xAB, 0x66, 0x03, 0xB0, 0xBF, 0xBC, 0xE2, 0x6B, 0x0B,
+ 0x70, 0xC1, 0x8C, 0x8D, 0x51, 0x6D, 0xA1, 0x6B, 0xD1, 0x17, 0x7E, 0xBD, 0x59, 0xAE, 0x45, 0xAE,
+ 0xE3, 0xA3, 0xE7, 0xA1, 0x18, 0xE1, 0x62, 0xBC, 0xD2, 0x04, 0xDC, 0x2C, 0xA9, 0x90, 0xF6, 0xEC,
+ 0x1A, 0x60, 0x81, 0xB7, 0x41, 0xD7, 0x79, 0x39, 0xE8, 0x64, 0xD0, 0x04, 0x92, 0x7F, 0xAC, 0x52,
+ 0x61, 0xC6, 0x5C, 0x6E, 0x31, 0xAA, 0x59, 0x1F, 0xDD, 0x92, 0x08, 0x68, 0xC7, 0xF8, 0x03, 0x57,
+ 0x63, 0x86, 0x13, 0x65, 0xF2, 0x50, 0x23, 0x91, 0xFD, 0xDA, 0x0F, 0x5F, 0xFD, 0xCC, 0xA5, 0x0B,
+ 0x76, 0x40, 0x68, 0x0B, 0x4D, 0x3B, 0x8F, 0x17, 0x49, 0xC3, 0xCA, 0x26, 0x06, 0x85, 0xE6, 0xF7,
+ 0x2F, 0xFD, 0xEC, 0xCE, 0x15, 0x2D, 0x7B, 0x00, 0xA3, 0x8E, 0x95, 0xA4, 0x6C, 0x30, 0x47, 0xDA,
+ 0x89, 0x05, 0x50, 0x27, 0x49, 0x28, 0x43, 0x74, 0x23, 0xD8, 0x4B, 0xCE, 0xC4, 0x0D, 0x1B, 0x48,
+ 0x5A, 0xB2, 0x63, 0x80, 0x30, 0xD1, 0x8C, 0x85, 0x9D, 0x88, 0xEA, 0x02, 0x68, 0xD5, 0x3B, 0x88,
+ 0xD2, 0x33, 0x90, 0x58, 0xCE, 0x39, 0xBF, 0x99, 0x3C, 0xA0, 0xCB, 0x33, 0x8E, 0x92, 0x0E, 0xDF,
+ 0x78, 0x52, 0xE1, 0xE6, 0xA5, 0x58, 0xB5, 0x3C, 0x09, 0x78, 0x8E, 0x86, 0xD4, 0xF2, 0x4C, 0xDB,
+ 0xDB, 0x06, 0xB5, 0x55, 0xD4, 0x0E, 0x52, 0x18, 0xFC, 0x5C, 0xEE, 0x90, 0x7C, 0x06, 0xE8, 0xC4,
+ 0xFD, 0xAE, 0x53, 0xF4, 0xE6, 0x36, 0x83, 0x65, 0xF7, 0x51, 0x66, 0x56, 0x48, 0x67, 0x29, 0xE7,
+ 0xA8, 0x61, 0xAD, 0x4E, 0x8C, 0xB0, 0x72, 0xDC, 0xAD, 0xCC, 0x2D, 0x7E, 0x31, 0xAA, 0x6B, 0x92,
+ 0xA9, 0xC4, 0x95, 0x62, 0x6E, 0xAD, 0xC5, 0xB5, 0xF2, 0x09, 0x88, 0x1B, 0x6F, 0xF2, 0x51, 0x05,
+ 0x80, 0x08, 0x62, 0xD0, 0x33, 0x1A, 0x58, 0xBD, 0x0A, 0x1C, 0x7B, 0x9A, 0x0C, 0x25, 0x93, 0xE3,
+ 0x02, 0x4A, 0xB9, 0xBD, 0xCB, 0x16, 0x75, 0x09, 0x1B, 0xF7, 0x95, 0xC5, 0xE3, 0xDE, 0xB9, 0xE5,
+ 0xE4, 0x10, 0x2E, 0xCC, 0x76, 0xB7, 0x8C, 0x9C, 0xAB, 0x7A, 0x63, 0x85, 0x22, 0xE9, 0xBF, 0x7A,
+ 0x62, 0xEA, 0x54, 0x1F, 0xEF, 0x11, 0x69, 0x9F, 0x91, 0x66, 0xAF, 0x9B, 0xFC, 0xDF, 0x6D, 0x40,
+ 0x1A, 0x08, 0xDB, 0xA6, 0x30, 0xA7, 0xF0, 0x54, 0x5B, 0x44, 0xD5, 0xCE, 0x18, 0xA1, 0x7D, 0x25,
+ 0xEB, 0x42, 0x00, 0xD3, 0x79, 0x98, 0x00, 0x6A, 0xA5, 0x0B, 0x01, 0x55, 0x16, 0xFA, 0xB3, 0xEE,
+ 0x5A, 0x28, 0x9A, 0x2B, 0xDA, 0xF7, 0x76, 0xEB, 0xA8, 0x19, 0xB7, 0x85, 0xE5, 0x40, 0x55, 0xDA,
+ 0xE1, 0x23, 0xA2, 0x7D, 0x2B, 0x1F, 0x72, 0x16, 0x03, 0xC8, 0x4C, 0xFE, 0xB5, 0x85, 0x13, 0x32,
+ 0x77, 0x83, 0xB1, 0x35, 0xA8, 0xEE, 0xDD, 0x95, 0xAD, 0xB6, 0x55, 0x69, 0x0A, 0xB3, 0xCF, 0x88,
+ 0x47, 0xA8, 0xBF, 0xDB, 0xB2, 0x37, 0xD1, 0x5B, 0xF0, 0xCA, 0xC4, 0x5F, 0x9D, 0xD0, 0x21, 0x96,
+ 0x0D, 0x97, 0xE2, 0x0F, 0x81, 0x47, 0x2E, 0x42, 0xDD, 0xE4, 0xE3, 0xA6, 0x5F, 0x45, 0x3E, 0x60,
+ 0x18, 0x97, 0xA6, 0x8E, 0x7E, 0xFE, 0xD4, 0xCF, 0x92, 0x95, 0x32, 0xEF, 0x1E, 0xCE, 0xDB, 0x3A,
+ 0xD3, 0xA5, 0xDA, 0xE5, 0x22, 0x0A, 0xC2, 0xC2, 0xB0, 0x0D, 0x57, 0xC5, 0xF5, 0x4B, 0x5D, 0x95,
+ 0xAC, 0x47, 0x63, 0x3C, 0x49, 0x8C, 0xEE, 0x84, 0x41, 0x07, 0x54, 0xD7, 0x84, 0x9C, 0x40, 0x24,
+ 0xEF, 0xA8, 0x96, 0xC1, 0xF9, 0xEC, 0x7F, 0xA0, 0xE4, 0xEA, 0x3C, 0xC7, 0x58, 0x74, 0x70, 0xC2,
+ 0x4A, 0xE0, 0xA8, 0x06, 0xFD, 0x3F, 0x0A, 0xE9, 0x33, 0x32, 0xA5, 0x83, 0x09, 0x66, 0x40, 0x39,
+ 0xE6, 0xCE, 0xC5, 0xBC, 0xE9, 0xE7, 0x1F, 0x66, 0xCE, 0xE3, 0xEC, 0x6A, 0x73, 0xA3, 0xEC, 0x11,
+ 0x10, 0x70, 0xD3, 0xA6, 0x84, 0xB6, 0x73, 0x75, 0x82, 0x8F, 0x16, 0x61, 0xD2, 0xB9, 0x4D, 0x23,
+ 0x30, 0xA4, 0xF6, 0x72, 0x98, 0x19, 0x08, 0xA7, 0x6B, 0x54, 0x91, 0xC6, 0xB8, 0x61, 0xEE, 0xAA,
+ 0xC8, 0xCD, 0x38, 0x75, 0x36, 0x20, 0x19, 0x22, 0x48, 0x6C, 0xC7, 0x79, 0x9D, 0x17, 0xDF, 0x61,
+ 0x0B, 0x42, 0x7C, 0xAE, 0xF3, 0x7F, 0x8A, 0x14, 0xCA, 0x91, 0xF9, 0xE5, 0xEC, 0xB5, 0x98, 0x2D,
+ 0x7A, 0xC0, 0xFA, 0x3D, 0x7E, 0x8D, 0x41, 0x1E, 0x07, 0xD4, 0xA6, 0x55, 0x5A, 0x34, 0x60, 0xD4,
+ 0x09, 0x42, 0x41, 0x38, 0xB1, 0x3E, 0x53, 0x01, 0xBA, 0x16, 0x8B, 0x96, 0xD8, 0xD9, 0xF6, 0x69,
+ 0xEA, 0xF5, 0xC5, 0x8B, 0x12, 0x37, 0x94, 0x46, 0x77, 0xD0, 0x0E, 0x5E, 0x01, 0x0F, 0x7E, 0x71,
+ 0x1B, 0x3E, 0x4F, 0xD2, 0x71, 0x8F, 0xC1, 0x52, 0x2C, 0xD8, 0xC3, 0x95, 0xBC, 0x44, 0xD8, 0x8D,
+ 0xDC, 0x63, 0xB7, 0x94, 0x10, 0xBB, 0x11, 0xAB, 0xC7, 0xD8, 0x9B, 0x39, 0xFB, 0xE7, 0xF7, 0xF5,
+ 0x3B, 0x1D, 0xD4, 0x6C, 0x23, 0xFB, 0xB2, 0xE8, 0xB6, 0x4F, 0x6F, 0x29, 0x1F, 0x87, 0x81, 0x1C,
+ 0xE5, 0xD0, 0x36, 0x70, 0xD7, 0x53, 0x33, 0x11, 0xF3, 0xA8, 0xBC, 0x5F, 0x08, 0x83, 0x03, 0x32,
+ 0xD6, 0x7C, 0x9A, 0xA9, 0xFB, 0x7D, 0xBB, 0x41, 0xDB, 0x0A, 0xFB, 0x39, 0x33, 0xA2, 0xC9, 0x6A,
+ 0x12, 0x39, 0x17, 0xD8, 0xEF, 0x65, 0x46, 0x1D, 0xCB, 0xB2, 0x59, 0xEF, 0x0F, 0xFC, 0xA9, 0x38,
+ 0x2A, 0x9D, 0x8B, 0xCF, 0x95, 0x8D, 0xE0, 0x3A, 0x50, 0x0E, 0x64, 0x5B, 0xD4, 0x22, 0x07, 0x14,
+ 0xE8, 0xCC, 0x37, 0x66, 0xD0, 0x67, 0x6B, 0xE4, 0xF1, 0x16, 0x2F, 0xA9, 0xB0, 0x4F, 0x56, 0x12,
+ 0xDA, 0x18, 0x6F, 0x0B, 0xBB, 0x7E, 0xBF, 0x3A, 0xEC, 0xB9, 0xB8, 0xD0, 0xC4, 0xAB, 0x88, 0x4D,
+ 0x28, 0x22, 0xA8, 0xD3, 0x12, 0x77, 0xF1, 0xC1, 0xCC, 0x9E, 0x9A, 0xBF, 0x2F, 0x2C, 0x22, 0xC3,
+ 0xF8, 0x76, 0x3D, 0x86, 0x19, 0xC9, 0x3D, 0x90, 0xA4, 0x8F, 0xF5, 0xF5, 0xC9, 0x71, 0x65, 0x15,
+ 0x5F, 0x6D, 0x8C, 0x52, 0xAE, 0x5C, 0xAD, 0xBA, 0x1C, 0x50, 0xC0, 0x26, 0xBF, 0x96, 0x8D, 0xD7,
+ 0x79, 0xBD, 0xF4, 0x92, 0x2B, 0x67, 0xC9, 0x60, 0xEA, 0x5C, 0x99, 0x9C, 0x13, 0x7C, 0x48, 0xD9,
+ 0x1D, 0x41, 0x91, 0x12, 0x28, 0x36, 0x35, 0x09, 0x4D, 0x6B, 0xAA, 0x07, 0x50, 0x9F, 0xF2, 0x33,
+ 0x93, 0x1F, 0x01, 0xD3, 0x3B, 0x50, 0x2D, 0xAA, 0xFA, 0xC6, 0x27, 0x89, 0x7B, 0x21, 0xCD, 0xDA,
+ 0xF4, 0x89, 0x97, 0x65, 0x40, 0x97, 0xBE, 0x09, 0xE9, 0xDE, 0x52, 0xD9, 0x3E, 0x23, 0x45, 0x27,
+ 0xAE, 0x09, 0xE8, 0x0D, 0xBB, 0x2A, 0xF6, 0x8E, 0x0D, 0xD3, 0xB0, 0x24, 0xA0, 0x38, 0x29, 0x53,
+ 0x51, 0x9E, 0xC0, 0x95, 0x6C, 0x17, 0x43, 0x98, 0x47, 0x3A, 0x81, 0x64, 0xEF, 0x29, 0x76, 0x1D,
+ 0xE2, 0x33, 0xDC, 0x26, 0x6E, 0xEF, 0x24, 0x72, 0x14, 0x39, 0x4E, 0x5B, 0xA5, 0x67, 0x09, 0x1B,
+ 0x14, 0x28, 0x61, 0x95, 0x20, 0xB7, 0x7E, 0x9E, 0xB3, 0xF7, 0xF3, 0xB6, 0xD8, 0x06, 0x18, 0x29,
+ 0x6D, 0x80, 0x4E, 0x5E, 0xD7, 0x50, 0x60, 0x3B, 0x6D, 0x15, 0x37, 0x07, 0x7E, 0x50, 0x7D, 0x1A,
+ 0xCA, 0x14, 0x37, 0x10, 0x9B, 0x59, 0x1E, 0x98, 0x40, 0x9F, 0xD2, 0x85, 0x74, 0x4D, 0x5C, 0x81,
+ 0x15, 0x85, 0x18, 0xB5, 0xD4, 0x8C, 0x49, 0x8C, 0x25, 0x47, 0x86, 0xFF, 0x3D, 0xB6, 0xFC, 0x53,
+ 0xB1, 0x94, 0xAB, 0xCD, 0x24, 0xCC, 0x2B, 0x63, 0x6D, 0x24, 0x7D, 0xAA, 0x04, 0x82, 0x61, 0x00,
+ 0x5D, 0x99, 0xB8, 0x0D, 0x83, 0xB6, 0x6E, 0xEA, 0x9F, 0x52, 0x48, 0x9C, 0xA1, 0xFF, 0x46, 0xCC,
+ 0xC6, 0x63, 0x09, 0x31, 0xB6, 0x9A, 0xA4, 0x6C, 0x8C, 0x67, 0xFE, 0x97, 0x36, 0x8D, 0xB4, 0x47,
+ 0xF7, 0x44, 0x64, 0xC5, 0x04, 0x56, 0x6A, 0x65, 0x82, 0xD6, 0x8E, 0xA4, 0x45, 0x5B, 0xAC, 0x70,
+ 0x42, 0xAC, 0xFF, 0x5A, 0xF7, 0x7F, 0x6C, 0xC9, 0xA9, 0xB1, 0xCC, 0xCA, 0x46, 0x65, 0x97, 0xF8,
+ 0x5E, 0x66, 0xCD, 0x95, 0x62, 0xEE, 0xED, 0x5D, 0x28, 0x86, 0x9D, 0x0F, 0xCD, 0xA7, 0x78, 0x0D,
+ 0xA0, 0xAA, 0x21, 0x83, 0x77, 0x0E, 0xA8, 0xDD, 0xC5, 0x7A, 0x03, 0x10, 0xF8, 0x31, 0xBA, 0x45,
+ 0x90, 0x47, 0x79, 0xFD, 0x5D, 0x25, 0x39, 0x5F, 0x2A, 0xDB, 0xD8, 0x08, 0xE3, 0x26, 0xD6, 0x10,
+ 0x3F, 0xC4, 0xB7, 0x03, 0x87, 0x3F, 0xCB, 0x52, 0x12, 0xF6, 0x20, 0x5F, 0xBF, 0xCF, 0x57, 0x4C,
+ 0x36, 0x7C, 0x4A, 0xCC, 0x72, 0x31, 0x98, 0x5F, 0x38, 0x34, 0x0C, 0x17, 0x84, 0x89, 0x61, 0x15,
+ 0x84, 0x30, 0x9C, 0x8F, 0x51, 0xDA, 0x3E, 0xF2, 0xF3, 0xA3, 0x04, 0x07, 0xE2, 0x07, 0xD6, 0xED,
+ 0x1C, 0xF0, 0x08, 0x28, 0xB6, 0xCA, 0x9E, 0xEF, 0xC8, 0x7E, 0xB4, 0x17, 0x05, 0xFD, 0x30, 0x6F,
+ 0xD7, 0xFA, 0x9C, 0x75, 0x97, 0x5C, 0x13, 0xB9, 0xE6, 0x11, 0x8F, 0xF8, 0xA4, 0x5C, 0xE3, 0xCE,
+ 0xBD, 0x42, 0xA3, 0xA8, 0x80, 0xEE, 0xBA, 0x82, 0xA3, 0xDD, 0x92, 0x24, 0xDF, 0x68, 0x49, 0x06,
+ 0x78, 0x2D, 0x9C, 0xFE, 0xA7, 0x50, 0x05, 0x9D, 0xDB, 0x3D, 0x70, 0xB2, 0x5F, 0xCD, 0xEB, 0x6D,
+ 0x3A, 0x04, 0x39, 0x6D, 0x17, 0x37, 0x97, 0x51, 0xEB, 0x6F, 0xDB, 0x4D, 0x6A, 0x56, 0x47, 0x37,
+ 0x91, 0x63, 0x09, 0x36, 0x67, 0xE9, 0xFD, 0xB2, 0xE7, 0xDD, 0xA6, 0xEE, 0x10, 0xDC, 0x1C, 0x4A,
+ 0x0C, 0xCC, 0x25, 0x34, 0x2B, 0xAB, 0xD4, 0xBA, 0xC8, 0x02, 0x71, 0x11, 0xA7, 0x2F, 0x73, 0x2A,
+ 0x21, 0xE3, 0xF7, 0xA3, 0x0F, 0xCC, 0x56, 0x98, 0x2A, 0x6D, 0x8A, 0x4A, 0x1F, 0xC1, 0xB6, 0x4C,
+ 0xD8, 0x2E, 0x1B, 0x22, 0x19, 0x22, 0xB0, 0x0B, 0xE3, 0xE3, 0xBD, 0x8E, 0xB7, 0x37, 0xB1, 0xC3,
+ 0x3D, 0x7F, 0x72, 0x10, 0xF3, 0xA3, 0x36, 0x99, 0x84, 0x3B, 0x8B, 0x73, 0xFC, 0xFB, 0x1D, 0x66,
+ 0xA4, 0x5B, 0xA1, 0x5E, 0x8B, 0x27, 0x4E, 0x85, 0x2F, 0x23, 0xF5, 0x01, 0x29, 0x81, 0xFA, 0x44,
+ 0x54, 0x91, 0xA8, 0x96, 0x86, 0x64, 0xBF, 0xB5, 0x72, 0x42, 0xAE, 0x9E, 0x70, 0x55, 0x55, 0xF5,
+ 0x22, 0x95, 0x4A, 0x96, 0x9F, 0x10, 0x0E, 0x4F, 0xB6, 0x3A, 0x14, 0x0B, 0xB0, 0xE3, 0xA4, 0xBB,
+ 0x26, 0xAA, 0x3E, 0x99, 0x4C, 0x43, 0xB5, 0x5B, 0x60, 0x24, 0xD1, 0x99, 0xBF, 0x18, 0xA6, 0xFF,
+ 0x89, 0xAF, 0x1C, 0x61, 0x49, 0xE7, 0x23, 0x5A, 0x52, 0xA4, 0xE7, 0x28, 0x8D, 0x01, 0xF7, 0xD7,
+ 0x85, 0x29, 0x26, 0x09, 0x1D, 0xD5, 0x13, 0x32, 0x66, 0xC8, 0x84, 0xAB, 0x41, 0x90, 0xE7, 0x85,
+ 0x7A, 0x1D, 0x77, 0x2D, 0xCB, 0x19, 0x59, 0x79, 0xFC, 0x54, 0x11, 0xF7, 0xDC, 0xB7, 0x78, 0xB1,
+ 0x80, 0x14, 0xED, 0xC6, 0xAA, 0x78, 0x4C, 0x11, 0xEC, 0xF2, 0x9A, 0x8E, 0x86, 0x66, 0x53, 0xE7,
+ 0x96, 0x60, 0x48, 0x66, 0x25, 0xF1, 0x87, 0xBC, 0x6C, 0xF3, 0x1F, 0x40, 0xEE, 0x03, 0x22, 0xBD,
+ 0xBA, 0x7E, 0x34, 0x47, 0x7E, 0x40, 0xF8, 0x17, 0x76, 0xC5, 0xC8, 0xE8, 0x46, 0x00, 0xAA, 0xB3,
+ 0x2B, 0x7D, 0xEE, 0xF4, 0x66, 0x6E, 0xBB, 0xCC, 0xDA, 0x13, 0x20, 0x94, 0x0C, 0x68, 0x06, 0xAC,
+ 0x5E, 0x57, 0xBE, 0xCE, 0xD0, 0xCC, 0x1E, 0x72, 0xDB, 0x9F, 0x32, 0xBC, 0x55, 0xF1, 0x8A, 0x70,
+ 0x4B, 0x59, 0x88, 0x4B, 0x99, 0x37, 0xB2, 0xA5, 0x8D, 0x48, 0xF7, 0x5E, 0x87, 0xB8, 0xE1, 0xB0,
+ 0x27, 0xD2, 0x23, 0xB1, 0x11, 0xAD, 0x44, 0xC1, 0x33, 0x4F, 0xED, 0x7C, 0xA9, 0x42, 0xF9, 0x2C,
+ 0x5C, 0x79, 0x53, 0x23, 0x62, 0x34, 0x64, 0x89, 0x94, 0xEB, 0x35, 0x7C, 0xB6, 0xC5, 0x25, 0xFA,
+ 0x4D, 0x37, 0xD4, 0x66, 0xEF, 0x00, 0x9C, 0xB4, 0xAA, 0x46, 0x43, 0x83, 0x04, 0x93, 0xDA, 0xE4,
+ 0xDE, 0x98, 0x5E, 0xDE, 0x22, 0xFA, 0x5F, 0xD5, 0x9B, 0x9B, 0xE1, 0xA2, 0x72, 0xAD, 0x36, 0x51,
+ 0x15, 0xD4, 0x90, 0x31, 0xB2, 0x96, 0x2E, 0x32, 0x33, 0xC0, 0x60, 0x01, 0x0B, 0xF2, 0x7D, 0xE9,
+ 0x07, 0xA2, 0x7D, 0x4A, 0xBA, 0x43, 0x5D, 0x23, 0xB5, 0x12, 0x8D, 0xD4, 0x08, 0xDF, 0x95, 0xFE,
+ 0xC0, 0x15, 0xC4, 0x5C, 0xCD, 0x6C, 0xBE, 0xD8, 0x46, 0x85, 0x5B, 0x20, 0x75, 0x5A, 0x50, 0xEF,
+ 0x95, 0xF1, 0x7B, 0xE9, 0x8A, 0x07, 0x4F, 0x1A, 0x93, 0x06, 0x10, 0x91, 0x78, 0x97, 0xD4, 0xF4,
+ 0x45, 0x6C, 0xEF, 0xA7, 0x85, 0x5A, 0x88, 0xFF, 0xA0, 0xDF, 0xB3, 0xDC, 0xFA, 0xCF, 0x2B, 0x45,
+ 0xE6, 0x1B, 0x9A, 0xA5, 0x56, 0x3D, 0x6F, 0x52, 0x87, 0xAF, 0xD3, 0xE7, 0xC4, 0x3B, 0xC0, 0x35,
+ 0x67, 0xE3, 0xBB, 0x69, 0x79, 0xDA, 0xB1, 0xAB, 0x7D, 0xCA, 0xD7, 0xF0, 0x97, 0xE8, 0x86, 0xFD,
+ 0xEF, 0xF9, 0xE4, 0x60, 0x92, 0x20, 0x82, 0x89, 0x54, 0xDD, 0xF6, 0xFE, 0x61, 0xAF, 0x6E, 0x55,
+ 0x12, 0xF5, 0x96, 0xD3, 0x0B, 0x16, 0x46, 0x39, 0x1F, 0xE6, 0xA8, 0x23, 0xE8, 0x0D, 0x4D, 0x95,
+ 0xB4, 0x24, 0x2F, 0x68, 0x05, 0xBA, 0x7E, 0xE4, 0xF3, 0xD2, 0x76, 0xA1, 0xAD, 0x30, 0xAE, 0x72,
+ 0x3F, 0x5F, 0x3F, 0x5E, 0x5D, 0x96, 0xBC, 0x05, 0x1A, 0x2E, 0x1B, 0xE0, 0x86, 0x7B, 0x86, 0x9A,
+ 0xEB, 0x90, 0x86, 0x53, 0x07, 0xC3, 0x8E, 0x1B, 0x9E, 0xA3, 0xFF, 0x6B, 0x52, 0xEC, 0x8C, 0x99,
+ 0xA5, 0xAE, 0x7A, 0xDD, 0xE9, 0x21, 0x7C, 0x74, 0x0E, 0x58, 0x78, 0xA8, 0x9E, 0xCE, 0x83, 0x6E,
+ 0x69, 0x48, 0x7F, 0xC0, 0x0F, 0xE8, 0xAC, 0xE3, 0xD0, 0xFB, 0x25, 0x22, 0x52, 0xA1, 0x7B, 0x62,
+ 0xF9, 0x76, 0xBF, 0xE6, 0xC6, 0x62, 0x0B, 0x58, 0xC2, 0xE8, 0xC2, 0xE1, 0x73, 0x94, 0x21, 0xC0,
+ 0x9D, 0x44, 0x8E, 0xAF, 0x59, 0x1A, 0x2D, 0xF6, 0x32, 0xBF, 0x28, 0x73, 0x98, 0xCD, 0x69, 0x7C,
+ 0x61, 0x04, 0x4E, 0x79, 0x4A, 0x76, 0x49, 0xF9, 0xCE, 0x65, 0xCB, 0x34, 0x5D, 0xFE, 0x78, 0xFE,
+ 0x79, 0xBF, 0x85, 0xA2, 0xD4, 0x9D, 0xC7, 0x72, 0x7C, 0x6A, 0x75, 0xB2, 0xBA, 0x73, 0xC0, 0x3F,
+ 0xEA, 0x04, 0xC7, 0xA5, 0xF5, 0xAF, 0xA0, 0x72, 0x79, 0x7D, 0x77, 0xD7, 0x7B, 0x06, 0x3D, 0x38,
+ 0xA2, 0xE9, 0xA8, 0x1D, 0xAF, 0xD6, 0xFA, 0x38, 0xA6, 0xC5, 0x6C, 0x07, 0x17, 0xE4, 0x75, 0xA6,
+ 0x17, 0x12, 0xBB, 0xE7, 0x6B, 0xA9, 0x05, 0x93, 0xF1, 0x7C, 0x7D, 0x15, 0xC6, 0xD5, 0xA0, 0x50,
+ 0x70, 0x6C, 0xC5, 0x28, 0x0D, 0x76, 0xB6, 0x8E, 0x28, 0xAD, 0x33, 0xD0, 0x15, 0x1A, 0x67, 0x70,
+ 0x2A, 0x19, 0xBC, 0x71, 0x5F, 0xA5, 0x40, 0x84, 0xC2, 0x17, 0x52, 0x39, 0xF4, 0xA7, 0x74, 0x9A,
+ 0x34, 0x6F, 0x8F, 0x43, 0xAE, 0x6B, 0x39, 0x99, 0x9E, 0x80, 0x04, 0x27, 0xEB, 0x63, 0xE5, 0xC5,
+ 0x4A, 0xBF, 0x1C, 0xBE, 0xE4, 0x81, 0x9E, 0xCF, 0x29, 0x21, 0x19, 0x7A, 0xEA, 0x86, 0xAA, 0xD4,
+ 0x1D, 0x8E, 0x44, 0x4C, 0x15, 0x41, 0x41, 0x1B, 0x8F, 0xF3, 0xE2, 0x70, 0x64, 0xD2, 0x37, 0xC1,
+ 0x7F, 0xDF, 0x35, 0x19, 0x6B, 0x2D, 0xE5, 0x71, 0x28, 0x35, 0xD6, 0xA8, 0x65, 0x29, 0x6F, 0xDA,
+ 0x3A, 0xB8, 0xB0, 0xE0, 0x68, 0x9A, 0x09, 0x6E, 0x31, 0x1C, 0xAB, 0x13, 0x89, 0x1C, 0xBF, 0xCF,
+ 0xF0, 0x98, 0xCE, 0xC0, 0xB7, 0x65, 0x92, 0x3C, 0x51, 0xCA, 0xD9, 0x76, 0x21, 0xAA, 0x24, 0xF3,
+ 0x3E, 0xAD, 0xF5, 0xBA, 0x02, 0x04, 0xA3, 0x8B, 0x7F, 0xD2, 0x0F, 0xDD, 0x17, 0xDA, 0x66, 0x25,
+ 0x38, 0x6A, 0x90, 0x4F, 0xA5, 0xB2, 0x16, 0x60, 0x9F, 0xAF, 0x31, 0x17, 0x41, 0x98, 0xD6, 0x9F,
+ 0xB9, 0xD0, 0x63, 0x89, 0x45, 0x7C, 0x0A, 0xE1, 0x4D, 0x75, 0xF3, 0xCF, 0xA7, 0xC9, 0x19, 0x14,
+ 0xFC, 0x12, 0xAB, 0x7A, 0x9F, 0x6C, 0xF4, 0xF5, 0x85, 0x8A, 0x65, 0xFF, 0x3D, 0x57, 0x1B, 0x7E,
+ 0x6D, 0xBA, 0x68, 0xD3, 0x1A, 0x3E, 0xC4, 0x46, 0x7A, 0xBB, 0x72, 0x4A, 0x68, 0x8C, 0x7A, 0x89,
+ 0x9F, 0xB7, 0x29, 0x57, 0xB7, 0x48, 0x6B, 0x67, 0xF6, 0x50, 0x9B, 0xE4, 0x47, 0x74, 0xED, 0x6E,
+ 0xCC, 0xC3, 0xA9, 0x26, 0xBF, 0x3D, 0x62, 0x6B, 0x72, 0xC6, 0xDD, 0x97, 0x14, 0x58, 0xE2, 0xE0,
+ 0x6A, 0x0E, 0x49, 0x26, 0x3A, 0x4D, 0xD0, 0xCA, 0xE0, 0x4F, 0x53, 0x6F, 0xF5, 0x50, 0xCF, 0xE1,
+ 0xCA, 0x81, 0x02, 0xA5, 0x1D, 0xA0, 0x48, 0x9C, 0x6D, 0x42, 0xA9, 0x59, 0x7F, 0xE0, 0xF2, 0xEC,
+ 0x47, 0x61, 0x14, 0x72, 0x2D, 0x37, 0x83, 0x57, 0x04, 0x57, 0x08, 0xCE, 0xC7, 0xDB, 0xAA, 0xBD,
+ 0xEE, 0xD4, 0xA1, 0x24, 0xCB, 0xA4, 0xE9, 0x8E, 0x70, 0x93, 0x3C, 0xEC, 0x61, 0xC6, 0xF2, 0xD5,
+ 0x51, 0x3D, 0x0F, 0xFD, 0xB6, 0x56, 0x2C, 0xBD, 0xC3, 0x95, 0x99, 0x2A, 0xCC, 0x24, 0xD4, 0xEE,
+ 0xC3, 0x9F, 0x91, 0xCA, 0x3C, 0x77, 0x6E, 0xBF, 0xE2, 0x17, 0x02, 0x97, 0x97, 0x8F, 0xF2, 0x79,
+ 0xEC, 0x42, 0xBE, 0x4A, 0xA0, 0x65, 0x96, 0xEF, 0x1B, 0xF0, 0xDB, 0x01, 0xF2, 0xB7, 0x28, 0xCF,
+ 0x3B, 0xD0, 0x29, 0xD8, 0x63, 0x7C, 0x65, 0xF7, 0xC6, 0x28, 0x46, 0xC8, 0x82, 0x9E, 0x93, 0xB1,
+ 0xC0, 0xBC, 0x75, 0xC9, 0x92, 0xC2, 0x8B, 0x67, 0x78, 0x23, 0x6B, 0x0F, 0x9A, 0x1C, 0xF4, 0xF3,
+ 0xF7, 0x8C, 0x48, 0xB8, 0xFB, 0xCD, 0x7D, 0xBA, 0x5B, 0x8B, 0x92, 0xD7, 0x8C, 0xFA, 0xE3, 0x4C,
+ 0xC1, 0x54, 0xD1, 0x40, 0x36, 0x76, 0xB1, 0xD2, 0xB7, 0x4F, 0x77, 0x8A, 0x3C, 0x7C, 0x0D, 0xCB,
+ 0xBF, 0xED, 0xA6, 0x57, 0x26, 0xE6, 0xCB, 0xF7, 0x43, 0x42, 0xEE, 0x75, 0x7A, 0x04, 0xB6, 0xA4,
+ 0xE4, 0x21, 0x91, 0x98, 0xD4, 0x70, 0x1F, 0x41, 0x7F, 0xB8, 0x1E, 0x27, 0x0A, 0xF5, 0x37, 0x3D,
+ 0x5E, 0x41, 0x39, 0x41, 0xA3, 0x69, 0xA9, 0xF2, 0x04, 0x9B, 0x68, 0xD0, 0xBB, 0x44, 0x32, 0xDD,
+ 0x9B, 0x70, 0x1B, 0xF5, 0xAD, 0xA7, 0x52, 0xE0, 0xFC, 0xBF, 0x6C, 0x73, 0x08, 0xFF, 0x7A, 0x0C,
+ 0xAD, 0x1B, 0xC8, 0xCD, 0x29, 0x20, 0x4B, 0x5F, 0x38, 0xD2, 0xC3, 0x27, 0x50, 0x69, 0x5F, 0x66,
+ 0xCE, 0xE9, 0xCC, 0x77, 0xC8, 0xB3, 0xDA, 0x49, 0x1D, 0x06, 0xCF, 0x38, 0x24, 0x59, 0xEC, 0xB4,
+ 0x5B, 0xE2, 0x4D, 0x8B, 0x56, 0x2C, 0xFD, 0xF0, 0x5C, 0x04, 0x30, 0x88, 0x99, 0x13, 0xF2, 0x42,
+ 0xD0, 0xD1, 0x73, 0x3F, 0x15, 0x32, 0x2C, 0x92, 0x87, 0x8E, 0xCA, 0x6D, 0x2E, 0x06, 0x0C, 0xD4,
+ 0x55, 0x5A, 0xF6, 0x27, 0x68, 0x19, 0x49, 0xF6, 0x68, 0x1A, 0xDC, 0xFC, 0x27, 0xCD, 0x26, 0x24,
+ 0x82, 0xF5, 0x44, 0x91, 0xF4, 0x34, 0x4A, 0xEA, 0xEB, 0xC3, 0xF0, 0x39, 0x48, 0xB2, 0x54, 0x82,
+ 0x6A, 0x91, 0x86, 0x66, 0x13, 0x2F, 0x22, 0x37, 0x10, 0x7B, 0x61, 0xA2, 0xFF, 0xF1, 0xDD, 0xD6,
+ 0x78, 0x0F, 0x14, 0xD7, 0xE4, 0x98, 0xBB, 0x3C, 0xC3, 0x4D, 0x14, 0x35, 0xE2, 0x54, 0x15, 0xE6,
+ 0xBD, 0x24, 0x8B, 0x19, 0x8A, 0xC7, 0xF2, 0x25, 0x8C, 0xEE, 0x01, 0x92, 0xDB, 0xF8, 0x16, 0x8E,
+ 0xA7, 0x74, 0xB3, 0xFB, 0xDE, 0xE3, 0x08, 0x4C, 0x25, 0x4E, 0x6D, 0xD8, 0xBF, 0x0E, 0xE6, 0x74,
+ 0x7F, 0x8E, 0xF1, 0x13, 0x6C, 0x8E, 0x8F, 0xAB, 0xFC, 0xC3, 0x16, 0x71, 0xF4, 0x2E, 0x9B, 0x8B,
+ 0x09, 0xE1, 0xB1, 0x97, 0xE9, 0x1F, 0xD9, 0x86, 0x4C, 0x60, 0x07, 0xCD, 0xAB, 0xD6, 0x15, 0xA7,
+ 0xAB, 0x2E, 0x80, 0x4D, 0x91, 0xB4, 0xE7, 0xD5, 0xAC, 0xE5, 0x94, 0x9E, 0x38, 0x15, 0x13, 0xB4,
+ 0x2A, 0x28, 0x67, 0x64, 0x26, 0xE0, 0xB8, 0x86, 0xA0, 0xEC, 0x5F, 0xEC, 0xFC, 0x64, 0xDA, 0x3E,
+ 0xC7, 0x41, 0xF9, 0x9B, 0x03, 0x87, 0x95, 0x86, 0xF1, 0x4E, 0x4D, 0x53, 0x78, 0x17, 0x75, 0xD4,
+ 0x11, 0x75, 0x02, 0x6D, 0xC8, 0xE1, 0x10, 0xAA, 0x56, 0x7B, 0x8A, 0x21, 0x2A, 0xF4, 0x63, 0xAE,
+ 0x5A, 0xE4, 0xE6, 0x40, 0xE2, 0xBF, 0xDD, 0x22, 0x3A, 0x73, 0xDF, 0xCD, 0x74, 0x05, 0x11, 0x9B,
+ 0xF9, 0xB6, 0x68, 0xF9, 0x3A, 0x39, 0x85, 0x92, 0xBA, 0x27, 0x0F, 0xC0, 0x39, 0xC2, 0xA0, 0xD6,
+ 0x99, 0x58, 0x9F, 0x1E, 0xC8, 0xBF, 0x71, 0xFC, 0x98, 0x4F, 0xAC, 0xE4, 0xAA, 0x25, 0x3F, 0x8E,
+ 0x9D, 0x35, 0x7F, 0xA2, 0x5B, 0xA1, 0xA2, 0x85, 0x47, 0x2C, 0x2D, 0xC2, 0x67, 0xFB, 0x49, 0x08,
+ 0xBC, 0xB7, 0x6E, 0x57, 0x69, 0x02, 0xE5, 0x12, 0x0D, 0xEF, 0xA5, 0x02, 0xD0, 0xC8, 0x53, 0x81,
+ 0xE2, 0xF1, 0x54, 0x0F, 0x67, 0x07, 0x47, 0x95, 0xB4, 0x5A, 0x58, 0x96, 0x01, 0x0C, 0x32, 0x32,
+ 0x3C, 0xEC, 0x13, 0x42, 0xB6, 0x26, 0x7A, 0xCE, 0xD7, 0xD6, 0xFE, 0x27, 0xC5, 0x34, 0x95, 0x0F,
+ 0x51, 0x31, 0x87, 0x96, 0x2A, 0x06, 0x31, 0x66, 0x82, 0x86, 0x75, 0x57, 0x9B, 0xF6, 0xF6, 0x63,
+ 0xB5, 0x48, 0xDE, 0xDC, 0x94, 0x48, 0xA6, 0x3C, 0x8F, 0xCD, 0xA1, 0x46, 0x21, 0xC4, 0xD0, 0x24,
+ 0x32, 0x7B, 0x8C, 0x27, 0x00, 0x0B, 0x84, 0x67, 0x91, 0x52, 0xEF, 0xD0, 0x4D, 0x36, 0x25, 0x59,
+ 0x6F, 0x5A, 0x00, 0x3B, 0x46, 0x47, 0xEB, 0x76, 0x3C, 0xA7, 0x23, 0x8E, 0x1A, 0xE6, 0xD1, 0xEF,
+ 0x88, 0xBF, 0x31, 0xBB, 0x1D, 0xA8, 0xDE, 0x35, 0xA9, 0xC0, 0xB3, 0xDC, 0x67, 0x41, 0xF5, 0xEA,
+ 0x62, 0x0A, 0x67, 0x0C, 0xC8, 0x0E, 0x87, 0xCB, 0xBA, 0x62, 0xD7, 0x8B, 0x5D, 0x67, 0xC9, 0x60,
+ 0x81, 0x07, 0x4A, 0x1F, 0xAB, 0xF6, 0xB4, 0x28, 0x8F, 0xA0, 0x2B, 0xA1, 0xAB, 0x03, 0x3F, 0x09,
+ 0x3F, 0xA0, 0x49, 0xB0, 0xAC, 0x2B, 0x39, 0x7A, 0x3E, 0x4F, 0x33, 0x1C, 0x39, 0x8D, 0xF2, 0xE5,
+ 0x3D, 0xBE, 0x37, 0x25, 0xEA, 0x07, 0x4C, 0x1B, 0x4A, 0x5D, 0xA0, 0x16, 0xF8, 0xEA, 0x74, 0x89,
+ 0x26, 0x09, 0xA7, 0x6D, 0xE4, 0xC3, 0xAE, 0x21, 0x80, 0xF7, 0xE8, 0x2A, 0xCD, 0xB0, 0x01, 0x3A,
+ 0x37, 0xC7, 0xF5, 0x79, 0xAA, 0x7A, 0x9F, 0xCE, 0xDC, 0xFE, 0x5D, 0x06, 0xDE, 0x4F, 0x0A, 0xC3,
+ 0x79, 0xE6, 0xEF, 0x6A, 0xEB, 0x3D, 0x50, 0xE9, 0x7C, 0x61, 0x3A, 0x85, 0xC6, 0xFC, 0x05, 0x05,
+ 0x18, 0x4B, 0x56, 0x8E, 0xDF, 0xD4, 0xED, 0xA9, 0x11, 0x78, 0x60, 0xFC, 0x50, 0x0A, 0x10, 0x4B,
+ 0x4E, 0x9D, 0x11, 0x68, 0xC5, 0xC7, 0x29, 0x37, 0x0E, 0x2A, 0x7E, 0x86, 0x98, 0x73, 0x8E, 0xB1,
+ 0x53, 0xAA, 0x40, 0xAD, 0x6E, 0xE9, 0xCC, 0x47, 0x52, 0xE3, 0x00, 0xAF, 0xA0, 0xD4, 0x38, 0x67,
+ 0xA8, 0xD6, 0xB0, 0x23, 0x96, 0x37, 0x98, 0xEB, 0x39, 0xE0, 0x57, 0x22, 0xCC, 0x0B, 0xB1, 0x6E,
+ 0x9C, 0x6B, 0xFF, 0xA6, 0xF2, 0xCE, 0x63, 0xBF, 0x24, 0x87, 0x35, 0xE5, 0x05, 0xAF, 0xBE, 0xF5,
+ 0xE1, 0x17, 0xE7, 0xF2, 0x8C, 0xBF, 0x56, 0x31, 0x04, 0x26, 0x70, 0xCB, 0xB0, 0x43, 0x77, 0x11,
+ 0x93, 0x0E, 0xD2, 0x8E, 0xF9, 0x70, 0xE0, 0x4B, 0x57, 0x6E, 0xBA, 0x96, 0x4B, 0xD8, 0xD4, 0xE0,
+ 0x45, 0x56, 0xC6, 0xEF, 0x41, 0xF2, 0x90, 0xF1, 0xBC, 0x0E, 0x74, 0x57, 0x28, 0xE9, 0x61, 0x19,
+ 0x7B, 0x69, 0x61, 0x84, 0x92, 0x26, 0xD2, 0x36, 0xD5, 0xED, 0x72, 0xA5, 0x7C, 0x5C, 0x55, 0x86,
+ 0xB9, 0x7A, 0x39, 0xBC, 0x67, 0x4B, 0x83, 0xA5, 0xB2, 0xA3, 0xF3, 0xD0, 0xC1, 0x40, 0xFB, 0x5B,
+ 0x2F, 0xBA, 0x76, 0xB1, 0x07, 0x09, 0x1D, 0x4D, 0x85, 0xDA, 0xB6, 0x2F, 0xC2, 0xBE, 0xBC, 0xF7,
+ 0x38, 0x6E, 0x98, 0xE8, 0x17, 0x96, 0xC6, 0x6C, 0x09, 0xDB, 0x27, 0xCD, 0x2C, 0x8E, 0x5D, 0x42,
+ 0xD1, 0xEB, 0xDB, 0xEC, 0x26, 0x90, 0x3E, 0xBD, 0x1A, 0xE9, 0xD5, 0xA9, 0x10, 0x21, 0xC4, 0xD1,
+ 0x97, 0x4A, 0x49, 0xC1, 0x4B, 0x8A, 0x12, 0xB6, 0xED, 0x97, 0x86, 0x56, 0xE4, 0x28, 0xA3, 0xEA,
+ 0x19, 0x2C, 0x35, 0xFC, 0x63, 0xFF, 0x1A, 0xE2, 0x0E, 0x3A, 0x20, 0x16, 0x47, 0x9A, 0x07, 0x16,
+ 0xE3, 0x52, 0x3B, 0x62, 0xC3, 0xB6, 0xAA, 0x8A, 0x52, 0x46, 0x80, 0xDA, 0x39, 0x02, 0xF5, 0xA8,
+ 0x42, 0x07, 0xCD, 0xAF, 0x03, 0x53, 0x91, 0x35, 0x62, 0xDD, 0x0D, 0xE4, 0x2A, 0xC9, 0xB1, 0xEC,
+ 0x76, 0xA5, 0xDF, 0xDF, 0x56, 0x9B, 0x8C, 0xDA, 0x7D, 0x89, 0xA4, 0xF4, 0x23, 0xA3, 0xDB, 0xE5,
+ 0xD3, 0x8E, 0xC2, 0x3C, 0x06, 0x9B, 0x6E, 0x1D, 0xEB, 0x2D, 0x1B, 0xE2, 0x79, 0x66, 0xFD, 0xAF,
+ 0x48, 0x7B, 0x29, 0x67, 0xA1, 0xF8, 0xC5, 0x6D, 0x19, 0x00, 0x89, 0x21, 0x03, 0x24, 0xDE, 0xFA,
+ 0x17, 0xAC, 0xA7, 0x84, 0xC2, 0x63, 0xEC, 0x6C, 0x05, 0x6B, 0xFD, 0x3C, 0xD7, 0x16, 0x6E, 0xA0,
+ 0xA1, 0x82, 0x9C, 0xBA, 0x87, 0x7A, 0x56, 0xF3, 0x81, 0x87, 0x4C, 0x0D, 0x72, 0x60, 0x3B, 0xFE,
+ 0xB9, 0x2F, 0xB0, 0xE8, 0xC5, 0x89, 0xC9, 0x88, 0x3B, 0xAA, 0x74, 0xC0, 0x19, 0x7F, 0x70, 0x90,
+ 0xC3, 0xB7, 0xFD, 0x2F, 0x1F, 0x04, 0xB7, 0x0B, 0x5F, 0x27, 0x0C, 0x41, 0x85, 0xE6, 0x70, 0x97,
+ 0x83, 0x4C, 0xBB, 0xD0, 0xC9, 0xF2, 0xC8, 0xD4, 0xA2, 0xC8, 0x14, 0xBF, 0x14, 0x63, 0x7D, 0x4B,
+ 0x75, 0x4A, 0x16, 0x3A, 0xB6, 0x7F, 0xFF, 0x24, 0xDD, 0xAC, 0xF2, 0x1F, 0x39, 0x9A, 0xF3, 0xAC,
+ 0x9E, 0x02, 0xAC, 0x6C, 0x57, 0x96, 0xE4, 0x47, 0x23, 0x9F, 0xBF, 0x32, 0x5B, 0xD3, 0x3C, 0xEA,
+ 0x6D, 0xF7, 0xCA, 0x18, 0x14, 0x1B, 0x33, 0xD5, 0xC7, 0xA2, 0x96, 0x00, 0x62, 0x4E, 0xB5, 0x42,
+ 0x42, 0xFE, 0x48, 0xC3, 0x14, 0xC9, 0x8A, 0xF0, 0x4A, 0x6E, 0xBA, 0x83, 0x52, 0xF8, 0x94, 0x11,
+ 0x2A, 0xB1, 0x3F, 0x03, 0x51, 0x03, 0x62, 0xB0, 0x18, 0x25, 0xF9, 0x01, 0x64, 0x69, 0x9B, 0xA8,
+ 0x24, 0x80, 0x4A, 0x2A, 0x40, 0x9E, 0xD8, 0xFE, 0x43, 0xC1, 0x0E, 0xBD, 0x07, 0xC2, 0x3C, 0x86,
+ 0x41, 0xF2, 0x05, 0x56, 0x7E, 0x48, 0x5D, 0x96, 0x85, 0x94, 0xC5, 0x87, 0xB6, 0xD4, 0x13, 0x80,
+ 0xD2, 0x6D, 0x21, 0xE2, 0x6C, 0x53, 0xC6, 0xA8, 0x57, 0xBB, 0x51, 0xF6, 0xEA, 0xC7, 0xCF, 0x08,
+ 0xF5, 0x1A, 0xE9, 0xDD, 0x7C, 0x15, 0x53, 0xF7, 0xA6, 0xF8, 0x1B, 0xBA, 0x89, 0x38, 0x78, 0xA1,
+ 0x5A, 0x7A, 0x24, 0x79, 0x3B, 0xFE, 0x93, 0x05, 0x73, 0x5E, 0xF7, 0x97, 0x7D, 0x64, 0xAD, 0xE3,
+ 0x43, 0xAB, 0x9A, 0x12, 0x07, 0x45, 0xA5, 0xEE, 0x77, 0xF6, 0x61, 0xE5, 0x4A, 0xCB, 0x73, 0xAF,
+ 0xB0, 0x73, 0x4B, 0x62, 0xFF, 0xDD, 0x22, 0x26, 0xDF, 0x21, 0x6C, 0x17, 0x07, 0x57, 0xDD, 0x0D,
+ 0x9D, 0xEB, 0x3E, 0xFB, 0xD9, 0x67, 0xCF, 0x7D, 0x06, 0xCE, 0x1F, 0xDC, 0xD5, 0x45, 0xDF, 0x98,
+ 0xD1, 0x79, 0x93, 0xA3, 0x62, 0x89, 0x01, 0x13, 0x33, 0x27, 0xDE, 0xE7, 0x95, 0x0F, 0x9B, 0x60,
+ 0xEF, 0xE7, 0xBD, 0x42, 0x95, 0x7E, 0xA3, 0x10, 0x57, 0x58, 0x1D, 0x19, 0x8F, 0x9C, 0x81, 0x0A,
+ 0x00, 0x5A, 0x9E, 0xE5, 0xAB, 0xE8, 0xAF, 0xE3, 0xD1, 0x11, 0x06, 0x76, 0xA9, 0x65, 0x55, 0xDB,
+ 0x87, 0xC5, 0x85, 0xBE, 0x23, 0x95, 0x77, 0x6D, 0x0B, 0xCE, 0x26, 0x3C, 0x87, 0x1E, 0xDF, 0xF7,
+ 0xB3, 0x22, 0xDD, 0x2F, 0x30, 0xEA, 0x70, 0x20, 0xF5, 0x02, 0x5C, 0x23, 0x8B, 0x1C, 0x67, 0x97,
+ 0xFA, 0x4A, 0xF7, 0xB9, 0x4D, 0x99, 0xB5, 0x8A, 0x10, 0x4C, 0xF0, 0xAD, 0x48, 0x09, 0xBE, 0xEC,
+ 0x4F, 0x5D, 0xDC, 0x6C, 0x88, 0xA9, 0xEA, 0x07, 0x37, 0x63, 0x04, 0xB7, 0x13, 0x50, 0xDF, 0xE8,
+ 0x72, 0xEF, 0xFD, 0x55, 0x95, 0xA3, 0x34, 0xAE, 0x38, 0x27, 0x3C, 0x8B, 0xF2, 0xF6, 0x4E, 0x79,
+ 0xAA, 0x40, 0xEB, 0x15, 0x62, 0x63, 0x95, 0xCD, 0x8B, 0x14, 0xF3, 0x83, 0xD3, 0x25, 0x09, 0xD5,
+ 0xED, 0xF4, 0xCF, 0x81, 0x55, 0xF4, 0xB4, 0x95, 0x77, 0xB7, 0xC0, 0x00, 0xC9, 0xAD, 0x99, 0xE1,
+ 0x8D, 0xB2, 0x90, 0xE4, 0x40, 0x6F, 0xF1, 0xD6, 0x10, 0x71, 0xCA, 0xA0, 0xA8, 0x07, 0xBC, 0xCF,
+ 0x79, 0x12, 0x57, 0x7C, 0xDF, 0xA6, 0x91, 0x5D, 0x6F, 0x2C, 0x2D, 0x94, 0x22, 0xA4, 0x13, 0x18,
+ 0x18, 0xEF, 0xEE, 0xCE, 0x95, 0x15, 0x19, 0x23, 0x4D, 0x04, 0xFC, 0x01, 0xD4, 0x82, 0xF3, 0x1E,
+ 0xD5, 0xB8, 0xF5, 0x14, 0xE5, 0xFC, 0x52, 0x87, 0xFA, 0x28, 0x0D, 0x76, 0x98, 0xD7, 0xD2, 0x7B,
+ 0xBC, 0x2D, 0x93, 0x1A, 0xEE, 0x17, 0x89, 0xAD, 0x9D, 0x9A, 0x0B, 0xFD, 0x33, 0x23, 0x26, 0x4E,
+ 0x31, 0x6C, 0x53, 0x67, 0x39, 0x39, 0x37, 0x62, 0x5D, 0x26, 0x85, 0x56, 0xA3, 0x3B, 0xC2, 0xEB,
+ 0xD6, 0x80, 0xE9, 0x90, 0xD6, 0xE4, 0x80, 0x52, 0x85, 0x73, 0x49, 0xEB, 0x7E, 0xBB, 0x8B, 0x11,
+ 0x8F, 0xF7, 0xB6, 0x5B, 0xEC, 0x70, 0x6A, 0xF1, 0x52, 0x3D, 0x6F, 0xC3, 0xA5, 0xDF, 0xA8, 0xB3,
+ 0x8C, 0x09, 0xFE, 0x54, 0x12, 0xF7, 0x3A, 0xC1, 0x87, 0x94, 0x3E, 0x3C, 0xB1, 0xE7, 0x0F, 0x44,
+ 0xE3, 0x98, 0x99, 0x59, 0x9A, 0x59, 0x67, 0xE3, 0x26, 0x86, 0xEE, 0xC0, 0x6D, 0x2B, 0x10, 0xA3,
+ 0x39, 0x3A, 0x47, 0xFE, 0x91, 0xEE, 0x59, 0xB9, 0x26, 0xE0, 0xFE, 0xD5, 0x6E, 0x7D, 0xED, 0x90,
+ 0xAE, 0x87, 0x9B, 0xF2, 0x5F, 0x8F, 0xBD, 0x46, 0xD3, 0x10, 0xCC, 0xD6, 0x32, 0xA9, 0x7F, 0x85,
+ 0xC4, 0xDE, 0x87, 0x3D, 0xF2, 0x3B, 0x5B, 0xF5, 0xC9, 0xA5, 0xDC, 0x90, 0xF4, 0x08, 0x79, 0xA8,
+ 0x90, 0x11, 0x20, 0x4D, 0x8D, 0x98, 0xA0, 0x9B, 0x72, 0x44, 0x03, 0xCE, 0x73, 0x5F, 0x87, 0xF5,
+ 0xE5, 0xF0, 0x95, 0x76, 0xC3, 0x78, 0x10, 0x4D, 0x34, 0x53, 0x02, 0xF5, 0x73, 0x68, 0x43, 0xAF,
+ 0x21, 0x68, 0xA9, 0xDF, 0x95, 0x4B, 0x46, 0xB8, 0xB6, 0xEB, 0x7B, 0x4D, 0x75, 0x76, 0x70, 0xBE,
+ 0x97, 0x39, 0xE6, 0x3B, 0x97, 0xC6, 0x3F, 0x49, 0xD2, 0xFF, 0x47, 0xAF, 0x7E, 0x55, 0x7E, 0x59,
+ 0x58, 0x90, 0xC6, 0x89, 0x1A, 0x75, 0x71, 0x22, 0x1E, 0xC3, 0xF4, 0xCF, 0x4D, 0x32, 0xE9, 0x67,
+ 0x44, 0x81, 0x01, 0x9F, 0x17, 0x85, 0x35, 0xEC, 0xCC, 0xD8, 0xE2, 0x37, 0x47, 0xA8, 0x3B, 0xA2,
+ 0xA6, 0x22, 0x86, 0x39, 0xCD, 0xFF, 0x2E, 0x8C, 0x72, 0x15, 0xB8, 0xEF, 0x69, 0xE0, 0x51, 0x82,
+ 0x15, 0x92, 0x08, 0xEB, 0x60, 0x55, 0x27, 0xE2, 0xA2, 0xE4, 0xB6, 0xA1, 0x0C, 0xBE, 0xE0, 0x25,
+ 0xCE, 0x81, 0x4C, 0xEE, 0x0E, 0x80, 0x30, 0x24, 0xC0, 0xEF, 0x86, 0x50, 0x6D, 0x2F, 0xFA, 0x85,
+ 0xDA, 0xD6, 0x83, 0xF0, 0xCF, 0x57, 0x73, 0x4C, 0xC6, 0xD0, 0x54, 0x7F, 0x03, 0x7A, 0xE4, 0xD5,
+ 0x8B, 0x51, 0x44, 0x37, 0x9B, 0x05, 0xB1, 0xF0, 0x58, 0x8C, 0x48, 0x38, 0x86, 0xFB, 0x01, 0x02,
+ 0xE8, 0x63, 0xE0, 0x4D, 0x66, 0xF1, 0x9B, 0x8D, 0x7C, 0xE8, 0xD0, 0xE9, 0x1C, 0xB2, 0xAE, 0x84,
+ 0x98, 0x73, 0xB0, 0x07, 0xEB, 0x0D, 0x4D, 0x97, 0x12, 0x36, 0xE1, 0x67, 0x92, 0x7C, 0x41, 0xC8,
+ 0x6B, 0x36, 0x7E, 0xF6, 0x23, 0x15, 0x94, 0xE1, 0xFD, 0x3A, 0xA7, 0xFF, 0xF3, 0x3D, 0x63, 0x19,
+ 0x5E, 0xD9, 0x08, 0xE0, 0x54, 0x89, 0xE9, 0xCA, 0x2A, 0x83, 0x4B, 0x21, 0x7D, 0x78, 0x20, 0x84,
+ 0x66, 0x96, 0x88, 0xA5, 0x37, 0x9B, 0xDB, 0x54, 0x5C, 0x5B, 0x6E, 0x19, 0xDB, 0x13, 0x9A, 0x15,
+ 0xCD, 0xF7, 0x12, 0xF1, 0x31, 0x8F, 0x40, 0xDD, 0x2D, 0x35, 0x2C, 0x4F, 0x24, 0x81, 0x9A, 0x32,
+ 0x99, 0x77, 0x8A, 0xD3, 0xDD, 0x6B, 0x4A, 0x56, 0x42, 0xB1, 0xC1, 0xB3, 0xC3, 0x05, 0xCA, 0x1F,
+ 0x84, 0x90, 0x1D, 0xDE, 0x81, 0x0D, 0x7E, 0xBD, 0x72, 0x98, 0xAB, 0x30, 0x1A, 0xAC, 0x09, 0x65,
+ 0x12, 0x05, 0x70, 0x6C, 0xFA, 0x22, 0x11, 0x80, 0x4D, 0x6C, 0x92, 0x5B, 0x0D, 0x28, 0x3F, 0x7D,
+ 0xA2, 0x63, 0x3A, 0xDE, 0xBE, 0x21, 0xEB, 0x80, 0xE1, 0x70, 0x0A, 0x80, 0xF8, 0x88, 0x16, 0xA6,
+ 0x36, 0x0D, 0xEE, 0x76, 0x47, 0xAB, 0xD9, 0xA5, 0xA7, 0x21, 0x29, 0xE6, 0xEE, 0xDD, 0xD7, 0x65,
+ 0x1A, 0xAA, 0x7D, 0x13, 0xC2, 0xAF, 0x9F, 0x80, 0x3E, 0xFB, 0x20, 0x6A, 0x59, 0x8E, 0x95, 0x90,
+ 0x1C, 0xEB, 0x17, 0x93, 0x5C, 0xC4, 0x6F, 0x17, 0xE4, 0x49, 0x35, 0x29, 0x3D, 0x57, 0xCB, 0xFC,
+ 0xCA, 0xF5, 0x5D, 0x6D, 0xC0, 0xFA, 0x1F, 0x7F, 0xC6, 0xAF, 0xFB, 0x0B, 0xE8, 0x66, 0xA5, 0xC0,
+ 0x13, 0xE0, 0x26, 0xA0, 0xC6, 0xBC, 0xEC, 0xBC, 0x55, 0x75, 0xBA, 0xFD, 0x19, 0x20, 0xFD, 0xBA,
+ 0x6E, 0x75, 0x5C, 0x03, 0x57, 0x2F, 0xD9, 0x97, 0x36, 0x73, 0xFF, 0x88, 0xED, 0xCC, 0x03, 0x5D,
+ 0xA0, 0x76, 0x6A, 0x9F, 0x7B, 0x55, 0x92, 0xF8, 0xBF, 0x68, 0x39, 0x75, 0x4E, 0x31, 0xDB, 0xE1,
+ 0xB7, 0x7D, 0x9D, 0x2C, 0x0C, 0x58, 0x49, 0x26, 0x15, 0x03, 0xA8, 0xC5, 0xB9, 0x01, 0xBE, 0x96,
+ 0xF4, 0xCE, 0x11, 0x54, 0x20, 0xFB, 0x5D, 0x63, 0xAA, 0x1B, 0xFD, 0xA8, 0x60, 0xD3, 0x3B, 0x3C,
+ 0x36, 0xA5, 0x9F, 0x9B, 0x19, 0xCF, 0x0C, 0x47, 0xC1, 0x0D, 0x7C, 0x5F, 0x05, 0xCF, 0x17, 0x20,
+ 0x96, 0x87, 0x52, 0xF4, 0xC8, 0xF4, 0x95, 0x3D, 0x94, 0x7E, 0xAF, 0x31, 0xA1, 0x15, 0x33, 0x20,
+ 0x6C, 0xCE, 0xFA, 0xB8, 0x03, 0xAD, 0x25, 0xBD, 0x26, 0x5E, 0x0F, 0xA0, 0x24, 0x8D, 0x27, 0xFC,
+ 0x5E, 0x7C, 0x5A, 0x03, 0x5B, 0x9B, 0xB1, 0xD4, 0xC7, 0xBE, 0x5A, 0xBC, 0xF1, 0xAE, 0x0B, 0x61,
+ 0x18, 0x59, 0x5F, 0x2C, 0x2F, 0x9D, 0x9D, 0xA4, 0x26, 0xF2, 0x09, 0x6F, 0x68, 0xA7, 0xC7, 0xD9,
+ 0x5C, 0xA1, 0x2A, 0x93, 0xF8, 0x40, 0xE1, 0x2D, 0x9E, 0x4D, 0x94, 0x2F, 0xCE, 0xE9, 0x30, 0x10,
+ 0xC7, 0xB8, 0x2A, 0x91, 0x0C, 0xD8, 0x4A, 0x3B, 0x68, 0x21, 0x06, 0xC2, 0x14, 0xAB, 0x24, 0xDC,
+ 0xCD, 0x50, 0xE3, 0x43, 0xDE, 0xED, 0x1E, 0x83, 0x24, 0xCC, 0x82, 0x90, 0x2B, 0x46, 0xAE, 0xA8,
+ 0xF9, 0xC3, 0x2A, 0x56, 0x46, 0xE2, 0x03, 0xA2, 0xFB, 0x34, 0x2B, 0xA6, 0xF7, 0x2C, 0xB8, 0xDF,
+ 0xBD, 0x0B, 0x17, 0x88, 0xF4, 0x24, 0x0B, 0x3D, 0x42, 0x09, 0x60, 0x9A, 0xDD, 0xB9, 0x06, 0x79,
+ 0xE0, 0x8E, 0xF0, 0x3F, 0x20, 0xC5, 0x64, 0x8F, 0xFD, 0x44, 0xAC, 0xE2, 0x0B, 0x69, 0x27, 0x4F,
+ 0xDE, 0x1F, 0xE1, 0x9D, 0x3A, 0x3F, 0xBE, 0xDF, 0x2C, 0x88, 0xFA, 0xA6, 0x62, 0x79, 0xE1, 0x25,
+ 0x3A, 0xB0, 0xC9, 0x12, 0x96, 0x63, 0x29, 0x8E, 0x7D, 0xBF, 0x2E, 0x93, 0x54, 0x4B, 0x1E, 0x92,
+ 0x0E, 0x13, 0x99, 0x26, 0xE6, 0xA9, 0x3B, 0x0E, 0xD8, 0xEE, 0xA4, 0x8E, 0xFA, 0x8C, 0x8B, 0xF3,
+ 0xB0, 0xF0, 0xFB, 0xEB, 0xC6, 0x52, 0xB6, 0xDF, 0xEB, 0x77, 0xBC, 0x05, 0xFF, 0x02, 0xE2, 0x18,
+ 0x07, 0x99, 0x8A, 0x34, 0x7F, 0xC9, 0x51, 0xEF, 0x43, 0xC7, 0x3C, 0x67, 0x83, 0xCE, 0xAA, 0x78,
+ 0xED, 0x4B, 0xF8, 0x62, 0xDB, 0x8D, 0x08, 0x59, 0xCF, 0x55, 0x58, 0xDB, 0xFF, 0xE8, 0x06, 0x4E,
+ 0xB8, 0xAE, 0x32, 0x63, 0x87, 0x2A, 0x10, 0x71, 0x74, 0xAD, 0xD2, 0xAC, 0x43, 0xC0, 0xFA, 0x36,
+ 0xF6, 0xAC, 0x99, 0x4B, 0x46, 0x9B, 0xDF, 0xF2, 0x69, 0xE0, 0xB5, 0xE3, 0xE2, 0x73, 0x68, 0xF2,
+ 0xB2, 0xA0, 0xC4, 0xE1, 0x44, 0x52, 0xC3, 0xEB, 0x5F, 0xD6, 0x2F, 0xB4, 0xF9, 0x65, 0x41, 0x7C,
+ 0xA9, 0xD7, 0xC5, 0x03, 0xC0, 0x73, 0x21, 0x45, 0xD7, 0x60, 0x67, 0xCD, 0x48, 0x3F, 0x08, 0x2A,
+ 0xDC, 0xE5, 0xD5, 0xB7, 0x46, 0x29, 0x43, 0x13, 0xB1, 0x6F, 0x8F, 0xEA, 0x14, 0x5B, 0xA5, 0x8A,
+ 0x27, 0x17, 0x78, 0x1B, 0xAC, 0xBE, 0x17, 0xC2, 0x4A, 0xD7, 0xD8, 0x6F, 0x14, 0x84, 0xA9, 0xBB,
+ 0x97, 0xE0, 0xE5, 0x65, 0xAD, 0xEE, 0x62, 0x04, 0x35, 0xEB, 0xEF, 0x77, 0xE6, 0x85, 0xE8, 0xA1,
+ 0xC1, 0x93, 0xA0, 0x2F, 0x9D, 0x4A, 0xA6, 0x48, 0xB3, 0x33, 0xF1, 0xB5, 0xC9, 0xFC, 0xAC, 0x5F,
+ 0x28, 0x11, 0xCF, 0x3A, 0x16, 0xDC, 0x87, 0x29, 0xB2, 0x12, 0xE2, 0x4A, 0x8D, 0x81, 0xA4, 0x04,
+ 0xF0, 0x33, 0x11, 0x1C, 0x2F, 0xCE, 0x00, 0xAF, 0x87, 0x57, 0x99, 0xA5, 0xBE, 0xA1, 0x3D, 0x76,
+ 0xF7, 0x56, 0xAB, 0xD8, 0xE4, 0xFC, 0x34, 0xD7, 0x55, 0x57, 0x9B, 0x09, 0xF3, 0xDB, 0xB9, 0x13,
+ 0x32, 0x89, 0x93, 0xB0, 0x60, 0x30, 0x7D, 0xBE, 0x8F, 0x12, 0x8E, 0xDA, 0x33, 0x77, 0xCC, 0xC3,
+ 0xA5, 0x38, 0xD9, 0x14, 0xB1, 0x1F, 0x37, 0x95, 0x39, 0xAD, 0xD0, 0x33, 0x40, 0xEB, 0x6E, 0x13,
+ 0x48, 0x81, 0x7D, 0x2B, 0x0D, 0xA6, 0x1A, 0x86, 0xA2, 0xC6, 0xC2, 0x97, 0xF3, 0x98, 0xCB, 0x35,
+ 0x86, 0x8C, 0x59, 0x56, 0xC6, 0x99, 0x56, 0x06, 0xC2, 0x55, 0x88, 0x0D, 0x48, 0x59, 0x6D, 0x9C,
+ 0x24, 0x6A, 0x4E, 0xD5, 0x01, 0x37, 0x68, 0xDA, 0x92, 0xE4, 0x1B, 0xE5, 0x5B, 0x9A, 0x52, 0x8B,
+ 0x76, 0x0C, 0x5D, 0x7F, 0x34, 0xCA, 0x0A, 0x14, 0x48, 0x4F, 0x80, 0x9F, 0x39, 0x4D, 0x38, 0x10,
+ 0x16, 0x83, 0xD8, 0x03, 0xFD, 0x57, 0xFE, 0x6A, 0x65, 0x86, 0x23, 0xBE, 0xD8, 0xAA, 0x24, 0x12,
+ 0x9E, 0x10, 0xF2, 0xE0, 0xEB, 0x5A, 0x9F, 0x74, 0x6D, 0x69, 0x05, 0xD5, 0xD1, 0x7B, 0xB3, 0x63,
+ 0xD5, 0xA4, 0x80, 0x36, 0x84, 0x34, 0x52, 0x07, 0xBC, 0xD2, 0x50, 0x06, 0x4D, 0x8A, 0xB5, 0x5F,
+ 0x6D, 0x71, 0x1C, 0xDD, 0x10, 0x78, 0xC8, 0x7F, 0xAE, 0x0A, 0xD7, 0x29, 0xB7, 0x83, 0xDF, 0x9A,
+ 0xB3, 0xE2, 0x65, 0x1D, 0xC8, 0xAD, 0xF5, 0x07, 0x24, 0xD4, 0x71, 0x08, 0xDC, 0xBB, 0x86, 0x4C,
+ 0x12, 0xDC, 0x6E, 0xDA, 0x27, 0xB9, 0x2D, 0x9A, 0x92, 0x3F, 0xA2, 0xF1, 0xCA, 0x74, 0xBD, 0x20,
+ 0x33, 0x6E, 0xF3, 0xDE, 0xA9, 0x91, 0x6A, 0x61, 0xBB, 0xBB, 0x2A, 0x61, 0x9B, 0x47, 0x07, 0xDA,
+ 0x4F, 0x06, 0x99, 0x79, 0xDA, 0x38, 0x04, 0x23, 0xF2, 0x7E, 0xE4, 0x5D, 0x90, 0x93, 0x02, 0x03,
+ 0x78, 0x31, 0x73, 0x0B, 0x8A, 0xAC, 0xF2, 0xCE, 0xD4, 0x07, 0x1D, 0xFF, 0x80, 0x75, 0xAC, 0x9E,
+ 0x63, 0xD9, 0x17, 0xD3, 0xAB, 0x2A, 0x19, 0xC1, 0x2D, 0x62, 0x54, 0xF7, 0xFD, 0x38, 0xA3, 0x8B,
+ 0xB4, 0xA7, 0x45, 0x60, 0x52, 0x36, 0xEA, 0x87, 0x1B, 0x15, 0xC9, 0xDC, 0xA8, 0x11, 0x87, 0x6B,
+ 0x6B, 0x59, 0xFF, 0xD6, 0x87, 0xAE, 0x90, 0xC0, 0xD0, 0x55, 0x91, 0x1A, 0x7A, 0x7A, 0xBE, 0xEE,
+ 0xD1, 0x0B, 0xFC, 0xED, 0x24, 0xF8, 0x26, 0x83, 0x70, 0x60, 0xE7, 0xBA, 0x47, 0xCB, 0x8D, 0x2B,
+ 0x4E, 0x6A, 0xD0, 0xC4, 0xD6, 0x71, 0x3E, 0x39, 0x17, 0x10, 0xF8, 0xDD, 0x78, 0xF3, 0xFF, 0xCC,
+ 0x30, 0xC7, 0x5E, 0xC2, 0xF7, 0x2B, 0x44, 0x93, 0xE6, 0x8D, 0x61, 0x58, 0xF1, 0x8B, 0x31, 0xA7,
+ 0x41, 0xC4, 0xA3, 0x05, 0xBB, 0xB9, 0x55, 0xE7, 0x86, 0x56, 0x40, 0x47, 0xB8, 0xD6, 0xAF, 0xD4,
+ 0xD4, 0xC1, 0x22, 0xBF, 0x17, 0x55, 0x72, 0xB9, 0x7B, 0x8F, 0xBF, 0x50, 0xF2, 0x9C, 0x1D, 0x0C,
+ 0x14, 0x34, 0xA8, 0x87, 0xC4, 0x77, 0xDD, 0x1D, 0x82, 0xA5, 0xE3, 0x9E, 0x17, 0x70, 0x7B, 0xB7,
+ 0x22, 0x01, 0x08, 0xB9, 0xA2, 0xD9, 0xC4, 0x87, 0x6F, 0x62, 0x4C, 0x26, 0xF6, 0xE6, 0x61, 0x90,
+ 0x0D, 0x76, 0xDA, 0x87, 0xE5, 0xD9, 0xC5, 0xC6, 0x3B, 0xFC, 0x7F, 0xBE, 0x86, 0x3D, 0x00, 0x89,
+ 0xE5, 0xD4, 0x2F, 0x36, 0x21, 0x66, 0xAD, 0x5E, 0x39, 0x9C, 0xEE, 0xE4, 0x27, 0x7E, 0xF4, 0x8A,
+ 0x5F, 0xBC, 0x8A, 0xD6, 0xC4, 0x01, 0xA3, 0x0F, 0x5B, 0x19, 0x45, 0xF6, 0x8D, 0x89, 0x25, 0xB9,
+ 0xDA, 0x72, 0x7D, 0x67, 0x8F, 0xAA, 0xC6, 0x3A, 0xF5, 0x08, 0x53, 0xB3, 0x46, 0x42, 0x38, 0x35,
+ 0x0B, 0x8F, 0x50, 0xBD, 0xC5, 0xC3, 0x33, 0x32, 0xDD, 0x74, 0xAA, 0xD7, 0xD8, 0x5A, 0x92, 0x9B,
+ 0x2B, 0x17, 0x02, 0x9F, 0xAB, 0xCF, 0x48, 0x99, 0x7E, 0x1A, 0x2D, 0xFB, 0x1A, 0x82, 0x25, 0x58,
+ 0xDD, 0x9A, 0x1D, 0x8B, 0xAB, 0x90, 0x24, 0x57, 0xF3, 0x68, 0xD7, 0xBC, 0x19, 0x98, 0x94, 0xE2,
+ 0x71, 0x5C, 0xEE, 0xE5, 0xEF, 0x88, 0x31, 0x22, 0x44, 0x16, 0x9E, 0x78, 0x35, 0x5D, 0x44, 0xED,
+ 0x32, 0xBC, 0x4F, 0xE5, 0x3F, 0x26, 0x68, 0x9E, 0xBD, 0x91, 0xB0, 0x14, 0x1E, 0xE2, 0x03, 0x6E,
+ 0x41, 0x2D, 0x39, 0xB5, 0x9E, 0xEA, 0x7A, 0x08, 0x7E, 0x87, 0x9D, 0xA1, 0xCD, 0x0F, 0x9A, 0x37,
+ 0x30, 0x89, 0x13, 0x3B, 0xC0, 0x01, 0xB1, 0x6B, 0xAD, 0xED, 0xC2, 0x38, 0xF5, 0x8E, 0x13, 0x33,
+ 0xF3, 0x79, 0x88, 0xB5, 0xB8, 0x46, 0x22, 0x7A, 0xDF, 0xAB, 0xFC, 0x1B, 0x8E, 0x2C, 0x95, 0x9A,
+ 0x00, 0x80, 0x7F, 0x22, 0x24, 0x47, 0x89, 0x5C, 0x20, 0xCD, 0x54, 0x24, 0xD0, 0xBC, 0x3E, 0xE3,
+ 0xE7, 0x04, 0x53, 0xAE, 0xA2, 0x96, 0x2A, 0x9B, 0x32, 0xAD, 0xA0, 0x94, 0xAA, 0xDC, 0xAB, 0x77,
+ 0x20, 0x89, 0x45, 0xF2, 0x34, 0xC3, 0xFA, 0x74, 0xF9, 0xD6, 0xF8, 0xBF, 0x85, 0x7F, 0xE7, 0xAD,
+ 0xD1, 0x54, 0xA4, 0xD2, 0x7B, 0x0A, 0xAF, 0xF2, 0x87, 0x7A, 0x35, 0x64, 0x04, 0x34, 0x0C, 0x4D,
+ 0x11, 0xBB, 0x83, 0x5E, 0x30, 0xE4, 0xDB, 0x58, 0xAF, 0x1A, 0x5F, 0x91, 0xB2, 0x19, 0x1B, 0x42,
+ 0x29, 0xFB, 0xFA, 0x5F, 0xD2, 0xFE, 0x7D, 0x61, 0xA5, 0x0A, 0x62, 0x22, 0xFC, 0xC7, 0x84, 0xE1,
+ 0xED, 0xDF, 0x59, 0xAE, 0xF3, 0xC7, 0x80, 0x0F, 0x3B, 0x42, 0xC0, 0xE4, 0xD5, 0x99, 0x4A, 0x42,
+ 0xDE, 0x2B, 0x46, 0xB5, 0x19, 0xED, 0x08, 0x19, 0xED, 0x35, 0x87, 0xE7, 0x54, 0xB8, 0xB9, 0xBD,
+ 0xDF, 0x38, 0x9A, 0x59, 0xE1, 0x07, 0xB7, 0xEC, 0x48, 0x9A, 0x58, 0x62, 0xA1, 0xD2, 0x92, 0xCA,
+ 0x39, 0x78, 0x14, 0x5B, 0x06, 0xFD, 0x4E, 0xC0, 0xB1, 0x70, 0xAE, 0x1E, 0x96, 0xE5, 0xDF, 0x34,
+ 0xBB, 0x19, 0x99, 0x08, 0x1C, 0xAF, 0x63, 0xE6, 0x0F, 0x7A, 0x40, 0xD7, 0xC3, 0x1E, 0x96, 0x97,
+ 0x92, 0x97, 0xD2, 0x37, 0x22, 0x58, 0xFE, 0x88, 0x3E, 0x3C, 0xB3, 0xA8, 0xAC, 0xC9, 0x6F, 0x87,
+ 0x61, 0x6F, 0xC4, 0x6A, 0xAC, 0x6B, 0x4D, 0x1F, 0xD1, 0x83, 0x8C, 0x7B, 0x62, 0x7B, 0x2D, 0xB9,
+ 0xD0, 0x14, 0x34, 0x55, 0xF2, 0x75, 0x3B, 0x4E, 0x5F, 0x63, 0x3A, 0x02, 0xF9, 0xC1, 0x4D, 0x2D,
+ 0x21, 0x22, 0x4B, 0xF1, 0x9A, 0x78, 0xCB, 0x39, 0x78, 0x9D, 0xEE, 0x9E, 0xE8, 0x9A, 0x55, 0x3F,
+ 0x59, 0xCD, 0x76, 0xB5, 0x0C, 0xCD, 0x52, 0x71, 0xB0, 0x73, 0x94, 0x92, 0x25, 0xE4, 0xE9, 0x53,
+ 0x36, 0x0F, 0x89, 0x99, 0x48, 0x41, 0x15, 0x83, 0xED, 0xC2, 0xD8, 0x17, 0x7B, 0x7E, 0x2A, 0x0C,
+ 0x7C, 0x89, 0x51, 0x8B, 0xC1, 0xC7, 0xEA, 0x46, 0x51, 0x50, 0xFF, 0x83, 0xA1, 0xEB, 0x84, 0x1A,
+ 0x4C, 0xCD, 0x4F, 0xB0, 0xFA, 0xF6, 0xE6, 0x56, 0xB5, 0x4C, 0x6E, 0x88, 0xCF, 0x88, 0x9A, 0x72,
+ 0xDA, 0xB2, 0x62, 0x4C, 0xE0, 0x5C, 0x49, 0x62, 0xCC, 0x21, 0x77, 0x45, 0xD4, 0xBE, 0xBD, 0x64,
+ 0xD4, 0xF5, 0x54, 0xDF, 0x60, 0x9F, 0x44, 0x07, 0x9D, 0x08, 0x07, 0xFB, 0x6F, 0x4F, 0x6B, 0x54,
+ 0x97, 0xAF, 0xC5, 0x29, 0xEC, 0x55, 0xD5, 0xD5, 0x72, 0x87, 0x6F, 0x50, 0xC2, 0xA7, 0xF7, 0x94,
+ 0xE8, 0x1D, 0xFA, 0x06, 0x1D, 0x52, 0xF9, 0x32, 0x5E, 0xC5, 0x6C, 0xD2, 0x3E, 0x70, 0xB7, 0x6C,
+ 0x23, 0x89, 0x32, 0x26, 0xE2, 0xFE, 0xEF, 0x04, 0x48, 0x15, 0x09, 0x50, 0xA4, 0xF5, 0x73, 0x28,
+ 0xCC, 0x60, 0x03, 0x66, 0xF8, 0x05, 0x51, 0xC6, 0x75, 0x4E, 0xB5, 0x9A, 0x72, 0x60, 0x8D, 0x35,
+ 0xFD, 0x60, 0x0F, 0x2F, 0xF4, 0x2D, 0x9F, 0x2B, 0x69, 0xB3, 0xC5, 0x16, 0x9B, 0xB6, 0xBF, 0x7F,
+ 0x66, 0xBA, 0x9C, 0xC5, 0x43, 0xFA, 0x55, 0xF4, 0xBC, 0x5D, 0x73, 0x6A, 0x3D, 0xC4, 0x72, 0xCD,
+ 0x8A, 0x7A, 0x7E, 0x75, 0xD2, 0x14, 0x10, 0xAB, 0xC6, 0xA8, 0x46, 0x4D, 0x25, 0xB9, 0x0F, 0xC5,
+ 0xAB, 0xE8, 0x78, 0x1C, 0xAE, 0xD9, 0x02, 0x7E, 0xC0, 0xA7, 0xE3, 0x34, 0x1B, 0x1D, 0x78, 0xF2,
+ 0x9B, 0xFA, 0x33, 0x57, 0x3A, 0x82, 0x93, 0x8A, 0xF6, 0xFC, 0x38, 0xB4, 0x71, 0x0A, 0x6A, 0x08,
+ 0x65, 0xB0, 0x16, 0x00, 0xA1, 0x88, 0xD6, 0x50, 0x4E, 0xF9, 0xA6, 0xFF, 0xE7, 0x9C, 0x28, 0xE4,
+ 0x79, 0x08, 0x50, 0x92, 0x3A, 0xF8, 0x57, 0x2E, 0x9A, 0x34, 0xF7, 0xE4, 0x4D, 0x5E, 0x92, 0x38,
+ 0x27, 0xAF, 0x85, 0xAF, 0x0A, 0x48, 0xA5, 0xB4, 0x9E, 0xB0, 0x8F, 0x34, 0xB2, 0xC6, 0x65, 0x65,
+ 0xBF, 0xC3, 0x8B, 0xDB, 0x76, 0xCA, 0x05, 0xA9, 0x9B, 0xC7, 0x3F, 0x34, 0x09, 0x3C, 0xAA, 0xFF,
+ 0x0D, 0xC8, 0xD7, 0xD1, 0x3E, 0xAC, 0xA3, 0x95, 0x69, 0x93, 0x37, 0x7A, 0xAF, 0xB2, 0xB1, 0x41,
+ 0x04, 0xA9, 0x1F, 0xBE, 0xAA, 0x2C, 0xF0, 0xB8, 0x48, 0x4C, 0x1B, 0x7D, 0x92, 0xF4, 0xFC, 0x45,
+ 0x01, 0xF5, 0x2F, 0x69, 0x82, 0x07, 0xAC, 0xEC, 0x4A, 0xA9, 0xE0, 0xED, 0xA6, 0x6D, 0xAD, 0x1D,
+ 0x43, 0xF0, 0x4E, 0x8D, 0x28, 0x1D, 0x3E, 0x4F, 0x4B, 0x6F, 0x4B, 0xAA, 0x2E, 0xF6, 0xA8, 0x83,
+ 0x86, 0xD5, 0x9E, 0x07, 0x76, 0x7C, 0x81, 0x68, 0x33, 0x87, 0xA9, 0xA7, 0x7D, 0x53, 0x3B, 0x0C,
+ 0xEC, 0xA1, 0x29, 0xDE, 0x16, 0xE6, 0x28, 0xFA, 0x97, 0x6F, 0xB4, 0xE4, 0x62, 0x67, 0xCA, 0xEB,
+ 0xC3, 0x4D, 0x06, 0xFD, 0x31, 0xB6, 0x06, 0x03, 0x32, 0x51, 0xCE, 0x76, 0x0E, 0x4A, 0x60, 0x16,
+ 0x13, 0x94, 0xE1, 0xB9, 0x3A, 0xDD, 0xCA, 0x11, 0x23, 0x55, 0xA1, 0x6C, 0x25, 0x17, 0x15, 0x24,
+ 0xE1, 0xEC, 0xB8, 0xF0, 0xF7, 0x34, 0x84, 0xFA, 0x49, 0x96, 0x83, 0x79, 0x18, 0x90, 0x29, 0xC0,
+ 0xD3, 0x07, 0x98, 0x17, 0xA7, 0x25, 0x50, 0x93, 0x76, 0xB3, 0x14, 0x22, 0x19, 0x74, 0x8A, 0x02,
+ 0xA8, 0x8F, 0xD5, 0x8C, 0x77, 0xCB, 0x16, 0xC3, 0xC2, 0xEC, 0x1C, 0x19, 0x5C, 0x1A, 0xF2, 0x35,
+ 0x26, 0x69, 0x3F, 0xA9, 0xD9, 0xD5, 0x0E, 0xC3, 0x3E, 0x2E, 0x91, 0xA9, 0x1B, 0xA4, 0x6A, 0xA1,
+ 0x42, 0xCD, 0x3B, 0xF3, 0x1C, 0x7A, 0xF2, 0x75, 0x47, 0xE8, 0xA2, 0x26, 0x56, 0x47, 0x3C, 0x14,
+ 0x64, 0x82, 0xE7, 0x67, 0xB1, 0x25, 0x96, 0x7C, 0x21, 0x8D, 0xFB, 0x01, 0xF2, 0xAD, 0x86, 0x0F,
+ 0xD9, 0x3F, 0xE3, 0xED, 0xE6, 0x6A, 0x1F, 0x2B, 0x3A, 0xAD, 0x75, 0x05, 0xAA, 0x5C, 0xB0, 0x6C,
+ 0x6A, 0x18, 0x24, 0x91, 0x5B, 0x7A, 0x78, 0x20, 0xFD, 0x21, 0xBA, 0x22, 0xCB, 0x12, 0xEB, 0xD7,
+ 0x95, 0x7C, 0x1D, 0x08, 0xE4, 0xB6, 0xCD, 0xBB, 0x13, 0x5D, 0x8B, 0xC4, 0xA6, 0x03, 0xA6, 0x70,
+ 0xCF, 0x55, 0xEF, 0x94, 0x8B, 0xBB, 0x85, 0xB6, 0xFE, 0x45, 0x69, 0xD0, 0x9C, 0x18, 0xC8, 0x6B,
+ 0x2E, 0x5F, 0x03, 0x21, 0x29, 0xAA, 0x72, 0xAC, 0x22, 0x97, 0xBD, 0xE1, 0x5C, 0x8D, 0x58, 0xD5,
+ 0xF1, 0xA7, 0x86, 0x96, 0xEA, 0xB7, 0x25, 0x42, 0xBB, 0x2E, 0xE9, 0xB8, 0xAF, 0x76, 0xB4, 0xC5,
+ 0x56, 0xD3, 0x48, 0xE9, 0x5D, 0xBF, 0x5B, 0x2F, 0x7F, 0xF5, 0x0C, 0x62, 0x5F, 0x6B, 0x86, 0x06,
+ 0x2F, 0xA1, 0x19, 0xB1, 0x5E, 0x18, 0x45, 0xC8, 0xE3, 0xCB, 0xC8, 0x40, 0xFB, 0x3D, 0x71, 0x60,
+ 0xD2, 0x8E, 0x0E, 0x4B, 0x4A, 0x2C, 0x99, 0x7D, 0xDC, 0x02, 0x79, 0xE3, 0xDA, 0x0E, 0x93, 0xD3,
+ 0xE5, 0x4D, 0xB7, 0x05, 0xAF, 0xB8, 0x6F, 0xE5, 0x2B, 0x43, 0x80, 0x7D, 0x92, 0xE8, 0x45, 0x92,
+ 0xFE, 0x8F, 0x8A, 0x34, 0x20, 0x30, 0x84, 0xFE, 0x18, 0xE9, 0xC9, 0x53, 0x82, 0xA5, 0x61, 0x4C,
+ 0x29, 0x19, 0x62, 0xB6, 0xF2, 0x39, 0x77, 0x19, 0xA7, 0x03, 0x54, 0xD6, 0xA4, 0x8C, 0x7F, 0x2B,
+ 0xF6, 0x2C, 0x0D, 0x1E, 0x54, 0x11, 0x0D, 0x65, 0xB9, 0x1F, 0x0C, 0x27, 0x2E, 0xE7, 0xDB, 0xF6,
+ 0x4C, 0xB8, 0xF1, 0x1A, 0x36, 0x39, 0xBB, 0x23, 0x4C, 0xA5, 0x7A, 0xBE, 0x77, 0x56, 0x25, 0xB6,
+ 0xD3, 0x10, 0xA0, 0x2F, 0xE5, 0x43, 0xA3, 0x2C, 0xF0, 0x0E, 0x65, 0x76, 0x8C, 0x6E, 0x57, 0x8E,
+ 0xAD, 0xAC, 0x20, 0x25, 0x6F, 0x7C, 0xD9, 0xE0, 0x84, 0x2C, 0xFC, 0xB4, 0x4F, 0x16, 0xDA, 0xBD,
+ 0xDC, 0x5A, 0xF9, 0x1C, 0x66, 0x8C, 0xC8, 0x13, 0xBB, 0x27, 0xDD, 0x5C, 0x6E, 0x4B, 0x6B, 0xE6,
+ 0x49, 0x56, 0x04, 0xC0, 0xA3, 0x9B, 0xEF, 0x93, 0xBB, 0xE2, 0x22, 0x82, 0xFE, 0x01, 0x37, 0xBE,
+ 0x89, 0x5A, 0x6E, 0x07, 0x65, 0x40, 0x40, 0x86, 0xBA, 0x22, 0x7E, 0x82, 0x8A, 0xED, 0xDF, 0xE3,
+ 0xBF, 0x2D, 0x14, 0x50, 0x7B, 0xD7, 0x59, 0x95, 0xC7, 0x72, 0xD1, 0x2D, 0x4F, 0x7B, 0xB3, 0x97,
+ 0x90, 0x87, 0x7D, 0x82, 0x81, 0x2C, 0x58, 0x0A, 0xC8, 0xF4, 0xE2, 0x50, 0xDE, 0xA0, 0x9F, 0x16,
+ 0x78, 0x23, 0x2E, 0xF0, 0xE6, 0xE9, 0x30, 0xA8, 0xCF, 0xB4, 0x73, 0x2B, 0x02, 0xE3, 0xFB, 0xED,
+ 0xC2, 0xC2, 0x22, 0x8E, 0x53, 0x65, 0x3E, 0xBC, 0x9B, 0xAF, 0xD8, 0xCD, 0x87, 0x14, 0x39, 0xE9,
+ 0x47, 0xFA, 0x5A, 0x51, 0x4D, 0xBF, 0x5B, 0xAB, 0xEE, 0x42, 0xCE, 0x6B, 0x71, 0xDF, 0xEB, 0x6C,
+ 0xB5, 0xFB, 0xCB, 0x56, 0x2E, 0xEA, 0x1A, 0x8A, 0xD3, 0x8E, 0x7F, 0x88, 0x24, 0x1C, 0xD2, 0x6C,
+ 0x6D, 0x58, 0x49, 0x81, 0x9F, 0x05, 0x9D, 0x6F, 0x5F, 0xD9, 0x04, 0x5B, 0xC4, 0x3C, 0x9E, 0x72,
+ 0x6A, 0x3B, 0x21, 0xE8, 0x00, 0x31, 0xA9, 0xA8, 0xA9, 0x69, 0x06, 0xD0, 0x95, 0x46, 0xE8, 0x74,
+ 0xAF, 0xE6, 0xEE, 0x10, 0xE1, 0x0F, 0xE0, 0x2A, 0x0B, 0xEF, 0x13, 0x88, 0x39, 0xEA, 0x11, 0x50,
+ 0x38, 0x1E, 0x3F, 0xA4, 0x53, 0xCA, 0xAA, 0x4A, 0xF4, 0x9A, 0x4D, 0xDA, 0x0C, 0x76, 0xF5, 0x4D,
+ 0xD5, 0x25, 0x17, 0xEC, 0x48, 0x3D, 0x87, 0xBF, 0x29, 0xC2, 0x5F, 0xED, 0xD3, 0x05, 0x08, 0x32,
+ 0x1B, 0x51, 0x3D, 0xAE, 0xF7, 0x96, 0xCB, 0x27, 0xCA, 0x4F, 0x15, 0x70, 0x01, 0xC4, 0xD0, 0xAE,
+ 0xB9, 0x6C, 0x60, 0x9F, 0xAA, 0x64, 0xF5, 0x75, 0xB9, 0xBD, 0x86, 0xBF, 0x7E, 0x07, 0x28, 0x83,
+ 0xEB, 0x4F, 0x16, 0x22, 0xF0, 0xA1, 0x97, 0xAE, 0xB5, 0xA2, 0x1D, 0x89, 0x3A, 0xD0, 0xB6, 0x99,
+ 0x8B, 0x26, 0x22, 0x7D, 0xF6, 0x8B, 0x63, 0xC2, 0x7C, 0xE4, 0xBE, 0x4C, 0x4B, 0x37, 0xCF, 0x84,
+ 0x03, 0x6C, 0x33, 0x1C, 0x3A, 0xF4, 0x02, 0xA4, 0x8C, 0x28, 0x98, 0xCD, 0xDC, 0xE6, 0x38, 0x3B,
+ 0x48, 0xBD, 0x1A, 0xF1, 0x3B, 0xCF, 0xCF, 0xD1, 0x15, 0x01, 0xCD, 0xB1, 0xDD, 0x17, 0xEA, 0x59,
+ 0xF0, 0xA0, 0xAB, 0x24, 0xE3, 0xFA, 0x55, 0x3F, 0x7C, 0x8B, 0x4A, 0x26, 0xD6, 0x1E, 0xFF, 0x54,
+ 0x2E, 0xFC, 0xC4, 0x0C, 0x5F, 0x59, 0x68, 0x91, 0x38, 0x92, 0xEC, 0x47, 0x98, 0x26, 0xBE, 0x45,
+ 0x8F, 0x48, 0xC8, 0xCF, 0x56, 0x6C, 0xB0, 0x2C, 0x6C, 0xE3, 0x3F, 0x70, 0x14, 0xE9, 0xFE, 0x47,
+ 0xAE, 0x64, 0x38, 0x5C, 0x9B, 0xD1, 0xF7, 0x54, 0x4C, 0x0B, 0xB7, 0x89, 0xF8, 0xDA, 0xBE, 0x04,
+ 0x20, 0xCC, 0x9F, 0xAA, 0xDC, 0x5D, 0x96, 0x47, 0x42, 0x42, 0xFD, 0x3C, 0xC3, 0x24, 0xA4, 0x52,
+ 0x7D, 0x24, 0xC2, 0xEB, 0x76, 0x24, 0xF9, 0x4D, 0x03, 0xE2, 0x31, 0xCF, 0x81, 0xF4, 0x95, 0x40,
+ 0x43, 0x1D, 0xE7, 0x24, 0x16, 0x88, 0x23, 0xD1, 0xB0, 0x44, 0x67, 0x97, 0xF4, 0xE4, 0x55, 0x1E,
+ 0xA7, 0xC5, 0xF0, 0x9C, 0x54, 0xD2, 0xB4, 0x78, 0x17, 0x9A, 0xB3, 0xE0, 0x02, 0xD6, 0x00, 0x89,
+ 0x93, 0x05, 0x54, 0x4B, 0x62, 0xF3, 0xA6, 0xBA, 0xCB, 0xDC, 0x39, 0x1C, 0xB8, 0x11, 0xA6, 0xA0,
+ 0x2D, 0x54, 0x29, 0x52, 0x90, 0x1F, 0x2B, 0xBA, 0xF2, 0x60, 0x21, 0x48, 0xC9, 0x9F, 0xEA, 0x4D,
+ 0x9A, 0xE5, 0xC0, 0xE9, 0x63, 0xF8, 0xCC, 0x87, 0xA0, 0xC1, 0xA1, 0x13, 0x0C, 0x53, 0xC1, 0x65,
+ 0x70, 0x09, 0x26, 0x98, 0xAF, 0x7C, 0x95, 0xAA, 0x6E, 0xFB, 0xC5, 0xF2, 0xBC, 0x75, 0xCD, 0x20,
+ 0x25, 0xF7, 0xDD, 0x5F, 0xAA, 0x7B, 0x8D, 0xA2, 0x07, 0x6F, 0x4F, 0x02, 0x9E, 0x5D, 0xA9, 0x4E,
+ 0x6B, 0xA3, 0x3A, 0x43, 0xF4, 0xDD, 0x42, 0x77, 0x12, 0x02, 0x28, 0x59, 0xCB, 0xEE, 0xEC, 0xCC,
+ 0x2F, 0x07, 0xDE, 0x9C, 0xCD, 0x16, 0x5E, 0xDE, 0xF9, 0x45, 0xB2, 0xD3, 0x03, 0xF8, 0xC0, 0x5D,
+ 0x34, 0x10, 0x8D, 0x92, 0x27, 0x07, 0xBC, 0x31, 0x75, 0x4A, 0xFA, 0x7C, 0x4B, 0xA2, 0x59, 0x15,
+ 0x41, 0x6F, 0x47, 0x84, 0x71, 0x7C, 0xDE, 0x15, 0x70, 0x29, 0x12, 0x82, 0x5F, 0xC6, 0x87, 0x18,
+ 0xBA, 0xE5, 0xC1, 0xB4, 0xFA, 0x56, 0x8A, 0xAB, 0xA4, 0x5F, 0x45, 0x29, 0xE2, 0x19, 0x15, 0x54,
+ 0x0A, 0x66, 0x84, 0xDD, 0x74, 0x49, 0xFF, 0x8B, 0xA0, 0x9A, 0x72, 0x67, 0xBE, 0x18, 0x80, 0xD9,
+ 0x5C, 0x3E, 0x7B, 0x10, 0x07, 0x06, 0x3B, 0xA2, 0xC6, 0xC2, 0x6C, 0xDE, 0x2D, 0x61, 0xF2, 0x5F,
+ 0x81, 0x4F, 0x65, 0x40, 0x2B, 0x57, 0xF2, 0x68, 0x5B, 0xBB, 0xA8, 0xC2, 0xAE, 0xCA, 0x46, 0xAE,
+ 0x57, 0xD2, 0x64, 0xC5, 0xA1, 0xC3, 0x82, 0x27, 0x8F, 0xD3, 0x66, 0x6F, 0x91, 0xFB, 0x1A, 0xF8,
+ 0x8E, 0x4D, 0x6F, 0x16, 0x89, 0x74, 0x71, 0x82, 0x82, 0xFB, 0x27, 0x98, 0x08, 0xBD, 0x22, 0x92,
+ 0xF3, 0xB5, 0x03, 0xD7, 0x35, 0xBA, 0x44, 0x9C, 0x02, 0x7D, 0x62, 0xC9, 0xE4, 0x51, 0x72, 0x61,
+ 0x3D, 0xBD, 0xBE, 0x4C, 0x0B, 0x28, 0x0F, 0xF4, 0xC3, 0xB9, 0xA4, 0xDE, 0x64, 0xAC, 0xA0, 0x00,
+ 0x2A, 0x18, 0xB0, 0x66, 0x3E, 0xBB, 0xD4, 0xDA, 0x06, 0xE3, 0x35, 0x99, 0x73, 0x9C, 0xAB, 0x7C,
+ 0x69, 0x7A, 0x9B, 0x36, 0x67, 0x96, 0xC0, 0x69, 0x77, 0x50, 0x60, 0x5D, 0xCE, 0x4E, 0x9D, 0xBA,
+ 0xAB, 0xC0, 0x5E, 0x78, 0x5D, 0xDA, 0x91, 0x26, 0x28, 0x2D, 0xE1, 0x34, 0xC9, 0x52, 0x4B, 0x15,
+ 0x0B, 0xBC, 0x9F, 0xBC, 0x3D, 0x87, 0x08, 0x1C, 0x9F, 0x04, 0x32, 0x9D, 0x87, 0x88, 0xE2, 0xEF,
+ 0xF1, 0x13, 0x43, 0x6A, 0x5E, 0x1C, 0xB8, 0x02, 0xE6, 0xCB, 0x92, 0xB1, 0xB2, 0x10, 0x7C, 0xD7,
+ 0xC3, 0x58, 0x30, 0xBA, 0xD2, 0x72, 0x2C, 0xCE, 0x87, 0xAE, 0xC7, 0x2F, 0xD2, 0x33, 0xEB, 0x2E,
+ 0x85, 0xBF, 0xF5, 0x20, 0xB5, 0x0D, 0x00, 0x8B, 0x06, 0x3B, 0x94, 0x02, 0xE3, 0x3A, 0x3B, 0xF7,
+ 0xC1, 0x89, 0xC8, 0xED, 0x99, 0x02, 0x7C, 0xE9, 0xDF, 0xD0, 0x09, 0x72, 0x20, 0x74, 0xD2, 0x0B,
+ 0x5A, 0x91, 0x13, 0x9F, 0x6B, 0xD9, 0xD7, 0xA5, 0x7F, 0x8F, 0x9B, 0xB4, 0x02, 0x36, 0x02, 0x4B,
+ 0x50, 0x7B, 0x84, 0x38, 0x85, 0xD6, 0x83, 0x2F, 0x6B, 0xC9, 0x1F, 0x66, 0x93, 0xDB, 0xB4, 0x17,
+ 0x64, 0x1A, 0xAD, 0x0D, 0x25, 0x09, 0x9E, 0xBD, 0xE6, 0x17, 0xB6, 0x7F, 0xCE, 0xB1, 0x42, 0x12,
+ 0x20, 0x2D, 0x98, 0x45, 0x17, 0x9A, 0xE6, 0x0C, 0x26, 0xFC, 0x8C, 0x5D, 0x7B, 0xA5, 0x09, 0x05,
+ 0x93, 0xFF, 0xE8, 0x47, 0xFB, 0x51, 0x81, 0x73, 0x5A, 0xC6, 0x43, 0xC9, 0xB0, 0xEB, 0xC5, 0xC6,
+ 0x6C, 0x2B, 0xF9, 0x37, 0x91, 0x5B, 0x34, 0x55, 0x6F, 0x34, 0x72, 0xA5, 0xEF, 0xFA, 0x70, 0x8F,
+ 0x36, 0xF8, 0x29, 0x72, 0x93, 0xBE, 0x7C, 0xE1, 0x13, 0xC7, 0x90, 0x6A, 0xBE, 0xE1, 0x08, 0x60,
+ 0xD7, 0x46, 0xEC, 0xA6, 0xA6, 0xAA, 0x8B, 0x71, 0x02, 0x1A, 0x44, 0xA2, 0x7E, 0x74, 0x43, 0x99,
+ 0x08, 0x31, 0x24, 0x06, 0xB4, 0x49, 0xDC, 0x4C, 0x86, 0x25, 0x10, 0xE8, 0x50, 0x8F, 0x73, 0x56,
+ 0xAF, 0x87, 0xC5, 0xA0, 0x3B, 0xF9, 0xA2, 0xE2, 0xA7, 0x39, 0xF5, 0xAA, 0x09, 0x92, 0x38, 0x21,
+ 0xD6, 0xB2, 0x47, 0x6A, 0xA2, 0xD8, 0xBC, 0x22, 0x5B, 0xCC, 0x31, 0x06, 0x84, 0xC4, 0x11, 0x3E,
+ 0x3A, 0xED, 0x17, 0x3A, 0xC6, 0xEE, 0xFF, 0xC6, 0x39, 0x64, 0x37, 0x39, 0x43, 0xB3, 0x45, 0x5C,
+ 0xEA, 0xBC, 0x89, 0xE6, 0x43, 0xE7, 0x33, 0x06, 0xDE, 0x69, 0x58, 0xF2, 0x10, 0xEE, 0xDB, 0xF5,
+ 0x18, 0xEB, 0x71, 0x2E, 0x6A, 0x5F, 0x7D, 0x02, 0x46, 0xB1, 0x7A, 0x38, 0x2B, 0x69, 0x52, 0x6B,
+ 0x2A, 0xC0, 0x2F, 0xEF, 0x70, 0x10, 0xA9, 0x41, 0x26, 0x3A, 0xED, 0xE6, 0x5D, 0x8D, 0x60, 0xCF,
+ 0x51, 0x15, 0x70, 0xAF, 0xE7, 0x39, 0xEF, 0xBB, 0xC5, 0xB3, 0xE5, 0xB0, 0xE2, 0xE3, 0xEC, 0x7C,
+ 0xDF, 0xD0, 0x35, 0x40, 0x38, 0x2D, 0xF7, 0x34, 0x7D, 0xB7, 0x68, 0xF9, 0x4E, 0x5D, 0xED, 0x11,
+ 0xBB, 0xAE, 0x5A, 0xA3, 0xBE, 0x8F, 0x0B, 0x16, 0x05, 0x9F, 0x5B, 0xE6, 0xB8, 0xBE, 0xFF, 0x41,
+ 0x9D, 0x34, 0x56, 0xFA, 0x53, 0x50, 0x6F, 0x51, 0x3A, 0x67, 0x02, 0x62, 0x1A, 0x54, 0xC6, 0x70,
+ 0xDE, 0x87, 0x26, 0xCB, 0xE7, 0x81, 0x5C, 0xDF, 0xF7, 0x55, 0x76, 0xB4, 0x9A, 0x3F, 0x07, 0x17,
+ 0x46, 0xEE, 0xFB, 0x58, 0xC7, 0xFD, 0xFC, 0x1F, 0x8F, 0x1C, 0xC6, 0xE5, 0x1E, 0xC5, 0xA8, 0x51,
+ 0xF4, 0x3C, 0x99, 0xFD, 0x96, 0xFC, 0x5A, 0x5E, 0xD2, 0xD9, 0xCE, 0xED, 0xD0, 0x4B, 0xCE, 0x88,
+ 0xFD, 0xA1, 0xED, 0x79, 0x17, 0xEC, 0x09, 0x2B, 0xF0, 0x4B, 0xE2, 0xF3, 0x08, 0x0D, 0xBC, 0x09,
+ 0xF8, 0xA4, 0x5E, 0x2C, 0x80, 0x8A, 0x55, 0x23, 0xF5, 0x17, 0x19, 0x6F, 0x90, 0x94, 0x03, 0x9F,
+ 0xBA, 0x1F, 0x58, 0x93, 0xB0, 0xCA, 0xC7, 0xAF, 0x62, 0x58, 0xB2, 0x5B, 0x66, 0x0F, 0x67, 0x53,
+ 0x7F, 0xAB, 0xD8, 0xB7, 0x61, 0xEB, 0x78, 0x41, 0x30, 0x55, 0x50, 0xD6, 0xAA, 0xAA, 0x6F, 0x49,
+ 0x15, 0xEC, 0x4E, 0xB8, 0x7E, 0x36, 0xD1, 0x96, 0x06, 0x4B, 0x4D, 0xEE, 0xE6, 0x9E, 0x07, 0x5E,
+ 0x35, 0xAF, 0xE5, 0x1A, 0x1E, 0x0B, 0xA8, 0x86, 0xEC, 0x0D, 0x4C, 0x7A, 0xC4, 0x99, 0xAF, 0xE9,
+ 0x04, 0x50, 0x08, 0x99, 0x52, 0x17, 0x66, 0xB6, 0x7F, 0x8B, 0x3C, 0x5A, 0x79, 0x4F, 0x5D, 0xC8,
+ 0x9F, 0x41, 0x1F, 0xB5, 0x44, 0x94, 0xAC, 0xDE, 0xC8, 0x3B, 0x8A, 0xAF, 0x2C, 0x3D, 0xE2, 0xF3,
+ 0x73, 0x0C, 0x4D, 0x9D, 0xA4, 0x40, 0xE9, 0x16, 0xCD, 0xC1, 0xBF, 0xA0, 0x80, 0x40, 0x1A, 0x75,
+ 0x52, 0x79, 0xBE, 0xB1, 0x04, 0x0E, 0xFB, 0x1C, 0x12, 0x2C, 0x1A, 0xFF, 0xED, 0xE4, 0x51, 0xCA,
+ 0x62, 0x0B, 0xB9, 0x78, 0x7A, 0xFA, 0x6A, 0x45, 0xC4, 0x0B, 0xC1, 0xB9, 0x7F, 0xF3, 0x21, 0x4A,
+ 0x9C, 0xF6, 0x57, 0xDC, 0xB4, 0x14, 0x2F, 0x4A, 0x66, 0x0D, 0x5F, 0x19, 0x50, 0x65, 0xE1, 0x06,
+ 0x80, 0xF8, 0xDA, 0x39, 0x24, 0xB7, 0xAE, 0x39, 0xEE, 0x7D, 0x0E, 0xBC, 0xB5, 0xA7, 0xA2, 0xC3,
+ 0xCF, 0xE5, 0x73, 0x36, 0x72, 0xC4, 0xEC, 0xE8, 0x26, 0x5E, 0x21, 0xE8, 0x7D, 0x87, 0xCC, 0x27,
+ 0x85, 0xB0, 0x9E, 0x9F, 0xEC, 0x17, 0x13, 0xCD, 0x2C, 0x67, 0x06, 0x2C, 0x18, 0x12, 0xA7, 0xF5,
+ 0xB5, 0x33, 0xA0, 0xB9, 0x51, 0xAD, 0x1F, 0x3A, 0xA1, 0xB1, 0x97, 0x1C, 0x7C, 0x71, 0x16, 0x03,
+ 0x23, 0x7E, 0x61, 0xC9, 0x1F, 0xB2, 0xB0, 0x32, 0x7D, 0x60, 0x8E, 0x87, 0x96, 0x47, 0x1B, 0x3F,
+ 0x2D, 0x5A, 0x3D, 0x25, 0x3E, 0x46, 0xBD, 0x99, 0x6E, 0xB8, 0xFE, 0x8A, 0xE2, 0xB6, 0x80, 0xA5,
+ 0x6E, 0x67, 0xC6, 0x70, 0xF7, 0x49, 0x2C, 0x95, 0xE6, 0xA2, 0x96, 0x43, 0xDB, 0x5E, 0x8B, 0x2F,
+ 0x11, 0x97, 0xEF, 0xAD, 0x44, 0x68, 0x00, 0x0F, 0xB0, 0xCE, 0x95, 0x39, 0x63, 0x89, 0x14, 0x5B,
+ 0xDA, 0xA9, 0xB8, 0x0F, 0xCC, 0xF3, 0x16, 0x9E, 0xFF, 0x5D, 0xF0, 0x17, 0x2C, 0x0C, 0x57, 0xE3,
+ 0x26, 0x04, 0x45, 0x0F, 0xD4, 0xD7, 0x4E, 0x66, 0x1F, 0xCF, 0xA1, 0x11, 0x8C, 0x2B, 0x35, 0x66,
+ 0xC0, 0xE3, 0x69, 0xDB, 0xBE, 0x84, 0xB7, 0xDC, 0x2F, 0x8B, 0x57, 0xDA, 0x56, 0x1C, 0x22, 0x85,
+ 0x42, 0x11, 0x2B, 0x55, 0x9C, 0x2F, 0x9A, 0x6B, 0x1E, 0xF6, 0xB9, 0xBB, 0xBE, 0xE7, 0xE5, 0x87,
+ 0x6B, 0x7D, 0x52, 0xA3, 0x46, 0x9A, 0x07, 0xCF, 0xCF, 0x14, 0x4A, 0x47, 0xD4, 0x30, 0x98, 0xCF,
+ 0x98, 0x38, 0x44, 0x02, 0x61, 0x43, 0xB4, 0x97, 0xC8, 0xCA, 0x75, 0xD4, 0x3D, 0x82, 0x45, 0xE0,
+ 0x29, 0x2C, 0x32, 0x36, 0x36, 0xB4, 0xC2, 0xEA, 0x0C, 0x25, 0xC3, 0xC9, 0x68, 0x38, 0x59, 0xBA,
+ 0xD8, 0x8C, 0xC7, 0x44, 0x69, 0x2D, 0x32, 0xB7, 0x65, 0x6C, 0x17, 0x71, 0xC9, 0x63, 0xB7, 0x93,
+ 0xA0, 0x12, 0xE1, 0xEC, 0xF7, 0xB1, 0xAB, 0xF9, 0xCC, 0xA8, 0x6D, 0xA6, 0x10, 0x1D, 0x1F, 0xA6,
+ 0xF9, 0x44, 0x7A, 0x76, 0x1F, 0xD7, 0x70, 0xFE, 0x09, 0x54, 0xAD, 0x51, 0x2F, 0x45, 0x5D, 0xAB,
+ 0x1E, 0x32, 0x30, 0x3E, 0x63, 0x05, 0xD3, 0xF8, 0xA8, 0xC8, 0x59, 0x3B, 0x55, 0x25, 0xE7, 0x09,
+ 0xD9, 0xB8, 0xA1, 0xED, 0x5A, 0x29, 0x03, 0x79, 0x34, 0x3D, 0x01, 0x18, 0x4D, 0x86, 0xEA, 0xF9,
+ 0x28, 0x3A, 0x1B, 0xE1, 0x04, 0xE1, 0x56, 0xBF, 0xD0, 0x8B, 0xCC, 0x76, 0x1D, 0xCD, 0xDF, 0x4C,
+ 0xE8, 0x6C, 0x56, 0x57, 0x32, 0x91, 0x22, 0xCF, 0x0F, 0xC8, 0xA6, 0x95, 0xB2, 0xE0, 0x50, 0x63,
+ 0xD0, 0x9C, 0xCB, 0x70, 0xFF, 0x52, 0x84, 0xAC, 0xE8, 0xEA, 0x9B, 0x09, 0x30, 0x3E, 0x8C, 0x90,
+ 0x14, 0xFE, 0xB0, 0xC2, 0xCB, 0x95, 0x79, 0x85, 0x27, 0xE8, 0x39, 0xE5, 0x40, 0x60, 0xDD, 0x66,
+ 0x27, 0xC9, 0x26, 0xF2, 0x8B, 0xB6, 0xF1, 0x29, 0x20, 0x2D, 0x7E, 0x65, 0x5B, 0x41, 0xAC, 0xE1,
+ 0xF2, 0x86, 0x28, 0x76, 0xA4, 0xDC, 0xCA, 0x37, 0x61, 0x40, 0x53, 0xEF, 0x1B, 0xA3, 0xBD, 0x91,
+ 0xD2, 0x06, 0x43, 0x27, 0x54, 0xF2, 0xB1, 0x17, 0xD3, 0x24, 0xD4, 0x01, 0x4A, 0x7B, 0xCC, 0x4C,
+ 0x24, 0x97, 0xD6, 0x16, 0x16, 0xFB, 0xDD, 0x4A, 0x4E, 0x94, 0x2E, 0x73, 0x2B, 0x61, 0x77, 0x39,
+ 0x88, 0xD7, 0x42, 0x6E, 0xB8, 0xC8, 0xC8, 0xF2, 0xA8, 0xAD, 0x67, 0x33, 0xF0, 0xA4, 0x2D, 0x45,
+ 0xCB, 0x8C, 0x55, 0xFC, 0xB4, 0xC0, 0x91, 0xC8, 0xBE, 0x03, 0x49, 0x6D, 0x02, 0x1B, 0xC6, 0x93,
+ 0xB8, 0x2A, 0xE2, 0x6C, 0xE0, 0x84, 0x83, 0x3B, 0xB5, 0x7B, 0x64, 0x28, 0x14, 0xF6, 0xE6, 0x43,
+ 0xC9, 0x53, 0x8E, 0xC7, 0xDC, 0x29, 0x48, 0x4F, 0xAF, 0x85, 0x3B, 0x32, 0x9A, 0x77, 0x38, 0xE8,
+ 0x0A, 0x38, 0x29, 0x4B, 0x07, 0xF9, 0xDB, 0x84, 0x32, 0xFC, 0x05, 0xB4, 0xB4, 0xD5, 0xA7, 0xC3,
+ 0xAA, 0xEB, 0xBB, 0x78, 0x5B, 0x3F, 0x2D, 0x89, 0x99, 0x5E, 0x2F, 0x2F, 0x19, 0xF5, 0x5A, 0x04,
+ 0xE1, 0xE6, 0xFF, 0x3E, 0x1F, 0xAB, 0xE0, 0x11, 0xDF, 0x8D, 0x7A, 0xA4, 0xAC, 0x04, 0x3B, 0x66,
+ 0x69, 0x67, 0x8E, 0xEE, 0xA8, 0xDF, 0x81, 0x37, 0xE9, 0x40, 0x5C, 0x65, 0xF4, 0xD5, 0x8D, 0x17,
+ 0x09, 0x75, 0x8A, 0xA5, 0x62, 0x0F, 0x75, 0x9A, 0x37, 0xAF, 0xFF, 0x6A, 0xB9, 0x32, 0x82, 0x00,
+ 0x4C, 0x81, 0x7A, 0xE0, 0x6D, 0x24, 0x15, 0xEE, 0x35, 0xBD, 0x55, 0xB6, 0xB4, 0x38, 0x4D, 0x90,
+ 0x6D, 0x3C, 0x7C, 0x13, 0xB1, 0x9E, 0x52, 0x76, 0x51, 0xAA, 0xDD, 0x73, 0xEA, 0x0B, 0x90, 0xEC,
+ 0xCC, 0xF1, 0xF5, 0x4F, 0x05, 0x02, 0x8A, 0xB3, 0x90, 0xF5, 0x0E, 0x9B, 0x55, 0xC4, 0xFE, 0x11,
+ 0x12, 0x03, 0x19, 0xA3, 0x79, 0xD5, 0xB7, 0x59, 0x75, 0xE2, 0xA8, 0xA6, 0xCD, 0xFC, 0x23, 0x44,
+ 0x4D, 0x25, 0x85, 0xFF, 0xD5, 0x8D, 0x02, 0x55, 0x46, 0xE9, 0xF1, 0x3E, 0xFC, 0x08, 0x48, 0xFE,
+ 0x88, 0x7D, 0x4A, 0x4F, 0x91, 0x9C, 0x4B, 0x95, 0x5D, 0x33, 0xE4, 0xE0, 0x86, 0xA4, 0xE3, 0x17,
+ 0x8F, 0xA1, 0x51, 0x78, 0x4B, 0xDC, 0x7F, 0xF5, 0x59, 0xDF, 0xE6, 0x2A, 0x4A, 0xDE, 0x22, 0x94,
+ 0x57, 0x17, 0x3A, 0x94, 0x68, 0xBB, 0xF8, 0xED, 0x44, 0x24, 0x9D, 0xF8, 0xD2, 0xFE, 0x6D, 0xF1,
+ 0x5B, 0x8B, 0x08, 0x3B, 0x37, 0x6D, 0x17, 0x09, 0x52, 0x38, 0x64, 0xB6, 0xF2, 0xE5, 0x68, 0xD6,
+ 0xF9, 0x75, 0xF7, 0x7E, 0x1E, 0x9D, 0x29, 0x11, 0x02, 0xFF, 0xF7, 0x56, 0x22, 0x26, 0x5C, 0xE8,
+ 0x37, 0x51, 0x94, 0xA4, 0x11, 0x52, 0x65, 0xB9, 0x48, 0x3C, 0xBD, 0xC8, 0xDF, 0xE7, 0x37, 0x93,
+ 0xDA, 0x1F, 0x92, 0x65, 0x14, 0x66, 0x48, 0x39, 0x0D, 0x3F, 0xAF, 0xD3, 0x9D, 0x94, 0x29, 0xB9,
+ 0x5D, 0x8B, 0x01, 0x4B, 0x72, 0x0A, 0xBB, 0xCF, 0x27, 0xAE, 0x33, 0x71, 0xF3, 0x99, 0x48, 0x63,
+ 0x6B, 0x16, 0xA2, 0xAA, 0x29, 0x57, 0xA2, 0xDD, 0x64, 0x53, 0x9C, 0xF0, 0x89, 0x0F, 0xF3, 0x57,
+ 0xAB, 0x7B, 0x83, 0xCE, 0x8F, 0x20, 0x0D, 0x7E, 0x84, 0x07, 0xC0, 0x22, 0x0C, 0xE3, 0x67, 0x88,
+ 0x3E, 0x5C, 0xBA, 0x13, 0xFF, 0x39, 0x2A, 0x12, 0x20, 0x0F, 0x3F, 0xEE, 0x2D, 0xA9, 0xD8, 0x7B,
+ 0xA5, 0x64, 0xDB, 0xF7, 0x04, 0x67, 0xB9, 0x95, 0xD3, 0x0B, 0x2C, 0xA0, 0xB0, 0x3D, 0x6F, 0x7E,
+ 0x20, 0xBB, 0x07, 0x0D, 0xF1, 0xAF, 0xDC, 0x4D, 0x7C, 0xF8, 0x3A, 0x18, 0xAD, 0xF6, 0x9C, 0x3A,
+ 0x9A, 0xD6, 0x14, 0x42, 0x04, 0x93, 0xD2, 0x54, 0xC1, 0x0E, 0x91, 0xEE, 0xDC, 0x01, 0xA4, 0xCC,
+ 0x72, 0x4A, 0xD3, 0xEA, 0xF6, 0x3D, 0xBA, 0xCC, 0xAB, 0x68, 0x00, 0x0C, 0x18, 0x42, 0x7D, 0xA1,
+ 0xCB, 0x1D, 0x7B, 0x5C, 0xE3, 0x7E, 0x95, 0xB9, 0xA6, 0x38, 0xB6, 0x98, 0x27, 0x6E, 0xD1, 0x86,
+ 0x1C, 0x42, 0xC9, 0x8C, 0x4E, 0xBB, 0x66, 0x96, 0x3F, 0x75, 0x2B, 0xA7, 0x4E, 0x47, 0x6A, 0xFF,
+ 0x07, 0xE9, 0xC4, 0x48, 0x78, 0xA1, 0x8D, 0x40, 0x05, 0x3B, 0x62, 0x46, 0x71, 0x0A, 0x5D, 0x46,
+ 0x30, 0x91, 0x34, 0xDA, 0x27, 0xD6, 0x7B, 0x1F, 0xE8, 0x37, 0x9B, 0xDE, 0x0F, 0xEC, 0xF7, 0x19,
+ 0x4F, 0x64, 0xB5, 0xFD, 0x82, 0x96, 0x3B, 0x90, 0x3A, 0xB3, 0x1E, 0x51, 0xD7, 0xF4, 0x5F, 0xBA,
+ 0x31, 0x30, 0x41, 0x54, 0x16, 0xE9, 0x41, 0xC5, 0x89, 0x1E, 0x87, 0x78, 0xF1, 0x8C, 0xD8, 0x23,
+ 0xAE, 0x4B, 0x0D, 0xE9, 0x51, 0x67, 0x59, 0x5F, 0x42, 0x58, 0x98, 0x54, 0x4D, 0xB4, 0xB8, 0x9B,
+ 0x14, 0xE0, 0x39, 0xCD, 0xF6, 0xC8, 0xEF, 0x51, 0x3D, 0x0C, 0xEE, 0xDC, 0x11, 0x05, 0x99, 0xF8,
+ 0x67, 0x60, 0x3B, 0x32, 0x1B, 0xE6, 0xE2, 0xEE, 0x66, 0xD2, 0x76, 0x54, 0xA9, 0xD8, 0x76, 0xF7,
+ 0x21, 0x84, 0x0A, 0xD0, 0x25, 0x1E, 0xCE, 0x64, 0xAE, 0x30, 0x25, 0x11, 0xD2, 0xD1, 0xE6, 0x56,
+ 0x13, 0xAD, 0x5B, 0xBA, 0x4D, 0x2E, 0x5A, 0x25, 0x68, 0x4D, 0x70, 0xF4, 0x8E, 0xF2, 0x0C, 0xDC,
+ 0xE9, 0x69, 0x97, 0xB6, 0x82, 0x2F, 0xEA, 0x64, 0x1E, 0xC9, 0xD0, 0x10, 0xCE, 0x6A, 0xDE, 0x20,
+ 0x86, 0xB2, 0xD0, 0x08, 0xC9, 0x9D, 0x7C, 0x7E, 0xCE, 0x4C, 0x54, 0x17, 0x05, 0x53, 0xC3, 0x4D,
+ 0xB2, 0xBF, 0xD3, 0x95, 0x69, 0xAC, 0x61, 0x98, 0x0E, 0x08, 0xFD, 0xB7, 0x93, 0x39, 0x51, 0x66,
+ 0xB8, 0x9E, 0xA4, 0x84, 0x52, 0xCE, 0x35, 0xC9, 0x47, 0xFA, 0x79, 0x22, 0x1C, 0xD4, 0x94, 0x7C,
+ 0x23, 0xC7, 0xBF, 0xE1, 0x98, 0x7C, 0x9E, 0x2E, 0xF5, 0xD4, 0xEB, 0x1F, 0x12, 0x96, 0x91, 0x0A,
+ 0x11, 0xF9, 0x57, 0x9D, 0x47, 0xF3, 0xA6, 0x7E, 0xF9, 0x65, 0x80, 0xAF, 0xD2, 0xB3, 0x91, 0xD8,
+ 0x6C, 0x91, 0x7F, 0x7D, 0x21, 0xE5, 0x93, 0x64, 0xAB, 0x56, 0xC5, 0xD1, 0x8A, 0x5F, 0xF3, 0x68,
+ 0xB5, 0x05, 0x30, 0xE8, 0x62, 0xA9, 0x60, 0x68, 0x7E, 0xB5, 0x84, 0xC6, 0xEA, 0x19, 0x8D, 0x02,
+ 0x63, 0x41, 0x32, 0x01, 0xD4, 0x72, 0x10, 0xF3, 0x6A, 0x7F, 0x4A, 0xE2, 0x86, 0x28, 0xEE, 0x33,
+ 0x49, 0xCA, 0xE1, 0x37, 0x77, 0x55, 0x73, 0x4F, 0x81, 0x40, 0x03, 0x53, 0x3A, 0xB0, 0xFA, 0xEB,
+ 0x8B, 0x1E, 0xA8, 0x8D, 0x91, 0x31, 0x22, 0xA0, 0xEE, 0x4D, 0x82, 0x0F, 0x5A, 0xAC, 0x71, 0x33,
+ 0xC8, 0xCC, 0x86, 0x6E, 0x01, 0x4D, 0x36, 0x43, 0x55, 0x7A, 0xD7, 0x4D, 0x5D, 0x7E, 0xA9, 0x16,
+ 0xDF, 0xCA, 0x52, 0xEF, 0xAE, 0x54, 0xED, 0x3B, 0x7C, 0xE2, 0x46, 0x81, 0x30, 0x4E, 0xAC, 0x0F,
+ 0xD6, 0x7D, 0x32, 0x57, 0x47, 0x55, 0x5E, 0x10, 0xFE, 0x16, 0x18, 0xBE, 0x0D, 0x40, 0x0E, 0x20,
+ 0xCD, 0x40, 0xE4, 0xE1, 0x92, 0x05, 0xBC, 0xC7, 0xF3, 0xD9, 0x50, 0xE7, 0xF5, 0x1A, 0x93, 0xA8,
+ 0x89, 0xAB, 0xE8, 0x9F, 0x70, 0xC2, 0xA0, 0x3B, 0x2C, 0x54, 0xCA, 0x7E, 0x8E, 0x0C, 0x74, 0xA2,
+ 0xC7, 0x5A, 0x76, 0x4C, 0x3A, 0x53, 0x6F, 0x36, 0xF5, 0xA8, 0xAD, 0x92, 0xF7, 0xBF, 0xDC, 0xD7,
+ 0xBE, 0xC1, 0x10, 0x62, 0xB3, 0xC4, 0xD9, 0x43, 0x12, 0x06, 0x8E, 0x56, 0xB7, 0x83, 0x0D, 0x4B,
+ 0xE8, 0x7D, 0xE6, 0x1A, 0x6E, 0x3B, 0x1D, 0x3B, 0xD8, 0x44, 0x90, 0x48, 0x0C, 0xFA, 0x02, 0xEF,
+ 0x58, 0x3E, 0xA9, 0x0D, 0xEB, 0x12, 0x68, 0x19, 0x5D, 0x6A, 0xA7, 0x0F, 0xD8, 0xFB, 0xE4, 0x72,
+ 0xA3, 0xEC, 0x98, 0xD6, 0xB0, 0x42, 0x3C, 0xD1, 0x19, 0x83, 0xF0, 0x84, 0xA2, 0x24, 0xE3, 0x1E,
+ 0x45, 0x29, 0x9A, 0x1A, 0x06, 0x44, 0x56, 0x8A, 0xE0, 0xD5, 0x51, 0xBF, 0x03, 0x34, 0x51, 0x57,
+ 0xA1, 0xDE, 0x11, 0x6C, 0x1D, 0x3C, 0xC1, 0x08, 0x08, 0xE6, 0x85, 0xEF, 0x54, 0x06, 0x3A, 0x1D,
+ 0x9F, 0xF5, 0xD7, 0x89, 0x67, 0x7E, 0x1B, 0x4E, 0xCF, 0x7D, 0xD3, 0x3A, 0x76, 0x16, 0xE3, 0x34,
+ 0xC2, 0xC1, 0xB6, 0x7B, 0x88, 0x83, 0x74, 0x8B, 0xB7, 0x7C, 0x1F, 0x92, 0x34, 0xC6, 0xEB, 0x02,
+ 0x92, 0x0C, 0x89, 0x89, 0x30, 0x9D, 0x77, 0x3E, 0x0B, 0xD2, 0x27, 0x51, 0xD1, 0x97, 0x26, 0x8C,
+ 0x78, 0x94, 0xD8, 0x79, 0xA9, 0x78, 0x2E, 0xAC, 0x4F, 0x46, 0x43, 0x68, 0x1A, 0xB1, 0xDF, 0x95,
+ 0xCF, 0xBE, 0x00, 0x95, 0xF6, 0x50, 0xC9, 0xE5, 0x2F, 0x99, 0xC3, 0x7E, 0xFB, 0x7D, 0xE0, 0x06,
+ 0x71, 0xE5, 0x75, 0x91, 0x87, 0x90, 0x44, 0x0E, 0xD6, 0xC4, 0xDB, 0xD4, 0x25, 0xF3, 0x60, 0xF1,
+ 0x2F, 0x66, 0x61, 0xCE, 0xB4, 0xB2, 0x87, 0xF8, 0x3E, 0x75, 0x45, 0x88, 0x0D, 0x57, 0xC5, 0x00,
+ 0x61, 0x84, 0xDF, 0xAC, 0x7B, 0xC9, 0x48, 0x00, 0x8D, 0x76, 0x22, 0x63, 0xB2, 0xE4, 0xF3, 0xDC,
+ 0x25, 0xF2, 0xBB, 0x17, 0xC8, 0xA1, 0x54, 0xBA, 0x4D, 0xC1, 0xB8, 0x81, 0xE8, 0xF2, 0xFB, 0xBE,
+ 0x3E, 0x32, 0x81, 0xB5, 0x14, 0x8C, 0xB6, 0x6C, 0xB4, 0x52, 0xF0, 0xBC, 0xCD, 0xA8, 0x0D, 0x71,
+ 0x4B, 0x94, 0x75, 0x6F, 0x2C, 0xBF, 0xD4, 0xE6, 0xDE, 0xD2, 0x18, 0x04, 0x3C, 0xCC, 0xFC, 0x5B,
+ 0xB0, 0xF6, 0x55, 0x2D, 0x16, 0x68, 0x80, 0x62, 0xC7, 0xA6, 0x4F, 0xDA, 0x47, 0x13, 0x41, 0x45,
+ 0x00, 0x33, 0x97, 0x51, 0xAB, 0x0C, 0xF5, 0x5E, 0x18, 0x15, 0x78, 0x4C, 0xFC, 0x12, 0x51, 0x27,
+ 0x56, 0xFC, 0x2A, 0x00, 0x55, 0x1D, 0x31, 0xC7, 0xD9, 0x39, 0x66, 0x40, 0x59, 0x6B, 0x47, 0x38,
+ 0x2A, 0xDC, 0x46, 0xA1, 0x4A, 0x3C, 0x9C, 0x11, 0xE7, 0xAC, 0xF7, 0xA3, 0xEC, 0x2E, 0xBF, 0xA5,
+ 0x77, 0x97, 0x86, 0x49, 0x48, 0x35, 0xF3, 0x10, 0x47, 0x07, 0x3B, 0xEA, 0xC8, 0xFE, 0xE7, 0x79,
+ 0x49, 0x67, 0x99, 0xED, 0x87, 0xDA, 0x29, 0xC4, 0xB9, 0x0C, 0x6D, 0x52, 0x3A, 0xEE, 0x9B, 0xE7,
+ 0xAD, 0x51, 0x8D, 0x31, 0x77, 0xB4, 0xBE, 0x4B, 0xFD, 0xB4, 0xB9, 0x95, 0x23, 0xDC, 0x44, 0x4F,
+ 0x99, 0x5A, 0x9F, 0x95, 0x93, 0xC4, 0xAC, 0xCE, 0x77, 0x79, 0x33, 0x90, 0xF6, 0x1B, 0xA3, 0xCC,
+ 0x27, 0x2B, 0xAC, 0xA4, 0x5F, 0x62, 0x21, 0x09, 0x34, 0x66, 0x2B, 0x89, 0x3C, 0x95, 0xD9, 0xAD,
+ 0x90, 0x4F, 0xD3, 0x72, 0x53, 0x18, 0xC6, 0x30, 0x4C, 0x88, 0xAB, 0x05, 0x02, 0x59, 0x16, 0xD4,
+ 0x7A, 0x14, 0x7E, 0xCE, 0xCC, 0xAB, 0x9F, 0xB4, 0x2E, 0x01, 0xCF, 0x39, 0xE5, 0x7F, 0x19, 0x19,
+ 0x01, 0xA8, 0xD2, 0x7D, 0x6A, 0xF2, 0x02, 0x9F, 0xCC, 0x04, 0x38, 0x89, 0xFC, 0x82, 0x36, 0x43,
+ 0xFB, 0x83, 0x41, 0x6D, 0x78, 0xD7, 0xB2, 0x66, 0x4F, 0xBD, 0x98, 0xB7, 0x9F, 0x1A, 0x38, 0xB2,
+ 0xC9, 0x4E, 0xC3, 0xDC, 0x37, 0xFF, 0x26, 0x69, 0x10, 0x10, 0xCD, 0x86, 0x3C, 0x39, 0xE1, 0x5B,
+ 0x8F, 0x0F, 0xD9, 0x01, 0x0D, 0x3F, 0x0A, 0x05, 0x82, 0xFC, 0x9E, 0x50, 0xFA, 0x30, 0xF8, 0x99,
+ 0xCB, 0xA2, 0xDB, 0xC4, 0xBC, 0x81, 0x76, 0xD0, 0x26, 0xD2, 0x03, 0xAF, 0x76, 0x7E, 0x24, 0x1E,
+ 0x50, 0x2D, 0xDA, 0xBF, 0x04, 0x45, 0xDD, 0x94, 0x39, 0xC6, 0x91, 0x69, 0xA6, 0x3C, 0x3B, 0x4A,
+ 0x5A, 0xEB, 0xA3, 0x8A, 0x8B, 0xC4, 0x89, 0x4A, 0x1B, 0x28, 0x15, 0xE9, 0xE9, 0xD1, 0x84, 0xFF,
+ 0x6E, 0x23, 0x45, 0x67, 0xE8, 0x7A, 0x94, 0x1F, 0xFF, 0x5A, 0xBC, 0x98, 0xE7, 0xBB, 0x97, 0x14,
+ 0x8B, 0x15, 0x07, 0xFB, 0x97, 0x42, 0xF8, 0xF5, 0xE7, 0x5A, 0xA2, 0xDD, 0xCC, 0xC0, 0xEB, 0x32,
+ 0x5D, 0xCB, 0x64, 0xFB, 0x99, 0x57, 0x88, 0xCA, 0x06, 0xEA, 0x6C, 0xDA, 0x40, 0xF1, 0x1B, 0x67,
+ 0x84, 0x99, 0xBF, 0xC1, 0xDB, 0x5C, 0x7B, 0x97, 0x2D, 0x10, 0x2D, 0xD6, 0x3D, 0xB7, 0x03, 0xE4,
+ 0xF9, 0x60, 0x4F, 0x73, 0x31, 0xF9, 0x4E, 0xBE, 0x26, 0x2F, 0x68, 0xAC, 0xB9, 0x5B, 0x83, 0x44,
+ 0x37, 0xFE, 0xF1, 0xB6, 0x76, 0x0C, 0x05, 0xB7, 0xA9, 0xC6, 0xAE, 0x0D, 0xB9, 0xA6, 0xC0, 0xA7,
+ 0x20, 0x3E, 0x90, 0x31, 0xA5, 0x1B, 0xDE, 0x39, 0xA1, 0x78, 0x3F, 0xB5, 0x45, 0x96, 0x63, 0xBF,
+ 0x63, 0xBC, 0xD8, 0x1D, 0x14, 0xF3, 0xCA, 0x41, 0xB7, 0xBE, 0x6A, 0xFB, 0x76, 0x44, 0x44, 0x1B,
+ 0xA1, 0x55, 0x27, 0x76, 0x64, 0xA1, 0x9B, 0xCF, 0xED, 0x8A, 0xEB, 0x55, 0x3C, 0x58, 0xA0, 0xF7,
+ 0xD6, 0x79, 0x6F, 0xAE, 0x83, 0x77, 0xC2, 0x03, 0x09, 0x3E, 0xD7, 0xB3, 0x1B, 0x41, 0x67, 0xC9,
+ 0x43, 0xE0, 0x98, 0x03, 0xAF, 0x79, 0xE5, 0x99, 0x7A, 0x0F, 0x28, 0x75, 0x75, 0x0B, 0xC4, 0x42,
+ 0x83, 0xD5, 0x16, 0x09, 0x7B, 0x0E, 0x4A, 0x4E, 0xC9, 0x24, 0x74, 0x16, 0xFF, 0xE7, 0x00, 0x59,
+ 0xB5, 0xE4, 0x3C, 0x8C, 0x63, 0xEA, 0x53, 0x7C, 0xB9, 0x63, 0xDB, 0x08, 0x80, 0x71, 0x8F, 0x08,
+ 0x9A, 0xA3, 0x9A, 0xFD, 0xD7, 0x96, 0x52, 0x5D, 0xB5, 0xF7, 0xE8, 0xAB, 0x4C, 0xAA, 0x39, 0x2D,
+ 0x72, 0x77, 0x9A, 0xB5, 0x3C, 0xF3, 0x3A, 0x0A, 0xE2, 0x3A, 0x79, 0x04, 0xCE, 0xE9, 0x68, 0x75,
+ 0xC8, 0xBE, 0x14, 0xEC, 0x46, 0x36, 0x34, 0x5A, 0x0C, 0xB1, 0xD2, 0x19, 0x82, 0x1E, 0xAC, 0xA7,
+ 0x4D, 0xBE, 0xBE, 0x44, 0xE2, 0x42, 0x51, 0x23, 0xB8, 0x61, 0xC4, 0x9F, 0x7C, 0xD5, 0x1B, 0xB4,
+ 0xD8, 0x4E, 0xA7, 0x65, 0xCB, 0xC0, 0x93, 0xE0, 0x98, 0x7E, 0x73, 0x1A, 0x40, 0x04, 0x8D, 0x56,
+ 0xEF, 0x69, 0x69, 0x3C, 0x07, 0xBD, 0x65, 0x25, 0xB3, 0x20, 0x8A, 0x81, 0x69, 0xE2, 0x1D, 0x40,
+ 0xF4, 0x69, 0x06, 0x83, 0xAD, 0xC5, 0x8E, 0xDD, 0xDC, 0x38, 0xC3, 0xF4, 0x58, 0xAF, 0x8D, 0x2A,
+ 0x23, 0x39, 0x33, 0x64, 0x10, 0xA8, 0x7D, 0x97, 0x41, 0x05, 0x5E, 0x26, 0x74, 0x86, 0xEB, 0x06,
+ 0xFC, 0x77, 0x47, 0xF8, 0x20, 0x09, 0x07, 0xF9, 0xE4, 0x17, 0x06, 0x73, 0xFD, 0xED, 0xFC, 0xF7,
+ 0x46, 0xD2, 0x4C, 0xBA, 0x40, 0x74, 0xB1, 0x1D, 0x7D, 0xEB, 0x70, 0x28, 0x51, 0x5C, 0x54, 0xAE,
+ 0xD9, 0xA9, 0x93, 0xA1, 0x91, 0x70, 0xA9, 0xA0, 0x97, 0x5C, 0x6F, 0xD0, 0x3E, 0x64, 0x4D, 0x6D,
+ 0xA7, 0xBD, 0x2D, 0x5E, 0xD4, 0x17, 0xD3, 0x3C, 0xFB, 0xDA, 0xF6, 0xCD, 0x56, 0x1C, 0x02, 0x25,
+ 0xE1, 0x88, 0x61, 0xC0, 0x1D, 0xAB, 0x9D, 0x96, 0xF1, 0x52, 0x17, 0xED, 0xE3, 0xDA, 0x92, 0x65,
+ 0x81, 0xBA, 0x01, 0x7A, 0xDF, 0x12, 0x69, 0xA6, 0x4C, 0xC8, 0xB4, 0x64, 0xF9, 0x3D, 0x0D, 0x09,
+ 0x09, 0x6D, 0x85, 0xE2, 0xF5, 0x0F, 0x08, 0xDC, 0x06, 0x43, 0x92, 0xF8, 0x8C, 0xEC, 0x83, 0xDA,
+ 0x42, 0x1B, 0x12, 0x10, 0x45, 0xE8, 0xC5, 0x7F, 0xC5, 0x1B, 0xC7, 0xAA, 0xB3, 0x1D, 0x31, 0xFB,
+ 0xFA, 0x2E, 0xAF, 0xA5, 0x89, 0x8C, 0x5F, 0x73, 0xF3, 0xF3, 0x40, 0xBC, 0x8B, 0x14, 0x98, 0x91,
+ 0x24, 0x3D, 0x78, 0xE2, 0xBF, 0x9F, 0x62, 0x18, 0x42, 0xD8, 0xE6, 0x8F, 0x33, 0x2C, 0x17, 0x45,
+ 0x85, 0x81, 0xD6, 0xCC, 0x90, 0xF1, 0xBA, 0x05, 0x45, 0xAA, 0x35, 0x60, 0xF3, 0xE3, 0x9A, 0x4C,
+ 0xA4, 0x13, 0xC9, 0x68, 0xE0, 0x4D, 0xFD, 0xB9, 0x1B, 0x3A, 0xBD, 0x06, 0x9F, 0xD0, 0x73, 0xD6,
+ 0xBF, 0x10, 0x85, 0xEE, 0x98, 0x76, 0x10, 0x7C, 0x6F, 0xDD, 0x75, 0x19, 0x76, 0x16, 0x01, 0x69,
+ 0x67, 0x74, 0x2A, 0xB1, 0x66, 0x65, 0x97, 0x93, 0x3D, 0xE2, 0x0E, 0xD8, 0x35, 0x36, 0x21, 0x8A,
+ 0x60, 0x92, 0x30, 0x39, 0xA8, 0xA7, 0xA3, 0x5B, 0x45, 0x38, 0x0C, 0xE0, 0x0F, 0x4C, 0x1E, 0x39,
+ 0xA5, 0x9F, 0x4F, 0xEB, 0x90, 0x34, 0xEA, 0x81, 0x63, 0xFA, 0x19, 0x16, 0xCC, 0xE0, 0xAD, 0x32,
+ 0x32, 0xD4, 0x63, 0xB8, 0x41, 0xC1, 0xA0, 0x5B, 0x08, 0x0B, 0x47, 0x62, 0xC1, 0x7C, 0x5C, 0x1F,
+ 0xDF, 0xF1, 0xE5, 0x6D, 0x76, 0x77, 0x8D, 0xB5, 0x15, 0x67, 0x55, 0x9C, 0x9C, 0x0F, 0xE0, 0x77,
+ 0x11, 0x5D, 0x6A, 0x3F, 0xD7, 0x8B, 0xC1, 0xBD, 0x33, 0x25, 0x1F, 0x7A, 0x32, 0xCE, 0x42, 0x2C,
+ 0xB3, 0xA8, 0x21, 0x4F, 0x32, 0x36, 0xFF, 0x22, 0x34, 0x07, 0x8C, 0x43, 0x7E, 0x0D, 0xDC, 0x36,
+ 0xB5, 0xB6, 0x4A, 0x87, 0x10, 0xBF, 0xAC, 0x1E, 0x22, 0x03, 0x5D, 0x99, 0x01, 0x38, 0x6B, 0xD4,
+ 0x79, 0x8B, 0x72, 0xE7, 0x9E, 0x09, 0x48, 0x87, 0x53, 0xD9, 0x49, 0x17, 0x11, 0x03, 0xA9, 0xB2,
+ 0x5D, 0xFC, 0xB7, 0xDA, 0x60, 0x73, 0x17, 0xDB, 0xD2, 0x5B, 0x85, 0xA3, 0x41, 0x56, 0x99, 0x4C,
+ 0xFF, 0xD6, 0x24, 0x50, 0xD2, 0x38, 0x3A, 0x8E, 0xA9, 0xE8, 0x81, 0xFE, 0x94, 0xA5, 0x8D, 0x0F,
+ 0x28, 0xF3, 0xD5, 0x0A, 0x60, 0x42, 0x57, 0x38, 0xA7, 0x1D, 0x8E, 0x24, 0x31, 0x2A, 0xBB, 0xEF,
+ 0xFF, 0x3B, 0x52, 0x41, 0x53, 0x84, 0x09, 0x2C, 0xD6, 0xB0, 0x29, 0x9C, 0x25, 0xC6, 0xCD, 0x3E,
+ 0x71, 0x47, 0x3A, 0x69, 0x8F, 0xA6, 0xD4, 0xA8, 0x3C, 0xAE, 0xE3, 0x8D, 0x7B, 0x35, 0x42, 0x40,
+ 0xA7, 0xEB, 0xA3, 0x1F, 0x5F, 0x31, 0x33, 0x86, 0xD4, 0x69, 0x01, 0xC3, 0x21, 0x5B, 0x6F, 0x68,
+ 0x0E, 0x06, 0x00, 0x0C, 0x00, 0x08, 0x03, 0x0C, 0x01, 0x0F, 0x0E, 0x0A, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0x01, 0x06, 0x02, 0x04, 0x00, 0x03, 0x07, 0x05, 0x04, 0x07, 0x00, 0x03, 0x05, 0x01, 0x06, 0x02,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD
+ };
+
+ SimpleTransform((unsigned char*)KeyTransformArray, KEY_TRANSFORM_NR, in, out);
+
+ return;
+}
+
+SPC_INTERNAL void SAkepApi::ReverseKeyTransform(unsigned char* in, unsigned char* out)
+{
+ const unsigned char ReverseKeyTransformArray[] =
+ {
+ 0xE7, 0xFB, 0xEA, 0xC3, 0xC8, 0x16, 0x50, 0xB8, 0xCB, 0x4A, 0xDE, 0x7B, 0x44, 0x9F, 0x3D, 0x10,
+ 0xF6, 0x68, 0x36, 0x6E, 0xCB, 0x43, 0xD9, 0x84, 0xF1, 0xC3, 0xE5, 0x48, 0x49, 0x57, 0x9E, 0x47,
+ 0x23, 0x26, 0x6F, 0x0B, 0x97, 0x4E, 0x1A, 0xB3, 0x85, 0x71, 0x55, 0xCC, 0xCC, 0x61, 0xBD, 0x68,
+ 0x80, 0x3F, 0xDC, 0xA9, 0xFA, 0x50, 0x22, 0x88, 0xFB, 0xFE, 0x13, 0x58, 0xDF, 0xB2, 0x53, 0x71,
+ 0x8F, 0x0B, 0xDE, 0x3E, 0x96, 0xF4, 0xDF, 0xF8, 0xD5, 0x27, 0xE6, 0x40, 0x90, 0xA2, 0xB0, 0x5F,
+ 0x52, 0xF0, 0x0D, 0x33, 0xA7, 0xE7, 0x24, 0xF4, 0x8A, 0x19, 0x99, 0x6C, 0xF3, 0xDB, 0x58, 0x0F,
+ 0xCC, 0x3D, 0x33, 0xDE, 0xE1, 0x0C, 0xCD, 0x5D, 0xA8, 0x8D, 0x30, 0x2D, 0xE0, 0x08, 0xB6, 0x16,
+ 0xED, 0x76, 0x7B, 0x20, 0x17, 0x7C, 0xD8, 0x07, 0x56, 0x8A, 0x88, 0xC1, 0x7D, 0x58, 0x9C, 0xD0,
+ 0x8D, 0x33, 0xC5, 0xB5, 0x28, 0x99, 0x62, 0x60, 0x30, 0x18, 0x5C, 0x27, 0x53, 0x7D, 0x78, 0xD9,
+ 0x1D, 0x16, 0xC6, 0x4C, 0x2E, 0xDD, 0x1F, 0xC7, 0x8C, 0x69, 0x33, 0x25, 0x09, 0xC3, 0x31, 0x49,
+ 0x40, 0x87, 0xF5, 0x96, 0x08, 0x8B, 0x06, 0x02, 0xCC, 0x2B, 0xEB, 0x5C, 0xBC, 0xCB, 0xBB, 0x21,
+ 0xF7, 0xB4, 0x09, 0xED, 0x3A, 0xCD, 0x74, 0x32, 0xF8, 0xDB, 0x83, 0xA1, 0xCE, 0x2D, 0x52, 0x1F,
+ 0x82, 0x07, 0xC7, 0x22, 0x65, 0x95, 0x3E, 0x39, 0x67, 0x2F, 0xDA, 0x8C, 0x5D, 0x3C, 0x8E, 0xB2,
+ 0xA0, 0xA8, 0xAB, 0xD4, 0x36, 0xD4, 0x79, 0x2E, 0x88, 0x2D, 0x96, 0xFB, 0xEE, 0x49, 0x40, 0x7D,
+ 0x70, 0x5F, 0x61, 0xC5, 0x7B, 0xD8, 0x25, 0x77, 0xF2, 0xE6, 0x75, 0xB1, 0xBB, 0x73, 0x45, 0xCD,
+ 0xAC, 0x78, 0x8D, 0x4B, 0xAA, 0x44, 0xEC, 0xA3, 0xCA, 0x5B, 0x41, 0x15, 0x21, 0x9B, 0x91, 0xE7,
+ 0xFC, 0xE5, 0xA7, 0x8D, 0xBA, 0xFF, 0xB6, 0x86, 0x9A, 0x0D, 0xF2, 0x99, 0x1A, 0x10, 0xDF, 0x50,
+ 0xBF, 0xD3, 0x4A, 0x6D, 0xC9, 0xAC, 0x95, 0xF3, 0x7D, 0x06, 0x47, 0x69, 0xF6, 0x2F, 0x49, 0x94,
+ 0x71, 0x83, 0x5E, 0x46, 0x86, 0x4F, 0x85, 0xDD, 0x2D, 0x50, 0xF4, 0xE5, 0x02, 0x76, 0xD6, 0xB9,
+ 0x42, 0xBF, 0xEE, 0x1D, 0x98, 0x02, 0x9E, 0x93, 0x3A, 0x25, 0xAA, 0x37, 0xEF, 0x8C, 0xFA, 0x36,
+ 0xE8, 0xCF, 0xE8, 0x54, 0x3B, 0x77, 0xB1, 0x79, 0xD0, 0x72, 0xDC, 0xF0, 0xB6, 0xBB, 0xE6, 0x9A,
+ 0xA1, 0x74, 0x94, 0x57, 0xB3, 0xF7, 0x4F, 0x01, 0x0E, 0xD5, 0xC2, 0xCA, 0x23, 0xD7, 0x7E, 0x90,
+ 0x09, 0x3C, 0x89, 0x95, 0x35, 0x81, 0xF0, 0x12, 0x5B, 0xD6, 0x4B, 0xF6, 0xF9, 0xAB, 0x05, 0xB4,
+ 0xB4, 0x82, 0xE4, 0x0D, 0x91, 0x0A, 0x67, 0x14, 0x83, 0x01, 0xFF, 0x85, 0x4C, 0xA3, 0x8F, 0xDC,
+ 0xFE, 0xDD, 0xBC, 0x06, 0x34, 0x3B, 0x35, 0x59, 0xB1, 0x81, 0x3D, 0x31, 0x54, 0xC5, 0x86, 0x35,
+ 0xFD, 0x39, 0x98, 0x0E, 0x3E, 0x66, 0x45, 0xE2, 0xD1, 0x63, 0x43, 0x9E, 0x04, 0x0B, 0x92, 0x1E,
+ 0xB9, 0x8E, 0xFD, 0x11, 0xA0, 0x19, 0x9C, 0x18, 0x51, 0xEB, 0xBD, 0xE6, 0xFD, 0x9A, 0xAE, 0x64,
+ 0x53, 0x2C, 0x32, 0xB0, 0xFC, 0x14, 0x5F, 0x2F, 0xA2, 0xB0, 0xC6, 0x3D, 0xA9, 0x65, 0x11, 0x9F,
+ 0x6E, 0xF8, 0xBF, 0xFF, 0xB8, 0x10, 0xFA, 0xF1, 0x12, 0x8C, 0xF5, 0x66, 0x2A, 0x2E, 0x76, 0x17,
+ 0x0D, 0x59, 0x25, 0x62, 0x6B, 0x63, 0x7F, 0x52, 0xF3, 0xF7, 0xEA, 0xDF, 0xA1, 0x59, 0xA3, 0x53,
+ 0x78, 0xEA, 0xEB, 0xAD, 0x40, 0x96, 0xAE, 0xC0, 0x57, 0x9B, 0x17, 0xAF, 0x0F, 0xBE, 0x75, 0xEE,
+ 0x19, 0x73, 0x6A, 0xBB, 0x8F, 0x47, 0x7C, 0x5A, 0xA5, 0xD1, 0xF3, 0x1A, 0x4B, 0x1B, 0x71, 0x30,
+ 0xA8, 0x1D, 0x21, 0xBC, 0x29, 0x23, 0xA7, 0x2B, 0xEF, 0xAE, 0xDD, 0x73, 0x4F, 0x2A, 0xDA, 0xE0,
+ 0xE0, 0x7A, 0x62, 0x3C, 0x9E, 0x46, 0xE3, 0x34, 0xB3, 0xB5, 0x32, 0xA6, 0x88, 0xC4, 0xB9, 0xB6,
+ 0xB3, 0x03, 0x6C, 0xF2, 0x1E, 0x74, 0x21, 0x80, 0x15, 0xED, 0xC0, 0x41, 0x85, 0x0C, 0x1A, 0xE1,
+ 0x72, 0x67, 0x7A, 0x4E, 0xF5, 0x1C, 0xA6, 0xA8, 0xAD, 0xD8, 0x0A, 0x9D, 0xA3, 0x15, 0x4C, 0x24,
+ 0x84, 0x5A, 0x70, 0x5E, 0x15, 0x93, 0x94, 0x70, 0x55, 0xAF, 0x18, 0x38, 0x1B, 0xD5, 0x65, 0x1B,
+ 0xA4, 0xCD, 0x07, 0x23, 0x58, 0x9F, 0xC8, 0x29, 0x73, 0x7F, 0x14, 0xA7, 0xC7, 0xD4, 0x5A, 0x98,
+ 0x37, 0x0C, 0x20, 0xD2, 0x52, 0xC2, 0xB8, 0x92, 0xA1, 0x95, 0x56, 0xC4, 0xA5, 0x68, 0x08, 0x83,
+ 0x00, 0x55, 0x3C, 0x7E, 0x13, 0xD7, 0xE9, 0xD7, 0xD3, 0x57, 0x4C, 0x09, 0x24, 0x6F, 0x80, 0x7C,
+ 0x89, 0x56, 0x69, 0x42, 0xBE, 0x54, 0x87, 0x56, 0xC3, 0x43, 0x27, 0xFC, 0x6F, 0x4E, 0xC8, 0x82,
+ 0xB0, 0xE7, 0x48, 0xFA, 0x42, 0x79, 0xE2, 0xB7, 0x03, 0x89, 0x01, 0xFD, 0x32, 0x48, 0x7F, 0xFE,
+ 0x28, 0x77, 0xC1, 0x6B, 0x11, 0x38, 0xA5, 0xA0, 0x28, 0x05, 0xCE, 0x55, 0xE3, 0x81, 0xE3, 0x2A,
+ 0xB7, 0x66, 0xC0, 0x05, 0x6D, 0x27, 0x02, 0xF5, 0x9D, 0x6C, 0xC7, 0xBE, 0x93, 0x2B, 0xE5, 0x63,
+ 0xD1, 0x7E, 0xC9, 0xEC, 0x9D, 0x13, 0x6A, 0x08, 0xED, 0x9A, 0xD2, 0xE4, 0x92, 0xEE, 0x5F, 0x28,
+ 0xFB, 0x64, 0x2F, 0x72, 0xFF, 0x41, 0xD6, 0x13, 0x1B, 0x94, 0x93, 0x8F, 0xC4, 0x5D, 0x0F, 0xA4,
+ 0x20, 0xC2, 0x4B, 0x03, 0x38, 0x22, 0x38, 0x45, 0xA9, 0x9C, 0xAF, 0x43, 0x51, 0x31, 0x97, 0xAE,
+ 0x8B, 0x6E, 0x72, 0xC9, 0xBD, 0x01, 0x0E, 0x6A, 0x2C, 0x41, 0x6B, 0x8B, 0xF1, 0x97, 0xB7, 0x78,
+ 0xB5, 0x5E, 0xDB, 0x8E, 0xC1, 0x1E, 0xA9, 0x3F, 0x82, 0x10, 0x60, 0xEB, 0xF2, 0x1E, 0xE2, 0x44,
+ 0x39, 0xE4, 0x1D, 0xC6, 0x30, 0x90, 0x04, 0x89, 0xE0, 0xC6, 0x11, 0xD3, 0xD2, 0x7A, 0xF0, 0x26,
+ 0x6C, 0xC0, 0xA4, 0x74, 0x61, 0x3E, 0x0F, 0xE9, 0xFE, 0xAB, 0x29, 0xE8, 0x00, 0x3A, 0x39, 0xCE,
+ 0xE4, 0x1F, 0xCE, 0xCB, 0xD9, 0x17, 0xCF, 0xD6, 0xCF, 0x0E, 0x7B, 0xA5, 0x12, 0x2C, 0x6D, 0x9C,
+ 0x98, 0xC5, 0xB5, 0xEF, 0xD7, 0xE1, 0x8E, 0xBD, 0xAA, 0xB9, 0x3F, 0xBA, 0x31, 0xC1, 0x2A, 0xC2,
+ 0x6D, 0x1C, 0x9B, 0xF7, 0x9F, 0xFC, 0x26, 0x7F, 0x3F, 0x70, 0x90, 0x87, 0xB1, 0x03, 0x18, 0x76,
+ 0x92, 0x48, 0x24, 0x0C, 0xA4, 0xB2, 0xAD, 0xC8, 0x1F, 0xD0, 0x36, 0x51, 0xF4, 0x63, 0xA6, 0xE3,
+ 0x7E, 0xB7, 0x5C, 0xD1, 0x80, 0x0B, 0xF8, 0x7A, 0x37, 0x79, 0x69, 0x00, 0xB2, 0x8A, 0x4D, 0x4A,
+ 0x4A, 0x0A, 0x64, 0x75, 0xAD, 0xBA, 0x54, 0x4F, 0x6E, 0x37, 0xBC, 0x65, 0xE8, 0x34, 0x04, 0xDA,
+ 0xD3, 0x46, 0xD2, 0x67, 0x7C, 0x26, 0x9D, 0x9B, 0x34, 0x5C, 0xF9, 0xF9, 0x84, 0xC9, 0xA0, 0xAA,
+ 0x3B, 0xDC, 0x06, 0x4D, 0x75, 0x2E, 0x64, 0x1C, 0xAF, 0xEC, 0x05, 0x0A, 0xDA, 0x46, 0x42, 0xEA,
+ 0xEF, 0x4E, 0x60, 0xAB, 0x20, 0x2B, 0x5E, 0xAC, 0x68, 0x47, 0x16, 0x2C, 0x6A, 0xBA, 0xD9, 0x19,
+ 0x91, 0xAC, 0x00, 0x04, 0xA6, 0x5D, 0xE1, 0xBF, 0xC4, 0x22, 0x12, 0xDB, 0xE2, 0x44, 0x59, 0x61,
+ 0xCA, 0x60, 0x84, 0xA2, 0x99, 0xB8, 0x5B, 0xD8, 0x35, 0x4D, 0x66, 0x97, 0xCA, 0x1C, 0xF9, 0xCF,
+ 0x4D, 0x8B, 0xEC, 0x8A, 0xDE, 0xE9, 0x77, 0x3A, 0xBE, 0xE9, 0xF1, 0x91, 0x62, 0x86, 0x6B, 0xD5,
+ 0x51, 0x14, 0x29, 0x3B, 0x45, 0x87, 0x5A, 0x5B, 0xB4, 0xD4, 0x07, 0x81, 0xA2, 0xD0, 0xF6, 0x6F,
+ 0x65, 0x04, 0x70, 0xEB, 0xF3, 0xBA, 0xB5, 0xFA, 0x5D, 0xF8, 0x00, 0x0A, 0x99, 0x35, 0x5A, 0x2D,
+ 0xDD, 0x03, 0x8E, 0x07, 0x6E, 0x90, 0xE5, 0x3C, 0x15, 0xB3, 0x21, 0xF4, 0x6F, 0x20, 0x2A, 0x77,
+ 0x74, 0x97, 0xAC, 0x46, 0x7D, 0x7E, 0x36, 0x25, 0x2B, 0x7E, 0xBF, 0x19, 0x29, 0xC9, 0xC1, 0xDE,
+ 0x0B, 0xA9, 0xF3, 0x6A, 0x1E, 0x96, 0x4F, 0x75, 0xF8, 0x85, 0x62, 0x14, 0x18, 0x32, 0xD2, 0xD2,
+ 0xFE, 0x70, 0xDD, 0x72, 0x51, 0x75, 0x5F, 0x5B, 0xFA, 0xB1, 0x6D, 0x83, 0x74, 0xCF, 0x76, 0xA2,
+ 0xB8, 0xFF, 0xA3, 0xE6, 0x42, 0x9B, 0x8C, 0x42, 0x49, 0xA8, 0xCE, 0x21, 0x19, 0xF7, 0x68, 0x99,
+ 0x08, 0x4D, 0xD7, 0x62, 0xC7, 0xB8, 0xBA, 0x6D, 0x10, 0xE6, 0x1B, 0x44, 0x45, 0x34, 0x65, 0xAE,
+ 0x33, 0xC4, 0xED, 0x51, 0xCA, 0x1B, 0x72, 0x3A, 0xCC, 0x75, 0x0A, 0xE9, 0x46, 0xBD, 0x30, 0x92,
+ 0xAC, 0xD5, 0xEC, 0x3F, 0xAF, 0xB7, 0x76, 0xCD, 0xAB, 0xF6, 0x41, 0x61, 0x24, 0x01, 0x62, 0x89,
+ 0x98, 0x68, 0xD4, 0x9B, 0x35, 0x63, 0x9E, 0xE7, 0x47, 0xD1, 0x9D, 0xEF, 0xF5, 0xC8, 0xFE, 0x5D,
+ 0x7B, 0xA3, 0xAE, 0xD1, 0x60, 0x66, 0xA4, 0x57, 0x8D, 0x26, 0x4D, 0xFE, 0xB8, 0x94, 0xF2, 0x04,
+ 0x37, 0xA1, 0x41, 0xA6, 0xD3, 0xA8, 0xD1, 0x98, 0xE1, 0x89, 0x6F, 0x08, 0xEB, 0xD3, 0xB3, 0x13,
+ 0x6E, 0x55, 0xDE, 0x8B, 0x40, 0x74, 0xC0, 0x35, 0x2F, 0x3A, 0x1A, 0xC7, 0xB4, 0x99, 0xEB, 0x18,
+ 0x06, 0xA5, 0xEA, 0x76, 0x32, 0x9D, 0x26, 0x0B, 0xD3, 0x09, 0xAD, 0xBC, 0x86, 0xEB, 0xAD, 0x28,
+ 0xDE, 0xE7, 0xAA, 0x0F, 0x87, 0x17, 0x2E, 0x63, 0xE0, 0x98, 0xF0, 0x66, 0xA0, 0xF2, 0xFB, 0xED,
+ 0xB1, 0x96, 0x16, 0x0D, 0xDD, 0x5E, 0x90, 0xF3, 0xE3, 0xBD, 0x60, 0x9F, 0xA6, 0x8F, 0xBF, 0x4A,
+ 0x12, 0x8F, 0xA5, 0xAF, 0xC2, 0xA9, 0x4E, 0xF6, 0xC2, 0x0C, 0x59, 0x27, 0x1F, 0x8A, 0x2C, 0x3E,
+ 0xA6, 0x58, 0x7D, 0xDC, 0x77, 0x23, 0x46, 0x9E, 0xAF, 0xB2, 0xE4, 0xBF, 0xBB, 0x1D, 0xA7, 0x38,
+ 0x2F, 0x5B, 0x28, 0xE0, 0xAD, 0x58, 0x3A, 0xBA, 0xB2, 0xFA, 0x4C, 0x7D, 0x3D, 0xA2, 0xD1, 0x2B,
+ 0x31, 0xFC, 0xF6, 0xDA, 0x38, 0xC0, 0x56, 0xB0, 0xCE, 0x41, 0x05, 0x7E, 0xB5, 0x5C, 0x51, 0x53,
+ 0x47, 0xAB, 0x1C, 0x1D, 0x61, 0xDC, 0x61, 0x1C, 0xC8, 0x31, 0xAF, 0x37, 0x16, 0x73, 0x24, 0xB9,
+ 0x19, 0xDE, 0x0B, 0xCF, 0x8C, 0xF0, 0x9B, 0x93, 0x78, 0x0D, 0x9C, 0x6C, 0x08, 0x68, 0x69, 0xF7,
+ 0xAA, 0x88, 0x5B, 0x43, 0x78, 0x6F, 0xC2, 0xBE, 0x6C, 0x5D, 0x52, 0x47, 0x47, 0x78, 0x8A, 0xD9,
+ 0x1F, 0x83, 0xBC, 0xB3, 0x94, 0xF9, 0xFD, 0x7A, 0x81, 0x6B, 0x11, 0xA7, 0x34, 0x5B, 0xD9, 0xAC,
+ 0x1E, 0x5F, 0x83, 0x30, 0xC5, 0x57, 0xF6, 0x1A, 0x4C, 0xFD, 0xF4, 0x91, 0x01, 0x91, 0x61, 0x70,
+ 0xFA, 0x15, 0x71, 0x85, 0x81, 0x53, 0x53, 0xC4, 0xCD, 0x64, 0x95, 0x87, 0xCE, 0x43, 0xB0, 0xEA,
+ 0x07, 0x79, 0xD5, 0xF5, 0x2F, 0x85, 0xB4, 0x79, 0x03, 0xD7, 0xE0, 0x48, 0xE5, 0x92, 0x45, 0x78,
+ 0x18, 0x02, 0x34, 0x4C, 0xA4, 0x50, 0xC3, 0x3D, 0x99, 0x76, 0x83, 0xD5, 0x36, 0x17, 0x36, 0xDB,
+ 0x2B, 0x3E, 0x84, 0x17, 0x27, 0x37, 0x88, 0xB5, 0x14, 0xA2, 0xBE, 0x9A, 0x72, 0xB2, 0x32, 0x05,
+ 0x50, 0x65, 0x77, 0xCC, 0x73, 0x88, 0x77, 0x4E, 0xDB, 0x00, 0x54, 0x3B, 0x2E, 0x71, 0x3F, 0x32,
+ 0xAE, 0xED, 0xF7, 0xB4, 0x8A, 0xB4, 0xE6, 0x34, 0xBE, 0xB7, 0x10, 0x24, 0xB0, 0xA8, 0x40, 0xC8,
+ 0xD0, 0x0F, 0x97, 0x1B, 0xDA, 0xA0, 0x28, 0x1F, 0x9A, 0x53, 0x13, 0x2C, 0xBA, 0xD8, 0x1D, 0x73,
+ 0xA1, 0xD9, 0xF5, 0x23, 0xAA, 0xA6, 0x82, 0x56, 0x1A, 0xDB, 0xED, 0x54, 0x9D, 0x04, 0xF1, 0xFD,
+ 0xBB, 0x1B, 0x87, 0xEE, 0x2B, 0x2E, 0x85, 0xA9, 0x06, 0x82, 0xDA, 0xF8, 0xDC, 0x55, 0xE4, 0xB8,
+ 0xF9, 0xF1, 0x55, 0x8D, 0x49, 0x7C, 0x39, 0xB2, 0x21, 0x43, 0x49, 0x09, 0xD6, 0x25, 0xB9, 0x03,
+ 0xF5, 0x21, 0x73, 0x12, 0x95, 0x43, 0x38, 0x31, 0x56, 0xD4, 0x69, 0x74, 0x9B, 0x79, 0xB5, 0x5A,
+ 0xE7, 0x56, 0x8B, 0xB7, 0x2D, 0x6A, 0xF8, 0x0E, 0x5C, 0xE9, 0x9F, 0x64, 0x7B, 0x4B, 0x3A, 0x82,
+ 0x2D, 0x63, 0x33, 0x6B, 0x0B, 0x3C, 0xE1, 0xCB, 0x4A, 0x8D, 0x5E, 0xD8, 0x90, 0xCC, 0x52, 0xAA,
+ 0xDF, 0x3B, 0x95, 0x8C, 0x06, 0x9F, 0x29, 0x9C, 0x44, 0xF4, 0x0D, 0x16, 0x10, 0x0E, 0x60, 0x1E,
+ 0x30, 0x20, 0xC9, 0x59, 0xC1, 0xFC, 0xC7, 0xCA, 0x07, 0x93, 0x45, 0x96, 0xA7, 0x4A, 0x05, 0x01,
+ 0x86, 0xCF, 0x0A, 0xA1, 0x7F, 0x91, 0x7A, 0x52, 0x54, 0xE0, 0x66, 0xE3, 0x33, 0xE3, 0x27, 0x40,
+ 0x42, 0x12, 0x8F, 0x69, 0xDF, 0xB1, 0xDC, 0x84, 0x6D, 0x4C, 0xCD, 0x29, 0xB6, 0xD5, 0x04, 0x6F,
+ 0x7E, 0x1A, 0x3D, 0xA5, 0x4A, 0x29, 0xB0, 0x8E, 0x09, 0xEA, 0x16, 0x58, 0x71, 0x3B, 0x67, 0x39,
+ 0x3F, 0x14, 0xCB, 0xCE, 0x1C, 0x79, 0x03, 0x02, 0xEF, 0xF0, 0x3C, 0xC6, 0x13, 0x87, 0x35, 0x22,
+ 0x2A, 0xE2, 0xBB, 0x94, 0x1D, 0xC3, 0xC6, 0x49, 0xE6, 0xE8, 0x5A, 0x2F, 0xE3, 0xEF, 0x01, 0xDF,
+ 0x23, 0x8B, 0x0E, 0x7F, 0x6D, 0xC5, 0x6C, 0x00, 0xE7, 0xF9, 0xC5, 0x41, 0x9F, 0x48, 0x1E, 0x8A,
+ 0xEC, 0x07, 0x25, 0xD7, 0xBC, 0x59, 0xA5, 0xD4, 0x6E, 0x69, 0x5D, 0xD0, 0xCC, 0x0F, 0x5F, 0x9D,
+ 0xCA, 0xCD, 0xE5, 0xD6, 0xE1, 0xEE, 0xA3, 0xA8, 0x4F, 0xD8, 0x64, 0x68, 0x30, 0x6A, 0x72, 0x7C,
+ 0x84, 0xF7, 0x11, 0x2A, 0x3C, 0x6B, 0x67, 0x60, 0x7A, 0x39, 0x93, 0xFB, 0x0E, 0x15, 0x2D, 0x50,
+ 0xDB, 0x5E, 0x39, 0x7B, 0x7A, 0x80, 0x8E, 0xC9, 0x02, 0xC6, 0x7F, 0x26, 0x2A, 0x40, 0x94, 0xE2,
+ 0x7D, 0xFE, 0x19, 0xAD, 0x3F, 0x3E, 0xEE, 0x5C, 0xBD, 0x92, 0x80, 0xDD, 0x11, 0xCB, 0xDA, 0x55,
+ 0xD2, 0x37, 0x8C, 0x90, 0xBF, 0x0C, 0x2C, 0xE8, 0x93, 0x4B, 0x75, 0xC5, 0x59, 0x63, 0xC7, 0x97,
+ 0x96, 0x80, 0xE9, 0x8F, 0x9C, 0x4B, 0xC1, 0xB6, 0xE8, 0x91, 0x09, 0xE1, 0x57, 0x22, 0x31, 0xFC,
+ 0xC4, 0x25, 0xD8, 0xC2, 0x8E, 0x1F, 0xD7, 0xE4, 0x82, 0x4E, 0x81, 0x5E, 0xEF, 0xE2, 0x18, 0xC3,
+ 0xFC, 0x48, 0xC6, 0xF9, 0x5C, 0xD6, 0x97, 0x0C, 0x3B, 0x6A, 0xD4, 0xEC, 0xBE, 0xE9, 0xB6, 0xA3,
+ 0x8D, 0x9E, 0xA4, 0xC1, 0x7C, 0xC4, 0xF3, 0x6E, 0xFD, 0xD0, 0x58, 0xA4, 0x4F, 0x44, 0x38, 0x15,
+ 0xEA, 0x5A, 0x92, 0xAB, 0x2C, 0xD0, 0x3D, 0x45, 0x0F, 0x9A, 0xBC, 0x11, 0xCB, 0xB7, 0xA1, 0x71,
+ 0x1C, 0x67, 0x98, 0xBB, 0xEC, 0x4D, 0x6B, 0xFF, 0xCA, 0x05, 0xA0, 0xA0, 0x50, 0x9A, 0xCF, 0x10,
+ 0x8B, 0xC3, 0x13, 0xBD, 0x44, 0xDF, 0xF1, 0xE5, 0xA2, 0xEE, 0x27, 0x88, 0x17, 0xB6, 0x9E, 0xF2,
+ 0xFF, 0xAC, 0xE2, 0xF1, 0x6C, 0x7F, 0xA9, 0x4B, 0x26, 0x22, 0x7C, 0x2E, 0x28, 0x0C, 0x7B, 0x95,
+ 0xFB, 0xC9, 0x4E, 0x06, 0xE4, 0xFF, 0x57, 0x33, 0x46, 0xC0, 0x02, 0x81, 0xAE, 0xB3, 0x0D, 0x86,
+ 0xE8, 0x62, 0x89, 0x20, 0x54, 0x64, 0xAB, 0xC0, 0x20, 0x52, 0xD6, 0x67, 0xFB, 0x89, 0x08, 0x36,
+ 0x14, 0xD2, 0x12, 0xD3, 0x0A, 0x86, 0x24, 0x80, 0xF4, 0xC8, 0x3E, 0x4D, 0xF2, 0x70, 0x00, 0xB1,
+ 0x51, 0xB9, 0x48, 0x4F, 0x66, 0x22, 0xD9, 0xF0, 0x42, 0x84, 0xA7, 0x5F, 0x23, 0xB9, 0x9C, 0x65,
+ 0x46, 0x7E, 0x3E, 0xB0, 0xB9, 0x5D, 0xA8, 0xE6, 0xA4, 0xDF, 0x25, 0x2D, 0x29, 0x30, 0xD4, 0x77,
+ 0x0F, 0xC5, 0x42, 0xB3, 0x31, 0xDD, 0x56, 0x9E, 0x7A, 0x78, 0x3B, 0x17, 0xBC, 0x5C, 0x4C, 0x7D,
+ 0x53, 0x88, 0x4E, 0xEA, 0x9B, 0xA0, 0x80, 0xF3, 0x29, 0x0B, 0x18, 0x62, 0x46, 0x44, 0x25, 0x3B,
+ 0xEE, 0x36, 0x23, 0x72, 0x3F, 0x2B, 0x17, 0xF5, 0xF1, 0xDC, 0xAC, 0x11, 0xF3, 0x4C, 0xAF, 0x53,
+ 0x58, 0xD9, 0xE0, 0x8A, 0xC3, 0x06, 0x72, 0x14, 0xD7, 0x0C, 0xA0, 0x8E, 0xFC, 0xC8, 0xE3, 0x73,
+ 0x1B, 0xEF, 0x0D, 0x6A, 0xB0, 0x55, 0x51, 0x61, 0x30, 0x07, 0x15, 0x7E, 0x10, 0xF7, 0x75, 0xB7,
+ 0xA5, 0xB5, 0x44, 0xFA, 0x92, 0xA8, 0x79, 0x74, 0x90, 0x2F, 0x4D, 0xD0, 0xE5, 0x6B, 0x50, 0xD1,
+ 0x96, 0x89, 0xF4, 0xA1, 0x8C, 0xE5, 0x62, 0x3A, 0x87, 0x5A, 0x13, 0x02, 0x08, 0x91, 0x7C, 0x5E,
+ 0xEA, 0x53, 0x8F, 0x85, 0x61, 0xC9, 0x98, 0xB5, 0x59, 0xFD, 0x0D, 0x38, 0xAB, 0xBE, 0x09, 0xB4,
+ 0x89, 0xF2, 0x15, 0x18, 0xB2, 0xBA, 0x1D, 0x16, 0xB8, 0x86, 0x12, 0x81, 0x20, 0xC9, 0xDC, 0xF0,
+ 0xFE, 0x79, 0xC0, 0x5C, 0x85, 0xED, 0x9B, 0xBD, 0x0F, 0xDB, 0x14, 0xFD, 0x41, 0xFC, 0xDB, 0xD7,
+ 0x9F, 0xE0, 0x41, 0x4A, 0x4A, 0x3C, 0x49, 0x27, 0xFD, 0x91, 0xF0, 0x48, 0x05, 0x59, 0xDF, 0x09,
+ 0x1A, 0x33, 0x32, 0xE9, 0x34, 0xCC, 0xA2, 0x05, 0x7B, 0x69, 0xA4, 0x79, 0x0E, 0xEC, 0x38, 0xF9,
+ 0x19, 0xD7, 0x16, 0xE1, 0x3E, 0x91, 0xD2, 0xBE, 0x1B, 0x8B, 0xDA, 0xD6, 0x5E, 0x22, 0x2C, 0xD2,
+ 0xB4, 0x26, 0x98, 0x57, 0xF6, 0xBE, 0xB8, 0xC8, 0x08, 0xBA, 0x21, 0xDA, 0xA3, 0x82, 0xBB, 0x78,
+ 0x5E, 0x84, 0x57, 0xF6, 0xAA, 0xB3, 0x7B, 0xFF, 0xFB, 0xE1, 0x5A, 0x01, 0xF7, 0x7D, 0x04, 0x83,
+ 0xB5, 0xFA, 0xA7, 0xD4, 0xAD, 0x4D, 0xC3, 0x13, 0x20, 0x13, 0x7E, 0x8B, 0xF9, 0x3C, 0xF2, 0xE8,
+ 0x68, 0x01, 0x74, 0xD9, 0x9C, 0x5E, 0x38, 0x1F, 0x7F, 0x2D, 0x01, 0xA7, 0x9A, 0x45, 0x1A, 0xB8,
+ 0x0A, 0x7C, 0xD1, 0xC7, 0x1D, 0xD6, 0x3F, 0xE0, 0xFC, 0x80, 0x6F, 0x26, 0x77, 0xBF, 0x36, 0x37,
+ 0x2B, 0x37, 0x99, 0x39, 0xEB, 0xA6, 0x2A, 0xBA, 0x02, 0x87, 0xD7, 0xCA, 0xEA, 0xEF, 0x1C, 0xF1,
+ 0x11, 0x62, 0x9C, 0x89, 0xC1, 0xE9, 0x3E, 0x63, 0x5B, 0xC9, 0x02, 0xAF, 0x43, 0xB0, 0x34, 0xA0,
+ 0x00, 0xF1, 0x40, 0x24, 0xC2, 0xBC, 0xB7, 0x5F, 0x61, 0x40, 0x39, 0x9C, 0x4E, 0x78, 0x97, 0xF7,
+ 0x67, 0x35, 0x76, 0x4E, 0xF0, 0xFA, 0xC5, 0x6F, 0x51, 0xF4, 0xF4, 0xBF, 0xD5, 0x55, 0xF9, 0x96,
+ 0xC4, 0x2C, 0xC5, 0xEC, 0x9D, 0xE4, 0xFD, 0x54, 0x2F, 0x7B, 0xB2, 0x2B, 0xC6, 0x86, 0x17, 0x8F,
+ 0x47, 0xA2, 0x01, 0x33, 0x3C, 0x7E, 0x9E, 0xC9, 0x22, 0x27, 0x71, 0x1C, 0xE4, 0xAE, 0xEA, 0x9A,
+ 0x65, 0x0D, 0x6D, 0xC5, 0x6F, 0x3F, 0xD9, 0xDE, 0xCD, 0x25, 0x3D, 0x6B, 0x57, 0xDB, 0x24, 0x55,
+ 0x4B, 0x72, 0x27, 0xAC, 0xA0, 0xEE, 0x0B, 0x44, 0x60, 0x51, 0xA6, 0xF2, 0x2B, 0x7C, 0x3B, 0x00,
+ 0x97, 0x55, 0xCB, 0x22, 0x71, 0x72, 0xC2, 0x90, 0x58, 0xEC, 0x92, 0x56, 0xB1, 0x94, 0xEF, 0x2A,
+ 0xFA, 0x1C, 0x6C, 0xAB, 0x24, 0x77, 0xF8, 0x20, 0x26, 0x63, 0xD4, 0xC2, 0x03, 0x24, 0x9B, 0xAE,
+ 0x6A, 0x39, 0x6F, 0x52, 0x22, 0x33, 0x85, 0x87, 0x9A, 0x12, 0xBB, 0xC0, 0x59, 0x9A, 0xD2, 0x3E,
+ 0x10, 0xBE, 0xA3, 0x0A, 0x30, 0x67, 0x93, 0xD5, 0x52, 0xD1, 0x64, 0x46, 0xC4, 0xCA, 0xF8, 0xF8,
+ 0xA7, 0x8D, 0x5F, 0x71, 0x02, 0x21, 0xE1, 0xE5, 0x66, 0x21, 0x0C, 0xBB, 0xB6, 0x2C, 0x11, 0xC6,
+ 0x8A, 0x16, 0x31, 0x10, 0x95, 0x56, 0xC1, 0x98, 0x95, 0x7A, 0x77, 0x60, 0xBB, 0xE4, 0xB2, 0x91,
+ 0x7F, 0xCF, 0x1F, 0x08, 0xDD, 0x4B, 0x69, 0x5A, 0x00, 0xB3, 0xD8, 0x5D, 0x3B, 0x26, 0x80, 0x25,
+ 0x99, 0xBD, 0xF6, 0x36, 0x8A, 0xA1, 0x1F, 0x9D, 0x9D, 0x73, 0x8E, 0xE7, 0xB8, 0x6D, 0xE7, 0xAD,
+ 0x75, 0x42, 0x8E, 0xEB, 0xAE, 0x18, 0x4A, 0x2F, 0xB5, 0xDA, 0xD1, 0xB6, 0xFE, 0x84, 0x0C, 0x04,
+ 0xDE, 0xEE, 0xB7, 0x21, 0x3A, 0x3A, 0xE3, 0x6E, 0x4A, 0xCC, 0xF6, 0x34, 0xD8, 0x9D, 0x5A, 0xC1,
+ 0x52, 0x54, 0x71, 0x69, 0xCB, 0xB4, 0x4E, 0xD8, 0x28, 0x1A, 0x87, 0x0C, 0xF8, 0xF9, 0x48, 0xA3,
+ 0x03, 0x15, 0x64, 0x2C, 0xD3, 0xBD, 0x28, 0x31, 0x65, 0x04, 0x9C, 0x42, 0x18, 0xCB, 0xC7, 0x7B,
+ 0x8B, 0xCA, 0x0E, 0x93, 0x6B, 0x94, 0xE8, 0x0E, 0x54, 0xA1, 0xCE, 0x0F, 0x0A, 0xDD, 0x93, 0x29,
+ 0x2D, 0x6A, 0x2E, 0x45, 0x93, 0x12, 0xBC, 0x3F, 0x9F, 0x47, 0x81, 0x70, 0xC0, 0xFB, 0x53, 0x28,
+ 0x76, 0xA6, 0xAA, 0xE3, 0xAC, 0xF7, 0x06, 0x58, 0x6E, 0x28, 0xF5, 0x3C, 0xE8, 0xA3, 0xF3, 0x86,
+ 0xB6, 0x1E, 0x83, 0xDC, 0x4F, 0x2D, 0xBD, 0xBC, 0x1E, 0xDE, 0xE0, 0x66, 0xA8, 0x37, 0x5C, 0x88,
+ 0xAA, 0x81, 0x46, 0x6D, 0xD4, 0x43, 0x90, 0xDD, 0x14, 0xE3, 0x16, 0x76, 0x68, 0x61, 0xC1, 0x32,
+ 0x34, 0x4C, 0x78, 0x80, 0x76, 0x8C, 0x7A, 0x7C, 0x9E, 0x56, 0x1E, 0x1E, 0x8E, 0x2E, 0x0A, 0x4D,
+ 0xAD, 0x00, 0xCE, 0x92, 0xA7, 0x10, 0xB3, 0xA8, 0xC4, 0x3D, 0x5B, 0x82, 0xE2, 0xD3, 0xAE, 0x3D,
+ 0x08, 0x44, 0xCA, 0x4C, 0x2A, 0x81, 0xB9, 0x4B, 0xC2, 0x4D, 0xF1, 0xCB, 0x60, 0x5D, 0x73, 0xFE,
+ 0xDC, 0xD6, 0xAC, 0xAA, 0x7F, 0x84, 0x83, 0xFB, 0x05, 0xE6, 0xE2, 0xED, 0xD0, 0xA1, 0xE8, 0x0D,
+ 0x43, 0xC7, 0xAD, 0xC4, 0x52, 0x35, 0x2F, 0xCE, 0xD9, 0x75, 0xF3, 0x40, 0xCD, 0x33, 0xF0, 0x7F,
+ 0x63, 0x50, 0xDA, 0xB9, 0x1F, 0x39, 0x73, 0x97, 0xFF, 0xA5, 0xFF, 0xDF, 0x11, 0x32, 0xCF, 0xFC,
+ 0xE7, 0x5F, 0x96, 0x99, 0x19, 0x7D, 0x0E, 0x30, 0x79, 0x5D, 0xAB, 0xEE, 0x2E, 0x88, 0x2A, 0x9B,
+ 0xD0, 0x06, 0x8A, 0x35, 0x58, 0x68, 0x5F, 0x75, 0x0B, 0x9F, 0xB1, 0x23, 0xAF, 0x8F, 0xA2, 0x64,
+ 0x07, 0x70, 0xC8, 0xDB, 0x94, 0xEC, 0x04, 0xD3, 0x19, 0xBF, 0xD5, 0x41, 0x82, 0x23, 0x13, 0x51,
+ 0x4F, 0x17, 0x8B, 0x5B, 0x23, 0x89, 0x40, 0xCC, 0x45, 0xA4, 0x3A, 0x94, 0x45, 0xCD, 0x70, 0x07,
+ 0x95, 0x6D, 0xD0, 0xA9, 0xFF, 0xB6, 0x41, 0x4F, 0x07, 0xD2, 0xED, 0x7A, 0xA9, 0xF2, 0xE6, 0xC3,
+ 0x54, 0x09, 0xC6, 0x15, 0x14, 0xDE, 0xC6, 0x67, 0xBF, 0xE7, 0x27, 0xA6, 0x8F, 0xEB, 0xB0, 0x06,
+ 0x1C, 0x6E, 0x85, 0x95, 0xF5, 0xEB, 0x31, 0xF4, 0xB1, 0x9E, 0x74, 0x68, 0xCE, 0xBA, 0xA5, 0x43,
+ 0x36, 0x74, 0x63, 0x0B, 0x97, 0xB9, 0x8D, 0xEF, 0x47, 0x90, 0x35, 0x03, 0x98, 0x09, 0xF5, 0xCF,
+ 0x6C, 0x64, 0xD8, 0x2E, 0xB7, 0xAB, 0xE9, 0x8D, 0x86, 0x4B, 0x8C, 0x6C, 0xFB, 0x70, 0x1D, 0x9F,
+ 0xC7, 0xC8, 0xE1, 0xE4, 0x32, 0x88, 0xDF, 0xA2, 0x03, 0x96, 0x48, 0xA4, 0x5B, 0xD6, 0x3D, 0x49,
+ 0x57, 0xED, 0xE2, 0x1D, 0x48, 0xD3, 0x05, 0x50, 0xA9, 0x83, 0xE6, 0x1A, 0x38, 0xAF, 0xD5, 0x19,
+ 0x6E, 0x5C, 0xC3, 0xA5, 0xB4, 0xFE, 0x60, 0xB1, 0x69, 0x49, 0xC0, 0x1B, 0x65, 0xA9, 0x62, 0x65,
+ 0x50, 0x6C, 0x6A, 0xE2, 0x67, 0x8D, 0xE5, 0x12, 0x37, 0x66, 0x20, 0x59, 0x99, 0xCC, 0x4F, 0x84,
+ 0xCF, 0x7D, 0x6B, 0x8C, 0x1B, 0x92, 0x42, 0x47, 0x82, 0x0F, 0x29, 0xB2, 0xE9, 0x66, 0x49, 0xCD,
+ 0xDB, 0xE5, 0xFA, 0x1B, 0xD1, 0x07, 0x2B, 0x73, 0xFE, 0xD2, 0x0E, 0xE3, 0x34, 0x14, 0x60, 0xC9,
+ 0xD0, 0x02, 0x0A, 0xAE, 0x47, 0xC3, 0xC7, 0x4C, 0x1E, 0x3F, 0x38, 0xA0, 0x67, 0x67, 0x15, 0xEA,
+ 0xF8, 0xA2, 0xA4, 0xF6, 0x62, 0xA5, 0x32, 0xD0, 0x8E, 0x76, 0x62, 0x1E, 0x9A, 0x45, 0x00, 0xC2,
+ 0x8D, 0xB5, 0x76, 0xA8, 0x4E, 0x2A, 0xDF, 0x2A, 0xD5, 0xC6, 0x5E, 0x2D, 0xD7, 0x5B, 0x4E, 0xD9,
+ 0x08, 0x96, 0x59, 0x9E, 0xE6, 0x03, 0xFE, 0x8B, 0xC4, 0x0C, 0xA9, 0xFD, 0x6F, 0x6E, 0x92, 0x13,
+ 0xAF, 0x48, 0x63, 0x80, 0x7E, 0x09, 0x6B, 0xE7, 0xC7, 0x70, 0x12, 0xB4, 0xEF, 0xE6, 0xEA, 0xED,
+ 0xDC, 0x1B, 0x16, 0xA3, 0x17, 0x4F, 0x91, 0xFF, 0x9E, 0x7C, 0x5F, 0xE8, 0x92, 0x4C, 0x87, 0x3B,
+ 0x0B, 0xC3, 0x65, 0x17, 0x9D, 0x27, 0x24, 0xF7, 0x06, 0x11, 0xE1, 0x55, 0x19, 0xE8, 0x81, 0xAC,
+ 0xBE, 0x49, 0x0D, 0x1F, 0x0A, 0x8D, 0xD9, 0x57, 0x9D, 0x00, 0xE4, 0xA1, 0xFE, 0xE3, 0x71, 0x19,
+ 0x5C, 0x29, 0xA2, 0x61, 0x1E, 0xA6, 0x89, 0x99, 0x95, 0x24, 0x00, 0xA2, 0xA3, 0xE9, 0xCA, 0x69,
+ 0x6D, 0x3A, 0xAE, 0x9A, 0x89, 0x0C, 0x74, 0x39, 0x23, 0xAA, 0xF1, 0x0F, 0x8C, 0x21, 0xBC, 0x03,
+ 0x36, 0xC9, 0x75, 0xE1, 0x36, 0xF7, 0x20, 0xC6, 0x82, 0x65, 0x53, 0xE5, 0x81, 0x7D, 0x8B, 0xC0,
+ 0x2A, 0x6B, 0x4C, 0xB6, 0x3B, 0xC0, 0x7C, 0x05, 0xF1, 0xBD, 0x84, 0x51, 0xFB, 0xB6, 0xC1, 0x23,
+ 0x51, 0x8A, 0xF5, 0xA9, 0xEE, 0x84, 0xF7, 0x72, 0x6C, 0x27, 0x25, 0x32, 0x88, 0x65, 0x62, 0xA6,
+ 0x0C, 0x3D, 0x89, 0xAF, 0xE9, 0xA3, 0x96, 0x47, 0x28, 0xF2, 0xAE, 0x45, 0xDF, 0x52, 0xC9, 0x20,
+ 0x46, 0xCF, 0x3C, 0x4B, 0xED, 0x7D, 0xD2, 0xE2, 0x3E, 0x73, 0x37, 0x24, 0x0E, 0x9D, 0x53, 0xF2,
+ 0x1E, 0x69, 0xDB, 0xB9, 0x06, 0xD4, 0x94, 0x0B, 0xFD, 0xAE, 0xB5, 0xAA, 0xDB, 0x16, 0x17, 0x85,
+ 0x97, 0x53, 0xE8, 0x82, 0xA5, 0x83, 0x99, 0xC3, 0x50, 0x72, 0x26, 0xBB, 0x8E, 0x15, 0x2B, 0x0C,
+ 0x23, 0x63, 0xCB, 0x4F, 0xCB, 0xE2, 0x02, 0xEE, 0x3A, 0x44, 0xE2, 0xDC, 0xC8, 0x27, 0x1B, 0x7E,
+ 0xAC, 0x1D, 0x5F, 0x09, 0x25, 0xFB, 0x11, 0x3D, 0x98, 0xF7, 0xFB, 0x7F, 0xD6, 0x4A, 0x20, 0x46,
+ 0xC4, 0x12, 0xFF, 0xC5, 0xC0, 0x9C, 0x2E, 0x87, 0xA0, 0x95, 0x2D, 0x0E, 0x7F, 0x7A, 0x67, 0x78,
+ 0xFA, 0x4D, 0xD3, 0xBA, 0x28, 0xCC, 0x4D, 0xFE, 0xAD, 0x46, 0xD6, 0xD3, 0x6C, 0x4B, 0x6B, 0x83,
+ 0x57, 0xCE, 0x52, 0xD4, 0x04, 0x43, 0xA0, 0x04, 0xB3, 0xE3, 0xAB, 0xB1, 0xE4, 0xCA, 0x94, 0x84,
+ 0x50, 0x30, 0xBE, 0x6C, 0x2E, 0x85, 0x3D, 0x54, 0x4D, 0xAB, 0xE0, 0x90, 0x94, 0x3C, 0xCE, 0x91,
+ 0xB4, 0x14, 0xB6, 0x6F, 0xA9, 0xDA, 0xD4, 0x9F, 0xDF, 0x5E, 0xCB, 0x41, 0x45, 0xF3, 0x54, 0x43,
+ 0xC5, 0xA8, 0xB4, 0x00, 0xE0, 0x4A, 0x8E, 0x21, 0x26, 0x5D, 0xEE, 0xD1, 0x01, 0xF5, 0xF3, 0x3E,
+ 0x06, 0x60, 0x32, 0xDF, 0xCA, 0x8C, 0x13, 0x71, 0x7E, 0x91, 0x69, 0xAB, 0x55, 0xE7, 0xA1, 0x28,
+ 0xF6, 0x54, 0xCF, 0xB7, 0x23, 0xB2, 0x61, 0x97, 0x05, 0x6D, 0x5A, 0x1C, 0x13, 0xD5, 0x91, 0x5A,
+ 0xF0, 0x10, 0x68, 0xCA, 0xD8, 0xEE, 0x33, 0x15, 0x47, 0x33, 0x75, 0xFC, 0x4C, 0xEB, 0xBD, 0x25,
+ 0xF2, 0xFF, 0x1F, 0x86, 0x16, 0x21, 0x80, 0x60, 0xB1, 0x5F, 0xDA, 0xDE, 0x0D, 0xB8, 0xAA, 0x62,
+ 0x86, 0x52, 0x86, 0x1D, 0x09, 0x74, 0xFC, 0xC7, 0xD8, 0x15, 0xA5, 0xF0, 0xDC, 0x77, 0x30, 0xB0,
+ 0x3B, 0x6A, 0x22, 0x29, 0xDD, 0x5E, 0x66, 0x2F, 0x56, 0xF9, 0x82, 0x2C, 0x40, 0xA6, 0xE4, 0x79,
+ 0x1B, 0x78, 0x40, 0x4D, 0x68, 0xB5, 0x0F, 0x26, 0x55, 0x85, 0x39, 0x65, 0x08, 0xED, 0x1A, 0x58,
+ 0xCD, 0x1A, 0x78, 0x3C, 0x7A, 0xD7, 0x2F, 0x42, 0x1D, 0x43, 0x83, 0xE9, 0x86, 0x1C, 0xAC, 0xF5,
+ 0xD3, 0x57, 0x36, 0x27, 0xF5, 0x0F, 0xCF, 0x70, 0x58, 0x56, 0xC2, 0xB8, 0x8F, 0x04, 0x45, 0x93,
+ 0x76, 0x66, 0x7B, 0x75, 0xA1, 0x5D, 0xDD, 0x66, 0xE7, 0x3C, 0x1D, 0x30, 0xA6, 0xBC, 0x7A, 0x53,
+ 0xAD, 0xA7, 0x14, 0xCC, 0x80, 0xE5, 0x6C, 0x5F, 0x64, 0x03, 0xC1, 0x31, 0x64, 0x42, 0xEC, 0x7A,
+ 0x64, 0x32, 0x29, 0x63, 0xB2, 0x51, 0xEC, 0x9D, 0x7C, 0x2D, 0x18, 0xC4, 0x79, 0x0A, 0x2E, 0xD2,
+ 0xA4, 0xAF, 0x93, 0x35, 0xD5, 0xD9, 0x6F, 0xD6, 0x42, 0xC4, 0x6A, 0x22, 0x93, 0x5D, 0xE9, 0xA4,
+ 0x0D, 0x87, 0xC2, 0x6A, 0x3E, 0x70, 0x29, 0x3F, 0x9F, 0xBC, 0x95, 0xCE, 0x2A, 0x79, 0x5B, 0xF1,
+ 0x81, 0xAC, 0x6A, 0xA5, 0x38, 0x39, 0x59, 0x95, 0xF4, 0x4A, 0x9B, 0x8F, 0xBE, 0xA1, 0x08, 0xC1,
+ 0xEA, 0xF6, 0xF6, 0xE0, 0x9C, 0x49, 0x35, 0x68, 0xE6, 0xFC, 0xD7, 0x16, 0x22, 0x70, 0xDC, 0x08,
+ 0x9A, 0xF0, 0xBF, 0x4A, 0x41, 0x8A, 0xB7, 0xE6, 0x38, 0xF8, 0x93, 0xB3, 0xB3, 0xFD, 0x3F, 0x02,
+ 0x31, 0x37, 0x99, 0x59, 0xDA, 0x79, 0x07, 0x1A, 0xDE, 0x9E, 0x01, 0x67, 0xB6, 0xA8, 0x8F, 0x38,
+ 0x90, 0xAD, 0x04, 0x3A, 0x61, 0x5C, 0x17, 0x40, 0x31, 0x1C, 0xBD, 0x96, 0x20, 0x44, 0x4B, 0x07,
+ 0xFF, 0x5C, 0x48, 0x4E, 0xC1, 0xF2, 0x3F, 0x18, 0x97, 0x98, 0x71, 0xCD, 0xC5, 0x7B, 0x2C, 0xBD,
+ 0x09, 0x2C, 0x12, 0x5B, 0x6E, 0xFC, 0x7F, 0x8C, 0xA8, 0xB1, 0xC9, 0x0D, 0x1F, 0x98, 0xC8, 0x06,
+ 0x34, 0x26, 0x02, 0xAD, 0xF3, 0x46, 0xBF, 0xDA, 0x19, 0x74, 0x56, 0x11, 0x71, 0x03, 0xA9, 0x2B,
+ 0x68, 0x2B, 0x35, 0x6E, 0x21, 0x25, 0x55, 0x98, 0xAF, 0xFA, 0xA7, 0xBC, 0xDE, 0x43, 0xA7, 0xBF,
+ 0x73, 0x77, 0xE0, 0x81, 0x42, 0x73, 0x92, 0x76, 0x2F, 0xB9, 0xC0, 0xF4, 0xBB, 0xF4, 0xB8, 0xFB,
+ 0x05, 0x35, 0x0E, 0x56, 0xD4, 0xB7, 0x7E, 0x49, 0xDD, 0xE2, 0xBA, 0x2E, 0x84, 0x28, 0x3B, 0xFA,
+ 0x30, 0x8D, 0xD2, 0x9C, 0x82, 0x72, 0x58, 0x50, 0x61, 0xF4, 0xDE, 0xEF, 0xEC, 0xC3, 0x13, 0x7D,
+ 0xA2, 0xEB, 0x34, 0x48, 0xC2, 0x0B, 0x1A, 0x88, 0xB0, 0x9F, 0x10, 0xF8, 0x07, 0x85, 0xBA, 0x94,
+ 0x72, 0xCD, 0xAB, 0x44, 0xFD, 0x88, 0xC6, 0x89, 0xCD, 0xE8, 0x87, 0xD8, 0x0B, 0xC8, 0xE3, 0xC8,
+ 0x8A, 0x4B, 0x9A, 0x10, 0x18, 0xEF, 0xF9, 0x33, 0xED, 0xA4, 0x88, 0x5C, 0x4F, 0xCE, 0x44, 0xB5,
+ 0x48, 0x39, 0x57, 0x0A, 0x90, 0x10, 0x78, 0x34, 0x41, 0xB8, 0xD1, 0x6B, 0x5A, 0x8F, 0x01, 0xE4,
+ 0x54, 0x9B, 0x6E, 0x5D, 0xE7, 0x6D, 0xEF, 0x14, 0x69, 0xD0, 0x3A, 0xEC, 0xE1, 0x9F, 0x24, 0xBE,
+ 0x9E, 0x5B, 0x6F, 0x7B, 0x50, 0x11, 0xB2, 0x12, 0xD1, 0xF1, 0x8B, 0xD5, 0xCC, 0x63, 0xC5, 0xDB,
+ 0xB1, 0x05, 0x2D, 0x9B, 0x7D, 0xF0, 0x4E, 0x77, 0x96, 0x58, 0xBB, 0xEB, 0xBF, 0xB0, 0x66, 0x5E,
+ 0xD8, 0xB0, 0xC6, 0x92, 0x7B, 0xB9, 0x3E, 0xDD, 0xF8, 0x59, 0xAA, 0x74, 0xA0, 0xCC, 0x33, 0xF9,
+ 0x49, 0x83, 0x1C, 0xCF, 0x97, 0x37, 0x19, 0x01, 0xE1, 0xB7, 0xB9, 0xA7, 0xD9, 0x22, 0x80, 0x8A,
+ 0x47, 0x75, 0x77, 0x8E, 0xC7, 0xBB, 0x4F, 0xB2, 0x7F, 0x51, 0xA3, 0x8D, 0x8B, 0x40, 0x9B, 0x36,
+ 0x9C, 0xB4, 0x18, 0x37, 0x2F, 0xEB, 0x2C, 0xCB, 0x5A, 0xEA, 0xB3, 0xD7, 0x99, 0x60, 0xF9, 0x52,
+ 0x41, 0x31, 0xD0, 0xF3, 0x0F, 0x3D, 0x8C, 0x6D, 0x90, 0xD3, 0x1F, 0x7C, 0xBA, 0xE5, 0xD6, 0x64,
+ 0x9D, 0xE5, 0xE3, 0x19, 0xC6, 0x90, 0xE8, 0x4A, 0xD4, 0x63, 0x36, 0x4E, 0x8A, 0x9F, 0x92, 0xA5,
+ 0x62, 0xE2, 0x62, 0x91, 0xDC, 0x52, 0x25, 0x38, 0x95, 0x32, 0x73, 0x5B, 0xBD, 0x33, 0xCB, 0xB9,
+ 0x79, 0x5E, 0x00, 0xC3, 0x9E, 0xB8, 0x46, 0xEA, 0x9F, 0x42, 0xC8, 0x06, 0x2E, 0xC2, 0x0A, 0x9E,
+ 0xFA, 0x5F, 0xDC, 0xFC, 0x92, 0x68, 0xD9, 0xCC, 0xD2, 0x1E, 0x91, 0x0A, 0x0E, 0xBF, 0x9D, 0xE9,
+ 0xC5, 0x9F, 0x64, 0xD5, 0x80, 0x1F, 0x7C, 0x34, 0x32, 0x2C, 0x49, 0x85, 0xF8, 0xAF, 0xA0, 0xE3,
+ 0x00, 0x86, 0x42, 0x83, 0x4A, 0x2A, 0xA0, 0x8C, 0xD9, 0xAB, 0x61, 0xED, 0x39, 0x13, 0xC4, 0xF5,
+ 0x57, 0x4E, 0x4F, 0x20, 0xB8, 0x72, 0x47, 0x2A, 0x59, 0x69, 0xD5, 0xDF, 0x6A, 0xDD, 0xBD, 0xFB,
+ 0x01, 0xA0, 0x88, 0x43, 0x57, 0x69, 0x92, 0x76, 0xEE, 0x2D, 0xCA, 0xBA, 0x22, 0x5D, 0xDA, 0xB8,
+ 0x99, 0x1D, 0x36, 0x2E, 0xE1, 0x86, 0x6A, 0xB5, 0x7A, 0x84, 0x8B, 0x98, 0x01, 0x28, 0xA9, 0xEB,
+ 0x4F, 0xBB, 0x96, 0x0E, 0x25, 0x5B, 0xA2, 0x30, 0xFF, 0xB2, 0xA4, 0xBB, 0xAA, 0xE2, 0x05, 0xD2,
+ 0x45, 0xD7, 0x03, 0x96, 0x19, 0x53, 0x6E, 0x82, 0x38, 0x5C, 0xF2, 0xD8, 0x71, 0x93, 0xA3, 0xB6,
+ 0xC9, 0x64, 0x55, 0xC6, 0x58, 0x5D, 0x05, 0x74, 0x5A, 0xE0, 0xE9, 0x8A, 0x5B, 0x0D, 0xB9, 0x50,
+ 0x82, 0xA1, 0x54, 0x7C, 0x4D, 0xAB, 0x5F, 0x04, 0xAA, 0x88, 0x14, 0xBE, 0x3D, 0xE4, 0xA1, 0x59,
+ 0xCB, 0x0B, 0x24, 0x7A, 0x44, 0xC2, 0xB4, 0xB1, 0xD6, 0x2F, 0x41, 0xA1, 0xA2, 0x8A, 0xB0, 0x58,
+ 0x1F, 0xC2, 0xF5, 0xE6, 0x8B, 0x4E, 0x1C, 0x9A, 0x85, 0x68, 0x56, 0xE0, 0x3A, 0x1B, 0x20, 0xD1,
+ 0x63, 0xC4, 0xA8, 0x51, 0xAD, 0x84, 0x1D, 0x5A, 0x79, 0x0D, 0xB7, 0xCD, 0x03, 0xA3, 0x91, 0xF0,
+ 0xAB, 0x00, 0x75, 0xD4, 0xE3, 0xBE, 0xE1, 0xAE, 0x47, 0x72, 0x9B, 0x92, 0xF4, 0x30, 0x70, 0xC5,
+ 0x02, 0xE9, 0x33, 0x3F, 0xBC, 0x17, 0xB0, 0x86, 0x63, 0x27, 0x29, 0x2B, 0x18, 0xED, 0x8F, 0xBD,
+ 0x97, 0x89, 0x76, 0x81, 0x1A, 0xB7, 0x66, 0xA6, 0x58, 0xAC, 0x9E, 0x65, 0xE7, 0x16, 0xDB, 0x02,
+ 0x23, 0x4B, 0xF6, 0xB3, 0xB5, 0x7E, 0x5B, 0x33, 0x10, 0x04, 0x5C, 0x78, 0x12, 0x0E, 0x02, 0x2C,
+ 0x7D, 0xA6, 0xD5, 0xF4, 0xF1, 0xC9, 0x44, 0x56, 0x1E, 0x45, 0x37, 0x8E, 0x6E, 0x2A, 0xD8, 0x57,
+ 0x2F, 0xB0, 0xC7, 0xA0, 0xA3, 0x6C, 0x09, 0x67, 0xA6, 0x85, 0x08, 0xA7, 0xE6, 0x95, 0x07, 0x3D,
+ 0xC7, 0xF0, 0x15, 0x69, 0x9B, 0x01, 0x32, 0x79, 0xF7, 0x8E, 0x68, 0x09, 0xB3, 0x27, 0x23, 0x84,
+ 0xA5, 0x94, 0x35, 0x7B, 0xEA, 0xD7, 0x0A, 0x1B, 0x06, 0x23, 0xDE, 0x87, 0x3F, 0x6F, 0x99, 0x42,
+ 0x8E, 0x5A, 0x65, 0x6F, 0x8D, 0x13, 0x60, 0x2D, 0x82, 0xD0, 0xBA, 0x1E, 0xDB, 0xDA, 0xD3, 0xB0,
+ 0x34, 0x0C, 0xA5, 0xF2, 0x7B, 0x2E, 0x70, 0x27, 0x19, 0xFD, 0xDB, 0x70, 0xC7, 0x6B, 0x4C, 0x75,
+ 0x2E, 0x96, 0x0D, 0x60, 0xEC, 0x8A, 0x76, 0xAC, 0x5E, 0xD1, 0x39, 0x21, 0x40, 0x43, 0xA7, 0x1D,
+ 0x80, 0xCE, 0x25, 0xC0, 0x98, 0xE5, 0x3A, 0x5D, 0x61, 0x6B, 0x5E, 0xC4, 0x1B, 0xE5, 0x6B, 0x99,
+ 0xF8, 0x30, 0xAD, 0x40, 0x9C, 0x80, 0xCD, 0xF1, 0xE7, 0xD4, 0x4D, 0xB2, 0x65, 0x4A, 0x89, 0xF9,
+ 0x0B, 0xCC, 0x1D, 0xDB, 0x8F, 0x2B, 0xEB, 0x36, 0xB2, 0xEE, 0xFD, 0xB7, 0xB1, 0xAC, 0x1B, 0x9F,
+ 0x4B, 0x43, 0x43, 0x39, 0x73, 0x9B, 0x18, 0xAD, 0xBB, 0x17, 0x7A, 0xBF, 0x59, 0x86, 0x81, 0x4B,
+ 0x3B, 0xBE, 0x2F, 0x9D, 0x36, 0xF0, 0x84, 0xF7, 0x6A, 0xDE, 0xAE, 0x23, 0xC0, 0x94, 0xCD, 0xFD,
+ 0x31, 0xD2, 0xBA, 0x05, 0x02, 0x4D, 0x20, 0xCF, 0xD0, 0x52, 0xE6, 0xE5, 0x67, 0xC1, 0xB1, 0xE2,
+ 0xF7, 0x82, 0x27, 0x2F, 0xBA, 0x4A, 0xCC, 0x31, 0x26, 0x47, 0xBC, 0x95, 0x46, 0x3F, 0xFA, 0xAA,
+ 0xEE, 0x51, 0x34, 0xC1, 0x13, 0xDE, 0x8D, 0x13, 0x60, 0xAE, 0x15, 0x7E, 0xD8, 0xD2, 0x37, 0x94,
+ 0xBE, 0x28, 0x57, 0x29, 0x6C, 0xE0, 0xA1, 0x4C, 0x51, 0x55, 0x19, 0x6D, 0x05, 0xDF, 0xCC, 0x47,
+ 0x90, 0x38, 0x18, 0xCA, 0x99, 0x39, 0xB9, 0x62, 0x3D, 0xA8, 0x69, 0xC9, 0x0A, 0x48, 0xF8, 0x45,
+ 0x89, 0xEB, 0x0B, 0x24, 0xDF, 0xB6, 0x2D, 0x1C, 0x50, 0x90, 0x52, 0xD7, 0xA9, 0xEA, 0xE1, 0xF6,
+ 0xA6, 0xDD, 0x8E, 0x07, 0x6F, 0x04, 0xA9, 0x68, 0x0C, 0x53, 0x65, 0xDA, 0x7C, 0x8F, 0xAF, 0xAF,
+ 0xF1, 0x15, 0x83, 0xA4, 0x54, 0x8D, 0x9A, 0x52, 0x0F, 0xDA, 0x59, 0x8F, 0x6D, 0x22, 0x3C, 0x73,
+ 0x06, 0x11, 0xE6, 0x08, 0xCB, 0x9C, 0xF4, 0x53, 0x6D, 0x66, 0x42, 0xDD, 0x26, 0xAA, 0xBF, 0x14,
+ 0x2C, 0xF9, 0x7C, 0xDC, 0xFF, 0x21, 0x50, 0x6B, 0xBC, 0xAF, 0x96, 0x41, 0xFA, 0x24, 0x98, 0xF8,
+ 0x9C, 0xC3, 0x29, 0xD9, 0x1C, 0xEA, 0x1A, 0x11, 0xF1, 0xF3, 0xCF, 0x4D, 0x2A, 0x35, 0x6F, 0x32,
+ 0x53, 0xB6, 0x9A, 0x17, 0x50, 0xE8, 0x6D, 0xFE, 0xA2, 0xB4, 0xD8, 0x0C, 0x08, 0xC3, 0xC0, 0x5E,
+ 0xFE, 0xA7, 0x09, 0xCB, 0x09, 0x1C, 0x40, 0x61, 0xFD, 0xFE, 0xD3, 0x54, 0x7D, 0x0C, 0x73, 0x90,
+ 0xC0, 0x41, 0x7B, 0x22, 0x61, 0xEC, 0xBD, 0x55, 0xCF, 0x8C, 0xE3, 0x12, 0xCA, 0x77, 0x40, 0x6C,
+ 0xA8, 0x49, 0xCE, 0xA8, 0xB9, 0xAE, 0xC4, 0x15, 0xE9, 0x95, 0x26, 0x44, 0x97, 0xAD, 0xD1, 0x5F,
+ 0x38, 0xF7, 0x94, 0xE1, 0xD6, 0xDF, 0xC6, 0xA9, 0xEF, 0xE8, 0x81, 0x00, 0x07, 0x54, 0xF4, 0x5C,
+ 0x3D, 0x29, 0x8B, 0x16, 0x75, 0xC6, 0x64, 0x1A, 0x56, 0xED, 0xF5, 0x93, 0x3E, 0xEC, 0x45, 0x7D,
+ 0x55, 0x21, 0x3E, 0x9C, 0xC1, 0x11, 0x17, 0xC2, 0xF2, 0x7A, 0xF3, 0x18, 0x83, 0x74, 0xFB, 0x10,
+ 0x71, 0x5D, 0xE4, 0xE7, 0x48, 0x12, 0x2B, 0x97, 0x74, 0xC5, 0xE0, 0x6E, 0x2B, 0xB6, 0xB3, 0x0D,
+ 0x7B, 0x31, 0x71, 0x7F, 0x56, 0xB5, 0x11, 0x49, 0xFC, 0x3B, 0x98, 0xEE, 0x62, 0xB5, 0x08, 0x71,
+ 0xD7, 0x06, 0x28, 0x63, 0x20, 0xE2, 0xD6, 0xA3, 0x5F, 0x14, 0x72, 0x9B, 0xC8, 0xFC, 0x78, 0x77,
+ 0x58, 0xFC, 0xC5, 0x4F, 0x7E, 0x97, 0x04, 0xB4, 0x41, 0x0F, 0x3C, 0xD6, 0xFB, 0xA7, 0x44, 0xC7,
+ 0x75, 0xA5, 0x31, 0xD0, 0xCD, 0xC1, 0x88, 0xE4, 0x0E, 0x1F, 0x12, 0x35, 0x35, 0x8C, 0x14, 0xD3,
+ 0xB1, 0x9A, 0xDD, 0x46, 0x78, 0xCA, 0x78, 0x03, 0x7D, 0x3C, 0x67, 0x66, 0x76, 0x6C, 0x22, 0x3E,
+ 0xD1, 0x91, 0x8C, 0xE8, 0x79, 0x16, 0xFB, 0x3C, 0x48, 0xF6, 0xBB, 0xDE, 0x93, 0x5A, 0xB4, 0xF3,
+ 0x0F, 0x34, 0xC8, 0xEC, 0x9D, 0x5C, 0x4E, 0xCE, 0x87, 0x24, 0x21, 0x0F, 0xF2, 0x4C, 0x2D, 0x72,
+ 0xB2, 0xD3, 0x66, 0x3A, 0x60, 0x30, 0x3E, 0x6A, 0xAC, 0xF5, 0xB3, 0xFA, 0x87, 0x83, 0x9E, 0xBC,
+ 0xF6, 0xA4, 0xED, 0xEF, 0x7F, 0x4B, 0x87, 0x8B, 0x7F, 0x70, 0x10, 0x89, 0xE4, 0x1E, 0x3F, 0x26,
+ 0x7E, 0xEF, 0x6E, 0x88, 0x4C, 0x77, 0xDC, 0x3B, 0x3B, 0xD5, 0xCE, 0x8D, 0xD9, 0x51, 0xEB, 0xAB,
+ 0x85, 0x10, 0x3A, 0x37, 0x37, 0x2C, 0x07, 0xC8, 0x67, 0x16, 0xF9, 0x80, 0x33, 0xF0, 0x49, 0x64,
+ 0xFF, 0x81, 0xC3, 0x0B, 0xC9, 0xA4, 0x7F, 0x48, 0xF9, 0xCF, 0x03, 0xFF, 0x77, 0xEF, 0xFE, 0x01,
+ 0xD4, 0x4F, 0x93, 0x1F, 0xB7, 0x46, 0xD0, 0x28, 0xF3, 0xBF, 0xB8, 0xA2, 0x74, 0xE7, 0x1A, 0x25,
+ 0xAC, 0x2D, 0x7D, 0xD0, 0xA7, 0x12, 0x1E, 0xDF, 0xBA, 0x86, 0xBF, 0xF6, 0x25, 0x90, 0xCF, 0x1C,
+ 0x97, 0xA4, 0x47, 0xE3, 0xAA, 0xB1, 0xD6, 0x88, 0x66, 0x15, 0xAE, 0x5B, 0x26, 0x19, 0x9A, 0x20,
+ 0x5A, 0x10, 0x77, 0xC0, 0x31, 0xDF, 0xFB, 0xE9, 0x50, 0xD1, 0xC9, 0x31, 0x14, 0x6B, 0xDC, 0x10,
+ 0x1C, 0x9F, 0x09, 0x54, 0x22, 0x31, 0x28, 0xF0, 0xE3, 0xC8, 0x6A, 0x93, 0x79, 0x53, 0xC2, 0x2B,
+ 0xD0, 0xF7, 0x06, 0xF4, 0x1D, 0xD4, 0x92, 0x97, 0x81, 0x1E, 0x1B, 0xAB, 0x49, 0x6D, 0x6B, 0x6C,
+ 0xAF, 0xC9, 0x59, 0xD8, 0x7E, 0x3C, 0xEB, 0xC7, 0x52, 0xE5, 0xC6, 0xA6, 0x78, 0x96, 0x78, 0x60,
+ 0xC1, 0x64, 0xDA, 0x59, 0x93, 0x10, 0x11, 0x48, 0xF7, 0x98, 0xA4, 0xB8, 0xF9, 0x91, 0xF0, 0x9F,
+ 0x79, 0x63, 0x24, 0xB5, 0x0E, 0x3A, 0x41, 0x8E, 0xBF, 0xD3, 0x85, 0x46, 0x0F, 0x84, 0x80, 0xC5,
+ 0x7A, 0x87, 0x00, 0xBD, 0xE7, 0xBD, 0x8A, 0xD1, 0x4A, 0xF8, 0x54, 0xD4, 0xC0, 0x56, 0x51, 0x5F,
+ 0x15, 0xF6, 0xBC, 0xBF, 0xBD, 0xF4, 0x34, 0x41, 0x49, 0xDD, 0xC4, 0x2D, 0xC6, 0x2B, 0x15, 0xF8,
+ 0xCA, 0x35, 0x74, 0x39, 0x20, 0xDE, 0x64, 0x87, 0x85, 0x5A, 0xBE, 0x75, 0xD4, 0x3D, 0x41, 0xAA,
+ 0xA2, 0xC5, 0x40, 0xC4, 0x52, 0x37, 0x82, 0xB9, 0x79, 0x69, 0x09, 0x0E, 0xE6, 0x4F, 0x07, 0x9A,
+ 0xDF, 0xC3, 0x04, 0x63, 0x00, 0xCC, 0x00, 0xE5, 0x27, 0x46, 0xE9, 0x4C, 0xD8, 0x30, 0x58, 0xB6,
+ 0x93, 0xC1, 0xEB, 0x14, 0xB3, 0x02, 0x75, 0x2A, 0x4B, 0xE9, 0xCB, 0xBA, 0x8B, 0x77, 0x19, 0xA1,
+ 0x08, 0xB5, 0x46, 0x8D, 0xCF, 0x1D, 0xD2, 0x7F, 0x01, 0x96, 0xE5, 0xD3, 0x44, 0xA5, 0xC8, 0x3B,
+ 0x3C, 0x08, 0x7E, 0x29, 0x55, 0xC9, 0x3A, 0x55, 0xED, 0xB1, 0x39, 0x5D, 0x95, 0x6C, 0x54, 0xEF,
+ 0x0E, 0xE8, 0xF1, 0xF1, 0x18, 0xC5, 0x66, 0x0C, 0xC6, 0x3D, 0xF6, 0xF5, 0x27, 0xDC, 0x20, 0x6B,
+ 0xBB, 0xE3, 0x16, 0x01, 0xF4, 0x53, 0x59, 0xC8, 0x2B, 0x0B, 0xB5, 0x15, 0x54, 0xFF, 0x73, 0x1E,
+ 0xE3, 0xCB, 0xB6, 0xAF, 0x01, 0x76, 0xC5, 0xAE, 0x62, 0x51, 0x0B, 0x85, 0x76, 0xD7, 0x8E, 0x0B,
+ 0xBD, 0xBE, 0xA1, 0x7D, 0xEC, 0x5A, 0x3F, 0x21, 0xD2, 0x6D, 0x38, 0xDE, 0x68, 0xCC, 0xC3, 0x45,
+ 0x8B, 0x3B, 0x82, 0x52, 0xCD, 0xF2, 0x9E, 0x08, 0x18, 0x9A, 0xE8, 0xCF, 0x5D, 0x06, 0x7B, 0x99,
+ 0x95, 0x9C, 0x5C, 0x68, 0x58, 0x6A, 0xF2, 0x02, 0x64, 0x21, 0xA1, 0xCC, 0xD5, 0xF8, 0xFB, 0xE1,
+ 0xB6, 0xEF, 0x0F, 0x1D, 0xA2, 0x03, 0xEA, 0x44, 0x68, 0x6C, 0xFD, 0x95, 0x7F, 0x2E, 0x86, 0x8C,
+ 0x02, 0x38, 0xD7, 0x6E, 0x17, 0x89, 0xE2, 0x2C, 0x05, 0xD2, 0x40, 0x0D, 0xDB, 0xB9, 0x0D, 0x8A,
+ 0x0A, 0x8D, 0x5D, 0x06, 0xEA, 0x1E, 0x42, 0x86, 0x14, 0xD7, 0xB4, 0x96, 0xD0, 0x0C, 0xEA, 0x7A,
+ 0x74, 0x6F, 0x3D, 0xA9, 0xBA, 0x0A, 0x8C, 0xAD, 0x30, 0x33, 0xB7, 0x9E, 0xDA, 0x7C, 0xB7, 0xC1,
+ 0x8F, 0x5E, 0x2E, 0xA5, 0x47, 0x9D, 0x2C, 0x07, 0xBE, 0xC2, 0x1A, 0x28, 0x12, 0x16, 0x98, 0xB7,
+ 0xF4, 0x05, 0xDD, 0x7E, 0x13, 0x22, 0xD3, 0xFC, 0x71, 0x60, 0xF0, 0x89, 0x4E, 0xD5, 0x95, 0x80,
+ 0xA3, 0x19, 0x7F, 0x47, 0x4F, 0x2F, 0x10, 0xCB, 0xA9, 0xB7, 0x44, 0xFA, 0x85, 0x36, 0xEF, 0xCA,
+ 0xBC, 0x62, 0x9E, 0xFE, 0xC4, 0xFA, 0x67, 0x8F, 0x33, 0x16, 0x27, 0x67, 0x56, 0xB3, 0x9C, 0x69,
+ 0xBA, 0x3F, 0x29, 0x82, 0xA5, 0xFD, 0x52, 0xA8, 0xE6, 0x9D, 0x50, 0x23, 0x61, 0x35, 0xCB, 0xC2,
+ 0x5E, 0x75, 0xDB, 0x37, 0xE1, 0xF9, 0xF7, 0x76, 0x67, 0x04, 0x31, 0x35, 0xAE, 0xE7, 0x1A, 0x58,
+ 0x7B, 0x5B, 0x3F, 0x3E, 0x66, 0x35, 0x8D, 0x2E, 0xEE, 0x94, 0xA9, 0xA4, 0x70, 0xAA, 0xCA, 0xAC,
+ 0x94, 0x40, 0x63, 0xEB, 0xA1, 0x56, 0x63, 0x78, 0xAD, 0xF3, 0xE1, 0x24, 0xC7, 0xEE, 0xAF, 0xB3,
+ 0x43, 0x36, 0x21, 0x05, 0x4D, 0xC0, 0x5C, 0xBC, 0xF6, 0x89, 0x3B, 0xD6, 0x1B, 0xEF, 0x90, 0x30,
+ 0x89, 0x03, 0x99, 0xD9, 0x6B, 0x96, 0x45, 0x79, 0xE0, 0xED, 0xFA, 0x6A, 0xF0, 0x68, 0xF8, 0x18,
+ 0x5D, 0x91, 0xFF, 0x3F, 0x29, 0xD6, 0x9D, 0x00, 0x8B, 0x23, 0xED, 0xBB, 0xB6, 0x81, 0x13, 0xB1,
+ 0x51, 0x41, 0xD9, 0xA0, 0xF5, 0xE9, 0x9C, 0x83, 0xFC, 0xB4, 0xCD, 0xC6, 0xFB, 0xDD, 0x1F, 0xE8,
+ 0x05, 0xB9, 0x5F, 0x91, 0xCA, 0x0C, 0x26, 0xE4, 0xB0, 0xBB, 0x49, 0xE6, 0xFD, 0xA0, 0x5B, 0x4F,
+ 0x1F, 0x7B, 0x2D, 0x5C, 0x4B, 0x84, 0x21, 0x1B, 0xAC, 0xE2, 0x7E, 0x4A, 0xBC, 0xF1, 0x4E, 0x0A,
+ 0x48, 0x67, 0x8F, 0x65, 0xDC, 0xF3, 0x01, 0x66, 0xC4, 0x09, 0xF9, 0x62, 0xAC, 0xAB, 0xF5, 0x2F,
+ 0x6E, 0xAD, 0x4F, 0x64, 0x81, 0x44, 0x07, 0x1A, 0xE5, 0xB8, 0xC0, 0xDA, 0x50, 0xCE, 0xD8, 0xCE,
+ 0x8E, 0x82, 0x11, 0x26, 0x7D, 0x69, 0x62, 0xFB, 0x4C, 0x88, 0xFE, 0x9D, 0x83, 0x4B, 0xAB, 0x6D,
+ 0x87, 0xEB, 0xA4, 0xCD, 0x0D, 0x6F, 0xC8, 0xB2, 0x4D, 0x99, 0x61, 0xF3, 0xFF, 0xEC, 0xB4, 0x38,
+ 0xDA, 0x7A, 0x97, 0x17, 0x2A, 0x83, 0x14, 0x3C, 0xA3, 0x8A, 0xB2, 0xEA, 0x11, 0x9F, 0xCD, 0x8B,
+ 0x9B, 0x74, 0x61, 0x7C, 0x7C, 0xD3, 0xA7, 0xB0, 0x45, 0x90, 0x98, 0x74, 0x73, 0x23, 0x9F, 0x90,
+ 0x22, 0xAF, 0xA0, 0x13, 0x1F, 0x3B, 0xDE, 0xE0, 0xFE, 0x80, 0xC2, 0x51, 0x53, 0x47, 0x8D, 0xF2,
+ 0xE6, 0x72, 0x25, 0xDB, 0xBF, 0x1B, 0x78, 0x36, 0xC7, 0x2C, 0x69, 0x9B, 0xD6, 0x71, 0xAE, 0xDD,
+ 0x58, 0x28, 0x6C, 0x4B, 0x3C, 0x7C, 0x33, 0xBE, 0x91, 0x0A, 0x70, 0x5E, 0xDE, 0x4D, 0x1C, 0x11,
+ 0x29, 0xFE, 0x0E, 0x73, 0x1C, 0x6E, 0x57, 0xDC, 0x57, 0xB0, 0xFC, 0x16, 0x2F, 0xE0, 0x92, 0xA7,
+ 0x32, 0xE0, 0x43, 0x3D, 0xFC, 0xE1, 0x65, 0x04, 0x42, 0xF1, 0xAD, 0x53, 0x37, 0x86, 0x9B, 0x4E,
+ 0x60, 0x45, 0x72, 0x70, 0xEE, 0xB5, 0x73, 0x56, 0x28, 0x2E, 0x25, 0xEC, 0x8F, 0x46, 0xB2, 0x71,
+ 0xD9, 0x9E, 0xB3, 0x1F, 0x5F, 0x94, 0x4A, 0xEE, 0x17, 0xF2, 0x24, 0x6F, 0x71, 0x6F, 0x70, 0xE7,
+ 0x76, 0x57, 0x26, 0x22, 0xDF, 0xA6, 0x88, 0x5A, 0x39, 0x2B, 0xD1, 0x77, 0x39, 0xC7, 0x6D, 0x25,
+ 0x20, 0x97, 0xBB, 0x98, 0x5C, 0xC1, 0xC3, 0xD2, 0xD0, 0x59, 0x37, 0x49, 0x6E, 0xB1, 0x87, 0xE2,
+ 0x7F, 0x3E, 0x93, 0xC9, 0x1A, 0x2A, 0x2A, 0x7B, 0xA8, 0xA6, 0xDB, 0x94, 0x4A, 0xE4, 0x3E, 0x50,
+ 0xB0, 0xB2, 0xB8, 0x61, 0x6A, 0x2C, 0x80, 0x32, 0x5E, 0xA8, 0x9A, 0xFF, 0x92, 0xD4, 0xAA, 0x03,
+ 0xF5, 0xD9, 0xE2, 0xFD, 0x06, 0x88, 0x7D, 0x42, 0xE8, 0xE4, 0x03, 0xED, 0x43, 0x1D, 0x36, 0xD7,
+ 0x5F, 0xA9, 0xE4, 0xB4, 0x84, 0x55, 0xF3, 0x81, 0xEC, 0xA0, 0xA6, 0x33, 0xCE, 0x17, 0xA7, 0x34,
+ 0x4C, 0x02, 0x23, 0x92, 0x34, 0xCE, 0x0F, 0x72, 0x8A, 0x32, 0x72, 0xD5, 0x9B, 0x2D, 0xA2, 0x84,
+ 0x2F, 0xA3, 0xB9, 0x0F, 0x24, 0x75, 0x55, 0x57, 0x08, 0x8E, 0x83, 0x3A, 0x77, 0x12, 0x34, 0x40,
+ 0x5B, 0xCC, 0x48, 0x43, 0x0C, 0xD5, 0x0D, 0xF9, 0x8C, 0x42, 0xD8, 0x9C, 0x48, 0xA8, 0xD1, 0x27,
+ 0x4E, 0x3A, 0x38, 0x19, 0x4C, 0x7A, 0x99, 0xF7, 0xA5, 0xFA, 0x18, 0xA3, 0xAB, 0x13, 0x0B, 0xC3,
+ 0xB8, 0x07, 0x32, 0x09, 0x8C, 0xE7, 0xCF, 0x4D, 0x60, 0x65, 0x04, 0x12, 0x30, 0x3E, 0x65, 0xA2,
+ 0x2C, 0x5B, 0x1A, 0x79, 0xF9, 0x23, 0x30, 0x2E, 0x50, 0x21, 0xE7, 0x9A, 0xF8, 0x21, 0x4D, 0xB1,
+ 0x3E, 0x0F, 0x48, 0x6F, 0xC8, 0x6E, 0x95, 0x7C, 0x6F, 0x08, 0x5F, 0x5A, 0x92, 0xFE, 0xF2, 0x39,
+ 0xEC, 0xC6, 0xA0, 0x2F, 0xD6, 0x55, 0xF8, 0x44, 0x0F, 0xA6, 0x0E, 0x51, 0x2B, 0xDA, 0x40, 0x6C,
+ 0xCC, 0xD4, 0xC2, 0x4B, 0xB4, 0x6D, 0x2E, 0x35, 0xB9, 0x28, 0xFF, 0xFC, 0xED, 0x60, 0x08, 0xE0,
+ 0x8C, 0x7B, 0xCC, 0xDF, 0x01, 0x86, 0x47, 0x3C, 0xFC, 0x3D, 0xBE, 0xAD, 0x6A, 0x89, 0x57, 0x2B,
+ 0xCA, 0x90, 0x65, 0x36, 0x29, 0xD7, 0xEE, 0x63, 0x4E, 0x84, 0x9A, 0xF8, 0x12, 0x76, 0x8A, 0xC7,
+ 0x8F, 0x2E, 0xF0, 0x56, 0x09, 0x01, 0x4E, 0xC5, 0xF9, 0xCA, 0xA1, 0x73, 0xAD, 0x22, 0x71, 0x38,
+ 0x0F, 0x1C, 0x44, 0x94, 0x9C, 0x3C, 0x87, 0x6A, 0x3B, 0xD7, 0xE9, 0xDB, 0x83, 0xFB, 0x69, 0xCD,
+ 0x54, 0xEF, 0x9F, 0xEF, 0x5E, 0xAA, 0x79, 0x43, 0x2A, 0x1D, 0x1E, 0x0B, 0x56, 0x70, 0x2D, 0xBA,
+ 0xE4, 0x74, 0x6C, 0x13, 0x99, 0x8C, 0xD2, 0x50, 0x9A, 0x18, 0x4B, 0x31, 0x30, 0xE2, 0xCB, 0x6E,
+ 0xBA, 0x96, 0x2C, 0x9C, 0x02, 0x7F, 0x62, 0xAC, 0x1D, 0x10, 0x42, 0xC8, 0xE4, 0x78, 0xE1, 0x86,
+ 0xD6, 0x32, 0x5C, 0x61, 0x58, 0xE3, 0x09, 0xE9, 0xC9, 0x8C, 0x93, 0x01, 0x52, 0x34, 0xF3, 0x1F,
+ 0x9C, 0xC0, 0xE9, 0x85, 0x82, 0x07, 0xEA, 0x52, 0xDD, 0xB1, 0x7B, 0x0F, 0x1F, 0x2A, 0xBD, 0x04,
+ 0x5C, 0x5D, 0x53, 0xD3, 0x88, 0x17, 0xD7, 0xA4, 0xBC, 0xDF, 0xE0, 0x22, 0xDA, 0xB5, 0x0C, 0x18,
+ 0xF4, 0xCF, 0x49, 0x49, 0x03, 0x11, 0x73, 0x33, 0x5E, 0x8E, 0xA7, 0x0E, 0xB2, 0x5E, 0x24, 0x9F,
+ 0xDC, 0x6F, 0xE7, 0x11, 0xF2, 0x5D, 0x1C, 0x47, 0x39, 0x6B, 0x98, 0xB4, 0x36, 0x92, 0x82, 0xC4,
+ 0x9D, 0x7A, 0xA2, 0x40, 0x9B, 0x1B, 0xE6, 0x5F, 0x2E, 0x2A, 0xCB, 0xF3, 0x4C, 0x59, 0xC8, 0x27,
+ 0xBB, 0x2C, 0x67, 0x59, 0x23, 0xC7, 0xD3, 0x95, 0x06, 0x42, 0x20, 0x74, 0x5A, 0x3D, 0x74, 0xE6,
+ 0xB6, 0x8F, 0x30, 0x91, 0x85, 0x20, 0x8B, 0x67, 0xB2, 0x70, 0xA0, 0xB6, 0x54, 0x44, 0xBA, 0xB5,
+ 0x71, 0xEC, 0x66, 0x7F, 0xD9, 0xF5, 0x90, 0x88, 0xAD, 0x15, 0x17, 0xF2, 0x17, 0x23, 0x3A, 0xFD,
+ 0x1A, 0xB6, 0xFA, 0x3A, 0xE5, 0x8F, 0x69, 0x19, 0x51, 0xE1, 0x2D, 0xBC, 0x0A, 0x6B, 0xF8, 0x55,
+ 0x9B, 0x3E, 0x05, 0x3D, 0x97, 0x42, 0xAB, 0x03, 0x14, 0xF4, 0x6C, 0xED, 0x16, 0x32, 0x54, 0x62,
+ 0xF9, 0x6C, 0x1E, 0x81, 0x45, 0x21, 0x41, 0x41, 0xAF, 0xA9, 0x66, 0x9D, 0x31, 0xF3, 0xA5, 0xF1,
+ 0x25, 0x53, 0x9D, 0x80, 0x63, 0xBE, 0x91, 0x4D, 0xF6, 0xA5, 0x2B, 0xC1, 0x46, 0x64, 0xD8, 0xD1,
+ 0xAD, 0xD3, 0xE5, 0x7E, 0xAB, 0x38, 0x52, 0x92, 0x73, 0x11, 0x53, 0x57, 0xF6, 0x58, 0x83, 0xE2,
+ 0xDD, 0xD5, 0xAC, 0xD4, 0x1E, 0xD3, 0x3B, 0x9B, 0x26, 0x0E, 0x2F, 0xF0, 0xF7, 0x49, 0xED, 0x7D,
+ 0x0C, 0x49, 0x78, 0x1D, 0x35, 0x7B, 0xB7, 0x54, 0x31, 0x4F, 0x7C, 0xB7, 0x7E, 0xD9, 0x7C, 0xE5,
+ 0x51, 0xFE, 0x04, 0x1B, 0xF5, 0x7A, 0x7D, 0x72, 0xD0, 0x62, 0x80, 0xD2, 0x5F, 0x68, 0xC4, 0xDC,
+ 0xCF, 0x81, 0xFE, 0xC2, 0x1A, 0x0D, 0x7F, 0x3E, 0xEC, 0x37, 0x83, 0x5B, 0x44, 0x50, 0x4F, 0xDE,
+ 0x6F, 0xA1, 0x28, 0x64, 0x9F, 0xC5, 0xA2, 0xFA, 0xC3, 0x14, 0x06, 0x6D, 0x7D, 0xFC, 0x85, 0x75,
+ 0xFA, 0x39, 0x22, 0x08, 0x2D, 0x09, 0xAA, 0xC6, 0x95, 0x77, 0xC1, 0x83, 0x19, 0x5A, 0xF4, 0xAE,
+ 0xAC, 0x69, 0xAE, 0xBB, 0xDB, 0x62, 0xA4, 0x87, 0x8E, 0x25, 0xA3, 0x3F, 0xFF, 0x40, 0x6A, 0x84,
+ 0xD1, 0xCC, 0xB0, 0xD9, 0x0C, 0xB1, 0x1B, 0xFF, 0x15, 0x34, 0xA6, 0xCB, 0xD8, 0x81, 0x9B, 0x17,
+ 0x3C, 0xE0, 0x3F, 0x23, 0x1B, 0x63, 0x6E, 0xA1, 0x5B, 0x79, 0xB8, 0xD0, 0x68, 0xBD, 0xC0, 0x24,
+ 0xC8, 0x7F, 0x12, 0x7A, 0x4B, 0xEF, 0x38, 0x12, 0x75, 0x9A, 0xF7, 0xC0, 0x7C, 0xED, 0xEB, 0xEA,
+ 0x24, 0xE9, 0xD6, 0x45, 0xAC, 0x1F, 0x33, 0xA7, 0x00, 0xC9, 0x84, 0xE3, 0x91, 0xDB, 0x0B, 0xA9,
+ 0x72, 0xB9, 0x5A, 0xF6, 0xB5, 0x03, 0x3F, 0xAA, 0x92, 0x3C, 0xAF, 0x32, 0xD2, 0xBC, 0x8B, 0xE1,
+ 0xC7, 0x33, 0x32, 0xFE, 0x6D, 0x70, 0xE8, 0x1E, 0x94, 0xB7, 0x0B, 0xA5, 0xBF, 0x02, 0x13, 0x5C,
+ 0x1D, 0x48, 0x16, 0x82, 0x38, 0x4C, 0xEB, 0x97, 0x87, 0xC1, 0x8D, 0x1A, 0xA2, 0x4A, 0xD1, 0xF4,
+ 0x88, 0xD0, 0x1C, 0xEE, 0xE6, 0x76, 0x4C, 0x89, 0xFF, 0x41, 0x05, 0xE4, 0xDE, 0xF1, 0xD2, 0xBD,
+ 0x97, 0x27, 0x19, 0x30, 0x94, 0xBB, 0x8E, 0x93, 0xA9, 0x22, 0xC2, 0x0A, 0x04, 0x12, 0x36, 0x06,
+ 0xC3, 0x98, 0xE2, 0xCF, 0x67, 0x60, 0xD5, 0xE8, 0x9E, 0x2F, 0x9E, 0xC9, 0xCB, 0xB0, 0x97, 0xEC,
+ 0x3A, 0xA4, 0x98, 0x5E, 0xE7, 0x18, 0x5D, 0x16, 0x64, 0x50, 0x00, 0x10, 0xAE, 0x07, 0x88, 0xA8,
+ 0x6A, 0xB0, 0xB3, 0x90, 0x87, 0xB7, 0xBF, 0x68, 0xDF, 0x0D, 0x0A, 0x60, 0x8A, 0xE3, 0x80, 0xAB,
+ 0x75, 0x47, 0xB6, 0x4E, 0x93, 0x9C, 0xEF, 0xA6, 0xDC, 0x71, 0xB1, 0x29, 0x5C, 0x4D, 0x3D, 0x4C,
+ 0x31, 0x43, 0x68, 0xEB, 0x61, 0x29, 0xA5, 0x42, 0x46, 0xA0, 0x7E, 0xFB, 0xDD, 0xD4, 0x2B, 0x2D,
+ 0x9F, 0x95, 0xD5, 0x0C, 0xC5, 0x59, 0xC9, 0xBF, 0xD4, 0x55, 0x55, 0x2A, 0x13, 0x67, 0xE4, 0x58,
+ 0x14, 0x40, 0x91, 0x7B, 0x24, 0xE0, 0xB2, 0xA0, 0x77, 0x26, 0x86, 0xAF, 0x89, 0xC6, 0x79, 0x3B,
+ 0xE1, 0x65, 0xF7, 0xE7, 0xCD, 0xDE, 0xC0, 0x46, 0x0E, 0x66, 0xC4, 0x77, 0xEA, 0x01, 0x2F, 0xD5,
+ 0xF2, 0x8B, 0xEE, 0x34, 0xB3, 0x4A, 0x4F, 0x00, 0x35, 0x78, 0xA9, 0x4F, 0x59, 0x18, 0x8D, 0x76,
+ 0x77, 0xA8, 0xC1, 0x02, 0xC7, 0xCE, 0xFD, 0xB0, 0x02, 0x75, 0xF5, 0x8C, 0x00, 0x56, 0xE8, 0xA3,
+ 0x7A, 0x0B, 0x96, 0xCA, 0xFD, 0xFD, 0x74, 0x8B, 0x3E, 0x20, 0xF6, 0x05, 0xDC, 0xC5, 0x45, 0xB2,
+ 0x43, 0xAA, 0x56, 0x0D, 0x60, 0x47, 0xB4, 0xDD, 0x81, 0x4A, 0x29, 0x8D, 0x4D, 0x48, 0xA6, 0xB8,
+ 0xDE, 0x80, 0x90, 0x5D, 0x9E, 0xAB, 0xB3, 0x65, 0xDB, 0x3A, 0xDF, 0x98, 0x05, 0x03, 0x58, 0x99,
+ 0xCD, 0x6E, 0x89, 0x8E, 0xBC, 0xEA, 0x27, 0xCC, 0x72, 0xD1, 0x99, 0x71, 0x3B, 0xCE, 0xB5, 0x07,
+ 0xAE, 0x86, 0xD9, 0xF7, 0xE3, 0xC6, 0x19, 0xB3, 0x7E, 0xC2, 0xA8, 0x8A, 0xE8, 0x35, 0xB8, 0xDA,
+ 0xF0, 0x64, 0x99, 0x78, 0xCE, 0x27, 0xE5, 0xD6, 0xB4, 0xFB, 0x04, 0x21, 0x3F, 0x8A, 0x6B, 0xA2,
+ 0x82, 0x8D, 0xA7, 0x9E, 0xFA, 0xDA, 0x15, 0xBE, 0x84, 0xBD, 0x36, 0x53, 0xC3, 0xB9, 0x10, 0x15,
+ 0x37, 0x07, 0xCF, 0x96, 0xBA, 0xA3, 0x57, 0x66, 0x41, 0xEB, 0x10, 0x4A, 0xF0, 0x28, 0xCA, 0x48,
+ 0x6D, 0x4E, 0x5F, 0x28, 0x06, 0xA1, 0x26, 0x09, 0xE6, 0xAF, 0x16, 0x37, 0xF3, 0x0D, 0x33, 0xD8,
+ 0x1F, 0xA7, 0x61, 0xCE, 0xFC, 0x93, 0x65, 0x14, 0x25, 0x72, 0x94, 0xB9, 0xBB, 0x46, 0xCD, 0xF9,
+ 0x85, 0x73, 0x4B, 0x26, 0xC4, 0x37, 0xD8, 0x20, 0xF1, 0xEE, 0x45, 0x70, 0x57, 0x61, 0x43, 0x25,
+ 0xD0, 0x76, 0xFB, 0x1C, 0xBE, 0x7D, 0x13, 0xC3, 0xA8, 0xE2, 0x08, 0x2C, 0x9D, 0x96, 0x52, 0xF5,
+ 0x63, 0xB8, 0x34, 0x69, 0x51, 0x0A, 0x11, 0x8F, 0xBF, 0xA3, 0x5B, 0x6B, 0xF1, 0x39, 0xA4, 0xD7,
+ 0xCA, 0xF8, 0xB0, 0x36, 0xE8, 0xFF, 0xE4, 0xD5, 0xBE, 0xB9, 0xA1, 0xC0, 0x74, 0x82, 0x0A, 0xF0,
+ 0x93, 0xA4, 0xFD, 0x3A, 0xC8, 0x68, 0x99, 0xA2, 0x62, 0xB8, 0x22, 0xFF, 0x78, 0x1D, 0xDA, 0xD6,
+ 0x28, 0xD4, 0xF7, 0x67, 0x5B, 0xA9, 0x68, 0x85, 0x00, 0x04, 0x39, 0xAD, 0x3A, 0x7E, 0x30, 0x04,
+ 0x6D, 0x85, 0xB6, 0x72, 0x6C, 0xF0, 0xC4, 0x99, 0x81, 0x03, 0xC6, 0x25, 0x20, 0xB3, 0xF2, 0x76,
+ 0x91, 0xCB, 0x8C, 0x86, 0xC4, 0xB8, 0x06, 0x84, 0xEA, 0x46, 0x5A, 0x7F, 0xB1, 0xC9, 0x0B, 0x4A,
+ 0x8E, 0x8F, 0x3B, 0xE3, 0x8C, 0xDF, 0x86, 0xC7, 0x2D, 0xA8, 0x0C, 0x1C, 0x5E, 0x1C, 0x10, 0x16,
+ 0x3A, 0x4D, 0xBB, 0xD1, 0xDF, 0xA6, 0x48, 0xC9, 0x20, 0x60, 0x5B, 0xBF, 0xAC, 0xFB, 0x48, 0xB0,
+ 0x12, 0xCA, 0x50, 0xB9, 0x1E, 0xC2, 0xF4, 0xDF, 0x06, 0x79, 0x9E, 0xE9, 0x66, 0x27, 0x7D, 0x08,
+ 0xB2, 0x06, 0x38, 0xB6, 0xBD, 0xDB, 0x56, 0x6C, 0x37, 0x82, 0x92, 0xFA, 0xBE, 0x5E, 0x3F, 0x48,
+ 0xA9, 0xBA, 0x5A, 0xE4, 0x97, 0xC1, 0xC8, 0x8A, 0x61, 0x31, 0x1E, 0xAA, 0xFF, 0x35, 0x31, 0xBE,
+ 0xFF, 0x54, 0x9D, 0x87, 0x4C, 0x67, 0xB9, 0xEE, 0xF4, 0x5D, 0x14, 0x32, 0xC3, 0xF9, 0x39, 0x0C,
+ 0xD0, 0x62, 0x18, 0xA4, 0xE7, 0xCB, 0x73, 0xD7, 0x54, 0xFB, 0xC2, 0x12, 0x07, 0x31, 0xE4, 0x89,
+ 0xEC, 0xEB, 0x1B, 0xF1, 0xE5, 0xF3, 0xF8, 0xCC, 0xCA, 0x22, 0x38, 0x6D, 0x4B, 0x46, 0xE6, 0x66,
+ 0x0D, 0x8E, 0xE7, 0xDC, 0xDC, 0x42, 0x40, 0xED, 0x97, 0x24, 0x44, 0xDA, 0x6D, 0x47, 0x2C, 0xA6,
+ 0x1A, 0xC9, 0xB4, 0x9D, 0x44, 0xD2, 0xD1, 0x64, 0x46, 0xED, 0x90, 0x46, 0xA2, 0xEF, 0xA0, 0x8D,
+ 0x4F, 0x6E, 0xC8, 0x82, 0xDB, 0xC3, 0xBF, 0x65, 0x36, 0x47, 0xD9, 0x40, 0xAB, 0x04, 0xC9, 0x38,
+ 0x07, 0xE2, 0x72, 0x44, 0xF4, 0x60, 0x55, 0x10, 0x94, 0xAD, 0x78, 0x8F, 0x53, 0x00, 0x1C, 0x0F,
+ 0xC5, 0x4A, 0x3A, 0x59, 0x01, 0xB9, 0x4D, 0x3E, 0x14, 0x6F, 0xCC, 0xBD, 0xFC, 0x3D, 0xD5, 0x9A,
+ 0x72, 0xC1, 0x01, 0x17, 0xFE, 0xED, 0xB6, 0x81, 0x51, 0x0F, 0x59, 0x03, 0x5A, 0xEB, 0x75, 0xBA,
+ 0xC0, 0x94, 0x25, 0xAE, 0x12, 0x12, 0x6B, 0xF9, 0x17, 0xE6, 0xF0, 0xE8, 0x05, 0xBA, 0xDC, 0x92,
+ 0x85, 0xC5, 0x64, 0xBB, 0xD9, 0xFB, 0x34, 0x7E, 0x57, 0x72, 0xFE, 0x47, 0x0C, 0x51, 0xB5, 0x27,
+ 0x33, 0x68, 0x95, 0x35, 0x55, 0x41, 0x7C, 0xB8, 0x77, 0x16, 0x9C, 0x55, 0x7D, 0x69, 0x63, 0x45,
+ 0x53, 0x63, 0xC4, 0x9B, 0x00, 0x65, 0xCE, 0x01, 0xA5, 0x56, 0x74, 0x9C, 0x45, 0x52, 0x0E, 0x5B,
+ 0x6C, 0xA3, 0x7C, 0xB2, 0x88, 0xBA, 0x71, 0x6B, 0xB7, 0x40, 0x26, 0xC8, 0x17, 0x1F, 0xAB, 0x6A,
+ 0x05, 0x8D, 0x03, 0xF8, 0xFD, 0x09, 0xBE, 0xA5, 0x47, 0x28, 0xDB, 0xFC, 0x7E, 0x61, 0x87, 0x61,
+ 0x62, 0x37, 0x3C, 0x1D, 0xA6, 0xC5, 0x18, 0x21, 0x6F, 0x70, 0x75, 0x5C, 0x0A, 0x2D, 0xE8, 0x90,
+ 0x80, 0x1B, 0x7B, 0x4C, 0x21, 0x2E, 0x30, 0x49, 0xC7, 0xEA, 0x6F, 0xCE, 0x9D, 0x2B, 0x4C, 0x1B,
+ 0xE1, 0x36, 0xE0, 0x22, 0x3D, 0xB1, 0x81, 0x8C, 0x07, 0xBC, 0xD5, 0x53, 0x6B, 0x3B, 0x71, 0x11,
+ 0xF5, 0x38, 0x08, 0x1F, 0x26, 0xAF, 0xCF, 0xC1, 0x4D, 0x58, 0x60, 0xA1, 0xD0, 0xDF, 0x92, 0xCB,
+ 0x21, 0xF1, 0xD9, 0x83, 0xBF, 0xE3, 0xDD, 0x77, 0x21, 0xA5, 0x10, 0x05, 0x95, 0x43, 0xF9, 0x91,
+ 0xA6, 0x08, 0xD0, 0x8B, 0x57, 0x79, 0xF7, 0xA3, 0x7F, 0x2A, 0x50, 0xE7, 0x69, 0xB0, 0x49, 0x0A,
+ 0x16, 0x32, 0x85, 0x8E, 0x83, 0xEB, 0x11, 0xC5, 0xCF, 0xD6, 0xA3, 0x7C, 0x7A, 0x96, 0xE2, 0xCD,
+ 0x42, 0xB3, 0x33, 0x51, 0xE3, 0xAE, 0x84, 0x7B, 0x35, 0xCE, 0xE5, 0x15, 0x8A, 0xFA, 0x82, 0x70,
+ 0x4E, 0x48, 0x02, 0x42, 0x3E, 0x55, 0x89, 0xA8, 0x56, 0xB7, 0xB5, 0xFD, 0xF5, 0xD6, 0xBC, 0x2F,
+ 0xE7, 0xA1, 0x44, 0xA9, 0xA0, 0x98, 0x64, 0x96, 0x45, 0x64, 0xAC, 0x13, 0x5C, 0x97, 0x28, 0x0D,
+ 0xBD, 0xB4, 0xB2, 0xD9, 0x81, 0xD3, 0x9A, 0xDE, 0xD8, 0x34, 0x6A, 0x39, 0xE4, 0x7B, 0x2F, 0xF3,
+ 0x02, 0x3C, 0x6D, 0xB3, 0x8B, 0x5E, 0x79, 0x4F, 0xE1, 0xF3, 0xAA, 0x98, 0xB2, 0xC1, 0xEF, 0x6E,
+ 0x3E, 0xB5, 0x6E, 0xE6, 0x9A, 0xCD, 0xD4, 0x93, 0xEC, 0x3B, 0xFD, 0x3B, 0x89, 0xF2, 0x66, 0x54,
+ 0x09, 0x76, 0x32, 0xEB, 0x4F, 0x83, 0xB1, 0xCA, 0x69, 0x0D, 0xD2, 0x18, 0x39, 0x76, 0xD4, 0x20,
+ 0x32, 0x4E, 0x5F, 0xF5, 0xEC, 0x9A, 0x13, 0x79, 0x7A, 0xDE, 0xCB, 0xF6, 0x7F, 0xE2, 0x5B, 0x5E,
+ 0x83, 0x52, 0xC0, 0x30, 0xEE, 0xA2, 0x98, 0x62, 0xF8, 0x50, 0x08, 0x2B, 0xB6, 0x36, 0x8A, 0xC2,
+ 0x94, 0x15, 0x93, 0x71, 0xCC, 0x0D, 0x6E, 0x0E, 0x4B, 0x25, 0xC7, 0xE5, 0xFA, 0x41, 0x88, 0x2D,
+ 0xCD, 0x49, 0xDE, 0x7D, 0x1C, 0xFA, 0x7F, 0xC4, 0x1E, 0x1F, 0x77, 0xE0, 0x19, 0x0B, 0x43, 0x57,
+ 0x19, 0x80, 0x0F, 0xE1, 0xC0, 0xDD, 0xF1, 0x28, 0x84, 0xF7, 0x5D, 0x34, 0x2D, 0xAF, 0xFE, 0x6F,
+ 0xDA, 0x0E, 0x8D, 0x3C, 0xE1, 0x96, 0x0F, 0x60, 0xF6, 0x11, 0x63, 0xDD, 0x30, 0x9D, 0xBD, 0x95,
+ 0x7D, 0x73, 0x8B, 0x78, 0x71, 0xB3, 0xF6, 0x63, 0xAC, 0xAF, 0xF3, 0x94, 0x5F, 0x9F, 0xCC, 0x29,
+ 0xB8, 0x6A, 0xAD, 0x2E, 0x2C, 0x22, 0x2C, 0x50, 0x19, 0xA7, 0x9B, 0x1E, 0x87, 0xE6, 0x8E, 0x69,
+ 0x88, 0x18, 0x9F, 0x68, 0x9B, 0x11, 0x57, 0xAC, 0x6B, 0x41, 0xA5, 0xF7, 0xEF, 0x1B, 0x7E, 0x5D,
+ 0xC3, 0xDD, 0x9E, 0xD2, 0x84, 0x6A, 0xEE, 0x4D, 0x13, 0xD7, 0x20, 0x43, 0xB0, 0x4A, 0xD7, 0x75,
+ 0xBB, 0x23, 0x16, 0x52, 0xCD, 0xD1, 0xED, 0x31, 0x86, 0xBB, 0x2A, 0xDB, 0xAE, 0x70, 0x70, 0xAB,
+ 0xA8, 0x9C, 0x90, 0x24, 0x65, 0x99, 0x2F, 0x2C, 0x5C, 0xC7, 0x0E, 0xA0, 0x27, 0x4C, 0x73, 0xFE,
+ 0xAE, 0x0B, 0x34, 0xAF, 0xD8, 0x27, 0xB7, 0x41, 0xE9, 0xCF, 0x66, 0x2A, 0x93, 0x3F, 0xA4, 0x26,
+ 0x3C, 0xDA, 0x1F, 0x5A, 0x90, 0x40, 0x37, 0x02, 0xBF, 0x7C, 0xEA, 0x7A, 0x9E, 0x23, 0xA8, 0x3F,
+ 0x49, 0xF9, 0x6C, 0x09, 0xD3, 0x76, 0xD7, 0xEF, 0x53, 0x43, 0x2E, 0xEC, 0x2B, 0xD3, 0xA3, 0xD8,
+ 0x67, 0xE9, 0x23, 0xEA, 0x1D, 0x26, 0xFC, 0xFB, 0xA7, 0x1A, 0x03, 0x73, 0x98, 0x5F, 0xF5, 0x88,
+ 0x29, 0xF2, 0x3D, 0xA7, 0x2E, 0x1A, 0xA7, 0x4B, 0x4A, 0xE0, 0x8C, 0x5F, 0xC6, 0x8D, 0x80, 0x9F,
+ 0x4B, 0x96, 0x1D, 0xB5, 0x02, 0x5D, 0x45, 0x1A, 0x8F, 0x42, 0xAD, 0xD3, 0x99, 0xDC, 0x29, 0xB7,
+ 0xE8, 0x13, 0xCE, 0xC6, 0x61, 0xFC, 0xD8, 0x80, 0x04, 0x35, 0xE9, 0x06, 0x86, 0x65, 0x52, 0x56,
+ 0x7A, 0xC2, 0xE5, 0x33, 0x14, 0x4F, 0x17, 0x4E, 0xAA, 0xD2, 0x54, 0xD0, 0x7B, 0x15, 0x3E, 0xF2,
+ 0xE0, 0x10, 0x2A, 0xE2, 0x75, 0xD6, 0x01, 0xCF, 0xEE, 0x77, 0x8A, 0xD4, 0x9F, 0xA0, 0x74, 0x00,
+ 0xE3, 0x59, 0x91, 0x9E, 0x92, 0x78, 0xBC, 0x19, 0xF1, 0xA9, 0x8F, 0x23, 0x51, 0x8B, 0x24, 0x14,
+ 0x58, 0x29, 0x9B, 0xC3, 0x91, 0x9C, 0xB4, 0x3D, 0xA1, 0x67, 0xA4, 0x37, 0x2F, 0x24, 0xC6, 0x74,
+ 0xA2, 0xF0, 0x05, 0xBC, 0xD5, 0x2B, 0xAB, 0x58, 0x58, 0xF6, 0xDE, 0x0B, 0xD1, 0x5C, 0x4E, 0xF4,
+ 0x95, 0x33, 0x59, 0xB1, 0x3F, 0x89, 0x0A, 0x97, 0x0C, 0x09, 0x25, 0xB4, 0xAA, 0x87, 0x15, 0x07,
+ 0x71, 0x01, 0x36, 0x52, 0xB6, 0x4A, 0x2C, 0x54, 0x8C, 0x9C, 0xB1, 0x04, 0x25, 0x95, 0x3E, 0x51,
+ 0xEB, 0xD5, 0x1C, 0xBA, 0x8E, 0xEE, 0x91, 0x60, 0x58, 0x00, 0x60, 0xCD, 0xC9, 0xB2, 0xB0, 0x8D,
+ 0x97, 0xCA, 0x49, 0x1D, 0x23, 0x77, 0xE5, 0xFB, 0xC2, 0xD1, 0xAF, 0x1F, 0x83, 0xCD, 0xD9, 0xA3,
+ 0x24, 0x04, 0x86, 0x68, 0xCC, 0x00, 0xE7, 0xB7, 0xD5, 0x90, 0xFC, 0x58, 0xEF, 0x62, 0x2F, 0x81,
+ 0x76, 0xFF, 0xDA, 0xEA, 0x88, 0xA7, 0xE1, 0xCA, 0xF9, 0xCF, 0xC2, 0x27, 0xB1, 0x4D, 0x6D, 0x61,
+ 0x04, 0x16, 0xE4, 0x0C, 0xBC, 0x5A, 0x11, 0xA2, 0xC9, 0x89, 0xF0, 0x55, 0x4D, 0x7E, 0x16, 0xD6,
+ 0x99, 0x3C, 0x22, 0x5C, 0x74, 0xDC, 0xD2, 0x7D, 0x9B, 0xDD, 0xE2, 0x43, 0x81, 0xF9, 0x4E, 0xAC,
+ 0xC3, 0x75, 0xB2, 0xE2, 0xC8, 0xDE, 0xA3, 0x12, 0x3C, 0x99, 0xE4, 0x3E, 0x82, 0xDC, 0xB7, 0x3C,
+ 0x2A, 0xF2, 0xED, 0x29, 0xEC, 0xD6, 0x47, 0x11, 0xA6, 0x48, 0x2B, 0xEC, 0x77, 0xF7, 0x25, 0xED,
+ 0xB7, 0xD8, 0x2B, 0x79, 0x12, 0x3A, 0x40, 0xA9, 0xFC, 0x38, 0xDD, 0xF9, 0x3F, 0xBC, 0xDB, 0xCC,
+ 0x5A, 0xF4, 0xA4, 0x83, 0x91, 0xBB, 0xED, 0xC7, 0x03, 0xB0, 0x5C, 0xFE, 0x9A, 0xC1, 0xC5, 0xAE,
+ 0x39, 0x1C, 0xF4, 0xFA, 0xCE, 0x97, 0xD3, 0xB8, 0x0F, 0xA3, 0x6D, 0x05, 0x49, 0x3A, 0xC8, 0x73,
+ 0x06, 0xF9, 0x93, 0x40, 0xC1, 0x37, 0xBB, 0x74, 0x48, 0x0A, 0x5D, 0x3B, 0x2B, 0xEC, 0xF0, 0x02,
+ 0x15, 0x17, 0x8A, 0x93, 0xBF, 0xA3, 0x34, 0x32, 0x73, 0x14, 0x30, 0x03, 0x98, 0xF5, 0x52, 0xA1,
+ 0x8E, 0x79, 0xEB, 0xBE, 0x8F, 0x80, 0x80, 0xFF, 0x43, 0x52, 0x02, 0x71, 0xAE, 0x31, 0x38, 0xC6,
+ 0x83, 0xDA, 0xBC, 0x76, 0xB5, 0xB3, 0x09, 0xC4, 0x7F, 0x07, 0x01, 0xF8, 0x72, 0xA2, 0x95, 0xD7,
+ 0xC5, 0x31, 0x15, 0x9F, 0x13, 0x54, 0x51, 0x36, 0x3B, 0xD2, 0x8A, 0x8F, 0xAF, 0x20, 0x56, 0x59,
+ 0x81, 0x35, 0xCB, 0x3A, 0xE1, 0xE1, 0x1B, 0xD2, 0xA1, 0x03, 0x45, 0x5D, 0x2E, 0xB9, 0x40, 0x38,
+ 0xE0, 0x32, 0xEC, 0x0F, 0x56, 0x9D, 0x46, 0xD4, 0x0A, 0x54, 0x72, 0xDB, 0xFB, 0x32, 0x04, 0x4F,
+ 0x6B, 0xE7, 0xA8, 0x78, 0xB7, 0x24, 0x3D, 0xCB, 0xA9, 0x27, 0xA1, 0x5E, 0x61, 0x93, 0x99, 0x2C,
+ 0x37, 0xEA, 0x9F, 0xBB, 0x15, 0x1D, 0x21, 0x9C, 0xE3, 0x5D, 0x6A, 0xBD, 0xB9, 0x44, 0xEA, 0x98,
+ 0x63, 0x55, 0x64, 0x44, 0xE6, 0xC6, 0x7A, 0xE7, 0xD4, 0x50, 0x36, 0x7E, 0x76, 0xE6, 0x4B, 0x72,
+ 0x9E, 0xC2, 0xCE, 0xE4, 0xF5, 0xCA, 0x4B, 0x1C, 0xA2, 0x7F, 0xFE, 0x14, 0xF8, 0x17, 0xFD, 0xDF,
+ 0xCE, 0xD6, 0xE5, 0x2A, 0x95, 0x65, 0xA9, 0x62, 0x19, 0x22, 0xF4, 0x64, 0xDC, 0xF3, 0xF5, 0xDC,
+ 0x33, 0x41, 0x4F, 0x8A, 0x1F, 0x0D, 0x1C, 0x6A, 0xE9, 0xC5, 0xFF, 0xD1, 0xCD, 0xF6, 0x6E, 0x28,
+ 0x86, 0xCB, 0x27, 0x82, 0xC7, 0x7E, 0xCB, 0xDE, 0xEF, 0x4E, 0x5B, 0x46, 0xA0, 0x48, 0xF6, 0x95,
+ 0x7C, 0xA2, 0x61, 0x9A, 0x94, 0x0B, 0xB8, 0xFD, 0x82, 0x33, 0xF1, 0x90, 0xAC, 0x05, 0xAF, 0xC9,
+ 0xE9, 0x3A, 0x6B, 0xF6, 0x4A, 0x31, 0x1F, 0xE3, 0xFA, 0xB3, 0x79, 0x6E, 0xD0, 0xBE, 0xAC, 0x80,
+ 0xC8, 0x92, 0x42, 0x57, 0x69, 0x1E, 0x9A, 0xD5, 0x26, 0x0B, 0x4C, 0xA4, 0x1A, 0x49, 0xBD, 0x50,
+ 0x25, 0xBE, 0xCD, 0xAD, 0x7E, 0xCC, 0xEF, 0x8B, 0x68, 0x46, 0x52, 0xBF, 0xAA, 0x75, 0xE6, 0x63,
+ 0xD0, 0x9B, 0xAB, 0x31, 0xDE, 0x62, 0xC7, 0xD3, 0x7D, 0xBB, 0x70, 0x97, 0xE3, 0x2F, 0x76, 0xDD,
+ 0x3C, 0x0D, 0x6F, 0x0E, 0x39, 0x92, 0xCC, 0x66, 0x08, 0xE8, 0x03, 0xB4, 0x0E, 0x19, 0x96, 0x9E,
+ 0x9B, 0xD3, 0x55, 0x10, 0xED, 0xB8, 0x56, 0x8E, 0xBE, 0x66, 0xF2, 0x19, 0x0F, 0x08, 0xF8, 0x01,
+ 0x3B, 0xF3, 0x83, 0xB6, 0x68, 0x70, 0x8B, 0x4A, 0x91, 0x45, 0x77, 0x2F, 0x36, 0xA4, 0x32, 0xAA,
+ 0x58, 0x1B, 0xD3, 0xCF, 0xA9, 0x1F, 0x50, 0xF3, 0xF3, 0x57, 0x57, 0x4B, 0x8D, 0xB4, 0x17, 0xF0,
+ 0x0E, 0x4B, 0x5F, 0x7C, 0x5F, 0x74, 0x5E, 0xB2, 0xE8, 0x05, 0x35, 0xF7, 0x6B, 0xAE, 0x89, 0xDA,
+ 0x29, 0xA7, 0xD1, 0xA0, 0x6C, 0xAE, 0xCF, 0xEF, 0x5B, 0x7C, 0xDB, 0x84, 0x85, 0xBD, 0x90, 0x09,
+ 0x59, 0xA1, 0x98, 0x0A, 0xD9, 0x45, 0xA6, 0xE6, 0x0E, 0x63, 0xA7, 0x23, 0x84, 0xAC, 0xFE, 0x96,
+ 0xA5, 0x8C, 0x79, 0x6F, 0x87, 0x07, 0x89, 0x06, 0xAD, 0x10, 0x74, 0xA6, 0x2D, 0x9C, 0xB9, 0xA8,
+ 0xF8, 0x3B, 0x05, 0x69, 0x47, 0x06, 0x43, 0x20, 0x4C, 0x3D, 0x88, 0xC3, 0x0C, 0x2D, 0x01, 0x91,
+ 0x6F, 0x4C, 0x78, 0x49, 0xE5, 0x3F, 0x5F, 0x77, 0x69, 0x86, 0x98, 0x99, 0x64, 0xC6, 0x29, 0x16,
+ 0xEE, 0xC4, 0x87, 0x4E, 0x97, 0xF2, 0x9D, 0x6D, 0x2C, 0x93, 0xD9, 0xC8, 0x78, 0x9F, 0x85, 0x21,
+ 0xD1, 0x21, 0xE0, 0xF4, 0x11, 0xC3, 0x65, 0x39, 0x8B, 0xD7, 0xDF, 0xB5, 0x34, 0x90, 0xA5, 0xA5,
+ 0x0D, 0x1E, 0x63, 0xF5, 0x37, 0x5C, 0xB5, 0x35, 0xD2, 0xDB, 0x92, 0xE9, 0x43, 0x07, 0xD8, 0x85,
+ 0x4F, 0x5E, 0x1A, 0x2D, 0x51, 0xBA, 0x27, 0xE1, 0x7B, 0x30, 0xD4, 0x00, 0x28, 0xC9, 0x09, 0x92,
+ 0x69, 0x08, 0xDF, 0x34, 0xE9, 0x66, 0x12, 0x2B, 0x53, 0x58, 0x3F, 0x87, 0x3E, 0xAD, 0xB5, 0x53,
+ 0x85, 0x9E, 0x1B, 0x0B, 0xAB, 0x88, 0x64, 0xFC, 0xD0, 0x67, 0xE3, 0x86, 0x65, 0xD7, 0x47, 0x89,
+ 0x42, 0xFD, 0x4D, 0xE5, 0xF7, 0x5D, 0x7F, 0x13, 0xCF, 0x02, 0x54, 0xC2, 0x26, 0xB0, 0xC7, 0xC1,
+ 0xA8, 0x2F, 0x2E, 0xA7, 0xFA, 0x6A, 0x23, 0xD0, 0xC1, 0xAD, 0x14, 0x56, 0xA8, 0x41, 0x71, 0x6C,
+ 0x68, 0xB2, 0x94, 0xF1, 0xF0, 0x7A, 0x1E, 0x26, 0xA0, 0xC3, 0x8F, 0x7B, 0x6D, 0xDE, 0xC0, 0x70,
+ 0x28, 0x1D, 0x9A, 0x65, 0x80, 0x20, 0xE8, 0x33, 0x44, 0x19, 0x6C, 0xC0, 0x44, 0x66, 0xFF, 0xB0,
+ 0x00, 0xBD, 0x34, 0x3D, 0x71, 0x6C, 0x87, 0x47, 0x23, 0xFC, 0x53, 0x7A, 0xC0, 0xAA, 0x59, 0xEB,
+ 0x10, 0x06, 0x11, 0x67, 0xEB, 0xF1, 0x26, 0x24, 0xE7, 0x6A, 0xBF, 0x45, 0x42, 0x16, 0xB6, 0x1A,
+ 0xA0, 0x9D, 0xE2, 0x9B, 0x2C, 0xD7, 0x8D, 0x37, 0x57, 0x6F, 0xEA, 0x7F, 0x24, 0x84, 0x50, 0xCE,
+ 0x22, 0x40, 0x21, 0x15, 0x2A, 0x9E, 0xFD, 0x9D, 0xB4, 0xFE, 0x67, 0x75, 0x20, 0xC0, 0x8E, 0x6B,
+ 0x4E, 0xE4, 0x51, 0xE8, 0x70, 0x02, 0x96, 0xD8, 0x60, 0x62, 0xB6, 0xBC, 0x96, 0x8C, 0x9C, 0xF2,
+ 0x3E, 0xE2, 0x18, 0x42, 0x5B, 0xAA, 0x1A, 0x17, 0x33, 0xF6, 0x6E, 0x8C, 0x60, 0x82, 0xF7, 0xB3,
+ 0x78, 0x09, 0xB1, 0xAB, 0x73, 0xFB, 0xB3, 0x48, 0x81, 0x4F, 0x4A, 0xD9, 0x18, 0x7D, 0x2A, 0x5F,
+ 0xFB, 0x6E, 0x39, 0xE0, 0xEE, 0x41, 0x73, 0x1E, 0x46, 0xA5, 0x1D, 0xAF, 0xF1, 0x0F, 0x14, 0xB9,
+ 0x7B, 0x5C, 0x8D, 0x22, 0x7B, 0x7C, 0xBA, 0xB1, 0x84, 0xB8, 0x55, 0x07, 0xDF, 0xD6, 0x0C, 0x4C,
+ 0xCA, 0x7D, 0x35, 0x1B, 0xBA, 0x13, 0x61, 0x08, 0x12, 0x7A, 0xAB, 0x2E, 0xE0, 0x0A, 0x8F, 0x4D,
+ 0xD8, 0x29, 0x67, 0x0D, 0x8B, 0x5E, 0xC4, 0x5A, 0x2D, 0x53, 0x13, 0xEE, 0x8A, 0xD5, 0x30, 0xC5,
+ 0x38, 0xA6, 0xBF, 0x3F, 0xC6, 0x10, 0xDA, 0x41, 0xC4, 0x5A, 0x0B, 0x88, 0x9F, 0x94, 0x75, 0x94,
+ 0x18, 0xB4, 0xDD, 0x5B, 0xA4, 0x28, 0x0C, 0x30, 0x72, 0xD4, 0xFA, 0x25, 0x59, 0x2E, 0x3D, 0x18,
+ 0x7B, 0xD2, 0x08, 0x78, 0x70, 0xCD, 0x5A, 0xF4, 0xC9, 0x41, 0x8A, 0x5F, 0xE0, 0xA3, 0xE8, 0xF7,
+ 0xD9, 0x71, 0x11, 0xCB, 0x48, 0xA0, 0x61, 0xEA, 0x46, 0x07, 0x1E, 0x21, 0x33, 0xBA, 0xFB, 0x19,
+ 0xBC, 0xA4, 0x5F, 0x92, 0x8B, 0xFC, 0x56, 0xE7, 0xF4, 0xB7, 0x9A, 0x55, 0x05, 0x95, 0x7E, 0x3A,
+ 0x11, 0xB5, 0xCC, 0x4E, 0x02, 0xFF, 0x6A, 0xB2, 0x7D, 0x8C, 0xA9, 0x6F, 0xCD, 0xC2, 0x73, 0x99,
+ 0xF2, 0xBF, 0x41, 0xDF, 0x8A, 0x20, 0xD5, 0xD8, 0xBD, 0xDA, 0x13, 0xF2, 0x0A, 0x02, 0x4A, 0x38,
+ 0x0C, 0x9E, 0x0A, 0x97, 0x9F, 0xD6, 0x8F, 0xA8, 0xBA, 0x62, 0xFF, 0x0C, 0x5A, 0xC4, 0xD7, 0x12,
+ 0xE1, 0x00, 0xC7, 0xA9, 0x76, 0x90, 0x26, 0x43, 0x2E, 0xCB, 0xBE, 0x2E, 0x89, 0xDD, 0xC4, 0xFC,
+ 0xEC, 0xDD, 0x3C, 0x7A, 0x8D, 0xA1, 0x2A, 0x50, 0x10, 0xB4, 0x92, 0x71, 0xF0, 0x8D, 0xA7, 0x14,
+ 0x3F, 0xA5, 0x83, 0xAD, 0x26, 0x0D, 0xE0, 0x69, 0xEC, 0xD1, 0x73, 0x5C, 0x7F, 0xCD, 0xF9, 0xF6,
+ 0x44, 0x12, 0xB0, 0x51, 0x54, 0x3F, 0xD0, 0x2F, 0x1C, 0xB9, 0x8E, 0x68, 0x99, 0xF3, 0x8B, 0x1F,
+ 0x9E, 0x4F, 0x21, 0x62, 0x4D, 0x19, 0x15, 0x79, 0x5E, 0x61, 0xF7, 0x28, 0x91, 0x9B, 0x3E, 0x95,
+ 0x67, 0xDF, 0x04, 0x61, 0x30, 0x1F, 0xB2, 0x3D, 0x2F, 0x0E, 0xF5, 0x94, 0x2F, 0x0B, 0x64, 0xDC,
+ 0x99, 0xFE, 0x4F, 0x29, 0xBE, 0x9D, 0x71, 0xE0, 0x6C, 0x13, 0xC7, 0x6E, 0xC9, 0x35, 0x16, 0x35,
+ 0x17, 0x22, 0x68, 0xC5, 0x77, 0x4C, 0xA5, 0x7C, 0xD1, 0x27, 0x63, 0x56, 0x21, 0x1F, 0x8C, 0xE1,
+ 0x06, 0xF2, 0x9F, 0x0F, 0x2B, 0x01, 0xFC, 0x70, 0x1A, 0xC4, 0x29, 0x2C, 0x1B, 0xAF, 0xD9, 0xE4,
+ 0xF0, 0xD0, 0x30, 0x63, 0x6C, 0x52, 0xEB, 0x31, 0x18, 0x88, 0x5E, 0xC3, 0x6E, 0x60, 0x6A, 0x2A,
+ 0xCF, 0x10, 0x88, 0x4A, 0xCC, 0xAF, 0x41, 0xA6, 0x12, 0xF8, 0xE5, 0x9E, 0xDE, 0xE4, 0xD8, 0x5E,
+ 0x94, 0x23, 0xB4, 0xFA, 0xD7, 0xB1, 0x0F, 0xEB, 0x67, 0xA6, 0x37, 0x89, 0x24, 0x6B, 0x35, 0x72,
+ 0xBF, 0xED, 0xE4, 0xEE, 0xC7, 0xFE, 0x21, 0x08, 0x31, 0x15, 0xBB, 0xD9, 0x7D, 0x46, 0xC1, 0xED,
+ 0x5F, 0xAE, 0xD2, 0x03, 0xE4, 0x8D, 0x54, 0x5B, 0x3A, 0xA0, 0x4B, 0x3E, 0x42, 0x82, 0x2D, 0x7B,
+ 0xDF, 0xE6, 0xB5, 0x40, 0x35, 0xA6, 0xC6, 0xAE, 0x36, 0xAD, 0x57, 0x27, 0xF1, 0x0E, 0x7B, 0x2B,
+ 0x47, 0x5B, 0x0B, 0x2D, 0xA2, 0x02, 0xC0, 0x25, 0xE1, 0x19, 0x24, 0xFF, 0xF9, 0x66, 0xCE, 0xA1,
+ 0x85, 0xF3, 0x43, 0x30, 0x1D, 0x84, 0xD3, 0x53, 0xE2, 0x90, 0x18, 0xAA, 0x85, 0x42, 0x14, 0xDA,
+ 0x86, 0xBA, 0xF8, 0x4C, 0xE3, 0x0C, 0xAB, 0xD3, 0x45, 0x8E, 0x22, 0x74, 0xE9, 0x48, 0x81, 0x42,
+ 0x62, 0x01, 0x1B, 0x96, 0x0D, 0xCB, 0xFD, 0xB0, 0x87, 0x94, 0xEF, 0x06, 0x37, 0x4D, 0x9E, 0xB5,
+ 0xC3, 0xEB, 0xB9, 0x59, 0xCE, 0x97, 0xCA, 0xBD, 0xDC, 0xEF, 0x34, 0xF5, 0xC8, 0xB6, 0xCA, 0x0A,
+ 0xDC, 0xAF, 0x0E, 0x3C, 0x17, 0x09, 0x30, 0xC2, 0x54, 0x11, 0x4C, 0x75, 0x59, 0xCC, 0x33, 0x36,
+ 0xD4, 0xAC, 0xEA, 0x18, 0x67, 0x03, 0x8B, 0x9F, 0xB6, 0x6F, 0xE3, 0x15, 0x97, 0xE7, 0x63, 0x22,
+ 0x69, 0x4B, 0x44, 0xCE, 0x2E, 0xB8, 0x88, 0xE3, 0xE6, 0xA1, 0xC8, 0x01, 0x49, 0xE2, 0x7C, 0xD5,
+ 0x7F, 0x2A, 0xDD, 0x4F, 0xFC, 0x77, 0x12, 0x32, 0xAC, 0x45, 0x7D, 0xF3, 0xEC, 0x3C, 0x38, 0xD1,
+ 0xB0, 0x5F, 0x6E, 0x81, 0x2D, 0x5C, 0x80, 0xC7, 0xC0, 0xB8, 0x0D, 0x57, 0x0B, 0x81, 0x96, 0x07,
+ 0x2D, 0x3C, 0xCF, 0x1B, 0xA8, 0x8F, 0x23, 0xB4, 0xBB, 0xA7, 0xB4, 0xB6, 0x7C, 0xC5, 0x1D, 0xD2,
+ 0x9C, 0x20, 0x50, 0xDE, 0xF4, 0xC2, 0x7A, 0xB8, 0xEF, 0x58, 0x4F, 0x09, 0x47, 0xF6, 0x94, 0xE8,
+ 0x20, 0xE1, 0x34, 0xC8, 0x73, 0x29, 0x52, 0xD0, 0xDA, 0x92, 0x93, 0xB1, 0x5E, 0x33, 0xB2, 0xBE,
+ 0xEE, 0xB2, 0x4D, 0xC6, 0xB1, 0xA9, 0xE6, 0xE2, 0x82, 0x60, 0x74, 0x17, 0x96, 0x64, 0xBF, 0x1D,
+ 0x6E, 0xFA, 0x2A, 0x85, 0xF5, 0x1E, 0xF9, 0x87, 0x99, 0x8F, 0xA1, 0x4B, 0x78, 0x32, 0x78, 0x7E,
+ 0xAC, 0x52, 0x62, 0x98, 0xBB, 0x24, 0x05, 0x73, 0x60, 0x1E, 0xDB, 0x77, 0x3D, 0xAE, 0x13, 0x24,
+ 0x00, 0x65, 0x3B, 0x84, 0xEA, 0x65, 0x40, 0x66, 0xA2, 0x04, 0x16, 0x05, 0x3A, 0x51, 0x92, 0xAC,
+ 0xF1, 0xF6, 0xFA, 0xA3, 0x9A, 0x6F, 0xFB, 0x3B, 0x48, 0x46, 0x75, 0xD7, 0x86, 0x4A, 0xF0, 0xFE,
+ 0x8C, 0xD6, 0x6D, 0xD4, 0xC6, 0x22, 0xA2, 0x37, 0x98, 0x4A, 0xEA, 0xF1, 0x87, 0xC9, 0x2C, 0xC1,
+ 0xD7, 0xE5, 0x51, 0x64, 0x50, 0x5A, 0x27, 0x83, 0x5B, 0x95, 0x6C, 0x39, 0x79, 0xB1, 0xA4, 0x41,
+ 0xB9, 0x7A, 0x40, 0x65, 0xF7, 0x26, 0x72, 0x9C, 0x32, 0x9C, 0x87, 0x8C, 0xD3, 0xF8, 0xD4, 0x47,
+ 0x28, 0xE2, 0xD0, 0xEC, 0xB0, 0x75, 0x65, 0xDD, 0xBE, 0x53, 0x2F, 0xA7, 0x1A, 0x2C, 0x05, 0xDB,
+ 0x90, 0xDB, 0x61, 0xCD, 0xD5, 0x89, 0x84, 0xF0, 0x74, 0x75, 0x2E, 0x67, 0x1C, 0x50, 0x58, 0x6C,
+ 0x1B, 0xD9, 0x59, 0xD6, 0x5C, 0x8A, 0xB8, 0xA5, 0x76, 0x39, 0x59, 0x88, 0xC5, 0xAA, 0xC6, 0x13,
+ 0xD1, 0x72, 0xF5, 0xEF, 0x6A, 0x0F, 0x97, 0x86, 0xAB, 0xFD, 0x91, 0x0D, 0x63, 0x7C, 0x66, 0x33,
+ 0xA0, 0xA9, 0x53, 0x8B, 0x84, 0xC8, 0xC1, 0xE5, 0xA3, 0xC1, 0x5D, 0xBF, 0x0F, 0x76, 0xF3, 0xAB,
+ 0x3E, 0x83, 0x49, 0x6D, 0x38, 0xAA, 0xDA, 0xB7, 0xAD, 0x80, 0x36, 0x49, 0xBC, 0xFA, 0xA5, 0xFB,
+ 0x19, 0xB6, 0x28, 0x6A, 0x9D, 0xEE, 0x04, 0xB3, 0x39, 0x29, 0x77, 0x6B, 0x7E, 0x4E, 0x25, 0xC9,
+ 0xA6, 0x3E, 0xF7, 0x00, 0x5D, 0x56, 0x3B, 0x9A, 0x9C, 0x7B, 0x3A, 0x5A, 0x68, 0x1C, 0x37, 0x9D,
+ 0x14, 0x6B, 0xD3, 0xB9, 0x56, 0x07, 0x5B, 0x34, 0xF1, 0x43, 0x01, 0x44, 0x28, 0xF4, 0xE5, 0x54,
+ 0x5C, 0xE7, 0x69, 0x7F, 0xFB, 0xF6, 0xED, 0xBA, 0x27, 0x32, 0x39, 0x26, 0x4C, 0x96, 0xC5, 0x46,
+ 0x03, 0x2C, 0x80, 0xF8, 0xAA, 0xB7, 0xA8, 0xAF, 0x4E, 0x3B, 0xD2, 0x93, 0xD8, 0x98, 0x85, 0xE9,
+ 0xDE, 0xC0, 0x7F, 0x80, 0xFF, 0x93, 0x1A, 0x16, 0xE7, 0x64, 0x83, 0xBB, 0x31, 0x31, 0xC3, 0x02,
+ 0x25, 0x3F, 0x2B, 0x3F, 0x74, 0xA8, 0xAD, 0x58, 0x47, 0xC2, 0x55, 0x9B, 0x51, 0xA4, 0x86, 0xBC,
+ 0x3D, 0xCA, 0xF2, 0x11, 0xDC, 0xE0, 0x6F, 0x45, 0x8E, 0x6D, 0x68, 0x0E, 0x93, 0x10, 0x06, 0x8E,
+ 0x79, 0xBD, 0x79, 0xC4, 0x0C, 0x17, 0x7E, 0x8F, 0x70, 0x44, 0xFE, 0xCC, 0xE8, 0xCB, 0x5D, 0x7D,
+ 0x9F, 0x69, 0xEB, 0xA2, 0x36, 0x42, 0xCE, 0x8A, 0xDB, 0x57, 0xD8, 0x0B, 0x14, 0x38, 0xED, 0xE6,
+ 0xB5, 0x81, 0x71, 0x76, 0xCF, 0x4B, 0x49, 0x82, 0x6B, 0xAB, 0x2B, 0x90, 0x9B, 0x78, 0xB3, 0x04,
+ 0xA7, 0x18, 0x3D, 0xC0, 0x06, 0x9A, 0x9D, 0x1E, 0x00, 0xEE, 0xB7, 0xCA, 0x66, 0x08, 0xDF, 0xA0,
+ 0xE9, 0x03, 0x23, 0x8D, 0x08, 0x72, 0x89, 0x23, 0xE3, 0x55, 0x53, 0x10, 0x82, 0xBD, 0x95, 0x52,
+ 0x58, 0x1F, 0xBC, 0x48, 0x25, 0xE9, 0xE8, 0x4D, 0xDE, 0xA3, 0x43, 0x1A, 0xD4, 0x07, 0x55, 0xCF,
+ 0x70, 0x98, 0x57, 0x20, 0x09, 0xAE, 0x0A, 0x1C, 0x7A, 0x34, 0x45, 0x91, 0x4E, 0x1D, 0xFD, 0x5D,
+ 0xD6, 0xC3, 0x9B, 0xA4, 0xB3, 0x91, 0x6D, 0xF9, 0x15, 0x40, 0x09, 0x60, 0x16, 0xB3, 0xD5, 0xFD,
+ 0xA0, 0x6F, 0x67, 0x74, 0x5A, 0xCB, 0x11, 0x59, 0x9E, 0xE8, 0xA8, 0x7D, 0xEF, 0xE3, 0x2F, 0x13,
+ 0x67, 0x49, 0x74, 0xDF, 0xA9, 0x37, 0x8A, 0xE9, 0x4A, 0x0E, 0xCE, 0xEF, 0x5F, 0xE6, 0x15, 0x46,
+ 0xFC, 0xBA, 0x88, 0x6F, 0xE9, 0xB8, 0x68, 0xB7, 0xA2, 0x24, 0x1A, 0x75, 0xD8, 0xEE, 0xEC, 0x4F,
+ 0xA6, 0x26, 0xCD, 0x04, 0x99, 0x45, 0xCC, 0xDB, 0x3B, 0x36, 0xAC, 0x39, 0x0C, 0x72, 0x25, 0x9E,
+ 0x7C, 0xC2, 0x76, 0xE7, 0x2C, 0xA1, 0x3E, 0x91, 0x20, 0x78, 0xE1, 0x27, 0x18, 0x4F, 0x2B, 0x76,
+ 0x76, 0xD2, 0x80, 0xDA, 0x96, 0xF7, 0xA3, 0x51, 0x3C, 0xC9, 0x24, 0xB8, 0x79, 0x21, 0x06, 0xED,
+ 0xFD, 0xD4, 0x17, 0x7E, 0x8C, 0x6D, 0x31, 0xF9, 0xBB, 0xE1, 0x4C, 0x53, 0x9B, 0x70, 0x2A, 0xAA,
+ 0x0C, 0x98, 0x63, 0x11, 0x22, 0x35, 0x91, 0xD1, 0xE0, 0x47, 0xC8, 0x9F, 0xFC, 0x95, 0x90, 0x95,
+ 0x07, 0xE6, 0x0A, 0x3D, 0xDF, 0x5D, 0xA5, 0x21, 0x95, 0x88, 0x06, 0x2C, 0x95, 0xDF, 0xBE, 0xEA,
+ 0x36, 0xAB, 0x58, 0x98, 0x8D, 0x4B, 0xF1, 0x33, 0x1D, 0x37, 0x6C, 0xF3, 0xAA, 0xF6, 0x7E, 0x52,
+ 0x28, 0x90, 0x60, 0xF5, 0x65, 0x0B, 0x38, 0xE1, 0x48, 0x85, 0xD5, 0xD7, 0xCA, 0x58, 0x75, 0x03,
+ 0x4A, 0xA8, 0x11, 0x23, 0x07, 0x6F, 0x2A, 0xC1, 0xC4, 0xCD, 0x13, 0x6D, 0x7C, 0xD6, 0xD8, 0xF2,
+ 0xFF, 0x43, 0x18, 0x4A, 0x09, 0xFB, 0x85, 0x81, 0x0F, 0x92, 0x94, 0x84, 0x39, 0xC3, 0x89, 0xB3,
+ 0xD7, 0x12, 0x47, 0xE3, 0xA0, 0x12, 0x6E, 0xC7, 0xE3, 0x4F, 0xEC, 0x7B, 0x8B, 0x7A, 0xDC, 0x97,
+ 0xF7, 0xC4, 0xE1, 0x43, 0x35, 0x72, 0xD0, 0x82, 0x1C, 0xB4, 0x53, 0x2F, 0x3C, 0x34, 0x57, 0xAC,
+ 0x62, 0xF9, 0x4E, 0x8A, 0x81, 0xB0, 0xE2, 0x02, 0xE9, 0xAC, 0x7D, 0xF6, 0xFE, 0x29, 0xFF, 0xE4,
+ 0x55, 0xFD, 0xB6, 0x5F, 0x20, 0x5A, 0x2D, 0xA0, 0xC6, 0x46, 0x08, 0x55, 0xB6, 0xEF, 0x73, 0x5E,
+ 0xE0, 0x16, 0xBF, 0x36, 0x69, 0xF0, 0x2B, 0xD0, 0x59, 0x28, 0x09, 0x44, 0xE3, 0xF0, 0xD4, 0x22,
+ 0xCB, 0xBE, 0x70, 0xBA, 0xBD, 0x39, 0xB7, 0x01, 0xC1, 0xB9, 0x80, 0xD4, 0xF4, 0xB1, 0x93, 0x71,
+ 0x0B, 0xBF, 0x56, 0x70, 0xC1, 0x3F, 0x00, 0x5C, 0xF8, 0x01, 0xA1, 0x65, 0x15, 0x9C, 0xF6, 0x8D,
+ 0xE4, 0xC8, 0x1A, 0x72, 0x3B, 0xE6, 0x7F, 0xC2, 0xFA, 0x8A, 0xBA, 0x5D, 0x29, 0xC9, 0x7F, 0x8E,
+ 0x61, 0x00, 0xDE, 0xAF, 0xED, 0x40, 0x5F, 0x62, 0x51, 0x40, 0x83, 0xF1, 0x06, 0xEA, 0x49, 0x0B,
+ 0xD3, 0xCC, 0xE2, 0xA7, 0xE7, 0x2C, 0xC7, 0xF7, 0x8A, 0x31, 0xE7, 0x57, 0x50, 0x89, 0xA7, 0xCC,
+ 0x25, 0xA7, 0xA3, 0xA9, 0x6B, 0x9F, 0x97, 0xA1, 0xA0, 0xAF, 0x01, 0x4D, 0x4B, 0xDB, 0x1B, 0xAE,
+ 0x65, 0xDE, 0x7B, 0xEB, 0x67, 0x64, 0x84, 0x90, 0x03, 0x0D, 0xB2, 0x54, 0xEB, 0xD4, 0xD7, 0xC6,
+ 0xDD, 0x02, 0xB1, 0xDE, 0xA2, 0x7D, 0xD2, 0xB6, 0xC2, 0xB1, 0xA4, 0x30, 0xC3, 0xBC, 0x50, 0x2D,
+ 0x7B, 0xE5, 0x43, 0x86, 0xF5, 0xB5, 0x71, 0xBB, 0x91, 0x7F, 0xAA, 0x49, 0x77, 0x8E, 0x92, 0xAD,
+ 0x27, 0x30, 0xAC, 0x9D, 0xA3, 0x5B, 0x12, 0x7C, 0xD9, 0xFF, 0xE9, 0x2E, 0x68, 0xEB, 0xD6, 0x1A,
+ 0x1B, 0x4A, 0x3D, 0x64, 0x3F, 0x1E, 0x48, 0x17, 0x71, 0x3D, 0xF4, 0x66, 0x94, 0x1F, 0x98, 0x20,
+ 0x69, 0x87, 0x27, 0xA6, 0xC0, 0x19, 0xC0, 0x96, 0x46, 0x91, 0xE8, 0x3F, 0xD1, 0x0A, 0xC9, 0x61,
+ 0xBB, 0xE4, 0x65, 0x4C, 0xDB, 0xA5, 0x92, 0xF4, 0xD5, 0x60, 0xCF, 0xFE, 0x6A, 0x57, 0xB9, 0x6B,
+ 0x9D, 0x7B, 0x69, 0x9C, 0x58, 0xA4, 0xAD, 0x28, 0xF5, 0x1D, 0xB8, 0x69, 0x33, 0x5B, 0xE5, 0x26,
+ 0x6A, 0x7E, 0xB7, 0x83, 0xDC, 0x14, 0xD9, 0x9A, 0x22, 0xF3, 0xFA, 0x1F, 0x6C, 0xDC, 0x2E, 0xCF,
+ 0x99, 0xA5, 0xCC, 0xD8, 0x27, 0xEB, 0x66, 0xCE, 0xC8, 0x52, 0x35, 0xBD, 0x5B, 0xD1, 0xED, 0x93,
+ 0x19, 0xDD, 0x32, 0x50, 0x5D, 0x7A, 0x5A, 0x37, 0x8C, 0x4D, 0x50, 0x0A, 0xA1, 0xAE, 0x34, 0x0D,
+ 0x79, 0x72, 0x4C, 0xB2, 0x76, 0xB4, 0x4E, 0x67, 0x8F, 0x45, 0x74, 0xEE, 0x1A, 0xF3, 0x44, 0x07,
+ 0x6D, 0x59, 0x82, 0xE2, 0x73, 0x6A, 0xB9, 0x78, 0x68, 0xF8, 0xA2, 0x40, 0x19, 0x8F, 0x0D, 0xBC,
+ 0x9F, 0xEC, 0x66, 0xA8, 0xAD, 0xCF, 0xBD, 0x3C, 0x09, 0xEE, 0x23, 0xD9, 0x83, 0x5E, 0xDF, 0x73,
+ 0x3B, 0x9C, 0x9B, 0xC4, 0x10, 0x28, 0x6B, 0x92, 0x7C, 0x21, 0xED, 0x6A, 0x11, 0xAB, 0x0E, 0x58,
+ 0xDA, 0x25, 0x84, 0xBF, 0x54, 0x5F, 0xBE, 0x19, 0x1F, 0xBC, 0x77, 0xCB, 0xB2, 0xD8, 0x8B, 0x8B,
+ 0xF2, 0x74, 0xDB, 0x16, 0x75, 0xFD, 0x32, 0xDC, 0x33, 0x5E, 0x26, 0x8C, 0xD0, 0xCA, 0xEF, 0xAB,
+ 0xE5, 0xA6, 0x85, 0x63, 0xFA, 0x07, 0x1E, 0x31, 0x00, 0x05, 0x96, 0xB0, 0x9E, 0x87, 0xF4, 0xB5,
+ 0xB5, 0x2A, 0x36, 0x35, 0xD7, 0x5E, 0x81, 0xC5, 0xCE, 0x2E, 0x82, 0xE0, 0xB0, 0x64, 0xE4, 0xFA,
+ 0x52, 0xDA, 0x83, 0x3E, 0x13, 0x61, 0x17, 0x29, 0x8D, 0xCE, 0x6F, 0xD6, 0xC5, 0x37, 0xC7, 0x89,
+ 0x4B, 0xC6, 0x8E, 0x32, 0x9F, 0xD2, 0x47, 0x7F, 0xC5, 0x4E, 0x2C, 0xB1, 0x57, 0xC2, 0x16, 0xA2,
+ 0x93, 0xB5, 0x3A, 0xE5, 0xF7, 0xDA, 0xCD, 0xCA, 0x78, 0xD6, 0x41, 0x0F, 0x51, 0x49, 0x81, 0x06,
+ 0xC6, 0x89, 0xB3, 0xE6, 0xD3, 0xA6, 0xB6, 0x10, 0xD0, 0x14, 0x5C, 0x47, 0x42, 0x3F, 0x3E, 0x80,
+ 0x18, 0xB3, 0xAD, 0x41, 0xD9, 0xCA, 0x2E, 0x85, 0x99, 0x17, 0x20, 0xFC, 0x3A, 0xBF, 0xC0, 0x08,
+ 0x30, 0xE2, 0xF2, 0xE8, 0x5C, 0x5C, 0x9A, 0xFD, 0x86, 0xAE, 0xC1, 0x87, 0x71, 0x05, 0x05, 0x09,
+ 0x04, 0x1F, 0x9A, 0x18, 0x62, 0xBA, 0x73, 0x8F, 0x31, 0xD5, 0x3D, 0xB4, 0x41, 0x43, 0x77, 0x3B,
+ 0x44, 0x66, 0x42, 0x5A, 0x0A, 0xB2, 0xF9, 0x3A, 0x6C, 0x0F, 0x0E, 0x25, 0x84, 0x15, 0x6E, 0x1D,
+ 0xF8, 0x64, 0x2D, 0x2B, 0x9A, 0x0C, 0xB0, 0x60, 0xFC, 0xF6, 0x0D, 0x00, 0x23, 0x51, 0x13, 0x1B,
+ 0x02, 0x56, 0x30, 0x68, 0xA4, 0xEA, 0x59, 0x12, 0xDD, 0x08, 0x45, 0x4B, 0xE0, 0x8C, 0x9D, 0x99,
+ 0x3A, 0xF2, 0x04, 0xD5, 0x8E, 0x02, 0x8D, 0x88, 0x01, 0x86, 0xA9, 0x6C, 0x34, 0x10, 0x54, 0x48,
+ 0x40, 0xB8, 0xE7, 0x1E, 0x3E, 0x38, 0x88, 0xDD, 0xD1, 0x97, 0x63, 0x9B, 0x6D, 0x1C, 0x08, 0x05,
+ 0xAF, 0xCF, 0xAB, 0x1C, 0xF1, 0x4D, 0x46, 0x6E, 0xF3, 0x61, 0x0F, 0x34, 0x7A, 0x5D, 0x4F, 0x56,
+ 0x33, 0x1B, 0x62, 0xCD, 0x32, 0xC3, 0x9B, 0xEC, 0xF1, 0xEA, 0x14, 0x0C, 0xCB, 0x98, 0x53, 0xC9,
+ 0x4D, 0x8F, 0x24, 0x42, 0x2B, 0x10, 0x75, 0xFF, 0x52, 0x48, 0xA7, 0x15, 0xF0, 0x86, 0x6B, 0xA4,
+ 0x39, 0x0B, 0x94, 0xF0, 0x04, 0x26, 0x56, 0x7A, 0x87, 0x2D, 0xFE, 0x5B, 0xC7, 0x8B, 0xA8, 0xF8,
+ 0x03, 0x38, 0xAF, 0x79, 0x53, 0xEE, 0xF5, 0x77, 0x96, 0x80, 0x22, 0xC8, 0xFB, 0xDE, 0x21, 0xFB,
+ 0x9E, 0x82, 0xF9, 0xB9, 0x93, 0x29, 0x54, 0x4E, 0x9C, 0x63, 0xB3, 0x45, 0x44, 0xB4, 0xA9, 0x24,
+ 0x60, 0x6E, 0x41, 0xBE, 0x55, 0x79, 0x7E, 0xD3, 0xBD, 0x9D, 0xFB, 0x0E, 0x1E, 0xC4, 0xBC, 0xD2,
+ 0x42, 0x2F, 0xE8, 0x2A, 0x4C, 0xAA, 0x90, 0xC0, 0x23, 0x70, 0xC5, 0xC3, 0xB7, 0x2F, 0x55, 0x94,
+ 0x1D, 0x03, 0x97, 0x14, 0x1C, 0xD3, 0x78, 0xA3, 0xFE, 0x7D, 0x16, 0x38, 0xBB, 0x3C, 0xAE, 0xA5,
+ 0xFB, 0x57, 0xAE, 0x6C, 0x34, 0xEC, 0x29, 0x86, 0x65, 0x08, 0x7C, 0x85, 0xCF, 0x96, 0x13, 0xD2,
+ 0xA4, 0x7B, 0xD1, 0x52, 0x64, 0x95, 0xC1, 0xE5, 0xB8, 0x05, 0xAF, 0x7E, 0xC3, 0x85, 0xE8, 0xE3,
+ 0x27, 0xFA, 0xBF, 0xFF, 0xEB, 0x6F, 0xED, 0x08, 0xDA, 0x1B, 0x0A, 0x03, 0x3C, 0x0D, 0xEF, 0x62,
+ 0xD9, 0x16, 0x07, 0xF8, 0x2D, 0x3F, 0xC7, 0x95, 0xFB, 0xE5, 0x42, 0x48, 0x66, 0x7D, 0xFA, 0x94,
+ 0x80, 0x73, 0xD2, 0xB6, 0x7C, 0x60, 0xEF, 0x3C, 0xC1, 0x55, 0x47, 0x1D, 0xBF, 0x32, 0xEE, 0xBE,
+ 0xBA, 0x40, 0xE9, 0x3F, 0x2B, 0xA8, 0x4C, 0x31, 0xD0, 0xF8, 0x9B, 0x8E, 0x83, 0x67, 0x67, 0xBD,
+ 0x8A, 0x63, 0x24, 0x8B, 0x4A, 0x85, 0x22, 0xAA, 0xB7, 0x92, 0xAD, 0x4A, 0xB3, 0x21, 0x15, 0x8F,
+ 0xF4, 0xF7, 0x62, 0x04, 0x53, 0x56, 0xCC, 0xB9, 0x14, 0x30, 0x1E, 0x53, 0x88, 0x3F, 0x2D, 0xE2,
+ 0xF9, 0xC0, 0xA1, 0x58, 0x46, 0x7E, 0x31, 0x9B, 0x97, 0xEF, 0xDA, 0xDD, 0x15, 0xA5, 0x4E, 0x43,
+ 0x16, 0xB7, 0xED, 0x5A, 0x89, 0x0B, 0xFF, 0x28, 0xB5, 0x19, 0xB6, 0x72, 0x02, 0xE4, 0x09, 0x10,
+ 0xBB, 0x2E, 0x76, 0x2E, 0xDC, 0xAC, 0xE0, 0x54, 0x9B, 0x70, 0xFC, 0x0D, 0x98, 0x35, 0xDB, 0xDF,
+ 0x83, 0x8A, 0x42, 0x93, 0xF6, 0x44, 0x34, 0xCE, 0x47, 0xFE, 0x10, 0x2A, 0x4C, 0xA9, 0x12, 0x0E,
+ 0xFD, 0x1E, 0x04, 0x1C, 0x72, 0xF4, 0x40, 0x7C, 0x2A, 0x77, 0xB7, 0x63, 0xFC, 0xAC, 0x28, 0x5B,
+ 0x41, 0x1C, 0x6B, 0x6D, 0xE2, 0x4A, 0x09, 0x26, 0xBA, 0x8E, 0xB4, 0x46, 0x5B, 0xE8, 0x55, 0x5D,
+ 0x89, 0x9A, 0xB4, 0xAE, 0x24, 0x1A, 0x23, 0xBB, 0xC0, 0xD6, 0x78, 0xC1, 0x09, 0xBC, 0x43, 0x4F,
+ 0xBD, 0x67, 0xDC, 0x5E, 0x1A, 0xFC, 0xCA, 0xC9, 0x77, 0xAD, 0x84, 0xF2, 0x39, 0xFA, 0x31, 0x7D,
+ 0x7F, 0xF1, 0xF5, 0xA0, 0xAB, 0xE0, 0x0F, 0x56, 0x96, 0x6C, 0xE5, 0x01, 0x3A, 0x86, 0x78, 0xC6,
+ 0xA1, 0xCB, 0xEB, 0x07, 0xA1, 0x8C, 0x97, 0xC3, 0xDF, 0x6F, 0x99, 0xBA, 0x42, 0x06, 0x86, 0x4E,
+ 0xF2, 0xBE, 0xC8, 0x74, 0xE7, 0x94, 0xFE, 0x39, 0x83, 0x36, 0x95, 0xF7, 0x2F, 0x7B, 0x50, 0xE4,
+ 0x2A, 0xCD, 0x7C, 0xA3, 0x8F, 0x9C, 0x74, 0x8C, 0x3E, 0xAE, 0xF8, 0x49, 0x29, 0xF0, 0xC7, 0x40,
+ 0x0C, 0x52, 0x70, 0x73, 0xAF, 0x18, 0x38, 0x83, 0x88, 0x56, 0x3B, 0xA6, 0xC8, 0xDD, 0xA2, 0xBC,
+ 0xEB, 0xA2, 0xC5, 0x78, 0x6B, 0x27, 0xAE, 0x6F, 0xCB, 0xB6, 0xD6, 0x90, 0xBD, 0x8E, 0x81, 0xCF,
+ 0x4B, 0x0C, 0x9D, 0x50, 0x0D, 0xBB, 0x8B, 0x9A, 0x75, 0x26, 0x9F, 0xCA, 0xA8, 0x73, 0xA9, 0xED,
+ 0x5C, 0xDE, 0xC3, 0x25, 0x82, 0x41, 0xA7, 0x77, 0x46, 0x7D, 0x2F, 0xF6, 0xE6, 0x3E, 0xB2, 0xF3,
+ 0x82, 0xE4, 0xDD, 0x82, 0x68, 0x6E, 0xD2, 0xD4, 0x3A, 0x59, 0x54, 0x2C, 0x69, 0x12, 0x48, 0x1E,
+ 0x63, 0x5D, 0xC2, 0xF9, 0x2C, 0x19, 0x07, 0x5F, 0x59, 0xC4, 0xCE, 0x8D, 0xCA, 0x61, 0xCD, 0xCD,
+ 0xD4, 0x21, 0xC4, 0xA4, 0x0B, 0x2C, 0x00, 0x3E, 0x2E, 0x80, 0x1B, 0x06, 0x61, 0x36, 0x4B, 0xFA,
+ 0x26, 0x94, 0x20, 0xEE, 0xD5, 0x89, 0x04, 0x7A, 0x4F, 0x96, 0x9A, 0x9F, 0xFB, 0xE7, 0x99, 0x35,
+ 0xA0, 0xA5, 0x74, 0x16, 0x25, 0x3C, 0xE3, 0x71, 0xCA, 0x35, 0xE9, 0x4C, 0xD9, 0x17, 0x72, 0x4B,
+ 0xC0, 0x0A, 0x0A, 0xF4, 0x0E, 0xF2, 0xF7, 0x21, 0xC9, 0x3D, 0xCD, 0xA8, 0x62, 0x4A, 0x02, 0x41,
+ 0xD3, 0x06, 0xF1, 0xC5, 0xA4, 0x52, 0x60, 0xDC, 0x64, 0x8B, 0x43, 0x59, 0x14, 0x65, 0x68, 0x89,
+ 0x20, 0xDD, 0x8A, 0x9E, 0x5F, 0xAD, 0xDF, 0x88, 0x8E, 0x2A, 0x8C, 0xFB, 0x23, 0x68, 0xAB, 0xD5,
+ 0x02, 0x9C, 0x23, 0x0A, 0xA3, 0xE3, 0x2B, 0xB2, 0x93, 0x18, 0x76, 0xB8, 0x12, 0xEE, 0xFF, 0x2D,
+ 0x24, 0x03, 0x2F, 0xDA, 0x20, 0xE2, 0x14, 0x6E, 0xB3, 0x65, 0x01, 0x2F, 0x4B, 0xE2, 0xA3, 0x60,
+ 0xA2, 0x32, 0x7B, 0x22, 0x47, 0x58, 0xF1, 0x51, 0x37, 0x45, 0x4D, 0x20, 0xEC, 0xA6, 0xDE, 0x66,
+ 0xD0, 0xFF, 0x61, 0xE0, 0xB8, 0x5F, 0x79, 0xD0, 0x00, 0xE9, 0x51, 0x79, 0xA9, 0xB3, 0x8F, 0x27,
+ 0xC2, 0x9D, 0x05, 0xC0, 0x8D, 0xF3, 0xC8, 0xFD, 0xD7, 0x07, 0x13, 0x0F, 0x0F, 0x37, 0xD4, 0xEB,
+ 0x9E, 0x48, 0xEA, 0xDB, 0xDB, 0x1D, 0xAB, 0x3A, 0x9F, 0x87, 0x50, 0x68, 0x10, 0x52, 0x90, 0x5C,
+ 0xDC, 0xA6, 0x3D, 0xAD, 0x1F, 0x22, 0x3D, 0xD6, 0x45, 0x75, 0x0B, 0x12, 0x93, 0x6D, 0x91, 0x80,
+ 0x64, 0x7A, 0xF7, 0x98, 0xDA, 0x3B, 0x6B, 0xF0, 0x84, 0xC9, 0x1D, 0x76, 0xBB, 0x05, 0x16, 0x6B,
+ 0x6A, 0xB4, 0xA4, 0xE1, 0x9F, 0x6A, 0x7E, 0xB1, 0xCC, 0x49, 0x5E, 0x11, 0x28, 0x30, 0xE1, 0x8A,
+ 0x9C, 0xDF, 0xE5, 0xEF, 0x13, 0xD9, 0x2E, 0xE7, 0xE6, 0xD7, 0xB8, 0x0B, 0x33, 0x62, 0x5D, 0xE8,
+ 0x5D, 0xB0, 0x5C, 0x34, 0x43, 0xA0, 0xC6, 0x84, 0xBC, 0xF2, 0x03, 0x1B, 0x51, 0x70, 0x39, 0xC8,
+ 0xD8, 0x78, 0x98, 0xE9, 0x95, 0x06, 0xE6, 0x24, 0x17, 0x38, 0x3A, 0xB7, 0x7E, 0x53, 0x0F, 0x4D,
+ 0x72, 0xC6, 0x36, 0xFC, 0xC5, 0x7F, 0x0E, 0x47, 0x87, 0xC1, 0x39, 0x92, 0x8C, 0x08, 0xD5, 0x37,
+ 0xB2, 0xC7, 0x10, 0x36, 0xB9, 0x79, 0xB9, 0x1A, 0xBE, 0x79, 0x18, 0x23, 0x6D, 0x25, 0xB0, 0xCB,
+ 0xEC, 0x85, 0xF0, 0x19, 0x58, 0x1C, 0x94, 0xE6, 0x80, 0x3E, 0xB1, 0x13, 0xCE, 0x56, 0x35, 0x18,
+ 0x59, 0x6E, 0xF9, 0x70, 0x11, 0xB6, 0x92, 0x96, 0x1F, 0x50, 0xB0, 0x02, 0x9B, 0x49, 0x92, 0x64,
+ 0x4E, 0xBC, 0xA7, 0x05, 0x4D, 0x34, 0x69, 0xC4, 0x5A, 0xCC, 0xEA, 0x69, 0x44, 0x8D, 0x11, 0xEA,
+ 0xDB, 0x81, 0x08, 0xCC, 0xF9, 0xF6, 0x5B, 0x44, 0xAF, 0xD4, 0xC4, 0xB0, 0x86, 0x90, 0xB9, 0xA2,
+ 0x46, 0x3B, 0x5E, 0x0C, 0x71, 0xBD, 0x3C, 0xC7, 0x49, 0xEA, 0x2D, 0xC2, 0x41, 0x7A, 0xCF, 0xF5,
+ 0x6E, 0x6A, 0x01, 0xA5, 0xD8, 0x54, 0xD7, 0x81, 0xA5, 0x37, 0x55, 0x3D, 0xF3, 0xC3, 0x9A, 0xD1,
+ 0x91, 0xE8, 0x26, 0xB3, 0x1D, 0x4D, 0x81, 0xA7, 0x0E, 0xFD, 0x6C, 0x91, 0xB2, 0xE1, 0x33, 0x45,
+ 0xF3, 0xD0, 0x57, 0x65, 0x7F, 0x29, 0x93, 0x87, 0x82, 0xB5, 0xAA, 0x2B, 0x04, 0x6F, 0x9E, 0xB4,
+ 0xBE, 0x9E, 0x4C, 0x7B, 0xA7, 0x1B, 0x1C, 0x67, 0xD3, 0xF0, 0xBF, 0x6A, 0xED, 0x66, 0xF8, 0xAC,
+ 0x8F, 0xD3, 0x1E, 0xDE, 0xF5, 0x0D, 0x48, 0x75, 0x5B, 0x4F, 0xD5, 0xB5, 0xD2, 0x4F, 0x38, 0x14,
+ 0x44, 0xAC, 0x51, 0x38, 0xF4, 0x2B, 0x88, 0xBF, 0xFD, 0x99, 0xF5, 0x15, 0xE3, 0xC9, 0x6C, 0xEC,
+ 0xB5, 0xE0, 0x25, 0x57, 0x5A, 0x73, 0x28, 0x97, 0xA6, 0x3F, 0x71, 0xD9, 0x84, 0x2C, 0xD6, 0xD3,
+ 0xC5, 0xBA, 0x30, 0xA1, 0x54, 0xE7, 0x87, 0xD7, 0x66, 0x00, 0x58, 0x61, 0x60, 0xF6, 0x6D, 0x30,
+ 0xCF, 0xAA, 0xC6, 0x9C, 0xEE, 0xB1, 0x1A, 0x17, 0x7A, 0xB1, 0x9D, 0xFE, 0x01, 0x98, 0x40, 0xAB,
+ 0x45, 0xC2, 0xCE, 0x29, 0x91, 0xFE, 0xD1, 0xF1, 0xE4, 0x5C, 0xA3, 0x33, 0xA0, 0x57, 0xAA, 0x09,
+ 0x1F, 0x5E, 0x8B, 0x42, 0xE1, 0x03, 0x75, 0x9D, 0x7D, 0x4E, 0x15, 0x7F, 0x74, 0xCB, 0x63, 0xD8,
+ 0x19, 0x17, 0x21, 0x32, 0x22, 0x8D, 0xA8, 0x1F, 0xD8, 0x90, 0x11, 0x3B, 0x97, 0x5A, 0x69, 0x55,
+ 0xDE, 0x31, 0x32, 0x99, 0xD1, 0x71, 0x33, 0xAF, 0x0C, 0x76, 0x77, 0xA9, 0x27, 0x5F, 0x53, 0x00,
+ 0x10, 0x8A, 0xB5, 0x70, 0x83, 0x90, 0xF4, 0x5E, 0xB3, 0xF6, 0xA7, 0x2D, 0x74, 0x58, 0x94, 0x3B,
+ 0x1D, 0xBD, 0x76, 0x2C, 0x22, 0x7A, 0x3B, 0xFC, 0x4C, 0x0D, 0x18, 0x79, 0xAF, 0xAB, 0xEF, 0x60,
+ 0x32, 0xCB, 0x1C, 0xE4, 0x94, 0xD7, 0xB5, 0x0D, 0xEC, 0xA7, 0x8F, 0x84, 0xA3, 0xB8, 0x14, 0x51,
+ 0x6F, 0x70, 0x6C, 0xEE, 0x9C, 0xD4, 0x91, 0xE9, 0x22, 0x8C, 0x9B, 0xD4, 0x0C, 0xD8, 0x6A, 0xB3,
+ 0x9F, 0x52, 0x87, 0x90, 0x3F, 0x51, 0xE2, 0x3A, 0x97, 0x7C, 0x7C, 0xDF, 0x3D, 0x5E, 0x3E, 0x4B,
+ 0x4E, 0xC8, 0x55, 0x5F, 0x29, 0x30, 0x63, 0xA3, 0x32, 0xA2, 0x78, 0x9B, 0x88, 0xAC, 0xDA, 0x01,
+ 0x19, 0x63, 0xD3, 0x68, 0x6D, 0x47, 0xB6, 0x28, 0x07, 0x85, 0x7F, 0xFA, 0xF4, 0x1B, 0xDC, 0x5C,
+ 0x6A, 0xC0, 0x56, 0xBB, 0xF0, 0x24, 0x2C, 0x89, 0x70, 0xC1, 0xAA, 0x71, 0x4D, 0xFA, 0xC3, 0x27,
+ 0x46, 0x4F, 0xAC, 0x56, 0xD4, 0x58, 0x57, 0x53, 0x5F, 0x2B, 0xDF, 0xD2, 0x77, 0x24, 0xDD, 0x80,
+ 0x0B, 0x01, 0xB7, 0x48, 0x8F, 0x6B, 0xE7, 0x6F, 0xA5, 0xA4, 0xF3, 0x3F, 0xA5, 0x33, 0x83, 0xF5,
+ 0xF6, 0x14, 0x9F, 0x6A, 0x1F, 0xD5, 0xAE, 0x35, 0x39, 0xC2, 0xD6, 0xCA, 0x0B, 0x93, 0xDB, 0xDD,
+ 0xA5, 0x61, 0xBC, 0x19, 0xFF, 0x96, 0x43, 0x03, 0x06, 0x06, 0x40, 0x26, 0xFB, 0x74, 0x6E, 0xD6,
+ 0x88, 0x80, 0xD9, 0xE5, 0x07, 0x20, 0x80, 0xEC, 0x82, 0x26, 0x0C, 0x29, 0x64, 0x52, 0x62, 0x06,
+ 0x03, 0x86, 0x4E, 0x41, 0x9F, 0x9D, 0xED, 0x52, 0x8A, 0x4E, 0x86, 0x9C, 0x17, 0x8A, 0xD6, 0xD1,
+ 0x7E, 0xEB, 0x98, 0xEB, 0xC6, 0xC1, 0xE1, 0x1F, 0x92, 0x08, 0xEF, 0x66, 0x62, 0xD9, 0xF5, 0xA2,
+ 0xFE, 0x93, 0x66, 0x63, 0xC5, 0x88, 0x9D, 0xA4, 0xFE, 0x02, 0x77, 0xF3, 0x58, 0x07, 0xEB, 0x05,
+ 0x82, 0x90, 0x2F, 0xD8, 0x04, 0x69, 0xFC, 0x57, 0xE2, 0xB3, 0xB2, 0x6C, 0xCE, 0xC5, 0xC2, 0xFB,
+ 0xC4, 0xA0, 0x5D, 0xEA, 0x7F, 0xDE, 0x00, 0x64, 0x04, 0x8D, 0x5B, 0x1E, 0x33, 0xF1, 0xAA, 0x0B,
+ 0x90, 0xF2, 0x4B, 0xF8, 0x27, 0xA4, 0xCC, 0xE3, 0x54, 0x4B, 0x71, 0x83, 0xB5, 0x39, 0x75, 0xC8,
+ 0xD4, 0x55, 0x36, 0xFE, 0xDE, 0x34, 0xCF, 0xC6, 0xEA, 0xDB, 0x38, 0xD9, 0xB7, 0x85, 0x1A, 0xB9,
+ 0xD1, 0xE5, 0x0C, 0xAB, 0x57, 0x59, 0x68, 0x8F, 0x5A, 0x5F, 0x4C, 0x6B, 0x23, 0xFB, 0x5C, 0x36,
+ 0x4D, 0x31, 0xC5, 0x7A, 0xD9, 0x85, 0x84, 0xA8, 0xB2, 0x75, 0x98, 0xF1, 0x87, 0xC3, 0x68, 0x8B,
+ 0x9C, 0xAB, 0x17, 0xB5, 0xB0, 0xAB, 0xCE, 0xD7, 0x15, 0x20, 0x87, 0x8D, 0x1E, 0x6E, 0xF3, 0xFF,
+ 0xDD, 0xBC, 0x50, 0xE6, 0x46, 0x89, 0xA2, 0x78, 0x60, 0xEF, 0x49, 0x3E, 0x69, 0x81, 0xBF, 0xFD,
+ 0x47, 0x21, 0x33, 0x47, 0x99, 0x0A, 0x66, 0xF6, 0x48, 0xFA, 0xB4, 0x1C, 0x5E, 0x8C, 0x7C, 0xA1,
+ 0x59, 0x1A, 0x0B, 0x2A, 0x3B, 0xA9, 0xD5, 0xEF, 0x9B, 0xE3, 0x5A, 0x0F, 0xCA, 0xF2, 0x3A, 0x2E,
+ 0x1F, 0x2A, 0x79, 0x18, 0x51, 0xCE, 0xE3, 0x2B, 0xB6, 0x82, 0x34, 0x94, 0xE9, 0xC2, 0xF7, 0x9A,
+ 0x4A, 0x16, 0xF0, 0x1B, 0xFC, 0xDF, 0x3F, 0xB8, 0x7E, 0xD5, 0x97, 0x99, 0xDA, 0xF8, 0xCC, 0x13,
+ 0x05, 0xCF, 0xE4, 0x31, 0x4C, 0xE5, 0x3A, 0xED, 0x21, 0x84, 0xBF, 0x30, 0xBF, 0xA1, 0x19, 0x5D,
+ 0x75, 0x95, 0xF1, 0xC7, 0xB2, 0xC4, 0x72, 0xA6, 0x71, 0x42, 0x95, 0xAD, 0x53, 0x5F, 0xA1, 0x5A,
+ 0xFD, 0x6A, 0xF6, 0x46, 0xAC, 0xA6, 0xD7, 0xDB, 0x8B, 0xCD, 0xB9, 0x40, 0xD2, 0xDC, 0xCF, 0xF7,
+ 0xEE, 0x66, 0x0D, 0x77, 0xA1, 0x7B, 0x04, 0x20, 0xF2, 0x9D, 0x51, 0x23, 0xFE, 0x83, 0xB0, 0xC9,
+ 0x27, 0x8E, 0x4D, 0xA5, 0xDF, 0x12, 0x0F, 0x0C, 0x6F, 0x78, 0x4B, 0x0A, 0x98, 0xA6, 0x2C, 0x3C,
+ 0x22, 0x3E, 0x77, 0xF0, 0x39, 0xC6, 0x69, 0x9E, 0x93, 0x8B, 0xD0, 0xBA, 0xBE, 0x61, 0x3F, 0x97,
+ 0xB3, 0xDD, 0x7D, 0x7D, 0xE7, 0x63, 0x6D, 0xDA, 0x1D, 0x48, 0x0D, 0x38, 0xF7, 0x67, 0x95, 0xE7,
+ 0x2F, 0x09, 0xB4, 0xAC, 0xF5, 0xFA, 0xDB, 0x96, 0xE0, 0x38, 0xA9, 0x54, 0x6B, 0x3D, 0xD0, 0x8C,
+ 0xE0, 0xA8, 0x5E, 0x0E, 0x18, 0x64, 0xE5, 0x5B, 0xAF, 0x47, 0x62, 0xB2, 0x03, 0xB7, 0xD8, 0x39,
+ 0x8E, 0xC9, 0x73, 0x95, 0xA9, 0x78, 0x20, 0xC4, 0xF9, 0xFD, 0xFF, 0x72, 0x13, 0xBD, 0x2E, 0x04,
+ 0x54, 0x2D, 0xC8, 0x76, 0x96, 0xB8, 0x09, 0x7C, 0x6D, 0xF3, 0x50, 0x32, 0x49, 0xCD, 0x3B, 0xF2,
+ 0xB1, 0x4A, 0x72, 0x49, 0x30, 0xE3, 0x8D, 0xB0, 0x35, 0x5D, 0xF0, 0x1A, 0x05, 0x3C, 0x4F, 0x9D,
+ 0x37, 0x7B, 0x26, 0xB1, 0xE6, 0x45, 0xAD, 0x10, 0x13, 0x5C, 0x30, 0xD0, 0x7A, 0xF7, 0x00, 0x7B,
+ 0x1E, 0x44, 0xE6, 0x09, 0x59, 0xCD, 0xC7, 0xCF, 0x05, 0x0E, 0x64, 0xC2, 0x37, 0xC6, 0x52, 0xDE,
+ 0x17, 0xAD, 0x80, 0x11, 0x1C, 0x9C, 0xD2, 0x8E, 0x37, 0xD6, 0xEB, 0x22, 0x79, 0x8B, 0x49, 0xC0,
+ 0x99, 0x1B, 0x2D, 0xE0, 0x54, 0x10, 0x14, 0x34, 0x53, 0xB4, 0xF9, 0x02, 0x41, 0xE9, 0x38, 0x16,
+ 0xBB, 0x5A, 0x84, 0x74, 0x9E, 0xBB, 0x2D, 0x98, 0x4A, 0x71, 0xAF, 0x24, 0xC3, 0x16, 0x1F, 0x00,
+ 0x02, 0xE8, 0xD1, 0x50, 0x43, 0x57, 0x55, 0x67, 0xA3, 0xD8, 0x44, 0x62, 0x92, 0x3E, 0x40, 0xA9,
+ 0xE8, 0x2F, 0xA7, 0x07, 0x7D, 0xB1, 0xBC, 0x15, 0xE8, 0x50, 0x23, 0xE1, 0x28, 0xA3, 0x16, 0x69,
+ 0xF5, 0xED, 0x0F, 0x4F, 0x65, 0x44, 0x92, 0xCC, 0x2A, 0xE4, 0x11, 0x61, 0x15, 0x36, 0xB9, 0xA0,
+ 0x31, 0x32, 0x8C, 0xC1, 0xF9, 0x01, 0xC8, 0xA7, 0xA8, 0xB8, 0xEA, 0x33, 0xC7, 0x21, 0xE7, 0xD5,
+ 0x2E, 0x67, 0x2B, 0xBD, 0x97, 0x9E, 0xC9, 0xB6, 0x02, 0xF1, 0xEC, 0x43, 0x2C, 0x94, 0xEE, 0xBC,
+ 0x5D, 0xC4, 0xAE, 0x6E, 0xD0, 0xA0, 0x60, 0x86, 0x67, 0x10, 0xC1, 0xBF, 0x6E, 0xCA, 0x0E, 0x93,
+ 0x70, 0x25, 0xCB, 0x92, 0x68, 0x99, 0x41, 0x37, 0x61, 0x6C, 0x76, 0xE2, 0x6F, 0x0A, 0x28, 0x59,
+ 0x2B, 0xD7, 0x11, 0xE8, 0x91, 0x09, 0x42, 0x12, 0x18, 0x3C, 0x9E, 0x81, 0xD1, 0xA0, 0x86, 0x4C,
+ 0x08, 0xF8, 0x27, 0x6D, 0x5B, 0xA2, 0x7B, 0xBE, 0xBE, 0xEA, 0xBE, 0x21, 0x19, 0x25, 0x42, 0x91,
+ 0x1A, 0x9A, 0x43, 0x4D, 0x7E, 0xF8, 0xC0, 0xAE, 0xC7, 0xBA, 0x56, 0x42, 0x76, 0xE4, 0xFB, 0x4A,
+ 0x48, 0x81, 0xFF, 0x2F, 0xE0, 0xD2, 0x26, 0xB4, 0x74, 0x36, 0x06, 0x14, 0x1D, 0x12, 0xBA, 0x44,
+ 0x7D, 0x12, 0x08, 0xCE, 0x60, 0x9A, 0x65, 0xD3, 0x25, 0x73, 0x13, 0x55, 0xD3, 0x1C, 0xE9, 0x3D,
+ 0x15, 0x3A, 0x8F, 0x25, 0xDC, 0x5B, 0x73, 0xB7, 0x3C, 0xB6, 0x45, 0x73, 0x0F, 0xA4, 0x23, 0x08,
+ 0x2A, 0xB9, 0x8E, 0xF9, 0x2E, 0x81, 0x28, 0xCD, 0x03, 0x72, 0xD3, 0x9F, 0xE1, 0xE6, 0xF4, 0x7E,
+ 0x4F, 0xA6, 0xCA, 0x4E, 0xAE, 0xC9, 0x6B, 0xAA, 0xED, 0x24, 0xB0, 0x58, 0x34, 0xBA, 0x1B, 0x65,
+ 0xCB, 0x00, 0x91, 0x82, 0x40, 0x1E, 0x29, 0xDC, 0x41, 0x11, 0x01, 0x75, 0x56, 0xA8, 0x7F, 0x45,
+ 0xDE, 0x45, 0xC0, 0xC3, 0xEC, 0x29, 0x35, 0x85, 0x46, 0xEE, 0x89, 0xF4, 0x9B, 0xDA, 0x65, 0x87,
+ 0x9A, 0xE2, 0xBD, 0xC5, 0xCC, 0xAD, 0x79, 0x8A, 0xFC, 0x89, 0x6C, 0xCB, 0xAA, 0x5C, 0x31, 0x7F,
+ 0x96, 0xBB, 0xE1, 0x88, 0xB1, 0x8D, 0x0E, 0x1D, 0xFD, 0x0A, 0x53, 0x17, 0x35, 0x7A, 0x3D, 0xAF,
+ 0x68, 0xBA, 0x80, 0xBB, 0x4A, 0x35, 0x8F, 0xB0, 0xF0, 0x01, 0x35, 0xB1, 0xDC, 0x4D, 0x1C, 0x4E,
+ 0x69, 0xD4, 0x1F, 0xAA, 0x1F, 0x92, 0x90, 0xCC, 0xF9, 0xEA, 0x80, 0xD8, 0x95, 0x4B, 0xB6, 0x3E,
+ 0xE0, 0x45, 0x87, 0x3A, 0x08, 0xD5, 0xD1, 0x9F, 0x36, 0x42, 0xAB, 0x54, 0x41, 0xD7, 0x7F, 0xEF,
+ 0xC1, 0xFD, 0xBE, 0x8B, 0xE9, 0xB0, 0xFC, 0x63, 0x10, 0x43, 0x6B, 0x9E, 0x3D, 0x60, 0x79, 0xB2,
+ 0xDA, 0x76, 0xBC, 0xB3, 0xD5, 0x39, 0xA9, 0x60, 0x5C, 0x34, 0x84, 0x9C, 0xC7, 0x1F, 0xA0, 0x2C,
+ 0xE3, 0xBC, 0x17, 0x1F, 0xFA, 0x0F, 0x8A, 0xE5, 0x98, 0xFC, 0x01, 0x41, 0x11, 0x3F, 0x06, 0x8C,
+ 0x87, 0xCD, 0xCC, 0xB9, 0xAC, 0xE1, 0xE9, 0x22, 0xA4, 0x30, 0xB3, 0x49, 0x1B, 0xA7, 0x6A, 0x19,
+ 0x61, 0x53, 0xE6, 0xA3, 0xB7, 0x5D, 0xBB, 0x40, 0xE5, 0x5B, 0x45, 0x47, 0x97, 0xF7, 0xD9, 0x4F,
+ 0xD2, 0xF1, 0x45, 0xBA, 0x17, 0x91, 0xB4, 0x28, 0x3D, 0x22, 0x05, 0x05, 0x9B, 0xE4, 0x22, 0x7E,
+ 0xC4, 0x4D, 0x84, 0xDE, 0x3F, 0x16, 0xDC, 0xC3, 0xF7, 0xFE, 0xBD, 0x30, 0x5E, 0xB2, 0x3B, 0x58,
+ 0xCA, 0x83, 0xD7, 0xA7, 0x8B, 0xD4, 0xEE, 0x43, 0x05, 0x19, 0x1B, 0x68, 0x09, 0x11, 0xF3, 0x55,
+ 0x89, 0x03, 0x9F, 0xC0, 0x94, 0x90, 0x8B, 0xF4, 0xEA, 0xCC, 0x47, 0x73, 0x5F, 0x72, 0x1D, 0x92,
+ 0x94, 0xC1, 0x37, 0x88, 0x68, 0xDE, 0x7F, 0xCE, 0x7B, 0xB6, 0x7B, 0x8A, 0xC3, 0x28, 0x58, 0xF9,
+ 0x88, 0x6D, 0x00, 0xD1, 0x2D, 0x8F, 0x6A, 0x8F, 0x61, 0x7B, 0x09, 0x48, 0x3C, 0xA0, 0x5F, 0x78,
+ 0xAF, 0x9C, 0x93, 0x10, 0x96, 0xFF, 0x37, 0x85, 0x23, 0x18, 0xDB, 0xA2, 0x27, 0xF2, 0xE3, 0x1A,
+ 0xD8, 0xE1, 0xB3, 0x87, 0xCF, 0xA3, 0x3B, 0xC8, 0x2F, 0x87, 0xFD, 0x72, 0xA4, 0xCD, 0xE2, 0xC6,
+ 0xC8, 0x14, 0xD8, 0x93, 0x13, 0x69, 0x83, 0xFD, 0x21, 0x93, 0xC0, 0x9A, 0xA6, 0x71, 0x8D, 0xB7,
+ 0xAE, 0xF2, 0x0C, 0x01, 0xA3, 0x53, 0x86, 0xA8, 0x32, 0xB5, 0x07, 0x31, 0x55, 0xEA, 0x71, 0x07,
+ 0x7A, 0xD8, 0xE4, 0x9B, 0x24, 0xAA, 0x8E, 0xA1, 0xCE, 0x46, 0x9C, 0x81, 0x15, 0x08, 0xFE, 0x59,
+ 0xCC, 0xCA, 0x7D, 0xD7, 0xF0, 0x63, 0x12, 0x70, 0x8B, 0xDA, 0xC6, 0xEA, 0x65, 0xAC, 0x03, 0x35,
+ 0x81, 0x84, 0x66, 0xC9, 0xE4, 0x6D, 0x2F, 0x98, 0x30, 0x3E, 0x1C, 0x09, 0xD0, 0x5E, 0xE7, 0x7F,
+ 0x44, 0x35, 0x7A, 0x56, 0x85, 0x40, 0x41, 0x03, 0xC6, 0x2E, 0x16, 0x34, 0x6A, 0xC3, 0xB1, 0xBF,
+ 0x2C, 0x1D, 0xFD, 0xBD, 0x67, 0x6C, 0x10, 0x44, 0x51, 0x28, 0x9D, 0x90, 0x70, 0x51, 0x2B, 0x17,
+ 0xA8, 0xBB, 0xA6, 0x71, 0x00, 0xD6, 0xF5, 0x7B, 0x25, 0x64, 0x6C, 0xFF, 0xDE, 0xF1, 0x73, 0x3F,
+ 0x66, 0x74, 0xD3, 0xC2, 0x69, 0xF8, 0xBF, 0x04, 0x4C, 0x1A, 0x67, 0xD3, 0x23, 0xC5, 0x1B, 0xCF,
+ 0x0C, 0xCB, 0x5B, 0x1D, 0x56, 0x38, 0x96, 0xBC, 0x1E, 0x57, 0x56, 0x76, 0x71, 0x91, 0x0D, 0xDD,
+ 0xB5, 0x79, 0x0E, 0x39, 0x36, 0x33, 0x38, 0xED, 0x26, 0x6C, 0x48, 0x1B, 0x99, 0x58, 0x4D, 0x0F,
+ 0x73, 0x31, 0x82, 0x83, 0x80, 0x9E, 0xB6, 0x1C, 0x57, 0x54, 0x2A, 0xCD, 0xFB, 0x4A, 0x29, 0x2F,
+ 0xF4, 0x6E, 0x49, 0x6A, 0xC5, 0xCF, 0xA3, 0x5D, 0x5E, 0xBF, 0x9F, 0xA4, 0xF5, 0xE5, 0xBD, 0x6F,
+ 0x8C, 0xB3, 0xA5, 0x95, 0x77, 0x9A, 0x1A, 0x79, 0x01, 0xEE, 0xB7, 0x0D, 0x5C, 0x0E, 0x54, 0x29,
+ 0x33, 0x48, 0x5A, 0xC1, 0xC0, 0x11, 0x54, 0x42, 0xA7, 0x38, 0x97, 0xAD, 0xC9, 0xB0, 0x34, 0x6C,
+ 0x1D, 0x50, 0xAF, 0x18, 0x02, 0xB9, 0x49, 0x0A, 0x08, 0x05, 0x02, 0x64, 0x7D, 0x82, 0xF6, 0xEC,
+ 0xA1, 0x52, 0xC0, 0x69, 0x8D, 0x43, 0x65, 0xE7, 0xB4, 0x1E, 0x50, 0x06, 0xA0, 0xFA, 0x1A, 0x13,
+ 0x5D, 0x29, 0x77, 0x5A, 0xBD, 0x31, 0x23, 0xD5, 0xDC, 0xE3, 0x64, 0xF6, 0x9E, 0x13, 0xFC, 0x61,
+ 0x6E, 0xF3, 0x2A, 0xCB, 0x78, 0x28, 0x75, 0xF3, 0x04, 0x9A, 0x24, 0xB4, 0xF6, 0x99, 0xF4, 0xD4,
+ 0x6D, 0x0A, 0xBA, 0xEE, 0xDF, 0x55, 0x31, 0xF5, 0x6B, 0x98, 0x98, 0xC5, 0x66, 0xD0, 0x4A, 0x8E,
+ 0x25, 0xF4, 0x9B, 0xA5, 0x1C, 0xDB, 0xEC, 0x77, 0x76, 0xAA, 0x62, 0x86, 0x58, 0x39, 0xAC, 0xFC,
+ 0xC9, 0x7A, 0x47, 0x82, 0xC8, 0x12, 0x70, 0xA6, 0x42, 0x0E, 0x5A, 0x3B, 0x72, 0xED, 0x44, 0x66,
+ 0x03, 0x6B, 0x97, 0x75, 0x91, 0x4E, 0x7C, 0xEB, 0xA1, 0x44, 0x20, 0xF0, 0xC2, 0xE8, 0x7E, 0x33,
+ 0x6F, 0x9D, 0xB5, 0xDA, 0x86, 0x09, 0x3D, 0xB8, 0xED, 0x33, 0xCF, 0xF2, 0x0D, 0x26, 0x0B, 0x80,
+ 0x74, 0x16, 0xB7, 0xE2, 0x37, 0x15, 0xF8, 0x27, 0x24, 0xE7, 0x53, 0x23, 0xCE, 0xFB, 0x85, 0x02,
+ 0xC7, 0xB4, 0x14, 0xFB, 0x0C, 0x2D, 0xE6, 0x4A, 0x62, 0x73, 0x2D, 0xAC, 0xD7, 0x15, 0x56, 0x11,
+ 0x9E, 0xD1, 0xC1, 0xB5, 0x3B, 0xEE, 0xEB, 0x16, 0xD2, 0xF7, 0x59, 0x1E, 0xF8, 0x36, 0x60, 0x94,
+ 0x42, 0x7C, 0xD0, 0x26, 0x07, 0x67, 0xBE, 0x15, 0xE9, 0xC4, 0x63, 0x97, 0xAF, 0x95, 0xA8, 0x99,
+ 0xD3, 0x9F, 0xDA, 0xAB, 0xB8, 0xEF, 0xD4, 0xCA, 0xBF, 0x7E, 0xFE, 0x57, 0x6F, 0x34, 0x6F, 0xA0,
+ 0x9B, 0x61, 0xFB, 0xE0, 0xE2, 0xFA, 0xA4, 0x3C, 0x07, 0x92, 0x00, 0x50, 0xA9, 0x1E, 0x3F, 0x3D,
+ 0xA5, 0x8C, 0x65, 0x2D, 0x4B, 0x13, 0x4F, 0x7A, 0xAE, 0xD3, 0x22, 0xC4, 0xB0, 0xF0, 0xEC, 0x2E,
+ 0x76, 0x81, 0xB8, 0xD6, 0x47, 0xE8, 0x5C, 0x4B, 0xD1, 0xFF, 0x7D, 0xFA, 0xE0, 0x18, 0x95, 0x4D,
+ 0x9A, 0x0F, 0x64, 0xF1, 0x90, 0x68, 0xBC, 0x21, 0xF1, 0x82, 0x0A, 0x6D, 0x20, 0xB9, 0x52, 0x74,
+ 0x55, 0xAE, 0x8E, 0x53, 0xA7, 0xAB, 0xB1, 0x7D, 0x8A, 0x59, 0xF9, 0x36, 0xDB, 0x06, 0xAD, 0x20,
+ 0x30, 0xB1, 0xCA, 0xE4, 0x5D, 0x72, 0xCE, 0xE3, 0x74, 0x21, 0x79, 0xBE, 0xA1, 0x3A, 0x3C, 0xD9,
+ 0x14, 0xB9, 0xC9, 0x00, 0xE6, 0x02, 0x93, 0xE9, 0x0A, 0x8E, 0x19, 0x5C, 0x8A, 0x2E, 0xF2, 0x89,
+ 0xC2, 0x04, 0x2E, 0xAE, 0xE5, 0x4B, 0xEF, 0x52, 0xC4, 0xA5, 0x0D, 0x0C, 0x8F, 0xD9, 0x2C, 0x96,
+ 0x43, 0x12, 0x4F, 0x37, 0x7F, 0x99, 0x3E, 0x9D, 0x20, 0x10, 0xFF, 0x46, 0x51, 0xDD, 0x89, 0xD2,
+ 0x8D, 0xDD, 0x3A, 0x84, 0xED, 0x48, 0xCB, 0xB6, 0xDD, 0x60, 0x5B, 0x2A, 0xEC, 0x0B, 0x6E, 0x7C,
+ 0x17, 0x40, 0x59, 0x25, 0x4E, 0xCD, 0xB8, 0x65, 0xC2, 0xD9, 0xBA, 0x51, 0xA8, 0xDE, 0x19, 0xF7,
+ 0x46, 0xA2, 0x75, 0x62, 0x2C, 0xA9, 0xAA, 0x45, 0x9D, 0x88, 0x92, 0xF8, 0x89, 0x52, 0xBB, 0x32,
+ 0xF6, 0xF9, 0x46, 0x5E, 0x62, 0xB2, 0xE7, 0x5B, 0xC3, 0x5A, 0x85, 0x8D, 0x06, 0x7E, 0x41, 0xDF,
+ 0xE2, 0xD2, 0x88, 0x0E, 0x4C, 0xA2, 0x04, 0x14, 0x70, 0xD6, 0xD5, 0xDB, 0x2B, 0xE1, 0x18, 0x2B,
+ 0x0F, 0x32, 0xCB, 0x38, 0x39, 0x81, 0x57, 0x67, 0xC5, 0x26, 0x32, 0xD0, 0xEF, 0x77, 0x27, 0xC7,
+ 0x4C, 0xB2, 0x83, 0x5F, 0xAB, 0x50, 0xA2, 0x4C, 0xC8, 0x3A, 0x2B, 0xDC, 0x63, 0x27, 0x94, 0x91,
+ 0x21, 0x2A, 0x3E, 0xE1, 0xAD, 0xC7, 0x29, 0xE8, 0x7C, 0x49, 0xF3, 0x0B, 0x0B, 0xAD, 0x9C, 0x24,
+ 0x3C, 0xE8, 0x96, 0xA9, 0xBE, 0x78, 0x5F, 0x6E, 0xF5, 0x75, 0xA6, 0x08, 0x2F, 0xD6, 0xE0, 0xFE,
+ 0x40, 0xEB, 0xDF, 0x12, 0xC6, 0x86, 0xDF, 0xE6, 0xEB, 0x4F, 0x78, 0xAF, 0x25, 0x4E, 0x8C, 0x6B,
+ 0xF7, 0x79, 0x5E, 0xBD, 0x47, 0x6E, 0xB0, 0x14, 0xA9, 0xA9, 0xE6, 0x77, 0x26, 0xA6, 0xF7, 0x95,
+ 0x08, 0x7E, 0xDF, 0x35, 0x5D, 0xAC, 0x7D, 0x66, 0xE8, 0xF8, 0xA3, 0x62, 0x11, 0x0A, 0xAE, 0x89,
+ 0x6F, 0xC4, 0xE0, 0xD0, 0x09, 0x54, 0x4C, 0xE0, 0xEE, 0x85, 0x04, 0x26, 0x95, 0x2A, 0xA1, 0xC5,
+ 0xEC, 0xC5, 0x3C, 0xEF, 0x05, 0x84, 0xD3, 0xC6, 0xA3, 0xD9, 0x5D, 0x2A, 0xB5, 0x57, 0x36, 0xB2,
+ 0x95, 0x1D, 0x7E, 0xAF, 0xD1, 0x16, 0x35, 0xA0, 0xE5, 0x30, 0xF4, 0xC1, 0xA2, 0x86, 0xF8, 0xD9,
+ 0x50, 0x04, 0x58, 0xF9, 0x1B, 0x23, 0xE9, 0x18, 0x0E, 0xB7, 0xDC, 0xA9, 0x63, 0x3A, 0x9C, 0xCF,
+ 0x94, 0x3B, 0xB4, 0x6F, 0xCC, 0x55, 0x07, 0x5A, 0xD2, 0xB6, 0x5F, 0x96, 0xB9, 0xC8, 0xE6, 0x94,
+ 0xC2, 0xD5, 0x73, 0x0C, 0x23, 0x4E, 0xD2, 0x06, 0x65, 0xF2, 0x40, 0xF3, 0xF1, 0x48, 0x81, 0xD7,
+ 0xDA, 0x20, 0xAA, 0x22, 0xBE, 0x67, 0x37, 0x1C, 0xC3, 0x29, 0x31, 0x97, 0x31, 0x77, 0x39, 0xFE,
+ 0x0C, 0x86, 0x0A, 0x02, 0x7A, 0xBA, 0xFF, 0x99, 0x46, 0x1F, 0x1E, 0xB4, 0x9A, 0xBD, 0x95, 0xC7,
+ 0x5C, 0xFF, 0x69, 0xEA, 0xC3, 0x61, 0x90, 0x58, 0x66, 0x7B, 0x7C, 0xA6, 0xC0, 0x98, 0x85, 0x7C,
+ 0xD0, 0x4C, 0x3F, 0xBA, 0x82, 0x6F, 0xFB, 0xAE, 0x04, 0xC7, 0x67, 0xF4, 0xEA, 0x06, 0x9F, 0x9A,
+ 0x5E, 0x90, 0x18, 0x56, 0xDF, 0xFE, 0x21, 0x9D, 0xEA, 0xB4, 0xD4, 0x8D, 0x39, 0x1F, 0x8C, 0x74,
+ 0x17, 0x3A, 0x68, 0x50, 0xD6, 0x97, 0xCA, 0x28, 0x96, 0x13, 0x81, 0x92, 0xA6, 0x71, 0x9D, 0x75,
+ 0xF6, 0x5F, 0x94, 0x7D, 0x36, 0xB8, 0x88, 0x76, 0x45, 0x96, 0x22, 0xE1, 0x98, 0x36, 0xAD, 0xDC,
+ 0x8A, 0x59, 0xC9, 0xCA, 0x10, 0x72, 0x89, 0xB6, 0xB9, 0xF3, 0xC3, 0xCC, 0xA1, 0x8E, 0x1C, 0xFD,
+ 0x97, 0x72, 0x0F, 0x13, 0x27, 0x2B, 0x25, 0xAA, 0x5F, 0xBC, 0xBC, 0x07, 0x83, 0x78, 0xB3, 0x91,
+ 0x3E, 0x9B, 0x49, 0xF8, 0x78, 0x82, 0x74, 0x82, 0x7B, 0xE9, 0x0E, 0xBE, 0x6F, 0xA5, 0x4C, 0xE9,
+ 0xB6, 0xD0, 0xCA, 0x9F, 0x2E, 0x42, 0xCE, 0x1F, 0x2C, 0x9F, 0xC9, 0x54, 0x89, 0x9B, 0x3E, 0x00,
+ 0x02, 0x12, 0x4A, 0xAD, 0x81, 0x8B, 0xF3, 0x8A, 0x64, 0x37, 0x0B, 0x49, 0x7C, 0x83, 0xE7, 0x2E,
+ 0xBA, 0x2B, 0xFB, 0x8C, 0x38, 0x50, 0x9C, 0x4B, 0x9A, 0x1E, 0x9D, 0x8B, 0x7D, 0x00, 0x3B, 0x11,
+ 0xE8, 0x3D, 0xE9, 0xD8, 0x6A, 0xF5, 0xD1, 0x7A, 0x22, 0xDE, 0xA2, 0xA2, 0xF5, 0xBF, 0xE4, 0x7B,
+ 0x30, 0x0F, 0x09, 0x57, 0x71, 0xEB, 0x9F, 0x37, 0x3A, 0xB8, 0x4B, 0xAB, 0xA4, 0xFA, 0xA5, 0x6E,
+ 0x52, 0x6B, 0x29, 0x45, 0x00, 0x3D, 0xA7, 0x55, 0xCB, 0x15, 0xFD, 0x25, 0x28, 0xB2, 0x1F, 0xA8,
+ 0xA1, 0x97, 0x99, 0xDE, 0xE0, 0x12, 0xE5, 0x0B, 0x25, 0x66, 0x4E, 0x5C, 0x5C, 0xFE, 0x70, 0x59,
+ 0x1B, 0xC1, 0x59, 0x43, 0x16, 0x2F, 0xF5, 0x01, 0xBE, 0x4B, 0x2F, 0x32, 0x40, 0x4F, 0xEF, 0x9C,
+ 0x15, 0x55, 0x19, 0xEC, 0x03, 0xD9, 0xAF, 0x71, 0x5D, 0xF0, 0xCB, 0xE8, 0x80, 0x70, 0x57, 0xB5,
+ 0xBB, 0x0D, 0x31, 0x4C, 0x77, 0xB6, 0xE3, 0x80, 0x62, 0x4A, 0xAC, 0x0D, 0xDB, 0xD6, 0x9B, 0x31,
+ 0x9E, 0x57, 0x21, 0xF7, 0x14, 0x17, 0x7E, 0x1A, 0x8E, 0x75, 0x68, 0x9B, 0x2A, 0x39, 0x27, 0xB3,
+ 0x6D, 0xAB, 0x91, 0x6C, 0x07, 0xBC, 0x58, 0xDD, 0xDB, 0x4F, 0xD8, 0x9E, 0xFE, 0xDF, 0xB5, 0xD5,
+ 0xAE, 0x25, 0x13, 0xB1, 0xAD, 0xCC, 0x11, 0xDB, 0x56, 0x45, 0x3B, 0x0F, 0x5B, 0x01, 0xF1, 0xD1,
+ 0xDE, 0xD8, 0x7F, 0x15, 0xE8, 0xA7, 0x8D, 0x81, 0x87, 0x8C, 0xEF, 0x93, 0xC2, 0x13, 0xBD, 0x67,
+ 0x62, 0x19, 0x1B, 0x03, 0x21, 0x76, 0x59, 0x1D, 0x1A, 0xDC, 0x29, 0xB9, 0xDD, 0xAA, 0xC6, 0x86,
+ 0xA4, 0x49, 0x86, 0x29, 0x99, 0x71, 0xB5, 0xE3, 0xEC, 0xC9, 0x73, 0xC9, 0xFC, 0x54, 0x8D, 0xCE,
+ 0x2B, 0xB3, 0x6B, 0x05, 0xF7, 0xDC, 0x34, 0x60, 0x6D, 0xCE, 0x8C, 0x41, 0x9E, 0x4A, 0xF0, 0x6B,
+ 0x7B, 0xCA, 0x08, 0xED, 0x88, 0xE2, 0x18, 0x3F, 0x5C, 0x35, 0x80, 0x52, 0x43, 0x47, 0x0B, 0xB8,
+ 0x1C, 0x70, 0x37, 0x08, 0x44, 0x8A, 0xB8, 0x30, 0x6C, 0x0B, 0xC7, 0xFB, 0x32, 0x7F, 0xDD, 0xDA,
+ 0x05, 0xA3, 0x24, 0xE6, 0x02, 0x05, 0x2C, 0x4E, 0x01, 0x33, 0xFC, 0xE5, 0x91, 0xDD, 0xC4, 0x69,
+ 0x64, 0x8E, 0xBF, 0x88, 0xCF, 0xB1, 0x0F, 0x7E, 0x33, 0x41, 0xCC, 0xA3, 0xF6, 0xB7, 0x00, 0x5F,
+ 0x33, 0x46, 0xB2, 0x2B, 0xF4, 0x38, 0x3C, 0x44, 0x30, 0xC8, 0xF0, 0xF6, 0xE7, 0x1A, 0x93, 0x83,
+ 0xB9, 0x62, 0x40, 0xF0, 0x64, 0x1D, 0xC5, 0x47, 0x80, 0x34, 0x03, 0x6D, 0x61, 0xB1, 0xA4, 0xD4,
+ 0x93, 0x8A, 0xDA, 0x24, 0x50, 0xA0, 0x61, 0x7F, 0x51, 0xFD, 0xD7, 0xF1, 0xBD, 0x3F, 0x83, 0x38,
+ 0xC6, 0x2D, 0xA6, 0x3B, 0xCB, 0xD4, 0xF8, 0xD2, 0x9E, 0x2F, 0x4D, 0x20, 0x93, 0x56, 0xFC, 0x72,
+ 0x09, 0x58, 0x15, 0xF5, 0x87, 0xD6, 0x8F, 0x3D, 0xCD, 0x68, 0x5A, 0x61, 0xB1, 0xA0, 0x53, 0x1E,
+ 0x55, 0xDA, 0x47, 0x0E, 0xFA, 0xD0, 0x28, 0x79, 0xF3, 0x17, 0x76, 0x3E, 0x51, 0xE2, 0x7C, 0x40,
+ 0x6B, 0x3C, 0x35, 0xE7, 0x92, 0x20, 0xD5, 0x4D, 0xC1, 0x65, 0x46, 0x78, 0xE6, 0x99, 0x4F, 0xBC,
+ 0xAD, 0x6C, 0xA8, 0xCD, 0x4D, 0xE3, 0x53, 0x85, 0xD3, 0x73, 0x14, 0x2C, 0x9C, 0xC1, 0xC8, 0x70,
+ 0x3D, 0xD2, 0xF2, 0x84, 0x22, 0x92, 0x51, 0x39, 0xD5, 0x0E, 0xB3, 0x68, 0x0C, 0x38, 0xED, 0x73,
+ 0xC0, 0xBA, 0x02, 0xB0, 0x5A, 0x2D, 0x82, 0xEE, 0xCE, 0xE1, 0x66, 0x34, 0x18, 0xE1, 0xC7, 0x3C,
+ 0xA8, 0xB2, 0xB7, 0x3A, 0xEE, 0xFA, 0xF1, 0x36, 0x6A, 0x76, 0x60, 0xBF, 0xA5, 0x79, 0x79, 0x51,
+ 0xEE, 0xAA, 0x4D, 0x53, 0xCD, 0x89, 0x84, 0x65, 0xC0, 0xA0, 0x0D, 0xC2, 0xF9, 0x20, 0x34, 0x5D,
+ 0xE4, 0xC6, 0xD8, 0xCB, 0xD3, 0x2E, 0xBE, 0xBB, 0x48, 0x5E, 0x75, 0x42, 0xB0, 0x23, 0x8F, 0x21,
+ 0xCD, 0x67, 0xF9, 0x63, 0xE5, 0xAB, 0x91, 0x98, 0x7D, 0x94, 0xA9, 0xFA, 0x60, 0x32, 0x78, 0xEB,
+ 0x42, 0x9D, 0x14, 0x4F, 0xBB, 0xDE, 0x43, 0x8F, 0x63, 0x8F, 0xE7, 0xB7, 0x53, 0x69, 0x44, 0x5B,
+ 0x24, 0x01, 0xE1, 0x6A, 0xE3, 0xF6, 0xED, 0x2F, 0x41, 0xA7, 0xF2, 0x4A, 0xED, 0xF9, 0x1E, 0x12,
+ 0xE0, 0x3E, 0x0D, 0xFC, 0x56, 0xFD, 0x1D, 0xC8, 0x32, 0x84, 0x87, 0x19, 0xAE, 0x19, 0x28, 0xFF,
+ 0x9A, 0xAF, 0xF4, 0xC0, 0x06, 0x60, 0xDB, 0xE2, 0xBB, 0xBF, 0xB4, 0x23, 0x69, 0xD9, 0x11, 0x5E,
+ 0x44, 0x0A, 0xB0, 0xC4, 0xE2, 0x2A, 0x6E, 0x10, 0x74, 0x6D, 0x2E, 0xF2, 0x08, 0xCF, 0x88, 0xDF,
+ 0x63, 0x3F, 0xD1, 0xC3, 0xE4, 0x77, 0x12, 0xA7, 0x43, 0xEB, 0x85, 0xA5, 0x7F, 0x8B, 0x03, 0x0A,
+ 0x27, 0x48, 0x5A, 0x16, 0xFB, 0x0C, 0xAB, 0x46, 0x90, 0x6E, 0x26, 0xD6, 0x1C, 0x16, 0xA2, 0x90,
+ 0x10, 0x8B, 0x06, 0x1B, 0xAC, 0x10, 0x92, 0xE4, 0x5B, 0x8D, 0x6C, 0xAC, 0xA8, 0x65, 0x75, 0x48,
+ 0xEB, 0x74, 0x52, 0xA4, 0xD7, 0x4B, 0x49, 0x17, 0x07, 0x4E, 0x5B, 0xA1, 0x42, 0xC4, 0xD7, 0x87,
+ 0x41, 0xD4, 0xAF, 0x33, 0x2C, 0x7A, 0x45, 0x04, 0xCF, 0x24, 0x2D, 0x8E, 0xEF, 0x72, 0x26, 0x09,
+ 0x6A, 0x1A, 0xFF, 0x27, 0x52, 0x98, 0xEA, 0x64, 0xC5, 0x54, 0x96, 0xD3, 0xEC, 0x7A, 0xC2, 0x2D,
+ 0xC5, 0x40, 0x90, 0x2E, 0x20, 0x3F, 0x27, 0x50, 0xF5, 0x19, 0x8B, 0xFB, 0xDC, 0x14, 0x44, 0xE7,
+ 0x13, 0x22, 0xA8, 0x5F, 0x32, 0x5D, 0x07, 0x34, 0xBD, 0xDF, 0x31, 0x77, 0x52, 0xE5, 0xF2, 0x4A,
+ 0x7E, 0x3C, 0x93, 0x67, 0xFB, 0xB5, 0xD5, 0x74, 0x0F, 0x66, 0x15, 0x22, 0xFC, 0xB4, 0x92, 0x41,
+ 0xDB, 0x0D, 0xDE, 0x35, 0xAF, 0xE7, 0xC7, 0x62, 0xB0, 0x0C, 0xCA, 0xAA, 0xD5, 0x0C, 0xAD, 0x81,
+ 0x6C, 0x68, 0xC1, 0x71, 0xE8, 0xB9, 0xE4, 0x8F, 0x94, 0x77, 0x10, 0xD6, 0x23, 0x02, 0xC6, 0xC0,
+ 0xA5, 0xFD, 0xFC, 0xDE, 0xDA, 0x0D, 0x64, 0x4D, 0x8C, 0x59, 0xC9, 0x23, 0x3E, 0x4A, 0x04, 0x68,
+ 0x05, 0xDD, 0x2A, 0x78, 0x64, 0x98, 0x21, 0x2D, 0x77, 0xE6, 0x9D, 0xDC, 0x70, 0x71, 0xB3, 0xE3,
+ 0xAC, 0xF5, 0x7B, 0x27, 0x8F, 0x31, 0x67, 0xC4, 0xAA, 0x9E, 0x62, 0x30, 0xC9, 0x55, 0x01, 0xB6,
+ 0xE2, 0xAC, 0x1E, 0xF2, 0xC6, 0xA1, 0x3D, 0x7A, 0x0E, 0xA6, 0xDF, 0x04, 0x78, 0x78, 0x34, 0x1A,
+ 0x89, 0xF6, 0x82, 0xB7, 0x62, 0xD1, 0x51, 0x87, 0x1C, 0x10, 0x93, 0x9D, 0xE4, 0xA9, 0xE0, 0xD3,
+ 0x39, 0x6D, 0x71, 0x4B, 0x80, 0x91, 0x0F, 0x08, 0x36, 0xC4, 0x09, 0x75, 0xEC, 0xA0, 0x67, 0x2A,
+ 0x92, 0xAA, 0x57, 0x58, 0x1B, 0x62, 0xBF, 0xF4, 0xD0, 0xA2, 0x9B, 0xA1, 0xE9, 0xF5, 0xD7, 0x10,
+ 0xF7, 0x06, 0xA0, 0x5C, 0x9B, 0x1A, 0x37, 0x0A, 0x7F, 0xC2, 0x79, 0xDF, 0x9F, 0x73, 0xC4, 0xAF,
+ 0x98, 0xF7, 0xEC, 0x28, 0x3B, 0xB4, 0x1F, 0x52, 0xD9, 0x46, 0xB5, 0x84, 0x7A, 0x4C, 0xA3, 0x15,
+ 0x3C, 0x7C, 0xEA, 0xBF, 0xA9, 0xAE, 0xB7, 0xC8, 0xF1, 0x2E, 0x5E, 0x03, 0x2B, 0x0B, 0x41, 0x39,
+ 0x01, 0x76, 0xFA, 0x49, 0x34, 0x14, 0x77, 0x9E, 0x40, 0xEB, 0xC1, 0x1F, 0x45, 0x90, 0x20, 0x14,
+ 0x7B, 0x2D, 0x08, 0x93, 0x18, 0x9B, 0x9A, 0x64, 0xC7, 0xE3, 0xC8, 0xE6, 0xE1, 0xFC, 0x50, 0xE9,
+ 0x60, 0x71, 0xDD, 0x7C, 0x7B, 0xCD, 0x5D, 0x8A, 0x47, 0xA0, 0xAF, 0xAE, 0x84, 0x4B, 0x4F, 0xAD,
+ 0x38, 0xD7, 0x3A, 0x8E, 0xD8, 0x9A, 0x50, 0x42, 0x89, 0xAE, 0xD6, 0xFD, 0xB6, 0xCB, 0xFB, 0x6F,
+ 0x0D, 0x6F, 0xE6, 0x44, 0x8E, 0x5F, 0x76, 0x5B, 0x35, 0xB8, 0xB2, 0x3C, 0xDE, 0x20, 0xD3, 0xE8,
+ 0x7A, 0x97, 0x43, 0x56, 0xA7, 0x60, 0xCE, 0x9B, 0x25, 0xB2, 0x8F, 0xCA, 0x51, 0xC0, 0x0B, 0xDA,
+ 0xAA, 0xB1, 0xDC, 0x5A, 0x98, 0xE3, 0x12, 0x9A, 0x58, 0xC5, 0x18, 0xEA, 0x5D, 0x8D, 0x52, 0x86,
+ 0x40, 0x63, 0xBF, 0x18, 0xCA, 0xF8, 0x70, 0x26, 0xA9, 0xE2, 0xD9, 0x79, 0x00, 0x87, 0xE9, 0xF6,
+ 0x82, 0x11, 0x72, 0x02, 0x42, 0x07, 0xF1, 0x21, 0x05, 0xFE, 0x80, 0x4E, 0x15, 0xC6, 0xAC, 0xA7,
+ 0x96, 0x01, 0x87, 0x69, 0x0A, 0xF9, 0xBA, 0x00, 0x39, 0xAB, 0x83, 0xC7, 0x96, 0x6B, 0x2D, 0xC9,
+ 0x5C, 0xC1, 0x86, 0x4F, 0xBD, 0x85, 0xE7, 0x06, 0x81, 0x8A, 0x32, 0xFE, 0xBB, 0x97, 0xCC, 0xAC,
+ 0xD0, 0xEA, 0x2E, 0x80, 0x21, 0x51, 0x36, 0xCF, 0x10, 0x03, 0xA2, 0x66, 0xFA, 0xC4, 0xDB, 0xEB,
+ 0xB9, 0x5F, 0xC5, 0x89, 0x27, 0x18, 0x46, 0x65, 0x7E, 0x02, 0xB3, 0xF9, 0xE5, 0xB8, 0x8E, 0x4C,
+ 0x4F, 0x2F, 0x9F, 0x9C, 0x9D, 0x53, 0x47, 0xA0, 0x97, 0x0B, 0xAB, 0x9F, 0xD1, 0x48, 0x73, 0x24,
+ 0x41, 0xD9, 0xF4, 0xDD, 0xCD, 0xDF, 0x11, 0x13, 0x09, 0xED, 0xB1, 0xB5, 0x83, 0x2A, 0x68, 0x98,
+ 0x49, 0x6B, 0x38, 0xE1, 0x55, 0xD5, 0x84, 0x7F, 0x78, 0x89, 0x17, 0x6E, 0xE0, 0xED, 0x3E, 0x76,
+ 0x94, 0xEE, 0xF0, 0x25, 0x75, 0x03, 0x24, 0xD9, 0xB2, 0xB0, 0xBB, 0xC5, 0xC3, 0x68, 0x11, 0x40,
+ 0xD8, 0x58, 0xE2, 0xBC, 0x1D, 0x2B, 0xCF, 0x5E, 0xF6, 0x65, 0x30, 0xB2, 0x3D, 0x6F, 0xFD, 0xF8,
+ 0xD3, 0xBF, 0x12, 0x09, 0x8B, 0xEF, 0x23, 0x61, 0x16, 0x88, 0x06, 0xF1, 0x6E, 0x1C, 0x88, 0xDB,
+ 0x85, 0xEF, 0x9E, 0xBA, 0x14, 0xC2, 0xD7, 0x38, 0x3D, 0x9C, 0x56, 0x3F, 0x8D, 0x53, 0xA6, 0xCB,
+ 0xF0, 0xF8, 0x4C, 0xE4, 0x38, 0x4D, 0x3A, 0xC2, 0x66, 0x2C, 0x6A, 0x0C, 0xC0, 0x4D, 0xE8, 0xD0,
+ 0xA7, 0x12, 0x8B, 0x92, 0x24, 0xE1, 0x63, 0xF5, 0x2F, 0x2A, 0x1A, 0xA6, 0xB5, 0xEE, 0x02, 0xFF,
+ 0x00, 0xCC, 0xB1, 0x8C, 0xBC, 0xEB, 0xF6, 0x99, 0x2C, 0x56, 0xA1, 0xEF, 0x35, 0x66, 0x7A, 0x01,
+ 0x03, 0x99, 0x8D, 0x05, 0xC7, 0xCF, 0x2C, 0xE5, 0xEE, 0x4B, 0xE9, 0x47, 0x43, 0xE0, 0x69, 0xBE,
+ 0xD4, 0x41, 0xFE, 0xB1, 0x4D, 0xA7, 0x99, 0xED, 0x76, 0x26, 0x57, 0xFA, 0xC8, 0x44, 0x6F, 0x29,
+ 0x54, 0x73, 0x4A, 0x73, 0x44, 0x4E, 0x81, 0x8B, 0x7D, 0x7E, 0x08, 0xB0, 0xF9, 0xE1, 0x22, 0x7B,
+ 0xB6, 0x13, 0xE5, 0x0D, 0x50, 0x65, 0xD1, 0x45, 0x75, 0x5A, 0xEC, 0xB3, 0xA4, 0xEB, 0x99, 0x0B,
+ 0x3E, 0x93, 0x9D, 0xF3, 0x6C, 0x1F, 0x28, 0xD4, 0x6A, 0x3F, 0x5B, 0xF7, 0xDB, 0x75, 0x63, 0xD2,
+ 0x65, 0x60, 0x46, 0x88, 0xD3, 0xE4, 0x7C, 0x2B, 0xCB, 0xF0, 0xF9, 0x1D, 0xD6, 0x29, 0x54, 0x11,
+ 0x59, 0xD0, 0x1D, 0xBB, 0xB4, 0x6C, 0xFF, 0x60, 0x84, 0x7D, 0x2D, 0x20, 0xD2, 0x6D, 0x8A, 0xB4,
+ 0x22, 0x31, 0xA4, 0xA4, 0x61, 0x28, 0x74, 0x17, 0x19, 0xE7, 0x8C, 0x43, 0xA1, 0xBE, 0x29, 0x31,
+ 0x4E, 0x95, 0xD4, 0x59, 0xB7, 0x95, 0xDA, 0xF0, 0xD6, 0x29, 0x3F, 0x36, 0x54, 0x95, 0xBB, 0xE0,
+ 0x04, 0x67, 0x61, 0xBD, 0xB3, 0x4B, 0x9E, 0x55, 0xC0, 0xA8, 0xA6, 0x57, 0x85, 0x5A, 0x21, 0x32,
+ 0x9F, 0x09, 0x00, 0x90, 0xFF, 0x6B, 0x91, 0xD1, 0xB8, 0x28, 0x2E, 0xA9, 0xD4, 0x1D, 0xC3, 0x1E,
+ 0x16, 0x33, 0x33, 0xAB, 0x5C, 0x3C, 0x9C, 0x19, 0x15, 0xF4, 0xBD, 0xB8, 0x81, 0x1E, 0xFF, 0x97,
+ 0xA4, 0x47, 0xB7, 0x1B, 0x7F, 0x13, 0x19, 0x2F, 0x70, 0xAD, 0xF3, 0x6D, 0x8C, 0x42, 0xC8, 0x54,
+ 0x2B, 0x39, 0x23, 0x5D, 0x91, 0x0A, 0x0A, 0xFC, 0xD2, 0x1E, 0xEA, 0xCE, 0x92, 0x2F, 0xF3, 0x6C,
+ 0xF2, 0x17, 0x3B, 0xA8, 0x72, 0x24, 0x45, 0xEC, 0x45, 0x1C, 0xDE, 0xC1, 0x36, 0x43, 0x83, 0x91,
+ 0xCC, 0x48, 0x17, 0xD7, 0x9A, 0x74, 0x26, 0x95, 0x48, 0xCF, 0x25, 0x1C, 0x25, 0x72, 0x8F, 0x6A,
+ 0x58, 0x6A, 0x56, 0x7E, 0x74, 0x6D, 0x35, 0x46, 0xA5, 0xF1, 0xE8, 0x82, 0xCE, 0x34, 0x26, 0x83,
+ 0x5F, 0x94, 0xBA, 0xC6, 0x5E, 0xAB, 0xA8, 0x16, 0x5B, 0xB9, 0xA3, 0xA3, 0xBE, 0xC2, 0x7C, 0x96,
+ 0xCD, 0xF2, 0x5C, 0x12, 0xBA, 0xA2, 0x86, 0x33, 0xCE, 0x07, 0xE6, 0xC3, 0x5B, 0xFD, 0x1B, 0x2C,
+ 0xBC, 0x4E, 0x5E, 0x7D, 0xF3, 0x32, 0xDC, 0x8D, 0x37, 0x04, 0xC3, 0x53, 0x1F, 0xFB, 0xBC, 0x51,
+ 0xFE, 0x0E, 0x27, 0xA5, 0x79, 0x5A, 0x69, 0x85, 0xED, 0x37, 0x52, 0x0E, 0x49, 0xDD, 0x79, 0x48,
+ 0x0E, 0x3A, 0xDA, 0xCD, 0x90, 0x64, 0x1B, 0x63, 0x96, 0xCB, 0x61, 0xB9, 0x0F, 0xEF, 0x49, 0x3A,
+ 0xFA, 0xA5, 0xF7, 0x94, 0x4C, 0xC9, 0x88, 0x72, 0x59, 0x05, 0xD2, 0xCC, 0x57, 0xB0, 0x42, 0x70,
+ 0xF8, 0x4A, 0x80, 0xD8, 0x82, 0x06, 0x3B, 0x07, 0xAF, 0x69, 0x7D, 0xEE, 0x16, 0xE3, 0x55, 0x37,
+ 0x33, 0x30, 0xCA, 0x3B, 0x87, 0xB6, 0x6E, 0x3D, 0xBE, 0xA3, 0x8A, 0x3E, 0x1A, 0xAE, 0x0C, 0x6B,
+ 0x8E, 0x08, 0x6E, 0x0F, 0x53, 0x9C, 0xF4, 0xD5, 0x30, 0x4F, 0xAD, 0xE2, 0x86, 0x7F, 0xD8, 0xA2,
+ 0xC4, 0xEA, 0xBD, 0x55, 0xDC, 0x5F, 0xC7, 0x3B, 0xD6, 0x01, 0xFC, 0xEF, 0xDB, 0x6D, 0xC0, 0xFE,
+ 0x1D, 0x1F, 0xA5, 0x7B, 0x94, 0xE5, 0x4B, 0xFD, 0x9E, 0x1C, 0x54, 0x2D, 0x76, 0xDB, 0x31, 0x70,
+ 0xAD, 0xE3, 0x56, 0xE0, 0x27, 0x0B, 0x38, 0x84, 0xA7, 0xBD, 0x93, 0xED, 0x26, 0x1D, 0xAC, 0x5A,
+ 0x61, 0xB8, 0xF0, 0x64, 0x35, 0x47, 0xA1, 0x32, 0x98, 0x58, 0x29, 0x8A, 0xEF, 0xC9, 0x7D, 0xC6,
+ 0x49, 0xE0, 0x5E, 0xC4, 0x26, 0xC1, 0x1E, 0x44, 0xA5, 0x52, 0xDF, 0x9A, 0x7D, 0xBB, 0x60, 0xDE,
+ 0xB6, 0x0C, 0x83, 0xBC, 0x99, 0x1E, 0x96, 0x2E, 0x81, 0xEB, 0x8A, 0x28, 0xBD, 0x84, 0xD8, 0xF7,
+ 0x8A, 0x3F, 0xD8, 0x0C, 0x1F, 0xDD, 0x49, 0xE6, 0xDF, 0x09, 0x05, 0x68, 0x16, 0x4E, 0x74, 0xCE,
+ 0x15, 0x23, 0x69, 0xC9, 0xF9, 0x4F, 0x9D, 0x80, 0x44, 0x67, 0x28, 0x09, 0x2C, 0xFE, 0x21, 0xCB,
+ 0xCE, 0x9A, 0x06, 0x08, 0xDF, 0xE4, 0x8E, 0x47, 0x3A, 0x97, 0xC3, 0x2B, 0xC4, 0xD4, 0xBB, 0x1F,
+ 0x75, 0xD3, 0x05, 0x74, 0x3F, 0xD2, 0xCD, 0xAA, 0xB2, 0x17, 0x3D, 0x53, 0xE7, 0xA1, 0xC8, 0x4C,
+ 0xF9, 0x1C, 0xAD, 0x5F, 0x54, 0xDC, 0x8C, 0x5C, 0xB9, 0xF0, 0x88, 0xA3, 0x47, 0x0B, 0x35, 0xDB,
+ 0x58, 0x7F, 0x30, 0xC5, 0x5C, 0x38, 0x8F, 0x78, 0x6A, 0x83, 0x0D, 0x00, 0x37, 0xB0, 0x3F, 0x86,
+ 0x3D, 0x7B, 0xC7, 0x69, 0x14, 0x82, 0x03, 0xBE, 0x34, 0x61, 0x82, 0x40, 0xF7, 0x8F, 0x87, 0xAF,
+ 0x83, 0xC6, 0x5F, 0x04, 0x4F, 0xBE, 0x30, 0x0E, 0x90, 0xEA, 0x15, 0x46, 0xEC, 0xC1, 0x99, 0xE2,
+ 0xEB, 0x0A, 0xFF, 0x0B, 0x43, 0x8F, 0xCB, 0x1D, 0x41, 0x76, 0xDC, 0x92, 0xEE, 0x4A, 0xA1, 0xF9,
+ 0x72, 0x6B, 0xE9, 0x8A, 0xE2, 0x2D, 0x21, 0xD2, 0x8E, 0xA7, 0x0E, 0x08, 0x2D, 0x7D, 0xFD, 0xF4,
+ 0xB8, 0x4D, 0xE8, 0x4A, 0xB9, 0x11, 0x12, 0x62, 0x30, 0xCA, 0xB3, 0x90, 0x6C, 0x16, 0xF3, 0x02,
+ 0x71, 0xE2, 0xD5, 0xDF, 0x81, 0xC7, 0x63, 0x00, 0xB0, 0xF8, 0x71, 0x24, 0x08, 0x74, 0xD3, 0x10,
+ 0x23, 0x60, 0x89, 0x24, 0x37, 0x36, 0xCE, 0x8E, 0xE3, 0xB9, 0x36, 0x33, 0x46, 0x88, 0xE9, 0xE4,
+ 0x4C, 0x14, 0xC5, 0xD5, 0xAB, 0x5D, 0x8B, 0xD4, 0xCB, 0x19, 0x6E, 0x9D, 0xBB, 0xF8, 0x85, 0x40,
+ 0xD1, 0x44, 0x03, 0xFF, 0xBA, 0xAA, 0x5B, 0x1E, 0xF5, 0x46, 0x11, 0xB1, 0x48, 0x9C, 0x01, 0xD9,
+ 0x78, 0x1B, 0x52, 0xD7, 0xF7, 0x0F, 0x09, 0x2F, 0xB3, 0xAD, 0xF8, 0x18, 0x5E, 0xCE, 0x13, 0x8D,
+ 0xE8, 0x83, 0xC3, 0x5E, 0x58, 0xED, 0x77, 0x4F, 0x63, 0x8B, 0xF4, 0x87, 0x34, 0xB8, 0xDB, 0xA2,
+ 0xD5, 0x75, 0xD3, 0x54, 0x7E, 0x46, 0x64, 0x88, 0xA3, 0x16, 0xA2, 0x3D, 0xC8, 0x4B, 0x6B, 0x39,
+ 0x73, 0xAE, 0xA2, 0x30, 0xCB, 0x0C, 0x80, 0x7A, 0xB7, 0x06, 0xC9, 0xC8, 0x62, 0x02, 0x1B, 0x3F,
+ 0xD4, 0xB0, 0x98, 0xEE, 0x3B, 0x07, 0x35, 0x9D, 0x22, 0x9E, 0xA5, 0xC2, 0x5D, 0xC6, 0xF7, 0xA9,
+ 0x8D, 0x87, 0x34, 0xF2, 0x63, 0x80, 0x4F, 0x51, 0x2B, 0x96, 0x5C, 0x45, 0xB7, 0x67, 0x55, 0x66,
+ 0xF6, 0x98, 0x8D, 0x13, 0xCC, 0x62, 0x31, 0x31, 0xA0, 0x43, 0x2B, 0x01, 0x79, 0x4C, 0x05, 0x72,
+ 0xD7, 0x39, 0xA4, 0xBB, 0xB7, 0x51, 0x86, 0xCD, 0xF8, 0xE5, 0xD9, 0xE6, 0x04, 0xEB, 0x03, 0x36,
+ 0x00, 0x8D, 0xD7, 0x63, 0x65, 0x24, 0xD8, 0xDA, 0x4D, 0x6F, 0xD1, 0x8E, 0xFE, 0x64, 0xEE, 0x1A,
+ 0x9A, 0x65, 0xFD, 0xB7, 0xB4, 0xEA, 0xCF, 0xB1, 0x0E, 0x95, 0xCC, 0xBC, 0xE8, 0x36, 0xFC, 0x4E,
+ 0xD0, 0x81, 0x48, 0x45, 0x6F, 0xB1, 0xB4, 0x42, 0x4A, 0x91, 0x69, 0x62, 0x17, 0xCD, 0xA8, 0xF1,
+ 0x5B, 0xF6, 0x0C, 0x90, 0xEE, 0x1C, 0xDA, 0xC1, 0x14, 0x73, 0xE6, 0x22, 0xD5, 0x79, 0x28, 0xC3,
+ 0xCC, 0xD6, 0x71, 0xE7, 0x6E, 0x7B, 0x92, 0x82, 0x59, 0x7F, 0xBA, 0x7B, 0x91, 0x66, 0x9F, 0xA6,
+ 0x7F, 0xA3, 0xBE, 0x29, 0x10, 0x57, 0xFB, 0x89, 0x9C, 0xF3, 0x18, 0x5A, 0xF5, 0x04, 0xBF, 0xB4,
+ 0x65, 0x89, 0x20, 0xCF, 0xA8, 0xE6, 0xC2, 0xA8, 0xFE, 0xA1, 0xA4, 0x41, 0x90, 0xE5, 0x43, 0x99,
+ 0x0D, 0x45, 0x80, 0xC0, 0xA0, 0x02, 0xC1, 0x8C, 0x53, 0x22, 0xCA, 0xC0, 0x53, 0xD2, 0x1F, 0x94,
+ 0x54, 0x72, 0x2C, 0xDC, 0x1C, 0x66, 0x00, 0x9A, 0x12, 0x37, 0x9B, 0x85, 0xD4, 0xFA, 0xF4, 0xFC,
+ 0xC3, 0x52, 0x51, 0xAB, 0x39, 0x76, 0x5A, 0x21, 0x39, 0xC2, 0x4A, 0x17, 0xD7, 0xF2, 0x10, 0xD8,
+ 0x6F, 0xF9, 0x9B, 0x92, 0x57, 0x67, 0xC5, 0x20, 0xBC, 0xE1, 0x7C, 0x38, 0x70, 0xA7, 0x6C, 0xC7,
+ 0x0A, 0xFD, 0x6C, 0x3E, 0x91, 0xFA, 0x95, 0x0A, 0x97, 0x14, 0xAD, 0xAA, 0x22, 0xEA, 0xC9, 0xF6,
+ 0xF1, 0x20, 0x61, 0xED, 0x3C, 0x69, 0x84, 0xD6, 0xA6, 0x07, 0x56, 0xA6, 0xAB, 0xD6, 0xCA, 0xA3,
+ 0x06, 0xF0, 0x70, 0x27, 0xE7, 0x32, 0xFF, 0x25, 0x64, 0x75, 0x4C, 0x6B, 0x10, 0x32, 0x29, 0x79,
+ 0xA9, 0xD2, 0x86, 0x4B, 0x1E, 0x17, 0x6F, 0x26, 0x37, 0x34, 0x0B, 0x7C, 0x6D, 0x95, 0x2F, 0x3D,
+ 0x3C, 0xBE, 0x8C, 0xD3, 0x59, 0x27, 0x51, 0x8F, 0xE0, 0xEC, 0xBF, 0x0F, 0x68, 0xE1, 0x96, 0xAE,
+ 0x77, 0x9F, 0x72, 0x9B, 0xFB, 0x3E, 0xF2, 0x3C, 0x16, 0x9C, 0xAA, 0x55, 0x50, 0xDA, 0xFB, 0xB0,
+ 0x5E, 0x02, 0x97, 0x81, 0xC4, 0x86, 0x32, 0x15, 0x7A, 0x38, 0x57, 0x25, 0x74, 0x50, 0x09, 0x6B,
+ 0x79, 0xDE, 0x19, 0x6D, 0xBF, 0xB5, 0x85, 0xE9, 0xAB, 0xA4, 0x9E, 0xF1, 0x06, 0x60, 0x3B, 0x2D,
+ 0xAE, 0x6A, 0x6A, 0xB5, 0x21, 0xAF, 0xAF, 0x0F, 0x1A, 0x85, 0xA7, 0x49, 0x58, 0xB2, 0x4E, 0x3A,
+ 0x7E, 0x66, 0xF5, 0x93, 0xF4, 0xB4, 0x40, 0x53, 0xC6, 0xBA, 0xA6, 0xCA, 0xB6, 0xE4, 0x89, 0x59,
+ 0x9B, 0xA0, 0xB6, 0x0D, 0xAE, 0x42, 0x55, 0x23, 0x93, 0xBF, 0x9C, 0x7A, 0x3C, 0xD0, 0x6E, 0x28,
+ 0x95, 0xE1, 0xDD, 0xFB, 0xAF, 0x88, 0x73, 0xE3, 0xC5, 0xEF, 0x2F, 0xF6, 0x3A, 0xAC, 0x33, 0x9F,
+ 0x94, 0x24, 0x96, 0x41, 0x13, 0xEC, 0xB2, 0xF5, 0xA4, 0xE8, 0x1A, 0xD1, 0x7E, 0xB3, 0x84, 0xFA,
+ 0x56, 0x3E, 0x5B, 0x33, 0xCF, 0xD9, 0x78, 0x4D, 0x25, 0x60, 0x1D, 0x2E, 0x67, 0x76, 0xA2, 0xAC,
+ 0x9D, 0xDD, 0x11, 0x49, 0x07, 0x04, 0xBC, 0xC8, 0x50, 0x77, 0x43, 0xFC, 0xF3, 0x78, 0xE2, 0x03,
+ 0x40, 0x19, 0xD9, 0xCC, 0xEC, 0x6D, 0xB5, 0x7D, 0xF0, 0x57, 0xE5, 0x2A, 0x59, 0x31, 0x92, 0x05,
+ 0x26, 0x94, 0x12, 0x35, 0x29, 0x4B, 0xAC, 0x2B, 0x91, 0x50, 0xD0, 0x0D, 0xED, 0x42, 0x45, 0xDD,
+ 0x18, 0xEB, 0x3E, 0x6A, 0x1A, 0xC2, 0x97, 0x11, 0xF2, 0xB8, 0xA9, 0x5D, 0x25, 0x15, 0x48, 0x7E,
+ 0x2E, 0xA8, 0xDE, 0x87, 0x75, 0x19, 0x2E, 0xD0, 0x5C, 0x6E, 0x4E, 0xE0, 0x0F, 0x8B, 0x52, 0x98,
+ 0x2C, 0xE4, 0xA9, 0x68, 0x77, 0x68, 0x41, 0x6C, 0xEF, 0xA0, 0x3B, 0x2F, 0xB1, 0x1B, 0x08, 0xD1,
+ 0x8C, 0x42, 0x7F, 0x48, 0x9E, 0x70, 0x27, 0x65, 0xE1, 0x56, 0x7A, 0x44, 0x13, 0x3A, 0xCD, 0x5D,
+ 0x8B, 0xFA, 0x93, 0xB6, 0x0A, 0xFF, 0x61, 0x1B, 0x7C, 0x7C, 0x2A, 0x82, 0xC0, 0x23, 0xDE, 0xB3,
+ 0xE7, 0x07, 0xE3, 0x12, 0x0E, 0x2A, 0x99, 0x2C, 0xBA, 0xA5, 0x01, 0x9F, 0xB9, 0x73, 0xBD, 0x5B,
+ 0x5A, 0x33, 0x47, 0x2A, 0xF3, 0xDA, 0xF1, 0x18, 0x20, 0x71, 0xE9, 0xB5, 0x5F, 0x4D, 0xCF, 0xB2,
+ 0xFC, 0xE1, 0x18, 0x2A, 0xC6, 0xE2, 0xDB, 0x8D, 0x12, 0xED, 0xB7, 0x7B, 0x45, 0x20, 0xC8, 0x97,
+ 0xB5, 0xE2, 0x64, 0x91, 0x2B, 0xA1, 0x3B, 0xBB, 0xEC, 0x65, 0xCF, 0xFB, 0x30, 0x73, 0xEB, 0xE4,
+ 0x50, 0xD4, 0xA9, 0x07, 0x14, 0xA0, 0xB8, 0x67, 0x22, 0x35, 0xE4, 0xEF, 0x54, 0xEA, 0x18, 0x60,
+ 0x33, 0x49, 0x33, 0xA6, 0x30, 0xA3, 0xB0, 0x83, 0xA7, 0xE6, 0x47, 0x9C, 0xEF, 0xB7, 0x68, 0x6A,
+ 0xE9, 0xBB, 0x68, 0xDC, 0x62, 0x1F, 0xAB, 0xE1, 0x3A, 0xCF, 0xA2, 0x86, 0x25, 0x8E, 0xC3, 0xC6,
+ 0x54, 0x23, 0x05, 0x62, 0xD2, 0x2C, 0xF0, 0xDD, 0xAD, 0x6B, 0xA4, 0x0D, 0x6B, 0xC3, 0xD8, 0xD8,
+ 0x44, 0x0D, 0xE6, 0x2D, 0xBE, 0x0E, 0x06, 0x72, 0x21, 0xD1, 0xEC, 0xCB, 0x99, 0x98, 0x02, 0xA2,
+ 0x25, 0x1B, 0x67, 0xB4, 0x71, 0xE4, 0xA7, 0xD0, 0xF3, 0x1E, 0x76, 0x1A, 0xAE, 0x95, 0xC1, 0xFE,
+ 0x30, 0x41, 0x17, 0x42, 0x91, 0x64, 0x70, 0xBA, 0x7B, 0xC1, 0xC9, 0x70, 0x3F, 0x1C, 0x59, 0x6E,
+ 0xC5, 0x59, 0x39, 0x9B, 0x57, 0xE8, 0x38, 0x00, 0xD3, 0x89, 0x0B, 0x6D, 0x89, 0x92, 0xF4, 0x9F,
+ 0x97, 0x14, 0x08, 0x3E, 0x5E, 0x8E, 0xD1, 0x18, 0x06, 0xC7, 0x6E, 0x34, 0x2D, 0xAA, 0xC0, 0x22,
+ 0xCC, 0xB2, 0x8C, 0xF2, 0xE8, 0x17, 0xC3, 0x54, 0xBC, 0xF8, 0x09, 0xD1, 0xF9, 0x36, 0x09, 0xF3,
+ 0x23, 0x67, 0xD0, 0xE9, 0x42, 0xB9, 0x7D, 0x41, 0xA5, 0xDE, 0xCC, 0x87, 0x60, 0x9B, 0x92, 0x87,
+ 0xCF, 0xBA, 0xA8, 0x16, 0x28, 0x31, 0xC2, 0x9E, 0xF0, 0xFA, 0x7E, 0x3E, 0x5F, 0xB2, 0x52, 0x3F,
+ 0x0C, 0x8D, 0xA5, 0x4A, 0xEC, 0xB2, 0x1D, 0x10, 0x07, 0x1B, 0xED, 0x0B, 0x1A, 0xA7, 0x03, 0x7E,
+ 0x10, 0x3C, 0x60, 0xD5, 0x8A, 0x66, 0xFB, 0x82, 0x2A, 0x80, 0x8C, 0x65, 0xAA, 0xA2, 0x39, 0x2B,
+ 0x9F, 0x7C, 0x82, 0x8B, 0xF1, 0x1A, 0xDF, 0x58, 0x8A, 0x7D, 0x26, 0xF2, 0x22, 0xC5, 0x72, 0xA8,
+ 0x81, 0x46, 0x5C, 0x2C, 0x16, 0xAF, 0x2F, 0x53, 0xE6, 0xE8, 0x2C, 0x6A, 0xE6, 0x53, 0x4D, 0x44,
+ 0xB7, 0x69, 0x7F, 0xA9, 0x5D, 0x1E, 0x28, 0x3D, 0x04, 0xFF, 0xE5, 0x2F, 0xA8, 0x1E, 0x56, 0x5A,
+ 0xA8, 0xD0, 0x9E, 0xD2, 0x3D, 0x60, 0x87, 0xDF, 0x73, 0x74, 0xA1, 0xFA, 0x83, 0x0A, 0x98, 0x0A,
+ 0xA2, 0x33, 0x0F, 0x5F, 0xB6, 0xF7, 0x81, 0x7B, 0xFE, 0x12, 0x6A, 0x03, 0x80, 0x76, 0xD1, 0xB1,
+ 0x16, 0x40, 0xD7, 0x88, 0xA1, 0xA9, 0x53, 0x0E, 0xF6, 0xA7, 0x02, 0x89, 0x0F, 0x5A, 0x2B, 0x5C,
+ 0xAE, 0xAC, 0x29, 0x8F, 0x2E, 0x9B, 0x8B, 0xEE, 0x46, 0x15, 0x86, 0xFD, 0x29, 0x9D, 0x38, 0xF7,
+ 0x4A, 0x19, 0xDB, 0xC5, 0xDD, 0xE0, 0x50, 0xB5, 0xE3, 0x51, 0x58, 0xF9, 0xD2, 0x22, 0xC7, 0xA3,
+ 0xCD, 0x31, 0xB3, 0x2E, 0x6C, 0x4C, 0x65, 0x98, 0x5E, 0xEF, 0xC0, 0x94, 0x90, 0x7C, 0x27, 0x8C,
+ 0x62, 0x0C, 0x26, 0xE7, 0x0E, 0x3D, 0x5D, 0x4E, 0x9C, 0x6F, 0x74, 0xA6, 0xF2, 0x6E, 0x43, 0xAC,
+ 0x3B, 0x21, 0xB9, 0x13, 0xB8, 0xA4, 0x4F, 0x02, 0x41, 0x94, 0x79, 0x75, 0x1C, 0x2C, 0x94, 0xDA,
+ 0x4F, 0x6D, 0x48, 0x7C, 0xE2, 0xE1, 0xD3, 0x69, 0x19, 0xBC, 0xD7, 0xD5, 0x6C, 0x88, 0x69, 0xB6,
+ 0x34, 0xB6, 0xBB, 0x27, 0x43, 0x26, 0x13, 0x50, 0xD7, 0xEC, 0xFC, 0xC1, 0x2A, 0xE1, 0x71, 0x4C,
+ 0x6B, 0xE7, 0x93, 0x8E, 0x72, 0x74, 0x5E, 0xF5, 0x3E, 0xAA, 0x55, 0x2A, 0x78, 0xB5, 0x67, 0x5E,
+ 0x5A, 0x37, 0x38, 0x8A, 0xE4, 0x4B, 0x9A, 0x19, 0x8D, 0xFC, 0xD9, 0x7A, 0xAF, 0x55, 0xE7, 0x34,
+ 0xAC, 0x27, 0x32, 0xB7, 0x23, 0x58, 0xBC, 0xB2, 0xDB, 0x3C, 0x63, 0xE7, 0x5C, 0xCE, 0x1B, 0x84,
+ 0x0F, 0x85, 0x81, 0xAE, 0xBA, 0xAB, 0xD8, 0x36, 0x79, 0xF9, 0x42, 0x6B, 0x32, 0xCF, 0x84, 0x95,
+ 0xD2, 0x88, 0x52, 0x55, 0x66, 0xBA, 0x75, 0xA5, 0x82, 0xC8, 0x4E, 0x78, 0x0E, 0x9A, 0x0D, 0x96,
+ 0xFD, 0x62, 0x27, 0xF6, 0x4A, 0x40, 0xFA, 0x48, 0x24, 0x68, 0x98, 0x58, 0x71, 0x51, 0x42, 0x70,
+ 0xDF, 0x94, 0x4B, 0x59, 0x49, 0xD0, 0x03, 0x6D, 0x63, 0x3B, 0x8F, 0x19, 0xD6, 0x15, 0x3F, 0x76,
+ 0xB0, 0x96, 0xF7, 0x28, 0x50, 0xDD, 0x1F, 0x61, 0x85, 0x49, 0xB1, 0xF0, 0x3E, 0xDC, 0x7F, 0xA4,
+ 0x91, 0x68, 0xBF, 0x63, 0xE3, 0x7E, 0xBD, 0x78, 0x90, 0xBF, 0xEB, 0x80, 0x05, 0xC2, 0x47, 0xC9,
+ 0xF1, 0xFD, 0x01, 0x26, 0x85, 0xAA, 0x5B, 0xEA, 0xB1, 0xF4, 0x15, 0xC8, 0x84, 0x41, 0x29, 0x64,
+ 0x2D, 0x73, 0xED, 0x01, 0x79, 0x1D, 0x20, 0xD9, 0x78, 0x25, 0xC1, 0x54, 0xB4, 0x07, 0x5B, 0x56,
+ 0xF9, 0x95, 0x8B, 0x93, 0xEE, 0xBD, 0x8A, 0x24, 0x95, 0x06, 0x9F, 0x13, 0x82, 0xCA, 0xBE, 0xC0,
+ 0xD9, 0xE8, 0xFC, 0x04, 0xAD, 0xF5, 0x0A, 0x43, 0xC9, 0x4B, 0xC6, 0x1F, 0x9D, 0xAF, 0xFA, 0x77,
+ 0xA6, 0xC4, 0xA3, 0x3A, 0xC4, 0xED, 0x4C, 0xB9, 0x8B, 0xA1, 0xA5, 0xCD, 0x01, 0xF5, 0xBF, 0x1C,
+ 0x8C, 0x5A, 0x45, 0x20, 0xE5, 0xD4, 0xF4, 0x08, 0x37, 0xC3, 0xBE, 0x9F, 0xE0, 0xD8, 0xDA, 0xE0,
+ 0x5D, 0xC8, 0xB0, 0x0B, 0xF6, 0x2F, 0xF8, 0x39, 0xB4, 0x4D, 0x61, 0x5B, 0x1E, 0x90, 0xFB, 0xAB,
+ 0x6A, 0x64, 0xAC, 0x52, 0xE0, 0xEE, 0x44, 0x5D, 0xE5, 0x0C, 0x24, 0x4E, 0x36, 0xF8, 0x7C, 0x40,
+ 0xD6, 0x7F, 0xFE, 0x30, 0x4C, 0xEA, 0xB3, 0x38, 0x53, 0xE3, 0xDC, 0x8D, 0x43, 0xAB, 0x5F, 0x33,
+ 0x7D, 0xB5, 0xC7, 0x9C, 0x4D, 0x75, 0xDD, 0x29, 0x65, 0x66, 0xF3, 0xAE, 0x16, 0xB4, 0xF8, 0x4F,
+ 0xC4, 0xDA, 0x06, 0x47, 0x7D, 0xB8, 0xFE, 0x9D, 0x86, 0xAD, 0xB9, 0xD4, 0xF1, 0x12, 0x0A, 0x17,
+ 0xBB, 0xF6, 0x59, 0x79, 0x47, 0x83, 0xCD, 0x14, 0xFF, 0xCE, 0xE9, 0x3C, 0xA6, 0xB1, 0xC2, 0x1A,
+ 0xCB, 0x4D, 0x04, 0x73, 0x00, 0x6E, 0x93, 0x37, 0x14, 0xB0, 0xCB, 0xCC, 0xFF, 0xBD, 0x9E, 0x57,
+ 0x87, 0x3A, 0xEB, 0x71, 0xBC, 0x01, 0x91, 0x46, 0x61, 0x03, 0x04, 0x02, 0x6F, 0xF4, 0x20, 0x0D,
+ 0xD5, 0x77, 0xDA, 0xD4, 0x77, 0x4E, 0xEE, 0xA0, 0x05, 0x23, 0x66, 0x10, 0xC7, 0xDF, 0xEF, 0x81,
+ 0x6D, 0x9B, 0x24, 0xD3, 0x09, 0x08, 0x7A, 0x2F, 0x55, 0xBE, 0xA0, 0x3A, 0xDE, 0x31, 0x3C, 0x92,
+ 0x1C, 0xA3, 0x46, 0x05, 0x74, 0xDE, 0x17, 0x85, 0xC6, 0x7F, 0x51, 0x1D, 0xA9, 0xDE, 0x70, 0x90,
+ 0x28, 0x07, 0x7E, 0xB8, 0x40, 0xB6, 0xEA, 0x75, 0x2E, 0xE5, 0x7B, 0xC9, 0x97, 0x37, 0x96, 0xE2,
+ 0x49, 0x11, 0xFF, 0x21, 0x3F, 0x6F, 0x10, 0xEB, 0x89, 0x99, 0x2E, 0xD6, 0x00, 0x35, 0x99, 0xD6,
+ 0x45, 0x8E, 0xD9, 0xF1, 0x63, 0x80, 0xC5, 0xF0, 0x88, 0x45, 0xAD, 0xE9, 0x56, 0x56, 0x77, 0x11,
+ 0xCE, 0x39, 0x97, 0xCA, 0x8F, 0x5C, 0x4B, 0xD7, 0x00, 0x9A, 0x12, 0x83, 0x48, 0xF3, 0x15, 0x6C,
+ 0x8F, 0x52, 0x61, 0xC4, 0x4F, 0x7A, 0x4A, 0x1D, 0xB3, 0xCC, 0x9E, 0xD3, 0x34, 0x44, 0x13, 0x31,
+ 0x11, 0xBF, 0x5F, 0x09, 0x21, 0x57, 0x2B, 0x86, 0x32, 0x7A, 0xCA, 0x0C, 0x92, 0xC0, 0x48, 0xFD,
+ 0x0B, 0x72, 0x2D, 0xCB, 0x99, 0x9D, 0xF7, 0xB3, 0x35, 0xFB, 0x35, 0x84, 0x57, 0x96, 0x51, 0xDB,
+ 0x36, 0x3D, 0xA0, 0x1F, 0x11, 0x9A, 0x08, 0x32, 0xCA, 0xAF, 0xCE, 0x3B, 0xD5, 0x69, 0x76, 0xCD,
+ 0xF2, 0xF5, 0x25, 0xC2, 0xA4, 0x93, 0xE3, 0x5B, 0x6C, 0x0F, 0x18, 0x1B, 0x9C, 0x6F, 0xDC, 0xBD,
+ 0xEF, 0x75, 0x2B, 0x86, 0xC1, 0x20, 0xD7, 0x27, 0x25, 0x97, 0x82, 0xFB, 0xF6, 0x60, 0x88, 0x0E,
+ 0xC5, 0xE8, 0x7B, 0x40, 0x12, 0xCE, 0xC4, 0x3E, 0xDB, 0x7B, 0x85, 0x43, 0x79, 0x26, 0xF6, 0x9A,
+ 0xE2, 0x29, 0xE8, 0xB1, 0x5E, 0x21, 0xC6, 0x49, 0xB9, 0x43, 0x53, 0x32, 0xD3, 0xF0, 0x8B, 0xF7,
+ 0x36, 0xB3, 0x00, 0x9B, 0xB8, 0xC8, 0xB4, 0x77, 0x81, 0xE7, 0xEE, 0x06, 0x23, 0x98, 0xBF, 0x0A,
+ 0x2B, 0xFB, 0xA8, 0x59, 0x24, 0xED, 0x41, 0x11, 0xF9, 0x3A, 0x11, 0xEA, 0xCB, 0x96, 0x82, 0x1E,
+ 0xC3, 0x98, 0xD1, 0x09, 0xEC, 0x4E, 0x4C, 0x46, 0xA6, 0x16, 0x2F, 0x95, 0x42, 0xAD, 0xB8, 0x2D,
+ 0x33, 0xE6, 0x3A, 0x2B, 0xB0, 0x42, 0x01, 0x1F, 0xFB, 0xAD, 0x25, 0xE5, 0x61, 0x40, 0xFF, 0x73,
+ 0xFD, 0x55, 0x4F, 0xE4, 0x0E, 0x0B, 0x5B, 0x8F, 0x14, 0xDA, 0x27, 0xA9, 0x10, 0x2F, 0x43, 0x71,
+ 0xF3, 0x2C, 0x1C, 0x2A, 0x66, 0x3F, 0xAB, 0x72, 0xA0, 0x5F, 0x5F, 0x3F, 0xD0, 0x79, 0xDE, 0xCB,
+ 0x7B, 0xAD, 0x1B, 0xD5, 0x7F, 0x69, 0x8D, 0xB7, 0xD2, 0x92, 0x9D, 0x25, 0xE5, 0xB3, 0x66, 0x17,
+ 0xC4, 0xF9, 0xE4, 0x2E, 0x58, 0x96, 0x9B, 0x35, 0x5F, 0xDD, 0x49, 0x18, 0x64, 0xB4, 0xEE, 0xE8,
+ 0xE4, 0x59, 0x42, 0xF8, 0xF2, 0x90, 0xEB, 0x7C, 0xDA, 0x15, 0x94, 0xDC, 0x0D, 0xBD, 0x5B, 0x03,
+ 0x29, 0xCF, 0xA7, 0xCE, 0xB7, 0xCA, 0x80, 0xE0, 0x00, 0xF1, 0x77, 0x67, 0xBD, 0x41, 0xC0, 0xF0,
+ 0x16, 0x13, 0xA6, 0x4D, 0x59, 0xA9, 0x47, 0xB6, 0x26, 0x6E, 0xA7, 0x6B, 0xA6, 0xAE, 0x9C, 0x25,
+ 0x7C, 0xCC, 0x2E, 0xF2, 0x3B, 0x0C, 0x3A, 0xA8, 0x68, 0xD9, 0x9C, 0xE0, 0x81, 0x72, 0x70, 0xAB,
+ 0x2C, 0x9A, 0x9D, 0x7E, 0x3D, 0xBB, 0x67, 0xD4, 0x9E, 0xB2, 0x92, 0xA1, 0x4B, 0x54, 0xB0, 0xAA,
+ 0x0F, 0x1F, 0xAB, 0x51, 0x51, 0x23, 0xF2, 0xDE, 0x08, 0x76, 0x7E, 0x9E, 0x37, 0xF3, 0xAF, 0xFF,
+ 0x7F, 0xE9, 0xBE, 0x0B, 0x69, 0x3D, 0x9F, 0xE5, 0x40, 0x88, 0x35, 0xBF, 0x2E, 0x50, 0x1C, 0x5D,
+ 0x37, 0xA2, 0x9F, 0xF5, 0x07, 0xBE, 0x32, 0x64, 0xFE, 0x1D, 0x70, 0xDF, 0xBC, 0x84, 0x7A, 0xBB,
+ 0xAB, 0x73, 0x56, 0x21, 0x75, 0xF8, 0x00, 0x54, 0x12, 0x93, 0x57, 0x03, 0x8F, 0x33, 0x86, 0xC0,
+ 0x94, 0xAF, 0x57, 0xA2, 0xAA, 0x30, 0xC3, 0xD2, 0x7E, 0x65, 0xF8, 0x21, 0x60, 0x85, 0x45, 0x38,
+ 0x87, 0x9E, 0xAC, 0xAE, 0x23, 0x65, 0xC0, 0xEE, 0xAD, 0x68, 0x03, 0xFC, 0xF3, 0x94, 0x99, 0x95,
+ 0xA7, 0x3E, 0x0A, 0x78, 0x6C, 0xAE, 0x26, 0x91, 0xD8, 0x82, 0xA0, 0xD3, 0x1E, 0x6E, 0xB5, 0x1A,
+ 0xE6, 0x6D, 0x4D, 0x6F, 0x11, 0xEA, 0x20, 0x36, 0xB4, 0x74, 0x0F, 0xF1, 0x3B, 0xFE, 0xB6, 0xE3,
+ 0xA4, 0x1B, 0x9A, 0x81, 0xD5, 0x6F, 0xFD, 0xFE, 0x4F, 0x28, 0x5D, 0x73, 0x6F, 0x01, 0x09, 0x18,
+ 0xB1, 0x5A, 0xCB, 0xC4, 0x52, 0x07, 0x16, 0xD6, 0x53, 0x84, 0x04, 0x44, 0x0B, 0xC0, 0x1F, 0xA4,
+ 0x72, 0xB5, 0x7D, 0x3C, 0x71, 0x54, 0x65, 0xA3, 0x01, 0x9F, 0x66, 0xF8, 0x6E, 0xC4, 0xB3, 0x53,
+ 0x51, 0x30, 0x4B, 0x13, 0xD6, 0x4B, 0x19, 0xF6, 0x38, 0x55, 0xCA, 0x53, 0x7F, 0x5B, 0xB2, 0x3D,
+ 0xEC, 0x50, 0xBB, 0x7F, 0x90, 0x35, 0x96, 0x62, 0x74, 0x75, 0xC5, 0xD7, 0x72, 0x93, 0x11, 0x6A,
+ 0xE0, 0x1D, 0xE7, 0x26, 0xD4, 0x50, 0x21, 0x7D, 0x03, 0x08, 0x52, 0xF7, 0x15, 0xDB, 0x52, 0xEA,
+ 0x32, 0xF7, 0xA5, 0x45, 0x91, 0x0A, 0x4A, 0xE1, 0x5C, 0x24, 0x6C, 0x88, 0xEF, 0xC3, 0x3B, 0xAC,
+ 0x60, 0x95, 0x19, 0x5E, 0xF4, 0x27, 0xB6, 0x00, 0xBA, 0xBA, 0x76, 0xA2, 0x5E, 0xFA, 0x1A, 0x14,
+ 0xFC, 0x44, 0xD0, 0x8A, 0xFF, 0x89, 0xE7, 0x60, 0xF0, 0xD3, 0x09, 0x8C, 0x2D, 0xD9, 0x49, 0x61,
+ 0x76, 0xF1, 0xD8, 0xE2, 0x05, 0xA5, 0x0A, 0xEF, 0x28, 0xA0, 0xDE, 0x38, 0x58, 0x87, 0x5E, 0xB3,
+ 0x02, 0x43, 0x68, 0x66, 0x16, 0x62, 0xA1, 0xC9, 0xD6, 0x4C, 0xD9, 0x80, 0xB8, 0xB5, 0xD1, 0x6B,
+ 0x06, 0x07, 0xCD, 0xB8, 0xE9, 0xDD, 0xF5, 0x32, 0x24, 0xF9, 0x93, 0x64, 0xE3, 0xCE, 0x22, 0xB0,
+ 0x0D, 0x2B, 0xA4, 0xC6, 0x5C, 0x3A, 0xFE, 0xC2, 0x7D, 0x9C, 0xDD, 0xB1, 0x0E, 0x34, 0x0E, 0x3F,
+ 0x95, 0xBE, 0xC8, 0xCC, 0x63, 0xAC, 0x12, 0x06, 0xA3, 0xA6, 0x7A, 0xAF, 0x05, 0x81, 0xE9, 0xCF,
+ 0xD0, 0xA9, 0x2A, 0x05, 0x78, 0xE1, 0x0C, 0x48, 0x80, 0x89, 0xFF, 0x99, 0x6B, 0x30, 0xA2, 0xC8,
+ 0x05, 0x22, 0x5D, 0x41, 0xB6, 0xF5, 0x5C, 0x63, 0x61, 0x30, 0x84, 0x86, 0x89, 0x4E, 0xC2, 0x67,
+ 0x3E, 0xBA, 0xF9, 0x1C, 0x5F, 0x1E, 0x1A, 0xCA, 0x44, 0x56, 0x71, 0x1A, 0x06, 0x08, 0xBC, 0xF3,
+ 0xD5, 0xFC, 0x10, 0xB5, 0x49, 0x4A, 0x08, 0x98, 0x6C, 0x07, 0xD8, 0x45, 0xA3, 0x5A, 0x8D, 0xBE,
+ 0x85, 0xAA, 0xA3, 0x39, 0xC9, 0xAA, 0x62, 0x4F, 0xC7, 0xD7, 0xDC, 0x74, 0x4F, 0x65, 0x1B, 0x7A,
+ 0x18, 0x6A, 0xF5, 0x83, 0x35, 0x31, 0xD2, 0xBC, 0xCD, 0xC7, 0xE1, 0x82, 0xE4, 0x76, 0xDC, 0x5C,
+ 0x6B, 0xB9, 0x70, 0x20, 0x09, 0x83, 0xDA, 0x70, 0x4C, 0xD1, 0x78, 0xE3, 0xCE, 0x62, 0x93, 0x85,
+ 0x59, 0x39, 0xB2, 0x94, 0x6D, 0x91, 0xFA, 0x12, 0xD9, 0xEC, 0xB1, 0x4C, 0x18, 0x13, 0xF1, 0xBD,
+ 0x8A, 0xC2, 0x6F, 0x99, 0xBA, 0xD3, 0x8C, 0xFC, 0x46, 0xC1, 0x45, 0x15, 0x54, 0x8A, 0x47, 0xAF,
+ 0x2A, 0xEA, 0x37, 0x37, 0x47, 0x77, 0xE0, 0x8C, 0xB7, 0x8D, 0x2A, 0x61, 0x3F, 0xCF, 0x1D, 0x33,
+ 0x79, 0x99, 0x14, 0x42, 0xED, 0x71, 0x90, 0xC5, 0x97, 0x5B, 0x8A, 0xC7, 0xB7, 0x31, 0x9D, 0x4B,
+ 0xF2, 0x3D, 0x83, 0x44, 0xF6, 0x3C, 0x8E, 0x8B, 0xFA, 0xC3, 0x34, 0x7A, 0x8B, 0x02, 0x2D, 0x10,
+ 0x34, 0x87, 0x0F, 0x0C, 0x2C, 0x67, 0xF4, 0x79, 0x19, 0xED, 0x7B, 0x6A, 0x24, 0x20, 0x41, 0xE6,
+ 0xE5, 0x48, 0xDD, 0x96, 0xEF, 0x6A, 0xA8, 0x4E, 0x98, 0xFB, 0xE2, 0x0B, 0x86, 0xCA, 0x8E, 0x47,
+ 0x84, 0xBB, 0x3C, 0x57, 0xE6, 0xDF, 0xC1, 0xA5, 0xE7, 0x01, 0x7C, 0xD2, 0xDB, 0xCC, 0x39, 0x3B,
+ 0x04, 0x33, 0xC2, 0x2F, 0xC5, 0x8C, 0xB2, 0xD0, 0x9B, 0x02, 0xC7, 0x9B, 0xED, 0x8F, 0xD4, 0xDB,
+ 0x10, 0x63, 0x0C, 0x04, 0x36, 0x15, 0x36, 0xB4, 0x56, 0x34, 0x51, 0x7E, 0x31, 0x8E, 0xEB, 0x58,
+ 0x63, 0xB0, 0x89, 0xA7, 0x46, 0x48, 0x3C, 0x0F, 0xCC, 0xA9, 0xF0, 0x1D, 0xD5, 0x8D, 0xCF, 0x50,
+ 0x78, 0x88, 0x8B, 0x2C, 0xBC, 0x64, 0xD1, 0x80, 0x2F, 0x87, 0xBF, 0x0D, 0x17, 0x97, 0xBD, 0x9D,
+ 0xC1, 0xAC, 0xDE, 0x9E, 0x7C, 0x4D, 0x69, 0xBF, 0x57, 0x5A, 0x40, 0xE1, 0xC8, 0x1F, 0xD7, 0x22,
+ 0xF4, 0x4D, 0x29, 0x0D, 0x2D, 0x58, 0x28, 0xFA, 0x5A, 0x6D, 0x1C, 0x22, 0x46, 0x9C, 0x13, 0xFD,
+ 0x9A, 0xD6, 0x04, 0x6C, 0x17, 0x5D, 0x7D, 0x4A, 0x9F, 0xDC, 0x83, 0x3E, 0xD4, 0x48, 0x75, 0x1B,
+ 0x8F, 0x97, 0x55, 0x29, 0x77, 0xE3, 0x38, 0xDF, 0xE8, 0xA1, 0x14, 0x1E, 0xEC, 0x4A, 0x6E, 0x90,
+ 0x92, 0xDF, 0xFD, 0xEB, 0xDA, 0x6D, 0xC9, 0x69, 0xC6, 0xB9, 0xCD, 0xEB, 0x56, 0xC6, 0xA8, 0xD8,
+ 0xCB, 0x91, 0x28, 0x8E, 0xEE, 0x55, 0x74, 0xCD, 0xF7, 0xF4, 0x68, 0xB9, 0x4E, 0xA0, 0xA1, 0x31,
+ 0x2E, 0xAE, 0x92, 0xE9, 0x27, 0xC9, 0xA5, 0x19, 0x73, 0x52, 0xA4, 0xE2, 0x02, 0x39, 0x17, 0x23,
+ 0x71, 0xD9, 0x3C, 0x8F, 0x9D, 0xD3, 0x33, 0x40, 0x86, 0x45, 0x09, 0x2D, 0x92, 0xB4, 0xF2, 0xE8,
+ 0xEC, 0x89, 0xFA, 0xA5, 0x84, 0xC0, 0xE0, 0xAE, 0x81, 0xBB, 0xB1, 0xC1, 0xD4, 0x20, 0x7D, 0x96,
+ 0x2D, 0x1A, 0x0B, 0x82, 0xF3, 0xC2, 0xAC, 0x41, 0x57, 0xD9, 0xC0, 0xF9, 0x02, 0x4D, 0xD7, 0xEB,
+ 0xB7, 0xF2, 0x21, 0x56, 0xCD, 0xB0, 0x4A, 0xA8, 0xEA, 0xE1, 0xF4, 0x5D, 0x6A, 0xB0, 0x27, 0xDF,
+ 0xFF, 0x5A, 0xE3, 0x4B, 0xAB, 0x45, 0xD6, 0x8D, 0x15, 0x99, 0x18, 0x80, 0x64, 0xA4, 0xCF, 0xE2,
+ 0x9C, 0x23, 0xB3, 0xA3, 0xFC, 0x48, 0x1E, 0x2E, 0x2B, 0xC6, 0x67, 0xAC, 0x5F, 0x97, 0x46, 0xD8,
+ 0xE2, 0xC8, 0x91, 0x53, 0xA5, 0x05, 0x42, 0x22, 0x21, 0x9B, 0x17, 0x17, 0xB2, 0xC9, 0x65, 0x9F,
+ 0x51, 0xBD, 0x5E, 0x9D, 0x35, 0x5F, 0xFC, 0x6B, 0x23, 0x74, 0x5B, 0x60, 0xDD, 0xCB, 0x14, 0x23,
+ 0x28, 0xEE, 0x90, 0x93, 0xC8, 0xAF, 0x94, 0x5F, 0x5B, 0xC0, 0xCD, 0xE5, 0x8B, 0x71, 0xD4, 0xBE,
+ 0xA9, 0xE9, 0x6F, 0x1B, 0x0D, 0x89, 0x8D, 0x09, 0x99, 0xB2, 0xD7, 0x28, 0x41, 0xAD, 0xE1, 0x06,
+ 0xFD, 0x16, 0x94, 0xA4, 0x8F, 0x9F, 0xAA, 0xF6, 0x4D, 0x3F, 0xEA, 0x67, 0x46, 0x52, 0x60, 0x8E,
+ 0x5D, 0xB0, 0x42, 0x84, 0xC6, 0xEF, 0x00, 0xF0, 0x90, 0xBA, 0x2E, 0xAF, 0x4F, 0xB9, 0x09, 0x3B,
+ 0xCB, 0x55, 0x74, 0x49, 0x5A, 0x84, 0x45, 0xAA, 0x73, 0x60, 0x95, 0x4B, 0xB3, 0x4A, 0xB9, 0xA0,
+ 0x17, 0x54, 0xF7, 0x76, 0x0C, 0x43, 0xAB, 0xC9, 0xA3, 0x46, 0x99, 0xD4, 0x5C, 0x9F, 0xA2, 0xFC,
+ 0xC8, 0xDC, 0x48, 0x1C, 0x12, 0x3E, 0xC9, 0x6C, 0x98, 0x08, 0x12, 0x63, 0x80, 0x11, 0x85, 0x10,
+ 0x9E, 0x6F, 0xC4, 0x4C, 0x6E, 0x63, 0xCF, 0xDB, 0x96, 0xFE, 0x53, 0x08, 0xA6, 0x10, 0x4F, 0xD0,
+ 0x1B, 0x59, 0xEB, 0x6F, 0x64, 0xF6, 0xA3, 0x43, 0x7A, 0x68, 0x6C, 0xCC, 0x01, 0x45, 0x33, 0xCF,
+ 0xED, 0x4C, 0xB1, 0x1F, 0x5F, 0x9B, 0x9B, 0x5D, 0x31, 0x20, 0x4D, 0x32, 0xA2, 0xE7, 0x2A, 0x7C,
+ 0xA6, 0x6D, 0x4F, 0x57, 0xDE, 0x36, 0xF5, 0xDE, 0x74, 0x9E, 0x2D, 0xA7, 0x76, 0x01, 0xB8, 0x1A,
+ 0x77, 0xA4, 0x9B, 0xCB, 0xEE, 0x04, 0x87, 0x98, 0x53, 0x72, 0xF1, 0x29, 0xC1, 0x7A, 0x8B, 0xE6,
+ 0xAB, 0xA5, 0x18, 0xF4, 0x68, 0xC7, 0x58, 0x50, 0xFC, 0x1E, 0xD3, 0xDF, 0x77, 0x82, 0x64, 0x25,
+ 0x9A, 0x5E, 0x14, 0xE7, 0x54, 0xC4, 0xD1, 0x05, 0x07, 0xCD, 0x0E, 0xD2, 0x66, 0x2F, 0xF7, 0xF9,
+ 0x3A, 0xF8, 0xC2, 0xC7, 0x2B, 0x22, 0x9E, 0xCE, 0xA4, 0xB8, 0x21, 0x38, 0x9C, 0xA0, 0x1A, 0xD5,
+ 0x69, 0xBF, 0xD5, 0x86, 0x8C, 0x24, 0xE3, 0x8A, 0x0B, 0xD4, 0x03, 0xCE, 0x0C, 0x59, 0x3F, 0xD6,
+ 0x1F, 0x68, 0x3B, 0xC4, 0x44, 0xF9, 0x27, 0x0F, 0x59, 0x2F, 0x81, 0x92, 0xF3, 0xA2, 0x6B, 0x69,
+ 0x5E, 0x39, 0x7E, 0xD1, 0x6C, 0x12, 0xA0, 0x67, 0x00, 0x33, 0xB6, 0x3E, 0x32, 0x1E, 0x0F, 0x7F,
+ 0xB1, 0x8F, 0x86, 0x12, 0x19, 0x61, 0x83, 0x34, 0x62, 0x61, 0x0A, 0x25, 0x36, 0xE9, 0x6A, 0xD3,
+ 0x34, 0xB9, 0xA9, 0x31, 0x4C, 0x1D, 0x24, 0x2B, 0xCE, 0x58, 0xA1, 0xEF, 0xA9, 0x87, 0x7B, 0xD2,
+ 0x54, 0x49, 0xC5, 0x8C, 0xD8, 0x92, 0x62, 0x55, 0xC1, 0x14, 0x25, 0xCF, 0x61, 0xD0, 0x76, 0x71,
+ 0x19, 0x15, 0x9C, 0x80, 0xC7, 0x25, 0x26, 0x30, 0x56, 0x63, 0x05, 0xB2, 0x29, 0x50, 0x11, 0x32,
+ 0xF3, 0x57, 0xFF, 0x52, 0x5B, 0x4E, 0x63, 0x6A, 0x68, 0x3C, 0x7A, 0x9E, 0x31, 0x16, 0xEB, 0x5B,
+ 0x91, 0xEB, 0xE4, 0x00, 0xBA, 0xB2, 0x06, 0x47, 0x72, 0xDA, 0x50, 0x00, 0x08, 0xAE, 0x5A, 0x7A,
+ 0x40, 0x22, 0x30, 0x9C, 0xDA, 0xE3, 0x0D, 0xE9, 0x0D, 0x90, 0x7E, 0x69, 0x2B, 0xDB, 0x29, 0x29,
+ 0xF5, 0x2A, 0x58, 0x16, 0x55, 0x0E, 0xF7, 0xC5, 0xDA, 0x48, 0xCA, 0x1A, 0x75, 0x09, 0x5C, 0x3E,
+ 0x47, 0x9A, 0xDC, 0x62, 0x73, 0xA5, 0xE4, 0x02, 0xDD, 0xB6, 0x72, 0xF6, 0x47, 0xD1, 0xBC, 0xB1,
+ 0x03, 0x3F, 0x02, 0x66, 0x88, 0xF1, 0x1B, 0xBD, 0x97, 0x44, 0x96, 0x43, 0x3C, 0x0A, 0xE7, 0x42,
+ 0x2F, 0x56, 0x7C, 0x6D, 0x78, 0xFA, 0xAE, 0x5A, 0xD9, 0x1D, 0x43, 0x26, 0xC6, 0x85, 0x0A, 0x6E,
+ 0xBA, 0x3A, 0x76, 0xF5, 0xBC, 0x16, 0x91, 0xCC, 0x7E, 0xC3, 0x5D, 0x1C, 0x73, 0x75, 0x01, 0x89,
+ 0xAD, 0xD8, 0xBF, 0xB0, 0xF2, 0x08, 0x8A, 0x81, 0xFB, 0xE0, 0x6B, 0x33, 0xC2, 0x72, 0x6F, 0xC2,
+ 0x26, 0xAF, 0xFB, 0x65, 0xD9, 0x58, 0x44, 0x95, 0x80, 0x01, 0x74, 0x8A, 0xBC, 0xDD, 0x8D, 0xA2,
+ 0xBE, 0x0B, 0xA6, 0x5E, 0x70, 0x1E, 0xAD, 0x7E, 0x75, 0x24, 0xE8, 0xEC, 0xFA, 0x49, 0x02, 0xDC,
+ 0xF8, 0xE2, 0x0F, 0xB5, 0x22, 0x0C, 0xBB, 0x2A, 0xDC, 0x0C, 0xB7, 0xBD, 0xA8, 0x04, 0xA7, 0xED,
+ 0xAE, 0x51, 0x83, 0xE5, 0xF5, 0x66, 0x3B, 0xCA, 0xD8, 0xA7, 0x86, 0x6D, 0x97, 0xC0, 0x4B, 0x7B,
+ 0x6E, 0x07, 0x39, 0x78, 0x06, 0xD6, 0xC7, 0x51, 0xE5, 0xAD, 0x70, 0x7D, 0x84, 0xE6, 0xE0, 0xBC,
+ 0xBD, 0x82, 0x9A, 0x0B, 0xCA, 0xDE, 0xFB, 0xE3, 0x7C, 0x2C, 0x11, 0x6B, 0x90, 0x3F, 0xCA, 0xF3,
+ 0x3D, 0x40, 0x2E, 0x39, 0xA8, 0xFE, 0x9F, 0xF1, 0xB5, 0xB9, 0xBE, 0x56, 0xE1, 0x07, 0x1C, 0x91,
+ 0xC6, 0x9D, 0x23, 0xEA, 0x46, 0x88, 0x48, 0xB3, 0x41, 0x26, 0xE7, 0x7B, 0x78, 0x15, 0x50, 0x27,
+ 0xEE, 0xC5, 0x8D, 0x4A, 0x36, 0xE4, 0xB5, 0x17, 0x2E, 0xD7, 0x93, 0x37, 0x3D, 0x89, 0x3B, 0x7D,
+ 0x9D, 0xE6, 0xF8, 0x19, 0x7F, 0x94, 0x1F, 0x11, 0x8E, 0xF7, 0x35, 0xE1, 0xC3, 0xF1, 0xB3, 0xFD,
+ 0x39, 0x71, 0xFE, 0x92, 0x31, 0x8A, 0x04, 0x5C, 0x30, 0x9A, 0x88, 0x79, 0xF0, 0xAA, 0x8F, 0x4D,
+ 0x83, 0xFD, 0xB6, 0x54, 0xC3, 0xF0, 0xDE, 0x07, 0x7F, 0x79, 0x98, 0x57, 0xD2, 0x5C, 0x20, 0x21,
+ 0x4C, 0x2F, 0x2C, 0x85, 0xF4, 0xAC, 0x1D, 0x0A, 0xE6, 0xF8, 0xF9, 0x41, 0x38, 0xFD, 0x82, 0xEE,
+ 0xBF, 0xCE, 0xED, 0xE4, 0x1F, 0xC5, 0x14, 0xBF, 0x78, 0x87, 0x20, 0xBB, 0x3E, 0x81, 0xDF, 0x59,
+ 0x37, 0x30, 0x95, 0x64, 0x6A, 0xB6, 0x37, 0xEC, 0xC3, 0xFB, 0x69, 0xB8, 0x7D, 0x61, 0xE9, 0xB4,
+ 0x67, 0xFE, 0xBE, 0x70, 0x0E, 0x32, 0xC4, 0x75, 0x55, 0x36, 0x8C, 0x8E, 0x7C, 0xE2, 0x35, 0x8B,
+ 0xB4, 0x7B, 0x1D, 0x03, 0xB5, 0x38, 0xB4, 0x28, 0xF4, 0xAC, 0xEF, 0x13, 0x7F, 0xEA, 0xD1, 0xAF,
+ 0x8C, 0x79, 0x96, 0x18, 0x3A, 0xD5, 0x4E, 0x04, 0xBB, 0x4F, 0xFF, 0x3D, 0x65, 0x27, 0x13, 0xDD,
+ 0xA8, 0x2C, 0x24, 0xA1, 0x05, 0x6D, 0x8E, 0x2D, 0x44, 0x37, 0x13, 0xE0, 0xED, 0x98, 0xCC, 0xB7,
+ 0x49, 0xDB, 0xB7, 0x94, 0x40, 0x2C, 0xDF, 0x38, 0x18, 0x3A, 0xD0, 0xD7, 0x6E, 0x47, 0x42, 0x73,
+ 0xD2, 0xF6, 0xD6, 0xFA, 0xF0, 0x79, 0xE5, 0x3D, 0x87, 0xFF, 0xCC, 0x66, 0xBA, 0xA1, 0xD0, 0x15,
+ 0x93, 0xA7, 0x93, 0xEF, 0x65, 0x3C, 0x85, 0x83, 0x10, 0x88, 0xEC, 0x1B, 0xB8, 0x2A, 0xE8, 0x0E,
+ 0xDB, 0x0F, 0x51, 0xF2, 0xD3, 0xCD, 0x28, 0x0D, 0xC9, 0xA6, 0x19, 0x03, 0x34, 0x62, 0x52, 0xC8,
+ 0x95, 0xDA, 0x34, 0xAB, 0x77, 0x70, 0x1C, 0x35, 0x6C, 0x97, 0x4B, 0x4E, 0x52, 0x8B, 0x4A, 0xC1,
+ 0xAA, 0x60, 0x53, 0x4E, 0xA3, 0xA1, 0xD5, 0xA9, 0xA0, 0x13, 0x10, 0xE8, 0xCB, 0x99, 0x06, 0x77,
+ 0x35, 0xBD, 0xEE, 0x6E, 0xED, 0xA5, 0x44, 0x4B, 0xA1, 0x2E, 0xB3, 0x41, 0x1B, 0x6A, 0x6E, 0xA2,
+ 0x56, 0x20, 0x74, 0xCF, 0xC9, 0xA6, 0x4C, 0xAF, 0x24, 0xFD, 0x10, 0x32, 0xA0, 0x37, 0x1E, 0xA8,
+ 0xB3, 0x16, 0xB9, 0x59, 0xF6, 0xA7, 0xCF, 0x73, 0xEA, 0xAD, 0x3B, 0x26, 0xC4, 0xAE, 0xED, 0x2C,
+ 0xFA, 0x15, 0xC5, 0xE2, 0x1B, 0xE4, 0x2F, 0x45, 0x14, 0x25, 0x43, 0xA6, 0xB1, 0xFD, 0xCE, 0x5F,
+ 0x23, 0xEF, 0xBA, 0x7C, 0xAC, 0xE2, 0x53, 0x18, 0xF5, 0xD6, 0x82, 0xC7, 0x5A, 0x48, 0xC7, 0x36,
+ 0x42, 0xF9, 0x3B, 0xE5, 0x63, 0x08, 0xF2, 0xBA, 0x27, 0x19, 0x18, 0x16, 0x6D, 0x45, 0x04, 0x6A,
+ 0x52, 0xD7, 0xD8, 0xAA, 0x0F, 0x2A, 0x04, 0x15, 0xAB, 0xA3, 0x50, 0xD0, 0x9F, 0x1E, 0xDE, 0x10,
+ 0xEF, 0x4F, 0xB5, 0x14, 0xBF, 0x19, 0x5F, 0x29, 0x3C, 0x07, 0x56, 0x5B, 0xD1, 0x53, 0xC5, 0x0E,
+ 0xCA, 0x46, 0x51, 0x3A, 0x35, 0x11, 0x37, 0x9C, 0xBA, 0x30, 0xFD, 0x0C, 0x0D, 0xEB, 0x0F, 0x3B,
+ 0x91, 0xE0, 0xD5, 0xF6, 0x83, 0x88, 0x25, 0xD0, 0x00, 0x0F, 0x9A, 0xE9, 0xD9, 0x77, 0xC6, 0xEA,
+ 0xC3, 0xAD, 0xE4, 0x53, 0x8A, 0xEE, 0xCC, 0xC8, 0xD5, 0x41, 0xFF, 0xB0, 0x7D, 0x4F, 0xF2, 0x57,
+ 0x36, 0xB5, 0xCA, 0x8A, 0x4C, 0x62, 0x84, 0x72, 0x7D, 0x09, 0x3D, 0xAD, 0xCB, 0xC1, 0x5F, 0xA6,
+ 0x16, 0xC8, 0xBD, 0x1D, 0x57, 0x60, 0x0F, 0x4A, 0x2C, 0x48, 0x78, 0xB8, 0x5E, 0x7F, 0x3F, 0xE3,
+ 0x0A, 0x79, 0x78, 0x82, 0x31, 0xB4, 0xE9, 0xD8, 0x01, 0xD3, 0x19, 0xD6, 0xEE, 0x7A, 0x05, 0xB6,
+ 0xC9, 0x4E, 0x75, 0xDE, 0xF5, 0x37, 0x36, 0x56, 0xF6, 0x32, 0x8A, 0xE3, 0xAB, 0x6F, 0x54, 0xF7,
+ 0x25, 0x93, 0x0D, 0x21, 0x9F, 0xBF, 0x89, 0x89, 0xA3, 0x16, 0x38, 0x5A, 0x94, 0x46, 0x94, 0x4F,
+ 0xAE, 0x24, 0x43, 0x1A, 0xE0, 0x66, 0x73, 0x17, 0x75, 0xBC, 0x55, 0x27, 0x77, 0xD7, 0x9E, 0xC2,
+ 0xB1, 0x9D, 0xA2, 0x61, 0x80, 0x18, 0xDC, 0xF5, 0x02, 0x37, 0x11, 0xF2, 0x5C, 0xC3, 0x50, 0x92,
+ 0x87, 0xB2, 0x81, 0xE4, 0xCB, 0xA9, 0xDB, 0x9B, 0xE0, 0x20, 0xD8, 0xB7, 0x12, 0x8E, 0x4B, 0x8C,
+ 0x99, 0x88, 0x5F, 0x43, 0x2C, 0x1C, 0x2B, 0x90, 0x8C, 0xB5, 0xD2, 0x2F, 0xD6, 0x18, 0x74, 0x60,
+ 0x4C, 0xED, 0x06, 0x0D, 0x00, 0xE6, 0xA4, 0x7D, 0xE5, 0x99, 0xAC, 0x24, 0x26, 0xFF, 0xC1, 0x6B,
+ 0xA8, 0x58, 0xF4, 0x47, 0xF3, 0x9D, 0x7F, 0x26, 0x40, 0xDD, 0x72, 0x20, 0xDD, 0x40, 0x3E, 0x3F,
+ 0x10, 0xB4, 0x0A, 0x40, 0x7C, 0xAF, 0xA7, 0xC6, 0xF0, 0x6F, 0xF6, 0x54, 0xFB, 0x87, 0x2D, 0x94,
+ 0xA4, 0xC7, 0xD2, 0x97, 0x6B, 0xF1, 0x75, 0xB3, 0xF8, 0xDA, 0x9E, 0xDE, 0x74, 0xAB, 0xD7, 0x79,
+ 0x49, 0x99, 0x95, 0xB4, 0x3F, 0xE7, 0x27, 0xA1, 0x1F, 0x74, 0x23, 0x08, 0x98, 0x55, 0x6F, 0x7E,
+ 0x3D, 0xD5, 0x64, 0xDB, 0x65, 0xA2, 0xBB, 0xCA, 0x47, 0x5C, 0x8D, 0xA8, 0xE8, 0xF1, 0x92, 0x12,
+ 0x64, 0xF8, 0xFB, 0x2F, 0xD3, 0x3B, 0xA9, 0x86, 0x9A, 0xA7, 0x80, 0x7B, 0x06, 0xB3, 0x45, 0x64,
+ 0xCB, 0xC5, 0x6E, 0xE6, 0xB1, 0x4A, 0x91, 0x50, 0x58, 0x27, 0x34, 0x49, 0x64, 0xA1, 0x21, 0x44,
+ 0xAA, 0xD3, 0xEF, 0x7F, 0xFE, 0x5E, 0x48, 0x7A, 0xDD, 0xF4, 0x97, 0x3A, 0xA8, 0x13, 0x1D, 0x4C,
+ 0x5C, 0xC3, 0xE5, 0x42, 0x39, 0x4D, 0x6E, 0xD1, 0x8B, 0x34, 0x2D, 0xA7, 0x5B, 0x88, 0xE1, 0xFC,
+ 0x6D, 0x13, 0x4E, 0x46, 0xAF, 0x72, 0xAA, 0x3D, 0x38, 0x62, 0xA1, 0xF7, 0x8C, 0x68, 0x61, 0x96,
+ 0x32, 0x42, 0x66, 0xEF, 0x9E, 0x20, 0xE7, 0x98, 0xD1, 0x24, 0x08, 0x1C, 0xDE, 0x3C, 0x77, 0x84,
+ 0xD9, 0x60, 0x96, 0x91, 0x94, 0xD6, 0xF7, 0xA5, 0x65, 0xF3, 0x7B, 0xC4, 0x22, 0xC8, 0x39, 0xBE,
+ 0xFB, 0x96, 0xFA, 0x3E, 0x97, 0x46, 0x0E, 0x80, 0x22, 0xA0, 0x6C, 0x85, 0x85, 0x8C, 0x44, 0xB8,
+ 0xD4, 0x7C, 0x8F, 0x9D, 0xBB, 0xBC, 0x81, 0x6D, 0x84, 0x00, 0xBA, 0xA5, 0xFA, 0x47, 0x0B, 0x5E,
+ 0x09, 0x71, 0x5C, 0x66, 0x67, 0xAD, 0x2C, 0xFE, 0x7F, 0x31, 0xB6, 0xB6, 0xC6, 0x12, 0x82, 0x5D,
+ 0x2B, 0x87, 0x30, 0xC9, 0xA4, 0x1B, 0xD4, 0x11, 0x7E, 0xED, 0x35, 0x89, 0x40, 0xDA, 0x5D, 0x9E,
+ 0xF7, 0x09, 0xDC, 0xEE, 0x58, 0xAC, 0xAF, 0x22, 0xB7, 0x3C, 0xE1, 0x15, 0x70, 0x9C, 0x2F, 0xAC,
+ 0x97, 0x9C, 0x62, 0xAB, 0x3E, 0x78, 0x49, 0xB0, 0x96, 0x77, 0x1F, 0x5D, 0xF1, 0x1F, 0x41, 0x01,
+ 0xB6, 0x62, 0x2A, 0xE0, 0x8D, 0xDB, 0xEB, 0xA9, 0x83, 0x81, 0x45, 0x2D, 0xCA, 0x01, 0x79, 0x6C,
+ 0x8A, 0xAE, 0x98, 0xE8, 0x38, 0xD2, 0x00, 0xC0, 0x31, 0x0B, 0x4A, 0x42, 0x14, 0x05, 0xDC, 0x28,
+ 0xA0, 0x30, 0x7E, 0xF2, 0x19, 0xEB, 0xB8, 0x71, 0x8D, 0x69, 0x51, 0x10, 0xF5, 0x28, 0xB9, 0xD4,
+ 0xDF, 0x1C, 0x21, 0xCC, 0x70, 0xF3, 0xFE, 0x8B, 0xCF, 0x83, 0x32, 0xC2, 0x69, 0x72, 0xFC, 0xBF,
+ 0xFF, 0x61, 0x56, 0x5B, 0x33, 0xBB, 0x7E, 0xEC, 0x93, 0xCE, 0x6B, 0xCE, 0x76, 0x17, 0xB8, 0x08,
+ 0x7B, 0x41, 0x1A, 0x54, 0x90, 0x73, 0x29, 0xE1, 0x63, 0xAE, 0x07, 0x73, 0xE2, 0x69, 0xFE, 0x87,
+ 0xD0, 0x8B, 0x23, 0xF8, 0x91, 0xEC, 0x47, 0xF0, 0x55, 0x2B, 0x28, 0x50, 0xB7, 0x76, 0x59, 0xFB,
+ 0x6C, 0x90, 0x71, 0x9A, 0x3D, 0xE8, 0xB0, 0x95, 0xE3, 0xC4, 0xD0, 0x93, 0xC2, 0x25, 0x7A, 0x88,
+ 0x5B, 0x3C, 0x6D, 0xC3, 0x2B, 0x29, 0x0C, 0xF1, 0xB2, 0x85, 0x95, 0x86, 0xEA, 0x4D, 0xFD, 0x63,
+ 0x81, 0xCE, 0x36, 0xB9, 0x61, 0x07, 0x65, 0x8E, 0x67, 0xCB, 0xF0, 0xDF, 0x9B, 0x29, 0x26, 0xC5,
+ 0xCD, 0xB9, 0xD9, 0xBB, 0xDD, 0x68, 0x67, 0xFF, 0x12, 0x78, 0x3F, 0x11, 0x0B, 0x60, 0x98, 0x9F,
+ 0xBD, 0x02, 0x84, 0xB1, 0x9A, 0x85, 0x39, 0xDC, 0xF9, 0x06, 0x1D, 0xE1, 0x52, 0x6C, 0xC4, 0xD2,
+ 0xC2, 0x2E, 0xDB, 0x8F, 0xA0, 0xBE, 0x0A, 0x55, 0x80, 0x65, 0x4D, 0x09, 0x05, 0xCF, 0x0C, 0xDF,
+ 0x2E, 0xF3, 0xA3, 0x70, 0x9D, 0xB0, 0x1E, 0xBD, 0x28, 0x2D, 0x8F, 0x14, 0x63, 0xEA, 0x90, 0x2A,
+ 0x1A, 0x57, 0x9B, 0xCD, 0xA9, 0xD8, 0xE3, 0x4D, 0xC0, 0xB7, 0xA5, 0xC0, 0x5D, 0x03, 0x76, 0x58,
+ 0x6B, 0x6F, 0xF9, 0x1B, 0xD4, 0x0E, 0x8E, 0xE7, 0x53, 0x76, 0x54, 0xE7, 0x2A, 0xEC, 0x3A, 0x5A,
+ 0xD3, 0x83, 0x07, 0x1C, 0xAA, 0x48, 0x1A, 0x68, 0x03, 0xEB, 0x92, 0xCD, 0x33, 0x02, 0xE9, 0x49,
+ 0x89, 0xA6, 0xBC, 0x0C, 0x92, 0x7C, 0xBE, 0xD5, 0xB5, 0x04, 0x6A, 0x0E, 0xC0, 0x99, 0x15, 0xF9,
+ 0xC8, 0xCD, 0x4A, 0x02, 0x52, 0x5A, 0xBF, 0x1F, 0x06, 0x52, 0xE6, 0x5E, 0xBC, 0x2E, 0x13, 0xA4,
+ 0x43, 0x7A, 0x04, 0x39, 0xBE, 0x86, 0x31, 0x38, 0x8E, 0x8D, 0x59, 0x34, 0xA2, 0x8B, 0x71, 0xD9,
+ 0x4F, 0xE5, 0x22, 0xE9, 0xE2, 0x69, 0xE4, 0x23, 0x8F, 0x51, 0xDA, 0x0B, 0xF4, 0xE8, 0x9F, 0x1E,
+ 0xF4, 0x01, 0xF8, 0x0A, 0x79, 0x95, 0x17, 0x93, 0x6A, 0xC7, 0xEC, 0xC6, 0x68, 0xB2, 0xDA, 0x75,
+ 0x30, 0xC9, 0x7D, 0xD7, 0xCC, 0x9C, 0xFC, 0xFA, 0xCC, 0x67, 0x3A, 0xE6, 0x21, 0xB4, 0x70, 0x05,
+ 0x0D, 0x86, 0xF0, 0x03, 0x44, 0x9B, 0x03, 0x7B, 0x33, 0x33, 0xC1, 0x59, 0xA3, 0x4B, 0x57, 0x13,
+ 0x17, 0x4B, 0x82, 0xC1, 0xFC, 0x51, 0xDF, 0x4E, 0x34, 0xB2, 0x3E, 0xD1, 0x66, 0x1D, 0x4E, 0x35,
+ 0xD6, 0x7D, 0xA1, 0x2E, 0x1B, 0x13, 0x36, 0x2F, 0x1B, 0x9A, 0x5E, 0x91, 0xA5, 0x2E, 0xE4, 0xCE,
+ 0xDA, 0xE2, 0x87, 0xFE, 0x47, 0xFC, 0xE3, 0x34, 0x1A, 0x46, 0xDD, 0xAE, 0xF3, 0x4D, 0x0A, 0x09,
+ 0x1C, 0xA1, 0x19, 0x1B, 0x37, 0xE9, 0xB9, 0xC2, 0x20, 0x13, 0x6D, 0xAB, 0xC7, 0x3C, 0x80, 0xEE,
+ 0x5D, 0xCA, 0xEF, 0x15, 0xF7, 0xCF, 0xB8, 0x08, 0x93, 0x45, 0xE1, 0xFB, 0xBB, 0x8B, 0x86, 0xB3,
+ 0x98, 0x81, 0x55, 0x14, 0xE1, 0x0E, 0x04, 0x6C, 0xA6, 0x24, 0xC6, 0xFC, 0xA4, 0xEE, 0xC2, 0x04,
+ 0x82, 0x4C, 0x27, 0xD6, 0x59, 0xC4, 0xD8, 0x59, 0xA1, 0xA5, 0x39, 0x74, 0x61, 0xB8, 0xDB, 0x22,
+ 0x61, 0x06, 0x5D, 0x1D, 0xDC, 0x00, 0x10, 0x84, 0xFF, 0xD0, 0xEB, 0x63, 0x6F, 0x17, 0x4F, 0x62,
+ 0xA5, 0xCE, 0xD8, 0xC0, 0x69, 0x09, 0xFB, 0xED, 0x59, 0x70, 0x3D, 0x43, 0x26, 0x11, 0xE5, 0x12,
+ 0x28, 0x05, 0x21, 0xA6, 0x3F, 0x10, 0x3E, 0xCB, 0x6C, 0x11, 0x1A, 0x44, 0x55, 0xC9, 0x51, 0xC5,
+ 0x57, 0x29, 0x7E, 0x98, 0x05, 0x2B, 0x0D, 0x42, 0x15, 0x72, 0x4A, 0xAC, 0x02, 0x6A, 0x99, 0xC8,
+ 0x14, 0xC9, 0x93, 0xAE, 0xC4, 0x92, 0x62, 0x99, 0xF2, 0xDC, 0xF7, 0x7A, 0x9C, 0x8C, 0xB3, 0xD2,
+ 0x58, 0xBE, 0x7C, 0xAC, 0x78, 0xFD, 0x60, 0xE8, 0x87, 0x6F, 0x38, 0xB4, 0x0C, 0xC5, 0x0D, 0x88,
+ 0xFE, 0x68, 0x5C, 0x0C, 0x71, 0x9B, 0x89, 0xF0, 0xC6, 0x61, 0x53, 0x42, 0x2D, 0x49, 0xAF, 0x4D,
+ 0x46, 0x84, 0xA2, 0x0B, 0x0F, 0xDD, 0x1D, 0x7F, 0x96, 0xFC, 0x95, 0x68, 0x34, 0xA7, 0x7C, 0x5E,
+ 0xBB, 0xF4, 0x06, 0x67, 0x38, 0x25, 0x19, 0xAA, 0xBD, 0x3A, 0x88, 0xB1, 0x64, 0x4F, 0x05, 0x3D,
+ 0x8F, 0x50, 0x3E, 0xDA, 0x0C, 0x4D, 0xE4, 0x5A, 0x55, 0xA0, 0xA2, 0x65, 0x5A, 0xA6, 0xE3, 0x4F,
+ 0x4A, 0x1B, 0x84, 0xDB, 0xD5, 0x66, 0xF9, 0x9C, 0x5A, 0x94, 0x35, 0x67, 0x6E, 0xD7, 0x69, 0xA8,
+ 0x6A, 0x66, 0xF3, 0x4C, 0x96, 0x2E, 0x79, 0xFB, 0x06, 0xD9, 0x6C, 0x6B, 0x71, 0xB2, 0x2D, 0x1F,
+ 0x1F, 0xA9, 0x3D, 0xFF, 0x9D, 0x47, 0x07, 0xD7, 0xA4, 0x1C, 0x4D, 0xE7, 0x13, 0xA0, 0x49, 0x3F,
+ 0x35, 0x37, 0xDB, 0xE5, 0xBC, 0x7E, 0xBF, 0x66, 0x18, 0x7E, 0x56, 0xB5, 0xF2, 0x8D, 0x2C, 0xC3,
+ 0xF9, 0x97, 0xD4, 0x8D, 0x98, 0x7D, 0xB7, 0x82, 0x76, 0xD3, 0xD7, 0x36, 0xC5, 0x80, 0xEF, 0x9F,
+ 0xCE, 0x3B, 0xC8, 0xD4, 0x8E, 0xBC, 0x0B, 0xE6, 0x27, 0x92, 0x92, 0x23, 0xED, 0xE8, 0x68, 0x74,
+ 0xEE, 0x46, 0xBF, 0x43, 0x35, 0xE6, 0x2E, 0xF6, 0xF6, 0xB9, 0x00, 0xD6, 0xE5, 0xCC, 0x6B, 0x90,
+ 0x45, 0x8C, 0x86, 0xEF, 0x34, 0x79, 0x40, 0xE7, 0xC0, 0x3C, 0x2F, 0xF5, 0xB0, 0xD3, 0xCC, 0xEC,
+ 0x41, 0x7B, 0x2A, 0x8A, 0x1E, 0x29, 0x86, 0x7A, 0x11, 0x17, 0xBD, 0x00, 0xFD, 0xE2, 0x9E, 0x49,
+ 0x9C, 0x76, 0xF9, 0x71, 0xC2, 0x38, 0x2B, 0xE9, 0xEA, 0x26, 0xB1, 0x13, 0xC1, 0xB7, 0x17, 0x4A,
+ 0x4C, 0x67, 0x33, 0x86, 0x31, 0x43, 0xF0, 0xB2, 0xF0, 0xE4, 0x7C, 0x61, 0x25, 0x6D, 0xAC, 0xA9,
+ 0x6E, 0x91, 0x5F, 0x29, 0x32, 0xD3, 0x09, 0x97, 0xB7, 0xB7, 0x6B, 0x20, 0x82, 0x29, 0xD1, 0xAF,
+ 0x02, 0x9B, 0xC7, 0xBC, 0x9B, 0xED, 0x4E, 0xA7, 0x03, 0x60, 0x18, 0xF8, 0xF6, 0xBA, 0xD4, 0x16,
+ 0x23, 0x65, 0x8F, 0xF7, 0x28, 0x4E, 0xEC, 0xBE, 0x16, 0x96, 0x42, 0x88, 0xCD, 0xA4, 0xEC, 0x7B,
+ 0xBE, 0x80, 0x95, 0xDE, 0x01, 0x8E, 0xD3, 0x06, 0xEB, 0xFA, 0x32, 0x2C, 0x47, 0x7F, 0xC8, 0x89,
+ 0x62, 0x0E, 0x79, 0xF9, 0xFD, 0x39, 0xA8, 0x35, 0x22, 0x2B, 0xE6, 0xB0, 0x77, 0x39, 0xBA, 0xBB,
+ 0xF1, 0xFF, 0x5E, 0x38, 0x76, 0xAE, 0xAE, 0x91, 0x0F, 0xB0, 0x87, 0xDE, 0x01, 0x16, 0xD0, 0x73,
+ 0x5E, 0xC2, 0xCB, 0xF1, 0x14, 0xDF, 0x96, 0x47, 0xCD, 0x30, 0x33, 0xEC, 0x63, 0x04, 0xB4, 0x53,
+ 0xDC, 0x9E, 0x30, 0xA3, 0x9A, 0x72, 0x20, 0xB6, 0x8A, 0x63, 0x24, 0xAD, 0x9F, 0xF0, 0xFA, 0x69,
+ 0xA8, 0xD2, 0xC1, 0xCC, 0xC0, 0x37, 0xBC, 0xDD, 0xD2, 0x4B, 0x8A, 0x0D, 0xEF, 0x54, 0x07, 0x05,
+ 0xF8, 0x14, 0xEB, 0x51, 0x0A, 0xE7, 0xAD, 0x2A, 0xAD, 0x75, 0xA6, 0x52, 0x8B, 0xCD, 0xF4, 0x81,
+ 0xA7, 0x45, 0xC3, 0xF8, 0x3B, 0xB5, 0xE0, 0x8F, 0x44, 0x33, 0x0F, 0xB9, 0xD9, 0x99, 0xE2, 0x93,
+ 0x3F, 0xD4, 0x4A, 0x68, 0x5B, 0xCB, 0x4F, 0x6D, 0x48, 0xE3, 0x90, 0x9F, 0xAF, 0xB6, 0x88, 0x5B,
+ 0xC9, 0xC4, 0x40, 0x55, 0x9C, 0xD8, 0x69, 0xC6, 0x1E, 0x23, 0x2A, 0x02, 0x5C, 0x2D, 0x74, 0xEB,
+ 0x12, 0xB5, 0x24, 0xF3, 0x6E, 0x3C, 0xDC, 0x8C, 0x75, 0x37, 0xDF, 0x12, 0x15, 0x2B, 0xDE, 0x9B,
+ 0x0C, 0x8F, 0xFA, 0x54, 0x89, 0x89, 0x2C, 0x87, 0x19, 0xA2, 0xD5, 0x8A, 0xD1, 0xBD, 0xE1, 0x77,
+ 0x3B, 0x23, 0xE6, 0x0D, 0x45, 0xF3, 0x74, 0x00, 0xE0, 0xAB, 0x52, 0x82, 0x70, 0x72, 0x0B, 0xD5,
+ 0x24, 0x9A, 0x07, 0x76, 0x25, 0x8D, 0xDB, 0xE2, 0x97, 0x20, 0x16, 0x57, 0x5B, 0x66, 0xC5, 0x85,
+ 0x85, 0xB3, 0xAF, 0x57, 0xD9, 0x3A, 0xA0, 0xD1, 0x65, 0x78, 0xF1, 0xF1, 0xFC, 0x22, 0xB8, 0x83,
+ 0x31, 0xC0, 0x77, 0x80, 0xCE, 0x64, 0x72, 0xA4, 0x6D, 0xCD, 0x99, 0x7B, 0x73, 0x0E, 0x42, 0x6E,
+ 0xD9, 0xEA, 0xA3, 0x1A, 0xA5, 0x73, 0xA3, 0x6A, 0x70, 0x8E, 0xAB, 0x81, 0x21, 0x5A, 0x54, 0x7C,
+ 0x3D, 0x5F, 0x51, 0x50, 0x56, 0x08, 0x78, 0x31, 0xD5, 0xCA, 0x75, 0x85, 0xDA, 0xE5, 0xAB, 0x28,
+ 0x56, 0xAA, 0x41, 0x44, 0x2F, 0x7B, 0xCB, 0xDF, 0x40, 0x56, 0xF8, 0x15, 0x7A, 0xEA, 0x67, 0x40,
+ 0xA3, 0xB2, 0x6F, 0x9D, 0xE9, 0xF7, 0x83, 0x65, 0xE8, 0x1E, 0x3A, 0x08, 0xCC, 0x64, 0xCA, 0xB1,
+ 0x5F, 0x41, 0xF4, 0x2D, 0x90, 0x84, 0x30, 0x8B, 0x2F, 0x27, 0xFA, 0xA9, 0x0A, 0x4E, 0x9A, 0x2C,
+ 0x04, 0xE7, 0x70, 0xE1, 0x26, 0x1D, 0x22, 0xC7, 0x95, 0x18, 0x9D, 0x4C, 0xDE, 0xD2, 0x53, 0xFD,
+ 0x5C, 0x49, 0xD0, 0xC9, 0x50, 0xA2, 0x31, 0x41, 0x63, 0x25, 0x8D, 0x46, 0xAC, 0xCA, 0xC1, 0xE0,
+ 0xB0, 0x94, 0xA8, 0x36, 0x3A, 0x2A, 0x8E, 0x9E, 0x36, 0x01, 0x3F, 0xFF, 0x93, 0xE3, 0x01, 0x58,
+ 0x83, 0xCF, 0x18, 0x0A, 0xF2, 0xF5, 0x08, 0x5D, 0xB9, 0x5F, 0x7F, 0x1D, 0x59, 0xDA, 0xAA, 0xF4,
+ 0x9F, 0x7E, 0xDD, 0x95, 0x94, 0x21, 0xEE, 0xCF, 0x94, 0xC4, 0x1E, 0x73, 0xE9, 0xDF, 0x90, 0xA1,
+ 0x26, 0x11, 0x1C, 0x4E, 0x53, 0x32, 0xC8, 0x64, 0x7F, 0xBA, 0x3C, 0x83, 0xC3, 0x0B, 0x78, 0x3B,
+ 0x6F, 0x12, 0x60, 0xF5, 0xBE, 0x71, 0x28, 0x52, 0x81, 0x32, 0x44, 0x03, 0xB6, 0x58, 0x5B, 0x48,
+ 0xA0, 0xBA, 0x4B, 0x79, 0x48, 0x30, 0x43, 0x5C, 0x34, 0x39, 0xB4, 0xE4, 0x1C, 0xCF, 0xFB, 0xB5,
+ 0xC3, 0x27, 0xD1, 0xD8, 0x6C, 0x33, 0x4B, 0xB8, 0xB1, 0xEA, 0x17, 0x97, 0xA7, 0x92, 0x8B, 0xBF,
+ 0xC7, 0xD0, 0x7D, 0xBD, 0xAA, 0xBF, 0x03, 0x02, 0x3E, 0xB4, 0x57, 0x75, 0x98, 0xBB, 0x4B, 0x07,
+ 0x7A, 0x48, 0x10, 0x03, 0x1A, 0x8C, 0x58, 0x3E, 0xA9, 0x10, 0x51, 0xFE, 0xD6, 0xF6, 0x50, 0x19,
+ 0xB6, 0xE8, 0x1F, 0x6B, 0x09, 0x77, 0x54, 0x0F, 0x60, 0xC1, 0x85, 0x62, 0x5D, 0xED, 0x52, 0x21,
+ 0xD7, 0xFE, 0x9E, 0xF2, 0xC6, 0x9D, 0xF5, 0xAD, 0xB2, 0x0E, 0x1F, 0xB3, 0x6A, 0xE0, 0x91, 0x7D,
+ 0x05, 0x65, 0xBC, 0xA1, 0x4E, 0x8F, 0xBE, 0x85, 0x44, 0x08, 0x47, 0x28, 0x41, 0x58, 0x0D, 0xA2,
+ 0xDB, 0x61, 0xF8, 0x04, 0x1A, 0x74, 0x01, 0x7A, 0xF1, 0xEC, 0xB5, 0x62, 0xB2, 0x03, 0xD6, 0xD9,
+ 0x5F, 0x15, 0x4A, 0xB4, 0xB1, 0x52, 0xC6, 0x69, 0x1D, 0x54, 0x4B, 0x65, 0x3D, 0xE3, 0x0E, 0xEB,
+ 0x37, 0x9F, 0xFF, 0xBC, 0x5C, 0xDD, 0xEA, 0x93, 0x6E, 0xE0, 0x93, 0xB2, 0x2A, 0x96, 0xDC, 0xB5,
+ 0xFC, 0x66, 0x99, 0x31, 0xE7, 0xDE, 0x96, 0xDA, 0x8D, 0xEA, 0x02, 0x3F, 0xA1, 0x32, 0xDA, 0x22,
+ 0xB8, 0xB3, 0x12, 0x46, 0xB7, 0xF5, 0x82, 0x14, 0x34, 0xF5, 0xE3, 0x44, 0xC1, 0xD0, 0x75, 0x5C,
+ 0x71, 0xF6, 0x05, 0xA4, 0xA9, 0xBB, 0xCF, 0x0F, 0x1B, 0xC3, 0xC0, 0xC1, 0x8A, 0xBE, 0x72, 0xED,
+ 0x7B, 0x6E, 0x90, 0xC8, 0x45, 0x7F, 0x59, 0x30, 0x21, 0xDD, 0x1E, 0x66, 0x6D, 0xB5, 0x82, 0x58,
+ 0x3E, 0x7B, 0xD1, 0x99, 0x69, 0x01, 0x52, 0x59, 0x7A, 0xEE, 0xAE, 0x5A, 0xBF, 0x5F, 0xE1, 0x1A,
+ 0x84, 0xE6, 0x11, 0xCF, 0xD9, 0xF2, 0xC9, 0xA5, 0x6A, 0x18, 0xA4, 0x67, 0x78, 0xF4, 0xC7, 0x09,
+ 0x08, 0xB6, 0x47, 0x7C, 0xB3, 0x25, 0x29, 0x25, 0xBA, 0x29, 0x0F, 0x63, 0xEE, 0x18, 0x03, 0x36,
+ 0xA1, 0x5D, 0x01, 0x95, 0xA1, 0x77, 0x7D, 0x33, 0xEB, 0x76, 0x27, 0xCA, 0xDF, 0xBD, 0x4E, 0x64,
+ 0x8A, 0x49, 0x51, 0x5B, 0x5B, 0x31, 0x14, 0x2B, 0x30, 0x0D, 0xD4, 0x91, 0x7E, 0x84, 0x8E, 0xA3,
+ 0x24, 0xE9, 0x79, 0x03, 0x37, 0x41, 0xB0, 0xD6, 0x7C, 0x79, 0x25, 0xFE, 0x24, 0xEF, 0x12, 0xE6,
+ 0x29, 0x3A, 0x82, 0xDE, 0x41, 0xAF, 0xF2, 0x01, 0x51, 0x20, 0xBA, 0x0A, 0x92, 0xA3, 0x00, 0x7F,
+ 0x9D, 0x08, 0x02, 0x1C, 0x61, 0xCD, 0xE0, 0x65, 0x6C, 0x8F, 0x2F, 0xC3, 0xF0, 0x75, 0x38, 0x0E,
+ 0x2B, 0x86, 0xF3, 0xB1, 0x13, 0xF3, 0x09, 0x83, 0x46, 0x67, 0xFB, 0x59, 0xED, 0x3D, 0xFA, 0xA6,
+ 0xB1, 0x57, 0x3C, 0x63, 0x4F, 0xC4, 0x04, 0x40, 0x50, 0x06, 0x7A, 0xC0, 0x22, 0x9F, 0x5B, 0x4C,
+ 0xF9, 0x91, 0x86, 0xEF, 0x35, 0x36, 0x5F, 0x9A, 0x7E, 0x16, 0x99, 0x8F, 0x4E, 0x30, 0xAD, 0x6E,
+ 0xFF, 0x1A, 0x22, 0x78, 0x2B, 0x78, 0x12, 0x81, 0xE6, 0xAB, 0xF4, 0x31, 0xFE, 0x0C, 0xF6, 0x5D,
+ 0x1A, 0x00, 0x0B, 0xE5, 0x87, 0xB2, 0x2B, 0x2A, 0x14, 0x71, 0xAF, 0x4B, 0xAC, 0x6E, 0xED, 0xE1,
+ 0xB9, 0x73, 0xD8, 0x60, 0x8D, 0x09, 0x76, 0x5A, 0x89, 0x12, 0x35, 0xEA, 0x88, 0x8A, 0xE5, 0xE2,
+ 0x92, 0x67, 0x88, 0xAE, 0x09, 0x6D, 0xEF, 0xA9, 0xBF, 0xF7, 0xF8, 0x7C, 0xB7, 0x56, 0x66, 0xE3,
+ 0xEA, 0xE7, 0x00, 0x50, 0x7A, 0x18, 0xBC, 0x8A, 0xBC, 0xBE, 0x84, 0xC7, 0x5A, 0x60, 0x86, 0xA0,
+ 0xD1, 0xF9, 0x6D, 0x68, 0xC6, 0xF7, 0x3E, 0x7B, 0x61, 0x52, 0xFC, 0x38, 0x16, 0x6F, 0xA6, 0x24,
+ 0xB0, 0x97, 0xF6, 0x45, 0x93, 0x47, 0x3B, 0x41, 0xD0, 0x4E, 0x39, 0xA7, 0x70, 0xFD, 0x40, 0xF0,
+ 0x23, 0xA2, 0x17, 0xB2, 0xD2, 0x02, 0x2E, 0x10, 0xE7, 0x8D, 0x34, 0xFB, 0xB4, 0x73, 0x9F, 0x73,
+ 0x91, 0x1B, 0x33, 0xE7, 0x6A, 0x3D, 0x07, 0xD0, 0x3A, 0x61, 0x4C, 0x04, 0xDE, 0xAC, 0x20, 0xFB,
+ 0x54, 0x4D, 0x15, 0xFE, 0x1E, 0xA4, 0xAA, 0x4B, 0xEF, 0x8E, 0x10, 0x1F, 0x74, 0xB9, 0x9E, 0x55,
+ 0x33, 0xA8, 0x2A, 0x44, 0xCF, 0x70, 0x36, 0x82, 0x49, 0xD5, 0x94, 0xD3, 0xC2, 0xF5, 0x8C, 0xCC,
+ 0x56, 0xF1, 0x64, 0x91, 0x72, 0xD4, 0x0E, 0xB6, 0x04, 0x87, 0xA5, 0x76, 0xCB, 0xED, 0x65, 0xAA,
+ 0x94, 0xEC, 0x2C, 0x39, 0x83, 0x62, 0x80, 0x1B, 0x1C, 0x72, 0x8B, 0xAF, 0x0D, 0x57, 0x2D, 0x26,
+ 0x26, 0x55, 0x08, 0x6C, 0x0F, 0xCA, 0xAB, 0xD4, 0x5A, 0x6A, 0xE2, 0x55, 0xDC, 0x98, 0xB7, 0xF4,
+ 0x0C, 0x81, 0x92, 0x84, 0x7D, 0xF4, 0x42, 0x32, 0xFE, 0x5E, 0xDA, 0xE8, 0xE8, 0x68, 0x4A, 0x9C,
+ 0xFD, 0xA6, 0x53, 0x17, 0x7F, 0x83, 0xAD, 0x7E, 0xC6, 0x2F, 0xB8, 0x3E, 0x95, 0xC2, 0x27, 0x4A,
+ 0x3B, 0x8C, 0xCE, 0x47, 0x6C, 0x9A, 0x43, 0xAD, 0x2A, 0x97, 0x46, 0x39, 0xEB, 0x4D, 0xB3, 0x0C,
+ 0x59, 0x9E, 0xEE, 0x23, 0xE0, 0x32, 0x68, 0x62, 0x67, 0xC5, 0x77, 0x9C, 0x20, 0xAB, 0xCC, 0x43,
+ 0x96, 0x50, 0x5D, 0x56, 0xBA, 0xA2, 0x21, 0xDC, 0x10, 0x89, 0x98, 0x9E, 0x9C, 0xDA, 0xCE, 0x2C,
+ 0xB4, 0xA0, 0x23, 0xBD, 0xF7, 0xFB, 0x2D, 0x80, 0xAB, 0xF9, 0xC5, 0x94, 0xDB, 0xF9, 0x90, 0xC1,
+ 0xE4, 0x48, 0x40, 0xC4, 0xFA, 0xAC, 0x8E, 0x48, 0x87, 0x86, 0x9A, 0xAA, 0xE1, 0x70, 0xA3, 0xFA,
+ 0x45, 0x87, 0xE2, 0x2E, 0x50, 0xC1, 0xF3, 0x9E, 0xA8, 0xB0, 0xB9, 0x2F, 0x38, 0xB6, 0xBE, 0xD1,
+ 0x93, 0xA7, 0x42, 0x88, 0x20, 0x88, 0xF5, 0x34, 0x60, 0x74, 0x3C, 0xF2, 0x8D, 0xDF, 0x55, 0xD8,
+ 0x68, 0x18, 0x16, 0x77, 0x36, 0x0A, 0x0A, 0x13, 0x2F, 0x49, 0xB1, 0x26, 0x05, 0x5E, 0xAA, 0xDF,
+ 0x97, 0x90, 0x97, 0x70, 0x10, 0xCF, 0x5C, 0x0A, 0xE2, 0x53, 0xC3, 0xE4, 0xBD, 0x6B, 0x76, 0x15,
+ 0xC3, 0x4F, 0x21, 0xF1, 0xDC, 0x69, 0xD8, 0x51, 0x0F, 0xCD, 0xFD, 0x29, 0xD3, 0xF0, 0x17, 0x38,
+ 0x4F, 0x1F, 0x77, 0x42, 0x81, 0x15, 0x6F, 0x57, 0x64, 0x8C, 0x0B, 0x27, 0x13, 0x3A, 0x16, 0x1E,
+ 0xF0, 0x75, 0xA8, 0xCA, 0xFC, 0x0B, 0xCA, 0x35, 0xD3, 0x07, 0x45, 0x1C, 0xFF, 0x1D, 0x98, 0xC2,
+ 0x73, 0x4A, 0x74, 0xCB, 0x3B, 0x5D, 0xA9, 0xDB, 0x4C, 0x0B, 0x63, 0xCC, 0xA3, 0x06, 0x4D, 0x2D,
+ 0x9C, 0xC8, 0xC8, 0x3A, 0xBB, 0xE9, 0x9B, 0x19, 0x2E, 0x6F, 0x71, 0xEC, 0xE5, 0x34, 0x7D, 0x5F,
+ 0x48, 0x54, 0x19, 0xF3, 0x89, 0xD9, 0xDD, 0x6B, 0xA0, 0xB3, 0x9D, 0xCB, 0x19, 0x07, 0x06, 0xE8,
+ 0xB6, 0x1C, 0x52, 0xD2, 0x24, 0x58, 0x5E, 0x05, 0x35, 0xD3, 0x23, 0x8E, 0x7F, 0x95, 0xE0, 0x3C,
+ 0xEC, 0x6C, 0xA4, 0xC7, 0x49, 0x63, 0x40, 0x3D, 0xCB, 0xF2, 0x6B, 0xC5, 0xCC, 0x8C, 0x42, 0x9F,
+ 0xD2, 0x85, 0xD6, 0x21, 0x9B, 0x8B, 0x89, 0x7D, 0xC9, 0x9D, 0xD7, 0xB4, 0xD5, 0x80, 0x5E, 0x92,
+ 0xC5, 0xC4, 0x85, 0x66, 0x9D, 0x2C, 0xCD, 0x00, 0x3F, 0xBF, 0xBB, 0x1B, 0xD6, 0xA5, 0xA7, 0x02,
+ 0x13, 0xE4, 0x25, 0xC0, 0x7B, 0x53, 0x06, 0x4F, 0xD5, 0x90, 0xCE, 0xB8, 0xFA, 0x48, 0x28, 0xF8,
+ 0x1F, 0xF7, 0x14, 0x3B, 0x78, 0x6F, 0x53, 0xC6, 0xD8, 0x4D, 0x1D, 0x43, 0x26, 0xDB, 0x85, 0xE9,
+ 0xAE, 0x32, 0x8B, 0x27, 0xA2, 0x4B, 0x28, 0xBA, 0xE8, 0x3F, 0x5B, 0x71, 0xD1, 0xC4, 0x80, 0x37,
+ 0x81, 0x11, 0x0E, 0x11, 0xDE, 0x1E, 0x37, 0x1D, 0x22, 0x94, 0x62, 0xDD, 0xD0, 0xD5, 0xEE, 0xA8,
+ 0x79, 0xD2, 0xE1, 0xA7, 0xAD, 0x6B, 0x64, 0x3E, 0x39, 0x28, 0x30, 0xBF, 0x7C, 0xB0, 0x19, 0xAC,
+ 0x3C, 0xC7, 0xA0, 0xF6, 0x46, 0x43, 0x0C, 0xB9, 0x95, 0x1F, 0x2C, 0xE6, 0x6A, 0xD4, 0xA5, 0x6D,
+ 0xE3, 0x03, 0x2E, 0x75, 0x0D, 0xBD, 0x44, 0x98, 0x07, 0xCE, 0xD9, 0xCD, 0x79, 0xE5, 0xA9, 0x96,
+ 0xF8, 0x51, 0x4C, 0xC9, 0xF1, 0x5C, 0x69, 0xFD, 0x99, 0xE4, 0x3F, 0xD7, 0x58, 0x54, 0x11, 0xAF,
+ 0x9B, 0x83, 0xA6, 0x8B, 0x9A, 0xC0, 0x33, 0xB8, 0xB5, 0x9B, 0x60, 0xE9, 0x31, 0xAE, 0x57, 0xB7,
+ 0xC2, 0x8F, 0xEB, 0xD7, 0x2D, 0xDF, 0x56, 0xFC, 0xC8, 0xBB, 0x17, 0x7E, 0x72, 0xC9, 0xD7, 0xFF,
+ 0x61, 0xAB, 0x82, 0xA9, 0xBC, 0xFF, 0x46, 0x64, 0x67, 0xF4, 0xD7, 0x35, 0x3B, 0xCB, 0xDF, 0xF3,
+ 0x55, 0x0F, 0xBA, 0x14, 0x88, 0x97, 0xBB, 0x94, 0x8F, 0x6E, 0xFD, 0xE1, 0x05, 0x22, 0x39, 0x81,
+ 0x24, 0x37, 0xD8, 0xC2, 0xF5, 0x41, 0xD6, 0x3E, 0x1C, 0xAF, 0x0C, 0xC6, 0x72, 0xCD, 0x75, 0x83,
+ 0x9C, 0xDB, 0x26, 0xC5, 0x8B, 0x07, 0x42, 0xB1, 0x4C, 0x32, 0xCA, 0xEC, 0x6B, 0x23, 0xA6, 0x90,
+ 0xCE, 0x96, 0x17, 0x60, 0x40, 0x48, 0x3D, 0x57, 0x28, 0x12, 0xA8, 0xFE, 0xC3, 0x08, 0x69, 0x1C,
+ 0x82, 0xE1, 0xF8, 0x62, 0xFC, 0x27, 0x3F, 0x26, 0x5D, 0xA1, 0x67, 0x30, 0x53, 0x41, 0xD7, 0x46,
+ 0xF2, 0x5A, 0xA5, 0x68, 0xBB, 0xCA, 0x61, 0x05, 0xB6, 0xDF, 0x45, 0xC0, 0x0A, 0x4D, 0x8B, 0x0B,
+ 0x8D, 0x76, 0xFA, 0x56, 0x81, 0xF1, 0x52, 0x8C, 0xCF, 0xBC, 0x15, 0x28, 0x5D, 0xEE, 0x43, 0x06,
+ 0xBB, 0x59, 0xD9, 0xD3, 0x58, 0xDA, 0x4F, 0x4A, 0x25, 0x1E, 0xB4, 0xE7, 0x30, 0x93, 0x95, 0xAC,
+ 0x7F, 0x91, 0x5C, 0x0E, 0xED, 0xD3, 0xA4, 0x23, 0x83, 0xBE, 0x62, 0xC7, 0x79, 0x95, 0x3F, 0xDC,
+ 0x42, 0xDE, 0xD1, 0xDA, 0x65, 0xD4, 0x5B, 0xA2, 0x7C, 0xEA, 0x99, 0x78, 0xFB, 0x6A, 0x18, 0xCA,
+ 0x58, 0x13, 0xA3, 0x18, 0xDD, 0x1E, 0x87, 0x97, 0x7B, 0x6B, 0x66, 0xF0, 0x3E, 0x3C, 0x01, 0xEC,
+ 0xC6, 0xFE, 0x9D, 0xD5, 0xB3, 0x33, 0xE6, 0x0C, 0xFA, 0xDD, 0x32, 0x2F, 0x98, 0xB8, 0x5A, 0x20,
+ 0x87, 0x95, 0x6B, 0xDB, 0x73, 0x15, 0xE7, 0xC6, 0x49, 0x8B, 0xBE, 0x7F, 0xE4, 0x0F, 0x5C, 0x7D,
+ 0x0C, 0x22, 0x25, 0xE0, 0x9F, 0xC9, 0x69, 0xE1, 0xC1, 0x54, 0x01, 0x15, 0xFA, 0xAA, 0x3E, 0x00,
+ 0x00, 0xBD, 0x03, 0x30, 0xC3, 0x26, 0xBC, 0xFA, 0xC0, 0x88, 0x82, 0x2A, 0xAC, 0xC9, 0xD0, 0xC7,
+ 0x64, 0xDF, 0x11, 0x10, 0x85, 0x54, 0x8C, 0xC8, 0x31, 0x34, 0x6D, 0xA8, 0x18, 0xFB, 0x12, 0x47,
+ 0xB8, 0x51, 0xFD, 0x37, 0x79, 0xE3, 0xF7, 0xFB, 0xF8, 0xE5, 0xB9, 0x34, 0x28, 0xBD, 0x60, 0x75,
+ 0xD8, 0xC4, 0x43, 0x72, 0x1F, 0x37, 0x11, 0x69, 0xD9, 0xAE, 0x47, 0x7C, 0xA9, 0x3E, 0x0E, 0xD8,
+ 0xF9, 0x3A, 0x0B, 0x39, 0xAC, 0x94, 0xB3, 0x70, 0xCC, 0x58, 0x1D, 0x0C, 0x92, 0x20, 0x36, 0xB5,
+ 0x96, 0x38, 0xB7, 0x48, 0xB5, 0x99, 0xAF, 0x7C, 0x2A, 0x2A, 0x23, 0xE5, 0x7A, 0xE9, 0x76, 0x67,
+ 0xB4, 0xCE, 0xDB, 0xE7, 0xB6, 0x09, 0x56, 0x59, 0x6D, 0x79, 0x34, 0xA4, 0xDD, 0xAD, 0x0B, 0x61,
+ 0x9B, 0x24, 0xAE, 0x44, 0x9A, 0xF3, 0xD9, 0xB4, 0xCB, 0xD9, 0xE2, 0x84, 0xA2, 0x66, 0x44, 0x87,
+ 0x46, 0x29, 0x7D, 0xBF, 0x46, 0xE2, 0x74, 0x27, 0x30, 0xE8, 0xEE, 0x97, 0x9E, 0x33, 0xCD, 0x84,
+ 0x34, 0x19, 0x3B, 0x8D, 0xB1, 0x3C, 0x71, 0x38, 0x2C, 0x77, 0x5F, 0x52, 0xBA, 0x48, 0xB1, 0x5E,
+ 0x9F, 0xD3, 0x02, 0x21, 0xB0, 0xA3, 0x1F, 0x29, 0x1A, 0xF2, 0x70, 0x71, 0xEF, 0x57, 0x16, 0x22,
+ 0x23, 0xC8, 0x50, 0x43, 0x1C, 0xA7, 0xE8, 0x4C, 0xAC, 0x1D, 0x88, 0xB2, 0x9A, 0x04, 0x35, 0x51,
+ 0x14, 0x64, 0x4C, 0x1A, 0x0A, 0x66, 0x54, 0x28, 0xFD, 0x5C, 0xCD, 0xA7, 0xB2, 0x6C, 0xB2, 0xBA,
+ 0xC5, 0xF6, 0xB9, 0x31, 0x19, 0x9D, 0x58, 0x19, 0x7E, 0xD2, 0x12, 0x63, 0x4C, 0x24, 0x93, 0xF1,
+ 0xEF, 0x68, 0x5F, 0x2B, 0x38, 0xA4, 0xE0, 0xA8, 0xC2, 0xB0, 0x09, 0x31, 0xAD, 0x09, 0xF6, 0x0D,
+ 0x90, 0x44, 0x00, 0x15, 0x51, 0xBC, 0xA6, 0x52, 0x80, 0x5A, 0x6A, 0xE3, 0x31, 0x53, 0xB3, 0x66,
+ 0xB0, 0x39, 0x77, 0x82, 0x12, 0xF4, 0x26, 0x35, 0xDC, 0x17, 0x33, 0xEF, 0x2E, 0x36, 0xF7, 0xD1,
+ 0x03, 0xB5, 0x27, 0xD4, 0x21, 0xA9, 0xFC, 0xA4, 0xAA, 0x40, 0xF4, 0x05, 0x7E, 0xDE, 0x8E, 0xB2,
+ 0xE7, 0x00, 0xD5, 0x9E, 0xD2, 0xD2, 0x27, 0xFF, 0x0F, 0x04, 0x2A, 0x01, 0x85, 0x61, 0x71, 0xE6,
+ 0x5F, 0xEC, 0x2B, 0x99, 0x5D, 0xE0, 0xFF, 0x1F, 0xBF, 0xB6, 0xAE, 0x75, 0xA3, 0xA6, 0x62, 0x4D,
+ 0xEB, 0x9F, 0xF3, 0x4E, 0x4A, 0xBE, 0x2D, 0x6A, 0xB7, 0x03, 0xC6, 0xFF, 0x2C, 0x8A, 0x98, 0xA0,
+ 0xE1, 0x7C, 0x62, 0xC3, 0xC1, 0x29, 0x2B, 0xCE, 0x3A, 0x65, 0x0D, 0x06, 0x2F, 0xF6, 0xD1, 0x1B,
+ 0xFE, 0xC5, 0x83, 0xB8, 0xA1, 0x57, 0x84, 0x2C, 0x4D, 0xEE, 0x49, 0xD3, 0x04, 0xE2, 0x1F, 0x4B,
+ 0xC8, 0xEA, 0xA0, 0x3D, 0xEA, 0xE6, 0x83, 0x42, 0xAF, 0xF9, 0x80, 0x96, 0x4A, 0xAF, 0x04, 0x55,
+ 0xD6, 0xD0, 0x7E, 0x9A, 0x0D, 0x53, 0x73, 0x49, 0xC3, 0x6C, 0x8A, 0x0E, 0x8E, 0x39, 0x3B, 0xB9,
+ 0xE5, 0x8B, 0xCE, 0xA6, 0xDF, 0x11, 0x10, 0xA3, 0x92, 0x2D, 0xCF, 0x1B, 0xF0, 0x32, 0x52, 0x95,
+ 0x13, 0x9B, 0xC4, 0x9B, 0x18, 0x02, 0x36, 0x08, 0xC4, 0xED, 0x75, 0x86, 0x03, 0xA9, 0xAE, 0x25,
+ 0x22, 0x4B, 0x6F, 0x9F, 0x8E, 0x3D, 0xF2, 0xE4, 0x77, 0xBB, 0xF9, 0xD6, 0xD4, 0x49, 0x2E, 0x4F,
+ 0x7D, 0x1A, 0x47, 0x36, 0xBF, 0x6F, 0xBF, 0x41, 0x9E, 0xFD, 0x50, 0x3D, 0x86, 0x1D, 0x38, 0x5D,
+ 0x06, 0xC1, 0xB4, 0x6D, 0x1E, 0xA8, 0x7F, 0x78, 0x50, 0xAD, 0x7B, 0x29, 0xC0, 0x74, 0x20, 0xA7,
+ 0x72, 0x8D, 0x45, 0x02, 0x44, 0xED, 0xE3, 0x13, 0x08, 0x85, 0xD5, 0x89, 0xB0, 0xD0, 0xDD, 0xCB,
+ 0x2B, 0xA0, 0xDA, 0xF6, 0xF2, 0x74, 0xF1, 0x5F, 0xD5, 0x7E, 0xD8, 0x5A, 0x5E, 0x92, 0x0A, 0xBD,
+ 0x84, 0x9D, 0x4F, 0x3F, 0x90, 0x05, 0xC9, 0x89, 0x17, 0xFE, 0x6C, 0x68, 0x3C, 0x80, 0x6E, 0x9D,
+ 0x6C, 0xB7, 0x9B, 0xA5, 0x8D, 0xAD, 0x0B, 0xC1, 0xBA, 0x0F, 0xDA, 0xE6, 0x02, 0x69, 0x88, 0xEF,
+ 0x0D, 0xA1, 0x1A, 0x3C, 0x42, 0x47, 0xAA, 0x63, 0x68, 0xC0, 0x40, 0x37, 0x35, 0x64, 0x4B, 0xB3,
+ 0x1D, 0x8F, 0xF9, 0x73, 0x2E, 0x65, 0x5C, 0xCC, 0xE4, 0x7A, 0x08, 0xF1, 0xC7, 0x3F, 0x91, 0xC9,
+ 0xA0, 0x17, 0x94, 0xCD, 0x9E, 0x56, 0x07, 0xF0, 0x73, 0xDE, 0x0E, 0x7A, 0x89, 0x72, 0x8A, 0xD7,
+ 0x7A, 0xE5, 0xCF, 0xB7, 0xCC, 0xEA, 0x1C, 0x92, 0xEE, 0xF7, 0xEB, 0x60, 0x43, 0x4B, 0x21, 0x7B,
+ 0x19, 0x78, 0x55, 0x16, 0xE8, 0xE9, 0x14, 0x76, 0x6B, 0x24, 0x48, 0x13, 0xF8, 0x16, 0x51, 0x71,
+ 0xFC, 0x4E, 0x98, 0x80, 0xD7, 0xE8, 0x97, 0xAA, 0xA5, 0x74, 0x63, 0x07, 0x9C, 0x8F, 0xA2, 0xF5,
+ 0xB5, 0x4D, 0xE4, 0x3B, 0x3A, 0xAB, 0x77, 0x9C, 0x5B, 0xFC, 0x1B, 0x87, 0xE9, 0xDC, 0x81, 0x86,
+ 0x59, 0x90, 0x9C, 0xC4, 0x76, 0x2F, 0x57, 0x93, 0x63, 0x91, 0x20, 0x99, 0x06, 0x5E, 0x70, 0x3A,
+ 0x45, 0x21, 0x59, 0x5B, 0x10, 0xFB, 0xB1, 0x01, 0x4E, 0x0A, 0x41, 0xF7, 0xB6, 0x5B, 0x4A, 0x6F,
+ 0x86, 0x16, 0x54, 0x07, 0xD4, 0x78, 0x6E, 0x8F, 0xB9, 0xEB, 0xD2, 0xC2, 0xF3, 0x4E, 0x1B, 0x2E,
+ 0x6A, 0xCB, 0x2C, 0xF8, 0xBE, 0xF0, 0xD1, 0x50, 0xEC, 0xCF, 0x60, 0x7B, 0xCC, 0x67, 0xDB, 0x96,
+ 0x85, 0x1E, 0x70, 0xE3, 0x14, 0x5E, 0x6F, 0x45, 0xF5, 0xE9, 0xA5, 0x2D, 0x55, 0xCA, 0x40, 0xE2,
+ 0xDE, 0xB8, 0xF4, 0x2F, 0xA2, 0xC7, 0x7D, 0x09, 0x4F, 0xD6, 0xC2, 0xC8, 0x81, 0x56, 0x89, 0x33,
+ 0x8C, 0xF5, 0xC5, 0x8A, 0xAB, 0xA1, 0x94, 0x11, 0x9A, 0x98, 0xA7, 0x91, 0x25, 0x6E, 0xBD, 0x8E,
+ 0x79, 0xED, 0xEB, 0x53, 0x6D, 0x2D, 0xDC, 0xAB, 0x32, 0xD0, 0x65, 0x8C, 0x93, 0xE0, 0x10, 0x7F,
+ 0xD4, 0xDF, 0x4C, 0x1A, 0x47, 0x24, 0x38, 0xAF, 0x6F, 0x6A, 0x82, 0x46, 0xE6, 0xE0, 0x1E, 0xB1,
+ 0xB3, 0x3A, 0x73, 0xA0, 0x96, 0xF0, 0xA4, 0x66, 0xC9, 0x31, 0x06, 0x8A, 0x50, 0xAC, 0x0C, 0x28,
+ 0xD6, 0x63, 0x3D, 0x75, 0x2B, 0x54, 0x9C, 0x52, 0x84, 0x63, 0x37, 0x2F, 0x59, 0xB4, 0xE5, 0x4E,
+ 0x14, 0x7E, 0x75, 0xDD, 0xDA, 0xE2, 0x12, 0xFF, 0x9C, 0x96, 0x19, 0xF6, 0x9F, 0x0E, 0xAD, 0xC2,
+ 0x51, 0x6B, 0x34, 0x8C, 0x9F, 0x77, 0xAC, 0x9F, 0xE1, 0xB6, 0x6E, 0x61, 0x84, 0x36, 0x26, 0xC0,
+ 0x30, 0x05, 0xAF, 0xA1, 0xCA, 0xC7, 0xA9, 0xA5, 0x50, 0xAA, 0xAB, 0xFE, 0xE2, 0xA4, 0xC0, 0x14,
+ 0xA3, 0x30, 0x4E, 0x56, 0x8B, 0x82, 0xBC, 0xF4, 0x67, 0x69, 0xA6, 0xA2, 0x26, 0x2A, 0x1F, 0x97,
+ 0x11, 0x89, 0x6A, 0x03, 0x33, 0xBD, 0x95, 0x34, 0xBA, 0x85, 0xDE, 0x5D, 0x4C, 0xF5, 0xA0, 0x1F,
+ 0x9A, 0x92, 0x52, 0x01, 0xDE, 0x32, 0xB9, 0xCE, 0x94, 0x95, 0x3D, 0x12, 0x3E, 0x37, 0x6D, 0x05,
+ 0x39, 0xE1, 0x81, 0x84, 0xD4, 0x89, 0xE4, 0xBE, 0x09, 0xF6, 0xA7, 0xB3, 0x1A, 0xD3, 0x65, 0x06,
+ 0x12, 0xF5, 0xD1, 0x4A, 0x50, 0xED, 0x7D, 0x4D, 0x3F, 0x13, 0x6A, 0x25, 0x25, 0x0F, 0xE6, 0x07,
+ 0x6A, 0x75, 0x59, 0xB4, 0x23, 0x98, 0x2E, 0x6E, 0x3C, 0x5A, 0x16, 0x9E, 0xC8, 0x39, 0x06, 0x44,
+ 0xAB, 0x14, 0xAA, 0x55, 0x4A, 0x73, 0x9B, 0x67, 0xC6, 0x83, 0x69, 0x00, 0x7F, 0x64, 0x7A, 0x42,
+ 0x31, 0xC5, 0x65, 0x87, 0x16, 0x44, 0x96, 0xA4, 0xD0, 0xE2, 0xE8, 0x99, 0xB0, 0xC6, 0xDB, 0xA8,
+ 0x79, 0x03, 0xDF, 0x0B, 0x6C, 0xB6, 0xCD, 0x7E, 0xFE, 0xF2, 0x0B, 0xD6, 0xDC, 0x69, 0x2D, 0x8A,
+ 0x7F, 0x88, 0x7B, 0x9C, 0x72, 0xF8, 0x80, 0x65, 0x66, 0x4F, 0x66, 0x68, 0x6C, 0x55, 0x76, 0xB9,
+ 0x0A, 0xDB, 0x08, 0xBF, 0x02, 0xB1, 0x86, 0xCF, 0xB0, 0xE9, 0x46, 0xC8, 0xEC, 0xDD, 0x0E, 0x47,
+ 0xA4, 0x7B, 0x20, 0xE7, 0x6E, 0xC1, 0x22, 0x32, 0xFC, 0x9D, 0xB7, 0xA7, 0xB6, 0xB6, 0x92, 0x02,
+ 0xA9, 0xA8, 0xDB, 0x3A, 0x18, 0x2F, 0x60, 0xE5, 0xD1, 0xC4, 0x28, 0x53, 0x00, 0xFA, 0x80, 0x9B,
+ 0x1D, 0x9A, 0x5B, 0xF8, 0x38, 0x4D, 0x72, 0x81, 0xEC, 0x6B, 0xBD, 0x9A, 0x62, 0x2C, 0xB8, 0xEA,
+ 0xBE, 0xE9, 0x88, 0x7D, 0x30, 0x81, 0xC0, 0xBD, 0xFA, 0x0A, 0x3C, 0x03, 0x2D, 0x06, 0x61, 0xFE,
+ 0x04, 0x74, 0x48, 0x2B, 0x80, 0x72, 0x5B, 0x41, 0xEA, 0xFC, 0x36, 0x3E, 0xEA, 0xAD, 0x47, 0xED,
+ 0x88, 0x24, 0x1E, 0x98, 0xEA, 0xA5, 0xBB, 0xC1, 0x3A, 0xCD, 0x9D, 0x3A, 0x7C, 0x41, 0x83, 0xD2,
+ 0x21, 0xCF, 0x58, 0x71, 0xF8, 0xF7, 0xEF, 0xD7, 0x6B, 0x92, 0xB5, 0x93, 0x4D, 0xE4, 0xCE, 0x80,
+ 0x7C, 0xF4, 0xC0, 0xD5, 0xBE, 0x5E, 0x04, 0x3E, 0x0D, 0x0E, 0x90, 0x66, 0x33, 0x6B, 0x5A, 0xC6,
+ 0x38, 0x21, 0x4B, 0xA2, 0xEE, 0x75, 0x10, 0xF0, 0xB4, 0x11, 0x71, 0x1D, 0x53, 0x89, 0xF5, 0xB8,
+ 0xF1, 0x64, 0x5C, 0x40, 0xF0, 0x3B, 0x5D, 0xEB, 0x9B, 0x27, 0x52, 0x98, 0x18, 0xE7, 0xF2, 0x09,
+ 0xFB, 0xFC, 0xC9, 0x2C, 0x1C, 0xFF, 0xCB, 0xD4, 0xA1, 0x39, 0x8C, 0x3F, 0xFF, 0xEC, 0x02, 0xBC,
+ 0x85, 0xF7, 0xE5, 0x45, 0x17, 0x0F, 0x2C, 0x61, 0xC4, 0xEC, 0xD5, 0x71, 0xD3, 0x01, 0x8D, 0x46,
+ 0x5B, 0xF3, 0xA1, 0xE0, 0x43, 0xF4, 0x93, 0x9E, 0x71, 0x08, 0x27, 0x3B, 0x20, 0x5A, 0x56, 0x3D,
+ 0xDF, 0x87, 0x13, 0x50, 0xE8, 0xD2, 0x54, 0x8D, 0x9D, 0xB0, 0xD9, 0x3C, 0xAF, 0xBA, 0x8E, 0x0F,
+ 0xB7, 0x0D, 0xA6, 0x58, 0x05, 0x5D, 0x78, 0x77, 0xEE, 0x04, 0x01, 0xEB, 0xB8, 0xCF, 0x5C, 0x51,
+ 0x63, 0x91, 0x77, 0x91, 0x54, 0x3D, 0xD6, 0x7C, 0x87, 0x2A, 0x4B, 0x94, 0xEB, 0xBC, 0x29, 0x72,
+ 0x78, 0xC3, 0x15, 0x2D, 0xA8, 0xDC, 0xFB, 0x19, 0x19, 0x00, 0xAD, 0x8E, 0xCA, 0x0D, 0x91, 0x4B,
+ 0x1B, 0x11, 0xFF, 0x6F, 0xC3, 0x40, 0xA1, 0x5C, 0x35, 0x7F, 0xF2, 0xB0, 0xA3, 0xF7, 0xD7, 0x53,
+ 0x42, 0x1D, 0xB2, 0x33, 0x74, 0x5F, 0xC4, 0x18, 0x48, 0x5F, 0x85, 0x27, 0xE0, 0x90, 0x57, 0x1B,
+ 0x2E, 0xA0, 0xD2, 0xC3, 0xFB, 0xCB, 0xBA, 0x5E, 0x68, 0xDB, 0xC9, 0x28, 0x43, 0x9D, 0x00, 0xD3,
+ 0x01, 0x83, 0x57, 0xF5, 0x87, 0x9E, 0xA5, 0xF9, 0xA2, 0x70, 0xF0, 0x84, 0x42, 0x8C, 0x6E, 0x4C,
+ 0xF9, 0x40, 0xB8, 0x43, 0xF4, 0xEB, 0xF6, 0xDA, 0xB9, 0xCC, 0xA2, 0xE6, 0xEE, 0xE9, 0x99, 0x48,
+ 0xBC, 0x55, 0xF9, 0x12, 0x1F, 0xC3, 0x9E, 0x5D, 0x15, 0xFB, 0xBE, 0xBF, 0xF8, 0x8D, 0x25, 0x89,
+ 0x52, 0x17, 0x8F, 0xC5, 0xC2, 0x0B, 0x1B, 0x99, 0x49, 0x79, 0x45, 0xED, 0x47, 0xD9, 0xDE, 0x76,
+ 0x45, 0x56, 0xDC, 0x82, 0xC4, 0xAC, 0x5F, 0xE4, 0xBF, 0x5B, 0x29, 0x42, 0x44, 0xFC, 0x27, 0xE6,
+ 0x93, 0x76, 0x7C, 0x24, 0x22, 0xD3, 0x94, 0xAB, 0x55, 0x74, 0x5C, 0xE1, 0x68, 0x11, 0xA8, 0x1C,
+ 0x9F, 0x65, 0x4D, 0xDF, 0x21, 0xEF, 0xC1, 0x22, 0x58, 0xA9, 0x8F, 0x1A, 0xB4, 0x82, 0x05, 0x0D,
+ 0x1C, 0x5A, 0x91, 0xDE, 0xE2, 0x69, 0x09, 0xFD, 0xAE, 0x8B, 0xE3, 0xB5, 0x77, 0x6D, 0xFD, 0xBB,
+ 0xC8, 0xC6, 0x40, 0x17, 0xD0, 0x59, 0x4F, 0x8F, 0x20, 0x57, 0x0F, 0x92, 0x8B, 0x5E, 0x86, 0x0C,
+ 0x36, 0x8E, 0x0B, 0x36, 0x7D, 0xD8, 0xCC, 0xE1, 0xB5, 0x37, 0xB1, 0xD7, 0xED, 0xCC, 0x60, 0xD8,
+ 0x6C, 0xFE, 0xFD, 0x23, 0x10, 0xE3, 0xD2, 0xD9, 0x4B, 0x16, 0xF9, 0x9C, 0x5E, 0xD5, 0xC2, 0x7B,
+ 0x43, 0xDD, 0x78, 0x15, 0x85, 0xE9, 0x4A, 0xB5, 0x8F, 0x29, 0x6F, 0x70, 0x41, 0xA9, 0x97, 0xDC,
+ 0xCF, 0x8D, 0x2E, 0xA6, 0xD8, 0x95, 0xFD, 0xB3, 0xE4, 0x68, 0x99, 0x7E, 0x81, 0x63, 0x96, 0xFA,
+ 0x70, 0xE7, 0xF1, 0x2E, 0xA5, 0x8B, 0x58, 0xD1, 0x53, 0xE3, 0xD7, 0x45, 0x6D, 0x44, 0x18, 0x26,
+ 0xF3, 0xD8, 0x2D, 0x2F, 0x62, 0xDD, 0x3B, 0x3F, 0xCC, 0xEF, 0xF1, 0x95, 0x31, 0x5F, 0xCD, 0xC9,
+ 0xC5, 0x15, 0xBB, 0xCA, 0x09, 0x41, 0x61, 0x7A, 0x28, 0x54, 0x2B, 0x76, 0xAA, 0xEF, 0x3E, 0x35,
+ 0x13, 0x35, 0x1B, 0x6C, 0x79, 0x08, 0x67, 0xD0, 0xE0, 0x90, 0xAE, 0xAB, 0x1F, 0x86, 0xD5, 0x3C,
+ 0xE8, 0x8A, 0x4F, 0x93, 0x6F, 0x8A, 0x98, 0xF7, 0xAF, 0xAD, 0x23, 0x7F, 0x97, 0x07, 0x2A, 0x3B,
+ 0x17, 0x02, 0xCE, 0x94, 0x49, 0x4F, 0xCE, 0xEE, 0x62, 0xB7, 0x51, 0xBD, 0x2F, 0x32, 0xF6, 0xF1,
+ 0xD9, 0x0C, 0xB7, 0xC7, 0xB9, 0xB2, 0xFA, 0x86, 0xE7, 0x21, 0xE5, 0xC5, 0xB2, 0xF2, 0x4C, 0xA7,
+ 0x16, 0xC2, 0x04, 0xB2, 0xE3, 0x22, 0xB3, 0x38, 0x90, 0x6D, 0x0A, 0xC7, 0x0E, 0x83, 0x4E, 0xC8,
+ 0x34, 0x32, 0x7A, 0x59, 0xAE, 0x7B, 0xBF, 0x64, 0x2B, 0x1D, 0x57, 0xCD, 0x49, 0xA0, 0x10, 0x25,
+ 0x64, 0xDA, 0x19, 0x20, 0xA3, 0x2C, 0x1C, 0xAC, 0x07, 0x62, 0x08, 0xF3, 0x73, 0x29, 0x23, 0x1E,
+ 0xA6, 0xC7, 0x51, 0x88, 0x56, 0x4A, 0x39, 0x30, 0xDA, 0x8E, 0x70, 0x0C, 0x4E, 0xC1, 0x37, 0x10,
+ 0x8C, 0x13, 0xCB, 0x60, 0x24, 0x74, 0xD0, 0xD6, 0x7E, 0xBA, 0x48, 0xB1, 0x7A, 0x31, 0xCA, 0x78,
+ 0x7D, 0x34, 0x0A, 0xF3, 0x26, 0x03, 0x3F, 0x9A, 0x46, 0xCB, 0x2A, 0x67, 0x07, 0x9B, 0xA7, 0xAE,
+ 0xBB, 0x1E, 0x97, 0xA3, 0x35, 0x1A, 0xD1, 0x49, 0xAA, 0x73, 0xD4, 0x60, 0x79, 0x14, 0x33, 0xE8,
+ 0xFA, 0x6E, 0x47, 0x83, 0xE3, 0xC1, 0xF6, 0xDE, 0x8F, 0x69, 0xCD, 0x68, 0xA1, 0x95, 0x2B, 0x19,
+ 0x26, 0xFD, 0x56, 0x2E, 0x3E, 0x12, 0x0D, 0xD3, 0xDA, 0x55, 0xCE, 0xE1, 0x90, 0x6E, 0x38, 0x15,
+ 0x0A, 0x10, 0xAC, 0xA1, 0x11, 0x67, 0xAE, 0x39, 0x11, 0x2A, 0x28, 0xAE, 0x30, 0xC8, 0x18, 0xC3,
+ 0x09, 0x35, 0x3C, 0x58, 0x33, 0x0B, 0x01, 0xCF, 0x55, 0x8D, 0x2E, 0xD3, 0x63, 0x8F, 0x59, 0xD4,
+ 0x10, 0x39, 0x31, 0x44, 0x5C, 0xB7, 0x70, 0xCD, 0x9C, 0x65, 0xFC, 0x93, 0x11, 0x69, 0xB0, 0xEA,
+ 0xA3, 0x20, 0x92, 0xE6, 0x7D, 0xFF, 0x3B, 0x33, 0x82, 0x5E, 0x91, 0xAB, 0xE7, 0x7C, 0xC0, 0xB0,
+ 0xC5, 0xB2, 0x46, 0x00, 0x1D, 0x41, 0x7E, 0xA6, 0x01, 0xDF, 0x3C, 0xC5, 0xAC, 0x5D, 0x88, 0x4E,
+ 0x39, 0x81, 0xF1, 0x7B, 0xC1, 0xAD, 0x59, 0x28, 0x47, 0xEF, 0x0E, 0xB7, 0x7D, 0x94, 0x14, 0x9A,
+ 0xAE, 0x7C, 0x51, 0xD1, 0x15, 0xCB, 0xCB, 0xCE, 0x8A, 0xD9, 0x98, 0x52, 0x5E, 0x79, 0x53, 0xC4,
+ 0xED, 0x1B, 0x19, 0x51, 0x35, 0xBC, 0x5C, 0xB3, 0xEF, 0xC6, 0x2F, 0x16, 0x13, 0x25, 0x5F, 0x9D,
+ 0x84, 0xE1, 0x01, 0x17, 0x4A, 0xE3, 0x62, 0x9F, 0xB5, 0x5A, 0x44, 0x53, 0xF9, 0x67, 0x8D, 0xFE,
+ 0xA5, 0x50, 0x38, 0xAF, 0x60, 0x05, 0x78, 0x01, 0x98, 0xBB, 0xB8, 0x36, 0x9B, 0xDB, 0xDF, 0xE5,
+ 0xB6, 0x61, 0xC3, 0xA3, 0xB1, 0xF0, 0x53, 0x93, 0xD0, 0x45, 0xF3, 0x17, 0x15, 0x58, 0x1B, 0x3A,
+ 0xA0, 0x05, 0x02, 0x1F, 0x86, 0xEC, 0x0A, 0x3F, 0xB8, 0x6D, 0x18, 0x90, 0x54, 0x09, 0x0E, 0x7F,
+ 0x0C, 0x60, 0x06, 0xE8, 0x3A, 0xBE, 0x68, 0x24, 0xEB, 0x18, 0x6B, 0xB3, 0xBB, 0xBF, 0xCD, 0x87,
+ 0x0D, 0x71, 0x99, 0x86, 0x91, 0x87, 0xC4, 0xEE, 0xF4, 0x4D, 0x17, 0x14, 0x3E, 0x89, 0xEE, 0xA8,
+ 0x3D, 0xC5, 0x54, 0xA5, 0x28, 0x46, 0x1F, 0x81, 0x52, 0xAA, 0x4F, 0xE6, 0xF5, 0x6A, 0x94, 0xE2,
+ 0x07, 0x4C, 0x6F, 0x96, 0x57, 0x19, 0x21, 0xAD, 0xF1, 0xFD, 0x42, 0x2E, 0x96, 0x13, 0x7C, 0xB2,
+ 0x40, 0x6F, 0x82, 0xC8, 0x27, 0x44, 0x2B, 0x16, 0xFD, 0xA4, 0x0F, 0x72, 0xE8, 0xF8, 0x8C, 0x90,
+ 0xFC, 0x1E, 0xED, 0xCA, 0x6B, 0xAB, 0x29, 0x61, 0xB4, 0x34, 0x55, 0xCC, 0x5B, 0x8D, 0x42, 0x5F,
+ 0x37, 0xF8, 0xA2, 0xB5, 0x39, 0x9A, 0x8C, 0x2C, 0x9F, 0x9C, 0xD9, 0x03, 0x7B, 0xE9, 0x50, 0x3D,
+ 0x49, 0x77, 0xE4, 0x21, 0x81, 0x64, 0x8B, 0xC0, 0x71, 0x85, 0xCA, 0xD0, 0xE6, 0xB9, 0x7A, 0xFB,
+ 0x34, 0xDD, 0x32, 0x4C, 0xF0, 0x06, 0x5D, 0xF8, 0x9E, 0xF2, 0xC8, 0x9C, 0x27, 0x2A, 0x5D, 0x0A,
+ 0x00, 0x2D, 0x5A, 0xB1, 0xC4, 0x3E, 0xE0, 0x5C, 0x77, 0xCC, 0xBA, 0x7A, 0xBD, 0xC2, 0x89, 0x20,
+ 0x7F, 0xB3, 0x83, 0x4B, 0xA5, 0xBF, 0x79, 0x4A, 0x75, 0x5B, 0x8E, 0x75, 0xC1, 0x65, 0x96, 0x75,
+ 0x23, 0xA8, 0x6C, 0x9E, 0xA9, 0x99, 0xA9, 0xD5, 0x16, 0x0D, 0x49, 0x9B, 0x1D, 0x64, 0xA9, 0xF6,
+ 0xCF, 0x8F, 0xB0, 0x10, 0x22, 0xD7, 0x92, 0x62, 0xB3, 0x13, 0x34, 0xF9, 0xC2, 0xEC, 0xC3, 0x49,
+ 0x0F, 0x45, 0x96, 0x11, 0x63, 0x21, 0x9C, 0x09, 0x04, 0x6F, 0x69, 0xFF, 0x94, 0x5F, 0x93, 0xC5,
+ 0x61, 0xDE, 0xBB, 0x70, 0xFD, 0x1F, 0x51, 0xE4, 0x80, 0xC9, 0xA5, 0xA4, 0x22, 0xDE, 0x4C, 0x91,
+ 0xD9, 0xEB, 0x71, 0xAC, 0xE7, 0x6D, 0x93, 0x29, 0xD6, 0x0C, 0x83, 0xBD, 0xA3, 0xD9, 0xC4, 0x6E,
+ 0x51, 0x6A, 0x76, 0x53, 0xDA, 0xE0, 0x47, 0x66, 0x29, 0x8E, 0x95, 0x9A, 0xF7, 0x26, 0x7B, 0x95,
+ 0xE4, 0x03, 0x7F, 0xB8, 0x1E, 0x65, 0x9A, 0xAE, 0x2F, 0xC7, 0xE5, 0x30, 0x57, 0x80, 0x5B, 0x43,
+ 0x86, 0xD5, 0x0E, 0x80, 0x10, 0x58, 0x72, 0xBA, 0x60, 0x1E, 0xCF, 0x24, 0xB5, 0xFE, 0x3B, 0xEC,
+ 0x6B, 0xE3, 0x4D, 0x60, 0x59, 0x24, 0xC9, 0xB9, 0x33, 0x6B, 0xBC, 0x07, 0x3D, 0x00, 0xBB, 0x94,
+ 0x54, 0x3F, 0x4C, 0xE3, 0xBC, 0xE9, 0x5F, 0x8F, 0xAA, 0x0F, 0x38, 0xF4, 0x6D, 0xCE, 0xAF, 0xBF,
+ 0x70, 0xDB, 0x4F, 0xEB, 0xDF, 0x73, 0xFE, 0x12, 0xF7, 0xB4, 0x32, 0x84, 0xBE, 0x4B, 0xDC, 0x1C,
+ 0x22, 0xB9, 0xF3, 0xF0, 0x05, 0x28, 0x84, 0xE0, 0xCE, 0x7E, 0x9E, 0x2F, 0x97, 0xD6, 0xC6, 0xF9,
+ 0x92, 0x85, 0xC0, 0xAB, 0xB8, 0x45, 0x3A, 0x78, 0x83, 0x30, 0x80, 0x34, 0x33, 0x41, 0x4D, 0xFF,
+ 0xFE, 0x2A, 0xE2, 0x5D, 0xA8, 0xA6, 0x75, 0x56, 0xD8, 0xC2, 0xFA, 0xEE, 0x89, 0xCD, 0x8B, 0xB7,
+ 0x31, 0x88, 0x08, 0xFC, 0xC9, 0x27, 0xEC, 0x40, 0xD5, 0xF5, 0xA6, 0x2D, 0x46, 0x1F, 0x5A, 0x2D,
+ 0xD1, 0xE2, 0x88, 0x2B, 0xDC, 0x57, 0x1A, 0x1A, 0x5C, 0x64, 0x36, 0xB5, 0x99, 0x97, 0x30, 0x92,
+ 0x17, 0x58, 0x04, 0x63, 0x29, 0x79, 0xC3, 0x02, 0xD2, 0xD2, 0xC7, 0x18, 0xD1, 0x3F, 0x2D, 0x50,
+ 0x1E, 0x40, 0x62, 0x8A, 0x7B, 0x48, 0x66, 0x4F, 0xEA, 0x76, 0x7A, 0x2C, 0x9F, 0xEA, 0x74, 0x35,
+ 0xA8, 0x0C, 0xFB, 0x98, 0x20, 0xCC, 0xAA, 0xE9, 0x76, 0xA2, 0xAB, 0xE5, 0xA0, 0x50, 0x91, 0x52,
+ 0x02, 0x19, 0x55, 0x26, 0xCF, 0x90, 0xB1, 0x3C, 0xDB, 0x3B, 0xDF, 0x7E, 0x86, 0x49, 0xC7, 0x97,
+ 0x68, 0xC6, 0xDD, 0x99, 0x23, 0xE8, 0x4E, 0xE1, 0xF2, 0x04, 0x67, 0xBE, 0xA2, 0x1C, 0x7E, 0x25,
+ 0xAC, 0x48, 0x5E, 0x46, 0xE0, 0xE5, 0x12, 0xD6, 0xE7, 0x41, 0x26, 0xEF, 0x43, 0xEB, 0x4B, 0xB6,
+ 0xCA, 0xDA, 0x8A, 0xA0, 0xFC, 0x20, 0x8D, 0x67, 0xE2, 0xF1, 0x73, 0xD5, 0xD8, 0xC6, 0x25, 0xD7,
+ 0xB1, 0x00, 0xF6, 0x84, 0x73, 0xC2, 0xD3, 0x27, 0x85, 0x79, 0xF0, 0x9E, 0x25, 0x66, 0xB2, 0x7D,
+ 0x56, 0x0B, 0x43, 0x74, 0x6D, 0x1C, 0x74, 0x1D, 0x13, 0xBD, 0x1C, 0xA1, 0xB0, 0x0A, 0x2A, 0x77,
+ 0x1D, 0x65, 0xF2, 0x73, 0x5B, 0x3F, 0xF1, 0x32, 0x5E, 0xF3, 0x02, 0xBA, 0xA7, 0xE8, 0x6F, 0xBE,
+ 0x7D, 0x87, 0x8C, 0xDC, 0x44, 0xDE, 0x8A, 0x8B, 0x4A, 0xD8, 0x52, 0x74, 0x2C, 0x9F, 0xBA, 0xFA,
+ 0xF6, 0x23, 0x1B, 0xDA, 0x4E, 0x4F, 0x07, 0x68, 0x36, 0xDB, 0xE9, 0x3D, 0x4A, 0x12, 0x43, 0x31,
+ 0xE1, 0x56, 0x45, 0x08, 0xFA, 0x97, 0xD0, 0x1B, 0x1A, 0x54, 0x04, 0xC7, 0xFF, 0x1A, 0xC9, 0x59,
+ 0x6E, 0xB6, 0x77, 0xD0, 0x42, 0x69, 0xD7, 0xF7, 0xDD, 0x72, 0xAF, 0xD4, 0x4D, 0xAA, 0xBD, 0xDD,
+ 0x9D, 0xED, 0x0C, 0x0B, 0xA6, 0x9B, 0x9D, 0x42, 0x62, 0x89, 0xFB, 0x2B, 0x09, 0x0F, 0xB9, 0x03,
+ 0x2C, 0xC0, 0xA0, 0x3E, 0x21, 0xF3, 0x76, 0x6A, 0x3C, 0xCB, 0xD4, 0xCB, 0xB7, 0xB2, 0xD4, 0x9B,
+ 0x4E, 0x16, 0xD1, 0x06, 0x8E, 0x66, 0xBF, 0x57, 0x2E, 0xA9, 0xF4, 0xAF, 0x37, 0x70, 0xE6, 0x2F,
+ 0xF8, 0x5A, 0x48, 0x14, 0xD7, 0xF9, 0x4B, 0x7A, 0x6C, 0x47, 0x82, 0x78, 0xCC, 0xAD, 0x35, 0x22,
+ 0xA2, 0x31, 0x0D, 0x88, 0xA3, 0x08, 0x24, 0x36, 0xC8, 0x37, 0xEE, 0x85, 0xE4, 0xF5, 0x95, 0x8C,
+ 0x03, 0x08, 0xCA, 0x48, 0xD8, 0xFB, 0x7F, 0xED, 0xA1, 0x71, 0x14, 0x9D, 0xB4, 0x3B, 0x81, 0xA7,
+ 0x32, 0xAD, 0x98, 0x05, 0x87, 0xD3, 0xD6, 0xBC, 0xF5, 0x23, 0x06, 0x8B, 0xF2, 0xD2, 0x6A, 0x0E,
+ 0xA4, 0x41, 0xA7, 0xC1, 0xB6, 0x78, 0xD2, 0x6C, 0x15, 0xF4, 0x6C, 0x0B, 0xA4, 0x61, 0x3A, 0x82,
+ 0x63, 0xEA, 0xB4, 0xE7, 0x40, 0x72, 0xEF, 0x7C, 0x8E, 0x07, 0xDC, 0xF7, 0x64, 0x37, 0xA7, 0x38,
+ 0xBE, 0x19, 0xA7, 0x51, 0xD2, 0xCD, 0x3A, 0x02, 0x31, 0x2F, 0x5F, 0x33, 0x6F, 0x60, 0xE9, 0xBB,
+ 0x8C, 0x6B, 0x97, 0x17, 0x06, 0x1C, 0xF3, 0x9E, 0x02, 0xD3, 0xE8, 0x48, 0xB3, 0xEE, 0xCE, 0x57,
+ 0x21, 0x05, 0x16, 0x94, 0xF8, 0x57, 0xD2, 0xD6, 0x90, 0xB5, 0x3C, 0xAE, 0xD3, 0x7B, 0x8B, 0xE9,
+ 0x4C, 0x3D, 0x2D, 0x8A, 0xA2, 0xA1, 0xC7, 0xA6, 0x89, 0x06, 0x9F, 0x0C, 0xF2, 0x85, 0xC0, 0xA1,
+ 0x9E, 0x7D, 0xC5, 0x43, 0x9C, 0xD3, 0x21, 0x4F, 0x85, 0x1F, 0x92, 0x10, 0x9D, 0x87, 0xB1, 0x1D,
+ 0x98, 0x00, 0x62, 0x07, 0x8B, 0x80, 0x66, 0x0E, 0xA0, 0x1C, 0x02, 0xE9, 0xBF, 0x71, 0x1E, 0x71,
+ 0x7E, 0x4F, 0x1D, 0xCC, 0x5D, 0x20, 0xC0, 0x2E, 0x4D, 0x30, 0xF8, 0x66, 0x90, 0x9B, 0xBD, 0x04,
+ 0x7D, 0xC6, 0x21, 0x99, 0x51, 0x11, 0x3B, 0x3D, 0xDE, 0xEC, 0xE9, 0xCB, 0x4D, 0x96, 0x46, 0xD7,
+ 0xA7, 0xBA, 0x05, 0xE2, 0xE0, 0x8E, 0x27, 0xF8, 0xC1, 0x1B, 0x37, 0xCE, 0x3F, 0xA6, 0x74, 0x91,
+ 0xDB, 0x1D, 0x50, 0xFD, 0xCF, 0x0B, 0x11, 0xDB, 0xD0, 0x1A, 0xA8, 0xA0, 0x94, 0x6C, 0xD8, 0xA8,
+ 0xA8, 0x3E, 0x25, 0xAE, 0x37, 0xE4, 0xA7, 0x18, 0xB5, 0xB6, 0xAC, 0x57, 0x28, 0x77, 0xBA, 0xFA,
+ 0x43, 0xB9, 0x0D, 0xC6, 0x72, 0xA5, 0xF6, 0x0D, 0xD1, 0xA0, 0x6D, 0xEB, 0x1F, 0xDB, 0xE3, 0xE6,
+ 0x08, 0x98, 0xF3, 0x8E, 0xAD, 0x2B, 0x75, 0xC9, 0xE0, 0xB3, 0x96, 0xE7, 0xCE, 0x49, 0xC8, 0x13,
+ 0xF4, 0xFD, 0x12, 0xA3, 0xB6, 0x49, 0xC9, 0x9B, 0x51, 0x92, 0xAF, 0x5F, 0xE4, 0xD7, 0xD2, 0xF5,
+ 0x9F, 0xB8, 0x8E, 0xF9, 0xD5, 0xA3, 0x8B, 0x49, 0xAB, 0xFB, 0xB7, 0x19, 0x9B, 0xFB, 0xEC, 0xAA,
+ 0x28, 0xFC, 0x91, 0x9C, 0x8C, 0xEE, 0xD7, 0x45, 0xCC, 0xB8, 0xFF, 0x99, 0xBB, 0x86, 0x7B, 0xDD,
+ 0x0A, 0xD4, 0x84, 0x61, 0x68, 0x0D, 0x6C, 0x9F, 0x9D, 0x16, 0xF4, 0xF9, 0x6A, 0x14, 0x50, 0x28,
+ 0x78, 0x32, 0xBA, 0x88, 0x42, 0x97, 0x84, 0x4B, 0x6D, 0x22, 0x9C, 0x04, 0x5E, 0xB0, 0xED, 0x10,
+ 0x7A, 0x7E, 0xCD, 0x67, 0xB3, 0x56, 0x17, 0x6C, 0xC7, 0x5F, 0x4A, 0x69, 0x2F, 0x88, 0x3B, 0x72,
+ 0x69, 0xAD, 0xD4, 0x89, 0x75, 0xCB, 0x47, 0x46, 0x48, 0x21, 0x0C, 0xFD, 0x97, 0x64, 0x3C, 0x8C,
+ 0xE5, 0x62, 0x7C, 0xA2, 0x17, 0xEB, 0x23, 0x54, 0xAE, 0xEA, 0x43, 0x82, 0xC5, 0x29, 0x99, 0xBD,
+ 0xBF, 0xDC, 0xEC, 0xEB, 0xD8, 0x58, 0x56, 0x9A, 0xDF, 0x56, 0x2C, 0x80, 0x89, 0x5E, 0x9B, 0x52,
+ 0xF2, 0x80, 0xB5, 0xE7, 0xFA, 0x26, 0xBD, 0x6A, 0xFC, 0x11, 0xC1, 0xDE, 0xF9, 0xE5, 0x91, 0x0F,
+ 0xFF, 0x48, 0xE2, 0x44, 0xAA, 0x45, 0xC4, 0x82, 0x75, 0x2B, 0xFA, 0xED, 0x86, 0xC9, 0xAF, 0x50,
+ 0x55, 0x9E, 0x8F, 0x39, 0x0B, 0xE7, 0x2E, 0x4D, 0xB3, 0xF2, 0xD1, 0xF0, 0xB0, 0xE6, 0x2A, 0x73,
+ 0x25, 0x34, 0xC6, 0x3F, 0xDD, 0x47, 0x88, 0x6D, 0xDA, 0x47, 0xD8, 0x1B, 0x74, 0x2E, 0xF7, 0xF6,
+ 0x33, 0x13, 0x44, 0xC0, 0x26, 0x13, 0x77, 0xD2, 0x5B, 0xCF, 0xDF, 0xE4, 0x49, 0x61, 0x23, 0x7B,
+ 0x15, 0x0A, 0x81, 0x96, 0xD9, 0x92, 0x70, 0x5A, 0x6E, 0x77, 0x15, 0x38, 0x53, 0xAC, 0xE1, 0x09,
+ 0xD9, 0x51, 0x27, 0x12, 0x8D, 0x24, 0xF1, 0x85, 0xF5, 0x19, 0x38, 0x59, 0xCD, 0x41, 0x2C, 0x37,
+ 0x84, 0x57, 0x5B, 0xA5, 0x01, 0x72, 0x42, 0xD5, 0x3F, 0xD9, 0x1E, 0x58, 0x8C, 0x2A, 0x22, 0xC1,
+ 0xF9, 0x35, 0x45, 0x00, 0xBE, 0xAD, 0xCA, 0xBF, 0x18, 0x35, 0xC2, 0xD6, 0x07, 0x9D, 0x19, 0x8F,
+ 0x3E, 0xDB, 0x13, 0x63, 0x3D, 0x71, 0xCB, 0x80, 0x03, 0x69, 0x2D, 0x03, 0x0B, 0x02, 0xC9, 0xA9,
+ 0x16, 0x83, 0xBD, 0xC3, 0x65, 0xF6, 0xB1, 0x4C, 0x38, 0x27, 0xA6, 0xB4, 0x67, 0x08, 0x5C, 0x31,
+ 0x4A, 0x40, 0x8A, 0xCE, 0xFF, 0x39, 0x63, 0x9D, 0x9A, 0xE8, 0x4C, 0x15, 0x06, 0x1E, 0xC5, 0xB0,
+ 0x30, 0x9A, 0x78, 0x95, 0xB7, 0x83, 0xEF, 0x5B, 0x35, 0x84, 0x6E, 0xE3, 0x16, 0x30, 0x8A, 0x53,
+ 0x2E, 0x81, 0x36, 0xD8, 0xB1, 0x27, 0x78, 0xD0, 0x09, 0x34, 0x5D, 0xB8, 0xAB, 0xA8, 0x34, 0x3E,
+ 0x82, 0x2A, 0xFC, 0xE1, 0x54, 0x0E, 0xE5, 0xCA, 0x6B, 0x66, 0xE1, 0xA3, 0x71, 0x5A, 0x4E, 0x65,
+ 0x88, 0x5A, 0x47, 0xBC, 0xF7, 0xDD, 0x60, 0xB9, 0x8F, 0x42, 0xE2, 0xAB, 0x12, 0xC7, 0xEF, 0xFF,
+ 0x0C, 0xA9, 0x23, 0x25, 0xDC, 0x8D, 0xAE, 0xAD, 0x53, 0x7D, 0xE3, 0x28, 0xF7, 0xF1, 0x79, 0x32,
+ 0x7F, 0x8A, 0x56, 0x76, 0xA4, 0x05, 0x50, 0x2D, 0x65, 0x90, 0xA0, 0xC8, 0xBE, 0xF2, 0xC2, 0x4E,
+ 0xC3, 0x7B, 0xB9, 0xF4, 0x9F, 0x68, 0x68, 0x33, 0x6A, 0xDC, 0x24, 0xE8, 0x52, 0x2F, 0x3D, 0x36,
+ 0x96, 0x41, 0x09, 0xF1, 0xFE, 0xF3, 0x45, 0x5D, 0xF8, 0xBA, 0xF0, 0x0E, 0x4E, 0x9E, 0xA2, 0xF3,
+ 0xD7, 0x10, 0x4C, 0xE4, 0x6D, 0x12, 0xB2, 0x68, 0x76, 0x7E, 0x73, 0xD1, 0x8D, 0xA9, 0xFE, 0xFE,
+ 0x6F, 0xD0, 0x73, 0xCD, 0xDF, 0x36, 0xE7, 0xD1, 0xA9, 0x14, 0xFB, 0x6E, 0x61, 0x74, 0x01, 0x86,
+ 0x1B, 0x4B, 0xEA, 0x60, 0x1A, 0x10, 0xFE, 0x87, 0xBC, 0xBE, 0x55, 0xD0, 0x8E, 0xA1, 0x1A, 0xDA,
+ 0xCA, 0x82, 0x3E, 0xFC, 0x7D, 0x2F, 0x44, 0x62, 0xF0, 0x08, 0xCC, 0xC2, 0xD5, 0x07, 0xD6, 0x5E,
+ 0x77, 0xB6, 0x9A, 0xC4, 0x18, 0x61, 0x91, 0x3B, 0xE8, 0x01, 0xAA, 0x2B, 0x87, 0x4A, 0x73, 0x6F,
+ 0x86, 0x1B, 0x2C, 0x4A, 0xDA, 0x29, 0x39, 0x26, 0x52, 0xC7, 0x26, 0x63, 0x72, 0x52, 0xAA, 0x41,
+ 0x4B, 0x85, 0xC1, 0x74, 0x4B, 0xB9, 0xA1, 0xAF, 0x5D, 0x8B, 0xA2, 0x43, 0x08, 0x0A, 0x2D, 0x8D,
+ 0x1F, 0x7A, 0x3A, 0xCB, 0x95, 0xFD, 0x04, 0xAB, 0x06, 0x78, 0xD9, 0x98, 0xEC, 0xBF, 0x67, 0x7F,
+ 0xB4, 0x69, 0x1C, 0x0C, 0x11, 0x4F, 0xB4, 0xDF, 0xE6, 0xF7, 0xEB, 0x40, 0x54, 0x53, 0x60, 0x81,
+ 0x59, 0x93, 0x93, 0x20, 0x79, 0xFA, 0xBC, 0x55, 0x93, 0xE0, 0xB5, 0x92, 0xE0, 0x20, 0xB7, 0x59,
+ 0xE2, 0xDA, 0x90, 0x5C, 0xB2, 0x9C, 0x31, 0xAC, 0x37, 0x6B, 0x22, 0x94, 0xEA, 0xC3, 0x3A, 0xC8,
+ 0xB2, 0x14, 0xBB, 0x48, 0xF6, 0x17, 0x46, 0x79, 0xD5, 0x0B, 0x5C, 0x3B, 0xF5, 0x7A, 0x41, 0x29,
+ 0xAC, 0x0F, 0xF5, 0x05, 0x3F, 0x00, 0xA4, 0x3C, 0xBB, 0x40, 0xED, 0x3C, 0xC3, 0x55, 0xC4, 0x0A,
+ 0x40, 0x30, 0x31, 0x93, 0x35, 0x95, 0xC8, 0xA4, 0xB0, 0xA7, 0x58, 0xCC, 0xDD, 0x6F, 0x63, 0xD4,
+ 0x6C, 0x59, 0x4F, 0x98, 0x70, 0xD4, 0x99, 0xB1, 0x5A, 0x75, 0x1A, 0xAF, 0xEE, 0x34, 0x5F, 0x64,
+ 0xDC, 0xA5, 0xBC, 0x03, 0xCA, 0x14, 0xCF, 0x2C, 0xF1, 0xB2, 0x09, 0x89, 0x18, 0x24, 0x62, 0x6E,
+ 0xB6, 0x25, 0x6B, 0xE3, 0x46, 0x42, 0x7C, 0x7C, 0x1D, 0x24, 0x36, 0x4D, 0x29, 0xF4, 0x66, 0xC5,
+ 0xA4, 0x33, 0x39, 0xB7, 0xEF, 0x04, 0x95, 0x97, 0xB8, 0x15, 0x64, 0x00, 0x76, 0xA5, 0xCF, 0xED,
+ 0x5E, 0x2B, 0x7F, 0xDE, 0xC4, 0x54, 0x5B, 0x83, 0x81, 0xB4, 0xA3, 0xC0, 0x0D, 0x7E, 0x94, 0x1E,
+ 0x32, 0xD6, 0x0F, 0x7A, 0x6A, 0x7C, 0x03, 0x23, 0xEA, 0xEE, 0xE6, 0x5C, 0x79, 0x32, 0xFB, 0xEF,
+ 0x44, 0x01, 0xE1, 0x38, 0x67, 0x87, 0xDE, 0xF0, 0xA6, 0x58, 0x7F, 0x4E, 0x20, 0x1F, 0x0F, 0x70,
+ 0x64, 0x65, 0x83, 0x2A, 0xD3, 0x07, 0x1C, 0xC2, 0x70, 0x3A, 0x0E, 0x76, 0x8F, 0x22, 0xC6, 0xE5,
+ 0xD3, 0xCC, 0x6A, 0xAF, 0xD4, 0x4B, 0xA1, 0x12, 0x58, 0xAD, 0xD7, 0x52, 0xDE, 0x4A, 0xB1, 0xCB,
+ 0x2A, 0xCF, 0x4F, 0x3F, 0x7B, 0xBD, 0xCD, 0x30, 0xFF, 0xD0, 0x93, 0x54, 0x9F, 0x19, 0xA6, 0x8C,
+ 0xF1, 0x3C, 0x14, 0x44, 0x8C, 0xAC, 0x07, 0xE0, 0x1B, 0x6B, 0x49, 0xB7, 0xED, 0xDB, 0x6B, 0x96,
+ 0x5C, 0xE0, 0x87, 0x55, 0x77, 0xA1, 0xD4, 0x3D, 0x27, 0xE2, 0x1C, 0xB4, 0xFE, 0xEA, 0x67, 0x6D,
+ 0x72, 0x03, 0xC8, 0x45, 0x04, 0xD4, 0x87, 0x1E, 0xAD, 0xC6, 0xC7, 0x46, 0x4E, 0xD6, 0x3C, 0x5E,
+ 0x09, 0xFF, 0xFB, 0xF2, 0x23, 0x5A, 0x6B, 0xC2, 0x9D, 0xB4, 0x81, 0x74, 0xD2, 0x07, 0xE8, 0x97,
+ 0x36, 0xD6, 0x43, 0x32, 0x0A, 0xBF, 0x71, 0x5F, 0x17, 0x90, 0x5A, 0x86, 0x76, 0x6B, 0x98, 0x6A,
+ 0x94, 0x65, 0x5A, 0x91, 0x41, 0x41, 0x39, 0x7E, 0x2C, 0xA8, 0x44, 0xEB, 0x06, 0x9D, 0xC2, 0x7F,
+ 0x65, 0x42, 0x9B, 0x02, 0x18, 0xED, 0x25, 0x49, 0x28, 0x50, 0x73, 0x3E, 0x4B, 0x83, 0x8C, 0x64,
+ 0xDD, 0x63, 0x2A, 0x3B, 0x02, 0x73, 0xC3, 0x63, 0xC9, 0x35, 0x5E, 0xC2, 0x19, 0xE1, 0x97, 0xD8,
+ 0xA3, 0x68, 0x06, 0x52, 0xB1, 0xBC, 0x0D, 0x16, 0xAB, 0x51, 0x4C, 0xE2, 0x95, 0x24, 0xB6, 0x7A,
+ 0x23, 0x2B, 0x61, 0x1A, 0x26, 0xC1, 0x7A, 0x36, 0xB4, 0x15, 0x29, 0x55, 0x99, 0x69, 0xEF, 0x26,
+ 0x9A, 0xCA, 0x1A, 0x05, 0x12, 0x56, 0x78, 0x39, 0x6A, 0xB0, 0x2D, 0x11, 0x0B, 0xC1, 0xF5, 0xBC,
+ 0xF4, 0xCB, 0x0B, 0x9A, 0xBE, 0x9C, 0x41, 0x92, 0x3F, 0x17, 0x32, 0x6D, 0x28, 0x44, 0xDA, 0x8A,
+ 0xD1, 0x70, 0x1B, 0xC0, 0x29, 0xE1, 0x36, 0xB2, 0x37, 0x14, 0x16, 0x89, 0xDD, 0x6F, 0x48, 0x5B,
+ 0x6D, 0x66, 0x7F, 0x01, 0x70, 0x4D, 0x2A, 0x85, 0x1F, 0x93, 0x7E, 0x62, 0xC8, 0x2E, 0x0D, 0x0A,
+ 0xBA, 0x86, 0x15, 0x81, 0x51, 0x64, 0x82, 0x24, 0xD6, 0x71, 0x3B, 0x75, 0x4A, 0x92, 0xE2, 0xFB,
+ 0xB8, 0x3A, 0x64, 0xEE, 0x53, 0x13, 0x6D, 0x68, 0x46, 0xCF, 0x72, 0x2F, 0x84, 0x21, 0x2D, 0x8E,
+ 0xD7, 0xFB, 0xBF, 0x57, 0x65, 0xF3, 0x80, 0x2B, 0xD8, 0xE5, 0x94, 0x35, 0x52, 0x8F, 0x90, 0x69,
+ 0xE4, 0xC1, 0x36, 0x6C, 0x5B, 0xDF, 0xDF, 0x54, 0x8F, 0x2D, 0x37, 0x38, 0xBA, 0xEC, 0xC0, 0x10,
+ 0x3E, 0xF2, 0xA7, 0x31, 0x27, 0x8A, 0xC0, 0xF3, 0x80, 0x9F, 0x58, 0xB2, 0x9B, 0x5D, 0x78, 0x29,
+ 0xC3, 0xC6, 0x57, 0x59, 0x9A, 0x2E, 0xF8, 0xC7, 0xBE, 0x79, 0xB1, 0xC0, 0x4F, 0xC7, 0x52, 0xC1,
+ 0xC7, 0xF1, 0x82, 0xA1, 0xF6, 0x5E, 0x5C, 0x3A, 0xEE, 0x00, 0x59, 0xA3, 0x96, 0x01, 0x4F, 0xEA,
+ 0x53, 0x8F, 0x0D, 0xE7, 0xF1, 0xB2, 0xA2, 0x82, 0xF7, 0xD3, 0xB7, 0xB0, 0xBC, 0x9C, 0x89, 0xBA,
+ 0x62, 0x09, 0xF5, 0xB3, 0xE8, 0x10, 0x11, 0x21, 0x61, 0xFA, 0x75, 0x4E, 0x05, 0xB8, 0x3B, 0xEF,
+ 0x63, 0xC9, 0x3F, 0x95, 0xE6, 0x7B, 0xE7, 0x60, 0x1D, 0xFC, 0xC2, 0x13, 0x55, 0xEE, 0xB7, 0x5C,
+ 0x39, 0xB9, 0xC9, 0x80, 0x03, 0x38, 0x79, 0xA6, 0x29, 0x76, 0xB3, 0xF4, 0x50, 0xBB, 0x07, 0x66,
+ 0xEC, 0xE5, 0xD2, 0x6F, 0xD3, 0xA7, 0x5F, 0xAA, 0x7F, 0x98, 0xD0, 0x33, 0x6F, 0x67, 0x84, 0x67,
+ 0x21, 0x97, 0x10, 0x75, 0x3D, 0x14, 0x26, 0xD9, 0xFC, 0x99, 0xEF, 0xEF, 0xBD, 0x8D, 0xE7, 0x25,
+ 0xCA, 0x22, 0x79, 0x7C, 0xE0, 0xDC, 0xA3, 0x1D, 0xB5, 0x33, 0xE9, 0x9F, 0x9D, 0x2D, 0x31, 0x83,
+ 0x02, 0xA7, 0xA4, 0xB8, 0x2B, 0x96, 0xD9, 0xFE, 0xBB, 0xA7, 0x46, 0xDF, 0x8A, 0x58, 0xE3, 0xDD,
+ 0xDE, 0x1F, 0x91, 0x72, 0xE9, 0x5B, 0xAB, 0xE4, 0x7E, 0xBE, 0x10, 0xF9, 0x02, 0xD9, 0x1C, 0xDA,
+ 0x91, 0x92, 0x45, 0x4F, 0x25, 0xFD, 0x2F, 0xBF, 0x7D, 0xF7, 0x6C, 0x42, 0x69, 0x17, 0xCD, 0xCD,
+ 0x99, 0xB6, 0xA1, 0x4C, 0x84, 0x60, 0xB5, 0xDC, 0xC6, 0x87, 0x31, 0x48, 0x1A, 0xC4, 0x6E, 0x48,
+ 0xF2, 0x40, 0xAF, 0x0D, 0x08, 0xC8, 0x9E, 0x13, 0x6C, 0x27, 0xA6, 0xB5, 0xFD, 0xCF, 0x9E, 0xFD,
+ 0x12, 0xAD, 0x99, 0x4E, 0xB3, 0xCB, 0xE2, 0x5A, 0x19, 0x04, 0xF5, 0xC6, 0x7D, 0x47, 0xE6, 0x03,
+ 0x2F, 0x38, 0x50, 0xE1, 0x0F, 0x24, 0x60, 0xAB, 0xB0, 0xED, 0x1E, 0x80, 0x4D, 0xF3, 0xC5, 0xCE,
+ 0x8E, 0xF7, 0xF2, 0x0B, 0x96, 0x32, 0xE1, 0xCA, 0x87, 0x2E, 0x13, 0xDC, 0x9C, 0x3C, 0x5F, 0x1C,
+ 0x82, 0xE4, 0xC3, 0xF0, 0xFE, 0x92, 0xEE, 0x06, 0x0C, 0x2C, 0x08, 0xE4, 0x00, 0xED, 0x8B, 0xD5,
+ 0xD9, 0x54, 0xFF, 0xC3, 0x40, 0x0A, 0x83, 0xBB, 0x42, 0x37, 0x45, 0xFA, 0x8B, 0x49, 0x8D, 0x42,
+ 0xF8, 0xD8, 0x3A, 0x61, 0x1C, 0x3D, 0x8E, 0x78, 0x04, 0x2F, 0x2C, 0x00, 0xB2, 0xE5, 0x47, 0xE9,
+ 0xEA, 0x6E, 0x76, 0xF8, 0xD0, 0x9B, 0x0A, 0x23, 0xD0, 0xE6, 0xB0, 0xD1, 0x57, 0xDA, 0x20, 0x53,
+ 0x59, 0x17, 0x98, 0x8B, 0x60, 0x68, 0x91, 0xDF, 0x16, 0xB6, 0x9A, 0x4C, 0xF6, 0xE3, 0xE0, 0x94,
+ 0x11, 0xD1, 0x22, 0x07, 0xB9, 0x70, 0xBF, 0x2A, 0xA0, 0x1B, 0x14, 0xBD, 0xEB, 0xAB, 0x22, 0x3C,
+ 0x34, 0x6A, 0x32, 0x5D, 0x68, 0xA4, 0x23, 0xE3, 0x33, 0xEC, 0x21, 0x5C, 0x8D, 0x39, 0xC4, 0xE8,
+ 0xD2, 0x0C, 0xA0, 0x89, 0xF7, 0x15, 0xE6, 0xFF, 0x83, 0xD6, 0x24, 0x09, 0xE3, 0xA2, 0xA5, 0xC5,
+ 0x54, 0xC4, 0x63, 0x56, 0xCB, 0x4E, 0x56, 0xCC, 0x49, 0x7D, 0x1D, 0xA5, 0x01, 0xFC, 0xE5, 0x4A,
+ 0xEB, 0xAE, 0xBC, 0xDE, 0x34, 0x93, 0x2E, 0x20, 0x76, 0xBD, 0x34, 0x1D, 0xB8, 0xD8, 0x57, 0x1F,
+ 0x01, 0xDB, 0x1F, 0xF1, 0x8B, 0x40, 0xF9, 0x58, 0x81, 0xB9, 0x98, 0x78, 0xA9, 0xDD, 0xCC, 0xEB,
+ 0xAE, 0xBB, 0xFD, 0x8F, 0xF0, 0xF9, 0x18, 0x47, 0xAA, 0x77, 0x8C, 0x28, 0x7C, 0x56, 0x88, 0x9C,
+ 0xF6, 0x77, 0x7A, 0xF5, 0xA9, 0x55, 0x04, 0x70, 0x0B, 0x9D, 0x43, 0x8A, 0x74, 0x5F, 0x0F, 0x65,
+ 0x06, 0x90, 0x71, 0x40, 0x0E, 0x6F, 0xDA, 0x6E, 0xCF, 0xA2, 0xD5, 0x66, 0xEC, 0xCA, 0x05, 0x09,
+ 0xA2, 0xA8, 0xCC, 0x74, 0xAD, 0x85, 0xAF, 0x41, 0x00, 0xD7, 0x1B, 0xD5, 0x7B, 0x37, 0xAF, 0xA9,
+ 0x79, 0x5B, 0x97, 0x0F, 0xE7, 0x30, 0x5D, 0xA5, 0xFB, 0x28, 0xA4, 0x81, 0x7F, 0x73, 0x71, 0x0C,
+ 0xA8, 0x30, 0x59, 0x18, 0x7D, 0x1A, 0x89, 0x4D, 0xA9, 0x3E, 0xF0, 0x93, 0x85, 0x30, 0x43, 0x11,
+ 0x7A, 0x27, 0x2C, 0x46, 0xAA, 0x69, 0x51, 0xF9, 0x26, 0xC4, 0xDC, 0x7E, 0x0F, 0x85, 0x2B, 0x19,
+ 0x66, 0x3E, 0x20, 0x4B, 0x31, 0x08, 0x3F, 0xD4, 0x35, 0x7B, 0xAA, 0xF8, 0xF3, 0xB6, 0x50, 0xAE,
+ 0xFA, 0x64, 0x4B, 0x0E, 0x5E, 0x44, 0xCE, 0xA0, 0x45, 0x86, 0x0E, 0x94, 0x53, 0x9E, 0xFE, 0xF6,
+ 0x4C, 0xEA, 0xBA, 0xA3, 0x0C, 0x18, 0x35, 0x22, 0xB9, 0xC8, 0xFA, 0xAE, 0x12, 0xCD, 0xE9, 0xB1,
+ 0x74, 0x88, 0x6C, 0xD2, 0xC5, 0x25, 0xA0, 0x8D, 0xDB, 0xAC, 0xE8, 0x8E, 0x20, 0x4D, 0x5D, 0x73,
+ 0xB3, 0x62, 0x3B, 0xA4, 0xA8, 0x1E, 0xBE, 0xB5, 0x86, 0x08, 0xD3, 0x16, 0xFC, 0xDE, 0xF0, 0x62,
+ 0x95, 0xA5, 0x90, 0xB7, 0x95, 0x0E, 0xB4, 0x43, 0x75, 0xF4, 0x48, 0xA6, 0x61, 0x1E, 0x4A, 0x34,
+ 0x3A, 0xC5, 0x72, 0xC9, 0x05, 0x9F, 0x3D, 0xDB, 0x03, 0x9E, 0x67, 0x6E, 0x47, 0xCE, 0xD5, 0x38,
+ 0x77, 0xF4, 0xD7, 0x9B, 0xAC, 0xCE, 0x15, 0x84, 0x51, 0x88, 0x33, 0x7C, 0xAC, 0x88, 0x7C, 0xD1,
+ 0x4C, 0x96, 0x08, 0x76, 0x22, 0x95, 0xD9, 0x62, 0x47, 0x3C, 0xCE, 0x57, 0x46, 0xD6, 0xB8, 0x3B,
+ 0xAC, 0x7B, 0x3E, 0x35, 0x99, 0x96, 0xA5, 0x2B, 0x32, 0x1F, 0x9D, 0x24, 0xC6, 0x5E, 0xC0, 0xC5,
+ 0xC7, 0x8D, 0x30, 0x74, 0x15, 0x3E, 0x8E, 0xE4, 0x98, 0xBF, 0x0A, 0xD9, 0x21, 0x55, 0x30, 0x70,
+ 0xCF, 0xA9, 0xD4, 0x77, 0xB4, 0xA3, 0x14, 0x87, 0x23, 0xCF, 0x57, 0xD3, 0x52, 0x86, 0x93, 0xF5,
+ 0x87, 0x6F, 0x6E, 0xFB, 0xD1, 0x54, 0xB8, 0x83, 0x1C, 0x0F, 0x7E, 0x6B, 0xB0, 0xD8, 0xD3, 0x7A,
+ 0xDC, 0xDF, 0x52, 0xC8, 0x6F, 0xCC, 0xD5, 0x3E, 0x52, 0x14, 0x33, 0x75, 0x3B, 0x7C, 0xD5, 0xED,
+ 0xD0, 0xCC, 0x63, 0x33, 0x07, 0x6C, 0xDA, 0xF2, 0xD9, 0x16, 0x28, 0x4D, 0xA7, 0xAD, 0x01, 0x24,
+ 0x71, 0x03, 0xC1, 0xD9, 0x9E, 0x7A, 0x5B, 0x93, 0xEE, 0xD5, 0x25, 0x11, 0x76, 0x62, 0x9B, 0xF6,
+ 0x4F, 0xEA, 0xB3, 0x3F, 0x28, 0x2E, 0x84, 0x12, 0xFE, 0x23, 0x2F, 0x2C, 0xD0, 0x3A, 0x7C, 0x04,
+ 0x07, 0x2C, 0x09, 0xB3, 0xF1, 0x36, 0xAA, 0xE7, 0x48, 0x8E, 0xA1, 0xDD, 0xCD, 0x72, 0xBE, 0xAC,
+ 0xB4, 0x55, 0xE7, 0xC0, 0x41, 0xC5, 0x31, 0x1B, 0x8E, 0xDE, 0x8B, 0x40, 0x6C, 0x4B, 0x7E, 0x6B,
+ 0xA6, 0xE3, 0xAB, 0x59, 0x8D, 0x63, 0xB5, 0x40, 0x5A, 0x17, 0x17, 0x91, 0x89, 0x74, 0x19, 0xD1,
+ 0xB5, 0x95, 0x2D, 0xE6, 0xA5, 0xCD, 0x15, 0x18, 0x28, 0x85, 0x0F, 0x8C, 0x83, 0x49, 0x09, 0x27,
+ 0x0A, 0xFF, 0xF2, 0x6E, 0x5A, 0x10, 0x6D, 0xF4, 0x17, 0x45, 0x26, 0x34, 0x3A, 0x6D, 0xBB, 0x72,
+ 0x8C, 0x37, 0x31, 0xB1, 0x66, 0x4B, 0xDD, 0xC7, 0xDD, 0xEE, 0x1F, 0x98, 0xD8, 0x33, 0xFB, 0xFD,
+ 0x6A, 0x51, 0xA3, 0x65, 0xF9, 0xFA, 0x18, 0xDB, 0x6D, 0xD4, 0x1A, 0xCD, 0xB6, 0xA8, 0x9A, 0xD0,
+ 0x58, 0xAB, 0xE0, 0x78, 0x9F, 0x31, 0xE1, 0x56, 0x91, 0x9A, 0xEE, 0xF7, 0xD7, 0x5B, 0x5B, 0x31,
+ 0xA8, 0x4C, 0xEB, 0xCD, 0x38, 0x0B, 0x3F, 0x48, 0x55, 0xA5, 0x78, 0x1B, 0x4F, 0xCE, 0x51, 0x5D,
+ 0xF0, 0x80, 0x6C, 0xB7, 0x61, 0xA7, 0x23, 0x7F, 0xF4, 0x4F, 0xB7, 0xB9, 0x47, 0xC7, 0xD6, 0xA4,
+ 0x5F, 0xE0, 0x8E, 0xC9, 0x1A, 0x1E, 0xC2, 0x60, 0xDF, 0x81, 0xA3, 0xE9, 0x92, 0x4C, 0x92, 0xD3,
+ 0x24, 0x1C, 0xBD, 0x7E, 0x3B, 0x37, 0x6A, 0xC1, 0x78, 0xFC, 0xE7, 0xEF, 0x34, 0x14, 0x75, 0x21,
+ 0xF6, 0x0B, 0xC8, 0x20, 0xEC, 0x44, 0xB2, 0x75, 0xF7, 0x06, 0xCB, 0x02, 0xBE, 0xA1, 0x1D, 0x29,
+ 0x27, 0x60, 0x06, 0x37, 0x76, 0x6E, 0x66, 0x9D, 0xA5, 0x10, 0x9F, 0x10, 0x44, 0xE2, 0x2F, 0x34,
+ 0xFC, 0x93, 0x5D, 0x4C, 0x3C, 0xDB, 0x94, 0x79, 0x5E, 0xEF, 0x20, 0x44, 0x40, 0xA6, 0xF1, 0x91,
+ 0x2A, 0xB3, 0xFD, 0xEA, 0x54, 0x7B, 0x9B, 0xB5, 0x85, 0x94, 0xD3, 0x1F, 0x1B, 0xDC, 0x03, 0x4B,
+ 0x12, 0xD1, 0x2B, 0x9B, 0x9D, 0x46, 0x0E, 0x1A, 0xE7, 0xF0, 0xC1, 0x3F, 0x29, 0x5C, 0xB7, 0x89,
+ 0xA4, 0x5F, 0xDA, 0x36, 0xCF, 0x1A, 0xF5, 0x98, 0x1B, 0xBE, 0x35, 0x05, 0x68, 0x0F, 0xA0, 0xCE,
+ 0x38, 0x05, 0xB1, 0x73, 0xA0, 0x56, 0x04, 0xEC, 0x6B, 0x43, 0x91, 0x69, 0xC8, 0x27, 0x0E, 0x96,
+ 0x29, 0xCF, 0x46, 0xA3, 0x3D, 0x90, 0x2E, 0xBC, 0x0F, 0xB0, 0x08, 0xED, 0x97, 0x19, 0x22, 0xE9,
+ 0x64, 0xFE, 0xE3, 0xF1, 0x94, 0xC1, 0x06, 0xE3, 0x5D, 0xA6, 0x5C, 0xFF, 0x7C, 0x5F, 0x8B, 0x00,
+ 0xCB, 0x9E, 0x01, 0x8F, 0x04, 0x50, 0x8F, 0x7B, 0x2B, 0xCC, 0x73, 0x37, 0x5A, 0x8F, 0x14, 0x0C,
+ 0xED, 0x59, 0xAA, 0x9C, 0x39, 0x40, 0x85, 0x8D, 0xD8, 0x30, 0xE8, 0x87, 0xC7, 0x4F, 0xAE, 0x5A,
+ 0x02, 0xDB, 0x16, 0x6D, 0xE6, 0xFF, 0xEF, 0x05, 0x79, 0xDA, 0x27, 0x25, 0xC5, 0x7B, 0x39, 0x55,
+ 0xAF, 0x07, 0x85, 0x7C, 0x1D, 0xF2, 0x3C, 0xD8, 0x45, 0x53, 0x72, 0x26, 0xD6, 0x4A, 0x35, 0xAE,
+ 0x74, 0xF4, 0xDE, 0x07, 0xEA, 0xE3, 0xF6, 0x08, 0xA1, 0xE8, 0xA8, 0xC5, 0xA4, 0x88, 0xF8, 0xB4,
+ 0x8D, 0xF7, 0xFB, 0x97, 0x45, 0x15, 0x9A, 0x2A, 0x06, 0x95, 0xEC, 0xC3, 0xE5, 0xDB, 0xEF, 0xF3,
+ 0xCA, 0x5E, 0xCB, 0xA9, 0xD0, 0x1F, 0x02, 0x46, 0x72, 0x90, 0x7F, 0x7A, 0x3D, 0x0C, 0x9C, 0x47,
+ 0x68, 0xED, 0xD2, 0x0A, 0x9B, 0xE1, 0x4A, 0x67, 0x49, 0xA8, 0x61, 0x17, 0x4D, 0xFA, 0xC6, 0x52,
+ 0x57, 0xC4, 0x6A, 0xCA, 0xB2, 0x04, 0x50, 0xFA, 0xC3, 0x8C, 0xBA, 0xE5, 0xE9, 0x96, 0xB6, 0xAF,
+ 0x2C, 0x38, 0x59, 0x7D, 0x95, 0x8A, 0xBC, 0x26, 0xF3, 0xFE, 0xFC, 0xD7, 0x75, 0x47, 0x62, 0x66,
+ 0x7D, 0x10, 0xF0, 0x22, 0xB7, 0x9F, 0x41, 0x0E, 0xEA, 0x2D, 0x12, 0xC4, 0xA2, 0xF8, 0xB1, 0x1E,
+ 0xFD, 0x53, 0x97, 0x6A, 0x20, 0xE2, 0x36, 0x2E, 0xF5, 0x69, 0x77, 0x73, 0xAE, 0xB5, 0xE8, 0x42,
+ 0x83, 0x58, 0xBB, 0x03, 0x93, 0x2D, 0xF8, 0x5B, 0x97, 0x0D, 0x65, 0x53, 0x22, 0x70, 0xC9, 0xE0,
+ 0x3B, 0x79, 0x0A, 0x3A, 0x89, 0xB3, 0x1E, 0x71, 0x76, 0x68, 0x48, 0xAF, 0x70, 0x12, 0xD2, 0x5C,
+ 0x33, 0x5D, 0xEE, 0x39, 0xE1, 0x13, 0x11, 0xBD, 0x41, 0xAB, 0x45, 0xF3, 0xF3, 0xBF, 0x53, 0x32,
+ 0x8F, 0x4B, 0x8A, 0xF8, 0xB8, 0xBF, 0x0D, 0x8A, 0x69, 0x2C, 0x2D, 0x18, 0xE6, 0xFE, 0x16, 0x63,
+ 0xAA, 0xF0, 0x9A, 0xA2, 0x2F, 0xC2, 0x7A, 0xAA, 0x61, 0x2F, 0x09, 0xFC, 0x13, 0xD5, 0x84, 0xB2,
+ 0xC4, 0xF1, 0x8B, 0x3D, 0x83, 0x08, 0x43, 0x01, 0x34, 0x88, 0x16, 0x80, 0x30, 0x50, 0xAB, 0x84,
+ 0xBA, 0xFA, 0xA7, 0x54, 0xCA, 0x81, 0xE4, 0x6C, 0xD1, 0x15, 0x0C, 0xA9, 0x81, 0x7D, 0x9E, 0x28,
+ 0x89, 0xC0, 0x2E, 0x6F, 0xF4, 0xAD, 0xBB, 0x13, 0x86, 0xDD, 0xAF, 0xA4, 0x69, 0x1E, 0xCE, 0x51,
+ 0xE6, 0x01, 0xF5, 0xD6, 0xC2, 0x4D, 0x56, 0x50, 0x18, 0xF7, 0x49, 0xBE, 0xBF, 0xB0, 0x73, 0xB6,
+ 0xE4, 0xBD, 0x84, 0xB9, 0xC0, 0x3A, 0xB9, 0x1C, 0x88, 0x49, 0x00, 0xE4, 0x71, 0x03, 0xBC, 0xC3,
+ 0x0D, 0xB4, 0x9C, 0xDF, 0x60, 0xEC, 0x99, 0xBA, 0xA9, 0xEB, 0x8C, 0x21, 0x87, 0x0D, 0xD7, 0x82,
+ 0x99, 0xCA, 0x13, 0x99, 0x67, 0x00, 0x67, 0x02, 0xB0, 0x38, 0x62, 0x32, 0xAD, 0x90, 0x11, 0xD2,
+ 0x9D, 0xFD, 0xC6, 0x61, 0x0B, 0x70, 0xC3, 0xFF, 0xE0, 0x41, 0x8A, 0x51, 0x74, 0x56, 0x0C, 0xF9,
+ 0x60, 0xC9, 0x36, 0x09, 0xB6, 0xD4, 0xFB, 0xCB, 0xDE, 0xA7, 0x63, 0x23, 0xA0, 0xCC, 0x26, 0x11,
+ 0xB2, 0xDE, 0x43, 0x57, 0x42, 0xF9, 0x64, 0x92, 0x21, 0xA0, 0xEB, 0xA2, 0x54, 0xF6, 0xDA, 0x5F,
+ 0x67, 0x82, 0x58, 0xB8, 0x92, 0x66, 0x42, 0x9E, 0x77, 0x4E, 0x88, 0x65, 0x6B, 0x2A, 0x59, 0x5E,
+ 0x3D, 0xF2, 0xAE, 0xAD, 0x77, 0x25, 0xDC, 0x58, 0x43, 0xC4, 0xF9, 0x82, 0x6E, 0x7F, 0xE9, 0x64,
+ 0x3C, 0x32, 0x64, 0x8B, 0x79, 0x4E, 0x2A, 0x19, 0x3F, 0xC2, 0x4E, 0xDF, 0x3E, 0x29, 0x65, 0xD7,
+ 0x80, 0x24, 0x00, 0x4A, 0x78, 0x05, 0x90, 0xDC, 0x20, 0x86, 0x2B, 0x68, 0x39, 0x48, 0x42, 0xE2,
+ 0x5C, 0x9C, 0x35, 0x80, 0xBA, 0xC8, 0xE2, 0xC6, 0xE5, 0x9F, 0x7D, 0x4E, 0xB1, 0xC9, 0xBD, 0xE5,
+ 0x94, 0x19, 0xE8, 0x44, 0x71, 0x82, 0x98, 0x25, 0xEB, 0x0B, 0xD2, 0x0E, 0xA6, 0xBC, 0x6F, 0xBB,
+ 0x7F, 0xAC, 0x81, 0x4D, 0xAC, 0x4A, 0x1D, 0xE1, 0xA2, 0xA1, 0xD4, 0x7E, 0x86, 0x1C, 0xB9, 0x1D,
+ 0x5A, 0xB4, 0x2B, 0x23, 0xB3, 0xD3, 0x24, 0xB2, 0x93, 0xCB, 0x66, 0x6B, 0xAA, 0x30, 0x17, 0x6D,
+ 0xC6, 0x65, 0xE2, 0xF7, 0xC1, 0x95, 0x16, 0x82, 0x7F, 0x45, 0x41, 0xB7, 0x99, 0x87, 0xEB, 0x16,
+ 0x62, 0x09, 0x1F, 0x87, 0xE5, 0x4E, 0xE4, 0x08, 0x65, 0xA0, 0x68, 0x2A, 0x21, 0x47, 0xC2, 0x29,
+ 0x12, 0xFF, 0x0A, 0xDD, 0xDD, 0x50, 0x89, 0x33, 0x2D, 0x5E, 0x23, 0x0B, 0x38, 0xE4, 0x71, 0x8B,
+ 0xCA, 0x28, 0xBE, 0xAE, 0xD8, 0xC3, 0x30, 0x47, 0xB5, 0x54, 0xB6, 0x67, 0x08, 0xDA, 0xD8, 0xCC,
+ 0x8B, 0x7B, 0xF9, 0xB9, 0xA5, 0x87, 0x36, 0xE0, 0xD9, 0xA2, 0x19, 0x45, 0x2D, 0x4A, 0xDB, 0x35,
+ 0xF9, 0xB9, 0xE3, 0x74, 0x1E, 0x5D, 0xD5, 0x04, 0x13, 0xB3, 0xEE, 0x95, 0x76, 0x31, 0x28, 0xEE,
+ 0xEA, 0x88, 0x18, 0x78, 0x97, 0x08, 0xD6, 0x38, 0xC0, 0xBE, 0x15, 0x48, 0xE5, 0x20, 0xF4, 0x43,
+ 0x1F, 0xA3, 0xC9, 0xEA, 0xC5, 0x39, 0x73, 0x75, 0x6C, 0x49, 0x70, 0x4C, 0x78, 0x70, 0xDE, 0x85,
+ 0x3C, 0x26, 0xFF, 0xC5, 0x62, 0x26, 0x0F, 0x20, 0x55, 0x83, 0xDC, 0xE7, 0x69, 0xEF, 0xDF, 0xEB,
+ 0xC9, 0x0D, 0x2E, 0x57, 0x61, 0x02, 0xEB, 0x28, 0x22, 0xFE, 0x4B, 0xC7, 0x79, 0xB5, 0x64, 0xCE,
+ 0xDC, 0x4C, 0x7F, 0x12, 0xE6, 0x6A, 0x00, 0x00, 0x3E, 0x52, 0x12, 0xF0, 0x1D, 0x74, 0x72, 0x72,
+ 0x5F, 0xE1, 0x11, 0x93, 0x25, 0x67, 0x5C, 0x37, 0x31, 0xF2, 0x7A, 0x3C, 0xF9, 0x77, 0x56, 0x7A,
+ 0x0D, 0x83, 0xAD, 0x88, 0x40, 0x4A, 0xA0, 0xD6, 0xD7, 0x6C, 0x60, 0x16, 0x48, 0x4E, 0x77, 0xC2,
+ 0x81, 0x46, 0x0F, 0xA9, 0x24, 0x58, 0x80, 0xB4, 0x19, 0xA3, 0xD3, 0x63, 0x64, 0x27, 0x7C, 0xBC,
+ 0x8D, 0x0B, 0x53, 0xF0, 0x60, 0x3D, 0x37, 0xAB, 0x6E, 0xDE, 0x44, 0x43, 0x03, 0x6F, 0x3F, 0x3C,
+ 0x8F, 0x3F, 0x5C, 0x67, 0xEA, 0x4C, 0xD0, 0x9F, 0xD4, 0x95, 0x45, 0x86, 0xC5, 0x44, 0xE6, 0x21,
+ 0x5B, 0xA5, 0xB4, 0x4D, 0x0C, 0xA5, 0xA2, 0xA1, 0xEC, 0x31, 0xF8, 0xB2, 0x35, 0x2C, 0xD2, 0xDC,
+ 0x82, 0x63, 0x9F, 0x50, 0x75, 0x4D, 0xC1, 0xF1, 0x48, 0x41, 0x94, 0x4F, 0xE0, 0xD4, 0xE5, 0xD8,
+ 0xA8, 0xFE, 0xCF, 0x96, 0xA6, 0xA3, 0xD2, 0xE8, 0xB6, 0xAD, 0x93, 0xF7, 0x6F, 0x92, 0x9B, 0x4C,
+ 0x5E, 0xF0, 0x8E, 0xFD, 0x04, 0x2F, 0x17, 0xC9, 0x96, 0x7B, 0x33, 0x51, 0x77, 0xF4, 0x92, 0xA5,
+ 0x90, 0x43, 0xFB, 0x32, 0xBA, 0x66, 0x4D, 0x59, 0x79, 0x0C, 0x31, 0x1D, 0x06, 0x9B, 0x2E, 0xA7,
+ 0x46, 0xED, 0x1C, 0x8F, 0x90, 0x80, 0x57, 0xC7, 0x94, 0xEC, 0x07, 0x5E, 0xDD, 0x22, 0xEF, 0xC8,
+ 0xAE, 0x8E, 0x65, 0xDF, 0x58, 0x23, 0x5A, 0x90, 0xCB, 0xC0, 0x39, 0x21, 0x54, 0x19, 0xD5, 0xFB,
+ 0xA9, 0xEF, 0x50, 0xF8, 0xEC, 0xFB, 0x8D, 0xE3, 0x32, 0x0B, 0x5F, 0xAC, 0x72, 0x00, 0x83, 0x3E,
+ 0x89, 0x4F, 0xF6, 0x2E, 0x46, 0xFD, 0xFD, 0xAA, 0xB7, 0xC3, 0x82, 0x68, 0x1B, 0x09, 0x36, 0xD5,
+ 0x9E, 0x3A, 0xA8, 0xFC, 0xD2, 0x52, 0xBD, 0xA4, 0xCD, 0x89, 0x49, 0x8B, 0xC6, 0xCD, 0xB3, 0x1D,
+ 0x16, 0xBB, 0xAF, 0x03, 0xCB, 0x04, 0x9B, 0x61, 0xBF, 0x44, 0x8B, 0x91, 0xF3, 0x07, 0x0B, 0xC1,
+ 0x11, 0xDA, 0x9A, 0x24, 0x8F, 0x61, 0x2C, 0x7E, 0x05, 0x0F, 0x8A, 0x54, 0x97, 0xC6, 0x1D, 0x7D,
+ 0x41, 0x8C, 0x29, 0xA8, 0x89, 0xD6, 0x71, 0x02, 0xF3, 0x64, 0x84, 0x15, 0x5D, 0xE0, 0xDD, 0x7C,
+ 0x44, 0xD9, 0x13, 0x18, 0x03, 0xA7, 0x96, 0x36, 0x6D, 0x27, 0x61, 0xD3, 0xAB, 0xF5, 0xAD, 0x26,
+ 0x7B, 0x05, 0x12, 0x9B, 0xED, 0xC4, 0x51, 0x60, 0x4B, 0xB8, 0xB1, 0xDF, 0xB0, 0x1A, 0xF1, 0xF3,
+ 0x59, 0x91, 0xBB, 0xDA, 0x98, 0x0A, 0xE2, 0xAF, 0x74, 0x3B, 0x6D, 0xDE, 0x32, 0x94, 0x2C, 0x30,
+ 0x88, 0x5E, 0x69, 0x40, 0x5B, 0x07, 0xBE, 0x98, 0xF5, 0x2D, 0xF4, 0xBF, 0x90, 0x7E, 0xE3, 0x91,
+ 0x14, 0x8F, 0xA0, 0x94, 0x59, 0x1C, 0x86, 0x13, 0xFA, 0x8D, 0x9C, 0x73, 0xA1, 0x85, 0xF0, 0x9D,
+ 0x9F, 0x2B, 0x37, 0x92, 0x42, 0x51, 0x98, 0x5D, 0x97, 0x15, 0x22, 0xCE, 0x9D, 0xB6, 0x40, 0xC6,
+ 0x7D, 0x75, 0xB8, 0xD2, 0x82, 0x78, 0x20, 0x62, 0x3B, 0xE2, 0x47, 0xCA, 0x27, 0x3A, 0x86, 0x8E,
+ 0x0E, 0xA6, 0x3D, 0x71, 0xF2, 0x25, 0x2A, 0xD9, 0xA1, 0x7F, 0xE6, 0xA9, 0xC3, 0x39, 0xA2, 0x86,
+ 0xE9, 0xAD, 0x88, 0x81, 0x52, 0xB2, 0xD7, 0x73, 0x8A, 0xD7, 0x6A, 0x66, 0xCD, 0x78, 0x54, 0xED,
+ 0x69, 0x25, 0x76, 0xF9, 0x71, 0xE1, 0xA4, 0x06, 0xF6, 0xD4, 0xD1, 0x2F, 0xFB, 0x3B, 0xB9, 0x0D,
+ 0x99, 0x5B, 0x9D, 0xDB, 0x99, 0x35, 0x3E, 0x2C, 0x37, 0xBB, 0x0A, 0x96, 0x50, 0x28, 0x7E, 0x2B,
+ 0xF7, 0xC0, 0xB0, 0xBA, 0xA3, 0x30, 0x6B, 0x9C, 0xF2, 0x0A, 0x95, 0x8A, 0xC2, 0xFC, 0x18, 0xCD,
+ 0x15, 0x9E, 0x3F, 0xFA, 0x08, 0x09, 0xC7, 0x56, 0x42, 0x51, 0xA9, 0xB9, 0x01, 0x23, 0xD0, 0x4B,
+ 0xAC, 0xBA, 0x6A, 0x48, 0xC8, 0x20, 0x7F, 0x69, 0x3A, 0x8C, 0x56, 0x55, 0xDE, 0xAB, 0xBA, 0xF4,
+ 0xA6, 0x87, 0x9C, 0x58, 0x5A, 0x38, 0x62, 0x1B, 0x9A, 0x22, 0x7E, 0x0D, 0x58, 0x14, 0xCC, 0xE7,
+ 0x43, 0xB8, 0x26, 0x3F, 0x93, 0xA4, 0xB3, 0xCF, 0x1E, 0x84, 0xB2, 0x56, 0x14, 0x8D, 0x7A, 0xF5,
+ 0xE2, 0x81, 0xE1, 0xFF, 0xC3, 0x8E, 0x2E, 0x09, 0x85, 0x77, 0x02, 0xAA, 0xFA, 0xFE, 0x03, 0x46,
+ 0xFF, 0xC9, 0x49, 0x3D, 0x6E, 0x00, 0xDF, 0xBF, 0xAB, 0x6F, 0xDB, 0x5F, 0x40, 0x72, 0xC5, 0x0E,
+ 0x6F, 0x55, 0xDC, 0xB0, 0xA2, 0x0F, 0xB7, 0x1F, 0xBB, 0x9A, 0xCF, 0x34, 0xAE, 0x01, 0xBC, 0xBD,
+ 0x6B, 0x11, 0x79, 0x6E, 0x5D, 0xB0, 0xE3, 0xE4, 0x49, 0x2F, 0x85, 0xD0, 0xF5, 0x7A, 0x4F, 0x66,
+ 0x91, 0x52, 0x64, 0x5C, 0x4B, 0xE4, 0xF1, 0xB6, 0x9D, 0x05, 0x1F, 0x38, 0x3B, 0x6D, 0x24, 0xB7,
+ 0x1B, 0xE7, 0x6C, 0x34, 0xB1, 0xC8, 0x1C, 0x39, 0x45, 0x76, 0xC8, 0x8C, 0x4E, 0x33, 0x33, 0x65,
+ 0xBD, 0xBF, 0x9E, 0xD3, 0xCC, 0x8C, 0x1A, 0x9E, 0xED, 0x5F, 0xE9, 0x2D, 0x7D, 0x84, 0xCF, 0x1E,
+ 0x68, 0x34, 0xE9, 0x97, 0x02, 0x98, 0x4A, 0xB5, 0x0C, 0xE6, 0x92, 0x32, 0x9F, 0xFA, 0xAF, 0xB1,
+ 0x60, 0x3D, 0x10, 0x10, 0xE8, 0x57, 0xE8, 0x14, 0x10, 0x4A, 0xCB, 0x05, 0x18, 0x80, 0x63, 0xE9,
+ 0xF8, 0xA8, 0x7C, 0x1A, 0xD7, 0xC1, 0x04, 0xD0, 0xCE, 0x70, 0x6C, 0x1B, 0x13, 0x35, 0x84, 0x19,
+ 0xE8, 0xBC, 0x17, 0xEF, 0x7D, 0xC7, 0x74, 0x99, 0xAA, 0x01, 0xCA, 0xC0, 0x59, 0xD1, 0x76, 0xAC,
+ 0x75, 0x7C, 0x41, 0x55, 0x81, 0x5C, 0xC4, 0x6A, 0xA0, 0x11, 0xF7, 0x36, 0xF2, 0xC2, 0xB1, 0x8A,
+ 0x53, 0xAC, 0x4D, 0xCA, 0xEB, 0x73, 0x0C, 0x1C, 0x29, 0x80, 0x67, 0xAE, 0x10, 0xBC, 0xD1, 0x25,
+ 0xB8, 0xEA, 0xA4, 0x63, 0xFD, 0x27, 0x1E, 0x4E, 0x01, 0xD1, 0xCE, 0xF1, 0xB5, 0xEE, 0xE0, 0x68,
+ 0xE7, 0xD4, 0xDB, 0x4F, 0x0E, 0xBE, 0x9A, 0x2A, 0x2B, 0x17, 0x53, 0xA1, 0x42, 0x3E, 0x2A, 0x79,
+ 0x47, 0xFC, 0x83, 0xE1, 0xF3, 0x1A, 0xF6, 0x5A, 0xDA, 0x5B, 0x3C, 0xD5, 0x29, 0x7B, 0x70, 0xE5,
+ 0x06, 0xAF, 0xC4, 0xF6, 0xBD, 0xEE, 0xCC, 0xA6, 0x21, 0x07, 0x6E, 0x57, 0xD8, 0xD6, 0xFE, 0x53,
+ 0x34, 0x2F, 0x06, 0x42, 0xD9, 0xFC, 0xEC, 0xC4, 0xB4, 0x3A, 0xA7, 0xF8, 0x0E, 0xA7, 0x9C, 0x6B,
+ 0x9E, 0xD3, 0x54, 0xCA, 0xA9, 0x6E, 0xBB, 0xFE, 0x03, 0xE0, 0x83, 0x92, 0x0C, 0xD2, 0x5D, 0x02,
+ 0x65, 0x0E, 0x59, 0x19, 0x04, 0xFD, 0xAA, 0x22, 0x32, 0xF3, 0x78, 0x9E, 0x85, 0xEE, 0x5E, 0x57,
+ 0x92, 0xDE, 0x48, 0xD3, 0xDF, 0xA6, 0xD1, 0xD1, 0xF0, 0x81, 0x62, 0x53, 0x3E, 0x0A, 0xBD, 0x8D,
+ 0x3D, 0xFC, 0xBE, 0xBF, 0x26, 0x83, 0x41, 0xD2, 0xA3, 0xC0, 0x25, 0x44, 0x43, 0xAD, 0xBB, 0xC9,
+ 0xA8, 0x90, 0xB4, 0x27, 0x61, 0xB3, 0x7F, 0x7B, 0x74, 0x18, 0x91, 0x37, 0x46, 0xD9, 0x02, 0x5A,
+ 0xE3, 0xB1, 0x4A, 0x6F, 0xC3, 0xAA, 0xDC, 0xC8, 0x82, 0x68, 0x84, 0x6D, 0x7E, 0xE2, 0x6F, 0x44,
+ 0xCA, 0x2C, 0xAF, 0x75, 0xFC, 0x12, 0x1C, 0xE1, 0xEE, 0xCC, 0x79, 0x1D, 0x5A, 0x68, 0x9D, 0x9F,
+ 0xED, 0xF0, 0x21, 0x99, 0x87, 0x21, 0xAB, 0x1D, 0x3F, 0x50, 0xB0, 0xC9, 0x28, 0x58, 0xAF, 0xD9,
+ 0xCF, 0xD8, 0x34, 0x64, 0xD6, 0x88, 0xF4, 0x35, 0x80, 0x87, 0xC8, 0x1A, 0xFB, 0x41, 0xBC, 0x37,
+ 0x58, 0xF8, 0x49, 0x13, 0x56, 0xEF, 0xBC, 0x76, 0xCD, 0x8B, 0x94, 0x43, 0xBF, 0x5E, 0x0B, 0x52,
+ 0xEB, 0x8D, 0x86, 0xDD, 0x28, 0xC3, 0xD5, 0x7D, 0x08, 0x07, 0x36, 0x62, 0xDB, 0x3C, 0x2B, 0x40,
+ 0xF1, 0xA7, 0x18, 0x3B, 0x90, 0x72, 0xEC, 0x5C, 0x6A, 0x55, 0x8A, 0x79, 0xBE, 0xDD, 0xD7, 0x6D,
+ 0x99, 0x6B, 0xB8, 0x34, 0x98, 0x96, 0xEF, 0x78, 0xC7, 0xD6, 0xE4, 0xF8, 0x7D, 0xEA, 0x8B, 0x60,
+ 0xC0, 0x5C, 0x14, 0x28, 0x24, 0xF2, 0x2E, 0x6E, 0x86, 0xC3, 0xB5, 0xBD, 0xFA, 0xC2, 0x60, 0x08,
+ 0x57, 0x7C, 0x69, 0x5F, 0x01, 0xE2, 0x74, 0xD5, 0xAD, 0x36, 0x64, 0x2F, 0xF9, 0xCA, 0x84, 0x2C,
+ 0xFB, 0xD7, 0xA3, 0x66, 0x6F, 0xF3, 0xEB, 0xD4, 0x28, 0x15, 0x52, 0x00, 0x5E, 0x9F, 0xF8, 0x33,
+ 0xB2, 0xBA, 0x2A, 0xC1, 0x11, 0xDF, 0x82, 0xDF, 0x05, 0xA4, 0xFE, 0x35, 0xC3, 0x7A, 0xD1, 0x29,
+ 0x8C, 0xC5, 0x06, 0x9E, 0x22, 0x56, 0xB9, 0xE5, 0x66, 0x4C, 0x87, 0x65, 0x0B, 0x2D, 0xDC, 0x8A,
+ 0xBA, 0x86, 0xE6, 0x73, 0x4D, 0x8D, 0x00, 0x24, 0xC8, 0x9A, 0x60, 0xD8, 0x21, 0xB3, 0xC6, 0x6C,
+ 0xB8, 0xCA, 0x91, 0x9C, 0x4F, 0xFC, 0x6F, 0x98, 0x7B, 0x54, 0x15, 0x17, 0x9F, 0x23, 0x9C, 0x25,
+ 0x18, 0x6C, 0x47, 0xBC, 0xA6, 0xE4, 0x09, 0x91, 0x75, 0xA2, 0x54, 0x7C, 0x3D, 0x02, 0x59, 0xA9,
+ 0x1F, 0xD4, 0xAB, 0x42, 0x32, 0x6B, 0x4F, 0xEF, 0xE8, 0x88, 0x04, 0xBA, 0xEE, 0x1B, 0x4A, 0x47,
+ 0x73, 0x29, 0xDB, 0xE6, 0x36, 0xBE, 0xB7, 0xD8, 0x2E, 0x51, 0x2F, 0xA7, 0x97, 0x4B, 0x29, 0xAF,
+ 0xCE, 0x1D, 0x7F, 0xDE, 0xCB, 0x4E, 0xDF, 0xEC, 0xB4, 0x85, 0xC7, 0x8D, 0x71, 0x75, 0x5B, 0x46,
+ 0x3A, 0x44, 0x52, 0x41, 0x19, 0x3B, 0x81, 0xFB, 0x8E, 0x71, 0x89, 0x71, 0x76, 0x8A, 0xDA, 0xCE,
+ 0xEA, 0x48, 0xCD, 0x67, 0xCC, 0x20, 0x6E, 0xA7, 0x52, 0x4E, 0x88, 0xF2, 0x98, 0xDC, 0x1D, 0xAD,
+ 0x0F, 0x8E, 0x8E, 0xF9, 0x96, 0xD6, 0x7B, 0xD7, 0x07, 0x4B, 0xB2, 0x42, 0x12, 0xE8, 0xFA, 0xDC,
+ 0x01, 0xCF, 0xE5, 0x0F, 0x97, 0x1C, 0x5D, 0x17, 0x51, 0x1B, 0x01, 0xCE, 0x14, 0x94, 0xA7, 0x6B,
+ 0x00, 0x0A, 0xAE, 0xB5, 0x2B, 0x78, 0x9C, 0x01, 0x30, 0x1C, 0x34, 0xE9, 0x50, 0x8B, 0x10, 0x0E,
+ 0xC2, 0x10, 0x63, 0xC7, 0xF7, 0x4D, 0x56, 0xB9, 0xB1, 0x94, 0x33, 0x16, 0x49, 0x4E, 0x36, 0x58,
+ 0x09, 0xF3, 0x29, 0xBD, 0x3F, 0x90, 0x92, 0x3C, 0xC4, 0x83, 0x6D, 0xC4, 0xDD, 0x40, 0x76, 0xF7,
+ 0xD4, 0x37, 0xE1, 0x38, 0xD4, 0xF9, 0x9B, 0x89, 0x64, 0xA3, 0xCB, 0x12, 0x77, 0x09, 0x06, 0xF1,
+ 0x5A, 0xB4, 0x3E, 0xFC, 0xE7, 0x70, 0xA0, 0xB3, 0xAE, 0x63, 0xED, 0x13, 0xEA, 0xEC, 0x2F, 0xEB,
+ 0xE1, 0xFD, 0x3D, 0x80, 0x07, 0x46, 0xE3, 0x5E, 0x26, 0xE3, 0x13, 0x6B, 0xC9, 0x99, 0x5C, 0xB8,
+ 0x6D, 0x32, 0x95, 0xAB, 0x6C, 0x48, 0xA2, 0xA8, 0x2D, 0x04, 0xA6, 0x9B, 0x69, 0x33, 0xA1, 0x2F,
+ 0xCC, 0x51, 0x08, 0x31, 0x64, 0xAC, 0xA1, 0x8C, 0xFE, 0x77, 0x23, 0x38, 0x19, 0x88, 0xAB, 0x72,
+ 0xA9, 0x55, 0xFF, 0x9D, 0x2C, 0x16, 0x2D, 0x4A, 0xA0, 0x95, 0xAC, 0x78, 0xD9, 0xB7, 0x13, 0x5B,
+ 0x17, 0xE8, 0x67, 0xF0, 0x77, 0x2A, 0x1E, 0xFA, 0x04, 0x1E, 0x3B, 0x7E, 0xC2, 0xF9, 0x0D, 0x16,
+ 0x7F, 0x24, 0xC7, 0xFF, 0x7B, 0x1B, 0xE5, 0xE9, 0xD5, 0x82, 0xF2, 0xAA, 0xC0, 0x72, 0x35, 0x0D,
+ 0xE6, 0x45, 0xD1, 0x7E, 0xDA, 0xB9, 0x0F, 0x26, 0x1A, 0x53, 0x20, 0x30, 0x03, 0x45, 0x69, 0x00,
+ 0x50, 0xC4, 0x85, 0xA1, 0xE4, 0xCB, 0xE9, 0xCF, 0x42, 0xF5, 0xD2, 0xD7, 0xF5, 0x55, 0x54, 0x0A,
+ 0x89, 0x31, 0x9D, 0x8F, 0xAC, 0x71, 0x65, 0x09, 0x0A, 0xE8, 0x7A, 0x15, 0x58, 0xE3, 0xA5, 0x84,
+ 0x39, 0xCD, 0x6E, 0x14, 0x1F, 0x9F, 0x16, 0x70, 0x33, 0x49, 0xBD, 0xD5, 0x08, 0x25, 0x38, 0xAE,
+ 0xF5, 0x96, 0xC8, 0x90, 0x0D, 0xD3, 0x8F, 0xC6, 0x0C, 0xAC, 0x07, 0xB2, 0xC1, 0xF1, 0xE9, 0x32,
+ 0xDD, 0xCE, 0x66, 0x30, 0x1E, 0x55, 0x30, 0xB0, 0x31, 0xA6, 0xF1, 0xA2, 0x53, 0x83, 0xF4, 0x2A,
+ 0x22, 0x22, 0xBB, 0x48, 0xA1, 0x8A, 0xB8, 0xDA, 0x15, 0x1F, 0xA4, 0x10, 0x93, 0xBC, 0x4C, 0x03,
+ 0x1E, 0x11, 0xE0, 0xF8, 0x27, 0x49, 0x67, 0x12, 0x4B, 0xFD, 0x2B, 0x50, 0x38, 0x76, 0xE0, 0x3A,
+ 0x81, 0x0D, 0x51, 0x3D, 0xC1, 0xDB, 0xB3, 0x74, 0xD0, 0x93, 0x06, 0x31, 0x02, 0xC6, 0xB5, 0x3F,
+ 0xE7, 0x80, 0x9A, 0xC4, 0xF3, 0x98, 0xAE, 0x8E, 0x23, 0xF2, 0xE7, 0xF0, 0x4C, 0x3A, 0x8F, 0xCB,
+ 0x40, 0x9E, 0xA0, 0x1A, 0x03, 0x93, 0x1B, 0x69, 0xB6, 0x6A, 0x8B, 0xFA, 0x73, 0xFE, 0x63, 0x5D,
+ 0x19, 0xA9, 0x0C, 0x06, 0x5B, 0x14, 0x61, 0xA5, 0xBF, 0x62, 0x72, 0x7D, 0x99, 0x5F, 0xC1, 0x92,
+ 0x62, 0xB6, 0xB5, 0xE7, 0xF4, 0xF6, 0x1F, 0xC5, 0x34, 0xB7, 0x05, 0x39, 0x57, 0x74, 0x91, 0x86,
+ 0x43, 0x17, 0x9C, 0x4F, 0x8F, 0xC5, 0xA8, 0x39, 0x6C, 0x11, 0xF7, 0xDE, 0x2A, 0xD3, 0x97, 0xC2,
+ 0x94, 0xA3, 0xEF, 0x97, 0x5D, 0xB0, 0xF6, 0x2E, 0xD9, 0x9B, 0xFF, 0xB6, 0xD0, 0x5C, 0x7A, 0xEE,
+ 0x0E, 0x4B, 0xC5, 0x43, 0x8C, 0x7E, 0xE1, 0x45, 0x9A, 0x61, 0xE2, 0x84, 0xC6, 0x0E, 0x68, 0xBA,
+ 0x44, 0xAF, 0x70, 0xB1, 0x57, 0x25, 0x9A, 0xB6, 0xDE, 0x65, 0x47, 0x5A, 0x39, 0xF5, 0x3C, 0x05,
+ 0x2C, 0x63, 0xD0, 0xBE, 0x81, 0x85, 0x3C, 0x96, 0xA4, 0x3E, 0x9D, 0xA8, 0x42, 0x2E, 0x67, 0xF6,
+ 0xE5, 0xCC, 0xED, 0x2B, 0xB9, 0x53, 0x4D, 0xF4, 0x24, 0x0C, 0x5F, 0x1C, 0x26, 0x4C, 0x47, 0xE4,
+ 0xB7, 0x4E, 0xB1, 0xD0, 0x0F, 0xA2, 0xE0, 0x7A, 0x77, 0x4D, 0x18, 0x0B, 0x68, 0xB0, 0x7D, 0x10,
+ 0xD8, 0x3A, 0xFD, 0x21, 0x93, 0xC9, 0xA5, 0x20, 0x5F, 0xED, 0x40, 0xA5, 0x95, 0xC0, 0x11, 0xB4,
+ 0x45, 0x6A, 0x3B, 0x0B, 0x82, 0x3E, 0x75, 0xEA, 0x61, 0xB2, 0x3F, 0x89, 0x66, 0xA4, 0x95, 0x2D,
+ 0xEC, 0x35, 0x6A, 0x23, 0xCF, 0x9B, 0x27, 0xDB, 0x27, 0x59, 0xD6, 0x20, 0x70, 0xF6, 0x87, 0x79,
+ 0x7C, 0xAD, 0xFB, 0xAA, 0x60, 0x79, 0x59, 0xBB, 0xF7, 0x7F, 0xDA, 0xBF, 0x1A, 0x80, 0x4F, 0x56,
+ 0x41, 0x5B, 0xEB, 0xA0, 0x46, 0xD2, 0x4A, 0x7C, 0x37, 0xE2, 0x8C, 0x05, 0xE6, 0x73, 0xFF, 0xCD,
+ 0xAE, 0x30, 0xC6, 0xE2, 0x36, 0x13, 0x50, 0x8E, 0xE8, 0xD2, 0x02, 0xB4, 0x57, 0x8E, 0xED, 0x62,
+ 0x34, 0x91, 0xA5, 0x7F, 0x35, 0x37, 0xB4, 0x86, 0x9B, 0x71, 0xD1, 0x31, 0x5D, 0xFE, 0xB0, 0xD9,
+ 0x1F, 0x1D, 0x6A, 0xD7, 0x74, 0xC1, 0xBA, 0xED, 0x7C, 0x81, 0xDA, 0x84, 0xA0, 0x5E, 0x27, 0x73,
+ 0x63, 0xA6, 0x23, 0xD4, 0x37, 0x2C, 0x8C, 0x0D, 0xFC, 0xF9, 0x52, 0x7A, 0xD3, 0x7D, 0x74, 0x06,
+ 0xE1, 0x1A, 0xD2, 0x3B, 0x98, 0xB9, 0x45, 0x30, 0xCC, 0xDA, 0xE6, 0xB7, 0x95, 0x94, 0x9F, 0xAF,
+ 0x60, 0x83, 0xB3, 0x2D, 0x72, 0x76, 0xE7, 0x91, 0x1D, 0x40, 0x29, 0x65, 0xC9, 0x57, 0x92, 0x98,
+ 0x6F, 0xEB, 0x7F, 0x8D, 0x89, 0x65, 0xD6, 0x9D, 0x81, 0x94, 0xF8, 0xAC, 0xF1, 0x55, 0x89, 0x13,
+ 0x02, 0x55, 0xC2, 0x15, 0xBA, 0xD5, 0xEA, 0xC6, 0x0A, 0x92, 0x5C, 0x3B, 0xEF, 0x4E, 0xC4, 0x5D,
+ 0x0F, 0x09, 0x01, 0x22, 0x18, 0x59, 0x2F, 0xE7, 0x33, 0x58, 0xF0, 0x90, 0x15, 0x56, 0xAD, 0x1B,
+ 0x8B, 0xC5, 0x5A, 0x84, 0x81, 0xEF, 0x63, 0xF5, 0xD6, 0x3F, 0xCF, 0x2A, 0xC4, 0x9F, 0x31, 0xCF,
+ 0x10, 0x75, 0xA6, 0x77, 0xF2, 0x96, 0x8D, 0x46, 0x77, 0xFF, 0xF6, 0xED, 0x59, 0xCF, 0x1B, 0x09,
+ 0x3E, 0xAC, 0x53, 0x6F, 0x7E, 0x50, 0x37, 0x0E, 0x6A, 0x3D, 0xBE, 0x45, 0xA8, 0x62, 0x95, 0xBF,
+ 0xA2, 0x7D, 0x9A, 0xBB, 0x24, 0xEB, 0x27, 0x2B, 0x0C, 0xDB, 0x2C, 0x91, 0x49, 0x95, 0xA0, 0x2C,
+ 0x67, 0xE2, 0x86, 0x0A, 0xF0, 0x8D, 0xB5, 0xCD, 0x62, 0xBA, 0xB7, 0xBC, 0x1C, 0xAF, 0xA5, 0x9C,
+ 0xD7, 0xDE, 0xB5, 0x51, 0x2F, 0x45, 0x76, 0x4B, 0x80, 0xFA, 0xE9, 0x33, 0xB0, 0x04, 0x9C, 0x56,
+ 0xAF, 0x21, 0x59, 0x8C, 0xA7, 0x2F, 0xA9, 0xF4, 0x39, 0x48, 0xCD, 0x66, 0x08, 0xC4, 0xB5, 0x69,
+ 0x78, 0x9E, 0x21, 0x5F, 0x88, 0x5A, 0x0A, 0x1E, 0x28, 0xD3, 0xC8, 0x92, 0x6D, 0xC0, 0x19, 0x9E,
+ 0x99, 0xE5, 0x3E, 0xE6, 0xF6, 0x3A, 0xE8, 0xB1, 0xFD, 0x97, 0x43, 0xE5, 0x3D, 0x0E, 0x0D, 0xB5,
+ 0x85, 0xBC, 0x09, 0x4A, 0x8C, 0xF6, 0x6F, 0xE9, 0xF5, 0x10, 0x4A, 0x1C, 0x9F, 0xE4, 0xC2, 0x14,
+ 0x5B, 0x1B, 0x17, 0x70, 0x39, 0x11, 0x64, 0x19, 0x6D, 0x1A, 0xDF, 0x70, 0x73, 0xDB, 0x54, 0xD0,
+ 0x2E, 0xB8, 0x38, 0x9A, 0x0D, 0x29, 0xD9, 0xBD, 0xFA, 0xB0, 0x22, 0xD0, 0xC0, 0xAE, 0x9A, 0x1F,
+ 0xDC, 0xF2, 0xDC, 0x2F, 0x76, 0xDA, 0x82, 0x66, 0xFE, 0x6E, 0x66, 0x75, 0x94, 0x51, 0x25, 0xE4,
+ 0x08, 0x68, 0x34, 0x05, 0x61, 0xB1, 0x4C, 0xB7, 0x04, 0x5C, 0x25, 0x68, 0x86, 0x47, 0x71, 0xB6,
+ 0xD0, 0xBF, 0x80, 0x76, 0x3F, 0xA6, 0x39, 0x65, 0x8E, 0x34, 0x90, 0x60, 0x6B, 0xBD, 0x5D, 0x39,
+ 0xBE, 0x24, 0xAD, 0x17, 0x32, 0xBF, 0x35, 0x79, 0x72, 0x4F, 0xA3, 0xD7, 0xED, 0x02, 0x2B, 0x2A,
+ 0x4F, 0x4B, 0xD9, 0x5B, 0x77, 0xE5, 0x5E, 0xE5, 0xD2, 0xE1, 0x8B, 0x8F, 0x81, 0xFF, 0x8F, 0x5A,
+ 0xB4, 0x19, 0x5B, 0x07, 0xDA, 0x6B, 0xAF, 0x53, 0x93, 0xF6, 0xD8, 0xC8, 0xBB, 0xB1, 0x7B, 0xA6,
+ 0x21, 0xD0, 0xF4, 0x3A, 0xAB, 0x09, 0x79, 0x6B, 0xA1, 0x42, 0x58, 0x0A, 0x9B, 0xD5, 0x69, 0xC4,
+ 0x3F, 0xBD, 0xCC, 0x01, 0xDD, 0xE3, 0x2E, 0xAC, 0x7D, 0xEF, 0xCB, 0x1B, 0x03, 0x71, 0x52, 0x99,
+ 0x35, 0x80, 0x3A, 0x11, 0xCE, 0x24, 0x85, 0x8A, 0xE0, 0x55, 0x0B, 0x4D, 0xB3, 0x8D, 0xC9, 0x6A,
+ 0xBC, 0x10, 0xA2, 0x80, 0xB0, 0x44, 0x67, 0x25, 0xC6, 0xCA, 0xDB, 0x41, 0x7B, 0xE7, 0xE6, 0x1C,
+ 0x94, 0xB9, 0xFD, 0xD1, 0xE2, 0x75, 0xC2, 0x68, 0x2D, 0x63, 0x9D, 0xA8, 0x69, 0xF1, 0xB2, 0x4E,
+ 0x20, 0xC1, 0x6B, 0x54, 0xD6, 0x4D, 0x7F, 0xCC, 0x5F, 0xAE, 0x5F, 0xB2, 0x47, 0xD4, 0x56, 0x47,
+ 0x4C, 0x6E, 0x49, 0xA2, 0x46, 0x4E, 0x5A, 0x35, 0x1E, 0xB9, 0x0C, 0xF5, 0x41, 0xA9, 0x12, 0xE0,
+ 0x86, 0x99, 0x99, 0xB3, 0x3D, 0xBD, 0x01, 0xEE, 0x6C, 0x74, 0xCE, 0xEF, 0xA2, 0x12, 0xC8, 0x04,
+ 0x55, 0x62, 0x44, 0xBE, 0x2C, 0x61, 0x92, 0x43, 0x7F, 0x78, 0xFF, 0x14, 0xA1, 0x9B, 0x9D, 0x38,
+ 0x06, 0x11, 0x67, 0xCB, 0x3C, 0x82, 0xDD, 0x6D, 0xCF, 0x23, 0xC3, 0x27, 0x53, 0xBF, 0x46, 0xB2,
+ 0xEA, 0x36, 0xBB, 0x45, 0x8B, 0x7E, 0xEE, 0x16, 0x53, 0xF7, 0x12, 0xEE, 0x61, 0xCD, 0x00, 0x82,
+ 0xF0, 0x1F, 0x26, 0xA0, 0x4B, 0x57, 0x56, 0x29, 0xF7, 0x87, 0x7E, 0x13, 0x93, 0xE9, 0xDB, 0x08,
+ 0xB8, 0x54, 0x07, 0x5E, 0xE8, 0xE4, 0x4F, 0x8B, 0x87, 0xDD, 0x88, 0x06, 0xFE, 0xD1, 0xC5, 0x33,
+ 0xA4, 0x0D, 0x30, 0xF2, 0x7B, 0xC3, 0x8E, 0x7A, 0xCA, 0x93, 0x96, 0x1D, 0x2B, 0x29, 0xF2, 0x37,
+ 0x42, 0x17, 0x1A, 0x6C, 0x42, 0xE2, 0x3F, 0xC2, 0x98, 0x88, 0xF4, 0xA1, 0xD7, 0x4C, 0xDF, 0xD6,
+ 0x8C, 0xA4, 0x6F, 0xA3, 0x2B, 0xE9, 0x13, 0xBC, 0x14, 0xA9, 0x31, 0x03, 0xF7, 0x28, 0xCD, 0xB4,
+ 0xFB, 0x33, 0x4F, 0xDE, 0x63, 0xAA, 0x74, 0x3C, 0x18, 0xF0, 0x7C, 0x5F, 0x40, 0x6C, 0xA8, 0xAB,
+ 0xF9, 0x07, 0x40, 0x49, 0x7C, 0x4B, 0x0F, 0x85, 0x8A, 0xEA, 0xD4, 0xC5, 0x04, 0xC9, 0xAC, 0x75,
+ 0xC0, 0xAB, 0xEB, 0x83, 0xE3, 0x4A, 0x1E, 0xEB, 0xA9, 0xC5, 0x51, 0xF3, 0x78, 0x6E, 0xB3, 0x20,
+ 0xB7, 0x3C, 0xCB, 0xFE, 0xB9, 0xF1, 0x0E, 0xCE, 0x5C, 0x57, 0x7A, 0x22, 0x9C, 0x6D, 0x97, 0x28,
+ 0xAB, 0x65, 0xFC, 0x52, 0x78, 0xE7, 0x6A, 0x72, 0x49, 0x12, 0x3B, 0x73, 0x77, 0xEA, 0xFF, 0x00,
+ 0x03, 0x44, 0x5D, 0x7B, 0xF8, 0x07, 0x00, 0xA5, 0xCB, 0xFD, 0x87, 0x82, 0x60, 0x08, 0xBA, 0xC9,
+ 0xEC, 0x46, 0x11, 0x0C, 0x97, 0xBB, 0x71, 0xA7, 0x05, 0x32, 0x34, 0xF7, 0x3A, 0xB6, 0xF3, 0x59,
+ 0x01, 0x70, 0x52, 0xEC, 0x2E, 0x7A, 0xAA, 0xC8, 0xD3, 0x8F, 0x9A, 0x10, 0x20, 0x9C, 0x15, 0xC7,
+ 0x5E, 0x4E, 0x2D, 0xC0, 0x15, 0x40, 0x23, 0xFB, 0x3B, 0xDF, 0xF9, 0x69, 0x2D, 0x54, 0xB6, 0x90,
+ 0x41, 0x32, 0x8A, 0x95, 0x48, 0x73, 0xB2, 0x21, 0x1A, 0x67, 0x48, 0x50, 0xA7, 0xE6, 0xD9, 0x9F,
+ 0x79, 0x8F, 0xBE, 0x31, 0x20, 0x47, 0x42, 0xDC, 0xCE, 0x4D, 0xD2, 0xB8, 0xD5, 0x00, 0x30, 0xA1,
+ 0xDD, 0xE3, 0x43, 0x41, 0xD8, 0x70, 0x97, 0xD8, 0x17, 0x50, 0x14, 0x93, 0xB6, 0x79, 0xD8, 0xF1,
+ 0x23, 0xE4, 0xFB, 0xAD, 0x9E, 0x0E, 0x18, 0x4C, 0x3D, 0x96, 0x89, 0xC3, 0xA5, 0xAA, 0x36, 0xE8,
+ 0x90, 0xFD, 0x58, 0x0F, 0xCA, 0x88, 0xE0, 0x7D, 0x84, 0x24, 0xAD, 0x96, 0x5B, 0x83, 0xF4, 0x7E,
+ 0x66, 0xF3, 0x19, 0x64, 0xEC, 0x48, 0x2A, 0x7C, 0xD4, 0xA8, 0xFB, 0x25, 0x06, 0x85, 0x43, 0x02,
+ 0xF8, 0x16, 0xDF, 0x27, 0xF9, 0x38, 0xDC, 0x26, 0xD1, 0x18, 0xAE, 0x1F, 0xE1, 0x0F, 0x32, 0x36,
+ 0xDE, 0xC6, 0xD3, 0xB8, 0x16, 0x64, 0xC7, 0xF3, 0xEE, 0x9B, 0x72, 0x1E, 0x26, 0xE1, 0x51, 0x60,
+ 0xA7, 0x28, 0xA0, 0x0B, 0x0C, 0x16, 0x05, 0x3E, 0x3C, 0xF8, 0x98, 0x5C, 0xFA, 0xE0, 0x6E, 0xE3,
+ 0x22, 0xF5, 0x64, 0xC3, 0x05, 0xA3, 0x6C, 0xD5, 0x1C, 0x2E, 0x38, 0xFA, 0x8A, 0x4A, 0x68, 0xAA,
+ 0x58, 0x3E, 0x87, 0x89, 0xC1, 0x26, 0xB1, 0x1D, 0x0B, 0xFC, 0x4D, 0xA4, 0xCA, 0xDE, 0xC7, 0xA4,
+ 0x2A, 0xFC, 0x9D, 0x44, 0x0B, 0x9E, 0x84, 0xC1, 0x83, 0x03, 0xCC, 0xA3, 0xEC, 0xC7, 0x91, 0x61,
+ 0x47, 0xBE, 0xD4, 0xE1, 0xCE, 0x8E, 0x66, 0x7F, 0x61, 0x18, 0xC9, 0xFA, 0x09, 0x05, 0xAE, 0xB0,
+ 0x29, 0x6B, 0xD5, 0x53, 0xB3, 0xF0, 0x97, 0xE6, 0xCC, 0xD0, 0xBB, 0xC2, 0x45, 0x8F, 0x55, 0x6F,
+ 0x0C, 0xC3, 0x6B, 0xC1, 0xFE, 0xD6, 0xD0, 0x36, 0x91, 0xAE, 0xD5, 0x91, 0xE4, 0xDD, 0xE2, 0x19,
+ 0x74, 0x0A, 0xEB, 0x8B, 0xA1, 0x83, 0xC1, 0xE1, 0x0B, 0x4F, 0xDF, 0xD1, 0x59, 0x50, 0x86, 0x06,
+ 0x69, 0xE1, 0x7D, 0x26, 0x52, 0x48, 0x42, 0xE8, 0x3F, 0x35, 0x4D, 0x3B, 0xAE, 0x5B, 0x03, 0x64,
+ 0x83, 0x0F, 0x0E, 0xBE, 0x09, 0xF9, 0x99, 0x8A, 0xE2, 0x36, 0x13, 0x24, 0x6E, 0x88, 0x66, 0x27,
+ 0x9A, 0x68, 0xCC, 0x4E, 0xDE, 0x5D, 0x55, 0x06, 0x0A, 0xF3, 0xD9, 0xD1, 0xDF, 0xB4, 0x06, 0x0A,
+ 0x87, 0x75, 0x48, 0x70, 0x8D, 0xEF, 0x62, 0x2E, 0x7D, 0x9C, 0xDA, 0xF1, 0xE9, 0xDC, 0x33, 0x4C,
+ 0x18, 0x97, 0x2B, 0x8E, 0x55, 0xFA, 0x95, 0xF1, 0x0C, 0xF9, 0xEE, 0x0F, 0x6A, 0xD2, 0x22, 0x7F,
+ 0x77, 0xC0, 0xCE, 0x2A, 0x52, 0x1F, 0xA0, 0xB0, 0x68, 0x6B, 0xEC, 0xA3, 0xBD, 0x76, 0x23, 0x96,
+ 0x2A, 0x9A, 0xBB, 0x70, 0xAF, 0xF1, 0x09, 0x9B, 0xFF, 0xA4, 0x6F, 0x5C, 0xB8, 0xF9, 0xFC, 0x6C,
+ 0xE4, 0x6A, 0x49, 0x41, 0xD6, 0x6D, 0xDB, 0x7A, 0x37, 0xBA, 0x92, 0x05, 0x10, 0xA1, 0x96, 0x6E,
+ 0x33, 0xC8, 0xDA, 0xE6, 0x6B, 0xEF, 0x43, 0xEA, 0x9A, 0x46, 0x80, 0x81, 0xAA, 0x30, 0xE3, 0xBF,
+ 0xCF, 0x46, 0x78, 0x2F, 0xE5, 0x76, 0xA5, 0xAB, 0xF1, 0xC0, 0x86, 0xED, 0x85, 0x40, 0x98, 0xD9,
+ 0x46, 0xA6, 0x3A, 0x09, 0x38, 0x0B, 0xD3, 0xF2, 0x00, 0xD0, 0xBE, 0x45, 0x26, 0xA2, 0x04, 0xA1,
+ 0x64, 0x90, 0xAE, 0x38, 0x96, 0xFF, 0xCB, 0x95, 0x73, 0x2E, 0xE3, 0x04, 0x97, 0xBC, 0x9F, 0x77,
+ 0x59, 0xC0, 0x40, 0xF2, 0x44, 0xA4, 0x22, 0x45, 0xFF, 0x57, 0xB7, 0x6B, 0xFE, 0x32, 0xAD, 0x51,
+ 0xAD, 0x13, 0x67, 0xB9, 0x47, 0x5D, 0xB3, 0xD0, 0x80, 0x26, 0x27, 0xE1, 0xBA, 0xAF, 0xA4, 0x23,
+ 0x53, 0x8A, 0x79, 0xE3, 0x39, 0xB6, 0x15, 0x02, 0xD0, 0x89, 0x63, 0xC2, 0xAA, 0xE0, 0x12, 0xEF,
+ 0x4F, 0x7C, 0xBF, 0xB8, 0x7C, 0x82, 0x0F, 0x3A, 0x77, 0x24, 0x07, 0x2D, 0xBA, 0xF3, 0x76, 0x28,
+ 0x82, 0xE9, 0xF1, 0x2B, 0xF6, 0x5A, 0x78, 0x81, 0x43, 0xAD, 0xBA, 0x55, 0xD9, 0x52, 0xF8, 0x8C,
+ 0x0B, 0x7A, 0xA6, 0x54, 0xB1, 0x00, 0x81, 0xDE, 0x40, 0xBD, 0x7B, 0x8E, 0x8F, 0xCA, 0xBA, 0xA0,
+ 0x67, 0x47, 0x71, 0xB4, 0x5D, 0x91, 0xDE, 0x1D, 0xB4, 0xD9, 0x6C, 0x1A, 0xA9, 0xCC, 0x42, 0xA4,
+ 0x28, 0x3C, 0x42, 0x97, 0xA5, 0xE1, 0x1E, 0x64, 0xBB, 0xBF, 0x3B, 0xA0, 0x66, 0x70, 0x58, 0x39,
+ 0x57, 0x3F, 0x17, 0x3A, 0x93, 0x86, 0xC6, 0xE5, 0xCD, 0xC7, 0xD8, 0xA9, 0x00, 0x6A, 0xCC, 0xDA,
+ 0xC0, 0x4C, 0x0C, 0x72, 0x69, 0x4F, 0xBF, 0xDE, 0xC8, 0xCD, 0x02, 0x4E, 0x6D, 0x8E, 0x51, 0xD1,
+ 0x71, 0xE7, 0x17, 0x93, 0xFF, 0xA5, 0x65, 0x7A, 0x9F, 0xA4, 0xF5, 0xFC, 0xDD, 0xA8, 0x9E, 0x13,
+ 0x7F, 0xBF, 0xB8, 0x55, 0xA2, 0xAE, 0xC8, 0x9C, 0xAD, 0xD1, 0x3F, 0xD3, 0x8A, 0xF4, 0xCB, 0xCC,
+ 0xF8, 0x17, 0x69, 0xA8, 0x92, 0x37, 0x4C, 0x71, 0x37, 0x7A, 0x5F, 0x5D, 0x0E, 0x16, 0xBE, 0x6F,
+ 0x6E, 0x3D, 0x9F, 0xB1, 0x13, 0x08, 0xF2, 0xED, 0xFB, 0xA9, 0xCD, 0xE4, 0x01, 0x3A, 0x6C, 0xCF,
+ 0x5C, 0xEA, 0x09, 0xD1, 0xC8, 0x13, 0x8A, 0x1E, 0xC2, 0x49, 0x8C, 0xD6, 0x27, 0xFE, 0x2C, 0x19,
+ 0x17, 0x21, 0x66, 0x8F, 0xE3, 0x3B, 0x3E, 0x7E, 0xFB, 0x29, 0x34, 0x66, 0x8C, 0xB6, 0xEB, 0xD6,
+ 0x7A, 0x83, 0x1B, 0xAE, 0x95, 0xC5, 0x20, 0x37, 0x2D, 0x36, 0xE7, 0x21, 0xD8, 0x58, 0x0C, 0x8E,
+ 0xB5, 0x68, 0x37, 0xC7, 0x50, 0x02, 0xE6, 0x5C, 0xAA, 0x6D, 0x0A, 0x01, 0xB9, 0x5D, 0x13, 0x9A,
+ 0xFC, 0xD7, 0x7E, 0x1F, 0x2A, 0x34, 0xFB, 0xF7, 0x8F, 0xE7, 0xE2, 0xA3, 0x3C, 0x6D, 0x24, 0x48,
+ 0x4B, 0xDC, 0xD0, 0xFF, 0xD9, 0xC3, 0x7E, 0x4E, 0x81, 0xE4, 0xED, 0xCA, 0x3D, 0xB9, 0x75, 0xE2,
+ 0x08, 0x81, 0xBB, 0x01, 0xD6, 0x70, 0x36, 0x6C, 0xF7, 0x10, 0x24, 0x3F, 0x5E, 0x14, 0x5C, 0xAB,
+ 0x7C, 0x11, 0xDC, 0xC3, 0x78, 0xC6, 0x9C, 0x6F, 0xCE, 0x2F, 0x41, 0xDC, 0x86, 0x9B, 0xDA, 0x7C,
+ 0x1C, 0x04, 0xE2, 0xB6, 0xD2, 0x58, 0x0E, 0x8F, 0x5F, 0xC3, 0x91, 0x7C, 0x85, 0xFA, 0xFE, 0x80,
+ 0x4A, 0x39, 0xE4, 0xB1, 0xE3, 0xD5, 0x7D, 0x46, 0xAD, 0xA9, 0xD4, 0x5D, 0x1D, 0x96, 0xD4, 0x6D,
+ 0x03, 0xBA, 0xC5, 0x3F, 0xCF, 0xEF, 0xEA, 0x6D, 0xBF, 0x1F, 0x35, 0x82, 0x7F, 0x5A, 0xAD, 0x45,
+ 0xCE, 0x33, 0x5A, 0x3B, 0x7A, 0x07, 0xAB, 0xA3, 0xC5, 0x89, 0x9E, 0x67, 0x10, 0xFD, 0x46, 0x22,
+ 0x1A, 0xCD, 0xE1, 0x73, 0x4D, 0xCD, 0xA6, 0xE0, 0xA3, 0xA5, 0x56, 0x7B, 0x17, 0xFF, 0x2B, 0x44,
+ 0xC5, 0x73, 0x18, 0x11, 0x58, 0x43, 0xE1, 0x23, 0xEB, 0x90, 0xAE, 0x42, 0x93, 0x94, 0xAA, 0x6A,
+ 0x39, 0x77, 0x9A, 0x96, 0xD1, 0x85, 0x00, 0x22, 0xE9, 0x99, 0xAC, 0xC1, 0x51, 0xB1, 0x59, 0x5F,
+ 0x10, 0x6E, 0xA0, 0xC1, 0x0F, 0xC9, 0xE8, 0xFC, 0x0B, 0xAA, 0x11, 0x19, 0x2B, 0x37, 0x61, 0xFF,
+ 0x61, 0x11, 0x92, 0x05, 0xCF, 0x35, 0x85, 0xF0, 0xAC, 0xD9, 0xC4, 0xEC, 0x83, 0x2B, 0xD9, 0x2F,
+ 0xBD, 0x39, 0x65, 0xC5, 0x67, 0x2B, 0x1F, 0xDA, 0x91, 0xEC, 0xD1, 0xA5, 0x19, 0x21, 0x55, 0x28,
+ 0xEF, 0xA9, 0x20, 0x1A, 0x08, 0x26, 0x44, 0xE1, 0xFD, 0xB2, 0xE9, 0x44, 0x7E, 0xF0, 0x3E, 0x40,
+ 0x8D, 0xC3, 0x68, 0x5B, 0xAE, 0xD1, 0xA3, 0x65, 0xC5, 0x6F, 0xD6, 0xB4, 0x1D, 0x3C, 0x5E, 0x77,
+ 0x79, 0x32, 0x0C, 0x4F, 0x88, 0x0F, 0xF7, 0x9A, 0x1F, 0x49, 0x1D, 0x29, 0x13, 0x06, 0x6A, 0xBC,
+ 0x8B, 0x81, 0xBA, 0xDC, 0x36, 0xE3, 0xD7, 0x89, 0x83, 0xFF, 0xA4, 0x2C, 0xFB, 0xF1, 0x14, 0x07,
+ 0x5E, 0x5E, 0xF5, 0x51, 0xB4, 0x0E, 0x1B, 0x29, 0xC8, 0x3A, 0x2C, 0x37, 0x67, 0x01, 0x01, 0x2C,
+ 0x60, 0xE3, 0x65, 0x6C, 0x4C, 0x73, 0xEB, 0x18, 0x73, 0x6C, 0x9F, 0x39, 0x05, 0x51, 0xDB, 0xF8,
+ 0x9D, 0x46, 0x55, 0xBB, 0xD3, 0xE8, 0xB2, 0x5D, 0x17, 0x48, 0x25, 0xE6, 0xAB, 0x54, 0x6D, 0x9D,
+ 0x31, 0x06, 0x66, 0x0D, 0xFE, 0x4D, 0xA9, 0x33, 0x80, 0xBD, 0x93, 0x13, 0x86, 0x84, 0xF9, 0xD8,
+ 0x90, 0x43, 0xE5, 0x12, 0xA5, 0x83, 0x38, 0x11, 0x2D, 0x57, 0xB8, 0x5A, 0x43, 0x72, 0x17, 0xDE,
+ 0xE5, 0x6F, 0x14, 0xBC, 0x38, 0x96, 0x49, 0xFC, 0x48, 0x02, 0x4E, 0x71, 0x6A, 0x73, 0x3C, 0xF2,
+ 0xC2, 0x69, 0x59, 0x6F, 0x5D, 0x38, 0x19, 0x62, 0x10, 0x58, 0xF6, 0xFB, 0xC9, 0x0D, 0x6E, 0xB4,
+ 0x98, 0xF6, 0x79, 0xE1, 0x82, 0xA1, 0x23, 0x34, 0xB3, 0x59, 0x2E, 0xE2, 0x26, 0x89, 0x5A, 0x38,
+ 0x2F, 0xD6, 0x0C, 0xEF, 0x4F, 0x95, 0xC3, 0x1A, 0x50, 0x2D, 0x6B, 0x87, 0x8F, 0xAA, 0xEF, 0x14,
+ 0x48, 0x48, 0x14, 0xE1, 0xC5, 0x7E, 0x3D, 0x1F, 0x98, 0x34, 0x2D, 0x50, 0x41, 0x26, 0x2D, 0xE4,
+ 0x75, 0xF3, 0x4B, 0xB8, 0xFD, 0xD4, 0xA7, 0x1F, 0x77, 0x9D, 0xC7, 0xAA, 0xDC, 0x12, 0x3F, 0xD7,
+ 0xB0, 0x4D, 0x01, 0xDE, 0x12, 0x69, 0x45, 0x06, 0xEB, 0xC3, 0x68, 0x5A, 0x37, 0x04, 0xEC, 0xF2,
+ 0x3F, 0xBF, 0xEA, 0x07, 0xA1, 0xC1, 0x83, 0x10, 0xB7, 0x3E, 0x66, 0xA0, 0x08, 0xCF, 0x58, 0x9E,
+ 0x78, 0x59, 0x43, 0x31, 0x07, 0xF7, 0x5C, 0x78, 0x3D, 0x6D, 0x0D, 0x96, 0xC8, 0x37, 0xF5, 0x5B,
+ 0x73, 0xC6, 0x9C, 0xDE, 0x2D, 0x4B, 0x9A, 0xFF, 0xDA, 0x83, 0xC3, 0x5E, 0x16, 0xAC, 0xF3, 0xF5,
+ 0x32, 0xCB, 0xC5, 0xF0, 0xA0, 0x9E, 0x57, 0x3A, 0x3F, 0xAA, 0x64, 0x5D, 0xDF, 0x07, 0x1D, 0xF2,
+ 0x1C, 0x66, 0x3E, 0xBD, 0xA0, 0x4F, 0xF8, 0xFB, 0x96, 0x5B, 0xB2, 0xE0, 0xFE, 0x5D, 0xBB, 0xE1,
+ 0x86, 0x36, 0x7B, 0xF1, 0x2C, 0x89, 0x24, 0x81, 0x48, 0xD7, 0xB8, 0x1B, 0x36, 0x48, 0x38, 0xA7,
+ 0x99, 0x90, 0x48, 0xFD, 0x27, 0x47, 0xA0, 0x71, 0xF3, 0xE8, 0x28, 0xBD, 0x02, 0x35, 0x44, 0x96,
+ 0x71, 0x0F, 0xC0, 0x4A, 0xFB, 0x32, 0x89, 0x0C, 0x46, 0x1B, 0xAE, 0xBE, 0x54, 0x88, 0x1C, 0xEB,
+ 0x62, 0xA3, 0xAD, 0x90, 0x95, 0x38, 0x65, 0x5E, 0x2E, 0xDB, 0xF4, 0x51, 0x35, 0x7B, 0x68, 0x29,
+ 0xE7, 0xFA, 0xE8, 0x24, 0x52, 0x72, 0xD2, 0x5E, 0xE5, 0x04, 0x20, 0x53, 0x4C, 0x74, 0x9F, 0x7E,
+ 0xB9, 0xAA, 0x58, 0x69, 0x4A, 0x72, 0xE3, 0x3F, 0x14, 0x35, 0xC1, 0xC5, 0xB6, 0x7E, 0xAA, 0x04,
+ 0x7F, 0x77, 0xCF, 0xC1, 0x80, 0xD4, 0x2C, 0xEE, 0x77, 0x12, 0xC4, 0x6C, 0xA2, 0x93, 0x09, 0x55,
+ 0x97, 0xDA, 0x86, 0xDA, 0xA5, 0x81, 0x85, 0x59, 0x3D, 0xA8, 0x63, 0x41, 0x46, 0x08, 0xB7, 0x78,
+ 0xE4, 0x39, 0x11, 0xFF, 0x34, 0xD2, 0xD3, 0x3E, 0xE3, 0xDD, 0x0F, 0x40, 0xD8, 0x4D, 0xC6, 0xD5,
+ 0xAF, 0x5B, 0xA1, 0x13, 0x6D, 0x81, 0x91, 0xB9, 0x36, 0x01, 0x8D, 0x4C, 0x96, 0xBD, 0x5F, 0x6A,
+ 0x05, 0xF5, 0x52, 0xAE, 0x30, 0x0E, 0xE5, 0x0F, 0xC8, 0x2A, 0x02, 0x2D, 0x8E, 0xD8, 0xE4, 0x92,
+ 0x80, 0xD4, 0x85, 0x9E, 0x2A, 0xAE, 0x5B, 0x10, 0x7C, 0xB0, 0x94, 0x5E, 0x27, 0x6F, 0x97, 0xC6,
+ 0xBA, 0x1D, 0x56, 0x02, 0xBF, 0x05, 0x01, 0x40, 0xF0, 0x03, 0x10, 0x78, 0x00, 0xB7, 0xB9, 0x63,
+ 0xA1, 0x2A, 0xA1, 0xEE, 0x42, 0x8A, 0x09, 0x6C, 0x47, 0x3A, 0xEB, 0xC4, 0x0F, 0x21, 0x4C, 0xFB,
+ 0xD0, 0x61, 0x61, 0x6F, 0xE7, 0x45, 0x7C, 0x59, 0x33, 0xE8, 0xEA, 0xE3, 0x8B, 0xD7, 0xEB, 0x90,
+ 0x3E, 0x04, 0x73, 0xC3, 0x69, 0x3B, 0xEC, 0xC8, 0xE2, 0x50, 0x8B, 0xE0, 0xF5, 0x5E, 0x0A, 0x5A,
+ 0xDC, 0x1F, 0x05, 0xCC, 0xE9, 0x13, 0x29, 0x0E, 0xA8, 0x48, 0x9D, 0x40, 0x9C, 0xF1, 0x7B, 0x9F,
+ 0x5A, 0x8D, 0x76, 0xCB, 0x94, 0xDD, 0xB6, 0x23, 0xEE, 0xF3, 0x33, 0xD4, 0xA0, 0xF2, 0xC3, 0x29,
+ 0xA4, 0x5C, 0xF4, 0x9E, 0x71, 0xAF, 0xD1, 0x62, 0x0D, 0x51, 0xBF, 0x91, 0x9E, 0xB4, 0x99, 0x7E,
+ 0x6E, 0x7F, 0xE8, 0x61, 0x05, 0xBC, 0xE0, 0x2C, 0x35, 0x7D, 0x9F, 0xD8, 0x16, 0x84, 0xF3, 0xAB,
+ 0x4E, 0xC3, 0xC7, 0x76, 0xAD, 0x63, 0x12, 0x0A, 0x65, 0x46, 0x68, 0x60, 0xDF, 0x3D, 0xE2, 0xAE,
+ 0xDD, 0xB2, 0xCB, 0x19, 0x95, 0xA6, 0x76, 0x60, 0x02, 0xB0, 0x69, 0x3A, 0x2E, 0x70, 0x14, 0x7B,
+ 0x3A, 0x10, 0x25, 0xC8, 0xD9, 0xDD, 0x14, 0x77, 0x94, 0x31, 0xA5, 0x04, 0x87, 0x4F, 0xBC, 0xD0,
+ 0x2B, 0xDE, 0xF7, 0x3B, 0x11, 0xC3, 0x04, 0xB4, 0x42, 0xF9, 0xCD, 0xA4, 0x97, 0xBC, 0x8C, 0x19,
+ 0x30, 0xCE, 0x4A, 0x65, 0x98, 0x06, 0xA8, 0x59, 0x0E, 0x50, 0x1D, 0x92, 0xBA, 0x0A, 0x29, 0xE9,
+ 0x82, 0xDC, 0x19, 0xE4, 0x0A, 0x0A, 0xC7, 0x20, 0x68, 0x3F, 0x98, 0x4C, 0x8B, 0xB5, 0x69, 0x7A,
+ 0x72, 0x2D, 0x64, 0xD3, 0xFA, 0xF4, 0xF9, 0xB9, 0xF9, 0xD7, 0xC8, 0x53, 0x70, 0x06, 0x27, 0x37,
+ 0x90, 0x09, 0xE7, 0x42, 0x9E, 0xFD, 0xB3, 0xB6, 0xE9, 0x3A, 0x60, 0x96, 0xBD, 0xF6, 0x05, 0xD9,
+ 0x42, 0x7C, 0xFB, 0x33, 0x7A, 0xAF, 0x7D, 0xFB, 0x22, 0x08, 0x38, 0xC4, 0xC2, 0x0B, 0x21, 0x05,
+ 0x0C, 0x60, 0x65, 0xAA, 0x8F, 0xAF, 0x81, 0xAE, 0x3D, 0x9A, 0x4B, 0x3F, 0x55, 0x77, 0x83, 0x83,
+ 0x39, 0xC3, 0xFF, 0xF2, 0xAD, 0x83, 0xEE, 0xB5, 0xBC, 0x3E, 0xEF, 0x43, 0x49, 0x75, 0x7A, 0x4C,
+ 0x4A, 0xCC, 0x72, 0x46, 0x9A, 0xBC, 0xDF, 0xAD, 0xF4, 0x53, 0x3B, 0xF1, 0xD4, 0x27, 0xA2, 0xC7,
+ 0x52, 0x9E, 0xDF, 0xC5, 0xB1, 0x3C, 0xFD, 0xB4, 0x7A, 0x0E, 0x25, 0x00, 0x13, 0x7A, 0x5A, 0xBA,
+ 0xDA, 0xF2, 0x54, 0x13, 0x92, 0x88, 0xAA, 0x28, 0xEF, 0xD6, 0xA9, 0x75, 0xCE, 0x19, 0xCB, 0xAA,
+ 0x3C, 0x39, 0xF2, 0x59, 0x67, 0xFF, 0x56, 0x72, 0xBC, 0x66, 0xD9, 0x59, 0x4D, 0x1F, 0x6B, 0xCA,
+ 0x49, 0x4C, 0xFD, 0xAF, 0x45, 0x33, 0x95, 0xC9, 0x47, 0xE0, 0x44, 0x93, 0x30, 0x4C, 0x41, 0x4D,
+ 0x58, 0x93, 0xCB, 0xC3, 0x50, 0x00, 0xED, 0x5E, 0x48, 0x20, 0xC9, 0x06, 0x24, 0x46, 0x30, 0x89,
+ 0xFF, 0x62, 0x34, 0xDA, 0x1E, 0x54, 0xDE, 0x73, 0x1E, 0x14, 0x9C, 0xB2, 0xFB, 0x50, 0x26, 0x3B,
+ 0x0E, 0xA6, 0xF4, 0x1F, 0xD9, 0x50, 0xB0, 0xA6, 0x31, 0xE6, 0x16, 0x97, 0xAB, 0x22, 0x8B, 0xD0,
+ 0xCC, 0x4E, 0x3C, 0x38, 0x82, 0x5E, 0x03, 0xBF, 0x31, 0x19, 0x2D, 0x8F, 0x13, 0x40, 0xBB, 0xB6,
+ 0xFB, 0xC7, 0xCF, 0x5F, 0x73, 0x0B, 0x1E, 0xDE, 0x43, 0x05, 0x45, 0x9A, 0x45, 0x43, 0x3D, 0xB9,
+ 0xDB, 0x8B, 0xF0, 0xBE, 0x7A, 0xF1, 0xF0, 0xE4, 0x88, 0x28, 0xC2, 0x01, 0x18, 0xD4, 0xC2, 0x96,
+ 0x00, 0x05, 0x9F, 0x0A, 0x16, 0x21, 0x1A, 0xA2, 0x2C, 0x25, 0x11, 0xFC, 0xD5, 0x8A, 0x48, 0x02,
+ 0xFC, 0x53, 0xAB, 0x03, 0xB4, 0x46, 0xE8, 0x6A, 0xF0, 0x39, 0x31, 0xD5, 0x9E, 0x6C, 0x47, 0x63,
+ 0x51, 0x03, 0x3D, 0x02, 0x8C, 0x2F, 0xE6, 0xB3, 0x4C, 0x9A, 0x6D, 0x08, 0xF9, 0xA6, 0xB2, 0x85,
+ 0x5F, 0x67, 0x7A, 0x97, 0x58, 0xF9, 0xCE, 0xC2, 0x0C, 0x28, 0xF3, 0xC9, 0x6E, 0x41, 0xC2, 0x76,
+ 0x26, 0x9C, 0x41, 0xF2, 0x06, 0x5C, 0x59, 0x86, 0x55, 0x11, 0x17, 0x9F, 0x62, 0x9B, 0xC7, 0x3D,
+ 0x13, 0x4E, 0xFD, 0x67, 0x2E, 0x44, 0xC5, 0x6E, 0x1D, 0x4B, 0x67, 0xA0, 0xB9, 0x15, 0x71, 0xE9,
+ 0xA7, 0xFE, 0xEA, 0x83, 0x2B, 0x7C, 0x8E, 0x65, 0x30, 0x85, 0x2F, 0xE9, 0xE8, 0xAD, 0x1A, 0x05,
+ 0xD5, 0x61, 0xE0, 0x4F, 0x0F, 0x89, 0x61, 0x61, 0x07, 0xD0, 0x8F, 0x7E, 0xD9, 0xC6, 0x4C, 0x11,
+ 0x6B, 0x9C, 0x3F, 0xB2, 0x70, 0x11, 0xF7, 0x50, 0x29, 0xDD, 0xA3, 0x02, 0x94, 0x54, 0xB8, 0x2B,
+ 0x8C, 0x19, 0xFC, 0x77, 0xDE, 0xCF, 0xCA, 0x16, 0x0C, 0x3A, 0x79, 0x27, 0x4E, 0xFA, 0x5B, 0x5D,
+ 0x96, 0x1C, 0xB4, 0x1F, 0xE1, 0x60, 0xD6, 0x06, 0xFB, 0xC9, 0x6A, 0x41, 0x72, 0x9E, 0x0B, 0x9C,
+ 0xBB, 0xCA, 0x53, 0x34, 0xB9, 0x4F, 0xC0, 0x06, 0xE9, 0x93, 0xAB, 0xD7, 0x0F, 0x2E, 0x02, 0xCA,
+ 0x2A, 0x7E, 0xCC, 0xB3, 0x1F, 0x86, 0x34, 0xED, 0xB1, 0x07, 0x36, 0xD1, 0xB9, 0xBE, 0x89, 0x0A,
+ 0x47, 0x73, 0x20, 0x00, 0xD4, 0x77, 0xFE, 0x5B, 0x11, 0x1A, 0x55, 0xAC, 0x4D, 0xF5, 0x1C, 0xAC,
+ 0x87, 0x50, 0xE5, 0x33, 0xF0, 0x72, 0xB1, 0xA9, 0x01, 0x69, 0xE9, 0xFC, 0xD0, 0xA2, 0x69, 0x0C,
+ 0xE1, 0xBB, 0xE2, 0x48, 0x45, 0x21, 0x1B, 0x1F, 0xD3, 0x01, 0xCB, 0xFE, 0x76, 0x23, 0xDB, 0x26,
+ 0x18, 0xCF, 0x25, 0xBF, 0xD0, 0x19, 0x92, 0x5F, 0x3F, 0xFF, 0x53, 0x45, 0xF1, 0xE2, 0xA7, 0x61,
+ 0x4F, 0xAD, 0xD3, 0xD0, 0x69, 0xC8, 0x70, 0x8F, 0xB0, 0xB7, 0x39, 0x8A, 0xD6, 0x0A, 0xC3, 0x7B,
+ 0x81, 0x5E, 0x78, 0x76, 0x2F, 0x89, 0xA2, 0x16, 0x64, 0xC1, 0xC4, 0xB6, 0x77, 0x52, 0x7B, 0xD7,
+ 0xDC, 0x36, 0x12, 0x22, 0x22, 0x73, 0x0B, 0x19, 0xCC, 0x54, 0x47, 0x5B, 0x7D, 0xDD, 0x92, 0x49,
+ 0xB3, 0x39, 0xAF, 0xF9, 0x1D, 0x39, 0x3E, 0xBC, 0xC7, 0xDE, 0x45, 0x58, 0x90, 0x79, 0x9E, 0x6E,
+ 0xCF, 0x57, 0x3C, 0xFF, 0x65, 0x00, 0x60, 0xFB, 0x4F, 0x14, 0x48, 0x08, 0xB4, 0x17, 0xED, 0x46,
+ 0xED, 0x97, 0xF0, 0xA1, 0xFB, 0xA0, 0x78, 0x13, 0xA9, 0xED, 0x15, 0x0C, 0xC7, 0x09, 0x97, 0xAD,
+ 0x64, 0x53, 0xA4, 0xCA, 0xEA, 0x6A, 0x0E, 0x1C, 0xF6, 0x88, 0x2D, 0x08, 0xA1, 0xEB, 0xBA, 0x02,
+ 0x98, 0x2A, 0xBA, 0xCE, 0xEF, 0xA2, 0xE8, 0x91, 0x58, 0xA1, 0x2B, 0x9B, 0x37, 0x9B, 0x86, 0x81,
+ 0xDF, 0x17, 0x4C, 0xC7, 0x93, 0x46, 0x6A, 0xCB, 0x8D, 0x32, 0x74, 0x09, 0xE9, 0xFB, 0x21, 0x64,
+ 0xA7, 0x25, 0x73, 0xF7, 0x50, 0xAA, 0x7B, 0x0A, 0x12, 0x56, 0x7E, 0x62, 0x81, 0x76, 0x93, 0x79,
+ 0x82, 0xA0, 0x84, 0x1C, 0x75, 0xA1, 0x3C, 0x48, 0x6C, 0xE3, 0x10, 0x90, 0x03, 0x24, 0x96, 0xB7,
+ 0xEC, 0x0C, 0x0F, 0x58, 0xD4, 0x15, 0xCD, 0x7E, 0x05, 0x44, 0x62, 0x56, 0xD9, 0xAE, 0xF9, 0x4F,
+ 0x2C, 0x90, 0x7B, 0xCA, 0xE0, 0x79, 0xC9, 0x86, 0x9C, 0x7F, 0x71, 0x77, 0x22, 0x77, 0x77, 0x7B,
+ 0x31, 0x00, 0x1B, 0x7D, 0x19, 0xCE, 0xFE, 0x1D, 0x8A, 0x31, 0x72, 0x5F, 0x30, 0x1F, 0xD3, 0x99,
+ 0x28, 0xE3, 0xF3, 0x8F, 0xA6, 0xEA, 0x32, 0x92, 0xDE, 0xBF, 0xB8, 0xA6, 0x5B, 0x23, 0x63, 0x74,
+ 0xC2, 0x76, 0xE2, 0x00, 0x3B, 0x64, 0xE9, 0xE2, 0x21, 0xEE, 0xE6, 0x38, 0x37, 0xF0, 0xFC, 0xE6,
+ 0xD4, 0x9C, 0xD5, 0xBA, 0xCC, 0xF0, 0x63, 0xBC, 0xD8, 0xD3, 0x94, 0xFE, 0x5A, 0x5F, 0xB3, 0xF6,
+ 0xDA, 0x00, 0x1B, 0x8C, 0xC9, 0xB7, 0xCE, 0x5E, 0xE7, 0x88, 0x5E, 0x09, 0x61, 0x03, 0x0A, 0x1A,
+ 0x6B, 0xB7, 0xE3, 0xB9, 0x75, 0x33, 0x14, 0xE7, 0x21, 0x88, 0xA9, 0xEB, 0x5F, 0x25, 0x0F, 0x77,
+ 0xFC, 0xB2, 0xFF, 0xB1, 0x6A, 0x04, 0x6D, 0x4E, 0xCE, 0xE0, 0x73, 0x83, 0x31, 0xC1, 0x6B, 0xD9,
+ 0xBC, 0x90, 0xA1, 0x14, 0x91, 0xA9, 0x95, 0x71, 0x0F, 0x57, 0x9F, 0x8C, 0xE2, 0x1D, 0x7A, 0x78,
+ 0xF7, 0x10, 0x43, 0xAF, 0x94, 0xBA, 0x21, 0xCC, 0xD9, 0xE4, 0x27, 0x9F, 0xA1, 0x55, 0x62, 0xF4,
+ 0xC5, 0xAD, 0xE6, 0x5C, 0x9D, 0x80, 0x59, 0x2C, 0x69, 0x36, 0x66, 0x97, 0x7A, 0x91, 0x6A, 0xA2,
+ 0x53, 0x8A, 0x5B, 0xC8, 0xE4, 0x34, 0xE7, 0x88, 0xB4, 0x70, 0xF4, 0x8F, 0xB8, 0xBD, 0x3F, 0x77,
+ 0xE4, 0xDD, 0x7E, 0xBB, 0x6D, 0x15, 0xA4, 0x96, 0x07, 0xCD, 0xAC, 0x16, 0x3E, 0x58, 0x2D, 0x89,
+ 0xF8, 0xDC, 0x72, 0x5F, 0x1D, 0xCB, 0xBE, 0x06, 0x71, 0x19, 0xC8, 0xB0, 0xD6, 0x4B, 0x71, 0x32,
+ 0x06, 0xD6, 0x53, 0x23, 0x8D, 0x64, 0x18, 0x99, 0x52, 0x2C, 0x8C, 0xFF, 0x74, 0x04, 0xF5, 0xA5,
+ 0xF2, 0x97, 0xAA, 0x68, 0xC2, 0x52, 0x89, 0x4B, 0x46, 0x77, 0x1C, 0x62, 0xC4, 0x99, 0x7A, 0xE8,
+ 0x83, 0x3F, 0xAC, 0x0B, 0x3F, 0x87, 0xB5, 0x5C, 0x26, 0x6F, 0x90, 0x2E, 0xB9, 0xDB, 0x5A, 0x24,
+ 0xCC, 0x35, 0xAD, 0xE5, 0xE8, 0xA4, 0x75, 0x35, 0x96, 0x79, 0xC7, 0xEF, 0x94, 0x67, 0x8E, 0x4D,
+ 0xA0, 0xD3, 0x10, 0xF3, 0x1A, 0x04, 0x2A, 0x27, 0x99, 0xF0, 0xD0, 0xED, 0x9B, 0x61, 0x6E, 0xE1,
+ 0x29, 0xD1, 0xF1, 0x9A, 0x14, 0x6F, 0xD3, 0xFD, 0xF6, 0x84, 0x11, 0x50, 0x60, 0xF9, 0x4B, 0x3E,
+ 0x6E, 0x3B, 0x2B, 0x42, 0x01, 0x87, 0x4A, 0xAC, 0x15, 0xA2, 0x05, 0xE6, 0xFE, 0x3F, 0x17, 0xE5,
+ 0xB1, 0x94, 0xDB, 0x3F, 0x8D, 0x94, 0x0D, 0xA1, 0x4B, 0x5C, 0xFD, 0xDB, 0xB4, 0x54, 0xDE, 0xC0,
+ 0x65, 0x93, 0xB7, 0xA6, 0x9F, 0xDA, 0x00, 0xBF, 0xE3, 0xD9, 0x35, 0x23, 0xAF, 0x56, 0x49, 0x86,
+ 0xA8, 0xC5, 0x15, 0x41, 0x96, 0xF2, 0x41, 0xBE, 0xC7, 0xF1, 0x9E, 0xB6, 0xBD, 0xF1, 0xB2, 0x86,
+ 0x16, 0xA0, 0x6B, 0xDF, 0x9A, 0x91, 0xB4, 0x43, 0x80, 0x1B, 0x7A, 0xA0, 0x9E, 0x8A, 0x9B, 0x7A,
+ 0xCA, 0xB2, 0x9F, 0x5C, 0x0B, 0x45, 0x2E, 0x6D, 0x7E, 0x43, 0x6F, 0x08, 0x88, 0x80, 0x10, 0x1F,
+ 0xBB, 0x17, 0x2B, 0xB7, 0x0F, 0x4E, 0x43, 0xEA, 0x45, 0x06, 0xBA, 0xC8, 0x01, 0x9C, 0x87, 0xE5,
+ 0x92, 0x87, 0xB7, 0x43, 0x66, 0xE1, 0xAB, 0x9E, 0xF1, 0x8B, 0x07, 0xCC, 0x93, 0x1A, 0xAC, 0x3F,
+ 0xE0, 0x04, 0xF7, 0x1D, 0xDD, 0xC3, 0xD5, 0xAD, 0xD9, 0x26, 0x46, 0xB1, 0x57, 0x12, 0xA1, 0xB7,
+ 0x57, 0xD1, 0x01, 0x5D, 0x39, 0x8B, 0x50, 0x12, 0x78, 0x71, 0x49, 0x0B, 0x9D, 0xC6, 0x5B, 0xC2,
+ 0x1E, 0x1B, 0x3B, 0x44, 0x64, 0x86, 0x4D, 0x72, 0x29, 0x31, 0xA1, 0x64, 0x3B, 0xF6, 0x3A, 0x9C,
+ 0xD1, 0xCE, 0x5F, 0xFD, 0x97, 0x64, 0x8B, 0xBD, 0x43, 0x97, 0x4C, 0xF8, 0xA4, 0xF3, 0x32, 0x88,
+ 0xE1, 0xE8, 0x2C, 0x7E, 0xF8, 0x78, 0xD6, 0x84, 0x63, 0xFF, 0x7F, 0x4C, 0x03, 0x3D, 0x42, 0x08,
+ 0xB7, 0x41, 0x25, 0xC4, 0xE4, 0xFA, 0xA5, 0xE4, 0x8D, 0x78, 0x3A, 0xD0, 0x7F, 0x51, 0xA0, 0xDC,
+ 0xD7, 0x76, 0xBD, 0x11, 0x6E, 0xFD, 0x37, 0xD4, 0x83, 0x75, 0xEA, 0x62, 0x71, 0x30, 0x0C, 0x6F,
+ 0xA3, 0xB9, 0xFA, 0xC2, 0x2C, 0xE9, 0x9D, 0x1C, 0xA8, 0x88, 0x8F, 0x9E, 0xE2, 0xBF, 0x37, 0x34,
+ 0x33, 0xE6, 0x1E, 0xBE, 0xB8, 0x94, 0x88, 0xF5, 0x87, 0xF3, 0x85, 0xC4, 0x4C, 0x22, 0xF2, 0x6B,
+ 0x69, 0x02, 0xF5, 0x3B, 0xC9, 0x3C, 0xB2, 0xC0, 0xCD, 0x45, 0x5D, 0xF8, 0x25, 0xA6, 0xA2, 0xA3,
+ 0x4E, 0x40, 0x5F, 0x82, 0x6E, 0x2D, 0xE2, 0x9C, 0xA1, 0x8D, 0xE5, 0xBF, 0xB9, 0xD8, 0x94, 0x49,
+ 0x3B, 0x88, 0x53, 0x62, 0x3D, 0xF7, 0x93, 0xEA, 0xFC, 0xB0, 0x13, 0x1F, 0x54, 0xD9, 0x66, 0x6E,
+ 0x1B, 0x45, 0xEF, 0x78, 0x58, 0x5D, 0xEE, 0x16, 0x26, 0x0A, 0xC3, 0xBB, 0xC1, 0xAF, 0x8F, 0xFD,
+ 0xDE, 0xAA, 0xBA, 0x34, 0xA8, 0x1E, 0x0C, 0x32, 0x8D, 0x67, 0x6C, 0xC7, 0x58, 0xB9, 0xC0, 0xE1,
+ 0xE3, 0x6D, 0x93, 0x1F, 0x9B, 0x58, 0x96, 0xE9, 0xDD, 0x4A, 0x86, 0x30, 0x4E, 0x8D, 0x22, 0x00,
+ 0x84, 0x05, 0xB9, 0x2B, 0x37, 0x11, 0x68, 0x04, 0x7B, 0xC3, 0xC0, 0xFF, 0x99, 0x01, 0x9D, 0x2B,
+ 0x20, 0x42, 0xB6, 0x70, 0xA8, 0x32, 0x7C, 0x5F, 0x19, 0x22, 0x0F, 0xB4, 0xF2, 0x5A, 0x24, 0x12,
+ 0xD2, 0x50, 0x52, 0xB6, 0x84, 0x23, 0x5C, 0xF1, 0x92, 0xC3, 0xB6, 0xEF, 0x34, 0xAD, 0x39, 0x87,
+ 0x26, 0x39, 0x7E, 0x5C, 0x94, 0x98, 0x08, 0x9F, 0xF4, 0x26, 0x7D, 0x6C, 0x51, 0x97, 0xF2, 0x4B,
+ 0x44, 0x9F, 0xC4, 0x82, 0xBB, 0xD7, 0xEF, 0x30, 0x6E, 0xF4, 0x42, 0x0E, 0x41, 0x5B, 0x66, 0x09,
+ 0x9A, 0x3F, 0x97, 0x8F, 0x04, 0xE6, 0x02, 0x02, 0xCF, 0x46, 0x38, 0xA5, 0x8A, 0x2F, 0x98, 0xAE,
+ 0x36, 0x71, 0xDC, 0x83, 0x13, 0x0B, 0x19, 0x93, 0xB4, 0xDA, 0x8E, 0xD8, 0x15, 0xFF, 0x8C, 0xF6,
+ 0xCB, 0x9D, 0x1B, 0x97, 0xD7, 0x46, 0x40, 0xA5, 0x5F, 0xE9, 0x34, 0x8E, 0x21, 0xFA, 0x0F, 0x04,
+ 0xF5, 0xAE, 0xC5, 0xD6, 0x3D, 0x0F, 0xB0, 0x31, 0xE7, 0x73, 0x87, 0x40, 0xCC, 0xAA, 0x0A, 0x6F,
+ 0x92, 0xDC, 0x9D, 0xE9, 0xA0, 0xE6, 0xE7, 0xD9, 0x2A, 0x1F, 0x89, 0xFF, 0x2C, 0x82, 0xA5, 0x9A,
+ 0x6C, 0xD3, 0x3C, 0x7B, 0x84, 0xF2, 0x80, 0x41, 0x27, 0xFC, 0x05, 0x10, 0x5A, 0xC4, 0x75, 0x5D,
+ 0xEA, 0xD4, 0xC7, 0xED, 0x64, 0x21, 0x1F, 0xB4, 0x8E, 0xFA, 0xAB, 0xFA, 0x3B, 0xC7, 0x3E, 0x46,
+ 0x08, 0x26, 0xA6, 0x98, 0xC5, 0x39, 0xDA, 0x20, 0x5B, 0x7F, 0xBD, 0x43, 0x63, 0x68, 0xCA, 0xF9,
+ 0xE6, 0xEB, 0x9A, 0x67, 0x39, 0x4C, 0x4A, 0x3B, 0x05, 0x3E, 0xDC, 0x4A, 0x8E, 0xE1, 0xC3, 0x0E,
+ 0x97, 0x94, 0x7A, 0x8F, 0x9F, 0xD8, 0x3F, 0x4D, 0x6A, 0x53, 0xDD, 0xEB, 0x71, 0x17, 0xBF, 0xC6,
+ 0x8C, 0xE6, 0xFD, 0x33, 0xD9, 0xD5, 0x37, 0xFD, 0x84, 0xC0, 0x26, 0xC4, 0x73, 0x81, 0xAA, 0x79,
+ 0xB6, 0x2E, 0x87, 0xA5, 0xF7, 0x02, 0x6D, 0x55, 0x79, 0x3D, 0xA2, 0x5C, 0x60, 0x59, 0x30, 0x6F,
+ 0x44, 0x84, 0x44, 0x26, 0x78, 0x22, 0xCF, 0xDB, 0xA5, 0x10, 0xFE, 0xA4, 0x5D, 0x30, 0xA9, 0x79,
+ 0xB4, 0xF8, 0x84, 0xE2, 0x73, 0xF0, 0xF1, 0x9B, 0x93, 0xA7, 0xAE, 0x81, 0xA2, 0x83, 0xD3, 0x94,
+ 0x06, 0x7B, 0x67, 0x2C, 0x65, 0x0C, 0x9E, 0xA9, 0xCC, 0xFF, 0x2B, 0x55, 0xDF, 0x3C, 0xE8, 0xAA,
+ 0x1D, 0x56, 0x54, 0xDD, 0x4A, 0xF3, 0x32, 0x48, 0x56, 0xFA, 0xFB, 0x07, 0xEA, 0x8A, 0x6A, 0x70,
+ 0x0C, 0xA2, 0x47, 0xB7, 0xA2, 0xC3, 0x22, 0xCD, 0x30, 0x5F, 0x93, 0x1F, 0x5A, 0x79, 0x34, 0x7A,
+ 0xEB, 0x9B, 0x33, 0x91, 0xCB, 0x24, 0x40, 0xFE, 0x49, 0xEE, 0x5F, 0x44, 0x57, 0x46, 0x81, 0x88,
+ 0x78, 0xF5, 0xBB, 0x7E, 0x83, 0x53, 0x24, 0x79, 0x4A, 0xAD, 0x5E, 0xC7, 0x8A, 0x0B, 0x39, 0x20,
+ 0x58, 0x18, 0x3E, 0xFD, 0x50, 0xE2, 0xD6, 0x4C, 0x40, 0xDF, 0xA9, 0xFF, 0xDE, 0xB2, 0x2C, 0xAA,
+ 0x47, 0x8F, 0x4C, 0xE3, 0xCA, 0x9E, 0xBF, 0xB8, 0x2E, 0x92, 0x98, 0x3E, 0x77, 0xBE, 0xA1, 0x1E,
+ 0xAF, 0x09, 0xCE, 0x37, 0x88, 0xDD, 0x96, 0xAF, 0xDD, 0x52, 0x1E, 0x29, 0xC2, 0x03, 0xED, 0xC0,
+ 0xB0, 0x2E, 0xF9, 0x58, 0x33, 0x83, 0x12, 0xF9, 0x13, 0x68, 0x8E, 0x59, 0x37, 0x7E, 0xCB, 0x60,
+ 0x2A, 0x06, 0x5A, 0x7A, 0xF1, 0x96, 0xCE, 0x5D, 0xA9, 0xB3, 0x84, 0xF9, 0x95, 0x6B, 0x43, 0x29,
+ 0x04, 0x9E, 0x0A, 0x6D, 0x49, 0xF9, 0x61, 0x05, 0xE7, 0xC1, 0x52, 0xC9, 0x87, 0x31, 0x4E, 0xF2,
+ 0x45, 0x05, 0x4A, 0x13, 0xEF, 0xD5, 0xAC, 0xBF, 0xC3, 0x32, 0xF5, 0x67, 0x7C, 0x9A, 0x54, 0x47,
+ 0x4E, 0x4F, 0x7F, 0xFA, 0xA5, 0x84, 0x6A, 0xA5, 0xED, 0x11, 0x3B, 0xD1, 0xEB, 0x01, 0xDB, 0x2E,
+ 0x09, 0xDB, 0x9A, 0x19, 0x97, 0xCB, 0xB5, 0x08, 0x92, 0x17, 0x50, 0x7C, 0xA6, 0xF9, 0xF6, 0xC3,
+ 0x33, 0x5F, 0xF3, 0x3B, 0xE9, 0xD0, 0xD3, 0x68, 0x4C, 0x92, 0x34, 0x8B, 0xC9, 0xEE, 0xD1, 0x37,
+ 0x99, 0x93, 0x43, 0xFF, 0x7A, 0x1F, 0xA7, 0xCE, 0x76, 0x89, 0xBB, 0xA5, 0xC5, 0x8B, 0xAA, 0xFE,
+ 0xD2, 0xDB, 0x68, 0x18, 0xCA, 0xC3, 0xE5, 0x81, 0x32, 0x13, 0x39, 0xA3, 0xBA, 0x7B, 0x67, 0x14,
+ 0xA1, 0x99, 0x22, 0x26, 0xE7, 0x12, 0xB3, 0xD0, 0x2E, 0xF1, 0x55, 0xAE, 0xB6, 0x3E, 0xA8, 0x5E,
+ 0x49, 0x1C, 0x52, 0xFA, 0xB5, 0x25, 0x1A, 0x06, 0x2C, 0x1E, 0xF2, 0xE1, 0x0C, 0xA5, 0x23, 0x65,
+ 0x8F, 0x18, 0x13, 0x7F, 0x21, 0x2D, 0xD5, 0xDE, 0xCD, 0xAE, 0xF7, 0xCD, 0x3D, 0x48, 0x16, 0x06,
+ 0xD1, 0x42, 0xE6, 0x27, 0xE0, 0x56, 0xE4, 0xB6, 0x4B, 0x11, 0x16, 0x9D, 0xB9, 0x42, 0xD6, 0x33,
+ 0x54, 0x10, 0x8E, 0x22, 0xA5, 0x74, 0x53, 0x33, 0x21, 0x11, 0xC2, 0x52, 0x1D, 0x4D, 0x99, 0xF0,
+ 0x5D, 0x88, 0x0B, 0xFE, 0x8F, 0x04, 0xC1, 0xD9, 0x5E, 0xC6, 0x95, 0xEF, 0x63, 0x62, 0xCC, 0xFF,
+ 0xE3, 0x38, 0x45, 0xB8, 0xC9, 0x6B, 0x57, 0x7F, 0xEE, 0xA2, 0xB9, 0x97, 0xB7, 0xF0, 0x7B, 0x90,
+ 0x91, 0xD0, 0x02, 0x93, 0xB8, 0x67, 0xB8, 0xBD, 0xF3, 0xBB, 0x19, 0xD5, 0xFB, 0x9B, 0x48, 0xFE,
+ 0x25, 0x60, 0x32, 0xD3, 0xA5, 0xE1, 0xF3, 0x55, 0xB9, 0x1C, 0x51, 0x84, 0x2F, 0x23, 0x01, 0xDC,
+ 0x10, 0x73, 0x00, 0x8A, 0xE5, 0x5C, 0x6F, 0x07, 0x25, 0xA0, 0x21, 0x15, 0xA6, 0xAD, 0xE4, 0xDE,
+ 0x69, 0xFE, 0xF0, 0x5D, 0xB6, 0x0D, 0xF8, 0xFB, 0x3E, 0x54, 0xC5, 0xEB, 0x70, 0x77, 0x7B, 0x23,
+ 0x67, 0x6A, 0x3B, 0xE3, 0xF5, 0xB8, 0xD0, 0xCE, 0x41, 0x18, 0x5B, 0x36, 0x81, 0x90, 0x6A, 0x76,
+ 0xCA, 0x5A, 0xCC, 0xAE, 0xF5, 0x50, 0xDE, 0x36, 0x91, 0x52, 0x07, 0x10, 0x7B, 0x5A, 0x19, 0x98,
+ 0x2E, 0x8F, 0x05, 0x1F, 0x19, 0xFF, 0xA4, 0x9F, 0xC0, 0xBF, 0x65, 0xE0, 0xDA, 0xD4, 0xFC, 0xC7,
+ 0xD7, 0xD3, 0xB9, 0xBB, 0x43, 0x41, 0x2D, 0x55, 0xD8, 0xCD, 0xFD, 0x8D, 0xDD, 0x15, 0x3E, 0x28,
+ 0xB1, 0x96, 0xB5, 0x77, 0x2C, 0xD1, 0x87, 0x36, 0xD8, 0x88, 0xDF, 0x3C, 0xA6, 0x94, 0xDE, 0x0A,
+ 0x71, 0xC7, 0xCB, 0x75, 0x74, 0x31, 0xC8, 0xBA, 0xF3, 0xD8, 0x63, 0x8C, 0x54, 0xC3, 0xC6, 0x74,
+ 0x1C, 0x39, 0x2F, 0xAF, 0x31, 0x41, 0x02, 0x4D, 0xE6, 0x3A, 0x00, 0x27, 0x69, 0x88, 0x71, 0xA2,
+ 0x8D, 0x2B, 0x04, 0xEB, 0x9C, 0xDF, 0xF6, 0x18, 0x4C, 0xDF, 0x9D, 0xB8, 0xE6, 0x18, 0x92, 0xB6,
+ 0xA0, 0x47, 0x3B, 0xC2, 0x42, 0x65, 0xE0, 0xBF, 0x5E, 0x3E, 0x5C, 0x37, 0x4F, 0xA8, 0xD6, 0x36,
+ 0xBA, 0x2A, 0x9D, 0x52, 0xC8, 0x76, 0xFC, 0x59, 0x46, 0xA5, 0x4F, 0xE8, 0x47, 0xCC, 0x2A, 0x64,
+ 0x0A, 0x20, 0x14, 0x13, 0x76, 0xC8, 0x60, 0x5C, 0x55, 0x35, 0xEF, 0x9F, 0x1F, 0x29, 0xBB, 0x55,
+ 0xEC, 0xE1, 0x37, 0x61, 0x57, 0x7A, 0x9C, 0xCC, 0xCB, 0x62, 0x9F, 0x03, 0xCC, 0x2F, 0xAF, 0xDC,
+ 0x64, 0x7E, 0x75, 0xCC, 0x6B, 0x84, 0xCB, 0x99, 0x8A, 0x70, 0x13, 0x47, 0xC8, 0x4C, 0xAB, 0x75,
+ 0x7C, 0x33, 0xBD, 0x26, 0x12, 0x1F, 0xE9, 0x35, 0x5D, 0x57, 0x0D, 0xFF, 0x7F, 0x11, 0xEA, 0xD1,
+ 0x0F, 0xBA, 0xF7, 0x9C, 0xF0, 0x54, 0xD8, 0xB5, 0x95, 0x96, 0xD9, 0x33, 0x3D, 0x43, 0xDE, 0xDA,
+ 0x3A, 0x96, 0x71, 0xB3, 0xF2, 0x70, 0xB7, 0x80, 0x9E, 0xA9, 0x7D, 0x1A, 0x9A, 0x41, 0x7D, 0x67,
+ 0x74, 0xF6, 0x4B, 0x09, 0x03, 0x82, 0x4B, 0xED, 0x77, 0xC8, 0x0E, 0x25, 0x15, 0x3D, 0x8E, 0x6F,
+ 0xA6, 0xCD, 0x26, 0x18, 0x58, 0x5E, 0x85, 0x60, 0xFF, 0xDD, 0x56, 0xF7, 0x6F, 0xC0, 0x9F, 0x2A,
+ 0x36, 0x0A, 0xAA, 0x1B, 0xE4, 0x75, 0x2C, 0x9C, 0xD4, 0x6A, 0x27, 0xC5, 0x34, 0xBC, 0xA3, 0x83,
+ 0xED, 0xDD, 0xB3, 0xD2, 0xB0, 0x8F, 0xC6, 0x73, 0x9E, 0x86, 0xF4, 0xD0, 0x6A, 0xE2, 0x9D, 0xE7,
+ 0xCD, 0x05, 0x92, 0xFC, 0x0F, 0xFE, 0x28, 0x71, 0xCB, 0x0F, 0x73, 0x2A, 0xCE, 0x75, 0xBF, 0xFD,
+ 0xFA, 0xF8, 0x4B, 0x3B, 0x2F, 0x2E, 0x35, 0xF0, 0xDD, 0x41, 0x1B, 0xC5, 0xFA, 0x76, 0x3F, 0x92,
+ 0x38, 0x82, 0xDD, 0x49, 0x5A, 0x2B, 0x86, 0xB6, 0x6C, 0x19, 0x20, 0x93, 0xB5, 0x14, 0xDD, 0x52,
+ 0xC9, 0x4C, 0xF0, 0x38, 0x3B, 0xCB, 0xE8, 0x97, 0x13, 0x01, 0xAA, 0x40, 0x26, 0x66, 0xDF, 0xE2,
+ 0x6E, 0xF4, 0x10, 0x16, 0xFC, 0xBE, 0xDB, 0xBF, 0x27, 0xAD, 0xFF, 0xFA, 0x97, 0x70, 0x71, 0x39,
+ 0x7F, 0x64, 0x91, 0xF9, 0x3C, 0xCA, 0xA3, 0x43, 0xB9, 0x74, 0x72, 0x4E, 0x70, 0x7A, 0xA2, 0xD4,
+ 0x20, 0x9C, 0x73, 0xCF, 0x33, 0xD8, 0xF2, 0x2A, 0x40, 0x05, 0x92, 0x66, 0xEB, 0x47, 0x0F, 0x48,
+ 0xE5, 0x81, 0x6A, 0x19, 0x97, 0xB9, 0x10, 0x92, 0x58, 0x59, 0x3D, 0xA4, 0x9D, 0x51, 0xD5, 0x09,
+ 0x7A, 0x98, 0xB8, 0xCA, 0x53, 0x56, 0x96, 0x3D, 0x97, 0x8F, 0x3E, 0x88, 0x2D, 0xFF, 0x0F, 0xE3,
+ 0x1D, 0xA7, 0x3F, 0xBD, 0x84, 0x14, 0x68, 0x38, 0x4F, 0x9B, 0x78, 0x8F, 0xA8, 0x73, 0x21, 0xA4,
+ 0x97, 0x31, 0x1B, 0xBE, 0x47, 0x13, 0x4C, 0x0E, 0x1C, 0x24, 0xA3, 0xAE, 0x9E, 0x58, 0x3B, 0x4C,
+ 0xCD, 0x7B, 0xA7, 0x83, 0x81, 0x28, 0x76, 0x05, 0x90, 0xB4, 0x7B, 0xA2, 0xF8, 0xDC, 0x51, 0x06,
+ 0xC5, 0xCF, 0x39, 0xA2, 0xE2, 0x7F, 0x6D, 0x28, 0x2D, 0x74, 0xED, 0x6F, 0x56, 0x27, 0xA9, 0xC5,
+ 0xB0, 0x88, 0xBF, 0x40, 0x24, 0x05, 0x1C, 0xF3, 0x02, 0x7C, 0x1B, 0xE9, 0x8A, 0x26, 0xD9, 0xCE,
+ 0xC8, 0x51, 0x86, 0xE8, 0x77, 0x20, 0xE7, 0x08, 0x87, 0xB2, 0x70, 0xA7, 0xE8, 0x01, 0xAF, 0xE3,
+ 0x64, 0xF2, 0x5F, 0x9C, 0x33, 0x04, 0xFC, 0x08, 0xD1, 0x00, 0xC6, 0xF1, 0xF1, 0xD1, 0x0F, 0x3D,
+ 0x0B, 0x4B, 0xC4, 0xE5, 0xC0, 0x4D, 0x4E, 0x0D, 0xA1, 0x50, 0x79, 0x7F, 0x9D, 0x54, 0x55, 0x02,
+ 0x35, 0x23, 0x99, 0x1E, 0xB5, 0x1A, 0xBE, 0x7D, 0x56, 0x12, 0xCA, 0x2E, 0x3B, 0x04, 0x9D, 0x18,
+ 0x2C, 0x74, 0xB3, 0x6B, 0x9C, 0x16, 0xA2, 0xFC, 0x93, 0x81, 0x48, 0x9F, 0xB6, 0x53, 0xC8, 0xF3,
+ 0xDE, 0x4D, 0x8C, 0x20, 0xD9, 0x41, 0x82, 0x51, 0xFB, 0xCA, 0xF1, 0x57, 0x6B, 0xA4, 0x6F, 0x44,
+ 0xBA, 0x69, 0xE2, 0x48, 0x78, 0x89, 0x11, 0x00, 0x3F, 0x9E, 0xBC, 0x8F, 0xB9, 0xA5, 0x54, 0xA8,
+ 0xD8, 0x3E, 0xA2, 0x34, 0xA9, 0xB1, 0xF6, 0x86, 0x55, 0x9B, 0x83, 0xE8, 0x94, 0x69, 0x31, 0x85,
+ 0x34, 0x63, 0x51, 0x4F, 0x71, 0x67, 0xD0, 0x44, 0x6B, 0xAB, 0x91, 0xF1, 0x61, 0x7E, 0x4C, 0x53,
+ 0xE8, 0xD3, 0x7D, 0x40, 0xBF, 0x45, 0x4A, 0xDF, 0x0E, 0xEF, 0x84, 0x7F, 0xC8, 0x74, 0xC3, 0xC1,
+ 0x6C, 0x8D, 0xE1, 0x23, 0xFD, 0x18, 0x55, 0x23, 0x4B, 0xD9, 0xF9, 0x1B, 0x5C, 0xE4, 0xC4, 0x2C,
+ 0x45, 0xAB, 0xBC, 0xF1, 0x1C, 0x19, 0xBD, 0x3C, 0x24, 0x37, 0x44, 0x6E, 0x26, 0x62, 0x78, 0x51,
+ 0x4F, 0x79, 0x4C, 0xC5, 0x7D, 0x99, 0xF3, 0x0C, 0x46, 0x24, 0x03, 0x14, 0x63, 0xAA, 0x20, 0x80,
+ 0x90, 0x6A, 0x69, 0x4B, 0xE7, 0xA8, 0xB4, 0xAF, 0xEA, 0x7D, 0xFB, 0xD9, 0x49, 0xC1, 0xD5, 0x05,
+ 0x56, 0x55, 0x43, 0xD1, 0x9B, 0x8F, 0xBF, 0x6B, 0xE7, 0xEB, 0x60, 0x4B, 0xA2, 0x0F, 0x1D, 0x73,
+ 0x9B, 0xBB, 0x0C, 0xE1, 0x23, 0x58, 0xFE, 0xC7, 0xA4, 0x69, 0xCB, 0x2D, 0x9E, 0xA8, 0xF7, 0xC8,
+ 0x49, 0x5F, 0x84, 0x22, 0x1C, 0xC5, 0x5B, 0x6F, 0x74, 0x08, 0xC4, 0x7B, 0x9F, 0xAF, 0xB8, 0xC8,
+ 0x1F, 0xC9, 0xBD, 0xC4, 0x7E, 0xF3, 0x28, 0xBA, 0xD2, 0xC2, 0x81, 0x78, 0xF7, 0xC3, 0xFC, 0x9B,
+ 0x5D, 0x66, 0xDC, 0x5F, 0x1F, 0x83, 0x63, 0x27, 0x55, 0xDF, 0x71, 0xA1, 0xCB, 0x41, 0x9D, 0x3C,
+ 0x29, 0xAA, 0x50, 0x5A, 0xDE, 0x01, 0xC9, 0x6B, 0xD6, 0x11, 0x14, 0x9F, 0x73, 0xCE, 0x59, 0x22,
+ 0xA9, 0xA2, 0xA0, 0x4E, 0xF4, 0x72, 0xAE, 0x09, 0xF7, 0x5D, 0xB7, 0xE8, 0x55, 0x38, 0xB2, 0xCF,
+ 0x1E, 0x69, 0x7E, 0xF4, 0x66, 0xEC, 0x2B, 0x0A, 0xA1, 0x14, 0xB8, 0x3B, 0xB6, 0xEC, 0x93, 0xE0,
+ 0x2F, 0xF4, 0xB7, 0xFA, 0xE2, 0x0D, 0x75, 0x78, 0xB1, 0xC7, 0xB2, 0xD3, 0xDD, 0x0D, 0xD3, 0x54,
+ 0xE0, 0xDC, 0x4C, 0x25, 0x7C, 0xED, 0xB3, 0x2E, 0xE0, 0x7F, 0x5F, 0xFF, 0xC1, 0x08, 0x95, 0x12,
+ 0x09, 0xCF, 0x97, 0x52, 0x59, 0xFC, 0xDF, 0x18, 0xDA, 0x8A, 0xD9, 0x23, 0x08, 0xAB, 0x84, 0x0B,
+ 0x42, 0x0C, 0xCA, 0xE4, 0xB3, 0xD9, 0x6B, 0xDE, 0x25, 0xFC, 0x61, 0x1A, 0x7F, 0xE3, 0x49, 0xBB,
+ 0xAD, 0x1A, 0xA9, 0xDE, 0xDD, 0xA2, 0x19, 0x34, 0x62, 0x2E, 0x0A, 0x30, 0xD4, 0x43, 0x67, 0xF8,
+ 0x3B, 0x07, 0x22, 0x86, 0x3A, 0x61, 0xA7, 0x7B, 0xB3, 0x36, 0x98, 0xBD, 0xFA, 0x6F, 0xC6, 0x06,
+ 0x24, 0x7F, 0x77, 0x8F, 0x69, 0x69, 0x30, 0x08, 0xE2, 0xA4, 0xA0, 0x88, 0xDC, 0xFD, 0xEA, 0xB9,
+ 0x2A, 0x4A, 0xB3, 0x1E, 0xAF, 0x43, 0x9D, 0x00, 0xAA, 0xF3, 0x6A, 0xCF, 0xBE, 0xA1, 0xBB, 0x21,
+ 0x02, 0x18, 0x6D, 0x00, 0x75, 0xA8, 0x93, 0x27, 0x91, 0xEB, 0x8D, 0xF0, 0x8A, 0x3F, 0xF7, 0x61,
+ 0x95, 0x19, 0x9A, 0x17, 0x38, 0x39, 0xEA, 0x22, 0x60, 0xD0, 0x57, 0xCC, 0x6B, 0xDB, 0x70, 0xB6,
+ 0x32, 0xE2, 0xFD, 0x4F, 0x4F, 0x03, 0x8B, 0xBB, 0x08, 0x3F, 0x39, 0xB1, 0x4B, 0x99, 0x50, 0x8F,
+ 0x7D, 0xF3, 0xE9, 0x03, 0xD9, 0xFA, 0x4B, 0xD1, 0x1C, 0x24, 0x6E, 0xEB, 0xB2, 0x25, 0xE8, 0x4F,
+ 0xD7, 0xEC, 0xC8, 0x9E, 0xBC, 0x18, 0x2D, 0x89, 0x13, 0xB7, 0xEF, 0x34, 0x4A, 0x07, 0x99, 0xC0,
+ 0x5E, 0xBA, 0x66, 0x44, 0xB5, 0xFD, 0xD4, 0xFC, 0xF9, 0xEE, 0x2E, 0xA1, 0x2C, 0x9F, 0x67, 0x9A,
+ 0x06, 0xD0, 0x92, 0x10, 0xA1, 0xDA, 0x40, 0xAA, 0xEF, 0x7A, 0x36, 0xB6, 0xEB, 0xB5, 0x93, 0xB9,
+ 0x1A, 0x44, 0xF3, 0x49, 0xC1, 0xE2, 0x5A, 0xB9, 0x44, 0xFA, 0x52, 0xF8, 0xBF, 0xA6, 0x2E, 0x30,
+ 0x0C, 0x81, 0x59, 0x3B, 0xAD, 0xE1, 0x77, 0x73, 0xF9, 0x4D, 0xE2, 0x0C, 0xA4, 0x67, 0x7E, 0x5C,
+ 0xF8, 0xB6, 0x97, 0x57, 0x38, 0x2C, 0xE6, 0xE1, 0xA1, 0x9F, 0x72, 0xFF, 0xC4, 0xFA, 0xDD, 0xFD,
+ 0x13, 0x8A, 0x5F, 0xBD, 0xE3, 0xA8, 0x86, 0xA5, 0x07, 0x7C, 0xEB, 0xF0, 0xFF, 0xF7, 0x84, 0x38,
+ 0x31, 0xE1, 0xCB, 0xC8, 0xF5, 0x98, 0x9E, 0xDA, 0x12, 0x4D, 0xB6, 0x17, 0x69, 0xE9, 0xC3, 0xAB,
+ 0x66, 0x73, 0xA3, 0xD5, 0xFA, 0x2F, 0x16, 0x81, 0x37, 0x0F, 0xD5, 0xA8, 0xE3, 0x65, 0xC2, 0xEF,
+ 0x9A, 0x0E, 0x04, 0xFB, 0xA3, 0x58, 0xF0, 0xF2, 0xEE, 0x29, 0xD3, 0x32, 0xA6, 0x15, 0x5C, 0xC6,
+ 0x7F, 0x6B, 0xBE, 0x71, 0x29, 0x4B, 0x5C, 0xBA, 0xAA, 0x67, 0x3A, 0x5C, 0x4F, 0xAC, 0x0F, 0x57,
+ 0xB1, 0x71, 0xB6, 0x89, 0x91, 0x39, 0x8E, 0x8E, 0x1B, 0x81, 0xC7, 0x8A, 0x3D, 0xF4, 0x7C, 0x33,
+ 0x4D, 0xD2, 0x95, 0x5D, 0xFF, 0xE4, 0xC0, 0xB1, 0x27, 0x10, 0xBB, 0x7D, 0x03, 0x87, 0x2E, 0xA3,
+ 0x22, 0x23, 0xBE, 0x7D, 0x8A, 0xE2, 0xF5, 0x3C, 0x67, 0xBD, 0xB9, 0xA6, 0x3D, 0x23, 0x1E, 0x3E,
+ 0xCF, 0xA0, 0x81, 0x41, 0xDC, 0x80, 0x00, 0x61, 0x73, 0x0D, 0x8C, 0x52, 0x00, 0xE1, 0xA8, 0xC2,
+ 0xD2, 0x4A, 0x13, 0xF5, 0x1A, 0x19, 0x37, 0x3D, 0x10, 0x0D, 0x8F, 0x61, 0x32, 0x89, 0x2D, 0x52,
+ 0x3C, 0x26, 0x4C, 0x81, 0x2B, 0xD5, 0x17, 0xD6, 0x64, 0x0A, 0x18, 0xC6, 0xD4, 0x0E, 0x13, 0xD3,
+ 0xD6, 0x40, 0x5F, 0xCC, 0x8B, 0xD3, 0xCC, 0x69, 0x9A, 0xAF, 0x46, 0x74, 0x4D, 0xDD, 0x2E, 0x23,
+ 0x59, 0xDF, 0xB1, 0x1A, 0x9F, 0xCE, 0x85, 0xB7, 0xED, 0xC6, 0x80, 0x78, 0x33, 0x88, 0xC9, 0xAA,
+ 0x21, 0x13, 0x81, 0x4A, 0x26, 0x7F, 0x94, 0xE1, 0x3C, 0xF6, 0x8A, 0xAC, 0x75, 0x05, 0xDB, 0xCB,
+ 0x12, 0x7C, 0x67, 0x67, 0x04, 0xCC, 0x33, 0x7F, 0x43, 0xD1, 0x9C, 0x0E, 0xF0, 0x50, 0xCD, 0x48,
+ 0x7C, 0xA6, 0x75, 0x9A, 0xBA, 0x3A, 0xC2, 0x5C, 0xCE, 0x70, 0xEE, 0xF9, 0xEA, 0xDA, 0x1D, 0x03,
+ 0x72, 0x69, 0x10, 0xAC, 0x34, 0x5B, 0xDA, 0xE6, 0x6D, 0x92, 0x5A, 0x62, 0x9A, 0x90, 0x86, 0xA9,
+ 0x07, 0x8A, 0xA2, 0x02, 0xF8, 0x1C, 0xAB, 0x6E, 0x7D, 0xD4, 0xAC, 0x7B, 0x27, 0x91, 0x7B, 0x0D,
+ 0x20, 0xE0, 0xAC, 0x34, 0xCB, 0x74, 0xFB, 0x26, 0xD7, 0x15, 0x14, 0x49, 0x10, 0xEF, 0xEB, 0xDE,
+ 0x7A, 0x73, 0x57, 0x5B, 0xE4, 0x5A, 0xC1, 0x6A, 0x4F, 0x77, 0xCC, 0xD3, 0x2E, 0x6B, 0xD4, 0xA9,
+ 0xCD, 0xF7, 0x78, 0x31, 0x50, 0x97, 0x21, 0x47, 0x08, 0xF1, 0x89, 0xED, 0x94, 0x48, 0x5D, 0x16,
+ 0xAA, 0x6E, 0x21, 0x2B, 0xEB, 0xFE, 0xDF, 0x08, 0x05, 0xE9, 0xCF, 0x06, 0xDB, 0xC4, 0x6C, 0x6C,
+ 0x97, 0x20, 0x7D, 0x71, 0xF2, 0xAE, 0x45, 0x5E, 0x3D, 0x8B, 0x25, 0x44, 0x8F, 0xF0, 0x01, 0x78,
+ 0x52, 0x4F, 0xA9, 0x6E, 0x1E, 0xCE, 0xA7, 0x1C, 0x63, 0x63, 0x8A, 0x8B, 0x78, 0xE6, 0xD2, 0x86,
+ 0x0D, 0x8C, 0x01, 0x7B, 0xD6, 0x91, 0xA6, 0xFA, 0x82, 0xA5, 0x0B, 0x39, 0xE5, 0x12, 0x3C, 0x2A,
+ 0x6F, 0x89, 0x95, 0xDB, 0x11, 0x75, 0x41, 0xBA, 0xE3, 0x81, 0x34, 0xFF, 0xE9, 0xDE, 0x6B, 0xC6,
+ 0x9B, 0x02, 0x97, 0x06, 0x96, 0x5A, 0x15, 0x2C, 0xB0, 0x3D, 0xFF, 0xD6, 0xCE, 0xE4, 0x47, 0xE3,
+ 0x69, 0x7D, 0xAF, 0x13, 0x93, 0x6E, 0x35, 0x84, 0x44, 0xF4, 0x46, 0xA9, 0x2F, 0x13, 0x07, 0xA3,
+ 0xBC, 0xE8, 0x2E, 0xD3, 0x43, 0xC7, 0xF9, 0xAB, 0x8D, 0xF4, 0xCE, 0xB5, 0x3A, 0xE3, 0x40, 0xE3,
+ 0x82, 0x0F, 0x45, 0x5F, 0x01, 0x64, 0x09, 0x6B, 0x9E, 0x45, 0x7D, 0x31, 0xFC, 0xB3, 0x80, 0x70,
+ 0x7F, 0x69, 0x45, 0x0E, 0x27, 0xE6, 0x50, 0xAC, 0x5D, 0x5B, 0xC7, 0x3A, 0x81, 0xB6, 0x01, 0x82,
+ 0xD3, 0xD3, 0xCA, 0xF8, 0x61, 0xC8, 0x4B, 0xC5, 0xE3, 0xC7, 0x71, 0x00, 0x30, 0x66, 0x20, 0x02,
+ 0xE1, 0xE3, 0xF8, 0x73, 0x25, 0x77, 0x08, 0xB9, 0xAE, 0x7B, 0xD7, 0x0A, 0x20, 0xB8, 0xF2, 0xFA,
+ 0x2C, 0x81, 0x45, 0x99, 0xBA, 0x87, 0x49, 0x7D, 0x03, 0x19, 0x7C, 0x43, 0x7D, 0x1F, 0x48, 0x56,
+ 0xF8, 0xBC, 0xB3, 0x39, 0xFD, 0xF7, 0x44, 0x2A, 0x16, 0x26, 0xB4, 0x9D, 0xC3, 0x1D, 0x74, 0xF0,
+ 0x27, 0x11, 0xF8, 0x24, 0xAA, 0x33, 0x03, 0x54, 0x29, 0x07, 0x4C, 0x04, 0x0B, 0x76, 0x6F, 0x2C,
+ 0xDB, 0xAE, 0x57, 0x48, 0x9E, 0x27, 0xE2, 0x87, 0x15, 0x45, 0x4E, 0x09, 0xF7, 0x53, 0xCA, 0x61,
+ 0xF2, 0xF0, 0xC8, 0x9D, 0x00, 0x0A, 0x0A, 0x6D, 0x2D, 0x62, 0xF3, 0x34, 0x14, 0xD5, 0x99, 0xBD,
+ 0x83, 0xCA, 0x8A, 0x95, 0x18, 0x7C, 0x67, 0xC8, 0xCE, 0x5A, 0x26, 0xFA, 0x6D, 0xC9, 0x21, 0x41,
+ 0x5F, 0x89, 0xEF, 0x5C, 0xDF, 0x22, 0xFD, 0x4F, 0x86, 0xC4, 0x33, 0xAA, 0x28, 0xC3, 0x7C, 0x96,
+ 0x98, 0x1D, 0x59, 0x8D, 0x7E, 0x93, 0xC2, 0xAA, 0x56, 0x4E, 0x05, 0xBA, 0x7C, 0xBA, 0x04, 0x65,
+ 0x57, 0xD5, 0xD4, 0x03, 0x46, 0x13, 0x04, 0xBE, 0x85, 0x02, 0xE8, 0x02, 0xE9, 0xBF, 0xC7, 0xC6,
+ 0x1E, 0xD3, 0xDC, 0xBB, 0xCD, 0x20, 0x19, 0xF4, 0xBE, 0xA3, 0x00, 0x49, 0x50, 0x8F, 0xF2, 0xF6,
+ 0xA9, 0x6E, 0xDA, 0x72, 0x39, 0xF8, 0x9C, 0xE8, 0x98, 0xF6, 0x0F, 0xFB, 0x95, 0x5B, 0x96, 0x92,
+ 0xEA, 0x56, 0x1A, 0x56, 0x04, 0xFD, 0xD4, 0x8A, 0xA4, 0x35, 0xC6, 0x43, 0x46, 0xF6, 0x42, 0xE5,
+ 0x9E, 0x8D, 0x6B, 0x6B, 0x8D, 0x6B, 0x7E, 0x6E, 0xE2, 0x50, 0xA3, 0x9C, 0xFF, 0x79, 0xDD, 0x6E,
+ 0xFE, 0xE7, 0x6C, 0x44, 0x4D, 0xF8, 0xEC, 0xDB, 0x76, 0xEC, 0x73, 0xE8, 0x06, 0x18, 0xBD, 0x58,
+ 0xA8, 0x48, 0xBD, 0xC6, 0x47, 0xD5, 0x9F, 0x5C, 0xC0, 0x30, 0x36, 0x82, 0xC9, 0x74, 0xA1, 0xB5,
+ 0xB5, 0xD3, 0x23, 0x8A, 0x88, 0xF6, 0x24, 0x6F, 0x6E, 0x4A, 0x3A, 0xEA, 0x5E, 0x88, 0x06, 0xE0,
+ 0x22, 0xDB, 0x01, 0x78, 0x52, 0x43, 0x5D, 0xA5, 0x40, 0x7A, 0xE0, 0x0C, 0x40, 0x6C, 0x4A, 0x01,
+ 0x93, 0x19, 0x0D, 0x24, 0x04, 0xB7, 0x87, 0x38, 0x8A, 0x67, 0x17, 0x3D, 0xDD, 0x4A, 0xCE, 0xE7,
+ 0x9D, 0x1B, 0xB9, 0x50, 0x59, 0x2E, 0x2A, 0x18, 0x2A, 0x95, 0xDD, 0x9D, 0x37, 0x16, 0x54, 0xCE,
+ 0x1A, 0x9C, 0xE3, 0xFD, 0xC1, 0x83, 0xAE, 0x7C, 0x55, 0x44, 0xBD, 0x32, 0x99, 0xF4, 0xB7, 0x96,
+ 0x8C, 0x25, 0x4C, 0x12, 0x78, 0x3F, 0x10, 0x8E, 0x36, 0xCB, 0x2F, 0xEF, 0xF8, 0xD8, 0xD1, 0x6A,
+ 0xBE, 0x41, 0x40, 0x4B, 0x54, 0xEF, 0x68, 0x18, 0xA7, 0x55, 0x6E, 0xB0, 0x0A, 0x1C, 0x7A, 0xA7,
+ 0xF5, 0x48, 0x23, 0x10, 0x11, 0xA9, 0xDC, 0x56, 0x58, 0xD9, 0xD6, 0xA9, 0x31, 0x54, 0xE4, 0xD0,
+ 0xBB, 0x54, 0x67, 0x3D, 0xDC, 0xEA, 0xC0, 0x47, 0x6A, 0x65, 0x55, 0x0E, 0xEF, 0xD0, 0xE8, 0x49,
+ 0x4F, 0x51, 0x1F, 0xED, 0xF6, 0x72, 0x51, 0x6E, 0x25, 0xA8, 0xC5, 0x14, 0xE1, 0x4D, 0x9F, 0x1B,
+ 0xB1, 0x59, 0x0A, 0x9A, 0x41, 0x1B, 0xF7, 0xC3, 0x09, 0x57, 0x81, 0xD6, 0xA2, 0x02, 0x17, 0x94,
+ 0xAD, 0x5B, 0xFB, 0x64, 0x52, 0xD9, 0xED, 0x6F, 0x5E, 0x53, 0xE5, 0xB7, 0xD6, 0x11, 0xAC, 0xE8,
+ 0x60, 0x9B, 0x1B, 0x74, 0x96, 0x23, 0x9A, 0x94, 0x70, 0xC0, 0x58, 0x36, 0x36, 0xB0, 0xB6, 0xBC,
+ 0xE9, 0xED, 0xCA, 0xD2, 0x48, 0x2C, 0x63, 0x5D, 0xFE, 0x18, 0x99, 0x8E, 0xA7, 0x28, 0x3A, 0x3F,
+ 0x85, 0x58, 0x4A, 0x7C, 0x2B, 0x55, 0x3C, 0xDB, 0x1E, 0x5D, 0x8E, 0xA2, 0xB3, 0x2E, 0x57, 0xC9,
+ 0xCA, 0xB2, 0x5E, 0xE6, 0xCE, 0xEA, 0xFC, 0x2B, 0xC6, 0xEE, 0xD9, 0x52, 0x37, 0x92, 0x46, 0xDD,
+ 0xFA, 0xA9, 0x9D, 0x04, 0x6E, 0x96, 0x77, 0x7D, 0x99, 0x87, 0x0C, 0x1C, 0x4D, 0x30, 0x7D, 0x5A,
+ 0x95, 0x3F, 0xBB, 0x14, 0x56, 0xC9, 0x42, 0xAB, 0x66, 0x03, 0x0E, 0xBF, 0xBC, 0x94, 0x6B, 0x0B,
+ 0xC8, 0xC1, 0x8C, 0x8D, 0x51, 0x6D, 0xEB, 0x6B, 0xD1, 0x17, 0x8D, 0xBD, 0x59, 0x1B, 0x45, 0xAE,
+ 0x06, 0xA3, 0xE7, 0xA1, 0x18, 0xE1, 0x39, 0xBC, 0xD2, 0x04, 0x70, 0x2C, 0xA9, 0x43, 0xF6, 0xEC,
+ 0xD1, 0x60, 0x81, 0xB7, 0x41, 0xD7, 0xA1, 0x39, 0xE8, 0x64, 0x62, 0x04, 0x92, 0xD2, 0xAC, 0x52,
+ 0x2D, 0xC6, 0x5C, 0x6E, 0x31, 0xAA, 0x47, 0x1F, 0xDD, 0x92, 0x64, 0x68, 0xC7, 0xA2, 0x03, 0x57,
+ 0xA4, 0x86, 0x13, 0x65, 0xF2, 0x50, 0x31, 0x91, 0xFD, 0xDA, 0x5C, 0x5F, 0xFD, 0x40, 0xA5, 0x0B,
+ 0x86, 0x40, 0x68, 0x0B, 0x4D, 0x3B, 0x29, 0x17, 0x49, 0xC3, 0x01, 0x26, 0x06, 0x5E, 0xE6, 0xF7,
+ 0xA5, 0xFD, 0xEC, 0xCE, 0x15, 0x2D, 0x84, 0x00, 0xA3, 0x8E, 0x2B, 0xA4, 0x6C, 0xE7, 0x47, 0xDA,
+ 0xCB, 0x05, 0x50, 0x27, 0x49, 0x28, 0x75, 0x74, 0x23, 0xD8, 0x59, 0xCE, 0xC4, 0x6D, 0x1B, 0x48,
+ 0xEE, 0xB2, 0x63, 0x80, 0x30, 0xD1, 0x32, 0x85, 0x9D, 0x88, 0x37, 0x02, 0x68, 0x3F, 0x3B, 0x88,
+ 0x96, 0x33, 0x90, 0x58, 0xCE, 0x39, 0x23, 0x99, 0x3C, 0xA0, 0x3D, 0x33, 0x8E, 0xB2, 0x0E, 0xDF,
+ 0x8B, 0x52, 0xE1, 0xE6, 0xA5, 0x58, 0xA0, 0x3C, 0x09, 0x78, 0xAF, 0x86, 0xD4, 0xB9, 0x4C, 0xDB,
+ 0x61, 0x06, 0xB5, 0x55, 0xD4, 0x0E, 0x7B, 0x18, 0xFC, 0x5C, 0xF1, 0x90, 0x7C, 0x6A, 0xE8, 0xC4,
+ 0x78, 0xAE, 0x53, 0xF4, 0xE6, 0x36, 0xB7, 0x65, 0xF7, 0x51, 0x3B, 0x56, 0x48, 0x56, 0x29, 0xE7,
+ 0x65, 0x61, 0xAD, 0x4E, 0x8C, 0xB0, 0x80, 0xDC, 0xAD, 0xCC, 0x38, 0x7E, 0x31, 0x3E, 0x6B, 0x92,
+ 0x7D, 0xC4, 0x95, 0x62, 0x6E, 0xAD, 0xB6, 0xB5, 0xF2, 0x09, 0x3D, 0x1B, 0x6F, 0x8A, 0x51, 0x05,
+ 0xB7, 0x08, 0x62, 0xD0, 0x33, 0x1A, 0xEA, 0xBD, 0x0A, 0x1C, 0x33, 0x9A, 0x0C, 0x27, 0x93, 0xE3,
+ 0x40, 0x4A, 0xB9, 0xBD, 0xCB, 0x16, 0xCC, 0x09, 0x1B, 0xF7, 0x82, 0xC5, 0xE3, 0xFD, 0xB9, 0xE5,
+ 0x9A, 0x10, 0x2E, 0xCC, 0x76, 0xB7, 0x28, 0x9C, 0xAB, 0x7A, 0x15, 0x85, 0x22, 0x84, 0xBF, 0x7A,
+ 0x76, 0xEA, 0x54, 0x1F, 0xEF, 0x11, 0xF4, 0x9F, 0x91, 0x66, 0x55, 0x9B, 0xFC, 0x7C, 0x6D, 0x40,
+ 0xCE, 0x08, 0xDB, 0xA6, 0x30, 0xA7, 0xBC, 0x54, 0x5B, 0x44, 0x1E, 0xCE, 0x18, 0xC8, 0x7D, 0x25,
+ 0x8F, 0x42, 0x00, 0xD3, 0x79, 0x98, 0x78, 0x6A, 0xA5, 0x0B, 0x2C, 0x55, 0x16, 0xB0, 0xB3, 0xEE,
+ 0x1D, 0x28, 0x9A, 0x2B, 0xDA, 0xF7, 0x54, 0xEB, 0xA8, 0x19, 0xBA, 0x85, 0xE5, 0x0E, 0x55, 0xDA,
+ 0x45, 0x23, 0xA2, 0x7D, 0x2B, 0x1F, 0xB1, 0x16, 0x03, 0xC8, 0x0D, 0xFE, 0xB5, 0x4D, 0x13, 0x32,
+ 0x21, 0x83, 0xB1, 0x35, 0xA8, 0xEE, 0xA2, 0x95, 0xAD, 0xB6, 0x11, 0x69, 0x0A, 0x57, 0xCF, 0x88,
+ 0x65, 0xA8, 0xBF, 0xDB, 0xB2, 0x37, 0xED, 0x5B, 0xF0, 0xCA, 0xEF, 0x5F, 0x9D, 0xF1, 0x21, 0x96,
+ 0xF5, 0x97, 0xE2, 0x0F, 0x81, 0x47, 0x70, 0x42, 0xDD, 0xE4, 0x1B, 0xA6, 0x5F, 0x60, 0x3E, 0x60,
+ 0x79, 0x97, 0xA6, 0x8E, 0x7E, 0xFE, 0x32, 0xCF, 0x92, 0x95, 0x6A, 0xEF, 0x1E, 0x5C, 0xDB, 0x3A,
+ 0x2E, 0xA5, 0xDA, 0xE5, 0x22, 0x0A, 0x8E, 0xC2, 0xB0, 0x0D, 0x25, 0xC5, 0xF5, 0x9C, 0x5D, 0x95,
+ 0x39, 0x47, 0x63, 0x3C, 0x49, 0x8C, 0x88, 0x84, 0x41, 0x07, 0x49, 0xD7, 0x84, 0xC3, 0x40, 0x24,
+ 0xF8, 0xA8, 0x96, 0xC1, 0xF9, 0xEC, 0x10, 0xA0, 0xE4, 0xEA, 0xC0, 0xC7, 0x58, 0x3A, 0x70, 0xC2,
+ 0xD0, 0xE0, 0xA8, 0x06, 0xFD, 0x3F, 0xE3, 0xE9, 0x33, 0x32, 0xA6, 0x83, 0x09, 0x99, 0x40, 0x39,
+ 0x2D, 0xCE, 0xC5, 0xBC, 0xE9, 0xE7, 0xBB, 0x66, 0xCE, 0xE3, 0x68, 0x6A, 0x73, 0x4B, 0xEC, 0x11,
+ 0xAE, 0x70, 0xD3, 0xA6, 0x84, 0xB6, 0x34, 0x75, 0x82, 0x8F, 0x35, 0x61, 0xD2, 0xE2, 0x4D, 0x23,
+ 0xAC, 0xA4, 0xF6, 0x72, 0x98, 0x19, 0x90, 0xA7, 0x6B, 0x54, 0x5A, 0xC6, 0xB8, 0xD7, 0xEE, 0xAA,
+ 0xA1, 0xCD, 0x38, 0x75, 0x36, 0x20, 0xFE, 0x22, 0x48, 0x6C, 0x26, 0x79, 0x9D, 0x89, 0xDF, 0x61,
+ 0xFC, 0x42, 0x7C, 0xAE, 0xF3, 0x7F, 0xE0, 0x14, 0xCA, 0x91, 0x04, 0xE5, 0xEC, 0x91, 0x98, 0x2D,
+ 0xC4, 0xC0, 0xFA, 0x3D, 0x7E, 0x8D, 0x02, 0x1E, 0x07, 0xD4, 0x8D, 0x55, 0x5A, 0xE7, 0x60, 0xD4,
+ 0xC2, 0x42, 0x41, 0x38, 0xB1, 0x3E, 0x72, 0x01, 0xBA, 0x16, 0x71, 0x96, 0xD8, 0x01, 0xF6, 0x69,
+ 0x9D, 0xF5, 0xC5, 0x8B, 0x12, 0x37, 0x12, 0x46, 0x77, 0xD0, 0x36, 0x5E, 0x01, 0x83, 0x7E, 0x71,
+ 0x97, 0x3E, 0x4F, 0xD2, 0x71, 0x8F, 0x9F, 0x52, 0x2C, 0xD8, 0x4E, 0x95, 0xBC, 0x92, 0xD8, 0x8D,
+ 0xF9, 0x63, 0xB7, 0x94, 0x10, 0xBB, 0xCD, 0xAB, 0xC7, 0xD8, 0x6B, 0x39, 0xFB, 0xD5, 0xF7, 0xF5,
+ 0x8B, 0x1D, 0xD4, 0x6C, 0x23, 0xFB, 0x47, 0xE8, 0xB6, 0x4F, 0x05, 0x29, 0x1F, 0x24, 0x81, 0x1C,
+ 0x98, 0xD0, 0x36, 0x70, 0xD7, 0x53, 0x9E, 0x11, 0xF3, 0xA8, 0xC5, 0x5F, 0x08, 0x20, 0x03, 0x32,
+ 0x9B, 0x7C, 0x9A, 0xA9, 0xFB, 0x7D, 0xF6, 0x41, 0xDB, 0x0A, 0xD8, 0x39, 0x33, 0x17, 0xC9, 0x6A,
+ 0x51, 0x39, 0x17, 0xD8, 0xEF, 0x65, 0xCA, 0x1D, 0xCB, 0xB2, 0xC1, 0xEF, 0x0F, 0xDB, 0xA9, 0x38,
+ 0x0F, 0x9D, 0x8B, 0xCF, 0x95, 0x8D, 0x19, 0x3A, 0x50, 0x0E, 0x2B, 0x5B, 0xD4, 0x00, 0x07, 0x14,
+ 0x6C, 0xCC, 0x37, 0x66, 0xD0, 0x67, 0xCB, 0xE4, 0xF1, 0x16, 0xDA, 0xA9, 0xB0, 0x61, 0x56, 0x12,
+ 0xB4, 0x18, 0x6F, 0x0B, 0xBB, 0x7E, 0x4F, 0x3A, 0xEC, 0xB9, 0x80, 0xD0, 0xC4, 0x5B, 0x88, 0x4D,
+ 0x0C, 0x22, 0xA8, 0xD3, 0x12, 0x77, 0x31, 0xC1, 0xCC, 0x9E, 0xA7, 0xBF, 0x2F, 0x0B, 0x22, 0xC3,
+ 0xFA, 0x76, 0x3D, 0x86, 0x19, 0xC9, 0x30, 0x90, 0xA4, 0x8F, 0xD2, 0xF5, 0xC9, 0x7A, 0x65, 0x15,
+ 0x2A, 0x6D, 0x8C, 0x52, 0xAE, 0x5C, 0x46, 0xBA, 0x1C, 0x50, 0xF2, 0x26, 0xBF, 0x07, 0x8D, 0xD7,
+ 0x85, 0xBD, 0xF4, 0x92, 0x2B, 0x67, 0x50, 0x60, 0xEA, 0x5C, 0x37, 0x9C, 0x13, 0xE5, 0x48, 0xD9,
+ 0x6F, 0x41, 0x91, 0x12, 0x28, 0x36, 0x64, 0x09, 0x4D, 0x6B, 0x0A, 0x07, 0x50, 0x7F, 0xF2, 0x33,
+ 0x29, 0x1F, 0x01, 0xD3, 0x3B, 0x50, 0xE8, 0xAA, 0xFA, 0xC6, 0x6D, 0x89, 0x7B, 0x81, 0xCD, 0xDA,
+ 0xE6, 0x89, 0x97, 0x65, 0x40, 0x97, 0xB3, 0x09, 0xE9, 0xDE, 0xC9, 0xD9, 0x3E, 0x95, 0x45, 0x27,
+ 0x5F, 0x09, 0xE8, 0x0D, 0xBB, 0x2A, 0x44, 0x8E, 0x0D, 0xD3, 0x3B, 0x24, 0xA0, 0xB5, 0x29, 0x53,
+ 0x94, 0x9E, 0xC0, 0x95, 0x6C, 0x17, 0x7E, 0x98, 0x47, 0x3A, 0xCF, 0x64, 0xEF, 0xE1, 0x76, 0x1D,
+ 0xAB, 0x33, 0xDC, 0x26, 0x6E, 0xEF, 0xB2, 0x72, 0x14, 0x39, 0xAD, 0x5B, 0xA5, 0x06, 0x09, 0x1B,
+ 0xD1, 0x28, 0x61, 0x95, 0x20, 0xB7, 0xC6, 0x9E, 0xB3, 0xF7, 0x73, 0xB6, 0xD8, 0xEB, 0x18, 0x29,
+ 0x67, 0x80, 0x4E, 0x5E, 0xD7, 0x50, 0x16, 0x3B, 0x6D, 0x15, 0xDF, 0x07, 0x7E, 0xF0, 0x7D, 0x1A,
+ 0xDD, 0x14, 0x37, 0x10, 0x9B, 0x59, 0x13, 0x98, 0x40, 0x9F, 0x22, 0x85, 0x74, 0xA9, 0x5C, 0x81,
+ 0x6E, 0x85, 0x18, 0xB5, 0xD4, 0x8C, 0x43, 0x8C, 0x25, 0x47, 0x1C, 0xFF, 0x3D, 0x59, 0xFC, 0x53,
+ 0xEC, 0x94, 0xAB, 0xCD, 0x24, 0xCC, 0xD6, 0x63, 0x6D, 0x24, 0x87, 0xAA, 0x04, 0xA3, 0x61, 0x00,
+ 0x14, 0x99, 0xB8, 0x0D, 0x83, 0xB6, 0xBD, 0xEA, 0x9F, 0x52, 0x58, 0x9C, 0xA1, 0xE4, 0x46, 0xCC,
+ 0xDC, 0x63, 0x09, 0x31, 0xB6, 0x9A, 0xBF, 0x6C, 0x8C, 0x67, 0x8C, 0x97, 0x36, 0xE9, 0xB4, 0x47,
+ 0x77, 0x44, 0x64, 0xC5, 0x04, 0x56, 0x18, 0x65, 0x82, 0xD6, 0x41, 0xA4, 0x45, 0xA8, 0xAC, 0x70,
+ 0x93, 0xAC, 0xFF, 0x5A, 0xF7, 0x7F, 0x63, 0xC9, 0xA9, 0xB1, 0xFF, 0xCA, 0x46, 0x5D, 0x97, 0xF8,
+ 0x86, 0x66, 0xCD, 0x95, 0x62, 0xEE, 0x69, 0x5D, 0x28, 0x86, 0x23, 0x0F, 0xCD, 0xC7, 0x78, 0x0D,
+ 0x53, 0xAA, 0x21, 0x83, 0x77, 0x0E, 0x75, 0xDD, 0xC5, 0x7A, 0x52, 0x10, 0xF8, 0xAA, 0xBA, 0x45,
+ 0xEE, 0x47, 0x79, 0xFD, 0x5D, 0x25, 0xF3, 0x5F, 0x2A, 0xDB, 0x7B, 0x08, 0xE3, 0x42, 0xD6, 0x10,
+ 0xAF, 0xC4, 0xB7, 0x03, 0x87, 0x3F, 0xFB, 0x52, 0x12, 0xF6, 0x09, 0x5F, 0xBF, 0x3C, 0x57, 0x4C,
+ 0xA0, 0x7C, 0x4A, 0xCC, 0x72, 0x31, 0x2F, 0x5F, 0x38, 0x34, 0xBE, 0x17, 0x84, 0xB9, 0x61, 0x15,
+ 0x48, 0x30, 0x9C, 0x8F, 0x51, 0xDA, 0x1F, 0xF2, 0xF3, 0xA3, 0xF7, 0x07, 0xE2, 0xA4, 0xD6, 0xED,
+ 0xA5, 0xF0, 0x08, 0x28, 0xB6, 0xCA, 0x1A, 0xEF, 0xC8, 0x7E, 0x38, 0x17, 0x05, 0x62, 0x30, 0x6F,
+ 0x96, 0xFA, 0x9C, 0x75, 0x97, 0x5C, 0xD4, 0xB9, 0xE6, 0x11, 0x08, 0xF8, 0xA4, 0x3F, 0xE3, 0xCE,
+ 0xD3, 0x42, 0xA3, 0xA8, 0x80, 0xEE, 0xB8, 0x82, 0xA3, 0xDD, 0x5E, 0x24, 0xDF, 0x4C, 0x49, 0x06,
+ 0x03, 0x2D, 0x9C, 0xFE, 0xA7, 0x50, 0xD9, 0x9D, 0xDB, 0x3D, 0x3E, 0xB2, 0x5F, 0xDE, 0xEB, 0x6D,
+ 0x66, 0x04, 0x39, 0x6D, 0x17, 0x37, 0x56, 0x51, 0xEB, 0x6F, 0x4A, 0x4D, 0x6A, 0x74, 0x47, 0x37,
+ 0x3B, 0x63, 0x09, 0x36, 0x67, 0xE9, 0x12, 0xB2, 0xE7, 0xDD, 0x18, 0xEE, 0x10, 0x9A, 0x1C, 0x4A,
+ 0x70, 0xCC, 0x25, 0x34, 0x2B, 0xAB, 0xA6, 0xBA, 0xC8, 0x02, 0xA0, 0x11, 0xA7, 0xD2, 0x73, 0x2A,
+ 0x42, 0xE3, 0xF7, 0xA3, 0x0F, 0xCC, 0xDE, 0x98, 0x2A, 0x6D, 0xE1, 0x4A, 0x1F, 0x16, 0xB6, 0x4C,
+ 0xD4, 0x2E, 0x1B, 0x22, 0x19, 0x22, 0x60, 0x0B, 0xE3, 0xE3, 0x73, 0x8E, 0xB7, 0x3A, 0xB1, 0xC3,
+ 0x53, 0x7F, 0x72, 0x10, 0xF3, 0xA3, 0xE4, 0x99, 0x84, 0x3B, 0x13, 0x73, 0xFC, 0xD8, 0x1D, 0x66,
+ 0x5D, 0x5B, 0xA1, 0x5E, 0x8B, 0x27, 0x49, 0x85, 0x2F, 0x23, 0xD9, 0x01, 0x29, 0x84, 0xFA, 0x44,
+ 0xEC, 0x91, 0xA8, 0x96, 0x86, 0x64, 0x93, 0xB5, 0x72, 0x42, 0x2E, 0x9E, 0x70, 0xA2, 0x55, 0xF5,
+ 0x7B, 0x95, 0x4A, 0x96, 0x9F, 0x10, 0xEA, 0x4F, 0xB6, 0x3A, 0xF4, 0x0B, 0xB0, 0x46, 0xA4, 0xBB,
+ 0x04, 0xAA, 0x3E, 0x99, 0x4C, 0x43, 0x32, 0x5B, 0x60, 0x24, 0x17, 0x99, 0xBF, 0x5C, 0xA6, 0xFF,
+ 0x4B, 0xAF, 0x1C, 0x61, 0x49, 0xE7, 0xF2, 0x5A, 0x52, 0xA4, 0x40, 0x28, 0x8D, 0xE0, 0xF7, 0xD7,
+ 0x27, 0x29, 0x26, 0x09, 0x1D, 0xD5, 0xAD, 0x32, 0x66, 0xC8, 0x57, 0xAB, 0x41, 0xE6, 0xE7, 0x85,
+ 0xAE, 0x1D, 0x77, 0x2D, 0xCB, 0x19, 0x54, 0x79, 0xFC, 0x54, 0x96, 0xF7, 0xDC, 0x7E, 0x78, 0xB1,
+ 0x63, 0x14, 0xED, 0xC6, 0xAA, 0x78, 0x23, 0x11, 0xEC, 0xF2, 0x2B, 0x8E, 0x86, 0xDF, 0x53, 0xE7,
+ 0x7F, 0x60, 0x48, 0x66, 0x25, 0xF1, 0x39, 0xBC, 0x6C, 0xF3, 0x4F, 0x40, 0xEE, 0xCC, 0x22, 0xBD,
+ 0x81, 0x7E, 0x34, 0x47, 0x7E, 0x40, 0x9F, 0x17, 0x76, 0xC5, 0x0B, 0xE8, 0x46, 0x83, 0xAA, 0xB3,
+ 0x75, 0x7D, 0xEE, 0xF4, 0x66, 0x6E, 0x0E, 0xCC, 0xDA, 0x13, 0x9B, 0x94, 0x0C, 0x1E, 0x06, 0xAC,
+ 0x48, 0x57, 0xBE, 0xCE, 0xD0, 0xCC, 0xE7, 0x72, 0xDB, 0x9F, 0xCF, 0xBC, 0x55, 0x90, 0x8A, 0x70,
+ 0x6A, 0x59, 0x88, 0x4B, 0x99, 0x37, 0xFF, 0xA5, 0x8D, 0x48, 0x92, 0x5E, 0x87, 0x8E, 0xE1, 0xB0,
+ 0xE3, 0xD2, 0x23, 0xB1, 0x11, 0xAD, 0x89, 0xC1, 0x33, 0x4F, 0xAA, 0x7C, 0xA9, 0x6C, 0xF9, 0x2C,
+ 0x1F, 0x79, 0x53, 0x23, 0x62, 0x34, 0x6F, 0x89, 0x94, 0xEB, 0xAC, 0x7C, 0xB6, 0x1C, 0x25, 0xFA,
+ 0xC8, 0x37, 0xD4, 0x66, 0xEF, 0x00, 0xF7, 0xB4, 0xAA, 0x46, 0xBE, 0x83, 0x04, 0x8D, 0xDA, 0xE4,
+ 0x06, 0x98, 0x5E, 0xDE, 0x22, 0xFA, 0x25, 0xD5, 0x9B, 0x9B, 0x43, 0xA2, 0x72, 0xD5, 0x36, 0x51,
+ 0x5B, 0xD4, 0x90, 0x31, 0xB2, 0x96, 0x8C, 0x32, 0x33, 0xC0, 0xC0, 0x01, 0x0B, 0x5A, 0x7D, 0xE9,
+ 0x34, 0xA2, 0x7D, 0x4A, 0xBA, 0x43, 0xB9, 0x23, 0xB5, 0x12, 0xC2, 0xD4, 0x08, 0xFE, 0x95, 0xFE,
+ 0xAB, 0x15, 0xC4, 0x5C, 0xCD, 0x6C, 0x4E, 0xD8, 0x46, 0x85, 0xF6, 0x20, 0x75, 0xF0, 0x50, 0xEF,
+ 0xB6, 0xF1, 0x7B, 0xE9, 0x8A, 0x07, 0x79, 0x1A, 0x93, 0x06, 0xF5, 0x91, 0x78, 0x98, 0xD4, 0xF4,
+ 0xAF, 0x6C, 0xEF, 0xA7, 0x85, 0x5A, 0xB5, 0xFF, 0xA0, 0xDF, 0x3F, 0xDC, 0xFA, 0xA4, 0x2B, 0x45,
+ 0x45, 0x1B, 0x9A, 0xA5, 0x56, 0x3D, 0x6E, 0x52, 0x87, 0xAF, 0x61, 0xE7, 0xC4, 0x77, 0xC0, 0x35,
+ 0x58, 0xE3, 0xBB, 0x69, 0x79, 0xDA, 0xED, 0xAB, 0x7D, 0xCA, 0xF3, 0xF0, 0x97, 0x7C, 0x86, 0xFD,
+ 0x20, 0xF9, 0xE4, 0x60, 0x92, 0x20, 0xFC, 0x89, 0x54, 0xDD, 0xF9, 0xFE, 0x61, 0xF1, 0x6E, 0x55,
+ 0x05, 0xF5, 0x96, 0xD3, 0x0B, 0x16, 0xBB, 0x39, 0x1F, 0xE6, 0x97, 0x23, 0xE8, 0xA3, 0x4D, 0x95,
+ 0x6B, 0x24, 0x2F, 0x68, 0x05, 0xBA, 0x4A, 0xE4, 0xF3, 0xD2, 0xE5, 0xA1, 0xAD, 0x29, 0xAE, 0x72,
+ 0x9C, 0x5F, 0x3F, 0x5E, 0x5D, 0x96, 0x69, 0x05, 0x1A, 0x2E, 0x44, 0xE0, 0x86, 0x28, 0x86, 0x9A,
+ 0x59, 0x90, 0x86, 0x53, 0x07, 0xC3, 0x8B, 0x1B, 0x9E, 0xA3, 0xEB, 0x6B, 0x52, 0x3E, 0x8C, 0x99,
+ 0x64, 0xAE, 0x7A, 0xDD, 0xE9, 0x21, 0x11, 0x74, 0x0E, 0x58, 0x01, 0xA8, 0x9E, 0x0A, 0x83, 0x6E,
+ 0x03, 0x48, 0x7F, 0xC0, 0x0F, 0xE8, 0xEF, 0xE3, 0xD0, 0xFB, 0x47, 0x22, 0x52, 0x86, 0x7B, 0x62,
+ 0xB4, 0x76, 0xBF, 0xE6, 0xC6, 0x62, 0x0F, 0x58, 0xC2, 0xE8, 0x02, 0xE1, 0x73, 0xA5, 0x21, 0xC0,
+ 0xEE, 0x44, 0x8E, 0xAF, 0x59, 0x1A, 0x35, 0xF6, 0x32, 0xBF, 0xDA, 0x73, 0x98, 0x21, 0x69, 0x7C,
+ 0xC9, 0x04, 0x4E, 0x79, 0x4A, 0x76, 0x65, 0xF9, 0xCE, 0x65, 0x62, 0x34, 0x5D, 0x5F, 0x78, 0xFE,
+ 0xBC, 0xBF, 0x85, 0xA2, 0xD4, 0x9D, 0x14, 0x72, 0x7C, 0x6A, 0x94, 0xB2, 0xBA, 0x5E, 0xC0, 0x3F,
+ 0x1D, 0x04, 0xC7, 0xA5, 0xF5, 0xAF, 0x85, 0x72, 0x79, 0x7D, 0xBF, 0xD7, 0x7B, 0xA8, 0x3D, 0x38,
+ 0xB1, 0xE9, 0xA8, 0x1D, 0xAF, 0xD6, 0x9E, 0x38, 0xA6, 0xC5, 0x09, 0x07, 0x17, 0x78, 0x75, 0xA6,
+ 0x4C, 0x12, 0xBB, 0xE7, 0x6B, 0xA9, 0xC7, 0x93, 0xF1, 0x7C, 0xB3, 0x15, 0xC6, 0x7D, 0xA0, 0x50,
+ 0x72, 0x6C, 0xC5, 0x28, 0x0D, 0x76, 0x37, 0x8E, 0x28, 0xAD, 0x00, 0xD0, 0x15, 0x2D, 0x67, 0x70,
+ 0xA7, 0x19, 0xBC, 0x71, 0x5F, 0xA5, 0xFB, 0x84, 0xC2, 0x17, 0x88, 0x39, 0xF4, 0xDD, 0x74, 0x9A,
+ 0x55, 0x6F, 0x8F, 0x43, 0xAE, 0x6B, 0xDB, 0x99, 0x9E, 0x80, 0x31, 0x27, 0xEB, 0x2A, 0xE5, 0xC5,
+ 0xA1, 0xBF, 0x1C, 0xBE, 0xE4, 0x81, 0x8F, 0xCF, 0x29, 0x21, 0xFA, 0x7A, 0xEA, 0x10, 0xAA, 0xD4,
+ 0xC3, 0x8E, 0x44, 0x4C, 0x15, 0x41, 0x68, 0x1B, 0x8F, 0xF3, 0xC5, 0x70, 0x64, 0xDC, 0x37, 0xC1,
+ 0x91, 0xDF, 0x35, 0x19, 0x6B, 0x2D, 0x33, 0x71, 0x28, 0x35, 0xFD, 0xA8, 0x65, 0x0D, 0x6F, 0xDA,
+ 0x4D, 0xB8, 0xB0, 0xE0, 0x68, 0x9A, 0xA9, 0x6E, 0x31, 0x1C, 0xE8, 0x13, 0x89, 0x07, 0xBF, 0xCF,
+ 0x3C, 0x98, 0xCE, 0xC0, 0xB7, 0x65, 0xC4, 0x3C, 0x51, 0xCA, 0x3D, 0x76, 0x21, 0x1B, 0x24, 0xF3,
+ 0x15, 0xAD, 0xF5, 0xBA, 0x02, 0x04, 0x2C, 0x8B, 0x7F, 0xD2, 0x80, 0xDD, 0x17, 0x9D, 0x66, 0x25,
+ 0xE9, 0x6A, 0x90, 0x4F, 0xA5, 0xB2, 0xCD, 0x60, 0x9F, 0xAF, 0x82, 0x17, 0x41, 0xB8, 0xD6, 0x9F,
+ 0x36, 0xD0, 0x63, 0x89, 0x45, 0x7C, 0x8A, 0xE1, 0x4D, 0x75, 0x7A, 0xCF, 0xA7, 0xD3, 0x19, 0x14,
+ 0xE2, 0x12, 0xAB, 0x7A, 0x9F, 0x6C, 0x87, 0xF5, 0x85, 0x8A, 0xB2, 0xFF, 0x3D, 0xD1, 0x1B, 0x7E,
+ 0x2F, 0xBA, 0x68, 0xD3, 0x1A, 0x3E, 0xC6, 0x46, 0x7A, 0xBB, 0x19, 0x4A, 0x68, 0x76, 0x7A, 0x89,
+ 0x66, 0xB7, 0x29, 0x57, 0xB7, 0x48, 0x51, 0x67, 0xF6, 0x50, 0xF8, 0xE4, 0x47, 0xBA, 0xED, 0x6E,
+ 0x30, 0xC3, 0xA9, 0x26, 0xBF, 0x3D, 0x22, 0x6B, 0x72, 0xC6, 0xBD, 0x97, 0x14, 0xD6, 0xE2, 0xE0,
+ 0x50, 0x0E, 0x49, 0x26, 0x3A, 0x4D, 0xB0, 0xCA, 0xE0, 0x4F, 0x6D, 0x6F, 0xF5, 0xB7, 0xCF, 0xE1,
+ 0x24, 0x81, 0x02, 0xA5, 0x1D, 0xA0, 0x1A, 0x9C, 0x6D, 0x42, 0x08, 0x59, 0x7F, 0x38, 0xF2, 0xEC,
+ 0x67, 0x61, 0x14, 0x72, 0x2D, 0x37, 0x52, 0x57, 0x04, 0x57, 0xC1, 0xCE, 0xC7, 0x95, 0xAA, 0xBD,
+ 0xD0, 0xD4, 0xA1, 0x24, 0xCB, 0xA4, 0xD7, 0x8E, 0x70, 0x93, 0xCE, 0xEC, 0x61, 0x41, 0xF2, 0xD5,
+ 0x99, 0x3D, 0x0F, 0xFD, 0xB6, 0x56, 0xCA, 0xBD, 0xC3, 0x95, 0x26, 0x2A, 0xCC, 0x71, 0xD4, 0xEE,
+ 0x56, 0x9F, 0x91, 0xCA, 0x3C, 0x77, 0x0C, 0xBF, 0xE2, 0x17, 0xCB, 0x97, 0x97, 0x74, 0xF2, 0x79,
+ 0x05, 0x42, 0xBE, 0x4A, 0xA0, 0x65, 0x47, 0xEF, 0x1B, 0xF0, 0xEE, 0x01, 0xF2, 0xD9, 0x28, 0xCF,
+ 0x69, 0xD0, 0x29, 0xD8, 0x63, 0x7C, 0x02, 0xF7, 0xC6, 0x28, 0x9D, 0xC8, 0x82, 0x8F, 0x93, 0xB1,
+ 0x08, 0xBC, 0x75, 0xC9, 0x92, 0xC2, 0xD2, 0x67, 0x78, 0x23, 0x0F, 0x0F, 0x9A, 0xEF, 0xF4, 0xF3,
+ 0x87, 0x8C, 0x48, 0xB8, 0xFB, 0xCD, 0xB7, 0xBA, 0x5B, 0x8B, 0xA5, 0xD7, 0x8C, 0x9B, 0xE3, 0x4C,
+ 0x2A, 0x54, 0xD1, 0x40, 0x36, 0x76, 0x7E, 0xD2, 0xB7, 0x4F, 0xED, 0x8A, 0x3C, 0xD8, 0x0D, 0xCB,
+ 0xFE, 0xED, 0xA6, 0x57, 0x26, 0xE6, 0x71, 0xF7, 0x43, 0x42, 0x68, 0x75, 0x7A, 0x6F, 0xB6, 0xA4,
+ 0xCE, 0x21, 0x91, 0x98, 0xD4, 0x70, 0x99, 0x41, 0x7F, 0xB8, 0x75, 0x27, 0x0A, 0x26, 0x37, 0x3D,
+ 0xCB, 0x41, 0x39, 0x41, 0xA3, 0x69, 0x74, 0xF2, 0x04, 0x9B, 0xB3, 0xD0, 0xBB, 0xE9, 0x32, 0xDD,
+ 0xB2, 0x70, 0x1B, 0xF5, 0xAD, 0xA7, 0x42, 0xE0, 0xFC, 0xBF, 0x8C, 0x73, 0x08, 0x2E, 0x7A, 0x0C,
+ 0xB8, 0x1B, 0xC8, 0xCD, 0x29, 0x20, 0x57, 0x5F, 0x38, 0xD2, 0x16, 0x27, 0x50, 0xF2, 0x5F, 0x66,
+ 0xA4, 0xE9, 0xCC, 0x77, 0xC8, 0xB3, 0x82, 0x49, 0x1D, 0x06, 0x7B, 0x38, 0x24, 0x83, 0xEC, 0xB4,
+ 0x22, 0xE2, 0x4D, 0x8B, 0x56, 0x2C, 0x3F, 0xF0, 0x5C, 0x04, 0x93, 0x88, 0x99, 0xAA, 0xF2, 0x42,
+ 0x07, 0xD1, 0x73, 0x3F, 0x15, 0x32, 0x3D, 0x92, 0x87, 0x8E, 0x72, 0x6D, 0x2E, 0x56, 0x0C, 0xD4,
+ 0x6C, 0x5A, 0xF6, 0x27, 0x68, 0x19, 0xC5, 0xF6, 0x68, 0x1A, 0x35, 0xFC, 0x27, 0x89, 0x26, 0x24,
+ 0x6E, 0xF5, 0x44, 0x91, 0xF4, 0x34, 0x0D, 0xEA, 0xEB, 0xC3, 0x38, 0x39, 0x48, 0x5D, 0x54, 0x82,
+ 0xC9, 0x91, 0x86, 0x66, 0x13, 0x2F, 0xA6, 0x37, 0x10, 0x7B, 0x79, 0xA2, 0xFF, 0x90, 0xDD, 0xD6,
+ 0x17, 0x0F, 0x14, 0xD7, 0xE4, 0x98, 0x00, 0x3C, 0xC3, 0x4D, 0x3A, 0x35, 0xE2, 0xA2, 0x15, 0xE6,
+ 0xC7, 0x24, 0x8B, 0x19, 0x8A, 0xC7, 0xB6, 0x25, 0x8C, 0xEE, 0x21, 0x92, 0xDB, 0x0E, 0x16, 0x8E,
+ 0xC2, 0x74, 0xB3, 0xFB, 0xDE, 0xE3, 0x0C, 0x4C, 0x25, 0x4E, 0x78, 0xD8, 0xBF, 0xF3, 0xE6, 0x74,
+ 0x92, 0x8E, 0xF1, 0x13, 0x6C, 0x8E, 0xBF, 0xAB, 0xFC, 0xC3, 0x88, 0x71, 0xF4, 0xCD, 0x9B, 0x8B,
+ 0x62, 0xE1, 0xB1, 0x97, 0xE9, 0x1F, 0x37, 0x86, 0x4C, 0x60, 0x44, 0xCD, 0xAB, 0x18, 0x15, 0xA7,
+ 0x95, 0x2E, 0x80, 0x4D, 0x91, 0xB4, 0x8E, 0xD5, 0xAC, 0xE5, 0x64, 0x9E, 0x38, 0xEA, 0x13, 0xB4,
+ 0xAF, 0x28, 0x67, 0x64, 0x26, 0xE0, 0x45, 0x86, 0xA0, 0xEC, 0x30, 0xEC, 0xFC, 0x1E, 0xDA, 0x3E,
+ 0x63, 0x41, 0xF9, 0x9B, 0x03, 0x87, 0x7A, 0x86, 0xF1, 0x4E, 0xD7, 0x53, 0x78, 0x7C, 0x75, 0xD4,
+ 0x97, 0x75, 0x02, 0x6D, 0xC8, 0xE1, 0xFB, 0xAA, 0x56, 0x7B, 0xD6, 0x21, 0x2A, 0x23, 0x63, 0xAE,
+ 0x81, 0xE4, 0xE6, 0x40, 0xE2, 0xBF, 0x54, 0x22, 0x3A, 0x73, 0x34, 0xCD, 0x74, 0xE6, 0x11, 0x9B,
+ 0xB5, 0xB6, 0x68, 0xF9, 0x3A, 0x39, 0xBE, 0x92, 0xBA, 0x27, 0xAE, 0xC0, 0x39, 0xDB, 0xA0, 0xD6,
+ 0x39, 0x58, 0x9F, 0x1E, 0xC8, 0xBF, 0xF8, 0xFC, 0x98, 0x4F, 0x50, 0xE4, 0xAA, 0xBC, 0x3F, 0x8E,
+ 0x1A, 0x35, 0x7F, 0xA2, 0x5B, 0xA1, 0xBD, 0x85, 0x47, 0x2C, 0xB0, 0xC2, 0x67, 0x0B, 0x49, 0x08,
+ 0x9E, 0xB7, 0x6E, 0x57, 0x69, 0x02, 0x65, 0x12, 0x0D, 0xEF, 0x8A, 0x02, 0xD0, 0x51, 0x53, 0x81,
+ 0xE0, 0xF1, 0x54, 0x0F, 0x67, 0x07, 0xDD, 0x95, 0xB4, 0x5A, 0xDA, 0x96, 0x01, 0x76, 0x32, 0x32,
+ 0xE1, 0xEC, 0x13, 0x42, 0xB6, 0x26, 0x2B, 0xCE, 0xD7, 0xD6, 0xAB, 0x27, 0xC5, 0x03, 0x95, 0x0F,
+ 0x4F, 0x31, 0x87, 0x96, 0x2A, 0x06, 0x49, 0x66, 0x82, 0x86, 0xF1, 0x57, 0x9B, 0x14, 0xF6, 0x63,
+ 0x27, 0x48, 0xDE, 0xDC, 0x94, 0x48, 0x4A, 0x3C, 0x8F, 0xCD, 0xC6, 0x46, 0x21, 0x09, 0xD0, 0x24,
+ 0x1B, 0x7B, 0x8C, 0x27, 0x00, 0x0B, 0x80, 0x67, 0x91, 0x52, 0x0A, 0xD0, 0x4D, 0x10, 0x25, 0x59,
+ 0xC8, 0x5A, 0x00, 0x3B, 0x46, 0x47, 0xDE, 0x76, 0x3C, 0xA7, 0xD1, 0x8E, 0x1A, 0xFA, 0xD1, 0xEF,
+ 0xC3, 0xBF, 0x31, 0xBB, 0x1D, 0xA8, 0x4C, 0x35, 0xA9, 0xC0, 0x52, 0xDC, 0x67, 0xE7, 0xF5, 0xEA,
+ 0x4E, 0x0A, 0x67, 0x0C, 0xC8, 0x0E, 0x46, 0xCB, 0xBA, 0x62, 0x43, 0x8B, 0x5D, 0x9F, 0xC9, 0x60,
+ 0x1C, 0x07, 0x4A, 0x1F, 0xAB, 0xF6, 0x28, 0x28, 0x8F, 0xA0, 0x04, 0xA1, 0xAB, 0xBA, 0x3F, 0x09,
+ 0x96, 0xA0, 0x49, 0xB0, 0xAC, 0x2B, 0x5A, 0x7A, 0x3E, 0x4F, 0xF5, 0x1C, 0x39, 0xD4, 0xF2, 0xE5,
+ 0x2F, 0xBE, 0x37, 0x25, 0xEA, 0x07, 0x70, 0x1B, 0x4A, 0x5D, 0x58, 0x16, 0xF8, 0xF7, 0x74, 0x89,
+ 0x31, 0x09, 0xA7, 0x6D, 0xE4, 0xC3, 0x2D, 0x21, 0x80, 0xF7, 0x40, 0x2A, 0xCD, 0xD5, 0x01, 0x3A,
+ 0xD3, 0xC7, 0xF5, 0x79, 0xAA, 0x7A, 0x15, 0xCE, 0xDC, 0xFE, 0x36, 0x06, 0xDE, 0x5C, 0x0A, 0xC3,
+ 0xA3, 0xE6, 0xEF, 0x6A, 0xEB, 0x3D, 0x13, 0xE9, 0x7C, 0x61, 0xD0, 0x85, 0xC6, 0xA0, 0x05, 0x05,
+ 0x32, 0x4B, 0x56, 0x8E, 0xDF, 0xD4, 0x01, 0xA9, 0x11, 0x78, 0x48, 0xFC, 0x50, 0x77, 0x10, 0x4B,
+ 0x6A, 0x9D, 0x11, 0x68, 0xC5, 0xC7, 0xFC, 0x37, 0x0E, 0x2A, 0x9A, 0x86, 0x98, 0xB9, 0x8E, 0xB1,
+ 0xE5, 0xAA, 0x40, 0xAD, 0x6E, 0xE9, 0x7F, 0x47, 0x52, 0xE3, 0x33, 0xAF, 0xA0, 0xE4, 0x38, 0x67,
+ 0x41, 0xD6, 0xB0, 0x23, 0x96, 0x37, 0x7D, 0xEB, 0x39, 0xE0, 0x06, 0x22, 0xCC, 0x8B, 0xB1, 0x6E,
+ 0xE3, 0x6B, 0xFF, 0xA6, 0xF2, 0xCE, 0xA8, 0xBF, 0x24, 0x87, 0x8D, 0xE5, 0x05, 0xBB, 0xBE, 0xF5,
+ 0x5F, 0x17, 0xE7, 0xF2, 0x8C, 0xBF, 0xFF, 0x31, 0x04, 0x26, 0x4D, 0xCB, 0xB0, 0xF4, 0x77, 0x11,
+ 0x59, 0x0E, 0xD2, 0x8E, 0xF9, 0x70, 0xE8, 0x4B, 0x57, 0x6E, 0x12, 0x96, 0x4B, 0x98, 0xD4, 0xE0,
+ 0xC1, 0x56, 0xC6, 0xEF, 0x41, 0xF2, 0x29, 0xF1, 0xBC, 0x0E, 0xEB, 0x57, 0x28, 0x11, 0x61, 0x19,
+ 0x60, 0x69, 0x61, 0x84, 0x92, 0x26, 0x94, 0x36, 0xD5, 0xED, 0x9C, 0xA5, 0x7C, 0xDC, 0x55, 0x86,
+ 0x73, 0x7A, 0x39, 0xBC, 0x67, 0x4B, 0xF0, 0xA5, 0xB2, 0xA3, 0x86, 0xD0, 0xC1, 0xC0, 0xFB, 0x5B,
+ 0x3C, 0xBA, 0x76, 0xB1, 0x07, 0x09, 0xB4, 0x4D, 0x85, 0xDA, 0x20, 0x2F, 0xC2, 0x3E, 0xBC, 0xF7,
+ 0xA1, 0x6E, 0x98, 0xE8, 0x17, 0x96, 0x24, 0x6C, 0x09, 0xDB, 0xB1, 0xCD, 0x2C, 0xCA, 0x5D, 0x42,
+ 0x25, 0xEB, 0xDB, 0xEC, 0x26, 0x90, 0xA7, 0xBD, 0x1A, 0xE9, 0xAD, 0xA9, 0x10, 0x84, 0xC4, 0xD1,
+ 0x6D, 0x4A, 0x49, 0xC1, 0x4B, 0x8A, 0x1F, 0xB6, 0xED, 0x97, 0x19, 0x56, 0xE4, 0xCF, 0xA3, 0xEA,
+ 0xA9, 0x2C, 0x35, 0xFC, 0x63, 0xFF, 0x5E, 0xE2, 0x0E, 0x3A, 0x61, 0x16, 0x47, 0xFD, 0x07, 0x16,
+ 0x85, 0x52, 0x3B, 0x62, 0xC3, 0xB6, 0xCC, 0x8A, 0x52, 0x46, 0xDF, 0xDA, 0x39, 0x6B, 0xF5, 0xA8,
+ 0x67, 0x07, 0xCD, 0xAF, 0x03, 0x53, 0xAC, 0x35, 0x62, 0xDD, 0x5B, 0xE4, 0x2A, 0xEC, 0xB1, 0xEC,
+ 0x3B, 0xA5, 0xDF, 0xDF, 0x56, 0x9B, 0x66, 0xDA, 0x7D, 0x89, 0xF6, 0xF4, 0x23, 0xE2, 0xDB, 0xE5,
+ 0x1D, 0x8E, 0xC2, 0x3C, 0x06, 0x9B, 0x91, 0x1D, 0xEB, 0x2D, 0x2C, 0xE2, 0x79, 0x53, 0xFD, 0xAF,
+ 0xF9, 0x7B, 0x29, 0x67, 0xA1, 0xF8, 0x4B, 0x6D, 0x19, 0x00, 0x55, 0x21, 0x03, 0xC4, 0xDE, 0xFA,
+ 0xA8, 0xAC, 0xA7, 0x84, 0xC2, 0x63, 0x24, 0x6C, 0x05, 0x6B, 0x6A, 0x3C, 0xD7, 0x15, 0x6E, 0xA0,
+ 0x72, 0x82, 0x9C, 0xBA, 0x87, 0x7A, 0xC0, 0xF3, 0x81, 0x87, 0xFD, 0x0D, 0x72, 0x6C, 0x3B, 0xFE,
+ 0x95, 0x2F, 0xB0, 0xE8, 0xC5, 0x89, 0x5E, 0x88, 0x3B, 0xAA, 0xD5, 0xC0, 0x19, 0x62, 0x70, 0x90,
+ 0x5F, 0xB7, 0xFD, 0x2F, 0x1F, 0x04, 0x02, 0x0B, 0x5F, 0x27, 0xDB, 0x41, 0x85, 0xCF, 0x70, 0x97,
+ 0x67, 0x4C, 0xBB, 0xD0, 0xC9, 0xF2, 0x90, 0xD4, 0xA2, 0xC8, 0xC4, 0xBF, 0x14, 0x58, 0x7D, 0x4B,
+ 0xF5, 0x4A, 0x16, 0x3A, 0xB6, 0x7F, 0xBC, 0x24, 0xDD, 0xAC, 0x52, 0x1F, 0x39, 0xE6, 0xF3, 0xAC,
+ 0x9E, 0x02, 0xAC, 0x6C, 0x57, 0x96, 0x1C, 0x47, 0x23, 0x9F, 0xBD, 0x32, 0x5B, 0x94, 0x3C, 0xEA,
+ 0x26, 0xF7, 0xCA, 0x18, 0x14, 0x1B, 0x54, 0xD5, 0xC7, 0xA2, 0xF6, 0x00, 0x62, 0x20, 0xB5, 0x42,
+ 0x8D, 0xFE, 0x48, 0xC3, 0x14, 0xC9, 0x05, 0xF0, 0x4A, 0x6E, 0x07, 0x83, 0x52, 0x19, 0x94, 0x11,
+ 0x1D, 0xB1, 0x3F, 0x03, 0x51, 0x03, 0x98, 0xB0, 0x18, 0x25, 0xF3, 0x01, 0x64, 0x88, 0x9B, 0xA8,
+ 0xAD, 0x80, 0x4A, 0x2A, 0x40, 0x9E, 0x59, 0xFE, 0x43, 0xC1, 0xE5, 0xBD, 0x07, 0xA5, 0x3C, 0x86,
+ 0xC9, 0xF2, 0x05, 0x56, 0x7E, 0x48, 0x4A, 0x96, 0x85, 0x94, 0xF9, 0x87, 0xB6, 0xBF, 0x13, 0x80,
+ 0xD1, 0x6D, 0x21, 0xE2, 0x6C, 0x53, 0x60, 0xA8, 0x57, 0xBB, 0xA1, 0xF6, 0xEA, 0x2B, 0xCF, 0x08,
+ 0x10, 0x1A, 0xE9, 0xDD, 0x7C, 0x15, 0xF8, 0xF7, 0xA6, 0xF8, 0x28, 0xBA, 0x89, 0xD2, 0x78, 0xA1,
+ 0x91, 0x7A, 0x24, 0x79, 0x3B, 0xFE, 0xDA, 0x05, 0x73, 0x5E, 0x82, 0x97, 0x7D, 0xB4, 0xAD, 0xE3,
+ 0xC6, 0xAB, 0x9A, 0x12, 0x07, 0x45, 0x66, 0xEE, 0x77, 0xF6, 0xCD, 0xE5, 0x4A, 0x74, 0x73, 0xAF,
+ 0x46, 0x73, 0x4B, 0x62, 0xFF, 0xDD, 0xDC, 0x26, 0xDF, 0x21, 0xDD, 0x17, 0x07, 0x0A, 0xDD, 0x0D,
+ 0x44, 0xEB, 0x3E, 0xFB, 0xD9, 0x67, 0x78, 0x7D, 0x06, 0xCE, 0xB2, 0xDC, 0xD5, 0x3F, 0xDF, 0x98,
+ 0x38, 0x79, 0x93, 0xA3, 0x62, 0x89, 0x0B, 0x13, 0x33, 0x27, 0x4E, 0xE7, 0x95, 0x71, 0x9B, 0x60,
+ 0xC5, 0xE7, 0xBD, 0x42, 0x95, 0x7E, 0x53, 0x10, 0x57, 0x58, 0x80, 0x19, 0x8F, 0xA3, 0x81, 0x0A,
+ 0x2C, 0x5A, 0x9E, 0xE5, 0xAB, 0xE8, 0xEA, 0xE3, 0xD1, 0x11, 0x65, 0x76, 0xA9, 0x0F, 0x55, 0xDB,
+ 0x2A, 0xC5, 0x85, 0xBE, 0x23, 0x95, 0x9A, 0x6D, 0x0B, 0xCE, 0x99, 0x3C, 0x87, 0xE9, 0xDF, 0xF7,
+ 0x49, 0x22, 0xDD, 0x2F, 0x30, 0xEA, 0x16, 0x20, 0xF5, 0x02, 0xCE, 0x23, 0x8B, 0x61, 0x67, 0x97,
+ 0x14, 0x4A, 0xF7, 0xB9, 0x4D, 0x99, 0x08, 0x8A, 0x10, 0x4C, 0xEC, 0xAD, 0x48, 0x79, 0xBE, 0xEC,
+ 0x11, 0x5D, 0xDC, 0x6C, 0x88, 0xA9, 0x25, 0x07, 0x37, 0x63, 0x83, 0xB7, 0x13, 0x3D, 0xDF, 0xE8,
+ 0x63, 0xEF, 0xFD, 0x55, 0x95, 0xA3, 0xAF, 0xAE, 0x38, 0x27, 0xED, 0x8B, 0xF2, 0xCC, 0x4E, 0x79,
+ 0x75, 0x40, 0xEB, 0x15, 0x62, 0x63, 0xFA, 0xCD, 0x8B, 0x14, 0xDE, 0x83, 0xD3, 0x6B, 0x09, 0xD5,
+ 0x7F, 0xF4, 0xCF, 0x81, 0x55, 0xF4, 0x77, 0x95, 0x77, 0xB7, 0xA6, 0x00, 0xC9, 0x7A, 0x99, 0xE1,
+ 0xB9, 0xB2, 0x90, 0xE4, 0x40, 0x6F, 0x22, 0xD6, 0x10, 0x71, 0x29, 0xA0, 0xA8, 0x33, 0xBC, 0xCF,
+ 0xE7, 0x12, 0x57, 0x7C, 0xDF, 0xA6, 0xF1, 0x5D, 0x6F, 0x2C, 0xC3, 0x94, 0x22, 0xE8, 0x13, 0x18,
+ 0x70, 0xEF, 0xEE, 0xCE, 0x95, 0x15, 0x76, 0x23, 0x4D, 0x04, 0x2D, 0x01, 0xD4, 0xC8, 0xF3, 0x1E,
+ 0x73, 0xB8, 0xF5, 0x14, 0xE5, 0xFC, 0x1E, 0x87, 0xFA, 0x28, 0x30, 0x76, 0x98, 0xFF, 0xD2, 0x7B,
+ 0xE4, 0x2D, 0x93, 0x1A, 0xEE, 0x17, 0xD9, 0xAD, 0x9D, 0x9A, 0x4F, 0xFD, 0x33, 0xE3, 0x26, 0x4E,
+ 0x12, 0x6C, 0x53, 0x67, 0x39, 0x39, 0xD8, 0x62, 0x5D, 0x26, 0x3A, 0x56, 0xA3, 0x92, 0xC2, 0xEB,
+ 0x84, 0x80, 0xE9, 0x90, 0xD6, 0xE4, 0x23, 0x52, 0x85, 0x73, 0x32, 0xEB, 0x7E, 0x89, 0x8B, 0x11,
+ 0x5C, 0xF7, 0xB6, 0x5B, 0xEC, 0x70, 0xA7, 0xF1, 0x52, 0x3D, 0x68, 0xC3, 0xA5, 0xB3, 0xA8, 0xB3,
+ 0x87, 0x09, 0xFE, 0x54, 0x12, 0xF7, 0x8C, 0xC1, 0x87, 0x94, 0xE2, 0x3C, 0xB1, 0x97, 0x0F, 0x44,
+ 0xC1, 0x98, 0x99, 0x59, 0x9A, 0x59, 0x00, 0xE3, 0x26, 0x86, 0x85, 0xC0, 0x6D, 0x69, 0x10, 0xA3,
+ 0xC2, 0x3A, 0x47, 0xFE, 0x91, 0xEE, 0xAE, 0xB9, 0x26, 0xE0, 0x1A, 0xD5, 0x6E, 0xEF, 0xED, 0x90,
+ 0x6D, 0x87, 0x9B, 0xF2, 0x5F, 0x8F, 0xB8, 0x46, 0xD3, 0x10, 0xDF, 0xD6, 0x32, 0x0D, 0x7F, 0x85,
+ 0x7C, 0xDE, 0x87, 0x3D, 0xF2, 0x3B, 0x96, 0xF5, 0xC9, 0xA5, 0x27, 0x90, 0xF4, 0x09, 0x79, 0xA8,
+ 0x43, 0x11, 0x20, 0x4D, 0x8D, 0x98, 0x5A, 0x9B, 0x72, 0x44, 0x45, 0xCE, 0x73, 0xEE, 0x87, 0xF5,
+ 0x0E, 0xF0, 0x95, 0x76, 0xC3, 0x78, 0x5B, 0x4D, 0x34, 0x53, 0x21, 0xF5, 0x73, 0x7D, 0x43, 0xAF,
+ 0xB7, 0x68, 0xA9, 0xDF, 0x95, 0x4B, 0xAC, 0xB8, 0xB6, 0xEB, 0xD3, 0x4D, 0x75, 0x5D, 0x70, 0xBE,
+ 0x35, 0x39, 0xE6, 0x3B, 0x97, 0xC6, 0xFB, 0x49, 0xD2, 0xFF, 0xCA, 0xAF, 0x7E, 0x41, 0x7E, 0x59,
+ 0x86, 0x90, 0xC6, 0x89, 0x1A, 0x75, 0xAB, 0x22, 0x1E, 0xC3, 0xF4, 0xCF, 0x4D, 0xB1, 0xE9, 0x67,
+ 0x39, 0x81, 0x01, 0x9F, 0x17, 0x85, 0x2E, 0xEC, 0xCC, 0xD8, 0x9B, 0x37, 0x47, 0x03, 0x3B, 0xA2,
+ 0x8F, 0x22, 0x86, 0x39, 0xCD, 0xFF, 0xFE, 0x8C, 0x72, 0x15, 0x37, 0xEF, 0x69, 0x18, 0x51, 0x82,
+ 0x34, 0x92, 0x08, 0xEB, 0x60, 0x55, 0x57, 0xE2, 0xA2, 0xE4, 0x64, 0xA1, 0x0C, 0x01, 0xE0, 0x25,
+ 0x9F, 0x81, 0x4C, 0xEE, 0x0E, 0x80, 0xF0, 0x24, 0xC0, 0xEF, 0xA9, 0x50, 0x6D, 0x40, 0xFA, 0x85,
+ 0x04, 0xD6, 0x83, 0xF0, 0xCF, 0x57, 0x3E, 0x4C, 0xC6, 0xD0, 0x6F, 0x7F, 0x03, 0x4B, 0xE4, 0xD5,
+ 0xFC, 0x51, 0x44, 0x37, 0x9B, 0x05, 0x55, 0xF0, 0x58, 0x8C, 0xB0, 0x38, 0x86, 0x0C, 0x01, 0x02,
+ 0xBB, 0x63, 0xE0, 0x4D, 0x66, 0xF1, 0x9D, 0x8D, 0x7C, 0xE8, 0xBA, 0xE9, 0x1C, 0x42, 0xAE, 0x84,
+ 0x06, 0x73, 0xB0, 0x07, 0xEB, 0x0D, 0x1B, 0x97, 0x12, 0x36, 0x93, 0x67, 0x92, 0xAA, 0x41, 0xC8,
+ 0x7B, 0x36, 0x7E, 0xF6, 0x23, 0x15, 0x8B, 0xE1, 0xFD, 0x3A, 0x17, 0xFF, 0xF3, 0xB5, 0x63, 0x19,
+ 0x6E, 0xD9, 0x08, 0xE0, 0x54, 0x89, 0x81, 0xCA, 0x2A, 0x83, 0xCB, 0x21, 0x7D, 0x2F, 0x20, 0x84,
+ 0xA0, 0x96, 0x88, 0xA5, 0x37, 0x9B, 0xF7, 0x54, 0x5C, 0x5B, 0x1F, 0x19, 0xDB, 0x4C, 0x9A, 0x15,
+ 0x4D, 0xF7, 0x12, 0xF1, 0x31, 0x8F, 0xF2, 0xDD, 0x2D, 0x35, 0xD0, 0x4F, 0x24, 0x8A, 0x9A, 0x32,
+ 0x47, 0x77, 0x8A, 0xD3, 0xDD, 0x6B, 0x13, 0x56, 0x42, 0xB1, 0xE1, 0xB3, 0xC3, 0xD4, 0xCA, 0x1F,
+ 0x48, 0x90, 0x1D, 0xDE, 0x81, 0x0D, 0xC7, 0xBD, 0x72, 0x98, 0x56, 0x30, 0x1A, 0x51, 0x09, 0x65,
+ 0xEB, 0x05, 0x70, 0x6C, 0xFA, 0x22, 0x31, 0x80, 0x4D, 0x6C, 0xD6, 0x5B, 0x0D, 0x36, 0x3F, 0x7D,
+ 0x8E, 0x63, 0x3A, 0xDE, 0xBE, 0x21, 0xBE, 0x80, 0xE1, 0x70, 0xA2, 0x80, 0xF8, 0x9C, 0x16, 0xA6,
+ 0x7E, 0x0D, 0xEE, 0x76, 0x47, 0xAB, 0x3C, 0xA5, 0xA7, 0x21, 0xE0, 0xE6, 0xEE, 0xD7, 0xD7, 0x65,
+ 0x3B, 0xAA, 0x7D, 0x13, 0xC2, 0xAF, 0x50, 0x80, 0x3E, 0xFB, 0xB6, 0x6A, 0x59, 0xA4, 0x95, 0x90,
+ 0x29, 0xEB, 0x17, 0x93, 0x5C, 0xC4, 0xBF, 0x17, 0xE4, 0x49, 0x6C, 0x29, 0x3D, 0x4F, 0xCB, 0xFC,
+ 0xD4, 0xF5, 0x5D, 0x6D, 0xC0, 0xFA, 0xE7, 0x7F, 0xC6, 0xAF, 0xA2, 0x0B, 0xE8, 0x9D, 0xA5, 0xC0,
+ 0xA8, 0xE0, 0x26, 0xA0, 0xC6, 0xBC, 0x94, 0xBC, 0x55, 0x75, 0x5E, 0xFD, 0x19, 0xD3, 0xFD, 0xBA,
+ 0xAA, 0x75, 0x5C, 0x03, 0x57, 0x2F, 0x30, 0x97, 0x36, 0x73, 0x31, 0x88, 0xED, 0xE6, 0x03, 0x5D,
+ 0xF8, 0x76, 0x6A, 0x9F, 0x7B, 0x55, 0xE4, 0xF8, 0xBF, 0x68, 0x00, 0x75, 0x4E, 0x95, 0xDB, 0xE1,
+ 0xA5, 0x7D, 0x9D, 0x2C, 0x0C, 0x58, 0xFA, 0x26, 0x15, 0x03, 0x22, 0xC5, 0xB9, 0x8D, 0xBE, 0x96,
+ 0xC6, 0xCE, 0x11, 0x54, 0x20, 0xFB, 0x76, 0x63, 0xAA, 0x1B, 0x75, 0xA8, 0x60, 0x05, 0x3B, 0x3C,
+ 0xC0, 0xA5, 0x9F, 0x9B, 0x19, 0xCF, 0x06, 0x47, 0xC1, 0x0D, 0x89, 0x5F, 0x05, 0xE3, 0x17, 0x20,
+ 0x93, 0x87, 0x52, 0xF4, 0xC8, 0xF4, 0x9B, 0x3D, 0x94, 0x7E, 0x4A, 0x31, 0xA1, 0x96, 0x33, 0x20,
+ 0x99, 0xCE, 0xFA, 0xB8, 0x03, 0xAD, 0x16, 0xBD, 0x26, 0x5E, 0x32, 0xA0, 0x24, 0x87, 0x27, 0xFC,
+ 0x8F, 0x7C, 0x5A, 0x03, 0x5B, 0x9B, 0x43, 0xD4, 0xC7, 0xBE, 0x01, 0xBC, 0xF1, 0x20, 0x0B, 0x61,
+ 0xFD, 0x59, 0x5F, 0x2C, 0x2F, 0x9D, 0xC9, 0xA4, 0x26, 0xF2, 0x6F, 0x6F, 0x68, 0xD1, 0xC7, 0xD9,
+ 0x9F, 0xA1, 0x2A, 0x93, 0xF8, 0x40, 0xF2, 0x2D, 0x9E, 0x4D, 0xDC, 0x2F, 0xCE, 0x13, 0x30, 0x10,
+ 0x9C, 0xB8, 0x2A, 0x91, 0x0C, 0xD8, 0x9A, 0x3B, 0x68, 0x21, 0xC1, 0xC2, 0x14, 0x24, 0x24, 0xDC,
+ 0x0B, 0x50, 0xE3, 0x43, 0xDE, 0xED, 0x1D, 0x83, 0x24, 0xCC, 0x2F, 0x90, 0x2B, 0x04, 0xAE, 0xA8,
+ 0x55, 0xC3, 0x2A, 0x56, 0x46, 0xE2, 0xCE, 0xA2, 0xFB, 0x34, 0xC5, 0xA6, 0xF7, 0xDF, 0xB8, 0xDF,
+ 0xB3, 0x0B, 0x17, 0x88, 0xF4, 0x24, 0xEE, 0x3D, 0x42, 0x09, 0x37, 0x9A, 0xDD, 0x23, 0x06, 0x79,
+ 0x79, 0x8E, 0xF0, 0x3F, 0x20, 0xC5, 0xB2, 0x8F, 0xFD, 0x44, 0x39, 0xE2, 0x0B, 0x8E, 0x27, 0x4F,
+ 0x9E, 0x1F, 0xE1, 0x9D, 0x3A, 0x3F, 0x2C, 0xDF, 0x2C, 0x88, 0x11, 0xA6, 0x62, 0x80, 0xE1, 0x25,
+ 0x44, 0xB0, 0xC9, 0x12, 0x96, 0x63, 0xC8, 0x8E, 0x7D, 0xBF, 0x86, 0x93, 0x54, 0xF9, 0x1E, 0x92,
+ 0xCA, 0x13, 0x99, 0x26, 0xE6, 0xA9, 0xB8, 0x0E, 0xD8, 0xEE, 0x1A, 0x8E, 0xFA, 0xCC, 0x8B, 0xF3,
+ 0x72, 0xF0, 0xFB, 0xEB, 0xC6, 0x52, 0xF0, 0xDF, 0xEB, 0x77, 0x51, 0x05, 0xFF, 0x78, 0xE2, 0x18,
+ 0x19, 0x99, 0x8A, 0x34, 0x7F, 0xC9, 0x50, 0xEF, 0x43, 0xC7, 0xBE, 0x67, 0x83, 0x0A, 0xAA, 0x78,
+ 0x8B, 0x4B, 0xF8, 0x62, 0xDB, 0x8D, 0x7C, 0x59, 0xCF, 0x55, 0x28, 0xDB, 0xFF, 0xB4, 0x06, 0x4E,
+ 0x25, 0xAE, 0x32, 0x63, 0x87, 0x2A, 0xA6, 0x71, 0x74, 0xAD, 0x15, 0xAC, 0x43, 0x53, 0xFA, 0x36,
+ 0x41, 0xAC, 0x99, 0x4B, 0x46, 0x9B, 0xB5, 0xF2, 0x69, 0xE0, 0x09, 0xE3, 0xE2, 0x49, 0x68, 0xF2,
+ 0xF1, 0xA0, 0xC4, 0xE1, 0x44, 0x52, 0x74, 0xEB, 0x5F, 0xD6, 0x1F, 0xB4, 0xF9, 0x64, 0x41, 0x7C,
+ 0x61, 0xD7, 0xC5, 0x03, 0xC0, 0x73, 0xE9, 0x45, 0xD7, 0x60, 0xEB, 0xCD, 0x48, 0xF5, 0x08, 0x2A,
+ 0x2A, 0xE5, 0xD5, 0xB7, 0x46, 0x29, 0x8A, 0x13, 0xB1, 0x6F, 0x21, 0xEA, 0x14, 0x98, 0xA5, 0x8A,
+ 0x7D, 0x17, 0x78, 0x1B, 0xAC, 0xBE, 0x36, 0xC2, 0x4A, 0xD7, 0x6E, 0x6F, 0x14, 0x58, 0xA9, 0xBB,
+ 0xFC, 0xE0, 0xE5, 0x65, 0xAD, 0xEE, 0x14, 0x04, 0x35, 0xEB, 0xC4, 0x77, 0xE6, 0x3E, 0xE8, 0xA1,
+ 0x3D, 0x93, 0xA0, 0x2F, 0x9D, 0x4A, 0x8C, 0x48, 0xB3, 0x33, 0x4D, 0xB5, 0xC9, 0xC7, 0xAC, 0x5F,
+ 0x10, 0x11, 0xCF, 0x3A, 0x16, 0xDC, 0xB9, 0x29, 0xB2, 0x12, 0x5C, 0x4A, 0x8D, 0xE0, 0xA4, 0x04,
+ 0xE8, 0x33, 0x11, 0x1C, 0x2F, 0xCE, 0xD2, 0xAF, 0x87, 0x57, 0x83, 0xA5, 0xBE, 0xA7, 0x3D, 0x76,
+ 0x73, 0x56, 0xAB, 0xD8, 0xE4, 0xFC, 0x1C, 0xD7, 0x55, 0x57, 0x45, 0x09, 0xF3, 0xAC, 0xB9, 0x13,
+ 0xD8, 0x89, 0x93, 0xB0, 0x60, 0x30, 0xBB, 0xBE, 0x8F, 0x12, 0x88, 0xDA, 0x33, 0xED, 0xCC, 0xC3,
+ 0x82, 0x38, 0xD9, 0x14, 0xB1, 0x1F, 0x6D, 0x95, 0x39, 0xAD, 0x27, 0x33, 0x40, 0xC3, 0x6E, 0x13,
+ 0x97, 0x81, 0x7D, 0x2B, 0x0D, 0xA6, 0x67, 0x86, 0xA2, 0xC6, 0xFB, 0x97, 0xF3, 0x59, 0xCB, 0x35,
+ 0xEA, 0x8C, 0x59, 0x56, 0xC6, 0x99, 0xF7, 0x06, 0xC2, 0x55, 0x7F, 0x0D, 0x48, 0x46, 0x6D, 0x9C,
+ 0x57, 0x6A, 0x4E, 0xD5, 0x01, 0x37, 0x71, 0xDA, 0x92, 0xE4, 0x56, 0xE5, 0x5B, 0xAE, 0x52, 0x8B,
+ 0xA4, 0x0C, 0x5D, 0x7F, 0x34, 0xCA, 0x2B, 0x14, 0x48, 0x4F, 0xBA, 0x9F, 0x39, 0xBD, 0x38, 0x10,
+ 0xAB, 0x83, 0xD8, 0x03, 0xFD, 0x57, 0xFF, 0x6A, 0x65, 0x86, 0x0D, 0xBE, 0xD8, 0x38, 0x24, 0x12,
+ 0xA1, 0x10, 0xF2, 0xE0, 0xEB, 0x5A, 0x1E, 0x74, 0x6D, 0x69, 0x3C, 0xD5, 0xD1, 0x66, 0xB3, 0x63,
+ 0x4C, 0xA4, 0x80, 0x36, 0x84, 0x34, 0x1B, 0x07, 0xBC, 0xD2, 0xF3, 0x06, 0x4D, 0xA0, 0xB5, 0x5F,
+ 0xD7, 0x71, 0x1C, 0xDD, 0x10, 0x78, 0xBC, 0x7F, 0xAE, 0x0A, 0x5A, 0x29, 0xB7, 0x48, 0xDF, 0x9A,
+ 0x92, 0xE2, 0x65, 0x1D, 0xC8, 0xAD, 0xD0, 0x07, 0x24, 0xD4, 0x0C, 0x08, 0xDC, 0x3B, 0x86, 0x4C,
+ 0x62, 0xDC, 0x6E, 0xDA, 0x27, 0xB9, 0x52, 0x9A, 0x92, 0x3F, 0x4E, 0xF1, 0xCA, 0x70, 0xBD, 0x20,
+ 0x07, 0x6E, 0xF3, 0xDE, 0xA9, 0x91, 0xDD, 0x61, 0xBB, 0xBB, 0x3A, 0x61, 0x9B, 0xDA, 0x07, 0xDA,
+ 0xB0, 0x06, 0x99, 0x79, 0xDA, 0x38, 0x4B, 0x23, 0xF2, 0x7E, 0x84, 0x5D, 0x90, 0x5F, 0x02, 0x03,
+ 0x68, 0x31, 0x73, 0x0B, 0x8A, 0xAC, 0xCF, 0xCE, 0xD4, 0x07, 0xDE, 0xFF, 0x80, 0x65, 0xAC, 0x9E,
+ 0xFE, 0xD9, 0x17, 0xD3, 0xAB, 0x2A, 0x34, 0xC1, 0x2D, 0x62, 0xD6, 0xF7, 0xFD, 0x7E, 0xA3, 0x8B,
+ 0x08, 0xA7, 0x45, 0x60, 0x52, 0x36, 0x35, 0x87, 0x1B, 0x15, 0xA3, 0xDC, 0xA8, 0x0F, 0x87, 0x6B,
+ 0x81, 0x59, 0xFF, 0xD6, 0x87, 0xAE, 0x54, 0xC0, 0xD0, 0x55, 0x33, 0x1A, 0x7A, 0xE1, 0xBE, 0xEE,
+ 0x2E, 0x0B, 0xFC, 0xED, 0x24, 0xF8, 0x42, 0x83, 0x70, 0x60, 0xF6, 0xBA, 0x47, 0x03, 0x8D, 0x2B,
+ 0x2D, 0x6A, 0xD0, 0xC4, 0xD6, 0x71, 0xEC, 0x39, 0x17, 0x10, 0x69, 0xDD, 0x78, 0x85, 0xFF, 0xCC,
+ 0x6B, 0xC7, 0x5E, 0xC2, 0xF7, 0x2B, 0x60, 0x93, 0xE6, 0x8D, 0x0E, 0x58, 0xF1, 0x7B, 0x31, 0xA7,
+ 0x5B, 0xC4, 0xA3, 0x05, 0xBB, 0xB9, 0x40, 0xE7, 0x86, 0x56, 0x3F, 0x47, 0xB8, 0xB1, 0xAF, 0xD4,
+ 0xE2, 0xC1, 0x22, 0xBF, 0x17, 0x55, 0xB7, 0xB9, 0x7B, 0x8F, 0xCD, 0x50, 0xF2, 0x91, 0x1D, 0x0C,
+ 0xAF, 0x34, 0xA8, 0x87, 0xC4, 0x77, 0xB6, 0x1D, 0x82, 0xA5, 0xA9, 0x9E, 0x17, 0x02, 0x7B, 0xB7,
+ 0x90, 0x01, 0x08, 0xB9, 0xA2, 0xD9, 0x7A, 0x87, 0x6F, 0x62, 0xCB, 0x26, 0xF6, 0xE5, 0x61, 0x90,
+ 0x63, 0x76, 0xDA, 0x87, 0xE5, 0xD9, 0x12, 0xC6, 0x3B, 0xFC, 0xDB, 0xBE, 0x86, 0xF4, 0x00, 0x89,
+ 0xD5, 0xD4, 0x2F, 0x36, 0x21, 0x66, 0xC2, 0x5E, 0x39, 0x9C, 0x77, 0xE4, 0x27, 0xEF, 0xF4, 0x8A,
+ 0x6A, 0xBC, 0x8A, 0xD6, 0xC4, 0x01, 0x47, 0x0F, 0x5B, 0x19, 0x18, 0xF6, 0x8D, 0x5D, 0x25, 0xB9,
+ 0xD9, 0x72, 0x7D, 0x67, 0x8F, 0xAA, 0x17, 0x3A, 0xF5, 0x08, 0x26, 0xB3, 0x46, 0xAD, 0x38, 0x35,
+ 0x54, 0x8F, 0x50, 0xBD, 0xC5, 0xC3, 0xF6, 0x32, 0xDD, 0x74, 0x6A, 0xD7, 0xD8, 0x9A, 0x92, 0x9B,
+ 0xCE, 0x17, 0x02, 0x9F, 0xAB, 0xCF, 0x2A, 0x99, 0x7E, 0x1A, 0x60, 0xFB, 0x1A, 0x8F, 0x25, 0x58,
+ 0xA3, 0x9A, 0x1D, 0x8B, 0xAB, 0x90, 0x5B, 0x57, 0xF3, 0x68, 0x7C, 0xBC, 0x19, 0x5A, 0x94, 0xE2,
+ 0x4B, 0x5C, 0xEE, 0xE5, 0xEF, 0x88, 0x72, 0x22, 0x44, 0x16, 0xFA, 0x78, 0x35, 0xE7, 0x44, 0xED,
+ 0xAA, 0xBC, 0x4F, 0xE5, 0x3F, 0x26, 0x8E, 0x9E, 0xBD, 0x91, 0xDF, 0x14, 0x1E, 0xE5, 0x03, 0x6E,
+ 0xED, 0x2D, 0x39, 0xB5, 0x9E, 0xEA, 0x51, 0x08, 0x7E, 0x87, 0xB4, 0xA1, 0xCD, 0x1D, 0x9A, 0x37,
+ 0xE0, 0x89, 0x13, 0x3B, 0xC0, 0x01, 0x85, 0x6B, 0xAD, 0xED, 0xB6, 0x38, 0xF5, 0xD5, 0x13, 0x33,
+ 0xA1, 0x79, 0x88, 0xB5, 0xB8, 0x46, 0x48, 0x7A, 0xDF, 0xAB, 0x11, 0x1B, 0x8E, 0x7E, 0x95, 0x9A,
+ 0x36, 0x80, 0x7F, 0x22, 0x24, 0x47, 0x01, 0x5C, 0x20, 0xCD, 0xDD, 0x24, 0xD0, 0x9F, 0x3E, 0xE3,
+ 0x45, 0x04, 0x53, 0xAE, 0xA2, 0x96, 0x57, 0x9B, 0x32, 0xAD, 0xB1, 0x94, 0xAA, 0xDA, 0xAB, 0x77,
+ 0xD7, 0x89, 0x45, 0xF2, 0x34, 0xC3, 0x37, 0x74, 0xF9, 0xD6, 0xD0, 0xBF, 0x85, 0x0A, 0xE7, 0xAD,
+ 0x7D, 0x54, 0xA4, 0xD2, 0x7B, 0x0A, 0x43, 0xF2, 0x87, 0x7A, 0x5F, 0x64, 0x04, 0x6F, 0x0C, 0x4D,
+ 0x35, 0xBB, 0x83, 0x5E, 0x30, 0xE4, 0x00, 0x58, 0xAF, 0x1A, 0xF2, 0x91, 0xB2, 0xA6, 0x1B, 0x42,
+ 0xB0, 0xFB, 0xFA, 0x5F, 0xD2, 0xFE, 0xB7, 0x61, 0xA5, 0x0A, 0x26, 0x22, 0xFC, 0xA9, 0x84, 0xE1,
+ 0xAD, 0xDF, 0x59, 0xAE, 0xF3, 0xC7, 0xFE, 0x0F, 0x3B, 0x42, 0x16, 0xE4, 0xD5, 0x41, 0x4A, 0x42,
+ 0x6B, 0x2B, 0x46, 0xB5, 0x19, 0xED, 0x31, 0x19, 0xED, 0x35, 0x13, 0xE7, 0x54, 0xAC, 0xB9, 0xBD,
+ 0x0E, 0x38, 0x9A, 0x59, 0xE1, 0x07, 0xFB, 0xEC, 0x48, 0x9A, 0x4F, 0x62, 0xA1, 0x23, 0x92, 0xCA,
+ 0xEC, 0x78, 0x14, 0x5B, 0x06, 0xFD, 0x3E, 0xC0, 0xB1, 0x70, 0x59, 0x1E, 0x96, 0x8C, 0xDF, 0x34,
+ 0x76, 0x19, 0x99, 0x08, 0x1C, 0xAF, 0x03, 0xE6, 0x0F, 0x7A, 0x6D, 0xD7, 0xC3, 0x66, 0x96, 0x97,
+ 0x88, 0x97, 0xD2, 0x37, 0x22, 0x58, 0x64, 0x88, 0x3E, 0x3C, 0xE1, 0xA8, 0xAC, 0x20, 0x6F, 0x87,
+ 0x68, 0x6F, 0xC4, 0x6A, 0xAC, 0x6B, 0xD3, 0x1F, 0xD1, 0x83, 0xC2, 0x7B, 0x62, 0x65, 0x2D, 0xB9,
+ 0x52, 0x14, 0x34, 0x55, 0xF2, 0x75, 0x89, 0x4E, 0x5F, 0x63, 0x46, 0x02, 0xF9, 0xBD, 0x4D, 0x2D,
+ 0x02, 0x22, 0x4B, 0xF1, 0x9A, 0x78, 0xAE, 0x39, 0x78, 0x9D, 0x38, 0x9E, 0xE8, 0x05, 0x55, 0x3F,
+ 0x73, 0xCD, 0x76, 0xB5, 0x0C, 0xCD, 0xDB, 0x71, 0xB0, 0x73, 0x39, 0x92, 0x25, 0xF3, 0xE9, 0x53,
+ 0xE2, 0x0F, 0x89, 0x99, 0x48, 0x41, 0x7A, 0x83, 0xED, 0xC2, 0xCF, 0x17, 0x7B, 0xD8, 0x2A, 0x0C,
+ 0xF9, 0x89, 0x51, 0x8B, 0xC1, 0xC7, 0xD6, 0x46, 0x51, 0x50, 0x1F, 0x83, 0xA1, 0x6E, 0x84, 0x1A,
+ 0xA0, 0xCD, 0x4F, 0xB0, 0xFA, 0xF6, 0x2B, 0x56, 0xB5, 0x4C, 0x1A, 0x88, 0xCF, 0xD4, 0x9A, 0x72,
+ 0x50, 0xB2, 0x62, 0x4C, 0xE0, 0x5C, 0x15, 0x62, 0xCC, 0x21, 0x4A, 0x45, 0xD4, 0x67, 0xBD, 0x64,
+ 0x9C, 0xF5, 0x54, 0xDF, 0x60, 0x9F, 0xC0, 0x07, 0x9D, 0x08, 0xBA, 0xFB, 0x6F, 0xEF, 0x6B, 0x54,
+ 0xBC, 0xAF, 0xC5, 0x29, 0xEC, 0x55, 0x32, 0xD5, 0x72, 0x87, 0x4D, 0x50, 0xC2, 0x56, 0xF7, 0x94,
+ 0xE8, 0x1D, 0xFA, 0x06, 0x1D, 0x52, 0xC6, 0x32, 0x5E, 0xC5, 0x77, 0xD2, 0x3E, 0x9D, 0xB7, 0x6C,
+ 0x0F, 0x89, 0x32, 0x26, 0xE2, 0xFE, 0xA4, 0x04, 0x48, 0x15, 0xBB, 0x50, 0xA4, 0xA2, 0x73, 0x28,
+ 0x80, 0x60, 0x03, 0x66, 0xF8, 0x05, 0x2F, 0xC6, 0x75, 0x4E, 0xF7, 0x9A, 0x72, 0xA8, 0x8D, 0x35,
+ 0x98, 0x60, 0x0F, 0x2F, 0xF4, 0x2D, 0x0D, 0x2B, 0x69, 0xB3, 0xE9, 0x16, 0x9B, 0xF5, 0xBF, 0x7F,
+ 0xEE, 0xBA, 0x9C, 0xC5, 0x43, 0xFA, 0x84, 0xF4, 0xBC, 0x5D, 0x0B, 0x6A, 0x3D, 0xCD, 0x72, 0xCD,
+ 0x08, 0x7A, 0x7E, 0x75, 0xD2, 0x14, 0x78, 0xAB, 0xC6, 0xA8, 0x7B, 0x4D, 0x25, 0xCB, 0x0F, 0xC5,
+ 0x90, 0xE8, 0x78, 0x1C, 0xAE, 0xD9, 0xAF, 0x7E, 0xC0, 0xA7, 0xEA, 0x34, 0x1B, 0xD9, 0x78, 0xF2,
+ 0x42, 0xFA, 0x33, 0x57, 0x3A, 0x82, 0x61, 0x8A, 0xF6, 0xFC, 0xB2, 0xB4, 0x71, 0x24, 0x6A, 0x08,
+ 0xEB, 0xB0, 0x16, 0x00, 0xA1, 0x88, 0x3C, 0x50, 0x4E, 0xF9, 0x3D, 0xFF, 0xE7, 0xA7, 0x28, 0xE4,
+ 0xDE, 0x08, 0x50, 0x92, 0x3A, 0xF8, 0x53, 0x2E, 0x9A, 0x34, 0x99, 0xE4, 0x4D, 0xA5, 0x92, 0x38,
+ 0x29, 0xAF, 0x85, 0xAF, 0x0A, 0x48, 0xCC, 0xB4, 0x9E, 0xB0, 0x97, 0x34, 0xB2, 0x91, 0x65, 0x65,
+ 0x1E, 0xC3, 0x8B, 0xDB, 0x76, 0xCA, 0xD1, 0xA9, 0x9B, 0xC7, 0xFF, 0x34, 0x09, 0x92, 0xAA, 0xFF,
+ 0xD2, 0xC8, 0xD7, 0xD1, 0x3E, 0xAC, 0xC8, 0x95, 0x69, 0x93, 0xC3, 0x7A, 0xAF, 0x58, 0xB1, 0x41,
+ 0x09, 0xA9, 0x1F, 0xBE, 0xAA, 0x2C, 0x22, 0xB8, 0x48, 0x4C, 0x10, 0x7D, 0x92, 0x06, 0xFC, 0x45,
+ 0x8A, 0xF5, 0x2F, 0x69, 0x82, 0x07, 0x3F, 0xEC, 0x4A, 0xA9, 0x1B, 0xED, 0xA6, 0x94, 0xAD, 0x1D,
+ 0x9B, 0xF0, 0x4E, 0x8D, 0x28, 0x1D, 0x47, 0x4F, 0x4B, 0x6F, 0x96, 0xAA, 0x2E, 0x9E, 0xA8, 0x83,
+ 0xDC, 0xD5, 0x9E, 0x07, 0x76, 0x7C, 0x62, 0x68, 0x33, 0x87, 0xC4, 0xA7, 0x7D, 0xF0, 0x3B, 0x0C,
+ 0x2D, 0xA1, 0x29, 0xDE, 0x16, 0xE6, 0x0C, 0xFA, 0x97, 0x6F, 0x4E, 0xE4, 0x62, 0x82, 0xCA, 0xEB,
+ 0x75, 0x4D, 0x06, 0xFD, 0x31, 0xB6, 0x5C, 0x03, 0x32, 0x51, 0xFD, 0x76, 0x0E, 0x7F, 0x60, 0x16,
+ 0xC1, 0x94, 0xE1, 0xB9, 0x3A, 0xDD, 0x17, 0x11, 0x23, 0x55, 0xB5, 0x6C, 0x25, 0xC7, 0x15, 0x24,
+ 0xB9, 0xEC, 0xB8, 0xF0, 0xF7, 0x34, 0x25, 0xFA, 0x49, 0x96, 0x71, 0x79, 0x18, 0x86, 0x29, 0xC0,
+ 0x07, 0x07, 0x98, 0x17, 0xA7, 0x25, 0xB3, 0x93, 0x76, 0xB3, 0x5D, 0x22, 0x19, 0x14, 0x8A, 0x02,
+ 0x83, 0x8F, 0xD5, 0x8C, 0x77, 0xCB, 0x34, 0xC3, 0xC2, 0xEC, 0xBF, 0x19, 0x5C, 0x74, 0xF2, 0x35,
+ 0x2E, 0x69, 0x3F, 0xA9, 0xD9, 0xD5, 0x3A, 0xC3, 0x3E, 0x2E, 0xE3, 0xA9, 0x1B, 0xBE, 0x6A, 0xA1,
+ 0xF4, 0xCD, 0x3B, 0xF3, 0x1C, 0x7A, 0x8B, 0x75, 0x47, 0xE8, 0xC5, 0x26, 0x56, 0x49, 0x3C, 0x14,
+ 0x8D, 0x82, 0xE7, 0x67, 0xB1, 0x25, 0x1C, 0x7C, 0x21, 0x8D, 0x21, 0x01, 0xF2, 0x93, 0x86, 0x0F,
+ 0x55, 0x3F, 0xE3, 0xED, 0xE6, 0x6A, 0x63, 0x2B, 0x3A, 0xAD, 0x3B, 0x05, 0xAA, 0x70, 0xB0, 0x6C,
+ 0x95, 0x18, 0x24, 0x91, 0x5B, 0x7A, 0x2C, 0x20, 0xFD, 0x21, 0x87, 0x22, 0xCB, 0x27, 0xEB, 0xD7,
+ 0xCA, 0x7C, 0x1D, 0x08, 0xE4, 0xB6, 0x40, 0xBB, 0x13, 0x5D, 0x81, 0xC4, 0xA6, 0x30, 0xA6, 0x70,
+ 0x33, 0x55, 0xEF, 0x94, 0x8B, 0xBB, 0xC9, 0xB6, 0xFE, 0x45, 0x19, 0xD0, 0x9C, 0xF1, 0xC8, 0x6B,
+ 0x44, 0x5F, 0x03, 0x21, 0x29, 0xAA, 0x04, 0xAC, 0x22, 0x97, 0xB8, 0xE1, 0x5C, 0x4C, 0x58, 0xD5,
+ 0x5E, 0xA7, 0x86, 0x96, 0xEA, 0xB7, 0x18, 0x42, 0xBB, 0x2E, 0xAB, 0xB8, 0xAF, 0x28, 0xB4, 0xC5,
+ 0xF8, 0xD3, 0x48, 0xE9, 0x5D, 0xBF, 0xE6, 0x2F, 0x7F, 0xF5, 0xE4, 0x62, 0x5F, 0x6C, 0x86, 0x06,
+ 0x69, 0xA1, 0x19, 0xB1, 0x5E, 0x18, 0x12, 0xC8, 0xE3, 0xCB, 0x79, 0x40, 0xFB, 0xFC, 0x71, 0x60,
+ 0xFE, 0x8E, 0x0E, 0x4B, 0x4A, 0x2C, 0x85, 0x7D, 0xDC, 0x02, 0x10, 0xE3, 0xDA, 0x95, 0x93, 0xD3,
+ 0x0A, 0x4D, 0xB7, 0x05, 0xAF, 0xB8, 0x14, 0xE5, 0x2B, 0x43, 0x80, 0x7D, 0x92, 0x08, 0x45, 0x92,
+ 0xF4, 0x8F, 0x8A, 0x34, 0x20, 0x30, 0xB2, 0xFE, 0x18, 0xE9, 0xC4, 0x53, 0x82, 0x47, 0x61, 0x4C,
+ 0xE8, 0x19, 0x62, 0xB6, 0xF2, 0x39, 0xA8, 0x19, 0xA7, 0x03, 0xA0, 0xD6, 0xA4, 0x54, 0x7F, 0x2B,
+ 0x25, 0x2C, 0x0D, 0x1E, 0x54, 0x11, 0xDF, 0x65, 0xB9, 0x1F, 0x1D, 0x27, 0x2E, 0xF5, 0xDB, 0xF6,
+ 0xAC, 0xB8, 0xF1, 0x1A, 0x36, 0x39, 0x26, 0x23, 0x4C, 0xA5, 0xDC, 0xBE, 0x77, 0x6D, 0x25, 0xB6,
+ 0xC0, 0x10, 0xA0, 0x2F, 0xE5, 0x43, 0x79, 0x2C, 0xF0, 0x0E, 0xCB, 0x76, 0x8C, 0x6B, 0x57, 0x8E,
+ 0x8F, 0xAC, 0x20, 0x25, 0x6F, 0x7C, 0xB9, 0xE0, 0x84, 0x2C, 0x9C, 0xB4, 0x4F, 0xD7, 0xDA, 0xBD,
+ 0xF0, 0x5A, 0xF9, 0x1C, 0x66, 0x8C, 0x61, 0x13, 0xBB, 0x27, 0x7F, 0x5C, 0x6E, 0xCD, 0x6B, 0xE6,
+ 0x67, 0x56, 0x04, 0xC0, 0xA3, 0x9B, 0x18, 0x93, 0xBB, 0xE2, 0xA5, 0x82, 0xFE, 0x29, 0x37, 0xBE,
+ 0xD6, 0x5A, 0x6E, 0x07, 0x65, 0x40, 0xC2, 0x86, 0xBA, 0x22, 0x52, 0x82, 0x8A, 0x0F, 0xDF, 0xE3,
+ 0xD8, 0x2D, 0x14, 0x50, 0x7B, 0xD7, 0x6F, 0x95, 0xC7, 0x72, 0x98, 0x2D, 0x4F, 0x53, 0xB3, 0x97,
+ 0x5F, 0x87, 0x7D, 0x82, 0x81, 0x2C, 0xEB, 0x0A, 0xC8, 0xF4, 0xF8, 0x50, 0xDE, 0xB1, 0x9F, 0x16,
+ 0xC9, 0x23, 0x2E, 0xF0, 0xE6, 0xE9, 0x55, 0xA8, 0xCF, 0xB4, 0x6A, 0x2B, 0x02, 0x9D, 0xFB, 0xED,
+ 0xFB, 0xC2, 0x22, 0x8E, 0x53, 0x65, 0x2D, 0xBC, 0x9B, 0xAF, 0x2B, 0xCD, 0x87, 0x59, 0x39, 0xE9,
+ 0xB0, 0xFA, 0x5A, 0x51, 0x4D, 0xBF, 0x99, 0xAB, 0xEE, 0x42, 0x93, 0x6B, 0x71, 0x11, 0xEB, 0x6C,
+ 0xE0, 0xFB, 0xCB, 0x56, 0x2E, 0xEA, 0xC1, 0x8A, 0xD3, 0x8E, 0x6E, 0x88, 0x24, 0xA2, 0xD2, 0x6C,
+ 0x8E, 0x58, 0x49, 0x81, 0x9F, 0x05, 0x30, 0x6F, 0x5F, 0xD9, 0x1C, 0x5B, 0xC4, 0x28, 0x9E, 0x72,
+ 0xAB, 0x3B, 0x21, 0xE8, 0x00, 0x31, 0x77, 0xA8, 0xA9, 0x69, 0x72, 0xD0, 0x95, 0x7A, 0xE8, 0x74,
+ 0xD3, 0xE6, 0xEE, 0x10, 0xE1, 0x0F, 0x66, 0x2A, 0x0B, 0xEF, 0x78, 0x88, 0x39, 0xF7, 0x11, 0x50,
+ 0xCE, 0x1E, 0x3F, 0xA4, 0x53, 0xCA, 0xE5, 0x4A, 0xF4, 0x9A, 0xEA, 0xDA, 0x0C, 0xFC, 0xF5, 0x4D,
+ 0x24, 0x25, 0x17, 0xEC, 0x48, 0x3D, 0x3E, 0xBF, 0x29, 0xC2, 0xB4, 0xED, 0xD3, 0x2F, 0x08, 0x32,
+ 0x3D, 0x51, 0x3D, 0xAE, 0xF7, 0x96, 0xF2, 0x27, 0xCA, 0x4F, 0x7E, 0x70, 0x01, 0x13, 0xD0, 0xAE,
+ 0x20, 0x6C, 0x60, 0x9F, 0xAA, 0x64, 0xC5, 0x75, 0xB9, 0xBD, 0x7D, 0xBF, 0x7E, 0x7B, 0x28, 0x83,
+ 0xBF, 0x4F, 0x16, 0x22, 0xF0, 0xA1, 0x32, 0xAE, 0xB5, 0xA2, 0x49, 0x89, 0x3A, 0x75, 0xB6, 0x99,
+ 0xD0, 0x26, 0x22, 0x7D, 0xF6, 0x8B, 0x07, 0xC2, 0x7C, 0xE4, 0x4B, 0x4C, 0x4B, 0xD1, 0xCF, 0x84,
+ 0x8D, 0x6C, 0x33, 0x1C, 0x3A, 0xF4, 0xAE, 0xA4, 0x8C, 0x28, 0xC8, 0xCD, 0xDC, 0x5E, 0x38, 0x3B,
+ 0x43, 0xBD, 0x1A, 0xF1, 0x3B, 0xCF, 0x7C, 0xD1, 0x15, 0x01, 0x35, 0xB1, 0xDD, 0x06, 0xEA, 0x59,
+ 0x94, 0xA0, 0xAB, 0x24, 0xE3, 0xFA, 0xE4, 0x3F, 0x7C, 0x8B, 0x27, 0x26, 0xD6, 0x97, 0xFF, 0x54,
+ 0x68, 0xFC, 0xC4, 0x0C, 0x5F, 0x59, 0x02, 0x91, 0x38, 0x92, 0x21, 0x47, 0x98, 0xE7, 0xBE, 0x45,
+ 0xE1, 0x48, 0xC8, 0xCF, 0x56, 0x6C, 0x74, 0x2C, 0x6C, 0xE3, 0x19, 0x70, 0x14, 0x05, 0xFE, 0x47,
+ 0xC3, 0x64, 0x38, 0x5C, 0x9B, 0xD1, 0x6C, 0x54, 0x4C, 0x0B, 0x44, 0x89, 0xF8, 0x1B, 0xBE, 0x04,
+ 0x48, 0xCC, 0x9F, 0xAA, 0xDC, 0x5D, 0xE3, 0x47, 0x42, 0x42, 0x4E, 0x3C, 0xC3, 0x57, 0xA4, 0x52,
+ 0x2A, 0x24, 0xC2, 0xEB, 0x76, 0x24, 0x04, 0x4D, 0x03, 0xE2, 0x71, 0xCF, 0x81, 0x9B, 0x95, 0x40,
+ 0xDE, 0x1D, 0xE7, 0x24, 0x16, 0x88, 0x50, 0xD1, 0xB0, 0x44, 0xBA, 0x97, 0xF4, 0xA1, 0x55, 0x1E,
+ 0x2C, 0xC5, 0xF0, 0x9C, 0x54, 0xD2, 0x70, 0x78, 0x17, 0x9A, 0x03, 0xE0, 0x02, 0x56, 0x00, 0x89,
+ 0xF9, 0x05, 0x54, 0x4B, 0x62, 0xF3, 0xBC, 0xBA, 0xCB, 0xDC, 0x8B, 0x1C, 0xB8, 0xA6, 0xA6, 0xA0,
+ 0xC7, 0x54, 0x29, 0x52, 0x90, 0x1F, 0x4C, 0xBA, 0xF2, 0x60, 0x38, 0x48, 0xC9, 0xF6, 0xEA, 0x4D,
+ 0x3A, 0xE5, 0xC0, 0xE9, 0x63, 0xF8, 0x15, 0x87, 0xA0, 0xC1, 0x82, 0x13, 0x0C, 0xF3, 0xC1, 0x65,
+ 0x96, 0x09, 0x26, 0x98, 0xAF, 0x7C, 0x0E, 0xAA, 0x6E, 0xFB, 0x34, 0xF2, 0xBC, 0x23, 0xCD, 0x20,
+ 0x37, 0xF7, 0xDD, 0x5F, 0xAA, 0x7B, 0x9F, 0xA2, 0x07, 0x6F, 0x1F, 0x02, 0x9E, 0xD5, 0xA9, 0x4E,
+ 0x42, 0xA3, 0x3A, 0x43, 0xF4, 0xDD, 0xEE, 0x77, 0x12, 0x02, 0xE9, 0x59, 0xCB, 0xD4, 0xEC, 0xCC,
+ 0x65, 0x07, 0xDE, 0x9C, 0xCD, 0x16, 0xBE, 0xDE, 0xF9, 0x45, 0x51, 0xD3, 0x03, 0xAA, 0xC0, 0x5D,
+ 0x3F, 0x10, 0x8D, 0x92, 0x27, 0x07, 0x84, 0x31, 0x75, 0x4A, 0x89, 0x7C, 0x4B, 0x2E, 0x59, 0x15,
+ 0x88, 0x6F, 0x47, 0x84, 0x71, 0x7C, 0x64, 0x15, 0x70, 0x29, 0xCC, 0x82, 0x5F, 0x0D, 0x87, 0x18,
+ 0xEF, 0xE5, 0xC1, 0xB4, 0xFA, 0x56, 0x9A, 0xAB, 0xA4, 0x5F, 0x8A, 0x29, 0xE2, 0x81, 0x15, 0x54,
+ 0xD2, 0x66, 0x84, 0xDD, 0x74, 0x49, 0x00, 0x8B, 0xA0, 0x9A, 0x60, 0x67, 0xBE, 0xB5, 0x80, 0xD9,
+ 0x17, 0x3E, 0x7B, 0x10, 0x07, 0x06, 0xE2, 0xA2, 0xC6, 0xC2, 0xCF, 0xDE, 0x2D, 0xA3, 0xF2, 0x5F,
+ 0xDD, 0x4F, 0x65, 0x40, 0x2B, 0x57, 0x87, 0x68, 0x5B, 0xBB, 0x40, 0xC2, 0xAE, 0xFF, 0x46, 0xAE,
+ 0x12, 0xD2, 0x64, 0xC5, 0xA1, 0xC3, 0x41, 0x27, 0x8F, 0xD3, 0xAD, 0x6F, 0x91, 0xFA, 0x1A, 0xF8,
+ 0x5B, 0x4D, 0x6F, 0x16, 0x89, 0x74, 0x5C, 0x82, 0x82, 0xFB, 0x45, 0x98, 0x08, 0xCA, 0x22, 0x92,
+ 0xEC, 0xB5, 0x03, 0xD7, 0x35, 0xBA, 0xD9, 0x9C, 0x02, 0x7D, 0x4A, 0xC9, 0xE4, 0x1E, 0x72, 0x61,
+ 0xAF, 0xBD, 0xBE, 0x4C, 0x0B, 0x28, 0x91, 0xF4, 0xC3, 0xB9, 0x83, 0xDE, 0x64, 0xB3, 0xA0, 0x00,
+ 0xDB, 0x18, 0xB0, 0x66, 0x3E, 0xBB, 0x3B, 0xDA, 0x06, 0xE3, 0xE6, 0x99, 0x73, 0x3C, 0xAB, 0x7C,
+ 0xBB, 0x7A, 0x9B, 0x36, 0x67, 0x96, 0xA9, 0x69, 0x77, 0x50, 0x36, 0x5D, 0xCE, 0x5D, 0x9D, 0xBA,
+ 0xED, 0xC0, 0x5E, 0x78, 0x5D, 0xDA, 0xDA, 0x26, 0x28, 0x2D, 0x73, 0x34, 0xC9, 0x31, 0x4B, 0x15,
+ 0xA4, 0xBC, 0x9F, 0xBC, 0x3D, 0x87, 0x4D, 0x1C, 0x9F, 0x04, 0x92, 0x9D, 0x87, 0xFD, 0xE2, 0xEF,
+ 0x69, 0x13, 0x43, 0x6A, 0x5E, 0x1C, 0x0C, 0x02, 0xE6, 0xCB, 0x39, 0xB1, 0xB2, 0x5A, 0x7C, 0xD7,
+ 0xBD, 0x58, 0x30, 0xBA, 0xD2, 0x72, 0x01, 0xCE, 0x87, 0xAE, 0xF1, 0x2F, 0xD2, 0x58, 0xEB, 0x2E,
+ 0x62, 0xBF, 0xF5, 0x20, 0xB5, 0x0D, 0x46, 0x8B, 0x06, 0x3B, 0x09, 0x02, 0xE3, 0x33, 0x3B, 0xF7,
+ 0x9E, 0x89, 0xC8, 0xED, 0x99, 0x02, 0xA7, 0xE9, 0xDF, 0xD0, 0x0B, 0x72, 0x20, 0x16, 0xD2, 0x0B,
+ 0xB7, 0x91, 0x13, 0x9F, 0x6B, 0xD9, 0x4F, 0xA5, 0x7F, 0x8F, 0xB6, 0xB4, 0x02, 0x90, 0x02, 0x4B,
+ 0xC6, 0x7B, 0x84, 0x38, 0x85, 0xD6, 0x22, 0x2F, 0x6B, 0xC9, 0x63, 0x66, 0x93, 0x8C, 0xB4, 0x17,
+ 0x1A, 0x1A, 0xAD, 0x0D, 0x25, 0x09, 0xB8, 0xBD, 0xE6, 0x17, 0x76, 0x7F, 0xCE, 0x86, 0x42, 0x12,
+ 0xE6, 0x2D, 0x98, 0x45, 0x17, 0x9A, 0xE0, 0x0C, 0x26, 0xFC, 0x58, 0x5D, 0x7B, 0xBD, 0x09, 0x05,
+ 0x8E, 0xFF, 0xE8, 0x47, 0xFB, 0x51, 0xE3, 0x73, 0x5A, 0xC6, 0x6F, 0xC9, 0xB0, 0xA0, 0xC5, 0xC6,
+ 0xB2, 0x2B, 0xF9, 0x37, 0x91, 0x5B, 0x29, 0x55, 0x6F, 0x34, 0xA3, 0xA5, 0xEF, 0xB9, 0x70, 0x8F,
+ 0x61, 0xF8, 0x29, 0x72, 0x93, 0xBE, 0x77, 0xE1, 0x13, 0xC7, 0x78, 0x6A, 0xBE, 0x53, 0x08, 0x60,
+ 0x6A, 0x46, 0xEC, 0xA6, 0xA6, 0xAA, 0xE5, 0x71, 0x02, 0x1A, 0xFB, 0xA2, 0x7E, 0x4E, 0x43, 0x99,
+ 0xE7, 0x31, 0x24, 0x06, 0xB4, 0x49, 0xEF, 0x4C, 0x86, 0x25, 0xEA, 0xE8, 0x50, 0x36, 0x73, 0x56,
+ 0xB5, 0x87, 0xC5, 0xA0, 0x3B, 0xF9, 0x81, 0xE2, 0xA7, 0x39, 0xAD, 0xAA, 0x09, 0x13, 0x38, 0x21,
+ 0x3F, 0xB2, 0x47, 0x6A, 0xA2, 0xD8, 0xF3, 0x22, 0x5B, 0xCC, 0x5C, 0x06, 0x84, 0x7D, 0x11, 0x3E,
+ 0x86, 0xED, 0x17, 0x3A, 0xC6, 0xEE, 0xD9, 0xC6, 0x39, 0x64, 0xF1, 0x39, 0x43, 0x5E, 0x45, 0x5C,
+ 0x98, 0xBC, 0x89, 0xE6, 0x43, 0xE7, 0x84, 0x06, 0xDE, 0x69, 0xE9, 0xF2, 0x10, 0x7C, 0xDB, 0xF5,
+ 0x7A, 0xEB, 0x71, 0x2E, 0x6A, 0x5F, 0xBC, 0x02, 0x46, 0xB1, 0x9F, 0x38, 0x2B, 0xF5, 0x52, 0x6B,
+ 0x0A, 0xC0, 0x2F, 0xEF, 0x70, 0x10, 0xBA, 0x41, 0x26, 0x3A, 0x79, 0xE6, 0x5D, 0x09, 0x60, 0xCF,
+ 0x9B, 0x15, 0x70, 0xAF, 0xE7, 0x39, 0xA8, 0xBB, 0xC5, 0xB3, 0xE1, 0xB0, 0xE2, 0xDE, 0xEC, 0x7C,
+ 0xC3, 0xD0, 0x35, 0x40, 0x38, 0x2D, 0x55, 0x34, 0x7D, 0xB7, 0x33, 0xF9, 0x4E, 0x10, 0xED, 0x11,
+ 0x4C, 0xAE, 0x5A, 0xA3, 0xBE, 0x8F, 0xD6, 0x16, 0x05, 0x9F, 0x9A, 0xE6, 0xB8, 0x4D, 0xFF, 0x41,
+ 0xE8, 0x34, 0x56, 0xFA, 0x53, 0x50, 0xD4, 0x51, 0x3A, 0x67, 0xAF, 0x62, 0x1A, 0x22, 0xC6, 0x70,
+ 0x4A, 0x87, 0x26, 0xCB, 0xE7, 0x81, 0x01, 0xDF, 0xF7, 0x55, 0x24, 0xB4, 0x9A, 0x12, 0x07, 0x17,
+ 0xF6, 0xEE, 0xFB, 0x58, 0xC7, 0xFD, 0x56, 0x1F, 0x8F, 0x1C, 0xE4, 0xE5, 0x1E, 0x5D, 0xA8, 0x51,
+ 0xF0, 0x3C, 0x99, 0xFD, 0x96, 0xFC, 0x41, 0x5E, 0xD2, 0xD9, 0xBB, 0xED, 0xD0, 0x31, 0xCE, 0x88,
+ 0x68, 0xA1, 0xED, 0x79, 0x17, 0xEC, 0x80, 0x2B, 0xF0, 0x4B, 0x42, 0xF3, 0x08, 0xB8, 0xBC, 0x09,
+ 0xC9, 0xA4, 0x5E, 0x2C, 0x80, 0x8A, 0x3D, 0x23, 0xF5, 0x17, 0x35, 0x6F, 0x90, 0x75, 0x03, 0x9F,
+ 0xDA, 0x1F, 0x58, 0x93, 0xB0, 0xCA, 0x59, 0xAF, 0x62, 0x58, 0x2F, 0x5B, 0x66, 0x69, 0x67, 0x53,
+ 0x95, 0xAB, 0xD8, 0xB7, 0x61, 0xEB, 0x1D, 0x41, 0x30, 0x55, 0x89, 0xD6, 0xAA, 0x97, 0x6F, 0x49,
+ 0x08, 0xEC, 0x4E, 0xB8, 0x7E, 0x36, 0x8D, 0x96, 0x06, 0x4B, 0x18, 0xEE, 0xE6, 0x63, 0x07, 0x5E,
+ 0x8C, 0xAF, 0xE5, 0x1A, 0x1E, 0x0B, 0x0E, 0x86, 0xEC, 0x0D, 0x04, 0x7A, 0xC4, 0x2D, 0xAF, 0xE9,
+ 0xC4, 0x50, 0x08, 0x99, 0x52, 0x17, 0xB6, 0xB6, 0x7F, 0x8B, 0xB0, 0x5A, 0x79, 0x66, 0x5D, 0xC8,
+ 0x00, 0x41, 0x1F, 0xB5, 0x44, 0x94, 0xF7, 0xDE, 0xC8, 0x3B, 0xC8, 0xAF, 0x2C, 0x54, 0xE2, 0xF3,
+ 0x2C, 0x0C, 0x4D, 0x9D, 0xA4, 0x40, 0x65, 0x16, 0xCD, 0xC1, 0x76, 0xA0, 0x80, 0xC2, 0x1A, 0x75,
+ 0xCE, 0x79, 0xBE, 0xB1, 0x04, 0x0E, 0x05, 0x1C, 0x12, 0x2C, 0xF2, 0xFF, 0xED, 0x45, 0x51, 0xCA,
+ 0x92, 0x0B, 0xB9, 0x78, 0x7A, 0xFA, 0xCF, 0x45, 0xC4, 0x0B, 0x5F, 0xB9, 0x7F, 0x4B, 0x21, 0x4A,
+ 0xB4, 0xF6, 0x57, 0xDC, 0xB4, 0x14, 0x38, 0x4A, 0x66, 0x0D, 0x85, 0x19, 0x50, 0xFA, 0xE1, 0x06,
+ 0x50, 0xF8, 0xDA, 0x39, 0x24, 0xB7, 0xE2, 0x39, 0xEE, 0x7D, 0xFC, 0xBC, 0xB5, 0x6D, 0xA2, 0xC3,
+ 0xAC, 0xE5, 0x73, 0x36, 0x72, 0xC4, 0xEE, 0xE8, 0x26, 0x5E, 0x47, 0xE8, 0x7D, 0x70, 0xCC, 0x27,
+ 0xC0, 0xB0, 0x9E, 0x9F, 0xEC, 0x17, 0xAB, 0xCD, 0x2C, 0x67, 0x34, 0x2C, 0x18, 0x26, 0xA7, 0xF5,
+ 0xA1, 0x33, 0xA0, 0xB9, 0x51, 0xAD, 0x7B, 0x3A, 0xA1, 0xB1, 0xA6, 0x1C, 0x7C, 0x46, 0x16, 0x03,
+ 0x2E, 0x7E, 0x61, 0xC9, 0x1F, 0xB2, 0x1E, 0x32, 0x7D, 0x60, 0x0C, 0x87, 0x96, 0x32, 0x1B, 0x3F,
+ 0x83, 0x5A, 0x3D, 0x25, 0x3E, 0x46, 0xD7, 0x99, 0x6E, 0xB8, 0x44, 0x8A, 0xE2, 0x71, 0x80, 0xA5,
+ 0x57, 0x67, 0xC6, 0x70, 0xF7, 0x49, 0xD8, 0x95, 0xE6, 0xA2, 0xC1, 0x43, 0xDB, 0xC6, 0x8B, 0x2F,
+ 0x67, 0x97, 0xEF, 0xAD, 0x44, 0x68, 0x30, 0x0F, 0xB0, 0xCE, 0xDC, 0x39, 0x63, 0x8F, 0x14, 0x5B,
+ 0x62, 0xA9, 0xB8, 0x0F, 0xCC, 0xF3, 0xDD, 0x9E, 0xFF, 0x5D, 0x1A, 0x17, 0x2C, 0x40, 0x57, 0xE3,
+ 0x1B, 0x04, 0x45, 0x0F, 0xD4, 0xD7, 0xEB, 0x66, 0x1F, 0xCF, 0x25, 0x11, 0x8C, 0x87, 0x35, 0x66,
+ 0x11, 0xE3, 0x69, 0xDB, 0xBE, 0x84, 0xFE, 0xDC, 0x2F, 0x8B, 0xBF, 0xDA, 0x56, 0x5B, 0x22, 0x85,
+ 0x0D, 0x11, 0x2B, 0x55, 0x9C, 0x2F, 0x2B, 0x6B, 0x1E, 0xF6, 0xD2, 0xBB, 0xBE, 0x2A, 0xE5, 0x87,
+ 0x8B, 0x7D, 0x52, 0xA3, 0x46, 0x9A, 0x96, 0xCF, 0xCF, 0x14, 0x3A, 0x47, 0xD4, 0x03, 0x98, 0xCF,
+ 0xAE, 0x38, 0x44, 0x02, 0x61, 0x43, 0x94, 0x97, 0xC8, 0xCA, 0xDB, 0xD4, 0x3D, 0xFF, 0x45, 0xE0,
+ 0xC5, 0x2C, 0x32, 0x36, 0x36, 0xB4, 0x6C, 0xEA, 0x0C, 0x25, 0x9C, 0xC9, 0x68, 0x20, 0x59, 0xBA,
+ 0xC7, 0x8C, 0xC7, 0x44, 0x69, 0x2D, 0xA4, 0xB7, 0x65, 0x6C, 0x91, 0x71, 0xC9, 0xF4, 0xB7, 0x93,
+ 0x60, 0x12, 0xE1, 0xEC, 0xF7, 0xB1, 0x0F, 0xF9, 0xCC, 0xA8, 0xD0, 0xA6, 0x10, 0x39, 0x1F, 0xA6,
+ 0xBE, 0x44, 0x7A, 0x76, 0x1F, 0xD7, 0xA9, 0xFE, 0x09, 0x54, 0x93, 0x51, 0x2F, 0x0B, 0x5D, 0xAB,
+ 0x6E, 0x32, 0x30, 0x3E, 0x63, 0x05, 0x1F, 0xF8, 0xA8, 0xC8, 0x88, 0x3B, 0x55, 0xA7, 0xE7, 0x09,
+ 0x6B, 0xB8, 0xA1, 0xED, 0x5A, 0x29, 0xA5, 0x79, 0x34, 0x3D, 0xD1, 0x18, 0x4D, 0x5A, 0xEA, 0xF9,
+ 0x3B, 0x3A, 0x1B, 0xE1, 0x04, 0xE1, 0x16, 0xBF, 0xD0, 0x8B, 0x21, 0x76, 0x1D, 0x64, 0xDF, 0x4C,
+ 0xCB, 0x6C, 0x56, 0x57, 0x32, 0x91, 0x9E, 0xCF, 0x0F, 0xC8, 0xED, 0x95, 0xB2, 0xB1, 0x50, 0x63,
+ 0x3C, 0x9C, 0xCB, 0x70, 0xFF, 0x52, 0x27, 0xAC, 0xE8, 0xEA, 0xCD, 0x09, 0x30, 0x43, 0x8C, 0x90,
+ 0x06, 0xFE, 0xB0, 0xC2, 0xCB, 0x95, 0xEC, 0x85, 0x27, 0xE8, 0x99, 0xE5, 0x40, 0xB7, 0xDD, 0x66,
+ 0xCA, 0xC9, 0x26, 0xF2, 0x8B, 0xB6, 0xD3, 0x29, 0x20, 0x2D, 0x7E, 0x65, 0x5B, 0xD5, 0xAC, 0xE1,
+ 0x3E, 0x86, 0x28, 0x76, 0xA4, 0xDC, 0x52, 0x37, 0x61, 0x40, 0x7F, 0xEF, 0x1B, 0x8A, 0xBD, 0x91,
+ 0x28, 0x06, 0x43, 0x27, 0x54, 0xF2, 0xFD, 0x17, 0xD3, 0x24, 0x9D, 0x01, 0x4A, 0x4F, 0xCC, 0x4C,
+ 0x1C, 0x97, 0xD6, 0x16, 0x16, 0xFB, 0x17, 0x4A, 0x4E, 0x94, 0x07, 0x73, 0x2B, 0x72, 0x77, 0x39,
+ 0x90, 0xD7, 0x42, 0x6E, 0xB8, 0xC8, 0x51, 0xF2, 0xA8, 0xAD, 0xF9, 0x33, 0xF0, 0x15, 0x2D, 0x45,
+ 0xB3, 0x8C, 0x55, 0xFC, 0xB4, 0xC0, 0x14, 0xC8, 0xBE, 0x03, 0x19, 0x6D, 0x02, 0xA2, 0xC6, 0x93,
+ 0x37, 0x2A, 0xE2, 0x6C, 0xE0, 0x84, 0xCC, 0x3B, 0xB5, 0x7B, 0x23, 0x28, 0x14, 0xF8, 0xE6, 0x43,
+ 0x49, 0x53, 0x8E, 0xC7, 0xDC, 0x29, 0x74, 0x4F, 0xAF, 0x85, 0x73, 0x32, 0x9A, 0xDF, 0x38, 0xE8,
+ 0x48, 0x38, 0x29, 0x4B, 0x07, 0xF9, 0x82, 0x84, 0x32, 0xFC, 0x02, 0xB4, 0xB4, 0xAA, 0xA7, 0xC3,
+ 0x21, 0xEB, 0xBB, 0x78, 0x5B, 0x3F, 0x67, 0x89, 0x99, 0x5E, 0x11, 0x2F, 0x19, 0x92, 0x5A, 0x04,
+ 0x3D, 0xE6, 0xFF, 0x3E, 0x1F, 0xAB, 0x7D, 0x11, 0xDF, 0x8D, 0x75, 0xA4, 0xAC, 0x81, 0x3B, 0x66,
+ 0x2B, 0x67, 0x8E, 0xEE, 0xA8, 0xDF, 0x50, 0x37, 0xE9, 0x40, 0xC5, 0x65, 0xF4, 0x40, 0x8D, 0x17,
+ 0xDF, 0x75, 0x8A, 0xA5, 0x62, 0x0F, 0xC1, 0x9A, 0x37, 0xAF, 0x55, 0x6A, 0xB9, 0xDD, 0x82, 0x00,
+ 0x15, 0x81, 0x7A, 0xE0, 0x6D, 0x24, 0xAC, 0xEE, 0x35, 0xBD, 0x1E, 0xB6, 0xB4, 0xBE, 0x4D, 0x90,
+ 0x5A, 0x3C, 0x7C, 0x13, 0xB1, 0x9E, 0x6C, 0x76, 0x51, 0xAA, 0x49, 0x73, 0xEA, 0x02, 0x90, 0xEC,
+ 0xF0, 0xF1, 0xF5, 0x4F, 0x05, 0x02, 0x0A, 0xB3, 0x90, 0xF5, 0xC8, 0x9B, 0x55, 0x20, 0xFE, 0x11,
+ 0x79, 0x03, 0x19, 0xA3, 0x79, 0xD5, 0xF3, 0x59, 0x75, 0xE2, 0x09, 0xA6, 0xCD, 0xB8, 0x23, 0x44,
+ 0x03, 0x25, 0x85, 0xFF, 0xD5, 0x8D, 0x17, 0x55, 0x46, 0xE9, 0x87, 0x3E, 0xFC, 0xDA, 0x48, 0xFE,
+ 0x0D, 0x7D, 0x4A, 0x4F, 0x91, 0x9C, 0xBA, 0x95, 0x5D, 0x33, 0x4D, 0xE0, 0x86, 0x86, 0xE3, 0x17,
+ 0x25, 0xA1, 0x51, 0x78, 0x4B, 0xDC, 0xB4, 0xF5, 0x59, 0xDF, 0xAA, 0x2A, 0x4A, 0x18, 0x22, 0x94,
+ 0xB2, 0x17, 0x3A, 0x94, 0x68, 0xBB, 0xCD, 0xED, 0x44, 0x24, 0x70, 0xF8, 0xD2, 0xFC, 0x6D, 0xF1,
+ 0x2E, 0x8B, 0x08, 0x3B, 0x37, 0x6D, 0xF8, 0x09, 0x52, 0x38, 0xFE, 0xB6, 0xF2, 0x8C, 0x68, 0xD6,
+ 0x65, 0x75, 0xF7, 0x7E, 0x1E, 0x9D, 0x4C, 0x11, 0x02, 0xFF, 0x46, 0x56, 0x22, 0xC4, 0x5C, 0xE8,
+ 0x8A, 0x51, 0x94, 0xA4, 0x11, 0x52, 0x3E, 0xB9, 0x48, 0x3C, 0x2D, 0xC8, 0xDF, 0x64, 0x37, 0x93,
+ 0x1C, 0x1F, 0x92, 0x65, 0x14, 0x66, 0x80, 0x39, 0x0D, 0x3F, 0xBF, 0xD3, 0x9D, 0x48, 0x29, 0xB9,
+ 0x7E, 0x8B, 0x01, 0x4B, 0x72, 0x0A, 0xA2, 0xCF, 0x27, 0xAE, 0xA7, 0x71, 0xF3, 0xAF, 0x48, 0x63,
+ 0x06, 0x16, 0xA2, 0xAA, 0x29, 0x57, 0xB3, 0xDD, 0x64, 0x53, 0xAD, 0xF0, 0x89, 0x22, 0xF3, 0x57,
+ 0x35, 0x7B, 0x83, 0xCE, 0x8F, 0x20, 0x14, 0x7E, 0x84, 0x07, 0xBB, 0x22, 0x0C, 0x77, 0x67, 0x88,
+ 0x5B, 0x5C, 0xBA, 0x13, 0xFF, 0x39, 0xE5, 0x12, 0x20, 0x0F, 0xC9, 0xEE, 0x2D, 0xFD, 0xD8, 0x7B,
+ 0xE8, 0x64, 0xDB, 0xF7, 0x04, 0x67, 0x27, 0x95, 0xD3, 0x0B, 0xAB, 0xA0, 0xB0, 0xC6, 0x6F, 0x7E,
+ 0xF5, 0xBB, 0x07, 0x0D, 0xF1, 0xAF, 0x10, 0x4D, 0x7C, 0xF8, 0xA8, 0x18, 0xAD, 0xAE, 0x9C, 0x3A,
+ 0x1B, 0xD6, 0x14, 0x42, 0x04, 0x93, 0x30, 0x54, 0xC1, 0x0E, 0x3F, 0xEE, 0xDC, 0x29, 0xA4, 0xCC,
+ 0xF1, 0x4A, 0xD3, 0xEA, 0xF6, 0x3D, 0xEB, 0xCC, 0xAB, 0x68, 0x61, 0x0C, 0x18, 0xFA, 0x7D, 0xA1,
+ 0x58, 0x1D, 0x7B, 0x5C, 0xE3, 0x7E, 0x7B, 0xB9, 0xA6, 0x38, 0x1D, 0x98, 0x27, 0x8B, 0xD1, 0x86,
+ 0x96, 0x42, 0xC9, 0x8C, 0x4E, 0xBB, 0xA9, 0x96, 0x3F, 0x75, 0xE0, 0xA7, 0x4E, 0xD3, 0x6A, 0xFF,
+ 0x6A, 0xE9, 0xC4, 0x48, 0x78, 0xA1, 0xE7, 0x40, 0x05, 0x3B, 0x9C, 0x46, 0x71, 0xA0, 0x5D, 0x46,
+ 0x05, 0x91, 0x34, 0xDA, 0x27, 0xD6, 0xD2, 0x1F, 0xE8, 0x37, 0x9E, 0xDE, 0x0F, 0x04, 0xF7, 0x19,
+ 0x34, 0x64, 0xB5, 0xFD, 0x82, 0x96, 0xA1, 0x90, 0x3A, 0xB3, 0xCC, 0x51, 0xD7, 0xD0, 0x5F, 0xBA,
+ 0x16, 0x30, 0x41, 0x54, 0x16, 0xE9, 0xB9, 0xC5, 0x89, 0x1E, 0x91, 0x78, 0xF1, 0xCE, 0xD8, 0x23,
+ 0x41, 0x4B, 0x0D, 0xE9, 0x51, 0x67, 0x31, 0x5F, 0x42, 0x58, 0xF2, 0x54, 0x4D, 0x42, 0xB8, 0x9B,
+ 0xBD, 0xE0, 0x39, 0xCD, 0xF6, 0xC8, 0xD7, 0x51, 0x3D, 0x0C, 0xF4, 0xDC, 0x11, 0x32, 0x99, 0xF8,
+ 0x0B, 0x60, 0x3B, 0x32, 0x1B, 0xE6, 0x85, 0xEE, 0x66, 0xD2, 0x6F, 0x54, 0xA9, 0x74, 0x76, 0xF7,
+ 0xF9, 0x84, 0x0A, 0xD0, 0x25, 0x1E, 0xA5, 0x64, 0xAE, 0x30, 0xD6, 0x11, 0xD2, 0x83, 0xE6, 0x56,
+ 0x9D, 0xAD, 0x5B, 0xBA, 0x4D, 0x2E, 0x36, 0x25, 0x68, 0x4D, 0x9B, 0xF4, 0x8E, 0x82, 0x0C, 0xDC,
+ 0xFF, 0x69, 0x97, 0xB6, 0x82, 0x2F, 0xD1, 0x64, 0x1E, 0xC9, 0xA4, 0x10, 0xCE, 0x4E, 0xDE, 0x20,
+ 0xEF, 0xB2, 0xD0, 0x08, 0xC9, 0x9D, 0xC0, 0x7E, 0xCE, 0x4C, 0x57, 0x17, 0x05, 0x26, 0xC3, 0x4D,
+ 0x43, 0xBF, 0xD3, 0x95, 0x69, 0xAC, 0xDB, 0x98, 0x0E, 0x08, 0xE1, 0xB7, 0x93, 0xF6, 0x51, 0x66,
+ 0x2C, 0x9E, 0xA4, 0x84, 0x52, 0xCE, 0x69, 0xC9, 0x47, 0xFA, 0x5E, 0x22, 0x1C, 0x73, 0x94, 0x7C,
+ 0x12, 0xC7, 0xBF, 0xE1, 0x98, 0x7C, 0x99, 0x2E, 0xF5, 0xD4, 0xED, 0x1F, 0x12, 0x23, 0x91, 0x0A,
+ 0xB0, 0xF9, 0x57, 0x9D, 0x47, 0xF3, 0x6B, 0x7E, 0xF9, 0x65, 0x84, 0xAF, 0xD2, 0x7F, 0x91, 0xD8,
+ 0xEA, 0x91, 0x7F, 0x7D, 0x21, 0xE5, 0x51, 0x64, 0xAB, 0x56, 0x5C, 0xD1, 0x8A, 0xFB, 0xF3, 0x68,
+ 0xE2, 0x05, 0x30, 0xE8, 0x62, 0xA9, 0x4A, 0x68, 0x7E, 0xB5, 0xCA, 0xC6, 0xEA, 0x00, 0x8D, 0x02,
+ 0x97, 0x41, 0x32, 0x01, 0xD4, 0x72, 0x3B, 0xF3, 0x6A, 0x7F, 0x3C, 0xE2, 0x86, 0x01, 0xEE, 0x33,
+ 0x07, 0xCA, 0xE1, 0x37, 0x77, 0x55, 0xD5, 0x4F, 0x81, 0x40, 0xB5, 0x53, 0x3A, 0x60, 0xFA, 0xEB,
+ 0xC2, 0x1E, 0xA8, 0x8D, 0x91, 0x31, 0x37, 0xA0, 0xEE, 0x4D, 0x1A, 0x0F, 0x5A, 0x76, 0x71, 0x33,
+ 0x5D, 0xCC, 0x86, 0x6E, 0x01, 0x4D, 0xB1, 0x43, 0x55, 0x7A, 0x19, 0x4D, 0x5D, 0xD8, 0xA9, 0x16,
+ 0x3A, 0xCA, 0x52, 0xEF, 0xAE, 0x54, 0x4F, 0x3B, 0x7C, 0xE2, 0x5F, 0x81, 0x30, 0x54, 0xAC, 0x0F,
+ 0x8E, 0x7D, 0x32, 0x57, 0x47, 0x55, 0x89, 0x10, 0xFE, 0x16, 0x90, 0xBE, 0x0D, 0x1F, 0x0E, 0x20,
+ 0x39, 0x40, 0xE4, 0xE1, 0x92, 0x05, 0x0C, 0xC7, 0xF3, 0xD9, 0x9F, 0xE7, 0xF5, 0xCB, 0x93, 0xA8,
+ 0x08, 0xAB, 0xE8, 0x9F, 0x70, 0xC2, 0x52, 0x3B, 0x2C, 0x54, 0x95, 0x7E, 0x8E, 0x2A, 0x74, 0xA2,
+ 0xC7, 0x5A, 0x76, 0x4C, 0x3A, 0x53, 0x94, 0x36, 0xF5, 0xA8, 0x78, 0x92, 0xF7, 0x2F, 0xDC, 0xD7,
+ 0x6E, 0xC1, 0x10, 0x62, 0xB3, 0xC4, 0x7C, 0x43, 0x12, 0x06, 0xE3, 0x56, 0xB7, 0x88, 0x0D, 0x4B,
+ 0x38, 0x7D, 0xE6, 0x1A, 0x6E, 0x3B, 0x0F, 0x3B, 0xD8, 0x44, 0xA6, 0x48, 0x0C, 0xE4, 0x02, 0xEF,
+ 0x7A, 0x3E, 0xA9, 0x0D, 0xEB, 0x12, 0x44, 0x19, 0x5D, 0x6A, 0x56, 0x0F, 0xD8, 0x66, 0xE4, 0x72,
+ 0x0E, 0xEC, 0x98, 0xD6, 0xB0, 0x42, 0xEE, 0xD1, 0x19, 0x83, 0x33, 0x84, 0xA2, 0xE9, 0xE3, 0x1E,
+ 0x68, 0x29, 0x9A, 0x1A, 0x06, 0x44, 0xD4, 0x8A, 0xE0, 0xD5, 0x24, 0xBF, 0x03, 0x8D, 0x51, 0x57,
+ 0xB7, 0xDE, 0x11, 0x6C, 0x1D, 0x3C, 0x93, 0x08, 0x08, 0xE6, 0xDC, 0xEF, 0x54, 0xE6, 0x3A, 0x1D,
+ 0x71, 0xF5, 0xD7, 0x89, 0x67, 0x7E, 0x98, 0x4E, 0xCF, 0x7D, 0x47, 0x3A, 0x76, 0x28, 0xE3, 0x34,
+ 0xBC, 0xC1, 0xB6, 0x7B, 0x88, 0x83, 0xD9, 0x8B, 0xB7, 0x7C, 0xEC, 0x92, 0x34, 0x8F, 0xEB, 0x02,
+ 0x13, 0x0C, 0x89, 0x89, 0x30, 0x9D, 0xF7, 0x3E, 0x0B, 0xD2, 0xB6, 0x51, 0xD1, 0x59, 0x26, 0x8C,
+ 0xCF, 0x94, 0xD8, 0x79, 0xA9, 0x78, 0x6D, 0xAC, 0x4F, 0x46, 0xA3, 0x68, 0x1A, 0x53, 0xDF, 0x95,
+ 0x4B, 0xBE, 0x00, 0x95, 0xF6, 0x50, 0x72, 0xE5, 0x2F, 0x99, 0xDE, 0x7E, 0xFB, 0xC3, 0xE0, 0x06,
+ 0x62, 0xE5, 0x75, 0x91, 0x87, 0x90, 0x9A, 0x0E, 0xD6, 0xC4, 0x63, 0xD4, 0x25, 0x45, 0x60, 0xF1,
+ 0x7F, 0x66, 0x61, 0xCE, 0xB4, 0xB2, 0xDF, 0xF8, 0x3E, 0x75, 0x6D, 0x88, 0x0D, 0xD4, 0xC5, 0x00,
+ 0xC3, 0x84, 0xDF, 0xAC, 0x7B, 0xC9, 0x88, 0x00, 0x8D, 0x76, 0xAD, 0x63, 0xB2, 0x9B, 0xF3, 0xDC,
+ 0xE1, 0xF2, 0xBB, 0x17, 0xC8, 0xA1, 0x09, 0xBA, 0x4D, 0xC1, 0xCB, 0x81, 0xE8, 0x31, 0xFB, 0xBE,
+ 0x79, 0x32, 0x81, 0xB5, 0x14, 0x8C, 0xC8, 0x6C, 0xB4, 0x52, 0x32, 0xBC, 0xCD, 0xB8, 0x0D, 0x71,
+ 0x53, 0x94, 0x75, 0x6F, 0x2C, 0xBF, 0xD0, 0xE6, 0xDE, 0xD2, 0xA6, 0x04, 0x3C, 0xE0, 0xFC, 0x5B,
+ 0x40, 0xF6, 0x55, 0x2D, 0x16, 0x68, 0xB4, 0x62, 0xC7, 0xA6, 0xBC, 0xDA, 0x47, 0xFC, 0x41, 0x45,
+ 0x81, 0x33, 0x97, 0x51, 0xAB, 0x0C, 0x04, 0x5E, 0x18, 0x15, 0x91, 0x4C, 0xFC, 0xEA, 0x51, 0x27,
+ 0x1C, 0xFC, 0x2A, 0x00, 0x55, 0x1D, 0x94, 0xC7, 0xD9, 0x39, 0x00, 0x40, 0x59, 0x1E, 0x47, 0x38,
+ 0x4D, 0xDC, 0x46, 0xA1, 0x4A, 0x3C, 0x3F, 0x11, 0xE7, 0xAC, 0x39, 0xA3, 0xEC, 0xEF, 0xBF, 0xA5,
+ 0x05, 0x97, 0x86, 0x49, 0x48, 0x35, 0x87, 0x10, 0x47, 0x07, 0x8D, 0xEA, 0xC8, 0xA4, 0xE7, 0x79,
+ 0xA5, 0x67, 0x99, 0xED, 0x87, 0xDA, 0xEC, 0xC4, 0xB9, 0x0C, 0xFF, 0x52, 0x3A, 0x4B, 0x9B, 0xE7,
+ 0x89, 0x51, 0x8D, 0x31, 0x77, 0xB4, 0x7E, 0x4B, 0xFD, 0xB4, 0x41, 0x95, 0x23, 0xDD, 0x44, 0x4F,
+ 0x1B, 0x5A, 0x9F, 0x95, 0x93, 0xC4, 0x46, 0xCE, 0x77, 0x79, 0xD6, 0x90, 0xF6, 0xC2, 0xA3, 0xCC,
+ 0x47, 0x2B, 0xAC, 0xA4, 0x5F, 0x62, 0x8C, 0x09, 0x34, 0x66, 0x7B, 0x89, 0x3C, 0xCC, 0xD9, 0xAD,
+ 0xD9, 0x4F, 0xD3, 0x72, 0x53, 0x18, 0x6B, 0x30, 0x4C, 0x88, 0x75, 0x05, 0x02, 0xE4, 0x16, 0xD4,
+ 0x3D, 0x14, 0x7E, 0xCE, 0xCC, 0xAB, 0xB1, 0xB4, 0x2E, 0x01, 0x0C, 0x39, 0xE5, 0x73, 0x19, 0x19,
+ 0x07, 0xA8, 0xD2, 0x7D, 0x6A, 0xF2, 0x6A, 0x9F, 0xCC, 0x04, 0xE6, 0x89, 0xFC, 0x29, 0x36, 0x43,
+ 0x6F, 0x83, 0x41, 0x6D, 0x78, 0xD7, 0x69, 0x66, 0x4F, 0xBD, 0xD1, 0xB7, 0x9F, 0x34, 0x38, 0xB2,
+ 0xE8, 0x4E, 0xC3, 0xDC, 0x37, 0xFF, 0xFE, 0x69, 0x10, 0x10, 0xF1, 0x86, 0x3C, 0xDA, 0xE1, 0x5B,
+ 0x3B, 0x0F, 0xD9, 0x01, 0x0D, 0x3F, 0xA0, 0x05, 0x82, 0xFC, 0x2A, 0x50, 0xFA, 0x30, 0xF8, 0x99,
+ 0x6E, 0xA2, 0xDB, 0xC4, 0xBC, 0x81, 0x66, 0xD0, 0x26, 0xD2, 0x63, 0xAF, 0x76, 0xBF, 0x24, 0x1E,
+ 0xE3, 0x2D, 0xDA, 0xBF, 0x04, 0x45, 0x6C, 0x94, 0x39, 0xC6, 0x72, 0x69, 0xA6, 0xC7, 0x3B, 0x4A,
+ 0xB6, 0xEB, 0xA3, 0x8A, 0x8B, 0xC4, 0x7A, 0x4A, 0x1B, 0x28, 0xD5, 0xE9, 0xE9, 0xF4, 0x84, 0xFF,
+ 0x3C, 0x23, 0x45, 0x67, 0xE8, 0x7A, 0x08, 0x1F, 0xFF, 0x5A, 0x24, 0x98, 0xE7, 0x9A, 0x97, 0x14,
+ 0x11, 0x15, 0x07, 0xFB, 0x97, 0x42, 0x0D, 0xF5, 0xE7, 0x5A, 0x60, 0xDD, 0xCC, 0xF5, 0xEB, 0x32,
+ 0x0F, 0xCB, 0x64, 0xFB, 0x99, 0x57, 0x50, 0xCA, 0x06, 0xEA, 0x78, 0xDA, 0x40, 0xD7, 0x1B, 0x67,
+ 0x83, 0x99, 0xBF, 0xC1, 0xDB, 0x5C, 0x33, 0x97, 0x2D, 0x10, 0xF0, 0xD6, 0x3D, 0x80, 0x03, 0xE4,
+ 0xF3, 0x60, 0x4F, 0x73, 0x31, 0xF9, 0x35, 0xBE, 0x26, 0x2F, 0x16, 0xAC, 0xB9, 0x7C, 0x83, 0x44,
+ 0x4A, 0xFE, 0xF1, 0xB6, 0x76, 0x0C, 0xDC, 0xB7, 0xA9, 0xC6, 0xBA, 0x0D, 0xB9, 0x99, 0xC0, 0xA7,
+ 0x12, 0x3E, 0x90, 0x31, 0xA5, 0x1B, 0x21, 0x39, 0xA1, 0x78, 0x68, 0xB5, 0x45, 0x57, 0x63, 0xBF,
+ 0x61, 0xBC, 0xD8, 0x1D, 0x14, 0xF3, 0x5D, 0x41, 0xB7, 0xBE, 0x26, 0xFB, 0x76, 0xAB, 0x44, 0x1B,
+ 0xC5, 0x55, 0x27, 0x76, 0x64, 0xA1, 0x5F, 0xCF, 0xED, 0x8A, 0x13, 0x55, 0x3C, 0xC4, 0xA0, 0xF7,
+ 0xE7, 0x79, 0x6F, 0xAE, 0x83, 0x77, 0x96, 0x03, 0x09, 0x3E, 0x01, 0xB3, 0x1B, 0x2E, 0x67, 0xC9,
+ 0x37, 0xE0, 0x98, 0x03, 0xAF, 0x79, 0x20, 0x99, 0x7A, 0x0F, 0x1A, 0x75, 0x75, 0x82, 0xC4, 0x42,
+ 0xB2, 0xD5, 0x16, 0x09, 0x7B, 0x0E, 0x9F, 0x4E, 0xC9, 0x24, 0xA8, 0x16, 0xFF, 0xED, 0x00, 0x59,
+ 0xE2, 0xE4, 0x3C, 0x8C, 0x63, 0xEA, 0x2C, 0x7C, 0xB9, 0x63, 0x58, 0x08, 0x80, 0xD3, 0x8F, 0x08,
+ 0xB5, 0xA3, 0x9A, 0xFD, 0xD7, 0x96, 0xAE, 0x5D, 0xB5, 0xF7, 0x44, 0xAB, 0x4C, 0xCA, 0x39, 0x2D,
+ 0x42, 0x77, 0x9A, 0xB5, 0x3C, 0xF3, 0x17, 0x0A, 0xE2, 0x3A, 0x64, 0x04, 0xCE, 0x38, 0x68, 0x75,
+ 0x43, 0xBE, 0x14, 0xEC, 0x46, 0x36, 0x5A, 0x5A, 0x0C, 0xB1, 0xF7, 0x19, 0x82, 0x5C, 0xAC, 0xA7,
+ 0x8F, 0xBE, 0xBE, 0x44, 0xE2, 0x42, 0x65, 0x23, 0xB8, 0x61, 0x10, 0x9F, 0x7C, 0x3E, 0x1B, 0xB4,
+ 0xA1, 0x4E, 0xA7, 0x65, 0xCB, 0xC0, 0x74, 0xE0, 0x98, 0x7E, 0x14, 0x1A, 0x40, 0xC6, 0x8D, 0x56,
+ 0xB7, 0x69, 0x69, 0x3C, 0x07, 0xBD, 0xDB, 0x25, 0xB3, 0x20, 0xF6, 0x81, 0x69, 0x03, 0x1D, 0x40,
+ 0x19, 0x69, 0x06, 0x83, 0xAD, 0xC5, 0xD8, 0xDD, 0xDC, 0x38, 0x70, 0xF4, 0x58, 0x9C, 0x8D, 0x2A,
+ 0x95, 0x39, 0x33, 0x64, 0x10, 0xA8, 0x9E, 0x97, 0x41, 0x05, 0x8E, 0x26, 0x74, 0xFB, 0xEB, 0x06,
+ 0xBE, 0x77, 0x47, 0xF8, 0x20, 0x09, 0x45, 0xF9, 0xE4, 0x17, 0xAA, 0x73, 0xFD, 0x71, 0xFC, 0xF7,
+ 0x3A, 0xD2, 0x4C, 0xBA, 0x40, 0x74, 0x9D, 0x1D, 0x7D, 0xEB, 0x90, 0x28, 0x51, 0x2B, 0x54, 0xAE,
+ 0xC1, 0xA9, 0x93, 0xA1, 0x91, 0x70, 0x0B, 0xA0, 0x97, 0x5C, 0x8B, 0xD0, 0x3E, 0x23, 0x4D, 0x6D,
+ 0xC0, 0xBD, 0x2D, 0x5E, 0xD4, 0x17, 0xFD, 0x3C, 0xFB, 0xDA, 0xFA, 0xCD, 0x56, 0x56, 0x02, 0x25,
+ 0x49, 0x88, 0x61, 0xC0, 0x1D, 0xAB, 0x22, 0x96, 0xF1, 0x52, 0xBD, 0xED, 0xE3, 0xAF, 0x92, 0x65,
+ 0x25, 0xBA, 0x01, 0x7A, 0xDF, 0x12, 0x67, 0xA6, 0x4C, 0xC8, 0xCE, 0x64, 0xF9, 0xF9, 0x0D, 0x09,
+ 0xA7, 0x6D, 0x85, 0xE2, 0xF5, 0x0F, 0x97, 0xDC, 0x06, 0x43, 0x85, 0xF8, 0x8C, 0xBB, 0x83, 0xDA,
+ 0x28, 0x1B, 0x12, 0x10, 0x45, 0xE8, 0xF2, 0x7F, 0xC5, 0x1B, 0x2F, 0xAA, 0xB3, 0xCF, 0x31, 0xFB,
+ 0xDE, 0x2E, 0xAF, 0xA5, 0x89, 0x8C, 0x51, 0x73, 0xF3, 0xF3, 0x48, 0xBC, 0x8B, 0x4F, 0x98, 0x91,
+ 0x0A, 0x3D, 0x78, 0xE2, 0xBF, 0x9F, 0x5E, 0x18, 0x42, 0xD8, 0xCD, 0x8F, 0x33, 0xF8, 0x17, 0x45,
+ 0xEB, 0x81, 0xD6, 0xCC, 0x90, 0xF1, 0x54, 0x05, 0x45, 0xAA, 0x93, 0x60, 0xF3, 0xC9, 0x9A, 0x4C,
+ 0xEE, 0x13, 0xC9, 0x68, 0xE0, 0x4D, 0xB9, 0xB9, 0x1B, 0x3A, 0x55, 0x06, 0x9F, 0x06, 0x73, 0xD6,
+ 0x98, 0x10, 0x85, 0xEE, 0x98, 0x76, 0x77, 0x7C, 0x6F, 0xDD, 0x36, 0x19, 0x76, 0xD2, 0x01, 0x69,
+ 0x92, 0x74, 0x2A, 0xB1, 0x66, 0x65, 0x62, 0x93, 0x3D, 0xE2, 0xAC, 0xD8, 0x35, 0x0E, 0x21, 0x8A,
+ 0x02, 0x92, 0x30, 0x39, 0xA8, 0xA7, 0x1F, 0x5B, 0x45, 0x38, 0xB3, 0xE0, 0x0F, 0x8A, 0x1E, 0x39,
+ 0x84, 0x9F, 0x4F, 0xEB, 0x90, 0x34, 0xA2, 0x81, 0x63, 0xFA, 0x5B, 0x16, 0xCC, 0xA3, 0xAD, 0x32,
+ 0x4C, 0xD4, 0x63, 0xB8, 0x41, 0xC1, 0xE5, 0x5B, 0x08, 0x0B, 0x15, 0x62, 0xC1, 0xA9, 0x5C, 0x1F,
+ 0x27, 0xF1, 0xE5, 0x6D, 0x76, 0x77, 0x1D, 0xB5, 0x15, 0x67, 0x52, 0x9C, 0x9C, 0x76, 0xE0, 0x77,
+ 0xE9, 0x5D, 0x6A, 0x3F, 0xD7, 0x8B, 0x86, 0xBD, 0x33, 0x25, 0x59, 0x7A, 0x32, 0xB0, 0x42, 0x2C,
+ 0x4E, 0xA8, 0x21, 0x4F, 0x32, 0x36, 0x2D, 0x22, 0x34, 0x07, 0x18, 0x43, 0x7E, 0x7D, 0xDC, 0x36,
+ 0xB5, 0xB6, 0x4A, 0x87, 0x10, 0xBF, 0xAC, 0x1E, 0x22, 0x03, 0x5D, 0x99, 0x01, 0x38, 0x6B, 0xD4,
+ 0x79, 0x8B, 0x72, 0xE7, 0x9E, 0x09, 0x48, 0x87, 0x53, 0xD9, 0x49, 0x17, 0x11, 0x03, 0xA9, 0xB2,
+ 0x5D, 0xF6, 0xB5, 0xDE, 0x60, 0x76, 0x19, 0xDB, 0xD2, 0x58, 0x87, 0xA0, 0x41, 0x53, 0x97, 0x4C,
+ 0xFF, 0xDB, 0x21, 0x5A, 0xD2, 0x34, 0x3A, 0x8F, 0xA9, 0xEC, 0x84, 0xF3, 0x95, 0xA8, 0x8D, 0x0E,
+ 0x27, 0xF3, 0xD2, 0x0C, 0x60, 0x44, 0x56, 0x3F, 0xAF, 0x10, 0x8E, 0x2A, 0x31, 0x28, 0xB9, 0xEE,
+ 0xF8, 0x3B, 0x59, 0x44, 0x52, 0x83, 0x05, 0x2B, 0xD6, 0xBD, 0x25, 0x91, 0x27, 0xCA, 0xCC, 0x3D,
+ 0x75, 0x43, 0x32, 0x6D, 0x8B, 0xAE, 0xD4, 0xA8, 0x3C, 0xA6, 0xEF, 0x81, 0x77, 0x39, 0x4A, 0x40,
+ 0xA7, 0xEB, 0xA3, 0x1F, 0x5F, 0x31, 0x33, 0x86, 0xD4, 0x69, 0x01, 0xC3, 0x21, 0x5B, 0x6F, 0x68,
+ 0x0E, 0x06, 0x00, 0x0C, 0x00, 0x08, 0x03, 0x0C, 0x01, 0x0F, 0x0E, 0x0A, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
+ 0x01, 0x06, 0x02, 0x04, 0x00, 0x03, 0x07, 0x05, 0x04, 0x07, 0x00, 0x03, 0x05, 0x01, 0x06, 0x02,
+ 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD
+ };
+
+ SimpleTransform((unsigned char*)ReverseKeyTransformArray, KEY_TRANSFORM_NR, in, out);
+
+ return;
+}
diff --git a/SPC/Src/SPCApi.cpp b/SPC/Src/SPCApi.cpp
new file mode 100755
index 0000000..60380e9
--- /dev/null
+++ b/SPC/Src/SPCApi.cpp
@@ -0,0 +1,329 @@
+#include "SPCApi.h"
+
+
+#ifndef PRINT_LOG
+#define PRINT_BUFFER(A, B, C)
+#else
+#define PRINT_BUFFER PrintBYTE
+#endif
+
+
+#define _SPC_DEBUG_VER
+//#define _SPC_FILE_LOG
+
+#ifdef _SPC_DEBUG_VER
+FILE* SPClogfile = NULL;
+FILE* SPCmsgfile = NULL;
+DRMLOG_CTX SPCLogCTX;
+#endif
+
+
+
+SPC_INTERNAL SPCApi::SPCApi()
+{
+
+}
+
+
+SPC_INTERNAL int SPCApi::InitSPCContext(SPCHandle_CTX* pSPCctx,ModeType eMode,unsigned char* pUserID,unsigned int nUserIDLen)
+{
+ #ifdef _SPC_DEBUG_VER
+ #ifdef _SPC_FILE_LOG
+ // Output log infomation to file
+ #ifdef _LINUX
+ SPClogfile = fopen ("/sdcard/logClient.txt", "wt");
+ SPCmsgfile = fopen ("/sdcard/msgClient.txt", "wt");
+ #else
+ SPClogfile = fopen ("./log.txt", "a+");
+ SPCmsgfile = fopen ("./msg.txt", "a+");
+ #endif
+ // Print logs into the specifed file
+ DRMLOG_SetOutput (&SPCLogCTX, SPClogfile);
+ #else
+ // output to stdout
+ printf(" InitSPCContext stdout \n");
+ DRMLOG_SetOutput (&SPCLogCTX, stdout);
+ #endif
+ // Log level
+ #ifdef _SPC_LOG_LEVEL_DEBUG
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_DEBUG);
+ #elif _SPC_LOG_LEVEL_INFO
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_INFO);
+ #elif _SPC_LOG_LEVEL_WARN
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_WARN);
+ #elif _SPC_LOG_LEVEL_ERROR
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_ERROR);
+ #elif _SPC_LOG_LEVEL_FATAL
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_FATAL);
+ #else
+ DRMLOG_SetLevel (&SPCLogCTX, LOG_INFO);
+ #endif
+ // Print: Level + Filename
+ DRMLOG_SetFormat (&SPCLogCTX, LOG_FORMAT_LEVEL | LOG_FORMAT_FILE);
+ #endif
+
+ if(pSPCctx==NULL)
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+
+ DRMLOG_Message(&SPCLogCTX,LOG_INFO,__FILE__,__LINE__,"InitSPCContext UserID: %s UserIDLen:%d\n",pUserID,nUserIDLen);
+
+ pSPCctx->pUserID = (unsigned char*)malloc( nUserIDLen+1);
+ if(pSPCctx->pUserID == NULL)
+ return SAKEP_MEMROY_ALLOCATE_ERROR;
+ pSPCctx->nUserIDLen = nUserIDLen;
+ pSPCctx->LoginTryCount = SPC_LOGIN_LIMITED_COUNT;
+// pSPCctx->LoginTryCount = nLoginCount;
+ memset(pSPCctx->pUserID,0x00,nUserIDLen+1);
+ memcpy(pSPCctx->pUserID,pUserID,nUserIDLen);
+ //added by sangsu 0308
+ memset(pSPCctx->ctx.pPreHashMsg,0x00,SAKEP_SHA1_HASH_SIZE);
+ memset(pSPCctx->ctx.pSharedkey,0x00,SAKEP_SHARED_KEY_SIZE);
+ memset(pSPCctx->ctx.pSKPrime,0x00,SAKEP_SK_PRIME_KEY_SIZE);
+ pSPCctx->ctx.eErrorType = (ErrorType) 0x00;
+ if(eMode == SERVER_MODE)
+ {
+ pSPCctx->ctx.eState = STATE_WAIT_INITALSETUP;
+ }
+ if(eMode == CLIENT_MODE)
+ {
+
+ pSPCctx->ctx.eState = STATE_IDLE;
+ }
+
+ return SPC_SUCCESS;
+
+}
+
+SPCApi::~SPCApi()
+{
+ #ifdef _SPC_DEBUG_VER
+ #ifdef _SPC_FILE_LOG
+ if (SPClogfile != NULL)
+ {
+ fclose (SPClogfile);
+ SPClogfile = NULL;
+ }
+
+ if (SPCmsgfile != NULL)
+ {
+ fclose (SPCmsgfile);
+ SPCmsgfile = NULL;
+ }
+ #endif
+ #endif
+}
+
+SPC_INTERNAL void SPCApi::DestroySPCContext(SPCHandle_CTX* pSPCctx)
+{
+ if(pSPCctx->pUserID !=NULL)
+ {
+ free(pSPCctx->pUserID);
+ }
+ pSPCctx->ctx.eErrorType = (ErrorType)SUCCESS;
+ pSPCctx->ctx.eState = (AkeState)STATE_IDLE;
+ memset(pSPCctx->ctx.pPreHashMsg,0x00,SAKEP_SHA1_HASH_SIZE);
+ memset(pSPCctx->ctx.pSharedkey,0x00,SAKEP_SHARED_KEY_SIZE);
+ memset(pSPCctx->ctx.pSKPrime,0x00,SAKEP_SK_PRIME_KEY_SIZE);
+}
+
+SPC_INTERNAL void SPCApi::ClearSPCSessionContext(SPCHandle_CTX* pSPCctx)
+{
+ pSPCctx->ctx.eErrorType = (ErrorType)SUCCESS;
+ pSPCctx->ctx.eState = (AkeState)STATE_IDLE;
+ memset(pSPCctx->ctx.pPreHashMsg,0x00,SAKEP_SHA1_HASH_SIZE);
+ //memset(pSPCctx->ctx.pSharedkey,0x00,SAKEP_SHARED_KEY_SIZE);
+ //memset(pSPCctx->ctx.pSKPrime,0x00,SAKEP_SK_PRIME_KEY_SIZE);
+}
+
+
+/**
+ * @fn int ParseClientHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Client Hello Message
+ *
+ * @param [in/out] pSPCctx Context Container
+ * @param [in] pPin common Pin Data
+ * @param [in] nPinLen common Pin Data Length
+ * @param [in] pMessage input Message
+ * @param [in] nInLen input Message Length
+ * @return result of ParseClientHello
+ */
+SPC_INTERNAL int SPCApi::ParseClientHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd, unsigned int nPwdLen,unsigned char* pMessage,unsigned int nInLen)
+{
+ int reVal = SPC_SUCCESS;
+
+ if((NULL==pSPCctx) || (pMessage == NULL) || (nInLen == 0))
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ reVal = m_SAkep.ParseClientHello(&(pSPCctx->ctx),pPwd,nPwdLen,pMessage,nInLen);
+ if(reVal != SPC_SUCCESS)
+ {
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"ParseClientHello login count [ : %d ]\n",pSPCctx->LoginTryCount);
+
+ return reVal;
+ }
+
+ return reVal;
+}
+
+/**
+ * @fn int GeneratorServerHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pID,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate Server Hello Message
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pPwd common password Data
+ * @param [in] pPwdLen password Data length
+ * @param [in] pID Client's ID Value
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorServerHello
+ */
+SPC_INTERNAL int SPCApi::GeneratorServerHello(SPCHandle_CTX* pSPCctx,unsigned char* pPwd,unsigned int nPwdLen,unsigned char* pID,unsigned char* pOutMsg,unsigned int* nOutLen)
+{
+ int reVal = SPC_SUCCESS;
+
+
+ if((NULL==pSPCctx) || (pPwd == NULL) || (nPwdLen == 0) || (pID == NULL) || (pOutMsg==NULL))
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ reVal = m_SAkep.GeneratorServerHello(&(pSPCctx->ctx),pPwd,nPwdLen,pSPCctx->pUserID,pSPCctx->nUserIDLen,pOutMsg,nOutLen);
+ if(reVal != SPC_SUCCESS)
+ {
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerHello login count [ : %d ]\n",pSPCctx->LoginTryCount);
+ return reVal;
+ }
+
+ return reVal;
+}
+
+/**
+ * @fn int GeneratorAck(SPCHandle_CTX* pSPCctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+ * @brief Generate ACK Message
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [out] pOutMsg ClientHelloMessage result
+ * @param [out] nOutLen ClientHelloMessage Length
+ * @return result of GeneratorAck
+ */
+SPC_INTERNAL int SPCApi::GeneratorServerAck(SPCHandle_CTX* pSPCctx,unsigned char* pOutMsg,unsigned int* nOutLen)
+{
+ int reVal = SPC_SUCCESS;
+
+ if((NULL==pSPCctx)||(pOutMsg==NULL) )
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ reVal = m_SAkep.GeneratorServerAck(&(pSPCctx->ctx),pOutMsg,nOutLen);
+ if(reVal != SPC_SUCCESS)
+ {
+
+ DRMLOG_Message(&SPCLogCTX,LOG_ERROR,__FILE__,__LINE__,"GeneratorServerAck login count [ : %d ]\n",pSPCctx->LoginTryCount);
+ return reVal;
+ }
+
+
+
+ return reVal;
+}
+
+
+
+/**
+ * @fn int ParseAck(SPCHandle_CTX* pSPCctx,unsigned char* pMessage,unsigned int nInLen)
+ * @brief Parse Ack Message
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pMessage input Message
+ * @param [in] nInLen input Message len
+ * @return result of ParseAck
+ */
+SPC_INTERNAL int SPCApi::ParseClientAck(SPCHandle_CTX* pSPCctx,unsigned char* pMessage,unsigned int nInLen)
+{
+ int reVal = SPC_SUCCESS;
+
+ if((NULL == pSPCctx) || (pMessage == NULL)|| (nInLen == 0))
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+ reVal = m_SAkep.ParserClientAck(&(pSPCctx->ctx),pMessage,nInLen);
+ if(reVal !=SPC_SUCCESS)
+ {
+ return reVal;
+ }
+
+
+ return reVal;
+}
+
+
+/**
+ * @fn int GeneratorRecordMsg ( Handle_CTX* ctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen)
+ * @brief Content Encrytion
+ *
+ * @param [in] ctx Context Container
+ * @param [in] pPlainData Plain Data(original data)
+ * @param [in] uPlainDataLen Plain Data Length
+ * @param [out] pEncryptedData Encrypted Message(including Header)
+ * @param [out] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @return result of EncryptContents
+ */
+
+SPC_INTERNAL int SPCApi::GeneratorRecordMsg ( SPCHandle_CTX* pSPCctx,unsigned char* pPlainData , unsigned int uPlainDataLen , unsigned char* pEncryptedData , unsigned int* uEncryptedDataLen)
+{
+ int reVal = SPC_SUCCESS;
+
+ if((NULL==pSPCctx) || (pPlainData == NULL) || (uPlainDataLen == 0))
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+
+ reVal = m_SAkep.GeneratorRecordMsg ( &(pSPCctx->ctx),pPlainData , uPlainDataLen , pEncryptedData , uEncryptedDataLen);
+ if(reVal != SPC_SUCCESS)
+ {
+ return reVal;
+ }
+
+ return reVal;
+}
+
+/**
+ * @fn int ParseRecordMsg ( Handle_CTX* ctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen)
+ * @brief Content Encrytion
+ *
+ * @param [in] pSPCctx Context Container
+ * @param [in] pEncryptedData Encrypted Message(including Header)
+ * @param [in] uEncryptedDataLen Encrypted Message length( Encrypted Data Length + Header length)
+ * @param [out] pPlainData Decrypted Message(only payload Message) - (delete Header)
+ * @param [out] uPlainDataLen Decrypted Message length(only payload Message length)-- (delete Header)
+ * @return result of ParseRecordMsg
+ */
+SPC_INTERNAL int SPCApi::ParseRecordMsg ( SPCHandle_CTX* pSPCctx,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen ,unsigned char* pPlainData , unsigned int* uPlainDataLen)
+{
+ int reVal = SPC_SUCCESS;
+
+ if((NULL==pSPCctx) || (pEncryptedData == NULL) || (uEncryptedDataLen == 0))
+ {
+ return SAKEP_INPUT_INVALID_ERROR;
+ }
+
+
+ reVal = m_SAkep.ParseRecordMsg ( &(pSPCctx->ctx),pEncryptedData , uEncryptedDataLen ,pPlainData ,uPlainDataLen);
+ if(reVal != SPC_SUCCESS)
+ {
+ pSPCctx->LoginTryCount = 0;
+ return reVal;
+ }
+
+ return reVal;
+}
+
diff --git a/SPC/Src/Util.cpp b/SPC/Src/Util.cpp
new file mode 100755
index 0000000..18b31f1
--- /dev/null
+++ b/SPC/Src/Util.cpp
@@ -0,0 +1,46 @@
+#include <stdio.h>
+
+/**
+4byte unsinged char * unsigned int ȯ.
+@param pData (Input) - ȯ unsigned char
+@param uData (Output) - ȯ unsigned int Data
+*/
+void ConvertUint8ToUint32 (unsigned char* pData, unsigned int* uData)
+{
+ *uData = pData[0] << 24 | pData [1] << 16 |
+ pData [2] << 8 | pData [3];
+}
+
+/**
+unsigned int 4byte unsigned char * ȯ
+@param uData (Input) - unsigned int Data to convert
+@param pData (Output) - ȯ unsigned char
+*/
+void ConvertUint32ToUint8 (unsigned int uData, unsigned char* pData)
+{
+ pData [0] = (unsigned char) (uData >> 24);
+ pData [1] = (unsigned char) (uData >> 16);
+ pData [2] = (unsigned char) (uData >> 8);
+ pData [3] = (unsigned char) (uData);
+}
+
+/**
+ * @fn GetFileLength(FILE *pFp,int *nFileLen)
+ * @brief Get File length
+ *
+ * @param [in] pOutMsg Input File pointer
+ * @param [out] nOutLen file total length
+ * @return result of GetFileLength
+*/
+int GetFileLength(FILE *pFp,int *nFileLen)
+{
+ int reVal = 0;
+
+ fseek(pFp,0,SEEK_END);
+
+ *nFileLen = ftell(pFp);
+
+ fseek(pFp,0,SEEK_SET);
+
+ return reVal;
+} \ No newline at end of file
diff --git a/SPC/Src/WhiteBox/SDWAP.c b/SPC/Src/WhiteBox/SDWAP.c
new file mode 100755
index 0000000..6a3a2a3
--- /dev/null
+++ b/SPC/Src/WhiteBox/SDWAP.c
@@ -0,0 +1,571 @@
+/**
+ * @file SDWAP.c
+ * @brief Dynamic white box AES module for SSA(Samsung Security Architecture)
+ * @author Samsung Dynamic WhiteBox AES
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * @see SDWAP
+ * @date 2013-01-10
+ * @version 1.0
+ * @par Copyright:
+ * Copyright 2013 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of dynamic whitebox table generation is confidential.
+ */
+
+
+
+////////////////////////////////////////////////////////////////////////////
+// including header files
+////////////////////////////////////////////////////////////////////////////
+#include <memory.h>
+#include <stdio.h>
+#include "SDWAP_defines.h"
+#include "SDWAP.h"
+
+
+////////////////////////////////////////////////////////////////////////////
+// function implementations
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn static void SDWAP_Encryption(SDWAP_TBOX *pTBox, SDWAP_PBOX *pPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+ * @brief SDWAP Encryption function.
+ *
+ * @param [in] pTBox T-Box
+ * @param [in] pPBox P-Box
+ * @param [in] pWPBox word(4byte) permutation box
+ * @param [in] pBPBox bit permutation box
+ * @param [in] Nr number of rounds
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @param [in] isLittleEndian flag for little endian
+ * @return void
+ */
+static void SDWAP_Encryption(SDWAP_TBOX *pTBox, SDWAP_KEY_LOOKUP *pKeyLookup, SDWAP_PBOX *pPBox, SDWAP_WORD_PBOX* pWPBox, SDWAP_BIT_PBOX* pBPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+{
+ unsigned int i;
+ unsigned int idx = 0;
+ unsigned int idx16;
+ unsigned char idx_wps[16];
+ unsigned char state[16]; //state
+ unsigned char rk_xor[16] = {0x00,};
+ SDWAP_WORD* itmdt[16]; //intermediate value
+
+ //3. Process initial permutation
+ idx_wps[(pPBox[0][0][0]) & 0x0f] = state[(pPBox[0][0][0]) & 0x0f] = in[ 0] ^ (*pKeyLookup)[0][0] ^ (*pKeyLookup)[0][4] ^ (*pKeyLookup)[0][8];
+ idx_wps[(pPBox[0][0][1]) & 0x0f] = state[(pPBox[0][0][1]) & 0x0f] = in[ 1] ^ (*pKeyLookup)[1][0] ^ (*pKeyLookup)[1][4] ^ (*pKeyLookup)[1][8];
+ idx_wps[(pPBox[0][0][2]) & 0x0f] = state[(pPBox[0][0][2]) & 0x0f] = in[ 2] ^ (*pKeyLookup)[2][0] ^ (*pKeyLookup)[2][4] ^ (*pKeyLookup)[2][8];
+ idx_wps[(pPBox[0][0][3]) & 0x0f] = state[(pPBox[0][0][3]) & 0x0f] = in[ 3] ^ (*pKeyLookup)[3][0] ^ (*pKeyLookup)[3][4] ^ (*pKeyLookup)[3][8];
+ idx_wps[(pPBox[0][0][4]) & 0x0f] = state[(pPBox[0][0][4]) & 0x0f] = in[ 4] ^ (*pKeyLookup)[0][1] ^ (*pKeyLookup)[0][5] ^ (*pKeyLookup)[0][9];
+ idx_wps[(pPBox[0][0][5]) & 0x0f] = state[(pPBox[0][0][5]) & 0x0f] = in[ 5] ^ (*pKeyLookup)[1][1] ^ (*pKeyLookup)[1][5] ^ (*pKeyLookup)[1][9];
+ idx_wps[(pPBox[0][0][6]) & 0x0f] = state[(pPBox[0][0][6]) & 0x0f] = in[ 6] ^ (*pKeyLookup)[2][1] ^ (*pKeyLookup)[2][5] ^ (*pKeyLookup)[2][9];
+ idx_wps[(pPBox[0][0][7]) & 0x0f] = state[(pPBox[0][0][7]) & 0x0f] = in[ 7] ^ (*pKeyLookup)[3][1] ^ (*pKeyLookup)[3][5] ^ (*pKeyLookup)[3][9];
+ idx_wps[(pPBox[0][1][0]) & 0x0f] = state[(pPBox[0][1][0]) & 0x0f] = in[ 8] ^ (*pKeyLookup)[0][2] ^ (*pKeyLookup)[0][6] ^ (*pKeyLookup)[0][10];
+ idx_wps[(pPBox[0][1][1]) & 0x0f] = state[(pPBox[0][1][1]) & 0x0f] = in[ 9] ^ (*pKeyLookup)[1][2] ^ (*pKeyLookup)[1][6] ^ (*pKeyLookup)[1][10];
+ idx_wps[(pPBox[0][1][2]) & 0x0f] = state[(pPBox[0][1][2]) & 0x0f] = in[10] ^ (*pKeyLookup)[2][2] ^ (*pKeyLookup)[2][6] ^ (*pKeyLookup)[2][10];
+ idx_wps[(pPBox[0][1][3]) & 0x0f] = state[(pPBox[0][1][3]) & 0x0f] = in[11] ^ (*pKeyLookup)[3][2] ^ (*pKeyLookup)[3][6] ^ (*pKeyLookup)[3][10];
+ idx_wps[(pPBox[0][1][4]) & 0x0f] = state[(pPBox[0][1][4]) & 0x0f] = in[12] ^ (*pKeyLookup)[0][3] ^ (*pKeyLookup)[0][7] ^ (*pKeyLookup)[0][11];
+ idx_wps[(pPBox[0][1][5]) & 0x0f] = state[(pPBox[0][1][5]) & 0x0f] = in[13] ^ (*pKeyLookup)[1][3] ^ (*pKeyLookup)[1][7] ^ (*pKeyLookup)[1][11];
+ idx_wps[(pPBox[0][1][6]) & 0x0f] = state[(pPBox[0][1][6]) & 0x0f] = in[14] ^ (*pKeyLookup)[2][3] ^ (*pKeyLookup)[2][7] ^ (*pKeyLookup)[2][11];
+ idx_wps[(pPBox[0][1][7]) & 0x0f] = state[(pPBox[0][1][7]) & 0x0f] = in[15] ^ (*pKeyLookup)[3][3] ^ (*pKeyLookup)[3][7] ^ (*pKeyLookup)[3][11];
+
+ //4. Process each rounds
+ do
+ {
+ idx16 = (idx << 4);
+
+ itmdt[ 0] = (SDWAP_WORD*)pTBox[idx16 + 0][state[ 0] >> 4][state[ 0] & 0xf];
+ itmdt[ 1] = (SDWAP_WORD*)pTBox[idx16 + 1][state[ 1] >> 4][state[ 1] & 0xf];
+ itmdt[ 2] = (SDWAP_WORD*)pTBox[idx16 + 2][state[ 2] >> 4][state[ 2] & 0xf];
+ itmdt[ 3] = (SDWAP_WORD*)pTBox[idx16 + 3][state[ 3] >> 4][state[ 3] & 0xf];
+ itmdt[ 4] = (SDWAP_WORD*)pTBox[idx16 + 4][state[ 4] >> 4][state[ 4] & 0xf];
+ itmdt[ 5] = (SDWAP_WORD*)pTBox[idx16 + 5][state[ 5] >> 4][state[ 5] & 0xf];
+ itmdt[ 6] = (SDWAP_WORD*)pTBox[idx16 + 6][state[ 6] >> 4][state[ 6] & 0xf];
+ itmdt[ 7] = (SDWAP_WORD*)pTBox[idx16 + 7][state[ 7] >> 4][state[ 7] & 0xf];
+ itmdt[ 8] = (SDWAP_WORD*)pTBox[idx16 + 8][state[ 8] >> 4][state[ 8] & 0xf];
+ itmdt[ 9] = (SDWAP_WORD*)pTBox[idx16 + 9][state[ 9] >> 4][state[ 9] & 0xf];
+ itmdt[10] = (SDWAP_WORD*)pTBox[idx16 + 10][state[10] >> 4][state[10] & 0xf];
+ itmdt[11] = (SDWAP_WORD*)pTBox[idx16 + 11][state[11] >> 4][state[11] & 0xf];
+ itmdt[12] = (SDWAP_WORD*)pTBox[idx16 + 12][state[12] >> 4][state[12] & 0xf];
+ itmdt[13] = (SDWAP_WORD*)pTBox[idx16 + 13][state[13] >> 4][state[13] & 0xf];
+ itmdt[14] = (SDWAP_WORD*)pTBox[idx16 + 14][state[14] >> 4][state[14] & 0xf];
+ itmdt[15] = (SDWAP_WORD*)pTBox[idx16 + 15][state[15] >> 4][state[15] & 0xf];
+
+ idx++;
+
+ //Key-Lookup XOR
+ state[ pPBox[idx][0][0] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][0][1] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][0][2] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][0][3] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][1][0] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][1][1] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][1][2] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][1][3] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][2][0] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][2][1] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][2][2] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][2][3] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][3][0] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][3][1] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][3][2] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][3][3] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ rk_xor[ 0] = ((*(pKeyLookup + idx))[0][0] ^ (*(pKeyLookup + idx))[0][4] ^ (*(pKeyLookup + idx))[0][ 8] ^ (*(pKeyLookup + idx))[0][12]) ^ (*(pKeyLookup + (idx - 1)))[0][15];
+ rk_xor[ 1] = ((*(pKeyLookup + idx))[1][0] ^ (*(pKeyLookup + idx))[1][4] ^ (*(pKeyLookup + idx))[1][ 8] ^ (*(pKeyLookup + idx))[1][12]) ^ (*(pKeyLookup + (idx - 1)))[1][15];
+ rk_xor[ 2] = ((*(pKeyLookup + idx))[2][0] ^ (*(pKeyLookup + idx))[2][4] ^ (*(pKeyLookup + idx))[2][ 8] ^ (*(pKeyLookup + idx))[2][12]) ^ (*(pKeyLookup + (idx - 1)))[2][15];
+ rk_xor[ 3] = ((*(pKeyLookup + idx))[3][0] ^ (*(pKeyLookup + idx))[3][4] ^ (*(pKeyLookup + idx))[3][ 8] ^ (*(pKeyLookup + idx))[3][12]) ^ (*(pKeyLookup + (idx - 1)))[3][15];
+
+ rk_xor[ 4] = ((*(pKeyLookup + idx))[0][1] ^ (*(pKeyLookup + idx))[0][5] ^ (*(pKeyLookup + idx))[0][ 9] ^ (*(pKeyLookup + idx))[0][13]) ^ (*(pKeyLookup + (idx - 1)))[0][15];
+ rk_xor[ 5] = ((*(pKeyLookup + idx))[1][1] ^ (*(pKeyLookup + idx))[1][5] ^ (*(pKeyLookup + idx))[1][ 9] ^ (*(pKeyLookup + idx))[1][13]) ^ (*(pKeyLookup + (idx - 1)))[1][15];
+ rk_xor[ 6] = ((*(pKeyLookup + idx))[2][1] ^ (*(pKeyLookup + idx))[2][5] ^ (*(pKeyLookup + idx))[2][ 9] ^ (*(pKeyLookup + idx))[2][13]) ^ (*(pKeyLookup + (idx - 1)))[2][15];
+ rk_xor[ 7] = ((*(pKeyLookup + idx))[3][1] ^ (*(pKeyLookup + idx))[3][5] ^ (*(pKeyLookup + idx))[3][ 9] ^ (*(pKeyLookup + idx))[3][13]) ^ (*(pKeyLookup + (idx - 1)))[3][15];
+
+ rk_xor[ 8] = ((*(pKeyLookup + idx))[0][2] ^ (*(pKeyLookup + idx))[0][6] ^ (*(pKeyLookup + idx))[0][10] ^ (*(pKeyLookup + idx))[0][14]) ^ (*(pKeyLookup + (idx - 1)))[0][15];
+ rk_xor[ 9] = ((*(pKeyLookup + idx))[1][2] ^ (*(pKeyLookup + idx))[1][6] ^ (*(pKeyLookup + idx))[1][10] ^ (*(pKeyLookup + idx))[1][14]) ^ (*(pKeyLookup + (idx - 1)))[1][15];
+ rk_xor[10] = ((*(pKeyLookup + idx))[2][2] ^ (*(pKeyLookup + idx))[2][6] ^ (*(pKeyLookup + idx))[2][10] ^ (*(pKeyLookup + idx))[2][14]) ^ (*(pKeyLookup + (idx - 1)))[2][15];
+ rk_xor[11] = ((*(pKeyLookup + idx))[3][2] ^ (*(pKeyLookup + idx))[3][6] ^ (*(pKeyLookup + idx))[3][10] ^ (*(pKeyLookup + idx))[3][14]) ^ (*(pKeyLookup + (idx - 1)))[3][15];
+
+ rk_xor[12] = ((*(pKeyLookup + idx))[0][3] ^ (*(pKeyLookup + idx))[0][7] ^ (*(pKeyLookup + idx))[0][11] ^ (*(pKeyLookup + idx))[0][16] ^ (*(pKeyLookup + (idx - 1)))[0][15]);
+ rk_xor[13] = ((*(pKeyLookup + idx))[1][3] ^ (*(pKeyLookup + idx))[1][7] ^ (*(pKeyLookup + idx))[1][11] ^ (*(pKeyLookup + idx))[1][16] ^ (*(pKeyLookup + (idx - 1)))[1][15]);
+ rk_xor[14] = ((*(pKeyLookup + idx))[2][3] ^ (*(pKeyLookup + idx))[2][7] ^ (*(pKeyLookup + idx))[2][11] ^ (*(pKeyLookup + idx))[2][16] ^ (*(pKeyLookup + (idx - 1)))[2][15]);
+ rk_xor[15] = ((*(pKeyLookup + idx))[3][3] ^ (*(pKeyLookup + idx))[3][7] ^ (*(pKeyLookup + idx))[3][11] ^ (*(pKeyLookup + idx))[3][16] ^ (*(pKeyLookup + (idx - 1)))[3][15]);
+
+ for(i = 0; i < 4; i++)
+ {
+ state[ pPBox[idx][i][0] & 0x0f ] ^= rk_xor[ pPBox[idx][i][0] & 0x0f ];
+ state[ pPBox[idx][i][1] & 0x0f ] ^= rk_xor[ pPBox[idx][i][1] & 0x0f ];
+ state[ pPBox[idx][i][2] & 0x0f ] ^= rk_xor[ pPBox[idx][i][2] & 0x0f ];
+ state[ pPBox[idx][i][3] & 0x0f ] ^= rk_xor[ pPBox[idx][i][3] & 0x0f ];
+ }
+
+ for(i = 0; i < 16; i++)
+ {
+ idx_wps[i] = state[i];
+ }
+ } while(idx < (Nr - 1));
+
+ idx16 = (idx << 4);
+
+
+ //5. Process final round
+ rk_xor[ 0] = ((*(pKeyLookup + Nr))[0][0] ^ (*(pKeyLookup + Nr))[0][4] ^ (*(pKeyLookup + Nr))[0][ 8] ^ (*(pKeyLookup + Nr))[0][12]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ rk_xor[ 1] = ((*(pKeyLookup + Nr))[1][0] ^ (*(pKeyLookup + Nr))[1][4] ^ (*(pKeyLookup + Nr))[1][ 8] ^ (*(pKeyLookup + Nr))[1][12]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ rk_xor[ 2] = ((*(pKeyLookup + Nr))[2][0] ^ (*(pKeyLookup + Nr))[2][4] ^ (*(pKeyLookup + Nr))[2][ 8] ^ (*(pKeyLookup + Nr))[2][12]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ rk_xor[ 3] = ((*(pKeyLookup + Nr))[3][0] ^ (*(pKeyLookup + Nr))[3][4] ^ (*(pKeyLookup + Nr))[3][ 8] ^ (*(pKeyLookup + Nr))[3][12]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+
+ rk_xor[ 4] = ((*(pKeyLookup + Nr))[0][1] ^ (*(pKeyLookup + Nr))[0][5] ^ (*(pKeyLookup + Nr))[0][ 9] ^ (*(pKeyLookup + Nr))[0][13]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ rk_xor[ 5] = ((*(pKeyLookup + Nr))[1][1] ^ (*(pKeyLookup + Nr))[1][5] ^ (*(pKeyLookup + Nr))[1][ 9] ^ (*(pKeyLookup + Nr))[1][13]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ rk_xor[ 6] = ((*(pKeyLookup + Nr))[2][1] ^ (*(pKeyLookup + Nr))[2][5] ^ (*(pKeyLookup + Nr))[2][ 9] ^ (*(pKeyLookup + Nr))[2][13]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ rk_xor[ 7] = ((*(pKeyLookup + Nr))[3][1] ^ (*(pKeyLookup + Nr))[3][5] ^ (*(pKeyLookup + Nr))[3][ 9] ^ (*(pKeyLookup + Nr))[3][13]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+
+ rk_xor[ 8] = ((*(pKeyLookup + Nr))[0][2] ^ (*(pKeyLookup + Nr))[0][6] ^ (*(pKeyLookup + Nr))[0][10] ^ (*(pKeyLookup + Nr))[0][14]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ rk_xor[ 9] = ((*(pKeyLookup + Nr))[1][2] ^ (*(pKeyLookup + Nr))[1][6] ^ (*(pKeyLookup + Nr))[1][10] ^ (*(pKeyLookup + Nr))[1][14]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ rk_xor[10] = ((*(pKeyLookup + Nr))[2][2] ^ (*(pKeyLookup + Nr))[2][6] ^ (*(pKeyLookup + Nr))[2][10] ^ (*(pKeyLookup + Nr))[2][14]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ rk_xor[11] = ((*(pKeyLookup + Nr))[3][2] ^ (*(pKeyLookup + Nr))[3][6] ^ (*(pKeyLookup + Nr))[3][10] ^ (*(pKeyLookup + Nr))[3][14]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+
+ rk_xor[12] = ((*(pKeyLookup + Nr))[0][3] ^ (*(pKeyLookup + Nr))[0][7] ^ (*(pKeyLookup + Nr))[0][11] ^ (*(pKeyLookup + Nr))[0][16] ^ (*(pKeyLookup + (Nr - 1)))[0][15]);
+ rk_xor[13] = ((*(pKeyLookup + Nr))[1][3] ^ (*(pKeyLookup + Nr))[1][7] ^ (*(pKeyLookup + Nr))[1][11] ^ (*(pKeyLookup + Nr))[1][16] ^ (*(pKeyLookup + (Nr - 1)))[1][15]);
+ rk_xor[14] = ((*(pKeyLookup + Nr))[2][3] ^ (*(pKeyLookup + Nr))[2][7] ^ (*(pKeyLookup + Nr))[2][11] ^ (*(pKeyLookup + Nr))[2][16] ^ (*(pKeyLookup + (Nr - 1)))[2][15]);
+ rk_xor[15] = ((*(pKeyLookup + Nr))[3][3] ^ (*(pKeyLookup + Nr))[3][7] ^ (*(pKeyLookup + Nr))[3][11] ^ (*(pKeyLookup + Nr))[3][16] ^ (*(pKeyLookup + (Nr - 1)))[3][15]);
+
+ //make output
+ out[pPBox[Nr][0][0] & 0x0f] = pTBox[ idx16 + 0 ][ state[ 0] >> 4 ][ state[ 0] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 0] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][0] & 0x0f ];
+ out[pPBox[Nr][0][1] & 0x0f] = pTBox[ idx16 + 1 ][ state[ 1] >> 4 ][ state[ 1] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 1] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][1] & 0x0f ];
+ out[pPBox[Nr][0][2] & 0x0f] = pTBox[ idx16 + 2 ][ state[ 2] >> 4 ][ state[ 2] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 2] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][2] & 0x0f ];
+ out[pPBox[Nr][0][3] & 0x0f] = pTBox[ idx16 + 3 ][ state[ 3] >> 4 ][ state[ 3] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 3] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][3] & 0x0f ];
+ out[pPBox[Nr][0][4] & 0x0f] = pTBox[ idx16 + 4 ][ state[ 4] >> 4 ][ state[ 4] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 4] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][4] & 0x0f ];
+ out[pPBox[Nr][0][5] & 0x0f] = pTBox[ idx16 + 5 ][ state[ 5] >> 4 ][ state[ 5] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 5] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][5] & 0x0f ];
+ out[pPBox[Nr][0][6] & 0x0f] = pTBox[ idx16 + 6 ][ state[ 6] >> 4 ][ state[ 6] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 6] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][6] & 0x0f ];
+ out[pPBox[Nr][0][7] & 0x0f] = pTBox[ idx16 + 7 ][ state[ 7] >> 4 ][ state[ 7] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 7] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][7] & 0x0f ];
+ out[pPBox[Nr][1][0] & 0x0f] = pTBox[ idx16 + 8 ][ state[ 8] >> 4 ][ state[ 8] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 8] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][0] & 0x0f ];
+ out[pPBox[Nr][1][1] & 0x0f] = pTBox[ idx16 + 9 ][ state[ 9] >> 4 ][ state[ 9] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 9] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][1] & 0x0f ];
+ out[pPBox[Nr][1][2] & 0x0f] = pTBox[ idx16 + 10 ][ state[10] >> 4 ][ state[10] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[10] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][2] & 0x0f ];
+ out[pPBox[Nr][1][3] & 0x0f] = pTBox[ idx16 + 11 ][ state[11] >> 4 ][ state[11] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[11] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][3] & 0x0f ];
+ out[pPBox[Nr][1][4] & 0x0f] = pTBox[ idx16 + 12 ][ state[12] >> 4 ][ state[12] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[12] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][4] & 0x0f ];
+ out[pPBox[Nr][1][5] & 0x0f] = pTBox[ idx16 + 13 ][ state[13] >> 4 ][ state[13] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[13] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][5] & 0x0f ];
+ out[pPBox[Nr][1][6] & 0x0f] = pTBox[ idx16 + 14 ][ state[14] >> 4 ][ state[14] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[14] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][6] & 0x0f ];
+ out[pPBox[Nr][1][7] & 0x0f] = pTBox[ idx16 + 15 ][ state[15] >> 4 ][ state[15] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[15] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][7] & 0x0f ];
+}
+
+
+/**
+ * @var static const SDWAP_SBOX inv_s_box
+ * @brief inverse of S-box defined int FIPS-197
+ */
+SPC_INTERNAL SDWAP_SBOX sdwap_inv_s_box_ =
+{
+ {0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb},
+ {0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb},
+ {0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e},
+ {0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25},
+ {0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92},
+ {0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84},
+ {0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06},
+ {0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b},
+ {0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73},
+ {0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e},
+ {0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b},
+ {0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4},
+ {0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f},
+ {0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef},
+ {0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61},
+ {0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d}
+};
+
+static const unsigned char sdwap_inv_sr_matrix_[16] =
+ {0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11};
+
+
+/*
+ * @fn static void SDWAP_Decryption(SDWAP_TBOX *pTBox, SDWAP_KEY_LOOKUP *pKeyLookup, SDWAP_PBOX *pPBox, SDWAP_WORD_PBOX* pWPBox, SDWAP_BIT_PBOX* pBPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+ * @brief SDWAP Decryption function.
+ *
+ * @param [in] pTBox T-Box
+ * @param [in] pkeyLookup Round-key lookup table
+ * @param [in] pPBox P-Box
+ * @param [in] pWPBox word(4byte) permutation box
+ * @param [in] pBPBox bit permutation box
+ * @param [in] Nr number of rounds
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @param [in] isLittleEndian flag for little endian
+ * @return void
+ */
+static void SDWAP_Decryption(SDWAP_TBOX *pTBox, SDWAP_KEY_LOOKUP *pKeyLookup, SDWAP_PBOX *pPBox, SDWAP_WORD_PBOX* pWPBox, SDWAP_BIT_PBOX* pBPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+{
+ unsigned int i;
+ unsigned int idx = 0;
+ unsigned int idx16;
+ unsigned char temp;
+ unsigned char idx_wps[16];
+ unsigned char state[16]; //state
+ unsigned char rk_xor[16];
+ SDWAP_WORD* itmdt[16]; //intermediate value
+
+
+ //3. Process initial permutation
+ idx_wps[(pPBox[0][0][0]) & 0x0f] = state[(pPBox[0][0][0]) & 0x0f] = in[ 0] ^ ((*(pKeyLookup + Nr))[0][0] ^ (*(pKeyLookup + Nr))[0][4] ^ (*(pKeyLookup + Nr))[0][ 8] ^ (*(pKeyLookup + Nr))[0][12]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ idx_wps[(pPBox[0][0][1]) & 0x0f] = state[(pPBox[0][0][1]) & 0x0f] = in[ 1] ^ ((*(pKeyLookup + Nr))[1][0] ^ (*(pKeyLookup + Nr))[1][4] ^ (*(pKeyLookup + Nr))[1][ 8] ^ (*(pKeyLookup + Nr))[1][12]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ idx_wps[(pPBox[0][0][2]) & 0x0f] = state[(pPBox[0][0][2]) & 0x0f] = in[ 2] ^ ((*(pKeyLookup + Nr))[2][0] ^ (*(pKeyLookup + Nr))[2][4] ^ (*(pKeyLookup + Nr))[2][ 8] ^ (*(pKeyLookup + Nr))[2][12]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ idx_wps[(pPBox[0][0][3]) & 0x0f] = state[(pPBox[0][0][3]) & 0x0f] = in[ 3] ^ ((*(pKeyLookup + Nr))[3][0] ^ (*(pKeyLookup + Nr))[3][4] ^ (*(pKeyLookup + Nr))[3][ 8] ^ (*(pKeyLookup + Nr))[3][12]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+ idx_wps[(pPBox[0][0][4]) & 0x0f] = state[(pPBox[0][0][4]) & 0x0f] = in[ 4] ^ ((*(pKeyLookup + Nr))[0][1] ^ (*(pKeyLookup + Nr))[0][5] ^ (*(pKeyLookup + Nr))[0][ 9] ^ (*(pKeyLookup + Nr))[0][13]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ idx_wps[(pPBox[0][0][5]) & 0x0f] = state[(pPBox[0][0][5]) & 0x0f] = in[ 5] ^ ((*(pKeyLookup + Nr))[1][1] ^ (*(pKeyLookup + Nr))[1][5] ^ (*(pKeyLookup + Nr))[1][ 9] ^ (*(pKeyLookup + Nr))[1][13]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ idx_wps[(pPBox[0][0][6]) & 0x0f] = state[(pPBox[0][0][6]) & 0x0f] = in[ 6] ^ ((*(pKeyLookup + Nr))[2][1] ^ (*(pKeyLookup + Nr))[2][5] ^ (*(pKeyLookup + Nr))[2][ 9] ^ (*(pKeyLookup + Nr))[2][13]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ idx_wps[(pPBox[0][0][7]) & 0x0f] = state[(pPBox[0][0][7]) & 0x0f] = in[ 7] ^ ((*(pKeyLookup + Nr))[3][1] ^ (*(pKeyLookup + Nr))[3][5] ^ (*(pKeyLookup + Nr))[3][ 9] ^ (*(pKeyLookup + Nr))[3][13]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+ idx_wps[(pPBox[0][1][0]) & 0x0f] = state[(pPBox[0][1][0]) & 0x0f] = in[ 8] ^ ((*(pKeyLookup + Nr))[0][2] ^ (*(pKeyLookup + Nr))[0][6] ^ (*(pKeyLookup + Nr))[0][10] ^ (*(pKeyLookup + Nr))[0][14]) ^ (*(pKeyLookup + (Nr - 1)))[0][15];
+ idx_wps[(pPBox[0][1][1]) & 0x0f] = state[(pPBox[0][1][1]) & 0x0f] = in[ 9] ^ ((*(pKeyLookup + Nr))[1][2] ^ (*(pKeyLookup + Nr))[1][6] ^ (*(pKeyLookup + Nr))[1][10] ^ (*(pKeyLookup + Nr))[1][14]) ^ (*(pKeyLookup + (Nr - 1)))[1][15];
+ idx_wps[(pPBox[0][1][2]) & 0x0f] = state[(pPBox[0][1][2]) & 0x0f] = in[10] ^ ((*(pKeyLookup + Nr))[2][2] ^ (*(pKeyLookup + Nr))[2][6] ^ (*(pKeyLookup + Nr))[2][10] ^ (*(pKeyLookup + Nr))[2][14]) ^ (*(pKeyLookup + (Nr - 1)))[2][15];
+ idx_wps[(pPBox[0][1][3]) & 0x0f] = state[(pPBox[0][1][3]) & 0x0f] = in[11] ^ ((*(pKeyLookup + Nr))[3][2] ^ (*(pKeyLookup + Nr))[3][6] ^ (*(pKeyLookup + Nr))[3][10] ^ (*(pKeyLookup + Nr))[3][14]) ^ (*(pKeyLookup + (Nr - 1)))[3][15];
+ idx_wps[(pPBox[0][1][4]) & 0x0f] = state[(pPBox[0][1][4]) & 0x0f] = in[12] ^ ((*(pKeyLookup + Nr))[0][3] ^ (*(pKeyLookup + Nr))[0][7] ^ (*(pKeyLookup + Nr))[0][11] ^ (*(pKeyLookup + Nr))[0][16] ^ (*(pKeyLookup + (Nr - 1)))[0][15]);
+ idx_wps[(pPBox[0][1][5]) & 0x0f] = state[(pPBox[0][1][5]) & 0x0f] = in[13] ^ ((*(pKeyLookup + Nr))[1][3] ^ (*(pKeyLookup + Nr))[1][7] ^ (*(pKeyLookup + Nr))[1][11] ^ (*(pKeyLookup + Nr))[1][16] ^ (*(pKeyLookup + (Nr - 1)))[1][15]);
+ idx_wps[(pPBox[0][1][6]) & 0x0f] = state[(pPBox[0][1][6]) & 0x0f] = in[14] ^ ((*(pKeyLookup + Nr))[2][3] ^ (*(pKeyLookup + Nr))[2][7] ^ (*(pKeyLookup + Nr))[2][11] ^ (*(pKeyLookup + Nr))[2][16] ^ (*(pKeyLookup + (Nr - 1)))[2][15]);
+ idx_wps[(pPBox[0][1][7]) & 0x0f] = state[(pPBox[0][1][7]) & 0x0f] = in[15] ^ ((*(pKeyLookup + Nr))[3][3] ^ (*(pKeyLookup + Nr))[3][7] ^ (*(pKeyLookup + Nr))[3][11] ^ (*(pKeyLookup + Nr))[3][16] ^ (*(pKeyLookup + (Nr - 1)))[3][15]);
+
+ //4. Process each rounds
+ do
+ {
+ idx16 = (idx << 4);
+
+ idx++;
+
+ //calc round key
+ rk_xor[ 0] = ((*(pKeyLookup + (Nr - idx)))[0][0] ^ (*(pKeyLookup + (Nr - idx)))[0][4] ^ (*(pKeyLookup + (Nr - idx)))[0][ 8] ^ (*(pKeyLookup + (Nr - idx)))[0][12]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[0][15];
+ rk_xor[ 1] = ((*(pKeyLookup + (Nr - idx)))[1][0] ^ (*(pKeyLookup + (Nr - idx)))[1][4] ^ (*(pKeyLookup + (Nr - idx)))[1][ 8] ^ (*(pKeyLookup + (Nr - idx)))[1][12]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[1][15];
+ rk_xor[ 2] = ((*(pKeyLookup + (Nr - idx)))[2][0] ^ (*(pKeyLookup + (Nr - idx)))[2][4] ^ (*(pKeyLookup + (Nr - idx)))[2][ 8] ^ (*(pKeyLookup + (Nr - idx)))[2][12]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[2][15];
+ rk_xor[ 3] = ((*(pKeyLookup + (Nr - idx)))[3][0] ^ (*(pKeyLookup + (Nr - idx)))[3][4] ^ (*(pKeyLookup + (Nr - idx)))[3][ 8] ^ (*(pKeyLookup + (Nr - idx)))[3][12]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[3][15];
+ rk_xor[ 4] = ((*(pKeyLookup + (Nr - idx)))[0][1] ^ (*(pKeyLookup + (Nr - idx)))[0][5] ^ (*(pKeyLookup + (Nr - idx)))[0][ 9] ^ (*(pKeyLookup + (Nr - idx)))[0][13]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[0][15];
+ rk_xor[ 5] = ((*(pKeyLookup + (Nr - idx)))[1][1] ^ (*(pKeyLookup + (Nr - idx)))[1][5] ^ (*(pKeyLookup + (Nr - idx)))[1][ 9] ^ (*(pKeyLookup + (Nr - idx)))[1][13]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[1][15];
+ rk_xor[ 6] = ((*(pKeyLookup + (Nr - idx)))[2][1] ^ (*(pKeyLookup + (Nr - idx)))[2][5] ^ (*(pKeyLookup + (Nr - idx)))[2][ 9] ^ (*(pKeyLookup + (Nr - idx)))[2][13]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[2][15];
+ rk_xor[ 7] = ((*(pKeyLookup + (Nr - idx)))[3][1] ^ (*(pKeyLookup + (Nr - idx)))[3][5] ^ (*(pKeyLookup + (Nr - idx)))[3][ 9] ^ (*(pKeyLookup + (Nr - idx)))[3][13]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[3][15];
+ rk_xor[ 8] = ((*(pKeyLookup + (Nr - idx)))[0][2] ^ (*(pKeyLookup + (Nr - idx)))[0][6] ^ (*(pKeyLookup + (Nr - idx)))[0][10] ^ (*(pKeyLookup + (Nr - idx)))[0][14]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[0][15];
+ rk_xor[ 9] = ((*(pKeyLookup + (Nr - idx)))[1][2] ^ (*(pKeyLookup + (Nr - idx)))[1][6] ^ (*(pKeyLookup + (Nr - idx)))[1][10] ^ (*(pKeyLookup + (Nr - idx)))[1][14]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[1][15];
+ rk_xor[10] = ((*(pKeyLookup + (Nr - idx)))[2][2] ^ (*(pKeyLookup + (Nr - idx)))[2][6] ^ (*(pKeyLookup + (Nr - idx)))[2][10] ^ (*(pKeyLookup + (Nr - idx)))[2][14]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[2][15];
+ rk_xor[11] = ((*(pKeyLookup + (Nr - idx)))[3][2] ^ (*(pKeyLookup + (Nr - idx)))[3][6] ^ (*(pKeyLookup + (Nr - idx)))[3][10] ^ (*(pKeyLookup + (Nr - idx)))[3][14]) ^ (*(pKeyLookup + ((Nr - idx) - 1)))[3][15];
+ rk_xor[12] = ((*(pKeyLookup + (Nr - idx)))[0][3] ^ (*(pKeyLookup + (Nr - idx)))[0][7] ^ (*(pKeyLookup + (Nr - idx)))[0][11] ^ (*(pKeyLookup + (Nr - idx)))[0][16] ^ (*(pKeyLookup + ((Nr - idx) - 1)))[0][15]);
+ rk_xor[13] = ((*(pKeyLookup + (Nr - idx)))[1][3] ^ (*(pKeyLookup + (Nr - idx)))[1][7] ^ (*(pKeyLookup + (Nr - idx)))[1][11] ^ (*(pKeyLookup + (Nr - idx)))[1][16] ^ (*(pKeyLookup + ((Nr - idx) - 1)))[1][15]);
+ rk_xor[14] = ((*(pKeyLookup + (Nr - idx)))[2][3] ^ (*(pKeyLookup + (Nr - idx)))[2][7] ^ (*(pKeyLookup + (Nr - idx)))[2][11] ^ (*(pKeyLookup + (Nr - idx)))[2][16] ^ (*(pKeyLookup + ((Nr - idx) - 1)))[2][15]);
+ rk_xor[15] = ((*(pKeyLookup + (Nr - idx)))[3][3] ^ (*(pKeyLookup + (Nr - idx)))[3][7] ^ (*(pKeyLookup + (Nr - idx)))[3][11] ^ (*(pKeyLookup + (Nr - idx)))[3][16] ^ (*(pKeyLookup + ((Nr - idx) - 1)))[3][15]);
+
+ if(idx <= 1)
+ {
+ for (i = 0; i < 16; i++)
+ {
+ temp = sdwap_inv_s_box_[state[i] >> 4][state[i] & 0xf] ^ rk_xor[sdwap_inv_sr_matrix_[i]];
+ itmdt[i] = (SDWAP_WORD*)pTBox[idx16 + i][temp >> 4][temp & 0xf];
+ }
+ }
+ else
+ {
+ for (i = 0; i < 16; i++)
+ {
+ temp = sdwap_inv_s_box_[state[i] >> 4][state[i] & 0xf] ^ rk_xor[i];
+ itmdt[i] = (SDWAP_WORD*)pTBox[idx16 + i][temp >> 4][temp & 0xf];
+ }
+ }
+
+ state[ pPBox[idx][0][0] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][0][1] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][0][2] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][0][3] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][1][0] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][1][1] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][1][2] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][1][3] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][2][0] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][2][1] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][2][2] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][2][3] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][3][0] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][3][1] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][3][2] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][3][3] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ for(i = 0; i < 16; i++)
+ {
+ idx_wps[i] = state[i];
+ }
+
+ } while(idx < (Nr - 1));
+
+ idx16 = (idx << 4);
+
+ //5. Process final round
+ rk_xor[ 0] = (*pKeyLookup)[0][0] ^ (*pKeyLookup)[0][4] ^ (*pKeyLookup)[0][ 8];
+ rk_xor[ 1] = (*pKeyLookup)[1][0] ^ (*pKeyLookup)[1][4] ^ (*pKeyLookup)[1][ 8];
+ rk_xor[ 2] = (*pKeyLookup)[2][0] ^ (*pKeyLookup)[2][4] ^ (*pKeyLookup)[2][ 8];
+ rk_xor[ 3] = (*pKeyLookup)[3][0] ^ (*pKeyLookup)[3][4] ^ (*pKeyLookup)[3][ 8];
+ rk_xor[ 4] = (*pKeyLookup)[0][1] ^ (*pKeyLookup)[0][5] ^ (*pKeyLookup)[0][ 9];
+ rk_xor[ 5] = (*pKeyLookup)[1][1] ^ (*pKeyLookup)[1][5] ^ (*pKeyLookup)[1][ 9];
+ rk_xor[ 6] = (*pKeyLookup)[2][1] ^ (*pKeyLookup)[2][5] ^ (*pKeyLookup)[2][ 9];
+ rk_xor[ 7] = (*pKeyLookup)[3][1] ^ (*pKeyLookup)[3][5] ^ (*pKeyLookup)[3][ 9];
+ rk_xor[ 8] = (*pKeyLookup)[0][2] ^ (*pKeyLookup)[0][6] ^ (*pKeyLookup)[0][10];
+ rk_xor[ 9] = (*pKeyLookup)[1][2] ^ (*pKeyLookup)[1][6] ^ (*pKeyLookup)[1][10];
+ rk_xor[10] = (*pKeyLookup)[2][2] ^ (*pKeyLookup)[2][6] ^ (*pKeyLookup)[2][10];
+ rk_xor[11] = (*pKeyLookup)[3][2] ^ (*pKeyLookup)[3][6] ^ (*pKeyLookup)[3][10];
+ rk_xor[12] = (*pKeyLookup)[0][3] ^ (*pKeyLookup)[0][7] ^ (*pKeyLookup)[0][11];
+ rk_xor[13] = (*pKeyLookup)[1][3] ^ (*pKeyLookup)[1][7] ^ (*pKeyLookup)[1][11];
+ rk_xor[14] = (*pKeyLookup)[2][3] ^ (*pKeyLookup)[2][7] ^ (*pKeyLookup)[2][11];
+ rk_xor[15] = (*pKeyLookup)[3][3] ^ (*pKeyLookup)[3][7] ^ (*pKeyLookup)[3][11];
+
+
+ //make output
+ out[pPBox[Nr][0][0] & 0x0f] = pTBox[ idx16 + 0 ][ state[ 0] >> 4 ][ state[ 0] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 0] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][0] & 0x0f ];
+ out[pPBox[Nr][0][1] & 0x0f] = pTBox[ idx16 + 1 ][ state[ 1] >> 4 ][ state[ 1] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 1] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][1] & 0x0f ];
+ out[pPBox[Nr][0][2] & 0x0f] = pTBox[ idx16 + 2 ][ state[ 2] >> 4 ][ state[ 2] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 2] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][2] & 0x0f ];
+ out[pPBox[Nr][0][3] & 0x0f] = pTBox[ idx16 + 3 ][ state[ 3] >> 4 ][ state[ 3] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 3] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][3] & 0x0f ];
+ out[pPBox[Nr][0][4] & 0x0f] = pTBox[ idx16 + 4 ][ state[ 4] >> 4 ][ state[ 4] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 4] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][4] & 0x0f ];
+ out[pPBox[Nr][0][5] & 0x0f] = pTBox[ idx16 + 5 ][ state[ 5] >> 4 ][ state[ 5] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 5] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][5] & 0x0f ];
+ out[pPBox[Nr][0][6] & 0x0f] = pTBox[ idx16 + 6 ][ state[ 6] >> 4 ][ state[ 6] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 6] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][6] & 0x0f ];
+ out[pPBox[Nr][0][7] & 0x0f] = pTBox[ idx16 + 7 ][ state[ 7] >> 4 ][ state[ 7] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 7] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][0][7] & 0x0f ];
+ out[pPBox[Nr][1][0] & 0x0f] = pTBox[ idx16 + 8 ][ state[ 8] >> 4 ][ state[ 8] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 8] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][0] & 0x0f ];
+ out[pPBox[Nr][1][1] & 0x0f] = pTBox[ idx16 + 9 ][ state[ 9] >> 4 ][ state[ 9] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 9] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][1] & 0x0f ];
+ out[pPBox[Nr][1][2] & 0x0f] = pTBox[ idx16 + 10 ][ state[10] >> 4 ][ state[10] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[10] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][2] & 0x0f ];
+ out[pPBox[Nr][1][3] & 0x0f] = pTBox[ idx16 + 11 ][ state[11] >> 4 ][ state[11] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[11] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][3] & 0x0f ];
+ out[pPBox[Nr][1][4] & 0x0f] = pTBox[ idx16 + 12 ][ state[12] >> 4 ][ state[12] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[12] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][4] & 0x0f ];
+ out[pPBox[Nr][1][5] & 0x0f] = pTBox[ idx16 + 13 ][ state[13] >> 4 ][ state[13] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[13] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][5] & 0x0f ];
+ out[pPBox[Nr][1][6] & 0x0f] = pTBox[ idx16 + 14 ][ state[14] >> 4 ][ state[14] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[14] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][6] & 0x0f ];
+ out[pPBox[Nr][1][7] & 0x0f] = pTBox[ idx16 + 15 ][ state[15] >> 4 ][ state[15] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[15] & 0x0f) % 4]][0] ] ^ rk_xor[ pPBox[Nr][1][7] & 0x0f ];
+
+ return;
+}
+
+
+
+/**
+ * @fn SDWAP_RETURN_VAL SDWAP_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int OptimizLev)
+ * @brief processing encryption or decryption according to the table
+ *
+ * @param [in] Table look-up table for SDWAP
+ * @param [in] TableLen byte-length of look-up table
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @return SDWAP_RETURN_VAL
+ */
+SPC_INTERNAL SDWAP_RETURN_VAL SDWAP_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int isEncryption)
+{
+ unsigned int Nr;
+ unsigned int Nk;
+ unsigned int TBoxSize;
+ unsigned int PBoxSize;
+ unsigned int WPBoxSize;
+ unsigned int BPBoxSize;
+
+ SDWAP_TBOX *pTBox = NULL;
+ SDWAP_PBOX *pPBox = NULL;
+ SDWAP_WORD_PBOX *pWPBox = NULL;
+ SDWAP_BIT_PBOX *pBPBox = NULL;
+ SDWAP_KEY_LOOKUP *pKeyLookup = NULL;
+
+ unsigned char isLittleEndian;
+
+ {
+ //get little endian flag
+ unsigned int EndianTestVector = 1;
+ isLittleEndian = *(unsigned char*)(&EndianTestVector);
+ }
+
+ //1. Parameter checking
+ if ((Table == NULL) || (in == NULL) || (out == NULL))
+ {
+ return SDWAP_RETURN_INVALID_PARAMETER; //invalid parameter
+ }
+
+ //2. Get Nr(Number of Rounds)
+ switch(TableLen)
+ {
+ case (SDWAP_T_TABLE_ROUND_SIZE * SDWAP_128_ROUNDS) + (SDWAP_P_TABLE_ROUND_SIZE * (SDWAP_128_ROUNDS + 1)):
+ //AES128
+ Nr = SDWAP_128_ROUNDS;
+ Nk = 16 / SDWAP_WORD_SIZE;
+ break;
+ case (SDWAP_T_TABLE_ROUND_SIZE * SDWAP_192_ROUNDS) + (SDWAP_P_TABLE_ROUND_SIZE * (SDWAP_192_ROUNDS + 1)):
+ //AES192
+ Nr = SDWAP_192_ROUNDS;
+ Nk = 24 / SDWAP_WORD_SIZE;
+ break;
+ case (SDWAP_T_TABLE_ROUND_SIZE * SDWAP_256_ROUNDS) + (SDWAP_P_TABLE_ROUND_SIZE * (SDWAP_256_ROUNDS + 1)):
+ //AES256
+ Nr = SDWAP_256_ROUNDS;
+ Nk = 32 / SDWAP_WORD_SIZE;
+ break;
+ default :
+ return SDWAP_RETURN_INVALID_TBLSIZE; //invalid parameter
+ }
+
+ //Get pointer of P-Box
+ pTBox = (SDWAP_TBOX*)Table;
+ TBoxSize = SDWAP_T_TABLE_ROUND_SIZE * Nr;
+
+ pPBox = (SDWAP_PBOX*)((unsigned char*)pTBox + TBoxSize);
+ PBoxSize = SDWAP_P_TABLE_ROUND_SIZE * (Nr + 1);
+ WPBoxSize = SDWAP_WP_TABLE_ROUND_SIZE * (Nr);
+ BPBoxSize = SDWAP_BP_TABLE_ROUND_SIZE * Nr;
+
+ pWPBox = (SDWAP_WORD_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize);
+ pBPBox = (SDWAP_BIT_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize + WPBoxSize);
+ pKeyLookup = (SDWAP_KEY_LOOKUP*)((unsigned char*)pTBox + TBoxSize + PBoxSize + WPBoxSize + BPBoxSize);
+
+ if(isEncryption)
+ {
+ SDWAP_Encryption(pTBox, pKeyLookup, pPBox, pWPBox, pBPBox, Nr, in, out, isLittleEndian);
+ }
+ else
+ {
+ SDWAP_Decryption(pTBox, pKeyLookup, pPBox, pWPBox, pBPBox, Nr, in, out, isLittleEndian);
+ }
+
+ return SDWAP_RETURN_SUCCESS;
+}
+
+////////////////////////// End of File //////////////////////////
diff --git a/SPC/Src/WhiteBox/SDWAP_TblGen.c b/SPC/Src/WhiteBox/SDWAP_TblGen.c
new file mode 100755
index 0000000..89affe1
--- /dev/null
+++ b/SPC/Src/WhiteBox/SDWAP_TblGen.c
@@ -0,0 +1,1724 @@
+/**
+ * @file SDWAP_TblGen.c
+ * @brief Dynamic white box AES table generation module for SSA(Samsung Security Architecture)
+ * @author Samsung Dynamic WhiteBox AES
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab
+ *
+ * @see SDWAP
+ * @date 2013-01-10
+ * @version 1.0
+ * @par Copyright:
+ * Copyright 2013 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of whitebox table generation is confidential.
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// including header files
+////////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include <stdio.h>
+#include <memory.h>
+#include "SDWAP_defines.h"
+#include "SDWAP_TblGen.h"
+
+////////////////////////////////////////////////////////////////////////////
+// static type definitions
+////////////////////////////////////////////////////////////////////////////
+/*! Table generation types */
+typedef enum _SDWAP_TABLE_TYPE
+{
+ SDWAP_TABLE_TYPE_ENCRYPTION = 0, /*!< Table for encryption */
+ SDWAP_TABLE_TYPE_DECRYPTION = 1 /*!< Table for decryption */
+} SDWAP_TABLE_TYPE;
+
+////////////////////////////////////////////////////////////////////////////
+// static global variables
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @var static const SDWAP_SBOX sdwap_s_box
+ * @brief S-box value defined int FIPS-197
+ */
+SPC_INTERNAL SDWAP_SBOX sdwap_s_box =
+{
+ {0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76},
+ {0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0},
+ {0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15},
+ {0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75},
+ {0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84},
+ {0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf},
+ {0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8},
+ {0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2},
+ {0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73},
+ {0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb},
+ {0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79},
+ {0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08},
+ {0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a},
+ {0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e},
+ {0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf},
+ {0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16}
+};
+
+/**
+ * @var static const SDWAP_SBOX sdwap_inv_s_box
+ * @brief inverse of S-box defined int FIPS-197
+ */
+SPC_INTERNAL SDWAP_SBOX sdwap_inv_s_box =
+{
+ {0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb},
+ {0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb},
+ {0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e},
+ {0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25},
+ {0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92},
+ {0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84},
+ {0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06},
+ {0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b},
+ {0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73},
+ {0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e},
+ {0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b},
+ {0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4},
+ {0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f},
+ {0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef},
+ {0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61},
+ {0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d}
+};
+
+SPC_INTERNAL SDWAP_SBOX* pSDWAP_SBox;
+SPC_INTERNAL SDWAP_SBOX* pSDWAP_InvSBox;
+
+/**
+ * @var static const unsigned char sdwap_sr_matrix[16]
+ * @brief look-up matrix for ShiftRows
+ */
+static const unsigned char sdwap_sr_matrix[16] =
+ {0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3};
+
+/**
+ * @var static const unsigned char sdwap_inv_sr_matrix[16]
+ * @brief look-up matrix for InvShiftRows, inverse of sdwap_sr_matrix
+ */
+static const unsigned char sdwap_inv_sr_matrix[16] =
+ {0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11};
+
+
+
+////////////////////////////////////////////////////////////////////////////
+// function implementations
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @fn static unsigned char SDWAP_XTIMEs(unsigned char x, unsigned char b)
+ * @brief calc byte to byte multiplication defined in FIPS-197
+ *
+ * @param [in] x polynomial x
+ * @param [in] b byte
+ * @return result of multiplication
+ */
+static unsigned char SDWAP_XTIMEs(unsigned char x, unsigned char b)
+{
+ int i;
+ unsigned char mul = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (x & 1)
+ {
+ //when x is odd
+ mul ^= b;
+ }
+
+ //calculate next xtime func
+ if (b & 0x80)
+ {
+ //shift left
+ b <<= 1;
+
+ //xor 0x1b
+ b ^= 0x1b;
+ }
+ else
+ {
+ //shift left
+ b <<= 1;
+ }
+
+ //shift right
+ x >>= 1;
+ }
+
+ //return result
+ return mul;
+}
+
+/**
+ * @fn static void SDWAP_SubWord(SDWAP_WORD buf)
+ * @brief SDWAP_SubWord function for Round Key calculation
+ *
+ * @param [in,out] buf 4-byte word for SDWAP_SubWord
+ * @return void
+ */
+static void SDWAP_SubWord(SDWAP_WORD buf)
+{
+ int i;
+ for (i = 0; i < SDWAP_WORD_SIZE; i++)
+ {
+ //calc SDWAP_SubWord
+ buf[i] = sdwap_s_box[buf[i] >> 4][buf[i] & 0x0F];
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_RotWord(SDWAP_WORD buf)
+ * @brief SDWAP_RotWord function for Round Key calculation
+ *
+ * @param [in,out] buf 4-byte word for SDWAP_RotWord
+ * @return void
+ */
+static void SDWAP_RotWord(SDWAP_WORD buf)
+{
+ unsigned char temp = buf[0];
+
+ //calc SDWAP_RotWord
+ buf[0] = buf[1];
+ buf[1] = buf[2];
+ buf[2] = buf[3];
+ buf[3] = temp;
+
+ return;
+}
+
+/**
+ * @fn void SDWAP_BitPermutation(unsigned char* pVal, unsigned char* bTable)
+ * @brief Calculate permutation bits in byte
+ *
+ * @param [out] pVal byte value
+ * @param [in] bTable bit permutation indx
+ * @return void
+ */
+SPC_INTERNAL void SDWAP_BitPermutation(unsigned char* pVal, unsigned char* pTable)
+{
+ int i = 0;
+ unsigned char oriVal = NULL;
+ unsigned char tmp[8];
+
+ if(pVal == NULL || pTable == NULL)
+ {
+ return;
+ }
+
+ oriVal = *pVal;
+
+ for(i = 0; i < 8; i++)
+ {
+ tmp[i] = GETBIT_U8(oriVal, i);
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ *pVal = SETBIT_U8(*pVal, pTable[i], tmp[i]);
+ }
+}
+
+SPC_INTERNAL unsigned char SDWAP_BitPermutation_LK(unsigned char val, SDWAP_KEY_BIT_PBOX* pBitPTbl)
+{
+ SDWAP_BitPermutation( &val, pBitPTbl[0]);
+ return val;
+}
+
+/**
+ * @fn static void MakeEachKeyLookup(SDWAP_KEY_LOOKUP *pKeyLookup, SDWAP_WORD *roundKey, unsigned char *subWord)
+ * @brief generate key lookup table from given word of round key
+ *
+ * @param [out] pKeyLookup round key lookup table
+ * @param [in] pRandMask random mask for current round.
+ * @param [in] RoundKey before round key
+ * @param [in] nRounds number of round
+ * @param [in] nCurRound current round
+ * @return void
+ */
+static void MakeEachKeyLookup(SDWAP_KEY_LOOKUP *pKeyLookup, unsigned char* nD1, unsigned char* nD2, SDWAP_RK_BOX *RoundKey, SDWAP_WORD *pSDWAP_SubWords, SDWAP_KEY_RANDOM_MASK* pRandMask, SDWAP_KEY_BIT_PBOX* pBitPTbl, unsigned char nIsFirstSet)
+{
+ unsigned int i;
+ unsigned char* pLookupCol = NULL;
+ unsigned char* pBeforeLKCol = NULL;
+
+ //generate foreach column
+ for(i = 0; i < SDWAP_COLUMNS; i++)
+ {
+ pLookupCol = ((unsigned char*)(*pKeyLookup)) + (i * 17);
+
+ if(nIsFirstSet)
+ {
+ pLookupCol[ 0] = SDWAP_BitPermutation_LK( (*pRandMask)[0][0] ^ (*pRandMask)[1][0] ^ (*RoundKey)[0][i], pBitPTbl ) ^ nD1[0] ; //bit permutation #0
+ pLookupCol[ 1] = SDWAP_BitPermutation_LK( (*pRandMask)[0][1] ^ (*pRandMask)[1][1] ^ (*pRandMask)[2][1], pBitPTbl ); //bit permutation #1
+ pLookupCol[ 2] = SDWAP_BitPermutation_LK( (*pRandMask)[0][2] ^ (*pRandMask)[2][2] ^ (*pRandMask)[3][2], pBitPTbl ); //bit permutation #2
+ pLookupCol[ 3] = SDWAP_BitPermutation_LK( (*pRandMask)[0][3] ^ (*pRandMask)[3][3] ^ (*pRandMask)[4][3], pBitPTbl ); //bit permutation #3
+
+ pLookupCol[ 4] = SDWAP_BitPermutation_LK( (*pRandMask)[0][0], pBitPTbl ) ^ nD1[1]; //bit permutation #0
+ pLookupCol[ 5] = SDWAP_BitPermutation_LK( (*pRandMask)[1][1] ^ (*pRandMask)[2][1] ^ (*RoundKey)[1][i], pBitPTbl ) ^ nD2[0]; //bit permutation #1
+ pLookupCol[ 6] = SDWAP_BitPermutation_LK( (*pRandMask)[1][2] ^ (*pRandMask)[2][2] ^ (*pRandMask)[0][2], pBitPTbl ); //bit permutation #2
+ pLookupCol[ 7] = SDWAP_BitPermutation_LK( (*pRandMask)[2][3] ^ (*pRandMask)[3][3] ^ (*pRandMask)[1][3] ^ (*pRandMask)[0][3], pBitPTbl ); //bit permutation #3
+
+ pLookupCol[ 8] = SDWAP_BitPermutation_LK( (*pRandMask)[1][0], pBitPTbl ) ^ nD1[2]; //bit permutation #0
+ pLookupCol[ 9] = SDWAP_BitPermutation_LK( (*pRandMask)[0][1], pBitPTbl ) ^ nD2[1]; //bit permutation #1
+ pLookupCol[10] = SDWAP_BitPermutation_LK( (*pRandMask)[1][2] ^ (*pRandMask)[3][2] ^ (*RoundKey)[2][i], pBitPTbl ); //bit permutation #2
+ pLookupCol[11] = SDWAP_BitPermutation_LK( (*pRandMask)[1][3] ^ (*pRandMask)[2][3] ^ (*RoundKey)[3][i] ^ (*pRandMask)[4][3], pBitPTbl ); //bit permutation #3
+
+ pLookupCol[12] = SDWAP_BitPermutation_LK( (*pRandMask)[1][0] ^ (*pRandMask)[0][0], pBitPTbl ); //bit permutation #0
+ pLookupCol[13] = SDWAP_BitPermutation_LK( (*pRandMask)[2][1] ^ (*pRandMask)[0][1], pBitPTbl ); //bit permutation #1
+ pLookupCol[14] = SDWAP_BitPermutation_LK( (*pRandMask)[3][2] ^ (*pRandMask)[0][2], pBitPTbl ); //bit permutation #2
+ pLookupCol[15] = SDWAP_BitPermutation_LK( (*pSDWAP_SubWords)[i] ^ (*pRandMask)[i][i], pBitPTbl );
+
+ //generate final value
+ pLookupCol[16] = ( (*RoundKey)[3][i] ); //bit permutation #3
+ }
+ else
+ {
+ pLookupCol[ 0] = ( (*RoundKey)[0][i] ^ (*pRandMask)[i][i] ^ (*pRandMask)[1][0] ) ^ nD1[0]; //bit permutation #0
+ pLookupCol[ 1] = ( (*RoundKey)[0][i] ^ (*pRandMask)[i][i] ^ (*pRandMask)[0][1] ^ (*pRandMask)[1][1] ^ (*pRandMask)[2][1] ); //bit permutation #1
+ pLookupCol[ 2] = ( (*RoundKey)[0][i] ^ (*pRandMask)[i][i] ^ (*pRandMask)[0][2] ^ (*pRandMask)[2][2] ^ (*pRandMask)[3][2] ); //bit permutation #2
+ pLookupCol[ 3] = ( (*RoundKey)[0][i] ^ (*pRandMask)[i][i] ^ (*pRandMask)[0][3] ^ (*pRandMask)[1][3] ^ (*pRandMask)[3][3] ^ (*pRandMask)[4][3] ); //bit permutation #3
+
+ pLookupCol[ 4] = nD1[1]; //none
+ pLookupCol[ 5] = ( (*RoundKey)[1][i] ^ (*pRandMask)[0][1] ^ (*pRandMask)[1][1] ) ^ nD2[0]; //bit permutation #1
+ pLookupCol[ 6] = (*RoundKey)[1][i] ^ (*pRandMask)[1][2] ^ (*pRandMask)[2][2]; //bit permutation #2
+ pLookupCol[ 7] = (*RoundKey)[1][i] ^ (*pRandMask)[0][3] ^ (*pRandMask)[2][3] ^ (*pRandMask)[3][3]; //bit permutation #3
+
+ pLookupCol[ 8] = nD1[2]; //none
+ pLookupCol[ 9] = nD2[1]; //none
+ pLookupCol[10] = (*RoundKey)[2][i] ^ (*pRandMask)[1][2] ^ (*pRandMask)[0][2]; //bit permutation #2
+ pLookupCol[11] = (*RoundKey)[2][i] ^ (*pRandMask)[2][3] ^ (*pRandMask)[1][3]; //bit permutation #3
+
+ pLookupCol[12] = (*pRandMask)[1][0]; //bit permutation #0
+ pLookupCol[13] = (*pRandMask)[2][1]; //bit permutation #1
+ pLookupCol[14] = (*pRandMask)[3][2]; //bit permutation #2
+ pLookupCol[15] = (*pSDWAP_SubWords)[i] ^ (*pRandMask)[i][i];
+
+ //generate final value
+ pLookupCol[16] = (*RoundKey)[3][i] ^ (*pRandMask)[4][3]; //bit permutation #3
+ }
+ }
+}
+
+
+/**
+ * @fn static void GenerateKeyLookupTable(SDWAP_WORD key[], unsigned int lines, SDWAP_WORD rk[], unsigned int rounds)
+ * @brief calculate round keys from given key bytes
+ *
+ * @param [in] key user key (cipher key)
+ * @param [in] lines number of 32-bit words comprising the cipher key
+ * @param [out] rk round key
+ * @param [out] pKeyLookup round key lookup table
+ * @param [in] KeyLookupSize size of key-lookup table
+ * @param [in] rounds number of rounds
+ * @return void
+ */
+static void GenerateKeyLookupTable(SDWAP_WORD key[], unsigned int lines, SDWAP_KEY_LOOKUP *pKeyLookup, unsigned int KeyLookupSize, SDWAP_KEY_BIT_PBOX* pBitPTbl, unsigned int rounds, int isEncryption)
+{
+ unsigned char Rcon = 1;
+ unsigned char temp[SDWAP_WORD_SIZE];
+ unsigned int i, j, k, l, idx, swap;
+ unsigned int SubIdx = 0;
+ unsigned int nRoundKeySize = 0;
+ unsigned char* RoundKey = NULL;
+ unsigned int nRandCnt[16];
+ unsigned char nD1[16][3];
+ unsigned char nD2[16][2];
+ SDWAP_WORD *rk;
+ SDWAP_WORD *pSDWAP_SubWords;
+ SDWAP_KEY_RANDOM_MASK pRandMask;
+
+ //calculate size of round key
+ nRoundKeySize = SDWAP_COLUMNS * SDWAP_WORD_SIZE * (rounds + 1); //Nb * word size * (number of rounds + 1)
+
+ //allocate memory for round key
+ RoundKey = (unsigned char*)malloc(nRoundKeySize);
+ if (RoundKey == NULL)
+ {
+ return;
+ }
+
+ rk = (SDWAP_WORD*)RoundKey;
+
+ //generate random mask for round-key
+ for(i = 0; i < 5; i++)
+ {
+ for(j = 0; j < 4; j++)
+ {
+ pRandMask[i][j] = rand() & 0xff;
+ }
+ }
+
+ nRoundKeySize = SDWAP_COLUMNS * SDWAP_WORD_SIZE * (rounds + 1);
+
+ pSDWAP_SubWords = (SDWAP_WORD*)malloc(SDWAP_WORD_SIZE * rounds + 1);
+
+ for (i = 0; i < lines; i++)
+ {
+ //set first 1 set
+ for (j = 0; j < SDWAP_WORD_SIZE; j++)
+ {
+ rk[i][j] = key[i][j];
+ }
+ }
+
+ //calc round key
+ for (i = lines; i < (SDWAP_COLUMNS * (rounds + 1)); i++)
+ {
+ for (j = 0; j < SDWAP_WORD_SIZE; j++)
+ {
+ temp[j] = rk[i - 1][j];
+ }
+
+ if ((i % lines) == 0)
+ {
+ //calc first row of next set
+ SDWAP_RotWord(temp);
+ SDWAP_SubWord(temp);
+ temp[0] ^= Rcon;
+
+ Rcon = SDWAP_XTIMEs(2, Rcon);
+
+ memcpy(pSDWAP_SubWords + SubIdx, temp, SDWAP_WORD_SIZE);
+ SubIdx++;
+ }
+ else if ((lines > 6) && ((i % lines) == 4))
+ {
+ SDWAP_SubWord(temp);
+
+ memcpy(pSDWAP_SubWords + SubIdx, temp, SDWAP_WORD_SIZE);
+ SubIdx++;
+ }
+
+ //clac next row
+ for (j = 0; j < SDWAP_WORD_SIZE; j++)
+ {
+ rk[i][j] = rk[i - lines][j] ^ temp[j];
+ }
+ }
+
+ //Generate random mask for column of round-key
+ for(i = 0; i < 16; i++)
+ {
+ nRandCnt[i] = ((unsigned int)rand() % 64770) + 1;
+ }
+
+ for(i = 0; i < 16; i++)
+ {
+ for(j = i; j < 16; j++)
+ {
+ if(nRandCnt[i] > nRandCnt[j])
+ {
+ swap = nRandCnt[i];
+ nRandCnt[i] = nRandCnt[j];
+ nRandCnt[j] = swap;
+ }
+ }
+ }
+
+ idx = 0;
+ swap = 0;
+
+ for(j = 0; j <=0xFF; j++)
+ {
+ for(k = 0; k <= 0xFF; k++)
+ {
+ for(l = 0; l <= 0xFF; l++)
+ {
+ if(((j ^ k ^ l) == 0x00) && ( j != k ) && ( k != l ) && ( j != l ))
+ {
+ if(idx == 16)
+ {
+ break;
+ }
+
+ if(nRandCnt[idx] == swap++)
+ {
+ nD1[idx][0] = (unsigned char)j;
+ nD1[idx][1] = (unsigned char)k;
+ nD1[idx][2] = (unsigned char)l;
+ idx++;
+ }
+ }
+ }
+ }
+ }
+
+ for(i = 0; i < 16; i++)
+ {
+ nD2[i][0] = nD2[i][1] = (unsigned char)rand() & 0xff;
+ }
+
+
+ //set first 1 set
+ MakeEachKeyLookup(pKeyLookup, (unsigned char*)nD1, (unsigned char*)nD2, (SDWAP_RK_BOX*)rk, pSDWAP_SubWords, &pRandMask, pBitPTbl, 1);
+
+ //calc next row for lookup table
+ for(i = 0; i < rounds; i++)
+ {
+ MakeEachKeyLookup(pKeyLookup + (i + 1), (unsigned char*)(nD1 + (i + 1)), (unsigned char*)(nD2 + (i + 1)), (SDWAP_RK_BOX*)rk + i, pSDWAP_SubWords + (i + 1), &pRandMask, pBitPTbl, 0);
+ }
+
+ //clear memory
+ memset(temp, 0x00, SDWAP_WORD_SIZE);
+
+ if(RoundKey)
+ {
+ memset(RoundKey, 0x00, nRoundKeySize);
+ free(RoundKey);
+ }
+
+ return;
+}
+
+
+/**
+ * @fn void SDWAP_ProcessBitPBox(SDWAP_BIT_PBOX* bpTable, unsigned int Nr)
+ * @brief Generate table for bit-permutation
+ *
+ * @param [out] bpTable bit-permutation table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+SPC_INTERNAL void SDWAP_GenerateBitPBox(SDWAP_BIT_PBOX* bpTable, unsigned int Nr)
+{
+ unsigned char i, j;
+ unsigned int idxtmp;
+
+ if(bpTable == NULL)
+ {
+ return;
+ }
+
+ //[Nr][8]
+ //make random bit-permutaion order for each round
+ for(i = 0; i < (Nr - 1); i++)
+ {
+ for(j = 0; j < 8; j++)
+ {
+ //bpTable[i][j] = rand() % 8;
+ bpTable[i][j] = j;
+
+ for(idxtmp = 0; idxtmp < j; idxtmp++)
+ {
+ if(bpTable[i][idxtmp] == bpTable[i][j])
+ {
+ j--;
+ break;
+ }
+ }
+ }
+ }
+}
+
+
+/**
+ * @fn void SDWAP_ProcessBitPBox(SDWAP_TBOX* pTBox, SDWAP_BIT_PBOX* bpTable, unsigned int Nr)
+ * @brief Apply bit permutation.
+ *
+ * @param [in] pTBox T-Box
+ * @param [in] bpTable bit-permutation table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+SPC_INTERNAL void SDWAP_ProcessBitPBox(SDWAP_TBOX* pTBox, SDWAP_BIT_PBOX* bpTable, unsigned int Nr)
+{
+ unsigned char i, j, k, l;
+ unsigned char idx, row, col;
+ unsigned int idxtmp;
+ SDWAP_TBOX* pCurTBox = NULL;
+ SDWAP_TBOX* pNxtTBox = NULL;
+ SDWAP_TBOX* pTmpTBox;
+
+ if(pTBox == NULL || bpTable == NULL)
+ {
+ return;
+ }
+
+ //[Nr][8]
+ //make random bit-permutaion order for each round
+ for(i = 0; i < (Nr - 1); i++)
+ {
+ pCurTBox = (SDWAP_TBOX*)((unsigned char*)pTBox + (i * SDWAP_T_TABLE_ROUND_SIZE));
+
+ for(idxtmp = 0; idxtmp < SDWAP_T_TABLE_ROUND_SIZE; idxtmp += SDWAP_WORD_SIZE)
+ {
+ SDWAP_BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp ]), bpTable[0]);
+ SDWAP_BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 1]), bpTable[0]);
+ SDWAP_BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 2]), bpTable[0]);
+ SDWAP_BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 3]), bpTable[0]);
+ }
+ }
+
+ pTmpTBox = (SDWAP_TBOX*)malloc(SDWAP_T_TABLE_ROUND_SIZE);
+
+ //replace T-Box order for each round
+ for(i = 0; i < (Nr - 1); i++)
+ {
+ pNxtTBox = (SDWAP_TBOX*)((unsigned char*)pTBox + ((i + 1) * SDWAP_T_TABLE_ROUND_SIZE));
+
+ for(j = 0; j < 16; j++)
+ {
+ for(k = 0; k < 16; k++)
+ {
+ for(l = 0; l < 16; l++)
+ {
+ idx = (k * 16) + l;
+ SDWAP_BitPermutation(&idx, bpTable[0]);
+
+ row = idx >> 4;
+ col = idx & 0x0f;
+
+ memcpy(pTmpTBox[j][row][col], pNxtTBox[j][k][l], SDWAP_WORD_SIZE);
+ }
+ }
+ }
+
+ memcpy(pNxtTBox, pTmpTBox, SDWAP_T_TABLE_ROUND_SIZE);
+ }
+
+ free(pTmpTBox);
+}
+
+
+/**
+ * @fn static void SDWAP_GenerateBytePBox(SDWAP_WORD_PBOX *pwTable, unsigned int Nr)
+ * @brief Generate table for 4-byte permutation
+ *
+ * @param [out] pwTable Table for permutation word of T-box table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_GenerateBytePBox(SDWAP_WORD_PBOX *pwTable, unsigned int Nr)
+{
+ unsigned int i, j;
+
+ //make random permutaion order for each round
+ for(i = 0; i < Nr; i++)
+ {
+ for(j = 0; j < 4; j++)
+ {
+ //(*pwTable)[i][j] = (rand() & 0x0f) % 24;
+ (*pwTable)[i][j] = 0;
+
+ //for(k = 0; k < j; k++)
+ //{
+ // if((*pwTable)[i][j] == (*pwTable)[i][k])
+ // {
+ // j--;
+ // break;
+ // }
+ //}
+ }
+ }
+}
+
+
+/**
+ * @fn static void SDWAP_ProcessBytePBox(SDWAP_WORD_PBOX *pwTable, SDWAP_TBOX *pTBox, unsigned int Nr)
+ * @brief Apply byte permutation.
+ *
+ * @param [in] pwTable Table for permutation word of T-box table
+ * @param [in] pTBox transform table for each round
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_ProcessBytePBox(SDWAP_TBOX *pTBox, SDWAP_WORD_PBOX *pwTable, unsigned int Nr)
+{
+ unsigned int i, j;
+ SDWAP_WORD tmp;
+ SDWAP_WORD* pwbox;
+ SDWAP_TBOX* tbox;
+
+ //make random permutaion order for each round
+ for(i = 0; i < Nr; i++)
+ {
+ tbox = (SDWAP_TBOX*)((unsigned char*)pTBox + (i * SDWAP_T_TABLE_ROUND_SIZE));
+ pwbox = &(*pwTable)[i];
+
+ for(j = 0; j < SDWAP_T_TABLE_ROUND_SIZE; j += (SDWAP_WORD_SIZE * 4)) //word * 4
+ {
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][0] ] = ((unsigned char*)tbox)[j + 0];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][1] ] = ((unsigned char*)tbox)[j + 1];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][2] ] = ((unsigned char*)tbox)[j + 2];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][3] ] = ((unsigned char*)tbox)[j + 3];
+ memcpy(((unsigned char*)tbox) + (j + 0), tmp, SDWAP_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][0] ] = ((unsigned char*)tbox)[j + 4];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][1] ] = ((unsigned char*)tbox)[j + 5];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][2] ] = ((unsigned char*)tbox)[j + 6];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][3] ] = ((unsigned char*)tbox)[j + 7];
+ memcpy(((unsigned char*)tbox) + (j + 4), tmp, SDWAP_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][0] ] = ((unsigned char*)tbox)[j + 8];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][1] ] = ((unsigned char*)tbox)[j + 9];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][2] ] = ((unsigned char*)tbox)[j + 10];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][3] ] = ((unsigned char*)tbox)[j + 11];
+ memcpy(((unsigned char*)tbox) + (j + 8), tmp, SDWAP_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][0] ] = ((unsigned char*)tbox)[j + 12];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][1] ] = ((unsigned char*)tbox)[j + 13];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][2] ] = ((unsigned char*)tbox)[j + 14];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][3] ] = ((unsigned char*)tbox)[j + 15];
+ memcpy(((unsigned char*)tbox) + (j + 12), tmp, SDWAP_WORD_SIZE);
+ }
+ }
+}
+
+
+/**
+ * @fn static void SDWAP_InitalizeMicBox(SDWAP_MIX_COLUMN_BOX MicBox[4], SDWAP_TABLE_TYPE mode)
+ * @brief Calculate MixColumns Matrix MC0, MC1, MC2, MC3
+ *
+ * @param [out] MicBox Matrix for MixColumns
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_InitalizeMicBox(SDWAP_MIX_COLUMN_BOX MicBox[4], SDWAP_TABLE_TYPE mode)
+{
+ //MicMatrix
+ static const unsigned char MicMatrix[4][4] =
+ {
+ {0x02, 0x01, 0x01, 0x03},
+ {0x03, 0x02, 0x01, 0x01},
+ {0x01, 0x03, 0x02, 0x01},
+ {0x01, 0x01, 0x03, 0x02}
+ };
+
+ //Inverse MicMatrix
+ static const unsigned char InvMicMatrix[4][4] =
+ {
+ {0x0e, 0x09, 0x0d, 0x0b},
+ {0x0b, 0x0e, 0x09, 0x0d},
+ {0x0d, 0x0b, 0x0e, 0x09},
+ {0x09, 0x0d, 0x0b, 0x0e}
+ };
+
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int l;
+
+ //for each bytre of the word
+ for (i = 0; i < SDWAP_WORD_SIZE; i++)
+ {
+ //sbox row
+ for (j = 0; j < 16; j++)
+ {
+ //sbox col
+ for (k = 0; k < 16; k++)
+ {
+ //xor MicMatrix
+ for (l = 0; l < 4; l++)
+ {
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ //for encryption
+ MicBox[i][j][k][l] = SDWAP_XTIMEs((j * 16 + k), MicMatrix[i][l]);
+ }
+ else
+ {
+ //for decryption
+ MicBox[i][j][k][l] = SDWAP_XTIMEs((j * 16 + k), InvMicMatrix[i][l]);
+ }
+ }
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_AddMicBox(unsigned char val, SDWAP_WORD* word, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+ * @brief Applying MC box to the each element of T-box
+ *
+ * @param [in] val polynomial, each value of S-box
+ * @param [out] word MixColumn-applied word
+ * @param [in] idx index
+ * @param [in] rnd random number for MixColumn randomizing
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_AddMicBox(unsigned char val, SDWAP_WORD* word, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+{
+ static SDWAP_MIX_COLUMN_BOX MicBox[4]; //MicBox
+ static SDWAP_MIX_COLUMN_BOX InvMicBox[4]; //Inverse MicBox
+ static unsigned char MicBoxInitialFlag = 0; //MicBox Initialize flag
+
+ unsigned int i;
+
+ //if flag is not set
+ if (MicBoxInitialFlag == 0)
+ {
+ //calc MicBox
+ SDWAP_InitalizeMicBox(MicBox, SDWAP_TABLE_TYPE_ENCRYPTION);
+
+ //calc Inverse MicBox
+ SDWAP_InitalizeMicBox(InvMicBox, SDWAP_TABLE_TYPE_DECRYPTION);
+
+ //set flag
+ MicBoxInitialFlag = 1;
+ }
+
+ for (i = 0; i < SDWAP_WORD_SIZE; i++)
+ {
+ //add MicBox for encryption
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ (*word)[i] = MicBox[idx][val >> 4][val & 0x0f][i] ^ rnd[i];
+ }
+ else
+ {
+ //add MicBox for decryption
+ (*word)[i] = InvMicBox[idx][val >> 4][val & 0x0f][i] ^ rnd[i];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_MakeEachTBox(unsigned char mul, unsigned char xor, SDWAP_TBOX* tbox, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+ * @brief Claculating masked and expanded s-box
+ *
+ * @param [in] mul value to be multiplicated
+ * @param [in] xor value to be added
+ * @param [out] tbox T-box for each round key byte
+ * @param [in] idx column index
+ * @param [in] rnd random number for MixColumn randomizing
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_MakeEachTBox(unsigned char mul, unsigned char xor, SDWAP_TBOX* tbox, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char mul_row = (mul >> 4);
+ unsigned char mul_col = (mul & 0x0f);
+
+ //S-Box row
+ for (i = 0; i < 16; i++)
+ {
+ //S-Box col
+ for (j = 0; j < 16; j++)
+ {
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ //add MicBox for encryption
+ SDWAP_AddMicBox(sdwap_s_box[i ^ mul_row][j ^ mul_col] ^ xor, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ else
+ {
+ //add MicBox for decryption
+ SDWAP_AddMicBox(sdwap_inv_s_box[i ^ mul_row][j ^ mul_col] ^ xor, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_MakeEachTBox_WithoutSubBytes(unsigned char xor, SDWAP_TBOX* tbox, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+ * @brief Claculating masked and expanded s-box with sub-bytes phase
+ *
+ * @param [in] xor value to be added
+ * @param [out] tbox T-box for each round key byte
+ * @param [in] idx column index
+ * @param [in] rnd random number for MixColumn randomizing
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_MakeEachTBox_WithoutSubBytes(unsigned char xor, SDWAP_TBOX* tbox, unsigned int idx, SDWAP_WORD rnd, SDWAP_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+
+ //S-Box row
+ for (i = 0; i < 16; i++)
+ {
+ //S-Box col
+ for (j = 0; j < 16; j++)
+ {
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ //add MicBox for encryption
+ SDWAP_AddMicBox(i * 16 + j, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ else
+ {
+ //add MicBox for decryption
+ SDWAP_AddMicBox(i * 16 + j, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_SBOX_Xor(unsigned char mul, unsigned char xor, SDWAP_TBOX* tbox, SDWAP_TABLE_TYPE mode)
+ * @brief Claculating masked s-box
+ *
+ * @param [in] mul value to be multiplicated
+ * @param [in] xor value to be added
+ * @param [in] tbox T-box for each round key byte
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_SBOX_Xor(unsigned char mul, unsigned char xor, SDWAP_TBOX* tbox, SDWAP_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char mul_row = mul >> 4;
+ unsigned char mul_col = mul & 0x0f;
+
+ //S-Box row
+ for (i = 0; i < 16; i++)
+ {
+ //S-Box col
+ for (j = 0; j < 16; j++)
+ {
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ //clac T-box for encryption
+ (*tbox)[i][j][0] = sdwap_s_box[i ^ mul_row][j ^ mul_col] ^ xor;
+ }
+ else
+ {
+ //calc T-box for decryption
+ (*tbox)[i][j][0] = sdwap_inv_s_box[i ^ mul_row][j ^ mul_col] ^ xor;
+ }
+
+ //fill empty bytes with random numbers
+ (*tbox)[i][j][1] = rand() & 0xff;
+ (*tbox)[i][j][2] = rand() & 0xff;
+ (*tbox)[i][j][3] = rand() & 0xff;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_CalcTBox(SDWAP_RK_BOX* RK, SDWAP_TBOX* pTable, unsigned int Nr)
+ * @brief Calculate T-box table for encryption
+ *
+ * @param [out] pTable T-box, transform table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_CalcTBox(SDWAP_TBOX* pTable, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned char mask[16] = {0};
+
+ SDWAP_WORD rnd[16];
+
+ //1. make T-box for each rounds
+ for (i = 0; i < (Nr - 1); i++)
+ {
+ //make random masking
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ rnd[j][k] = rand() & 0xff;
+ }
+ }
+
+ //for each col
+ for (j = 0; j < SDWAP_COLUMNS; j++)
+ {
+ for (k = 0; k < SDWAP_WORD_SIZE; k++)
+ {
+ //make each TBox
+ SDWAP_MakeEachTBox(mask[j * 4 + k], 0x00, &pTable[i * 16 + j * 4 + k], k, rnd[j * 4 + k], SDWAP_TABLE_TYPE_ENCRYPTION);
+ }
+ }
+
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ //apply random masking
+ mask[j * 4 + k] = rnd[sdwap_inv_sr_matrix[j * 4 ]][k] ^
+ rnd[sdwap_inv_sr_matrix[j * 4 + 1]][k] ^
+ rnd[sdwap_inv_sr_matrix[j * 4 + 2]][k] ^
+ rnd[sdwap_inv_sr_matrix[j * 4 + 3]][k];
+
+ }
+ }
+ }
+
+ //2. make T-box for last round
+ for (j = 0; j < SDWAP_COLUMNS; j++)
+ {
+ for (k = 0; k < SDWAP_WORD_SIZE; k++)
+ {
+ SDWAP_SBOX_Xor(mask[j * 4 + k], 0x00, &pTable[i * 16 + j * 4 + k], SDWAP_TABLE_TYPE_ENCRYPTION);
+ }
+ }
+
+ return;
+}
+
+
+/**
+ * @fn static void SDWAP_CalcInvTBox(SDWAP_RK_BOX* RK, SDWAP_TBOX* pTable, unsigned int Nr)
+ * @brief Calculate T-box table for decryption
+ *
+ * @param [in] pTable T-box, transform table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_CalcInvTBox(SDWAP_TBOX* pTable, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned char mask[16] = {0};
+
+ SDWAP_WORD rnd[16];
+
+ //1. make T-box for each rounds
+ for (i = 0; i < (Nr - 1); i++)
+ {
+ //make random masking
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ rnd[j][k] = 0x00;//rand() & 0xff;
+ }
+ }
+
+ //for each col
+ for (j = 0; j < SDWAP_COLUMNS; j++)
+ {
+ for (k = 0; k < SDWAP_WORD_SIZE; k++)
+ {
+ SDWAP_MakeEachTBox_WithoutSubBytes(0x00, &pTable[i * 16 + j * 4 + k], k, rnd[j * 4 + k], SDWAP_TABLE_TYPE_DECRYPTION);
+ }
+ }
+
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (i == 0)
+ {
+ //apply random mask for 1st T-Box
+ const unsigned char conv_matrix[16] =
+ {0, 7, 10, 13, 1, 4, 11, 14, 2, 5, 8, 15, 3, 6, 9, 12};
+ mask[sdwap_inv_sr_matrix[j * 4 + k]] = rnd[conv_matrix[j * 4 ]][k] ^
+ rnd[conv_matrix[j * 4 + 1]][k] ^
+ rnd[conv_matrix[j * 4 + 2]][k] ^
+ rnd[conv_matrix[j * 4 + 3]][k];
+ }
+ else
+ {
+ //apply random mask
+ mask[sdwap_inv_sr_matrix[j * 4 + k]] = rnd[j * 4 ][k] ^
+ rnd[j * 4 + 1][k] ^
+ rnd[j * 4 + 2][k] ^
+ rnd[j * 4 + 3][k];
+ }
+ }
+ }
+ }
+
+ //2. make T-box for last round
+ for (j = 0; j < SDWAP_COLUMNS; j++)
+ {
+ for (k = 0; k < SDWAP_WORD_SIZE; k++)
+ {
+ SDWAP_SBOX_Xor(mask[j * 4 + k], 0x00, &pTable[i * 16 + j * 4 + k], SDWAP_TABLE_TYPE_DECRYPTION);
+ }
+ }
+
+ return;
+}
+
+
+/**
+ * @fn static void SDWAP_ProcessInitalPermutation(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector)
+ * @brief process initial permutation
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @return void
+ */
+static void SDWAP_ProcessInitalPermutation(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector)
+{
+ unsigned int j;
+ unsigned int k;
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //make initial permutation table
+ Table[0][j][k] = PVector[0][j * 8 + k];
+ }
+ }
+
+ for (; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //fill empty bytes with random numbers
+ Table[0][j][k] = rand() & 0xff;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_ProcessFinalPermutation(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr, SDWAP_TABLE_TYPE mode)
+ * @brief process final permutation
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SDWAP_ProcessFinalPermutation(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr, SDWAP_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ if (mode == SDWAP_TABLE_TYPE_ENCRYPTION)
+ {
+ Table[Nr][PVector[Nr - 1][j * 8 + k] / 8][PVector[Nr - 1][j * 8 + k] % 8] = sdwap_sr_matrix[j * 8 + k];
+ }
+ else
+ {
+ Table[Nr][PVector[Nr - 1][j * 8 + k] / 8][PVector[Nr - 1][j * 8 + k] % 8] = j * 8 + k;
+ }
+ }
+ }
+
+ //fill empty bytes with random numbers
+ for (; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ Table[Nr][j][k] = rand() & 0xff;
+ }
+ }
+
+ //add random to permutation table (ex. 0x0d 0x0c ==> 0x4d 0x7c)
+ for (i = 0; i <= Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ unsigned char rnd = rand() % 16;
+ Table[i][j][k] ^= (rnd << 4);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_MakePTable(SDWAP_PBOX *Table, unsigned int round, unsigned char itmdt[16][4])
+ * @brief Calculate P-box for each round
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] round current round
+ * @param [in] itmdt intermediate value
+ * @return void
+ */
+static void SDWAP_MakePTable(SDWAP_PBOX *Table, unsigned int round, unsigned char itmdt[16][4])
+{
+ unsigned int j;
+ unsigned int k;
+ unsigned int idx[4] = {0};
+
+ //fill P-Table with 0xff
+ memset(&Table[round], 0xff, sizeof(SDWAP_PBOX));
+
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (Table[round][k][0] == 0xff)
+ {
+ //if the key value is not added yet, add key value and 1st index
+ memcpy(&Table[round][k], &itmdt[j], sizeof(SDWAP_WORD));
+ idx[k] = 0;
+ Table[round][k][4 + idx[k]] = j;
+
+ break;
+ }
+ else if (memcmp(&itmdt[j], &Table[round][k], SDWAP_WORD_SIZE) == 0)
+ {
+ //if the index already exists, just add index
+ idx[k]++;
+ Table[round][k][4 + idx[k]] = j;
+
+ break;
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_CalcPBox(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr)
+ * @brief Calculate P-box table for encryption
+ *
+ * @param [out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_CalcPBox(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int temp;
+
+ unsigned char InvMix[16];
+ unsigned char itmdt[16][4];
+
+ //1. make initial permutation
+ SDWAP_ProcessInitalPermutation(Table, PVector);
+
+ //2. make permutation table
+ for (i = 1; i < Nr; i++)
+ {
+ //calc Intermideate table
+ for (j = 0; j < 16; j++)
+ {
+ InvMix[PVector[i - 1][j]] = j;
+ }
+
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ temp = (sdwap_sr_matrix[InvMix[j]] / 4) * 4 + k;
+ itmdt[j][k] = PVector[i][temp];
+ }
+ }
+
+ SDWAP_MakePTable(Table, i, itmdt);
+ }
+
+ //3. make final permutation
+ SDWAP_ProcessFinalPermutation(Table, PVector, Nr, SDWAP_TABLE_TYPE_ENCRYPTION);
+
+ return;
+}
+
+
+/**
+ * @fn static void SDWAP_CalcInvPBox(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr)
+ * @brief Calculate P-box table for decryption
+ *
+ * @param [out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_CalcInvPBox(SDWAP_PBOX *Table, SDWAP_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int temp;
+
+ unsigned char InvMix[16];
+ unsigned char itmdt[16][4];
+
+ //1. make initial permutation
+ SDWAP_ProcessInitalPermutation(Table, PVector);
+
+ //2. make permutation table
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ InvMix[PVector[i - 1][j]] = j;
+ }
+
+ //calc Intermideate table
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (i == 1)
+ {
+ temp = sdwap_inv_sr_matrix[(sdwap_inv_sr_matrix[InvMix[j]] / 4) * 4 + k];
+ itmdt[j][k] = PVector[i][temp];
+ }
+ else
+ {
+ temp = sdwap_inv_sr_matrix[(InvMix[j] / 4) * 4 + k];
+ itmdt[j][k] = PVector[i][temp];
+ }
+ }
+ }
+
+ SDWAP_MakePTable(Table, i, itmdt);
+ }
+
+ //3. make final permutation
+ SDWAP_ProcessFinalPermutation(Table, PVector, Nr, SDWAP_TABLE_TYPE_DECRYPTION);
+
+ return;
+}
+
+
+/**
+ * @fn static void SDWAP_GeneratePVector(unsigned int Nr, SDWAP_PVECTOR* PVector)
+ * @brief generate permutation vector
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void SDWAP_GeneratePVector(unsigned int Nr, SDWAP_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned char flag[16];
+ unsigned char sequence[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ unsigned int i;
+ unsigned int j;
+
+ for (i = 0; i < Nr; i++)
+ {
+ //make 16 byte random sequence for each round
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 16; j++)
+ {
+ rnd = rand() % (16 - j);
+ PVector[i][j] = j;
+ flag[j] = flag[16 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_ShuffleTBox(SDWAP_TBOX* pTBox, SDWAP_PVECTOR* PVector, unsigned int Nr)
+ * @brief shuffle T-box according to the permutation vector
+ *
+ * @param [in,out] pTBox T-box, transform table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_ShuffleTBox(SDWAP_TBOX* pTBox, SDWAP_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ SDWAP_TBOX* pCurrentTBox = pTBox;
+ SDWAP_TBOX temp[16];
+
+ for (i = 0; i < Nr; i++)
+ {
+ //temp = current TBox
+ memcpy(&temp, pCurrentTBox, sizeof(SDWAP_TBOX) * 16);
+
+ for (j = 0; j < 16; j++)
+ {
+ //Shuffle each item of T-Box
+ memcpy(&pCurrentTBox[PVector[i][j]], temp[j], sizeof(SDWAP_TBOX));
+ }
+
+ //current TBox = temp
+ pCurrentTBox = &pCurrentTBox[16];
+ }
+
+ return ;
+}
+
+/**
+ * @fn static void SDWAP_GeneratePVector_fst(unsigned int Nr, SDWAP_PVECTOR* PVector)
+ * @brief generate permutation vector for fast implementation
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void SDWAP_GeneratePVector_fst(unsigned int Nr, SDWAP_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned int sfl;
+ unsigned char flag[4];
+ unsigned char sequence[4] = {0, 1, 2, 3};
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ //shuffle table
+ unsigned char sflTable[4][4] =
+ {
+ {0x00, 0x01, 0x02, 0x03},
+ {0x01, 0x02, 0x03, 0x00},
+ {0x02, 0x03, 0x00, 0x01},
+ {0x03, 0x00, 0x01, 0x02}
+ };
+
+ //calculate PVector
+ for (i = 0; i < Nr; i++)
+ {
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 4; j++)
+ {
+ rnd = rand() % (4 - j);
+ sfl = rand() % 4;
+ for (k = 0; k < 4; k++)
+ {
+ PVector[i][j * 4 + k] = flag[rnd] * 4 + sflTable[sfl][k];
+ }
+ flag[rnd] = flag[4 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_GenerateInvPVector_fst(unsigned int Nr, SDWAP_PVECTOR* PVector)
+ * @brief generate permutation vector for fast decryption
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void SDWAP_GenerateInvPVector_fst(unsigned int Nr, SDWAP_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned int sfl;
+ unsigned char flag[4];
+ unsigned char sequence[4] = {0, 1, 2, 3};
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ //shuffle table
+ unsigned char sflTable[4][4] =
+ {
+ {0x00, 0x01, 0x02, 0x03},
+ {0x01, 0x02, 0x03, 0x00},
+ {0x02, 0x03, 0x00, 0x01},
+ {0x03, 0x00, 0x01, 0x02}
+ };
+
+ //calculate inverse PVector
+ for (i = 0; i < Nr; i++)
+ {
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 4; j++)
+ {
+ rnd = rand() % (4 - j);
+ sfl = rand() % 4;
+ for (k = 0; k < 4; k++)
+ {
+ PVector[i][sdwap_inv_sr_matrix[j * 4 + k]] = flag[rnd] * 4 + sflTable[sfl][k];
+ }
+ flag[rnd] = flag[4 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_GenerateInvPVector_fstest(unsigned int Nr, SDWAP_PVECTOR* PVector)
+ * @brief generate permutation vector for fastest decryption
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void SDWAP_GenerateInvPVector_fstest(unsigned int Nr, SDWAP_PVECTOR* PVector)
+{
+ unsigned int i;
+ unsigned int j;
+
+ //Actually, no permutation is applied
+ for (i = 0; i < 16; i++)
+ {
+ PVector[0][i] = i;
+ }
+
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ PVector[i][sdwap_inv_sr_matrix[j]] = j;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SDWAP_ConvertPBox(SDWAP_PBOX *Table, unsigned int Nr)
+ * @brief convert PBox for simple permutation
+ *
+ * @param [in,out] Table PBox
+ * @param [out] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_ConvertPBox(SDWAP_PBOX *Table, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char t;
+
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ //calculate each table and fill empty bits with random mask
+ t = Table[i][j][0] & 0x0f;
+ Table[i][j][0] = (t / 4) + (0x00 & 0xfc); //(t / 4) + (rand() & 0xfc);
+ Table[i][j][1] = ((t % 4) * 8) + (0x00 & 0xe0); //((t % 4) * 8) + (rand() & 0xe0)
+ Table[i][j][2] = rand() & 0xff;
+ Table[i][j][3] = rand() & 0xff;
+ }
+ }
+}
+
+/**
+ * @fn static void SDWAP_RandomizePBox(SDWAP_PBOX *Table, unsigned int Nr)
+ * @brief fill the PBox with random numbers
+ *
+ * @param [in,out] Table PBox
+ * @param [out] Nr number of rounds
+ * @return void
+ */
+static void SDWAP_RandomizePBox(SDWAP_PBOX *Table, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ for (i = 0; i <= Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //fill the table with random numbers
+ Table[i][j][k] = rand() & 0xff;
+ }
+ }
+ }
+}
+
+/**
+ * @fn unsigned int SDWAP_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, unsigned int OptimizLev)
+ * @brief derivate look-up table from given key
+ *
+ * @param [in] Key user key (cipher key)
+ * @param [in] KeyLen byte-length of cipher key
+ * @param [in] seed random seed
+ * @param [out] Table look-up table for SDWAP
+ * @param [out] TableLen byte-length of look-up table
+ * @param [in] isEncryption flag ordering encryption or decryption
+ * @param [in] OptimizLev Performance Optimization Level [0~2]
+ * @return SDWAP_TBLGEN_RETURN_VAL
+ */
+SPC_INTERNAL unsigned int SDWAP_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, int TableType)
+{
+ SDWAP_TBLGEN_RETURN_VAL retVal = SDWAP_TBLGEN_RETURN_SUCCESS;
+ unsigned int Nr = 0;
+ unsigned int Nk = 0;
+
+ SDWAP_TBOX *pTBox = NULL;
+ SDWAP_PBOX *pPBox = NULL;
+ SDWAP_WORD_PBOX *pBytePBox = NULL;
+ SDWAP_BIT_PBOX *pBitPBox = NULL;
+ SDWAP_KEY_LOOKUP *pKeyLookup = NULL;
+ SDWAP_KEY_BYTE_PBOX *pKeyBytePBox = NULL;
+ SDWAP_KEY_BIT_PBOX *pKeyBitPBox = NULL;
+ unsigned int TBoxSize = 0;
+ unsigned int PBoxSize = 0;
+ unsigned int WPBoxSize = 0;
+ unsigned int BPBoxSize = 0;
+ unsigned int KeyLookupSize = 0;
+
+ SDWAP_PVECTOR PVector[SDWAP_256_ROUNDS + 1];
+
+
+ //1. Argument Check
+ if ((Key == NULL) || (Table == NULL))
+ {
+ retVal = SDWAP_TBLGEN_RETURN_INVALID_PARAMETER; //invalid input
+ goto ERROR_PROC;
+ }
+
+ //2. Set Number of rounds
+ switch(KeyLen) //find Nr
+ {
+ case 16:
+ //AES128
+ Nr = SDWAP_128_ROUNDS;
+ break;
+ case 24:
+ //AES192
+ Nr = SDWAP_192_ROUNDS;
+ break;
+ case 32:
+ //AES256
+ Nr = SDWAP_256_ROUNDS;
+ break;
+ default:
+ retVal = SDWAP_TBLGEN_RETURN_INVALID_KEYLEN; //invalid key length
+ goto ERROR_PROC;
+ }
+
+ //calculate Nk
+ Nk = KeyLen / SDWAP_WORD_SIZE; //Nk is the word size of given key
+
+ //calculate TBox and PBox size
+ TBoxSize = SDWAP_T_TABLE_ROUND_SIZE * Nr; //each byte of round key has its own s-box table
+ PBoxSize = SDWAP_P_TABLE_ROUND_SIZE * (Nr + 1); //Permutation table for each round, and initial permutation
+ WPBoxSize = SDWAP_WP_TABLE_ROUND_SIZE * Nr; //Permutation word of transform table for each round
+ BPBoxSize = SDWAP_BP_TABLE_ROUND_SIZE * Nr; //Permutation bit of transform table for each round
+ KeyLookupSize = 17 * 4 * (Nr + 1); //each column of round-key has its own lookup table
+
+ //allocate memory for TBox and PBox
+ if(TableType == SDWAP_TBL_TBOX)
+ {
+ pTBox = (SDWAP_TBOX*)malloc(TBoxSize + PBoxSize + WPBoxSize + BPBoxSize + KeyLookupSize);
+
+ if (pTBox == NULL)
+ {
+ retVal = SDWAP_TBLGEN_RETURN_MEM_ALLOC_FAILED; //memory allocation failed
+ goto ERROR_PROC;
+ }
+
+ pPBox = (SDWAP_PBOX*)((unsigned char*)pTBox + TBoxSize);
+ pBytePBox = (SDWAP_WORD_PBOX*)((unsigned char*)pTBox + TBoxSize + PBoxSize);
+ pBitPBox = (SDWAP_BIT_PBOX*)((unsigned char*)pTBox + TBoxSize + PBoxSize + WPBoxSize);
+ }
+ if(TableType == SDWAP_TBL_KEYLOOKUP)
+ {
+ pTBox = (SDWAP_TBOX*)(*Table);
+ pBitPBox = (SDWAP_BIT_PBOX*)((unsigned char*)pTBox + TBoxSize + PBoxSize + WPBoxSize);
+ pKeyLookup = (SDWAP_KEY_LOOKUP*)((unsigned char*)pTBox + TBoxSize + PBoxSize + WPBoxSize + BPBoxSize);
+ }
+
+ if(TableType == SDWAP_TBL_TBOX)
+ {
+ //seed random seed
+ srand(seed);
+
+ //3. Generate byte & bit permutation table
+ SDWAP_GenerateBitPBox(pBitPBox, Nr);
+ SDWAP_GenerateBytePBox(pBytePBox, Nr);
+ }
+
+ //4. Calc Round Key & Generate Key Lookup Table
+ if(TableType == SDWAP_TBL_KEYLOOKUP)
+ {
+ GenerateKeyLookupTable((SDWAP_WORD*)Key, Nk, pKeyLookup, KeyLookupSize, pBitPBox, Nr, isEncryption);
+ }
+
+ if(TableType == SDWAP_TBL_TBOX)
+ {
+ if (isEncryption)
+ {
+ //5. Generate permutation vector and PBox
+ SDWAP_GeneratePVector(Nr, PVector);
+ SDWAP_CalcPBox(pPBox, PVector, Nr);
+
+ //6. Generate table for calc AddRoundKey, SubBytes and MixColumn
+ SDWAP_CalcTBox(pTBox, Nr);
+ }
+ else
+ {
+ //5. Generate permutation vector and PBox
+ SDWAP_GeneratePVector(Nr, PVector);
+ SDWAP_CalcInvPBox(pPBox, PVector, Nr);
+
+ //6. Generate table for calc AddRoundKey, SubBytes and MixColumn
+ SDWAP_CalcInvTBox(pTBox, Nr);
+ }
+
+ //7. Apply bit & byte permutation
+ SDWAP_ProcessBitPBox(pTBox, pBitPBox, Nr);
+ SDWAP_ProcessBytePBox(pTBox, pBytePBox, Nr);
+
+ //8. Shuffle TBox according to the permutation vector
+ SDWAP_ShuffleTBox(pTBox, PVector, Nr);
+
+ //9. Set output
+ *Table = (unsigned char*)pTBox;
+
+ //set pTbox to preventing free
+ pTBox = NULL;
+
+ //set table length
+ if (TableLen != NULL)
+ {
+ *TableLen = TBoxSize + PBoxSize;
+ }
+ }
+
+
+ERROR_PROC:
+
+ if(TableType == SDWAP_TBL_TBOX)
+ {
+ //clear memory
+ memset(PVector, 0x00, sizeof(PVector));
+
+ //free TBox if not null
+ if (pTBox != NULL)
+ {
+ //clear before free
+ memset(pTBox, 0x00, TBoxSize + PBoxSize + WPBoxSize + BPBoxSize + KeyLookupSize);
+ free(pTBox);
+ }
+
+ if(pSDWAP_SBox != NULL)
+ {
+ memset(pSDWAP_SBox, 0x00, sizeof(SDWAP_SBOX) * Nr);
+ free(pSDWAP_SBox);
+ }
+
+ if(pSDWAP_InvSBox != NULL)
+ {
+ memset(pSDWAP_InvSBox, 0x00, sizeof(SDWAP_SBOX) * Nr);
+ free(pSDWAP_InvSBox);
+ }
+ }
+
+ return retVal;
+}
+
+////////////////////////// End of File //////////////////////////
diff --git a/SPC/Src/WhiteBox/SWAPv2.c b/SPC/Src/WhiteBox/SWAPv2.c
new file mode 100755
index 0000000..6239f34
--- /dev/null
+++ b/SPC/Src/WhiteBox/SWAPv2.c
@@ -0,0 +1,308 @@
+/**
+ * @file SWAPv2.c
+ * @brief white box AES module for SSA(Samsung Security Architecture)
+ * @author Samsung WhiteBox AES Version 2 (SWAPv1 based)
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * Samsung WhiteBox AES Version 1
+ * - Jisoon Park(js00n.park@samsung.com)
+ * - Dept: DMC R&D Center/Convergence Software Lab.
+ *
+ * @see SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ * @par Copyright:
+ * Copyright 2012 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// including header files
+////////////////////////////////////////////////////////////////////////////
+#include <memory.h>
+#include <stdio.h>
+#include "SWAPv2_defines.h"
+#include "SWAPv2.h"
+
+////////////////////////////////////////////////////////////////////////////
+// function implementations
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn static void SWAPv2_ProcNormal(SWAPv2_TBOX *pTBox, SWAPv2_PBOX *pPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+ * @brief normal mode processing
+ *
+ * @param [in] pTBox T-Box
+ * @param [in] pPBox P-Box
+ * @param [in] pWPBox word(4byte) permutation box
+ * @param [in] pBPBox bit permutation box
+ * @param [in] Nr number of rounds
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @param [in] isLittleEndian flag for little endian
+ * @return void
+ */
+static void SWAPv2_ProcNormal(SWAPv2_TBOX *pTBox, SWAPv2_PBOX *pPBox, SWAPv2_WORD_PBOX* pWPBox, SWAPv2_BIT_PBOX* pBPBox, unsigned int Nr, unsigned char* in, unsigned char* out, unsigned int isLittleEndian)
+{
+#ifdef _USE_ITERATION
+ unsigned int i, j;
+#endif
+ unsigned int idx = 0;
+ unsigned int idx16;
+ unsigned char idx_wps[16];
+ unsigned char state[16]; //state
+ SWAPv2_WORD* itmdt[16]; //intermediate value
+
+
+ //3. Process initial permutation
+#ifdef _USE_ITERATION
+
+#else
+
+ idx_wps[(pPBox[0][0][0]) & 0x0f] = state[(pPBox[0][0][0]) & 0x0f] = in[ 0];
+ idx_wps[(pPBox[0][0][1]) & 0x0f] = state[(pPBox[0][0][1]) & 0x0f] = in[ 1];
+ idx_wps[(pPBox[0][0][2]) & 0x0f] = state[(pPBox[0][0][2]) & 0x0f] = in[ 2];
+ idx_wps[(pPBox[0][0][3]) & 0x0f] = state[(pPBox[0][0][3]) & 0x0f] = in[ 3];
+ idx_wps[(pPBox[0][0][4]) & 0x0f] = state[(pPBox[0][0][4]) & 0x0f] = in[ 4];
+ idx_wps[(pPBox[0][0][5]) & 0x0f] = state[(pPBox[0][0][5]) & 0x0f] = in[ 5];
+ idx_wps[(pPBox[0][0][6]) & 0x0f] = state[(pPBox[0][0][6]) & 0x0f] = in[ 6];
+ idx_wps[(pPBox[0][0][7]) & 0x0f] = state[(pPBox[0][0][7]) & 0x0f] = in[ 7];
+ idx_wps[(pPBox[0][1][0]) & 0x0f] = state[(pPBox[0][1][0]) & 0x0f] = in[ 8];
+ idx_wps[(pPBox[0][1][1]) & 0x0f] = state[(pPBox[0][1][1]) & 0x0f] = in[ 9];
+ idx_wps[(pPBox[0][1][2]) & 0x0f] = state[(pPBox[0][1][2]) & 0x0f] = in[10];
+ idx_wps[(pPBox[0][1][3]) & 0x0f] = state[(pPBox[0][1][3]) & 0x0f] = in[11];
+ idx_wps[(pPBox[0][1][4]) & 0x0f] = state[(pPBox[0][1][4]) & 0x0f] = in[12];
+ idx_wps[(pPBox[0][1][5]) & 0x0f] = state[(pPBox[0][1][5]) & 0x0f] = in[13];
+ idx_wps[(pPBox[0][1][6]) & 0x0f] = state[(pPBox[0][1][6]) & 0x0f] = in[14];
+ idx_wps[(pPBox[0][1][7]) & 0x0f] = state[(pPBox[0][1][7]) & 0x0f] = in[15];
+
+#endif
+
+ //4. Process each rounds
+ do
+ {
+ idx16 = (idx << 4);
+
+#ifdef _USE_ITERATION
+
+#else
+ itmdt[ 0] = (SWAPv2_WORD*)pTBox[idx16 + 0][state[ 0] >> 4][state[ 0] & 0xf];
+ itmdt[ 1] = (SWAPv2_WORD*)pTBox[idx16 + 1][state[ 1] >> 4][state[ 1] & 0xf];
+ itmdt[ 2] = (SWAPv2_WORD*)pTBox[idx16 + 2][state[ 2] >> 4][state[ 2] & 0xf];
+ itmdt[ 3] = (SWAPv2_WORD*)pTBox[idx16 + 3][state[ 3] >> 4][state[ 3] & 0xf];
+ itmdt[ 4] = (SWAPv2_WORD*)pTBox[idx16 + 4][state[ 4] >> 4][state[ 4] & 0xf];
+ itmdt[ 5] = (SWAPv2_WORD*)pTBox[idx16 + 5][state[ 5] >> 4][state[ 5] & 0xf];
+ itmdt[ 6] = (SWAPv2_WORD*)pTBox[idx16 + 6][state[ 6] >> 4][state[ 6] & 0xf];
+ itmdt[ 7] = (SWAPv2_WORD*)pTBox[idx16 + 7][state[ 7] >> 4][state[ 7] & 0xf];
+ itmdt[ 8] = (SWAPv2_WORD*)pTBox[idx16 + 8][state[ 8] >> 4][state[ 8] & 0xf];
+ itmdt[ 9] = (SWAPv2_WORD*)pTBox[idx16 + 9][state[ 9] >> 4][state[ 9] & 0xf];
+ itmdt[10] = (SWAPv2_WORD*)pTBox[idx16 + 10][state[10] >> 4][state[10] & 0xf];
+ itmdt[11] = (SWAPv2_WORD*)pTBox[idx16 + 11][state[11] >> 4][state[11] & 0xf];
+ itmdt[12] = (SWAPv2_WORD*)pTBox[idx16 + 12][state[12] >> 4][state[12] & 0xf];
+ itmdt[13] = (SWAPv2_WORD*)pTBox[idx16 + 13][state[13] >> 4][state[13] & 0xf];
+ itmdt[14] = (SWAPv2_WORD*)pTBox[idx16 + 14][state[14] >> 4][state[14] & 0xf];
+ itmdt[15] = (SWAPv2_WORD*)pTBox[idx16 + 15][state[15] >> 4][state[15] & 0xf];
+#endif
+ idx++;
+
+
+#ifdef _USE_ITERATION
+
+#else
+ state[ pPBox[idx][0][0] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][0][1] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][0][2] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][0][3] & 0x0f ] = (*itmdt[ pPBox[idx][0][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][0][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][0][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][1][0] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][1][1] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][1][2] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][1][3] & 0x0f ] = (*itmdt[ pPBox[idx][1][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][1][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][1][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][2][0] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][2][1] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][2][2] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][2][3] & 0x0f ] = (*itmdt[ pPBox[idx][2][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][2][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][2][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ state[ pPBox[idx][3][0] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][0] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][0] ];
+ state[ pPBox[idx][3][1] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][1] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][1] ];
+ state[ pPBox[idx][3][2] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][2] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][2] ];
+ state[ pPBox[idx][3][3] & 0x0f ] = (*itmdt[ pPBox[idx][3][4] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][4] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][5] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][5] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][6] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][6] & 0x0f ] & 0xf) % 4 ]][3] ]
+ ^ (*itmdt[ pPBox[idx][3][7] & 0x0f ])[ byte_pMatrix[(*pWPBox)[idx - 1][ (idx_wps[ pPBox[idx][3][7] & 0x0f ] & 0xf) % 4 ]][3] ];
+
+ idx_wps[ 0] = state[ 0];
+ idx_wps[ 1] = state[ 1];
+ idx_wps[ 2] = state[ 2];
+ idx_wps[ 3] = state[ 3];
+ idx_wps[ 4] = state[ 4];
+ idx_wps[ 5] = state[ 5];
+ idx_wps[ 6] = state[ 6];
+ idx_wps[ 7] = state[ 7];
+ idx_wps[ 8] = state[ 8];
+ idx_wps[ 9] = state[ 9];
+ idx_wps[10] = state[10];
+ idx_wps[11] = state[11];
+ idx_wps[12] = state[12];
+ idx_wps[13] = state[13];
+ idx_wps[14] = state[14];
+ idx_wps[15] = state[15];
+
+#endif
+ } while(idx < (Nr - 1));
+
+ idx16 = (idx << 4);
+
+
+ //5. Process final round
+#ifdef _USE_ITERATION
+
+#else
+
+ //make output
+ out[pPBox[Nr][0][0] & 0x0f] = pTBox[ idx16 + 0 ][ state[ 0] >> 4 ][ state[ 0] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 0] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][1] & 0x0f] = pTBox[ idx16 + 1 ][ state[ 1] >> 4 ][ state[ 1] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 1] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][2] & 0x0f] = pTBox[ idx16 + 2 ][ state[ 2] >> 4 ][ state[ 2] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 2] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][3] & 0x0f] = pTBox[ idx16 + 3 ][ state[ 3] >> 4 ][ state[ 3] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 3] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][4] & 0x0f] = pTBox[ idx16 + 4 ][ state[ 4] >> 4 ][ state[ 4] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 4] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][5] & 0x0f] = pTBox[ idx16 + 5 ][ state[ 5] >> 4 ][ state[ 5] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 5] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][6] & 0x0f] = pTBox[ idx16 + 6 ][ state[ 6] >> 4 ][ state[ 6] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 6] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][0][7] & 0x0f] = pTBox[ idx16 + 7 ][ state[ 7] >> 4 ][ state[ 7] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 7] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][0] & 0x0f] = pTBox[ idx16 + 8 ][ state[ 8] >> 4 ][ state[ 8] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 8] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][1] & 0x0f] = pTBox[ idx16 + 9 ][ state[ 9] >> 4 ][ state[ 9] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[ 9] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][2] & 0x0f] = pTBox[ idx16 + 10 ][ state[10] >> 4 ][ state[10] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[10] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][3] & 0x0f] = pTBox[ idx16 + 11 ][ state[11] >> 4 ][ state[11] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[11] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][4] & 0x0f] = pTBox[ idx16 + 12 ][ state[12] >> 4 ][ state[12] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[12] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][5] & 0x0f] = pTBox[ idx16 + 13 ][ state[13] >> 4 ][ state[13] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[13] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][6] & 0x0f] = pTBox[ idx16 + 14 ][ state[14] >> 4 ][ state[14] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[14] & 0x0f) % 4]][0] ];
+ out[pPBox[Nr][1][7] & 0x0f] = pTBox[ idx16 + 15 ][ state[15] >> 4 ][ state[15] & 0x0f ][ byte_pMatrix[(*pWPBox)[idx][(state[15] & 0x0f) % 4]][0] ];
+
+#endif
+
+ return;
+}
+
+/**
+ * @fn SWAPv2_RETURN_VAL SWAPv2_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out, unsigned int OptimizLev)
+ * @brief processing encryption or decryption according to the table
+ *
+ * @param [in] Table look-up table for SWAPv2
+ * @param [in] TableLen byte-length of look-up table
+ * @param [in] in input bytes(16-byte length)
+ * @param [out] out output bytes(16-byte length)
+ * @param [in] OptimizLev Performance Optimization Level [0~2]
+ * @return SWAPv2_RETURN_VAL
+ */
+SPC_INTERNAL SWAPv2_RETURN_VAL SWAPv2_Process(unsigned char *Table, unsigned int TableLen, unsigned char* in, unsigned char* out)
+{
+ unsigned int Nr;
+ unsigned int TBoxSize;
+ unsigned int PBoxSize;
+ unsigned int WPBoxSize;
+
+ SWAPv2_TBOX *pTBox = NULL;
+ SWAPv2_PBOX *pPBox = NULL;
+ SWAPv2_WORD_PBOX* pWPBox = NULL;
+ SWAPv2_BIT_PBOX* pBPBox = NULL;
+
+ unsigned char isLittleEndian;
+
+ {
+ //get little endian flag
+ unsigned int EndianTestVector = 1;
+ isLittleEndian = *(unsigned char*)(&EndianTestVector);
+ }
+
+ //1. Parameter checking
+ if ((Table == NULL) || (in == NULL) || (out == NULL))
+ {
+ return SWAPv2_RETURN_INVALID_PARAMETER; //invalid parameter
+ }
+
+ //2. Get Nr(Number of Rounds)
+ switch(TableLen)
+ {
+ case (SWAPv2_T_TABLE_ROUND_SIZE * SWAPv2_128_ROUNDS) + (SWAPv2_P_TABLE_ROUND_SIZE * (SWAPv2_128_ROUNDS + 1)) + (SWAPv2_WP_TABLE_ROUND_SIZE * SWAPv2_128_ROUNDS) + (SWAPv2_BP_TABLE_ROUND_SIZE * SWAPv2_128_ROUNDS):
+ //AES128
+ Nr = SWAPv2_128_ROUNDS;
+ break;
+ case (SWAPv2_T_TABLE_ROUND_SIZE * SWAPv2_192_ROUNDS) + (SWAPv2_P_TABLE_ROUND_SIZE * (SWAPv2_192_ROUNDS + 1)) + (SWAPv2_WP_TABLE_ROUND_SIZE * SWAPv2_192_ROUNDS) + (SWAPv2_BP_TABLE_ROUND_SIZE * SWAPv2_192_ROUNDS):
+ //AES192
+ Nr = SWAPv2_192_ROUNDS;
+ break;
+ case (SWAPv2_T_TABLE_ROUND_SIZE * SWAPv2_256_ROUNDS) + (SWAPv2_P_TABLE_ROUND_SIZE * (SWAPv2_256_ROUNDS + 1)) + (SWAPv2_WP_TABLE_ROUND_SIZE * SWAPv2_256_ROUNDS) + (SWAPv2_BP_TABLE_ROUND_SIZE * SWAPv2_256_ROUNDS):
+ //AES256
+ Nr = SWAPv2_256_ROUNDS;
+ break;
+ default :
+ return SWAPv2_RETURN_INVALID_TBLSIZE; //invalid parameter
+ }
+
+ //Get pointer of P-Box
+ pTBox = (SWAPv2_TBOX*)Table;
+ TBoxSize = SWAPv2_T_TABLE_ROUND_SIZE * Nr;
+
+ pPBox = (SWAPv2_PBOX*)((unsigned char*)pTBox + TBoxSize);
+ PBoxSize = SWAPv2_P_TABLE_ROUND_SIZE * (Nr + 1);
+ WPBoxSize = SWAPv2_WP_TABLE_ROUND_SIZE * (Nr);
+
+
+ pWPBox = (SWAPv2_WORD_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize);
+ pBPBox = (SWAPv2_BIT_PBOX*)(((unsigned char*)pTBox) + TBoxSize + PBoxSize + WPBoxSize);
+
+ SWAPv2_ProcNormal(pTBox, pPBox, pWPBox, pBPBox, Nr, in, out, isLittleEndian);
+
+ return SWAPv2_RETURN_SUCCESS;
+}
+
+////////////////////////// End of File //////////////////////////
diff --git a/SPC/Src/WhiteBox/SWAPv2_TblGen.c b/SPC/Src/WhiteBox/SWAPv2_TblGen.c
new file mode 100755
index 0000000..9fa26fb
--- /dev/null
+++ b/SPC/Src/WhiteBox/SWAPv2_TblGen.c
@@ -0,0 +1,1457 @@
+/**
+ * @file SWAPv2_TblGen.c
+ * @brief white box AES table generation module for SSA(Samsung Security Architecture)
+ * @author Samsung WhiteBox AES Version 2 (SWAPv1 based)
+ * - Chul Lee(chuls.lee@samsung.com)
+ * - Dept : Software R&D Center / Cloud Computing Lab.
+ *
+ * Samsung WhiteBox AES Version 1
+ * - Jisoon Park(js00n.park@samsung.com)
+ * - Dept: DMC R&D Center/Convergence Software Lab.
+ *
+ *
+ * @see SWAPv2
+ * @date 2012-10-05
+ * @version 2.0
+ * @par Copyright:
+ * Copyright 2012 by Samsung Electronics, Inc.,
+ * This software is the confiedential and properietary information
+ * of Samsung Elctronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the term of the lice agreement
+ * you entered into with Samsung.
+ * @par Warning:
+ * This code sould not be exported out of Samsung Electronics.
+ * This code cannot be inserted in any customer device.
+ * The logic of whitebox table generation is confidential.
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// including header files
+////////////////////////////////////////////////////////////////////////////
+#include <stdlib.h>
+#include <stdio.h>
+#include <memory.h>
+#include "SWAPv2_defines.h"
+#include "SWAPv2_TblGen.h"
+
+////////////////////////////////////////////////////////////////////////////
+// static type definitions
+////////////////////////////////////////////////////////////////////////////
+/*! Table generation types */
+typedef enum _SWAPv2_TABLE_TYPE
+{
+ SWAPv2_TABLE_TYPE_ENCRYPTION = 0, /*!< Table for encryption */
+ SWAPv2_TABLE_TYPE_DECRYPTION = 1 /*!< Table for decryption */
+} SWAPv2_TABLE_TYPE;
+
+////////////////////////////////////////////////////////////////////////////
+// static global variables
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @var static const SWAPv2_SBOX s_box
+ * @brief S-box value defined int FIPS-197
+ */
+SWAPv2_SBOX s_box =
+{
+ {0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76},
+ {0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0},
+ {0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15},
+ {0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75},
+ {0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84},
+ {0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf},
+ {0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8},
+ {0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2},
+ {0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73},
+ {0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb},
+ {0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79},
+ {0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08},
+ {0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a},
+ {0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e},
+ {0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf},
+ {0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16}
+};
+
+/**
+ * @var static const SWAPv2_SBOX inv_s_box
+ * @brief inverse of S-box defined int FIPS-197
+ */
+SWAPv2_SBOX inv_s_box =
+{
+ {0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb},
+ {0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb},
+ {0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e},
+ {0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25},
+ {0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92},
+ {0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84},
+ {0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06},
+ {0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b},
+ {0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73},
+ {0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e},
+ {0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b},
+ {0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4},
+ {0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f},
+ {0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef},
+ {0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61},
+ {0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d}
+};
+
+SWAPv2_SBOX* pSBox;
+SWAPv2_SBOX* pInvSBox;
+
+/**
+ * @var static const unsigned char sr_matrix[16]
+ * @brief look-up matrix for ShiftRows
+ */
+static const unsigned char sr_matrix[16] =
+ {0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3};
+
+/**
+ * @var static const unsigned char inv_sr_matrix[16]
+ * @brief look-up matrix for InvShiftRows, inverse of sr_matrix
+ */
+static const unsigned char inv_sr_matrix[16] =
+ {0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11};
+
+
+
+////////////////////////////////////////////////////////////////////////////
+// function implementations
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @fn static unsigned char XTIMEs(unsigned char x, unsigned char b)
+ * @brief calc byte to byte multiplication defined in FIPS-197
+ *
+ * @param [in] x polynomial x
+ * @param [in] b byte
+ * @return result of multiplication
+ */
+static unsigned char XTIMEs(unsigned char x, unsigned char b)
+{
+ int i;
+ unsigned char mul = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (x & 1)
+ {
+ //when x is odd
+ mul ^= b;
+ }
+
+ //calculate next xtime func
+ if (b & 0x80)
+ {
+ //shift left
+ b <<= 1;
+
+ //xor 0x1b
+ b ^= 0x1b;
+ }
+ else
+ {
+ //shift left
+ b <<= 1;
+ }
+
+ //shift right
+ x >>= 1;
+ }
+
+ //return result
+ return mul;
+}
+
+/**
+ * @fn static void SubWord(SWAPv2_WORD buf)
+ * @brief SubWord function for Round Key calculation
+ *
+ * @param [in,out] buf 4-byte word for SubWord
+ * @return void
+ */
+static void SubWord(SWAPv2_WORD buf)
+{
+ int i;
+ for (i = 0; i < SWAPv2_WORD_SIZE; i++)
+ {
+ //calc SubWord
+ buf[i] = s_box[buf[i] >> 4][buf[i] & 0x0F];
+ }
+
+ return;
+}
+
+/**
+ * @fn static void RotWord(SWAPv2_WORD buf)
+ * @brief RotWord function for Round Key calculation
+ *
+ * @param [in,out] buf 4-byte word for RotWord
+ * @return void
+ */
+static void RotWord(SWAPv2_WORD buf)
+{
+ unsigned char temp = buf[0];
+
+ //calc RotWord
+ buf[0] = buf[1];
+ buf[1] = buf[2];
+ buf[2] = buf[3];
+ buf[3] = temp;
+
+ return;
+}
+
+/**
+ * @fn static void KeySched(SWAPv2_WORD key[], unsigned int lines, SWAPv2_WORD rk[], unsigned int rounds)
+ * @brief calculate round keys from given key bytes
+ *
+ * @param [in] key user key (cipher key)
+ * @param [in] lines number of 32-bit words comprising the cipher key
+ * @param [out] rk round key
+ * @param [in] rounds number of rounds
+ * @return void
+ */
+static void KeySched(SWAPv2_WORD key[], unsigned int lines, SWAPv2_WORD rk[], unsigned int rounds)
+{
+ unsigned char Rcon = 1;
+ unsigned char temp[SWAPv2_WORD_SIZE];
+ unsigned int i;
+ unsigned int j;
+
+ for (i = 0; i < lines; i++)
+ {
+ //set first 1 set
+ for (j = 0; j < SWAPv2_WORD_SIZE; j++)
+ {
+ rk[i][j] = key[i][j];
+ }
+ }
+
+ for (i = lines; i < (SWAPv2_COLUMNS * (rounds + 1)); i++)
+ {
+ for (j = 0; j < SWAPv2_WORD_SIZE; j++)
+ {
+ temp[j] = rk[i - 1][j];
+ }
+
+ if ((i % lines) == 0)
+ {
+ //calc first row of next set
+ RotWord(temp);
+ SubWord(temp);
+ temp[0] ^= Rcon;
+
+ Rcon = XTIMEs(2, Rcon);
+ }
+ else if ((lines > 6) && ((i % lines) == 4))
+ {
+ SubWord(temp);
+ }
+
+ //clac next row
+ for (j = 0; j < SWAPv2_WORD_SIZE; j++)
+ {
+ rk[i][j] = rk[i - lines][j] ^ temp[j];
+ }
+ }
+
+ //clear temporary memory
+ memset(temp, 0, sizeof(temp));
+
+ return;
+}
+
+/**
+ * @fn void BitPermutation(unsigned char* pVal, unsigned char* bTable)
+ * @brief Calculate permutation bits in byte
+ *
+ * @param [out] pVal byte value
+ * @param [in] bTable bit permutation indx
+ * @return void
+ */
+SPC_INTERNAL void BitPermutation(unsigned char* pVal, unsigned char* pTable)
+{
+ int i = 0;
+ unsigned char oriVal = NULL;
+ unsigned char tmp[8];
+
+ if(pVal == NULL || pTable == NULL)
+ {
+ return;
+ }
+
+ oriVal = *pVal;
+
+ for(i = 0; i < 8; i++)
+ {
+ tmp[i] = GETBIT_U8(oriVal, i);
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ *pVal = SETBIT_U8(*pVal, pTable[i], tmp[i]);
+ }
+}
+
+
+/**
+ * @fn static void ProcessBitPBox(SWAPv2_BIT_PBOX* bpTable, unsigned int Nr)
+ * @brief Generate table for bit-permutation & apply bit permutation.
+ *
+ * @param [out] bpTable bit-permutation table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+SPC_INTERNAL void ProcessBitPBox(SWAPv2_TBOX* pTBox, SWAPv2_BIT_PBOX* bpTable, unsigned int Nr)
+{
+ unsigned char i, j, k, l;
+ unsigned char idx, row, col;
+ unsigned int idxtmp;
+ SWAPv2_TBOX* pCurTBox = NULL;
+ SWAPv2_TBOX* pNxtTBox = NULL;
+ SWAPv2_TBOX* pTmpTBox;
+
+ if(pTBox == NULL || bpTable == NULL)
+ {
+ return;
+ }
+
+ //[Nr][8]
+ //make random bit-permutaion order for each round
+ for(i = 0; i < (Nr - 1); i++)
+ {
+ for(j = 0; j < 8; j++)
+ {
+ bpTable[i][j] = rand() % 8;
+
+ for(idxtmp = 0; idxtmp < j; idxtmp++)
+ {
+ if(bpTable[i][idxtmp] == bpTable[i][j])
+ {
+ j--;
+ break;
+ }
+ }
+ }
+
+ pCurTBox = (SWAPv2_TBOX*)((unsigned char*)pTBox + (i * SWAPv2_T_TABLE_ROUND_SIZE));
+
+ for(idxtmp = 0; idxtmp < SWAPv2_T_TABLE_ROUND_SIZE; idxtmp += SWAPv2_WORD_SIZE)
+ {
+ BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp ]), bpTable[0]);
+ BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 1]), bpTable[0]);
+ BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 2]), bpTable[0]);
+ BitPermutation(&(((unsigned char*)pCurTBox)[idxtmp + 3]), bpTable[0]);
+ }
+ }
+
+ pTmpTBox = (SWAPv2_TBOX*)malloc(SWAPv2_T_TABLE_ROUND_SIZE);
+
+ //replace T-Box order for each round
+ for(i = 0; i < (Nr - 1); i++)
+ {
+ pNxtTBox = (SWAPv2_TBOX*)((unsigned char*)pTBox + ((i + 1) * SWAPv2_T_TABLE_ROUND_SIZE));
+
+ for(j = 0; j < 16; j++)
+ {
+ for(k = 0; k < 16; k++)
+ {
+ for(l = 0; l < 16; l++)
+ {
+ idx = (k * 16) + l;
+ BitPermutation(&idx, bpTable[0]);
+
+ row = idx >> 4;
+ col = idx & 0x0f;
+
+ memcpy(pTmpTBox[j][row][col], pNxtTBox[j][k][l], SWAPv2_WORD_SIZE);
+ }
+ }
+ }
+
+ memcpy(pNxtTBox, pTmpTBox, SWAPv2_T_TABLE_ROUND_SIZE);
+ }
+
+ free(pTmpTBox);
+}
+
+
+/**
+ * @fn static void BytePermutation(SWAPv2_TBOX* tbox, SWAPv2_WORD* pwbox)
+ * @brief Calculate permutation word
+ *
+ * @param [out] tbox
+ * @param [in] pwbox order of permutation
+ * @return void
+ */
+static void BytePermutation(SWAPv2_TBOX* tbox, SWAPv2_WORD* pwbox)
+{
+ unsigned int i;
+ SWAPv2_WORD tmp;
+
+ for(i = 0; i < SWAPv2_T_TABLE_ROUND_SIZE; i += (SWAPv2_WORD_SIZE * 4)) //word * 4
+ {
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][0] ] = ((unsigned char*)tbox)[i + 0];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][1] ] = ((unsigned char*)tbox)[i + 1];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][2] ] = ((unsigned char*)tbox)[i + 2];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[0] ][3] ] = ((unsigned char*)tbox)[i + 3];
+ memcpy(((unsigned char*)tbox) + i, tmp, SWAPv2_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][0] ] = ((unsigned char*)tbox)[i + 4];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][1] ] = ((unsigned char*)tbox)[i + 5];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][2] ] = ((unsigned char*)tbox)[i + 6];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[1] ][3] ] = ((unsigned char*)tbox)[i + 7];
+ memcpy(((unsigned char*)tbox) + (i + 4), tmp, SWAPv2_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][0] ] = ((unsigned char*)tbox)[i + 8];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][1] ] = ((unsigned char*)tbox)[i + 9];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][2] ] = ((unsigned char*)tbox)[i + 10];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[2] ][3] ] = ((unsigned char*)tbox)[i + 11];
+ memcpy(((unsigned char*)tbox) + (i + 8), tmp, SWAPv2_WORD_SIZE);
+
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][0] ] = ((unsigned char*)tbox)[i + 12];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][1] ] = ((unsigned char*)tbox)[i + 13];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][2] ] = ((unsigned char*)tbox)[i + 14];
+ tmp[ byte_pMatrix[ ((unsigned char*)pwbox)[3] ][3] ] = ((unsigned char*)tbox)[i + 15];
+ memcpy(((unsigned char*)tbox) + (i + 12), tmp, SWAPv2_WORD_SIZE);
+ }
+}
+
+/**
+ * @fn static void ProcessBytePBox(SWAPv2_WORD_PBOX *pwTable, SWAPv2_TBOX *pTBox, unsigned int Nr)
+ * @brief Generate table for 4-byte permutation & apply byte permutation.
+ *
+ * @param [out] pwTable Table for permutation word of T-box table
+ * @param [in] pTBox transform table for each round
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void ProcessBytePBox(SWAPv2_TBOX *pTBox, SWAPv2_WORD_PBOX *pwTable, unsigned int Nr)
+{
+ int i, j, k;
+
+ //make random permutaion order for each round
+ for(i = 0; i < Nr; i++)
+ {
+ for(j = 0; j < 4; j++)
+ {
+ (*pwTable)[i][j] = (rand() & 0x0f) % 24;
+
+ for(k = 0; k < j; k++)
+ {
+ if((*pwTable)[i][j] == (*pwTable)[i][k])
+ {
+ j--;
+ break;
+ }
+ }
+ }
+
+ BytePermutation((SWAPv2_TBOX*)((unsigned char*)pTBox + (i * SWAPv2_T_TABLE_ROUND_SIZE)), &(*pwTable)[i]);
+ }
+}
+
+/**
+ * @fn static void InitalizeMicBox(SWAPv2_MIX_COLUMN_BOX MicBox[4], SWAPv2_TABLE_TYPE mode)
+ * @brief Calculate MixColumns Matrix MC0, MC1, MC2, MC3
+ *
+ * @param [out] MicBox Matrix for MixColumns
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void InitalizeMicBox(SWAPv2_MIX_COLUMN_BOX MicBox[4], SWAPv2_TABLE_TYPE mode)
+{
+ //MicMatrix
+ static const unsigned char MicMatrix[4][4] =
+ {
+ {0x02, 0x01, 0x01, 0x03},
+ {0x03, 0x02, 0x01, 0x01},
+ {0x01, 0x03, 0x02, 0x01},
+ {0x01, 0x01, 0x03, 0x02}
+ };
+
+ //Inverse MicMatrix
+ static const unsigned char InvMicMatrix[4][4] =
+ {
+ {0x0e, 0x09, 0x0d, 0x0b},
+ {0x0b, 0x0e, 0x09, 0x0d},
+ {0x0d, 0x0b, 0x0e, 0x09},
+ {0x09, 0x0d, 0x0b, 0x0e}
+ };
+
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int l;
+
+ //for each bytre of the word
+ for (i = 0; i < SWAPv2_WORD_SIZE; i++)
+ {
+ //sbox row
+ for (j = 0; j < 16; j++)
+ {
+ //sbox col
+ for (k = 0; k < 16; k++)
+ {
+ //xor MicMatrix
+ for (l = 0; l < 4; l++)
+ {
+ if (mode == SWAPv2_TABLE_TYPE_ENCRYPTION)
+ {
+ //for encryption
+ MicBox[i][j][k][l] = XTIMEs((j * 16 + k), MicMatrix[i][l]);
+ }
+ else
+ {
+ //for decryption
+ MicBox[i][j][k][l] = XTIMEs((j * 16 + k), InvMicMatrix[i][l]);
+ }
+ }
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void AddMicBox(unsigned char val, SWAPv2_WORD* word, unsigned int idx, SWAPv2_WORD rnd, SWAPv2_TABLE_TYPE mode)
+ * @brief Applying MC box to the each element of T-box
+ *
+ * @param [in] val polynomial, each value of S-box
+ * @param [out] word MixColumn-applied word
+ * @param [in] idx index
+ * @param [in] rnd random number for MixColumn randomizing
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void AddMicBox(unsigned char val, SWAPv2_WORD* word, unsigned int idx, SWAPv2_WORD rnd, SWAPv2_TABLE_TYPE mode)
+{
+ static SWAPv2_MIX_COLUMN_BOX MicBox[4]; //MicBox
+ static SWAPv2_MIX_COLUMN_BOX InvMicBox[4]; //Inverse MicBox
+ static unsigned char MicBoxInitialFlag = 0; //MicBox Initialize flag
+
+ unsigned int i;
+
+ //if flag is not set
+ if (MicBoxInitialFlag == 0)
+ {
+ //calc MicBox
+ InitalizeMicBox(MicBox, SWAPv2_TABLE_TYPE_ENCRYPTION);
+
+ //calc Inverse MicBox
+ InitalizeMicBox(InvMicBox, SWAPv2_TABLE_TYPE_DECRYPTION);
+
+ //set flag
+ MicBoxInitialFlag = 1;
+ }
+
+ for (i = 0; i < SWAPv2_WORD_SIZE; i++)
+ {
+ //add MicBox for encryption
+ if (mode == SWAPv2_TABLE_TYPE_ENCRYPTION)
+ {
+ (*word)[i] = MicBox[idx][val >> 4][val & 0x0f][i] ^ rnd[i];
+ }
+ else
+ {
+ //add MicBox for decryption
+ (*word)[i] = InvMicBox[idx][val >> 4][val & 0x0f][i] ^ rnd[i];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void MakeEachTBox(unsigned char mul, unsigned char xor, SWAPv2_TBOX* tbox, unsigned int idx, SWAPv2_WORD rnd, SWAPv2_TABLE_TYPE mode)
+ * @brief Claculating masked and expanded s-box
+ *
+ * @param [in] mul value to be multiplicated
+ * @param [in] xor value to be added
+ * @param [out] tbox T-box for each round key byte
+ * @param [in] idx column index
+ * @param [in] rnd random number for MixColumn randomizing
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void MakeEachTBox(unsigned char mul, unsigned char xor, SWAPv2_TBOX* tbox, unsigned int idx, SWAPv2_WORD rnd, SWAPv2_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char mul_row = (mul >> 4);
+ unsigned char mul_col = (mul & 0x0f);
+
+ //S-Box row
+ for (i = 0; i < 16; i++)
+ {
+ //S-Box col
+ for (j = 0; j < 16; j++)
+ {
+ if (mode == SWAPv2_TABLE_TYPE_ENCRYPTION)
+ {
+ //add MicBox for encryption
+ AddMicBox(s_box[i ^ mul_row][j ^ mul_col] ^ xor, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ else
+ {
+ //add MicBox for decryption
+ AddMicBox(inv_s_box[i ^ mul_row][j ^ mul_col] ^ xor, &(*tbox)[i][j], idx, rnd, mode);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void SBOX_Xor(unsigned char mul, unsigned char xor, SWAPv2_TBOX* tbox, SWAPv2_TABLE_TYPE mode)
+ * @brief Claculating masked s-box
+ *
+ * @param [in] mul value to be multiplicated
+ * @param [in] xor value to be added
+ * @param [in] tbox T-box for each round key byte
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void SBOX_Xor(unsigned char mul, unsigned char xor, SWAPv2_TBOX* tbox, SWAPv2_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char mul_row = mul >> 4;
+ unsigned char mul_col = mul & 0x0f;
+
+ //S-Box row
+ for (i = 0; i < 16; i++)
+ {
+ //S-Box col
+ for (j = 0; j < 16; j++)
+ {
+ if (mode == SWAPv2_TABLE_TYPE_ENCRYPTION)
+ {
+ //clac T-box for encryption
+ (*tbox)[i][j][0] = s_box[i ^ mul_row][j ^ mul_col] ^ xor;
+ }
+ else
+ {
+ //calc T-box for decryption
+ (*tbox)[i][j][0] = inv_s_box[i ^ mul_row][j ^ mul_col] ^ xor;
+ }
+
+ //fill empty bytes with random numbers
+ (*tbox)[i][j][1] = rand() & 0xff;
+ (*tbox)[i][j][2] = rand() & 0xff;
+ (*tbox)[i][j][3] = rand() & 0xff;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void CalcTBox(SWAPv2_RK_BOX* RK, SWAPv2_TBOX* pTable, unsigned int Nr)
+ * @brief Calculate T-box table for encryption
+ *
+ * @param [in] RK round key
+ * @param [out] pTable T-box, transform table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void CalcTBox(SWAPv2_RK_BOX* RK, SWAPv2_TBOX* pTable, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned char mask[16] = {0};
+
+ SWAPv2_WORD rnd[16];
+
+ //1. make T-box for each rounds
+ for (i = 0; i < (Nr - 1); i++)
+ {
+ //make random masking
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ rnd[j][k] = rand() & 0xff;
+ }
+ }
+
+ //for each col
+ for (j = 0; j < SWAPv2_COLUMNS; j++)
+ {
+ for (k = 0; k < SWAPv2_WORD_SIZE; k++)
+ {
+ //make each TBox
+ MakeEachTBox(RK[i][j][k] ^ mask[j * 4 + k], 0, &pTable[i * 16 + j * 4 + k], k, rnd[j * 4 + k], SWAPv2_TABLE_TYPE_ENCRYPTION);
+ }
+ }
+
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ //apply random masking
+ mask[j * 4 + k] = rnd[inv_sr_matrix[j * 4 ]][k] ^
+ rnd[inv_sr_matrix[j * 4 + 1]][k] ^
+ rnd[inv_sr_matrix[j * 4 + 2]][k] ^
+ rnd[inv_sr_matrix[j * 4 + 3]][k];
+
+ }
+ }
+ }
+
+ //2. make T-box for last round
+ for (j = 0; j < SWAPv2_COLUMNS; j++)
+ {
+ for (k = 0; k < SWAPv2_WORD_SIZE; k++)
+ {
+ unsigned char temp = sr_matrix[j * SWAPv2_WORD_SIZE + k];
+ SBOX_Xor(RK[i][j][k] ^ mask[j * 4 + k], RK[i + 1][temp >> 4][temp & 0x0f], &pTable[i * 16 + j * 4 + k], SWAPv2_TABLE_TYPE_ENCRYPTION);
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void CalcInvTBox(SWAPv2_RK_BOX* RK, SWAPv2_TBOX* pTable, unsigned int Nr)
+ * @brief Calculate T-box table for decryption
+ *
+ * @param [in] RK round key
+ * @param [in] pTable T-box, transform table
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void CalcInvTBox(SWAPv2_RK_BOX* RK, SWAPv2_TBOX* pTable, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned char mask[16] = {0};
+
+ SWAPv2_WORD rnd[16];
+
+ //1. make T-box for each rounds
+ for (i = 0; i < (Nr - 1); i++)
+ {
+ //make random masking
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ rnd[j][k] = rand() & 0xff;
+ }
+ }
+
+ //for each col
+ for (j = 0; j < SWAPv2_COLUMNS; j++)
+ {
+ for (k = 0; k < SWAPv2_WORD_SIZE; k++)
+ {
+ if (i == 0)
+ {
+ //make first T-Box
+ unsigned char temp = inv_sr_matrix[j * SWAPv2_WORD_SIZE + k];
+ MakeEachTBox(RK[Nr][j][k], RK[Nr - 1][temp >> 4][temp & 0x0f], &pTable[j * 4 + k], k, rnd[j * 4 + k], SWAPv2_TABLE_TYPE_DECRYPTION);
+ }
+ else
+ {
+ //make each T-Box
+ MakeEachTBox(mask[j * 4 + k], RK[Nr - i - 1][j][k], &pTable[i * 16 + j * 4 + k], k, rnd[j * 4 + k], SWAPv2_TABLE_TYPE_DECRYPTION);
+ }
+ }
+ }
+
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (i == 0)
+ {
+ //apply random mask for 1st T-Box
+ const unsigned char conv_matrix[16] =
+ {0, 7, 10, 13, 1, 4, 11, 14, 2, 5, 8, 15, 3, 6, 9, 12};
+ mask[inv_sr_matrix[j * 4 + k]] = rnd[conv_matrix[j * 4 ]][k] ^
+ rnd[conv_matrix[j * 4 + 1]][k] ^
+ rnd[conv_matrix[j * 4 + 2]][k] ^
+ rnd[conv_matrix[j * 4 + 3]][k];
+ }
+ else
+ {
+ //apply random mask
+ mask[inv_sr_matrix[j * 4 + k]] = rnd[j * 4 ][k] ^
+ rnd[j * 4 + 1][k] ^
+ rnd[j * 4 + 2][k] ^
+ rnd[j * 4 + 3][k];
+ }
+ }
+ }
+ }
+
+ //2. make T-box for last round
+ for (j = 0; j < SWAPv2_COLUMNS; j++)
+ {
+ for (k = 0; k < SWAPv2_WORD_SIZE; k++)
+ {
+ SBOX_Xor(mask[j * 4 + k], RK[0][j][k], &pTable[i * 16 + j * 4 + k], SWAPv2_TABLE_TYPE_DECRYPTION);
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void ProcessInitalPermutation(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector)
+ * @brief process initial permutation
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @return void
+ */
+static void ProcessInitalPermutation(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector)
+{
+ unsigned int j;
+ unsigned int k;
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //make initial permutation table
+ Table[0][j][k] = PVector[0][j * 8 + k];
+ }
+ }
+
+ for (; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //fill empty bytes with random numbers
+ Table[0][j][k] = rand() & 0xff;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void ProcessFinalPermutation(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr, SWAPv2_TABLE_TYPE mode)
+ * @brief process final permutation
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @param [in] mode flag which means encryption or decryption
+ * @return void
+ */
+static void ProcessFinalPermutation(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr, SWAPv2_TABLE_TYPE mode)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ for (j = 0; j < 2; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ if (mode == SWAPv2_TABLE_TYPE_ENCRYPTION)
+ {
+ Table[Nr][PVector[Nr - 1][j * 8 + k] / 8][PVector[Nr - 1][j * 8 + k] % 8] = sr_matrix[j * 8 + k];
+ }
+ else
+ {
+ Table[Nr][PVector[Nr - 1][j * 8 + k] / 8][PVector[Nr - 1][j * 8 + k] % 8] = j * 8 + k;
+ }
+ }
+ }
+
+ //fill empty bytes with random numbers
+ for (; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ Table[Nr][j][k] = rand() & 0xff;
+ }
+ }
+
+ //add random to permutation table (ex. 0x0d 0x0c ==> 0x4d 0x7c)
+ for (i = 0; i <= Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ unsigned char rnd = rand() % 16;
+ Table[i][j][k] ^= (rnd << 4);
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void MakePTable(SWAPv2_PBOX *Table, unsigned int round, unsigned char itmdt[16][4])
+ * @brief Calculate P-box for each round
+ *
+ * @param [in,out] Table P-box, permutation table
+ * @param [in] round current round
+ * @param [in] itmdt intermediate value
+ * @return void
+ */
+static void MakePTable(SWAPv2_PBOX *Table, unsigned int round, unsigned char itmdt[16][4])
+{
+ unsigned int j;
+ unsigned int k;
+ unsigned int idx[4] = {0};
+
+ //fill P-Table with 0xff
+ memset(&Table[round], 0xff, sizeof(SWAPv2_PBOX));
+
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (Table[round][k][0] == 0xff)
+ {
+ //if the key value is not added yet, add key value and 1st index
+ memcpy(&Table[round][k], &itmdt[j], sizeof(SWAPv2_WORD));
+ idx[k] = 0;
+ Table[round][k][4 + idx[k]] = j;
+
+ break;
+ }
+ else if (memcmp(&itmdt[j], &Table[round][k], SWAPv2_WORD_SIZE) == 0)
+ {
+ //if the index already exists, just add index
+ idx[k]++;
+ Table[round][k][4 + idx[k]] = j;
+
+ break;
+ }
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void CalcPBox(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+ * @brief Calculate P-box table for encryption
+ *
+ * @param [out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void CalcPBox(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int temp;
+
+ unsigned char InvMix[16];
+ unsigned char itmdt[16][4];
+
+ //1. make initial permutation
+ ProcessInitalPermutation(Table, PVector);
+
+ //2. make permutation table
+ for (i = 1; i < Nr; i++)
+ {
+ //calc Intermideate table
+ for (j = 0; j < 16; j++)
+ {
+ InvMix[PVector[i - 1][j]] = j;
+ }
+
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ temp = (sr_matrix[InvMix[j]] / 4) * 4 + k;
+ itmdt[j][k] = PVector[i][temp];
+ }
+ }
+
+ MakePTable(Table, i, itmdt);
+ }
+
+ //3. make final permutation
+ ProcessFinalPermutation(Table, PVector, Nr, SWAPv2_TABLE_TYPE_ENCRYPTION);
+
+ return;
+}
+
+/**
+ * @fn static void CalcInvPBox(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+ * @brief Calculate P-box table for decryption
+ *
+ * @param [out] Table P-box, permutation table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void CalcInvPBox(SWAPv2_PBOX *Table, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+ unsigned int temp;
+
+ unsigned char InvMix[16];
+ unsigned char itmdt[16][4];
+
+ //1. make initial permutation
+ ProcessInitalPermutation(Table, PVector);
+
+ //2. make permutation table
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ InvMix[PVector[i - 1][j]] = j;
+ }
+
+ //calc Intermideate table
+ for (j = 0; j < 16; j++)
+ {
+ for (k = 0; k < 4; k++)
+ {
+ if (i == 1)
+ {
+ temp = inv_sr_matrix[(inv_sr_matrix[InvMix[j]] / 4) * 4 + k];
+ itmdt[j][k] = PVector[i][temp];
+ }
+ else
+ {
+ temp = inv_sr_matrix[(InvMix[j] / 4) * 4 + k];
+ itmdt[j][k] = PVector[i][temp];
+ }
+ }
+ }
+
+ MakePTable(Table, i, itmdt);
+ }
+
+ //3. make final permutation
+ ProcessFinalPermutation(Table, PVector, Nr, SWAPv2_TABLE_TYPE_DECRYPTION);
+
+ return;
+}
+
+/**
+ * @fn static void GeneratePVector(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+ * @brief generate permutation vector
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void GeneratePVector(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned char flag[16];
+ unsigned char sequence[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+ unsigned int i;
+ unsigned int j;
+
+ for (i = 0; i < Nr; i++)
+ {
+ //make 16 byte random sequence for each round
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 16; j++)
+ {
+ rnd = rand() % (16 - j);
+ PVector[i][j] = flag[rnd];
+ flag[rnd] = flag[16 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void ShuffleTBox(SWAPv2_TBOX* pTBox, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+ * @brief shuffle T-box according to the permutation vector
+ *
+ * @param [in,out] pTBox T-box, transform table
+ * @param [in] PVector permutation vector
+ * @param [in] Nr number of rounds
+ * @return void
+ */
+static void ShuffleTBox(SWAPv2_TBOX* pTBox, SWAPv2_PVECTOR* PVector, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ SWAPv2_TBOX* pCurrentTBox = pTBox;
+ SWAPv2_TBOX temp[16];
+
+ for (i = 0; i < Nr; i++)
+ {
+ //temp = current TBox
+ memcpy(&temp, pCurrentTBox, sizeof(SWAPv2_TBOX) * 16);
+
+ for (j = 0; j < 16; j++)
+ {
+ //Shuffle each item of T-Box
+ memcpy(&pCurrentTBox[PVector[i][j]], temp[j], sizeof(SWAPv2_TBOX));
+ }
+
+ //current TBox = temp
+ pCurrentTBox = &pCurrentTBox[16];
+ }
+
+ return ;
+}
+
+/**
+ * @fn static void GeneratePVector_fst(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+ * @brief generate permutation vector for fast implementation
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void GeneratePVector_fst(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned int sfl;
+ unsigned char flag[4];
+ unsigned char sequence[4] = {0, 1, 2, 3};
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ //shuffle table
+ unsigned char sflTable[4][4] =
+ {
+ {0x00, 0x01, 0x02, 0x03},
+ {0x01, 0x02, 0x03, 0x00},
+ {0x02, 0x03, 0x00, 0x01},
+ {0x03, 0x00, 0x01, 0x02}
+ };
+
+ //calculate PVector
+ for (i = 0; i < Nr; i++)
+ {
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 4; j++)
+ {
+ rnd = rand() % (4 - j);
+ sfl = rand() % 4;
+ for (k = 0; k < 4; k++)
+ {
+ PVector[i][j * 4 + k] = flag[rnd] * 4 + sflTable[sfl][k];
+ }
+ flag[rnd] = flag[4 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void GenerateInvPVector_fst(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+ * @brief generate permutation vector for fast decryption
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void GenerateInvPVector_fst(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+{
+ unsigned int rnd;
+ unsigned int sfl;
+ unsigned char flag[4];
+ unsigned char sequence[4] = {0, 1, 2, 3};
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ //shuffle table
+ unsigned char sflTable[4][4] =
+ {
+ {0x00, 0x01, 0x02, 0x03},
+ {0x01, 0x02, 0x03, 0x00},
+ {0x02, 0x03, 0x00, 0x01},
+ {0x03, 0x00, 0x01, 0x02}
+ };
+
+ //calculate inverse PVector
+ for (i = 0; i < Nr; i++)
+ {
+ memcpy(flag, sequence, sizeof(flag));
+ for (j = 0; j < 4; j++)
+ {
+ rnd = rand() % (4 - j);
+ sfl = rand() % 4;
+ for (k = 0; k < 4; k++)
+ {
+ PVector[i][inv_sr_matrix[j * 4 + k]] = flag[rnd] * 4 + sflTable[sfl][k];
+ }
+ flag[rnd] = flag[4 - j - 1];
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void GenerateInvPVector_fstest(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+ * @brief generate permutation vector for fastest decryption
+ *
+ * @param [in] Nr number of rounds
+ * @param [out] PVector permutation vector
+ * @return void
+ */
+static void GenerateInvPVector_fstest(unsigned int Nr, SWAPv2_PVECTOR* PVector)
+{
+ unsigned int i;
+ unsigned int j;
+
+ //Actually, no permutation is applied
+ for (i = 0; i < 16; i++)
+ {
+ PVector[0][i] = i;
+ }
+
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 16; j++)
+ {
+ PVector[i][inv_sr_matrix[j]] = j;
+ }
+ }
+
+ return;
+}
+
+/**
+ * @fn static void ConvertPBox(SWAPv2_PBOX *Table, unsigned int Nr)
+ * @brief convert PBox for simple permutation
+ *
+ * @param [in,out] Table PBox
+ * @param [out] Nr number of rounds
+ * @return void
+ */
+static void ConvertPBox(SWAPv2_PBOX *Table, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned char t;
+
+ for (i = 1; i < Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ //calculate each table and fill empty bits with random mask
+ t = Table[i][j][0] & 0x0f;
+ Table[i][j][0] = (t / 4) + (0x00 & 0xfc); //(t / 4) + (rand() & 0xfc);
+ Table[i][j][1] = ((t % 4) * 8) + (0x00 & 0xe0); //((t % 4) * 8) + (rand() & 0xe0)
+ Table[i][j][2] = rand() & 0xff;
+ Table[i][j][3] = rand() & 0xff;
+ }
+ }
+}
+
+/**
+ * @fn static void RandomizePBox(SWAPv2_PBOX *Table, unsigned int Nr)
+ * @brief fill the PBox with random numbers
+ *
+ * @param [in,out] Table PBox
+ * @param [out] Nr number of rounds
+ * @return void
+ */
+static void RandomizePBox(SWAPv2_PBOX *Table, unsigned int Nr)
+{
+ unsigned int i;
+ unsigned int j;
+ unsigned int k;
+
+ for (i = 0; i <= Nr; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ for (k = 0; k < 8; k++)
+ {
+ //fill the table with random numbers
+ Table[i][j][k] = rand() & 0xff;
+ }
+ }
+ }
+}
+
+/**
+ * @fn unsigned int SWAPv2_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption, unsigned int OptimizLev)
+ * @brief derivate look-up table from given key
+ *
+ * @param [in] Key user key (cipher key)
+ * @param [in] KeyLen byte-length of cipher key
+ * @param [in] seed random seed
+ * @param [out] Table look-up table for SWAPv2
+ * @param [out] TableLen byte-length of look-up table
+ * @param [in] isEncryption flag ordering encryption or decryption
+ * @return SWAPv2_TBLGEN_RETURN_VAL
+ */
+SPC_INTERNAL unsigned int SWAPv2_GenerateTable(unsigned char* Key, unsigned char KeyLen, unsigned int seed, unsigned char **Table, unsigned int *TableLen, int isEncryption)
+{
+ SWAPv2_TBLGEN_RETURN_VAL retVal = SWAPv2_TBLGEN_RETURN_SUCCESS;
+ unsigned int Nr = 0;
+ unsigned int Nk = 0;
+ unsigned char *RoundKey = NULL;
+ unsigned int RoundKeySize = 0;
+ unsigned int TBoxSize = 0;
+ unsigned int PBoxSize = 0;
+ unsigned int WPBoxSize = 0;
+ unsigned int BPBoxSize = 0;
+ SWAPv2_TBOX *pTBox = NULL;
+ SWAPv2_PBOX *pPBox = NULL;
+ SWAPv2_WORD_PBOX *pBytePBox = NULL;
+ SWAPv2_BIT_PBOX *pBitPBox = NULL;
+ SWAPv2_PVECTOR PVector[SWAPv2_256_ROUNDS + 1];
+
+ //1. Argument Check
+ if ((Key == NULL) || (Table == NULL))
+ {
+ retVal = SWAPv2_TBLGEN_RETURN_INVALID_PARAMETER; //invalid input
+ goto ERROR_PROC;
+ }
+
+ //2. Set Number of rounds
+ switch(KeyLen) //find Nr
+ {
+ case 16:
+ //AES128
+ Nr = 10;
+ break;
+ case 24:
+ //AES192
+ Nr = 12;
+ break;
+ case 32:
+ //AES256
+ Nr = 14;
+ break;
+ default:
+ retVal = SWAPv2_TBLGEN_RETURN_INVALID_KEYLEN; //invalid key length
+ goto ERROR_PROC;
+ }
+
+ //calculate round key size
+ RoundKeySize = SWAPv2_COLUMNS * SWAPv2_WORD_SIZE * (Nr + 1); //Nb * word size * (number of rounds + 1)
+
+ //allocate memory for round key
+ RoundKey = (unsigned char*)malloc(RoundKeySize);
+ if (RoundKey == NULL)
+ {
+ retVal = SWAPv2_TBLGEN_RETURN_MEM_ALLOC_FAILED; //memory allocation failed
+ goto ERROR_PROC;
+ }
+
+ //calculate TBox and PBox size
+ TBoxSize = SWAPv2_T_TABLE_ROUND_SIZE * Nr; //each byte of round key has its own s-box table
+ PBoxSize = SWAPv2_P_TABLE_ROUND_SIZE * (Nr + 1); //Permutation table for each round, and initial permutation
+ WPBoxSize = SWAPv2_WP_TABLE_ROUND_SIZE * Nr; //Permutation word of transform table for each round
+ BPBoxSize = SWAPv2_BP_TABLE_ROUND_SIZE * Nr; //Permutation bit of transform table for each round
+
+ //allocate memory for TBox and PBox
+ pTBox = (SWAPv2_TBOX*)malloc(TBoxSize + PBoxSize + WPBoxSize + BPBoxSize);
+
+ if (pTBox == NULL)
+ {
+ retVal = SWAPv2_TBLGEN_RETURN_MEM_ALLOC_FAILED; //memory allocation failed
+ goto ERROR_PROC;
+ }
+
+ pPBox = (SWAPv2_PBOX*)((unsigned char*)pTBox + TBoxSize);
+ pBytePBox = (SWAPv2_WORD_PBOX*)((unsigned char*)pTBox + TBoxSize + PBoxSize);
+ pBitPBox = (SWAPv2_BIT_PBOX*)((unsigned char*)pTBox + TBoxSize + PBoxSize + WPBoxSize);
+
+ //calculate Nk
+ Nk = KeyLen / SWAPv2_WORD_SIZE; //Nk is the word size of given key
+
+ //seed random seed
+ srand(seed);
+
+ //3. Calc Round Key
+ KeySched((SWAPv2_WORD*)Key, Nk, (SWAPv2_WORD*)RoundKey, Nr);
+
+ if (isEncryption)
+ {
+ //4. Generate permutation vector and PBox
+ GeneratePVector(Nr, PVector);
+ CalcPBox(pPBox, PVector, Nr);
+
+ //5. Generate table for calc AddRoundKey, SubBytes and MixColumn
+ CalcTBox((SWAPv2_RK_BOX*)RoundKey, pTBox, Nr);
+ }
+ else
+ {
+ //4. Generate permutation vector and PBox
+
+ GeneratePVector(Nr, PVector);
+ CalcInvPBox(pPBox, PVector, Nr);
+
+ //5. Generate table for calc AddRoundKey, SubBytes and MixColumn
+ CalcInvTBox((SWAPv2_RK_BOX*)RoundKey, pTBox, Nr);
+ }
+
+ //6. Create bit-permutation table & apply bit-permutation
+ ProcessBitPBox(pTBox, pBitPBox, Nr);
+
+ //7. Generate byte-permutation table & apply byte-permutation
+ ProcessBytePBox(pTBox, pBytePBox, Nr);
+
+ //8. Shuffle TBox according to the permutation vector
+ ShuffleTBox(pTBox, PVector, Nr);
+
+ //9. Set output
+ *Table = (unsigned char*)pTBox;
+ //set pTbox to preventing free
+ pTBox = NULL;
+
+ //set table length
+ if (TableLen != NULL)
+ {
+ *TableLen = TBoxSize + PBoxSize + WPBoxSize + BPBoxSize;
+ }
+
+ERROR_PROC:
+ //clear memory
+ memset(PVector, 0x00, sizeof(PVector));
+
+ //free roundkey
+ if (RoundKey != NULL)
+ {
+ //clear before free
+ memset(RoundKey, 0x00, RoundKeySize);
+ free(RoundKey);
+ }
+
+ //free TBox if not null
+ if (pTBox != NULL)
+ {
+ //clear before free
+ memset(pTBox, 0x00, TBoxSize + PBoxSize + WPBoxSize + BPBoxSize);
+ free(pTBox);
+ }
+
+ if(pSBox != NULL)
+ {
+ memset(pSBox, 0x00, sizeof(SWAPv2_SBOX) * Nr);
+ free(pSBox);
+ }
+
+ if(pInvSBox != NULL)
+ {
+ memset(pInvSBox, 0x00, sizeof(SWAPv2_SBOX) * Nr);
+ free(pInvSBox);
+ }
+
+ return retVal;
+}
+////////////////////////// End of File //////////////////////////
diff --git a/SPC/Src/base/ANSI_x931.c b/SPC/Src/base/ANSI_x931.c
new file mode 100755
index 0000000..21564f1
--- /dev/null
+++ b/SPC/Src/base/ANSI_x931.c
@@ -0,0 +1,110 @@
+/**
+ * \file ANSI_x931.c
+ * @brief Pseudorandom number generator based on a design described in ANSI X9.31
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Junbum Shin
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/23
+ * Edited : Use date data, and update seed, by Jisoon Park, 06/11/08
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include <time.h>
+#include "aes.h"
+#include "ANSI_x931.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_RNG_X931
+ * @brief generate random number with seed
+ *
+ * @param Seed [in]seed for RNG System
+ * @param bitLength [in]bit length of data to generate
+ * @param data [out]generated data
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_RNG_X931(cc_u8 *Si_ANSI_X9_31, cc_u32 bitLength, cc_u8 *data)
+{
+ static cc_u8 K_ANSI_X9_31[SDRM_X931_SEED_SIZ] = {0xfd, 0x74, 0x3d, 0xe1, 0xdc, 0x08, 0xdc, 0x3d, 0x0f, 0xea, 0xf5, 0xa3, 0x6e, 0xb1, 0xc0, 0x7f};
+ int res = CRYPTO_SUCCESS;
+ int i, offset;
+ int byteLength, residue;
+ int numBlock, residueBlock;
+ cc_u8 *DT;
+ cc_u8 I[SDRM_X931_SEED_SIZ] = {0};
+ cc_u8 Ri_ANSI_X9_31[SDRM_X931_SEED_SIZ];
+ cc_u32 Date[SDRM_X931_SEED_SIZ / 4];
+ cc_u32 RoundKey[4*(10 + 1)]; //AES Round Key
+
+ time_t nowTime;
+
+ time(&nowTime);
+ Date[0] = (cc_u32)nowTime;
+ Date[1] = clock();
+ Date[2] = rand();
+ Date[3] = rand();
+
+ DT = (cc_u8*)Date; //DT : Time | Clock | RND | RND
+
+ SDRM_rijndaelKeySetupDec(RoundKey, K_ANSI_X9_31, 128);
+
+ byteLength = bitLength / 8 ;
+ residue = bitLength - byteLength * 8;
+
+ if (residue == 0)
+ {
+ memset(data, 0x0, byteLength);
+ }
+ else
+ {
+ byteLength += 1;
+ memset(data, 0x0, byteLength);
+ }
+
+ numBlock = byteLength / SDRM_X931_SEED_SIZ;
+ residueBlock = byteLength - numBlock * SDRM_X931_SEED_SIZ;
+ offset = 0;
+
+ for(i = 0; i < numBlock; i++)
+ {
+ SDRM_rijndaelDecrypt(RoundKey, 10, DT, I);
+ BlockXor(I, I, Si_ANSI_X9_31);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Ri_ANSI_X9_31);
+ BlockXor(I, I, Ri_ANSI_X9_31);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Si_ANSI_X9_31);
+ memcpy(data + offset, Ri_ANSI_X9_31, SDRM_X931_SEED_SIZ);
+ offset += SDRM_X931_SEED_SIZ;
+ }
+
+ if (residueBlock != 0)
+ {
+ SDRM_rijndaelDecrypt(RoundKey, 10, DT, I);
+ BlockXor(I, I, Si_ANSI_X9_31);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Ri_ANSI_X9_31);
+ BlockXor(I, I, Ri_ANSI_X9_31);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, I, Si_ANSI_X9_31);
+ memcpy(data + offset, Ri_ANSI_X9_31, residueBlock);
+ }
+
+ BlockXor(Si_ANSI_X9_31, I, Si_ANSI_X9_31);
+
+ return res;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/aes.c b/SPC/Src/base/aes.c
new file mode 100755
index 0000000..22101ad
--- /dev/null
+++ b/SPC/Src/base/aes.c
@@ -0,0 +1,1389 @@
+/**
+ * rijndael-alg-fst.c
+ *
+ * @version 3.0 (December 2000)
+ *
+ * Optimised ANSI C code for the Rijndael cipher (now AES)
+ *
+ * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
+ * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
+ * @author Paulo Barreto <paulo.barreto@terra.com.br>
+ *
+ * This code is hereby placed in the public domain.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''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 AUTHORS 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.
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "aes.h"
+
+#define FULL_UNROLL
+
+////////////////////////////////////////////////////////////////////////////
+// AES conversion matrix
+////////////////////////////////////////////////////////////////////////////
+static const cc_u32 SDRM_Te0[256] = {
+ 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
+ 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
+ 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
+ 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
+ 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
+ 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
+ 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
+ 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
+ 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
+ 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
+ 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
+ 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
+ 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
+ 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
+ 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
+ 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
+ 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
+ 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
+ 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
+ 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
+ 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
+ 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
+ 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
+ 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
+ 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
+ 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
+ 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
+ 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
+ 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
+ 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
+ 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
+ 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
+ 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
+ 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
+ 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
+ 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
+ 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
+ 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
+ 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
+ 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
+ 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
+ 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
+ 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
+ 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
+ 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
+ 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
+ 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
+ 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
+ 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
+ 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
+ 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
+ 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
+ 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
+ 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
+ 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
+ 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
+ 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
+ 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
+ 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
+ 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
+ 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
+ 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
+ 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
+ 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
+};
+static const cc_u32 SDRM_Te1[256] = {
+ 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
+ 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
+ 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
+ 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
+ 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
+ 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
+ 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
+ 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
+ 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
+ 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
+ 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
+ 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
+ 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
+ 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
+ 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
+ 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
+ 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
+ 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
+ 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
+ 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
+ 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
+ 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
+ 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
+ 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
+ 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
+ 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
+ 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
+ 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
+ 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
+ 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
+ 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
+ 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
+ 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
+ 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
+ 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
+ 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
+ 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
+ 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
+ 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
+ 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
+ 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
+ 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
+ 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
+ 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
+ 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
+ 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
+ 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
+ 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
+ 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
+ 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
+ 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
+ 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
+ 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
+ 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
+ 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
+ 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
+ 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
+ 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
+ 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
+ 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
+ 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
+ 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
+ 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
+ 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
+};
+static const cc_u32 SDRM_Te2[256] = {
+ 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
+ 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
+ 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
+ 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
+ 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
+ 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
+ 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
+ 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
+ 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
+ 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
+ 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
+ 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
+ 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
+ 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
+ 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
+ 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
+ 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
+ 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
+ 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
+ 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
+ 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
+ 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
+ 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
+ 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
+ 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
+ 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
+ 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
+ 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
+ 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
+ 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
+ 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
+ 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
+ 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
+ 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
+ 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
+ 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
+ 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
+ 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
+ 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
+ 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
+ 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
+ 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
+ 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
+ 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
+ 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
+ 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
+ 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
+ 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
+ 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
+ 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
+ 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
+ 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
+ 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
+ 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
+ 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
+ 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
+ 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
+ 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
+ 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
+ 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
+ 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
+ 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
+ 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
+ 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
+};
+static const cc_u32 SDRM_Te3[256] = {
+ 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
+ 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
+ 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
+ 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
+ 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
+ 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
+ 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
+ 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
+ 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
+ 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
+ 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
+ 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
+ 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
+ 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
+ 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
+ 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
+ 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
+ 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
+ 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
+ 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
+ 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
+ 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
+ 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
+ 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
+ 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
+ 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
+ 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
+ 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
+ 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
+ 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
+ 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
+ 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
+ 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
+ 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
+ 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
+ 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
+ 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
+ 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
+ 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
+ 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
+ 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
+ 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
+ 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
+ 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
+ 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
+ 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
+ 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
+ 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
+ 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
+ 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
+ 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
+ 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
+ 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
+ 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
+ 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
+ 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
+ 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
+ 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
+ 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
+ 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
+ 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
+ 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
+ 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
+ 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
+};
+static const cc_u32 SDRM_Te4[256] = {
+ 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
+ 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
+ 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
+ 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
+ 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
+ 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
+ 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
+ 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
+ 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
+ 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
+ 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
+ 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
+ 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
+ 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
+ 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
+ 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
+ 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
+ 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
+ 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
+ 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
+ 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
+ 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
+ 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
+ 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
+ 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
+ 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
+ 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
+ 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
+ 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
+ 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
+ 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
+ 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
+ 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
+ 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
+ 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
+ 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
+ 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
+ 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
+ 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
+ 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
+ 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
+ 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
+ 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
+ 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
+ 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
+ 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
+ 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
+ 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
+ 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
+ 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
+ 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
+ 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
+ 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
+ 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
+ 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
+ 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
+ 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
+ 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
+ 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
+ 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
+ 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
+ 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
+ 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
+ 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
+};
+static const cc_u32 SDRM_Td0[256] = {
+ 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
+ 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
+ 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
+ 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
+ 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
+ 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
+ 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
+ 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
+ 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
+ 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
+ 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
+ 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
+ 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
+ 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
+ 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
+ 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
+ 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
+ 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
+ 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
+ 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
+ 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
+ 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
+ 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
+ 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
+ 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
+ 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
+ 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
+ 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
+ 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
+ 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
+ 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
+ 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
+ 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
+ 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
+ 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
+ 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
+ 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
+ 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
+ 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
+ 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
+ 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
+ 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
+ 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
+ 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
+ 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
+ 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
+ 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
+ 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
+ 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
+ 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
+ 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
+ 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
+ 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
+ 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
+ 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
+ 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
+ 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
+ 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
+ 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
+ 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
+ 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
+ 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
+ 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
+ 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
+};
+static const cc_u32 SDRM_Td1[256] = {
+ 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
+ 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
+ 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
+ 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
+ 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
+ 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
+ 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
+ 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
+ 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
+ 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
+ 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
+ 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
+ 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
+ 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
+ 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
+ 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
+ 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
+ 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
+ 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
+ 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
+ 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
+ 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
+ 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
+ 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
+ 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
+ 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
+ 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
+ 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
+ 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
+ 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
+ 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
+ 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
+ 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
+ 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
+ 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
+ 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
+ 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
+ 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
+ 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
+ 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
+ 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
+ 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
+ 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
+ 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
+ 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
+ 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
+ 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
+ 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
+ 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
+ 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
+ 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
+ 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
+ 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
+ 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
+ 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
+ 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
+ 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
+ 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
+ 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
+ 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
+ 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
+ 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
+ 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
+ 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
+};
+static const cc_u32 SDRM_Td2[256] = {
+ 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
+ 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
+ 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
+ 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
+ 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
+ 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
+ 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
+ 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
+ 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
+ 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
+ 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
+ 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
+ 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
+ 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
+ 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
+ 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
+ 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
+ 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
+ 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
+ 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
+ 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
+ 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
+ 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
+ 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
+ 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
+ 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
+ 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
+ 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
+ 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
+ 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
+ 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
+ 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
+ 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
+ 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
+ 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
+ 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
+ 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
+ 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
+ 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
+ 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
+ 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
+ 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
+ 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
+ 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
+ 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
+ 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
+ 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
+ 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
+ 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
+ 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
+ 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
+ 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
+ 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
+ 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
+ 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
+ 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
+ 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
+ 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
+ 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
+ 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
+ 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
+ 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
+ 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
+ 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
+};
+static const cc_u32 SDRM_Td3[256] = {
+ 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
+ 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
+ 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
+ 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
+ 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
+ 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
+ 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
+ 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
+ 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
+ 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
+ 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
+ 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
+ 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
+ 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
+ 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
+ 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
+ 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
+ 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
+ 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
+ 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
+ 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
+ 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
+ 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
+ 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
+ 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
+ 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
+ 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
+ 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
+ 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
+ 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
+ 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
+ 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
+ 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
+ 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
+ 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
+ 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
+ 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
+ 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
+ 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
+ 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
+ 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
+ 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
+ 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
+ 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
+ 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
+ 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
+ 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
+ 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
+ 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
+ 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
+ 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
+ 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
+ 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
+ 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
+ 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
+ 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
+ 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
+ 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
+ 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
+ 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
+ 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
+ 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
+ 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
+ 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
+};
+static const cc_u32 SDRM_Td4[256] = {
+ 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
+ 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
+ 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
+ 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
+ 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
+ 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
+ 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
+ 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
+ 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
+ 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
+ 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
+ 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
+ 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
+ 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
+ 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
+ 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
+ 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
+ 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
+ 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
+ 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
+ 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
+ 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
+ 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
+ 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
+ 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
+ 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
+ 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
+ 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
+ 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
+ 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
+ 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
+ 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
+ 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
+ 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
+ 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
+ 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
+ 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
+ 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
+ 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
+ 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
+ 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
+ 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
+ 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
+ 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
+ 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
+ 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
+ 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
+ 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
+ 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
+ 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
+ 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
+ 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
+ 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
+ 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
+ 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
+ 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
+ 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
+ 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
+ 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
+ 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
+ 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
+ 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
+ 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
+ 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
+};
+static const cc_u32 SDRM_rcon[] = {
+ 0x01000000, 0x02000000, 0x04000000, 0x08000000,
+ 0x10000000, 0x20000000, 0x40000000, 0x80000000,
+ 0x1B000000, 0x36000000,
+ /* for 128-bit blocks, Rijndael never uses more than 10 _rcon values */
+};
+
+////////////////////////////////////////////////////////////////////////////
+// Macros for AES
+////////////////////////////////////////////////////////////////////////////
+#define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
+
+#ifdef _MSC_VER
+ #define GETUINT32(p) SWAP(*((cc_u32 *)(p)))
+ #define PUTUINT32(ct, st) { *((cc_u32 *)(ct)) = SWAP((st)); }
+#else
+ #define GETUINT32(pt) (((cc_u32)(pt)[0] << 24) ^ ((cc_u32)(pt)[1] << 16) ^ ((cc_u32)(pt)[2] << 8) ^ ((cc_u32)(pt)[3]))
+ #define PUTUINT32(ct, st) { (ct)[0] = (cc_u8)((st) >> 24); (ct)[1] = (cc_u8)((st) >> 16); (ct)[2] = (cc_u8)((st) >> 8); (ct)[3] = (cc_u8)(st); }
+#endif
+
+/*
+ * @fn SDRM_rijndaelKeySetupEnc
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param rk [out]expanded round key
+ * @param cipherKey [in]user key
+ * @param keyBits [in]bit-length of cipherKey
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_rijndaelKeySetupEnc(cc_u32 rk[/*4*(Nr + 1)*/], const cc_u8 cipherKey[], int keyBits)
+{
+ int i = 0;
+ cc_u32 temp;
+
+ rk[0] = GETUINT32(cipherKey );
+ rk[1] = GETUINT32(cipherKey + 4);
+ rk[2] = GETUINT32(cipherKey + 8);
+ rk[3] = GETUINT32(cipherKey + 12);
+ if (keyBits == 128)
+ {
+ for (;;)
+ {
+ temp = rk[3];
+ rk[4] = rk[0] ^
+ (SDRM_Te4[(temp >> 16) & 0xff] & 0xff000000) ^
+ (SDRM_Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(temp ) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(temp >> 24) ] & 0x000000ff) ^
+ SDRM_rcon[i];
+ rk[5] = rk[1] ^ rk[4];
+ rk[6] = rk[2] ^ rk[5];
+ rk[7] = rk[3] ^ rk[6];
+ if (++i == 10)
+ {
+ return 10;
+ }
+ rk += 4;
+ }
+ }
+
+ rk[4] = GETUINT32(cipherKey + 16);
+ rk[5] = GETUINT32(cipherKey + 20);
+ if (keyBits == 192)
+ {
+ for (;;) {
+ temp = rk[ 5];
+ rk[ 6] = rk[ 0] ^
+ (SDRM_Te4[(temp >> 16) & 0xff] & 0xff000000) ^
+ (SDRM_Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(temp ) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(temp >> 24) ] & 0x000000ff) ^
+ SDRM_rcon[i];
+ rk[ 7] = rk[ 1] ^ rk[ 6];
+ rk[ 8] = rk[ 2] ^ rk[ 7];
+ rk[ 9] = rk[ 3] ^ rk[ 8];
+ if (++i == 8)
+ {
+ return 12;
+ }
+ rk[10] = rk[ 4] ^ rk[ 9];
+ rk[11] = rk[ 5] ^ rk[10];
+ rk += 6;
+ }
+ }
+ rk[6] = GETUINT32(cipherKey + 24);
+ rk[7] = GETUINT32(cipherKey + 28);
+ if (keyBits == 256)
+ {
+ for (;;)
+ {
+ temp = rk[ 7];
+ rk[ 8] = rk[ 0] ^
+ (SDRM_Te4[(temp >> 16) & 0xff] & 0xff000000) ^
+ (SDRM_Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(temp ) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(temp >> 24) ] & 0x000000ff) ^
+ SDRM_rcon[i];
+ rk[ 9] = rk[ 1] ^ rk[ 8];
+ rk[10] = rk[ 2] ^ rk[ 9];
+ rk[11] = rk[ 3] ^ rk[10];
+ if (++i == 7) {
+ return 14;
+ }
+ temp = rk[11];
+ rk[12] = rk[ 4] ^
+ (SDRM_Te4[(temp >> 24) ] & 0xff000000) ^
+ (SDRM_Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(temp ) & 0xff] & 0x000000ff);
+ rk[13] = rk[ 5] ^ rk[12];
+ rk[14] = rk[ 6] ^ rk[13];
+ rk[15] = rk[ 7] ^ rk[14];
+
+ rk += 8;
+ }
+ }
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_rijndaelKeySetupDec
+ * @brief Expand the cipher key into the decryption key schedule
+ *
+ * @param rk [out]expanded round key
+ * @param cipherKey [in]user key
+ * @param keyBits [in]bit-length of cipherKey
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_rijndaelKeySetupDec(cc_u32 rk[/*4*(Nr + 1)*/], const cc_u8 cipherKey[], int keyBits)
+{
+ int Nr, i, j;
+ cc_u32 temp;
+
+ /* expand the cipher key: */
+ Nr = SDRM_rijndaelKeySetupEnc(rk, cipherKey, keyBits);
+ /* invert the order of the round keys: */
+ for (i = 0, j = 4*Nr; i < j; i += 4, j -= 4)
+ {
+ temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
+ temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
+ temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
+ temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
+ }
+
+ /* apply the inverse MixColumn transform to all round keys but the first and the last: */
+ for (i = 1; i < Nr; i++)
+ {
+ rk += 4;
+ rk[0] =
+ SDRM_Td0[SDRM_Te4[(rk[0] >> 24) ] & 0xff] ^
+ SDRM_Td1[SDRM_Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
+ SDRM_Td2[SDRM_Te4[(rk[0] >> 8) & 0xff] & 0xff] ^
+ SDRM_Td3[SDRM_Te4[(rk[0] ) & 0xff] & 0xff];
+ rk[1] =
+ SDRM_Td0[SDRM_Te4[(rk[1] >> 24) ] & 0xff] ^
+ SDRM_Td1[SDRM_Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
+ SDRM_Td2[SDRM_Te4[(rk[1] >> 8) & 0xff] & 0xff] ^
+ SDRM_Td3[SDRM_Te4[(rk[1] ) & 0xff] & 0xff];
+ rk[2] =
+ SDRM_Td0[SDRM_Te4[(rk[2] >> 24) ] & 0xff] ^
+ SDRM_Td1[SDRM_Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
+ SDRM_Td2[SDRM_Te4[(rk[2] >> 8) & 0xff] & 0xff] ^
+ SDRM_Td3[SDRM_Te4[(rk[2] ) & 0xff] & 0xff];
+ rk[3] =
+ SDRM_Td0[SDRM_Te4[(rk[3] >> 24) ] & 0xff] ^
+ SDRM_Td1[SDRM_Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
+ SDRM_Td2[SDRM_Te4[(rk[3] >> 8) & 0xff] & 0xff] ^
+ SDRM_Td3[SDRM_Te4[(rk[3] ) & 0xff] & 0xff];
+ }
+ return Nr;
+}
+
+/*
+ * @fn SDRM_rijndaelEncrypt
+ * @brief 16 byte AES Encryption with round key
+ *
+ * @param rk [in]expanded round key
+ * @param Nr [in]numer of rounds
+ * @param pt [in]plain text
+ * @param ct [out]cipher text
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_rijndaelEncrypt(const cc_u32 rk[/*4*(Nr + 1)*/], int Nr, const cc_u8 pt[16], cc_u8 ct[16])
+{
+ cc_u32 s0, s1, s2, s3, t0, t1, t2, t3;
+#ifndef FULL_UNROLL
+ int r;
+#endif /* ?FULL_UNROLL */
+
+ /*
+ * map byte array block to cipher state
+ * and add initial round key:
+ */
+ s0 = GETUINT32(pt ) ^ rk[0];
+ s1 = GETUINT32(pt + 4) ^ rk[1];
+ s2 = GETUINT32(pt + 8) ^ rk[2];
+ s3 = GETUINT32(pt + 12) ^ rk[3];
+#ifdef FULL_UNROLL
+ /* round 1: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[ 4];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[ 5];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[ 6];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[ 7];
+ /* round 2: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[ 8];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[ 9];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[10];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[11];
+ /* round 3: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[12];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[13];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[14];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[15];
+ /* round 4: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[16];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[17];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[18];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[19];
+ /* round 5: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[20];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[21];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[22];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[23];
+ /* round 6: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[24];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[25];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[26];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[27];
+ /* round 7: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[28];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[29];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[30];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[31];
+ /* round 8: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[32];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[33];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[34];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[35];
+ /* round 9: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[36];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[37];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[38];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[39];
+ if (Nr > 10)
+ {
+ /* round 10: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[40];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[41];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[42];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[43];
+ /* round 11: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[44];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[45];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[46];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[47];
+ if (Nr > 12) {
+ /* round 12: */
+ s0 = SDRM_Te0[t0 >> 24] ^ SDRM_Te1[(t1 >> 16) & 0xff] ^ SDRM_Te2[(t2 >> 8) & 0xff] ^ SDRM_Te3[t3 & 0xff] ^ rk[48];
+ s1 = SDRM_Te0[t1 >> 24] ^ SDRM_Te1[(t2 >> 16) & 0xff] ^ SDRM_Te2[(t3 >> 8) & 0xff] ^ SDRM_Te3[t0 & 0xff] ^ rk[49];
+ s2 = SDRM_Te0[t2 >> 24] ^ SDRM_Te1[(t3 >> 16) & 0xff] ^ SDRM_Te2[(t0 >> 8) & 0xff] ^ SDRM_Te3[t1 & 0xff] ^ rk[50];
+ s3 = SDRM_Te0[t3 >> 24] ^ SDRM_Te1[(t0 >> 16) & 0xff] ^ SDRM_Te2[(t1 >> 8) & 0xff] ^ SDRM_Te3[t2 & 0xff] ^ rk[51];
+ /* round 13: */
+ t0 = SDRM_Te0[s0 >> 24] ^ SDRM_Te1[(s1 >> 16) & 0xff] ^ SDRM_Te2[(s2 >> 8) & 0xff] ^ SDRM_Te3[s3 & 0xff] ^ rk[52];
+ t1 = SDRM_Te0[s1 >> 24] ^ SDRM_Te1[(s2 >> 16) & 0xff] ^ SDRM_Te2[(s3 >> 8) & 0xff] ^ SDRM_Te3[s0 & 0xff] ^ rk[53];
+ t2 = SDRM_Te0[s2 >> 24] ^ SDRM_Te1[(s3 >> 16) & 0xff] ^ SDRM_Te2[(s0 >> 8) & 0xff] ^ SDRM_Te3[s1 & 0xff] ^ rk[54];
+ t3 = SDRM_Te0[s3 >> 24] ^ SDRM_Te1[(s0 >> 16) & 0xff] ^ SDRM_Te2[(s1 >> 8) & 0xff] ^ SDRM_Te3[s2 & 0xff] ^ rk[55];
+ }
+ }
+ rk += Nr << 2;
+#else /* !FULL_UNROLL */
+ /*
+ * Nr - 1 full rounds:
+ */
+ r = Nr >> 1;
+ for (;;)
+ {
+ t0 =
+ SDRM_Te0[(s0 >> 24) ] ^
+ SDRM_Te1[(s1 >> 16) & 0xff] ^
+ SDRM_Te2[(s2 >> 8) & 0xff] ^
+ SDRM_Te3[(s3 ) & 0xff] ^
+ rk[4];
+ t1 =
+ SDRM_Te0[(s1 >> 24) ] ^
+ SDRM_Te1[(s2 >> 16) & 0xff] ^
+ SDRM_Te2[(s3 >> 8) & 0xff] ^
+ SDRM_Te3[(s0 ) & 0xff] ^
+ rk[5];
+ t2 =
+ SDRM_Te0[(s2 >> 24) ] ^
+ SDRM_Te1[(s3 >> 16) & 0xff] ^
+ SDRM_Te2[(s0 >> 8) & 0xff] ^
+ SDRM_Te3[(s1 ) & 0xff] ^
+ rk[6];
+ t3 =
+ SDRM_Te0[(s3 >> 24) ] ^
+ SDRM_Te1[(s0 >> 16) & 0xff] ^
+ SDRM_Te2[(s1 >> 8) & 0xff] ^
+ SDRM_Te3[(s2 ) & 0xff] ^
+ rk[7];
+
+ rk += 8;
+ if (--r == 0)
+ {
+ break;
+ }
+
+ s0 =
+ SDRM_Te0[(t0 >> 24) ] ^
+ SDRM_Te1[(t1 >> 16) & 0xff] ^
+ SDRM_Te2[(t2 >> 8) & 0xff] ^
+ SDRM_Te3[(t3 ) & 0xff] ^
+ rk[0];
+ s1 =
+ SDRM_Te0[(t1 >> 24) ] ^
+ SDRM_Te1[(t2 >> 16) & 0xff] ^
+ SDRM_Te2[(t3 >> 8) & 0xff] ^
+ SDRM_Te3[(t0 ) & 0xff] ^
+ rk[1];
+ s2 =
+ SDRM_Te0[(t2 >> 24) ] ^
+ SDRM_Te1[(t3 >> 16) & 0xff] ^
+ SDRM_Te2[(t0 >> 8) & 0xff] ^
+ SDRM_Te3[(t1 ) & 0xff] ^
+ rk[2];
+ s3 =
+ SDRM_Te0[(t3 >> 24) ] ^
+ SDRM_Te1[(t0 >> 16) & 0xff] ^
+ SDRM_Te2[(t1 >> 8) & 0xff] ^
+ SDRM_Te3[(t2 ) & 0xff] ^
+ rk[3];
+ }
+#endif /* ?FULL_UNROLL */
+ /*
+ * apply last round and
+ * map cipher state to byte array block:
+ */
+ s0 =
+ (SDRM_Te4[(t0 >> 24) ] & 0xff000000) ^
+ (SDRM_Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(t3 ) & 0xff] & 0x000000ff) ^
+ rk[0];
+ PUTUINT32(ct , s0);
+ s1 =
+ (SDRM_Te4[(t1 >> 24) ] & 0xff000000) ^
+ (SDRM_Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(t0 ) & 0xff] & 0x000000ff) ^
+ rk[1];
+ PUTUINT32(ct + 4, s1);
+ s2 =
+ (SDRM_Te4[(t2 >> 24) ] & 0xff000000) ^
+ (SDRM_Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(t1 ) & 0xff] & 0x000000ff) ^
+ rk[2];
+ PUTUINT32(ct + 8, s2);
+ s3 =
+ (SDRM_Te4[(t3 >> 24) ] & 0xff000000) ^
+ (SDRM_Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Te4[(t2 ) & 0xff] & 0x000000ff) ^
+ rk[3];
+ PUTUINT32(ct + 12, s3);
+}
+
+/*
+ * @fn SDRM_rijndaelDecrypt
+ * @brief 16 byte AES Decryption with round key
+ *
+ * @param rk [in]expanded round key
+ * @param Nr [in]numer of rounds
+ * @param ct [in]cipher text
+ * @param pt [out]plain text
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_rijndaelDecrypt(const cc_u32 rk[/*4*(Nr + 1)*/], int Nr, const cc_u8 ct[16], cc_u8 pt[16])
+{
+ cc_u32 s0, s1, s2, s3, t0, t1, t2, t3;
+#ifndef FULL_UNROLL
+ int r;
+#endif /* ?FULL_UNROLL */
+
+ /*
+ * map byte array block to cipher state
+ * and add initial round key:
+ */
+ s0 = GETUINT32(ct ) ^ rk[0];
+ s1 = GETUINT32(ct + 4) ^ rk[1];
+ s2 = GETUINT32(ct + 8) ^ rk[2];
+ s3 = GETUINT32(ct + 12) ^ rk[3];
+#ifdef FULL_UNROLL
+ /* round 1: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[ 4];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[ 5];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[ 6];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[ 7];
+ /* round 2: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[ 8];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[ 9];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[10];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[11];
+ /* round 3: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[12];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[13];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[14];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[15];
+ /* round 4: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[16];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[17];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[18];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[19];
+ /* round 5: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[20];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[21];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[22];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[23];
+ /* round 6: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[24];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[25];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[26];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[27];
+ /* round 7: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[28];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[29];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[30];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[31];
+ /* round 8: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[32];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[33];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[34];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[35];
+ /* round 9: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[36];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[37];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[38];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[39];
+ if (Nr > 10)
+ {
+ /* round 10: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[40];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[41];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[42];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[43];
+ /* round 11: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[44];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[45];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[46];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[47];
+ if (Nr > 12) {
+ /* round 12: */
+ s0 = SDRM_Td0[t0 >> 24] ^ SDRM_Td1[(t3 >> 16) & 0xff] ^ SDRM_Td2[(t2 >> 8) & 0xff] ^ SDRM_Td3[t1 & 0xff] ^ rk[48];
+ s1 = SDRM_Td0[t1 >> 24] ^ SDRM_Td1[(t0 >> 16) & 0xff] ^ SDRM_Td2[(t3 >> 8) & 0xff] ^ SDRM_Td3[t2 & 0xff] ^ rk[49];
+ s2 = SDRM_Td0[t2 >> 24] ^ SDRM_Td1[(t1 >> 16) & 0xff] ^ SDRM_Td2[(t0 >> 8) & 0xff] ^ SDRM_Td3[t3 & 0xff] ^ rk[50];
+ s3 = SDRM_Td0[t3 >> 24] ^ SDRM_Td1[(t2 >> 16) & 0xff] ^ SDRM_Td2[(t1 >> 8) & 0xff] ^ SDRM_Td3[t0 & 0xff] ^ rk[51];
+ /* round 13: */
+ t0 = SDRM_Td0[s0 >> 24] ^ SDRM_Td1[(s3 >> 16) & 0xff] ^ SDRM_Td2[(s2 >> 8) & 0xff] ^ SDRM_Td3[s1 & 0xff] ^ rk[52];
+ t1 = SDRM_Td0[s1 >> 24] ^ SDRM_Td1[(s0 >> 16) & 0xff] ^ SDRM_Td2[(s3 >> 8) & 0xff] ^ SDRM_Td3[s2 & 0xff] ^ rk[53];
+ t2 = SDRM_Td0[s2 >> 24] ^ SDRM_Td1[(s1 >> 16) & 0xff] ^ SDRM_Td2[(s0 >> 8) & 0xff] ^ SDRM_Td3[s3 & 0xff] ^ rk[54];
+ t3 = SDRM_Td0[s3 >> 24] ^ SDRM_Td1[(s2 >> 16) & 0xff] ^ SDRM_Td2[(s1 >> 8) & 0xff] ^ SDRM_Td3[s0 & 0xff] ^ rk[55];
+ }
+ }
+ rk += Nr << 2;
+#else /* !FULL_UNROLL */
+ /*
+ * Nr - 1 full rounds:
+ */
+ r = Nr >> 1;
+ for (;;)
+ {
+ t0 =
+ SDRM_Td0[(s0 >> 24) ] ^
+ SDRM_Td1[(s3 >> 16) & 0xff] ^
+ SDRM_Td2[(s2 >> 8) & 0xff] ^
+ SDRM_Td3[(s1 ) & 0xff] ^
+ rk[4];
+ t1 =
+ SDRM_Td0[(s1 >> 24) ] ^
+ SDRM_Td1[(s0 >> 16) & 0xff] ^
+ SDRM_Td2[(s3 >> 8) & 0xff] ^
+ SDRM_Td3[(s2 ) & 0xff] ^
+ rk[5];
+ t2 =
+ SDRM_Td0[(s2 >> 24) ] ^
+ SDRM_Td1[(s1 >> 16) & 0xff] ^
+ SDRM_Td2[(s0 >> 8) & 0xff] ^
+ SDRM_Td3[(s3 ) & 0xff] ^
+ rk[6];
+ t3 =
+ SDRM_Td0[(s3 >> 24) ] ^
+ SDRM_Td1[(s2 >> 16) & 0xff] ^
+ SDRM_Td2[(s1 >> 8) & 0xff] ^
+ SDRM_Td3[(s0 ) & 0xff] ^
+ rk[7];
+
+ rk += 8;
+ if (--r == 0)
+ {
+ break;
+ }
+
+ s0 =
+ SDRM_Td0[(t0 >> 24) ] ^
+ SDRM_Td1[(t3 >> 16) & 0xff] ^
+ SDRM_Td2[(t2 >> 8) & 0xff] ^
+ SDRM_Td3[(t1 ) & 0xff] ^
+ rk[0];
+ s1 =
+ SDRM_Td0[(t1 >> 24) ] ^
+ SDRM_Td1[(t0 >> 16) & 0xff] ^
+ SDRM_Td2[(t3 >> 8) & 0xff] ^
+ SDRM_Td3[(t2 ) & 0xff] ^
+ rk[1];
+ s2 =
+ SDRM_Td0[(t2 >> 24) ] ^
+ SDRM_Td1[(t1 >> 16) & 0xff] ^
+ SDRM_Td2[(t0 >> 8) & 0xff] ^
+ SDRM_Td3[(t3 ) & 0xff] ^
+ rk[2];
+ s3 =
+ SDRM_Td0[(t3 >> 24) ] ^
+ SDRM_Td1[(t2 >> 16) & 0xff] ^
+ SDRM_Td2[(t1 >> 8) & 0xff] ^
+ SDRM_Td3[(t0 ) & 0xff] ^
+ rk[3];
+ }
+#endif /* ?FULL_UNROLL */
+ /*
+ * apply last round and
+ * map cipher state to byte array block:
+ */
+ s0 =
+ (SDRM_Td4[(t0 >> 24) ] & 0xff000000) ^
+ (SDRM_Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Td4[(t1 ) & 0xff] & 0x000000ff) ^
+ rk[0];
+ PUTUINT32(pt , s0);
+ s1 =
+ (SDRM_Td4[(t1 >> 24) ] & 0xff000000) ^
+ (SDRM_Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Td4[(t2 ) & 0xff] & 0x000000ff) ^
+ rk[1];
+ PUTUINT32(pt + 4, s1);
+ s2 =
+ (SDRM_Td4[(t2 >> 24) ] & 0xff000000) ^
+ (SDRM_Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Td4[(t3 ) & 0xff] & 0x000000ff) ^
+ rk[2];
+ PUTUINT32(pt + 8, s2);
+ s3 =
+ (SDRM_Td4[(t3 >> 24) ] & 0xff000000) ^
+ (SDRM_Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
+ (SDRM_Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
+ (SDRM_Td4[(t0 ) & 0xff] & 0x000000ff) ^
+ rk[3];
+ PUTUINT32(pt + 12, s3);
+}
+
+/*
+ * @fn SDRM_AES128_Encryption
+ * @brief AES-128 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES128_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(10 + 1)];
+
+ SDRM_rijndaelKeySetupEnc(RoundKey, UserKey, 128);
+
+ SDRM_rijndaelEncrypt(RoundKey, 10, plainText, cipherText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_AES128_Decryption
+ * @brief AES-128 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES128_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(10 + 1)];
+
+ SDRM_rijndaelKeySetupDec(RoundKey, UserKey, 128);
+
+ SDRM_rijndaelDecrypt(RoundKey, 10, cipherText, plainText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_AES192_Encryption
+ * @brief AES-192 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES192_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(12 + 1)];
+
+ SDRM_rijndaelKeySetupEnc(RoundKey, UserKey, 192);
+
+ SDRM_rijndaelEncrypt(RoundKey, 12, plainText, cipherText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_AES192_Decryption
+ * @brief AES-192 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES192_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(12 + 1)];
+
+ SDRM_rijndaelKeySetupDec(RoundKey, UserKey, 192);
+
+ SDRM_rijndaelDecrypt(RoundKey, 12, cipherText, plainText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_AES256_Encryption
+ * @brief AES-256 Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES256_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(14 + 1)];
+
+ SDRM_rijndaelKeySetupEnc(RoundKey, UserKey, 256);
+
+ SDRM_rijndaelEncrypt(RoundKey, 14, plainText, cipherText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_AES256_Decryption
+ * @brief AES-256 Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES256_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[4*(14 + 1)];
+
+ SDRM_rijndaelKeySetupDec(RoundKey, UserKey, 256);
+
+ SDRM_rijndaelDecrypt(RoundKey, 14, cipherText, plainText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/bignum.c b/SPC/Src/base/bignum.c
new file mode 100755
index 0000000..09e959b
--- /dev/null
+++ b/SPC/Src/base/bignum.c
@@ -0,0 +1,2750 @@
+/**
+ * \file bignum.c
+ * @brief big number library
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/03
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "bignum.h"
+#include "fast_math.h"
+#include "DRMLog.h"
+
+
+#define _SPC_FILE_LOG
+//FILE* SPClogfile = NULL;
+extern DRMLOG_CTX SPCLogCTX;
+
+
+////////////////////////////////////////////////////////////////////////////
+// Global Variables
+////////////////////////////////////////////////////////////////////////////
+CRYPTOCORE_INTERNAL cc_u32 DWD_Zero[2] = {0, 0};
+CRYPTOCORE_INTERNAL cc_u32 DWD_One[2] = {1, 0};
+
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM _BN_Zero = {0, 1, 2, DWD_Zero};
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM _BN_One = {0, 1, 2, DWD_One};
+
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *BN_Zero = &_BN_Zero;
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *BN_One = &_BN_One;
+
+////////////////////////////////////////////////////////////////////////////
+// Local Functon Protypes
+////////////////////////////////////////////////////////////////////////////
+CRYPTOCORE_INTERNAL int SDRM_DWD_Classical_REDC(cc_u32 *pdDest, cc_u32 DstLen, cc_u32 *pdModulus, cc_u32 ModLen);
+
+#ifdef _OP64_NOTSUPPORTED
+
+#define SDRM_HL(A) (cc_u32)(((A) >> 16) & 0xffffu)
+#define SDRM_LL(A) (cc_u32)((A) & 0xffffu)
+#define SDRM_LH(A) (cc_u32)(((A) & 0xffffu) << 16)
+#define NOT(A) (~(A))
+
+/*
+ * @fn SDRM_DIGIT_Mul
+ * @brief Double-width UINT32 Multiplication
+ *
+ * \n Dest [out]destination, 2-cc_u32-size array
+ * \n Src1 [in]first element
+ * \n Src2 [in]second element
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_DIGIT_Mul(cc_u32 *Dest, cc_u32 Src1, cc_u32 Src2)
+{
+ cc_u32 Da, Db, R1, R0;
+
+ R1 = SDRM_HL(Src1) * SDRM_HL(Src2);
+ R0 = SDRM_LL(Src1) * SDRM_LL(Src2);
+
+ Da = SDRM_HL(Src1) * SDRM_LL(Src2);
+ Db = SDRM_LL(Src1) * SDRM_HL(Src2);
+
+ if ((Db += Da) < Da)
+ R1 += ((cc_u32)1) << 16;
+ if ((R0 += SDRM_LH(Db)) < SDRM_LH(Db))
+ R1++;
+
+ Dest[0] = R0;
+ Dest[1] = R1 + SDRM_HL(Db);
+
+ return;
+}
+
+/*
+ * @fn SDRM_DIGIT_Div
+ * @brief Doublue-width DWROD Division
+ *
+ * \n Src1 [in]upper-digit of dividend
+ * \n Src2 [in]lower-digit of dividend
+ * \n Div [in]divisor
+ */
+CRYPTOCORE_INTERNAL cc_u32 SDRM_DIGIT_Div(cc_u32 Src1, cc_u32 Src2, cc_u32 Div)
+{
+ cc_u32 Dq, Dr, Dx, Dy, Dt;
+
+ // Estimate high half of quotient
+ Dq = Src1 / (SDRM_HL(Div) + 1);
+
+ // Subtract the product of estimate and divisor from the dividend
+ Dr = Src1 - (SDRM_HL(Div) * Dq);
+ Dx = SDRM_HL(Dr);
+ Dy = SDRM_LH(Dr) + SDRM_HL(Src2);
+ if ((Dr = Dy - (SDRM_LL(Div) * Dq)) > Dy)
+ {
+ Dx--;
+ }
+
+ // Correct estimate
+ while ((Dx > 0) || ((Dx == 0) && (Dr >= Div)))
+ {
+ if((Dr -= Div) > NOT(Div))
+ {
+ Dx--;
+ }
+ Dq++;
+ }
+ Dt = SDRM_LH(Dq);
+
+ // Estimate low half of quotient
+ Dq = Dr / (SDRM_HL(Div) + 1);
+
+ // Subtract the product of estimate and divisor from the dividend
+ Dr -= SDRM_HL(Div) * Dq;
+ Dx = SDRM_HL(Dr);
+ Dy = SDRM_LH(Dr) + SDRM_LL(Src2);
+ if ((Dr = Dy - (SDRM_LL(Div) * Dq)) > Dy)
+ Dx--;
+
+ // Correct estimate
+ while ((Dx > 0) || ((Dx == 0) && (Dr >= Div)))
+ {
+ if ((Dr -= Div) > NOT(Div))
+ {
+ Dx--;
+ }
+ Dq++;
+ }
+
+ return (Dt + Dq);
+}
+
+/*
+ * @fn SDRM_DIGIT_Mod
+ * @brief Doublue-width DWROD Modular
+ *
+ * \n Src1 [in]upper-digit of dividend
+ * \n Src2 [in]lower-digit of dividend
+ * \n Div [in]divisor
+ */
+CRYPTOCORE_INTERNAL cc_u32 SDRM_DIGIT_Mod(cc_u32 Src1, cc_u32 Src2, cc_u32 Div)
+{
+ cc_u32 Dq, Dr, Dx, Dy;
+
+ // Estimate high half of quotient
+ Dq = Src1 / (SDRM_HL(Div) + 1);
+
+ // Subtract the from dividend the product of estimate and divisor
+ Dr = Src1 - (SDRM_HL(Div) * Dq);
+ Dx = SDRM_HL(Dr);
+ Dy = SDRM_LH(Dr) + SDRM_HL(Src2);
+ if ((Dr = Dy - (SDRM_LL(Div) * Dq)) > Dy)
+ {
+ Dx--;
+ }
+
+ // Correct estimate
+ while ((Dx > 0) || ((Dx == 0) && (Dr >= Div)))
+ {
+ if ((Dr -= Div) > NOT(Div))
+ {
+ Dx--;
+ }
+ }
+
+ // Estimate low half of quotient
+ Dq = Dr / (SDRM_HL(Div) + 1);
+
+ // Subtract the from dividend the product of estimate and divisor
+ Dr -= SDRM_HL(Div) * Dq;
+ Dx = SDRM_HL(Dr);
+ Dy = SDRM_LH(Dr) + SDRM_LL(Src2);
+ if ((Dr = Dy - (SDRM_LL(Div) * Dq)) > Dy)
+ {
+ Dx--;
+ }
+
+ // Correct estimate
+ while ((Dx > 0) || ((Dx == 0) && (Dr >= Div)))
+ {
+ if ((Dr -= Div) > NOT(Div) )
+ {
+ Dx--;
+ }
+ }
+
+ return Dr;
+}
+
+#endif //_OP64_NOTSUPPORTED
+
+/*
+ * @fn SDRM_DWD_Cmp
+ * @brief cc_u32 Array Comparison
+ *
+ * @param pdSrc1 [in]first element
+ * @param dSrcLen1 [in]legnth of pdSrc1
+ * @param pdSrc2 [in]second element
+ * @param dSrcLen2 [in]legnth of pdSrc2
+ *
+ * @return 1 if pdSrc1 is larger than pdSrc2
+ * \n 0 if same
+ * \n -1 if pdSrc2 is larger than pdSrc1
+ */
+static int SDRM_DWD_Cmp(cc_u32 *pdSrc1, cc_u32 dSrcLen1, cc_u32 *pdSrc2, cc_u32 dSrcLen2)
+{
+ cc_u32 i;
+
+ //When the length is different
+ if (dSrcLen1 >= dSrcLen2)
+ {
+ for (i = dSrcLen1 - 1; i != dSrcLen2 - 1; i--)
+ {
+ if (pdSrc1[i])
+ {
+ return +1;
+ }
+ }
+ }
+ else
+ {
+ for (i = dSrcLen2 - 1; i != dSrcLen1 - 1; i--)
+ {
+ if (pdSrc2[i])
+ {
+ return -1;
+ }
+ }
+ }
+
+ //Compare common digits
+ for (; i != (cc_u32)-1; i--)
+ {
+ if (pdSrc1[i] == pdSrc2[i])
+ {
+ continue;
+ }
+ else
+ {
+ if (pdSrc1[i] > pdSrc2[i])
+ {
+ return +1;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * @fn SDRM_DWD_SHL
+ * @brief Shift left the digit array
+ *
+ * @param pdDest [out]destination
+ * @param pdSrc [in]source
+ * @param dSrcLen [in]legnth of pdSrc
+ * @param dNumOfShift [in]shift amount
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_SHL(cc_u32 *pdDest, cc_u32 *pdSrc, cc_u32 dSrcLen, cc_u32 dNumOfShift)
+{
+ cc_u32 i = dSrcLen - 1;
+ cc_u32 dRet;
+
+ if (dSrcLen == 0)
+ {
+ *pdDest = 0;
+ return 0;
+ }
+
+ dRet = pdSrc[i] >> (SDRM_BitsInDWORD - dNumOfShift);
+
+ for (; i != 0; i--)
+ {
+ pdDest[i] = (pdSrc[i] << dNumOfShift) ^ (pdSrc[i - 1] >> (SDRM_BitsInDWORD - dNumOfShift));
+ }
+
+ pdDest[i] = pdSrc[i] << dNumOfShift;
+
+ return dRet;
+}
+
+/*
+ * @fn SDRM_DWD_SHR
+ * @brief Shift right the digit array
+ *
+ * @param pdDest [out]destination
+ * @param pdSrc [in]source
+ * @param dSrcLen [in]legnth of pdSrc
+ * @param dNumOfShift [in]shift amount
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_SHR(cc_u32 *pdDest, cc_u32 *pdSrc, cc_u32 dSrcLen, cc_u32 dNumOfShift)
+{
+ cc_u32 i = 0;
+ cc_u32 dRet;
+
+ dRet = pdSrc[i] << (SDRM_BitsInDWORD - dNumOfShift);
+
+ for (; i < dSrcLen - 1; i++)
+ {
+ pdDest[i] = (pdSrc[i] >> dNumOfShift) ^ (pdSrc[i + 1] << (SDRM_BitsInDWORD - dNumOfShift));
+ }
+
+ pdDest[i] = pdSrc[i] >> dNumOfShift;
+
+ return dRet;
+}
+
+/*
+ * @fn SDRM_DWD_Add
+ * @brief Add two digit array
+ *
+ * @param pdDest [out]destination
+ * @param pdSrc1 [in]first element
+ * @param dSrcLen1 [in]legnth of pdSrc1
+ * @param pdSrc2 [in]second element
+ * @param dSrcLen2 [in]legnth of pdSrc2
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_Add(cc_u32 *pdDest, cc_u32 *pdSrc1, cc_u32 dSrcLen1, cc_u32 *pdSrc2, cc_u32 dSrcLen2)
+{
+ cc_u32 i;
+ cc_u32 dCarry = 0, dTemp;
+
+ //add low digits
+ for (i = 0; i < dSrcLen2; i++)
+ {
+ if ((pdSrc2[i] == ((cc_u32)-1)) && (dCarry))
+ {
+ pdDest[i] = pdSrc1[i];
+ }
+ else
+ {
+ dTemp = pdSrc2[i] + dCarry;
+ pdDest[i] = pdSrc1[i] + dTemp;
+ dCarry = (pdDest[i] < dTemp ) ? 1 : 0;
+ }
+ }
+
+ //copy high digits
+ if (dSrcLen1 > i)
+ {
+ memcpy(pdDest + i, pdSrc1 + i, (dSrcLen1 - i) * SDRM_SIZE_OF_DWORD);
+ }
+
+ //process carry
+ if (!dCarry)
+ {
+ return 0;
+ }
+ else
+ {
+ for (i = dSrcLen2; i < dSrcLen1; i++)
+ {
+ if (++pdDest[i])
+ {
+ return 0;
+ }
+ }
+ }
+
+ return 1;
+}
+
+/*
+ * @fn SDRM_DWD_Sub
+ * @brief subtract digit array
+ *
+ * @param pdDest [out]destination
+ * @param pdSrc1 [in]first element
+ * @param dSrcLen1 [in]legnth of pdSrc1
+ * @param pdSrc2 [in]second element
+ * @param dSrcLen2 [in]legnth of pdSrc2
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_Sub(cc_u32 *pdDest, cc_u32 *pdSrc1, cc_u32 dSrcLen1, cc_u32 *pdSrc2, cc_u32 dSrcLen2)
+{
+ cc_u32 i;
+ cc_u32 dCarry = 0, dTemp;
+
+ //subtract low digits
+ for (i = 0; i < dSrcLen2; i++)
+ {
+ if (pdSrc2[i] + dCarry == 0)
+ {
+ pdDest[i] = pdSrc1[i];
+ } else
+ {
+ dTemp = pdSrc2[i] + dCarry;
+ pdDest[i] = pdSrc1[i] - dTemp;
+ dCarry = ((pdDest[i]) > ~(dTemp)) ? 1 : 0;
+ }
+ }
+
+ //copy high digits
+ if (dSrcLen1 > i)
+ {
+ memcpy(pdDest + i, pdSrc1 + i, (dSrcLen1 - i) * SDRM_SIZE_OF_DWORD);
+ }
+
+ //process carry
+ if (!dCarry)
+ {
+ return 0;
+ }
+ else
+ {
+ for (i = dSrcLen2 ; i < dSrcLen1; i++)
+ {
+ if (pdDest[i]--)
+ {
+ return 0;
+ }
+ }
+ }
+
+ return (~0);
+}
+
+/*
+ * @fn SDRM_DWD_MulAdd
+ * @brief Add multiple
+ *
+ * @param pdDest [out]destination
+ * @param dDstLen [in]legnth of pbDest
+ * @param pdSrc [in]source
+ * @param dSrcLen [in]legnth of pdSrc
+ * @param dMultiplier [in]multiplier
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_MulAdd(cc_u32 *pdDest, cc_u32 dDstLen, cc_u32 *pdSrc, cc_u32 dSrcLen, cc_u32 dMultiplier)
+{
+ cc_u32 i;
+ cc_u32 pdDigit[2], dTemp = 0;
+
+ //Multiplication part
+ for (i = 0; i < dSrcLen; i++)
+ {
+ SDRM_DIGIT_Mul(pdDigit, dMultiplier, pdSrc[i]);
+ if ((dTemp += pdDigit[0]) < pdDigit[0])
+ {
+ pdDigit[1]++;
+ }
+
+ if ((pdDest[i] += dTemp) < dTemp)
+ {
+ pdDigit[1]++;
+ }
+
+ dTemp = pdDigit[1];
+ }
+
+ if (i == dDstLen)
+ {
+ return dTemp;
+ }
+
+ //process top digit
+ if ((pdDest[i] += dTemp) >= dTemp)
+ {
+ return 0;
+ }
+
+ for (i++; i < dDstLen; i++)
+ {
+ if ((++pdDest[i]) != 0)
+ {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/*
+ * @fn SDRM_DWD_MulSub
+ * @brief Multiply and Subtract Digit Array
+ *
+ * @param pdDest [out]destination
+ * @param dDstLen [in]legnth of pbDest
+ * @param pdSrc [in]source
+ * @param dSrcLen [in]legnth of pdSrc
+ * @param dMultiplier [in]multiplier
+ *
+ * @return carry
+ */
+static cc_u32 SDRM_DWD_MulSub(cc_u32 *pdDest, cc_u32 dDstLen, cc_u32 *pdSrc, cc_u32 dSrcLen, cc_u32 dMultiplier)
+{
+ cc_u32 i;
+ cc_u32 pdDigit[2], dTemp = 0;
+
+ //Multiplication part
+ for (i = 0; i < dSrcLen; i++)
+ {
+ SDRM_DIGIT_Mul(pdDigit, dMultiplier, pdSrc[i]);
+ dTemp += pdDigit[0];
+
+ if (dTemp < pdDigit[0])
+ {
+ pdDigit[1]++;
+ }
+
+ if (pdDest[i] < dTemp)
+ {
+ pdDigit[1]++;
+ }
+
+ pdDest[i] -= dTemp;
+ dTemp = pdDigit[1];
+ }
+
+ if (i == dDstLen)
+ {
+ return dTemp;
+ }
+
+ //process top digit
+ if (pdDest[i] >= dTemp)
+ {
+ pdDest[i] -= dTemp;
+
+ return 0;
+ }
+ else
+ {
+ pdDest[i] -= dTemp;
+ }
+
+ for (i++; i < dDstLen; i++)
+ {
+ if ((pdDest[i]--) != 0)
+ {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/*
+ * @fn SDRM_DWD_Mul
+ * @brief Multiply tow Digit array
+ *
+ * @param pdDest [out]destination
+ * @param pdSrc1 [in]first element
+ * @param dSrcLen1 [in]legnth of pdSrc1
+ * @param pdSrc2 [in]second element
+ * @param dSrcLen2 [in]legnth of pdSrc2
+ *
+ * @return void
+ */
+static void SDRM_DWD_Mul(cc_u32 *pdDest, cc_u32 *pdSrc1, cc_u32 dSrcLen1, cc_u32 *pdSrc2, cc_u32 dSrcLen2)
+{
+ cc_u32 i, j;
+ cc_u32 pdDigit[2], dTemp;
+
+ memset(pdDest, 0, (dSrcLen1 + dSrcLen2) * SDRM_SIZE_OF_DWORD);
+
+ for (j = 0; j < dSrcLen2; j++)
+ {
+ dTemp = 0;
+ for (i = 0; i < dSrcLen1; i++)
+ {
+ SDRM_DIGIT_Mul(pdDigit, pdSrc1[i], pdSrc2[j]);
+ if ((dTemp += pdDigit[0]) < pdDigit[0])
+ {
+ pdDigit[1]++;
+ }
+
+ if ((pdDest[i + j] += dTemp) < dTemp)
+ {
+ pdDigit[1]++;
+ }
+
+ dTemp = pdDigit[1];
+ }
+ pdDest[i + j] = dTemp;
+ }
+}
+
+/*
+ * @fn SDRM_DWD_Div
+ * @brief Multiply tow Digit array
+ *
+ * @param pdDest [out]quotient
+ * @param pdRem [out]remainder
+ * @param pdSrc1 [in]divisor
+ * @param dSrcLen1 [in]legnth of pdSrc1
+ * @param pdSrc2 [in]dividend
+ * @param dSrcLen2 [in]legnth of pdSrc2
+ *
+ * @return 0 if reaminder is zero
+ * \n 1 otherwise
+ */
+static cc_u32 SDRM_DWD_Div(cc_u32 *pdDest, cc_u32 *pdRem,
+ cc_u32 *pdSrc1, cc_u32 dSrcLen1,
+ cc_u32 *pdSrc2, cc_u32 dSrcLen2)
+{
+ cc_u32 i, q, c, dNum_of_Shift = 0;
+ cc_u32 *C = (cc_u32*)malloc(SDRM_SIZE_OF_DWORD * 2 * (MAX2(dSrcLen1, dSrcLen2) + 2));
+
+ if (!C)
+ {
+ return (cc_u32)CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_DWD_Copy(C, pdSrc1, dSrcLen1);
+ C[dSrcLen1] = 0;
+ c = dSrcLen1 + 1;
+
+ //Remove lowest '0's
+ for (i = dSrcLen2 * SDRM_BitsInDWORD-1; !SDRM_CheckBitUINT32(pdSrc2, i); i--, dNum_of_Shift++);
+
+ if (dNum_of_Shift)
+ {
+ SDRM_DWD_SHL(C, C, c, dNum_of_Shift);
+ SDRM_DWD_SHL(pdSrc2, pdSrc2, dSrcLen2, dNum_of_Shift);
+ }
+
+ for (i = c-dSrcLen2 - 1; i != (cc_u32)-1; i--)
+ {
+ if (C[dSrcLen2 + i]==pdSrc2[dSrcLen2 - 1] )
+ {
+ q = (cc_u32)-1;
+ }
+ else
+ {
+ q = SDRM_DIGIT_Div(C[dSrcLen2 + i], C[dSrcLen2 + i - 1], pdSrc2[dSrcLen2 - 1]);
+ }
+
+ if (SDRM_DWD_MulSub(C + i, dSrcLen2 + 1, pdSrc2, dSrcLen2, q) )
+ {
+ q--;
+ if (!SDRM_DWD_Add(C + i, C + i, dSrcLen2 + 1, pdSrc2, dSrcLen2))
+ {
+ q--;
+ SDRM_DWD_Add(C + i, C + i, dSrcLen2 + 1, pdSrc2, dSrcLen2);
+ }
+ }
+ pdDest[i] = q;
+ }
+
+ //Recover lowest '0's
+ if (dNum_of_Shift)
+ {
+ SDRM_DWD_SHR(pdSrc2, pdSrc2, dSrcLen2, dNum_of_Shift);
+ SDRM_DWD_SHR(C, C, dSrcLen2, dNum_of_Shift);
+ }
+
+ if (pdRem)
+ {
+ SDRM_DWD_Copy(pdRem, C, dSrcLen2);
+ }
+
+ for (i = 0; i < c; i++)
+ {
+ if (C[i])
+ {
+ free(C);
+
+ return 1;
+ }
+ }
+ free(C);
+
+ return 0;
+}
+
+/*
+ * @fn SDRM_DWD_Classical_REDC
+ * @brief Classical Modular Reduction Algorithm
+ *
+ * @param pdDest [out]destination
+ * @param DstLen [in]length of pdDest
+ * @param pdModulus [in]modulus
+ * @param ModLen [in]legnth of pdModulus
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_DWD_Classical_REDC(cc_u32 *pdDest, cc_u32 DstLen, cc_u32 *pdModulus, cc_u32 ModLen)
+{
+ cc_u32 i;
+ cc_u32 MSB=0, TTTT=0, FLAG=0, D_Quotient, MSD_Modulus;
+
+ if (DstLen < ModLen)
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if (pdDest[DstLen - 1] >= pdModulus[ModLen - 1])
+ {
+ FLAG++;
+ TTTT = pdDest[DstLen];
+ pdDest[DstLen++] = 0;
+ }
+
+ for (i = SDRM_BitsInDWORD - 1; i != (cc_u32)-1; i--)
+ {
+ if (pdModulus[ModLen - 1] & ((cc_u32)1 << i))
+ {
+ break;
+ }
+
+ MSB++;
+ }
+
+ if (MSB)
+ {
+ SDRM_DWD_SHL(pdModulus, pdModulus, ModLen, MSB);
+ SDRM_DWD_SHL(pdDest, pdDest, DstLen, MSB);
+ }
+
+ // Step 2 : main part
+ MSD_Modulus = pdModulus[ModLen - 1];
+ for (i = DstLen - ModLen - 1; i != (cc_u32)-1; i--)
+ {
+ // Step 2-1 : Estimate D_Quotient
+ if (pdDest[ModLen + i] == MSD_Modulus)
+ {
+ D_Quotient = (cc_u32)-1;
+ }
+ else
+ {
+ D_Quotient = SDRM_DIGIT_Div(pdDest[ModLen + i], pdDest[ModLen + i - 1], MSD_Modulus);
+ }
+
+ // Step 2-2 : Make pdDest <- pdDest-D_Quotient*pdModulus
+ if (SDRM_DWD_MulSub(pdDest + i, ModLen + 1, pdModulus, ModLen, D_Quotient) )
+ {
+ if (SDRM_DWD_Add(pdDest + i, pdDest + i, ModLen + 1, pdModulus, ModLen) == 0)
+ {
+ SDRM_DWD_Add(pdDest + i, pdDest + i, ModLen + 1, pdModulus, ModLen);
+ }
+ }
+ }
+
+ // Step 4 : inverse part of Step 2
+ if (MSB)
+ {
+ SDRM_DWD_SHR(pdModulus, pdModulus, ModLen, MSB);
+ SDRM_DWD_SHR(pdDest, pdDest, ModLen, MSB);
+ }
+
+ // Step 4.5 : inverse part of Step 1.5
+ if (FLAG)
+ {
+ DstLen--;
+ pdDest[DstLen] = TTTT;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DIGIT_Gcd
+ * @brief get gcd of two digits
+ *
+ * @param s1 [in]first element
+ * @param s2 [in]second element
+ *
+ * @return gcd
+ */
+CRYPTOCORE_INTERNAL cc_u32 SDRM_DIGIT_Gcd(cc_u32 s1, cc_u32 s2)
+ {
+ cc_u32 dTemp;
+
+ if (s1 < s2)
+ {
+ dTemp = s1;
+ s1 = s2;
+ s2 = dTemp;
+ }
+
+ while(s2)
+ {
+ dTemp = s1 % s2;
+ s1 = s2;
+ s2 = dTemp;
+ }
+
+ return s1;
+}
+
+/*
+ * @fn SDRM_PrintBN
+ * @brief Show out a Big Number
+ *
+ * @param level [in]log level
+ * @param s [in]title
+ * @param bn [in]big number to show out
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_PrintBN(const char* s, SDRM_BIG_NUM* bn)
+{
+ cc_u32 i;
+
+#ifdef _SPC_FILE_LOG
+ fprintf(SPCLogCTX.file,"\n");
+ fprintf(SPCLogCTX.file,"%15s %d :", s, (int)(bn->Length));
+#else
+ printf("%15s %d :", s, (int)(bn->Length));
+#endif
+ for (i = 0; i < bn->Length ; i++)
+ {
+#ifdef _SPC_FILE_LOG
+ fprintf(SPCLogCTX.file,"%08x ", (int)(bn->pData[bn->Length - i -1]));
+#else
+ printf("%08x ", (int)(bn->pData[bn->Length - i -1]));
+#endif
+ }
+
+#ifdef _SPC_FILE_LOG
+ fprintf(SPCLogCTX.file, "\n");
+ fflush(SPCLogCTX.file);
+
+#else
+ printf("\n");
+#endif
+
+ return;
+}
+
+/*
+ * @fn SDRM_BN2OS
+ * @brief Convert Big Number to Octet String
+ *
+ * @param BN_Src [in]source integer
+ * @param dDstLen [in]Byte-length of pbDst
+ * @param pbDst [out]output octet string
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if arrary is too small
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN2OS(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst)
+{
+ cc_u32 i;
+
+ if ((BN_Src == NULL) || (pbDst == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Src);
+
+ if (BN_Src->sign)
+ {
+ pbDst[0] = '-';
+ dDstLen += 1;
+ }
+
+ if ((SDRM_SIZE_OF_DWORD * BN_Src->Length) <= dDstLen)
+ {
+ memset(pbDst, 0, dDstLen);
+
+ for (i = 0; (dDstLen != 0) && (i < BN_Src->Length); i++)
+ {
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i] ) & 0xff);
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>> 8) & 0xff);
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>>16) & 0xff);
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>>24) & 0xff);
+ }
+ }
+ else
+ {
+ i = (SDRM_SIZE_OF_DWORD * BN_Src->Length) - dDstLen;
+ if (i >= SDRM_SIZE_OF_DWORD)
+ {
+ return CRYPTO_BUFFER_TOO_SMALL;
+ }
+ else if ( BN_Src->pData[BN_Src->Length - 1] >> (8 * (SDRM_SIZE_OF_DWORD - i)))
+ {
+ return CRYPTO_BUFFER_TOO_SMALL;
+ }
+
+ for (i = 0;; i++)
+ {
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i] ) & 0xff);
+ if (dDstLen == 0)
+ {
+ break;
+ }
+
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>> 8) & 0xFF);
+ if (dDstLen == 0)
+ {
+ break;
+ }
+
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>>16) & 0xFF);
+ if (dDstLen == 0)
+ {
+ break;
+ }
+
+ pbDst[--dDstLen] = (cc_u8)((BN_Src->pData[i]>>24) & 0xFF);
+ if (dDstLen == 0)
+ {
+ break;
+ }
+ }
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_OS2BN
+ * @brief Convert Octet String to Big Number
+ *
+ * @param pbSrc [in]source octet string
+ * @param dSrcLen [in]Byte-length of pbSrc
+ * @param BN_Dst [out]output big number
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if arrary is too small
+ */
+CRYPTOCORE_INTERNAL int SDRM_OS2BN(cc_u8 *pbSrc, cc_u32 dSrcLen, SDRM_BIG_NUM *BN_Dst)
+{
+ cc_u32 i;
+ int ret;
+
+ if ((pbSrc == NULL) || (BN_Dst == NULL))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ SDRM_BN_Clr(BN_Dst);
+
+ for (i = 0; i < dSrcLen; i++)
+ {
+ ret = SDRM_BN_SHL(BN_Dst, BN_Dst, 8);
+
+ if (ret != CRYPTO_SUCCESS)
+ {
+ return ret;
+ }
+
+ BN_Dst->pData[0] ^= pbSrc[i];
+ if (BN_Dst->Length == 0)
+ BN_Dst->Length = 1;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_I2OSP
+ * @brief Converts a nonnonegative integer to an octet string of a specified length
+ *
+ * @param BN_Src [in]nonnegative integer to be converted
+ * @param dDstLen [in]intended length of the resulting octet string
+ * @param pbDst [out]corresponding octet string of length dDstLen
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_I2OSP(SDRM_BIG_NUM *BN_Src, cc_u32 dDstLen, cc_u8 *pbDst)
+{
+ int count;
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Src);
+
+ count = 0;
+ for (dDstLen--; (int)dDstLen >= 0; dDstLen--)
+ {
+ pbDst[count++] = SDRM_CheckByteUINT32(BN_Src->pData, dDstLen);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Clr
+ * @brief Clear the SDRM_BIG_NUM structure
+ *
+ * @param BN_Src [in]source
+ *
+ * @return CRYPTO_SUCCESS
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Clr(SDRM_BIG_NUM* BN_Src)
+{
+ BN_Src->sign = 0;
+ BN_Src->Length = 0;
+
+ memset(BN_Src->pData, 0, BN_Src->Size * SDRM_SIZE_OF_DWORD);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Copy
+ * @brief copy SDRM_BIG_NUM
+ *
+ * @param BN_Dest [out]destination
+ * @param BN_Src [in]source
+ *
+ * @return CRYPTO_SUCCESS
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Copy(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src)
+{
+ if (BN_Src->Length > BN_Dest->Size)
+ {
+ return CRYPTO_BUFFER_TOO_SMALL;
+ }
+
+ BN_Dest->sign = BN_Src->sign;
+ BN_Dest->Length = BN_Src->Length;
+
+ memcpy(BN_Dest->pData, BN_Src->pData, BN_Src->Length * SDRM_SIZE_OF_DWORD);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Alloc
+ * @brief allocate big number from buffer
+ *
+ * @param pbSrc [in]start pointer of buffer
+ * @param dSize [in]buffer size of big number
+ *
+ * @return pointer of SDRM_BIG_NUM structure
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *SDRM_BN_Alloc(cc_u8* pbSrc, cc_u32 dSize)
+{
+ SDRM_BIG_NUM *BN_Dest = (SDRM_BIG_NUM*)(void*)pbSrc;
+
+ if (pbSrc == NULL)
+ {
+ return NULL;
+ }
+
+ memset(BN_Dest, 0, sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD);
+ BN_Dest->pData = (cc_u32*)(void*)(pbSrc + sizeof(SDRM_BIG_NUM));
+ BN_Dest->Size = dSize;
+
+ return BN_Dest;
+}
+
+/*
+ * @fn SDRM_BN_Init
+ * @brief Allocate a new big number object
+ *
+ * @param dSize [in]buffer size of big number
+ *
+ * @return pointer of SDRM_BIG_NUM structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_NUM *SDRM_BN_Init(cc_u32 dSize)
+{
+ cc_u32 AllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+ cc_u8 *pbBuf = (cc_u8*)malloc(AllocSize);
+ SDRM_BIG_NUM *BN_Src = (SDRM_BIG_NUM*)(void*)pbBuf;
+ if (BN_Src == NULL)
+ {
+ return NULL;
+ }
+
+ memset(BN_Src, 0, AllocSize);
+ BN_Src->pData = (cc_u32*)(void*)(pbBuf + sizeof(SDRM_BIG_NUM));
+ BN_Src->Size = dSize;
+
+ return BN_Src;
+}
+
+/*
+ * @fn SDRM_BN_Cmp
+ * @brief Compare two Big Number
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return 1 if BN_Src1 is larger than pdSrc2
+ * \n 0 if same
+ * \n -1 if BN_Src2 is larger than pdSrc1
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Cmp(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+{
+ if (BN_Src1->Length >= BN_Src2->Length)
+ {
+ return SDRM_DWD_Cmp(BN_Src1->pData, BN_Src1->Length, BN_Src2->pData, BN_Src2->Length);
+ }
+ else
+ {
+ return -SDRM_DWD_Cmp(BN_Src2->pData, BN_Src2->Length, BN_Src1->pData, BN_Src1->Length);
+ }
+}
+
+/*
+ * @fn SDRM_BN_Cmp_sign
+ * @brief Compare two Big Number considering sign
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return 1 if BN_Src1 is larger than pdSrc2
+ * \n 0 if same
+ * \n -1 if BN_Src2 is larger than pdSrc1
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Cmp_sign(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+{
+ if (BN_Src1->sign > BN_Src2->sign)
+ {
+ return -1;
+ }
+ else if (BN_Src1->sign < BN_Src2->sign)
+ {
+ return 1;
+ }
+
+ if ( BN_Src1->Length >= BN_Src2->Length )
+ {
+ return SDRM_DWD_Cmp(BN_Src1->pData, BN_Src1->Length, BN_Src2->pData, BN_Src2->Length);
+ }
+ else
+ {
+ return -SDRM_DWD_Cmp(BN_Src2->pData, BN_Src2->Length, BN_Src1->pData, BN_Src1->Length);
+ }
+}
+
+/*
+ * @fn SDRM_BN_Rand
+ * @brief Generate simple random number
+ *
+ * @param BN_Dst [out]destination
+ * @param BitLen [in]bit-length of generated random number
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Rand(SDRM_BIG_NUM *BN_Dst, cc_u32 BitLen)
+{
+ cc_u32 i, j;
+
+ SDRM_BN_Clr(BN_Dst);
+
+ for (i = 0; i < (BitLen / SDRM_BitsInDWORD); i++)
+ {
+ BN_Dst->pData[i] = rand() ^ (rand() << 11);
+ }
+
+ j = BitLen % SDRM_BitsInDWORD;
+ if (j)
+ {
+ BN_Dst->pData[i] = rand() ^ (rand() << 11);
+ BN_Dst->pData[i] &= (((cc_u32)1) << j) - 1;
+ i++;
+ }
+
+ BN_Dst->Length = ((BitLen - 1) / SDRM_BitsInDWORD) + 1;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_SHL
+ * @brief Big Number Shift Left
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param NumOfShift [in]shift amount
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_SHL(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift)
+{
+ cc_u32 t;
+
+ if (!BN_Src->Length)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Zero);
+ return CRYPTO_SUCCESS;
+ }
+
+ BN_Dst->sign = BN_Src->sign;
+
+ t = NumOfShift % SDRM_BitsInDWORD;
+ if (t)
+ {
+ BN_Dst->Length = BN_Src->Length;
+ t = SDRM_DWD_SHL(BN_Dst->pData, BN_Src->pData, BN_Src->Length, t);
+ if (t)
+ {
+ BN_Dst->pData[BN_Dst->Length++] = t;
+ }
+ }
+
+ t = NumOfShift / SDRM_BitsInDWORD;
+ if (t)
+ {
+ BN_Dst->Length = BN_Src->Length + t;
+
+ memcpy((BN_Dst->pData) + t, (BN_Src->pData), (BN_Dst->Length - t) * SDRM_SIZE_OF_DWORD);
+
+ memset(BN_Dst->pData, 0, t * SDRM_SIZE_OF_DWORD);
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_SHR
+ * @brief Big Number Shift Right
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param NumOfShift [in]shift amount
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_SHR(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, cc_u32 NumOfShift)
+{
+ cc_u32 t;
+
+ if (!BN_Src->Length)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Src);
+ return CRYPTO_SUCCESS;
+ }
+
+ t = NumOfShift / SDRM_BitsInDWORD;
+ if (t)
+ {
+ if (t >= BN_Src->Length)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Zero);
+ return CRYPTO_SUCCESS;
+ }
+
+ memcpy(BN_Dst->pData, (BN_Src->pData) + t, (BN_Src->Length - t) * SDRM_SIZE_OF_DWORD);
+
+ BN_Dst->Length = BN_Src->Length - t;
+ BN_Dst->sign = BN_Src->sign;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+ }
+ else
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Src);
+ }
+
+ t = NumOfShift % SDRM_BitsInDWORD;
+ if (t)
+ {
+ SDRM_DWD_SHR(BN_Dst->pData, BN_Dst->pData, BN_Dst->Length, t);
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Add
+ * @brief Big Number Addition
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Add(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+{
+ cc_u32 carry, dSize, dAllocSize;
+ SDRM_BIG_NUM *temp, *temp_Src1, *temp_Src2;
+ cc_u8 *pbBuf;
+
+ dSize = MAX2(BN_Src1->Size, BN_Src2->Size);
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(dAllocSize * 2);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ temp_Src1 = SDRM_BN_Alloc(pbBuf, dSize);
+ temp_Src2 = SDRM_BN_Alloc(pbBuf + dAllocSize, dSize);
+
+ if (!BN_Src1->Length)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Src2);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ if (!BN_Src2->Length) {
+ SDRM_BN_Copy(BN_Dst, BN_Src1);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ SDRM_BN_Copy(temp_Src1, BN_Src1);
+ SDRM_BN_Copy(temp_Src2, BN_Src2);
+
+ if (temp_Src1->sign ^ temp_Src2->sign)
+ {
+ if (temp_Src1->sign)
+ {
+ temp = temp_Src1;
+ temp_Src1 = temp_Src2;
+ temp_Src2 = temp;
+ }
+
+ if (SDRM_BN_Cmp(temp_Src1, temp_Src2) < 0)
+ {
+ SDRM_DWD_Sub(BN_Dst->pData, temp_Src2->pData, temp_Src2->Length, temp_Src1->pData, temp_Src1->Length);
+ BN_Dst->sign = 1;
+ BN_Dst->Length = temp_Src2->Length;
+ }
+ else
+ {
+ SDRM_DWD_Sub(BN_Dst->pData, temp_Src1->pData, temp_Src1->Length, temp_Src2->pData, temp_Src2->Length);
+ BN_Dst->sign = 0;
+ BN_Dst->Length = temp_Src1->Length;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ if (temp_Src1->sign)
+ {
+ BN_Dst->sign = 1;
+ }
+ else
+ {
+ BN_Dst->sign = 0;
+ }
+
+ if (temp_Src1->Length > temp_Src2->Length)
+ {
+ BN_Dst->Length = temp_Src1->Length;
+ carry = SDRM_DWD_Add(BN_Dst->pData, temp_Src1->pData, temp_Src1->Length, temp_Src2->pData, temp_Src2->Length);
+ if (carry)
+ {
+ BN_Dst->pData[BN_Dst->Length++] = carry;
+ }
+ }
+ else
+ {
+ BN_Dst->Length = temp_Src2->Length;
+ carry = SDRM_DWD_Add(BN_Dst->pData, temp_Src2->pData, temp_Src2->Length, temp_Src1->pData, temp_Src1->Length);
+ if ( carry )
+ {
+ BN_Dst->pData[BN_Dst->Length++] = carry;
+ }
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Sub
+ * @brief Big Number Subtraction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Sub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+{
+ int i, add = 0, neg = 0, dSize, dAllocSize;
+ SDRM_BIG_NUM *temp, *temp_Src1, *temp_Src2;
+ cc_u8 *pbBuf;
+
+ dSize = MAX2(BN_Src1->Size, BN_Src2->Size);
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+ pbBuf = (cc_u8*)malloc(dAllocSize * 2);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ temp_Src1 = SDRM_BN_Alloc(pbBuf, dSize);
+ temp_Src2 = SDRM_BN_Alloc(pbBuf + dAllocSize, dSize);
+
+ SDRM_BN_Copy(temp_Src1, BN_Src1);
+ SDRM_BN_Copy(temp_Src2, BN_Src2);
+
+ if (BN_Src1 == BN_Src2)
+ {
+ SDRM_BN_Clr(BN_Dst);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ //to process sign
+ if (temp_Src1->sign)
+ {
+ if (temp_Src2->sign)
+ {
+ temp = temp_Src1;
+ temp_Src1 = temp_Src2;
+ temp_Src2 = temp;
+ }
+ else
+ {
+ add = 1;
+ neg = 1;
+ }
+ }
+ else
+ {
+ if (temp_Src2->sign)
+ {
+ add = 1;
+ neg = 0;
+ }
+ }
+
+ if (add)
+ {
+ i = (temp_Src1->Length | temp_Src2->Length) +1;
+ if (i)
+ {
+ SDRM_BN_Add(BN_Dst, temp_Src1, temp_Src2);
+ }
+ else
+ {
+ SDRM_BN_Add(BN_Dst, temp_Src2, temp_Src1);
+ }
+
+ BN_Dst->sign = neg;
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ if (SDRM_BN_Cmp(temp_Src1, temp_Src2) < 0)
+ {
+ SDRM_DWD_Sub(BN_Dst->pData, temp_Src2->pData, temp_Src2->Length, temp_Src1->pData, temp_Src1->Length);
+ BN_Dst->sign = 1;
+ BN_Dst->Length = temp_Src2->Length;
+ }
+ else
+ {
+ SDRM_DWD_Sub(BN_Dst->pData, temp_Src1->pData, temp_Src1->Length, temp_Src2->pData, temp_Src2->Length);
+ BN_Dst->sign = 0;
+ BN_Dst->Length = temp_Src1->Length;
+ }
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Mul
+ * @brief Big Number Multiplication
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Multiplicand [in]first element
+ * @param BN_Multiplier [in]second element
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Multiplicand, SDRM_BIG_NUM *BN_Multiplier)
+{
+ SDRM_BIG_NUM *Dst;
+
+ if ((BN_Multiplicand->Length == 0) || (BN_Multiplier->Length == 0))
+ {
+ SDRM_BN_Clr(BN_Dst);
+ return CRYPTO_SUCCESS;
+ }
+
+ Dst = SDRM_BN_Init(BN_Dst->Size * 2);
+ if (Dst == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ Dst->Length = BN_Multiplicand->Length + BN_Multiplier->Length;
+
+ if (BN_Multiplicand->sign != BN_Multiplier->sign)
+ {
+ Dst->sign = 1;
+ }
+ else
+ {
+ Dst->sign = 0;
+ }
+
+ if (BN_Multiplicand->Length > BN_Multiplier->Length)
+ {
+ SDRM_DWD_Mul(Dst->pData, BN_Multiplicand->pData, BN_Multiplicand->Length, BN_Multiplier->pData, BN_Multiplier->Length);
+ }
+ else
+ {
+ SDRM_DWD_Mul(Dst->pData, BN_Multiplier->pData, BN_Multiplier->Length, BN_Multiplicand->pData, BN_Multiplicand->Length);
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(Dst);
+
+ SDRM_BN_Copy(BN_Dst, Dst);
+ SDRM_BN_FREE(Dst);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_Div
+ * @brief Big Number Division
+ *
+ * @param BN_Quotient [out]quotient
+ * @param BN_Remainder [out]remainder
+ * @param BN_Dividend [in]dividend
+ * @param BN_Divisor [in]divisor
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_Div(SDRM_BIG_NUM *BN_Quotient, SDRM_BIG_NUM *BN_Remainder, SDRM_BIG_NUM *BN_Dividend, SDRM_BIG_NUM *BN_Divisor)
+{
+ cc_u32 tmp, dSize, dAllocSize;
+ SDRM_BIG_NUM *temp_Dividend, *temp_Divisor;
+ cc_u32 *bnTmp;
+ cc_u8 *pbBuf;
+
+ if (BN_Quotient != NULL)
+ {
+ dSize = MAX2(BN_Quotient->Size, BN_Dividend->Size);
+ }
+ else
+ {
+ dSize = BN_Dividend->Size;
+ }
+
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(dAllocSize * 3 + 2 * SDRM_SIZE_OF_DWORD);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ temp_Dividend = SDRM_BN_Alloc(pbBuf, dSize);
+ temp_Divisor = SDRM_BN_Alloc(pbBuf + dAllocSize, dSize);
+ bnTmp = (cc_u32*)(void*)(pbBuf + dSize + dAllocSize);
+
+ SDRM_BN_Copy(temp_Dividend, BN_Dividend);
+ SDRM_BN_Copy(temp_Divisor, BN_Divisor);
+
+ if (SDRM_BN_Cmp(temp_Dividend, temp_Divisor) < 0)
+ {
+ if (BN_Remainder != NULL)
+ {
+ SDRM_BN_Copy(BN_Remainder, temp_Dividend);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ if (BN_Quotient != NULL)
+ {
+ SDRM_BN_Clr(BN_Quotient);
+ }
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ if (BN_Quotient == NULL)
+ {
+ BN_Remainder->Length = temp_Divisor->Length;
+
+ tmp = SDRM_DWD_Div(bnTmp, BN_Remainder->pData, temp_Dividend->pData, temp_Dividend->Length, temp_Divisor->pData, temp_Divisor->Length);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Remainder);
+ BN_Remainder->sign = BN_Dividend->sign;
+ }
+ else if (BN_Remainder == NULL)
+ {
+ BN_Quotient->Length = temp_Dividend->Length - temp_Divisor->Length + 1;
+
+ tmp = SDRM_DWD_Div(BN_Quotient->pData, bnTmp, temp_Dividend->pData, temp_Dividend->Length, temp_Divisor->pData, temp_Divisor->Length);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Quotient);
+ BN_Quotient->sign= (BN_Dividend->sign^BN_Divisor->sign);
+ }
+ else
+ {
+ BN_Quotient->Length = temp_Dividend->Length - temp_Divisor->Length + 1;
+ BN_Remainder->Length = temp_Divisor->Length;
+ BN_Quotient->sign= (BN_Dividend->sign^BN_Divisor->sign);
+ BN_Remainder->sign = BN_Dividend->sign;
+
+ tmp = SDRM_DWD_Div(BN_Quotient->pData, BN_Remainder->pData, BN_Dividend->pData, BN_Dividend->Length, BN_Divisor->pData, BN_Divisor->Length);
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Quotient);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Remainder);
+ }
+
+ free(pbBuf);
+
+ if (tmp != 0)
+ {
+ return CRYPTO_ERROR;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModAdd
+ * @brief Big Number Modular Addition
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element of addition
+ * @param BN_Src2 [in]second element of addition
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModAdd(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+{
+ SDRM_BIG_NUM *BN_Src1_temp, *BN_Src2_temp;
+ cc_u8 *pbBuf;
+ cc_u32 tmp = 0, dSize, AllocSize;
+
+ dSize = MAX3(BN_Src1->Size, BN_Src2->Size, BN_Modulus->Size);
+ AllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(AllocSize * 2);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_Src1_temp = SDRM_BN_Alloc(pbBuf, dSize);
+ BN_Src2_temp = SDRM_BN_Alloc(pbBuf + AllocSize, dSize);
+
+ SDRM_BN_Copy(BN_Src1_temp, BN_Src1);
+ SDRM_BN_Copy(BN_Src2_temp, BN_Src2);
+
+ if ((SDRM_BN_Cmp(BN_Src1, BN_Modulus)>=0))
+ {
+ SDRM_BN_ModRed(BN_Src1_temp, BN_Src1, BN_Modulus);
+ }
+
+ if ((SDRM_BN_Cmp(BN_Src2, BN_Modulus)>=0))
+ {
+ SDRM_BN_ModRed(BN_Src2_temp, BN_Src2, BN_Modulus);
+ }
+
+ if ( BN_Src1_temp->Length>=BN_Src2_temp->Length )
+ {
+ BN_Dst->Length = BN_Src1_temp->Length;
+ BN_Dst->sign = BN_Src1_temp->sign;
+ tmp = SDRM_DWD_Add(BN_Dst->pData, BN_Src1_temp->pData, BN_Src1_temp->Length, BN_Src2_temp->pData, BN_Src2_temp->Length);
+ }
+ else
+ {
+ BN_Dst->Length = BN_Src2_temp->Length;
+ BN_Dst->sign = BN_Src2_temp->sign;
+ tmp = SDRM_DWD_Add(BN_Dst->pData, BN_Src2_temp->pData, BN_Src2_temp->Length,
+ BN_Src1_temp->pData, BN_Src1_temp->Length);
+ }
+
+ if (tmp)
+ {
+ BN_Dst->pData[BN_Dst->Length++] = tmp;
+ }
+
+ SDRM_BN_ModRed(BN_Dst, BN_Dst, BN_Modulus);
+
+ if (SDRM_DWD_Cmp(BN_Dst->pData, BN_Dst->Length, BN_Modulus->pData, BN_Modulus->Length) >= 0)
+ {
+ SDRM_DWD_Sub(BN_Dst->pData, BN_Dst->pData, BN_Dst->Length, BN_Modulus->pData, BN_Modulus->Length);
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModSub
+ * @brief Big Number Modular Subtraction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element of subtraction
+ * @param BN_Src2 [in]second element of subtraction
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModSub(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+{
+ cc_u32 tmp = 0, dSize, AllocSize;
+ SDRM_BIG_NUM *BN_Src1_temp, *BN_Src2_temp;
+ cc_u8 *pbBuf;
+
+ dSize = MAX3(BN_Src1->Size, BN_Src2->Size, BN_Modulus->Size);
+ AllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(AllocSize * 2);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_Src1_temp = SDRM_BN_Alloc(pbBuf, dSize);
+ BN_Src2_temp = SDRM_BN_Alloc(pbBuf + AllocSize, dSize);
+
+ SDRM_BN_Copy(BN_Src1_temp, BN_Src1);
+ SDRM_BN_Copy(BN_Src2_temp, BN_Src2);
+
+ if ((SDRM_BN_Cmp(BN_Src1, BN_Modulus) >= 0))
+ {
+ SDRM_BN_ModRed(BN_Src1_temp, BN_Src1, BN_Modulus);
+ }
+
+ if ((SDRM_BN_Cmp(BN_Src2, BN_Modulus) >= 0))
+ {
+ SDRM_BN_ModRed(BN_Src2_temp, BN_Src2, BN_Modulus);
+ }
+
+ if (SDRM_DWD_Cmp(BN_Src1_temp->pData, BN_Src1_temp->Length, BN_Src2_temp->pData, BN_Src2_temp->Length) >= 0)
+ {
+ BN_Dst->Length = BN_Src1_temp->Length;
+ BN_Dst->sign = BN_Src1_temp->sign;
+
+ tmp = SDRM_DWD_Sub(BN_Dst->pData, BN_Src1_temp->pData, BN_Src1_temp->Length, BN_Src2_temp->pData, BN_Src2_temp->Length);
+ }
+ else
+ {
+ BN_Dst->Length = BN_Modulus->Length;
+ BN_Dst->sign = BN_Modulus->sign;
+ SDRM_DWD_Add(BN_Dst->pData, BN_Modulus->pData, BN_Modulus->Length, BN_Src1_temp->pData, BN_Src1_temp->Length);
+ SDRM_DWD_Sub(BN_Dst->pData, BN_Dst->pData, BN_Dst->Length, BN_Src2_temp->pData, BN_Src2_temp->Length);
+ }
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+ free(pbBuf);
+
+ if (tmp != 0)
+ {
+ return CRYPTO_ERROR;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModRed
+ * @brief Big Number Modular Reduction
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src [in]source
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModRed(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus)
+{
+ int ret;
+ cc_u32 *Value = (cc_u32*)malloc(SDRM_SIZE_OF_DWORD * 2 * (sizeof(SDRM_BIG_NUM) + MAX2(BN_Src->Size, BN_Modulus->Size) + 2));
+
+ if (!Value)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (SDRM_BN_Cmp(BN_Src, BN_Modulus) < 0)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Src);
+ free(Value);
+ return CRYPTO_SUCCESS;
+ }
+
+ memcpy(Value, BN_Src->pData, BN_Src->Length * SDRM_SIZE_OF_DWORD);
+
+ ret = SDRM_DWD_Classical_REDC(Value, BN_Src->Length, BN_Modulus->pData, BN_Modulus->Length);
+
+ if (ret != CRYPTO_SUCCESS)
+ {
+ free(Value);
+ return ret;
+ }
+
+ memcpy(BN_Dst->pData, Value, BN_Modulus->Length * SDRM_SIZE_OF_DWORD);
+
+ BN_Dst->Length = BN_Modulus->Length;
+ BN_Dst->sign = BN_Modulus->sign;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ free(Value);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModMul
+ * @brief Big Number Modular Multiplication
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Src1 [in]first element of multiplication
+ * @param BN_Src2 [in]second element of multipliation
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModMul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_NUM *BN_Modulus)
+{
+ int ret;
+ cc_u32 *Value = (cc_u32*)malloc(SDRM_SIZE_OF_DWORD * (MAX3(BN_Src1->Size, BN_Src2->Size, BN_Modulus->Size) + 2));
+
+ if (!Value)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_Dst->sign = (BN_Src1->sign == BN_Src2->sign)? 0 : 1;
+
+ SDRM_DWD_Mul(Value, BN_Src1->pData, BN_Src1->Length, BN_Src2->pData, BN_Src2->Length);
+
+ ret = SDRM_DWD_Classical_REDC(Value, BN_Src1->Length+BN_Src2->Length, BN_Modulus->pData, BN_Modulus->Length);
+ if (ret != CRYPTO_SUCCESS)
+ {
+ free(Value);
+
+ return ret;
+ }
+
+ BN_Dst->Length = BN_Modulus->Length;
+
+ if (BN_Src1->Length + BN_Src2->Length <= BN_Dst->Length)
+ {
+ memset(BN_Dst->pData + BN_Src1->Length + BN_Src2->Length, 0, (BN_Dst->Length - BN_Src1->Length - BN_Src2->Length) * SDRM_SIZE_OF_DWORD);
+ }
+
+ memcpy(BN_Dst->pData, Value, (BN_Src1->Length + BN_Src2->Length) * SDRM_SIZE_OF_DWORD);
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dst);
+
+ free(Value);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModInv
+ * @brief Big Number Modular Inverse
+ *
+ * @param BN_Dest [out]destination
+ * @param BN_Src [in]soure
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_NEGATIVE_INPUT if source is negative value
+ * \n CRYPTO_INVERSE_NOT_EXIST if inverse is not exists
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModInv(SDRM_BIG_NUM *BN_Dest, SDRM_BIG_NUM *BN_Src, SDRM_BIG_NUM *BN_Modulus)
+{
+ SDRM_BIG_NUM *BN_G0, *BN_G1, *BN_V0, *BN_V1, *BN_Y, *BN_Temp1, *BN_Temp2;
+ cc_u8 *pbBuf = NULL;
+ cc_u32 dSize, dAllocSize;
+
+ dSize = MAX2(BN_Src->Size, BN_Modulus->Size);
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(dAllocSize * 7);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_G0 = SDRM_BN_Alloc(pbBuf, dSize);
+ BN_G1 = SDRM_BN_Alloc((cc_u8*)BN_G0 + dAllocSize, dSize);
+ BN_V0 = SDRM_BN_Alloc((cc_u8*)BN_G1 + dAllocSize, dSize);
+ BN_V1 = SDRM_BN_Alloc((cc_u8*)BN_V0 + dAllocSize, dSize);
+ BN_Y = SDRM_BN_Alloc((cc_u8*)BN_V1 + dAllocSize, dSize);
+ BN_Temp1 = SDRM_BN_Alloc((cc_u8*)BN_Y + dAllocSize, dSize);
+ BN_Temp2 = SDRM_BN_Alloc((cc_u8*)BN_Temp1 + dAllocSize, dSize);
+
+ if (BN_Src->sign)
+ {
+ free(pbBuf);
+ return CRYPTO_NEGATIVE_INPUT;
+ }
+
+ //Extended Euclid Algorithm
+ SDRM_BN_Copy(BN_G0, BN_Modulus);
+ SDRM_BN_ModRed(BN_G1, BN_Src, BN_Modulus);
+
+ SDRM_BN_Copy(BN_V0, BN_Zero);
+ SDRM_BN_Copy(BN_V1, BN_One);
+
+ SDRM_BN_Clr(BN_Y);
+ SDRM_BN_Clr(BN_Dest);
+
+ while(SDRM_BN_Cmp(BN_G1, BN_Zero))
+ {
+ if (!SDRM_BN_Cmp(BN_G1, BN_One))
+ {
+ SDRM_BN_Copy(BN_Dest, BN_V1);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dest);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ SDRM_BN_Clr(BN_Y);
+ SDRM_BN_Clr(BN_Temp1);
+ SDRM_DWD_Div(BN_Y->pData, BN_Temp1->pData, BN_G0->pData, BN_G0->Length, BN_G1->pData, BN_G1->Length);
+
+ BN_Y->Length = BN_G0->Length;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Y);
+
+ BN_Temp1->Length = BN_G1->Length;
+ SDRM_BN_Copy(BN_G0, BN_Temp1);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_G0);
+
+ SDRM_BN_Clr(BN_Temp1);
+ SDRM_DWD_Mul(BN_Temp1->pData, BN_Y->pData, BN_Y->Length, BN_V1->pData, BN_V1->Length);
+ BN_Temp1->Length = BN_Y->Length + BN_V1->Length;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Temp1);
+
+ SDRM_BN_Clr(BN_Temp2);
+ if (SDRM_BN_Cmp(BN_V0, BN_Temp1) >= 0)
+ {
+ SDRM_BN_Add(BN_Temp2, BN_V0, BN_Temp1);
+ }
+ else
+ {
+ SDRM_BN_Add(BN_Temp2, BN_Temp1, BN_V0);
+ }
+
+ SDRM_BN_Copy(BN_V0, BN_Temp2);
+
+ if (!SDRM_BN_Cmp(BN_G0, BN_Zero))
+ {
+ break;
+ }
+
+ if (!SDRM_BN_Cmp(BN_G0, BN_One))
+ {
+ SDRM_BN_Sub(BN_Dest, BN_Modulus, BN_V0);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Dest);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ SDRM_BN_Clr(BN_Y);
+ SDRM_BN_Clr(BN_Temp1);
+ SDRM_DWD_Div(BN_Y->pData, BN_Temp1->pData, BN_G1->pData, BN_G1->Length, BN_G0->pData, BN_G0->Length);
+
+ BN_Y->Length = BN_G1->Length;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Y);
+
+ BN_Temp1->Length = BN_G0->Length;
+ SDRM_BN_Copy(BN_G1, BN_Temp1);
+ SDRM_BN_OPTIMIZE_LENGTH(BN_G1);
+
+ SDRM_BN_Clr(BN_Temp1);
+ SDRM_DWD_Mul(BN_Temp1->pData, BN_Y->pData, BN_Y->Length, BN_V0->pData, BN_V0->Length);
+ BN_Temp1->Length = BN_Y->Length + BN_V0->Length;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_Temp1);
+
+ SDRM_BN_Clr(BN_Temp2);
+ if (SDRM_BN_Cmp(BN_V1, BN_Temp1) >= 0)
+ {
+ SDRM_BN_Add(BN_Temp2, BN_V1, BN_Temp1);
+ }
+ else
+ {
+ SDRM_BN_Add(BN_Temp2, BN_Temp1, BN_V1);
+ }
+
+ SDRM_BN_Copy(BN_V1, BN_Temp2);
+ }
+
+ SDRM_BN_Copy(BN_Dest, BN_Zero);
+ free(pbBuf);
+
+ return CRYPTO_INVERSE_NOT_EXIST;
+}
+
+/*
+ * @fn SDRM_MONT_Rzn2zn
+ * @brief Convert Montgomery number to noraml number
+ *
+ * @param BN_Dst [out]destination, normal number
+ * @param BN_Src1 [in]source, montgomery number
+ * @param Mont [in]montgomery parameters
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Rzn2zn(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_MONT *Mont)
+{
+ cc_u32 Src1_Len, Mod_Len, ri, i;
+ cc_u32 carry;
+ SDRM_BIG_NUM *Src1 = NULL;
+
+ if (!BN_Src1->Length)
+ {
+ BN_Dst->Length = 0;
+
+ return CRYPTO_SUCCESS;
+ }
+
+ Src1_Len = ri = Mont->ri / SDRM_BitsInDWORD;
+ Mod_Len = Mont->Mod->Length + 1;
+
+ Src1 = SDRM_BN_Init(BN_Src1->Size + Mod_Len);
+ if(Src1 == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_BN_Copy(Src1, BN_Src1);
+
+ if (!Src1_Len || !Mod_Len)
+ {
+ BN_Dst->Length = 0;
+ BN_Dst->pData[0] = 0;
+ SDRM_BN_FREE(Src1);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ Src1->sign = BN_Src1->sign ^ Mont->Mod->sign;
+
+ memset(Src1->pData + Src1->Length, 0, (Mod_Len + BN_Src1->Length - Src1->Length) * SDRM_SIZE_OF_DWORD);
+
+ Src1->Length = Mod_Len + BN_Src1->Length;
+
+ for (i = 0; i < Mod_Len; i++)
+ {
+ if ((carry = SDRM_DWD_MulAdd(Src1->pData + i, Src1->Length - i, Mont->Mod->pData, Mod_Len, (cc_u32)Src1->pData[i] * Mont->N0)))
+ {
+ Src1->pData[Src1->Length++] = carry; //Added by Park Ji soon, 05-03-2006
+ } // (cc_u32)A.pData[i]*modulus_p <== u=a[i]*m' mod b
+ // A=A+ (A.pData[i]*modulus_p* modulus[i])*b^i;
+ }
+ SDRM_BN_OPTIMIZE_LENGTH(Src1);
+
+ SDRM_BN_SHR(BN_Dst, Src1, (Mod_Len) * 32);
+ //BN_Dst->Length = Src1->Length - ri;
+ BN_Dst->Length = Src1->Length - ri- 1;//Added by yhhwang
+
+ //if (SDRM_BN_Cmp(BN_Dst, Mont->Mod) >= 0)
+ while (SDRM_BN_Cmp(BN_Dst, Mont->Mod) >= 0)
+ {
+ SDRM_BN_Sub(BN_Dst, BN_Dst, Mont->Mod);
+ }
+
+ SDRM_BN_FREE(Src1);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_MONT_Mul
+ * @brief Montgomery Multiplication
+ *
+ * @param BN_Dst [out]destination, montgomery number
+ * @param BN_Src1 [in]first element, montgomery number
+ * @param BN_Src2 [in]second element, montgomery number
+ * @param Mont [in]montgomery parameters
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Mul(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2, SDRM_BIG_MONT *Mont)
+{
+ int ret;
+
+ /* Begin - Add to test input range by Yong Ho Hwang (20120809) */
+ /*
+ if (SDRM_BN_Cmp(BN_Src1, Mont->Mod) >= 0)
+ {
+ ret = SDRM_BN_ModRed(BN_Src1, BN_Src1, Mont->Mod);
+ if (ret != CRYPTO_SUCCESS)
+ {
+ return ret;
+ }
+ } else if ( BN_Src1->sign == 1)
+ {
+ printf("Minus Value\n");
+ ret = SDRM_BN_Add(BN_Src1, BN_Src1, Mont->Mod);
+ if (BN_Src1->sign == 1)
+ {
+ printf("Value Fail.\n");
+ return CRYPTO_ERROR;
+ }
+ }
+
+ if (SDRM_BN_Cmp(BN_Src2, Mont->Mod) >= 0)
+ {
+ ret = SDRM_BN_ModRed(BN_Src2, BN_Src2, Mont->Mod);
+ if (ret != CRYPTO_SUCCESS)
+ {
+ return ret;
+ }
+ } else if ( BN_Src2->sign == 1)
+ {
+ printf("Minus Value\n");
+ ret = SDRM_BN_Add(BN_Src2, BN_Src2, Mont->Mod);
+ if (BN_Src2->sign == 1)
+ {
+ printf("Value Fail.\n");
+ return CRYPTO_ERROR;
+ }
+ }
+ */
+ /* End - Add to test input range by Yong Ho Hwang (20120809) */
+
+ ret = SDRM_BN_Mul(BN_Dst, BN_Src1, BN_Src2);
+ if (ret != CRYPTO_SUCCESS)
+ {
+ return ret;
+ }
+
+ ret = SDRM_MONT_Rzn2zn(BN_Dst, BN_Dst, Mont);
+
+ /* Begin - Add to test input range by Yong Ho Hwang (20120809) */
+ /*
+ if (SDRM_BN_Cmp(BN_Dst, Mont->Mod) >= 0)
+ {
+ printf("Output is bigger than Mod\n");
+ } else if ( BN_Dst->sign == 1)
+ {
+ printf("Minus Value\n");
+ }
+ */
+ /* End - Add to test input range by Yong Ho Hwang (20120809) */
+
+ return ret;
+}
+
+/*
+ * @fn SDRM_MONT_Set
+ * @brief Set Montgomery parameters
+ *
+ * @param Mont [out]montgomery parameter
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n BN_NOT_ENOUGHT_BUFFER if malloc is failed
+ * \n CRYPTO_INVERSE_NOT_EXIST if inverse is not exists
+ */
+CRYPTOCORE_INTERNAL int SDRM_MONT_Set(SDRM_BIG_MONT *Mont, SDRM_BIG_NUM *BN_Modulus)
+{
+ SDRM_BIG_NUM *Ri, *R;
+ SDRM_BIG_NUM *temp, *Rsquare;
+ cc_u8 *pbBuf;
+ cc_u32 buf[2], dSize, dAllocSize, r2Size;
+
+ if ((Mont == NULL) || (BN_Modulus == NULL))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (Mont->R == NULL)
+ {
+ Mont->R = SDRM_BN_Init(BN_Modulus->Size);
+ if(Mont->R == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+ }
+
+ if (Mont->Mod == NULL)
+ {
+ Mont->Mod = SDRM_BN_Init(BN_Modulus->Size);
+ if(Mont->Mod == NULL)
+ {
+ free(Mont->R);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+ }
+
+ if (SDRM_BN_Cmp(Mont->Mod, BN_Modulus) == 0)
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ dSize = BN_Modulus->Size + 1;
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+ if (!(pbBuf = (cc_u8*)malloc(dAllocSize * 3)))
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ Ri = SDRM_BN_Alloc( pbBuf, dSize);
+ R = SDRM_BN_Alloc((cc_u8*)Ri + dAllocSize, dSize);
+ temp = SDRM_BN_Alloc((cc_u8*)R + dAllocSize, dSize);
+
+//++ 2012.08.20 - modified by yhhwang to apply R=2^(160+32)
+/* == DELETED ==
+ SDRM_BN_Copy(Mont->Mod, BN_Modulus);
+
+ Mont->ri = (SDRM_BN_num_bits(BN_Modulus) + (SDRM_BitsInDWORD - 1)) / SDRM_BitsInDWORD * SDRM_BitsInDWORD;
+
+ SDRM_BN_SHL(R, BN_One, SDRM_BitsInDWORD);
+
+ buf[0] = BN_Modulus->pData[0];
+ buf[1] = 0;
+ temp->pData[0] = buf[0];
+ temp->Length = 1;
+ temp->sign = BN_Modulus->sign;
+
+ SDRM_BN_ModInv(Ri, R, temp);
+ if (Ri == NULL)
+ {
+ free(pbBuf);
+
+ return CRYPTO_INVERSE_NOT_EXIST;
+ }
+
+ SDRM_BN_SHL(Ri, Ri, SDRM_BitsInDWORD);
+ SDRM_BN_Sub(Ri, Ri, BN_One);
+ SDRM_BN_Div(Ri, NULL, Ri, temp);
+ SDRM_BN_Copy(Mont->Inv_Mod, Ri);
+ Mont->N0 = Ri->pData[0];
+
+ SDRM_BN_SHL(Mont->R, BN_One, 2 * (32 + Mont->ri));
+ SDRM_BN_ModRed(Mont->R, Mont->R, Mont->Mod);
+*/
+
+// == NEW CODE ==
+ SDRM_BN_Copy(Mont->Mod, BN_Modulus);
+ Mont->Mod->pData[Mont->Mod->Length] = 0;
+
+ Mont->ri = (SDRM_BN_num_bits(BN_Modulus) + (SDRM_BitsInDWORD - 1)) / SDRM_BitsInDWORD * SDRM_BitsInDWORD;
+
+ SDRM_BN_SHL(R, BN_One, SDRM_BitsInDWORD);
+
+ // Compute -m^-1 mod b
+ buf[0] = BN_Modulus->pData[0];
+ buf[1] = 0;
+ temp->pData[0] = buf[0];
+ temp->Length = 1;
+ temp->sign = BN_Modulus->sign;
+
+ SDRM_BN_ModInv(Ri, temp, R);
+ Ri->sign = 1;
+ SDRM_BN_Add(Ri, Ri, R);
+ Mont->N0 = Ri->pData[0];
+
+ r2Size = 2 * (SDRM_BitsInDWORD + Mont->ri);
+ Rsquare = SDRM_BN_Init(r2Size / SDRM_BitsInDWORD + 1);
+ if (Rsquare == NULL)
+ {
+ free(pbBuf);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ // Compute R and R^2 mod M
+ SDRM_BN_SHL(Rsquare, BN_One, r2Size);
+ SDRM_BN_ModRed(Mont->R, Rsquare, BN_Modulus);
+//-- 2012.08.20 - modified by yhhwang
+
+ free(pbBuf);
+ free(Rsquare);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_MONT_Init
+ * @brief Allocate new momory for Montgomery parameter
+ *
+ * @param dSize [in]size of buffer of big number
+ *
+ * @return Pointer to created structure
+ * \n NULL if malloc failed
+ */
+CRYPTOCORE_INTERNAL SDRM_BIG_MONT *SDRM_MONT_Init(cc_u32 dSize)
+{
+ SDRM_BIG_MONT *Mont;
+ cc_u32 AllocSiz = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ Mont = (SDRM_BIG_MONT *)malloc(sizeof(SDRM_BIG_MONT) + AllocSiz * 3);
+ if (Mont == NULL)
+ {
+ return NULL;
+ }
+
+ Mont->ri = 0;
+ Mont->R = SDRM_BN_Alloc((cc_u8*)Mont + sizeof(SDRM_BIG_MONT), dSize);
+ Mont->Mod = SDRM_BN_Alloc((cc_u8*)Mont->R + AllocSiz, dSize);
+ Mont->Inv_Mod = SDRM_BN_Alloc((cc_u8*)Mont->Mod + AllocSiz, dSize);
+
+ return Mont;
+}
+
+/*
+ * @fn SDRM_MONT_Free
+ * @brief Free allocated memory for montgomery paramter
+ *
+ * @param Mont [in]montgomery parameters
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_MONT_Free(SDRM_BIG_MONT *Mont)
+{
+ if (Mont != NULL) {
+ free(Mont);
+ }
+}
+
+/*
+ * @fn SDRM_BN_num_bits
+ * @brief Calc bit-length of Big Number
+ *
+ * @param BN_Src [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_num_bits(SDRM_BIG_NUM *BN_Src)
+{
+ cc_u32 l;
+ int i, j;
+
+ if (BN_Src->Length == 0)
+ {
+ return 0;
+ }
+
+ l = BN_Src->pData[BN_Src->Length - 1];
+ i = (BN_Src->Length-1) * SDRM_BitsInDWORD;
+
+ j = SDRM_UINT32_num_bits(&l);
+
+ return(i + j);
+}
+
+/*
+ * @fn SDRM_UINT32_num_bits
+ * @brief Calc bit-length of cc_u32
+ *
+ * @param pdSrc [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_UINT32_num_bits(cc_u32 *pdSrc)
+{
+ int i = 0;
+ cc_u32 temp;
+
+ temp = *pdSrc;
+
+ if (!temp)
+ {
+ return 0;
+ }
+
+ while(temp)
+ {
+ temp >>= 1;
+ i++;
+ }
+
+ return i;
+}
+
+/*
+ * @fn SDRM_INT_num_bits
+ * @brief Calc bit-length of integer
+ *
+ * @param Src [in]source
+ *
+ * @return bit-length
+ */
+CRYPTOCORE_INTERNAL int SDRM_INT_num_bits(int Src)
+{
+ int i = 0;
+
+ if (!Src)
+ {
+ return 0;
+ }
+
+ while(Src)
+ {
+ Src >>= 1;
+ i++;
+ }
+
+ return i;
+}
+
+/*
+ * @fn SDRM_BN_ModExp
+ * @brief Big Number Modular Exponentiation
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Base [in]base
+ * @param BN_Exponent [in]exponent
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModExp(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus)
+{
+ SDRM_BIG_NUM *c_, *a_, *BN_Temp;
+ SDRM_BIG_MONT *Mont;
+ int i, m;
+ cc_u8 *pbBuf;
+ cc_u32 dSize, dAllocSize;
+
+ dSize = MAX3(BN_Base->Size, BN_Exponent->Size, BN_Modulus->Size);
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ pbBuf = (cc_u8*)malloc(dAllocSize * 3);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ c_ = SDRM_BN_Alloc(pbBuf, dSize);
+ a_ = SDRM_BN_Alloc((cc_u8*)c_ + dAllocSize, dSize);
+ BN_Temp = SDRM_BN_Alloc((cc_u8*)a_ + dAllocSize, dSize);
+
+ if (SDRM_BN_Cmp(BN_Base, BN_Modulus) >= 0)
+ {
+ SDRM_BN_ModRed(BN_Temp, BN_Base, BN_Modulus);
+ }
+ else
+ {
+ BN_Temp = BN_Base;
+ }
+
+ if (SDRM_BN_Cmp(BN_Temp, BN_Zero) == 0)
+ {
+ SDRM_BN_Copy(BN_Dst, BN_Zero);
+
+ free(pbBuf);
+ return CRYPTO_SUCCESS;
+ }
+
+ Mont = SDRM_MONT_Init(dSize);
+ SDRM_MONT_Set(Mont, BN_Modulus);
+
+ SDRM_MONT_Zn2rzn(a_, BN_Temp, Mont);
+ SDRM_MONT_Zn2rzn(c_, BN_One, Mont);
+
+ m = SDRM_BN_num_bits(BN_Exponent);
+
+ for (i = m - 1; i >= 0; i--)
+ {
+ SDRM_MONT_Mul(c_, c_, c_, Mont);
+
+ if (SDRM_CheckBitUINT32(BN_Exponent->pData, i) == 1)
+ {
+ SDRM_MONT_Mul(c_, c_, a_, Mont);
+ }
+ }
+
+ SDRM_MONT_Rzn2zn(BN_Dst, c_, Mont);
+
+ SDRM_MONT_Free(Mont);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_ModExp2
+ * @brief Big Number Modular Exponentiation2 - Karen's method
+ *
+ * @param BN_Dst [out]destination
+ * @param BN_Base [in]base
+ * @param BN_Exponent [in]exponent
+ * @param BN_Modulus [in]modular m
+ *
+ * @return CRYPTO_SUCCESS if no error occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_ModExp2(SDRM_BIG_NUM *BN_Dst, SDRM_BIG_NUM *BN_Base, SDRM_BIG_NUM *BN_Exponent, SDRM_BIG_NUM *BN_Modulus)
+{
+ int retVal;
+ SDRM_BIG_NUM *BN_Temp;
+
+ if ((BN_Dst != BN_Base) && (BN_Dst != BN_Exponent) && (BN_Dst != BN_Modulus))
+ {
+ SDRM_BN_Clr(BN_Dst);
+ }
+
+ if (SDRM_BN_Cmp(BN_Base, BN_Modulus) >= 0)
+ {
+ BN_Temp = SDRM_BN_Init(MAX3(BN_Base->Size, BN_Exponent->Size, BN_Modulus->Size));
+ if (BN_Temp == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (BN_Temp == BN_Base)
+ {
+ free(BN_Temp);
+ return CRYPTO_ERROR;
+ }
+
+ SDRM_BN_ModRed(BN_Temp, BN_Base, BN_Modulus);
+ }
+ else
+ {
+ BN_Temp = BN_Base;
+ }
+
+ if (SDRM_BN_Cmp(BN_Temp, BN_Zero) == 0)
+ {
+ SDRM_BN_Clr(BN_Dst);
+
+ if (BN_Temp != BN_Base)
+ {
+ free(BN_Temp);
+ }
+
+ return CRYPTO_SUCCESS;
+ }
+
+ retVal = SDRM_ll_ExpMod(BN_Temp->pData, BN_Temp->Length * 4, BN_Exponent->pData, BN_Exponent->Length * 4, BN_Modulus->pData, BN_Modulus->Length * 4, BN_Dst->pData);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ if (BN_Temp != BN_Base)
+ {
+ free(BN_Temp);
+ }
+
+ return retVal;
+ }
+
+ BN_Dst->Length = BN_Dst->Size;
+
+ while(BN_Dst->pData[BN_Dst->Length - 1] == 0)
+ {
+ BN_Dst->Length--;
+ }
+
+ if (BN_Temp != BN_Base)
+ {
+ free(BN_Temp);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_BN_CheckRelativelyPrime
+ * @brief get gcd of two big number
+ *
+ * @param BN_Src1 [in]first element
+ * @param BN_Src2 [in]second element
+ *
+ * @return CRYPTO_ISPRIME if two elements are relatively prime
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR otherwise
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_CheckRelativelyPrime(SDRM_BIG_NUM *BN_Src1, SDRM_BIG_NUM *BN_Src2)
+{
+ SDRM_BIG_NUM *Temp, *S1, *S2;
+ cc_u8 *pbBuf;
+ cc_u32 dSize, dAllocSize;
+
+ dSize = MAX2(BN_Src1->Size, BN_Src2->Size);
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ if (!(pbBuf = (cc_u8*)malloc(dAllocSize * 3)))
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ S1 = SDRM_BN_Alloc(pbBuf, dSize);
+ S2 = SDRM_BN_Alloc((cc_u8*)S1 + dAllocSize, dSize);
+ Temp = SDRM_BN_Alloc((cc_u8*)S2 + dAllocSize, dSize);
+
+ if (SDRM_BN_Cmp(BN_Src1, BN_Src2) >= 0)
+ {
+ SDRM_BN_Copy(S1, BN_Src1);
+ SDRM_BN_Copy(S2, BN_Src2);
+ }
+ else
+ {
+ SDRM_BN_Copy(S1, BN_Src2);
+ SDRM_BN_Copy(S2, BN_Src1);
+ }
+
+ while(S2->Length)
+ {
+ SDRM_BN_ModRed(Temp, S1, S2);
+ SDRM_BN_Copy(S1, S2);
+ SDRM_BN_Copy(S2, Temp);
+ }
+
+ if (SDRM_BN_Cmp(S1, BN_One) == 0)
+ {
+ free(pbBuf);
+
+ return CRYPTO_ISPRIME;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_ERROR;
+}
+
+//small primes for pre-testing
+static cc_u32 miniPrimes[] = {
+ 0xC8E15F2A, 0x16FA4227, 0x87B81DA9, 0xDA38C071, 0xFDB17C23, 0xFE5E796B,
+ 0xC7E4CBF5, 0x7EB0F0B1, 0xB72EFC93, 0xF46CEE57, 0x80B2C2BB, 0x34A77199,
+ 0x447D1BD5, 0xEA4C7C31, 0xF046D45B, 0xFF55A7BF, 0x9B287041, 0x85663BEF,
+ 0x7856625B, 0
+};
+
+/*
+ * @fn SDRM_BN_MILLER_RABIN
+ * @brief MILLER_RABIN Test
+ *
+ * @param n [in]value to test
+ * @param t [in]security parameter
+ *
+ * @return CRYPTO_ISPRIME if n is (probably) prime
+ * \n CRYPTO_INVALID_ARGUMENT if n is composite
+ */
+CRYPTOCORE_INTERNAL int SDRM_BN_MILLER_RABIN(SDRM_BIG_NUM* n, cc_u32 t)
+{
+ SDRM_BIG_NUM *r, *a, *y, *n1;
+ cc_u32 i, j, tmp, srcLen, s = 1;
+ cc_u8 *pbBuf;
+ cc_u32 dSize, dAllocSize;
+
+ dSize = n->Size;
+ dAllocSize = sizeof(SDRM_BIG_NUM) + dSize * SDRM_SIZE_OF_DWORD;
+
+ if (n->Length == 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if ((n->pData[0] & 0x01) == 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ for (i = 0; miniPrimes[i] != 0; i++)
+ {
+ tmp = 0;
+ for (j = n->Length - 1; j != (cc_u32)-1; j--)
+ {
+ tmp = SDRM_DIGIT_Mod(tmp, n->pData[j], miniPrimes[i]);
+ }
+
+ if(SDRM_DIGIT_Gcd(miniPrimes[i], tmp) != 1)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ }
+
+ while(SDRM_CheckBitUINT32(n->pData, s) == 0) s++;
+
+ pbBuf = (cc_u8*)malloc(dAllocSize * 4);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ r = SDRM_BN_Alloc( pbBuf, dSize);
+ a = SDRM_BN_Alloc((cc_u8*)r + dAllocSize, dSize);
+ y = SDRM_BN_Alloc((cc_u8*)a + dAllocSize, dSize);
+ n1 = SDRM_BN_Alloc((cc_u8*)y + dAllocSize, dSize);
+
+ SDRM_BN_Sub(n1, n, BN_One);
+ SDRM_BN_SHR(r, n1, s);
+
+ srcLen = SDRM_BN_num_bits(n);
+
+ for (i = 1; i <= t; i++)
+ {
+ SDRM_BN_Rand(a, srcLen);
+ a->pData[n->Length - 1] %= n->pData[n->Length - 1];
+
+ SDRM_BN_ModExp(y, a, r, n);
+ if ((SDRM_BN_Cmp(y, BN_One) == 0) || (SDRM_BN_Cmp(y, n1) == 0))
+ {
+ continue;
+ }
+
+ for (j = 1; (j < s) && SDRM_BN_Cmp(y, n1) != 0; j++)
+ {
+ SDRM_BN_ModMul(y, y, y, n);
+
+ if (SDRM_BN_Cmp(y, BN_One) == 0)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ }
+
+ if (SDRM_BN_Cmp(y, n1) != 0)
+ {
+ free(pbBuf);
+
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ }
+ free(pbBuf);
+
+ return CRYPTO_ISPRIME;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/des.c b/SPC/Src/base/des.c
new file mode 100755
index 0000000..ea9b741
--- /dev/null
+++ b/SPC/Src/base/des.c
@@ -0,0 +1,168 @@
+/**
+ * \file des.c
+ * @brief high-speed implementation of DES
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/06
+ */
+
+//////////////////////////////////////////////////////////////////////////
+// Include Header Files
+//////////////////////////////////////////////////////////////////////////
+#include "des.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_DES_KeySched
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param RoundKey [out]generated round key
+ * @param UserKey [in]user key, 8 byte
+ * @param RKPos [in]index of round key starts
+ * @param RKStep [in]step for index
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 RKPos, cc_u32 RKStep)
+{
+ cc_u32 round, i, s, t, t2;
+ cc_u32 roundkey[16][2];
+ cc_u32 c = 0, d = 0;
+
+ //process Permuted Choice 1
+ for (i = 0; i < 28; i++)
+ {
+ t = SDRM_DES_KS_PC1[i];
+ c |= (UserKey[t >> 3] & SDRM_DES_BitMask[t & 0x07]) ? (1 << i) : 0;
+ }
+
+ for (i = 28; i < 56; i++)
+ {
+ t = SDRM_DES_KS_PC1[i];
+ d |= (UserKey[t >> 3] & SDRM_DES_BitMask[t & 0x07]) ? (1 << (i - 28)) : 0;
+ }
+
+ //get round key
+ for (round = 0; round < SDRM_DES_NUM_OF_ROUNDS; round++)
+ {
+ //shift left operation
+ c = (c >> SDRM_DES_KS_SHIFT[round]) | (c << (28 - SDRM_DES_KS_SHIFT[round]));
+ d = (d >> SDRM_DES_KS_SHIFT[round]) | (d << (28 - SDRM_DES_KS_SHIFT[round]));
+
+ s = SDRM_des_skb[0][((c) ) & 0x3f] |
+ SDRM_des_skb[1][((c >> 6L) & 0x03) | ((c >> 7L) & 0x3c)] |
+ SDRM_des_skb[2][((c >> 13L) & 0x0f) | ((c >> 14L) & 0x30)] |
+ SDRM_des_skb[3][((c >> 20L) & 0x01) | ((c >> 21L) & 0x06) | ((c>>22L)&0x38)];
+ t = SDRM_des_skb[4][((d) ) & 0x3f] |
+ SDRM_des_skb[5][((d >> 7L) & 0x03) | ((d >> 8L) & 0x3c)] |
+ SDRM_des_skb[6][ (d >> 15L) & 0x3f] |
+ SDRM_des_skb[7][((d >> 21L) & 0x0f) | ((d >> 22L) & 0x30)];
+
+ t2 = (t << 16L) | (s & 0x0000ffffL);
+ roundkey[RKPos][0] = SDRM_rotr32(t2, 30);
+
+ t2 = ((s >> 16L) | (t & 0xffff0000L));
+ roundkey[RKPos][1] = SDRM_rotr32(t2, 26);
+
+ RKPos += RKStep;
+ }
+
+ memcpy(RoundKey, roundkey, 128);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES_Encryption
+ * @brief DES processing for one block
+ *
+ * @param RoundKey [in]expanded round key
+ * @param msg [in]8 byte plaintext
+ * @param out [out]8 byte ciphertext
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out)
+{
+ cc_u32 l, r, i, t, u;
+
+ r = *(cc_u32*)(void*)(msg);
+ l = *(cc_u32*)(void*)(msg + 4);
+
+ SDRM_IP(r,l);
+
+ r = SDRM_rotr32(r, 29);
+ l = SDRM_rotr32(l, 29);
+
+ for (i = 0; i < SDRM_DES_NUM_OF_ROUNDS; i++)
+ {
+ if (i & 0x01)
+ {
+ SDRM_D_ENCRYPT(r, l);
+ }
+ else
+ {
+ SDRM_D_ENCRYPT(l, r);
+ }
+ }
+
+ r = SDRM_rotr32(r, 3);
+ l = SDRM_rotr32(l, 3);
+
+ SDRM_INV_IP(r, l);
+
+ memcpy(out , &l, 4);
+ memcpy(out + 4, &r, 4);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES64_Encryption
+ * @brief one block DES Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[16][2];
+
+ SDRM_DES_KeySched((cc_u8*)RoundKey, UserKey, 0, 1);
+
+ SDRM_DES_Encryption(RoundKey, plainText, cipherText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES64_Decryption
+ * @brief one block DES Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[16][2];
+
+ SDRM_DES_KeySched((cc_u8*)RoundKey, UserKey, 15, (cc_u32)-1);
+
+ SDRM_DES_Encryption(RoundKey, cipherText, plainText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/ecc.c b/SPC/Src/base/ecc.c
new file mode 100755
index 0000000..b60b638
--- /dev/null
+++ b/SPC/Src/base/ecc.c
@@ -0,0 +1,1276 @@
+/**
+ * \file ecc.c
+ * @brief ecc library based on big number
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jiyoung Moon
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/05/03
+ * Note : optimized by Jiyoung Moon & Jisoon Park, August,2006.
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "ecc.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_ECC_Init
+ * @brief return SDRM_EC_POINT structure
+ *
+ * @return address of allocate structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_EC_POINT *SDRM_ECC_Init()
+{
+ SDRM_EC_POINT *temp;
+
+ temp = (SDRM_EC_POINT *)malloc(sizeof(SDRM_EC_POINT) + SDRM_ECC_ALLOC_SIZE * 5);
+ if (!temp)
+ {
+ return NULL;
+ }
+
+ temp->IsInfinity = 0;
+ temp->x = SDRM_BN_Alloc((cc_u8*)temp + sizeof(SDRM_EC_POINT), SDRM_ECC_BN_BUFSIZE);
+ temp->y = SDRM_BN_Alloc((cc_u8*)temp->x + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->z = SDRM_BN_Alloc((cc_u8*)temp->y + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->z2 = SDRM_BN_Alloc((cc_u8*)temp->z + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->z3 = SDRM_BN_Alloc((cc_u8*)temp->z2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ return temp;
+}
+
+/*
+ * @fn SDRM_CURVE_Init
+ * @brief return SDRM_ECC_CTX structure
+ *
+ * @return address of allocate structure
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_ECC_CTX *SDRM_CURVE_Init()
+{
+ SDRM_ECC_CTX *temp;
+ SDRM_EC_POINT *ptr;
+ cc_u8 *pbBlk;
+
+ temp = (SDRM_ECC_CTX *)malloc(sizeof(SDRM_ECC_CTX) + SDRM_ECC_ALLOC_SIZE * 15 + 2 * sizeof(SDRM_EC_POINT));
+ if (!temp) return NULL;
+
+ pbBlk = (cc_u8*)temp + sizeof(SDRM_ECC_CTX);
+
+ temp->ECC_a = SDRM_BN_Alloc(pbBlk, SDRM_ECC_BN_BUFSIZE);
+ temp->ECC_b = SDRM_BN_Alloc((cc_u8*)temp->ECC_a + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->ECC_p = SDRM_BN_Alloc((cc_u8*)temp->ECC_b + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->ECC_n = SDRM_BN_Alloc((cc_u8*)temp->ECC_p + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ temp->PRIV_KEY = SDRM_BN_Alloc((cc_u8*)temp->ECC_n + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ temp->uDimension = 0;
+
+ ptr = (SDRM_EC_POINT*)(void*)((cc_u8*)temp + sizeof(SDRM_ECC_CTX) + SDRM_ECC_ALLOC_SIZE * 5);
+ ptr->IsInfinity = 0;
+ ptr->x = SDRM_BN_Alloc((cc_u8*)ptr + sizeof(SDRM_EC_POINT), SDRM_ECC_BN_BUFSIZE);
+ ptr->y = SDRM_BN_Alloc((cc_u8*)ptr->x + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z = SDRM_BN_Alloc((cc_u8*)ptr->y + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z2 = SDRM_BN_Alloc((cc_u8*)ptr->z + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z3 = SDRM_BN_Alloc((cc_u8*)ptr->z2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ temp->ECC_G = ptr;
+
+ ptr = (SDRM_EC_POINT*)(void*)((cc_u8*)ptr + sizeof(SDRM_EC_POINT) + SDRM_ECC_ALLOC_SIZE * 5);
+ ptr->IsInfinity = 0;
+ ptr->x = SDRM_BN_Alloc((cc_u8*)ptr + sizeof(SDRM_EC_POINT), SDRM_ECC_BN_BUFSIZE);
+ ptr->y = SDRM_BN_Alloc((cc_u8*)ptr->x + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z = SDRM_BN_Alloc((cc_u8*)ptr->y + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z2 = SDRM_BN_Alloc((cc_u8*)ptr->z + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ ptr->z3 = SDRM_BN_Alloc((cc_u8*)ptr->z2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ temp->PUBLIC_KEY = ptr;
+
+ return temp;
+}
+
+////////////////////////////////////////////////////////////////////////////
+// ECC Լ
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_CHECK_EC_POINT_ZERO
+ * @brief check if the point points zero
+ *
+ * @param r [in]point
+ *
+ * @return 1 if the point is pointing zero
+ * \n 0 otherwise
+ */
+CRYPTOCORE_INTERNAL int SDRM_CHECK_EC_POINT_ZERO(SDRM_EC_POINT* r)
+{
+ if ((r->x->Length == 0) | (r->y->Length == 0))
+ {
+ // return = 1 if input is zero
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+/*
+ * @fn SDRM_Mont_Jm2Jc
+ * @brief ǥȯ 1 : Modified Jacobian => Chundnovsky Jacobian
+ * (A->y) <= (A->y)/2
+ * (A->z2) <= (A->z)^2
+ * (A->z3) <= (A->z)^3
+ *
+ * @param EC_Dst [out]destination
+ * @param new_a [in]first element
+ * @param new_b [in]second element
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_Mont_Jm2Jc(SDRM_EC_POINT *EC_Dst, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont)
+{
+ if (SDRM_BN_IS_ODD(EC_Dst->y))
+ {
+ if (SDRM_BN_Add(EC_Dst->y, EC_Dst->y, Mont->Mod) != CRYPTO_SUCCESS)
+ {
+ return CRYPTO_ERROR;
+ }
+ }
+
+ if (SDRM_BN_SHR(EC_Dst->y, EC_Dst->y, 1) != CRYPTO_SUCCESS)
+ {
+ return CRYPTO_ERROR;
+ }
+
+ SDRM_MONT_Mul(EC_Dst->z2, EC_Dst->z, EC_Dst->z, Mont);
+ SDRM_MONT_Mul(EC_Dst->z3, EC_Dst->z, EC_Dst->z2, Mont);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_Mont_Jc2Jm
+ * @brief ǥȯ 2 : Chundnovsky Jacobian => Modified Jacobian
+ * (A->y) <= 2*(A->y)
+ * (A->z2) <= new_a*(A->z)^4
+ *
+ * @param A [out]destination
+ * @param new_a [in]first element
+ * @param new_b [in]second element
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_Mont_Jc2Jm(SDRM_EC_POINT *A, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont)
+{
+ if (SDRM_BN_SHL(A->y, A->y, 1) != CRYPTO_SUCCESS)
+ {
+ return CRYPTO_ERROR;
+ }
+
+ if (SDRM_BN_Cmp(A->y, Mont->Mod)>=0)
+ {
+ SDRM_BN_Sub(A->y, A->y, Mont->Mod);
+ }
+
+ SDRM_MONT_Mul(A->z2, A->z, A->z, Mont);
+ SDRM_MONT_Mul(A->z2, A->z2, A->z2, Mont);
+ SDRM_MONT_Mul(A->z2, new_a, A->z2, Mont);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_CTX_EC_Add
+ * @brief Affine Coordinate (A = B + C)
+ *
+ * @param ctx [in]ECC context
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param EC_Src2 [in]second element(C)
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Add(SDRM_ECC_CTX *ctx, SDRM_EC_POINT* EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_EC_POINT *EC_Src2)
+{
+ SDRM_BIG_NUM *t1, *t2, *t3, *lambda, *lambda_sqr;
+ SDRM_BIG_NUM *x3, *y3;
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 7);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (SDRM_CHECK_EC_POINT_ZERO(EC_Src1))
+ {
+ SDRM_EC_COPY(EC_Dst, EC_Src2);
+ free(pbBuf);
+ return CRYPTO_SUCCESS;
+ }
+ else if (SDRM_CHECK_EC_POINT_ZERO(EC_Src2))
+ {
+ SDRM_EC_COPY(EC_Dst, EC_Src1);
+ free(pbBuf);
+ return CRYPTO_SUCCESS;
+ }
+
+ t1 = SDRM_BN_Alloc(pbBuf, SDRM_ECC_BN_BUFSIZE);
+ t2 = SDRM_BN_Alloc((cc_u8*)t1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ t3 = SDRM_BN_Alloc((cc_u8*)t2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ lambda = SDRM_BN_Alloc((cc_u8*)t3 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ lambda_sqr = SDRM_BN_Alloc((cc_u8*)lambda + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ x3 = SDRM_BN_Alloc((cc_u8*)lambda_sqr + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ y3 = SDRM_BN_Alloc((cc_u8*)x3 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ if (SDRM_BN_Cmp(EC_Src1->x, EC_Src2->x) == 0) /* xǥ ٸ */
+ {
+ if (SDRM_BN_Cmp(EC_Src1->y, EC_Src2->y) != 0) /* y ǥ ٸٸ */
+ { // (B = -C)
+ SDRM_EC_SET_ZERO(EC_Dst);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+ else /* y ǥ ٸ */
+ { // (B = C)
+ SDRM_BN_ModAdd(t1, EC_Src1->y, EC_Src1->y, ctx->ECC_p); /* t1 = 2 * y1 */
+ SDRM_BN_ModInv(t1, t1, ctx->ECC_p); /* t1 = 1/(2 * y1) */
+
+ SDRM_BN_ModMul(t2, EC_Src1->x, EC_Src1->x, ctx->ECC_p); /* t2 = x1^2 */
+ SDRM_BN_ModAdd(t3, t2, t2, ctx->ECC_p); /* t3 = t2 + t2 */
+ SDRM_BN_ModAdd(t3, t3, t2, ctx->ECC_p); /* t2 = t3 + t2 = 3 * x1^2*/
+ SDRM_BN_ModAdd(t3, t3, ctx->ECC_a, ctx->ECC_p); /* t3 = 3 * x1^2 + a */
+
+ SDRM_BN_ModMul(lambda, t3, t1, ctx->ECC_p); /* lambda = (3 * x1^2 + a) / (2 * y1) */
+ }
+ }
+ else /* x ǥ ٸٸ */
+ {
+ SDRM_BN_ModSub(t1, EC_Src2->x, EC_Src1->x, ctx->ECC_p); /* t1 = x2 - x1 */
+ SDRM_BN_ModSub(t2, EC_Src2->y, EC_Src1->y, ctx->ECC_p); /* t2 = y2 - y1 */
+
+ SDRM_BN_ModInv(t1, t1, ctx->ECC_p); /* t1 = t1^(-1) = 1/(x2-x1) */
+ SDRM_BN_ModMul(lambda, t1, t2, ctx->ECC_p); /* lambda = (y2-y1)/(x2-x1) */
+ }
+
+ SDRM_BN_ModMul(lambda_sqr, lambda, lambda, ctx->ECC_p); /* lambda^2 */
+ SDRM_BN_ModSub(t1, lambda_sqr, EC_Src1->x, ctx->ECC_p); /* x3 = lambda^2 - x1 */
+ SDRM_BN_ModSub(x3, t1, EC_Src2->x, ctx->ECC_p); /* x3 = lambda^2 - x1 - x2 */
+
+ SDRM_BN_ModSub(t1, EC_Src1->x, x3, ctx->ECC_p); /* t1 = x1 - x3 */
+ SDRM_BN_ModMul(t2, t1, lambda, ctx->ECC_p); /* t2 = (x1 - x3) * lambda */
+ SDRM_BN_ModSub(y3, t2, EC_Src1->y, ctx->ECC_p); /* y3 = (x1 - x3) * lambda - y1 */
+
+ SDRM_BN_Copy(EC_Dst->x, x3);
+ SDRM_BN_Copy(EC_Dst->y, y3);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_EC_Add_Jc
+ * @brief Chundnovsky Jacobian coordinate
+ * using montgomery (A = B + C)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param EC_Src2 [in]second element(C)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Add_Jc(SDRM_EC_POINT *EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_EC_POINT *EC_Src2, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont)
+{
+ SDRM_BIG_NUM *u1, *u2, *s1, *s2, *h, *r, *tmp1, *tmp2;
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 8);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (EC_Src1->IsInfinity || SDRM_CHECK_EC_POINT_ZERO(EC_Src1))
+ {
+ SDRM_EC_COPY(EC_Dst, EC_Src2);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+ else if (EC_Src2->IsInfinity || SDRM_CHECK_EC_POINT_ZERO(EC_Src2))
+ {
+ SDRM_EC_COPY(EC_Dst, EC_Src1);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ u1 = SDRM_BN_Alloc(pbBuf , SDRM_ECC_BN_BUFSIZE);
+ u2 = SDRM_BN_Alloc((cc_u8*)u1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ s1 = SDRM_BN_Alloc((cc_u8*)u2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ s2 = SDRM_BN_Alloc((cc_u8*)s1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ h = SDRM_BN_Alloc((cc_u8*)s2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ r = SDRM_BN_Alloc((cc_u8*)h + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ tmp1 = SDRM_BN_Alloc((cc_u8*)r + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ tmp2 = SDRM_BN_Alloc((cc_u8*)tmp1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ // u1
+ SDRM_MONT_Mul(u1, EC_Src1->x, EC_Src2->z2, Mont);
+ // u2
+ SDRM_MONT_Mul(u2, EC_Src2->x, EC_Src1->z2, Mont);
+ // s1
+ SDRM_MONT_Mul(s1, EC_Src1->y, EC_Src2->z3, Mont);
+ // s2
+ SDRM_MONT_Mul(s2, EC_Src2->y, EC_Src1->z3, Mont);
+
+ SDRM_BN_Sub(h, u2, u1);
+ if (h->sign)
+ {
+ SDRM_BN_Add(h, h, Mont->Mod);
+ }
+
+ // r
+ SDRM_BN_Sub(r, s2, s1);
+ if (r->sign)
+ {
+ SDRM_BN_Add(r, r, Mont->Mod);
+ }
+
+ // exception cases check
+ if (h->Length == 0)
+ {
+ if (r->Length == 0)
+ {
+ // If (h == 0) & (r == 0), CTX_EC_Double_Jc
+ // because B, C are same point.
+ free(pbBuf);
+
+ return SDRM_CTX_EC_Double_Jc(EC_Dst, EC_Src1, new_a, new_b, Mont);
+ }
+ else
+ {
+ // If (h == 0) & (r != 0), A = Infinity point
+ EC_Dst->IsInfinity = 1;
+ free(pbBuf);
+
+ return CRYPTO_INFINITY_INPUT;
+ }
+ }
+
+ // EC_Dst->x
+ SDRM_MONT_Mul(EC_Dst->x, r, r, Mont);
+ SDRM_MONT_Mul(EC_Dst->y, h, h, Mont); // A->y : h^2, temp
+ SDRM_MONT_Mul(tmp1, EC_Dst->y, h, Mont); // tmp1 : h^3, temp
+ SDRM_MONT_Mul(EC_Dst->y, u1, EC_Dst->y, Mont); // A->y : u1*h^2
+
+ SDRM_BN_SHL(tmp2, EC_Dst->y, 1);
+ if (SDRM_BN_Cmp(tmp2, Mont->Mod) >= 0)
+ {
+ SDRM_BN_Sub(tmp2, tmp2, Mont->Mod);
+ }
+
+ SDRM_BN_ModSub(EC_Dst->x, EC_Dst->x, tmp2, Mont->Mod);
+ SDRM_BN_ModSub(EC_Dst->x, EC_Dst->x, tmp1, Mont->Mod);
+
+ // EC_Dst->y
+ SDRM_BN_ModSub(EC_Dst->y, EC_Dst->y, EC_Dst->x, Mont->Mod);
+ SDRM_MONT_Mul(EC_Dst->y, r, EC_Dst->y, Mont);
+ SDRM_MONT_Mul(tmp1, s1, tmp1, Mont);
+ SDRM_BN_ModSub(EC_Dst->y, EC_Dst->y, tmp1, Mont->Mod);
+
+ // EC_Dst->z
+ SDRM_MONT_Mul(EC_Dst->z, EC_Src1->z, EC_Src2->z, Mont);
+ SDRM_MONT_Mul(EC_Dst->z, EC_Dst->z, h, Mont);
+
+ // ȿ Ʒ -> ʿ ܺο
+#if 0
+ // EC_Dst->z2
+ SDRM_MONT_Mul(EC_Dst->z2, EC_Dst->z, EC_Dst->z, Mont);
+ // EC_Dst->z3
+ SDRM_MONT_Mul(EC_Dst->z3, EC_Dst->z, EC_Dst->z2, Mont);
+#endif
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_EC_Double_Jc
+ * @brief Chundnovsky Jacobian coordinate
+ * montgomery (A = 2B)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Double_Jc(SDRM_EC_POINT *EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont)
+{
+ SDRM_BIG_NUM *s, *k, *tmp1, *tmp2;
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 4);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ // If B = infinite point || (B->y) = 0, A = infinite point.
+ if (EC_Src1->IsInfinity || SDRM_CHECK_EC_POINT_ZERO(EC_Src1))
+ {
+ EC_Dst->IsInfinity = 1;
+ free(pbBuf);
+ return CRYPTO_SUCCESS;
+ }
+
+ s = SDRM_BN_Alloc(pbBuf , SDRM_ECC_BN_BUFSIZE);
+ k = SDRM_BN_Alloc((cc_u8*)s + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ tmp1 = SDRM_BN_Alloc((cc_u8*)k + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ tmp2 = SDRM_BN_Alloc((cc_u8*)tmp1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ // s
+ SDRM_MONT_Mul(s, EC_Src1->y, EC_Src1->y, Mont); // s = (B->y)^2
+ SDRM_MONT_Mul(tmp1, s, s, Mont); // tmp1 = (B->y)^4
+ SDRM_MONT_Mul(s, EC_Src1->x, s, Mont);
+ SDRM_BN_SHL(s, s, 2);
+ SDRM_BN_ModRed(s, s, Mont->Mod);
+
+ // k
+ SDRM_MONT_Mul(k, EC_Src1->x, EC_Src1->x, Mont);
+ SDRM_BN_SHL(tmp2, k, 1);
+ SDRM_BN_ModAdd(tmp2, tmp2, k, Mont->Mod);
+ SDRM_MONT_Mul(k, EC_Src1->z, EC_Src1->z3, Mont);
+ SDRM_MONT_Mul(k, new_a, k, Mont);
+ SDRM_BN_ModAdd(k, tmp2, k, Mont->Mod);
+
+ // t & EC_Dst->x
+ SDRM_BN_SHL(tmp2, s, 1);
+
+ if (SDRM_BN_Cmp(tmp2, Mont->Mod)>=0)
+ {
+ SDRM_BN_Sub(tmp2, tmp2, Mont->Mod);
+ }
+
+ SDRM_MONT_Mul(EC_Dst->x, k, k, Mont);
+ SDRM_BN_ModSub(EC_Dst->x, EC_Dst->x, tmp2, Mont->Mod);
+
+ // EC_Dst->z
+ SDRM_MONT_Mul(EC_Dst->z, EC_Src1->y, EC_Src1->z, Mont);
+ SDRM_BN_SHL(EC_Dst->z, EC_Dst->z, 1);
+
+ if (SDRM_BN_Cmp(EC_Dst->z, Mont->Mod)>=0)
+ {
+ SDRM_BN_Sub(EC_Dst->z, EC_Dst->z, Mont->Mod);
+ }
+
+ // EC_Dst->y
+ SDRM_BN_SHL(EC_Dst->y, tmp1, 3);
+ while(SDRM_BN_Cmp(EC_Dst->y, Mont->Mod) >= 0)
+ {
+ SDRM_BN_Sub(EC_Dst->y, EC_Dst->y, Mont->Mod);
+ }
+
+ SDRM_BN_ModSub(tmp1, s, EC_Dst->x, Mont->Mod); // tmp1 = s-t (s ٲ)
+ SDRM_MONT_Mul(tmp1, k, tmp1, Mont); // k(s-t)
+ SDRM_BN_ModSub(EC_Dst->y, tmp1, EC_Dst->y, Mont->Mod);
+ if (EC_Dst->y->sign)
+ {
+ SDRM_BN_Add(EC_Dst->y, EC_Dst->y, Mont->Mod);
+ }
+
+ // EC_Dst->z2
+ SDRM_MONT_Mul(EC_Dst->z2, EC_Dst->z, EC_Dst->z, Mont);
+
+ // EC_Dst->z3
+ SDRM_MONT_Mul(EC_Dst->z3, EC_Dst->z, EC_Dst->z2, Mont);
+
+ // Memory Free
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_CTX_EC_Double_Jm
+ * @brief Modified Jacobian coordinate
+ * montgomery (A = 2B)
+ *
+ * @param EC_Dst [out]destination(A)
+ * @param EC_Src1 [in]first element(B)
+ * @param new_a [in]ECC_A's montgomery value
+ * @param new_b [in]ECC_B's montgomery value
+ * @param Mont [in]montgomery context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_ERROR if evaluation is failed
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Double_Jm(SDRM_EC_POINT *EC_Dst, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *new_a, SDRM_BIG_NUM *new_b, SDRM_BIG_MONT *Mont)
+{
+ SDRM_BIG_NUM *a, *b, *c, *tmp1;
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 4);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ // If B is the infinite point or (B->y) is zero, A is the infinite point.
+ if (EC_Src1->IsInfinity || SDRM_CHECK_EC_POINT_ZERO(EC_Src1))
+ {
+ EC_Dst->IsInfinity = 1;
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+ a = SDRM_BN_Alloc(pbBuf, SDRM_ECC_BN_BUFSIZE);
+ b = SDRM_BN_Alloc((cc_u8*)a + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ c = SDRM_BN_Alloc((cc_u8*)b + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ tmp1 = SDRM_BN_Alloc((cc_u8*)c + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ // a
+ SDRM_MONT_Mul(a, EC_Src1->x, EC_Src1->x, Mont);
+ SDRM_BN_SHL(tmp1, a, 1);
+ SDRM_BN_Add(a, tmp1, a);
+ SDRM_BN_Add(a, a, EC_Src1->z2);
+ while(SDRM_BN_Cmp(a, Mont->Mod) >= 0)
+ {
+ SDRM_BN_Sub(a, a, Mont->Mod);
+ }
+
+ // b & c
+ SDRM_MONT_Mul(b, EC_Src1->y, EC_Src1->y, Mont); // b = (y1)^2
+ SDRM_MONT_Mul(c, b, b, Mont); // c = (y1)^4
+ SDRM_MONT_Mul(b, EC_Src1->x, b, Mont);
+ SDRM_BN_SHL(b, b, 1);
+ if (SDRM_BN_Cmp(b, Mont->Mod)>=0)
+ {
+ SDRM_BN_Sub(b, b, Mont->Mod);
+ }
+
+ // EC_Dst->x
+ SDRM_MONT_Mul(EC_Dst->x, a, a, Mont);
+ SDRM_BN_ModSub(EC_Dst->x, EC_Dst->x, b, Mont->Mod);
+
+ // EC_Dst->z
+ SDRM_MONT_Mul(EC_Dst->z, EC_Src1->y, EC_Src1->z, Mont);
+
+ // EC_Dst->y
+ SDRM_BN_SHL(EC_Dst->y, EC_Dst->x, 1);
+
+ if (SDRM_BN_Cmp(EC_Dst->y, Mont->Mod)>=0)
+ {
+ SDRM_BN_Sub(EC_Dst->y, EC_Dst->y, Mont->Mod);
+ }
+
+ SDRM_BN_Sub(EC_Dst->y, b, EC_Dst->y);
+
+ if (EC_Dst->y->sign)
+ {
+ SDRM_BN_Add(EC_Dst->y, EC_Dst->y, Mont->Mod);
+ }
+
+ SDRM_MONT_Mul(EC_Dst->y, a, EC_Dst->y, Mont);
+ SDRM_BN_ModSub(EC_Dst->y, EC_Dst->y, c, Mont->Mod);
+
+ // EC_Dst->z2
+ SDRM_MONT_Mul(EC_Dst->z2, c, EC_Dst->z2, Mont);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_EC_Chain
+ * @brief Chain Լ
+ * signed wondow method : size of window = 4
+ * chain for addition/subtraction of k Using sliding window method
+ *
+ * @param chain [out]destination
+ * @param L_Src [in]byte-length of chain
+ * @param Len_Src [in]number of doubling in chain
+ * @param k [in]source
+ * @param window_size [in]size of window
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if given value is incorrect
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_Chain(signed char *chain, cc_u32 *L_Src, cc_u32 *Len_Src, SDRM_BIG_NUM *k, int window_size)
+{
+ int i, j = 0, AddorSub, last = 0, doublings = 0;
+ int bits_k = 0, subtract=0, pos = 0, temp_1 = 0;
+ cc_u32 temp = 0;
+ cc_u32 numDoubling = 0; // number of doubling(= lshift)
+
+ // k ȿ check
+ if (k->sign)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ bits_k=(SDRM_BN_num_bits(k)-1);
+
+ // sliding window method ('06)
+ while(bits_k>=0)
+ {
+ if ((bits_k + 1) < window_size)
+ window_size = bits_k + 1;
+
+ if ((subtract == 0) || (subtract == 10))
+ {
+ AddorSub = 0;
+ }
+ else
+ {
+ AddorSub = 1;
+ }
+
+ for(i = bits_k; i >= bits_k - window_size + 1; i--)
+ {
+ temp <<= 1;
+ temp += AddorSub ^ SDRM_CheckBitUINT32(k->pData, i);
+ }
+
+ bits_k -= window_size;
+
+ if ((SDRM_CheckBitUINT32(k->pData, bits_k) == (cc_u32)1 - AddorSub) && (bits_k >= 0))
+ {
+ temp++;
+ AddorSub = 1 - AddorSub;
+ }
+
+ if ((bits_k == -1) && (AddorSub == 1))
+ temp++;
+
+ if (bits_k>=0)
+ {
+ if (SDRM_CheckBitUINT32(k->pData, bits_k)==1)
+ {
+ if ((subtract == 0) || (subtract == 10))
+ {
+ subtract = 1;
+ }
+ else
+ {
+ subtract = 11;
+ }
+
+ for(temp_1 = 0 ; SDRM_CheckBitUINT32(k->pData, bits_k)==1; bits_k--)
+ {
+ if (bits_k >=0)
+ {
+ temp_1++;
+ }
+ }
+ }
+ else
+ {
+ if ((subtract == 0) || (subtract == 10))
+ {
+ subtract = 0;
+ }
+ else
+ {
+ subtract = 10;
+ }
+
+ for(temp_1 = 0 ; SDRM_CheckBitUINT32(k->pData, bits_k)==0; bits_k--)
+ {
+ if (bits_k >=0)
+ {
+ temp_1++;
+ }
+ }
+ }
+
+ if (bits_k < 0)
+ {
+ last = 1;
+ }
+ }
+ else
+ {
+ if ((subtract == 0) || (subtract == 10))
+ {
+ subtract = 0;
+ }
+ else
+ {
+ subtract = 10;
+ }
+ }
+
+ j = temp >> window_size;
+
+ if (temp != 0)
+ {
+ for(doublings = 0; !(temp&0x1); doublings++)
+ {
+ temp >>= 1;
+ }
+ doublings += temp_1;
+ }
+ else
+ {
+ doublings = temp_1;
+ }
+
+ if (pos > 0)
+ {
+ for(i = temp ; i > j ; i>>=1)
+ {
+ chain[++pos] = 0;
+ numDoubling++;
+ }
+ }
+
+ if ((subtract==10) || (subtract == 11))
+ {
+ chain[++pos] = (char)((~temp + 1) & 0xff);
+ }
+ else
+ {
+ chain[++pos] = (char)((temp) & 0xff);
+ }
+
+ for( ; doublings > 0; doublings--)
+ {
+ chain[++pos] = 0;
+ numDoubling++;
+ }
+
+ if (last == 1)
+ {
+ if (AddorSub == 1)
+ {
+ chain[++pos] = -1;
+ }
+ }
+
+ temp = 0;
+ temp_1 = 0;
+ }
+
+ *L_Src = pos;
+ *Len_Src = numDoubling;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_EC_kP
+ * @brief get EC_Dst = kP by Montgomery Method
+ *
+ * @param ctx [in]ecc context
+ * @param EC_Dst [out]destination
+ * @param EC_Src [in]first element(P)
+ * @param k [in]second element(k)
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if the arguemnt represents a minus value
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_INFINITY_INPUT if the argument is a infinity value
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_kP(SDRM_ECC_CTX *ctx, SDRM_EC_POINT* EC_Dst, SDRM_EC_POINT *EC_Src, SDRM_BIG_NUM *k)
+{
+ int res, i;
+ int window_size = 4; // window size
+ int w_p = (1 << (window_size-1)) + 1; // pre-computation number
+// int add = 0, subtract = 0; // add : num_(addition + subtract)
+ // subtract : 0 - before = 0 & after = 0
+ // 10 - before = 1 & after = 0
+ // 1 - before = 0 & after = 1
+ // 11 - before = 1 & after = 1
+ // => 0 : no subtract / 1 : subtract
+ SDRM_EC_POINT *Pw[9] = {0}; // number of precomputation data : 9 = w_p = 2^(window_size-1) + 1
+ SDRM_BIG_MONT *Mont;
+ SDRM_BIG_NUM *new_a, *new_b;
+ SDRM_BIG_NUM *t1, *t2;
+ signed char chain[2 * SDRM_MAX_DIMENSION_ECC]; // DIMENSION_ECC : ecdsa.h define
+ cc_u32 length; // addition & subtrction chain length of k1 & k2
+ cc_u32 lenD; // number of doubling of addition & subtrction chain of k1 & k2
+
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 4);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ // k P ȿ check
+ if (k->sign)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (EC_Src->x->sign|EC_Src->y->sign)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ Mont = SDRM_MONT_Init(ctx->ECC_p->Size);
+ if (Mont == NULL)
+ {
+ free(pbBuf);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_MONT_Set(Mont, ctx->ECC_p);
+
+ new_a = SDRM_BN_Alloc(pbBuf, SDRM_ECC_BN_BUFSIZE);
+ new_b = SDRM_BN_Alloc((cc_u8*)new_a + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ t1 = SDRM_BN_Alloc((cc_u8*)new_b + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ t2 = SDRM_BN_Alloc((cc_u8*)t1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ if (SDRM_MONT_Zn2rzn(new_a, ctx->ECC_a, Mont) != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return CRYPTO_ERROR;
+ }
+
+ if (SDRM_MONT_Zn2rzn(new_b, ctx->ECC_b, Mont) != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return CRYPTO_ERROR;
+ }
+
+
+ //chain
+ res = SDRM_CTX_EC_Chain(chain, &length, &lenD, k, window_size);
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+
+ return CRYPTO_ERROR;
+ }
+
+ // pre-computation Data : Chunvosky algorithm
+ // Pw[1] = EC_Src
+ // Pw[2] = 3 * EC_Src
+ // Pw[3] = 5 * EC_Src
+ // Pw[4] = 7 * EC_Src
+ // ..................
+ for(i = 0; i < 9; i++)
+ {
+ Pw[i] = SDRM_ECC_Init();
+ if (Pw[i] == NULL)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ while (i > 0)
+ {
+ free(Pw[--i]);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+ }
+
+ SDRM_EC_COPY(Pw[1], EC_Src);
+
+ SDRM_MONT_Zn2rzn(Pw[1]->x, Pw[1]->x, Mont);
+ SDRM_MONT_Zn2rzn(Pw[1]->y, Pw[1]->y, Mont);
+ SDRM_MONT_Zn2rzn(Pw[1]->z, BN_One, Mont);
+
+ SDRM_BN_Copy(Pw[1]->z2, Pw[1]->z);
+ SDRM_BN_Copy(Pw[1]->z3, Pw[1]->z);
+
+ SDRM_EC_SET_ZERO(Pw[0]);
+ SDRM_CTX_EC_Double_Jc(Pw[0], Pw[1], new_a, new_b, Mont);
+
+ for (i = 2; i < w_p; i++)
+ {
+ SDRM_EC_SET_ZERO(Pw[i]);
+ SDRM_CTX_EC_Add_Jc(Pw[i], Pw[i-1], Pw[0], new_a, new_b, Mont);
+
+ SDRM_MONT_Mul(Pw[i]->z2, Pw[i]->z, Pw[i]->z, Mont);
+ SDRM_MONT_Mul(Pw[i]->z3, Pw[i]->z2, Pw[i]->z, Mont);
+ }
+
+ EC_Dst->IsInfinity = 1;
+
+ for(i = 0; i != (int)length; i++)
+ {
+ if (chain[i + 1]==0)
+ {
+ // EC_Dst = 2 * EC_Dst
+ SDRM_CTX_EC_Double_Jm(EC_Dst, EC_Dst, new_a, new_b, Mont);
+ lenD--;
+ }
+ else
+ {
+ SDRM_Mont_Jm2Jc(EC_Dst, new_a, new_b, Mont);
+ if (chain[i + 1]>0)
+ {
+ // EC_Dst = EC_Dst + Pw[(chain[i + 1]+1)/2]
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[(chain[i + 1]+1)/2], new_a, new_b, Mont);
+ }
+ else
+ {
+ // EC_Dst = EC_Dst - Pw[(chain[i + 1]]+1)/2]
+ SDRM_EC_COPY(Pw[0], Pw[(-chain[i + 1]+1)/2]);
+ SDRM_BN_Sub(Pw[0]->y, ctx->ECC_p, Pw[0]->y);
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[0], new_a, new_b, Mont);
+ }
+ SDRM_Mont_Jc2Jm(EC_Dst, new_a, new_b, Mont);
+ }
+ }
+
+ // montgomery reduction of EC_Dst
+ SDRM_MONT_Rzn2zn(EC_Dst->x, EC_Dst->x, Mont);
+ SDRM_MONT_Rzn2zn(EC_Dst->y, EC_Dst->y, Mont);
+ SDRM_MONT_Rzn2zn(EC_Dst->z, EC_Dst->z, Mont);
+
+ if (EC_Dst->z->Length == 0)
+ {
+ for(i = 0; i < 9; i++)
+ {
+ free(Pw[i]);
+ }
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+
+ EC_Dst->IsInfinity = 1;
+
+ return CRYPTO_INFINITY_INPUT;
+ }
+ // Convert coordinate : "Modified Jacobian" => "Affine"
+ // (EC_Dst->x) <= (EC_Dst->x) * { ((EC_Dst->z)^2)^-1 }
+ // (EC_Dst->y) <= (EC_Dst->y) * { (2*((EC_Dst->z)^3))^-1 }
+
+ SDRM_BN_ModMul(t1, EC_Dst->z, EC_Dst->z, ctx->ECC_p);
+ SDRM_BN_ModInv(t2, t1, ctx->ECC_p);
+ SDRM_BN_ModMul(EC_Dst->x, EC_Dst->x, t2, ctx->ECC_p);
+
+ SDRM_BN_ModMul(t1, t1, EC_Dst->z, ctx->ECC_p);
+ SDRM_BN_SHL(t1, t1, 1);
+ SDRM_BN_ModInv(t2, t1, ctx->ECC_p);
+ SDRM_BN_ModMul(EC_Dst->y, EC_Dst->y, t2, ctx->ECC_p);
+
+ // Memory Free
+ for(i = 0; i < 9; i++)
+ {
+ free(Pw[i]);
+ }
+
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_EC_2kP
+ * @brief get EC_Dst = k1*C1 + k2*C2
+ *
+ * @param ctx [in]ecc context
+ * @param EC_Dst [out]destination
+ * @param k1 [in]first element(k1)
+ * @param EC_Src1 [in]second element(C1)
+ * @param k2 [in]third element(k2)
+ * @param EC_Src2 [in]fourth element(C2)
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if the arguemnt represents a minus value
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_INFINITY_INPUT if the argument is a infinity value
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_EC_2kP(SDRM_ECC_CTX *ctx, SDRM_EC_POINT *EC_Dst, SDRM_BIG_NUM *k1, SDRM_EC_POINT *EC_Src1, SDRM_BIG_NUM *k2, SDRM_EC_POINT *EC_Src2)
+{
+ signed char chain[2][2 * SDRM_MAX_DIMENSION_ECC]; // addition/subtrction chain of k1 k2
+ cc_u32 length[2]; // addition/subtrction chain length of k1 k2
+ cc_u32 lenD[2]; // # of doubling of addition/subtrction chain of k1 k2
+ cc_u32 idx[2];
+ int window_size = 4; // window size
+ int w2 = (1 << (window_size - 1)) + 1; // 2^(window_size-1)+1 : the precomputation point number
+ int i, j, res;
+ SDRM_EC_POINT *Pw[2][9]; // precomputation data
+ SDRM_BIG_MONT *Mont=NULL;
+ SDRM_BIG_NUM *new_a, *new_b;
+ SDRM_BIG_NUM *t1, *t2; // Used in coordinate change from "Modified Jacobian" to "Affine"
+
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 4);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ // k1 & k2 & C1 & C2 ȿ check
+ if (k1->sign | k2->sign)
+ {
+ free(pbBuf);
+
+ return CRYPTO_ERROR;
+ }
+
+ if (EC_Src1->x->sign | EC_Src1->y->sign | EC_Src2->x->sign | EC_Src2->y->sign)
+ {
+ free(pbBuf);
+
+ return CRYPTO_ERROR;
+ }
+
+ Mont = SDRM_MONT_Init(ctx->ECC_p->Size);
+ SDRM_MONT_Set(Mont, ctx->ECC_p);
+
+ new_a = SDRM_BN_Alloc(pbBuf, SDRM_ECC_BN_BUFSIZE);
+ new_b = SDRM_BN_Alloc((cc_u8*)new_a + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ t1 = SDRM_BN_Alloc((cc_u8*)new_b + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ t2 = SDRM_BN_Alloc((cc_u8*)t1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ if (SDRM_MONT_Zn2rzn(new_a, ctx->ECC_a, Mont) != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return CRYPTO_ERROR;
+ }
+
+ if (SDRM_MONT_Zn2rzn(new_b, ctx->ECC_b, Mont) != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return CRYPTO_ERROR;
+ }
+
+ // chain
+ res = SDRM_CTX_EC_Chain(chain[0], &length[0], &lenD[0], k1, window_size);
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return res;
+ }
+
+ res = SDRM_CTX_EC_Chain(chain[1], &length[1], &lenD[1], k2, window_size);
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+ return res;
+ }
+
+ // Precomputation data
+ for(i = 0; i < 2; i++)
+ {
+// Pw[i] = (SDRM_EC_POINT **)malloc(sizeof(SDRM_EC_POINT *) * w2);
+// if (!Pw[i]) return CRYPTO_MEMORY_ALLOC_FAIL;
+ for(j = 0; j < 9; j++)
+ {
+ Pw[i][j] = SDRM_ECC_Init();
+ }
+ }
+
+ SDRM_EC_COPY(Pw[0][1], EC_Src1);
+ SDRM_EC_COPY(Pw[1][1], EC_Src2);
+
+ for (i=0;i<2;i++)
+ {
+ SDRM_MONT_Zn2rzn(Pw[i][1]->x, Pw[i][1]->x, Mont);
+ SDRM_MONT_Zn2rzn(Pw[i][1]->y, Pw[i][1]->y, Mont);
+ SDRM_MONT_Zn2rzn(Pw[i][1]->z, BN_One, Mont);
+ SDRM_BN_Copy(Pw[i][1]->z2, Pw[i][1]->z);
+ SDRM_BN_Copy(Pw[i][1]->z3, Pw[i][1]->z);
+ SDRM_CTX_EC_Double_Jc(Pw[i][0], Pw[i][1], new_a, new_b, Mont);
+
+ for (j=2;j<w2;j++)
+ {
+ SDRM_CTX_EC_Add_Jc(Pw[i][j], Pw[i][j-1], Pw[i][0], new_a, new_b, Mont);
+ SDRM_MONT_Mul(Pw[i][j]->z2, Pw[i][j]->z, Pw[i][j]->z, Mont);
+ SDRM_MONT_Mul(Pw[i][j]->z3, Pw[i][j]->z2, Pw[i][j]->z, Mont);
+ }
+ }
+
+ EC_Dst->IsInfinity = 1;
+ idx[0] = idx[1] = 1;
+
+ // 켱 doubling ū
+ if (lenD[0] != lenD[1])
+ {
+ i = ((lenD[0] > lenD[1]) ? 0 : 1);
+ for (;lenD[0] != lenD[1]; idx[i]++)
+ {
+ if (chain[i][idx[i]] == 0)
+ {
+ // EC_Dst = 2EC_Dst
+ SDRM_CTX_EC_Double_Jm(EC_Dst, EC_Dst, new_a, new_b, Mont);
+ lenD[i]--;
+ }
+ else
+ {
+ SDRM_Mont_Jm2Jc(EC_Dst, new_a, new_b, Mont);
+
+ if (chain[i][idx[i]]>0)
+ {
+ // EC_Dst = EC_Dst + Pw[i][(chain[i][idx[i]]+1)/2]
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[i][(chain[i][idx[i]]+1)/2], new_a, new_b, Mont);
+ }
+ else
+ {
+ // EC_Dst = EC_Dst - Pw[i][(chain[i][idx[i]]+1)/2]
+ SDRM_EC_COPY(Pw[i][0], Pw[i][(-chain[i][idx[i]]+1)/2]);
+ SDRM_BN_Sub(Pw[i][0]->y, ctx->ECC_p, Pw[i][0]->y);
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[i][0], new_a, new_b, Mont);
+ }
+ SDRM_Mont_Jc2Jm(EC_Dst, new_a, new_b, Mont);
+ }
+ }
+ }
+
+ while ((idx[0] <= length[0]) && (idx[1] <= length[1]))
+ {
+ if ((chain[0][idx[0]] == 0) && (chain[1][idx[1]] == 0))
+ {
+ // EC_Dst = 2EC_Dst
+ SDRM_CTX_EC_Double_Jm(EC_Dst, EC_Dst, new_a, new_b, Mont);
+ idx[0]++;
+ idx[1]++;
+ continue;
+ }
+
+ SDRM_Mont_Jm2Jc(EC_Dst, new_a, new_b, Mont);
+
+ if (chain[0][idx[0]]!=0)
+ {
+ if (chain[0][idx[0]]>0)
+ {
+ // EC_Dst = EC_Dst + Pw[0][(chain[0][idx[0]]+1)/2]
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[0][(chain[0][idx[0]] + 1) / 2], new_a, new_b, Mont);
+ }
+ else
+ {
+ // EC_Dst = EC_Dst - Pw[0][(chain[0][idx[0]]+1)/2]
+ SDRM_EC_COPY(Pw[0][0], Pw[0][(-chain[0][idx[0]] + 1) / 2]);
+ SDRM_BN_Sub(Pw[0][0]->y, ctx->ECC_p, Pw[0][0]->y);
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[0][0], new_a, new_b, Mont);
+ }
+
+ idx[0]++;
+
+ if (chain[1][idx[1]] != 0)
+ {
+ // make z^2, z^3 for next computation
+ SDRM_MONT_Mul(EC_Dst->z2, EC_Dst->z, EC_Dst->z, Mont);
+ SDRM_MONT_Mul(EC_Dst->z3, EC_Dst->z2, EC_Dst->z, Mont);
+ }
+ }
+
+ if (chain[1][idx[1]]!=0)
+ {
+ if (chain[1][idx[1]]>0)
+ {
+ // EC_Dst = EC_Dst + Pw[1][(chain[1][idx[1]]+1)/2]
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[1][(chain[1][idx[1]]+1)/2], new_a, new_b, Mont);
+ }
+ else
+ {
+ // EC_Dst = EC_Dst - Pw[1][(chain[1][idx[1]]+1)/2]
+ SDRM_EC_COPY(Pw[1][0], Pw[1][(-chain[1][idx[1]]+1)/2]);
+ SDRM_BN_Sub(Pw[1][0]->y, ctx->ECC_p, Pw[1][0]->y);
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[1][0], new_a, new_b, Mont);
+ }
+ idx[1]++;
+ }
+ SDRM_Mont_Jc2Jm(EC_Dst, new_a, new_b, Mont);
+ }
+
+ if ((idx[0]==length[0]) || (idx[1]==length[1]))
+ {
+ i = ((idx[0]==length[0]) ? 0 : 1);
+
+ SDRM_Mont_Jm2Jc(EC_Dst, new_a, new_b, Mont);
+
+ if (chain[i][idx[i]]>0)
+ {
+ // EC_Dst = EC_Dst + Pw[i][(chain[i][idx[i]]+1)/2]
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[i][(chain[i][idx[i]] + 1) / 2], new_a, new_b, Mont);
+ }
+ else
+ {
+ // EC_Dst = EC_Dst - Pw[i][(chain[i][idx[i]]+1)/2]
+ SDRM_EC_COPY(Pw[i][0], Pw[i][(-chain[i][idx[i]] + 1) / 2]);
+ SDRM_BN_Sub(Pw[i][0]->y, ctx->ECC_p, Pw[i][0]->y);
+ SDRM_CTX_EC_Add_Jc(EC_Dst, EC_Dst, Pw[i][0], new_a, new_b, Mont);
+ }
+ SDRM_Mont_Jc2Jm(EC_Dst, new_a, new_b, Mont);
+ }
+
+
+ // montgomery reduction of EC_Dst
+ SDRM_MONT_Rzn2zn(EC_Dst->x, EC_Dst->x, Mont);
+ SDRM_MONT_Rzn2zn(EC_Dst->y, EC_Dst->y, Mont);
+ SDRM_MONT_Rzn2zn(EC_Dst->z, EC_Dst->z, Mont);
+
+ if (EC_Dst->z->Length == 0)
+ {
+ for(i = 0; i < 2; i++)
+ {
+ for(j = 0; j < 9; j++)
+ {
+ free(Pw[i][j]);
+ }
+ }
+
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+
+ EC_Dst->IsInfinity = 1;
+
+ return CRYPTO_INFINITY_INPUT;
+ }
+
+ // ǥȯ : Modified Jacobian => Affine
+ // (EC_Dst->x) <= (EC_Dst->x) * { ((EC_Dst->z)^2)^-1 }
+ // (EC_Dst->y) <= (EC_Dst->y) * { (2*((EC_Dst->z)^3))^-1 }
+ SDRM_BN_ModMul(t1, EC_Dst->z, EC_Dst->z, ctx->ECC_p);
+ SDRM_BN_ModInv(t2, t1, ctx->ECC_p);
+ SDRM_BN_ModMul(EC_Dst->x, EC_Dst->x, t2, ctx->ECC_p);
+
+ SDRM_BN_ModMul(t2, t1, EC_Dst->z, ctx->ECC_p);
+ SDRM_BN_SHL(t2, t2, 1);
+ SDRM_BN_ModInv(t1, t2, ctx->ECC_p);
+ SDRM_BN_ModMul(EC_Dst->y, EC_Dst->y, t1, ctx->ECC_p);
+
+ for(i = 0; i < 2; i++)
+ {
+ for(j = 0; j < 9; j++)
+ {
+ free(Pw[i][j]);
+ }
+ }
+
+ free(pbBuf);
+ SDRM_MONT_Free(Mont);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/fast_math.c b/SPC/Src/base/fast_math.c
new file mode 100755
index 0000000..1905b70
--- /dev/null
+++ b/SPC/Src/base/fast_math.c
@@ -0,0 +1,906 @@
+/**
+ * @file fast_mathf.c
+ * @brief This file contains optimized implementations for severall basic arithmetical functions.
+ *
+ * [Optional] Detail description (major features, interface description, flow of control, and so on)
+ * @see [Optional] Related information
+
+ * Copyright 2008 by Samsung Electronics, Inc.,
+ *
+ * This software is the confidential and proprietary information
+ * of Samsung Electronics, Inc. ("Confidential Information"). You
+ * shall not disclose such Confidential Information and shall use
+ * it only in accordance with the terms of the license agreement
+ * you entered into with Samsung.
+ *
+ * \internal
+ * Author : Karen Ispiryan
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2008/08/28
+*/
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "CryptoCore.h"
+#include "CC_Constants.h"
+#include "bignum.h"
+
+#include "fast_math.h"
+
+/**
+ * @fn SDRM_ll_Cmp
+ * @brief Compare two large unsigned integers
+ *
+ * @param pFirstOperand [in] the first operand
+ * @param pSecondOperand [in] the second operand
+ *
+ * @return 0 if they are equal
+ * 1 if first bigger then second
+ * -1 if the seond one is bigger then first
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Cmp(const BasicWord *pFirstOperand, const BasicWord *pSecondOperand, unsigned uOperandLength)
+{
+ pFirstOperand += uOperandLength;
+ pSecondOperand += uOperandLength;
+
+ while (uOperandLength--) {
+ if (*--pFirstOperand != *--pSecondOperand)
+ {
+ if (*pFirstOperand < *pSecondOperand)
+ {
+ return -1;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+/**
+ * @fn SDRM_ll_Copy
+ * @brief Just copy two large unsigned integers from one into another
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Copy(BasicWord *pFirstOperand, const BasicWord *pSecondOperand, unsigned uOperandLength)
+{
+ while (uOperandLength--)
+ {
+ *pFirstOperand++ = *pSecondOperand++;
+ }
+}
+
+/**
+ * @fn SDRM_ll_bit_RShift
+ * @brief Shift large unsigned integer to the right by uBits
+ *
+ * @param pOperand [inout] pointer to the operand to be shifted
+ *
+ * @return Nothing
+ * @warning We have to be careful when using this function because it modifies uOperandLength+1 words
+ * that is by 1 word bigger then operand original size.
+ * WWW....Operand...WWW|W <- it modifies the word immediately after the last one of passed operand.
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_bit_RShift(IN OUT BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord uBits)
+{
+ BasicWord uLastIndex = (BasicWord)(uOperandLength - 1);
+ register BasicWord t;
+
+ while (uLastIndex--)
+ {
+ t = *pOperand >> uBits;
+ *pOperand = t | (*(pOperand + 1) << (BASICWORD_BITS_COUNT - uBits));
+ pOperand++;
+ }
+ *pOperand >>= uBits;
+}
+
+/**
+ * @fn SDRM_ll_bit_LShift
+ * @brief Shift large unsigned integer to the left by uBits
+ *
+ * @param pOperand [inout] pointer to the operand to be shifted
+ *
+ * @return Nothing
+ * @warning We have to be careful when using this function because it modifies uOperandLength+1 words
+ * that is by 1 word bigger then operand original size.
+ * It modifies the word immediately prior to the first one of passed operand -> W|WWW....Operand...WWW
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_bit_LShift(IN OUT BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord uBits)
+{
+ BasicWord uLastIndex = (BasicWord)(uOperandLength - 1);
+ BasicWord t;
+
+ pOperand += uOperandLength-1;
+ while (uLastIndex--)
+ {
+ t = *pOperand << uBits;
+ *pOperand = t | (*(pOperand - 1) >> (BASICWORD_BITS_COUNT - uBits));
+ pOperand--;
+ }
+ *pOperand <<= uBits;
+}
+
+/**
+ * @fn SDRM_ll_getMSW
+ * @brief Return index of most significant word.
+ *
+ * @param pOperand [in] pointer to the large integer.
+ *
+ * @return The index of most significant word.
+ * -1 if passed integer actually is equal to 0.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_getMSW(IN const BasicWord *pOperand, IN BasicWord uOperandLength)
+{
+ int nEl;
+ for(nEl = uOperandLength - 1; nEl >= 0; nEl--)
+ {
+ if (0 != pOperand[nEl])
+ {
+ break;
+ }
+ }
+ return nEl;
+}
+
+/**
+ * @fn SDRM_ll_getMSB
+ * @brief Find the leftmost non-zero bit in passed unsigned integer.
+ *
+ * @param oneWord [in] value of unsigned integer
+ *
+ * @return Position of leftmost non-zero bit.
+ * @warning Actually this function returns the position of leftmost non-zero bit started from the end of the integer.
+ * For example if we considering the unsigned integer with value 0x80000000 then SDRM_ll_getMSB will return 0 as a result.
+ * Or in the case if integer has value equal t 1, then SDRM_ll_getMSB will return BASICWORD_BITS_COUNT as a result.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_getMSB(IN BasicWord oneWord)
+{
+ register BasicWord mask = (1 << (BASICWORD_BITS_COUNT-1));
+ int nPos = 0;
+
+ if ( !oneWord )
+ return BASICWORD_BITS_COUNT;
+
+ while (!(oneWord & mask))
+ {
+ nPos++;
+ mask >>= 1;
+ }
+
+ return nPos;
+}
+
+/**
+ * @fn SDRM_ll_bit_getBitValue
+ * @brief Return one bit value in the large integer number.
+ *
+ * @param pOperand [in] pointer to large integer
+ * @param nBit [in] bit position in the large integer.
+ *
+ * @return 0 or 1 depends on actual bit value.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_bit_getBitValue(IN BasicWord *pOperand, IN BasicWord nBit)
+{
+ BasicWord uOrdNum = nBit / BASICWORD_BITS_COUNT;
+ BasicWord uBitNum = nBit % BASICWORD_BITS_COUNT;
+
+ return (pOperand[uOrdNum] >> uBitNum) & 0x1;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_bit_getBitsValue(IN const BasicWord *pOperand, IN BasicWord uStartBit, IN BasicWord uBitsCount)
+{
+ int nValueLen, i;
+ BasicWord uValue = 0;
+ BasicWord uStartOrdNum = uStartBit / BASICWORD_BITS_COUNT; /* number of ords */
+ BasicWord uStartBitNum = uStartBit % BASICWORD_BITS_COUNT; /* number of bits in remainder BasicWord */
+
+ if((nValueLen = (int)(uStartBitNum + 1 - uBitsCount)) >= 0)
+ {
+ for(i = uStartBitNum; i >= nValueLen; i--)
+ {
+ uValue = (BasicWord)(((pOperand[uStartOrdNum] >> i) & 1) | (uValue << 1));
+ }
+ }
+ else
+ {
+ nValueLen = uBitsCount - uStartBitNum - 1;
+ for(i = uStartBitNum; i >= 0; i--)
+ {
+ uValue = (BasicWord)(((pOperand[uStartOrdNum] >> i) & 1) | (uValue << 1));
+ }
+
+ uStartOrdNum--;
+ nValueLen = BASICWORD_BITS_COUNT - nValueLen;
+ for(i = BASICWORD_BITS_COUNT - 1; i >= nValueLen; i--)
+ {
+ uValue = (BasicWord)(((pOperand[uStartOrdNum] >> i) & 1) | (uValue << 1));
+ }
+ }
+
+ do
+ {
+ if(0 != (uValue & 1))
+ {
+ break;
+ }
+ uValue >>= 1;
+ } while(1);
+
+ uValue = uValue >> 1; /* get rid of least significant bit */
+
+ return uValue;
+}
+
+/**
+ * @fn SDRM_ll_Add
+ * @brief Add two large unsigned integers that have the same size.
+ *
+ * @param pFirstOperand [in] pointer to first large integer
+ * @param pSecondOperand [in] pointer to second large integer
+ * @param uOperandsLength [in] length of the operands in words
+ * @param pResult [out] pointer to result of subtraction
+ *
+ * @return carry if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Add(IN const BasicWord *pFirstOperand,
+ IN const BasicWord *pSecondOperand,
+ IN BasicWord uOperandsLength,
+ OUT BasicWord *pResult)
+{
+ unsigned i = 1;
+ register BasicWord rh;
+ register BasicWord fo, so, rl;
+
+ fo = *pFirstOperand++;
+ so = *pSecondOperand++;
+ _add_add_(fo,so,0,rl,rh)
+ *pResult++ = rl;
+ for (; i < uOperandsLength; i++)
+ {
+ fo = *pFirstOperand++;
+ so = *pSecondOperand++;
+ _add_add_(fo,so,rh,rl,rh)
+ *pResult++ = rl;
+ }
+
+ return rh;
+}
+
+/**
+ * @fn SDRM_ll_AddCarry
+ * @brief Add carry to large unsigned integer
+ *
+ * @param oneWord [in] value of carry
+ * @param pOperand [inout] pointer to large integer
+ * @param uOperandLength [in] length of the second operand in words
+ *
+ * @return carry if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_AddCarry(IN BasicWord oneWord, IN BasicWord *pOperand, IN BasicWord uOperandLength)
+{
+ BasicWord i = 1;
+ register BasicWord ow = oneWord;
+
+ if ((pOperand[0] += ow) >= ow)
+ {
+ return 0;
+ }
+
+ while(i < uOperandLength)
+ {
+ if(++pOperand[i++] != 0)
+ {
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/**
+ * @fn SDRM_ll_Sub
+ * @brief Subtract two large unsigned integers that have the same size.
+ *
+ * @param pFirstOperand [in] pointer to first large integer
+ * @param pSecondOperand [in] pointer to second large integer
+ * @param uOperandsLength [in] length of the operands in words
+ * @param pResult [out] pointer to result of subtraction
+ *
+ * @return borrow if so.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Sub(IN const BasicWord *pFirstOperand,
+ IN const BasicWord *pSecondOperand,
+ IN BasicWord uOperandsLength,
+ OUT BasicWord *pResult)
+{
+ register BasicWord temp, borrow = 0;
+
+ while (uOperandsLength--)
+ {
+ temp = *pFirstOperand - *pSecondOperand - borrow;
+ borrow = (borrow && (*pFirstOperand == *pSecondOperand)) || (*pFirstOperand < *pSecondOperand);
+ *pResult++ = temp;
+ pFirstOperand++;
+ pSecondOperand++;
+ }
+ return (borrow);
+}
+
+/**
+ * @fn SDRM_ll_Mul1
+ * @brief Multiply large integer by one word.
+ * Result = oneWord*SecondOperand.
+ *
+ * @param oneWord [in] value of first multiplayer.
+ * @param pSecondOperand [in] pointer to large integer
+ * @param uSecondOperandsLength [in] length of the second operand in words
+ * @param pResult [out] pointer to result of multiplication
+ *
+ * @warning Routine doesn't store the last word of multiplication result,
+ * so we have to be carefull and take care about it after calling this function.
+ */
+CRYPTOCORE_INTERNAL BasicWord SDRM_ll_Mul1(IN BasicWord oneWord,
+ IN BasicWord *pSecondOperand, BasicWord uSecondOperandsLength,
+ IN OUT BasicWord *pResult)
+{
+ register BasicWord ow = oneWord;
+ register BasicWord rh, op2, r;
+
+ op2 = *pSecondOperand++;
+ r = *pResult;
+ _mul_add_add(op2, ow, 0, 0, r, rh)
+ *pResult++ = r;
+ while ( --uSecondOperandsLength )
+ {
+ op2 = *pSecondOperand++;
+ r = *pResult;
+ _mul_add_add(op2, ow, 0, rh, r, rh)
+ *pResult++ = r;
+ }
+
+ return rh;
+}
+
+/**
+ * @fn SDRM_ll_Mul1
+ * @brief Multiply large integer by one word and add result to the another large integer.
+ * Result += oneWord*SecondOperand.
+ *
+ * @param oneWord [in] value of first multiplayer.
+ * @param pSecondOperand [in] pointer to large integer
+ * @param uSecondOperandsLength [in] length of the second operand in words
+ * @param pResult [inout] pointer to result of multiplication
+ *
+ * @warning Routine doesn't store the last word of multiplication result,
+ * so we have to be carefull and take care about it after calling this function.
+ */
+CRYPTOCORE_INTERNAL BasicWord SDRM_ll_MulAdd1(IN BasicWord oneWord,
+ IN BasicWord *pSecondOperand, BasicWord uSecondOperandsLength,
+ IN OUT BasicWord *pResult)
+{
+ register BasicWord ow = oneWord;
+ register BasicWord rh, op2, r;
+
+ op2 = *pSecondOperand++;
+ r = *pResult;
+ _mul_add_add(op2, ow, r, 0, r, rh)
+ *pResult++ = r;
+ while (--uSecondOperandsLength)
+ {
+ op2 = *pSecondOperand++;
+ r = *pResult;
+ _mul_add_add(op2, ow, r, rh, r, rh)
+ *pResult++ = r;
+ }
+
+ return rh;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_MulAdd(IN BasicWord *pFirstOperand, IN BasicWord uFirstOperandsLength,
+ IN BasicWord *pSecondOperand, IN BasicWord uSecondOperandsLength,
+ OUT BasicWord *pResult)
+{
+ while (uFirstOperandsLength--)
+ {
+ *(pResult+uSecondOperandsLength) = SDRM_ll_MulAdd1(*pFirstOperand++, pSecondOperand, uSecondOperandsLength, pResult);
+ pResult++;
+ }
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Mul(IN BasicWord *pFirstOperand, IN BasicWord uFirstOperandsLength,
+ IN BasicWord *pSecondOperand, IN BasicWord uSecondOperandsLength,
+ OUT BasicWord *pResult)
+{
+ *(pResult+uSecondOperandsLength) = SDRM_ll_Mul1(*pFirstOperand++, pSecondOperand, uSecondOperandsLength, pResult);
+ while (--uFirstOperandsLength)
+ {
+ *(pResult+uSecondOperandsLength) = SDRM_ll_MulAdd1(*pFirstOperand++, pSecondOperand, uSecondOperandsLength, pResult);
+ pResult++;
+ }
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_Square(IN BasicWord *pOperand, IN BasicWord uOperandLength, OUT BasicWord *pResult)
+{
+ BasicWord i;
+ BasicWord j;
+ BasicWord t;
+ BasicWord len;
+
+ /* Compute the product of diagonal elements */
+ for(i = 0; i < uOperandLength; i++)
+ {
+ BasicWord rl, rh, op;
+ op = pOperand[i];
+ _mul_add_add(op,op,0,0,rl,rh)
+ pResult[i * 2] = rl;
+ pResult[i * 2 + 1] = rh;
+ }
+
+ /* Divide the result by 2 */
+ SDRM_ll_bit_RShift(pResult, (BasicWord)(uOperandLength << 1), 1);
+
+ /* Add the half of the rest part of squaring to the half of diagonal */
+ i = 0;
+ j = 0;
+ len = uOperandLength;
+ while (--len)
+ {
+ t = SDRM_ll_MulAdd1(pOperand[i], pOperand+i+1, (BasicWord)len, pResult + j + 1);
+ SDRM_ll_AddCarry(t, pResult+len+j+1, len+1);
+ j+=2;
+ i++;
+ }
+
+ /* Multiply the result by 2 */
+ SDRM_ll_bit_LShift(pResult, (BasicWord)(uOperandLength << 1), 1);
+
+ /* Restore the least significant bit */
+ if((pOperand[0] & 0x1L) != 0)
+ {
+ pResult[0] |= 0x1L;
+ }
+}
+
+/**
+ * @fn SDRM_ll_Rem
+ * @brief Compute reminder of division.
+ *
+ * @warning This is a temporary solution. It has been created mostly for testing purposes.
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_Rem(IN BasicWord *pOperand, IN BasicWord uOperandLengthInBytes,
+ IN BasicWord *pModule, IN BasicWord uModuleLengthInBytes,
+ OUT BasicWord *pResult)
+{
+ BasicWord nWordX = DIV_BY_ORD_BYTES_COUNT(uOperandLengthInBytes);
+ BasicWord nWordP;
+ BasicWord *pTempResult;
+
+ nWordX = SDRM_ll_getMSW(pOperand, nWordX) + 1;
+ nWordP = SDRM_ll_getMSW(pModule, nWordX) + 1;
+
+ pTempResult = calloc(nWordX+1,BASICWORD_BYTES_COUNT);
+ if (!pTempResult)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_ll_Copy(pTempResult, pOperand, nWordX);
+
+ SDRM_DWD_Classical_REDC(pTempResult, nWordX, pModule, nWordP);
+
+ SDRM_ll_Copy(pResult, pTempResult, nWordP);
+
+ free(pTempResult);
+
+ return 0;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_mont_Inverse(OUT BasicWord *out, IN BasicWord oneWord)
+{
+ /*
+ t = m^(-1) mod b
+ m^(-1) = t*(2-m*t) mod (b^2)
+
+ So we are just using some simple iteration t <- t*(2-m*t) and check the condition that t*m == 1 mod b.
+ */
+ BasicWord t = oneWord;
+ BasicWord r = t*t;
+
+ while (r != 1)
+ {
+ t = t*(2 - r);
+ r = oneWord*t;
+
+ if (!(r) && !(t))
+ {
+ return -1;
+ }
+ }
+
+ *out = (BasicWord)(-t);
+
+ return 0;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL void SDRM_ll_mont_Rem(IN OUT BasicWord *pFirstOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLength,
+ IN BasicWord inv)
+{
+ BasicWord lp; /* leftmost non-zero element */
+ BasicWord temp, temp_longs;
+ BasicWord carry = 0;
+
+ temp_longs = uModuleLength;
+ lp = SDRM_ll_getMSW(pModule, uModuleLength) + 1;
+ do
+ {
+ temp = inv * pFirstOperand[0];
+ temp = SDRM_ll_MulAdd1(temp, pModule, lp, pFirstOperand);
+ carry += SDRM_ll_AddCarry(temp, pFirstOperand+uModuleLength, temp_longs);
+ pFirstOperand++;
+ } while(--temp_longs);
+
+ while(carry)
+ {
+ if(SDRM_ll_Sub(pFirstOperand, pModule, uModuleLength, pFirstOperand))
+ carry--;
+ }
+
+ while(SDRM_ll_Cmp(pFirstOperand, pModule, uModuleLength) >= 0)
+ {
+ SDRM_ll_Sub(pFirstOperand, pModule, uModuleLength, pFirstOperand);
+ }
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_mont_Square(IN BasicWord *pFirstOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLength,
+ IN BasicWord Inv,
+ OUT BasicWord *pResult)
+{
+ pResult[uModuleLength * 2] = 0;
+
+ /* Compute square */
+ SDRM_ll_Square(pFirstOperand, uModuleLength, pResult);
+ /* Compute the modulo by the Montgomery */
+ SDRM_ll_mont_Rem(pResult, pModule, uModuleLength, Inv);
+
+ /* Note: The next step for making toolkit faster is to redesign Montgomery functions and remove all memory allocation
+ and copying from there. That means that exponentiation routine should be redesigne as well. */
+ memcpy(pFirstOperand, pResult + uModuleLength, MUL_BY_ORD_BYTES_COUNT(uModuleLength));
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+CRYPTOCORE_INTERNAL int SDRM_ll_mont_Mul(IN BasicWord *pFirstOperand,
+ IN BasicWord *pSecondOperand,
+ IN BasicWord *pModule,
+ IN BasicWord uModuleLengthInBytes,
+ IN BasicWord Inv,
+ OUT BasicWord *pResult)
+{
+ BasicWord P_longs; /* number of longs in P, X and Y */
+ BasicWord lx, ly; /* leftmost non-zero elements */
+ BasicWord *XY; /* pointer to product result */
+
+ P_longs = DIV_BY_ORD_BYTES_COUNT(uModuleLengthInBytes);
+ XY = (BasicWord*)calloc(2 * P_longs + 1, BASICWORD_BYTES_COUNT);
+ if(!XY)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ /* Find leftmost non-zero elements */
+ lx = SDRM_ll_getMSW(pFirstOperand, P_longs) + 1;
+ ly = SDRM_ll_getMSW(pSecondOperand, P_longs) + 1;
+ /* Compute the product of FirstOperand and SecondOperand */
+ SDRM_ll_MulAdd(pFirstOperand, lx, pSecondOperand, ly, XY);
+ /* Compute the modulo by the Montgomery */
+ SDRM_ll_mont_Rem(XY, pModule, P_longs, Inv);
+
+ /* Note: The next step for making toolkit faster is to redesign Montgomery functions and remove all memory allocation
+ and copying from there. That means that exponentiation routine should be redesigne as well. */
+ memcpy(pResult, XY + P_longs, uModuleLengthInBytes);
+ free(XY);
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn [Mandatory] Function name
+ * @brief [Mandatory] Description of major features and algorithms
+ *
+ * @param [Optional] description of parameters ([one among in, out, inout])
+ *
+ * @return [Optional] description of return value
+ * @warning [Optional] constraints or notices
+ * @see [Optional] related information
+ */
+
+#define _win_pval(i) (BasicWord*)(temp_1 + (i) * uOrdsP)
+CRYPTOCORE_INTERNAL int SDRM_ll_ExpMod( IN BasicWord *pBase, IN BasicWord uBaseLengthInBytes,
+ IN BasicWord *pExponent, IN BasicWord uExponentLengthInBytes,
+ IN BasicWord *pModule, IN BasicWord uModuleLengthInBytes,
+ OUT BasicWord *pResult)
+{
+ int nStatus = CRYPTO_SUCCESS;
+ BasicWord *temp_1, inv;
+ BasicWord *m_temp, *m_sq;
+ int n_mem, win_len;
+ BasicWord uOrdsY, uOrdsP;
+ int i, j, k, eb = 0;
+ BasicWord nIndex;
+ int ly;
+ /* The values of num_squar array given below represents the lengths of particular window values in bits */
+ /* We have to take into account that we store only odd values. */
+ /* window values -> 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, etc... */
+ /* num_squar -> 1, 2, 3, 3, 4, 4, 4, 4, 5, 5, etc... */
+ int num_squar[32] = {1, 2, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,};
+
+ uOrdsY = DIV_BY_ORD_BYTES_COUNT(uExponentLengthInBytes);
+ uOrdsP = DIV_BY_ORD_BYTES_COUNT(uModuleLengthInBytes);
+ /* Find the leftmost non-zero element of modulo */
+ if(-1 == SDRM_ll_getMSW(pModule, uOrdsP))
+ return CRYPTO_INVALID_ARGUMENT;
+ /* Find the leftmost non-zero element of exponent */
+ ly = SDRM_ll_getMSW(pExponent, uOrdsY);
+
+ /* if exponent equal to 0 result is 1 */
+ if(-1 == ly)
+ {
+ memset(pResult, 0, uModuleLengthInBytes);
+ pResult[0] = 1;
+ return CRYPTO_SUCCESS;
+ }
+
+ /* Find the leftmost non-zero bit in this element */
+ eb = SDRM_ll_getMSB(pExponent[ly]);
+
+ /* Choose window length */
+ k = BASICWORD_BITS_COUNT * (ly + 1) - eb - 1;
+ if(k < 512)
+ {
+ win_len = 4;
+ }
+ else if((k >= 512) && (k < 1024))
+ {
+ win_len = 5;
+ }
+ else
+ { /* for any k >= 1024 */
+ win_len = 6;
+ }
+
+ /* Obtain number of precomputed elements */
+ n_mem = (1 << (win_len - 1)) + 1;
+ /* Allocate storage for precomputetd values */
+ temp_1 = (BasicWord*)calloc((n_mem + 1) * uOrdsP, BASICWORD_BYTES_COUNT);
+ if (!temp_1)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ /* Allocate temporary storages */
+ m_temp = (BasicWord*)calloc(2 * uOrdsP + 1, BASICWORD_BYTES_COUNT);
+ if (!m_temp)
+ {
+ free(temp_1);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+ m_sq = (BasicWord*)malloc(2 * uModuleLengthInBytes + BASICWORD_BYTES_COUNT);
+ if (!m_sq)
+ {
+ free(temp_1);
+ free(m_temp);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ do
+ {
+ /* Convert Base to Montgomery form */
+ inv = *pModule;
+ if (SDRM_ll_mont_Inverse(&inv, inv) != 0)
+ {
+ nStatus = CRYPTO_INVERSE_NOT_EXIST;
+ break;
+ }
+ /* Move n up "mlen" words into a */
+ /* Actually we obtain X*R where R is Montgomery reduction coefficient */
+ memcpy(m_temp + uOrdsP, pBase, uBaseLengthInBytes);
+
+ /* Do the division - dump the quotient in the high-order words */
+ if((nStatus = SDRM_ll_Rem(m_temp, (BasicWord)(uBaseLengthInBytes + uModuleLengthInBytes), pModule, uModuleLengthInBytes, temp_1)) != CRYPTO_SUCCESS)
+ {
+ break;
+ }
+
+ /* After this operation we will obtain X*R mod P */
+ memcpy(m_temp, temp_1, uModuleLengthInBytes);
+
+ /* Initialization */
+ /* Compute X^2*R mod P */
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ memcpy(_win_pval(n_mem), m_temp, uModuleLengthInBytes);
+
+ /* We have to calculate X^3, X^5 and so on ... */
+ /* For making that we just use previously calculated value of X^2 and use it as multiplayer consecutively. */
+ /* element (0) <- X*R mod P */
+ /* element (1) <- X^3*R = element (0) * X^2*R mod P */
+ /* element (2) <- X^5*R = element (1) * X^2*R mod P */
+ /* element (3) <- X^7*R = element (2) * X^2*R mod P */
+ /* element (4) <- ... */
+ for(i = 1; i < n_mem; i++)
+ {
+ SDRM_ll_mont_Mul(_win_pval(i - 1), _win_pval(n_mem), pModule, uModuleLengthInBytes, inv, _win_pval(i));
+ }
+
+ /* OK, now let compute R mod P */
+ memset(m_temp, 0, 2 * uModuleLengthInBytes + 1);
+ m_temp[uOrdsP] = 1;
+ if((nStatus = SDRM_ll_Rem(m_temp, (BasicWord)(uModuleLengthInBytes + BASICWORD_BYTES_COUNT), pModule, uModuleLengthInBytes, m_temp)) != CRYPTO_SUCCESS)
+ break;
+
+ /* Compute the exponent */
+ for(i = k; i >= win_len-1; )
+ {
+ /* Note: I don't like this solution, but it was easy and from that point of view was suitable for short development cycle.
+ During further refactoring exponent bits processing should be changed in a way that makes possible to perform
+ all computations inside of the one cycle. See some additional related comments right after the body of this cycle.*/
+
+ /* Find next suitable bits for computations */
+ nIndex = (BasicWord)SDRM_ll_bit_getBitsValue(pExponent, (BasicWord)i, (BasicWord)win_len);
+
+ /* Square the intermediate result */
+ for(j = 0; j < num_squar[nIndex]; j++)
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ }
+
+ /* Multiply with the precomputed data */
+ SDRM_ll_mont_Mul(m_temp, _win_pval(nIndex), pModule, uModuleLengthInBytes, inv, m_temp);
+
+ /* Square (win_len - num_squar) times */
+ for(j = 0 ; j < win_len - num_squar[nIndex]; j++)
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ }
+
+ i -= win_len;
+
+ /* perform squering till first nonzero bit */
+ while((i >= win_len - 1) && !SDRM_ll_bit_getBitValue(pExponent, (BasicWord)i))
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ i--;
+ }
+ }
+
+ /* Note: Actually it would be batter to perform remeined last bits processing inside of the exponent computation main cycle.
+ So the next refactoring step is to modify this routine and make things in that way. */
+
+ /* if we still have some bit(s) ... */
+ /* perform squering till first nonzero bit */
+ while((i >= 0) && !SDRM_ll_bit_getBitValue(pExponent, (BasicWord)i))
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ i--;
+ }
+
+ /* if we still have some nonzero bit(s) ... */
+ if(i >= 0)
+ {
+ nIndex = (BasicWord)SDRM_ll_bit_getBitsValue(pExponent, (BasicWord)i, (BasicWord)(i + 1));
+ for(j = 0; j < num_squar[nIndex]; j++)
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ }
+
+ /* Multiply with precomputed data*/
+ SDRM_ll_mont_Mul(m_temp, _win_pval(nIndex), pModule, uModuleLengthInBytes, inv, m_temp);
+
+ /* Square (win_len - num_squar) times */
+ for(j = 0 ; j <= i - num_squar[nIndex]; j++)
+ {
+ SDRM_ll_mont_Square(m_temp, pModule, uOrdsP, inv, m_sq);
+ }
+ }
+
+ /* Convert the result out of Montgomery form */
+ SDRM_ll_mont_Rem(m_temp, pModule, uOrdsP, inv);
+ memcpy(pResult, m_temp + uOrdsP, uModuleLengthInBytes);
+ /* This is the tricky place :) Actually we have (X*R+R) mod P. */
+ /* So we just need to remove that additional R */
+ pResult[0]--;
+
+ break; /* always break this loop */
+ } while(0);
+
+ free(temp_1);
+ free(m_temp);
+ free(m_sq);
+
+ return nStatus;
+}
diff --git a/SPC/Src/base/hash.c b/SPC/Src/base/hash.c
new file mode 100755
index 0000000..3081353
--- /dev/null
+++ b/SPC/Src/base/hash.c
@@ -0,0 +1,578 @@
+/**
+ * \file hash.c
+ * @brief hash API function
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/08
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "hash.h"
+#include "sha1.h"
+#include "sha2.h"
+#include "md5.h"
+
+////////////////////////////////////////////////////////////////////////////
+// functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_SHA1_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA1_Init(crt->ctx->sha1ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA1_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]cc_u8-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA1_Update(crt->ctx->sha1ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA1_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA1_Final(crt->ctx->sha1ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA1_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA1_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA1_Init(crt->ctx->sha1ctx);
+ SDRM_SHA1_Update(crt->ctx->sha1ctx, msg, msglen);
+ SDRM_SHA1_Final(crt->ctx->sha1ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA224_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA224_Init(crt->ctx->sha224ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA224_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA224_Update(crt->ctx->sha224ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA224_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL)) {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA224_Final(crt->ctx->sha224ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA224_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA224_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA224_Init(crt->ctx->sha224ctx);
+ SDRM_SHA224_Update(crt->ctx->sha224ctx, msg, msglen);
+ SDRM_SHA224_Final(crt->ctx->sha224ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA256_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA256_Init(crt->ctx->sha256ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA256_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA256_Update(crt->ctx->sha256ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA256_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL)) {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA256_Final(crt->ctx->sha256ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA256_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA256_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA256_Init(crt->ctx->sha256ctx);
+ SDRM_SHA256_Update(crt->ctx->sha256ctx, msg, msglen);
+ SDRM_SHA256_Final(crt->ctx->sha256ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+#ifndef _OP64_NOTSUPPORTED
+
+/*
+ * @fn SDRM_SHA384_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA384_Init(crt->ctx->sha384ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA384_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA384_Update(crt->ctx->sha384ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA384_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA384_Final(crt->ctx->sha384ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA384_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA384_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA384_Init(crt->ctx->sha384ctx);
+ SDRM_SHA384_Update(crt->ctx->sha384ctx, msg, msglen);
+ SDRM_SHA384_Final(crt->ctx->sha384ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA512_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA512_Init(crt->ctx->sha512ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA512_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA512_Update(crt->ctx->sha512ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA512_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA512_Final(crt->ctx->sha512ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SHA512_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_SHA512_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_SHA512_Init(crt->ctx->sha512ctx);
+ SDRM_SHA512_Update(crt->ctx->sha512ctx, msg, msglen);
+ SDRM_SHA512_Final(crt->ctx->sha512ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+#endif //_OP64_NOTSUPPORTED
+
+/*
+ * @fn SDRM_MD5_init
+ * @brief initialize CryptoCoreContainer context
+ *
+ * @param crt [out]CryptoCoreContainer context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_init(CryptoCoreContainer *crt)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_MD5_Init(crt->ctx->md5ctx);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_MD5_update
+ * @brief process a message block
+ *
+ * @param crt [out]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_MD5_Update(crt->ctx->md5ctx, msg, msglen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_MD5_final
+ * @brief get hashed message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_final(CryptoCoreContainer *crt, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_MD5_Final(crt->ctx->md5ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_MD5_hash
+ * @brief get hashed message from message
+ *
+ * @param crt [in]CryptoCoreContainer context
+ * @param msg [in]message
+ * @param msglen [in]byte-length of msg
+ * @param output [out]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_MD5_hash(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msglen, cc_u8 *output)
+{
+ if ((crt == NULL) || (crt->ctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_MD5_Init(crt->ctx->md5ctx);
+ SDRM_MD5_Update(crt->ctx->md5ctx, msg, msglen);
+ SDRM_MD5_Final(crt->ctx->md5ctx, output);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/md5.c b/SPC/Src/base/md5.c
new file mode 100755
index 0000000..3574d7a
--- /dev/null
+++ b/SPC/Src/base/md5.c
@@ -0,0 +1,289 @@
+/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
+rights reserved.
+
+License to copy and use this software is granted provided that it
+is identified as the "RSA Data Security, Inc. MD5 Message-Digest
+Algorithm" in all material mentioning or referencing this software
+or this function.
+
+License is also granted to make and use derivative works provided
+that such works are identified as "derived from the RSA Data
+Security, Inc. MD5 Message-Digest Algorithm" in all material
+mentioning or referencing the derived work.
+
+RSA Data Security, Inc. makes no representations concerning either
+the merchantability of this software or the suitability of this
+software for any particular purpose. It is provided "as is"
+without express or implied warranty of any kind.
+
+These notices must be retained in any copies of any part of this
+documentation and/or software.
+ */
+
+/*
+ * MD5 implementation
+ */
+
+#include "md5.h"
+
+//Constants for MD5Transform routine.
+static cc_u8 S[4][4] = {
+ {7, 12, 17, 22},
+ {5, 9, 14, 20},
+ {4, 11, 16, 23},
+ {6, 10, 15, 21}
+};
+
+static void SDRM_MD5Transform(cc_u32 [4], const unsigned char*);
+static void SDRM_Encode (unsigned char *, cc_u32 *, cc_u32);
+static void SDRM_Decode (cc_u32 *, const unsigned char *, cc_u32);
+
+static unsigned char PADDING[64] = {0x80, 0,};
+
+/* F, G, H and I are basic MD5 functions.
+ */
+//#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
+//#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
+//#define H(x, y, z) ((x) ^ (y) ^ (z))
+//#define I(x, y, z) ((y) ^ ((x) | (~z)))
+
+#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
+#define G(x, y, z) F(z, x, y)
+#define H(x, y, z) ((x) ^ (y) ^ (z))
+#define I(x, y, z) ((y) ^ ((x) | ~(z)))
+
+
+/* ROTATE_LEFT rotates x left n bits.
+ */
+#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n))))
+
+/* FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
+Rotation is separate from addition to prevent recomputation.
+ */
+#define FF(a, b, c, d, x, s, ac) { \
+ (a) += F ((b), (c), (d)) + (x) + (cc_u32)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+}
+#define GG(a, b, c, d, x, s, ac) { \
+ (a) += G ((b), (c), (d)) + (x) + (cc_u32)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+}
+#define HH(a, b, c, d, x, s, ac) { \
+ (a) += H ((b), (c), (d)) + (x) + (cc_u32)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+}
+#define II(a, b, c, d, x, s, ac) { \
+ (a) += I ((b), (c), (d)) + (x) + (cc_u32)(ac); \
+ (a) = ROTATE_LEFT ((a), (s)); \
+ (a) += (b); \
+}
+
+/* MD5 initialization. Begins an MD5 operation, writing a new context.
+ */
+CRYPTOCORE_INTERNAL void SDRM_MD5_Init(SDRM_MD5Context *ctx)
+{
+ ctx->count[0] = 0;
+ ctx->count[1] = 0;
+
+ // Load magic initialization constants.
+ ctx->state[0] = 0x67452301;
+ ctx->state[1] = 0xefcdab89;
+ ctx->state[2] = 0x98badcfe;
+ ctx->state[3] = 0x10325476;
+}
+
+/* MD5 block update operation. Continues an MD5 message-digest
+ operation, processing another message block, and updating the
+ context.
+ */
+CRYPTOCORE_INTERNAL void SDRM_MD5_Update(SDRM_MD5Context *ctx, cc_u8* input, cc_u32 inputLen)
+{
+ cc_u32 i, idx, partLen;
+
+ /* Compute number of bytes mod 64 */
+ idx = (cc_u32)((ctx->count[0] >> 3) & 0x3F);
+
+ /* Update number of bits */
+ if ((ctx->count[0] += ((cc_u32)inputLen << 3)) < ((cc_u32)inputLen << 3))
+ {
+ ctx->count[1]++;
+ }
+
+ ctx->count[1] += ((cc_u32)inputLen >> 29);
+
+ partLen = 64 - idx;
+
+ // Transform as many times as possible.
+ if (inputLen >= partLen)
+ {
+ memcpy(&ctx->buffer[idx], input, partLen);
+ SDRM_MD5Transform(ctx->state, ctx->buffer);
+
+ for (i = partLen; i + 63 < inputLen; i += 64)
+ {
+ SDRM_MD5Transform(ctx->state, &input[i]);
+ }
+
+ idx = 0;
+ }
+ else
+ {
+ i = 0;
+ }
+
+ /* Buffer remaining input */
+ memcpy(&ctx->buffer[idx], &input[i], inputLen-i);
+}
+
+/* MD5 finalization. Ends an MD5 message-digest operation, writing the
+ the message digest and zeroizing the context.
+ */
+CRYPTOCORE_INTERNAL void SDRM_MD5_Final(SDRM_MD5Context *ctx, cc_u8* digest)
+{
+ unsigned char bits[8];
+ cc_u32 idx, padLen;
+
+ /* Save number of bits */
+ SDRM_Encode(bits, ctx->count, 8);
+
+ // Pad out to 56 mod 64.
+ idx = (cc_u32)((ctx->count[0] >> 3) & 0x3f);
+ padLen = (idx < 56) ? (56 - idx) : (120 - idx);
+ SDRM_MD5_Update (ctx, PADDING, padLen);
+
+ /* Append length (before padding) */
+ SDRM_MD5_Update (ctx, bits, 8);
+
+ /* Store state in digest */
+ SDRM_Encode (digest, ctx->state, 16);
+
+ // Zeroize sensitive information.
+ memset(ctx, 0, sizeof(*ctx));
+}
+
+/* MD5 basic transformation. Transforms state based on block.
+ */
+static void SDRM_MD5Transform (cc_u32 state[4], const unsigned char* block)
+{
+ cc_u32 a = state[0], b = state[1], c = state[2], d = state[3], x[16];
+
+ SDRM_Decode (x, block, 64);
+
+ /* Round 1 */
+ FF (a, b, c, d, x[ 0], S[0][0], 0xd76aa478); /* 1 */
+ FF (d, a, b, c, x[ 1], S[0][1], 0xe8c7b756); /* 2 */
+ FF (c, d, a, b, x[ 2], S[0][2], 0x242070db); /* 3 */
+ FF (b, c, d, a, x[ 3], S[0][3], 0xc1bdceee); /* 4 */
+ FF (a, b, c, d, x[ 4], S[0][0], 0xf57c0faf); /* 5 */
+ FF (d, a, b, c, x[ 5], S[0][1], 0x4787c62a); /* 6 */
+ FF (c, d, a, b, x[ 6], S[0][2], 0xa8304613); /* 7 */
+ FF (b, c, d, a, x[ 7], S[0][3], 0xfd469501); /* 8 */
+ FF (a, b, c, d, x[ 8], S[0][0], 0x698098d8); /* 9 */
+ FF (d, a, b, c, x[ 9], S[0][1], 0x8b44f7af); /* 10 */
+ FF (c, d, a, b, x[10], S[0][2], 0xffff5bb1); /* 11 */
+ FF (b, c, d, a, x[11], S[0][3], 0x895cd7be); /* 12 */
+ FF (a, b, c, d, x[12], S[0][0], 0x6b901122); /* 13 */
+ FF (d, a, b, c, x[13], S[0][1], 0xfd987193); /* 14 */
+ FF (c, d, a, b, x[14], S[0][2], 0xa679438e); /* 15 */
+ FF (b, c, d, a, x[15], S[0][3], 0x49b40821); /* 16 */
+
+ /* Round 2 */
+ GG (a, b, c, d, x[ 1], S[1][0], 0xf61e2562); /* 17 */
+ GG (d, a, b, c, x[ 6], S[1][1], 0xc040b340); /* 18 */
+ GG (c, d, a, b, x[11], S[1][2], 0x265e5a51); /* 19 */
+ GG (b, c, d, a, x[ 0], S[1][3], 0xe9b6c7aa); /* 20 */
+ GG (a, b, c, d, x[ 5], S[1][0], 0xd62f105d); /* 21 */
+ GG (d, a, b, c, x[10], S[1][1], 0x02441453); /* 22 */
+ GG (c, d, a, b, x[15], S[1][2], 0xd8a1e681); /* 23 */
+ GG (b, c, d, a, x[ 4], S[1][3], 0xe7d3fbc8); /* 24 */
+ GG (a, b, c, d, x[ 9], S[1][0], 0x21e1cde6); /* 25 */
+ GG (d, a, b, c, x[14], S[1][1], 0xc33707d6); /* 26 */
+ GG (c, d, a, b, x[ 3], S[1][2], 0xf4d50d87); /* 27 */
+ GG (b, c, d, a, x[ 8], S[1][3], 0x455a14ed); /* 28 */
+ GG (a, b, c, d, x[13], S[1][0], 0xa9e3e905); /* 29 */
+ GG (d, a, b, c, x[ 2], S[1][1], 0xfcefa3f8); /* 30 */
+ GG (c, d, a, b, x[ 7], S[1][2], 0x676f02d9); /* 31 */
+ GG (b, c, d, a, x[12], S[1][3], 0x8d2a4c8a); /* 32 */
+
+ /* Round 3 */
+ HH (a, b, c, d, x[ 5], S[2][0], 0xfffa3942); /* 33 */
+ HH (d, a, b, c, x[ 8], S[2][1], 0x8771f681); /* 34 */
+ HH (c, d, a, b, x[11], S[2][2], 0x6d9d6122); /* 35 */
+ HH (b, c, d, a, x[14], S[2][3], 0xfde5380c); /* 36 */
+ HH (a, b, c, d, x[ 1], S[2][0], 0xa4beea44); /* 37 */
+ HH (d, a, b, c, x[ 4], S[2][1], 0x4bdecfa9); /* 38 */
+ HH (c, d, a, b, x[ 7], S[2][2], 0xf6bb4b60); /* 39 */
+ HH (b, c, d, a, x[10], S[2][3], 0xbebfbc70); /* 40 */
+ HH (a, b, c, d, x[13], S[2][0], 0x289b7ec6); /* 41 */
+ HH (d, a, b, c, x[ 0], S[2][1], 0xeaa127fa); /* 42 */
+ HH (c, d, a, b, x[ 3], S[2][2], 0xd4ef3085); /* 43 */
+ HH (b, c, d, a, x[ 6], S[2][3], 0x04881d05); /* 44 */
+ HH (a, b, c, d, x[ 9], S[2][0], 0xd9d4d039); /* 45 */
+ HH (d, a, b, c, x[12], S[2][1], 0xe6db99e5); /* 46 */
+ HH (c, d, a, b, x[15], S[2][2], 0x1fa27cf8); /* 47 */
+ HH (b, c, d, a, x[ 2], S[2][3], 0xc4ac5665); /* 48 */
+
+ /* Round 4 */
+ II (a, b, c, d, x[ 0], S[3][0], 0xf4292244); /* 49 */
+ II (d, a, b, c, x[ 7], S[3][1], 0x432aff97); /* 50 */
+ II (c, d, a, b, x[14], S[3][2], 0xab9423a7); /* 51 */
+ II (b, c, d, a, x[ 5], S[3][3], 0xfc93a039); /* 52 */
+ II (a, b, c, d, x[12], S[3][0], 0x655b59c3); /* 53 */
+ II (d, a, b, c, x[ 3], S[3][1], 0x8f0ccc92); /* 54 */
+ II (c, d, a, b, x[10], S[3][2], 0xffeff47d); /* 55 */
+ II (b, c, d, a, x[ 1], S[3][3], 0x85845dd1); /* 56 */
+ II (a, b, c, d, x[ 8], S[3][0], 0x6fa87e4f); /* 57 */
+ II (d, a, b, c, x[15], S[3][1], 0xfe2ce6e0); /* 58 */
+ II (c, d, a, b, x[ 6], S[3][2], 0xa3014314); /* 59 */
+ II (b, c, d, a, x[13], S[3][3], 0x4e0811a1); /* 60 */
+ II (a, b, c, d, x[ 4], S[3][0], 0xf7537e82); /* 61 */
+ II (d, a, b, c, x[11], S[3][1], 0xbd3af235); /* 62 */
+ II (c, d, a, b, x[ 2], S[3][2], 0x2ad7d2bb); /* 63 */
+ II (b, c, d, a, x[ 9], S[3][3], 0xeb86d391); /* 64 */
+
+ state[0] += a;
+ state[1] += b;
+ state[2] += c;
+ state[3] += d;
+
+ //Zeroize sensitive information.
+ memset (x, 0, sizeof (x));
+}
+
+/* Encodes input (cc_u4) into output (unsigned char). Assumes len is
+ a multiple of 4.
+ */
+static void SDRM_Encode (unsigned char *output, cc_u32 *input, cc_u32 len)
+{
+ cc_u32 i, j;
+
+ for (i = 0, j = 0; j < len; i++, j += 4)
+ {
+ output[j ] = (unsigned char)((input[i] ) & 0xff);
+ output[j+1] = (unsigned char)((input[i] >> 8) & 0xff);
+ output[j+2] = (unsigned char)((input[i] >> 16) & 0xff);
+ output[j+3] = (unsigned char)((input[i] >> 24) & 0xff);
+ }
+}
+
+/* Decodes input (unsigned char) into output (UINT4). Assumes len is
+ a multiple of 4.
+ */
+static void SDRM_Decode (cc_u32 *output, const unsigned char *input, cc_u32 len)
+{
+ cc_u32 i, j;
+
+ for (i = 0, j = 0; j < len; i++, j += 4)
+ {
+ output[i] = (
+ (((cc_u32)input[j] ) ) |
+ (((cc_u32)input[j + 1]) << 8) |
+ (((cc_u32)input[j + 2]) << 16) |
+ (((cc_u32)input[j + 3]) << 24));
+ }
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/moo.c b/SPC/Src/base/moo.c
new file mode 100755
index 0000000..8197be1
--- /dev/null
+++ b/SPC/Src/base/moo.c
@@ -0,0 +1,487 @@
+/**
+ * \file moo.c
+ * @brief implementation of mode of operations
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/08/04
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "moo.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_ECB_Enc
+ * @brief Encrypt a block with ECB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key)
+{
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ SDRM_rijndaelEncrypt((cc_u32*)(void*)key, 10, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_AES192 :
+ SDRM_rijndaelEncrypt((cc_u32*)(void*)key, 12, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_AES256 :
+ SDRM_rijndaelEncrypt((cc_u32*)(void*)key, 14, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_DES :
+ return SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ case ID_TDES :
+ return SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ default :
+ break;
+ }
+
+ return CRYPTO_INVALID_ARGUMENT;
+}
+
+/*
+ * @fn SDRM_ECB_Dec
+ * @brief Decrypt a block with ECB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key)
+{
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 10, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_AES192 :
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 12, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_AES256 :
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 14, in, out);
+ return CRYPTO_SUCCESS;
+ case ID_DES :
+ return SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ case ID_TDES :
+ return SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ default :
+ break;
+ }
+
+ return CRYPTO_INVALID_ARGUMENT;
+}
+
+/*
+ * @fn SDRM_CBC_Enc
+ * @brief Encrypt a block with CBC mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CBC_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+{
+ int i;
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ for (i = 0; i < 16; i++)
+ {
+ IV[i] ^= in[i];
+ }
+
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 10, IV, out);
+
+ memcpy(IV, out, 16);
+
+ break;
+ case ID_AES192 :
+ for (i = 0; i < 16; i++)
+ {
+ IV[i] ^= in[i];
+ }
+
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 12, IV, out);
+
+ memcpy(IV, out, 16);
+
+ break;
+ case ID_AES256 :
+ for (i = 0; i < 16; i++)
+ {
+ IV[i] ^= in[i];
+ }
+
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 14, IV, out);
+
+ memcpy(IV, out, 16);
+
+ break;
+ case ID_DES :
+ for (i = 0; i < 8; i++)
+ {
+ IV[i] ^= in[i];
+ }
+
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+
+ memcpy(IV, out, 8);
+
+ break;
+ case ID_TDES :
+ for (i = 0; i < 8; i++)
+ {
+ IV[i] ^= in[i];
+ }
+
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+
+ memcpy(IV, out, 8);
+
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CBC_Dec
+ * @brief Decrypt a block with CBC mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CBC_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV){
+ int i, BlockLen;
+ cc_u8 buf[16];
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 10, in, out);
+ break;
+ case ID_AES192 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 12, in, out);
+ break;
+ case ID_AES256 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelDecrypt((const cc_u32*)(void*)key, 14, in, out);
+ break;
+ case ID_DES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ break;
+ case ID_TDES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, in, out);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ for (i = 0; i < BlockLen; i++)
+ {
+ out[i] ^= IV[i];
+ }
+
+ memcpy(IV, buf, BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CFB_Enc
+ * @brief Encrypt a block with CFB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+{
+ int i, BlockLen;
+ cc_u8 buf[16];
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 10, IV, out);
+ break;
+ case ID_AES192 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 12, IV, out);
+ break;
+ case ID_AES256 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 14, IV, out);
+ break;
+ case ID_DES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ case ID_TDES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ for (i = 0; i < BlockLen; i++)
+ {
+ out[i] ^= buf[i];
+ }
+
+ memcpy(IV, out, BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CFB_Dec
+ * @brief Decrypt a block with CFB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]plain text block
+ * @param in [in]cipher text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CFB_Dec(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+{
+ int i, BlockLen;
+ cc_u8 buf[16];
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 10, IV, out);
+ break;
+ case ID_AES192 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 12, IV, out);
+ break;
+ case ID_AES256 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 14, IV, out);
+ break;
+ case ID_DES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ case ID_TDES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ for (i = 0; i < BlockLen; i++)
+ {
+ out[i] ^= buf[i];
+ }
+
+ memcpy(IV, buf, BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_OFB_Enc
+ * @brief Encrypt a block with OFB mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_OFB_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV)
+{
+ int i, BlockLen;
+ cc_u8 buf[16];
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 10, IV, out);
+ break;
+ case ID_AES192 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 12, IV, out);
+ break;
+ case ID_AES256 :
+ BlockLen = 16;
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 14, IV, out);
+ break;
+ case ID_DES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ case ID_TDES :
+ BlockLen = 8;
+ memcpy(buf, in, BlockLen);
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ memcpy(IV, out, BlockLen);
+
+ for (i = 0; i < BlockLen; i++)
+ {
+ out[i] ^= buf[i];
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTR_Enc
+ * @brief Encrypt a block with CTR mode
+ *
+ * @param Algorithm [in]algorithm
+ * @param out [out]cipher text block
+ * @param in [in]plain text block
+ * @param key [in]user key
+ * @param IV [in]initial vector
+ * @param counter [in]
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_INVALID_ARGUMENT if parameter is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTR_Enc(int Algorithm, cc_u8 *out, cc_u8 *in, cc_u8 *key, cc_u8 *IV, cc_u32 counter)
+{
+ int i, BlockLen;
+ cc_u8 buf[16];
+
+ switch(Algorithm)
+ {
+ case ID_AES128 :
+ BlockLen = 16;
+ IV[12] = (cc_u8)(0xff & (counter >> 24));
+ IV[13] = (cc_u8)(0xff & (counter >> 16));
+ IV[14] = (cc_u8)(0xff & (counter >> 8 ));
+ IV[15] = (cc_u8)(0xff & (counter ));
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 10, IV, out);
+ break;
+ case ID_AES192 :
+ BlockLen = 16;
+ IV[12] = (cc_u8)(0xff & (counter >> 24));
+ IV[13] = (cc_u8)(0xff & (counter >> 16));
+ IV[14] = (cc_u8)(0xff & (counter >> 8 ));
+ IV[15] = (cc_u8)(0xff & (counter ));
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 12, IV, out);
+ break;
+ case ID_AES256 :
+ BlockLen = 16;
+ IV[12] = (cc_u8)(0xff & (counter >> 24));
+ IV[13] = (cc_u8)(0xff & (counter >> 16));
+ IV[14] = (cc_u8)(0xff & (counter >> 8 ));
+ IV[15] = (cc_u8)(0xff & (counter ));
+ memcpy(buf, in, BlockLen);
+ SDRM_rijndaelEncrypt((const cc_u32*)(void*)key, 14, IV, out);
+ break;
+ case ID_DES :
+ BlockLen = 8;
+ IV[4] = (cc_u8)(0xff & (counter >> 24));
+ IV[5] = (cc_u8)(0xff & (counter >> 16));
+ IV[6] = (cc_u8)(0xff & (counter >> 8 ));
+ IV[7] = (cc_u8)(0xff & (counter ));
+ memcpy(buf, in, BlockLen);
+ SDRM_DES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ case ID_TDES :
+ BlockLen = 8;
+ IV[4] = (cc_u8)(0xff & (counter >> 24));
+ IV[5] = (cc_u8)(0xff & (counter >> 16));
+ IV[6] = (cc_u8)(0xff & (counter >> 8 ));
+ IV[7] = (cc_u8)(0xff & (counter ));
+ memcpy(buf, in, BlockLen);
+ SDRM_TDES_Encryption((cc_u32(*)[2])(void*)key, IV, out);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ for (i = 0; i < BlockLen; i++)
+ {
+ out[i] ^= buf[i];
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/pkcs1_v21.c b/SPC/Src/base/pkcs1_v21.c
new file mode 100755
index 0000000..c4d759f
--- /dev/null
+++ b/SPC/Src/base/pkcs1_v21.c
@@ -0,0 +1,940 @@
+/**
+ * \file pkcs1_v21.c
+ * @brief PKCS#1 V1.5, V2.0(RSAES-OAEP), V2.1(RSASSA-PSS) Implemetation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ * Note : Edited for Big-Endian Machine support, 2008/12/16
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "pkcs1_v21.h"
+#include "md5.h"
+#include "sha1.h"
+#include "sha2.h"
+#include "ANSI_x931.h"
+
+//////////////////////////////////////////////////////////////////////////
+// Functions
+//////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_Padding_Rsaes_pkcs15
+ * @brief RSAES PKCS#1 v1.5
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsaes_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, cc_u32 k)
+{
+ cc_u8 ECRYPTO_API Si_ANSI_X9_31[SDRM_X931_SEED_SIZ];
+ cc_u32 mLen;
+ cc_u32 i;
+ cc_u32 RSA_KeyByteLen = k;
+ cc_u8 *EM = (cc_u8*)malloc(RSA_KeyByteLen);
+
+ if (EM == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ srand((unsigned int)time(NULL));
+
+ SDRM_BN_Clr(BN_Dest);
+
+ if (MODE == SDRM_ENPADDING)
+ {
+ //Get message length
+ mLen = BN_Src->Length << 2;
+
+ while(SDRM_CheckByteUINT32(BN_Src->pData, mLen - 1) == 0)
+ {
+ --mLen;
+ }
+
+ //Check message length
+ if (mLen >= k - 11)
+ {
+ free(EM);
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ EM[0] = 0x00;
+ EM[1] = 0x02;
+
+ for (i = 0; i < 16; i++)
+ {
+ Si_ANSI_X9_31[i] = ((rand() << 16) + rand()) & 0xff;
+ }
+
+ SDRM_RNG_X931(Si_ANSI_X9_31, (k - mLen - 3) * 8, &EM[2]);
+ EM[k - mLen - 1] = 0x00;
+ EM[k - mLen - 2] = 0x00;
+
+ for (i = 0; i < k - mLen - 3; i++)
+ {
+ if (EM[2 + i] == 0)
+ {
+ EM[2 + i] = (cc_u8)((i + 2) * (i + 1)) & 0xff;
+ }
+ }
+
+ EM[k - mLen - 1] = 0x00;
+
+ SDRM_I2OSP(BN_Src, mLen, &EM[k - mLen]);
+
+ SDRM_OS2BN(EM, RSA_KeyByteLen, BN_Dest);
+ }
+ else if (MODE == SDRM_DEPADDING)
+ {
+ mLen = BN_Src->Length * SDRM_SIZE_OF_DWORD - 1;
+ while(((int)mLen >= 0) && (SDRM_CheckByteUINT32(BN_Src->pData, mLen) == 0))
+ {
+ --mLen;
+ }
+
+ //if there's no message
+ if ((int)mLen < 0)
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Check EM[0]
+ if (((cc_u32)mLen != BN_Src->Length * SDRM_SIZE_OF_DWORD - 1) && (SDRM_CheckByteUINT32(BN_Src->pData, mLen + 1) != 0x00))
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ mLen++;
+
+ SDRM_I2OSP(BN_Src, mLen, EM);
+
+ //Check EM[1]
+ if (EM[0] != 0x02)
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Check PS
+ for (i = 1; i < (RSA_KeyByteLen - 1); i++)
+ {
+ if (EM[i] == 0)
+ {
+ break;
+ }
+ }
+
+ if (i == (RSA_KeyByteLen - 1))
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Copy Message
+ SDRM_OS2BN(&EM[i + 1], RSA_KeyByteLen - i - 2, BN_Dest);
+ }
+
+ free(EM);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_Padding_Rsaes_oaep
+ * @brief RSAES OAEP
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsaes_oaep(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, int MODE, int HASH_Algorithm, cc_u32 k)
+{
+ cc_u8 *DB, *EM, *Seed, *dbMask, *maskedDB, *seedMask, *maskedSeed, *Msg;
+ cc_u8 hash[SDRM_SHA512_DATA_SIZE];
+ cc_u32 i, mLen, dbLen;
+ SDRM_BIG_NUM *BN_Rnd;
+ cc_u32 RSA_KeyByteLen = k;
+ cc_u32 DigestLen = 0;
+ SDRM_MD5Context md5_ctx; //Hash env var
+ SDRM_SHA1Context sha1_ctx; //Hash env var
+ SDRM_SHA256Context sha256_ctx; //Hash env var
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context sha384_ctx; //Hash env var
+ SDRM_SHA512Context sha512_ctx; //Hash env var
+#endif //_OP64_NOTSUPPORTED
+
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ DigestLen = SDRM_MD5_BLOCK_SIZ;
+ break;
+ case 0 :
+ case ID_SHA1 :
+ DigestLen = SDRM_SHA1_BLOCK_SIZ;
+ break;
+ case ID_SHA256 :
+ DigestLen = SDRM_SHA256_BLOCK_SIZ;
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ DigestLen = SDRM_SHA384_BLOCK_SIZ;
+ break;
+ case ID_SHA512 :
+ DigestLen = SDRM_SHA512_BLOCK_SIZ;
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ dbLen = k - DigestLen - 1;
+
+ //Memory allocation
+ EM = (cc_u8*)malloc(k * 4);
+ if (EM == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ DB = EM + k;
+ dbMask = DB + dbLen;
+ maskedDB = dbMask + dbLen;
+ Seed = maskedDB + dbLen;
+ seedMask = Seed + DigestLen;
+ maskedSeed = seedMask + DigestLen;
+
+ SDRM_BN_Clr(BN_Dest);
+
+ if (MODE == SDRM_ENPADDING)
+ {
+ //Get message length
+ mLen = BN_Src->Length << 2;
+ while(SDRM_CheckByteUINT32(BN_Src->pData, mLen - 1) == 0)
+ {
+ --mLen;
+ }
+
+ //Check message length
+ if (mLen >= k - 2 * DigestLen - 2)
+ {
+ free(EM);
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ Msg = (cc_u8*)malloc(mLen);
+ if (Msg == NULL)
+ {
+ free(EM);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ //Change Big Number to Byte array
+ SDRM_I2OSP(BN_Src, mLen, Msg);
+
+ //Generate random number and change to Byte array
+ BN_Rnd = SDRM_BN_Init(SDRM_RSA_BN_BUFSIZE);
+ if(BN_Rnd == NULL)
+ {
+ free(EM);
+ free(Msg);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_BN_Rand(BN_Rnd, DigestLen << 3);
+
+ SDRM_I2OSP(BN_Rnd, DigestLen, Seed);
+
+ SDRM_BN_FREE(BN_Rnd);
+
+ //Get hash of 'L'
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ SDRM_MD5_Init(&md5_ctx); //Init hash function
+ SDRM_MD5_Final(&md5_ctx, DB); //'L' is an empty string, so get output immediately
+ break;
+ case 0 :
+ case ID_SHA1 :
+ SDRM_SHA1_Init(&sha1_ctx); //Init hash function
+ SDRM_SHA1_Final(&sha1_ctx, DB); //'L' is an empty string, so get output immediately
+ break;
+ case ID_SHA256 :
+ SDRM_SHA256_Init(&sha256_ctx); //Init hash function
+ SDRM_SHA256_Final(&sha256_ctx, DB); //'L' is an empty string, so get output immediately
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ SDRM_SHA384_Init(&sha384_ctx); //Init hash function
+ SDRM_SHA384_Final(&sha384_ctx, DB); //'L' is an empty string, so get output immediately
+ break;
+ case ID_SHA512 :
+ SDRM_SHA512_Init(&sha512_ctx); //Init hash function
+ SDRM_SHA512_Final(&sha512_ctx, DB); //'L' is an empty string, so get output immediately
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //DB = lHash||PS||M
+ memset(DB + DigestLen, 0, k - mLen - 2 * DigestLen - 2);
+ DB[k - mLen - DigestLen - 2] = 0x01;
+ memcpy(DB + k - mLen - DigestLen - 1, Msg, mLen);
+
+ //dbMask = MGF(Seed, dbLen), maskedDB = DB ^ dbMask
+ SDRM_MGF1(HASH_Algorithm, dbMask, Seed, DigestLen, dbLen);
+
+ for (i = 0; i < dbLen; i++)
+ {
+ maskedDB[i] = DB[i] ^ dbMask[i];
+ }
+
+ //seedMask = MGF(maskedDB, SDRM_SHA1_BLOCK_SIZ), maskedSeed = Seed ^ seedMask
+ SDRM_MGF1(HASH_Algorithm, seedMask, maskedDB, dbLen, DigestLen);
+ for (i = 0; i < DigestLen; i++)
+ {
+ maskedSeed[i] = Seed[i] ^ seedMask[i];
+ }
+
+ //EM = 0x00||maskedSeed||maskedDB
+ EM[0] = 0x00;
+ memcpy(EM + 1, maskedSeed, DigestLen);
+ memcpy(EM + 1 + DigestLen, maskedDB, dbLen);
+
+ //Change Byte array to Big Number
+ SDRM_OS2BN(EM, k, BN_Dest);
+ free(Msg);
+ }
+ else if (MODE == SDRM_DEPADDING)
+ {
+ SDRM_I2OSP(BN_Src, k, EM);
+
+ //Seperate EM : 0x00||maskedSeed||maskedDB
+ if (EM[0] != 0x00)
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ memcpy(maskedSeed, EM + 1, DigestLen);
+ memcpy(maskedDB, EM + 1 + DigestLen, dbLen);
+
+ //seedMask = MGF(maskedDB, SDRM_SHA1_BLOCK_SIZ), Seed = maskedSeed ^ seedMask
+ SDRM_MGF1(HASH_Algorithm, seedMask, maskedDB, dbLen, DigestLen);
+ for (i = 0; i < DigestLen; i++)
+ {
+ Seed[i] = maskedSeed[i] ^ seedMask[i];
+ }
+
+ //dbMask = MGF(Seed, dbLen), DB = maskedDB ^ dbMask
+ SDRM_MGF1(HASH_Algorithm, dbMask, Seed, DigestLen, dbLen);
+ for (i = 0; i < dbLen; i++)
+ {
+ DB[i] = maskedDB[i] ^ dbMask[i];
+ }
+
+ //Get hash of 'L'
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ SDRM_MD5_Init(&md5_ctx); //Init hash function
+ SDRM_MD5_Final(&md5_ctx, hash); //'L' is an empty string, so get output immediately
+ break;
+ case 0 :
+ case ID_SHA1 :
+ SDRM_SHA1_Init(&sha1_ctx); //Init hash function
+ SDRM_SHA1_Final(&sha1_ctx, hash); //'L' is an empty string, so get output immediately
+ break;
+ case ID_SHA256 :
+ SDRM_SHA256_Init(&sha256_ctx); //Init hash function
+ SDRM_SHA256_Final(&sha256_ctx, hash); //'L' is an empty string, so get output immediately
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ SDRM_SHA384_Init(&sha384_ctx); //Init hash function
+ SDRM_SHA384_Final(&sha384_ctx, hash); //'L' is an empty string, so get output immediately
+ break;
+ case ID_SHA512 :
+ SDRM_SHA512_Init(&sha512_ctx); //Init hash function
+ SDRM_SHA512_Final(&sha512_ctx, hash); //'L' is an empty string, so get output immediately
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Compare hash value
+ for (i = 0; i < DigestLen; i++)
+ {
+ if (hash[i] != DB[i])
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ }
+
+ //ignore 0x00s after hash(PS)
+ while(DB[i] == 0x00)
+ {
+ i++;
+ }
+
+ //0x01 must be right after PS
+ if (DB[i] != 0x01)
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Abstract message and change to Big Number
+ SDRM_OS2BN(DB + i + 1, dbLen - i - 1, BN_Dest);
+ }
+
+ free(EM);
+
+ return CRYPTO_SUCCESS;
+}
+
+CRYPTOCORE_INTERNAL cc_u8 SDRM_DER_MD5[SDRM_DIGESTINFO_MD5_LEN] = SDRM_DIGESTINFO_MD5_VALUE;
+CRYPTOCORE_INTERNAL cc_u8 SDRM_DER_SHA1[SDRM_DIGESTINFO_SHA1_LEN] = SDRM_DIGESTINFO_SHA1_VALUE;
+CRYPTOCORE_INTERNAL cc_u8 SDRM_DER_SHA256[SDRM_DIGESTINFO_SHA256_LEN] = SDRM_DIGESTINFO_SHA256_VALUE;
+CRYPTOCORE_INTERNAL cc_u8 SDRM_DER_SHA384[SDRM_DIGESTINFO_SHA384_LEN] = SDRM_DIGESTINFO_SHA384_VALUE;
+CRYPTOCORE_INTERNAL cc_u8 SDRM_DER_SHA512[SDRM_DIGESTINFO_SHA512_LEN] = SDRM_DIGESTINFO_SHA512_VALUE;
+/*
+ * @fn int SDRM_Padding_Rsassa_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, int MODE, int HASH_Algorithm, cc_u32 k)
+ * @brief RSASSA PKCS#1 v1.5
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param pszHash [in]hash of BN_Src
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param k [in]byte-size of n
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_INVALID_ARGUMENT if source is not in the right form
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsassa_pkcs15(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, int MODE, int HASH_Algorithm, cc_u32 k) {
+ cc_u32 tLen;
+ cc_u32 i;
+ cc_u32 RSA_KeyByteLen = k;
+ cc_u32 mLen = 0;
+ cc_u8 *EM = (cc_u8*)malloc(RSA_KeyByteLen);
+ cc_u32 DigestInfoLen = 0;
+ cc_u8 DER[32];
+
+ if (EM == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ DigestInfoLen = SDRM_DIGESTINFO_MD5_LEN;
+ memcpy(DER, SDRM_DER_MD5, SDRM_DIGESTINFO_MD5_LEN);
+ tLen = DigestInfoLen + SDRM_MD5_BLOCK_SIZ;
+ break;
+ case 0 :
+ case ID_SHA1 :
+ DigestInfoLen = SDRM_DIGESTINFO_SHA1_LEN;
+ memcpy(DER, SDRM_DER_SHA1, SDRM_DIGESTINFO_SHA1_LEN);
+ tLen = DigestInfoLen + SDRM_SHA1_BLOCK_SIZ;
+ break;
+ case ID_SHA256 :
+ DigestInfoLen = SDRM_DIGESTINFO_SHA256_LEN;
+ memcpy(DER, SDRM_DER_SHA256, SDRM_DIGESTINFO_SHA256_LEN);
+ tLen = DigestInfoLen + SDRM_SHA256_BLOCK_SIZ;
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ DigestInfoLen = SDRM_DIGESTINFO_SHA384_LEN;
+ memcpy(DER, SDRM_DER_SHA384, SDRM_DIGESTINFO_SHA384_LEN);
+ tLen = DigestInfoLen + SDRM_SHA384_BLOCK_SIZ;
+ break;
+ case ID_SHA512 :
+ DigestInfoLen = SDRM_DIGESTINFO_SHA512_LEN;
+ memcpy(DER, SDRM_DER_SHA512, SDRM_DIGESTINFO_SHA512_LEN);
+ tLen = DigestInfoLen + SDRM_SHA512_BLOCK_SIZ;
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ //++ 2010.02.04 added by jspark - prevent resource leak
+ free(EM);
+ //-- 2010.02.04 added by jspark - prevent resource leak
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (MODE == SDRM_ENPADDING)
+ {
+ SDRM_BN_Clr(BN_Dest);
+ EM[0] = 0x00;
+ EM[1] = 0x01;
+ memset(EM + 2, 0xff, k - tLen - 3);
+ EM[k - tLen - 1] = 0x00;
+ memcpy(EM + k - tLen, DER, DigestInfoLen);
+ memcpy(EM + k - tLen + DigestInfoLen, pszHash, tLen - DigestInfoLen);
+
+ SDRM_OS2BN(EM, k, BN_Dest);
+
+ free(EM);
+
+ return CRYPTO_SUCCESS;
+ }
+ else if (MODE == SDRM_DEPADDING)
+ {
+ //Get message length
+ mLen = BN_Src->Length * SDRM_SIZE_OF_DWORD - 1;
+ while(SDRM_CheckByteUINT32(BN_Src->pData, mLen) == 0)
+ {
+ --mLen;
+ }
+
+ //Check EM[0] = 0x00
+ if (((cc_u32)mLen != BN_Src->Length * SDRM_SIZE_OF_DWORD - 1) && (SDRM_CheckByteUINT32(BN_Src->pData,mLen + 1) != 0x00))
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+
+ mLen++;
+ SDRM_I2OSP(BN_Src, mLen, EM);
+
+ //Check EM[1]
+ if (EM[0] != 0x01)
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Pass PS
+ for (i = 1; i < (RSA_KeyByteLen - 1); i++)
+ {
+ if (EM[i] != 0xff)
+ {
+ break;
+ }
+ }
+
+ if ((i == (RSA_KeyByteLen - 1)) || (EM[i] != 0x00))
+ {
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Check DER encoding
+ if (memcmp(&EM[i + 1], DER, DigestInfoLen) != 0x00)
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+
+ if (memcmp(&EM[i + DigestInfoLen + 1], pszHash, tLen - DigestInfoLen) != 0)
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+ }
+
+ free(EM);
+
+ return CRYPTO_VALID_SIGN;
+}
+
+/*
+ * @fn int SDRM_Padding_Rsassa_pss(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, cc_u32 emBits, int MODE, int HASH_Algorithm, cc_u32 MaxByte)
+ * @brief RSASSA PSS
+ *
+ * @param BN_Dest [out]Padded msg if MODE is ENPADDING, Depadded msg if MODE is DEPADDING
+ * @param BN_Src [in]Message to pad if MODE is ENPADDING, Message to depad if MODE is DEPADDING
+ * @param pszHash [in]hash of BN_Src
+ * @param emBits [in]bit-length of EM
+ * @param MODE [in]ENPADDING or DEPADDING
+ * @param MaxByte [in]max byte-length for MGF function
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_VALID_SIGN if sign is valid
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ * \n CRYPTO_MSG_TOO_LONG if message is longer then key
+ * \n CRYPTO_INVALID_ARGUMENT if source is not in the right form
+ */
+CRYPTOCORE_INTERNAL int SDRM_Padding_Rsassa_pss(SDRM_BIG_NUM* BN_Dest, SDRM_BIG_NUM* BN_Src, cc_u8 *pszHash, cc_u32 emBits, int MODE, int HASH_Algorithm, cc_u32 MaxByte)
+{
+ cc_u8 hash[SDRM_SHA512_DATA_SIZE];
+ cc_u8 *M_Prime, *DB, *EM, *dbMask;
+ cc_u8 *H_Prime;
+ cc_u32 sLen, i, dbLen, emLen;
+ SDRM_BIG_NUM *BN_Rnd;
+ cc_u32 RSA_KeyByteLen = emBits / 8;
+ cc_u32 DigestLen = 0;
+ SDRM_MD5Context md5_ctx; //Hash env var
+ SDRM_SHA1Context sha1_ctx; //Hash env var
+ SDRM_SHA256Context sha256_ctx; //Hash env var
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context sha384_ctx; //Hash env var
+ SDRM_SHA512Context sha512_ctx; //Hash env var
+#endif //_OP64_NOTSUPPORTED
+
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ DigestLen = SDRM_MD5_BLOCK_SIZ;
+ break;
+ case 0 :
+ case ID_SHA1 :
+ DigestLen = SDRM_SHA1_BLOCK_SIZ;
+ break;
+ case ID_SHA256 :
+ DigestLen = SDRM_SHA256_BLOCK_SIZ;
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ DigestLen = SDRM_SHA384_BLOCK_SIZ;
+ break;
+ case ID_SHA512 :
+ DigestLen = SDRM_SHA512_BLOCK_SIZ;
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ emLen = (emBits - 1) / 8;
+ dbLen = emLen - DigestLen - 1;
+
+ if (MODE == SDRM_ENPADDING)
+ {
+ //sLen = (emLen - SDRM_SHA1_BLOCK_SIZ - 2) / 2;
+ sLen = 20;
+
+ M_Prime = (cc_u8*)malloc(emLen * 3 + sLen - SDRM_SHA1_BLOCK_SIZ + 6);
+ if (M_Prime == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ DB = M_Prime + 8 + DigestLen + sLen;
+ EM = DB + dbLen;
+ dbMask = EM + emLen;
+
+ //Generate random number(salt)
+ BN_Rnd = SDRM_BN_Init(SDRM_RSA_BN_BUFSIZE);
+ if(BN_Rnd ==NULL)
+ {
+ free(M_Prime);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+ SDRM_BN_Rand(BN_Rnd, sLen << 3);
+
+ //M' = padding1||mHash||salt
+ memset(M_Prime, 0, 8);
+ memcpy(M_Prime + 8, pszHash, DigestLen);
+ memcpy(M_Prime + 8 + DigestLen, BN_Rnd->pData, sLen);
+
+ //Get Hash of M'
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ SDRM_MD5_Init(&md5_ctx); //Init hash function
+ SDRM_MD5_Update(&md5_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_MD5_Final(&md5_ctx, hash); //Get Output
+ break;
+ case 0 :
+ case ID_SHA1 :
+ SDRM_SHA1_Init(&sha1_ctx); //Init hash function
+ SDRM_SHA1_Update(&sha1_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA1_Final(&sha1_ctx, hash); //Get Output
+ break;
+ case ID_SHA256 :
+ SDRM_SHA256_Init(&sha256_ctx); //Init hash function
+ SDRM_SHA256_Update(&sha256_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA256_Final(&sha256_ctx, hash); //Get Output
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ SDRM_SHA384_Init(&sha384_ctx); //Init hash function
+ SDRM_SHA384_Update(&sha384_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA384_Final(&sha384_ctx, hash); //Get Output
+ break;
+ case ID_SHA512 :
+ SDRM_SHA512_Init(&sha512_ctx); //Init hash function
+ SDRM_SHA512_Update(&sha512_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA512_Final(&sha512_ctx, hash); //Get Output
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //DB = padding2||salt
+ memset(DB, 0, emLen - sLen - DigestLen - 2);
+ DB[emLen - sLen - DigestLen - 2] = 0x01;
+ memcpy(DB + emLen - sLen - DigestLen - 1, BN_Rnd->pData, sLen);
+
+ //dbMask = MGF(H, dbLen)
+ SDRM_MGF1(HASH_Algorithm, dbMask, hash, DigestLen, dbLen);
+ dbMask[0] &= 0x7f;
+
+ //maskedDB = dbMask ^ DB
+ for (i = 1; i < dbLen; i++)
+ {
+ dbMask[i] ^= DB[i];
+ }
+
+ //clear 8emLen - emBits bits of the leftmost octet in maskedDB
+ EM[0] &= 0xFF >> (8 * emLen - emBits + 1);
+
+ //EM = maskedDB||H||0xbc
+ memcpy(EM, dbMask, dbLen);
+ memcpy(EM + dbLen, hash, DigestLen);
+ EM[emLen - 1] = 0xbc;
+
+ SDRM_BN_Clr(BN_Dest);
+
+ SDRM_OS2BN(EM, emLen, BN_Dest);
+
+ free(M_Prime);
+ free(BN_Rnd);
+
+ return CRYPTO_SUCCESS;
+ }
+ else if (MODE == SDRM_DEPADDING)
+ {
+ EM = (cc_u8*)malloc(emLen * 4 - DigestLen + 4);
+ if (EM == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ DB = EM + emLen;
+ H_Prime = DB + dbLen;
+ dbMask = H_Prime + DigestLen;
+ M_Prime = dbMask + dbLen;
+
+ SDRM_I2OSP(BN_Src, emLen, EM);
+
+ //Check EM[last] = 0xbc
+ if (EM[emLen - 1] != 0xbc)
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+
+ //Seperate EM to maskedDB and H'
+ memcpy(DB, EM, dbLen);
+ memcpy(H_Prime, EM + dbLen, DigestLen);
+
+ //dbMask = MGF(H', dbLen)
+ SDRM_MGF1(HASH_Algorithm, dbMask, H_Prime, DigestLen, dbLen);
+ dbMask[0] &= 0x7f;
+
+ //DB = maskedDB ^ dbMask
+ for (i = 1; i < dbLen; i++)
+ {
+ DB[i] ^= dbMask[i];
+ }
+
+ DB[0] = 0x00;
+ //Check padding2
+ for (i = 0 ; DB[i] == 0x00; i++);
+ if (DB[i] != 0x01)
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+
+ sLen = dbLen - i - 1;
+
+ //Abstract salt and make M'
+ memset(M_Prime, 0, 8);
+ memcpy(M_Prime + 8, pszHash, DigestLen);
+ memcpy(M_Prime + 8 + DigestLen, DB + i + 1, sLen);
+
+ //Get hash of M'
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ SDRM_MD5_Init(&md5_ctx); //Init hash function
+ SDRM_MD5_Update(&md5_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_MD5_Final(&md5_ctx, hash); //Get Output
+ break;
+ case 0 :
+ case ID_SHA1 :
+ SDRM_SHA1_Init(&sha1_ctx); //Init hash function
+ SDRM_SHA1_Update(&sha1_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA1_Final(&sha1_ctx, hash); //Get Output
+ break;
+ case ID_SHA256 :
+ SDRM_SHA256_Init(&sha256_ctx); //Init hash function
+ SDRM_SHA256_Update(&sha256_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA256_Final(&sha256_ctx, hash); //Get Output
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ SDRM_SHA384_Init(&sha384_ctx); //Init hash function
+ SDRM_SHA384_Update(&sha384_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA384_Final(&sha384_ctx, hash); //Get Output
+ break;
+ case ID_SHA512 :
+ SDRM_SHA512_Init(&sha512_ctx); //Init hash function
+ SDRM_SHA512_Update(&sha512_ctx, M_Prime, 8 + DigestLen + sLen); //Input data
+ SDRM_SHA512_Final(&sha512_ctx, hash); //Get Output
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ free(EM);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //Compare H' and H
+ for (i = 0; i < DigestLen; i++)
+ {
+ if (H_Prime[i] != hash[i])
+ {
+ free(EM);
+ return CRYPTO_INVALID_SIGN;
+ }
+ }
+
+ free(EM);
+ }
+
+ return CRYPTO_VALID_SIGN;
+}
+
+/*
+ * @fn int SDRM_MGF1(int HASH_Algorithm, cc_u8* mask, cc_u8* pbSeed, cc_u32 SeedLen, cc_u32 dMaskLen)
+ * @brief SDRM_MGF1 Function (Mask Generation Function based on a hash function)
+ *
+ * @param mask [out]byte-length of generated mask
+ * @param pbSeed [in]seed for MGF
+ * @param SeedLen [in]byte-length of pbSeed
+ * @param dMaskLen [in]byte-length of mask
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if malloc is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_MGF1(int HASH_Algorithm, cc_u8* mask, cc_u8* pbSeed, cc_u32 SeedLen, cc_u32 dMaskLen) {
+ cc_u8 *T, *Seed, *pbBuf;
+ cc_u32 counter;
+ cc_u8 hash[64]; //SHA-1 output size is 160 bit
+ cc_u8 hashlen;
+ SDRM_MD5Context md5_ctx; //Hash env var
+ SDRM_SHA1Context sha1_ctx; //Hash env var
+ SDRM_SHA256Context sha256_ctx; //Hash env var
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context sha384_ctx; //Hash env var
+ SDRM_SHA512Context sha512_ctx; //Hash env var
+#endif //_OP64_NOTSUPPORTED
+
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ hashlen = SDRM_MD5_BLOCK_SIZ;
+ break;
+ case 0 :
+ case ID_SHA1 :
+ hashlen = SDRM_SHA1_BLOCK_SIZ;
+ break;
+ case ID_SHA256 :
+ hashlen = SDRM_SHA256_BLOCK_SIZ;
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ hashlen = SDRM_SHA384_BLOCK_SIZ;
+ break;
+ case ID_SHA512 :
+ hashlen = SDRM_SHA512_BLOCK_SIZ;
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ pbBuf = (cc_u8*)malloc(dMaskLen + hashlen + SeedLen + 4);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ T = pbBuf;
+ Seed = T + dMaskLen + hashlen;
+
+ memset(mask, 0, dMaskLen);
+ memcpy(Seed, pbSeed, SeedLen);
+
+ for (counter = 0; counter < (dMaskLen - 1) / hashlen + 1; counter++)
+ {
+ Seed[SeedLen ] = (cc_u8)(counter >> 24);
+ Seed[SeedLen + 1] = (cc_u8)(counter >> 16);
+ Seed[SeedLen + 2] = (cc_u8)(counter >> 8 );
+ Seed[SeedLen + 3] = (cc_u8)(counter );
+
+ //Hash(Seed||counter)
+ switch(HASH_Algorithm)
+ {
+ case ID_MD5 :
+ SDRM_MD5_Init(&md5_ctx); //Init hash function
+ SDRM_MD5_Update(&md5_ctx, Seed, SeedLen + 4); //Input data
+ SDRM_MD5_Final(&md5_ctx, hash); //Get Output
+ break;
+ case 0 :
+ case ID_SHA1 :
+ SDRM_SHA1_Init(&sha1_ctx); //Init hash function
+ SDRM_SHA1_Update(&sha1_ctx, Seed, SeedLen + 4); //Input data
+ SDRM_SHA1_Final(&sha1_ctx, hash); //Get Output
+ break;
+ case ID_SHA256 :
+ SDRM_SHA256_Init(&sha256_ctx); //Init hash function
+ SDRM_SHA256_Update(&sha256_ctx, Seed, SeedLen + 4); //Input data
+ SDRM_SHA256_Final(&sha256_ctx, hash); //Get Output
+ break;
+#ifndef _OP64_NOTSUPPORTED
+ case ID_SHA384 :
+ SDRM_SHA384_Init(&sha384_ctx); //Init hash function
+ SDRM_SHA384_Update(&sha384_ctx, Seed, SeedLen + 4); //Input data
+ SDRM_SHA384_Final(&sha384_ctx, hash); //Get Output
+ break;
+ case ID_SHA512 :
+ SDRM_SHA512_Init(&sha512_ctx); //Init hash function
+ SDRM_SHA512_Update(&sha512_ctx, Seed, SeedLen + 4); //Input data
+ SDRM_SHA512_Final(&sha512_ctx, hash); //Get Output
+ break;
+#endif //_OP64_NOTSUPPORTED
+ default :
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ memcpy(T + counter * hashlen, hash, hashlen);
+ }
+
+ memcpy(mask, T, dMaskLen);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/rc4.c b/SPC/Src/base/rc4.c
new file mode 100755
index 0000000..0590f1b
--- /dev/null
+++ b/SPC/Src/base/rc4.c
@@ -0,0 +1,160 @@
+/**
+ * \file rc4.c
+ * @brief implementation of RC4 encryption scheme
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/01
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "rc4.h"
+
+////////////////////////////////////////////////////////////////////////////
+// initial vector of s
+////////////////////////////////////////////////////////////////////////////
+static cc_u32 RC4_S_VALUE_LITTLE[] = {
+ 0x03020100, 0x07060504, 0x0b0a0908, 0x0f0e0d0c,
+ 0x13121110, 0x17161514, 0x1b1a1918, 0x1f1e1d1c,
+ 0x23222120, 0x27262524, 0x2b2a2928, 0x2f2e2d2c,
+ 0x33323130, 0x37363534, 0x3b3a3938, 0x3f3e3d3c,
+ 0x43424140, 0x47464544, 0x4b4a4948, 0x4f4e4d4c,
+ 0x53525150, 0x57565554, 0x5b5a5958, 0x5f5e5d5c,
+ 0x63626160, 0x67666564, 0x6b6a6968, 0x6f6e6d6c,
+ 0x73727170, 0x77767574, 0x7b7a7978, 0x7f7e7d7c,
+ 0x83828180, 0x87868584, 0x8b8a8988, 0x8f8e8d8c,
+ 0x93929190, 0x97969594, 0x9b9a9998, 0x9f9e9d9c,
+ 0xa3a2a1a0, 0xa7a6a5a4, 0xabaaa9a8, 0xafaeadac,
+ 0xb3b2b1b0, 0xb7b6b5b4, 0xbbbab9b8, 0xbfbebdbc,
+ 0xc3c2c1c0, 0xc7c6c5c4, 0xcbcac9c8, 0xcfcecdcc,
+ 0xd3d2d1d0, 0xd7d6d5d4, 0xdbdad9d8, 0xdfdedddc,
+ 0xe3e2e1e0, 0xe7e6e5e4, 0xebeae9e8, 0xefeeedec,
+ 0xf3f2f1f0, 0xf7f6f5f4, 0xfbfaf9f8, 0xfffefdfc,
+};
+
+static cc_u32 RC4_S_VALUE_BIG[] = {
+ 0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f,
+ 0x10111213, 0x14151617, 0x18191a1b, 0x1c1d1e1f,
+ 0x20212223, 0x24252627, 0x28292a2b, 0x2c2d2e2f,
+ 0x30313233, 0x34353637, 0x38393a3b, 0x3c3d3e3f,
+ 0x40414243, 0x44454647, 0x48494a4b, 0x4c4d4e4f,
+ 0x50515253, 0x54555657, 0x58595a5b, 0x5c5d5e5f,
+ 0x60616263, 0x64656667, 0x68696a6b, 0x6c6d6e6f,
+ 0x70717273, 0x74757677, 0x78797a7b, 0x7c7d7e7f,
+ 0x80818283, 0x84858687, 0x88898a8b, 0x8c8d8e8f,
+ 0x90919293, 0x94959697, 0x98999a9b, 0x9c9d9e9f,
+ 0xa0a1a2a3, 0xa4a5a6a7, 0xa8a9aaab, 0xacadaeaf,
+ 0xb0b1b2b3, 0xb4b5b6b7, 0xb8b9babb, 0xbcbdbebf,
+ 0xc0c1c2c3, 0xc4c5c6c7, 0xc8c9cacb, 0xcccdcecf,
+ 0xd0d1d2d3, 0xd4d5d6d7, 0xd8d9dadb, 0xdcdddedf,
+ 0xe0e1e2e3, 0xe4e5e6e7, 0xe8e9eaeb, 0xecedeeef,
+ 0xf0f1f2f3, 0xf4f5f6f7, 0xf8f9fafb, 0xfcfdfeff
+};
+
+/*
+ * @fn SDRM_RC4_Setup
+ * @brief intialize s
+ *
+ * @param ctx [in]crypto context
+ * @param UserKey [in]user key
+ * @param keyLen [out]byte-length of UserKey
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_Setup(SDRM_RC4Context *ctx, cc_u8 *UserKey, cc_u32 keyLen)
+{
+ cc_u32 i, j, loc = keyLen;
+ cc_u8 temp;
+
+ //initialization
+ i = 0xff;
+ if (((cc_u8*)&i)[0] == 0xff)
+ {
+// LOG4DRM_INFO(&CryptoLogCTX), "is Little Endian machine\n");
+ memcpy(ctx->s, RC4_S_VALUE_LITTLE, 256);
+ }
+ else
+ {
+// LOG4DRM_INFO(&CryptoLogCTX), "is Big Endian machine\n");
+ memcpy(ctx->s, RC4_S_VALUE_BIG, 256);
+ }
+
+ memcpy(ctx->key, UserKey, keyLen);
+
+ ctx->keyLen = keyLen;
+ ctx->i = 0;
+ ctx->j = 0;
+
+ //scrambling
+ if ((keyLen == 16) || (keyLen == 32))
+ {
+ loc--;
+ for (i = 0, j = 0; i < 256; ++i)
+ {
+ j= (j + ctx->key[i & loc] + ctx->s[i]) & 0xff;
+ temp = ctx->s[i];
+ ctx->s[i] = ctx->s[j];
+ ctx->s[j] = temp;
+ }
+ }
+ else
+ {
+ for (i = 0, j = 0; i < 256; ++i)
+ {
+ j = (j + ctx->key[i % ctx->keyLen] + ctx->s[i]) & 0xff;
+ temp = ctx->s[i];
+ ctx->s[i] = ctx->s[j];
+ ctx->s[j] = temp;
+ }
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_RC4_PRNG
+ * @brief process stream data
+ *
+ * @param ctx [in]crypto context
+ * @param in [in]plaintext
+ * @param inLen [in]byte-length of in
+ * @param out [out]cipher text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_PRNG(SDRM_RC4Context *ctx, cc_u8 *in, cc_u32 inLen, cc_u8 *out)
+{
+ cc_u32 i, j, k;
+ cc_u8 temp;
+
+ i = ctx->i;
+ j = ctx->j;
+
+ for (k = 0; k < inLen; k++)
+ {
+ i++;
+ i &= 0xff;
+ j += ctx->s[i];
+ j &= 0xff;
+
+ temp = ctx->s[i];
+ ctx->s[i] = ctx->s[j];
+ ctx->s[j] = temp;
+
+ temp = ctx->s[i] + ctx->s[j];
+
+ out[k] = in[k]^(ctx->s[temp]);
+ }
+
+ ctx->i = i;
+ ctx->j = j;
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/base/sha1.c b/SPC/Src/base/sha1.c
new file mode 100755
index 0000000..990b362
--- /dev/null
+++ b/SPC/Src/base/sha1.c
@@ -0,0 +1,472 @@
+/* For torrentcheck.c, main() commented out */
+/* sha1.c : Implementation of the Secure Hash Algorithm */
+
+/* SHA: NIST's Secure Hash Algorithm */
+
+/* This version written November 2000 by David Ireland of
+ DI Management Services Pty Limited <code@di-mgt.com.au>
+
+ Adapted from code in the Python Cryptography Toolkit,
+ version 1.0.0 by A.M. Kuchling 1995.
+*/
+
+/* AM Kuchling's posting:-
+ Based on SHA code originally posted to sci.crypt by Peter Gutmann
+ in message <30ajo5$oe8@ccu2.auckland.ac.nz>.
+ Modified to test for endianness on creation of SHA objects by AMK.
+ Also, the original specification of SHA was found to have a weakness
+ by NSA/NIST. This code implements the fixed version of SHA.
+*/
+
+/* Here's the first paragraph of Peter Gutmann's posting:
+
+The following is my SHA (FIPS 180) code updated to allow use of the "fixed"
+SHA, thanks to Jim Gillogly and an anonymous contributor for the information on
+what's changed in the new version. The fix is a simple change which involves
+adding a single rotate in the initial expansion function. It is unknown
+whether this is an optimal solution to the problem which was discovered in the
+SHA or whether it's simply a bandaid which fixes the problem with a minimum of
+effort (for example the reengineering of a great many Capstone chips).
+*/
+
+/* JS Park's posting:
+ Modification for naming confilct.
+ - Attach prefix 'SDRM_SHA1_' for all function and constants.
+ - Change name of data context to 'SDRM_SHA1Context'
+ endianTest code is modified to avoid gcc warning.
+ Primitive data types are used, instead of user-defined data types.
+ Prototypes are moved to header file.
+ Not using functions are commented out.
+ */
+
+
+void SDRM_endianTest(int *endianness);
+
+/* sha.c */
+
+#include "sha1.h"
+
+static void SDRM_SHAtoByte(unsigned char *output, unsigned int *input, unsigned int len);
+
+/* The SHS block size and message digest sizes, in bytes */
+
+#define SDRM_SHA1_DATASIZE 64
+#define SDRM_SHA1_DIGESTSIZE 20
+
+
+/* The SHS f()-functions. The f1 and f3 functions can be optimized to
+ save one boolean operation each - thanks to Rich Schroeppel,
+ rcs@cs.arizona.edu for discovering this */
+
+/*#define SDRM_SHA1_f1(x,y,z) ((x & y) | (~x & z)) // Rounds 0-19 */
+#define SDRM_SHA1_f1(x,y,z) (z ^ (x & (y ^ z))) /* Rounds 0-19 */
+#define SDRM_SHA1_f2(x,y,z) (x ^ y ^ z) /* Rounds 20-39 */
+/*#define SDRM_SHA1_f3(x,y,z) ((x & y) | (x & z) | (y & z)) // Rounds 40-59 */
+#define SDRM_SHA1_f3(x,y,z) ((x & y) | (z & (x | y))) /* Rounds 40-59 */
+#define SDRM_SHA1_f4(x,y,z) (x ^ y ^ z) /* Rounds 60-79 */
+
+/* The SHS Mysterious Constants */
+
+#define SDRM_SHA1_K1 0x5A827999L /* Rounds 0-19 */
+#define SDRM_SHA1_K2 0x6ED9EBA1L /* Rounds 20-39 */
+#define SDRM_SHA1_K3 0x8F1BBCDCL /* Rounds 40-59 */
+#define SDRM_SHA1_K4 0xCA62C1D6L /* Rounds 60-79 */
+
+/* SHS initial values */
+
+#define SDRM_SHA1_h0init 0x67452301L
+#define SDRM_SHA1_h1init 0xEFCDAB89L
+#define SDRM_SHA1_h2init 0x98BADCFEL
+#define SDRM_SHA1_h3init 0x10325476L
+#define SDRM_SHA1_h4init 0xC3D2E1F0L
+
+/* Note that it may be necessary to add parentheses to these macros if they
+ are to be called with expressions as arguments */
+/* 32-bit rotate left - kludged with shifts */
+
+#define SDRM_SHA1_ROTL(n, X) (((X) << n) | ((X) >> (32 - n)))
+
+/* The initial expanding function. The hash function is defined over an
+ 80-UINT2 expanded input array W, where the first 16 are copies of the input
+ data, and the remaining 64 are defined by
+
+ W[ i ] = W[ i - 16 ] ^ W[ i - 14 ] ^ W[ i - 8 ] ^ W[ i - 3 ]
+
+ This implementation generates these values on the fly in a circular
+ buffer - thanks to Colin Plumb, colin@nyx10.cs.du.edu for this
+ optimization.
+
+ The updated SHS changes the expanding function by adding a rotate of 1
+ bit. Thanks to Jim Gillogly, jim@rand.org, and an anonymous contributor
+ for this information */
+
+#define SDRM_SHA1_expand(W, i) (W[i & 15] = SDRM_SHA1_ROTL(1, (W[i & 15] ^ W[(i - 14) & 15] ^ \
+ W[(i - 8) & 15] ^ W[(i - 3) & 15])))
+
+
+/* The prototype SHS sub-round. The fundamental sub-round is:
+
+ a' = e + ROTL( 5, a ) + f( b, c, d ) + k + data;
+ b' = a;
+ c' = ROTL( 30, b );
+ d' = c;
+ e' = d;
+
+ but this is implemented by unrolling the loop 5 times and renaming the
+ variables ( e, a, b, c, d ) = ( a', b', c', d', e' ) each iteration.
+ This code is then replicated 20 times for each of the 4 functions, using
+ the next 20 values from the W[] array each time */
+
+#define SDRM_SHA1_subRound(a, b, c, d, e, f, k, data) \
+ (e += SDRM_SHA1_ROTL(5, a) + f(b, c, d) + k + data, b = SDRM_SHA1_ROTL(30, b))
+
+/* Initialize the SHS values */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Init(SDRM_SHA1Context *shsInfo)
+{
+ SDRM_endianTest(&shsInfo->Endianness);
+ /* Set the h-vars to their initial values */
+ shsInfo->digest[ 0 ] = SDRM_SHA1_h0init;
+ shsInfo->digest[ 1 ] = SDRM_SHA1_h1init;
+ shsInfo->digest[ 2 ] = SDRM_SHA1_h2init;
+ shsInfo->digest[ 3 ] = SDRM_SHA1_h3init;
+ shsInfo->digest[ 4 ] = SDRM_SHA1_h4init;
+
+ /* Initialise bit count */
+ shsInfo->countLo = shsInfo->countHi = 0;
+}
+
+
+/* Perform the SHS transformation. Note that this code, like MD5, seems to
+ break some optimizing compilers due to the complexity of the expressions
+ and the size of the basic block. It may be necessary to split it into
+ sections, e.g. based on the four subrounds
+
+ Note that this corrupts the shsInfo->data area */
+
+static void SDRM_SHSTransform(unsigned int *digest, unsigned int *data )
+ {
+ unsigned int A, B, C, D, E; /* Local vars */
+ unsigned int eData[ 16 ]; /* Expanded data */
+
+ /* Set up first buffer and local data buffer */
+ A = digest[ 0 ];
+ B = digest[ 1 ];
+ C = digest[ 2 ];
+ D = digest[ 3 ];
+ E = digest[ 4 ];
+ memcpy( (unsigned char*)eData, (unsigned char*)data, SDRM_SHA1_DATASIZE );
+
+ /* Heavy mangling, in 4 sub-rounds of 20 interations each. */
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 0 ] );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 1 ] );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 2 ] );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 3 ] );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 4 ] );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 5 ] );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 6 ] );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 7 ] );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 8 ] );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 9 ] );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 10 ] );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 11 ] );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 12 ] );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 13 ] );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 14 ] );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f1, SDRM_SHA1_K1, eData[ 15 ] );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f1, SDRM_SHA1_K1, SDRM_SHA1_expand( eData, 16 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f1, SDRM_SHA1_K1, SDRM_SHA1_expand( eData, 17 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f1, SDRM_SHA1_K1, SDRM_SHA1_expand( eData, 18 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f1, SDRM_SHA1_K1, SDRM_SHA1_expand( eData, 19 ) );
+
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 20 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 21 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 22 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 23 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 24 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 25 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 26 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 27 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 28 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 29 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 30 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 31 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 32 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 33 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 34 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 35 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 36 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 37 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 38 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f2, SDRM_SHA1_K2, SDRM_SHA1_expand( eData, 39 ) );
+
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 40 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 41 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 42 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 43 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 44 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 45 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 46 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 47 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 48 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 49 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 50 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 51 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 52 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 53 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 54 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 55 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 56 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 57 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 58 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f3, SDRM_SHA1_K3, SDRM_SHA1_expand( eData, 59 ) );
+
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 60 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 61 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 62 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 63 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 64 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 65 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 66 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 67 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 68 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 69 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 70 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 71 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 72 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 73 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 74 ) );
+ SDRM_SHA1_subRound( A, B, C, D, E, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 75 ) );
+ SDRM_SHA1_subRound( E, A, B, C, D, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 76 ) );
+ SDRM_SHA1_subRound( D, E, A, B, C, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 77 ) );
+ SDRM_SHA1_subRound( C, D, E, A, B, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 78 ) );
+ SDRM_SHA1_subRound( B, C, D, E, A, SDRM_SHA1_f4, SDRM_SHA1_K4, SDRM_SHA1_expand( eData, 79 ) );
+
+ /* Build message digest */
+ digest[ 0 ] += A;
+ digest[ 1 ] += B;
+ digest[ 2 ] += C;
+ digest[ 3 ] += D;
+ digest[ 4 ] += E;
+ }
+
+/* When run on a little-endian CPU we need to perform byte reversal on an
+ array of long words. */
+
+static void SDRM_longReverse(unsigned int *buffer, int byteCount, int Endianness)
+{
+ unsigned int value;
+
+ if (Endianness == !(0)) return;
+ byteCount /= sizeof( unsigned int );
+ while(byteCount--)
+ {
+ value = *buffer;
+ value = ((value & 0xFF00FF00L) >> 8) | \
+ ((value & 0x00FF00FFL ) << 8);
+ *buffer++ = (value << 16) | (value >> 16);
+ }
+}
+
+/* Update SHS for a block of data */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Update(SDRM_SHA1Context *shsInfo, const unsigned char *buffer, int count)
+{
+ unsigned int tmp;
+ int dataCount;
+
+ /* Update bitcount */
+ tmp = shsInfo->countLo;
+ if ((shsInfo->countLo = tmp + ((unsigned int)count << 3)) < tmp)
+ shsInfo->countHi++; /* Carry from low to high */
+
+ shsInfo->countHi += count >> 29;
+
+ /* Get count of bytes already in data */
+ dataCount = (int)(tmp >> 3) & 0x3F;
+
+ /* Handle any leading odd-sized chunks */
+ if (dataCount)
+ {
+ unsigned char *p = (unsigned char*) shsInfo->data + dataCount;
+
+ dataCount = SDRM_SHA1_DATASIZE - dataCount;
+ if(count < dataCount)
+ {
+ memcpy(p, buffer, count);
+ return;
+ }
+ memcpy(p, buffer, dataCount);
+ SDRM_longReverse(shsInfo->data, SDRM_SHA1_DATASIZE, shsInfo->Endianness);
+ SDRM_SHSTransform(shsInfo->digest, shsInfo->data);
+ buffer += dataCount;
+ count -= dataCount;
+ }
+
+ /* Process data in SHS_DATASIZE chunks */
+ while(count >= SDRM_SHA1_DATASIZE)
+ {
+ memcpy((unsigned char*)shsInfo->data, buffer, SDRM_SHA1_DATASIZE);
+ SDRM_longReverse(shsInfo->data, SDRM_SHA1_DATASIZE, shsInfo->Endianness);
+ SDRM_SHSTransform(shsInfo->digest, shsInfo->data);
+ buffer += SDRM_SHA1_DATASIZE;
+ count -= SDRM_SHA1_DATASIZE;
+ }
+
+ /* Handle any remaining bytes of data. */
+ memcpy( (unsigned char*)shsInfo->data, buffer, count);
+ }
+
+/* Final wrapup - pad to SHS_DATASIZE-byte boundary with the bit pattern
+ 1 0* (64-bit count of bits processed, MSB-first) */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA1_Final(SDRM_SHA1Context *shsInfo, unsigned char *output)
+{
+ int count;
+ unsigned char *dataPtr;
+
+ /* Compute number of bytes mod 64 */
+ count = (int) shsInfo->countLo;
+ count = (count >> 3) & 0x3F;
+
+ /* Set the first char of padding to 0x80. This is safe since there is
+ always at least one byte free */
+ dataPtr = (unsigned char*) shsInfo->data + count;
+ *dataPtr++ = 0x80;
+
+ /* Bytes of padding needed to make 64 bytes */
+ count = SDRM_SHA1_DATASIZE - 1 - count;
+
+ /* Pad out to 56 mod 64 */
+ if( count < 8 )
+ {
+ /* Two lots of padding: Pad the first block to 64 bytes */
+ memset(dataPtr, 0, count);
+ SDRM_longReverse(shsInfo->data, SDRM_SHA1_DATASIZE, shsInfo->Endianness);
+ SDRM_SHSTransform(shsInfo->digest, shsInfo->data);
+
+ /* Now fill the next block with 56 bytes */
+ memset((unsigned char*)shsInfo->data, 0, SDRM_SHA1_DATASIZE - 8);
+ }
+ else
+ /* Pad block to 56 bytes */
+ memset(dataPtr, 0, count - 8);
+
+ /* Append length in bits and transform */
+ shsInfo->data[14] = shsInfo->countHi;
+ shsInfo->data[15] = shsInfo->countLo;
+
+ SDRM_longReverse(shsInfo->data, SDRM_SHA1_DATASIZE - 8, shsInfo->Endianness);
+ SDRM_SHSTransform(shsInfo->digest, shsInfo->data);
+
+ /* Output to an array of bytes */
+ SDRM_SHAtoByte(output, shsInfo->digest, SDRM_SHA1_DIGESTSIZE);
+
+ /* Zeroise sensitive stuff */
+ memset((unsigned char*)shsInfo, 0, sizeof(SDRM_SHA1Context));
+}
+
+static void SDRM_SHAtoByte(unsigned char *output, unsigned int *input, unsigned int len)
+{ /* Output SHA digest in byte array */
+ unsigned int i, j;
+
+ for(i = 0, j = 0; j < len; i++, j += 4)
+ {
+ output[j+3] = (unsigned char)( input[i] & 0xff);
+ output[j+2] = (unsigned char)((input[i] >> 8 ) & 0xff);
+ output[j+1] = (unsigned char)((input[i] >> 16) & 0xff);
+ output[j ] = (unsigned char)((input[i] >> 24) & 0xff);
+ }
+}
+
+
+//unsigned char digest[20];
+//unsigned char message[3] = {'a', 'b', 'c' };
+//unsigned char *mess56 =
+// "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
+
+/* Correct solutions from FIPS PUB 180-1 */
+//char *dig1 = "A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D";
+//char *dig2 = "84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1";
+//char *dig3 = "34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F";
+
+/* Output should look like:-
+ a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d
+ A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D <= correct
+ 84983e44 1c3bd26e baae4aa1 f95129e5 e54670f1
+ 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1 <= correct
+ 34aa973c d4c4daa4 f61eeb2b dbad2731 6534016f
+ 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F <= correct
+*/
+
+//main()
+//{
+// SHA_CTX sha;
+// int i;
+// BYTE big[1000];
+//
+// SHAInit(&sha);
+// SHAUpdate(&sha, message, 3);
+// SHAFinal(digest, &sha);
+//
+// for (i = 0; i < 20; i++)
+// {
+// if ((i % 4) == 0) printf(" ");
+// printf("%02x", digest[i]);
+// }
+// printf("\n");
+// printf(" %s <= correct\n", dig1);
+//
+// SHAInit(&sha);
+// SHAUpdate(&sha, mess56, 56);
+// SHAFinal(digest, &sha);
+//
+// for (i = 0; i < 20; i++)
+// {
+// if ((i % 4) == 0) printf(" ");
+// printf("%02x", digest[i]);
+// }
+// printf("\n");
+// printf(" %s <= correct\n", dig2);
+//
+// /* Fill up big array */
+// for (i = 0; i < 1000; i++)
+// big[i] = 'a';
+//
+// SHAInit(&sha);
+// /* Digest 1 million x 'a' */
+// for (i = 0; i < 1000; i++)
+// SHAUpdate(&sha, big, 1000);
+// SHAFinal(digest, &sha);
+//
+// for (i = 0; i < 20; i++)
+// {
+// if ((i % 4) == 0) printf(" ");
+// printf("%02x", digest[i]);
+// }
+// printf("\n");
+// printf(" %s <= correct\n", dig3);
+//
+// return 0;
+//}
+
+/* endian.c */
+
+CRYPTOCORE_INTERNAL void SDRM_endianTest(int *endian_ness)
+{
+ static short test = 1;
+
+ if ( *((char *) &test) != 1)
+ {
+ /* printf("Big endian = no change\n"); */
+ *endian_ness = !(0);
+ }
+ else
+ {
+ /* printf("Little endian = swap\n"); */
+ *endian_ness = 0;
+ }
+}
+
+/***************************** End of File *****************************/
+
diff --git a/SPC/Src/base/sha2.c b/SPC/Src/base/sha2.c
new file mode 100755
index 0000000..65dcdaf
--- /dev/null
+++ b/SPC/Src/base/sha2.c
@@ -0,0 +1,660 @@
+/*
+ * FIPS 180-2 SHA-224/256/384/512 implementation
+ * Last update: 02/02/2007
+ * Issue date: 04/30/2005
+ *
+ * Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the name of the project 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 PROJECT 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 PROJECT 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.
+ */
+
+/* JS Park's posting:
+ Modification for naming confilct.
+ Attach prefix 'SDRM_' for all function and constants.
+ Change name of data context to 'SDRM_SHAxxxContext' (xxx is bit length of digest)
+*/
+
+#include <string.h>
+
+#include "sha2.h"
+
+#define SDRM_SHA2_SHFR(x, n) (x >> n)
+#define SDRM_SHA2_ROTR(x, n) ((x >> n) | (x << ((sizeof(x) << 3) - n)))
+#define SDRM_SHA2_ROTL(x, n) ((x << n) | (x >> ((sizeof(x) << 3) - n)))
+#define SDRM_SHA2_CH(x, y, z) ((x & y) ^ (~x & z))
+#define SDRM_SHA2_MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
+
+#define SDRM_SHA2_SHA256_F1(x) (SDRM_SHA2_ROTR(x, 2) ^ SDRM_SHA2_ROTR(x, 13) ^ SDRM_SHA2_ROTR(x, 22))
+#define SDRM_SHA2_SHA256_F2(x) (SDRM_SHA2_ROTR(x, 6) ^ SDRM_SHA2_ROTR(x, 11) ^ SDRM_SHA2_ROTR(x, 25))
+#define SDRM_SHA2_SHA256_F3(x) (SDRM_SHA2_ROTR(x, 7) ^ SDRM_SHA2_ROTR(x, 18) ^ SDRM_SHA2_SHFR(x, 3))
+#define SDRM_SHA2_SHA256_F4(x) (SDRM_SHA2_ROTR(x, 17) ^ SDRM_SHA2_ROTR(x, 19) ^ SDRM_SHA2_SHFR(x, 10))
+
+#define SDRM_SHA2_SHA512_F1(x) (SDRM_SHA2_ROTR(x, 28) ^ SDRM_SHA2_ROTR(x, 34) ^ SDRM_SHA2_ROTR(x, 39))
+#define SDRM_SHA2_SHA512_F2(x) (SDRM_SHA2_ROTR(x, 14) ^ SDRM_SHA2_ROTR(x, 18) ^ SDRM_SHA2_ROTR(x, 41))
+#define SDRM_SHA2_SHA512_F3(x) (SDRM_SHA2_ROTR(x, 1) ^ SDRM_SHA2_ROTR(x, 8) ^ SDRM_SHA2_SHFR(x, 7))
+#define SDRM_SHA2_SHA512_F4(x) (SDRM_SHA2_ROTR(x, 19) ^ SDRM_SHA2_ROTR(x, 61) ^ SDRM_SHA2_SHFR(x, 6))
+
+#define SDRM_SHA2_UNPACK32(x, str) \
+do { \
+ *((str) + 3) = (cc_u8) ((x) ); \
+ *((str) + 2) = (cc_u8) ((x) >> 8); \
+ *((str) + 1) = (cc_u8) ((x) >> 16); \
+ *((str) + 0) = (cc_u8) ((x) >> 24); \
+} while(0)
+
+#define SDRM_SHA2_PACK32(str, x) \
+do { \
+ *(x) = ((cc_u32) *((str) + 3) ) \
+ | ((cc_u32) *((str) + 2) << 8) \
+ | ((cc_u32) *((str) + 1) << 16) \
+ | ((cc_u32) *((str) + 0) << 24); \
+} while(0)
+
+#define SDRM_SHA2_UNPACK64(x, str) \
+do { \
+ *((str) + 7) = (cc_u8) ((x) ); \
+ *((str) + 6) = (cc_u8) ((x) >> 8); \
+ *((str) + 5) = (cc_u8) ((x) >> 16); \
+ *((str) + 4) = (cc_u8) ((x) >> 24); \
+ *((str) + 3) = (cc_u8) ((x) >> 32); \
+ *((str) + 2) = (cc_u8) ((x) >> 40); \
+ *((str) + 1) = (cc_u8) ((x) >> 48); \
+ *((str) + 0) = (cc_u8) ((x) >> 56); \
+} while(0)
+
+#define SDRM_SHA2_PACK64(str, x) \
+do { \
+ *(x) = ((cc_u64) *((str) + 7) ) \
+ | ((cc_u64) *((str) + 6) << 8) \
+ | ((cc_u64) *((str) + 5) << 16) \
+ | ((cc_u64) *((str) + 4) << 24) \
+ | ((cc_u64) *((str) + 3) << 32) \
+ | ((cc_u64) *((str) + 2) << 40) \
+ | ((cc_u64) *((str) + 1) << 48) \
+ | ((cc_u64) *((str) + 0) << 56); \
+} while(0)
+
+/* Macros used for loops unrolling */
+
+#define SDRM_SHA2_SHA256_SCR(i) \
+{ \
+ w[i] = SDRM_SHA2_SHA256_F4(w[i - 2]) + w[i - 7] \
+ + SDRM_SHA2_SHA256_F3(w[i - 15]) + w[i - 16]; \
+}
+
+#define SDRM_SHA2_SHA512_SCR(i) \
+{ \
+ w[i] = SDRM_SHA2_SHA512_F4(w[i - 2]) + w[i - 7] \
+ + SDRM_SHA2_SHA512_F3(w[i - 15]) + w[i - 16]; \
+}
+
+#define SDRM_SHA2_SHA256_EXP(a, b, c, d, e, f, g, h, j) \
+{ \
+ t1 = wv[h] + SDRM_SHA2_SHA256_F2(wv[e]) + SDRM_SHA2_CH(wv[e], wv[f], wv[g]) \
+ + sha256_k[j] + w[j]; \
+ t2 = SDRM_SHA2_SHA256_F1(wv[a]) + SDRM_SHA2_MAJ(wv[a], wv[b], wv[c]); \
+ wv[d] += t1; \
+ wv[h] = t1 + t2; \
+}
+
+#define SDRM_SHA2_SHA512_EXP(a, b, c, d, e, f, g ,h, j) \
+{ \
+ t1 = wv[h] + SDRM_SHA2_SHA512_F2(wv[e]) + SDRM_SHA2_CH(wv[e], wv[f], wv[g]) \
+ + sha512_k[j] + w[j]; \
+ t2 = SDRM_SHA2_SHA512_F1(wv[a]) + SDRM_SHA2_MAJ(wv[a], wv[b], wv[c]); \
+ wv[d] += t1; \
+ wv[h] = t1 + t2; \
+}
+
+CRYPTOCORE_INTERNAL cc_u32 sha224_h0[8] =
+ {0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
+ 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
+
+CRYPTOCORE_INTERNAL cc_u32 sha256_h0[8] =
+ {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
+ 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
+
+CRYPTOCORE_INTERNAL cc_u32 sha256_k[64] =
+ {0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2};
+
+#ifndef _OP64_NOTSUPPORTED
+
+#ifdef _WIN32
+CRYPTOCORE_INTERNAL cc_u64 sha384_h0[8] =
+ {0xcbbb9d5dc1059ed8, 0x629a292a367cd507,
+ 0x9159015a3070dd17, 0x152fecd8f70e5939,
+ 0x67332667ffc00b31, 0x8eb44a8768581511,
+ 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4};
+
+CRYPTOCORE_INTERNAL cc_u64 sha512_h0[8] =
+ {0x6a09e667f3bcc908, 0xbb67ae8584caa73b,
+ 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,
+ 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
+ 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179};
+
+CRYPTOCORE_INTERNAL cc_u64 sha512_k[80] =
+ {0x428a2f98d728ae22, 0x7137449123ef65cd,
+ 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
+ 0x3956c25bf348b538, 0x59f111f1b605d019,
+ 0x923f82a4af194f9b, 0xab1c5ed5da6d8118,
+ 0xd807aa98a3030242, 0x12835b0145706fbe,
+ 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2,
+ 0x72be5d74f27b896f, 0x80deb1fe3b1696b1,
+ 0x9bdc06a725c71235, 0xc19bf174cf692694,
+ 0xe49b69c19ef14ad2, 0xefbe4786384f25e3,
+ 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
+ 0x2de92c6f592b0275, 0x4a7484aa6ea6e483,
+ 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5,
+ 0x983e5152ee66dfab, 0xa831c66d2db43210,
+ 0xb00327c898fb213f, 0xbf597fc7beef0ee4,
+ 0xc6e00bf33da88fc2, 0xd5a79147930aa725,
+ 0x06ca6351e003826f, 0x142929670a0e6e70,
+ 0x27b70a8546d22ffc, 0x2e1b21385c26c926,
+ 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df,
+ 0x650a73548baf63de, 0x766a0abb3c77b2a8,
+ 0x81c2c92e47edaee6, 0x92722c851482353b,
+ 0xa2bfe8a14cf10364, 0xa81a664bbc423001,
+ 0xc24b8b70d0f89791, 0xc76c51a30654be30,
+ 0xd192e819d6ef5218, 0xd69906245565a910,
+ 0xf40e35855771202a, 0x106aa07032bbd1b8,
+ 0x19a4c116b8d2d0c8, 0x1e376c085141ab53,
+ 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8,
+ 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb,
+ 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3,
+ 0x748f82ee5defb2fc, 0x78a5636f43172f60,
+ 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
+ 0x90befffa23631e28, 0xa4506cebde82bde9,
+ 0xbef9a3f7b2c67915, 0xc67178f2e372532b,
+ 0xca273eceea26619c, 0xd186b8c721c0c207,
+ 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
+ 0x06f067aa72176fba, 0x0a637dc5a2c898a6,
+ 0x113f9804bef90dae, 0x1b710b35131c471b,
+ 0x28db77f523047d84, 0x32caab7b40c72493,
+ 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
+ 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a,
+ 0x5fcb6fab3ad6faec, 0x6c44198c4a475817};
+#else
+CRYPTOCORE_INTERNAL cc_u64 sha384_h0[8] =
+ {0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL,
+ 0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL,
+ 0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
+ 0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL};
+
+CRYPTOCORE_INTERNAL cc_u64 sha512_h0[8] =
+ {0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
+ 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
+ 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
+ 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL};
+
+CRYPTOCORE_INTERNAL cc_u64 sha512_k[80] =
+ {0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
+ 0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
+ 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
+ 0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
+ 0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
+ 0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
+ 0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
+ 0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
+ 0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
+ 0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
+ 0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
+ 0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
+ 0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
+ 0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
+ 0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
+ 0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
+ 0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
+ 0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
+ 0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
+ 0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
+ 0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
+ 0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
+ 0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
+ 0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
+ 0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
+ 0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
+ 0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
+ 0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
+ 0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
+ 0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
+ 0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
+ 0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
+ 0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
+ 0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
+ 0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
+ 0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
+ 0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
+ 0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
+ 0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
+ 0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL};
+#endif //_WIN32
+#endif //_OP64_NOTSUPPORTED
+
+/* SHA-256 functions */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Transf(SDRM_SHA256Context* ctx, const cc_u8 *message, cc_u32 block_nb)
+{
+ cc_u32 w[64];
+ cc_u32 wv[8];
+ cc_u32 t1, t2;
+ const cc_u8 *sub_block;
+ int i;
+
+ int j;
+
+ for (i = 0; i < (int) block_nb; i++)
+ {
+ sub_block = message + (i << 6);
+
+ for (j = 0; j < 16; j++)
+ {
+ SDRM_SHA2_PACK32(&sub_block[j << 2], &w[j]);
+ }
+
+ for (j = 16; j < 64; j++)
+ {
+ SDRM_SHA2_SHA256_SCR(j);
+ }
+
+ for (j = 0; j < 8; j++)
+ {
+ wv[j] = ctx->h[j];
+ }
+
+ for (j = 0; j < 64; j++)
+ {
+ t1 = wv[7] + SDRM_SHA2_SHA256_F2(wv[4]) + SDRM_SHA2_CH(wv[4], wv[5], wv[6]) + sha256_k[j] + w[j];
+ t2 = SDRM_SHA2_SHA256_F1(wv[0]) + SDRM_SHA2_MAJ(wv[0], wv[1], wv[2]);
+ wv[7] = wv[6];
+ wv[6] = wv[5];
+ wv[5] = wv[4];
+ wv[4] = wv[3] + t1;
+ wv[3] = wv[2];
+ wv[2] = wv[1];
+ wv[1] = wv[0];
+ wv[0] = t1 + t2;
+ }
+
+ for (j = 0; j < 8; j++)
+ {
+ ctx->h[j] += wv[j];
+ }
+ }
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Init(SDRM_SHA256Context* ctx)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ {
+ ctx->h[i] = sha256_h0[i];
+ }
+
+ ctx->len = 0;
+ ctx->tot_len = 0;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Update(SDRM_SHA256Context* ctx, const cc_u8 *message, cc_u32 len)
+{
+ cc_u32 block_nb;
+ cc_u32 new_len, rem_len, tmp_len;
+ const cc_u8 *shifted_message;
+
+ tmp_len = SDRM_SHA256_DATA_SIZE - ctx->len;
+ rem_len = len < tmp_len ? len : tmp_len;
+
+ memcpy(&ctx->block[ctx->len], message, rem_len);
+
+ if (ctx->len + len < SDRM_SHA256_DATA_SIZE)
+ {
+ ctx->len += len;
+ return;
+ }
+
+ new_len = len - rem_len;
+ block_nb = new_len / SDRM_SHA256_DATA_SIZE;
+
+ shifted_message = message + rem_len;
+
+ SDRM_SHA256_Transf(ctx, ctx->block, 1);
+ SDRM_SHA256_Transf(ctx, shifted_message, block_nb);
+
+ rem_len = new_len % SDRM_SHA256_DATA_SIZE;
+
+ memcpy(ctx->block, &shifted_message[block_nb << 6], rem_len);
+
+ ctx->len = rem_len;
+ ctx->tot_len += (block_nb + 1) << 6;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA256_Final(SDRM_SHA256Context* ctx, cc_u8 *digest)
+{
+ cc_u32 block_nb;
+ cc_u32 pm_len;
+ cc_u32 len_b;
+
+ int i;
+
+ block_nb = (1 + ((SDRM_SHA256_DATA_SIZE - 9) < (ctx->len % SDRM_SHA256_DATA_SIZE)));
+
+ len_b = (ctx->tot_len + ctx->len) << 3;
+ pm_len = block_nb << 6;
+
+ memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+ ctx->block[ctx->len] = 0x80;
+ SDRM_SHA2_UNPACK32(len_b, ctx->block + pm_len - 4);
+
+ SDRM_SHA256_Transf(ctx, ctx->block, block_nb);
+
+ for (i = 0 ; i < 8; i++)
+ {
+ SDRM_SHA2_UNPACK32(ctx->h[i], &digest[i << 2]);
+ }
+}
+
+#ifndef _OP64_NOTSUPPORTED
+
+/* SHA-512 functions */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Transf(SDRM_SHA512Context* ctx, const cc_u8 *message, cc_u32 block_nb)
+{
+ cc_u64 w[80];
+ cc_u64 wv[8];
+ cc_u64 t1, t2;
+ const cc_u8 *sub_block;
+ int i, j;
+
+ for (i = 0; i < (int) block_nb; i++)
+ {
+ sub_block = message + (i << 7);
+
+ for (j = 0; j < 16; j++)
+ {
+ SDRM_SHA2_PACK64(&sub_block[j << 3], &w[j]);
+ }
+
+ for (j = 16; j < 80; j++)
+ {
+ SDRM_SHA2_SHA512_SCR(j);
+ }
+
+ for (j = 0; j < 8; j++)
+ {
+ wv[j] = ctx->h[j];
+ }
+
+ for (j = 0; j < 80; j++)
+ {
+ t1 = wv[7] + SDRM_SHA2_SHA512_F2(wv[4]) + SDRM_SHA2_CH(wv[4], wv[5], wv[6])
+ + sha512_k[j] + w[j];
+ t2 = SDRM_SHA2_SHA512_F1(wv[0]) + SDRM_SHA2_MAJ(wv[0], wv[1], wv[2]);
+ wv[7] = wv[6];
+ wv[6] = wv[5];
+ wv[5] = wv[4];
+ wv[4] = wv[3] + t1;
+ wv[3] = wv[2];
+ wv[2] = wv[1];
+ wv[1] = wv[0];
+ wv[0] = t1 + t2;
+ }
+
+ for (j = 0; j < 8; j++)
+ {
+ ctx->h[j] += wv[j];
+ }
+ }
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Init(SDRM_SHA512Context* ctx)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ {
+ ctx->h[i] = sha512_h0[i];
+ }
+
+ ctx->len = 0;
+ ctx->tot_len = 0;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Update(SDRM_SHA512Context* ctx, const cc_u8 *message, cc_u32 len)
+{
+ cc_u32 block_nb;
+ cc_u32 new_len, rem_len, tmp_len;
+ const cc_u8 *shifted_message;
+
+ tmp_len = SDRM_SHA512_DATA_SIZE - ctx->len;
+ rem_len = len < tmp_len ? len : tmp_len;
+
+ memcpy(&ctx->block[ctx->len], message, rem_len);
+
+ if (ctx->len + len < SDRM_SHA512_DATA_SIZE)
+ {
+ ctx->len += len;
+ return;
+ }
+
+ new_len = len - rem_len;
+ block_nb = new_len / SDRM_SHA512_DATA_SIZE;
+
+ shifted_message = message + rem_len;
+
+ SDRM_SHA512_Transf(ctx, ctx->block, 1);
+ SDRM_SHA512_Transf(ctx, shifted_message, block_nb);
+
+ rem_len = new_len % SDRM_SHA512_DATA_SIZE;
+
+ memcpy(ctx->block, &shifted_message[block_nb << 7], rem_len);
+
+ ctx->len = rem_len;
+ ctx->tot_len += (block_nb + 1) << 7;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA512_Final(SDRM_SHA512Context* ctx, cc_u8 *digest)
+{
+ cc_u32 block_nb;
+ cc_u32 pm_len;
+ cc_u32 len_b;
+
+ int i;
+
+ block_nb = 1 + ((SDRM_SHA512_DATA_SIZE - 17) < (ctx->len % SDRM_SHA512_DATA_SIZE));
+
+ len_b = (ctx->tot_len + ctx->len) << 3;
+ pm_len = block_nb << 7;
+
+ memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+ ctx->block[ctx->len] = 0x80;
+ SDRM_SHA2_UNPACK32(len_b, ctx->block + pm_len - 4);
+
+ SDRM_SHA512_Transf(ctx, ctx->block, block_nb);
+
+ for (i = 0 ; i < 8; i++)
+ {
+ SDRM_SHA2_UNPACK64(ctx->h[i], &digest[i << 3]);
+ }
+}
+
+/* SHA-384 functions */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Init(SDRM_SHA384Context* ctx)
+{
+ int i;
+ for (i = 0; i < 8; i++)
+ {
+ ctx->h[i] = sha384_h0[i];
+ }
+
+ ctx->len = 0;
+ ctx->tot_len = 0;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Update(SDRM_SHA384Context* ctx, const cc_u8 *message, cc_u32 len)
+{
+ cc_u32 block_nb;
+ cc_u32 new_len, rem_len, tmp_len;
+ const cc_u8 *shifted_message;
+
+ tmp_len = SDRM_SHA384_DATA_SIZE - ctx->len;
+ rem_len = len < tmp_len ? len : tmp_len;
+
+ memcpy(&ctx->block[ctx->len], message, rem_len);
+
+ if (ctx->len + len < SDRM_SHA384_DATA_SIZE)
+ {
+ ctx->len += len;
+ return;
+ }
+
+ new_len = len - rem_len;
+ block_nb = new_len / SDRM_SHA384_DATA_SIZE;
+
+ shifted_message = message + rem_len;
+
+ SDRM_SHA512_Transf(ctx, ctx->block, 1);
+ SDRM_SHA512_Transf(ctx, shifted_message, block_nb);
+
+ rem_len = new_len % SDRM_SHA384_DATA_SIZE;
+
+ memcpy(ctx->block, &shifted_message[block_nb << 7], rem_len);
+
+ ctx->len = rem_len;
+ ctx->tot_len += (block_nb + 1) << 7;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA384_Final(SDRM_SHA384Context* ctx, cc_u8 *digest)
+{
+ cc_u32 block_nb;
+ cc_u32 pm_len;
+ cc_u32 len_b;
+
+ int i;
+
+ block_nb = (1 + ((SDRM_SHA384_DATA_SIZE - 17) < (ctx->len % SDRM_SHA384_DATA_SIZE)));
+
+ len_b = (ctx->tot_len + ctx->len) << 3;
+ pm_len = block_nb << 7;
+
+ memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+ ctx->block[ctx->len] = 0x80;
+ SDRM_SHA2_UNPACK32(len_b, ctx->block + pm_len - 4);
+
+ SDRM_SHA512_Transf(ctx, ctx->block, block_nb);
+
+ for (i = 0 ; i < 6; i++)
+ {
+ SDRM_SHA2_UNPACK64(ctx->h[i], &digest[i << 3]);
+ }
+}
+
+#endif //_OP64_NOTSUPPORTED
+
+/* SHA-224 functions */
+
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Init(SDRM_SHA224Context *ctx)
+{
+ int i;
+ for (i = 0; i < 8; i++) {
+ ctx->h[i] = sha224_h0[i];
+ }
+
+ ctx->len = 0;
+ ctx->tot_len = 0;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Update(SDRM_SHA224Context *ctx, const unsigned char *message,
+ unsigned int len)
+{
+ unsigned int block_nb;
+ unsigned int new_len, rem_len, tmp_len;
+ const unsigned char *shifted_message;
+
+ tmp_len = SDRM_SHA224_DATA_SIZE - ctx->len;
+ rem_len = len < tmp_len ? len : tmp_len;
+
+ memcpy(&ctx->block[ctx->len], message, rem_len);
+
+ if (ctx->len + len < SDRM_SHA224_DATA_SIZE) {
+ ctx->len += len;
+ return;
+ }
+
+ new_len = len - rem_len;
+ block_nb = new_len / SDRM_SHA224_DATA_SIZE;
+
+ shifted_message = message + rem_len;
+
+ SDRM_SHA256_Transf(ctx, ctx->block, 1);
+ SDRM_SHA256_Transf(ctx, shifted_message, block_nb);
+
+ rem_len = new_len % SDRM_SHA224_DATA_SIZE;
+
+ memcpy(ctx->block, &shifted_message[block_nb << 6],
+ rem_len);
+
+ ctx->len = rem_len;
+ ctx->tot_len += (block_nb + 1) << 6;
+}
+
+CRYPTOCORE_INTERNAL void SDRM_SHA224_Final(SDRM_SHA224Context *ctx, unsigned char *digest)
+{
+ unsigned int block_nb;
+ unsigned int pm_len;
+ unsigned int len_b;
+
+ int i;
+
+ block_nb = (1 + ((SDRM_SHA224_DATA_SIZE - 9)
+ < (ctx->len % SDRM_SHA224_DATA_SIZE)));
+
+ len_b = (ctx->tot_len + ctx->len) << 3;
+ pm_len = block_nb << 6;
+
+ memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
+ ctx->block[ctx->len] = 0x80;
+ SDRM_SHA2_UNPACK32(len_b, ctx->block + pm_len - 4);
+
+ SDRM_SHA256_Transf(ctx, ctx->block, block_nb);
+
+ for (i = 0 ; i < 7; i++) {
+ SDRM_SHA2_UNPACK32(ctx->h[i], &digest[i << 2]);
+ }
+}
diff --git a/SPC/Src/base/snow2.c b/SPC/Src/base/snow2.c
new file mode 100755
index 0000000..e115097
--- /dev/null
+++ b/SPC/Src/base/snow2.c
@@ -0,0 +1,404 @@
+/**
+ * \file snow2.c
+ * @brief implementation of SNOW 2.0 encryption scheme
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/02
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "snow2.h"
+
+////////////////////////////////////////////////////////////////////////////
+// pre-computated values
+////////////////////////////////////////////////////////////////////////////
+static cc_u32 SNOW2_MUL_a[256]= {
+ 0x00000000, 0xE19FCF13, 0x6B973726, 0x8A08F835, 0xD6876E4C, 0x3718A15F, 0xBD10596A, 0x5C8F9679,
+ 0x05A7DC98, 0xE438138B, 0x6E30EBBE, 0x8FAF24AD, 0xD320B2D4, 0x32BF7DC7, 0xB8B785F2, 0x59284AE1,
+ 0x0AE71199, 0xEB78DE8A, 0x617026BF, 0x80EFE9AC, 0xDC607FD5, 0x3DFFB0C6, 0xB7F748F3, 0x566887E0,
+ 0x0F40CD01, 0xEEDF0212, 0x64D7FA27, 0x85483534, 0xD9C7A34D, 0x38586C5E, 0xB250946B, 0x53CF5B78,
+ 0x1467229B, 0xF5F8ED88, 0x7FF015BD, 0x9E6FDAAE, 0xC2E04CD7, 0x237F83C4, 0xA9777BF1, 0x48E8B4E2,
+ 0x11C0FE03, 0xF05F3110, 0x7A57C925, 0x9BC80636, 0xC747904F, 0x26D85F5C, 0xACD0A769, 0x4D4F687A,
+ 0x1E803302, 0xFF1FFC11, 0x75170424, 0x9488CB37, 0xC8075D4E, 0x2998925D, 0xA3906A68, 0x420FA57B,
+ 0x1B27EF9A, 0xFAB82089, 0x70B0D8BC, 0x912F17AF, 0xCDA081D6, 0x2C3F4EC5, 0xA637B6F0, 0x47A879E3,
+ 0x28CE449F, 0xC9518B8C, 0x435973B9, 0xA2C6BCAA, 0xFE492AD3, 0x1FD6E5C0, 0x95DE1DF5, 0x7441D2E6,
+ 0x2D699807, 0xCCF65714, 0x46FEAF21, 0xA7616032, 0xFBEEF64B, 0x1A713958, 0x9079C16D, 0x71E60E7E,
+ 0x22295506, 0xC3B69A15, 0x49BE6220, 0xA821AD33, 0xF4AE3B4A, 0x1531F459, 0x9F390C6C, 0x7EA6C37F,
+ 0x278E899E, 0xC611468D, 0x4C19BEB8, 0xAD8671AB, 0xF109E7D2, 0x109628C1, 0x9A9ED0F4, 0x7B011FE7,
+ 0x3CA96604, 0xDD36A917, 0x573E5122, 0xB6A19E31, 0xEA2E0848, 0x0BB1C75B, 0x81B93F6E, 0x6026F07D,
+ 0x390EBA9C, 0xD891758F, 0x52998DBA, 0xB30642A9, 0xEF89D4D0, 0x0E161BC3, 0x841EE3F6, 0x65812CE5,
+ 0x364E779D, 0xD7D1B88E, 0x5DD940BB, 0xBC468FA8, 0xE0C919D1, 0x0156D6C2, 0x8B5E2EF7, 0x6AC1E1E4,
+ 0x33E9AB05, 0xD2766416, 0x587E9C23, 0xB9E15330, 0xE56EC549, 0x04F10A5A, 0x8EF9F26F, 0x6F663D7C,
+ 0x50358897, 0xB1AA4784, 0x3BA2BFB1, 0xDA3D70A2, 0x86B2E6DB, 0x672D29C8, 0xED25D1FD, 0x0CBA1EEE,
+ 0x5592540F, 0xB40D9B1C, 0x3E056329, 0xDF9AAC3A, 0x83153A43, 0x628AF550, 0xE8820D65, 0x091DC276,
+ 0x5AD2990E, 0xBB4D561D, 0x3145AE28, 0xD0DA613B, 0x8C55F742, 0x6DCA3851, 0xE7C2C064, 0x065D0F77,
+ 0x5F754596, 0xBEEA8A85, 0x34E272B0, 0xD57DBDA3, 0x89F22BDA, 0x686DE4C9, 0xE2651CFC, 0x03FAD3EF,
+ 0x4452AA0C, 0xA5CD651F, 0x2FC59D2A, 0xCE5A5239, 0x92D5C440, 0x734A0B53, 0xF942F366, 0x18DD3C75,
+ 0x41F57694, 0xA06AB987, 0x2A6241B2, 0xCBFD8EA1, 0x977218D8, 0x76EDD7CB, 0xFCE52FFE, 0x1D7AE0ED,
+ 0x4EB5BB95, 0xAF2A7486, 0x25228CB3, 0xC4BD43A0, 0x9832D5D9, 0x79AD1ACA, 0xF3A5E2FF, 0x123A2DEC,
+ 0x4B12670D, 0xAA8DA81E, 0x2085502B, 0xC11A9F38, 0x9D950941, 0x7C0AC652, 0xF6023E67, 0x179DF174,
+ 0x78FBCC08, 0x9964031B, 0x136CFB2E, 0xF2F3343D, 0xAE7CA244, 0x4FE36D57, 0xC5EB9562, 0x24745A71,
+ 0x7D5C1090, 0x9CC3DF83, 0x16CB27B6, 0xF754E8A5, 0xABDB7EDC, 0x4A44B1CF, 0xC04C49FA, 0x21D386E9,
+ 0x721CDD91, 0x93831282, 0x198BEAB7, 0xF81425A4, 0xA49BB3DD, 0x45047CCE, 0xCF0C84FB, 0x2E934BE8,
+ 0x77BB0109, 0x9624CE1A, 0x1C2C362F, 0xFDB3F93C, 0xA13C6F45, 0x40A3A056, 0xCAAB5863, 0x2B349770,
+ 0x6C9CEE93, 0x8D032180, 0x070BD9B5, 0xE69416A6, 0xBA1B80DF, 0x5B844FCC, 0xD18CB7F9, 0x301378EA,
+ 0x693B320B, 0x88A4FD18, 0x02AC052D, 0xE333CA3E, 0xBFBC5C47, 0x5E239354, 0xD42B6B61, 0x35B4A472,
+ 0x667BFF0A, 0x87E43019, 0x0DECC82C, 0xEC73073F, 0xB0FC9146, 0x51635E55, 0xDB6BA660, 0x3AF46973,
+ 0x63DC2392, 0x8243EC81, 0x084B14B4, 0xE9D4DBA7, 0xB55B4DDE, 0x54C482CD, 0xDECC7AF8, 0x3F53B5EB
+};
+
+static cc_u32 SNOW2_MUL_ainverse[256]= {
+ 0x00000000, 0x180F40CD, 0x301E8033, 0x2811C0FE, 0x603CA966, 0x7833E9AB, 0x50222955, 0x482D6998,
+ 0xC078FBCC, 0xD877BB01, 0xF0667BFF, 0xE8693B32, 0xA04452AA, 0xB84B1267, 0x905AD299, 0x88559254,
+ 0x29F05F31, 0x31FF1FFC, 0x19EEDF02, 0x01E19FCF, 0x49CCF657, 0x51C3B69A, 0x79D27664, 0x61DD36A9,
+ 0xE988A4FD, 0xF187E430, 0xD99624CE, 0xC1996403, 0x89B40D9B, 0x91BB4D56, 0xB9AA8DA8, 0xA1A5CD65,
+ 0x5249BE62, 0x4A46FEAF, 0x62573E51, 0x7A587E9C, 0x32751704, 0x2A7A57C9, 0x026B9737, 0x1A64D7FA,
+ 0x923145AE, 0x8A3E0563, 0xA22FC59D, 0xBA208550, 0xF20DECC8, 0xEA02AC05, 0xC2136CFB, 0xDA1C2C36,
+ 0x7BB9E153, 0x63B6A19E, 0x4BA76160, 0x53A821AD, 0x1B854835, 0x038A08F8, 0x2B9BC806, 0x339488CB,
+ 0xBBC11A9F, 0xA3CE5A52, 0x8BDF9AAC, 0x93D0DA61, 0xDBFDB3F9, 0xC3F2F334, 0xEBE333CA, 0xF3EC7307,
+ 0xA492D5C4, 0xBC9D9509, 0x948C55F7, 0x8C83153A, 0xC4AE7CA2, 0xDCA13C6F, 0xF4B0FC91, 0xECBFBC5C,
+ 0x64EA2E08, 0x7CE56EC5, 0x54F4AE3B, 0x4CFBEEF6, 0x04D6876E, 0x1CD9C7A3, 0x34C8075D, 0x2CC74790,
+ 0x8D628AF5, 0x956DCA38, 0xBD7C0AC6, 0xA5734A0B, 0xED5E2393, 0xF551635E, 0xDD40A3A0, 0xC54FE36D,
+ 0x4D1A7139, 0x551531F4, 0x7D04F10A, 0x650BB1C7, 0x2D26D85F, 0x35299892, 0x1D38586C, 0x053718A1,
+ 0xF6DB6BA6, 0xEED42B6B, 0xC6C5EB95, 0xDECAAB58, 0x96E7C2C0, 0x8EE8820D, 0xA6F942F3, 0xBEF6023E,
+ 0x36A3906A, 0x2EACD0A7, 0x06BD1059, 0x1EB25094, 0x569F390C, 0x4E9079C1, 0x6681B93F, 0x7E8EF9F2,
+ 0xDF2B3497, 0xC724745A, 0xEF35B4A4, 0xF73AF469, 0xBF179DF1, 0xA718DD3C, 0x8F091DC2, 0x97065D0F,
+ 0x1F53CF5B, 0x075C8F96, 0x2F4D4F68, 0x37420FA5, 0x7F6F663D, 0x676026F0, 0x4F71E60E, 0x577EA6C3,
+ 0xE18D0321, 0xF98243EC, 0xD1938312, 0xC99CC3DF, 0x81B1AA47, 0x99BEEA8A, 0xB1AF2A74, 0xA9A06AB9,
+ 0x21F5F8ED, 0x39FAB820, 0x11EB78DE, 0x09E43813, 0x41C9518B, 0x59C61146, 0x71D7D1B8, 0x69D89175,
+ 0xC87D5C10, 0xD0721CDD, 0xF863DC23, 0xE06C9CEE, 0xA841F576, 0xB04EB5BB, 0x985F7545, 0x80503588,
+ 0x0805A7DC, 0x100AE711, 0x381B27EF, 0x20146722, 0x68390EBA, 0x70364E77, 0x58278E89, 0x4028CE44,
+ 0xB3C4BD43, 0xABCBFD8E, 0x83DA3D70, 0x9BD57DBD, 0xD3F81425, 0xCBF754E8, 0xE3E69416, 0xFBE9D4DB,
+ 0x73BC468F, 0x6BB30642, 0x43A2C6BC, 0x5BAD8671, 0x1380EFE9, 0x0B8FAF24, 0x239E6FDA, 0x3B912F17,
+ 0x9A34E272, 0x823BA2BF, 0xAA2A6241, 0xB225228C, 0xFA084B14, 0xE2070BD9, 0xCA16CB27, 0xD2198BEA,
+ 0x5A4C19BE, 0x42435973, 0x6A52998D, 0x725DD940, 0x3A70B0D8, 0x227FF015, 0x0A6E30EB, 0x12617026,
+ 0x451FD6E5, 0x5D109628, 0x750156D6, 0x6D0E161B, 0x25237F83, 0x3D2C3F4E, 0x153DFFB0, 0x0D32BF7D,
+ 0x85672D29, 0x9D686DE4, 0xB579AD1A, 0xAD76EDD7, 0xE55B844F, 0xFD54C482, 0xD545047C, 0xCD4A44B1,
+ 0x6CEF89D4, 0x74E0C919, 0x5CF109E7, 0x44FE492A, 0x0CD320B2, 0x14DC607F, 0x3CCDA081, 0x24C2E04C,
+ 0xAC977218, 0xB49832D5, 0x9C89F22B, 0x8486B2E6, 0xCCABDB7E, 0xD4A49BB3, 0xFCB55B4D, 0xE4BA1B80,
+ 0x17566887, 0x0F59284A, 0x2748E8B4, 0x3F47A879, 0x776AC1E1, 0x6F65812C, 0x477441D2, 0x5F7B011F,
+ 0xD72E934B, 0xCF21D386, 0xE7301378, 0xFF3F53B5, 0xB7123A2D, 0xAF1D7AE0, 0x870CBA1E, 0x9F03FAD3,
+ 0x3EA637B6, 0x26A9777B, 0x0EB8B785, 0x16B7F748, 0x5E9A9ED0, 0x4695DE1D, 0x6E841EE3, 0x768B5E2E,
+ 0xFEDECC7A, 0xE6D18CB7, 0xCEC04C49, 0xD6CF0C84, 0x9EE2651C, 0x86ED25D1, 0xAEFCE52F, 0xB6F3A5E2
+};
+
+static cc_u32 SNOW2_T0[256]= {
+ 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6, 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
+ 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56, 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
+ 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa, 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
+ 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45, 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
+ 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c, 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
+ 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9, 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
+ 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d, 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
+ 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df, 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
+ 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34, 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
+ 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d, 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
+ 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1, 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
+ 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972, 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
+ 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed, 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
+ 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe, 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
+ 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05, 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
+ 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142, 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
+ 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3, 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
+ 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a, 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
+ 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3, 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
+ 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428, 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
+ 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14, 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
+ 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4, 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
+ 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda, 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
+ 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf, 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
+ 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c, 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
+ 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e, 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
+ 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc, 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
+ 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969, 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
+ 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122, 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
+ 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9, 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
+ 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a, 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
+ 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e, 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
+};
+
+static cc_u32 SNOW2_T1[256]= {
+ 0x6363c6a5, 0x7c7cf884, 0x7777ee99, 0x7b7bf68d, 0xf2f2ff0d, 0x6b6bd6bd, 0x6f6fdeb1, 0xc5c59154,
+ 0x30306050, 0x01010203, 0x6767cea9, 0x2b2b567d, 0xfefee719, 0xd7d7b562, 0xabab4de6, 0x7676ec9a,
+ 0xcaca8f45, 0x82821f9d, 0xc9c98940, 0x7d7dfa87, 0xfafaef15, 0x5959b2eb, 0x47478ec9, 0xf0f0fb0b,
+ 0xadad41ec, 0xd4d4b367, 0xa2a25ffd, 0xafaf45ea, 0x9c9c23bf, 0xa4a453f7, 0x7272e496, 0xc0c09b5b,
+ 0xb7b775c2, 0xfdfde11c, 0x93933dae, 0x26264c6a, 0x36366c5a, 0x3f3f7e41, 0xf7f7f502, 0xcccc834f,
+ 0x3434685c, 0xa5a551f4, 0xe5e5d134, 0xf1f1f908, 0x7171e293, 0xd8d8ab73, 0x31316253, 0x15152a3f,
+ 0x0404080c, 0xc7c79552, 0x23234665, 0xc3c39d5e, 0x18183028, 0x969637a1, 0x05050a0f, 0x9a9a2fb5,
+ 0x07070e09, 0x12122436, 0x80801b9b, 0xe2e2df3d, 0xebebcd26, 0x27274e69, 0xb2b27fcd, 0x7575ea9f,
+ 0x0909121b, 0x83831d9e, 0x2c2c5874, 0x1a1a342e, 0x1b1b362d, 0x6e6edcb2, 0x5a5ab4ee, 0xa0a05bfb,
+ 0x5252a4f6, 0x3b3b764d, 0xd6d6b761, 0xb3b37dce, 0x2929527b, 0xe3e3dd3e, 0x2f2f5e71, 0x84841397,
+ 0x5353a6f5, 0xd1d1b968, 0x00000000, 0xededc12c, 0x20204060, 0xfcfce31f, 0xb1b179c8, 0x5b5bb6ed,
+ 0x6a6ad4be, 0xcbcb8d46, 0xbebe67d9, 0x3939724b, 0x4a4a94de, 0x4c4c98d4, 0x5858b0e8, 0xcfcf854a,
+ 0xd0d0bb6b, 0xefefc52a, 0xaaaa4fe5, 0xfbfbed16, 0x434386c5, 0x4d4d9ad7, 0x33336655, 0x85851194,
+ 0x45458acf, 0xf9f9e910, 0x02020406, 0x7f7ffe81, 0x5050a0f0, 0x3c3c7844, 0x9f9f25ba, 0xa8a84be3,
+ 0x5151a2f3, 0xa3a35dfe, 0x404080c0, 0x8f8f058a, 0x92923fad, 0x9d9d21bc, 0x38387048, 0xf5f5f104,
+ 0xbcbc63df, 0xb6b677c1, 0xdadaaf75, 0x21214263, 0x10102030, 0xffffe51a, 0xf3f3fd0e, 0xd2d2bf6d,
+ 0xcdcd814c, 0x0c0c1814, 0x13132635, 0xececc32f, 0x5f5fbee1, 0x979735a2, 0x444488cc, 0x17172e39,
+ 0xc4c49357, 0xa7a755f2, 0x7e7efc82, 0x3d3d7a47, 0x6464c8ac, 0x5d5dbae7, 0x1919322b, 0x7373e695,
+ 0x6060c0a0, 0x81811998, 0x4f4f9ed1, 0xdcdca37f, 0x22224466, 0x2a2a547e, 0x90903bab, 0x88880b83,
+ 0x46468cca, 0xeeeec729, 0xb8b86bd3, 0x1414283c, 0xdedea779, 0x5e5ebce2, 0x0b0b161d, 0xdbdbad76,
+ 0xe0e0db3b, 0x32326456, 0x3a3a744e, 0x0a0a141e, 0x494992db, 0x06060c0a, 0x2424486c, 0x5c5cb8e4,
+ 0xc2c29f5d, 0xd3d3bd6e, 0xacac43ef, 0x6262c4a6, 0x919139a8, 0x959531a4, 0xe4e4d337, 0x7979f28b,
+ 0xe7e7d532, 0xc8c88b43, 0x37376e59, 0x6d6ddab7, 0x8d8d018c, 0xd5d5b164, 0x4e4e9cd2, 0xa9a949e0,
+ 0x6c6cd8b4, 0x5656acfa, 0xf4f4f307, 0xeaeacf25, 0x6565caaf, 0x7a7af48e, 0xaeae47e9, 0x08081018,
+ 0xbaba6fd5, 0x7878f088, 0x25254a6f, 0x2e2e5c72, 0x1c1c3824, 0xa6a657f1, 0xb4b473c7, 0xc6c69751,
+ 0xe8e8cb23, 0xdddda17c, 0x7474e89c, 0x1f1f3e21, 0x4b4b96dd, 0xbdbd61dc, 0x8b8b0d86, 0x8a8a0f85,
+ 0x7070e090, 0x3e3e7c42, 0xb5b571c4, 0x6666ccaa, 0x484890d8, 0x03030605, 0xf6f6f701, 0x0e0e1c12,
+ 0x6161c2a3, 0x35356a5f, 0x5757aef9, 0xb9b969d0, 0x86861791, 0xc1c19958, 0x1d1d3a27, 0x9e9e27b9,
+ 0xe1e1d938, 0xf8f8eb13, 0x98982bb3, 0x11112233, 0x6969d2bb, 0xd9d9a970, 0x8e8e0789, 0x949433a7,
+ 0x9b9b2db6, 0x1e1e3c22, 0x87871592, 0xe9e9c920, 0xcece8749, 0x5555aaff, 0x28285078, 0xdfdfa57a,
+ 0x8c8c038f, 0xa1a159f8, 0x89890980, 0x0d0d1a17, 0xbfbf65da, 0xe6e6d731, 0x424284c6, 0x6868d0b8,
+ 0x414182c3, 0x999929b0, 0x2d2d5a77, 0x0f0f1e11, 0xb0b07bcb, 0x5454a8fc, 0xbbbb6dd6, 0x16162c3a
+};
+
+static cc_u32 SNOW2_T2[256]= {
+ 0x63c6a563, 0x7cf8847c, 0x77ee9977, 0x7bf68d7b, 0xf2ff0df2, 0x6bd6bd6b, 0x6fdeb16f, 0xc59154c5,
+ 0x30605030, 0x01020301, 0x67cea967, 0x2b567d2b, 0xfee719fe, 0xd7b562d7, 0xab4de6ab, 0x76ec9a76,
+ 0xca8f45ca, 0x821f9d82, 0xc98940c9, 0x7dfa877d, 0xfaef15fa, 0x59b2eb59, 0x478ec947, 0xf0fb0bf0,
+ 0xad41ecad, 0xd4b367d4, 0xa25ffda2, 0xaf45eaaf, 0x9c23bf9c, 0xa453f7a4, 0x72e49672, 0xc09b5bc0,
+ 0xb775c2b7, 0xfde11cfd, 0x933dae93, 0x264c6a26, 0x366c5a36, 0x3f7e413f, 0xf7f502f7, 0xcc834fcc,
+ 0x34685c34, 0xa551f4a5, 0xe5d134e5, 0xf1f908f1, 0x71e29371, 0xd8ab73d8, 0x31625331, 0x152a3f15,
+ 0x04080c04, 0xc79552c7, 0x23466523, 0xc39d5ec3, 0x18302818, 0x9637a196, 0x050a0f05, 0x9a2fb59a,
+ 0x070e0907, 0x12243612, 0x801b9b80, 0xe2df3de2, 0xebcd26eb, 0x274e6927, 0xb27fcdb2, 0x75ea9f75,
+ 0x09121b09, 0x831d9e83, 0x2c58742c, 0x1a342e1a, 0x1b362d1b, 0x6edcb26e, 0x5ab4ee5a, 0xa05bfba0,
+ 0x52a4f652, 0x3b764d3b, 0xd6b761d6, 0xb37dceb3, 0x29527b29, 0xe3dd3ee3, 0x2f5e712f, 0x84139784,
+ 0x53a6f553, 0xd1b968d1, 0x00000000, 0xedc12ced, 0x20406020, 0xfce31ffc, 0xb179c8b1, 0x5bb6ed5b,
+ 0x6ad4be6a, 0xcb8d46cb, 0xbe67d9be, 0x39724b39, 0x4a94de4a, 0x4c98d44c, 0x58b0e858, 0xcf854acf,
+ 0xd0bb6bd0, 0xefc52aef, 0xaa4fe5aa, 0xfbed16fb, 0x4386c543, 0x4d9ad74d, 0x33665533, 0x85119485,
+ 0x458acf45, 0xf9e910f9, 0x02040602, 0x7ffe817f, 0x50a0f050, 0x3c78443c, 0x9f25ba9f, 0xa84be3a8,
+ 0x51a2f351, 0xa35dfea3, 0x4080c040, 0x8f058a8f, 0x923fad92, 0x9d21bc9d, 0x38704838, 0xf5f104f5,
+ 0xbc63dfbc, 0xb677c1b6, 0xdaaf75da, 0x21426321, 0x10203010, 0xffe51aff, 0xf3fd0ef3, 0xd2bf6dd2,
+ 0xcd814ccd, 0x0c18140c, 0x13263513, 0xecc32fec, 0x5fbee15f, 0x9735a297, 0x4488cc44, 0x172e3917,
+ 0xc49357c4, 0xa755f2a7, 0x7efc827e, 0x3d7a473d, 0x64c8ac64, 0x5dbae75d, 0x19322b19, 0x73e69573,
+ 0x60c0a060, 0x81199881, 0x4f9ed14f, 0xdca37fdc, 0x22446622, 0x2a547e2a, 0x903bab90, 0x880b8388,
+ 0x468cca46, 0xeec729ee, 0xb86bd3b8, 0x14283c14, 0xdea779de, 0x5ebce25e, 0x0b161d0b, 0xdbad76db,
+ 0xe0db3be0, 0x32645632, 0x3a744e3a, 0x0a141e0a, 0x4992db49, 0x060c0a06, 0x24486c24, 0x5cb8e45c,
+ 0xc29f5dc2, 0xd3bd6ed3, 0xac43efac, 0x62c4a662, 0x9139a891, 0x9531a495, 0xe4d337e4, 0x79f28b79,
+ 0xe7d532e7, 0xc88b43c8, 0x376e5937, 0x6ddab76d, 0x8d018c8d, 0xd5b164d5, 0x4e9cd24e, 0xa949e0a9,
+ 0x6cd8b46c, 0x56acfa56, 0xf4f307f4, 0xeacf25ea, 0x65caaf65, 0x7af48e7a, 0xae47e9ae, 0x08101808,
+ 0xba6fd5ba, 0x78f08878, 0x254a6f25, 0x2e5c722e, 0x1c38241c, 0xa657f1a6, 0xb473c7b4, 0xc69751c6,
+ 0xe8cb23e8, 0xdda17cdd, 0x74e89c74, 0x1f3e211f, 0x4b96dd4b, 0xbd61dcbd, 0x8b0d868b, 0x8a0f858a,
+ 0x70e09070, 0x3e7c423e, 0xb571c4b5, 0x66ccaa66, 0x4890d848, 0x03060503, 0xf6f701f6, 0x0e1c120e,
+ 0x61c2a361, 0x356a5f35, 0x57aef957, 0xb969d0b9, 0x86179186, 0xc19958c1, 0x1d3a271d, 0x9e27b99e,
+ 0xe1d938e1, 0xf8eb13f8, 0x982bb398, 0x11223311, 0x69d2bb69, 0xd9a970d9, 0x8e07898e, 0x9433a794,
+ 0x9b2db69b, 0x1e3c221e, 0x87159287, 0xe9c920e9, 0xce8749ce, 0x55aaff55, 0x28507828, 0xdfa57adf,
+ 0x8c038f8c, 0xa159f8a1, 0x89098089, 0x0d1a170d, 0xbf65dabf, 0xe6d731e6, 0x4284c642, 0x68d0b868,
+ 0x4182c341, 0x9929b099, 0x2d5a772d, 0x0f1e110f, 0xb07bcbb0, 0x54a8fc54, 0xbb6dd6bb, 0x162c3a16
+};
+
+static cc_u32 SNOW2_T3[256]= {
+ 0xc6a56363, 0xf8847c7c, 0xee997777, 0xf68d7b7b, 0xff0df2f2, 0xd6bd6b6b, 0xdeb16f6f, 0x9154c5c5,
+ 0x60503030, 0x02030101, 0xcea96767, 0x567d2b2b, 0xe719fefe, 0xb562d7d7, 0x4de6abab, 0xec9a7676,
+ 0x8f45caca, 0x1f9d8282, 0x8940c9c9, 0xfa877d7d, 0xef15fafa, 0xb2eb5959, 0x8ec94747, 0xfb0bf0f0,
+ 0x41ecadad, 0xb367d4d4, 0x5ffda2a2, 0x45eaafaf, 0x23bf9c9c, 0x53f7a4a4, 0xe4967272, 0x9b5bc0c0,
+ 0x75c2b7b7, 0xe11cfdfd, 0x3dae9393, 0x4c6a2626, 0x6c5a3636, 0x7e413f3f, 0xf502f7f7, 0x834fcccc,
+ 0x685c3434, 0x51f4a5a5, 0xd134e5e5, 0xf908f1f1, 0xe2937171, 0xab73d8d8, 0x62533131, 0x2a3f1515,
+ 0x080c0404, 0x9552c7c7, 0x46652323, 0x9d5ec3c3, 0x30281818, 0x37a19696, 0xa0f0505, 0x2fb59a9a,
+ 0x0e090707, 0x24361212, 0x1b9b8080, 0xdf3de2e2, 0xcd26ebeb, 0x4e692727, 0x7fcdb2b2, 0xea9f7575,
+ 0x121b0909, 0x1d9e8383, 0x58742c2c, 0x342e1a1a, 0x362d1b1b, 0xdcb26e6e, 0xb4ee5a5a, 0x5bfba0a0,
+ 0xa4f65252, 0x764d3b3b, 0xb761d6d6, 0x7dceb3b3, 0x527b2929, 0xdd3ee3e3, 0x5e712f2f, 0x13978484,
+ 0xa6f55353, 0xb968d1d1, 0x00000000, 0xc12ceded, 0x40602020, 0xe31ffcfc, 0x79c8b1b1, 0xb6ed5b5b,
+ 0xd4be6a6a, 0x8d46cbcb, 0x67d9bebe, 0x724b3939, 0x94de4a4a, 0x98d44c4c, 0xb0e85858, 0x854acfcf,
+ 0xbb6bd0d0, 0xc52aefef, 0x4fe5aaaa, 0xed16fbfb, 0x86c54343, 0x9ad74d4d, 0x66553333, 0x11948585,
+ 0x8acf4545, 0xe910f9f9, 0x04060202, 0xfe817f7f, 0xa0f05050, 0x78443c3c, 0x25ba9f9f, 0x4be3a8a8,
+ 0xa2f35151, 0x5dfea3a3, 0x80c04040, 0x058a8f8f, 0x3fad9292, 0x21bc9d9d, 0x70483838, 0xf104f5f5,
+ 0x63dfbcbc, 0x77c1b6b6, 0xaf75dada, 0x42632121, 0x20301010, 0xe51affff, 0xfd0ef3f3, 0xbf6dd2d2,
+ 0x814ccdcd, 0x18140c0c, 0x26351313, 0xc32fecec, 0xbee15f5f, 0x35a29797, 0x88cc4444, 0x2e391717,
+ 0x9357c4c4, 0x55f2a7a7, 0xfc827e7e, 0x7a473d3d, 0xc8ac6464, 0xbae75d5d, 0x322b1919, 0xe6957373,
+ 0xc0a06060, 0x19988181, 0x9ed14f4f, 0xa37fdcdc, 0x44662222, 0x547e2a2a, 0x3bab9090, 0x0b838888,
+ 0x8cca4646, 0xc729eeee, 0x6bd3b8b8, 0x283c1414, 0xa779dede, 0xbce25e5e, 0x161d0b0b, 0xad76dbdb,
+ 0xdb3be0e0, 0x64563232, 0x744e3a3a, 0x141e0a0a, 0x92db4949, 0x0c0a0606, 0x486c2424, 0xb8e45c5c,
+ 0x9f5dc2c2, 0xbd6ed3d3, 0x43efacac, 0xc4a66262, 0x39a89191, 0x31a49595, 0xd337e4e4, 0xf28b7979,
+ 0xd532e7e7, 0x8b43c8c8, 0x6e593737, 0xdab76d6d, 0x018c8d8d, 0xb164d5d5, 0x9cd24e4e, 0x49e0a9a9,
+ 0xd8b46c6c, 0xacfa5656, 0xf307f4f4, 0xcf25eaea, 0xcaaf6565, 0xf48e7a7a, 0x47e9aeae, 0x10180808,
+ 0x6fd5baba, 0xf0887878, 0x4a6f2525, 0x5c722e2e, 0x38241c1c, 0x57f1a6a6, 0x73c7b4b4, 0x9751c6c6,
+ 0xcb23e8e8, 0xa17cdddd, 0xe89c7474, 0x3e211f1f, 0x96dd4b4b, 0x61dcbdbd, 0x0d868b8b, 0x0f858a8a,
+ 0xe0907070, 0x7c423e3e, 0x71c4b5b5, 0xccaa6666, 0x90d84848, 0x06050303, 0xf701f6f6, 0x1c120e0e,
+ 0xc2a36161, 0x6a5f3535, 0xaef95757, 0x69d0b9b9, 0x17918686, 0x9958c1c1, 0x3a271d1d, 0x27b99e9e,
+ 0xd938e1e1, 0xeb13f8f8, 0x2bb39898, 0x22331111, 0xd2bb6969, 0xa970d9d9, 0x07898e8e, 0x33a79494,
+ 0x2db69b9b, 0x3c221e1e, 0x15928787, 0xc920e9e9, 0x8749cece, 0xaaff5555, 0x50782828, 0xa57adfdf,
+ 0x038f8c8c, 0x59f8a1a1, 0x09808989, 0x1a170d0d, 0x65dabfbf, 0xd731e6e6, 0x84c64242, 0xd0b86868,
+ 0x82c34141, 0x29b09999, 0x5a772d2d, 0x1e110f0f, 0x7bcbb0b0, 0xa8fc5454, 0x6dd6bbbb, 0x2c3a1616
+};
+
+////////////////////////////////////////////////////////////////////////////
+// Macros
+////////////////////////////////////////////////////////////////////////////
+#define a_MUL(w) (((w) << 8) ^ SNOW2_MUL_a[(w) >> 24])
+#define ainv_MUL(w) (((w) >> 8) ^ SNOW2_MUL_ainverse[w & 0xff])
+
+#define BYTE0(w) ( (w) & 0xff)
+#define BYTE1(w) (((w) >> 8) & 0xff)
+#define BYTE2(w) (((w) >> 16) & 0xff)
+#define BYTE3(w) (((w) >> 24) & 0xff)
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_SNOW2_Setup
+ * @brief Setup FSM and s values
+ *
+ * @param ctx [out]crypto context
+ * @param UserKey [in]User Key, 128 or 256 bit
+ * @param keyLen [in]byte-size of User Key, 16 or 32
+ * @param IV [in]16 byte initial vector
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_Setup(SDRM_SNOW2Context *ctx, cc_u8 *UserKey, cc_u32 keyLen, cc_u8 *IV)
+{
+ cc_u32 IV0, IV1, IV2, IV3;
+ cc_u32 *s = ctx->s;
+ cc_u32 r1, r2, i;
+ cc_u32 Ft, R1_next;
+
+ //test endian
+ i = 0xff;
+ ctx->endian = (*((cc_u8*)&i) == 0xff) ? CRYPTO_LITTLE_ENDIAN : CRYPTO_BIG_ENDIAN;
+
+ //Initialize IV
+ GET_UINT32(IV3, IV, 0)
+ GET_UINT32(IV2, IV, 4)
+ GET_UINT32(IV1, IV, 8)
+ GET_UINT32(IV0, IV, 12)
+
+ //Load Key
+ if (keyLen == 16) {
+ GET_UINT32(s[15], UserKey, 0)
+ GET_UINT32(s[14], UserKey, 4)
+ GET_UINT32(s[13], UserKey, 8)
+ GET_UINT32(s[12], UserKey, 12)
+ s[11] = ~s[15];
+ s[10] = ~s[14];
+ s[ 9] = ~s[13];
+ s[ 8] = ~s[12];
+ s[ 7] = s[15];
+ s[ 6] = s[14];
+ s[ 5] = s[13];
+ s[ 4] = s[12];
+ s[ 3] = ~s[15];
+ s[ 2] = ~s[14];
+ s[ 1] = ~s[13];
+ s[ 0] = ~s[12];
+ }
+ else {
+ GET_UINT32(s[15], UserKey, 0)
+ GET_UINT32(s[14], UserKey, 4)
+ GET_UINT32(s[13], UserKey, 8)
+ GET_UINT32(s[12], UserKey, 12)
+ GET_UINT32(s[11], UserKey, 16)
+ GET_UINT32(s[10], UserKey, 20)
+ GET_UINT32(s[ 9], UserKey, 24)
+ GET_UINT32(s[ 8], UserKey, 28)
+ s[ 7] = ~s[15];
+ s[ 6] = ~s[14];
+ s[ 5] = ~s[13];
+ s[ 4] = ~s[12];
+ s[ 3] = ~s[11];
+ s[ 2] = ~s[10];
+ s[ 1] = ~s[ 9];
+ s[ 0] = ~s[ 8];
+ }
+
+ s[15] ^= IV0;
+ s[12] ^= IV1;
+ s[10] ^= IV2;
+ s[ 9] ^= IV3;
+
+ r1 = 0;
+ r2 = 0;
+
+ // clock 32 times without producing any output
+ for (i = 0; i < 16; i++)
+ {
+ Ft = (r1 + s[(i - 1) & 0x0f]) ^ r2;
+ s[i] = a_MUL(s[i]) ^ s[(i + 2) & 0x0f] ^ ainv_MUL(s[(i + 11) & 0x0f]) ^ Ft;
+ R1_next = r2 + s[(i + 5) & 0x0f];
+ r2 = SNOW2_T0[BYTE0(r1)] ^ SNOW2_T1[BYTE1(r1)] ^ SNOW2_T2[BYTE2(r1)] ^ SNOW2_T3[BYTE3(r1)];
+ r1 = R1_next;
+ }
+
+ for (i = 0; i < 16; i++)
+ {
+ Ft = (r1 + s[(i - 1) & 0x0f]) ^ r2;
+ s[i] = a_MUL(s[i]) ^ s[(i + 2) & 0x0f] ^ ainv_MUL(s[(i + 11) & 0x0f]) ^ Ft;
+ R1_next = r2 + s[(i + 5) & 0x0f];
+ r2 = SNOW2_T0[BYTE0(r1)] ^ SNOW2_T1[BYTE1(r1)] ^ SNOW2_T2[BYTE2(r1)] ^ SNOW2_T3[BYTE3(r1)];
+ r1 = R1_next;
+ }
+
+ ctx->r1 = r1;
+ ctx->r2 = r2;
+
+ ctx->t = 0;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SNOW2_getKeyStream64
+ * @brief get 64 byte key stream
+ *
+ * @param ctx [out]crypto context
+ * @param keyStream64 [in]generated key stream
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_getKeyStream64(SDRM_SNOW2Context *ctx, cc_u32 *keyStream64)
+{
+ cc_u32 R1_next, i;
+ cc_u32 *s = ctx->s;
+ cc_u32 t = ctx->t;
+
+ for (i = t; i < t + 16; i++)
+ {
+ s[i & 0x0f] = a_MUL(s[i & 0x0f]) ^ s[(i + 2) & 0x0f] ^ ainv_MUL(s[(i + 11) & 0x0f]);
+ R1_next = ctx->r2 + s[(i + 5) & 0x0f];
+ ctx->r2 = SNOW2_T0[BYTE0(ctx->r1)] ^ SNOW2_T1[BYTE1(ctx->r1)] ^ SNOW2_T2[BYTE2(ctx->r1)] ^ SNOW2_T3[BYTE3(ctx->r1)];
+ ctx->r1 = R1_next;
+
+ keyStream64[i] = (ctx->r1 + s[i & 0x0f]) ^ ctx->r2 ^ s[(i + 1) & 0x0f];
+ }
+
+ ctx->t = t & 0x0f;
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_SNOW2_getKeyStream
+ * @brief get 4 byte key stream
+ *
+ * @param ctx [out]crypto context
+ * @param keyStream [in]generated key stream
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_getKeyStream(SDRM_SNOW2Context *ctx, cc_u32 *keyStream)
+{
+ cc_u32 R1_next;
+ cc_u32 *s = ctx->s;
+ cc_u32 t = ctx->t;
+
+ s[t & 0x0f] = a_MUL(s[t & 0x0f]) ^ s[(t + 2) & 0x0f] ^ ainv_MUL(s[(t + 11) & 0x0f]);
+ R1_next = ctx->r2 + s[(t + 5) & 0x0f];
+ ctx->r2 = SNOW2_T0[BYTE0(ctx->r1)] ^ SNOW2_T1[BYTE1(ctx->r1)] ^ SNOW2_T2[BYTE2(ctx->r1)] ^ SNOW2_T3[BYTE3(ctx->r1)];
+ ctx->r1 = R1_next;
+
+ *keyStream = (ctx->r1 + s[t & 0x0f]) ^ ctx->r2 ^ s[(t + 1) & 0x0f];
+
+ ctx->t = (t + 1) & 0x0f;
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/cmac.c b/SPC/Src/middle/cmac.c
new file mode 100755
index 0000000..9f941c2
--- /dev/null
+++ b/SPC/Src/middle/cmac.c
@@ -0,0 +1,260 @@
+/**
+ * \file cmac.c
+ * @brief funciton for c-mac code generation by AES-128
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ */
+
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "cmac.h"
+
+
+////////////////////////////////////////////////////////////////////////////
+// Constants
+////////////////////////////////////////////////////////////////////////////
+/*! @brief max block columns */
+#define CMAC_MAXBC (256/32)
+
+/*! @brief max key columns */
+#define CMAC_MAXKC (256/32)
+
+/*! @brief max rounds */
+#define CMAC_MAXROUNDS 14
+
+/*! @brief constant - defined in OMAC1a(One-Key CBC MAC1, submitted by Iwata and Kurosawa) */
+static cc_u8 R_b[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87};
+
+
+/*
+ * @fn int SDRM_CMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen)
+ *
+ * @brief Parameter setting for mac code generation
+ * @param crt [out]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen)
+{
+ cc_u8 *K1, *K2, temp[16] = {0};
+ cc_u8 ZERO[16] = {0};
+ int i;
+ cc_u32 *RoundKey;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->cmacctx == NULL) || (Key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (KeyLen != 16)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ memset(crt->ctx->cmacctx->IV, 0, SDRM_AES_BLOCK_SIZ);
+
+ crt->ctx->cmacctx->BlockLen = 0;
+
+ RoundKey = (cc_u32*)(void*)(crt->ctx->cmacctx->RoundKey);
+ K1 = crt->ctx->cmacctx->K1;
+ K2 = crt->ctx->cmacctx->K2;
+
+ SDRM_rijndaelKeySetupEnc(RoundKey, Key, 128);
+
+ SDRM_rijndaelEncrypt(RoundKey, 10, ZERO, temp);
+
+ if((temp[0] >> 7) == 0x00) // L << 1
+ {
+ for (i = 0; i < 15; i++)
+ {
+ K1[i] = (temp[i] << 1) | (temp[i+1] >> 7);
+ }
+ K1[15] = temp[i] << 1;
+ }
+ else if ((temp[0] >> 7) == 0x01)
+ {
+ for (i = 0; i < 15; i++)
+ {
+ K1[i] = (temp[i] << 1) | (temp[i+1] >> 7);
+ }
+ K1[15] = temp[i] << 1;
+ BlockXor(K1, K1, R_b);
+ }
+
+ if((K1[0] >> 7) == 0x00) // K1 << 1
+ {
+ for (i = 0; i < 15; i++)
+ {
+ K2[i] = (K1[i] << 1) | (K1[i+1] >> 7);
+ }
+ K2[15] = K1[i] << 1;
+ }
+ else if ((K1[0] >> 7) == 0x01)
+ {
+ for (i = 0; i < 15; i++)
+ {
+ K2[i] = (K1[i] << 1) | (K1[i+1] >> 7);
+ }
+ K2[15] = K1[i] << 1;
+ BlockXor(K2, K2, R_b);
+ }
+
+// LOG4DRM_BUFFER(&CryptoLogCTX), LOG_DEBUG, "K1", K1, 16);
+// LOG4DRM_BUFFER(&CryptoLogCTX), LOG_DEBUG, "K2", K2, 16);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_CMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen)
+ * @brief process data blocks
+ *
+ * @param crt [out]crypto parameter
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen)
+{
+ int Loop;
+ cc_u8 *ptr;
+
+ if (msgLen == 0)
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->cmacctx == NULL) || (msg == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (msgLen + crt->ctx->cmacctx->BlockLen <= SDRM_AES_BLOCK_SIZ)
+ {
+ memcpy(crt->ctx->cmacctx->Block + crt->ctx->cmacctx->BlockLen, msg, msgLen);
+ crt->ctx->cmacctx->BlockLen += msgLen;
+ return CRYPTO_SUCCESS;
+ }
+
+ memcpy(crt->ctx->cmacctx->Block + crt->ctx->cmacctx->BlockLen, msg, SDRM_AES_BLOCK_SIZ - crt->ctx->cmacctx->BlockLen);
+ SDRM_CBC_Enc(ID_AES128, crt->ctx->cmacctx->IV, crt->ctx->cmacctx->Block, crt->ctx->cmacctx->RoundKey, crt->ctx->cmacctx->IV);
+
+ Loop = (msgLen + crt->ctx->cmacctx->BlockLen - 1) / SDRM_AES_BLOCK_SIZ - 1;
+ ptr = msg + SDRM_AES_BLOCK_SIZ - crt->ctx->cmacctx->BlockLen;
+ crt->ctx->cmacctx->BlockLen = (cc_u32)(msg + msgLen - ptr) - Loop * SDRM_AES_BLOCK_SIZ;
+
+ while (Loop > 0)
+ {
+ SDRM_CBC_Enc(ID_AES128, crt->ctx->cmacctx->IV, ptr, crt->ctx->cmacctx->RoundKey, crt->ctx->cmacctx->IV);
+ Loop--;
+ ptr += SDRM_AES_BLOCK_SIZ;
+ }
+
+// LOG4DRM_BUFFER(&CryptoLogCTX), LOG_DEBUG, "Block", crt->ctx->cmacctx->IV, 16);
+
+ memcpy(crt->ctx->cmacctx->Block, ptr, crt->ctx->cmacctx->BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_CMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen)
+ * @brief process last data block
+ *
+ * @param crt [in]crypto parameter
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen)
+{
+ cc_u8 *K1, *K2;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->cmacctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ K1 = crt->ctx->cmacctx->K1;
+ K2 = crt->ctx->cmacctx->K2;
+
+ if (crt->ctx->cmacctx->BlockLen == SDRM_AES_BLOCK_SIZ)
+ {
+ BlockXor(crt->ctx->cmacctx->Block, crt->ctx->cmacctx->Block, K1);
+ }
+ else
+ {
+ crt->ctx->cmacctx->IV[crt->ctx->cmacctx->BlockLen] ^= 0x80;
+ BlockXor(crt->ctx->cmacctx->IV, crt->ctx->cmacctx->IV, K2); // input = input XOR K2
+ memset(crt->ctx->cmacctx->Block + crt->ctx->cmacctx->BlockLen, 0, SDRM_AES_BLOCK_SIZ - crt->ctx->cmacctx->BlockLen);
+ }
+
+ SDRM_CBC_Enc(ID_AES128, output, crt->ctx->cmacctx->Block, crt->ctx->cmacctx->RoundKey, crt->ctx->cmacctx->IV);
+
+ if (outputLen != NULL)
+ {
+ *outputLen = 16;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_CMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen)
+ * @brief generate c-mac code
+ *
+ * @param crt [in]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_CMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int result;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->cmacctx == NULL) || (Key == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ result = SDRM_CMAC_init(crt, Key, KeyLen);
+ if (result != CRYPTO_SUCCESS)
+ {
+ return result;
+ }
+
+ result = SDRM_CMAC_update(crt, msg, msgLen);
+ if (result != CRYPTO_SUCCESS)
+ {
+ return result;
+ }
+
+ return SDRM_CMAC_final(crt, output, outputLen);
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/dh.c b/SPC/Src/middle/dh.c
new file mode 100755
index 0000000..4317fbe
--- /dev/null
+++ b/SPC/Src/middle/dh.c
@@ -0,0 +1,332 @@
+/**
+ * \file ecdh.c
+ * @brief implementation of EC Diffie-Hellman Key Exchange Protocol
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/27
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "ANSI_x931.h"
+#include "bignum.h"
+#include "fast_math.h"
+#include "dh.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/**
+ * @fn SDRM_GenerateDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned int* pGenerator)
+ * @brief generate parameters for Diffie-Hellman protocol
+ *
+ * @param [out] crt context
+ * @param [out] pPrime prime number
+ * @param [in] nPrimeLen size of pPrime buffer
+ * @param [out] pGenerator generator value
+ *
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GenerateDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned char* pGenerator)
+{
+ SDRM_DHContext* ctx;
+ cc_u32 Seed[4];
+ int i, sp, t1;
+ SDRM_BIG_NUM *p = NULL;
+ SDRM_BIG_NUM *g = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dhctx == NULL) || (pPrime == NULL) || (pGenerator == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->dhctx;
+
+ p = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (p == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ g = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (g == NULL)
+ {
+ free(p);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ t1 = (nPrimeLen * 8 - 1) % 32;
+
+ //set security parameter for miller-rabin probabilistic primality test
+ if (nPrimeLen >= 128)
+ {
+ sp = 3;
+ }
+ else if (nPrimeLen >= 64)
+ {
+ sp = 5;
+ }
+ else if (nPrimeLen >= 15)
+ {
+ sp = 15;
+ }
+ else
+ {
+ sp = 30;
+ }
+
+ //generate p
+ p->Length = (nPrimeLen + 3) / 4;
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, nPrimeLen * 8, (cc_u8*)p->pData);
+ p->pData[0] |= 1L;
+ p->pData[p->Length - 1] &= ~((-1L) << t1);
+ p->pData[p->Length - 1] |= (1L << t1);
+ } while(SDRM_BN_MILLER_RABIN(p, sp) != CRYPTO_ISPRIME);
+
+ SDRM_I2OSP(p, nPrimeLen, pPrime);
+
+ memset(pGenerator, 0x00, nPrimeLen - 1);
+ pGenerator[nPrimeLen - 1] = DH_DEFAULT_GENERATOR;
+
+ SDRM_OS2BN(pGenerator, nPrimeLen, g);
+
+ if (ctx->p != NULL)
+ {
+ free(ctx->p);
+ }
+ ctx->p = p;
+
+ if (ctx->g != NULL)
+ {
+ free(ctx->g);
+ }
+ ctx->g = g;
+
+ ctx->PrimeLen = nPrimeLen;
+
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn SDRM_SetDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned int pGenerator)
+ * @brief set parameters for Diffie-Hellman protocol
+ *
+ * @param [out] crt context
+ * @param [in] pPrime prime number
+ * @param [in] nPrimeLen size of pPrime buffer
+ * @param [in] pGenerator generator value
+ *
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_SetDHParam(CryptoCoreContainer* crt, unsigned char* pPrime, unsigned int nPrimeLen, unsigned char* pGenerator, unsigned int nGeneratorLen)
+{
+ SDRM_DHContext* ctx;
+ SDRM_BIG_NUM* p = NULL;
+ SDRM_BIG_NUM* g = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dhctx == NULL) || (pPrime == NULL) || (pGenerator == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->dhctx;
+
+ p = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (p == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ g = SDRM_BN_Init(nPrimeLen / 2 + 1);
+ if (g == NULL)
+ {
+ free(p);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_OS2BN(pPrime, nPrimeLen, p);
+ SDRM_OS2BN(pGenerator, nGeneratorLen, g);
+
+ ctx->PrimeLen = nPrimeLen;
+ ctx->p = p;
+ ctx->g = g;
+
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn SDRM_GenerateDHPrivate(CryptoCoreContainer* crt, unsigned char* pPub)
+ * @brief generate private value and calculate public value
+ *
+ * @param [in] crt context
+ * @param [out] pPriv private value
+ * @param [out] pPub public value
+ *
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GenerateDHPrivate(CryptoCoreContainer* crt, unsigned char* pPriv, unsigned char* pPub)
+{
+ SDRM_DHContext* ctx;
+ cc_u32 Seed[4] = {0,};
+ int retVal;
+ SDRM_BIG_NUM* priv = NULL;
+ SDRM_BIG_NUM* pub = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dhctx == NULL) || (pPriv == NULL) || (pPub == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->dhctx;
+
+ priv = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (priv == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ pub = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (pub == NULL)
+ {
+ free(priv);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ //generate priv
+ priv->Length = (ctx->PrimeLen + 3) / 4;
+ SDRM_RNG_X931((cc_u8 *)Seed, ctx->PrimeLen * 8, (cc_u8*)priv->pData);
+ SDRM_BN_ModRed(priv, priv, ctx->p);
+
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(pub, ctx->g, priv, ctx->p);
+#else
+ retVal = SDRM_BN_ModExp(pub, ctx->g, priv, ctx->p);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(priv);
+ free(pub);
+
+ return retVal;
+ }
+
+ SDRM_I2OSP(priv, ctx->PrimeLen, pPriv);
+ SDRM_I2OSP(pub, ctx->PrimeLen, pPub);
+
+ free(priv);
+ free(pub);
+
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn SDRM_GetDHSharedSecret(CryptoCoreContainer* crt, unsigned char* pPriv, unsigned char* pPub, unsigned char* pSharedSecret)
+ * @brief calculate shared secret
+ *
+ * @param [in] crt context
+ * @param [in] Priv private value
+ * @param [in] pPub guest's public value
+ * @param [out] pSharedSecret public value
+ *
+ * @return int
+ */
+CRYPTOCORE_INTERNAL int SDRM_GetDHSharedSecret(CryptoCoreContainer* crt, unsigned char* pPriv, unsigned char* pPub, unsigned char* pSharedSecret)
+{
+ SDRM_DHContext* ctx;
+ SDRM_BIG_NUM* priv = NULL;
+ SDRM_BIG_NUM* pub = NULL;
+ SDRM_BIG_NUM* SharedSecret = NULL;
+ int retVal;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dhctx == NULL) || (pPriv == NULL) || (pPub == NULL) || (pSharedSecret == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->dhctx;
+
+ priv = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (priv == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ pub = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (pub == NULL)
+ {
+ free(priv);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SharedSecret = SDRM_BN_Init(ctx->PrimeLen / 2 + 1);
+ if (SharedSecret == NULL)
+ {
+ free(priv);
+ free(pub);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_OS2BN(pPriv, ctx->PrimeLen, priv);
+ SDRM_OS2BN(pPub, ctx->PrimeLen, pub);
+
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(SharedSecret, pub, priv, ctx->p);
+#else
+ retVal = SDRM_BN_ModExp(SharedSecret, pub, priv, ctx->p);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(priv);
+ free(pub);
+ free(SharedSecret);
+
+ return retVal;
+ }
+
+ SDRM_I2OSP(SharedSecret, ctx->PrimeLen, pSharedSecret);
+
+ free(priv);
+ free(pub);
+ free(SharedSecret);
+
+ return CRYPTO_SUCCESS;
+}
+
+/**
+ * @fn SDRM_FreeDHContext(CryptoCoreContainer* crt)
+ * @brief free context buffer
+ *
+ * @param [in] crt context
+ */
+CRYPTOCORE_INTERNAL void SDRM_FreeDHContext(SDRM_DHContext* ctx)
+{
+ if (ctx != NULL)
+ {
+ if (ctx->p != NULL)
+ {
+ free(ctx->p);
+ }
+
+ if (ctx->g != NULL)
+ {
+ free(ctx->g);
+ }
+
+ memset(ctx, 0x00, sizeof(SDRM_DHContext));
+ }
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/dsa.c b/SPC/Src/middle/dsa.c
new file mode 100755
index 0000000..d489c3f
--- /dev/null
+++ b/SPC/Src/middle/dsa.c
@@ -0,0 +1,602 @@
+/**
+ * \file dsa.c
+ * @brief implementation of dsa signature/verifycation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/23
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "dsa.h"
+#include "bignum.h"
+#include "sha1.h"
+#include "ANSI_x931.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_Add_DW2BA
+ * @brief Add a UINT32 value to a Byte Array
+ * function works correctly only when dLen >= 4
+ *
+ * @param BA [i/o]byte array
+ * @param dLen [in]byte-length of BA
+ * @param val [in]value to add
+ *
+ * @return void
+ */
+CRYPTOCORE_INTERNAL void SDRM_Add_DW2BA(cc_u8* BA, cc_u32 dLen, cc_u32 val)
+{
+ cc_u32 i, DIGIT = 0;
+
+ if (dLen >= 4)
+ {
+ DIGIT = BA[dLen - 4] ^ (BA[dLen - 3] << 8) ^ (BA[dLen - 2] << 16) ^ (BA[dLen - 1] << 24);
+ DIGIT += val;
+ BA[dLen - 4] = (cc_u8)(DIGIT ) & 0xff;
+ BA[dLen - 3] = (cc_u8)(DIGIT >> 8 ) & 0xff;
+ BA[dLen - 2] = (cc_u8)(DIGIT >> 16) & 0xff;
+ BA[dLen - 1] = (cc_u8)(DIGIT >> 24) & 0xff;
+
+ if (DIGIT < val)
+ {
+ for (i = dLen - 5; i != (cc_u32)-1; i--)
+ {
+ if (++BA[i] != 0)
+ {
+ return;
+ }
+ }
+ }
+ }
+
+ return;
+}
+
+/*
+ * @fn SDRM_DSA_InitCrt
+ * @brief generate DSA Context
+ *
+ * @return pointer to the generated context
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_DSAContext *SDRM_DSA_InitCrt()
+{
+ SDRM_DSAContext *ctx;
+ cc_u8 *pbBuf = (cc_u8*)malloc(sizeof(SDRM_DSAContext) + SDRM_DSA_ALLOC_SIZE * 5);
+
+ if (pbBuf == NULL)
+ {
+ return NULL;
+ }
+
+ ctx = (SDRM_DSAContext*)(void*)pbBuf;
+ ctx->p = SDRM_BN_Alloc((cc_u8*)ctx + sizeof(SDRM_DSAContext), SDRM_DSA_BN_BUFSIZE);
+ ctx->q = SDRM_BN_Alloc((cc_u8*)ctx->p + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ ctx->al = SDRM_BN_Alloc((cc_u8*)ctx->q + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ ctx->y = SDRM_BN_Alloc((cc_u8*)ctx->al + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ ctx->a = SDRM_BN_Alloc((cc_u8*)ctx->y + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+
+ return ctx;
+}
+
+/*
+ * @fn int SDRM_DSA_SetParam(CryptoCoreContainer *crt,
+ cc_u8 *DSA_P_Data, cc_u32 DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 DSA_G_Len)
+ * @brief set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_P_Data [in]octet string of p value
+ * @param DSA_P_Len [in]legnth of p_val
+ * @param DSA_Q_Data [in]octet string of q value
+ * @param DSA_Q_Len [in]legnth of q_val
+ * @param DSA_G_Data [in]octet string of al value
+ * @param DSA_G_Len [in]legnth of al_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_SetParam(CryptoCoreContainer *crt,
+ cc_u8 *DSA_P_Data, cc_u32 DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 DSA_G_Len)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL) || (DSA_P_Data == NULL) || (DSA_Q_Data == NULL) || (DSA_G_Data == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_OS2BN(DSA_P_Data, DSA_P_Len, crt->ctx->dsactx->p);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->dsactx->p);
+
+ SDRM_OS2BN(DSA_Q_Data, DSA_Q_Len, crt->ctx->dsactx->q);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->dsactx->q);
+
+ SDRM_OS2BN(DSA_G_Data, DSA_G_Len, crt->ctx->dsactx->al);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->dsactx->al);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_DSA_SetKeyPair(CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 DSA_X_Len)
+ * @brief set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_Y_Data [in]octet string of y value
+ * @param DSA_Y_Len [in]legnth of y_val
+ * @param DSA_X_Data [in]octet string of a value
+ * @param DSA_X_Len [in]legnth of a_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_SetKeyPair(CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 DSA_X_Len)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (DSA_Y_Data != NULL)
+ {
+ SDRM_OS2BN(DSA_Y_Data, DSA_Y_Len, crt->ctx->dsactx->y);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->dsactx->y);
+ }
+
+ if (DSA_X_Data != NULL)
+ {
+ SDRM_OS2BN(DSA_X_Data, DSA_X_Len, crt->ctx->dsactx->a);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->dsactx->a);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_DSA_GenParam(CryptoCoreContainer *crt, cc_u32 T_Siz,
+ cc_u8 *DSA_P_Data, cc_u32 *DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 *DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 *DSA_G_Len)
+ * @brief generate and set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param T_Siz [in]fix the length of p to 512 + 64t bit (0 <= T_Siz <= 8)
+ * @param DSA_P_Data [out]octet string of p value
+ * @param DSA_P_Len [out]legnth of p_val
+ * @param DSA_Q_Data [out]octet string of q value
+ * @param DSA_Q_Len [out]legnth of q_val
+ * @param DSA_G_Data [out]octet string of al value
+ * @param DSA_G_Len [out]legnth of al_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_GenParam(CryptoCoreContainer *crt, cc_u32 T_Siz,
+ cc_u8 *DSA_P_Data, cc_u32 *DSA_P_Len,
+ cc_u8 *DSA_Q_Data, cc_u32 *DSA_Q_Len,
+ cc_u8 *DSA_G_Data, cc_u32 *DSA_G_Len)
+{
+ cc_u32 i, k, L, n/*, g*/;
+ cc_u8 pbTemp[260], pbSeed[64];
+ SDRM_SHA1Context ctx;
+ SDRM_BIG_NUM /**BN_A, */*BN_G, *BN_P, *BN_Q, *BN_AL, *BN_Temp;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (T_Siz > 8)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ L = 512 + 64 * T_Siz;
+ n = (L - 1) / 160;
+// g = (L - 1) % 160;
+
+
+ pbBuf = (cc_u8*)malloc(SDRM_DSA_ALLOC_SIZE * 2);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_G = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_DSA_BN_BUFSIZE);
+ BN_Temp = SDRM_BN_Alloc((cc_u8*)BN_G + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+
+ BN_P = crt->ctx->dsactx->p;
+ BN_Q = crt->ctx->dsactx->q;
+ BN_AL = crt->ctx->dsactx->al;
+// BN_A = crt->ctx->dsactx->a;
+
+ //generate p and q
+ while(1)
+ {
+ do
+ {
+ //choose a random seed s of bitlength g >= 160
+ for (i = 0; i < SDRM_SHA1_BLOCK_SIZ; i++)
+ {
+ pbSeed[i] = (rand() << 16) ^ rand();
+ }
+ pbSeed[0] |= 0x80;
+ pbSeed[SDRM_SHA1_BLOCK_SIZ - 1] |= 0x01;
+
+ //U = H(s) xor H((s + 1) mod g)
+ SDRM_SHA1_Init(&ctx);
+ SDRM_SHA1_Update(&ctx, pbSeed, SDRM_SHA1_BLOCK_SIZ);
+ SDRM_SHA1_Final(&ctx, pbTemp);
+
+ SDRM_INC_BA(pbSeed, SDRM_SHA1_BLOCK_SIZ);
+
+ SDRM_SHA1_Init(&ctx);
+ SDRM_SHA1_Update(&ctx, pbSeed, SDRM_SHA1_BLOCK_SIZ);
+ SDRM_SHA1_Final(&ctx, pbTemp + SDRM_SHA1_BLOCK_SIZ);
+
+ for (i = 0; i < SDRM_SHA1_BLOCK_SIZ / sizeof(cc_u32); i++)
+ {
+ ((cc_u32*)(void*)pbTemp)[i] ^= ((cc_u32*)(void*)pbTemp)[i + SDRM_SHA1_BLOCK_SIZ / sizeof(cc_u32)];
+ }
+
+ pbTemp[0] |= 0x80;
+ pbTemp[SDRM_SHA1_BLOCK_SIZ - 1] |= 0x01;
+
+ SDRM_OS2BN(pbTemp, SDRM_SHA1_BLOCK_SIZ, BN_Q);
+ } while(SDRM_BN_MILLER_RABIN(BN_Q, 18) != CRYPTO_SUCCESS);
+
+ SDRM_INC_BA(pbSeed, SDRM_SHA1_BLOCK_SIZ);
+
+ for (i = 0; i < 4096; i++)
+ {
+ for (k = 0; k <= n; k++)
+ {
+ SDRM_SHA1_Init(&ctx);
+ SDRM_SHA1_Update(&ctx, pbSeed, SDRM_SHA1_BLOCK_SIZ);
+ SDRM_SHA1_Final(&ctx, pbTemp + (n - k) * SDRM_SHA1_BLOCK_SIZ);
+ SDRM_Add_DW2BA(pbSeed, SDRM_SHA1_BLOCK_SIZ, n + 2);
+ }
+
+ pbTemp[(n + 1) * SDRM_SHA1_BLOCK_SIZ - L / 8] |= 0x80;
+ SDRM_OS2BN(pbTemp + (n + 1) * SDRM_SHA1_BLOCK_SIZ - L / 8, L / 8, BN_P);
+
+ SDRM_BN_SHL(BN_Q, BN_Q, 1);
+ SDRM_BN_ModRed(BN_Temp, BN_P, BN_Q);
+ SDRM_BN_SHR(BN_Q, BN_Q, 1);
+ SDRM_BN_Sub(BN_P, BN_P, BN_Temp);
+ SDRM_BN_Add(BN_P, BN_P, BN_One);
+
+ if (SDRM_CheckBitUINT32(BN_P->pData, L - 1))
+ {
+ if (SDRM_BN_MILLER_RABIN(BN_P, 5) == CRYPTO_ISPRIME)
+ {
+ goto SUCCESS;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+ }
+
+SUCCESS :
+ //select a generator al(alpha) of the unique cyclic group of order q in Zp
+ SDRM_BN_Clr(BN_Temp);
+ //temp = (p-1)/q
+ SDRM_BN_Sub(BN_Temp, BN_P, BN_One);
+ SDRM_BN_Div(BN_Temp, NULL, BN_Temp, BN_Q);
+
+ do {
+ //select an element g excluded in Zp*
+ do {
+ SDRM_RNG_X931(pbSeed, L, (cc_u8*)BN_G->pData);
+ BN_G->Length = L / 32 + 1;
+ SDRM_BN_OPTIMIZE_LENGTH(BN_G);
+ } while(SDRM_BN_Cmp(BN_G, BN_P) >= 0);
+
+ //al(alpha) = g^temp mod p
+ SDRM_BN_ModExp(BN_AL, BN_G, BN_Temp, BN_P);
+ } while (SDRM_BN_Cmp(BN_AL, BN_One) == 0);
+
+ //write output
+ if (DSA_P_Data != NULL)
+ {
+ SDRM_I2OSP(BN_P, L / 8, DSA_P_Data);
+ }
+
+ if (DSA_P_Len != NULL)
+ {
+ *DSA_P_Len = L / 8;
+ }
+
+ if (DSA_Q_Data != NULL)
+ {
+ SDRM_I2OSP(BN_Q, 20, DSA_Q_Data);
+ }
+
+ if (DSA_Q_Len != NULL)
+ {
+ *DSA_Q_Len = 20;
+ }
+
+ if (DSA_G_Data != NULL)
+ {
+ SDRM_I2OSP(BN_AL, BN_AL->Length * 4, DSA_G_Data);
+ }
+
+ if (DSA_G_Len != NULL)
+ {
+ *DSA_G_Len = BN_AL->Length * 4;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_DSA_GenKeypair(CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 *DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 *DSA_X_Len)
+ * @brief generate and set DSA parameters
+ *
+ * @param crt [out]dsa context
+ * @param DSA_Y_Data [out]octet string of y value
+ * @param DSA_Y_Len [out]legnth of y_val
+ * @param DSA_X_Data [out]octet string of a value
+ * @param DSA_X_Len [out]legnth of a_val
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if input parameter pointer is null
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_ERROR if conversion is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_GenKeypair(CryptoCoreContainer *crt,
+ cc_u8 *DSA_Y_Data, cc_u32 *DSA_Y_Len,
+ cc_u8 *DSA_X_Data, cc_u32 *DSA_X_Len)
+{
+ SDRM_BIG_NUM *BN_A;
+ cc_u32 Seed[4], i;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ BN_A = crt->ctx->dsactx->a;
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ //Select a random integer a such that 1 <= a <= q-1
+ do {
+ SDRM_RNG_X931((cc_u8*)Seed, 160, (cc_u8*)BN_A->pData);
+ BN_A->Length = 6; //6 = 160 / 32 + 1
+ SDRM_BN_OPTIMIZE_LENGTH(BN_A);
+ } while(SDRM_BN_Cmp(BN_A, crt->ctx->dsactx->q) >= 0);
+
+ //y = al ^ a mod p
+ SDRM_BN_ModExp(crt->ctx->dsactx->y, crt->ctx->dsactx->al, BN_A, crt->ctx->dsactx->p);
+
+
+ //write output
+ if (DSA_Y_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->dsactx->y, crt->ctx->dsactx->y->Length * 4, DSA_Y_Data);
+ }
+
+ if (DSA_Y_Len != NULL)
+ {
+ *DSA_Y_Len = crt->ctx->dsactx->y->Length * 4;
+ }
+
+ if (DSA_X_Data != NULL)
+ {
+ SDRM_I2OSP(BN_A, BN_A->Length * 4, DSA_X_Data);
+ }
+
+ if (DSA_X_Len != NULL)
+ {
+ *DSA_X_Len = BN_A->Length * 4;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_DSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+{
+ cc_u8 pbSeed[16] = {0};
+ SDRM_BIG_NUM *BN_P, *BN_Q, *BN_AL, *BN_A;
+ SDRM_BIG_NUM *BN_r, *BN_s, *BN_k, *BN_hash, *BN_ar, *temp1, *temp2;
+
+ cc_u8* pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL) || (crt->ctx->dsactx->a == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_DSA_ALLOC_SIZE * 7);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_r = SDRM_BN_Alloc( pbBuf, SDRM_DSA_BN_BUFSIZE);
+ BN_s = SDRM_BN_Alloc((cc_u8*)BN_r + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BN_k = SDRM_BN_Alloc((cc_u8*)BN_s + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BN_hash = SDRM_BN_Alloc((cc_u8*)BN_k + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BN_ar = SDRM_BN_Alloc((cc_u8*)BN_hash + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)BN_ar + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+
+ BN_P = crt->ctx->dsactx->p;
+ BN_Q = crt->ctx->dsactx->q;
+ BN_AL = crt->ctx->dsactx->al;
+ BN_A = crt->ctx->dsactx->a;
+
+ //select a random secret integer k, 0 < k < q
+ do {
+ SDRM_RNG_X931(pbSeed, 160, (cc_u8*)BN_k->pData);
+ BN_k->Length = 6; //6 = 160 / 32 + 1
+ SDRM_BN_OPTIMIZE_LENGTH(BN_k);
+ } while(SDRM_BN_Cmp(BN_k, BN_Q) > 0);
+
+ SDRM_BN_ModExp(temp1, BN_AL, BN_k, BN_P);
+ //r = (al ^ k mod p) mod q
+ SDRM_BN_ModRed(BN_r, temp1, BN_Q);
+
+ SDRM_BN_ModInv(temp1, BN_k, BN_Q);
+
+ SDRM_OS2BN((cc_u8*)hash, hashLen, BN_hash);
+
+ SDRM_BN_Mul(BN_ar, BN_A, BN_r);
+ SDRM_BN_Add(temp2, BN_hash, BN_ar);
+
+ SDRM_BN_ModRed(temp2, temp2, BN_Q);
+
+ SDRM_BN_ModMul(BN_s, temp1, temp2, BN_Q);
+
+ SDRM_I2OSP(BN_r, 20, signature);
+ SDRM_I2OSP(BN_s, 20, signature + 20);
+
+ if (signLen != NULL)
+ {
+ *signLen = 40;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+ }
+
+/*
+ * @fn int SDRM_DSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of veryfing signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+{
+ SDRM_BIG_NUM *w, *u1, *u2, *v, *BNH_m, *BN_r, *BN_s;
+ SDRM_BIG_NUM *temp1, *temp2, *temp3;
+
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->dsactx == NULL) || (crt->ctx->dsactx->y == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_DSA_ALLOC_SIZE * 10);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ w = SDRM_BN_Alloc( pbBuf, SDRM_DSA_BN_BUFSIZE);
+ u1 = SDRM_BN_Alloc((cc_u8*)w + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ u2 = SDRM_BN_Alloc((cc_u8*)u1 + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ v = SDRM_BN_Alloc((cc_u8*)u2 + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BNH_m = SDRM_BN_Alloc((cc_u8*)v + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BN_r = SDRM_BN_Alloc((cc_u8*)BNH_m + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ BN_s = SDRM_BN_Alloc((cc_u8*)BN_r + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)BN_s + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+ temp3 = SDRM_BN_Alloc((cc_u8*)temp2 + SDRM_DSA_ALLOC_SIZE, SDRM_DSA_BN_BUFSIZE);
+
+
+ if ((SDRM_BN_Cmp(BN_r, crt->ctx->dsactx->q) >= 0) || (SDRM_BN_Cmp(BN_s, crt->ctx->dsactx->q) >= 0)) //r < q and s < q
+ {
+ free(pbBuf);
+ return CRYPTO_ERROR;
+ }
+
+ if (signLen != 40)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+
+ SDRM_OS2BN((cc_u8*)signature, 20, BN_r);
+ SDRM_OS2BN((cc_u8*)signature + 20, 20, BN_s);
+
+
+ SDRM_BN_ModInv(w, BN_s, crt->ctx->dsactx->q); //w = s^-1 mod q
+ SDRM_OS2BN((cc_u8*)hash, 20, BNH_m);
+
+ SDRM_BN_ModMul(u1, w, BNH_m, crt->ctx->dsactx->q); //u1 = w x h(m) mod q
+ SDRM_BN_ModMul(u2, BN_r, w, crt->ctx->dsactx->q); //u2 = rw mod q
+
+ SDRM_BN_ModExp(temp1, crt->ctx->dsactx->al, u1, crt->ctx->dsactx->p); //temp1 = alpha^u1 mod p
+ SDRM_BN_ModExp(temp2, crt->ctx->dsactx->y, u2, crt->ctx->dsactx->p); //temp2 = y^u2 mod p
+
+ SDRM_BN_ModMul(temp3, temp1, temp2, crt->ctx->dsactx->p); //temp3 = (alpha^u1 x y^u2 mod p) mod p
+
+ SDRM_BN_ModRed(v, temp3, crt->ctx->dsactx->q); //v = (alpha^u1 x y^u2 mod p) mod q
+
+// SDRM_PrintBN("v : ", v);
+// SDRM_PrintBN("Hash : ", BNH_m);
+
+ if (SDRM_BN_Cmp(v, BN_r) == 0)
+ {
+ *result = CRYPTO_VALID_SIGN;
+ } else
+ {
+ *result = CRYPTO_INVALID_SIGN;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/ecdh.c b/SPC/Src/middle/ecdh.c
new file mode 100755
index 0000000..0d9f410
--- /dev/null
+++ b/SPC/Src/middle/ecdh.c
@@ -0,0 +1,204 @@
+/**
+ * \file ecdh.c
+ * @brief implementation of EC Diffie-Hellman Key Exchange Protocol
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/27
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "ecdh.h"
+#include "ANSI_x931.h"
+#include "ecc.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_generateDH1stPhaseKey
+ * @brief generate Xk and its Xv
+ *
+ * @param crt [in]crypto context
+ * @param pchXk [out]Generated Random Number
+ * @param pchXv [out]DH 1st phase value
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_generateDH1stPhaseKey(CryptoCoreContainer *crt, cc_u8 *pchXk, cc_u8 *pchXv)
+{
+ cc_u8 Si_ANSI_X9_31[SDRM_X931_SEED_SIZ];
+
+ SDRM_BIG_NUM *BN_Xk, *BN_Temp;
+ SDRM_EC_POINT *kP;
+ SDRM_ECC_CTX *ctx;
+
+ int i;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdhctx == NULL) || (pchXk == NULL) || (pchXv == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->ecdhctx;
+
+ for (i = 0; i < SDRM_X931_SEED_SIZ; i++)
+ {
+ Si_ANSI_X9_31[i] = ((rand() << 16) + rand()) & 0xff;
+ }
+
+
+ BN_Temp = SDRM_BN_Init(crt->ctx->ecdsactx->uDimension >> 3);
+ if (BN_Temp == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_Xk = SDRM_BN_Init(crt->ctx->ecdsactx->uDimension >> 3);
+ if (BN_Xk == NULL)
+ {
+ free(BN_Temp);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_BN_Sub(BN_Temp, ctx->ECC_n, BN_One);
+ do {
+ SDRM_RNG_X931(Si_ANSI_X9_31, crt->ctx->ecdsactx->uDimension, pchXk);
+ SDRM_OS2BN(pchXk, crt->ctx->ecdsactx->uDimension >> 3, BN_Xk);
+ } while ((SDRM_BN_Cmp(BN_Xk, BN_One) < 0) || (SDRM_BN_Cmp(BN_Xk, BN_Temp) > 0));
+
+ kP = SDRM_ECC_Init();
+ if (kP == NULL)
+ {
+ free(BN_Temp);
+ free(BN_Xk);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (SDRM_CTX_EC_kP(ctx, kP, ctx->ECC_G, BN_Xk) == CRYPTO_MEMORY_ALLOC_FAIL)
+ {
+ free(BN_Temp);
+ free(BN_Xk);
+ free(kP);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_BN2OS(kP->x, crt->ctx->ecdsactx->uDimension >> 3, pchXv);
+ SDRM_BN2OS(kP->y, crt->ctx->ecdsactx->uDimension >> 3, pchXv + (crt->ctx->ecdsactx->uDimension >> 3));
+
+ free(BN_Temp);
+ free(BN_Xk);
+ free(kP);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_generateDHKey
+ * @brief genenrate auth key with Xk and Yv
+ *
+ * @param crt [in]crypto context
+ * @param pchXk [in]Generated Random Number
+ * @param pchYv [in]DH 1st phase value
+ * @param pchKauth [out]authentication key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_generateDHKey(CryptoCoreContainer *crt, cc_u8* pchXk, cc_u8* pchYv, cc_u8* pchKauth)
+{
+ SDRM_BIG_NUM *BN_Xk;
+ SDRM_EC_POINT *kP, *EC_Yv;
+ SDRM_ECC_CTX *ctx;
+ int retVal;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdhctx == NULL) || (pchXk == NULL) || (pchYv == NULL) || (pchKauth == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->ecdhctx;
+
+ BN_Xk = SDRM_BN_Init(crt->ctx->ecdsactx->uDimension >> 3);
+ if (BN_Xk == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ retVal = SDRM_OS2BN(pchXk, crt->ctx->ecdsactx->uDimension >> 3, BN_Xk);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(BN_Xk);
+ return retVal;
+ }
+
+ kP = SDRM_ECC_Init();
+ if (kP == NULL)
+ {
+ free(BN_Xk);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ EC_Yv = SDRM_ECC_Init();
+ if (EC_Yv == NULL)
+ {
+ free(BN_Xk);
+ free(kP);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_EC_CLR(EC_Yv);
+ retVal = SDRM_OS2BN(pchYv, crt->ctx->ecdsactx->uDimension >> 3, EC_Yv->x);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(BN_Xk);
+ free(kP);
+ free(EC_Yv);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ retVal = SDRM_OS2BN(pchYv + (crt->ctx->ecdsactx->uDimension >> 3), crt->ctx->ecdsactx->uDimension >> 3, EC_Yv->y);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(BN_Xk);
+ free(kP);
+ free(EC_Yv);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if (SDRM_CTX_EC_kP(ctx, kP, EC_Yv, BN_Xk) == CRYPTO_MEMORY_ALLOC_FAIL)
+ {
+ free(BN_Xk);
+ free(kP);
+ free(EC_Yv);
+
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ retVal = SDRM_BN2OS(kP->x, crt->ctx->ecdsactx->uDimension >> 3, pchKauth);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(BN_Xk);
+ free(kP);
+ free(EC_Yv);
+
+ return retVal;
+ }
+
+ free(BN_Xk);
+ free(kP);
+ free(EC_Yv);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/ecdsa.c b/SPC/Src/middle/ecdsa.c
new file mode 100755
index 0000000..9c58f35
--- /dev/null
+++ b/SPC/Src/middle/ecdsa.c
@@ -0,0 +1,664 @@
+/**
+ * \file ecdsa.c
+ * @brief implementation of public key signature algorithm
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/13
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#ifdef _WIN32_WCE
+#include <winbase.h>
+#endif
+#include <time.h>
+#include "ecdsa.h"
+#include "ANSI_x931.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_CTX_ECDSA_KEY_GEN
+ * @brief generate signature
+ *
+ * @param ctx [out]ecc context
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_NULL_POINTER if any argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_ECDSA_KEY_GEN(SDRM_ECC_CTX *ctx)
+{
+ int i, retVal;
+ cc_u32 Seed[4];
+ SDRM_BIG_NUM *BN_d, *BN_temp;
+ SDRM_EC_POINT *kP;
+
+ cc_u8 *pbBuf = NULL;
+
+ if (ctx == NULL)
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 2);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_d = SDRM_BN_Alloc( pbBuf , SDRM_ECC_BN_BUFSIZE);
+ BN_temp = SDRM_BN_Alloc((cc_u8*)BN_d + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ kP = SDRM_ECC_Init();
+ if (kP == NULL)
+ {
+ free(pbBuf);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ SDRM_BN_Sub(BN_temp, ctx->ECC_n, BN_One);
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, ctx->uDimension, (cc_u8*)BN_d->pData);
+ BN_d->Length = ctx->uDimension / 32;
+ } while ((SDRM_BN_Cmp(BN_d, BN_One) < 0) || (SDRM_BN_Cmp(BN_d, BN_temp) > 0));
+
+ SDRM_BN_OPTIMIZE_LENGTH(BN_d);
+
+ SDRM_EC_SET_ZERO(kP);
+ retVal = SDRM_CTX_EC_kP(ctx, kP, ctx->ECC_G, BN_d);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ free(kP);
+
+ return retVal;
+ }
+
+ SDRM_BN_Copy(ctx->PRIV_KEY, BN_d);
+ SDRM_EC_COPY(ctx->PUBLIC_KEY, kP);
+
+ free(pbBuf);
+ free(kP);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_ECDSA_SIG_GEN
+ * @brief generate signature
+ *
+ * @param ctx [in]ecc context
+ * @param sig [out]generated signature
+ * @param hash [in]hashed message
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_NULL_POINTER if any argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_ECDSA_SIG_GEN(SDRM_ECC_CTX *ctx, cc_u8 *sig, cc_u8 *hash, unsigned int hashLen)
+{
+ int i, res = -1;
+ cc_u32 Seed[20];
+ SDRM_BIG_NUM *BN_Tmp1, *BN_Tmp2, *BN_Tmp3;
+ SDRM_BIG_NUM *BN_k, *BN_r, *BN_s, *BN_hash;
+ SDRM_EC_POINT *kP;
+
+ cc_u8 *pbBuf = NULL;
+
+ if ((ctx== NULL) || (sig == NULL) || (hash == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 7);
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_Tmp1 = SDRM_BN_Alloc( pbBuf, SDRM_ECC_BN_BUFSIZE);
+ BN_Tmp2 = SDRM_BN_Alloc((cc_u8*)BN_Tmp1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_Tmp3 = SDRM_BN_Alloc((cc_u8*)BN_Tmp2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_k = SDRM_BN_Alloc((cc_u8*)BN_Tmp3 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_r = SDRM_BN_Alloc((cc_u8*)BN_k + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_s = SDRM_BN_Alloc((cc_u8*)BN_r + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_hash = SDRM_BN_Alloc((cc_u8*)BN_s + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ kP = SDRM_ECC_Init();
+ if (kP == NULL)
+ {
+ free(pbBuf);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ while(1)
+ {
+ while(1)
+ {
+ // 1. [1, r-1] k
+ SDRM_BN_Sub(BN_Tmp1, ctx->ECC_n, BN_One);
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, ctx->uDimension, (cc_u8*)BN_k->pData);
+ BN_k->Length = ctx->uDimension / 32;
+ } while((SDRM_BN_Cmp(BN_k, BN_One) < 0) || (SDRM_BN_Cmp(BN_k, BN_Tmp1) > 0));
+
+ // 2. kP = (x1, y1), r = x1 mod n(&ctx.ECC_n) . r = 0 ̸ k ٽ
+ SDRM_EC_SET_ZERO(kP);
+ res = SDRM_CTX_EC_kP(ctx, kP, ctx->ECC_G, BN_k);
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ free(kP);
+
+ return res;
+ }
+
+ //SDRM_PrintBN("kP->x", kP->x);
+ SDRM_BN_ModRed(BN_r, kP->x, ctx->ECC_n);
+ if (BN_r->Length > 0) // r = 0 ̸ k ٽ
+ {
+ break;
+ }
+ }
+
+ // 3. k^{-1} mod n .
+ SDRM_BN_ModInv(BN_Tmp1, BN_k, ctx->ECC_n);
+
+ //SDRM_PrintBN("BN_k", BN_k);
+ //SDRM_PrintBN("ctx->ECC_n", ctx->ECC_n);
+ //SDRM_PrintBN("BN_Tmp1 = k^{-1} mod n", BN_Tmp1);
+
+ // 4. s = k^{-1}(hash + dr) mod n (d = private key). s = 0 ̸ 1.
+ // BN_Tmp2 = dr
+ SDRM_OS2BN(hash, hashLen, BN_hash);
+
+ SDRM_BN_ModMul(BN_Tmp2, ctx->PRIV_KEY, BN_r, ctx->ECC_n);
+ SDRM_BN_ModAdd(BN_Tmp3, BN_hash, BN_Tmp2, ctx->ECC_n);
+ SDRM_BN_ModMul(BN_s, BN_Tmp1, BN_Tmp3, ctx->ECC_n);
+ if (BN_s->Length > 0)
+ {
+ break;
+ }
+ }
+
+// (r, s) .
+ //SDRM_PrintBN("BN_r", BN_r);
+ //SDRM_PrintBN("BN_s", BN_s);
+
+ SDRM_BN2OS(BN_r, ctx->uDimension / 8, sig);
+ SDRM_BN2OS(BN_s, ctx->uDimension / 8, sig + ctx->uDimension / 8);
+
+ free(kP);
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_CTX_ECDSA_SIG_VERIFY
+ * @brief verify ecdsa signature
+ *
+ * @param ctx [in]ecc context
+ * @param sig [out]generated signature
+ * @param signLen [out]byte-length of signature
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ *
+ * @return CRYPTO_VALID_SIGN if given signature is valid
+ * \n CRYPTO_INVALID_SIGN if given signature is invalid
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ * \n CRYPTO_INVALID_ARGUMENT if any argument is out of range
+ * \n CRYPTO_INFINITY_INPUT if given argument represents an infinity value
+ */
+CRYPTOCORE_INTERNAL int SDRM_CTX_ECDSA_SIG_VERIFY(SDRM_ECC_CTX *ctx, cc_u8 *sig, int signLen, cc_u8 *hash, int hashLen)
+{
+ int res;
+ SDRM_BIG_NUM *BN_tmp, *BN_u1, *BN_u2, *BN_w, *BN_hash, *pBN_r, *pBN_s;
+ SDRM_EC_POINT *EC_temp1, *EC_temp2;
+
+ cc_u8 *pbBuf = (cc_u8*)malloc(SDRM_ECC_ALLOC_SIZE * 7);
+
+ if (!pbBuf)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_tmp = SDRM_BN_Alloc( pbBuf, SDRM_ECC_BN_BUFSIZE);
+ BN_u1 = SDRM_BN_Alloc((cc_u8*)BN_tmp + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_u2 = SDRM_BN_Alloc((cc_u8*)BN_u1 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_w = SDRM_BN_Alloc((cc_u8*)BN_u2 + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ BN_hash = SDRM_BN_Alloc((cc_u8*)BN_w + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ pBN_r = SDRM_BN_Alloc((cc_u8*)BN_hash+ SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+ pBN_s = SDRM_BN_Alloc((cc_u8*)pBN_r + SDRM_ECC_ALLOC_SIZE, SDRM_ECC_BN_BUFSIZE);
+
+ EC_temp1 = SDRM_ECC_Init();
+ if (EC_temp1 == NULL)
+ {
+ free(pbBuf);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ EC_temp2 = SDRM_ECC_Init();
+ if (EC_temp2 == NULL)
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ if ((cc_u32)signLen != (ctx->uDimension / 4))
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ SDRM_OS2BN(sig, ctx->uDimension / 8, pBN_r);
+ SDRM_OS2BN(sig + ctx->uDimension / 8, ctx->uDimension / 8, pBN_s);
+ //SDRM_PrintBN("BN_r", pBN_r);
+ //SDRM_PrintBN("BN_s", pBN_s);
+
+ // 1. r s
+ SDRM_BN_Sub(BN_tmp, ctx->ECC_n, BN_One);
+ if ((SDRM_BN_Cmp(pBN_r, BN_One) < 0) || (SDRM_BN_Cmp(pBN_r, BN_tmp) > 0))
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if ((SDRM_BN_Cmp(pBN_s, BN_One) < 0) || (SDRM_BN_Cmp(pBN_s, BN_tmp) > 0))
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ // 2. w = s^(-1) mod n, BN_hash
+ SDRM_OS2BN(hash, hashLen, BN_hash);
+ res = SDRM_BN_ModInv(BN_w, pBN_s, ctx->ECC_n);
+//SDRM_PrintBN("BN_w", BN_w);
+
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return res;
+ }
+
+ // 3. u1 = BN_hash *w mod n, u2 = rw mod n
+ SDRM_BN_ModMul(BN_u1, BN_hash, BN_w, ctx->ECC_n);
+ SDRM_BN_ModMul(BN_u2, pBN_r, BN_w, ctx->ECC_n);
+//SDRM_PrintBN("BN_u1", BN_u1);
+//SDRM_PrintBN("BN_u2", BN_u2);
+
+ // 4. (x0, y0) = u1P + u2Q, V = x0 mod n
+ res = SDRM_CTX_EC_2kP(ctx, EC_temp1, BN_u1, ctx->ECC_G, BN_u2, ctx->PUBLIC_KEY);
+ if (res != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return res;
+ }
+ else if(EC_temp1->IsInfinity == 1)
+ {
+ res = CRYPTO_INFINITY_INPUT;
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return res;
+ }
+
+// SDRM_PrintBN("EC_temp1->x", EC_temp1->x);
+// SDRM_PrintBN("ctx->ECC_n", ctx->ECC_n);
+ SDRM_BN_ModRed(BN_tmp, EC_temp1->x, ctx->ECC_n);
+
+// SDRM_PrintBN("BN_tmp", BN_tmp);
+// SDRM_PrintBN("pBN_r", pBN_r);
+ // 5. V = r ok
+ res = SDRM_BN_Cmp_sign(BN_tmp, pBN_r);
+ if (res != 0)
+ {
+ res = CRYPTO_INVALID_SIGN;
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return res;
+ }
+
+ //Success
+ free(pbBuf);
+ free(EC_temp1);
+ free(EC_temp2);
+
+ return CRYPTO_VALID_SIGN;
+}
+
+/*
+ * @fn SDRM_ECDSA_sign
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECDSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdsactx == NULL) || (hash == NULL) || (signature == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (signLen)
+ {
+ *signLen = crt->ctx->ecdsactx->uDimension / 4;
+ }
+
+ return SDRM_CTX_ECDSA_SIG_GEN(crt->ctx->ecdsactx, signature, hash, hashLen);
+}
+
+/*
+ * @fn SDRM_ECDSA_verify
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of veryfing signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECDSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+{
+ int retVal;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdsactx == NULL) || (hash == NULL) || (signature == NULL) || (result == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (signLen != (crt->ctx->ecdsactx->uDimension / 4))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ retVal = SDRM_CTX_ECDSA_SIG_VERIFY(crt->ctx->ecdsactx, signature, signLen, hash, hashLen);
+
+ if (retVal == CRYPTO_VALID_SIGN)
+ {
+ *result = CRYPTO_VALID_SIGN;
+ }
+ else
+ {
+ *result = CRYPTO_INVALID_SIGN;
+ }
+
+ return retVal;
+}
+
+/*
+ * @fn SDRM_ECC_Set_CTX
+ * @brief Set parameters for ECC
+ *
+ * @param crt [out]crypto env structure
+ * @param Dimension [in]dimension
+ * @param ECC_P_Data [in]represents p
+ * @param ECC_P_Len [in]byte-length of p
+ * @param ECC_A_Data [in]represents a
+ * @param ECC_A_Len [in]byte-length of a
+ * @param ECC_B_Data [in]represents b
+ * @param ECC_B_Len [in]byte-length of b
+ * @param ECC_G_X_Data [in]represents x coordinate of g
+ * @param ECC_G_X_Len [in]byte-length of x coordinate of g
+ * @param ECC_G_Y_Data [in]represents y coordinate of g
+ * @param ECC_G_Y_Len [in]byte-length of y coordinate of g
+ * @param ECC_R_Data [in]represents r
+ * @param ECC_R_Len [in]byte-length of r
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_Set_CTX(CryptoCoreContainer *crt, cc_u16 Dimension,
+ cc_u8* ECC_P_Data, cc_u32 ECC_P_Len,
+ cc_u8* ECC_A_Data, cc_u32 ECC_A_Len,
+ cc_u8* ECC_B_Data, cc_u32 ECC_B_Len,
+ cc_u8* ECC_G_X_Data, cc_u32 ECC_G_X_Len,
+ cc_u8* ECC_G_Y_Data, cc_u32 ECC_G_Y_Len,
+ cc_u8* ECC_R_Data, cc_u32 ECC_R_Len)
+{
+ int retVal;
+ cc_u8 zero[] = {0x00};
+ SDRM_ECC_CTX *ECC_ctx;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if ((ECC_P_Data == NULL) || (ECC_A_Data == NULL) || (ECC_B_Data == NULL) || (ECC_G_X_Data == NULL) || (ECC_G_Y_Data == NULL) || (ECC_R_Data == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ECC_ctx = crt->ctx->ecdhctx;
+
+ ECC_ctx->uDimension = Dimension;
+
+ retVal = SDRM_OS2BN(ECC_P_Data, ECC_P_Len, ECC_ctx->ECC_p);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+
+ retVal = SDRM_OS2BN(ECC_A_Data, ECC_A_Len, ECC_ctx->ECC_a);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+
+ retVal = SDRM_OS2BN(ECC_B_Data, ECC_B_Len, ECC_ctx->ECC_b);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+
+ retVal = SDRM_OS2BN(ECC_R_Data, ECC_R_Len, ECC_ctx->ECC_n);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+
+ ECC_ctx->ECC_G->IsInfinity = 0;
+ retVal = SDRM_OS2BN(ECC_G_X_Data, ECC_G_X_Len, ECC_ctx->ECC_G->x);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+ retVal = SDRM_OS2BN(ECC_G_Y_Data, ECC_G_Y_Len, ECC_ctx->ECC_G->y);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(ECC_ctx);
+ return retVal;
+ }
+
+ SDRM_OS2BN(zero, 0, ECC_ctx->ECC_G->z);
+ SDRM_OS2BN(zero, 0, ECC_ctx->ECC_G->z2);
+ SDRM_OS2BN(zero, 0, ECC_ctx->ECC_G->z3);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_ECC_genKeypair
+ * @brief Generate Private Key and Generate Key Pair for ECC Signature
+ *
+ * @param crt [out]crypto env structure
+ * @param PrivateKey [in]represents x coordinate of public key
+ * @param PrivateKeyLen [in]byte-length of x coordinate of public key
+ * @param PublicKey_X [in]represents x coordinate of public key
+ * @param PublicKey_XLen [in]byte-length of x coordinate of public key
+ * @param PublicKey_Y [in]represents y coordinate of public key
+ * @param PublicKey_YLen [in]byte-length of y coordinate of public key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_genKeypair (CryptoCoreContainer *crt,
+ cc_u8 *PrivateKey, cc_u32 *PrivateKeyLen,
+ cc_u8 *PublicKey_X, cc_u32 *PublicKey_XLen,
+ cc_u8 *PublicKey_Y, cc_u32 *PublicKey_YLen)
+{
+ int retVal;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ retVal = SDRM_CTX_ECDSA_KEY_GEN(crt->ctx->ecdsactx);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ if (PrivateKey != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->ecdsactx->PRIV_KEY, crt->ctx->ecdsactx->uDimension / 8, PrivateKey);
+ }
+
+ if (PrivateKeyLen != NULL)
+ {
+ *PrivateKeyLen = crt->ctx->ecdsactx->uDimension / 8;
+ }
+
+ if (PublicKey_X != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->ecdsactx->PUBLIC_KEY->x, crt->ctx->ecdsactx->uDimension / 8, PublicKey_X);
+ }
+
+ if (PublicKey_XLen != NULL)
+ {
+ *PublicKey_XLen = crt->ctx->ecdsactx->uDimension / 8;
+ }
+
+ if (PublicKey_Y != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->ecdsactx->PUBLIC_KEY->y, crt->ctx->ecdsactx->uDimension / 8, PublicKey_Y);
+ }
+
+ if (PublicKey_YLen != NULL)
+ {
+ *PublicKey_YLen = crt->ctx->ecdsactx->uDimension / 8;
+ }
+
+ return CRYPTO_SUCCESS;
+
+}
+
+/*
+ * @fn SDRM_ECC_setKeypair
+ * @brief Set key data for ECC
+ *
+ * @param crt [out]crypto env structure
+ * @param PRIV_Data [in]represents private key
+ * @param PRIV_Len [in]byte-length of private key
+ * @param PUB_X_Data [in]represents x coordinate of public key
+ * @param PUB_X_Len [in]byte-length of x coordinate of public key
+ * @param PUB_Y_Data [in]represents y coordinate of public key
+ * @param PUB_Y_Len [in]byte-length of y coordinate of public key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if argument is null
+ */
+CRYPTOCORE_INTERNAL int SDRM_ECC_setKeypair(CryptoCoreContainer *crt,
+ cc_u8* PRIV_Data, cc_u32 PRIV_Len,
+ cc_u8* PUB_X_Data, cc_u32 PUB_X_Len,
+ cc_u8* PUB_Y_Data, cc_u32 PUB_Y_Len)
+{
+ int retVal;
+ cc_u8 zero[] = {0x00};
+ SDRM_ECC_CTX *ECC_ctx;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->ecdsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ECC_ctx = crt->ctx->ecdsactx;
+
+ ECC_ctx->PUBLIC_KEY->IsInfinity = 0;
+
+ if (PRIV_Data != NULL)
+ {
+ retVal = SDRM_OS2BN(PRIV_Data, PRIV_Len, ECC_ctx->PRIV_KEY);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ if (PUB_X_Data != NULL && PUB_Y_Data != NULL)
+ {
+ retVal = SDRM_OS2BN(PUB_X_Data, PUB_X_Len, ECC_ctx->PUBLIC_KEY->x);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ retVal = SDRM_OS2BN(PUB_Y_Data, PUB_Y_Len, ECC_ctx->PUBLIC_KEY->y);
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ SDRM_OS2BN(zero, 0, ECC_ctx->PUBLIC_KEY->z);
+ SDRM_OS2BN(zero, 0, ECC_ctx->PUBLIC_KEY->z2);
+ SDRM_OS2BN(zero, 0, ECC_ctx->PUBLIC_KEY->z3);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/hmac.c b/SPC/Src/middle/hmac.c
new file mode 100755
index 0000000..86d23d4
--- /dev/null
+++ b/SPC/Src/middle/hmac.c
@@ -0,0 +1,572 @@
+/**
+ * \file hmac.c
+ * @brief funciton for c-mac code generation by SHA1 and MD5
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/19
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "hmac.h"
+#include "sha1.h"
+#include "sha2.h"
+#include "md5.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+CRYPTOCORE_INTERNAL int SDRM_getK0(cc_u8* k0, cc_u8* Key, cc_u32 KeyLen, cc_u32 Algorithm, cc_u32 B);
+
+/*
+ * @fn SDRM_HMAC_init
+ * @brief Parameter setting for mac code generation
+ *
+ * @param crt [out]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_init(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen)
+{
+ SDRM_HMACContext *ctx;
+ cc_u8 *ipad;
+ cc_u32 i;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->hmacctx == NULL) || (Key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->hmacctx;
+ ctx->algorithm = crt->alg;
+
+ switch(ctx->algorithm)
+ {
+ case ID_HMD5 :
+ ctx->B = SDRM_MD5_DATA_SIZE;
+ break;
+
+ case ID_HSHA1 :
+ ctx->B = SDRM_SHA1_DATA_SIZE;
+ break;
+
+ case ID_HSHA224 :
+ ctx->B = SDRM_SHA224_DATA_SIZE;
+ break;
+
+ case ID_HSHA256 :
+ ctx->B = SDRM_SHA256_DATA_SIZE;
+ break;
+
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384 :
+ ctx->B = SDRM_SHA384_DATA_SIZE;
+ break;
+
+ case ID_HSHA512 :
+ ctx->B = SDRM_SHA512_DATA_SIZE;
+ break;
+#endif //_OP64_NOTSUPPORTED
+
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ ipad = (cc_u8*)malloc(ctx->B);
+ if (ipad == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ ctx->k0 = (cc_u8*)malloc(ctx->B);
+ if (ctx->k0 == NULL)
+ {
+ free(ipad);
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ //make k0
+ SDRM_getK0(ctx->k0, Key, KeyLen, ctx->algorithm, ctx->B);
+
+ //ipad = k0 xor ipad
+ for (i = 0; i < ctx->B; i++)
+ {
+ ipad[i] = ctx->k0[i] ^ 0x36;
+ }
+
+ if (i != ctx->B)
+ {
+ for (; i < ctx->B; i++)
+ {
+ ipad[i] = ctx->k0[i] ^ 0x36;
+ }
+ }
+
+ ctx->md5_ctx = NULL;
+ ctx->sha1_ctx = NULL;
+ ctx->sha224_ctx = NULL;
+ ctx->sha256_ctx = NULL;
+#ifndef _OP64_NOTSUPPORTED
+ ctx->sha384_ctx = NULL;
+ ctx->sha512_ctx = NULL;
+#endif //_OP64_NOTSUPPORTED
+
+ switch(ctx->algorithm)
+ {
+ case ID_HMD5 :
+ ctx->md5_ctx = (SDRM_MD5Context*)malloc(sizeof(SDRM_MD5Context));
+
+ if (ctx->md5_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_MD5_Init(ctx->md5_ctx);
+ SDRM_MD5_Update(ctx->md5_ctx, ipad, ctx->B);
+ break;
+
+ case ID_HSHA1 :
+ ctx->sha1_ctx = (SDRM_SHA1Context*)malloc(sizeof(SDRM_SHA1Context));
+
+ if (ctx->sha1_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_SHA1_Init(ctx->sha1_ctx);
+ SDRM_SHA1_Update(ctx->sha1_ctx, ipad, ctx->B);
+ break;
+
+ case ID_HSHA224 :
+ ctx->sha224_ctx = (SDRM_SHA224Context*)malloc(sizeof(SDRM_SHA224Context));
+
+ if (ctx->sha224_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_SHA224_Init(ctx->sha224_ctx);
+ SDRM_SHA224_Update(ctx->sha224_ctx, ipad, ctx->B);
+ break;
+
+ case ID_HSHA256 :
+ ctx->sha256_ctx = (SDRM_SHA256Context*)malloc(sizeof(SDRM_SHA256Context));
+
+ if (ctx->sha256_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_SHA256_Init(ctx->sha256_ctx);
+ SDRM_SHA256_Update(ctx->sha256_ctx, ipad, ctx->B);
+ break;
+
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384 :
+ ctx->sha384_ctx = (SDRM_SHA384Context*)malloc(sizeof(SDRM_SHA384Context));
+
+ if (ctx->sha384_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_SHA384_Init(ctx->sha384_ctx);
+ SDRM_SHA384_Update(ctx->sha384_ctx, ipad, ctx->B);
+ break;
+
+ case ID_HSHA512 :
+ ctx->sha512_ctx = (SDRM_SHA512Context*)malloc(sizeof(SDRM_SHA512Context));
+
+ if (ctx->sha512_ctx == NULL)
+ {
+ if (ipad != NULL)
+ {
+ free(ipad);
+ }
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ SDRM_SHA512_Init(ctx->sha512_ctx);
+ SDRM_SHA512_Update(ctx->sha512_ctx, ipad, ctx->B);
+ break;
+#endif //_OP64_NOTSUPPORTED
+
+ default :
+ free(ipad);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ free(ipad);
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_HMAC_update
+ * @brief process data blocks
+ *
+ * @param crt [out]crypto parameter
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_update(CryptoCoreContainer *crt, cc_u8 *msg, cc_u32 msgLen)
+{
+ if (msgLen == 0)
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->hmacctx == NULL) || (msg == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ switch(crt->ctx->hmacctx->algorithm)
+ {
+ case ID_HMD5 :
+ SDRM_MD5_Update(crt->ctx->hmacctx->md5_ctx, msg, msgLen);
+ break;
+ case ID_HSHA1 :
+ SDRM_SHA1_Update(crt->ctx->hmacctx->sha1_ctx, msg, msgLen);
+ break;
+ case ID_HSHA224 :
+ SDRM_SHA224_Update(crt->ctx->hmacctx->sha224_ctx, msg, msgLen);
+ break;
+ case ID_HSHA256 :
+ SDRM_SHA256_Update(crt->ctx->hmacctx->sha256_ctx, msg, msgLen);
+ break;
+
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384 :
+ SDRM_SHA384_Update(crt->ctx->hmacctx->sha384_ctx, msg, msgLen);
+ break;
+ case ID_HSHA512 :
+ SDRM_SHA512_Update(crt->ctx->hmacctx->sha512_ctx, msg, msgLen);
+ break;
+#endif //OP64_NOTSUPPORTED
+
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_HMAC_final
+ * @brief process last data block
+ *
+ * @param crt [in]crypto parameter
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if Parameter is NULL
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_final(CryptoCoreContainer *crt, cc_u8 *output, cc_u32 *outputLen)
+{
+ SDRM_HMACContext *ctx;
+ SDRM_MD5Context MD5ctx;
+ SDRM_SHA1Context SHA1ctx;
+ SDRM_SHA224Context SHA224ctx;
+ SDRM_SHA256Context SHA256ctx;
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context SHA384ctx;
+ SDRM_SHA512Context SHA512ctx;
+#endif //_OP64_NOTSUPPORTED
+ cc_u8 Step6_Result[64];
+ cc_u32 HashLen, i;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->hmacctx == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ ctx = crt->ctx->hmacctx;
+
+ //k0 = k0 xor opad
+ for (i = 0; i < ctx->B; i++)
+ {
+ ctx->k0[i] ^= 0x5c;
+ }
+
+ if (i != ctx->B)
+ {
+ for (; i < ctx->B; i++)
+ {
+ ctx->k0[i] ^= 0x5c;
+ }
+ }
+
+ //Step6 : get H((k0 xor ipad) | text) & Step 9 : make hash
+ switch(ctx->algorithm)
+ {
+ case ID_HMD5 :
+ SDRM_MD5_Final(ctx->md5_ctx, Step6_Result);
+ free(ctx->md5_ctx);
+
+ HashLen = SDRM_MD5_BLOCK_SIZ;
+
+ SDRM_MD5_Init(&MD5ctx);
+ SDRM_MD5_Update(&MD5ctx, ctx->k0, ctx->B);
+ SDRM_MD5_Update(&MD5ctx, Step6_Result, HashLen);
+ SDRM_MD5_Final(&MD5ctx, output);
+
+ break;
+
+ case ID_HSHA1 :
+ SDRM_SHA1_Final(ctx->sha1_ctx, Step6_Result);
+ free(ctx->sha1_ctx);
+
+ HashLen = SDRM_SHA1_BLOCK_SIZ;
+
+ SDRM_SHA1_Init(&SHA1ctx);
+ SDRM_SHA1_Update(&SHA1ctx, ctx->k0, ctx->B);
+ SDRM_SHA1_Update(&SHA1ctx, Step6_Result, HashLen);
+ SDRM_SHA1_Final(&SHA1ctx, output);
+
+ break;
+
+ case ID_HSHA224 :
+ SDRM_SHA224_Final(ctx->sha224_ctx, Step6_Result);
+ free(ctx->sha224_ctx);
+
+ HashLen = SDRM_SHA224_BLOCK_SIZ;
+
+ SDRM_SHA224_Init(&SHA224ctx);
+ SDRM_SHA224_Update(&SHA224ctx, ctx->k0, ctx->B);
+ SDRM_SHA224_Update(&SHA224ctx, Step6_Result, HashLen);
+ SDRM_SHA224_Final(&SHA224ctx, output);
+
+ break;
+
+ case ID_HSHA256 :
+ SDRM_SHA256_Final(ctx->sha256_ctx, Step6_Result);
+ free(ctx->sha256_ctx);
+
+ HashLen = SDRM_SHA256_BLOCK_SIZ;
+
+ SDRM_SHA256_Init(&SHA256ctx);
+ SDRM_SHA256_Update(&SHA256ctx, ctx->k0, ctx->B);
+ SDRM_SHA256_Update(&SHA256ctx, Step6_Result, HashLen);
+ SDRM_SHA256_Final(&SHA256ctx, output);
+
+ break;
+
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384 :
+ SDRM_SHA384_Final(ctx->sha384_ctx, Step6_Result);
+ free(ctx->sha384_ctx);
+
+ HashLen = SDRM_SHA384_BLOCK_SIZ;
+
+ SDRM_SHA384_Init(&SHA384ctx);
+ SDRM_SHA384_Update(&SHA384ctx, ctx->k0, ctx->B);
+ SDRM_SHA384_Update(&SHA384ctx, Step6_Result, HashLen);
+ SDRM_SHA384_Final(&SHA384ctx, output);
+
+ break;
+
+ case ID_HSHA512 :
+ SDRM_SHA512_Final(ctx->sha512_ctx, Step6_Result);
+ free(ctx->sha512_ctx);
+
+ HashLen = SDRM_SHA512_BLOCK_SIZ;
+
+ SDRM_SHA512_Init(&SHA512ctx);
+ SDRM_SHA512_Update(&SHA512ctx, ctx->k0, ctx->B);
+ SDRM_SHA512_Update(&SHA512ctx, Step6_Result, HashLen);
+ SDRM_SHA512_Final(&SHA512ctx, output);
+
+ break;
+#endif
+
+ default :
+ if (ctx->k0) free(ctx->k0);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = HashLen;
+ }
+
+ if (ctx->k0)
+ {
+ free(ctx->k0);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_HMAC_getMAC
+ * @brief generate h-mac code
+ *
+ * @param crt [in]crypto parameter
+ * @param Key [in]user key
+ * @param KeyLen [in]byte-length of Key
+ * @param msg [in]data block
+ * @param msgLen [in]byte-length of Text
+ * @param output [out]generated MAC
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_HMAC_getMAC(CryptoCoreContainer *crt, cc_u8 *Key, cc_u32 KeyLen, cc_u8 *msg, cc_u32 msgLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int result;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->hmacctx == NULL) || (Key == NULL) || (output == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ result = SDRM_HMAC_init(crt, Key, KeyLen);
+ if (result != CRYPTO_SUCCESS)
+ {
+ return result;
+ }
+
+ result = SDRM_HMAC_update(crt, msg, msgLen);
+ if (result != CRYPTO_SUCCESS)
+ {
+ return result;
+ }
+
+ return SDRM_HMAC_final(crt, output, outputLen);
+}
+
+CRYPTOCORE_INTERNAL int SDRM_getK0(cc_u8* k0, cc_u8* Key, cc_u32 KeyLen, cc_u32 Algorithm, cc_u32 B)
+{
+ SDRM_MD5Context MD5ctx;
+ SDRM_SHA1Context SHA1ctx;
+ SDRM_SHA224Context SHA224ctx;
+ SDRM_SHA256Context SHA256ctx;
+#ifndef _OP64_NOTSUPPORTED
+ SDRM_SHA384Context SHA384ctx;
+ SDRM_SHA512Context SHA512ctx;
+#endif //_OP64_NOTSUPPORTED
+
+ int L;
+
+ if (KeyLen == B)
+ {
+ //if the length of K = B : set K0 = K
+ memcpy(k0, Key, B);
+ }
+ else if (KeyLen > B)
+ {
+ //if the length of K > B : get hask(K) and append (B - L) zeros
+
+ //get hash(K)
+
+ switch(Algorithm)
+ {
+ case ID_HMD5 :
+ SDRM_MD5_Init(&MD5ctx);
+ SDRM_MD5_Update(&MD5ctx, Key, KeyLen);
+ SDRM_MD5_Final(&MD5ctx, k0);
+
+ L = SDRM_MD5_BLOCK_SIZ;
+
+ break;
+
+ case ID_HSHA1 :
+ SDRM_SHA1_Init(&SHA1ctx);
+ SDRM_SHA1_Update(&SHA1ctx, Key, KeyLen);
+ SDRM_SHA1_Final(&SHA1ctx, k0);
+
+ L = SDRM_SHA1_BLOCK_SIZ;
+
+ break;
+
+ case ID_HSHA224 :
+ SDRM_SHA224_Init(&SHA224ctx);
+ SDRM_SHA224_Update(&SHA224ctx, Key, KeyLen);
+ SDRM_SHA224_Final(&SHA224ctx, k0);
+
+ L = SDRM_SHA224_BLOCK_SIZ;
+
+ break;
+
+ case ID_HSHA256 :
+ SDRM_SHA256_Init(&SHA256ctx);
+ SDRM_SHA256_Update(&SHA256ctx, Key, KeyLen);
+ SDRM_SHA256_Final(&SHA256ctx, k0);
+
+ L = SDRM_SHA256_BLOCK_SIZ;
+
+ break;
+
+#ifndef _OP64_NOTSUPPORTED
+ case ID_HSHA384 :
+ SDRM_SHA384_Init(&SHA384ctx);
+ SDRM_SHA384_Update(&SHA384ctx, Key, KeyLen);
+ SDRM_SHA384_Final(&SHA384ctx, k0);
+
+ L = SDRM_SHA384_BLOCK_SIZ;
+
+ break;
+
+ case ID_HSHA512 :
+ SDRM_SHA512_Init(&SHA512ctx);
+ SDRM_SHA512_Update(&SHA512ctx, Key, KeyLen);
+ SDRM_SHA512_Final(&SHA512ctx, k0);
+
+ L = SDRM_SHA512_BLOCK_SIZ;
+
+ break;
+#endif
+
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //append zeros
+ memset(k0 + L, 0x00, B - L);
+ }
+ else {
+ //if the length of K < B : append zerots to the end of K
+ memcpy(k0, Key, KeyLen);
+ memset(k0 + KeyLen, 0x00, B - KeyLen);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/rng.c b/SPC/Src/middle/rng.c
new file mode 100755
index 0000000..7bd2388
--- /dev/null
+++ b/SPC/Src/middle/rng.c
@@ -0,0 +1,69 @@
+/**
+ * \file rng.c
+ * @brief Random Number Generator Interface
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/07
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "ANSI_x931.h"
+#include "rng.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_X931_seed
+ * @brief Seed RNG System
+ *
+ * @param crt [in]crypto env structure
+ * @param seed [in]seed for RNG System
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_X931_seed(CryptoCoreContainer *crt, cc_u8 *seed)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->x931ctx == NULL) || (seed == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ memcpy(crt->ctx->x931ctx->Seed, seed, SDRM_X931_SEED_SIZ);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_X931_get
+ * @brief generate random number
+ *
+ * @param crt [in]crypto env structure
+ * @param bitLength [in]bit length for generated number
+ * @param data [out]generated data
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_X931_get(CryptoCoreContainer *crt, cc_u32 bitLength, cc_u8 *data)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->x931ctx == NULL) || (data == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+#ifdef _WIN32_WCE
+ srand(GetTickCount());
+#else
+ srand((unsigned int)time(NULL));
+#endif
+
+ return SDRM_RNG_X931(crt->ctx->x931ctx->Seed, bitLength, data);
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/rsa.c b/SPC/Src/middle/rsa.c
new file mode 100755
index 0000000..83a89b0
--- /dev/null
+++ b/SPC/Src/middle/rsa.c
@@ -0,0 +1,1209 @@
+/**
+ * \file rsa.c
+ * @brief implementation of rsa encryption/decryption and signature/verifycation
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/20
+ * Note : Modified for support RSA-2048(Jisoon Park, 2007/03/14)
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "rsa.h"
+#include "pkcs1_v21.h"
+#include "ANSI_x931.h"
+#include "bignum.h"
+
+//////////////////////////////////////////////////////////////////////////
+// Functions
+//////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_RSAContext *SDRM_RSA_InitCrt(cc_u32 KeyByteLen)
+ *
+ * @brief generate RSA Context
+ *
+ * @return pointer to the generated context
+ * \n NULL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL SDRM_RSAContext *SDRM_RSA_InitCrt(cc_u32 KeyByteLen)
+{
+ SDRM_RSAContext *ctx;
+ cc_u32 RSA_KeyByteLen = KeyByteLen;
+ cc_u8 *pbBuf = (cc_u8*)malloc(sizeof(SDRM_RSAContext) + SDRM_RSA_ALLOC_SIZE * 8);
+
+ if (pbBuf == NULL)
+ {
+ return NULL;
+ }
+
+ ctx = (SDRM_RSAContext*)(void*)pbBuf;
+ ctx->n = SDRM_BN_Alloc((cc_u8*)ctx + sizeof(SDRM_RSAContext), SDRM_RSA_BN_BUFSIZE);
+ ctx->e = SDRM_BN_Alloc((cc_u8*)ctx->n + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->d = SDRM_BN_Alloc((cc_u8*)ctx->e + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->p = SDRM_BN_Alloc((cc_u8*)ctx->d + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->q = SDRM_BN_Alloc((cc_u8*)ctx->p + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->dmodp1 = SDRM_BN_Alloc((cc_u8*)ctx->q + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->dmodq1 = SDRM_BN_Alloc((cc_u8*)ctx->dmodp1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ ctx->iqmodp = SDRM_BN_Alloc((cc_u8*)ctx->dmodq1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ ctx->crt_operation = (unsigned int)-1;
+ ctx->k = RSA_KeyByteLen;
+
+ return ctx;
+}
+
+/*
+ * @fn int SDRM_RSA_setNED(CryptoCoreContainer *crt, cc_u32 PaddingMethod, cc_u8* RSA_N_Data, cc_u32 RSA_N_Len, cc_u8* RSA_E_Data, cc_u32 RSA_E_Len, cc_u8* RSA_D_Data, cc_u32 RSA_D_Len)
+ * @brief set RSA parameters
+ *
+ * @param crt [out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_N_Data [in]n value
+ * @param RSA_N_Len [in]byte-length of n
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_D_Data [in]d value
+ * @param RSA_D_Len [in]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_setNED(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (RSA_N_Data == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ SDRM_OS2BN(RSA_N_Data, RSA_N_Len, crt->ctx->rsactx->n);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->n);
+
+ if (RSA_E_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_E_Data, RSA_E_Len, crt->ctx->rsactx->e);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->e);
+ }
+
+ if (RSA_D_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_D_Data, RSA_D_Len, crt->ctx->rsactx->d);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->d);
+ }
+
+ crt->ctx->rsactx->pm = PaddingMethod;
+ crt->ctx->rsactx->crt_operation = 0;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_setNEDPQ(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ * cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ * cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ * cc_u8* RSA_D_Data, cc_u32 RSA_D_Len,
+ * cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ * cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ * cc_u8* RSA_DmodP1_Data, cc_u32 RSA_DmodP1_Len,
+ * cc_u8* RSA_DmodQ1_Data, cc_u32 RSA_DmodQ1_Len,
+ * cc_u8* RSA_iQmodP_Data, cc_u32 RSA_iQmodP_Len)
+ *
+ * @brief set RSA parameters
+ *
+ * @param crt [out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_N_Data [in]n value
+ * @param RSA_N_Len [in]byte-length of n
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_D_Data [in]d value
+ * @param RSA_D_Len [in]byte-length of d
+ * @param RSA_P_Data [in]p value
+ * @param RSA_P_Len [in]byte-length of p
+ * @param RSA_Q_Data [in]q value
+ * @param RSA_Q_Len [in]byte-length of q
+ * @param RSA_DmodP1_Data [in]d mod (p-1) value
+ * @param RSA_DmodP1_Len [in]byte-length of d mod (p-1)
+ * @param RSA_DmodQ1_Data [in]d mod (q-1) value
+ * @param RSA_DmodQ1_Len [in]byte-length of d mod (q-1)
+ * @param RSA_iQmodP_Data [in]q^(-1) mod p value
+ * @param RSA_iQmodP_Len [in]byte-length of q^(-1) mod p
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_setNEDPQ(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 RSA_D_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_DmodP1_Data, cc_u32 RSA_DmodP1_Len,
+ cc_u8* RSA_DmodQ1_Data, cc_u32 RSA_DmodQ1_Len,
+ cc_u8* RSA_iQmodP_Data, cc_u32 RSA_iQmodP_Len)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ crt->ctx->rsactx->crt_operation = 0;
+ if ((RSA_P_Data != NULL) && (RSA_Q_Data != NULL) && (RSA_DmodP1_Data != NULL) && (RSA_DmodQ1_Data != NULL) && (RSA_iQmodP_Data != NULL))
+ {
+ crt->ctx->rsactx->crt_operation = 1;
+ }
+ else if (RSA_N_Data == NULL)
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (RSA_N_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_N_Data, RSA_N_Len, crt->ctx->rsactx->n);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->n);
+ }
+
+ if (RSA_E_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_E_Data, RSA_E_Len, crt->ctx->rsactx->e);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->e);
+ }
+
+ if (RSA_D_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_D_Data, RSA_D_Len, crt->ctx->rsactx->d);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->d);
+ }
+
+ if (RSA_P_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_P_Data, RSA_P_Len, crt->ctx->rsactx->p);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->p);
+ }
+
+ if (RSA_Q_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_Q_Data, RSA_Q_Len, crt->ctx->rsactx->q);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->q);
+ }
+
+ if (RSA_DmodP1_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_DmodP1_Data, RSA_DmodP1_Len, crt->ctx->rsactx->dmodp1);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->dmodp1);
+ }
+
+ if (RSA_DmodQ1_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_DmodQ1_Data, RSA_DmodQ1_Len, crt->ctx->rsactx->dmodq1);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->dmodq1);
+ }
+
+ if (RSA_iQmodP_Data != NULL)
+ {
+ SDRM_OS2BN(RSA_iQmodP_Data, RSA_iQmodP_Len, crt->ctx->rsactx->iqmodp);
+ SDRM_BN_OPTIMIZE_LENGTH(crt->ctx->rsactx->iqmodp);
+ }
+
+ crt->ctx->rsactx->pm = PaddingMethod;
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_RSA_GenerateKey(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ * cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ * cc_u8* RSA_E_Data, cc_u32 *RSA_E_Len,
+ * cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+ * @brief generate and set RSA parameters
+ *
+ * @param crt [in/out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_N_Data [out]n value
+ * @param RSA_N_Len [out]byte-length of n
+ * @param RSA_E_Data [out]e value
+ * @param RSA_E_Len [out]byte-length of e
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateKey(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_E_Data, cc_u32 *RSA_E_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+{
+ cc_u32 Seed[4];
+ SDRM_BIG_NUM *p, *q, *pi, *e, *temp1, *temp2;
+ cc_u32 RSA_KeyByteLen = 0;
+ int i, sp, t1;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ t1 = (RSA_KeyByteLen * 4 - 1) % 32;
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 5);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ p = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ q = SDRM_BN_Alloc((cc_u8*)p + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ pi = SDRM_BN_Alloc((cc_u8*)q + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)pi + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ e = crt->ctx->rsactx->e;
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ //set security parameter for miller-rabin probabilistic primality test
+ if (RSA_KeyByteLen >= 256)
+ {
+ sp = 3;
+ }
+ else if (RSA_KeyByteLen >= 128)
+ {
+ sp = 5;
+ }
+ else if (RSA_KeyByteLen >= 30)
+ {
+ sp = 15;
+ }
+ else
+ {
+ sp = 30;
+ }
+
+GEN_RND:
+ //Generate p
+ p->Length = (RSA_KeyByteLen + 7) / 8;
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, RSA_KeyByteLen * 4, (cc_u8*)p->pData);
+ p->pData[0] |= 1L;
+ p->pData[p->Length - 1] &= ~((-1L) << t1);
+ p->pData[p->Length - 1] |= (1L << t1);
+ } while(SDRM_BN_MILLER_RABIN(p, sp) != CRYPTO_ISPRIME);
+
+ //Generate q
+ q->Length = (RSA_KeyByteLen + 7) / 8;
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, RSA_KeyByteLen * 4, (cc_u8*)q->pData);
+ q->pData[0] |= 1L;
+ q->pData[q->Length - 1] &= ~((-1L) << t1);
+ q->pData[q->Length - 1] |= (1L << t1);
+ } while(SDRM_BN_MILLER_RABIN(q, sp) != CRYPTO_ISPRIME);
+
+ //temp1 = (p - 1), temp2 = (q - 1)
+ SDRM_BN_Sub(temp1, p, BN_One);
+ SDRM_BN_Sub(temp2, q, BN_One);
+
+ //evaluate n and pi
+ //n = p * q, pi = (p - 1) * (q - 1)
+ SDRM_BN_Mul(crt->ctx->rsactx->n, p, q);
+ SDRM_BN_Mul(pi, temp1, temp2);
+
+ //generate e
+ e->Length = (RSA_KeyByteLen + 3) / 4;
+ do {
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, RSA_KeyByteLen * 8 - 8, (cc_u8*)e->pData);
+ e->pData[0] |= 0x01;
+ } while(SDRM_BN_CheckRelativelyPrime(e, pi) != CRYPTO_ISPRIME);
+ } while (SDRM_BN_Cmp(e, pi) >= 0);
+
+ if (SDRM_BN_ModInv(crt->ctx->rsactx->d, e, pi) != CRYPTO_SUCCESS)
+ {
+ goto GEN_RND;
+ }
+
+ crt->ctx->rsactx->pm = PaddingMethod;
+
+ if (RSA_N_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->n, RSA_KeyByteLen, RSA_N_Data);
+ }
+
+ if (RSA_N_Len != NULL)
+ {
+ *RSA_N_Len = RSA_KeyByteLen;
+ }
+
+ if (RSA_E_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->e, RSA_KeyByteLen, RSA_E_Data);
+ }
+
+ if (RSA_E_Len != NULL)
+ {
+ *RSA_E_Len = RSA_KeyByteLen;
+ }
+
+ if (RSA_D_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->d, RSA_KeyByteLen, RSA_D_Data);
+ }
+
+ if (RSA_D_Len != NULL)
+ {
+ *RSA_D_Len = RSA_KeyByteLen;
+ }
+
+ free(pbBuf);
+
+ crt->ctx->rsactx->crt_operation = 0;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_GenerateND(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ * cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ * cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ * cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+ * @brief generate and set RSA parameters with specfied e
+ *
+ * @param crt [in/out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_N_Data [out]n value
+ * @param RSA_N_Len [out]byte-length of n
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateND(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+{
+ cc_u32 Seed[4];
+ SDRM_BIG_NUM *p, *q, *pi, *e, *temp1, *temp2;
+ cc_u32 RSA_KeyByteLen = 0;
+ int i, sp, t1;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL)) {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ t1 = (RSA_KeyByteLen * 4 - 1) % 32;
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 5);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ p = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ q = SDRM_BN_Alloc((cc_u8*)p + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ pi = SDRM_BN_Alloc((cc_u8*)q + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)pi + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ e = crt->ctx->rsactx->e;
+
+ for (i = 0; i < 4; i++)
+ {
+ Seed[i] = (rand() << 16) ^ rand();
+ }
+
+ //set security parameter for miller-rabin probabilistic primality test
+ if (RSA_KeyByteLen >= 256)
+ {
+ sp = 3;
+ }
+ else if (RSA_KeyByteLen >= 128)
+ {
+ sp = 5;
+ }
+ else if (RSA_KeyByteLen >= 30)
+ {
+ sp = 15;
+ }
+ else
+ {
+ sp = 30;
+ }
+
+GEN_RND:
+ //Generate p
+ p->Length = (RSA_KeyByteLen + 7) / 8;
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, RSA_KeyByteLen * 4, (cc_u8*)p->pData);
+ p->pData[0] |= 1L;
+ p->pData[p->Length - 1] &= ~((-1L) << t1);
+ p->pData[p->Length - 1] |= (1L << t1);
+ } while(SDRM_BN_MILLER_RABIN(p, sp) != CRYPTO_ISPRIME);
+
+ //Generate q
+ q->Length = (RSA_KeyByteLen + 7) / 8;
+ do {
+ SDRM_RNG_X931((cc_u8 *)Seed, RSA_KeyByteLen * 4, (cc_u8*)q->pData);
+ q->pData[0] |= 1L;
+ q->pData[q->Length - 1] &= ~((-1L) << t1);
+ q->pData[q->Length - 1] |= (1L << t1);
+ } while(SDRM_BN_MILLER_RABIN(q, sp) != CRYPTO_ISPRIME);
+
+ //temp1 = (p - 1), temp2 = (q - 1)
+ SDRM_BN_Sub(temp1, p, BN_One);
+ SDRM_BN_Sub(temp2, q, BN_One);
+
+ //evaluate n and pi
+ //n = p * q, pi = (p - 1) * (q - 1)
+ SDRM_BN_Mul(crt->ctx->rsactx->n, p, q);
+ SDRM_BN_Mul(pi, temp1, temp2);
+
+ //check N for e
+ SDRM_OS2BN(RSA_E_Data, RSA_E_Len, e);
+ if ((SDRM_BN_CheckRelativelyPrime(e, pi) != CRYPTO_ISPRIME) || (SDRM_BN_Cmp(e, pi) >= 0))
+ {
+ goto GEN_RND;
+ }
+
+ if (SDRM_BN_ModInv(crt->ctx->rsactx->d, e, pi) != CRYPTO_SUCCESS)
+ {
+ goto GEN_RND;
+ }
+
+ crt->ctx->rsactx->pm = PaddingMethod;
+
+ if (RSA_N_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->n, RSA_KeyByteLen, RSA_N_Data);
+ }
+
+ if (RSA_N_Len != NULL)
+ {
+ *RSA_N_Len = RSA_KeyByteLen;
+ }
+
+ if (RSA_D_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->d, RSA_KeyByteLen, RSA_D_Data);
+ }
+
+ if (RSA_D_Len != NULL)
+ {
+ *RSA_D_Len = RSA_KeyByteLen;
+ }
+
+ free(pbBuf);
+
+ crt->ctx->rsactx->crt_operation = 0;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_GenerateDwithPQE(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ * cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ * cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ * cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ * cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ * cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+ * @brief generate D with specfied p, q, d mod (p-1), d mod (q-1) and e
+ *
+ * @param crt [in/out]rsa context
+ * @param PaddingMethod [in]padding method
+ * @param RSA_E_Data [in]e value
+ * @param RSA_E_Len [in]byte-length of e
+ * @param RSA_P_Data [in]n value
+ * @param RSA_P_Len [in]byte-length of n
+ * @param RSA_Q_Data [in]d value
+ * @param RSA_Q_Len [in]byte-length of d
+ * @param RSA_D_P_Data [in]d mod (p-1) value
+ * @param RSA_D_P_Len [in]byte-length of d mod (p-1)
+ * @param RSA_D_Q_Data [in]d mod (q-1) value
+ * @param RSA_D_Q_Len [in]byte-length of d mod (q-1)
+ * @param RSA_D_Data [out]d value
+ * @param RSA_D_Len [out]byte-length of d
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_GenerateDwithPQE(CryptoCoreContainer *crt, cc_u32 PaddingMethod,
+ cc_u8* RSA_E_Data, cc_u32 RSA_E_Len,
+ cc_u8* RSA_P_Data, cc_u32 RSA_P_Len,
+ cc_u8* RSA_Q_Data, cc_u32 RSA_Q_Len,
+ cc_u8* RSA_N_Data, cc_u32 *RSA_N_Len,
+ cc_u8* RSA_D_Data, cc_u32 *RSA_D_Len)
+{
+ SDRM_BIG_NUM *p, *q, *pi, *e, *temp1, *temp2;
+ cc_u32 RSA_KeyByteLen = 0;
+ int sp;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 5);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ p = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ q = SDRM_BN_Alloc((cc_u8*)p + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ pi = SDRM_BN_Alloc((cc_u8*)q + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)pi + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ e = crt->ctx->rsactx->e;
+
+ //set security parameter for miller-rabin probabilistic primality test
+ if (RSA_KeyByteLen >= 256)
+ {
+ sp = 3;
+ }
+ else if (RSA_KeyByteLen >= 128)
+ {
+ sp = 5;
+ }
+ else if (RSA_KeyByteLen >= 30)
+ {
+ sp = 15;
+ }
+ else
+ {
+ sp = 30;
+ }
+
+ SDRM_OS2BN((cc_u8*)RSA_P_Data, RSA_P_Len, p);
+ if (SDRM_BN_MILLER_RABIN(p, sp) != CRYPTO_ISPRIME)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ SDRM_OS2BN((cc_u8*)RSA_Q_Data, RSA_Q_Len, q);
+ if (SDRM_BN_MILLER_RABIN(q, sp) != CRYPTO_ISPRIME)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //temp1 = (p - 1), temp2 = (q - 1)
+ SDRM_BN_Sub(temp1, p, BN_One);
+ SDRM_BN_Sub(temp2, q, BN_One);
+
+ //evaluate n and pi
+ //n = p * q, pi = (p - 1) * (q - 1)
+ SDRM_BN_Mul(crt->ctx->rsactx->n, p, q);
+ SDRM_BN_Mul(pi, temp1, temp2);
+
+ //check N for e
+ SDRM_OS2BN(RSA_E_Data, RSA_E_Len, e);
+ if ((SDRM_BN_CheckRelativelyPrime(e, pi) != CRYPTO_ISPRIME) || (SDRM_BN_Cmp(e, pi) >= 0))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (SDRM_BN_ModInv(crt->ctx->rsactx->d, e, pi) != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->rsactx->pm = PaddingMethod;
+
+ if (RSA_N_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->n, RSA_KeyByteLen, RSA_N_Data);
+ }
+
+ if (RSA_N_Len != NULL)
+ {
+ *RSA_N_Len = RSA_KeyByteLen;
+ }
+
+ if (RSA_D_Data != NULL)
+ {
+ SDRM_I2OSP(crt->ctx->rsactx->d, RSA_KeyByteLen, RSA_D_Data);
+ }
+
+ if (RSA_D_Len != NULL)
+ {
+ *RSA_D_Len = RSA_KeyByteLen;
+ }
+
+ free(pbBuf);
+
+ crt->ctx->rsactx->crt_operation = 0;
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_encrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+ * @brief RSA Encryption
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to encrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]encrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_encrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+{
+ SDRM_BIG_NUM *BN_pMsg, *BN_Src, *BN_Cipher;
+ int retVal, cipherLen;
+ cc_u32 RSA_KeyByteLen = 0;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (in == NULL) || (out == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ if (inLen > RSA_KeyByteLen)
+ {
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 3);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_pMsg = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ BN_Src = SDRM_BN_Alloc((cc_u8*)BN_pMsg + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ BN_Cipher = SDRM_BN_Alloc((cc_u8*)BN_Src + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ SDRM_OS2BN(in, inLen, BN_Src);
+
+ //Padding the message
+ switch(SDRM_LOW_HALF(crt->ctx->rsactx->pm))
+ {
+ case ID_RSAES_PKCS15 :
+ retVal = SDRM_Padding_Rsaes_pkcs15(BN_pMsg, BN_Src, SDRM_ENPADDING, RSA_KeyByteLen);
+ break;
+ case ID_RSAES_OAEP :
+ retVal = SDRM_Padding_Rsaes_oaep(BN_pMsg, BN_Src, SDRM_ENPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), RSA_KeyByteLen);
+ break;
+ case ID_NO_PADDING :
+ SDRM_BN_Copy(BN_pMsg, BN_Src);
+ retVal = CRYPTO_SUCCESS;
+ break;
+ default :
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+// SDRM_PrintBN("ENPADDED Text : ", BN_pMsg);
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ //RSA Encryption by modular exponent
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(BN_Cipher, BN_pMsg, crt->ctx->rsactx->e, crt->ctx->rsactx->n);
+#else
+ retVal = SDRM_BN_ModExp(BN_Cipher, BN_pMsg, crt->ctx->rsactx->e, crt->ctx->rsactx->n);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ SDRM_BN_GETBYTELEN(BN_Cipher, cipherLen);
+
+ SDRM_I2OSP(BN_Cipher, cipherLen, out);
+
+ if (outLen != NULL)
+ {
+ *outLen = cipherLen;
+ }
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_decrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+ * @brief RSA Decryption
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to decrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]decrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_decrypt(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+{
+ SDRM_BIG_NUM *BN_dMsg, *BN_Plain, *BN_Src;
+ int retVal, plainLen;
+ cc_u32 RSA_KeyByteLen = 0;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (in == NULL) || (out == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ if (inLen > RSA_KeyByteLen)
+ {
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 3);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_dMsg = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ BN_Src = SDRM_BN_Alloc((cc_u8*)BN_dMsg + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ BN_Plain = SDRM_BN_Alloc((cc_u8*)BN_Src + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ SDRM_OS2BN(in, inLen, BN_Src);
+
+ //RSA Decryption by modular exponent
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(BN_dMsg, BN_Src, crt->ctx->rsactx->d, crt->ctx->rsactx->n);
+#else
+ retVal = SDRM_BN_ModExp(BN_dMsg, BN_Src, crt->ctx->rsactx->d, crt->ctx->rsactx->n);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ //Remove Padding from message
+ switch(SDRM_LOW_HALF(crt->ctx->rsactx->pm))
+ {
+ case ID_RSAES_PKCS15 :
+ retVal = SDRM_Padding_Rsaes_pkcs15(BN_Plain, BN_dMsg, SDRM_DEPADDING, RSA_KeyByteLen);
+ break;
+ case ID_RSAES_OAEP :
+ retVal = SDRM_Padding_Rsaes_oaep(BN_Plain, BN_dMsg, SDRM_DEPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), RSA_KeyByteLen);
+ break;
+ case ID_NO_PADDING :
+ SDRM_BN_Copy(BN_Plain, BN_dMsg);
+ retVal = CRYPTO_SUCCESS;
+ break;
+ default :
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ SDRM_BN_GETBYTELEN(BN_Plain, plainLen);
+
+ SDRM_I2OSP(BN_Plain, plainLen, out);
+
+ if (outLen != NULL)
+ {
+ *outLen = plainLen;
+ }
+
+// SDRM_PrintBN("DEPADDED Text : ", BN_Plain);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_decryptByCRT(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+ * @brief RSA Decryption using CRT
+ *
+ * @param crt [in]rsa context
+ * @param in [in]message to decrypt
+ * @param inLen [in]byte-length of in
+ * @param out [out]decrypted message
+ * @param outLen [out]byte-length of out
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ * \n CRYPTO_NULL_POINTER if an argument is a null pointer
+ * \n CRYPTO_MEMORY_ALLOC_FAIL if memory allocation is failed
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_decryptByCRT(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+{
+ SDRM_BIG_NUM *BN_dMsg, *BN_Plain, *BN_Src;
+ int retVal, plainLen;
+ cc_u32 RSA_KeyByteLen = 0;
+ SDRM_BIG_NUM *pi, *temp1, *temp2, *m1, *m2, *h;
+ cc_u8 *pbBuf = NULL;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (in == NULL) || (out == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (crt->ctx->rsactx->crt_operation != 1)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ if (inLen > RSA_KeyByteLen)
+ {
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 9);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_dMsg = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ BN_Src = SDRM_BN_Alloc((cc_u8*)BN_dMsg + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ BN_Plain = SDRM_BN_Alloc((cc_u8*)BN_Src + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ pi = SDRM_BN_Alloc((cc_u8*)BN_Plain + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp1 = SDRM_BN_Alloc((cc_u8*)pi + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ temp2 = SDRM_BN_Alloc((cc_u8*)temp1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ m1 = SDRM_BN_Alloc((cc_u8*)temp2 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ m2 = SDRM_BN_Alloc((cc_u8*)m1 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+ h = SDRM_BN_Alloc((cc_u8*)m2 + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ SDRM_OS2BN(in, inLen, BN_Src);
+
+ //RSA Decryption by CRT
+ /*
+ dp = d mod (p - 1)
+ dq = d mod (q - 1)
+ qInv = (1/q) mod p where p > q
+ =>
+ m1 = c^dp mod p
+ m2 = c^dq mod q
+ h = qInv(m1 - m2) mod p if (m1 >= m2) or h = qInv(m1 + p - m2) mod p if (m1 < m2)
+ m = m2 + hq
+ */
+
+ // Prepare variables
+ // 1. dP = d mod (p - 1)
+ // dP is already set when SDRM_RSA_setNEDPQ
+
+ // 2. dQ = d mod (q - 1)
+ // dQ is already set when SDRM_RSA_setNEDPQ
+
+ // 3. qInv = (1/q) mod p where p > q
+ // qInv is already set when SDRM_RSA_setNEDPQ
+
+ // Computation
+ // 4. m1 = c^dP mod p
+ if(SDRM_BN_ModExp2(m1, BN_Src, crt->ctx->rsactx->dmodp1, crt->ctx->rsactx->p))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ // 5. m2 = c^dQ mod q
+ if(SDRM_BN_ModExp2(m2, BN_Src, crt->ctx->rsactx->dmodq1, crt->ctx->rsactx->q))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ // 6. h = qInv(m1 - m2) mod p if (m1 >= m2) or h = qInv(m1 + p - m2) mod p if (m1 < m2)
+ if(SDRM_BN_Cmp(m1, m2) < 0)
+ {
+ if(SDRM_BN_Add(m1, m1, crt->ctx->rsactx->p))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ }
+
+ if(SDRM_BN_Sub(m1, m1, m2))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if(SDRM_BN_ModMul(h, crt->ctx->rsactx->iqmodp, m1, crt->ctx->rsactx->p))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ // 7. m = m2 + hq
+ if(SDRM_BN_Mul(h, h, crt->ctx->rsactx->q))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if(SDRM_BN_Add(BN_dMsg, m2, h))
+ {
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+// SDRM_PrintBN("OAEP Text : ", BN_dMsg);
+
+ //Remove Padding from message
+ switch(SDRM_LOW_HALF(crt->ctx->rsactx->pm))
+ {
+ case ID_RSAES_PKCS15 :
+ retVal = SDRM_Padding_Rsaes_pkcs15(BN_Plain, BN_dMsg, SDRM_DEPADDING, RSA_KeyByteLen);
+ break;
+ case ID_RSAES_OAEP :
+ retVal = SDRM_Padding_Rsaes_oaep(BN_Plain, BN_dMsg, SDRM_DEPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), RSA_KeyByteLen);
+ break;
+ case ID_NO_PADDING :
+ SDRM_BN_Copy(BN_Plain, BN_dMsg);
+ retVal = CRYPTO_SUCCESS;
+ break;
+ default :
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ SDRM_BN_GETBYTELEN(BN_Plain, plainLen);
+
+ SDRM_I2OSP(BN_Plain, plainLen, out);
+
+ if (outLen != NULL)
+ {
+ *outLen = plainLen;
+ }
+
+// SDRM_PrintBN("DEPADDED Text : ", BN_Plain);
+
+ free(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_RSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [out]generated signature
+ * @param signLen [out]byte-length of signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_sign(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 *signLen)
+{
+ SDRM_BIG_NUM *BN_pMsg, *BN_Sign;
+ cc_u32 SignatureLength;
+ int retVal;
+ cc_u32 RSA_KeyByteLen = 0;
+ cc_u8 *pbBuf = NULL;
+ cc_u32 emBits;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (hash == NULL) || (signature == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ if (hashLen > RSA_KeyByteLen)
+ {
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 3);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_pMsg = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ BN_Sign = SDRM_BN_Alloc((cc_u8*)BN_pMsg + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ //Msg Padding
+ switch(SDRM_LOW_HALF(crt->ctx->rsactx->pm))
+ {
+ case ID_RSASSA_PKCS15 :
+ SDRM_Padding_Rsassa_pkcs15(BN_pMsg, NULL, hash, SDRM_ENPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), RSA_KeyByteLen);
+ break;
+ case ID_RSASSA_PSS :
+ SDRM_BN_GETBITLEN(crt->ctx->rsactx->n, emBits);
+ SDRM_Padding_Rsassa_pss(BN_pMsg, NULL, hash, emBits, SDRM_ENPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), SDRM_CheckByteUINT32(crt->ctx->rsactx->n->pData, RSA_KeyByteLen - 1));
+ break;
+ case ID_NO_PADDING :
+ SDRM_OS2BN(hash, hashLen, BN_pMsg);
+ break;
+ default :
+ free(pbBuf);
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+// SDRM_PrintBN("ENPADDED Msg : ", BN_pMsg);
+
+ //RSA Signature by modular exponent
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(BN_Sign, BN_pMsg, crt->ctx->rsactx->d, crt->ctx->rsactx->n);
+#else
+ retVal = SDRM_BN_ModExp(BN_Sign, BN_pMsg, crt->ctx->rsactx->d, crt->ctx->rsactx->n);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ SDRM_BN_GETBYTELEN(BN_Sign, SignatureLength);
+ SDRM_I2OSP(BN_Sign, SignatureLength, signature);
+
+ if (signLen != NULL)
+ {
+ *signLen = SignatureLength;
+ }
+
+ free(pbBuf);
+
+ return retVal;
+}
+
+/*
+ * @fn int SDRM_RSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+ * @brief generate signature for given value
+ *
+ * @param crt [in]crypto env structure
+ * @param hash [in]hash value
+ * @param hashLen [in]byte-length of hash
+ * @param signature [in]signature
+ * @param signLen [in]byte-length of signature
+ * @param result [in]result of verifying signature
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if the length of signature is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RSA_verify(CryptoCoreContainer *crt, cc_u8 *hash, cc_u32 hashLen, cc_u8 *signature, cc_u32 signLen, int *result)
+{
+ SDRM_BIG_NUM *BN_dMsg, *BN_Sign;
+ int retVal;
+ cc_u32 RSA_KeyByteLen = 0;
+ cc_u8 *pbBuf = NULL;
+ cc_u32 emBits;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rsactx == NULL) || (hash == NULL) || (signature == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ RSA_KeyByteLen = crt->ctx->rsactx->k;
+ if (hashLen > RSA_KeyByteLen)
+ {
+ return CRYPTO_MSG_TOO_LONG;
+ }
+
+ pbBuf = (cc_u8*)malloc(SDRM_RSA_ALLOC_SIZE * 3);
+ if (pbBuf == NULL)
+ {
+ return CRYPTO_MEMORY_ALLOC_FAIL;
+ }
+
+ BN_dMsg = SDRM_BN_Alloc((cc_u8*)pbBuf, SDRM_RSA_BN_BUFSIZE);
+ BN_Sign = SDRM_BN_Alloc((cc_u8*)BN_dMsg + SDRM_RSA_ALLOC_SIZE, SDRM_RSA_BN_BUFSIZE);
+
+ SDRM_OS2BN(signature, signLen, BN_Sign);
+// SDRM_PrintBN("Generated Sign : ", BN_Sign);
+
+ //RSA Verification by modular exponent
+#ifndef _OP64_NOTSUPPORTED
+ retVal = SDRM_BN_ModExp2(BN_dMsg, BN_Sign, crt->ctx->rsactx->e, crt->ctx->rsactx->n);
+#else
+ retVal = SDRM_BN_ModExp(BN_dMsg, BN_Sign, crt->ctx->rsactx->e, crt->ctx->rsactx->n);
+#endif //_OP64_NOTSUPPORTED
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ free(pbBuf);
+ return retVal;
+ }
+
+ //Msg Depadding
+ switch(SDRM_LOW_HALF(crt->ctx->rsactx->pm))
+ {
+ case ID_RSASSA_PKCS15 :
+ *result = SDRM_Padding_Rsassa_pkcs15(NULL, BN_dMsg, hash, SDRM_DEPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), RSA_KeyByteLen);
+ break;
+ case ID_RSASSA_PSS :
+ SDRM_BN_GETBITLEN(crt->ctx->rsactx->n, emBits);
+ *result = SDRM_Padding_Rsassa_pss(NULL, BN_dMsg, hash, emBits, SDRM_DEPADDING, SDRM_HIGH_HALF(crt->ctx->rsactx->pm), SDRM_CheckByteUINT32(crt->ctx->rsactx->n->pData, RSA_KeyByteLen - 1));
+ break;
+ case ID_NO_PADDING :
+ SDRM_OS2BN(hash, hashLen, BN_Sign);
+ if (SDRM_BN_Cmp(BN_Sign, BN_dMsg) == 0)
+ {
+ *result = CRYPTO_VALID_SIGN;
+ }
+ else
+ {
+ *result = CRYPTO_INVALID_SIGN;
+ }
+
+ default :
+ break;
+ }
+
+ SDRM_BN_FREE(pbBuf);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
+
diff --git a/SPC/Src/middle/symmetric.c b/SPC/Src/middle/symmetric.c
new file mode 100755
index 0000000..e00eb28
--- /dev/null
+++ b/SPC/Src/middle/symmetric.c
@@ -0,0 +1,1681 @@
+/**
+ * \file symmetric.c
+ * @brief API for symmetric encryption
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon, Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/11/07
+ */
+
+////////////////////////////////////////////////////////////////////////////
+// Include Header Files
+////////////////////////////////////////////////////////////////////////////
+#include "symmetric.h"
+#include "moo.h"
+#include "rc4.h"
+#include "snow2.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_getEncRoundKey
+ * @brief get scheduled key for encryption
+ *
+ * @param Algorithm [in]cipher algorithm
+ * @param UserKey [in]user key
+ * @param RoundKey [out]round key
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_getEncRoundKey(int Algorithm, cc_u8* UserKey, cc_u8* RoundKey)
+{
+ if ((UserKey == NULL) || (RoundKey == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ switch (Algorithm)
+ {
+ case ID_AES128 :
+ SDRM_rijndaelKeySetupEnc((cc_u32*)(void*)RoundKey, UserKey, 128);
+ return CRYPTO_SUCCESS;
+ case ID_AES192 :
+ SDRM_rijndaelKeySetupEnc((cc_u32*)(void*)RoundKey, UserKey, 192);
+ return CRYPTO_SUCCESS;
+ case ID_AES256 :
+ SDRM_rijndaelKeySetupEnc((cc_u32*)(void*)RoundKey, UserKey, 256);
+ return CRYPTO_SUCCESS;
+ case ID_DES :
+ SDRM_DES_KeySched(RoundKey, UserKey, 0, 1);
+ return CRYPTO_SUCCESS;
+ case ID_TDES_EDE2 :
+ SDRM_TDES_KeySched(RoundKey, UserKey, 16, 1);
+ return CRYPTO_SUCCESS;
+ case ID_TDES_EDE3 :
+ SDRM_TDES_KeySched(RoundKey, UserKey, 24, 1);
+ return CRYPTO_SUCCESS;
+ default :
+ break;
+ }
+
+ return CRYPTO_INVALID_ARGUMENT;
+}
+
+/*
+ * @fn SDRM_getDecRoundKey
+ * @brief get scheduled key for decryption
+ *
+ * @param Algorithm [in]cipher algorithm
+ * @param UserKey [in]user key
+ * @param RoundKey [out]round key
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_getDecRoundKey(int Algorithm, cc_u8* UserKey, cc_u8* RoundKey)
+{
+ if ((UserKey == NULL) || (RoundKey == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ switch (Algorithm)
+ {
+ case ID_AES128 :
+ SDRM_rijndaelKeySetupDec((cc_u32*)(void*)RoundKey, UserKey, 128);
+ return CRYPTO_SUCCESS;
+ case ID_AES192 :
+ SDRM_rijndaelKeySetupDec((cc_u32*)(void*)RoundKey, UserKey, 192);
+ return CRYPTO_SUCCESS;
+ case ID_AES256 :
+ SDRM_rijndaelKeySetupDec((cc_u32*)(void*)RoundKey, UserKey, 256);
+ return CRYPTO_SUCCESS;
+ case ID_DES :
+ SDRM_DES_KeySched(RoundKey, UserKey, 15, (cc_u32)-1);
+ return CRYPTO_SUCCESS;
+ case ID_TDES_EDE2 :
+ SDRM_TDES_KeySched(RoundKey, UserKey, 16, (cc_u32)-1);
+ return CRYPTO_SUCCESS;
+ case ID_TDES_EDE3 :
+ SDRM_TDES_KeySched(RoundKey, UserKey, 24, (cc_u32)-1);
+ return CRYPTO_SUCCESS;
+ default :
+ break;
+ }
+
+ return CRYPTO_INVALID_ARGUMENT;
+}
+
+/*
+ * @fn SDRM_AES_init
+ * @brief intialize crypt context for aes
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->aesctx == NULL) || (key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (!(((mode >= 1111) && (mode <= 1115)) || ((mode >= 1121) && (mode <= 1125))))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (!((crt->alg == ID_AES128) && (keysize == 16)) &&
+ !((crt->alg == ID_AES192) && (keysize == 24)) &&
+ !((crt->alg == ID_AES256) && (keysize == 32)))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if ((crt->alg != ID_AES128) && (crt->alg != ID_AES192) && (crt->alg != ID_AES256))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if ((PADDING != 0) && (PADDING != ID_PKCS5) && (PADDING != ID_SSL_PADDING) && (PADDING != ID_ZERO_PADDING) && (PADDING != ID_NO_PADDING))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->aesctx->moo = mode;
+
+ crt->ctx->aesctx->padding = PADDING;
+
+ if (mode != ID_DEC_ECB && mode != ID_DEC_CBC)
+ {
+ SDRM_getEncRoundKey(crt->alg, key, crt->ctx->aesctx->RoundKey);
+ }
+ else
+ {
+ SDRM_getDecRoundKey(crt->alg, key, crt->ctx->aesctx->RoundKey);
+ }
+
+ if (IV)
+ {
+ memcpy(crt->ctx->aesctx->IV, IV, SDRM_AES_BLOCK_SIZ);
+ }
+ else
+ {
+ memset(crt->ctx->aesctx->IV, 0x00, SDRM_AES_BLOCK_SIZ);
+ }
+
+ crt->ctx->aesctx->BlockLen = 0;
+
+ GET_UINT32(crt->ctx->aesctx->CTR_Count, crt->ctx->aesctx->IV + 12, 0);
+
+ return CRYPTO_SUCCESS;
+
+}
+
+/*
+ * @fn SDRM_AES_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int i, Temp;
+ int retVal, BlockLen;
+ cc_u8 *Block;
+ cc_u32 tempLen = 0;
+
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->aesctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->aesctx->Block;
+ BlockLen = crt->ctx->aesctx->BlockLen;
+
+ if ((TextLen + BlockLen) < SDRM_AES_BLOCK_SIZ)
+ {
+ memcpy(Block + BlockLen, Text, TextLen);
+ crt->ctx->aesctx->BlockLen += TextLen;
+ return CRYPTO_SUCCESS;
+ }
+
+ if (BlockLen)
+ {
+ memcpy(Block + BlockLen, Text, SDRM_AES_BLOCK_SIZ - BlockLen);
+
+ switch(crt->ctx->aesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(crt->alg, output, Block, crt->ctx->aesctx->RoundKey);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ Temp = TextLen - SDRM_AES_BLOCK_SIZ + 1;
+ for (i = (SDRM_AES_BLOCK_SIZ - BlockLen) & 0x0f; i < Temp; i += SDRM_AES_BLOCK_SIZ)
+ {
+ switch(crt->ctx->aesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(crt->alg, output + tempLen, Text + i, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ tempLen += SDRM_AES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ crt->ctx->aesctx->BlockLen = (SDRM_AES_BLOCK_SIZ + TextLen - i) & 0x0f;
+ memcpy(Block, Text + TextLen - crt->ctx->aesctx->BlockLen, crt->ctx->aesctx->BlockLen);
+
+ if (outputLen != 0)
+ {
+ *outputLen = tempLen;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_AES_final
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_AES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int retVal = CRYPTO_SUCCESS;
+ cc_u8 *Block, PADDING[16];
+ cc_u32 BlockLen;
+ cc_u8 t;
+
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->aesctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->aesctx->Block;
+ BlockLen = crt->ctx->aesctx->BlockLen;
+
+
+ if (crt->ctx->aesctx->moo >= ID_DEC_ECB)
+ {
+ goto DECRYPTION;
+ }
+
+//ENCRYPTION:
+ if (inputLen != 0)
+ {
+ unsigned int temp;
+ retVal = SDRM_AES_process(crt, input, inputLen, output, &temp);
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ retVal = SDRM_AES_final(crt, NULL, 0, output + temp, outputLen);
+
+ if (outputLen)
+ {
+ *outputLen += temp;
+ }
+
+ return retVal;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_AES_BLOCK_SIZ;
+ }
+
+ //padding
+ switch(crt->ctx->aesctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ memset(Block + BlockLen, SDRM_AES_BLOCK_SIZ - BlockLen, SDRM_AES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_SSL_PADDING :
+ memset(Block + BlockLen, SDRM_AES_BLOCK_SIZ - BlockLen - 1, SDRM_AES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_ZERO_PADDING :
+ memset(Block + BlockLen, 0x00, SDRM_AES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_NO_PADDING :
+ if (BlockLen == 0)
+ {
+ if (outputLen)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_SUCCESS;
+ }
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //encryption
+ switch(crt->ctx->aesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey);
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(crt->alg, output, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ memcpy(output, Block, BlockLen);
+ if(outputLen != NULL)
+ {
+ *outputLen = BlockLen;
+ }
+ break;
+ default :
+ retVal = CRYPTO_INVALID_ARGUMENT;
+ break;
+ }
+
+ return retVal;
+
+DECRYPTION:
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+
+ if ((inputLen == 0) && (crt->ctx->aesctx->padding == ID_NO_PADDING) && (crt->ctx->aesctx->moo != ID_DEC_CTR))
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if (((BlockLen + inputLen) != SDRM_AES_BLOCK_SIZ) && (crt->ctx->aesctx->moo != ID_DEC_CTR))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (inputLen != 0)
+ {
+ memcpy(Block + BlockLen, input, inputLen);
+ }
+
+ switch(crt->ctx->aesctx->moo)
+ {
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey);
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV);
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(crt->alg, Block, Block, crt->ctx->aesctx->RoundKey, crt->ctx->aesctx->IV, crt->ctx->aesctx->CTR_Count++);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ //de-padding
+
+ t = Block[SDRM_AES_BLOCK_SIZ - 1];
+
+ switch(crt->ctx->aesctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ if ((t > SDRM_AES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t, t);
+ break;
+ case ID_SSL_PADDING :
+ ++t;
+ if ((t > SDRM_AES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t - 1, t);
+ break;
+ case ID_ZERO_PADDING :
+ {
+ cc_u32 tmpLen;
+ tmpLen = SDRM_AES_BLOCK_SIZ;
+ while((tmpLen != 0x00) && (Block[tmpLen - 1] == 0x00))
+ {
+ tmpLen--;
+ }
+
+ memcpy(output, Block, tmpLen);
+
+ if (outputLen != NULL)
+ {
+ *outputLen = tmpLen;
+ }
+ }
+ return CRYPTO_SUCCESS;
+ case ID_NO_PADDING :
+ {
+ cc_u32 tmpLen;
+ tmpLen = SDRM_AES_BLOCK_SIZ;
+
+ if (crt->ctx->aesctx->moo == ID_DEC_CTR)
+ {
+ tmpLen = BlockLen + inputLen;
+ }
+ else
+ {
+ tmpLen = SDRM_AES_BLOCK_SIZ;
+ }
+
+ memcpy(output, Block, tmpLen);
+
+ if (outputLen != NULL)
+ {
+ *outputLen = tmpLen;
+ }
+ }
+ return CRYPTO_SUCCESS;
+ default :
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (memcmp(PADDING, Block + SDRM_AES_BLOCK_SIZ - t, t) != 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ memcpy(output, Block, SDRM_AES_BLOCK_SIZ -t);
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_AES_BLOCK_SIZ - t;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_RC4_init
+ * @brief intialize crypt context for RC4
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method, not needed
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector, not needed
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rc4ctx == NULL) || (key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (keysize > 32)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ SDRM_RC4_Setup(crt->ctx->rc4ctx, key, keysize);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_RC4_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param in [in]message block
+ * @param inLen [in]byte-length of Text
+ * @param out [out]processed message
+ * @param outLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_RC4_process(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->rc4ctx == NULL) || (in == NULL) || (out == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+
+ SDRM_RC4_PRNG(crt->ctx->rc4ctx, in, inLen, out);
+
+ if (outLen != NULL)
+ {
+ *outLen = inLen;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_SNOW2_init
+ * @brief intialize crypt context for SNOW2
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method, not needed
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->snow2ctx == NULL) || (key == NULL) || (IV == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if ((keysize != 16) && (keysize != 32))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ SDRM_SNOW2_Setup(crt->ctx->snow2ctx, key, keysize, IV);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_SNOW2_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param in [in]message block
+ * @param inLen [in]byte-length of Text
+ * @param out [out]processed message
+ * @param outLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_SNOW2_process(CryptoCoreContainer *crt, cc_u8 *in, cc_u32 inLen, cc_u8 *out, cc_u32 *outLen)
+{
+ cc_u32 i, j, BlockLen, rpt, loc;
+ cc_u32 keyStream64[16], keyStream;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->snow2ctx == NULL) || (in == NULL) || (out == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if ((inLen & 0x03) != 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ BlockLen = inLen / 64;
+
+ if (crt->ctx->snow2ctx->endian == CRYPTO_LITTLE_ENDIAN)
+ { //little endian machine
+ for (i = 0; i < BlockLen; i++)
+ {
+ SDRM_SNOW2_getKeyStream64(crt->ctx->snow2ctx, keyStream64);
+
+ for (j = 0; j < 16; j++)
+ {
+ loc = i * 64 + j * 4;
+ out[loc ] = (cc_u8)(in[loc ] ^ ((keyStream64[j] >> 24) & 0xff));
+ out[loc + 1] = (cc_u8)(in[loc + 1] ^ ((keyStream64[j] >> 16) & 0xff));
+ out[loc + 2] = (cc_u8)(in[loc + 2] ^ ((keyStream64[j] >> 8) & 0xff));
+ out[loc + 3] = (cc_u8)(in[loc + 3] ^ ((keyStream64[j] ) & 0xff));
+ }
+ }
+ }
+ else
+ { //big endian machine
+ for (i = 0; i < BlockLen; i++)
+ {
+ SDRM_SNOW2_getKeyStream64(crt->ctx->snow2ctx, keyStream64);
+
+ for (j = 0; j < 16; j++)
+ {
+ ((cc_u32*)(void*)out)[j] = ((cc_u32*)(void*)in)[j] ^ keyStream64[j];
+ }
+ }
+ }
+
+ in += BlockLen * 64;
+ out += BlockLen * 64;
+
+ rpt = (inLen - (BlockLen * 64)) / 4;
+
+ if (crt->ctx->snow2ctx->endian == CRYPTO_LITTLE_ENDIAN)
+ { //little endian machine
+ for (i = 0; i < rpt; i++)
+ {
+ SDRM_SNOW2_getKeyStream(crt->ctx->snow2ctx, &keyStream);
+ loc = i * 4;
+ out[loc ] = (cc_u8)(in[loc ] ^ ((keyStream >> 24) & 0xff));
+ out[loc + 1] = (cc_u8)(in[loc + 1] ^ ((keyStream >> 16) & 0xff));
+ out[loc + 2] = (cc_u8)(in[loc + 2] ^ ((keyStream >> 8) & 0xff));
+ out[loc + 3] = (cc_u8)(in[loc + 3] ^ ((keyStream ) & 0xff));
+ }
+ }
+ else
+ { //big endian machine
+ for (i = 0; i < rpt; i++)
+ {
+ SDRM_SNOW2_getKeyStream(crt->ctx->snow2ctx, &keyStream);
+ ((cc_u32*)(void*)out)[i] = ((cc_u32*)(void*)in)[i] ^ keyStream;
+ }
+ }
+
+ if (outLen != NULL)
+ {
+ *outLen = inLen;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES_init
+ * @brief intialize crypt context for des
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->desctx == NULL) || (key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if ((keysize != 8) || !(((mode >= 1111) && (mode <= 1115)) || ((mode >= 1121) && (mode <= 1125))))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->desctx->moo = mode;
+
+ if ((PADDING != 0) && (PADDING != ID_PKCS5) && (PADDING != ID_SSL_PADDING) && (PADDING != ID_ZERO_PADDING) && (PADDING != ID_NO_PADDING))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->desctx->padding = PADDING;
+
+
+ if (mode != ID_DEC_ECB && mode != ID_DEC_CBC)
+ {
+ SDRM_getEncRoundKey(ID_DES, key, (cc_u8*)(crt->ctx->desctx->RoundKey));
+ }
+ else
+ {
+ SDRM_getDecRoundKey(ID_DES, key, (cc_u8*)(crt->ctx->desctx->RoundKey));
+ }
+
+ crt->ctx->desctx->BlockLen = 0;
+ crt->ctx->desctx->CTR_Count = 0;
+
+ memcpy(crt->ctx->desctx->UserKey, key, SDRM_DES_BLOCK_SIZ);
+
+ if (IV)
+ {
+ memcpy(crt->ctx->desctx->IV, IV, SDRM_DES_BLOCK_SIZ);
+ }
+ else
+ {
+ memset(crt->ctx->desctx->IV, 0x00, SDRM_DES_BLOCK_SIZ);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES_process
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int i, Temp;
+ int retVal, BlockLen;
+ cc_u8 *Block;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->desctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->desctx->Block;
+ BlockLen = crt->ctx->desctx->BlockLen;
+
+ *outputLen = 0;
+
+ if ((TextLen + BlockLen) < SDRM_DES_BLOCK_SIZ)
+ {
+ memcpy(Block + BlockLen, Text, TextLen);
+ crt->ctx->desctx->BlockLen += TextLen;
+ return CRYPTO_SUCCESS;
+ }
+
+ if (BlockLen)
+ {
+ memcpy(Block + BlockLen, Text, SDRM_DES_BLOCK_SIZ - BlockLen);
+
+ switch(crt->ctx->desctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ Temp = TextLen + BlockLen - SDRM_DES_BLOCK_SIZ + 1;
+ for (i = (SDRM_DES_BLOCK_SIZ - BlockLen) & 0x07; i < Temp; i += SDRM_DES_BLOCK_SIZ)
+ {
+ switch(crt->ctx->desctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_DES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ crt->ctx->desctx->BlockLen = (SDRM_DES_BLOCK_SIZ + TextLen - i) & 0x07;
+ memcpy(Block, Text + TextLen - crt->ctx->desctx->BlockLen, crt->ctx->desctx->BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_DES_final
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_DES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int retVal = CRYPTO_SUCCESS;
+ cc_u8 *Block, PADDING[16];
+ cc_u32 BlockLen, t;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->desctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->desctx->Block;
+ BlockLen = crt->ctx->desctx->BlockLen;
+
+ if (crt->ctx->desctx->moo >= ID_DEC_ECB)
+ {
+ goto DECRYPTION;
+ }
+
+//ENCRYPTION:
+ if (inputLen != 0)
+ {
+ retVal = SDRM_DES_process(crt, input, inputLen, output, outputLen);
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ retVal = SDRM_DES_final(crt, NULL, 0, output + *outputLen, &t);
+ *outputLen += t;
+
+ return retVal;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_DES_BLOCK_SIZ;
+ }
+
+ //padding
+ switch(crt->ctx->desctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ memset(Block + BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_SSL_PADDING :
+ memset(Block + BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen - 1, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_ZERO_PADDING :
+ memset(Block + BlockLen, 0x00, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_NO_PADDING :
+ if (BlockLen == 0)
+ {
+ if (outputLen)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_SUCCESS;
+ }
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+
+ //encryption
+ switch(crt->ctx->desctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey);
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ break;
+ default :
+ retVal = CRYPTO_INVALID_ARGUMENT;
+ break;
+ }
+
+ return retVal;
+
+DECRYPTION:
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+
+ if ((inputLen == 0) && (crt->ctx->desctx->padding == ID_NO_PADDING))
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if ((BlockLen + inputLen) != SDRM_DES_BLOCK_SIZ)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (inputLen != 0)
+ {
+ memcpy(Block + BlockLen, input, inputLen);
+ }
+
+ switch(crt->ctx->desctx->moo)
+ {
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey);
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV);
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_DES, output, Block, (cc_u8*)crt->ctx->desctx->RoundKey, crt->ctx->desctx->IV, crt->ctx->desctx->CTR_Count++);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ //de-padding
+ t = output[SDRM_DES_BLOCK_SIZ - 1];
+
+ switch(crt->ctx->desctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ if ((t > SDRM_DES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t, t);
+ break;
+ case ID_SSL_PADDING :
+ ++t;
+ if ((t > SDRM_DES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t - 1, t);
+ break;
+ case ID_ZERO_PADDING :
+ {
+ cc_u32 tmpLen;
+ tmpLen = SDRM_DES_BLOCK_SIZ;
+ while((tmpLen != 0x00) && (output[tmpLen - 1] == 0x00))
+ {
+ tmpLen--;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = tmpLen;
+ }
+ }
+ return CRYPTO_SUCCESS;
+ case ID_NO_PADDING :
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_DES_BLOCK_SIZ;
+ }
+ return CRYPTO_SUCCESS;
+ default :
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (memcmp(PADDING, output + SDRM_DES_BLOCK_SIZ - t, t) != 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_DES_BLOCK_SIZ - t;
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_TDES_init
+ * @brief intialize crypt context for triple des
+ *
+ * @param crt [out]crypto env structure
+ * @param mode [in]encryption|decryption and mode of operation
+ * @param PADDING [in]padding method
+ * @param key [in]user key
+ * @param keysize [in]byte-length of key
+ * @param IV [in]initial vector
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_init(CryptoCoreContainer *crt, cc_u32 mode, cc_u32 PADDING, cc_u8 *key, cc_u32 keysize, cc_u8 *IV)
+{
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->tdesctx == NULL) || (key == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ if (((keysize != 16) && (keysize != 24)) || !(((mode >= 1111) && (mode <= 1115)) || ((mode >= 1121) && (mode <= 1125))))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->tdesctx->moo = mode;
+
+ if ((PADDING != 0) && (PADDING != ID_PKCS5) && (PADDING != ID_SSL_PADDING) && (PADDING != ID_ZERO_PADDING) && (PADDING != ID_NO_PADDING))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ crt->ctx->tdesctx->padding = PADDING;
+
+ if ((mode != ID_DEC_ECB) && (mode != ID_DEC_CBC))
+ {
+ if (keysize == 16)
+ {
+ SDRM_getEncRoundKey(ID_TDES_EDE2, key, (cc_u8*)(crt->ctx->tdesctx->RoundKey));
+ }
+ else
+ {
+ SDRM_getEncRoundKey(ID_TDES_EDE3, key, (cc_u8*)(crt->ctx->tdesctx->RoundKey));
+ }
+ } else
+ {
+ if (keysize == 16)
+ {
+ SDRM_getDecRoundKey(ID_TDES_EDE2, key, (cc_u8*)(crt->ctx->tdesctx->RoundKey));
+ }
+ else
+ {
+ SDRM_getDecRoundKey(ID_TDES_EDE3, key, (cc_u8*)(crt->ctx->tdesctx->RoundKey));
+ }
+ }
+
+ crt->ctx->tdesctx->BlockLen = 0;
+ crt->ctx->tdesctx->CTR_Count = 0;
+
+ memcpy(crt->ctx->tdesctx->UserKey, key, SDRM_DES_BLOCK_SIZ);
+
+ if (IV)
+ {
+ memcpy(crt->ctx->tdesctx->IV, IV, SDRM_DES_BLOCK_SIZ);
+ }
+ else
+ {
+ memset(crt->ctx->tdesctx->IV, 0x00, SDRM_DES_BLOCK_SIZ);
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn int SDRM_TDES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen)
+ * @brief process message block
+ *
+ * @param crt [in]crypto env structure
+ * @param Text [in]message block
+ * @param TextLen [in]byte-length of Text
+ * @param output [out]proecessed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_process(CryptoCoreContainer *crt, cc_u8 *Text, cc_u32 TextLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int i, Temp;
+ int retVal, BlockLen;
+ cc_u8 *Block;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->tdesctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->tdesctx->Block;
+ BlockLen = crt->ctx->tdesctx->BlockLen;
+
+ *outputLen = 0;
+
+ if ((TextLen + BlockLen) < SDRM_DES_BLOCK_SIZ)
+ {
+ memcpy(Block + BlockLen, Text, TextLen);
+ crt->ctx->tdesctx->BlockLen += TextLen;
+ return CRYPTO_SUCCESS;
+ }
+
+ if (BlockLen)
+ {
+ memcpy(Block + BlockLen, Text, SDRM_DES_BLOCK_SIZ - BlockLen);
+
+ switch(crt->ctx->tdesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ Temp = TextLen + BlockLen - SDRM_DES_BLOCK_SIZ + 1;
+ for (i = (SDRM_DES_BLOCK_SIZ - BlockLen) & 0x07; i < Temp; i += SDRM_DES_BLOCK_SIZ)
+ {
+ switch(crt->ctx->tdesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_TDES, output + *outputLen, Text + i, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ *outputLen += SDRM_DES_BLOCK_SIZ;
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+ }
+
+ crt->ctx->tdesctx->BlockLen = (SDRM_DES_BLOCK_SIZ + TextLen - i) & 0x07;
+ memcpy(Block, Text + TextLen - crt->ctx->tdesctx->BlockLen, crt->ctx->tdesctx->BlockLen);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn int SDRM_TDES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen)
+ * @brief process final block and padding
+ *
+ * @param crt [in]crypto env structure
+ * @param input [in]message block
+ * @param inputLen [in]byte-length of Text
+ * @param output [out]processed message
+ * @param outputLen [out]byte-length of output
+ *
+ * @return CRYPTO_SUCCESS if success
+ * \n CRYPTO_NULL_POINTER if given argument is a null pointer
+ * \n CRYPTO_INVALID_ARGUMENT if given argument is invalid
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_final(CryptoCoreContainer *crt, cc_u8 *input, cc_u32 inputLen, cc_u8 *output, cc_u32 *outputLen)
+{
+ int retVal = CRYPTO_SUCCESS;
+ cc_u8 *Block, PADDING[16];
+ cc_u32 BlockLen, t;
+
+ if ((crt == NULL) || (crt->ctx == NULL) || (crt->ctx->tdesctx == NULL))
+ {
+ return CRYPTO_NULL_POINTER;
+ }
+
+ Block = crt->ctx->tdesctx->Block;
+ BlockLen = crt->ctx->tdesctx->BlockLen;
+
+
+ if (crt->ctx->tdesctx->moo >= ID_DEC_ECB)
+ {
+ goto DECRYPTION;
+ }
+
+//ENCRYPTION:
+ if (inputLen != 0)
+ {
+ retVal = SDRM_TDES_process(crt, input, inputLen, output, outputLen);
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ retVal = SDRM_TDES_final(crt, NULL, 0, output + *outputLen, &t);
+ *outputLen += t;
+
+ return retVal;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_DES_BLOCK_SIZ;
+ }
+
+ //padding
+ switch(crt->ctx->tdesctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ memset(Block + BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_SSL_PADDING :
+ memset(Block + BlockLen, SDRM_DES_BLOCK_SIZ - BlockLen - 1, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_ZERO_PADDING :
+ memset(Block + BlockLen, 0x00, SDRM_DES_BLOCK_SIZ - BlockLen);
+ break;
+ case ID_NO_PADDING :
+ if (BlockLen == 0)
+ {
+ if (outputLen)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_SUCCESS;
+ }
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ //encryption
+ switch(crt->ctx->tdesctx->moo)
+ {
+ case ID_ENC_ECB :
+ retVal = SDRM_ECB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ break;
+ case ID_ENC_CBC :
+ retVal = SDRM_CBC_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_ENC_CFB :
+ retVal = SDRM_CFB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_ENC_OFB :
+ retVal = SDRM_OFB_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_ENC_CTR :
+ retVal = SDRM_CTR_Enc(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ break;
+ default :
+ retVal = CRYPTO_INVALID_ARGUMENT;
+ break;
+ }
+
+ return retVal;
+
+DECRYPTION:
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+
+ if ((inputLen == 0) && (crt->ctx->tdesctx->padding == ID_NO_PADDING))
+ {
+ return CRYPTO_SUCCESS;
+ }
+
+ if ((BlockLen + inputLen) != SDRM_DES_BLOCK_SIZ)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (inputLen != 0)
+ {
+ memcpy(Block + BlockLen, input, inputLen);
+ }
+
+ switch(crt->ctx->tdesctx->moo)
+ {
+ case ID_DEC_ECB :
+ retVal = SDRM_ECB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey);
+ break;
+ case ID_DEC_CBC :
+ retVal = SDRM_CBC_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_DEC_CFB :
+ retVal = SDRM_CFB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_DEC_OFB :
+ retVal = SDRM_OFB_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV);
+ break;
+ case ID_DEC_CTR :
+ retVal = SDRM_CTR_Dec(ID_TDES, output, Block, (cc_u8*)crt->ctx->tdesctx->RoundKey, crt->ctx->tdesctx->IV, crt->ctx->tdesctx->CTR_Count++);
+ break;
+ default :
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (retVal != CRYPTO_SUCCESS)
+ {
+ return retVal;
+ }
+
+ //de-padding
+ t = output[SDRM_DES_BLOCK_SIZ - 1];
+
+ switch(crt->ctx->tdesctx->padding)
+ {
+ case 0 :
+ case ID_PKCS5 :
+ if ((t > SDRM_DES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t, t);
+ break;
+ case ID_SSL_PADDING :
+ ++t;
+ if ((t > SDRM_DES_BLOCK_SIZ) || (t < 1))
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+ memset(PADDING, t - 1, t);
+ break;
+ case ID_ZERO_PADDING :
+ {
+ cc_u32 tmpLen;
+ tmpLen = SDRM_TDES_BLOCK_SIZ;
+ while((tmpLen != 0x00) && (output[tmpLen - 1] == 0x00))
+ {
+ tmpLen--;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = tmpLen;
+ }
+ }
+ return CRYPTO_SUCCESS;
+ case ID_NO_PADDING :
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_TDES_BLOCK_SIZ;
+ }
+ return CRYPTO_SUCCESS;
+ default :
+ if (outputLen != NULL)
+ {
+ *outputLen = 0;
+ }
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (memcmp(PADDING, output + SDRM_TDES_BLOCK_SIZ - t, t) != 0)
+ {
+ return CRYPTO_INVALID_ARGUMENT;
+ }
+
+ if (outputLen != NULL)
+ {
+ *outputLen = SDRM_DES_BLOCK_SIZ - t;
+ }
+
+ return CRYPTO_SUCCESS;
+
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/Src/middle/tdes.c b/SPC/Src/middle/tdes.c
new file mode 100755
index 0000000..c727335
--- /dev/null
+++ b/SPC/Src/middle/tdes.c
@@ -0,0 +1,131 @@
+/**
+ * \file tdes.c
+ * @brief high-speed implementation of Triple DES-EDE
+ *
+ * - Copyright : Samsung Electronics CO.LTD.,
+ *
+ * \internal
+ * Author : Jisoon Park
+ * Dept : DRM Lab, Digital Media Laboratory
+ * Creation date : 2006/12/06
+ */
+
+//////////////////////////////////////////////////////////////////////////
+// Include Header Files
+//////////////////////////////////////////////////////////////////////////
+#include "tdes.h"
+#include "des.h"
+
+////////////////////////////////////////////////////////////////////////////
+// Functions
+////////////////////////////////////////////////////////////////////////////
+/*
+ * @fn SDRM_TDES_KeySched
+ * @brief Expand the cipher key into the encryption key schedule
+ *
+ * @param RoundKey [out]generated round key
+ * @param UserKey [in]user key, 16 or 24 byte
+ * @param KeyLen [in]byte-length of UserKey
+ * @param RKStep [in]operation mode
+ *
+ * @return the number of rounds for the given cipher key size
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_KeySched(cc_u8 *RoundKey, cc_u8 *UserKey, cc_u32 KeyLen, cc_u32 RKStep)
+{
+
+ if (RKStep == 1)
+ {
+ SDRM_DES_KeySched(RoundKey, UserKey, 0, 1);
+ SDRM_DES_KeySched(RoundKey + 128, UserKey + 8, 15, (cc_u32)-1);
+
+ if (KeyLen == 16)
+ { //2-key des
+ memcpy(RoundKey + 256, RoundKey, 128);
+ }
+ else
+ { //3-key des
+ SDRM_DES_KeySched(RoundKey + 256, UserKey + 16, 0, 1);
+ }
+ }
+ else {
+ SDRM_DES_KeySched(RoundKey + 256, UserKey, 15, (cc_u32)-1);
+ SDRM_DES_KeySched(RoundKey + 128, UserKey + 8, 0, 1);
+
+ if (KeyLen == 16)
+ { //2-key des
+ memcpy(RoundKey, RoundKey + 256, 128);
+ }
+ else
+ { //3-key des
+ SDRM_DES_KeySched(RoundKey, UserKey + 16, 15, (cc_u32)-1);
+ }
+ }
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_TDES_Encryption
+ * @brief Triple DES processing for one block
+ *
+ * @param RoundKey [in]expanded round key
+ * @param msg [in]8 byte plaintext
+ * @param out [out]8 byte ciphertext
+ *
+ * @return CRYPTO_SUCCESS if no error is occured
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES_Encryption(cc_u32 RoundKey[][2], cc_u8 *msg, cc_u8 *out)
+{
+ cc_u8 buf[8];
+
+ SDRM_DES_Encryption(RoundKey , msg, buf);
+ SDRM_DES_Encryption(RoundKey + 16, buf, buf);
+ SDRM_DES_Encryption(RoundKey + 32, buf, out);
+
+ return CRYPTO_SUCCESS;
+}
+
+
+/*
+ * @fn SDRM_TDES64_Encryption
+ * @brief one block Triple DES Encryption
+ *
+ * @param cipherText [out]encrypted text
+ * @param plainText [in]plain text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES64_Encryption(cc_u8 *cipherText, cc_u8 *plainText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[48][2];
+
+ SDRM_TDES_KeySched((cc_u8*)RoundKey, UserKey, 16, 1);
+
+ SDRM_TDES_Encryption(RoundKey, plainText, cipherText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/*
+ * @fn SDRM_TDES64_Decryption
+ * @brief one block Triple DES Decryption
+ *
+ * @param plainText [out]decrypted text
+ * @param cipherText [in]cipher text
+ * @param UserKey [in]user key
+ *
+ * @return CRYPTO_SUCCESS if success
+ */
+CRYPTOCORE_INTERNAL int SDRM_TDES64_Decryption(cc_u8 *plainText, cc_u8 *cipherText, cc_u8 *UserKey)
+{
+ cc_u32 RoundKey[48][2];
+
+ SDRM_TDES_KeySched((cc_u8*)RoundKey, UserKey, 16, (cc_u32)-1);
+
+ SDRM_TDES_Encryption(RoundKey, cipherText, plainText);
+
+ return CRYPTO_SUCCESS;
+}
+
+/***************************** End of File *****************************/
diff --git a/SPC/gcc/Makefile b/SPC/gcc/Makefile
new file mode 100755
index 0000000..39d4eee
--- /dev/null
+++ b/SPC/gcc/Makefile
@@ -0,0 +1,102 @@
+####################################################
+# Include Configure File #
+####################################################
+include Makefile.conf
+
+####################################################
+# Target #
+####################################################
+TARGET=libPAKEClient.a
+TARGET_S=libPAKEClient.so
+
+####################################################
+# Definitions #
+####################################################
+CC=$(CROSS_COMPILE)gcc
+LD=$(CROSS_COMPILE)gcc
+AR=$(CROSS_COMPILE)ar
+CC=$(CROSS_COMPILE)gcc
+CPP= $(CROSS_COMPILE)g++
+RANLIB=$(CROSS_COMPILE)ranlib
+
+LDFLAGS=-lm
+
+STATIC_SUFFIX=.a
+SHARED_SUFFIX=.so
+
+
+####################################################
+# PATH Define #
+####################################################
+# base directories
+BUILD_DIR = $(CRYPTOCORE_HOME)/gcc/build
+INCLUDE_DIR = $(CRYPTOCORE_HOME)/Inc
+SRC_DIR = $(CRYPTOCORE_HOME)/Src
+
+# build path
+BUILD_PATH = $(BUILD_DIR)/$(PLATFORM)
+
+####################################################
+# Source Codes #
+####################################################
+BUILD_FILES = base/aes.c base/ANSI_x931.c base/bignum.c base/des.c base/ecc.c base/fast_math.c base/hash.c base/md5.c base/moo.c base/pkcs1_v21.c base/rc4.c base/sha1.c base/sha2.c base/snow2.c
+BUILD_FILES += middle/cmac.c middle/dh.c middle/dsa.c middle/ecdh.c middle/ecdsa.c middle/hmac.c middle/rng.c middle/rsa.c middle/symmetric.c middle/tdes.c
+#BUILD_FILES += CC_API.c DRMLog.c WhiteBox/SDWAP.c WhiteBox/SDWAP_TblGen.c WhiteBox/SWAPv2.c WhiteBox/SWAPv2_TblGen.c SAKEP.cpp SPCApi.cpp Util.cpp DtcpCTcpSocket.cpp
+BUILD_FILES += CC_API.c DRMLog.c WhiteBox/SDWAP.c WhiteBox/SDWAP_TblGen.c WhiteBox/SWAPv2.c WhiteBox/SWAPv2_TblGen.c SAKEP.cpp SPCApi.cpp Util.cpp
+####################################################
+# Includes #
+####################################################
+BUILD_INCS = -I$(INCLUDE_DIR) -I$(INCLUDE_DIR)/middle -I$(INCLUDE_DIR)/base -I$(INCLUDE_DIR)/WhiteBox
+
+####################################################
+# Make Options #
+####################################################
+# Disable implicit suffix rules.
+.SUFFIXES:
+
+# Configure class-based search paths.
+vpath
+vpath %.c $(SRC_DIR)
+vpath %.c $(SRC_DIR)/middle
+vpath %.c $(SRC_DIR)/base
+vpath %.c $(SRC_DIR)/WhiteBox
+vpath %.cpp $(SRC_DIR)
+vpath %.o $(BUILD_PATH)
+
+# Filter out C object files we know how to build.
+BUILD_C_OBJS := $(addsuffix .o, $(basename $(filter %.c, $(BUILD_FILES))))
+BUILD_CPP_OBJS := $(addsuffix .o, $(basename $(filter %.cpp, $(BUILD_FILES))))
+
+# Append build directory path to object files.
+OBJS := $(BUILD_C_OBJS:%.o=$(BUILD_PATH)/%.o)
+OBJCPP := $(BUILD_CPP_OBJS:%.o=$(BUILD_PATH)/%.o)
+
+LDFLAGS += $(STATIC_LDFLAGS)
+
+all: $(BUILD_PATH)/$(TARGET)
+
+# Build library
+$(BUILD_PATH)/$(TARGET): $(OBJS) $(OBJCPP)
+ @echo -- Archiving static and dynamic library SAKEP Client --
+ @echo $(BUILD_PATH)/$(TARGET_S) $(BUILD_PATH)/$(TARGET)
+ @mkdir -p $(dir $@)
+ @$(AR) cr $@ $(OBJS) $(OBJCPP)
+ @$(CC) -shared -o $(BUILD_PATH)/$(TARGET_S) -Wl,--whole-archive $(BUILD_PATH)/$(TARGET) -Wl,--no-whole-archive
+# @rm -rf $(OBJS) $(OBJCPP) $(BUILD_PATH)/base $(BUILD_PATH)/middle $(BUILD_PATH)/WhiteBox
+# @rm -rf $(OBJCPP) $(BUILD_PATH)/base $(BUILD_PATH)/middle $(BUILD_PATH)/WhiteBox $(BUILD_PATH)
+
+# Compile C source
+$(BUILD_PATH)/%.o: %.c
+ @echo $(notdir $<)
+ @mkdir -p $(dir $@)
+ $(CC) $(CFLAGS) $(BUILD_INCS) -c $< -o $@
+
+# Compile CPP source
+$(BUILD_PATH)/%.o: %.cpp
+ @echo $(notdir $<)
+ @mkdir -p $(dir $@)
+ $(CPP) $(CFLAGS) $(BUILD_INCS) -c $< -o $@
+
+clean:
+ @echo -- Clean $(SRC_NAME) --
+ @rm -rf $(BUILD_PATH)
diff --git a/SPC/gcc/Makefile.conf b/SPC/gcc/Makefile.conf
new file mode 100755
index 0000000..61e2967
--- /dev/null
+++ b/SPC/gcc/Makefile.conf
@@ -0,0 +1,68 @@
+####################################################
+# User Definitions #
+####################################################
+
+
+
+PLATFORM=linux
+#PLATFORM=A1
+#PLATFORM=Chelsea
+#PLATFORM=DRMe
+#PLATFORM=Canmore
+#PLATFORM=Valencia
+
+#CFLAGS= -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG
+#CFLAGS= -O2 -D_WIN32_ -D_WIN -D_WIN32_WCE -DMTHREAD -D_REENTRANT -DPRINT_LOG
+#CFLAGS= -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -D_WIN32_
+#CFLAGS= -O2 -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -D_WIN
+
+CFLAGS= -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -g -D_DRMLOG_DISABLE -lstdc++
+
+
+
+HOST_OS := $(shell uname -s | tr A-Z a-z | cut -d'_' -f1)
+ifeq ($(HOST_OS),mingw32)
+ CFLAGS+= -D_WIN
+endif
+####################################################
+# Options #
+####################################################
+ifeq ($(PLATFORM), linux)
+ CROSS_COMPILE=
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive
+
+
+else ifeq ($(PLATFORM), A1)
+ CROSS_COMPILE=arm_v6_vfp_le-
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fstrict-overflow -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -Werror -Wstrict-prototypes
+
+else ifeq ($(PLATFORM), Chelsea)
+ CROSS_COMPILE=arm_v6_vfp_le-
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fstrict-overflow -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -Werror -Wstrict-prototypes
+
+else ifeq ($(PLATFORM), Valencia)
+ CROSS_COMPILE=arm_v7_vfp_le-
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fstrict-overflow -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -Werror -Wstrict-prototypes
+
+else ifeq ($(PLATFORM), DRMe)
+ CROSS_COMPILE=arm-linux-
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -Werror -Wstrict-prototypes
+
+else ifeq ($(PLATFORM), Canmore)
+ CROSS_COMPILE=i686-cm-linux-
+
+ CFLAGS+= -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char
+ CFLAGS+= -ffunction-sections -fdata-sections -Werror -Wstrict-prototypes
+endif
+
+CRYPTOCORE_HOME=..
diff --git a/SPC/gcc/SPC_Client b/SPC/gcc/SPC_Client
new file mode 100755
index 0000000..7109a6f
--- /dev/null
+++ b/SPC/gcc/SPC_Client
Binary files differ
diff --git a/SPC/gcc/TestCompile b/SPC/gcc/TestCompile
new file mode 100755
index 0000000..650240e
--- /dev/null
+++ b/SPC/gcc/TestCompile
@@ -0,0 +1,4 @@
+#!/bin/bash
+rm -rf test
+echo g++ -o SPC_Client ../../SPC_Client/Src/SPC_Client_SampleCode.cpp -L./build/linux/ -I../Inc/ -I../Inc/base -I../Inc/middle -I../Inc/WhileBox -lPAKEClient
+g++ -o SPC_Client ../../SPC_Client/Src/SPC_Client_SampleCode.cpp -L./build/linux/ -I../Inc/ -I../Inc/base -I../Inc/middle -I../Inc/WhileBox -lPAKEClient
diff --git a/SPC/gcc/result.txt b/SPC/gcc/result.txt
new file mode 100755
index 0000000..28def8a
--- /dev/null
+++ b/SPC/gcc/result.txt
@@ -0,0 +1,789 @@
+aes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/aes.c -o ../gcc/build/linux/base/aes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/aes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupEnc':
+../Src/base/aes.c:815:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupDec':
+../Src/base/aes.c:869:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelEncrypt':
+../Src/base/aes.c:1065:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelDecrypt':
+../Src/base/aes.c:1261:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Encryption':
+../Src/base/aes.c:1282:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Decryption':
+../Src/base/aes.c:1303:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Encryption':
+../Src/base/aes.c:1324:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Decryption':
+../Src/base/aes.c:1345:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Encryption':
+../Src/base/aes.c:1366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Decryption':
+../Src/base/aes.c:1387:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ANSI_x931.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/ANSI_x931.c -o ../gcc/build/linux/base/ANSI_x931.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ANSI_x931.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ANSI_x931.c: In function 'SDRM_RNG_X931':
+../Src/base/ANSI_x931.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+bignum.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/bignum.c -o ../gcc/build/linux/base/bignum.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/bignum.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/bignum.c: In function 'SDRM_DWD_Classical_REDC':
+../Src/base/bignum.c:768:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_DIGIT_Gcd':
+../Src/base/bignum.c:798:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_PrintBN':
+../Src/base/bignum.c:838:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN2OS':
+../Src/base/bignum.c:921:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_I2OSP':
+../Src/base/bignum.c:986:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Clr':
+../Src/base/bignum.c:1004:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Copy':
+../Src/base/bignum.c:1028:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Alloc':
+../Src/base/bignum.c:1053:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Init':
+../Src/base/bignum.c:1079:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp':
+../Src/base/bignum.c:1102:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp_sign':
+../Src/base/bignum.c:1134:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Rand':
+../Src/base/bignum.c:1167:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHL':
+../Src/base/bignum.c:1215:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_OS2BN':
+../Src/base/bignum.c:961:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHR':
+../Src/base/bignum.c:1266:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Add':
+../Src/base/bignum.c:1376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Sub':
+../Src/base/bignum.c:1477:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Mul':
+../Src/base/bignum.c:1532:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Div':
+../Src/base/bignum.c:1633:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModRed':
+../Src/base/bignum.c:1828:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModSub':
+../Src/base/bignum.c:1779:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModAdd':
+../Src/base/bignum.c:1709:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModMul':
+../Src/base/bignum.c:1878:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModInv':
+../Src/base/bignum.c:2019:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Rzn2zn':
+../Src/base/bignum.c:2093:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Mul':
+../Src/base/bignum.c:2171:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Init':
+../Src/base/bignum.c:2328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Free':
+../Src/base/bignum.c:2343:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_num_bits':
+../Src/base/bignum.c:2369:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Set':
+../Src/base/bignum.c:2300:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_UINT32_num_bits':
+../Src/base/bignum.c:2398:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_INT_num_bits':
+../Src/base/bignum.c:2424:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp':
+../Src/base/bignum.c:2502:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp2':
+../Src/base/bignum.c:2584:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_CheckRelativelyPrime':
+../Src/base/bignum.c:2643:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_MILLER_RABIN':
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: At top level:
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+des.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/des.c -o ../gcc/build/linux/base/des.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/des.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/des.c: In function 'SDRM_DES_KeySched':
+../Src/base/des.c:79:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES_Encryption':
+../Src/base/des.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Encryption':
+../Src/base/des.c:145:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Decryption':
+../Src/base/des.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecc.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/ecc.c -o ../gcc/build/linux/base/ecc.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ecc.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ecc.c: In function 'SDRM_ECC_Init':
+../Src/base/ecc.c:47:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CURVE_Init':
+../Src/base/ecc.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CHECK_EC_POINT_ZERO':
+../Src/base/ecc.c:121:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jm2Jc':
+../Src/base/ecc.c:157:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jc2Jm':
+../Src/base/ecc.c:190:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add':
+../Src/base/ecc.c:283:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jc':
+../Src/base/ecc.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add_Jc':
+../Src/base/ecc.c:414:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jm':
+../Src/base/ecc.c:607:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Chain':
+../Src/base/ecc.c:784:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_kP':
+../Src/base/ecc.c:989:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_2kP':
+../Src/base/ecc.c:1274:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+fast_math.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/fast_math.c -o ../gcc/build/linux/base/fast_math.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/fast_math.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/fast_math.c: In function 'SDRM_ll_Cmp':
+../Src/base/fast_math.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Copy':
+../Src/base/fast_math.c:73:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_RShift':
+../Src/base/fast_math.c:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_LShift':
+../Src/base/fast_math.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSW':
+../Src/base/fast_math.c:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSB':
+../Src/base/fast_math.c:174:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitValue':
+../Src/base/fast_math.c:191:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitsValue':
+../Src/base/fast_math.c:245:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Add':
+../Src/base/fast_math.c:280:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_AddCarry':
+../Src/base/fast_math.c:311:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Sub':
+../Src/base/fast_math.c:340:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul1':
+../Src/base/fast_math.c:375:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd1':
+../Src/base/fast_math.c:410:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd':
+../Src/base/fast_math.c:431:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul':
+../Src/base/fast_math.c:453:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Square':
+../Src/base/fast_math.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Rem':
+../Src/base/fast_math.c:539:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Inverse':
+../Src/base/fast_math.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Rem':
+../Src/base/fast_math.c:617:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Square':
+../Src/base/fast_math.c:646:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Mul':
+../Src/base/fast_math.c:689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_ExpMod':
+../Src/base/fast_math.c:906:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hash.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/hash.c -o ../gcc/build/linux/base/hash.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/hash.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/hash.c: In function 'SDRM_SHA1_init':
+../Src/base/hash.c:43:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_update':
+../Src/base/hash.c:66:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_final':
+../Src/base/hash.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_hash':
+../Src/base/hash.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_init':
+../Src/base/hash.c:135:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_update':
+../Src/base/hash.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_final':
+../Src/base/hash.c:179:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_hash':
+../Src/base/hash.c:205:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_init':
+../Src/base/hash.c:226:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_update':
+../Src/base/hash.c:249:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_final':
+../Src/base/hash.c:270:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_hash':
+../Src/base/hash.c:296:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_init':
+../Src/base/hash.c:319:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_update':
+../Src/base/hash.c:342:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_final':
+../Src/base/hash.c:364:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_hash':
+../Src/base/hash.c:390:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_init':
+../Src/base/hash.c:411:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_update':
+../Src/base/hash.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_final':
+../Src/base/hash.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_hash':
+../Src/base/hash.c:482:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_init':
+../Src/base/hash.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_update':
+../Src/base/hash.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_final':
+../Src/base/hash.c:550:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_hash':
+../Src/base/hash.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+md5.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/md5.c -o ../gcc/build/linux/base/md5.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/md5.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/md5.c: In function 'SDRM_MD5_Init':
+../Src/base/md5.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Update':
+../Src/base/md5.c:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Final':
+../Src/base/md5.c:165:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+moo.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/moo.c -o ../gcc/build/linux/base/moo.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/moo.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/moo.c: In function 'SDRM_ECB_Enc':
+../Src/base/moo.c:55:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_ECB_Dec':
+../Src/base/moo.c:91:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Enc':
+../Src/base/moo.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Dec':
+../Src/base/moo.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Enc':
+../Src/base/moo.c:289:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Dec':
+../Src/base/moo.c:348:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_OFB_Enc':
+../Src/base/moo.c:407:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CTR_Enc':
+../Src/base/moo.c:485:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+pkcs1_v21.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/pkcs1_v21.c -o ../gcc/build/linux/base/pkcs1_v21.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/pkcs1_v21.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_pkcs15':
+../Src/base/pkcs1_v21.c:155:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pkcs15':
+../Src/base/pkcs1_v21.c:564:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_MGF1':
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pss':
+../Src/base/pkcs1_v21.c:825:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_oaep':
+../Src/base/pkcs1_v21.c:417:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: At top level:
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rc4.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/rc4.c -o ../gcc/build/linux/base/rc4.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/rc4.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/rc4.c: In function 'SDRM_RC4_Setup':
+../Src/base/rc4.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/rc4.c: In function 'SDRM_RC4_PRNG':
+../Src/base/rc4.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha1.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/sha1.c -o ../gcc/build/linux/base/sha1.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha1.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Init':
+../Src/base/sha1.c:137:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Update':
+../Src/base/sha1.c:318:5: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Final':
+../Src/base/sha1.c:367:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_endianTest':
+../Src/base/sha1.c:469:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/sha2.c -o ../gcc/build/linux/base/sha2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Transf':
+../Src/base/sha2.c:321:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Init':
+../Src/base/sha2.c:333:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Update':
+../Src/base/sha2.c:366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Final':
+../Src/base/sha2.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Transf':
+../Src/base/sha2.c:444:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Init':
+../Src/base/sha2.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Update':
+../Src/base/sha2.c:489:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Final':
+../Src/base/sha2.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Init':
+../Src/base/sha2.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Update':
+../Src/base/sha2.c:561:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Final':
+../Src/base/sha2.c:586:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Init':
+../Src/base/sha2.c:601:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Update':
+../Src/base/sha2.c:635:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Final':
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: At top level:
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+snow2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/base/snow2.c -o ../gcc/build/linux/base/snow2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/snow2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_Setup':
+../Src/base/snow2.c:344:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream64':
+../Src/base/snow2.c:374:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream':
+../Src/base/snow2.c:402:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+cmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/cmac.c -o ../gcc/build/linux/middle/cmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/cmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_init':
+../Src/middle/cmac.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_update':
+../Src/middle/cmac.c:173:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_final':
+../Src/middle/cmac.c:219:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_getMAC':
+../Src/middle/cmac.c:258:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/dh.c -o ../gcc/build/linux/middle/dh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHParam':
+../Src/middle/dh.c:119:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_SetDHParam':
+../Src/middle/dh.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHPrivate':
+../Src/middle/dh.c:232:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GetDHSharedSecret':
+../Src/middle/dh.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_FreeDHContext':
+../Src/middle/dh.c:330:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/dsa.c -o ../gcc/build/linux/middle/dsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dsa.c: In function 'SDRM_Add_DW2BA':
+../Src/middle/dsa.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_InitCrt':
+../Src/middle/dsa.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetParam':
+../Src/middle/dsa.c:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetKeyPair':
+../Src/middle/dsa.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenParam':
+../Src/middle/dsa.c:358:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenKeypair':
+../Src/middle/dsa.c:429:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_sign':
+../Src/middle/dsa.c:509:2: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_verify':
+../Src/middle/dsa.c:600:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdh.c -o ../gcc/build/linux/middle/ecdh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdh.c: In function 'SDRM_generateDH1stPhaseKey':
+../Src/middle/ecdh.c:101:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdh.c: In function 'SDRM_generateDHKey':
+../Src/middle/ecdh.c:202:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdsa.c -o ../gcc/build/linux/middle/ecdsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_KEY_GEN':
+../Src/middle/ecdsa.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_GEN':
+../Src/middle/ecdsa.c:212:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_VERIFY':
+../Src/middle/ecdsa.c:363:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_sign':
+../Src/middle/ecdsa.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_verify':
+../Src/middle/ecdsa.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_Set_CTX':
+../Src/middle/ecdsa.c:531:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_genKeypair':
+../Src/middle/ecdsa.c:598:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_setKeypair':
+../Src/middle/ecdsa.c:662:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/hmac.c -o ../gcc/build/linux/middle/hmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/hmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_update':
+../Src/middle/hmac.c:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_final':
+../Src/middle/hmac.c:433:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_getK0':
+../Src/middle/hmac.c:570:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_init':
+../Src/middle/hmac.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_getMAC':
+../Src/middle/hmac.c:472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rng.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/rng.c -o ../gcc/build/linux/middle/rng.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rng.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rng.c: In function 'SDRM_X931_seed':
+../Src/middle/rng.c:41:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rng.c: In function 'SDRM_X931_get':
+../Src/middle/rng.c:67:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/rsa.c -o ../gcc/build/linux/middle/rsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rsa.c: In function 'SDRM_RSA_InitCrt':
+../Src/middle/rsa.c:58:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNED':
+../Src/middle/rsa.c:105:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNEDPQ':
+../Src/middle/rsa.c:218:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateKey':
+../Src/middle/rsa.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateND':
+../Src/middle/rsa.c:520:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateDwithPQE':
+../Src/middle/rsa.c:665:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_encrypt':
+../Src/middle/rsa.c:762:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decrypt':
+../Src/middle/rsa.c:859:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decryptByCRT':
+../Src/middle/rsa.c:1029:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_sign':
+../Src/middle/rsa.c:1117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_verify':
+../Src/middle/rsa.c:1206:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+symmetric.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/symmetric.c -o ../gcc/build/linux/middle/symmetric.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/symmetric.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/symmetric.c: In function 'SDRM_getEncRoundKey':
+../Src/middle/symmetric.c:68:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_getDecRoundKey':
+../Src/middle/symmetric.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_init':
+../Src/middle/symmetric.c:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_process':
+../Src/middle/symmetric.c:351:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_final':
+../Src/middle/symmetric.c:606:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_init':
+../Src/middle/symmetric.c:638:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_process':
+../Src/middle/symmetric.c:670:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_init':
+../Src/middle/symmetric.c:703:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_process':
+../Src/middle/symmetric.c:797:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_init':
+../Src/middle/symmetric.c:860:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_process':
+../Src/middle/symmetric.c:1014:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_final':
+../Src/middle/symmetric.c:1231:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_init':
+../Src/middle/symmetric.c:1306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_process':
+../Src/middle/symmetric.c:1460:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_final':
+../Src/middle/symmetric.c:1679:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+tdes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/middle/tdes.c -o ../gcc/build/linux/middle/tdes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/tdes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/tdes.c: In function 'SDRM_TDES_KeySched':
+../Src/middle/tdes.c:65:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES_Encryption':
+../Src/middle/tdes.c:86:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Encryption':
+../Src/middle/tdes.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Decryption':
+../Src/middle/tdes.c:129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+CC_API.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/CC_API.c -o ../gcc/build/linux/CC_API.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/CC_API.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/CC_API.c: In function 'CCMalloc':
+../Src/CC_API.c:46:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'CCFree':
+../Src/CC_API.c:54:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'create_CryptoCoreContainer':
+../Src/CC_API.c:336:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'destroy_CryptoCoreContainer':
+../Src/CC_API.c:438:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+DRMLog.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/DRMLog.c -o ../gcc/build/linux/DRMLog.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/DRMLog.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+SDWAP.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP.c -o ../gcc/build/linux/WhiteBox/SDWAP.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP.c: In function 'SDWAP_Process':
+../Src/WhiteBox/SDWAP.c:498:15: warning: variable 'Nk' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP.c: At top level:
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SDWAP_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP_TblGen.c -o ../gcc/build/linux/WhiteBox/SDWAP_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:210:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'MakeEachKeyLookup':
+../Src/WhiteBox/SDWAP_TblGen.c:252:17: warning: unused variable 'pBeforeLKCol' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GeneratePVector':
+../Src/WhiteBox/SDWAP_TblGen.c:1309:15: warning: variable 'rnd' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1566:22: warning: unused variable 'pKeyBitPBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c:1565:23: warning: unused variable 'pKeyBytePBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1372:13: warning: 'SDWAP_GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1418:13: warning: 'SDWAP_GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1464:13: warning: 'SDWAP_GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1494:13: warning: 'SDWAP_ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1522:13: warning: 'SDWAP_RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation_LK':
+../Src/WhiteBox/SDWAP_TblGen.c:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:521:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_ProcessBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:590:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2.c -o ../gcc/build/linux/WhiteBox/SWAPv2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2.c: In function 'SWAPv2_Process':
+../Src/WhiteBox/SWAPv2.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2_TblGen.c -o ../gcc/build/linux/WhiteBox/SWAPv2_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:275:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBytePBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:434:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+../Src/WhiteBox/SWAPv2_TblGen.c: At top level:
+../Src/WhiteBox/SWAPv2_TblGen.c:1119:13: warning: 'GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1165:13: warning: 'GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1211:13: warning: 'GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1241:13: warning: 'ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1269:13: warning: 'RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:294:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBitPBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'SWAPv2_GenerateTable':
+../Src/WhiteBox/SWAPv2_TblGen.c:1456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SAKEP.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/SAKEP.cpp -o ../gcc/build/linux/SAKEP.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SAKEP.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:277:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp:278:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:419:16: warning: unused variable 'pDecryptedGx' [-Wunused-variable]
+../Src/SAKEP.cpp:420:15: warning: unused variable 'nDecryptedGxLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:574:16: warning: unused variable 'pWc' [-Wunused-variable]
+../Src/SAKEP.cpp:575:15: warning: unused variable 'nWcLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5114:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8210:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi()':
+../Src/SAKEP.cpp:64:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi(Handle_CTX*, ModeType)':
+../Src/SAKEP.cpp:76:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void* SAkepApi::SAKEPMalloc(int)':
+../Src/SAKEP.cpp:100:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::SAKEPFree(void*)':
+../Src/SAKEP.cpp:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'SAKEPContainer* SAkepApi::create_SAKEPContainer()':
+../Src/SAKEP.cpp:131:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::destroy_SAKEPContainer(SAKEPContainer*)':
+../Src/SAKEP.cpp:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptGy(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptGx(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GenerateBSPublic(SAKEPContainer*, unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:396:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetGy(unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:560:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerAck(Handle_CTX*, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1201:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParserClientAck(Handle_CTX*, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1323:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1696:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1714:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMyMacLen(unsigned int*)':
+../Src/SAKEP.cpp:1728:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1735:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1744:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1756:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1769:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ApplyPasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1966:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseClientHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ReversePasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:2021:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1681:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:1771:13: warning: 'void X931_Prng(unsigned char*, unsigned char*, unsigned int, unsigned char*)' defined but not used [-Wunused-function]
+SPCApi.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/SPCApi.cpp -o ../gcc/build/linux/SPCApi.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SPCApi.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SPCApi.cpp: In constructor 'SPCApi::SPCApi()':
+../Src/SPCApi.cpp:25:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: At global scope:
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::InitSPCContext(SPCHandle_CTX*, ModeType, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::DestroySPCContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::ClearSPCSessionContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:204:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerAck(SPCHandle_CTX*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientAck(SPCHandle_CTX*, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:265:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:297:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+Util.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/Util.cpp -o ../gcc/build/linux/Util.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/Util.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+DtcpCTcpSocket.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -D_LINUX -DPRINT_LOG -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I..
+/Inc/base -I../Inc/WhiteBox -c ../Src/DtcpCTcpSocket.cpp -o ../gcc/build/linux/DtcpCTcpSocket.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/DtcpCTcpSocket.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+In file included from ../Src/DtcpCTcpSocket.cpp:5:0:
+../Inc/DtcpCTcpSocket.h:35:32: fatal error: sys/socket.h: No such file or directory
+compilation terminated.
+make: *** [../gcc/build/linux/DtcpCTcpSocket.o] Error 1
+
+jounsun.beak@DO-JOUNSUN-BE02 /d/SPC_Client/jni/SPC/gcc
+$ \ No newline at end of file
diff --git a/SPC/gcc/result2.txt b/SPC/gcc/result2.txt
new file mode 100755
index 0000000..e0c0b60
--- /dev/null
+++ b/SPC/gcc/result2.txt
@@ -0,0 +1,1576 @@
+
+aes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/aes.c -o ../gcc/build/linux/base/aes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/aes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupEnc':
+../Src/base/aes.c:815:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupDec':
+../Src/base/aes.c:869:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelEncrypt':
+../Src/base/aes.c:1065:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelDecrypt':
+../Src/base/aes.c:1261:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Encryption':
+../Src/base/aes.c:1282:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Decryption':
+../Src/base/aes.c:1303:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Encryption':
+../Src/base/aes.c:1324:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Decryption':
+../Src/base/aes.c:1345:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Encryption':
+../Src/base/aes.c:1366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Decryption':
+../Src/base/aes.c:1387:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ANSI_x931.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/ANSI_x931.c -o ../gcc/build/linux/base/ANSI_x931.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ANSI_x931.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ANSI_x931.c: In function 'SDRM_RNG_X931':
+../Src/base/ANSI_x931.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+bignum.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/bignum.c -o ../gcc/build/linux/base/bignum.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/bignum.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/bignum.c: In function 'SDRM_DWD_Classical_REDC':
+../Src/base/bignum.c:768:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_DIGIT_Gcd':
+../Src/base/bignum.c:798:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_PrintBN':
+../Src/base/bignum.c:838:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN2OS':
+../Src/base/bignum.c:921:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_I2OSP':
+../Src/base/bignum.c:986:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Clr':
+../Src/base/bignum.c:1004:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Copy':
+../Src/base/bignum.c:1028:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Alloc':
+../Src/base/bignum.c:1053:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Init':
+../Src/base/bignum.c:1079:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp':
+../Src/base/bignum.c:1102:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp_sign':
+../Src/base/bignum.c:1134:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Rand':
+../Src/base/bignum.c:1167:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHL':
+../Src/base/bignum.c:1215:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_OS2BN':
+../Src/base/bignum.c:961:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHR':
+../Src/base/bignum.c:1266:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Add':
+../Src/base/bignum.c:1376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Sub':
+../Src/base/bignum.c:1477:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Mul':
+../Src/base/bignum.c:1532:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Div':
+../Src/base/bignum.c:1633:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModRed':
+../Src/base/bignum.c:1828:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModSub':
+../Src/base/bignum.c:1779:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModAdd':
+../Src/base/bignum.c:1709:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModMul':
+../Src/base/bignum.c:1878:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModInv':
+../Src/base/bignum.c:2019:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Rzn2zn':
+../Src/base/bignum.c:2093:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Mul':
+../Src/base/bignum.c:2171:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Init':
+../Src/base/bignum.c:2328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Free':
+../Src/base/bignum.c:2343:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_num_bits':
+../Src/base/bignum.c:2369:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Set':
+../Src/base/bignum.c:2300:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_UINT32_num_bits':
+../Src/base/bignum.c:2398:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_INT_num_bits':
+../Src/base/bignum.c:2424:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp':
+../Src/base/bignum.c:2502:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp2':
+../Src/base/bignum.c:2584:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_CheckRelativelyPrime':
+../Src/base/bignum.c:2643:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_MILLER_RABIN':
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: At top level:
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+des.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/des.c -o ../gcc/build/linux/base/des.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/des.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/des.c: In function 'SDRM_DES_KeySched':
+../Src/base/des.c:79:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES_Encryption':
+../Src/base/des.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Encryption':
+../Src/base/des.c:145:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Decryption':
+../Src/base/des.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecc.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/ecc.c -o ../gcc/build/linux/base/ecc.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ecc.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ecc.c: In function 'SDRM_ECC_Init':
+../Src/base/ecc.c:47:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CURVE_Init':
+../Src/base/ecc.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CHECK_EC_POINT_ZERO':
+../Src/base/ecc.c:121:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jm2Jc':
+../Src/base/ecc.c:157:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jc2Jm':
+../Src/base/ecc.c:190:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add':
+../Src/base/ecc.c:283:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jc':
+../Src/base/ecc.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add_Jc':
+../Src/base/ecc.c:414:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jm':
+../Src/base/ecc.c:607:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Chain':
+../Src/base/ecc.c:784:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_kP':
+../Src/base/ecc.c:989:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_2kP':
+../Src/base/ecc.c:1274:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+fast_math.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/fast_math.c -o ../gcc/build/linux/base/fast_math.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/fast_math.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/fast_math.c: In function 'SDRM_ll_Cmp':
+../Src/base/fast_math.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Copy':
+../Src/base/fast_math.c:73:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_RShift':
+../Src/base/fast_math.c:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_LShift':
+../Src/base/fast_math.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSW':
+../Src/base/fast_math.c:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSB':
+../Src/base/fast_math.c:174:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitValue':
+../Src/base/fast_math.c:191:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitsValue':
+../Src/base/fast_math.c:245:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Add':
+../Src/base/fast_math.c:280:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_AddCarry':
+../Src/base/fast_math.c:311:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Sub':
+../Src/base/fast_math.c:340:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul1':
+../Src/base/fast_math.c:375:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd1':
+../Src/base/fast_math.c:410:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd':
+../Src/base/fast_math.c:431:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul':
+../Src/base/fast_math.c:453:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Square':
+../Src/base/fast_math.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Rem':
+../Src/base/fast_math.c:539:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Inverse':
+../Src/base/fast_math.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Rem':
+../Src/base/fast_math.c:617:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Square':
+../Src/base/fast_math.c:646:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Mul':
+../Src/base/fast_math.c:689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_ExpMod':
+../Src/base/fast_math.c:906:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hash.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/hash.c -o ../gcc/build/linux/base/hash.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/hash.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/hash.c: In function 'SDRM_SHA1_init':
+../Src/base/hash.c:43:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_update':
+../Src/base/hash.c:66:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_final':
+../Src/base/hash.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_hash':
+../Src/base/hash.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_init':
+../Src/base/hash.c:135:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_update':
+../Src/base/hash.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_final':
+../Src/base/hash.c:179:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_hash':
+../Src/base/hash.c:205:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_init':
+../Src/base/hash.c:226:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_update':
+../Src/base/hash.c:249:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_final':
+../Src/base/hash.c:270:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_hash':
+../Src/base/hash.c:296:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_init':
+../Src/base/hash.c:319:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_update':
+../Src/base/hash.c:342:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_final':
+../Src/base/hash.c:364:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_hash':
+../Src/base/hash.c:390:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_init':
+../Src/base/hash.c:411:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_update':
+../Src/base/hash.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_final':
+../Src/base/hash.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_hash':
+../Src/base/hash.c:482:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_init':
+../Src/base/hash.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_update':
+../Src/base/hash.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_final':
+../Src/base/hash.c:550:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_hash':
+../Src/base/hash.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+md5.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/md5.c -o ../gcc/build/linux/base/md5.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/md5.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/md5.c: In function 'SDRM_MD5_Init':
+../Src/base/md5.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Update':
+../Src/base/md5.c:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Final':
+../Src/base/md5.c:165:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+moo.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/moo.c -o ../gcc/build/linux/base/moo.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/moo.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/moo.c: In function 'SDRM_ECB_Enc':
+../Src/base/moo.c:55:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_ECB_Dec':
+../Src/base/moo.c:91:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Enc':
+../Src/base/moo.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Dec':
+../Src/base/moo.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Enc':
+../Src/base/moo.c:289:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Dec':
+../Src/base/moo.c:348:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_OFB_Enc':
+../Src/base/moo.c:407:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CTR_Enc':
+../Src/base/moo.c:485:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+pkcs1_v21.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/pkcs1_v21.c -o ../gcc/build/linux/base/pkcs1_v21.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/pkcs1_v21.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_pkcs15':
+../Src/base/pkcs1_v21.c:155:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pkcs15':
+../Src/base/pkcs1_v21.c:564:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_MGF1':
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pss':
+../Src/base/pkcs1_v21.c:825:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_oaep':
+../Src/base/pkcs1_v21.c:417:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: At top level:
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rc4.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/rc4.c -o ../gcc/build/linux/base/rc4.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/rc4.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/rc4.c: In function 'SDRM_RC4_Setup':
+../Src/base/rc4.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/rc4.c: In function 'SDRM_RC4_PRNG':
+../Src/base/rc4.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha1.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/sha1.c -o ../gcc/build/linux/base/sha1.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha1.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Init':
+../Src/base/sha1.c:137:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Update':
+../Src/base/sha1.c:318:5: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Final':
+../Src/base/sha1.c:367:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_endianTest':
+../Src/base/sha1.c:469:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/sha2.c -o ../gcc/build/linux/base/sha2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Transf':
+../Src/base/sha2.c:321:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Init':
+../Src/base/sha2.c:333:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Update':
+../Src/base/sha2.c:366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Final':
+../Src/base/sha2.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Transf':
+../Src/base/sha2.c:444:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Init':
+../Src/base/sha2.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Update':
+../Src/base/sha2.c:489:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Final':
+../Src/base/sha2.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Init':
+../Src/base/sha2.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Update':
+../Src/base/sha2.c:561:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Final':
+../Src/base/sha2.c:586:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Init':
+../Src/base/sha2.c:601:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Update':
+../Src/base/sha2.c:635:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Final':
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: At top level:
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+snow2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/snow2.c -o ../gcc/build/linux/base/snow2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/snow2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_Setup':
+../Src/base/snow2.c:344:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream64':
+../Src/base/snow2.c:374:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream':
+../Src/base/snow2.c:402:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+cmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/cmac.c -o ../gcc/build/linux/middle/cmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/cmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_init':
+../Src/middle/cmac.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_update':
+../Src/middle/cmac.c:173:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_final':
+../Src/middle/cmac.c:219:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_getMAC':
+../Src/middle/cmac.c:258:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/dh.c -o ../gcc/build/linux/middle/dh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHParam':
+../Src/middle/dh.c:119:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_SetDHParam':
+../Src/middle/dh.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHPrivate':
+../Src/middle/dh.c:232:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GetDHSharedSecret':
+../Src/middle/dh.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_FreeDHContext':
+../Src/middle/dh.c:330:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/dsa.c -o ../gcc/build/linux/middle/dsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dsa.c: In function 'SDRM_Add_DW2BA':
+../Src/middle/dsa.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_InitCrt':
+../Src/middle/dsa.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetParam':
+../Src/middle/dsa.c:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetKeyPair':
+../Src/middle/dsa.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenParam':
+../Src/middle/dsa.c:358:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenKeypair':
+../Src/middle/dsa.c:429:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_sign':
+../Src/middle/dsa.c:509:2: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_verify':
+../Src/middle/dsa.c:600:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdh.c -o ../gcc/build/linux/middle/ecdh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdh.c: In function 'SDRM_generateDH1stPhaseKey':
+../Src/middle/ecdh.c:101:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdh.c: In function 'SDRM_generateDHKey':
+../Src/middle/ecdh.c:202:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdsa.c -o ../gcc/build/linux/middle/ecdsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_KEY_GEN':
+../Src/middle/ecdsa.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_GEN':
+../Src/middle/ecdsa.c:212:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_VERIFY':
+../Src/middle/ecdsa.c:363:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_sign':
+../Src/middle/ecdsa.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_verify':
+../Src/middle/ecdsa.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_Set_CTX':
+../Src/middle/ecdsa.c:531:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_genKeypair':
+../Src/middle/ecdsa.c:598:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_setKeypair':
+../Src/middle/ecdsa.c:662:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/hmac.c -o ../gcc/build/linux/middle/hmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/hmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_update':
+../Src/middle/hmac.c:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_final':
+../Src/middle/hmac.c:433:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_getK0':
+../Src/middle/hmac.c:570:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_init':
+../Src/middle/hmac.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_getMAC':
+../Src/middle/hmac.c:472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rng.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/rng.c -o ../gcc/build/linux/middle/rng.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rng.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rng.c: In function 'SDRM_X931_seed':
+../Src/middle/rng.c:41:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rng.c: In function 'SDRM_X931_get':
+../Src/middle/rng.c:67:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/rsa.c -o ../gcc/build/linux/middle/rsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rsa.c: In function 'SDRM_RSA_InitCrt':
+../Src/middle/rsa.c:58:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNED':
+../Src/middle/rsa.c:105:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNEDPQ':
+../Src/middle/rsa.c:218:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateKey':
+../Src/middle/rsa.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateND':
+../Src/middle/rsa.c:520:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateDwithPQE':
+../Src/middle/rsa.c:665:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_encrypt':
+../Src/middle/rsa.c:762:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decrypt':
+../Src/middle/rsa.c:859:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decryptByCRT':
+../Src/middle/rsa.c:1029:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_sign':
+../Src/middle/rsa.c:1117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_verify':
+../Src/middle/rsa.c:1206:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+symmetric.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/symmetric.c -o ../gcc/build/linux/middle/symmetric.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/symmetric.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/symmetric.c: In function 'SDRM_getEncRoundKey':
+../Src/middle/symmetric.c:68:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_getDecRoundKey':
+../Src/middle/symmetric.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_init':
+../Src/middle/symmetric.c:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_process':
+../Src/middle/symmetric.c:351:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_final':
+../Src/middle/symmetric.c:606:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_init':
+../Src/middle/symmetric.c:638:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_process':
+../Src/middle/symmetric.c:670:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_init':
+../Src/middle/symmetric.c:703:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_process':
+../Src/middle/symmetric.c:797:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_init':
+../Src/middle/symmetric.c:860:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_process':
+../Src/middle/symmetric.c:1014:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_final':
+../Src/middle/symmetric.c:1231:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_init':
+../Src/middle/symmetric.c:1306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_process':
+../Src/middle/symmetric.c:1460:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_final':
+../Src/middle/symmetric.c:1679:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+tdes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/tdes.c -o ../gcc/build/linux/middle/tdes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/tdes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/tdes.c: In function 'SDRM_TDES_KeySched':
+../Src/middle/tdes.c:65:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES_Encryption':
+../Src/middle/tdes.c:86:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Encryption':
+../Src/middle/tdes.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Decryption':
+../Src/middle/tdes.c:129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+CC_API.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/CC_API.c -o ../gcc/build/linux/CC_API.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/CC_API.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/CC_API.c: In function 'CCMalloc':
+../Src/CC_API.c:46:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'CCFree':
+../Src/CC_API.c:54:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'create_CryptoCoreContainer':
+../Src/CC_API.c:336:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'destroy_CryptoCoreContainer':
+../Src/CC_API.c:438:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+DRMLog.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/DRMLog.c -o ../gcc/build/linux/DRMLog.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/DRMLog.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+SDWAP.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP.c -o ../gcc/build/linux/WhiteBox/SDWAP.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP.c: In function 'SDWAP_Process':
+../Src/WhiteBox/SDWAP.c:498:15: warning: variable 'Nk' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP.c: At top level:
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SDWAP_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP_TblGen.c -o ../gcc/build/linux/WhiteBox/SDWAP_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:210:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'MakeEachKeyLookup':
+../Src/WhiteBox/SDWAP_TblGen.c:252:17: warning: unused variable 'pBeforeLKCol' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GeneratePVector':
+../Src/WhiteBox/SDWAP_TblGen.c:1309:15: warning: variable 'rnd' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1566:22: warning: unused variable 'pKeyBitPBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c:1565:23: warning: unused variable 'pKeyBytePBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1372:13: warning: 'SDWAP_GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1418:13: warning: 'SDWAP_GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1464:13: warning: 'SDWAP_GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1494:13: warning: 'SDWAP_ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1522:13: warning: 'SDWAP_RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation_LK':
+../Src/WhiteBox/SDWAP_TblGen.c:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:521:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_ProcessBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:590:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2.c -o ../gcc/build/linux/WhiteBox/SWAPv2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2.c: In function 'SWAPv2_Process':
+../Src/WhiteBox/SWAPv2.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2_TblGen.c -o ../gcc/build/linux/WhiteBox/SWAPv2_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:275:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBytePBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:434:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+../Src/WhiteBox/SWAPv2_TblGen.c: At top level:
+../Src/WhiteBox/SWAPv2_TblGen.c:1119:13: warning: 'GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1165:13: warning: 'GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1211:13: warning: 'GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1241:13: warning: 'ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1269:13: warning: 'RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:294:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBitPBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'SWAPv2_GenerateTable':
+../Src/WhiteBox/SWAPv2_TblGen.c:1456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SAKEP.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/SAKEP.cpp -o ../gcc/build/linux/SAKEP.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SAKEP.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:277:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp:278:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:419:16: warning: unused variable 'pDecryptedGx' [-Wunused-variable]
+../Src/SAKEP.cpp:420:15: warning: unused variable 'nDecryptedGxLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:574:16: warning: unused variable 'pWc' [-Wunused-variable]
+../Src/SAKEP.cpp:575:15: warning: unused variable 'nWcLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5114:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8210:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi()':
+../Src/SAKEP.cpp:64:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi(Handle_CTX*, ModeType)':
+../Src/SAKEP.cpp:76:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void* SAkepApi::SAKEPMalloc(int)':
+../Src/SAKEP.cpp:100:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::SAKEPFree(void*)':
+../Src/SAKEP.cpp:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'SAKEPContainer* SAkepApi::create_SAKEPContainer()':
+../Src/SAKEP.cpp:131:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::destroy_SAKEPContainer(SAKEPContainer*)':
+../Src/SAKEP.cpp:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptGy(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptGx(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GenerateBSPublic(SAKEPContainer*, unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:396:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetGy(unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:560:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerAck(Handle_CTX*, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1201:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParserClientAck(Handle_CTX*, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1323:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1696:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1714:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMyMacLen(unsigned int*)':
+../Src/SAKEP.cpp:1728:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1735:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1744:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1756:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1769:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ApplyPasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1966:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseClientHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ReversePasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:2021:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1681:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:1771:13: warning: 'void X931_Prng(unsigned char*, unsigned char*, unsigned int, unsigned char*)' defined but not used [-Wunused-function]
+SPCApi.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/SPCApi.cpp -o ../gcc/build/linux/SPCApi.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SPCApi.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SPCApi.cpp: In constructor 'SPCApi::SPCApi()':
+../Src/SPCApi.cpp:25:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: At global scope:
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::InitSPCContext(SPCHandle_CTX*, ModeType, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::DestroySPCContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::ClearSPCSessionContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:204:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerAck(SPCHandle_CTX*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientAck(SPCHandle_CTX*, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:265:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:297:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+Util.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/Util.cpp -o ../gcc/build/linux/Util.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/Util.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+-- Archiving static and dynamic library SAKEP Client --
+../gcc/build/linux/libPAKEClient.so ../gcc/build/linux/libPAKEClient.a
+
+jounsun.beak@DO-JOUNSUN-BE02 /d/SPC_Client/jni/SPC/gcc
+$ make clean
+-- Clean --
+
+jounsun.beak@DO-JOUNSUN-BE02 /d/SPC_Client/jni/SPC/gcc
+$ make
+aes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/aes.c -o ../gcc/build/linux/base/aes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/aes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupEnc':
+../Src/base/aes.c:815:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelKeySetupDec':
+../Src/base/aes.c:869:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelEncrypt':
+../Src/base/aes.c:1065:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_rijndaelDecrypt':
+../Src/base/aes.c:1261:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Encryption':
+../Src/base/aes.c:1282:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES128_Decryption':
+../Src/base/aes.c:1303:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Encryption':
+../Src/base/aes.c:1324:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES192_Decryption':
+../Src/base/aes.c:1345:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Encryption':
+../Src/base/aes.c:1366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/aes.c: In function 'SDRM_AES256_Decryption':
+../Src/base/aes.c:1387:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ANSI_x931.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/ANSI_x931.c -o ../gcc/build/linux/base/ANSI_x931.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ANSI_x931.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ANSI_x931.c: In function 'SDRM_RNG_X931':
+../Src/base/ANSI_x931.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+bignum.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/bignum.c -o ../gcc/build/linux/base/bignum.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/bignum.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/bignum.c: In function 'SDRM_DWD_Classical_REDC':
+../Src/base/bignum.c:768:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_DIGIT_Gcd':
+../Src/base/bignum.c:798:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_PrintBN':
+../Src/base/bignum.c:838:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN2OS':
+../Src/base/bignum.c:921:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_I2OSP':
+../Src/base/bignum.c:986:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Clr':
+../Src/base/bignum.c:1004:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Copy':
+../Src/base/bignum.c:1028:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Alloc':
+../Src/base/bignum.c:1053:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Init':
+../Src/base/bignum.c:1079:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp':
+../Src/base/bignum.c:1102:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Cmp_sign':
+../Src/base/bignum.c:1134:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Rand':
+../Src/base/bignum.c:1167:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHL':
+../Src/base/bignum.c:1215:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_OS2BN':
+../Src/base/bignum.c:961:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_SHR':
+../Src/base/bignum.c:1266:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Add':
+../Src/base/bignum.c:1376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Sub':
+../Src/base/bignum.c:1477:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Mul':
+../Src/base/bignum.c:1532:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_Div':
+../Src/base/bignum.c:1633:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModRed':
+../Src/base/bignum.c:1828:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModSub':
+../Src/base/bignum.c:1779:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModAdd':
+../Src/base/bignum.c:1709:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModMul':
+../Src/base/bignum.c:1878:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModInv':
+../Src/base/bignum.c:2019:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Rzn2zn':
+../Src/base/bignum.c:2093:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Mul':
+../Src/base/bignum.c:2171:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Init':
+../Src/base/bignum.c:2328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Free':
+../Src/base/bignum.c:2343:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_num_bits':
+../Src/base/bignum.c:2369:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_MONT_Set':
+../Src/base/bignum.c:2300:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_UINT32_num_bits':
+../Src/base/bignum.c:2398:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_INT_num_bits':
+../Src/base/bignum.c:2424:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp':
+../Src/base/bignum.c:2502:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_ModExp2':
+../Src/base/bignum.c:2584:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_CheckRelativelyPrime':
+../Src/base/bignum.c:2643:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: In function 'SDRM_BN_MILLER_RABIN':
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c: At top level:
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/bignum.c:2748:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+des.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/des.c -o ../gcc/build/linux/base/des.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/des.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/des.c: In function 'SDRM_DES_KeySched':
+../Src/base/des.c:79:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES_Encryption':
+../Src/base/des.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Encryption':
+../Src/base/des.c:145:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/des.c: In function 'SDRM_DES64_Decryption':
+../Src/base/des.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecc.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/ecc.c -o ../gcc/build/linux/base/ecc.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/ecc.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/ecc.c: In function 'SDRM_ECC_Init':
+../Src/base/ecc.c:47:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CURVE_Init':
+../Src/base/ecc.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CHECK_EC_POINT_ZERO':
+../Src/base/ecc.c:121:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jm2Jc':
+../Src/base/ecc.c:157:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_Mont_Jc2Jm':
+../Src/base/ecc.c:190:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add':
+../Src/base/ecc.c:283:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jc':
+../Src/base/ecc.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Add_Jc':
+../Src/base/ecc.c:414:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Double_Jm':
+../Src/base/ecc.c:607:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_Chain':
+../Src/base/ecc.c:784:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_kP':
+../Src/base/ecc.c:989:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/ecc.c: In function 'SDRM_CTX_EC_2kP':
+../Src/base/ecc.c:1274:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+fast_math.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/fast_math.c -o ../gcc/build/linux/base/fast_math.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/fast_math.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/fast_math.c: In function 'SDRM_ll_Cmp':
+../Src/base/fast_math.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Copy':
+../Src/base/fast_math.c:73:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_RShift':
+../Src/base/fast_math.c:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_LShift':
+../Src/base/fast_math.c:124:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSW':
+../Src/base/fast_math.c:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_getMSB':
+../Src/base/fast_math.c:174:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitValue':
+../Src/base/fast_math.c:191:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_bit_getBitsValue':
+../Src/base/fast_math.c:245:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Add':
+../Src/base/fast_math.c:280:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_AddCarry':
+../Src/base/fast_math.c:311:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Sub':
+../Src/base/fast_math.c:340:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul1':
+../Src/base/fast_math.c:375:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd1':
+../Src/base/fast_math.c:410:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_MulAdd':
+../Src/base/fast_math.c:431:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Mul':
+../Src/base/fast_math.c:453:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Square':
+../Src/base/fast_math.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_Rem':
+../Src/base/fast_math.c:539:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Inverse':
+../Src/base/fast_math.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Rem':
+../Src/base/fast_math.c:617:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Square':
+../Src/base/fast_math.c:646:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_mont_Mul':
+../Src/base/fast_math.c:689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/fast_math.c: In function 'SDRM_ll_ExpMod':
+../Src/base/fast_math.c:906:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hash.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/hash.c -o ../gcc/build/linux/base/hash.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/hash.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/hash.c: In function 'SDRM_SHA1_init':
+../Src/base/hash.c:43:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_update':
+../Src/base/hash.c:66:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_final':
+../Src/base/hash.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA1_hash':
+../Src/base/hash.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_init':
+../Src/base/hash.c:135:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_update':
+../Src/base/hash.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_final':
+../Src/base/hash.c:179:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA224_hash':
+../Src/base/hash.c:205:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_init':
+../Src/base/hash.c:226:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_update':
+../Src/base/hash.c:249:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_final':
+../Src/base/hash.c:270:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA256_hash':
+../Src/base/hash.c:296:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_init':
+../Src/base/hash.c:319:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_update':
+../Src/base/hash.c:342:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_final':
+../Src/base/hash.c:364:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA384_hash':
+../Src/base/hash.c:390:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_init':
+../Src/base/hash.c:411:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_update':
+../Src/base/hash.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_final':
+../Src/base/hash.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_SHA512_hash':
+../Src/base/hash.c:482:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_init':
+../Src/base/hash.c:505:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_update':
+../Src/base/hash.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_final':
+../Src/base/hash.c:550:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/hash.c: In function 'SDRM_MD5_hash':
+../Src/base/hash.c:576:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+md5.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/md5.c -o ../gcc/build/linux/base/md5.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/md5.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/md5.c: In function 'SDRM_MD5_Init':
+../Src/base/md5.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Update':
+../Src/base/md5.c:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/md5.c: In function 'SDRM_MD5_Final':
+../Src/base/md5.c:165:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+moo.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/moo.c -o ../gcc/build/linux/base/moo.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/moo.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/moo.c: In function 'SDRM_ECB_Enc':
+../Src/base/moo.c:55:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_ECB_Dec':
+../Src/base/moo.c:91:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Enc':
+../Src/base/moo.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CBC_Dec':
+../Src/base/moo.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Enc':
+../Src/base/moo.c:289:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CFB_Dec':
+../Src/base/moo.c:348:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_OFB_Enc':
+../Src/base/moo.c:407:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/moo.c: In function 'SDRM_CTR_Enc':
+../Src/base/moo.c:485:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+pkcs1_v21.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/pkcs1_v21.c -o ../gcc/build/linux/base/pkcs1_v21.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/pkcs1_v21.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_pkcs15':
+../Src/base/pkcs1_v21.c:155:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pkcs15':
+../Src/base/pkcs1_v21.c:564:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_MGF1':
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsassa_pss':
+../Src/base/pkcs1_v21.c:825:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: In function 'SDRM_Padding_Rsaes_oaep':
+../Src/base/pkcs1_v21.c:417:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c: At top level:
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/pkcs1_v21.c:938:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rc4.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/rc4.c -o ../gcc/build/linux/base/rc4.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/rc4.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/rc4.c: In function 'SDRM_RC4_Setup':
+../Src/base/rc4.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/rc4.c: In function 'SDRM_RC4_PRNG':
+../Src/base/rc4.c:158:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha1.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/sha1.c -o ../gcc/build/linux/base/sha1.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha1.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Init':
+../Src/base/sha1.c:137:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Update':
+../Src/base/sha1.c:318:5: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_SHA1_Final':
+../Src/base/sha1.c:367:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha1.c: In function 'SDRM_endianTest':
+../Src/base/sha1.c:469:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+sha2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/sha2.c -o ../gcc/build/linux/base/sha2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/sha2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Transf':
+../Src/base/sha2.c:321:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Init':
+../Src/base/sha2.c:333:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Update':
+../Src/base/sha2.c:366:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA256_Final':
+../Src/base/sha2.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Transf':
+../Src/base/sha2.c:444:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Init':
+../Src/base/sha2.c:456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Update':
+../Src/base/sha2.c:489:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA512_Final':
+../Src/base/sha2.c:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Init':
+../Src/base/sha2.c:528:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Update':
+../Src/base/sha2.c:561:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA384_Final':
+../Src/base/sha2.c:586:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Init':
+../Src/base/sha2.c:601:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Update':
+../Src/base/sha2.c:635:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: In function 'SDRM_SHA224_Final':
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c: At top level:
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/sha2.c:660:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+snow2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/base/snow2.c -o ../gcc/build/linux/base/snow2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/base/snow2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_Setup':
+../Src/base/snow2.c:344:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream64':
+../Src/base/snow2.c:374:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/base/snow2.c: In function 'SDRM_SNOW2_getKeyStream':
+../Src/base/snow2.c:402:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+cmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/cmac.c -o ../gcc/build/linux/middle/cmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/cmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_init':
+../Src/middle/cmac.c:117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_update':
+../Src/middle/cmac.c:173:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_final':
+../Src/middle/cmac.c:219:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/cmac.c: In function 'SDRM_CMAC_getMAC':
+../Src/middle/cmac.c:258:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/dh.c -o ../gcc/build/linux/middle/dh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHParam':
+../Src/middle/dh.c:119:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_SetDHParam':
+../Src/middle/dh.c:166:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GenerateDHPrivate':
+../Src/middle/dh.c:232:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_GetDHSharedSecret':
+../Src/middle/dh.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dh.c: In function 'SDRM_FreeDHContext':
+../Src/middle/dh.c:330:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+dsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/dsa.c -o ../gcc/build/linux/middle/dsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/dsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/dsa.c: In function 'SDRM_Add_DW2BA':
+../Src/middle/dsa.c:61:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_InitCrt':
+../Src/middle/dsa.c:88:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetParam':
+../Src/middle/dsa.c:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_SetKeyPair':
+../Src/middle/dsa.c:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenParam':
+../Src/middle/dsa.c:358:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_GenKeypair':
+../Src/middle/dsa.c:429:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_sign':
+../Src/middle/dsa.c:509:2: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/dsa.c: In function 'SDRM_DSA_verify':
+../Src/middle/dsa.c:600:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdh.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdh.c -o ../gcc/build/linux/middle/ecdh.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdh.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdh.c: In function 'SDRM_generateDH1stPhaseKey':
+../Src/middle/ecdh.c:101:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdh.c: In function 'SDRM_generateDHKey':
+../Src/middle/ecdh.c:202:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+ecdsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/ecdsa.c -o ../gcc/build/linux/middle/ecdsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/ecdsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_KEY_GEN':
+../Src/middle/ecdsa.c:96:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_GEN':
+../Src/middle/ecdsa.c:212:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_CTX_ECDSA_SIG_VERIFY':
+../Src/middle/ecdsa.c:363:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_sign':
+../Src/middle/ecdsa.c:391:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECDSA_verify':
+../Src/middle/ecdsa.c:434:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_Set_CTX':
+../Src/middle/ecdsa.c:531:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_genKeypair':
+../Src/middle/ecdsa.c:598:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/ecdsa.c: In function 'SDRM_ECC_setKeypair':
+../Src/middle/ecdsa.c:662:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+hmac.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/hmac.c -o ../gcc/build/linux/middle/hmac.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/hmac.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_update':
+../Src/middle/hmac.c:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_final':
+../Src/middle/hmac.c:433:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_getK0':
+../Src/middle/hmac.c:570:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_init':
+../Src/middle/hmac.c:230:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/hmac.c: In function 'SDRM_HMAC_getMAC':
+../Src/middle/hmac.c:472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rng.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/rng.c -o ../gcc/build/linux/middle/rng.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rng.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rng.c: In function 'SDRM_X931_seed':
+../Src/middle/rng.c:41:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rng.c: In function 'SDRM_X931_get':
+../Src/middle/rng.c:67:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+rsa.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/rsa.c -o ../gcc/build/linux/middle/rsa.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/rsa.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/rsa.c: In function 'SDRM_RSA_InitCrt':
+../Src/middle/rsa.c:58:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNED':
+../Src/middle/rsa.c:105:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_setNEDPQ':
+../Src/middle/rsa.c:218:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateKey':
+../Src/middle/rsa.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateND':
+../Src/middle/rsa.c:520:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_GenerateDwithPQE':
+../Src/middle/rsa.c:665:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_encrypt':
+../Src/middle/rsa.c:762:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decrypt':
+../Src/middle/rsa.c:859:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_decryptByCRT':
+../Src/middle/rsa.c:1029:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_sign':
+../Src/middle/rsa.c:1117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/rsa.c: In function 'SDRM_RSA_verify':
+../Src/middle/rsa.c:1206:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+symmetric.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/symmetric.c -o ../gcc/build/linux/middle/symmetric.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/symmetric.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/symmetric.c: In function 'SDRM_getEncRoundKey':
+../Src/middle/symmetric.c:68:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_getDecRoundKey':
+../Src/middle/symmetric.c:114:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_init':
+../Src/middle/symmetric.c:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_process':
+../Src/middle/symmetric.c:351:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_AES_final':
+../Src/middle/symmetric.c:606:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_init':
+../Src/middle/symmetric.c:638:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_RC4_process':
+../Src/middle/symmetric.c:670:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_init':
+../Src/middle/symmetric.c:703:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_SNOW2_process':
+../Src/middle/symmetric.c:797:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_init':
+../Src/middle/symmetric.c:860:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_process':
+../Src/middle/symmetric.c:1014:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_DES_final':
+../Src/middle/symmetric.c:1231:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_init':
+../Src/middle/symmetric.c:1306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_process':
+../Src/middle/symmetric.c:1460:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/symmetric.c: In function 'SDRM_TDES_final':
+../Src/middle/symmetric.c:1679:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+tdes.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/middle/tdes.c -o ../gcc/build/linux/middle/tdes.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/middle/tdes.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/middle/tdes.c: In function 'SDRM_TDES_KeySched':
+../Src/middle/tdes.c:65:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES_Encryption':
+../Src/middle/tdes.c:86:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Encryption':
+../Src/middle/tdes.c:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/middle/tdes.c: In function 'SDRM_TDES64_Decryption':
+../Src/middle/tdes.c:129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+CC_API.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/CC_API.c -o ../gcc/build/linux/CC_API.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/CC_API.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/CC_API.c: In function 'CCMalloc':
+../Src/CC_API.c:46:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'CCFree':
+../Src/CC_API.c:54:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'create_CryptoCoreContainer':
+../Src/CC_API.c:336:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/CC_API.c: In function 'destroy_CryptoCoreContainer':
+../Src/CC_API.c:438:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+DRMLog.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/DRMLog.c -o ../gcc/build/linux/DRMLog.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/DRMLog.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+SDWAP.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP.c -o ../gcc/build/linux/WhiteBox/SDWAP.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP.c: In function 'SDWAP_Process':
+../Src/WhiteBox/SDWAP.c:498:15: warning: variable 'Nk' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP.c: At top level:
+../Src/WhiteBox/SDWAP.c:569:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SDWAP_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SDWAP_TblGen.c -o ../gcc/build/linux/WhiteBox/SDWAP_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:210:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'MakeEachKeyLookup':
+../Src/WhiteBox/SDWAP_TblGen.c:252:17: warning: unused variable 'pBeforeLKCol' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GeneratePVector':
+../Src/WhiteBox/SDWAP_TblGen.c:1309:15: warning: variable 'rnd' set but not used [-Wunused-but-set-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1566:22: warning: unused variable 'pKeyBitPBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c:1565:23: warning: unused variable 'pKeyBytePBox' [-Wunused-variable]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1372:13: warning: 'SDWAP_GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1418:13: warning: 'SDWAP_GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1464:13: warning: 'SDWAP_GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1494:13: warning: 'SDWAP_ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c:1522:13: warning: 'SDWAP_RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation':
+../Src/WhiteBox/SDWAP_TblGen.c:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_BitPermutation_LK':
+../Src/WhiteBox/SDWAP_TblGen.c:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:521:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_ProcessBitPBox':
+../Src/WhiteBox/SDWAP_TblGen.c:590:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: In function 'SDWAP_GenerateTable':
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c: At top level:
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SDWAP_TblGen.c:1722:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2.c -o ../gcc/build/linux/WhiteBox/SWAPv2.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2.c: In function 'SWAPv2_Process':
+../Src/WhiteBox/SWAPv2.c:306:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SWAPv2_TblGen.c
+gcc -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/WhiteBox/SWAPv2_TblGen.c -o ../gcc/build/linux/WhiteBox/SWAPv2_TblGen.o
+cc1.exe: warning: command line option '-fpermissive' is valid for C++/ObjC++ but not for C [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:275:25: warning: initialization makes integer from pointer without a cast [enabled by default]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBytePBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:434:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
+../Src/WhiteBox/SWAPv2_TblGen.c: At top level:
+../Src/WhiteBox/SWAPv2_TblGen.c:1119:13: warning: 'GeneratePVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1165:13: warning: 'GenerateInvPVector_fst' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1211:13: warning: 'GenerateInvPVector_fstest' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1241:13: warning: 'ConvertPBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c:1269:13: warning: 'RandomizePBox' defined but not used [-Wunused-function]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'BitPermutation':
+../Src/WhiteBox/SWAPv2_TblGen.c:294:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'ProcessBitPBox':
+../Src/WhiteBox/SWAPv2_TblGen.c:376:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/WhiteBox/SWAPv2_TblGen.c: In function 'SWAPv2_GenerateTable':
+../Src/WhiteBox/SWAPv2_TblGen.c:1456:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+SAKEP.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/SAKEP.cpp -o ../gcc/build/linux/SAKEP.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SAKEP.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:277:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp:278:29: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:419:16: warning: unused variable 'pDecryptedGx' [-Wunused-variable]
+../Src/SAKEP.cpp:420:15: warning: unused variable 'nDecryptedGxLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:574:16: warning: unused variable 'pWc' [-Wunused-variable]
+../Src/SAKEP.cpp:575:15: warning: unused variable 'nWcLen' [-Wunused-variable]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5114:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8210:34: warning: cast from type 'const unsigned char*' to type 'unsigned char*' casts away qualifiers [-Wcast-qual]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi()':
+../Src/SAKEP.cpp:64:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In constructor 'SAkepApi::SAkepApi(Handle_CTX*, ModeType)':
+../Src/SAKEP.cpp:76:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void* SAkepApi::SAKEPMalloc(int)':
+../Src/SAKEP.cpp:100:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::SAKEPFree(void*)':
+../Src/SAKEP.cpp:108:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'SAKEPContainer* SAkepApi::create_SAKEPContainer()':
+../Src/SAKEP.cpp:131:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::destroy_SAKEPContainer(SAKEPContainer*)':
+../Src/SAKEP.cpp:146:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptGy(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:188:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptGx(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:229:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_SetBSParam(SAKEPContainer*, const unsigned char*, unsigned int, const unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:285:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GenerateBSPublic(SAKEPContainer*, unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:396:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SAKEP_GetAuthClient(unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:514:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetGy(unsigned char*, unsigned int, unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:560:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerAck(Handle_CTX*, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1201:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParserClientAck(Handle_CTX*, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1323:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1689:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPrivatekeyY(unsigned char*)':
+../Src/SAKEP.cpp:1696:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1714:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMac(unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetMyMacLen(unsigned int*)':
+../Src/SAKEP.cpp:1728:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::SetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1735:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GetPublicKeyY(unsigned char*)':
+../Src/SAKEP.cpp:1744:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::EncryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1756:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorServerHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:721:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::DecryptParameterDataWithWB(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:1769:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ApplyKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:5117:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ApplyPasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1966:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseClientHello(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SAKEP.cpp:1129:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'void SAkepApi::ReverseKeyTransform(unsigned char*, unsigned char*)':
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ReversePasswordTransform(unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:2021:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::ParseRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1681:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: In member function 'int SAkepApi::GeneratorRecordMsg(Handle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SAKEP.cpp:1472:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp: At global scope:
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:8213:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SAKEP.cpp:1771:13: warning: 'void X931_Prng(unsigned char*, unsigned char*, unsigned int, unsigned char*)' defined but not used [-Wunused-function]
+SPCApi.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/SPCApi.cpp -o ../gcc/build/linux/SPCApi.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/SPCApi.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/SPCApi.cpp: In constructor 'SPCApi::SPCApi()':
+../Src/SPCApi.cpp:25:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: At global scope:
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::InitSPCContext(SPCHandle_CTX*, ModeType, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:98:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::DestroySPCContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:130:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'void SPCApi::ClearSPCSessionContext(SPCHandle_CTX*)':
+../Src/SPCApi.cpp:139:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:172:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerHello(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:204:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorServerAck(SPCHandle_CTX*, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:235:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseClientAck(SPCHandle_CTX*, unsigned char*, unsigned int)':
+../Src/SPCApi.cpp:265:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::GeneratorRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:297:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+../Src/SPCApi.cpp: In member function 'int SPCApi::ParseRecordMsg(SPCHandle_CTX*, unsigned char*, unsigned int, unsigned char*, unsigned int*)':
+../Src/SPCApi.cpp:328:1: warning: visibility attribute not supported in this configuration; ignored [-Wattributes]
+Util.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/Util.cpp -o ../gcc/build/linux/Util.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/Util.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+DtcpCTcpSocket.cpp
+g++ -O2 -D__linux -DLINUX -DUNIX -DMTHREAD -D_REENTRANT -DPRINT_LOG -D_WIN32_ -Wall -Wextra -Wcast-align -Wno-unused-parameter -Wshadow -Wwrite-strings -Wcast-qual -fstrict-aliasing -fsigned-char -ffunction-sections -fdata-sections -fPIC -Wstrict-prototypes -fpermissive -I../Inc -I../Inc/middle -I.
+./Inc/base -I../Inc/WhiteBox -c ../Src/DtcpCTcpSocket.cpp -o ../gcc/build/linux/DtcpCTcpSocket.o
+cc1plus.exe: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
+../Src/DtcpCTcpSocket.cpp:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
+../Src/DtcpCTcpSocket.cpp: In member function 'long int DtcpCTcpSocket::connectSocket(sockaddr_in*)':
+../Src/DtcpCTcpSocket.cpp:330:26: error: 'GetLocalIP' was not declared in this scope
+../Src/DtcpCTcpSocket.cpp:344:10: warning: unused variable 'i' [-Wunused-variable]
+make: *** [../gcc/build/linux/DtcpCTcpSocket.o] Error 1
+
+jounsun.beak@DO-JOUNSUN-BE02 /d/SPC_Client/jni/SPC/gcc
+$ \ No newline at end of file
diff --git a/src/SPCManager.cpp b/src/SPCManager.cpp
new file mode 100755
index 0000000..ee3531a
--- /dev/null
+++ b/src/SPCManager.cpp
@@ -0,0 +1,184 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#ifdef OS_LINUX
+#include <sys/socket.h>
+#endif
+
+#ifdef OS_WINDOWS
+#include <winsock.h>
+#include <windows.h>
+#endif
+
+#include <fcntl.h>
+#include "SPCManager.h"
+#include <errno.h>
+
+#define MESSAGE_LENGTH 4096
+#define PWD_LENGTH 8
+#define PWD_MAX_LENGTH 8
+#define DATA_LENGTH_PACKET_LENGTH 10
+
+#define D(format, arg...) void() //LOGI
+
+
+int SPC_Init(void* SPC_context, void* SPC_Server, unsigned char *pUserID)
+{
+ if(!SPC_context || !SPC_Server || !pUserID){
+ D("Invalid argument : SPC_context=[0x%p] SPC_Server=[0x%p] pUserID=[0x%p]", SPC_context, SPC_Server, pUserID );
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ SPCHandle_CTX* m_Ctx = (SPCHandle_CTX*)SPC_context;
+ m_Ctx->LoginTryCount = SPC_LOGIN_LIMITED_COUNT;
+
+ SPCApi* SPCServer = (SPCApi*)SPC_Server;
+ reVal = SPCServer->InitSPCContext(m_Ctx, CLIENT_MODE, pUserID, strlen((char*)pUserID));
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC Init Error type : %d\n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+ m_Ctx->ctx.eState = STATE_WAIT_SERVERHELLO;
+ m_Ctx->LoginTryCount = 5;
+
+ return SPC_SUCCESS; // SPC_SUCCESS
+}
+
+int SPC_GenServerHello(SPCApi* SPCServer, SPCHandle_CTX * SPC_context, unsigned char* pServerOutMsg, unsigned int* LenpServerOutMsg)
+{
+ if(!SPCServer || !SPC_context || !pServerOutMsg || !LenpServerOutMsg){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] pServerOutMsg=[0x%p] LenpServerOutMsg=[0x%p]", SPCServer, SPC_context, pServerOutMsg,LenpServerOutMsg );
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ unsigned char pPwd[PWD_MAX_LENGTH];
+ memcpy(pPwd, "PASSWORD", PWD_LENGTH);
+
+ reVal = SPCServer->GeneratorServerHello(SPC_context, pPwd, PWD_LENGTH, SPC_context->pUserID, pServerOutMsg, LenpServerOutMsg);
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC GenServerHello Error type : %d\n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+
+ return SPC_SUCCESS;
+}
+
+int SPC_ParseClientHello(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* ReadMsg, unsigned int* LenReadMsg)
+{
+ if(!SPCServer || !SPC_context || !ReadMsg || !LenReadMsg){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] ReadMsg=[0x%p] LenReadMsg=[0x%p]", SPCServer, SPC_context, ReadMsg, LenReadMsg );
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ unsigned char pPwd[PWD_MAX_LENGTH];
+ memcpy(pPwd, "PASSWORD", PWD_LENGTH);
+ reVal = SPCServer->ParseClientHello(SPC_context, pPwd, PWD_LENGTH, ReadMsg, *LenReadMsg);
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC ParseClientHello Error type : %d\n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+ return SPC_SUCCESS;
+}
+
+int SPC_GenServerAck(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* pServerAckOutMsg, unsigned int* LenpServerAckOutMsg)
+{
+ if(!SPCServer || !SPC_context || !pServerAckOutMsg || !LenpServerAckOutMsg){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] pServerAckOutMsg=[0x%p] LenpServerAckOutMsg=[0x%p]", SPCServer, SPC_context, pServerAckOutMsg, LenpServerAckOutMsg);
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ reVal = SPCServer->GeneratorServerAck(SPC_context, pServerAckOutMsg, LenpServerAckOutMsg);
+ if( reVal != SPC_SUCCESS )
+ {
+ D("SPC Generator Server Ack Error type : %d \n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+ return SPC_SUCCESS;
+}
+
+int SPC_ParseClientAck(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* ReadMsg, unsigned int* LenReadMsg)
+{
+ if(!SPCServer || !SPC_context || !ReadMsg || !LenReadMsg){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] ReadMsg=[0x%p] LenReadMsg=[0x%p]", SPCServer, SPC_context, ReadMsg, LenReadMsg );
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ reVal = SPCServer->ParseClientAck(SPC_context, ReadMsg, *LenReadMsg);
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC ParseClientrAck Error type : %d\n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+ return SPC_SUCCESS;
+
+}
+
+int SPC_ParseRecordMsg(SPCApi* SPCServer, SPCHandle_CTX* SPC_context,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen,unsigned char* pPlainData , unsigned int* uPlainDataLen)
+{
+ if(!SPCServer || !SPC_context || !pEncryptedData || !pPlainData || !uPlainDataLen || uEncryptedDataLen <= 0){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] pEncryptedData=[0x%p] uEncryptedDataLen=[0x%p] pPlainData=[0x%p] uPlainDataLen=[0x%p]",
+ SPCServer, SPC_context, pEncryptedData, uEncryptedDataLen, pPlainData, uPlainDataLen );
+ return -2;
+ }
+
+ int reVal=SPC_SUCCESS;
+
+ reVal = SPCServer->ParseRecordMsg(SPC_context, pEncryptedData , uEncryptedDataLen , pPlainData , uPlainDataLen);
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC Parse Record Msg Error type : %d \n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+
+ return SPC_SUCCESS;
+}
+
+int SPC_GenRecordMsg(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* pPlainData , unsigned int uPlainDataLen, unsigned char* pEncryptedData , unsigned int *uEncryptedDataLen)
+{
+ if(!SPCServer || !SPC_context || !pPlainData || !pEncryptedData || !uEncryptedDataLen || uPlainDataLen <= 0){
+ D("Invalid argument : SPCServer=[0x%p] SPC_context=[0x%p] pPlainData=[0x%p] uPlainDataLen=[0x%p] pEncryptedData=[0x%p] uEncryptedDataLen=[0x%p]",
+ SPCServer, SPC_context, pPlainData, uPlainDataLen, pEncryptedData, uEncryptedDataLen );
+ return -2;
+ }
+
+ int reVal = SPC_SUCCESS;
+
+ reVal = SPCServer->GeneratorRecordMsg(SPC_context, pPlainData , uPlainDataLen ,pEncryptedData , uEncryptedDataLen);
+ if(reVal != SPC_SUCCESS)
+ {
+ D("SPC Gen Record Msg Error type : %d \n", SPC_context->ctx.eErrorType);
+ return -1;
+ }
+
+ return SPC_SUCCESS;
+}
+
+unsigned char* constChar_to_unsignedChar(const char * InputChar)
+{
+ unsigned char* OutputChar = (unsigned char *)InputChar;
+ return OutputChar;
+}
+
+char *int_to_char(int num, char *str, int size)
+{
+ if(str == NULL)
+ {
+ return NULL;
+ }
+ snprintf(str, size, "%d", num);
+ return str;
+}
diff --git a/src/SPCManager.h b/src/SPCManager.h
new file mode 100755
index 0000000..2b2b8a6
--- /dev/null
+++ b/src/SPCManager.h
@@ -0,0 +1,20 @@
+#ifndef __SPCMANAGER_H__
+#define __SPCMANAGER_H__
+
+#include "SPCApi.h"
+
+typedef int (*READX_PTR)(int fd, void* buffer, size_t r_length);
+typedef int (*WRITEX_PTR)(int fd, const void* buffer, size_t w_length);
+
+int SPC_Init(void* SPC_context, void* SPC_Server, unsigned char *pUserID);
+int SPC_GenServerHello(SPCApi* SPCServer, SPCHandle_CTX * SPC_context, unsigned char* pServerOutMsg, unsigned int* LenpServerOutMsg);
+int SPC_ParseClientHello(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* ReadMsg, unsigned int* LenReadMsg);
+int SPC_GenServerAck(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* pServerAckOutMsg, unsigned int* LenpServerAckOutMsg);
+int SPC_ParseClientAck(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* ReadMsg, unsigned int* LenReadMsg);
+int SPC_ParseRecordMsg(SPCApi* SPCServer, SPCHandle_CTX* SPC_context,unsigned char* pEncryptedData , unsigned int uEncryptedDataLen,unsigned char* pPlainData , unsigned int* uPlainDataLen);
+int SPC_GenRecordMsg(SPCApi* SPCServer, SPCHandle_CTX* SPC_context, unsigned char* pPlainData , unsigned int uPlainDataLen, unsigned char* pEncryptedData , unsigned int *uEncryptedDataLen);
+
+unsigned char* constChar_to_unsignedChar(const char * InputChar);
+char *int_to_char(int num, char *str, int size);
+
+#endif
diff --git a/src/auto_complete.c b/src/auto_complete.c
index 986a26a..e2c8990 100644
--- a/src/auto_complete.c
+++ b/src/auto_complete.c
@@ -63,7 +63,7 @@ static int COMPLETE_FLAG = 0;
static FILE* AC_STDOUT = NULL;
static FILE* AC_STDERR = NULL;
static const char IFS = '\n';
-static const char PATH_SEPARATOR = '\/';
+static const char PATH_SEPARATOR = '/';
static struct ac_element emulator_short = {
.keyword = "-e",
diff --git a/src/command_function.c b/src/command_function.c
index bf8670e..c1dd357 100644
--- a/src/command_function.c
+++ b/src/command_function.c
@@ -894,7 +894,7 @@ static int get_pkg_tmp_dir(char* pkg_tmp_dir){
}
if (read_line(fd, buf, sizeof(buf)) > 0) {
D("package dir = %s\n", buf);
- append_file(pkg_tmp_dir, buf, "\/tmp\/", PATH_MAX);
+ append_file(pkg_tmp_dir, buf, "/tmp/", PATH_MAX);
D("package tmp dir = %s\n", pkg_tmp_dir);
sdb_close(fd);
return 0;
@@ -1007,3 +1007,79 @@ int get_boot(int argc, char ** argv) {
}
return 1;
}
+
+#ifdef SUPPORT_ENCRYPT
+/*
+desc. : capability를 통한 encryption support check
+parameter :
+ret. : 1 : if current device support encryption
+*/
+int check_encryption_support() {
+ char full_cmd[16] = {0,};
+ char cap_buffer[CAPBUF_SIZE] = {0,};
+ uint16_t len = 0;
+ int supported = 0;
+ int fd = -1;
+ char* failmsg = NULL;
+ int ret;
+
+ snprintf(full_cmd, sizeof(full_cmd), "capability:");
+ fd = sdb_connect_getfailmsg(full_cmd, &failmsg);
+ if (fd >= 0) {
+ readx(fd, &len, sizeof(uint16_t));
+ if (len > CAPBUF_SIZE-1) {
+ len = CAPBUF_SIZE-1;
+ }
+ readx(fd, cap_buffer, len);
+ sdb_close(fd);
+
+ ret = match_capability_key_value(cap_buffer, "encryption_support", "enabled");
+ if (ret == 1) {
+ supported = 1;
+ }
+ } else {
+ D("This platform does not support the capability service.\n");
+ if (failmsg != NULL) {
+ D("sdb_connect() fail message : %s\n", failmsg);
+ SAFE_FREE(failmsg);
+ }
+ }
+
+ return supported;
+}
+
+/*
+encryption command function
+return 0 if command succeed
+return 1 otherwise
+*/
+int encryption(int argc, char ** argv)
+{
+ char *tmp;
+ char full_cmd[PATH_MAX] = {0, };
+ char prefix[NAME_MAX] = {0, };
+
+ // check whether sdbd support encryption feature or not
+ if(check_encryption_support() == 0) {
+ printf("This feature is not supported by current devices\n");
+ } else {
+ // prefix = host-any:
+ get_host_prefix(prefix, NAME_MAX, target_ttype, target_serial, host);
+
+ // ex) host-any:encryption:on
+ snprintf(full_cmd, sizeof(full_cmd), "%sencryption:%s", prefix, argv[1]);
+
+ D(COMMANDLINE_MSG_FULL_CMD, argv[0], full_cmd);
+
+ // use sdb_query because encryption command is not remote command
+ tmp = sdb_query(full_cmd);
+
+ if(tmp) {
+ printf("%s", tmp);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+#endif
diff --git a/src/command_function.h b/src/command_function.h
index 60ea086..ac01845 100644
--- a/src/command_function.h
+++ b/src/command_function.h
@@ -64,4 +64,8 @@ int shell(int argc, char ** argv);
int get_capability(int argc, char ** argv);
int get_boot(int argc, char ** argv);
+#ifdef SUPPORT_ENCRYPT
+int encryption(int argc, char ** argv); // encryption command
+#endif
+
#endif /* COMMAND_FUNCTION_H_ */
diff --git a/src/commandline.c b/src/commandline.c
index d92f127..51eb3ee 100755
--- a/src/commandline.c
+++ b/src/commandline.c
@@ -799,7 +799,14 @@ static void create_cmd_list(LIST_NODE** cmd_list) {
create_command(&boot_cmd, COMMANDLINE_BOOT_NAME, NULL, 0, EMPTY_STRING,
get_boot, COMMANDLINE_BOOT_MAX_ARG, COMMANDLINE_BOOT_MIN_ARG);
prepend(cmd_list, boot_cmd);
-
+
+#ifdef SUPPORT_ENCRYPT
+ // encryption command
+ COMMAND* encryption_cmd = NULL;
+ create_command(&encryption_cmd, COMMANDLINE_ENCRYPTION_NAME, COMMANDLINE_ENCRYPTION_DESC, COMMANDLINE_ENCRYPTION_DESC_SIZE, COMMANDLINE_ENCRYPTION_ARG_DESC,
+ encryption, COMMANDLINE_ENCRYPTION_MAX_ARG, COMMANDLINE_ENCRYPTION_MIN_ARG);
+ prepend(cmd_list, encryption_cmd);
+#endif
}
int process_cmdline(int argc, char** argv) {
diff --git a/src/common_modules.h b/src/common_modules.h
index 1a58b41..33ad364 100644
--- a/src/common_modules.h
+++ b/src/common_modules.h
@@ -29,7 +29,6 @@
#include "linkedlist.h"
#include "fdevent.h"
-#include "fdevent.h"
#define MAX_PAYLOAD_V1 (4*1024)
#define MAX_PAYLOAD_V2 (256*1024)
@@ -212,6 +211,11 @@ struct atransport
char *device_name;
platform_type platform;
+
+#ifdef SUPPORT_ENCRYPT
+ unsigned encryption; // flag whether this transport is on encryption, 0 = no-encryption / 1 = encryption
+ int sessionID; // session id for encryption, key of encryption map
+#endif
};
diff --git a/src/encryption.cpp b/src/encryption.cpp
new file mode 100755
index 0000000..419a283
--- /dev/null
+++ b/src/encryption.cpp
@@ -0,0 +1,259 @@
+#include "SPCManager.h"
+#include "log.h"
+#include <map>
+
+typedef struct _SessionInfo {
+ int nSessionID;
+ SPCHandle_CTX* pCtx;
+ SPCApi* pApi;
+} SessionInfo;
+
+typedef std::map<int, SessionInfo> SessionInfoList;
+SessionInfoList sessionInfoList;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_USERID 20
+
+int security_init(const int nSessionID, const char* pUserID)
+{
+ D("In");
+
+ D("sessionInfoList.size() = [%d]", sessionInfoList.size());
+ // If already exist, erase
+ sessionInfoList.erase(nSessionID);
+
+ // Add session info
+ sessionInfoList[nSessionID].nSessionID = nSessionID;
+ //sessionInfoList[nSessionID].pValue = NULL;
+ D("sessionInfoList.size() = [%d]", sessionInfoList.size());
+ D("sessionInfoList[nSessionID].nSessionID = [%d]", sessionInfoList[nSessionID].nSessionID);
+
+ SPCHandle_CTX* pCtx = new SPCHandle_CTX();
+ SPCApi* pApi = new SPCApi();
+
+ sessionInfoList[nSessionID].pCtx = pCtx;
+ sessionInfoList[nSessionID].pApi = pApi;
+
+ unsigned char szTempUserID[MAX_USERID];
+ memset(szTempUserID, 0x00, MAX_USERID);
+ if(pUserID == NULL)
+ {
+ memcpy(szTempUserID, "USER", 4);
+ } else {
+ if( MAX_USERID < strlen(pUserID) ){
+ D("USERID is too long");
+ return -1;
+ }
+ memcpy(szTempUserID, pUserID, strlen(pUserID));
+ }
+
+ int reVal = 0;
+ reVal = SPC_Init(pCtx, pApi, szTempUserID);
+ if( reVal != 0 )
+ {
+ D("SPC handshake fail");
+ return -1;
+ }
+
+ D("SPC handshake OK");
+ return 1;
+}
+
+int security_gen_server_hello(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen)
+{
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ if ( !sessionInfoList[nSessionID].pApi || !sessionInfoList[nSessionID].pCtx)
+ {
+ D("Invalid session : sessionInfoList[nSessionID].pApi=[0x%p], sessionInfoList[nSessionID].pCtx=[0x%p]", sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx);
+ return -1;
+ }
+
+ int reVal = 0;
+ reVal = SPC_GenServerHello(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx, pSrc, nSrcLen);
+ if( reVal != 0 )
+ {
+ D("SPC Generate Server Hello Message fail");
+ return 0;
+ }
+
+ return 1;
+}
+
+int security_parse_client_hello(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen)
+{
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ if ( !sessionInfoList[nSessionID].pApi || !sessionInfoList[nSessionID].pCtx)
+ {
+ D("Invalid session : sessionInfoList[nSessionID].pApi=[0x%p], sessionInfoList[nSessionID].pCtx=[0x%p]", sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx);
+ return -1;
+ }
+
+ int reVal = 0;
+ reVal = SPC_ParseClientHello(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx, pSrc, nSrcLen);
+ if( reVal != 0 )
+ {
+ D("SPC Parse Client Hello Message fail");
+ return 0;
+ }
+
+ return 1;
+}
+
+int security_gen_server_ack(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen)
+{
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ if ( !sessionInfoList[nSessionID].pApi || !sessionInfoList[nSessionID].pCtx)
+ {
+ D("Invalid session : sessionInfoList[nSessionID].pApi=[0x%p], sessionInfoList[nSessionID].pCtx=[0x%p]", sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx);
+ return -1;
+ }
+
+ int reVal = 0;
+ reVal = SPC_GenServerAck(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx, pSrc, nSrcLen);
+ if( reVal != 0 )
+ {
+ D("SPC Generate Server Ack Message fail");
+ return 0;
+ }
+
+ return 1;
+}
+
+int security_parse_client_ack(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen)
+{
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ if ( !sessionInfoList[nSessionID].pApi || !sessionInfoList[nSessionID].pCtx)
+ {
+ D("Invalid session : sessionInfoList[nSessionID].pApi=[0x%p], sessionInfoList[nSessionID].pCtx=[0x%p]", sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx);
+ return -1;
+ }
+
+ int reVal = 0;
+ reVal = SPC_ParseClientAck(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx, pSrc, nSrcLen);
+ if( reVal != 0 )
+ {
+ D("SPC Parse Client Ack Message fail");
+ return 0;
+ }
+
+ return 1;
+}
+
+int security_deinit(const int nSessionID)
+{
+ if( sessionInfoList[nSessionID].pCtx ) {
+ free(sessionInfoList[nSessionID].pCtx);
+ sessionInfoList[nSessionID].pCtx = NULL;
+ }
+ else {
+ return -1;
+ }
+
+ if( sessionInfoList[nSessionID].pApi ) {
+ free(sessionInfoList[nSessionID].pApi);
+ sessionInfoList[nSessionID].pCtx = NULL;
+ }
+ else {
+ return -1;
+ }
+
+ return 1;
+}
+
+int security_encrypt(const int nSessionID, unsigned char* pSrc, unsigned int *nSrcLen)
+{
+ D("security_encrypt is called\n");
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ unsigned char *szTemp;
+ szTemp = (unsigned char *)malloc(*nSrcLen + SAKEP_AKE_MSG_RECORD_FIXED_LEN + SAKEP_AES_ECB_ADDED_PADDING_SIZE);
+ memset(szTemp, 0x00, *nSrcLen + SAKEP_AKE_MSG_RECORD_FIXED_LEN + SAKEP_AES_ECB_ADDED_PADDING_SIZE);
+ unsigned int nDstLen = 0;
+
+ if ( !sessionInfoList[nSessionID].pApi || !sessionInfoList[nSessionID].pCtx)
+ {
+ D("Invalid session : sessionInfoList[nSessionID].pApi=[0x%p], sessionInfoList[nSessionID].pCtx=[0x%p]", sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx);
+ return -1;
+ }
+
+ int reVal = 0;
+ reVal = SPC_GenRecordMsg(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx,
+ pSrc, *nSrcLen, szTemp, &nDstLen);
+ if( reVal != 0 )
+ {
+ D("SPC Encryption fail");
+ free(szTemp);
+ return 0;
+ }
+
+ unsigned int i = 0;
+ for(i = 0 ; i < nDstLen ; ++i) {
+ pSrc[i] = szTemp[i];
+ }
+ *nSrcLen = nDstLen;
+ free(szTemp);
+
+ return 1;
+}
+
+int security_decrypt(const int nSessionID, unsigned char* pSrc, unsigned int *nSrcLen)
+{
+ if( pSrc == NULL || nSrcLen == NULL ) {
+ D("Invalid argument : pSrc=[0x%p], pSrcLen=[0x%p]", pSrc, nSrcLen);
+ return -1;
+ }
+
+ unsigned char *szTemp;
+ szTemp = (unsigned char *) malloc(*nSrcLen);
+ memset(szTemp, 0x00, *nSrcLen);
+ unsigned int nDstLen = 0;
+
+ int reVal = 0;
+ reVal = SPC_ParseRecordMsg(sessionInfoList[nSessionID].pApi, sessionInfoList[nSessionID].pCtx,
+ pSrc, *nSrcLen, szTemp, &nDstLen);
+ if( reVal != 0 )
+ {
+ D("SPC Decryption fail");
+ free(szTemp);
+ return 0;
+ }
+
+ unsigned int i = 0;
+ for(i = 0 ; i < nDstLen ; ++i) {
+ pSrc[i] = szTemp[i];
+ }
+ *nSrcLen = nDstLen;
+ free(szTemp);
+
+ return 1;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+
+
+
diff --git a/src/encryption.h b/src/encryption.h
new file mode 100755
index 0000000..63beaea
--- /dev/null
+++ b/src/encryption.h
@@ -0,0 +1,21 @@
+#ifndef __SECURITY_H__
+#define __SECURITY_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int security_init(const int nSessionID, const char* pUserID);
+int security_deinit(const int nSessionID);
+int security_gen_server_hello(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+int security_parse_client_hello(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+int security_gen_server_ack(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+int security_parse_client_ack(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+int security_encrypt(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+int security_decrypt(const int nSessionID, unsigned char* pSrc, unsigned int* nSrcLen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/log.h b/src/log.h
index 3d4f9e5..5fc8851 100644
--- a/src/log.h
+++ b/src/log.h
@@ -17,6 +17,10 @@
#ifndef __LOG_H
#define __LOG_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define SDB_TRACE 1
#define DEBUG_ENV "SDB_DEBUG"
#define TRACE_PACKET "SDB_TRACE_PACKET"
@@ -84,4 +88,8 @@ char* F(const char *message, ...);
#define DR LOG_DEBUG
#define SDB_TRACING ((loglevel_mask & (1 << SDBLOG_DEBUG)) != 0)
+#ifdef __cplusplus
+}
+#endif
+
#endif
diff --git a/src/sdb_constants.c b/src/sdb_constants.c
index e7069b1..d8c5c87 100644
--- a/src/sdb_constants.c
+++ b/src/sdb_constants.c
@@ -319,3 +319,14 @@
const char* STATE_UNKNOWN = "unknown";
const char* STATE_SUSPENDED = "suspended";
const char* STATE_UNAUTHORIZED = "unauthorized";
+
+#ifdef SUPPORT_ENCRYPT
+ const char* COMMANDLINE_ENCRYPTION_NAME = "encryption";
+ const char* COMMANDLINE_ENCRYPTION_ARG_DESC = "<on | off | status>";
+ const char* COMMANDLINE_ENCRYPTION_DESC[] = {
+ "Set encryption modes for got/sent datas"
+ };
+ const int COMMANDLINE_ENCRYPTION_DESC_SIZE = GET_ARRAY_SIZE(COMMANDLINE_ENCRYPTION_DESC, char*);
+ const int COMMANDLINE_ENCRYPTION_MAX_ARG = 1;
+ const int COMMANDLINE_ENCRYPTION_MIN_ARG = 1;
+#endif
diff --git a/src/sdb_constants.h b/src/sdb_constants.h
index da2f6dd..91afc3d 100644
--- a/src/sdb_constants.h
+++ b/src/sdb_constants.h
@@ -265,4 +265,13 @@ typedef enum host_type HOST_TYPE;
extern const char* STATE_SUSPENDED;
extern const char* STATE_UNAUTHORIZED;
+#ifdef SUPPORT_ENCRYPT
+ extern const char* COMMANDLINE_ENCRYPTION_NAME; // encryption command name
+ extern const char* COMMANDLINE_ENCRYPTION_ARG_DESC; // encryption command option
+ extern const int COMMANDLINE_ENCRYPTION_MAX_ARG; // minimum number of options
+ extern const int COMMANDLINE_ENCRYPTION_MIN_ARG; // maximum number of options
+ extern const char* COMMANDLINE_ENCRYPTION_DESC[]; // encryption command descryption
+ extern const int COMMANDLINE_ENCRYPTION_DESC_SIZE; // size of descryption
+#endif
+
#endif /* SDB_CONSTANTS_H_*/
diff --git a/src/sdb_map.h b/src/sdb_map.h
index 4af7bb9..9709434 100644
--- a/src/sdb_map.h
+++ b/src/sdb_map.h
@@ -46,17 +46,17 @@ typedef struct map_node MAP_NODE;
struct map {
int size;
- int(*hash)(struct map* this, MAP_KEY key);
+ int(*hash)(struct map* map, MAP_KEY key);
int(*equal)(MAP_KEY key, MAP_KEY node_key);
void(*freedata)(void* data);
LIST_NODE** map_node_list;
};
typedef struct map MAP;
-void initialize_map(MAP* map, int size, int(*hash)(struct map* this, MAP_KEY key),
+void initialize_map(MAP* map, int size, int(*hash)(struct map* map, MAP_KEY key),
int(*equal)(MAP_KEY key, MAP_KEY node_key), void(*freedata)(void* data));
void map_put(MAP* map, MAP_KEY key, void* value);
void* map_get(MAP* map, MAP_KEY key);
-void map_remove(MAP* this, MAP_KEY key);
+void map_remove(MAP* amp, MAP_KEY key);
#endif /* SDB_MAP_H_ */
diff --git a/src/sockets.c b/src/sockets.c
index 68e14d2..ea1ca71 100755
--- a/src/sockets.c
+++ b/src/sockets.c
@@ -32,6 +32,7 @@
#include "sdb.h"
#include "sdb_messages.h"
#include "adb_auth.h"
+#include "encryption.h"
#define TRACE_TAG TRACE_SOCKETS
@@ -877,6 +878,85 @@ sendfail:
}
#endif
+#ifdef SUPPORT_ENCRYPT
+ else if(!strncmp(service, "encryption:", 11)) { //넘어온 커맨드가 encryption 인지 확인
+ if(t == NULL){ // atransport가 NULL인경우 실패
+ sendfailmsg(socket->fd, err_str);
+ LOG_ERROR("t = NULL\n");
+ return 0;
+ }
+ PACKET *p = get_apacket();
+ int retVal = 0;
+ p->msg.command = A_ENCR; // 암호화 handshaking 메시지
+ p->msg.arg1 = socket->local_id; // 클라이언트를 구분하기 위한 값 유지
+ if(!strncmp(service+11, "on", 2)){ // encryption on
+ if(t->encryption == ENCR_ON){ // 이미 해당 연결이 암호화 모드인 경우 종료
+ sendfailmsg(socket->fd, "Encryption is already ON");
+ return 0;
+ }
+ p->msg.arg0 = ENCR_SET_ON_REQ; // Hello Msg임을 구분
+ static int sessionID = 0;
+ t->sessionID = sessionID; // 연결당 암호화 키 값을 위한 session ID 유지
+ if((retVal = security_init(t->sessionID, NULL)) == 1) // 암호화 handshaking을 위한 init 호출
+ {
+ D("security_init success");
+ if(security_gen_server_hello(t->sessionID, p->data, &(p->msg.data_length)) == 1) // Hello msg 생성
+ {
+ send_packet(p, t);
+ put_apacket(p);
+ sessionID++;
+ D("security_gen_server_hello success");
+ return -3;// 정상적으로 메시지 보냈을 경우 -3 리턴
+ }
+ else{
+ LOG_ERROR("security_gen_server_hello failed\n");
+ sendfailmsg(socket->fd, "Encryption ON failed");
+ security_deinit(t->sessionID); // Hello msg 생성에 실패한 경우, 해당 session에 대해 deinit
+ t->encryption = ENCR_OFF; // 암호화 모드 off
+ return 0;
+ }
+ }
+ else{
+ LOG_ERROR("security_init failed\n");
+ sendfailmsg(socket->fd, "Encryption ON failed");
+ t->encryption = ENCR_OFF; // 암호화 모드 off
+ if (retVal == -1)
+ {
+ security_deinit(t->sessionID); // init에 실패한 경우, 해당 session에 대해 deinit
+ }
+
+ return 0;
+ }
+
+ }
+ else if(!strncmp(service+11, "off", 3)){ // encrytption off
+ if(t->encryption == ENCR_OFF){ // 해당 연결이 이미 암호화 모드 off인 경우
+ sendfailmsg(socket->fd, "Encryption is already OFF");
+ return 0;
+ }
+ p->msg.arg0 = ENCR_SET_OFF; // 암호화 모드 off 메시지
+ p->msg.data_length = 0;
+ send_packet(p, t);
+ put_apacket(p);
+ return -3;
+ }
+ else if(!strncmp(service+11, "status", 6)){ // encryption status
+ p->msg.arg0 = ENCR_GET; // 암호화 모드 status를 얻는 메시지
+ p->msg.data_length = 0;
+ send_packet(p, t);
+ put_apacket(p);
+ return -3;
+ }
+ else{
+ LOG_ERROR("parsing encryption commands failed\n");
+ sendfailmsg(socket->fd, "Failed : Invalid encryption command");
+ return 0;
+ }
+
+ }
+
+#endif
+
return -1;
}
@@ -1351,12 +1431,15 @@ static int smart_socket_enqueue(SDB_SOCKET *s, PACKET *p)
return 0;
}
if (service) {
- if(handle_request_with_t(s, service, t, err_str) == 0) {
+ int ret;
+ if((ret = handle_request_with_t(s, service, t, err_str)) == 0) {
D( "LS(%X): handled host service with '%s'\n", s->local_id, service );
goto fail;
+ } else if (ret == -3) {
+ D( "LS(%X): handled host service with '%s'\n", s->local_id, service );
+ return 0;
}
- int ret;
if((ret = handle_host_request(service, s)) == 0) {
/* XXX fail message? */
D( "LS(%X): handled host service '%s'\n", s->local_id, service );
@@ -1534,7 +1617,7 @@ static void connect_emulator(char* host, int port, char* buf, int buf_len) {
snprintf(serial, sizeof(serial), "%s:%d", host, port);
TRANSPORT* t;
- if (t = acquire_one_transport(kTransportAny, serial, NULL)) {
+ if ((t = acquire_one_transport(kTransportAny, serial, NULL)) != NULL) {
if(t->connection_state != CS_OFFLINE) {
snprintf(buf, buf_len, "%s is already connected", serial);
}
diff --git a/src/transport.c b/src/transport.c
index 672786f..e385e15 100755
--- a/src/transport.c
+++ b/src/transport.c
@@ -31,6 +31,8 @@
#include "sdb_messages.h"
#include "sdb.h"
#include "adb_auth.h"
+#include "encryption.h"
+#include "sdb_client.h"
#define TRACE_TAG TRACE_TRANSPORT
@@ -215,8 +217,20 @@ static void encoding_packet(PACKET* p) {
void send_packet(PACKET *p, TRANSPORT *t)
{
- D("go send packet");
+ D("go send packet\n");
if(t != NULL && t->connection_state != CS_OFFLINE) {
+
+#ifdef SUPPORT_ENCRYPT
+ // 현재 연결이 암호화 모드이고 암호화 handshaking관련 메시지가 아니면, 메시지 암호화
+ if (t->encryption == ENCR_ON && p->msg.command != A_ENCR) {
+ security_encrypt(t->sessionID, p->data, &(p->msg.data_length));
+ }
+ else if(t->encryption == ENCR_OFF) {
+
+ }
+
+#endif
+
D("before encoding to %s\n", t->serial);
encoding_packet(p);
D("after encoding to %s\n", t->serial);
@@ -226,7 +240,7 @@ void send_packet(PACKET *p, TRANSPORT *t)
D("sended packet to %s\n", t->serial);
}
else {
- D("transport is null");
+ D("transport is null\n");
if (t == NULL) {
D("Transport is null \n");
errno = 0;
@@ -241,7 +255,7 @@ void send_packet(PACKET *p, TRANSPORT *t)
static __inline__ void wakeup_select(T_PACKET* t_packet) {
sdb_mutex_lock(&wakeup_select_lock, "wakeup_select");
- writex(fdevent_wakeup_send, &t_packet, sizeof(&t_packet));
+ writex(fdevent_wakeup_send, &t_packet, sizeof(t_packet));
sdb_mutex_unlock(&wakeup_select_lock, "wakeup_select");
}
@@ -252,8 +266,10 @@ static void handle_packet(PACKET *p, TRANSPORT *t)
t_packet->t = t;
t_packet->p = NULL;
- //below commands should be done in main thread. packet is used in wakeup_select_func. Do not put a packet
- if(cmd == A_WRTE || cmd == A_CLSE || cmd == A_CNXN || cmd == A_OKAY || cmd == A_STAT || cmd == A_AUTH) {
+ // below commands should be done in main thread.
+ // packet is used in wakeup_select_func. Do not put a packet
+ if(cmd == A_WRTE || cmd == A_CLSE || cmd == A_CNXN ||
+ cmd == A_OKAY || cmd == A_STAT || cmd == A_AUTH || cmd == A_ENCR) {
++(t->req);
t_packet->p = p;
wakeup_select(t_packet);
@@ -400,6 +416,26 @@ void send_cmd(unsigned arg0, unsigned arg1, unsigned cmd, char* data, TRANSPORT*
put_apacket(p);
}
+#ifdef SUPPORT_ENCRYPT
+/*
+desc. : 암호화 모드 변경 실패 시, sdbd에게 실패 메시지 전송
+parameter : [in] SDB_SOCKET* sock : local socket
+ [in] TRANSPORT* t : 현재 연결 중인 atransport
+ [in] unsigned failed_value : 실패 값
+*/
+void send_encr_fail(SDB_SOCKET* sock, TRANSPORT* t, unsigned failed_value)
+{
+ D("calling send_encr_fail");
+ apacket *p;
+ p = get_apacket();
+ p->msg.command = A_ENCR; // 암호화 handshaking 메시지
+ p->msg.arg0 = failed_value; // 실패 값
+ p->msg.arg1 = sock->local_id; // client를 구분하는 값
+ send_packet(p, t);
+ put_apacket(p);
+}
+#endif
+
static void *transport_thread(void *_t)
{
TRANSPORT *t = _t;
@@ -430,10 +466,20 @@ read_loop:
if(t->read_from_remote(t, p->data, p->msg.data_length)){
break;
}
+#ifdef SUPPORT_ENCRYPT
+ //security_decrypt(t->sfd, p);
+ // 현재 연결이 암호화 모드이고, 암호화 handshaking 관련 메시지가 아닌 경우면, 메시지 복호화
+ if (t->encryption == ENCR_ON && p->msg.command != A_ENCR) {
+ security_decrypt(t->sessionID, p->data, &(p->msg.data_length));
+ }
+
+#endif
+
}
if(check_data(p)) {
break;
}
+
dump_packet(t->serial, "remote_read", p);
D("%s: received remote packet, sending to transport\n",
t->serial);
@@ -964,6 +1010,97 @@ void wakeup_select_func(int _fd, unsigned ev, void *data) {
adb_auth_confirm_key(p->data, p->msg.data_length, t);
}
}
+#ifdef SUPPORT_ENCRYPT
+ else if(cmd == A_ENCR){ // 암호화 handshaking메시지인 경우
+ PACKET* enc_p = get_apacket();
+ if(p->msg.arg0 == ENCR_SET_ON_REQ){ // hello 메시지인 경우
+ if(security_parse_client_hello(t->sessionID, p->data, &(p->msg.data_length)) == 1) // hello 메시지 파싱
+ {
+ if(security_gen_server_ack(t->sessionID, enc_p->data, &(enc_p->msg.data_length)) == 1) // ack 메시지 생성
+ {
+ enc_p->msg.command = A_ENCR; // 암호화 handshaking 메시지
+ enc_p->msg.arg0 = ENCR_SET_ON_OK; // ack 메시지
+ enc_p->msg.arg1 = sock->local_id; // client구분하는 값
+ send_packet(enc_p, t);
+
+ D("security_gen_server_ack success");
+ } else { // ack 메시지 생성 실패
+ LOG_ERROR("security_gen_server_ack failed");
+ security_deinit(t->sessionID);
+ send_encr_fail(sock, t, ENCR_ON_FAIL); // 암호화 모드 on을 실패했다는 메시지를 sdbd로 보냄
+ t->encryption = ENCR_OFF; // 암호화 모드는 off
+ sendfailmsg(sock->fd, "Encryption ON failed");
+ local_socket_close(sock);
+
+ }
+ } else { // hello 메시지 파싱 실패
+ LOG_ERROR("security_parse_client_hello failed");
+ security_deinit(t->sessionID);
+ send_encr_fail(sock, t, ENCR_ON_FAIL); // 암호화 모드 on을 실패했다는 메시지를 sdbd로 보냄
+ t->encryption = ENCR_OFF; // 암호화 모드는 off
+ sendfailmsg(sock->fd, "Encryption ON failed");
+ local_socket_close(sock);
+ }
+ }
+ else if(p->msg.arg0 == ENCR_SET_ON_OK){ // ack 메시지인 경우
+ if(security_parse_client_ack(t->sessionID, p->data, &(p->msg.data_length)) == 1) // ack 메시지 파싱
+ {
+ t->encryption = ENCR_ON; // 모든 handshaking이 끝난 후 현재 연결에 대해서는 암호화 모드 ON
+ sendokmsg(sock->fd, "Encryption is ON");
+ }
+ else{ // ack 메시지 파싱 실패
+ LOG_ERROR("security_parse_client_ack failed");
+ security_deinit(t->sessionID);
+ send_encr_fail(sock, t, ENCR_ON_FAIL); // 암호화 모드 on을 실패했다는 메시지를 sdbd로 보냄
+ t->encryption = ENCR_OFF; // 암호화 모드는 off
+ sendfailmsg(sock->fd, "Encryption ON failed");
+ }
+ local_socket_close(sock);
+
+ }
+ else if(p->msg.arg0 == ENCR_SET_OFF){ // 암호화 모드 off 메시지
+ if(t->encryption == ENCR_ON && security_deinit(t->sessionID) == 1) // 현재 연결에 대해 암호화 모드가 on상태이면
+ {
+ t->encryption = ENCR_OFF; // 현재 연결에 대한 암호화 모드를 off
+ sendokmsg(sock->fd, "Encryption is OFF");
+ }
+ else{
+ send_encr_fail(sock, t, ENCR_OFF_FAIL);
+ sendfailmsg(sock->fd, "Encryption OFF failed");
+ LOG_ERROR("security_deinit failed");
+ }
+ local_socket_close(sock);
+ }
+ else if(p->msg.arg0 == ENCR_GET){ // 암호화 모드 get 메시지
+ if(t->encryption == ENCR_ON && !strncmp((char*)p->data, "encryption:on", p->msg.data_length)) // 현재 연결이 암호화 모드 on이고, sdbd의 암호화 모드가 on인 경우
+ {
+ sendokmsg(sock->fd, "Encryption is ON");
+ }
+ else if(t->encryption == ENCR_OFF && !strncmp((char*)p->data, "encryption:off", p->msg.data_length)) // 현재 연결이 암호화 모드 off이고, sdbd의 암호화 모드가 off인 경우
+ {
+ sendokmsg(sock->fd, "Encryption is OFF");
+ }
+ else
+ {
+ sendfailmsg(sock->fd, "Getting Encryption status failed, try encyrption on/off");
+ }
+ local_socket_close(sock);
+ }
+ else if(p->msg.arg0 == ENCR_ON_FAIL){ // sdbd에서 암호화 모드 on에 실패했을 경우 받는 메시지
+ t->encryption = ENCR_OFF; // 암호화를 on하다가 실패한 경우, 현재 연결에 대한 암호화 모드를 off
+ sendfailmsg(sock->fd, "Encryption ON failed");
+ local_socket_close(sock);
+ }
+ else if(p->msg.arg0 == ENCR_OFF_FAIL){ // sdbd에서 암호화 모드 off에 실패했을 경우 받는 메시지
+ //t->encryption = ENCR_ON;
+ sendfailmsg(sock->fd, "Encryption OFF failed");
+ local_socket_close(sock);
+ }
+ put_apacket(enc_p);
+
+ }
+#endif
+
put_apacket(p);
endup:
diff --git a/src/transport.h b/src/transport.h
index fe770f8..a1af8f4 100755
--- a/src/transport.h
+++ b/src/transport.h
@@ -29,6 +29,19 @@
#define A_TCLS 0x534C4354
#define A_STAT 0x54415453
#define A_AUTH 0x48545541
+#define A_ENCR 0x40682018 // encryption message
+
+#ifdef SUPPORT_ENCRYPT
+ #define ENCR_SET_ON_REQ 0 // encryption hello 메시지
+ #define ENCR_SET_ON_OK 1 // encryption ack 메시지
+ #define ENCR_SET_OFF 2 // encryption mode off 메시지
+ #define ENCR_GET 3 // encryption status get 메시지
+ #define ENCR_ON_FAIL 4 // encryption on 실패 메시지
+ #define ENCR_OFF_FAIL 5 // encryption off 실패 메시지
+ #define ENCR_ON 1 // encryption on 상태
+ #define ENCR_OFF 0 // encryption off 상태
+#endif
+
#define CS_NONE -10000