diff --git a/backup.gni b/backup.gni index d6149f38fc0d9cf5085fafd1ef12571c46b97db7..f6c42c9eb06e5ce367f57e795a0869e624af3276 100644 --- a/backup.gni +++ b/backup.gni @@ -43,6 +43,7 @@ backup_mock_proxy_src = [ ] declare_args() { + hash_plesh256_enabled = false brotli_enabled = true if (defined(global_parts_info) && (!defined(global_parts_info.thirdparty_brotli) || !global_parts_info.thirdparty_brotli)) { diff --git a/frameworks/native/backup_ext/src/sub_ext_extension.cpp b/frameworks/native/backup_ext/src/sub_ext_extension.cpp index 4cd89419b4a63e7e3af065837a8902bd147ef4ad..7a7c0d11b3f3f5c23cf23aef9fe794e0e61ace08 100644 --- a/frameworks/native/backup_ext/src/sub_ext_extension.cpp +++ b/frameworks/native/backup_ext/src/sub_ext_extension.cpp @@ -1389,6 +1389,7 @@ void BackupExtExtension::FillFileInfosWithoutCmp(vector & HILOGI("Fill file info without cmp begin"); BReportEntity storageRp(move(incrementalFd)); unordered_map localFilesInfo; + double totalTime = 0; while (storageRp.GetStorageReportInfos(localFilesInfo)) { for (auto localIter = localFilesInfo.begin(); localIter != localFilesInfo.end(); ++localIter) { const string &path = localIter->second.filePath; @@ -1403,7 +1404,9 @@ void BackupExtExtension::FillFileInfosWithoutCmp(vector & allFiles.emplace_back(localIter->second); continue; } - auto [res, fileHash] = BackupFileHash::HashWithSHA256(path); + double tmpTotalTime = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(path, tmpTotalTime); + totalTime += tmpTotalTime; if (fileHash.empty()) { HILOGE("Do hash err, fileHash is empty, path: %{public}s", GetAnonyPath(path).c_str()); continue; @@ -1425,6 +1428,7 @@ void BackupExtExtension::FillFileInfosWithoutCmp(vector & } localFilesInfo.clear(); } + HILOGI("Fill file info without cmp begin, %{public}f", totalTime); } void BackupExtExtension::FillFileInfosWithCmp(vector &allFiles, @@ -1467,7 +1471,8 @@ void BackupExtExtension::CompareFiles(vector &allFiles, bool isChange = !(isExist && localIter->second.size == it->second.size && localIter->second.mtime == it->second.mtime); if (isChange) { - auto [res, fileHash] = BackupFileHash::HashWithSHA256(path); + double test = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(path, test); if (fileHash.empty()) { HILOGE("Do hash err, fileHash is empty"); continue; diff --git a/tests/unittests/backup_utils/b_filesystem/b_file_hash_test.cpp b/tests/unittests/backup_utils/b_filesystem/b_file_hash_test.cpp index 903c9e44cf09a1c5b04c91bff8672650103ed2ab..e1749fd4b9433f3e6deb6d1db91b8f458e4b9355 100644 --- a/tests/unittests/backup_utils/b_filesystem/b_file_hash_test.cpp +++ b/tests/unittests/backup_utils/b_filesystem/b_file_hash_test.cpp @@ -64,8 +64,8 @@ HWTEST_F(BFileHashTest, b_file_hash_HashWithSHA256_0100, testing::ext::TestSize. try { TestManager tm(__func__); const auto [filePath, content] = GetTestFile(tm); - - auto [res, fileHash] = BackupFileHash::HashWithSHA256(filePath); + double totalTime = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(filePath, totalTime); EXPECT_EQ(res, 0); } catch (const exception &e) { @@ -88,7 +88,8 @@ HWTEST_F(BFileHashTest, b_file_hash_HashWithSHA256_0101, testing::ext::TestSize. GTEST_LOG_(INFO) << "BFileHashTest-begin b_file_hash_HashWithSHA256_0101"; try { std::string filePath = "/errPath"; - auto [res, fileHash] = BackupFileHash::HashWithSHA256(filePath); + double totalTime = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(filePath, totalTime); EXPECT_NE(res, 0); } catch (const exception &e) { GTEST_LOG_(INFO) << "BFileHashTest-an exception occurred by HashWithSHA256."; diff --git a/utils/BUILD.gn b/utils/BUILD.gn index 90f31d3e6bfb566bf93605bb864dd832851e7f11..c05dd3ad8e19ddbfe67bbb9948ee2ea1d9518b13 100644 --- a/utils/BUILD.gn +++ b/utils/BUILD.gn @@ -124,9 +124,15 @@ ohos_shared_library("backup_utils") { "-ffunction-sections", "-fno-unwind-tables", "-fno-asynchronous-unwind-tables", - "-Os", ] - + if (hash_plesh256_enabled) { + cflags_cc += ["-O3"] + cflags_cc += ["-march=armv8-a+crypto+sha3"] + defines = ["HASH_PLESH256_ENABLED"] + } + else { + cflags_cc += ["-Os"] + } use_exceptions = true innerapi_tags = [ "platformsdk" ] part_name = "app_file_service" diff --git a/utils/include/b_filesystem/b_file_hash.h b/utils/include/b_filesystem/b_file_hash.h index 42b9633237e942ccffc0be986578d15b2dc6c1c0..b375f697f3773899aedc42a6c0faecf06a91fb3b 100644 --- a/utils/include/b_filesystem/b_file_hash.h +++ b/utils/include/b_filesystem/b_file_hash.h @@ -22,7 +22,7 @@ namespace OHOS::FileManagement::Backup { class BackupFileHash { public: - static std::tuple HashWithSHA256(const std::string &fpath); + static std::tuple HashWithSHA256(const std::string &fpath, double &totalTime); static std::string HashFilePath(const std::string &fileName); }; } // namespace OHOS::FileManagement::Backup diff --git a/utils/src/b_filesystem/b_dir.cpp b/utils/src/b_filesystem/b_dir.cpp index a725c3f0912123e270de600b6ef246e9923dd9ba..458a305d4d4279dbfaa0a7fcb2528c7ab002d9da 100644 --- a/utils/src/b_filesystem/b_dir.cpp +++ b/utils/src/b_filesystem/b_dir.cpp @@ -349,11 +349,8 @@ tuple, map> BDir::GetBigFiles( return {ERR_OK, move(bigFiles), move(resSmallFiles)}; } -void BDir::GetUser0FileStat(vector bigFile, - vector smallFile, - vector &allFiles, - vector &smallFiles, - vector &bigFiles) +void BDir::GetUser0FileStat(vector bigFile, vector smallFile, vector &allFiles, + vector &smallFiles, vector &bigFiles) { for (const auto &item : smallFile) { struct ReportFileInfo storageFiles; @@ -363,7 +360,8 @@ void BDir::GetUser0FileStat(vector bigFile, storageFiles.userTar = 0; } else { storageFiles.isDir = 0; - auto [res, fileHash] = BackupFileHash::HashWithSHA256(item); + double test = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(item, test); if (fileHash.empty()) { continue; } @@ -384,15 +382,12 @@ void BDir::GetUser0FileStat(vector bigFile, for (const auto &item : bigFile) { struct ReportFileInfo storageFiles; storageFiles.filePath = item; - auto [res, fileHash] = BackupFileHash::HashWithSHA256(item); - if (fileHash.empty()) { - continue; - } + double test = 0; + auto [res, fileHash] = BackupFileHash::HashWithSHA256(item, test); + if (fileHash.empty()) { continue; } storageFiles.hash = fileHash; struct stat sta = {}; - if (stat(item.c_str(), &sta) != 0) { - throw BError(BError::Codes::EXT_INVAL_ARG, "Get file stat failed"); - } + if (stat(item.c_str(), &sta) != 0) { throw BError(BError::Codes::EXT_INVAL_ARG, "Get file stat failed"); } storageFiles.size = sta.st_size; storageFiles.mode = to_string(static_cast(sta.st_mode)); int64_t lastUpdateTime = static_cast(sta.st_mtime); diff --git a/utils/src/b_filesystem/b_file_hash.cpp b/utils/src/b_filesystem/b_file_hash.cpp index 9f0c4389f1926de3810f38c68e5156a7a92a56ae..a7f03997600daaf2ea240297ee4b1aa357c8b9d0 100644 --- a/utils/src/b_filesystem/b_file_hash.cpp +++ b/utils/src/b_filesystem/b_file_hash.cpp @@ -13,71 +13,1246 @@ * limitations under the License. */ -#include "b_filesystem/b_file_hash.h" - -#include -#include -#include -#include #include #include #include #include -#include #include #include + +#ifdef HASH_PLESH256_ENABLED +#include +#include +#endif + +#include +#include "b_filesystem/b_file_hash.h" #include "b_resources/b_constants.h" +#include "filemgmt_libhilog.h" +#include namespace OHOS::FileManagement::Backup { using namespace std; -static tuple HashFinal(int err, const unique_ptr &hashBuf, size_t hashLen) -{ - if (err) { - return { err, "" }; - } - - stringstream ss; - for (size_t i = 0; i < hashLen; ++i) { - const int hexPerByte = 2; - ss << std::uppercase << std::setfill('0') << std::setw(hexPerByte) << std::hex << - static_cast(hashBuf[i]); - } - - return { err, ss.str() }; -} - -static int ForEachFileSegment(const string &fpath, function executor) +static int ForEachFileSegment(const string &fpath, function executor, double &totalTime) { unique_ptr filp = { fopen(fpath.c_str(), "r"), fclose }; if (!filp) { return errno; } - const size_t pageSize { getpagesize() }; + const size_t pageSize { std::max(getpagesize(), 1048576 * 2) }; auto buf = make_unique(pageSize); size_t actLen; do { actLen = fread(buf.get(), 1, pageSize, filp.get()); if (actLen > 0) { + auto start = std::chrono::high_resolution_clock::now(); executor(buf.get(), actLen); + auto end = std::chrono::high_resolution_clock::now(); + totalTime += std::chrono::duration_cast(end - start).count(); } } while (actLen == pageSize); return ferror(filp.get()) ? errno : 0; } -tuple BackupFileHash::HashWithSHA256(const string &fpath) +#ifdef HASH_PLESH256_ENABLED +static int const INIT_NUM_LAYERS = 2; +const size_t BLOCK_LENGTH = 4096; +const size_t COE_LENGTH = BLOCK_LENGTH / 8; +const size_t HASH_LENGTH = 64; +const size_t MAX_LAYERS = 10; +static uint64_t g_coeByLayer[MAX_LAYERS][COE_LENGTH] = { + {0xCA49F1531AB821CB, 0xF0CCEA54DF5F36FB, 0x488BCF4C556F3850, 0xBE1DE5BB2A23FBA9, 0x3B7C7B8D5ED2BBE2, + 0xEED96B990E8FFC29, 0x91C06A7650A99117, 0xFEAF649FFA47F0CA, 0x60698A4EC7B01AFF, 0xE067A4C27C36EDEE, + 0xF3D92E36FE51EB2F, 0x9D45511D3D060FA6, 0xD922B6C2A21CEE58, 0x08A48DF696B3CBDF, 0x34D591EA4282125C, + 0x7A5D073071DC2BA1, 0xD420ACC90FEC8DC2, 0x7FEB46DD7F62466F, 0xEF10C62225535426, 0x5CDF2D37CAB88812, + 0xB9093293F4FA7855, 0x8CDD4B6A93C1C4AB, 0x720B650607BA9D3E, 0x3AB9B0584FE941C7, 0x8CD20D76713B12BC, + 0x7BB9CD96DBB6E0AE, 0x0AFDC29CF9B6C669, 0x8E801F2B5B10D4D7, 0x3202DF07931EBB9A, 0x09EBFF9526E69E6C, + 0xB3895989F261863E, 0x48216B519446A336, 0x33BFD3E9AD160854, 0x2A27C2613141346E, 0xC9285A7197524E13, + 0x553A6A2A578863F8, 0x0D42D44366F7BF0F, 0x9F080692CFD53DD1, 0xB334643868AE9638, 0xD615293357C091DE, + 0x76CF2013B9ADCE19, 0xB604D28B12E6CDEA, 0x8DD23C4F77DB55D1, 0x0EE690D40D123E69, 0xBD48E7F5AF7B689C, + 0x6FEF5F24A3D66434, 0x6C271F9FA5B05525, 0x72088D170FCE93B1, 0xE082F05FD03B71B3, 0xB595E71C82FC57BD, + 0x8A1EA66E4CE89DBE, 0xDDC2F08E9DC63C49, 0x997613BE05519E3D, 0x15AFCCD769F209D4, 0xE5460C9D5E7E4819, + 0xC611455109BEC6A3, 0x33908A09D4893B57, 0x5A21E4515B838814, 0x1C3A264B30E32291, 0x22B994D6B79025B5, + 0x5FF8295E1DB97240, 0x4653CCBE87A14E36, 0x337BCC3FCED96DF6, 0x9F55422FE0C0D000, 0xCC93B0277134414D, + 0x836A7BDD001AE8DE, 0xCA0028A2E1FF0A37, 0x28F384E3FA9F51A5, 0x3F524C6802AFEBD3, 0x9CEA3E7C703C3242, + 0x5F56448985F753D9, 0x16A6DEA7433B9174, 0xC899228D24B3D9D4, 0xABDB3444A4463CC4, 0xB711DE3D67E9658C, + 0xF58556FA326A46A1, 0x1640E565F3A4D990, 0xC6FC126E353DD281, 0xE0C8DB39AD5F1237, 0x106C9D90F3292019, + 0x27CEA0DEA327C401, 0xA6DE6C668F829563, 0x6AC2E8F36B84EE4E, 0x2E8F5D519156366D, 0x7997264900A3F6D7, + 0x022D963B05D09FD2, 0x8FD1906EC825EA8C, 0x3DE34A57DA387A65, 0xEC7CEB9000E30520, 0x80C36C345D09BCCA, + 0xAB7412368A95D99D, 0x730D2DE007F4AA70, 0xF889196DDFC4FB6D, 0x1490D7B14C061B01, 0x1B676A625D4E86A9, + 0x2DFDABCE9F62F279, 0x0D7753F8D51953CC, 0x4BB561F98DF268F4, 0xC82F0E2B3F16FCC3, 0x66CAFCF205A724BC, + 0xD64B680E7F40847C, 0x59605F924FDCA494, 0x8237CE901A774EF8, 0x30510E764DEF5A11, 0x44F5F4ADACA173CC, + 0x0667494BBCD0387B, 0xC1E1EFEA9C5D501F, 0x3937CE9CF2FE66D7, 0xFC4379EF31004000, 0x670DF940A37D7644, + 0x5E6D734E96A0AF0F, 0x8B9F6F2FA184ABD5, 0x16DA4475B84138E9, 0x9DB542564772E1CD, 0x393EF7E1420A9E23, + 0x263BD1688ABC187B, 0x1A9CEB7C15A5E126, 0x9902356F26EFFE30, 0x0AFB4A22B3D01E02, 0x3F4BCA94329B5751, + 0x1CD52E76AEFB8F52, 0x2FF00E3BBAFE5AF8, 0x87D3163A8728E2B8, 0x4C0E8862963E584A, 0xB76A8C32DE04D76E, + 0x7134B60B96C2E65D, 0x1FBA72BAFE73196C, 0x00215DFEAD4F5F6E, 0xC2A43FAACC0BA168, 0xC62C170E80C4CAC2, + 0xB38519D4AD009C87, 0xEB765BE277BBC901, 0x12241920DECA478C, 0x071F95ECF619996D, 0xFB17B15C2C4AEE08, + 0x73E6E3B8D280DFC3, 0xF0FD31BC643712E5, 0x2B063571261BE0B9, 0x5184F0EF2053B18B, 0x3C04978905DB66A2, + 0x068857424D48D647, 0xB88089FCEA9B213C, 0x4CFCA858BF2E943C, 0x6976EDAD4E05EEB4, 0x6DA04CB68F071C49, + 0xFC90158B67706453, 0x2FAEDF7C12CD92CC, 0x5C0A92CBF5249DBD, 0xC4053514B47518A5, 0x199EC6148582E52E, + 0x7DF73AECFEF9021C, 0x256ED4E51E5F722C, 0x7FF25AE02AE00C88, 0x278BDC0B2EBBC18A, 0xBE7CA480001C3D3E, + 0xF3C647AE9127828C, 0xD25414F667C81822, 0x4001719307DE29B5, 0x81A785C3B2539C7B, 0xE041E1223DBF900A, + 0xE2612679798CBA18, 0x49EE5401ABE6A821, 0x14A7656634346D19, 0xF51D376B6F5F5B2B, 0x63466BE5E80E7B66, + 0x303976CF3A5D9778, 0x0E3A547F48846A0A, 0xEFBBFF5F9BB93B4B, 0x4E786E1C62EF8823, 0x06903502D4E094A2, + 0xF20D291237B7AB19, 0x04EABE6EBEB9C95C, 0x94509B40FCC74431, 0x05AB34FC1AFAC667, 0x92444D54B49983C4, + 0x2DC5F664F84A1277, 0x904278C280708CF5, 0xDCB835C6F684D9B6, 0x8984B45C0EC3A829, 0x4911DBCB35577082, + 0x9981E59CC615EDA8, 0x0F37A2A409D39F87, 0x2814C980DA11EBD7, 0x5B5BB7766ACF04D6, 0xBA30650BF82871D5, + 0x1225ECB02C33C312, 0x7B969FA28E39711B, 0x74FFCA4E8DEAC90C, 0xD6AD0A717493163B, 0x5B0CE64FB4D4B097, + 0x517699CBFB283EF0, 0x99F2BBE8F0B1844A, 0x3D4E8A2751656215, 0xCC88F978C8C04AC2, 0x381698C86F6EAC68, + 0x7163AB4A60A9C531, 0xF894180544C9E733, 0x791854778088F5BF, 0x344F7E66D2E6220A, 0xAC19673E221BFE60, + 0x9C764374EDCE31BA, 0x4E537B7587B713C1, 0x18B7AD465B9B1EC8, 0x82B02CFFA631D099, 0x8C24DD5AA887092F, + 0x9123503442CA64B1, 0x154BA8F5E95775C1, 0xB1C5B3000B177380, 0x83973727F81AB5B7, 0x9CF70C4981EC5A1A, + 0x6FD2580DD446F5D5, 0x9FAB6348F518F3DB, 0xD798181A844CE97C, 0x9E7BEB120F4EF696, 0xC47D538125CAA382, + 0x49CCBE4DA5648CC2, 0xB90B0878C7865323, 0x789180E91791014F, 0xCC2127B9A580A9FE, 0xDC7041BD9342FA8C, + 0x7006B1E4EA1B2091, 0xF5C9DCE9E4B021CF, 0x7EA8D57F1D69A918, 0x5F014A47662A03CE, 0x5F4673AA364FC97F, + 0x08086E13B4BC14FC, 0x3D78C009A21C8730, 0x82FDF9E5362DE98B, 0x9534E41C5911AA8A, 0x96B35D5005FE3555, + 0x11A21286233DDD6C, 0x123A0E94DA882307, 0x96AAA7821E88FD25, 0x7C6436EA6D08A790, 0x03E012CE22442B7D, + 0x2C34433AF3420829, 0x9245103200DF4DEB, 0x87F88D499558B126, 0x010411C455143E03, 0x990340679146EF7B, + 0xCFE54A66BC746D71, 0x97D49EC835F42CE0, 0xDF46A8AE67292D29, 0xBA89FCA06FF52582, 0x4432F122A3CFE172, + 0x8FF4CE7838C1B86A, 0x25758E12C615742D, 0x9EEAA75A7EEF60D4, 0xF095CAA701863C83, 0x06367CF5236D4E1D, + 0x42405E37F2FD09E7, 0x562C78AA09229A21, 0x40D301A63C4E65F7, 0x1A572F29CD4DD2A0, 0x42762F6847002899, + 0x6A534BFBCA8835FD, 0x0714BB8A12738F40, 0xFDEEBFEA5C582DCB, 0x479D169F51B20A0F, 0x5DE7C96D93CA6F2C, + 0x0F712E41FCEA365C, 0x87D3B7E9DF819F72, 0x088130C242E436A0, 0xC8FA991C28F7A4F2, 0xEBEF3CBCD2A2B64C, + 0x8E871D6D547EEEAB, 0xFBC03247DEB54475, 0xA8FFCF910FD02727, 0x78478EF99EDE0037, 0xCBDD1539B9B6A2B5, + 0x2A32A2215A8E03A7, 0xFB7D968C752D9593, 0x4E3CA5EA16E20F00, 0xE262C221264219DF, 0x613D139792051A2C, + 0x2A5E673B5049FFD4, 0x597B6FC5A0A231C4, 0xEC49569B39F98121, 0x1C1A783F6B5942C0, 0x83A96A9AC21BBE7A, + 0xE248823CE0E62F9B, 0x7550C99459E840D2, 0x3B413B0BEE8CF6B3, 0x1969899702653313, 0x3281ED2DCC671D20, + 0x7109663A38EC6B31, 0xF27D0F3B82B6AFD6, 0x09C61CA7E7D1E053, 0xB478E57B93ED586B, 0x922203AE0C5C8050, + 0x432D0377C479170C, 0x8DD192459A37E4AD, 0x35AD93BC88A47BE4, 0x191B9918E95CAA0F, 0x7AB0EE3C611E3B4D, + 0x182A117B37A4496E, 0x00C01D741C204EA6, 0xB4F88BAADD765E3E, 0xBAC46F12F4092454, 0x83DB58FBE47BB24A, + 0x59775D5E0C32CD6A, 0xAA72D74351C6D382, 0x9C6C66E94F4A0578, 0xB4A2DA064BBA0BBC, 0x9F07D4A9F722D3D6, + 0xA4DB50B16BACBDF9, 0x86BF6277456337FD, 0x623B657C265F319E, 0x8B9B614652DAEDA0, 0x783CB12D35B8F478, + 0xD13369B2011C13E3, 0x8591AE9D5AE9659E, 0x4126842A313C641E, 0x4AE95600764B7560, 0x4A0CCF048F539812, + 0x2C4FF933CB8812D5, 0x7A325D14153561CD, 0x39EA1722CC8B55F8, 0x794EDEA624E22802, 0xD4EE010A1083F82D, + 0x4A113C82FAE27536, 0x742EFCB89C129DCD, 0x64207AEF1C5B4A89, 0x9C60573AAF221852, 0x006CD2ADEA39AAE1, + 0xF55DEF1291ED458C, 0x16290E703F7223FC, 0x50C813F936D0576B, 0x9A82B1C86037D9FC, 0xE9BA31D6492F91DD, + 0x8247B3334CD3C2BC, 0x66579584915863CB, 0x0843625F7C766095, 0x5A6D1042CC03F788, 0x2F57A9FD3D147003, + 0x30A726EC5EC2CE44, 0x9E1FA3A36A6E5EE6, 0x879DF6C7C7B7405D, 0xB33FDFD91438599E, 0x376CBF7BD6055BF6, + 0x71862AD23D2C7CFF, 0x8E963AB4FD4B1C63, 0xE375BE87B0793101, 0xE92CFAA524A59E4D, 0x25641BE5773E61E8, + 0xF85B88B46EA3A61B, 0x734144371D303799, 0x903FB3F0E9E7B8DA, 0xA4FCB468847886D4, 0xFF76C5265FAB817B, + 0xA03147B5B9B9E9FB, 0x90D015FBD6809128, 0x534B8103E79EFB0E, 0x5CB36999D5896C98, 0x1751DB28009290E7, + 0x28CF41F6BF87D61E, 0x7CEC6BA190844F80, 0x6B5B7A05A68ACF90, 0xFED5660426ED77A9, 0xF252BF7DA00A63B7, + 0x50FC7CDDCF790DF6, 0x2D92DC94D95D793A, 0xD1C72D76489641CC, 0x454817756D762BF4, 0x1BF22B4B43FE63E8, + 0x3C82C42CECD29216, 0x9B6DAB2BAB2E0BAA, 0xCA2E18B999125E93, 0x9DCA25CB69E1C7B3, 0xACFDC2B8F8DAC5AE, + 0x180DC185C8247335, 0xB78822EAD7B32DE5, 0x69CA5FF43FF4E863, 0x50F8F7331DB470FD, 0xB2EB92B7EAAA0180, + 0xBB9BEAA678B3E601, 0xE5512A2397183CC6, 0x36F5BF589DE535FB, 0x7F2ABC62FB36BFE8, 0x1F70DFF6A7E36966, + 0xCC7B4510C6E998B0, 0xE131CBF051FF1402, 0xD4EFB0F0C93F5377, 0x00779D9DE91CE9CD, 0xAA8A9156CE3A0795, + 0xF2E0D76D66EA612A, 0x9ECBFEDFEAF5AE14, 0x412313B3D4ED1D24, 0xF2122BEE8FFE0D32, 0x68F9DA50195CEC7F, + 0xB6DA57B831C7754F, 0x6B64C66F32F610EB, 0xDBFDD9783F64B3C5, 0xF371B40309989755, 0x238D36CFE15E7A45, + 0x1E4F525AEEB45BFE, 0xC08BA9E61D5E1549, 0x407B20443B43904F, 0x7CC42E3B18EA44F8, 0x4E6BFF96BA3013D3, + 0x8700CA9D04D30C75, 0xE08F7ACF76110198, 0x42F916C8484CD90C, 0x16749AF32E3F8F7B, 0xD31E4755463E3945, + 0xE5359C972C9F23FE, 0xF88DE6096BFB63D5, 0xC0AE5549872A5D1B, 0x3A0E513620E25D66, 0x46B28C3DFB7D2EBE, + 0x2DDFEF6402D3F302, 0x3035134327004DCC, 0x0E8CE2EA49B92C35, 0x9323A63E3214DFCB, 0xEF4DFAD94255BDE5, + 0x130E599B1EF4D7DA, 0xCEBA4C866DF9E53F, 0x490A6C472DC8F2B9, 0xD5D6845A1FA55D7B, 0x5718B71E15E4AD5D, + 0x85555AF7249E85F9, 0xB32422258A315F52, 0x2712DA6EE22F0DF7, 0x2209DB34C28250DB, 0x827A516D3512350F, + 0x28C32FF3E81093BD, 0x3462465F0F5907CC, 0xBC6C521D794BA6CE, 0xCC501AA741F86D2B, 0x15E177A4F33AB61D, + 0x2E2EDA8E1486EA92, 0x3F16C80891FB0210, 0xD6D08CCA51FE841E, 0x2E47BFA0FABDE820, 0x61B924AA3357F38D, + 0xFA0FE8727E1B0CA9, 0x116EC3B03A7DD982, 0x3DD64BC8852F1EFB, 0xBB8F9B69A41CC3BF, 0x18EA097544B22194, + 0x7B3B765939DD312B, 0x51851DBE0345EE5B, 0x68423DBEC35943C4, 0x89A93919DBE4434C, 0x783CDA143D9A8DEC, + 0xF2A1C8A4717C2B86, 0x542B7095B2D14863, 0x03EE34FA1AAC6AD0, 0xA7215923A524E252, 0xAB6F4B232975476F, + 0xBE5422CB0115C2D7, 0x576FF71DD2B0B7E4, 0xA642939B84E09C2A, 0x93BC334C97D208FD, 0xDDD2E831CE2DDB3D, + 0x36F771C4D57180FE, 0x49E2BD31D6DC07BC, 0xDFB6C82B32C18677, 0xE7B91EAD0DCC75ED, 0xFD9312C4B870DA04, + 0xF1E07F1DADC879EF, 0xCD4E3C696365A17A, 0xBAF27027EDAD7749, 0xB4BB7A52B74BEF71, 0x2F00A88485797015, + 0xA8E8F1050777B0AC, 0xC5F52229D5188AEF, 0xA68903180D35627E, 0x80253B122635F3D5, 0xA320BEA4214F8712, + 0x91675C418D0DEF51, 0x1D01A8E90606D22C, 0xAFD99D66F2BFC920, 0x1603EFF0FE0BF964, 0x8B665C850609B02F, + 0x5665C2F10E79D0C5, 0x9132ED22A3A9908C, 0xF5BF2EEDE5B6136C, 0x8DF3BC14EFFDC23E, 0xEF10BC7A75968B19, + 0x6C65AFF4DBC96315, 0xD6909236481528BE, 0x39A91AD28D61E28A, 0x3E11652CFDFC432C, 0x39EE439CC64AD5A6, + 0x5DA0CA9791FECDBF, 0x8B6BE56D6B9FA14D, 0x5B1CB95A3B29FAF8, 0x1174D96551B5E9FD, 0xA9C0927F9765C23E, + 0x712302A9717CD4AF, 0xD571257C3800E820, 0x75A01D49AFF085B4, 0x3D7B994B2F41C9AA, 0x08E8F1DD796F6B96, + 0xD41D53AA3E40E5F8, 0x338133BAB24F7687, 0x8FB7A97AC1BDF7CF, 0x300577698F316249, 0x700CF77FA5867392, + 0x8559414656F79D96, 0x220E4DDAF8329A01, 0xE2E7141233BC273D, 0x9A6B7C797543E6F0, 0x3BC0C8570FCF58C4, + 0x374C9EF9F2BCD70F, 0xD3390E59C958FF43, 0x0BC1C0A19A82B560, 0x98150365034CAFD0, 0x8B130016A06ECB2F, + 0x590C4E3215BB0675, 0x6BDD0430E4191248}, + {0x582DEB124C69DFE6, 0x9D7BB67452CB04E1, 0x4BDD1E96C92FF9CE, 0x4BEE66AF07C1EFC2, 0x4E12CADFAFDE08D2, + 0x093BEB81235E5B88, 0xC7A229826DE0B7A4, 0xBF6677BBAEFD159A, 0xFE668DDB48E651FA, 0x884010A0482C2943, + 0x8B1E95C66E50641B, 0x63864ACBB9C4A820, 0x70FBC9420571419C, 0x03391958E61594D0, 0x6984790AAEA440D4, + 0xC8C9E7A6E4770CD2, 0xA916F26DBA27F89F, 0x932B01C2F7181587, 0xE20A08124C246362, 0x4829539A2AA65FEA, + 0xCDD2A47455417F48, 0xCA3E19CCBCA42165, 0xE3593E681DE091E7, 0x55297E717EFFBDB1, 0x226EBFB9FB03075A, + 0x8D2A65870D670D67, 0xBC7D1BCB00CE1C3C, 0x57590F55B90BC658, 0x41F0ECCA8B2D3CA8, 0x977419892418DC5F, + 0x0DED33F19AA3BF6C, 0x76E3B18303474E66, 0xA388436C501696E4, 0x21D3237901476ECD, 0xB9579CBB4F2373ED, + 0x82BF107D66CDE10C, 0xCE1DCD239423B445, 0x47E72D5B5ACA97E4, 0x9B7944E49B5DA4A3, 0x49DE448E1217DF09, + 0x594620445D4D51E1, 0x1E43BE76FC0A2242, 0x8EDE36BDD7610112, 0xF320CA2A5207C8FF, 0x8D5898FF849F0E3A, + 0xB100D91D4F43540A, 0xC2C9A4CC7BB5866C, 0xE6F415E21A174F30, 0xC85B34A57D6B3DAF, 0xA48A4FBE5FD5C985, + 0x52EA1D0003AADE3A, 0x9BBE95DBB495A1BC, 0xFCC66D5B6D9D2588, 0xAF0DCE4816DFEFF8, 0x974A383D6F3FD20A, + 0x8EE13D7017FFFF15, 0x785CEC7995838007, 0x0AACC67920746073, 0x561B1E1FBF73A9C8, 0x21BA361F5157D3E5, + 0x262C2F85A9FF0949, 0xE49BB285C55B7C24, 0x032412C89A021E89, 0xA5F6894B4B1DC322, 0x1366A5EAE8A3D18C, + 0x103071B240124DE4, 0xAFDE2C7746F907B0, 0x50657CEB43C028EA, 0x25079AE75A49EFF2, 0xE05491433398D536, + 0x9624289C494D57BA, 0xB313B6A983713E60, 0x9B7C8D58D6937ED7, 0x4648533A79424326, 0x12A506CD12CB1F0E, + 0xF266B6B56FA42642, 0x9258EF6E53DC2588, 0x38C4321A6CF1C9E3, 0x43168F26236F345F, 0x8898EB91CAB0BC8A, + 0xBAF369E5D09983FD, 0x47D2257DDF0330A5, 0x969F209AC2EAB011, 0xC6B1D32C6BBEDDE0, 0xAE3D27065CDDB679, + 0x193C4C9A8C87FAB9, 0x632ADFF446779B0A, 0x9CC31432A602A42D, 0xBA125E95A065AC56, 0x62C879FAF9536812, + 0x8E4C1196409E80A3, 0xC7295A578967D7D9, 0xB1234975C543FCCC, 0x33B23BCFC49711B1, 0x6B590FCA0EB286CD, + 0xDD6555FD1913EACD, 0xF2A7B5B071315509, 0x1541381E3477FDFB, 0x056FC59A5FE535C8, 0x75BDF78EE661AF7D, + 0xEA1DF5CD788FE26D, 0x311C7204D7AA46C6, 0xE432FF97B753CA05, 0xB102A17441487E28, 0x85A7A2E9951DB9E0, + 0x4BF0BEB7C179AA97, 0x22FC2A5C6240C496, 0x679ECF549B3161EC, 0x72008B3366BBABCA, 0xCF37BB733F73C236, + 0x897A10269153CBA1, 0x5A1296E70DF364C9, 0xCCBF748B13757020, 0x67AA7C77BAE276C3, 0xD9D0B0B8E88697BE, + 0x2D912DF98964B532, 0x6EABA8B20809F6EB, 0x236677E16F6F880E, 0xAA9BF055900D9D35, 0xF5B21DF33D94A429, + 0xE5C9821365BE1FCF, 0xBCA70A7C57E7BD49, 0x2456BA7DB36D9335, 0x4F0EBCA6B5C9AA92, 0x3C198D476AAEBF6D, + 0x2EAB600AA29DB937, 0x55283638B08A926C, 0x6F0E80BCD2D0D78F, 0x7BA939DDD9D65CF5, 0x7120DB03B6F9AFF1, + 0x7847D0F246B578AE, 0x3E31598C2FADA49B, 0x6C5ABEB3AAF6150C, 0xBCDC57E2C387DC04, 0x21DD974D16CC3C31, + 0x677E72125B3763F1, 0xD22FCE45599DF4BF, 0x4ACC3B25EEC8E40E, 0x418ED3C2E3C44BFD, 0xE22CF778D130CDFB, + 0xCCDB98D1EA7C0C44, 0xDC43D99F8AE1750B, 0x93D2D71A99E8A055, 0x01BB608DC3E62CCB, 0xDAA3760AC58F1B60, + 0x6C058721AC8AAD50, 0x9B26B1F2B8650FC7, 0x8268A32E5AE5BD63, 0x20CB149AAC750E40, 0x4BEF0F8082BD53BB, + 0x71E499057C448D2C, 0x26D1919427A25C74, 0x368E30659C94832E, 0xCEAA0FD3C498F941, 0x0F276825CB853F15, + 0x479C972418F66F26, 0x8AB071AD243A7F6E, 0xDAEECE1AD16C3E42, 0xEA1BC2FC42A44964, 0xF902BFCD463DBA0C, + 0x113F14B09F176E5D, 0x7FCA1D2364CBE595, 0x86AC399C78DB87F7, 0x2BE4376167BFB2FE, 0x5EA1FB6734CA12AC, + 0xAF12F44C32768801, 0xFC5E59F77F76C883, 0xC2AF9F7C2756D4E6, 0xC4416213BF8D4B11, 0x633001F9840772D5, + 0x764EA2FC81C5356D, 0x6F6E2D346A7B2C55, 0x84C8EE1BA7B25EF3, 0x4440FD4A083E7DB1, 0x31CFB56FB3EEDED5, + 0xB7C4F14987616718, 0x9492473A697EB21A, 0x6048EA2DD5FB71FE, 0xE637DEC4300A53A8, 0x428F4993806D1C9B, + 0x683FDB820F0F135F, 0xB603B7B5907217FC, 0x1231E9BF42FC98E5, 0x493A6663D90A21BD, 0xA5D129A89F91B147, + 0x1BC427353D6D6ECC, 0x6D70317675EF028A, 0x8757FAFC3311CB12, 0x8ECF63806A126713, 0x4AED0185C297B4F8, + 0xACB48DD9165F98F3, 0x1AA7F93B18C21FAC, 0x32A43FA1B23E5F73, 0x4D1E8E7F1A954ACC, 0x03DA953C2124A765, + 0x353621FDB47ADFE2, 0x5F91090BCE7DFDCD, 0x12E751E541FE59EE, 0x7A6B58C560E4F4CA, 0x47A8AEEAECFFA1D1, + 0x9DE5830685C3D0F6, 0xFE2FD15271909F3C, 0x966A1F9774A163A6, 0x5975676A68904AF4, 0x66A0C927BA083548, + 0x2A4C586E619B3DA7, 0x55652A1106BEC009, 0xC6CAB33CBF9B10F3, 0xBD4AC1B9E87D238E, 0x0A148A1F3249B27F, + 0xF50320CB750FCF19, 0x2F75A61C99CFED73, 0x5B964974E297934B, 0xE2979A612C8C694E, 0x372FBD9316E70D56, + 0x2E320017F86D6D97, 0xC731F1DE9E1C9987, 0xC8F626BDCFD22115, 0x0F3EB973569F530F, 0x68F056B9B6A7A61F, + 0x54C2A17B040F38CB, 0x5E4348C400360119, 0x0C5DBD6C4FE5A19F, 0x6E38F027EB9C399B, 0x9C604BEB7E098F33, + 0x3CAAA4CAE1B57E4D, 0x9E4F73A3948703D2, 0x0272BB0E1206FC1A, 0x74080542D20678C1, 0xB133129C49FD6CB3, + 0x2AE42128066DE7CE, 0x2A1E4FC3C26B2A8C, 0xD589753928D4BF29, 0x0B28919E26431A9B, 0xDDDED0C558A21B26, + 0x4A4A51253FAE08C4, 0xC49E854B5E58A5B5, 0x9FB7EBF112DC363A, 0x7EF2D68F295C9FAA, 0xA0346242299D2086, + 0x8324A0D3FDA61F2A, 0xB06CAC2AE21842B3, 0xF9CF6F44414CFF3D, 0x94B092847BCE95FF, 0xFEABD2FBCBD5B4D9, + 0x43D6AB5D4D722440, 0xD434B205275628C1, 0xEAB1A1AD5B3BF2D5, 0xD0E50367CC28FA02, 0xDDC9724C56F48DC5, + 0x2802D74BE9BB5236, 0x1E261AC463C43790, 0xCF4E85722BF6D0CC, 0x7D4AAC136CA6A80C, 0xC64F0722F822CDBD, + 0x4430121531422915, 0x1282ED261229B55C, 0x31EF956897018B4E, 0x0AB02CD9C93FF03D, 0xF9B12EB4693DD201, + 0x4D24BA727E0DD9C1, 0x6AD1E9E3015611DE, 0xD64467EB51B3E282, 0xCE27F9DCEE03EB55, 0x3C510A76D5A5B575, + 0xB3807C662F620324, 0xCB6C216D0882BC66, 0x5850FB0F39A7D32B, 0x3AE470C8FC42F1E2, 0x286524160110CE32, + 0x47439BB16232E462, 0xA20564FB288348D3, 0x062EDA015E8A0F3D, 0x89B1E21B33B4186E, 0x9F15C8D20EC0C70D, + 0xEFE293B3D35FEFDD, 0x886E5436DA370FCD, 0x97957714EE116ECC, 0x0B5963F1E0F87EC4, 0xE7B416FC137ED2AD, + 0xF59CF6A6B472B3F6, 0x2844E9F1AAC04863, 0x3F227967E196E267, 0xEC3AE43B017AB5FD, 0xF9C57CEF94BFFA58, + 0xDB345BD79F55E381, 0x56E30C793422910F, 0xD79FE0F99001618A, 0x2424AAF0E4DE204D, 0x09EA24FECF5BCBE3, + 0x867B88A1F6041BD1, 0x98FD1C3C828C3EFB, 0xF5EE4623C6B56A3A, 0x5779761B83654474, 0x4F75A4F4C16D2859, + 0x142A90F7F3EE4689, 0xC3A29E26EF0071BC, 0x54D7E6FECBAF24AF, 0x6BE58FFAA666DE10, 0xB74B43A727DA3EDF, + 0xD761930EDF2D2C76, 0x7B00FA5777F5C474, 0x096835DFFE5D4E0C, 0xE587ADDA54D125CE, 0xE89703E3D1C3525E, + 0x4725367FB9CA9419, 0x8F5DDA6A9AEBFD6D, 0xC16BDD68B95865A8, 0xB712F5B67F50A4F8, 0x7ED6E746CAF2E604, + 0xA329BF87856F2657, 0xA1A4AF4F7BA9B8DC, 0xD063EDCE1B917C18, 0x4BDB44713F7B3843, 0x5ABB873ABEC4988A, + 0xE85E7ED6362DD4FD, 0xCF60BFCD6C5B5310, 0x91E971043A5A34BE, 0x730910BEDF8FF767, 0x7DA446B1CA911BD3, + 0xEBEC93351C9BF480, 0x3CABC4AF1857E49A, 0xE88CC58BDC728DBD, 0x70F61C08C082883A, 0x2E821DEDF1247EEF, + 0x8DA4A3843FA43549, 0xF71C1D0FB6BC1021, 0x45BF56A529094165, 0x940C06AA51802A2B, 0x4F8EF211FA9955F2, + 0x623553A62FFFFCA9, 0x6A002969359F03AC, 0x3E5BE89AF9B33FC9, 0xC9E9A1BF338492EB, 0x4C598B7449C19ECD, + 0x980E350F878A83AB, 0x745D4065A4DD41E4, 0x07287FE66D133AF5, 0x5D78D77AE68458F8, 0x07E390B125012D2F, + 0x287DA027120A3E7F, 0x4ED42AE1187EE372, 0x16BEB10931CB8591, 0x9013B120F55FF369, 0x1764BE0CCFBB3B30, + 0x8ED7E8FBF172B150, 0x012CA49B7BB36FAF, 0xEE405C9C6A244A21, 0x1AF79464E9CD4AEC, 0xD15BDC5956FF7B17, + 0xFDA821487CE712A6, 0xB0C1358C2BCA66AC, 0xF08B563DE0BED614, 0xA96400AF1942DB2D, 0x2A3C5A4D628019DF, + 0x5C09C5F634877C72, 0xB42FC621D019BAB0, 0x665E687A34876B62, 0xF7406E0B9184536E, 0xDF99D411AE07F0AA, + 0xF5F9FF2D918B8485, 0x0B0C6963CAF45545, 0xB2BC2A90222B4A23, 0x6A82C3295984BF57, 0x0AAE09D603D49379, + 0x62E94289F8624443, 0x3FA9C7D3C501BBAB, 0x94A875701CF5CC74, 0x830916A30F35387C, 0xA3469EB16262DAF5, + 0xC5A214083AAA6EC5, 0x156EE93785BA6BF3, 0xB40CB14548592820, 0x9AACA89370998FE8, 0x0FCF6A09F70B2BE7, + 0xC901976C88893110, 0x29719AE1714EC430, 0x5EB3AE4B8ED00988, 0xE5C548E0B0A8DB0D, 0x82342EB8C18E93DB, + 0x87EB158BD5115A26, 0x137EFD0B58A0E26E, 0x713315E8E638C6DA, 0xF7864967B18C3B96, 0xB4648CC96CB34B21, + 0xD3F82DC1F55F522F, 0x31CF8492DB5FFE56, 0x4CB77ECC762E2D91, 0x6E20E759C8F83943, 0x09819FB8D4AD3099, + 0xD7C00D73659FB09E, 0xAE67F6A559AB9663, 0xF7FD4325F4C91447, 0x685EA3C45DD3C7AC, 0x5B588E2603B8DDC8, + 0x790CFFDDC129DF12, 0xD12A03D70837A33F, 0x70FC5A75CDC9301B, 0x88E6C0FF52ED3F18, 0x363D2BD4EF2E1313, + 0x343ED12346BB85D6, 0xA3DFB15F0B629476, 0x22233AB31DE22342, 0xAB5669DA37FE4B96, 0x7E0388E8ACE2CACB, + 0x682C8E0028FBE4FD, 0x5BE6F4970005909F, 0x8C9D24D3A75505E4, 0xC93BD16847B13DC5, 0x7025FFDAD9EC1C39, + 0xA0B3FAFDBCFE765D, 0xE797270E3E997DED, 0xB9ED7F321B941364, 0xE0C62E856E2032C3, 0x4983A9810003B8BC, + 0x9DF2C5ABFCB071E1, 0xDC4B25C80AA993C0, 0x2A15CB17659D5E1F, 0xA714B422487EE56E, 0x28876B74AA6423BC, + 0x566ECA1F093B79E6, 0xEE43C3119F90E9F6, 0xCB15FC3DC977776B, 0x7365C261356672A8, 0xE871C03C8F84E4DC, + 0x602C70335B284C55, 0xAB1B97E5F01AF11E, 0x3C2B0ECA9BA10EB0, 0xF8B88D1C3D09BE53, 0x9FD0065679D40744, + 0x081A7BAFA1C0A919, 0x4DF6B3AAFDBB89C6, 0x7A00CB8B31373AF9, 0xD3D07861A862D435, 0x8DD5CFF99E76B019, + 0x57AFA8983C1C3D5A, 0x12C64BECAB33013B, 0xE5E0D27D3637A024, 0xE7E91BBA26D9EE2A, 0x37D152F0BC0126E7, + 0x305930E895D796B7, 0x3C53E779DD5C75CE, 0x8F5AE65FC643C9DE, 0x110E07CE1E12A78B, 0x885E4A0114124B89, + 0xD60655BD9CAB01DD, 0xD7278599332481AC, 0x60CE6D72DEB3AB49, 0xEBFC724F3DA3769C, 0xDF4AE457E8DAB273, + 0x19AED6341CA70175, 0xEF886EBA2BCA2B43, 0xA880F801E50DFD7A, 0xDE3420C290594CB3, 0x0EAD069D18058486, + 0x81512D98D08D6BFA, 0x5E9AE64281CACBE9, 0x13D4DD5987E1046B, 0x31C0BDB8AAF28917, 0xEAE1C35AB1D9FF6B, + 0x1C65AEE47EC8F1C9, 0x0C47C29F6FCE2EF5, 0xC837A7DCEE204878, 0xAB29776131C5E9E2, 0xBA19B267112CDDE7, + 0x57FFDE625471AC16, 0x8AFB5D9C04B55300, 0x5C82985C0E3E992B, 0x2790531A38BFF795, 0xCEEFE9C1038297FE, + 0x7900539C55BE4803, 0xA63A884F03FCFA17, 0x81C34C5829336EB7, 0xCAA4C55D9C8C62E1, 0xEA5CBF40913DFCEF, + 0x126392D217FE1208, 0x0B8A09BFC4B9345B, 0xC08D15789B98630F, 0x0E6917A808172009, 0x44F41041CEE69505, + 0xB36B4B958D4D7E20, 0xF81EC3A93C40EC82, 0x9F4CA97A61266B03, 0x2AE590E3D766889E, 0x16A242A9A163E854, + 0xD5F98B590732BC58, 0xDF11DE0A851BC041, 0xF4BDCFB51155AF9C, 0x68F7D67E5D4B98A4, 0x6D251E6321BA70BD, + 0x32C898DFB47FCA25, 0x2E75539F87321728, 0x7848109313724F75, 0x147989F8DC1A65BF, 0x93CD4C6C28148B7E, + 0x2042124870074660, 0xE29977F3468EDBDB, 0xF92F375E97476FC0, 0xDFE6259BE6A91282, 0x8B61D3C2C8974467, + 0x78D726728615EBF0, 0x30D70CE557E66119, 0x0D10DA7FA2D090A3, 0xF1506DA1389AB05D, 0xC528CCF491ECCCE2, + 0xC82A47B4EB43C9A0, 0x808652EB2C04972F, 0x36866F64840B1188, 0x1DCE2B68D142B973, 0x4A40869E1A09C0AE, + 0x4D76D3174D640E42, 0xE89160A25B66745E}, + {0x1813414E501299B7, 0x6BE2C3C0D7E7CA40, 0x54381B4A1BD2FEA8, 0x447E86ABAA8FC71B, 0xC1CEFBD2BA9EC049, + 0xCCF95E1B1BD7F517, 0xCD00E4189425FD04, 0xD5CC7BC7BBE475AA, 0x0FE77A634B33C1D9, 0x15234112B3A14147, + 0xE7DA58B6DCA463C3, 0x95ABFBF721F48911, 0xE1D458296007D6AD, 0xD7212A0FFB63CC93, 0x235EC32455339A06, + 0x60A21665437259BC, 0x9875A4EAB0281D1F, 0x87A5132C3BFE10E1, 0xB06A60CF32730743, 0x4A8DA4EC043049CE, + 0xB828316B06955CE5, 0xD203241F6666B6C9, 0x3158689A52A57F06, 0xA528C472C12335F9, 0x1A586CFB4DC088D1, + 0xEABB696DDE3E37AC, 0x46F0AE06D49965D6, 0x9BBD9A3CDA2248F2, 0xCACC586F941DBC88, 0x655D007096363ACC, + 0xC9B379899E6205CD, 0xCBC61819AE35A0E7, 0x7CAECC4A9F665005, 0x510BFD2B03AC3D6F, 0x97D1C8A60BB20048, + 0xB70EC8E02F77A998, 0x212C030EB033A771, 0xFE596F540D539B7F, 0x2172E125730B3993, 0x67911E46E63AC090, + 0xFE538475C3840568, 0x99FA3F63F54F532D, 0xEF65C181FF89BC60, 0x1B305A567753ACE5, 0x4508F9CC90E27BA8, + 0xA5116FE535E07E7B, 0xCCFCD3C422B023FF, 0xAE60E7A7EC85E0B5, 0xB6047E9D251734E9, 0x04D506E24D637F55, + 0xEC9BC995E7BB2407, 0x4E8DEC4AD48688BA, 0xC83BC57FEF3EA38A, 0x1D5A0A61233FEB51, 0x6FB4395858846AA3, + 0x59369057E61D3F66, 0x56720BA216BE8F47, 0xFA7CD00B40194DD0, 0x0B537E05A7FE5E31, 0xB8C0C7F8D3F349AE, + 0x3968BC4EE6CB7A20, 0x43D54DBB4C003C1A, 0x3BC3EB2D4A3CB0DB, 0x92418494866E2302, 0x950F1E85CCF6454D, + 0x0461C8E49265E1C7, 0xEEE260C0832204BA, 0xF309113E5CC2EB14, 0xDAE649C5EB8A2095, 0x075DAE9624408FE1, + 0xC51FEED5690EF527, 0x7A761F920BB598AC, 0xA876748C669D15CA, 0xBB57790F80263BE4, 0x48911C477C360893, + 0x841AC45BF6E397A0, 0x8950E64F4D3FE794, 0xBC3EE08ADE028A1F, 0x77410919B800606F, 0x8B991275C3479153, + 0xBD3A06350CFDD05E, 0x3010897EB7EE363B, 0xE921394A9CA01C12, 0x4EBE72942BB033B3, 0x329DEC3E527D9DB4, + 0xB46F26A2C42A1C44, 0xAD04AEE0C72739F5, 0xDFC9E09FE9CEFE98, 0x12E330CBC4F0A0AC, 0x2D7EFF5D943652BB, + 0x4AA6DAB5F3D1409B, 0xF074BA49DA13C1B7, 0x5BA88A0DAEAEA32A, 0x0A7BC2870D5C7B55, 0x2E0B6362CAF5841A, + 0x97EC9BA74C1A8334, 0x4291F5B9BE9F1AFD, 0x9639A0D16E7CED29, 0xC146F3B583B102C6, 0x3D4ADDAE469EE41D, + 0xCC075710950695F7, 0x33AC057970828C0C, 0xD30FAAF69E3E5B06, 0x25778D475B26729B, 0xCE67B9413DDD901D, + 0x6CE971E26CA735C6, 0x14EDA444A3569E06, 0x94B5042459E798BF, 0x986A2AAA933A9102, 0xBFA7ABD549A8ABC5, + 0xA127D4E7C9157845, 0xDDAF6944120ACF54, 0xDD98EA06D59BC823, 0xAD09DC8893C1E72A, 0xB317BA99549FE7DC, + 0xA736AA6C61B82CA0, 0x07C29A154A9C3D34, 0xDE9276AF16FC9776, 0x968EFAB51A969526, 0xC959BC5955BF58C4, + 0x9A1B787100F48EF3, 0xB19EC269BE5F3BFC, 0xA50A853A0F5B1FA6, 0xAD0D3AAFECF03EA8, 0xC179AB344C35C5E4, + 0xC6D0F56D41F7DD5C, 0x6F2CAC9640B2BDDE, 0x72DB1B7544529AB3, 0x66E0091F32AAFD05, 0x413973B8B1B27D0F, + 0xEA766E73CA16638F, 0xF9261E0DC6651217, 0x5554CFAF0282C3BD, 0xC1CC25CDE966297E, 0x23EEC576A9C8447D, + 0x115C2E8DA4319136, 0x072F5F9F18B8F986, 0x346D7D9A356E03DF, 0x505F5829D6538BE1, 0xAC1C3FBF6B00A3AB, + 0xCBC6EDBB65E1212E, 0x9EB60614E3C87C80, 0x923987C2498456AD, 0x4B9355AF62067DA7, 0x9893885E5D3F8DDD, + 0x638EFC316EAE4886, 0x55365AAE0E51562E, 0x03055B832C8B6F8A, 0xBE99CA93A3D9CF3D, 0x53D9AAA43A7A1668, + 0x48023C40AB9FFA70, 0xB09E3202EF4C24FE, 0xB3A2CAB6B1515DDE, 0xAD962A381706472C, 0xBDAC9E5E4E18B526, + 0x09CCC4381E4835C5, 0x4687609619BE3814, 0xBD555E8432CE5019, 0xC49B5AA3A971FEBA, 0xC8A881FA9F3224C8, + 0x18278BFD44B45EFD, 0xBA892261F8109F0C, 0x3C20E8230E37CD1D, 0x710C278238746C45, 0xA4890EDB2EBDCE14, + 0x0AED153A6B80FFDF, 0x76A0AC51D0324B7A, 0xAC370773C5FECBE8, 0x934AC09E5C1B1FF9, 0x2FEBD5B7A943A302, + 0x12277DDCC7A5A5BF, 0x96706D701177D15C, 0x12487D33AFE35B06, 0xD5A2286E3031126F, 0xD6F212A4084ABB07, + 0xF22D0314135B788C, 0x6215782F2C8988A9, 0x9354B1D4F6D468C6, 0x8B14ACA384FEF6DA, 0x1903017BC7459323, + 0x4F458E5E353034C0, 0x03554B89AF654F4D, 0x6C300807B4128943, 0x2B330AF1E9DB8EDA, 0xCB64B3FB575CFF90, + 0x13B51E76A8F49AD7, 0x32A1F501C612AA13, 0x18B3E30C6FB3F1F0, 0x9B4A9CB78566E1C8, 0x96DB3CFE8B941422, + 0xAD7AF6F24CC3A0C6, 0xB58DAFF74D07B914, 0xADDAC5E20DE6F526, 0x30F3AE6BF7920E2A, 0x1E5B078595AF7D36, + 0xF238250F2B6124FA, 0x4ECFBB022C5F2E0A, 0x66C5AF92236DED10, 0x00EE1B5B48FDDE63, 0x3C6973B9B1098FDB, + 0xC7EFDF3ED0E94295, 0xBF3896F1A1DB4791, 0xA2EFEA392EF07D38, 0xA303D5E2ACAC2829, 0x3CD6AFD04114E005, + 0xE23000457A9AB19C, 0xBD6BE8C0B4DBA8DD, 0x9F8B613D6EE9CD07, 0x8BE5A47200F6F30A, 0xA7B1990717344145, + 0xE7EAF3679AD03D08, 0xB8460B6331DAE691, 0xD2F4D9271552C2D2, 0x3ACD4BB50AEA2185, 0x5DF5EA0B9E197EE7, + 0xB515039D34DD57C4, 0x8107BD70B24C72D9, 0x97EDE5122F7DFC04, 0xD478FD0D07CCA104, 0x82E793536BE9C59C, + 0x5A690B7873DC7AAA, 0x1ED988A667C81668, 0x38B4F9758C7A143A, 0x694D031B40BF0A38, 0x204A8019C8C799B4, + 0x82A912506EBAD1ED, 0xFCE7C6B1DA72296C, 0xF12CA9A26FD5EC17, 0xEF36507B137AEA77, 0x6282DAA996CAB8B7, + 0x85D24FFFF3E74EBF, 0xF9102E6ED626690A, 0x78DA867CED4AED12, 0x2E8F95C5292577DB, 0x993F8B4A29C70558, + 0xC41950C9B61A5778, 0xDB152B3C53AC1824, 0xD239B7F8481E5A66, 0x5AA1FAEEAA279D9B, 0xC55F6CF3433C9887, + 0xF0D6BF000BBC8A6E, 0xD696870AC005893C, 0x5BE26464C5A6E749, 0xFBDC9083F2AD58DD, 0x0B85AC65213D0789, + 0x35C2127572256B5A, 0x5FDE6D6757CA18A1, 0x817E581A304E5D1B, 0x1735FD02284C095F, 0x10497FD73608FEBF, + 0x163DA49D6C39A7F6, 0xB0F48E739E103CBD, 0x3A92FC0A69991CC0, 0xCC2A6BF795E3CF3E, 0x97AD5A476B6B7014, + 0x2510AE1209EFF7F1, 0xEF8B322E94A2AD59, 0xE20D59F9093A7E5F, 0xB2F17912A7BB24DA, 0xE687B87439BD3D79, + 0x58C126549EF74571, 0xFB6FE399446FC99E, 0x3EBB309DCBF69CE4, 0x01FB27F4C5DC22C1, 0xCAD35CAE210C6E79, + 0xA7F708D42B483C4E, 0x001A132761CC6881, 0xE873278F79A1746C, 0x25B41DFF5F73001D, 0xB9A777720AF33B63, + 0x05FA152B85D4AB2D, 0x9E1DFA9C9E63F6CC, 0x4300A8F0E5E9AF04, 0xF57CD0873CA260DE, 0xB321D044DCE97C48, + 0x5CFC7C977FCE6126, 0x10B3A0ED5A39BE41, 0x7EAED6CB012190BB, 0xFF8CC14797EB3135, 0xB65914ED43517F53, + 0xFF0FC8A2DE2AC205, 0xEFADEA87E09DD782, 0xEF0C55E6E5E72CEC, 0x4EF1F5ED7A80D6B0, 0xA7FD204B5E697436, + 0xF4C91819D1BAA256, 0x8460A4E37ECB07EA, 0x23A5A122A450EB36, 0x67F2B184AC7FECA2, 0xE31CC127A5E65EDA, + 0x0F6BDD2A03C33FBE, 0xBB99781A91267BC0, 0x10EB05EB6628015F, 0xA065E25BA40E6D9B, 0xA47AA7E4B6B4042C, + 0xDAF8F606076E2105, 0xAE70DF8D05168D3A, 0xB28A6558287C495C, 0x2204746248C4EDCD, 0x8ED78325E3F454A2, + 0xA7FCAD59C8E3A5ED, 0x13276F0C2BBC07E5, 0x78291D6ACD2D4605, 0xE1507A12CF85A886, 0x1351B084226191BF, + 0x05B4177BDFBDE161, 0x738311EC7AC7C0F3, 0xCBB3FC9C9C69E613, 0xF80ED1E700A0C62C, 0x88FAC84A2D7A5E89, + 0x55184466F447F886, 0x0CFE0F02354CDA5F, 0x603B9D547FDA2365, 0xDB33C13A9BE07D5A, 0x9FF18C7DF8962E09, + 0x6F4771CB55DFD70B, 0x31E5824E745F678F, 0xF61CBE9EDED20520, 0x5DF48F1F6D2C9B78, 0x3F692420D071FE77, + 0x3F7A8E312CD99922, 0xA94D30F610C8795D, 0xE697E452EDB15AFF, 0x797BF702A8693A13, 0x3B189F7E3C9CCCE9, + 0xBB2F8EBCC6D10336, 0x7FBB9BDA3FFE8852, 0x71C1C468BCE764E6, 0xAEE3D2A2EAEDC387, 0xB26CE2D0190D3AA3, + 0x51B8A3D1244EB1E0, 0x3AB12010E8F8B9CC, 0x7042A36DE0527957, 0x3959FB409F55C51B, 0x39D13154A732F076, + 0xC0DB5499BA6B9839, 0xF924B912DB438760, 0xB789C5D066447296, 0x44A14EF3F955609C, 0x3B3B377A4B12E778, + 0xD700EE47C0A812B2, 0x167742BE12055665, 0x88F526277C5E6634, 0xB32EF584BE8FFA56, 0x5B1EF17CF6A96DB8, + 0xC4C03411D54A2D01, 0x12CE7856B2B2FB24, 0x252F639447946CF7, 0x6284740166C2AB89, 0x6A7FE1CB34F09AA3, + 0x5E843CF6B0EF3EF4, 0xC6CF10B112724710, 0x190F02366EEE2A04, 0x782EF879294D6180, 0xBB7D1E6AC0914B54, + 0x783814F5106D659D, 0xFE2482AA107A3732, 0xC3E96D258F1B7B88, 0x1610470713EFBBDD, 0xA35874824053051B, + 0x8F35D2E6BAF180C4, 0x8C6EABF7407FE61F, 0x14C6ACB08D4EECAA, 0x6A68997E7439D7F3, 0x7B56BB32E999E40D, + 0x17167CE0D22DF270, 0xE12956F71D02AAF0, 0x6C5D031B15AC057F, 0xA50894913A272487, 0xE6EED22DDBB3F16D, + 0xF37831CB0BA5ADF7, 0x89DA1FFCB35F992B, 0x805E107FB32498CC, 0xCFC49FA98FE1E957, 0x58461E64E6B84C29, + 0x2B5374430A1DF430, 0x8B3EADC131FED477, 0x12439C26D2D324A2, 0xCD2EB6D49C568CED, 0x0E37974BE94E022A, + 0xE5B8692774321AE0, 0x6E474CD72076F227, 0x045D5F08F2DA1852, 0x41AAEE4834EBAEFF, 0xA5C53C994AF8C741, + 0xEF884A8D17BDA9CA, 0x3A44EDC3A3AA82F6, 0x56AFAAC58203429D, 0x17BB09788A2A66FB, 0x2F5A23969DE43262, + 0xA7882E3872240689, 0xFFA455BFA10D53E0, 0xCFCC04FE1B54CD9B, 0x97109B187589B446, 0xBD621C29DC6C1AFA, + 0x72244DF392130693, 0xA1C9DD5DC1756BAA, 0xAD568D765C512DD1, 0x7CE1CD9FC2FC26B7, 0xE3AF08630C915843, + 0xA264A649964ACD93, 0x81C095D192AF8119, 0xA5FB6CF6A2AD4CD2, 0xC3A1811B1B2CAFF6, 0xBBEC6EF9586BFB28, + 0x9A7F0D02B0EE5EE5, 0x83D297320BEA8CDB, 0x453A83B90CA44C56, 0x7EC7FFB9A0A18B48, 0x4D3E70435F1C58BE, + 0x321BA48D0CA2FA73, 0x393962B9A1173518, 0x30A8DBDD5C58A51D, 0x4B1A078437213DC4, 0x3E6D61035CAC556D, + 0xBB5572CD55145DEC, 0xE07AC4D47A69574C, 0x0A153544F14DF77D, 0x8F5E49B469703C70, 0xC69F805C17B55ADE, + 0x01BB7F5CA0FBF358, 0x83717CF0B16B2E06, 0xCBC1246CD2BBE6E0, 0xBCD12E1B15B5986B, 0x69C93F2B38E6A901, + 0x7DC317D63B6CA57D, 0xDEEBAFDE316A9FAC, 0x711BB2A425633D35, 0x71BEEE5EE792B672, 0x8110E5B7F60B2AF0, + 0xFB1EDDC12AC3F45A, 0x128F691D4424673C, 0xFFCEA88A049EB849, 0xED4593901E40FFB7, 0xCEF284FB67280FDC, + 0xFE73AB89F1651FE0, 0xB8C092FB2655DB7C, 0xC23899AD93D25A14, 0xCDF73231A643126C, 0x9227556FACE0DECF, + 0x8757B04F3F8A276F, 0xC31D44708B367169, 0xAD3D3E851F5405C4, 0xE54A6E7D101B7120, 0x2F89107AA2D443A3, + 0x8792DBA597926356, 0x05A4238C2C3D53B0, 0xEDFA06C6387600C9, 0xC30C6C551163809E, 0xCB9284A822B313A7, + 0xE280404379296241, 0x9562CA0276558940, 0xF63E7D15E9412EF1, 0xBCFF6A0461A4AE3D, 0x12C9C8DD3C1706CD, + 0xC9C1C31B507B4AF1, 0xFA1514BB46BED033, 0x75CAE16C287FF945, 0x035E026412F07334, 0x41708DBE3861AF0B, + 0x1609AF2ED0D24A57, 0xCBC0237631B2123E, 0x33D5387517952F6D, 0xCB59FDDA744004CF, 0x50568316E6AF472E, + 0xB910C3D71BE6BA11, 0xA24D7B241413FC13, 0x98940A9832A840C2, 0xDEDF7F2EE1A7D582, 0xEAEF28ED172890D9, + 0x122472D940BCEA46, 0xE525F6685515D757, 0x855ACF4B3896869B, 0xBF6CE7350164644A, 0xDDE6DD1FE4223597, + 0x0B70CA1352DCF3DD, 0xF42BF8EF4348BB51, 0x7E613725C02C6F10, 0x2E2BEBF8286F66E6, 0xA43A6B347D34CD1E, + 0xF905EF5811E99643, 0x02D202881786E0E1, 0x1F1A64B28B6BD5BA, 0x2EE87D086F08D38D, 0xA32668BD461458A3, + 0x53312095BC157363, 0x8C614A97C51E2927, 0xA8C40B946DCBD9C9, 0xF1110D57703DA8D6, 0x11AE4D2E58F1B3A2, + 0x8960015AEE745C5B, 0x26708A7494F952C7, 0xE13A0A125FFCC697, 0x83105C6DB79F2A9F, 0x07A1C16FAEF648DF, + 0x779A8D0748F4C313, 0xC77F198ACD00E82E, 0xD3DD992B495C276A, 0x25BA29ABF178BBF0, 0xC46074900DD5FA56, + 0xE188B3735BDF0F0F, 0xDF8F9EAD7187AB63, 0x89646B240B4FA3FD, 0x4C42E30361BF7B56, 0x045DFB762A3A554B, + 0x297B4847254B91C2, 0x350E5D22DF51D190, 0xA6F142DFA78924F4, 0x4D2723A0303883BB, 0xF9B1729CDEA9A91D, + 0x7CA5327603E71915, 0xD4BF8305E49A986F}, + {0x31E3FC1DB74DB705, 0xEBAEA02B1445DFC3, 0x8010AE163809654A, 0x57C1EFCA7E8DD6BF, 0xF775BBE72EB44ADF, + 0x90BEE306A16224AA, 0xC6056D053433B0E5, 0x41C277635D2C593F, 0x3CB2C6BFE41B7E8A, 0xAE3B0F9C0FDA41B5, + 0xF00E6B3781F9B217, 0xFDD084E5B7797F67, 0x7CE84CA848B75776, 0x26711C40C09AA9CD, 0x9C1E122463EEB71C, + 0x78639B8FB261A7EF, 0x3BF54D4D14B64DB1, 0x8AA46ECC2CBC5D52, 0x5D241178AEBEAF86, 0x5EE6E6DAD39E5FFC, + 0x129C169B875DC127, 0x0365B3137754AEE2, 0x0593E8B770ABD315, 0x0425C8E05F6A9789, 0x05024E84B303AB81, + 0x735C3B42028B0221, 0x5CE9B305CE869209, 0xC1786F86DE22E25E, 0xA3209F824A92EC04, 0x61B597B8DA43CC80, + 0x07BFAEBBF53721D3, 0x479128BC039D1CDD, 0xF03F24F2B1230913, 0xB5E479C2B1294DE1, 0xF80FEDB72B84C016, + 0xDAF5E6877B05CCBB, 0x6F121B082712E962, 0x8869461955347230, 0x60810591932D6A6F, 0x6C33581077EEEF73, + 0x865F06892CCB1920, 0x271C877DEE202593, 0x7E1E9588B3C7D9F9, 0xD45AFCE8784327D5, 0x1E8CDF3EC2A80B53, + 0x987F57DE9787E433, 0x12C89991A5BAB2E0, 0x4071E984D4139479, 0x3AE57AF6B895D2F0, 0x6D7A45957B75D3C7, + 0x1597ADC87EDF0964, 0xF40ABEB1EDA59176, 0x864CCECF122C9496, 0x29816F543837FFCE, 0x1D5D20583096EBB5, + 0xE6750274D2613713, 0x219283D3ECCBD744, 0x3E37C3DF2CF97CE0, 0xEEC037F5FC15A9F9, 0x7AFEE1D0DEAAA3A0, + 0x6F952C34199D1D5A, 0xA71297B8AC1D3068, 0xB0872C9B457B839C, 0x20AA815CA8A40B6E, 0xCBF4907BEEBD9359, + 0xC38E63BF02A0F0AF, 0x23DAA2F34A051C0C, 0xE5264D9643B416AD, 0x7BBB259F796DFB48, 0x72A6BF2C25C47370, + 0xD1EEFB32E5ED6761, 0x4C965B0D347448A0, 0x9118194AB38E6885, 0x3F52851F80FE1BCC, 0x73C3F0004285E702, + 0xD942727C4DEA5923, 0xDC14B5D4A5BDF4F6, 0xC7B677F08A4E78F3, 0x42375782C65F632E, 0x85C40279041B58D2, + 0xA306DBB6389E3B0A, 0x9E12171029E045D6, 0x1F69FE801F161F82, 0x287715F4D7FDE8DD, 0x7934FB41A481FE01, + 0x51360BDD42E7936D, 0x5C922BCAD45652E3, 0x1F017C9E2C064C9C, 0x847B2501712838A7, 0xCC6ECFCE26FD5A3D, + 0x47FA5D9078ED12B6, 0x4554E588974D55B6, 0x313F22A500204F99, 0x01A8DD4EB5F8A8E3, 0xD5C382062D72294E, + 0x0795678509AB627C, 0x81124C431E39DC82, 0x433B7C10A2B139BB, 0xF7501FB33EADCAD6, 0x570E1202D1A6E125, + 0x83A5A064EFEB89B7, 0x30F6FCB4E0FF843A, 0xC92EAB43F0E74B29, 0x9767D4B0E9095752, 0x4C0D22F3A15C3CC5, + 0x4F3FA24737C9E584, 0x46E7262D0F15E299, 0x0FA21DBF49645562, 0x577CB3C55C6143CB, 0xE1EE2113DB38E771, + 0xD9AD4B9823A13A2E, 0xAAC64647E989F07F, 0xE27CA0656EEA44A7, 0xB495486CAA9AA915, 0xFF2FD5A9DC68366E, + 0x1ACFC7B60ABCC8C7, 0x9FB8582152246DCC, 0x179758147ED03B38, 0x479D229F5FC090B1, 0x49305D0C8C738A42, + 0x62EB89D5567BFE62, 0x1B554A54ACFA67AB, 0xDC0A0797C6CCF676, 0x902687DAF6D0FC02, 0xBF158F4F6DFC024B, + 0x9F8378614FBA442A, 0x200075DD624FBC0C, 0x96F91C4BE3627EDA, 0x73A06D42C0904F4C, 0xC0DE71250B353390, + 0xFE137BDA1940E4D0, 0xB31C7A2E04A11BA2, 0xE23F065F317F7D9B, 0xCF6C9055EE593CDE, 0xAC11D4315B879274, + 0x2F2FB513208BA3A2, 0xEF4641090C806300, 0xBC509275FC5CB48C, 0xBB74D78B20D19FEB, 0x22ACC7DABCC43207, + 0x1CB4BFCEA7665772, 0xC0FBC53F59C6B3FA, 0xB1D25E08ED7B03A7, 0xE4A24C70675250F1, 0xBAFC03DB58A93B95, + 0x7D41303B822ABBD3, 0x85DAC274C08AE848, 0x53C1C377A588C2A1, 0x7BF7E6C79D762519, 0xA1D0ACE9E2A96D7F, + 0xB809AE4F90402DF0, 0x9712FF4D78F00BCE, 0x1FE118E47B304B93, 0x68DA586A4451B254, 0xADD318BA3A6C553C, + 0xF8E8A530393488CF, 0x2397EA25FA132D69, 0x22D251683A58C186, 0xE1F0CC7EBA31C58C, 0xD13E02DF08433120, + 0x07D4C54C4B87D121, 0x5471C520C644904E, 0xB0052E3DB8F959CC, 0xE7081FF7BCC55BBF, 0x83B6D61FF396CDF4, + 0x5B02545753F886B8, 0x8E9D43133ECB1236, 0xF7390B13D17333B9, 0x284E30AB1DF3178A, 0x8CCB05F92C9630B6, + 0x39A518C764D7FF63, 0xA9C07C588A573696, 0x79E077B05299545C, 0xA44779E084DE02FA, 0xC0683C1433CE3BC0, + 0x561BD0294FABAA42, 0x902E02ED49E1B400, 0x73415310DAED7C1D, 0x6BE556991B016097, 0x8B49C8B39209B154, + 0x5369FDA490F0C43F, 0x3600A2D22A13D1A7, 0xA0A758C149E42F03, 0xFC2761DE7015DAE2, 0x31F790A3708202BD, + 0x0228A0A2B79128BE, 0xA57028A9ABAFFFE3, 0x9D3980C3294526C3, 0x272B23AB06D22B8C, 0x7458FCA8B2316092, + 0x2C3DA784F1F195B4, 0xB02CA084AF3B8F0F, 0xC4D5DCBBC4F9F21B, 0x92F5007019BC69A7, 0xF80FCF27F26EACF8, + 0xED57C98221E0E6B6, 0x75661E4649F5DF5C, 0x99585D71208E7BCB, 0x81FE0511086BE6A7, 0x580E121AD387A8A2, + 0xD534CFDB46ACBA1F, 0x4310EF02F44B6FD5, 0xC6C5723ECECEAB3B, 0xDBC99A4A4A9588BE, 0xDC9B3EABA956A298, + 0x46462F13043B759A, 0x406B530F4406BF84, 0x077843AD116AF21B, 0x1284992E07E17CBD, 0xF3303A6428F25DF9, + 0x1367D51527A4FF7B, 0xF93B17CC2F7CA83F, 0x684F25D00795B43A, 0x235949165B7799A2, 0xCC0EB02D07E743E5, + 0x9905F80ECF5AEE15, 0xCC1C73D50DC08839, 0x62C5D25B4AEBA4E9, 0x6EEB3B273A3C25F0, 0x895B246F59C2693B, + 0xA277CFC76E1741CA, 0x2F43D64B669821C5, 0x8C653CEAD4D3878B, 0x69A08CC8A1C9E9A4, 0x04317484048A5832, + 0x8749DAE2E5154807, 0xB02053C2F2CB509E, 0x348893F2B117DFF6, 0x1E7C6FB61C7E1426, 0x2912818CC4091776, + 0x03A610D2C12133F8, 0x78EB2CAFC48E303B, 0xA9B349809338820E, 0x900887EBD0777CF9, 0x7A9AEDE32B66E3AA, + 0xF76123B6D4C3813D, 0x1E2F74A9BB98BFBB, 0x2174BC08364B4661, 0x2E222888CAA95B50, 0xBAEB9903D0784A77, + 0x13A8D61B1F1A0360, 0x634B13362C3453D4, 0xC7EB962E2DFB96A0, 0xE2BC472181E76AB8, 0x0B4BB8F09247A38A, + 0xA73E6EC87E37741D, 0x9315576B9C7B8259, 0xEBCB0EB9522D2B88, 0x89225580A45B5928, 0x9AE42E0D70509271, + 0xAC6D2CF904620A30, 0x60AD0E936FE6009A, 0xD4FEF6444B31EB90, 0x2A823B97E3AA9B75, 0xE6B6338168D7EB43, + 0xFF0F06709A9D6B11, 0xD32F6AAC1C2EB735, 0x222DF45183EF16D6, 0x7E77AE268BF6EEAB, 0xC352B10AA3C141D6, + 0xFEB5E3AFFAA79877, 0xA82A7BB1153C7A6B, 0xA151EC9CBE19FDCD, 0xCD5911FD1C7DBF14, 0xFA671ABF3A3EB116, + 0x7EA956AE339E7944, 0xBD2A42A8C3DC36A1, 0x88E9FC67DD5444B3, 0x1636B2277290C218, 0x351BBF304E5FDA3C, + 0x1244CB75F4F1C50B, 0x0EA8A7C26EA321C2, 0xDEC9FE4C9BC85C25, 0xDEB0849D2964249A, 0x36586FC8E4232939, + 0xC22D5D40A60B8103, 0x4EABBF236DA78C8E, 0xE3B6F56EDCB9E6D2, 0xBBB72BC4F579FF66, 0x2DAF3FD231C8D015, + 0xBB4F598E284164AA, 0x675477C4F45D351E, 0x713CDE0A09FE1E93, 0x638469E5B3912C33, 0xFC5D1F62306708C8, + 0x14A5FE45A7F53E6C, 0x45F5369877AB237C, 0x89F8E57941F7B0AC, 0x5351F691F5A2CDFA, 0x94197BFBEBE89338, + 0x3F2524A5777B46C0, 0x2DD79BC4A8367B15, 0x7AD4995AD50F0220, 0x0D7EB8A49BDFB72D, 0x17D6BAEF4C4D2345, + 0xE25B89F5F72E973F, 0x63470C9CADD68981, 0xC366A12F8033E9BF, 0x51FC9BE036A711A1, 0x21DE984C05D1AF68, + 0xFA97AA3E1A75BFB4, 0x0DEDA97FEF3E885B, 0x718F6569A3F3DBF0, 0x7E4A810C3512C808, 0x7C4DE98F9754A190, + 0x19554A2D4B125AA9, 0x28C2E2A8AFED1AFA, 0x97FED7C4346BD97B, 0x4695D726C37A97AE, 0xDD7B8A67FEDE1A5C, + 0x2561165973B821C6, 0xA77D64ED20852CB7, 0xD6590B033C077995, 0xAB4D1A7E74219926, 0x5ACB6582CAA42E98, + 0x18965E026BA24186, 0x007D7EE06B26C6CF, 0x4E3BE581027CEBBF, 0x40112ABEC9641289, 0xF68DA14C0C3884D2, + 0x121F11809125D20E, 0x8E1F61A94A938C47, 0x3C54052D5BD1D4DF, 0x33BE26BFED3D67C4, 0xB8CA54C5296DCD00, + 0x494B6C341789E4A0, 0x938AC9112FA7B4F5, 0x632989766959E4AE, 0x3D0494824B69F313, 0x31ECFB4883CA4C24, + 0x93F48496C33CAD69, 0x4A567B183DAAC862, 0x4DE403342E434731, 0x7AD4020E5C7567EB, 0xC3F52FB0222CC9A1, + 0xDC827B7072E2EB72, 0x3D60AC3BF5F1B3C5, 0xBB41D4A3F1567DD5, 0x03EE323A3F252D38, 0x13BB734E49351CC2, + 0x0D65766CCA276A2C, 0xA740FF6574FCC709, 0x5B82CA12A748F717, 0x7E4D991283A0ECFB, 0xBB824FEEE217BBE4, + 0x6F06097A060995D6, 0x1DAF1E62790A5661, 0xF0137C5D2804F823, 0x99D1104DF2AE519B, 0x1577B58AB50E5D5C, + 0x400E85D6BF1B3A26, 0x893A46C3B0A64C6B, 0x8392049DEE578AD2, 0x86AAFFD4C139D5BE, 0x7EEB98F678260E99, + 0x1166734127B51CC3, 0x9F09C6B8FB60DDFE, 0x3BF7564F6D963883, 0xB5A6D15FD654BDDD, 0xCA816F8DE11D901A, + 0x969D16291A9C90F5, 0x3A85024286B0E5DD, 0xB0D08AE8998322A2, 0xDF2777EDECF827BD, 0xF4A3CEFE65C6EDB3, + 0x47C98DB2E114B8A8, 0x7D5BFCC1899A4EFF, 0x39FE223A7E3833B2, 0x4EB65B22480508CE, 0x3E0A96628493DFF7, + 0x4F58AA00578EC4CC, 0x995D19F177625149, 0xC609BF8E47C47B02, 0x5FCC2760F9A626EE, 0x96291F36A20CBF5F, + 0x73FFFF6A58568C83, 0xA68AA37A2F493094, 0xD44416AB64568E8F, 0x423AF48B2B91F857, 0x456D12A9BF9566E9, + 0x2FDE69F23EB47662, 0xF009AD35BA3389C3, 0xDB9F9562DBC29D7F, 0x5A3489FBB4404EFC, 0x1BF37EC5EC6B44F5, + 0x84F20391DD2517E6, 0x9D5E2E1AF436A803, 0x9F6BE006506C87C4, 0x4AE4EC83D1C82A9A, 0x32161E094798AEC1, + 0x50AD5C94CDFDC7B6, 0x3424C7FB31B178BA, 0x33965372979563EE, 0x0BBF69EF15C52E4B, 0xE805C424CBA08740, + 0x7319748578AEA2F6, 0xDA1DA78D221602F3, 0xB1635925E9CF23BC, 0xF43A5EE9B78A2E5D, 0x14921C911C7B2C89, + 0xBF168CAF25CC6B44, 0x68204AA0623BAF01, 0x280EB681DA973165, 0x943F1C584AD915B1, 0x24051FBD3C9C1B5E, + 0x1FBC847B91286AF8, 0x49C3E096B03D7395, 0x3E1B956B93B100C6, 0xFF99C307CA614C27, 0x4B1B8632DDD53F92, + 0xD4E560410DE71BA3, 0x0C4C3B5288DDB4C7, 0xFC6172C01A52F3B8, 0x0DEAECE0BEE15353, 0xC860EBEA93DDD6A8, + 0x45F65AF72706851D, 0x5427196C96139106, 0x4144B621BDCFBE83, 0xE0589191737B8350, 0xCC175754E496058F, + 0x6B9CD44740D510D6, 0xD40E0D99571FED9D, 0x6098D4B27A0D784A, 0x2281D52F4983F811, 0xC15E5993AB5FCDAF, + 0x9C058B184A769099, 0x49B173C0CD649FC9, 0x460B81856B91584A, 0x2888AB6787CD4991, 0x315DDC5A66A04EDD, + 0x749AB57B8398E46D, 0xD347C09687A178F2, 0x99CEEC07A1EA78FA, 0xB6DFE9460F953C3D, 0xD37BB5E71647E90F, + 0xBBA760CCCB86CCC2, 0xD1B868438BE0BCFA, 0x3C0B353485FB0E62, 0x2CD2C5666BC980A8, 0xBE58465CC11FD5AE, + 0xA81F332712A15B9B, 0xB28CD48DF5579481, 0x2312376E78D00D16, 0x07FA15F379AF160D, 0x957C60463349BF81, + 0xF2CD916AF2F813A0, 0x791C63C050E5DC22, 0xE011791954B8CDC1, 0x444748BE51A489C5, 0x01156E37C7F37C72, + 0x04E573C1AB73C492, 0x5DEAD325E5904973, 0x47ED35352EA23A8E, 0xEE7E1B2EBA94F1D0, 0x83CC8DF3B9E35C2C, + 0xF1294764B4D67F47, 0x59F79D1FCDFD4F43, 0x15DC30611941C953, 0x6160BC7DEF76A8F2, 0xA542E3D250A01EF2, + 0xD4159BFB78910A83, 0x46A8B993A9E1ADF4, 0x635EE8D413E70187, 0xE5AE9BA79EA1ED57, 0xB08F7F68BF40BE0A, + 0x246B5AB599FE407A, 0xB2BE0A68FC5DE3F5, 0x6A12E0DD9AACDE00, 0x5121BBD7E0E7A631, 0x3B7AFAA4A8968A90, + 0xB747CD663D5320F4, 0xF464BEF1C64F8A4F, 0x27571C911E1E7882, 0xA827F13092D1E64C, 0x71A34F479F3E62C7, + 0x34763B8902004729, 0x2E1934DF2D10C47B, 0x312FE35794605372, 0x92BA6712A2649A82, 0xDF01A81A2FC90B08, + 0x20E2AC789FAE4A71, 0x48810AE2DE5487B3, 0x1F8C4DF66D33B729, 0xF8EB76AC2FFB2C76, 0x3853A1D4DC91772B, + 0x14C597998F3F73A8, 0x3915E5A7169E1785, 0x9DF72CA6C3AE21B5, 0x2F3B7324DE12F518, 0x1769840526F37671, + 0x4E0DF0970E434461, 0x5DAC70FFCD1F5AA3, 0xF4EAD5651537E604, 0x820CD5D30CB44912, 0xFA968BD92991D969, + 0xB28B04D03535835B, 0x46E9D01075012A7D, 0xDC957A292E5F3524, 0xAE6858DD96A833FE, 0x30BF563371F1A2FF, + 0xB96E328AB2EAA18D, 0x6F8E77F571890622, 0xE69622AF285A8FD4, 0x8722758352EF5133, 0xC888767510CBA1B9, + 0xC137425EAB9CBCF4, 0x3FB35D35BAB422F8, 0x5A31BD2639EEB086, 0xE2F0046924FE75DF, 0xEA1DF5C661301208, + 0xF9F8C0DFF1FF993F, 0xDEF50A20D5031E22}, + {0xE05339FB6464C232, 0xE7E806EA0759E3E1, 0xBFFACA6D6E9B7B0F, 0x07A062E1AA26BDCB, 0x16CA8D26170B30C2, + 0xA99C5D137BEA2CDD, 0x85D6224E002533C0, 0xF20EC6D5737AA99B, 0xDD4CEBACA6D652E7, 0xB3AB1DC34199FB8F, + 0xD0A78756244E6BE9, 0x6122C193E9B03576, 0x03970E1DEDCAB8AA, 0x0D1E22829D00FB00, 0x707E4800FFD31199, + 0xB428AC31D5EC14CC, 0x3D4EA4C8839BC856, 0x01356C9B3A2DFA2E, 0xA674BCFC93CFC38B, 0x4B2ACD26F888BDE4, + 0x9B18DEAB86BF80B3, 0x135232CBA9F7A0F2, 0xAD7DE363BD279D22, 0xEADCF9EA17AE274E, 0x2C4F283396CAFF40, + 0x6BE4ACA479EC82D9, 0x35D14EEA5C8FA3E8, 0xA37B16EF50A89C54, 0xDECB22A443A5E0ED, 0x0CB37357C30E8ECD, + 0xB23C86573AA680FB, 0xF03A8F14522F7CEF, 0xB1E0B54C783F3DCD, 0x9C5F14DDBF24CA68, 0xD568F72DC48A2D78, + 0xEF77489F010A4033, 0xEBECA541843A50A6, 0xEE628B3534496B06, 0x5377F33B4FF663BE, 0x462649335374603F, + 0xD71C548BDE12292C, 0xF9148D6C60F7BAF6, 0x49EBBA75F562DDB3, 0x926D912C7EFDC617, 0xC80D3F9853E8704A, + 0x178159829E95A386, 0x88F12319748C38FA, 0xEBB5DA3560EF8817, 0x0F3CCA08AFBF019C, 0xDF4BA0DB95BC2C3B, + 0x38C8D0681F53BDF4, 0xF1453E731AAACF07, 0x1A0B2586EFEF6A99, 0xCBADF7255FF2E408, 0x511F6288A8BB53EF, + 0xDD2B77F744C4D456, 0xDDE32962990E57E6, 0x85B9F798E9A9C915, 0x6624C818F98BA38A, 0xF961810C9435BC12, + 0xDFB8BF5738612389, 0xF0BF4D96F9A5A12D, 0xC955DFC0EBEBFC14, 0x3AC021752B47DC20, 0x77E1CB5F4426F368, + 0xC32AED48213C54C3, 0x8CD42274083A33AA, 0x0CB56280FA1406E1, 0x9B0E361C791010A6, 0x6EEF750AD4147134, + 0x72217552293A6029, 0x06D0D289F217C4C7, 0xA07DA4E2E4DC304C, 0x3BFA78832F31086C, 0x890604DF0B2ADE60, + 0xB01447491B993845, 0x48C0AE7D5D2F8878, 0x4786668A66AD1200, 0x5554FB241E8FF87E, 0x2269E51F1863FA5C, + 0xF7DDF40374122210, 0x8CE0AE7409F9111D, 0xA4E6A2D115AF5636, 0x0E5B02B707A2693A, 0xD7CB18B44F069BA9, + 0xA537DB3C114FB465, 0x594B62D5C6C57717, 0x71A2007B9425C722, 0x93D7D01161FFB9C5, 0xC4F354729619714E, + 0xD6320C59EE61F597, 0xAF40DEBC9948397E, 0xB12A5378388990C1, 0xD5D2E42BBFF513D6, 0x1E029A615E1F2262, + 0x6646B8A88529C6CE, 0xDC88948D4A29CB0F, 0x59A3EFF61C1B2BDE, 0x8BF6F69B0BF454CD, 0x163C44DF51D0FA33, + 0xAC3609FD07B39E17, 0xBE61B2EFEAB41E92, 0xC827926CC2791E0B, 0x6DDB350731B3CCE1, 0x66D6CE5EBA3EC322, + 0x9E696177F37D6712, 0x43776387D358F5C4, 0xBC727837F0B57425, 0xD7FFA1AD2E3DCC48, 0xA76730CF20D053FA, + 0x5F5404607FECDA97, 0xB430C5BE4650B80C, 0x1EB1E46791153020, 0x156C8ABCD9DF3EDE, 0x9CC602241C718F81, + 0xA9E1971B7917310F, 0x64BEEFD34854CFB9, 0xD970D37B7B5B403C, 0xD6821C7FC90AC4C0, 0x841A7796C5B48CA2, + 0x9136601723B7729A, 0x45E27B1F448282A1, 0xA75E971FCD5598C7, 0x8C4BBF829848CB43, 0x511D090C0F451474, + 0x424EC54F14733A56, 0x01DFCC9B33B642A9, 0x5BBC2D9B2DDC035D, 0xF1BC9AF6FCC0A491, 0x95FC9E063B6C3598, + 0xC5052AB2C4972DEA, 0xC69AA3781A41B58B, 0x0EF34D318AC61A2F, 0x85910B1B3D27110D, 0xF358AFCE82462E8B, + 0xC646C182DFEE27D3, 0x198F3CD40E3BC606, 0xEC3515ABC37CCB62, 0x607B7384AE84FD58, 0x9137BDF10AF12D6C, + 0x086A7291CC85565E, 0xCCA35B6129191260, 0xAE94E77B38659B6E, 0x9726B0AF478BC78D, 0xCA87B4109C41EC80, + 0x86D403362C3A9E3A, 0x8AB740DD9EA0414C, 0xE92DF138DD651D07, 0xB5FCEB81D2F94F05, 0x08A90B74B01F9B77, + 0x5DB79AFEE0D95432, 0xFC79E26D98330B9D, 0x4346B8B6C547EE1F, 0x2E35785CA857A4D1, 0xC8C86BF068A8A6BE, + 0xF8641877AB7DF473, 0x6BE5EA2939E36E2C, 0xBF623C80600BA2D5, 0x610CDC7AE80BE90D, 0x971F303ADD7EACFA, + 0x1219B9B19281363C, 0x579D2F9C68D3E0FC, 0x356F782E91E5AAF3, 0x45E8113FF49D50E2, 0x14606D318E3376DA, + 0x6F76092D63A9090F, 0x9BC3F4EBCCAC4D65, 0x930BF34FDBA3BD43, 0x91BD70D21270F363, 0x898669F70C58BE5F, + 0xC884A6C5AD32F82E, 0xF0529696E75E30FA, 0x6D5EFBAE17EBE7FF, 0x648F3E8A1AA317D6, 0x7B779F8ABBFAE5AB, + 0x80DCE56932166A17, 0xC45FA4C882E43AE1, 0xD717E400C937BCA4, 0x3CF6E1543A1C7616, 0x20C359182A7C73D9, + 0x8AB482EAC322769C, 0xFC601201AE22B648, 0x6498D0B3C1083F5C, 0x2E1793E3063BE20D, 0xFDD3E3163EE8047A, + 0x4BFBB82B9F857306, 0x98C9479DC41E41AE, 0x862DFE9B11AC3553, 0xA0A51B60B24074F6, 0x5EED5CE2F41EF3B3, + 0xDACE80DA0E0057E3, 0xA777903DB2E412AC, 0x36025EE320F5095D, 0x3D4E888BE639DE3B, 0xD45F890AB45549A9, + 0x17511615CC29808D, 0x0F413617615DCFB9, 0x342698D9DF674791, 0xAD166EB75552BFBF, 0xA533C5037A5095FC, + 0xF43AA1F51BE5A6F6, 0xCEC5359178B31BCC, 0xD41CE5CC685CCD10, 0x3CDC23FA8E0144B4, 0xA850E2AA88CA52C6, + 0x0AF96267A709ED3F, 0x662E634085594124, 0xA7EC6157134F68E7, 0x4893B8AAFBB0607E, 0x7A7179FEC6988335, + 0xC98F895253146445, 0x32FDF6463177BBAF, 0x54C641C573D11C43, 0x8D0D5EA820B4ED37, 0x3FF5A1A79DEF3F7B, + 0x44F77824DB624CCD, 0xAB42F5556EA61B21, 0x1A43F86E1E029D25, 0x65FD9270BC1FE4F2, 0x02B0FF124797668F, + 0x213743C0CE2DAFF3, 0xC5A51FBC3B107670, 0xBA6A83A0E9B71AB8, 0xBBC82FD6AC7E3839, 0xDA9ABAC726F97A18, + 0x55653AC0367E33A4, 0x66D7787EA1D3A49C, 0x8411C44011E099B6, 0x9CD2144A396153EA, 0xEC94E731C690115C, + 0x13078979440B4A47, 0x26C15943E1E5BD6F, 0x61E814CEAAA6DE3B, 0x22912DE01F19DB5E, 0x72C9BBFDE7CD1008, + 0x3DF377FE9E330515, 0xBD38937D5CB9B3C9, 0x5609836FA9A4C68B, 0x803AC9B5EF7216B3, 0xB23869339A23B5AC, + 0x9AE8D9DB5985B7D0, 0x5AF7EF5386991598, 0x1760B9FFB8076414, 0xB3C1437C6AD00AD1, 0x91FA4723DA639E24, + 0xF631963C0A0077DD, 0x61BDBEAFB499463B, 0x1652AFE4275E5D7E, 0xD6D6E91CC13B23EC, 0x716B035F89BDFFEB, + 0x825C807DBFCBC9E1, 0x368E88ED41AB2CF7, 0x2D94731CB1F8A5DF, 0x2B5DB789B2086ABA, 0xCDA7506526B389B4, + 0x61E583093B516069, 0xB0EA1101C8DF1695, 0x6129FFAD17912DA5, 0x2CEC4307B3554AEE, 0xCFFEB74D7EE3DB38, + 0x2736BA76CB260F62, 0xB444264417AB8B45, 0x574733191330BF37, 0x612FAF5249B5F674, 0x7EC618F621397D73, + 0xEF57AE6A148F193E, 0x34B20408DE2B5632, 0x21A9EE65ACBFD904, 0x88139CE5D2EBF751, 0x07E8A7266FD1E4EF, + 0xC378BD5C283CAB6D, 0xAEE6A383364E0E1A, 0x27DF6611A8C4792D, 0x9BF1A4FC136EB3E5, 0x49D0472A0576ABDB, + 0x9F33BE032C006413, 0x96480B9600700FE5, 0xD61612C78EE4E47A, 0x23C25906713B1482, 0xCACBA94A7257B105, + 0x14462C07524DE1BB, 0x42DCC80A408226ED, 0x6210D4E675ADA798, 0x801A99575B1792EC, 0xAD405E03E7FB331D, + 0x06C2ADA37197B7E7, 0x64A377177FE6F800, 0x767848A529199B4B, 0x58A9982301C5A102, 0x5FB86E9418BFCF0A, + 0xCAE7C86475F388E6, 0x73E22342594ED46B, 0x9AE5D34560AD689B, 0x4DAA1FD24916A512, 0x07824335E2BE04A8, + 0x947AB77563053F0B, 0x5345B42C4211E2B3, 0xBD7B12B72B5625C8, 0x212DC2169471FE41, 0xC2E2D93B7BF1D72C, + 0xF4311D3B94095043, 0xBDD29D46FFE74526, 0x11291B4BD71160E3, 0x1DFEDD5DC48C1555, 0x04E46A1812637EF9, + 0x857DBB6D57CFCC68, 0xD206325E2B7AD9AF, 0x8A47557E4F1F399F, 0xBB0313300E475705, 0x0F65903BDAB375B5, + 0xF7067754C6BA838D, 0x64F19B056654715D, 0xB926299222EA3FA1, 0xDDC83106902B5677, 0x24395CB544FB561B, + 0x8EBDE30EFD1C5E1C, 0x46EC351B356A1019, 0x436D461147DA83F2, 0xC139B31B07E4C4B3, 0x1CF0ACB08FEF7CBC, + 0x5C9E7D3839EAE641, 0x14A588381FEA18E5, 0x3537C067B8122E66, 0x94387880478C5657, 0xCFF39BEE3E8785A3, + 0x8E544789A893499D, 0xCB2EDDF4BC673D61, 0x13CECBB3073F7AD1, 0xE412BFEBAC26DC94, 0xCC8A2E2142F377F2, + 0x92E34FF7C752853B, 0x6C14D9213134129D, 0xCC7A7032064803D6, 0x3DEDA7A635DE3564, 0x1147B07643126B8F, + 0xB216428070B2077B, 0x2693710985AE7C5B, 0xF459AF671266A24F, 0x8E9F61BAFB9985C5, 0xB419140A6DDA4256, + 0xEAD033C28CB10149, 0x2CA523930287451E, 0xD53EFEDC607B95C9, 0x1D42CD4853A1D568, 0x940C870DEAF88583, + 0xBA04916721A56454, 0xEC51941CFF938A53, 0x9281D2BC68E0BE41, 0x858F2259449D011D, 0x57F5163D6DEF9A0F, + 0x12DFD1184BA1F437, 0x44969EF1BA9A3666, 0xEC238973A7E8BED1, 0x520A89ED98C03E19, 0x910015A122F12B4F, + 0xA0D7537F736A3CFF, 0x4AE71F58427BE4DC, 0xB4723B3DF7251BBE, 0x84650AA6AAC4B4B7, 0x230BD123FA717DE2, + 0x5FB31E05B030F248, 0xC220F059B21BEC65, 0x7272477463F62D12, 0x654EAC07912BD70F, 0x81ACD4AB4DDE89F2, + 0xAD4F7FE500FB21EA, 0xF53AC970095717D2, 0x0A12D0BFEAF52A95, 0xC73035ABD64AB347, 0x63EF022179ACC255, + 0xD04721B3291E36F1, 0x0FA0B3CB60012177, 0x1CA3552F729B8F18, 0x39763E23ADEE323D, 0xA1A891889044AA69, + 0x48187B7E4F9E89F7, 0x4800DD5864E9D908, 0x11CF04903055770F, 0xF26E5368FD92E158, 0xC6742909DBF3CC73, + 0x01076CA7996D6C0D, 0xB3AEC2EBCC689401, 0xF9DCC33D5E81FF4D, 0x70D97D6526B4A4DE, 0x16F4DA668A58F9D0, + 0x53CC07EC5F188C31, 0xD589B012A38BD0FF, 0xCFC215D3481F8808, 0x24D4F2F3B2427CF6, 0x58CF7F4C9F8C5E0E, + 0xB8169FBB23F0EBD4, 0xEE7AAC391C0C1215, 0x37F18D3A85DA3AE1, 0x96D3326412DB57F2, 0xF2BA7EE501A1AC95, + 0x9E33C2977FBBD626, 0x6A85D1A900304032, 0x04530F1D6A24885D, 0x7D4F9F8D1D5BE669, 0x7814A2DE32A90882, + 0xE3FC45531B71E25F, 0x560354FA51A2FC2F, 0x680BE70E6CA7F60F, 0x27864B071BEB1845, 0xD5D67E6F04F90990, + 0x98BC328FA13AC20E, 0x9217712B10CC3CA5, 0x19B5E05FF14F4CF2, 0xE6052C8E069F3719, 0x8D5F2EB339879C82, + 0xE5E44B5D54CDFCA5, 0x62A88BB3AFAE6973, 0x889DF0060D92134D, 0x52B13D62531F3765, 0x68DEBE6E77C75DA6, + 0x72FD1E3CDD71BC22, 0x41265227F97C13C5, 0xA3FCE9954FD12595, 0x6E4EB21B096F68AF, 0x1861244A5BD2EF51, + 0x7900655233644EA6, 0xF903DC330738AC57, 0x84E77E2DB054D9F7, 0x7AFFF44B0B17A251, 0x1F191E8E4BF5D919, + 0xDF544C4C0FE7A7F8, 0x1DA3CCE12F692103, 0xB020293C637A9583, 0x17047AF8694643FB, 0x1F153D6F180052B5, + 0x842310EC2001537B, 0x9242328975FA85D2, 0xDB6129503990944F, 0x7AF95945401FAFDB, 0x5936392FEFE4B9FE, + 0x4CFF746809E64B50, 0xD96D46BDFCA36C4C, 0xE6CC2003356DE629, 0x1746EC4773F616EC, 0xEA48DEA0CF5C67EB, + 0x07FFB3B458AAA910, 0xA28C406E794D1292, 0x1EC0201B62BBE45D, 0xFC3DB99EA48027F2, 0x2706E0035997710D, + 0x57D9C1C90566E2EF, 0x4C0E072A0C0BA86F, 0x552157606A050307, 0x887A215631EFCCD6, 0x3B24351C8CB2A127, + 0x614073E67E92499E, 0xF9A412B772A190B0, 0xB33204B4ED9B0AD7, 0x78C82E502A4F530A, 0x83D25427ABD1209A, + 0xC22D757DBA7F9B1C, 0xB5DB60FFF0F160FE, 0xD2A0A964F8F543B9, 0x3FB07959C7D72D11, 0x326967960F4A5D40, + 0xCD055B53DCAF4574, 0xD795B742FA2EBCBD, 0xFAC4C7B6C75F33B8, 0xDF0C6437D2E799A1, 0x613AC04D168359D2, + 0x19CEB4422B12CD52, 0x28809CF781FB08A9, 0x41121991EDB2DEC5, 0xA66EBCCE8A4E2CB7, 0x750C05DCBFD6ABD7, + 0x40C4A1E92E656348, 0xFD12395E4CC3722F, 0x20B7501F93F6D005, 0x2816B87C1384E2A4, 0x5B2F7E1AFCD0CF7B, + 0x994E4EE4EB9FC1C4, 0xF226E0C61BE72541, 0xE2B1C90320D4254B, 0x37180E5167E846E8, 0x7E3AFA4EF8AFB034, + 0x582F0D6F27C7B3A7, 0xA27E2F96AA812FD0, 0x48D6315A1DA9289F, 0x8D56846497413D2F, 0x2C64034D2E6BB437, + 0x98DCB1E116B59A26, 0xE210E28B44C9335D, 0xDCE89351AE51DFB0, 0x655F851AFBD4245C, 0x65A73A3852E7B1DA, + 0xDC17504CF36A7E05, 0xF1A7677E1BEE1779, 0x88E14AFAC547479B, 0x3F8941C2C7748387, 0xA21CF8A7D9B32F5F, + 0xD313C2968FC57FEB, 0x48E733C05D9B013F, 0xA29C3DD0D788AA75, 0x81DA8B8B3288D301, 0xA32FC4F050A01A00, + 0x5937B0FAAD9D7825, 0xA077E84F4E0EED53, 0x1AB3E0EA0F3259E9, 0x7E798EB5F5282127, 0x3D7E72ECABF5DF8F, + 0x4C3083640131521A, 0xA322646EB41C1F67, 0xE01127B8A0212D45, 0x0E5AF0E58686EC59, 0x1A1BDAA39E4667D3, + 0xAB5EFE06670553A2, 0x9226B6EFD7D12CCD}, + {0xBD4C5A27B76240B4, 0x5792A7AE79E6004C, 0x335441FA762CCA66, 0x6FC310CCAEDDC7C4, 0x0817FA91285541CD, + 0x0A569A6611FFB6C7, 0x2E5AAA078016E03F, 0x880E34FCB931200D, 0x2FF340F550CF5798, 0xBD6367E284B0FDB4, + 0x3E682C4C3E781BDD, 0xC708C4701EF8DDB3, 0x80F5A6B21F9C64A7, 0xEE32DE837FE290E8, 0x19D09B470E9A1622, + 0x846D625B5E804893, 0x5CF6104BCBF18488, 0xDB7ACD6A9B7544E0, 0x59183A7EB1BC3C93, 0x5F16741661A296DB, + 0x3E030C0920C768D6, 0x3ADD123B53D91D9B, 0x42579A23D19645C2, 0x537726DF17119880, 0xC77C373D19818CB9, + 0xE7C368F42B6D27D2, 0xDAC74581C98D00F2, 0xCAEA9AACE4018DAA, 0x5ACC6F0291B403B2, 0x3A9B435A3186C647, + 0x5C0BB8B9BEB9ADD3, 0x40E94697CCD3D1DF, 0x90BD407AE1D43AAE, 0x4CAC4C97FD3F9C6E, 0xEC0FE1A138AACD4B, + 0xC83687124A4D6C93, 0x6C5754BE39B50F85, 0xC4F48085F0F58724, 0x1A39A87CC5C91B93, 0x24627517FF6C6D75, + 0x89D1AD1BF083C9F0, 0x24E00775CC95FE1F, 0xDF26DD2F44E75221, 0x18CFE2770FCC0D29, 0xF36C718612501524, + 0xB6A2FBEC85154BC1, 0x6F5E51C2B2D339C3, 0x3D029E27351A74FA, 0x3D1C2D9642EEFF38, 0xF4EF08555964780F, + 0x6EB758C89D3357B1, 0x6E2413FFFE16F7DD, 0xF98FB2E1FC03B24F, 0x54A59596C4F7477C, 0x1D30312080566576, + 0x241920F2F7BBB6AD, 0xC89F14BAC315B08D, 0x0B982CB3E375819D, 0x01E2351B014D36C2, 0x88ACE224566DF8A4, + 0x918FBFBA2C5370FD, 0x469349312EF12995, 0x904075C30A9FC9EA, 0x1A977C68C121155D, 0xA9584434E6C8D5C8, + 0x1241F0265031EA6C, 0x4989C4CB7277E69A, 0xC3FDB90C264C430B, 0x3251AE5C3C182515, 0x75DD1EE6125503BC, + 0x967A2468BC6D4B62, 0x6129DC80159FAEC7, 0x3F9607D1D2041F29, 0x62FDFA7AECFCC79C, 0x8B83C122486A1713, + 0x14E8EC6B1BFB6B05, 0x345595D7A5ABBC5F, 0x9DC6702D57EE915E, 0xFD7A95D70985D9F9, 0x306961109DD31A55, + 0x880FE994D967F9AE, 0x95FE0FEE6CEA5BE7, 0x5A470424DB4712DA, 0xE1BE519B4AB3093E, 0x1637270C8018CD70, + 0x0A2ACB004C808396, 0x1119F7262C6B0970, 0x4BD6CE338A4F64FD, 0xA66F3CB56BFCD6BE, 0x7DF8DEED96477615, + 0x55C9D181650E5892, 0x93311D5F29764A1D, 0x52883FF656237C72, 0x7DF0ACF72F639841, 0xEE254593E90EA8DA, + 0xFE9BA5C38ED1AEAD, 0xE9D26F28F94494C5, 0xDD13893789835DC0, 0xA5D6C9D76C2DCF5D, 0x4C775A5F12125037, + 0x7822CE5AB738ABAB, 0xD53B84FBDF672822, 0xC531CA5D2F325203, 0x9BB50D10059E5E20, 0x48F3EABE79BAFC92, + 0xF2917CCC051F5727, 0x7144584A1FDF2168, 0x9A4322C88D667B36, 0xFB703529C213C9FB, 0x7B983F35F614B06D, + 0x960651301D21E396, 0x8F6DB2B0473F9839, 0x45BC07BF88FC77E5, 0x7752A2B1ECEF3849, 0xC3B7724B0D23448F, + 0x3FB3F652EA24769E, 0xD67007E40FD584DB, 0x3C959CF7DA39A835, 0xE10C75A0DC2D4183, 0xAE55F66B5D263847, + 0x442786B975C3065A, 0x2A075730FB0309A0, 0x023C32D553071CEC, 0x4E869CFA732BC901, 0xECD34800BE270832, + 0xA772C60734E010B4, 0x86CF9EA993E86149, 0x1A04DDF818D34D15, 0xE0F110619A949841, 0x1D74D791C260C687, + 0xC9DCC6C51DD4556A, 0x5711F2195768FFFC, 0x24D7F2AE731C46ED, 0x1CD5FA5EFA4DA163, 0x42A35DF937CC8307, + 0x106580FEED792598, 0x1FB1C04657847347, 0x3CDA5D688A0A66DD, 0xE357172FF99E0C6B, 0x6F2C5E0E602C9DC2, + 0x39D9981FE19644EC, 0xE175C4FCDB9EFC8E, 0xC40F02C72FF9D9D0, 0x52F544599E05D134, 0xDAE9A4E90BFBC18C, + 0xF69E6EDE637125F9, 0xC90B126D2B0FFC17, 0x37B5FA26447F7862, 0x8F3FD9FEB3B4891F, 0xAB67B7A903014C10, + 0xCD43B70D0C0E78BB, 0x39166B82ECE0C689, 0xADA301D1954558A0, 0x4AD6E7EE542170D3, 0x3B6E873EB2479EC1, + 0x13916321700117D0, 0x77228EE40B6916E4, 0x48D3B1F618A38266, 0x903154BC95AA102A, 0xAEA48D0742CB413E, + 0xA8171B9EA8C7123C, 0xEF2CF9FC7C5BC7B2, 0x12E08CE9329BDD43, 0x966CD2AC812B6A4C, 0xD48105E964F42BC7, + 0xCE3C29BFB070B674, 0x00F86688B4CAF59A, 0x3D05BD14F42C969C, 0xC4A41C6DEEA0B884, 0x53780A2D72F01A7B, + 0xDFA5A1738E6238B4, 0xCC1A24E12024592D, 0x381388D9A717F1F4, 0x606EE2B26374D53F, 0x4C7C8A93E36C7560, + 0x8D08C24EA97FAF7E, 0x5A395C8512E0F1E0, 0xD2A24BC53817AB34, 0x892470D4B8D19CD1, 0x570638DCC547306A, + 0xE2CE4C9FE4D7FB2F, 0x30E1C15867B07266, 0x10BCF58D9E40EA91, 0xCBEB69AEDE2E8B4F, 0x0F79DEF4E0325D26, + 0x2067E08932B4ADDB, 0xEFAD7392D1347489, 0x208EE59609814115, 0xAA875CD7C0FEDF87, 0xD30E698D2ABFE6C4, + 0x0431234F98D974CB, 0x2EFAC5EBAA68C461, 0x1C9E02659EF41986, 0x3DD0A4E287FD73D0, 0xE9CDB1032A451863, + 0xF0F9082E2A0B7C9D, 0x6B181A329FFF73DF, 0xCC88CE078D455BE8, 0x9B163E533DE788B3, 0xD75C2246062C80F8, + 0x5E80FAF126D3DD67, 0x4519B406BBC09590, 0xFDC8FB7B2D551B13, 0xA1645612E50F4CBF, 0xEB097BCA73550A90, + 0xCDCFB77F8B8DDDF0, 0x80967951489F7F2C, 0xCE5A0C398CB06F4C, 0x47877ED3F28277BF, 0x2F1829675A869473, + 0xB88ABD1E47CBCBFB, 0xF27BD9937F47F6AF, 0x75FA33BDBC1B4D72, 0x170EF770E0C532FB, 0xBA647B351E7E5F4F, + 0x43BD6B0E3523381F, 0x4615F129DA5D234C, 0x2A345FDCDCA913EF, 0x42AB0D463DC86B65, 0x7A3B3FDE7C12896C, + 0x47E7A19B4E7A8C7C, 0x8B91840513B2E18A, 0xED4614600460C2F6, 0xD42C6F42A70A3C76, 0x9F33CE7110AA467B, + 0xADE3983327FD4F23, 0x8DD56BA507363C86, 0xFCCFC8AA4BE74101, 0x8B9DA6F0D91641CE, 0xCB330998E6275AAF, + 0xB10F06CD1682DEC0, 0xCF2B35B963607DC3, 0x2464D4DB28BFA8C6, 0xE7EB24119CF943AD, 0x66EE8F6291F988D1, + 0xFAE48C848265BCEA, 0x73E29FEA6A4E2380, 0x948D50EBDC3DD03E, 0x7DD1C7C1ABF353ED, 0x98F171347BDA1BE5, + 0x5D2ED640895B12CD, 0x8EA327750587BBFD, 0x2423A66FF186FC3D, 0xB141546876304763, 0x640B39403DD26F53, + 0x1866DBC781D6F59C, 0x6A5E3A9CA01E0F09, 0xE302DCEB1A9784E2, 0x9334981B814A97A3, 0x12940366FDC62AE4, + 0x744904D7128108E6, 0xBC5A3976D5BEB997, 0x19C07E3CD5C48255, 0x1594771E8B2A3037, 0x064D5DACB1F3A251, + 0xE01C497C409E59FC, 0x11E81F14558212E6, 0x57FA4350133C31D3, 0xD7690FE8EBD772A2, 0x89F1071EF2D74A8E, + 0xAEEF74CCAF1C7870, 0xEB1DE67DCF95F7FE, 0x0C04491570DC1AB6, 0xC72C21C59DA5B4E1, 0x8818200312F6597B, + 0x407BA0F2E86533CB, 0xB7C127DDFF57A864, 0x21E8828E68A1AF8A, 0x96C804F7EC2F4E60, 0xADC340BE6C70EE12, + 0x65CFC56A62D6E9FF, 0xC932EA3C03F65765, 0xFC8C29A2FB9A45E3, 0xF4803A536EA7D3E0, 0x69E2D3DC3F9BE4E8, + 0x4DF612F9EF90F0B1, 0x37FE546E2C338805, 0xEFB11251EBD4D345, 0x95B2D072FC43D7A9, 0xF8D751223938B7AA, + 0x5DBEDD4FC59CDF5F, 0x3325D9033B935E73, 0x78EBEF3411DD7C13, 0x4A522B5FB2D3BC95, 0xB4260401BB428535, + 0xB9321AC312B94917, 0xB5F2F27B9DC24C2D, 0x0CA495F5A30BD11F, 0x1119C2128AC38B25, 0x90745E578C9F6336, + 0x346B797CA70CE18F, 0x41DEF5987552A58D, 0x36863C4D44E4B10D, 0x7F455B7F72D4A373, 0x130DD9705C137C64, + 0xA0FA8D62894E87A9, 0xD5FFB32E0FF66A29, 0x4C33D77261F7B897, 0x27A1728F441E5ACD, 0x6CB3C2D32DBCD0C9, + 0x4C3D5D6321E863E1, 0x792005327E2DA31E, 0x4A4CFCD9B77489BC, 0xC74DD6D9046F2FEA, 0xA3B2171E9041FA2A, + 0xE0E3ACE78B5C317C, 0x941E131B283F718E, 0xEC98D91FE506B7CF, 0x783386EA29D3B5A6, 0x1E2E227742DE1A56, + 0xB89F83A997D1342C, 0x98C4A212358316CE, 0x919EA7E0A18F418E, 0xA8BAD41783B1E221, 0x8A12233773E1E86F, + 0x8CF54A73440765AF, 0x31E00265D5EBF789, 0xAEF29EE72A434153, 0xDEFDA9063ED630A5, 0xDFCFA58B7FDB552E, + 0xA0EA7B193CC50559, 0x30AB771D11E7DDDE, 0x92410ECCED123C50, 0xB55AE3387C45F13E, 0xBB12425CFD93119E, + 0x4A2D68B4081CAB28, 0xD246439DD62A3177, 0x6F092FF8308D6966, 0x9D146DA2ED0F89AA, 0xC3964C106C872657, + 0x1C6939243BF53BCA, 0x868096F7408BA12A, 0x038F3207EB321E79, 0x181A815DC7BB5F14, 0xC18656B9A03B8DF3, + 0xD7F03C3AFA2A912C, 0x489DADCB43796C14, 0x73467B8113C791CB, 0x8AFD1B7177AC26CD, 0x262308BEE767C08D, + 0x7DF100CFCA002279, 0xAE17171C6F2A95D6, 0x44A1A250F407175D, 0xA665ACE2DBD67126, 0x33DF5A2A9A05E0D4, + 0xC5A436C7992984E6, 0x13A94E0AC24A0555, 0xCFFD2D12291D3223, 0x4CFCB86737EAE7DB, 0x91686333D0FA0F5E, + 0x8900A4DD3020BFF1, 0xE9ABCC0AB166854A, 0x11DA9C15A3C655DA, 0xA142ECBA05D7C044, 0xEA01D4381D1BC903, + 0x722318F2CC8293B8, 0x50462541EA7F4291, 0x8C8E8250C8CBFEE6, 0x8F18680F69AD091F, 0x1660970687EF0BF2, + 0xAEE19748BDFD0F4C, 0xEB1A3A3522B761B4, 0x6BEF14C610B9479D, 0xBB8BC028CB75F66C, 0xF0408314E0C5085D, + 0xF1420EE3B79C5C08, 0xB34671F61A4BE42F, 0x8B6BADD11BEDD70A, 0xC568800BF5F92D12, 0x03E1F61489806B3F, + 0x31458F921339742C, 0x6BA1B002FF9C68BA, 0x265FF7A211CA8BF2, 0x350FF4918886D4B4, 0x5DD6ABD2DD583AE1, + 0xE10B395427C93EBA, 0x84798DF834E1C372, 0xB9E47622415B51C6, 0x0002E8A89F59F046, 0xA6093BD3B0F31812, + 0x9591129A7B540D33, 0xC237C2045ECDBAA0, 0x3573B4D750C6C52E, 0xB2A93D3EDD961E87, 0x3B1BDBDACE55AEE4, + 0x47347F3EEA665DD6, 0xED1D9CEB8C533A75, 0x6ABCE37E71F7EA0E, 0x46E623CE8639EC65, 0x3FCC457C346E5EFB, + 0xC932235F8ACBB989, 0xAC470DCEE87BA5C2, 0x7ED426177C05DCA6, 0x6A020BBBD383E77F, 0xB543F8271971FFF2, + 0x8B661C960F1915F7, 0xC30F754DC0C97E52, 0xBE84236A061B3BA8, 0xC0FC97637715E5A9, 0x84786E2FA66F63BA, + 0x38A6261C3471B9EB, 0xBF6D9EE7E9E916E8, 0xC7A5F3961073454B, 0xE6E01A7B520E7923, 0xFEC399A5016F4495, + 0x6A9E94F63E1CF389, 0xF2A12670B004C8E3, 0x39BF6E0524DA3149, 0x17118075C1BBBE70, 0xA13832C6191579CE, + 0x4481AB7C0DCF81FB, 0x2009E99BEE465F0A, 0x15AD366A35A71EA5, 0x01252EC31BA05710, 0xB4816BF2A64152EE, + 0xDFB96CBE5C822C39, 0xA7FD3E5908612C41, 0x3AD755D798DAD472, 0x0157AA441B33DFE5, 0xBE582DCAE8C9F552, + 0x0EF2B43B446F4FD9, 0x39B545D3311DEB70, 0x1BD1CAEBB33523F0, 0x379FB22241CCED35, 0xDAAE1CA27F5C16CC, + 0xDACCEA45DDB964F0, 0xFFF7D7C5034A82F1, 0x0FAFA1A4AE12D33B, 0xAE50DE367A3ED2A1, 0x21E7973F8F368385, + 0x42D456F276DBB7F6, 0x94B6A49A374CE15B, 0xF6A5D05D71C15871, 0x98F11245CFD74C9E, 0xB488FC9842894951, + 0xB26F91773C66067A, 0xE10C0183081AF2CD, 0xF5B8F30EA7DE47D7, 0xDCCA3890F6E78F41, 0x54BE1751A812B827, + 0xE29397374309E543, 0x897E79B9E5CD5345, 0xF07A9F046CDFD582, 0x0AD5516CAFDC0AC7, 0x6A9F983158B52846, + 0x7E9624C709B89822, 0x859461829F4F1377, 0xEAB6AA6FCA3706E4, 0x8E7B0EDDBD758EDF, 0x02D638F271E0CE20, + 0x81843D1C31643518, 0x548D2D5AD5E85996, 0xE727AFBA00DCA72D, 0x142452956692A485, 0x6FE12E940CC142C1, + 0x687386CC9B013168, 0xC815B8390FA43D9C, 0x26085E018D1B5305, 0x5CD46396AC23108C, 0xF77DCADF5609A983, + 0xC3BE4DCD151F2362, 0xBC53EA84FF2E6921, 0x9C0A00261A7243DB, 0xC61263C458E627FD, 0xB2A4A888FE0CE2FF, + 0x8B2A83A8F4F0711C, 0x151DAE12A0C0A221, 0xD700A6249BAF145B, 0x7D54AE4902259AC8, 0xC247E5C5438F0E2A, + 0x2FAA508E05FFA878, 0x1412ECDE6239F78B, 0x86278916E2D5C733, 0x2DF70D1F16115B99, 0xF623E608566F5EC5, + 0x46F437FA5A826677, 0x9E2D580293EA44CE, 0x1080DC1BCB12B704, 0x5B90A4A378B316E3, 0x69E4D62AC777A092, + 0x72C8EF5E69A09091, 0x658EBB30F1F051B9, 0x98EF388AF85324F3, 0x35F50EDF412B2262, 0x612ECB5BA669581B, + 0x1AA87EC350329502, 0x4BC15A07F0276989, 0x3C906783464599A1, 0xBC37E39540EE8D2C, 0xE804787CA20F0542, + 0xF3B7B12EB3CF894E, 0x6DD921D123E83602, 0x9919DBE060039C7A, 0x2652AA9A178A741A, 0x50995086DF2AD3F5, + 0x71A2BF22B11D190B, 0x71DA5FC71CFA91A8, 0x0280FBC2539E981C, 0xABA458A08E3586C1, 0x112E25B4720C220E, + 0xD5F77D4EBCD5248E, 0x9EAEDD5105465CF2, 0xE92559BF439071CA, 0xC5A630B8A790BAF0, 0xCDB4F679ABCEF895, + 0x44A1A47D20BCA073, 0x2B42E1B7FF3AA8D4, 0x585ABE06045E7488, 0x1F3AFE99A9D0B33C, 0x44C21E85DBC84885, + 0x4705F544ABA923D5, 0xC948E28C769DC6E1}, + {0xF96858F5E8D3FC6B, 0x526FA1C136AB43DA, 0x731989D396212138, 0xE55A25ECEF7D0B2E, 0xE393E901B60DAD1C, + 0x9CDB4F2C3025C138, 0xADC0178D9B014266, 0xBA5704EC32E37EF6, 0x7BE621BEE24D50C6, 0x7777CCFBA61E173B, + 0x1DA29EEFABFA3EB3, 0x45F423CE778BDDF0, 0x93FFBC865EDDCC7B, 0xB0681333A5AF5473, 0xF4D3F9E448E98483, + 0x37FEA30639063DB0, 0xD5E8B404212D93AC, 0x598B8B7883E91D57, 0x0B5205FA4EDB291E, 0x90A6BE5A2D932036, + 0xD7833B1AFE760B55, 0x863AE152AC2781DA, 0xE61359E4D6F11A09, 0x731E255DBE4F1C23, 0x1E68D2F644F91DA0, + 0x3C4235F766F15810, 0xED7CA5CCCEF09FD6, 0x236D78B4AE58E12F, 0xA4B3376E13FB0E00, 0xBE3343D4C91DB8C8, + 0x31FD11C63D2DC180, 0x617752D6A8C11359, 0xEA2EEA73FB94C4E9, 0xCC6D262C3D9B93A1, 0xABB7601F3C58D03A, + 0x75399C3B7C9A1E28, 0xE30A02E8807683B1, 0xC5AB1773989A6571, 0xAA0E79E11EB6DB37, 0x3F0A136E2BF26A94, + 0xDB99B989F539820A, 0x2FC4EE900229835B, 0xBC753CEFB068200B, 0x13C9EA996C541CF2, 0x09F0F59F1C53E3C6, + 0xC119DEAA86D77FE9, 0x6CF6BE494B60D9B3, 0x4B6EC22143C65B33, 0xD12EB734B83C2701, 0x0D305AA577D42C8F, + 0x26C4AE1CA9B1AB0D, 0x40130A15A83D48F5, 0x2D3B5416FEA8822F, 0xEED58D37161B6B78, 0x59F9E5D75F831207, + 0xC8A7B0B2681AEACE, 0x011EECC5B202D4A7, 0x56936B220452006D, 0xF9FF7B892D1FDCB7, 0x115FE8400320E19A, + 0xF045677769C3182C, 0xD4176612A2806C5E, 0x8718A6541ADD61A9, 0x3F7960C20A9732AF, 0xCF06154EF22D5E4F, + 0xC0EC3CE72698D549, 0x4276B6800BDB123B, 0x78C91B1E168A75D5, 0x580A579C7FC97BCB, 0xF5CD7DDBE755060B, + 0x47965772C15A0F66, 0xB9A096D2F65943C0, 0x5726013B5421473D, 0xE1DD1613D0431F37, 0xD48F1214BD409094, + 0x8712BD77942940AD, 0x26B2E3787D2E71CB, 0x00E3DEA7019E6921, 0x65FE3FD69C9B7E36, 0x3616F3DFD1996EF7, + 0xA28F5CC9112C811B, 0x64BC6FD0E86964D6, 0xCFD6548AE22E4CF5, 0x4DABF12A76102FAD, 0xA9599AAFB4669D45, + 0x50121FCE4643090A, 0xEA0A1394CE9F1668, 0x31EF85029D7E31A6, 0x916BE3CD2B8B0F5B, 0x8353D7A4E5A6451E, + 0xD4121AC8D1A0462E, 0x8BDBBFEC273DA452, 0x3203443F56576357, 0x3759B3B27F95AE4E, 0xD7E8BA8AE2A53187, + 0xEBDB736052D28BD0, 0x0ED6D27B27A3D06D, 0xA12899AE454AEA70, 0xC7DD97741D975BDE, 0xC9117131C27F7BDA, + 0x6EAC6C5C814CC870, 0xAD7DCFB28DB0B0B5, 0xCDE139C1261258C1, 0x236778EE64AE0206, 0x641FD7E3186137A8, + 0x1BAD49324DD1B8EB, 0xD660A25BF4B6D576, 0xCEFCC0C0FAF81FCB, 0x5F6432288A70AB09, 0x6F547E8107F5B865, + 0x404F954459C556BF, 0xC440EB6A67DEAFF3, 0x836C526B3E27B114, 0x12C1E53DBEED7B2B, 0x6F86FC0797A66AF9, + 0x9FF6D41BEEF86BD9, 0x2D05B94496AC0123, 0x26E12A45A17C8533, 0xDE0EC02218972EC3, 0xBC5D4EAB214D2C94, + 0x80C73EC474ECEDC5, 0x05542CB84C210B8F, 0x4D7A24D3D5060D64, 0xEA049498F8C9D962, 0x21C53647AA50D912, + 0xEBEEC12DB17C2D47, 0xB8BCE0CA481C3D95, 0x120DC69FAB3775B1, 0x0474E688DD13DC4A, 0xB272B76EBE878BEF, + 0x9CA65C849A903BDA, 0xEC430CA3D60DF209, 0x66E99641ECE379B1, 0x96E9B82B86B28E28, 0xCF5BAF6C9B578771, + 0x06DD12647040E708, 0x7113FA2FF0F1DB4E, 0x4B93F1C10E5CC313, 0x757ADCC7DFA6D6FA, 0x08C7132996780ABD, + 0xEC1D687CC2DD2C4A, 0x1BB10C47B50A282C, 0xB97D022A4CED2DCE, 0x874959D01DEA5205, 0x17D782757D088E7B, + 0xB1650AC1A114D531, 0xF5AEC5D928C24CBF, 0x91995861D287D665, 0x209E5419CE3C44AC, 0x40E7865C1365FA8F, + 0x004EB660BBFB5B4D, 0xED35F922A6CE3260, 0x8A88C4CDE7237AC9, 0x16BFF97D6222514E, 0x3C15E19BAD4E7A7B, + 0xCB5E805C8F362408, 0x771CDE92DD927944, 0xE3F22933F0773D76, 0x009AAF3C704C95F2, 0x78922854962EC169, + 0x0778003C9A70AC22, 0x6BF3C7352FA1728D, 0x6F792687F1858005, 0x9DE5D7EA4C795B18, 0x3DE843BA785EB186, + 0xE77987FEBB078124, 0x1F8AA45B1F58EB7E, 0x3708495E04420CE1, 0x6245FEA791DC49BB, 0xA50A9949D4DDC82E, + 0x2F85F4E9EF1936FA, 0x4393125D53C3F6CE, 0x4D17AD5FE9994B0A, 0xDD0556D02C562ABD, 0xB2E11BCCB0DFFA5C, + 0x7F70409A672F03DA, 0x1B26F08CF502231E, 0x97A0609E2A3B4A10, 0xF9C27862B55BC016, 0xE471A95CD7DA8350, + 0x7C6EF73B2C7581F5, 0xBF87FB93A591478A, 0xE9979C6479D94D58, 0xCA63C4F020581123, 0x36F9B84BEF3912FF, + 0xB765B9232F323EA9, 0x7F371406375CBA0E, 0x704674FCA5696898, 0x4A358CD6D6B2B03D, 0xC8F691D92CC6DB8F, + 0x859E840427346FF1, 0x122DCA8F97BBE940, 0x44E2AF74CB9428DD, 0x155295EB9DF218C5, 0x3FC6CEC2C00F7AC9, + 0xA1CD9A0770A13044, 0x7CAC99B300512752, 0x44A371184EAC62FA, 0xD67BBD76B438F49E, 0xF79E8060AFD3F372, + 0xF0142FBBB5F1AB6E, 0xDD93711957286637, 0x33E4B5FDF3F110C7, 0x03B570EE4E66014F, 0xD01B8D28A113CF39, + 0x71B560EC79BE89DB, 0xB176F761062AC594, 0x08D42329FABD35C2, 0xC240F8DC44C4A935, 0x12B7DEF96FDA2EBE, + 0x78E1AB8C1152524D, 0x045AD0041431F11D, 0x887A52797CC42788, 0x21EA3EC29960510C, 0x564DC0A5745588CE, + 0xCE7CF58E32393A85, 0x12C4A1E76BD1FDAF, 0x5C5B7631A62AB135, 0xF807214FB93B4A6E, 0xA8C42C3E00D67ECF, + 0xE4ED677398930608, 0x25446395256A3984, 0x1DF001B3B8A9C84B, 0x4EEFD1FDF1A3260F, 0xAA9341060EA32763, + 0x12128CF94FD0973E, 0x051B1BE1B9EA58FD, 0x05FE101FA9BE1E58, 0x660340DD553D9F73, 0x22BADAFCC9E79F86, + 0xDEAC62E96966485E, 0x3F54D523D0975688, 0xD39CCE544FA70AF4, 0x07A3FA8B1EB30D0A, 0x4EF177FEA49A6706, + 0xCE1A63A38DFD36DE, 0xEAA5115A3F76BA71, 0xA57D92D55091C00D, 0x963D6DE1F54BFBF7, 0x6DF97682BDD9F443, + 0x88540F8B19E406CD, 0xBDDFAF2B5CA1ECD2, 0x8862B5D486DA28F0, 0x64CDC67161C67E70, 0x441B7F246EBD07F7, + 0xA7B70AE3ECA92506, 0x1A15B41BD59C5503, 0xBB72897AF5A6CAC7, 0x98755778F03F1E99, 0x4877F9AB959A456F, + 0x2A73F3ECE7FF5D08, 0x235598F17F141DC4, 0x7F16D3FBDB63825B, 0x61C41191F4EB83DE, 0xCDE75292C5C5F843, + 0xB10E078B1CEE9707, 0x70DB67DA75584AF1, 0xA839C6B66593F94B, 0x7D5AEAECA508CF54, 0xE1454FE8A45D38C1, + 0xC127F4D910F4969F, 0x816E73C55F970827, 0x8BDB1175715E633A, 0xE715890BAA7618D7, 0x699EFC0DEB6883B3, + 0x8F1059A845AF54F9, 0x714C5913721038A9, 0x58C19E83E26E0245, 0x9A9786CDB883857E, 0xDACBF80CD9C2011E, + 0x041794D10F704CCE, 0xC76EDD44469453AD, 0x6430DE0F2E40ED79, 0x204C9C66A1BC8A52, 0x64BC2F0D58430FA9, + 0xBADEDD412A6FD914, 0x328E130AC2BD26A5, 0x96DC891CF0126DCA, 0x2275D28EACC3C25C, 0x4240305CB488C887, + 0xC100A56F4BDF245E, 0x202A0A190C552EDD, 0x602229C6399C0301, 0x083C1689867337FC, 0xFB58242300310AB7, + 0xCF77DA988697B4F1, 0x018025ACF8CDA526, 0x6D9EB9E36A67D51E, 0x0B96441E261A6034, 0x19615986E5CD17B8, + 0xA01CBDF353ABDF89, 0x64881431F2E2F4FC, 0x4E645613A04FB62F, 0x4418872E550C1B63, 0x69E99C8795E95390, + 0x35CEEEE0BAC40C06, 0x59DC02EEEE2F85F1, 0x357473FE465E8CF6, 0xAFF35F44AB642401, 0xC74BAF01C406ACDD, + 0xD59A8C12221D3C44, 0x8733F3B8523DE469, 0xFBB7C111CBB8683F, 0x36AE7E2AF5128AA8, 0xEB00E83A304767D1, + 0x57339C4D5DB14962, 0x6D714869A2BBD756, 0xBBF0BDB369C78D37, 0x2A8EEE361B203D92, 0x1A2B8BD9247FF6AF, + 0x0E4945D998C5F38E, 0xA1B4B9B0A67051CA, 0x65C673F618E00CA0, 0x05AB1A50953B3001, 0x3EF05E5DBF771C38, + 0xE9456FD9A68589CA, 0x980E4017DDDB9F86, 0x6CD1448041855C6C, 0xD3F3349B2EC774F9, 0xE2472CBEA0F17F2A, + 0x001762F1844CB7B7, 0x92C5A778021D7265, 0x4E837AF41744E7F7, 0x9CD47924B7B48D63, 0xAD4C6A355D4BE7AB, + 0x284FA0B1186F12A6, 0x4F25B5806B6931A0, 0x393100F669939E31, 0xE3C18AFFD481BBF5, 0xC81D97FE35A3BB7E, + 0xE74F0095ACA64E64, 0xE70E2C762C0FADC3, 0xFE0BE46EB6FCEFD7, 0x04FF0AD4A3681803, 0xE361533FAF48D706, + 0xC4889B9A7378D260, 0x0C067A32DB7DBF40, 0x3F305ECC1261BD71, 0x36744CE1A291D70E, 0x91A291A4320113CA, + 0x88F9215282ADEB9D, 0x87DF6A45127EA358, 0x9CDBC6D12E66A26D, 0xE3018FED187D273E, 0x33CB49334212C692, + 0x617F7DB5330F23C3, 0x0750AFB0278C20A2, 0x2049D114659AD961, 0x67715A5F1876D6BE, 0xC4C6C57CCBA0FEB2, + 0xED1FE4A9DC22BC94, 0x5E412F35509E2D2D, 0x953D5A605179E62E, 0x82C617D1C3A02863, 0x42FBCD461BBCE602, + 0x5C42604B78A3068E, 0xA655255F63C1579A, 0x8B09139F0766687D, 0x4349EBE690376AE0, 0x67F04D295683EED2, + 0x15D60123D24068D3, 0x1BF59EE992A43B32, 0xED58318ACEA077C2, 0x97ECC03BE9A5FAB6, 0xEA35F2B31DF4156E, + 0x4F1E3B1AD5A60BCC, 0xC2F1C5990DA1AE47, 0xDF74AF796FCDBB2D, 0xC03194207D25E7F8, 0x11F7586EF1DE18FE, + 0x52E29E4AA8EE1252, 0xDCB5A856A0088BAB, 0x7F6414B0E0D927D2, 0xA4237DA494DF2F4E, 0xA62A8DBB1BB196A1, + 0x2DBF520FC34EB079, 0xD5E2E9AD425A0484, 0xDF6609DAD0097A5B, 0xCFF29451EB03B30A, 0x5C34B904A4AD7062, + 0x534C4E8948BEA97B, 0x87DB5D0CD3E122D5, 0x5090D459B6069B2A, 0xF07D42E1705BFF45, 0x9992C412CDCD12EB, + 0xF9A474199A4C8E31, 0x9F104DD535A538F6, 0xE83EE82931DA59DD, 0xAB781B312846DC85, 0x2CCA7073A40D2634, + 0xBE391E6D2D2DA03F, 0x117F8BC8F35424DB, 0xFA9FFB33EFF2A791, 0x9B8AD3CC580FB4B8, 0x4759F17143BB7C68, + 0x5DC6BDCF4F4E6153, 0xFEFC9E77B3CEE9F3, 0xDF40671D912E5200, 0xAB46DEDF858A3AAD, 0x351C8B92190B8070, + 0xE049F2F89E539AA0, 0x1B6661CE624A5198, 0x1C0C9378E00C7430, 0x3087973C680D7901, 0xE416BD98ADD01976, + 0x8BB296AB50A98192, 0x44556FC32F33CE0C, 0x8EE764C8D72EE7CB, 0x3C1CBEF64526296E, 0xD6F5E99D3676A3B6, + 0x3C8442142445B219, 0xA5D63EB4C719E53A, 0xA310EA5A372BD429, 0xFB759A8946E165B7, 0x94D7770E0884C742, + 0x357C182AA41CB79B, 0x26AF948359524083, 0xD127DD11246CE6A3, 0x68B621E03418FCF7, 0xF47ABA74D5012BBB, + 0xEF1B369A6346DD4C, 0xBFBF1DA838D0A3CD, 0x039D7A42B2EEC76C, 0x3949B2480EC55B18, 0x98556CE920D43120, + 0x777D3CA9A4A16598, 0xACF48A79A07B287D, 0x64E1BEB280201B0E, 0xE248117F0490A393, 0x2359BB21321E3477, + 0x1BA0DDE0E1651A24, 0xEBCBC0035973095A, 0xE517C187D1291495, 0x5DC9FB7FEC3E9FE7, 0xAD347FE4C33B04C1, + 0xC23161B979DD1A49, 0x588C2D3FE8B2F92D, 0x9C1AF37FD6AE79BD, 0x9DD51B31A34B136F, 0x982764A97AC98266, + 0x99AC389B28A47B3F, 0xDAFCFE707B267641, 0x37E47E03A3372F9C, 0xA6818E622D35F4C8, 0x98E6515FC75BC6D4, + 0x4CAA5EF2659C1050, 0xED051B5587D4D9B4, 0x9556758354CB7A73, 0x6A48A6B430F277B1, 0xEA5D2459836B958B, + 0x922E2F087B565FE5, 0x2099D75DAA467775, 0x7A26B8C4218C091D, 0x788EDD108C09D266, 0x7221222314EF4FD5, + 0x5191AF9654D7A18C, 0x0CFCE366551BC637, 0x7770A95726D1D077, 0x03FE5A299FA51C22, 0x6B42541D6033BC1F, + 0xEA4DCDDCA65E1856, 0xD1149B3AF012B1BA, 0xE0E6FEF82733A7CA, 0x5E470896EA679FAF, 0x21B0AF1BB0774B69, + 0xACBBB66180B754EB, 0x4166C6FB3008F61F, 0x39843296B1BC7811, 0xA787BA35E18D14B4, 0x08AFA15B9DEEA9BD, + 0x7F6256F004FEB4A0, 0x7B36EB00C12658E7, 0x040EBF703D6DC7E4, 0xA857D5DB21B1B1A6, 0xC6DF60E7385CFFF5, + 0x9E1E30C4DD9B09D7, 0x6553C9753C4414EE, 0x141D971E587124D5, 0x122C9981317EB61F, 0x702E6F40CE6293EC, + 0x25500B813429F5C6, 0x647C2D7EC9531B06, 0xFE7270AEB697529B, 0x44FFDE1F959F88D3, 0x400D3494CF4D654D, + 0xA80AD9CDB3D03601, 0x9790AECE0BD72432, 0x04D19112FB8A99AA, 0x2C83EA11F7FA2CED, 0x22F8480C7AFE22C1, + 0x28C883FC25767C8F, 0xA6B2E3FAC7976195, 0xE3E757D48270922C, 0x337DDE286708B643, 0xA67FA437BE7DC007, + 0xE1B94D2569D471B4, 0xDC5B24AE453AD926, 0x2E4077C8DCB92514, 0xA31EB13A1846B979, 0xD09B992BDFFFFF7F, + 0x26948594EFB5326B, 0x874B5868A0178000, 0x7C0AFAA88E752F1B, 0xAA084D5135729D57, 0x1FBFA589D2821B37, + 0x3AD541748DE8DB97, 0xF5C7143F97117906, 0xD4DBC1D089E28172, 0x11A639CC1192092F, 0x21641F17DD52E509, + 0xA64DA5585AF06DCA, 0x5735E02AD2D4A989}, + {0xDEDA345AD5B98D5E, 0x82A44E1F5DBFAF0C, 0xB64F9E331129F14B, 0xA14EBF48E21D415C, 0x45FA65E989C3B00D, + 0xF0773E67ABBC10AD, 0x063A9039B532DCE4, 0x311107CAA8EAE118, 0x9A7471B676D5A764, 0xF6C373FDC2C1D491, + 0x02FD069CD664433D, 0xACF0945483660E5D, 0x06E5E1EE0046F6AB, 0x2BC1624F9C0CFB02, 0x651779FC1167CD7F, + 0x9089C31A324981D3, 0x371AC348291B1559, 0xDD9320FE8E4B4554, 0xBE128ACD722D96D9, 0xB009FD7621359362, + 0x0F1B328D34C7037D, 0xD0B738A59EBB5803, 0xF83F63091DFC9D2C, 0xB6EA9F1BD3DDC287, 0x0D55382E73BE3D0E, + 0x2CE9EC3AC0F407F5, 0xAE6D265F52A2DF2C, 0x7347973C162500AF, 0x1778CDDF908DE781, 0x82A80ECF3BCB48CA, + 0xB49D64A9448DE9C9, 0x0D3F2DCBDBA71FBF, 0xA5E2FCB5843228AA, 0x41B2CCD701B51A97, 0xA126510A62ED3EA0, + 0x62B9E6267356AF50, 0xBF920A787B85C495, 0xE7F295C5F64A5289, 0xC462741316AC17B0, 0x520E3BE65057DBF3, + 0x224A1B11772963B1, 0x720530BD7136D413, 0x16E8EC807AF1CC6F, 0x842D1B3AE3771F7D, 0x1C5BE74E05DD4A7B, + 0x89C7A5A7EAF909D9, 0x3CFDBC96B9053EB7, 0x59A8CB0CB11E79DD, 0x3B22FF9461C50905, 0x12E41C0FC321C2E0, + 0x514CC78A4FA20A6D, 0x4CB756C6D1D4D915, 0xF64CB443B0604CA7, 0x14C642DFF8B39C5C, 0xC9550638583B3A37, + 0xEA4F2DEA5110A9A4, 0xF3040953090DF254, 0x22957A562C5ACAA3, 0x44E29248A646D0D0, 0x28465EC36ECF2A54, + 0xDE6314F79056F7D2, 0x0B3EAAEA4C82B199, 0xBF5FE3BAFE7932C0, 0xC749BFBAB053C65C, 0x8E2962948959BB63, + 0x8809465006CDEF20, 0x74AA356864B3A8D6, 0x56780E030E1E12B3, 0x1D9E13B8E08940BF, 0x1E124444B287B559, + 0xA6D5A8444792BC7F, 0xF1000EDD0A670867, 0x42446BE77EA22853, 0xA200AF8D720658E0, 0x3221D1018C35E7B5, + 0xA2EC6A3246511856, 0x17E05C94DB42FD7C, 0xF4886469A3B4AD09, 0x687448FDD5720D2D, 0xB330DD6DD120AD07, + 0x4764CDF6BF7CC0C4, 0xC6A1D3BF1A684859, 0xA8144DD7EFE55788, 0xC815AB91D9AC68DB, 0xDC209F65630496D6, + 0x718B7C41AA5BAA78, 0x0599B00B7A23978C, 0xC62F06956052A254, 0x206E5B94C4BF01B6, 0xBBF6ACFF55542DA3, + 0x60ABDEEAFD31532C, 0x85266AB4663F7BAC, 0x8925D90846B44B94, 0x8E2D3486B6A08E34, 0x915F1920668F0D02, + 0x4F96F5D4AFB9BD6E, 0xE7CB7F661F40116F, 0x4A51945816127056, 0xD6E18C7B7FAD7AED, 0x1029C0D658FF19F7, + 0xCF4FC1EF262DB8A4, 0x49DA4A1075B7F4AA, 0xD5DB24BEC75F50B0, 0xD187CF1C5885E406, 0x7021278B12E20718, + 0x11F529229529BAC6, 0x405BE43FAA380E66, 0x7F4C66FBD7D4A4E1, 0x66DA597855A0687A, 0xECD15E6F2FECC18A, + 0x415A7AAF836FCEFE, 0x017356C74A019483, 0x394A05691120B0D0, 0x3E4047A225DCD783, 0x36A9014C1084168C, + 0x7E0CFC8CB076D924, 0xCB6AFC12A2C3840E, 0xEBFA3FA21DA35888, 0x654F8F8DFDF258A0, 0x11D7D11EAD72C124, + 0x02997E6921FAEAA2, 0x4C44FDC7D5139789, 0x3B27D228077CFD26, 0x355C13CF02A013BC, 0x65EDD493F37EB2DD, + 0x6367962FF7104EA0, 0x5908AB042858CBC7, 0x26A382A43D942EBC, 0x242EDB617BB6712F, 0x8409F011FE13D651, + 0xD0964B87FCD58D9C, 0x4A274DBB79F303B4, 0xB638239F300CD497, 0x89D464F02394EC2D, 0xB0F10918705FD1C6, + 0x243A44AA56BF36AF, 0x3711D68F2EFF8C8D, 0xBEE19AD0B9F3F710, 0xA5C4E9B464D39816, 0x5DEFF7E7014D5154, + 0x51A60E3BF5CD1328, 0x123ECE5E540E9A18, 0x34DCD026D6CE0DD9, 0x3FDC29FBD5239098, 0x81E758477BAF16BD, + 0xCE2AE4160E85593C, 0xE75E50E8A3A6BA17, 0x5F0AACC1DC7717A9, 0xEC52B364CFC50890, 0xFE495BF38D0FFC59, + 0x159F7B241E4C7F1A, 0xB293C236DB42D5D6, 0xF6AB872E126BC81F, 0x51265D1720E9147A, 0xF07CAB0DA9EF6AEC, + 0x67B14140126455D0, 0x25E1D41E1275EDB8, 0x947F42EABB1266DF, 0xCA5820697F813395, 0xE9B8EDB28324DC5F, + 0x537558E032D7F805, 0x838ECCB53F566088, 0xE2AB9FA1EE45055F, 0xB875C1992C8C4A1F, 0x549B20CCCB3EBF11, + 0xE8E9C55908F8DD4A, 0x62D631A07C78C3E8, 0xC8949BFD6802333D, 0xC5F307C8233ADCF6, 0xE7CF6D71B3397F6A, + 0xAA3B8B3BDD0BFA52, 0xEBD26CA832822550, 0x0F255DCFAC8B6AB2, 0x06CF340FC2E74E75, 0x47B71C8698841A49, + 0x1390657DD32196EF, 0x2AC0808DEE153CE3, 0x78150935FBB451FA, 0x7B6B61923CA56FAC, 0xFF49049BFF31CE98, + 0x1C80C7500F710388, 0xF36B28A266736842, 0xEC7EC09CA2647A6E, 0x6AC55912FFA2CBDC, 0x1DAF48D9ABC18CF8, + 0xD70B89276D3684A6, 0xB3124B9D2218DC15, 0x3A5AE71903B3B6E5, 0x42C1BEFF9830957E, 0xB2BBBB93088BA512, + 0x122A3FA53A229E1D, 0xE532C95EE7C3C25A, 0x5B76F5B56A4E0CE2, 0xF653A8A78DB23663, 0xD5143FE28FC3380B, + 0x032151A455DCC8B7, 0x9BC562041C47B124, 0x5DB33AEE5C04249D, 0x34C15DF3DB70967E, 0x3488274028F40FEB, + 0x76B114C1240C6147, 0x534512E8BCD321C6, 0x7BFB5C57A5687A4B, 0xA69CBFAACACAE9C3, 0xAB89D6A353A99E7D, + 0xDE916E4FB059441E, 0x221099AD2070F294, 0x6C0C23BE18E57DDA, 0x3464EACB25EB3DD0, 0x4D4E74D1DC5F1024, + 0x084C734B5A505BA0, 0xA9E0844D2E576B3C, 0xE31F8EE7D034A7AD, 0xA588ABCB18973455, 0xD1A6A06848F0F1A1, + 0x716017F105B464C5, 0x4CC0A7326DAD3563, 0x812C5A3C1F916E0C, 0x9BE954B60D0C8AF8, 0x44E7338D3649A725, + 0x64CAB08C0E6EBF3A, 0x3FE79646C54E70AB, 0x0802622102ADC875, 0x4133B110C6483B5C, 0x77E39D6B78309268, + 0x7990CA3B964F8561, 0xEBB759889EEAB963, 0x4EDC0C1CE603C5FC, 0x788D9452FC206DBD, 0x783FE1779825DD05, + 0xB28D0B23F2EA9A72, 0xBACBC00A75C1E7FF, 0x5E9FF9DFE9EAF5FD, 0xBEB006DA0AA3C319, 0xDAB7AEC9CBB641E3, + 0x98A921C83CA74E22, 0x49DDB71B4AD6BE70, 0x21C2002E9095C64C, 0xE56C0834A31F483F, 0xDA1BF76E8F2B4723, + 0x02AF4A50965F0B94, 0x7194FE0174761397, 0xA0B80253BC563459, 0x9048688CA0E5D483, 0x9E20D1358F53F299, + 0x1E961DB8A5C23FDD, 0xBD40A006C377ADE2, 0x7A41884FBCF550A9, 0xCA3F047162ECC455, 0x47A00EF3E4882E12, + 0x873539F914ACCCA9, 0xF40BF0B357AA1498, 0x596BF8FCCEFE97C8, 0x1D6903146033E954, 0xFFDACDC8C6797170, + 0x9677F5D2E94124C5, 0x8BF19A3BA30C0EC0, 0x30D2B65E90A0F938, 0x614BD7EEBF550D76, 0x1A8E7E4E3E93BF31, + 0x13F7345797EC0965, 0x2C1406FD0E51187D, 0xC6CEBEB9E8220173, 0x23C1A4D17BE6B672, 0x95606B3A33122A0B, + 0x06C976625BB7604C, 0x4F507EDA12CBC8A2, 0x56C327F352A50456, 0x17C128D09BE433A3, 0x538B895DFF579D50, + 0xC4DA204FB3F9AAA4, 0x24DEB98ED9DFC96E, 0x29C8E9E9E236F4C2, 0xC810BDA9169A07F4, 0x7205B7E161E2E1D7, + 0xDB833D7426917589, 0x9E12B8EDA6EE394C, 0xBFF0EE505EDC6B49, 0x4A9E82DD9120FEDF, 0xDA2A66035F726F1A, + 0xC18ABAA75FB1E21F, 0xC6895F3AECDF0642, 0xFA0899CC6EED4239, 0xF324C15C080C2B0D, 0xE3233EA8764674FC, + 0x0DB855FF6F5C7556, 0xCC9F1547599DDABD, 0x28B09CB403CC0EB7, 0xF492630BC711A8AB, 0xAC76F903B34F3736, + 0xBDA385CA5AF53F94, 0x54012CC3CCEEC384, 0x55C835472C220CAB, 0x9A909C175FACBDEC, 0x447C4FE7795C18E5, + 0xADD56A75FDEA99C4, 0x789E88578F485C65, 0x7ADDCBE0530718BB, 0xC8F46961F7937275, 0xA56556AA339C5F5E, + 0x631DE6C98EAFF746, 0x129FF7DFF6F339CB, 0x59276F5ABD1DE9B1, 0x9478F39452510001, 0x15E5820D5B469416, + 0x86890BBE34918C83, 0x639E59E1988EA250, 0xD0C7EFD559403DC7, 0x95AF712071F01AD7, 0xCA4E350E3B8EF7C1, + 0x131E6B85EB3BB6B6, 0x0368580717774052, 0xD3ADF533F3301844, 0xF9437D4C3AB80D78, 0x147511CFEF900F56, + 0x44410DCC2514664D, 0x543EC7ECA7964C48, 0x0BBBFC311739C2B4, 0xAC971E61A0C8E79E, 0x1ACA3406EA66FFB9, + 0xA9C1AD92D4E64579, 0x95036B1AD9ADAA2B, 0xD242DD22D0EC76D0, 0x9806DC46C620E2D7, 0x91539CCD253CBCEA, + 0xB7B8EC5DECF365EB, 0xE3378687CE00AB12, 0xC34627BB72445103, 0xCB0D2325E77496E2, 0x5ECB9DFA9D11EEC9, + 0x45E3A729E38EDF34, 0xB9C45F0272674BDB, 0x9F313B3FCAC617D2, 0xFDC1D6141FB92DC7, 0xB945CA24CD7A9B54, + 0x18FE615BA2BD4044, 0x6F92BEBC9F2779DD, 0x68A3741168551FBC, 0x31672DB8B0E555DD, 0xE2F7531639527191, + 0xB07DC7203AB51714, 0xBB35FACACE28BD47, 0x05D199F032189E93, 0xC0C69FDDF3DB389D, 0x2F14B99BF5134938, + 0x957518B2392B0E4C, 0x1247589A96C81A14, 0x8843A7EC4776C435, 0x26B2EDB8CC162D7C, 0x09DFAFC120DF2331, + 0x6E72DC9528B3D605, 0x7A74D90547A6041F, 0x907DDC1A5CF77CAC, 0xC41A0775611649C4, 0xE6A4CB505EAE71B1, + 0x6FDDE4D7C235FE74, 0xAE619EA5E62453B0, 0x07B035FE8FC81FEA, 0x21AB192AE41DF1DE, 0xD221E3BF02510A8A, + 0x49E62C6438A44F61, 0x9E9060A7C6B0782A, 0x530B2862A4EDAB2F, 0x67AE89624E16810A, 0x33FD0709424C6FFA, + 0x22C92EBCC3B571B3, 0x594ECD28FCDED399, 0xBC5DC20F61F44648, 0xAFC736728EECD053, 0x2E813CAFC8FD54DE, + 0x31CA3707DA69857A, 0x3ABA2ADA2FFD23C8, 0xFEBA79B8CC3B7932, 0xC1BBD666B6243280, 0x9C295ED35C9F9843, + 0xC181C1DA64793A33, 0x054DDE60EDB73615, 0x159F9EE2B558396E, 0x95DC37BAAC5BCC8C, 0x1AF92DD26343CEA6, + 0x749155F289C59357, 0xDE71E47B10600432, 0x78F5B98522C25402, 0x36F4205188EA21F4, 0xF731D296C1CC8804, + 0x11E8170FB1FCC6FA, 0xBBB9CB8A333282F8, 0x4271B34C5DB33D02, 0x85653F13F1439B70, 0x8673F8FFE5BDFADE, + 0x000552F4DF8AE08C, 0xAC1D90E7CED4E32E, 0x03CFCED3B902EE7C, 0xA79B85FBFF19BCE1, 0xAC8C6AF0EE44C0EC, + 0x388EA47C9A62A9D0, 0x3055427732090583, 0x6235F572B260BC53, 0xF52119B702A31D4F, 0x6DFFC8D795452EBA, + 0xB1206C1D937CE4BB, 0x2CB766D468D30593, 0xDB84C82B5AC0C0A5, 0x225D3BB27AF2F8C4, 0xD5899B80C09B67A5, + 0x80D2E75DB1652552, 0x8ACC63394548FDA6, 0x09114722464C9408, 0x8B1C57344C1DB7C6, 0x756CF093E4111451, + 0x9D4F33DA59104620, 0x649F1E8BBA2962F2, 0xC64CF6566DABDF12, 0x2C7C53214D991807, 0x9EF1C402C67C940F, + 0x194F53E6C1033903, 0x146366C2DC052F32, 0x926E124484E86621, 0x4CA8D971F0828C1D, 0xCB590AA24C99C69E, + 0xF6EF93BAF9FDF8EB, 0x04A2D17623A75755, 0xFE675A115EC216F3, 0x121B44C1D57B54DE, 0xBA491F415444F811, + 0x9DD6830430EF1C1C, 0xC3330EE25791E461, 0x71DA46D118A30EA1, 0xFFAF63DCCF2E2F8E, 0x9E687FDB040BE125, + 0x5810B558928CAD78, 0xEEA5B096099F98CA, 0xB7D317237D96FA87, 0x5C120D74861EEEC2, 0xB9918FD2E81714BE, + 0xDD92D525F4A49038, 0xE22679F007DD5D21, 0x67CFBCCD24675ACA, 0x3D2AC71F46DE6416, 0xCF69CE80D517A976, + 0xD0FF6DA58E6142C2, 0x25D5BAE31369A400, 0xA5FEBA0310ACC42D, 0xE43F074FC9804298, 0xDADD1B34B0784EDE, + 0x989237FFB8AF1C78, 0x7B3F60B3144018C7, 0x00A8B0229B26A174, 0x1BD6EFF7D9D6EB87, 0x3651BB1019DF2B42, + 0x64E9638C96D35665, 0xA3136ED7D6C05B4F, 0x957C8C12B378600F, 0x85DBA0E3F5896780, 0x9C430B9263C2EBCF, + 0xB2D47A48DD96DB02, 0xB4B99BBEEDB0BF46, 0x15DCCE35627B6746, 0x8ACB2563B70C656D, 0xCA2C50CD209E4380, + 0x963E0F03AFE4967B, 0x6A0A7294D7A3FA24, 0xF5FE357ABCDDFD12, 0xBCBFF91A8053B8C7, 0xD5A7AB0CA036271A, + 0xF33C0D48B1F85FA6, 0xDC7B3F1445F50EF7, 0x6A9F4DD2E5B7E397, 0x979E88BAA284978C, 0x35B03966B30E58B6, + 0x2700B7C73B8D4219, 0xD7867A77153DE186, 0x5F770FF0F9088B95, 0x103EEAAF794696BE, 0x3E30F67ADAA3D2A1, + 0x056866A81BA6CE06, 0x64E05742714A0D4D, 0xDA2B8A88AD22136F, 0x70A271EE451049C5, 0x2B87B1DE6BACE477, + 0xF9F48FD565C7A4E3, 0xF776F342B71C8EFD, 0x919446A86F4BB223, 0x6FE500967F1EF708, 0x1FFD992F646DB679, + 0x4374B8A952C927AC, 0x0C78AB833CFEAE58, 0x0C22CC4E0E206E03, 0xB35C711994E7176B, 0x6FE9535AA13E401C, + 0xAD504C8E97785808, 0xFB9900E9679C31E7, 0x2889120ACFAFF068, 0xC7409F8BEF6BD49F, 0xF1912989CEF7F234, + 0x84AF4D9A5BBFE7AA, 0xFA1255BAE8DA18B9, 0x06E1F23018D39A61, 0xCC08576608913BE0, 0x539E9648965E38A8, + 0x37CB0F7CAEA23450, 0x40F1A65542F42DF2, 0xA872BD7008F0DFBA, 0x342BBCA96CEBAFD7, 0xC1F4B1252D16FB14, + 0xAFE57DB6097B63C9, 0x3D3540E434A62273, 0x8ABBC4B925910A25, 0xFD1D2329B6BE56DF, 0xEC2FBD6E9EF737E4, + 0x75A7CFC7E461929C, 0x1A619CDA227BA0E4}, + {0xAC8744A68B6D3A41, 0x1CA1BE961FDF95A3, 0x72535ED447D7187D, 0x946E85D4F33A863F, 0x339B18B8D9B8F380, + 0x5C13CAC0F9AF4568, 0xC7E05057AA06A36A, 0x7218F6D05DDFBB04, 0xC7F7205F14BA6F11, 0xBBAE776E6F4E5BB4, + 0x646B0EFE6D595BAE, 0x02903D5294012FBC, 0xEC4B2427368A0D9E, 0x3E6B9593268ED1A6, 0xA5B9A681164ED075, + 0x57D74560361F6B8B, 0x1934D6D3BEF668A5, 0xC11866E8662580DB, 0x76F122CF037C1BEE, 0x4A09CC539703200A, + 0x82F55A7C7AA5DA06, 0xF4E75CD945B209EA, 0x45679FB507893C25, 0xA24EAD013D1224A3, 0xA5851F8D091E50A1, + 0x4F0DEB9357BC4988, 0xF7AB616C3080B63E, 0x0C15164864883C8B, 0x75970846A051A54B, 0x506DA8FFFFC25B82, + 0x8A0B0ED65BDDF7BC, 0xEE8365C158B87A87, 0xF1217E75221F74C5, 0x2E4DF8A7BA55CD31, 0x5CCC7FE904DCAF37, + 0xA5AC47C98DD16A70, 0x2FE886FF62FA34D6, 0x1EB6FF3CCCD5FAB6, 0xF58D90A9A540EF40, 0x50D49B5A9869DC4E, + 0x0627028A35C49324, 0x3FAE095620AA976D, 0x7B35366D63DBD154, 0x127954B67914E7B1, 0x0470CF71601F78C9, + 0x97673557F80E041E, 0x9953299BEFB3663F, 0xA0DE6AD059F723A7, 0x907965C9959E0DC6, 0x76B163B1CBE5E62D, + 0xCB98B0B962ABEE21, 0xD75D5CD26B83EE87, 0xD31767D3987DF307, 0xC59B85BBD0C0F44F, 0x450F19CD2F30B2B2, + 0xA59EBFAD5F95DF69, 0x8F57F79DE3AF959B, 0xA1FD1BF00D5C3FC3, 0xE5EC800D611BDCD7, 0xD4262FBA4126C6D9, + 0x9E6C22E41EE09986, 0xF82053BBB11C7F70, 0xCE25BA313C39D672, 0x0845872117ED3C3E, 0xBDF1670B16F13DD7, + 0x9A68FB7900CC498A, 0xE495A658199338B6, 0xB27B310A1139C0D5, 0x7863FEA688CC1D79, 0x0F6830D2A483EFE9, + 0xA061839AD22A56B8, 0x1EDCC07A9AA0875F, 0x58EC47DCA1E74E97, 0x067552B1D1922813, 0x61DDEB4BE00BD6C9, + 0xF70B77EF64B2406B, 0xBBA141116FBF4964, 0x9712C410C349FB7B, 0x10E615C603BAA124, 0xA900A0D10D7D340F, + 0x33FC8E9A460C0BFD, 0x6ED7F37705B0ECE6, 0xFABB2CF3BF86128E, 0xD4EE953B00D3EF89, 0x19A90987EF3E75EF, + 0xBE12209DEFE22A0A, 0xD6620F1BCE1C677D, 0x4B520605485A1E21, 0xD2CC2C8B5AE877B8, 0x1EA8B4DD1645D430, + 0x19E3852BB6E385E6, 0x8EC73931ADEAB830, 0xC6A9D4D1AB0ED475, 0x8A29D39C105B567B, 0xCAB2EB8CF77AA5DF, + 0xB3A1212ACEED9A44, 0x7644F234CA4D24F7, 0xB6A8BE04E5E3E484, 0x3FF36938F41BB040, 0x401C3D2CAC971145, + 0x0F07A584CD9B41FE, 0x012B55926BB0E2C8, 0xDDDA17F1987DE6D5, 0xAEF115F0D788A76D, 0xA51E79BFC98BAF75, + 0xBA58483115FB67DB, 0x39827D08CFD40B34, 0xC7963F24CB8C066C, 0x9681871408A19A60, 0x069D73962CFC3762, + 0xF812C3A8A43C906D, 0x0921113ABC0677E1, 0x8EEBD7B01F44E937, 0x353D2DA6F8F4C271, 0x61F702A9F125A250, + 0x941A8C353679563D, 0xD4915DC95A69D917, 0xCC842822DF0F4A83, 0x780D351EFE8B101F, 0x18E34A043ABA6287, + 0x1DC2C78DD230A30B, 0x4359F9575CE69C52, 0x15B8D71658C12455, 0x18B14EC91ABF932D, 0x964D9A519BC0508C, + 0x9D215F79C4DCD14C, 0x99D62A256BC6B22C, 0xB5360608447152FE, 0x29C4E517AB212146, 0x7DDA59397B087C20, + 0x1DC418582AD57208, 0x505E094525A08BF4, 0xBDA52EB144F30220, 0x5A6F9F9E558D668B, 0xB3BC5442909D028B, + 0x5B0B9140016E2AE0, 0x740D4AAFE5356B7D, 0x5C59A394788A3DE1, 0x8F13E0792E681F2E, 0xAF3B1A12DA78F0CD, + 0x072B28FEA06A54A9, 0x96A21662EE87832F, 0x194B1E433D38E09C, 0xA909571551F72451, 0x41407752A526A3E4, + 0xA71A046653848ED9, 0x8477A92D449592BD, 0x37E52A33F232A3AF, 0x9885DE68CCBB170F, 0x997DDA1E9C61ACD7, + 0x37235E0F35E2C02C, 0x9128516DEAC82E37, 0x43F100062B12C741, 0xCAC8DE03DD2A3308, 0xD7FEF0A478BADFAF, + 0x5C17AED92264B01E, 0x6671E4CD9BBDF528, 0xABF78F5E16437432, 0x11AA4B283EEC62A1, 0xB43502C199F6B8E8, + 0x639F38B132356853, 0x665D46585764ABDB, 0x40A6CD56F428C8B1, 0xA9993A2EF66FE1D0, 0xD1C9053D44F57121, + 0x819BC355262A9AE9, 0xBBB4540301E15355, 0x4D55494513E8C05D, 0xCC0EB1753AB4BEC7, 0xAC807DC24E3AFFEA, + 0x649263C5631B67D6, 0xA189A12DB61B8155, 0x17D9CE1EF379F7A2, 0xE38CECBFBA06588B, 0xC9B7FFC88123EF8E, + 0x14A206E5CA4BF086, 0x3CA05C9F28952BC7, 0x2B08344668B95079, 0xF46C0D6A622CC800, 0xAB66F5FDB2283EA9, + 0xD5EEC49E859F9A73, 0x21F4AC363A0709EF, 0x7D963477672F126C, 0x29EA53D301F05B5C, 0xBA6CC794F6ADD068, + 0xD00AB171C248E8F4, 0xE2D68FB020F16F7B, 0x64B631F59BAC41D5, 0x95EA4B927C08E119, 0x8CAB7CBE3153E24F, + 0xF6FEBBBD69999BA3, 0x771F17CE2418E8BB, 0xD1B3992B118783C4, 0xF46B99EF8867E86A, 0xFEB122C10C526E46, + 0x07973DA926E3B2D1, 0x522123A374DA6546, 0x7DDAA99E0519BB12, 0x109B0B95924F4035, 0x5C8881E02F412222, + 0x759D703772E83B13, 0x43E57B3A24A97EFC, 0x3EC6614969661A15, 0x85DF68D2073F2C7D, 0xA124B3A7831217D7, + 0xEF2346C4EC929ED7, 0xABFAF2290B6D3030, 0xAB67FE7997D994D6, 0xB4D3649ED661B7FC, 0xAFBD3E93EA969E3C, + 0x99704FE598B8C54B, 0x0ABB167D022D1166, 0xF845122614E53BFF, 0xC31BD7F664F058B2, 0xD762A2C9CF034FD2, + 0x1F1C6893E8A6173D, 0x7ADEEFCE6E99517A, 0x5F3C6264D27107D2, 0xA45C8E8E3CDA8175, 0x0C6A6ED2459341DF, + 0x187020DBD9C177B4, 0x143CBA7888E5B388, 0xDBAD64CBB3935098, 0xB012D3BFB2450617, 0xFFD12E123C565312, + 0x0CC54E9EA859F116, 0xAD72C08F205F86EE, 0xD154316534FD5376, 0x688A883F5B0CF62B, 0x1712F9D013E9CE8F, + 0xC98807D0B2F19AFE, 0x1A79D233C3312AF2, 0xE8378F2C334BAEE1, 0x8E2C76ACEB964824, 0xA7122DFAFA243EE8, + 0xE90EBE4DBE85D991, 0x705321538C95FB6C, 0x02364BB24DDB5D37, 0x595390A186CC4C5E, 0xEABA71633F825BAB, + 0xE7DA2DC3A3649C84, 0x82D9905E09E3960C, 0x2120D9B4FC77DDF1, 0xA9682154F3B79B52, 0x17EFA7F0ED1C7142, + 0x12DAE57225D03300, 0x2A512AE5B87D0BDE, 0x348DC9ACF0461268, 0xCA8E0676E2C61BC3, 0x0E997E4C20A62A61, + 0xA60D311357EA6E63, 0xF071CCB7A4234B4D, 0x20BB2C5FEFC2BA6A, 0x3071DE44EAFC1F36, 0xC63AB020F0B12F1C, + 0x306F2FF429078856, 0xD2CCE3DD67722F0E, 0xF509A45A6408443D, 0x410038FB5CF04FF4, 0x764AF2367165E6EB, + 0x545D5312F3FAC1D6, 0x1AAF9C6C2CFAA076, 0xE3026B8B5F88ABB9, 0x66E9D0526398F29D, 0xB1EE0C85A2E49D4B, + 0x6D94590B44430AB9, 0xE70CB6D3ED5B3C75, 0x65A09FC6647D1E0E, 0xB15B6E242570D413, 0x6FC18218A4E7785F, + 0x3DC09C3E7F087DDA, 0x52F819C8326F6621, 0x6A94BEE8BED38242, 0x1CC90BC81C6466A2, 0xD64297D34E31E1E8, + 0x7D57638C9D5472E3, 0xB1B3EDB2CCA72673, 0xD72CD7F83E078F72, 0xEC814BD72BE1C868, 0x8981B018F17F65E7, + 0xBF0AF362DF884E82, 0x80C88A6124C01B2C, 0x31E09A385EC50881, 0x941CEFFE43A94CF3, 0xB101900D075DD571, + 0xC903F600964197E7, 0xCA0450DAE8A44218, 0x7CC464C48BB28494, 0x790BABB14ED13000, 0x05D2FE49A21A1D6B, + 0x2E214B254EC9C713, 0xC499AB692718EC1B, 0x057E97043925B8D0, 0xF5B120826228FB73, 0x871A0EF44746872B, + 0x9FE2C07F13887B6E, 0xD4EA68C283047237, 0xA503DF305960465E, 0x6AC8844508737569, 0x41A727C59C0D41FF, + 0x9A241850E9400AE8, 0xF95A36591ADE0E35, 0x1DF7B600212A4671, 0x1C5AF3AAC4B82B9E, 0xAFD468E759497EFA, + 0x5B018EA053D56A3D, 0xE39BACECB8E58ED3, 0x1D3AEEE61055D360, 0x6A6612E13562860C, 0xC54A482A6A242152, + 0xEDFB526175641DFB, 0xFC12DC4C0C978C1C, 0x08B2DE9A2B6E5F01, 0xB6E23341CCEC117B, 0xA969F5A6AFCFAF22, + 0x8846EEEE88DF63F8, 0x03C38633754D31B0, 0x3AA0E27BF431E00C, 0xFAD65E29CFD6C061, 0x4337328D5AE07E04, + 0x10673CA20E7B2F44, 0xA9C8BEDF138849C7, 0xB8B7EEA755A10D37, 0x61CB5C057104066B, 0xFEF197554C07B7E5, + 0x98303CCDA8E4D567, 0xDC128373A46B3D4C, 0x47C056418BA1166C, 0x67EDECBDE6561198, 0x149244C27DA26AE0, + 0x619E55E437B8B812, 0xF1C1DF93A9024DEC, 0x5DC6464B5FA341EF, 0x0B4C87743D991E75, 0xFFEB3FF19FFFDF7A, + 0x4891E6823A492C6E, 0xE086A952AA2D9C46, 0x1A8C94106487AEF0, 0x47C4E3598351DA85, 0x8C9275006F060850, + 0x5844B75C11B646CE, 0x3AED18F75798ED75, 0x539A5C4525ECC251, 0x1305BACEBF7E482E, 0x34A78A1ECD966A64, + 0x51E5D51126CA5946, 0x46B042EB720B3085, 0xD67DEB802F22C9BC, 0xE447B73A37922497, 0x68382E4C3BFDDDB5, + 0xF71791B2D08D622A, 0x0D913EC7534FFF6C, 0x7EF3562234D4E2FD, 0xF5538AB4838B5B07, 0x269D698F5270D633, + 0x4366BE0C3441AB1E, 0x4E9BF788E0C1E6B3, 0xD230E5EE06CEA851, 0x5C900C5F9F994164, 0xE70CA8D4A77BD66E, + 0x48569FAEB82084BB, 0x718732C2B1DC5D60, 0x79B7A1BC012A9103, 0x18921785E924A8DF, 0x5479F27B24A636E4, + 0xC108D3BB23F9B28B, 0x38A69AA2731D75A6, 0xFBB0D20E1BC0AF2E, 0x2C1812A67E119654, 0x07E9C45EBC585F8B, + 0x34FC90A1603C417A, 0x2E0759DC4149A8BA, 0xB8060112E87C3ADA, 0x2BC2063C92DAAFAF, 0x525695DE250FCBEE, + 0x311C5A86028C1948, 0x7F2544ADA20FD665, 0xA4F1E5F037E7AD49, 0x6DC97CDD7AC0261A, 0xC66A781C4B827CF9, + 0x77E311B714B5BB54, 0x216BC22FE43B73E5, 0xA70AD921A457A3D7, 0xA3D91816181C8304, 0x8C55C274908DE71D, + 0x1BE118B1BB48EA68, 0x728431DC3A49C8BE, 0xA6E671CD79853707, 0xFF34E15D3D7DE32F, 0x2D3D7AC4E4BE64A0, + 0xD650A2322DFE6E37, 0xFC89C95C6082B969, 0x94E58896012C967D, 0x78512FF1CBAD2D6E, 0x45183E9BFF5C5990, + 0xB02A5EC477950BA4, 0xE913E5B22A0BBB06, 0x181DEF044BA6F9DE, 0x208F6033D2BBB87C, 0x788D368F842B17C2, + 0xC98679724087BF81, 0xEC58215E3F9C6618, 0xEE2119F41AAA890F, 0x4BA098FDA7F2794D, 0x3177848144EF8320, + 0xC48E68F76ACF16D5, 0xFEBF106559C0BCAD, 0x90D94F800C937F01, 0xE3B4D733754DE03D, 0xF66BA84CBD458C52, + 0x2F8620FC0919BC9D, 0x3003228F3B2E74FF, 0x240C041109F06B6B, 0xA9EEDF009B932537, 0x9BB9B670634F18D5, + 0xA4F8465F181D3BCB, 0xEE30F737A308819E, 0xC029D25B783739FF, 0x5BC5CEFF4AB0E01A, 0x5FB75FF2F95BF545, + 0x5CB7A5D170DEF040, 0x4123DFC609CFF12A, 0xFA89101770B7F5ED, 0x4F77401B4217A7EE, 0x22E23155162F5D9D, + 0xA07395687155C8AA, 0x1BBED383E0817F71, 0x33783C2C17A162AF, 0x8CDA440E8F0FCD07, 0x23EB61B0E0094B12, + 0x2292600D955E16CE, 0xE94912BC610ADDB6, 0xF49AEAE447C48F58, 0x38629D6EB84FC451, 0x120E6632B9148FCE, + 0x3FC4DA01B805F455, 0xCB521CF3A13C3175, 0xE2EC7A56D27713B8, 0x26BE9FD79787CB95, 0xD50FD5260007C3C1, + 0x4B7D61ECF1D12395, 0x8A213E501358885F, 0x5E31DACD3555E04E, 0x3752B95B3E5AE39F, 0x81D5EC178B000920, + 0x8E65B75B771A4C98, 0x85D7B7C723E47D0B, 0x77A915A0E7D2BA5C, 0x6BA32FE6D3412ACA, 0x50C3E9A7DECB41DC, + 0x496FAEACC578F4BD, 0x829854F473DD5960, 0x80768A20F392E3A3, 0x75363F1E7F098193, 0xB466310DF65F703F, + 0x91EDE0B489A6CDEC, 0x035C1609AD4022DB, 0x69312F8147FEFB35, 0x4F738821FC12182B, 0x4D9BD39183BD7731, + 0xAA1F16A23DC29472, 0x80F91119C26F234C, 0xE90D4C8872E3C001, 0xC95E4FFB9A2BA8BB, 0xAFF37BEFA2DB9D62, + 0x4371AAD2F19E9FE2, 0x0CADC11506200EA6, 0xBD9D154C4E6CD3ED, 0x5D4673DE46764873, 0x0D62E7018E1647C5, + 0x92F2000959BB99B7, 0x119EED5F0412C590, 0x2E64010601DE5DBD, 0x4BBFCD27F468FFF2, 0xE8A7DAC53E052850, + 0x88C92BA2EC7F09DA, 0x1F5928D6B9A5312C, 0x9738B213121BB60E, 0x1DE02477E6CB6C9D, 0x80B855597586A5FF, + 0x2F7EECF4996E67FE, 0x8897E509F98ADE08, 0xA6042F012BAE05C9, 0x79C695F9720AC602, 0x7C27DAB4F9454489, + 0x7C4F0E6E7C8D01C4, 0x044EC3DE3CD00A15, 0x766B7FFFDD1E68A5, 0xDED4B905D044A35A, 0x29E1C5D913FA8AC3, + 0xAD107A2DFAACFE0A, 0x869AC912F01CDCBD, 0x643530D4CCE01C60, 0xE1384B00A8D76A09, 0xD90E7DB0C37E8280, + 0x8E0B74DBC289C752, 0xCF2E19A96684922A, 0xC3F8026F3FA2F6F1, 0x9F8AC4630B89F172, 0x763557561F7D3B86, + 0x29748634483DA421, 0xBC1A964CBFE26B30, 0x27D09EC6E0AEC51C, 0xF8F08FF49994DB58, 0xC0B447B81E545CDF, + 0x35EA6273C7B59E07, 0x1591C9B453DBA1BB, 0xFB2CA391E06A66B3, 0x23E9563E7B48AEDE, 0x765DF78843D5AEDF, + 0x805D1486D5FCD1C7, 0xA4F5CF3678A9CD17}, + {0x160FC43E3DC45F7A, 0x1A9FC74354A2A3D2, 0x751BE73800FD1188, 0x437C5C7C1E7CA91E, 0xF49B9D4493030DE5, + 0x8EC1747F828B445C, 0x0FBBE055295D236A, 0x44FC3876CB1A0659, 0x2A76346653EC71B6, 0x4CD0147B1F022005, + 0x44D553E604EE8928, 0xC6C4C001AB8895EF, 0x4C30F0DF29031017, 0xA76B1C2D48FC0D70, 0x87F0AB61914B0F94, + 0xDAC63C3BA59690F0, 0xD0E65F8BAC33AE0B, 0xA63F7D1941DE69ED, 0x2F1E33579F55E09C, 0x2693E12274931FE4, + 0xC97BE586A93CD405, 0xE8A3024C5864402E, 0xC85AB96014F446FD, 0xC322D4F126F931BD, 0x40EBA0087073C039, + 0xF3DBA4DA2290B104, 0xB3552F2041C1617E, 0x546E2B6999B4A93B, 0xF06016E738610942, 0x69FD04A30FAD39A8, + 0x6FE70A3E816EDFCF, 0x513430329AF7FA83, 0x44666C4470CDCF0C, 0xD3989DB60A27ECBE, 0xE0969202ACE4A03D, + 0x3DA6793CB35DA011, 0xD4D048E055BA741F, 0x08F6B1B19D774948, 0x562F92EAE60DE35D, 0xF57CE73EA4BA1F7C, + 0x3785B1E045471892, 0x397664073690AB1B, 0x5D16F4951F1B2F8F, 0x02D587668DE503F9, 0x87840EDBCB428812, + 0xC776DCD75D284963, 0x609487953A313297, 0x42D64BB8143D555F, 0x5EE4D69BAF1B135A, 0xE16F0E31C0B201ED, + 0x89DA94127299A782, 0xE2A5E534EAD2E00E, 0xD3EE9CB13790501A, 0x9F8DACF33D7F6C73, 0x1F4CF21626D513E2, + 0x4F85DF198FC8527B, 0x438FF9A6295C1EE9, 0x217A4C040BF84BB1, 0x8336C59D764D51D7, 0xE9307098EA2CD969, + 0xF81EECB44625CFFA, 0x5ED3F5FFA83E55FC, 0xFC8F47A9F95860EB, 0x16B4C7ECA7A96695, 0xA4B093784FEFDC8D, + 0x8623424336DDB4E9, 0x5FD2AB5C75FA7CD7, 0x2B1F610A6908978B, 0x92FE3E8E4C934A07, 0x9F57F92A2CB2F5C0, + 0xC6D5B55C056F89C6, 0x344FFF2145B18564, 0xA0141A6DB8FF832A, 0x05445E732E13FADD, 0xD9C874BA165E8FBA, + 0x47323F77E97D0169, 0xBB4AC42BCB0D6410, 0xF7A5B9CEDB2502DB, 0x094453ADC7EEEF09, 0x6A9DA465BA91FC37, + 0x26BA8BD6E96F9D14, 0xC5B4DC9A619C6F16, 0x92111463CB300D42, 0xD9C24777A24243A8, 0x9F223575A7311066, + 0x5B58BFC5DF4F86CE, 0x9F045B7CAC886332, 0x07CB81D97F6D5BDF, 0x6BEA4FA49BBA317C, 0x6492358AB501BE99, + 0x45696B43B47982C0, 0x3D1730A6BBBE5366, 0x6C97B561EDD3B939, 0xDEBFB84CBBBA4A95, 0x6205C9C9C2520A2D, + 0xBB092E7F01C88E98, 0x6CC0CEFD5601CA84, 0x374B0C430EB96A90, 0x43953AB8051A154B, 0xBE64342A8925C920, + 0x77FEE80E29754F23, 0x4F87D420FFCAF1D1, 0x2ED93F850C878BA8, 0x961C8491108C57B9, 0x81E7E6E067FA1231, + 0xD92FB5C55F49752F, 0x8C9288CF6B1128EB, 0x8CB5B266BA3E0B3A, 0x058B2793098730A3, 0xD3079E9AC44E9BBD, + 0x92916066D7266E1E, 0x9ECF251513476679, 0xB666417D9AB1C206, 0x76356B9F9A144C88, 0x45F25505BF663F0E, + 0x368912E829D25085, 0xDC0B0D13136351C5, 0xA22BDAA4CE33DEC5, 0x7D3F306D6E4AEF6A, 0xD4BD41A5938D6DB5, + 0x2D98A346A42CA6D3, 0xD74ACC37C1547C8E, 0x6291DA5FCB2861A2, 0xD39C0A8E30466529, 0x1EA2EF811519D178, + 0xE1DA04EFEAB8CC15, 0xDCBB6349293AA9B8, 0xD7EB9EDE18FEF1E9, 0x55998AD0A77E7B44, 0xE9A8F8F3478C4ACC, + 0xCC270F514E53B28F, 0x2ABFD991E38BD14E, 0x2C66515EA5B15ED1, 0x998C891BC66A436D, 0x3904A3FE3D058D7F, + 0x57F311D57029BE2C, 0xC316B1406C478BAA, 0x5B47DCEE2877E9F0, 0x9EFDF684826ED7CA, 0x7FA4FD2012C5D7AB, + 0xAF5BA7E47FC26279, 0x608543EC92B0E601, 0xC16CFD7D4EF8D312, 0xA4B904675EC45583, 0x9FD64EF16C6DEDE9, + 0xEBDE60CD50B630F2, 0x296EB2BBC1264236, 0x145AB4DC12158E16, 0xAA0D09CA9E48F15B, 0x0CD04C050C44142D, + 0x9CD6B1A1663DB71F, 0x4A0E762C8DC2F99E, 0x685651753121B1D1, 0x19421990A28643BB, 0x6432B8817395E41B, + 0xE62A908278E74D1C, 0x8E7181E9EEAB0771, 0x47A75FDB2A02AA66, 0x360323960AE3AFF0, 0x07CA12647BB0DA8F, + 0xBE24A354B80004C4, 0x7A3974E7F0718C78, 0xE417C5B8A5E5670E, 0x7D62E73CFEFC93AA, 0x27828D4E4B934712, + 0xC9E1DE7A938FA870, 0xFD5B70A38A14071E, 0x1F85B7BC98011931, 0x2B17E734CED0A480, 0x98BC7C81111FBF90, + 0x34E4DA54821AC3AB, 0xBA3F8E6FCA18316E, 0xEE019017F7F9E546, 0x327C15A7BF00F0C2, 0x18DE06DA052D28BC, + 0x67BD33961C83A466, 0x84112840743E8F9F, 0x8DB07BD626E99B46, 0x97752FA0BE9311CC, 0xA0F151C50359BFC2, + 0x3DEF128E70D49564, 0x558727B862B7F3A4, 0xFE8BAC88B1193FFF, 0xC38B6F4BE79D3C0F, 0xF7C835C205CBBC9A, + 0x5EB138E4EBE8DF6B, 0xF5E721663DA1A205, 0x829C6F63DA926D14, 0x884CFCCB38BBB3B9, 0x917F629A9D6D5CA0, + 0x29F9B8932C415E68, 0x3022F470C5F432E8, 0xB8ABEFFC7FB94321, 0x91062AAD217D42D3, 0xA566CF761925CC1C, + 0x0B12A946DB80830C, 0xC4C030592E044703, 0x8078562536879DAA, 0xEFB0F784A06801C5, 0x24F6B878CC12ECDC, + 0x2513EFFDED61025E, 0x27332E0DEB094AD0, 0xA48A8085081F3A73, 0x20DEF074F5AF41E0, 0xC9971B5D5C1E43D1, + 0x5B70F3051B269A6E, 0x12131A4D6C255FE6, 0x03FFD50810456540, 0xB7C516F6BD538570, 0xF6FE981E2B801ABA, + 0xB3974263499269AA, 0x3D477DC8F13D4417, 0x2364B167B98FBF1F, 0xCF5DE5015FA0B9D9, 0xEE5497809CC63916, + 0xC14335F438F7139E, 0x3C96A36A348A026F, 0x0EE8652712E3E7B6, 0x2ABBDE10515B98AF, 0xE655684B66107A99, + 0x3EECEFAE204446D7, 0x44239AB22F130DC0, 0xEEB05C5D7281975A, 0x55E1C5A4111B3D56, 0x40310066AD9079BD, + 0xF8B163139271F72E, 0xF851A8104FDF71BA, 0xD38EF9D366DA9985, 0x85364BC4D0C166F3, 0x66C57FF81B02A5F5, + 0x4C3288506E0F1654, 0x250D1A20CCB3C116, 0x4723E62C64DC4247, 0x7D0600DC566BFBCE, 0x9BF3FBB72021BF56, + 0x90FE23D5D2DBB8D4, 0x35FCCF6788928733, 0x310B88ADAEBDF36E, 0x2832B84CA050ED3D, 0xE9EB551713126A59, + 0x82A85A343D2F123D, 0x3070274065280B36, 0x3DFDAB55052D70D6, 0x8DBF08B632D4F218, 0x0CF670A62A120304, + 0x3BDD70EA1152DA15, 0x45F84393817882E9, 0xEEE9804C6FD273BA, 0xF95D46748BAE102A, 0x4B7C52B8963DEA3A, + 0xC42AD179E9E8868A, 0x5BAB4340744494CE, 0xF01DC086462A4723, 0x1BD902BD3E23172F, 0x2D60DBB8F0346BBE, + 0x1FA3B1CB226F3AEF, 0xF0D111B1605A8812, 0x6113FC99E42964DB, 0xF0D55AE958FEC78F, 0xDF3D05DC3F0723DE, + 0x07693F14FF94A2E9, 0xA4AFAC957CB10E4C, 0xD18406E441CBE0B0, 0x4BD5B3F094196F6E, 0xC0CE7E962FF186F3, + 0xEDC9FAE2F3960FCD, 0xD918C71B6AB5CF65, 0xE66CFA3268F07800, 0x86F33D6C00956C66, 0x6C2DD77998F5DA74, + 0xC37A69C5708C93C3, 0x16D777786D32F6DA, 0x221439E6FCCDB005, 0x4535000347AF258E, 0x0E7335A53308100A, + 0x5D48331235F67654, 0x47DBB29BFBE2269D, 0x6C6012397E5E3930, 0xC9E278CCFBB342C4, 0x434380F5950EDEF7, + 0xF6B8D999A4FB9C6A, 0x32E2D4AB90F3A0D9, 0x073DC8F32D4435A9, 0x361B566F1AE24571, 0x99766DCCF9D4629E, + 0xDBE4A7322C9135D4, 0xA4BE84580E072BDE, 0x73E70EF451AC84AC, 0xA692909EB7AA7671, 0x9E247125EFA20237, + 0xCDC8437C2D40E7E8, 0xCE94CCBF4F0C6FF7, 0x831892206C758AF0, 0xA988D36DA40F6E32, 0x6CC59A8988A8590E, + 0x8BEF3A9AF12CE961, 0x6E75EA5B2F510AC0, 0x799EC6F8ED3F422C, 0xDF46A484A602B1EF, 0x4B85935979AF98AE, + 0x7A0B103FE430EEE9, 0x513AA6FE03118A9C, 0x7032D160F38F4474, 0xD53F6257314C108C, 0x7594D3D993F55FAE, + 0xB93E6FD4AE70F02B, 0x4129026BAE7F552A, 0xA1CDD49BC393661B, 0x96F41A07C0D9F833, 0x55682717EB9DE80A, + 0xD599473FE64E11D6, 0xB667AD70575CFB57, 0x144FE2FD414E05D4, 0x5CAA1900F002DDA3, 0x03A11C91787C9684, + 0xBCC86B9175AAA7CF, 0x13B9F6CF3B12A547, 0x554D4133E6655974, 0x83CB34297A45304B, 0x96FA232DB8CD72DE, + 0xDD953736301DE281, 0x6CC88D643C4125DD, 0x2119524B4F08DECF, 0x3EF2D2F04395D313, 0xF26EEE9A02C151C7, + 0xCADAE0F48D923FE8, 0x7D11A1DCA52F8650, 0xB64251BDBEAFB9CD, 0x063983B81F83893A, 0x5DEEA60E55694DA6, + 0xD6A953827B1732ED, 0xE9160F4096622632, 0xA29C4ECD0307A213, 0x69B0A3AF1C0A648C, 0x3F98A500615AAC75, + 0x872D469D3CC1D12F, 0xF266F84546C6027E, 0xA9349A29BCBED2FB, 0x4C94FCFBAAA2116A, 0x495B084B88EA0694, + 0xF4D373F8F82C62A1, 0x67A7BB3A11047E38, 0xBC3C12516A608B3B, 0xFBB899D009E604DD, 0xC2F80865EC81C221, + 0xB1C34F577D015209, 0x1141D1AD13BE0E50, 0x89F0876BCD91C774, 0x4552B6EBB9FE22EA, 0x91D0F7E29C1B460D, + 0x10B02768FDA32F2E, 0x838BF42D52EDFE6E, 0x08DCE43BC11A751B, 0x82528B6F9C5EDD71, 0x283055455E36B36F, + 0x50EEB41528E4A4D5, 0x0BD9FAFAF919CEBB, 0xB1EECB14169802E0, 0x927480AB4EE12E59, 0x31E2A4A46023B2D3, + 0xEE26C34A89C3A38A, 0x148EB35570769EC9, 0x2EBA893E50F48CD0, 0x7FDF8D75CD04DF8B, 0x6C528CAFCE5D5778, + 0x45EE21A3E49945F0, 0xC376FFCB2BBBB2E1, 0xE20A9D50994F16FD, 0x03DF91172EAFA1F8, 0xA6C26A4B46C97CEE, + 0x445872ABAE5FF79A, 0xD63CFBC50C822882, 0x0C897C5719A4EA25, 0x6A3D9AF4752B5E48, 0xD4DFAC0B0840A725, + 0x7954A85167204049, 0xC64635B306E9BC30, 0x64E149DC7B4BAB2D, 0xEFBB4FF6A59F4E6E, 0xAAEB6DB427D761CF, + 0x05068D52A1759FAC, 0xC79C1CF483DFC192, 0xE86012CBD2887664, 0x34D9DE5167E3E73A, 0x67B79E735221585C, + 0x6BDA1A985194DE24, 0xB77E7876A33928EA, 0x3E7132D99B5F3401, 0x8448E4E1D4CBF541, 0x2D17F891F7A509AB, + 0x602D21E12C08405A, 0xA3F03D76596A49CC, 0xA65C831270C00A8F, 0xA6E9848A3BEAAC79, 0x1854439120946762, + 0x9EAC4556569B2044, 0xC432D9037617166B, 0x4B0628CFA7E601B5, 0xF749EBCA08F23D92, 0x5AE02C7A0DFF057D, + 0x2C2C87FC83793F53, 0xC03E4AF8648B8A12, 0xC3E9059778D6009A, 0x3438FBECDB0AFCE6, 0xD5C606114DE3D6D4, + 0xFDA1A4FCE7A110EC, 0xD591928E62630C20, 0xC5C4A2B8A262B330, 0xEF2E1AA1955EC10B, 0xB1269DB2A2A10BE6, + 0x64EB97E36C1CC338, 0x403BEB7AB57715A0, 0x4B6C446D41AFBC39, 0xA0631BD213774AFB, 0x84D4C0590B2E294C, + 0x12975C7A3FC3444B, 0x33A2F5C219BE1F8E, 0xF861B1B38DEBB508, 0x42D17744760CB833, 0x1E968EC16D3D4280, + 0x986B4C6DD97ED1E2, 0xC1101F237F5F3A7A, 0x00576E3046925C54, 0x12EA722AE7F12966, 0xD3E667C67F7954B9, + 0x0B027FA8230D5D63, 0x7E51B2B0C0293831, 0x26EE88897DE2A907, 0x6DB50DF2B78CDBB9, 0x2C666118EA42DFE1, + 0xC087364E90A609F6, 0xDC54EBF0B0E1C334, 0x272275251807B78A, 0x925270F7D190189C, 0xE7442AC6AFBD282D, + 0x86EB827BB544FA2A, 0x5A1DF9B81250493D, 0x405E8E12798A1299, 0x42AEB64B63FE36AE, 0x44DB17B17A824B94, + 0xFCE816292C400C16, 0x1FED9212B17779C6, 0x38B5A8122109D498, 0x550D944F407659FF, 0xC32E31FC3DFB934B, + 0xC93E904025A8BDED, 0x47A94FFBF6EF481D, 0x277DB8E725B4045E, 0x651402CE0F8FBD76, 0x35A59E41B18F5BD7, + 0xC734D721B8931E8F, 0x7E779F974301E925, 0x8021EEF402C4B696, 0x2D1E610BFC35AF84, 0xF048FF198B0B224F, + 0x45736E6E157574F0, 0xE26192B0E6EBDDAC, 0x538C113270C842C9, 0x8095C9207EECFDAF, 0xBE475C2E5A48BA4F, + 0x44756051AF39EE9C, 0xB1B58E1DFE4A1EB8, 0xF3F13AEF39E8B9E8, 0xB6F724552F26052D, 0x03636B89A63BE2F4, + 0xE04822B43A0B4F1B, 0xF9CF1762666A390E, 0x9FF1B1F88C14E1DE, 0x34D1D1F91763ACB9, 0x592B95A0E64718F6, + 0x6CDFC338F918A4DD, 0x017CBEFB97E1D42D, 0x3BEBB11DDD45F10D, 0xA1A27CCC36E63E8A, 0x576AF5F45675F7ED, + 0x64DFB824BB57B5CD, 0x840D57F03CC812E1, 0x82121EA30A49F414, 0x39D24088A1D0FFA6, 0x5787D1D21BC1141F, + 0x79E37FD76669847A, 0xA07DEF99CBF676D0, 0xFE651C7163BC4312, 0xBD56418D19E0D9C8, 0x022EB5C619881EBE, + 0xA0D243CDEA242899, 0x32A86E7606355312, 0x6E5471A2D3075CE7, 0xBA88B4BA6D071C72, 0x2819581C8ABFA867, + 0x2C522479AF5D3C2A, 0xEEEF04C3F8A1DC70, 0xA609E0131E5CDEC6, 0xD559D33FFBFAA201, 0x19D25E01D04648F3, + 0xD448A188D746E7FB, 0x49221991CF32CD7D, 0x8374B093876BEE1F, 0x0A3AC0D98AC84F4F, 0xDAA5850DD332B8E4, + 0x0E1AF133D42236C9, 0x8388AC2A6578DD24, 0xF9850C749A501872, 0x06831CA7D2F61BAC, 0x6FB6345F6750EB1E, + 0x17F1D695FE9F2EF0, 0x9B9C02C81EC8A5FF, 0x21CA8B3929788517, 0xE02B0B66779B4A64, 0x6B2ACE3B57C3B503, + 0xF439D2AE14CF6C9C, 0x8FEBB178187CDF88} +}; + +void Plesh256CryptoSingleDigest(const uint8_t *hash, uint8_t *data, const uint8_t *coe, const uint32_t length) +{ + __asm__ __volatile ( + "ldp q16, q17, [%[hash]];" + "mov x11, %[start];" + "mov x12, %[coe];" + "ldp q18, q19, [%[hash], #+32];" + "hsh_loop_%=:" + "ld1 {v0.16b}, [x11], #+16;" + "ldp q1, q9, [x12], #+32;" + "pmull v20.1q, v0.1d, v1.1d;" + "pmull v21.1q, v0.1d, v9.1d;" + "eor v16.16b, v20.16b, v16.16b;" + "eor v17.16b, v21.16b, v17.16b;" + "ldp q10, q11, [x12], #+32;" + "pmull2 v26.1q, v0.2d, v10.2d;" + "pmull2 v27.1q, v0.2d, v11.2d;" + "eor v18.16b, v26.16b, v18.16b;" + "eor v19.16b, v27.16b, v19.16b;" + "cmp x11, %[end];" + "blt hsh_loop_%=;" + "stp q16, q17, [%[hash]];" + "stp q18, q19, [%[hash], #+32];" + : + : [hash] "r"(hash), [end] "r"(data + length), [start] "r"(data), [coe] "r"(coe) + : "memory", "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", + "x20", "x21", "x22", "x23", "x24", "x25", "x26", "x27", "v0", "v1", "v2", "v3", "v4", "v5", + "v6", "v7", "v9", "v10", + "v11", "v12", "v13", "v14", "v15", "v16", "v17", "v18", "v19", "v20", "v21", "v22", "v23", + "v24", "v25", "v26", "v27" + ); +} + +struct Plesh256 { + static const size_t alignment = 16; + std::vector > hash_by_layer; + std::vector length_by_layer; + int nLayers = 0; + void Init() + { + hash_by_layer.clear(); + length_by_layer.clear(); + hash_by_layer.resize(INIT_NUM_LAYERS); + for (int i = 0; i < INIT_NUM_LAYERS; i++) { + memset_s(hash_by_layer.data(), BLOCK_LENGTH, 0, BLOCK_LENGTH); + } + length_by_layer.resize(INIT_NUM_LAYERS); + nLayers = INIT_NUM_LAYERS; + } + + void HashPush(int layer) + { + if (nLayers == layer + 1) { + hash_by_layer.emplace_back(); + length_by_layer.push_back(0); + nLayers++; + } + uint8_t *tempHash = hash_by_layer[layer + 1].data() + length_by_layer[layer + 1]; + Plesh256CryptoSingleDigest(tempHash, hash_by_layer[layer].data(), + (uint8_t *) (g_coeByLayer[layer]), BLOCK_LENGTH); + length_by_layer[layer] = 0; + length_by_layer[layer + 1] += HASH_LENGTH; + DigestBylayer(layer + 1); + } + + void DigestBylayer(const int &layer) + { + if (length_by_layer[layer] == BLOCK_LENGTH) { + HashPush(layer); + } + } + + void Digest(void *data, size_t length) + { + uint8_t *data1 = (uint8_t *)data; + while (length) { + size_t copyLength = std::min(BLOCK_LENGTH - length_by_layer[0], length); + memcpy_s(hash_by_layer[0].data() + length_by_layer[0], copyLength, data1, copyLength); + length_by_layer[0] +=copyLength; + length -= copyLength; + if (length_by_layer[0] ==BLOCK_LENGTH) { + HashPush(0); + } + } + } + + void Finish() + { + for (int layer = 0;layer < nLayers; layer++) { + if ((layer == nLayers -1 && length_by_layer[layer] > HASH_LENGTH) || + (layer < nLayers - 1 && length_by_layer[layer] > 0)) { + memset_s(hash_by_layer[layer].data() + length_by_layer[layer], + BLOCK_LENGTH - length_by_layer[layer], 0, BLOCK_LENGTH - length_by_layer[layer]); + HashPush(layer); + } + } + } + + void Print(std::string &hello) const + { + uint32_t *hashU32((uint32_t *)(hash_by_layer[nLayers - 1].data())); + for (size_t i = 0; i < HASH_LENGTH / sizeof(uint32_t); i++) { + hello = hello + " " + std::to_string(hashU32[i]); + } + } +}; + +static tuple HashFinalPlesh256(int err, const Plesh256 &plesh256) +{ + if (err) { + return {err, ""}; + } + string res; + plesh256.Print(res); + return {err, res}; +} +#else +static tuple HashFinal(int err, const unique_ptr &hashBuf, size_t hashLen) +{ + if (err) { + return { err, "" }; + } + + stringstream ss; + for (size_t i = 0; i < hashLen; ++i) { + const int hexPerByte = 2; + ss << std::uppercase << std::setfill('0') << std::setw(hexPerByte) << std::hex << + static_cast(hashBuf[i]); + } + + return { err, ss.str() }; +} +#endif + +tuple BackupFileHash::HashWithSHA256(const string &fpath, double &totalTime) { +#ifdef HASH_PLESH256_ENABLED auto res = make_unique(SHA256_DIGEST_LENGTH); + Plesh256 plesh256; + plesh256.Init(); + auto plesh256Update = [plesh256 = &plesh256](char *buf, size_t len) { + plesh256->Digest(buf, len); + }; + int err = ForEachFileSegment(fpath, plesh256Update, totalTime); + plesh256.Finish(); + return HashFinalPlesh256(err, plesh256); +#else + auto res = make_unique(SHA256_DIGEST_LENGTH); SHA256_CTX ctx; SHA256_Init(&ctx); auto sha256Update = [ctx = &ctx](char *buf, size_t len) { SHA256_Update(ctx, buf, len); }; - int err = ForEachFileSegment(fpath, sha256Update); + int err = ForEachFileSegment(fpath, sha256Update, totalTime); SHA256_Final(res.get(), &ctx); return HashFinal(err, res, SHA256_DIGEST_LENGTH); +#endif } std::string BackupFileHash::HashFilePath(const string &fileName)