Ruby  2.5.0dev(2017-10-22revision60238)
des_tables.c
Go to the documentation of this file.
1 #ifndef HAVE_DES_TABLES
2 
3 /* Initial key schedule permutation */
4 static const C_block PC1ROT[64/CHUNKBITS][1<<CHUNKBITS] = {
5  {
6  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
7  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
8  {{ 0, 0, 1, 0, 0, 0, 0, 0,}},
9  {{ 0, 0, 1, 0, 0, 0, 0, 0,}},
10  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
11  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
12  {{ 0, 0, 1, 1, 0, 0, 0, 0,}},
13  {{ 0, 0, 1, 1, 0, 0, 0, 0,}},
14  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
15  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
16  {{ 0, 0, 1, 0, 0, 16, 0, 0,}},
17  {{ 0, 0, 1, 0, 0, 16, 0, 0,}},
18  {{ 0, 0, 0, 1, 0, 16, 0, 0,}},
19  {{ 0, 0, 0, 1, 0, 16, 0, 0,}},
20  {{ 0, 0, 1, 1, 0, 16, 0, 0,}},
21  {{ 0, 0, 1, 1, 0, 16, 0, 0,}},
22  },
23  {
24  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
25  {{ 0, 0, 0, 0,128, 0, 0, 0,}},
26  {{ 0, 0, 4, 0, 0, 0, 0, 0,}},
27  {{ 0, 0, 4, 0,128, 0, 0, 0,}},
28  {{ 0, 16, 0, 0, 0, 0, 0, 0,}},
29  {{ 0, 16, 0, 0,128, 0, 0, 0,}},
30  {{ 0, 16, 4, 0, 0, 0, 0, 0,}},
31  {{ 0, 16, 4, 0,128, 0, 0, 0,}},
32  {{ 0, 0, 0, 8, 0, 0, 0, 0,}},
33  {{ 0, 0, 0, 8,128, 0, 0, 0,}},
34  {{ 0, 0, 4, 8, 0, 0, 0, 0,}},
35  {{ 0, 0, 4, 8,128, 0, 0, 0,}},
36  {{ 0, 16, 0, 8, 0, 0, 0, 0,}},
37  {{ 0, 16, 0, 8,128, 0, 0, 0,}},
38  {{ 0, 16, 4, 8, 0, 0, 0, 0,}},
39  {{ 0, 16, 4, 8,128, 0, 0, 0,}},
40  },
41  {
42  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
43  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
44  {{ 0, 0, 0, 0, 0, 0, 64, 0,}},
45  {{ 0, 0, 0, 0, 0, 0, 64, 0,}},
46  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
47  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
48  {{ 0, 0, 0, 0, 0, 0, 64, 8,}},
49  {{ 0, 0, 0, 0, 0, 0, 64, 8,}},
50  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
51  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
52  {{ 0, 0, 0, 0, 0, 0, 64, 16,}},
53  {{ 0, 0, 0, 0, 0, 0, 64, 16,}},
54  {{ 0, 0, 0, 0, 0, 0, 0, 24,}},
55  {{ 0, 0, 0, 0, 0, 0, 0, 24,}},
56  {{ 0, 0, 0, 0, 0, 0, 64, 24,}},
57  {{ 0, 0, 0, 0, 0, 0, 64, 24,}},
58  },
59  {
60  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
61  {{ 0, 0, 0, 2, 0, 0, 0, 0,}},
62  {{ 0, 1, 0, 0, 0, 0, 0, 0,}},
63  {{ 0, 1, 0, 2, 0, 0, 0, 0,}},
64  {{ 4, 0, 0, 0, 0, 0, 0, 0,}},
65  {{ 4, 0, 0, 2, 0, 0, 0, 0,}},
66  {{ 4, 1, 0, 0, 0, 0, 0, 0,}},
67  {{ 4, 1, 0, 2, 0, 0, 0, 0,}},
68  {{ 0, 32, 0, 0, 0, 0, 0, 0,}},
69  {{ 0, 32, 0, 2, 0, 0, 0, 0,}},
70  {{ 0, 33, 0, 0, 0, 0, 0, 0,}},
71  {{ 0, 33, 0, 2, 0, 0, 0, 0,}},
72  {{ 4, 32, 0, 0, 0, 0, 0, 0,}},
73  {{ 4, 32, 0, 2, 0, 0, 0, 0,}},
74  {{ 4, 33, 0, 0, 0, 0, 0, 0,}},
75  {{ 4, 33, 0, 2, 0, 0, 0, 0,}},
76  },
77  {
78  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
79  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
80  {{ 0, 0, 0, 0, 0, 64, 0, 0,}},
81  {{ 0, 0, 0, 0, 0, 64, 0, 0,}},
82  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
83  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
84  {{ 0, 0, 0, 0, 4, 64, 0, 0,}},
85  {{ 0, 0, 0, 0, 4, 64, 0, 0,}},
86  {{ 0, 0, 0, 0, 0, 0, 8, 0,}},
87  {{ 0, 0, 0, 0, 0, 0, 8, 0,}},
88  {{ 0, 0, 0, 0, 0, 64, 8, 0,}},
89  {{ 0, 0, 0, 0, 0, 64, 8, 0,}},
90  {{ 0, 0, 0, 0, 4, 0, 8, 0,}},
91  {{ 0, 0, 0, 0, 4, 0, 8, 0,}},
92  {{ 0, 0, 0, 0, 4, 64, 8, 0,}},
93  {{ 0, 0, 0, 0, 4, 64, 8, 0,}},
94  },
95  {
96  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
97  {{ 0, 0, 0, 0, 0, 0,128, 0,}},
98  {{ 0, 64, 0, 0, 0, 0, 0, 0,}},
99  {{ 0, 64, 0, 0, 0, 0,128, 0,}},
100  {{ 0, 0, 0, 64, 0, 0, 0, 0,}},
101  {{ 0, 0, 0, 64, 0, 0,128, 0,}},
102  {{ 0, 64, 0, 64, 0, 0, 0, 0,}},
103  {{ 0, 64, 0, 64, 0, 0,128, 0,}},
104  {{128, 0, 0, 0, 0, 0, 0, 0,}},
105  {{128, 0, 0, 0, 0, 0,128, 0,}},
106  {{128, 64, 0, 0, 0, 0, 0, 0,}},
107  {{128, 64, 0, 0, 0, 0,128, 0,}},
108  {{128, 0, 0, 64, 0, 0, 0, 0,}},
109  {{128, 0, 0, 64, 0, 0,128, 0,}},
110  {{128, 64, 0, 64, 0, 0, 0, 0,}},
111  {{128, 64, 0, 64, 0, 0,128, 0,}},
112  },
113  {
114  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
115  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
116  {{ 0, 0, 0, 0, 0, 0, 0,128,}},
117  {{ 0, 0, 0, 0, 0, 0, 0,128,}},
118  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
119  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
120  {{ 0, 0, 0, 0, 0, 8, 0,128,}},
121  {{ 0, 0, 0, 0, 0, 8, 0,128,}},
122  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
123  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
124  {{ 0, 0, 0, 0, 0,128, 0,128,}},
125  {{ 0, 0, 0, 0, 0,128, 0,128,}},
126  {{ 0, 0, 0, 0, 0,136, 0, 0,}},
127  {{ 0, 0, 0, 0, 0,136, 0, 0,}},
128  {{ 0, 0, 0, 0, 0,136, 0,128,}},
129  {{ 0, 0, 0, 0, 0,136, 0,128,}},
130  },
131  {
132  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
133  {{ 0, 0, 0, 0, 8, 0, 0, 0,}},
134  {{ 0, 0, 0, 32, 0, 0, 0, 0,}},
135  {{ 0, 0, 0, 32, 8, 0, 0, 0,}},
136  {{ 0, 0, 16, 0, 0, 0, 0, 0,}},
137  {{ 0, 0, 16, 0, 8, 0, 0, 0,}},
138  {{ 0, 0, 16, 32, 0, 0, 0, 0,}},
139  {{ 0, 0, 16, 32, 8, 0, 0, 0,}},
140  {{ 0, 0, 32, 0, 0, 0, 0, 0,}},
141  {{ 0, 0, 32, 0, 8, 0, 0, 0,}},
142  {{ 0, 0, 32, 32, 0, 0, 0, 0,}},
143  {{ 0, 0, 32, 32, 8, 0, 0, 0,}},
144  {{ 0, 0, 48, 0, 0, 0, 0, 0,}},
145  {{ 0, 0, 48, 0, 8, 0, 0, 0,}},
146  {{ 0, 0, 48, 32, 0, 0, 0, 0,}},
147  {{ 0, 0, 48, 32, 8, 0, 0, 0,}},
148  },
149  {
150  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
151  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
152  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
153  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
154  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
155  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
156  {{ 0, 0, 0, 0, 16, 0, 16, 0,}},
157  {{ 0, 0, 0, 0, 16, 0, 16, 0,}},
158  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
159  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
160  {{ 0, 0, 0, 0, 80, 0, 0, 0,}},
161  {{ 0, 0, 0, 0, 80, 0, 0, 0,}},
162  {{ 0, 0, 0, 0, 64, 0, 16, 0,}},
163  {{ 0, 0, 0, 0, 64, 0, 16, 0,}},
164  {{ 0, 0, 0, 0, 80, 0, 16, 0,}},
165  {{ 0, 0, 0, 0, 80, 0, 16, 0,}},
166  },
167  {
168  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
169  {{ 0, 0, 0, 16, 0, 0, 0, 0,}},
170  {{ 0, 0, 8, 0, 0, 0, 0, 0,}},
171  {{ 0, 0, 8, 16, 0, 0, 0, 0,}},
172  {{ 16, 0, 0, 0, 0, 0, 0, 0,}},
173  {{ 16, 0, 0, 16, 0, 0, 0, 0,}},
174  {{ 16, 0, 8, 0, 0, 0, 0, 0,}},
175  {{ 16, 0, 8, 16, 0, 0, 0, 0,}},
176  {{ 0, 4, 0, 0, 0, 0, 0, 0,}},
177  {{ 0, 4, 0, 16, 0, 0, 0, 0,}},
178  {{ 0, 4, 8, 0, 0, 0, 0, 0,}},
179  {{ 0, 4, 8, 16, 0, 0, 0, 0,}},
180  {{ 16, 4, 0, 0, 0, 0, 0, 0,}},
181  {{ 16, 4, 0, 16, 0, 0, 0, 0,}},
182  {{ 16, 4, 8, 0, 0, 0, 0, 0,}},
183  {{ 16, 4, 8, 16, 0, 0, 0, 0,}},
184  },
185  {
186  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
187  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
188  {{ 0, 0, 0, 0, 0, 4, 0, 0,}},
189  {{ 0, 0, 0, 0, 0, 4, 0, 0,}},
190  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
191  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
192  {{ 0, 0, 2, 0, 0, 4, 0, 0,}},
193  {{ 0, 0, 2, 0, 0, 4, 0, 0,}},
194  {{ 0, 0, 0, 0, 0, 0, 0, 4,}},
195  {{ 0, 0, 0, 0, 0, 0, 0, 4,}},
196  {{ 0, 0, 0, 0, 0, 4, 0, 4,}},
197  {{ 0, 0, 0, 0, 0, 4, 0, 4,}},
198  {{ 0, 0, 2, 0, 0, 0, 0, 4,}},
199  {{ 0, 0, 2, 0, 0, 0, 0, 4,}},
200  {{ 0, 0, 2, 0, 0, 4, 0, 4,}},
201  {{ 0, 0, 2, 0, 0, 4, 0, 4,}},
202  },
203  {
204  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
205  {{ 0, 0, 64, 0, 0, 0, 0, 0,}},
206  {{ 2, 0, 0, 0, 0, 0, 0, 0,}},
207  {{ 2, 0, 64, 0, 0, 0, 0, 0,}},
208  {{ 0,128, 0, 0, 0, 0, 0, 0,}},
209  {{ 0,128, 64, 0, 0, 0, 0, 0,}},
210  {{ 2,128, 0, 0, 0, 0, 0, 0,}},
211  {{ 2,128, 64, 0, 0, 0, 0, 0,}},
212  {{ 0, 0, 0,128, 0, 0, 0, 0,}},
213  {{ 0, 0, 64,128, 0, 0, 0, 0,}},
214  {{ 2, 0, 0,128, 0, 0, 0, 0,}},
215  {{ 2, 0, 64,128, 0, 0, 0, 0,}},
216  {{ 0,128, 0,128, 0, 0, 0, 0,}},
217  {{ 0,128, 64,128, 0, 0, 0, 0,}},
218  {{ 2,128, 0,128, 0, 0, 0, 0,}},
219  {{ 2,128, 64,128, 0, 0, 0, 0,}},
220  },
221  {
222  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
223  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
224  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
225  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
226  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
227  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
228  {{ 0, 0, 0, 0, 32, 0, 0, 64,}},
229  {{ 0, 0, 0, 0, 32, 0, 0, 64,}},
230  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
231  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
232  {{ 0, 0, 0, 0, 0, 32, 0, 64,}},
233  {{ 0, 0, 0, 0, 0, 32, 0, 64,}},
234  {{ 0, 0, 0, 0, 32, 32, 0, 0,}},
235  {{ 0, 0, 0, 0, 32, 32, 0, 0,}},
236  {{ 0, 0, 0, 0, 32, 32, 0, 64,}},
237  {{ 0, 0, 0, 0, 32, 32, 0, 64,}},
238  },
239  {
240  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
241  {{ 0, 2, 0, 0, 0, 0, 0, 0,}},
242  {{ 8, 0, 0, 0, 0, 0, 0, 0,}},
243  {{ 8, 2, 0, 0, 0, 0, 0, 0,}},
244  {{ 1, 0, 0, 0, 0, 0, 0, 0,}},
245  {{ 1, 2, 0, 0, 0, 0, 0, 0,}},
246  {{ 9, 0, 0, 0, 0, 0, 0, 0,}},
247  {{ 9, 2, 0, 0, 0, 0, 0, 0,}},
248  {{ 64, 0, 0, 0, 0, 0, 0, 0,}},
249  {{ 64, 2, 0, 0, 0, 0, 0, 0,}},
250  {{ 72, 0, 0, 0, 0, 0, 0, 0,}},
251  {{ 72, 2, 0, 0, 0, 0, 0, 0,}},
252  {{ 65, 0, 0, 0, 0, 0, 0, 0,}},
253  {{ 65, 2, 0, 0, 0, 0, 0, 0,}},
254  {{ 73, 0, 0, 0, 0, 0, 0, 0,}},
255  {{ 73, 2, 0, 0, 0, 0, 0, 0,}},
256  },
257  {
258  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
259  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
260  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
261  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
262  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
263  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
264  {{ 0, 0, 0, 0, 0, 0, 32, 32,}},
265  {{ 0, 0, 0, 0, 0, 0, 32, 32,}},
266  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
267  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
268  {{ 0, 0, 0, 0, 0, 0, 36, 0,}},
269  {{ 0, 0, 0, 0, 0, 0, 36, 0,}},
270  {{ 0, 0, 0, 0, 0, 0, 4, 32,}},
271  {{ 0, 0, 0, 0, 0, 0, 4, 32,}},
272  {{ 0, 0, 0, 0, 0, 0, 36, 32,}},
273  {{ 0, 0, 0, 0, 0, 0, 36, 32,}},
274  },
275  {
276  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
277  {{ 32, 0, 0, 0, 0, 0, 0, 0,}},
278  {{ 0, 0, 0, 4, 0, 0, 0, 0,}},
279  {{ 32, 0, 0, 4, 0, 0, 0, 0,}},
280  {{ 0, 0,128, 0, 0, 0, 0, 0,}},
281  {{ 32, 0,128, 0, 0, 0, 0, 0,}},
282  {{ 0, 0,128, 4, 0, 0, 0, 0,}},
283  {{ 32, 0,128, 4, 0, 0, 0, 0,}},
284  {{ 0, 8, 0, 0, 0, 0, 0, 0,}},
285  {{ 32, 8, 0, 0, 0, 0, 0, 0,}},
286  {{ 0, 8, 0, 4, 0, 0, 0, 0,}},
287  {{ 32, 8, 0, 4, 0, 0, 0, 0,}},
288  {{ 0, 8,128, 0, 0, 0, 0, 0,}},
289  {{ 32, 8,128, 0, 0, 0, 0, 0,}},
290  {{ 0, 8,128, 4, 0, 0, 0, 0,}},
291  {{ 32, 8,128, 4, 0, 0, 0, 0,}},
292  },
293 };
294 
295 /* Subsequent key schedule rotation permutations */
296 static const C_block PC2ROT[2][64/CHUNKBITS][1<<CHUNKBITS] = {
297  {
298  {
299  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
300  {{ 0, 0,128, 0, 0, 0, 0, 0,}},
301  {{ 8, 0, 0, 0, 0, 0, 0, 0,}},
302  {{ 8, 0,128, 0, 0, 0, 0, 0,}},
303  {{ 0, 0, 0, 64, 0, 0, 0, 0,}},
304  {{ 0, 0,128, 64, 0, 0, 0, 0,}},
305  {{ 8, 0, 0, 64, 0, 0, 0, 0,}},
306  {{ 8, 0,128, 64, 0, 0, 0, 0,}},
307  {{ 0, 0, 0, 4, 0, 0, 0, 0,}},
308  {{ 0, 0,128, 4, 0, 0, 0, 0,}},
309  {{ 8, 0, 0, 4, 0, 0, 0, 0,}},
310  {{ 8, 0,128, 4, 0, 0, 0, 0,}},
311  {{ 0, 0, 0, 68, 0, 0, 0, 0,}},
312  {{ 0, 0,128, 68, 0, 0, 0, 0,}},
313  {{ 8, 0, 0, 68, 0, 0, 0, 0,}},
314  {{ 8, 0,128, 68, 0, 0, 0, 0,}},
315  },
316  {
317  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
318  {{ 0,128, 0, 0, 0, 0, 0, 0,}},
319  {{ 0, 0, 4, 0, 0, 0, 0, 0,}},
320  {{ 0,128, 4, 0, 0, 0, 0, 0,}},
321  {{ 0, 8, 0, 0, 0, 0, 0, 0,}},
322  {{ 0,136, 0, 0, 0, 0, 0, 0,}},
323  {{ 0, 8, 4, 0, 0, 0, 0, 0,}},
324  {{ 0,136, 4, 0, 0, 0, 0, 0,}},
325  {{ 0, 0, 32, 0, 0, 0, 0, 0,}},
326  {{ 0,128, 32, 0, 0, 0, 0, 0,}},
327  {{ 0, 0, 36, 0, 0, 0, 0, 0,}},
328  {{ 0,128, 36, 0, 0, 0, 0, 0,}},
329  {{ 0, 8, 32, 0, 0, 0, 0, 0,}},
330  {{ 0,136, 32, 0, 0, 0, 0, 0,}},
331  {{ 0, 8, 36, 0, 0, 0, 0, 0,}},
332  {{ 0,136, 36, 0, 0, 0, 0, 0,}},
333  },
334  {
335  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
336  {{ 0, 64, 0, 0, 0, 0, 0, 0,}},
337  {{ 32, 0, 0, 0, 0, 0, 0, 0,}},
338  {{ 32, 64, 0, 0, 0, 0, 0, 0,}},
339  {{ 0, 0, 0,128, 0, 0, 0, 0,}},
340  {{ 0, 64, 0,128, 0, 0, 0, 0,}},
341  {{ 32, 0, 0,128, 0, 0, 0, 0,}},
342  {{ 32, 64, 0,128, 0, 0, 0, 0,}},
343  {{ 0, 0, 0, 16, 0, 0, 0, 0,}},
344  {{ 0, 64, 0, 16, 0, 0, 0, 0,}},
345  {{ 32, 0, 0, 16, 0, 0, 0, 0,}},
346  {{ 32, 64, 0, 16, 0, 0, 0, 0,}},
347  {{ 0, 0, 0,144, 0, 0, 0, 0,}},
348  {{ 0, 64, 0,144, 0, 0, 0, 0,}},
349  {{ 32, 0, 0,144, 0, 0, 0, 0,}},
350  {{ 32, 64, 0,144, 0, 0, 0, 0,}},
351  },
352  {
353  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
354  {{ 4, 0, 0, 0, 0, 0, 0, 0,}},
355  {{128, 0, 0, 0, 0, 0, 0, 0,}},
356  {{132, 0, 0, 0, 0, 0, 0, 0,}},
357  {{ 0, 0, 0, 32, 0, 0, 0, 0,}},
358  {{ 4, 0, 0, 32, 0, 0, 0, 0,}},
359  {{128, 0, 0, 32, 0, 0, 0, 0,}},
360  {{132, 0, 0, 32, 0, 0, 0, 0,}},
361  {{ 1, 0, 0, 0, 0, 0, 0, 0,}},
362  {{ 5, 0, 0, 0, 0, 0, 0, 0,}},
363  {{129, 0, 0, 0, 0, 0, 0, 0,}},
364  {{133, 0, 0, 0, 0, 0, 0, 0,}},
365  {{ 1, 0, 0, 32, 0, 0, 0, 0,}},
366  {{ 5, 0, 0, 32, 0, 0, 0, 0,}},
367  {{129, 0, 0, 32, 0, 0, 0, 0,}},
368  {{133, 0, 0, 32, 0, 0, 0, 0,}},
369  },
370  {
371  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
372  {{ 0, 0, 0, 0, 0, 0, 64, 0,}},
373  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
374  {{ 0, 0, 0, 0, 32, 0, 64, 0,}},
375  {{ 0, 1, 0, 0, 0, 0, 0, 0,}},
376  {{ 0, 1, 0, 0, 0, 0, 64, 0,}},
377  {{ 0, 1, 0, 0, 32, 0, 0, 0,}},
378  {{ 0, 1, 0, 0, 32, 0, 64, 0,}},
379  {{ 2, 0, 0, 0, 0, 0, 0, 0,}},
380  {{ 2, 0, 0, 0, 0, 0, 64, 0,}},
381  {{ 2, 0, 0, 0, 32, 0, 0, 0,}},
382  {{ 2, 0, 0, 0, 32, 0, 64, 0,}},
383  {{ 2, 1, 0, 0, 0, 0, 0, 0,}},
384  {{ 2, 1, 0, 0, 0, 0, 64, 0,}},
385  {{ 2, 1, 0, 0, 32, 0, 0, 0,}},
386  {{ 2, 1, 0, 0, 32, 0, 64, 0,}},
387  },
388  {
389  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
390  {{ 16, 0, 0, 0, 0, 0, 0, 0,}},
391  {{ 0, 4, 0, 0, 0, 0, 0, 0,}},
392  {{ 16, 4, 0, 0, 0, 0, 0, 0,}},
393  {{ 0, 2, 0, 0, 0, 0, 0, 0,}},
394  {{ 16, 2, 0, 0, 0, 0, 0, 0,}},
395  {{ 0, 6, 0, 0, 0, 0, 0, 0,}},
396  {{ 16, 6, 0, 0, 0, 0, 0, 0,}},
397  {{ 0, 0, 0, 8, 0, 0, 0, 0,}},
398  {{ 16, 0, 0, 8, 0, 0, 0, 0,}},
399  {{ 0, 4, 0, 8, 0, 0, 0, 0,}},
400  {{ 16, 4, 0, 8, 0, 0, 0, 0,}},
401  {{ 0, 2, 0, 8, 0, 0, 0, 0,}},
402  {{ 16, 2, 0, 8, 0, 0, 0, 0,}},
403  {{ 0, 6, 0, 8, 0, 0, 0, 0,}},
404  {{ 16, 6, 0, 8, 0, 0, 0, 0,}},
405  },
406  {
407  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
408  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
409  {{ 0, 0, 0, 0, 0, 0,128, 0,}},
410  {{ 0, 0, 0, 0, 0, 0,128, 8,}},
411  {{ 0, 16, 0, 0, 0, 0, 0, 0,}},
412  {{ 0, 16, 0, 0, 0, 0, 0, 8,}},
413  {{ 0, 16, 0, 0, 0, 0,128, 0,}},
414  {{ 0, 16, 0, 0, 0, 0,128, 8,}},
415  {{ 0, 32, 0, 0, 0, 0, 0, 0,}},
416  {{ 0, 32, 0, 0, 0, 0, 0, 8,}},
417  {{ 0, 32, 0, 0, 0, 0,128, 0,}},
418  {{ 0, 32, 0, 0, 0, 0,128, 8,}},
419  {{ 0, 48, 0, 0, 0, 0, 0, 0,}},
420  {{ 0, 48, 0, 0, 0, 0, 0, 8,}},
421  {{ 0, 48, 0, 0, 0, 0,128, 0,}},
422  {{ 0, 48, 0, 0, 0, 0,128, 8,}},
423  },
424  {
425  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
426  {{ 0, 0, 64, 0, 0, 0, 0, 0,}},
427  {{ 0, 0, 8, 0, 0, 0, 0, 0,}},
428  {{ 0, 0, 72, 0, 0, 0, 0, 0,}},
429  {{ 0, 0, 16, 0, 0, 0, 0, 0,}},
430  {{ 0, 0, 80, 0, 0, 0, 0, 0,}},
431  {{ 0, 0, 24, 0, 0, 0, 0, 0,}},
432  {{ 0, 0, 88, 0, 0, 0, 0, 0,}},
433  {{ 64, 0, 0, 0, 0, 0, 0, 0,}},
434  {{ 64, 0, 64, 0, 0, 0, 0, 0,}},
435  {{ 64, 0, 8, 0, 0, 0, 0, 0,}},
436  {{ 64, 0, 72, 0, 0, 0, 0, 0,}},
437  {{ 64, 0, 16, 0, 0, 0, 0, 0,}},
438  {{ 64, 0, 80, 0, 0, 0, 0, 0,}},
439  {{ 64, 0, 24, 0, 0, 0, 0, 0,}},
440  {{ 64, 0, 88, 0, 0, 0, 0, 0,}},
441  },
442  {
443  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
444  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
445  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
446  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
447  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
448  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
449  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
450  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
451  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
452  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
453  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
454  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
455  {{ 0, 0, 0, 0, 0, 24, 0, 0,}},
456  {{ 0, 0, 0, 0, 0, 24, 0, 0,}},
457  {{ 0, 0, 0, 0, 0, 24, 0, 0,}},
458  {{ 0, 0, 0, 0, 0, 24, 0, 0,}},
459  },
460  {
461  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
462  {{ 0, 0, 0, 0, 0, 4, 0, 0,}},
463  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
464  {{ 0, 0, 0, 0, 0, 4, 0, 32,}},
465  {{ 0, 0, 0, 0, 0, 0, 0, 4,}},
466  {{ 0, 0, 0, 0, 0, 4, 0, 4,}},
467  {{ 0, 0, 0, 0, 0, 0, 0, 36,}},
468  {{ 0, 0, 0, 0, 0, 4, 0, 36,}},
469  {{ 0, 0, 0, 2, 0, 0, 0, 0,}},
470  {{ 0, 0, 0, 2, 0, 4, 0, 0,}},
471  {{ 0, 0, 0, 2, 0, 0, 0, 32,}},
472  {{ 0, 0, 0, 2, 0, 4, 0, 32,}},
473  {{ 0, 0, 0, 2, 0, 0, 0, 4,}},
474  {{ 0, 0, 0, 2, 0, 4, 0, 4,}},
475  {{ 0, 0, 0, 2, 0, 0, 0, 36,}},
476  {{ 0, 0, 0, 2, 0, 4, 0, 36,}},
477  },
478  {
479  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
480  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
481  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
482  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
483  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
484  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
485  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
486  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
487  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
488  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
489  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
490  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
491  {{ 0, 0, 0, 0, 0, 0, 16, 64,}},
492  {{ 0, 0, 0, 0, 0, 0, 16, 64,}},
493  {{ 0, 0, 0, 0, 0, 0, 16, 64,}},
494  {{ 0, 0, 0, 0, 0, 0, 16, 64,}},
495  },
496  {
497  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
498  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
499  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
500  {{ 0, 0, 0, 0, 0, 0, 4, 16,}},
501  {{ 0, 0, 0, 0, 0, 0, 0,128,}},
502  {{ 0, 0, 0, 0, 0, 0, 0,144,}},
503  {{ 0, 0, 0, 0, 0, 0, 4,128,}},
504  {{ 0, 0, 0, 0, 0, 0, 4,144,}},
505  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
506  {{ 0, 0, 0, 0, 64, 0, 0, 16,}},
507  {{ 0, 0, 0, 0, 64, 0, 4, 0,}},
508  {{ 0, 0, 0, 0, 64, 0, 4, 16,}},
509  {{ 0, 0, 0, 0, 64, 0, 0,128,}},
510  {{ 0, 0, 0, 0, 64, 0, 0,144,}},
511  {{ 0, 0, 0, 0, 64, 0, 4,128,}},
512  {{ 0, 0, 0, 0, 64, 0, 4,144,}},
513  },
514  {
515  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
516  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
517  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
518  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
519  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
520  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
521  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
522  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
523  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
524  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
525  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
526  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
527  {{ 0, 0, 0, 1, 0,128, 0, 0,}},
528  {{ 0, 0, 0, 1, 0,128, 0, 0,}},
529  {{ 0, 0, 0, 1, 0,128, 0, 0,}},
530  {{ 0, 0, 0, 1, 0,128, 0, 0,}},
531  },
532  {
533  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
534  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
535  {{ 0, 0, 0, 0,128, 0, 0, 0,}},
536  {{ 0, 0, 2, 0,128, 0, 0, 0,}},
537  {{ 0, 0, 0, 0, 0, 64, 0, 0,}},
538  {{ 0, 0, 2, 0, 0, 64, 0, 0,}},
539  {{ 0, 0, 0, 0,128, 64, 0, 0,}},
540  {{ 0, 0, 2, 0,128, 64, 0, 0,}},
541  {{ 0, 0, 0, 0, 8, 0, 0, 0,}},
542  {{ 0, 0, 2, 0, 8, 0, 0, 0,}},
543  {{ 0, 0, 0, 0,136, 0, 0, 0,}},
544  {{ 0, 0, 2, 0,136, 0, 0, 0,}},
545  {{ 0, 0, 0, 0, 8, 64, 0, 0,}},
546  {{ 0, 0, 2, 0, 8, 64, 0, 0,}},
547  {{ 0, 0, 0, 0,136, 64, 0, 0,}},
548  {{ 0, 0, 2, 0,136, 64, 0, 0,}},
549  },
550  {
551  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
552  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
553  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
554  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
555  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
556  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
557  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
558  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
559  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
560  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
561  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
562  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
563  {{ 0, 0, 0, 0, 4, 32, 0, 0,}},
564  {{ 0, 0, 0, 0, 4, 32, 0, 0,}},
565  {{ 0, 0, 0, 0, 4, 32, 0, 0,}},
566  {{ 0, 0, 0, 0, 4, 32, 0, 0,}},
567  },
568  {
569  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
570  {{ 0, 0, 0, 0, 0, 0, 8, 0,}},
571  {{ 0, 0, 1, 0, 0, 0, 0, 0,}},
572  {{ 0, 0, 1, 0, 0, 0, 8, 0,}},
573  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
574  {{ 0, 0, 0, 0, 0, 0, 40, 0,}},
575  {{ 0, 0, 1, 0, 0, 0, 32, 0,}},
576  {{ 0, 0, 1, 0, 0, 0, 40, 0,}},
577  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
578  {{ 0, 0, 0, 0, 16, 0, 8, 0,}},
579  {{ 0, 0, 1, 0, 16, 0, 0, 0,}},
580  {{ 0, 0, 1, 0, 16, 0, 8, 0,}},
581  {{ 0, 0, 0, 0, 16, 0, 32, 0,}},
582  {{ 0, 0, 0, 0, 16, 0, 40, 0,}},
583  {{ 0, 0, 1, 0, 16, 0, 32, 0,}},
584  {{ 0, 0, 1, 0, 16, 0, 40, 0,}},
585  },
586  },
587  {
588  {
589  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
590  {{ 0, 0, 0, 8, 0, 0, 0, 0,}},
591  {{ 0, 0, 0, 4, 0, 0, 0, 0,}},
592  {{ 0, 0, 0, 12, 0, 0, 0, 0,}},
593  {{ 0, 0, 16, 0, 0, 0, 0, 0,}},
594  {{ 0, 0, 16, 8, 0, 0, 0, 0,}},
595  {{ 0, 0, 16, 4, 0, 0, 0, 0,}},
596  {{ 0, 0, 16, 12, 0, 0, 0, 0,}},
597  {{ 0, 16, 0, 0, 0, 0, 0, 0,}},
598  {{ 0, 16, 0, 8, 0, 0, 0, 0,}},
599  {{ 0, 16, 0, 4, 0, 0, 0, 0,}},
600  {{ 0, 16, 0, 12, 0, 0, 0, 0,}},
601  {{ 0, 16, 16, 0, 0, 0, 0, 0,}},
602  {{ 0, 16, 16, 8, 0, 0, 0, 0,}},
603  {{ 0, 16, 16, 4, 0, 0, 0, 0,}},
604  {{ 0, 16, 16, 12, 0, 0, 0, 0,}},
605  },
606  {
607  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
608  {{ 1, 0, 0, 0, 0, 0, 0, 0,}},
609  {{ 0, 1, 0, 0, 0, 0, 0, 0,}},
610  {{ 1, 1, 0, 0, 0, 0, 0, 0,}},
611  {{ 0, 0, 0, 16, 0, 0, 0, 0,}},
612  {{ 1, 0, 0, 16, 0, 0, 0, 0,}},
613  {{ 0, 1, 0, 16, 0, 0, 0, 0,}},
614  {{ 1, 1, 0, 16, 0, 0, 0, 0,}},
615  {{ 0, 4, 0, 0, 0, 0, 0, 0,}},
616  {{ 1, 4, 0, 0, 0, 0, 0, 0,}},
617  {{ 0, 5, 0, 0, 0, 0, 0, 0,}},
618  {{ 1, 5, 0, 0, 0, 0, 0, 0,}},
619  {{ 0, 4, 0, 16, 0, 0, 0, 0,}},
620  {{ 1, 4, 0, 16, 0, 0, 0, 0,}},
621  {{ 0, 5, 0, 16, 0, 0, 0, 0,}},
622  {{ 1, 5, 0, 16, 0, 0, 0, 0,}},
623  },
624  {
625  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
626  {{ 0, 0, 0, 32, 0, 0, 0, 0,}},
627  {{ 0, 0, 4, 0, 0, 0, 0, 0,}},
628  {{ 0, 0, 4, 32, 0, 0, 0, 0,}},
629  {{ 64, 0, 0, 0, 0, 0, 0, 0,}},
630  {{ 64, 0, 0, 32, 0, 0, 0, 0,}},
631  {{ 64, 0, 4, 0, 0, 0, 0, 0,}},
632  {{ 64, 0, 4, 32, 0, 0, 0, 0,}},
633  {{ 0, 0, 64, 0, 0, 0, 0, 0,}},
634  {{ 0, 0, 64, 32, 0, 0, 0, 0,}},
635  {{ 0, 0, 68, 0, 0, 0, 0, 0,}},
636  {{ 0, 0, 68, 32, 0, 0, 0, 0,}},
637  {{ 64, 0, 64, 0, 0, 0, 0, 0,}},
638  {{ 64, 0, 64, 32, 0, 0, 0, 0,}},
639  {{ 64, 0, 68, 0, 0, 0, 0, 0,}},
640  {{ 64, 0, 68, 32, 0, 0, 0, 0,}},
641  },
642  {
643  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
644  {{ 0, 0, 0, 64, 0, 0, 0, 0,}},
645  {{ 0, 0, 32, 0, 0, 0, 0, 0,}},
646  {{ 0, 0, 32, 64, 0, 0, 0, 0,}},
647  {{ 0, 0, 8, 0, 0, 0, 0, 0,}},
648  {{ 0, 0, 8, 64, 0, 0, 0, 0,}},
649  {{ 0, 0, 40, 0, 0, 0, 0, 0,}},
650  {{ 0, 0, 40, 64, 0, 0, 0, 0,}},
651  {{ 0, 0,128, 0, 0, 0, 0, 0,}},
652  {{ 0, 0,128, 64, 0, 0, 0, 0,}},
653  {{ 0, 0,160, 0, 0, 0, 0, 0,}},
654  {{ 0, 0,160, 64, 0, 0, 0, 0,}},
655  {{ 0, 0,136, 0, 0, 0, 0, 0,}},
656  {{ 0, 0,136, 64, 0, 0, 0, 0,}},
657  {{ 0, 0,168, 0, 0, 0, 0, 0,}},
658  {{ 0, 0,168, 64, 0, 0, 0, 0,}},
659  },
660  {
661  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
662  {{ 0, 0, 0, 0, 0, 64, 0, 0,}},
663  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
664  {{ 0, 0, 0, 0, 0, 64, 0, 32,}},
665  {{ 0, 64, 0, 0, 0, 0, 0, 0,}},
666  {{ 0, 64, 0, 0, 0, 64, 0, 0,}},
667  {{ 0, 64, 0, 0, 0, 0, 0, 32,}},
668  {{ 0, 64, 0, 0, 0, 64, 0, 32,}},
669  {{ 8, 0, 0, 0, 0, 0, 0, 0,}},
670  {{ 8, 0, 0, 0, 0, 64, 0, 0,}},
671  {{ 8, 0, 0, 0, 0, 0, 0, 32,}},
672  {{ 8, 0, 0, 0, 0, 64, 0, 32,}},
673  {{ 8, 64, 0, 0, 0, 0, 0, 0,}},
674  {{ 8, 64, 0, 0, 0, 64, 0, 0,}},
675  {{ 8, 64, 0, 0, 0, 0, 0, 32,}},
676  {{ 8, 64, 0, 0, 0, 64, 0, 32,}},
677  },
678  {
679  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
680  {{ 0,128, 0, 0, 0, 0, 0, 0,}},
681  {{ 0, 0, 0,128, 0, 0, 0, 0,}},
682  {{ 0,128, 0,128, 0, 0, 0, 0,}},
683  {{ 32, 0, 0, 0, 0, 0, 0, 0,}},
684  {{ 32,128, 0, 0, 0, 0, 0, 0,}},
685  {{ 32, 0, 0,128, 0, 0, 0, 0,}},
686  {{ 32,128, 0,128, 0, 0, 0, 0,}},
687  {{ 0, 32, 0, 0, 0, 0, 0, 0,}},
688  {{ 0,160, 0, 0, 0, 0, 0, 0,}},
689  {{ 0, 32, 0,128, 0, 0, 0, 0,}},
690  {{ 0,160, 0,128, 0, 0, 0, 0,}},
691  {{ 32, 32, 0, 0, 0, 0, 0, 0,}},
692  {{ 32,160, 0, 0, 0, 0, 0, 0,}},
693  {{ 32, 32, 0,128, 0, 0, 0, 0,}},
694  {{ 32,160, 0,128, 0, 0, 0, 0,}},
695  },
696  {
697  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
698  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
699  {{ 0, 0, 0, 0, 8, 0, 0, 0,}},
700  {{ 0, 0, 0, 0, 12, 0, 0, 0,}},
701  {{ 4, 0, 0, 0, 0, 0, 0, 0,}},
702  {{ 4, 0, 0, 0, 4, 0, 0, 0,}},
703  {{ 4, 0, 0, 0, 8, 0, 0, 0,}},
704  {{ 4, 0, 0, 0, 12, 0, 0, 0,}},
705  {{128, 0, 0, 0, 0, 0, 0, 0,}},
706  {{128, 0, 0, 0, 4, 0, 0, 0,}},
707  {{128, 0, 0, 0, 8, 0, 0, 0,}},
708  {{128, 0, 0, 0, 12, 0, 0, 0,}},
709  {{132, 0, 0, 0, 0, 0, 0, 0,}},
710  {{132, 0, 0, 0, 4, 0, 0, 0,}},
711  {{132, 0, 0, 0, 8, 0, 0, 0,}},
712  {{132, 0, 0, 0, 12, 0, 0, 0,}},
713  },
714  {
715  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
716  {{ 0, 2, 0, 0, 0, 0, 0, 0,}},
717  {{ 2, 0, 0, 0, 0, 0, 0, 0,}},
718  {{ 2, 2, 0, 0, 0, 0, 0, 0,}},
719  {{ 16, 0, 0, 0, 0, 0, 0, 0,}},
720  {{ 16, 2, 0, 0, 0, 0, 0, 0,}},
721  {{ 18, 0, 0, 0, 0, 0, 0, 0,}},
722  {{ 18, 2, 0, 0, 0, 0, 0, 0,}},
723  {{ 0, 8, 0, 0, 0, 0, 0, 0,}},
724  {{ 0, 10, 0, 0, 0, 0, 0, 0,}},
725  {{ 2, 8, 0, 0, 0, 0, 0, 0,}},
726  {{ 2, 10, 0, 0, 0, 0, 0, 0,}},
727  {{ 16, 8, 0, 0, 0, 0, 0, 0,}},
728  {{ 16, 10, 0, 0, 0, 0, 0, 0,}},
729  {{ 18, 8, 0, 0, 0, 0, 0, 0,}},
730  {{ 18, 10, 0, 0, 0, 0, 0, 0,}},
731  },
732  {
733  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
734  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
735  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
736  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
737  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
738  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
739  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
740  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
741  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
742  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
743  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
744  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
745  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
746  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
747  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
748  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
749  },
750  {
751  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
752  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
753  {{ 0, 0, 1, 0, 0, 0, 0, 0,}},
754  {{ 0, 0, 1, 0, 0, 0, 0, 64,}},
755  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
756  {{ 0, 0, 0, 0, 0, 32, 0, 64,}},
757  {{ 0, 0, 1, 0, 0, 32, 0, 0,}},
758  {{ 0, 0, 1, 0, 0, 32, 0, 64,}},
759  {{ 0, 0, 0, 0, 0, 0,128, 0,}},
760  {{ 0, 0, 0, 0, 0, 0,128, 64,}},
761  {{ 0, 0, 1, 0, 0, 0,128, 0,}},
762  {{ 0, 0, 1, 0, 0, 0,128, 64,}},
763  {{ 0, 0, 0, 0, 0, 32,128, 0,}},
764  {{ 0, 0, 0, 0, 0, 32,128, 64,}},
765  {{ 0, 0, 1, 0, 0, 32,128, 0,}},
766  {{ 0, 0, 1, 0, 0, 32,128, 64,}},
767  },
768  {
769  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
770  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
771  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
772  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
773  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
774  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
775  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
776  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
777  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
778  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
779  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
780  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
781  {{ 0, 0, 2, 0, 0, 0, 32, 0,}},
782  {{ 0, 0, 2, 0, 0, 0, 32, 0,}},
783  {{ 0, 0, 2, 0, 0, 0, 32, 0,}},
784  {{ 0, 0, 2, 0, 0, 0, 32, 0,}},
785  },
786  {
787  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
788  {{ 0, 0, 0, 0, 0, 0, 8, 0,}},
789  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
790  {{ 0, 0, 0, 1, 0, 0, 8, 0,}},
791  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
792  {{ 0, 0, 0, 0, 16, 0, 8, 0,}},
793  {{ 0, 0, 0, 1, 16, 0, 0, 0,}},
794  {{ 0, 0, 0, 1, 16, 0, 8, 0,}},
795  {{ 0, 0, 0, 0, 0, 0, 0, 4,}},
796  {{ 0, 0, 0, 0, 0, 0, 8, 4,}},
797  {{ 0, 0, 0, 1, 0, 0, 0, 4,}},
798  {{ 0, 0, 0, 1, 0, 0, 8, 4,}},
799  {{ 0, 0, 0, 0, 16, 0, 0, 4,}},
800  {{ 0, 0, 0, 0, 16, 0, 8, 4,}},
801  {{ 0, 0, 0, 1, 16, 0, 0, 4,}},
802  {{ 0, 0, 0, 1, 16, 0, 8, 4,}},
803  },
804  {
805  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
806  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
807  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
808  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
809  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
810  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
811  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
812  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
813  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
814  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
815  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
816  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
817  {{ 0, 0, 0, 0, 64, 0, 0, 8,}},
818  {{ 0, 0, 0, 0, 64, 0, 0, 8,}},
819  {{ 0, 0, 0, 0, 64, 0, 0, 8,}},
820  {{ 0, 0, 0, 0, 64, 0, 0, 8,}},
821  },
822  {
823  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
824  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
825  {{ 0, 0, 0, 2, 0, 0, 0, 0,}},
826  {{ 0, 0, 0, 2, 32, 0, 0, 0,}},
827  {{ 0, 0, 0, 0, 0, 0, 0,128,}},
828  {{ 0, 0, 0, 0, 32, 0, 0,128,}},
829  {{ 0, 0, 0, 2, 0, 0, 0,128,}},
830  {{ 0, 0, 0, 2, 32, 0, 0,128,}},
831  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
832  {{ 0, 0, 0, 0, 32, 16, 0, 0,}},
833  {{ 0, 0, 0, 2, 0, 16, 0, 0,}},
834  {{ 0, 0, 0, 2, 32, 16, 0, 0,}},
835  {{ 0, 0, 0, 0, 0, 16, 0,128,}},
836  {{ 0, 0, 0, 0, 32, 16, 0,128,}},
837  {{ 0, 0, 0, 2, 0, 16, 0,128,}},
838  {{ 0, 0, 0, 2, 32, 16, 0,128,}},
839  },
840  {
841  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
842  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
843  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
844  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
845  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
846  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
847  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
848  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
849  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
850  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
851  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
852  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
853  {{ 0, 0, 0, 0, 0, 8, 4, 0,}},
854  {{ 0, 0, 0, 0, 0, 8, 4, 0,}},
855  {{ 0, 0, 0, 0, 0, 8, 4, 0,}},
856  {{ 0, 0, 0, 0, 0, 8, 4, 0,}},
857  },
858  {
859  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
860  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
861  {{ 0, 0, 0, 0, 0, 0, 64, 0,}},
862  {{ 0, 0, 0, 0, 0,128, 64, 0,}},
863  {{ 0, 0, 0, 0,128, 0, 0, 0,}},
864  {{ 0, 0, 0, 0,128,128, 0, 0,}},
865  {{ 0, 0, 0, 0,128, 0, 64, 0,}},
866  {{ 0, 0, 0, 0,128,128, 64, 0,}},
867  {{ 0, 0, 0, 0, 0, 4, 0, 0,}},
868  {{ 0, 0, 0, 0, 0,132, 0, 0,}},
869  {{ 0, 0, 0, 0, 0, 4, 64, 0,}},
870  {{ 0, 0, 0, 0, 0,132, 64, 0,}},
871  {{ 0, 0, 0, 0,128, 4, 0, 0,}},
872  {{ 0, 0, 0, 0,128,132, 0, 0,}},
873  {{ 0, 0, 0, 0,128, 4, 64, 0,}},
874  {{ 0, 0, 0, 0,128,132, 64, 0,}},
875  },
876  },
877 };
878 
879 /* Initial permutation/expansion table */
880 static const C_block IE3264[32/CHUNKBITS][1<<CHUNKBITS] = {
881  {
882  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
883  {{ 0, 0, 0, 0, 0, 0, 64, 4,}},
884  {{ 4, 0, 0, 0, 0, 0, 0, 64,}},
885  {{ 4, 0, 0, 0, 0, 0, 64, 68,}},
886  {{ 0, 0, 0, 0, 64, 4, 0, 0,}},
887  {{ 0, 0, 0, 0, 64, 4, 64, 4,}},
888  {{ 4, 0, 0, 0, 64, 4, 0, 64,}},
889  {{ 4, 0, 0, 0, 64, 4, 64, 68,}},
890  {{ 0, 0, 0, 0, 0, 64, 4, 0,}},
891  {{ 0, 0, 0, 0, 0, 64, 68, 4,}},
892  {{ 4, 0, 0, 0, 0, 64, 4, 64,}},
893  {{ 4, 0, 0, 0, 0, 64, 68, 68,}},
894  {{ 0, 0, 0, 0, 64, 68, 4, 0,}},
895  {{ 0, 0, 0, 0, 64, 68, 68, 4,}},
896  {{ 4, 0, 0, 0, 64, 68, 4, 64,}},
897  {{ 4, 0, 0, 0, 64, 68, 68, 68,}},
898  },
899  {
900  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
901  {{ 0, 0, 64, 4, 0, 0, 0, 0,}},
902  {{ 0, 0, 0, 64, 4, 0, 0, 0,}},
903  {{ 0, 0, 64, 68, 4, 0, 0, 0,}},
904  {{ 64, 4, 0, 0, 0, 0, 0, 0,}},
905  {{ 64, 4, 64, 4, 0, 0, 0, 0,}},
906  {{ 64, 4, 0, 64, 4, 0, 0, 0,}},
907  {{ 64, 4, 64, 68, 4, 0, 0, 0,}},
908  {{ 0, 64, 4, 0, 0, 0, 0, 0,}},
909  {{ 0, 64, 68, 4, 0, 0, 0, 0,}},
910  {{ 0, 64, 4, 64, 4, 0, 0, 0,}},
911  {{ 0, 64, 68, 68, 4, 0, 0, 0,}},
912  {{ 64, 68, 4, 0, 0, 0, 0, 0,}},
913  {{ 64, 68, 68, 4, 0, 0, 0, 0,}},
914  {{ 64, 68, 4, 64, 4, 0, 0, 0,}},
915  {{ 64, 68, 68, 68, 4, 0, 0, 0,}},
916  },
917  {
918  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
919  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
920  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
921  {{ 0, 0, 0, 0, 0, 0, 32, 32,}},
922  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
923  {{ 0, 0, 0, 0, 32, 0, 32, 0,}},
924  {{ 0, 0, 0, 0, 32, 0, 0, 32,}},
925  {{ 0, 0, 0, 0, 32, 0, 32, 32,}},
926  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
927  {{ 0, 0, 0, 0, 0, 32, 32, 0,}},
928  {{ 0, 0, 0, 0, 0, 32, 0, 32,}},
929  {{ 0, 0, 0, 0, 0, 32, 32, 32,}},
930  {{ 0, 0, 0, 0, 32, 32, 0, 0,}},
931  {{ 0, 0, 0, 0, 32, 32, 32, 0,}},
932  {{ 0, 0, 0, 0, 32, 32, 0, 32,}},
933  {{ 0, 0, 0, 0, 32, 32, 32, 32,}},
934  },
935  {
936  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
937  {{ 0, 0, 32, 0, 0, 0, 0, 0,}},
938  {{ 0, 0, 0, 32, 0, 0, 0, 0,}},
939  {{ 0, 0, 32, 32, 0, 0, 0, 0,}},
940  {{ 32, 0, 0, 0, 0, 0, 0, 0,}},
941  {{ 32, 0, 32, 0, 0, 0, 0, 0,}},
942  {{ 32, 0, 0, 32, 0, 0, 0, 0,}},
943  {{ 32, 0, 32, 32, 0, 0, 0, 0,}},
944  {{ 0, 32, 0, 0, 0, 0, 0, 0,}},
945  {{ 0, 32, 32, 0, 0, 0, 0, 0,}},
946  {{ 0, 32, 0, 32, 0, 0, 0, 0,}},
947  {{ 0, 32, 32, 32, 0, 0, 0, 0,}},
948  {{ 32, 32, 0, 0, 0, 0, 0, 0,}},
949  {{ 32, 32, 32, 0, 0, 0, 0, 0,}},
950  {{ 32, 32, 0, 32, 0, 0, 0, 0,}},
951  {{ 32, 32, 32, 32, 0, 0, 0, 0,}},
952  },
953  {
954  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
955  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
956  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
957  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
958  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
959  {{ 0, 0, 0, 0, 16, 0, 16, 0,}},
960  {{ 0, 0, 0, 0, 16, 0, 0, 16,}},
961  {{ 0, 0, 0, 0, 16, 0, 16, 16,}},
962  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
963  {{ 0, 0, 0, 0, 0, 16, 16, 0,}},
964  {{ 0, 0, 0, 0, 0, 16, 0, 16,}},
965  {{ 0, 0, 0, 0, 0, 16, 16, 16,}},
966  {{ 0, 0, 0, 0, 16, 16, 0, 0,}},
967  {{ 0, 0, 0, 0, 16, 16, 16, 0,}},
968  {{ 0, 0, 0, 0, 16, 16, 0, 16,}},
969  {{ 0, 0, 0, 0, 16, 16, 16, 16,}},
970  },
971  {
972  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
973  {{ 0, 0, 16, 0, 0, 0, 0, 0,}},
974  {{ 0, 0, 0, 16, 0, 0, 0, 0,}},
975  {{ 0, 0, 16, 16, 0, 0, 0, 0,}},
976  {{ 16, 0, 0, 0, 0, 0, 0, 0,}},
977  {{ 16, 0, 16, 0, 0, 0, 0, 0,}},
978  {{ 16, 0, 0, 16, 0, 0, 0, 0,}},
979  {{ 16, 0, 16, 16, 0, 0, 0, 0,}},
980  {{ 0, 16, 0, 0, 0, 0, 0, 0,}},
981  {{ 0, 16, 16, 0, 0, 0, 0, 0,}},
982  {{ 0, 16, 0, 16, 0, 0, 0, 0,}},
983  {{ 0, 16, 16, 16, 0, 0, 0, 0,}},
984  {{ 16, 16, 0, 0, 0, 0, 0, 0,}},
985  {{ 16, 16, 16, 0, 0, 0, 0, 0,}},
986  {{ 16, 16, 0, 16, 0, 0, 0, 0,}},
987  {{ 16, 16, 16, 16, 0, 0, 0, 0,}},
988  },
989  {
990  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
991  {{ 0, 0, 0, 0, 0,128, 8, 0,}},
992  {{ 0, 0, 0, 0, 0, 0,128, 8,}},
993  {{ 0, 0, 0, 0, 0,128,136, 8,}},
994  {{ 0, 0, 0,128, 8, 0, 0, 0,}},
995  {{ 0, 0, 0,128, 8,128, 8, 0,}},
996  {{ 0, 0, 0,128, 8, 0,128, 8,}},
997  {{ 0, 0, 0,128, 8,128,136, 8,}},
998  {{ 0, 0, 0, 0,128, 8, 0, 0,}},
999  {{ 0, 0, 0, 0,128,136, 8, 0,}},
1000  {{ 0, 0, 0, 0,128, 8,128, 8,}},
1001  {{ 0, 0, 0, 0,128,136,136, 8,}},
1002  {{ 0, 0, 0,128,136, 8, 0, 0,}},
1003  {{ 0, 0, 0,128,136,136, 8, 0,}},
1004  {{ 0, 0, 0,128,136, 8,128, 8,}},
1005  {{ 0, 0, 0,128,136,136,136, 8,}},
1006  },
1007  {
1008  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1009  {{ 0,128, 8, 0, 0, 0, 0, 0,}},
1010  {{ 0, 0,128, 8, 0, 0, 0, 0,}},
1011  {{ 0,128,136, 8, 0, 0, 0, 0,}},
1012  {{ 8, 0, 0, 0, 0, 0, 0,128,}},
1013  {{ 8,128, 8, 0, 0, 0, 0,128,}},
1014  {{ 8, 0,128, 8, 0, 0, 0,128,}},
1015  {{ 8,128,136, 8, 0, 0, 0,128,}},
1016  {{128, 8, 0, 0, 0, 0, 0, 0,}},
1017  {{128,136, 8, 0, 0, 0, 0, 0,}},
1018  {{128, 8,128, 8, 0, 0, 0, 0,}},
1019  {{128,136,136, 8, 0, 0, 0, 0,}},
1020  {{136, 8, 0, 0, 0, 0, 0,128,}},
1021  {{136,136, 8, 0, 0, 0, 0,128,}},
1022  {{136, 8,128, 8, 0, 0, 0,128,}},
1023  {{136,136,136, 8, 0, 0, 0,128,}},
1024  },
1025 };
1026 
1027 /* Table that combines the S, P, and E operations. */
1028 static const unsigned long SPE[2][8][64] = {
1029  {
1030  {
1031  0x80088000,0x80000000, 0,0x80088000,
1032  0,0x80088000,0x80000000, 0,
1033  0x80088000,0x80088000,0x80000000, 0x88000,
1034  0x88000, 0, 0,0x80000000,
1035  0x80000000, 0, 0x88000,0x80088000,
1036  0x80088000,0x80000000, 0x88000, 0x88000,
1037  0, 0x88000,0x80088000,0x80000000,
1038  0x88000, 0x88000,0x80000000, 0,
1039  0,0x80088000, 0x88000,0x80000000,
1040  0x80088000,0x80000000, 0x88000, 0x88000,
1041  0x80000000, 0x88000,0x80088000, 0,
1042  0x80088000, 0, 0,0x80000000,
1043  0x80088000,0x80088000,0x80000000, 0x88000,
1044  0, 0x88000,0x80000000, 0,
1045  0x80000000, 0, 0x88000,0x80088000,
1046  0,0x80000000, 0x88000,0x80088000,
1047  },
1048  {
1049  0x8800010, 0, 0x8800000, 0,
1050  0x10, 0x8800010, 0x8800000, 0x8800000,
1051  0x8800000, 0x10, 0x10, 0x8800000,
1052  0x10, 0x8800000, 0, 0x10,
1053  0, 0x8800010, 0x10, 0x8800000,
1054  0x8800010, 0, 0, 0x10,
1055  0x8800010, 0x8800010, 0x8800000, 0x10,
1056  0, 0, 0x8800010, 0x8800010,
1057  0x10, 0x8800000, 0x8800000, 0x8800010,
1058  0x8800010, 0x10, 0x10, 0,
1059  0, 0x8800010, 0, 0x10,
1060  0x8800000, 0, 0x8800010, 0x8800010,
1061  0x8800000, 0x8800000, 0, 0x10,
1062  0x10, 0x8800010, 0x8800000, 0,
1063  0x10, 0, 0x8800010, 0x8800000,
1064  0x8800010, 0x10, 0, 0x8800000,
1065  },
1066  {
1067  0,0x40001000, 0x1000, 0x1000,
1068  0x40000000, 0, 0x1000,0x40001000,
1069  0x1000,0x40000000,0x40000000, 0,
1070  0x40001000, 0x1000, 0,0x40000000,
1071  0,0x40000000,0x40001000, 0x1000,
1072  0x1000,0x40001000,0x40000000, 0,
1073  0x40000000, 0x1000,0x40001000,0x40000000,
1074  0x40001000, 0, 0,0x40001000,
1075  0x40001000, 0x1000, 0,0x40000000,
1076  0x1000,0x40000000,0x40000000, 0x1000,
1077  0,0x40001000,0x40001000,0x40000000,
1078  0x40000000, 0,0x40001000, 0,
1079  0x40001000, 0, 0,0x40001000,
1080  0x40000000, 0x1000, 0x1000,0x40001000,
1081  0x1000, 0,0x40000000, 0x1000,
1082  0,0x40001000, 0x1000,0x40000000,
1083  },
1084  {
1085  0x100008, 0x100000, 0x8, 0x100008,
1086  0, 0, 0x100008, 0x8,
1087  0x100000, 0x8, 0, 0x100008,
1088  0x8, 0x100008, 0, 0,
1089  0x8, 0x100000, 0x100000, 0x8,
1090  0x100000, 0x100008, 0, 0x100000,
1091  0x100008, 0, 0x8, 0x100000,
1092  0x100000, 0x8, 0x100008, 0,
1093  0x8, 0x100008, 0, 0x8,
1094  0x100000, 0x100000, 0x8, 0,
1095  0x100008, 0, 0x100000, 0x8,
1096  0, 0x8, 0x100000, 0x100000,
1097  0, 0x100008, 0x100008, 0,
1098  0x100008, 0x8, 0x100000, 0x100008,
1099  0x8, 0x100000, 0, 0x100008,
1100  0x100008, 0, 0x8, 0x100000,
1101  },
1102  {
1103  0,0x10000000, 0x44000,0x10044020,
1104  0x10000020, 0x44000,0x10044020,0x10000000,
1105  0x10000000, 0x20, 0x20,0x10044000,
1106  0x44020,0x10000020,0x10044000, 0,
1107  0x10044000, 0,0x10000020, 0x44020,
1108  0x44000,0x10044020, 0, 0x20,
1109  0x20, 0x44020,0x10044020,0x10000020,
1110  0x10000000, 0x44000, 0x44020,0x10044000,
1111  0x10044000, 0x44020,0x10000020,0x10000000,
1112  0x10000000, 0x20, 0x20, 0x44000,
1113  0,0x10044000,0x10044020, 0,
1114  0x10044020, 0, 0x44000,0x10000020,
1115  0x44020, 0x44000, 0,0x10044020,
1116  0x10000020,0x10044000, 0x44020,0x10000000,
1117  0x10044000,0x10000020, 0x44000, 0x44020,
1118  0x20,0x10044020,0x10000000, 0x20,
1119  },
1120  {
1121  0x440, 0x440, 0, 0x200000,
1122  0x440, 0x200000, 0x200440, 0,
1123  0x200440, 0x200440, 0x200000, 0,
1124  0x200000, 0x440, 0, 0x200440,
1125  0, 0x200440, 0x440, 0,
1126  0x200000, 0x440, 0x200000, 0x440,
1127  0x200440, 0, 0, 0x200440,
1128  0x440, 0x200000, 0x200440, 0x200000,
1129  0x200440, 0, 0x200000, 0x200440,
1130  0x200000, 0x440, 0, 0x200000,
1131  0, 0x200000, 0x440, 0,
1132  0x440, 0x200440, 0x200000, 0x440,
1133  0x200440, 0x200000, 0, 0x200440,
1134  0x440, 0, 0x200440, 0,
1135  0x200000, 0x440, 0x200440, 0x200000,
1136  0, 0x200440, 0x440, 0x440,
1137  },
1138  {
1139  0x4400000, 0x2000, 0x2000, 0x4,
1140  0x4402004, 0x4400004, 0x4402000, 0,
1141  0, 0x2004, 0x2004, 0x4400000,
1142  0x4, 0x4402000, 0x4400000, 0x2004,
1143  0x2004, 0x4400000, 0x4400004, 0x4402004,
1144  0, 0x2000, 0x4, 0x4402000,
1145  0x4400004, 0x4402004, 0x4402000, 0x4,
1146  0x4402004, 0x4400004, 0x2000, 0,
1147  0x4402004, 0x4400000, 0x4400004, 0x2004,
1148  0x4400000, 0x2000, 0, 0x4400004,
1149  0x2004, 0x4402004, 0x4402000, 0,
1150  0x2000, 0x4, 0x4, 0x2000,
1151  0, 0x2004, 0x2000, 0x4402000,
1152  0x2004, 0x4400000, 0x4402004, 0,
1153  0x4402000, 0x4, 0x4400004, 0x4402004,
1154  0x4, 0x4402000, 0x4400000, 0x4400004,
1155  },
1156  {
1157  0x880,0x20000000,0x20000880, 0,
1158  0x20000000, 0x880, 0,0x20000880,
1159  0x880, 0,0x20000000,0x20000880,
1160  0x20000880,0x20000880, 0x880, 0,
1161  0x20000000,0x20000880, 0x880,0x20000000,
1162  0x20000880, 0x880, 0,0x20000000,
1163  0, 0,0x20000880, 0x880,
1164  0,0x20000000,0x20000000, 0x880,
1165  0,0x20000000, 0x880,0x20000880,
1166  0x20000880, 0, 0,0x20000000,
1167  0x880,0x20000880,0x20000000, 0x880,
1168  0x20000000, 0x880, 0x880,0x20000000,
1169  0x20000880, 0, 0, 0x880,
1170  0x20000000,0x20000880,0x20000880, 0,
1171  0x880,0x20000000,0x20000880, 0,
1172  0, 0x880,0x20000000,0x20000880,
1173  },
1174  },
1175  {
1176  {
1177  0x2008, 0x8,0x20002000,0x20002008,
1178  0x2000,0x20000008,0x20000008,0x20002000,
1179  0x20000008, 0x2008, 0x2008,0x20000000,
1180  0x20002000, 0x2000, 0,0x20000008,
1181  0x8,0x20000000, 0x2000, 0x8,
1182  0x20002008, 0x2008,0x20000000, 0x2000,
1183  0x20000000, 0, 0x8,0x20002008,
1184  0,0x20002000,0x20002008, 0,
1185  0,0x20002008, 0x2000,0x20000008,
1186  0x2008, 0x8,0x20000000, 0x2000,
1187  0x20002008, 0, 0x8,0x20002000,
1188  0x20000008,0x20000000,0x20002000, 0x2008,
1189  0x20002008, 0x8, 0x2008,0x20002000,
1190  0x2000,0x20000000,0x20000008, 0,
1191  0x8, 0x2000,0x20002000, 0x2008,
1192  0x20000000,0x20002008, 0,0x20000008,
1193  },
1194  {
1195  0x4400010, 0, 0x10, 0x4400010,
1196  0x4400000, 0, 0x4400000, 0x10,
1197  0, 0x4400010, 0, 0x4400000,
1198  0x10, 0x4400010, 0x4400010, 0,
1199  0x10, 0x4400000, 0x4400010, 0,
1200  0x10, 0x4400000, 0, 0x10,
1201  0x4400000, 0x10, 0x4400010, 0x4400000,
1202  0x4400000, 0x10, 0, 0x4400010,
1203  0x10, 0x4400010, 0x4400000, 0x10,
1204  0x4400010, 0x10, 0x4400000, 0,
1205  0x4400000, 0, 0x10, 0x4400010,
1206  0, 0x4400000, 0x10, 0x4400000,
1207  0x4400010, 0, 0, 0x4400000,
1208  0, 0x4400010, 0x10, 0x4400010,
1209  0x4400010, 0x10, 0, 0x4400000,
1210  0x4400000, 0, 0x4400010, 0x10,
1211  },
1212  {
1213  0x10044000, 0x44004, 0,0x10044000,
1214  0x10000004, 0x44000,0x10044000, 0x4,
1215  0x44000, 0x4, 0x44004,0x10000000,
1216  0x10044004,0x10000000,0x10000000,0x10044004,
1217  0,0x10000004, 0x44004, 0,
1218  0x10000000,0x10044004, 0x4,0x10044000,
1219  0x10044004, 0x44000,0x10000004, 0x44004,
1220  0x4, 0, 0x44000,0x10000004,
1221  0x44004, 0,0x10000000, 0x4,
1222  0x10000000,0x10000004, 0x44004,0x10044000,
1223  0, 0x44004, 0x4,0x10044004,
1224  0x10000004, 0x44000,0x10044004,0x10000000,
1225  0x10000004,0x10044000, 0x44000,0x10044004,
1226  0x4, 0x44000,0x10044000, 0x4,
1227  0x44000, 0,0x10044004,0x10000000,
1228  0x10044000,0x10000004, 0, 0x44004,
1229  },
1230  {
1231  0x80000440, 0x100000,0x80000000,0x80100440,
1232  0, 0x100440,0x80100000,0x80000440,
1233  0x100440,0x80100000, 0x100000,0x80000000,
1234  0x80100000,0x80000440, 0x440, 0x100000,
1235  0x80100440, 0x440, 0,0x80000000,
1236  0x440,0x80100000, 0x100440, 0,
1237  0x80000000, 0,0x80000440, 0x100440,
1238  0x100000,0x80100440,0x80100440, 0x440,
1239  0x80100440,0x80000000, 0x440,0x80100000,
1240  0x440, 0x100000,0x80000000, 0x100440,
1241  0x80100000, 0, 0,0x80000440,
1242  0,0x80100440, 0x100440, 0,
1243  0x100000,0x80100440,0x80000440, 0x440,
1244  0x80100440,0x80000000, 0x100000,0x80000440,
1245  0x80000440, 0x440, 0x100440,0x80100000,
1246  0x80000000, 0x100000,0x80100000, 0x100440,
1247  },
1248  {
1249  0x88000, 0, 0, 0x88000,
1250  0x88000, 0x88000, 0, 0x88000,
1251  0, 0, 0x88000, 0,
1252  0x88000, 0x88000, 0x88000, 0,
1253  0, 0x88000, 0, 0,
1254  0x88000, 0, 0, 0x88000,
1255  0, 0x88000, 0x88000, 0,
1256  0x88000, 0, 0, 0x88000,
1257  0x88000, 0x88000, 0, 0x88000,
1258  0, 0, 0x88000, 0x88000,
1259  0x88000, 0, 0x88000, 0,
1260  0, 0x88000, 0, 0,
1261  0x88000, 0, 0, 0x88000,
1262  0x88000, 0x88000, 0, 0,
1263  0, 0x88000, 0x88000, 0,
1264  0, 0, 0x88000, 0x88000,
1265  },
1266  {
1267  0x8800000, 0x20, 0, 0x8800020,
1268  0x20, 0, 0x8800000, 0x20,
1269  0, 0x8800020, 0x20, 0x8800000,
1270  0x8800000, 0x8800000, 0x8800020, 0x20,
1271  0x20, 0x8800000, 0x8800020, 0,
1272  0, 0, 0x8800020, 0x8800020,
1273  0x8800020, 0x8800020, 0x8800000, 0,
1274  0, 0x20, 0x20, 0x8800000,
1275  0, 0x8800000, 0x8800000, 0x20,
1276  0x8800020, 0x20, 0, 0x8800000,
1277  0x8800000, 0, 0x8800020, 0x20,
1278  0x20, 0x8800020, 0x20, 0,
1279  0x8800020, 0x20, 0x20, 0x8800000,
1280  0x8800000, 0x8800020, 0x20, 0,
1281  0, 0x8800000, 0x8800000, 0x8800020,
1282  0x8800020, 0, 0, 0x8800020,
1283  },
1284  {
1285  0, 0, 0x1000,0x40001000,
1286  0x40001000,0x40000000, 0, 0,
1287  0x1000,0x40001000,0x40000000, 0x1000,
1288  0x40000000, 0x1000, 0x1000,0x40000000,
1289  0x40001000, 0,0x40000000,0x40001000,
1290  0, 0x1000,0x40001000, 0,
1291  0x40001000,0x40000000, 0x1000,0x40000000,
1292  0x40000000,0x40001000, 0, 0x1000,
1293  0x40000000, 0x1000,0x40001000,0x40000000,
1294  0, 0, 0x1000,0x40001000,
1295  0x40001000,0x40000000, 0, 0,
1296  0,0x40001000,0x40000000, 0x1000,
1297  0,0x40001000, 0x1000, 0,
1298  0x40000000, 0,0x40001000, 0x1000,
1299  0x1000,0x40000000,0x40000000,0x40001000,
1300  0x40001000, 0x1000, 0x1000,0x40000000,
1301  },
1302  {
1303  0x200880, 0x200880, 0, 0,
1304  0x200000, 0x880, 0x200880, 0x200880,
1305  0, 0x200000, 0x880, 0,
1306  0x880, 0x200000, 0x200000, 0x200880,
1307  0, 0x880, 0x880, 0x200000,
1308  0x200880, 0x200000, 0, 0x880,
1309  0x200000, 0x880, 0x200000, 0x200880,
1310  0x880, 0, 0x200880, 0,
1311  0x880, 0, 0x200000, 0x200880,
1312  0, 0x200000, 0, 0x880,
1313  0x200880, 0x200000, 0x200000, 0x880,
1314  0x200880, 0, 0x880, 0x200000,
1315  0x200880, 0x880, 0x200880, 0x200000,
1316  0x880, 0, 0x200000, 0x200880,
1317  0, 0x200880, 0x880, 0,
1318  0x200000, 0x200880, 0, 0x880,
1319  },
1320  },
1321 };
1322 
1323 /* compressed/interleaved => final permutation table */
1324 static const C_block CF6464[64/CHUNKBITS][1<<CHUNKBITS] = {
1325  {
1326  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1327  {{ 0, 0, 0, 0, 0, 0, 0, 64,}},
1328  {{ 0, 0, 0, 0, 0, 0, 64, 0,}},
1329  {{ 0, 0, 0, 0, 0, 0, 64, 64,}},
1330  {{ 0, 0, 0, 0, 0, 64, 0, 0,}},
1331  {{ 0, 0, 0, 0, 0, 64, 0, 64,}},
1332  {{ 0, 0, 0, 0, 0, 64, 64, 0,}},
1333  {{ 0, 0, 0, 0, 0, 64, 64, 64,}},
1334  {{ 0, 0, 0, 0, 64, 0, 0, 0,}},
1335  {{ 0, 0, 0, 0, 64, 0, 0, 64,}},
1336  {{ 0, 0, 0, 0, 64, 0, 64, 0,}},
1337  {{ 0, 0, 0, 0, 64, 0, 64, 64,}},
1338  {{ 0, 0, 0, 0, 64, 64, 0, 0,}},
1339  {{ 0, 0, 0, 0, 64, 64, 0, 64,}},
1340  {{ 0, 0, 0, 0, 64, 64, 64, 0,}},
1341  {{ 0, 0, 0, 0, 64, 64, 64, 64,}},
1342  },
1343  {
1344  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1345  {{ 0, 0, 0, 0, 0, 0, 0, 4,}},
1346  {{ 0, 0, 0, 0, 0, 0, 4, 0,}},
1347  {{ 0, 0, 0, 0, 0, 0, 4, 4,}},
1348  {{ 0, 0, 0, 0, 0, 4, 0, 0,}},
1349  {{ 0, 0, 0, 0, 0, 4, 0, 4,}},
1350  {{ 0, 0, 0, 0, 0, 4, 4, 0,}},
1351  {{ 0, 0, 0, 0, 0, 4, 4, 4,}},
1352  {{ 0, 0, 0, 0, 4, 0, 0, 0,}},
1353  {{ 0, 0, 0, 0, 4, 0, 0, 4,}},
1354  {{ 0, 0, 0, 0, 4, 0, 4, 0,}},
1355  {{ 0, 0, 0, 0, 4, 0, 4, 4,}},
1356  {{ 0, 0, 0, 0, 4, 4, 0, 0,}},
1357  {{ 0, 0, 0, 0, 4, 4, 0, 4,}},
1358  {{ 0, 0, 0, 0, 4, 4, 4, 0,}},
1359  {{ 0, 0, 0, 0, 4, 4, 4, 4,}},
1360  },
1361  {
1362  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1363  {{ 0, 0, 0, 64, 0, 0, 0, 0,}},
1364  {{ 0, 0, 64, 0, 0, 0, 0, 0,}},
1365  {{ 0, 0, 64, 64, 0, 0, 0, 0,}},
1366  {{ 0, 64, 0, 0, 0, 0, 0, 0,}},
1367  {{ 0, 64, 0, 64, 0, 0, 0, 0,}},
1368  {{ 0, 64, 64, 0, 0, 0, 0, 0,}},
1369  {{ 0, 64, 64, 64, 0, 0, 0, 0,}},
1370  {{ 64, 0, 0, 0, 0, 0, 0, 0,}},
1371  {{ 64, 0, 0, 64, 0, 0, 0, 0,}},
1372  {{ 64, 0, 64, 0, 0, 0, 0, 0,}},
1373  {{ 64, 0, 64, 64, 0, 0, 0, 0,}},
1374  {{ 64, 64, 0, 0, 0, 0, 0, 0,}},
1375  {{ 64, 64, 0, 64, 0, 0, 0, 0,}},
1376  {{ 64, 64, 64, 0, 0, 0, 0, 0,}},
1377  {{ 64, 64, 64, 64, 0, 0, 0, 0,}},
1378  },
1379  {
1380  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1381  {{ 0, 0, 0, 4, 0, 0, 0, 0,}},
1382  {{ 0, 0, 4, 0, 0, 0, 0, 0,}},
1383  {{ 0, 0, 4, 4, 0, 0, 0, 0,}},
1384  {{ 0, 4, 0, 0, 0, 0, 0, 0,}},
1385  {{ 0, 4, 0, 4, 0, 0, 0, 0,}},
1386  {{ 0, 4, 4, 0, 0, 0, 0, 0,}},
1387  {{ 0, 4, 4, 4, 0, 0, 0, 0,}},
1388  {{ 4, 0, 0, 0, 0, 0, 0, 0,}},
1389  {{ 4, 0, 0, 4, 0, 0, 0, 0,}},
1390  {{ 4, 0, 4, 0, 0, 0, 0, 0,}},
1391  {{ 4, 0, 4, 4, 0, 0, 0, 0,}},
1392  {{ 4, 4, 0, 0, 0, 0, 0, 0,}},
1393  {{ 4, 4, 0, 4, 0, 0, 0, 0,}},
1394  {{ 4, 4, 4, 0, 0, 0, 0, 0,}},
1395  {{ 4, 4, 4, 4, 0, 0, 0, 0,}},
1396  },
1397  {
1398  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1399  {{ 0, 0, 0, 0, 0, 0, 0, 16,}},
1400  {{ 0, 0, 0, 0, 0, 0, 16, 0,}},
1401  {{ 0, 0, 0, 0, 0, 0, 16, 16,}},
1402  {{ 0, 0, 0, 0, 0, 16, 0, 0,}},
1403  {{ 0, 0, 0, 0, 0, 16, 0, 16,}},
1404  {{ 0, 0, 0, 0, 0, 16, 16, 0,}},
1405  {{ 0, 0, 0, 0, 0, 16, 16, 16,}},
1406  {{ 0, 0, 0, 0, 16, 0, 0, 0,}},
1407  {{ 0, 0, 0, 0, 16, 0, 0, 16,}},
1408  {{ 0, 0, 0, 0, 16, 0, 16, 0,}},
1409  {{ 0, 0, 0, 0, 16, 0, 16, 16,}},
1410  {{ 0, 0, 0, 0, 16, 16, 0, 0,}},
1411  {{ 0, 0, 0, 0, 16, 16, 0, 16,}},
1412  {{ 0, 0, 0, 0, 16, 16, 16, 0,}},
1413  {{ 0, 0, 0, 0, 16, 16, 16, 16,}},
1414  },
1415  {
1416  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1417  {{ 0, 0, 0, 0, 0, 0, 0, 1,}},
1418  {{ 0, 0, 0, 0, 0, 0, 1, 0,}},
1419  {{ 0, 0, 0, 0, 0, 0, 1, 1,}},
1420  {{ 0, 0, 0, 0, 0, 1, 0, 0,}},
1421  {{ 0, 0, 0, 0, 0, 1, 0, 1,}},
1422  {{ 0, 0, 0, 0, 0, 1, 1, 0,}},
1423  {{ 0, 0, 0, 0, 0, 1, 1, 1,}},
1424  {{ 0, 0, 0, 0, 1, 0, 0, 0,}},
1425  {{ 0, 0, 0, 0, 1, 0, 0, 1,}},
1426  {{ 0, 0, 0, 0, 1, 0, 1, 0,}},
1427  {{ 0, 0, 0, 0, 1, 0, 1, 1,}},
1428  {{ 0, 0, 0, 0, 1, 1, 0, 0,}},
1429  {{ 0, 0, 0, 0, 1, 1, 0, 1,}},
1430  {{ 0, 0, 0, 0, 1, 1, 1, 0,}},
1431  {{ 0, 0, 0, 0, 1, 1, 1, 1,}},
1432  },
1433  {
1434  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1435  {{ 0, 0, 0, 16, 0, 0, 0, 0,}},
1436  {{ 0, 0, 16, 0, 0, 0, 0, 0,}},
1437  {{ 0, 0, 16, 16, 0, 0, 0, 0,}},
1438  {{ 0, 16, 0, 0, 0, 0, 0, 0,}},
1439  {{ 0, 16, 0, 16, 0, 0, 0, 0,}},
1440  {{ 0, 16, 16, 0, 0, 0, 0, 0,}},
1441  {{ 0, 16, 16, 16, 0, 0, 0, 0,}},
1442  {{ 16, 0, 0, 0, 0, 0, 0, 0,}},
1443  {{ 16, 0, 0, 16, 0, 0, 0, 0,}},
1444  {{ 16, 0, 16, 0, 0, 0, 0, 0,}},
1445  {{ 16, 0, 16, 16, 0, 0, 0, 0,}},
1446  {{ 16, 16, 0, 0, 0, 0, 0, 0,}},
1447  {{ 16, 16, 0, 16, 0, 0, 0, 0,}},
1448  {{ 16, 16, 16, 0, 0, 0, 0, 0,}},
1449  {{ 16, 16, 16, 16, 0, 0, 0, 0,}},
1450  },
1451  {
1452  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1453  {{ 0, 0, 0, 1, 0, 0, 0, 0,}},
1454  {{ 0, 0, 1, 0, 0, 0, 0, 0,}},
1455  {{ 0, 0, 1, 1, 0, 0, 0, 0,}},
1456  {{ 0, 1, 0, 0, 0, 0, 0, 0,}},
1457  {{ 0, 1, 0, 1, 0, 0, 0, 0,}},
1458  {{ 0, 1, 1, 0, 0, 0, 0, 0,}},
1459  {{ 0, 1, 1, 1, 0, 0, 0, 0,}},
1460  {{ 1, 0, 0, 0, 0, 0, 0, 0,}},
1461  {{ 1, 0, 0, 1, 0, 0, 0, 0,}},
1462  {{ 1, 0, 1, 0, 0, 0, 0, 0,}},
1463  {{ 1, 0, 1, 1, 0, 0, 0, 0,}},
1464  {{ 1, 1, 0, 0, 0, 0, 0, 0,}},
1465  {{ 1, 1, 0, 1, 0, 0, 0, 0,}},
1466  {{ 1, 1, 1, 0, 0, 0, 0, 0,}},
1467  {{ 1, 1, 1, 1, 0, 0, 0, 0,}},
1468  },
1469  {
1470  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1471  {{ 0, 0, 0, 0, 0, 0, 0,128,}},
1472  {{ 0, 0, 0, 0, 0, 0,128, 0,}},
1473  {{ 0, 0, 0, 0, 0, 0,128,128,}},
1474  {{ 0, 0, 0, 0, 0,128, 0, 0,}},
1475  {{ 0, 0, 0, 0, 0,128, 0,128,}},
1476  {{ 0, 0, 0, 0, 0,128,128, 0,}},
1477  {{ 0, 0, 0, 0, 0,128,128,128,}},
1478  {{ 0, 0, 0, 0,128, 0, 0, 0,}},
1479  {{ 0, 0, 0, 0,128, 0, 0,128,}},
1480  {{ 0, 0, 0, 0,128, 0,128, 0,}},
1481  {{ 0, 0, 0, 0,128, 0,128,128,}},
1482  {{ 0, 0, 0, 0,128,128, 0, 0,}},
1483  {{ 0, 0, 0, 0,128,128, 0,128,}},
1484  {{ 0, 0, 0, 0,128,128,128, 0,}},
1485  {{ 0, 0, 0, 0,128,128,128,128,}},
1486  },
1487  {
1488  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1489  {{ 0, 0, 0, 0, 0, 0, 0, 8,}},
1490  {{ 0, 0, 0, 0, 0, 0, 8, 0,}},
1491  {{ 0, 0, 0, 0, 0, 0, 8, 8,}},
1492  {{ 0, 0, 0, 0, 0, 8, 0, 0,}},
1493  {{ 0, 0, 0, 0, 0, 8, 0, 8,}},
1494  {{ 0, 0, 0, 0, 0, 8, 8, 0,}},
1495  {{ 0, 0, 0, 0, 0, 8, 8, 8,}},
1496  {{ 0, 0, 0, 0, 8, 0, 0, 0,}},
1497  {{ 0, 0, 0, 0, 8, 0, 0, 8,}},
1498  {{ 0, 0, 0, 0, 8, 0, 8, 0,}},
1499  {{ 0, 0, 0, 0, 8, 0, 8, 8,}},
1500  {{ 0, 0, 0, 0, 8, 8, 0, 0,}},
1501  {{ 0, 0, 0, 0, 8, 8, 0, 8,}},
1502  {{ 0, 0, 0, 0, 8, 8, 8, 0,}},
1503  {{ 0, 0, 0, 0, 8, 8, 8, 8,}},
1504  },
1505  {
1506  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1507  {{ 0, 0, 0,128, 0, 0, 0, 0,}},
1508  {{ 0, 0,128, 0, 0, 0, 0, 0,}},
1509  {{ 0, 0,128,128, 0, 0, 0, 0,}},
1510  {{ 0,128, 0, 0, 0, 0, 0, 0,}},
1511  {{ 0,128, 0,128, 0, 0, 0, 0,}},
1512  {{ 0,128,128, 0, 0, 0, 0, 0,}},
1513  {{ 0,128,128,128, 0, 0, 0, 0,}},
1514  {{128, 0, 0, 0, 0, 0, 0, 0,}},
1515  {{128, 0, 0,128, 0, 0, 0, 0,}},
1516  {{128, 0,128, 0, 0, 0, 0, 0,}},
1517  {{128, 0,128,128, 0, 0, 0, 0,}},
1518  {{128,128, 0, 0, 0, 0, 0, 0,}},
1519  {{128,128, 0,128, 0, 0, 0, 0,}},
1520  {{128,128,128, 0, 0, 0, 0, 0,}},
1521  {{128,128,128,128, 0, 0, 0, 0,}},
1522  },
1523  {
1524  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1525  {{ 0, 0, 0, 8, 0, 0, 0, 0,}},
1526  {{ 0, 0, 8, 0, 0, 0, 0, 0,}},
1527  {{ 0, 0, 8, 8, 0, 0, 0, 0,}},
1528  {{ 0, 8, 0, 0, 0, 0, 0, 0,}},
1529  {{ 0, 8, 0, 8, 0, 0, 0, 0,}},
1530  {{ 0, 8, 8, 0, 0, 0, 0, 0,}},
1531  {{ 0, 8, 8, 8, 0, 0, 0, 0,}},
1532  {{ 8, 0, 0, 0, 0, 0, 0, 0,}},
1533  {{ 8, 0, 0, 8, 0, 0, 0, 0,}},
1534  {{ 8, 0, 8, 0, 0, 0, 0, 0,}},
1535  {{ 8, 0, 8, 8, 0, 0, 0, 0,}},
1536  {{ 8, 8, 0, 0, 0, 0, 0, 0,}},
1537  {{ 8, 8, 0, 8, 0, 0, 0, 0,}},
1538  {{ 8, 8, 8, 0, 0, 0, 0, 0,}},
1539  {{ 8, 8, 8, 8, 0, 0, 0, 0,}},
1540  },
1541  {
1542  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1543  {{ 0, 0, 0, 0, 0, 0, 0, 32,}},
1544  {{ 0, 0, 0, 0, 0, 0, 32, 0,}},
1545  {{ 0, 0, 0, 0, 0, 0, 32, 32,}},
1546  {{ 0, 0, 0, 0, 0, 32, 0, 0,}},
1547  {{ 0, 0, 0, 0, 0, 32, 0, 32,}},
1548  {{ 0, 0, 0, 0, 0, 32, 32, 0,}},
1549  {{ 0, 0, 0, 0, 0, 32, 32, 32,}},
1550  {{ 0, 0, 0, 0, 32, 0, 0, 0,}},
1551  {{ 0, 0, 0, 0, 32, 0, 0, 32,}},
1552  {{ 0, 0, 0, 0, 32, 0, 32, 0,}},
1553  {{ 0, 0, 0, 0, 32, 0, 32, 32,}},
1554  {{ 0, 0, 0, 0, 32, 32, 0, 0,}},
1555  {{ 0, 0, 0, 0, 32, 32, 0, 32,}},
1556  {{ 0, 0, 0, 0, 32, 32, 32, 0,}},
1557  {{ 0, 0, 0, 0, 32, 32, 32, 32,}},
1558  },
1559  {
1560  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1561  {{ 0, 0, 0, 0, 0, 0, 0, 2,}},
1562  {{ 0, 0, 0, 0, 0, 0, 2, 0,}},
1563  {{ 0, 0, 0, 0, 0, 0, 2, 2,}},
1564  {{ 0, 0, 0, 0, 0, 2, 0, 0,}},
1565  {{ 0, 0, 0, 0, 0, 2, 0, 2,}},
1566  {{ 0, 0, 0, 0, 0, 2, 2, 0,}},
1567  {{ 0, 0, 0, 0, 0, 2, 2, 2,}},
1568  {{ 0, 0, 0, 0, 2, 0, 0, 0,}},
1569  {{ 0, 0, 0, 0, 2, 0, 0, 2,}},
1570  {{ 0, 0, 0, 0, 2, 0, 2, 0,}},
1571  {{ 0, 0, 0, 0, 2, 0, 2, 2,}},
1572  {{ 0, 0, 0, 0, 2, 2, 0, 0,}},
1573  {{ 0, 0, 0, 0, 2, 2, 0, 2,}},
1574  {{ 0, 0, 0, 0, 2, 2, 2, 0,}},
1575  {{ 0, 0, 0, 0, 2, 2, 2, 2,}},
1576  },
1577  {
1578  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1579  {{ 0, 0, 0, 32, 0, 0, 0, 0,}},
1580  {{ 0, 0, 32, 0, 0, 0, 0, 0,}},
1581  {{ 0, 0, 32, 32, 0, 0, 0, 0,}},
1582  {{ 0, 32, 0, 0, 0, 0, 0, 0,}},
1583  {{ 0, 32, 0, 32, 0, 0, 0, 0,}},
1584  {{ 0, 32, 32, 0, 0, 0, 0, 0,}},
1585  {{ 0, 32, 32, 32, 0, 0, 0, 0,}},
1586  {{ 32, 0, 0, 0, 0, 0, 0, 0,}},
1587  {{ 32, 0, 0, 32, 0, 0, 0, 0,}},
1588  {{ 32, 0, 32, 0, 0, 0, 0, 0,}},
1589  {{ 32, 0, 32, 32, 0, 0, 0, 0,}},
1590  {{ 32, 32, 0, 0, 0, 0, 0, 0,}},
1591  {{ 32, 32, 0, 32, 0, 0, 0, 0,}},
1592  {{ 32, 32, 32, 0, 0, 0, 0, 0,}},
1593  {{ 32, 32, 32, 32, 0, 0, 0, 0,}},
1594  },
1595  {
1596  {{ 0, 0, 0, 0, 0, 0, 0, 0,}},
1597  {{ 0, 0, 0, 2, 0, 0, 0, 0,}},
1598  {{ 0, 0, 2, 0, 0, 0, 0, 0,}},
1599  {{ 0, 0, 2, 2, 0, 0, 0, 0,}},
1600  {{ 0, 2, 0, 0, 0, 0, 0, 0,}},
1601  {{ 0, 2, 0, 2, 0, 0, 0, 0,}},
1602  {{ 0, 2, 2, 0, 0, 0, 0, 0,}},
1603  {{ 0, 2, 2, 2, 0, 0, 0, 0,}},
1604  {{ 2, 0, 0, 0, 0, 0, 0, 0,}},
1605  {{ 2, 0, 0, 2, 0, 0, 0, 0,}},
1606  {{ 2, 0, 2, 0, 0, 0, 0, 0,}},
1607  {{ 2, 0, 2, 2, 0, 0, 0, 0,}},
1608  {{ 2, 2, 0, 0, 0, 0, 0, 0,}},
1609  {{ 2, 2, 0, 2, 0, 0, 0, 0,}},
1610  {{ 2, 2, 2, 0, 0, 0, 0, 0,}},
1611  {{ 2, 2, 2, 2, 0, 0, 0, 0,}},
1612  },
1613 };
1614 
1615 #define HAVE_DES_TABLES 1
1616 #endif
#define SPE
Definition: crypt.c:360
#define PC2ROT
Definition: crypt.c:358
#define CF6464
Definition: crypt.c:361
#define PC1ROT
Definition: crypt.c:357
#define CHUNKBITS
Definition: crypt.h:227
#define IE3264
Definition: crypt.c:359
Definition: crypt.h:203