Skip to main content

wmv_decoder/wma/
na_tables.rs

1#[derive(Clone, Copy)]
2pub struct CoefVlcTable {
3    pub n: usize,
4    pub max_level: usize,
5    pub huffcodes: &'static [u32],
6    pub huffbits: &'static [u8],
7    pub levels: &'static [u16],
8}
9pub const FF_WMA_HGAIN_HUFFTAB: [[u8; 2]; 37] = [[25, 10], [2, 10], [27, 10], [0, 10], [31, 9], [30, 9], [23, 8], [7, 8], [29, 8], [26, 8], [24, 7], [10, 5], [12, 4], [20, 5], [22, 6], [8, 7], [33, 10], [32, 13], [5, 13], [34, 13], [35, 13], [36, 13], [3, 13], [1, 12], [4, 9], [6, 9], [28, 9], [18, 4], [16, 4], [21, 5], [9, 5], [11, 4], [19, 4], [14, 3], [15, 3], [13, 3], [17, 3]];
10pub const FF_WMA_LSP_CODEBOOK: [[f32; 16]; 10] = [
11    [
12        1.98732877f32, 1.97944528f32, 1.97179088f32, 1.96260549f32,
13        1.95038374f32, 1.93336114f32, 1.90719232f32, 1.86191415f32,
14        0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32,
15    ],
16    [
17        1.97260000f32, 1.96083160f32, 1.94982586f32, 1.93806164f32,
18        1.92516608f32, 1.91010199f32, 1.89232331f32, 1.87149812f32,
19        1.84564818f32, 1.81358067f32, 1.77620070f32, 1.73265264f32,
20        1.67907855f32, 1.60959081f32, 1.50829650f32, 1.33120330f32,
21    ],
22    [
23        1.90109110f32, 1.86482426f32, 1.83419671f32, 1.80168452f32,
24        1.76650116f32, 1.72816320f32, 1.68502700f32, 1.63738256f32,
25        1.58501580f32, 1.51795181f32, 1.43679906f32, 1.33950585f32,
26        1.24176208f32, 1.12260729f32, 0.96749668f32, 0.74048265f32,
27    ],
28    [
29        1.76943864f32, 1.67822463f32, 1.59946365f32, 1.53560582f32,
30        1.47470796f32, 1.41210167f32, 1.34509536f32, 1.27339507f32,
31        1.19303814f32, 1.09765169f32, 0.98818722f32, 0.87239446f32,
32        0.74369172f32, 0.59768184f32, 0.43168630f32, 0.17977021f32,
33    ],
34    [
35        1.43428349f32, 1.32038354f32, 1.21074086f32, 1.10577988f32,
36        1.00561746f32, 0.90335924f32, 0.80437489f32, 0.70709671f32,
37        0.60427395f32, 0.49814048f32, 0.38509539f32, 0.27106800f32,
38        0.14407416f32, 0.00219910f32, -0.16725141f32, -0.36936085f32,
39    ],
40    [
41        0.99895687f32, 0.84188166f32, 0.70753739f32, 0.57906595f32,
42        0.47055563f32, 0.36966965f32, 0.26826648f32, 0.17163380f32,
43        0.07208392f32, -0.03062936f32, -1.40037388f32, -0.25128968f32,
44        -0.37213937f32, -0.51075646f32, -0.64887512f32, -0.80308031f32,
45    ],
46    [
47        0.26515280f32, 0.06313551f32, -0.08872080f32, -0.21103548f32,
48        -0.31069678f32, -0.39680323f32, -0.47223474f32, -0.54167135f32,
49        -0.61444740f32, -0.68943343f32, -0.76580211f32, -0.85170082f32,
50        -0.95289061f32, -1.06514703f32, -1.20510707f32, -1.37617746f32,
51    ],
52    [
53        -0.53940301f32, -0.73770929f32, -0.88424876f32, -1.01117930f32,
54        -1.13389091f32, -1.26830073f32, -1.42041987f32, -1.62033919f32,
55        -1.10158808f32, -1.16512566f32, -1.23337128f32, -1.30414401f32,
56        -1.37663312f32, -1.46853845f32, -1.57625798f32, -1.66893638f32,
57    ],
58    [
59        -0.38601997f32, -0.56009350f32, -0.66978483f32, -0.76028471f32,
60        -0.83846064f32, -0.90868087f32, -0.97408881f32, -1.03694962f32,
61        0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32,
62    ],
63    [
64        -1.56144989f32, -1.65944032f32, -1.72689685f32, -1.77857740f32,
65        -1.82203011f32, -1.86220079f32, -1.90283983f32, -1.94820479f32,
66        0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32, 0.0f32,
67    ],
68];
69pub const FF_WMA_CRITICAL_FREQS: [u16; 25] = [
70    100, 200, 300, 400, 510, 630, 770, 920,
71    1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150,
72    3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500,
73    24500,
74];
75pub const POW_TAB: [f32; 156] = [
76    1.7782794100389e-04f32, 2.0535250264571e-04f32, 2.3713737056617e-04f32, 2.7384196342644e-04f32,
77    3.1622776601684e-04f32, 3.6517412725484e-04f32, 4.2169650342858e-04f32, 4.8696752516586e-04f32,
78    5.6234132519035e-04f32, 6.4938163157621e-04f32, 7.4989420933246e-04f32, 8.6596432336006e-04f32,
79    1.0000000000000e-03f32, 1.1547819846895e-03f32, 1.3335214321633e-03f32, 1.5399265260595e-03f32,
80    1.7782794100389e-03f32, 2.0535250264571e-03f32, 2.3713737056617e-03f32, 2.7384196342644e-03f32,
81    3.1622776601684e-03f32, 3.6517412725484e-03f32, 4.2169650342858e-03f32, 4.8696752516586e-03f32,
82    5.6234132519035e-03f32, 6.4938163157621e-03f32, 7.4989420933246e-03f32, 8.6596432336006e-03f32,
83    1.0000000000000e-02f32, 1.1547819846895e-02f32, 1.3335214321633e-02f32, 1.5399265260595e-02f32,
84    1.7782794100389e-02f32, 2.0535250264571e-02f32, 2.3713737056617e-02f32, 2.7384196342644e-02f32,
85    3.1622776601684e-02f32, 3.6517412725484e-02f32, 4.2169650342858e-02f32, 4.8696752516586e-02f32,
86    5.6234132519035e-02f32, 6.4938163157621e-02f32, 7.4989420933246e-02f32, 8.6596432336007e-02f32,
87    1.0000000000000e-01f32, 1.1547819846895e-01f32, 1.3335214321633e-01f32, 1.5399265260595e-01f32,
88    1.7782794100389e-01f32, 2.0535250264571e-01f32, 2.3713737056617e-01f32, 2.7384196342644e-01f32,
89    3.1622776601684e-01f32, 3.6517412725484e-01f32, 4.2169650342858e-01f32, 4.8696752516586e-01f32,
90    5.6234132519035e-01f32, 6.4938163157621e-01f32, 7.4989420933246e-01f32, 8.6596432336007e-01f32,
91    1.0000000000000e+00f32, 1.1547819846895e+00f32, 1.3335214321633e+00f32, 1.5399265260595e+00f32,
92    1.7782794100389e+00f32, 2.0535250264571e+00f32, 2.3713737056617e+00f32, 2.7384196342644e+00f32,
93    3.1622776601684e+00f32, 3.6517412725484e+00f32, 4.2169650342858e+00f32, 4.8696752516586e+00f32,
94    5.6234132519035e+00f32, 6.4938163157621e+00f32, 7.4989420933246e+00f32, 8.6596432336007e+00f32,
95    1.0000000000000e+01f32, 1.1547819846895e+01f32, 1.3335214321633e+01f32, 1.5399265260595e+01f32,
96    1.7782794100389e+01f32, 2.0535250264571e+01f32, 2.3713737056617e+01f32, 2.7384196342644e+01f32,
97    3.1622776601684e+01f32, 3.6517412725484e+01f32, 4.2169650342858e+01f32, 4.8696752516586e+01f32,
98    5.6234132519035e+01f32, 6.4938163157621e+01f32, 7.4989420933246e+01f32, 8.6596432336007e+01f32,
99    1.0000000000000e+02f32, 1.1547819846895e+02f32, 1.3335214321633e+02f32, 1.5399265260595e+02f32,
100    1.7782794100389e+02f32, 2.0535250264571e+02f32, 2.3713737056617e+02f32, 2.7384196342644e+02f32,
101    3.1622776601684e+02f32, 3.6517412725484e+02f32, 4.2169650342858e+02f32, 4.8696752516586e+02f32,
102    5.6234132519035e+02f32, 6.4938163157621e+02f32, 7.4989420933246e+02f32, 8.6596432336007e+02f32,
103    1.0000000000000e+03f32, 1.1547819846895e+03f32, 1.3335214321633e+03f32, 1.5399265260595e+03f32,
104    1.7782794100389e+03f32, 2.0535250264571e+03f32, 2.3713737056617e+03f32, 2.7384196342644e+03f32,
105    3.1622776601684e+03f32, 3.6517412725484e+03f32, 4.2169650342858e+03f32, 4.8696752516586e+03f32,
106    5.6234132519035e+03f32, 6.4938163157621e+03f32, 7.4989420933246e+03f32, 8.6596432336007e+03f32,
107    1.0000000000000e+04f32, 1.1547819846895e+04f32, 1.3335214321633e+04f32, 1.5399265260595e+04f32,
108    1.7782794100389e+04f32, 2.0535250264571e+04f32, 2.3713737056617e+04f32, 2.7384196342644e+04f32,
109    3.1622776601684e+04f32, 3.6517412725484e+04f32, 4.2169650342858e+04f32, 4.8696752516586e+04f32,
110    5.6234132519035e+04f32, 6.4938163157621e+04f32, 7.4989420933246e+04f32, 8.6596432336007e+04f32,
111    1.0000000000000e+05f32, 1.1547819846895e+05f32, 1.3335214321633e+05f32, 1.5399265260595e+05f32,
112    1.7782794100389e+05f32, 2.0535250264571e+05f32, 2.3713737056617e+05f32, 2.7384196342644e+05f32,
113    3.1622776601684e+05f32, 3.6517412725484e+05f32, 4.2169650342858e+05f32, 4.8696752516586e+05f32,
114    5.6234132519035e+05f32, 6.4938163157621e+05f32, 7.4989420933246e+05f32, 8.6596432336007e+05f32,
115];
116pub const FF_AAC_SCALEFACTOR_CODE: [u32; 121] = [
117    0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
118    0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
119    0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
120    0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
121    0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
122    0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
123    0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
124    0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
125    0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
126    0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
127    0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
128    0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
129    0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
130    0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
131    0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
132    0x7fff3,
133];
134pub const FF_AAC_SCALEFACTOR_BITS: [u8; 121] = [
135    18, 18, 18, 18, 19, 19, 19, 19,
136    19, 19, 19, 19, 19, 19, 19, 19,
137    19, 19, 19, 18, 19, 18, 17, 17,
138    16, 17, 16, 16, 16, 16, 15, 15,
139    14, 14, 14, 14, 14, 14, 13, 13,
140    12, 12, 12, 11, 12, 11, 10, 10,
141    10, 9, 9, 8, 8, 8, 7, 6,
142    6, 5, 4, 3, 1, 4, 4, 5,
143    6, 6, 7, 7, 8, 8, 9, 9,
144    10, 10, 10, 11, 11, 11, 11, 12,
145    12, 13, 13, 13, 14, 14, 16, 15,
146    16, 15, 18, 19, 19, 19, 19, 19,
147    19, 19, 19, 19, 19, 19, 19, 19,
148    19, 19, 19, 19, 19, 19, 19, 19,
149    19, 19, 19, 19, 19, 19, 19, 19,
150    19,
151];
152pub const EXPONENT_BAND_22050: [[u8; 25]; 3] = [
153    [10, 4, 8, 4, 8, 8, 12, 20, 24, 24, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
154    [14, 4, 8, 8, 4, 12, 12, 16, 24, 16, 20, 24, 32, 40, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
155    [23, 4, 4, 4, 8, 4, 4, 8, 8, 8, 8, 8, 12, 12, 16, 16, 24, 24, 32, 44, 48, 60, 84, 72, 0],
156];
157pub const EXPONENT_BAND_32000: [[u8; 25]; 3] = [
158    [11, 4, 4, 8, 4, 4, 12, 16, 24, 20, 28, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
159    [15, 4, 8, 4, 4, 8, 8, 16, 20, 12, 20, 20, 28, 40, 56, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0],
160    [16, 8, 4, 8, 8, 12, 16, 20, 24, 40, 32, 32, 44, 56, 80, 112, 16, 0, 0, 0, 0, 0, 0, 0, 0],
161];
162pub const EXPONENT_BAND_44100: [[u8; 25]; 3] = [
163    [12, 4, 4, 4, 4, 4, 8, 8, 8, 12, 16, 20, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
164    [15, 4, 8, 4, 8, 8, 4, 8, 8, 12, 12, 12, 24, 28, 40, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0],
165    [17, 4, 8, 8, 4, 12, 12, 8, 8, 24, 16, 20, 24, 32, 40, 60, 80, 152, 0, 0, 0, 0, 0, 0, 0],
166];
167pub const COEF0_HUFFCODES: [u32; 666] = [
168    0x00258, 0x0003d, 0x00000, 0x00005, 0x00008, 0x00008, 0x0000c, 0x0001b,
169    0x0001f, 0x00015, 0x00024, 0x00032, 0x0003a, 0x00026, 0x0002c, 0x0002f,
170    0x0004a, 0x0004d, 0x00061, 0x00070, 0x00073, 0x00048, 0x00052, 0x0005a,
171    0x0005d, 0x0006e, 0x00099, 0x0009e, 0x000c1, 0x000ce, 0x000e4, 0x000f0,
172    0x00093, 0x0009e, 0x000a2, 0x000a1, 0x000b8, 0x000d2, 0x000d3, 0x0012e,
173    0x00130, 0x000de, 0x0012d, 0x0019b, 0x001e4, 0x00139, 0x0013a, 0x0013f,
174    0x0014f, 0x0016d, 0x001a2, 0x0027c, 0x0027e, 0x00332, 0x0033c, 0x0033f,
175    0x0038b, 0x00396, 0x003c5, 0x00270, 0x0027c, 0x0025a, 0x00395, 0x00248,
176    0x004bd, 0x004fb, 0x00662, 0x00661, 0x0071b, 0x004e6, 0x004ff, 0x00666,
177    0x0071c, 0x0071a, 0x0071f, 0x00794, 0x00536, 0x004e2, 0x0078e, 0x004ee,
178    0x00518, 0x00535, 0x004fb, 0x0078d, 0x00530, 0x00680, 0x0068f, 0x005cb,
179    0x00965, 0x006a6, 0x00967, 0x0097f, 0x00682, 0x006ae, 0x00cd0, 0x00e28,
180    0x00f13, 0x00f1f, 0x009f5, 0x00cd3, 0x00f11, 0x00926, 0x00964, 0x00f32,
181    0x00f12, 0x00f30, 0x00966, 0x00d0b, 0x00a68, 0x00b91, 0x009c7, 0x00b73,
182    0x012fa, 0x0131d, 0x013f9, 0x01ca0, 0x0199c, 0x01c7a, 0x0198c, 0x01248,
183    0x01c74, 0x01c64, 0x0139e, 0x012fd, 0x00a77, 0x012fc, 0x01c7b, 0x012ca,
184    0x014cc, 0x014d2, 0x014e3, 0x014dc, 0x012dc, 0x03344, 0x02598, 0x0263c,
185    0x0333b, 0x025e6, 0x01a1c, 0x01e3c, 0x014e2, 0x033d4, 0x01a11, 0x03349,
186    0x03cce, 0x014e1, 0x01a34, 0x0273e, 0x02627, 0x0273f, 0x038ee, 0x03971,
187    0x03c67, 0x03c61, 0x0333d, 0x038c2, 0x0263f, 0x038cd, 0x02638, 0x02e41,
188    0x0351f, 0x03348, 0x03c66, 0x03562, 0x02989, 0x027d5, 0x0333c, 0x02e4f,
189    0x0343b, 0x02ddf, 0x04bc8, 0x029c0, 0x02e57, 0x04c72, 0x025b7, 0x03547,
190    0x03540, 0x029d3, 0x04c45, 0x025bb, 0x06600, 0x04c73, 0x04bce, 0x0357b,
191    0x029a6, 0x029d2, 0x0263e, 0x0298a, 0x07183, 0x06602, 0x07958, 0x04b66,
192    0x0537d, 0x05375, 0x04fe9, 0x04b67, 0x0799f, 0x04bc9, 0x051fe, 0x06a3b,
193    0x05bb6, 0x04fa8, 0x0728f, 0x05376, 0x0492c, 0x0537e, 0x0795a, 0x06a3c,
194    0x0e515, 0x07887, 0x0683a, 0x051f9, 0x051fd, 0x0cc6a, 0x06a8a, 0x0cc6d,
195    0x05bb3, 0x0683b, 0x051fc, 0x05378, 0x0728e, 0x07886, 0x05bb7, 0x0f2a4,
196    0x0795b, 0x0683c, 0x09fc1, 0x0683d, 0x0b752, 0x09678, 0x0a3e8, 0x06ac7,
197    0x051f0, 0x0b759, 0x06af3, 0x04b6b, 0x0f2a0, 0x0f2ad, 0x096c3, 0x0e518,
198    0x0b75c, 0x0d458, 0x0cc6b, 0x0537c, 0x067aa, 0x04fea, 0x0343a, 0x0cc71,
199    0x0967f, 0x09fc4, 0x096c2, 0x0e516, 0x0f2a1, 0x0d45c, 0x0d45d, 0x0d45e,
200    0x12fb9, 0x0967e, 0x1982f, 0x09883, 0x096c4, 0x0b753, 0x12fb8, 0x0f2a8,
201    0x1ca21, 0x096c5, 0x0e51a, 0x1ca27, 0x12f3c, 0x0d471, 0x0f2aa, 0x0b75b,
202    0x12fbb, 0x0f2a9, 0x0f2ac, 0x0d45a, 0x0b74f, 0x096c8, 0x16e91, 0x096ca,
203    0x12fbf, 0x0d0a7, 0x13103, 0x0d516, 0x16e99, 0x12cbd, 0x0a3ea, 0x19829,
204    0x0b755, 0x29ba7, 0x1ca28, 0x29ba5, 0x16e93, 0x1982c, 0x19828, 0x25994,
205    0x0a3eb, 0x1ca29, 0x16e90, 0x1ca25, 0x1982d, 0x1ca26, 0x16e9b, 0x0b756,
206    0x0967c, 0x25997, 0x0b75f, 0x198d3, 0x0b757, 0x19a2a, 0x0d45b, 0x0e517,
207    0x1ca24, 0x1ca23, 0x1ca22, 0x0b758, 0x16e97, 0x0cd14, 0x13100, 0x00007,
208    0x0003b, 0x0006b, 0x00097, 0x00138, 0x00125, 0x00173, 0x00258, 0x00335,
209    0x0028e, 0x004c6, 0x00715, 0x00729, 0x004ef, 0x00519, 0x004ed, 0x00532,
210    0x0068c, 0x00686, 0x00978, 0x00e5d, 0x00e31, 0x009f4, 0x00b92, 0x012f8,
211    0x00d06, 0x00a67, 0x00d44, 0x00a76, 0x00d59, 0x012cd, 0x01c78, 0x01c75,
212    0x0199f, 0x0198f, 0x01c67, 0x014c6, 0x01c79, 0x01c76, 0x00b94, 0x00d1b,
213    0x01e32, 0x01e31, 0x01ab0, 0x01a05, 0x01aa1, 0x0333a, 0x025e5, 0x02626,
214    0x03541, 0x03544, 0x03421, 0x03546, 0x02e55, 0x02e56, 0x0492d, 0x02dde,
215    0x0299b, 0x02ddc, 0x0357a, 0x0249c, 0x0668b, 0x1c77f, 0x1ca20, 0x0d45f,
216    0x09886, 0x16e9a, 0x0f2a7, 0x0b751, 0x0a3ee, 0x0cf59, 0x0cf57, 0x0b754,
217    0x0d0a6, 0x16e98, 0x0b760, 0x06ac6, 0x0a3f0, 0x12fbe, 0x13104, 0x0f2a5,
218    0x0a3ef, 0x0d472, 0x12cba, 0x1982e, 0x16e9c, 0x1c77e, 0x198d0, 0x13105,
219    0x16e92, 0x0b75d, 0x0d459, 0x0001a, 0x000c0, 0x0016c, 0x003cd, 0x00350,
220    0x0067b, 0x0051e, 0x006a9, 0x009f4, 0x00b72, 0x00d09, 0x01249, 0x01e3d,
221    0x01ca1, 0x01a1f, 0x01721, 0x01a8a, 0x016e8, 0x03347, 0x01a35, 0x0249d,
222    0x0299a, 0x02596, 0x02e4e, 0x0298b, 0x07182, 0x04c46, 0x025ba, 0x02e40,
223    0x027d6, 0x04fe8, 0x06607, 0x05310, 0x09884, 0x072e1, 0x06a3d, 0x04b6a,
224    0x04c7a, 0x06603, 0x04c7b, 0x03428, 0x06605, 0x09664, 0x09fc0, 0x071de,
225    0x06601, 0x05bb2, 0x09885, 0x0a3e2, 0x1c61f, 0x12cbb, 0x0b750, 0x0cf58,
226    0x0967d, 0x25995, 0x668ad, 0x0b75a, 0x09fc2, 0x0537f, 0x0b75e, 0x13fae,
227    0x12fbc, 0x00031, 0x001c4, 0x004c5, 0x005b8, 0x00cf4, 0x0096f, 0x00d46,
228    0x01e57, 0x01a04, 0x02625, 0x03346, 0x028f9, 0x04c47, 0x072e0, 0x04b69,
229    0x03420, 0x07957, 0x06639, 0x0799e, 0x07959, 0x07881, 0x04b68, 0x09fc3,
230    0x09fd6, 0x0cc70, 0x0a3f1, 0x12cbe, 0x0e30e, 0x0e51b, 0x06af2, 0x12cbc,
231    0x1c77d, 0x0f2ab, 0x12fbd, 0x1aa2f, 0x0a3ec, 0x0d473, 0x05377, 0x0a3e9,
232    0x1982b, 0x0e300, 0x12f3f, 0x0cf5f, 0x096c0, 0x38c3c, 0x16e94, 0x16e95,
233    0x12f3d, 0x29ba4, 0x29ba6, 0x1c77c, 0x6a8ba, 0x3545c, 0x33457, 0x668ac,
234    0x6a8bb, 0x16e9d, 0x0e519, 0x25996, 0x12f3e, 0x00036, 0x0033e, 0x006ad,
235    0x00d03, 0x012c8, 0x0124a, 0x03c42, 0x03ccd, 0x06606, 0x07880, 0x06852,
236    0x06a3a, 0x05bb4, 0x0f2a2, 0x09fc7, 0x12cb9, 0x0cc6c, 0x0a6e8, 0x096c1,
237    0x0004a, 0x00355, 0x012f9, 0x014e8, 0x01abe, 0x025b6, 0x0492e, 0x09fc6,
238    0x051ff, 0x0cc6f, 0x096cb, 0x0d071, 0x198d1, 0x12cb8, 0x38c3d, 0x13faf,
239    0x096c9, 0x0009d, 0x00539, 0x012ce, 0x0341f, 0x029c1, 0x04b33, 0x0a3e3,
240    0x0d070, 0x16e96, 0x0b763, 0x000a0, 0x009ce, 0x038cc, 0x0343d, 0x051fa,
241    0x09888, 0x12fba, 0x000df, 0x00a75, 0x029a7, 0x09fc5, 0x0e301, 0x0967b,
242    0x001e7, 0x012c9, 0x051fb, 0x09889, 0x0f2a6, 0x0016f, 0x01cb9, 0x0cf5a,
243    0x12cbf, 0x09679, 0x00272, 0x01a15, 0x0967a, 0x003cb, 0x025f6, 0x0b762,
244    0x0028d, 0x03c60, 0x0cf5e, 0x00352, 0x03ccc, 0x0072f, 0x07186, 0x004ec,
245    0x05379, 0x0068e, 0x09887, 0x006a7, 0x06af1, 0x00e29, 0x0cf5b, 0x00f31,
246    0x0d470, 0x009c6, 0x013fb, 0x13102, 0x019a5, 0x13101, 0x01983, 0x01c65,
247    0x0124f, 0x014c7, 0x01726, 0x01abf, 0x03304, 0x02624, 0x03c41, 0x027d7,
248    0x02ddd, 0x02e54, 0x0343c, 0x06604, 0x07181, 0x0663a, 0x04fa9, 0x0663b,
249    0x05311, 0x0537a, 0x06839, 0x05bb5, 0x0492f, 0x06af0, 0x096c7, 0x0cc6e,
250    0x0537b, 0x0cf5c, 0x0cf56, 0x198d2, 0x0cf5d, 0x0a3ed, 0x0f2a3, 0x1982a,
251    0x0b761, 0x096c6,
252];
253pub const COEF0_HUFFBITS: [u8; 666] = [
254    11, 6, 2, 3, 4, 5, 5, 5,
255    5, 6, 6, 6, 6, 7, 7, 7,
256    7, 7, 7, 7, 7, 8, 8, 8,
257    8, 8, 8, 8, 8, 8, 8, 8,
258    9, 9, 9, 9, 9, 9, 9, 9,
259    9, 9, 9, 9, 9, 10, 10, 10,
260    10, 10, 10, 10, 10, 10, 10, 10,
261    10, 10, 10, 11, 11, 11, 10, 11,
262    11, 11, 11, 11, 11, 11, 11, 11,
263    11, 11, 11, 11, 12, 12, 11, 12,
264    12, 12, 12, 11, 12, 12, 12, 12,
265    12, 12, 12, 12, 12, 12, 12, 12,
266    12, 12, 12, 12, 12, 13, 13, 12,
267    12, 12, 13, 13, 13, 13, 13, 13,
268    13, 13, 13, 13, 13, 13, 13, 14,
269    13, 13, 13, 13, 13, 13, 13, 14,
270    14, 14, 14, 14, 14, 14, 14, 14,
271    14, 14, 14, 13, 14, 14, 14, 14,
272    14, 14, 14, 14, 14, 14, 14, 14,
273    14, 14, 14, 14, 14, 14, 14, 15,
274    15, 14, 14, 15, 15, 15, 14, 15,
275    15, 15, 15, 15, 15, 15, 15, 15,
276    15, 15, 15, 15, 15, 15, 15, 15,
277    15, 15, 14, 15, 15, 15, 15, 16,
278    16, 16, 15, 16, 15, 15, 16, 16,
279    16, 16, 15, 16, 16, 16, 15, 16,
280    16, 15, 16, 16, 16, 16, 16, 16,
281    16, 16, 16, 16, 15, 15, 16, 16,
282    15, 16, 16, 16, 17, 17, 17, 16,
283    16, 17, 16, 16, 16, 16, 17, 16,
284    17, 17, 16, 16, 15, 15, 15, 16,
285    17, 16, 17, 16, 16, 17, 17, 17,
286    17, 17, 17, 16, 17, 17, 17, 16,
287    17, 17, 16, 17, 17, 17, 16, 17,
288    17, 16, 16, 17, 17, 17, 18, 17,
289    17, 17, 17, 17, 18, 18, 17, 17,
290    17, 19, 17, 19, 18, 17, 17, 18,
291    17, 17, 18, 17, 17, 17, 18, 17,
292    17, 18, 17, 17, 17, 17, 17, 16,
293    17, 17, 17, 17, 18, 16, 17, 4,
294    6, 8, 9, 9, 10, 10, 10, 10,
295    11, 11, 11, 11, 12, 12, 12, 12,
296    12, 12, 12, 12, 12, 13, 13, 13,
297    13, 13, 13, 13, 13, 13, 13, 13,
298    13, 13, 13, 14, 13, 13, 13, 13,
299    13, 13, 14, 14, 14, 14, 14, 14,
300    15, 15, 15, 15, 15, 15, 16, 15,
301    15, 15, 15, 15, 15, 17, 17, 17,
302    16, 18, 16, 17, 17, 16, 16, 17,
303    17, 18, 17, 16, 17, 17, 17, 16,
304    17, 17, 18, 17, 18, 17, 17, 17,
305    18, 17, 17, 5, 8, 10, 10, 11,
306    11, 12, 12, 12, 13, 13, 14, 13,
307    13, 14, 14, 14, 14, 14, 14, 15,
308    15, 15, 15, 15, 15, 15, 15, 15,
309    15, 15, 15, 16, 16, 15, 16, 16,
310    15, 15, 15, 15, 15, 16, 16, 15,
311    15, 16, 16, 17, 17, 18, 17, 16,
312    17, 18, 19, 17, 16, 16, 17, 17,
313    17, 6, 9, 11, 12, 12, 13, 13,
314    13, 14, 14, 14, 15, 15, 15, 16,
315    15, 15, 15, 15, 15, 15, 16, 16,
316    16, 16, 17, 18, 16, 16, 16, 18,
317    17, 16, 17, 18, 17, 17, 16, 17,
318    17, 16, 17, 16, 17, 18, 18, 18,
319    17, 19, 19, 17, 20, 19, 18, 19,
320    20, 18, 16, 18, 17, 7, 10, 12,
321    13, 13, 14, 14, 14, 15, 15, 16,
322    16, 16, 16, 16, 18, 16, 17, 17,
323    8, 11, 13, 14, 14, 15, 16, 16,
324    16, 16, 17, 17, 17, 18, 18, 17,
325    17, 8, 12, 14, 15, 15, 15, 17,
326    17, 18, 17, 9, 12, 14, 15, 16,
327    16, 17, 9, 13, 15, 16, 16, 17,
328    9, 13, 16, 16, 16, 10, 13, 16,
329    18, 17, 10, 14, 17, 10, 14, 17,
330    11, 14, 16, 11, 14, 11, 15, 12,
331    16, 12, 16, 12, 16, 12, 16, 12,
332    17, 13, 13, 17, 13, 17, 13, 13,
333    14, 14, 14, 14, 14, 14, 14, 15,
334    15, 15, 15, 15, 15, 15, 16, 15,
335    16, 16, 16, 16, 16, 16, 17, 16,
336    16, 16, 16, 17, 16, 17, 16, 17,
337    17, 17,
338];
339pub const LEVELS0: [u16; 60] = [
340    317, 92, 62, 60, 19, 17, 10, 7,
341    6, 5, 5, 3, 3, 3, 2, 2,
342    2, 2, 2, 2, 2, 1, 2, 2,
343    1, 1, 1, 1, 1, 1, 1, 1,
344    1, 1, 1, 1, 1, 1, 1, 1,
345    1, 1, 1, 1, 1, 1, 1, 1,
346    1, 1, 1, 1, 1, 1, 1, 1,
347    1, 1, 1, 1,
348];
349pub const COEF1_HUFFCODES: [u32; 555] = [
350    0x00115, 0x00002, 0x00001, 0x00000, 0x0000d, 0x00007, 0x00013, 0x0001d,
351    0x00008, 0x0000c, 0x00023, 0x0002b, 0x0003f, 0x00017, 0x0001b, 0x00043,
352    0x00049, 0x00050, 0x00055, 0x00054, 0x00067, 0x00064, 0x0007b, 0x0002d,
353    0x00028, 0x0002a, 0x00085, 0x00089, 0x0002b, 0x00035, 0x00090, 0x00091,
354    0x00094, 0x00088, 0x000c1, 0x000c6, 0x000f2, 0x000e3, 0x000c5, 0x000e2,
355    0x00036, 0x000f0, 0x000a7, 0x000cd, 0x000fb, 0x00059, 0x00116, 0x00103,
356    0x00108, 0x0012b, 0x0012d, 0x00188, 0x0012e, 0x0014c, 0x001c3, 0x00187,
357    0x001e7, 0x0006f, 0x00094, 0x00069, 0x001e6, 0x001ca, 0x00147, 0x00195,
358    0x000a7, 0x00213, 0x00209, 0x00303, 0x00295, 0x00289, 0x0028c, 0x0028d,
359    0x00312, 0x00330, 0x0029b, 0x00308, 0x00328, 0x0029a, 0x0025e, 0x003c5,
360    0x00384, 0x0039f, 0x00397, 0x00296, 0x0032e, 0x00332, 0x003c6, 0x003e6,
361    0x0012d, 0x000d1, 0x00402, 0x000dd, 0x00161, 0x0012b, 0x00127, 0x0045d,
362    0x00601, 0x004ab, 0x0045f, 0x00410, 0x004bf, 0x00528, 0x0045c, 0x00424,
363    0x00400, 0x00511, 0x00618, 0x0073d, 0x0063a, 0x00614, 0x0073c, 0x007c0,
364    0x007cf, 0x00802, 0x00966, 0x00964, 0x00951, 0x008a0, 0x00346, 0x00803,
365    0x00a52, 0x0024a, 0x007c1, 0x0063f, 0x00126, 0x00406, 0x00789, 0x008a2,
366    0x00960, 0x00967, 0x00c05, 0x00c70, 0x00c79, 0x00a5d, 0x00c26, 0x00c4d,
367    0x00372, 0x008a5, 0x00c08, 0x002c5, 0x00f11, 0x00cc4, 0x00f8e, 0x00e16,
368    0x00496, 0x00e77, 0x00f9c, 0x00c25, 0x00f1e, 0x00c27, 0x00f1f, 0x00e17,
369    0x00ccd, 0x00355, 0x00c09, 0x00c78, 0x00f90, 0x00521, 0x00357, 0x00356,
370    0x0068e, 0x00f9d, 0x00c04, 0x00e58, 0x00a20, 0x00a2c, 0x00c4c, 0x0052f,
371    0x00f8d, 0x01178, 0x01053, 0x01097, 0x0180f, 0x0180d, 0x012fb, 0x012aa,
372    0x0202a, 0x00a40, 0x018ed, 0x01ceb, 0x01455, 0x018e3, 0x012a1, 0x00354,
373    0x00353, 0x00f1c, 0x00c7b, 0x00c37, 0x0101d, 0x012cb, 0x01142, 0x0197d,
374    0x01095, 0x01e3b, 0x0186b, 0x00588, 0x01c2a, 0x014b8, 0x01e3a, 0x018ec,
375    0x01f46, 0x012fa, 0x00a53, 0x01ce8, 0x00a55, 0x01c29, 0x0117b, 0x01052,
376    0x012a0, 0x00589, 0x00950, 0x01c2b, 0x00a50, 0x0208b, 0x0180e, 0x02027,
377    0x02556, 0x01e20, 0x006e7, 0x01c28, 0x0197a, 0x00684, 0x020a2, 0x01f22,
378    0x03018, 0x039cf, 0x03e25, 0x02557, 0x0294c, 0x028a6, 0x00d11, 0x028a9,
379    0x02979, 0x00d46, 0x00a56, 0x039ce, 0x030cc, 0x0329a, 0x0149d, 0x0510f,
380    0x0451c, 0x02028, 0x03299, 0x01ced, 0x014b9, 0x00f85, 0x00c7a, 0x01800,
381    0x00341, 0x012ca, 0x039c8, 0x0329d, 0x00d0d, 0x03e20, 0x05144, 0x00d45,
382    0x030d0, 0x0186d, 0x030d5, 0x00d0f, 0x00d40, 0x04114, 0x020a1, 0x0297f,
383    0x03e24, 0x032f1, 0x04047, 0x030d4, 0x028a8, 0x00d0e, 0x0451d, 0x04044,
384    0x0297e, 0x04042, 0x030d2, 0x030cf, 0x03e21, 0x03e26, 0x028a5, 0x0451a,
385    0x00d48, 0x01a16, 0x00d44, 0x04518, 0x0149b, 0x039ca, 0x01498, 0x0403d,
386    0x0451b, 0x0149c, 0x032f3, 0x030cb, 0x08073, 0x03e22, 0x0529a, 0x020aa,
387    0x039cc, 0x0738a, 0x06530, 0x07389, 0x06193, 0x08071, 0x04043, 0x030ce,
388    0x05147, 0x07388, 0x05145, 0x08072, 0x04521, 0x00d47, 0x0297c, 0x030cd,
389    0x030ca, 0x0000b, 0x0000c, 0x00083, 0x000e4, 0x00048, 0x00102, 0x001cc,
390    0x001f5, 0x00097, 0x0020b, 0x00124, 0x00453, 0x00627, 0x00639, 0x00605,
391    0x00517, 0x001b8, 0x00663, 0x00667, 0x007c3, 0x00823, 0x00961, 0x00963,
392    0x00e5a, 0x00e59, 0x00a2b, 0x00cbf, 0x00292, 0x00a2d, 0x007d0, 0x00953,
393    0x00cc5, 0x00f84, 0x004ab, 0x014a7, 0x0068a, 0x0117a, 0x0052e, 0x01442,
394    0x0052c, 0x00c77, 0x00f8f, 0x004aa, 0x01094, 0x01801, 0x012c4, 0x0297b,
395    0x00952, 0x01f19, 0x006a5, 0x01149, 0x012c5, 0x01803, 0x022f2, 0x0329b,
396    0x04520, 0x0149e, 0x00d13, 0x01f16, 0x01ce9, 0x0101c, 0x006e6, 0x039c9,
397    0x06191, 0x07c8e, 0x06192, 0x0ca63, 0x039cd, 0x06190, 0x06884, 0x06885,
398    0x07382, 0x00d49, 0x00d41, 0x0450c, 0x0149a, 0x030d1, 0x08077, 0x03e23,
399    0x01a15, 0x0e701, 0x0e702, 0x08079, 0x0822a, 0x0a218, 0x07887, 0x0403f,
400    0x0520b, 0x0529b, 0x0e700, 0x04519, 0x00007, 0x000e0, 0x000d0, 0x0039b,
401    0x003e5, 0x00163, 0x0063e, 0x007c9, 0x00806, 0x00954, 0x01044, 0x01f44,
402    0x0197c, 0x01f45, 0x00a51, 0x01f47, 0x00951, 0x0052d, 0x02291, 0x0092f,
403    0x00a54, 0x00d12, 0x0297d, 0x00d0c, 0x01499, 0x0329e, 0x032f0, 0x02025,
404    0x039c6, 0x00a57, 0x03e46, 0x00d42, 0x0738b, 0x05146, 0x04046, 0x08078,
405    0x0510e, 0x07886, 0x02904, 0x04156, 0x04157, 0x06032, 0x030d3, 0x08bce,
406    0x04040, 0x0403e, 0x0a414, 0x10457, 0x08075, 0x06887, 0x07c8f, 0x039c7,
407    0x07387, 0x08070, 0x08bcf, 0x1482a, 0x10456, 0x1482b, 0x01a17, 0x06886,
408    0x0450d, 0x00013, 0x0006b, 0x00615, 0x0080b, 0x0082b, 0x00952, 0x00e5b,
409    0x018e2, 0x0186c, 0x01f18, 0x0329f, 0x00d43, 0x03e29, 0x05140, 0x05141,
410    0x0ca62, 0x06033, 0x03c42, 0x03e28, 0x0450f, 0x0a21a, 0x07384, 0x0a219,
411    0x0e703, 0x0a21b, 0x01a14, 0x07383, 0x045e6, 0x0007a, 0x0012c, 0x00ccc,
412    0x0068f, 0x01802, 0x00a52, 0x00953, 0x04045, 0x01a20, 0x0451f, 0x000a4,
413    0x00735, 0x01cec, 0x02029, 0x020a3, 0x0451e, 0x00069, 0x00c24, 0x02024,
414    0x032f2, 0x05142, 0x00196, 0x00523, 0x000a6, 0x0197b, 0x0030b, 0x0092e,
415    0x003e9, 0x03e27, 0x00160, 0x05143, 0x00652, 0x04041, 0x00734, 0x028a7,
416    0x0080f, 0x01483, 0x0097c, 0x00340, 0x0068b, 0x00522, 0x01054, 0x01096,
417    0x01f17, 0x0202b, 0x01cea, 0x020a0, 0x02978, 0x02026, 0x0297a, 0x039cb,
418    0x03e2b, 0x0149f, 0x0329c, 0x07385, 0x08074, 0x0450e, 0x03e2a, 0x05149,
419    0x08076, 0x07386, 0x05148,
420];
421pub const COEF1_HUFFBITS: [u8; 555] = [
422    9, 5, 2, 4, 4, 5, 5, 5,
423    6, 6, 6, 6, 6, 7, 7, 7,
424    7, 7, 7, 7, 7, 7, 7, 8,
425    8, 8, 8, 8, 8, 8, 8, 8,
426    8, 8, 8, 8, 8, 8, 8, 8,
427    9, 8, 8, 8, 8, 9, 9, 9,
428    9, 9, 9, 9, 9, 9, 9, 9,
429    9, 10, 10, 10, 9, 9, 9, 9,
430    10, 10, 10, 10, 10, 10, 10, 10,
431    10, 10, 10, 10, 10, 10, 10, 10,
432    10, 10, 10, 10, 10, 10, 10, 10,
433    11, 11, 11, 11, 11, 11, 11, 11,
434    11, 11, 11, 11, 11, 11, 11, 11,
435    11, 11, 11, 11, 11, 11, 11, 11,
436    11, 12, 12, 12, 12, 12, 12, 12,
437    12, 12, 11, 11, 11, 11, 11, 12,
438    12, 12, 12, 12, 12, 12, 12, 12,
439    13, 12, 12, 12, 12, 12, 12, 12,
440    13, 12, 12, 12, 12, 12, 12, 12,
441    12, 13, 12, 12, 12, 13, 13, 13,
442    13, 12, 12, 12, 12, 12, 12, 13,
443    12, 13, 13, 13, 13, 13, 13, 13,
444    14, 14, 13, 13, 13, 13, 13, 13,
445    13, 12, 12, 12, 13, 13, 13, 13,
446    13, 13, 13, 13, 13, 13, 13, 13,
447    13, 13, 14, 13, 14, 13, 13, 13,
448    13, 13, 14, 13, 14, 14, 13, 14,
449    14, 13, 14, 13, 13, 14, 14, 13,
450    14, 14, 14, 14, 14, 14, 14, 14,
451    14, 15, 14, 14, 14, 14, 15, 15,
452    15, 14, 14, 13, 13, 12, 12, 13,
453    13, 13, 14, 14, 15, 14, 15, 15,
454    14, 13, 14, 15, 15, 15, 14, 14,
455    14, 14, 15, 14, 14, 15, 15, 15,
456    14, 15, 14, 14, 14, 14, 14, 15,
457    15, 16, 15, 15, 15, 14, 15, 15,
458    15, 15, 14, 14, 16, 14, 15, 14,
459    14, 15, 15, 15, 15, 16, 15, 14,
460    15, 15, 15, 16, 15, 15, 14, 14,
461    14, 4, 7, 8, 8, 9, 9, 9,
462    9, 10, 10, 11, 11, 11, 11, 11,
463    11, 12, 11, 11, 11, 12, 12, 12,
464    12, 12, 12, 12, 12, 12, 11, 12,
465    12, 12, 13, 13, 13, 13, 13, 13,
466    13, 12, 12, 13, 13, 13, 13, 14,
467    14, 13, 14, 13, 13, 13, 14, 14,
468    15, 15, 14, 13, 13, 13, 14, 14,
469    15, 15, 15, 16, 14, 15, 17, 17,
470    15, 15, 15, 15, 15, 14, 16, 14,
471    16, 16, 16, 16, 16, 16, 15, 15,
472    17, 15, 16, 15, 6, 8, 10, 10,
473    10, 11, 11, 11, 12, 12, 13, 13,
474    13, 13, 14, 13, 14, 13, 14, 14,
475    14, 14, 14, 15, 15, 14, 14, 14,
476    14, 14, 14, 15, 15, 15, 15, 16,
477    15, 15, 16, 15, 15, 15, 14, 16,
478    15, 15, 18, 17, 16, 17, 15, 14,
479    15, 16, 16, 19, 17, 19, 16, 17,
480    15, 7, 10, 11, 12, 12, 12, 12,
481    13, 13, 13, 14, 15, 14, 15, 15,
482    16, 15, 14, 14, 15, 16, 15, 16,
483    16, 16, 16, 15, 15, 7, 11, 12,
484    13, 13, 14, 14, 15, 15, 15, 8,
485    11, 13, 14, 14, 15, 9, 12, 14,
486    14, 15, 9, 13, 10, 13, 10, 14,
487    10, 14, 11, 15, 11, 15, 11, 14,
488    12, 15, 12, 13, 13, 13, 13, 13,
489    13, 14, 13, 14, 14, 14, 14, 14,
490    14, 15, 14, 15, 16, 15, 14, 15,
491    16, 15, 15,
492];
493pub const LEVELS1: [u16; 40] = [
494    311, 91, 61, 28, 10, 6, 5, 2,
495    2, 2, 2, 2, 2, 2, 2, 1,
496    1, 1, 1, 1, 1, 1, 1, 1,
497    1, 1, 1, 1, 1, 1, 1, 1,
498    1, 1, 1, 1, 1, 1, 1, 1,
499];
500pub const COEF2_HUFFCODES: [u32; 1336] = [
501    0x003e6, 0x000f6, 0x00000, 0x00002, 0x00006, 0x0000f, 0x0001b, 0x00028,
502    0x00039, 0x0003f, 0x0006b, 0x00076, 0x000b7, 0x000e8, 0x000ef, 0x00169,
503    0x001a7, 0x001d4, 0x001dc, 0x002c4, 0x00349, 0x00355, 0x00391, 0x003dc,
504    0x00581, 0x005b2, 0x00698, 0x0070c, 0x00755, 0x0073a, 0x00774, 0x007cf,
505    0x00b0a, 0x00b66, 0x00d2e, 0x00d5e, 0x00e1b, 0x00eac, 0x00e5a, 0x00f7e,
506    0x00fa1, 0x0163e, 0x01a37, 0x01a52, 0x01c39, 0x01ab3, 0x01d5f, 0x01cb6,
507    0x01f52, 0x01dd9, 0x02c04, 0x02c2e, 0x02c2d, 0x02c23, 0x03467, 0x034a3,
508    0x0351b, 0x03501, 0x03a5d, 0x0351c, 0x03875, 0x03dea, 0x0397b, 0x039db,
509    0x03df1, 0x039d8, 0x03bb4, 0x0580a, 0x0584d, 0x05842, 0x05b13, 0x058ea,
510    0x0697d, 0x06a06, 0x068cc, 0x06ac7, 0x06a96, 0x072f4, 0x07543, 0x072b4,
511    0x07d20, 0x0b003, 0x073b5, 0x07be6, 0x0d180, 0x07bd1, 0x07cb8, 0x07d06,
512    0x07d25, 0x0d2f2, 0x0d19a, 0x0d334, 0x0e1dc, 0x0d529, 0x0d584, 0x0e1d2,
513    0x0e5e3, 0x0eec4, 0x0e564, 0x0fa49, 0x16001, 0x0eedc, 0x0f7fa, 0x1a32c,
514    0x16131, 0x16003, 0x0f9c8, 0x1ef80, 0x1d2a0, 0x1aa4b, 0x0f7ce, 0x1abfe,
515    0x1aa50, 0x1a458, 0x1a816, 0x1cae4, 0x1d2fe, 0x1d52e, 0x1aa4c, 0x2c245,
516    0x1d2a1, 0x1a35d, 0x1ca1b, 0x1d5d8, 0x1f531, 0x1ca1c, 0x1f389, 0x1f4af,
517    0x3a5e7, 0x351fb, 0x2c24b, 0x34bce, 0x2c24d, 0x2c249, 0x2c24a, 0x72dfc,
518    0x357ef, 0x35002, 0x3a5e6, 0x39431, 0x5843b, 0x34a77, 0x58431, 0x3a5f3,
519    0x3a5dd, 0x3e5e5, 0x356bd, 0x3976e, 0x6a3d2, 0x3500d, 0x694c4, 0x580bd,
520    0x3e5e8, 0x74b95, 0x34a6e, 0x3977c, 0x39432, 0x5b0d2, 0x6a3d8, 0x580b8,
521    0x5b0cb, 0x5b0d7, 0x72dee, 0x72ded, 0x72dec, 0x74b9c, 0x3977f, 0x72dea,
522    0x74b9e, 0x7be7d, 0x580bf, 0x5b0d5, 0x7cba8, 0x74b91, 0x3e5dd, 0xb6171,
523    0xd46b3, 0xd46b9, 0x7cba1, 0x74b9f, 0x72de1, 0xe59f5, 0x3e5eb, 0x00004,
524    0x00015, 0x00038, 0x00075, 0x000e8, 0x001d3, 0x00347, 0x0039c, 0x00690,
525    0x0074a, 0x00b60, 0x00e93, 0x00f74, 0x0163d, 0x01a5a, 0x01d24, 0x01cbe,
526    0x01f4b, 0x03468, 0x03562, 0x03947, 0x03e82, 0x05804, 0x05b12, 0x05803,
527    0x0696d, 0x06a9e, 0x0697c, 0x06978, 0x06afb, 0x074b2, 0x072f5, 0x073c0,
528    0x07541, 0x06944, 0x074b7, 0x070d3, 0x07ba9, 0x0b0b1, 0x0d1af, 0x0e1dd,
529    0x0e5e2, 0x0e1a3, 0x0eec3, 0x1612f, 0x0e961, 0x0eeda, 0x0e78e, 0x0fa48,
530    0x1612c, 0x0e511, 0x0e565, 0x0e953, 0x1aa4a, 0x0e59d, 0x1d52c, 0x1a811,
531    0x1cae7, 0x1abfc, 0x1d52d, 0x1cacf, 0x1cf05, 0x2c254, 0x34a72, 0x1f4ac,
532    0x3976b, 0x34a71, 0x2c6d9, 0x2d873, 0x34a6a, 0x357e7, 0x3464c, 0x3e5f5,
533    0x58433, 0x1f53a, 0x3500a, 0x357ea, 0x34a73, 0x3942f, 0x357e5, 0x39775,
534    0x694cd, 0x39772, 0x7cba5, 0x6a3ef, 0x35483, 0x74b98, 0x5b0c1, 0x39770,
535    0x3a5d7, 0x39433, 0x39434, 0x694ce, 0x580be, 0x3e5ff, 0x6a3ec, 0xb616f,
536    0xd46b1, 0x6a3d1, 0x72de5, 0x74b6e, 0x72de9, 0x3e700, 0xd46b6, 0x6a3e9,
537    0x74b69, 0xe5675, 0xd46b8, 0x7cbaa, 0x3a5d1, 0x0000c, 0x0003c, 0x000eb,
538    0x001f1, 0x003a4, 0x006a8, 0x007d5, 0x00d43, 0x00e77, 0x016c5, 0x01cb1,
539    0x02c5d, 0x03a55, 0x03a56, 0x03e51, 0x03bb5, 0x05b0a, 0x06a9f, 0x074b8,
540    0x07d28, 0x0d187, 0x0d40e, 0x0d52e, 0x0d425, 0x0eae3, 0x0e1d3, 0x1612e,
541    0x0e59e, 0x0eec2, 0x0e578, 0x0e51a, 0x0e579, 0x0e515, 0x0e960, 0x0d183,
542    0x0d220, 0x0d2cb, 0x0e512, 0x16c3e, 0x16002, 0x16c42, 0x1cae9, 0x3461a,
543    0x1d2fa, 0x1a308, 0x1a849, 0x1cf07, 0x1f38f, 0x34b65, 0x2c253, 0x1ef9e,
544    0x1cbc3, 0x1cbc1, 0x2c255, 0x1f384, 0x58435, 0x2c5cd, 0x3a5f7, 0x2c252,
545    0x3959c, 0x2c6d8, 0x3a5d3, 0x6ad78, 0x6a3f2, 0x7cba9, 0xb6176, 0x72deb,
546    0x39764, 0x3e5f6, 0x3a5d8, 0x74a8c, 0x6a3e6, 0x694d1, 0x6ad79, 0x1a4592,
547    0xe59fb, 0x7cbb3, 0x5b0cd, 0x00017, 0x000b5, 0x002c3, 0x005b7, 0x00b1c,
548    0x00e5c, 0x0163f, 0x01ab2, 0x01efa, 0x0348a, 0x0396e, 0x058da, 0x06963,
549    0x06a30, 0x072cd, 0x073cf, 0x07ce7, 0x0d2ca, 0x0d2d8, 0x0e764, 0x0e794,
550    0x16008, 0x16167, 0x1617e, 0x1aa49, 0x1a30b, 0x1a813, 0x2c6da, 0x1a580,
551    0x1cbc2, 0x0f9ca, 0x1617f, 0x1d2fe, 0x0f7fc, 0x16c40, 0x0e513, 0x0eec5,
552    0x0f7c3, 0x1d508, 0x1a81e, 0x1d2fd, 0x39430, 0x35486, 0x3e5fd, 0x2c24c,
553    0x2c75a, 0x34a74, 0x3a5f4, 0x3464d, 0x694ca, 0x3a5f1, 0x1d509, 0x1d5c0,
554    0x34648, 0x3464e, 0x6a3d5, 0x6a3e8, 0x6a3e7, 0x5b0c3, 0x2c248, 0x1f38a,
555    0x3a5f2, 0x6a3e5, 0x00029, 0x00168, 0x0058c, 0x00b67, 0x00f9d, 0x01c3d,
556    0x01cbf, 0x02c20, 0x0351d, 0x03df6, 0x06af9, 0x072b5, 0x0b1d7, 0x0b0b2,
557    0x0d40a, 0x0d52b, 0x0e952, 0x0e797, 0x163c3, 0x1c3a0, 0x1f386, 0x1ca21,
558    0x34655, 0x2c247, 0x1f53b, 0x2c250, 0x2c24f, 0x1f385, 0x1ef5d, 0x1cf15,
559    0x1caea, 0x1ab0a, 0x1cf19, 0x1f53d, 0x1d5c2, 0x1d2fb, 0x1ef58, 0x34a78,
560    0x357ec, 0x1f533, 0x3a5e1, 0x694d2, 0x58482, 0x3a5ee, 0x2c6dc, 0x357eb,
561    0x5b0c4, 0x39778, 0x6a3e1, 0x7cbb4, 0x3a5e1, 0x74b68, 0x3a5ef, 0x3a5d2,
562    0x39424, 0x72de2, 0xe59f6, 0xe59f7, 0x3e702, 0x3e5ec, 0x1f38b, 0x0003b,
563    0x001f0, 0x00777, 0x00fa8, 0x01cb2, 0x02d84, 0x03a57, 0x03dd6, 0x06917,
564    0x06a11, 0x07d07, 0x0eae2, 0x0e796, 0x0f9c9, 0x0f7fb, 0x16166, 0x16160,
565    0x1ab1b, 0x1abfa, 0x2d87b, 0x1d2f7, 0x39768, 0x1f38c, 0x34653, 0x34651,
566    0x6a3d9, 0x35001, 0x3abbd, 0x38742, 0x39426, 0x34a76, 0x3a5ec, 0x34a75,
567    0x35000, 0x35488, 0x1cf10, 0x2c6db, 0x357ed, 0x357e8, 0x357e9, 0x3a5f0,
568    0x694c2, 0xb6178, 0x72df5, 0x39425, 0x3942b, 0x74b6d, 0x74b6f, 0xb6177,
569    0xb6179, 0x74b6a, 0xb6172, 0x58487, 0x3e5ee, 0x3e5ed, 0x72df2, 0x72df4,
570    0x7cbae, 0x6a3ca, 0x70e86, 0x34bcf, 0x6a3c8, 0x00059, 0x00384, 0x00d5b,
571    0x01c38, 0x03560, 0x0395b, 0x0584e, 0x06964, 0x073cd, 0x0b1e7, 0x0e798,
572    0x0e78d, 0x0fa43, 0x1a848, 0x1a32f, 0x1aa4e, 0x3464a, 0x1f4ab, 0x1f38d,
573    0x3a5eb, 0x3a5d4, 0x3548a, 0x6a3c7, 0x5b0d0, 0x6a3c5, 0x7cbb0, 0x694cb,
574    0x3a5e5, 0x3e5e2, 0x3942c, 0x2d872, 0x1f4ae, 0x3a5d5, 0x694d3, 0x58481,
575    0x35009, 0x39774, 0x58432, 0xb616c, 0x5b0db, 0x3548b, 0xb6174, 0x1d5d95,
576    0xb004c, 0x7cbb2, 0x3a5e5, 0x74a8f, 0xe59f9, 0x72df6, 0xe59fd, 0x7cbad,
577    0xd427d, 0x72cff, 0x3977a, 0x5b0d9, 0xb616d, 0xb616b, 0x1a4593, 0x7cbaf,
578    0x5b0da, 0x00071, 0x003eb, 0x01603, 0x02c6c, 0x03961, 0x068c8, 0x06a31,
579    0x072bd, 0x0d2c2, 0x0e51b, 0x0e5e6, 0x1abfb, 0x1d2ff, 0x1cae5, 0x1ef5c,
580    0x1ef5e, 0x1cf13, 0x34a6d, 0x3976d, 0xb616a, 0x3e5f2, 0x6a3c4, 0xb6169,
581    0x3e5dc, 0x580b9, 0x74b99, 0x75764, 0x58434, 0x3a5d9, 0x6945a, 0x69459,
582    0x3548c, 0x3a5e9, 0x69457, 0x72df1, 0x6945e, 0x6a35e, 0x3e701, 0xb6168,
583    0x5b0dd, 0x3a5de, 0x6a3c2, 0xd4278, 0x6a3cc, 0x72dfd, 0xb6165, 0x16009a,
584    0x7cbb1, 0xd427c, 0xb6162, 0xe765e, 0x1cecbe, 0x7cbb6, 0x69454, 0xb6160,
585    0xd427a, 0x1d5d96, 0xb1d6d, 0xe59f4, 0x72de8, 0x3a5db, 0x0007a, 0x006ae,
586    0x01c3c, 0x03aba, 0x058e9, 0x072cc, 0x0d2dd, 0x0d22d, 0x0eec1, 0x0eedb,
587    0x1d2a2, 0x1ef5b, 0x357e2, 0x3abbf, 0x1d2f9, 0x35004, 0x3a5dc, 0x351fc,
588    0x3976c, 0x6a3c6, 0x6a3cb, 0x3e5ea, 0xe59f3, 0x6a3ce, 0x69452, 0xe59f0,
589    0x74b90, 0xd4279, 0xd427b, 0x7cbb5, 0x5b0c5, 0x3a5e3, 0x3a5e2, 0x000d0,
590    0x00775, 0x01efe, 0x03dd5, 0x0728c, 0x07cb9, 0x0e1a2, 0x0ea85, 0x0eed8,
591    0x1a30a, 0x1aa4f, 0x3a5df, 0x35008, 0x3a5e0, 0x3e5f4, 0x3e5f7, 0xb1d6c,
592    0x5843e, 0x34a70, 0x72df8, 0x74b6b, 0xd427f, 0x72df0, 0x5b0bf, 0x5b0c0,
593    0xd46b0, 0x72def, 0xe59f8, 0x162e64, 0xb1d6f, 0x3a5e0, 0x39427, 0x69166,
594    0x6a3e2, 0x6a3e3, 0x74a8d, 0xd427e, 0x1d5d97, 0xd46b4, 0x5b0d8, 0x6a3d3,
595    0x000e0, 0x00b63, 0x034cc, 0x06a33, 0x073c9, 0x0e1a0, 0x0f7fd, 0x0f9cc,
596    0x1617d, 0x1caeb, 0x1f4a9, 0x3abb3, 0x69450, 0x39420, 0x39777, 0x3e5e0,
597    0x6a3d4, 0x6a3ed, 0xb6166, 0xe59f1, 0xb1d6e, 0xe5676, 0x6a3ea, 0xe5674,
598    0xb6163, 0xd46b7, 0x7cba6, 0xd46ba, 0x1d5d94, 0xb6164, 0x6a3f1, 0x7cba2,
599    0x69451, 0x72dfa, 0xd46bb, 0x72df7, 0x74b94, 0x1cecbf, 0xe59fa, 0x16009b,
600    0x6a3e4, 0x000e6, 0x00e94, 0x03876, 0x070ef, 0x0d52a, 0x16015, 0x16014,
601    0x1abf9, 0x1cf17, 0x34a79, 0x34650, 0x3e705, 0x6a3d0, 0x58430, 0x74b9d,
602    0x7be7e, 0x5b0be, 0x39773, 0x6a3de, 0x000fb, 0x00f7b, 0x03dd7, 0x07bd0,
603    0x0e59c, 0x0f9cd, 0x1cf18, 0x1d2ff, 0x34a7a, 0x39429, 0x3500c, 0x72de0,
604    0x69456, 0x7be7c, 0xd46b5, 0xd46b2, 0x6a3dd, 0x001a2, 0x0163b, 0x06913,
605    0x0b016, 0x0fa42, 0x1a32d, 0x1cf06, 0x34a7c, 0x34a7d, 0xb6161, 0x35481,
606    0x3e5fa, 0x7cba0, 0x7be7f, 0x7cba3, 0x7cba7, 0x5b0d3, 0x72de6, 0x6a3dc,
607    0x001a9, 0x01ab4, 0x06a34, 0x0d46a, 0x16130, 0x1ef5f, 0x1f532, 0x1f536,
608    0x3942e, 0x58436, 0x6a3db, 0x6945b, 0x001c9, 0x01ca0, 0x0728b, 0x0eed9,
609    0x1f539, 0x1ca1d, 0x39765, 0x39766, 0x58439, 0x6945d, 0x39767, 0x001d3,
610    0x01f2c, 0x07bfc, 0x16161, 0x34652, 0x3a5ed, 0x3548d, 0x58438, 0x6a3da,
611    0x002c1, 0x02c5e, 0x0d335, 0x1ab1a, 0x2d874, 0x35006, 0x35484, 0x5b0cc,
612    0x74b9a, 0x72df3, 0x6a3d6, 0x002da, 0x034b3, 0x0d5ae, 0x1caee, 0x2d871,
613    0x357e3, 0x74b97, 0x72df9, 0x580ba, 0x5b0d4, 0x0034d, 0x0354e, 0x0f750,
614    0x1cbc0, 0x3a5e7, 0x3a5e4, 0x00385, 0x03a58, 0x16c41, 0x2c5cf, 0x3e5e1,
615    0x74b6c, 0xe5677, 0x6a3df, 0x00390, 0x03e50, 0x163c2, 0x2d876, 0x35482,
616    0x5b0d6, 0x5843a, 0x0039f, 0x0585e, 0x1a583, 0x3500f, 0x74b93, 0x39771,
617    0x003e4, 0x06912, 0x16c43, 0x357e1, 0x0058a, 0x0696f, 0x1f538, 0x5b0c9,
618    0x6a3cf, 0x005b6, 0x06af8, 0x1f534, 0x58483, 0x6a3e0, 0x00695, 0x07d02,
619    0x1cae8, 0x58485, 0x006a2, 0x0754a, 0x357ee, 0x3977b, 0x00748, 0x074b2,
620    0x34a7b, 0x00729, 0x0b1e0, 0x34649, 0x3e5e3, 0x0073d, 0x0d2c4, 0x3e5e6,
621    0x007bb, 0x0b099, 0x39762, 0x5b0ce, 0x6945f, 0x007d1, 0x0d5ab, 0x39779,
622    0x007d3, 0x0d52f, 0x39763, 0x6945c, 0x00b1a, 0x0d2c5, 0x35489, 0x00d23,
623    0x0eaed, 0x3e5f8, 0x00d32, 0x16016, 0x3e5fb, 0x00d41, 0x0e768, 0x3a5ed,
624    0x00e1f, 0x16017, 0x58027, 0x00ead, 0x0fa07, 0x69455, 0x00e54, 0x1612b,
625    0x00e55, 0x1a581, 0x00f78, 0x1a32b, 0x580bc, 0x6a3ee, 0x00f79, 0x1abfd,
626    0x00f95, 0x1ab18, 0x6a3f0, 0x01637, 0x1aa4d, 0x0162d, 0x1f53c, 0x6a3f3,
627    0x01a31, 0x1a810, 0x39769, 0x01a50, 0x1caef, 0x01a36, 0x1a32e, 0x01a67,
628    0x1f38e, 0x01a85, 0x1ef59, 0x01aa6, 0x1ef83, 0x01d51, 0x2c012, 0x01d53,
629    0x2d879, 0x01d5e, 0x35005, 0x01cba, 0x1cf04, 0x69453, 0x01d2d, 0x351ff,
630    0x01f2d, 0x2d86f, 0x01f29, 0x35007, 0x02c22, 0x351fa, 0x02c03, 0x3a5ec,
631    0x02c5f, 0x3a5eb, 0x02c58, 0x34a6b, 0x03469, 0x356be, 0x02c59, 0x34a6c,
632    0x0346a, 0x3a5ea, 0x034bd, 0x034bf, 0x356bf, 0x0386a, 0x03ab9, 0x5843f,
633    0x0386b, 0x3a5f5, 0x03a4b, 0x39421, 0x03aa4, 0x3a5e9, 0x03a5a, 0x03960,
634    0x3977e, 0x03de9, 0x03958, 0x03df7, 0x039e1, 0x3e5e4, 0x0395f, 0x69458,
635    0x03e91, 0x03df2, 0x39428, 0x058f2, 0x03e80, 0x6a3c3, 0x03e93, 0x694c0,
636    0x058b8, 0x5b0ca, 0x0584f, 0x694c1, 0x058f1, 0x068d6, 0x06a10, 0x06ac3,
637    0x06a32, 0x070d2, 0x06911, 0x074b1, 0x07494, 0x06ad4, 0x06ad6, 0x072b8,
638    0x06afa, 0x074b3, 0x07540, 0x073ce, 0x0b005, 0x074b3, 0x07495, 0x074b9,
639    0x0d336, 0x07bff, 0x07763, 0x073c8, 0x07d29, 0x0b622, 0x0d221, 0x0d181,
640    0x0b1d1, 0x074b8, 0x0b1d0, 0x0d19b, 0x0d2c3, 0x0b172, 0x0d2dc, 0x0b623,
641    0x0d5aa, 0x0d426, 0x0d182, 0x0e795, 0x0e1d1, 0x0d337, 0x0e96c, 0x0e5e4,
642    0x0e514, 0x0eaee, 0x16000, 0x0e767, 0x0e1a1, 0x0e78f, 0x16004, 0x0f7c2,
643    0x0e799, 0x0e5e7, 0x0e566, 0x0e769, 0x0f751, 0x0eede, 0x0fa06, 0x16005,
644    0x0fa9f, 0x1a5e6, 0x0e766, 0x1636f, 0x0eedd, 0x0eec0, 0x1a309, 0x1ceca,
645    0x163cd, 0x0f9cb, 0x0eedf, 0x1a582, 0x1612d, 0x0e5e5, 0x1abf8, 0x1a30c,
646    0x1ca1f, 0x163cc, 0x1a35c, 0x1ca1e, 0x1aa51, 0x163ac, 0x1a84e, 0x1a53f,
647    0x1cf16, 0x1d2fc, 0x1a5b3, 0x1ab19, 0x1a81f, 0x1d5c3, 0x16c3f, 0x1d5c1,
648    0x1d2fc, 0x1f4aa, 0x1a812, 0x1f535, 0x1cf12, 0x1a817, 0x1617c, 0x1ab0b,
649    0x1d2f8, 0x1ef82, 0x2d87a, 0x1d52f, 0x1f530, 0x1aa48, 0x35487, 0x1d2fd,
650    0x1f4ad, 0x1cf11, 0x3461b, 0x35485, 0x1ca20, 0x1caed, 0x1cae6, 0x1abff,
651    0x3464f, 0x34a6f, 0x1ef81, 0x3464b, 0x39d96, 0x1f383, 0x1f537, 0x1cf14,
652    0x2c5ce, 0x3500e, 0x2c251, 0x1caec, 0x1f387, 0x34654, 0x357e4, 0x2d878,
653    0x3500b, 0x35480, 0x3a5e8, 0x3548e, 0x34b64, 0x1f4a8, 0x35003, 0x3e5df,
654    0x2d870, 0x357e6, 0x3e5f0, 0x1ef5a, 0x3a5ea, 0x1f388, 0x3e703, 0x2c24e,
655    0x3a5e2, 0x351fd, 0x2c6dd, 0x3e704, 0x351fe, 0x2d875, 0x5b0c7, 0x3976a,
656    0x3a5e6, 0x39423, 0x58480, 0x2c246, 0x3a5e3, 0x2d877, 0x3e5f1, 0x3abbe,
657    0x58489, 0x3e5f9, 0x357e0, 0x3abbc, 0x5b0c6, 0x69167, 0x69165, 0x3e5e9,
658    0x39422, 0x3976f, 0x3977d, 0x3e5de, 0x6a3c9, 0x58b98, 0x3a5f6, 0x3a5d0,
659    0x58486, 0x6a3c1, 0x3e5fc, 0x5b0dc, 0x3548f, 0x3942d, 0x694c9, 0x58484,
660    0x3a5e8, 0x74b9b, 0x74b96, 0x694d0, 0x58488, 0x3a5e4, 0x3942a, 0x72ec2,
661    0x39776, 0x5b0d1, 0x5b0cf, 0x3a5d6, 0xe59fc, 0x5b0c8, 0x3e5e7, 0x7cbb7,
662    0x70e87, 0x7cbab, 0x5b0c2, 0x694c3, 0x74a8e, 0x3e5f3, 0x6a3cd, 0x72dfe,
663    0x73b2e, 0x72ec0, 0x694c5, 0x58437, 0x694c8, 0x72dff, 0x39435, 0x5843d,
664    0x6a3d7, 0x72ec1, 0xd22c8, 0x694cf, 0xb6173, 0x3e5fe, 0x580bb, 0xe59f2,
665    0xb616e, 0xb6175, 0x3a5da, 0x5b0bd, 0x694cc, 0x5843c, 0x694c7, 0x74b92,
666    0x72ec3, 0x694c6, 0xb6170, 0x7cbac, 0xb1733, 0x7cba4, 0xb6167, 0x72de7,
667    0x72de4, 0x6a3c0, 0x3e5ef, 0x162e65, 0x72de3, 0x72dfb, 0x6a35f, 0x6a3eb,
668];
669pub const COEF2_HUFFBITS: [u8; 1336] = [
670    11, 9, 2, 3, 4, 4, 5, 6,
671    6, 7, 7, 8, 8, 8, 9, 9,
672    9, 9, 10, 10, 10, 10, 11, 11,
673    11, 11, 11, 11, 11, 12, 12, 12,
674    12, 12, 12, 12, 12, 12, 13, 13,
675    13, 13, 13, 13, 13, 13, 13, 14,
676    14, 14, 14, 14, 14, 14, 14, 14,
677    14, 14, 14, 14, 14, 15, 15, 15,
678    15, 15, 15, 15, 15, 15, 15, 15,
679    15, 15, 15, 15, 15, 16, 15, 16,
680    16, 16, 16, 16, 16, 16, 16, 16,
681    16, 16, 16, 16, 16, 16, 16, 16,
682    17, 17, 17, 17, 17, 17, 17, 17,
683    17, 17, 17, 18, 17, 17, 17, 17,
684    17, 17, 17, 18, 18, 17, 17, 18,
685    17, 17, 18, 17, 18, 18, 18, 18,
686    19, 18, 18, 18, 18, 18, 18, 20,
687    18, 18, 18, 19, 19, 18, 19, 18,
688    19, 19, 18, 19, 19, 18, 19, 19,
689    19, 19, 18, 19, 19, 19, 19, 19,
690    19, 19, 20, 20, 20, 19, 19, 20,
691    19, 20, 19, 19, 20, 19, 19, 20,
692    20, 20, 20, 19, 20, 21, 19, 3,
693    5, 7, 8, 9, 9, 10, 11, 11,
694    12, 12, 12, 13, 13, 13, 13, 14,
695    14, 14, 14, 15, 15, 15, 15, 15,
696    15, 15, 15, 15, 15, 15, 16, 16,
697    15, 15, 15, 15, 16, 16, 16, 16,
698    17, 16, 17, 17, 16, 17, 17, 17,
699    17, 17, 17, 16, 17, 17, 17, 17,
700    18, 17, 17, 18, 18, 18, 18, 18,
701    19, 18, 18, 18, 18, 18, 18, 19,
702    19, 18, 18, 18, 18, 19, 18, 19,
703    19, 19, 20, 19, 18, 19, 19, 19,
704    19, 19, 19, 19, 19, 19, 19, 20,
705    20, 19, 20, 19, 20, 19, 20, 19,
706    19, 21, 20, 20, 19, 4, 7, 8,
707    10, 11, 11, 12, 12, 13, 13, 14,
708    14, 14, 14, 15, 15, 15, 15, 15,
709    16, 16, 16, 16, 16, 16, 16, 17,
710    17, 17, 17, 17, 17, 17, 16, 16,
711    16, 16, 17, 17, 17, 17, 18, 18,
712    18, 17, 17, 18, 18, 18, 18, 18,
713    18, 18, 18, 18, 19, 18, 18, 18,
714    19, 18, 19, 19, 19, 20, 20, 20,
715    19, 19, 19, 19, 19, 19, 19, 21,
716    21, 20, 19, 5, 8, 10, 11, 12,
717    13, 13, 13, 14, 14, 15, 15, 15,
718    15, 16, 16, 16, 16, 16, 17, 17,
719    17, 17, 17, 17, 17, 17, 18, 17,
720    18, 17, 17, 17, 17, 17, 17, 17,
721    17, 17, 17, 17, 19, 18, 19, 18,
722    18, 18, 18, 18, 19, 18, 17, 17,
723    18, 18, 19, 19, 19, 19, 18, 18,
724    18, 19, 6, 9, 11, 12, 13, 13,
725    14, 14, 14, 15, 15, 16, 16, 16,
726    16, 16, 16, 17, 17, 17, 18, 18,
727    18, 18, 18, 18, 18, 18, 18, 18,
728    18, 17, 18, 18, 17, 18, 18, 18,
729    18, 18, 18, 19, 19, 18, 18, 18,
730    19, 19, 19, 20, 19, 19, 18, 19,
731    19, 20, 21, 21, 19, 19, 18, 6,
732    10, 12, 13, 14, 14, 14, 15, 15,
733    15, 16, 16, 17, 17, 17, 17, 17,
734    17, 17, 18, 18, 19, 18, 18, 18,
735    19, 18, 18, 18, 19, 18, 18, 18,
736    18, 18, 18, 18, 18, 18, 18, 18,
737    19, 20, 20, 19, 19, 19, 19, 20,
738    20, 19, 20, 19, 19, 19, 20, 20,
739    20, 19, 19, 18, 19, 7, 10, 12,
740    13, 14, 15, 15, 15, 16, 16, 17,
741    17, 17, 17, 17, 17, 18, 18, 18,
742    18, 19, 18, 19, 19, 19, 20, 19,
743    18, 19, 19, 18, 18, 19, 19, 19,
744    18, 19, 19, 20, 19, 18, 20, 21,
745    20, 20, 19, 19, 21, 20, 21, 20,
746    20, 20, 19, 19, 20, 20, 21, 20,
747    19, 7, 11, 13, 14, 15, 15, 15,
748    16, 16, 17, 17, 17, 17, 18, 18,
749    18, 18, 18, 19, 20, 19, 19, 20,
750    19, 19, 19, 19, 19, 19, 19, 19,
751    18, 18, 19, 20, 19, 19, 19, 20,
752    19, 19, 19, 20, 19, 20, 20, 21,
753    20, 20, 20, 21, 22, 20, 19, 20,
754    20, 21, 20, 21, 20, 19, 8, 11,
755    13, 14, 15, 16, 16, 16, 17, 17,
756    17, 18, 18, 18, 18, 18, 19, 18,
757    19, 19, 19, 19, 21, 19, 19, 21,
758    19, 20, 20, 20, 19, 18, 18, 8,
759    12, 14, 15, 16, 16, 16, 16, 17,
760    17, 17, 19, 18, 18, 19, 19, 20,
761    19, 18, 20, 19, 20, 20, 19, 19,
762    20, 20, 21, 21, 20, 19, 19, 19,
763    19, 19, 19, 20, 21, 20, 19, 19,
764    8, 12, 14, 15, 16, 16, 17, 17,
765    17, 18, 18, 18, 19, 19, 19, 19,
766    19, 19, 20, 21, 20, 21, 19, 21,
767    20, 20, 20, 20, 21, 20, 19, 20,
768    19, 20, 20, 20, 19, 22, 21, 21,
769    19, 9, 12, 14, 15, 16, 17, 17,
770    17, 18, 18, 18, 19, 19, 19, 19,
771    20, 19, 19, 19, 9, 13, 15, 16,
772    17, 17, 18, 18, 18, 19, 18, 20,
773    19, 20, 20, 20, 19, 9, 13, 15,
774    16, 17, 17, 18, 18, 18, 20, 18,
775    19, 20, 20, 20, 20, 19, 20, 19,
776    9, 13, 15, 16, 17, 18, 18, 18,
777    19, 19, 19, 19, 10, 14, 16, 17,
778    18, 18, 19, 19, 19, 19, 19, 10,
779    14, 16, 17, 18, 18, 18, 19, 19,
780    10, 14, 16, 17, 18, 18, 18, 19,
781    19, 20, 19, 10, 14, 16, 18, 18,
782    18, 19, 20, 19, 19, 10, 14, 17,
783    18, 18, 18, 10, 15, 17, 18, 19,
784    19, 21, 19, 11, 15, 17, 18, 18,
785    19, 19, 11, 15, 17, 18, 19, 19,
786    11, 15, 17, 18, 11, 15, 18, 19,
787    19, 11, 15, 18, 19, 19, 11, 16,
788    18, 19, 11, 15, 18, 19, 11, 16,
789    18, 12, 16, 18, 19, 12, 16, 19,
790    12, 16, 19, 19, 19, 12, 16, 19,
791    12, 16, 19, 19, 12, 16, 18, 12,
792    16, 19, 12, 17, 19, 12, 17, 19,
793    12, 17, 19, 12, 17, 19, 13, 17,
794    13, 17, 13, 17, 19, 19, 13, 17,
795    13, 17, 19, 13, 17, 13, 18, 19,
796    13, 17, 19, 13, 18, 13, 17, 13,
797    18, 13, 18, 13, 18, 13, 18, 13,
798    18, 13, 18, 14, 18, 19, 14, 18,
799    14, 18, 14, 18, 14, 18, 14, 19,
800    14, 19, 14, 18, 14, 18, 14, 18,
801    14, 19, 14, 14, 18, 14, 14, 19,
802    14, 18, 14, 19, 14, 19, 14, 15,
803    19, 15, 15, 15, 15, 19, 15, 19,
804    15, 15, 19, 15, 15, 19, 15, 19,
805    15, 19, 15, 19, 15, 15, 15, 15,
806    15, 15, 15, 15, 15, 15, 15, 16,
807    15, 15, 15, 16, 16, 16, 15, 16,
808    16, 16, 16, 16, 16, 16, 16, 16,
809    16, 16, 16, 16, 16, 16, 16, 16,
810    16, 16, 16, 17, 16, 16, 16, 17,
811    17, 16, 17, 17, 16, 17, 17, 17,
812    17, 17, 17, 17, 17, 17, 17, 17,
813    17, 17, 17, 17, 17, 17, 17, 18,
814    17, 17, 17, 17, 17, 17, 17, 17,
815    18, 17, 17, 18, 17, 17, 17, 17,
816    18, 18, 17, 17, 17, 17, 17, 17,
817    17, 18, 17, 18, 18, 17, 17, 17,
818    18, 18, 18, 17, 18, 17, 18, 18,
819    18, 18, 18, 18, 18, 18, 18, 17,
820    18, 18, 18, 18, 19, 18, 18, 18,
821    18, 18, 18, 18, 18, 18, 18, 18,
822    18, 18, 18, 18, 18, 18, 18, 19,
823    18, 18, 19, 18, 18, 18, 19, 18,
824    19, 18, 18, 19, 18, 18, 19, 19,
825    19, 19, 19, 18, 19, 18, 19, 18,
826    19, 19, 18, 18, 19, 19, 19, 19,
827    19, 19, 19, 19, 19, 19, 18, 19,
828    19, 19, 19, 19, 18, 19, 19, 19,
829    19, 19, 19, 19, 19, 19, 19, 20,
830    19, 19, 19, 19, 21, 19, 19, 20,
831    19, 20, 19, 19, 19, 19, 19, 20,
832    20, 20, 19, 19, 19, 20, 19, 19,
833    19, 20, 20, 19, 20, 19, 19, 21,
834    20, 20, 19, 19, 19, 19, 19, 19,
835    20, 19, 20, 20, 20, 20, 20, 20,
836    20, 19, 19, 21, 20, 20, 19, 19,
837];
838pub const LEVELS2: [u16; 340] = [
839    181, 110, 78, 63, 61, 62, 60, 61,
840    33, 41, 41, 19, 17, 19, 12, 11,
841    9, 11, 10, 6, 8, 7, 6, 4,
842    5, 5, 4, 4, 3, 4, 3, 5,
843    3, 4, 3, 3, 3, 3, 3, 3,
844    2, 2, 4, 2, 3, 2, 3, 3,
845    2, 2, 2, 2, 2, 2, 2, 2,
846    3, 2, 2, 2, 2, 2, 2, 2,
847    2, 2, 2, 1, 2, 1, 2, 2,
848    2, 2, 1, 2, 1, 1, 1, 2,
849    2, 1, 2, 1, 2, 2, 2, 2,
850    1, 1, 1, 1, 1, 1, 1, 1,
851    1, 1, 1, 1, 1, 1, 1, 1,
852    1, 1, 1, 1, 1, 1, 1, 1,
853    1, 1, 1, 1, 1, 1, 1, 1,
854    1, 1, 1, 1, 1, 1, 1, 1,
855    1, 1, 1, 1, 1, 1, 1, 1,
856    1, 1, 1, 1, 1, 1, 1, 1,
857    1, 1, 1, 1, 1, 1, 1, 1,
858    1, 1, 1, 1, 1, 1, 1, 1,
859    1, 1, 1, 1, 1, 1, 1, 1,
860    1, 1, 1, 1, 1, 1, 1, 1,
861    1, 1, 1, 1, 1, 1, 1, 1,
862    1, 1, 1, 1, 1, 1, 1, 1,
863    1, 1, 1, 1, 1, 1, 1, 1,
864    1, 1, 1, 1, 1, 1, 1, 1,
865    1, 1, 1, 1, 1, 1, 1, 1,
866    1, 1, 1, 1, 1, 1, 1, 1,
867    1, 1, 1, 1, 1, 1, 1, 1,
868    1, 1, 1, 1, 1, 1, 1, 1,
869    1, 1, 1, 1, 1, 1, 1, 1,
870    1, 1, 1, 1, 1, 1, 1, 1,
871    1, 1, 1, 1, 1, 1, 1, 1,
872    1, 1, 1, 1, 1, 1, 1, 1,
873    1, 1, 1, 1, 1, 1, 1, 1,
874    1, 1, 1, 1, 1, 1, 1, 1,
875    1, 1, 1, 1, 1, 1, 1, 1,
876    1, 1, 1, 1, 1, 1, 1, 1,
877    1, 1, 1, 1, 1, 1, 1, 1,
878    1, 1, 1, 1, 1, 1, 1, 1,
879    1, 1, 1, 1, 1, 1, 1, 1,
880    1, 1, 1, 1, 1, 1, 1, 1,
881    1, 1, 1, 1,
882];
883pub const COEF3_HUFFCODES: [u32; 1072] = [
884    0x001b2, 0x00069, 0x00000, 0x00004, 0x00006, 0x0000e, 0x00014, 0x00019,
885    0x00016, 0x0002b, 0x00030, 0x0003d, 0x0003c, 0x0005a, 0x0005f, 0x0006d,
886    0x0007e, 0x0005f, 0x0007f, 0x000b6, 0x000bc, 0x000d8, 0x000f2, 0x000fe,
887    0x000bc, 0x000fc, 0x00161, 0x0016e, 0x00174, 0x00176, 0x001a2, 0x001e3,
888    0x001f3, 0x00174, 0x0017a, 0x001ea, 0x002a8, 0x002c4, 0x002e6, 0x00314,
889    0x00346, 0x00367, 0x003e9, 0x002e5, 0x002ee, 0x003d6, 0x00555, 0x00554,
890    0x00557, 0x005c3, 0x005d6, 0x006e0, 0x0062f, 0x006e2, 0x00799, 0x00789,
891    0x007fa, 0x005ce, 0x007fe, 0x005ec, 0x007cc, 0x007af, 0x00aa7, 0x00b19,
892    0x00b94, 0x00b85, 0x00b9f, 0x00c48, 0x00c45, 0x00dd8, 0x00c4c, 0x00c4b,
893    0x00d99, 0x00d1f, 0x00dc2, 0x00f95, 0x00fa2, 0x00bb5, 0x00b9f, 0x00f5d,
894    0x00bbf, 0x00f47, 0x0154a, 0x00fd5, 0x00f45, 0x00f7f, 0x0160d, 0x01889,
895    0x01757, 0x01722, 0x018b3, 0x0172d, 0x01a39, 0x01a18, 0x01bb3, 0x01b30,
896    0x01e63, 0x0173c, 0x01b35, 0x01723, 0x01e80, 0x01fee, 0x01761, 0x01ffc,
897    0x01f7f, 0x02c7c, 0x01fa1, 0x0177b, 0x01755, 0x0175a, 0x01fa6, 0x02eab,
898    0x0310a, 0x02c69, 0x03669, 0x03127, 0x03103, 0x02e43, 0x03662, 0x03165,
899    0x03124, 0x0313b, 0x03111, 0x03668, 0x0343b, 0x03c52, 0x03efc, 0x02e6c,
900    0x03fda, 0x03ef8, 0x02e7b, 0x03ee2, 0x03cc5, 0x03d72, 0x058c0, 0x03df8,
901    0x02ea9, 0x03e7e, 0x0556d, 0x05c82, 0x03d71, 0x03e7b, 0x03c42, 0x058d7,
902    0x03f4e, 0x06200, 0x03d70, 0x05cb2, 0x05c96, 0x05cb0, 0x03f45, 0x05cb1,
903    0x02e6d, 0x03110, 0x02f68, 0x05c90, 0x07ca6, 0x07c88, 0x06204, 0x062c8,
904    0x078a6, 0x07986, 0x079d5, 0x0b1ad, 0x07989, 0x0b079, 0x05cdd, 0x0aad4,
905    0x05de8, 0x07dcd, 0x07987, 0x05d67, 0x05d99, 0x0b91d, 0x07cf1, 0x05d9b,
906    0x079d7, 0x0b07b, 0x05c85, 0x05d9a, 0x07dcc, 0x07ebf, 0x07dce, 0x07dfb,
907    0x07ec0, 0x07d1a, 0x07a07, 0x05c84, 0x0c471, 0x07cf2, 0x0baef, 0x0b9d2,
908    0x05deb, 0x07bd6, 0x0b845, 0x05d98, 0x0b91a, 0x0bae8, 0x0c4e0, 0x0dc31,
909    0x0f93d, 0x0bbce, 0x0d1d2, 0x0f7a9, 0x0d9b9, 0x0bbcb, 0x0b900, 0x0aad7,
910    0x0babd, 0x0c4e1, 0x0f46f, 0x0c588, 0x0c58b, 0x160e6, 0x0bbcf, 0x0bac3,
911    0x0f945, 0x0f7a3, 0x0d1c1, 0x0fb8e, 0x0f7a4, 0x0fb8c, 0x0f40c, 0x0c473,
912    0x0fd72, 0x0bbcd, 0x0fffa, 0x0f940, 0x0bbc9, 0x0f7a8, 0x1a1ed, 0x0bbc5,
913    0x1f26f, 0x163fd, 0x160c7, 0x1a1f5, 0x0f947, 0x163fc, 0x154b3, 0x0fff6,
914    0x163f6, 0x160e9, 0x1a1f0, 0x0bab9, 0x0baba, 0x17086, 0x0b903, 0x0fd75,
915    0x0f308, 0x176f3, 0x163ff, 0x0fd7d, 0x1bb78, 0x163fb, 0x188db, 0x1a1f7,
916    0x154b2, 0x172fd, 0x163f4, 0x1bb73, 0x172ff, 0x0babc, 0x0f97d, 0x1a1f3,
917    0x1bb6d, 0x1ffd5, 0x1a1f4, 0x1f272, 0x17380, 0x17382, 0x1ffe7, 0x0bac8,
918    0x0bbc4, 0x188d3, 0x160e0, 0x0fd7b, 0x1725f, 0x172f5, 0x1bb79, 0x1fad9,
919    0x1f269, 0x188d0, 0x0bac4, 0x0bac5, 0x31185, 0x188d2, 0x188cc, 0x31187,
920    0x3e7fe, 0x188d1, 0x1bb6c, 0x1f268, 0x1fad2, 0x1ffd9, 0x1a1ea, 0x1bb68,
921    0x1facb, 0x3fdb2, 0x1e81a, 0x188ce, 0x172fb, 0x1a1ef, 0x1face, 0x1bb70,
922    0x0bac1, 0x1bb6b, 0x172f8, 0x1bb66, 0x1ffdf, 0x1bb6a, 0x1ffd7, 0x1f266,
923    0x176f8, 0x37653, 0x1fa7e, 0x31182, 0x1fac8, 0x2c7e3, 0x370ee, 0x176ec,
924    0x176e9, 0x2e4bc, 0x160c5, 0x3765a, 0x3ce9c, 0x17373, 0x176e8, 0x188d4,
925    0x176f1, 0x176ef, 0x37659, 0x1bb7c, 0x1ffde, 0x176f2, 0x3118b, 0x2c7d4,
926    0x37651, 0x5ce9f, 0x37650, 0x31191, 0x3f4f6, 0x3f4f5, 0x7a06c, 0x1fac1,
927    0x5c97b, 0x2c7e0, 0x79d3a, 0x3e7fd, 0x2c7df, 0x3f4f0, 0x7a06d, 0x376c1,
928    0x79d3b, 0x00004, 0x00014, 0x00059, 0x000ab, 0x000b8, 0x00177, 0x001f5,
929    0x001f2, 0x00315, 0x003fc, 0x005bd, 0x0062d, 0x006e8, 0x007dd, 0x00b04,
930    0x007cd, 0x00b1e, 0x00d1e, 0x00f15, 0x00f3b, 0x00f41, 0x01548, 0x018b0,
931    0x0173b, 0x01884, 0x01a1c, 0x01bb4, 0x01f25, 0x017b5, 0x0176d, 0x01ef8,
932    0x02e73, 0x03107, 0x03125, 0x03105, 0x02e49, 0x03ce8, 0x03ef9, 0x03e5e,
933    0x02e72, 0x03471, 0x03fd9, 0x0623f, 0x078a0, 0x06867, 0x05cb3, 0x06272,
934    0x068ec, 0x06e9a, 0x079d4, 0x06e98, 0x0b1aa, 0x06e1a, 0x07985, 0x068ee,
935    0x06e9b, 0x05c88, 0x0b1ac, 0x07dfa, 0x05d65, 0x07cf0, 0x07cbf, 0x0c475,
936    0x160eb, 0x1bb7e, 0x0f7a6, 0x1fedd, 0x160e3, 0x0fffb, 0x0fb8d, 0x0fff9,
937    0x0d1c0, 0x0c58c, 0x1a1e9, 0x0bab8, 0x0f5cf, 0x0fff5, 0x376c5, 0x1a1ec,
938    0x160ed, 0x1fede, 0x1fac9, 0x1a1eb, 0x1f224, 0x176ee, 0x0fd79, 0x17080,
939    0x17387, 0x1bb7a, 0x1ffe9, 0x176f7, 0x17385, 0x17781, 0x2c7d5, 0x17785,
940    0x1ffe3, 0x163f5, 0x1fac2, 0x3e7f9, 0x3118d, 0x3fdb1, 0x1ffe2, 0x1f226,
941    0x3118a, 0x2c7d9, 0x31190, 0x3118c, 0x3f4f3, 0x1bb7f, 0x1bb72, 0x31184,
942    0xb92f4, 0x3e7fb, 0x6e1d9, 0x1faca, 0x62300, 0x3fdb8, 0x3d037, 0x3e7fc,
943    0x62301, 0x3f4f2, 0x1f26a, 0x0000e, 0x00063, 0x000f8, 0x001ee, 0x00377,
944    0x003f7, 0x006e3, 0x005cc, 0x00b05, 0x00dd2, 0x00fd4, 0x0172e, 0x0172a,
945    0x01e23, 0x01f2d, 0x01763, 0x01769, 0x0176c, 0x02e75, 0x03104, 0x02ec1,
946    0x03e58, 0x0583f, 0x03f62, 0x03f44, 0x058c5, 0x0623c, 0x05cf4, 0x07bd7,
947    0x05d9d, 0x0aad2, 0x05d66, 0x0b1a9, 0x0b078, 0x07cfe, 0x0b918, 0x0c46f,
948    0x0b919, 0x0b847, 0x06e1b, 0x0b84b, 0x0aad8, 0x0fd74, 0x172f4, 0x17081,
949    0x0f97c, 0x1f273, 0x0f7a0, 0x0fd7c, 0x172f7, 0x0fd7a, 0x1bb77, 0x172fe,
950    0x1f270, 0x0fd73, 0x1bb7b, 0x1a1bc, 0x1bb7d, 0x0bbc3, 0x172f6, 0x0baeb,
951    0x0fb8f, 0x3f4f4, 0x3fdb4, 0x376c8, 0x3e7fa, 0x1ffd0, 0x62303, 0xb92f5,
952    0x1f261, 0x31189, 0x3fdb5, 0x2c7db, 0x376c9, 0x1fad6, 0x1fad1, 0x00015,
953    0x000f0, 0x002e0, 0x0058e, 0x005d7, 0x00c4d, 0x00fa1, 0x00bdb, 0x01756,
954    0x01f70, 0x02c19, 0x0313c, 0x0370f, 0x03cc0, 0x02ea8, 0x058c6, 0x058c7,
955    0x02eb7, 0x058d0, 0x07d18, 0x0aa58, 0x0b848, 0x05d9e, 0x05d6c, 0x0b84c,
956    0x0c589, 0x0b901, 0x163f8, 0x0bac9, 0x0b9c5, 0x0f93c, 0x188d8, 0x0bbc7,
957    0x160ec, 0x0fd6f, 0x188d9, 0x160ea, 0x0f7a7, 0x0f944, 0x0baab, 0x0dc3a,
958    0x188cf, 0x176fb, 0x2c7d8, 0x2c7d7, 0x1bb75, 0x5ce9e, 0x62302, 0x370ed,
959    0x176f4, 0x1ffd1, 0x370ef, 0x3f4f8, 0x376c7, 0x1ffe1, 0x376c6, 0x176ff,
960    0x6e1d8, 0x176f6, 0x17087, 0x0f5cd, 0x00035, 0x001a0, 0x0058b, 0x00aac,
961    0x00b9a, 0x0175f, 0x01e22, 0x01e8c, 0x01fb2, 0x0310b, 0x058d1, 0x0552e,
962    0x05c27, 0x0686e, 0x07ca7, 0x0c474, 0x0dc33, 0x07bf2, 0x05de9, 0x07a35,
963    0x0baaa, 0x0b9eb, 0x0fb95, 0x0b9b8, 0x17381, 0x1f262, 0x188cd, 0x17088,
964    0x172fa, 0x0f7a2, 0x1fad3, 0x0bac0, 0x3765c, 0x1fedf, 0x1f225, 0x1fad4,
965    0x2c7da, 0x5ce9d, 0x3e7f8, 0x1e203, 0x188d7, 0x00054, 0x002c0, 0x007a1,
966    0x00f78, 0x01b36, 0x01fa3, 0x0313a, 0x03436, 0x0343a, 0x07d1d, 0x07bd8,
967    0x05cdf, 0x0b846, 0x0b189, 0x0d9b8, 0x0fff8, 0x0d9be, 0x0c58a, 0x05dea,
968    0x0d1d3, 0x160e4, 0x1f26b, 0x188da, 0x1e202, 0x2c7d2, 0x163fe, 0x31193,
969    0x17782, 0x376c2, 0x2c7d1, 0x3fdb0, 0x3765d, 0x2c7d0, 0x1fad0, 0x1e201,
970    0x188dd, 0x2c7e2, 0x37657, 0x37655, 0x376c4, 0x376c0, 0x176ea, 0x0006f,
971    0x003cf, 0x00dd5, 0x01f23, 0x02c61, 0x02ed0, 0x05d54, 0x0552d, 0x07883,
972    0x0b1a8, 0x0b91c, 0x0babf, 0x0b902, 0x0f7aa, 0x0f7a5, 0x1a1e8, 0x1ffd6,
973    0x0babe, 0x1a1bf, 0x163f3, 0x1ffd8, 0x1fad7, 0x1f275, 0x1ffdc, 0x0007d,
974    0x005bc, 0x01549, 0x02a99, 0x03def, 0x06273, 0x079d6, 0x07d1b, 0x0aad3,
975    0x0d0fc, 0x2c7dd, 0x188d6, 0x0bac2, 0x2c7e1, 0x1bb76, 0x1a1bd, 0x31186,
976    0x0fd78, 0x1a1be, 0x31183, 0x3fdb6, 0x3f4f1, 0x37652, 0x1fad5, 0x3f4f9,
977    0x3e7ff, 0x5ce9c, 0x3765b, 0x31188, 0x17372, 0x000bd, 0x0078b, 0x01f21,
978    0x03c43, 0x03ded, 0x0aad6, 0x07ec1, 0x0f942, 0x05c86, 0x17089, 0x0babb,
979    0x1ffe8, 0x2c7de, 0x1f26e, 0x1fac4, 0x3f4f7, 0x37656, 0x1fa7d, 0x376c3,
980    0x3fdb3, 0x3118f, 0x1fac6, 0x000f8, 0x007ed, 0x01efd, 0x03e7a, 0x05c91,
981    0x0aad9, 0x0baec, 0x0dc32, 0x0f46e, 0x1e200, 0x176fa, 0x3765e, 0x3fdb7,
982    0x2c7d6, 0x3fdb9, 0x37654, 0x37658, 0x3118e, 0x1ffdb, 0x000f6, 0x00c43,
983    0x03106, 0x068ef, 0x0b84d, 0x0b188, 0x0bbcc, 0x1f264, 0x1bb69, 0x17386,
984    0x1fac0, 0x00171, 0x00f39, 0x03e41, 0x068ed, 0x0d9bc, 0x0f7a1, 0x1bb67,
985    0x1ffdd, 0x176f9, 0x001b9, 0x00f7d, 0x03f63, 0x0d0fd, 0x0b9ea, 0x188dc,
986    0x1fac3, 0x1a1f2, 0x31192, 0x1ffe4, 0x001f6, 0x01754, 0x06865, 0x0f309,
987    0x160e5, 0x176f5, 0x3765f, 0x1facc, 0x001e9, 0x01a1a, 0x06201, 0x0f105,
988    0x176f0, 0x002df, 0x01756, 0x05d6d, 0x163fa, 0x176ed, 0x00342, 0x02e40,
989    0x0d0ff, 0x17082, 0x003cd, 0x02a98, 0x0fffc, 0x2c7dc, 0x1fa7f, 0x003fe,
990    0x03764, 0x0fffd, 0x176fc, 0x1fac5, 0x002f7, 0x02ed1, 0x0fb97, 0x0058a,
991    0x02edc, 0x0bbc8, 0x005d4, 0x0623d, 0x160e8, 0x0062e, 0x05830, 0x163f9,
992    0x006eb, 0x06205, 0x1f274, 0x007de, 0x062c9, 0x1f265, 0x005c9, 0x05cde,
993    0x1ffd3, 0x005d4, 0x07988, 0x007ce, 0x0b849, 0x00b1b, 0x05c89, 0x1fac7,
994    0x00b93, 0x05c83, 0x00b9e, 0x0f14f, 0x00c4a, 0x0b9c7, 0x00dd4, 0x0c470,
995    0x1f271, 0x00f38, 0x0fb96, 0x176eb, 0x00fa0, 0x163f7, 0x00bb2, 0x0b91b,
996    0x00bbe, 0x0f102, 0x00f44, 0x0f946, 0x1facd, 0x00f79, 0x0d9bd, 0x0154d,
997    0x0bbc6, 0x00fd2, 0x160e7, 0x0172b, 0x188cb, 0x0175e, 0x0fd76, 0x0175c,
998    0x1bb71, 0x0189f, 0x1a1ee, 0x01f24, 0x1a1f6, 0x01ba7, 0x0bbca, 0x01f7d,
999    0x0ffff, 0x01f2e, 0x1bb65, 0x01bb5, 0x172f9, 0x01fef, 0x1f26c, 0x01f3e,
1000    0x0fd77, 0x01762, 0x1bb6e, 0x01ef9, 0x172fc, 0x01fa0, 0x02ab7, 0x02e4a,
1001    0x1f267, 0x01fb3, 0x1ffda, 0x02e42, 0x03101, 0x17780, 0x0313d, 0x03475,
1002    0x17784, 0x03126, 0x1facf, 0x03c51, 0x17783, 0x03e40, 0x1ffe5, 0x03663,
1003    0x1ffe0, 0x03e8f, 0x1f26d, 0x0343c, 0x03cc1, 0x176fd, 0x03e45, 0x02ec0,
1004    0x03f61, 0x03dee, 0x03fd8, 0x0583e, 0x02e45, 0x03e59, 0x03d02, 0x05ce8,
1005    0x05568, 0x176fe, 0x02f69, 0x1fad8, 0x058c1, 0x05c83, 0x1ffe6, 0x06271,
1006    0x06e1c, 0x062c7, 0x068e1, 0x0552f, 0x06864, 0x06866, 0x06e99, 0x05cbc,
1007    0x07ca5, 0x078a1, 0x05c82, 0x07dcf, 0x0623b, 0x0623e, 0x068e8, 0x07a36,
1008    0x05d9c, 0x0b077, 0x07cf3, 0x07a34, 0x07ca4, 0x07d19, 0x079d2, 0x07d1c,
1009    0x07bd9, 0x0b84a, 0x0fb94, 0x0aad5, 0x0dc30, 0x07bf3, 0x0baee, 0x0b07a,
1010    0x0c472, 0x0b91e, 0x0d9ba, 0x05d9f, 0x0d0fe, 0x0b9c6, 0x05c87, 0x0f14e,
1011    0x0baed, 0x0b92e, 0x0f103, 0x0b9c4, 0x0fb91, 0x0d9bb, 0x0b1ab, 0x0c58d,
1012    0x0fffe, 0x0f93b, 0x0f941, 0x0baea, 0x0b91f, 0x0f5cc, 0x0d9bf, 0x0f943,
1013    0x0f104, 0x1f260, 0x0fb92, 0x0f93f, 0x0f3a6, 0x0bac7, 0x0f7ab, 0x0bac6,
1014    0x17383, 0x0fd6d, 0x0bae9, 0x0fd6e, 0x1e74f, 0x188ca, 0x1f227, 0x0fb93,
1015    0x0fb90, 0x0fff7, 0x17085, 0x17083, 0x160e1, 0x17084, 0x0f93e, 0x160e2,
1016    0x160c6, 0x1a1f1, 0x1bb6f, 0x17384, 0x0fd70, 0x1f263, 0x188d5, 0x173a6,
1017    0x0f5ce, 0x163f2, 0x0fd71, 0x1ffd2, 0x160c4, 0x1ffd4, 0x2c7d3, 0x1bb74,
1018];
1019pub const COEF3_HUFFBITS: [u8; 1072] = [
1020    9, 7, 2, 3, 4, 4, 5, 5,
1021    6, 6, 6, 6, 7, 7, 7, 7,
1022    7, 8, 8, 8, 8, 8, 8, 8,
1023    9, 9, 9, 9, 9, 9, 9, 9,
1024    9, 10, 10, 10, 10, 10, 10, 10,
1025    10, 10, 10, 11, 11, 11, 11, 11,
1026    11, 11, 11, 11, 11, 11, 11, 11,
1027    11, 12, 11, 12, 12, 12, 12, 12,
1028    12, 12, 12, 12, 12, 12, 12, 12,
1029    12, 12, 12, 12, 12, 13, 13, 13,
1030    13, 13, 13, 13, 13, 13, 13, 13,
1031    13, 13, 13, 13, 13, 13, 13, 13,
1032    13, 14, 13, 14, 14, 13, 14, 13,
1033    13, 14, 14, 14, 14, 14, 14, 14,
1034    14, 14, 14, 14, 14, 14, 14, 14,
1035    14, 14, 14, 14, 14, 14, 14, 15,
1036    14, 14, 15, 14, 14, 15, 15, 15,
1037    15, 15, 15, 15, 15, 15, 14, 15,
1038    15, 15, 15, 15, 15, 15, 15, 15,
1039    15, 14, 15, 15, 15, 15, 15, 15,
1040    15, 15, 15, 16, 15, 16, 16, 16,
1041    16, 15, 15, 16, 16, 16, 16, 16,
1042    15, 16, 16, 16, 15, 16, 15, 15,
1043    16, 15, 16, 16, 16, 16, 16, 16,
1044    16, 16, 16, 16, 16, 16, 16, 16,
1045    16, 17, 16, 17, 16, 17, 17, 16,
1046    17, 16, 17, 16, 16, 17, 17, 17,
1047    16, 17, 16, 16, 17, 16, 17, 16,
1048    17, 17, 16, 16, 17, 17, 17, 17,
1049    17, 17, 17, 17, 16, 17, 17, 16,
1050    17, 17, 17, 17, 17, 17, 17, 17,
1051    16, 18, 17, 17, 17, 17, 17, 17,
1052    17, 17, 17, 17, 17, 17, 16, 17,
1053    17, 17, 17, 17, 17, 17, 17, 17,
1054    17, 17, 17, 17, 17, 17, 17, 18,
1055    17, 17, 17, 17, 18, 17, 17, 18,
1056    19, 17, 17, 17, 18, 17, 17, 17,
1057    18, 18, 18, 17, 17, 17, 18, 17,
1058    17, 17, 17, 17, 17, 17, 17, 17,
1059    18, 18, 18, 18, 18, 18, 18, 18,
1060    18, 18, 17, 18, 18, 18, 18, 17,
1061    18, 18, 18, 17, 17, 18, 18, 18,
1062    18, 19, 18, 18, 19, 19, 20, 18,
1063    19, 18, 19, 19, 18, 19, 20, 18,
1064    19, 4, 6, 7, 8, 9, 9, 9,
1065    10, 10, 10, 11, 11, 11, 11, 12,
1066    12, 12, 12, 12, 12, 13, 13, 13,
1067    13, 13, 13, 13, 13, 14, 14, 14,
1068    14, 14, 14, 14, 14, 14, 14, 14,
1069    14, 14, 14, 15, 15, 15, 15, 15,
1070    15, 15, 15, 15, 16, 15, 15, 15,
1071    15, 16, 16, 15, 16, 16, 15, 16,
1072    17, 17, 17, 17, 17, 16, 16, 16,
1073    16, 16, 17, 17, 17, 16, 18, 17,
1074    17, 17, 18, 17, 17, 18, 17, 17,
1075    17, 17, 17, 18, 17, 18, 18, 18,
1076    17, 17, 18, 19, 18, 18, 17, 17,
1077    18, 18, 18, 18, 19, 17, 17, 18,
1078    20, 19, 19, 18, 19, 18, 19, 19,
1079    19, 19, 17, 5, 7, 9, 10, 10,
1080    11, 11, 12, 12, 12, 13, 13, 13,
1081    13, 13, 14, 14, 14, 14, 14, 15,
1082    14, 15, 15, 15, 15, 15, 16, 16,
1083    16, 16, 16, 16, 16, 16, 16, 16,
1084    16, 16, 15, 16, 16, 17, 17, 17,
1085    16, 17, 17, 17, 17, 17, 17, 17,
1086    17, 17, 17, 17, 17, 17, 17, 16,
1087    16, 19, 18, 18, 19, 17, 19, 20,
1088    17, 18, 18, 18, 18, 18, 18, 6,
1089    8, 10, 11, 12, 12, 12, 13, 13,
1090    13, 14, 14, 14, 14, 15, 15, 15,
1091    15, 15, 15, 16, 16, 16, 16, 16,
1092    16, 17, 17, 17, 16, 16, 17, 17,
1093    17, 17, 17, 17, 17, 16, 16, 16,
1094    17, 18, 18, 18, 17, 19, 19, 18,
1095    18, 17, 18, 19, 18, 17, 18, 18,
1096    19, 18, 17, 17, 6, 9, 11, 12,
1097    13, 13, 13, 14, 14, 14, 15, 15,
1098    15, 15, 15, 16, 16, 16, 16, 16,
1099    16, 17, 16, 17, 17, 17, 17, 17,
1100    17, 17, 18, 17, 18, 17, 17, 18,
1101    18, 19, 19, 17, 17, 7, 10, 12,
1102    13, 13, 14, 14, 14, 14, 15, 16,
1103    16, 16, 16, 16, 16, 16, 16, 16,
1104    16, 17, 17, 17, 17, 18, 17, 18,
1105    18, 18, 18, 18, 18, 18, 18, 17,
1106    17, 18, 18, 18, 18, 18, 18, 7,
1107    10, 12, 13, 14, 15, 15, 15, 15,
1108    16, 16, 17, 17, 17, 17, 17, 17,
1109    17, 17, 17, 17, 18, 17, 17, 8,
1110    11, 13, 14, 15, 15, 15, 15, 16,
1111    16, 18, 17, 17, 18, 17, 17, 18,
1112    17, 17, 18, 18, 19, 18, 18, 19,
1113    19, 19, 18, 18, 18, 8, 11, 13,
1114    14, 15, 16, 16, 16, 16, 17, 17,
1115    17, 18, 17, 18, 19, 18, 18, 18,
1116    18, 18, 18, 8, 12, 14, 15, 15,
1117    16, 16, 16, 17, 17, 18, 18, 18,
1118    18, 18, 18, 18, 18, 17, 9, 12,
1119    14, 15, 16, 16, 17, 17, 17, 17,
1120    18, 9, 12, 14, 15, 16, 17, 17,
1121    17, 18, 9, 13, 15, 16, 17, 17,
1122    18, 17, 18, 17, 9, 13, 15, 16,
1123    17, 18, 18, 18, 10, 13, 15, 16,
1124    18, 10, 14, 16, 17, 18, 10, 14,
1125    16, 17, 10, 14, 16, 18, 18, 10,
1126    14, 16, 18, 18, 11, 15, 16, 11,
1127    15, 17, 11, 15, 17, 11, 15, 17,
1128    11, 15, 17, 11, 15, 17, 12, 16,
1129    17, 12, 15, 12, 16, 12, 16, 18,
1130    12, 16, 12, 16, 12, 16, 12, 16,
1131    17, 12, 16, 18, 12, 17, 13, 16,
1132    13, 16, 13, 16, 18, 13, 16, 13,
1133    17, 13, 17, 13, 17, 13, 17, 13,
1134    17, 13, 17, 13, 17, 13, 17, 13,
1135    16, 13, 17, 13, 17, 13, 17, 14,
1136    17, 14, 17, 14, 17, 14, 14, 14,
1137    17, 14, 17, 14, 14, 18, 14, 14,
1138    18, 14, 18, 14, 18, 14, 17, 14,
1139    17, 14, 17, 14, 14, 18, 14, 15,
1140    15, 15, 14, 15, 15, 14, 15, 15,
1141    15, 18, 15, 18, 15, 15, 17, 15,
1142    15, 15, 15, 15, 15, 15, 15, 15,
1143    15, 15, 16, 15, 15, 15, 15, 16,
1144    16, 16, 16, 16, 15, 15, 15, 15,
1145    16, 16, 16, 16, 16, 16, 16, 16,
1146    16, 16, 16, 16, 16, 16, 16, 16,
1147    16, 16, 16, 16, 16, 16, 16, 16,
1148    16, 16, 16, 16, 16, 17, 16, 16,
1149    16, 17, 16, 16, 16, 17, 17, 17,
1150    17, 17, 16, 17, 17, 17, 17, 16,
1151    16, 16, 17, 17, 17, 17, 16, 17,
1152    17, 17, 17, 17, 17, 17, 17, 17,
1153    17, 17, 17, 17, 17, 17, 18, 17,
1154];
1155pub const LEVELS3: [u16; 180] = [
1156    351, 122, 76, 61, 41, 42, 24, 30,
1157    22, 19, 11, 9, 10, 8, 5, 5,
1158    4, 5, 5, 3, 3, 3, 3, 3,
1159    3, 3, 2, 2, 3, 2, 2, 2,
1160    3, 3, 2, 2, 2, 3, 2, 2,
1161    2, 2, 2, 2, 2, 2, 2, 2,
1162    2, 2, 2, 2, 2, 2, 1, 1,
1163    2, 2, 1, 2, 1, 2, 2, 2,
1164    2, 2, 2, 1, 2, 1, 1, 1,
1165    1, 1, 1, 1, 1, 1, 1, 2,
1166    2, 1, 2, 1, 1, 1, 1, 1,
1167    1, 1, 1, 1, 1, 1, 1, 1,
1168    1, 1, 1, 1, 1, 1, 1, 1,
1169    1, 1, 1, 1, 1, 1, 1, 1,
1170    1, 1, 1, 1, 1, 1, 1, 1,
1171    1, 1, 1, 1, 1, 1, 1, 1,
1172    1, 1, 1, 1, 1, 1, 1, 1,
1173    1, 1, 1, 1, 1, 1, 1, 1,
1174    1, 1, 1, 1, 1, 1, 1, 1,
1175    1, 1, 1, 1, 1, 1, 1, 1,
1176    1, 1, 1, 1, 1, 1, 1, 1,
1177    1, 1, 1, 1, 1, 1, 1, 1,
1178    1, 1, 1, 1,
1179];
1180pub const COEF4_HUFFCODES: [u32; 476] = [
1181    0x00f01, 0x0001e, 0x00000, 0x00004, 0x00006, 0x0000d, 0x0000a, 0x00017,
1182    0x0001d, 0x00017, 0x0002c, 0x00031, 0x00039, 0x0003e, 0x00039, 0x0005a,
1183    0x00066, 0x00070, 0x0007b, 0x00070, 0x00077, 0x000af, 0x000c9, 0x000f2,
1184    0x000f4, 0x000b2, 0x000e3, 0x0015b, 0x0015d, 0x00181, 0x0019d, 0x001e3,
1185    0x001c5, 0x002b5, 0x002db, 0x00338, 0x003c3, 0x003cc, 0x003f0, 0x002cd,
1186    0x003fa, 0x003a1, 0x005b4, 0x00657, 0x007ab, 0x0074d, 0x0074c, 0x00ac1,
1187    0x00ac5, 0x0076b, 0x00ca8, 0x00f04, 0x00f00, 0x00fe3, 0x00f3c, 0x00f10,
1188    0x00f39, 0x00fe6, 0x00e26, 0x00e90, 0x016c5, 0x01827, 0x01954, 0x015c5,
1189    0x01958, 0x01f8a, 0x01c4a, 0x02b0f, 0x02b41, 0x02b0e, 0x033c6, 0x03050,
1190    0x01c4f, 0x02d88, 0x0305c, 0x03c18, 0x02b4f, 0x02cc2, 0x03a47, 0x05680,
1191    0x0569d, 0x06442, 0x06443, 0x06446, 0x0656e, 0x06444, 0x07120, 0x0748a,
1192    0x0c1ba, 0x07e22, 0x07aa6, 0x07f25, 0x07aa7, 0x07e20, 0x0c11b, 0x0c118,
1193    0x07aa5, 0x0ad0a, 0x0f389, 0x19ebb, 0x0caad, 0x0fe42, 0x0fe40, 0x16c34,
1194    0x2b4e5, 0x33d65, 0x16c30, 0x1e7ae, 0x1e25c, 0x18370, 0x1e703, 0x19eba,
1195    0x16c37, 0x0e234, 0x16c6e, 0x00004, 0x0002a, 0x00061, 0x00075, 0x000cb,
1196    0x000ff, 0x00190, 0x001eb, 0x001d1, 0x002b9, 0x00307, 0x00339, 0x0033f,
1197    0x003fb, 0x003b4, 0x0060c, 0x00679, 0x00645, 0x0067d, 0x0078a, 0x007e3,
1198    0x00749, 0x00ac4, 0x00ad2, 0x00ae3, 0x00c10, 0x00c16, 0x00ad1, 0x00cf4,
1199    0x00fe2, 0x01586, 0x00e9d, 0x019f1, 0x01664, 0x01e26, 0x01d38, 0x02b4d,
1200    0x033c5, 0x01fc2, 0x01fc3, 0x01d28, 0x03c1d, 0x0598e, 0x0f094, 0x07aa4,
1201    0x0ad38, 0x0ac0c, 0x0c11a, 0x079ea, 0x0c881, 0x0fe44, 0x0b635, 0x0ac0d,
1202    0x0b61e, 0x05987, 0x07121, 0x0f382, 0x0f387, 0x0e237, 0x0fe47, 0x0f383,
1203    0x0f091, 0x0f385, 0x0e233, 0x182ee, 0x19eb8, 0x1663e, 0x0f093, 0x00014,
1204    0x00058, 0x00159, 0x00167, 0x00300, 0x003d4, 0x005b5, 0x0079d, 0x0076a,
1205    0x00b67, 0x00b60, 0x00f05, 0x00cf0, 0x00f17, 0x00e95, 0x01822, 0x01913,
1206    0x016c2, 0x0182f, 0x01959, 0x01fcb, 0x01e27, 0x01c40, 0x033c7, 0x01e7b,
1207    0x01c49, 0x02d89, 0x01e23, 0x01660, 0x03f12, 0x02cc6, 0x033e1, 0x05b34,
1208    0x0609a, 0x06569, 0x07488, 0x07e21, 0x0cf5f, 0x0712c, 0x0389d, 0x067cf,
1209    0x07f28, 0x1663f, 0x33d67, 0x1663d, 0x1e25d, 0x3c1ab, 0x15c44, 0x16c36,
1210    0x0001f, 0x000ec, 0x00323, 0x005b2, 0x0079f, 0x00ac2, 0x00f16, 0x00e9e,
1211    0x01956, 0x01e0f, 0x019ea, 0x01666, 0x02b89, 0x02b02, 0x02d8c, 0x03c1b,
1212    0x03c19, 0x032b5, 0x03f9c, 0x02ccf, 0x03897, 0x05b35, 0x0ad02, 0x07f29,
1213    0x06441, 0x03884, 0x07888, 0x0784e, 0x06568, 0x0c1bb, 0x05986, 0x067cc,
1214    0x0fe49, 0x0fe48, 0x0c1bc, 0x0fe41, 0x18371, 0x1663c, 0x0e231, 0x0711e,
1215    0x0ad09, 0x0f092, 0x0002d, 0x001db, 0x00781, 0x00c1a, 0x00f55, 0x01580,
1216    0x01ea8, 0x02d9b, 0x032af, 0x03f16, 0x03c1c, 0x07834, 0x03c45, 0x0389c,
1217    0x067ce, 0x06445, 0x0c1b9, 0x07889, 0x07f3a, 0x0784f, 0x07f2b, 0x0ad0b,
1218    0x0f090, 0x0c11d, 0x0e94e, 0x0711f, 0x0e9f1, 0x0f38e, 0x079e9, 0x0ad03,
1219    0x0f09b, 0x0caae, 0x0fe46, 0x2b4e6, 0x0e9f0, 0x19eb6, 0x67ac1, 0x67ac0,
1220    0x33d66, 0x0f388, 0x00071, 0x003a0, 0x00ca9, 0x01829, 0x01d39, 0x02b43,
1221    0x02cc4, 0x06554, 0x0f09a, 0x0b61f, 0x067cd, 0x0711c, 0x0b636, 0x07f2a,
1222    0x0b634, 0x0c11f, 0x0cf5e, 0x0b61d, 0x0f06b, 0x0caab, 0x0c1be, 0x0e94c,
1223    0x0f099, 0x182ed, 0x0e94f, 0x0c119, 0x0e232, 0x2b4e4, 0x0f38a, 0x19eb4,
1224    0x1e25f, 0x0e94d, 0x000b7, 0x00785, 0x016cc, 0x03051, 0x033c4, 0x0656f,
1225    0x03891, 0x0711d, 0x0caaf, 0x0f097, 0x07489, 0x0f098, 0x0c880, 0x0caaa,
1226    0x0f386, 0x19eb7, 0x16c6f, 0x0f384, 0x182e8, 0x182e9, 0x0e230, 0x1e700,
1227    0x33d62, 0x33d63, 0x33d64, 0x16c33, 0x0e216, 0x000fd, 0x00c15, 0x01665,
1228    0x03c4a, 0x07f3b, 0x07896, 0x0c11c, 0x0e215, 0x16c32, 0x0f38b, 0x0f38d,
1229    0x182ea, 0x1e701, 0x712df, 0x15c46, 0x00194, 0x00fe0, 0x03f13, 0x0748b,
1230    0x0f096, 0x0cf80, 0x1e25e, 0xe25bd, 0x33d61, 0x16c31, 0x001f9, 0x01912,
1231    0x05710, 0x0f3d0, 0x0c1bf, 0x00301, 0x01e24, 0x0ad08, 0x003cd, 0x01c41,
1232    0x0c1bd, 0x00563, 0x03a52, 0x0f3d1, 0x00570, 0x02cce, 0x0e217, 0x0067b,
1233    0x0655d, 0x0074b, 0x06447, 0x00c12, 0x074fb, 0x00f08, 0x0b61c, 0x00e22,
1234    0x0fe43, 0x016c7, 0x01836, 0x019f2, 0x01c43, 0x01d3f, 0x01fcf, 0x02b4c,
1235    0x0304c, 0x032b6, 0x03a46, 0x05607, 0x03f17, 0x02cc5, 0x0609b, 0x0655c,
1236    0x07e23, 0x067c1, 0x07f26, 0x07f27, 0x0f095, 0x0e9f3, 0x0cf81, 0x0c11e,
1237    0x0caac, 0x0f38f, 0x0e9f2, 0x074fa, 0x0e236, 0x0fe45, 0x1c428, 0x0e235,
1238    0x182ef, 0x19eb5, 0x0f3d6, 0x182ec, 0x16c35, 0x0f38c, 0x2b4e7, 0x15c47,
1239    0xe25bc, 0x1e702, 0x1c4b6, 0x0e25a, 0x3c1aa, 0x15c45, 0x1c429, 0x19eb9,
1240    0x1e7af, 0x182eb, 0x1e0d4, 0x3896e,
1241];
1242pub const COEF4_HUFFBITS: [u8; 476] = [
1243    12, 6, 2, 3, 4, 4, 5, 5,
1244    5, 6, 6, 6, 6, 6, 7, 7,
1245    7, 7, 7, 8, 8, 8, 8, 8,
1246    8, 9, 9, 9, 9, 9, 9, 9,
1247    10, 10, 10, 10, 10, 10, 10, 11,
1248    10, 11, 11, 11, 11, 12, 12, 12,
1249    12, 12, 12, 12, 12, 12, 12, 12,
1250    12, 12, 13, 13, 13, 13, 13, 13,
1251    13, 13, 14, 14, 14, 14, 14, 14,
1252    14, 14, 14, 14, 14, 15, 15, 15,
1253    15, 15, 15, 15, 15, 15, 16, 16,
1254    16, 15, 15, 15, 15, 15, 16, 16,
1255    15, 16, 16, 17, 16, 16, 16, 17,
1256    18, 18, 17, 17, 17, 17, 17, 17,
1257    17, 17, 17, 4, 6, 7, 8, 8,
1258    8, 9, 9, 10, 10, 10, 10, 10,
1259    10, 11, 11, 11, 11, 11, 11, 11,
1260    12, 12, 12, 12, 12, 12, 12, 12,
1261    12, 13, 13, 13, 14, 13, 14, 14,
1262    14, 13, 13, 14, 14, 16, 16, 15,
1263    16, 16, 16, 15, 16, 16, 16, 16,
1264    16, 16, 16, 16, 16, 17, 16, 16,
1265    16, 16, 17, 17, 17, 18, 16, 5,
1266    8, 9, 10, 10, 10, 11, 11, 12,
1267    12, 12, 12, 12, 12, 13, 13, 13,
1268    13, 13, 13, 13, 13, 14, 14, 13,
1269    14, 14, 13, 14, 14, 15, 14, 15,
1270    15, 15, 16, 15, 16, 16, 15, 15,
1271    15, 18, 18, 18, 17, 18, 17, 17,
1272    6, 9, 10, 11, 11, 12, 12, 13,
1273    13, 13, 13, 14, 14, 14, 14, 14,
1274    14, 14, 14, 15, 15, 15, 16, 15,
1275    15, 15, 15, 15, 15, 16, 16, 15,
1276    16, 16, 16, 16, 17, 18, 17, 16,
1277    16, 16, 7, 10, 11, 12, 12, 13,
1278    13, 14, 14, 14, 14, 15, 14, 15,
1279    15, 15, 16, 15, 15, 15, 15, 16,
1280    16, 16, 17, 16, 17, 16, 15, 16,
1281    16, 16, 16, 18, 17, 17, 19, 19,
1282    18, 16, 7, 11, 12, 13, 14, 14,
1283    15, 15, 16, 16, 15, 16, 16, 15,
1284    16, 16, 16, 16, 16, 16, 16, 17,
1285    16, 17, 17, 16, 17, 18, 16, 17,
1286    17, 17, 8, 11, 13, 14, 14, 15,
1287    15, 16, 16, 16, 16, 16, 16, 16,
1288    16, 17, 17, 16, 17, 17, 17, 17,
1289    18, 18, 18, 17, 17, 8, 12, 14,
1290    14, 15, 15, 16, 17, 17, 16, 16,
1291    17, 17, 20, 17, 9, 12, 14, 16,
1292    16, 16, 17, 21, 18, 17, 9, 13,
1293    15, 16, 16, 10, 13, 16, 10, 14,
1294    16, 11, 15, 16, 11, 15, 17, 11,
1295    15, 12, 15, 12, 16, 12, 16, 13,
1296    16, 13, 13, 13, 14, 14, 13, 14,
1297    14, 14, 15, 15, 14, 15, 15, 15,
1298    15, 15, 15, 15, 16, 17, 16, 16,
1299    16, 16, 17, 16, 17, 16, 18, 17,
1300    17, 17, 16, 17, 17, 16, 18, 17,
1301    21, 17, 18, 17, 18, 17, 18, 17,
1302    17, 17, 17, 19,
1303];
1304pub const LEVELS4: [u16; 70] = [
1305    113, 68, 49, 42, 40, 32, 27, 15,
1306    10, 5, 3, 3, 3, 3, 2, 2,
1307    2, 2, 2, 1, 1, 1, 1, 1,
1308    1, 1, 1, 1, 1, 1, 1, 1,
1309    1, 1, 1, 1, 1, 1, 1, 1,
1310    1, 1, 1, 1, 1, 1, 1, 1,
1311    1, 1, 1, 1, 1, 1, 1, 1,
1312    1, 1, 1, 1, 1, 1, 1, 1,
1313    1, 1, 1, 1, 1, 1,
1314];
1315pub const COEF5_HUFFCODES: [u32; 435] = [
1316    0x00347, 0x0000b, 0x00001, 0x00001, 0x0000c, 0x00004, 0x00010, 0x00015,
1317    0x0001f, 0x0000b, 0x00023, 0x00026, 0x00029, 0x00035, 0x00037, 0x00001,
1318    0x00015, 0x0001a, 0x0001d, 0x0001c, 0x0001e, 0x0004e, 0x00049, 0x00051,
1319    0x00078, 0x00004, 0x00000, 0x00008, 0x0000d, 0x0007b, 0x00005, 0x00032,
1320    0x00095, 0x00091, 0x00096, 0x000a1, 0x000d9, 0x00003, 0x00019, 0x00061,
1321    0x00066, 0x00060, 0x00017, 0x0000e, 0x00063, 0x001a0, 0x001b7, 0x001e6,
1322    0x001e7, 0x001b6, 0x00018, 0x001e8, 0x00038, 0x00031, 0x00005, 0x0003d,
1323    0x00027, 0x001ea, 0x0001a, 0x000c5, 0x000f9, 0x000ff, 0x000db, 0x00250,
1324    0x000fc, 0x0025c, 0x00008, 0x00075, 0x003d7, 0x003d3, 0x001b0, 0x0007c,
1325    0x003ca, 0x00036, 0x00189, 0x004a6, 0x004a2, 0x004fb, 0x000c0, 0x0007f,
1326    0x0009a, 0x00311, 0x0006e, 0x0009b, 0x0068c, 0x006c0, 0x00484, 0x00012,
1327    0x000c3, 0x0094f, 0x00979, 0x009f9, 0x00d09, 0x00da6, 0x00da8, 0x00901,
1328    0x000c1, 0x00373, 0x00d08, 0x009fa, 0x00d8b, 0x00d85, 0x00d86, 0x000df,
1329    0x006e2, 0x000ce, 0x00f24, 0x009fe, 0x001f7, 0x007c1, 0x000cf, 0x009fc,
1330    0x009ff, 0x00d89, 0x00da9, 0x009fd, 0x001f8, 0x01a36, 0x0128c, 0x0129d,
1331    0x01a37, 0x00196, 0x003ea, 0x00f8b, 0x00d93, 0x01e45, 0x01e58, 0x01e4b,
1332    0x01e59, 0x013f1, 0x00309, 0x00265, 0x00308, 0x0243a, 0x027e1, 0x00f89,
1333    0x00324, 0x03cbc, 0x03c86, 0x03695, 0x0243c, 0x0243b, 0x0243e, 0x01e4a,
1334    0x003a5, 0x03468, 0x03428, 0x03c84, 0x027e0, 0x025e2, 0x01880, 0x00197,
1335    0x00325, 0x03cb7, 0x0791e, 0x007ec, 0x06c75, 0x004c8, 0x04bc7, 0x004c6,
1336    0x00983, 0x0481e, 0x01b53, 0x0251b, 0x01b58, 0x00984, 0x04fa8, 0x03cbb,
1337    0x00f8a, 0x00322, 0x0346a, 0x0243d, 0x00326, 0x03469, 0x0481f, 0x0481d,
1338    0x00746, 0x09032, 0x01b50, 0x01d13, 0x0d8e4, 0x0481b, 0x06c74, 0x0796b,
1339    0x07969, 0x00985, 0x0d8e3, 0x00986, 0x00fa2, 0x01301, 0x06c7c, 0x00987,
1340    0x03cb8, 0x0f4af, 0x00e88, 0x1b1c0, 0x00fce, 0x033eb, 0x03f6a, 0x03f69,
1341    0x00fcf, 0x0791f, 0x004c9, 0x04871, 0x00fcd, 0x00982, 0x00fcc, 0x00fa3,
1342    0x01d12, 0x0796c, 0x01b47, 0x00321, 0x0796a, 0x0d8e2, 0x04872, 0x04873,
1343    0x0000e, 0x00014, 0x0000a, 0x000a0, 0x00012, 0x0007d, 0x001a2, 0x0003b,
1344    0x0025f, 0x000dd, 0x0027c, 0x00343, 0x00368, 0x0036b, 0x0003e, 0x001fa,
1345    0x00485, 0x001b3, 0x0007f, 0x001b1, 0x0019e, 0x004ba, 0x007ad, 0x00339,
1346    0x00066, 0x007a4, 0x00793, 0x006c6, 0x0007e, 0x000f1, 0x00372, 0x009fb,
1347    0x00d83, 0x00d8a, 0x00947, 0x009f4, 0x001d0, 0x01b09, 0x01b4b, 0x007ec,
1348    0x003e1, 0x000ca, 0x003ec, 0x02539, 0x04fa9, 0x01b57, 0x03429, 0x03d2a,
1349    0x00d97, 0x003a7, 0x00dc0, 0x00d96, 0x00dc1, 0x007eb, 0x03cba, 0x00c43,
1350    0x00c41, 0x01b52, 0x007ef, 0x00323, 0x03cb9, 0x03c83, 0x007d0, 0x007ed,
1351    0x06c7f, 0x09033, 0x03f6c, 0x36383, 0x1e95d, 0x06c78, 0x00747, 0x01b51,
1352    0x00022, 0x00016, 0x00039, 0x00252, 0x00079, 0x00486, 0x00338, 0x00369,
1353    0x00d88, 0x00026, 0x00d87, 0x00f4b, 0x00d82, 0x00027, 0x001e1, 0x01a15,
1354    0x007c7, 0x012f0, 0x001e0, 0x006d0, 0x01a16, 0x01e44, 0x01e5f, 0x03690,
1355    0x00d90, 0x00c42, 0x00daf, 0x00d92, 0x00f80, 0x00cfb, 0x0342f, 0x0487f,
1356    0x01b46, 0x07968, 0x00d95, 0x00d91, 0x01b55, 0x03f68, 0x04bc6, 0x03cbd,
1357    0x00f81, 0x00320, 0x00069, 0x000fe, 0x006d5, 0x0033f, 0x000de, 0x007c6,
1358    0x01e40, 0x00d94, 0x00f88, 0x03c8e, 0x03694, 0x00dae, 0x00dad, 0x00267,
1359    0x003a6, 0x00327, 0x0487e, 0x007ee, 0x00749, 0x004c7, 0x03692, 0x01b56,
1360    0x00fd1, 0x07a56, 0x06c77, 0x09031, 0x00748, 0x06c7a, 0x0796d, 0x033ea,
1361    0x06c76, 0x00fd0, 0x36382, 0x1e417, 0x00745, 0x04faf, 0x0d8e1, 0x03f6b,
1362    0x1e95c, 0x04fad, 0x0009e, 0x004bd, 0x0067c, 0x01b08, 0x003eb, 0x01b45,
1363    0x03691, 0x0d8e5, 0x07904, 0x00981, 0x007ea, 0x019f4, 0x06c7d, 0x04fab,
1364    0x04fac, 0x06c7e, 0x01300, 0x06c7b, 0x0006f, 0x003f7, 0x03c85, 0x004c4,
1365    0x0001e, 0x006e1, 0x03693, 0x01b44, 0x00241, 0x01e46, 0x0019d, 0x00266,
1366    0x004bb, 0x02538, 0x007ac, 0x01b54, 0x00902, 0x04870, 0x00da7, 0x00900,
1367    0x00185, 0x06c79, 0x006e3, 0x003e9, 0x01e94, 0x003ed, 0x003f2, 0x0342e,
1368    0x0346b, 0x0251a, 0x004c5, 0x01881, 0x0481c, 0x01b59, 0x03c87, 0x04fae,
1369    0x007e9, 0x03f6d, 0x0f20a, 0x09030, 0x04faa, 0x0d8e6, 0x03f6f, 0x0481a,
1370    0x03f6e, 0x1e416, 0x0d8e7,
1371];
1372pub const COEF5_HUFFBITS: [u8; 435] = [
1373    10, 4, 2, 4, 4, 5, 5, 5,
1374    5, 6, 6, 6, 6, 6, 6, 7,
1375    7, 7, 7, 7, 7, 7, 7, 7,
1376    7, 8, 8, 8, 8, 7, 8, 8,
1377    8, 8, 8, 8, 8, 9, 9, 9,
1378    9, 9, 9, 9, 9, 9, 9, 9,
1379    9, 9, 10, 9, 10, 10, 10, 10,
1380    10, 9, 10, 10, 10, 10, 10, 10,
1381    10, 10, 11, 11, 10, 10, 11, 11,
1382    10, 11, 11, 11, 11, 11, 12, 12,
1383    12, 12, 12, 12, 11, 11, 11, 12,
1384    12, 12, 12, 12, 12, 12, 12, 12,
1385    12, 12, 12, 12, 12, 12, 12, 13,
1386    13, 13, 12, 12, 13, 13, 13, 12,
1387    12, 12, 12, 12, 13, 13, 13, 13,
1388    13, 14, 14, 14, 14, 13, 13, 13,
1389    13, 13, 14, 14, 14, 14, 14, 14,
1390    15, 14, 14, 14, 14, 14, 14, 13,
1391    14, 14, 14, 14, 14, 14, 15, 14,
1392    15, 14, 15, 15, 15, 15, 15, 15,
1393    16, 15, 15, 14, 15, 16, 15, 14,
1394    14, 15, 14, 14, 15, 14, 15, 15,
1395    15, 16, 15, 17, 16, 15, 15, 15,
1396    15, 16, 16, 16, 16, 17, 15, 16,
1397    14, 16, 16, 17, 16, 16, 16, 16,
1398    16, 15, 15, 15, 16, 16, 16, 16,
1399    17, 15, 15, 15, 15, 16, 15, 15,
1400    4, 7, 8, 8, 9, 9, 9, 10,
1401    10, 10, 10, 10, 10, 10, 11, 11,
1402    11, 11, 11, 11, 11, 11, 11, 12,
1403    12, 11, 11, 11, 12, 12, 12, 12,
1404    12, 12, 12, 12, 13, 13, 13, 13,
1405    12, 13, 14, 14, 15, 15, 14, 14,
1406    14, 14, 14, 14, 14, 15, 14, 14,
1407    14, 15, 15, 15, 14, 14, 15, 15,
1408    15, 16, 16, 18, 17, 15, 15, 15,
1409    6, 9, 10, 10, 11, 11, 12, 12,
1410    12, 13, 12, 12, 12, 13, 13, 13,
1411    13, 13, 13, 13, 13, 13, 13, 14,
1412    14, 14, 14, 14, 14, 14, 14, 15,
1413    15, 15, 14, 14, 15, 16, 15, 14,
1414    14, 15, 7, 10, 11, 12, 13, 13,
1415    13, 14, 14, 14, 14, 14, 14, 14,
1416    14, 15, 15, 15, 15, 15, 14, 15,
1417    16, 15, 15, 16, 15, 15, 15, 16,
1418    15, 16, 18, 17, 15, 15, 16, 16,
1419    17, 15, 8, 11, 13, 13, 14, 15,
1420    14, 16, 15, 16, 15, 15, 15, 15,
1421    15, 15, 17, 15, 9, 12, 14, 15,
1422    10, 13, 14, 15, 10, 13, 11, 14,
1423    11, 14, 11, 15, 12, 15, 12, 12,
1424    13, 15, 13, 14, 13, 14, 14, 14,
1425    14, 14, 15, 15, 15, 15, 14, 15,
1426    15, 16, 16, 16, 15, 16, 16, 15,
1427    16, 17, 16,
1428];
1429pub const LEVELS5: [u16; 40] = [
1430    214, 72, 42, 40, 18, 4, 4, 2,
1431    2, 2, 2, 2, 1, 1, 2, 1,
1432    1, 1, 1, 1, 1, 1, 1, 1,
1433    1, 1, 1, 1, 1, 1, 1, 1,
1434    1, 1, 1, 1, 1, 1, 1, 1,
1435];
1436pub const COEF_VLCS: [CoefVlcTable; 6] = [
1437    CoefVlcTable {
1438        n: COEF0_HUFFBITS.len(),
1439        max_level: LEVELS0.len(),
1440        huffcodes: &COEF0_HUFFCODES,
1441        huffbits: &COEF0_HUFFBITS,
1442        levels: &LEVELS0,
1443    },
1444    CoefVlcTable {
1445        n: COEF1_HUFFBITS.len(),
1446        max_level: LEVELS1.len(),
1447        huffcodes: &COEF1_HUFFCODES,
1448        huffbits: &COEF1_HUFFBITS,
1449        levels: &LEVELS1,
1450    },
1451    CoefVlcTable {
1452        n: COEF2_HUFFBITS.len(),
1453        max_level: LEVELS2.len(),
1454        huffcodes: &COEF2_HUFFCODES,
1455        huffbits: &COEF2_HUFFBITS,
1456        levels: &LEVELS2,
1457    },
1458    CoefVlcTable {
1459        n: COEF3_HUFFBITS.len(),
1460        max_level: LEVELS3.len(),
1461        huffcodes: &COEF3_HUFFCODES,
1462        huffbits: &COEF3_HUFFBITS,
1463        levels: &LEVELS3,
1464    },
1465    CoefVlcTable {
1466        n: COEF4_HUFFBITS.len(),
1467        max_level: LEVELS4.len(),
1468        huffcodes: &COEF4_HUFFCODES,
1469        huffbits: &COEF4_HUFFBITS,
1470        levels: &LEVELS4,
1471    },
1472    CoefVlcTable {
1473        n: COEF5_HUFFBITS.len(),
1474        max_level: LEVELS5.len(),
1475        huffcodes: &COEF5_HUFFCODES,
1476        huffbits: &COEF5_HUFFBITS,
1477        levels: &LEVELS5,
1478    },
1479];
1480
1481#[cfg(test)]
1482mod tests {
1483    use super::*;
1484
1485    fn assert_exponent_family(rows: &[[u8; 25]; 3]) {
1486        for (row, expected_len) in rows.iter().zip([128usize, 256, 512]) {
1487            let count = row[0] as usize;
1488            assert!(count <= 24);
1489            assert_eq!(row[1..1 + count].iter().map(|&v| v as usize).sum::<usize>(), expected_len);
1490            assert!(row[1 + count..].iter().all(|&v| v == 0));
1491        }
1492    }
1493
1494    #[test]
1495    fn ffmpeg_exponent_band_rows_keep_c_initializer_boundaries() {
1496        assert_exponent_family(&EXPONENT_BAND_22050);
1497        assert_exponent_family(&EXPONENT_BAND_32000);
1498        assert_exponent_family(&EXPONENT_BAND_44100);
1499    }
1500
1501    #[test]
1502    fn ffmpeg_lsp_rows_keep_c_initializer_zero_fill() {
1503        assert_eq!(&FF_WMA_LSP_CODEBOOK[0][8..], &[0.0; 8]);
1504        assert_eq!(&FF_WMA_LSP_CODEBOOK[8][8..], &[0.0; 8]);
1505        assert_eq!(&FF_WMA_LSP_CODEBOOK[9][8..], &[0.0; 8]);
1506        assert_eq!(FF_WMA_LSP_CODEBOOK[1][0], 1.97260000f32);
1507        assert_eq!(FF_WMA_LSP_CODEBOOK[7][15], -1.66893638f32);
1508    }
1509}