StaticTree
namespace Org.BouncyCastle.Utilities.Zlib
{
internal sealed class StaticTree
{
private const int MAX_BITS = 15;
private const int BL_CODES = 19;
private const int D_CODES = 30;
private const int LITERALS = 256;
private const int LENGTH_CODES = 29;
private const int L_CODES = 286;
internal const int MAX_BL_BITS = 7;
internal static readonly short[] static_ltree = new short[576] {
12,
8,
140,
8,
76,
8,
204,
8,
44,
8,
172,
8,
108,
8,
236,
8,
28,
8,
156,
8,
92,
8,
220,
8,
60,
8,
188,
8,
124,
8,
252,
8,
2,
8,
130,
8,
66,
8,
194,
8,
34,
8,
162,
8,
98,
8,
226,
8,
18,
8,
146,
8,
82,
8,
210,
8,
50,
8,
178,
8,
114,
8,
242,
8,
10,
8,
138,
8,
74,
8,
202,
8,
42,
8,
170,
8,
106,
8,
234,
8,
26,
8,
154,
8,
90,
8,
218,
8,
58,
8,
186,
8,
122,
8,
250,
8,
6,
8,
134,
8,
70,
8,
198,
8,
38,
8,
166,
8,
102,
8,
230,
8,
22,
8,
150,
8,
86,
8,
214,
8,
54,
8,
182,
8,
118,
8,
246,
8,
14,
8,
142,
8,
78,
8,
206,
8,
46,
8,
174,
8,
110,
8,
238,
8,
30,
8,
158,
8,
94,
8,
222,
8,
62,
8,
190,
8,
126,
8,
254,
8,
1,
8,
129,
8,
65,
8,
193,
8,
33,
8,
161,
8,
97,
8,
225,
8,
17,
8,
145,
8,
81,
8,
209,
8,
49,
8,
177,
8,
113,
8,
241,
8,
9,
8,
137,
8,
73,
8,
201,
8,
41,
8,
169,
8,
105,
8,
233,
8,
25,
8,
153,
8,
89,
8,
217,
8,
57,
8,
185,
8,
121,
8,
249,
8,
5,
8,
133,
8,
69,
8,
197,
8,
37,
8,
165,
8,
101,
8,
229,
8,
21,
8,
149,
8,
85,
8,
213,
8,
53,
8,
181,
8,
117,
8,
245,
8,
13,
8,
141,
8,
77,
8,
205,
8,
45,
8,
173,
8,
109,
8,
237,
8,
29,
8,
157,
8,
93,
8,
221,
8,
61,
8,
189,
8,
125,
8,
253,
8,
19,
9,
275,
9,
147,
9,
403,
9,
83,
9,
339,
9,
211,
9,
467,
9,
51,
9,
307,
9,
179,
9,
435,
9,
115,
9,
371,
9,
243,
9,
499,
9,
11,
9,
267,
9,
139,
9,
395,
9,
75,
9,
331,
9,
203,
9,
459,
9,
43,
9,
299,
9,
171,
9,
427,
9,
107,
9,
363,
9,
235,
9,
491,
9,
27,
9,
283,
9,
155,
9,
411,
9,
91,
9,
347,
9,
219,
9,
475,
9,
59,
9,
315,
9,
187,
9,
443,
9,
123,
9,
379,
9,
251,
9,
507,
9,
7,
9,
263,
9,
135,
9,
391,
9,
71,
9,
327,
9,
199,
9,
455,
9,
39,
9,
295,
9,
167,
9,
423,
9,
103,
9,
359,
9,
231,
9,
487,
9,
23,
9,
279,
9,
151,
9,
407,
9,
87,
9,
343,
9,
215,
9,
471,
9,
55,
9,
311,
9,
183,
9,
439,
9,
119,
9,
375,
9,
247,
9,
503,
9,
15,
9,
271,
9,
143,
9,
399,
9,
79,
9,
335,
9,
207,
9,
463,
9,
47,
9,
303,
9,
175,
9,
431,
9,
111,
9,
367,
9,
239,
9,
495,
9,
31,
9,
287,
9,
159,
9,
415,
9,
95,
9,
351,
9,
223,
9,
479,
9,
63,
9,
319,
9,
191,
9,
447,
9,
127,
9,
383,
9,
255,
9,
511,
9,
0,
7,
64,
7,
32,
7,
96,
7,
16,
7,
80,
7,
48,
7,
112,
7,
8,
7,
72,
7,
40,
7,
104,
7,
24,
7,
88,
7,
56,
7,
120,
7,
4,
7,
68,
7,
36,
7,
100,
7,
20,
7,
84,
7,
52,
7,
116,
7,
3,
8,
131,
8,
67,
8,
195,
8,
35,
8,
163,
8,
99,
8,
227,
8
};
internal static readonly short[] static_dtree = new short[60] {
0,
5,
16,
5,
8,
5,
24,
5,
4,
5,
20,
5,
12,
5,
28,
5,
2,
5,
18,
5,
10,
5,
26,
5,
6,
5,
22,
5,
14,
5,
30,
5,
1,
5,
17,
5,
9,
5,
25,
5,
5,
5,
21,
5,
13,
5,
29,
5,
3,
5,
19,
5,
11,
5,
27,
5,
7,
5,
23,
5
};
internal static readonly StaticTree static_l_desc = new StaticTree(static_ltree, Tree.extra_lbits, 257, 286, 15);
internal static readonly StaticTree static_d_desc = new StaticTree(static_dtree, Tree.extra_dbits, 0, 30, 15);
internal static readonly StaticTree static_bl_desc = new StaticTree(null, Tree.extra_blbits, 0, 19, 7);
internal short[] static_tree;
internal int[] extra_bits;
internal int extra_base;
internal int elems;
internal int max_length;
internal StaticTree(short[] static_tree, int[] extra_bits, int extra_base, int elems, int max_length)
{
this.static_tree = static_tree;
this.extra_bits = extra_bits;
this.extra_base = extra_base;
this.elems = elems;
this.max_length = max_length;
}
}
}