package decompress

  1. Overview
  2. Docs

Source file decompress_tables.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
  let _extra_lbits =
    [| 0; 0; 0; 0; 0; 0; 0; 0; 1; 1; 1; 1; 2; 2; 2; 2; 3; 3; 3; 3; 4; 4; 4; 4; 5
     ; 5; 5; 5; 0 |]

  let _extra_dbits =
    [| 0; 0; 0; 0; 1; 1; 2; 2; 3; 3; 4; 4; 5; 5; 6; 6; 7; 7; 8; 8; 9; 9; 10; 10
     ; 11; 11; 12; 12; 13; 13 |]

  let _base_length =
    [| 0; 1; 2; 3; 4; 5; 6; 7; 8; 10; 12; 14; 16; 20; 24; 28; 32; 40; 48; 56; 64
     ; 80; 96; 112; 128; 160; 192; 224; 255 |]

  let _base_dist =
    [| 0; 1; 2; 3; 4; 6; 8; 12; 16; 24; 32; 48; 64; 96; 128; 192; 256; 384; 512
     ; 768; 1024; 1536; 2048; 3072; 4096; 6144; 8192; 12288; 16384; 24576 |]

  let _distance =
    let t =
      [| 0; 1; 2; 3; 4; 4; 5; 5; 6; 6; 6; 6; 7; 7; 7; 7; 8; 8; 8; 8; 8; 8; 8; 8
       ; 9; 9; 9; 9; 9; 9; 9; 9; 10; 10; 10; 10; 10; 10; 10; 10; 10; 10; 10; 10
       ; 10; 10; 10; 10; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11; 11
       ; 11; 11; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12
       ; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 12; 13; 13
       ; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13
       ; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 13; 14; 14; 14; 14; 14; 14
       ; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14
       ; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14
       ; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14; 14
       ; 14; 14; 14; 14; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15
       ; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15
       ; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15
       ; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 15; 0; 0; 16; 17
       ; 18; 18; 19; 19; 20; 20; 20; 20; 21; 21; 21; 21; 22; 22; 22; 22; 22; 22
       ; 22; 22; 23; 23; 23; 23; 23; 23; 23; 23; 24; 24; 24; 24; 24; 24; 24; 24
       ; 24; 24; 24; 24; 24; 24; 24; 24; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25
       ; 25; 25; 25; 25; 25; 25; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26
       ; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26
       ; 26; 26; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27
       ; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 28; 28
       ; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28
       ; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28
       ; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28; 28
       ; 28; 28; 28; 28; 28; 28; 28; 28; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29
       ; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29
       ; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29
       ; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29; 29
      |]
    in
    fun code -> if code < 256 then t.(code) else t.(256 + (code lsr 7))

  let _length =
    [| 0; 1; 2; 3; 4; 5; 6; 7; 8; 8; 9; 9; 10; 10; 11; 11; 12; 12; 12; 12; 13
     ; 13; 13; 13; 14; 14; 14; 14; 15; 15; 15; 15; 16; 16; 16; 16; 16; 16; 16
     ; 16; 17; 17; 17; 17; 17; 17; 17; 17; 18; 18; 18; 18; 18; 18; 18; 18; 19
     ; 19; 19; 19; 19; 19; 19; 19; 20; 20; 20; 20; 20; 20; 20; 20; 20; 20; 20
     ; 20; 20; 20; 20; 20; 21; 21; 21; 21; 21; 21; 21; 21; 21; 21; 21; 21; 21
     ; 21; 21; 21; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22; 22
     ; 22; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 23; 24
     ; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24
     ; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 24; 25; 25; 25; 25; 25
     ; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25; 25
     ; 25; 25; 25; 25; 25; 25; 25; 25; 25; 26; 26; 26; 26; 26; 26; 26; 26; 26
     ; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26; 26
     ; 26; 26; 26; 26; 26; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27
     ; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27; 27
     ; 28 |]

  let _hclen_order =
    [|16; 17; 18; 0; 8; 7; 9; 6; 10; 5; 11; 4; 12; 3; 13; 2; 14; 1; 15|]

  let _static_ltree =
    [| (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) |]

  let _static_dtree =
    [| (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) |]
OCaml

Innovation. Community. Security.