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