2 * Authors.....: Jens Steube <jens.steube@gmail.com>
3 * Gabriele Gristina <matrix@hashcat.net>
10 #include "include/constants.h"
11 #include "include/kernel_vendor.h"
18 #include "include/kernel_functions.c"
19 #include "OpenCL/types_ocl.c"
20 #include "OpenCL/common.c"
21 #include "include/rp_kernel.h"
22 #include "OpenCL/rp.c"
24 #define COMPARE_S "OpenCL/check_single_comp4.c"
25 #define COMPARE_M "OpenCL/check_multi_comp4.c"
29 #define BOX(S,n,i) (S)[(n)][(i)]
31 __constant u32 Ch[8][256] =
34 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
35 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
36 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
37 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
38 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
39 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
40 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
41 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
42 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
43 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
44 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
45 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
46 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
47 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
48 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
49 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
50 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
51 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
52 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
53 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
54 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
55 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
56 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
57 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
58 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
59 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
60 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
61 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
62 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
63 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
64 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
65 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
66 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
67 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
68 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
69 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
70 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
71 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
72 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
73 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
74 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
75 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
76 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
77 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
78 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
79 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
80 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
81 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
82 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
83 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
84 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
85 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
86 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
87 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
88 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
89 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
90 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
91 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
92 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
93 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
94 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
95 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
96 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
97 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
100 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
101 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
102 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
103 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
104 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
105 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
106 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
107 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
108 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
109 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
110 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
111 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
112 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
113 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
114 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
115 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
116 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
117 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
118 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
119 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
120 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
121 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
122 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
123 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
124 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
125 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
126 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
127 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
128 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
129 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
130 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
131 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
132 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
133 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
134 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
135 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
136 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
137 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
138 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
139 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
140 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
141 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
142 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
143 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
144 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
145 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
146 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
147 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
148 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
149 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
150 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
151 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
152 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
153 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
154 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
155 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
156 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
157 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
158 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
159 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
160 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
161 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
162 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
163 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
166 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
167 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
168 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
169 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
170 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
171 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
172 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
173 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
174 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
175 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
176 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
177 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
178 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
179 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
180 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
181 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
182 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
183 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
184 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
185 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
186 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
187 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
188 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
189 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
190 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
191 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
192 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
193 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
194 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
195 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
196 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
197 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
198 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
199 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
200 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
201 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
202 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
203 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
204 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
205 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
206 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
207 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
208 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
209 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
210 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
211 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
212 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
213 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
214 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
215 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
216 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
217 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
218 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
219 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
220 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
221 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
222 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
223 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
224 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
225 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
226 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
227 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
228 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
229 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
232 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
233 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
234 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
235 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
236 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
237 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
238 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
239 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
240 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
241 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
242 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
243 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
244 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
245 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
246 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
247 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
248 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
249 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
250 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
251 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
252 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
253 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
254 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
255 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
256 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
257 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
258 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
259 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
260 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
261 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
262 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
263 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
264 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
265 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
266 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
267 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
268 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
269 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
270 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
271 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
272 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
273 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
274 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
275 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
276 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
277 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
278 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
279 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
280 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
281 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
282 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
283 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
284 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
285 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
286 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
287 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
288 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
289 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
290 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
291 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
292 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
293 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
294 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
295 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
298 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
299 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
300 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
301 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
302 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
303 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
304 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
305 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
306 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
307 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
308 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
309 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
310 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
311 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
312 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
313 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
314 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
315 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
316 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
317 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
318 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
319 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
320 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
321 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
322 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
323 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
324 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
325 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
326 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
327 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
328 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
329 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
330 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
331 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
332 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
333 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
334 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
335 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
336 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
337 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
338 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
339 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
340 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
341 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
342 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
343 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
344 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
345 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
346 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
347 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
348 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
349 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
350 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
351 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
352 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
353 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
354 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
355 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
356 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
357 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
358 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
359 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
360 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
361 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
364 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
365 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
366 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
367 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
368 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
369 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
370 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
371 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
372 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
373 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
374 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
375 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
376 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
377 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
378 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
379 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
380 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
381 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
382 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
383 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
384 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
385 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
386 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
387 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
388 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
389 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
390 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
391 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
392 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
393 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
394 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
395 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
396 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
397 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
398 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
399 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
400 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
401 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
402 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
403 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
404 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
405 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
406 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
407 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
408 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
409 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
410 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
411 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
412 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
413 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
414 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
415 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
416 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
417 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
418 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
419 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
420 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
421 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
422 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
423 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
424 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
425 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
426 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
427 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
430 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
431 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
432 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
433 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
434 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
435 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
436 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
437 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
438 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
439 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
440 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
441 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
442 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
443 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
444 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
445 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
446 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
447 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
448 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
449 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
450 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
451 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
452 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
453 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
454 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
455 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
456 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
457 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
458 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
459 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
460 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
461 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
462 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
463 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
464 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
465 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
466 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
467 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
468 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
469 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
470 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
471 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
472 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
473 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
474 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
475 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
476 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
477 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
478 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
479 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
480 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
481 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
482 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
483 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
484 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
485 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
486 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
487 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
488 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
489 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
490 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
491 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
492 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
493 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
496 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
497 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
498 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
499 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
500 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
501 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
502 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
503 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
504 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
505 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
506 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
507 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
508 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
509 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
510 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
511 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
512 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
513 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
514 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
515 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
516 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
517 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
518 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
519 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
520 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
521 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
522 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
523 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
524 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
525 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
526 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
527 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
528 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
529 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
530 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
531 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
532 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
533 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
534 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
535 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
536 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
537 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
538 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
539 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
540 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
541 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
542 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
543 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
544 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
545 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
546 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
547 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
548 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
549 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
550 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
551 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
552 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
553 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
554 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
555 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
556 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
557 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
558 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
559 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
563 __constant u32 Cl[8][256] =
566 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
567 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
568 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
569 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
570 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
571 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
572 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
573 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
574 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
575 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
576 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
577 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
578 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
579 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
580 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
581 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
582 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
583 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
584 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
585 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
586 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
587 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
588 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
589 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
590 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
591 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
592 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
593 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
594 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
595 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
596 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
597 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
598 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
599 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
600 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
601 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
602 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
603 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
604 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
605 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
606 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
607 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
608 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
609 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
610 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
611 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
612 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
613 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
614 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
615 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
616 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
617 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
618 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
619 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
620 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
621 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
622 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
623 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
624 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
625 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
626 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
627 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
628 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
629 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
632 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
633 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
634 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
635 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
636 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
637 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
638 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
639 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
640 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
641 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
642 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
643 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
644 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
645 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
646 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
647 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
648 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
649 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
650 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
651 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
652 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
653 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
654 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
655 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
656 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
657 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
658 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
659 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
660 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
661 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
662 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
663 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
664 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
665 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
666 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
667 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
668 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
669 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
670 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
671 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
672 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
673 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
674 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
675 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
676 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
677 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
678 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
679 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
680 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
681 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
682 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
683 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
684 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
685 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
686 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
687 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
688 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
689 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
690 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
691 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
692 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
693 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
694 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
695 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
698 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
699 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
700 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
701 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
702 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
703 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
704 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
705 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
706 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
707 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
708 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
709 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
710 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
711 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
712 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
713 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
714 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
715 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
716 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
717 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
718 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
719 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
720 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
721 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
722 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
723 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
724 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
725 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
726 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
727 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
728 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
729 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
730 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
731 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
732 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
733 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
734 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
735 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
736 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
737 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
738 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
739 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
740 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
741 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
742 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
743 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
744 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
745 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
746 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
747 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
748 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
749 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
750 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
751 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
752 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
753 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
754 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
755 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
756 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
757 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
758 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
759 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
760 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
761 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
764 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
765 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
766 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
767 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
768 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
769 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
770 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
771 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
772 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
773 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
774 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
775 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
776 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
777 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
778 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
779 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
780 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
781 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
782 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
783 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
784 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
785 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
786 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
787 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
788 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
789 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
790 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
791 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
792 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
793 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
794 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
795 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
796 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
797 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
798 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
799 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
800 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
801 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
802 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
803 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
804 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
805 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
806 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
807 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
808 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
809 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
810 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
811 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
812 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
813 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
814 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
815 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
816 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
817 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
818 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
819 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
820 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
821 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
822 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
823 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
824 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
825 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
826 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
827 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
830 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
831 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
832 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
833 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
834 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
835 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
836 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
837 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
838 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
839 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
840 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
841 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
842 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
843 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
844 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
845 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
846 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
847 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
848 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
849 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
850 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
851 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
852 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
853 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
854 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
855 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
856 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
857 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
858 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
859 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
860 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
861 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
862 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
863 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
864 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
865 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
866 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
867 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
868 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
869 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
870 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
871 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
872 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
873 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
874 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
875 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
876 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
877 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
878 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
879 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
880 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
881 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
882 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
883 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
884 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
885 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
886 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
887 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
888 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
889 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
890 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
891 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
892 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
893 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
896 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
897 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
898 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
899 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
900 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
901 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
902 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
903 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
904 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
905 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
906 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
907 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
908 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
909 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
910 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
911 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
912 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
913 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
914 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
915 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
916 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
917 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
918 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
919 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
920 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
921 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
922 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
923 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
924 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
925 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
926 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
927 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
928 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
929 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
930 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
931 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
932 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
933 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
934 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
935 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
936 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
937 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
938 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
939 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
940 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
941 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
942 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
943 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
944 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
945 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
946 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
947 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
948 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
949 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
950 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
951 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
952 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
953 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
954 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
955 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
956 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
957 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
958 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
959 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
962 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
963 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
964 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
965 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
966 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
967 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
968 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
969 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
970 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
971 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
972 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
973 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
974 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
975 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
976 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
977 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
978 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
979 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
980 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
981 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
982 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
983 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
984 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
985 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
986 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
987 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
988 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
989 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
990 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
991 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
992 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
993 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
994 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
995 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
996 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
997 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
998 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
999 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
1000 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
1001 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
1002 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
1003 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
1004 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
1005 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
1006 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
1007 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
1008 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
1009 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
1010 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
1011 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
1012 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
1013 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
1014 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
1015 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
1016 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
1017 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
1018 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
1019 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
1020 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
1021 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
1022 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
1023 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
1024 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
1025 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
1028 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
1029 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
1030 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
1031 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
1032 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
1033 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
1034 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
1035 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
1036 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
1037 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
1038 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
1039 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
1040 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
1041 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
1042 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
1043 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
1044 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
1045 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
1046 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
1047 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
1048 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
1049 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
1050 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
1051 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
1052 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
1053 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
1054 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
1055 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
1056 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
1057 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
1058 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
1059 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
1060 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
1061 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
1062 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
1063 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
1064 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
1065 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
1066 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
1067 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
1068 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
1069 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
1070 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
1071 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
1072 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
1073 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
1074 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
1075 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
1076 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
1077 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
1078 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
1079 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
1080 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
1081 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
1082 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
1083 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
1084 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
1085 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
1086 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
1087 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
1088 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
1089 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
1090 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
1091 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
1095 __constant u32 rch[R + 1] =
1110 __constant u32 rcl[R + 1] =
1125 // this is a highly optimized that assumes dgst[16] = { 0 }; only reuse of no 2nd transform is needed
1127 static void whirlpool_transform (const u32 w[16], u32 dgst[16], __local u32 (*s_Ch)[256], __local u32 (*s_Cl)[256])
1173 for (int i = 0; i < 8; i++)
1175 const u32 Lp0 = stateh[(i + 8) & 7] >> 24;
1176 const u32 Lp1 = stateh[(i + 7) & 7] >> 16;
1177 const u32 Lp2 = stateh[(i + 6) & 7] >> 8;
1178 const u32 Lp3 = stateh[(i + 5) & 7] >> 0;
1179 const u32 Lp4 = statel[(i + 4) & 7] >> 24;
1180 const u32 Lp5 = statel[(i + 3) & 7] >> 16;
1181 const u32 Lp6 = statel[(i + 2) & 7] >> 8;
1182 const u32 Lp7 = statel[(i + 1) & 7] >> 0;
1184 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1185 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1186 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1187 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1188 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1189 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1190 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1191 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1193 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1194 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1195 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1196 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1197 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1198 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1199 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1200 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1203 stateh[0] = Lh[0] ^ Kh[0];
1204 statel[0] = Ll[0] ^ Kl[0];
1205 stateh[1] = Lh[1] ^ Kh[1];
1206 statel[1] = Ll[1] ^ Kl[1];
1207 stateh[2] = Lh[2] ^ Kh[2];
1208 statel[2] = Ll[2] ^ Kl[2];
1209 stateh[3] = Lh[3] ^ Kh[3];
1210 statel[3] = Ll[3] ^ Kl[3];
1211 stateh[4] = Lh[4] ^ Kh[4];
1212 statel[4] = Ll[4] ^ Kl[4];
1213 stateh[5] = Lh[5] ^ Kh[5];
1214 statel[5] = Ll[5] ^ Kl[5];
1215 stateh[6] = Lh[6] ^ Kh[6];
1216 statel[6] = Ll[6] ^ Kl[6];
1217 stateh[7] = Lh[7] ^ Kh[7];
1218 statel[7] = Ll[7] ^ Kl[7];
1220 for (int r = 2; r <= R; r++)
1226 for (int i = 0; i < 8; i++)
1228 const u32 Lp0 = Kh[(i + 8) & 7] >> 24;
1229 const u32 Lp1 = Kh[(i + 7) & 7] >> 16;
1230 const u32 Lp2 = Kh[(i + 6) & 7] >> 8;
1231 const u32 Lp3 = Kh[(i + 5) & 7] >> 0;
1232 const u32 Lp4 = Kl[(i + 4) & 7] >> 24;
1233 const u32 Lp5 = Kl[(i + 3) & 7] >> 16;
1234 const u32 Lp6 = Kl[(i + 2) & 7] >> 8;
1235 const u32 Lp7 = Kl[(i + 1) & 7] >> 0;
1237 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1238 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1239 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1240 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1241 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1242 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1243 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1244 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1246 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1247 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1248 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1249 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1250 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1251 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1252 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1253 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1256 Kh[0] = Lh[0] ^ rch[r];
1257 Kl[0] = Ll[0] ^ rcl[r];
1274 for (int i = 0; i < 8; i++)
1276 const u32 Lp0 = stateh[(i + 8) & 7] >> 24;
1277 const u32 Lp1 = stateh[(i + 7) & 7] >> 16;
1278 const u32 Lp2 = stateh[(i + 6) & 7] >> 8;
1279 const u32 Lp3 = stateh[(i + 5) & 7] >> 0;
1280 const u32 Lp4 = statel[(i + 4) & 7] >> 24;
1281 const u32 Lp5 = statel[(i + 3) & 7] >> 16;
1282 const u32 Lp6 = statel[(i + 2) & 7] >> 8;
1283 const u32 Lp7 = statel[(i + 1) & 7] >> 0;
1285 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1286 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1287 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1288 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1289 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1290 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1291 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1292 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1294 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1295 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1296 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1297 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1298 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1299 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1300 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1301 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1304 stateh[0] = Lh[0] ^ Kh[0];
1305 statel[0] = Ll[0] ^ Kl[0];
1306 stateh[1] = Lh[1] ^ Kh[1];
1307 statel[1] = Ll[1] ^ Kl[1];
1308 stateh[2] = Lh[2] ^ Kh[2];
1309 statel[2] = Ll[2] ^ Kl[2];
1310 stateh[3] = Lh[3] ^ Kh[3];
1311 statel[3] = Ll[3] ^ Kl[3];
1312 stateh[4] = Lh[4] ^ Kh[4];
1313 statel[4] = Ll[4] ^ Kl[4];
1314 stateh[5] = Lh[5] ^ Kh[5];
1315 statel[5] = Ll[5] ^ Kl[5];
1316 stateh[6] = Lh[6] ^ Kh[6];
1317 statel[6] = Ll[6] ^ Kl[6];
1318 stateh[7] = Lh[7] ^ Kh[7];
1319 statel[7] = Ll[7] ^ Kl[7];
1322 dgst[ 0] = stateh[0] ^ w[ 0];
1323 dgst[ 1] = statel[0] ^ w[ 1];
1324 dgst[ 2] = stateh[1] ^ w[ 2];
1325 dgst[ 3] = statel[1] ^ w[ 3];
1326 dgst[ 4] = stateh[2] ^ w[ 4];
1327 dgst[ 5] = statel[2] ^ w[ 5];
1328 dgst[ 6] = stateh[3] ^ w[ 6];
1329 dgst[ 7] = statel[3] ^ w[ 7];
1330 dgst[ 8] = stateh[4] ^ w[ 8];
1331 dgst[ 9] = statel[4] ^ w[ 9];
1332 dgst[10] = stateh[5] ^ w[10];
1333 dgst[11] = statel[5] ^ w[11];
1334 dgst[12] = stateh[6] ^ w[12];
1335 dgst[13] = statel[6] ^ w[13];
1336 dgst[14] = stateh[7] ^ w[14];
1337 dgst[15] = statel[7] ^ w[15];
1340 __kernel void m06100_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1346 const u32 gid = get_global_id (0);
1347 const u32 lid = get_local_id (0);
1348 const u32 lsz = get_local_size (0);
1354 __local u32 s_Ch[8][256];
1355 __local u32 s_Cl[8][256];
1357 for (u32 i = lid; i < 256; i += lsz)
1359 s_Ch[0][i] = Ch[0][i];
1360 s_Ch[1][i] = Ch[1][i];
1361 s_Ch[2][i] = Ch[2][i];
1362 s_Ch[3][i] = Ch[3][i];
1363 s_Ch[4][i] = Ch[4][i];
1364 s_Ch[5][i] = Ch[5][i];
1365 s_Ch[6][i] = Ch[6][i];
1366 s_Ch[7][i] = Ch[7][i];
1368 s_Cl[0][i] = Cl[0][i];
1369 s_Cl[1][i] = Cl[1][i];
1370 s_Cl[2][i] = Cl[2][i];
1371 s_Cl[3][i] = Cl[3][i];
1372 s_Cl[4][i] = Cl[4][i];
1373 s_Cl[5][i] = Cl[5][i];
1374 s_Cl[6][i] = Cl[6][i];
1375 s_Cl[7][i] = Cl[7][i];
1378 barrier (CLK_LOCAL_MEM_FENCE);
1380 if (gid >= gid_max) return;
1388 pw_buf0[0] = pws[gid].i[ 0];
1389 pw_buf0[1] = pws[gid].i[ 1];
1390 pw_buf0[2] = pws[gid].i[ 2];
1391 pw_buf0[3] = pws[gid].i[ 3];
1395 pw_buf1[0] = pws[gid].i[ 4];
1396 pw_buf1[1] = pws[gid].i[ 5];
1397 pw_buf1[2] = pws[gid].i[ 6];
1398 pw_buf1[3] = pws[gid].i[ 7];
1400 const u32 pw_len = pws[gid].pw_len;
1406 for (u32 il_pos = 0; il_pos < rules_cnt; il_pos++)
1436 const u32 out_len = apply_rules (rules_buf[il_pos].cmds, w0, w1, pw_len);
1438 append_0x80_2x4 (w0, w1, out_len);
1442 wl[ 0] = swap32 (w0[0]);
1443 wl[ 1] = swap32 (w0[1]);
1444 wl[ 2] = swap32 (w0[2]);
1445 wl[ 3] = swap32 (w0[3]);
1446 wl[ 4] = swap32 (w1[0]);
1447 wl[ 5] = swap32 (w1[1]);
1448 wl[ 6] = swap32 (w1[2]);
1449 wl[ 7] = swap32 (w1[3]);
1457 wl[15] = out_len * 8;
1478 whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1480 const u32 r0 = dgst[0];
1481 const u32 r1 = dgst[1];
1482 const u32 r2 = dgst[2];
1483 const u32 r3 = dgst[3];
1489 __kernel void m06100_m08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 combs_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1493 __kernel void m06100_m16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 combs_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1497 __kernel void m06100_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 rules_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1503 const u32 gid = get_global_id (0);
1504 const u32 lid = get_local_id (0);
1505 const u32 lsz = get_local_size (0);
1511 __local u32 s_Ch[8][256];
1512 __local u32 s_Cl[8][256];
1514 for (u32 i = lid; i < 256; i += lsz)
1516 s_Ch[0][i] = Ch[0][i];
1517 s_Ch[1][i] = Ch[1][i];
1518 s_Ch[2][i] = Ch[2][i];
1519 s_Ch[3][i] = Ch[3][i];
1520 s_Ch[4][i] = Ch[4][i];
1521 s_Ch[5][i] = Ch[5][i];
1522 s_Ch[6][i] = Ch[6][i];
1523 s_Ch[7][i] = Ch[7][i];
1525 s_Cl[0][i] = Cl[0][i];
1526 s_Cl[1][i] = Cl[1][i];
1527 s_Cl[2][i] = Cl[2][i];
1528 s_Cl[3][i] = Cl[3][i];
1529 s_Cl[4][i] = Cl[4][i];
1530 s_Cl[5][i] = Cl[5][i];
1531 s_Cl[6][i] = Cl[6][i];
1532 s_Cl[7][i] = Cl[7][i];
1535 barrier (CLK_LOCAL_MEM_FENCE);
1537 if (gid >= gid_max) return;
1545 pw_buf0[0] = pws[gid].i[ 0];
1546 pw_buf0[1] = pws[gid].i[ 1];
1547 pw_buf0[2] = pws[gid].i[ 2];
1548 pw_buf0[3] = pws[gid].i[ 3];
1552 pw_buf1[0] = pws[gid].i[ 4];
1553 pw_buf1[1] = pws[gid].i[ 5];
1554 pw_buf1[2] = pws[gid].i[ 6];
1555 pw_buf1[3] = pws[gid].i[ 7];
1557 const u32 pw_len = pws[gid].pw_len;
1563 const u32 search[4] =
1565 digests_buf[digests_offset].digest_buf[DGST_R0],
1566 digests_buf[digests_offset].digest_buf[DGST_R1],
1567 digests_buf[digests_offset].digest_buf[DGST_R2],
1568 digests_buf[digests_offset].digest_buf[DGST_R3]
1575 for (u32 il_pos = 0; il_pos < rules_cnt; il_pos++)
1605 const u32 out_len = apply_rules (rules_buf[il_pos].cmds, w0, w1, pw_len);
1607 append_0x80_2x4 (w0, w1, out_len);
1611 wl[ 0] = swap32 (w0[0]);
1612 wl[ 1] = swap32 (w0[1]);
1613 wl[ 2] = swap32 (w0[2]);
1614 wl[ 3] = swap32 (w0[3]);
1615 wl[ 4] = swap32 (w1[0]);
1616 wl[ 5] = swap32 (w1[1]);
1617 wl[ 6] = swap32 (w1[2]);
1618 wl[ 7] = swap32 (w1[3]);
1626 wl[15] = out_len * 8;
1647 whirlpool_transform (wl, dgst, s_Ch, s_Cl);
1649 const u32 r0 = dgst[0];
1650 const u32 r1 = dgst[1];
1651 const u32 r2 = dgst[2];
1652 const u32 r3 = dgst[3];
1658 __kernel void m06100_s08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 combs_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1662 __kernel void m06100_s16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 combs_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)