2 * nghttp2 - HTTP/2 C Library
4 * Copyright (c) 2013 Tatsuhiro Tsujikawa
6 * SPDX-License-Identifier: MIT
8 #include "nghttp2_hd_huffman.h"
10 /* Generated by mkhufftbl.py */
12 const nghttp2_huff_sym huff_sym_table
[] = {
13 {13, 0xffc00000u
}, {23, 0xffffb000u
}, {28, 0xfffffe20u
}, {28, 0xfffffe30u
},
14 {28, 0xfffffe40u
}, {28, 0xfffffe50u
}, {28, 0xfffffe60u
}, {28, 0xfffffe70u
},
15 {28, 0xfffffe80u
}, {24, 0xffffea00u
}, {30, 0xfffffff0u
}, {28, 0xfffffe90u
},
16 {28, 0xfffffea0u
}, {30, 0xfffffff4u
}, {28, 0xfffffeb0u
}, {28, 0xfffffec0u
},
17 {28, 0xfffffed0u
}, {28, 0xfffffee0u
}, {28, 0xfffffef0u
}, {28, 0xffffff00u
},
18 {28, 0xffffff10u
}, {28, 0xffffff20u
}, {30, 0xfffffff8u
}, {28, 0xffffff30u
},
19 {28, 0xffffff40u
}, {28, 0xffffff50u
}, {28, 0xffffff60u
}, {28, 0xffffff70u
},
20 {28, 0xffffff80u
}, {28, 0xffffff90u
}, {28, 0xffffffa0u
}, {28, 0xffffffb0u
},
21 {6, 0x50000000u
}, {10, 0xfe000000u
}, {10, 0xfe400000u
}, {12, 0xffa00000u
},
22 {13, 0xffc80000u
}, {6, 0x54000000u
}, {8, 0xf8000000u
}, {11, 0xff400000u
},
23 {10, 0xfe800000u
}, {10, 0xfec00000u
}, {8, 0xf9000000u
}, {11, 0xff600000u
},
24 {8, 0xfa000000u
}, {6, 0x58000000u
}, {6, 0x5c000000u
}, {6, 0x60000000u
},
25 {5, 0x0u
}, {5, 0x8000000u
}, {5, 0x10000000u
}, {6, 0x64000000u
},
26 {6, 0x68000000u
}, {6, 0x6c000000u
}, {6, 0x70000000u
}, {6, 0x74000000u
},
27 {6, 0x78000000u
}, {6, 0x7c000000u
}, {7, 0xb8000000u
}, {8, 0xfb000000u
},
28 {15, 0xfff80000u
}, {6, 0x80000000u
}, {12, 0xffb00000u
}, {10, 0xff000000u
},
29 {13, 0xffd00000u
}, {6, 0x84000000u
}, {7, 0xba000000u
}, {7, 0xbc000000u
},
30 {7, 0xbe000000u
}, {7, 0xc0000000u
}, {7, 0xc2000000u
}, {7, 0xc4000000u
},
31 {7, 0xc6000000u
}, {7, 0xc8000000u
}, {7, 0xca000000u
}, {7, 0xcc000000u
},
32 {7, 0xce000000u
}, {7, 0xd0000000u
}, {7, 0xd2000000u
}, {7, 0xd4000000u
},
33 {7, 0xd6000000u
}, {7, 0xd8000000u
}, {7, 0xda000000u
}, {7, 0xdc000000u
},
34 {7, 0xde000000u
}, {7, 0xe0000000u
}, {7, 0xe2000000u
}, {7, 0xe4000000u
},
35 {8, 0xfc000000u
}, {7, 0xe6000000u
}, {8, 0xfd000000u
}, {13, 0xffd80000u
},
36 {19, 0xfffe0000u
}, {13, 0xffe00000u
}, {14, 0xfff00000u
}, {6, 0x88000000u
},
37 {15, 0xfffa0000u
}, {5, 0x18000000u
}, {6, 0x8c000000u
}, {5, 0x20000000u
},
38 {6, 0x90000000u
}, {5, 0x28000000u
}, {6, 0x94000000u
}, {6, 0x98000000u
},
39 {6, 0x9c000000u
}, {5, 0x30000000u
}, {7, 0xe8000000u
}, {7, 0xea000000u
},
40 {6, 0xa0000000u
}, {6, 0xa4000000u
}, {6, 0xa8000000u
}, {5, 0x38000000u
},
41 {6, 0xac000000u
}, {7, 0xec000000u
}, {6, 0xb0000000u
}, {5, 0x40000000u
},
42 {5, 0x48000000u
}, {6, 0xb4000000u
}, {7, 0xee000000u
}, {7, 0xf0000000u
},
43 {7, 0xf2000000u
}, {7, 0xf4000000u
}, {7, 0xf6000000u
}, {15, 0xfffc0000u
},
44 {11, 0xff800000u
}, {14, 0xfff40000u
}, {13, 0xffe80000u
}, {28, 0xffffffc0u
},
45 {20, 0xfffe6000u
}, {22, 0xffff4800u
}, {20, 0xfffe7000u
}, {20, 0xfffe8000u
},
46 {22, 0xffff4c00u
}, {22, 0xffff5000u
}, {22, 0xffff5400u
}, {23, 0xffffb200u
},
47 {22, 0xffff5800u
}, {23, 0xffffb400u
}, {23, 0xffffb600u
}, {23, 0xffffb800u
},
48 {23, 0xffffba00u
}, {23, 0xffffbc00u
}, {24, 0xffffeb00u
}, {23, 0xffffbe00u
},
49 {24, 0xffffec00u
}, {24, 0xffffed00u
}, {22, 0xffff5c00u
}, {23, 0xffffc000u
},
50 {24, 0xffffee00u
}, {23, 0xffffc200u
}, {23, 0xffffc400u
}, {23, 0xffffc600u
},
51 {23, 0xffffc800u
}, {21, 0xfffee000u
}, {22, 0xffff6000u
}, {23, 0xffffca00u
},
52 {22, 0xffff6400u
}, {23, 0xffffcc00u
}, {23, 0xffffce00u
}, {24, 0xffffef00u
},
53 {22, 0xffff6800u
}, {21, 0xfffee800u
}, {20, 0xfffe9000u
}, {22, 0xffff6c00u
},
54 {22, 0xffff7000u
}, {23, 0xffffd000u
}, {23, 0xffffd200u
}, {21, 0xfffef000u
},
55 {23, 0xffffd400u
}, {22, 0xffff7400u
}, {22, 0xffff7800u
}, {24, 0xfffff000u
},
56 {21, 0xfffef800u
}, {22, 0xffff7c00u
}, {23, 0xffffd600u
}, {23, 0xffffd800u
},
57 {21, 0xffff0000u
}, {21, 0xffff0800u
}, {22, 0xffff8000u
}, {21, 0xffff1000u
},
58 {23, 0xffffda00u
}, {22, 0xffff8400u
}, {23, 0xffffdc00u
}, {23, 0xffffde00u
},
59 {20, 0xfffea000u
}, {22, 0xffff8800u
}, {22, 0xffff8c00u
}, {22, 0xffff9000u
},
60 {23, 0xffffe000u
}, {22, 0xffff9400u
}, {22, 0xffff9800u
}, {23, 0xffffe200u
},
61 {26, 0xfffff800u
}, {26, 0xfffff840u
}, {20, 0xfffeb000u
}, {19, 0xfffe2000u
},
62 {22, 0xffff9c00u
}, {23, 0xffffe400u
}, {22, 0xffffa000u
}, {25, 0xfffff600u
},
63 {26, 0xfffff880u
}, {26, 0xfffff8c0u
}, {26, 0xfffff900u
}, {27, 0xfffffbc0u
},
64 {27, 0xfffffbe0u
}, {26, 0xfffff940u
}, {24, 0xfffff100u
}, {25, 0xfffff680u
},
65 {19, 0xfffe4000u
}, {21, 0xffff1800u
}, {26, 0xfffff980u
}, {27, 0xfffffc00u
},
66 {27, 0xfffffc20u
}, {26, 0xfffff9c0u
}, {27, 0xfffffc40u
}, {24, 0xfffff200u
},
67 {21, 0xffff2000u
}, {21, 0xffff2800u
}, {26, 0xfffffa00u
}, {26, 0xfffffa40u
},
68 {28, 0xffffffd0u
}, {27, 0xfffffc60u
}, {27, 0xfffffc80u
}, {27, 0xfffffca0u
},
69 {20, 0xfffec000u
}, {24, 0xfffff300u
}, {20, 0xfffed000u
}, {21, 0xffff3000u
},
70 {22, 0xffffa400u
}, {21, 0xffff3800u
}, {21, 0xffff4000u
}, {23, 0xffffe600u
},
71 {22, 0xffffa800u
}, {22, 0xffffac00u
}, {25, 0xfffff700u
}, {25, 0xfffff780u
},
72 {24, 0xfffff400u
}, {24, 0xfffff500u
}, {26, 0xfffffa80u
}, {23, 0xffffe800u
},
73 {26, 0xfffffac0u
}, {27, 0xfffffcc0u
}, {26, 0xfffffb00u
}, {26, 0xfffffb40u
},
74 {27, 0xfffffce0u
}, {27, 0xfffffd00u
}, {27, 0xfffffd20u
}, {27, 0xfffffd40u
},
75 {27, 0xfffffd60u
}, {28, 0xffffffe0u
}, {27, 0xfffffd80u
}, {27, 0xfffffda0u
},
76 {27, 0xfffffdc0u
}, {27, 0xfffffde0u
}, {27, 0xfffffe00u
}, {26, 0xfffffb80u
},
79 const nghttp2_huff_decode huff_decode_table
[][16] = {