Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/chardet/mbcssm.py: 98%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1######################## BEGIN LICENSE BLOCK ########################
2# The Original Code is mozilla.org code.
3#
4# The Initial Developer of the Original Code is
5# Netscape Communications Corporation.
6# Portions created by the Initial Developer are Copyright (C) 1998
7# the Initial Developer. All Rights Reserved.
8#
9# Contributor(s):
10# Mark Pilgrim - port to Python
11#
12# This library is free software; you can redistribute it and/or
13# modify it under the terms of the GNU Lesser General Public
14# License as published by the Free Software Foundation; either
15# version 2.1 of the License, or (at your option) any later version.
16#
17# This library is distributed in the hope that it will be useful,
18# but WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# Lesser General Public License for more details.
21#
22# You should have received a copy of the GNU Lesser General Public
23# License along with this library; if not, see
24# <https://www.gnu.org/licenses/>.
25######################### END LICENSE BLOCK #########################
27from .codingstatemachinedict import CodingStateMachineDict
28from .enums import MachineState
30# BIG5
32# fmt: off
33BIG5_CLS = (
34 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 #allow 0x00 as legal value
35 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f
36 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17
37 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f
38 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27
39 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f
40 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37
41 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f
42 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47
43 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f
44 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57
45 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f
46 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67
47 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f
48 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77
49 2, 2, 2, 2, 2, 2, 2, 1, # 78 - 7f
50 4, 4, 4, 4, 4, 4, 4, 4, # 80 - 87
51 4, 4, 4, 4, 4, 4, 4, 4, # 88 - 8f
52 4, 4, 4, 4, 4, 4, 4, 4, # 90 - 97
53 4, 4, 4, 4, 4, 4, 4, 4, # 98 - 9f
54 4, 3, 3, 3, 3, 3, 3, 3, # a0 - a7
55 3, 3, 3, 3, 3, 3, 3, 3, # a8 - af
56 3, 3, 3, 3, 3, 3, 3, 3, # b0 - b7
57 3, 3, 3, 3, 3, 3, 3, 3, # b8 - bf
58 3, 3, 3, 3, 3, 3, 3, 3, # c0 - c7
59 3, 3, 3, 3, 3, 3, 3, 3, # c8 - cf
60 3, 3, 3, 3, 3, 3, 3, 3, # d0 - d7
61 3, 3, 3, 3, 3, 3, 3, 3, # d8 - df
62 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7
63 3, 3, 3, 3, 3, 3, 3, 3, # e8 - ef
64 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7
65 3, 3, 3, 3, 3, 3, 3, 0 # f8 - ff
66)
68BIG5_ST = (
69 MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07
70 MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,#08-0f
71 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START#10-17
72)
73# fmt: on
75BIG5_CHAR_LEN_TABLE = (0, 1, 1, 2, 0)
77BIG5_SM_MODEL: CodingStateMachineDict = {
78 "class_table": BIG5_CLS,
79 "class_factor": 5,
80 "state_table": BIG5_ST,
81 "char_len_table": BIG5_CHAR_LEN_TABLE,
82 "name": "Big5",
83}
85# CP949
86# fmt: off
87CP949_CLS = (
88 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, # 00 - 0f
89 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, # 10 - 1f
90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 2f
91 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 3f
92 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, # 40 - 4f
93 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, # 50 - 5f
94 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, # 60 - 6f
95 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, # 70 - 7f
96 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, # 80 - 8f
97 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, # 90 - 9f
98 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, # a0 - af
99 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, # b0 - bf
100 7, 7, 7, 7, 7, 7, 9, 2, 2, 3, 2, 2, 2, 2, 2, 2, # c0 - cf
101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, # d0 - df
102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, # e0 - ef
103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, # f0 - ff
104)
106CP949_ST = (
107#cls= 0 1 2 3 4 5 6 7 8 9 # previous state =
108 MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START, 4, 5,MachineState.ERROR, 6, # MachineState.START
109 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, # MachineState.ERROR
110 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME
111 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 3
112 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 4
113 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 5
114 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 6
115)
116# fmt: on
118CP949_CHAR_LEN_TABLE = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2)
120CP949_SM_MODEL: CodingStateMachineDict = {
121 "class_table": CP949_CLS,
122 "class_factor": 10,
123 "state_table": CP949_ST,
124 "char_len_table": CP949_CHAR_LEN_TABLE,
125 "name": "CP949",
126}
128# EUC-JP
129# fmt: off
130EUCJP_CLS = (
131 4, 4, 4, 4, 4, 4, 4, 4, # 00 - 07
132 4, 4, 4, 4, 4, 4, 5, 5, # 08 - 0f
133 4, 4, 4, 4, 4, 4, 4, 4, # 10 - 17
134 4, 4, 4, 5, 4, 4, 4, 4, # 18 - 1f
135 4, 4, 4, 4, 4, 4, 4, 4, # 20 - 27
136 4, 4, 4, 4, 4, 4, 4, 4, # 28 - 2f
137 4, 4, 4, 4, 4, 4, 4, 4, # 30 - 37
138 4, 4, 4, 4, 4, 4, 4, 4, # 38 - 3f
139 4, 4, 4, 4, 4, 4, 4, 4, # 40 - 47
140 4, 4, 4, 4, 4, 4, 4, 4, # 48 - 4f
141 4, 4, 4, 4, 4, 4, 4, 4, # 50 - 57
142 4, 4, 4, 4, 4, 4, 4, 4, # 58 - 5f
143 4, 4, 4, 4, 4, 4, 4, 4, # 60 - 67
144 4, 4, 4, 4, 4, 4, 4, 4, # 68 - 6f
145 4, 4, 4, 4, 4, 4, 4, 4, # 70 - 77
146 4, 4, 4, 4, 4, 4, 4, 4, # 78 - 7f
147 5, 5, 5, 5, 5, 5, 5, 5, # 80 - 87
148 5, 5, 5, 5, 5, 5, 1, 3, # 88 - 8f
149 5, 5, 5, 5, 5, 5, 5, 5, # 90 - 97
150 5, 5, 5, 5, 5, 5, 5, 5, # 98 - 9f
151 5, 2, 2, 2, 2, 2, 2, 2, # a0 - a7
152 2, 2, 2, 2, 2, 2, 2, 2, # a8 - af
153 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7
154 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf
155 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7
156 2, 2, 2, 2, 2, 2, 2, 2, # c8 - cf
157 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7
158 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df
159 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7
160 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef
161 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7
162 0, 0, 0, 0, 0, 0, 0, 5 # f8 - ff
163)
165EUCJP_ST = (
166 3, 4, 3, 5,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07
167 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
168 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17
169 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 3,MachineState.ERROR,#18-1f
170 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START#20-27
171)
172# fmt: on
174EUCJP_CHAR_LEN_TABLE = (2, 2, 2, 3, 1, 0)
176EUCJP_SM_MODEL: CodingStateMachineDict = {
177 "class_table": EUCJP_CLS,
178 "class_factor": 6,
179 "state_table": EUCJP_ST,
180 "char_len_table": EUCJP_CHAR_LEN_TABLE,
181 "name": "EUC-JP",
182}
184# EUC-KR
185# fmt: off
186EUCKR_CLS = (
187 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07
188 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f
189 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17
190 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f
191 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27
192 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f
193 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37
194 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f
195 1, 1, 1, 1, 1, 1, 1, 1, # 40 - 47
196 1, 1, 1, 1, 1, 1, 1, 1, # 48 - 4f
197 1, 1, 1, 1, 1, 1, 1, 1, # 50 - 57
198 1, 1, 1, 1, 1, 1, 1, 1, # 58 - 5f
199 1, 1, 1, 1, 1, 1, 1, 1, # 60 - 67
200 1, 1, 1, 1, 1, 1, 1, 1, # 68 - 6f
201 1, 1, 1, 1, 1, 1, 1, 1, # 70 - 77
202 1, 1, 1, 1, 1, 1, 1, 1, # 78 - 7f
203 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87
204 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f
205 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97
206 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f
207 0, 2, 2, 2, 2, 2, 2, 2, # a0 - a7
208 2, 2, 2, 2, 2, 3, 3, 3, # a8 - af
209 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7
210 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf
211 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7
212 2, 3, 2, 2, 2, 2, 2, 2, # c8 - cf
213 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7
214 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df
215 2, 2, 2, 2, 2, 2, 2, 2, # e0 - e7
216 2, 2, 2, 2, 2, 2, 2, 2, # e8 - ef
217 2, 2, 2, 2, 2, 2, 2, 2, # f0 - f7
218 2, 2, 2, 2, 2, 2, 2, 0 # f8 - ff
219)
221EUCKR_ST = (
222 MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07
223 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #08-0f
224)
225# fmt: on
227EUCKR_CHAR_LEN_TABLE = (0, 1, 2, 0)
229EUCKR_SM_MODEL: CodingStateMachineDict = {
230 "class_table": EUCKR_CLS,
231 "class_factor": 4,
232 "state_table": EUCKR_ST,
233 "char_len_table": EUCKR_CHAR_LEN_TABLE,
234 "name": "EUC-KR",
235}
237# JOHAB
238# fmt: off
239JOHAB_CLS = (
240 4,4,4,4,4,4,4,4, # 00 - 07
241 4,4,4,4,4,4,0,0, # 08 - 0f
242 4,4,4,4,4,4,4,4, # 10 - 17
243 4,4,4,0,4,4,4,4, # 18 - 1f
244 4,4,4,4,4,4,4,4, # 20 - 27
245 4,4,4,4,4,4,4,4, # 28 - 2f
246 4,3,3,3,3,3,3,3, # 30 - 37
247 3,3,3,3,3,3,3,3, # 38 - 3f
248 3,1,1,1,1,1,1,1, # 40 - 47
249 1,1,1,1,1,1,1,1, # 48 - 4f
250 1,1,1,1,1,1,1,1, # 50 - 57
251 1,1,1,1,1,1,1,1, # 58 - 5f
252 1,1,1,1,1,1,1,1, # 60 - 67
253 1,1,1,1,1,1,1,1, # 68 - 6f
254 1,1,1,1,1,1,1,1, # 70 - 77
255 1,1,1,1,1,1,1,2, # 78 - 7f
256 6,6,6,6,8,8,8,8, # 80 - 87
257 8,8,8,8,8,8,8,8, # 88 - 8f
258 8,7,7,7,7,7,7,7, # 90 - 97
259 7,7,7,7,7,7,7,7, # 98 - 9f
260 7,7,7,7,7,7,7,7, # a0 - a7
261 7,7,7,7,7,7,7,7, # a8 - af
262 7,7,7,7,7,7,7,7, # b0 - b7
263 7,7,7,7,7,7,7,7, # b8 - bf
264 7,7,7,7,7,7,7,7, # c0 - c7
265 7,7,7,7,7,7,7,7, # c8 - cf
266 7,7,7,7,5,5,5,5, # d0 - d7
267 5,9,9,9,9,9,9,5, # d8 - df
268 9,9,9,9,9,9,9,9, # e0 - e7
269 9,9,9,9,9,9,9,9, # e8 - ef
270 9,9,9,9,9,9,9,9, # f0 - f7
271 9,9,5,5,5,5,5,0 # f8 - ff
272)
274JOHAB_ST = (
275# cls = 0 1 2 3 4 5 6 7 8 9
276 MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.ERROR ,MachineState.ERROR ,3 ,3 ,4 , # MachineState.START
277 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME
278 MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR , # MachineState.ERROR
279 MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.ERROR ,MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START , # 3
280 MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START , # 4
281)
282# fmt: on
284JOHAB_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 0, 0, 2, 2, 2)
286JOHAB_SM_MODEL: CodingStateMachineDict = {
287 "class_table": JOHAB_CLS,
288 "class_factor": 10,
289 "state_table": JOHAB_ST,
290 "char_len_table": JOHAB_CHAR_LEN_TABLE,
291 "name": "Johab",
292}
294# EUC-TW
295# fmt: off
296EUCTW_CLS = (
297 2, 2, 2, 2, 2, 2, 2, 2, # 00 - 07
298 2, 2, 2, 2, 2, 2, 0, 0, # 08 - 0f
299 2, 2, 2, 2, 2, 2, 2, 2, # 10 - 17
300 2, 2, 2, 0, 2, 2, 2, 2, # 18 - 1f
301 2, 2, 2, 2, 2, 2, 2, 2, # 20 - 27
302 2, 2, 2, 2, 2, 2, 2, 2, # 28 - 2f
303 2, 2, 2, 2, 2, 2, 2, 2, # 30 - 37
304 2, 2, 2, 2, 2, 2, 2, 2, # 38 - 3f
305 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47
306 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f
307 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57
308 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f
309 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67
310 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f
311 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77
312 2, 2, 2, 2, 2, 2, 2, 2, # 78 - 7f
313 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87
314 0, 0, 0, 0, 0, 0, 6, 0, # 88 - 8f
315 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97
316 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f
317 0, 3, 4, 4, 4, 4, 4, 4, # a0 - a7
318 5, 5, 1, 1, 1, 1, 1, 1, # a8 - af
319 1, 1, 1, 1, 1, 1, 1, 1, # b0 - b7
320 1, 1, 1, 1, 1, 1, 1, 1, # b8 - bf
321 1, 1, 3, 1, 3, 3, 3, 3, # c0 - c7
322 3, 3, 3, 3, 3, 3, 3, 3, # c8 - cf
323 3, 3, 3, 3, 3, 3, 3, 3, # d0 - d7
324 3, 3, 3, 3, 3, 3, 3, 3, # d8 - df
325 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7
326 3, 3, 3, 3, 3, 3, 3, 3, # e8 - ef
327 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7
328 3, 3, 3, 3, 3, 3, 3, 0 # f8 - ff
329)
331EUCTW_ST = (
332 MachineState.ERROR,MachineState.ERROR,MachineState.START, 3, 3, 3, 4,MachineState.ERROR,#00-07
333 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
334 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.ERROR,#10-17
335 MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f
336 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,#20-27
337 MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f
338)
339# fmt: on
341EUCTW_CHAR_LEN_TABLE = (0, 0, 1, 2, 2, 2, 3)
343EUCTW_SM_MODEL: CodingStateMachineDict = {
344 "class_table": EUCTW_CLS,
345 "class_factor": 7,
346 "state_table": EUCTW_ST,
347 "char_len_table": EUCTW_CHAR_LEN_TABLE,
348 "name": "x-euc-tw",
349}
351# GB2312
352# fmt: off
353GB2312_CLS = (
354 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07
355 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f
356 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17
357 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f
358 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27
359 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f
360 3, 3, 3, 3, 3, 3, 3, 3, # 30 - 37
361 3, 3, 1, 1, 1, 1, 1, 1, # 38 - 3f
362 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47
363 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f
364 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57
365 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f
366 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67
367 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f
368 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77
369 2, 2, 2, 2, 2, 2, 2, 4, # 78 - 7f
370 5, 6, 6, 6, 6, 6, 6, 6, # 80 - 87
371 6, 6, 6, 6, 6, 6, 6, 6, # 88 - 8f
372 6, 6, 6, 6, 6, 6, 6, 6, # 90 - 97
373 6, 6, 6, 6, 6, 6, 6, 6, # 98 - 9f
374 6, 6, 6, 6, 6, 6, 6, 6, # a0 - a7
375 6, 6, 6, 6, 6, 6, 6, 6, # a8 - af
376 6, 6, 6, 6, 6, 6, 6, 6, # b0 - b7
377 6, 6, 6, 6, 6, 6, 6, 6, # b8 - bf
378 6, 6, 6, 6, 6, 6, 6, 6, # c0 - c7
379 6, 6, 6, 6, 6, 6, 6, 6, # c8 - cf
380 6, 6, 6, 6, 6, 6, 6, 6, # d0 - d7
381 6, 6, 6, 6, 6, 6, 6, 6, # d8 - df
382 6, 6, 6, 6, 6, 6, 6, 6, # e0 - e7
383 6, 6, 6, 6, 6, 6, 6, 6, # e8 - ef
384 6, 6, 6, 6, 6, 6, 6, 6, # f0 - f7
385 6, 6, 6, 6, 6, 6, 6, 0 # f8 - ff
386)
388GB2312_ST = (
389 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, 3,MachineState.ERROR,#00-07
390 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
391 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,#10-17
392 4,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f
393 MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#20-27
394 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f
395)
396# fmt: on
398# To be accurate, the length of class 6 can be either 2 or 4.
399# But it is not necessary to discriminate between the two since
400# it is used for frequency analysis only, and we are validating
401# each code range there as well. So it is safe to set it to be
402# 2 here.
403GB2312_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 1, 2)
405GB2312_SM_MODEL: CodingStateMachineDict = {
406 "class_table": GB2312_CLS,
407 "class_factor": 7,
408 "state_table": GB2312_ST,
409 "char_len_table": GB2312_CHAR_LEN_TABLE,
410 "name": "GB2312",
411}
413# Shift_JIS
414# fmt: off
415SJIS_CLS = (
416 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07
417 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f
418 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17
419 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f
420 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27
421 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f
422 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37
423 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f
424 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47
425 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f
426 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57
427 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f
428 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67
429 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f
430 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77
431 2, 2, 2, 2, 2, 2, 2, 1, # 78 - 7f
432 3, 3, 3, 3, 3, 2, 2, 3, # 80 - 87
433 3, 3, 3, 3, 3, 3, 3, 3, # 88 - 8f
434 3, 3, 3, 3, 3, 3, 3, 3, # 90 - 97
435 3, 3, 3, 3, 3, 3, 3, 3, # 98 - 9f
436 #0xa0 is illegal in sjis encoding, but some pages does
437 #contain such byte. We need to be more error forgiven.
438 2, 2, 2, 2, 2, 2, 2, 2, # a0 - a7
439 2, 2, 2, 2, 2, 2, 2, 2, # a8 - af
440 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7
441 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf
442 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7
443 2, 2, 2, 2, 2, 2, 2, 2, # c8 - cf
444 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7
445 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df
446 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7
447 3, 3, 3, 3, 3, 4, 4, 4, # e8 - ef
448 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7
449 3, 3, 3, 3, 3, 0, 0, 0, # f8 - ff
450)
452SJIS_ST = (
453 MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07
454 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
455 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START #10-17
456)
457# fmt: on
459SJIS_CHAR_LEN_TABLE = (0, 1, 1, 2, 0, 0)
461SJIS_SM_MODEL: CodingStateMachineDict = {
462 "class_table": SJIS_CLS,
463 "class_factor": 6,
464 "state_table": SJIS_ST,
465 "char_len_table": SJIS_CHAR_LEN_TABLE,
466 "name": "Shift_JIS",
467}
469# UCS2-BE
470# fmt: off
471UCS2BE_CLS = (
472 0, 0, 0, 0, 0, 0, 0, 0, # 00 - 07
473 0, 0, 1, 0, 0, 2, 0, 0, # 08 - 0f
474 0, 0, 0, 0, 0, 0, 0, 0, # 10 - 17
475 0, 0, 0, 3, 0, 0, 0, 0, # 18 - 1f
476 0, 0, 0, 0, 0, 0, 0, 0, # 20 - 27
477 0, 3, 3, 3, 3, 3, 0, 0, # 28 - 2f
478 0, 0, 0, 0, 0, 0, 0, 0, # 30 - 37
479 0, 0, 0, 0, 0, 0, 0, 0, # 38 - 3f
480 0, 0, 0, 0, 0, 0, 0, 0, # 40 - 47
481 0, 0, 0, 0, 0, 0, 0, 0, # 48 - 4f
482 0, 0, 0, 0, 0, 0, 0, 0, # 50 - 57
483 0, 0, 0, 0, 0, 0, 0, 0, # 58 - 5f
484 0, 0, 0, 0, 0, 0, 0, 0, # 60 - 67
485 0, 0, 0, 0, 0, 0, 0, 0, # 68 - 6f
486 0, 0, 0, 0, 0, 0, 0, 0, # 70 - 77
487 0, 0, 0, 0, 0, 0, 0, 0, # 78 - 7f
488 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87
489 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f
490 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97
491 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f
492 0, 0, 0, 0, 0, 0, 0, 0, # a0 - a7
493 0, 0, 0, 0, 0, 0, 0, 0, # a8 - af
494 0, 0, 0, 0, 0, 0, 0, 0, # b0 - b7
495 0, 0, 0, 0, 0, 0, 0, 0, # b8 - bf
496 0, 0, 0, 0, 0, 0, 0, 0, # c0 - c7
497 0, 0, 0, 0, 0, 0, 0, 0, # c8 - cf
498 0, 0, 0, 0, 0, 0, 0, 0, # d0 - d7
499 0, 0, 0, 0, 0, 0, 0, 0, # d8 - df
500 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7
501 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef
502 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7
503 0, 0, 0, 0, 0, 0, 4, 5 # f8 - ff
504)
506UCS2BE_ST = (
507 5, 7, 7,MachineState.ERROR, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07
508 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
509 MachineState.ITS_ME,MachineState.ITS_ME, 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,#10-17
510 6, 6, 6, 6, 6,MachineState.ITS_ME, 6, 6,#18-1f
511 6, 6, 6, 6, 5, 7, 7,MachineState.ERROR,#20-27
512 5, 8, 6, 6,MachineState.ERROR, 6, 6, 6,#28-2f
513 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #30-37
514)
515# fmt: on
517UCS2BE_CHAR_LEN_TABLE = (2, 2, 2, 0, 2, 2)
519UCS2BE_SM_MODEL: CodingStateMachineDict = {
520 "class_table": UCS2BE_CLS,
521 "class_factor": 6,
522 "state_table": UCS2BE_ST,
523 "char_len_table": UCS2BE_CHAR_LEN_TABLE,
524 "name": "UTF-16BE",
525}
527# UCS2-LE
528# fmt: off
529UCS2LE_CLS = (
530 0, 0, 0, 0, 0, 0, 0, 0, # 00 - 07
531 0, 0, 1, 0, 0, 2, 0, 0, # 08 - 0f
532 0, 0, 0, 0, 0, 0, 0, 0, # 10 - 17
533 0, 0, 0, 3, 0, 0, 0, 0, # 18 - 1f
534 0, 0, 0, 0, 0, 0, 0, 0, # 20 - 27
535 0, 3, 3, 3, 3, 3, 0, 0, # 28 - 2f
536 0, 0, 0, 0, 0, 0, 0, 0, # 30 - 37
537 0, 0, 0, 0, 0, 0, 0, 0, # 38 - 3f
538 0, 0, 0, 0, 0, 0, 0, 0, # 40 - 47
539 0, 0, 0, 0, 0, 0, 0, 0, # 48 - 4f
540 0, 0, 0, 0, 0, 0, 0, 0, # 50 - 57
541 0, 0, 0, 0, 0, 0, 0, 0, # 58 - 5f
542 0, 0, 0, 0, 0, 0, 0, 0, # 60 - 67
543 0, 0, 0, 0, 0, 0, 0, 0, # 68 - 6f
544 0, 0, 0, 0, 0, 0, 0, 0, # 70 - 77
545 0, 0, 0, 0, 0, 0, 0, 0, # 78 - 7f
546 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87
547 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f
548 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97
549 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f
550 0, 0, 0, 0, 0, 0, 0, 0, # a0 - a7
551 0, 0, 0, 0, 0, 0, 0, 0, # a8 - af
552 0, 0, 0, 0, 0, 0, 0, 0, # b0 - b7
553 0, 0, 0, 0, 0, 0, 0, 0, # b8 - bf
554 0, 0, 0, 0, 0, 0, 0, 0, # c0 - c7
555 0, 0, 0, 0, 0, 0, 0, 0, # c8 - cf
556 0, 0, 0, 0, 0, 0, 0, 0, # d0 - d7
557 0, 0, 0, 0, 0, 0, 0, 0, # d8 - df
558 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7
559 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef
560 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7
561 0, 0, 0, 0, 0, 0, 4, 5 # f8 - ff
562)
564UCS2LE_ST = (
565 6, 6, 7, 6, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07
566 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f
567 MachineState.ITS_ME,MachineState.ITS_ME, 5, 5, 5,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#10-17
568 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR, 6, 6,#18-1f
569 7, 6, 8, 8, 5, 5, 5,MachineState.ERROR,#20-27
570 5, 5, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5,#28-2f
571 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR,MachineState.START,MachineState.START #30-37
572)
573# fmt: on
575UCS2LE_CHAR_LEN_TABLE = (2, 2, 2, 2, 2, 2)
577UCS2LE_SM_MODEL: CodingStateMachineDict = {
578 "class_table": UCS2LE_CLS,
579 "class_factor": 6,
580 "state_table": UCS2LE_ST,
581 "char_len_table": UCS2LE_CHAR_LEN_TABLE,
582 "name": "UTF-16LE",
583}
585# UTF-8
586# fmt: off
587UTF8_CLS = (
588 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 #allow 0x00 as a legal value
589 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f
590 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17
591 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f
592 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27
593 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f
594 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37
595 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f
596 1, 1, 1, 1, 1, 1, 1, 1, # 40 - 47
597 1, 1, 1, 1, 1, 1, 1, 1, # 48 - 4f
598 1, 1, 1, 1, 1, 1, 1, 1, # 50 - 57
599 1, 1, 1, 1, 1, 1, 1, 1, # 58 - 5f
600 1, 1, 1, 1, 1, 1, 1, 1, # 60 - 67
601 1, 1, 1, 1, 1, 1, 1, 1, # 68 - 6f
602 1, 1, 1, 1, 1, 1, 1, 1, # 70 - 77
603 1, 1, 1, 1, 1, 1, 1, 1, # 78 - 7f
604 2, 2, 2, 2, 3, 3, 3, 3, # 80 - 87
605 4, 4, 4, 4, 4, 4, 4, 4, # 88 - 8f
606 4, 4, 4, 4, 4, 4, 4, 4, # 90 - 97
607 4, 4, 4, 4, 4, 4, 4, 4, # 98 - 9f
608 5, 5, 5, 5, 5, 5, 5, 5, # a0 - a7
609 5, 5, 5, 5, 5, 5, 5, 5, # a8 - af
610 5, 5, 5, 5, 5, 5, 5, 5, # b0 - b7
611 5, 5, 5, 5, 5, 5, 5, 5, # b8 - bf
612 0, 0, 6, 6, 6, 6, 6, 6, # c0 - c7
613 6, 6, 6, 6, 6, 6, 6, 6, # c8 - cf
614 6, 6, 6, 6, 6, 6, 6, 6, # d0 - d7
615 6, 6, 6, 6, 6, 6, 6, 6, # d8 - df
616 7, 8, 8, 8, 8, 8, 8, 8, # e0 - e7
617 8, 8, 8, 8, 8, 9, 8, 8, # e8 - ef
618 10, 11, 11, 11, 11, 11, 11, 11, # f0 - f7
619 12, 13, 13, 13, 14, 15, 0, 0 # f8 - ff
620)
622UTF8_ST = (
623 MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12, 10,#00-07
624 9, 11, 8, 7, 6, 5, 4, 3,#08-0f
625 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17
626 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f
627 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#20-27
628 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#28-2f
629 MachineState.ERROR,MachineState.ERROR, 5, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#30-37
630 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#38-3f
631 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#40-47
632 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#48-4f
633 MachineState.ERROR,MachineState.ERROR, 7, 7, 7, 7,MachineState.ERROR,MachineState.ERROR,#50-57
634 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#58-5f
635 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 7, 7,MachineState.ERROR,MachineState.ERROR,#60-67
636 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#68-6f
637 MachineState.ERROR,MachineState.ERROR, 9, 9, 9, 9,MachineState.ERROR,MachineState.ERROR,#70-77
638 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#78-7f
639 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 9,MachineState.ERROR,MachineState.ERROR,#80-87
640 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#88-8f
641 MachineState.ERROR,MachineState.ERROR, 12, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,#90-97
642 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#98-9f
643 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12,MachineState.ERROR,MachineState.ERROR,#a0-a7
644 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#a8-af
645 MachineState.ERROR,MachineState.ERROR, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b0-b7
646 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b8-bf
647 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,#c0-c7
648 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR #c8-cf
649)
650# fmt: on
652UTF8_CHAR_LEN_TABLE = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6)
654UTF8_SM_MODEL: CodingStateMachineDict = {
655 "class_table": UTF8_CLS,
656 "class_factor": 16,
657 "state_table": UTF8_ST,
658 "char_len_table": UTF8_CHAR_LEN_TABLE,
659 "name": "UTF-8",
660}