1 /************************************************************************\
2  * shark.aff.c                                                          *
3  *                                                                      *
4  * reference implementation of SHARK                                    *
5  * (to be presented at the Cambridge Workshop on                        *
6  *   Fast Software Encryption                                           *
7  * version A-1.0: nm-bit roundkeys (`affine transform`)                 *
8  *                                                                      *
9  * Vincent Rijmen                                                       *
10  * December 1995                                                        *
11  * Copyright (C): Kuleuven                                              *
12  * Copyright (C): Kuleuven.    All rights reserved.                     *
13  * KULeuven  makes no representations concerning either the             *
14  * merchantability of this software or the suitability of this          *
15  * software for any particular purpose. It is provided "as is"          *
16  * without express or implied warranty of any kind.                     *
17  *                                                                      *
18  * Slight modification by jcd 2003 06 26 Thursday                       *
19 \************************************************************************/
20 #include <stdio.h>
21 #include <string.h>
22 
23 typedef unsigned short word;
24 typedef unsigned long dword;
25 typedef long sdword;
26 
27 #ifdef __alpha
28 typedef unsigned long ddword;
29 typedef long sddword;
30 #else
31 typedef unsigned long long ddword;
32 typedef long long sddword;
33 #endif
34 
35 #define ROUNDS 6
36 #define KEYLENGTH 16
37 #define ROOT 0x1f5
38 #define ROUNDKEYS (2*ROUNDS+2)
39 
40 unsigned char sbox_enc[256] = {
41     177, 206, 195, 149,  90, 173, 231,   2,  77,  68, 251, 145,  12,
42     135, 161,  80, 203, 103,  84, 221,  70, 143, 225,  78, 240, 253,
43     252, 235, 249, 196,  26, 110,  94, 245, 204, 141,  28,  86,  67,
44     254,   7,  97, 248, 117,  89, 255,   3,  34, 138, 209,  19, 238,
45     136,   0,  14,  52,  21, 128, 148, 227, 237, 181,  83,  35,  75,
46      71,  23, 167, 144,  53, 171, 216, 184, 223,  79,  87, 154, 146,
47     219,  27,  60, 200, 153,   4, 142, 224, 215, 125, 133, 187,  64,
48      44,  58,  69, 241,  66, 101,  32,  65,  24, 114,  37, 147, 112,
49      54,   5, 242,  11, 163, 121, 236,   8,  39,  49,  50, 182, 124,
50     176,  10, 115,  91, 123, 183, 129, 210,  13, 106,  38, 158,  88,
51     156, 131, 116, 179, 172,  48, 122, 105, 119,  15, 174,  33, 222,
52     208,  46, 151,  16, 164, 152, 168, 212, 104,  45,  98,  41, 109,
53      22,  73, 118, 199, 232, 193, 150,  55, 229, 202, 244, 233,  99,
54      18, 194, 166,  20, 188, 211,  40, 175,  47, 230,  36,  82, 198,
55     160,   9, 189, 140, 207,  93,  17,  95,   1, 197, 159,  61, 162,
56     155, 201,  59, 190,  81,  25,  31,  63,  92, 178, 239,  74, 205,
57     191, 186, 111, 100, 217, 243,  62, 180, 170, 220, 213,   6, 192,
58     126, 246, 102, 108, 132, 113,  56, 185,  29, 127, 157,  72, 139,
59      42, 218, 165,  51, 130,  57, 214, 120, 134, 250, 228,  43, 169,
60      30, 137,  96, 107, 234,  85,  76, 247, 226
61 };
62 
63 unsigned char sbox_dec[256] = {
64     53, 190,   7,  46,  83, 105, 219,  40, 111, 183, 118, 107, 12,  125,
65     54, 139, 146, 188, 169,  50, 172,  56, 156,  66,  99, 200, 30,   79,
66     36, 229, 247, 201,  97, 141,  47,  63, 179, 101, 127, 112, 175, 154,
67    234, 245,  91, 152, 144, 177, 135, 113, 114, 237,  55,  69, 104, 163,
68    227, 239,  92, 197,  80, 193, 214, 202,  90,  98,  95,  38,   9,  93,
69     20,  65, 232, 157, 206,  64, 253,   8,  23,  74,  15, 199, 180,  62,
70     18, 252,  37,  75, 129,  44,   4, 120, 203, 187,  32, 189, 249,  41,
71    153, 168, 211,  96, 223,  17, 151, 137, 126, 250, 224, 155,  31, 210,
72    103, 226, 100, 119, 132,  43, 158, 138, 241, 109, 136, 121, 116,  87,
73    221, 230,  57, 123, 238, 131, 225,  88, 242,  13,  52, 248,  48, 233,
74    185,  35,  84,  21,  68,  11,  77, 102,  58,   3, 162, 145, 148,  82,
75     76, 195, 130, 231, 128, 192, 182,  14, 194, 108, 147, 236, 171,  67,
76    149, 246, 216,  70, 134,   5, 140, 176, 117,   0, 204, 133, 215,  61,
77    115, 122,  72, 228, 209,  89, 173, 184, 198, 208, 220, 161, 170,   2,
78     29, 191, 181, 159,  81, 196, 165,  16,  34, 207,   1, 186, 143,  49,
79    124, 174, 150, 218, 240,  86,  71, 212, 235,  78, 217,  19, 142,  73,
80     85,  22, 255,  59, 244, 164, 178,   6, 160, 167, 251,  27, 110,  60,
81     51, 205,  24,  94, 106, 213, 166,  33, 222, 254,  42,  28, 243,  10,
82     26,  25,  39,  45
83 };
84 
85 unsigned char G[8][8] = {
86     {0xce, 0x95, 0x57, 0x82, 0x8a, 0x19, 0xb0, 0x01},
87     {0xe7, 0xfe, 0x05, 0xd2, 0x52, 0xc1, 0x88, 0xf1},
88     {0xb9, 0xda, 0x4d, 0xd1, 0x9e, 0x17, 0x83, 0x86},
89     {0xd0, 0x9d, 0x26, 0x2c, 0x5d, 0x9f, 0x6d, 0x75},
90     {0x52, 0xa9, 0x07, 0x6c, 0xb9, 0x8f, 0x70, 0x17},
91     {0x87, 0x28, 0x3a, 0x5a, 0xf4, 0x33, 0x0b, 0x6c},
92     {0x74, 0x51, 0x15, 0xcf, 0x09, 0xa4, 0x62, 0x09},
93     {0x0b, 0x31, 0x7f, 0x86, 0xbe, 0x05, 0x83, 0x34}
94 };
95 
96 unsigned char iG[8][8] = {
97     {0xe7, 0x30, 0x90, 0x85, 0xd0, 0x4b, 0x91, 0x41},
98     {0x53, 0x95, 0x9b, 0xa5, 0x96, 0xbc, 0xa1, 0x68},
99     {0x02, 0x45, 0xf7, 0x65, 0x5c, 0x1f, 0xb6, 0x52},
100     {0xa2, 0xca, 0x22, 0x94, 0x44, 0x63, 0x2a, 0xa2},
101     {0xfc, 0x67, 0x8e, 0x10, 0x29, 0x75, 0x85, 0x71},
102     {0x24, 0x45, 0xa2, 0xcf, 0x2f, 0x22, 0xc1, 0x0e},
103     {0xa1, 0xf1, 0x71, 0x40, 0x91, 0x27, 0x18, 0xa5},
104     {0x56, 0xf4, 0xaf, 0x32, 0xd2, 0xa4, 0xdc, 0x71}
105 };
106 
107 ddword cbox_enc[8][256] = {
108    {0x060d838f16f3a365LL, 0xa68857ee5cae56f6LL, 0xebf516353c2c4d89LL,
109     0x652174be88e85bdcLL, 0x0d4e9a8086c17921LL, 0x27ba7d33cffa58a1LL,
110     0x88d9e104a237b530LL, 0x693b8755a4fbe816LL, 0xdac9591826b254a0LL,
111     0x45c2e369fb336af3LL, 0xa96e1fb87b3e4ef4LL, 0xb7578f1435eb7ef0LL,
112     0x839af80b32056f74LL, 0xae37f55cc71f277aLL, 0xa4208538fdff37d5LL,
113     0x35991e74ad3cdb6fLL, 0xba191594b32a07d1LL, 0x5344d1772e572b7bLL,
114     0xe7efe5de103ffe43LL, 0xa3796fdc41de5e5bLL, 0x2cf9643c5fc882e5LL,
115     0xffdbf6fd48196d22LL, 0x33949dfbbbcf780aLL, 0x7d15679dd0cec8bdLL,
116     0x5f5e229c024498b1LL, 0x1223634762c683ceLL, 0xdcc4da973041f7c5LL,
117     0x0b43190f9032da44LL, 0xc05598eddfc5a6e2LL, 0x9e5fd31a7753f4b8LL,
118     0x9afa8243c0f136feLL, 0xcc4f6b06f3d61528LL, 0xdf38612a3bc25c0dLL,
119     0x43cf60e6edc0c996LL, 0xcfb3d0bbf855bee0LL, 0x96e071a8ece28534LL,
120     0x21b7febcd909fbc4LL, 0x8ed4628bb4c41655LL, 0x30682646b04cd3c2LL,
121     0xb5ff5dc294ba1fd3LL, 0x75aac52f4b7fb931LL, 0xe809ad8837afe641LL,
122     0x0eb2213d8d42d2e9LL, 0x9852509561a057ddLL, 0xaa92a40570bde53cLL,
123     0x7b18e412c63d6bd8LL, 0xa7dc3e85f67c9c1dLL, 0xd8618bce87e33583LL,
124     0xe34ab487a79d3c05LL, 0x20e397d773db312fLL, 0x05f138321d7008adLL,
125     0x17d25b757fb68b63LL, 0x8a7133d20366d413LL, 0x0000000000000000LL,
126     0xeaa17f5e96fe8762LL, 0xc101f18675176c09LL, 0xbebc44cd0488c597LL,
127     0xdb9d30738c609e4bLL, 0xabc6cd6eda6f2fd7LL, 0x5aaf1aae1f34901cLL,
128     0xb00e65f089ca177eLL, 0xd47b7825abf08649LL, 0x924520f15b404772LL,
129     0x1686321ed5644188LL, 0x618425e73f4a999aLL, 0xe21eddec0d4ff6eeLL,
130     0xd787c398a0732d81LL, 0x1f6df9c7e407faefLL, 0x79b036c4676c0afbLL,
131     0x0fe6485627901802LL, 0x9cf701ccd602959bLL, 0xbfe82da6ae5a0f7cLL,
132     0x990639fecb729d36LL, 0xca42e889e525b64dLL, 0xb3f2de4d8249bcb6LL,
133     0x4033db5be643625eLL, 0x4167b2304c91a8b5LL, 0x108bb191c397e2edLL,
134     0x1834132358269361LL, 0x541d3b93927642f5LL, 0x90edf227fa112651LL,
135     0x1dc52b1145569bccLL, 0xe6bb8cb5baed34a8LL, 0xd276fbaabd03252cLL,
136     0x313c4f2d1a9e1929LL, 0xfd73242be9480c01LL, 0x9baeeb286a23fc15LL,
137     0xc9be5334eea61d85LL, 0xc70c720963e4cf6cLL, 0x3eda077b3d0e012bLL,
138     0x97b418c346304fdfLL, 0x32c0f490111db2e1LL, 0x2ba08ed8e3e9eb6bLL,
139     0x8b255ab9a9b41ef8LL, 0x91b99b4c50c3ecbaLL, 0xfe8f9f96e2cba7c9LL,
140     0x3a7f56228aacc36dLL, 0xb15a0c9b2318dd95LL, 0x5953a11314b73bd4LL,
141     0xf3c10516640adee8LL, 0xedf895ba2adfeeecLL, 0xadcb4ee1cc9c8cb2LL,
142     0xde6c0841911096e6LL, 0x84c312ef8e2406faLL, 0xa83a76d3d1ec841fLL,
143     0x1c91427aef845127LL, 0x3665a5c9a6bf70a7LL, 0xf6303d24797ad645LL,
144     0xcd1b026d5904dfc3LL, 0x1bc8a89e53a538a9LL, 0x7ee9dc20db4d6375LL,
145     0x51ec03a18f064a58LL, 0xc4f0c9b4686764a4LL, 0xdd90b3fc9a933d2eLL,
146     0x7a4c8d796cefa133LL, 0x73a746a05d8c1a54LL, 0x0759eae4bc21698eLL,
147     0xc8ea3a5f4474d76eLL, 0x38d784f42bfda24eLL, 0x231f2c6a78589ae7LL,
148     0xc3a92350d4460d2aLL, 0x72f32fcbf75ed0bfLL, 0xbd40ff700f0b6e5fLL,
149     0x157a89a3dee7ea40LL, 0x873fa95285a7ad32LL, 0x4d7d41db60821b7fLL,
150     0x1e3990ac4ed53004LL, 0x0a1770643ae010afLL, 0x9311499af1928d99LL,
151     0x64751dd5223a9137LL, 0xfa2acecf5569658fLL, 0x7c410ef67a1c0256LL,
152     0x56b5e945332723d6LL, 0x6f3604dab2084b73LL, 0xe95dc4e39d7d2caaLL,
153     0x13770a2cc8144925LL, 0xbc14961ba5d9a4b4LL, 0xb9e5ae29b8a9ac19LL,
154     0xf169d7c0c55bbfcbLL, 0x2446c68ec479f369LL, 0x806643b63986c4bcLL,
155     0x7fbdb54b719fa99eLL, 0x04a55159b7a2c246LL, 0xee042e07215c4524LL,
156     0x5bfb73c5b5e65af7LL, 0x0c1af3eb2c13b3caLL, 0xa22d06b7eb0c94b0LL,
157     0xb8b1c742127b66f2LL, 0x285c3565e86a40a3LL, 0x3b2b3f49207e0986LL,
158     0x3c72d5ad9c5f6008LL, 0x770217f9ea2ed812LL, 0xfc274d40439ac6eaLL,
159     0x4fd5930dc1d37a5cLL, 0x2e51b6eafe99e3c6LL, 0x6b93558305aa8935LL,
160     0x19607a48f2f4598aLL, 0x08bfa2b29bb1718cLL, 0x3f8e6e1097dccbc0LL,
161     0x3983ed9f812f68a5LL, 0xac9f278a664e4659LL, 0x82ce916098d7a59fLL,
162     0xc2fd4a3b7e94c7c1LL, 0x66ddcf03836bf014LL, 0xe1e2665106cc5d26LL,
163     0x74feac44e1ad73daLL, 0x8d28d936bf47bd9dLL, 0x62789e5a34c93252LL,
164     0x81322add93540e57LL, 0xcb1681e24ff77ca6LL, 0x2512afe56eab3982LL,
165     0xd18a4017b6808ee4LL, 0x705bfd1d560fb19cLL, 0x4b70c2547671b81aLL,
166     0x49d81082d720d939LL, 0xe0b60f3aac1e97cdLL, 0x4e81fa666b01b0b7LL,
167     0x951cca15e7612efcLL, 0x463e58d4f0b0c13bLL, 0x632cf7319e1bf8b9LL,
168     0x5ca2992109c73379LL, 0xf764544fd3a81caeLL, 0x6ac73ce8af7843deLL,
169     0x9f0bba71dd813e53LL, 0x85977b8424f6cc11LL, 0x5807c878be65f13fLL,
170     0x686fee3e0e2922fdLL, 0x78e45fafcdbec010LL, 0x6ccabf67b98be0bbLL,
171     0x11dfd8fa69452806LL, 0xcee7b9d05287740bLL, 0x50b86aca25d480b3LL,
172     0x5df6f04aa315f992LL, 0x5e0a4bf7a896525aLL, 0x03fcbbbd0b83abc8LL,
173     0x8f800be01e16dcbeLL, 0xd32292c117d1efc7LL, 0xe5473708b16e9f60LL,
174     0x224b4501d28a500cLL, 0xfb7ea7a4ffbbaf64LL, 0x3d26bcc6368daae3LL,
175     0x866bc0392f7567d9LL, 0x3731cca20c6dba4cLL, 0xb603e67f9f39b41bLL,
176     0xa1d1bd0ae08f3f78LL, 0xd935e2a52d31ff68LL, 0xaf639c376dcded91LL,
177     0x0154696baad2caebLL, 0xecacfcd1800d2407LL, 0xf03dbeab6f897520LL,
178     0x02a8d2d6a1516123LL, 0xf498eff2d82bb766LL, 0x710f9476fcdd7b77LL,
179     0xf8821c19f43804acLL, 0xf9d675725eeace47LL, 0x1a9cc1f5f977f242LL,
180     0x5210b81c8485e190LL, 0x6d9ed60c13592a50LL, 0xf2956c7dced81403LL,
181     0xbb4d7cff19f8cd3aLL, 0x4c2928b0ca50d194LL, 0x6e626db118da8198LL,
182     0xe4135e631bbc558bLL, 0x9da368a77cd05f70LL, 0xa574ec53572dfd3eLL,
183     0x09ebcbd93163bb67LL, 0x4a24ab3fdca372f1LL, 0x429b098d4712037dLL,
184     0x57e1802e99f5e93dLL, 0xef50476c8b8e8fcfLL, 0xa085d4614a5df593LL,
185     0x34cd771f07ee1184LL, 0xc6581b62c9360587LL, 0x2dad0d57f51a480eLL,
186     0x898d886f08e57fdbLL, 0xd6d3aaf30aa1e76aLL, 0x76567e9240fc12f9LL,
187     0xb4ab34a93e68d538LL, 0xb2a6b726289b765dLL, 0x8c7cb05d15957776LL,
188     0x554952f838a4881eLL, 0xd52f114e01224ca2LL, 0x60d04c8c95985371LL,
189     0x6789a66829b93affLL, 0x2f05df81544b292dLL, 0x476a31bf5a620bd0LL,
190     0xf5cc869972f97d8dLL, 0x488c79e97df213d2LL, 0x44968a0251e1a018LL,
191     0x26ee14586528924aLL, 0xd0de297c1c52440fLL, 0xc5a4a0dfc2b5ae4fLL,
192     0x29085c0e42b88a48LL, 0x142ee0c8743520abLL, 0x2af4e7b3493b2180LL,
193     0x9448a37e4db3e417LL},
194 
195    {0xe2795ba105ba30ceLL, 0x65b5d634f5e0fbddLL,
196     0x2d7d7f1464dd8c55LL, 0xeefbf778add1c20bLL, 0x1eb0fbd1f11968e7LL,
197     0xe6073f45ce30cd8dLL, 0x21ffd3cdccb67e90LL, 0xdf0941cfa750a262LL,
198     0xc61df5b1b75ef18aLL, 0xc5c7defa9dc337c6LL, 0x2581b729073c83d3LL,
199     0xa5e97513167173cfLL, 0xdd3673bd381526b9LL, 0xe8baa1eef91ebb93LL,
200     0x3b314cf8f625eb34LL, 0x579d4bc8d5fc5df8LL, 0xbb598ec2e7681b28LL,
201     0xc8a06b1a80708794LL, 0x1c8fc9a36e5cec3cLL, 0xf60a5a3f0807d374LL,
202     0x1ace9f353a9395a4LL, 0x7e9e50387aab2ceeLL, 0xb5e41069d0466d36LL,
203     0x8cea6ee3b92602d9LL, 0xf952ddad8af1e7fdLL, 0xb19a748d1bcc9075LL,
204     0x2464ae10b2e4c144LL, 0xfcc9a070f4a35829LL, 0xfa88f6e6a06c21b1LL,
205     0x2c98662dd105cec2LL, 0x9065a740d77aeee5LL, 0xcb7a4051aaed41d8LL,
206     0x55a279ba4ab9d923LL, 0x27be855b98790708LL, 0xbabc97fb52b059bfLL,
207     0xa19711f7ddfb8e8cLL, 0x047e64e4cb8afd43LL, 0xc386886cc90c4e5eLL,
208     0xc422c7c3281b7551LL, 0xfb6defdf15b46326LL, 0x01e51939b5d84297LL,
209     0x5cbba8be9c809432LL, 0x6f762c7b09447080LL, 0xcee13d8cd4bffe0cLL,
210     0x54476083ff619bb4LL, 0x6e933542bc9c3217LL, 0x4af79b520e78f353LL,
211     0x98996f7db49be163LL, 0xa07208ce6823cc1bLL, 0x2b3c29823012f5cdLL,
212     0x93bf8c0bfde728a9LL, 0x2225f886e62bb8dcLL, 0x7f7b4901cf736e79LL,
213     0x0000000000000000LL, 0x023f32729f4584dbLL, 0xd5cabb805bf4293fLL,
214     0x07a44fafe1173b0fLL, 0xe95fb8d74cc6f904LL, 0x7b052de504f9933aLL,
215     0x6aed51a67716cf54LL, 0x68d263d4e8534b8fLL, 0xa96bd9cabe1a810aLL,
216     0x1d6ad09adb84aeabLL, 0x0d67b5e01db3b052LL, 0x52063615abaee22cLL,
217     0x8f3045a893bbc495LL, 0xd8ad0e604647996dLL, 0xaf2a8f5cead5f892LL,
218     0x3017af8ebf5922feLL, 0x4034611df2dc780eLL, 0x721cfce1d2c0de2bLL,
219     0x28e602c91a8f3381LL, 0xe1a370ea2f27f682LL, 0x29031bf0af577116LL,
220     0x1914b47e100e53e8LL, 0x567852f160241f6fLL, 0x793a1f979bbc17e1LL,
221     0xef1eee411809809cLL, 0x6211999b14f7c0d2LL, 0x059b7ddd7e52bfd4LL,
222     0x43ee4a56d841be42LL, 0xf1ae1590e910e87bLL, 0x33cd84c595c4e4b2LL,
223     0x4b12826bbba0b1c4LL, 0xeb608aa5d3837ddfLL, 0x201acaf4796e3c07LL,
224     0xbf27ea262ce2e66bLL, 0x58c5cc5a570a6971LL, 0x37b3e0215e4e19f1LL,
225     0xab54ebb8215f05d1LL, 0x8ed55c9126638602LL, 0x9aa65d0f2bde65b8LL,
226     0xd7f589f2c4b1ade4LL, 0x5039046734eb66f7LL, 0x6cac073023d9b6ccLL,
227     0x51dc1d5e81332460LL, 0x17a92ad5272025f6LL, 0x47902eb213cb4301LL,
228     0x1b2b860c8f4bd733LL, 0x4f6ce68f702a4c87LL, 0xcf0424b56167bc9bLL,
229     0x997c76440143a3f4LL, 0x7ae034dcb121d1adLL, 0x100d657ac6371ef9LL,
230     0x0ac3fa4ffca48b5dLL, 0xdeec58f61288e0f5LL, 0x265b9c622da1459fLL,
231     0xdcd36a848dcd642eLL, 0xe4380d3751754956LL, 0x13d74e31ecaad8b5LL,
232     0xfd2cb949417b1abeLL, 0x9624f1d683b5977dLL, 0x4675378ba6130196LL,
233     0x0b26e376497cc9caLL, 0x41d1782447043a99LL, 0xe39c4298b0627259LL,
234     0xcd3b16c7fe223840LL, 0x7787813cac9261ffLL, 0x492db01924e5351fLL,
235     0x5afafe28c84fedaaLL, 0x8b4e214c583139d6LL, 0xccde0ffe4bfa7ad7LL,
236     0x76629805194a2368LL, 0x7ca1624ae5eea835LL, 0x61cbb2d03e6a069eLL,
237     0x48c8a920913d7788LL, 0x8068c23a114df01cLL, 0xd38bed160f3b50a7LL,
238     0x32289dfc201ca625LL, 0xc1b9ba1e5649ca85LL, 0xed21dc33874c0447LL,
239     0xa3a8238542be0a57LL, 0x5b1fe7117d97af3dLL, 0x3d701a6ea2ea92acLL,
240     0x73f9e5d867189cbcLL, 0x9ed839ebe05498fbLL, 0x5920d563e2d22be6LL,
241     0xca9f59681f35034fLL, 0x11e87c4373ef5c6eLL, 0x97c1e8ef366dd5eaLL,
242     0xacf0a417c0483edeLL, 0xd26ef42fbae31230LL, 0xbcfdc16d067f2027LL,
243     0xbec2f31f993aa4fcLL, 0x45af1cc08c8ec7daLL, 0x31f2b6b70a816069LL,
244     0xd9481759f39fdbfaLL, 0xe5dd140ee4ad0bc1LL, 0xa6335e583cecb583LL,
245     0x38eb67b3dcb82d78LL, 0xf5d07174229a1538LL, 0x5f6183f5b61d527eLL,
246     0x0f58879282f63489LL, 0x164c33ec92f86761LL, 0x444a05f93956854dLL,
247     0x818ddb03a495b28bLL, 0x4d53d4fdef6fc85cLL, 0x8d0f77da0cfe404eLL,
248     0x8416a6dedac70d5fLL, 0x666ffd7fdf7d3d91LL, 0xb63e3b22fadbab7aLL,
249     0xf2743edbc38d2e37LL, 0xa40c6c2aa3a93158LL, 0x9f3d20d2558cda6cLL,
250     0xfef692026be6dcf2LL, 0x2ea7545f4e404a19LL, 0xb2405fc631515639LL,
251     0x23c0e1bf53f3fa4bLL, 0x83b2e9713bd03650LL, 0x0641569654cf7998LL,
252     0xb883a589cdf5dd64LL, 0x3ad455c143fda9a3LL, 0x925a9532483f6a3eLL,
253     0xaab1f28194874746LL, 0xf435684d974257afLL, 0xd1b4df64907ed47cLL,
254     0x390e7e8a69606fefLL, 0xd051c65d25a696ebLL, 0xb4010950659e2fa1LL,
255     0x0c82acd9a86bf2c5LL, 0x88940a0772acff9aLL, 0xf39127e276556ca0LL,
256     0xaecf96655f0dba05LL, 0x03da2b4b2a9dc64cLL, 0x3f4f281c3daf1677LL,
257     0x3469cb6a74d3dfbdLL, 0xf04b0ca95cc8aaecLL, 0x1f55e2e844c12a70LL,
258     0x4cb6cdc45ab78acbLL, 0xc05ca327e3918812LL, 0x95feda9da9285131LL,
259     0xb966bcb0782d9ff3LL, 0xa7d647618934f714LL, 0xd61090cb7169ef73LL,
260     0x71c6d7aaf85d1867LL, 0xecc4c50a329446d0LL, 0x6450cf0d4038b94aLL,
261     0x420b536f6d99fcd5LL, 0x75b8b34e33d7e524LL, 0xc26391557cd40cc9LL,
262     0xda923c12d9021db6LL, 0x4e89ffb6c5f20e10LL, 0x0919d104d6394d11LL,
263     0x8aab3875ede97b41LL, 0xa88ec0f30bc2c39dLL, 0xb7db221b4f03e9edLL,
264     0xc7f8ec880286b31dLL, 0x2f424d66fb98088eLL, 0xe04669d39affb415LL,
265     0x3eaa3125887754e0LL, 0x5e849acc03c510e9LL, 0x8257f0488e0874c7LL,
266     0xbd18d854b3a762b0LL, 0xb3a546ff848914aeLL, 0x9ce70b997f111c20LL,
267     0x3c9503571732d03bLL, 0xe7e2267c7be88f1aLL, 0x63f480a2a12f8245LL,
268     0x602eabe98bb24409LL, 0x941bc3a41cf013a6LL, 0x678ae4466aa57f06LL,
269     0x1232570859729a22LL, 0x6d491e099601f45bLL, 0x5d5eb1872958d6a5LL,
270     0x1473019e0dbde3baLL, 0xa24d3abcf76648c0LL, 0x85f3bfe76f1f4fc8LL,
271     0x08fcc83d63e10f86LL, 0x745daa77860fa7b3LL, 0x9180be7962a2ac72LL,
272     0x87cc8d95f05acb13LL, 0x78df06ae2e645576LL, 0x18f1ad47a5d6117fLL,
273     0x358cd253c10b9d2aLL, 0x0ebd9eab372e761eLL, 0xf7ef4306bddf91e3LL,
274     0x7023ce934d855af0LL, 0xd42fa2b9ee2c6ba8LL, 0x3656f918eb965b66LL,
275     0x9d0212a0cac95eb7LL, 0x2ad930bb85cab75aLL, 0x862994ac45828984LL,
276     0x7d447b735036eaa2LL, 0xb07f6db4ae14d2e2LL, 0x6b08489fc2ce8dc3LL,
277     0x9b4344369e06272fLL, 0xad15bd2e75907c49LL, 0xdb77252b6cda5f21LL,
278     0xea85939c665b3f48LL, 0xc945722335a8c503LL, 0x159618a7b865a12dLL,
279     0x69377aed5d8b0918LL, 0x8971133ec774bd0dLL, 0x53e32f2c1e76a0bbLL,
280     0xf8b7c4943f29a56aLL, 0xff138b3bde3e9e65LL},
281 
282    {0x7c6a2eb5fdabecc6LL,
283     0x401cda0a752bbea0LL, 0x1925217156dc57c4LL, 0x56dec6d301d70787LL,
284     0x41c751ff73c6ac58LL, 0xc9067697a92cb5f9LL, 0x3391c917aaa0bc85LL,
285     0xae0a9a4c0e742afeLL, 0xaa8ca972162a62f4LL, 0x5aa193912935df99LL,
286     0x86fd9135fe27e5baLL, 0xffca074b1d3f538eLL, 0x0e3cb65d24cdfc1bLL,
287     0x4384b2e07fe9885dLL, 0xc73ac0ca8de149e2LL, 0x48e5bc7645972eb4LL,
288     0xbe0d56b46ef9ffd6LL, 0x200e6d05c0ef5f50LL, 0xe1f17dee597f7abdLL,
289     0x0243e31f0c2f2405LL, 0xf4ab09dd2741f567LL, 0xe4acc52547cc204fLL,
290     0x348f92c3b83cc272LL, 0x53837e181f645d75LL, 0xd8da319acf4c7229LL,
291     0x81e3cae1ecbb9b4dLL, 0xd6e687c7eb818e32LL, 0x3dad7f4a8e6d409eLL,
292     0x28f70b79f053cf44LL, 0x493e3783437a3c4cLL, 0xb27203f6461b27c8LL,
293     0xd02357e6fff0e23dLL, 0xe8d390676f2ef851LL, 0x26cbbd24d49e335fLL,
294     0xee1640467b5f945eLL, 0x4aa65f6949b80ab1LL, 0xb56c58225487593fLL,
295     0x4ffbe7a2570b5043LL, 0x0aba85633c93b411LL, 0x78ec1d8be5f5a4ccLL,
296     0x501b16f215a66b88LL, 0x271036d1d27321a7LL, 0x7ff2465ff769da3bLL,
297     0x35541936bed1d08aLL, 0xb8c886957a8893d9LL, 0x2fe950ade2cfb1b3LL,
298     0xf90fd76a094e3f81LL, 0x2daab3b2eee095b6LL, 0x1abd499b5c1e6139LL,
299     0x0c7f554228e2d81eLL, 0x425f391579049aa5LL, 0xc3bcf3f495bf01e8LL,
300     0xb4b7d3d7526a4bc7LL, 0x0000000000000000LL, 0xa0362c112ab9d6e5LL,
301     0x91e406198c364e65LL, 0x454162c16b98e452LL, 0x139fa4126a4fe3d5LL,
302     0x01db8bf506ed12f8LL, 0x9a85088fb648e88cLL, 0x3ab3249e9cf13e69LL,
303     0xd57eef2de143b8cfLL, 0xb1ea6b1c4cd91135LL, 0x7aaffe94e9da80c9LL,
304     0xad92f2a604b61c03LL, 0xa3ae44fb207be018LL, 0xeb4bf88d65ecceacLL,
305     0xc0249b1e9f7d3715LL, 0xa8cf4a6d1a0546f1LL, 0xc6e14b3f8b0c5b1aLL,
306     0xce182d43bbb0cb0eLL, 0xfc526fa117fd6573LL, 0x8c471456c2b451abLL,
307     0xac497953025b0efbLL, 0x0486333e185e480aLL, 0x18feaa845031453cLL,
308     0xa1eda7e42c54c41dLL, 0x06c5d02114716c0fLL, 0x055db8cb1eb35af2LL,
309     0xe5774ed0412132b7LL, 0x36cc71dcb413e677LL, 0x470281de67b7c057LL,
310     0x58e2708e251afb9cLL, 0xa914c1981ce85409LL, 0xb3a9880340f63530LL,
311     0x638adfe5bf06d70dLL, 0x0b610e963a7ea6e9LL, 0x927c6ef386f47898LL,
312     0xed8e28ac719da2a3LL, 0x7548c33ccbfa6e2aLL, 0xf3b5520935dd8b90LL,
313     0x8d9c9fa3c4594353LL, 0x31d22a08a68f9880LL, 0x0da4deb72e0fcae6LL,
314     0x8fdf7cbcc8766756LL, 0x5dbfc8453ba9a16eLL, 0x8e04f749ce9b75aeLL,
315     0x83a029fee094bf48LL, 0xa4b01f2f32e79eefLL, 0x1c7899ba486f0d36LL,
316     0x654f0fc4ab77bb02LL, 0x7db1a540fb46fe3eLL, 0x51c09d07134b7970LL,
317     0xcb459588a50391fcLL, 0x3fee9c558242649bLL, 0xfe118cbe1bd24176LL,
318     0x76d0abd6c13858d7LL, 0x5e27a0af316b9793LL, 0x69305a868395631cLL,
319     0x3b68af6b9a1c2c91LL, 0x6db669b89bcb2b16LL, 0xa72877c53825a812LL,
320     0xd3bb3f0cf532d4c0LL, 0x6ff58aa797e40f13LL, 0x96fa5dcd9eaa3092LL,
321     0x2c713847e80d874eLL, 0xc57923d581ce6de7LL, 0x2b6f6393fa91f9b9LL,
322     0x0922ed89365182ecLL, 0x324a42e2ac4dae7dLL, 0x16c21cd974fcb927LL,
323     0x956235279468066fLL, 0x7b747561ef379231LL, 0x449ae9346d75f6aaLL,
324     0xf570822821ace79fLL, 0x5939fb7b23f7e964LL, 0x7937967ee318b634LL,
325     0x84be722af208c1bfLL, 0x08f9667c30bc9014LL, 0xefcdcbb37db286a6LL,
326     0xa6f3fc303ec8baeaLL, 0xea9073786301dc54LL, 0x62515410b9ebc5f5LL,
327     0xd260b4f9f3dfc638LL, 0x9e033bb1ae16a086LL, 0x38f0c78190de1a6cLL,
328     0xc267780193521310LL, 0x80384114ea5689b5LL, 0x9b5e837ab0a5fa74LL,
329     0xf73361372d83c39aLL, 0x3009a1fda0628a78LL, 0xd4a564d8e7aeaa37LL,
330     0xfb4c347505611b84LL, 0x5b7a18642fd8cd61LL, 0x239605efca2d69adLL,
331     0xf8d45c9f0fa32d79LL, 0xbb50ee7f704aa524LL, 0x392b4c7496330894LL,
332     0x0fe73da82220eee3LL, 0x3717fa29b2fef48fLL, 0xf26ed9fc33309968LL,
333     0xd73d0c32ed6c9ccaLL, 0xda99d285c363562cLL, 0xde1fe1bbdb3d1e26LL,
334     0x738d131ddf8b0225LL, 0x292c808cf6beddbcLL, 0xbc4eb5ab62d6dbd3LL,
335     0x039868ea0ac236fdLL, 0xcc5bce5cb79fef0bLL, 0xb031e0e94a3403cdLL,
336     0xc4a2a82087237f1fLL, 0xb72fbb3d58a87d3aLL, 0xafd111b908993806LL,
337     0x68ebd173857871e4LL, 0x9d9b535ba4d4967bLL, 0xe9081b9269c3eaa9LL,
338     0x71cef002d3a42620LL, 0x93a7e50680196a60LL, 0x891aac9ddc070b59LL,
339     0x155a74337e3e8fdaLL, 0x4e206c5751e642bbLL, 0x9721d6389847226aLL,
340     0x12442fe76ca2f12dLL, 0x2553d5cede5c05a2LL, 0xa275cf0e2696f2e0LL,
341     0x24885e3bd8b1175aLL, 0x670cecdba7589f07LL, 0x749348c9cd177cd2LL,
342     0x64948431ad9aa9faLL, 0x2ab4e866fc7ceb41LL, 0xe6ef263a4be3044aLL,
343     0xe734adcf4d0e16b2LL, 0x903f8dec8adb5c9dLL, 0xf02d3ae33f1fbd6dLL,
344     0x725698e8d96610ddLL, 0x1da3124f4e821fceLL, 0x1719972c7211abdfLL,
345     0x11dc470d6660c7d0LL, 0xec55a3597770b05bLL, 0xbfd6dd416814ed2eLL,
346     0x57054d26073a157fLL, 0x1e3b7aa544402933LL, 0x5ffc2b5a3786856bLL,
347     0x61c93cfab329f308LL, 0x3e3517a084af7663LL, 0xf6e8eac22b6ed162LL,
348     0x1007ccf8608dd528LL, 0x66d7672ea1b58dffLL, 0x8b594f82d0282f5cLL,
349     0x1fe0f15042ad3bcbLL, 0x4b7dd49c4f551849LL, 0x4c638f485dc966beLL,
350     0xcfc3a6b6bd5dd9f6LL, 0x46d90a2b615ad2afLL, 0x8565f9dff4e5d347LL,
351     0x94b9bed292851497LL, 0xfa97bf80038c097cLL, 0xb9130d607c658121LL,
352     0xdc5c02a4d7123a23LL, 0x224d8e1accc07b55LL, 0x87261ac0f8caf742LL,
353     0xd901ba6fc9a160d1LL, 0xab57228710c7700cLL, 0x21d5e6f0c6024da8LL,
354     0x98c6eb90ba67cc89LL, 0x827ba20be679adb0LL, 0x991d6065bc8ade71LL,
355     0x5546ae390b15317aLL, 0xa56b94da340a8c17LL, 0x071e5bd4129c7ef7LL,
356     0xe02af61b5f926845LL, 0x6b73b9998fba4719LL, 0xdfc46a4eddd00cdeLL,
357     0x770b2023c7d54a2fLL, 0x7e29cdaaf184c8c3LL, 0xba8b658a76a7b7dcLL,
358     0x9c40d8aea2398483LL, 0x9fd8b044a8fbb27eLL, 0xdb425970c58e44d4LL,
359     0xe269150453bd4c40LL, 0x3c76f4bf88805266LL, 0xf1f6b11639f2af95LL,
360     0x549d25cc0df82382LL, 0x4db804bd5b247446LL, 0x8a82c477d6c53da4LL,
361     0x5258f5ed19894f8dLL, 0x6e2e015291091debLL, 0xc1ff10eb999025edLL,
362     0xbd953e5e643bc92bLL, 0xc8ddfd62afc1a701LL, 0x5c6443b03d44b396LL,
363     0x6c6de24d9d2639eeLL, 0x1481ffc678d39d22LL, 0xd1f8dc13f91df0c5LL,
364     0xca9e1e7da3ee8304LL, 0xdd878951d1ff28dbLL, 0x6012b70fb5c4e1f0LL,
365     0x1b66c26e5af373c1LL, 0xe3b29ef155505eb8LL, 0x70157bf7d54934d8LL,
366     0x2e32db58e422a34bLL, 0x6aa8326c895755e1LL, 0xb6f430c85e456fc2LL,
367     0xfd89e4541110778bLL, 0x88c12768daea19a1LL, 0xcd8045a9b172fdf3LL},
368 
369    {0x99183e616655b742LL, 0xb2872032a50d6860LL, 0x0946f63b060528efLL,
370     0x36612b9a141ef07dLL, 0x0634da84dd49579bLL, 0xfc9c9e9b486c8a57LL,
371     0xa63fe3c0744e6fd0LL, 0xf1515758d8b46bf9LL, 0x3e82559fcd5197ffLL,
372     0x92e12d262bc40177LL, 0xc3bb433a5a7752c5LL, 0x21c3852a5183267aLL,
373     0x39130725cf528f09LL, 0x9ba7db1d2dc12998LL, 0xc58f99be873e055eLL,
374     0xd9d424498f32656cLL, 0x27f75fae8cca71e1LL, 0x59b91019a8fc3430LL,
375     0xce768af9caafb36bLL, 0x9d930199f0887e03LL, 0x63b07a7ef3706a8eLL,
376     0xb5167288a70e7096LL, 0x40cc1a28e967d22eLL, 0x4d01d3eb79bf3380LL,
377     0x9e896cdb6456afb4LL, 0x2548bad2c75eef3bLL, 0xa79a6bfeab0420bdLL,
378     0x9f2ce4e5bb1ce0d9LL, 0x32ea146282c3393cLL, 0x6d67defff7765a97LL,
379     0x83775912b31080ebLL, 0xf5da68a04e69a2b8LL, 0x1196743498d4819cLL,
380     0x0bf913474d91b635LL, 0x43d6776a7db90399LL, 0x444725d07fba1b6fLL,
381     0x6584a0fa2e393d15LL, 0x3f27dda1121bd892LL, 0xf6c005e2dab7730fLL,
382     0x56cb3ca673b04b44LL, 0x642128c4f1737278LL, 0xbf4ae9f135d589ceLL,
383     0xb038c54eee99f6baLL, 0xf47fe09e9123edd5LL, 0x75b75cf069a7f3e4LL,
384     0xd419ed8a1fea84c2LL, 0x73838674b4eea47fLL, 0x498aec13ef62fac1LL,
385     0x20660d148ec96917LL, 0xa48006bc3fdaf10aLL, 0x2f1421ab55851663LL,
386     0x0a5c9b7992dbf958LL, 0xd1375a4c567d02eeLL, 0x0000000000000000LL,
387     0xc842507d17e6e4f0LL, 0xf3eeb2249320f523LL, 0xc9e7d843c8acab9dLL,
388     0xff86f3d9dcb25be0LL, 0xb4b3fab678443ffbLL, 0xb19d4d7031d3b9d7LL,
389     0x79df1d0d26355d27LL, 0x8eba90d123c86145LL, 0xaa57a23d3bdcc113LL,
390     0xcb583d3f83383547LL, 0xd871ac7750782a01LL, 0xe162ab529f2aa508LL,
391     0x38b68f1b1018c064LL, 0x237c60561a17b8a0LL, 0xa31154063dd9e9fcLL,
392     0x713c6308ff7a3aa5LL, 0x1a6f6773d54537a9LL, 0x08e37e05d94f6782LL,
393     0x357b46d880c021caLL, 0x6cc256c1283c15faLL, 0xcfd302c715e5fc06LL,
394     0xbdf50c8d7e411714LL, 0x7cf1aacb6fa2db0bLL, 0x5240035ee56d8205LL,
395     0x7b60f8716da1c3fdLL, 0x01a5883edf4a4f6dLL, 0xdd5f1bb119efac2dLL,
396     0x5474d9da3824d59eLL, 0x0f722cbfdb4c7f74LL, 0x17a2aeb0459dd607LL,
397     0x37c4a3a4cb54bf10LL, 0xc21ecb04853d1da8LL, 0x4273ff54a2f34cf4LL,
398     0xdace490b1becb4dbLL, 0x6af68c45f5754261LL, 0x46f8c0ac342e85b5LL,
399     0x854383966e59d770LL, 0x81c8bc6ef8841e31LL, 0x3bace25984c611d3LL,
400     0x1033fc0a479ecef1LL, 0x1c5bbdf7080c6032LL, 0x7412d4ceb6edbc89LL,
401     0xa8e8474170485fc9LL, 0xb8dbbb4b37d69138LL, 0x079152ba020318f6LL,
402     0x72260e4a6ba4eb12LL, 0x905ec85a60509fadLL, 0x2dabc4d71e1188b9LL,
403     0xd092d27289374d83LL, 0x610f9f02b8e4f454LL, 0x02bfe57c4b949edaLL,
404     0x95707f9c29c71981LL, 0x6fd83b83bce2c44dLL, 0x5d322fe13e21fd71LL,
405     0x34decee65f8a6ea7LL, 0xcd6ce7bb5e7162dcLL, 0xfb0dcc214a6f92a1LL,
406     0x2eb1a9958acf590eLL, 0xdcfa938fc6a5e340LL, 0x669ecdb8bae7eca2LL,
407     0x151d4bcc0e0948ddLL, 0xfd3916a59726c53aLL, 0x581c982777b67b5dLL,
408     0x1bcaef4d0a0f78c4LL, 0xdfe0fecd527b32f7LL, 0x128c19760c0a502bLL,
409     0x84e60ba8b113981dLL, 0x3c3db0e386c50925LL, 0x7febc789fb7c0abcLL,
410     0x7d5422f5b0e89466LL, 0xd70380c88b345575LL, 0xbbc1d609a308408fLL,
411     0xe278c6100bf474bfLL, 0x5e2842a3aaff2cc6LL, 0x6b53047b2a3f0d0cLL,
412     0xf7658ddc05fd3c62LL, 0x9a025323f28b66f5LL, 0x8c0575ad685cff9fLL,
413     0x76ad31b2fd792253LL, 0x68496939bee1dcbbLL, 0x7e4e4fb7243645d1LL,
414     0xe44c1c94d6bd2324LL, 0xbeef61cfea9fc6a3LL, 0x91fb4064bf1ad0c0LL,
415     0x052eb7c64997862cLL, 0x4a9081517bbc2b76LL, 0x8f1f18effc822e28LL,
416     0x3a096a675b8c5ebeLL, 0xee1087ed4466da7cLL, 0x2652d79053803e8cLL,
417     0x7099eb36203075c8LL, 0xc7307cc2ccaa9b84LL, 0x5c97a7dfe16bb21cLL,
418     0x50ffe622aef91cdfLL, 0x8da0fd93b716b0f2LL, 0x69ece10761ab93d6LL,
419     0x31f07920161de88bLL, 0x13299148d3401f46LL, 0x031a6d4294ded1b7LL,
420     0xccc96f85813b2db1LL, 0x14b8c3f2d14307b0LL, 0x8659eed4fa8706c7LL,
421     0xba645e377c420fe2LL, 0x2920fb2f88cc41f8LL, 0x87fc66ea25cd49aaLL,
422     0x1ee4588b4398fee8LL, 0xecaf62910ff244a6LL, 0xf817a163deb14316LL,
423     0x45e2adeea0f05402LL, 0x806d345027ce515cLL, 0x576eb498acfa0429LL,
424     0xa5258e82e090be67LL, 0x892bc26b21cb79b3LL, 0x6e7db3bd63a88b20LL,
425     0x4e1bbea9ed61e237LL, 0xadc6f08739dfd9e5LL, 0x8b9427176a5fe769LL,
426     0xa1aeb17a764d7726LL, 0x4b35096fa4f6641bLL, 0x22d9e868c55df7cdLL,
427     0x55d151e4e76e9af3LL, 0x966a12debd19c836LL, 0x0dcdc9c390d8e1aeLL,
428     0xf24b3a1a4c6aba4eLL, 0x24ed32ec1814a056LL, 0xaf7915fb724b473fLL,
429     0x2885731157860e95LL, 0x9c3689a72fc2316eLL, 0x475d4892eb64cad8LL,
430     0xac6378b9e6959688LL, 0xa00b3944a907384bLL, 0xc695f4fc13e0d4e9LL,
431     0x3055f11ec957a7e6LL, 0x6215f2402c3a25e3LL, 0xde4576f38d317d9aLL,
432     0x9344a518f48e4e1aLL, 0x82d2d12c6c5acf86LL, 0xefb50fd39b2c9511LL,
433     0xe981d5574665c28aLL, 0x5f8dca9d75b563abLL, 0xb60c1fca33d0a121LL,
434     0xfe237be703f8148dLL, 0xd6a608f6547e1a18LL, 0xb97e3375e89cde55LL,
435     0xd388bf301de99c34LL, 0x5b06f565e368aaeaLL, 0xf0f4df6607fe2494LL,
436     0x1607268e9ad7996aLL, 0xaedc9dc5ad010852LL, 0xe0c7236c4060ea65LL,
437     0xea9bb815d2bb133dLL, 0x888e4a55fe8136deLL, 0x5aa37d5b3c22e587LL,
438     0xc104a64611e3cc1fLL, 0x515a6e1c71b353b2LL, 0xc42a118058744a33LL,
439     0x7708b98c22336d3eLL, 0x2a3a966d1c12904fLL, 0x8a31af29b515a804LL,
440     0xed0aeaafd0b80bcbLL, 0x2c0e4ce9c15bc7d4LL, 0x0c6841fd4f92aec3LL,
441     0x98bdb65fb91ff82fLL, 0x1f41d0b59cd2b185LL, 0xb322a80c7a47270dLL,
442     0xe6f3f9e89d29bdfeLL, 0x7ac5704fb2eb8c90LL, 0xa94dcf7faf0210a4LL,
443     0x787a9533f97f124aLL, 0xdb6bc135c4a6fbb6LL, 0x048b3ff896ddc941LL,
444     0xe8245d69992f8de7LL, 0xe3dd4e2ed4be3bd2LL, 0xcafdb5015c727a2aLL,
445     0xb7a997f4ec9aee4cLL, 0xe75671d64263f293LL, 0x2b9f1e53c358df22LL,
446     0x18d0820f9ed1a973LL, 0xabf22a03e4968e7eLL, 0xa2b4dc38e293a691LL,
447     0x673b458665ada3cfLL, 0xf9b2295d01fb0c7bLL, 0xd22d370ec2a3d359LL,
448     0x97cf9ae06253875bLL, 0x0ed7a48104063019LL, 0x482f642d3028b5acLL,
449     0xc0a12e78cea98372LL, 0x4fbe3697322bad5aLL, 0x19750a31419be61eLL,
450     0x41699216362d9d43LL, 0xd5bc65b4c0a0cbafLL, 0xe5e994aa09f76c49LL,
451     0xeb3e302b0df15c50LL, 0x94d5f7a2f68d56ecLL, 0x53e58b603a27cd68LL,
452     0x3d9838dd598f4648LL, 0x60aa173c67aebb39LL, 0x1dfe35c9d7462f5fLL,
453     0x4ca45bd5a6f57cedLL, 0xbc5084b3a10b5879LL, 0xfaa8441f9525ddccLL,
454     0x334f9c5c5d897651LL},
455 
456    {0xda1687a883adf27eLL, 0xe35c9378578d9f22LL,
457     0x303ca4531637fa40LL, 0xa088321f74b20375LL, 0xc9863f3a9acb95e9LL,
458     0x5fcf47c57d0b0ed4LL, 0x4aa211e4e1280b4bLL, 0xe1a4c9ba871d1289LL,
459     0x4926664759f03a4fLL, 0xadfb36ede3707bcaLL, 0xcf7bd1891f8ef7e1LL,
460     0x9735559e8f882792LL, 0x5932a976f84e6cdcLL, 0x9dc792bef547818aLL,
461     0x06fdeeb385456208LL, 0x46ad38771ea2cf5bLL, 0x5eb36aa41543b27bLL,
462     0x8b2eb33cd1bcb511LL, 0x71105ff6e598ebbcLL, 0x5441ad846f8c1463LL,
463     0x4c5fff57646d6943LL, 0xf3485c49f633c9b1LL, 0x9cbbbfdf9d0f3d25LL,
464     0x22d031a067192178LL, 0xca0248992213a4edLL, 0x19627fb263a9c18fLL,
465     0x9330e1efda5dc831LL, 0x1390b89219666797LL, 0x2edf18339893e568LL,
466     0x6c779435d3e4c590LL, 0x53c06e568281cac4LL, 0x6ff3e3966b3cf494LL,
467     0xfe3b58bb61f1b10eLL, 0x77edb14560dd89b4LL, 0x02f85ac2d0908dabLL,
468     0x12ec95f3712edb38LL, 0x85d9c06dfea6fcaaLL, 0x90b4964c6285f935LL,
469     0xf1b0068b26a3441aLL, 0x729428555d40dab8LL, 0x5c4b3066c5d33fd0LL,
470     0x5d371d07ad9b837fLL, 0xa48d866e2167ecd6LL, 0xb661139d504937eeLL,
471     0xa27068dda4228edeLL, 0xf8c6b608e4b4d306LL, 0x6bf657e73ee91b37LL,
472     0xac871b8c8b38c765LL, 0x4ea7a595b4fde4e8LL, 0x0d7304f297c278bfLL,
473     0xb71d3efc38018b41LL, 0xae7f414e5ba84aceLL, 0xaf036c2f33e0f661LL,
474     0x0000000000000000LL, 0xb89660cc7f537e55LL, 0xa675dcacf1f7617dLL,
475     0x610490c74426bd2fLL, 0xc18ca2d83094be5aLL, 0x2adaac42cd460acbLL,
476     0x7d1f76651a122facLL, 0xc58916a9654151f9LL, 0xedabe0297897d699LL,
477     0x2d5b6f90204bd46cLL, 0x26d585d132cccedbLL, 0x9f3fc87c25d70c21LL,
478     0xc60d610add9960fdLL, 0x80a0597dc33bafa6LL, 0xd0e44088f9625466LL,
479     0x1d67cbc3367c2e2cLL, 0x2c2742f1480368c3LL, 0x89d6e9fe012c38baLL,
480     0xe9ae54582d42393aLL, 0x3ecbd702392db3fbLL, 0xb5e5643ee89106eaLL,
481     0xa882affddeed28c6LL, 0x1ae60811db71f08bLL, 0x924ccc8eb215749eLL,
482     0xfcc30279b1613ca5LL, 0x825803bf13ab220dLL, 0xd992f00b3b75c37aLL,
483     0xc8fa125bf2832946LL, 0x35453d432baaa94cLL, 0xf9ba9b698cfc6fa9LL,
484     0x37bd6781fb3a24e7LL, 0x791ac2144fc7c00fLL, 0x16e9218224fb349bLL,
485     0xdb6aaac9ebe54ed1LL, 0xd8eedd6a533d7fd5LL, 0x7c635b04725a9303LL,
486     0x553d80e507c4a8ccLL, 0x9a46516c184a5f2dLL, 0x14117b40f46bb930LL,
487     0x1ee3bc608ea41f28LL, 0x27a9a8b05a847274LL, 0x4050d6c49be7ad53LL,
488     0x7be298d69f574da4LL, 0x6a8a7a8656a1a798LL, 0x4d23d2360c25d5ecLL,
489     0x1014cf31a1be5693LL, 0xb264a7ec059cd84dLL, 0xea2a23fb959a083eLL,
490     0xf0cc2bea4eebf8b5LL, 0x76919c240895351bLL, 0x0b8eea4112871ab7LL,
491     0x47d1151676ea73f4LL, 0xbdeff9dc42ce2d59LL, 0x2ba68123a50eb664LL,
492     0x057999103d9d530cLL, 0xe759270902587081LL, 0xef53baeba8075b32LL,
493     0x4fdb88f4dcb55847LL, 0x6e8fcef70374483bLL, 0x1168e250c9f6ea3cLL,
494     0x1b9a2570b3394c24LL, 0x706c72978dd05713LL, 0x865db7ce467ecdaeLL,
495     0x52bc4337eac9766bLL, 0x504419f53a59fbc0LL, 0x8f2b074d84695ab2LL,
496     0x6078bda62c6e0180LL, 0x43d4a167233f9c57LL, 0x0ef773512f1a49bbLL,
497     0x0c0f2993ff8ac410LL, 0x4bde3c858960b7e4LL, 0x66855315a92b6388LL,
498     0xd360372b41ba6562LL, 0x584e84179006d073LL, 0x9b3a7c0d7002e382LL,
499     0xa5f1ab0f492f5079LL, 0x2822f6801dd68760LL, 0x445562b5ce3242f0LL,
500     0xaa7af53f0e7da56dLL, 0x3c338dc0e9bd3e50LL, 0x3bb24e1204b0e0f7LL,
501     0xd59dd998c4ff076aLL, 0x91c8bb2d0acd459aLL, 0x84a5ed0c96ee4005LL,
502     0x33b8d3f0aeefcb44LL, 0x57c5da27d7542567LL, 0x32c4fe91c6a777ebLL,
503     0x3439102243e215e3LL, 0xc7714c6bb5d1dc52LL, 0x3fb7fa6351650f54LL,
504     0x87219aaf2e367101LL, 0xf5b5b2fa7376abb9LL, 0x412cfba5f3af11fcLL,
505     0xdceb691b06e89076LL, 0xbb12176fc78b4f51LL, 0x73e8053435086617LL,
506     0xe220be193fc5238dLL, 0xb09cfd2ed50c55e6LL, 0xb9ea4dad171bc2faLL,
507     0x9e43e51d4d9fb08eLL, 0x36c14ae093729848LL, 0xa9fe829cb6a59469LL,
508     0x0405b47155d5efa3LL, 0x0af2c7207acfa618LL, 0x7e9b01c6a2ca1ea8LL,
509     0xdd97447a6ea02cd9LL, 0x0781c3d2ed0ddea7LL, 0x7866ef75278f7ca0LL,
510     0xd1986de9912ae8c9LL, 0xcb7e65f84a5b1842LL, 0xcd838b4bcf1e7a4aLL,
511     0xab06d85e663519c2LL, 0xd4e1f4f9acb7bbc5LL, 0xfdbf2f18d929800aLL,
512     0xf23471289e7b751eLL, 0xbc93d4bd2a8691f6LL, 0x3d4fa0a181f582ffLL,
513     0xba6e3a0eafc3f3feLL, 0x5ab6ded540965dd8LL, 0xeb560e9afdd2b491LL,
514     0x0976b083c217971cLL, 0xecd7cd4810df6a36LL, 0x23ac1cc10f519dd7LL,
515     0xbe6b8e7ffa161c5dLL, 0x7fe72ca7ca82a207LL, 0xc0f08fb958dc02f5LL,
516     0x7a9eb5b7f71ff10bLL, 0xa709f1cd99bfddd2LL, 0x8dd35d8f54f9d719LL,
517     0x8caf70ee3cb16bb6LL, 0xe4dd50aaba804185LL, 0x83242ede7be39ea2LL,
518     0x98be0baec8dad286LL, 0x690e0d25ee79969cLL, 0x95cd0f5c5f18aa39LL,
519     0x56b9f746bf1c99c8LL, 0x7469c6e6d805b8b0LL, 0x8a529e5db9f409beLL,
520     0xe6250a686a10cc2eLL, 0x2fa33552f0db59c7LL, 0x42a88c064b7720f8LL,
521     0x6d0bb954bbac793fLL, 0x181e52d30be17d20LL, 0xbf17a31e925ea0f2LL,
522     0x94b1223d37501696LL, 0xe8d27939450a8595LL, 0xccffa62aa756c6e5LL,
523     0x383639b1bc68d1f3LL, 0xee2f978ac04fe79dLL, 0xa30c45bccc6a3271LL,
524     0x1f9f9101e6eca387LL, 0xb1e0d04fbd44e949LL, 0x242ddf13e25c4370LL,
525     0x156d56219c23059fLL, 0x88aac49f69648415LL, 0x6280e764fcfe8c2bLL,
526     0xdf6f1eb8be30a172LL, 0xe5a17dcbd2c8fd2aLL, 0xe0d8e4dbef55ae26LL,
527     0x63fcca0594b63084LL, 0xa1f41f7e1cfabfdaLL, 0x295edbe1759e3bcfLL,
528     0x67f97e74c163df27LL, 0x038477a3b8d83104LL, 0xde1333d9d6781dddLL,
529     0x3ace63736cf85c58LL, 0xd619ae3b7c27366eLL, 0x5bcaf3b428dee177LL,
530     0xb3188a8d6dd464e2LL, 0x1c1be6a25e349283LL, 0x017c2d616848bcafLL,
531     0x8e572a2cec21e61dLL, 0xf631c559cbae9abdLL, 0x81dc741cab731309LL,
532     0xff4775da09b90da1LL, 0xb499495f80d9ba45LL, 0x0f8b5e304752f514LL,
533     0x394a14d0d4206d5cLL, 0xce07fce877c64b4eLL, 0xf4c99f9b1b3e1716LL,
534     0xc4f53bc80d09ed56LL, 0xc208d57b884c8f5eLL, 0x080a9de2aa5f2bb3LL,
535     0x314089327e7f46efLL, 0xfa3eecca34245eadLL, 0x20286b62b789acd3LL,
536     0x7515eb87b04d041fLL, 0x513834945211476fLL, 0x650124b611f3528cLL,
537     0x17950ce34cb38834LL, 0x45294fd4a67afe5fLL, 0x21544603dfc1107cLL,
538     0x485a4b2631b886e0LL, 0x6872204486312a33LL, 0x647d09d779bbee23LL,
539     0x2551f2728a14ffdfLL, 0xd765835a146f8ac1LL, 0xd21c1a4a29f2d9cdLL,
540     0x99c226cfa0926e29LL, 0xfb42c1ab5c6ce202LL, 0xc374f81ae00433f1LL,
541     0x964978ffe7c09b3dLL, 0xf74de838a3e62612LL},
542 
543    {0x74b87b36b0592c6aLL,
544     0x3d82d75dffb4b81cLL, 0x8884246715267825LL, 0xdaf2d8a77ed4e5deLL,
545     0xfeb118650e53f9c7LL, 0xbd2d1aea59226b06LL, 0x26ce87f6dbabb191LL,
546     0x32772ecbeb66bd0aLL, 0xd4bbf82bc5104c8cLL, 0x055357720c4e03a1LL,
547     0xef5be62a32d0f6fdLL, 0xbe1c84c45d186acaLL, 0xacc7e4a565a1643cLL,
548     0x8dd7731519687b84LL, 0x11eafe4f3c830f3aLL, 0x04ef8e68a358afe5LL,
549     0x40ad9ca1534b930dLL, 0xe44191d4855a5c0eLL, 0x6001d20b809420f1LL,
550     0x73666b70173b8243LL, 0x372479b9e728beabLL, 0x45fecbd35f0590acLL,
551     0x7057f55e1301838fLL, 0xff0dc17fa1455583LL, 0x0cc467b810e804daLL,
552     0xb9c29482fa7ac4e3LL, 0xa003831d754960e6LL, 0x8a096353be0ad5adLL,
553     0xdd2cc8e1d9b64bf7LL, 0xc7dc415052bfee3eLL, 0x9f0c137421d17572LL,
554     0x35a93e8d4c041323LL, 0x9a5f44062d9f76d3LL, 0x71eb2c44bc172fcbLL,
555     0x0ff5f99614d20516LL, 0x7789e518b4632da6LL, 0xc99561dce97b476cLL,
556     0x5276fcc06bf29dfbLL, 0x4a0b32454bd795baLL, 0x9274add69e2fddecLL,
557     0x4f5865374799961bLL, 0xb2d8e37c4df06e10LL, 0xc4eddf7e5685eff2LL,
558     0xb3643a66e2e6c254LL, 0xd50721316a06e0c8LL, 0x8bb5ba49111c79e9LL,
559     0x2bb639546455190fLL, 0xf8d3d1390627fbaaLL, 0x38d1802ff3fabbbdLL,
560     0xdfa18fd5729ae67fLL, 0x4ee4bc2de88f3a5fLL, 0xf72628af12f5febcLL,
561     0x0aa6aee4189c06b7LL, 0x0000000000000000LL, 0x9eb0ca6e8ec7d936LL,
562     0xcb1826e84257eae4LL, 0x187dce8520250841LL, 0xc28f16225ef1ed9fLL,
563     0xc333cf38f1e741dbLL, 0x4220db95f8673e85LL, 0xdc9011fb76a0e7b3LL,
564     0x105627559395a37eLL, 0x2f59b73cc70db6eaLL, 0xe112c6a689145fafLL,
565     0x82228a830dba7e92LL, 0x2ee56e26681b1aaeLL, 0x2a0ae04ecb43b54bLL,
566     0x47738ce7f4293d24LL, 0xa7dd935bd22bcecfLL, 0xd2d93177cd644ee1LL,
567     0xebb4684291885918LL, 0x0e49208cbbc4a952LL, 0xa550d46f79076347LL,
568     0x411145bbfc5d3f49LL, 0xe6ccd6e02e76f186LL, 0x4bb7eb5fe4c139feLL,
569     0x5d8305567f2098edLL, 0x95aabd90394d73c5LL, 0x25ff19d8df91b05dLL,
570     0x86cd04ebaee2d177LL, 0x03319e2e043a01ccLL, 0x6b1ba5f5371e8a02LL,
571     0x76353c021b7581e2LL, 0x64ee5c6323cc8f14LL, 0x5c3fdc4cd03634a9LL,
572     0x6996e2c19c32278aLL, 0x8938fd7dba30d461LL, 0x7b4d82a0a48b297cLL,
573     0xbfa05ddef20ec68eLL, 0x8ee6ed3b1d527a48LL, 0x61bd0b112f828cb5LL,
574     0x66631b5788e0229cLL, 0x55a8ec86cc9033d2LL, 0x1c9240ed837da7a4LL,
575     0x150570279fdba0dfLL, 0x53ca25dac4e431bfLL, 0xd636bf1f6e3ce104LL,
576     0xcaa4fff2ed4146a0LL, 0x787c1c8ea0b128b0LL, 0xad7b3dbfcab7c878LL,
577     0xfc3c5f51a57f544fLL, 0xb78bb40e41be6db1LL, 0x8c6baa0fb67ed7c0LL,
578     0xce4b719a4e19e945LL, 0xf96f0823a93157eeLL, 0x7d2f4bfcacff2b11LL,
579     0x3eb34973fb8eb9d0LL, 0xe39f81922238f227LL, 0x239dd084d7e5b230LL,
580     0x1fa3dec38747a668LL, 0xc5510664f99343b6LL, 0xc829b8c6466deb28LL,
581     0x85fc9ac5aad8d0bbLL, 0xb6376d14eea8c1f5LL, 0x9d8154408afdd8faLL,
582     0x3be01e01f7c0ba71LL, 0x628c953f2bb88d79LL, 0x6d796ca93f6a886fLL,
583     0xfa5e960dad0b5622LL, 0xe5fd48ce2a4cf04aLL, 0xe7700ffa81605dc2LL,
584     0x2dd4f0086c211b62LL, 0x2221099e78f31e74LL, 0xdb4e01bdd1c2499aLL,
585     0xf417b68116cfff70LL, 0xb506f33aea92c039LL, 0x514762ee6fc89c37LL,
586     0x9c3d8d5a25eb74beLL, 0x396d59355cec17f9LL, 0xccc636aee53544cdLL,
587     0x0b1a77feb78aaaf3LL, 0xe9392f763aa4f490LL, 0xaaa52df96dd56651LL,
588     0x46cf55fd5b3f9160LL, 0xa4ec0d75d611cf03LL, 0xaff67a8b619b65f0LL,
589     0x3415e797e312bf67LL, 0x7af15bba0b9d8538LL, 0x811314ad09807f5eLL,
590     0x8771ddf101f47d33LL, 0x969b23be3d777209LL, 0xd365e86d6272e2a5LL,
591     0x58d05224736e9b4cLL, 0xc660984afda9427aLL, 0x5414359c63869f96LL,
592     0xe885f66c95b258d4LL, 0x655285798cda2350LL, 0x6cc5b5b3907c242bLL,
593     0x6ff42b9d944625e7LL, 0xc0025116f5dd4017LL, 0xa28ec429de65cd6eLL,
594     0x63304c2584ae213dLL, 0x7fa20cc807d38699LL, 0x996eda2829a5771fLL,
595     0x1b4c50ab241f098dLL, 0x1e1f07d928510a2cLL, 0x33cbf7d14470114eLL,
596     0xb055a448e6dcc398LL, 0x98d2033286b3db5bLL, 0xec6a780436eaf731LL,
597     0xa1bf5a07da5fcca2LL, 0xbaf30aacfe40c52fLL, 0xf144e1f31a81fcd1LL,
598     0xe0ae1fbc2602f3ebLL, 0x14b9a93d30cd0c9bLL, 0x596c8b3edc783708LL,
599     0x682a3bdb33248bceLL, 0xb87e4d98556c68a7LL, 0x80afcdb7a696d31aLL,
600     0x5725abb267bc9e5aLL, 0x914533f89a15dc20LL, 0x5eb29b787b1a9921LL,
601     0x01bcd91aaf16ac44LL, 0xc1be880c5acbec53LL, 0xedd6a11e99fc5b75LL,
602     0x028d4734ab2cad88LL, 0x8f5a3421b244d60cLL, 0x4dd52203ecb53b93LL,
603     0x3f0f906954981594LL, 0xae4aa391ce8dc9b4LL, 0x3698a0a3483e12efLL,
604     0xf5ab6f9bb9d95334LL, 0x082be9d0b3b0ab3fLL, 0xd1e8af59c95e4f2dLL,
605     0xd87f9f93d5f84856LL, 0x6e48f2873b5089a3LL, 0x2443c0c270871c19LL,
606     0xb1e97d5249ca6fdcLL, 0x7c9392e603e98755LL, 0x839e5399a2acd2d6LL,
607     0x19c1179f8f33a405LL, 0xde1d56cfdd8c4a3bLL, 0x20ac4eaad3dfb3fcLL,
608     0x1af089b18b09a5c9LL, 0x3a5cc71b58d61635LL, 0x444212c9f0133ce8LL,
609     0x72dab26ab82d2e07LL, 0x4c69fb1943a397d7LL, 0xf3c9a6c7b1ad5159LL,
610     0x1d2e99f72c6b0be0LL, 0xb4ba2a2045846c7dLL, 0xe22358888d2e5e63LL,
611     0x2887a77a606f18c3LL, 0xa8286acdc6f9cbd9LL, 0x5f0e4262d40c3565LL,
612     0xeee73f309dc65ab9LL, 0x9be39d1c8289da97LL, 0x1634ee099be1a113LL,
613     0xea08b1583e9ef55cLL, 0x9727faa49261de4dLL, 0x2c682912c337b726LL,
614     0xcff7a880e10f4501LL, 0x1788371334f70d57LL, 0x27725eec74bd1dd5LL,
615     0x3146b0e5ef5cbcc6LL, 0x099730ca1ca6077bLL, 0xf2757fdd1ebbfd1dLL,
616     0x6aa77cef98082646LL, 0xbb4fd3b65156696bLL, 0x569972a8c8aa321eLL,
617     0xa3321d337173612aLL, 0x50fbbbf4c0de3073LL, 0x5a5d1510d84236c4LL,
618     0xfd80864b0a69f80bLL, 0x07de1046a762ae29LL, 0xa6614a417d3d628bLL,
619     0xd78a6605c12a4d40LL, 0x67dfc24d27f68ed8LL, 0xbc91c3f0f634c742LL,
620     0xd05476436648e369LL, 0x493aac6b4fed9476LL, 0x12db606138b90ef6LL,
621     0xa994b3d769ef679dLL, 0x211097b07cc91fb8LL, 0x30fa69ff404a1082LL,
622     0x3c3e0e4750a21458LL, 0x7504a22c1f4f802eLL, 0x844043df05ce7cffLL,
623     0xf0f838e9b5975095LL, 0x7e1ed5d2a8c52addLL, 0x90f9eae235037064LL,
624     0x0662c95c0874026dLL, 0x9416648a965bdf81LL, 0xf69af1b5bde352f8LL,
625     0x0d78bea2bffea89eLL, 0x293b7e60cf79b487LL, 0xd9c346897aeee412LL,
626     0xfbe24f17021dfa66LL, 0x1367b97b97afa2b2LL, 0xab19f4e3c2c3ca15LL,
627     0x48867571e0fb3832LL, 0x93c874cc313971a8LL, 0x79c0c5940fa784f4LL,
628     0xcd7aefb44a23e889LL, 0x439c028f577192c1LL, 0x5be1cc0a77549a80LL},
629 
630    {0x714d28d778656928LL, 0xc88a7c6b84f64f7cLL, 0xec43cac5ab89aacaLL,
631     0x777fa38110dc16a3LL, 0x0f7d5c87e4213b5cLL, 0x73f051e5f3a1ef51LL,
632     0xea714193c330d541LL, 0x95e5f3dae016c4f3LL, 0x63d3738095a0e173LL,
633     0x9825d66f8ff379d6LL, 0xe8cc38a148f45338LL, 0xa840b0c025f06bb0LL,
634     0x944135c35f748735LL, 0x74661caa247ad31cLL, 0xe7b16426acd56864LL,
635     0xd1e689df6e6f0589LL, 0xa73dec47c1d150ecLL, 0x64453ecf427bdd3eLL,
636     0x0ed99a9e5b43789aLL, 0x7b1b402dc05be840LL, 0x0dc025b56fe5bd25LL,
637     0x3f183a284e22293aLL, 0xa0aba108160a6ca1LL, 0x46be033705bd4703LL,
638     0x86df6e94b2b10f6eLL, 0xa216d83a9dceead8LL, 0x129e5b57edc5885bLL,
639     0x7e3074509c445274LL, 0x7d29cb7ba8e297cbLL, 0x1611a9330eb871a9LL,
640     0x486799a95efe3f99LL, 0x9fb39b205828459bLL, 0xd0424fc6d10d464fLL,
641     0xe968feb8f79610feLL, 0x5d6f8fb164e08b8fLL, 0xaafdc9f2ae34edc9LL,
642     0x02bd79328bc48679LL, 0x9b3c6944bb55bc69LL, 0x6277b5992ac2a2b5LL,
643     0x877ba88d0dd34ca8LL, 0xfa5263f6a531db63LL, 0x2e9fde54974164deLL,
644     0xcda14816d8e9f548LL, 0x675c81e476dd1881LL, 0x2a102c30743c9d2cLL,
645     0x37f32be07dd82e2bLL, 0x256d70b7901da670LL, 0x4ce86bcdbd83c66bLL,
646     0x50afaa040b0536aaLL, 0xef5a75ee9f2f6f75LL, 0xb3913c4644ada73cLL,
647     0x1187e47cd9634de4LL, 0xc54a59deeb13f259LL, 0x0000000000000000LL,
648     0x01a4c619bf6243c6LL, 0x90cec7a7bc097ec7LL, 0xf94bdcdd91971edcLL,
649     0x8e347f5c814b087fLL, 0xc7f720ec60d77420LL, 0x354e52d2f61ca852LL,
650     0x34ea94cb497eeb94LL, 0xae723b964d49143bLL, 0xf48bf968fe72a3f9LL,
651     0xfc60e8a0cd88a4e8LL, 0x2909931b409a5893LL, 0xbd48a6d81feedfa6LL,
652     0x6cae2f077181da2fLL, 0xad6b84bd79efd184LL, 0x18c833ad55fb0933LL,
653     0x204644cacc021c44LL, 0x392ab17e269b56b1LL, 0x14acd001857cf7d0LL,
654     0x8abb8d386236f18dLL, 0xeefeb3f7204d2cb3LL, 0xf636805a75b62580LL,
655     0x2bb4ea29cb5edeeaLL, 0xc653e6f5dfb537e6LL, 0x8d2dc077b5edcdc0LL,
656     0x31c1a0b6156151a0LL, 0xf8ef1ac42ef55d1aLL, 0xdbb0e125d65184e1LL,
657     0x82509cf051ccf69cLL, 0xe33e96424fa89196LL, 0xdf3f1341352c7d13LL,
658     0x8f90b9453e294bb9LL, 0x1023226566010e22LL, 0xa58095754a15d695LL,
659     0x2c22a7661c85e2a7LL, 0xe183ef70c46c17efLL, 0xafd6fd8ff22b57fdLL,
660     0x471ac52ebadf04c5LL, 0x4d4cadd402e185adLL, 0x916a01be036b3d01LL,
661     0x28ad5502fff81b55LL, 0x3657edf9c2ba6dedLL, 0xd2ff36f45ac9c036LL,
662     0xf1a0cd15a26d19cdLL, 0xd90d98175d950298LL, 0xf7924643cad46646LL,
663     0xdd826a73bee8fb6aLL, 0x9d0ee212d3ecc3e2LL, 0xb6ba083b18b21d08LL,
664     0x3da5431ac5e6af43LL, 0x08eb11c833fa0711LL, 0x052b347d5c1fba34LL,
665     0x6fb7902c45271f90LL, 0x133a9d4e52a7cb9dLL, 0x6e135635fa455c56LL,
666     0x725497fc4cc3ac97LL, 0xf31db42729a99fb4LL, 0x846217a639758917LL,
667     0x4b7e26826a58fa26LL, 0x235ffbe1f8a4d9fbLL, 0xff79578bf92e6157LL,
668     0xda14273c6933c727LL, 0x8b1f4b21dd54b24bLL, 0x9caa240b6c8e8024LL,
669     0xc1c5abba086e0babLL, 0xde9bd5588a4e3ed5LL, 0x2d86617fa3e7a161LL,
670     0xbff5dfea942a59dfLL, 0x66f847fdc9bf5b47LL, 0x3b97c84cad5fd0c8LL,
671     0x3ebcfc31f1406afcLL, 0xca3705590f32c905LL, 0x24c9b6ae2f7fe5b6LL,
672     0x408c88616d043888LL, 0x93d7788c88afbb78LL, 0x196cf5b4ea994af5LL,
673     0x9a98af5d0437ffafLL, 0x8c89066e0a8f8e06LL, 0xab590feb1156ae0fLL,
674     0xd7d4028906d67a02LL, 0xe4a8db0d9873addbLL, 0xc378d28883aa8dd2LL,
675     0x4ff1d4e6892503d4LL, 0xd670c490b9b439c4LL, 0x65e1f8d6fd199ef8LL,
676     0xf2b9723e96cbdc72LL, 0xb12c4574cf692145LL, 0x569d215263bc4921LL,
677     0x69851b7a2d9e601bLL, 0x5e76309a50464e30LL, 0x5fd2f683ef240df6LL,
678     0xd8a95e0ee2f7415eLL, 0xe29a505bf0cad250LL, 0x96fc4cf1d4b0014cLL,
679     0x8806f40ae9f277f4LL, 0x53b6152f3fa3f315LL, 0x1c47c1c9b686f0c1LL,
680     0x80ede5c2da0870e5LL, 0xd5697bbb8d12fc7bLL, 0xfdc42eb972eae72eLL,
681     0x0bf2aee3075cc2aeLL, 0x22fb3df847c69a3dLL, 0xbadeeb97c835e3ebLL,
682     0xdc26ac6a018ab8acLL, 0xbcec60c1a08c9c60LL, 0x4231f153e6c0bef1LL,
683     0x337cd9849ea5d7d9LL, 0x5b5d04e70c59f404LL, 0x79a6391f4b9f6e39LL,
684     0x5212d33680c1b0d3LL, 0xb5a3b7102c14d8b7LL, 0x7f94b249232611b2LL,
685     0x17b56f2ab1da326fLL, 0x59e07dd5879d727dLL, 0xebd5878a7c529687LL,
686     0xbb7a2d8e7757a02dLL, 0x0319bf2b34a6c5bfLL, 0x5ccb49a8db82c849LL,
687     0x1de307d009e4b307LL, 0x49c35fb0e19c7c5fLL, 0x55849e79571a8c9eLL,
688     0x7abf86347f39ab86LL, 0x9273be9537cdf8beLL, 0xe615a23f13b72ba2LL,
689     0x6821dd6392fc23ddLL, 0x5af9c2feb33bb7c2LL, 0x06328b5668b97f8bLL,
690     0x44037a058e79c17aLL, 0x83f45ae9eeaeb55aLL, 0x5739e74bdcde0ae7LL,
691     0xfbf6a5ef1a5398a5LL, 0xe50c1d142711ee1dLL, 0x1a754a9fde3f8f4aLL,
692     0x7802ff06f4fd2dffLL, 0xf52f3f714110e03fLL, 0x2674cf9ca4bb63cfLL,
693     0x60caccaba10624ccLL, 0xb088836d700b6283LL, 0xa6992a5e7eb3132aLL,
694     0xa9e476d99a922876LL, 0x6b386248a65ae662LL, 0xc2dc14913cc8ce14LL,
695     0x76db6598afbe5565LL, 0x32d81f9d21c7941fLL, 0x21e282d373605f82LL,
696     0xc0616da3b70c486dLL, 0x616e0ab21e64670aLL, 0x6d0ae91ecee399e9LL,
697     0x27d009851bd92009LL, 0xfedd9192464c2291LL, 0x45a7bc1c311b82bcLL,
698     0x54205860e878cf58LL, 0xa10f6711a9682f67LL, 0x9981107630913a10LL,
699     0xede70cdc14ebe90cLL, 0x70e9eecec7072aeeLL, 0x1f5e7ee28220357eLL,
700     0x2f3b184d28232718LL, 0x41284e78d2667b4eLL, 0xa424536cf5779553LL,
701     0xa3b21e2322aca91eLL, 0x4e5512ff36474012LL, 0x1efab8fb3d4276b8LL,
702     0x89a2321356903432LL, 0xcb93c340b0508ac3LL, 0x306566afaa031266LL,
703     0x4adae09bd53ab9e0LL, 0xc92eba723b940cbaLL, 0x094fd7d18c9844d7LL,
704     0xcc058e0f678bb68eLL, 0xd4cdbda23270bfbdLL, 0x0a5668fab83e8168LL,
705     0x510b6c1db467756cLL, 0xb86392a543f16592LL, 0x048ff264e37df9f2LL,
706     0x3a330e55123d930eLL, 0xb235fa5ffbcfe4faLL, 0xb9c754bcfc932654LL,
707     0x3c0185037a84ec85LL, 0x0c64e3acd087fee3LL, 0xe02729697b0e5429LL,
708     0x07964d4fd7db3c4dLL, 0x814923db656a3323LL, 0x388e776799f91577LL,
709     0x6a9ca4511938a5a4LL, 0x1bd18c86615dcc8cLL, 0xb407710993769b71LL,
710     0x150816183a1eb416LL, 0x4395374a59a2fd37LL, 0xc4ee9fc75471b19fLL,
711     0x5844bbcc38ff31bbLL, 0xcf1c3124532d7331LL, 0xb71ece22a7d05eceLL,
712     0xaccf42a4c68d9242LL, 0x97588ae86bd2428aLL, 0x75c2dab39b1890daLL,
713     0x9e175d39e74a065dLL, 0xf0040b0c1d0f5a0bLL, 0xceb8f73dec4f30f7LL,
714     0xbe5119f32b481a19LL, 0xd35bf0ede5ab83f0LL, 0x7c8d0d621780d40dLL,
715     0x85c6d1bf8617cad1LL},
716 
717    {0xb1c742127b66f2a4LL, 0xce916098d7a59fc1LL,
718     0xc312ef8e2406fa70LL, 0x956c7dced81403d5LL, 0x5a0c9b2318dd9520LL,
719     0xad0d57f51a480e8bLL, 0xe7b9d05287740b01LL, 0x0217f9ea2ed81268LL,
720     0x4d7cff19f8cd3a06LL, 0x44d1772e572b7b67LL, 0xfb73c5b5e65af72eLL,
721     0x91427aef84512705LL, 0x0c720963e4cf6c85LL, 0x87c398a0732d8117LL,
722     0xa17f5e96fe87620eLL, 0x50476c8b8e8fcf1dLL, 0xcb4ee1cc9c8cb225LL,
723     0x67b2304c91a8b59aLL, 0x54696baad2caebcdLL, 0xddcf03836bf01437LL,
724     0x46c68ec479f3690fLL, 0x8f9f96e2cba7c942LL, 0xe1802e99f5e93db9LL,
725     0x4e9a8086c179215aLL, 0xf0c9b4686764a427LL, 0xfd4a3b7e94c7c196LL,
726     0xfcbbbd0b83abc8a2LL, 0xebcbd93163bb6784LL, 0xf9643c5fc882e546LL,
727     0xc4da973041f7c5fcLL, 0x1af3eb2c13b3ca97LL, 0x6e1fb87b3e4ef4fbLL,
728     0x5e229c024498b1f0LL, 0xf516353c2c4d89c3LL, 0xcc869972f97d8da9LL,
729     0x8d886f08e57fdb2aLL, 0x1cca15e7612efc2fLL, 0x567e9240fc12f9a5LL,
730     0x43190f9032da44ebLL, 0xfeac44e1ad73dacaLL, 0x07c878be65f13f8cLL,
731     0x618bce87e3358322LL, 0xf895ba2adfeeec72LL, 0x751dd5223a913758LL,
732     0x59eae4bc21698e7cLL, 0xff5dc294ba1fd3feLL, 0x03e67f9f39b41b5cLL,
733     0x2292c117d1efc7c9LL, 0x8a4017b6808ee4a6LL, 0xd1bd0ae08f3f78b2LL,
734     0x135e631bbc558bf6LL, 0xee14586528924a60LL, 0x8857ee5cae56f6ceLL,
735     0x0000000000000000LL, 0x0e65f089ca177eedLL, 0x34132358269361dbLL,
736     0x15679dd0cec8bd4eLL, 0x800be01e16dcbe9bLL, 0x949dfbbbcf780ae1LL,
737     0xe397d773db312fd1LL, 0xedf227fa1126513cLL, 0xb5e945332723d674LL,
738     0x53a11314b73bd441LL, 0x23634762c683cefdLL, 0x4b4501d28a500cbeLL,
739     0x473708b16e9f603bLL, 0x1770643ae010af26LL, 0xa746a05d8c1a54b6LL,
740     0x90b3fc9a933d2e31LL, 0x35e2a52d31ff68efLL, 0xab34a93e68d53833LL,
741     0xd81082d720d939d3LL, 0xb86aca25d480b3c5LL, 0xdfd8fa694528065fLL,
742     0x4f6b06f3d615286eLL, 0x578f1435eb7ef091LL, 0x9af80b32056f740cLL,
743     0x92a40570bde53c59LL, 0xdbf6fd48196d228fLL, 0x1b026d5904dfc3a3LL,
744     0x3c4f2d1a9e19298eLL, 0xc8a89e53a538a979LL, 0x991e74ad3cdb6f50LL,
745     0x042e07215c4524d0LL, 0x8e6e1097dccbc076LL, 0xe071a8ece285348dLL,
746     0xd784f42bfda24e0aLL, 0x7d41db60821b7f0dLL, 0x85d4614a5df5937fLL,
747     0xbb8cb5baed34a899LL, 0x40ff700f0b6e5fb7LL, 0x2cf7319e1bf8b924LL,
748     0x3a76d3d1ec841f36LL, 0x4520f15b40477253LL, 0xf138321d7008ad13LL,
749     0x42e889e525b64ddfLL, 0x65a5c9a6bf70a7f2LL, 0x208538fdff37d5a1LL,
750     0x410ef67a1c025683LL, 0x18e412c63d6bd8ffLL, 0x72d5ad9c5f6008d4LL,
751     0x255ab9a9b41ef845LL, 0x93558305aa89356dLL, 0x70c2547671b81abcLL,
752     0x3604dab2084b73b3LL, 0x05df81544b292de4LL, 0xf2de4d8249bcb64fLL,
753     0x0bba71dd813e5309LL, 0xa368a77cd05f7066LL, 0x796fdc41de5e5bddLL,
754     0xec03a18f064a5808LL, 0x085c0e42b88a4855LL, 0x274d40439ac6ea2dLL,
755     0x31cca20c6dba4c3fLL, 0x322add93540e5763LL, 0xb60f3aac1e97cd28LL,
756     0x7cb05d1595777639LL, 0xb036c4676c0afb90LL, 0x0a4bf7a896525a3dLL,
757     0x73242be9480c01e0LL, 0x5bfd1d560fb19c14LL, 0x7b7825abf08649b5LL,
758     0xb7febcd909fbc41cLL, 0x81fa666b01b0b7afLL, 0xd25b757fb68b63eeLL,
759     0x0d838f16f3a365b1LL, 0x6a31bf5a620bd02bLL, 0x26bcc6368daae319LL,
760     0x9ed60c13592a50dcLL, 0x581b62c936058748LL, 0x9cc1f5f977f242b4LL,
761     0x83ed9f812f68a5c7LL, 0x74ec53572dfd3e6cLL, 0xb3d0bbf855bee0ccLL,
762     0xacfcd1800d2407bfLL, 0x303d24797ad6450bLL, 0x7a89a3dee7ea4081LL,
763     0x69d7c0c55bbfcb77LL, 0x770a2cc814492530LL, 0x0f9476fcdd7b77d9LL,
764     0xaeeb286a23fc15d7LL, 0x2174be88e85bdc95LL, 0xde297c1c52440f6bLL,
765     0xd04c8c9598537186LL, 0x2ee0c8743520ab4cLL, 0x977b8424f6cc11bdLL,
766     0x10b81c8485e190aaLL, 0xa4a0dfc2b5ae4feaLL, 0x98eff2d82bb76664LL,
767     0xa8d2d6a15161236fLL, 0xd4628bb4c4165556LL, 0x682646b04cd3c243LL,
768     0x2d06b7eb0c94b010LL, 0x626db118da81987eLL, 0x2928b0ca50d194c0LL,
769     0x6df9c7e407faefa7LL, 0x1681e24ff77ca612LL, 0x4952f838a4881ed6LL,
770     0x76fbaabd03252c04LL, 0xc73ce8af7843dea0LL, 0xe82da6ae5a0f7cd8LL,
771     0xc10516640adee818LL, 0x968a0251e1a01889LL, 0x37f55cc71f277a87LL,
772     0xe5ae29b8a9ac1969LL, 0xcabf67b98be0bb11LL, 0xf4e7b3493b2180f7LL,
773     0xe9dc20db4d6375ecLL, 0x639c376dcded914aLL, 0x12afe56eab3982c2LL,
774     0xc2e369fb336af344LL, 0xa6b726289b765d82LL, 0x14961ba5d9a4b47aLL,
775     0xbc44cd0488c59715LL, 0xd3aaf30aa1e76adaLL, 0x28d936bf47bd9df4LL,
776     0xaf1aae1f34901ce3LL, 0x2f114e01224ca278LL, 0xe648562790180235LL,
777     0x24ab3fdca372f171LL, 0x52509561a057dd75LL, 0xc6cd6eda6f2fd794LL,
778     0xa08ed8e3e9eb6b3aLL, 0x09ad8837afe64161LL, 0xbdb54b719fa99e21LL,
779     0x8c79e97df213d21eLL, 0xcf60e6edc0c996f5LL, 0x5dc4e39d7d2caaacLL,
780     0x11499af1928d999eLL, 0x5fd31a7753f4b8c4LL, 0x01f18675176c0934LL,
781     0xc52b1145569bccc8LL, 0x9f278a664e4659e8LL, 0x3dbeab6f897520baLL,
782     0xa2992109c7337952LL, 0x9b098d4712037d38LL, 0xc9591826b254a04dLL,
783     0x3b8755a4fbe81602LL, 0xbe5334eea61d857dLL, 0x51b6eafe99e3c629LL,
784     0x191594b32a07d1cbLL, 0x1f2c6a78589ae773LL, 0x3fa95285a7ad32d2LL,
785     0x5c3565e86a40a398LL, 0xb2213d8d42d2e9f8LL, 0xefe5de103ffe4354LL,
786     0x4ab487a79d3c058aLL, 0xcd771f07ee11849dLL, 0xbfa2b29bb1718c49LL,
787     0xba7d33cffa58a1adLL, 0x6fee3e0e2922fdcfLL, 0x64544fd3a81caec6LL,
788     0xd9e104a237b530e7LL, 0xf32fcbf75ed0bf7bLL, 0x3e58d4f0b0c13be6LL,
789     0xb418c346304fdf40LL, 0xaac52f4b7fb93107LL, 0xdc3e85f67c9c1d03LL,
790     0xd5930dc1d37a5c62LL, 0x0639fecb729d36b8LL, 0xc0f490111db2e12cLL,
791     0x7ea7a4ffbbaf6451LL, 0xf6f04aa315f9929fLL, 0x6643b63986c4bcaeLL,
792     0x6c0841911096e693LL, 0x8425e73f4a999a4bLL, 0x7133d20366d41388LL,
793     0x38612a3bc25c0d5eLL, 0xb99b4c50c3ecbaf1LL, 0x1d3b93927642f51bLL,
794     0x7f56228aacc36d65LL, 0x9d30738c609e4b80LL, 0x48a37e4db3e417e2LL,
795     0x8bb191c397e2ed92LL, 0x2acecf5569658f9cLL, 0xda077b3d0e012bbbLL,
796     0xa55159b7a2c246deLL, 0x33db5be643625e57LL, 0x821c19f43804acf3LL,
797     0x3990ac4ed530046aLL, 0xd675725eeace473eLL, 0x789e5a34c93252e9LL,
798     0x86321ed564418823LL, 0xfa8243c0f136fe1aLL, 0xe45fafcdbec0105dLL,
799     0x2b3f49207e0986a8LL, 0xa92350d4460d2a5bLL, 0x1eddec0d4ff6ee47LL,
800     0x89a66829b93afffaLL, 0x607a48f2f4598a16LL, 0x6bc0392f7567d91fLL,
801     0xea3a5f4474d76eb0LL, 0x5598eddfc5a6e2f9LL, 0x4c8d796cefa13332LL,
802     0xf701ccd602959babLL, 0xe2665106cc5d26e5LL}
803 };
804 
805 ddword cbox_dec[8][256] = {
806     {0xe6126af05e55aff3LL, 0x4b6c893f310b0835LL, 0xaa4c0e84ebfc8d57LL,
807     0xfb9b5c7bf3b3090dLL, 0x4508a6a9ccba5ce2LL, 0xe5d1d2064dc6bde9LL,
808     0x348343755288eddeLL, 0xb684505de46b250cLL, 0xa8cede205a1e91e8LL,
809     0x40b89b46f9fa6accLL, 0x8ee1ec1afab080baLL, 0xde77d6b7408e0a45LL,
810     0x9a3e184c2e455802LL, 0xbe93fad23f0955efLL, 0x3ae76ce3af39b909LL,
811     0xad7ee3cf6f5ea7c6LL, 0x8b51d1f5cff0b694LL, 0x70ca8d8e3c43bf99LL,
812     0xccdba7f8b2a8f6c9LL, 0x4c5e6474b5a922a4LL, 0x5d31adcd541ccc32LL,
813     0x9b7f701e8c3456a7LL, 0x2ac9cd08ecfd593aLL, 0x8fa0844858c18e1fLL,
814     0x32f0c66c745bc9eaLL, 0xc58d6525cbbb888fLL, 0x8c633cbe4b529c05LL,
815     0xf2cd9ea68aa0774bLL, 0x2cba4811ca2e7d0eLL, 0xe2e33f4dc9649778LL,
816     0xf4be1bbfac73537fLL, 0x22de6787379f29d9LL, 0x0956c2dd79137e46LL,
817     0xe061efe978868bc7LL, 0x1cc85ed90f97a85bLL, 0x31337e9a67c8dbf0LL,
818     0x360193d1e36af161LL, 0x7fefca4a6383e5ebLL, 0x8535fe633241e243LL,
819     0xc3fee03ced68acbbLL, 0x81c4abdea570dac8LL, 0x67d6c12efb25753bLL,
820     0xa4282112164dd980LL, 0xcf181f0ea13be4d3LL, 0xa98fb672f86f9f4dLL,
821     0x5c70c59ff66dc297LL, 0xb0f7d544c2b80138LL, 0x0da79760ee2246cdLL,
822     0x3740fb83411bffc4LL, 0x24ade29e114c0dedLL, 0xf858e48de0201b17LL,
823     0x0e642f96fdb154d7LL, 0xddb46e41531d185fLL, 0x25ec8accb33d0348LL,
824     0x0282d0a4b1e21cbfLL, 0x1bfab3928b3582caLL, 0xaffc336bdebcbb79LL,
825     0x35c22b27f0f9e37bLL, 0x03c3b8f61393121aLL, 0xb8e07fcb19da71dbLL,
826     0x99fda0ba3dd64a18LL, 0xce59775c034aea76LL, 0x49ee599b80e9148aLL,
827     0xfe2b6194c6f33f23LL, 0x4edcb4d0044b3e1bLL, 0xd5a3c4ce887f68bcLL,
828     0xdf36bee5e2ff04e0LL, 0x171c4ca0c766caa2LL, 0x0bd41279c8f162f9LL,
829     0xe490ba54efb7b34cLL, 0x5b4228d472cfe806LL, 0x5355825ba9ad98e5LL,
830     0x9f8e25a31b056e2cLL, 0xcd9acfaa10d9f86cLL, 0x88926903dc63a48eLL,
831     0xb40680f9558939b3LL, 0x239f0fd595ee277cLL, 0xec8710db34d5c3afLL,
832     0x87b72ec783a3fefcLL, 0x632794936c144db0LL, 0x46cb1e5fdf294ef8LL,
833     0x83467b7a1492c677LL, 0x9c4d9d5508967c36LL, 0xd6607c389bec7aa6LL,
834     0x165d24f26517c407LL, 0xc4cc0d7769ca862aLL, 0xcbe94ab3360adc58LL,
835     0x847496319030ece6LL, 0x7a5ff7a556c3d3c5LL, 0xc03d58cafefbbea1LL,
836     0x76b908971a909badLL, 0x2f79f0e7d9bd6f14LL, 0x197863363ad79e75LL,
837     0xda86830ad7bf32ceLL, 0x5a034086d0bee6a3LL, 0x97998f2cc0671ecfLL,
838     0x552607428f7ebcd1LL, 0x51d752ff184f845aLL, 0xbb23c73d0a4963c1LL,
839     0x2b88a55a4e8c579fLL, 0xd80453ae665d2e71LL, 0xee05c07f8537df10LL,
840     0x423a4be248187673LL, 0xcaa822e1947bd2fdLL, 0x1abbdbc029448c6fLL,
841     0x96d8e77e6216106aLL, 0x6266fcc1ce654315LL, 0x89d301517e12aa2bLL,
842     0x730935782fd0ad83LL, 0x8085c38c0701d46dLL, 0x6b303e1cb7763d53LL,
843     0x3f57510c9a798f27LL, 0x4449cefb6ecb5247LL, 0x48af31c922981a2fLL,
844     0x98bcc8e89fa744bdLL, 0x69b2eeb8069421ecLL, 0xebb5fd90b077e93eLL,
845     0x6a71564e150733f6LL, 0x116fc9b9e1b5ee96LL, 0x4a2de16d937a0690LL,
846     0xb9a11799bbab7f7eLL, 0x9368da9157562644LL, 0x718be5dc9e32b13cLL,
847     0xc82af2452599ce42LL, 0xb547e8abf7f83716LL, 0x33b1ae3ed62ac74fLL,
848     0x799c4f534550c1dfLL, 0x3e16395e38088182LL, 0x7c2c72bc7010f7f1LL,
849     0xf38cf6f428d179eeLL, 0xd29129850cdd422dLL, 0x41f9f3145b8b6469LL,
850     0x945a37dad3f40cd5LL, 0x757ab061090389b7LL, 0x6554118a4ac76984LL,
851     0x7d6d1aeed261f954LL, 0x01416852a2710ea5LL, 0xb27505e0735a1d87LL,
852     0x77f860c5b8e19508LL, 0x78dd2701e721cf7aLL, 0xe12087bbdaf78562LL,
853     0x86f6469521d2f059LL, 0xef44a82d2746d1b5LL, 0xbc112a768eeb4950LL,
854     0xc2bf886e4f19a21eLL, 0x307216c8c5b9d555LL, 0xc96b9a1787e8c0e7LL,
855     0xa31acc5992eff311LL, 0xa0d974af817ce10bLL, 0xdcf50613f16c16faLL,
856     0xfca9b1307711239cLL, 0x57a4d7e63e9ca06eLL, 0xc64eddd3d8289a95LL,
857     0xa25ba40b309efdb4LL, 0x2e3898b57bcc61b1LL, 0xf5ff73ed0e025ddaLL,
858     0xa6aaf1b6a7afc53fLL, 0xd9453bfcc42c20d4LL, 0x9d0cf507aae77293LL,
859     0x290a75feff6e4b20LL, 0xa7eb99e405decb9aLL, 0xa1981cfd230defaeLL,
860     0x12ac714ff226fc8cLL, 0x743bd833ab728712LL, 0x6c02d35733d417c2LL,
861     0xe9372d340195f581LL, 0xf77da349bfe04165LL, 0x68f386eaa4e52f49LL,
862     0x211ddf71240c3bc3LL, 0x13ed191d5057f229LL, 0xe8764566a3e4fb24LL,
863     0xf9198cdf425115b2LL, 0xd013f921bd3f5e92LL, 0x91ea0a35e6b43afbLL,
864     0x0732ed4b84a22a91LL, 0xeaf495c21206e79bLL, 0x5214ea090bdc9640LL,
865     0x0000000000000000LL, 0xb3346db2d12b1322LL, 0x0ce6ff324c534868LL,
866     0xaebd5b397ccdb5dcLL, 0x0a957a2b6a806c5cLL, 0x1f0be62f1c04ba41LL,
867     0x14dff456d4f5d8b8LL, 0x58819022615cfa1cLL, 0x05b03def3540362eLL,
868     0xe3a2571f6b1599ddLL, 0x9229b2c3f52728e1LL, 0xba62af6fa8386d64LL,
869     0x0673851926d32434LL, 0x641579d8e8b66721LL, 0x04f155bd9731388bLL,
870     0x9ecf4df1b9746089LL, 0x205cb723867d3566LL, 0x102ea1eb43c4e033LL,
871     0x3ba604b10d48b7acLL, 0x50963aadba3e8affLL, 0xac3f8b9dcd2fa963LL,
872     0x7b1e9ff7f4b2dd60LL, 0xf63ccb1b1d914fc0LL, 0x7eaea218c1f2eb4eLL,
873     0x5fb37d69e5fed08dLL, 0x56e5bfb49cedaecbLL, 0x2dfb2043685f73abLL,
874     0x61a54437ddf6510fLL, 0x6fc16ba1204705d8LL, 0xe75302a2fc24a156LL,
875     0x3dd581a82b9b9398LL, 0xdbc7eb5875ce3c6bLL, 0x90ab626744c5345eLL,
876     0x59c0f870c32df4b9LL, 0x6697a97c59547b9eLL, 0xfde8d962d5602d39LL,
877     0xd3d041d7aeac4c88LL, 0x5ef2153b478fde28LL, 0xd4e2ac9c2a0e6619LL,
878     0x1e4a8e7dbe75b4e4LL, 0x72485d2a8da1a326LL, 0x437b23b0ea6978d6LL,
879     0x159e9c047684d61dLL, 0x0f2547c45fc05a72LL, 0xf10e265099336551LL,
880     0x3c94e9fa89ea9d3dLL, 0xbfd292809d785b4aLL, 0x0817aa8fdb6270e3LL,
881     0x60e42c657f875faaLL, 0x18390b6498a690d0LL, 0x478a760d7d58405dLL,
882     0x284b1dac5d1f4585LL, 0xb1b6bd1660c90f9dLL, 0xd15291731f4e5037LL,
883     0x4d1f0c2617d82c01LL, 0xc70fb5817a599430LL, 0x6d43bb0591a51967LL,
884     0x6e8003f382360b7dLL, 0x1d89368bade6a6feLL, 0x4f9ddc82a63a30beLL,
885     0xedc6788996a4cd0aLL, 0xab0d66d6498d83f2LL, 0x54676f102d0fb274LL,
886     0xc17c30985c8ab004LL, 0x3865bc471edba5b6LL, 0x3924d415bcaaab13LL,
887     0x951b5f8871850270LL, 0x8a10b9a76d81b831LL, 0xbd5042242c9a47f5LL,
888     0xa5694940b43cd725LL, 0xff6a09c664823186LL, 0x8d2254ece92392a0LL,
889     0xb7c5380f461a2ba9LL, 0x82071328b6e3c8d2LL, 0xd721146a399d7403LL,
890     0xfada342951c207a8LL, 0x262f323aa0ae1152LL, 0xf04f4e023b426bf4LL,
891     0x276e5a6802df1ff7LL},
892 
893    {0x3b4016dbfd16e203LL, 0x9a7574c51174530aLL,
894     0x90012e69c02ec8d3LL, 0xf44580e3d780e076LL, 0xf81dec2b49eca14bLL,
895     0x26cae3e8a6e3d7efLL, 0x0962419e0c41f6abLL, 0x54d1eb4070ebd951LL,
896     0x865e884b0188eec8LL, 0xdf76067ea406fe8aLL, 0x29849412e594fba0LL,
897     0x461569896869c0f2LL, 0xb5ddd6b3bbd6724eLL, 0x0c586cc89e6c413dLL,
898     0x6b0ad97054d904eaLL, 0xa135621eec62b109LL, 0x0eef7e47087ea461LL,
899     0xfaaafea4dffe4417LL, 0xe0ad344e80342331LL, 0xab4138b23d382ad0LL,
900     0x107390468e90fcffLL, 0xbe0885a2218561b9LL, 0xdbed22957d22c132LL,
901     0x2251c7037fc7e857LL, 0x33835ef8ba5e9c86LL, 0xb3f1e0d7f4e0a8aaLL,
902     0x3fdb32302432ddbbLL, 0xa719547aa3546bedLL, 0xe10c3df3cb3dab1fLL,
903     0x17feaf9f8aafae35LL, 0x9df84b1c154b01c0LL, 0x8364a51d93a5595eLL,
904     0x535cd49974d48b9bLL, 0x01a109bd4b09882eLL, 0xc4d0c529b0c51182LL,
905     0x2e09abcbe1aba96aLL, 0x1f3de7bccde7d0b0LL, 0x9317355b1d35a5a1LL,
906     0x6c87e6a950e65620LL, 0x8910ffb142ffc287LL, 0x40395fed275f1a16LL,
907     0x7b794936da49f815LL, 0xf269b68798b63a92LL, 0xfd27c17ddbc116ddLL,
908     0x8d8bdb5a9bdbfd3fLL, 0x1ba6c35714c3ef08LL, 0x6e30f426c6f4b37cLL,
909     0x7fe26ddd036dc7adLL, 0x14e8b4ad57b4c347LL, 0xb985ba7b25ba3373LL,
910     0xe9cf75d08c75d59aLL, 0x626898ee5898f241LL, 0x5b9f9cba339cf51eLL,
911     0xb250e96abfe92084LL, 0x165fa622c1a6261bLL, 0xf5e4895e9c896858LL,
912     0xb76ac43c2dc49712LL, 0x02b7128f9612e55cLL, 0x1d8af5335bf535ecLL,
913     0x36b973ae28732b10LL, 0xa8572380e02347a2LL, 0xf6f2926c4192052aLL,
914     0x8c2ad2e7d0d27511LL, 0xd32e6ab63a6abfb7LL, 0xbd1e9e90fc9e0ccbLL,
915     0x03161b32dd1b6d72LL, 0x4dc03a98f23ad305LL, 0x81d3b79205b7bc02LL,
916     0x450372bbb572ad80LL, 0x2d1fb0f93cb0c418LL, 0x2a928f20388f96d2LL,
917     0x721b08a8d6080ebeLL, 0x92b63ce6563c2d8fLL, 0xeb78675f1a6730c6LL,
918     0x13658b74538b918dLL, 0x428e4d62b14dff4aLL, 0x88b1f60c09f64aa9LL,
919     0x75963771d2375c74LL, 0x7ad8408b9140703bLL, 0x57c7f072adf0b423LL,
920     0xe5971918121994a7LL, 0x5666f9cfe6f93c0dLL, 0x8f3cc9d50dc91863LL,
921     0x1e9cee0186ee589eLL, 0x8a06e4839fe4aff5LL, 0xb824b3c66eb3bb5dLL,
922     0xd1997839ac785aebLL, 0x6752b5b8cab545d7LL, 0xb47cdf0ef0dffa60LL,
923     0x949a0a82190af76bLL, 0xc04be1c269e12e3aLL, 0xfc86c8c090c89ef3LL,
924     0xe3bb2f7c5d2f4e43LL, 0x6aabd0cd1fd08cc4LL, 0x2147dc31a2dc8525LL,
925     0xca3fbb6eb8bbb5e3LL, 0x48fa17ce60176493LL, 0x6444ae8a17ae28a5LL,
926     0x2b33869d73861efcLL, 0xd0387184e771d2c5LL, 0x7cf476efde76aadfLL,
927     0x63c9915313917a6fLL, 0xc929a05c65a0d891LL, 0xda4c2b28362b491cLL,
928     0xfe31da4f06da7bafLL, 0xc1eae87f22e8a614LL, 0x5c12a36337a3a7d4LL,
929     0x18b0d865c9d8827aLL, 0xe7200b97840b71fbLL, 0x4bec0cfcbd0c09e1LL,
930     0x0f4e77fa43772c4fLL, 0x4c613325b9335b2bLL, 0xf3c8bf3ad3bfb2bcLL,
931     0x87ff81f64a8166e6LL, 0xa38270917a705455LL, 0x1911d1d882d10a54LL,
932     0x44a27b06fe7b25aeLL, 0x049b24ebd9243fb8LL, 0xbb32a8f4b3a8d62fLL,
933     0x91a027d48b2740fdLL, 0x3d6c20bfb22038e7LL, 0xe681022acf02f9d5LL,
934     0xf17fadb545ad57e0LL, 0xcc138d0af78d6f07LL, 0x495b1e732b1eecbdLL,
935     0x38560de9200d8f71LL, 0xa9f62a3dab2acf8cLL, 0x47b46034236048dcLL,
936     0x8e9dc06846c0904dLL, 0xaccc076b3907781aLL, 0x32225745f15714a8LL,
937     0xd4a3556f3e55ed7dLL, 0xd7b54e5de34e800fLL, 0xddc114f132141bd6LL,
938     0x6d26ef141befde0eLL, 0x85489379dc9383baLL, 0x0bd553119a5313f7LL,
939     0x786f520407529567LL, 0xcb9eb2d3f3b23dcdLL, 0xa223792c3179dc7bLL,
940     0x0a745aacd15a9bd9LL, 0x710d139a0b1363ccLL, 0x681cc24289c26998LL,
941     0x1a07caea5fca6726LL, 0x82c5aca0d8acd170LL, 0x25dcf8da7bf8ba9dLL,
942     0xc7c6de1b6dde7cf0LL, 0xc35dfaf0b4fa4348LL, 0xded70fc3ef0f76a4LL,
943     0x504acfaba9cfe6e9LL, 0xc571cc94fbcc99acLL, 0x5ea5b1eca1b14288LL,
944     0xae7b15e4af159d46LL, 0xc888a9e12ea950bfLL, 0xf7539bd10a9b8d04LL,
945     0x962d180d8f181237LL, 0xe43610a559101c89LL, 0x772125fe4425b928LL,
946     0x84e99ac4979a0b94LL, 0xc667d7a626d7f4deLL, 0xefe343b4c3430f7eLL,
947     0xd5025cd2755c6553LL, 0xa6b85dc7e85de3c3LL, 0xd61447e0a8470821LL,
948     0x3e7a3b8d6f3b5595LL, 0x52fddd243fdd03b5LL, 0x8072be2f4ebe342cLL,
949     0x12c482c9188219a3LL, 0x9eee502ec8506cb2LL, 0xad6d0ed6720ef034LL,
950     0x59288e35a58e1042LL, 0xe21a26c11626c66dLL, 0x247df16730f132b3LL,
951     0xf0dea4080ea4dfceLL, 0x31344c772c4c79daLL, 0x4f77281764283659LL,
952     0x79ce5bb94c5b1d49LL, 0x0000000000000000LL, 0x73ba01159d018690LL,
953     0x74373ecc993ed45aLL, 0xbcbf972db79784e5LL, 0x4ed621aa2f21be77LL,
954     0xd95a301aeb30246eLL, 0x9c5942a15e4289eeLL, 0x37187a13637aa33eLL,
955     0x276bea55edea5fc1LL, 0x1c2bfc8e10fcbdc2LL, 0xed54513b5551ea22LL,
956     0x20e6d58ce9d50d0bLL, 0x3ae11f66b61f6a2dLL, 0x66f3bc0581bccdf9LL,
957     0x2cbeb94477b94c36LL, 0x99636ff7cc6f3e78LL, 0x953b033f52037f45LL,
958     0xb0e7fbe529fbc5d8LL, 0x60df8a61ce8a171dLL, 0x6f91fd9b8dfd3b52LL,
959     0xaae0310f7631a2feLL, 0xbfa98c1f6a8ce997LL, 0x8ba7ed3ed4ed27dbLL,
960     0x98c2664a8766b656LL, 0x062c36644f36dae4LL, 0x5570e2fd3be2517fLL,
961     0xead96ee2516eb8e8LL, 0x419856506c569238LL, 0x23f0cebe34ce6079LL,
962     0x309545ca6745f1f4LL, 0x5a3e950778957d30LL, 0x617e83dc85839f33LL,
963     0xfb0bf71994f7cc39LL, 0x3ccd2902f929b0c9LL, 0x70ac1a27401aebe2LL,
964     0xcea49f85619f8a5bLL, 0x39f704546b04075fLL, 0x0df96575d565c913LL,
965     0x08c3482347487e85LL, 0xd28f630b71633799LL, 0xecf558861e58620cLL,
966     0xc2fcf34dfff3cb66LL, 0x978c11b0c4119a19LL, 0x69bdcbffc2cbe1b6LL,
967     0xba93a149f8a15e01LL, 0x51ebc616e2c66ec7LL, 0x078d3fd9043f52caLL,
968     0x58898788ee87986cLL, 0x4a4d0541f60581cfLL, 0xe86e7c6dc77c5db4LL,
969     0xee424a09884a8750LL, 0xcdb284b7bc84e729LL, 0x65e5a7375ca7a08bLL,
970     0x2fa8a276aaa22144LL, 0xa0946ba3a76b3927LL, 0xa5ae46f535468eb1LL,
971     0x35af689cf5684662LL, 0x28259dafae9d738eLL, 0xcf0596382a960275LL,
972     0xb6cbcd8166cd1f3cLL, 0x7e43646048644f83LL, 0x9bd47d785a7ddb24LL,
973     0x432f44dffa447764LL, 0x9f4f59938359e49cLL, 0x7d557f52957f22f1LL,
974     0x76802c430f2c3106LL, 0xdc601d4c791d93f8LL, 0x053a2d56922db796LL,
975     0x11d299fbc59974d1LL, 0xf9bce59602e52965LL, 0xd8fb39a7a039ac40LL,
976     0x340e6121be61ce4cLL, 0x5f04b851eab8caa6LL, 0x5db3aade7caa2ffaLL,
977     0x1549bd101cbd4b69LL, 0xff90d3f24dd3f381LL, 0xafda1c59e41c1568LL,
978     0xb146f25862f24df6LL, 0xa40f4f487e4f069fLL},
979 
980    {0xa1a35cebf8f0f94cLL,
981     0x2c203d650f3f095dLL, 0x1a2bdaee4084a2a7LL, 0xd32404574d7bcc68LL,
982     0xf785bea594a9adc4LL, 0xf2eb54456206949cLL, 0x3f5e334d0475ced1LL,
983     0x5994299b835d1f60LL, 0x785b7989ac204794LL, 0x025da6a2cf461a41LL,
984     0xdf1f3a71f01a901bLL, 0x27284f018bb77637LL, 0xe1955a6d694c5310LL,
985     0x24a1baf2d9d261acLL, 0xe4fbb08d9fe36a48LL, 0x8d83618ef7cff011LL,
986     0x2ac72276abf5279eLL, 0xf9e32621e68eebf6LL, 0xbf323fb4d3f86f69LL,
987     0xbb888605b8745bebLL, 0x70dafe1e7acd2f65LL, 0xd0adf1a41f1edbf3LL,
988     0x1e91635f2b089625LL, 0xee2791b8864818f8LL, 0x99ce23e4c56c1484LL,
989     0xf33f0714ff259946LL, 0xbd6f99161cbe7528LL, 0x9f293cf761a63a47LL,
990     0xb80173f6ea114c70LL, 0x6543ef25d54dc62aLL, 0x39b92c5ea0bfe012LL,
991     0x63a4f0367187e8e9LL, 0x4c0d38a02cddf62fLL, 0x07334c4239e92319LL,
992     0x43bff375c3d9bdc7LL, 0xca862b4a5f9a7954LL, 0x5d2e902ae8d12be2LL,
993     0x137e0e280b4ac78cLL, 0xf162a1b630638307LL, 0x55af17bd3e3c4313LL,
994     0x358212781ddebc61LL, 0x94214e93e52e452dLL, 0xc18e592edb12063eLL,
995     0xec7a371a490e02b9LL, 0x4963d240da72cf77LL, 0x41e255d70c9fa786LL,
996     0xff0439324244c535LL, 0x88ed8b6e0160c949LL, 0x6c163be39e83a301LL,
997     0xc534e09fb09e32bcLL, 0x806c0cf9d78da1b8LL, 0xdba583c09b96a499LL,
998     0x746047af11411be7LL, 0xf40c4b56c6ccba5fLL, 0x6270a367eca4e533LL,
999     0xd41748157492ef71LL, 0xeff3c2e91b6b1522LL, 0x0e66988472274632LL,
1000     0x534808ae9af66dd0LL, 0x8231aa5b18cbbbf9LL, 0xb2dd52c3f3ba3ec0LL,
1001     0xdd429cd33f5c8a5aLL, 0x4e509e02e39bec6eLL, 0x26fc1c5016947bedLL,
1002     0xd9f8256254d0bed8LL, 0x0955d4c64bce652bLL, 0x1610e4c8fde5fed4LL,
1003     0x6dc268b203a0aedbLL, 0x2e7d9bc7c079131cLL, 0xc3d3ff8c14541c7fLL,
1004     0xd64aeeb7bbd4f530LL, 0xab7f7ddee15b8bfcLL, 0x144d426a32a3e495LL,
1005     0x8e0a947da5aae78aLL, 0x798f2ad831034a4eLL, 0x3be48afc6ff9fa53LL,
1006     0x529c5bff07d5600aLL, 0xbee66ce54edb62b3LL, 0x931202d1dcc76634LL,
1007     0x50c1fd5dc8937a4bLL, 0xa4cdb60b0e5fc014LL, 0x57f2b11ff17a5952LL,
1008     0x47054ac4a8558945LL, 0x5a1ddc68d13808fbLL, 0x5cfac37b75f22638LL,
1009     0xc207acdd897711a5LL, 0x289a84d464b33ddfLL, 0xc05a0a7f46310be4LL,
1010     0xe6a6162f50a57009LL, 0x06e71f13a4ca2ec3LL, 0x5f733688279731a3LL,
1011     0xeb497b5870e721a0LL, 0xb667eb7298360a42LL, 0xe3c8fccfa60a4951LL,
1012     0xe772457ecd867dd3LL, 0x6978d103682c9a59LL, 0x0def6d77204251a9LL,
1013     0xc90fdeb90dff6ecfLL, 0xd179a2f5823dd629LL, 0x2fa9c8965d5a1ec6LL,
1014     0x81b85fa84aaeac62LL, 0xdc96cf82a27f8780LL, 0x602d05c523e2ff72LL,
1015     0x19a22f1d12e1b53cLL, 0xe52fe3dc02c06792LL, 0x58407aca1e7e12baLL,
1016     0x61f95694bec1f2a8LL, 0x48b781114751c2adLL, 0xaaab2e8f7c788626LL,
1017     0x04bab9b16b8c3482LL, 0x2df46e34921c0487LL, 0x1123a88ac40cddcdLL,
1018     0xc6bd156ce2fb2527LL, 0x7f6835cb95c9648dLL, 0x83e5f90a85e8b623LL,
1019     0x4f84cd537eb8e1b4LL, 0x294ed785f9903005LL, 0x1cccc5fde44e8c64LL,
1020     0xcb52781bc2b9748eLL, 0x1d1896ac796d81beLL, 0xb30901926e99331aLL,
1021     0xad9862cd4591a53fLL, 0xc8db8de890dc6315LL, 0x7bd28c7afe45500fLL,
1022     0x0adc213519ab72b0LL, 0xa8f6882db33e9c67LL, 0xb5ee1e81ca531dd9LL,
1023     0x201b0343b25e552eLL, 0x4036068691bcaa5cLL, 0xae11973e17f4b2a4LL,
1024     0x9efd6fa6fc85379dLL, 0x33650d6bb91492a2LL, 0x3a30d9adf2daf789LL,
1025     0x0c3b3e26bd615c73LL, 0xf651edf4098aa01eLL, 0x710ead4fe7ee22bfLL,
1026     0x3138abc9765288e3LL, 0x9d749a55aee02006LL, 0x6e4b9d4151c5b940LL,
1027     0x84d6b548bc01953aLL, 0x360be78b4fbbabfaLL, 0xa22aa918aa95eed7LL,
1028     0xedae644bd42d0f63LL, 0x46d119953576849fLL, 0x6497bc74486ecbf0LL,
1029     0xfbbe808329c8f1b7LL, 0x4aea27b38817d8ecLL, 0x5626e24e6c595488LL,
1030     0x056eeae0f6af3958LL, 0x4558ec6667139304LL, 0x448cbf37fa309edeLL,
1031     0x6f9fce10cce6b49aLL, 0xa0770fba65d3f496LL, 0x671e49871a0bdc6bLL,
1032     0xda71d09106b5a943LL, 0x08818797d6ed68f1LL, 0xa3fefa4937b6e30dLL,
1033     0xb080f4613cfc2481LL, 0x763de10dde0701a6LL, 0x4dd96bf1b1fefbf5LL,
1034     0x92c6518041e46beeLL, 0x3456412980fdb1bbLL, 0x981a70b5584f195eLL,
1035     0x3d0395efcb33d490LL, 0xba5cd55425575631LL, 0x4b3e74e21534d536LL,
1036     0x6af124f03a498dc2LL, 0x7ebc669a08ea6957LL, 0x30ecf898eb718539LL,
1037     0xa922db7c2e1d91bdLL, 0x7a06df2b63665dd5LL, 0xb154a730a1df295bLL,
1038     0xfc8dccc11021d2aeLL, 0xcfe8c1aaa935400cLL, 0x97a8bb60b74b52b6LL,
1039     0x18767c4c8fc2b8e6LL, 0x9a47d6179709031fLL, 0x0000000000000000LL,
1040     0xac4c319cd8b2a8e5LL, 0xb9d520a7773241aaLL, 0xdecb69206d399dc1LL,
1041     0x1f45300eb62b9bffLL, 0x10f7fbdb592fd017LL, 0x3e8a601c9956c30bLL,
1042     0x8502e619212298e0LL, 0xf5d818075befb785LL, 0x547b44eca31f4ec9LL,
1043     0x9ca0c90433c32ddcLL, 0xe041093cf46f5ecaLL, 0xa69010a9c119da55LL,
1044     0xc769463d7fd828fdLL, 0xc4e0b3ce2dbd3f66LL, 0x2575e9a344f16c76LL,
1045     0x01d453519d230ddaLL, 0xfa6ad3d2b4ebfc6dLL, 0xd5c31b44e9b1e2abLL,
1046     0xf83775707bade62cLL, 0xbcbbca47819d78f2LL, 0xd79ebde626f7f8eaLL,
1047     0x5bc98f394c1b0521LL, 0x2246a5e17d184f6fLL, 0x12aa5d799669ca56LL,
1048     0x5ea765d9bab43c79LL, 0x8939d83f9c43c493LL, 0x32b15e3a24379f78LL,
1049     0xe914ddfabfa13be1LL, 0x909bf7228ea271afLL, 0x73530bed28a838feLL,
1050     0xd2f05706d058c1b2LL, 0xfed06a63df67c8efLL, 0xb43a4dd057701003LL,
1051     0xa519e55a937ccdceLL, 0x75b414fe8c62163dLL, 0xafc5c46f8ad7bf7eLL,
1052     0x2392f6b0e03b42b5LL, 0x386d7f0f3d9cedc8LL, 0x21cf50122f7d58f4LL,
1053     0x9b9385460a2a0ec5LL, 0x5115ae0c55b07791LL, 0x0fb2cbd5ef044be8LL,
1054     0xea9d2809edc42c7aLL, 0xcc613459fb505797LL, 0x426ba0245efab01dLL,
1055     0x1599113baf80e94fLL, 0x7d3593695a8f7eccLL, 0x0389f5f35265179bLL,
1056     0x875f40bbee6482a1LL, 0x95f51dc2780d48f7LL, 0x7ce1c038c7ac7316LL,
1057     0xce3c92fb34164dd6LL, 0xcdb5670866735a4dLL, 0x8ab02dccce26d308LL,
1058     0x914fa47313817c75LL, 0x8b647e9d5305ded2LL, 0xd82c7633c9f3b302LL,
1059     0x728758bcb58b3524LL, 0xe8c08eab2282363bLL, 0x8fdec72c3889ea50LL,
1060     0x2b13712736d62a44LL, 0x3cd7c6be5610d94aLL, 0x37dfb4dad298a620LL,
1061     0x868b13ea73478f7bLL, 0xb7b3b82305150798LL, 0x0b08726484887f6aLL,
1062     0x1bff89bfdda7af7dLL, 0x77e9b25c43240c7cLL, 0xf0b6f2e7ad408eddLL,
1063     0x17c4b79960c6f30eLL, 0x8c5732df6aecfdcbLL, 0x68ac8252f50f9783LL,
1064     0x66ca1ad68728d1b1LL, 0x6b2577a1a76a8018LL, 0xe21caf9e3b29448bLL,
1065     0xa74443f85c3ad78fLL, 0xfd599f908d02df74LL, 0x967ce8312a685f6cLL},
1066 
1067    {0xfa7b9775ba3af751LL, 0x03ef98cb769c2d13LL, 0x7191ce067072359eLL,
1068     0xbab18b6bff7516a8LL, 0xe6e5ef4efbc1065eLL, 0x7bec74a3b1d0dbf4LL,
1069     0x656b4fb907c31c4aLL, 0x4e8520f99fc86304LL, 0x8fd8df31d16dae58LL,
1070     0x90a93fc1e60a7244LL, 0x30ad09f2b449cfc5LL, 0x8453be7e91bb5b90LL,
1071     0x1d68a3d1c08feaadLL, 0x5c54642504b410f6LL, 0x8061383c8a9e3707LL,
1072     0xf9940fbecca6da42LL, 0x46e1d97da982bbdfLL, 0xfc50521656f7ad77LL,
1073     0x5e4d2704f35c2647LL, 0x8bea5973ca48c2cfLL, 0xd06323dfa34593bdLL,
1074     0x62b651306a7a5dceLL, 0xa436b0714966d116LL, 0x4f73fb131ebc78a6LL,
1075     0x92b07ce011e244f5LL, 0x33429139c2d5e2d6LL, 0xcee418c515565403LL,
1076     0xd7be3d56cefcd239LL, 0x53ed83285f4789a9LL, 0xf3e9b51b0d043428LL,
1077     0x20650e0fd8dd8a86LL, 0xb6e7f4add21aa2e4LL, 0x6d0fb63d3189c491LL,
1078     0x0da0a42cac1bafeeLL, 0x3f14eeffefba569aLL, 0x13279f361a086850LL,
1079     0x9b225e8ea6dc878cLL, 0x6684d772715f3159LL, 0xa3ebaef824df9092LL,
1080     0xc499a260d4f4ba69LL, 0xaa798c9693e153ebLL, 0x50021be329dba4baLL,
1081     0x949bb983fd2f1ed3LL, 0xdfdac4d2f8b60ae2LL, 0xf0062dd07b98193bLL,
1082     0xafbdd13e09b024deLL, 0xb95e13a089e93bbbLL, 0x649d945386b707e8LL,
1083     0xe4fcac6f0c2930efLL, 0x413cc7f4c43bfa5bLL, 0x3b2668bdf49f3a0dLL,
1084     0xe50a77858d5d2b4dLL, 0x05c45da89a517735LL, 0x3ee235156ece4d38LL,
1085     0xfe491137a11f9bc6LL, 0xb7112f47536eb946LL, 0x07dd1e896db94184LL,
1086     0x1ab5bd58ad36ab29LL, 0x8197e3d60bea2ca5LL, 0xab8f577c12954849LL,
1087     0x9cff4007cb65c608LL, 0xa00436335243bd81LL, 0xfda689fcd783b6d5LL,
1088     0xccfd5be4e2be62b2LL, 0x75a348446b575909LL, 0x17151974012d04c7LL,
1089     0xfb8d4c9f3b4eecf3LL, 0xac5249f57f2c09cdLL, 0x9346a70a90965f57LL,
1090     0x043286421b256c97LL, 0x27b81086b564cb02LL, 0x3569545a2e18b8f0LL,
1091     0x6b24735edd449eb7LL, 0x2193d5e559a99124LL, 0xc7763aaba268977aLL,
1092     0xb0cc31ce3ed7f8c2LL, 0xc939064c78ef1587LL, 0x16e3c29e80591f65LL,
1093     0x5da2bfcf85c00b54LL, 0x5990398d9ee567c3LL, 0x67720c98f02b2afbLL,
1094     0x54309da132fec82dLL, 0xeab39088d6aeb212LL, 0x9682faa20ac72862LL,
1095     0xd38cbb14d5d9beaeLL, 0x4c9c63d8682055b5LL, 0xd648e6bc4f88c99bLL,
1096     0xdc355c198e2a27f1LL, 0x10c807fd6c944543LL, 0x450e41b6df1e96ccLL,
1097     0x0b8b614f40d6f5c8LL, 0xd27a60fe54ada50cLL, 0x49583e70f2712280LL,
1098     0x8dc19c10268598e9LL, 0x5866e2671f917c61LL, 0x79f537824638ed45LL,
1099     0xc2b267033839e04fLL, 0xcb20456d8f072336LL, 0x2a18b4aa197f64ecLL,
1100     0xdbe84290e3936675LL, 0x73888d27879a032fLL, 0xe8aad3a9214684a3LL,
1101     0x6ee02ef64715e982LL, 0xa996145de57d7ef8LL, 0xc8cfdda6f99b0e25LL,
1102     0x062bc563eccd5a26LL, 0x264ecb6c3410d0a0LL, 0xb8a8c84a089d2019LL,
1103     0x7dc7b1c05d1d81d2LL, 0xd5a77e773914e488LL, 0x4b417d5105991431LL,
1104     0xf62de8b39755431dLL, 0x993b1daf5134b13dLL, 0x82787b1d7d7601b6LL,
1105     0xe321b2e66190716bLL, 0xb5086c66a4868ff7LL, 0x9ee603263c8df0b9LL,
1106     0x349f8fb0af6ca352LL, 0x5b897aac690d5172LL, 0x7c316a2adc699a70LL,
1107     0xd451a59db860ff2aLL, 0x706715ecf1062e3cLL, 0x838ea0f7fc021a14LL,
1108     0x57df056a4462e53eLL, 0xcf12c32f94224fa1LL, 0xed6e8e01bb17f396LL,
1109     0x915fe42b677e69e6LL, 0x89f31a523da0f47eLL, 0xe71334a47ab51dfcLL,
1110     0xa860cfb76409655aLL, 0x9f10d8ccbdf9eb1bLL, 0xef77cd204cffc527LL,
1111     0xf862d4544dd2c1e0LL, 0x8a1c82994b3cd96dLL, 0xae4b0ad488c43f7cLL,
1112     0x98cdc645d040aa9fLL, 0x7fdef2e1aaf5b763LL, 0x4717029728f6a07dLL,
1113     0x745593aeea2342abLL, 0xee8116cacd8bde85LL, 0x727e56cd06ee188dLL,
1114     0x227c4d2e2f35bc37LL, 0x977421488bb333c0LL, 0xa21d7512a5ab8b30LL,
1115     0xbb4750817e010d0aLL, 0x6cf96dd7b0fddf33LL, 0x2801f78bee97525dLL,
1116     0x1c9e783b41fbf10fLL, 0x9d099bed4a11ddaaLL, 0x7a1aaf4930a4c056LL,
1117     0x32b44ad343a1f974LL, 0x3cfb763499267b89LL, 0xb2d572efc93fce73LL,
1118     0x63408adaeb0e466cLL, 0xada4921ffe58126fLL, 0x5fbbfcee72283de5LL,
1119     0x6ad2a8b45c308515LL, 0x0c567fc62d6fb44cLL, 0x956d62697c5b0571LL,
1120     0x25a153a7428cfdb3LL, 0x150c5a55f6c53276LL, 0xe2d7690ce0e46ac9LL,
1121     0xda1e997a62e77dd7LL, 0xf5c27078e1c96e0eLL, 0xc344bce9b94dfbedLL,
1122     0x60af12119d926b7fLL, 0xa1f2edd9d337a623LL, 0xcad69e870e733894LL,
1123     0x3770177bd9f08e41LL, 0xa5c06b9bc812cab4LL, 0x1f71e0f03767dc1cLL,
1124     0x44f89a5c5e6a8d6eLL, 0x6159c9fb1ce670ddLL, 0x8e2e04db5019b5faLL,
1125     0x8805c1b8bcd4efdcLL, 0xe138f1c7967847daLL, 0x4ab7a6bb84ed0f93LL,
1126     0x0000000000000000LL, 0x38c9f0768203171eLL, 0x1b4366b22c42b08bLL,
1127     0x7803ec68c74cf6e7LL, 0xec9855eb3a63e834LL, 0xbe830d29e4507a3fLL,
1128     0x2dc5aa2374c62568LL, 0xa62ff350be8ee7a7LL, 0x764cd08f1dcb741aLL,
1129     0x8c3747faa7f1834bLL, 0x0fb9e70d5bf3995fLL, 0x55c6464bb38ad38fLL,
1130     0xf7db3359162158bfLL, 0xd195f8352231881fLL, 0x0992226eb73ec379LL,
1131     0x14fa81bf77b129d4LL, 0x48aee59a73053922LL, 0x2457884dc3f8e611LL,
1132     0xffbfcadd206b8064LL, 0xb4feb78c25f29455LL, 0x864afd5f66536d21LL,
1133     0x6f16f51cc661f220LL, 0xde2c1f3879c21140LL, 0x195a2593dbaa863aLL,
1134     0x2e2a32e8025a087bLL, 0x432584d533d3cceaLL, 0x2c3371c9f5b23ecaLL,
1135     0xa7d928ba3ffafc05LL, 0x42d35f3fb2a7d748LL, 0x85a5659410cf4032LL,
1136     0x0864f984364ad8dbLL, 0xf21f6ef18c702f8aLL, 0xf1f0f63afaec0299LL,
1137     0xd9f101b1147b50c4LL, 0x2fdce902832e13d9LL, 0x4d6ab832e9544e17LL,
1138     0xe0ce2a2d170c5c78LL, 0x51f4c009a8afbf18LL, 0x68cbeb95abd8b3a4LL,
1139     0xc15dffc84ea5cd5cLL, 0x02194321f7e836b1LL, 0x113edc17ede05ee1LL,
1140     0x521b58c2de33920bLL, 0x9ad4856427a89c2eLL, 0x5629de80c516fe9cLL,
1141     0x77ba0b659cbf6fb8LL, 0x238a96c4ae41a795LL, 0x12d144dc9b7c73f2LL,
1142     0xd807da5b950f4b66LL, 0x3686cc91588495e3LL, 0x18acfe795ade9d98LL,
1143     0x5a7fa146e8794ad0LL, 0xc680e141231c8cd8LL, 0x1e873b1ab613c7beLL,
1144     0xf434ab9260bd75acLL, 0xcd0b800e63ca7910LL, 0xbc9a4e0813b84c8eLL,
1145     0x3d0dadde1852602bLL, 0x40ca1c1e454fe1f9LL, 0x0a7dbaa5c1a2ee6aLL,
1146     0x693d307f2aaca806LL, 0x0e4f3ce7da8782fdLL, 0xbd6c95e292cc572cLL,
1147     0x3ad0b35775eb21afLL, 0x7e28290b2b81acc1LL, 0x01f6dbea81741ba2LL,
1148     0x87bc26b5e7277683LL, 0x393f2b9c03770cbcLL, 0xddc387f30f5e3c53LL,
1149     0xeb454b6257daa9b0LL, 0xb323a905484bd5d1LL, 0xb13aea24bfa3e360LL,
1150     0x315bd218353dd467LL, 0x2bee6f40980b7f4eLL, 0xe95c0843a0329f01LL,
1151     0xc56f798a5580a1cbLL, 0xbf75d6c36524619dLL, 0x29f72c616fe349ffLL,
1152     0xc0ab2422cfd1d6feLL},
1153 
1154    {0x561fc423e957943cLL, 0x014287ca69079288LL,
1155     0x2f086129dfcd1d21LL, 0xc537d4aea044fd99LL, 0xf1e8c3bfd7c8a457LL,
1156     0x2971998a5cdf9bfbLL, 0x23fa649a2ce9e460LL, 0x3aa9e9c356a6716aLL,
1157     0xd6efa4e7aa3d1708LL, 0x705a24b1fda5b5ebLL, 0x101e0ce2b170a9fcLL,
1158     0x7ca821020e814caaLL, 0x0bc97ada1931ed13LL, 0x34df1711778c59ceLL,
1159     0xd35020ef9226d2bfLL, 0x575d43e9805006b4LL, 0x91acebec9b1db840LL,
1160     0x549b3f423b5945d9LL, 0x99a3ed9d3925163eLL, 0x7917a50a369a891dLL,
1161     0xe372343cb4b6dc4eLL, 0x8d40e2bdd949e8fdLL, 0xcfbc29bed0728202LL,
1162     0x969794857108ac12LL, 0xdd26de3db30cfa1bLL, 0x115c8b28d8773b74LL,
1163     0xe9f9c92cc480a3d5LL, 0x4dc8b21b4116d0d3LL, 0x316093194f979c79LL,
1164     0x5124bb4a0342806eLL, 0xb31408bcdef3cea8LL, 0xc1cad76cf158aaa6LL,
1165     0x88ff66b5e1522d4aLL, 0xa8c37e8476b28a47LL, 0x15a188ea896b6c4bLL,
1166     0xa24883940684f5dcLL, 0xda1da1545919ee49LL, 0x22b8e35045ee76e8LL,
1167     0x6106af9925d28e9fLL, 0xef80318f4792250fLL, 0x663dd0f0cfc79acdLL,
1168     0x302214d326900ef1LL, 0xdfa2255c61022bfeLL, 0xe6cdb0348cad19f9LL,
1169     0x50663c806a4512e6LL, 0x65fbac5b74ced9a0LL, 0xc4755364c9436f11LL,
1170     0x8fc419dc0b473918LL, 0x5c9439339961eba7LL, 0x3f166dcb6ebdb4ddLL,
1171     0xba59890715ccf25eLL, 0xf0aa4475becf36dfLL, 0x03c67cabbb09436dLL,
1172     0xb99ff5acaec5b133LL, 0xf9e7c5ce75f00a29LL, 0x6df4aa2ad6f677deLL,
1173     0xaeba8627f5a00c9dLL, 0xa573fcfdec91e18eLL, 0x7f6e5da9b5880fc7LL,
1174     0xca03adb6e86947b5LL, 0x74a72773acb9e2d4LL, 0x604428534cd51c17LL,
1175     0xf8a542041cf798a1LL, 0x448533a08a29ec25LL, 0x80f060c4436a8334LL,
1176     0x0db082799a236bc9LL, 0xfa21b965cef94944LL, 0x64b92b911dc94b28LL,
1177     0x7118a37b94a22763LL, 0xaff801ed9ca79e15LL, 0x1dae8e9b2b53c235LL,
1178     0x13d870490a79ea91LL, 0x8a7b9dd4335cfcafLL, 0x1f2a75faf95d13d0LL,
1179     0xeec2b6452e95b787LL, 0xc34e2c0d23567b43LL, 0x47434f0b3120af48LL,
1180     0xa18eff3fbd8db6b1LL, 0x98e16a57502284b6LL, 0x37196bbacc851aa3LL,
1181     0x8e869e166240ab90LL, 0x9fda153eba3790e4LL, 0xf515c07d86d4f368LL,
1182     0x72dedfd02fab640eLL, 0xe230b3f6ddb14ec6LL, 0x97d5134f180f3e9aLL,
1183     0xe1f6cf5d66b80dabLL, 0xe78f37fee5aa8b71LL, 0xa30a045e6f836754LL,
1184     0x90ee6c26f21a2ac8LL, 0xaa4785e5a4bc5ba2LL, 0x4e0eceb0fa1f93beLL,
1185     0x94136fe4a3067df7LL, 0x7b935e6be49458f8LL, 0x9b2716fceb2bc7dbLL,
1186     0x840d63061276d40bLL, 0xed04caee959cf4eaLL, 0xea3fb5877f89e0b8LL,
1187     0xb56df01f5de14872LL, 0x4935b1d9100a87ecLL, 0x82749ba5916452d1LL,
1188     0x58693af1c87dbc98LL, 0x89bde17f8855bfc2LL, 0x677f573aa6c00845LL,
1189     0xeb7d324d168e7230LL, 0x0284fb61d20ed1e5LL, 0xb190f3dd0cfd1f4dLL,
1190     0x684b2e22eeedb269LL, 0x2bf562eb8ed14a1eLL, 0xe0b448970fbf9f23LL,
1191     0x396f9568edaf3207LL, 0x52e2c7e1b84bc303LL, 0x77615bd817b0a1b9LL,
1192     0x7e2cda63dc8f9d4fLL, 0xf22ebf146cc1e73aLL, 0xc08850a6985f382eLL,
1193     0xd9dbddffe210ad24LL, 0xbfe60d0f2dd737e9LL, 0x9a659136822c5553LL,
1194     0x87cb1fada97f9766LL, 0x4c8a35d12811425bLL, 0x83361c6ff863c059LL,
1195     0xd212a725fb214037LL, 0x9e9892f4d330026cLL, 0x45c7b46ae32e7eadLL,
1196     0x5baf465a7374fff5LL, 0xdc6459f7da0b6893LL, 0xd46b5f867833c6edLL,
1197     0x5dd6bef9f066792fLL, 0xcb412a7c816ed53dLL, 0x75e5a0b9c5be705cLL,
1198     0xf6d3bcd63dddb005LL, 0xfb633eafa7fedbccLL, 0xd529d84c11345465LL,
1199     0xc9c5d11d536004d8LL, 0xdb5f269e301e7cc1LL, 0x86899867c07805eeLL,
1200     0x3d9296aabcb36538LL, 0x2cce1d8264c45e4cLL, 0x5aedc1901a736d7dLL,
1201     0x2e4ae6e3b6ca8fa9LL, 0x1e68f230905a8158LL, 0xdee0a2960805b976LL,
1202     0xcd38d2df027c53e7LL, 0x6909a9e887ea20e1LL, 0x24c11bf3c6fcf032LL,
1203     0x18110a9313480782LL, 0xa7f7079c3e9f306bLL, 0xd8995a358b173facLL,
1204     0x854fe4cc7b714683LL, 0xbd62f66effd9e60cLL, 0x14e30f20e06cfec3LL,
1205     0x6e32d6816dff34b3LL, 0x217e9ffbfee73585LL, 0xc88756d73a679650LL,
1206     0x359d90db1e8bcb46LL, 0x2645e09214f221d7LL, 0x04fd03c2511c573fLL,
1207     0x739c581a46acf686LL, 0xb0d2741765fa8dc5LL, 0xa0cc78f5d48a2439LL,
1208     0x5e10c2524b6f3a42LL, 0xe50bcc9f37a45a94LL, 0x53a0402bd14c518bLL,
1209     0x413ab7a8b2322992LL, 0x203c183197e0a70dLL, 0xcc7a55156b7bc16fLL,
1210     0x4601c8c158273dc0LL, 0xbea48ac544d0a561LL, 0x638254f8f7dc5f7aLL,
1211     0xa6b580565798a2e3LL, 0x3cd01160d5b4f7b0LL, 0x8c026577b04e7a75LL,
1212     0x7ad1d9a18d93ca70LL, 0x785522c05f9d1b95LL, 0x5f5245982268a8caLL,
1213     0x9551e82eca01ef7fLL, 0x0000000000000000LL, 0xbb1b0ecd7ccb60d6LL,
1214     0x094d81bbcb3f3cf6LL, 0x28331e4035d80973LL, 0xf7913b1c54da228dLL,
1215     0x6acfd5433ce3638cLL, 0x1bd77638a84144efLL, 0x62c0d3329edbcdf2LL,
1216     0x81b2e70e2a6d11bcLL, 0xd7ad232dc33a8580LL, 0x05bf8408381bc5b7LL,
1217     0x33e468789d994d9cLL, 0xfedcbaa79fe51e7bLL, 0x4f4c497a93180136LL,
1218     0x073b7f69ea151452LL, 0x0cf205b3f324f941LL, 0x382d12a284a8a08fLL,
1219     0x1cec0951425450bdLL, 0x55d9b888525ed751LL, 0x6cb62de0bff1e556LL,
1220     0xd1d4db8e4028035aLL, 0x25839c39affb62baLL, 0x4af3cd72ab03c481LL,
1221     0xa4317b3785967306LL, 0x1a95f1f2c146d667LL, 0x926a97472014fb2dLL,
1222     0xb7e90b7e8fef9997LL, 0xcefeae74b975108aLL, 0x3e54ea0107ba2655LL,
1223     0xd0965c44292f91d2LL, 0xab05022fcdbbc92aLL, 0xfd1ac60c24ec5d16LL,
1224     0xfc5841c64debcf9eLL, 0xe4494b555ea3c81cLL, 0xb6ab8cb4e6e80b1fLL,
1225     0x3beb6e093fa1e3e2LL, 0xf36c38de05c675b2LL, 0x9c1c6995013ed389LL,
1226     0x8b391a1e5a5b6e27LL, 0xec464d24fc9b6662LL, 0xad7cfa8c4ea94ff0LL,
1227     0x0f347918482dba2cLL, 0x9d5eee5f68394101LL, 0x7623dc127eb73331LL,
1228     0x32a6efb2f49edf14LL, 0x2d8c9a480dc3ccc4LL, 0xb2568f76b7f45c20LL,
1229     0x0e76fed2212a28a4LL, 0x48773613790d1564LL, 0x129af783637e7819LL,
1230     0x080f0671a238ae7eLL, 0x365bec70a582882bLL, 0x42fccb03093b6affLL,
1231     0x0a8bfd1070367f9bLL, 0xff9e3d6df6e28cf3LL, 0xe8bb4ee6ad87315dLL,
1232     0xc7b32fcf724a2c7cLL, 0xb8dd7266c7c223bbLL, 0x9328108d491369a5LL,
1233     0x0679f8a3831286daLL, 0x270767587df5b35fLL, 0xa981f94e1fb518cfLL,
1234     0x6b8d528955e4f104LL, 0x1667f44132622f26LL, 0x2ab7e521e7d6d896LL,
1235     0xac3e7d4627aedd78LL, 0x7deaa6c86786de22LL, 0x1725738b5b65bdaeLL,
1236     0x4bb14ab8c2045609LL, 0x592bbd3ba17a2e10LL, 0xc20cabc74a51e9cbLL,
1237     0x6f70514b04f8a63bLL, 0xbc2071a496de7484LL, 0x19538d597a4f950aLL,
1238     0xf45747b7efd361e0LL, 0x43be4cc9603cf877LL, 0xc6f1a8051b4dbef4LL,
1239     0xb42f77d534e6dafaLL, 0x40783062db35bb1aLL},
1240 
1241    {0xf5a96c292deb0a4eLL,
1242     0x211c9df6ee653c51LL, 0x04de5ddcbeeef596LL, 0xe1e5b06f7457c19fLL,
1243     0x74ca30f014a54fb6LL, 0xc296f9f7c5457d85LL, 0x7d4ee08a484d10b0LL,
1244     0xae87f2d0bf9b13adLL, 0x8df4bb480e89afb7LL, 0x2d8b7a67d9a2d61eLL,
1245     0x0f3559c8bd712adbLL, 0x541bc7312f013338LL, 0x9ec4848b636d5164LL,
1246     0x952f809f60f28e29LL, 0x28984d8cb28d6357LL, 0xd4b5f1dfc38e361fLL,
1247     0x5674135f7076b373LL, 0xb791a330042172ecLL, 0xab94c53bd4b4a6e4LL,
1248     0xf17731f59305ffd8LL, 0x39c7a621801e1dcfLL, 0x20d1f7c13ba47c8eLL,
1249     0x5e3da912f95facaaLL, 0xb1202a82e5b80731LL, 0x13303fc36de4fed3LL,
1250     0x2e29c43e5314168aLL, 0x861fbf5c0d1670faLL, 0x6458b16af3f771f1LL,
1251     0x3043765bdcf642c9LL, 0x12fd55f4b825be0cLL, 0x0a266e23d65e9f92LL,
1252     0x6595db5d2636312eLL, 0x85bd010587a0b06eLL, 0x9bd7b3600842e42dLL,
1253     0xaa59af0c0175e63bLL, 0x240faa1d854a8918LL, 0xf464061ef82a4a91LL,
1254     0x5c527d7ca6282ce1LL, 0x03a2be598ab6c094LL, 0x40571b7776bdf8e9LL,
1255     0xe4f687841f7874d6LL, 0x115febad32937e98LL, 0x5108f0da442e8671LL,
1256     0x9cab50e53c1ad12fLL, 0x33e1c8025640825dLL, 0x87d2d56bd8d73025LL,
1257     0xc0f92d999a32fdceLL, 0x62e938d8126e042cLL, 0x4a717554a0e3677bLL,
1258     0x0beb0414039fdf4dLL, 0xd6da25b19cf9b654LL, 0x55d6ad06fac073e7LL,
1259     0x632452efc7af44f3LL, 0xb5fe775e5b56f2a7LL, 0x892ae694b0675a21LL,
1260     0x7a32030f7c1525b2LL, 0x5d9f174b73e96c3eLL, 0xc35b93c010843d5aLL,
1261     0x373f95dee8ae77cbLL, 0xfb515fd6455b604aLL, 0xa9fb11558bc326afLL,
1262     0x22be23af64d3fcc5LL, 0xa8367b625e026670LL, 0xb8a4faf8b9505837LL,
1263     0x785dd7612362a5f9LL, 0x588c20a018c6d977LL, 0xea0eb47b77c81ed2LL,
1264     0xa6ce489d36b20c74LL, 0x0c97e79137c7ea4fLL, 0x7c838abd9d8c506fLL,
1265     0x57b97968a5b7f3acLL, 0x6c110b277ade6e28LL, 0xc785ce1cae6ac8ccLL,
1266     0x1581b6718c7d8b0eLL, 0x614b868198d8c4b8LL, 0x27ad14440ffc498cLL,
1267     0xdb80a8177eff1cc4LL, 0x472bf8f242e5cdebLL, 0x8a8858cd3ad19ab5LL,
1268     0xf60bd270a75dcadaLL, 0x43f5a52efc0b387dLL, 0x6ddc6110af1f2ef7LL,
1269     0xf0ba5bc246c4bf07LL, 0x6fb3b57ef068aebcLL, 0x18db3bd76e7b219eLL,
1270     0x903cb7740bdd3b60LL, 0x7bff6938a9d4656dLL, 0xbdb7cd13d27fed7eLL,
1271     0x051337eb6b2fb549LL, 0x77688ea99e138f22LL, 0xd9ef7c7921889c8fLL,
1272     0x077ce38534583502LL, 0xf318e59bcc727f93LL, 0xb34ffeecbacf877aLL,
1273     0xe9ac0a22fd7ede46LL, 0xfc2dbc5371035548LL, 0x026fd46e5f77804bLL,
1274     0xe53bedb3cab93409LL, 0xcc6eca08adf51781LL, 0xe028da58a1968140LL,
1275     0x3a6518780aa8dd5bLL, 0xce011e66f28297caLL, 0xa4a19cf369c58c3fLL,
1276     0xc5ea1a72f11d4887LL, 0xc427704524dc0858LL, 0x4238cf1929ca78a2LL,
1277     0x481ea13aff94e730LL, 0xdf5ef5cbc011e952LL, 0x80ae36eeec8f0527LL,
1278     0x5ae3f4ce47b1593cLL, 0xcda3a03f7834575eLL, 0x71d9071b7f8afaffLL,
1279     0xcadf43ba4c6c625cLL, 0x1623082806cb4b9aLL, 0x17ee621fd30a0b45LL,
1280     0x448946abc8530d7fLL, 0x974054f13f850e62LL, 0x73b6d37520fd7ab4LL,
1281     0xc8b097d4131be217LL, 0x9f09eebcb6ac11bbLL, 0x45442c9c1d924da0LL,
1282     0x1b79858ee4cde10aLL, 0x0984d07a5ce85f06LL, 0x4cc0fce6417a12a6LL,
1283     0x99b8670e57356466LL, 0xad254c89352dd339LL, 0x322ca2358381c282LL,
1284     0xcfcc74512743d715LL, 0x6b6de8a24e865b2aLL, 0xda4dc220ab3e5c1bLL,
1285     0x88e78ca365a61afeLL, 0x939e092d816bfbf4LL, 0xcb12298d99ad2283LL,
1286     0xeed0e9a7c926eb44LL, 0x98750d3982f424b9LL, 0xd5789be8164f76c0LL,
1287     0xbe15734a58c92deaLL, 0x49d3cb0d2a55a7efLL, 0x67fa0f337941b165LL,
1288     0x8c39d17fdb48ef68LL, 0x25c2c02a508bc9c7LL, 0x349d2b876218b75fLL,
1289     0x70146d2caa4bba20LL, 0x1c05660bd095d408LL, 0xfe42683d2e74d503LL,
1290     0x9a1ad957dd83a4f2LL, 0xf2d58fac19b33f4cLL, 0x81635cd9394e45f8LL,
1291     0xb65cc907d1e03233LL, 0xdd3121a59f666919LL, 0x318e1c6c09370216LL,
1292     0x8b4532faef10da6aLL, 0x191651e0bbba6141LL, 0x3f762f9361876812LL,
1293     0xb96990cf6c9118e8LL, 0xb4331d698e97b278LL, 0xd822164ef449dc50LL,
1294     0x84706b325261f0b1LL, 0x4eaf28881e0d92edLL, 0x69023ccc11f1db61LL,
1295     0x66376504ac80f1baLL, 0x0849ba4d89291fd9LL, 0xff8f020afbb595dcLL,
1296     0x50c59aed91efc6aeLL, 0x1dc80c3c055494d7LL, 0x1e6ab2658fe25443LL,
1297     0x3d19fbfd3ef0e859LL, 0xfa9c35e1909a2095LL, 0x52aa4e83ce9846e5LL,
1298     0x419a7140a37cb836LL, 0xa07fc12fd72b79a9LL, 0x68cf56fbc4309bbeLL,
1299     0x01cd6a37d5c140dfLL, 0x9253631a54aabb2bLL, 0xd06bac037d60c389LL,
1300     0x295527bb674c2388LL, 0xd204786d221743c2LL, 0x0000000000000000LL,
1301     0xf7c6b847729c8a05LL, 0xdcfc4b924aa729c6LL, 0xe38a64012b2041d4LL,
1302     0xb28294db6f0ec7a5LL, 0x9d663ad2e9db91f0LL, 0x91f1dd43de1c7bbfLL,
1303     0x6086ecb64d198467LL, 0x59414a97cd0799a8LL, 0xace826bee0ec93e6LL,
1304     0xa56cf6c4bc04cce0LL, 0x727bb942f53c3a6bLL, 0x6e7edf4925a9ee63LL,
1305     0x26607e73da3d0953LL, 0xe75439dd95ceb442LL, 0x7990bd56f6a3e526LL,
1306     0xecbf3dc996516b0fLL, 0x76a5e49e4bd2cffdLL, 0x968d3ec6ea444ebdLL,
1307     0x5b2e9ef9927019e3LL, 0x6aa082959b471bf5LL, 0xbb0644a133e698a3LL,
1308     0x830c88b76639c5b3LL, 0xe2470e36fee1010bLL, 0xb0ed40b5307947eeLL,
1309     0x355041b0b7d9f780LL, 0x8e560511843f6f23LL, 0x7f2134e4173a90fbLL,
1310     0x2af799e2edfae31cLL, 0x4bbc1f63752227a4LL, 0xf8f3e18fcfeda0deLL,
1311     0x0d5a8da6e206aa90LL, 0x2c4610500c6396c1LL, 0xde939ffc15d0a98dLL,
1312     0xaf4a98e76a5a5372LL, 0x8f9b6f2651fe2ffcLL, 0x36f2ffe93d6f3714LL,
1313     0x0ef833ff68b06a04LL, 0xe69953ea400ff49dLL, 0x23734998b112bc1aLL,
1314     0x3ebb45a4b44628cdLL, 0x1ab4efb9310ca1d5LL, 0x2fe4ae0986d55655LL,
1315     0xebc3de4ca2095e0dLL, 0x536724b41b59063aLL, 0x46e692c597248d34LL,
1316     0x2b3af3d5383ba3c3LL, 0x3ba8724fdf699d84LL, 0xc13447ae4ff3bd11LL,
1317     0x4d0d96d194bb5279LL, 0xfde0d664a4c21597LL, 0xd7174f864938f68bLL,
1318     0x7eec5ed3c2fbd024LL, 0xbfd8197d8d086d35LL, 0x4f6242bfcbccd232LL,
1319     0xa70322aae3734cabLL, 0xa3dd7f765d9db93dLL, 0x94e2eaa8b533cef6LL,
1320     0x144cdc4659bccbd1LL, 0xc648a42b7bab8813LL, 0xf93e8bb81a2ce001LL,
1321     0xbacb2e96e627d87cLL, 0xbc7aa72407beada1LL, 0xc97dfde3c6daa2c8LL,
1322     0xa1b2ab1802ea3976LL, 0x1fa7d8525a23149cLL, 0x75075ac7c1640f69LL,
1323     0xe861601528bf9e99LL, 0xa2101541885cf9e2LL, 0xef1d83901ce7ab9bLL,
1324     0x06b189b2e19975ddLL, 0x380acc1655df5d10LL, 0x1092819ae7523e47LL,
1325     0xd3c9125af7d6031dLL, 0xd1a6c634a8a18356LL, 0x5ff0c3252c9eec75LL,
1326     0x82c1e280b3f8856cLL, 0xed7257fe43902bd0LL, 0x3cd491caeb31a886LL},
1327 
1328    {0x94af9eb6fad9e7dfLL, 0x9208ae5e03c94dddLL, 0x1d8de8d67158480bLL,
1329     0xfd093cd2ba147af8LL, 0xa45ceb22e6597ccfLL, 0x9bbde6e77bf113daLL,
1330     0xe4edf4b465fffe5cLL, 0x7125622e4e8d2a2fLL, 0x1791b81b8f68430dLL,
1331     0xb56a63d1902195c0LL, 0xa980832b30d2ee67LL, 0x4c0a7fb384862397LL,
1332     0xed58bc0d1dc7a05bLL, 0x5955d7f05c4d0637LL, 0xd2b9b1c8806fcf4eLL,
1333     0x06a730e8f910aa02LL, 0xb8b60bd846aa0768LL, 0x45bf370afcbe7d90LL,
1334     0x16f6b0375ec370a1LL, 0x892276608b81afd4LL, 0xdcccc1b5d0ec08e7LL,
1335     0xe856949162df5f58LL, 0x82592e81a41a977eLL, 0xac8eabb74fca1164LL,
1336     0xfac9041692afe356LL, 0x3b882d75331ba3baLL, 0xa39cd3e6cee2e561LL,
1337     0xd077a190d7cca9e3LL, 0x9c7dde23534a8a74LL, 0x80973ed9f3b9f1d3LL,
1338     0xce535132209cb4e9LL, 0xaa299b5fb6dabb66LL, 0x2d7e9d426dd8d31bLL,
1339     0x8a8b6e140d89fad5LL, 0x6ca88af83fd56224LL, 0xf5db7c4713871753LL,
1340     0xeef1a4799bcff55aLL, 0x76e55aea6636b381LL, 0x8ee24ea4a33a367aLL,
1341     0x25acddd7c44bbeb0LL, 0x9adaeecbaa5a2076LL, 0x0e75707d5083c7a9LL,
1342     0x2bd9adaa94c87919LL, 0x19e4c866dfeb84a4LL, 0x129f9087f070bc0eLL,
1343     0xd9c2e929aff4f7e4LL, 0x6f01928cb9dd3725LL, 0x39463d2d64b8c517LL,
1344     0xebff8ce5e4d70a59LL, 0xb40d6bfd418aa66cLL, 0xf21b44833b3c8efdLL,
1345     0x3654457ce5903112LL, 0x431807e205aed792LL, 0xb10343613e92596fLL,
1346     0x0a1c50cdfe300b06LL, 0x778252c6b79d802dLL, 0x0cbb60250720a104LL,
1347     0xe1e3dc281ae7015fLL, 0x0f1278518128f405LL, 0x47712752ab1d1b3dLL,
1348     0xe24ac45c9cef545eLL, 0x1ceae0faa0f37ba7LL, 0x9814fe93fdf946dbLL,
1349     0xec3fb421cc6c93f7LL, 0x833e26ad75b1a4d2LL, 0x6b68b23c176efb8aLL,
1350     0x4904572ffb9edc94LL, 0x4bca4777ac3dba39LL, 0x2762cd8f93e8d81dLL,
1351     0x9eb3ce7b04e9ecd9LL, 0xc2e8311727bc15edLL, 0xea9884c9357c39f5LL,
1352     0xfc6e34fe6bbf4954LL, 0x13f898ab21db8fa2LL, 0xb7a47389c782f36dLL,
1353     0x7b3932e3b0bd2129LL, 0xaf27b3c3c9c24465LL, 0xb6c37ba51629c0c1LL,
1354     0x84fe1e695d0a3d7cLL, 0x1a4dd01259e3d1a5LL, 0xab4e9373677188caLL,
1355     0x90c6be06546a2b70LL, 0xf37c4cafea97bd51LL, 0x647aca6d96460f8fLL,
1356     0x4ec46febd325453aLL, 0x3e8605e94c035cb9LL, 0x0ddc6809d68b92a8LL,
1357     0x8bec6638dc22c979LL, 0x67d3d219104e5a8eLL, 0x2abea58645634ab5LL,
1358     0x5b9bc7a80bee609aLL, 0x936fa672d2627e71LL, 0x7d9e020b49ad8b2bLL,
1359     0x5832dfdc8de6359bLL, 0xc7e6198b58a4eaeeLL, 0xd41e8120797f654cLL,
1360     0xf4bc746bc22c24ffLL, 0xe084d404cb4c32f3LL, 0x48635f032a35ef38LL,
1361     0x8757061ddb02687dLL, 0x522e8f1173d63e9dLL, 0xbcdf2b68e819cbc7LL,
1362     0xbf76331c6e119ec6LL, 0x08d24095a9936dabLL, 0x728c7a5ac8857f2eLL,
1363     0xd110a9bc06679a4fLL, 0x1f43f88e26fb2ea6LL, 0xb2aa5b15b89a0c6eLL,
1364     0x4aad4f5b7d968995LL, 0x9fd4c657d542df75LL, 0x323d65cc4b23fdbdLL,
1365     0xc38f393bf6172641LL, 0xa152c3be994183ccLL, 0x9d1ad60f82e1b9d8LL,
1366     0xe744ecc0e3f7ab5dLL, 0x38213501b513f6bbLL, 0xade9a39b9e6122c8LL,
1367     0x37334d50343b02beLL, 0x55eeb7d55b6da733LL, 0x970686c27cd1b2deLL,
1368     0x427f0fced405e43eLL, 0xc026214f701f7340LL, 0x40b11f9683a68293LL,
1369     0x02ce105857a366adLL, 0x7e371a7fcfa5de2aLL, 0xffc72c8aedb71c55LL,
1370     0x68c1aa489166ae8bLL, 0xc68111a7890fd942LL, 0x79f722bbe71e4784LL,
1371     0xd579890ca8d456e0LL, 0x70426a029f261983LL, 0xb0644b4def396ac3LL,
1372     0xdb0cf971f8579149LL, 0x5489bff98ac6949fLL, 0x046920b0aeb3ccafLL,
1373     0x7cf90a279806b887LL, 0x050e289c7f18ff03LL, 0x651dc24147ed3c23LL,
1374     0x5e95ef3474f69f99LL, 0x6dcf82d4ee7e5188LL, 0x8f854688729105d6LL,
1375     0x81f036f52212c27fLL, 0xb9d103f4970134c4LL, 0x5349873da27d0d31LL,
1376     0x20a2f54bbb5341b3LL, 0xf0d554db6c9fe850LL, 0x07c038c428bb99aeLL,
1377     0x30f375941c809b10LL, 0x3fe10dc59da86f15LL, 0x46162f7e7ab62891LL,
1378     0xe623e4ec325c98f1LL, 0xfea024a63c1c2ff9LL, 0x349a5524b23357bfLL,
1379     0x35fd5d0863986413LL, 0x96618eeead7a8172LL, 0xcb5d79ae5f844beaLL,
1380     0x21c5fd676af8721fLL, 0x5720a78d0ccec19eLL, 0xf6726433958f4252LL,
1381     0x8d4b56d02532637bLL, 0x24cbd5fb15e08d1cLL, 0x3aef2559e2b09016LL,
1382     0x5afccf84da455336LL, 0x51879765f5de6b9cLL, 0x2917bdf2c36b1fb4LL,
1383     0xa7f5f356605129ceLL, 0xc1412963a1b440ecLL, 0x3d2f1d9dca0b09b8LL,
1384     0xa53be30e37f24f63LL, 0x5ff2e718a55dac35LL, 0xa2fbdbca1f49d6cdLL,
1385     0xf7156c1f442471feLL, 0x7a5e3acf61161285LL, 0xca3a71828e2f7846LL,
1386     0x1b2ad83e8848e209LL, 0xa8e78b07e179ddcbLL, 0xef96ac554a64c6f6LL,
1387     0x0000000000000000LL, 0x6013eadd38f5c320LL, 0x3c4815b11ba03a14LL,
1388     0x09b548b978385e07LL, 0x226ce513ecf0271eLL, 0x63baf2a9befd9621LL,
1389     0x44d83f262d154e3cLL, 0xcdfa4946a694e1e8LL, 0x113688f37678e90fLL,
1390     0x859916458ca10ed0LL, 0xc52809d30f078c43LL, 0x4d6d779f552d103bLL,
1391     0x1e24f0a2f7501d0aLL, 0x0167082cd1ab33acLL, 0x1438a06f0960160cLL,
1392     0xf9601c6214a7b657LL, 0xa035cb9248eab060LL, 0x50e09f4924755830LL,
1393     0xd7b79954ff77304dLL, 0xe58afc98b454cdf0LL, 0x03a9187486085501LL,
1394     0x62ddfa856f56a58dLL, 0xc44f01ffdeacbfefLL, 0x73eb7276192e4c82LL,
1395     0xd6d091782edc03e1LL, 0xfbae0c3a4304d0faLL, 0x9973f6bf2c527577LL,
1396     0x105180dfa7d3daa3LL, 0x2605c5a34243ebb1LL, 0x91a1b62a85c118dcLL,
1397     0xc99369f608272d47LL, 0x5d3cf740f2feca98LL, 0xcf34591ef1378745LL,
1398     0xc8f461dad98c1eebLL, 0x0b7b58e12f9b38aaLL, 0xe32dcc704d4467f2LL,
1399     0x754c429ee03ee680LL, 0xd3deb9e451c4fce2LL, 0x6e669aa068760489LL,
1400     0x66b4da35c1e56922LL, 0x4fa367c7028e7696LL, 0xba781b80110961c5LL,
1401     0x41d617ba520db13fLL, 0x335a6de09a88ce11LL, 0xdf65d9c156e45de6LL,
1402     0xcc9d416a773fd244LL, 0x5c5bff6c2355f934LL, 0x2870b5de12c02c18LL,
1403     0x155fa843d8cb25a0LL, 0x78902a9736b57428LL, 0xae40bbef186977c9LL,
1404     0x88457e4c5a2a9c78LL, 0x6a0fba10c6c5c826LL, 0x7f5012531e0eed86LL,
1405     0x8c2c5efcf49950d7LL, 0x31947db8cd2ba8bcLL, 0x2c19956ebc73e0b7LL,
1406     0x230bed3f3d5b14b2LL, 0x69a6a26440cd9d27LL, 0x86300e310aa95bd1LL,
1407     0xb3cd533969313fc2LL, 0x1883c04a0e40b708LL, 0xf1b25cf7bd34dbfcLL,
1408     0x2fb08d1a3a7bb5b6LL, 0xd8a5e1057e5fc448LL, 0xddabc99901473b4bLL,
1409     0xde02d1ed874f6e4aLL, 0xbdb8234439b2f86bLL, 0x5647afa1dd65f232LL,
1410     0x2ed78536ebd0861aLL, 0xe9319cbdb3746cf4LL, 0xa692fb7ab1fa1a62LL,
1411     0x742b4ab23195d52cLL, 0x95c8969a2b72d473LL, 0x6174e2f1e95ef08cLL,
1412     0xf807144ec50c85fbLL, 0xbe113b30bfbaad6aLL, 0xda6bf15d29fca2e5LL,
1413     0xbb1f13acc0a25269LL},
1414 
1415    {0xc22b27f0f9e37bf9LL, 0x93fad23f0955ef09LL,
1416     0x32ed4b84a22a91a2LL, 0x3898b57bcc61b1ccLL, 0x55825ba9ad98e5adLL,
1417     0xb2eeb8069421ec94LL, 0xc7eb5875ce3c6bceLL, 0x4b1dac5d1f45851fLL,
1418     0xc16ba1204705d847LL, 0xc5380f461a2ba91aLL, 0xb908971a909bad90LL,
1419     0x303e1cb7763d5376LL, 0xe6ff324c53486853LL, 0x6d1aeed261f95461LL,
1420     0x0193d1e36af1616aLL, 0x51d1f5cff0b694f0LL, 0x29b2c3f52728e127LL,
1421     0x112a768eeb4950ebLL, 0x8fb672f86f9f4d6fLL, 0xf0c66c745bc9ea5bLL,
1422     0x3f8b9dcd2fa9632fLL, 0x65bc471edba5b6dbLL, 0x4d9d5508967c3696LL,
1423     0x3a4be24818767318LL, 0x2794936c144db014LL, 0x2af2452599ce4299LL,
1424     0x4a8e7dbe75b4e475LL, 0x9ddc82a63a30be3aLL, 0xade29e114c0ded4cLL,
1425     0xd1d2064dc6bde9c6LL, 0x7da349bfe04165e0LL, 0x6b9a1787e8c0e7e8LL,
1426     0xa54437ddf6510ff6LL, 0x2254ece92392a023LL, 0x79f0e7d9bd6f14bdLL,
1427     0x57510c9a798f2779LL, 0x346db2d12b13222bLL, 0x54118a4ac76984c7LL,
1428     0xefca4a6383e5eb83LL, 0xca8d8e3c43bf9943LL, 0xfc336bdebcbb79bcLL,
1429     0x3e184c2e45580245LL, 0xf495c21206e79b06LL, 0xff73ed0e025dda02LL,
1430     0x4228d472cfe806cfLL, 0xbcc8e89fa744bda7LL, 0xab626744c5345ec5LL,
1431     0xb6bd1660c90f9dc9LL, 0xb72ec783a3fefca3LL, 0x8be5dc9e32b13c32LL,
1432     0x485d2a8da1a326a1LL, 0xc6788996a4cd0aa4LL, 0x40fb83411bffc41bLL,
1433     0x08a6a9ccba5ce2baLL, 0xf386eaa4e52f49e5LL, 0x1acc5992eff311efLL,
1434     0xa2571f6b1599dd15LL, 0x44a82d2746d1b546LL, 0x70c59ff66dc2976dLL,
1435     0x8d6525cbbb888fbbLL, 0x963aadba3e8aff3eLL, 0x7c30985c8ab0048aLL,
1436     0x607c389bec7aa6ecLL, 0xa822e1947bd2fd7bLL, 0x034086d0bee6a3beLL,
1437     0x66fcc1ce65431565LL, 0xb37d69e5fed08dfeLL, 0x2f323aa0ae1152aeLL,
1438     0x56c2dd79137e4613LL, 0x31adcd541ccc321cLL, 0xdff456d4f5d8b8f5LL,
1439     0xf9f3145b8b64698bLL, 0x764566a3e4fb24e4LL, 0x0cf507aae77293e7LL,
1440     0x59775c034aea764aLL, 0xb89b46f9fa6accfaLL, 0xe8d962d5602d3960LL,
1441     0x17aa8fdb6270e362LL, 0x1c4ca0c766caa266LL, 0x2de16d937a06907aLL,
1442     0x2547c45fc05a72c0LL, 0x0fb5817a59943059LL, 0x0680f9558939b389LL,
1443     0x16395e3808818208LL, 0xac714ff226fc8c26LL, 0xa9b1307711239c11LL,
1444     0xec8accb33d03483dLL, 0x6c893f310b08350bLL, 0xc4abdea570dac870LL,
1445     0xba4811ca2e7d0e2eLL, 0xf155bd9731388b31LL, 0xdd2701e721cf7a21LL,
1446     0xe94ab3360adc580aLL, 0x23c73d0a4963c149LL, 0x5cb723867d35667dLL,
1447     0x5042242c9a47f59aLL, 0x198cdf425115b251LL, 0x0a75feff6e4b206eLL,
1448     0xfda0ba3dd64a18d6LL, 0xcede205a1e91e81eLL, 0xd041d7aeac4c88acLL,
1449     0xe42c657f875faa87LL, 0x36bee5e2ff04e0ffLL, 0x6fc9b9e1b5ee96b5LL,
1450     0x998f2cc0671ecf67LL, 0xd301517e12aa2b12LL, 0xaea218c1f2eb4ef2LL,
1451     0xda342951c207a8c2LL, 0x61efe978868bc786LL, 0x7f701e8c3456a734LL,
1452     0x0be62f1c04ba4104LL, 0x9129850cdd422dddLL, 0xd6c12efb25753b25LL,
1453     0xe33f4dc964977864LL, 0x1579d8e8b66721b6LL, 0xf860c5b8e19508e1LL,
1454     0x7496319030ece630LL, 0x88a55a4e8c579f8cLL, 0xcf4df1b974608974LL,
1455     0x10b9a76d81b83181LL, 0x0e26509933655133LL, 0x43bb0591a51967a5LL,
1456     0x926903dc63a48e63LL, 0x9c4f534550c1df50LL, 0x3bd833ab72871272LL,
1457     0xa4d7e63e9ca06e9cLL, 0xb46e41531d185f1dLL, 0x126af05e55aff355LL,
1458     0x24d415bcaaab13aaLL, 0x1e9ff7f4b2dd60b2LL, 0x05c07f8537df1037LL,
1459     0x467b7a1492c67792LL, 0x2087bbdaf78562f7LL, 0x819022615cfa1c5cLL,
1460     0xcd9ea68aa0774ba0LL, 0xa79760ee2246cd22LL, 0x8343755288edde88LL,
1461     0x58e48de0201b1720LL, 0x7216c8c5b9d555b9LL, 0x372d340195f58195LL,
1462     0xa11799bbab7f7eabLL, 0x9f0fd595ee277ceeLL, 0x676f102d0fb2740fLL,
1463     0x9e9c047684d61d84LL, 0x49cefb6ecb5247cbLL, 0xd41279c8f162f9f1LL,
1464     0x1f0c2617d82c01d8LL, 0x97a97c59547b9e54LL, 0xe76ce3af39b90939LL,
1465     0xc3b8f61393121a93LL, 0x5ba40b309efdb49eLL, 0xea0a35e6b43afbb4LL,
1466     0x5a37dad3f40cd5f4LL, 0x14ea090bdc9640dcLL, 0x5e6474b5a922a4a9LL,
1467     0xfee03ced68acbb68LL, 0x071328b6e3c8d2e3LL, 0x5302a2fc24a15624LL,
1468     0x85c38c0701d46d01LL, 0x3d58cafefbbea1fbLL, 0x84505de46b250c6bLL,
1469     0x642f96fdb154d7b1LL, 0xbf886e4f19a21e19LL, 0x02d35733d417c2d4LL,
1470     0x68da915756264456LL, 0x8710db34d5c3afd5LL, 0x0d66d6498d83f28dLL,
1471     0x7b23b0ea6978d669LL, 0x1b5f887185027085LL, 0x3ccb1b1d914fc091LL,
1472     0x0453ae665d2e715dLL, 0xcb1e5fdf294ef829LL, 0xf6469521d2f059d2LL,
1473     0xb03def3540362e40LL, 0x633cbe4b529c0552LL, 0xf7d544c2b80138b8LL,
1474     0x7ab061090389b703LL, 0x0000000000000000LL, 0xdba7f8b2a8f6c9a8LL,
1475     0x35fe633241e24341LL, 0x21146a399d74039dLL, 0xd581a82b9b93989bLL,
1476     0x0935782fd0ad83d0LL, 0x5ff7a556c3d3c5c3LL, 0xaf31c922981a2f98LL,
1477     0x90ba54efb7b34cb7LL, 0x5291731f4e50374eLL, 0xc0f870c32df4b92dLL,
1478     0x7ee3cf6f5ea7c65eLL, 0xe07fcb19da71dbdaLL, 0x4eddd3d8289a9528LL,
1479     0x13f921bd3f5e923fLL, 0xf50613f16c16fa6cLL, 0x981cfd230defae0dLL,
1480     0x4c0e84ebfc8d57fcLL, 0x82d0a4b1e21cbfe2LL, 0x89368bade6a6fee6LL,
1481     0xd292809d785b4a78LL, 0x47e8abf7f83716f8LL, 0x8e25a31b056e2c05LL,
1482     0xd752ff184f845a4fLL, 0xcc0d7769ca862acaLL, 0x694940b43cd7253cLL,
1483     0x2ea1eb43c4e033c4LL, 0xde6787379f29d99fLL, 0x181f0ea13be4d33bLL,
1484     0x416852a2710ea571LL, 0x62af6fa8386d6438LL, 0xa0844858c18e1fc1LL,
1485     0x337e9a67c8dbf0c8LL, 0x2c72bc7010f7f110LL, 0xbd5b397ccdb5dccdLL,
1486     0xd8e77e6216106a16LL, 0x86830ad7bf32cebfLL, 0x4f4e023b426bf442LL,
1487     0xe5bfb49cedaecbedLL, 0x8a760d7d58405d58LL, 0xe2ac9c2a0e66190eLL,
1488     0xb5fd90b077e93e77LL, 0xdcb4d0044b3e1b4bLL, 0x453bfcc42c20d42cLL,
1489     0xed191d5057f22957LL, 0xe1ec1afab080bab0LL, 0xee599b80e9148ae9LL,
1490     0x2607428f7ebcd17eLL, 0x5d24f26517c40717LL, 0x6a09c66482318682LL,
1491     0xa604b10d48b7ac48LL, 0xbe1bbfac73537f73LL, 0x282112164dd9804dLL,
1492     0x7505e0735a1d875aLL, 0x73851926d32434d3LL, 0xd974af817ce10b7cLL,
1493     0xeb99e405decb9adeLL, 0x9b5c7bf3b3090db3LL, 0xfab3928b3582ca35LL,
1494     0x8003f382360b7d36LL, 0x94e9fa89ea9d3deaLL, 0xb1ae3ed62ac74f2aLL,
1495     0x9acfaa10d9f86cd9LL, 0x390b6498a690d0a6LL, 0xf2153b478fde288fLL,
1496     0x71564e150733f607LL, 0xa3c4ce887f68bc7fLL, 0xaaf1b6a7afc53fafLL,
1497     0x1ddf71240c3bc30cLL, 0x77d6b7408e0a458eLL, 0x2b6194c6f33f23f3LL,
1498     0xc9cd08ecfd593afdLL, 0xc85ed90f97a85b97LL, 0x8cf6f428d179eed1LL,
1499     0x957a2b6a806c5c80LL, 0xbbdbc029448c6f44LL, 0x7863363ad79e75d7LL,
1500     0x6e5a6802df1ff7dfLL, 0xfb2043685f73ab5fLL}
1501 };
1502 
1503 unsigned char slog[256], alog[256];
1504 ddword cbox_enc_k[ROUNDS][8][256], cbox_dec_k[ROUNDS][8][256];
1505 unsigned char pG[8][8];
1506 
1507 /* print ssdwords */
print64(FILE * f,ddword a)1508 void print64(FILE *f, ddword a)
1509 {
1510    fprintf(f,"%08lx%08lx \n",(dword)(a >> 32), (dword)a);
1511 }
1512 
1513 /* multiply two elements of GF(2^m) */
mul(unsigned char a,unsigned char b)1514 unsigned char mul(unsigned char a, unsigned char b)
1515 {
1516    if (a && b) return alog[(slog[a] + slog[b])%255];
1517    else return 0;
1518 }
1519 
1520 /* give the ddword that consists of
1521  * the 8 bytes that are the multiplicative
1522  * inverse of the 8 bytes a consists of
1523  */
inverse(ddword a)1524 ddword inverse(ddword a)
1525 {
1526    unsigned char t;
1527    ddword r = 0;
1528 
1529    for(t = 0; t < 8; t++)
1530       r ^= ((ddword)alog[(255 - slog[(unsigned char)(a >> (56 - 8*t))])%255] << (56 - 8*t));
1531    return r;
1532 }
1533 
1534 /* check whether there are no
1535  * all-zero bytes in a
1536  */
invertible(ddword a)1537 unsigned char invertible(ddword a)
1538 {
1539 return (unsigned char)a & (unsigned char)(a >> 8) & (unsigned char)(a >> 16) & (unsigned char)(a >> 24)
1540   & (unsigned char)(a >> 32) & (unsigned char)(a >> 40) & (unsigned char)(a >> 48) & (unsigned char)(a >> 56);
1541 }
1542 
1543 /* produce logtabel and alogtabel,
1544  * needed for multiplying in the field GF(2^m)
1545  */
init()1546 void init()
1547 {
1548    word i, j;
1549    alog[0] = 1;
1550    for(i = 1; i < 256; i++) {
1551       j = alog[i-1] << 1;
1552       if (j & 0x100) j ^= ROOT;
1553       alog[i] = j;
1554       }
1555    slog[0] = 0;
1556    for(i = 1; i < 255; i++)
1557       slog[alog[i]] = i;
1558 }
1559 
1560 /* transform a roundkey
1561  * we use this when we interchange the key addition
1562  * and the linear operation
1563  */
transform(ddword a)1564 ddword transform(ddword a)
1565 {
1566    unsigned char i, j, k[8], t[8];
1567    ddword r;
1568    for(i = 0; i < 8; i++) k[i] = (unsigned char)(a >> (56 - 8*i));
1569    for(i = 0; i < 8; i++) {
1570       t[i] = mul(iG[i][0],k[0]);
1571       for(j = 1; j < 8; j++) t[i] ^= mul(iG[i][j],k[j]);
1572       }
1573    r = t[0];
1574    for(i = 1; i < 8; i++)
1575       r = (r << 8) ^ t[i];
1576    return r;
1577 }
1578 
1579 
encryption_key(ddword plain,ddword * roundkey)1580 ddword encryption_key(ddword plain, ddword *roundkey)
1581 {
1582    register ddword tmp = plain;
1583    register unsigned char r;
1584 
1585    for(r = 0; r < ROUNDS-1; r++) {
1586       tmp ^= roundkey[r];
1587       tmp = cbox_enc[0][(tmp >> 56) & 0xff]
1588           ^ cbox_enc[1][(tmp >> 48) & 0xff]
1589           ^ cbox_enc[2][(tmp >> 40) & 0xff]
1590           ^ cbox_enc[3][(tmp >> 32) & 0xff]
1591           ^ cbox_enc[4][(tmp >> 24) & 0xff]
1592           ^ cbox_enc[5][(tmp >> 16) & 0xff]
1593           ^ cbox_enc[6][(tmp >>  8) & 0xff]
1594           ^ cbox_enc[7][ tmp        & 0xff];
1595       }
1596    tmp ^= roundkey[ROUNDS-1];
1597    tmp = ((ddword)sbox_enc[(tmp >> 56) & 0xff] << 56)
1598        ^ ((ddword)sbox_enc[(tmp >> 48) & 0xff] << 48)
1599        ^ ((ddword)sbox_enc[(tmp >> 40) & 0xff] << 40)
1600        ^ ((ddword)sbox_enc[(tmp >> 32) & 0xff] << 32)
1601        ^ ((ddword)sbox_enc[(tmp >> 24) & 0xff] << 24)
1602        ^ ((ddword)sbox_enc[(tmp >> 16) & 0xff] << 16)
1603        ^ ((ddword)sbox_enc[(tmp >>  8) & 0xff] <<  8)
1604        ^  (ddword)sbox_enc[ tmp        & 0xff];
1605    return roundkey[ROUNDS] ^ tmp;
1606 }
1607 
encryption(unsigned char * plain,ddword * roundkey,unsigned char * ciphertext)1608 void encryption(unsigned char *plain, ddword* roundkey, unsigned char *ciphertext)
1609 {
1610    register ddword tmp = 0;
1611    register unsigned char r;
1612    int i;
1613 
1614     for (i = 0; i < 8; i++) {
1615         tmp = (tmp << 8);
1616         tmp |= plain[i];
1617     }
1618 
1619     /* first key addition is not
1620      * incorporated in the cboxes
1621     */
1622 
1623    tmp = ((ddword)mul(tmp >> 56,roundkey[ROUNDS+1] >> 56) << 56)
1624        ^ ((ddword)mul((unsigned char)(tmp>>48),(unsigned char)(roundkey[ROUNDS+1]>>48)) << 48)
1625        ^ ((ddword)mul((unsigned char)(tmp>>40),(unsigned char)(roundkey[ROUNDS+1]>>40)) << 40)
1626        ^ ((ddword)mul((unsigned char)(tmp>>32),(unsigned char)(roundkey[ROUNDS+1]>>32)) << 32)
1627        ^ ((ddword)mul((unsigned char)(tmp>>24),(unsigned char)(roundkey[ROUNDS+1]>>24)) << 24)
1628        ^ ((ddword)mul((unsigned char)(tmp>>16),(unsigned char)(roundkey[ROUNDS+1]>>16)) << 16)
1629        ^ ((ddword)mul((unsigned char)(tmp>> 8),(unsigned char)(roundkey[ROUNDS+1]>> 8)) <<  8)
1630        ^ ((ddword)mul((unsigned char)tmp,(unsigned char)roundkey[ROUNDS+1]))
1631        ^ roundkey[0];
1632 
1633    for(r = 0; r < ROUNDS; r++) {
1634       tmp = cbox_enc_k[r][0][(tmp >> 56) & 0xff]
1635           ^ cbox_enc_k[r][1][(tmp >> 48) & 0xff]
1636           ^ cbox_enc_k[r][2][(tmp >> 40) & 0xff]
1637           ^ cbox_enc_k[r][3][(tmp >> 32) & 0xff]
1638           ^ cbox_enc_k[r][4][(tmp >> 24) & 0xff]
1639           ^ cbox_enc_k[r][5][(tmp >> 16) & 0xff]
1640           ^ cbox_enc_k[r][6][(tmp >>  8) & 0xff]
1641           ^ cbox_enc_k[r][7][ tmp        & 0xff];
1642       }
1643 
1644       ciphertext[0] = (unsigned char)((tmp >> 56) & 0xff);
1645       ciphertext[1] = (unsigned char)((tmp >> 48) & 0xff);
1646       ciphertext[2] = (unsigned char)((tmp >> 40) & 0xff);
1647       ciphertext[3] = (unsigned char)((tmp >> 32) & 0xff);
1648       ciphertext[4] = (unsigned char)((tmp >> 24) & 0xff);
1649       ciphertext[5] = (unsigned char)((tmp >> 16) & 0xff);
1650       ciphertext[6] = (unsigned char)((tmp >>  8) & 0xff);
1651       ciphertext[7] = (unsigned char)((tmp      ) & 0xff);
1652 }
1653 
decryption(unsigned char * cipher,ddword * roundkey,unsigned char * plaintext)1654 void decryption(unsigned char *cipher, ddword *roundkey, unsigned char *plaintext)
1655 {
1656    ddword tmp = 0;
1657    unsigned char r;
1658    unsigned char t[8], i, j, u;
1659 
1660     for (i = 0; i < 8; i++) {
1661         tmp = (tmp << 8);
1662         tmp |= cipher[i];
1663     }
1664 
1665    tmp ^= roundkey[0];
1666 
1667 /* first key addition is not
1668  * incorporated in the cboxes
1669  */
1670    for(i = 0; i < 8; i++) t[i] = (unsigned char)(tmp >> (56 - 8*i));
1671    tmp = 0;
1672    for(i = 0; i < 8; i++) {
1673       u = 0;
1674       for(j = 0; j < 8; j++) u ^= mul(pG[i][j],t[j]);
1675       tmp ^= ((ddword)u << (56 - 8*i));
1676       }
1677 
1678    for(r = 0; r < ROUNDS; r++) {
1679       tmp = cbox_dec_k[r][0][(tmp >> 56) & 0xff]
1680           ^ cbox_dec_k[r][1][(tmp >> 48) & 0xff]
1681           ^ cbox_dec_k[r][2][(tmp >> 40) & 0xff]
1682           ^ cbox_dec_k[r][3][(tmp >> 32) & 0xff]
1683           ^ cbox_dec_k[r][4][(tmp >> 24) & 0xff]
1684           ^ cbox_dec_k[r][5][(tmp >> 16) & 0xff]
1685           ^ cbox_dec_k[r][6][(tmp >>  8) & 0xff]
1686           ^ cbox_dec_k[r][7][ tmp        & 0xff];
1687       }
1688 
1689       plaintext[0] = (unsigned char)((tmp >> 56) & 0xff);
1690       plaintext[1] = (unsigned char)((tmp >> 48) & 0xff);
1691       plaintext[2] = (unsigned char)((tmp >> 40) & 0xff);
1692       plaintext[3] = (unsigned char)((tmp >> 32) & 0xff);
1693       plaintext[4] = (unsigned char)((tmp >> 24) & 0xff);
1694       plaintext[5] = (unsigned char)((tmp >> 16) & 0xff);
1695       plaintext[6] = (unsigned char)((tmp >>  8) & 0xff);
1696       plaintext[7] = (unsigned char)((tmp      ) & 0xff);
1697 }
1698 
box_init(ddword * roundkey_enc,ddword * roundkey_dec)1699 void box_init(ddword *roundkey_enc, ddword *roundkey_dec)
1700 /*                                encryption   decryption
1701  * substitution                   sbox_enc     sbox_dec
1702  * linear diffusion               G            iG
1703  * matrix for linear transform    kappa        ikappa
1704  * exor-key                       K            K
1705  * whole operation                cbox_enc_k   cbox_dec_k
1706  *
1707  *  transform(kappa) = iG * kappa * G
1708  *  transform(K)     = iG * K
1709  *
1710  * encryption operation: (we take the following (!) key addition into cbox_enc)
1711  *  first R-1 rounds:
1712  *     cbox_enc(X) = kappa * G * sbox_enc(X) + K
1713  *  last round:
1714  *     cbox_enc(X) = transform(kappa) * sbox_enc(X) + transform(K)
1715  *                 = iG * kappa * G * sbox_enc(X) + iG * K
1716  *
1717  * decryption operation: (after reordening the operations)
1718  *  first R-1 rounds:
1719  *     cbox_dec(Y) = iG * ikappa * (sbox_dec(Y) + K)
1720  *  last round:
1721  *     cbox_dec(Y) = ikappa * (sbox_dec(Y) + K)
1722  */
1723 {
1724    unsigned char i, j, r, t, G_k[8][8];
1725    word k;
1726 
1727 /* encryption boxes
1728  */
1729 /* first ROUNDS - 1 rounds
1730  */
1731    for(r = 0; r < ROUNDS - 1; r++) {
1732       for(i = 0; i < 8; i++)
1733          for(j = 0; j < 8; j++)
1734             G_k[i][j] = mul(G[i][j],(unsigned char)(roundkey_enc[r+ROUNDS+2]>>(56-8*i)));
1735       for(j = 0; j < 8; j++)
1736          for(k = 0; k < 256; k++) {
1737             cbox_enc_k[r][j][k] = 0;
1738             for(i = 0; i < 8; i++)
1739                cbox_enc_k[r][j][k] = (cbox_enc_k[r][j][k] << 8) ^
1740                                          mul(sbox_enc[k],G_k[i][j]);
1741             }
1742       for(k = 0; k < 256; k++)
1743          cbox_enc_k[r][0][k] ^= roundkey_enc[r+1];
1744       }
1745 /* last round */
1746       for(i = 0; i < 8; i++)
1747          for(j = 0; j < 8; j++) {
1748             G_k[i][j] = 0;
1749             for(t = 0; t < 8; t++)
1750                G_k[i][j] ^=
1751                   mul(mul(iG[i][t],(unsigned char)(roundkey_enc[2*ROUNDS+1]>>(56-8*t))),
1752                       G[t][j]);
1753             }
1754       for(j = 0; j < 8; j++)
1755          for(k = 0; k < 256; k++) {
1756             cbox_enc_k[ROUNDS-1][j][k] = 0;
1757             for(i = 0; i < 8; i++)
1758                cbox_enc_k[ROUNDS-1][j][k] = (cbox_enc_k[ROUNDS-1][j][k] << 8) ^
1759                                          mul(sbox_enc[k],G_k[i][j]);
1760             }
1761       for(k = 0; k < 256; k++)
1762          cbox_enc_k[ROUNDS-1][0][k] ^= transform(roundkey_enc[ROUNDS]);
1763 
1764 
1765 /* decryption boxes
1766  */
1767 /* make the decryption keys
1768  */
1769    roundkey_dec[0] = transform(roundkey_enc[ROUNDS]);
1770    for(r = 1; r <= ROUNDS; r++)
1771       roundkey_dec[r] = roundkey_enc[ROUNDS-r];
1772    for(r = 0; r <= ROUNDS; r++)
1773       roundkey_dec[ROUNDS+1+r] = inverse(roundkey_enc[2*ROUNDS+1-r]);
1774 
1775 /* first key addition: seperate
1776  */
1777    for(i = 0; i < 8; i++)
1778       for(j = 0; j < 8; j++) {
1779          pG[i][j] = 0;
1780          for(t = 0; t < 8; t++)
1781             pG[i][j] ^=
1782                mul(mul(iG[i][t],(unsigned char)(roundkey_dec[ROUNDS+1]>>(56-8*t))),
1783                    G[t][j]);
1784          }
1785 /* first ROUNDS - 1 rounds
1786  */
1787    for(r = 0; r < ROUNDS - 1; r++) {
1788       for(i = 0; i < 8; i++)
1789          for(j = 0; j < 8; j++)
1790             G_k[i][j] = mul(iG[i][j],(unsigned char)(roundkey_dec[r+ROUNDS+2]>>(56-8*j)));
1791       for(j = 0; j < 8; j++)
1792          for(k = 0; k < 256; k++) {
1793             cbox_dec_k[r][j][k] = 0;
1794             for(i = 0; i < 8; i++)
1795                cbox_dec_k[r][j][k] = (cbox_dec_k[r][j][k] << 8) ^
1796                mul(sbox_dec[k] ^ (unsigned char)(roundkey_dec[r+1]>>(56-8*j)),G_k[i][j]);
1797             }
1798       }
1799 
1800 /* last round
1801  */
1802       for(i = 0; i < 8; i++)
1803          for(j = 0; j < 8; j++) {
1804             if (i != j) G_k[i][j] = 0;
1805             else G_k[i][i] = (unsigned char)(roundkey_dec[2*ROUNDS+1]>>(56-8*i));
1806             }
1807       for(j = 0; j < 8; j++)
1808          for(k = 0; k < 256; k++) {
1809             cbox_dec_k[ROUNDS-1][j][k] = 0;
1810             for(i = 0; i < 8; i++)
1811                cbox_dec_k[ROUNDS-1][j][k] = (cbox_dec_k[ROUNDS-1][j][k] << 8) ^
1812                mul(sbox_dec[k] ^ (unsigned char)(roundkey_dec[r+1]>>(56-8*i)),G_k[i][j]);
1813             }
1814 }
1815 
key_init(unsigned char * key,ddword roundkey_enc[ROUNDKEYS])1816 void key_init(unsigned char *key, ddword roundkey_enc[ROUNDKEYS])
1817 /* produce the conceptual encryption roundkeys,
1818  * without any reordening
1819  */
1820 {
1821    ddword tempkey[ROUNDS+1], a[ROUNDKEYS], tmp;
1822    unsigned char i, j, r, rr;
1823 
1824    /* read tempkey
1825     */
1826    for(r = 0; r <= ROUNDS; r++) {
1827       tempkey[r] = cbox_enc[0][r];
1828       }
1829    tempkey[ROUNDS] = transform(tempkey[ROUNDS]);
1830 
1831    /*  a = concatenation of key
1832     */
1833    i = 0;
1834    for(r = 0; r < ROUNDKEYS; r++) {
1835       a[r] = key[(i++)%KEYLENGTH];
1836       for(j = 1; j < 8; j++) {
1837          a[r] = (a[r] << 8) | key[(i++)%KEYLENGTH];
1838          }
1839       }
1840 
1841    /* conceptual roundkey_enc = SHARK_CFB(a,tempkey)
1842     * for r > ROUNDS, roundkey_enc[r] needs to have
1843     * a multiplicative inverse
1844     */
1845    roundkey_enc[0] = a[0] ^ encryption_key(0LL, tempkey);
1846    for(r = 1; r <= ROUNDS; r++)
1847       roundkey_enc[r] = a[r] ^ encryption_key(roundkey_enc[r-1], tempkey);
1848 
1849    r = rr = ROUNDS + 1;
1850    tmp = roundkey_enc[ROUNDS];
1851    while (rr < ROUNDKEYS) {
1852       tmp = a[rr++] ^ encryption_key(tmp, tempkey);
1853       if (invertible(tmp)) roundkey_enc[r++] = tmp;
1854       }
1855    while (r < ROUNDKEYS) {
1856       tmp = encryption_key(tmp, tempkey);
1857       if (invertible(tmp)) roundkey_enc[r++] = tmp;
1858       }
1859 }
1860 
main(void)1861 int main(void)
1862 {
1863     unsigned char key[KEYLENGTH], i;
1864     ddword roundkey_enc[ROUNDKEYS], roundkey_dec[ROUNDKEYS];
1865 
1866     unsigned char ciphertext[8];
1867     unsigned char plaintext2[8];
1868     unsigned char cplaintext1[8] = {
1869         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
1870     };
1871 
1872     init();
1873     for(i = 0; i < KEYLENGTH; i++) key[i] = i;
1874     key_init(key, roundkey_enc);
1875     box_init(roundkey_enc, roundkey_dec);
1876     printf("plaintext1 : ");
1877     for (i = 0; i < 8; i++) printf("%02x", cplaintext1[i]);
1878     printf("\n");
1879     encryption(cplaintext1,roundkey_enc, ciphertext);
1880     printf("ciphertext : ");
1881     for (i = 0; i < 8; i++) printf("%02x", ciphertext[i]);
1882     printf("\n");
1883     decryption(ciphertext, roundkey_dec, plaintext2);
1884     printf("plaintext2 : ");
1885     for (i = 0; i < 8; i++) printf("%02x", plaintext2[i]);
1886     printf("\n");
1887     return 0;
1888 }
1889