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