From 17ff3bb46693dcbd4e5274dc9407be5979779671 Mon Sep 17 00:00:00 2001 From: Lars Schmertmann Date: Tue, 22 Sep 2015 09:58:38 +0200 Subject: [PATCH] Added ECC functions on elliptic curve secp256r1 --- examples/econotag-ecc-test/Makefile | 8 + .../econotag-ecc-test/econotag-ecc-test.c | 2182 +++++++++++++++++ platform/econotag/apps/ecc/Makefile.ecc | 1 + platform/econotag/apps/ecc/ecc.c | 1016 ++++++++ platform/econotag/apps/ecc/ecc.h | 103 + .../15-compile-arm-apcs-ports/Makefile | 1 + 6 files changed, 3311 insertions(+) create mode 100644 examples/econotag-ecc-test/Makefile create mode 100644 examples/econotag-ecc-test/econotag-ecc-test.c create mode 100644 platform/econotag/apps/ecc/Makefile.ecc create mode 100644 platform/econotag/apps/ecc/ecc.c create mode 100644 platform/econotag/apps/ecc/ecc.h diff --git a/examples/econotag-ecc-test/Makefile b/examples/econotag-ecc-test/Makefile new file mode 100644 index 000000000..bfc3cf2c8 --- /dev/null +++ b/examples/econotag-ecc-test/Makefile @@ -0,0 +1,8 @@ +CONTIKI = ../.. +TARGET = econotag + +all: econotag-ecc-test + +APPS += ecc + +include $(CONTIKI)/Makefile.include diff --git a/examples/econotag-ecc-test/econotag-ecc-test.c b/examples/econotag-ecc-test/econotag-ecc-test.c new file mode 100644 index 000000000..e1675a390 --- /dev/null +++ b/examples/econotag-ecc-test/econotag-ecc-test.c @@ -0,0 +1,2182 @@ +/* + * Copyright (c) 2014, Lars Schmertmann . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + */ + +/** + * \file + * ECC algorithm test + * + * This file contains tests for ECC calculations + * + * \author + * Lars Schmertmann + */ + +#include "ecc.h" +#include "contiki.h" + +#include +#include +#include + +/*---------------------------------------------------------------------------*/ + +/* Test vectors from https://github.com/iSECPartners/nano-ecc */ +uint32_t ecc_data[][7][8] = { { + { 0x01dcc6de, 0x6c8f8d3e, 0xe2612dd2, 0xdd3c4440, 0x3fee4131, 0xf02322c5, 0x4059c2ab, 0x751f7f74 }, + { 0x9a623445, 0xb27e2e17, 0xba50e608, 0x21b65597, 0x09d67258, 0xff5df02a, 0x03ca8c17, 0x698388c3 }, + { 0x26518fc8, 0x3235d8c5, 0x18ecb8fe, 0xebdb3791, 0xc0633d8b, 0x6c0dbf13, 0xe971273b, 0x5d56f932 }, + { 0x19a2428a, 0x1bdf8fdd, 0x418342e4, 0x67ff1a26, 0x309b7a46, 0x3a86104e, 0x0a6aea35, 0xe6f12ea2 }, + { 0x3ddbac31, 0xb2275232, 0x8b2abe7a, 0xd0d0bd74, 0x80d4f48a, 0x7a263898, 0x2d901339, 0xc53afd8d }, + { 0x24c5bd75, 0x2fe8b15b, 0x1a7983d9, 0x314984ea, 0xc453199e, 0x9c6a1083, 0x04441728, 0x77e815e3 }, + { 0x623cc072, 0xa3e5f3a2, 0x96a3b696, 0x83ca161d, 0x549145d3, 0x227369fb, 0xccf3a85c, 0xb97a69bc } + }, { + { 0x0d2cf2f4, 0x0d21f5f2, 0xfac9aca1, 0x840ab553, 0xec0dcf69, 0x4be4cecb, 0x128a0c0a, 0xa7f8b38f }, + { 0xf59800f2, 0x60a3a8d2, 0x819f2edb, 0xf2776dd0, 0x9f61d8d9, 0x8d7eb569, 0x4c4ec6ce, 0x07c4cdfa }, + { 0x8743783b, 0xd9eb95a6, 0xd27f08a8, 0xc9022285, 0x79b842b6, 0x03eb2d8b, 0x79f4baa4, 0x29036424 }, + { 0x5afd98e4, 0x0124388b, 0x15c3334f, 0xca6831e1, 0x14f32098, 0xf34ee3a6, 0x6dd6bc20, 0xde338482 }, + { 0x65db89d0, 0x7a975020, 0x1374d49b, 0xea8761b0, 0x99287467, 0xcdb741c5, 0x07640ee0, 0xbd00bef4 }, + { 0x700808f1, 0xf583f9f2, 0xd5ab6476, 0xb9470da3, 0x95447300, 0x1112ebbe, 0xaed5373f, 0x96060cb5 }, + { 0xbfaf6509, 0xaa24f83a, 0x5d18f3f5, 0x6b51122c, 0xdac95e1f, 0xb7e1f089, 0xf08bbed0, 0x3f1b874e } + }, { + { 0x33b5f336, 0x59e0d59b, 0x95601007, 0x3ec65a9b, 0x1854b42d, 0x74bdac00, 0xe6074168, 0xf5226a9b }, + { 0x494fabf0, 0xd1b5a4d4, 0xc0fabd37, 0x3d58ae63, 0x40356339, 0xcdd8a1d2, 0x2b96bd7f, 0xf309c0ad }, + { 0xac2aed2b, 0x2b8f5476, 0x0a65c8a2, 0x721de0e4, 0x77064eb6, 0x607e8f27, 0x4cb86d6f, 0x3aa4ec20 }, + { 0xce83cb4b, 0xbc8af90d, 0x91322d14, 0x58191442, 0x2a6387a6, 0x13fcaec4, 0xab0a4f92, 0xff990a1e }, + { 0x71669ba0, 0x939cceac, 0xce8d1d9a, 0xbbb4c801, 0x9904ace3, 0x04b7b8ef, 0x6657c7ff, 0xb6abb68b }, + { 0x3e5aa24f, 0x5ca3c331, 0x5139f40d, 0xe20ed654, 0xbe462e8e, 0x2707caf0, 0x24477db8, 0xd1bef9b1 }, + { 0x14d05b05, 0xd63c1f53, 0x47e3adcc, 0x70f5b519, 0xdbfcfc98, 0x02173932, 0xa0b0b921, 0x8a214dbd } + }, { + { 0xd262ce98, 0x2c116c77, 0xfa6a5ee7, 0x79152505, 0xb91f74a6, 0xd0db6ac0, 0x1ab4d986, 0xf53947fc }, + { 0xeadb841a, 0xda614f41, 0x0b7da371, 0x646d15ae, 0x159f7cc8, 0x4a2a43f2, 0x7ac27c91, 0xcee899f2 }, + { 0x78f156d2, 0x693bd20d, 0xfbc1e011, 0xf09e8a7c, 0x4e0d5823, 0x359a4595, 0x794303b4, 0xf8bef042 }, + { 0x9af1f222, 0x3d684941, 0xd6e56d92, 0x7b68ba32, 0xc0948cb2, 0x568a9354, 0x7aea45fb, 0xa1294a0b }, + { 0x5089a211, 0x826e1094, 0x974d4237, 0x90b08a0e, 0x62b66725, 0x99bb9dd2, 0x26569adc, 0x64ca5b7f }, + { 0x737f3039, 0xf0dbfaaa, 0x246f5559, 0x46326009, 0x26913709, 0x0048b096, 0xa95b088e, 0xefaf0be3 }, + { 0x4a1e8607, 0xef0181d3, 0x77cc4301, 0x1b708962, 0x61522020, 0x6db10e6c, 0x9e216660, 0xa2967953 } + }, { + { 0x6aefadbd, 0x6a96bab7, 0xc235e509, 0xb063b919, 0xc66f222b, 0x67f98a65, 0x0ea41576, 0xf8526e6b }, + { 0x77e50fde, 0x66f58ff3, 0x95d72a86, 0xe7f8ee13, 0xb43437f4, 0xf719f833, 0x4af4915d, 0xcb5c6d2d }, + { 0x8fbeef09, 0x24af00e4, 0x303b1db8, 0xbbf1dae7, 0xa1dab5cf, 0x7b22a089, 0x6cc93dee, 0x0cba7aa2 }, + { 0x26af27b4, 0x2684c828, 0x729ad7b0, 0x8ef161eb, 0xc12ac74d, 0x928ac3b4, 0xac9499da, 0xfe1c57c0 }, + { 0x15bc7280, 0xbe29a6d6, 0xe57bf1bd, 0xe68893d0, 0xc1312fcb, 0x3efae48b, 0x0c691973, 0x694fdc1d }, + { 0x05e64712, 0xa9669dea, 0xfa71f8b7, 0xb6de4567, 0xa2cc36e3, 0x889f5e34, 0xcc94f1fe, 0x2646763e }, + { 0xce756758, 0x0d9b6b53, 0x66a4d864, 0x8c4a3aa9, 0x99d5b022, 0x91a4dd18, 0x400612d0, 0x9f8b72d8 } + }, { + { 0xed3a3660, 0x5080a6e8, 0x6b95ca21, 0xa23d9aa2, 0xb3949551, 0xb9f2d46b, 0x26535847, 0xb8c62b06 }, + { 0x05405ae9, 0xb61b8454, 0x9aa94bf2, 0x7a2e5ac1, 0xea772505, 0x614a5a28, 0xf563a10a, 0xd4d45bd7 }, + { 0x6a80cf8c, 0xe725b198, 0xc371ee43, 0x4a8047e2, 0xc6f58553, 0xffa3c341, 0x2f4a9713, 0x0c6b7d0b }, + { 0x96283c3e, 0x9355c40b, 0x4f02e8b5, 0x6a62c4dc, 0x9e4da9aa, 0xbad8207d, 0x5e67afaf, 0x26fc0530 }, + { 0x25cefc44, 0xa29b4451, 0x404e8418, 0x5aab901d, 0xf6d0a1a5, 0x8a8438b1, 0x4b4964a2, 0x1704792c }, + { 0x02af9562, 0x948d3fe4, 0x4ca218e4, 0x3fb57e0d, 0x57f6e2d7, 0x7c3db023, 0x8cbe424e, 0xc9dd9b16 }, + { 0xc656a582, 0x157d2ef5, 0xe292e1f1, 0x1a368124, 0xe05b3093, 0xeab74f3b, 0x2196cb68, 0x57c6f1a5 } + }, { + { 0xb19e4c50, 0xee52bcd7, 0x4834dbb6, 0x03e721b5, 0x32108a97, 0xc575e528, 0x5ccbfe1d, 0x099c5d8e }, + { 0xb119ab54, 0xcfe14a69, 0x456bc938, 0xdafd4059, 0xb904aca1, 0x1a861997, 0x6374580d, 0x71354259 }, + { 0xa0a9a344, 0x6dde4baa, 0x57d7644d, 0xad71af57, 0x9154c72d, 0xa5426581, 0x6d501f29, 0x3dcc0c53 }, + { 0xd5d55773, 0xa48d40e7, 0x4c299836, 0xa3c3aa27, 0xb7060b27, 0x4c0b55f7, 0x190ffb64, 0x0a3e5fae }, + { 0xf7197092, 0xb06b1445, 0xdec8c324, 0x84a10310, 0xf8ffe96b, 0x16bfc375, 0xe3857b4b, 0x2dcf6157 }, + { 0x3ed661df, 0x69128ce4, 0x4863697b, 0xf846460d, 0xa6087ea7, 0x51e4db88, 0xe4dd1b45, 0x3dc4bdef }, + { 0x29fb38a0, 0xb69a329f, 0x7fed93cc, 0xd1ec8509, 0xf3907fd8, 0xf8ab1ff0, 0x19950850, 0xaa9a03c1 } + }, { + { 0x361859ce, 0x867cba28, 0xa39a5255, 0xf70d11f8, 0xb9fc2131, 0x7cd59204, 0xbe14e485, 0x7d0f4b93 }, + { 0x41bcb98a, 0x1f281f64, 0x61c98305, 0xf066bd0f, 0xd6ada91a, 0x8cfb9f1d, 0x328c8d89, 0x753932c8 }, + { 0xe474b0ae, 0x4a7e981b, 0x7cf03f2b, 0xec09086e, 0x805a8546, 0x5b0ddacf, 0xe8f06c37, 0xbf7452ce }, + { 0xc0a55fe4, 0x0c8d529f, 0x19d763f7, 0x7454ff5e, 0xb4964f9f, 0x8ced59fa, 0x06e12800, 0xabb82b0b }, + { 0x0069d9cc, 0x8b2d3165, 0x54088fec, 0x9ea2b828, 0xacfad6ec, 0x330d6ce2, 0x2efc0264, 0x33737dae }, + { 0x7c7c1d79, 0xbb3640d2, 0xea6a1ae9, 0x3f925a78, 0xd71afcb0, 0x58d88d2a, 0x17ae8765, 0x38c058a9 }, + { 0xd7829d16, 0x3f9504c0, 0x1b1fec7e, 0xc8322d3a, 0x405fd919, 0x3225b4af, 0xc94b8eb9, 0x0fcffc22 } + }, { + { 0x8655a5f6, 0x4aa2ad7a, 0x545dea85, 0x33e98fd2, 0x353b4c5b, 0x17a3c2aa, 0xd04879e0, 0x3c129174 }, + { 0xb42400f9, 0xfd85dd35, 0xec4df9ad, 0x57802e1e, 0xeb1af871, 0x037c50c8, 0xef3c2339, 0x1ae01102 }, + { 0x64d7235c, 0x41f8e7c3, 0xf608d9a5, 0xe5d05986, 0x07a2e704, 0x73a4b0f5, 0x9aeae4b9, 0xc924967b }, + { 0xd3d01754, 0x1ca13de8, 0x6fb9c8f2, 0x66ced741, 0xd20c7f74, 0x2ab0a7b5, 0x4484930d, 0xe8eeaf3a }, + { 0x05a267c6, 0x29394c78, 0x212dc594, 0xe2f65cfb, 0x911e9f22, 0x066d4ca0, 0xc691a4e0, 0xbe6a4ec2 }, + { 0x7093c8c0, 0x46c84938, 0xf948d5a9, 0xaff0ada0, 0xd941397d, 0xf5e08f06, 0xd6c02942, 0x34cf551c }, + { 0x8862a919, 0xb9e5cec5, 0x2e1b13f6, 0xaa2a6a08, 0x9d795333, 0x13f0b2ea, 0x1542db97, 0xdd4df512 } + }, { + { 0xc81f9a77, 0xfc19cdc2, 0x2546465a, 0x128ec4b7, 0x413334d2, 0xebe931ab, 0x99d8658d, 0x2b7c0a40 }, + { 0xcd7479af, 0x46380c5d, 0x761c619c, 0x60fd22d6, 0x594e72c8, 0x9ebb5a68, 0x860f40df, 0xc385724e }, + { 0xec92c524, 0xaa5beb2c, 0xfd54d0e6, 0x90fb0745, 0xb693dea8, 0xfab2f691, 0x7d031158, 0x2292be51 }, + { 0x302085b6, 0x59f3a3d6, 0x0e2d8a11, 0xb58b4afd, 0x3f0a3eb2, 0xdbbd2dad, 0x34f12533, 0x1443a29f }, + { 0xbacaa933, 0x9e9d317b, 0x571f930e, 0x4925d01e, 0x4e7804ae, 0x0a26a382, 0xe6b26cb6, 0x15d77189 }, + { 0xa98fba79, 0xb8b92d81, 0x699c2149, 0x32f18c0a, 0xb7563138, 0xb749e717, 0x19b29021, 0x13ab89f9 }, + { 0x2d5e713e, 0x8e989661, 0x4c2c3ec1, 0x4337676c, 0xb03b6c5d, 0x5ac054e3, 0xc3e56a9d, 0x970b9d95 } + }, { + { 0x1abd6f4b, 0xb3a17958, 0x82284674, 0x7a0b7df9, 0x37c5a4d8, 0xf1e1fc30, 0x4ab90c08, 0xc17c937d }, + { 0xd6dcea60, 0xc2c4845d, 0xdd9d9b99, 0x0f4a1c13, 0x5a1c1e7a, 0x1bc5f66a, 0x3d7a5006, 0x6c506acd }, + { 0xdd31b410, 0xf791a74c, 0x709e9c04, 0x125812db, 0x202083bb, 0xf9f703c3, 0x83a3c36a, 0x93c33b97 }, + { 0x0769506e, 0xa2f38940, 0x79535a97, 0xe635be24, 0x7d355188, 0x1082cff4, 0xa92a5187, 0x1b1b2773 }, + { 0x1c03bc37, 0xce06e83d, 0xf420fc7f, 0x0d259634, 0xeb02658d, 0x08621d54, 0x6d959a64, 0x7ff42395 }, + { 0x5eb329e9, 0xb6b53979, 0xbd5a1d15, 0xf9a26522, 0xf006b31f, 0xd796af76, 0x4eaa60a1, 0xe94f9ad9 }, + { 0xefd27c6b, 0x3f4bee0e, 0x398eff6e, 0x35a01d32, 0x079eb392, 0xb32900cd, 0x2153cb34, 0x969a7076 } + }, { + { 0x75f895fb, 0x14d958f0, 0xe630bc01, 0x5d5d2240, 0x151194d9, 0xadef3378, 0xbb8cac52, 0x4bf9af4c }, + { 0xa87b27a1, 0x66443fad, 0x6e8eb69d, 0xdcf3c748, 0x81024d3d, 0x045793ff, 0x55e91a99, 0xa5fb10f6 }, + { 0x8016a291, 0xc992ae17, 0x10c19198, 0xb2148762, 0xb81df852, 0x08004fe2, 0xd5accd8a, 0x6b2ffe51 }, + { 0xdb89df5c, 0x7c88902c, 0xaed170c1, 0xa57d6ade, 0x034ff768, 0xeb4d868b, 0xed4434f8, 0xb3317c76 }, + { 0x00dd9f1c, 0xc464871a, 0x51b3483d, 0x9091cdd6, 0x3a4ad976, 0x6e9957d9, 0x1982a72f, 0x539d53f4 }, + { 0xacf47c87, 0x6b75d11e, 0x8f5c2887, 0xc7b097f8, 0x861ca1de, 0x2e6fa5b9, 0x6073fa84, 0xa78c4fa2 }, + { 0x32b1393c, 0x3221d47e, 0xd23a49cd, 0x0f11554b, 0x9ceebe9b, 0xab0b03b7, 0x4b6e7441, 0x26c7cda9 } + }, { + { 0x94c472bf, 0x79da14f4, 0xcc7848ce, 0xd0a3f41d, 0x06692f58, 0x4c2db546, 0xd9dbf932, 0xc1873d4d }, + { 0xf1906c69, 0x7df54ee0, 0x8229c4d6, 0x8ad15c28, 0x49adb482, 0xd673baf4, 0xd1db16a7, 0xa8e5e3ea }, + { 0xde6cc806, 0x22aa1c57, 0xb1353c4a, 0x76b84f31, 0x1a54c746, 0x323fd3fa, 0x2ea2b234, 0xe8817ff5 }, + { 0x91c7de40, 0x0271b83f, 0xdb959719, 0xd42ad457, 0x685e5648, 0x9003a4b0, 0xd0a74933, 0x19cb6b56 }, + { 0xe4ec2b1d, 0x8c213e97, 0x0f84c083, 0xd987fb55, 0xb4cd0072, 0xc8e3ede3, 0x298da8c9, 0xed46c25f }, + { 0x52cdd5e3, 0xf9eb66b2, 0x715e0f8b, 0xeeab3d77, 0x5fe40b70, 0x9543e0b6, 0xc4e98491, 0x82a6190f }, + { 0xa274e4bc, 0xbe247bc6, 0x34ec15d0, 0x0550ab13, 0x0ae696fd, 0xfa7d477f, 0xf4c953bb, 0xb0b9d3e2 } + }, { + { 0x450db8f1, 0x5f43bce3, 0x4d82e2cb, 0xfd76bae4, 0xd1712a7a, 0xf745fd41, 0x38a3776a, 0xbdd475bf }, + { 0x93097997, 0xbce94d70, 0x307cd38e, 0x8d2f50a4, 0xf43d073a, 0x838ebc02, 0x74bcf139, 0x75eccfc4 }, + { 0x29bf5a6e, 0x51ff4baf, 0xb786841f, 0x50a26fb0, 0xb73b2eee, 0x15c99855, 0xef2ec068, 0x69c52545 }, + { 0x7783df8e, 0xbd77d58e, 0x53789b31, 0xdb34aded, 0x073bd783, 0x01f53d6f, 0x9ee77ea0, 0x1e5db59b }, + { 0xfc4ffb2a, 0x33485ace, 0x448f0cdb, 0x67baf446, 0x8d897cf5, 0x0558b4ea, 0xc03c0449, 0x90185cdd }, + { 0x4b55aef5, 0x391325fa, 0x0eb13f3b, 0x6d1936f9, 0xd79ab56a, 0xe4677bb1, 0xcf233bee, 0x7cae3f82 }, + { 0x60bca032, 0xef59cbdf, 0xca93d74b, 0xdcaaf290, 0x89499e43, 0xb0000c61, 0xfda7c34c, 0xa8a303a5 } + }, { + { 0xf563f0b8, 0xea7610d1, 0x8d35a2da, 0xb75964a1, 0xe68fe2f6, 0x11eec908, 0x35c5ba6d, 0xd6a264d9 }, + { 0x0561f684, 0xc0304119, 0xb8fa5656, 0x0eb431c4, 0x5b30409b, 0x6c9ef75e, 0xf77afccb, 0xf1fb796e }, + { 0xdd7e958a, 0xd3d873e3, 0x0854439c, 0xae1e4223, 0x7167987a, 0xcd1d8467, 0x523be4eb, 0x796a28e7 }, + { 0x21ad1d15, 0xe52ece62, 0xe19ab217, 0xdbb11c18, 0x3ffb82cf, 0x33a51615, 0xb427bdf2, 0x593e3959 }, + { 0x3b665341, 0x390035fe, 0xffcd92d2, 0x5d565393, 0xecf2c92a, 0xb65c0cb1, 0xf7968ae8, 0x04f2d373 }, + { 0x1191b1aa, 0x56df60fe, 0x4a28623d, 0xdc443bcb, 0x2bf1f915, 0x17906493, 0x0d66b04f, 0x7b97fcb0 }, + { 0xb74a031a, 0xf312938a, 0xa083ad85, 0x2b1902b4, 0xf763fba8, 0x32ceddd3, 0x79b4526f, 0x04a3ad56 } + }, { + { 0xefff17a2, 0x2f2fce3d, 0xd3700c90, 0x7ee9eb35, 0x5ef6198c, 0xbdc9bb0a, 0x26a22d3c, 0x300b2fb8 }, + { 0x81a4d10d, 0xa5e708c5, 0x2dce5f47, 0xaa2012a0, 0xa9ae2095, 0x1eeb4b4d, 0x457aa9d9, 0xeb1ee001 }, + { 0x342eecc2, 0xb5c66a57, 0x0c4ee139, 0x8793343d, 0xa4d8642b, 0x833284c5, 0xabe83fbb, 0x11f08d72 }, + { 0x4fc2206b, 0x41c7b511, 0xf05cc17b, 0x528ffd59, 0x062c9124, 0xbf03c9d4, 0xd978af38, 0x8d0d85ea }, + { 0x87b8ba22, 0xd91e6a06, 0x6169070d, 0xc50f39fe, 0xd270229f, 0x1d72f559, 0x7d0a1762, 0x463ab03f }, + { 0xa4393a4f, 0x9987b543, 0x6f1b03ab, 0x71096fda, 0x9f6dd1d2, 0xf6abc382, 0x35815067, 0x5c365f18 }, + { 0xacdfbfbd, 0x09c57c49, 0xb1afd6ce, 0x2b5821fa, 0xe5997374, 0x35bd8649, 0x22d95b9b, 0x25f30fad } + }, { + { 0xa90802ef, 0xfbcf614d, 0x762de0e6, 0x48c13c66, 0xfa232910, 0x79599693, 0x2c2e26e7, 0xdfefa34e }, + { 0xc0dd8a96, 0x4f1aa0d6, 0x6b8b515a, 0xf27d261d, 0xbc6ee470, 0x5f85a545, 0xfea1cff4, 0xa8b192a1 }, + { 0xd30b6441, 0xb58b28bd, 0x3fac92c9, 0x52fdc9ee, 0xe5297d14, 0xcbd886a1, 0x7252175e, 0x9a165e66 }, + { 0x3dacc04f, 0x98d69b1e, 0x60881c32, 0x501798eb, 0x7184054c, 0x0eec61ae, 0x15585572, 0x7ce7bcc3 }, + { 0x26e4c3bf, 0xc3db64e9, 0x04c85398, 0xb05a43ef, 0x287760dc, 0x5f9c4fd9, 0xa9546cf3, 0xeb64d6d9 }, + { 0x9f56a099, 0xf4464509, 0x666f89fd, 0x3cf27dbc, 0xf78f4ebd, 0x15a92221, 0x1c5f18b4, 0x4ef8d6ed }, + { 0xb9032db3, 0x14df48da, 0x90822fcc, 0x34a687d3, 0xd0c9cbce, 0x49f5523f, 0x57d75028, 0x4d2b7b81 } + }, { + { 0x7a7db3d6, 0x4ce01deb, 0x8d46d28e, 0x0598389c, 0x02496d36, 0x6a946efe, 0x48d76b64, 0x0b398fdb }, + { 0x96dac371, 0xf0e94574, 0xabaeb1f3, 0x464f352e, 0xa538a1b2, 0xaf0839e8, 0x264e3def, 0x70ccb6c0 }, + { 0x8b633b83, 0x9f1fa614, 0xf229f235, 0x18968cfd, 0x1d2be847, 0x47ac9867, 0xc4f32121, 0xa08f2485 }, + { 0x9b553f9b, 0x6939d623, 0xbb578ffb, 0x3de56d02, 0x8d0288c2, 0x4295788d, 0xb53e60ea, 0xbfe08468 }, + { 0x15e12986, 0xbd19316b, 0xfd84a08e, 0x6fde5356, 0xec8dabcc, 0x78c17332, 0x46dbfd97, 0x21e6adf3 }, + { 0xdaf2f1be, 0x6d3d5236, 0x5e95911b, 0xe0571ed2, 0x402aa279, 0x04bc377f, 0xed587a14, 0x9c2db51f }, + { 0xb4a6e3b8, 0x71d06437, 0xbe20faa6, 0x1276fb1c, 0x28103b47, 0x31f900d8, 0x8494dc65, 0x994daf04 } + }, { + { 0x292eb381, 0xb7ccadef, 0x33e7512b, 0x0dfdeb69, 0xc7ee08b9, 0x39a4fbc7, 0xd764a890, 0x7ab00e4e }, + { 0xf7586ade, 0xa3b4d9dc, 0xf789c47e, 0x48beadb2, 0x8a45db69, 0x2e9b595d, 0xfff2a7fa, 0x06ffc027 }, + { 0x19009f8b, 0x88199f63, 0xc306713d, 0x54eae017, 0x7868c7c1, 0xb21b75d4, 0x2236bda7, 0x5277b103 }, + { 0x9d7f35d5, 0x10da1900, 0x79c91037, 0x9f2775fb, 0x2e45ba78, 0x92bc5da3, 0x48b1946e, 0x2b45cb34 }, + { 0x1f6d90ed, 0xaa688d80, 0xfd190719, 0xc1dcd836, 0xb7de1894, 0x5cd7e515, 0x87bb48cf, 0x94bf41c7 }, + { 0x35f36e1b, 0x0da6b6b8, 0xd381a23c, 0x60659705, 0x6c319695, 0x27279409, 0x69130c41, 0xe1fa08ff }, + { 0x8844af91, 0xf2d47dfa, 0xde6ea7b0, 0x2f156a2b, 0x86f8ec0b, 0x38f9d722, 0x7cff87e4, 0x9ab38e0e } + }, { + { 0xb01fd34c, 0x3885168b, 0xa35130d9, 0x8e01a5ca, 0xe6d2d65f, 0xc724f8a0, 0x2e0ef604, 0xfed3c171 }, + { 0x151c057c, 0x9fa733ef, 0x825ba0da, 0x6e283e59, 0x77c4880a, 0xfd107591, 0x3fb3b4e7, 0x274fed9e }, + { 0x3a32979a, 0x29a9b49f, 0xec8e3c5c, 0x3e0ef290, 0x4e3716e2, 0xbfc82d3e, 0x6c250829, 0x3abab9a7 }, + { 0x012addb9, 0x47841e2b, 0x61f0a516, 0x6ba10a6e, 0xfecba910, 0x90a3ef22, 0xfdcf969f, 0x2128f99b }, + { 0x9b81a4e9, 0x57c34d33, 0x026d2762, 0xafd4a1fa, 0x61ea2467, 0x29a81c62, 0x85350d61, 0xe2e0f0c5 }, + { 0x0bf92a10, 0x23e4f7e1, 0x975e75db, 0xb97b6285, 0x7728a26d, 0xa6525408, 0x063a2419, 0x397410be }, + { 0x4ea96c8b, 0xfa56724d, 0xff16421c, 0x7ed6477a, 0xd1e48c81, 0xdb4a93a2, 0x5c4951c3, 0xc0b4a685 } + }, { + { 0x397e460f, 0x89a93121, 0x72092100, 0xbfe312f7, 0xf1a58537, 0xa4d5dcfe, 0x37af5042, 0xf35b1b01 }, + { 0x2ff60f87, 0xfe9a309f, 0xc472ccd3, 0x8d7eeb71, 0xb3739e44, 0x1ca9869d, 0x42da241b, 0x6c858419 }, + { 0xb9d40ae5, 0x5d4e2313, 0xa9c468b0, 0x3d3ddbeb, 0x09906625, 0x50d61c42, 0x2c46d732, 0x3446aa5a }, + { 0x564aa504, 0x96b85cc6, 0x7ef4907c, 0xcd581ab9, 0x65c3841d, 0x865a4915, 0xf7ee2a16, 0x22235ea8 }, + { 0x6cd307e2, 0xb1b22b38, 0x95032608, 0x31598c90, 0xd537604d, 0x97c7e413, 0x73b456e4, 0x6a2df38c }, + { 0x58d9d79f, 0x5aa00b5b, 0x060dd287, 0xc29d346a, 0x8ca763d7, 0xf9f60c66, 0xba6b25a3, 0xa012e14f }, + { 0xe5b626d8, 0x01e19b5e, 0xcbe01ee7, 0x025d6cef, 0x03b6541e, 0x8df0d079, 0x4d4b5178, 0xe7c9c2d1 } + }, { + { 0x09b93266, 0xe2769374, 0x213ce748, 0xbdfa1677, 0x0833c4c0, 0x41241dd0, 0x5bd71904, 0xbe1be728 }, + { 0x280dfedf, 0x6c83f463, 0xba81c79f, 0x78451dfb, 0x3cd12106, 0x044baeb6, 0x77de78f8, 0x036d574c }, + { 0xbd4314fa, 0xd2fb4774, 0xa0b9198c, 0x075e9aae, 0xf99cb714, 0x06bad8ce, 0x17ac87dd, 0x6bf39045 }, + { 0x05af7421, 0x59dc4c4e, 0x66815303, 0x09410376, 0x1d71e342, 0x1a353ad2, 0x7a3196ac, 0x187fe364 }, + { 0xe600765d, 0x070cc12f, 0xd81e74d8, 0x826ee687, 0x6db09ba2, 0x6b88cec1, 0xecca0bf8, 0x0036f362 }, + { 0x5ed8ab47, 0x2fd14208, 0x5aa133bf, 0x7aa529c9, 0xbe424f8b, 0x37c853a8, 0x8afbf260, 0x1bde2671 }, + { 0x5cd6392c, 0x3cdc089a, 0x71d39600, 0x4bcc77d8, 0x0f8df2a0, 0x7566744e, 0x494c12fc, 0x387dee4a } + }, { + { 0x4f51085f, 0xf2b90e78, 0x6f68ce61, 0x1c4787f2, 0x4fbf6b17, 0x004a475a, 0xedfdd2b8, 0x3ef4e7d0 }, + { 0x003f3477, 0x6e0b73e7, 0xf67c90c9, 0x6566374a, 0x0c97fd0d, 0x8be541c5, 0xc2f93b18, 0xf55abff5 }, + { 0x4f03151d, 0x83d50b54, 0x8feae836, 0xe1a91a33, 0xeafb00d6, 0xdfea4420, 0xf9db7e56, 0xbf34289f }, + { 0x6dfb6bdd, 0xd7cc8039, 0x7b0d4aa7, 0xf2f2a14f, 0xab9dd117, 0xff4c8602, 0x9cce7b21, 0x40b2e4a9 }, + { 0x72fa24e4, 0xe2616778, 0x5c058a57, 0x00ba3342, 0x2347e305, 0x8c67fdf0, 0xb967b82a, 0x9fe9b032 }, + { 0x6f4635cc, 0x638b3c73, 0x2e4df741, 0xf7898209, 0xfb573977, 0x59145c96, 0x1af9c653, 0x7b9e3a69 }, + { 0xae9393f7, 0x21f731be, 0x21d894a3, 0x5499a86b, 0xbf841bcf, 0xe947043c, 0x2d75eb05, 0xa72f2458 } + }, { + { 0x8849feed, 0x0516788b, 0xc3ba6cab, 0x73b37f89, 0xe1c59baf, 0xb9065f21, 0x42db6705, 0x83d1eef0 }, + { 0xd6e2fbd7, 0xfa08de4d, 0x3295a08a, 0x948df703, 0xab891657, 0x0940ef31, 0x56d8465d, 0x440d4979 }, + { 0x6ba6d91c, 0x5d5a992d, 0x4089007d, 0xc20f2ad3, 0x548b65f4, 0xdbcff879, 0xe76c77b7, 0x1ad4bd47 }, + { 0xe6dbd3a4, 0x0ddc5764, 0x50227b93, 0xfc70d526, 0xa782abeb, 0xb1eacd16, 0xa6d1d6c7, 0x3eb2fc3e }, + { 0xca7f5ec6, 0x027a6535, 0xf2c08c93, 0x5ab506be, 0x1034a638, 0x91f473e6, 0xc1843ed8, 0x1900ee1f }, + { 0x7a60c3a9, 0x50a3c756, 0xfc5ad1c7, 0xfb5297ce, 0xf06994f8, 0x8736d618, 0x15973fad, 0x87288eed }, + { 0x9eb55603, 0x574a3dc8, 0x66b34637, 0xe38ada16, 0x208710ad, 0x821c2d3a, 0x4d0d95e4, 0x492d3e98 } + }, { + { 0x5c6da280, 0x7b503d23, 0x7a7ff562, 0x13eca08b, 0x9b2ec963, 0x20b5c43e, 0xb9875398, 0xd1588b1d }, + { 0x3898e3db, 0x5d0c38a5, 0xab945ab3, 0x3017f692, 0xa71d187f, 0x62a32ce9, 0xbd51abff, 0x44106aaa }, + { 0x332bbd9a, 0xbc614c8e, 0x50796b90, 0x75ad5cc0, 0xa416a2e1, 0xff24e815, 0x8b0dc6ec, 0xe49b3860 }, + { 0x2c8930f3, 0x73ff7c6d, 0xd0de16d7, 0x7a8d3740, 0xfdb757d4, 0x1f438bbc, 0x27415f95, 0x256f557b }, + { 0x8f7179e9, 0x4ac99a49, 0xcabae259, 0x8b195d21, 0xb444b039, 0xe6dc2b14, 0x3dff8dbe, 0x435c99ad }, + { 0xbde84be4, 0xa5e876ea, 0x79ffb62e, 0xb4b59c38, 0x88474d8d, 0xaaeb867e, 0x6f541557, 0xf0edbe11 }, + { 0xa9b295f7, 0xe65bbcee, 0x6a129fac, 0x2f007beb, 0xcd3dcf72, 0xf5dcc782, 0x38d93d56, 0xecd192f2 } + }, { + { 0xf9e3f55f, 0x9fbcfb77, 0x711a6f90, 0xeb9dfffe, 0x8c0b2e1f, 0x0fdc1b0a, 0xc7ff8085, 0xb8f994c9 }, + { 0xfbd63e55, 0xa26d2623, 0x65c74567, 0x3fda2143, 0x4f91bd40, 0xd183574f, 0x48d6f79c, 0x895b0dc6 }, + { 0x68b4c229, 0x1a1ccfbf, 0xb901211c, 0xb2411c8c, 0xf352f648, 0x875e1f1b, 0x15fc10cd, 0xfb8c6b28 }, + { 0x15f45949, 0x502f1ab6, 0x0c528ede, 0xd4ff8187, 0x6485d018, 0xc367d6ff, 0xe766718b, 0xd5aeb78e }, + { 0x1ab4be9a, 0xe85536f8, 0x4031015d, 0xd579d758, 0xceaa2e0d, 0xace63c6b, 0x9018cae2, 0x2a5fd965 }, + { 0xfc5471e7, 0xe66d169b, 0x98fe8a88, 0xdc3c54cd, 0xe481ae77, 0xbf3ea393, 0x110b856b, 0x825aec5c }, + { 0x714d79f9, 0x3f8328fa, 0x530498cb, 0xf76d4af6, 0x2c983912, 0x89c1f5ce, 0xd8d09111, 0xeb685633 } + }, { + { 0x2d8f63c0, 0xbe538b20, 0x48f219be, 0x62f010cd, 0xe2aa9574, 0x1bb947a3, 0xeca72434, 0x3a3e6c51 }, + { 0xd81b0439, 0x103a616d, 0x044bdfd9, 0x87261d91, 0xcfaef2b0, 0x1a9e9305, 0xd168a778, 0x042fd256 }, + { 0x6565adcb, 0x82794aed, 0x7e4288d1, 0x72106045, 0xbdea5832, 0x09d2a9d3, 0x2f19d1c7, 0xbb94dac2 }, + { 0x4b1affe2, 0xc4127dbc, 0x7d4c045e, 0x0fcddbb7, 0x4da68575, 0x8cba23ed, 0x6015087f, 0x11682c09 }, + { 0x6533bc5b, 0xd2980fad, 0xbadc2f6a, 0x9e008030, 0x47e95fb8, 0x40c381f2, 0xd44c6c4d, 0x70331467 }, + { 0xc33ea1dd, 0xc834cd9c, 0x0fe19999, 0xa813b867, 0x993eddc6, 0x9ba575ba, 0x004aa894, 0xdba239ba }, + { 0x252aa22c, 0x44c17e93, 0x44290993, 0xd9a1173c, 0xe1ad9624, 0xd807429a, 0x532cd975, 0x12e0b42e } + }, { + { 0xfdb70d4d, 0x249e6468, 0xb794eb31, 0xb4cda501, 0x05d2df03, 0x26ab2206, 0x43194da6, 0xa4892a63 }, + { 0x42db2d46, 0x53017669, 0xc77e5314, 0xa9683da9, 0xfb498122, 0xddac9a38, 0xa2d4aab4, 0x4e0122b2 }, + { 0x13967236, 0x68646a6d, 0x513d4c57, 0x1aea2842, 0x093e446c, 0x298d4327, 0x0d900798, 0x9ad6c44b }, + { 0xe91847cd, 0x3df8d5da, 0x46769a8f, 0x3ad7f4d4, 0x2dc96116, 0x547f08e8, 0x840cf77a, 0xb6f0ce2e }, + { 0xfb4ea959, 0xa67079f4, 0x21e663d1, 0x10dafde7, 0xdc0ea2d6, 0x373974ca, 0x1c1cc126, 0x6dcdc5f2 }, + { 0x6808c423, 0x6f4342bd, 0x9276497d, 0x0c7fc6ce, 0x9a9e5ae3, 0x86634270, 0xdf81f26a, 0x47d913a2 }, + { 0x64337517, 0xa3a009e5, 0x98b72802, 0x4d0035e4, 0x1715ab1c, 0xae2e2a92, 0x113b2c57, 0x9a85326c } + }, { + { 0xd301c714, 0x9b6306bc, 0xa0719561, 0x98c1c165, 0x73787133, 0xecadf261, 0x64f89540, 0x5c5fa46b }, + { 0xf565ee58, 0x05263bbd, 0x88df1939, 0xf4347f95, 0xbfcfa374, 0x583ecd77, 0x7c1bfc76, 0xe6d28c42 }, + { 0xadb4b3c0, 0x146b1371, 0x58a96e94, 0x9b000315, 0xc41f4de7, 0xea787c29, 0x30c1134d, 0x6d65f20c }, + { 0xc026d6ec, 0xe96ebb42, 0x24aba2c1, 0x650a4043, 0x9ecf024e, 0xbbaf6c1e, 0x9be6b48f, 0x89e859fe }, + { 0x51de4cbd, 0x204fc586, 0x54d88ac3, 0x2da8027e, 0x47aee04e, 0x4ed28825, 0x5d773f1d, 0xc44f931b }, + { 0xced4dd07, 0xf60b6c8e, 0x80dbcd9a, 0xa8a6a7c0, 0x2320d406, 0x99043ee5, 0xe7fb777b, 0x66e1f534 }, + { 0x6ec8e251, 0x09d9982d, 0x33699ebc, 0x631c7077, 0xd2a8af8d, 0xed7b6d3b, 0xf13e160f, 0x7c03e997 } + }, { + { 0x33c4d79e, 0x898f1b11, 0x44482aac, 0x8dacba1e, 0x41e4c65d, 0x373ce7b9, 0xcc21ed0a, 0x1425aacb }, + { 0xd42df634, 0x2c0d59c2, 0x00d29c49, 0x02711b1e, 0x033e4a85, 0x5269c575, 0x383e490f, 0xaeac042d }, + { 0x033f1689, 0xc8181373, 0x957bd9cc, 0x45b8a400, 0xb9f5ccf4, 0x3f34af98, 0xad3b249a, 0x8e096a78 }, + { 0x62144bde, 0xee9c9ee3, 0x55e7d9f4, 0x2183bea5, 0x12787270, 0x3a070f24, 0x54854d06, 0x1f230a8c }, + { 0x98c2a493, 0xade86d34, 0xc4926805, 0xd2f4047d, 0x6aac8a8b, 0x845802bd, 0x279b27ec, 0xe5b61e60 }, + { 0x24f3ca82, 0xa2d5aada, 0x9ec9c6d7, 0xdabf2c25, 0x1e210f57, 0x92ad1840, 0xdec763c3, 0x078a670d }, + { 0x7533c951, 0x4b3509f2, 0xae7b17a2, 0x7fb46453, 0x095c06cd, 0xfe0f182f, 0x3bbee6bf, 0x18a14cfe } + }, { + { 0x0e2781a1, 0xe97035be, 0x7732ac33, 0x6e02ec7a, 0x9ba7d4ab, 0x2418f146, 0xfdb027b0, 0x3f16c517 }, + { 0x076864ce, 0x94754806, 0x04edbc89, 0xf79f8406, 0xbb43b69e, 0xae037547, 0xf2bd3d49, 0xa721d01c }, + { 0xc9ff1983, 0xf2c3d29f, 0xf18dd754, 0x8f547f44, 0xcfdd1ae5, 0xe2de86e7, 0xb5a20324, 0xa4929edd }, + { 0x3a5908ce, 0x228ff251, 0xa72b0116, 0x7faf015b, 0x5e47a8e5, 0x1c1769aa, 0x2f9c2b9f, 0xfdbbba49 }, + { 0xfa194cce, 0x5e55687a, 0xa888e170, 0x5b900365, 0xab7308e9, 0x1195c7bc, 0xe7e1fd36, 0xc563c595 }, + { 0xa44757e6, 0xe4824c46, 0x8f0575aa, 0xe897ef25, 0xe36d0d97, 0x87bc45ee, 0xd12fa819, 0xfb9b89e2 }, + { 0x48b3e1fc, 0xae563712, 0x0dc01dfc, 0xa055c68f, 0x52606591, 0x9546e1ef, 0x178700a8, 0x9c87b5bb } + }, { + { 0xde4ff097, 0xb76497ad, 0x41691d4d, 0xbd4ac0df, 0xd4db2a81, 0xcc3048e1, 0x2cffe546, 0x6120d83f }, + { 0xb03b5a0e, 0x374ab1f3, 0x1b4e0c82, 0x9b0eb479, 0x6e6558e0, 0xe8b9cf4b, 0x0c436779, 0x64b4cae1 }, + { 0x2aa9eec0, 0x0419fb6a, 0xec8fc744, 0xd3b8c697, 0x24f24eee, 0xbf05ce66, 0xf6bcf4e4, 0xeafe8e61 }, + { 0x9a9dd013, 0xbfe8d389, 0x32fa363a, 0xda38d629, 0x07b584d7, 0x2a843374, 0x1b08df96, 0x415c4739 }, + { 0xd1164fd5, 0x669ab97d, 0xd1886cc9, 0xe23ba6f7, 0xd897d70a, 0x212dac1b, 0x43580802, 0xbb4b44df }, + { 0xdde96bb2, 0xa665cc57, 0xc422df91, 0x28627b38, 0xe32b9043, 0xac856b0e, 0x44d1cc14, 0xd75f6e24 }, + { 0xe5bd8a60, 0x305e17b4, 0x1f9ef0a2, 0x6ee010ed, 0xacab6d31, 0xa7bdc581, 0xa0344638, 0x792c1ab6 } + /*}, { Not enough memory for more test values + { 0x28a402a1, 0x369bdeb7, 0x4d9929e5, 0x3cfdc35b, 0x99c68de9, 0x9b6b006e, 0x3f242273, 0xcf37d576 }, + { 0x6872dd61, 0xe87e9923, 0x8e8655ab, 0x67715999, 0xa60933ca, 0x641e96e4, 0x44600c84, 0xea3a4950 }, + { 0xadd02acc, 0x35f0de97, 0xecddc84f, 0x0a9dc8c6, 0xd5b537b4, 0xf7c27994, 0x75d0b679, 0xde9b4aef }, + { 0x9d6f7170, 0x2ecd6906, 0xd37b167a, 0x225544a3, 0xea804fad, 0x8e21f9f9, 0x600cc5d9, 0x9acec1db }, + { 0x30736fdb, 0x484f20b0, 0x8f237526, 0x8e2bac97, 0xe655a922, 0xba6033b2, 0x5c12ce66, 0xfd986542 }, + { 0x3fb7d59c, 0x6a2d0274, 0xb32bb0f8, 0x66420444, 0xe02c099c, 0xcb82f762, 0xf2b0ffff, 0x39925401 }, + { 0xb4904e77, 0x6aee6579, 0x6afa1fcb, 0x16c64c1f, 0xe727f962, 0xe0eac572, 0x0889748a, 0x67f2b130 } + }, { + { 0x5a4cc087, 0xc8f6a8b0, 0x1993e8f6, 0xac9cb15f, 0x445a34d1, 0xcb11c435, 0x5eba923d, 0x2032b0f8 }, + { 0xbc3487ad, 0x248e8b06, 0x34c09be8, 0x5f02e184, 0x1e170443, 0x6dd2ec7b, 0x7692ce10, 0x16c6bf1a }, + { 0x12938c14, 0x41ddff40, 0xc2d9bb7a, 0x29039e61, 0xa5ed3581, 0xc67f062e, 0x58d10b6d, 0x6c72d42f }, + { 0xe2d58c4d, 0xeb378fc2, 0x6ba88b23, 0xa07c418f, 0x13d143d3, 0xed55b235, 0x5f84d338, 0x52e2c3db }, + { 0x69e1205f, 0x4f96c4f7, 0xf79a860c, 0xef1542ec, 0xf23440e0, 0x4c66e965, 0xd60efbbb, 0x6e8f8b92 }, + { 0x824a38a3, 0xe1eafa00, 0x154e26d6, 0x78d00313, 0x20b89e9f, 0xaa788ca9, 0x19e318de, 0x6fcbb039 }, + { 0x9c23b1b2, 0x853180ef, 0x8d2961a4, 0x4f0c4086, 0xb22be3db, 0x1e900ef0, 0x9d76df53, 0x5d4c468c } + }, { + { 0x20b627c2, 0x9be7dc8e, 0x64c974d9, 0x5d4f49d3, 0xbbb2c618, 0x8ebc012d, 0x11de15e3, 0x500c8265 }, + { 0xfb78e338, 0x58caf269, 0xb2664ca1, 0xa16ff7b9, 0xd5c2a2ea, 0x59d06298, 0xcaea674b, 0x0059ff48 }, + { 0x14bd4018, 0x24070094, 0x169f4ee8, 0x8255fe21, 0x47881c1e, 0xe205f0d3, 0xe4ad2e99, 0xb51d8e3d }, + { 0xf3dbb59c, 0x0cb4edc1, 0x275400f7, 0x98d8295e, 0xd214a339, 0x99fd8ebc, 0x8acb2217, 0xf6a68389 }, + { 0x33d7751d, 0x8fb40299, 0x2b6f32f6, 0x2b2b3692, 0xa83a6091, 0x57052ba3, 0x667f9ec4, 0xb3d2f097 }, + { 0xe37fd38e, 0x13c2b82d, 0x9d913405, 0x5d2c7a55, 0x6390a8f4, 0x9fdc5f4c, 0x853e3b1b, 0x8034410a }, + { 0xfd9edeff, 0xc62d6110, 0x31567b91, 0xc7d0527b, 0x48d0742b, 0x57b3147c, 0x8f9291e5, 0x7d82cfbf } + }, { + { 0x7c63bde3, 0xaac4548c, 0x9954854e, 0xd67f0b4c, 0x04add2ab, 0xd88a2671, 0x7f2171df, 0x0d0f23c8 }, + { 0x5cf6c809, 0xd23f9751, 0xf79294c6, 0xf6019524, 0x7aa39681, 0xb8e3d988, 0x3c8c962f, 0x5d173fd4 }, + { 0x47f3efe5, 0x6d09cd2e, 0x330a8acb, 0xcfe181d2, 0xa48d9fc6, 0x4e988ccb, 0x821f042b, 0x6b5d6c84 }, + { 0x64c52567, 0x10ef805e, 0x173e3c5e, 0x3aacf828, 0x38510c01, 0x48a7ec10, 0xa3506ab6, 0x36220329 }, + { 0x5377bb61, 0x68c1f7ee, 0xe7a81b3c, 0xb43c58f9, 0xd72cb6f9, 0xd81dea3d, 0x7ae1468b, 0x55ac4f26 }, + { 0x5f731a47, 0xe3e19cfb, 0xf45410ed, 0xfba8ccc0, 0xf0c63a7b, 0x9ce539ae, 0x37e562b8, 0x180c6b70 }, + { 0x91a3cd39, 0x5ed053af, 0x09dc142b, 0x74f4a3c1, 0xa2180c04, 0x481bfb15, 0x37bfabed, 0x062e5fe9 } + }, { + { 0x28164987, 0x3c79131e, 0xd586a38a, 0x0dcbd921, 0x11f5a23a, 0x10a64e80, 0xb232f8a4, 0x9a82c6e5 }, + { 0x7b31e67d, 0x1e818e13, 0x097cd563, 0xbe4b6ea4, 0x1d7a3f57, 0x15f686de, 0x9bce46c9, 0x760756da }, + { 0x3960cfd4, 0x75bb04c5, 0x407c84d4, 0x9c625b7e, 0x7191b584, 0xb67878c1, 0x0e1fe6f6, 0x0eb1fa47 }, + { 0x271fd0fd, 0x404080f2, 0x97009534, 0x046c3515, 0x65ab41f9, 0xeb7d7922, 0x2d6499e9, 0x9c899500 }, + { 0x419f9d54, 0x0502c3c4, 0x8149723e, 0xd7b2d502, 0x20236144, 0xaa3b83a9, 0x769631be, 0x15f1e2e0 }, + { 0x601c6fea, 0x5119d153, 0x7d992c1d, 0x94836009, 0x3e7879f0, 0x9086a342, 0x803b925a, 0x4fd645ff }, + { 0xa49bc82f, 0xe14d1519, 0x1d12d5dd, 0xab10a0bf, 0x54f5e7a3, 0x90933da3, 0x21d62740, 0x1d33d0f6 } + }, { + { 0xa36e4642, 0x48c6f79d, 0x955654f3, 0x93b8d1ea, 0x6ba29e14, 0x551ad31f, 0xa99cd6a5, 0x8ccff1ad }, + { 0xcec5d3bd, 0x788fa022, 0xa65d7f7c, 0xd3f37c9e, 0xcce12026, 0x3cd4770d, 0x6ddfea77, 0x6ad3c080 }, + { 0xe81c88a4, 0xbc7bad3b, 0x3068f251, 0x18ada085, 0xa33faaf1, 0x0b797e20, 0x7a97a834, 0x8e782d5e }, + { 0xf51dde3a, 0x6db8ee9b, 0x7aa32969, 0xf2d6eec7, 0x993273e8, 0x11db4e21, 0x7a7088ae, 0x4da2d705 }, + { 0xfc7f198b, 0x86661fe5, 0x29824ae5, 0x0bb639b1, 0xc610a7c8, 0x62a3340e, 0xf591a187, 0xe265a886 }, + { 0x5f303123, 0x47f52dec, 0x34cdd38f, 0x4c7f811a, 0xc9afc901, 0xd222f90a, 0x9e172313, 0xee1b0572 }, + { 0x4a2bcd87, 0x18e236cb, 0xe5e581cd, 0xe29a6a43, 0x6a7213b8, 0xc675d970, 0x536317bd, 0x96b8b310 } + }, { + { 0xad80bed2, 0xc2f4598d, 0x4e0e6b1a, 0x9bc787bd, 0x63150672, 0x2c364163, 0xb601596a, 0xad670a5a }, + { 0x5c818829, 0xa1a6f437, 0x8d07faf3, 0xbe095484, 0x5fcd6a0e, 0xe8153a60, 0x7ab38539, 0x2ec01d0c }, + { 0xf10716f7, 0x44fd8ad0, 0xf5eb5bd9, 0x6bf45e03, 0xb71db435, 0xf3bed1f2, 0xab5c78fb, 0xe739dff4 }, + { 0xe0442ca5, 0x6096f428, 0xae68050b, 0x5040c22c, 0x38145576, 0x879ef275, 0x16ee9eb4, 0xf3c87da4 }, + { 0xf8fcd22d, 0xa7b97f06, 0xc24747b0, 0xe551e501, 0x5d5ed8b0, 0xf34f091e, 0xcafe3402, 0xb13219e3 }, + { 0x6310481d, 0x48a0e061, 0xc634d04a, 0x194efd1d, 0x4bd0f859, 0xae14caf3, 0xaccc7f18, 0x6f07f30d }, + { 0xffce35a4, 0x10d857a7, 0x1e9e7485, 0x97b41d7b, 0x69d5f637, 0x82789997, 0xa51b2cf6, 0x02014738 } + }, { + { 0xdec05e64, 0xa4305211, 0x7308530c, 0xd0382cb5, 0xa921a607, 0xc7562dc3, 0xb1411342, 0xdd40222a }, + { 0x972caa85, 0xf01a419e, 0xfd78e685, 0x03ba1374, 0x8f9bfc0f, 0x261a4f34, 0xb49fd99d, 0x24859598 }, + { 0xf016dab1, 0x4c50d39e, 0xfb46c5b7, 0x249fea28, 0xb05e1503, 0x0e350a32, 0x2dcf1792, 0x61a75e0a }, + { 0x7fd4d35a, 0xab08244b, 0xbbcd7d53, 0xd42b211d, 0x2334426b, 0x9a8be30f, 0xe15e1b27, 0x6700bb18 }, + { 0x81e463e1, 0x637b4877, 0xb6047da1, 0xb05fd377, 0x96a012ff, 0xbb5379f1, 0xac42f5c8, 0x5dba484c }, + { 0x0714b7ef, 0xba6f8b10, 0xf245d72b, 0x1ec0e0a2, 0xa30de08d, 0x606bc646, 0x7eb95591, 0x6cf9c5e8 }, + { 0xf15d21fe, 0xee367937, 0x37ca63eb, 0x38cb30dd, 0xb5edebde, 0xb6355078, 0xbb62f2ee, 0xdd48e81d } + }, { + { 0x321bf4dc, 0x678db650, 0xd85439e4, 0x7b6aea4f, 0xc5625ee3, 0xab2b9fca, 0xb9e6140d, 0xfbe4313b }, + { 0x077bcae6, 0x63858c36, 0x2baa791d, 0xc55acb58, 0x843aa75c, 0x20b25d1d, 0x86778175, 0xe4454679 }, + { 0xddfb82f4, 0xcf34b84e, 0xbc573a41, 0x8684bb95, 0x9165bee9, 0x01e96a7b, 0xdd8a5c36, 0x9bc63a4b }, + { 0x175f0270, 0x85daa416, 0x8ee7aea3, 0xfa9b3ce0, 0x9b300d7a, 0xda4ef944, 0xfc1e20b8, 0xb33f81df }, + { 0x2346a3ca, 0x842c59ec, 0xdae0db05, 0xefe15ef0, 0x2cb166d5, 0xb7d24593, 0x7e2e55aa, 0x8aba26dc }, + { 0x6c7c1a83, 0x1e49e02d, 0x7a3f46c2, 0x86e7d519, 0x255db209, 0xb47bec27, 0x69be2738, 0x982cb66d }, + { 0x9798ef0d, 0x216cf79a, 0xc8c8e509, 0xc73f1221, 0x684b472f, 0x8f58a334, 0x3d97a615, 0x4d6508bd } + }, { + { 0xa6333ddd, 0x0fe1133e, 0x690a745d, 0x62d04786, 0x50809359, 0xa30d43f2, 0x37a3078c, 0x31ad4ced }, + { 0x54dc6b53, 0xaa5dd46d, 0xef5f2911, 0x0818c5ca, 0x36c062aa, 0x044f58d4, 0x95dde443, 0x8004fc36 }, + { 0xd02db1b3, 0x1aac3560, 0x0a8deed4, 0x80e1145a, 0xbe53d775, 0xc6fe4194, 0x324c5b8d, 0x280dd8f8 }, + { 0x8e1dba30, 0x1d3218a2, 0xc63f7a0d, 0xc5be3354, 0x216a2233, 0x46508c32, 0x4762d05c, 0xf447d7dc }, + { 0x287d15ec, 0x5718b4d8, 0x890dea30, 0x918a4efd, 0x0b7d66b0, 0x26d2760c, 0xb003f19b, 0xa20a16af }, + { 0x0a67c579, 0xf114428b, 0x30826097, 0xa82d8115, 0x42e433da, 0x79952e07, 0xf761af54, 0x2509ce73 }, + { 0xe06a143c, 0x7671a5c7, 0x57ad02b0, 0x1e7922b3, 0xa79d9cf2, 0x23c7d736, 0x27a71a9f, 0xf20a7a98 } + }, { + { 0x85ab3b20, 0xcda3876c, 0xe3eb55a6, 0xa78bd139, 0x3eda09c0, 0x3f3cec06, 0x1ecee3b7, 0xa6ea50d1 }, + { 0x1fea79d6, 0x6a8467c1, 0x3607cbbe, 0x9667f95a, 0xef3c2d31, 0x81f98f91, 0x7ce8153d, 0x4c72445f }, + { 0x921d1a7b, 0xc675bde6, 0x60c66243, 0x7eaa7a71, 0x6c23d2ea, 0x1d734a2f, 0xd453c205, 0xb981e1c1 }, + { 0xea8ad813, 0x9cf1aafe, 0x1c0e04a7, 0x3d925777, 0x621348ba, 0x2df1c440, 0xee62c9aa, 0x3d927ddf }, + { 0x34b4ed37, 0x5bb5d025, 0x8c3af0c9, 0x38085638, 0xa5e93103, 0xd89a0a69, 0xc26f52e9, 0xa146e16e }, + { 0xec07d11b, 0xf96005cb, 0x9b88036c, 0x9bf2d66b, 0xba9d4dd1, 0x5cf3afda, 0x36a2c753, 0xa2b39387 }, + { 0xc9681d87, 0xf2606e31, 0x1cad2ccb, 0x4c46cc46, 0xbc055d18, 0x76477020, 0xf36b1469, 0x222bd6a8 } + }, { + { 0xf01f1457, 0xf38b5224, 0x938e42d0, 0x5f4b2a89, 0x97f7b8e2, 0x6af0624a, 0xdc87e23b, 0x78351bcc }, + { 0x42d5a5c9, 0x63244e3b, 0x27cabb02, 0x68dcecd9, 0xb6b45aae, 0xb9e29eff, 0x783d06b0, 0x5f00cd05 }, + { 0x8822ba95, 0xb1c77282, 0xa7528cbf, 0x5b642abe, 0x11a09888, 0xe3bf0072, 0x6f195fc5, 0x1c5a644a }, + { 0xdad7cadb, 0x236ab60e, 0xb12b2346, 0x5ef033c9, 0xed8442c2, 0x0caa95cf, 0x1de955f2, 0x746e58f8 }, + { 0x5b80c6a6, 0xdf45e092, 0x000098e8, 0x567a2745, 0x637947a9, 0xaa28306c, 0x17414875, 0x7a116532 }, + { 0xa82a0347, 0x26da21cd, 0xe887b642, 0x03a2d7cc, 0x7b89910b, 0xb41a2258, 0x749c621f, 0x8f9580a5 }, + { 0x0dbbd2d7, 0xd4d781b2, 0xe3e8cd9a, 0xf38d6295, 0xf19f54cf, 0x43f2a094, 0x07baf4df, 0x20ba116f } + }, { + { 0x58e6a0ac, 0x5dc19add, 0x888009e9, 0x1dd6e61a, 0x56712abd, 0xdff594cc, 0xf87aeb88, 0x53a8fa9f }, + { 0x289deff2, 0x9ccaf9f0, 0xee65aa45, 0x45d0d0ca, 0x2c200e70, 0x76b2e8a5, 0x00a36a1c, 0x85e09bd0 }, + { 0xb144adcf, 0xb57dc77d, 0x997bbd40, 0x29fa695a, 0xa9bd6eb5, 0x197994fb, 0x545a1fb1, 0x6acbdf57 }, + { 0x0b14bff6, 0xe3fde283, 0x421a86b3, 0x84a2ed64, 0x4903f0cd, 0x4882a5b0, 0x99dc11a5, 0x7cd4ba5d }, + { 0x5384a828, 0x7f092d00, 0xcbf8bb8f, 0x875822bc, 0x78bb00d4, 0x3684b2f3, 0x639cc3bd, 0x8c66e4ba }, + { 0x6c1cdd98, 0x1822b0c9, 0x325de314, 0xc9943d1b, 0x7f44eb80, 0x51f99a28, 0x799bad7b, 0x2c775463 }, + { 0x9b9db476, 0x38529ecc, 0xe2b08177, 0xe87f3a4b, 0x434f17d6, 0xd60a939d, 0x987d398c, 0xf09c407c } + }, { + { 0x85a57b94, 0x96e34ac3, 0x7c1fcb0e, 0xcec52171, 0x6851d813, 0x24406843, 0xe4e27111, 0x68e8ed5c }, + { 0xe9d17c83, 0xb192f6fd, 0x222db69c, 0x1e76270f, 0xc0481209, 0x302b015d, 0x09c03864, 0xef48b70e }, + { 0x2e9c8690, 0xdbbd87ca, 0xb0bf73f3, 0xe68b1bd3, 0xf91e354c, 0xd21a5bda, 0x6d40f59d, 0x2f709c0e }, + { 0xa9e83d82, 0xcccc43c1, 0xbb82d5a7, 0x5e0d485e, 0x351b6e06, 0xa1b01407, 0x1d0db76f, 0x73b99761 }, + { 0x4aac3b84, 0x29a2d54f, 0x4da423f6, 0x9d89d842, 0x3e999040, 0x2e7c2611, 0xfe378ca4, 0x442800a5 }, + { 0x260d5c19, 0x76eb2a52, 0x4a5b47ff, 0xf7e6fabb, 0xd2d7860f, 0xe6abe0ea, 0xafcdd3d6, 0x681ea9a9 }, + { 0x68720507, 0x2a37b22c, 0xff8984a3, 0xf7e0d12e, 0x4df3f317, 0x7040e3cb, 0xfacd634d, 0x796c96a2 } + }, { + { 0x5352f0a5, 0x55ad43e3, 0x06bf6b14, 0x99b934a9, 0x3a6cbadf, 0x1cc14e10, 0x59350db9, 0x146f6718 }, + { 0x9da0de05, 0x1d33e78b, 0x8e1d427a, 0x30c4bd07, 0xf26567cc, 0xbf5547f5, 0x9dcc1f2c, 0x920485a1 }, + { 0xd38119ca, 0xe9db0638, 0x6ddd7130, 0x5e3f5363, 0xf7d34a3a, 0x63f0143c, 0x3a76f6ea, 0xfac3efc0 }, + { 0x877d6bbf, 0xf15c6e46, 0x412c55cb, 0xd24f3b80, 0x6f6d20a2, 0x55428f45, 0xeb4ff919, 0x38049698 }, + { 0x482afc56, 0x67146e20, 0xdf564d52, 0xee6b3feb, 0x944c2574, 0x40708097, 0x0219eafd, 0x4fdcd685 }, + { 0x2b8fea18, 0xb6299087, 0x9558121f, 0x8bdf9ac2, 0x2b5f47d8, 0x5facf5c2, 0x67fa9cd1, 0x0eb09dd7 }, + { 0x61cd8815, 0x09b4cb25, 0x404633df, 0xc5d34a09, 0xf1ead406, 0x9b7808dd, 0x6e442c61, 0xf87fe2c0 } + }, { + { 0x9ba10f2d, 0xddba6810, 0xc6e336c0, 0xcc0e40fb, 0x4a3bf613, 0xeabe6581, 0xadfac597, 0x0ef51d0d }, + { 0x136a13b1, 0x7cf08dab, 0x35cc34b4, 0x882e8b95, 0x12866965, 0x91042194, 0xcff4fb1f, 0xd9e7137c }, + { 0xf2103c58, 0x91dde4d5, 0x20c6244b, 0x2b2c026e, 0xd668b18a, 0x68e4f0cf, 0xe9937ae0, 0x54bd314c }, + { 0x10095a94, 0xee6ac09f, 0xd4869250, 0x59df6838, 0xef6b63aa, 0xca0e62f9, 0xffc6516f, 0x3e001f77 }, + { 0x6d5ae56e, 0x9ce44f0a, 0x7f224c8b, 0xdc153a44, 0xf2000c2d, 0x4ebe91d6, 0x4053387f, 0x3296f38e }, + { 0x55e286e4, 0xa2320b46, 0x4c196112, 0x43f1de21, 0x6c7429be, 0x007408ba, 0x5773d9dd, 0x91e9cc9e }, + { 0x3b06341c, 0xead96907, 0x30eedea2, 0xd69c6d23, 0x302f6f92, 0x052a5e79, 0x183fc11e, 0xb24a1d78 } + }, { + { 0xda957c47, 0x5dcbbff8, 0xc7994c1d, 0xef6aa305, 0xcc8adc07, 0x2055ef7b, 0xcfab4417, 0xab2a094c }, + { 0x86d1cd26, 0x834de2b5, 0xa7e5c491, 0x611e130b, 0xe8b6197b, 0x73c03065, 0x53b2b4a3, 0x2cfff0d2 }, + { 0x8a0f2ef0, 0x1d8a0aab, 0xc09c0529, 0xf16f58d6, 0x8255bb71, 0xcba02e81, 0x50da60d3, 0x4020039a }, + { 0x2918bfbf, 0xb4974ba9, 0x0b671f29, 0xaf45f2ce, 0xf95e9145, 0xcaf7bc2e, 0x6315709e, 0x7d433a11 }, + { 0xb607f4dc, 0x2d28a67f, 0xe054622d, 0xfd7ad1e8, 0x6fff4cc5, 0xb817dfe3, 0x7f610798, 0xc2a04709 }, + { 0xd6709af6, 0xafc3d127, 0x13c73760, 0x87ba5160, 0xfb2f15ed, 0x16845096, 0x082587a9, 0xd8163ac4 }, + { 0x7760ac0d, 0xff325b36, 0x06187a59, 0xe30aed0c, 0x6ad23dc7, 0xed972adf, 0xb43917a6, 0x75e08234 } + }, { + { 0x47425229, 0xb152561c, 0x424c8f3e, 0xbebff689, 0x5aa3745e, 0xc887858a, 0x0a80522d, 0xb07417a2 }, + { 0x964a13ec, 0x7a38907b, 0x982b2e8a, 0x556372c2, 0xa6535de2, 0x9183958d, 0x41393d50, 0x3ae0ff85 }, + { 0xb7751cba, 0xe3158d80, 0xce83731b, 0x08fea730, 0xec4329a7, 0xc56417c1, 0x7814056f, 0x24a5b025 }, + { 0x92ccdf79, 0x57948abd, 0x6da546bb, 0x97387365, 0x6372286f, 0xab4ec166, 0xf41327d8, 0x99145807 }, + { 0x90477a42, 0x2fb03ec6, 0xae58212e, 0x7f2fbfec, 0x4551b819, 0x2a31a33d, 0xd4a2b6d2, 0x885f3a45 }, + { 0xe691d16b, 0xff1d8f20, 0xb5c52fe2, 0xd7d8d5aa, 0x0a4e63e8, 0x5055221d, 0xc1667dc8, 0x7507670e }, + { 0xc8c64690, 0xf96e7838, 0x7e2c9296, 0xab5d22df, 0x3e46e338, 0xfaf7e6d0, 0x9d002e41, 0xfcd23f54 } + }, { + { 0xf35d4936, 0x665f0735, 0x1bcd71c3, 0x5a6e41bf, 0x12b48199, 0xed9b7113, 0x261ea2a7, 0xf4b6742e }, + { 0x0f8e6f12, 0x9304c346, 0x5a93e4c1, 0x07e2093b, 0xbcf80811, 0x3fec2744, 0xd2676f19, 0x04eab869 }, + { 0x7c00eb7a, 0xdd7dec8b, 0x985bf83f, 0xc0de6b34, 0x30ff77c1, 0x998ac2ae, 0x8df4d5f7, 0xd1d47538 }, + { 0x274b0adf, 0xb5cd2f9f, 0xaa995e75, 0x70c443d3, 0xd0fe6e3c, 0x5db8f6c8, 0xa36e9826, 0x29d198c4 }, + { 0x36594cd4, 0x63117bef, 0x9bc7ab17, 0x99a59efa, 0xb4563e58, 0x1d83ae87, 0x62adcb06, 0x685d0aaa }, + { 0xe4f93710, 0x95348ee4, 0x5027940c, 0x96b83cbf, 0x801fa811, 0x46032811, 0x7249910e, 0x0878692c }, + { 0x14bf9817, 0xd127a27c, 0xf2975482, 0xeda61089, 0x3f017d6b, 0x415fe209, 0x44e4b5d4, 0x108dd3ba } + }, { + { 0x9ca4a419, 0xbd205087, 0x67e09af4, 0x413207b2, 0xb12fa7ab, 0x993be0b7, 0xf311f156, 0x56c54bd5 }, + { 0x5e86639d, 0xa3e6476a, 0x3fcc442e, 0x0dcf9138, 0x57b35b7f, 0x11185891, 0x8f835e60, 0x79b6bcb1 }, + { 0x26262fdc, 0xb1a499db, 0xa2bfe1e3, 0x552e6f66, 0x7939bd03, 0xc3eb7083, 0x66ea8877, 0x22151649 }, + { 0xc7f00291, 0x9801f66e, 0xa90c690c, 0x2f8e37c8, 0xe12b4fb6, 0xc94fe0c1, 0x3b1eb773, 0x41323147 }, + { 0x9afc5c6c, 0xb82cea10, 0xbd95f5bf, 0x4616565c, 0xc306b422, 0xbc312687, 0x10df3428, 0x91f6fda4 }, + { 0xdf566054, 0xd69362d4, 0x74bc3bad, 0x0c48ac9a, 0x6ebd7fb6, 0xd57b706d, 0x38520c15, 0xbf2dd2a7 }, + { 0x430fc0a0, 0xbf37d40b, 0x0af82928, 0x33df1e63, 0xec5fc8f5, 0x9ed64256, 0xee78a46a, 0xf6ffe8fb } + }, { + { 0x2aeb1de6, 0x443aceb9, 0x97a4ba87, 0x7fdb5be8, 0xfda17dba, 0x43bfdc7b, 0xc7435808, 0xf56491a9 }, + { 0x81961723, 0xd9b859a9, 0x94a90e21, 0xe1941143, 0xf4c3f277, 0x83e8cb49, 0xeb919a5d, 0xc7344af0 }, + { 0xb9183a6f, 0x91c76f0b, 0x2bab1eff, 0x7bbb4384, 0x1ee2e225, 0xe5324e3f, 0x49e0f743, 0x699dcfca }, + { 0xa72d9c94, 0xb82fe67b, 0x5260f168, 0xd7d549cb, 0xf5f4297d, 0x19c5e734, 0x13cb084b, 0xd92902ca }, + { 0x0abc9207, 0xb9aa8e11, 0x98267f2e, 0x047679cf, 0xc1629efb, 0x112546e4, 0xa6962729, 0x204d1b1d }, + { 0xdfccb5b1, 0xb0d3511e, 0x97f071c5, 0xff3ffc4e, 0x78aac259, 0xa62c0afd, 0x7e85609d, 0xc8f54f39 }, + { 0xa1118851, 0x0efdd2d0, 0x05e6797d, 0x3516c425, 0xe10e036b, 0x8c0bbce9, 0x6cc72e90, 0x72fcd49c } + }, { + { 0x471c0c97, 0xd2e41f86, 0xea6d86ad, 0x68f2fb9a, 0x76bcd3d0, 0x0990222e, 0xaf654d4c, 0x592f2c03 }, + { 0x7bd3a2d4, 0x79376fe0, 0x6cfd5f8c, 0x35f9db39, 0x3c49abb5, 0x822f0d7d, 0xb4b39340, 0x6ac0faaa }, + { 0x1e9744ab, 0x054e047c, 0xb6a7b851, 0x2ee0cd9d, 0x78d17a51, 0x4cd4430f, 0x237fd847, 0x849fcbe5 }, + { 0xb0c891ca, 0x6c8d5bfb, 0x3b0a93ed, 0xc7af0a71, 0xff2465f3, 0xef2a126c, 0x5ee2020c, 0x3b173750 }, + { 0x0dbac1e9, 0x450b4dac, 0xe08aeed9, 0x38991ff5, 0x6a552d43, 0x54b62def, 0x7c02b4e6, 0x29f22f0f }, + { 0x015b4120, 0x3bc1586a, 0x5691b289, 0x67477921, 0xd653ee32, 0x772b4273, 0xec197c81, 0x3e129524 }, + { 0xc5c00da5, 0x0df9326c, 0x433929c3, 0x6f5890a2, 0x7290f5a8, 0xd81844a2, 0xf27efcfd, 0x126566c6 } + }, { + { 0x2cbcb9ea, 0x8b5f07ea, 0xbe48fbe5, 0x0f7db757, 0xb222db10, 0xdba776d4, 0x18a96d40, 0x971f3692 }, + { 0xed073116, 0x7357cabf, 0x067b5d3e, 0xfe3cb788, 0x58aa92ae, 0x5b798361, 0x32097de0, 0xd06717c5 }, + { 0x92ee08ed, 0x18760464, 0x754f8f42, 0xda1dd7ff, 0x19342cb1, 0x5eb6b2a5, 0x81b07d3c, 0xaea3de22 }, + { 0x3571beb9, 0x2276e664, 0xacc949bd, 0xce5ca268, 0xc56df87b, 0x82bf433f, 0x669be89b, 0x4fa11773 }, + { 0x1873eacd, 0xb73a9a5b, 0x592c8e91, 0x2654636e, 0xbc6d1a47, 0x7afdcb9d, 0xea020c0e, 0x1efec521 }, + { 0xcef4c7bd, 0x67df729d, 0x0addb2f3, 0xa3c0ec1a, 0xc97dbc57, 0x40b6eb21, 0x47507cf5, 0x1018a2bf }, + { 0x9a4e2559, 0x7bbdf790, 0xe67e693c, 0xd9dece5d, 0xcbf89212, 0x05182c20, 0x44d35392, 0x0831858d } + }, { + { 0x92bf7ad8, 0xac7d3871, 0x79f9506f, 0x5a520b2d, 0x6d684da3, 0x751eaf8c, 0x1f3e81b0, 0x6049f480 }, + { 0x1c05bc11, 0xc9773c3b, 0x5985a938, 0x8ff45a03, 0x6818d96f, 0xf9ca15b7, 0x1a2cac49, 0x6f48e280 }, + { 0x738b797a, 0x573546d5, 0x9ea830f5, 0x3d4a8258, 0x08c9d14e, 0x588b5783, 0xf0aa4a89, 0x206efda7 }, + { 0x9055cb57, 0xdeca9dc8, 0xb851d1c3, 0x973a947f, 0x2b95673d, 0x8ef5fc5a, 0x65a6210e, 0x46fceb43 }, + { 0x03c863a4, 0x49050543, 0x9f6b31b9, 0xa18686e8, 0xe892f2da, 0x4fe3a2e5, 0x2d42a25a, 0xb05e7117 }, + { 0x49bfd4dc, 0xb9e76ab8, 0x2ccaf142, 0xf6e658ed, 0xd8da5bc3, 0x43c590cc, 0x23ee8dc6, 0x847deefa }, + { 0xaf873d1d, 0xeec773e6, 0x367aa3ff, 0x631c11b8, 0x1f0c4164, 0xb1ea88ef, 0x22667a9c, 0x4f3058af } + }, { + { 0x962f57ea, 0x81e5fc32, 0x0081c8c4, 0xadc7fee7, 0xba552a5f, 0x0474668e, 0x15a30945, 0xe96d0d57 }, + { 0x42ba07b4, 0x01b6ba42, 0xe9ce2618, 0x8974c5ae, 0x703f4b0b, 0xfae91532, 0xc0d2f5d4, 0x5b2597ef }, + { 0xadce03e1, 0xfaf36703, 0x382ab5c1, 0xf1840c65, 0x28f76134, 0xc6a72567, 0xbad3e27a, 0x35b24ed7 }, + { 0x5ff63ee3, 0xdbf4abd6, 0x340396a7, 0x8da6e184, 0x84f18556, 0x83d2ef1f, 0xd6318694, 0x01e66e20 }, + { 0x657c0e18, 0xe8e96d61, 0xfb5ae696, 0x31e9dcfa, 0xb3551eea, 0x4ed0254d, 0xd5a176e5, 0x21f6af2f }, + { 0x55d573ce, 0x10605518, 0xde2ec80e, 0x98aba416, 0x37642d6e, 0x71cd5677, 0x71d8a8c8, 0x9e026d46 }, + { 0xe78e54d1, 0xd5f17dee, 0xe021ef02, 0x1b40b24a, 0x2f11ba75, 0x335fa32b, 0x2e8fd8f4, 0x237f8ba0 } + }, { + { 0xed0d1650, 0xea2bae2a, 0x634c7bea, 0x6a3f1453, 0x7a9b247e, 0xf9bdd947, 0x0fcba804, 0x9b0d0cd6 }, + { 0x9b71b442, 0xb740ef03, 0xcaa45dd8, 0x333b16d5, 0x6940cee0, 0x0a2efb3e, 0xa1ebb1a7, 0x465f93cd }, + { 0x0253e6b5, 0xca44e155, 0xf89d1f3f, 0x1bf46b6d, 0x8266ad12, 0xa45e0b16, 0xb9488761, 0x8ba01181 }, + { 0xdc95381d, 0xd26cc252, 0x0a2b707f, 0xc0e0cb57, 0x9ee4eeae, 0x0a9df423, 0x400b1fee, 0x650a95e9 }, + { 0x61cb3f98, 0x08ee7eed, 0x71cd9edf, 0x5d924366, 0xed6915c5, 0xf6ed6c49, 0xd18c26b8, 0xae28feec }, + { 0xdd899b79, 0x9eee5680, 0xc1183ea5, 0x9646b52a, 0x8c11f519, 0x3decaa47, 0x6071c964, 0xc27ded8f }, + { 0xe4a5b241, 0x851bca37, 0xc6aa5428, 0x79831ce3, 0xd22215cd, 0x38d58f7a, 0x08df4817, 0x85fe05b3 } + }, { + { 0x11f97d16, 0xb9d32fd7, 0xf4c7861e, 0x39b3be77, 0x3d9195dc, 0xcdca9c19, 0x6949650f, 0x3f39d9fc }, + { 0xaffd5f80, 0x9ea527f9, 0x059e0467, 0xe8e176f1, 0xccccff47, 0xcb3045f7, 0x45dd9987, 0x92b3eef5 }, + { 0x56d610d4, 0x25a5e55b, 0x7dd274f1, 0x5206ac55, 0xa896fa4b, 0xeb1ce606, 0x6b62ca4f, 0x50e0f6c9 }, + { 0x22d55988, 0xaf4dac6a, 0x39fbf645, 0x68edce96, 0xd85ad56c, 0xcae1ba73, 0x01860e94, 0x678203f3 }, + { 0x4dea4902, 0x3f8c687d, 0x93c3baec, 0x387b7671, 0xd5cb1818, 0xaa45d1e6, 0x5a652f0f, 0x851a2d41 }, + { 0xce2e1a8d, 0x40213d61, 0xe1cb5c2e, 0xee2dfdb7, 0x1b4aa378, 0xc0daf98b, 0x797c4053, 0xbef4a202 }, + { 0xfcc877be, 0x02e4b377, 0xf2cf8150, 0xe72206d5, 0x9717a04e, 0xbc7369f3, 0x37d99625, 0xbbb3af4d } + }, { + { 0x7b817df7, 0x8540e578, 0x37a88677, 0x9ac5c9a9, 0x9a2cea74, 0x1077a7d5, 0xf74d5738, 0xcd49e631 }, + { 0xc887a1d4, 0xebcfc759, 0x840c3b94, 0x9d7c5067, 0xbc8d4139, 0x165dbe1d, 0xb20727aa, 0x048b6d62 }, + { 0x48291e94, 0x8af5b98e, 0x6b7a9afd, 0x45e28fd8, 0xed98dbea, 0x67aa3b1d, 0xea306382, 0x9cef4397 }, + { 0xe2577d82, 0x3e4a6a53, 0x122fb3cf, 0x34cdd88f, 0x07fac0c8, 0x688702bc, 0x6715187c, 0x870471ed }, + { 0x8f5993ac, 0x22d7aad0, 0x58de6d25, 0x76fc4098, 0x18d9d372, 0x945b97e8, 0x3e3140a9, 0x5034761e }, + { 0xd8a83ad4, 0x3f81fe2c, 0x6e2ee5c0, 0x6f18c51b, 0xdec7eb75, 0x433a442d, 0x2e97537c, 0x5c97338e }, + { 0xa3401399, 0x4099382d, 0xa315b75c, 0xa1af232a, 0xc06804b4, 0xa5a1ecf5, 0xb7502e4c, 0x4af05d96 } + }, { + { 0xa4292161, 0x64de8a51, 0x8b32577a, 0xb69defe7, 0xb3f258fb, 0x3b507f07, 0x3d34d323, 0xb72be5a9 }, + { 0x7d2b9c9c, 0x07b0618a, 0x92b9a7b4, 0xb8073cca, 0x622df393, 0x04ca0a0d, 0x5cb29f45, 0x65a800c4 }, + { 0xafd63ad4, 0xf3b45556, 0x3e5f9f0c, 0x596d7f10, 0x1e445890, 0xdc732db8, 0xa1457516, 0x2c11685c }, + { 0x106d1adb, 0xbfd505ac, 0xd17d09c8, 0xcff3de70, 0x5ed21587, 0x26601bc7, 0x266c8357, 0x38e427c2 }, + { 0xab583ac8, 0x18e6a293, 0x2a4b1251, 0x683932d2, 0x1d191544, 0x25ee6dbe, 0x686c3985, 0xdf85767a }, + { 0x07d9277b, 0xf431323e, 0x23e27bed, 0xd57330bd, 0xd3a5a46a, 0xc40134a0, 0xb51a1916, 0x920d225f }, + { 0xff6a045f, 0x0219c728, 0xd19c51ca, 0x90d6f91e, 0x008df777, 0xdcbb0ca5, 0x351b7ccd, 0xa17de1be } + }, { + { 0x61c98b18, 0x4ff26086, 0x9f69f5de, 0xf9ad9780, 0xb3c863df, 0x16b6b073, 0xa1261d6a, 0x61ea337c }, + { 0xfa3d55c1, 0x6deb841e, 0xd18b3890, 0x6eb95aef, 0x46758d3f, 0x95c054b0, 0x169c1ea1, 0x8c9f7b67 }, + { 0xca4c006e, 0xb8f74551, 0x232cde8b, 0x45e3386c, 0xa53e5941, 0xf1a18ad1, 0x3d65cbd3, 0x71aa1845 }, + { 0x7a5a38c1, 0xc71ea8f4, 0x2eb7c43d, 0x8231f36f, 0x30d09ec6, 0x108d8080, 0xc1168829, 0x7fe7c39b }, + { 0xff16554e, 0x3ab8ca07, 0xbbe6872f, 0x569c05ae, 0x7d82e670, 0x73a3e51d, 0xb46e72e4, 0x5f4bde67 }, + { 0x6ddaa6b7, 0xddf2adba, 0x55094566, 0x12f25856, 0xbc6068b8, 0x0706c7d2, 0x18190f2c, 0x46248f58 }, + { 0x1c720640, 0x821f0744, 0xf950970f, 0x2b9d5a7d, 0xce4f69ae, 0x99594043, 0xc095e4c7, 0xfabaf4e9 } + }, { + { 0x2ca85619, 0x35b831f3, 0x359db80d, 0x1d390bc3, 0x787df3c4, 0x0083aa53, 0x4ea26f41, 0xdeafe94c }, + { 0x34d01dc5, 0x0818d2c1, 0xd62430a2, 0x17369f1f, 0x433db5dd, 0x017c1bc3, 0x4acd2660, 0x9aa96604 }, + { 0x8692005a, 0x639dc9c2, 0x6183c4c2, 0xc44f9407, 0xeacb0c33, 0x5008b57f, 0xa399ae39, 0xc4a9d096 }, + { 0xce140b42, 0xcb62b5f8, 0xc49ab307, 0x09f39be2, 0xea8b2591, 0xd9dffaf0, 0x66a9fa58, 0xac6758fc }, + { 0xddc748c5, 0xd5a8a65d, 0x0ffb9a2f, 0x4181a5b6, 0x78754b79, 0xcef03b2f, 0x65868ec7, 0x9f5b6485 }, + { 0x090377f1, 0xefe4e64d, 0x8f758f90, 0xc62973bd, 0xaa48dc9f, 0x072c9b20, 0xc13b0d8e, 0x89f4518e }, + { 0xc6406788, 0x020f2cf5, 0xa59b4d0e, 0x938a2230, 0x49f79f50, 0x90f2e0c8, 0xcfb38e27, 0x53887c8e } + }, { + { 0x0e8fedc6, 0x6f70a211, 0xde1fa17e, 0x600ab256, 0xf3f84ddd, 0xc2ec2357, 0x3f079f76, 0x3ea773ec }, + { 0xc4d854bf, 0xf2dbe1aa, 0x6a339ef7, 0xbc001595, 0xe2187ebc, 0xb6c3d803, 0xaa303fb5, 0xfc6aee1c }, + { 0x7cc4a485, 0x32966e96, 0x1c24d146, 0xb8c2fbfe, 0x1df0e50f, 0x5f25ae39, 0x17947bb1, 0xe769787e }, + { 0xa0a47d6f, 0x5ba5e912, 0x351f2987, 0xdf007baa, 0x179bdfd8, 0xe2d10433, 0xc46bf7f2, 0x8f1661cd }, + { 0x1081d07f, 0xec89c7ce, 0xff7bd73c, 0x443ca90e, 0x62ca731f, 0x8cdade11, 0x3c2f428a, 0xc8f6a3b5 }, + { 0x29e1b992, 0x36cb06cf, 0x09a6d481, 0x1a5f36ee, 0xa9be4195, 0xbc9d79ef, 0xfb5d9cc5, 0xd5f1a502 }, + { 0x4efb9d6e, 0x6cd3c3d1, 0xd7a571ad, 0x094fa1cd, 0x215f0d89, 0x7ee33093, 0x211569ce, 0xe0978f7f } + }, { + { 0xf2e250a6, 0x644dc9c8, 0x03024346, 0xb4bc6847, 0xcc69fe0e, 0x02e802b0, 0x596a3d96, 0xca7ea4f8 }, + { 0x78431789, 0x2ac18055, 0x8f33a60f, 0x7e4d6ee7, 0x5f4381de, 0xcac16f1a, 0x4b181312, 0xdd2f7c1a }, + { 0xc17902fe, 0x8bb54080, 0xb2d8be3c, 0x5d756d91, 0xf5a477f9, 0xc395f213, 0x7c041dfb, 0x46f78589 }, + { 0xf1b0a53b, 0xe10e5ff8, 0x73062e01, 0x25f6dc31, 0x54d816cb, 0x5e6f7a4c, 0xa5de14bd, 0xb8b75786 }, + { 0xdac58db9, 0x7b14d7d0, 0xd9484ccb, 0x6714640d, 0xb600f2e6, 0xcc79c746, 0x1b6cad87, 0x7dcf33d8 }, + { 0x017b8d5e, 0x70eae2d3, 0x38f82a36, 0xb5a8077b, 0x5e010181, 0x3e128a3b, 0x75064a21, 0xd94d14b8 }, + { 0x7a0b5ab0, 0xee95230f, 0xe43198ef, 0x1812e8c0, 0xa4e9aff4, 0xaddbbfb5, 0x6974ffd0, 0xdf0b3e39 } + }, { + { 0x73eb8444, 0xd1b0cbd7, 0x84e02b0f, 0xbb790db4, 0x551b5168, 0xefe3bab0, 0x560e32eb, 0x7d5331f5 }, + { 0x5ec864ed, 0x405e7816, 0x00623c17, 0x7372c617, 0x57ff0c2c, 0xaa8e0e25, 0x8ba27e38, 0x15a7b3ed }, + { 0x6b5f8a03, 0x1f8147db, 0x0c9fc9ed, 0x0142bb78, 0xa8ec0704, 0x09524387, 0xdd504764, 0x25df06c0 }, + { 0xf3454093, 0x1af74eed, 0xc710995d, 0x8d6db26b, 0x097fc18c, 0x0130721a, 0x7b01c796, 0x2024686e }, + { 0x2f5058e1, 0x9c610371, 0x82bd715b, 0x364bc316, 0x7aa700b3, 0xf83145be, 0x279dace7, 0x82e8d269 }, + { 0xf968b736, 0x16095a7a, 0x57135ac0, 0x8baf2414, 0x584014ec, 0x76700cd8, 0x1d2d52f9, 0xcbfb7a46 }, + { 0x4f476f6c, 0x7aa51699, 0x70bd6f1a, 0x2c9a4124, 0x69af47de, 0xbb6b03f8, 0xe1f829cf, 0x7ce1137c } + }, { + { 0x529cb309, 0xc8aea28e, 0xd098438a, 0x2ae46f3b, 0x9412c6e4, 0x070c8c6b, 0x86e3d599, 0x6f637d52 }, + { 0x83bc496a, 0x5fee475a, 0x3c57d57c, 0x3d73802b, 0x43487150, 0x54628ac1, 0x2b7caab8, 0xc076d88c }, + { 0x8ac9ecaa, 0xe302536d, 0x01dcab9b, 0xd402ed11, 0xd2cda0e5, 0x38d52eb3, 0x7bc46a8d, 0x20f2b18d }, + { 0x3177ead6, 0x2c3e38b1, 0xc1fedd11, 0x1d61cf39, 0xa270a03d, 0x97927029, 0x01949d10, 0xca432255 }, + { 0xa752f732, 0x4e8a93d2, 0xa550cb22, 0xb76bbf17, 0x038cef04, 0xcf7425ed, 0x6ae3268f, 0x3c6cf564 }, + { 0xe3b0ec46, 0x70d0fe76, 0x59e8d363, 0xeab1cd4b, 0x9b30c6bf, 0x848d7004, 0x45beb655, 0x2b92f24b }, + { 0xd56d857a, 0x68b415c6, 0x88aa3c8f, 0xe7974251, 0xb186344c, 0x6b4e3a32, 0x154a94fa, 0xff9956e9 } + }, { + { 0x4757c9b1, 0x525ad554, 0xca91d9ce, 0x18c6c4ef, 0x90284f11, 0xe863f01b, 0x9a6e1466, 0x933653d8 }, + { 0x82eeecd5, 0x0338835b, 0xa5e276ac, 0x07fee98f, 0xa4e36ae8, 0x9d4e0917, 0xb5515e01, 0x9cb0f560 }, + { 0xfd75e016, 0xfc2509dc, 0x43884277, 0x173b4524, 0x666341b9, 0x14986d6c, 0x9da3cf7e, 0x3ff34c72 }, + { 0x1df8ed20, 0x197d99c7, 0x80d6f0a0, 0x29e40b59, 0x0bb39c17, 0x5733d550, 0xb68f6e8b, 0x4e407471 }, + { 0x74cf47dc, 0x123386ec, 0x8832fd00, 0xa6da4f17, 0x6be7b728, 0xb8ccc057, 0xa00880d7, 0x47ae5fc6 }, + { 0x773f18a1, 0x739953a2, 0xcff6d9a8, 0x58da9a84, 0x68d99953, 0xcef069a6, 0x26a8617c, 0x762c6ae0 }, + { 0x6a1057ba, 0xa6faae33, 0xe1c7df27, 0x8d1592e7, 0xb080e22b, 0x867c0f0a, 0x50d5f05f, 0x5345865f } + }, { + { 0x979b7cbb, 0x52d0bbf0, 0x174a5d8e, 0xe95c9c90, 0x23e8dea1, 0xa1a797db, 0x34f765a4, 0xbde08c6e }, + { 0xac591286, 0x981475ad, 0x9b6c3e57, 0xca87b92e, 0xd8a63a98, 0x9ca3f9ab, 0x5701c152, 0x17caa9d0 }, + { 0x9260eb87, 0xba139238, 0xc41ff15f, 0xb6a963fe, 0xa12432e7, 0x0cd72d7b, 0x545d1f7a, 0xf06027f7 }, + { 0xd08ad069, 0xb724815f, 0xd40637a9, 0x93b37f1d, 0xf68d49fe, 0x6d27ebea, 0x3d293972, 0x988cd20e }, + { 0x9a48bf01, 0x6f004e75, 0xaf950a9f, 0x763ce18b, 0x30e5459a, 0xded520fb, 0x60854a98, 0xf92136e0 }, + { 0xabd4a523, 0x21cd10fd, 0x4984edaf, 0x7b52b56a, 0x9e878a51, 0x92cc4dfa, 0xaed4a5e0, 0x01b56dcc }, + { 0x20adbaea, 0x867dba2a, 0xff3f992f, 0xec7b3339, 0x3129e416, 0x1e956b88, 0xc8fab6b0, 0xfbff47ae } + }, { + { 0x3a65aa61, 0xd2c7a476, 0xc4e5be20, 0xbcaaf45c, 0x5c64c66a, 0x608f56f6, 0x34cdd4bc, 0xcb8226c6 }, + { 0x3626a049, 0x26bab677, 0xcfc23c44, 0xd0fa390c, 0x27ecf606, 0x65a43120, 0x57db6f38, 0x8d9b2bda }, + { 0x8b7bb63c, 0x9bb0515a, 0xc9ac3e76, 0x2b0f69f2, 0xd51117ad, 0xb239c124, 0xc62a5122, 0x2841f4fb }, + { 0x44cc9ec0, 0xd14489ef, 0xc67359c8, 0xb711a35f, 0x1d35fdb4, 0xfda767fc, 0xa568fa7f, 0xde40be22 }, + { 0x121c113a, 0x5de996ca, 0x74125b5f, 0x2f14fbf5, 0x748a2f09, 0x4168c096, 0x0a174256, 0xbed59fcb }, + { 0xd92c10a4, 0xb7ba89b8, 0x15266226, 0x9df26909, 0x5a7db5fd, 0xf9283633, 0x4b3b1a2b, 0x761c86d2 }, + { 0xfc576cf6, 0xf4bc912a, 0x48efe0f9, 0x79700f51, 0x2a67c504, 0xb317b87c, 0x8a78a015, 0x5b19bd6a } + }, { + { 0x9ce6fd52, 0xae988a65, 0xd239a70a, 0xd004bee0, 0x4ea5ffe9, 0xad1ecc35, 0xa2185261, 0xb4d0fde1 }, + { 0x89dab155, 0x4d4133d0, 0x4f5c5737, 0xb383d021, 0x52b3bbc4, 0x6a98fe0d, 0x2e9fd34d, 0x89405235 }, + { 0x795dae31, 0xb7bd5e23, 0xcbe89d94, 0xa3a740d7, 0xd4016020, 0xb3d74d8c, 0x0af08d29, 0xf6c5b76d }, + { 0x64113dfb, 0xad4ce42a, 0x504c363f, 0x811530d1, 0x739d6cfb, 0x10433b5e, 0x6786fd93, 0xb2af4a85 }, + { 0x58516d01, 0xba449a0c, 0xaf379ec5, 0xc0d26a3e, 0x08a58d86, 0xb11a0670, 0xe6c2cc1e, 0x022a6c16 }, + { 0x903fe291, 0xef96473d, 0xeed4251e, 0xb47da874, 0xc0164aca, 0x0df05201, 0xe8ccc6d6, 0x3dbdd5ba }, + { 0x7daf34e8, 0xa81a914c, 0x87ccc1ae, 0x7d69446d, 0x7b26ca90, 0xbfc7fdf9, 0x9b79c4e8, 0xcd690626 } + }, { + { 0xbca2ce97, 0x9b768b00, 0x9e16c4a2, 0xbe369915, 0x33623ac2, 0x87d332dc, 0xf4cbf437, 0xc696b087 }, + { 0xb8b56e67, 0x60e96d84, 0xd737e72b, 0x617b72f8, 0xde1bbd44, 0x215077f0, 0x660d9b1e, 0xe1d46f38 }, + { 0x13ecfb64, 0x89381f89, 0xef8bf735, 0x3c1974b3, 0x59cbf321, 0x1274909c, 0x4d30a822, 0x5a284c16 }, + { 0x773c79fe, 0x345c0f6a, 0x1d7025ad, 0x09b49300, 0x9a4c9d84, 0x7998e71d, 0xfc4fcaa4, 0x14ab640e }, + { 0xa6582ab7, 0x924ce8b9, 0x15d99e33, 0xf1670d4b, 0xde7a8209, 0x3c63c030, 0x9597ec1e, 0x9381e27c }, + { 0xe0485717, 0x102c7659, 0xc5056bf6, 0x70f64f6a, 0xa57c9793, 0x59aa7c61, 0x7eb3322e, 0xab2c367e }, + { 0x39147b0d, 0x047d17af, 0xbb554ea8, 0x18259d17, 0x413a232b, 0xda2d6aa3, 0xbb280068, 0xf431d932 } + }, { + { 0xa5e23d43, 0x5433f6ec, 0xa243e230, 0x202a9049, 0xeca5c2b7, 0x5f3a244f, 0x54f555b7, 0x5abf558e }, + { 0x726d36d7, 0xbaa745ff, 0xc0995cbc, 0xe155fd2f, 0x908477b0, 0x3bfdafc3, 0x627e2400, 0x9b54d5ae }, + { 0x54943314, 0x6cd13b0c, 0xf7017cb0, 0xf354f7f6, 0x913a712f, 0x32396464, 0x7f5c8b77, 0xda9aa1a6 }, + { 0x57b1488e, 0xfd85c443, 0x6c760ad5, 0xec30418d, 0xdb2df81f, 0x4fe380b9, 0xfef3c46e, 0x546ed177 }, + { 0xec5bf376, 0x3c6ead59, 0x06df80e6, 0x9b4b63b2, 0xea891560, 0x96d61ec4, 0xec69c54d, 0x2a7094e3 }, + { 0xa5034915, 0xfddde2e7, 0xc2a96fe0, 0x7e514b5e, 0xcc097a6e, 0x8f87beb4, 0x2d2098da, 0x492e1023 }, + { 0x1f64f72e, 0x29a4940f, 0x28bb3d9b, 0x176986dd, 0xccf75334, 0xdb8baaec, 0xc2eac5cc, 0xdc1a63c1 } + }, { + { 0x8f2794ef, 0x67575956, 0x1df0226b, 0x1ac6f8d8, 0x9b783a25, 0x9afe2930, 0x3b57d6ba, 0x426e6e12 }, + { 0x9b586e94, 0x1fc66975, 0x3d745205, 0xac997cdf, 0x2b694840, 0xd61b8df9, 0xfe0d78f5, 0x138d90b5 }, + { 0x90c898ff, 0x5e593efc, 0x436815fb, 0x32a7b5dc, 0xdb5b7d3d, 0x86f4e320, 0x4e0a555c, 0xe8c07c34 }, + { 0x8238df97, 0x980ca2c9, 0x0c856467, 0xaf327325, 0x485f8c16, 0xdc401567, 0xf863daf6, 0xd760430f }, + { 0x6279f57f, 0xbdf707af, 0x166d212c, 0xb92b9bb4, 0x8c74bd79, 0x22154973, 0xc470ce5c, 0xad8317d1 }, + { 0x7740154c, 0x194543f0, 0x59f7335a, 0x98410013, 0x52012f57, 0x1716897b, 0xf74d6dc4, 0x920c3d1a }, + { 0xd141f302, 0xbc892c49, 0x05d1784d, 0x45eb8135, 0xa3e3f86a, 0x5a48f596, 0xcf7fa50d, 0xfd9d90e8 } + }, { + { 0x83a24eeb, 0x8a47b928, 0x3ba8e0a0, 0x9fdba245, 0xd8599e21, 0x907c9c19, 0x396bc65c, 0x1d1e0efe }, + { 0x37555f5d, 0x52d01015, 0xc65384f4, 0xa57da19f, 0xd5306533, 0xd7b40e56, 0x72ad0f47, 0x7c463cec }, + { 0x6f4e44e9, 0x310385e9, 0x17bd47d1, 0x3e06f1e2, 0xa3c53f42, 0xe8c5ffce, 0xc0915716, 0xe703ea48 }, + { 0xc8e9d3e8, 0x1792eb84, 0xf8738a9d, 0x5083d677, 0xa87b30ee, 0x65206897, 0x96c4ba90, 0xf7367023 }, + { 0x062845ea, 0x182a3f5f, 0x4700f73a, 0x1aee7fb8, 0x4186ab9b, 0x942b1004, 0xfe7e50e5, 0x49009e1f }, + { 0xfc0edb54, 0xb83b9629, 0x065a4e14, 0x8404f2e0, 0xfe17335c, 0xe3be3e9e, 0x99b97830, 0xa65573bb }, + { 0x01c71188, 0xeb92c6e8, 0x92080971, 0xa067cbc8, 0x11515ae3, 0xf27a2a4b, 0x0e596ec5, 0x74f3a154 } + }, { + { 0x023dc0d3, 0x6c525ee7, 0x2366e438, 0x6288d6e8, 0xb6db7004, 0x86c55b06, 0x87be2921, 0xa020e924 }, + { 0x1b75b092, 0x801cce95, 0x6239b657, 0xfbe5ca56, 0xd2170dd4, 0x1044cc30, 0xae853426, 0x15cd4efe }, + { 0xdac66376, 0xda15eda2, 0x0006896f, 0x676dcd6f, 0xc5da044e, 0xa06ba4f9, 0xc386d189, 0x9bf6cb3d }, + { 0x74baef5c, 0x00483f33, 0xa0af1221, 0x023ad520, 0x926f98ce, 0x86ccc136, 0x97594487, 0xe16d04a0 }, + { 0xc5e45462, 0xafa2ed28, 0x62dc0741, 0xf6674ab3, 0x284d77ba, 0x63df1d80, 0x0cf56abe, 0x09c095b0 }, + { 0x1365da70, 0x47e9a1bb, 0x75416e08, 0x6cdba8c8, 0x57d96832, 0xd8dc4e82, 0xc8cba9b3, 0x9807f9f0 }, + { 0x57b922c9, 0x5ba15559, 0x8ca5ead3, 0x048d1837, 0x661f403d, 0xc3838fff, 0xa6b13fdf, 0x30a36976 } + }, { + { 0x6f343137, 0xc71f6cb6, 0x199ef59c, 0xa712741d, 0x9524f6d7, 0x8d1555e6, 0x8c9f53ff, 0x276d1f2f }, + { 0xa7f1e394, 0x5e521804, 0x563610c7, 0x7c024762, 0x41a42037, 0xaacc31a9, 0xd4649e65, 0x956ae82f }, + { 0xde2b0553, 0xd301a8b2, 0x8910a586, 0x07b70f75, 0x9ea074d8, 0x2ac99ebf, 0x3500a973, 0x70061496 }, + { 0xbdf31fe7, 0x1dfc3c82, 0x38ff32b8, 0xa7b9cc7b, 0xa04abd8e, 0xf3adb0ff, 0x9e1dd522, 0xd892d61d }, + { 0xd212402e, 0xeca19b28, 0xdc57b6fe, 0xf38a9c79, 0xb5e8cda0, 0xf6345667, 0x597a1b97, 0xc1c3a56e }, + { 0x824385d8, 0x22b0212a, 0x9899bc5a, 0x6ed1c299, 0x918d2a02, 0x9a289373, 0x13aaaf90, 0x0968ff32 }, + { 0x5a9f7e49, 0x08d06a6b, 0xffd8665d, 0xb0d5eb0e, 0xd1163dcb, 0x78c81372, 0x8f015345, 0x8e24ff90 } + }, { + { 0xd825b02a, 0xa1c1a9a6, 0x2785f074, 0x6ee72c66, 0xf7a49f4c, 0x022916fb, 0x354c0c2d, 0xc1924d55 }, + { 0x82e9ff41, 0x113e9821, 0x4cf83df8, 0x6d611dce, 0x8fd78367, 0x553e22dc, 0x5ba302b4, 0xe8f78af5 }, + { 0xefb42468, 0x3e234cbb, 0x981eecfc, 0x71bdfa61, 0xb36943d7, 0x01f43387, 0x60ff5cdc, 0x352bc3b6 }, + { 0x66274b0b, 0x92030f39, 0x2386916e, 0x4670eff3, 0xe8fc5588, 0x5bcad593, 0xa20ecf35, 0x08a876de }, + { 0xb55b797a, 0xad4fcf1a, 0x4b0e291a, 0xb96c1313, 0x9c835c7c, 0x844765d9, 0x941e5f83, 0x0e183698 }, + { 0x4afdf51e, 0xae43348f, 0xaaa25912, 0xfa6d9e00, 0x6672c7da, 0x4964c1b6, 0xf2204e3c, 0x6c658967 }, + { 0xd4cdf1cd, 0xe3bea464, 0xd8796a72, 0x2e8d783d, 0x220e00ba, 0x43fea0bd, 0x2b779464, 0x525705f0 } + }, { + { 0xaf5b8804, 0xb9a2d2fa, 0xba9e2f01, 0x4a17e91d, 0xf1f74dbd, 0xfc44f3ee, 0x9c3c3657, 0x8501c1df }, + { 0xb27ec27f, 0x542c2b7f, 0xe187c5f6, 0xed95129b, 0x9b003bfc, 0x83fcb74d, 0x1a31262f, 0x11d2ba32 }, + { 0x55eec6b2, 0x44db580d, 0x28d35e79, 0x51ffd002, 0xd22b8b40, 0x736f34fb, 0x625996ee, 0xc00a1771 }, + { 0x28e1ecaf, 0x6e85a928, 0x9a8af450, 0x66215ac7, 0x5611494c, 0xd4d3d6b9, 0x0c50091d, 0x1569724c }, + { 0x0c6ceb1e, 0xff59b251, 0x64826d6f, 0x673b32c3, 0x4f570efa, 0x91793dab, 0x924d6d11, 0xbb83d65b }, + { 0xa92cb756, 0x14277b65, 0xb50f3296, 0x205a1431, 0x0d9d90ce, 0x11cfaeb9, 0x94b3273a, 0x1cc9bae7 }, + { 0xdec67f79, 0x2f8a8c5a, 0x9d1a5120, 0xf4c99b33, 0x396ac1ba, 0x766f0d02, 0x4ec810a0, 0xfe08aca1 } + }, { + { 0x0131b134, 0x15796ccb, 0xfc2e0ea2, 0x56f02b8c, 0x83ac831f, 0xa1ddef8e, 0xe7005095, 0x337b4e53 }, + { 0x45543891, 0xaa518b81, 0x1536899a, 0xe34f23cc, 0x108fe8ac, 0x11e67a04, 0xb324c31c, 0xceba6fc5 }, + { 0x48231dcd, 0xcb30908b, 0xb87d5cfc, 0x3393a816, 0xb95bc198, 0x43a21173, 0x79b091dd, 0xc0f861d1 }, + { 0x4046e619, 0xd009e0fe, 0x71348ebc, 0x91852d76, 0xae24c807, 0xb5114a2a, 0xea3ec5a4, 0xf3526498 }, + { 0x7a56bf44, 0x9ae8d236, 0x23853b91, 0x35bf10b7, 0x8144d3fd, 0xcf5f5539, 0x6bf4df17, 0x7fb436ff }, + { 0x6e05ac83, 0x6f758fb8, 0x19a7a888, 0x31074e59, 0x85716904, 0x1806aabc, 0x0a537aed, 0x44e55275 }, + { 0x05145291, 0xf0ceb958, 0x0206e3e6, 0x5fbf32d2, 0x1af252aa, 0x098a0fbd, 0x6e6f8300, 0x4a2a29e6 } + }, { + { 0x612be6a8, 0xe9aea7ea, 0xef3ff8fd, 0xa990e3d9, 0xf8415655, 0x4eab193c, 0x578ad9a0, 0x459dd7b9 }, + { 0x9cdc742b, 0x219812ec, 0x0052acf9, 0x725dae4a, 0xf1071874, 0xe15d87dc, 0x26a5366d, 0x047861b1 }, + { 0x33944b57, 0x4972efdd, 0xd826fce6, 0x0819711c, 0xe16670f8, 0xf380fe07, 0x355f7a03, 0x9107bb25 }, + { 0xa43b8097, 0x6c74f35a, 0x2e863685, 0xbad4f784, 0x9da535e8, 0xb92adf2b, 0xb869a73a, 0xb087d580 }, + { 0x7517802e, 0xafb74a90, 0x599c6696, 0xb38d060a, 0xf373d7e6, 0x966167dd, 0xcf3253fa, 0x6f99c5fd }, + { 0x1e46b7d7, 0x7eff0e55, 0xed683a89, 0xc71c9917, 0x48b3830f, 0xf0c79c1a, 0x7a8fa8b1, 0x218955ee }, + { 0x48aae412, 0x691b9818, 0x874fcb5c, 0x995a04fa, 0xb76abb4a, 0x5c309126, 0x69a6ccb6, 0x368a1ced } + }, { + { 0x408cb62c, 0x3b70922a, 0x7f264aac, 0x5c0df94d, 0x17969dd9, 0x0d88f627, 0x7e248f32, 0x95a4a489 }, + { 0x10e7ac8b, 0xaaa31b4f, 0xf2ff5fbc, 0x5b6ac8aa, 0x24e3080f, 0x28e9d8c4, 0xb148a773, 0xfa090c9d }, + { 0x4408a0c1, 0x7b759542, 0xee0535f8, 0x03692e42, 0xe04077b9, 0x3aa9f80c, 0x216f3ffd, 0xf8667e9a }, + { 0x6091af81, 0x26b4bade, 0x50b5a448, 0xbd257d5e, 0x96b6b6fb, 0x4d06387a, 0x859dc5db, 0x2550dd24 }, + { 0xb4083f98, 0xb1712124, 0x4ffa6bbe, 0xac4fe1fa, 0xe4ea2c22, 0x3b21ea99, 0xaa4b378f, 0xef780957 }, + { 0xfea65c32, 0x2630886b, 0x516a93c3, 0xa87b2079, 0x531884c9, 0xaa72533d, 0xa003b3f4, 0x7bb17437 }, + { 0x34032994, 0x4cef72a0, 0xc5158925, 0x638a0d1d, 0x8c037715, 0xc6be1b0b, 0x0ead0c61, 0xc9459550 } + }, { + { 0xffdf8f7e, 0xf5a20dab, 0x70cb0082, 0x4ffca11b, 0x58416505, 0xfc559602, 0x29e66eae, 0xf8ae5a5e }, + { 0x41ee1d29, 0xaaa43231, 0x2776fdee, 0x0c2dff3d, 0x612b8623, 0xebf527d7, 0x3cf0fca2, 0x47c6123b }, + { 0x06a75db6, 0x8261c1be, 0x7c591d8e, 0x47fac27c, 0x6c36484d, 0x90527c8f, 0x58c65a30, 0xa5e11279 }, + { 0xfc782a50, 0x60b8899b, 0xf9dbf259, 0x0bcc0a40, 0xa229bda1, 0x168a8855, 0xb5d87956, 0x61d6bb9d }, + { 0x7378236c, 0x865619ab, 0x8ca6923f, 0xebe429b6, 0x24ba5add, 0x39e49415, 0x124814b9, 0x7c8fd18c }, + { 0x3517965f, 0xf54f73dd, 0xcfdefd0a, 0x0c98c3a1, 0x8d36dc2a, 0xcdd00d1d, 0x3937c88d, 0x64529779 }, + { 0x464d8478, 0xbc935aa2, 0x26bd0fcc, 0xf30d7b12, 0xa31a5d33, 0x708eecbc, 0x0acb787e, 0xfc79571b } + }, { + { 0x11550d4e, 0xa4d0ccaf, 0xb896078d, 0xf01f8639, 0xfea676c7, 0x7352e8f3, 0x11ace0b3, 0xc7f937e0 }, + { 0xf264b4d3, 0x4214ae8c, 0x550cf3fa, 0x2b3c82e5, 0xe24f889a, 0xc795d879, 0x5dac9a62, 0xc7044d9b }, + { 0xd2108d16, 0x3c0ffeb2, 0x2042ef98, 0x0d9c0fa6, 0x2ab92f4a, 0xb8884755, 0x4cda4dca, 0x8fb003a1 }, + { 0x6f6a7527, 0x6e321481, 0x3f346e27, 0xa70a9d2d, 0x8ee9a6f8, 0x2790b3b7, 0xb424d205, 0x91e63115 }, + { 0x959639bf, 0xf23f1feb, 0xc1994d08, 0x30976c9d, 0x80861d2d, 0xe3ac17a6, 0x75b71833, 0x65e96015 }, + { 0xbbaef34b, 0x3244b505, 0xab6b79a1, 0x809ccbe5, 0x4e2e445c, 0x7eb74fce, 0x3aa41027, 0xab1a1c5c }, + { 0x2fea4ca5, 0x406aa1bf, 0xdaaf707e, 0xc34462ac, 0x4ccb6551, 0x961fcdf8, 0x973acb5c, 0x7c6692b1 } + }, { + { 0xddbefaca, 0xc7a81f45, 0x8bcc1241, 0xb55c925a, 0x20b696c8, 0xd7913c17, 0x78f2e0a3, 0x6c261c77 }, + { 0x3cc8f994, 0x2661bd75, 0xb10a1e3b, 0x8ba28cad, 0x48657169, 0xbbeb9d3e, 0x602a84a6, 0x4c96aa25 }, + { 0x692964ce, 0x216afb2b, 0xd18a5a66, 0xcf150236, 0x64c21fca, 0x0d5eecc1, 0x9e978005, 0xd33fd368 }, + { 0xeafb4b37, 0xe21a3766, 0xf11ab1ad, 0xc6064ae0, 0x94e270e0, 0x184088aa, 0x10d4497d, 0xde991adb }, + { 0xe0685dd4, 0x6d0de3e2, 0x7935ae7c, 0x73b9ff49, 0x81f42fcf, 0xc76a9928, 0x906fd865, 0x655dcb96 }, + { 0x59e43594, 0x70854bd2, 0x6aea3da6, 0xc20978d7, 0x2d6633a0, 0xa64f39d9, 0x6ff5782f, 0x4061fa9b }, + { 0x7306b6a1, 0xdc469610, 0xd4a5ab68, 0xa44ce836, 0xffe8b99e, 0xe18dbd67, 0x4deefdf6, 0x1dbf2916 } + }, { + { 0xbcd7b9f7, 0xaecb0569, 0x65e859ab, 0xbb1deaad, 0xef21dbd1, 0x6d0bd332, 0x915707d1, 0xe70e63e5 }, + { 0x961ffcd9, 0x1c391c9b, 0x81905c90, 0x0936283d, 0xe9dc5aa6, 0xfb3b7def, 0x56454ad4, 0x5c8bb15e }, + { 0xc03e6457, 0x16f9c3d2, 0xec96ed35, 0x60faf8f3, 0xf4514e87, 0xda3f4673, 0xd5be8d5d, 0xbb12df1b }, + { 0x12f736e8, 0x2187a39e, 0xa63feafe, 0x66bfdb1d, 0x3c468d50, 0xeae0d268, 0xacc10ee9, 0xf2718cd3 }, + { 0x659b476a, 0x10a498db, 0xa084c566, 0x15ec323b, 0x8e6de570, 0x660dc72f, 0x01814c7e, 0x93c79470 }, + { 0x087812d6, 0xd0dc9e9a, 0x0381bb07, 0x971946b2, 0x88c203a6, 0xa91dfc9a, 0x5a83a3d2, 0x96b736c6 }, + { 0xd0393e6b, 0x92e03ba4, 0xa9b367b6, 0xfb67d737, 0x00e4d2e3, 0xec1d8a37, 0x80fd078d, 0x94ebbabd } + }, { + { 0x7e29e692, 0x8b41a6d4, 0xde0b857f, 0x352e05e7, 0xd74b3544, 0x89a110e7, 0xf3a27efe, 0xf24598f5 }, + { 0xc79d4566, 0x7c582951, 0x8dd6043f, 0xd561a6b9, 0xd99ddf41, 0xd1e971db, 0xc0d536d4, 0x8ea54c01 }, + { 0x39b19219, 0xaee37d55, 0x4fcf989e, 0x23baba4f, 0x49a91d6d, 0x1a35612e, 0x3e7607dd, 0x0ba6e33e }, + { 0x5a33d17b, 0xdded811c, 0x9dd4bdc5, 0x6774c7f8, 0xbd3f291b, 0xa0009061, 0x11e43fcf, 0xdd17292d }, + { 0x8acb55a3, 0x1d66e5c4, 0xbf641c0f, 0x18c07e1b, 0x76c41aa1, 0x80aefccd, 0xff8a45fb, 0xec91341d }, + { 0xe0d8ca1e, 0xe1b5c0b6, 0x42cbb935, 0x93cabccc, 0x1db92c60, 0x251e3f97, 0x18707d3c, 0x15169cdc }, + { 0xebe45526, 0x757adc21, 0xa048e0e0, 0x00be0c92, 0x07b67816, 0x2412eb5f, 0xb7227c6a, 0xaf986aa4 } + }, { + { 0x3567e5e7, 0xedba1c4c, 0xc1ee61b3, 0xf6168ff0, 0x548ac0c6, 0x5df95013, 0x70486381, 0x0f747265 }, + { 0xde2b9737, 0xbb011054, 0xf3ee8541, 0x2b3fd083, 0xfc3a47f7, 0xd634eb57, 0x66ab37f5, 0x234f914e }, + { 0x10090602, 0xf5070df0, 0xdca526b5, 0x3dc0c2a0, 0xe76c9a3e, 0x7216cef1, 0xc8e9c887, 0xf500c617 }, + { 0xd3084a95, 0xb4f44838, 0x16ccdd29, 0x9e0b70be, 0x721e544a, 0xed3e26df, 0xc3439ab4, 0x1320c54b }, + { 0xc1075933, 0xf0b15ef9, 0x4872b3c1, 0x47b9d658, 0xc162ca79, 0x5a42a927, 0xa37688e7, 0x0b6b44c7 }, + { 0x9d604460, 0x45808dad, 0x5f880d48, 0x5c1ecb45, 0x4b097d4b, 0xc95aaba1, 0xbe7af65f, 0xfa3eda1f }, + { 0xc58306b1, 0x6753afb9, 0xb4937fce, 0x8f82b06e, 0xdf8ff4d4, 0x124c3399, 0x8fac1caa, 0x6e9ab004 } + }, { + { 0x8e3a58b3, 0x9745bf71, 0x2a0ea73c, 0xad04b1bc, 0xd8338c7d, 0x0cb4b5c5, 0x8cc70a60, 0xaec8922c }, + { 0xab22f041, 0x8747644e, 0x08e1e2d9, 0x201ad2b6, 0xfccc9550, 0xb4f599b6, 0x39400a06, 0x10ec0d9d }, + { 0x93ffda08, 0xa3c65492, 0xdb32ed20, 0x5e5044da, 0xc853b537, 0x4d0962c3, 0x3e818e62, 0x6d9ef9a4 }, + { 0xdf34b2d6, 0xb52a6261, 0x2c02d7c9, 0xc80dfe97, 0xbe920358, 0xb3b54fe0, 0x928dd474, 0x9ac6c076 }, + { 0x4f79e512, 0x11776041, 0xbd99a47d, 0xdceac08d, 0xec0accf1, 0x823ef812, 0x6ead6214, 0x9e9e456d }, + { 0xf93d4427, 0x35c065c7, 0xb0568cc4, 0x89438bd0, 0x483d9e29, 0xed66d3b2, 0x4cd1f22e, 0x5ce685de }, + { 0x70afbe9b, 0xdcee3d63, 0xef23056d, 0xab95553c, 0x7241a4d7, 0xd750aa8e, 0x2db4e162, 0x32c7020e } + }, { + { 0xb6b1b931, 0x1dbeeb55, 0x57a55d88, 0x683f65b7, 0x6b74e649, 0x9b0d0ce5, 0x857acdce, 0x09dce13f }, + { 0x8471d8eb, 0x21e20325, 0x8343904b, 0x6bb37b48, 0x574673bb, 0x5bbd2cbc, 0xb8d3f709, 0x9e1ee313 }, + { 0x0e9dc340, 0x78d53ca0, 0x35e7af7a, 0xc9ee9192, 0xced09087, 0xf514ba34, 0x0bd092c0, 0x0ab8a37d }, + { 0x474466b0, 0x3f129bff, 0xc9ded430, 0x0bd038d9, 0xaeebf28f, 0x38eedcd6, 0xa283275a, 0x1b0eb1f1 }, + { 0x9e29c456, 0x09a38f37, 0x2479b134, 0x33c7b328, 0xfe878206, 0x51343036, 0xd5072add, 0xc772a79d }, + { 0xb4af6277, 0xf237e01b, 0x570a70c3, 0x96f28e25, 0xfb7a6283, 0xf2636f78, 0x42d809b9, 0x635e94a6 }, + { 0x193c6c51, 0xe4b6373c, 0xcd568c2a, 0x6daef406, 0x788b6b4c, 0x24eb8436, 0xd37b5e3a, 0xf9af2d97 } + }, { + { 0xf0e7a919, 0x682262bc, 0x8250498f, 0x328f0e3c, 0xcf0adbaa, 0x5898dd65, 0x3e9417f7, 0xf29f140e }, + { 0xa6ef5bd9, 0x8349746c, 0x4cbf85f5, 0xa7e87dc6, 0x902aea74, 0x443891df, 0xee3c434c, 0xec095e47 }, + { 0x51cc666c, 0x7c75d10d, 0xd243b46f, 0xd8de941c, 0x61ca586a, 0x00aaa203, 0xf3ec602b, 0xa9067d07 }, + { 0x1aaec03a, 0x8db8a17e, 0x40535325, 0xaca2ef8b, 0xdbbb2199, 0x4032f003, 0x94dfc342, 0xe02f2b75 }, + { 0x8c4e3f5a, 0xa3e555f5, 0xdad1c8d1, 0xa8d51378, 0x86d4e833, 0x7dd44060, 0x1b340aad, 0x3173876b }, + { 0xe183dc08, 0xa6a7af82, 0xc24ff5ba, 0x74ccea39, 0x33907bde, 0x5027c815, 0xf1ea964a, 0x6e580a0e }, + { 0x3ebfa215, 0x5154cccc, 0x3859eaf5, 0xb616c4d1, 0x2536af1c, 0x5c801c9a, 0x7125da28, 0xaba781e4 } + }, { + { 0xb0aa611b, 0xf329813e, 0x09974675, 0xefb0648c, 0x86ad19fe, 0x18bb7a31, 0xabae10e5, 0x157db901 }, + { 0x945c8d18, 0x866b5833, 0xcec48495, 0x0637bc92, 0x3d144da6, 0xd20aa2fb, 0xcd739471, 0xc679534d }, + { 0x6914a513, 0x1e3be68e, 0x801023c4, 0xa18a0432, 0xbcb8ef1d, 0x287b8c4c, 0xb5c557b4, 0x227aafd0 }, + { 0x8134290a, 0xb43672bb, 0x3219e038, 0x3b3586be, 0xd4192484, 0x057863d5, 0x5af03283, 0xfa43a7ab }, + { 0xdd1d983d, 0x00a9ee12, 0xb87294ae, 0x788f17f7, 0x5d09a7e0, 0x203f7024, 0x9eb9516e, 0x0ad3e70e }, + { 0x61c95583, 0x0157aeeb, 0x8a560ae2, 0xbcc0e328, 0xd6b15e89, 0xf1fb72ba, 0x3d7a86bd, 0xefe07ff5 }, + { 0xae8b1ad2, 0xe8b0e341, 0x75c128e7, 0x4b855983, 0x2823f704, 0x7308179c, 0x924b47b2, 0x5bc4534d } + }, { + { 0x51ef7276, 0x1b386f50, 0x640057b8, 0xfad54d72, 0x97ffbb98, 0x152cc738, 0x758e39ac, 0xa7009aef }, + { 0xf8bf8307, 0x0e37dc8c, 0xaec3f156, 0x0995c10b, 0xaea1f4c6, 0xa3669a12, 0xeff47fdd, 0x28c58bf5 }, + { 0x2d27cb3d, 0x2e315c21, 0x16fb415f, 0xc194f707, 0xb5ad8069, 0xa54beef4, 0x4cb7fc78, 0x21546e26 }, + { 0x0cab6d99, 0xdd54447e, 0x10e0f16a, 0x2bf19811, 0x05fe702f, 0x595c5bf1, 0xaa99303c, 0x63b1a01e }, + { 0xe2eab432, 0xed5f4d99, 0x2368bbc1, 0x076a4211, 0xe77a3fcb, 0xc10f8e8d, 0x22acaca9, 0xd98d2316 }, + { 0xb30f302c, 0x553f357d, 0xe50a2533, 0x611bd13d, 0x08c4f88b, 0xfa7a9454, 0x26f24bbe, 0xcf1a9c58 }, + { 0xd9d6e2f3, 0x65329309, 0x24ab8dca, 0x5666ec08, 0x5b4c9c7a, 0xdc02919a, 0x47984f20, 0x5d10c10c } + }, { + { 0x4172dfcb, 0x48c4ee08, 0xe9ed6a57, 0x28f46959, 0xc1aa0ca5, 0x589b1201, 0x60e69889, 0xfb8be6d4 }, + { 0x0ffcbd23, 0x5302612d, 0xf5c6667b, 0xddf2ff98, 0x5cfa10f4, 0x705ff345, 0xc5d3be38, 0xc594850e }, + { 0x4e02c9ea, 0x7d78f9fc, 0x62431ae9, 0x409b735e, 0xab4ea6cf, 0x044946e3, 0x51496c16, 0x6b7f7546 }, + { 0x0cc243c7, 0x77231247, 0xc5f880dd, 0x536a556d, 0x6abe6f11, 0x3b0d7ee8, 0xb1e27e25, 0xa82ecefb }, + { 0xc4de7eef, 0x42608a74, 0x961a25bf, 0xb92b4d87, 0x5df7f8fa, 0x895c6218, 0x7b7227e9, 0xe6cca312 }, + { 0x1c8998ca, 0xea030927, 0x2997ffb8, 0x479279b1, 0x9d1c52d7, 0x06558fdb, 0x1325c1b9, 0xb4cef32c }, + { 0x885f479b, 0xc3cf6268, 0x1a77920d, 0xbd734982, 0xfa230527, 0xdf1c5465, 0x5ea6fa44, 0x3d963df2 } + }, { + { 0x15124d6f, 0x5bee8048, 0x5e7eeda3, 0x75385c1e, 0x4645a6b1, 0xd173672b, 0x8dd8f848, 0x947388ea }, + { 0x28ff84bd, 0x5d22f09e, 0x3240ffc2, 0x07097e29, 0xcb467d4d, 0x3a59c380, 0x4f2b4ead, 0x06c8331e }, + { 0x2c20ca5e, 0xa382ed3f, 0x63ed7858, 0xe637b728, 0x3e4269fa, 0xe0525ff4, 0x2ef2fc4d, 0xaa7c5b01 }, + { 0x72214e0c, 0xdaeb4dc4, 0xa3716f9f, 0x8478f832, 0xbd92995a, 0x8dcc007e, 0x89a24795, 0xdeee784f }, + { 0x501f8504, 0x790f4562, 0x7f646f8b, 0x3d38fefc, 0x90ab3450, 0x1884861f, 0xba10e16a, 0xf2c30349 }, + { 0xcec4f4b4, 0x6b923857, 0x12b72f4c, 0x2c3a4615, 0xc8886df8, 0xbfa753e7, 0x12166500, 0xcb0e06b8 }, + { 0x75a0cd60, 0x509452c2, 0x5009d6e0, 0xd08342a5, 0x57b6a30d, 0xf5d729fd, 0x037eb8f2, 0x7f8b37b5 } + }, { + { 0x603c8c13, 0x138a1e54, 0x645bb6d1, 0x8edfd612, 0x6555876f, 0xbe3ded27, 0x9463b0f7, 0xc5b43a0c }, + { 0x12fa6f80, 0xf77f6d18, 0xa5c05bcb, 0x49c1838a, 0x64183c24, 0xfbe20136, 0x62684de6, 0xa73208d4 }, + { 0x2dc70f79, 0x497fa780, 0xd9c1c81e, 0x7001f268, 0x75e76073, 0xa6ca0f6d, 0xb31cc76c, 0x152f9314 }, + { 0xaf35c9cf, 0x2fa27244, 0x52515468, 0x5b81ee48, 0x8ee84d9f, 0x7874f56c, 0x399f8e67, 0x0832a2db }, + { 0x1d4d84c8, 0xdd7051fc, 0xd1acabcd, 0xac8627ba, 0xe7728ae5, 0x87d3f1ac, 0x1930599a, 0x8b40e1f6 }, + { 0x8a3e0607, 0xdc86f37d, 0xd23d06f2, 0xab6ddcf0, 0x5e59320b, 0x56f7f0e6, 0x4826df9b, 0x1147f821 }, + { 0x9a2a5095, 0x37f84839, 0x8cb8c19c, 0xc723fca5, 0xb887fbd6, 0x648752be, 0x77c89802, 0x3bdf2bd4 } + }, { + { 0xe95fe2eb, 0xa5d641ef, 0xe1d5a4cb, 0xfcb6daa2, 0x93979a0d, 0xb4bb6da9, 0x127a76e8, 0x8df8945b }, + { 0xc1ea6447, 0xcf97c564, 0xb0f80528, 0x880e15d5, 0x37af7e10, 0x1e681462, 0xfbdf3db6, 0x587956f9 }, + { 0xef96a767, 0xde2d5fb3, 0xf1234cf0, 0x83ac6d2f, 0x14accc8c, 0xfe417ada, 0xe23c40e5, 0x7c167928 }, + { 0x4c207eb1, 0x1a2dfe96, 0xb68bfd29, 0x291f61bc, 0x6de72c84, 0x11f7da6a, 0x01e1eb6d, 0xc5e3816d }, + { 0x46073f01, 0xfa43db13, 0x83f36681, 0xedd9b5f0, 0x2ea57fb9, 0x517d52e1, 0x6a2daf24, 0x839a9057 }, + { 0x0152191d, 0x4740c750, 0x6ca4c9ca, 0x0204e7ce, 0x82231e7c, 0xdf4f5a1c, 0x6ba616c6, 0x7dfa2702 }, + { 0x846580db, 0xd8d0ed19, 0x56b83e33, 0x11e3a461, 0xbab0919c, 0x9b6c6b68, 0xd8a9b891, 0x9c306d9b } + }, { + { 0x739ba36e, 0x7a618ef1, 0x71076864, 0x7ffcb45e, 0xd5691757, 0xf069a107, 0x4be359e8, 0x3eaf0c62 }, + { 0x4c0597b9, 0xdd7424fa, 0x23087c7e, 0x2227a301, 0x7ddd34c6, 0x8e4d0d68, 0x4ebc55d3, 0xd9b5e6ae }, + { 0xcfb176fe, 0xd0454851, 0x403b9da3, 0xa80736d7, 0xd253d30e, 0x6bbb21a0, 0x81e58b09, 0xce51d245 }, + { 0x2f3d0bbb, 0xdb5540db, 0x7d589168, 0x84323951, 0xf180b0f1, 0xff44bfc4, 0x8fcaa903, 0x252f8705 }, + { 0xd628ea85, 0x701207a8, 0xf31d41fa, 0xa8f09523, 0x8a299618, 0x88e1f3c7, 0xc5427df9, 0x5aa1d861 }, + { 0x30e1fc2b, 0x40f302be, 0xa63b3b01, 0x2be3ac29, 0x056645e7, 0x7acc9bbd, 0xd230ce9a, 0x7d252c2f }, + { 0xd600bd13, 0x086c07c9, 0x029cec65, 0x8d599f6c, 0x4d25e448, 0x4e9bade3, 0x0c33da84, 0xbe9e056a } + }, { + { 0xec2c110e, 0xbe7c5905, 0x3d6b6ad4, 0xbf5ef109, 0x940723c6, 0xd0bc7636, 0xe45a396a, 0x6b3d8de2 }, + { 0xb7797ba6, 0x2a61063e, 0x6b5b2af8, 0x9705e437, 0xae799118, 0x80b9e5ac, 0xa524ea11, 0xd25993d7 }, + { 0x952418a0, 0xe52ea7fb, 0x5b851a60, 0x6a3d38f5, 0x7d76b217, 0x87d90655, 0x9351da3d, 0x8fea872b }, + { 0xa284f90b, 0xfed726ec, 0xcafc31d0, 0x8752f8fc, 0x8aecc6f9, 0xd71c0300, 0xdb700ebb, 0x2d234e4e }, + { 0x1255759c, 0x437e2721, 0x384eff34, 0xb49f1b47, 0x24b7d68c, 0x5677b98b, 0xc515b120, 0xd6d9fd20 }, + { 0xae16e75b, 0x8673ec67, 0xa1200f9b, 0xea6c1b43, 0xeea2218b, 0x3cd180c3, 0x761e1363, 0x1ba1263c }, + { 0x1fbac7da, 0x75d3c884, 0xcb97f364, 0x35e26bfc, 0xc958ac3c, 0x8209fbc8, 0x53ae71e1, 0x370d7647 } + }, { + { 0x44e5978a, 0x3c1c94db, 0x5812bb5f, 0x2792ab44, 0x0d072532, 0x3b6d3cbe, 0xab461bd3, 0x9cf81039 }, + { 0xb1b260c7, 0x9fd1ff0f, 0xce0a9c02, 0xd4e51cb3, 0xbb1283d8, 0x57376e34, 0x8c71591d, 0x055e92aa }, + { 0xe6bd5fd5, 0xfcc32cb1, 0xd7981038, 0xd98280fb, 0xece72c01, 0xde205008, 0x3995ad35, 0xbac90603 }, + { 0xfc5a9baa, 0xb00eee66, 0xab77bb87, 0xf777e3b6, 0xa3cb2f72, 0x05fb033a, 0x55d2cc9c, 0xf4bdae1f }, + { 0xd86e998d, 0x84e2624a, 0x8d1ef040, 0x19723c11, 0xec28489e, 0x2eaff7d2, 0xe3590133, 0x8a88d5a9 }, + { 0x832d5f4d, 0xd9489ab0, 0xa6c2601e, 0x6142906f, 0x10fad62b, 0xf6e2ed88, 0x77e39a72, 0xabd76faa }, + { 0x889c76e3, 0x0536b496, 0xbbb356e8, 0xe4db3548, 0x5c3fd0fa, 0x5b737f0c, 0x40931679, 0x6309963f } + }, { + { 0x40ee3a4a, 0x65909d90, 0x5925ec41, 0xe417e4c2, 0x6aa21fc9, 0x225a98f8, 0x53731c19, 0x2a85fbb4 }, + { 0x675dbced, 0x74d40ed6, 0xf6bb4283, 0x6ca6edf2, 0xab30d2f2, 0x11337c7b, 0x555c0f69, 0x670be54d }, + { 0x34d48b9f, 0x0a2af5ec, 0x71dfde84, 0x9a90919a, 0xaad1d2d1, 0x9a2d9fef, 0xb5ecf242, 0x7d065fab }, + { 0xa204eb7d, 0xb8d431d9, 0x782f3120, 0xdc5c6fcc, 0x81952fe9, 0x94e0e2a8, 0xe16b4870, 0x4590fe0b }, + { 0xcee0f906, 0x2d2e89e2, 0x5e52b5f9, 0x6bbdde65, 0xb7aff920, 0xdf304d13, 0x9657d288, 0x3829da86 }, + { 0xa2112a51, 0xcdbe59af, 0xa319b39c, 0x60b0f0f8, 0xf52da966, 0x5f1426b2, 0xd99020d5, 0x76f4ddf0 }, + { 0x85d5a9a3, 0x173e2a26, 0x6877031c, 0xf03affcb, 0x7a906fcb, 0xa24c9477, 0xd2b80f61, 0x5638c07d } + }, { + { 0x0e8f35a3, 0x4b06e823, 0xd47ed3b7, 0xf5509c22, 0x334cf6ec, 0x47d90946, 0x8ed63e06, 0x38f2c469 }, + { 0x1ee1ff9f, 0x469ee972, 0xe0ad7063, 0x50189047, 0x854ba00a, 0x857c9cbc, 0xbb161a5f, 0xb59ef60a }, + { 0x2cd66ff6, 0xb26af70b, 0xd50b921d, 0x2e817dec, 0xf121337a, 0xe2505355, 0x428634c7, 0x6ae831e1 }, + { 0x2619396d, 0xc2a33b43, 0xb7a69b41, 0x33911e3e, 0xea449720, 0xbf8e9980, 0xf05cc544, 0x3aa5efec }, + { 0x102bfe77, 0x62d7b4df, 0x8404e57b, 0x1e3545b3, 0x2f8ee644, 0xf2f4207c, 0x099c8785, 0xa228d753 }, + { 0xf6616f86, 0x69fc2f9c, 0x9a1782d7, 0xdb2f5406, 0x487d8aa1, 0x6ddae044, 0x6c90fed9, 0x1d380818 }, + { 0x56e70139, 0x2e6b471d, 0x76cb34b2, 0x7e9f9e9a, 0x811e573e, 0xaaf6ae4b, 0x82ca972c, 0xf5bea0cf } + }, { + { 0xa5dd88d7, 0x8dee56e6, 0xbb58ec74, 0x089b7971, 0x7fd5e416, 0x21542b2e, 0xdc673df2, 0x4029f024 }, + { 0x3be7e0f7, 0x960c1440, 0xeb62e51b, 0xac4afc53, 0x240d6a0d, 0xd0657374, 0xb6689044, 0x5c9aae75 }, + { 0x8326ca3f, 0xe625d457, 0xf15b1126, 0xcfa38cf8, 0xc2406d10, 0x5a921204, 0x776a8a3b, 0x878e5e34 }, + { 0x6a12d797, 0x9e0dfa96, 0xfe5b2bc2, 0xed8fe49e, 0x020cab8d, 0x5c17c09c, 0x7aaf3675, 0xcb32efd2 }, + { 0xe8a325c5, 0xdea7c0b6, 0xe6dd55ef, 0xa8b99be5, 0x129cfc09, 0x6b763ca0, 0xa830552b, 0x569b464d }, + { 0xc96c9651, 0x1f19b94c, 0x660758ab, 0x9508816e, 0xa19d2eed, 0xf1ae2c78, 0x8bc5fed5, 0x00fd09d7 }, + { 0x22701aef, 0x57666716, 0x08421b2d, 0xcdcd5760, 0x543206f3, 0x6097f88e, 0x693b42f9, 0xdfc5085e } + }, { + { 0xc2664a19, 0x620331d3, 0x48889f76, 0xa44e061a, 0x282678ed, 0x36f0288b, 0x3763e871, 0x3e596769 }, + { 0x2498cad7, 0x50a838ca, 0xe791ab2d, 0x0754f6f2, 0x5cdca55d, 0xc9bafd41, 0x24afdc8d, 0x23665d35 }, + { 0x26894e5e, 0xbe4c1593, 0xb6d29b4a, 0x5fa3f8ca, 0x8d2aac65, 0xd2bc3e96, 0x00fe77fb, 0xcb198ce9 }, + { 0x7331d5e0, 0x768df63e, 0x82f1722e, 0x1b985f9c, 0xefa77f96, 0x1bb90013, 0x9e08f1ee, 0x7fca2a70 }, + { 0xed96ed08, 0xaa96fe7a, 0x5f879c42, 0x0c196850, 0xca6bddce, 0x86962640, 0xb008b923, 0x0c685470 }, + { 0xc8ec4adf, 0x6dfd64de, 0x24d3255f, 0xc3e21106, 0x25c129f9, 0xa50cc5ac, 0x4436f72d, 0xf4e12400 }, + { 0xbbbf713e, 0xfcb809b9, 0xb1c8191d, 0x412abbae, 0x2bd280f7, 0x72ac974e, 0x7ed0cf44, 0x07877eb5 } + }, { + { 0x65aafe11, 0x1fa428b7, 0x22341c0b, 0xa2b636fa, 0x0660cd16, 0x26385884, 0x18560714, 0x8a078be6 }, + { 0xf37b1f40, 0x518efb3f, 0x3cea578c, 0x0996b9fd, 0x534ed631, 0xd1d649fb, 0x2ce5334f, 0x1bfb56e4 }, + { 0x31ed147c, 0xf0045d66, 0x79601217, 0x0c961d24, 0x890b6028, 0x316d5b08, 0x0a4dd963, 0x74293c6c }, + { 0x084cb1eb, 0x9346da73, 0x213d7cdc, 0x033beadc, 0x48427ebe, 0xf45f1a1e, 0x22a46790, 0x284de933 }, + { 0x241ca2c6, 0xb8da323c, 0xaa49b8c1, 0x30fccc6a, 0x69d79b4e, 0x30bc1c59, 0x0c503411, 0xd1942fdd }, + { 0x06695ca3, 0xb25c2fab, 0x6b3ca61f, 0xf047e54e, 0x51dec03b, 0xdfd29b84, 0x4e975532, 0x08361d04 }, + { 0xcba0a713, 0xf0232fc3, 0x4b2eeee9, 0x66ee4b7e, 0xb78b0036, 0xa32b7db3, 0xe2f30b39, 0xd4dec14c } + }, { + { 0xd36a7ab2, 0x67f4ed43, 0xc817db01, 0x2f28e486, 0x5c05b744, 0x3d1f43f1, 0x3d9e7bbb, 0x8f180f0e }, + { 0x3c2b5219, 0xb5c4f016, 0x3ecfadd1, 0xd5199480, 0x2ea1b120, 0xfe00a929, 0x725cb579, 0x10776088 }, + { 0x73ca411a, 0x2d52dc92, 0x1f8468ac, 0x49f9e29c, 0x4ae29ea6, 0x88242e06, 0xe735e8b3, 0x214bf098 }, + { 0x6dea30de, 0x81bfb45c, 0x0066cd3c, 0x2ef9f054, 0x661e01c0, 0x42f761ad, 0x57336603, 0x992d508b }, + { 0x28fe1b7a, 0x7ef83cdc, 0xf6cd53ec, 0x5f433d1d, 0xa6f298b2, 0x82c6fd51, 0xae40ca01, 0xa3289f64 }, + { 0x1ed7f9e2, 0xb34f93fa, 0x35c9d484, 0x02210a89, 0x8ffb4860, 0x1f3bad52, 0x4a04e4e4, 0x7f240d8b }, + { 0xb167e24b, 0x2b7b93fe, 0x90187e34, 0xa7fff549, 0x04632894, 0xafcabcfa, 0x560ad9ab, 0xdaf1e573 } + }, { + { 0xd2d02250, 0x1cfdb459, 0xa7be1444, 0x4517d059, 0x2a4924d3, 0xf987d56a, 0x3f0396a3, 0xe8a2a6a6 }, + { 0xac4c610b, 0xd10dc62d, 0x7171da3d, 0x266f2b5f, 0xaf934d11, 0xc07ee64d, 0xcd1f0757, 0x141f4bf0 }, + { 0x7ecb87a7, 0xdb0d272f, 0x818ace78, 0x59398fa7, 0x25c3d879, 0xd3df1c98, 0x63549da0, 0x74ec65f7 }, + { 0xaac37051, 0x948a92fb, 0x896fbb6c, 0x0444eccc, 0x369ff36d, 0xc5b38cab, 0xe5dbda92, 0x9afff36c }, + { 0x464aa944, 0x373ce36c, 0xb4ff97f0, 0x238f6df3, 0x84aa4167, 0x2aeb497f, 0x4117d17c, 0x60e545ce }, + { 0x6f440a4d, 0xf770a96c, 0xeb9230c5, 0xed4ed9b5, 0xcfb56dfa, 0x81d07cef, 0xb696436d, 0x7f99e9c2 }, + { 0xf45c6592, 0x274ad3be, 0x3a91c2df, 0x6dc9d9c5, 0xd3411a03, 0x027282e1, 0x7675402f, 0xe1987a93 } + }, { + { 0x6d8fa21f, 0x170d86f4, 0x74a8d1e5, 0x6097209e, 0x3aaaad94, 0x594fc661, 0x6174d88d, 0x9f14f1a1 }, + { 0xc3c4af2f, 0xd8d7dd7b, 0x3c80cbde, 0x1c5aeba1, 0xe4edbeb8, 0x57ecf240, 0xb503fa1c, 0xda69c2f6 }, + { 0xf962d73b, 0xa5f276ff, 0x1d88db47, 0x3f7801a3, 0xca4861a0, 0xd116075e, 0x457c2d1b, 0xb6e249c5 }, + { 0x8b44add4, 0x9f3d7bd7, 0xdd635ed9, 0xc1101393, 0x31e8b807, 0x4642036b, 0xff891aba, 0xd792b1f0 }, + { 0xdebe280a, 0x77f5be94, 0xfc19b696, 0xdd0ffe97, 0xe7ce196d, 0x958acc04, 0xb47125dc, 0x2c9069cc }, + { 0x9a642368, 0x07ab659b, 0xeb99ec37, 0xddfb12fd, 0x54413d00, 0x0dbc2637, 0xcf98c7ba, 0xf2f07e46 }, + { 0x9d83d826, 0xda1be20c, 0xe2c21d53, 0x23569607, 0x8dfadb0d, 0x07eaed28, 0x6587c111, 0xac48baf1 } + }, { + { 0x81ae76d9, 0xfb3bfc8b, 0x88e191ba, 0xccf551af, 0x71ac053c, 0x0860809c, 0x9908dadf, 0x320797e6 }, + { 0x4a97c663, 0xd6e091cb, 0xb480faea, 0x1bacb1d0, 0x8e3046e0, 0xee6090b2, 0x085033a1, 0xc805d682 }, + { 0xfe98733e, 0xc4ff804a, 0x360a2923, 0x941ca38a, 0x3e4e6d8a, 0x3d70b663, 0x62c31590, 0xb317e43b }, + { 0x02274140, 0x6f02a50a, 0xeb3cd539, 0x07a9b5c9, 0xf80801c9, 0x4c2f5e39, 0x6c8a7eb2, 0xaa52caa9 }, + { 0x6ff7956e, 0x584d5993, 0x5cd3d0c4, 0x6c1bec6f, 0xdf3ad54a, 0x0634085d, 0xe6edad76, 0x0632db1d }, + { 0xc0daedce, 0x6fb5fc04, 0x76cd6752, 0xbd0ebd60, 0xaa171a2a, 0x87271e80, 0xb32cf4ff, 0xcfd5f1ea }, + { 0xf4eae25b, 0x1066c3e2, 0xc66efd8a, 0x5771607b, 0x4a1103e1, 0xc72b19d6, 0x85f6005d, 0x16270c65 } + }, { + { 0xadfd2c36, 0xd5d9a3e6, 0x1c5ded49, 0x794b0b23, 0x2b3dd153, 0x85212727, 0x7e8378ce, 0x62a6c24a }, + { 0x177a0f49, 0x990dfb5d, 0x2a7cbb31, 0x81dd7508, 0x0a2076ee, 0x5b23bfb5, 0x92f9cfd5, 0x09a5afc5 }, + { 0x1f7bc827, 0x079b2d8e, 0x5bdc1ac7, 0x673ec43e, 0x657f62d1, 0xf9468988, 0x02c231f0, 0x248a73fb }, + { 0xe32bbbf5, 0x9643176f, 0xaa007d1c, 0x1b31fe7b, 0xe6d7493c, 0x6f0544be, 0xc2a166eb, 0x96553372 }, + { 0x4cd86349, 0xf93cba6f, 0x80330f59, 0xdbd48996, 0xa04d3d1f, 0x814c4343, 0x6b4e6bd8, 0x130b061f }, + { 0x488259de, 0xca5f861d, 0xb1f3befa, 0x2fb3ecd1, 0xb75c2a80, 0x13e0054c, 0x68f7b652, 0x46705c85 }, + { 0xb56c48d8, 0x919f2305, 0x0597d41e, 0x283c8849, 0x97acf524, 0x600d53eb, 0xb58af268, 0xb6055293 } + }, { + { 0x93b58020, 0xc92b9cca, 0x68fc5c38, 0x65cfa237, 0x4f772567, 0x0bee599b, 0x67bc9a37, 0xcb552a96 }, + { 0xc792e9d9, 0x88e62b19, 0x4f905a50, 0x9a2f679a, 0xce1a0f3f, 0x1612b9e3, 0xf468578f, 0x49366e99 }, + { 0x42d446d0, 0xbc66a584, 0xc13f0b96, 0x9a459cb3, 0xd370cafe, 0x74cb1ed7, 0x33ff0f32, 0xdcd2b0ea }, + { 0xb0a3e5ce, 0x04b267c7, 0xfcb3b440, 0x17ac5acb, 0x1447fcd8, 0x49c52474, 0xd697d5ce, 0x7772aaa0 }, + { 0x50f93339, 0x11a673da, 0xe65ac850, 0x06e92d28, 0x29e97ce8, 0x2232b5f2, 0x94f7facc, 0xdf282447 }, + { 0x092291d4, 0x6a117ef7, 0x7a34fe0d, 0xf83e4c59, 0xd3330de6, 0x832f0923, 0xfaf4f12b, 0xf6faa6d4 }, + { 0xe81ae317, 0xc3b9d4c1, 0x9e64153f, 0x5c1d9fdd, 0x7d6e1738, 0x58feec0a, 0x0fa3da99, 0x3d715281 } + }, { + { 0xecdff5a7, 0x6676ea5b, 0x2c726a48, 0x407d9721, 0xa1599ebb, 0xb0db1f6f, 0xbcf2a1f6, 0x7d2660c9 }, + { 0x3c9ddc23, 0xb272fda3, 0xfa08d13c, 0x33bcb2c8, 0xcc9780b7, 0xe59248dc, 0xa53ef623, 0xcdb54aea }, + { 0x0a891eee, 0xedb5537a, 0x73fef228, 0x2f8afdf8, 0x21937ce5, 0x2bfa6881, 0x19e4cab7, 0x51111ed4 }, + { 0x8463613c, 0x1e08ff5b, 0x3619d2c5, 0x6c5bc71a, 0xa5617229, 0x7a84f5a0, 0xd70ec7a2, 0x096c3012 }, + { 0xa543ff79, 0x5d9dc2d6, 0xccbd15d2, 0x4ca14491, 0xf6712929, 0xa48759e0, 0x1a8d2f9b, 0xf75b299d }, + { 0xf741280d, 0x27b522e6, 0x8b9120d6, 0xde442033, 0x4a45f300, 0x1ab5c184, 0xb3529b73, 0x78ae6f43 }, + { 0xb7e6405d, 0x96e14656, 0xf6f5af96, 0x2484964b, 0x4cc985c1, 0x30c5c4f7, 0x9348dcb2, 0x451fd6b7 } + }, { + { 0x847b441f, 0x64e2d0af, 0xe296fad7, 0xf04c1410, 0xfbb26f59, 0x4c9b5399, 0x4b4549ab, 0xda5bc6eb }, + { 0xe0f825d1, 0x823baf0b, 0x5a5daa63, 0x70afe524, 0x8a3d5f5c, 0x6a579433, 0x19ec18c6, 0xcc022f88 }, + { 0x69549970, 0xc6a94cd6, 0x39c448c0, 0xccd1e4fa, 0xd3e51cbc, 0x2daa4ded, 0x641f113c, 0xefcb15ea }, + { 0xc769f45a, 0xe8b9f6b7, 0x6c171cf7, 0xe51aa6bb, 0xf6e8a7cf, 0x550d9ec8, 0x70b6fc14, 0x93d25399 }, + { 0x1b38ee7f, 0xc2ca1522, 0x2f02f4b4, 0x64e5e77e, 0xaf807936, 0xfd52a2b4, 0x0b945830, 0xf32ddabf }, + { 0xdcfb6efd, 0x9e827b96, 0xee3fdcff, 0x9927330b, 0x1ca19690, 0x05751282, 0xe894714f, 0xb753e4a4 }, + { 0xe4aa50a3, 0x0f2932d5, 0xf2ee250c, 0x7909c7e5, 0xf520966a, 0x8e6d6fd6, 0x362ff7aa, 0x4f1ffedf } + }, { + { 0xba4aa7fe, 0x23acf2fe, 0x750c8802, 0x479c8ae9, 0xefb8b28f, 0xb225382e, 0x4a822fc2, 0x9d19ba9e }, + { 0x25f06167, 0x4e836183, 0x16f9c419, 0x9c6a3ce2, 0x65d799ee, 0x2dcff663, 0x7435d69c, 0x62722923 }, + { 0xdb0d51b9, 0x4386ddbb, 0x13928624, 0x00b1c86a, 0xfbed33ef, 0xc89cb5f9, 0xf69a263b, 0x436e3d90 }, + { 0x2e9e445d, 0x6fddb749, 0xfe91e5f5, 0x2e0f2b83, 0xa1dc12de, 0x9ad1eab8, 0xfc46cca9, 0x9f1a0808 }, + { 0xa7b20d80, 0xcd7e5fb7, 0xa105a519, 0x329a760d, 0xb43e6e56, 0x890d9bdc, 0x0f62a234, 0x69ff9f73 }, + { 0xd2c9bf82, 0x11c2c774, 0x85e8c80e, 0x3dc16926, 0x0cf8524e, 0x3eba8078, 0x76e9f4ad, 0xc6c1e37d }, + { 0x650bba35, 0xb54cddf1, 0x7a6f3d6a, 0xc497117f, 0xd1668578, 0x67ae4fed, 0x3602d187, 0xd01f5242 } + }, { + { 0x1f57f29d, 0x029905f8, 0x0510bd9c, 0xce7df4c2, 0xb1a011cc, 0xb9e62d2e, 0xf104bb52, 0x9efc1af5 }, + { 0x931d0402, 0xe2ae2229, 0x95f50a92, 0x6dc64703, 0xb69f1789, 0xb480484b, 0x86d45dcf, 0xa232393e }, + { 0xe721772b, 0x6fef8146, 0xc5f37a01, 0x9771768a, 0x00755258, 0x081831ae, 0xdcf6cc8b, 0xf863dc4b }, + { 0xa3598f7d, 0x43c603ca, 0x9e9e35f5, 0xc0b63782, 0x407121dc, 0xa34cdee0, 0x8e53452c, 0x55701ddc }, + { 0x7a4ac01e, 0xcad82682, 0x44fbc5e6, 0x892e51ea, 0xf6d7dc96, 0xd822163f, 0xb29d330f, 0xd19358d7 }, + { 0x8e697e6b, 0x923d1214, 0x33b221de, 0x6e8af382, 0xb972588f, 0x0501ad9e, 0xeab37b31, 0xf03b3f88 }, + { 0x12c94189, 0x2ab9caa6, 0xcdf48f4d, 0xb95c7e34, 0xf87491db, 0x91363766, 0x96f22251, 0x84317056 } + }, { + { 0x7cbba542, 0x72173553, 0x0c0a7a35, 0xc6f4eb31, 0x82bb8315, 0x6f0b5c5d, 0xa04d85dd, 0x3af4cac8 }, + { 0x3cd5253d, 0xc62d4aa6, 0xd70751d7, 0x429b3bc6, 0x48fdc01f, 0xdf33a9a5, 0xbff66b75, 0xa7834e5f }, + { 0xff19bdb6, 0x0659727b, 0x94ed27e1, 0x6761817a, 0xa8dd8727, 0xd11d0798, 0x1e8b20e2, 0x502497bd }, + { 0x5ae9a48f, 0x29d1b18f, 0x1ebef3de, 0x51a8970b, 0xf1593ab9, 0x105438e4, 0xb8adac0b, 0xd6c4fee5 }, + { 0xc928984f, 0x46d28d26, 0xf341ada7, 0xb90279c7, 0x30fcb818, 0x92732b54, 0xbc4af11d, 0xb886260c }, + { 0x5223cd70, 0x6c8e9c6d, 0x0f074d15, 0x75b02f03, 0xf01e807b, 0xb90dc474, 0x2a4222fd, 0xf7e22b4e }, + { 0x13f4a74a, 0x81d4be59, 0x2841a6b6, 0x58db0cd2, 0xb51bda0a, 0x99fe44a1, 0x525627bc, 0x41383547 } + }, { + { 0x8b01f37e, 0x206300f8, 0xcac9203b, 0xca044f48, 0x9f55b65c, 0x8687785e, 0xcaa26e97, 0xd70e84f7 }, + { 0x4896d8e5, 0x08aed1be, 0xf44e6b99, 0xf3d85e8d, 0x1542f062, 0xfb686b8a, 0x66c5e1ac, 0x81de583e }, + { 0xcf9bb018, 0xa03a9704, 0x283f8f67, 0x44ae7b5a, 0x39cb8ae9, 0xba5de384, 0x513f7a33, 0x4d93b2bf }, + { 0xca9e5603, 0xeda4a5cc, 0xcb1400b7, 0xdf20ab93, 0x42afbb75, 0x59b5082d, 0xdcf8fdab, 0x626e4301 }, + { 0x4757c591, 0x20281a53, 0x5745e75f, 0x934ab502, 0x45702ab6, 0xea024398, 0xaa157702, 0x5b95d5b8 }, + { 0xfb4667d5, 0x688f1212, 0x8c13309e, 0xebe42bb8, 0x597635ee, 0x82dab4e4, 0x28452d5b, 0x8de3ec58 }, + { 0x37b5319d, 0xab7a3ae0, 0x285a102c, 0x4d4d6609, 0x00ceacb7, 0x859ef2ea, 0x7a9baf1e, 0xa7d1e1ec } + }, { + { 0x4262d31f, 0xc6bfde90, 0xe4879507, 0xad2c75c5, 0x330ef914, 0xdc0091cc, 0x8144ffd2, 0x593f522e }, + { 0xfeb34417, 0xe940b63a, 0x54b1ed6a, 0x7ca15220, 0x26d78116, 0x4304fd1c, 0xf8a028a8, 0x93fc1330 }, + { 0x1b9255ad, 0x50ce1933, 0x23801901, 0xb265abe8, 0x04f25868, 0x4b6825cd, 0x257a49a9, 0x2508d0a0 }, + { 0x0d554186, 0x4c3ea649, 0x26db83a6, 0x88950115, 0x6479edc4, 0xcc4090f8, 0x50c50406, 0xbbd7a030 }, + { 0xdbdc389c, 0x5eb8199f, 0xcf74a9a2, 0xcf3d8afe, 0x422dec42, 0x4bc45fc3, 0xcb777bfa, 0x70267343 }, + { 0x634e0b8f, 0xfe8050bc, 0x6d104e04, 0x6fb0865a, 0xce0fd7ff, 0x99b58711, 0xd297351d, 0x55a4b0be }, + { 0xcbc61aaa, 0xfccf89c0, 0x1dffca73, 0x7501e2a0, 0x9060e461, 0x212e84b5, 0x2961348b, 0x6075ff35 } + }, { + { 0x1971479e, 0xf1030877, 0x5e164bc5, 0x7b62d972, 0x7c79fc3b, 0xf7f0f07e, 0x8eff6729, 0x4922bb00 }, + { 0xf329ae40, 0xb38599d1, 0x3e9b0544, 0xd54e5643, 0x4091b5c5, 0x6a6dd0d1, 0x83d67840, 0xf82fb50c }, + { 0x1557f7cb, 0x6658ca2f, 0x35eacc2c, 0x47f3a958, 0xa498919d, 0x111cf62a, 0xc8035aae, 0xb7cad54a }, + { 0x4f02a442, 0xa40631dd, 0xefcba983, 0xdd7c3993, 0xee1226bb, 0x6294df26, 0x9529ae54, 0x7a634024 }, + { 0x5d9171eb, 0x05e32a3b, 0x68a836bd, 0x55b4b02b, 0x4c748bbe, 0x00f15133, 0x95266a50, 0xdf18fc19 }, + { 0xe066eda6, 0x9e04b489, 0x57b29169, 0x8ee40a42, 0x701813f3, 0x892d824b, 0xc6ece8ef, 0x6a46a762 }, + { 0x21e51d9b, 0x7fdce794, 0x053ed79f, 0x3884dfa5, 0x3dbb2f0b, 0x21897155, 0x54c823a2, 0xfda148e9 } + }, { + { 0x66f558b2, 0x2d6a44f1, 0x49017c74, 0x58e64303, 0xfbb8ccf8, 0x2755a4b7, 0x38483726, 0x7efb7c5d }, + { 0x6b9782d2, 0xf249694c, 0x7809f73a, 0x039be4f2, 0xa84b112d, 0x7ce459be, 0x20ceb8f6, 0x024162eb }, + { 0x67ea0190, 0x2fe4203b, 0x45ab91f8, 0xa0356d3c, 0x25c94692, 0xa9fac370, 0x593459da, 0xf41dde5e }, + { 0x457d0f83, 0xdc722eda, 0xfc2d6748, 0x17b1fa53, 0xb504bf7b, 0xb2ec3539, 0xcda65159, 0xac11254d }, + { 0x4f7b4295, 0x8682638d, 0xccd438f0, 0x864298f3, 0xccbf0c14, 0x1f0efcf2, 0x9cef2954, 0x6997b446 }, + { 0x736a3b6e, 0xd74b6514, 0xf891a59a, 0xc9c1c3df, 0xe6d5953f, 0xdbfd4970, 0x3cb2c56b, 0x4f29b2bf }, + { 0xf5449706, 0x0b298e81, 0xad160a61, 0x48e4a2a6, 0xb38e2277, 0xda0b2997, 0xcccda1fd, 0x663628fa } + }, { + { 0x88461e31, 0xcf3888a1, 0x099f1db2, 0x6811d294, 0x000b1c12, 0x18717a0c, 0xf4c08ad1, 0xd43dd554 }, + { 0x4566b0fb, 0x8de6f13d, 0xf378de4d, 0xc9ad32e2, 0x410608b7, 0x426a0852, 0x1ba93f7f, 0x1e3c19ec }, + { 0x86dada84, 0xd21501e4, 0xc085a31a, 0xae40a4e8, 0xb3aceee2, 0x4867f51c, 0xa54200d2, 0x07d31bfc }, + { 0x983dabeb, 0x7ac24dd1, 0x55aca5f3, 0x5cd65a17, 0x48cd118e, 0xb2f87539, 0x82161971, 0x39692cd8 }, + { 0x1d8b1be8, 0xefb57822, 0xf0df6722, 0x73d364b5, 0xa94828c2, 0x796774c7, 0x93fd74fc, 0xb357a489 }, + { 0x95505349, 0xc7a46174, 0x6fa24c02, 0x16efb6fe, 0x740008aa, 0xb6d9917b, 0x9da5de0c, 0x853c7241 }, + { 0x7f437191, 0xe15dc8a6, 0x5cd38fd9, 0xe92b2720, 0x5e9e5325, 0x951a7f9b, 0x0baf1cea, 0xa22710e1 } + }, { + { 0x7c260aa8, 0xd4c5a15e, 0xfd8cda34, 0x8c160df4, 0x17b599b8, 0x230d03d5, 0x1efea373, 0x91735454 }, + { 0xc1b07120, 0x37d0e5c0, 0x7b4efd27, 0x484b4d39, 0x2cf880a3, 0x508fb7dd, 0xaff7f179, 0x8c7b602d }, + { 0xfaf6f189, 0x908e9151, 0x8b9e20df, 0xd3bf4837, 0xb6491aa9, 0x7cf456a6, 0xecbcb69f, 0xfad87a22 }, + { 0x8d76fcad, 0x4485d0cd, 0x61f1e566, 0x4e3393d6, 0xa77e206b, 0x6a6aa22e, 0xefd341e6, 0x4156e065 }, + { 0x769cb145, 0x784032b3, 0x8c7d62e2, 0xa4812bbd, 0x34fcfb15, 0x5ae0fcc2, 0x71c975fc, 0x4d494fc9 }, + { 0x422a6172, 0xebb52112, 0xa30e16ba, 0xc33ed85f, 0x4ace3d27, 0x3c40b4a1, 0x4438d53e, 0x0f0f9d86 }, + { 0xaca70e84, 0x01e02a49, 0x639cb433, 0x7e065289, 0xd9c1557f, 0x52fc1006, 0x124252aa, 0x7fa52809 } + }, { + { 0xc2b2f5aa, 0x474ffe2e, 0xeef7d3a3, 0x5398e0d0, 0x77332d60, 0x3d421034, 0x6f2c7505, 0x7577f7f4 }, + { 0x24c40f8d, 0x0aa30a28, 0x5c7b4d5f, 0x7328f598, 0x3389c312, 0x286a2ab4, 0xdebc62f3, 0xd07734be }, + { 0xb725f710, 0xfbbc5bb4, 0x7e22dce9, 0x03140fbb, 0x81e57058, 0xab4a0910, 0xd4424761, 0xbd860106 }, + { 0x7beae8e5, 0x19d325d3, 0x58f7ad0e, 0x7bc8d35e, 0x3d52d5ec, 0xb676a92c, 0x659043b7, 0xdba74980 }, + { 0xc027c5fa, 0xc7a41e0b, 0x75ee6876, 0xf42a649f, 0x210e2949, 0x752e2748, 0x70cda457, 0xda935595 }, + { 0xfe0a1aeb, 0xe91527d4, 0x745ac60b, 0x8ab847c1, 0xa0cb829f, 0x6807edb3, 0x75786719, 0x5c0a7958 }, + { 0x49994b67, 0x3aadfd2f, 0xb93d4a77, 0xa47521f4, 0x003eaf27, 0x5b9259ea, 0xf45befdc, 0x331d4aaf } + }, { + { 0xecf05a78, 0x5b0dccea, 0xbe596791, 0xed74ae92, 0x777bfc4c, 0x561c0875, 0x07bbfa03, 0x579b232e }, + { 0x6c42cfac, 0x24f610e0, 0xdcf35c44, 0x1b9577c1, 0xe2bbd5ea, 0xd5f823b5, 0x9aa4298d, 0x6b66d59e }, + { 0x5d954b63, 0x53148e48, 0x74fa648a, 0x0e0d480b, 0x2fc671d9, 0x2fd95107, 0xe70ab4fb, 0x7976b80d }, + { 0x8ef41049, 0x018013ac, 0x7550be64, 0x34b310c8, 0xee330770, 0x82344b45, 0x6d46e81c, 0x5ddc8719 }, + { 0xf255471a, 0x2833052b, 0x72f5a69a, 0xf5ff80d9, 0xacffa4eb, 0x60b8e894, 0x5265bb17, 0xf6db3173 }, + { 0x29bc7929, 0xbfc100b5, 0xf24ede85, 0x7ae1d4a5, 0x447c4bc9, 0xccc2aa08, 0xd5745d7c, 0x053457a2 }, + { 0xfa514633, 0xfb59f89d, 0x90ca6394, 0x3fedf89d, 0xc2cffe6d, 0xd2b55ee1, 0xa5df8867, 0xbb7c2efc } + }, { + { 0x1dd251ac, 0xf30df07d, 0xd8136997, 0xbb300cbb, 0x9bb0f617, 0x097b4ad6, 0xaba0ef4e, 0x59465f3e }, + { 0xc67a54d8, 0x2d751c35, 0xf8e886e4, 0x60ed22d6, 0xdced76ae, 0x4317daee, 0x27c2efa5, 0xb5eec930 }, + { 0x2ab454a1, 0xac5b9d89, 0xec2dac35, 0xb7c2d85b, 0x6c74c4ac, 0x3d28f854, 0x0901addc, 0x7d29d165 }, + { 0x19099d92, 0xc8d38c91, 0xc43dbf7d, 0xe1af968b, 0x7ed8cf43, 0x4054cb18, 0x0a9668a3, 0x1cc65a8d }, + { 0x5836c214, 0xdb773225, 0x5fde14a6, 0xdc947ecc, 0x6b3e8419, 0x5708a87e, 0x347206dc, 0x32160dcd }, + { 0x1ce13b9e, 0xb816fb8c, 0x198329b9, 0x9d3caeff, 0xbd3b5abd, 0xe4d3eeb9, 0xb77864a6, 0xaf3bf0a9 }, + { 0xf485d47f, 0x51b08c2c, 0xb42daa90, 0xb41a9590, 0xb6362e88, 0x42bd5caa, 0xeb7391f1, 0x688ad9b4 } + }, { + { 0x8b55b285, 0x42aa6486, 0xd9268c13, 0x0a03572b, 0x4d504508, 0x5494ff44, 0x220e34dd, 0x63981d88 }, + { 0x9b8ee0b9, 0xaa0cee25, 0x284f22a6, 0xacfc09d0, 0xcf8ac884, 0x9f034053, 0x02c06625, 0x1093543b }, + { 0x6cb3b436, 0x40a03d9a, 0x070dda52, 0xbea1abf9, 0x96852da5, 0xb53ca963, 0xe87a92f9, 0x58cca1dd }, + { 0x91870369, 0x42e0fdb1, 0x038c4b19, 0x055e8e19, 0x6dc8bd5e, 0x1b6cabbc, 0xa5e2bb46, 0xcb466075 }, + { 0x60eb94ed, 0x51464ace, 0x142290e2, 0xf4a44743, 0x2c708010, 0xc5250cc2, 0x6b769c44, 0xaf7e0bc6 }, + { 0x427ce9a3, 0x643b6665, 0xf5825e83, 0x71c078e5, 0x80c12986, 0x468c2c31, 0x66fc2010, 0x8d883193 }, + { 0xeec6896d, 0x5bc850a7, 0x0043b164, 0xb68fa17a, 0x42a90bf0, 0x66f032ef, 0xd2a793da, 0x8365050f } + }, { + { 0x4bcf37fe, 0xdfbdfcfd, 0x2656f67e, 0x99743980, 0x5c56a240, 0xad4a9dab, 0x8265a41d, 0xa8898339 }, + { 0xa7605856, 0x24112f36, 0x66231ab2, 0x1174e49f, 0xa28fd7e8, 0xb2c571be, 0x78e2c98f, 0x64e2a488 }, + { 0x55cdcfbc, 0x335f2de2, 0xc1f667a3, 0xcae99a95, 0x13bc9290, 0x2b5cad96, 0x6b64e4ff, 0xed8785f6 }, + { 0x3e337610, 0xf3167171, 0x204cba94, 0x148aa7c9, 0x22dd312c, 0x413db12a, 0x64e10df1, 0x8cc14934 }, + { 0x3996e4b5, 0x82fa4d52, 0x1e2948b4, 0xa41861d6, 0x04f0a3cc, 0x19e28afb, 0x7854e850, 0x6da4d3ca }, + { 0x3ebc0883, 0x5b7a6a1f, 0xbc847133, 0xdacac476, 0xe7b5ee09, 0xcc407e9b, 0xc9f984b4, 0x4413fb47 }, + { 0x25af56f3, 0x9ee31133, 0x3a5d6608, 0xc1633547, 0xa1340283, 0xa51a0e30, 0x6abb1afa, 0x57509d93 } + }, { + { 0x02af6488, 0xc6f1f442, 0x6c639ff4, 0x08c7cd76, 0x76c9ab1d, 0x18d2048a, 0x676010db, 0x902497a7 }, + { 0xfc8ae3de, 0xab96eb36, 0xb9a8f7f0, 0x271c4873, 0xce390db7, 0x01690929, 0xe5ceb856, 0xd3bd1b2f }, + { 0x761a431f, 0xb09b8568, 0xceff9c70, 0x03addb33, 0x5ef69616, 0xa9c10c4f, 0x7885f524, 0x062db25f }, + { 0xaccf6587, 0xbcc93419, 0x4f35cdcb, 0xdb908d87, 0x0bbdffa6, 0x597084bd, 0xadd758ed, 0xa2f123fb }, + { 0x7c0739dc, 0x3ec7f3e3, 0x1713fbd4, 0xb36b947b, 0xc710c44e, 0x91353fb2, 0x0ad4c33c, 0x6567ee87 }, + { 0x258e7cb7, 0xd87421ec, 0x5d2b094a, 0xd761d2f7, 0xf46c39fe, 0x7571ae0e, 0x36ab8436, 0x98bc9c83 }, + { 0x025c1dbd, 0x76b4d07c, 0xc54e9cc8, 0xcdf720e6, 0x0020d4bd, 0x83c0bdb8, 0x20f92ff2, 0x271b6102 } + }, { + { 0xe6514ab2, 0x13b3fd1a, 0x8c679366, 0x1c128246, 0x7af4b686, 0xf4b704a4, 0x9cd82805, 0x12d4d6b7 }, + { 0xeeb985ae, 0x864faad7, 0x6963fda2, 0x89ae62c8, 0xdaa9b739, 0xb1749fe4, 0x8316ca7e, 0x0993a340 }, + { 0x8c5bf7b5, 0x1ee4e43f, 0x31d8fdfa, 0x2f99bbba, 0x210e181f, 0x3960ac90, 0x5d957a72, 0xba1652ee }, + { 0x79f6eb31, 0x30e4a088, 0xa0f2cb92, 0x591f7c8b, 0x50684126, 0x944e9c6e, 0xd189c11d, 0xcc30853d }, + { 0x1dcb040f, 0xd26ba641, 0x84fe1aa5, 0xa003b00e, 0x262cd9bc, 0xd0094575, 0x8555ee7c, 0x8287eac9 }, + { 0x63afa921, 0x328e2fc8, 0xbffcdcc8, 0xd42ce069, 0x4da61fcd, 0x971689b8, 0xd2629581, 0xe42b7b9f }, + { 0x83200806, 0x2c3cb0eb, 0x3184b87e, 0xad40c129, 0xefd20ec3, 0x6a77e260, 0x9d2b8de5, 0x361606b2 } + }, { + { 0xce3b9040, 0x462efa2b, 0xdca78d45, 0x83214df5, 0x98943be1, 0x674e1042, 0x2cbc7fe0, 0x0e972c36 }, + { 0xfa580698, 0xbb9417ec, 0xa5e6d40b, 0x17a77d66, 0xd3ae0c56, 0x6668f565, 0x3a1a3ccc, 0x16b81eeb }, + { 0x14a5c135, 0x33d9759d, 0xabff04e7, 0x58105133, 0x70e2396b, 0x893802ce, 0x284f4dba, 0x9486e2ff }, + { 0x9caca6a2, 0x7d23e8d9, 0xdf6c431e, 0x20853c78, 0xe6ff2b00, 0x9fc61c8e, 0xff9b2556, 0x995a4727 }, + { 0x66f7d234, 0x41fc08a2, 0x1d58a09d, 0xa0c6403a, 0xe7165329, 0x5ad4d532, 0x13898a2c, 0xc34da70d }, + { 0x30ac7de9, 0xdbf84ec0, 0x387e7290, 0xda58f0f8, 0x8c384fd8, 0x657605e6, 0x9168aa87, 0x80cda5a2 }, + { 0xd5e18650, 0x75dcea96, 0x2ea0bfa4, 0x643ae8a1, 0xde6f2b15, 0x2afe461f, 0xe3303295, 0x9377dd5f } + }, { + { 0xc322777e, 0x544fd7a0, 0x5e3bd3dc, 0x04838268, 0x29c9ecaf, 0xc04d9c43, 0xa14ac3b3, 0x9e9569fb }, + { 0xaa42e5a4, 0xbb8de644, 0xe2fbad26, 0xb4f18e48, 0x41a01be5, 0xcc95bfb6, 0x6e290d98, 0x54ef8bb9 }, + { 0x557d2b0f, 0xc03e88e6, 0x31a790c3, 0x3e5b6c76, 0x384f0b3e, 0x5ecb5bfb, 0x3d1eebfa, 0x5a577c70 }, + { 0xefa29a64, 0xaeb96331, 0xb2506e50, 0x0265949b, 0x3661408d, 0xee4c9b95, 0x566514f6, 0x992efa98 }, + { 0xb857ab5f, 0x7344d3c3, 0x19c63a4c, 0xe300cddb, 0xd035ef79, 0x3896caf6, 0xe158c43e, 0x8dbc225d }, + { 0x068826a8, 0xd11ee115, 0xaa0ab267, 0x048465b3, 0x83182d94, 0xc85a7925, 0xbc9d9148, 0x210b0520 }, + { 0x3e3a9c6b, 0x58154277, 0x69480d33, 0x8b127ac6, 0x9695e140, 0xbd936635, 0x25598547, 0xe30bd43f } + }, { + { 0x7cad6446, 0x95a8b12a, 0x7e99a163, 0x4e37e1af, 0xaedd8c8f, 0x48e82405, 0x02760ae2, 0x052e92ad }, + { 0xd42bd45b, 0x852604cf, 0xc82662e7, 0x8a7beec6, 0x3f9c480b, 0xceb76563, 0x55618792, 0x1d15b81b }, + { 0xc1e2c23a, 0xbbc03599, 0xb40bf076, 0xa7d81174, 0x55ecc4a5, 0x8f835e17, 0x97cc9058, 0x1f4ecbe2 }, + { 0x36e56936, 0xfc602ae6, 0xe4a1f50b, 0xca0d76f6, 0xb9231453, 0x88142240, 0x91fb92dd, 0xfaa0f736 }, + { 0xb11e5cf7, 0x4bbf80a4, 0x83fbdd5a, 0x629f9d4f, 0x70d3c5d3, 0xa4eff842, 0xb125d786, 0x451c95c6 }, + { 0xa0f9942d, 0xe7d77dd5, 0xa6ce3b5e, 0xad6fcb24, 0x1539fa38, 0x2e5d0014, 0x5647ff4a, 0x423a9cb4 }, + { 0x24328e01, 0x70060c5f, 0x9b5a2980, 0xd50c0456, 0x438b644e, 0xa6218f3e, 0xa8d29a0f, 0x55422c30 } + }, { + { 0xeb474cf0, 0xafbf75b9, 0xc178f2dd, 0x013eba8d, 0xae6078ae, 0x2f7148ac, 0x04d72dd3, 0x3b32798d }, + { 0x1c9f7c13, 0x2e631041, 0x2e4eee2c, 0x9aeeda94, 0x4377bcf4, 0x61803184, 0xe391eba9, 0x96f42e58 }, + { 0x0eebe52d, 0xc91b4fc4, 0x5529752a, 0x2911a0a8, 0x6883a4e1, 0x51d04140, 0x9d01d854, 0xf444746b }, + { 0x8ac7d066, 0xa5a93de8, 0xe336fdc2, 0x2b761cce, 0x2cb54674, 0xab52a8e5, 0xb7dc527d, 0xe28ebf7d }, + { 0x3ca84f2d, 0xdc63706d, 0x26604804, 0x0e2c42f1, 0x80c296c8, 0xc4a2dfbe, 0xeccef3f8, 0xdab00a20 }, + { 0x8891ba41, 0x3e0e1b3c, 0xa09a5bb9, 0xd9b10dc7, 0x12b39656, 0x681e834e, 0xb9464ce3, 0x7192d163 }, + { 0x555ccac0, 0x1b00b0a1, 0x747895e5, 0x5a4d1735, 0x685e8c2c, 0xd71cabd1, 0xc3f9edcc, 0x8f605d24 } + }, { + { 0x5d113432, 0x14505ae6, 0x7e65171d, 0xe5be1eb8, 0x09be54bd, 0x351bcff1, 0xee556201, 0x4320d056 }, + { 0xc7b6fe77, 0x7142a781, 0xd495ce94, 0x5ccd5b51, 0x097a7639, 0xd1b25366, 0x0b825916, 0x1f260e3a }, + { 0x6720ef61, 0x0d59a364, 0x06701add, 0xa51e08d6, 0x4db86dfe, 0x851fec4d, 0x137632c7, 0xcb292d71 }, + { 0x6608db77, 0x05c12056, 0x9b6b9b8e, 0x663d1ca1, 0xea7ebbc4, 0x564ddea8, 0x846212b1, 0x00b2e9a2 }, + { 0x57bba25b, 0xac6c79dc, 0x219f6138, 0x0507e8ae, 0xdaf7cf28, 0x315ab3d5, 0x32b289fa, 0xf2454aeb }, + { 0x345627e9, 0x277f5979, 0x7a570d80, 0x17d5be7b, 0xc1440ddc, 0x658d2d8f, 0xe6b2b033, 0xd3602918 }, + { 0x17266765, 0x63ddc898, 0x0b05da78, 0xe152732f, 0xbc07c329, 0x87308d49, 0x3533e92c, 0x13eef96b } + }, { + { 0xa6c74d3d, 0x5d63a5aa, 0x51ae38db, 0x3d664af6, 0xcca792ec, 0xe791594e, 0x5be4e8e4, 0x99f0af24 }, + { 0x66b45eff, 0x7d379b93, 0x35d9b9a7, 0x16f91660, 0x4c956d91, 0x28713dd3, 0xb0eb8f4d, 0x2b032bfe }, + { 0xc62649d0, 0x00df64e5, 0xa2da756e, 0x860f7c30, 0x9981d44a, 0x01eafed5, 0x51c2e658, 0x32b5df2c }, + { 0x56b139b3, 0x646f9505, 0xc046145a, 0xa89967b8, 0xfae495e5, 0x270d71ef, 0x477609f8, 0xc0130ada }, + { 0x82b8424b, 0x859a29d6, 0xfb1eab86, 0x682ce815, 0x4b094923, 0x2dfe7331, 0xd8e76c85, 0xcde77a35 }, + { 0x9e54ae94, 0x094dea2f, 0x6c4c1390, 0x99533a59, 0x10bff3d9, 0x45519ab8, 0x4e2b992b, 0xd6176a5c }, + { 0x95af2c5c, 0x49f92253, 0x967d73bc, 0x0f61c08b, 0x7e9cec0b, 0xa7b307b4, 0xfb7b21a3, 0xbe14ff9a } + }, { + { 0x8723d3ae, 0x0685750c, 0x019ac1cc, 0xd8de6a78, 0x5245a0fa, 0xbffc9e9c, 0x54167623, 0x807b1fef }, + { 0x81d8ad6b, 0x1bc10c9f, 0x33dda32b, 0x9812cf0f, 0x118e61e8, 0xab7e63f9, 0x1ae26ae1, 0x2af400e7 }, + { 0x3ba2ba53, 0x1d5846e7, 0x6e0065a0, 0x65bc2ef2, 0x50c29f8b, 0xca56af02, 0x94db5052, 0x7faf0110 }, + { 0x9340b038, 0xdaf2d479, 0x5cf279d7, 0x5300ad9e, 0x9a8df77c, 0x8fd4d109, 0xab00e821, 0xd13741ec }, + { 0xbf78239c, 0x7a6294b1, 0xd0905760, 0xd081bc37, 0x9a80f393, 0x4409d5f5, 0xa335c219, 0x7534be30 }, + { 0x97bac5b6, 0x714065e0, 0xe34b0574, 0xb0113634, 0xb0e83f51, 0x68290903, 0x111c481f, 0x570c6a9a }, + { 0xedf21139, 0x210b3de6, 0x6328dd9d, 0xb9ed6795, 0xf1949875, 0x0896ccba, 0x49526c34, 0xced20c3c } + }, { + { 0x50d016f3, 0x35841280, 0x0d682f63, 0xda54752a, 0x7416aaf8, 0x8ffc7525, 0x05d9e6a0, 0x5fe2c49b }, + { 0x5b84a3ed, 0x57737bb5, 0x58d8cf79, 0xe7ae800f, 0x5dc807da, 0x8b0864dc, 0x85c4aabb, 0x737e8715 }, + { 0x6e369e4b, 0x7d12c140, 0x11cef4c4, 0x026e1284, 0xd1297fea, 0x143dd929, 0x8ae3107f, 0xdfd92b43 }, + { 0xb68776fa, 0x5c43271a, 0x5bfb7545, 0x20115576, 0xec463b15, 0x5716ac16, 0x0a742f44, 0xdc10394c }, + { 0x93ebe0b4, 0x31cab089, 0xf703d6de, 0x8ddb986c, 0x029d5034, 0xf5919be6, 0x344acce1, 0xa7178be9 }, + { 0x02393f14, 0xcd4bd587, 0xe49523e6, 0x45b76377, 0x3189378b, 0x129a5480, 0x596844a4, 0x13bd0af1 }, + { 0xc1fbf5e3, 0x20b83b42, 0x94c122b4, 0xea35bbef, 0xa84afaca, 0xc7cede92, 0x2aa55379, 0x4e715526 } + }, { + { 0x191d8c25, 0xedf49bef, 0xccb166d9, 0xd31bb302, 0xd1394fc0, 0xbc7ac47f, 0x4ff9b145, 0xb2286167 }, + { 0x3cc6005d, 0x5af08c2d, 0xf0d13ff7, 0x086b72bb, 0xc23601a7, 0x34382607, 0x7a191b49, 0xb5e8eca3 }, + { 0x1256e971, 0x3ca1f021, 0x2a9fba8a, 0x2efffe72, 0xf8893912, 0x88287c58, 0x3047063e, 0x0ce6dbfe }, + { 0x0f596308, 0xdce19d18, 0x0b3aed5f, 0xe1b34628, 0x3c5e3471, 0xc610c449, 0x013b0569, 0x13d206c6 }, + { 0x7b5b0c08, 0xafa73f2c, 0x1afe34cb, 0x8e4352ef, 0xf0c9a492, 0xb1dd9c52, 0x8a3dbe85, 0x511b2068 }, + { 0xd0f7eeb5, 0x3cb65baf, 0x1ec371a6, 0x2652143b, 0x029c4b2c, 0xf4395f73, 0x070a8617, 0x1a41bd3a }, + { 0xe38ce7ed, 0x0999053d, 0x539b38c4, 0xe4a4ddb8, 0xfc3a29fe, 0x79ab63ab, 0xcd7bef5a, 0x39d51032 } + }, { + { 0x99ffd9e0, 0x6a7b6286, 0xd372442d, 0x2609ce72, 0x31b21b14, 0x1982853b, 0x0253796f, 0x4195e147 }, + { 0x94cf706f, 0x4219043d, 0x4948bae6, 0x4975184d, 0x51e72be6, 0xd00e181d, 0x5532c4bd, 0xe3e3d1bf }, + { 0x3a9511a4, 0xbce6a9d0, 0x322e27d5, 0xebed073a, 0x475bc71d, 0x77886f89, 0x57e25cfd, 0x0b8783f7 }, + { 0x86101a79, 0x88593c55, 0xc4d0aaf7, 0x66d0eb32, 0x559782e8, 0x3c738012, 0x779a44ce, 0x464b4901 }, + { 0x02334709, 0xdcd39abb, 0xbd4ba210, 0x1259e2ab, 0xcd81b73b, 0x41f02297, 0x5455c8a1, 0xf93e9f8b }, + { 0x9b00ec09, 0xcd936d0a, 0x6a99eff8, 0xa61b4818, 0x0f3fdab9, 0x924a0e43, 0xb6578638, 0x8f7e2f6f }, + { 0x863b5269, 0xd6873003, 0xd55ba719, 0x478fbd50, 0x06ad456e, 0x753ac81f, 0x2523b4dc, 0xa6c0aaa3 } + }, { + { 0x4c66c5e5, 0x24d70030, 0x1c778675, 0x01e610dc, 0x3318b68a, 0xb1a85bbb, 0xbd8dcced, 0x8386e37b }, + { 0x9a60c9ec, 0xab294812, 0xb9321b39, 0x10c50f2b, 0x583ce8dd, 0x5357d7c9, 0x60982c4b, 0x159157c4 }, + { 0x565dd84b, 0x9711aa2f, 0x7f6aed97, 0x6902c3eb, 0x73e93be7, 0x906585b1, 0xd908564a, 0x13f487d9 }, + { 0x23b1ed6d, 0xa7c43c99, 0xebbfa924, 0xb39c41be, 0x7a6352ba, 0x95747a3e, 0x2b5860f1, 0x7532934a }, + { 0x5eae3d04, 0xd2635222, 0xd1fe4098, 0xc6e2916e, 0xc86209a3, 0x51614200, 0x257b2adb, 0x951c5adc }, + { 0xcdceaa75, 0x7fb1fdd7, 0x891322a6, 0xca72927c, 0x8c2fccfa, 0xd80edf3a, 0x5cefd1e2, 0xbdd2eed8 }, + { 0x7e05a769, 0x81a4e29f, 0x89ef922a, 0x67a9d483, 0x1cab721c, 0x6f5c205f, 0xd102f502, 0x62fcb92d } + }, { + { 0x0e898ea2, 0x276be8c6, 0x20cbd93a, 0x91925795, 0xcc0e1426, 0x52ba9f4a, 0xe229d987, 0x04a4c65d }, + { 0x2985be68, 0x156e43f4, 0xf7e79720, 0x28a8cc8b, 0x1b90a8bc, 0x7acfe7c1, 0x7f2c38f7, 0xb6acd5c6 }, + { 0x11c48ff4, 0x6aaa0281, 0x61d4ecfb, 0x56e5946c, 0x09e507dc, 0x8e28097f, 0xb6e01d0b, 0xec5d2e6e }, + { 0xa9092e2a, 0x8030b6ee, 0xa62c0fdc, 0xe6fd7208, 0x3dae3e4e, 0x8b132548, 0xeef7b14d, 0xbb3e0df3 }, + { 0x366ae70b, 0x8af54a4b, 0x38695196, 0x490f3290, 0x69a4e783, 0xc25128be, 0x776ae4c7, 0xf3432d51 }, + { 0xf46709e8, 0x54b6f97e, 0xebe5ad72, 0x87f1ff2e, 0x2887b42d, 0xef0920c9, 0x9b2c4aa6, 0xaff35ba3 }, + { 0x980fd7f9, 0x4ec40a2f, 0xc67267ef, 0x084fea1b, 0xdc1f9357, 0xc82e5a6c, 0x6a1314d1, 0x2cf10f74 } + }, { + { 0x99e26c1a, 0x21d728e5, 0xa3bf7072, 0x1f867719, 0x9fc2a99a, 0xb3646233, 0xae028ed4, 0x58749d76 }, + { 0x84e31247, 0x3db47c77, 0x71b4ac32, 0x5e017ab1, 0x0cb3a997, 0xe9f22d8f, 0x61b71801, 0x80c3a383 }, + { 0x4fc8b9ac, 0x2c302d55, 0xc43ebde7, 0xafb2c409, 0x3e770688, 0x1ea75355, 0x42fb4ab4, 0x4b3ee41d }, + { 0x75f59943, 0x265beb42, 0x8552f918, 0x33b4cd5c, 0xbbc7e514, 0x4403f804, 0x592622c3, 0xa6c2788c }, + { 0x93954d46, 0x98102530, 0x65ee2172, 0x7c669b58, 0x48acf56c, 0xf12d22d8, 0x613faf21, 0x17cf04cf }, + { 0xa19fc70f, 0x1573fcc0, 0x0ecd8919, 0xafd79ffa, 0xb4b2bb85, 0x396c25e5, 0xd66fe1dd, 0xb2f73398 }, + { 0x175eeff6, 0x49ad4452, 0x393fbedd, 0xa09a5ec5, 0x4e71b848, 0x213bb3fa, 0x5865f497, 0xe0cc2250 } + }, { + { 0xb8c94934, 0x670b1bef, 0x09b597bf, 0xe95bc31e, 0x8f008206, 0xacfdc6b9, 0x697e0984, 0xc8f165d1 }, + { 0x9d1dee97, 0xc2639598, 0x30852fd5, 0x6fa62d83, 0x26fea39f, 0xb79aefaf, 0xf4ed4686, 0xf51bbba0 }, + { 0xbe4a0e85, 0x26aa35ec, 0x4ccb842a, 0x4daffff4, 0x0d0d6c5a, 0xde22570e, 0xda5b8f9a, 0xfb267bf6 }, + { 0x04684f26, 0xc2bc45b7, 0x78a5abe7, 0xd06d768e, 0x6609fb81, 0x10e0ae3d, 0xa939e5f0, 0x5a6caa84 }, + { 0x60e1f53e, 0xe0498ee1, 0x5a7bd7fe, 0x0e9d8a8b, 0xaea7dbe6, 0x78962259, 0xb56982ac, 0xb48924a9 }, + { 0x61f4f72f, 0x877a9b23, 0x80b8fdd2, 0x25076f3a, 0x3cfc165d, 0xb1a27de7, 0x7901f5fa, 0xaca74205 }, + { 0xbacf2caa, 0x2ffd287a, 0x5334c494, 0x6fc2dd9b, 0x8385ff11, 0x8ef2cd26, 0x3c700c5a, 0x883f96e1 } + }, { + { 0x01051c4e, 0xe171a853, 0x1a86285a, 0x54f10ef4, 0x1da6c980, 0x52622da3, 0x543efe3c, 0x5db30908 }, + { 0xd416105c, 0xae023365, 0x6991f58c, 0x6ca8442d, 0xdeebb86f, 0xfe4209c8, 0xdedbc33b, 0xfac9d4c5 }, + { 0x8befef55, 0x7e737cd6, 0x4d15fe13, 0xbd26464e, 0x80a01d45, 0xfd68913d, 0xd8cd8cb6, 0xc4e3c0a7 }, + { 0x96b72ffe, 0x2f8a3b29, 0x6293afcf, 0xaba930cb, 0x73d7bb5b, 0x07785741, 0x0d2b7174, 0x4a90d234 }, + { 0x05399790, 0x4a1f41fd, 0x9a2aedbe, 0xad926eb9, 0x534d3b8c, 0x8fccb936, 0x3ec3f1b2, 0x7bfffd7c }, + { 0x1d78b2c3, 0x88487362, 0x90ef131b, 0xb3e194c7, 0xd644719c, 0x63d94bf2, 0x57a07ca7, 0x3b7393c9 }, + { 0x3b1e3b26, 0xeed89619, 0x1d59f4b1, 0x8f21179b, 0xd2f5636b, 0x3760b2a7, 0xb8cba8a9, 0xe4781ce5 } + }, { + { 0xcdf29b38, 0xcd3ad590, 0xb60b0c91, 0x717c05c8, 0x67187a81, 0xf5e64622, 0x5fe4db15, 0x7caf92c3 }, + { 0x128e22f7, 0x33401a74, 0xbb73f3f7, 0xca39e2a2, 0x6bdbba61, 0x479c43e5, 0x45e71e88, 0x4a7fe7b9 }, + { 0x2bd5149e, 0x6b60080c, 0xa186e4d2, 0x32b3b160, 0x396411f3, 0x498814c7, 0x32af3f37, 0x914e1778 }, + { 0x52021b68, 0xf3f6d466, 0x05127da6, 0x4652a49d, 0xc04af790, 0x5f744134, 0x5469473c, 0x83443869 }, + { 0x3c789666, 0x55706cd2, 0xfb801295, 0x64be40b3, 0x9234d81c, 0x6a10f4d3, 0xe093b370, 0x3119207c }, + { 0x6512ad28, 0xf1762e3d, 0x89252d67, 0x319a33a5, 0x7047d72d, 0xc0cf8110, 0xe1f6a910, 0x5f181a3f }, + { 0xe0df2b52, 0xeccfde41, 0x71b6f228, 0x29a61ba6, 0xc18c6c45, 0xf6c491b0, 0xae634299, 0x60617efc } + }, { + { 0x932a9292, 0xeff3d35b, 0x0b3ffe45, 0x500946d9, 0xba2b8141, 0xf3aef5fb, 0x7fb73803, 0x5dcbed2f }, + { 0x92f928f8, 0xc45cb998, 0x3de973d3, 0x22258ee9, 0x01d0608b, 0x4abfd656, 0x4d05fbd5, 0xd0b317c2 }, + { 0x78a3e9c6, 0x1217d5fe, 0x37e07393, 0xfb4a2b36, 0x20fd014a, 0x9f430875, 0x7b7c72da, 0xe7826c88 }, + { 0x9e05b5fc, 0xc501e9e3, 0xfa5247cc, 0xff84de04, 0x19481bd8, 0xfd63637a, 0xf3aa923b, 0x18ddfc58 }, + { 0x6ff205cf, 0xd79bec07, 0xa0605213, 0x3fb90ac6, 0x38681ef7, 0xcecb097a, 0x992aaef8, 0x3f20406b }, + { 0x675ab4f9, 0x0384623e, 0x120f1482, 0x648bc836, 0xc275984d, 0x80248b73, 0x6343b511, 0x4f498daa }, + { 0xcba41f00, 0x41f24ff8, 0xe0d541d4, 0x2ad5b9db, 0x29fd8686, 0xf9247faa, 0x02dc9f0c, 0xa105f2af } + }, { + { 0x81314e68, 0x2e1bdcf1, 0xf262a0e0, 0xec3cc01a, 0x8b3b992d, 0x85186126, 0xa01b4c80, 0xf68996e9 }, + { 0x6c059760, 0x7cef4355, 0x94b55ae5, 0x46ebb21a, 0xc9652a93, 0xd00edbb9, 0x138854b4, 0x870e9c03 }, + { 0x2c878846, 0x5068ee62, 0x57504c0b, 0xd9992813, 0xad65db9d, 0x7c0540f1, 0xa51cca28, 0xe3f6585f }, + { 0xaae62fec, 0xf80c3b51, 0x1b8612b1, 0x4e1b799b, 0x122e7614, 0x9817a555, 0x076716bc, 0x26989d58 }, + { 0x082f3b0d, 0x2586ecaa, 0x3a68da4c, 0x2ec3a18e, 0x8322210d, 0x5db56d50, 0x21376298, 0x4f059417 }, + { 0xb9591105, 0xe37840ed, 0x65c2316b, 0x54328158, 0x9cb5600f, 0x25ca8e8e, 0xa3a5e15f, 0x490db5ac }, + { 0x0e25fe77, 0x1beb7f0b, 0x9700b7f6, 0x581f5695, 0x5f52081a, 0xf6c0c4b3, 0x4f23c5d2, 0x716b92a8 } + }, { + { 0x0b783206, 0x97197b11, 0x4466fc8d, 0x51e8e947, 0x529a9831, 0xbce64097, 0x84f78505, 0xdec144e7 }, + { 0xebadc492, 0x5c26fd40, 0x55a0109c, 0x22dd0942, 0x62869e2d, 0xdd67b5b3, 0x8dbad1b3, 0x74764f31 }, + { 0x63a0093d, 0x7361b487, 0xc4f3ec81, 0x73d62b5e, 0xf6443a90, 0xca47e3ff, 0x7fbf1f12, 0xe0d6064e }, + { 0x64b54365, 0xc74d838e, 0xd1a72c2b, 0x0cd37608, 0xba5a2b7e, 0x24af5dac, 0x7934ed42, 0x41f1d7f7 }, + { 0xa50c28eb, 0x7c8fccd8, 0x991d713d, 0x56143506, 0x83019cbf, 0x3e5e8c40, 0x268e8649, 0x42b96750 }, + { 0x115f1a44, 0xda6af568, 0x5818c25f, 0x7cb2cd39, 0xc41f0b4d, 0xb1d5c52b, 0x9d334364, 0x4b5c5bf8 }, + { 0x2887d927, 0x4cb784ae, 0x3f6be83a, 0xdc299f50, 0xa76bf296, 0x059ca3dc, 0x3387ce95, 0x24032c4a } + }, { + { 0x646c61ba, 0xc00dcebd, 0xffe8d48e, 0x1d5ef5fa, 0xdd03068d, 0x945c4a55, 0xc21478e5, 0x6516f79a }, + { 0x51081670, 0xc9480411, 0x45a2ac72, 0xfbe68ae9, 0x4dd25a6e, 0xb6901f20, 0x3fe634d3, 0x1109ba3a }, + { 0xaa1a199e, 0x4ce5679d, 0xc61856b5, 0xaad329ce, 0x888fed04, 0x54a92ce4, 0xec166331, 0x3cdcee30 }, + { 0x9b37df4b, 0xc643bb79, 0xf74d8080, 0x383f1d8d, 0x97ad1010, 0x6beccfca, 0x80835164, 0x57f51a36 }, + { 0x5ee2f501, 0x17c2f152, 0x985fb43a, 0xdf1a3cd0, 0xe332791c, 0xdff602d3, 0x579b3d44, 0x0f92d59e }, + { 0xa6dde8a6, 0x17dc2f83, 0x264d9a36, 0xe850c137, 0x8998dbe7, 0xc815c3a7, 0x5464c2b6, 0x41b6fddf }, + { 0xf1aa98e6, 0xa0b61792, 0x66788403, 0x75ce08b9, 0x705eba7e, 0x1cc8f43f, 0x8eead44a, 0x1effb035 } + }, { + { 0x63c1a59c, 0x3bb92ed9, 0xd993927e, 0x9115e792, 0xb999dbd2, 0x8f704232, 0x1809f9c6, 0x58568b74 }, + { 0x843124b6, 0x3c5ac0ef, 0x72e5d4ce, 0x846f817a, 0x6406ae45, 0xb2fe706d, 0xfb578605, 0xd86d22f5 }, + { 0x18938e86, 0xb285e7b3, 0x3ac87243, 0xbf1034e3, 0x2935a723, 0x442238df, 0xf189475f, 0xf485ec70 }, + { 0x794c2f0b, 0xd9aa1f95, 0x6e5cd411, 0xe1a66971, 0x42c32329, 0x4c25c3cb, 0x7786e163, 0x157466bf }, + { 0x97c86d73, 0xbf0a1063, 0x78b33005, 0x533de701, 0x34465c03, 0x39a03557, 0xddaa24eb, 0x3f68ca61 }, + { 0x0942210a, 0x8d29e6db, 0x0838c1c3, 0xe56b9e13, 0x781aec92, 0x49b12a6a, 0x33822b38, 0xcc81a41b }, + { 0xef40d172, 0x258f6a46, 0x7ab0a0ab, 0xd11b65e4, 0xa96ab13d, 0x6071d3f9, 0x6367b09b, 0xaf81b190 } + }, { + { 0x1b12c93a, 0xb2dd19c3, 0xc0baacf6, 0x9ac0736f, 0xa783871e, 0xab4c0c38, 0x512aef74, 0xd99a41ce }, + { 0x532aa8f2, 0x84ca4f04, 0x9f0d7c8d, 0xc529d10b, 0xa1a50d2c, 0x3dfc8bab, 0x156082d3, 0x031047a0 }, + { 0xf4f340e0, 0x8b2c1235, 0x758ad17d, 0x371b86f7, 0xcdd54fb6, 0x66df8eec, 0xd9790d57, 0xe484bc36 }, + { 0x00ff11ea, 0xa18fc2fb, 0xd897f75d, 0x81e0aaf1, 0x14326937, 0x7ea19d16, 0xd7980e5a, 0x8fc84e35 }, + { 0x14085ef0, 0xbed40a19, 0xa51cfb5c, 0x60f36e68, 0xdf33b423, 0xa612b2c7, 0x92c9a789, 0x061ba596 }, + { 0xb825a48b, 0x1c8d8307, 0x8adab13c, 0x8ffefbb8, 0x4fd180ae, 0xd7fc5b87, 0xddd5e548, 0x6af66526 }, + { 0xa8e14ddd, 0x78386471, 0xb9e89d93, 0x55e2f08a, 0xc2940906, 0xf1f8c9c5, 0x5352536d, 0xdf4d29c4 } + }, { + { 0x1a65e954, 0xa7c05781, 0xa622c36e, 0x39d1ae36, 0x3555bdac, 0xde1e7007, 0x499ab88a, 0x26e6758c }, + { 0x2423409c, 0x59f027d6, 0x53c01054, 0x99470ade, 0xf0445032, 0x42440709, 0x5762f300, 0xaf3f6e9a }, + { 0xfafe7169, 0x3821c260, 0xefe2db29, 0xad298c75, 0xa234e203, 0xaad5d774, 0xded608d3, 0xfc0a9d07 }, + { 0x6a8dc5ef, 0x0b50ff0b, 0xaa1e37df, 0xac63532f, 0x60cc05e3, 0x4a17918a, 0x3e498676, 0xdb55dbbf }, + { 0x3d2e8493, 0x858c6360, 0x1291fa48, 0x9da94500, 0x0575d135, 0x17b22353, 0x8755aeb8, 0x3a36fa91 }, + { 0x235ffbc9, 0x37884622, 0xc0b1a257, 0x2f4e75bc, 0x48b33b2c, 0x4e94a5fb, 0x57e26314, 0xca8db664 }, + { 0x76223077, 0xaae3cbc6, 0xb53e20bc, 0xf021fca7, 0xf4f70531, 0xdd3e20a1, 0x018908ee, 0x6ac4e5ec } + }, { + { 0x4bab2a03, 0xa4c894ad, 0x0718b9f6, 0x76505aa9, 0xa704a1ab, 0xe31d6d72, 0xe0b7d7e8, 0x82335d70 }, + { 0x9248c598, 0x05d14ef5, 0xb22196b6, 0x104dacfa, 0x5eb00a04, 0x65e5780f, 0x553d2bcf, 0x9a6faf4e }, + { 0xe7a84b80, 0x21ac8ab2, 0x0a97b8a2, 0xaa6c8ab8, 0x85d6ca44, 0x4912fc2f, 0x8ce532e7, 0xfd1ec6f5 }, + { 0xe0a3214d, 0x8b83e16d, 0xda1c1077, 0x6ecfd613, 0x6c44d10f, 0xa0ed0247, 0xbe6524e7, 0x9906e540 }, + { 0x6b901287, 0xff9fc5c9, 0xa169de09, 0x5aa704b5, 0x0c9a1708, 0x853969ef, 0x02a6a2c5, 0xfd22434b }, + { 0x011df8ab, 0x933987be, 0x4d8e33cb, 0x8a75575e, 0xa0df5ed3, 0x4afedf40, 0x72d973b4, 0xf0d715e5 }, + { 0xc649a341, 0x8c8ec585, 0x09e36ffc, 0xcae85482, 0x604b9358, 0x503619cb, 0x1838af3d, 0x9d311908 } + }, { + { 0xf992ef53, 0x3cc38b82, 0x484ac38b, 0x9cc29b5b, 0xad102612, 0x7167bdd8, 0x65013993, 0xcd0b9518 }, + { 0xc068a679, 0xdbd71611, 0x84c06e92, 0x9a66ae57, 0xb777ed35, 0x86279007, 0xd7297091, 0x70281626 }, + { 0x568a2bb1, 0xc2fc8f0a, 0xbeeb279f, 0x40e630bf, 0xd56a039b, 0x2a9e70a0, 0xc887842a, 0x22ad73ae }, + { 0x9f78ad15, 0x7320e353, 0xb005eebb, 0x7421e0da, 0xc04ddf75, 0x6f86e369, 0x6c43d7f5, 0xe8fe1ced }, + { 0x7745d97e, 0x0f4a15dd, 0xbc58b766, 0xa4ece092, 0x145a85f5, 0x617ef632, 0x5c29cc7f, 0x88f2ebe9 }, + { 0xa90241df, 0x69968208, 0xca3d5230, 0x260eacca, 0xa30ed8b1, 0x5065816a, 0x23a7b3bc, 0x08ffa2cb }, + { 0x1343e3b3, 0xf7ec9a56, 0xf6b95938, 0x9d75ab58, 0x4b919a32, 0xd0990f77, 0xeb3d0c3c, 0x03393c17 } + }, { + { 0x10404354, 0x24f4c527, 0x3bb936db, 0xe43c0af9, 0xcfdfae66, 0xd0c59040, 0x87c94698, 0xb1dfe449 }, + { 0x862620a3, 0x5a6bd6f3, 0x6715861e, 0x1794e287, 0x6f547703, 0xca52a892, 0x66b712ae, 0x92cedadf }, + { 0x5f632648, 0x07ed8aaa, 0xebc99ea7, 0x67e35f3e, 0x45df92b2, 0xf810d6db, 0x6594292b, 0x719dc0df }, + { 0x02517129, 0xc066cf91, 0xfee400ed, 0xe5a33177, 0x2451fc04, 0x8716cc17, 0x0e85aea9, 0x830b89a4 }, + { 0xc21ba7c2, 0x5cef1caf, 0xee257ad9, 0x4f17bc91, 0xd401c758, 0xae51df62, 0xa9dc2ebc, 0xb3b40e36 }, + { 0x9719e474, 0xe8d19d46, 0x00a43966, 0xb200e08c, 0xfb39eb35, 0x059d9c51, 0x8330589c, 0xdd55cfc1 }, + { 0x3816a521, 0x2b5440f8, 0x58a9d434, 0x38a1a222, 0x4299eeae, 0x4656a036, 0x178a14b7, 0xd8f66ba6 } + }, { + { 0x8e53e611, 0x0f80a4ec, 0x75cfc563, 0x7700369f, 0xeecfd38e, 0x4a84d294, 0x5fadff27, 0xedf0779d }, + { 0xd96a8adc, 0x824055e9, 0x73bde8d0, 0x28d6d0ce, 0xed5e9eac, 0x5a9d9c29, 0x3abbd71a, 0xf12ca86d }, + { 0x9a2903fb, 0x6fe15fef, 0xec292d65, 0x5ae89ee4, 0x07fb2b6a, 0x5e351b88, 0x5f3e661b, 0x3ea971b1 }, + { 0x4fb07aeb, 0xb3b1a129, 0x2e472f43, 0x4b931c8a, 0xe068fde9, 0x62c838e0, 0xb39f7053, 0xe38fb1fa }, + { 0xe8cfca5d, 0x5ee9bd31, 0x7bfcbd2c, 0x072b9b2a, 0x066bc2b3, 0xc90fcd92, 0xd7591916, 0x70bc9042 }, + { 0x7334d25e, 0x061f383c, 0x2ca2313d, 0x7c17e1ba, 0x95d4650f, 0xc323f32a, 0xf356fcba, 0xd7487659 }, + { 0x3de5961a, 0x1a9c3578, 0x5ab5e3a6, 0x332485f5, 0x81a763fe, 0xa1732747, 0xe00167bd, 0x9827e68d } + }, { + { 0xaefa11d9, 0xb23ae1b4, 0x6c5daa24, 0x466f709f, 0xdc2135de, 0x529c6d42, 0xd855a0d3, 0x01264bd5 }, + { 0xc61834ee, 0x61bc622d, 0x1e80ccdc, 0xa99991bf, 0x8ad8d302, 0xcb03b0bc, 0x51c27a3c, 0x61b7310a }, + { 0xf5aeb48b, 0xfce399cc, 0xbc6a2065, 0x9cdbe1d2, 0x4a5fb6f8, 0x6a0c024d, 0x666405ad, 0xe9c533c8 }, + { 0xf25d6ba5, 0x5a1e5f60, 0x9a760f26, 0x9a9ccfe7, 0xcbf1a84e, 0x11156e2a, 0x1ec8bad5, 0xa1abd1cd }, + { 0x429af8ce, 0x2b48afbd, 0x37c15970, 0x206a828e, 0xc1329c16, 0xab26ea1f, 0x079d8f0a, 0x040b51a4 }, + { 0xb1ce4771, 0xf0cad81c, 0xa50f6d62, 0x4e99cf63, 0x3d8949a0, 0x0d4fcb9b, 0x95f934f5, 0xa415e3e1 }, + { 0x2bdd8d6e, 0x566864c5, 0x73b6ec02, 0xb4272efb, 0x49a004e8, 0xd1149d77, 0x4cebcc5a, 0x456af3c1 } + }, { + { 0x081a5e5c, 0xbf7b8d4c, 0x8a34b5a9, 0xcdab3950, 0x7c623160, 0xc109ba89, 0x7bdb53aa, 0x9d5746c3 }, + { 0xa7176883, 0x41412b90, 0x474c53f8, 0x38c66dde, 0xcb6d77d1, 0x6f0a0c72, 0xb176acf4, 0x84750024 }, + { 0xe7d61ac6, 0xd53fce6d, 0x9d9d8914, 0x7276e969, 0x4a22f072, 0x0d3c37dd, 0xafbe355a, 0x85a80a9b }, + { 0xea5b16bd, 0x74126074, 0xad6a0091, 0xda26ae8d, 0x98119213, 0x4ed94ccb, 0xf91293e7, 0x83f0444e }, + { 0xd977cdc4, 0xbb396ccf, 0x156a3abc, 0x5049c8cb, 0x97e3fc76, 0x22ca279b, 0x6e6c56eb, 0x4a40aafe }, + { 0xcbbad741, 0x653712ab, 0xedee190c, 0xd65124f7, 0x35cfcf9e, 0xb8e45ecd, 0x247c0f70, 0x92d9f67a }, + { 0xf1078520, 0x62a505c4, 0x386d72e7, 0x4379a48a, 0x5c861e43, 0x82f93962, 0x0612ab98, 0x8e762b88 } + }, { + { 0x2b76d2f9, 0x219985b5, 0x48931209, 0x61e9b92c, 0x61b7df20, 0x3a5a19c7, 0xfb1cae89, 0x86e6fe6f }, + { 0x17a9e8bb, 0x24a69d1e, 0xb5fffedf, 0x645c05ee, 0xe465a371, 0x1cf0922f, 0x8e388d71, 0x6f7fb175 }, + { 0x539bb5ba, 0xa74025bc, 0x73a17687, 0x7e4034e7, 0x36a340a3, 0x3fc47343, 0x38c42333, 0x28e0a705 }, + { 0x60047445, 0x9b413b57, 0x22ad7abe, 0xd001a44f, 0x38564b8b, 0x3e430299, 0xa338d922, 0x3fdc8bae }, + { 0x10d5667c, 0x4b20b75a, 0x05c9d00d, 0x2436660e, 0x6d7bf446, 0xa8e4ab1e, 0x6ebc7ad2, 0xa80f7b71 }, + { 0xf82ad2d3, 0xdc4e138c, 0xb95a5c58, 0x135a2af7, 0x90e78650, 0xa05971b3, 0xfa7654e6, 0xeb040cb5 }, + { 0x7e55a09c, 0xa598b530, 0x66e2e492, 0x007cfbdd, 0x2a7340a3, 0x49eded4a, 0x8a2c5120, 0x745aec01 } + }, { + { 0x4ccdf6a1, 0x21cf2074, 0x70ee181c, 0x37614987, 0xdce26256, 0x388e8a20, 0x82e33a58, 0x1f8871a0 }, + { 0x9ac567f4, 0x2cab290a, 0x7a2940dd, 0x9d2921cf, 0xa7212702, 0xdba2aba3, 0x7b042b48, 0x2ea6c00e }, + { 0xb6602eca, 0xf1ccffc9, 0xa427b9e3, 0xce865444, 0xe955470c, 0x5c35353d, 0x886cd178, 0xb1154347 }, + { 0xbd7ee6c7, 0x986f0ceb, 0x515006d4, 0x928a9ef0, 0x3e19b199, 0x9e2b9d82, 0x2ba5734d, 0x78d35037 }, + { 0x8dfc34f4, 0x736270df, 0xae0c15e3, 0x039845bb, 0xdc0cdd6d, 0x8d629822, 0x115f4087, 0x0e40c8d1 }, + { 0x02d5be7f, 0x3b52feb2, 0xfdeb0f90, 0xf335fe9b, 0xc4ee02d1, 0xe1b0a73b, 0x973b1c29, 0x28608143 }, + { 0xd64024fe, 0x07bfee3d, 0x958b2586, 0x20c30d61, 0xfff7a1be, 0x1424dbb0, 0x41d63aea, 0xa7d2d7a5 } + }, { + { 0xc98697f2, 0x27a9da0e, 0xbe1c3c3a, 0x6015249f, 0x43310088, 0x25551fd1, 0x9ed53bc8, 0x01a59dbd }, + { 0x43b36f5f, 0x14d0c574, 0xb004b813, 0x0b342110, 0x8d8821bf, 0x2d460e2d, 0xdb423121, 0xe38d515a }, + { 0x0c48988e, 0xc75214a1, 0xe2d41374, 0x914e23e3, 0xffa76150, 0xf4d0d7a0, 0xf91f0d58, 0x5dbe80f6 }, + { 0xa1717fdb, 0x83473287, 0x5d83adb2, 0xce07c3f5, 0xd7b4bfd8, 0x802e2d18, 0xbd8d8aeb, 0x2a615f35 }, + { 0x281f4fc6, 0x3234cada, 0x034c9096, 0xad333584, 0x9e3d1089, 0x8d67adc8, 0xc73bb490, 0xb96d864c }, + { 0x81dfe927, 0xda7658b5, 0xe2b7deba, 0x28e959d4, 0xf976f0a4, 0x87efc7ad, 0xc8427d0d, 0x90ffa985 }, + { 0xce2e2e31, 0xdea7ac97, 0xe7d99d04, 0xb7b80fa3, 0x40c3196a, 0xa23ec559, 0xeec1dd8b, 0x50e94257 } + }, { + { 0x16823e73, 0x25e516fc, 0x9dd99658, 0xc3b2403c, 0xe96ada4c, 0x9445eea9, 0x0574f922, 0x8b0e0b50 }, + { 0x170a5242, 0xd545ee9e, 0x335d861c, 0x8a625319, 0xd06d63c0, 0xc1c65bea, 0xb289999c, 0x97fb323e }, + { 0xbdbf594b, 0x4563538b, 0xf6f5cb1f, 0xc3e7a6a1, 0x1de4a672, 0xca09428d, 0x5ad346d9, 0x5295de9c }, + { 0x7142b211, 0x6bf87d2a, 0xe77b09ce, 0x555dbb4d, 0x06b5dc50, 0x173c489a, 0x1b505203, 0x4fe9fd5e }, + { 0xd1eca554, 0xdbf55b7f, 0x4c58cf78, 0x57fd262d, 0x911d6812, 0x2dfe41cf, 0x09568fda, 0xb43f0161 }, + { 0x79e9f3ba, 0x7dc0c6f0, 0xca803919, 0xf2466fef, 0x71940a16, 0xc7d5d56c, 0xf379bba3, 0x8bbeb5e8 }, + { 0x6d78f71f, 0x57474240, 0xed1d6588, 0x0272b8fa, 0x42e317d1, 0xa6fe3539, 0x034ea5de, 0x91253223 } + }, { + { 0x6ce8fe52, 0x4ee4b0ba, 0x269731c9, 0xb1a91780, 0xc17611d4, 0x69ccbe77, 0xac119be5, 0x9761c6cc }, + { 0x800ebc6c, 0xd6d229c3, 0x66224169, 0x43ce27ee, 0x4e06d545, 0xd69a4e2e, 0xbe60d266, 0x2fbc0760 }, + { 0x04c13deb, 0xddcc671e, 0x940baff6, 0xed011b83, 0x1c65639e, 0xbf75ebb5, 0xdc29f3a9, 0x948a6594 }, + { 0xb6723312, 0xec575e5e, 0xc920d4da, 0xea1221c4, 0xa1c8f1ae, 0x6574c37f, 0x521325a4, 0xe5630b6f }, + { 0x9be8b91a, 0x34e5bae6, 0x94b150e1, 0x0a37a2fe, 0x93bc6749, 0xdc446168, 0xbd31bfdf, 0xea785db9 }, + { 0x433d561c, 0x1d8f451c, 0xd6821c12, 0x4cceace7, 0xd9f909d7, 0x05e270ae, 0xd959db7d, 0x26018b37 }, + { 0x78fbfb74, 0x864c7746, 0x7e96fc07, 0x3d73ae5e, 0x37117671, 0xab04044a, 0x7b2f215d, 0x5d34c951 } + }, { + { 0xd6e67082, 0xed83d10d, 0xf9b603c4, 0x330f14a0, 0xa2348071, 0x3d51d623, 0xbf803f9c, 0xf5c3a860 }, + { 0xdbf2e1fb, 0x3b9073d2, 0xa397706e, 0xaf6e444e, 0xd8be2c7a, 0x50917c13, 0xa6c15612, 0x1d2d723e }, + { 0xaedff564, 0x41062f20, 0xddbf7f08, 0x8ebe5ab0, 0xd2624d9b, 0x558c4f3f, 0x4fc8fdda, 0x030d8626 }, + { 0xe9f80171, 0xd04fc302, 0xc1a18b1f, 0x5175f1b0, 0x6b31de78, 0x489a4108, 0xc0f2a21b, 0x1da22bc9 }, + { 0x69c0783f, 0x468e72e1, 0x539684b0, 0x6eb35caf, 0xb2c8491d, 0x3461d505, 0x4008c3b8, 0x950079cc }, + { 0xf430e5f9, 0xc4af2bc3, 0x27a623de, 0x30b9f603, 0x9583a5d3, 0x0fe2d753, 0xb7192a77, 0x7672f83c }, + { 0xea036fc5, 0x8f910668, 0xfbb488e2, 0x4df1da0a, 0xcc8f5f0c, 0xe9cf02d8, 0x4ea68b8b, 0x92930726 } + }, { + { 0x4aafdde7, 0xad1e6f18, 0x6fc2b1f4, 0xc3c3bfbf, 0x28158ddf, 0xcab597d3, 0x0ee80ca7, 0xad689ef2 }, + { 0x31cef4a5, 0x2a0ac024, 0xba8befc7, 0x323bd99f, 0x0d4adee2, 0x741edb95, 0xc38ebf1e, 0x2e4bf40a }, + { 0x54731b39, 0x9c520b83, 0xd236cfc2, 0x8d28fed1, 0x595920b7, 0x9e64833a, 0xf9033166, 0xb791aa52 }, + { 0xb973e426, 0x031a763a, 0xc8a491a7, 0xf971a850, 0x29a57431, 0x9f98ab85, 0xe810c441, 0x1aaa9b17 }, + { 0xe07a56bd, 0x5b3a650e, 0x8524c1bf, 0x581b9853, 0x620e2528, 0xcbd9f18c, 0x464e0c76, 0xe8a8757b }, + { 0x4ba36244, 0x8dc29cab, 0x82dd5d98, 0x2e00d727, 0x1b403304, 0xcfb9ef02, 0xb23c2e18, 0x53272334 }, + { 0x85b8badc, 0xd3f3460a, 0x1f2d54d8, 0x6be53442, 0x4d3a4c57, 0xc6178f09, 0xdaac120d, 0xa21d32b5 } + }, { + { 0x5e7eec3c, 0x6882c2c4, 0xf71e281e, 0xee5a05db, 0x49160328, 0xa581f536, 0x999bcfc1, 0xa32183f4 }, + { 0x4d495226, 0x1d7fba98, 0xd63e0443, 0x1d3bbc2b, 0x63efb7b6, 0xb8fb692c, 0xf439fdd7, 0xb57cb60b }, + { 0xacbf8e52, 0x9b63af75, 0x555229a2, 0x01bff2cd, 0xf58b87f3, 0xb3665332, 0xc46db843, 0x522862e9 }, + { 0xeb3dd86e, 0x85cb0d88, 0x252ac387, 0x2c647271, 0x64f64274, 0x8aa0d8fe, 0x24c5c742, 0x6ba50abc }, + { 0xc049057d, 0xf1c1679b, 0x75366f81, 0x61691771, 0xef711e26, 0xb656c670, 0xd81e2e48, 0xf0e4b55b }, + { 0x8762038d, 0xc80e0c4f, 0xf30b867e, 0x19fadbdb, 0x9a6eb859, 0xc9901d8f, 0xa8c35c86, 0x7ab2b2d9 }, + { 0x3338cff5, 0x71256102, 0x5bbc92b0, 0xec61ecb6, 0xf8d91011, 0x085ae7d4, 0x8fd0eb3a, 0xe8afda76 } + }, { + { 0xc79d0663, 0x2dd58140, 0x0aa57d16, 0xf29eb584, 0xebffc367, 0xb5aaf495, 0x5f301fbd, 0x51ad05f3 }, + { 0x5d9e5289, 0x1f286da7, 0x1a8c5a78, 0x1981633d, 0xf535283c, 0x558fd1c4, 0x10042322, 0x694cf23d }, + { 0xb1b46bc1, 0xa366e94a, 0x432e1e2d, 0x29bd0258, 0x4c4a1386, 0xee6519ea, 0x8c1e7b8b, 0xe581d895 }, + { 0xf10c0f6e, 0x8b6ae220, 0x013190cc, 0x00648767, 0x3b7eaecf, 0xbd665c98, 0xcd8bb5e5, 0xcdca837c }, + { 0x855b26dd, 0xa4b21f40, 0x55f19d81, 0x683941bd, 0xe9d853f7, 0x5a251186, 0x8e63352d, 0xd93882fc }, + { 0x50196950, 0x3cc10d94, 0xdf247d3f, 0x7d6cd59d, 0xe2bdcfb9, 0x502f37e3, 0xf78c2b7a, 0xa29b4210 }, + { 0x82240993, 0x12a37c93, 0x9dce0ce4, 0xe532a6f4, 0xfcd872f2, 0x1e744eaa, 0xb68ded30, 0xa6e98a08 } + }, { + { 0x214bb8bd, 0x59052c09, 0xe306850e, 0x61426107, 0xcae574dd, 0x6f0d63ef, 0x36b7f4e6, 0xc4b1972e }, + { 0x44a5854e, 0x37506e54, 0xe43b0c19, 0xd89f4371, 0xad9b0797, 0xdae323b6, 0xfb38db63, 0x343a5bbc }, + { 0x4c3a1778, 0x38f81b63, 0x41e50711, 0x3273fbdb, 0x6cf133ab, 0x5fdbafc5, 0x7e62f53d, 0x8337b5d3 }, + { 0x577cc2c0, 0xf1740a61, 0x195f8d70, 0xc1be9818, 0xf6f046a7, 0xb22ff8be, 0x70434280, 0x9e969483 }, + { 0x7f54aff4, 0x29b2c1db, 0xb7932d31, 0x0e26725c, 0xa4ce3e46, 0xb8d03f15, 0xc1961766, 0xcbecbdfb }, + { 0x7b1da3e3, 0xd7091ce2, 0xd960bd1a, 0x24e3ee4b, 0xbccb3083, 0x9947ae94, 0x995b66c3, 0xfecdca8b }, + { 0x9efdb08e, 0xe6dd1bb1, 0x8afc22ba, 0x689c98ca, 0x5aa1d1e6, 0x9280486b, 0x1a06ff70, 0x35f3bd61 } + }, { + { 0x94a57dda, 0x34e514cb, 0xdba2cc3a, 0x5f80b789, 0x567d9dd8, 0x8e42abfe, 0xda4ed86d, 0xc3d85a78 }, + { 0x643a54ab, 0x64f1459d, 0xbe4f3752, 0x78e0c1fa, 0xd308c46d, 0x79e906cc, 0x9ee16ad9, 0x077f4792 }, + { 0xb17b2cb4, 0x7b1893a0, 0xd513db0f, 0xd05a576f, 0xc0cb40f5, 0x4d7f6b17, 0x89869ade, 0x3ef3f6ae }, + { 0xa8f1033f, 0xb5fd68fd, 0x8b1a8db3, 0xb191a33e, 0x353afd73, 0xeab792ce, 0x2ccac580, 0x3901d267 }, + { 0xe945d74a, 0x5a35669a, 0xa3e4a8ce, 0x7c09320a, 0x9d6a6e73, 0x839886a0, 0x0e87039a, 0xd4afcfe7 }, + { 0x35cd99c9, 0xd0e5ea21, 0x7aaf6e80, 0x28a91f14, 0x0441f916, 0x3bcd7836, 0x5f8c06b8, 0xf6d2804b }, + { 0xab421ed4, 0xf564b8c9, 0x03a9e168, 0x98c0e130, 0x9cd0b92d, 0x3c212ef7, 0xcd6eab71, 0x295b1bd6 } + }, { + { 0xe3e9bef3, 0xd7078eb9, 0xfa2d0da2, 0xfaebbc87, 0x4d66df4f, 0xd1655e36, 0xa6b5f78a, 0x3f7c7c98 }, + { 0x1e7cddbc, 0x17a3975a, 0xde48e2b9, 0xab04c4a3, 0xbf5bc034, 0xf7a44143, 0x5ae8fa9c, 0x3cb216d4 }, + { 0xa019805f, 0xa77c68ee, 0xf27890d8, 0xd67c0c27, 0x06cd297b, 0x525f68e9, 0xd994da58, 0x8672b823 }, + { 0x25936f1d, 0x764ff4c3, 0x89a06966, 0x2a1f98bf, 0x075af8ea, 0xa404022e, 0x959f5c8d, 0xa3959fd1 }, + { 0x9000b509, 0xe18ff73a, 0x7baefdee, 0xec7a734e, 0xb432ea34, 0x8ef1f3d5, 0x2e367966, 0xfcc949cd }, + { 0x414a9e4e, 0xddffb7d9, 0xa4b135c0, 0x08df6e92, 0x7f7978fc, 0x94231a01, 0x38020d36, 0xfd92eba4 }, + { 0x759e8e7a, 0xbd0732bd, 0xbddea280, 0x58540b21, 0x7dc30c3e, 0x3d973558, 0xaf1b393f, 0x51aef09f } + }, { + { 0xd42396dd, 0xe4fc4aba, 0x65bc2ccd, 0xbf3304ca, 0x102ba45d, 0xcece783d, 0xe822c515, 0x20ac124a }, + { 0xe3a2ed92, 0x540fbdcd, 0x3f9dbd6d, 0x9433f437, 0x397752e1, 0x405d2a30, 0x39fdda96, 0xef8289f9 }, + { 0xca813a68, 0xa7ddb8c6, 0x547fb559, 0x34e56453, 0xa126ff41, 0x17de4c37, 0xf5dbee4b, 0xaf01f51a }, + { 0x7076cd0c, 0x5f821a2a, 0x04d3eea6, 0xb2337628, 0x5007b53b, 0x99aba859, 0xfe51ab35, 0x84947d16 }, + { 0x49c1c968, 0x4c48f0f3, 0xed1bfa43, 0xfb7d0f41, 0xf0ae229c, 0x89da4d80, 0x6dd79b29, 0x5e00c5ed }, + { 0xb0082f0a, 0xfa0f5285, 0x7283e3b2, 0xb0525247, 0xa6891967, 0xca18af05, 0xd39acddb, 0x8b6dcece }, + { 0x75bd1834, 0x2370c61a, 0x97219a21, 0x1e1d5e8c, 0xd2c13a0b, 0x5118e51a, 0xf0c505cc, 0x375a4fe0 } + }, { + { 0x3d5b5b5b, 0x0589f6d5, 0xa3c37341, 0xd670ef28, 0x9b9fdb69, 0x645e417e, 0x34b4aae4, 0xf765eab9 }, + { 0x4624f839, 0x15dad0fc, 0x9111f388, 0x55c88aaa, 0x442ffbd8, 0xbe495f3d, 0x44ae469c, 0x30de013b }, + { 0xaac2eb7c, 0xe5794d57, 0xa0ca448b, 0x6a1210e0, 0x7c679e81, 0xf7ffbea7, 0xde3946f2, 0xa9eca4ee }, + { 0xc9f4e052, 0xf416895a, 0x0cb616bc, 0x12e5cfc1, 0x92ed36ab, 0x7c81330e, 0x4f0efa6c, 0xe2c49453 }, + { 0x6c459920, 0x62714bf8, 0xb8a261e3, 0x053756e7, 0xa42cc894, 0x9eb30492, 0x56800cac, 0xb907900a }, + { 0x5f24390c, 0xd7e25199, 0x092cd43f, 0xfe2e825c, 0x9fff7769, 0x09b2696b, 0xd9a104d4, 0xc27fc111 }, + { 0x8adb1b35, 0x12a267f9, 0x4523b897, 0x66eaaa9d, 0xb9676202, 0x46367165, 0x866f6ddc, 0x8a8578df } + }, { + { 0xd973534a, 0x9229bdd9, 0xf870bc7c, 0xaa8aee13, 0xa10181a1, 0x10f5d3e1, 0xb70bcaba, 0x8af542e4 }, + { 0xdc2609ae, 0x5efaa091, 0x36bde5f7, 0x6f6562fe, 0x847fac9b, 0xd4e11101, 0xcdd8ba8b, 0xe0314e9e }, + { 0xcb64a375, 0x8b1d9dc1, 0x63e83023, 0xae29b9b0, 0xdc501c4a, 0x526ebc1f, 0xb4cb680a, 0xe55b8753 }, + { 0xd06b0247, 0x84203428, 0xcf2f04c3, 0x30e549ea, 0x07526bef, 0x4e70b090, 0xf8eff8e7, 0x247c5e1d }, + { 0xe3ac7058, 0xcc88d2d2, 0x1b34d2e2, 0xb6f23bd8, 0x6087dcfe, 0x329cc986, 0xd03984a0, 0xd10a2c00 }, + { 0xb3c8a556, 0x332e4152, 0xe06e0545, 0x3bb6b291, 0x2eeb5851, 0xaa1f5c5c, 0x869490cc, 0xa895bb2a }, + { 0x1d7fcbfd, 0xb9c86437, 0x641aceaf, 0x30e395db, 0x43cd9993, 0xed4a0f7f, 0x05a4ade1, 0x8a174e00 } + }, { + { 0x06f6c8f5, 0xaa7b65e7, 0x824883d1, 0x0426a4de, 0x17eb4593, 0x582897a3, 0x0d97066d, 0x4d6a6207 }, + { 0x7b6c49c5, 0x8a8cf0c1, 0x7cfe2755, 0xf3107513, 0xf6f4810b, 0x3e4e07bc, 0x1d8f6691, 0xebabbe33 }, + { 0xcfefe6f2, 0x85c9c6fa, 0x8627fefe, 0x51f8f2b6, 0xae0b9e9d, 0xe9ec84ae, 0xa5eee553, 0x8c89d70b }, + { 0xf46e9a45, 0x79319572, 0x6deab445, 0xfd1d2456, 0x7bb0ee16, 0xdb4bb4f4, 0x90f34afd, 0x5504ecf4 }, + { 0xcdffaea5, 0xdce1d9ca, 0x7c1a656a, 0xeab322a7, 0x38cc7850, 0xcdf0ae68, 0x91eba6bb, 0xc3422707 }, + { 0xb707b5c7, 0x51aa0c8a, 0x0d3915d5, 0xd5d3a321, 0x17eca512, 0x711135b9, 0x02a41edf, 0x0730519b }, + { 0xb6a57c9d, 0x00832995, 0x2cfb27e7, 0xfe9ada6a, 0x7b53f507, 0x934fad67, 0x040ea387, 0x32b1d122 } + }, { + { 0x869f3699, 0xb7a0f364, 0x2a224e69, 0x219fa3df, 0xbb5b43db, 0x85a3ee48, 0x0f3b20d3, 0x530b39b1 }, + { 0xce48e6b2, 0x5eb8caef, 0x906856ed, 0x10015a5b, 0xde1a90ae, 0xc5e20921, 0x535a150f, 0xd598d4df }, + { 0xb8f11262, 0x58784fb1, 0x65de8c60, 0x181f3950, 0x5eff1757, 0x2307d418, 0xf435b9a7, 0x3b480d73 }, + { 0x887329c1, 0x0fe1c5fc, 0xe5343697, 0x3b8f7c71, 0x9d796838, 0xb60ac1fe, 0x3efb57ad, 0x1a3cafc9 }, + { 0x33e228b4, 0xc45a4a97, 0x5c0d163f, 0x4723ff85, 0x901ee6e8, 0xa556fcd5, 0x653dacbe, 0xcb039bba }, + { 0x1c1a4895, 0xddbd9d3b, 0x6305c0f5, 0xfcdb872e, 0x1c8cf92c, 0xc905dcdb, 0xd12f12b3, 0x8a08cf36 }, + { 0x36366045, 0x1b00aa3d, 0x275996ef, 0x185a2d1e, 0xf1a5d3aa, 0x097b2a88, 0x316a8a21, 0x3e88ecd2 } + }, { + { 0x04dfd426, 0xd8457dcb, 0x611c6c3f, 0xab0594cf, 0xb56df625, 0x46d51ff2, 0x76322d50, 0x00661fde }, + { 0x0117c123, 0x4a1234e4, 0xdaceaaef, 0xda0de23b, 0x4c68554c, 0x89708fd9, 0xb515bb8a, 0x303e5c75 }, + { 0x74349f95, 0x0ddaf2c2, 0x2ab299e0, 0x4fcb2065, 0x6f93ade4, 0x61258430, 0xd2a529ab, 0x66831f66 }, + { 0xf0823bc7, 0xc4b97ff5, 0xd4654764, 0x488ddf0b, 0x00bb1d8b, 0x40e80366, 0x33f7997b, 0xf0022f6f }, + { 0xcad79cd9, 0xf77b16db, 0xadd94936, 0xf8a210e9, 0xde1f34ae, 0xa9b09c22, 0xf934bbdc, 0x76891837 }, + { 0x9b543cd4, 0x46aeee91, 0xda445bd1, 0xedcf72fb, 0x86b1e7e2, 0x214a30fd, 0x5f67a563, 0xe77fd81c }, + { 0x56ac0d36, 0x84f516fc, 0x548bc83e, 0x62e00da0, 0x9736c949, 0x4a62c624, 0x254f3bcb, 0xa63e272b } + }, { + { 0x4ce55c56, 0x52e60ad7, 0xeb3194ce, 0x50384fed, 0xaa0b71be, 0x5aec83a4, 0xb2e5bb6d, 0x5f4b87b5 }, + { 0xfb6bf270, 0x989eefb7, 0xbe447eb2, 0xee56d6b2, 0x0fb602cb, 0x74dc6a16, 0x6708393e, 0x299cfcce }, + { 0x5983adae, 0x7170c129, 0x5ffd2fe4, 0xc7c51be4, 0xab4db93d, 0x9b13f8a1, 0x0576e1d5, 0x0133b97f }, + { 0xd330c619, 0x97cefae3, 0x08a51e25, 0xff52936b, 0x2bb317e6, 0x8e410395, 0xa2abe512, 0xe560f31e }, + { 0x91e0085c, 0x707fb7a8, 0xe5e921b9, 0x75f44359, 0x3a7d4dcf, 0x1d8c9b2c, 0x4f0beacb, 0x7f47a8af }, + { 0x3c39c379, 0x3844ef9b, 0x980fcd5b, 0x1f827adc, 0x3606cc65, 0x027406aa, 0xbb92a12a, 0x4d820976 }, + { 0x61c9b499, 0x0af292b3, 0x4dc48844, 0xd75639ec, 0x6b47ba27, 0xe9b8232f, 0xec2bfc5d, 0xd48772c3 } + }, { + { 0xaa3a7768, 0xa9923913, 0xc9a4253f, 0xf9d54a62, 0xb461a77d, 0xca4cffa1, 0xcc7d6220, 0x7bbe40c3 }, + { 0xcb7b1279, 0x4e37b168, 0x0e2fc824, 0xe0bba404, 0x045bfb7e, 0x9c058a66, 0x7b76ad22, 0x4f4fa3ce }, + { 0xc1e03d01, 0xd6dc7650, 0x3d4d4b28, 0x255b5d53, 0x3cbf2f49, 0x8dfeac4f, 0x86b7cb23, 0xb6d9cef3 }, + { 0x402b43ed, 0x39c30e4f, 0x09c662c9, 0x04e9881b, 0xf70d86c2, 0x9b1a752a, 0xb8a59b39, 0x29885a2d }, + { 0x035473c5, 0x2ed39e06, 0x86c4bffd, 0xdd4ffb36, 0xfd87b924, 0xc420e0d8, 0xed1e4957, 0x7c8100a5 }, + { 0xacc88481, 0x143f7290, 0x2448e118, 0x923bd5cc, 0x0c41c4f2, 0xdf9301d1, 0xce90119c, 0xcbdc928c }, + { 0x4780f6d0, 0xc6c88d50, 0xb28ed989, 0x675eb0a9, 0x8006b4d8, 0xd4c94d1a, 0xc708fbfa, 0x558611e9 } + }, { + { 0xcafcb6c5, 0x742d27cf, 0x326d8490, 0x0c932a56, 0xc6fa5228, 0xf9a43400, 0x9c15e051, 0xfaf1d7db }, + { 0xacf2dcbc, 0x85abeee9, 0x0ec49808, 0xfe7dc863, 0x1e263e23, 0x04d681c6, 0x98a9b7b3, 0x2ad596c5 }, + { 0x0caa2751, 0x846dcb5c, 0x04b85d6b, 0xe8b0bf65, 0xe45cbd45, 0xe65f8e88, 0x62162b5f, 0xf7b03b5b }, + { 0x7e02448e, 0xc18cbf2e, 0xa8f00089, 0x1297fd3c, 0x224dec7e, 0x985bc5d0, 0x014f4cc1, 0x02344936 }, + { 0x7470bf5a, 0x5d4f9515, 0x8877fc67, 0x6af5878a, 0x06004ece, 0xf846c5be, 0xa27d7ba8, 0xcc1b1636 }, + { 0x8a6f7afd, 0x9e55b768, 0x1abbef11, 0xe2dc66cc, 0xb4fb3c41, 0xbccdc9f8, 0xa94bab38, 0xfe515287 }, + { 0x54eccc0f, 0x7d33ca23, 0x616aab17, 0xad32de5b, 0x24823796, 0x5348c258, 0x5143c9d6, 0x55941476 } + }, { + { 0xff926d03, 0xdfe6bd0b, 0x7133d012, 0x1730d8d4, 0x4e2a9b71, 0xf42bd662, 0x2babb7fa, 0x75b93b24 }, + { 0x25c6bb3a, 0xfd0de901, 0x06bfe425, 0x5476eceb, 0x9a8e9974, 0xab6eb44a, 0x01d3d3c7, 0x6ab3381c }, + { 0x897fd029, 0x92aa33fc, 0x636c8893, 0x45bfa236, 0x9e494c98, 0xaad0920d, 0xce1e1ad0, 0x0ec52f2d }, + { 0x05da4481, 0xef53168b, 0x589201bd, 0x27c04b7c, 0xfae00f06, 0x226672f8, 0xd2a24848, 0xdb48b2a5 }, + { 0xaf1e6e52, 0xc0d66eb6, 0x716f6f84, 0x2f993a9f, 0xe08a9bf1, 0x0ba346bb, 0x07796a53, 0xa90c0e4b }, + { 0x30eca339, 0x1f6171b3, 0x513e7e27, 0xab1a77bb, 0xde3c1c49, 0x2696bd6f, 0x91631039, 0x3b8a1b4a }, + { 0xb8384d6c, 0x856458a6, 0x8ca3805a, 0xae1937b4, 0x7a23ec5b, 0x24237653, 0xf7dd0b6f, 0x1e6b5437 } + }, { + { 0xdd201ef5, 0xc7bbae08, 0x04aa9b04, 0xda770b53, 0x1dc59e72, 0xd1055c4e, 0x0db15e0e, 0x8e5ea443 }, + { 0x629137a5, 0xbc9f5510, 0xc526680d, 0xd1be741f, 0x578e2a7c, 0x6297930a, 0xa9ef7a5a, 0x81607f43 }, + { 0x4f322772, 0xb6c64f9c, 0x5d99f6c8, 0xf2b683e6, 0x50f7add0, 0xa31cc440, 0x46688ddf, 0x87e0b044 }, + { 0x19ba3b0f, 0x9c252df5, 0x2b3c7363, 0x22f61964, 0x7ec403a5, 0xf60b0224, 0x6b32ccf0, 0xca66258e }, + { 0xb1c7df24, 0x82ba09e4, 0xefd34517, 0xa137d1c1, 0xbf986d1b, 0x632567ac, 0x10af96e8, 0xd3619154 }, + { 0xac8e70e8, 0xf51bb0b8, 0x9cb7a9b5, 0x4e154450, 0xd1cdf7a1, 0xd3cc4aeb, 0xa3be7bdb, 0xbc602064 }, + { 0xa727791f, 0x4c937102, 0xac298cd8, 0x1ca7a882, 0xf4ad2dbd, 0xa1226327, 0x37d216ab, 0x1963ff50 } + }, { + { 0x883173da, 0x23e6fde8, 0x5cb323a4, 0x7f64be00, 0x904d3e49, 0x50bf674e, 0x6a5d7369, 0x271c1ac8 }, + { 0x6d12d716, 0x1e4aa290, 0x83148617, 0x4a57d1b2, 0xd2d2eb56, 0xfa59047b, 0xcc42aa9c, 0xe75139be }, + { 0x4ce3057f, 0xa14696c9, 0x3df0a01f, 0x0a4347ce, 0x0e761790, 0x56107292, 0x4237b7c4, 0x8bc97af6 }, + { 0x1e8fe687, 0x0827af6c, 0xce989c8c, 0x5625e561, 0xd3fd9e62, 0x24c80381, 0xd393ffc8, 0x26156972 }, + { 0x9cec5f14, 0xb1d5591e, 0x740ef0ee, 0xcb0582c0, 0x84db94ac, 0xc9d0550d, 0x23974ba9, 0xfd225a78 }, + { 0xfc02f9db, 0xc65d470f, 0x4af43a3f, 0x048f5be8, 0x8844b325, 0xc224c1ff, 0x29a88a71, 0xae3bbe8d }, + { 0x14577832, 0x9b6e8d7a, 0x424c193c, 0x6c8ec12f, 0x648e40a5, 0xb3072ba8, 0x952a1e03, 0x01a41c9c } + }, { + { 0x4f9e89c9, 0x059bd6bc, 0xe1724241, 0xb8390db8, 0x6264bd07, 0x7286e102, 0xafe24351, 0xec4d8f15 }, + { 0x1efb82dc, 0xb2d37a8a, 0xae9d98db, 0x22b12e63, 0x2f2f20f1, 0x0671e722, 0x602efc49, 0x285e1eb6 }, + { 0x36ae4c87, 0xa69d53e9, 0xc7e9a3d1, 0x9392a787, 0xeda31c1e, 0xebdced8a, 0x1bb574ed, 0xfc0ffba5 }, + { 0xadaf5b7e, 0x3cbec253, 0x08d4e073, 0xa6ca7185, 0x817749c2, 0x08e552e1, 0x89478771, 0x09fac11a }, + { 0x4d1b95e6, 0x19ab29b6, 0x0df3377e, 0x49df1272, 0xf574298a, 0x5cdeb60f, 0x8b97defc, 0x7da8ffa9 }, + { 0xe22919aa, 0x2b102fea, 0xd6de0fa7, 0xd82fd943, 0xad3fb73e, 0xf314097e, 0x3ffbcb8d, 0x2a2b479c }, + { 0x5c11cdd8, 0x367b92f4, 0x6b4ee87e, 0x81f554b2, 0x046b41d1, 0x4985a82a, 0xc004855f, 0xad1de15a } + }, { + { 0xe7169f5c, 0xbd1ba144, 0xc149b708, 0x7f54185e, 0xbc204785, 0xef6fbccc, 0x68fd45b8, 0xe8932dfd }, + { 0x698b48ce, 0xd2108117, 0x0e82895e, 0x2e1e0f83, 0xbe2640fe, 0x24264ae9, 0x480d9483, 0x058f8811 }, + { 0x0745c2c0, 0xa5de3147, 0xbe466299, 0xd749825a, 0x0d3cb5de, 0xf85ed138, 0x64c07737, 0x95ce0552 }, + { 0x1ff9c508, 0x3afd6c4e, 0xb7158c82, 0xb388f9f0, 0x2a7ff5c4, 0x99a6689a, 0xb4af8235, 0xb1054152 }, + { 0x2b457c79, 0xec319ebd, 0x3b0dfef1, 0x27bbe811, 0xc9088a0f, 0x0156537c, 0x3d0c8922, 0x31004ac8 }, + { 0x182fe7e2, 0x4aa600b3, 0x9380201d, 0xc7c52130, 0x96539850, 0x79e9742a, 0x2046af9e, 0x5bf607c1 }, + { 0xd96c4bb2, 0xcffd6dec, 0xab6b7d91, 0x4180ad19, 0x608ffe33, 0xdf7806d1, 0x7591cf11, 0xb77318d8 } + }, { + { 0xbd0c6ae1, 0xb0c0d491, 0xe6879544, 0x84d9d47e, 0x0a3c547a, 0x31c255ee, 0x5d8cf93a, 0x51e796eb }, + { 0x7ed47493, 0x47b333f8, 0x13c4aa35, 0x3f50b35e, 0x67d9770b, 0x481196b0, 0xe6169cbd, 0x0822fad8 }, + { 0x373cab1d, 0x414bb7bc, 0x4fcf49ff, 0xba1470dc, 0x52fda29d, 0x28fee38e, 0x2f09b1a1, 0xac6bf20f }, + { 0x018deff9, 0xd940e676, 0xde860481, 0x1ed81388, 0x2e321995, 0xd381c800, 0xae39aec6, 0x5c1e0964 }, + { 0xc4f62878, 0xa400869a, 0xf29f2e90, 0x9ac2b169, 0xe64aed0d, 0x68f182cd, 0x4e71336f, 0x4e647b8a }, + { 0x0b500d5e, 0xbac12fa9, 0x96544435, 0x04b74dab, 0xab2d04cb, 0x241588b2, 0xa111b1bc, 0xa36bf9f2 }, + { 0x19dcc2a1, 0xf91ff95e, 0x17d421f3, 0x35834062, 0x1a52ab19, 0xfc73404f, 0xcd4face9, 0x4e65a9d0 } + }, { + { 0x7d905776, 0x7fa64df4, 0x819bf900, 0x46b0febb, 0x9c3b9149, 0x20faae1c, 0x9a93a9f0, 0x4823f136 }, + { 0xdee292fa, 0xee9dbcf7, 0x77d20122, 0xad71d94c, 0xc5f8156d, 0x415f40ad, 0x15ce83fb, 0x55d7c6aa }, + { 0x31ec30aa, 0x722c93e8, 0x68b618a3, 0x1a9e450d, 0x10f91b46, 0xa1ae7c50, 0x36d06874, 0x19cbca27 }, + { 0x3006b80c, 0xd07fc788, 0x0a3b47ed, 0xd52f127b, 0x54588daa, 0x946a4177, 0xa72ec354, 0x1a420308 }, + { 0x8eb890c5, 0x3627eb6d, 0xbfc0dbea, 0xa7a0ca38, 0xe150be82, 0xbebac52c, 0x2fe40cc8, 0x68014ffc }, + { 0x4baaeec0, 0x959d80a2, 0xa4d3c4be, 0xc8020043, 0x5d3789ee, 0x9de0226e, 0x7ec985f6, 0x7a1729f4 }, + { 0x1ffcc6d1, 0xce7d6162, 0x589492e2, 0x774eb246, 0x7f84649b, 0x1f30ad87, 0xebd3736d, 0x66b45d24 } + }, { + { 0x2bfdc739, 0x4435ff09, 0x5abf9a09, 0xa09ba351, 0x23039ed1, 0xf08274f3, 0x44366513, 0xd145df3f }, + { 0x54e6ed6b, 0x5560f57e, 0xe7b1923c, 0x9a1bd173, 0x8257b048, 0x8c391d84, 0x71d63d0e, 0xc43c537e }, + { 0xaad32313, 0x8effced3, 0x1be1fbde, 0xb6810c2a, 0x1d05f895, 0x78785c2b, 0xb3e93cac, 0xcb1a970e }, + { 0xcc379fef, 0x53ba81f1, 0x4479294b, 0x82f4602b, 0xd7bb3747, 0x28218975, 0xa21d5880, 0x1c5e6a04 }, + { 0x96d20a1d, 0x17472cfd, 0xfdd4feb4, 0x7b2e351e, 0x294d3cca, 0xac0a72cb, 0xff199aa4, 0x897afb32 }, + { 0x00eb79ed, 0x86b45ac1, 0x1c661135, 0x39ce9c2b, 0xbe5d6bee, 0xdac61f22, 0x92b80578, 0x94e611b7 }, + { 0xd2e5ca47, 0x520e5d56, 0xca015d2e, 0x17682243, 0x44fa80d4, 0x7fcb5ed9, 0x93b5da78, 0xbe5a1e6a } + }, { + { 0xf64e7bb2, 0xf1b40d71, 0xdb95a0cf, 0xa7427a13, 0x00eeb19f, 0xbfe4dfc8, 0x81c86d91, 0x5dea2b64 }, + { 0xb4a2432f, 0xd6b9ac8b, 0x40edf752, 0x34c85473, 0x460084d7, 0x8f057c59, 0xfc69f8d1, 0x1a5821ec }, + { 0x30c6d9e9, 0x4592b470, 0x015100a6, 0x6088ca9a, 0x9078c364, 0x3f74ce1e, 0xe3a99e5b, 0x49ff4ed1 }, + { 0x2c22243a, 0x76105001, 0xc5dedf8b, 0x5899cee5, 0x0fc4aa65, 0x8cea7e5b, 0xbad31416, 0x9fd5e8cf }, + { 0xffde96b8, 0x2cb2513f, 0x69bdcb75, 0xadda751a, 0xfc878284, 0x41eeec31, 0x32be6996, 0xf338aa41 }, + { 0x08afd0b8, 0xf634fc79, 0xedfdecb7, 0x189835f8, 0xf36edfa9, 0x1bc64382, 0xa9d0062b, 0x48c5ca1e }, + { 0x74828ae8, 0x61347f83, 0x8d1184e9, 0x8ce93f98, 0x77063d03, 0x25d91ee2, 0x734dda1e, 0x0bffe123 } + }, { + { 0x48cd2249, 0xda5e265a, 0xea457dde, 0xfab3845d, 0x07c87c47, 0xf142b310, 0x619974eb, 0x3fda1991 }, + { 0x32deee86, 0x7d3c5f5f, 0xe6083af6, 0x712a9911, 0x02e92d1c, 0xa867c00f, 0x60448c43, 0x94d3ed65 }, + { 0xaa7c3f13, 0xa6da91ef, 0xa90d6687, 0x00750ad2, 0x077fe68f, 0xac66be1c, 0x4700d554, 0xb5f6b43c }, + { 0xb7a0240b, 0xe2e23986, 0xc9475212, 0xc601e7f2, 0x7da3f5b2, 0x0bd4f294, 0x88d75e02, 0xd20e2a9d }, + { 0xf4afece9, 0xb9be01f4, 0x4010957c, 0x8047cd65, 0x81e53b5c, 0xb5bdd825, 0x67f2ed52, 0x09f6c6d5 }, + { 0x838d9fd0, 0x0f0d2641, 0x90a2f8af, 0xf32ec1fa, 0x5bc2d3a9, 0xf8aab816, 0x31e03159, 0x9b74c12c }, + { 0xea6777b6, 0x4ffc3392, 0x62588020, 0x12d1984b, 0x0b5ee289, 0xa9328408, 0xc2f7c7f9, 0x024d72fa } + }, { + { 0x2e4869ab, 0xc983b221, 0x53e81011, 0x40971816, 0xef018c8e, 0x899ef941, 0xb57ad0d6, 0x4623643d }, + { 0x844ca100, 0xf6f30c97, 0x4e55c01c, 0xfc33b704, 0x80032170, 0x87f69c86, 0x0bd0351a, 0x1cae03fb }, + { 0x8c7fde9e, 0xb35c205b, 0x713bfa73, 0x18ce5013, 0x224e587e, 0x7384805a, 0xf74734c0, 0xaae6e9a8 }, + { 0x4b901787, 0x9ea2deb2, 0x2318f61a, 0x7cb7fd28, 0xed12db62, 0x0404e851, 0x4a40222d, 0x923c2bb9 }, + { 0x3857637e, 0x56e215f6, 0x0de5907e, 0xbef391b3, 0xa3a6b9a7, 0x4b69f44f, 0xff010423, 0x234456b0 }, + { 0x849d6444, 0x28a7d0ee, 0x56ec8fed, 0x949f5897, 0x78ae1368, 0x1603c679, 0xfc15c6e8, 0xc2684a29 }, + { 0xdcf9a449, 0xa31c2276, 0xd678c269, 0xba89cd2f, 0x6b0d0715, 0x4b83c765, 0x6daef79d, 0xf4924608 } + }, { + { 0x4815cda0, 0xbdb17fc1, 0x09ea48d1, 0x882839be, 0x17ac3f03, 0xe1991523, 0xc4a38292, 0x8fa8750d }, + { 0xf409da81, 0x804715e9, 0x69ee1c33, 0xee5eed67, 0x4be92654, 0xfbc93307, 0x8538da2e, 0x8e0ae979 }, + { 0x5db8c378, 0xfecf36f9, 0x438c7445, 0x4b4a9cc9, 0x4367e325, 0xcbb85d85, 0x8d072360, 0x2b3080ae }, + { 0x0d2f6168, 0xbc3e881e, 0xd99d9a78, 0xf68f3a05, 0x3d5ac3ce, 0x5b16c5a7, 0x53401e75, 0x30800a49 }, + { 0xe037731a, 0xbea53cd0, 0x5d9da59f, 0xae83f24e, 0xb38823c4, 0xa09a0710, 0x34c2013b, 0x968d9192 }, + { 0x2755ef23, 0xfbb66fef, 0x5535a324, 0x6bb8de77, 0x79b3663a, 0x67c99d31, 0x550e7333, 0x7681b6d2 }, + { 0x7bb74e2d, 0x621c9ae6, 0xd2b20ed1, 0xc5df49b1, 0xb8f9304f, 0x56d1addd, 0x3d72cdba, 0xa35798dc } + }, { + { 0x5f50103c, 0x3b5a6c15, 0x3b70314e, 0xace5e6fc, 0x4d252093, 0xb059d352, 0xb46aba2e, 0x4e72733d }, + { 0xe59b2322, 0x17c297db, 0xf5e29f26, 0x54468a74, 0x2b764c9b, 0xb5f79e65, 0x965b9355, 0x5800a03f }, + { 0x4cf1dc9e, 0xab50c859, 0x446a4dd5, 0x42bc5ad8, 0x446b5c6a, 0x386b2e7c, 0x026357c9, 0x6ad6f0cb }, + { 0x004569f1, 0x24848ddd, 0xced6a93d, 0x2d3f3706, 0x22e40924, 0x039c749b, 0x8f2c5ea8, 0x3f95eb08 }, + { 0x50000280, 0xc814deba, 0x22afacb7, 0x408b4d3b, 0x759bf8b8, 0x3b41eee8, 0xdac665ce, 0xd0780982 }, + { 0xba30fb96, 0x2d94c9ec, 0x9ef85da1, 0xdd074fab, 0xda4e3e35, 0x14634d91, 0x23cbcf31, 0xbba66b2f }, + { 0x0b3ba8d0, 0x7a1aebd5, 0x7638bf10, 0x19e733a7, 0xe34ff3bb, 0x50261a8a, 0xb20d5612, 0xfe940b6e } + }, { + { 0xd63a19ea, 0xeb41d895, 0x876b5431, 0x86fbf81d, 0xfc6f5595, 0x950fff97, 0x267557cc, 0x92c57011 }, + { 0xecdb9bb9, 0x92ad8656, 0x93a731f6, 0xb9a97049, 0xf38abb8a, 0x4f131ffe, 0x755c3348, 0x16e2e197 }, + { 0x426f4d85, 0x85128517, 0x47457713, 0xf2a15d59, 0xa4bf5ecc, 0xbd44e847, 0xbaa98231, 0x0955ee08 }, + { 0x2e922b59, 0x8c0c392a, 0x1ef50af9, 0x45b3e3de, 0x02b73ed8, 0x2716a4e1, 0xd23635ec, 0x4062053f }, + { 0xfaa7f367, 0xd78f6c19, 0xdde9b489, 0xaf6513e0, 0xa724dadd, 0x202f5a3f, 0x76c9ad50, 0x62881aa2 }, + { 0xcb824d3d, 0x706148c1, 0x03231057, 0x61d54219, 0xed6e6793, 0x87eefe17, 0x72fce986, 0x562a33f9 }, + { 0x436c7be4, 0x547594e3, 0x845d596e, 0x782ba5b6, 0xefda9b4e, 0xf6c210be, 0x1796b5b8, 0x0444e2fb } + }, { + { 0x8541ab7f, 0xd1b0e586, 0xf12ea8a1, 0x4f291370, 0x39de3b5c, 0x63e42dca, 0xef998a83, 0x1bb2333e }, + { 0x130b07b5, 0x8a38e897, 0x99a0eb59, 0x778e5692, 0x57afb592, 0x5f85e4c7, 0xb7875c51, 0x71cf79fa }, + { 0x3c6d915e, 0x0e17fed7, 0xbc4514c9, 0x2c31f4bd, 0xea4aefa7, 0xfc78db3d, 0x502629fa, 0x41f3ff82 }, + { 0xc327b68d, 0x4db9d88d, 0x5afee674, 0xd4b26a8c, 0x6b7db1c6, 0x7966ee34, 0xbd07f9c4, 0x28f71f45 }, + { 0x3f5870f1, 0xe2c1b710, 0x36feaab9, 0x32382d56, 0xf69eb850, 0x954f57e0, 0x1a7a366b, 0x3358d575 }, + { 0x4d0a3a33, 0x54021251, 0xf441d96a, 0xd494e299, 0xc9c0be8a, 0x933c0b97, 0x39ad3fc1, 0xb8840efb }, + { 0x11674a29, 0x967f5f77, 0xb9c38bf8, 0xff62f9f1, 0xb54850ad, 0xbfd48d6c, 0x0a97a581, 0x692dc8a1 } + }, { + { 0x2f63b101, 0x517395d8, 0xdc9b2abb, 0x37356f76, 0xfdac7227, 0xeee6410d, 0x9def4dc6, 0x0beade21 }, + { 0x457c3793, 0x20e82c09, 0x110010b6, 0xa91cab27, 0x6dfc2639, 0xd3afca3b, 0x025a8857, 0xf0c763fc }, + { 0x9ebc194b, 0x72548a07, 0x3cca529d, 0x66cb1887, 0x7604a020, 0x4aa9790f, 0x12f87e77, 0x7d067c60 }, + { 0x4d00b201, 0x219844d9, 0x6d629485, 0x490e8962, 0x44b0d0ee, 0x6e97d450, 0xf0f86ba9, 0x5dd95c69 }, + { 0x0b62933b, 0x9c5100a0, 0x13bcb065, 0x3ed52fc5, 0x07663012, 0xda3a999f, 0x902748f3, 0x00122aef }, + { 0x1eabbd9d, 0xb9d236e6, 0x42512a95, 0x025ede3a, 0xf8cc871b, 0xbb908f25, 0xee0d53bc, 0x8dc61a47 }, + { 0x6dea9030, 0x1374c6e6, 0x1ee4bbf7, 0xf9c87cad, 0x3cb23226, 0x94a5b971, 0xe1b6378d, 0xeae9e8e6 } + }, { + { 0x580441d9, 0x9115b553, 0x473673b1, 0xa9e2dee3, 0x180ca19d, 0x76add331, 0x765b9d1f, 0x31bebcca }, + { 0xae91ef72, 0x88473150, 0x27a2d0b8, 0x7cbaf4ed, 0xf8df02ce, 0x0ed3df2c, 0x43c44705, 0x53ad24d0 }, + { 0x65800c15, 0xe25c9cc2, 0x1688a12a, 0xba273e00, 0xb5d40545, 0xf40d9922, 0x5919440e, 0x1f2149db }, + { 0x7ef462d1, 0x74e7c831, 0x37a741e1, 0x628960ed, 0x80104d78, 0xcd38a637, 0xacb12572, 0xf7128b8d }, + { 0xbc21c9a7, 0x602802ed, 0xa37de205, 0xf1dac32f, 0x5428ae64, 0xb7078118, 0x614dfb16, 0xaffa6b2d }, + { 0x4d7d48e3, 0x2a0122b7, 0xdac6e5a9, 0x33159bdc, 0x02d660a7, 0xf7939283, 0x81458649, 0xdb9b7684 }, + { 0x12315172, 0x04a82fd2, 0x940f14ff, 0x6e4ab43a, 0xbe2736f9, 0xd0dd1cc3, 0xea0746d5, 0x3eee16ae } + }, { + { 0x1a033ac0, 0x515cf68c, 0x98e00589, 0x3946f914, 0x14802c73, 0x1ecdaaea, 0xc570c750, 0x5829a29d }, + { 0x18fc9df1, 0x345c921f, 0xfe4a264e, 0x04de69fb, 0x3f28160d, 0xd43b01f7, 0x9fc3e5aa, 0xbe97f595 }, + { 0x6538a7ff, 0x797e9d4c, 0x80e8a24a, 0x8badff53, 0xd08aec53, 0x69d90f45, 0x054f1516, 0x16b96c75 }, + { 0xc8ba209f, 0x74a0139a, 0x4168ce4f, 0x93ae49bf, 0xbae11904, 0xed3c3e8e, 0x46607253, 0x15983c08 }, + { 0x7655cdd9, 0xc65c5ce0, 0x3567a4da, 0xb4428791, 0xf72683fe, 0x1de327d4, 0x735b1f92, 0x0b58c466 }, + { 0xf2a5be47, 0x02d072e6, 0x8ff791a9, 0x6cb3a717, 0xd204b478, 0x36e168db, 0x5656617e, 0x8cc69c8c }, + { 0x710fd80e, 0xe836406d, 0xf534da77, 0xa3151cab, 0x89326bd5, 0xe9ba2877, 0x4fe8ea31, 0xd4cea8ce } + }, { + { 0xc584b6f9, 0x8839cb26, 0x169e9d7b, 0x3b591bfa, 0x3340bdf0, 0xa3734a4d, 0xaf75417c, 0x5d690ffb }, + { 0xf644ffb3, 0xf9734c9e, 0x09737ce9, 0x554814e6, 0xd877fae4, 0xaa710bd0, 0x12d668bf, 0xda2c7036 }, + { 0xd1863def, 0xd09c5ff8, 0xd6294b22, 0x2f6213eb, 0xe64b4010, 0x31865ed7, 0x6143de06, 0xdb7391f1 }, + { 0xed981388, 0x6e43fc01, 0xc8c71f20, 0x51903b55, 0xc9d5074b, 0x94bc02ba, 0xf1cc290e, 0xfbe19f16 }, + { 0xefff1c3e, 0x67e02565, 0x3fce573d, 0xc0acced9, 0xe907485b, 0xb700abb8, 0x504e7b77, 0xb858bff1 }, + { 0xb06f7471, 0x39f8b9b7, 0x95ae227c, 0x23bfe932, 0x741b18ff, 0x9370926e, 0xe9785c7d, 0x5d30c235 }, + { 0x50ca57f9, 0x38dd2adf, 0xf613fc5d, 0x8c294ed7, 0xb2426ea9, 0x5596e0e6, 0x2ad84875, 0x350ad8ca } + }, { + { 0x5f8264f0, 0x64167ec0, 0xd90cd567, 0x57d8268f, 0x51c08f23, 0xdde1cf3a, 0x3cb0e091, 0x5410f3f0 }, + { 0x721bda50, 0x950ba07d, 0xb60d4508, 0x06363cf3, 0xa4601369, 0x445c6e45, 0xbcd5187c, 0x614be58b }, + { 0x7912d9b3, 0xea239835, 0x0cfb3934, 0x31f688ac, 0x22bdb30e, 0x528daed5, 0x1e894f9b, 0x706e0395 }, + { 0x1819c1b1, 0x32af07f8, 0x86a9525a, 0xef48b2fc, 0xe0f66330, 0xb191ddfb, 0x5da891c2, 0xd83f78ad }, + { 0x05f6bd22, 0x2b245f57, 0x8610bcd9, 0x6e412ae2, 0xa4dc56c9, 0xd335d60d, 0x7bf503a2, 0xb21bdbcc }, + { 0x4c715050, 0xb2dde657, 0x147ef33f, 0x36352fd1, 0x4bc3b8ed, 0x9c4c12ed, 0x662d3d49, 0x1d3698d6 }, + { 0x2efffdfc, 0x2eb6f5e6, 0x62dde0c8, 0x9d26bcb4, 0x84e61323, 0x7e70a82e, 0xb32e941f, 0xa254113b } + }, { + { 0xa6ff1777, 0x27d251d8, 0x8540a329, 0x0741430b, 0xc7391e0e, 0x3550c395, 0x2fec9b1c, 0xe86fa21b }, + { 0xe2fe7267, 0x33201f35, 0x6cc96327, 0x289298de, 0x62cb490a, 0xa4f2aa86, 0x69875564, 0xc844cb9f }, + { 0x3e2aa917, 0x6b047dab, 0x96b2cb67, 0xd09ba594, 0xafbac62a, 0x0add2957, 0xd448ec45, 0x39812842 }, + { 0x7233ec1f, 0x67bff4cc, 0x34fc2efc, 0x6ab6d126, 0x83fb8efa, 0xb488edac, 0x8a4b8bcb, 0x6234fb79 }, + { 0x0fecd72e, 0x3c3335f7, 0xeb5d72f7, 0xa8ebea41, 0xbb3829b5, 0xe2c9f088, 0x5e37b940, 0x48162648 }, + { 0xf1c5cca2, 0xfefc97be, 0x37496eba, 0xe4c9c004, 0x8f896225, 0x02cd923f, 0xb68be2a3, 0xfa4f4b65 }, + { 0x314331d8, 0x70a8d9d0, 0x0c922187, 0x951be164, 0xd716d74d, 0xc1cb6b67, 0x647c2a9f, 0x1594601a } + }, { + { 0x94203d96, 0xf446beab, 0x0f8b20bc, 0x389c59ef, 0x242d503a, 0x1baf43c8, 0x3600cf74, 0x1de5e5ef }, + { 0x97a63b7c, 0x3477df53, 0x98cd129d, 0x386c7fd6, 0x820b196e, 0x4eb81e8b, 0x205bd83c, 0xc0286a83 }, + { 0xe89c538c, 0xaf6aae3c, 0x8104897d, 0x65453323, 0xef8fc678, 0x80e12904, 0x66939201, 0x5e9ba64f }, + { 0x9c8f7951, 0xf6e54589, 0x687be629, 0x648ba88c, 0x520841c5, 0x302871a0, 0xc25a7137, 0xbc0a9da6 }, + { 0x94a51875, 0x39699a79, 0xaa4a5339, 0xbba551a6, 0x7be6c38c, 0xc7593768, 0x799d2123, 0xcfba86ec }, + { 0x9514f3f1, 0xe4f7e94a, 0x5f051133, 0xcdb33cb2, 0x9a7cff38, 0xe5e1b54a, 0xd69d469c, 0x486dbd33 }, + { 0x897924a3, 0xe2765105, 0x25436a0d, 0x363607d0, 0x2599633d, 0xfeb62269, 0xe3915522, 0xe5578e01 } + }, { + { 0xf7c8d214, 0x4bd95e57, 0x3a9f3a70, 0x93167d4d, 0x7f35b392, 0x7e459e00, 0x1bd8cbfd, 0xa2ba311b }, + { 0xc3b4afa4, 0xb2666351, 0x5a2790f0, 0x6a9bd3c0, 0xf4656b2b, 0x57a7d3dd, 0xc1cb2779, 0x8ac87671 }, + { 0x22fa1ac7, 0xd8a47088, 0xfa7a7ac6, 0x60e6c97a, 0x0f6e93a4, 0xb34a3b69, 0xae5ca04d, 0x121396b9 }, + { 0x9e5056b3, 0x91208a5e, 0x77f6a5bf, 0x65d8ce69, 0x57d8e680, 0x4a724283, 0xd622ffc6, 0x470969b6 }, + { 0x9c10a010, 0x93b62255, 0xde58d702, 0xec0d4d4a, 0x01b2f957, 0x86f0b84f, 0xa06604fa, 0xddea1447 }, + { 0xeca81c4c, 0x0212f154, 0x91e85b88, 0x5de81230, 0x76f2fed7, 0x93d938fa, 0x1a9064ad, 0x843e29c3 }, + { 0x6d511162, 0x673545e9, 0x6273f869, 0xea9b2d81, 0x66cefe10, 0x858e956f, 0x020d1fd8, 0xaca8b918 } + }, { + { 0xb215047f, 0xb9cad797, 0x115a2022, 0xac8c2cfe, 0x137eb97d, 0x31db80f8, 0x63e24c78, 0xe4c82b42 }, + { 0x3a87484b, 0x3bb2bbee, 0x2d21e574, 0xd8951ba9, 0x5d145a36, 0x26128d8f, 0x192584dd, 0x304ac2a1 }, + { 0x81663073, 0xb3f6ac8f, 0xfb22388b, 0x146fad89, 0x2f7e9fef, 0x094601e8, 0xb146faa0, 0x45e9b342 }, + { 0x8d01f6bc, 0x3b482017, 0xd83071fd, 0x658d6b53, 0x82a395fa, 0xb39b15a1, 0x7802c350, 0x9fe99597 }, + { 0xb9595963, 0x9724da84, 0xdd078337, 0x6f36029f, 0xa4b75a7f, 0x539abc90, 0x972fb4a7, 0xff29f0e7 }, + { 0x3f2b4a48, 0x1b096082, 0x800144af, 0xa3cd3f29, 0x7f4ddf99, 0xaeaf6abd, 0x585faf54, 0xc6abb2e5 }, + { 0xd4c10800, 0x4e4d76dd, 0x41a1a77a, 0x7a696586, 0x48deff36, 0x6c547df2, 0xd8f94c62, 0x4425b8c8 } + }, { + { 0xc253f1fd, 0x837f3b31, 0x0b5ccb2c, 0xe3191c69, 0xef0262dc, 0x7a36afc3, 0xe2aac82c, 0xeb8b48d9 }, + { 0xdb01f19c, 0x94a9b1f1, 0xe45b89be, 0xd967f07c, 0xda369655, 0x4b4fde39, 0x50301229, 0xa999282d }, + { 0x5c451b88, 0xa8ed1424, 0x1f28a883, 0x21e8058c, 0x36945b83, 0x825d76ff, 0xa767e753, 0x65ec9f62 }, + { 0x797e3bc8, 0xc1e87948, 0x39a0a9c7, 0x10cba850, 0xc107360a, 0x64c93e68, 0xb40d111c, 0x809e4b58 }, + { 0x22d23cf3, 0x5adbd67a, 0xbd94048f, 0x3bcfb5b4, 0xc0b7b35c, 0x778fa0f9, 0x9482d523, 0x0ae3280e }, + { 0x69fe1cc8, 0x464dcbd2, 0x5f11c964, 0x1d8b0886, 0x5b9cef4a, 0xee230459, 0xaf385e86, 0xfbd94ab7 }, + { 0x3953c1ea, 0x32adcdd4, 0xb958d003, 0x870cf263, 0xa99378de, 0xe7e4d956, 0x7acb3b61, 0xe790b88e } + }, { + { 0x829ef43e, 0x619388f0, 0xb3a1aff6, 0xdfe0a153, 0xd06fd2e2, 0xa81a36fb, 0xc55c4bef, 0xb3fdd022 }, + { 0x4e6b3c8f, 0xd69af789, 0xdfdc14e9, 0x549f2d8b, 0xfd67b5f4, 0x76794a70, 0x6e126224, 0x88fd42f2 }, + { 0xf7047035, 0xa905db3f, 0x49b4e963, 0xa3759c8f, 0x89a78818, 0x2c50346d, 0x8e2d5e83, 0x127915e4 }, + { 0xf48078e8, 0x1a4ca7ef, 0xfc4ee78e, 0xdd6f7982, 0xe4afd40c, 0x73cada61, 0x6547c764, 0x1c17d44c }, + { 0x8f6d2fc3, 0xda86e5b9, 0x93fd6d0d, 0xd0b1f0b2, 0x0a6909f4, 0xdc3b5e24, 0x90fced49, 0xf624b0cb }, + { 0xb4266815, 0x4f8ee3cd, 0x53c7dc14, 0x029ad9b3, 0x8188c70c, 0x4ed0d4a7, 0xfab23b81, 0x68c3f9cb }, + { 0x3fdd8763, 0x39c6e87a, 0xfda0dd8b, 0xef70ca8c, 0xe75125c0, 0xb2cd8fb4, 0x08eb626e, 0xdde63074 } + }, { + { 0x17b23292, 0x606c1866, 0x9c18cca3, 0xee3a27fb, 0x3995b5c6, 0xdd3302e4, 0x9e27dc11, 0x5fbc67c7 }, + { 0xcb105782, 0x34c7b524, 0xe3d46ab3, 0x66d18f3d, 0x3548dcf4, 0x68f6e040, 0xb60411df, 0x078b5f25 }, + { 0xac587cd1, 0xf32c95ba, 0x7cdee74a, 0x1dcc3fcf, 0xc36d8ac3, 0x53bee54b, 0xf0ac4193, 0xe65bd8f3 }, + { 0x479b1639, 0xe50a52f1, 0x53d42f44, 0x27897116, 0x428a3068, 0x74779849, 0xcab2a9c6, 0xf0f83a6b }, + { 0x9b45bd8d, 0x557e0d6f, 0x8102e9fc, 0x934ab0f9, 0xa15136dc, 0x0553e370, 0xaf9e4586, 0x96dda777 }, + { 0x1b13233d, 0x8782b3c7, 0xf6c35a78, 0xc3cb451a, 0x335bda6a, 0xc7052bd0, 0x5ac4f651, 0xe693e88c }, + { 0x7c055aa1, 0x8c3b1ba6, 0x8d63f4b3, 0x2947c116, 0x0047b9db, 0x445c1a9f, 0x68f88f78, 0x942cb5ef } + }, { + { 0xd805f7b7, 0x5a8dcc40, 0x553ecc20, 0xfb603dd2, 0x39753deb, 0x548a6f28, 0x67ed99aa, 0x78fd3ed0 }, + { 0xe50049f0, 0xde3fadfe, 0x3c87dc57, 0xead7b0ee, 0xae277a2a, 0x0cfbb0a6, 0x3847a513, 0xc69acd80 }, + { 0xb1d5dc3c, 0x66e9b52f, 0xfa9d4ed9, 0x4e29e3cf, 0x0d463727, 0xfd384d8f, 0x65c48f17, 0xbb2aa27d }, + { 0x76ac355c, 0x003f9aff, 0xdee49cf5, 0xbcc92cf6, 0x46778f2e, 0xb914ed52, 0x0b5019c8, 0xde41e619 }, + { 0x63c34226, 0x931232a8, 0x3b02c1ce, 0xda47aada, 0x761aadbd, 0xf8922f26, 0x428154ee, 0x54a868c2 }, + { 0x71b944af, 0x831b381f, 0x6c540c8b, 0xf63eafd5, 0x52cd4dc0, 0x9d1cd861, 0x2d581bc3, 0x7a668bcc }, + { 0xc0471789, 0xa99aa85e, 0x4180c9f0, 0xc2d74dc5, 0x3da366da, 0x2be54eeb, 0x7f112a06, 0x7cadbfed } + }, { + { 0xaae29aa0, 0xfaf5e052, 0x36eaf2dd, 0x109bbcf6, 0x7a32f80a, 0xdcd774b9, 0xa73cc8cb, 0x020120f2 }, + { 0x35dbdb7c, 0x1df8d6c9, 0x9d31e334, 0x474ca376, 0x85d72d99, 0x9d5891d4, 0xac6bc84c, 0xef1edc41 }, + { 0xa0a12ae0, 0x39087695, 0xce7be7de, 0x4f4cc09f, 0x2ce6e6c8, 0xe302f577, 0xd1bf201b, 0x4c67b486 }, + { 0x0482e45a, 0x8c588bcd, 0xa1784b77, 0x01e5afab, 0x385ff123, 0xb9048cf6, 0x5b64b460, 0x82beae14 }, + { 0x53bdad3e, 0x71e76e58, 0xa33e2a3d, 0xf04c957f, 0xbcac35c3, 0xc13b0d6d, 0x5aa18177, 0x5376c3f8 }, + { 0x8fd59904, 0x1ac23373, 0xa7d95104, 0x4ea0e6b4, 0xc9751244, 0x21291029, 0x39ba0a58, 0x03ff99b3 }, + { 0x27ce22c1, 0x61a59a1c, 0xecb951b1, 0xbec43d3c, 0x6f1b816f, 0x71031ad6, 0xa831c3bd, 0xfd563429 } + }, { + { 0xc1c4a945, 0xc5e5fa84, 0x428871d5, 0x64e0cdfb, 0x8a437645, 0x3891bff3, 0xca4a09dd, 0x34a1f315 }, + { 0x1d11a401, 0x2c203bbf, 0x1af265b9, 0x13d6e524, 0xaa82fc1c, 0x79158bb6, 0x04504769, 0x56998ddc }, + { 0xdcb5ce82, 0xd7f016bc, 0xf7ac3b8f, 0x01a80e14, 0xeb67b2d6, 0x3a7164e5, 0x697e95fc, 0x48e71fb4 }, + { 0xa97977ac, 0xa53a014f, 0xa340a5eb, 0x2582fbaa, 0x07bab09d, 0x946a7d59, 0xb0663162, 0xaec8e0c7 }, + { 0xe77e366b, 0xaeb9162a, 0xcca11a3d, 0x6e277e42, 0xc622d3df, 0xec6c75d3, 0x486f5ebf, 0x6569c183 }, + { 0x038ad1a1, 0x92ebd412, 0x02ecb91e, 0x5c328807, 0xf83da629, 0x889f30a8, 0x9f64ef2a, 0x753083b0 }, + { 0x0e3f90dc, 0x136957cc, 0xb90ee7cb, 0xad918b75, 0xd8f30259, 0x070fb929, 0x970da771, 0x10dd6e58 } + }, { + { 0x7fff17bb, 0x7d0fb982, 0x64fb1d31, 0x801ae173, 0xc5494808, 0x82f639b3, 0xb08f8be7, 0xe177e1aa }, + { 0x22fac75d, 0xe296fdc7, 0xc7ea5f7c, 0x543d75ac, 0x0aa41471, 0x0de52abe, 0xc5be0766, 0xb69b3cc9 }, + { 0x58a6837d, 0x86d09580, 0xc888ae86, 0x59a9dbfd, 0xbc6822b9, 0x00408db7, 0xa8f132cf, 0x35f53d02 }, + { 0x4adb8be1, 0x78ab1d2b, 0x58eaecca, 0xe6fdb954, 0x086292c5, 0x929e83c3, 0x49cee217, 0x30f798ae }, + { 0x11902b99, 0x2f9d30f1, 0x065f1519, 0xe924a28d, 0x5f6ed7ed, 0x5e3070af, 0x922f3bd8, 0x33ca22cc }, + { 0x16bccb3f, 0x083bc5db, 0x2717bdfd, 0x1cb44f6b, 0x04eb1d12, 0xd68fb3ff, 0xf18f5279, 0x02617755 }, + { 0x1f4f07e0, 0xae0ed9e7, 0xac4583d9, 0x5c846729, 0x6c8b8ca4, 0x64c0f711, 0xef2c6393, 0xd7736f0f } + }, { + { 0xbccaea79, 0x916d9cca, 0x6f6c174b, 0xa509bea0, 0xfd98ca6b, 0x798ed2a0, 0xa13c12f8, 0x24c09419 }, + { 0x45b0805a, 0x4534727c, 0xa7330146, 0x66202e8d, 0x18b0aaec, 0x497d6dff, 0x377e3e4e, 0xc4aa4662 }, + { 0xdf113db8, 0x2a5f3151, 0x9e231c7d, 0xf2cbabc1, 0x904432de, 0xe572ade2, 0xda149538, 0x764ec80a }, + { 0xd3e4743f, 0xad3cb3b9, 0xe4de5a8c, 0x362a1644, 0x27b0cd95, 0xc99fb49f, 0x28113b09, 0x4d512283 }, + { 0x614b8768, 0xcd42c400, 0x0e4b8e42, 0xbc4287c9, 0x8761ba46, 0xa01acb20, 0x26632b54, 0x0d1755cd }, + { 0xa4de3dfb, 0x6cf5d931, 0x2b40375a, 0xb9ac1ad0, 0x4e2a7093, 0x9940fb7d, 0x4a526d30, 0x7c5ef62b }, + { 0x372cf61d, 0xf6d5fcf7, 0x1d14bd8d, 0x94579792, 0x34aa397c, 0x5ca62a08, 0x35a86b02, 0x14c75383 } + }, { + { 0xae683995, 0x3e84150e, 0xe0d3b2a0, 0xa992c8ae, 0xe9e7b33b, 0x76ede638, 0x3c686061, 0x36216c8d }, + { 0x0a90129f, 0xb462da31, 0xd50d3633, 0x1214fb62, 0xe5161a97, 0xb06c0d3e, 0xaf89e3f4, 0x9e107830 }, + { 0xf6bfb46e, 0xb16b9ed1, 0x493b6514, 0xa7dff787, 0xdf8e488f, 0xc8ce8222, 0x8fd52f6a, 0xa6b4afee }, + { 0x00e0900c, 0x74f6faa8, 0x38fe0714, 0x11d68e12, 0xb2be4db0, 0xc50baf27, 0xc2a971df, 0xfcc60b2c }, + { 0x558997c0, 0x2e9f279e, 0xc7da06f7, 0xb2d5a66c, 0x888961dc, 0xc0716af3, 0x465afda8, 0x9563cf7e }, + { 0x8aa01158, 0xaa3a11b2, 0xbc46eddd, 0xe4d30f46, 0x2c48ad46, 0x2f697c2e, 0xb052aa2f, 0x4258d424 }, + { 0x900a7e76, 0xc9e24e68, 0xd103e0b2, 0x905e8357, 0xef994df5, 0x19d19bef, 0x91177797, 0x817a5f93 } + }, { + { 0xf0680a39, 0x56ec06e4, 0xc276f5bd, 0x375ef775, 0xe4e31ffb, 0x335fae5e, 0xd0540873, 0x6d6a91d8 }, + { 0xa6e75e8c, 0x3eaed6c6, 0x7d1aad1d, 0x431fa0bc, 0xe7dc54cf, 0x7d01a58e, 0x9b373b3b, 0x05972443 }, + { 0x2240d9e7, 0x0a99f104, 0x9e7b0d87, 0xe3dd4ec1, 0xbe262434, 0xcd7e9368, 0xda172b64, 0x0c80f89f }, + { 0x8a32479b, 0x813870f4, 0x9602215f, 0xf473b93c, 0xf3bd2430, 0x1c18aa53, 0xa89a2bbf, 0x07e846ae }, + { 0x723b2e62, 0xf5ade945, 0xcdd2acf2, 0x910e35e9, 0xdc538032, 0xc147e3b1, 0x15204ed3, 0xe69493e0 }, + { 0x51271a23, 0x1d4c5b74, 0xa0e926fd, 0xa00e2971, 0x70287ae1, 0x29115d0b, 0xf3489230, 0xbcf17a85 }, + { 0x09b3414d, 0x1d165016, 0xc6ec18d5, 0x9ea6765b, 0xe63744ac, 0x88cc920d, 0x816b6d20, 0xb749526e } + }, { + { 0xa9558de9, 0x563a30c3, 0xf131a8dd, 0xfc83e745, 0xfddb8c80, 0x5d119a00, 0xddd1b73f, 0xb7b0e877 }, + { 0x94f78ac0, 0xe1912c33, 0xbbe07a7d, 0x27b76ab6, 0x299f434e, 0x02e155db, 0x518eec1b, 0xcb5ae470 }, + { 0x7e337565, 0x38ef431d, 0xe513ef75, 0xf56f508d, 0xe9feb1c8, 0x99ae4d92, 0x4abae804, 0x2fe114ba }, + { 0x9e083058, 0xbb7c0f1d, 0x69efff2a, 0x17f3f27a, 0x6411414a, 0x82ff5fcb, 0x7e8c4eaa, 0x2f89d135 }, + { 0xa4246ea7, 0x803aff5e, 0xfc1d9c26, 0x2e425c19, 0x71852375, 0xf9900481, 0x317571d0, 0x512de239 }, + { 0x27278683, 0x2f50a60d, 0x0fec7db6, 0x81d67782, 0x6be16992, 0x0289ac47, 0x72ac7cb0, 0x011060bd }, + { 0x51561a11, 0x6e1d88c1, 0x8d63898e, 0xb6302a29, 0x45508af7, 0x7ab02923, 0x3300b64c, 0x18657075 } + }, { + { 0x93f705e7, 0x0b147235, 0x4579614e, 0x7955dfd5, 0x859d3964, 0xcb02ffd0, 0x91eb2e37, 0xf21aa087 }, + { 0x9cd1ba88, 0xfdf4f40d, 0xa5d82ffa, 0x402f925e, 0x02410072, 0xe9ab67ce, 0x57489af6, 0xa5c28f89 }, + { 0xdf5c6569, 0x6f6b4a1c, 0xeba0b602, 0x52c4d57e, 0x873757fa, 0x211ecd13, 0x325220ff, 0x17684f9b }, + { 0xbf48a26b, 0x1164e929, 0x68f2aa93, 0x2ae3ff90, 0x2fca69ce, 0x46ea779f, 0x149abe71, 0xf037d66d }, + { 0x2f692586, 0xc4786748, 0x022ed0d8, 0x35b30c7a, 0x4d42960f, 0xab8f12e6, 0xf1583d9a, 0x648650b5 }, + { 0x879b353f, 0x39d49315, 0x59a5e626, 0xa0536bd4, 0xc14eae98, 0x590e874f, 0xb3facb2e, 0xf40c444a }, + { 0x87f06816, 0x73316158, 0x8e8994ce, 0xc72cdabc, 0x98b88662, 0x51a7ca8e, 0x4bc81e4e, 0xf35ae046 } + }, { + { 0x3b5b086e, 0x6f799891, 0xf152c74f, 0x8ad181d5, 0x7057c78a, 0x6c289635, 0x3ce24060, 0x722c288d }, + { 0x1006d5aa, 0xabcec468, 0x82d3529d, 0x53da6135, 0xc62d75f7, 0x15421578, 0x271025ff, 0xad983b85 }, + { 0x39e3822a, 0x6ded14ca, 0x6c14077f, 0x923e1de4, 0x5c26dcca, 0x0ca1fae8, 0x9144978c, 0x3aa5ffaf }, + { 0x6a606b33, 0xbaf2a768, 0x6b05c4f8, 0x9de48ab4, 0xb5bd4d6d, 0xa8c57a5c, 0x429d6625, 0x035270c5 }, + { 0x44ec8799, 0x9faf6948, 0x15a7ccf2, 0x8ca09a6b, 0xe5c2a350, 0x7b14fdbc, 0x757e7d54, 0x8beefdfe }, + { 0x6404be41, 0xf3602368, 0x0a2388d1, 0xe309fac3, 0xbf1b9363, 0x349b5d55, 0xc97fd510, 0x7bb679c3 }, + { 0xbf51ea31, 0x7cfcec24, 0xb0fe8f2b, 0x0189b700, 0x29f06aa5, 0x614623e3, 0x19c3fd69, 0x6507077a } + }, { + { 0x33544daa, 0x4eb55b5d, 0xb9ba06a8, 0x7a1779de, 0xaac53436, 0x15d46ddb, 0xc20829a6, 0x4def4316 }, + { 0xa8433bf8, 0xfa3b3cc7, 0x2553a9a9, 0x62c92d3f, 0xbd133110, 0x92394b6a, 0x773b28ef, 0x7f278998 }, + { 0xe98ed40c, 0x70dd13f0, 0xa1fed2d8, 0x32999d19, 0x99b6bdc8, 0xb6c50812, 0x09d4cef6, 0xff970739 }, + { 0x7a05b868, 0x3b70b170, 0xb2c5ae8f, 0x99d39a25, 0x588d1612, 0x7affbd2f, 0x3223c05a, 0xbf4a2ff9 }, + { 0x14b1dd73, 0x2fd2c36a, 0xbe7e3cd9, 0xef1a83dd, 0x6b5ebac0, 0xf664740b, 0xf770ad79, 0x916afecc }, + { 0xe7b72067, 0x8a299277, 0x7ceeb323, 0x1d0a35b3, 0x963158c5, 0xf34dcdd5, 0x7d51e045, 0xf0cba700 }, + { 0xbc2e26da, 0x2d7cf4d2, 0xb1fe2ec7, 0x739c726b, 0x56f096a9, 0x304a33af, 0xfad91e73, 0xa052219a } + }, { + { 0xbeeda331, 0xeb9064fa, 0x826ecbd7, 0x350672d4, 0xf3e89f89, 0xa6b8bf8b, 0x770ec306, 0x3d6ec7d0 }, + { 0xe6d4084b, 0xa98ef16c, 0xf5d90c69, 0xd8ff6cf1, 0x40515d2d, 0xa66e0a26, 0xc5026f42, 0x49b8bd57 }, + { 0xcec0399f, 0xb5ca3155, 0xa97efc2f, 0x026a1550, 0x74bcb8b7, 0x4ea20409, 0x8626edcf, 0x981007ac }, + { 0x30bc8d63, 0x72fab04d, 0xdde894fc, 0xbf7de506, 0x96c87efb, 0xb2d34273, 0x240ac85c, 0x8acc1c1c }, + { 0x52968b7c, 0x0557f36f, 0x0ae5f576, 0x3e62a412, 0xb2664dd4, 0xaef0f476, 0x7c548e2a, 0x530a4f59 }, + { 0xcd106992, 0x4a3c4f25, 0x34f20563, 0xb76f3555, 0x6b7464f7, 0xec4f76eb, 0x0bd8c988, 0x49c492b1 }, + { 0x92fa08f2, 0x144d3f7d, 0x7d58ced2, 0xd22b7cf5, 0xf0187b42, 0x55d861e8, 0xcd019afe, 0xe9a1f11d } + }, { + { 0x9a436489, 0xebb996cc, 0x58762ba9, 0x675ba671, 0x3493bdab, 0x7e0ea401, 0x44f724b1, 0xd6024b8c }, + { 0x4e1846b2, 0x5181068b, 0x1a54b8e7, 0x9646ded0, 0xfe456268, 0xd1b00fad, 0x05dbc6c2, 0xea34ecbd }, + { 0xf7d502f0, 0x1d3aa8c1, 0x58d37b4b, 0x694d554c, 0x2b6076f2, 0x8748bc5f, 0xf8d82aa7, 0xa8c4c813 }, + { 0x2e751abd, 0xf08fac6e, 0xd35325a7, 0xcc47fc1b, 0xca975ec8, 0xbb331169, 0xb990cb9f, 0x24573b56 }, + { 0x22e24f5d, 0x90161c2e, 0x9f6f29b8, 0x64a3b6c6, 0x0b014332, 0xdd078178, 0xd0af41d7, 0xe8c2e047 }, + { 0xca6768e5, 0x9e824241, 0x8b232668, 0xb5b62a53, 0xcbe29e50, 0x52f4a2fe, 0x79ae4a35, 0xda534d00 }, + { 0x167387d5, 0xeb0490e9, 0x95090fb2, 0xca19e74a, 0x1c04dfa9, 0xc5f38f5b, 0xe00cabff, 0x0c17ba81 } + }, { + { 0x6631fc79, 0x52c30423, 0xe639f29b, 0xffcb6692, 0x85a3327a, 0xd5401982, 0xcc87e1a8, 0xdb1114b6 }, + { 0xa1b081bb, 0xd244bdd8, 0x17445435, 0x11600396, 0x4fc04562, 0xb7b8d8c1, 0x3dd9e83d, 0x5388fc2c }, + { 0xbf922504, 0x57f8841f, 0x130a604e, 0xe5eaa7e0, 0xd5ab1d0b, 0xf245fcdb, 0x5513cac3, 0xedbd9ec7 }, + { 0x49f054b6, 0x9f3afcaf, 0xa2ffd2a2, 0xab25bc2d, 0xe5c78937, 0x95feba83, 0xba62ccf6, 0x8f0be368 }, + { 0xa767cab3, 0x994803d8, 0xbde221df, 0x8e1e71c6, 0x8b78c799, 0x91f0aef0, 0x36c2fc52, 0x3161862e }, + { 0xff6f24fc, 0xa69ff27c, 0x119104a0, 0x51d902e8, 0xf7b6be77, 0x5ce92ecc, 0xaaad6af3, 0x1da6fff2 }, + { 0xffd1c2c7, 0x5da2b662, 0x9d5eebb2, 0xae3ec072, 0xa91996c3, 0xa53a8d2e, 0xf2407c14, 0xb22af9a7 } + }, { + { 0xc5714cb5, 0x8591b545, 0xd2db5bdb, 0x9e9b936c, 0x124db819, 0x2bf9b440, 0x7708843d, 0x7436f47f }, + { 0x74d277af, 0x7a09629f, 0x2c400241, 0x081b6e23, 0xc0195a28, 0xb5aeaff4, 0xb567feb5, 0x3c12ee9f }, + { 0xbda7c475, 0x07c805ba, 0x461488ee, 0x41494226, 0xa7533642, 0x55341d3d, 0x42d59e76, 0xdcaba05f }, + { 0x55ebdbd6, 0xe07b35da, 0x00737a47, 0xf5538726, 0x4e150f89, 0x47581944, 0x16d60f6c, 0x7d50492a }, + { 0x2d678829, 0x33c9861d, 0xe7419c54, 0x963b2e25, 0x0919ffb8, 0x2e7418c6, 0x00f595dc, 0x1b2734b3 }, + { 0xfa8c3a83, 0xa182c951, 0x203a4716, 0x10994d1a, 0x97234f60, 0x779a3fc0, 0xa2f72c49, 0x4811ae01 }, + { 0x926de2e3, 0xc9d02e7d, 0xe745b89b, 0x7210a4fa, 0x58228e67, 0x974bb00b, 0x8df1b6a6, 0x474d3460 } + }, { + { 0x8d63e29b, 0x37da4019, 0xadbce1ae, 0x8f13b4a0, 0x6485458e, 0x005d7952, 0x11129a0a, 0xa5b7661e }, + { 0x297c58be, 0x3d5b7465, 0x33012b97, 0x61e9f795, 0xabd3a260, 0xa7df3f4a, 0x9907dbd1, 0xfe9d06c7 }, + { 0x4bfe1dfa, 0x7f7c44d6, 0xbdb02117, 0x584c21f0, 0x0a3e923a, 0x0a3faf1a, 0xf3e5a5bf, 0xdda49418 }, + { 0xcb187d93, 0x3dd4bbf6, 0x656bdf5c, 0x818e19a1, 0x2917357d, 0x3116cff0, 0x464b0326, 0x0c261132 }, + { 0xb656ca93, 0xa28cc08b, 0x277bf86e, 0xd4f5ad69, 0x2e9a1c82, 0xa5ee39f9, 0x3f71d611, 0xd3ea2e11 }, + { 0xa2f104c3, 0x45ebae69, 0xdeddfa82, 0x3d4249ee, 0xbcfb51d1, 0x867ea762, 0x48e8a89d, 0x2844d5c1 }, + { 0x82ebbae2, 0x05adaa3a, 0xc0a3f7b5, 0x7b293b80, 0xa94e765f, 0x4120818a, 0xc50b274d, 0x22688c9a } + }, { + { 0xc3fc0b44, 0x8bcd8873, 0xfd4fb8e5, 0x6a9efb07, 0xaf2d5eb8, 0x995aae51, 0xa1521e70, 0x52774766 }, + { 0x7b54eba5, 0x6668a386, 0x75ab18e1, 0xdc4d0e40, 0xee4b3387, 0x17b838e0, 0xc8f32068, 0x8f50d4b5 }, + { 0x09204da6, 0x9ef60809, 0xbc8000cf, 0x337a67fa, 0x9ca7108c, 0xc757cd3a, 0xeb08ba82, 0x7e6be6d4 }, + { 0xc5a39182, 0xb0620854, 0x8015feed, 0x995d6017, 0xd0360d35, 0x3a814e7c, 0xe6573534, 0x59710baf }, + { 0xf99bacff, 0x3d3b0b0a, 0xbe43aa97, 0x5fb0a3ae, 0x3d2df3b8, 0x853dc3b9, 0xafd2a5a2, 0x4f1af404 }, + { 0x61ae5f7d, 0x44573fab, 0x90121a80, 0x3f0f4088, 0xc2123f61, 0x11abc7af, 0xa359b722, 0xddbfb1e5 }, + { 0xa8225e73, 0xcd094275, 0x4f4d1009, 0xb870665e, 0x2656e309, 0x63613320, 0x9da8e9e2, 0x5bf17a9a } + }, { + { 0x63307f75, 0x20e71142, 0xf2edd250, 0x489c3aef, 0xa00a6f57, 0x5d10c01c, 0x324b9253, 0x93835be0 }, + { 0xa174b176, 0xf1acf07c, 0x0638fe83, 0xcdf6812d, 0x76a8fe28, 0xc8fb9566, 0x61b2de0f, 0xe7e572db }, + { 0xa70101cd, 0xd58fcb3c, 0xa08d7a92, 0x707f7a51, 0x087f7394, 0x52ec367f, 0x4ad2575f, 0xcf0d9422 }, + { 0x99f9db0e, 0xd63b7d0b, 0x87714087, 0x32f4d997, 0x02ae8cba, 0x6c162b9f, 0x17c6c72e, 0x6870a1ff }, + { 0x1d859421, 0x0cad1862, 0xcc75b1b9, 0x3e7cffb2, 0x2284bd70, 0x3863341e, 0x1963063d, 0x4d37d33e }, + { 0xd612cd20, 0x43d28fc6, 0x0233b726, 0xaa330aa2, 0x01201406, 0xd4d58e80, 0x214f84c6, 0x2b1ab302 }, + { 0x04a91c83, 0x53597fe5, 0xaf7019d6, 0x8fb705d4, 0xd6bff9a0, 0x41220802, 0x7b7733a4, 0x97e00d32 } + }, { + { 0x40595c86, 0xf6930099, 0xbd743c7e, 0x052b2a49, 0x520434cc, 0xe84013cc, 0xb4b3b5b7, 0x2145a47c }, + { 0x1bbec7a8, 0x51054b48, 0x4540c4ce, 0x410ea37e, 0x22d77338, 0x53ea7838, 0xed1cc935, 0xb53c4e11 }, + { 0x1ca8445c, 0x68dbb70e, 0xb9edffbe, 0x798d10b0, 0x1173177c, 0x8c46979f, 0x7a25f06d, 0x8df73f0d }, + { 0x868e48ed, 0x0c4dec3e, 0xf0fc84f4, 0x935291c2, 0x8513c611, 0xbc49b63e, 0x4a51f7fa, 0x8c447a51 }, + { 0x037d699e, 0x0a093b32, 0xc2ec9f29, 0x5e90f49a, 0x855f3c1c, 0x36674b9d, 0x6414d645, 0x128eb019 }, + { 0x64d6e74a, 0x65fa3cce, 0x09c472a5, 0xa17ee5f5, 0xdffb9e45, 0x7a9c4595, 0x4d07da7f, 0x6fed21dc }, + { 0x81842845, 0xfc184cbb, 0x441f1fba, 0xf06543f1, 0xc8ec2559, 0xc0414db3, 0x59add3e1, 0xeedcba8e } + }, { + { 0x8d5f1cb1, 0xdd5cc734, 0x97b66085, 0x1f2aeb4e, 0x49fc4df3, 0x8c4647df, 0x020d8f8f, 0xfb3e30a6 }, + { 0xdc5dd9fe, 0xce57f180, 0x24dd9046, 0xc375884e, 0x869faec3, 0xbca83934, 0x71d1943b, 0xb1eaf24e }, + { 0x571eab92, 0x30538228, 0x5be3247b, 0x045cca2f, 0xa504a51c, 0xf5493a6c, 0x18fef6d0, 0x6f0f0e6c }, + { 0x9bea0233, 0x80dc3ce3, 0x59ec7d4a, 0x76dafb6b, 0xbdbc4040, 0xcffa68d9, 0xc156af96, 0x1b17111d }, + { 0xcfc30870, 0x623df507, 0x9fd6056e, 0x58b5a009, 0x3addc588, 0x01bf2d7f, 0xfd70e9b5, 0x454451fc }, + { 0xa291458a, 0x4526adc5, 0x367c6943, 0xec7c457d, 0x2983a292, 0x93f5a287, 0x38f480d2, 0xd4de9db7 }, + { 0xa6a97c24, 0x51a0e0ba, 0x1f639439, 0x950eed3e, 0x45f0c8ba, 0x7f6752ca, 0xc0c4af72, 0xb785824e } + }, { + { 0xb0cb4422, 0x0c5dcdcb, 0xb1d133c1, 0x1865317a, 0x2614b1c4, 0x484a4f81, 0x8cdbcbb7, 0xec2d0728 }, + { 0x7d9cf77e, 0x61770bc4, 0xa3eb1843, 0xc5ba899d, 0xce974e91, 0x4adcd05f, 0xeb21acfd, 0xf962c2b3 }, + { 0x213950f4, 0xf2a8b184, 0x3de16761, 0x2a9ee270, 0xe04388a0, 0x678bd048, 0x3982af74, 0xb79829c3 }, + { 0x2a57e1ae, 0xf96bcaa4, 0x58342aaf, 0x8662da2f, 0x7bfe6e15, 0x94249242, 0xda56a0c8, 0x610fdc7d }, + { 0x35f0876d, 0xf5151109, 0x6e95020d, 0xe2ca2d86, 0xc5f859ef, 0x6349c00e, 0x483a09d2, 0x3d793ad1 }, + { 0x48d650c8, 0x792cd02d, 0x96dd5dfb, 0x0ad306bf, 0x0865afae, 0x9984bc0a, 0xab9e4821, 0xf3977f17 }, + { 0x91ce8b28, 0x14759678, 0x8fb3eefb, 0x187d0f53, 0xc5d183b0, 0x0a3ff48d, 0xd30b2d9e, 0x7d34ee4f } + }, { + { 0x00bcde15, 0xcccd7271, 0xb895c848, 0x1c86d357, 0xbd8ee9b0, 0xd063775d, 0xb3f130fd, 0xd2ca1c14 }, + { 0x3c9857c9, 0xc6a9decd, 0xca1f2b65, 0x3d2b10a7, 0xb947c90f, 0xefcb8523, 0xca03778a, 0xd5d42cfd }, + { 0x5c73f4ce, 0xf8262f6a, 0x3ce264bc, 0x2df69850, 0x4a4bb3bc, 0x381e591c, 0xb9fb0145, 0x9996df80 }, + { 0xa379c4f2, 0xda0b13b2, 0xfb1b3cad, 0xb370772c, 0x6ded2ab8, 0xcc98e438, 0xd4ef7629, 0x3330f2c2 }, + { 0xc0d41786, 0x537ea8c7, 0x3b441a76, 0xdb1195bd, 0x3ce092d1, 0xb484de42, 0x8a853c14, 0x39e1d707 }, + { 0x871a31a0, 0x80623383, 0x3ad8e04b, 0x6d1e706d, 0xc99687b9, 0x4661e7ee, 0xeae02eb9, 0x73b29bdb }, + { 0x36816855, 0xf1440803, 0xed9581f5, 0xa42bf12c, 0xc085f0f5, 0x700c5480, 0x6092c0ad, 0xc1952028 } + }, { + { 0x61f3d76c, 0xb619f830, 0xb3c1aabe, 0xdfe516c8, 0x9de4137b, 0xa7cdfdcc, 0x8ae83950, 0xa824756c }, + { 0xa5234d7c, 0x9f7fc888, 0x02c47a29, 0x5675deb6, 0x03797a1b, 0xbd9f84f2, 0x49496ab5, 0xb3a92c12 }, + { 0x1459774e, 0x0587b246, 0x0e4c44f8, 0xeadc3dfc, 0x756d0677, 0xe5528ce8, 0x9d2a09d6, 0x4cbc59ec }, + { 0xca73670e, 0x55bb1710, 0x1e22a6a0, 0x70a8c976, 0xdb4045bc, 0x0bae4004, 0xdf481fa0, 0x98ebe4dc }, + { 0x85fb6d61, 0x56f856ad, 0xbf0842c3, 0xc5251773, 0xcd853b0e, 0xe4bfdb13, 0xba69a18a, 0x59e25dcd }, + { 0x83f1b479, 0x02285602, 0xec4d5e52, 0x126f80dc, 0x41737c1d, 0xfb739e71, 0xca819d35, 0x23402f41 }, + { 0x5a761f56, 0x70dba9fc, 0x898b6f07, 0x3c0a95e2, 0x4877c927, 0xd340a6cb, 0x53927787, 0x5bbc2f70 } + }, { + { 0x6f55de46, 0x80b41750, 0xe79726ae, 0x7e4430a4, 0x15016ede, 0x3cb704f6, 0x29d17376, 0xb1daf0a9 }, + { 0x1d106948, 0x09e71e47, 0xdeca7038, 0xcc4b19b9, 0x9aa4cb6c, 0xa5b51694, 0x50843372, 0x6f9bc50e }, + { 0x7da1905b, 0xcbae73bc, 0xc3ddc084, 0x7335d06e, 0xdf340f40, 0x25db1010, 0xeb287817, 0x0f8c91b7 }, + { 0xc91a7359, 0x5b5d748a, 0xbe2cd22a, 0x3c2e3298, 0x6c4247ef, 0x9a47c570, 0x2ddfa616, 0xd4bf75e0 }, + { 0x96ba5256, 0x9d2c3f03, 0x308d95e6, 0xcfc9ec0f, 0xa0961055, 0x392c377c, 0x66bafd5c, 0x7380bcd9 }, + { 0xe7c67ec8, 0xb9d05682, 0xa799e0b2, 0x32b89eb8, 0xf33da47b, 0x59ac7d9e, 0x931e2025, 0x3643c04c }, + { 0x565309d2, 0xfe24877e, 0x57202f59, 0x3d46b5a8, 0x8e00c15b, 0x8f0b8dea, 0x396d22c4, 0xe6fc1a15 } + }, { + { 0x5b18a044, 0x2c1b66b4, 0xe14c7f03, 0xd02553b6, 0x8d6b85f3, 0x6402dc7c, 0x39c64fe6, 0x02fd8601 }, + { 0x94c5a100, 0xbf83bf04, 0xe071aae4, 0xb8fcdb16, 0x76963764, 0x7b3b7bbb, 0x917c4f2e, 0x6f2932b0 }, + { 0xc891a1ca, 0xdec32e1c, 0x7f894b1d, 0x5a783287, 0x2b4d8375, 0x8d0d30b1, 0x49c9e792, 0x2588847b }, + { 0xb0f4d7fe, 0x7d03d93e, 0x1633bbb3, 0x30524f45, 0xc1513f85, 0x686ace4c, 0xfed101f7, 0xc6640982 }, + { 0x3f2a6442, 0xc8fe2cdd, 0xe7374831, 0xfa1df37a, 0xebac64c1, 0x9abc3ac5, 0x8ab69757, 0x83956b7f }, + { 0xb28bc15c, 0x1e8e0ef1, 0xc29a5af2, 0xc3b8ae0a, 0x421d84e3, 0xb96ecd43, 0x3d552bdc, 0xeb44d0bb }, + { 0x24c2ea0c, 0x5d58e6d9, 0x370c1ca7, 0x41bffc37, 0x9186bb55, 0x5c001f6f, 0x647cdabb, 0x3343829a } + }, { + { 0xf4738f06, 0xef7954b1, 0xd81ee33d, 0x09fd6120, 0x310b9f60, 0x69241d5d, 0x6735f0d9, 0x0d653f5b }, + { 0x730f85c3, 0xd46deb06, 0xa073f3d0, 0xe718eb2f, 0xd5106bde, 0x27cdc4f0, 0x54770105, 0x350d3345 }, + { 0x9baad4c3, 0xee4f1897, 0x77608e68, 0x8af945c1, 0xc8afcc2d, 0xdea35e92, 0x819d7b60, 0x5c226478 }, + { 0xf9943da0, 0xf57e8d09, 0x6ed04a45, 0x086a56fa, 0x2513abe7, 0x8cf5ad6f, 0xa09e2673, 0x9611b1f9 }, + { 0xe100bbf2, 0x51ffcbcf, 0x8bb1e6ae, 0x9065d124, 0x9d72a7ad, 0x58365309, 0x63c1fca4, 0x64f3846c }, + { 0xf1290554, 0x4bbf674c, 0x38714bb7, 0xa2f29af0, 0xd603228b, 0x340e638a, 0x76992250, 0x596bc1cc }, + { 0xf0466f92, 0xbfb91931, 0x2a515d34, 0x2d2d9b8e, 0x57374071, 0xbd9ba285, 0x54c663b4, 0x9c2db914 } + }, { + { 0xc78b3299, 0x19ae1f1b, 0x100a0503, 0x6a5de262, 0x78193f1c, 0x8c9b6cfe, 0x397c349d, 0x9d31efc8 }, + { 0xc5dee2c6, 0x665ef976, 0x49d296eb, 0x6770fbb8, 0xe94a419c, 0x86996440, 0x1f544088, 0xc4a61825 }, + { 0x5d56dcbd, 0xf4f21e5e, 0x64658bca, 0x7f0b0c4f, 0x4ba19309, 0xed866b32, 0x049d1ebd, 0xdc3c5e75 }, + { 0xfa0e70d5, 0xbe3df75a, 0x5b52fba6, 0x40d73380, 0xb032ec4c, 0xf352439a, 0x771a22db, 0x5f9e1c36 }, + { 0xc60ac075, 0xe963f257, 0xbbd1c424, 0x490424bc, 0xd0eef259, 0xfcaa1e74, 0x94f4a76f, 0x57f670bd }, + { 0x9dccdbb2, 0x51b2f921, 0x2fbbb2f2, 0x7501b147, 0x9a2cebed, 0xe638333d, 0xbca1e7a6, 0x830fa987 }, + { 0x5ced560d, 0x5f98d3f6, 0x8d505a5d, 0xcf80da1c, 0x2a2d3452, 0xc1c3d2d4, 0x2a137278, 0x66988098 } + }, { + { 0x19368995, 0xce79360b, 0x65811279, 0xb0b64791, 0x17e4c897, 0x0e9c2981, 0xa7ddf31c, 0x24e877e3 }, + { 0xcc3fdfff, 0x49ed6f65, 0xd6a549ce, 0x63e1eacf, 0xebb20c85, 0x4c726c08, 0xb34d4234, 0x29d229d0 }, + { 0x67dbe937, 0xe59d747a, 0xbb2c26a5, 0x2c45b745, 0xa8974eb3, 0x06fe9413, 0xceff61f6, 0x183a19ee }, + { 0x69e6b994, 0x6c78299a, 0x5aed6f64, 0xb704b816, 0xf62dac7b, 0xb8750ccf, 0xa4975752, 0x02a5c370 }, + { 0x3081edca, 0xd7da0bff, 0x8c3be568, 0x7720044c, 0xa04922bb, 0x044ca349, 0xe929aeba, 0xb1f5c7ec }, + { 0xe2ee4d48, 0x3a344c1e, 0xa3f119b1, 0xc9316169, 0xb4960665, 0x2ec02476, 0x8d09a4ef, 0x2b3f7b4c }, + { 0x64dc05ac, 0x917e0f8d, 0x8767f59a, 0xa7b63c85, 0x7410472a, 0xf2febd16, 0x33b4fa6f, 0x2047f63f } + }, { + { 0x03493b94, 0x1a055118, 0x21981d06, 0xe619c011, 0x8067bf4d, 0x36e9f2bd, 0x7232c291, 0xa85fa403 }, + { 0x7da6e24d, 0x67eeec49, 0xf9d0b55b, 0xa0180fe0, 0xcef8de77, 0x7ab8b5b9, 0xfae6b9f9, 0x29ccf5ca }, + { 0x3608267f, 0x7a52e5c6, 0x9fdbd947, 0xcfba3e80, 0x4717c548, 0x5b608fdf, 0x33f2e088, 0x4ab88fbb }, + { 0x700a2ce0, 0x6f749bc9, 0x0ac79a52, 0x1131876f, 0x48ebcc95, 0x35d07e1f, 0xb9d74ba9, 0xd7921b16 }, + { 0x51a46b75, 0xc766b3c6, 0x48578341, 0xc3bc878e, 0xc66bbea3, 0x2fda0dee, 0xb8e1515d, 0x22418556 }, + { 0xf4e952f5, 0xd8bc0295, 0x8b8d38aa, 0x0454ab5f, 0x10ac6bff, 0x9e943f6b, 0x6d8261dc, 0x808848fa }, + { 0x08676a25, 0x53a51c13, 0x1499e10b, 0xd9a4b7f3, 0xed75250d, 0xafeff9bf, 0x7088a313, 0x10705dcc } + }, { + { 0xda4d4156, 0x2310acc4, 0x8796c548, 0x535057b7, 0x5f291ff3, 0x0ab20f35, 0x93677dbd, 0x8c69b6ff }, + { 0x8b23e30e, 0x377e12f7, 0x84fe2f73, 0xa0ec919d, 0xdfda6326, 0x364f7fbb, 0x49c45f6e, 0x8c07d4a6 }, + { 0xb0eb8c22, 0x6dbd3002, 0xe34f84e6, 0xe3c366d3, 0x5fc72e10, 0xf49caec5, 0x6f4011e3, 0x7038c38d }, + { 0x378ce4e5, 0xe32c4022, 0x5c14ed02, 0xba91e88a, 0x4851e798, 0x9b4f98a3, 0x42f08b90, 0x0fb74b93 }, + { 0x8ab2da23, 0x84b2842d, 0xf1a40d04, 0x9f7c214f, 0x4b8002b6, 0x6ce4980c, 0x126b27ca, 0xed7175f4 }, + { 0x197f7299, 0xd688ac97, 0x9beb4279, 0x98ba1391, 0xb3719aec, 0xb964a1f8, 0x978a9485, 0x4ca9040a }, + { 0x15a808bb, 0xbe72c01e, 0x2877ef97, 0x0ed78b1d, 0x5fdb6fda, 0x726d3364, 0xc27b0380, 0x03409578 } + }, { + { 0x79bc7204, 0x64526abc, 0x40af0d1a, 0xd11bd441, 0xdf5687c5, 0xbbeb13cf, 0x74ca0025, 0x3dd9bede }, + { 0x465c164f, 0x372e1d94, 0x1a462c98, 0x4e6403e1, 0x7df3d03d, 0x4783848b, 0xec8ef487, 0x1f061ad4 }, + { 0x47c833fd, 0xe27fbe58, 0xa294b457, 0x4cd1a6c5, 0x0c2cdbc2, 0xff516fc0, 0xed81d321, 0x026947cf }, + { 0x64801488, 0xd4be8cd3, 0x9ec4f1af, 0x2600e44b, 0x0851e417, 0x6b51068e, 0xafb6bbd8, 0x8208ae65 }, + { 0x22b24c03, 0xc7e6448f, 0x716e08f2, 0x7e796d97, 0xec9bef1b, 0x66e5667f, 0x5f9b745b, 0xdf228f44 }, + { 0xd8070eed, 0x7531be15, 0x2efd3d7a, 0xecaa0ad0, 0xc0972df5, 0xf776df8a, 0x9da8ab27, 0xf0b42ef2 }, + { 0x27bafa4a, 0x341a81c9, 0x2e360782, 0x7800401d, 0x7f594e2e, 0x80317127, 0x155af896, 0x2b098834 } + }, { + { 0x50ac8c98, 0xc821317d, 0xe30b6dea, 0x23732d03, 0xa22d2f11, 0x9108913c, 0x0e0c2e17, 0x80349b40 }, + { 0x4f6a1487, 0x7ee752e6, 0xa9a0b434, 0x2f14c67f, 0xa55c2d40, 0x659d83d5, 0x3f17486e, 0xac616a2a }, + { 0xe0d22f8c, 0x277371d7, 0xaeb933ff, 0xe5cd5a56, 0x07e8825b, 0xf521096e, 0xb055b9e1, 0x622f69fa }, + { 0x2428cf8a, 0x96d714c1, 0x58b73416, 0x272fc42b, 0x874dd8ab, 0x205d1af2, 0xb9bccc72, 0x52ebd7b0 }, + { 0xea28c322, 0x01162702, 0xc9086e8f, 0x10a1f1a4, 0x2b4ae4c0, 0xe95c95fb, 0x10ef8e49, 0xf033dba1 }, + { 0xaca39e67, 0x98d59def, 0x3d199fba, 0x93cc0046, 0x41389dab, 0x38150fc2, 0x989a4d46, 0x9b427328 }, + { 0x555f6fcd, 0x187aac65, 0x237ea7ba, 0x411845bb, 0x257ecc96, 0xa6d2b9a9, 0x186cd758, 0x745f3c59 } + }, { + { 0xd8bd778b, 0x2c224db8, 0x9cf37266, 0x92c241da, 0xef9a0dc7, 0xa0141780, 0xd85304c7, 0xc1778012 }, + { 0x0cdf909b, 0xd6e1b56b, 0x60844342, 0x0012b99b, 0x5069f160, 0xa8759687, 0x9408dadb, 0xa651525e }, + { 0xe24e6ac1, 0xffb01991, 0xa84ae5e6, 0xe3e71b0d, 0xd1af4e76, 0x014d0563, 0xbcbda8f5, 0x47931fcf }, + { 0xf3f7b396, 0x5b45d64a, 0xef5e27ef, 0x04134034, 0x4ea4b384, 0x0c55b7ac, 0x02877644, 0x7f08a13b }, + { 0x3ed1b355, 0x89d6f5bc, 0x9d48cc98, 0xa0759109, 0x82673778, 0xae7c9a53, 0x516c3cba, 0xa817b9b7 }, + { 0x44d407ce, 0x3866b2a0, 0x16966a1e, 0x1430f251, 0x37b831f0, 0xd52ce3d4, 0x78e95a9f, 0x59cf28c6 }, + { 0x3e4f2155, 0x7156e7b3, 0x1b86f8db, 0x42f7566f, 0x3e56da90, 0xf030b29f, 0xec85e66b, 0xcc52db57 } + }, { + { 0x7e6c0017, 0x413ffb3f, 0xb0eef332, 0x00c4654f, 0xd22aa38b, 0xa5efdb30, 0x5764e3b2, 0x30492695 }, + { 0x7147830a, 0xc93791b6, 0x90db318f, 0x59f91408, 0xf1ce4428, 0xa5ed3cc1, 0xc9e3126f, 0x3e65f4be }, + { 0xc9a52997, 0x98ec0cec, 0x845090c0, 0x972e21c7, 0xbec7b346, 0xc5a51cd5, 0xc2bc2364, 0x6feb2a2a }, + { 0x8c502344, 0xa133bc9b, 0x12e631f5, 0x1fad16db, 0xd9bc4a2a, 0x3ad8ef7f, 0xfa5e4e06, 0xf413547b }, + { 0x9d70f033, 0x9be7e0c8, 0xceaf3e95, 0xabeb2be0, 0xd6968817, 0xd3e5bff7, 0xc70e1698, 0x7dae7c15 }, + { 0x16bd8319, 0x45e55117, 0x4034e356, 0xf10d487f, 0xa76f4fdd, 0xf10370e7, 0x167a2453, 0x0422ab4f }, + { 0x7ad6b216, 0x238eb324, 0xc6461eeb, 0x807aa6b5, 0x162573a4, 0x7f90891c, 0xf78a4770, 0xee33693e } + }, { + { 0x85a61667, 0x3292f30e, 0x9d1df8cb, 0xe79682a4, 0xd306be03, 0xb1ecf6fd, 0xace14759, 0x0ecafaaa }, + { 0x88ba8325, 0x5da8e735, 0xf88401d1, 0x3a0b86eb, 0xca737832, 0x21d368fa, 0xa2131889, 0xf0bc2442 }, + { 0xd9cf985f, 0x4a150996, 0xab65117e, 0xbe002181, 0x08d679b9, 0x34f40192, 0x64e2a998, 0x1aeea04e }, + { 0xd12d7f84, 0xad3018df, 0x9c1f731a, 0xd6a1dc24, 0x855ded20, 0x0eda9d64, 0xb17fc497, 0x796fbdf7 }, + { 0x67abd4af, 0x9cf4fdd7, 0x1e56babd, 0x503eee44, 0x170363e2, 0x5693fd28, 0x51540b37, 0x05abe4c4 }, + { 0x2dbcd044, 0x2981a934, 0x73082781, 0xdd97b6b6, 0x64c3c92d, 0x421073bf, 0xe7ab4219, 0x23ede5ff }, + { 0x62112ae9, 0xe15f3626, 0x038a6317, 0x97a7f32e, 0xce90123d, 0xf02d754e, 0x6b218ea1, 0xa3c38d14 } + }, { + { 0x004fdc93, 0x4b7c873a, 0x95be1cc9, 0x7c5432d9, 0x6204127d, 0xed04d3d3, 0xfb64984a, 0x93d731b4 }, + { 0x6f366d43, 0xc3a3b935, 0x5963fb76, 0x268cd779, 0x192cd883, 0x7a64e33b, 0xd6034f31, 0x89e7e743 }, + { 0x3b30e2ca, 0x4a02b442, 0x69056f99, 0xce9b2bd3, 0xb4e7a87f, 0xc1d230ae, 0x3c6dfd11, 0xadaecce2 }, + { 0x33b83f9a, 0x6c0ad79b, 0x1322b694, 0x8d3f9e24, 0xf8fafbaa, 0xc6223143, 0x3f7c6091, 0xecb5943c }, + { 0x8d2da3dd, 0x5390be12, 0xb6cb6db1, 0x60743204, 0x48971e41, 0x887cd9fb, 0x1ade9d31, 0x8bc76839 }, + { 0xa9ce25de, 0xaea01431, 0xee284648, 0x0f997777, 0x9bad14ca, 0x68c4b3b4, 0xa3c32b11, 0x0bb9f4a5 }, + { 0x4ce7cbba, 0x930c6ce6, 0x1473d7e2, 0x5211cccf, 0x4bf9f56c, 0x608d15a9, 0x5471a71f, 0x9e4e1357 } + }, { + { 0xc4d4250a, 0xa90b2ff6, 0x997f0ad2, 0x313ed353, 0x1e270e78, 0x4d7bada7, 0xe504aed6, 0xeafcebb4 }, + { 0xb182f670, 0x1c0c6022, 0x002f8917, 0x94e9c583, 0x244640a1, 0x8f114879, 0xcbde6210, 0x25675f69 }, + { 0x0e5a14c7, 0x074528d1, 0xdc2eff1c, 0xfecb81e0, 0xe4331fb5, 0x8810cb7b, 0x3d824831, 0x9d9ed1fd }, + { 0x416b6738, 0x2bbbd78b, 0xaa4012a6, 0xeb2fd98b, 0x585477c8, 0x702e595a, 0xb322d949, 0xbe2d3a24 }, + { 0x111432d9, 0xd9b07718, 0xc0d6e5f3, 0x1c36e961, 0xd6090a73, 0xd1e819ff, 0xbaa7e4ff, 0x63968570 }, + { 0x9e470151, 0xb3d468a1, 0x9260b722, 0x13b5fa98, 0x5659a528, 0x9d28f8a5, 0x85adec37, 0xc606ba8d }, + { 0x3decc870, 0x6bd5556b, 0x6f7f7797, 0xd1b74770, 0x662aeb0c, 0x9be1606f, 0xa6aac5f5, 0xf85b350f } + }, { + { 0x9463a868, 0x960e8462, 0x4fa2b9d2, 0x178547e9, 0x50e71617, 0xd0d08216, 0x0c79d64f, 0x027df2d8 }, + { 0x5207ee10, 0xcf7670db, 0x2793abbb, 0x4cd968e9, 0x54e3fb50, 0x37d47190, 0x9b8e5703, 0x69bb7ec9 }, + { 0x627d9958, 0x55b42a06, 0xeba7f98d, 0x853170d7, 0xb54ca419, 0x69668fe7, 0x73cc969a, 0x10e096e6 }, + { 0x4c669696, 0x6232f551, 0x295b5a25, 0xd98e6e6c, 0x1b045ecc, 0xca537442, 0xd63dec57, 0x67e5a619 }, + { 0xb13e1282, 0xc06b8335, 0xe41b1193, 0xf3a2297d, 0xcf435007, 0x2fc34631, 0x42e4890c, 0xd3e85862 }, + { 0x160f81d9, 0xf12f48b1, 0x80668974, 0x1950027d, 0x58fe5eb0, 0x08db8df6, 0x70864927, 0x80dab7b3 }, + { 0x293bd8ba, 0xddaf78c7, 0x59d74859, 0x3e8ccc1f, 0xab08d45e, 0xed90a269, 0x800f365d, 0x8c05ec5d } + }, { + { 0x9f5f3ef3, 0x2d06c644, 0xb7ddb6d2, 0x950116f7, 0x81d0f434, 0x7fbfe324, 0x99cfa463, 0x477b1d3f }, + { 0x9ad80019, 0x67c3a9f1, 0x610da4c5, 0x90954ce4, 0x0e1f8a78, 0xf1763ba4, 0xbbf73d7c, 0x713419a7 }, + { 0xabda8eda, 0x14be0d15, 0x98601e48, 0x0b327788, 0xdfadef27, 0x4d6eddd5, 0x2012e79c, 0x53ea34cb }, + { 0x26c758c6, 0xa962c123, 0xb1c5450f, 0x3f6130f7, 0xd65a9947, 0x822f1cec, 0x2f8ca7fd, 0x8885d745 }, + { 0xfb8d48d8, 0x26b785b6, 0xb67ce850, 0x688eb713, 0x6fcb4007, 0xa4218806, 0x826c9739, 0x867b567a }, + { 0xb6d72f91, 0xb4dffd3c, 0xf35f61df, 0x8ca0924d, 0x5f4f3ed7, 0xaf3a604d, 0xbad24bb6, 0x4d6bca16 }, + { 0x0af40433, 0xb22010f7, 0x84fff4b4, 0xbb531995, 0x6e7f6aa6, 0x702b82b7, 0xc314eff3, 0x45c6ace3 } + }, { + { 0x38c8eb70, 0x2f7a7d96, 0x425f1213, 0xa9d56023, 0x686f2536, 0x07d95255, 0x03efb3d3, 0x6e3c2be9 }, + { 0x8ccf431c, 0x005f2155, 0x9e8a76f3, 0x3302280a, 0x1f626419, 0xfebd98fa, 0x0d7dbeb5, 0xed228f84 }, + { 0xc7755f65, 0xcc789750, 0x80422eeb, 0xb70e3300, 0x3800488e, 0x66a47b99, 0x80fe5bcd, 0x810df768 }, + { 0x58a9e2b8, 0x6ace6cd2, 0xa26dc819, 0x9da0d6fd, 0xf57318e5, 0xbb2a6cde, 0x00f88e64, 0x45988afc }, + { 0x2db24f74, 0x8e84b606, 0xdd85891e, 0xbaf24e72, 0xae366b70, 0xfc18da2c, 0xe1937d7c, 0xc7edf94e }, + { 0x30f8d51c, 0x431a2e5e, 0x318780b1, 0x90c156f8, 0x7f325d96, 0x92cd03b5, 0x408db8b8, 0x3e2e340e }, + { 0xb5fb3838, 0x5226821f, 0xadbb4294, 0xff433812, 0x03075206, 0x386d18f7, 0xddc08239, 0xeb3a3609 } + }, { + { 0x1deb0d7b, 0x486e7970, 0x528c5c8b, 0xc4ddea85, 0x65c479ca, 0xb2564b35, 0xd106470c, 0xc6e35fb4 }, + { 0xf289ae55, 0xde118bf3, 0x84673fb0, 0x7ed5665d, 0xf2e4e8b5, 0xfc0244ef, 0x76dd77b7, 0x4ac503f2 }, + { 0x0e420397, 0x7e9632d7, 0xa0bda73b, 0x2458b8f3, 0xc2fbafbd, 0x582c46ee, 0x06d1d65c, 0x037da5f2 }, + { 0x8b9f4092, 0x5843804a, 0x8bedf071, 0x2f5315ce, 0x9373f07a, 0xebdcc2ef, 0xb0b2a12f, 0xbdfcf2ef }, + { 0xd2495e4d, 0x04d95d4a, 0x510f2342, 0x68606545, 0x19de4d07, 0xd71ca9aa, 0x3b06212e, 0xf56f82a2 }, + { 0x1e58fff3, 0xbfbdfaa3, 0x3e0c674c, 0x8e03a28b, 0x37ae6d19, 0xf92f3944, 0x5135fbc5, 0xbe4b52f3 }, + { 0x50d0f9af, 0xde678fe8, 0xb238077d, 0x177dba54, 0xa139d3f3, 0xe9e8df29, 0x3f63742f, 0x312b32de } + }, { + { 0x20c56647, 0x8707018f, 0x3b9ba5d0, 0x300bf55c, 0x8d003323, 0xf98aac6b, 0x583300fd, 0xba8bbc8b }, + { 0xb1545d91, 0x254a8fe3, 0xd49bcfd4, 0xacfee11d, 0xf10d406e, 0x64fcfcde, 0x027e13a9, 0x8aa5595c }, + { 0x512d3bdc, 0xcbc66bb2, 0x9908c828, 0xca5b4f81, 0x97deef7d, 0xb796061b, 0xb7ceff8c, 0xeecf09d9 }, + { 0x2d27dfaa, 0x4738165d, 0x28e7a55f, 0x420813e3, 0xaa8440a4, 0xeef99bfb, 0x71666ba2, 0x86a51a80 }, + { 0xd7791222, 0x692bc41b, 0x3bdbac31, 0x82cb05cd, 0x5b4b3744, 0x4b665815, 0x1762b639, 0xa878d6ea }, + { 0x854b7d2e, 0x8fc1d536, 0x9ce4db12, 0xe32bf6c4, 0xb0290fba, 0x0faaf22e, 0xfece04ff, 0x4474f689 }, + { 0x049f5deb, 0x94fc8dbd, 0x905a535b, 0xc429ceed, 0xfbb317ac, 0xac96fdf2, 0x7e3b05ff, 0x4860d996 } + }, { + { 0xe50c69fb, 0x0fa77338, 0xf79fca72, 0x3e0d30ba, 0x598ada93, 0x2e435d52, 0x3d70cfcb, 0x22182bb3 }, + { 0x67ecc251, 0x18318183, 0x5b1696e1, 0xc13a2c4c, 0x086c6392, 0x72273fd6, 0xe20aaf30, 0x301201b3 }, + { 0x54b990a1, 0xafa6328d, 0xe63abcb1, 0xc78f2775, 0x1fb1d8ce, 0x4747f283, 0x8359e523, 0xf469ed88 }, + { 0x152b5010, 0x806afb62, 0xb91dc4e0, 0x7c018a3e, 0xbc7a0eed, 0x23dfe690, 0xfe576b7d, 0xfdf38e7e }, + { 0x8072da71, 0xd96c2ee9, 0x62f4f37c, 0xf03b9d8b, 0x15b73a44, 0xfe52a7a2, 0xb9917a0a, 0xbdafea91 }, + { 0xdbb7e37d, 0xc70465f7, 0xfcc5723f, 0xdaf07719, 0x65d54e8e, 0x3136c077, 0xfcc41d56, 0x07484576 }, + { 0x9947b804, 0xc1b2266f, 0xed448fa2, 0x3522089b, 0x0bf4534a, 0xdbbbf3e1, 0xc7f929be, 0x9515c273 } + }, { + { 0xa83022c6, 0xdb2ba386, 0x31b8e1d9, 0xba05e0c5, 0x94d029ac, 0x7f9578b5, 0x09a69555, 0xb8166017 }, + { 0xaf323459, 0x6ecdb983, 0x636b45aa, 0x66e075ee, 0x5483eec4, 0x96aa3f50, 0x08ddc9f1, 0x7e31f4ce }, + { 0x255b7d94, 0x231d7a81, 0x6b9df41e, 0xb8968891, 0xce185a87, 0x1fe0e0be, 0x0df6fc87, 0xc18d383f }, + { 0xdcf87a84, 0xe0e68384, 0xbb49e230, 0x481ba3be, 0x84748f2a, 0xb00aab60, 0xfc179e9d, 0x857bf2d0 }, + { 0x468c6a70, 0x17f68dbc, 0xf05e454c, 0x0bf04d87, 0xf7a98200, 0x34985943, 0xd4fff833, 0xf2cc253c }, + { 0xeb13b6bc, 0x2abf96a3, 0x4b7201e1, 0x625b4424, 0x3c3b2563, 0xca66a69c, 0x7394f29b, 0xcdb92b85 }, + { 0x087361bf, 0x616d40cd, 0x560b5746, 0x09434f03, 0xdc133705, 0xe050c7f1, 0xc7506a47, 0xcdf0be50 } + }, { + { 0x31691ebe, 0xed7a1f62, 0x1d69e367, 0x3dcbe08d, 0x975e71fd, 0xe8bc4d75, 0xaf7a2810, 0x3d73950c }, + { 0x7fbea22e, 0x381d20eb, 0xf0431b54, 0xa3e5c8d3, 0xbeebc5f7, 0xb5095b34, 0xf45251e1, 0x88b5d9b1 }, + { 0xc349242a, 0x14d7252d, 0x2a93b81e, 0x054d16ea, 0x60c50aeb, 0x276e8239, 0xf503cbea, 0x77592aa0 }, + { 0x8c68a879, 0xa959997a, 0x128f9d7c, 0x0618dc7a, 0xca0be3f4, 0x9d2ac2de, 0xadea324d, 0x5152f278 }, + { 0x7ba250da, 0x94183f87, 0x7019ad76, 0x69075f7d, 0x393cd782, 0xfd52b891, 0x00d8292c, 0x8c3b2734 }, + { 0xe0c3a509, 0x77a7350d, 0xa83ccc53, 0xb9e8244d, 0x8a5ef941, 0x66d5acf8, 0x6180cea4, 0x885eae04 }, + { 0x33a9c3dc, 0x01868bc2, 0x58c61de7, 0x7a93fa06, 0x4cd9f562, 0x9e8a0747, 0x32ba8e08, 0x3780b278 } + }, { + { 0x47db582e, 0xcd9cf0ad, 0x42101761, 0x077c78e6, 0x9c974652, 0x58e18de7, 0x72feea9d, 0x8372f246 }, + { 0xa45c7958, 0xc3223948, 0x059a7b58, 0xa433e03e, 0x6e478fb3, 0xbc6e5186, 0x5f0167ff, 0x61aa9962 }, + { 0xd297083a, 0x237b9355, 0x16b460e9, 0xd4cf70b8, 0x4906f286, 0xa5062552, 0xb472874b, 0x8f8c7562 }, + { 0x2d990849, 0xa8418e55, 0xce78dfe3, 0xe7ad865d, 0x617900a0, 0x83b88f64, 0xc27917ea, 0x81ea7038 }, + { 0x215656ee, 0x78aff999, 0x32b79d72, 0x1d8dc5e7, 0x5f629263, 0xc73af887, 0xd1ebc2ca, 0x77175169 }, + { 0x7ecaa5e2, 0x82a28565, 0x3eaf012b, 0x1f5dd8a3, 0x25574e50, 0x7fda2c4e, 0xd1bec96d, 0x8d1493d8 }, + { 0x450ac92b, 0xb6dac065, 0x5252896a, 0xea9055a2, 0x2bff2eda, 0x0b71a456, 0xb20bc57e, 0x5ebd3e5a } + }, { + { 0x06c28b5e, 0x6b9af341, 0xe09f4468, 0x9d2942b7, 0xf206afe2, 0x0898c6d7, 0xce1e17b7, 0xfaf50486 }, + { 0xc086eb33, 0xfb2b6a81, 0xbd4ef528, 0xf7e2d3cf, 0x9f2e3896, 0x15837e91, 0x310fb58a, 0xe009f48a }, + { 0xd005ba52, 0x522d35b6, 0x15f76f74, 0x75fbe015, 0x8d2e6b40, 0x3fc9317c, 0x4012e5a2, 0xe1fedc4c }, + { 0x074e5abb, 0x25793158, 0x022c125d, 0x1cfddb5d, 0xba7d82a7, 0xde9481a9, 0x2d356f09, 0x4be7edfb }, + { 0x92519f67, 0x66d2c133, 0x74d7190b, 0xe4b1a9dd, 0xa9e0885b, 0xb658ca08, 0xeca0c4f2, 0x9fdd88af }, + { 0x4975562d, 0x84b67be0, 0x4891487e, 0xd2fa6000, 0x38c919df, 0x0d2b7e56, 0x2b5ee426, 0x6f440a1e }, + { 0xbbb1339d, 0x7f5e833c, 0x735df589, 0xa4339e2e, 0x7eb48658, 0x080d8e72, 0xc3a7c99b, 0x43ca835b } + }, { + { 0x3dda52d9, 0xf2307b82, 0x07f1fc1c, 0x59143e86, 0x954e4d90, 0x966cf48a, 0xd9b0d66b, 0xc427b10d }, + { 0x4eb94575, 0xf29126c3, 0x81ea3d87, 0xe06246ca, 0x505883b1, 0xc5bc93ce, 0x358bd5f6, 0xe72a8c73 }, + { 0xdd3b93c6, 0x2767b96b, 0x60dd053f, 0x10cfa310, 0x4abd4f8c, 0x5372a39c, 0x5d54a330, 0xab1867e5 }, + { 0x62c948d4, 0x0b47f1b0, 0xad0ea37e, 0x4efbb4b4, 0x1716ebc5, 0x4ee5e170, 0xbbaca4d8, 0x43e62ff2 }, + { 0xf7d0b782, 0xf1e49ad1, 0xeadeed67, 0x99c2da1b, 0x00894847, 0x90dfa1f7, 0xaf6daa4f, 0x7b4829b6 }, + { 0xde5d8713, 0x35a5b31b, 0xb748800a, 0xdac38349, 0xde103af5, 0xe1d73ccc, 0x46ba0ddc, 0x39306645 }, + { 0x3a06b9a1, 0x160b972a, 0x521c321f, 0xa004069e, 0x83a16ede, 0x98b00b31, 0x60f9f83c, 0x1f35d1c1 } + }, { + { 0xd597421f, 0x2d9b1d10, 0xf4980375, 0xa24461bc, 0x82196094, 0xa0ab2368, 0xf9a7cb16, 0x388ad687 }, + { 0xe38b6868, 0xfbeed35b, 0xe06b3c03, 0x4c8c1665, 0x9eab9ce9, 0x7bc8d118, 0x812d2907, 0x440b0c84 }, + { 0x3deb66a1, 0x197f9e3d, 0x0f19712a, 0xeacb42bd, 0xc83f1bba, 0x86c68e82, 0xbe6fa356, 0x597095e0 }, + { 0x8f291e99, 0xcaba9ad8, 0x2f7dedc7, 0xb5b6f892, 0xc616aa71, 0x263f9cc4, 0x57016837, 0x64a8c843 }, + { 0xa20493f4, 0x53ab7293, 0xf991fbdc, 0xb999d658, 0x72479e76, 0x6e506638, 0x22cf1ace, 0x15063027 }, + { 0xd083da24, 0xfe918278, 0x0d92f48b, 0x6f9957b8, 0x5d7cdfd2, 0xa98cbc77, 0x958b6fa5, 0x00d75485 }, + { 0xb1ac8616, 0x0bc3844a, 0x47346240, 0x639d46b0, 0x81ac702b, 0x0f4a717f, 0x13fc3167, 0x2163fe2d } + }, { + { 0xe9f3460c, 0x2f82243d, 0x0f6e44bd, 0x04bbb112, 0x975dc2aa, 0x0df79c3b, 0xa615c4b5, 0x1fbf4268 }, + { 0x46df1de0, 0xbf6a680f, 0xd832e15c, 0xb61b8fa1, 0x4bac69a6, 0xd0eed295, 0x452d9e96, 0x2e1e63d6 }, + { 0xd6c9f2e4, 0x57cd73e4, 0xb946d1a1, 0x1bdb407c, 0x4ad02a64, 0x04340e80, 0x0898a05c, 0x9a339f6a }, + { 0xe28c995d, 0xda871bd6, 0x734c3b3d, 0x624eb50c, 0x6eb8b37f, 0x06ab1aee, 0x819da6da, 0x2ccd5f1f }, + { 0x610813ba, 0x1c4a8420, 0xa489796e, 0x864a3542, 0x81a25499, 0x070bd68b, 0x742e1f71, 0x1e667a0b }, + { 0x0df38684, 0x47a20eaa, 0xad42ba4d, 0xe3c176da, 0xd33439dc, 0x3aea032f, 0x61bc2c8f, 0xc6fb92ff }, + { 0x991932d7, 0xc28287b1, 0x844ceb4f, 0x691a97fc, 0x40e4d88a, 0xb10977da, 0x8b8aa1d9, 0x9691909a }*/ + } }; + +#define SEC1 0 +#define PUB1_X 1 +#define PUB1_Y 2 +#define SEC2 3 +#define PUB2_X 4 +#define PUB2_Y 5 +#define SHARED 6 + +uint32_t ecc_keys[][9] = { + { 0xFC632550, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 1 }, + { 0xFC632551, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0 }, + { 0xFC632552, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0 } +}; + +/*---------------------------------------------------------------------------*/ + +void +test_ecc() +{ + uint32_t i; + + uint32_t order[8] = { 0xFC632551, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF }; + for(i = 0; i < 3; i++) { + printf("ECC valid key test %d/3 - %s\n", i + 1, (ecc_is_valid_key(ecc_keys[i], order) == ecc_keys[i][8] ? "Succeed" : " Failed")); + } + + uint32_t base_x[8] = { 0xd898c296, 0xf4a13945, 0x2deb33a0, 0x77037d81, 0x63a440f2, 0xf8bce6e5, 0xe12c4247, 0x6b17d1f2 }; + uint32_t base_y[8] = { 0x37bf51f5, 0xcbb64068, 0x6b315ece, 0x2bce3357, 0x7c0f9e16, 0x8ee7eb4a, 0xfe1a7f9b, 0x4fe342e2 }; + uint32_t test_x[8]; + uint32_t test_y[8]; + for(i = 0; i < 32; i++) { + uint32_t time; + uint32_t checkvar; + + printf("Starting ECC test %d/221:\n", i + 1); + + time = *MACA_CLK; + ecc_ec_mult(test_x, test_y, base_x, base_y, ecc_data[i][SEC1]); + time = *MACA_CLK - time; + checkvar = 0; + checkvar += memcmp(ecc_data[i][PUB1_X], test_x, 32); + checkvar += memcmp(ecc_data[i][PUB1_Y], test_y, 32); + printf(" 1/4 finished after % 4u ms - %s\n", time / 250, (checkvar ? " Failed" : "Succeed")); + + time = *MACA_CLK; + ecc_ec_mult(test_x, test_y, ecc_data[i][PUB1_X], ecc_data[i][PUB1_Y], ecc_data[i][SEC2]); + time = *MACA_CLK - time; + checkvar = 0; + checkvar += memcmp(ecc_data[i][SHARED], test_x, 32); + printf(" 2/4 finished after % 4u ms - %s\n", time / 250, (checkvar ? " Failed" : "Succeed")); + + time = *MACA_CLK; + ecc_ec_mult(test_x, test_y, base_x, base_y, ecc_data[i][SEC2]); + time = *MACA_CLK - time; + checkvar = 0; + checkvar += memcmp(ecc_data[i][PUB2_X], test_x, 32); + checkvar += memcmp(ecc_data[i][PUB2_Y], test_y, 32); + printf(" 3/4 finished after % 4u ms - %s\n", time / 250, (checkvar ? " Failed" : "Succeed")); + + time = *MACA_CLK; + ecc_ec_mult(test_x, test_y, ecc_data[i][PUB2_X], ecc_data[i][PUB2_Y], ecc_data[i][SEC1]); + time = *MACA_CLK - time; + checkvar = 0; + checkvar += memcmp(ecc_data[i][SHARED], test_x, 32); + printf(" 4/4 finished after % 4u ms - %s\n", time / 250, (checkvar ? " Failed" : "Succeed")); + } +} +/* Start Process */ +PROCESS(server_firmware, "Server Firmware"); +AUTOSTART_PROCESSES(&server_firmware); + +PROCESS_THREAD(server_firmware, ev, data) { + PROCESS_BEGIN(); + + test_ecc(); + + PROCESS_END(); +} diff --git a/platform/econotag/apps/ecc/Makefile.ecc b/platform/econotag/apps/ecc/Makefile.ecc new file mode 100644 index 000000000..44dd816c2 --- /dev/null +++ b/platform/econotag/apps/ecc/Makefile.ecc @@ -0,0 +1 @@ +ecc_src = ecc.c diff --git a/platform/econotag/apps/ecc/ecc.c b/platform/econotag/apps/ecc/ecc.c new file mode 100644 index 000000000..8d8598d8b --- /dev/null +++ b/platform/econotag/apps/ecc/ecc.c @@ -0,0 +1,1016 @@ +/* + * Copyright (c) 2015, Lars Schmertmann , + * Jens Trillmann . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + */ + +#include "ecc.h" + +#include + +#define X 0 +#define Y 8 +#define Z 16 + +const uint32_t ecc_prime_m[8] = { 0xffffffff, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff }; +const uint32_t ecc_prime_r[8] = { 0x00000001, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffffe, 0x00000000 }; + +/*---------------------------------------------------------------------------*/ + +#define DEBUG 0 +#define SELF_TEST 0 + +#if DEBUG +#include +#define PRINTF(...) printf(__VA_ARGS__) +#define PRINTHEX(...) print_hex(__VA_ARGS__) +static void +print_hex(const char *name, const uint32_t *d, uint32_t l) +{ + printf("%s:", name); + int i; + for(i = l - 1; i >= 0; --i) { + printf(" %08X", d[i]); + } + printf("\n"); +} +#else +#define PRINTF(...) +#define PRINTHEX(...) +#endif + +#if SELF_TEST +#include +static void selfTest(); +#endif + +/* private prototypes ----------------------------------------------------- */ + +/* simple functions to work with 256 bit numbers */ +static void ecc_setZero(uint32_t *a); +static void ecc_copy(uint32_t *dst, const uint32_t *src); +static uint32_t ecc_isX(const uint32_t *a, const uint32_t x); +static void ecc_rshift(uint32_t *a); +static void ecc_replace(uint32_t bit, uint32_t *dst, uint32_t *src); +static uint32_t ecc_add(uint32_t *result, const uint32_t *a, const uint32_t *b); +static uint32_t ecc_sub(uint32_t *result, const uint32_t *a, const uint32_t *b); +static void ecc_mult(uint32_t *result, const uint32_t *x, const uint32_t *y, const uint32_t length); + +/* ecc_field_ModP-Helper */ +__attribute__((always_inline)) static void ecc_form_s1(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_s2(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_s3(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_s4(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_d1(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_d2(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_d3(uint32_t *dst, const uint32_t *src); +__attribute__((always_inline)) static void ecc_form_d4(uint32_t *dst, const uint32_t *src); + +/* field functions for 256 bit numbers */ +static void ecc_field_Add(uint32_t *result, const uint32_t *x, const uint32_t *y); +static void ecc_field_Sub(uint32_t *result, const uint32_t *x, const uint32_t *y); +static void ecc_field_ModP(uint32_t *result, const uint32_t *T); +static void ecc_field_Mult(uint32_t *result, const uint32_t *A, const uint32_t *B); +static void ecc_field_Inv(uint32_t *result, const uint32_t *A); + +/* new projective stuff */ +static void ecc_projective_double(uint32_t *val); +static void ecc_projective_add(uint32_t *result, const uint32_t *val_1, const uint32_t *x_2, const uint32_t *y_2, const uint32_t *z_2); + +/* public functions -------------------------------------------------------- */ + +int32_t +ecc_compare(const uint32_t *a, const uint32_t *b) +{ + int32_t r = 0; + uint32_t i = 8; + while(i--) { + uint32_t neq = (a[i] != b[i]); + int32_t greater = (a[i] > b[i] ? 1 : -1); + r ^= ((-(!r && neq)) & (r ^ greater)); + } + return r; +} +void +ecc_ec_mult(uint32_t *resultx, uint32_t *resulty, const uint32_t *px, const uint32_t *py, const uint32_t *secret) +{ +#if SELF_TEST + selfTest(); +#endif + + PRINTHEX("PX", px, 8); + PRINTHEX("PY", py, 8); + PRINTHEX("SC", secret, 8); + + uint32_t Q[24]; + ecc_setZero(Q + X); + ecc_setZero(Q + Y); + ecc_setZero(Q + Z); + Q[Z] = 0x00000001; + + uint32_t pz[8]; + ecc_setZero(pz); + pz[0] = 0x00000001; + + uint32_t temp[24]; + + int i; + for(i = 255; i >= 0; --i) { + ecc_projective_double(Q); +/* PRINTHEX("QX", Q+X, 8); */ +/* PRINTHEX("QY", Q+Y, 8); */ +/* PRINTHEX("QZ", Q+Z, 8); */ + ecc_projective_add(temp, Q, px, py, pz); +/* PRINTHEX("QX", temp+X, 8); */ +/* PRINTHEX("QY", temp+Y, 8); */ +/* PRINTHEX("QZ", temp+Z, 8); */ + int current_bit = (secret[i / 32] >> (i % 32)) & 0x1; /* ((secret[i / 32]) & ((uint32_t)1 << (i % 32))); */ + ecc_replace(current_bit, Q, temp); +/* PRINTHEX("QX", Q+X, 8); */ +/* PRINTHEX("QY", Q+Y, 8); */ +/* PRINTHEX("QZ", Q+Z, 8); */ + } +/* PRINTHEX("QX", Q+X, 8); */ +/* PRINTHEX("QY", Q+Y, 8); */ +/* PRINTHEX("QZ", Q+Z, 8); */ + ecc_field_Inv(temp, Q + Z); + ecc_field_Mult(resultx, Q + X, temp); + ecc_field_Mult(resulty, Q + Y, temp); + PRINTHEX("RX", resultx, 8); + PRINTHEX("RY", resulty, 8); +} +/* private functions ------------------------------------------------------- */ + +static void +ecc_setZero(uint32_t *a) +{ + asm volatile ( + "mov r1, $0 \n\t" + "mov r2, r1 \n\t" + "mov r3, r2 \n\t" + "mov r4, r3 \n\t" + "stm %[a]!, {r1-r4} \n\t" + "stm %[a]!, {r1-r4} \n\t" + : /* out */ + : /* in */ + [a] "l" (a) + : /* clobber list */ + "r1", "r2", "r3", "r4", "memory" + ); +} +/* + * copy one array to another + */ +static void +ecc_copy(uint32_t *dst, const uint32_t *src) +{ + asm volatile ( + "ldm %[s]!, {r2-r5} \n\t" + "stm %[d]!, {r2-r5} \n\t" + "ldm %[s]!, {r2-r5} \n\t" + "stm %[d]!, {r2-r5} \n\t" + : /* out */ + : /* in */ + [d] "l" (dst), + [s] "l" (src) + : /* clobber list */ + "r2", "r3", "r4", "r5", "memory" + ); +} +static uint32_t +ecc_isX(const uint32_t *a, const uint32_t x) +{ + uint32_t r = (a[0] == x); + uint32_t n = 8; + while(--n) { + r &= (a[n] == 0); + } + return r; +} +static void +ecc_rshift(uint32_t *a) +{ + uint32_t index = 32; + uint32_t carry = 0; + + asm volatile ( + "0: \n\t" + "sub %[i], %[i], #4 \n\t" /* index -= 4 */ + "mov r4, %[c] \n\t" /* result = carry */ + "ldr r3, [%[a],%[i]] \n\t" /* value = a[index] */ + "lsl %[c], r3, #31 \n\t" /* carry = value << 31 */ + "lsr r3, r3, #1 \n\t" /* value >>= 1 */ + "orr r4, r4, r3 \n\t" /* result |= value */ + "str r4, [%[a],%[i]] \n\t" /* a[index] = result */ + "cmp %[i], $0 \n\t" /* index == 0 */ + "bne 0b \n\t" /* != ? next loop */ + : /* out */ + : /* in */ + [a] "r" (a), + [i] "r" (index), + [c] "r" (carry) + : /* clobber list */ + "r3", "r4", "memory" + ); +} +static void +ecc_replace(uint32_t bit, uint32_t *dst, uint32_t *src) +{ + bit = -bit; + int i; + for(i = 0; i < 24; i++) { + dst[i] ^= (bit & (dst[i] ^ src[i])); + } +} +static uint32_t +ecc_add(uint32_t *result, const uint32_t *a, const uint32_t *b) +{ + uint32_t carry; + + asm volatile ( + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "add r4, r4, r6 \n\t" + "adc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "adc r4, r4, r6 \n\t" + "adc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "adc r4, r4, r6 \n\t" + "adc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "adc r4, r4, r6 \n\t" + "adc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "bcc 0f \n\t" + "mov %[c], #1 \n\t" + "b 1f \n\t" + "0: \n\t" + "mov %[c], $0 \n\t" + "1: \n\t" + : /* out */ + [c] "=l" (carry) + : /* in */ + [x] "l" (a), + [y] "l" (b), + [r] "l" (result) + : /* clobber list */ + "r4", "r5", "r6", "r7", "memory" + ); + + return carry; +} +static uint32_t +ecc_sub(uint32_t *result, const uint32_t *a, const uint32_t *b) +{ + uint32_t carry; + + asm volatile ( + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "sub r4, r4, r6 \n\t" + "sbc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "sbc r4, r4, r6 \n\t" + "sbc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "sbc r4, r4, r6 \n\t" + "sbc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "ldm %[x]!, {r4,r5} \n\t" + "ldm %[y]!, {r6,r7} \n\t" + "sbc r4, r4, r6 \n\t" + "sbc r5, r5, r7 \n\t" + "stm %[r]!, {r4,r5} \n\t" + "bcs 0f \n\t" + "mov %[c], #1 \n\t" + "b 1f \n\t" + "0: \n\t" + "mov %[c], $0 \n\t" + "1: \n\t" + : /* out */ + [c] "=l" (carry) + : /* in */ + [x] "l" (a), + [y] "l" (b), + [r] "l" (result) + : /* clobber list */ + "r4", "r5", "r6", "r7", "memory" + ); + + return carry; +} +static void +ecc_mult(uint32_t *result, const uint32_t *x, const uint32_t *y, const uint32_t length) +{ + if(length == 1) { + /* Version 1: 56 Byte bigger as ASM-Version */ + /* uint64_t *r = (uint64_t *) result; */ + /* *r = (uint64_t) x[0] * (uint64_t) y[0]; */ + + /* Version 2: 56 Byte lesser as Version 1 but same speed */ + asm volatile ( + "ldrh r5, [%[x], $0] \n\t" /* r5 = (x[0] & 0x0000FFFF) */ + "ldrh r3, [%[y], $0] \n\t" /* r3 = (y[0] & 0x0000FFFF) */ + "mul r5, r3 \n\t" /* r5 *= r3 r5 = AB[0] */ + "ldrh r6, [%[x], #2] \n\t" /* r6 = (x[0] >> 16) */ + "mul r3, r6 \n\t" /* r3 *= r6 r3 = C[0] */ + "ldrh r4, [%[y], #2] \n\t" /* r4 = (y[0] >> 16) */ + "mul r6, r4 \n\t" /* r6 *= r4 r6 = AB[1] */ + /* %[y] is not longer needed - its called ry now */ + "ldrh %[y], [%[x], $0] \n\t" /* ry = (x[0] & 0x0000FFFF) */ + "mul r4, %[y] \n\t" /* r4 *= ry r4 = C[1] */ + "add %[y], r3, r4 \n\t" /* ry = r3 + r4 ry = C[0] + C[1] */ + /* C[1] (r4) is not longer needed */ + "mov r4, $0 \n\t" /* r4 = 0 */ + "bcc 0f \n\t" /* jump if carry clear */ + "mov r4, #1 \n\t" /* r4 = 1 */ + "lsl r4, r4, #16 \n\t" /* r4 <<= 16 */ + "0: \n\t" /* r4 = 0x000c0000 = (carry << 16) */ + "lsr r3, %[y], #16 \n\t" /* r3 = (ry >> 16) */ + "orr r4, r4, r3 \n\t" /* r4 |= r3 r4 = 0x000c'ryh' = (r4 | ry >> 16) */ + "lsl r3, %[y], #16 \n\t" /* r3 = (ry << 16) r3 = 0x'ryl'0000 = (ry << 16) */ + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[r]!, {r3, r4} \n\t" + : /* out */ + : /* in */ + [x] "l" (x), + [y] "l" (y), + [r] "l" (result) + : /* clobber list */ + "r3", "r4", "r5", "r6", "memory" + ); + } else { + uint32_t carry; + uint32_t C[length * 2]; + ecc_mult(result, x, y, length / 2); + ecc_mult(result + length, x + (length / 2), y + (length / 2), length / 2); + ecc_mult(C, x, y + (length / 2), length / 2); + ecc_mult(C + length, x + (length / 2), y, length / 2); + if(length == 8) { + carry = ecc_add(C, C, C + length); + } else { + asm volatile ( + "cmp %[l], #2 \n\t" + "beq .add2 \n\t" + /* ASM for: ecc_add(C, C, C + 4, 4); */ + "mov %[l], %[a] \n\t" + "ldm %[a]!, {r3-r6} \n\t" + "ldm %[a]!, {r5,r6} \n\t" + "sub %[a], %[a], #16 \n\t" + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[a]!, {r3-r6} \n\t" + "ldm %[a]!, {r5,r6} \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "b 0f \n\t" + ".add2: \n\t" + /* ASM for: ecc_add(C, C, C + 2, 2); */ + "ldm %[a]!, {r3-r6} \n\t" + "sub %[a], %[a], #16 \n\t" + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[a]!, {r3,r4} \n\t" + "0: \n\t" + "bcc 1f \n\t" + "mov %[c], #1 \n\t" + "b 2f \n\t" + "1: \n\t" + "mov %[c], $0 \n\t" + "2: \n\t" + : /* out */ + [c] "=l" (carry) + : /* in */ + [a] "l" (C), + [l] "l" (length) + : /* clobber list */ + "r3", "r4", "r5", "r6", "memory" + ); + } C[length] = carry; + asm volatile ( + "cmp %[l], #2 \n\t" + "beq .add3 \n\t" + "cmp %[l], #4 \n\t" + "beq .add6 \n\t" + ".add12: \n\t" + /* ASM for: ecc_add(result + 4, result + 4, C, 12); */ + /* RRRRRRRRRRRRRRRR */ + /* + CCCCCCCCC000 */ + /* = RRRRRRRRRRRRRRRR */ + "add %[r], %[r], #16 \n\t" + "mov %[l], %[r] \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5} \n\t" + "mov r6, $0 \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "adc r3, r3, r6 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "b 0f \n\t" + ".add6: \n\t" + /* ASM for: ecc_add(result + 2, result + 2, C, 6); */ + /* RRRRRRRR */ + /* + CCCCC0 */ + /* = RRRRRRRR */ + "add %[r], %[r], #8 \n\t" + "mov %[l], %[r] \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5} \n\t" + "mov r6, $0 \n\t" + "adc r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "stm %[l]!, {r3,r4} \n\t" + "b 0f \n\t" + ".add3: \n\t" + /* ASM for: ecc_add(result + 1, result + 1, C, 3); */ + /* RRRR */ + /* + CCC */ + /* = RRRR */ + "add %[r], %[r], #4 \n\t" + "mov %[l], %[r] \n\t" + "ldm %[r]!, {r3,r4} \n\t" + "ldm %[c]!, {r5,r6} \n\t" + "add r3, r3, r5 \n\t" + "adc r4, r4, r6 \n\t" + "ldr r5, [%[r], $0] \n\t" + "ldr r6, [%[c], $0] \n\t" + "adc r5, r5, r6 \n\t" + "stm %[l]!, {r3-r5} \n\t" + "0: \n\t" + : /* out */ + : /* in */ + [r] "l" (result), + [c] "l" (C), + [l] "l" (length) + : /* clobber list */ + "r3", "r4", "r5", "r6", "memory" + ); + } +} +/*---------------------------------------------------------------------------*/ + +__attribute__((always_inline)) static void +ecc_form_s1(uint32_t *dst, const uint32_t *src) +{ + /* 0, 0, 0, src[11], src[12], src[13], src[14], src[15] */ + asm volatile ( + "mov r2, $0 \n\t" + "mov r3, r2 \n\t" + "mov r4, r3 \n\t" + "stm %[d]!, {r2-r4} \n\t" + "add %[s], #44 \n\t" + "ldm %[s]!, {r2-r6} \n\t" + "stm %[d]!, {r2-r6} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "r6", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_s2(uint32_t *dst, const uint32_t *src) +{ + /* 0, 0, 0, src[12], src[13], src[14], src[15], 0 */ + asm volatile ( + "mov r2, $0 \n\t" + "mov r3, r2 \n\t" + "mov r4, r3 \n\t" + "stm %[d]!, {r2-r4} \n\t" + "add %[s], #48 \n\t" + "ldm %[s]!, {r2-r5} \n\t" + "stm %[d]!, {r2-r5} \n\t" + "mov r2, $0 \n\t" + "stm %[d]!, {r2} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_s3(uint32_t *dst, const uint32_t *src) +{ + /* src[8], src[9], src[10], 0, 0, 0, src[14], src[15] */ + asm volatile ( + "add %[s], #32 \n\t" + "ldm %[s]!, {r2-r4} \n\t" + "mov r5, $0 \n\t" + "stm %[d]!, {r2-r5} \n\t" + "mov r2, r5 \n\t" + "mov r3, r2 \n\t" + "add %[s], #12 \n\t" + "ldm %[s]!, {r4,r5} \n\t" + "stm %[d]!, {r2-r5} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_s4(uint32_t *dst, const uint32_t *src) +{ + /* src[9], src[10], src[11], src[13], src[14], src[15], src[13], src[8] */ + asm volatile ( + "add %[s], #32 \n\t" + "ldm %[s]!, {r2-r5} \n\t" + "stm %[d]!, {r3-r5} \n\t" + "add %[s], #4 \n\t" + "ldm %[s]!, {r3-r5} \n\t" + "stm %[d]!, {r3-r5} \n\t" + "mov r4, r2 \n\t" + "stm %[d]!, {r3,r4} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_d1(uint32_t *dst, const uint32_t *src) +{ + /* src[11], src[12], src[13], 0, 0, 0, src[8], src[10] */ + asm volatile ( + "add %[s], #32 \n\t" + "ldm %[s]!, {r2-r7} \n\t" + "stm %[d]!, {r5-r7} \n\t" + "mov r3, $0 \n\t" + "mov r5, r3 \n\t" + "mov r6, r5 \n\t" + "stm %[d]!, {r3,r5,r6} \n\t" + "stm %[d]!, {r2,r4} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "r6", "r7", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_d2(uint32_t *dst, const uint32_t *src) +{ + /* src[12], src[13], src[14], src[15], 0, 0, src[9], src[11] */ + asm volatile ( + "add %[s], #48 \n\t" + "ldm %[s]!, {r2-r5} \n\t" + "stm %[d]!, {r2-r5} \n\t" + "sub %[s], #28 \n\t" + "ldm %[s]!, {r4-r6} \n\t" + "mov r2, $0 \n\t" + "mov r3, r2 \n\t" + "stm %[d]!, {r2-r4,r6} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "r6", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_d3(uint32_t *dst, const uint32_t *src) +{ + /* src[13], src[14], src[15], src[8], src[9], src[10], 0, src[12] */ + asm volatile ( + "add %[s], #52 \n\t" + "ldm %[s]!, {r2-r4} \n\t" + "stm %[d]!, {r2-r4} \n\t" + "sub %[s], #32 \n\t" + "ldm %[s]!, {r2-r6} \n\t" + "mov r5, $0 \n\t" + "stm %[d]!, {r2-r6} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "r6", "memory" + ); +} +__attribute__((always_inline)) static void +ecc_form_d4(uint32_t *dst, const uint32_t *src) +{ + /* src[14], src[15], 0, src[9], src[10], src[11], 0, src[13] */ + asm volatile ( + "add %[s], #56 \n\t" + "ldm %[s]!, {r2,r3} \n\t" + "mov r4, $0 \n\t" + "stm %[d]!, {r2-r4} \n\t" + "sub %[s], #28 \n\t" + "ldm %[s]!, {r2-r6} \n\t" + "mov r5, $0 \n\t" + "stm %[d]!, {r2-r6} \n\t" + : /* out */ + [d] "+l" (dst), + [s] "+l" (src) + : /* in */ + : /* clobber list */ + "r2", "r3", "r4", "r5", "r6", "memory" + ); +} +/*---------------------------------------------------------------------------*/ + +static void +ecc_field_Add(uint32_t *result, const uint32_t *x, const uint32_t *y) +{ + uint32_t temp[8]; + uint32_t carry = -ecc_add(result, x, y); + ecc_add(temp, result, ecc_prime_r); + + int i; + for(i = 0; i < 8; i++) { + result[i] ^= (carry & (result[i] ^ temp[i])); + } +} +static void +ecc_field_Sub(uint32_t *result, const uint32_t *x, const uint32_t *y) +{ + uint32_t temp[8]; + uint32_t carry = -ecc_sub(result, x, y); + ecc_add(temp, result, ecc_prime_m); + + int i; + for(i = 0; i < 8; i++) { + result[i] ^= (carry & (result[i] ^ temp[i])); + } +} +static void +ecc_field_ModP(uint32_t *result, const uint32_t *T) +{ + uint32_t SX_o_DX[8]; + ecc_copy(result, T); /* result = T */ + + ecc_form_s1(SX_o_DX, T); /* Form S1 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 + S1 */ + + ecc_form_s2(SX_o_DX, T); /* Form S2 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 */ + + ecc_form_s3(SX_o_DX, T); /* Form S3 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 */ + + ecc_form_s4(SX_o_DX, T); /* Form S4 */ + ecc_field_Add(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 + S4 */ + + ecc_form_d1(SX_o_DX, T); /* Form D1 */ + ecc_field_Sub(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 + S4 - D1 */ + + ecc_form_d2(SX_o_DX, T); /* Form D2 */ + ecc_field_Sub(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 + S4 - D1 - D2 */ + + ecc_form_d3(SX_o_DX, T); /* Form D3 */ + ecc_field_Sub(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 + S4 - D1 - D2 - D3 */ + + ecc_form_d4(SX_o_DX, T); /* Form D4 */ + ecc_field_Sub(result, result, SX_o_DX); /* result = T + S1 + S1 + S2 + S2 + S3 + S4 - D1 - D2 - D3 - D4 */ + + if(ecc_compare(result, ecc_prime_m) >= 0) { + ecc_field_Sub(result, result, ecc_prime_m); + } +} +static void +ecc_field_Mult(uint32_t *result, const uint32_t *A, const uint32_t *B) +{ + uint32_t product[16]; + ecc_mult(product, A, B, 8); + ecc_field_ModP(result, product); +} +static void +ecc_field_Inv(uint32_t *result, const uint32_t *A) +{ + PRINTHEX("Input", A, 8); + + ecc_setZero(result); + result[0] = 0x00000001; + int i; + for(i = 255; i >= 0; --i) { + ecc_field_Mult(result, result, result); + if(((ecc_prime_m[i / 32] >> (i % 32)) & 0x1) == 1 && i != 1) { + ecc_field_Mult(result, result, A); + } + } + + PRINTHEX("Result", result, 8); +} +/*---------------------------------------------------------------------------*/ + +static void +ecc_projective_double(uint32_t *val) +{ + /* Algorithm taken from https://hyperelliptic.org/EFD/g1p/auto-shortw-projective-3.html#doubling-dbl-2007-bl-2 */ + /* w = 3*(X1-Z1)*(X1+Z1) */ + /* s = 2*Y1*Z1 */ + /* ss = s^2 */ + /* sss = s*ss */ + /* R = Y1*s */ + /* RR = R^2 */ + /* B = 2*X1*R */ + /* h = w^2-2*B */ + /* X3 = h*s */ + /* Y3 = w*(B-h)-2*RR */ + /* Z3 = sss */ + + uint32_t temp[24]; + uint32_t w[8]; + uint32_t s[8]; + uint32_t B[8]; + uint32_t h[8]; + + uint8_t is_zero = ecc_isX(val + X, 0) & ecc_isX(val + Y, 0) & ecc_isX(val + Z, 1); + + ecc_field_Sub(temp + X, val + X, val + Z); + ecc_field_Add(temp + Y, val + X, val + Z); + ecc_field_Mult(temp + Z, temp + X, temp + Y); + ecc_field_Add(temp + X, temp + Z, temp + Z); + ecc_field_Add(w, temp + Z, temp + X); + ecc_field_Mult(temp + X, val + Y, val + Z); + ecc_field_Add(s, temp + X, temp + X); + ecc_field_Mult(temp + X, s, s); + ecc_field_Mult(val + Z, s, temp + X); + ecc_field_Mult(temp + X, val + Y, s); /* temp = R */ + ecc_field_Mult(temp + Z, temp + X, temp + X); /* temp3 = RR */ + ecc_field_Mult(temp + Y, val + X, temp + X); /* temp2 = R*x */ + ecc_field_Add(B, temp + Y, temp + Y); /* B = 2*R*x */ + ecc_field_Mult(temp + X, w, w); + ecc_field_Add(temp + Y, B, B); + ecc_field_Sub(h, temp + X, temp + Y); + ecc_field_Mult(val + X, h, s); + ecc_field_Sub(temp + X, B, h); + ecc_field_Mult(temp + Y, w, temp + X); + ecc_field_Add(temp + Z, temp + Z, temp + Z); /* temp3 = 2*RR */ + ecc_field_Sub(val + Y, temp + Y, temp + Z); + /* finished, now swap the result if necessary */ + + ecc_setZero(temp + X); + ecc_setZero(temp + Y); + ecc_setZero(temp + Z); + (temp + Z)[0] = 0x00000001; + + ecc_replace(is_zero, val, temp); +} +static void +ecc_projective_add(uint32_t *result, const uint32_t *val_1, const uint32_t *x_2, const uint32_t *y_2, const uint32_t *z_2) +{ +/* algorithm taken from https://hyperelliptic.org/EFD/g1p/auto-shortw-projective-3.html#addition-add-1998-cmo-2 */ +/* X Z X Y U Y */ +/* 1 1 2 2 U UU V 1V */ +/* Z R Z ZVZ R UZZ VR ZY */ +/* VX 2RAY 2Z 1V1UA UZV V2A 2Z */ +/* Y1Z2 = Y1*Z2 | */ +/* X2Z1 = X2*Z1 | | */ +/* X1Z2 = X1*Z2 | | | */ +/* V = X2Z1-X1Z2 | x x | */ +/* VV = V^2 x | | | */ +/* R = VV*X1Z2 | x| x | */ +/* VVV = V*VV x | x | | */ +/* Y2Z1 = Y2*Z1 | | | | | */ +/* U = Y2Z1-Y1Z2 | | x| | x */ +/* UU = U^2 | | x | | | */ +/* Z1Z2 = Z1*Z2 | | | | | | | */ +/* UUZZ = UU*Z1Z2 | | x | x| | | */ +/* UZV = UUZZ-VVV | | | | x| x | */ +/* Z = VVV*Z1Z2 | | x| | | x | */ +/* VYZ = VVV*Y1Z2 | | | | | x x| */ +/* R2 = 2*R | x | | | | | */ +/* A = UZV-2R | | | | x x| | */ +/* X = V*A x| | | | x | */ +/* RA = R-A | x| | | x | */ +/* URA = U*RA | x | x| | */ +/* Y = URA-VYZ | | | x x */ + + uint32_t temp[32]; + #define X1 val_1 + X + #define Y1 val_1 + Y + #define Z1 val_1 + Z + #define X2 x_2 + #define Y2 y_2 + #define Z2 z_2 + #define V result + X + #define X1Z2 result + Y + #define R result + Y + #define RA result + Y + #define Z1Z2 result + Z + #define X2Z1 temp + X + #define VV temp + X + #define Y2Z1 temp + X + #define U temp + X + #define URA temp + X + #define UU temp + Y + #define UUZZ temp + Y + #define UZV temp + Y + #define VVV temp + Z + #define R2 temp + Z + #define A temp + Z + #define Y1Z2 temp + 24 + #define VYZ temp + 24 + + uint8_t is_input1_zero = ecc_isX(val_1 + X, 0) & ecc_isX(val_1 + Y, 0) & ecc_isX(val_1 + Z, 1); + uint8_t is_input2_zero = ecc_isX(x_2, 0) & ecc_isX(y_2, 0) & ecc_isX(z_2, 1); + + ecc_copy(temp + X, x_2); + ecc_copy(temp + Y, y_2); + ecc_copy(temp + Z, z_2); + ecc_replace(is_input1_zero, result, temp); + + ecc_copy(temp + X, val_1 + X); + ecc_copy(temp + Y, val_1 + Y); + ecc_copy(temp + Z, val_1 + Z); + ecc_replace(is_input2_zero, result, temp); + + /* invalidate the result pointer */ + result = (uint32_t *)((uintptr_t)result ^ (-(is_input2_zero | is_input1_zero) & ((uintptr_t)result ^ (uintptr_t)temp))); + + ecc_field_Mult(Y1Z2, Y1, Z2); + ecc_field_Mult(X2Z1, X2, Z1); + ecc_field_Mult(X1Z2, X1, Z2); + ecc_field_Sub(V, X2Z1, X1Z2); + ecc_field_Mult(VV, V, V); + ecc_field_Mult(R, VV, X1Z2); + ecc_field_Mult(VVV, V, VV); + ecc_field_Mult(Y2Z1, Y2, Z1); + ecc_field_Sub(U, Y2Z1, Y1Z2); + ecc_field_Mult(UU, U, U); + ecc_field_Mult(Z1Z2, Z1, Z2); + ecc_field_Mult(UUZZ, UU, Z1Z2); + ecc_field_Sub(UZV, UUZZ, VVV); + ecc_field_Mult(result + Z, VVV, Z1Z2); + ecc_field_Mult(VYZ, VVV, Y1Z2); + ecc_field_Add(R2, R, R); + ecc_field_Sub(A, UZV, R2); + ecc_field_Mult(result + X, V, A); + ecc_field_Sub(RA, R, A); + ecc_field_Mult(URA, U, RA); + ecc_field_Sub(result + Y, URA, VYZ); +} +/*---------------------------------------------------------------------------*/ + +#if SELF_TEST +static void +assertTrue(uint32_t value, const char *msg) +{ + if(!value) { + printf("%s\n", msg); + } +} +static void +assertFalse(uint32_t value, const char *msg) +{ + if(value) { + printf("%s\n", msg); + } +} +static void +assertSame(uint32_t *val_1, uint32_t *val_2, const char *msg) +{ + if(ecc_compare(val_1, val_2)) { + printf("%s\n", msg); + } +} +static void +selfTest() +{ + uint32_t num_000[8] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; + uint32_t num_001[8] = { 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; + uint32_t num_002[8] = { 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; + uint32_t num_004[8] = { 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; + uint32_t num_max[8] = { 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff }; + uint32_t primeMinusOne[8] = { 0xfffffffe, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0xffffffff }; + + uint32_t result[8]; + + /* ecc_compare */ + assertFalse(ecc_compare(num_001, num_001), "ecc_compare 1: Wrong result!"); + assertTrue(ecc_compare(num_000, num_001) == -1, "ecc_compare 2: Wrong result!"); + assertTrue(ecc_compare(num_001, num_000) == 1, "ecc_compare 3: Wrong result!"); + + /* ecc_isX */ + assertTrue(ecc_isX(num_000, 0), "ecc_isX 1: Wrong result!"); + assertTrue(ecc_isX(num_001, 1), "ecc_isX 2: Wrong result!"); + assertTrue(ecc_isX(num_002, 2), "ecc_isX 3: Wrong result!"); + assertTrue(ecc_isX(num_004, 4), "ecc_isX 4: Wrong result!"); + assertFalse(ecc_isX(num_000, 1), "ecc_isX 5: Wrong result!"); + assertFalse(ecc_isX(num_000, 2), "ecc_isX 6: Wrong result!"); + assertFalse(ecc_isX(num_000, 4), "ecc_isX 7: Wrong result!"); + assertFalse(ecc_isX(num_001, 0), "ecc_isX 8: Wrong result!"); + assertFalse(ecc_isX(num_001, 2), "ecc_isX 9: Wrong result!"); + assertFalse(ecc_isX(num_001, 4), "ecc_isX 10: Wrong result!"); + assertFalse(ecc_isX(num_002, 0), "ecc_isX 11: Wrong result!"); + assertFalse(ecc_isX(num_002, 1), "ecc_isX 12: Wrong result!"); + assertFalse(ecc_isX(num_002, 4), "ecc_isX 13: Wrong result!"); + assertFalse(ecc_isX(num_004, 0), "ecc_isX 14: Wrong result!"); + assertFalse(ecc_isX(num_004, 1), "ecc_isX 15: Wrong result!"); + assertFalse(ecc_isX(num_004, 2), "ecc_isX 16: Wrong result!"); + + /* ecc_add */ + assertFalse(ecc_add(result, num_001, num_002), "ecc_add 1: Unexpected carrybit!"); + assertFalse(ecc_add(result, result, num_001), "ecc_add 2: Unexpected carrybit!"); + assertSame(result, num_004, "ecc_add 3: Wrong result!"); + assertTrue(ecc_add(result, num_max, num_002), "ecc_add 4: Carrybit missing!"); + assertSame(result, num_001, "ecc_add 5: Wrong result!"); + + /* ecc_sub */ + assertFalse(ecc_sub(result, num_004, num_002), "ecc_sub 1: Unexpected carrybit!"); + assertFalse(ecc_sub(result, result, num_001), "ecc_sub 2: Unexpected carrybit!"); + assertFalse(ecc_sub(result, result, num_001), "ecc_sub 3: Unexpected carrybit!"); + assertSame(result, num_000, "ecc_sub 4: Wrong result!"); + assertTrue(ecc_sub(result, num_000, num_001), "ecc_sub 5: Carrybit missing!"); + assertSame(result, num_max, "ecc_sub 6: Wrong result!"); + + /* ecc_field_Sub */ + ecc_field_Sub(result, num_001, num_000); + assertSame(num_001, result, "ecc_field_Sub 1: Wrong result!"); + ecc_field_Sub(result, num_001, num_001); + assertSame(num_000, result, "ecc_field_Sub 2: Wrong result!"); + ecc_field_Sub(result, num_000, num_001); + assertSame(primeMinusOne, result, "ecc_field_Sub 3: Wrong result!"); + + printf("Tests completed!\n"); +} +#endif diff --git a/platform/econotag/apps/ecc/ecc.h b/platform/econotag/apps/ecc/ecc.h new file mode 100644 index 000000000..b90b55260 --- /dev/null +++ b/platform/econotag/apps/ecc/ecc.h @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2015, Lars Schmertmann , + * Jens Trillmann . + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * This file is part of the Contiki operating system. + * + */ + +/** + * \file + * Calculations on elliptic curve secp256r1 + * + * This is a efficient ECC implementation on the secp256r1 curve for + * 32 Bit CPU architectures. It provides basic operations on the + * secp256r1 curve and support for ECDH and ECDSA. + * + * \author + * Lars Schmertmann + * Jens Trillmann + */ + +#ifndef ECC_H_ +#define ECC_H_ + +#include + +/** + * \brief Checks if a (random) number is valid as scalar on elliptic curve secp256r1 + * + * A (random) number is only usable as scalar on elliptic curve secp256r1 if + * it is lower than the order of the curve. For the check, you need to provide + * the order of elliptic curve secp256r1. + * + * uint32_t order[8] = {0xFC632551, 0xF3B9CAC2, 0xA7179E84, 0xBCE6FAAD, 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF}; + * + * \param key The (random) number to check for usability + * \param order The order of elliptic curve secp256r1 + * + * \return 1 if key is valid + */ +#define ecc_is_valid_key(key, order) (ecc_compare(order, key) == 1) + +/** + * \brief Compares the value of a with the value of b + * + * This function is only public because its needed for the macro ecc_is_valid_key. + * It does a comparison of two 256 bit numbers. The return values are 1, 0 or -1. + * + * \param a First number + * \param b Second number + * + * \return 1 if a is greater than b + 0 if a is equal to b + -1 if a is less than b + */ +int32_t ecc_compare(const uint32_t *a, const uint32_t *b); + +/** + * \brief ECC scalar multiplication on elliptic curve secp256r1 + * + * This function does a scalar multiplication on elliptic curve secp256r1. + * For an Elliptic curve Diffie–Hellman you need two multiplications. First one + * with the base point of elliptic curve secp256r1 you need to provide. + * + * uint32_t base_x[8] = {0xd898c296, 0xf4a13945, 0x2deb33a0, 0x77037d81, 0x63a440f2, 0xf8bce6e5, 0xe12c4247, 0x6b17d1f2}; + * uint32_t base_y[8] = {0x37bf51f5, 0xcbb64068, 0x6b315ece, 0x2bce3357, 0x7c0f9e16, 0x8ee7eb4a, 0xfe1a7f9b, 0x4fe342e2}; + * + * \param resultx Pointer to memory to store the x-coordinate of the result + * \param resulty Pointer to memory to store the y-coordinate of the result + * \param px x-coordinate of the point to multiply with scalar + * \param py y-coordinate of the point to multiply with scalar + * \param secret Scalar for multiplication with elliptic curve point + */ +void ecc_ec_mult(uint32_t *resultx, uint32_t *resulty, const uint32_t *px, const uint32_t *py, const uint32_t *secret); + +#endif /* ECC_H_ */ diff --git a/regression-tests/15-compile-arm-apcs-ports/Makefile b/regression-tests/15-compile-arm-apcs-ports/Makefile index 767bed60f..61873d531 100644 --- a/regression-tests/15-compile-arm-apcs-ports/Makefile +++ b/regression-tests/15-compile-arm-apcs-ports/Makefile @@ -9,6 +9,7 @@ er-rest-example/econotag \ webserver-ipv6/econotag \ ipv6/multicast/econotag \ econotag-flash-test/econotag \ +econotag-ecc-test/econotag \ TOOLS=