xref: /aosp_15_r20/external/modp_b64/modp_b64_data.h (revision c3cd14fb6370b1f0a2b85e79eb9b360b8782fd16)
1*c3cd14fbSJerome Gaillard #include <stdint.h>
2*c3cd14fbSJerome Gaillard 
3*c3cd14fbSJerome Gaillard #define CHAR62 '+'
4*c3cd14fbSJerome Gaillard #define CHAR63 '/'
5*c3cd14fbSJerome Gaillard #define CHARPAD '='
6*c3cd14fbSJerome Gaillard static const char e0[256] = {
7*c3cd14fbSJerome Gaillard  'A',  'A',  'A',  'A',  'B',  'B',  'B',  'B',  'C',  'C',
8*c3cd14fbSJerome Gaillard  'C',  'C',  'D',  'D',  'D',  'D',  'E',  'E',  'E',  'E',
9*c3cd14fbSJerome Gaillard  'F',  'F',  'F',  'F',  'G',  'G',  'G',  'G',  'H',  'H',
10*c3cd14fbSJerome Gaillard  'H',  'H',  'I',  'I',  'I',  'I',  'J',  'J',  'J',  'J',
11*c3cd14fbSJerome Gaillard  'K',  'K',  'K',  'K',  'L',  'L',  'L',  'L',  'M',  'M',
12*c3cd14fbSJerome Gaillard  'M',  'M',  'N',  'N',  'N',  'N',  'O',  'O',  'O',  'O',
13*c3cd14fbSJerome Gaillard  'P',  'P',  'P',  'P',  'Q',  'Q',  'Q',  'Q',  'R',  'R',
14*c3cd14fbSJerome Gaillard  'R',  'R',  'S',  'S',  'S',  'S',  'T',  'T',  'T',  'T',
15*c3cd14fbSJerome Gaillard  'U',  'U',  'U',  'U',  'V',  'V',  'V',  'V',  'W',  'W',
16*c3cd14fbSJerome Gaillard  'W',  'W',  'X',  'X',  'X',  'X',  'Y',  'Y',  'Y',  'Y',
17*c3cd14fbSJerome Gaillard  'Z',  'Z',  'Z',  'Z',  'a',  'a',  'a',  'a',  'b',  'b',
18*c3cd14fbSJerome Gaillard  'b',  'b',  'c',  'c',  'c',  'c',  'd',  'd',  'd',  'd',
19*c3cd14fbSJerome Gaillard  'e',  'e',  'e',  'e',  'f',  'f',  'f',  'f',  'g',  'g',
20*c3cd14fbSJerome Gaillard  'g',  'g',  'h',  'h',  'h',  'h',  'i',  'i',  'i',  'i',
21*c3cd14fbSJerome Gaillard  'j',  'j',  'j',  'j',  'k',  'k',  'k',  'k',  'l',  'l',
22*c3cd14fbSJerome Gaillard  'l',  'l',  'm',  'm',  'm',  'm',  'n',  'n',  'n',  'n',
23*c3cd14fbSJerome Gaillard  'o',  'o',  'o',  'o',  'p',  'p',  'p',  'p',  'q',  'q',
24*c3cd14fbSJerome Gaillard  'q',  'q',  'r',  'r',  'r',  'r',  's',  's',  's',  's',
25*c3cd14fbSJerome Gaillard  't',  't',  't',  't',  'u',  'u',  'u',  'u',  'v',  'v',
26*c3cd14fbSJerome Gaillard  'v',  'v',  'w',  'w',  'w',  'w',  'x',  'x',  'x',  'x',
27*c3cd14fbSJerome Gaillard  'y',  'y',  'y',  'y',  'z',  'z',  'z',  'z',  '0',  '0',
28*c3cd14fbSJerome Gaillard  '0',  '0',  '1',  '1',  '1',  '1',  '2',  '2',  '2',  '2',
29*c3cd14fbSJerome Gaillard  '3',  '3',  '3',  '3',  '4',  '4',  '4',  '4',  '5',  '5',
30*c3cd14fbSJerome Gaillard  '5',  '5',  '6',  '6',  '6',  '6',  '7',  '7',  '7',  '7',
31*c3cd14fbSJerome Gaillard  '8',  '8',  '8',  '8',  '9',  '9',  '9',  '9',  '+',  '+',
32*c3cd14fbSJerome Gaillard  '+',  '+',  '/',  '/',  '/',  '/'
33*c3cd14fbSJerome Gaillard };
34*c3cd14fbSJerome Gaillard 
35*c3cd14fbSJerome Gaillard static const char e1[256] = {
36*c3cd14fbSJerome Gaillard  'A',  'B',  'C',  'D',  'E',  'F',  'G',  'H',  'I',  'J',
37*c3cd14fbSJerome Gaillard  'K',  'L',  'M',  'N',  'O',  'P',  'Q',  'R',  'S',  'T',
38*c3cd14fbSJerome Gaillard  'U',  'V',  'W',  'X',  'Y',  'Z',  'a',  'b',  'c',  'd',
39*c3cd14fbSJerome Gaillard  'e',  'f',  'g',  'h',  'i',  'j',  'k',  'l',  'm',  'n',
40*c3cd14fbSJerome Gaillard  'o',  'p',  'q',  'r',  's',  't',  'u',  'v',  'w',  'x',
41*c3cd14fbSJerome Gaillard  'y',  'z',  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
42*c3cd14fbSJerome Gaillard  '8',  '9',  '+',  '/',  'A',  'B',  'C',  'D',  'E',  'F',
43*c3cd14fbSJerome Gaillard  'G',  'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O',  'P',
44*c3cd14fbSJerome Gaillard  'Q',  'R',  'S',  'T',  'U',  'V',  'W',  'X',  'Y',  'Z',
45*c3cd14fbSJerome Gaillard  'a',  'b',  'c',  'd',  'e',  'f',  'g',  'h',  'i',  'j',
46*c3cd14fbSJerome Gaillard  'k',  'l',  'm',  'n',  'o',  'p',  'q',  'r',  's',  't',
47*c3cd14fbSJerome Gaillard  'u',  'v',  'w',  'x',  'y',  'z',  '0',  '1',  '2',  '3',
48*c3cd14fbSJerome Gaillard  '4',  '5',  '6',  '7',  '8',  '9',  '+',  '/',  'A',  'B',
49*c3cd14fbSJerome Gaillard  'C',  'D',  'E',  'F',  'G',  'H',  'I',  'J',  'K',  'L',
50*c3cd14fbSJerome Gaillard  'M',  'N',  'O',  'P',  'Q',  'R',  'S',  'T',  'U',  'V',
51*c3cd14fbSJerome Gaillard  'W',  'X',  'Y',  'Z',  'a',  'b',  'c',  'd',  'e',  'f',
52*c3cd14fbSJerome Gaillard  'g',  'h',  'i',  'j',  'k',  'l',  'm',  'n',  'o',  'p',
53*c3cd14fbSJerome Gaillard  'q',  'r',  's',  't',  'u',  'v',  'w',  'x',  'y',  'z',
54*c3cd14fbSJerome Gaillard  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
55*c3cd14fbSJerome Gaillard  '+',  '/',  'A',  'B',  'C',  'D',  'E',  'F',  'G',  'H',
56*c3cd14fbSJerome Gaillard  'I',  'J',  'K',  'L',  'M',  'N',  'O',  'P',  'Q',  'R',
57*c3cd14fbSJerome Gaillard  'S',  'T',  'U',  'V',  'W',  'X',  'Y',  'Z',  'a',  'b',
58*c3cd14fbSJerome Gaillard  'c',  'd',  'e',  'f',  'g',  'h',  'i',  'j',  'k',  'l',
59*c3cd14fbSJerome Gaillard  'm',  'n',  'o',  'p',  'q',  'r',  's',  't',  'u',  'v',
60*c3cd14fbSJerome Gaillard  'w',  'x',  'y',  'z',  '0',  '1',  '2',  '3',  '4',  '5',
61*c3cd14fbSJerome Gaillard  '6',  '7',  '8',  '9',  '+',  '/'
62*c3cd14fbSJerome Gaillard };
63*c3cd14fbSJerome Gaillard 
64*c3cd14fbSJerome Gaillard static const char e2[256] = {
65*c3cd14fbSJerome Gaillard  'A',  'B',  'C',  'D',  'E',  'F',  'G',  'H',  'I',  'J',
66*c3cd14fbSJerome Gaillard  'K',  'L',  'M',  'N',  'O',  'P',  'Q',  'R',  'S',  'T',
67*c3cd14fbSJerome Gaillard  'U',  'V',  'W',  'X',  'Y',  'Z',  'a',  'b',  'c',  'd',
68*c3cd14fbSJerome Gaillard  'e',  'f',  'g',  'h',  'i',  'j',  'k',  'l',  'm',  'n',
69*c3cd14fbSJerome Gaillard  'o',  'p',  'q',  'r',  's',  't',  'u',  'v',  'w',  'x',
70*c3cd14fbSJerome Gaillard  'y',  'z',  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',
71*c3cd14fbSJerome Gaillard  '8',  '9',  '+',  '/',  'A',  'B',  'C',  'D',  'E',  'F',
72*c3cd14fbSJerome Gaillard  'G',  'H',  'I',  'J',  'K',  'L',  'M',  'N',  'O',  'P',
73*c3cd14fbSJerome Gaillard  'Q',  'R',  'S',  'T',  'U',  'V',  'W',  'X',  'Y',  'Z',
74*c3cd14fbSJerome Gaillard  'a',  'b',  'c',  'd',  'e',  'f',  'g',  'h',  'i',  'j',
75*c3cd14fbSJerome Gaillard  'k',  'l',  'm',  'n',  'o',  'p',  'q',  'r',  's',  't',
76*c3cd14fbSJerome Gaillard  'u',  'v',  'w',  'x',  'y',  'z',  '0',  '1',  '2',  '3',
77*c3cd14fbSJerome Gaillard  '4',  '5',  '6',  '7',  '8',  '9',  '+',  '/',  'A',  'B',
78*c3cd14fbSJerome Gaillard  'C',  'D',  'E',  'F',  'G',  'H',  'I',  'J',  'K',  'L',
79*c3cd14fbSJerome Gaillard  'M',  'N',  'O',  'P',  'Q',  'R',  'S',  'T',  'U',  'V',
80*c3cd14fbSJerome Gaillard  'W',  'X',  'Y',  'Z',  'a',  'b',  'c',  'd',  'e',  'f',
81*c3cd14fbSJerome Gaillard  'g',  'h',  'i',  'j',  'k',  'l',  'm',  'n',  'o',  'p',
82*c3cd14fbSJerome Gaillard  'q',  'r',  's',  't',  'u',  'v',  'w',  'x',  'y',  'z',
83*c3cd14fbSJerome Gaillard  '0',  '1',  '2',  '3',  '4',  '5',  '6',  '7',  '8',  '9',
84*c3cd14fbSJerome Gaillard  '+',  '/',  'A',  'B',  'C',  'D',  'E',  'F',  'G',  'H',
85*c3cd14fbSJerome Gaillard  'I',  'J',  'K',  'L',  'M',  'N',  'O',  'P',  'Q',  'R',
86*c3cd14fbSJerome Gaillard  'S',  'T',  'U',  'V',  'W',  'X',  'Y',  'Z',  'a',  'b',
87*c3cd14fbSJerome Gaillard  'c',  'd',  'e',  'f',  'g',  'h',  'i',  'j',  'k',  'l',
88*c3cd14fbSJerome Gaillard  'm',  'n',  'o',  'p',  'q',  'r',  's',  't',  'u',  'v',
89*c3cd14fbSJerome Gaillard  'w',  'x',  'y',  'z',  '0',  '1',  '2',  '3',  '4',  '5',
90*c3cd14fbSJerome Gaillard  '6',  '7',  '8',  '9',  '+',  '/'
91*c3cd14fbSJerome Gaillard };
92*c3cd14fbSJerome Gaillard 
93*c3cd14fbSJerome Gaillard 
94*c3cd14fbSJerome Gaillard 
95*c3cd14fbSJerome Gaillard #ifdef WORDS_BIGENDIAN
96*c3cd14fbSJerome Gaillard 
97*c3cd14fbSJerome Gaillard 
98*c3cd14fbSJerome Gaillard /* SPECIAL DECODE TABLES FOR BIG ENDIAN (IBM/MOTOROLA/SUN) CPUS */
99*c3cd14fbSJerome Gaillard 
100*c3cd14fbSJerome Gaillard static const uint32_t d0[256] = {
101*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
102*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
103*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
104*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
105*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
106*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
107*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
108*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00f80000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00fc0000,
109*c3cd14fbSJerome Gaillard 0x00d00000, 0x00d40000, 0x00d80000, 0x00dc0000, 0x00e00000, 0x00e40000,
110*c3cd14fbSJerome Gaillard 0x00e80000, 0x00ec0000, 0x00f00000, 0x00f40000, 0x01ffffff, 0x01ffffff,
111*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
112*c3cd14fbSJerome Gaillard 0x00040000, 0x00080000, 0x000c0000, 0x00100000, 0x00140000, 0x00180000,
113*c3cd14fbSJerome Gaillard 0x001c0000, 0x00200000, 0x00240000, 0x00280000, 0x002c0000, 0x00300000,
114*c3cd14fbSJerome Gaillard 0x00340000, 0x00380000, 0x003c0000, 0x00400000, 0x00440000, 0x00480000,
115*c3cd14fbSJerome Gaillard 0x004c0000, 0x00500000, 0x00540000, 0x00580000, 0x005c0000, 0x00600000,
116*c3cd14fbSJerome Gaillard 0x00640000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
117*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00680000, 0x006c0000, 0x00700000, 0x00740000, 0x00780000,
118*c3cd14fbSJerome Gaillard 0x007c0000, 0x00800000, 0x00840000, 0x00880000, 0x008c0000, 0x00900000,
119*c3cd14fbSJerome Gaillard 0x00940000, 0x00980000, 0x009c0000, 0x00a00000, 0x00a40000, 0x00a80000,
120*c3cd14fbSJerome Gaillard 0x00ac0000, 0x00b00000, 0x00b40000, 0x00b80000, 0x00bc0000, 0x00c00000,
121*c3cd14fbSJerome Gaillard 0x00c40000, 0x00c80000, 0x00cc0000, 0x01ffffff, 0x01ffffff, 0x01ffffff,
122*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
123*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
124*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
125*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
126*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
127*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
128*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
129*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
130*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
131*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
132*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
133*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
134*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
135*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
136*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
137*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
138*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
139*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
140*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
141*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
142*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
143*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
144*c3cd14fbSJerome Gaillard };
145*c3cd14fbSJerome Gaillard 
146*c3cd14fbSJerome Gaillard 
147*c3cd14fbSJerome Gaillard static const uint32_t d1[256] = {
148*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
149*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
150*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
151*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
152*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
153*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
154*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
155*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0003e000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0003f000,
156*c3cd14fbSJerome Gaillard 0x00034000, 0x00035000, 0x00036000, 0x00037000, 0x00038000, 0x00039000,
157*c3cd14fbSJerome Gaillard 0x0003a000, 0x0003b000, 0x0003c000, 0x0003d000, 0x01ffffff, 0x01ffffff,
158*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
159*c3cd14fbSJerome Gaillard 0x00001000, 0x00002000, 0x00003000, 0x00004000, 0x00005000, 0x00006000,
160*c3cd14fbSJerome Gaillard 0x00007000, 0x00008000, 0x00009000, 0x0000a000, 0x0000b000, 0x0000c000,
161*c3cd14fbSJerome Gaillard 0x0000d000, 0x0000e000, 0x0000f000, 0x00010000, 0x00011000, 0x00012000,
162*c3cd14fbSJerome Gaillard 0x00013000, 0x00014000, 0x00015000, 0x00016000, 0x00017000, 0x00018000,
163*c3cd14fbSJerome Gaillard 0x00019000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
164*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0001a000, 0x0001b000, 0x0001c000, 0x0001d000, 0x0001e000,
165*c3cd14fbSJerome Gaillard 0x0001f000, 0x00020000, 0x00021000, 0x00022000, 0x00023000, 0x00024000,
166*c3cd14fbSJerome Gaillard 0x00025000, 0x00026000, 0x00027000, 0x00028000, 0x00029000, 0x0002a000,
167*c3cd14fbSJerome Gaillard 0x0002b000, 0x0002c000, 0x0002d000, 0x0002e000, 0x0002f000, 0x00030000,
168*c3cd14fbSJerome Gaillard 0x00031000, 0x00032000, 0x00033000, 0x01ffffff, 0x01ffffff, 0x01ffffff,
169*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
170*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
171*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
172*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
173*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
174*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
175*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
176*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
177*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
178*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
179*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
180*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
181*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
182*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
183*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
184*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
185*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
186*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
187*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
188*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
189*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
190*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
191*c3cd14fbSJerome Gaillard };
192*c3cd14fbSJerome Gaillard 
193*c3cd14fbSJerome Gaillard 
194*c3cd14fbSJerome Gaillard static const uint32_t d2[256] = {
195*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
196*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
197*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
198*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
199*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
200*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
201*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
202*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00000f80, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000fc0,
203*c3cd14fbSJerome Gaillard 0x00000d00, 0x00000d40, 0x00000d80, 0x00000dc0, 0x00000e00, 0x00000e40,
204*c3cd14fbSJerome Gaillard 0x00000e80, 0x00000ec0, 0x00000f00, 0x00000f40, 0x01ffffff, 0x01ffffff,
205*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
206*c3cd14fbSJerome Gaillard 0x00000040, 0x00000080, 0x000000c0, 0x00000100, 0x00000140, 0x00000180,
207*c3cd14fbSJerome Gaillard 0x000001c0, 0x00000200, 0x00000240, 0x00000280, 0x000002c0, 0x00000300,
208*c3cd14fbSJerome Gaillard 0x00000340, 0x00000380, 0x000003c0, 0x00000400, 0x00000440, 0x00000480,
209*c3cd14fbSJerome Gaillard 0x000004c0, 0x00000500, 0x00000540, 0x00000580, 0x000005c0, 0x00000600,
210*c3cd14fbSJerome Gaillard 0x00000640, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
211*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00000680, 0x000006c0, 0x00000700, 0x00000740, 0x00000780,
212*c3cd14fbSJerome Gaillard 0x000007c0, 0x00000800, 0x00000840, 0x00000880, 0x000008c0, 0x00000900,
213*c3cd14fbSJerome Gaillard 0x00000940, 0x00000980, 0x000009c0, 0x00000a00, 0x00000a40, 0x00000a80,
214*c3cd14fbSJerome Gaillard 0x00000ac0, 0x00000b00, 0x00000b40, 0x00000b80, 0x00000bc0, 0x00000c00,
215*c3cd14fbSJerome Gaillard 0x00000c40, 0x00000c80, 0x00000cc0, 0x01ffffff, 0x01ffffff, 0x01ffffff,
216*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
217*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
218*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
219*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
220*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
221*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
222*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
223*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
224*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
225*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
226*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
227*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
228*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
229*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
230*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
231*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
232*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
233*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
234*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
235*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
236*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
237*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
238*c3cd14fbSJerome Gaillard };
239*c3cd14fbSJerome Gaillard 
240*c3cd14fbSJerome Gaillard 
241*c3cd14fbSJerome Gaillard static const uint32_t d3[256] = {
242*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
243*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
244*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
245*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
246*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
247*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
248*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
249*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0000003e, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0000003f,
250*c3cd14fbSJerome Gaillard 0x00000034, 0x00000035, 0x00000036, 0x00000037, 0x00000038, 0x00000039,
251*c3cd14fbSJerome Gaillard 0x0000003a, 0x0000003b, 0x0000003c, 0x0000003d, 0x01ffffff, 0x01ffffff,
252*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
253*c3cd14fbSJerome Gaillard 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006,
254*c3cd14fbSJerome Gaillard 0x00000007, 0x00000008, 0x00000009, 0x0000000a, 0x0000000b, 0x0000000c,
255*c3cd14fbSJerome Gaillard 0x0000000d, 0x0000000e, 0x0000000f, 0x00000010, 0x00000011, 0x00000012,
256*c3cd14fbSJerome Gaillard 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017, 0x00000018,
257*c3cd14fbSJerome Gaillard 0x00000019, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
258*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0000001a, 0x0000001b, 0x0000001c, 0x0000001d, 0x0000001e,
259*c3cd14fbSJerome Gaillard 0x0000001f, 0x00000020, 0x00000021, 0x00000022, 0x00000023, 0x00000024,
260*c3cd14fbSJerome Gaillard 0x00000025, 0x00000026, 0x00000027, 0x00000028, 0x00000029, 0x0000002a,
261*c3cd14fbSJerome Gaillard 0x0000002b, 0x0000002c, 0x0000002d, 0x0000002e, 0x0000002f, 0x00000030,
262*c3cd14fbSJerome Gaillard 0x00000031, 0x00000032, 0x00000033, 0x01ffffff, 0x01ffffff, 0x01ffffff,
263*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
264*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
265*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
266*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
267*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
268*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
269*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
270*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
271*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
272*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
273*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
274*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
275*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
276*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
277*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
278*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
279*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
280*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
281*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
282*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
283*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
284*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
285*c3cd14fbSJerome Gaillard };
286*c3cd14fbSJerome Gaillard 
287*c3cd14fbSJerome Gaillard 
288*c3cd14fbSJerome Gaillard #else
289*c3cd14fbSJerome Gaillard 
290*c3cd14fbSJerome Gaillard 
291*c3cd14fbSJerome Gaillard /* SPECIAL DECODE TABLES FOR LITTLE ENDIAN (INTEL) CPUS */
292*c3cd14fbSJerome Gaillard 
293*c3cd14fbSJerome Gaillard static const uint32_t d0[256] = {
294*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
295*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
296*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
297*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
298*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
299*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
300*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
301*c3cd14fbSJerome Gaillard 0x01ffffff, 0x000000f8, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x000000fc,
302*c3cd14fbSJerome Gaillard 0x000000d0, 0x000000d4, 0x000000d8, 0x000000dc, 0x000000e0, 0x000000e4,
303*c3cd14fbSJerome Gaillard 0x000000e8, 0x000000ec, 0x000000f0, 0x000000f4, 0x01ffffff, 0x01ffffff,
304*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
305*c3cd14fbSJerome Gaillard 0x00000004, 0x00000008, 0x0000000c, 0x00000010, 0x00000014, 0x00000018,
306*c3cd14fbSJerome Gaillard 0x0000001c, 0x00000020, 0x00000024, 0x00000028, 0x0000002c, 0x00000030,
307*c3cd14fbSJerome Gaillard 0x00000034, 0x00000038, 0x0000003c, 0x00000040, 0x00000044, 0x00000048,
308*c3cd14fbSJerome Gaillard 0x0000004c, 0x00000050, 0x00000054, 0x00000058, 0x0000005c, 0x00000060,
309*c3cd14fbSJerome Gaillard 0x00000064, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
310*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00000068, 0x0000006c, 0x00000070, 0x00000074, 0x00000078,
311*c3cd14fbSJerome Gaillard 0x0000007c, 0x00000080, 0x00000084, 0x00000088, 0x0000008c, 0x00000090,
312*c3cd14fbSJerome Gaillard 0x00000094, 0x00000098, 0x0000009c, 0x000000a0, 0x000000a4, 0x000000a8,
313*c3cd14fbSJerome Gaillard 0x000000ac, 0x000000b0, 0x000000b4, 0x000000b8, 0x000000bc, 0x000000c0,
314*c3cd14fbSJerome Gaillard 0x000000c4, 0x000000c8, 0x000000cc, 0x01ffffff, 0x01ffffff, 0x01ffffff,
315*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
316*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
317*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
318*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
319*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
320*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
321*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
322*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
323*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
324*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
325*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
326*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
327*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
328*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
329*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
330*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
331*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
332*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
333*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
334*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
335*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
336*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
337*c3cd14fbSJerome Gaillard };
338*c3cd14fbSJerome Gaillard 
339*c3cd14fbSJerome Gaillard 
340*c3cd14fbSJerome Gaillard static const uint32_t d1[256] = {
341*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
342*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
343*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
344*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
345*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
346*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
347*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
348*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0000e003, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x0000f003,
349*c3cd14fbSJerome Gaillard 0x00004003, 0x00005003, 0x00006003, 0x00007003, 0x00008003, 0x00009003,
350*c3cd14fbSJerome Gaillard 0x0000a003, 0x0000b003, 0x0000c003, 0x0000d003, 0x01ffffff, 0x01ffffff,
351*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
352*c3cd14fbSJerome Gaillard 0x00001000, 0x00002000, 0x00003000, 0x00004000, 0x00005000, 0x00006000,
353*c3cd14fbSJerome Gaillard 0x00007000, 0x00008000, 0x00009000, 0x0000a000, 0x0000b000, 0x0000c000,
354*c3cd14fbSJerome Gaillard 0x0000d000, 0x0000e000, 0x0000f000, 0x00000001, 0x00001001, 0x00002001,
355*c3cd14fbSJerome Gaillard 0x00003001, 0x00004001, 0x00005001, 0x00006001, 0x00007001, 0x00008001,
356*c3cd14fbSJerome Gaillard 0x00009001, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
357*c3cd14fbSJerome Gaillard 0x01ffffff, 0x0000a001, 0x0000b001, 0x0000c001, 0x0000d001, 0x0000e001,
358*c3cd14fbSJerome Gaillard 0x0000f001, 0x00000002, 0x00001002, 0x00002002, 0x00003002, 0x00004002,
359*c3cd14fbSJerome Gaillard 0x00005002, 0x00006002, 0x00007002, 0x00008002, 0x00009002, 0x0000a002,
360*c3cd14fbSJerome Gaillard 0x0000b002, 0x0000c002, 0x0000d002, 0x0000e002, 0x0000f002, 0x00000003,
361*c3cd14fbSJerome Gaillard 0x00001003, 0x00002003, 0x00003003, 0x01ffffff, 0x01ffffff, 0x01ffffff,
362*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
363*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
364*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
365*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
366*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
367*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
368*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
369*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
370*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
371*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
372*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
373*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
374*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
375*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
376*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
377*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
378*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
379*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
380*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
381*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
382*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
383*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
384*c3cd14fbSJerome Gaillard };
385*c3cd14fbSJerome Gaillard 
386*c3cd14fbSJerome Gaillard 
387*c3cd14fbSJerome Gaillard static const uint32_t d2[256] = {
388*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
389*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
390*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
391*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
392*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
393*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
394*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
395*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00800f00, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00c00f00,
396*c3cd14fbSJerome Gaillard 0x00000d00, 0x00400d00, 0x00800d00, 0x00c00d00, 0x00000e00, 0x00400e00,
397*c3cd14fbSJerome Gaillard 0x00800e00, 0x00c00e00, 0x00000f00, 0x00400f00, 0x01ffffff, 0x01ffffff,
398*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
399*c3cd14fbSJerome Gaillard 0x00400000, 0x00800000, 0x00c00000, 0x00000100, 0x00400100, 0x00800100,
400*c3cd14fbSJerome Gaillard 0x00c00100, 0x00000200, 0x00400200, 0x00800200, 0x00c00200, 0x00000300,
401*c3cd14fbSJerome Gaillard 0x00400300, 0x00800300, 0x00c00300, 0x00000400, 0x00400400, 0x00800400,
402*c3cd14fbSJerome Gaillard 0x00c00400, 0x00000500, 0x00400500, 0x00800500, 0x00c00500, 0x00000600,
403*c3cd14fbSJerome Gaillard 0x00400600, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
404*c3cd14fbSJerome Gaillard 0x01ffffff, 0x00800600, 0x00c00600, 0x00000700, 0x00400700, 0x00800700,
405*c3cd14fbSJerome Gaillard 0x00c00700, 0x00000800, 0x00400800, 0x00800800, 0x00c00800, 0x00000900,
406*c3cd14fbSJerome Gaillard 0x00400900, 0x00800900, 0x00c00900, 0x00000a00, 0x00400a00, 0x00800a00,
407*c3cd14fbSJerome Gaillard 0x00c00a00, 0x00000b00, 0x00400b00, 0x00800b00, 0x00c00b00, 0x00000c00,
408*c3cd14fbSJerome Gaillard 0x00400c00, 0x00800c00, 0x00c00c00, 0x01ffffff, 0x01ffffff, 0x01ffffff,
409*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
410*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
411*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
412*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
413*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
414*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
415*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
416*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
417*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
418*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
419*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
420*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
421*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
422*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
423*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
424*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
425*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
426*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
427*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
428*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
429*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
430*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
431*c3cd14fbSJerome Gaillard };
432*c3cd14fbSJerome Gaillard 
433*c3cd14fbSJerome Gaillard 
434*c3cd14fbSJerome Gaillard static const uint32_t d3[256] = {
435*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
436*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
437*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
438*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
439*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
440*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
441*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
442*c3cd14fbSJerome Gaillard 0x01ffffff, 0x003e0000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x003f0000,
443*c3cd14fbSJerome Gaillard 0x00340000, 0x00350000, 0x00360000, 0x00370000, 0x00380000, 0x00390000,
444*c3cd14fbSJerome Gaillard 0x003a0000, 0x003b0000, 0x003c0000, 0x003d0000, 0x01ffffff, 0x01ffffff,
445*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x00000000,
446*c3cd14fbSJerome Gaillard 0x00010000, 0x00020000, 0x00030000, 0x00040000, 0x00050000, 0x00060000,
447*c3cd14fbSJerome Gaillard 0x00070000, 0x00080000, 0x00090000, 0x000a0000, 0x000b0000, 0x000c0000,
448*c3cd14fbSJerome Gaillard 0x000d0000, 0x000e0000, 0x000f0000, 0x00100000, 0x00110000, 0x00120000,
449*c3cd14fbSJerome Gaillard 0x00130000, 0x00140000, 0x00150000, 0x00160000, 0x00170000, 0x00180000,
450*c3cd14fbSJerome Gaillard 0x00190000, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
451*c3cd14fbSJerome Gaillard 0x01ffffff, 0x001a0000, 0x001b0000, 0x001c0000, 0x001d0000, 0x001e0000,
452*c3cd14fbSJerome Gaillard 0x001f0000, 0x00200000, 0x00210000, 0x00220000, 0x00230000, 0x00240000,
453*c3cd14fbSJerome Gaillard 0x00250000, 0x00260000, 0x00270000, 0x00280000, 0x00290000, 0x002a0000,
454*c3cd14fbSJerome Gaillard 0x002b0000, 0x002c0000, 0x002d0000, 0x002e0000, 0x002f0000, 0x00300000,
455*c3cd14fbSJerome Gaillard 0x00310000, 0x00320000, 0x00330000, 0x01ffffff, 0x01ffffff, 0x01ffffff,
456*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
457*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
458*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
459*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
460*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
461*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
462*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
463*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
464*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
465*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
466*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
467*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
468*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
469*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
470*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
471*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
472*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
473*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
474*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
475*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
476*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff,
477*c3cd14fbSJerome Gaillard 0x01ffffff, 0x01ffffff, 0x01ffffff, 0x01ffffff
478*c3cd14fbSJerome Gaillard };
479*c3cd14fbSJerome Gaillard 
480*c3cd14fbSJerome Gaillard 
481*c3cd14fbSJerome Gaillard #endif
482