prasb commited on
Commit
4b21605
·
verified ·
1 Parent(s): 98de047

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. my_container_sandbox/workspace/anaconda3/lib/libreadline.a +3 -0
  3. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/_sysconfigdata_s390x_conda_linux_gnu.cpython-38.pyc +0 -0
  4. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/ftplib.cpython-38.pyc +0 -0
  5. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/lzma.cpython-38.pyc +0 -0
  6. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/mailcap.cpython-38.pyc +0 -0
  7. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/operator.cpython-38.pyc +0 -0
  8. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/pyclbr.cpython-38.pyc +0 -0
  9. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/reprlib.cpython-38.pyc +0 -0
  10. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/socket.cpython-38.pyc +0 -0
  11. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/stat.cpython-38.pyc +0 -0
  12. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/statistics.cpython-38.pyc +0 -0
  13. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/tempfile.cpython-38.pyc +0 -0
  14. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/traceback.cpython-38.pyc +0 -0
  15. my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/weakref.cpython-38.pyc +0 -0
  16. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1006.py +307 -0
  17. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1125.py +698 -0
  18. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1140.py +307 -0
  19. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1252.py +307 -0
  20. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1253.py +307 -0
  21. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1254.py +307 -0
  22. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1256.py +307 -0
  23. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp273.py +307 -0
  24. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp857.py +694 -0
  25. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp858.py +698 -0
  26. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp862.py +698 -0
  27. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp864.py +690 -0
  28. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp865.py +698 -0
  29. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp932.py +39 -0
  30. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp949.py +39 -0
  31. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jis_2004.py +39 -0
  32. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jp.py +39 -0
  33. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gb18030.py +39 -0
  34. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hp_roman8.py +314 -0
  35. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hz.py +39 -0
  36. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/idna.py +307 -0
  37. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp.py +39 -0
  38. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_1.py +39 -0
  39. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_3.py +39 -0
  40. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_kr.py +39 -0
  41. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_14.py +307 -0
  42. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_2.py +307 -0
  43. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_6.py +307 -0
  44. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_7.py +307 -0
  45. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_8.py +307 -0
  46. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_centeuro.py +307 -0
  47. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_cyrillic.py +307 -0
  48. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_farsi.py +307 -0
  49. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_roman.py +307 -0
  50. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_turkish.py +307 -0
.gitattributes CHANGED
@@ -161,3 +161,4 @@ my_container_sandbox/workspace/anaconda3/lib/libtinfo.so filter=lfs diff=lfs mer
161
  my_container_sandbox/workspace/anaconda3/pkgs/chardet-4.0.0-py39h06a4308_1003.conda filter=lfs diff=lfs merge=lfs -text
162
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.14.6-py39h400218f_0.conda filter=lfs diff=lfs merge=lfs -text
163
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.13-h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
 
 
161
  my_container_sandbox/workspace/anaconda3/pkgs/chardet-4.0.0-py39h06a4308_1003.conda filter=lfs diff=lfs merge=lfs -text
162
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.14.6-py39h400218f_0.conda filter=lfs diff=lfs merge=lfs -text
163
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.13-h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
164
+ my_container_sandbox/workspace/anaconda3/lib/libreadline.a filter=lfs diff=lfs merge=lfs -text
my_container_sandbox/workspace/anaconda3/lib/libreadline.a ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:85f7e61baccdbad46595b1150363caa597b071c090bf90831a81c21532fe039e
3
+ size 732818
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/_sysconfigdata_s390x_conda_linux_gnu.cpython-38.pyc ADDED
Binary file (20.1 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/ftplib.cpython-38.pyc ADDED
Binary file (28 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/lzma.cpython-38.pyc ADDED
Binary file (12 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/mailcap.cpython-38.pyc ADDED
Binary file (7.2 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/operator.cpython-38.pyc ADDED
Binary file (13.7 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/pyclbr.cpython-38.pyc ADDED
Binary file (10.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/reprlib.cpython-38.pyc ADDED
Binary file (5.3 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/socket.cpython-38.pyc ADDED
Binary file (27.8 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/stat.cpython-38.pyc ADDED
Binary file (4.37 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/statistics.cpython-38.pyc ADDED
Binary file (33.6 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/tempfile.cpython-38.pyc ADDED
Binary file (23.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/traceback.cpython-38.pyc ADDED
Binary file (19.9 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/__pycache__/weakref.cpython-38.pyc ADDED
Binary file (19.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1006.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1006 generated from 'MAPPINGS/VENDORS/MISC/CP1006.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1006',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u06f0' # 0xA1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
210
+ '\u06f1' # 0xA2 -> EXTENDED ARABIC-INDIC DIGIT ONE
211
+ '\u06f2' # 0xA3 -> EXTENDED ARABIC-INDIC DIGIT TWO
212
+ '\u06f3' # 0xA4 -> EXTENDED ARABIC-INDIC DIGIT THREE
213
+ '\u06f4' # 0xA5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
214
+ '\u06f5' # 0xA6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
215
+ '\u06f6' # 0xA7 -> EXTENDED ARABIC-INDIC DIGIT SIX
216
+ '\u06f7' # 0xA8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
217
+ '\u06f8' # 0xA9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
218
+ '\u06f9' # 0xAA -> EXTENDED ARABIC-INDIC DIGIT NINE
219
+ '\u060c' # 0xAB -> ARABIC COMMA
220
+ '\u061b' # 0xAC -> ARABIC SEMICOLON
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\u061f' # 0xAE -> ARABIC QUESTION MARK
223
+ '\ufe81' # 0xAF -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
224
+ '\ufe8d' # 0xB0 -> ARABIC LETTER ALEF ISOLATED FORM
225
+ '\ufe8e' # 0xB1 -> ARABIC LETTER ALEF FINAL FORM
226
+ '\ufe8e' # 0xB2 -> ARABIC LETTER ALEF FINAL FORM
227
+ '\ufe8f' # 0xB3 -> ARABIC LETTER BEH ISOLATED FORM
228
+ '\ufe91' # 0xB4 -> ARABIC LETTER BEH INITIAL FORM
229
+ '\ufb56' # 0xB5 -> ARABIC LETTER PEH ISOLATED FORM
230
+ '\ufb58' # 0xB6 -> ARABIC LETTER PEH INITIAL FORM
231
+ '\ufe93' # 0xB7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
232
+ '\ufe95' # 0xB8 -> ARABIC LETTER TEH ISOLATED FORM
233
+ '\ufe97' # 0xB9 -> ARABIC LETTER TEH INITIAL FORM
234
+ '\ufb66' # 0xBA -> ARABIC LETTER TTEH ISOLATED FORM
235
+ '\ufb68' # 0xBB -> ARABIC LETTER TTEH INITIAL FORM
236
+ '\ufe99' # 0xBC -> ARABIC LETTER THEH ISOLATED FORM
237
+ '\ufe9b' # 0xBD -> ARABIC LETTER THEH INITIAL FORM
238
+ '\ufe9d' # 0xBE -> ARABIC LETTER JEEM ISOLATED FORM
239
+ '\ufe9f' # 0xBF -> ARABIC LETTER JEEM INITIAL FORM
240
+ '\ufb7a' # 0xC0 -> ARABIC LETTER TCHEH ISOLATED FORM
241
+ '\ufb7c' # 0xC1 -> ARABIC LETTER TCHEH INITIAL FORM
242
+ '\ufea1' # 0xC2 -> ARABIC LETTER HAH ISOLATED FORM
243
+ '\ufea3' # 0xC3 -> ARABIC LETTER HAH INITIAL FORM
244
+ '\ufea5' # 0xC4 -> ARABIC LETTER KHAH ISOLATED FORM
245
+ '\ufea7' # 0xC5 -> ARABIC LETTER KHAH INITIAL FORM
246
+ '\ufea9' # 0xC6 -> ARABIC LETTER DAL ISOLATED FORM
247
+ '\ufb84' # 0xC7 -> ARABIC LETTER DAHAL ISOLATED FORMN
248
+ '\ufeab' # 0xC8 -> ARABIC LETTER THAL ISOLATED FORM
249
+ '\ufead' # 0xC9 -> ARABIC LETTER REH ISOLATED FORM
250
+ '\ufb8c' # 0xCA -> ARABIC LETTER RREH ISOLATED FORM
251
+ '\ufeaf' # 0xCB -> ARABIC LETTER ZAIN ISOLATED FORM
252
+ '\ufb8a' # 0xCC -> ARABIC LETTER JEH ISOLATED FORM
253
+ '\ufeb1' # 0xCD -> ARABIC LETTER SEEN ISOLATED FORM
254
+ '\ufeb3' # 0xCE -> ARABIC LETTER SEEN INITIAL FORM
255
+ '\ufeb5' # 0xCF -> ARABIC LETTER SHEEN ISOLATED FORM
256
+ '\ufeb7' # 0xD0 -> ARABIC LETTER SHEEN INITIAL FORM
257
+ '\ufeb9' # 0xD1 -> ARABIC LETTER SAD ISOLATED FORM
258
+ '\ufebb' # 0xD2 -> ARABIC LETTER SAD INITIAL FORM
259
+ '\ufebd' # 0xD3 -> ARABIC LETTER DAD ISOLATED FORM
260
+ '\ufebf' # 0xD4 -> ARABIC LETTER DAD INITIAL FORM
261
+ '\ufec1' # 0xD5 -> ARABIC LETTER TAH ISOLATED FORM
262
+ '\ufec5' # 0xD6 -> ARABIC LETTER ZAH ISOLATED FORM
263
+ '\ufec9' # 0xD7 -> ARABIC LETTER AIN ISOLATED FORM
264
+ '\ufeca' # 0xD8 -> ARABIC LETTER AIN FINAL FORM
265
+ '\ufecb' # 0xD9 -> ARABIC LETTER AIN INITIAL FORM
266
+ '\ufecc' # 0xDA -> ARABIC LETTER AIN MEDIAL FORM
267
+ '\ufecd' # 0xDB -> ARABIC LETTER GHAIN ISOLATED FORM
268
+ '\ufece' # 0xDC -> ARABIC LETTER GHAIN FINAL FORM
269
+ '\ufecf' # 0xDD -> ARABIC LETTER GHAIN INITIAL FORM
270
+ '\ufed0' # 0xDE -> ARABIC LETTER GHAIN MEDIAL FORM
271
+ '\ufed1' # 0xDF -> ARABIC LETTER FEH ISOLATED FORM
272
+ '\ufed3' # 0xE0 -> ARABIC LETTER FEH INITIAL FORM
273
+ '\ufed5' # 0xE1 -> ARABIC LETTER QAF ISOLATED FORM
274
+ '\ufed7' # 0xE2 -> ARABIC LETTER QAF INITIAL FORM
275
+ '\ufed9' # 0xE3 -> ARABIC LETTER KAF ISOLATED FORM
276
+ '\ufedb' # 0xE4 -> ARABIC LETTER KAF INITIAL FORM
277
+ '\ufb92' # 0xE5 -> ARABIC LETTER GAF ISOLATED FORM
278
+ '\ufb94' # 0xE6 -> ARABIC LETTER GAF INITIAL FORM
279
+ '\ufedd' # 0xE7 -> ARABIC LETTER LAM ISOLATED FORM
280
+ '\ufedf' # 0xE8 -> ARABIC LETTER LAM INITIAL FORM
281
+ '\ufee0' # 0xE9 -> ARABIC LETTER LAM MEDIAL FORM
282
+ '\ufee1' # 0xEA -> ARABIC LETTER MEEM ISOLATED FORM
283
+ '\ufee3' # 0xEB -> ARABIC LETTER MEEM INITIAL FORM
284
+ '\ufb9e' # 0xEC -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
285
+ '\ufee5' # 0xED -> ARABIC LETTER NOON ISOLATED FORM
286
+ '\ufee7' # 0xEE -> ARABIC LETTER NOON INITIAL FORM
287
+ '\ufe85' # 0xEF -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
288
+ '\ufeed' # 0xF0 -> ARABIC LETTER WAW ISOLATED FORM
289
+ '\ufba6' # 0xF1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
290
+ '\ufba8' # 0xF2 -> ARABIC LETTER HEH GOAL INITIAL FORM
291
+ '\ufba9' # 0xF3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
292
+ '\ufbaa' # 0xF4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
293
+ '\ufe80' # 0xF5 -> ARABIC LETTER HAMZA ISOLATED FORM
294
+ '\ufe89' # 0xF6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
295
+ '\ufe8a' # 0xF7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
296
+ '\ufe8b' # 0xF8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
297
+ '\ufef1' # 0xF9 -> ARABIC LETTER YEH ISOLATED FORM
298
+ '\ufef2' # 0xFA -> ARABIC LETTER YEH FINAL FORM
299
+ '\ufef3' # 0xFB -> ARABIC LETTER YEH INITIAL FORM
300
+ '\ufbb0' # 0xFC -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
301
+ '\ufbae' # 0xFD -> ARABIC LETTER YEH BARREE ISOLATED FORM
302
+ '\ufe7c' # 0xFE -> ARABIC SHADDA ISOLATED FORM
303
+ '\ufe7d' # 0xFF -> ARABIC SHADDA MEDIAL FORM
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1125.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec for CP1125
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1125',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x0410, # CYRILLIC CAPITAL LETTER A
49
+ 0x0081: 0x0411, # CYRILLIC CAPITAL LETTER BE
50
+ 0x0082: 0x0412, # CYRILLIC CAPITAL LETTER VE
51
+ 0x0083: 0x0413, # CYRILLIC CAPITAL LETTER GHE
52
+ 0x0084: 0x0414, # CYRILLIC CAPITAL LETTER DE
53
+ 0x0085: 0x0415, # CYRILLIC CAPITAL LETTER IE
54
+ 0x0086: 0x0416, # CYRILLIC CAPITAL LETTER ZHE
55
+ 0x0087: 0x0417, # CYRILLIC CAPITAL LETTER ZE
56
+ 0x0088: 0x0418, # CYRILLIC CAPITAL LETTER I
57
+ 0x0089: 0x0419, # CYRILLIC CAPITAL LETTER SHORT I
58
+ 0x008a: 0x041a, # CYRILLIC CAPITAL LETTER KA
59
+ 0x008b: 0x041b, # CYRILLIC CAPITAL LETTER EL
60
+ 0x008c: 0x041c, # CYRILLIC CAPITAL LETTER EM
61
+ 0x008d: 0x041d, # CYRILLIC CAPITAL LETTER EN
62
+ 0x008e: 0x041e, # CYRILLIC CAPITAL LETTER O
63
+ 0x008f: 0x041f, # CYRILLIC CAPITAL LETTER PE
64
+ 0x0090: 0x0420, # CYRILLIC CAPITAL LETTER ER
65
+ 0x0091: 0x0421, # CYRILLIC CAPITAL LETTER ES
66
+ 0x0092: 0x0422, # CYRILLIC CAPITAL LETTER TE
67
+ 0x0093: 0x0423, # CYRILLIC CAPITAL LETTER U
68
+ 0x0094: 0x0424, # CYRILLIC CAPITAL LETTER EF
69
+ 0x0095: 0x0425, # CYRILLIC CAPITAL LETTER HA
70
+ 0x0096: 0x0426, # CYRILLIC CAPITAL LETTER TSE
71
+ 0x0097: 0x0427, # CYRILLIC CAPITAL LETTER CHE
72
+ 0x0098: 0x0428, # CYRILLIC CAPITAL LETTER SHA
73
+ 0x0099: 0x0429, # CYRILLIC CAPITAL LETTER SHCHA
74
+ 0x009a: 0x042a, # CYRILLIC CAPITAL LETTER HARD SIGN
75
+ 0x009b: 0x042b, # CYRILLIC CAPITAL LETTER YERU
76
+ 0x009c: 0x042c, # CYRILLIC CAPITAL LETTER SOFT SIGN
77
+ 0x009d: 0x042d, # CYRILLIC CAPITAL LETTER E
78
+ 0x009e: 0x042e, # CYRILLIC CAPITAL LETTER YU
79
+ 0x009f: 0x042f, # CYRILLIC CAPITAL LETTER YA
80
+ 0x00a0: 0x0430, # CYRILLIC SMALL LETTER A
81
+ 0x00a1: 0x0431, # CYRILLIC SMALL LETTER BE
82
+ 0x00a2: 0x0432, # CYRILLIC SMALL LETTER VE
83
+ 0x00a3: 0x0433, # CYRILLIC SMALL LETTER GHE
84
+ 0x00a4: 0x0434, # CYRILLIC SMALL LETTER DE
85
+ 0x00a5: 0x0435, # CYRILLIC SMALL LETTER IE
86
+ 0x00a6: 0x0436, # CYRILLIC SMALL LETTER ZHE
87
+ 0x00a7: 0x0437, # CYRILLIC SMALL LETTER ZE
88
+ 0x00a8: 0x0438, # CYRILLIC SMALL LETTER I
89
+ 0x00a9: 0x0439, # CYRILLIC SMALL LETTER SHORT I
90
+ 0x00aa: 0x043a, # CYRILLIC SMALL LETTER KA
91
+ 0x00ab: 0x043b, # CYRILLIC SMALL LETTER EL
92
+ 0x00ac: 0x043c, # CYRILLIC SMALL LETTER EM
93
+ 0x00ad: 0x043d, # CYRILLIC SMALL LETTER EN
94
+ 0x00ae: 0x043e, # CYRILLIC SMALL LETTER O
95
+ 0x00af: 0x043f, # CYRILLIC SMALL LETTER PE
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x0440, # CYRILLIC SMALL LETTER ER
145
+ 0x00e1: 0x0441, # CYRILLIC SMALL LETTER ES
146
+ 0x00e2: 0x0442, # CYRILLIC SMALL LETTER TE
147
+ 0x00e3: 0x0443, # CYRILLIC SMALL LETTER U
148
+ 0x00e4: 0x0444, # CYRILLIC SMALL LETTER EF
149
+ 0x00e5: 0x0445, # CYRILLIC SMALL LETTER HA
150
+ 0x00e6: 0x0446, # CYRILLIC SMALL LETTER TSE
151
+ 0x00e7: 0x0447, # CYRILLIC SMALL LETTER CHE
152
+ 0x00e8: 0x0448, # CYRILLIC SMALL LETTER SHA
153
+ 0x00e9: 0x0449, # CYRILLIC SMALL LETTER SHCHA
154
+ 0x00ea: 0x044a, # CYRILLIC SMALL LETTER HARD SIGN
155
+ 0x00eb: 0x044b, # CYRILLIC SMALL LETTER YERU
156
+ 0x00ec: 0x044c, # CYRILLIC SMALL LETTER SOFT SIGN
157
+ 0x00ed: 0x044d, # CYRILLIC SMALL LETTER E
158
+ 0x00ee: 0x044e, # CYRILLIC SMALL LETTER YU
159
+ 0x00ef: 0x044f, # CYRILLIC SMALL LETTER YA
160
+ 0x00f0: 0x0401, # CYRILLIC CAPITAL LETTER IO
161
+ 0x00f1: 0x0451, # CYRILLIC SMALL LETTER IO
162
+ 0x00f2: 0x0490, # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
163
+ 0x00f3: 0x0491, # CYRILLIC SMALL LETTER GHE WITH UPTURN
164
+ 0x00f4: 0x0404, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
165
+ 0x00f5: 0x0454, # CYRILLIC SMALL LETTER UKRAINIAN IE
166
+ 0x00f6: 0x0406, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
167
+ 0x00f7: 0x0456, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
168
+ 0x00f8: 0x0407, # CYRILLIC CAPITAL LETTER YI
169
+ 0x00f9: 0x0457, # CYRILLIC SMALL LETTER YI
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x2116, # NUMERO SIGN
173
+ 0x00fd: 0x00a4, # CURRENCY SIGN
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\u0410' # 0x0080 -> CYRILLIC CAPITAL LETTER A
310
+ '\u0411' # 0x0081 -> CYRILLIC CAPITAL LETTER BE
311
+ '\u0412' # 0x0082 -> CYRILLIC CAPITAL LETTER VE
312
+ '\u0413' # 0x0083 -> CYRILLIC CAPITAL LETTER GHE
313
+ '\u0414' # 0x0084 -> CYRILLIC CAPITAL LETTER DE
314
+ '\u0415' # 0x0085 -> CYRILLIC CAPITAL LETTER IE
315
+ '\u0416' # 0x0086 -> CYRILLIC CAPITAL LETTER ZHE
316
+ '\u0417' # 0x0087 -> CYRILLIC CAPITAL LETTER ZE
317
+ '\u0418' # 0x0088 -> CYRILLIC CAPITAL LETTER I
318
+ '\u0419' # 0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
319
+ '\u041a' # 0x008a -> CYRILLIC CAPITAL LETTER KA
320
+ '\u041b' # 0x008b -> CYRILLIC CAPITAL LETTER EL
321
+ '\u041c' # 0x008c -> CYRILLIC CAPITAL LETTER EM
322
+ '\u041d' # 0x008d -> CYRILLIC CAPITAL LETTER EN
323
+ '\u041e' # 0x008e -> CYRILLIC CAPITAL LETTER O
324
+ '\u041f' # 0x008f -> CYRILLIC CAPITAL LETTER PE
325
+ '\u0420' # 0x0090 -> CYRILLIC CAPITAL LETTER ER
326
+ '\u0421' # 0x0091 -> CYRILLIC CAPITAL LETTER ES
327
+ '\u0422' # 0x0092 -> CYRILLIC CAPITAL LETTER TE
328
+ '\u0423' # 0x0093 -> CYRILLIC CAPITAL LETTER U
329
+ '\u0424' # 0x0094 -> CYRILLIC CAPITAL LETTER EF
330
+ '\u0425' # 0x0095 -> CYRILLIC CAPITAL LETTER HA
331
+ '\u0426' # 0x0096 -> CYRILLIC CAPITAL LETTER TSE
332
+ '\u0427' # 0x0097 -> CYRILLIC CAPITAL LETTER CHE
333
+ '\u0428' # 0x0098 -> CYRILLIC CAPITAL LETTER SHA
334
+ '\u0429' # 0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
335
+ '\u042a' # 0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
336
+ '\u042b' # 0x009b -> CYRILLIC CAPITAL LETTER YERU
337
+ '\u042c' # 0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
338
+ '\u042d' # 0x009d -> CYRILLIC CAPITAL LETTER E
339
+ '\u042e' # 0x009e -> CYRILLIC CAPITAL LETTER YU
340
+ '\u042f' # 0x009f -> CYRILLIC CAPITAL LETTER YA
341
+ '\u0430' # 0x00a0 -> CYRILLIC SMALL LETTER A
342
+ '\u0431' # 0x00a1 -> CYRILLIC SMALL LETTER BE
343
+ '\u0432' # 0x00a2 -> CYRILLIC SMALL LETTER VE
344
+ '\u0433' # 0x00a3 -> CYRILLIC SMALL LETTER GHE
345
+ '\u0434' # 0x00a4 -> CYRILLIC SMALL LETTER DE
346
+ '\u0435' # 0x00a5 -> CYRILLIC SMALL LETTER IE
347
+ '\u0436' # 0x00a6 -> CYRILLIC SMALL LETTER ZHE
348
+ '\u0437' # 0x00a7 -> CYRILLIC SMALL LETTER ZE
349
+ '\u0438' # 0x00a8 -> CYRILLIC SMALL LETTER I
350
+ '\u0439' # 0x00a9 -> CYRILLIC SMALL LETTER SHORT I
351
+ '\u043a' # 0x00aa -> CYRILLIC SMALL LETTER KA
352
+ '\u043b' # 0x00ab -> CYRILLIC SMALL LETTER EL
353
+ '\u043c' # 0x00ac -> CYRILLIC SMALL LETTER EM
354
+ '\u043d' # 0x00ad -> CYRILLIC SMALL LETTER EN
355
+ '\u043e' # 0x00ae -> CYRILLIC SMALL LETTER O
356
+ '\u043f' # 0x00af -> CYRILLIC SMALL LETTER PE
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u0440' # 0x00e0 -> CYRILLIC SMALL LETTER ER
406
+ '\u0441' # 0x00e1 -> CYRILLIC SMALL LETTER ES
407
+ '\u0442' # 0x00e2 -> CYRILLIC SMALL LETTER TE
408
+ '\u0443' # 0x00e3 -> CYRILLIC SMALL LETTER U
409
+ '\u0444' # 0x00e4 -> CYRILLIC SMALL LETTER EF
410
+ '\u0445' # 0x00e5 -> CYRILLIC SMALL LETTER HA
411
+ '\u0446' # 0x00e6 -> CYRILLIC SMALL LETTER TSE
412
+ '\u0447' # 0x00e7 -> CYRILLIC SMALL LETTER CHE
413
+ '\u0448' # 0x00e8 -> CYRILLIC SMALL LETTER SHA
414
+ '\u0449' # 0x00e9 -> CYRILLIC SMALL LETTER SHCHA
415
+ '\u044a' # 0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
416
+ '\u044b' # 0x00eb -> CYRILLIC SMALL LETTER YERU
417
+ '\u044c' # 0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
418
+ '\u044d' # 0x00ed -> CYRILLIC SMALL LETTER E
419
+ '\u044e' # 0x00ee -> CYRILLIC SMALL LETTER YU
420
+ '\u044f' # 0x00ef -> CYRILLIC SMALL LETTER YA
421
+ '\u0401' # 0x00f0 -> CYRILLIC CAPITAL LETTER IO
422
+ '\u0451' # 0x00f1 -> CYRILLIC SMALL LETTER IO
423
+ '\u0490' # 0x00f2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
424
+ '\u0491' # 0x00f3 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
425
+ '\u0404' # 0x00f4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
426
+ '\u0454' # 0x00f5 -> CYRILLIC SMALL LETTER UKRAINIAN IE
427
+ '\u0406' # 0x00f6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
428
+ '\u0456' # 0x00f7 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
429
+ '\u0407' # 0x00f8 -> CYRILLIC CAPITAL LETTER YI
430
+ '\u0457' # 0x00f9 -> CYRILLIC SMALL LETTER YI
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u2116' # 0x00fc -> NUMERO SIGN
434
+ '\xa4' # 0x00fd -> CURRENCY SIGN
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a4: 0x00fd, # CURRENCY SIGN
572
+ 0x00b7: 0x00fa, # MIDDLE DOT
573
+ 0x0401: 0x00f0, # CYRILLIC CAPITAL LETTER IO
574
+ 0x0404: 0x00f4, # CYRILLIC CAPITAL LETTER UKRAINIAN IE
575
+ 0x0406: 0x00f6, # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
576
+ 0x0407: 0x00f8, # CYRILLIC CAPITAL LETTER YI
577
+ 0x0410: 0x0080, # CYRILLIC CAPITAL LETTER A
578
+ 0x0411: 0x0081, # CYRILLIC CAPITAL LETTER BE
579
+ 0x0412: 0x0082, # CYRILLIC CAPITAL LETTER VE
580
+ 0x0413: 0x0083, # CYRILLIC CAPITAL LETTER GHE
581
+ 0x0414: 0x0084, # CYRILLIC CAPITAL LETTER DE
582
+ 0x0415: 0x0085, # CYRILLIC CAPITAL LETTER IE
583
+ 0x0416: 0x0086, # CYRILLIC CAPITAL LETTER ZHE
584
+ 0x0417: 0x0087, # CYRILLIC CAPITAL LETTER ZE
585
+ 0x0418: 0x0088, # CYRILLIC CAPITAL LETTER I
586
+ 0x0419: 0x0089, # CYRILLIC CAPITAL LETTER SHORT I
587
+ 0x041a: 0x008a, # CYRILLIC CAPITAL LETTER KA
588
+ 0x041b: 0x008b, # CYRILLIC CAPITAL LETTER EL
589
+ 0x041c: 0x008c, # CYRILLIC CAPITAL LETTER EM
590
+ 0x041d: 0x008d, # CYRILLIC CAPITAL LETTER EN
591
+ 0x041e: 0x008e, # CYRILLIC CAPITAL LETTER O
592
+ 0x041f: 0x008f, # CYRILLIC CAPITAL LETTER PE
593
+ 0x0420: 0x0090, # CYRILLIC CAPITAL LETTER ER
594
+ 0x0421: 0x0091, # CYRILLIC CAPITAL LETTER ES
595
+ 0x0422: 0x0092, # CYRILLIC CAPITAL LETTER TE
596
+ 0x0423: 0x0093, # CYRILLIC CAPITAL LETTER U
597
+ 0x0424: 0x0094, # CYRILLIC CAPITAL LETTER EF
598
+ 0x0425: 0x0095, # CYRILLIC CAPITAL LETTER HA
599
+ 0x0426: 0x0096, # CYRILLIC CAPITAL LETTER TSE
600
+ 0x0427: 0x0097, # CYRILLIC CAPITAL LETTER CHE
601
+ 0x0428: 0x0098, # CYRILLIC CAPITAL LETTER SHA
602
+ 0x0429: 0x0099, # CYRILLIC CAPITAL LETTER SHCHA
603
+ 0x042a: 0x009a, # CYRILLIC CAPITAL LETTER HARD SIGN
604
+ 0x042b: 0x009b, # CYRILLIC CAPITAL LETTER YERU
605
+ 0x042c: 0x009c, # CYRILLIC CAPITAL LETTER SOFT SIGN
606
+ 0x042d: 0x009d, # CYRILLIC CAPITAL LETTER E
607
+ 0x042e: 0x009e, # CYRILLIC CAPITAL LETTER YU
608
+ 0x042f: 0x009f, # CYRILLIC CAPITAL LETTER YA
609
+ 0x0430: 0x00a0, # CYRILLIC SMALL LETTER A
610
+ 0x0431: 0x00a1, # CYRILLIC SMALL LETTER BE
611
+ 0x0432: 0x00a2, # CYRILLIC SMALL LETTER VE
612
+ 0x0433: 0x00a3, # CYRILLIC SMALL LETTER GHE
613
+ 0x0434: 0x00a4, # CYRILLIC SMALL LETTER DE
614
+ 0x0435: 0x00a5, # CYRILLIC SMALL LETTER IE
615
+ 0x0436: 0x00a6, # CYRILLIC SMALL LETTER ZHE
616
+ 0x0437: 0x00a7, # CYRILLIC SMALL LETTER ZE
617
+ 0x0438: 0x00a8, # CYRILLIC SMALL LETTER I
618
+ 0x0439: 0x00a9, # CYRILLIC SMALL LETTER SHORT I
619
+ 0x043a: 0x00aa, # CYRILLIC SMALL LETTER KA
620
+ 0x043b: 0x00ab, # CYRILLIC SMALL LETTER EL
621
+ 0x043c: 0x00ac, # CYRILLIC SMALL LETTER EM
622
+ 0x043d: 0x00ad, # CYRILLIC SMALL LETTER EN
623
+ 0x043e: 0x00ae, # CYRILLIC SMALL LETTER O
624
+ 0x043f: 0x00af, # CYRILLIC SMALL LETTER PE
625
+ 0x0440: 0x00e0, # CYRILLIC SMALL LETTER ER
626
+ 0x0441: 0x00e1, # CYRILLIC SMALL LETTER ES
627
+ 0x0442: 0x00e2, # CYRILLIC SMALL LETTER TE
628
+ 0x0443: 0x00e3, # CYRILLIC SMALL LETTER U
629
+ 0x0444: 0x00e4, # CYRILLIC SMALL LETTER EF
630
+ 0x0445: 0x00e5, # CYRILLIC SMALL LETTER HA
631
+ 0x0446: 0x00e6, # CYRILLIC SMALL LETTER TSE
632
+ 0x0447: 0x00e7, # CYRILLIC SMALL LETTER CHE
633
+ 0x0448: 0x00e8, # CYRILLIC SMALL LETTER SHA
634
+ 0x0449: 0x00e9, # CYRILLIC SMALL LETTER SHCHA
635
+ 0x044a: 0x00ea, # CYRILLIC SMALL LETTER HARD SIGN
636
+ 0x044b: 0x00eb, # CYRILLIC SMALL LETTER YERU
637
+ 0x044c: 0x00ec, # CYRILLIC SMALL LETTER SOFT SIGN
638
+ 0x044d: 0x00ed, # CYRILLIC SMALL LETTER E
639
+ 0x044e: 0x00ee, # CYRILLIC SMALL LETTER YU
640
+ 0x044f: 0x00ef, # CYRILLIC SMALL LETTER YA
641
+ 0x0451: 0x00f1, # CYRILLIC SMALL LETTER IO
642
+ 0x0454: 0x00f5, # CYRILLIC SMALL LETTER UKRAINIAN IE
643
+ 0x0456: 0x00f7, # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
644
+ 0x0457: 0x00f9, # CYRILLIC SMALL LETTER YI
645
+ 0x0490: 0x00f2, # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
646
+ 0x0491: 0x00f3, # CYRILLIC SMALL LETTER GHE WITH UPTURN
647
+ 0x2116: 0x00fc, # NUMERO SIGN
648
+ 0x221a: 0x00fb, # SQUARE ROOT
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1140.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1140 generated from 'python-mappings/CP1140.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1140',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x9c' # 0x04 -> CONTROL
53
+ '\t' # 0x05 -> HORIZONTAL TABULATION
54
+ '\x86' # 0x06 -> CONTROL
55
+ '\x7f' # 0x07 -> DELETE
56
+ '\x97' # 0x08 -> CONTROL
57
+ '\x8d' # 0x09 -> CONTROL
58
+ '\x8e' # 0x0A -> CONTROL
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x9d' # 0x14 -> CONTROL
69
+ '\x85' # 0x15 -> CONTROL
70
+ '\x08' # 0x16 -> BACKSPACE
71
+ '\x87' # 0x17 -> CONTROL
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x92' # 0x1A -> CONTROL
75
+ '\x8f' # 0x1B -> CONTROL
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ '\x80' # 0x20 -> CONTROL
81
+ '\x81' # 0x21 -> CONTROL
82
+ '\x82' # 0x22 -> CONTROL
83
+ '\x83' # 0x23 -> CONTROL
84
+ '\x84' # 0x24 -> CONTROL
85
+ '\n' # 0x25 -> LINE FEED
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK
87
+ '\x1b' # 0x27 -> ESCAPE
88
+ '\x88' # 0x28 -> CONTROL
89
+ '\x89' # 0x29 -> CONTROL
90
+ '\x8a' # 0x2A -> CONTROL
91
+ '\x8b' # 0x2B -> CONTROL
92
+ '\x8c' # 0x2C -> CONTROL
93
+ '\x05' # 0x2D -> ENQUIRY
94
+ '\x06' # 0x2E -> ACKNOWLEDGE
95
+ '\x07' # 0x2F -> BELL
96
+ '\x90' # 0x30 -> CONTROL
97
+ '\x91' # 0x31 -> CONTROL
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE
99
+ '\x93' # 0x33 -> CONTROL
100
+ '\x94' # 0x34 -> CONTROL
101
+ '\x95' # 0x35 -> CONTROL
102
+ '\x96' # 0x36 -> CONTROL
103
+ '\x04' # 0x37 -> END OF TRANSMISSION
104
+ '\x98' # 0x38 -> CONTROL
105
+ '\x99' # 0x39 -> CONTROL
106
+ '\x9a' # 0x3A -> CONTROL
107
+ '\x9b' # 0x3B -> CONTROL
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE
110
+ '\x9e' # 0x3E -> CONTROL
111
+ '\x1a' # 0x3F -> SUBSTITUTE
112
+ ' ' # 0x40 -> SPACE
113
+ '\xa0' # 0x41 -> NO-BREAK SPACE
114
+ '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
115
+ '\xe4' # 0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
116
+ '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
117
+ '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
118
+ '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
119
+ '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
120
+ '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
121
+ '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
122
+ '\xa2' # 0x4A -> CENT SIGN
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '|' # 0x4F -> VERTICAL LINE
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
130
+ '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
131
+ '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
132
+ '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
133
+ '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
134
+ '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
135
+ '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
136
+ '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
137
+ '\xdf' # 0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
138
+ '!' # 0x5A -> EXCLAMATION MARK
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '\xac' # 0x5F -> NOT SIGN
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
147
+ '\xc4' # 0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
148
+ '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
149
+ '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
150
+ '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
151
+ '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
152
+ '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
153
+ '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
154
+ '\xa6' # 0x6A -> BROKEN BAR
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
161
+ '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
162
+ '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
163
+ '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
164
+ '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
165
+ '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
166
+ '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
167
+ '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
168
+ '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '@' # 0x7C -> COMMERCIAL AT
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
189
+ '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
190
+ '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
203
+ '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
204
+ '\xe6' # 0x9C -> LATIN SMALL LIGATURE AE
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\xc6' # 0x9E -> LATIN CAPITAL LIGATURE AE
207
+ '\u20ac' # 0x9F -> EURO SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '~' # 0xA1 -> TILDE
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
219
+ '\xbf' # 0xAB -> INVERTED QUESTION MARK
220
+ '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
221
+ '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
222
+ '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '^' # 0xB0 -> CIRCUMFLEX ACCENT
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '\xa7' # 0xB5 -> SECTION SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '[' # 0xBA -> LEFT SQUARE BRACKET
235
+ ']' # 0xBB -> RIGHT SQUARE BRACKET
236
+ '\xaf' # 0xBC -> MACRON
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '{' # 0xC0 -> LEFT CURLY BRACKET
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
252
+ '\xf6' # 0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
253
+ '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
254
+ '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
255
+ '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
256
+ '}' # 0xD0 -> RIGHT CURLY BRACKET
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
268
+ '\xfc' # 0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
269
+ '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
270
+ '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
271
+ '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
272
+ '\\' # 0xE0 -> REVERSE SOLIDUS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
284
+ '\xd6' # 0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
285
+ '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
300
+ '\xdc' # 0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
301
+ '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
302
+ '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
303
+ '\x9f' # 0xFF -> CONTROL
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1252.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1252 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1252',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\u017d' # 0x8E -> LATIN CAPITAL LETTER Z WITH CARON
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\u02dc' # 0x98 -> SMALL TILDE
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\u017e' # 0x9E -> LATIN SMALL LETTER Z WITH CARON
207
+ '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\xd0' # 0xD0 -> LATIN CAPITAL LETTER ETH
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\xde' # 0xDE -> LATIN CAPITAL LETTER THORN
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\xf0' # 0xF0 -> LATIN SMALL LETTER ETH
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\xfe' # 0xFE -> LATIN SMALL LETTER THORN
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1253.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1253 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1253',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\ufffe' # 0x88 -> UNDEFINED
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\ufffe' # 0x8A -> UNDEFINED
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\ufffe' # 0x8C -> UNDEFINED
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\ufffe' # 0x98 -> UNDEFINED
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\ufffe' # 0x9A -> UNDEFINED
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\ufffe' # 0x9C -> UNDEFINED
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\ufffe' # 0x9F -> UNDEFINED
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0385' # 0xA1 -> GREEK DIALYTIKA TONOS
210
+ '\u0386' # 0xA2 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\ufffe' # 0xAA -> UNDEFINED
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\u2015' # 0xAF -> HORIZONTAL BAR
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\u0384' # 0xB4 -> GREEK TONOS
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u0388' # 0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
233
+ '\u0389' # 0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
234
+ '\u038a' # 0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u038c' # 0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\u038e' # 0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
239
+ '\u038f' # 0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
240
+ '\u0390' # 0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
241
+ '\u0391' # 0xC1 -> GREEK CAPITAL LETTER ALPHA
242
+ '\u0392' # 0xC2 -> GREEK CAPITAL LETTER BETA
243
+ '\u0393' # 0xC3 -> GREEK CAPITAL LETTER GAMMA
244
+ '\u0394' # 0xC4 -> GREEK CAPITAL LETTER DELTA
245
+ '\u0395' # 0xC5 -> GREEK CAPITAL LETTER EPSILON
246
+ '\u0396' # 0xC6 -> GREEK CAPITAL LETTER ZETA
247
+ '\u0397' # 0xC7 -> GREEK CAPITAL LETTER ETA
248
+ '\u0398' # 0xC8 -> GREEK CAPITAL LETTER THETA
249
+ '\u0399' # 0xC9 -> GREEK CAPITAL LETTER IOTA
250
+ '\u039a' # 0xCA -> GREEK CAPITAL LETTER KAPPA
251
+ '\u039b' # 0xCB -> GREEK CAPITAL LETTER LAMDA
252
+ '\u039c' # 0xCC -> GREEK CAPITAL LETTER MU
253
+ '\u039d' # 0xCD -> GREEK CAPITAL LETTER NU
254
+ '\u039e' # 0xCE -> GREEK CAPITAL LETTER XI
255
+ '\u039f' # 0xCF -> GREEK CAPITAL LETTER OMICRON
256
+ '\u03a0' # 0xD0 -> GREEK CAPITAL LETTER PI
257
+ '\u03a1' # 0xD1 -> GREEK CAPITAL LETTER RHO
258
+ '\ufffe' # 0xD2 -> UNDEFINED
259
+ '\u03a3' # 0xD3 -> GREEK CAPITAL LETTER SIGMA
260
+ '\u03a4' # 0xD4 -> GREEK CAPITAL LETTER TAU
261
+ '\u03a5' # 0xD5 -> GREEK CAPITAL LETTER UPSILON
262
+ '\u03a6' # 0xD6 -> GREEK CAPITAL LETTER PHI
263
+ '\u03a7' # 0xD7 -> GREEK CAPITAL LETTER CHI
264
+ '\u03a8' # 0xD8 -> GREEK CAPITAL LETTER PSI
265
+ '\u03a9' # 0xD9 -> GREEK CAPITAL LETTER OMEGA
266
+ '\u03aa' # 0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
267
+ '\u03ab' # 0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
268
+ '\u03ac' # 0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
269
+ '\u03ad' # 0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
270
+ '\u03ae' # 0xDE -> GREEK SMALL LETTER ETA WITH TONOS
271
+ '\u03af' # 0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
272
+ '\u03b0' # 0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
273
+ '\u03b1' # 0xE1 -> GREEK SMALL LETTER ALPHA
274
+ '\u03b2' # 0xE2 -> GREEK SMALL LETTER BETA
275
+ '\u03b3' # 0xE3 -> GREEK SMALL LETTER GAMMA
276
+ '\u03b4' # 0xE4 -> GREEK SMALL LETTER DELTA
277
+ '\u03b5' # 0xE5 -> GREEK SMALL LETTER EPSILON
278
+ '\u03b6' # 0xE6 -> GREEK SMALL LETTER ZETA
279
+ '\u03b7' # 0xE7 -> GREEK SMALL LETTER ETA
280
+ '\u03b8' # 0xE8 -> GREEK SMALL LETTER THETA
281
+ '\u03b9' # 0xE9 -> GREEK SMALL LETTER IOTA
282
+ '\u03ba' # 0xEA -> GREEK SMALL LETTER KAPPA
283
+ '\u03bb' # 0xEB -> GREEK SMALL LETTER LAMDA
284
+ '\u03bc' # 0xEC -> GREEK SMALL LETTER MU
285
+ '\u03bd' # 0xED -> GREEK SMALL LETTER NU
286
+ '\u03be' # 0xEE -> GREEK SMALL LETTER XI
287
+ '\u03bf' # 0xEF -> GREEK SMALL LETTER OMICRON
288
+ '\u03c0' # 0xF0 -> GREEK SMALL LETTER PI
289
+ '\u03c1' # 0xF1 -> GREEK SMALL LETTER RHO
290
+ '\u03c2' # 0xF2 -> GREEK SMALL LETTER FINAL SIGMA
291
+ '\u03c3' # 0xF3 -> GREEK SMALL LETTER SIGMA
292
+ '\u03c4' # 0xF4 -> GREEK SMALL LETTER TAU
293
+ '\u03c5' # 0xF5 -> GREEK SMALL LETTER UPSILON
294
+ '\u03c6' # 0xF6 -> GREEK SMALL LETTER PHI
295
+ '\u03c7' # 0xF7 -> GREEK SMALL LETTER CHI
296
+ '\u03c8' # 0xF8 -> GREEK SMALL LETTER PSI
297
+ '\u03c9' # 0xF9 -> GREEK SMALL LETTER OMEGA
298
+ '\u03ca' # 0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
299
+ '\u03cb' # 0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
300
+ '\u03cc' # 0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
301
+ '\u03cd' # 0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
302
+ '\u03ce' # 0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
303
+ '\ufffe' # 0xFF -> UNDEFINED
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1254.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1254 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1254',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\ufffe' # 0x81 -> UNDEFINED
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\u0160' # 0x8A -> LATIN CAPITAL LETTER S WITH CARON
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
189
+ '\ufffe' # 0x8D -> UNDEFINED
190
+ '\ufffe' # 0x8E -> UNDEFINED
191
+ '\ufffe' # 0x8F -> UNDEFINED
192
+ '\ufffe' # 0x90 -> UNDEFINED
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\u02dc' # 0x98 -> SMALL TILDE
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\u0161' # 0x9A -> LATIN SMALL LETTER S WITH CARON
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
205
+ '\ufffe' # 0x9D -> UNDEFINED
206
+ '\ufffe' # 0x9E -> UNDEFINED
207
+ '\u0178' # 0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\xa1' # 0xA1 -> INVERTED EXCLAMATION MARK
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xaa' # 0xAA -> FEMININE ORDINAL INDICATOR
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xba' # 0xBA -> MASCULINE ORDINAL INDICATOR
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\xbf' # 0xBF -> INVERTED QUESTION MARK
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\u011e' # 0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\u0130' # 0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
270
+ '\u015e' # 0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\u011f' # 0xF0 -> LATIN SMALL LETTER G WITH BREVE
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u0131' # 0xFD -> LATIN SMALL LETTER DOTLESS I
302
+ '\u015f' # 0xFE -> LATIN SMALL LETTER S WITH CEDILLA
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp1256.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp1256 generated from 'MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp1256',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\u20ac' # 0x80 -> EURO SIGN
177
+ '\u067e' # 0x81 -> ARABIC LETTER PEH
178
+ '\u201a' # 0x82 -> SINGLE LOW-9 QUOTATION MARK
179
+ '\u0192' # 0x83 -> LATIN SMALL LETTER F WITH HOOK
180
+ '\u201e' # 0x84 -> DOUBLE LOW-9 QUOTATION MARK
181
+ '\u2026' # 0x85 -> HORIZONTAL ELLIPSIS
182
+ '\u2020' # 0x86 -> DAGGER
183
+ '\u2021' # 0x87 -> DOUBLE DAGGER
184
+ '\u02c6' # 0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
185
+ '\u2030' # 0x89 -> PER MILLE SIGN
186
+ '\u0679' # 0x8A -> ARABIC LETTER TTEH
187
+ '\u2039' # 0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
188
+ '\u0152' # 0x8C -> LATIN CAPITAL LIGATURE OE
189
+ '\u0686' # 0x8D -> ARABIC LETTER TCHEH
190
+ '\u0698' # 0x8E -> ARABIC LETTER JEH
191
+ '\u0688' # 0x8F -> ARABIC LETTER DDAL
192
+ '\u06af' # 0x90 -> ARABIC LETTER GAF
193
+ '\u2018' # 0x91 -> LEFT SINGLE QUOTATION MARK
194
+ '\u2019' # 0x92 -> RIGHT SINGLE QUOTATION MARK
195
+ '\u201c' # 0x93 -> LEFT DOUBLE QUOTATION MARK
196
+ '\u201d' # 0x94 -> RIGHT DOUBLE QUOTATION MARK
197
+ '\u2022' # 0x95 -> BULLET
198
+ '\u2013' # 0x96 -> EN DASH
199
+ '\u2014' # 0x97 -> EM DASH
200
+ '\u06a9' # 0x98 -> ARABIC LETTER KEHEH
201
+ '\u2122' # 0x99 -> TRADE MARK SIGN
202
+ '\u0691' # 0x9A -> ARABIC LETTER RREH
203
+ '\u203a' # 0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
204
+ '\u0153' # 0x9C -> LATIN SMALL LIGATURE OE
205
+ '\u200c' # 0x9D -> ZERO WIDTH NON-JOINER
206
+ '\u200d' # 0x9E -> ZERO WIDTH JOINER
207
+ '\u06ba' # 0x9F -> ARABIC LETTER NOON GHUNNA
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u060c' # 0xA1 -> ARABIC COMMA
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u06be' # 0xAA -> ARABIC LETTER HEH DOACHASHMEE
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\u061b' # 0xBA -> ARABIC SEMICOLON
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\u061f' # 0xBF -> ARABIC QUESTION MARK
240
+ '\u06c1' # 0xC0 -> ARABIC LETTER HEH GOAL
241
+ '\u0621' # 0xC1 -> ARABIC LETTER HAMZA
242
+ '\u0622' # 0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
243
+ '\u0623' # 0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
244
+ '\u0624' # 0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
245
+ '\u0625' # 0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
246
+ '\u0626' # 0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
247
+ '\u0627' # 0xC7 -> ARABIC LETTER ALEF
248
+ '\u0628' # 0xC8 -> ARABIC LETTER BEH
249
+ '\u0629' # 0xC9 -> ARABIC LETTER TEH MARBUTA
250
+ '\u062a' # 0xCA -> ARABIC LETTER TEH
251
+ '\u062b' # 0xCB -> ARABIC LETTER THEH
252
+ '\u062c' # 0xCC -> ARABIC LETTER JEEM
253
+ '\u062d' # 0xCD -> ARABIC LETTER HAH
254
+ '\u062e' # 0xCE -> ARABIC LETTER KHAH
255
+ '\u062f' # 0xCF -> ARABIC LETTER DAL
256
+ '\u0630' # 0xD0 -> ARABIC LETTER THAL
257
+ '\u0631' # 0xD1 -> ARABIC LETTER REH
258
+ '\u0632' # 0xD2 -> ARABIC LETTER ZAIN
259
+ '\u0633' # 0xD3 -> ARABIC LETTER SEEN
260
+ '\u0634' # 0xD4 -> ARABIC LETTER SHEEN
261
+ '\u0635' # 0xD5 -> ARABIC LETTER SAD
262
+ '\u0636' # 0xD6 -> ARABIC LETTER DAD
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u0637' # 0xD8 -> ARABIC LETTER TAH
265
+ '\u0638' # 0xD9 -> ARABIC LETTER ZAH
266
+ '\u0639' # 0xDA -> ARABIC LETTER AIN
267
+ '\u063a' # 0xDB -> ARABIC LETTER GHAIN
268
+ '\u0640' # 0xDC -> ARABIC TATWEEL
269
+ '\u0641' # 0xDD -> ARABIC LETTER FEH
270
+ '\u0642' # 0xDE -> ARABIC LETTER QAF
271
+ '\u0643' # 0xDF -> ARABIC LETTER KAF
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\u0644' # 0xE1 -> ARABIC LETTER LAM
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\u0645' # 0xE3 -> ARABIC LETTER MEEM
276
+ '\u0646' # 0xE4 -> ARABIC LETTER NOON
277
+ '\u0647' # 0xE5 -> ARABIC LETTER HEH
278
+ '\u0648' # 0xE6 -> ARABIC LETTER WAW
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u0649' # 0xEC -> ARABIC LETTER ALEF MAKSURA
285
+ '\u064a' # 0xED -> ARABIC LETTER YEH
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\u064b' # 0xF0 -> ARABIC FATHATAN
289
+ '\u064c' # 0xF1 -> ARABIC DAMMATAN
290
+ '\u064d' # 0xF2 -> ARABIC KASRATAN
291
+ '\u064e' # 0xF3 -> ARABIC FATHA
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u064f' # 0xF5 -> ARABIC DAMMA
294
+ '\u0650' # 0xF6 -> ARABIC KASRA
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u0651' # 0xF8 -> ARABIC SHADDA
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\u0652' # 0xFA -> ARABIC SUKUN
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\u200e' # 0xFD -> LEFT-TO-RIGHT MARK
302
+ '\u200f' # 0xFE -> RIGHT-TO-LEFT MARK
303
+ '\u06d2' # 0xFF -> ARABIC LETTER YEH BARREE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp273.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec cp273 generated from 'python-mappings/CP273.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp273',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL (NUL)
49
+ '\x01' # 0x01 -> START OF HEADING (SOH)
50
+ '\x02' # 0x02 -> START OF TEXT (STX)
51
+ '\x03' # 0x03 -> END OF TEXT (ETX)
52
+ '\x9c' # 0x04 -> STRING TERMINATOR (ST)
53
+ '\t' # 0x05 -> CHARACTER TABULATION (HT)
54
+ '\x86' # 0x06 -> START OF SELECTED AREA (SSA)
55
+ '\x7f' # 0x07 -> DELETE (DEL)
56
+ '\x97' # 0x08 -> END OF GUARDED AREA (EPA)
57
+ '\x8d' # 0x09 -> REVERSE LINE FEED (RI)
58
+ '\x8e' # 0x0A -> SINGLE-SHIFT TWO (SS2)
59
+ '\x0b' # 0x0B -> LINE TABULATION (VT)
60
+ '\x0c' # 0x0C -> FORM FEED (FF)
61
+ '\r' # 0x0D -> CARRIAGE RETURN (CR)
62
+ '\x0e' # 0x0E -> SHIFT OUT (SO)
63
+ '\x0f' # 0x0F -> SHIFT IN (SI)
64
+ '\x10' # 0x10 -> DATALINK ESCAPE (DLE)
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE (DC1)
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO (DC2)
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE (DC3)
68
+ '\x9d' # 0x14 -> OPERATING SYSTEM COMMAND (OSC)
69
+ '\x85' # 0x15 -> NEXT LINE (NEL)
70
+ '\x08' # 0x16 -> BACKSPACE (BS)
71
+ '\x87' # 0x17 -> END OF SELECTED AREA (ESA)
72
+ '\x18' # 0x18 -> CANCEL (CAN)
73
+ '\x19' # 0x19 -> END OF MEDIUM (EM)
74
+ '\x92' # 0x1A -> PRIVATE USE TWO (PU2)
75
+ '\x8f' # 0x1B -> SINGLE-SHIFT THREE (SS3)
76
+ '\x1c' # 0x1C -> FILE SEPARATOR (IS4)
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR (IS3)
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR (IS2)
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR (IS1)
80
+ '\x80' # 0x20 -> PADDING CHARACTER (PAD)
81
+ '\x81' # 0x21 -> HIGH OCTET PRESET (HOP)
82
+ '\x82' # 0x22 -> BREAK PERMITTED HERE (BPH)
83
+ '\x83' # 0x23 -> NO BREAK HERE (NBH)
84
+ '\x84' # 0x24 -> INDEX (IND)
85
+ '\n' # 0x25 -> LINE FEED (LF)
86
+ '\x17' # 0x26 -> END OF TRANSMISSION BLOCK (ETB)
87
+ '\x1b' # 0x27 -> ESCAPE (ESC)
88
+ '\x88' # 0x28 -> CHARACTER TABULATION SET (HTS)
89
+ '\x89' # 0x29 -> CHARACTER TABULATION WITH JUSTIFICATION (HTJ)
90
+ '\x8a' # 0x2A -> LINE TABULATION SET (VTS)
91
+ '\x8b' # 0x2B -> PARTIAL LINE FORWARD (PLD)
92
+ '\x8c' # 0x2C -> PARTIAL LINE BACKWARD (PLU)
93
+ '\x05' # 0x2D -> ENQUIRY (ENQ)
94
+ '\x06' # 0x2E -> ACKNOWLEDGE (ACK)
95
+ '\x07' # 0x2F -> BELL (BEL)
96
+ '\x90' # 0x30 -> DEVICE CONTROL STRING (DCS)
97
+ '\x91' # 0x31 -> PRIVATE USE ONE (PU1)
98
+ '\x16' # 0x32 -> SYNCHRONOUS IDLE (SYN)
99
+ '\x93' # 0x33 -> SET TRANSMIT STATE (STS)
100
+ '\x94' # 0x34 -> CANCEL CHARACTER (CCH)
101
+ '\x95' # 0x35 -> MESSAGE WAITING (MW)
102
+ '\x96' # 0x36 -> START OF GUARDED AREA (SPA)
103
+ '\x04' # 0x37 -> END OF TRANSMISSION (EOT)
104
+ '\x98' # 0x38 -> START OF STRING (SOS)
105
+ '\x99' # 0x39 -> SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI)
106
+ '\x9a' # 0x3A -> SINGLE CHARACTER INTRODUCER (SCI)
107
+ '\x9b' # 0x3B -> CONTROL SEQUENCE INTRODUCER (CSI)
108
+ '\x14' # 0x3C -> DEVICE CONTROL FOUR (DC4)
109
+ '\x15' # 0x3D -> NEGATIVE ACKNOWLEDGE (NAK)
110
+ '\x9e' # 0x3E -> PRIVACY MESSAGE (PM)
111
+ '\x1a' # 0x3F -> SUBSTITUTE (SUB)
112
+ ' ' # 0x40 -> SPACE
113
+ '\xa0' # 0x41 -> NO-BREAK SPACE
114
+ '\xe2' # 0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
115
+ '{' # 0x43 -> LEFT CURLY BRACKET
116
+ '\xe0' # 0x44 -> LATIN SMALL LETTER A WITH GRAVE
117
+ '\xe1' # 0x45 -> LATIN SMALL LETTER A WITH ACUTE
118
+ '\xe3' # 0x46 -> LATIN SMALL LETTER A WITH TILDE
119
+ '\xe5' # 0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
120
+ '\xe7' # 0x48 -> LATIN SMALL LETTER C WITH CEDILLA
121
+ '\xf1' # 0x49 -> LATIN SMALL LETTER N WITH TILDE
122
+ '\xc4' # 0x4A -> LATIN CAPITAL LETTER A WITH DIAERESIS
123
+ '.' # 0x4B -> FULL STOP
124
+ '<' # 0x4C -> LESS-THAN SIGN
125
+ '(' # 0x4D -> LEFT PARENTHESIS
126
+ '+' # 0x4E -> PLUS SIGN
127
+ '!' # 0x4F -> EXCLAMATION MARK
128
+ '&' # 0x50 -> AMPERSAND
129
+ '\xe9' # 0x51 -> LATIN SMALL LETTER E WITH ACUTE
130
+ '\xea' # 0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
131
+ '\xeb' # 0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
132
+ '\xe8' # 0x54 -> LATIN SMALL LETTER E WITH GRAVE
133
+ '\xed' # 0x55 -> LATIN SMALL LETTER I WITH ACUTE
134
+ '\xee' # 0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
135
+ '\xef' # 0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
136
+ '\xec' # 0x58 -> LATIN SMALL LETTER I WITH GRAVE
137
+ '~' # 0x59 -> TILDE
138
+ '\xdc' # 0x5A -> LATIN CAPITAL LETTER U WITH DIAERESIS
139
+ '$' # 0x5B -> DOLLAR SIGN
140
+ '*' # 0x5C -> ASTERISK
141
+ ')' # 0x5D -> RIGHT PARENTHESIS
142
+ ';' # 0x5E -> SEMICOLON
143
+ '^' # 0x5F -> CIRCUMFLEX ACCENT
144
+ '-' # 0x60 -> HYPHEN-MINUS
145
+ '/' # 0x61 -> SOLIDUS
146
+ '\xc2' # 0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
147
+ '[' # 0x63 -> LEFT SQUARE BRACKET
148
+ '\xc0' # 0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
149
+ '\xc1' # 0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
150
+ '\xc3' # 0x66 -> LATIN CAPITAL LETTER A WITH TILDE
151
+ '\xc5' # 0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
152
+ '\xc7' # 0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
153
+ '\xd1' # 0x69 -> LATIN CAPITAL LETTER N WITH TILDE
154
+ '\xf6' # 0x6A -> LATIN SMALL LETTER O WITH DIAERESIS
155
+ ',' # 0x6B -> COMMA
156
+ '%' # 0x6C -> PERCENT SIGN
157
+ '_' # 0x6D -> LOW LINE
158
+ '>' # 0x6E -> GREATER-THAN SIGN
159
+ '?' # 0x6F -> QUESTION MARK
160
+ '\xf8' # 0x70 -> LATIN SMALL LETTER O WITH STROKE
161
+ '\xc9' # 0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
162
+ '\xca' # 0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
163
+ '\xcb' # 0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
164
+ '\xc8' # 0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
165
+ '\xcd' # 0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
166
+ '\xce' # 0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
167
+ '\xcf' # 0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
168
+ '\xcc' # 0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
169
+ '`' # 0x79 -> GRAVE ACCENT
170
+ ':' # 0x7A -> COLON
171
+ '#' # 0x7B -> NUMBER SIGN
172
+ '\xa7' # 0x7C -> SECTION SIGN
173
+ "'" # 0x7D -> APOSTROPHE
174
+ '=' # 0x7E -> EQUALS SIGN
175
+ '"' # 0x7F -> QUOTATION MARK
176
+ '\xd8' # 0x80 -> LATIN CAPITAL LETTER O WITH STROKE
177
+ 'a' # 0x81 -> LATIN SMALL LETTER A
178
+ 'b' # 0x82 -> LATIN SMALL LETTER B
179
+ 'c' # 0x83 -> LATIN SMALL LETTER C
180
+ 'd' # 0x84 -> LATIN SMALL LETTER D
181
+ 'e' # 0x85 -> LATIN SMALL LETTER E
182
+ 'f' # 0x86 -> LATIN SMALL LETTER F
183
+ 'g' # 0x87 -> LATIN SMALL LETTER G
184
+ 'h' # 0x88 -> LATIN SMALL LETTER H
185
+ 'i' # 0x89 -> LATIN SMALL LETTER I
186
+ '\xab' # 0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
187
+ '\xbb' # 0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
188
+ '\xf0' # 0x8C -> LATIN SMALL LETTER ETH (Icelandic)
189
+ '\xfd' # 0x8D -> LATIN SMALL LETTER Y WITH ACUTE
190
+ '\xfe' # 0x8E -> LATIN SMALL LETTER THORN (Icelandic)
191
+ '\xb1' # 0x8F -> PLUS-MINUS SIGN
192
+ '\xb0' # 0x90 -> DEGREE SIGN
193
+ 'j' # 0x91 -> LATIN SMALL LETTER J
194
+ 'k' # 0x92 -> LATIN SMALL LETTER K
195
+ 'l' # 0x93 -> LATIN SMALL LETTER L
196
+ 'm' # 0x94 -> LATIN SMALL LETTER M
197
+ 'n' # 0x95 -> LATIN SMALL LETTER N
198
+ 'o' # 0x96 -> LATIN SMALL LETTER O
199
+ 'p' # 0x97 -> LATIN SMALL LETTER P
200
+ 'q' # 0x98 -> LATIN SMALL LETTER Q
201
+ 'r' # 0x99 -> LATIN SMALL LETTER R
202
+ '\xaa' # 0x9A -> FEMININE ORDINAL INDICATOR
203
+ '\xba' # 0x9B -> MASCULINE ORDINAL INDICATOR
204
+ '\xe6' # 0x9C -> LATIN SMALL LETTER AE
205
+ '\xb8' # 0x9D -> CEDILLA
206
+ '\xc6' # 0x9E -> LATIN CAPITAL LETTER AE
207
+ '\xa4' # 0x9F -> CURRENCY SIGN
208
+ '\xb5' # 0xA0 -> MICRO SIGN
209
+ '\xdf' # 0xA1 -> LATIN SMALL LETTER SHARP S (German)
210
+ 's' # 0xA2 -> LATIN SMALL LETTER S
211
+ 't' # 0xA3 -> LATIN SMALL LETTER T
212
+ 'u' # 0xA4 -> LATIN SMALL LETTER U
213
+ 'v' # 0xA5 -> LATIN SMALL LETTER V
214
+ 'w' # 0xA6 -> LATIN SMALL LETTER W
215
+ 'x' # 0xA7 -> LATIN SMALL LETTER X
216
+ 'y' # 0xA8 -> LATIN SMALL LETTER Y
217
+ 'z' # 0xA9 -> LATIN SMALL LETTER Z
218
+ '\xa1' # 0xAA -> INVERTED EXCLAMATION MARK
219
+ '\xbf' # 0xAB -> INVERTED QUESTION MARK
220
+ '\xd0' # 0xAC -> LATIN CAPITAL LETTER ETH (Icelandic)
221
+ '\xdd' # 0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
222
+ '\xde' # 0xAE -> LATIN CAPITAL LETTER THORN (Icelandic)
223
+ '\xae' # 0xAF -> REGISTERED SIGN
224
+ '\xa2' # 0xB0 -> CENT SIGN
225
+ '\xa3' # 0xB1 -> POUND SIGN
226
+ '\xa5' # 0xB2 -> YEN SIGN
227
+ '\xb7' # 0xB3 -> MIDDLE DOT
228
+ '\xa9' # 0xB4 -> COPYRIGHT SIGN
229
+ '@' # 0xB5 -> COMMERCIAL AT
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xbc' # 0xB7 -> VULGAR FRACTION ONE QUARTER
232
+ '\xbd' # 0xB8 -> VULGAR FRACTION ONE HALF
233
+ '\xbe' # 0xB9 -> VULGAR FRACTION THREE QUARTERS
234
+ '\xac' # 0xBA -> NOT SIGN
235
+ '|' # 0xBB -> VERTICAL LINE
236
+ '\u203e' # 0xBC -> OVERLINE
237
+ '\xa8' # 0xBD -> DIAERESIS
238
+ '\xb4' # 0xBE -> ACUTE ACCENT
239
+ '\xd7' # 0xBF -> MULTIPLICATION SIGN
240
+ '\xe4' # 0xC0 -> LATIN SMALL LETTER A WITH DIAERESIS
241
+ 'A' # 0xC1 -> LATIN CAPITAL LETTER A
242
+ 'B' # 0xC2 -> LATIN CAPITAL LETTER B
243
+ 'C' # 0xC3 -> LATIN CAPITAL LETTER C
244
+ 'D' # 0xC4 -> LATIN CAPITAL LETTER D
245
+ 'E' # 0xC5 -> LATIN CAPITAL LETTER E
246
+ 'F' # 0xC6 -> LATIN CAPITAL LETTER F
247
+ 'G' # 0xC7 -> LATIN CAPITAL LETTER G
248
+ 'H' # 0xC8 -> LATIN CAPITAL LETTER H
249
+ 'I' # 0xC9 -> LATIN CAPITAL LETTER I
250
+ '\xad' # 0xCA -> SOFT HYPHEN
251
+ '\xf4' # 0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
252
+ '\xa6' # 0xCC -> BROKEN BAR
253
+ '\xf2' # 0xCD -> LATIN SMALL LETTER O WITH GRAVE
254
+ '\xf3' # 0xCE -> LATIN SMALL LETTER O WITH ACUTE
255
+ '\xf5' # 0xCF -> LATIN SMALL LETTER O WITH TILDE
256
+ '\xfc' # 0xD0 -> LATIN SMALL LETTER U WITH DIAERESIS
257
+ 'J' # 0xD1 -> LATIN CAPITAL LETTER J
258
+ 'K' # 0xD2 -> LATIN CAPITAL LETTER K
259
+ 'L' # 0xD3 -> LATIN CAPITAL LETTER L
260
+ 'M' # 0xD4 -> LATIN CAPITAL LETTER M
261
+ 'N' # 0xD5 -> LATIN CAPITAL LETTER N
262
+ 'O' # 0xD6 -> LATIN CAPITAL LETTER O
263
+ 'P' # 0xD7 -> LATIN CAPITAL LETTER P
264
+ 'Q' # 0xD8 -> LATIN CAPITAL LETTER Q
265
+ 'R' # 0xD9 -> LATIN CAPITAL LETTER R
266
+ '\xb9' # 0xDA -> SUPERSCRIPT ONE
267
+ '\xfb' # 0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
268
+ '}' # 0xDC -> RIGHT CURLY BRACKET
269
+ '\xf9' # 0xDD -> LATIN SMALL LETTER U WITH GRAVE
270
+ '\xfa' # 0xDE -> LATIN SMALL LETTER U WITH ACUTE
271
+ '\xff' # 0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
272
+ '\xd6' # 0xE0 -> LATIN CAPITAL LETTER O WITH DIAERESIS
273
+ '\xf7' # 0xE1 -> DIVISION SIGN
274
+ 'S' # 0xE2 -> LATIN CAPITAL LETTER S
275
+ 'T' # 0xE3 -> LATIN CAPITAL LETTER T
276
+ 'U' # 0xE4 -> LATIN CAPITAL LETTER U
277
+ 'V' # 0xE5 -> LATIN CAPITAL LETTER V
278
+ 'W' # 0xE6 -> LATIN CAPITAL LETTER W
279
+ 'X' # 0xE7 -> LATIN CAPITAL LETTER X
280
+ 'Y' # 0xE8 -> LATIN CAPITAL LETTER Y
281
+ 'Z' # 0xE9 -> LATIN CAPITAL LETTER Z
282
+ '\xb2' # 0xEA -> SUPERSCRIPT TWO
283
+ '\xd4' # 0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
284
+ '\\' # 0xEC -> REVERSE SOLIDUS
285
+ '\xd2' # 0xED -> LATIN CAPITAL LETTER O WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd5' # 0xEF -> LATIN CAPITAL LETTER O WITH TILDE
288
+ '0' # 0xF0 -> DIGIT ZERO
289
+ '1' # 0xF1 -> DIGIT ONE
290
+ '2' # 0xF2 -> DIGIT TWO
291
+ '3' # 0xF3 -> DIGIT THREE
292
+ '4' # 0xF4 -> DIGIT FOUR
293
+ '5' # 0xF5 -> DIGIT FIVE
294
+ '6' # 0xF6 -> DIGIT SIX
295
+ '7' # 0xF7 -> DIGIT SEVEN
296
+ '8' # 0xF8 -> DIGIT EIGHT
297
+ '9' # 0xF9 -> DIGIT NINE
298
+ '\xb3' # 0xFA -> SUPERSCRIPT THREE
299
+ '\xdb' # 0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
300
+ ']' # 0xFC -> RIGHT SQUARE BRACKET
301
+ '\xd9' # 0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
302
+ '\xda' # 0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
303
+ '\x9f' # 0xFF -> APPLICATION PROGRAM COMMAND (APC)
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp857.py ADDED
@@ -0,0 +1,694 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP857.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp857',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x0131, # LATIN SMALL LETTER DOTLESS I
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x0130, # LATIN CAPITAL LETTER I WITH DOT ABOVE
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
78
+ 0x009e: 0x015e, # LATIN CAPITAL LETTER S WITH CEDILLA
79
+ 0x009f: 0x015f, # LATIN SMALL LETTER S WITH CEDILLA
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x011e, # LATIN CAPITAL LETTER G WITH BREVE
87
+ 0x00a7: 0x011f, # LATIN SMALL LETTER G WITH BREVE
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x00ae, # REGISTERED SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
102
+ 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
103
+ 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
104
+ 0x00b8: 0x00a9, # COPYRIGHT SIGN
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x00a2, # CENT SIGN
110
+ 0x00be: 0x00a5, # YEN SIGN
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
119
+ 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x00a4, # CURRENCY SIGN
128
+ 0x00d0: 0x00ba, # MASCULINE ORDINAL INDICATOR
129
+ 0x00d1: 0x00aa, # FEMININE ORDINAL INDICATOR
130
+ 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
131
+ 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
132
+ 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
133
+ 0x00d5: None, # UNDEFINED
134
+ 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
135
+ 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
136
+ 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x00a6, # BROKEN BAR
142
+ 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
147
+ 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
148
+ 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
149
+ 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: None, # UNDEFINED
152
+ 0x00e8: 0x00d7, # MULTIPLICATION SIGN
153
+ 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
154
+ 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
155
+ 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
156
+ 0x00ed: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
157
+ 0x00ee: 0x00af, # MACRON
158
+ 0x00ef: 0x00b4, # ACUTE ACCENT
159
+ 0x00f0: 0x00ad, # SOFT HYPHEN
160
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
161
+ 0x00f2: None, # UNDEFINED
162
+ 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
163
+ 0x00f4: 0x00b6, # PILCROW SIGN
164
+ 0x00f5: 0x00a7, # SECTION SIGN
165
+ 0x00f6: 0x00f7, # DIVISION SIGN
166
+ 0x00f7: 0x00b8, # CEDILLA
167
+ 0x00f8: 0x00b0, # DEGREE SIGN
168
+ 0x00f9: 0x00a8, # DIAERESIS
169
+ 0x00fa: 0x00b7, # MIDDLE DOT
170
+ 0x00fb: 0x00b9, # SUPERSCRIPT ONE
171
+ 0x00fc: 0x00b3, # SUPERSCRIPT THREE
172
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
173
+ 0x00fe: 0x25a0, # BLACK SQUARE
174
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
175
+ })
176
+
177
+ ### Decoding Table
178
+
179
+ decoding_table = (
180
+ '\x00' # 0x0000 -> NULL
181
+ '\x01' # 0x0001 -> START OF HEADING
182
+ '\x02' # 0x0002 -> START OF TEXT
183
+ '\x03' # 0x0003 -> END OF TEXT
184
+ '\x04' # 0x0004 -> END OF TRANSMISSION
185
+ '\x05' # 0x0005 -> ENQUIRY
186
+ '\x06' # 0x0006 -> ACKNOWLEDGE
187
+ '\x07' # 0x0007 -> BELL
188
+ '\x08' # 0x0008 -> BACKSPACE
189
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
190
+ '\n' # 0x000a -> LINE FEED
191
+ '\x0b' # 0x000b -> VERTICAL TABULATION
192
+ '\x0c' # 0x000c -> FORM FEED
193
+ '\r' # 0x000d -> CARRIAGE RETURN
194
+ '\x0e' # 0x000e -> SHIFT OUT
195
+ '\x0f' # 0x000f -> SHIFT IN
196
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
197
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
198
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
199
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
200
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
201
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
202
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
203
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
204
+ '\x18' # 0x0018 -> CANCEL
205
+ '\x19' # 0x0019 -> END OF MEDIUM
206
+ '\x1a' # 0x001a -> SUBSTITUTE
207
+ '\x1b' # 0x001b -> ESCAPE
208
+ '\x1c' # 0x001c -> FILE SEPARATOR
209
+ '\x1d' # 0x001d -> GROUP SEPARATOR
210
+ '\x1e' # 0x001e -> RECORD SEPARATOR
211
+ '\x1f' # 0x001f -> UNIT SEPARATOR
212
+ ' ' # 0x0020 -> SPACE
213
+ '!' # 0x0021 -> EXCLAMATION MARK
214
+ '"' # 0x0022 -> QUOTATION MARK
215
+ '#' # 0x0023 -> NUMBER SIGN
216
+ '$' # 0x0024 -> DOLLAR SIGN
217
+ '%' # 0x0025 -> PERCENT SIGN
218
+ '&' # 0x0026 -> AMPERSAND
219
+ "'" # 0x0027 -> APOSTROPHE
220
+ '(' # 0x0028 -> LEFT PARENTHESIS
221
+ ')' # 0x0029 -> RIGHT PARENTHESIS
222
+ '*' # 0x002a -> ASTERISK
223
+ '+' # 0x002b -> PLUS SIGN
224
+ ',' # 0x002c -> COMMA
225
+ '-' # 0x002d -> HYPHEN-MINUS
226
+ '.' # 0x002e -> FULL STOP
227
+ '/' # 0x002f -> SOLIDUS
228
+ '0' # 0x0030 -> DIGIT ZERO
229
+ '1' # 0x0031 -> DIGIT ONE
230
+ '2' # 0x0032 -> DIGIT TWO
231
+ '3' # 0x0033 -> DIGIT THREE
232
+ '4' # 0x0034 -> DIGIT FOUR
233
+ '5' # 0x0035 -> DIGIT FIVE
234
+ '6' # 0x0036 -> DIGIT SIX
235
+ '7' # 0x0037 -> DIGIT SEVEN
236
+ '8' # 0x0038 -> DIGIT EIGHT
237
+ '9' # 0x0039 -> DIGIT NINE
238
+ ':' # 0x003a -> COLON
239
+ ';' # 0x003b -> SEMICOLON
240
+ '<' # 0x003c -> LESS-THAN SIGN
241
+ '=' # 0x003d -> EQUALS SIGN
242
+ '>' # 0x003e -> GREATER-THAN SIGN
243
+ '?' # 0x003f -> QUESTION MARK
244
+ '@' # 0x0040 -> COMMERCIAL AT
245
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
246
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
247
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
248
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
249
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
250
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
251
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
252
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
253
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
254
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
255
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
256
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
257
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
258
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
259
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
260
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
261
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
262
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
263
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
264
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
265
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
266
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
267
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
268
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
269
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
270
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
271
+ '[' # 0x005b -> LEFT SQUARE BRACKET
272
+ '\\' # 0x005c -> REVERSE SOLIDUS
273
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
274
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
275
+ '_' # 0x005f -> LOW LINE
276
+ '`' # 0x0060 -> GRAVE ACCENT
277
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
278
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
279
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
280
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
281
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
282
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
283
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
284
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
285
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
286
+ 'j' # 0x006a -> LATIN SMALL LETTER J
287
+ 'k' # 0x006b -> LATIN SMALL LETTER K
288
+ 'l' # 0x006c -> LATIN SMALL LETTER L
289
+ 'm' # 0x006d -> LATIN SMALL LETTER M
290
+ 'n' # 0x006e -> LATIN SMALL LETTER N
291
+ 'o' # 0x006f -> LATIN SMALL LETTER O
292
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
293
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
294
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
295
+ 's' # 0x0073 -> LATIN SMALL LETTER S
296
+ 't' # 0x0074 -> LATIN SMALL LETTER T
297
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
298
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
299
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
300
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
301
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
302
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
303
+ '{' # 0x007b -> LEFT CURLY BRACKET
304
+ '|' # 0x007c -> VERTICAL LINE
305
+ '}' # 0x007d -> RIGHT CURLY BRACKET
306
+ '~' # 0x007e -> TILDE
307
+ '\x7f' # 0x007f -> DELETE
308
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
309
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
310
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
311
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
312
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
313
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
314
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
315
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
316
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
317
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
318
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
319
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
320
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
321
+ '\u0131' # 0x008d -> LATIN SMALL LETTER DOTLESS I
322
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
323
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
324
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
325
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
326
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
327
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
328
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
329
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
330
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
331
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
332
+ '\u0130' # 0x0098 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
333
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
334
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
335
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
336
+ '\xa3' # 0x009c -> POUND SIGN
337
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
338
+ '\u015e' # 0x009e -> LATIN CAPITAL LETTER S WITH CEDILLA
339
+ '\u015f' # 0x009f -> LATIN SMALL LETTER S WITH CEDILLA
340
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
341
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
342
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
343
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
344
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
345
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
346
+ '\u011e' # 0x00a6 -> LATIN CAPITAL LETTER G WITH BREVE
347
+ '\u011f' # 0x00a7 -> LATIN SMALL LETTER G WITH BREVE
348
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
349
+ '\xae' # 0x00a9 -> REGISTERED SIGN
350
+ '\xac' # 0x00aa -> NOT SIGN
351
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
352
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
353
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
354
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
355
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\u2591' # 0x00b0 -> LIGHT SHADE
357
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
358
+ '\u2593' # 0x00b2 -> DARK SHADE
359
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
360
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
361
+ '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
362
+ '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
363
+ '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
364
+ '\xa9' # 0x00b8 -> COPYRIGHT SIGN
365
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
366
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
367
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
368
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
369
+ '\xa2' # 0x00bd -> CENT SIGN
370
+ '\xa5' # 0x00be -> YEN SIGN
371
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
372
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
373
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
374
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
375
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
376
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
377
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
378
+ '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
379
+ '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
380
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
381
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
382
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
383
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
384
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
385
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
386
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
387
+ '\xa4' # 0x00cf -> CURRENCY SIGN
388
+ '\xba' # 0x00d0 -> MASCULINE ORDINAL INDICATOR
389
+ '\xaa' # 0x00d1 -> FEMININE ORDINAL INDICATOR
390
+ '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
391
+ '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
392
+ '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
393
+ '\ufffe' # 0x00d5 -> UNDEFINED
394
+ '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
395
+ '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
396
+ '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
397
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
398
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
399
+ '\u2588' # 0x00db -> FULL BLOCK
400
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
401
+ '\xa6' # 0x00dd -> BROKEN BAR
402
+ '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
403
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
404
+ '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
405
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
406
+ '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
407
+ '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
408
+ '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
409
+ '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
410
+ '\xb5' # 0x00e6 -> MICRO SIGN
411
+ '\ufffe' # 0x00e7 -> UNDEFINED
412
+ '\xd7' # 0x00e8 -> MULTIPLICATION SIGN
413
+ '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
414
+ '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
415
+ '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
416
+ '\xec' # 0x00ec -> LATIN SMALL LETTER I WITH GRAVE
417
+ '\xff' # 0x00ed -> LATIN SMALL LETTER Y WITH DIAERESIS
418
+ '\xaf' # 0x00ee -> MACRON
419
+ '\xb4' # 0x00ef -> ACUTE ACCENT
420
+ '\xad' # 0x00f0 -> SOFT HYPHEN
421
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
422
+ '\ufffe' # 0x00f2 -> UNDEFINED
423
+ '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
424
+ '\xb6' # 0x00f4 -> PILCROW SIGN
425
+ '\xa7' # 0x00f5 -> SECTION SIGN
426
+ '\xf7' # 0x00f6 -> DIVISION SIGN
427
+ '\xb8' # 0x00f7 -> CEDILLA
428
+ '\xb0' # 0x00f8 -> DEGREE SIGN
429
+ '\xa8' # 0x00f9 -> DIAERESIS
430
+ '\xb7' # 0x00fa -> MIDDLE DOT
431
+ '\xb9' # 0x00fb -> SUPERSCRIPT ONE
432
+ '\xb3' # 0x00fc -> SUPERSCRIPT THREE
433
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
434
+ '\u25a0' # 0x00fe -> BLACK SQUARE
435
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
436
+ )
437
+
438
+ ### Encoding Map
439
+
440
+ encoding_map = {
441
+ 0x0000: 0x0000, # NULL
442
+ 0x0001: 0x0001, # START OF HEADING
443
+ 0x0002: 0x0002, # START OF TEXT
444
+ 0x0003: 0x0003, # END OF TEXT
445
+ 0x0004: 0x0004, # END OF TRANSMISSION
446
+ 0x0005: 0x0005, # ENQUIRY
447
+ 0x0006: 0x0006, # ACKNOWLEDGE
448
+ 0x0007: 0x0007, # BELL
449
+ 0x0008: 0x0008, # BACKSPACE
450
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
451
+ 0x000a: 0x000a, # LINE FEED
452
+ 0x000b: 0x000b, # VERTICAL TABULATION
453
+ 0x000c: 0x000c, # FORM FEED
454
+ 0x000d: 0x000d, # CARRIAGE RETURN
455
+ 0x000e: 0x000e, # SHIFT OUT
456
+ 0x000f: 0x000f, # SHIFT IN
457
+ 0x0010: 0x0010, # DATA LINK ESCAPE
458
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
459
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
460
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
461
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
462
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
463
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
464
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
465
+ 0x0018: 0x0018, # CANCEL
466
+ 0x0019: 0x0019, # END OF MEDIUM
467
+ 0x001a: 0x001a, # SUBSTITUTE
468
+ 0x001b: 0x001b, # ESCAPE
469
+ 0x001c: 0x001c, # FILE SEPARATOR
470
+ 0x001d: 0x001d, # GROUP SEPARATOR
471
+ 0x001e: 0x001e, # RECORD SEPARATOR
472
+ 0x001f: 0x001f, # UNIT SEPARATOR
473
+ 0x0020: 0x0020, # SPACE
474
+ 0x0021: 0x0021, # EXCLAMATION MARK
475
+ 0x0022: 0x0022, # QUOTATION MARK
476
+ 0x0023: 0x0023, # NUMBER SIGN
477
+ 0x0024: 0x0024, # DOLLAR SIGN
478
+ 0x0025: 0x0025, # PERCENT SIGN
479
+ 0x0026: 0x0026, # AMPERSAND
480
+ 0x0027: 0x0027, # APOSTROPHE
481
+ 0x0028: 0x0028, # LEFT PARENTHESIS
482
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
483
+ 0x002a: 0x002a, # ASTERISK
484
+ 0x002b: 0x002b, # PLUS SIGN
485
+ 0x002c: 0x002c, # COMMA
486
+ 0x002d: 0x002d, # HYPHEN-MINUS
487
+ 0x002e: 0x002e, # FULL STOP
488
+ 0x002f: 0x002f, # SOLIDUS
489
+ 0x0030: 0x0030, # DIGIT ZERO
490
+ 0x0031: 0x0031, # DIGIT ONE
491
+ 0x0032: 0x0032, # DIGIT TWO
492
+ 0x0033: 0x0033, # DIGIT THREE
493
+ 0x0034: 0x0034, # DIGIT FOUR
494
+ 0x0035: 0x0035, # DIGIT FIVE
495
+ 0x0036: 0x0036, # DIGIT SIX
496
+ 0x0037: 0x0037, # DIGIT SEVEN
497
+ 0x0038: 0x0038, # DIGIT EIGHT
498
+ 0x0039: 0x0039, # DIGIT NINE
499
+ 0x003a: 0x003a, # COLON
500
+ 0x003b: 0x003b, # SEMICOLON
501
+ 0x003c: 0x003c, # LESS-THAN SIGN
502
+ 0x003d: 0x003d, # EQUALS SIGN
503
+ 0x003e: 0x003e, # GREATER-THAN SIGN
504
+ 0x003f: 0x003f, # QUESTION MARK
505
+ 0x0040: 0x0040, # COMMERCIAL AT
506
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
507
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
508
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
509
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
510
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
511
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
512
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
513
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
514
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
515
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
516
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
517
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
518
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
519
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
520
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
521
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
522
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
523
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
524
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
525
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
526
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
527
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
528
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
529
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
530
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
531
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
532
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
533
+ 0x005c: 0x005c, # REVERSE SOLIDUS
534
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
535
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
536
+ 0x005f: 0x005f, # LOW LINE
537
+ 0x0060: 0x0060, # GRAVE ACCENT
538
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
539
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
540
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
541
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
542
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
543
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
544
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
545
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
546
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
547
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
548
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
549
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
550
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
551
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
552
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
553
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
554
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
555
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
556
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
557
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
558
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
559
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
560
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
561
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
562
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
563
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
564
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
565
+ 0x007c: 0x007c, # VERTICAL LINE
566
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
567
+ 0x007e: 0x007e, # TILDE
568
+ 0x007f: 0x007f, # DELETE
569
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
570
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
571
+ 0x00a2: 0x00bd, # CENT SIGN
572
+ 0x00a3: 0x009c, # POUND SIGN
573
+ 0x00a4: 0x00cf, # CURRENCY SIGN
574
+ 0x00a5: 0x00be, # YEN SIGN
575
+ 0x00a6: 0x00dd, # BROKEN BAR
576
+ 0x00a7: 0x00f5, # SECTION SIGN
577
+ 0x00a8: 0x00f9, # DIAERESIS
578
+ 0x00a9: 0x00b8, # COPYRIGHT SIGN
579
+ 0x00aa: 0x00d1, # FEMININE ORDINAL INDICATOR
580
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
581
+ 0x00ac: 0x00aa, # NOT SIGN
582
+ 0x00ad: 0x00f0, # SOFT HYPHEN
583
+ 0x00ae: 0x00a9, # REGISTERED SIGN
584
+ 0x00af: 0x00ee, # MACRON
585
+ 0x00b0: 0x00f8, # DEGREE SIGN
586
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
587
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
588
+ 0x00b3: 0x00fc, # SUPERSCRIPT THREE
589
+ 0x00b4: 0x00ef, # ACUTE ACCENT
590
+ 0x00b5: 0x00e6, # MICRO SIGN
591
+ 0x00b6: 0x00f4, # PILCROW SIGN
592
+ 0x00b7: 0x00fa, # MIDDLE DOT
593
+ 0x00b8: 0x00f7, # CEDILLA
594
+ 0x00b9: 0x00fb, # SUPERSCRIPT ONE
595
+ 0x00ba: 0x00d0, # MASCULINE ORDINAL INDICATOR
596
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
597
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
598
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
599
+ 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
600
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
601
+ 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
602
+ 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
603
+ 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
604
+ 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
605
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
606
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
607
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
608
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
609
+ 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
610
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
611
+ 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
612
+ 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
613
+ 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
614
+ 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
615
+ 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
616
+ 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
617
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
618
+ 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
619
+ 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
620
+ 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
621
+ 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
622
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
623
+ 0x00d7: 0x00e8, # MULTIPLICATION SIGN
624
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
625
+ 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
626
+ 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
627
+ 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
628
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
629
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
630
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
631
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
632
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
633
+ 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
634
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
635
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
636
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
637
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
638
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
639
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
640
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
641
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
642
+ 0x00ec: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
643
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
644
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
645
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
646
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
647
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
648
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
649
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
650
+ 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
651
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
652
+ 0x00f7: 0x00f6, # DIVISION SIGN
653
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
654
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
655
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
656
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
657
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
658
+ 0x00ff: 0x00ed, # LATIN SMALL LETTER Y WITH DIAERESIS
659
+ 0x011e: 0x00a6, # LATIN CAPITAL LETTER G WITH BREVE
660
+ 0x011f: 0x00a7, # LATIN SMALL LETTER G WITH BREVE
661
+ 0x0130: 0x0098, # LATIN CAPITAL LETTER I WITH DOT ABOVE
662
+ 0x0131: 0x008d, # LATIN SMALL LETTER DOTLESS I
663
+ 0x015e: 0x009e, # LATIN CAPITAL LETTER S WITH CEDILLA
664
+ 0x015f: 0x009f, # LATIN SMALL LETTER S WITH CEDILLA
665
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
666
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
667
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
668
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
669
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
670
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
671
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
672
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
673
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
674
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
675
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
676
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
677
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
678
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
679
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
680
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
681
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
682
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
683
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
684
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
687
+ 0x2580: 0x00df, # UPPER HALF BLOCK
688
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
689
+ 0x2588: 0x00db, # FULL BLOCK
690
+ 0x2591: 0x00b0, # LIGHT SHADE
691
+ 0x2592: 0x00b1, # MEDIUM SHADE
692
+ 0x2593: 0x00b2, # DARK SHADE
693
+ 0x25a0: 0x00fe, # BLACK SQUARE
694
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp858.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec for CP858, modified from cp850.
2
+
3
+ """
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp858',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
78
+ 0x009e: 0x00d7, # MULTIPLICATION SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x00ae, # REGISTERED SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x00c1, # LATIN CAPITAL LETTER A WITH ACUTE
102
+ 0x00b6: 0x00c2, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
103
+ 0x00b7: 0x00c0, # LATIN CAPITAL LETTER A WITH GRAVE
104
+ 0x00b8: 0x00a9, # COPYRIGHT SIGN
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x00a2, # CENT SIGN
110
+ 0x00be: 0x00a5, # YEN SIGN
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x00e3, # LATIN SMALL LETTER A WITH TILDE
119
+ 0x00c7: 0x00c3, # LATIN CAPITAL LETTER A WITH TILDE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x00a4, # CURRENCY SIGN
128
+ 0x00d0: 0x00f0, # LATIN SMALL LETTER ETH
129
+ 0x00d1: 0x00d0, # LATIN CAPITAL LETTER ETH
130
+ 0x00d2: 0x00ca, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
131
+ 0x00d3: 0x00cb, # LATIN CAPITAL LETTER E WITH DIAERESIS
132
+ 0x00d4: 0x00c8, # LATIN CAPITAL LETTER E WITH GRAVE
133
+ 0x00d5: 0x20ac, # EURO SIGN
134
+ 0x00d6: 0x00cd, # LATIN CAPITAL LETTER I WITH ACUTE
135
+ 0x00d7: 0x00ce, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
136
+ 0x00d8: 0x00cf, # LATIN CAPITAL LETTER I WITH DIAERESIS
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x00a6, # BROKEN BAR
142
+ 0x00de: 0x00cc, # LATIN CAPITAL LETTER I WITH GRAVE
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x00d3, # LATIN CAPITAL LETTER O WITH ACUTE
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x00d4, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
147
+ 0x00e3: 0x00d2, # LATIN CAPITAL LETTER O WITH GRAVE
148
+ 0x00e4: 0x00f5, # LATIN SMALL LETTER O WITH TILDE
149
+ 0x00e5: 0x00d5, # LATIN CAPITAL LETTER O WITH TILDE
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x00fe, # LATIN SMALL LETTER THORN
152
+ 0x00e8: 0x00de, # LATIN CAPITAL LETTER THORN
153
+ 0x00e9: 0x00da, # LATIN CAPITAL LETTER U WITH ACUTE
154
+ 0x00ea: 0x00db, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
155
+ 0x00eb: 0x00d9, # LATIN CAPITAL LETTER U WITH GRAVE
156
+ 0x00ec: 0x00fd, # LATIN SMALL LETTER Y WITH ACUTE
157
+ 0x00ed: 0x00dd, # LATIN CAPITAL LETTER Y WITH ACUTE
158
+ 0x00ee: 0x00af, # MACRON
159
+ 0x00ef: 0x00b4, # ACUTE ACCENT
160
+ 0x00f0: 0x00ad, # SOFT HYPHEN
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2017, # DOUBLE LOW LINE
163
+ 0x00f3: 0x00be, # VULGAR FRACTION THREE QUARTERS
164
+ 0x00f4: 0x00b6, # PILCROW SIGN
165
+ 0x00f5: 0x00a7, # SECTION SIGN
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x00b8, # CEDILLA
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x00a8, # DIAERESIS
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x00b9, # SUPERSCRIPT ONE
172
+ 0x00fc: 0x00b3, # SUPERSCRIPT THREE
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
327
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
339
+ '\xd7' # 0x009e -> MULTIPLICATION SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\xae' # 0x00a9 -> REGISTERED SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\xc1' # 0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
363
+ '\xc2' # 0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
364
+ '\xc0' # 0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
365
+ '\xa9' # 0x00b8 -> COPYRIGHT SIGN
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\xa2' # 0x00bd -> CENT SIGN
371
+ '\xa5' # 0x00be -> YEN SIGN
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\xe3' # 0x00c6 -> LATIN SMALL LETTER A WITH TILDE
380
+ '\xc3' # 0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\xa4' # 0x00cf -> CURRENCY SIGN
389
+ '\xf0' # 0x00d0 -> LATIN SMALL LETTER ETH
390
+ '\xd0' # 0x00d1 -> LATIN CAPITAL LETTER ETH
391
+ '\xca' # 0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
392
+ '\xcb' # 0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
393
+ '\xc8' # 0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
394
+ '\u20ac' # 0x00d5 -> EURO SIGN
395
+ '\xcd' # 0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
396
+ '\xce' # 0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
397
+ '\xcf' # 0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\xa6' # 0x00dd -> BROKEN BAR
403
+ '\xcc' # 0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\xd3' # 0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\xd4' # 0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
408
+ '\xd2' # 0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
409
+ '\xf5' # 0x00e4 -> LATIN SMALL LETTER O WITH TILDE
410
+ '\xd5' # 0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\xfe' # 0x00e7 -> LATIN SMALL LETTER THORN
413
+ '\xde' # 0x00e8 -> LATIN CAPITAL LETTER THORN
414
+ '\xda' # 0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
415
+ '\xdb' # 0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
416
+ '\xd9' # 0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
417
+ '\xfd' # 0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
418
+ '\xdd' # 0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
419
+ '\xaf' # 0x00ee -> MACRON
420
+ '\xb4' # 0x00ef -> ACUTE ACCENT
421
+ '\xad' # 0x00f0 -> SOFT HYPHEN
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2017' # 0x00f2 -> DOUBLE LOW LINE
424
+ '\xbe' # 0x00f3 -> VULGAR FRACTION THREE QUARTERS
425
+ '\xb6' # 0x00f4 -> PILCROW SIGN
426
+ '\xa7' # 0x00f5 -> SECTION SIGN
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\xb8' # 0x00f7 -> CEDILLA
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\xa8' # 0x00f9 -> DIAERESIS
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\xb9' # 0x00fb -> SUPERSCRIPT ONE
433
+ '\xb3' # 0x00fc -> SUPERSCRIPT THREE
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a2: 0x00bd, # CENT SIGN
573
+ 0x00a3: 0x009c, # POUND SIGN
574
+ 0x00a4: 0x00cf, # CURRENCY SIGN
575
+ 0x00a5: 0x00be, # YEN SIGN
576
+ 0x00a6: 0x00dd, # BROKEN BAR
577
+ 0x00a7: 0x00f5, # SECTION SIGN
578
+ 0x00a8: 0x00f9, # DIAERESIS
579
+ 0x00a9: 0x00b8, # COPYRIGHT SIGN
580
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
581
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
582
+ 0x00ac: 0x00aa, # NOT SIGN
583
+ 0x00ad: 0x00f0, # SOFT HYPHEN
584
+ 0x00ae: 0x00a9, # REGISTERED SIGN
585
+ 0x00af: 0x00ee, # MACRON
586
+ 0x00b0: 0x00f8, # DEGREE SIGN
587
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
588
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
589
+ 0x00b3: 0x00fc, # SUPERSCRIPT THREE
590
+ 0x00b4: 0x00ef, # ACUTE ACCENT
591
+ 0x00b5: 0x00e6, # MICRO SIGN
592
+ 0x00b6: 0x00f4, # PILCROW SIGN
593
+ 0x00b7: 0x00fa, # MIDDLE DOT
594
+ 0x00b8: 0x00f7, # CEDILLA
595
+ 0x00b9: 0x00fb, # SUPERSCRIPT ONE
596
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
597
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
598
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
599
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
600
+ 0x00be: 0x00f3, # VULGAR FRACTION THREE QUARTERS
601
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
602
+ 0x00c0: 0x00b7, # LATIN CAPITAL LETTER A WITH GRAVE
603
+ 0x00c1: 0x00b5, # LATIN CAPITAL LETTER A WITH ACUTE
604
+ 0x00c2: 0x00b6, # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
605
+ 0x00c3: 0x00c7, # LATIN CAPITAL LETTER A WITH TILDE
606
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
607
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
608
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
609
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
610
+ 0x00c8: 0x00d4, # LATIN CAPITAL LETTER E WITH GRAVE
611
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
612
+ 0x00ca: 0x00d2, # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
613
+ 0x00cb: 0x00d3, # LATIN CAPITAL LETTER E WITH DIAERESIS
614
+ 0x00cc: 0x00de, # LATIN CAPITAL LETTER I WITH GRAVE
615
+ 0x00cd: 0x00d6, # LATIN CAPITAL LETTER I WITH ACUTE
616
+ 0x00ce: 0x00d7, # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
617
+ 0x00cf: 0x00d8, # LATIN CAPITAL LETTER I WITH DIAERESIS
618
+ 0x00d0: 0x00d1, # LATIN CAPITAL LETTER ETH
619
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
620
+ 0x00d2: 0x00e3, # LATIN CAPITAL LETTER O WITH GRAVE
621
+ 0x00d3: 0x00e0, # LATIN CAPITAL LETTER O WITH ACUTE
622
+ 0x00d4: 0x00e2, # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
623
+ 0x00d5: 0x00e5, # LATIN CAPITAL LETTER O WITH TILDE
624
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
625
+ 0x00d7: 0x009e, # MULTIPLICATION SIGN
626
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
627
+ 0x00d9: 0x00eb, # LATIN CAPITAL LETTER U WITH GRAVE
628
+ 0x00da: 0x00e9, # LATIN CAPITAL LETTER U WITH ACUTE
629
+ 0x00db: 0x00ea, # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
630
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
631
+ 0x00dd: 0x00ed, # LATIN CAPITAL LETTER Y WITH ACUTE
632
+ 0x00de: 0x00e8, # LATIN CAPITAL LETTER THORN
633
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
634
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
635
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
636
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
637
+ 0x00e3: 0x00c6, # LATIN SMALL LETTER A WITH TILDE
638
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
639
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
640
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
641
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
642
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
643
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
644
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
645
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
646
+ 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
647
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
648
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
649
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
650
+ 0x00f0: 0x00d0, # LATIN SMALL LETTER ETH
651
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
652
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
653
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
654
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
655
+ 0x00f5: 0x00e4, # LATIN SMALL LETTER O WITH TILDE
656
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
657
+ 0x00f7: 0x00f6, # DIVISION SIGN
658
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
659
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
660
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
661
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
662
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
663
+ 0x00fd: 0x00ec, # LATIN SMALL LETTER Y WITH ACUTE
664
+ 0x00fe: 0x00e7, # LATIN SMALL LETTER THORN
665
+ 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
666
+ 0x20ac: 0x00d5, # EURO SIGN
667
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
668
+ 0x2017: 0x00f2, # DOUBLE LOW LINE
669
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
670
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
671
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
672
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
673
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
674
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
675
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
676
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
677
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
678
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
679
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
680
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
681
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
682
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
683
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
684
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
685
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
686
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
687
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
688
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
689
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
690
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
691
+ 0x2580: 0x00df, # UPPER HALF BLOCK
692
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
693
+ 0x2588: 0x00db, # FULL BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp862.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP862.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp862',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x05d0, # HEBREW LETTER ALEF
49
+ 0x0081: 0x05d1, # HEBREW LETTER BET
50
+ 0x0082: 0x05d2, # HEBREW LETTER GIMEL
51
+ 0x0083: 0x05d3, # HEBREW LETTER DALET
52
+ 0x0084: 0x05d4, # HEBREW LETTER HE
53
+ 0x0085: 0x05d5, # HEBREW LETTER VAV
54
+ 0x0086: 0x05d6, # HEBREW LETTER ZAYIN
55
+ 0x0087: 0x05d7, # HEBREW LETTER HET
56
+ 0x0088: 0x05d8, # HEBREW LETTER TET
57
+ 0x0089: 0x05d9, # HEBREW LETTER YOD
58
+ 0x008a: 0x05da, # HEBREW LETTER FINAL KAF
59
+ 0x008b: 0x05db, # HEBREW LETTER KAF
60
+ 0x008c: 0x05dc, # HEBREW LETTER LAMED
61
+ 0x008d: 0x05dd, # HEBREW LETTER FINAL MEM
62
+ 0x008e: 0x05de, # HEBREW LETTER MEM
63
+ 0x008f: 0x05df, # HEBREW LETTER FINAL NUN
64
+ 0x0090: 0x05e0, # HEBREW LETTER NUN
65
+ 0x0091: 0x05e1, # HEBREW LETTER SAMEKH
66
+ 0x0092: 0x05e2, # HEBREW LETTER AYIN
67
+ 0x0093: 0x05e3, # HEBREW LETTER FINAL PE
68
+ 0x0094: 0x05e4, # HEBREW LETTER PE
69
+ 0x0095: 0x05e5, # HEBREW LETTER FINAL TSADI
70
+ 0x0096: 0x05e6, # HEBREW LETTER TSADI
71
+ 0x0097: 0x05e7, # HEBREW LETTER QOF
72
+ 0x0098: 0x05e8, # HEBREW LETTER RESH
73
+ 0x0099: 0x05e9, # HEBREW LETTER SHIN
74
+ 0x009a: 0x05ea, # HEBREW LETTER TAV
75
+ 0x009b: 0x00a2, # CENT SIGN
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00a5, # YEN SIGN
78
+ 0x009e: 0x20a7, # PESETA SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x2310, # REVERSED NOT SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00bb, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S (GERMAN)
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\u05d0' # 0x0080 -> HEBREW LETTER ALEF
310
+ '\u05d1' # 0x0081 -> HEBREW LETTER BET
311
+ '\u05d2' # 0x0082 -> HEBREW LETTER GIMEL
312
+ '\u05d3' # 0x0083 -> HEBREW LETTER DALET
313
+ '\u05d4' # 0x0084 -> HEBREW LETTER HE
314
+ '\u05d5' # 0x0085 -> HEBREW LETTER VAV
315
+ '\u05d6' # 0x0086 -> HEBREW LETTER ZAYIN
316
+ '\u05d7' # 0x0087 -> HEBREW LETTER HET
317
+ '\u05d8' # 0x0088 -> HEBREW LETTER TET
318
+ '\u05d9' # 0x0089 -> HEBREW LETTER YOD
319
+ '\u05da' # 0x008a -> HEBREW LETTER FINAL KAF
320
+ '\u05db' # 0x008b -> HEBREW LETTER KAF
321
+ '\u05dc' # 0x008c -> HEBREW LETTER LAMED
322
+ '\u05dd' # 0x008d -> HEBREW LETTER FINAL MEM
323
+ '\u05de' # 0x008e -> HEBREW LETTER MEM
324
+ '\u05df' # 0x008f -> HEBREW LETTER FINAL NUN
325
+ '\u05e0' # 0x0090 -> HEBREW LETTER NUN
326
+ '\u05e1' # 0x0091 -> HEBREW LETTER SAMEKH
327
+ '\u05e2' # 0x0092 -> HEBREW LETTER AYIN
328
+ '\u05e3' # 0x0093 -> HEBREW LETTER FINAL PE
329
+ '\u05e4' # 0x0094 -> HEBREW LETTER PE
330
+ '\u05e5' # 0x0095 -> HEBREW LETTER FINAL TSADI
331
+ '\u05e6' # 0x0096 -> HEBREW LETTER TSADI
332
+ '\u05e7' # 0x0097 -> HEBREW LETTER QOF
333
+ '\u05e8' # 0x0098 -> HEBREW LETTER RESH
334
+ '\u05e9' # 0x0099 -> HEBREW LETTER SHIN
335
+ '\u05ea' # 0x009a -> HEBREW LETTER TAV
336
+ '\xa2' # 0x009b -> CENT SIGN
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xa5' # 0x009d -> YEN SIGN
339
+ '\u20a7' # 0x009e -> PESETA SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\u2310' # 0x00a9 -> REVERSED NOT SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xbb' # 0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a2: 0x009b, # CENT SIGN
573
+ 0x00a3: 0x009c, # POUND SIGN
574
+ 0x00a5: 0x009d, # YEN SIGN
575
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
576
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
577
+ 0x00ac: 0x00aa, # NOT SIGN
578
+ 0x00b0: 0x00f8, # DEGREE SIGN
579
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
580
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
581
+ 0x00b5: 0x00e6, # MICRO SIGN
582
+ 0x00b7: 0x00fa, # MIDDLE DOT
583
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
584
+ 0x00bb: 0x00af, # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
585
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
586
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
587
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
588
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
589
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S (GERMAN)
590
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
591
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
592
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
593
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
594
+ 0x00f7: 0x00f6, # DIVISION SIGN
595
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
596
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
597
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
598
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
599
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
600
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
601
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
602
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
603
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
604
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
605
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
606
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
607
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
608
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
609
+ 0x05d0: 0x0080, # HEBREW LETTER ALEF
610
+ 0x05d1: 0x0081, # HEBREW LETTER BET
611
+ 0x05d2: 0x0082, # HEBREW LETTER GIMEL
612
+ 0x05d3: 0x0083, # HEBREW LETTER DALET
613
+ 0x05d4: 0x0084, # HEBREW LETTER HE
614
+ 0x05d5: 0x0085, # HEBREW LETTER VAV
615
+ 0x05d6: 0x0086, # HEBREW LETTER ZAYIN
616
+ 0x05d7: 0x0087, # HEBREW LETTER HET
617
+ 0x05d8: 0x0088, # HEBREW LETTER TET
618
+ 0x05d9: 0x0089, # HEBREW LETTER YOD
619
+ 0x05da: 0x008a, # HEBREW LETTER FINAL KAF
620
+ 0x05db: 0x008b, # HEBREW LETTER KAF
621
+ 0x05dc: 0x008c, # HEBREW LETTER LAMED
622
+ 0x05dd: 0x008d, # HEBREW LETTER FINAL MEM
623
+ 0x05de: 0x008e, # HEBREW LETTER MEM
624
+ 0x05df: 0x008f, # HEBREW LETTER FINAL NUN
625
+ 0x05e0: 0x0090, # HEBREW LETTER NUN
626
+ 0x05e1: 0x0091, # HEBREW LETTER SAMEKH
627
+ 0x05e2: 0x0092, # HEBREW LETTER AYIN
628
+ 0x05e3: 0x0093, # HEBREW LETTER FINAL PE
629
+ 0x05e4: 0x0094, # HEBREW LETTER PE
630
+ 0x05e5: 0x0095, # HEBREW LETTER FINAL TSADI
631
+ 0x05e6: 0x0096, # HEBREW LETTER TSADI
632
+ 0x05e7: 0x0097, # HEBREW LETTER QOF
633
+ 0x05e8: 0x0098, # HEBREW LETTER RESH
634
+ 0x05e9: 0x0099, # HEBREW LETTER SHIN
635
+ 0x05ea: 0x009a, # HEBREW LETTER TAV
636
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
637
+ 0x20a7: 0x009e, # PESETA SIGN
638
+ 0x2219: 0x00f9, # BULLET OPERATOR
639
+ 0x221a: 0x00fb, # SQUARE ROOT
640
+ 0x221e: 0x00ec, # INFINITY
641
+ 0x2229: 0x00ef, # INTERSECTION
642
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
643
+ 0x2261: 0x00f0, # IDENTICAL TO
644
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
645
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
646
+ 0x2310: 0x00a9, # REVERSED NOT SIGN
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp864.py ADDED
@@ -0,0 +1,690 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP864.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp864',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0025: 0x066a, # ARABIC PERCENT SIGN
49
+ 0x0080: 0x00b0, # DEGREE SIGN
50
+ 0x0081: 0x00b7, # MIDDLE DOT
51
+ 0x0082: 0x2219, # BULLET OPERATOR
52
+ 0x0083: 0x221a, # SQUARE ROOT
53
+ 0x0084: 0x2592, # MEDIUM SHADE
54
+ 0x0085: 0x2500, # FORMS LIGHT HORIZONTAL
55
+ 0x0086: 0x2502, # FORMS LIGHT VERTICAL
56
+ 0x0087: 0x253c, # FORMS LIGHT VERTICAL AND HORIZONTAL
57
+ 0x0088: 0x2524, # FORMS LIGHT VERTICAL AND LEFT
58
+ 0x0089: 0x252c, # FORMS LIGHT DOWN AND HORIZONTAL
59
+ 0x008a: 0x251c, # FORMS LIGHT VERTICAL AND RIGHT
60
+ 0x008b: 0x2534, # FORMS LIGHT UP AND HORIZONTAL
61
+ 0x008c: 0x2510, # FORMS LIGHT DOWN AND LEFT
62
+ 0x008d: 0x250c, # FORMS LIGHT DOWN AND RIGHT
63
+ 0x008e: 0x2514, # FORMS LIGHT UP AND RIGHT
64
+ 0x008f: 0x2518, # FORMS LIGHT UP AND LEFT
65
+ 0x0090: 0x03b2, # GREEK SMALL BETA
66
+ 0x0091: 0x221e, # INFINITY
67
+ 0x0092: 0x03c6, # GREEK SMALL PHI
68
+ 0x0093: 0x00b1, # PLUS-OR-MINUS SIGN
69
+ 0x0094: 0x00bd, # FRACTION 1/2
70
+ 0x0095: 0x00bc, # FRACTION 1/4
71
+ 0x0096: 0x2248, # ALMOST EQUAL TO
72
+ 0x0097: 0x00ab, # LEFT POINTING GUILLEMET
73
+ 0x0098: 0x00bb, # RIGHT POINTING GUILLEMET
74
+ 0x0099: 0xfef7, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
75
+ 0x009a: 0xfef8, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
76
+ 0x009b: None, # UNDEFINED
77
+ 0x009c: None, # UNDEFINED
78
+ 0x009d: 0xfefb, # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
79
+ 0x009e: 0xfefc, # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
80
+ 0x009f: None, # UNDEFINED
81
+ 0x00a1: 0x00ad, # SOFT HYPHEN
82
+ 0x00a2: 0xfe82, # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
83
+ 0x00a5: 0xfe84, # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
84
+ 0x00a6: None, # UNDEFINED
85
+ 0x00a7: None, # UNDEFINED
86
+ 0x00a8: 0xfe8e, # ARABIC LETTER ALEF FINAL FORM
87
+ 0x00a9: 0xfe8f, # ARABIC LETTER BEH ISOLATED FORM
88
+ 0x00aa: 0xfe95, # ARABIC LETTER TEH ISOLATED FORM
89
+ 0x00ab: 0xfe99, # ARABIC LETTER THEH ISOLATED FORM
90
+ 0x00ac: 0x060c, # ARABIC COMMA
91
+ 0x00ad: 0xfe9d, # ARABIC LETTER JEEM ISOLATED FORM
92
+ 0x00ae: 0xfea1, # ARABIC LETTER HAH ISOLATED FORM
93
+ 0x00af: 0xfea5, # ARABIC LETTER KHAH ISOLATED FORM
94
+ 0x00b0: 0x0660, # ARABIC-INDIC DIGIT ZERO
95
+ 0x00b1: 0x0661, # ARABIC-INDIC DIGIT ONE
96
+ 0x00b2: 0x0662, # ARABIC-INDIC DIGIT TWO
97
+ 0x00b3: 0x0663, # ARABIC-INDIC DIGIT THREE
98
+ 0x00b4: 0x0664, # ARABIC-INDIC DIGIT FOUR
99
+ 0x00b5: 0x0665, # ARABIC-INDIC DIGIT FIVE
100
+ 0x00b6: 0x0666, # ARABIC-INDIC DIGIT SIX
101
+ 0x00b7: 0x0667, # ARABIC-INDIC DIGIT SEVEN
102
+ 0x00b8: 0x0668, # ARABIC-INDIC DIGIT EIGHT
103
+ 0x00b9: 0x0669, # ARABIC-INDIC DIGIT NINE
104
+ 0x00ba: 0xfed1, # ARABIC LETTER FEH ISOLATED FORM
105
+ 0x00bb: 0x061b, # ARABIC SEMICOLON
106
+ 0x00bc: 0xfeb1, # ARABIC LETTER SEEN ISOLATED FORM
107
+ 0x00bd: 0xfeb5, # ARABIC LETTER SHEEN ISOLATED FORM
108
+ 0x00be: 0xfeb9, # ARABIC LETTER SAD ISOLATED FORM
109
+ 0x00bf: 0x061f, # ARABIC QUESTION MARK
110
+ 0x00c0: 0x00a2, # CENT SIGN
111
+ 0x00c1: 0xfe80, # ARABIC LETTER HAMZA ISOLATED FORM
112
+ 0x00c2: 0xfe81, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
113
+ 0x00c3: 0xfe83, # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
114
+ 0x00c4: 0xfe85, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
115
+ 0x00c5: 0xfeca, # ARABIC LETTER AIN FINAL FORM
116
+ 0x00c6: 0xfe8b, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
117
+ 0x00c7: 0xfe8d, # ARABIC LETTER ALEF ISOLATED FORM
118
+ 0x00c8: 0xfe91, # ARABIC LETTER BEH INITIAL FORM
119
+ 0x00c9: 0xfe93, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
120
+ 0x00ca: 0xfe97, # ARABIC LETTER TEH INITIAL FORM
121
+ 0x00cb: 0xfe9b, # ARABIC LETTER THEH INITIAL FORM
122
+ 0x00cc: 0xfe9f, # ARABIC LETTER JEEM INITIAL FORM
123
+ 0x00cd: 0xfea3, # ARABIC LETTER HAH INITIAL FORM
124
+ 0x00ce: 0xfea7, # ARABIC LETTER KHAH INITIAL FORM
125
+ 0x00cf: 0xfea9, # ARABIC LETTER DAL ISOLATED FORM
126
+ 0x00d0: 0xfeab, # ARABIC LETTER THAL ISOLATED FORM
127
+ 0x00d1: 0xfead, # ARABIC LETTER REH ISOLATED FORM
128
+ 0x00d2: 0xfeaf, # ARABIC LETTER ZAIN ISOLATED FORM
129
+ 0x00d3: 0xfeb3, # ARABIC LETTER SEEN INITIAL FORM
130
+ 0x00d4: 0xfeb7, # ARABIC LETTER SHEEN INITIAL FORM
131
+ 0x00d5: 0xfebb, # ARABIC LETTER SAD INITIAL FORM
132
+ 0x00d6: 0xfebf, # ARABIC LETTER DAD INITIAL FORM
133
+ 0x00d7: 0xfec1, # ARABIC LETTER TAH ISOLATED FORM
134
+ 0x00d8: 0xfec5, # ARABIC LETTER ZAH ISOLATED FORM
135
+ 0x00d9: 0xfecb, # ARABIC LETTER AIN INITIAL FORM
136
+ 0x00da: 0xfecf, # ARABIC LETTER GHAIN INITIAL FORM
137
+ 0x00db: 0x00a6, # BROKEN VERTICAL BAR
138
+ 0x00dc: 0x00ac, # NOT SIGN
139
+ 0x00dd: 0x00f7, # DIVISION SIGN
140
+ 0x00de: 0x00d7, # MULTIPLICATION SIGN
141
+ 0x00df: 0xfec9, # ARABIC LETTER AIN ISOLATED FORM
142
+ 0x00e0: 0x0640, # ARABIC TATWEEL
143
+ 0x00e1: 0xfed3, # ARABIC LETTER FEH INITIAL FORM
144
+ 0x00e2: 0xfed7, # ARABIC LETTER QAF INITIAL FORM
145
+ 0x00e3: 0xfedb, # ARABIC LETTER KAF INITIAL FORM
146
+ 0x00e4: 0xfedf, # ARABIC LETTER LAM INITIAL FORM
147
+ 0x00e5: 0xfee3, # ARABIC LETTER MEEM INITIAL FORM
148
+ 0x00e6: 0xfee7, # ARABIC LETTER NOON INITIAL FORM
149
+ 0x00e7: 0xfeeb, # ARABIC LETTER HEH INITIAL FORM
150
+ 0x00e8: 0xfeed, # ARABIC LETTER WAW ISOLATED FORM
151
+ 0x00e9: 0xfeef, # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
152
+ 0x00ea: 0xfef3, # ARABIC LETTER YEH INITIAL FORM
153
+ 0x00eb: 0xfebd, # ARABIC LETTER DAD ISOLATED FORM
154
+ 0x00ec: 0xfecc, # ARABIC LETTER AIN MEDIAL FORM
155
+ 0x00ed: 0xfece, # ARABIC LETTER GHAIN FINAL FORM
156
+ 0x00ee: 0xfecd, # ARABIC LETTER GHAIN ISOLATED FORM
157
+ 0x00ef: 0xfee1, # ARABIC LETTER MEEM ISOLATED FORM
158
+ 0x00f0: 0xfe7d, # ARABIC SHADDA MEDIAL FORM
159
+ 0x00f1: 0x0651, # ARABIC SHADDAH
160
+ 0x00f2: 0xfee5, # ARABIC LETTER NOON ISOLATED FORM
161
+ 0x00f3: 0xfee9, # ARABIC LETTER HEH ISOLATED FORM
162
+ 0x00f4: 0xfeec, # ARABIC LETTER HEH MEDIAL FORM
163
+ 0x00f5: 0xfef0, # ARABIC LETTER ALEF MAKSURA FINAL FORM
164
+ 0x00f6: 0xfef2, # ARABIC LETTER YEH FINAL FORM
165
+ 0x00f7: 0xfed0, # ARABIC LETTER GHAIN MEDIAL FORM
166
+ 0x00f8: 0xfed5, # ARABIC LETTER QAF ISOLATED FORM
167
+ 0x00f9: 0xfef5, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
168
+ 0x00fa: 0xfef6, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
169
+ 0x00fb: 0xfedd, # ARABIC LETTER LAM ISOLATED FORM
170
+ 0x00fc: 0xfed9, # ARABIC LETTER KAF ISOLATED FORM
171
+ 0x00fd: 0xfef1, # ARABIC LETTER YEH ISOLATED FORM
172
+ 0x00fe: 0x25a0, # BLACK SQUARE
173
+ 0x00ff: None, # UNDEFINED
174
+ })
175
+
176
+ ### Decoding Table
177
+
178
+ decoding_table = (
179
+ '\x00' # 0x0000 -> NULL
180
+ '\x01' # 0x0001 -> START OF HEADING
181
+ '\x02' # 0x0002 -> START OF TEXT
182
+ '\x03' # 0x0003 -> END OF TEXT
183
+ '\x04' # 0x0004 -> END OF TRANSMISSION
184
+ '\x05' # 0x0005 -> ENQUIRY
185
+ '\x06' # 0x0006 -> ACKNOWLEDGE
186
+ '\x07' # 0x0007 -> BELL
187
+ '\x08' # 0x0008 -> BACKSPACE
188
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
189
+ '\n' # 0x000a -> LINE FEED
190
+ '\x0b' # 0x000b -> VERTICAL TABULATION
191
+ '\x0c' # 0x000c -> FORM FEED
192
+ '\r' # 0x000d -> CARRIAGE RETURN
193
+ '\x0e' # 0x000e -> SHIFT OUT
194
+ '\x0f' # 0x000f -> SHIFT IN
195
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
196
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
197
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
198
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
199
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
200
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
201
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
202
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
203
+ '\x18' # 0x0018 -> CANCEL
204
+ '\x19' # 0x0019 -> END OF MEDIUM
205
+ '\x1a' # 0x001a -> SUBSTITUTE
206
+ '\x1b' # 0x001b -> ESCAPE
207
+ '\x1c' # 0x001c -> FILE SEPARATOR
208
+ '\x1d' # 0x001d -> GROUP SEPARATOR
209
+ '\x1e' # 0x001e -> RECORD SEPARATOR
210
+ '\x1f' # 0x001f -> UNIT SEPARATOR
211
+ ' ' # 0x0020 -> SPACE
212
+ '!' # 0x0021 -> EXCLAMATION MARK
213
+ '"' # 0x0022 -> QUOTATION MARK
214
+ '#' # 0x0023 -> NUMBER SIGN
215
+ '$' # 0x0024 -> DOLLAR SIGN
216
+ '\u066a' # 0x0025 -> ARABIC PERCENT SIGN
217
+ '&' # 0x0026 -> AMPERSAND
218
+ "'" # 0x0027 -> APOSTROPHE
219
+ '(' # 0x0028 -> LEFT PARENTHESIS
220
+ ')' # 0x0029 -> RIGHT PARENTHESIS
221
+ '*' # 0x002a -> ASTERISK
222
+ '+' # 0x002b -> PLUS SIGN
223
+ ',' # 0x002c -> COMMA
224
+ '-' # 0x002d -> HYPHEN-MINUS
225
+ '.' # 0x002e -> FULL STOP
226
+ '/' # 0x002f -> SOLIDUS
227
+ '0' # 0x0030 -> DIGIT ZERO
228
+ '1' # 0x0031 -> DIGIT ONE
229
+ '2' # 0x0032 -> DIGIT TWO
230
+ '3' # 0x0033 -> DIGIT THREE
231
+ '4' # 0x0034 -> DIGIT FOUR
232
+ '5' # 0x0035 -> DIGIT FIVE
233
+ '6' # 0x0036 -> DIGIT SIX
234
+ '7' # 0x0037 -> DIGIT SEVEN
235
+ '8' # 0x0038 -> DIGIT EIGHT
236
+ '9' # 0x0039 -> DIGIT NINE
237
+ ':' # 0x003a -> COLON
238
+ ';' # 0x003b -> SEMICOLON
239
+ '<' # 0x003c -> LESS-THAN SIGN
240
+ '=' # 0x003d -> EQUALS SIGN
241
+ '>' # 0x003e -> GREATER-THAN SIGN
242
+ '?' # 0x003f -> QUESTION MARK
243
+ '@' # 0x0040 -> COMMERCIAL AT
244
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
245
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
246
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
247
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
248
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
249
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
250
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
251
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
252
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
253
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
254
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
255
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
256
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
257
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
258
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
259
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
260
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
261
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
262
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
263
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
264
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
265
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
266
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
267
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
268
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
269
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
270
+ '[' # 0x005b -> LEFT SQUARE BRACKET
271
+ '\\' # 0x005c -> REVERSE SOLIDUS
272
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
273
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
274
+ '_' # 0x005f -> LOW LINE
275
+ '`' # 0x0060 -> GRAVE ACCENT
276
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
277
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
278
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
279
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
280
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
281
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
282
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
283
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
284
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
285
+ 'j' # 0x006a -> LATIN SMALL LETTER J
286
+ 'k' # 0x006b -> LATIN SMALL LETTER K
287
+ 'l' # 0x006c -> LATIN SMALL LETTER L
288
+ 'm' # 0x006d -> LATIN SMALL LETTER M
289
+ 'n' # 0x006e -> LATIN SMALL LETTER N
290
+ 'o' # 0x006f -> LATIN SMALL LETTER O
291
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
292
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
293
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
294
+ 's' # 0x0073 -> LATIN SMALL LETTER S
295
+ 't' # 0x0074 -> LATIN SMALL LETTER T
296
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
297
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
298
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
299
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
300
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
301
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
302
+ '{' # 0x007b -> LEFT CURLY BRACKET
303
+ '|' # 0x007c -> VERTICAL LINE
304
+ '}' # 0x007d -> RIGHT CURLY BRACKET
305
+ '~' # 0x007e -> TILDE
306
+ '\x7f' # 0x007f -> DELETE
307
+ '\xb0' # 0x0080 -> DEGREE SIGN
308
+ '\xb7' # 0x0081 -> MIDDLE DOT
309
+ '\u2219' # 0x0082 -> BULLET OPERATOR
310
+ '\u221a' # 0x0083 -> SQUARE ROOT
311
+ '\u2592' # 0x0084 -> MEDIUM SHADE
312
+ '\u2500' # 0x0085 -> FORMS LIGHT HORIZONTAL
313
+ '\u2502' # 0x0086 -> FORMS LIGHT VERTICAL
314
+ '\u253c' # 0x0087 -> FORMS LIGHT VERTICAL AND HORIZONTAL
315
+ '\u2524' # 0x0088 -> FORMS LIGHT VERTICAL AND LEFT
316
+ '\u252c' # 0x0089 -> FORMS LIGHT DOWN AND HORIZONTAL
317
+ '\u251c' # 0x008a -> FORMS LIGHT VERTICAL AND RIGHT
318
+ '\u2534' # 0x008b -> FORMS LIGHT UP AND HORIZONTAL
319
+ '\u2510' # 0x008c -> FORMS LIGHT DOWN AND LEFT
320
+ '\u250c' # 0x008d -> FORMS LIGHT DOWN AND RIGHT
321
+ '\u2514' # 0x008e -> FORMS LIGHT UP AND RIGHT
322
+ '\u2518' # 0x008f -> FORMS LIGHT UP AND LEFT
323
+ '\u03b2' # 0x0090 -> GREEK SMALL BETA
324
+ '\u221e' # 0x0091 -> INFINITY
325
+ '\u03c6' # 0x0092 -> GREEK SMALL PHI
326
+ '\xb1' # 0x0093 -> PLUS-OR-MINUS SIGN
327
+ '\xbd' # 0x0094 -> FRACTION 1/2
328
+ '\xbc' # 0x0095 -> FRACTION 1/4
329
+ '\u2248' # 0x0096 -> ALMOST EQUAL TO
330
+ '\xab' # 0x0097 -> LEFT POINTING GUILLEMET
331
+ '\xbb' # 0x0098 -> RIGHT POINTING GUILLEMET
332
+ '\ufef7' # 0x0099 -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
333
+ '\ufef8' # 0x009a -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
334
+ '\ufffe' # 0x009b -> UNDEFINED
335
+ '\ufffe' # 0x009c -> UNDEFINED
336
+ '\ufefb' # 0x009d -> ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
337
+ '\ufefc' # 0x009e -> ARABIC LIGATURE LAM WITH ALEF FINAL FORM
338
+ '\ufffe' # 0x009f -> UNDEFINED
339
+ '\xa0' # 0x00a0 -> NON-BREAKING SPACE
340
+ '\xad' # 0x00a1 -> SOFT HYPHEN
341
+ '\ufe82' # 0x00a2 -> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
342
+ '\xa3' # 0x00a3 -> POUND SIGN
343
+ '\xa4' # 0x00a4 -> CURRENCY SIGN
344
+ '\ufe84' # 0x00a5 -> ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
345
+ '\ufffe' # 0x00a6 -> UNDEFINED
346
+ '\ufffe' # 0x00a7 -> UNDEFINED
347
+ '\ufe8e' # 0x00a8 -> ARABIC LETTER ALEF FINAL FORM
348
+ '\ufe8f' # 0x00a9 -> ARABIC LETTER BEH ISOLATED FORM
349
+ '\ufe95' # 0x00aa -> ARABIC LETTER TEH ISOLATED FORM
350
+ '\ufe99' # 0x00ab -> ARABIC LETTER THEH ISOLATED FORM
351
+ '\u060c' # 0x00ac -> ARABIC COMMA
352
+ '\ufe9d' # 0x00ad -> ARABIC LETTER JEEM ISOLATED FORM
353
+ '\ufea1' # 0x00ae -> ARABIC LETTER HAH ISOLATED FORM
354
+ '\ufea5' # 0x00af -> ARABIC LETTER KHAH ISOLATED FORM
355
+ '\u0660' # 0x00b0 -> ARABIC-INDIC DIGIT ZERO
356
+ '\u0661' # 0x00b1 -> ARABIC-INDIC DIGIT ONE
357
+ '\u0662' # 0x00b2 -> ARABIC-INDIC DIGIT TWO
358
+ '\u0663' # 0x00b3 -> ARABIC-INDIC DIGIT THREE
359
+ '\u0664' # 0x00b4 -> ARABIC-INDIC DIGIT FOUR
360
+ '\u0665' # 0x00b5 -> ARABIC-INDIC DIGIT FIVE
361
+ '\u0666' # 0x00b6 -> ARABIC-INDIC DIGIT SIX
362
+ '\u0667' # 0x00b7 -> ARABIC-INDIC DIGIT SEVEN
363
+ '\u0668' # 0x00b8 -> ARABIC-INDIC DIGIT EIGHT
364
+ '\u0669' # 0x00b9 -> ARABIC-INDIC DIGIT NINE
365
+ '\ufed1' # 0x00ba -> ARABIC LETTER FEH ISOLATED FORM
366
+ '\u061b' # 0x00bb -> ARABIC SEMICOLON
367
+ '\ufeb1' # 0x00bc -> ARABIC LETTER SEEN ISOLATED FORM
368
+ '\ufeb5' # 0x00bd -> ARABIC LETTER SHEEN ISOLATED FORM
369
+ '\ufeb9' # 0x00be -> ARABIC LETTER SAD ISOLATED FORM
370
+ '\u061f' # 0x00bf -> ARABIC QUESTION MARK
371
+ '\xa2' # 0x00c0 -> CENT SIGN
372
+ '\ufe80' # 0x00c1 -> ARABIC LETTER HAMZA ISOLATED FORM
373
+ '\ufe81' # 0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
374
+ '\ufe83' # 0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
375
+ '\ufe85' # 0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
376
+ '\ufeca' # 0x00c5 -> ARABIC LETTER AIN FINAL FORM
377
+ '\ufe8b' # 0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
378
+ '\ufe8d' # 0x00c7 -> ARABIC LETTER ALEF ISOLATED FORM
379
+ '\ufe91' # 0x00c8 -> ARABIC LETTER BEH INITIAL FORM
380
+ '\ufe93' # 0x00c9 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
381
+ '\ufe97' # 0x00ca -> ARABIC LETTER TEH INITIAL FORM
382
+ '\ufe9b' # 0x00cb -> ARABIC LETTER THEH INITIAL FORM
383
+ '\ufe9f' # 0x00cc -> ARABIC LETTER JEEM INITIAL FORM
384
+ '\ufea3' # 0x00cd -> ARABIC LETTER HAH INITIAL FORM
385
+ '\ufea7' # 0x00ce -> ARABIC LETTER KHAH INITIAL FORM
386
+ '\ufea9' # 0x00cf -> ARABIC LETTER DAL ISOLATED FORM
387
+ '\ufeab' # 0x00d0 -> ARABIC LETTER THAL ISOLATED FORM
388
+ '\ufead' # 0x00d1 -> ARABIC LETTER REH ISOLATED FORM
389
+ '\ufeaf' # 0x00d2 -> ARABIC LETTER ZAIN ISOLATED FORM
390
+ '\ufeb3' # 0x00d3 -> ARABIC LETTER SEEN INITIAL FORM
391
+ '\ufeb7' # 0x00d4 -> ARABIC LETTER SHEEN INITIAL FORM
392
+ '\ufebb' # 0x00d5 -> ARABIC LETTER SAD INITIAL FORM
393
+ '\ufebf' # 0x00d6 -> ARABIC LETTER DAD INITIAL FORM
394
+ '\ufec1' # 0x00d7 -> ARABIC LETTER TAH ISOLATED FORM
395
+ '\ufec5' # 0x00d8 -> ARABIC LETTER ZAH ISOLATED FORM
396
+ '\ufecb' # 0x00d9 -> ARABIC LETTER AIN INITIAL FORM
397
+ '\ufecf' # 0x00da -> ARABIC LETTER GHAIN INITIAL FORM
398
+ '\xa6' # 0x00db -> BROKEN VERTICAL BAR
399
+ '\xac' # 0x00dc -> NOT SIGN
400
+ '\xf7' # 0x00dd -> DIVISION SIGN
401
+ '\xd7' # 0x00de -> MULTIPLICATION SIGN
402
+ '\ufec9' # 0x00df -> ARABIC LETTER AIN ISOLATED FORM
403
+ '\u0640' # 0x00e0 -> ARABIC TATWEEL
404
+ '\ufed3' # 0x00e1 -> ARABIC LETTER FEH INITIAL FORM
405
+ '\ufed7' # 0x00e2 -> ARABIC LETTER QAF INITIAL FORM
406
+ '\ufedb' # 0x00e3 -> ARABIC LETTER KAF INITIAL FORM
407
+ '\ufedf' # 0x00e4 -> ARABIC LETTER LAM INITIAL FORM
408
+ '\ufee3' # 0x00e5 -> ARABIC LETTER MEEM INITIAL FORM
409
+ '\ufee7' # 0x00e6 -> ARABIC LETTER NOON INITIAL FORM
410
+ '\ufeeb' # 0x00e7 -> ARABIC LETTER HEH INITIAL FORM
411
+ '\ufeed' # 0x00e8 -> ARABIC LETTER WAW ISOLATED FORM
412
+ '\ufeef' # 0x00e9 -> ARABIC LETTER ALEF MAKSURA ISOLATED FORM
413
+ '\ufef3' # 0x00ea -> ARABIC LETTER YEH INITIAL FORM
414
+ '\ufebd' # 0x00eb -> ARABIC LETTER DAD ISOLATED FORM
415
+ '\ufecc' # 0x00ec -> ARABIC LETTER AIN MEDIAL FORM
416
+ '\ufece' # 0x00ed -> ARABIC LETTER GHAIN FINAL FORM
417
+ '\ufecd' # 0x00ee -> ARABIC LETTER GHAIN ISOLATED FORM
418
+ '\ufee1' # 0x00ef -> ARABIC LETTER MEEM ISOLATED FORM
419
+ '\ufe7d' # 0x00f0 -> ARABIC SHADDA MEDIAL FORM
420
+ '\u0651' # 0x00f1 -> ARABIC SHADDAH
421
+ '\ufee5' # 0x00f2 -> ARABIC LETTER NOON ISOLATED FORM
422
+ '\ufee9' # 0x00f3 -> ARABIC LETTER HEH ISOLATED FORM
423
+ '\ufeec' # 0x00f4 -> ARABIC LETTER HEH MEDIAL FORM
424
+ '\ufef0' # 0x00f5 -> ARABIC LETTER ALEF MAKSURA FINAL FORM
425
+ '\ufef2' # 0x00f6 -> ARABIC LETTER YEH FINAL FORM
426
+ '\ufed0' # 0x00f7 -> ARABIC LETTER GHAIN MEDIAL FORM
427
+ '\ufed5' # 0x00f8 -> ARABIC LETTER QAF ISOLATED FORM
428
+ '\ufef5' # 0x00f9 -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
429
+ '\ufef6' # 0x00fa -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
430
+ '\ufedd' # 0x00fb -> ARABIC LETTER LAM ISOLATED FORM
431
+ '\ufed9' # 0x00fc -> ARABIC LETTER KAF ISOLATED FORM
432
+ '\ufef1' # 0x00fd -> ARABIC LETTER YEH ISOLATED FORM
433
+ '\u25a0' # 0x00fe -> BLACK SQUARE
434
+ '\ufffe' # 0x00ff -> UNDEFINED
435
+ )
436
+
437
+ ### Encoding Map
438
+
439
+ encoding_map = {
440
+ 0x0000: 0x0000, # NULL
441
+ 0x0001: 0x0001, # START OF HEADING
442
+ 0x0002: 0x0002, # START OF TEXT
443
+ 0x0003: 0x0003, # END OF TEXT
444
+ 0x0004: 0x0004, # END OF TRANSMISSION
445
+ 0x0005: 0x0005, # ENQUIRY
446
+ 0x0006: 0x0006, # ACKNOWLEDGE
447
+ 0x0007: 0x0007, # BELL
448
+ 0x0008: 0x0008, # BACKSPACE
449
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
450
+ 0x000a: 0x000a, # LINE FEED
451
+ 0x000b: 0x000b, # VERTICAL TABULATION
452
+ 0x000c: 0x000c, # FORM FEED
453
+ 0x000d: 0x000d, # CARRIAGE RETURN
454
+ 0x000e: 0x000e, # SHIFT OUT
455
+ 0x000f: 0x000f, # SHIFT IN
456
+ 0x0010: 0x0010, # DATA LINK ESCAPE
457
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
458
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
459
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
460
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
461
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
462
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
463
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
464
+ 0x0018: 0x0018, # CANCEL
465
+ 0x0019: 0x0019, # END OF MEDIUM
466
+ 0x001a: 0x001a, # SUBSTITUTE
467
+ 0x001b: 0x001b, # ESCAPE
468
+ 0x001c: 0x001c, # FILE SEPARATOR
469
+ 0x001d: 0x001d, # GROUP SEPARATOR
470
+ 0x001e: 0x001e, # RECORD SEPARATOR
471
+ 0x001f: 0x001f, # UNIT SEPARATOR
472
+ 0x0020: 0x0020, # SPACE
473
+ 0x0021: 0x0021, # EXCLAMATION MARK
474
+ 0x0022: 0x0022, # QUOTATION MARK
475
+ 0x0023: 0x0023, # NUMBER SIGN
476
+ 0x0024: 0x0024, # DOLLAR SIGN
477
+ 0x0026: 0x0026, # AMPERSAND
478
+ 0x0027: 0x0027, # APOSTROPHE
479
+ 0x0028: 0x0028, # LEFT PARENTHESIS
480
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
481
+ 0x002a: 0x002a, # ASTERISK
482
+ 0x002b: 0x002b, # PLUS SIGN
483
+ 0x002c: 0x002c, # COMMA
484
+ 0x002d: 0x002d, # HYPHEN-MINUS
485
+ 0x002e: 0x002e, # FULL STOP
486
+ 0x002f: 0x002f, # SOLIDUS
487
+ 0x0030: 0x0030, # DIGIT ZERO
488
+ 0x0031: 0x0031, # DIGIT ONE
489
+ 0x0032: 0x0032, # DIGIT TWO
490
+ 0x0033: 0x0033, # DIGIT THREE
491
+ 0x0034: 0x0034, # DIGIT FOUR
492
+ 0x0035: 0x0035, # DIGIT FIVE
493
+ 0x0036: 0x0036, # DIGIT SIX
494
+ 0x0037: 0x0037, # DIGIT SEVEN
495
+ 0x0038: 0x0038, # DIGIT EIGHT
496
+ 0x0039: 0x0039, # DIGIT NINE
497
+ 0x003a: 0x003a, # COLON
498
+ 0x003b: 0x003b, # SEMICOLON
499
+ 0x003c: 0x003c, # LESS-THAN SIGN
500
+ 0x003d: 0x003d, # EQUALS SIGN
501
+ 0x003e: 0x003e, # GREATER-THAN SIGN
502
+ 0x003f: 0x003f, # QUESTION MARK
503
+ 0x0040: 0x0040, # COMMERCIAL AT
504
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
505
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
506
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
507
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
508
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
509
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
510
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
511
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
512
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
513
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
514
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
515
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
516
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
517
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
518
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
519
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
520
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
521
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
522
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
523
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
524
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
525
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
526
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
527
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
528
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
529
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
530
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
531
+ 0x005c: 0x005c, # REVERSE SOLIDUS
532
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
533
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
534
+ 0x005f: 0x005f, # LOW LINE
535
+ 0x0060: 0x0060, # GRAVE ACCENT
536
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
537
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
538
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
539
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
540
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
541
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
542
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
543
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
544
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
545
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
546
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
547
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
548
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
549
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
550
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
551
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
552
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
553
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
554
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
555
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
556
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
557
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
558
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
559
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
560
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
561
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
562
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
563
+ 0x007c: 0x007c, # VERTICAL LINE
564
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
565
+ 0x007e: 0x007e, # TILDE
566
+ 0x007f: 0x007f, # DELETE
567
+ 0x00a0: 0x00a0, # NON-BREAKING SPACE
568
+ 0x00a2: 0x00c0, # CENT SIGN
569
+ 0x00a3: 0x00a3, # POUND SIGN
570
+ 0x00a4: 0x00a4, # CURRENCY SIGN
571
+ 0x00a6: 0x00db, # BROKEN VERTICAL BAR
572
+ 0x00ab: 0x0097, # LEFT POINTING GUILLEMET
573
+ 0x00ac: 0x00dc, # NOT SIGN
574
+ 0x00ad: 0x00a1, # SOFT HYPHEN
575
+ 0x00b0: 0x0080, # DEGREE SIGN
576
+ 0x00b1: 0x0093, # PLUS-OR-MINUS SIGN
577
+ 0x00b7: 0x0081, # MIDDLE DOT
578
+ 0x00bb: 0x0098, # RIGHT POINTING GUILLEMET
579
+ 0x00bc: 0x0095, # FRACTION 1/4
580
+ 0x00bd: 0x0094, # FRACTION 1/2
581
+ 0x00d7: 0x00de, # MULTIPLICATION SIGN
582
+ 0x00f7: 0x00dd, # DIVISION SIGN
583
+ 0x03b2: 0x0090, # GREEK SMALL BETA
584
+ 0x03c6: 0x0092, # GREEK SMALL PHI
585
+ 0x060c: 0x00ac, # ARABIC COMMA
586
+ 0x061b: 0x00bb, # ARABIC SEMICOLON
587
+ 0x061f: 0x00bf, # ARABIC QUESTION MARK
588
+ 0x0640: 0x00e0, # ARABIC TATWEEL
589
+ 0x0651: 0x00f1, # ARABIC SHADDAH
590
+ 0x0660: 0x00b0, # ARABIC-INDIC DIGIT ZERO
591
+ 0x0661: 0x00b1, # ARABIC-INDIC DIGIT ONE
592
+ 0x0662: 0x00b2, # ARABIC-INDIC DIGIT TWO
593
+ 0x0663: 0x00b3, # ARABIC-INDIC DIGIT THREE
594
+ 0x0664: 0x00b4, # ARABIC-INDIC DIGIT FOUR
595
+ 0x0665: 0x00b5, # ARABIC-INDIC DIGIT FIVE
596
+ 0x0666: 0x00b6, # ARABIC-INDIC DIGIT SIX
597
+ 0x0667: 0x00b7, # ARABIC-INDIC DIGIT SEVEN
598
+ 0x0668: 0x00b8, # ARABIC-INDIC DIGIT EIGHT
599
+ 0x0669: 0x00b9, # ARABIC-INDIC DIGIT NINE
600
+ 0x066a: 0x0025, # ARABIC PERCENT SIGN
601
+ 0x2219: 0x0082, # BULLET OPERATOR
602
+ 0x221a: 0x0083, # SQUARE ROOT
603
+ 0x221e: 0x0091, # INFINITY
604
+ 0x2248: 0x0096, # ALMOST EQUAL TO
605
+ 0x2500: 0x0085, # FORMS LIGHT HORIZONTAL
606
+ 0x2502: 0x0086, # FORMS LIGHT VERTICAL
607
+ 0x250c: 0x008d, # FORMS LIGHT DOWN AND RIGHT
608
+ 0x2510: 0x008c, # FORMS LIGHT DOWN AND LEFT
609
+ 0x2514: 0x008e, # FORMS LIGHT UP AND RIGHT
610
+ 0x2518: 0x008f, # FORMS LIGHT UP AND LEFT
611
+ 0x251c: 0x008a, # FORMS LIGHT VERTICAL AND RIGHT
612
+ 0x2524: 0x0088, # FORMS LIGHT VERTICAL AND LEFT
613
+ 0x252c: 0x0089, # FORMS LIGHT DOWN AND HORIZONTAL
614
+ 0x2534: 0x008b, # FORMS LIGHT UP AND HORIZONTAL
615
+ 0x253c: 0x0087, # FORMS LIGHT VERTICAL AND HORIZONTAL
616
+ 0x2592: 0x0084, # MEDIUM SHADE
617
+ 0x25a0: 0x00fe, # BLACK SQUARE
618
+ 0xfe7d: 0x00f0, # ARABIC SHADDA MEDIAL FORM
619
+ 0xfe80: 0x00c1, # ARABIC LETTER HAMZA ISOLATED FORM
620
+ 0xfe81: 0x00c2, # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
621
+ 0xfe82: 0x00a2, # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
622
+ 0xfe83: 0x00c3, # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
623
+ 0xfe84: 0x00a5, # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
624
+ 0xfe85: 0x00c4, # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
625
+ 0xfe8b: 0x00c6, # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
626
+ 0xfe8d: 0x00c7, # ARABIC LETTER ALEF ISOLATED FORM
627
+ 0xfe8e: 0x00a8, # ARABIC LETTER ALEF FINAL FORM
628
+ 0xfe8f: 0x00a9, # ARABIC LETTER BEH ISOLATED FORM
629
+ 0xfe91: 0x00c8, # ARABIC LETTER BEH INITIAL FORM
630
+ 0xfe93: 0x00c9, # ARABIC LETTER TEH MARBUTA ISOLATED FORM
631
+ 0xfe95: 0x00aa, # ARABIC LETTER TEH ISOLATED FORM
632
+ 0xfe97: 0x00ca, # ARABIC LETTER TEH INITIAL FORM
633
+ 0xfe99: 0x00ab, # ARABIC LETTER THEH ISOLATED FORM
634
+ 0xfe9b: 0x00cb, # ARABIC LETTER THEH INITIAL FORM
635
+ 0xfe9d: 0x00ad, # ARABIC LETTER JEEM ISOLATED FORM
636
+ 0xfe9f: 0x00cc, # ARABIC LETTER JEEM INITIAL FORM
637
+ 0xfea1: 0x00ae, # ARABIC LETTER HAH ISOLATED FORM
638
+ 0xfea3: 0x00cd, # ARABIC LETTER HAH INITIAL FORM
639
+ 0xfea5: 0x00af, # ARABIC LETTER KHAH ISOLATED FORM
640
+ 0xfea7: 0x00ce, # ARABIC LETTER KHAH INITIAL FORM
641
+ 0xfea9: 0x00cf, # ARABIC LETTER DAL ISOLATED FORM
642
+ 0xfeab: 0x00d0, # ARABIC LETTER THAL ISOLATED FORM
643
+ 0xfead: 0x00d1, # ARABIC LETTER REH ISOLATED FORM
644
+ 0xfeaf: 0x00d2, # ARABIC LETTER ZAIN ISOLATED FORM
645
+ 0xfeb1: 0x00bc, # ARABIC LETTER SEEN ISOLATED FORM
646
+ 0xfeb3: 0x00d3, # ARABIC LETTER SEEN INITIAL FORM
647
+ 0xfeb5: 0x00bd, # ARABIC LETTER SHEEN ISOLATED FORM
648
+ 0xfeb7: 0x00d4, # ARABIC LETTER SHEEN INITIAL FORM
649
+ 0xfeb9: 0x00be, # ARABIC LETTER SAD ISOLATED FORM
650
+ 0xfebb: 0x00d5, # ARABIC LETTER SAD INITIAL FORM
651
+ 0xfebd: 0x00eb, # ARABIC LETTER DAD ISOLATED FORM
652
+ 0xfebf: 0x00d6, # ARABIC LETTER DAD INITIAL FORM
653
+ 0xfec1: 0x00d7, # ARABIC LETTER TAH ISOLATED FORM
654
+ 0xfec5: 0x00d8, # ARABIC LETTER ZAH ISOLATED FORM
655
+ 0xfec9: 0x00df, # ARABIC LETTER AIN ISOLATED FORM
656
+ 0xfeca: 0x00c5, # ARABIC LETTER AIN FINAL FORM
657
+ 0xfecb: 0x00d9, # ARABIC LETTER AIN INITIAL FORM
658
+ 0xfecc: 0x00ec, # ARABIC LETTER AIN MEDIAL FORM
659
+ 0xfecd: 0x00ee, # ARABIC LETTER GHAIN ISOLATED FORM
660
+ 0xfece: 0x00ed, # ARABIC LETTER GHAIN FINAL FORM
661
+ 0xfecf: 0x00da, # ARABIC LETTER GHAIN INITIAL FORM
662
+ 0xfed0: 0x00f7, # ARABIC LETTER GHAIN MEDIAL FORM
663
+ 0xfed1: 0x00ba, # ARABIC LETTER FEH ISOLATED FORM
664
+ 0xfed3: 0x00e1, # ARABIC LETTER FEH INITIAL FORM
665
+ 0xfed5: 0x00f8, # ARABIC LETTER QAF ISOLATED FORM
666
+ 0xfed7: 0x00e2, # ARABIC LETTER QAF INITIAL FORM
667
+ 0xfed9: 0x00fc, # ARABIC LETTER KAF ISOLATED FORM
668
+ 0xfedb: 0x00e3, # ARABIC LETTER KAF INITIAL FORM
669
+ 0xfedd: 0x00fb, # ARABIC LETTER LAM ISOLATED FORM
670
+ 0xfedf: 0x00e4, # ARABIC LETTER LAM INITIAL FORM
671
+ 0xfee1: 0x00ef, # ARABIC LETTER MEEM ISOLATED FORM
672
+ 0xfee3: 0x00e5, # ARABIC LETTER MEEM INITIAL FORM
673
+ 0xfee5: 0x00f2, # ARABIC LETTER NOON ISOLATED FORM
674
+ 0xfee7: 0x00e6, # ARABIC LETTER NOON INITIAL FORM
675
+ 0xfee9: 0x00f3, # ARABIC LETTER HEH ISOLATED FORM
676
+ 0xfeeb: 0x00e7, # ARABIC LETTER HEH INITIAL FORM
677
+ 0xfeec: 0x00f4, # ARABIC LETTER HEH MEDIAL FORM
678
+ 0xfeed: 0x00e8, # ARABIC LETTER WAW ISOLATED FORM
679
+ 0xfeef: 0x00e9, # ARABIC LETTER ALEF MAKSURA ISOLATED FORM
680
+ 0xfef0: 0x00f5, # ARABIC LETTER ALEF MAKSURA FINAL FORM
681
+ 0xfef1: 0x00fd, # ARABIC LETTER YEH ISOLATED FORM
682
+ 0xfef2: 0x00f6, # ARABIC LETTER YEH FINAL FORM
683
+ 0xfef3: 0x00ea, # ARABIC LETTER YEH INITIAL FORM
684
+ 0xfef5: 0x00f9, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
685
+ 0xfef6: 0x00fa, # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
686
+ 0xfef7: 0x0099, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
687
+ 0xfef8: 0x009a, # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
688
+ 0xfefb: 0x009d, # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
689
+ 0xfefc: 0x009e, # ARABIC LIGATURE LAM WITH ALEF FINAL FORM
690
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp865.py ADDED
@@ -0,0 +1,698 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'VENDORS/MICSFT/PC/CP865.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_map)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='cp865',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+ ### Decoding Map
45
+
46
+ decoding_map = codecs.make_identity_dict(range(256))
47
+ decoding_map.update({
48
+ 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
49
+ 0x0081: 0x00fc, # LATIN SMALL LETTER U WITH DIAERESIS
50
+ 0x0082: 0x00e9, # LATIN SMALL LETTER E WITH ACUTE
51
+ 0x0083: 0x00e2, # LATIN SMALL LETTER A WITH CIRCUMFLEX
52
+ 0x0084: 0x00e4, # LATIN SMALL LETTER A WITH DIAERESIS
53
+ 0x0085: 0x00e0, # LATIN SMALL LETTER A WITH GRAVE
54
+ 0x0086: 0x00e5, # LATIN SMALL LETTER A WITH RING ABOVE
55
+ 0x0087: 0x00e7, # LATIN SMALL LETTER C WITH CEDILLA
56
+ 0x0088: 0x00ea, # LATIN SMALL LETTER E WITH CIRCUMFLEX
57
+ 0x0089: 0x00eb, # LATIN SMALL LETTER E WITH DIAERESIS
58
+ 0x008a: 0x00e8, # LATIN SMALL LETTER E WITH GRAVE
59
+ 0x008b: 0x00ef, # LATIN SMALL LETTER I WITH DIAERESIS
60
+ 0x008c: 0x00ee, # LATIN SMALL LETTER I WITH CIRCUMFLEX
61
+ 0x008d: 0x00ec, # LATIN SMALL LETTER I WITH GRAVE
62
+ 0x008e: 0x00c4, # LATIN CAPITAL LETTER A WITH DIAERESIS
63
+ 0x008f: 0x00c5, # LATIN CAPITAL LETTER A WITH RING ABOVE
64
+ 0x0090: 0x00c9, # LATIN CAPITAL LETTER E WITH ACUTE
65
+ 0x0091: 0x00e6, # LATIN SMALL LIGATURE AE
66
+ 0x0092: 0x00c6, # LATIN CAPITAL LIGATURE AE
67
+ 0x0093: 0x00f4, # LATIN SMALL LETTER O WITH CIRCUMFLEX
68
+ 0x0094: 0x00f6, # LATIN SMALL LETTER O WITH DIAERESIS
69
+ 0x0095: 0x00f2, # LATIN SMALL LETTER O WITH GRAVE
70
+ 0x0096: 0x00fb, # LATIN SMALL LETTER U WITH CIRCUMFLEX
71
+ 0x0097: 0x00f9, # LATIN SMALL LETTER U WITH GRAVE
72
+ 0x0098: 0x00ff, # LATIN SMALL LETTER Y WITH DIAERESIS
73
+ 0x0099: 0x00d6, # LATIN CAPITAL LETTER O WITH DIAERESIS
74
+ 0x009a: 0x00dc, # LATIN CAPITAL LETTER U WITH DIAERESIS
75
+ 0x009b: 0x00f8, # LATIN SMALL LETTER O WITH STROKE
76
+ 0x009c: 0x00a3, # POUND SIGN
77
+ 0x009d: 0x00d8, # LATIN CAPITAL LETTER O WITH STROKE
78
+ 0x009e: 0x20a7, # PESETA SIGN
79
+ 0x009f: 0x0192, # LATIN SMALL LETTER F WITH HOOK
80
+ 0x00a0: 0x00e1, # LATIN SMALL LETTER A WITH ACUTE
81
+ 0x00a1: 0x00ed, # LATIN SMALL LETTER I WITH ACUTE
82
+ 0x00a2: 0x00f3, # LATIN SMALL LETTER O WITH ACUTE
83
+ 0x00a3: 0x00fa, # LATIN SMALL LETTER U WITH ACUTE
84
+ 0x00a4: 0x00f1, # LATIN SMALL LETTER N WITH TILDE
85
+ 0x00a5: 0x00d1, # LATIN CAPITAL LETTER N WITH TILDE
86
+ 0x00a6: 0x00aa, # FEMININE ORDINAL INDICATOR
87
+ 0x00a7: 0x00ba, # MASCULINE ORDINAL INDICATOR
88
+ 0x00a8: 0x00bf, # INVERTED QUESTION MARK
89
+ 0x00a9: 0x2310, # REVERSED NOT SIGN
90
+ 0x00aa: 0x00ac, # NOT SIGN
91
+ 0x00ab: 0x00bd, # VULGAR FRACTION ONE HALF
92
+ 0x00ac: 0x00bc, # VULGAR FRACTION ONE QUARTER
93
+ 0x00ad: 0x00a1, # INVERTED EXCLAMATION MARK
94
+ 0x00ae: 0x00ab, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
95
+ 0x00af: 0x00a4, # CURRENCY SIGN
96
+ 0x00b0: 0x2591, # LIGHT SHADE
97
+ 0x00b1: 0x2592, # MEDIUM SHADE
98
+ 0x00b2: 0x2593, # DARK SHADE
99
+ 0x00b3: 0x2502, # BOX DRAWINGS LIGHT VERTICAL
100
+ 0x00b4: 0x2524, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
101
+ 0x00b5: 0x2561, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
102
+ 0x00b6: 0x2562, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
103
+ 0x00b7: 0x2556, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
104
+ 0x00b8: 0x2555, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
105
+ 0x00b9: 0x2563, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
106
+ 0x00ba: 0x2551, # BOX DRAWINGS DOUBLE VERTICAL
107
+ 0x00bb: 0x2557, # BOX DRAWINGS DOUBLE DOWN AND LEFT
108
+ 0x00bc: 0x255d, # BOX DRAWINGS DOUBLE UP AND LEFT
109
+ 0x00bd: 0x255c, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
110
+ 0x00be: 0x255b, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
111
+ 0x00bf: 0x2510, # BOX DRAWINGS LIGHT DOWN AND LEFT
112
+ 0x00c0: 0x2514, # BOX DRAWINGS LIGHT UP AND RIGHT
113
+ 0x00c1: 0x2534, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
114
+ 0x00c2: 0x252c, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
115
+ 0x00c3: 0x251c, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
116
+ 0x00c4: 0x2500, # BOX DRAWINGS LIGHT HORIZONTAL
117
+ 0x00c5: 0x253c, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
118
+ 0x00c6: 0x255e, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
119
+ 0x00c7: 0x255f, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
120
+ 0x00c8: 0x255a, # BOX DRAWINGS DOUBLE UP AND RIGHT
121
+ 0x00c9: 0x2554, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
122
+ 0x00ca: 0x2569, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
123
+ 0x00cb: 0x2566, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
124
+ 0x00cc: 0x2560, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
125
+ 0x00cd: 0x2550, # BOX DRAWINGS DOUBLE HORIZONTAL
126
+ 0x00ce: 0x256c, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
127
+ 0x00cf: 0x2567, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
128
+ 0x00d0: 0x2568, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
129
+ 0x00d1: 0x2564, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
130
+ 0x00d2: 0x2565, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
131
+ 0x00d3: 0x2559, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
132
+ 0x00d4: 0x2558, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
133
+ 0x00d5: 0x2552, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
134
+ 0x00d6: 0x2553, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
135
+ 0x00d7: 0x256b, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
136
+ 0x00d8: 0x256a, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
137
+ 0x00d9: 0x2518, # BOX DRAWINGS LIGHT UP AND LEFT
138
+ 0x00da: 0x250c, # BOX DRAWINGS LIGHT DOWN AND RIGHT
139
+ 0x00db: 0x2588, # FULL BLOCK
140
+ 0x00dc: 0x2584, # LOWER HALF BLOCK
141
+ 0x00dd: 0x258c, # LEFT HALF BLOCK
142
+ 0x00de: 0x2590, # RIGHT HALF BLOCK
143
+ 0x00df: 0x2580, # UPPER HALF BLOCK
144
+ 0x00e0: 0x03b1, # GREEK SMALL LETTER ALPHA
145
+ 0x00e1: 0x00df, # LATIN SMALL LETTER SHARP S
146
+ 0x00e2: 0x0393, # GREEK CAPITAL LETTER GAMMA
147
+ 0x00e3: 0x03c0, # GREEK SMALL LETTER PI
148
+ 0x00e4: 0x03a3, # GREEK CAPITAL LETTER SIGMA
149
+ 0x00e5: 0x03c3, # GREEK SMALL LETTER SIGMA
150
+ 0x00e6: 0x00b5, # MICRO SIGN
151
+ 0x00e7: 0x03c4, # GREEK SMALL LETTER TAU
152
+ 0x00e8: 0x03a6, # GREEK CAPITAL LETTER PHI
153
+ 0x00e9: 0x0398, # GREEK CAPITAL LETTER THETA
154
+ 0x00ea: 0x03a9, # GREEK CAPITAL LETTER OMEGA
155
+ 0x00eb: 0x03b4, # GREEK SMALL LETTER DELTA
156
+ 0x00ec: 0x221e, # INFINITY
157
+ 0x00ed: 0x03c6, # GREEK SMALL LETTER PHI
158
+ 0x00ee: 0x03b5, # GREEK SMALL LETTER EPSILON
159
+ 0x00ef: 0x2229, # INTERSECTION
160
+ 0x00f0: 0x2261, # IDENTICAL TO
161
+ 0x00f1: 0x00b1, # PLUS-MINUS SIGN
162
+ 0x00f2: 0x2265, # GREATER-THAN OR EQUAL TO
163
+ 0x00f3: 0x2264, # LESS-THAN OR EQUAL TO
164
+ 0x00f4: 0x2320, # TOP HALF INTEGRAL
165
+ 0x00f5: 0x2321, # BOTTOM HALF INTEGRAL
166
+ 0x00f6: 0x00f7, # DIVISION SIGN
167
+ 0x00f7: 0x2248, # ALMOST EQUAL TO
168
+ 0x00f8: 0x00b0, # DEGREE SIGN
169
+ 0x00f9: 0x2219, # BULLET OPERATOR
170
+ 0x00fa: 0x00b7, # MIDDLE DOT
171
+ 0x00fb: 0x221a, # SQUARE ROOT
172
+ 0x00fc: 0x207f, # SUPERSCRIPT LATIN SMALL LETTER N
173
+ 0x00fd: 0x00b2, # SUPERSCRIPT TWO
174
+ 0x00fe: 0x25a0, # BLACK SQUARE
175
+ 0x00ff: 0x00a0, # NO-BREAK SPACE
176
+ })
177
+
178
+ ### Decoding Table
179
+
180
+ decoding_table = (
181
+ '\x00' # 0x0000 -> NULL
182
+ '\x01' # 0x0001 -> START OF HEADING
183
+ '\x02' # 0x0002 -> START OF TEXT
184
+ '\x03' # 0x0003 -> END OF TEXT
185
+ '\x04' # 0x0004 -> END OF TRANSMISSION
186
+ '\x05' # 0x0005 -> ENQUIRY
187
+ '\x06' # 0x0006 -> ACKNOWLEDGE
188
+ '\x07' # 0x0007 -> BELL
189
+ '\x08' # 0x0008 -> BACKSPACE
190
+ '\t' # 0x0009 -> HORIZONTAL TABULATION
191
+ '\n' # 0x000a -> LINE FEED
192
+ '\x0b' # 0x000b -> VERTICAL TABULATION
193
+ '\x0c' # 0x000c -> FORM FEED
194
+ '\r' # 0x000d -> CARRIAGE RETURN
195
+ '\x0e' # 0x000e -> SHIFT OUT
196
+ '\x0f' # 0x000f -> SHIFT IN
197
+ '\x10' # 0x0010 -> DATA LINK ESCAPE
198
+ '\x11' # 0x0011 -> DEVICE CONTROL ONE
199
+ '\x12' # 0x0012 -> DEVICE CONTROL TWO
200
+ '\x13' # 0x0013 -> DEVICE CONTROL THREE
201
+ '\x14' # 0x0014 -> DEVICE CONTROL FOUR
202
+ '\x15' # 0x0015 -> NEGATIVE ACKNOWLEDGE
203
+ '\x16' # 0x0016 -> SYNCHRONOUS IDLE
204
+ '\x17' # 0x0017 -> END OF TRANSMISSION BLOCK
205
+ '\x18' # 0x0018 -> CANCEL
206
+ '\x19' # 0x0019 -> END OF MEDIUM
207
+ '\x1a' # 0x001a -> SUBSTITUTE
208
+ '\x1b' # 0x001b -> ESCAPE
209
+ '\x1c' # 0x001c -> FILE SEPARATOR
210
+ '\x1d' # 0x001d -> GROUP SEPARATOR
211
+ '\x1e' # 0x001e -> RECORD SEPARATOR
212
+ '\x1f' # 0x001f -> UNIT SEPARATOR
213
+ ' ' # 0x0020 -> SPACE
214
+ '!' # 0x0021 -> EXCLAMATION MARK
215
+ '"' # 0x0022 -> QUOTATION MARK
216
+ '#' # 0x0023 -> NUMBER SIGN
217
+ '$' # 0x0024 -> DOLLAR SIGN
218
+ '%' # 0x0025 -> PERCENT SIGN
219
+ '&' # 0x0026 -> AMPERSAND
220
+ "'" # 0x0027 -> APOSTROPHE
221
+ '(' # 0x0028 -> LEFT PARENTHESIS
222
+ ')' # 0x0029 -> RIGHT PARENTHESIS
223
+ '*' # 0x002a -> ASTERISK
224
+ '+' # 0x002b -> PLUS SIGN
225
+ ',' # 0x002c -> COMMA
226
+ '-' # 0x002d -> HYPHEN-MINUS
227
+ '.' # 0x002e -> FULL STOP
228
+ '/' # 0x002f -> SOLIDUS
229
+ '0' # 0x0030 -> DIGIT ZERO
230
+ '1' # 0x0031 -> DIGIT ONE
231
+ '2' # 0x0032 -> DIGIT TWO
232
+ '3' # 0x0033 -> DIGIT THREE
233
+ '4' # 0x0034 -> DIGIT FOUR
234
+ '5' # 0x0035 -> DIGIT FIVE
235
+ '6' # 0x0036 -> DIGIT SIX
236
+ '7' # 0x0037 -> DIGIT SEVEN
237
+ '8' # 0x0038 -> DIGIT EIGHT
238
+ '9' # 0x0039 -> DIGIT NINE
239
+ ':' # 0x003a -> COLON
240
+ ';' # 0x003b -> SEMICOLON
241
+ '<' # 0x003c -> LESS-THAN SIGN
242
+ '=' # 0x003d -> EQUALS SIGN
243
+ '>' # 0x003e -> GREATER-THAN SIGN
244
+ '?' # 0x003f -> QUESTION MARK
245
+ '@' # 0x0040 -> COMMERCIAL AT
246
+ 'A' # 0x0041 -> LATIN CAPITAL LETTER A
247
+ 'B' # 0x0042 -> LATIN CAPITAL LETTER B
248
+ 'C' # 0x0043 -> LATIN CAPITAL LETTER C
249
+ 'D' # 0x0044 -> LATIN CAPITAL LETTER D
250
+ 'E' # 0x0045 -> LATIN CAPITAL LETTER E
251
+ 'F' # 0x0046 -> LATIN CAPITAL LETTER F
252
+ 'G' # 0x0047 -> LATIN CAPITAL LETTER G
253
+ 'H' # 0x0048 -> LATIN CAPITAL LETTER H
254
+ 'I' # 0x0049 -> LATIN CAPITAL LETTER I
255
+ 'J' # 0x004a -> LATIN CAPITAL LETTER J
256
+ 'K' # 0x004b -> LATIN CAPITAL LETTER K
257
+ 'L' # 0x004c -> LATIN CAPITAL LETTER L
258
+ 'M' # 0x004d -> LATIN CAPITAL LETTER M
259
+ 'N' # 0x004e -> LATIN CAPITAL LETTER N
260
+ 'O' # 0x004f -> LATIN CAPITAL LETTER O
261
+ 'P' # 0x0050 -> LATIN CAPITAL LETTER P
262
+ 'Q' # 0x0051 -> LATIN CAPITAL LETTER Q
263
+ 'R' # 0x0052 -> LATIN CAPITAL LETTER R
264
+ 'S' # 0x0053 -> LATIN CAPITAL LETTER S
265
+ 'T' # 0x0054 -> LATIN CAPITAL LETTER T
266
+ 'U' # 0x0055 -> LATIN CAPITAL LETTER U
267
+ 'V' # 0x0056 -> LATIN CAPITAL LETTER V
268
+ 'W' # 0x0057 -> LATIN CAPITAL LETTER W
269
+ 'X' # 0x0058 -> LATIN CAPITAL LETTER X
270
+ 'Y' # 0x0059 -> LATIN CAPITAL LETTER Y
271
+ 'Z' # 0x005a -> LATIN CAPITAL LETTER Z
272
+ '[' # 0x005b -> LEFT SQUARE BRACKET
273
+ '\\' # 0x005c -> REVERSE SOLIDUS
274
+ ']' # 0x005d -> RIGHT SQUARE BRACKET
275
+ '^' # 0x005e -> CIRCUMFLEX ACCENT
276
+ '_' # 0x005f -> LOW LINE
277
+ '`' # 0x0060 -> GRAVE ACCENT
278
+ 'a' # 0x0061 -> LATIN SMALL LETTER A
279
+ 'b' # 0x0062 -> LATIN SMALL LETTER B
280
+ 'c' # 0x0063 -> LATIN SMALL LETTER C
281
+ 'd' # 0x0064 -> LATIN SMALL LETTER D
282
+ 'e' # 0x0065 -> LATIN SMALL LETTER E
283
+ 'f' # 0x0066 -> LATIN SMALL LETTER F
284
+ 'g' # 0x0067 -> LATIN SMALL LETTER G
285
+ 'h' # 0x0068 -> LATIN SMALL LETTER H
286
+ 'i' # 0x0069 -> LATIN SMALL LETTER I
287
+ 'j' # 0x006a -> LATIN SMALL LETTER J
288
+ 'k' # 0x006b -> LATIN SMALL LETTER K
289
+ 'l' # 0x006c -> LATIN SMALL LETTER L
290
+ 'm' # 0x006d -> LATIN SMALL LETTER M
291
+ 'n' # 0x006e -> LATIN SMALL LETTER N
292
+ 'o' # 0x006f -> LATIN SMALL LETTER O
293
+ 'p' # 0x0070 -> LATIN SMALL LETTER P
294
+ 'q' # 0x0071 -> LATIN SMALL LETTER Q
295
+ 'r' # 0x0072 -> LATIN SMALL LETTER R
296
+ 's' # 0x0073 -> LATIN SMALL LETTER S
297
+ 't' # 0x0074 -> LATIN SMALL LETTER T
298
+ 'u' # 0x0075 -> LATIN SMALL LETTER U
299
+ 'v' # 0x0076 -> LATIN SMALL LETTER V
300
+ 'w' # 0x0077 -> LATIN SMALL LETTER W
301
+ 'x' # 0x0078 -> LATIN SMALL LETTER X
302
+ 'y' # 0x0079 -> LATIN SMALL LETTER Y
303
+ 'z' # 0x007a -> LATIN SMALL LETTER Z
304
+ '{' # 0x007b -> LEFT CURLY BRACKET
305
+ '|' # 0x007c -> VERTICAL LINE
306
+ '}' # 0x007d -> RIGHT CURLY BRACKET
307
+ '~' # 0x007e -> TILDE
308
+ '\x7f' # 0x007f -> DELETE
309
+ '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
310
+ '\xfc' # 0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
311
+ '\xe9' # 0x0082 -> LATIN SMALL LETTER E WITH ACUTE
312
+ '\xe2' # 0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
313
+ '\xe4' # 0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
314
+ '\xe0' # 0x0085 -> LATIN SMALL LETTER A WITH GRAVE
315
+ '\xe5' # 0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
316
+ '\xe7' # 0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
317
+ '\xea' # 0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
318
+ '\xeb' # 0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
319
+ '\xe8' # 0x008a -> LATIN SMALL LETTER E WITH GRAVE
320
+ '\xef' # 0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
321
+ '\xee' # 0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
322
+ '\xec' # 0x008d -> LATIN SMALL LETTER I WITH GRAVE
323
+ '\xc4' # 0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
324
+ '\xc5' # 0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
325
+ '\xc9' # 0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
326
+ '\xe6' # 0x0091 -> LATIN SMALL LIGATURE AE
327
+ '\xc6' # 0x0092 -> LATIN CAPITAL LIGATURE AE
328
+ '\xf4' # 0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
329
+ '\xf6' # 0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
330
+ '\xf2' # 0x0095 -> LATIN SMALL LETTER O WITH GRAVE
331
+ '\xfb' # 0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
332
+ '\xf9' # 0x0097 -> LATIN SMALL LETTER U WITH GRAVE
333
+ '\xff' # 0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
334
+ '\xd6' # 0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
335
+ '\xdc' # 0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
336
+ '\xf8' # 0x009b -> LATIN SMALL LETTER O WITH STROKE
337
+ '\xa3' # 0x009c -> POUND SIGN
338
+ '\xd8' # 0x009d -> LATIN CAPITAL LETTER O WITH STROKE
339
+ '\u20a7' # 0x009e -> PESETA SIGN
340
+ '\u0192' # 0x009f -> LATIN SMALL LETTER F WITH HOOK
341
+ '\xe1' # 0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
342
+ '\xed' # 0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
343
+ '\xf3' # 0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
344
+ '\xfa' # 0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
345
+ '\xf1' # 0x00a4 -> LATIN SMALL LETTER N WITH TILDE
346
+ '\xd1' # 0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
347
+ '\xaa' # 0x00a6 -> FEMININE ORDINAL INDICATOR
348
+ '\xba' # 0x00a7 -> MASCULINE ORDINAL INDICATOR
349
+ '\xbf' # 0x00a8 -> INVERTED QUESTION MARK
350
+ '\u2310' # 0x00a9 -> REVERSED NOT SIGN
351
+ '\xac' # 0x00aa -> NOT SIGN
352
+ '\xbd' # 0x00ab -> VULGAR FRACTION ONE HALF
353
+ '\xbc' # 0x00ac -> VULGAR FRACTION ONE QUARTER
354
+ '\xa1' # 0x00ad -> INVERTED EXCLAMATION MARK
355
+ '\xab' # 0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
356
+ '\xa4' # 0x00af -> CURRENCY SIGN
357
+ '\u2591' # 0x00b0 -> LIGHT SHADE
358
+ '\u2592' # 0x00b1 -> MEDIUM SHADE
359
+ '\u2593' # 0x00b2 -> DARK SHADE
360
+ '\u2502' # 0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
361
+ '\u2524' # 0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
362
+ '\u2561' # 0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
363
+ '\u2562' # 0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
364
+ '\u2556' # 0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
365
+ '\u2555' # 0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
366
+ '\u2563' # 0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
367
+ '\u2551' # 0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
368
+ '\u2557' # 0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
369
+ '\u255d' # 0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
370
+ '\u255c' # 0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
371
+ '\u255b' # 0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
372
+ '\u2510' # 0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
373
+ '\u2514' # 0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
374
+ '\u2534' # 0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
375
+ '\u252c' # 0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
376
+ '\u251c' # 0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
377
+ '\u2500' # 0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
378
+ '\u253c' # 0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
379
+ '\u255e' # 0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
380
+ '\u255f' # 0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
381
+ '\u255a' # 0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
382
+ '\u2554' # 0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
383
+ '\u2569' # 0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
384
+ '\u2566' # 0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
385
+ '\u2560' # 0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
386
+ '\u2550' # 0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
387
+ '\u256c' # 0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
388
+ '\u2567' # 0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
389
+ '\u2568' # 0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
390
+ '\u2564' # 0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
391
+ '\u2565' # 0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
392
+ '\u2559' # 0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
393
+ '\u2558' # 0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
394
+ '\u2552' # 0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
395
+ '\u2553' # 0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
396
+ '\u256b' # 0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
397
+ '\u256a' # 0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
398
+ '\u2518' # 0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
399
+ '\u250c' # 0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
400
+ '\u2588' # 0x00db -> FULL BLOCK
401
+ '\u2584' # 0x00dc -> LOWER HALF BLOCK
402
+ '\u258c' # 0x00dd -> LEFT HALF BLOCK
403
+ '\u2590' # 0x00de -> RIGHT HALF BLOCK
404
+ '\u2580' # 0x00df -> UPPER HALF BLOCK
405
+ '\u03b1' # 0x00e0 -> GREEK SMALL LETTER ALPHA
406
+ '\xdf' # 0x00e1 -> LATIN SMALL LETTER SHARP S
407
+ '\u0393' # 0x00e2 -> GREEK CAPITAL LETTER GAMMA
408
+ '\u03c0' # 0x00e3 -> GREEK SMALL LETTER PI
409
+ '\u03a3' # 0x00e4 -> GREEK CAPITAL LETTER SIGMA
410
+ '\u03c3' # 0x00e5 -> GREEK SMALL LETTER SIGMA
411
+ '\xb5' # 0x00e6 -> MICRO SIGN
412
+ '\u03c4' # 0x00e7 -> GREEK SMALL LETTER TAU
413
+ '\u03a6' # 0x00e8 -> GREEK CAPITAL LETTER PHI
414
+ '\u0398' # 0x00e9 -> GREEK CAPITAL LETTER THETA
415
+ '\u03a9' # 0x00ea -> GREEK CAPITAL LETTER OMEGA
416
+ '\u03b4' # 0x00eb -> GREEK SMALL LETTER DELTA
417
+ '\u221e' # 0x00ec -> INFINITY
418
+ '\u03c6' # 0x00ed -> GREEK SMALL LETTER PHI
419
+ '\u03b5' # 0x00ee -> GREEK SMALL LETTER EPSILON
420
+ '\u2229' # 0x00ef -> INTERSECTION
421
+ '\u2261' # 0x00f0 -> IDENTICAL TO
422
+ '\xb1' # 0x00f1 -> PLUS-MINUS SIGN
423
+ '\u2265' # 0x00f2 -> GREATER-THAN OR EQUAL TO
424
+ '\u2264' # 0x00f3 -> LESS-THAN OR EQUAL TO
425
+ '\u2320' # 0x00f4 -> TOP HALF INTEGRAL
426
+ '\u2321' # 0x00f5 -> BOTTOM HALF INTEGRAL
427
+ '\xf7' # 0x00f6 -> DIVISION SIGN
428
+ '\u2248' # 0x00f7 -> ALMOST EQUAL TO
429
+ '\xb0' # 0x00f8 -> DEGREE SIGN
430
+ '\u2219' # 0x00f9 -> BULLET OPERATOR
431
+ '\xb7' # 0x00fa -> MIDDLE DOT
432
+ '\u221a' # 0x00fb -> SQUARE ROOT
433
+ '\u207f' # 0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
434
+ '\xb2' # 0x00fd -> SUPERSCRIPT TWO
435
+ '\u25a0' # 0x00fe -> BLACK SQUARE
436
+ '\xa0' # 0x00ff -> NO-BREAK SPACE
437
+ )
438
+
439
+ ### Encoding Map
440
+
441
+ encoding_map = {
442
+ 0x0000: 0x0000, # NULL
443
+ 0x0001: 0x0001, # START OF HEADING
444
+ 0x0002: 0x0002, # START OF TEXT
445
+ 0x0003: 0x0003, # END OF TEXT
446
+ 0x0004: 0x0004, # END OF TRANSMISSION
447
+ 0x0005: 0x0005, # ENQUIRY
448
+ 0x0006: 0x0006, # ACKNOWLEDGE
449
+ 0x0007: 0x0007, # BELL
450
+ 0x0008: 0x0008, # BACKSPACE
451
+ 0x0009: 0x0009, # HORIZONTAL TABULATION
452
+ 0x000a: 0x000a, # LINE FEED
453
+ 0x000b: 0x000b, # VERTICAL TABULATION
454
+ 0x000c: 0x000c, # FORM FEED
455
+ 0x000d: 0x000d, # CARRIAGE RETURN
456
+ 0x000e: 0x000e, # SHIFT OUT
457
+ 0x000f: 0x000f, # SHIFT IN
458
+ 0x0010: 0x0010, # DATA LINK ESCAPE
459
+ 0x0011: 0x0011, # DEVICE CONTROL ONE
460
+ 0x0012: 0x0012, # DEVICE CONTROL TWO
461
+ 0x0013: 0x0013, # DEVICE CONTROL THREE
462
+ 0x0014: 0x0014, # DEVICE CONTROL FOUR
463
+ 0x0015: 0x0015, # NEGATIVE ACKNOWLEDGE
464
+ 0x0016: 0x0016, # SYNCHRONOUS IDLE
465
+ 0x0017: 0x0017, # END OF TRANSMISSION BLOCK
466
+ 0x0018: 0x0018, # CANCEL
467
+ 0x0019: 0x0019, # END OF MEDIUM
468
+ 0x001a: 0x001a, # SUBSTITUTE
469
+ 0x001b: 0x001b, # ESCAPE
470
+ 0x001c: 0x001c, # FILE SEPARATOR
471
+ 0x001d: 0x001d, # GROUP SEPARATOR
472
+ 0x001e: 0x001e, # RECORD SEPARATOR
473
+ 0x001f: 0x001f, # UNIT SEPARATOR
474
+ 0x0020: 0x0020, # SPACE
475
+ 0x0021: 0x0021, # EXCLAMATION MARK
476
+ 0x0022: 0x0022, # QUOTATION MARK
477
+ 0x0023: 0x0023, # NUMBER SIGN
478
+ 0x0024: 0x0024, # DOLLAR SIGN
479
+ 0x0025: 0x0025, # PERCENT SIGN
480
+ 0x0026: 0x0026, # AMPERSAND
481
+ 0x0027: 0x0027, # APOSTROPHE
482
+ 0x0028: 0x0028, # LEFT PARENTHESIS
483
+ 0x0029: 0x0029, # RIGHT PARENTHESIS
484
+ 0x002a: 0x002a, # ASTERISK
485
+ 0x002b: 0x002b, # PLUS SIGN
486
+ 0x002c: 0x002c, # COMMA
487
+ 0x002d: 0x002d, # HYPHEN-MINUS
488
+ 0x002e: 0x002e, # FULL STOP
489
+ 0x002f: 0x002f, # SOLIDUS
490
+ 0x0030: 0x0030, # DIGIT ZERO
491
+ 0x0031: 0x0031, # DIGIT ONE
492
+ 0x0032: 0x0032, # DIGIT TWO
493
+ 0x0033: 0x0033, # DIGIT THREE
494
+ 0x0034: 0x0034, # DIGIT FOUR
495
+ 0x0035: 0x0035, # DIGIT FIVE
496
+ 0x0036: 0x0036, # DIGIT SIX
497
+ 0x0037: 0x0037, # DIGIT SEVEN
498
+ 0x0038: 0x0038, # DIGIT EIGHT
499
+ 0x0039: 0x0039, # DIGIT NINE
500
+ 0x003a: 0x003a, # COLON
501
+ 0x003b: 0x003b, # SEMICOLON
502
+ 0x003c: 0x003c, # LESS-THAN SIGN
503
+ 0x003d: 0x003d, # EQUALS SIGN
504
+ 0x003e: 0x003e, # GREATER-THAN SIGN
505
+ 0x003f: 0x003f, # QUESTION MARK
506
+ 0x0040: 0x0040, # COMMERCIAL AT
507
+ 0x0041: 0x0041, # LATIN CAPITAL LETTER A
508
+ 0x0042: 0x0042, # LATIN CAPITAL LETTER B
509
+ 0x0043: 0x0043, # LATIN CAPITAL LETTER C
510
+ 0x0044: 0x0044, # LATIN CAPITAL LETTER D
511
+ 0x0045: 0x0045, # LATIN CAPITAL LETTER E
512
+ 0x0046: 0x0046, # LATIN CAPITAL LETTER F
513
+ 0x0047: 0x0047, # LATIN CAPITAL LETTER G
514
+ 0x0048: 0x0048, # LATIN CAPITAL LETTER H
515
+ 0x0049: 0x0049, # LATIN CAPITAL LETTER I
516
+ 0x004a: 0x004a, # LATIN CAPITAL LETTER J
517
+ 0x004b: 0x004b, # LATIN CAPITAL LETTER K
518
+ 0x004c: 0x004c, # LATIN CAPITAL LETTER L
519
+ 0x004d: 0x004d, # LATIN CAPITAL LETTER M
520
+ 0x004e: 0x004e, # LATIN CAPITAL LETTER N
521
+ 0x004f: 0x004f, # LATIN CAPITAL LETTER O
522
+ 0x0050: 0x0050, # LATIN CAPITAL LETTER P
523
+ 0x0051: 0x0051, # LATIN CAPITAL LETTER Q
524
+ 0x0052: 0x0052, # LATIN CAPITAL LETTER R
525
+ 0x0053: 0x0053, # LATIN CAPITAL LETTER S
526
+ 0x0054: 0x0054, # LATIN CAPITAL LETTER T
527
+ 0x0055: 0x0055, # LATIN CAPITAL LETTER U
528
+ 0x0056: 0x0056, # LATIN CAPITAL LETTER V
529
+ 0x0057: 0x0057, # LATIN CAPITAL LETTER W
530
+ 0x0058: 0x0058, # LATIN CAPITAL LETTER X
531
+ 0x0059: 0x0059, # LATIN CAPITAL LETTER Y
532
+ 0x005a: 0x005a, # LATIN CAPITAL LETTER Z
533
+ 0x005b: 0x005b, # LEFT SQUARE BRACKET
534
+ 0x005c: 0x005c, # REVERSE SOLIDUS
535
+ 0x005d: 0x005d, # RIGHT SQUARE BRACKET
536
+ 0x005e: 0x005e, # CIRCUMFLEX ACCENT
537
+ 0x005f: 0x005f, # LOW LINE
538
+ 0x0060: 0x0060, # GRAVE ACCENT
539
+ 0x0061: 0x0061, # LATIN SMALL LETTER A
540
+ 0x0062: 0x0062, # LATIN SMALL LETTER B
541
+ 0x0063: 0x0063, # LATIN SMALL LETTER C
542
+ 0x0064: 0x0064, # LATIN SMALL LETTER D
543
+ 0x0065: 0x0065, # LATIN SMALL LETTER E
544
+ 0x0066: 0x0066, # LATIN SMALL LETTER F
545
+ 0x0067: 0x0067, # LATIN SMALL LETTER G
546
+ 0x0068: 0x0068, # LATIN SMALL LETTER H
547
+ 0x0069: 0x0069, # LATIN SMALL LETTER I
548
+ 0x006a: 0x006a, # LATIN SMALL LETTER J
549
+ 0x006b: 0x006b, # LATIN SMALL LETTER K
550
+ 0x006c: 0x006c, # LATIN SMALL LETTER L
551
+ 0x006d: 0x006d, # LATIN SMALL LETTER M
552
+ 0x006e: 0x006e, # LATIN SMALL LETTER N
553
+ 0x006f: 0x006f, # LATIN SMALL LETTER O
554
+ 0x0070: 0x0070, # LATIN SMALL LETTER P
555
+ 0x0071: 0x0071, # LATIN SMALL LETTER Q
556
+ 0x0072: 0x0072, # LATIN SMALL LETTER R
557
+ 0x0073: 0x0073, # LATIN SMALL LETTER S
558
+ 0x0074: 0x0074, # LATIN SMALL LETTER T
559
+ 0x0075: 0x0075, # LATIN SMALL LETTER U
560
+ 0x0076: 0x0076, # LATIN SMALL LETTER V
561
+ 0x0077: 0x0077, # LATIN SMALL LETTER W
562
+ 0x0078: 0x0078, # LATIN SMALL LETTER X
563
+ 0x0079: 0x0079, # LATIN SMALL LETTER Y
564
+ 0x007a: 0x007a, # LATIN SMALL LETTER Z
565
+ 0x007b: 0x007b, # LEFT CURLY BRACKET
566
+ 0x007c: 0x007c, # VERTICAL LINE
567
+ 0x007d: 0x007d, # RIGHT CURLY BRACKET
568
+ 0x007e: 0x007e, # TILDE
569
+ 0x007f: 0x007f, # DELETE
570
+ 0x00a0: 0x00ff, # NO-BREAK SPACE
571
+ 0x00a1: 0x00ad, # INVERTED EXCLAMATION MARK
572
+ 0x00a3: 0x009c, # POUND SIGN
573
+ 0x00a4: 0x00af, # CURRENCY SIGN
574
+ 0x00aa: 0x00a6, # FEMININE ORDINAL INDICATOR
575
+ 0x00ab: 0x00ae, # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
576
+ 0x00ac: 0x00aa, # NOT SIGN
577
+ 0x00b0: 0x00f8, # DEGREE SIGN
578
+ 0x00b1: 0x00f1, # PLUS-MINUS SIGN
579
+ 0x00b2: 0x00fd, # SUPERSCRIPT TWO
580
+ 0x00b5: 0x00e6, # MICRO SIGN
581
+ 0x00b7: 0x00fa, # MIDDLE DOT
582
+ 0x00ba: 0x00a7, # MASCULINE ORDINAL INDICATOR
583
+ 0x00bc: 0x00ac, # VULGAR FRACTION ONE QUARTER
584
+ 0x00bd: 0x00ab, # VULGAR FRACTION ONE HALF
585
+ 0x00bf: 0x00a8, # INVERTED QUESTION MARK
586
+ 0x00c4: 0x008e, # LATIN CAPITAL LETTER A WITH DIAERESIS
587
+ 0x00c5: 0x008f, # LATIN CAPITAL LETTER A WITH RING ABOVE
588
+ 0x00c6: 0x0092, # LATIN CAPITAL LIGATURE AE
589
+ 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
590
+ 0x00c9: 0x0090, # LATIN CAPITAL LETTER E WITH ACUTE
591
+ 0x00d1: 0x00a5, # LATIN CAPITAL LETTER N WITH TILDE
592
+ 0x00d6: 0x0099, # LATIN CAPITAL LETTER O WITH DIAERESIS
593
+ 0x00d8: 0x009d, # LATIN CAPITAL LETTER O WITH STROKE
594
+ 0x00dc: 0x009a, # LATIN CAPITAL LETTER U WITH DIAERESIS
595
+ 0x00df: 0x00e1, # LATIN SMALL LETTER SHARP S
596
+ 0x00e0: 0x0085, # LATIN SMALL LETTER A WITH GRAVE
597
+ 0x00e1: 0x00a0, # LATIN SMALL LETTER A WITH ACUTE
598
+ 0x00e2: 0x0083, # LATIN SMALL LETTER A WITH CIRCUMFLEX
599
+ 0x00e4: 0x0084, # LATIN SMALL LETTER A WITH DIAERESIS
600
+ 0x00e5: 0x0086, # LATIN SMALL LETTER A WITH RING ABOVE
601
+ 0x00e6: 0x0091, # LATIN SMALL LIGATURE AE
602
+ 0x00e7: 0x0087, # LATIN SMALL LETTER C WITH CEDILLA
603
+ 0x00e8: 0x008a, # LATIN SMALL LETTER E WITH GRAVE
604
+ 0x00e9: 0x0082, # LATIN SMALL LETTER E WITH ACUTE
605
+ 0x00ea: 0x0088, # LATIN SMALL LETTER E WITH CIRCUMFLEX
606
+ 0x00eb: 0x0089, # LATIN SMALL LETTER E WITH DIAERESIS
607
+ 0x00ec: 0x008d, # LATIN SMALL LETTER I WITH GRAVE
608
+ 0x00ed: 0x00a1, # LATIN SMALL LETTER I WITH ACUTE
609
+ 0x00ee: 0x008c, # LATIN SMALL LETTER I WITH CIRCUMFLEX
610
+ 0x00ef: 0x008b, # LATIN SMALL LETTER I WITH DIAERESIS
611
+ 0x00f1: 0x00a4, # LATIN SMALL LETTER N WITH TILDE
612
+ 0x00f2: 0x0095, # LATIN SMALL LETTER O WITH GRAVE
613
+ 0x00f3: 0x00a2, # LATIN SMALL LETTER O WITH ACUTE
614
+ 0x00f4: 0x0093, # LATIN SMALL LETTER O WITH CIRCUMFLEX
615
+ 0x00f6: 0x0094, # LATIN SMALL LETTER O WITH DIAERESIS
616
+ 0x00f7: 0x00f6, # DIVISION SIGN
617
+ 0x00f8: 0x009b, # LATIN SMALL LETTER O WITH STROKE
618
+ 0x00f9: 0x0097, # LATIN SMALL LETTER U WITH GRAVE
619
+ 0x00fa: 0x00a3, # LATIN SMALL LETTER U WITH ACUTE
620
+ 0x00fb: 0x0096, # LATIN SMALL LETTER U WITH CIRCUMFLEX
621
+ 0x00fc: 0x0081, # LATIN SMALL LETTER U WITH DIAERESIS
622
+ 0x00ff: 0x0098, # LATIN SMALL LETTER Y WITH DIAERESIS
623
+ 0x0192: 0x009f, # LATIN SMALL LETTER F WITH HOOK
624
+ 0x0393: 0x00e2, # GREEK CAPITAL LETTER GAMMA
625
+ 0x0398: 0x00e9, # GREEK CAPITAL LETTER THETA
626
+ 0x03a3: 0x00e4, # GREEK CAPITAL LETTER SIGMA
627
+ 0x03a6: 0x00e8, # GREEK CAPITAL LETTER PHI
628
+ 0x03a9: 0x00ea, # GREEK CAPITAL LETTER OMEGA
629
+ 0x03b1: 0x00e0, # GREEK SMALL LETTER ALPHA
630
+ 0x03b4: 0x00eb, # GREEK SMALL LETTER DELTA
631
+ 0x03b5: 0x00ee, # GREEK SMALL LETTER EPSILON
632
+ 0x03c0: 0x00e3, # GREEK SMALL LETTER PI
633
+ 0x03c3: 0x00e5, # GREEK SMALL LETTER SIGMA
634
+ 0x03c4: 0x00e7, # GREEK SMALL LETTER TAU
635
+ 0x03c6: 0x00ed, # GREEK SMALL LETTER PHI
636
+ 0x207f: 0x00fc, # SUPERSCRIPT LATIN SMALL LETTER N
637
+ 0x20a7: 0x009e, # PESETA SIGN
638
+ 0x2219: 0x00f9, # BULLET OPERATOR
639
+ 0x221a: 0x00fb, # SQUARE ROOT
640
+ 0x221e: 0x00ec, # INFINITY
641
+ 0x2229: 0x00ef, # INTERSECTION
642
+ 0x2248: 0x00f7, # ALMOST EQUAL TO
643
+ 0x2261: 0x00f0, # IDENTICAL TO
644
+ 0x2264: 0x00f3, # LESS-THAN OR EQUAL TO
645
+ 0x2265: 0x00f2, # GREATER-THAN OR EQUAL TO
646
+ 0x2310: 0x00a9, # REVERSED NOT SIGN
647
+ 0x2320: 0x00f4, # TOP HALF INTEGRAL
648
+ 0x2321: 0x00f5, # BOTTOM HALF INTEGRAL
649
+ 0x2500: 0x00c4, # BOX DRAWINGS LIGHT HORIZONTAL
650
+ 0x2502: 0x00b3, # BOX DRAWINGS LIGHT VERTICAL
651
+ 0x250c: 0x00da, # BOX DRAWINGS LIGHT DOWN AND RIGHT
652
+ 0x2510: 0x00bf, # BOX DRAWINGS LIGHT DOWN AND LEFT
653
+ 0x2514: 0x00c0, # BOX DRAWINGS LIGHT UP AND RIGHT
654
+ 0x2518: 0x00d9, # BOX DRAWINGS LIGHT UP AND LEFT
655
+ 0x251c: 0x00c3, # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
656
+ 0x2524: 0x00b4, # BOX DRAWINGS LIGHT VERTICAL AND LEFT
657
+ 0x252c: 0x00c2, # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
658
+ 0x2534: 0x00c1, # BOX DRAWINGS LIGHT UP AND HORIZONTAL
659
+ 0x253c: 0x00c5, # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
660
+ 0x2550: 0x00cd, # BOX DRAWINGS DOUBLE HORIZONTAL
661
+ 0x2551: 0x00ba, # BOX DRAWINGS DOUBLE VERTICAL
662
+ 0x2552: 0x00d5, # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
663
+ 0x2553: 0x00d6, # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
664
+ 0x2554: 0x00c9, # BOX DRAWINGS DOUBLE DOWN AND RIGHT
665
+ 0x2555: 0x00b8, # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
666
+ 0x2556: 0x00b7, # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
667
+ 0x2557: 0x00bb, # BOX DRAWINGS DOUBLE DOWN AND LEFT
668
+ 0x2558: 0x00d4, # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
669
+ 0x2559: 0x00d3, # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
670
+ 0x255a: 0x00c8, # BOX DRAWINGS DOUBLE UP AND RIGHT
671
+ 0x255b: 0x00be, # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
672
+ 0x255c: 0x00bd, # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
673
+ 0x255d: 0x00bc, # BOX DRAWINGS DOUBLE UP AND LEFT
674
+ 0x255e: 0x00c6, # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
675
+ 0x255f: 0x00c7, # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
676
+ 0x2560: 0x00cc, # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
677
+ 0x2561: 0x00b5, # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
678
+ 0x2562: 0x00b6, # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
679
+ 0x2563: 0x00b9, # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
680
+ 0x2564: 0x00d1, # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
681
+ 0x2565: 0x00d2, # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
682
+ 0x2566: 0x00cb, # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
683
+ 0x2567: 0x00cf, # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
684
+ 0x2568: 0x00d0, # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
685
+ 0x2569: 0x00ca, # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
686
+ 0x256a: 0x00d8, # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
687
+ 0x256b: 0x00d7, # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
688
+ 0x256c: 0x00ce, # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
689
+ 0x2580: 0x00df, # UPPER HALF BLOCK
690
+ 0x2584: 0x00dc, # LOWER HALF BLOCK
691
+ 0x2588: 0x00db, # FULL BLOCK
692
+ 0x258c: 0x00dd, # LEFT HALF BLOCK
693
+ 0x2590: 0x00de, # RIGHT HALF BLOCK
694
+ 0x2591: 0x00b0, # LIGHT SHADE
695
+ 0x2592: 0x00b1, # MEDIUM SHADE
696
+ 0x2593: 0x00b2, # DARK SHADE
697
+ 0x25a0: 0x00fe, # BLACK SQUARE
698
+ }
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp932.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # cp932.py: Python Unicode Codec for CP932
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_jp, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_jp.getcodec('cp932')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='cp932',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/cp949.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # cp949.py: Python Unicode Codec for CP949
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_kr, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_kr.getcodec('cp949')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='cp949',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jis_2004.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # euc_jis_2004.py: Python Unicode Codec for EUC_JIS_2004
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_jp, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_jp.getcodec('euc_jis_2004')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='euc_jis_2004',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/euc_jp.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # euc_jp.py: Python Unicode Codec for EUC_JP
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_jp, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_jp.getcodec('euc_jp')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='euc_jp',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/gb18030.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # gb18030.py: Python Unicode Codec for GB18030
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_cn, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_cn.getcodec('gb18030')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='gb18030',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hp_roman8.py ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec generated from 'hp_roman8.txt' with gencodec.py.
2
+
3
+ Based on data from ftp://dkuug.dk/i18n/charmaps/HP-ROMAN8 (Keld Simonsen)
4
+
5
+ Original source: LaserJet IIP Printer User's Manual HP part no
6
+ 33471-90901, Hewlet-Packard, June 1989.
7
+
8
+ (Used with permission)
9
+
10
+ """#"
11
+
12
+ import codecs
13
+
14
+ ### Codec APIs
15
+
16
+ class Codec(codecs.Codec):
17
+
18
+ def encode(self,input,errors='strict'):
19
+ return codecs.charmap_encode(input,errors,encoding_table)
20
+
21
+ def decode(self,input,errors='strict'):
22
+ return codecs.charmap_decode(input,errors,decoding_table)
23
+
24
+ class IncrementalEncoder(codecs.IncrementalEncoder):
25
+ def encode(self, input, final=False):
26
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
27
+
28
+ class IncrementalDecoder(codecs.IncrementalDecoder):
29
+ def decode(self, input, final=False):
30
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
31
+
32
+ class StreamWriter(Codec,codecs.StreamWriter):
33
+ pass
34
+
35
+ class StreamReader(Codec,codecs.StreamReader):
36
+ pass
37
+
38
+ ### encodings module API
39
+
40
+ def getregentry():
41
+ return codecs.CodecInfo(
42
+ name='hp-roman8',
43
+ encode=Codec().encode,
44
+ decode=Codec().decode,
45
+ incrementalencoder=IncrementalEncoder,
46
+ incrementaldecoder=IncrementalDecoder,
47
+ streamwriter=StreamWriter,
48
+ streamreader=StreamReader,
49
+ )
50
+
51
+
52
+ ### Decoding Table
53
+
54
+ decoding_table = (
55
+ '\x00' # 0x00 -> NULL
56
+ '\x01' # 0x01 -> START OF HEADING
57
+ '\x02' # 0x02 -> START OF TEXT
58
+ '\x03' # 0x03 -> END OF TEXT
59
+ '\x04' # 0x04 -> END OF TRANSMISSION
60
+ '\x05' # 0x05 -> ENQUIRY
61
+ '\x06' # 0x06 -> ACKNOWLEDGE
62
+ '\x07' # 0x07 -> BELL
63
+ '\x08' # 0x08 -> BACKSPACE
64
+ '\t' # 0x09 -> HORIZONTAL TABULATION
65
+ '\n' # 0x0A -> LINE FEED
66
+ '\x0b' # 0x0B -> VERTICAL TABULATION
67
+ '\x0c' # 0x0C -> FORM FEED
68
+ '\r' # 0x0D -> CARRIAGE RETURN
69
+ '\x0e' # 0x0E -> SHIFT OUT
70
+ '\x0f' # 0x0F -> SHIFT IN
71
+ '\x10' # 0x10 -> DATA LINK ESCAPE
72
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
73
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
74
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
75
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
76
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
77
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
78
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
79
+ '\x18' # 0x18 -> CANCEL
80
+ '\x19' # 0x19 -> END OF MEDIUM
81
+ '\x1a' # 0x1A -> SUBSTITUTE
82
+ '\x1b' # 0x1B -> ESCAPE
83
+ '\x1c' # 0x1C -> FILE SEPARATOR
84
+ '\x1d' # 0x1D -> GROUP SEPARATOR
85
+ '\x1e' # 0x1E -> RECORD SEPARATOR
86
+ '\x1f' # 0x1F -> UNIT SEPARATOR
87
+ ' ' # 0x20 -> SPACE
88
+ '!' # 0x21 -> EXCLAMATION MARK
89
+ '"' # 0x22 -> QUOTATION MARK
90
+ '#' # 0x23 -> NUMBER SIGN
91
+ '$' # 0x24 -> DOLLAR SIGN
92
+ '%' # 0x25 -> PERCENT SIGN
93
+ '&' # 0x26 -> AMPERSAND
94
+ "'" # 0x27 -> APOSTROPHE
95
+ '(' # 0x28 -> LEFT PARENTHESIS
96
+ ')' # 0x29 -> RIGHT PARENTHESIS
97
+ '*' # 0x2A -> ASTERISK
98
+ '+' # 0x2B -> PLUS SIGN
99
+ ',' # 0x2C -> COMMA
100
+ '-' # 0x2D -> HYPHEN-MINUS
101
+ '.' # 0x2E -> FULL STOP
102
+ '/' # 0x2F -> SOLIDUS
103
+ '0' # 0x30 -> DIGIT ZERO
104
+ '1' # 0x31 -> DIGIT ONE
105
+ '2' # 0x32 -> DIGIT TWO
106
+ '3' # 0x33 -> DIGIT THREE
107
+ '4' # 0x34 -> DIGIT FOUR
108
+ '5' # 0x35 -> DIGIT FIVE
109
+ '6' # 0x36 -> DIGIT SIX
110
+ '7' # 0x37 -> DIGIT SEVEN
111
+ '8' # 0x38 -> DIGIT EIGHT
112
+ '9' # 0x39 -> DIGIT NINE
113
+ ':' # 0x3A -> COLON
114
+ ';' # 0x3B -> SEMICOLON
115
+ '<' # 0x3C -> LESS-THAN SIGN
116
+ '=' # 0x3D -> EQUALS SIGN
117
+ '>' # 0x3E -> GREATER-THAN SIGN
118
+ '?' # 0x3F -> QUESTION MARK
119
+ '@' # 0x40 -> COMMERCIAL AT
120
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
121
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
122
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
123
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
124
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
125
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
126
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
127
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
128
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
129
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
130
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
131
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
132
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
133
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
134
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
135
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
136
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
137
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
138
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
139
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
140
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
141
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
142
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
143
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
144
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
145
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
146
+ '[' # 0x5B -> LEFT SQUARE BRACKET
147
+ '\\' # 0x5C -> REVERSE SOLIDUS
148
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
149
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
150
+ '_' # 0x5F -> LOW LINE
151
+ '`' # 0x60 -> GRAVE ACCENT
152
+ 'a' # 0x61 -> LATIN SMALL LETTER A
153
+ 'b' # 0x62 -> LATIN SMALL LETTER B
154
+ 'c' # 0x63 -> LATIN SMALL LETTER C
155
+ 'd' # 0x64 -> LATIN SMALL LETTER D
156
+ 'e' # 0x65 -> LATIN SMALL LETTER E
157
+ 'f' # 0x66 -> LATIN SMALL LETTER F
158
+ 'g' # 0x67 -> LATIN SMALL LETTER G
159
+ 'h' # 0x68 -> LATIN SMALL LETTER H
160
+ 'i' # 0x69 -> LATIN SMALL LETTER I
161
+ 'j' # 0x6A -> LATIN SMALL LETTER J
162
+ 'k' # 0x6B -> LATIN SMALL LETTER K
163
+ 'l' # 0x6C -> LATIN SMALL LETTER L
164
+ 'm' # 0x6D -> LATIN SMALL LETTER M
165
+ 'n' # 0x6E -> LATIN SMALL LETTER N
166
+ 'o' # 0x6F -> LATIN SMALL LETTER O
167
+ 'p' # 0x70 -> LATIN SMALL LETTER P
168
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
169
+ 'r' # 0x72 -> LATIN SMALL LETTER R
170
+ 's' # 0x73 -> LATIN SMALL LETTER S
171
+ 't' # 0x74 -> LATIN SMALL LETTER T
172
+ 'u' # 0x75 -> LATIN SMALL LETTER U
173
+ 'v' # 0x76 -> LATIN SMALL LETTER V
174
+ 'w' # 0x77 -> LATIN SMALL LETTER W
175
+ 'x' # 0x78 -> LATIN SMALL LETTER X
176
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
177
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
178
+ '{' # 0x7B -> LEFT CURLY BRACKET
179
+ '|' # 0x7C -> VERTICAL LINE
180
+ '}' # 0x7D -> RIGHT CURLY BRACKET
181
+ '~' # 0x7E -> TILDE
182
+ '\x7f' # 0x7F -> DELETE
183
+ '\x80' # 0x80 -> <control>
184
+ '\x81' # 0x81 -> <control>
185
+ '\x82' # 0x82 -> <control>
186
+ '\x83' # 0x83 -> <control>
187
+ '\x84' # 0x84 -> <control>
188
+ '\x85' # 0x85 -> <control>
189
+ '\x86' # 0x86 -> <control>
190
+ '\x87' # 0x87 -> <control>
191
+ '\x88' # 0x88 -> <control>
192
+ '\x89' # 0x89 -> <control>
193
+ '\x8a' # 0x8A -> <control>
194
+ '\x8b' # 0x8B -> <control>
195
+ '\x8c' # 0x8C -> <control>
196
+ '\x8d' # 0x8D -> <control>
197
+ '\x8e' # 0x8E -> <control>
198
+ '\x8f' # 0x8F -> <control>
199
+ '\x90' # 0x90 -> <control>
200
+ '\x91' # 0x91 -> <control>
201
+ '\x92' # 0x92 -> <control>
202
+ '\x93' # 0x93 -> <control>
203
+ '\x94' # 0x94 -> <control>
204
+ '\x95' # 0x95 -> <control>
205
+ '\x96' # 0x96 -> <control>
206
+ '\x97' # 0x97 -> <control>
207
+ '\x98' # 0x98 -> <control>
208
+ '\x99' # 0x99 -> <control>
209
+ '\x9a' # 0x9A -> <control>
210
+ '\x9b' # 0x9B -> <control>
211
+ '\x9c' # 0x9C -> <control>
212
+ '\x9d' # 0x9D -> <control>
213
+ '\x9e' # 0x9E -> <control>
214
+ '\x9f' # 0x9F -> <control>
215
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
216
+ '\xc0' # 0xA1 -> LATIN CAPITAL LETTER A WITH GRAVE
217
+ '\xc2' # 0xA2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
218
+ '\xc8' # 0xA3 -> LATIN CAPITAL LETTER E WITH GRAVE
219
+ '\xca' # 0xA4 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
220
+ '\xcb' # 0xA5 -> LATIN CAPITAL LETTER E WITH DIAERESIS
221
+ '\xce' # 0xA6 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
222
+ '\xcf' # 0xA7 -> LATIN CAPITAL LETTER I WITH DIAERESIS
223
+ '\xb4' # 0xA8 -> ACUTE ACCENT
224
+ '\u02cb' # 0xA9 -> MODIFIER LETTER GRAVE ACCENT (MANDARIN CHINESE FOURTH TONE)
225
+ '\u02c6' # 0xAA -> MODIFIER LETTER CIRCUMFLEX ACCENT
226
+ '\xa8' # 0xAB -> DIAERESIS
227
+ '\u02dc' # 0xAC -> SMALL TILDE
228
+ '\xd9' # 0xAD -> LATIN CAPITAL LETTER U WITH GRAVE
229
+ '\xdb' # 0xAE -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
230
+ '\u20a4' # 0xAF -> LIRA SIGN
231
+ '\xaf' # 0xB0 -> MACRON
232
+ '\xdd' # 0xB1 -> LATIN CAPITAL LETTER Y WITH ACUTE
233
+ '\xfd' # 0xB2 -> LATIN SMALL LETTER Y WITH ACUTE
234
+ '\xb0' # 0xB3 -> DEGREE SIGN
235
+ '\xc7' # 0xB4 -> LATIN CAPITAL LETTER C WITH CEDILLA
236
+ '\xe7' # 0xB5 -> LATIN SMALL LETTER C WITH CEDILLA
237
+ '\xd1' # 0xB6 -> LATIN CAPITAL LETTER N WITH TILDE
238
+ '\xf1' # 0xB7 -> LATIN SMALL LETTER N WITH TILDE
239
+ '\xa1' # 0xB8 -> INVERTED EXCLAMATION MARK
240
+ '\xbf' # 0xB9 -> INVERTED QUESTION MARK
241
+ '\xa4' # 0xBA -> CURRENCY SIGN
242
+ '\xa3' # 0xBB -> POUND SIGN
243
+ '\xa5' # 0xBC -> YEN SIGN
244
+ '\xa7' # 0xBD -> SECTION SIGN
245
+ '\u0192' # 0xBE -> LATIN SMALL LETTER F WITH HOOK
246
+ '\xa2' # 0xBF -> CENT SIGN
247
+ '\xe2' # 0xC0 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
248
+ '\xea' # 0xC1 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
249
+ '\xf4' # 0xC2 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
250
+ '\xfb' # 0xC3 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
251
+ '\xe1' # 0xC4 -> LATIN SMALL LETTER A WITH ACUTE
252
+ '\xe9' # 0xC5 -> LATIN SMALL LETTER E WITH ACUTE
253
+ '\xf3' # 0xC6 -> LATIN SMALL LETTER O WITH ACUTE
254
+ '\xfa' # 0xC7 -> LATIN SMALL LETTER U WITH ACUTE
255
+ '\xe0' # 0xC8 -> LATIN SMALL LETTER A WITH GRAVE
256
+ '\xe8' # 0xC9 -> LATIN SMALL LETTER E WITH GRAVE
257
+ '\xf2' # 0xCA -> LATIN SMALL LETTER O WITH GRAVE
258
+ '\xf9' # 0xCB -> LATIN SMALL LETTER U WITH GRAVE
259
+ '\xe4' # 0xCC -> LATIN SMALL LETTER A WITH DIAERESIS
260
+ '\xeb' # 0xCD -> LATIN SMALL LETTER E WITH DIAERESIS
261
+ '\xf6' # 0xCE -> LATIN SMALL LETTER O WITH DIAERESIS
262
+ '\xfc' # 0xCF -> LATIN SMALL LETTER U WITH DIAERESIS
263
+ '\xc5' # 0xD0 -> LATIN CAPITAL LETTER A WITH RING ABOVE
264
+ '\xee' # 0xD1 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
265
+ '\xd8' # 0xD2 -> LATIN CAPITAL LETTER O WITH STROKE
266
+ '\xc6' # 0xD3 -> LATIN CAPITAL LETTER AE
267
+ '\xe5' # 0xD4 -> LATIN SMALL LETTER A WITH RING ABOVE
268
+ '\xed' # 0xD5 -> LATIN SMALL LETTER I WITH ACUTE
269
+ '\xf8' # 0xD6 -> LATIN SMALL LETTER O WITH STROKE
270
+ '\xe6' # 0xD7 -> LATIN SMALL LETTER AE
271
+ '\xc4' # 0xD8 -> LATIN CAPITAL LETTER A WITH DIAERESIS
272
+ '\xec' # 0xD9 -> LATIN SMALL LETTER I WITH GRAVE
273
+ '\xd6' # 0xDA -> LATIN CAPITAL LETTER O WITH DIAERESIS
274
+ '\xdc' # 0xDB -> LATIN CAPITAL LETTER U WITH DIAERESIS
275
+ '\xc9' # 0xDC -> LATIN CAPITAL LETTER E WITH ACUTE
276
+ '\xef' # 0xDD -> LATIN SMALL LETTER I WITH DIAERESIS
277
+ '\xdf' # 0xDE -> LATIN SMALL LETTER SHARP S (GERMAN)
278
+ '\xd4' # 0xDF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
279
+ '\xc1' # 0xE0 -> LATIN CAPITAL LETTER A WITH ACUTE
280
+ '\xc3' # 0xE1 -> LATIN CAPITAL LETTER A WITH TILDE
281
+ '\xe3' # 0xE2 -> LATIN SMALL LETTER A WITH TILDE
282
+ '\xd0' # 0xE3 -> LATIN CAPITAL LETTER ETH (ICELANDIC)
283
+ '\xf0' # 0xE4 -> LATIN SMALL LETTER ETH (ICELANDIC)
284
+ '\xcd' # 0xE5 -> LATIN CAPITAL LETTER I WITH ACUTE
285
+ '\xcc' # 0xE6 -> LATIN CAPITAL LETTER I WITH GRAVE
286
+ '\xd3' # 0xE7 -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd2' # 0xE8 -> LATIN CAPITAL LETTER O WITH GRAVE
288
+ '\xd5' # 0xE9 -> LATIN CAPITAL LETTER O WITH TILDE
289
+ '\xf5' # 0xEA -> LATIN SMALL LETTER O WITH TILDE
290
+ '\u0160' # 0xEB -> LATIN CAPITAL LETTER S WITH CARON
291
+ '\u0161' # 0xEC -> LATIN SMALL LETTER S WITH CARON
292
+ '\xda' # 0xED -> LATIN CAPITAL LETTER U WITH ACUTE
293
+ '\u0178' # 0xEE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
294
+ '\xff' # 0xEF -> LATIN SMALL LETTER Y WITH DIAERESIS
295
+ '\xde' # 0xF0 -> LATIN CAPITAL LETTER THORN (ICELANDIC)
296
+ '\xfe' # 0xF1 -> LATIN SMALL LETTER THORN (ICELANDIC)
297
+ '\xb7' # 0xF2 -> MIDDLE DOT
298
+ '\xb5' # 0xF3 -> MICRO SIGN
299
+ '\xb6' # 0xF4 -> PILCROW SIGN
300
+ '\xbe' # 0xF5 -> VULGAR FRACTION THREE QUARTERS
301
+ '\u2014' # 0xF6 -> EM DASH
302
+ '\xbc' # 0xF7 -> VULGAR FRACTION ONE QUARTER
303
+ '\xbd' # 0xF8 -> VULGAR FRACTION ONE HALF
304
+ '\xaa' # 0xF9 -> FEMININE ORDINAL INDICATOR
305
+ '\xba' # 0xFA -> MASCULINE ORDINAL INDICATOR
306
+ '\xab' # 0xFB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
307
+ '\u25a0' # 0xFC -> BLACK SQUARE
308
+ '\xbb' # 0xFD -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
309
+ '\xb1' # 0xFE -> PLUS-MINUS SIGN
310
+ '\ufffe'
311
+ )
312
+
313
+ ### Encoding table
314
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/hz.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # hz.py: Python Unicode Codec for HZ
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_cn, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_cn.getcodec('hz')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='hz',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/idna.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep)
2
+
3
+ import stringprep, re, codecs
4
+ from unicodedata import ucd_3_2_0 as unicodedata
5
+
6
+ # IDNA section 3.1
7
+ dots = re.compile("[\u002E\u3002\uFF0E\uFF61]")
8
+
9
+ # IDNA section 5
10
+ ace_prefix = b"xn--"
11
+ sace_prefix = "xn--"
12
+
13
+ # This assumes query strings, so AllowUnassigned is true
14
+ def nameprep(label):
15
+ # Map
16
+ newlabel = []
17
+ for c in label:
18
+ if stringprep.in_table_b1(c):
19
+ # Map to nothing
20
+ continue
21
+ newlabel.append(stringprep.map_table_b2(c))
22
+ label = "".join(newlabel)
23
+
24
+ # Normalize
25
+ label = unicodedata.normalize("NFKC", label)
26
+
27
+ # Prohibit
28
+ for c in label:
29
+ if stringprep.in_table_c12(c) or \
30
+ stringprep.in_table_c22(c) or \
31
+ stringprep.in_table_c3(c) or \
32
+ stringprep.in_table_c4(c) or \
33
+ stringprep.in_table_c5(c) or \
34
+ stringprep.in_table_c6(c) or \
35
+ stringprep.in_table_c7(c) or \
36
+ stringprep.in_table_c8(c) or \
37
+ stringprep.in_table_c9(c):
38
+ raise UnicodeError("Invalid character %r" % c)
39
+
40
+ # Check bidi
41
+ RandAL = [stringprep.in_table_d1(x) for x in label]
42
+ if any(RandAL):
43
+ # There is a RandAL char in the string. Must perform further
44
+ # tests:
45
+ # 1) The characters in section 5.8 MUST be prohibited.
46
+ # This is table C.8, which was already checked
47
+ # 2) If a string contains any RandALCat character, the string
48
+ # MUST NOT contain any LCat character.
49
+ if any(stringprep.in_table_d2(x) for x in label):
50
+ raise UnicodeError("Violation of BIDI requirement 2")
51
+ # 3) If a string contains any RandALCat character, a
52
+ # RandALCat character MUST be the first character of the
53
+ # string, and a RandALCat character MUST be the last
54
+ # character of the string.
55
+ if not RandAL[0] or not RandAL[-1]:
56
+ raise UnicodeError("Violation of BIDI requirement 3")
57
+
58
+ return label
59
+
60
+ def ToASCII(label):
61
+ try:
62
+ # Step 1: try ASCII
63
+ label = label.encode("ascii")
64
+ except UnicodeError:
65
+ pass
66
+ else:
67
+ # Skip to step 3: UseSTD3ASCIIRules is false, so
68
+ # Skip to step 8.
69
+ if 0 < len(label) < 64:
70
+ return label
71
+ raise UnicodeError("label empty or too long")
72
+
73
+ # Step 2: nameprep
74
+ label = nameprep(label)
75
+
76
+ # Step 3: UseSTD3ASCIIRules is false
77
+ # Step 4: try ASCII
78
+ try:
79
+ label = label.encode("ascii")
80
+ except UnicodeError:
81
+ pass
82
+ else:
83
+ # Skip to step 8.
84
+ if 0 < len(label) < 64:
85
+ return label
86
+ raise UnicodeError("label empty or too long")
87
+
88
+ # Step 5: Check ACE prefix
89
+ if label.startswith(sace_prefix):
90
+ raise UnicodeError("Label starts with ACE prefix")
91
+
92
+ # Step 6: Encode with PUNYCODE
93
+ label = label.encode("punycode")
94
+
95
+ # Step 7: Prepend ACE prefix
96
+ label = ace_prefix + label
97
+
98
+ # Step 8: Check size
99
+ if 0 < len(label) < 64:
100
+ return label
101
+ raise UnicodeError("label empty or too long")
102
+
103
+ def ToUnicode(label):
104
+ # Step 1: Check for ASCII
105
+ if isinstance(label, bytes):
106
+ pure_ascii = True
107
+ else:
108
+ try:
109
+ label = label.encode("ascii")
110
+ pure_ascii = True
111
+ except UnicodeError:
112
+ pure_ascii = False
113
+ if not pure_ascii:
114
+ # Step 2: Perform nameprep
115
+ label = nameprep(label)
116
+ # It doesn't say this, but apparently, it should be ASCII now
117
+ try:
118
+ label = label.encode("ascii")
119
+ except UnicodeError:
120
+ raise UnicodeError("Invalid character in IDN label")
121
+ # Step 3: Check for ACE prefix
122
+ if not label.startswith(ace_prefix):
123
+ return str(label, "ascii")
124
+
125
+ # Step 4: Remove ACE prefix
126
+ label1 = label[len(ace_prefix):]
127
+
128
+ # Step 5: Decode using PUNYCODE
129
+ result = label1.decode("punycode")
130
+
131
+ # Step 6: Apply ToASCII
132
+ label2 = ToASCII(result)
133
+
134
+ # Step 7: Compare the result of step 6 with the one of step 3
135
+ # label2 will already be in lower case.
136
+ if str(label, "ascii").lower() != str(label2, "ascii"):
137
+ raise UnicodeError("IDNA does not round-trip", label, label2)
138
+
139
+ # Step 8: return the result of step 5
140
+ return result
141
+
142
+ ### Codec APIs
143
+
144
+ class Codec(codecs.Codec):
145
+ def encode(self, input, errors='strict'):
146
+
147
+ if errors != 'strict':
148
+ # IDNA is quite clear that implementations must be strict
149
+ raise UnicodeError("unsupported error handling "+errors)
150
+
151
+ if not input:
152
+ return b'', 0
153
+
154
+ try:
155
+ result = input.encode('ascii')
156
+ except UnicodeEncodeError:
157
+ pass
158
+ else:
159
+ # ASCII name: fast path
160
+ labels = result.split(b'.')
161
+ for label in labels[:-1]:
162
+ if not (0 < len(label) < 64):
163
+ raise UnicodeError("label empty or too long")
164
+ if len(labels[-1]) >= 64:
165
+ raise UnicodeError("label too long")
166
+ return result, len(input)
167
+
168
+ result = bytearray()
169
+ labels = dots.split(input)
170
+ if labels and not labels[-1]:
171
+ trailing_dot = b'.'
172
+ del labels[-1]
173
+ else:
174
+ trailing_dot = b''
175
+ for label in labels:
176
+ if result:
177
+ # Join with U+002E
178
+ result.extend(b'.')
179
+ result.extend(ToASCII(label))
180
+ return bytes(result+trailing_dot), len(input)
181
+
182
+ def decode(self, input, errors='strict'):
183
+
184
+ if errors != 'strict':
185
+ raise UnicodeError("Unsupported error handling "+errors)
186
+
187
+ if not input:
188
+ return "", 0
189
+
190
+ # IDNA allows decoding to operate on Unicode strings, too.
191
+ if not isinstance(input, bytes):
192
+ # XXX obviously wrong, see #3232
193
+ input = bytes(input)
194
+
195
+ if ace_prefix not in input:
196
+ # Fast path
197
+ try:
198
+ return input.decode('ascii'), len(input)
199
+ except UnicodeDecodeError:
200
+ pass
201
+
202
+ labels = input.split(b".")
203
+
204
+ if labels and len(labels[-1]) == 0:
205
+ trailing_dot = '.'
206
+ del labels[-1]
207
+ else:
208
+ trailing_dot = ''
209
+
210
+ result = []
211
+ for label in labels:
212
+ result.append(ToUnicode(label))
213
+
214
+ return ".".join(result)+trailing_dot, len(input)
215
+
216
+ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
217
+ def _buffer_encode(self, input, errors, final):
218
+ if errors != 'strict':
219
+ # IDNA is quite clear that implementations must be strict
220
+ raise UnicodeError("unsupported error handling "+errors)
221
+
222
+ if not input:
223
+ return (b'', 0)
224
+
225
+ labels = dots.split(input)
226
+ trailing_dot = b''
227
+ if labels:
228
+ if not labels[-1]:
229
+ trailing_dot = b'.'
230
+ del labels[-1]
231
+ elif not final:
232
+ # Keep potentially unfinished label until the next call
233
+ del labels[-1]
234
+ if labels:
235
+ trailing_dot = b'.'
236
+
237
+ result = bytearray()
238
+ size = 0
239
+ for label in labels:
240
+ if size:
241
+ # Join with U+002E
242
+ result.extend(b'.')
243
+ size += 1
244
+ result.extend(ToASCII(label))
245
+ size += len(label)
246
+
247
+ result += trailing_dot
248
+ size += len(trailing_dot)
249
+ return (bytes(result), size)
250
+
251
+ class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
252
+ def _buffer_decode(self, input, errors, final):
253
+ if errors != 'strict':
254
+ raise UnicodeError("Unsupported error handling "+errors)
255
+
256
+ if not input:
257
+ return ("", 0)
258
+
259
+ # IDNA allows decoding to operate on Unicode strings, too.
260
+ if isinstance(input, str):
261
+ labels = dots.split(input)
262
+ else:
263
+ # Must be ASCII string
264
+ input = str(input, "ascii")
265
+ labels = input.split(".")
266
+
267
+ trailing_dot = ''
268
+ if labels:
269
+ if not labels[-1]:
270
+ trailing_dot = '.'
271
+ del labels[-1]
272
+ elif not final:
273
+ # Keep potentially unfinished label until the next call
274
+ del labels[-1]
275
+ if labels:
276
+ trailing_dot = '.'
277
+
278
+ result = []
279
+ size = 0
280
+ for label in labels:
281
+ result.append(ToUnicode(label))
282
+ if size:
283
+ size += 1
284
+ size += len(label)
285
+
286
+ result = ".".join(result) + trailing_dot
287
+ size += len(trailing_dot)
288
+ return (result, size)
289
+
290
+ class StreamWriter(Codec,codecs.StreamWriter):
291
+ pass
292
+
293
+ class StreamReader(Codec,codecs.StreamReader):
294
+ pass
295
+
296
+ ### encodings module API
297
+
298
+ def getregentry():
299
+ return codecs.CodecInfo(
300
+ name='idna',
301
+ encode=Codec().encode,
302
+ decode=Codec().decode,
303
+ incrementalencoder=IncrementalEncoder,
304
+ incrementaldecoder=IncrementalDecoder,
305
+ streamwriter=StreamWriter,
306
+ streamreader=StreamReader,
307
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp.py: Python Unicode Codec for ISO2022_JP
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_1.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp_1.py: Python Unicode Codec for ISO2022_JP_1
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_1')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_1',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_jp_3.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_jp_3.py: Python Unicode Codec for ISO2022_JP_3
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_jp_3')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_jp_3',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso2022_kr.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #
2
+ # iso2022_kr.py: Python Unicode Codec for ISO2022_KR
3
+ #
4
+ # Written by Hye-Shik Chang <perky@FreeBSD.org>
5
+ #
6
+
7
+ import _codecs_iso2022, codecs
8
+ import _multibytecodec as mbc
9
+
10
+ codec = _codecs_iso2022.getcodec('iso2022_kr')
11
+
12
+ class Codec(codecs.Codec):
13
+ encode = codec.encode
14
+ decode = codec.decode
15
+
16
+ class IncrementalEncoder(mbc.MultibyteIncrementalEncoder,
17
+ codecs.IncrementalEncoder):
18
+ codec = codec
19
+
20
+ class IncrementalDecoder(mbc.MultibyteIncrementalDecoder,
21
+ codecs.IncrementalDecoder):
22
+ codec = codec
23
+
24
+ class StreamReader(Codec, mbc.MultibyteStreamReader, codecs.StreamReader):
25
+ codec = codec
26
+
27
+ class StreamWriter(Codec, mbc.MultibyteStreamWriter, codecs.StreamWriter):
28
+ codec = codec
29
+
30
+ def getregentry():
31
+ return codecs.CodecInfo(
32
+ name='iso2022_kr',
33
+ encode=Codec().encode,
34
+ decode=Codec().decode,
35
+ incrementalencoder=IncrementalEncoder,
36
+ incrementaldecoder=IncrementalDecoder,
37
+ streamreader=StreamReader,
38
+ streamwriter=StreamWriter,
39
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_14.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_14 generated from 'MAPPINGS/ISO8859/8859-14.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-14',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u1e02' # 0xA1 -> LATIN CAPITAL LETTER B WITH DOT ABOVE
210
+ '\u1e03' # 0xA2 -> LATIN SMALL LETTER B WITH DOT ABOVE
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\u010a' # 0xA4 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
213
+ '\u010b' # 0xA5 -> LATIN SMALL LETTER C WITH DOT ABOVE
214
+ '\u1e0a' # 0xA6 -> LATIN CAPITAL LETTER D WITH DOT ABOVE
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\u1e80' # 0xA8 -> LATIN CAPITAL LETTER W WITH GRAVE
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u1e82' # 0xAA -> LATIN CAPITAL LETTER W WITH ACUTE
219
+ '\u1e0b' # 0xAB -> LATIN SMALL LETTER D WITH DOT ABOVE
220
+ '\u1ef2' # 0xAC -> LATIN CAPITAL LETTER Y WITH GRAVE
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\u0178' # 0xAF -> LATIN CAPITAL LETTER Y WITH DIAERESIS
224
+ '\u1e1e' # 0xB0 -> LATIN CAPITAL LETTER F WITH DOT ABOVE
225
+ '\u1e1f' # 0xB1 -> LATIN SMALL LETTER F WITH DOT ABOVE
226
+ '\u0120' # 0xB2 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
227
+ '\u0121' # 0xB3 -> LATIN SMALL LETTER G WITH DOT ABOVE
228
+ '\u1e40' # 0xB4 -> LATIN CAPITAL LETTER M WITH DOT ABOVE
229
+ '\u1e41' # 0xB5 -> LATIN SMALL LETTER M WITH DOT ABOVE
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\u1e56' # 0xB7 -> LATIN CAPITAL LETTER P WITH DOT ABOVE
232
+ '\u1e81' # 0xB8 -> LATIN SMALL LETTER W WITH GRAVE
233
+ '\u1e57' # 0xB9 -> LATIN SMALL LETTER P WITH DOT ABOVE
234
+ '\u1e83' # 0xBA -> LATIN SMALL LETTER W WITH ACUTE
235
+ '\u1e60' # 0xBB -> LATIN CAPITAL LETTER S WITH DOT ABOVE
236
+ '\u1ef3' # 0xBC -> LATIN SMALL LETTER Y WITH GRAVE
237
+ '\u1e84' # 0xBD -> LATIN CAPITAL LETTER W WITH DIAERESIS
238
+ '\u1e85' # 0xBE -> LATIN SMALL LETTER W WITH DIAERESIS
239
+ '\u1e61' # 0xBF -> LATIN SMALL LETTER S WITH DOT ABOVE
240
+ '\xc0' # 0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\xc3' # 0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\xc5' # 0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
246
+ '\xc6' # 0xC6 -> LATIN CAPITAL LETTER AE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\xc8' # 0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\xca' # 0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\xcc' # 0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\xcf' # 0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
256
+ '\u0174' # 0xD0 -> LATIN CAPITAL LETTER W WITH CIRCUMFLEX
257
+ '\xd1' # 0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
258
+ '\xd2' # 0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\xd5' # 0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\u1e6a' # 0xD7 -> LATIN CAPITAL LETTER T WITH DOT ABOVE
264
+ '\xd8' # 0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
265
+ '\xd9' # 0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\xdb' # 0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\u0176' # 0xDE -> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\xe0' # 0xE0 -> LATIN SMALL LETTER A WITH GRAVE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\xe3' # 0xE3 -> LATIN SMALL LETTER A WITH TILDE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\xe5' # 0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
278
+ '\xe6' # 0xE6 -> LATIN SMALL LETTER AE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\xe8' # 0xE8 -> LATIN SMALL LETTER E WITH GRAVE
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\xea' # 0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\xec' # 0xEC -> LATIN SMALL LETTER I WITH GRAVE
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\xef' # 0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
288
+ '\u0175' # 0xF0 -> LATIN SMALL LETTER W WITH CIRCUMFLEX
289
+ '\xf1' # 0xF1 -> LATIN SMALL LETTER N WITH TILDE
290
+ '\xf2' # 0xF2 -> LATIN SMALL LETTER O WITH GRAVE
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\xf5' # 0xF5 -> LATIN SMALL LETTER O WITH TILDE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\u1e6b' # 0xF7 -> LATIN SMALL LETTER T WITH DOT ABOVE
296
+ '\xf8' # 0xF8 -> LATIN SMALL LETTER O WITH STROKE
297
+ '\xf9' # 0xF9 -> LATIN SMALL LETTER U WITH GRAVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\xfb' # 0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\u0177' # 0xFE -> LATIN SMALL LETTER Y WITH CIRCUMFLEX
303
+ '\xff' # 0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_2.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_2 generated from 'MAPPINGS/ISO8859/8859-2.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-2',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u0104' # 0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
210
+ '\u02d8' # 0xA2 -> BREVE
211
+ '\u0141' # 0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\u013d' # 0xA5 -> LATIN CAPITAL LETTER L WITH CARON
214
+ '\u015a' # 0xA6 -> LATIN CAPITAL LETTER S WITH ACUTE
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\u0160' # 0xA9 -> LATIN CAPITAL LETTER S WITH CARON
218
+ '\u015e' # 0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
219
+ '\u0164' # 0xAB -> LATIN CAPITAL LETTER T WITH CARON
220
+ '\u0179' # 0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\u017d' # 0xAE -> LATIN CAPITAL LETTER Z WITH CARON
223
+ '\u017b' # 0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\u0105' # 0xB1 -> LATIN SMALL LETTER A WITH OGONEK
226
+ '\u02db' # 0xB2 -> OGONEK
227
+ '\u0142' # 0xB3 -> LATIN SMALL LETTER L WITH STROKE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\u013e' # 0xB5 -> LATIN SMALL LETTER L WITH CARON
230
+ '\u015b' # 0xB6 -> LATIN SMALL LETTER S WITH ACUTE
231
+ '\u02c7' # 0xB7 -> CARON
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\u0161' # 0xB9 -> LATIN SMALL LETTER S WITH CARON
234
+ '\u015f' # 0xBA -> LATIN SMALL LETTER S WITH CEDILLA
235
+ '\u0165' # 0xBB -> LATIN SMALL LETTER T WITH CARON
236
+ '\u017a' # 0xBC -> LATIN SMALL LETTER Z WITH ACUTE
237
+ '\u02dd' # 0xBD -> DOUBLE ACUTE ACCENT
238
+ '\u017e' # 0xBE -> LATIN SMALL LETTER Z WITH CARON
239
+ '\u017c' # 0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
240
+ '\u0154' # 0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
241
+ '\xc1' # 0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
242
+ '\xc2' # 0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
243
+ '\u0102' # 0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
244
+ '\xc4' # 0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
245
+ '\u0139' # 0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
246
+ '\u0106' # 0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
247
+ '\xc7' # 0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
248
+ '\u010c' # 0xC8 -> LATIN CAPITAL LETTER C WITH CARON
249
+ '\xc9' # 0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
250
+ '\u0118' # 0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
251
+ '\xcb' # 0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
252
+ '\u011a' # 0xCC -> LATIN CAPITAL LETTER E WITH CARON
253
+ '\xcd' # 0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
254
+ '\xce' # 0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
255
+ '\u010e' # 0xCF -> LATIN CAPITAL LETTER D WITH CARON
256
+ '\u0110' # 0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
257
+ '\u0143' # 0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
258
+ '\u0147' # 0xD2 -> LATIN CAPITAL LETTER N WITH CARON
259
+ '\xd3' # 0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
260
+ '\xd4' # 0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
261
+ '\u0150' # 0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
262
+ '\xd6' # 0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
263
+ '\xd7' # 0xD7 -> MULTIPLICATION SIGN
264
+ '\u0158' # 0xD8 -> LATIN CAPITAL LETTER R WITH CARON
265
+ '\u016e' # 0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
266
+ '\xda' # 0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
267
+ '\u0170' # 0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
268
+ '\xdc' # 0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
269
+ '\xdd' # 0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
270
+ '\u0162' # 0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
271
+ '\xdf' # 0xDF -> LATIN SMALL LETTER SHARP S
272
+ '\u0155' # 0xE0 -> LATIN SMALL LETTER R WITH ACUTE
273
+ '\xe1' # 0xE1 -> LATIN SMALL LETTER A WITH ACUTE
274
+ '\xe2' # 0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
275
+ '\u0103' # 0xE3 -> LATIN SMALL LETTER A WITH BREVE
276
+ '\xe4' # 0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
277
+ '\u013a' # 0xE5 -> LATIN SMALL LETTER L WITH ACUTE
278
+ '\u0107' # 0xE6 -> LATIN SMALL LETTER C WITH ACUTE
279
+ '\xe7' # 0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
280
+ '\u010d' # 0xE8 -> LATIN SMALL LETTER C WITH CARON
281
+ '\xe9' # 0xE9 -> LATIN SMALL LETTER E WITH ACUTE
282
+ '\u0119' # 0xEA -> LATIN SMALL LETTER E WITH OGONEK
283
+ '\xeb' # 0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
284
+ '\u011b' # 0xEC -> LATIN SMALL LETTER E WITH CARON
285
+ '\xed' # 0xED -> LATIN SMALL LETTER I WITH ACUTE
286
+ '\xee' # 0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
287
+ '\u010f' # 0xEF -> LATIN SMALL LETTER D WITH CARON
288
+ '\u0111' # 0xF0 -> LATIN SMALL LETTER D WITH STROKE
289
+ '\u0144' # 0xF1 -> LATIN SMALL LETTER N WITH ACUTE
290
+ '\u0148' # 0xF2 -> LATIN SMALL LETTER N WITH CARON
291
+ '\xf3' # 0xF3 -> LATIN SMALL LETTER O WITH ACUTE
292
+ '\xf4' # 0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
293
+ '\u0151' # 0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
294
+ '\xf6' # 0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
295
+ '\xf7' # 0xF7 -> DIVISION SIGN
296
+ '\u0159' # 0xF8 -> LATIN SMALL LETTER R WITH CARON
297
+ '\u016f' # 0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
298
+ '\xfa' # 0xFA -> LATIN SMALL LETTER U WITH ACUTE
299
+ '\u0171' # 0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
300
+ '\xfc' # 0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
301
+ '\xfd' # 0xFD -> LATIN SMALL LETTER Y WITH ACUTE
302
+ '\u0163' # 0xFE -> LATIN SMALL LETTER T WITH CEDILLA
303
+ '\u02d9' # 0xFF -> DOT ABOVE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_6.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_6 generated from 'MAPPINGS/ISO8859/8859-6.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-6',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\ufffe'
210
+ '\ufffe'
211
+ '\ufffe'
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\ufffe'
214
+ '\ufffe'
215
+ '\ufffe'
216
+ '\ufffe'
217
+ '\ufffe'
218
+ '\ufffe'
219
+ '\ufffe'
220
+ '\u060c' # 0xAC -> ARABIC COMMA
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\ufffe'
223
+ '\ufffe'
224
+ '\ufffe'
225
+ '\ufffe'
226
+ '\ufffe'
227
+ '\ufffe'
228
+ '\ufffe'
229
+ '\ufffe'
230
+ '\ufffe'
231
+ '\ufffe'
232
+ '\ufffe'
233
+ '\ufffe'
234
+ '\ufffe'
235
+ '\u061b' # 0xBB -> ARABIC SEMICOLON
236
+ '\ufffe'
237
+ '\ufffe'
238
+ '\ufffe'
239
+ '\u061f' # 0xBF -> ARABIC QUESTION MARK
240
+ '\ufffe'
241
+ '\u0621' # 0xC1 -> ARABIC LETTER HAMZA
242
+ '\u0622' # 0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
243
+ '\u0623' # 0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
244
+ '\u0624' # 0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
245
+ '\u0625' # 0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
246
+ '\u0626' # 0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
247
+ '\u0627' # 0xC7 -> ARABIC LETTER ALEF
248
+ '\u0628' # 0xC8 -> ARABIC LETTER BEH
249
+ '\u0629' # 0xC9 -> ARABIC LETTER TEH MARBUTA
250
+ '\u062a' # 0xCA -> ARABIC LETTER TEH
251
+ '\u062b' # 0xCB -> ARABIC LETTER THEH
252
+ '\u062c' # 0xCC -> ARABIC LETTER JEEM
253
+ '\u062d' # 0xCD -> ARABIC LETTER HAH
254
+ '\u062e' # 0xCE -> ARABIC LETTER KHAH
255
+ '\u062f' # 0xCF -> ARABIC LETTER DAL
256
+ '\u0630' # 0xD0 -> ARABIC LETTER THAL
257
+ '\u0631' # 0xD1 -> ARABIC LETTER REH
258
+ '\u0632' # 0xD2 -> ARABIC LETTER ZAIN
259
+ '\u0633' # 0xD3 -> ARABIC LETTER SEEN
260
+ '\u0634' # 0xD4 -> ARABIC LETTER SHEEN
261
+ '\u0635' # 0xD5 -> ARABIC LETTER SAD
262
+ '\u0636' # 0xD6 -> ARABIC LETTER DAD
263
+ '\u0637' # 0xD7 -> ARABIC LETTER TAH
264
+ '\u0638' # 0xD8 -> ARABIC LETTER ZAH
265
+ '\u0639' # 0xD9 -> ARABIC LETTER AIN
266
+ '\u063a' # 0xDA -> ARABIC LETTER GHAIN
267
+ '\ufffe'
268
+ '\ufffe'
269
+ '\ufffe'
270
+ '\ufffe'
271
+ '\ufffe'
272
+ '\u0640' # 0xE0 -> ARABIC TATWEEL
273
+ '\u0641' # 0xE1 -> ARABIC LETTER FEH
274
+ '\u0642' # 0xE2 -> ARABIC LETTER QAF
275
+ '\u0643' # 0xE3 -> ARABIC LETTER KAF
276
+ '\u0644' # 0xE4 -> ARABIC LETTER LAM
277
+ '\u0645' # 0xE5 -> ARABIC LETTER MEEM
278
+ '\u0646' # 0xE6 -> ARABIC LETTER NOON
279
+ '\u0647' # 0xE7 -> ARABIC LETTER HEH
280
+ '\u0648' # 0xE8 -> ARABIC LETTER WAW
281
+ '\u0649' # 0xE9 -> ARABIC LETTER ALEF MAKSURA
282
+ '\u064a' # 0xEA -> ARABIC LETTER YEH
283
+ '\u064b' # 0xEB -> ARABIC FATHATAN
284
+ '\u064c' # 0xEC -> ARABIC DAMMATAN
285
+ '\u064d' # 0xED -> ARABIC KASRATAN
286
+ '\u064e' # 0xEE -> ARABIC FATHA
287
+ '\u064f' # 0xEF -> ARABIC DAMMA
288
+ '\u0650' # 0xF0 -> ARABIC KASRA
289
+ '\u0651' # 0xF1 -> ARABIC SHADDA
290
+ '\u0652' # 0xF2 -> ARABIC SUKUN
291
+ '\ufffe'
292
+ '\ufffe'
293
+ '\ufffe'
294
+ '\ufffe'
295
+ '\ufffe'
296
+ '\ufffe'
297
+ '\ufffe'
298
+ '\ufffe'
299
+ '\ufffe'
300
+ '\ufffe'
301
+ '\ufffe'
302
+ '\ufffe'
303
+ '\ufffe'
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_7.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_7 generated from 'MAPPINGS/ISO8859/8859-7.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-7',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\u2018' # 0xA1 -> LEFT SINGLE QUOTATION MARK
210
+ '\u2019' # 0xA2 -> RIGHT SINGLE QUOTATION MARK
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\u20ac' # 0xA4 -> EURO SIGN
213
+ '\u20af' # 0xA5 -> DRACHMA SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u037a' # 0xAA -> GREEK YPOGEGRAMMENI
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\ufffe'
223
+ '\u2015' # 0xAF -> HORIZONTAL BAR
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\u0384' # 0xB4 -> GREEK TONOS
229
+ '\u0385' # 0xB5 -> GREEK DIALYTIKA TONOS
230
+ '\u0386' # 0xB6 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\u0388' # 0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
233
+ '\u0389' # 0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
234
+ '\u038a' # 0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\u038c' # 0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\u038e' # 0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
239
+ '\u038f' # 0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
240
+ '\u0390' # 0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
241
+ '\u0391' # 0xC1 -> GREEK CAPITAL LETTER ALPHA
242
+ '\u0392' # 0xC2 -> GREEK CAPITAL LETTER BETA
243
+ '\u0393' # 0xC3 -> GREEK CAPITAL LETTER GAMMA
244
+ '\u0394' # 0xC4 -> GREEK CAPITAL LETTER DELTA
245
+ '\u0395' # 0xC5 -> GREEK CAPITAL LETTER EPSILON
246
+ '\u0396' # 0xC6 -> GREEK CAPITAL LETTER ZETA
247
+ '\u0397' # 0xC7 -> GREEK CAPITAL LETTER ETA
248
+ '\u0398' # 0xC8 -> GREEK CAPITAL LETTER THETA
249
+ '\u0399' # 0xC9 -> GREEK CAPITAL LETTER IOTA
250
+ '\u039a' # 0xCA -> GREEK CAPITAL LETTER KAPPA
251
+ '\u039b' # 0xCB -> GREEK CAPITAL LETTER LAMDA
252
+ '\u039c' # 0xCC -> GREEK CAPITAL LETTER MU
253
+ '\u039d' # 0xCD -> GREEK CAPITAL LETTER NU
254
+ '\u039e' # 0xCE -> GREEK CAPITAL LETTER XI
255
+ '\u039f' # 0xCF -> GREEK CAPITAL LETTER OMICRON
256
+ '\u03a0' # 0xD0 -> GREEK CAPITAL LETTER PI
257
+ '\u03a1' # 0xD1 -> GREEK CAPITAL LETTER RHO
258
+ '\ufffe'
259
+ '\u03a3' # 0xD3 -> GREEK CAPITAL LETTER SIGMA
260
+ '\u03a4' # 0xD4 -> GREEK CAPITAL LETTER TAU
261
+ '\u03a5' # 0xD5 -> GREEK CAPITAL LETTER UPSILON
262
+ '\u03a6' # 0xD6 -> GREEK CAPITAL LETTER PHI
263
+ '\u03a7' # 0xD7 -> GREEK CAPITAL LETTER CHI
264
+ '\u03a8' # 0xD8 -> GREEK CAPITAL LETTER PSI
265
+ '\u03a9' # 0xD9 -> GREEK CAPITAL LETTER OMEGA
266
+ '\u03aa' # 0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
267
+ '\u03ab' # 0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
268
+ '\u03ac' # 0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
269
+ '\u03ad' # 0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
270
+ '\u03ae' # 0xDE -> GREEK SMALL LETTER ETA WITH TONOS
271
+ '\u03af' # 0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
272
+ '\u03b0' # 0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
273
+ '\u03b1' # 0xE1 -> GREEK SMALL LETTER ALPHA
274
+ '\u03b2' # 0xE2 -> GREEK SMALL LETTER BETA
275
+ '\u03b3' # 0xE3 -> GREEK SMALL LETTER GAMMA
276
+ '\u03b4' # 0xE4 -> GREEK SMALL LETTER DELTA
277
+ '\u03b5' # 0xE5 -> GREEK SMALL LETTER EPSILON
278
+ '\u03b6' # 0xE6 -> GREEK SMALL LETTER ZETA
279
+ '\u03b7' # 0xE7 -> GREEK SMALL LETTER ETA
280
+ '\u03b8' # 0xE8 -> GREEK SMALL LETTER THETA
281
+ '\u03b9' # 0xE9 -> GREEK SMALL LETTER IOTA
282
+ '\u03ba' # 0xEA -> GREEK SMALL LETTER KAPPA
283
+ '\u03bb' # 0xEB -> GREEK SMALL LETTER LAMDA
284
+ '\u03bc' # 0xEC -> GREEK SMALL LETTER MU
285
+ '\u03bd' # 0xED -> GREEK SMALL LETTER NU
286
+ '\u03be' # 0xEE -> GREEK SMALL LETTER XI
287
+ '\u03bf' # 0xEF -> GREEK SMALL LETTER OMICRON
288
+ '\u03c0' # 0xF0 -> GREEK SMALL LETTER PI
289
+ '\u03c1' # 0xF1 -> GREEK SMALL LETTER RHO
290
+ '\u03c2' # 0xF2 -> GREEK SMALL LETTER FINAL SIGMA
291
+ '\u03c3' # 0xF3 -> GREEK SMALL LETTER SIGMA
292
+ '\u03c4' # 0xF4 -> GREEK SMALL LETTER TAU
293
+ '\u03c5' # 0xF5 -> GREEK SMALL LETTER UPSILON
294
+ '\u03c6' # 0xF6 -> GREEK SMALL LETTER PHI
295
+ '\u03c7' # 0xF7 -> GREEK SMALL LETTER CHI
296
+ '\u03c8' # 0xF8 -> GREEK SMALL LETTER PSI
297
+ '\u03c9' # 0xF9 -> GREEK SMALL LETTER OMEGA
298
+ '\u03ca' # 0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
299
+ '\u03cb' # 0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
300
+ '\u03cc' # 0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
301
+ '\u03cd' # 0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
302
+ '\u03ce' # 0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
303
+ '\ufffe'
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/iso8859_8.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec iso8859_8 generated from 'MAPPINGS/ISO8859/8859-8.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='iso8859-8',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> NULL
49
+ '\x01' # 0x01 -> START OF HEADING
50
+ '\x02' # 0x02 -> START OF TEXT
51
+ '\x03' # 0x03 -> END OF TEXT
52
+ '\x04' # 0x04 -> END OF TRANSMISSION
53
+ '\x05' # 0x05 -> ENQUIRY
54
+ '\x06' # 0x06 -> ACKNOWLEDGE
55
+ '\x07' # 0x07 -> BELL
56
+ '\x08' # 0x08 -> BACKSPACE
57
+ '\t' # 0x09 -> HORIZONTAL TABULATION
58
+ '\n' # 0x0A -> LINE FEED
59
+ '\x0b' # 0x0B -> VERTICAL TABULATION
60
+ '\x0c' # 0x0C -> FORM FEED
61
+ '\r' # 0x0D -> CARRIAGE RETURN
62
+ '\x0e' # 0x0E -> SHIFT OUT
63
+ '\x0f' # 0x0F -> SHIFT IN
64
+ '\x10' # 0x10 -> DATA LINK ESCAPE
65
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
66
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
67
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
68
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
69
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
70
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
71
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
72
+ '\x18' # 0x18 -> CANCEL
73
+ '\x19' # 0x19 -> END OF MEDIUM
74
+ '\x1a' # 0x1A -> SUBSTITUTE
75
+ '\x1b' # 0x1B -> ESCAPE
76
+ '\x1c' # 0x1C -> FILE SEPARATOR
77
+ '\x1d' # 0x1D -> GROUP SEPARATOR
78
+ '\x1e' # 0x1E -> RECORD SEPARATOR
79
+ '\x1f' # 0x1F -> UNIT SEPARATOR
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> DELETE
176
+ '\x80' # 0x80 -> <control>
177
+ '\x81' # 0x81 -> <control>
178
+ '\x82' # 0x82 -> <control>
179
+ '\x83' # 0x83 -> <control>
180
+ '\x84' # 0x84 -> <control>
181
+ '\x85' # 0x85 -> <control>
182
+ '\x86' # 0x86 -> <control>
183
+ '\x87' # 0x87 -> <control>
184
+ '\x88' # 0x88 -> <control>
185
+ '\x89' # 0x89 -> <control>
186
+ '\x8a' # 0x8A -> <control>
187
+ '\x8b' # 0x8B -> <control>
188
+ '\x8c' # 0x8C -> <control>
189
+ '\x8d' # 0x8D -> <control>
190
+ '\x8e' # 0x8E -> <control>
191
+ '\x8f' # 0x8F -> <control>
192
+ '\x90' # 0x90 -> <control>
193
+ '\x91' # 0x91 -> <control>
194
+ '\x92' # 0x92 -> <control>
195
+ '\x93' # 0x93 -> <control>
196
+ '\x94' # 0x94 -> <control>
197
+ '\x95' # 0x95 -> <control>
198
+ '\x96' # 0x96 -> <control>
199
+ '\x97' # 0x97 -> <control>
200
+ '\x98' # 0x98 -> <control>
201
+ '\x99' # 0x99 -> <control>
202
+ '\x9a' # 0x9A -> <control>
203
+ '\x9b' # 0x9B -> <control>
204
+ '\x9c' # 0x9C -> <control>
205
+ '\x9d' # 0x9D -> <control>
206
+ '\x9e' # 0x9E -> <control>
207
+ '\x9f' # 0x9F -> <control>
208
+ '\xa0' # 0xA0 -> NO-BREAK SPACE
209
+ '\ufffe'
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa4' # 0xA4 -> CURRENCY SIGN
213
+ '\xa5' # 0xA5 -> YEN SIGN
214
+ '\xa6' # 0xA6 -> BROKEN BAR
215
+ '\xa7' # 0xA7 -> SECTION SIGN
216
+ '\xa8' # 0xA8 -> DIAERESIS
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\xd7' # 0xAA -> MULTIPLICATION SIGN
219
+ '\xab' # 0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
220
+ '\xac' # 0xAC -> NOT SIGN
221
+ '\xad' # 0xAD -> SOFT HYPHEN
222
+ '\xae' # 0xAE -> REGISTERED SIGN
223
+ '\xaf' # 0xAF -> MACRON
224
+ '\xb0' # 0xB0 -> DEGREE SIGN
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\xb2' # 0xB2 -> SUPERSCRIPT TWO
227
+ '\xb3' # 0xB3 -> SUPERSCRIPT THREE
228
+ '\xb4' # 0xB4 -> ACUTE ACCENT
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\xb6' # 0xB6 -> PILCROW SIGN
231
+ '\xb7' # 0xB7 -> MIDDLE DOT
232
+ '\xb8' # 0xB8 -> CEDILLA
233
+ '\xb9' # 0xB9 -> SUPERSCRIPT ONE
234
+ '\xf7' # 0xBA -> DIVISION SIGN
235
+ '\xbb' # 0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
236
+ '\xbc' # 0xBC -> VULGAR FRACTION ONE QUARTER
237
+ '\xbd' # 0xBD -> VULGAR FRACTION ONE HALF
238
+ '\xbe' # 0xBE -> VULGAR FRACTION THREE QUARTERS
239
+ '\ufffe'
240
+ '\ufffe'
241
+ '\ufffe'
242
+ '\ufffe'
243
+ '\ufffe'
244
+ '\ufffe'
245
+ '\ufffe'
246
+ '\ufffe'
247
+ '\ufffe'
248
+ '\ufffe'
249
+ '\ufffe'
250
+ '\ufffe'
251
+ '\ufffe'
252
+ '\ufffe'
253
+ '\ufffe'
254
+ '\ufffe'
255
+ '\ufffe'
256
+ '\ufffe'
257
+ '\ufffe'
258
+ '\ufffe'
259
+ '\ufffe'
260
+ '\ufffe'
261
+ '\ufffe'
262
+ '\ufffe'
263
+ '\ufffe'
264
+ '\ufffe'
265
+ '\ufffe'
266
+ '\ufffe'
267
+ '\ufffe'
268
+ '\ufffe'
269
+ '\ufffe'
270
+ '\ufffe'
271
+ '\u2017' # 0xDF -> DOUBLE LOW LINE
272
+ '\u05d0' # 0xE0 -> HEBREW LETTER ALEF
273
+ '\u05d1' # 0xE1 -> HEBREW LETTER BET
274
+ '\u05d2' # 0xE2 -> HEBREW LETTER GIMEL
275
+ '\u05d3' # 0xE3 -> HEBREW LETTER DALET
276
+ '\u05d4' # 0xE4 -> HEBREW LETTER HE
277
+ '\u05d5' # 0xE5 -> HEBREW LETTER VAV
278
+ '\u05d6' # 0xE6 -> HEBREW LETTER ZAYIN
279
+ '\u05d7' # 0xE7 -> HEBREW LETTER HET
280
+ '\u05d8' # 0xE8 -> HEBREW LETTER TET
281
+ '\u05d9' # 0xE9 -> HEBREW LETTER YOD
282
+ '\u05da' # 0xEA -> HEBREW LETTER FINAL KAF
283
+ '\u05db' # 0xEB -> HEBREW LETTER KAF
284
+ '\u05dc' # 0xEC -> HEBREW LETTER LAMED
285
+ '\u05dd' # 0xED -> HEBREW LETTER FINAL MEM
286
+ '\u05de' # 0xEE -> HEBREW LETTER MEM
287
+ '\u05df' # 0xEF -> HEBREW LETTER FINAL NUN
288
+ '\u05e0' # 0xF0 -> HEBREW LETTER NUN
289
+ '\u05e1' # 0xF1 -> HEBREW LETTER SAMEKH
290
+ '\u05e2' # 0xF2 -> HEBREW LETTER AYIN
291
+ '\u05e3' # 0xF3 -> HEBREW LETTER FINAL PE
292
+ '\u05e4' # 0xF4 -> HEBREW LETTER PE
293
+ '\u05e5' # 0xF5 -> HEBREW LETTER FINAL TSADI
294
+ '\u05e6' # 0xF6 -> HEBREW LETTER TSADI
295
+ '\u05e7' # 0xF7 -> HEBREW LETTER QOF
296
+ '\u05e8' # 0xF8 -> HEBREW LETTER RESH
297
+ '\u05e9' # 0xF9 -> HEBREW LETTER SHIN
298
+ '\u05ea' # 0xFA -> HEBREW LETTER TAV
299
+ '\ufffe'
300
+ '\ufffe'
301
+ '\u200e' # 0xFD -> LEFT-TO-RIGHT MARK
302
+ '\u200f' # 0xFE -> RIGHT-TO-LEFT MARK
303
+ '\ufffe'
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_centeuro.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_centeuro generated from 'MAPPINGS/VENDORS/APPLE/CENTEURO.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='mac-centeuro',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> CONTROL CHARACTER
49
+ '\x01' # 0x01 -> CONTROL CHARACTER
50
+ '\x02' # 0x02 -> CONTROL CHARACTER
51
+ '\x03' # 0x03 -> CONTROL CHARACTER
52
+ '\x04' # 0x04 -> CONTROL CHARACTER
53
+ '\x05' # 0x05 -> CONTROL CHARACTER
54
+ '\x06' # 0x06 -> CONTROL CHARACTER
55
+ '\x07' # 0x07 -> CONTROL CHARACTER
56
+ '\x08' # 0x08 -> CONTROL CHARACTER
57
+ '\t' # 0x09 -> CONTROL CHARACTER
58
+ '\n' # 0x0A -> CONTROL CHARACTER
59
+ '\x0b' # 0x0B -> CONTROL CHARACTER
60
+ '\x0c' # 0x0C -> CONTROL CHARACTER
61
+ '\r' # 0x0D -> CONTROL CHARACTER
62
+ '\x0e' # 0x0E -> CONTROL CHARACTER
63
+ '\x0f' # 0x0F -> CONTROL CHARACTER
64
+ '\x10' # 0x10 -> CONTROL CHARACTER
65
+ '\x11' # 0x11 -> CONTROL CHARACTER
66
+ '\x12' # 0x12 -> CONTROL CHARACTER
67
+ '\x13' # 0x13 -> CONTROL CHARACTER
68
+ '\x14' # 0x14 -> CONTROL CHARACTER
69
+ '\x15' # 0x15 -> CONTROL CHARACTER
70
+ '\x16' # 0x16 -> CONTROL CHARACTER
71
+ '\x17' # 0x17 -> CONTROL CHARACTER
72
+ '\x18' # 0x18 -> CONTROL CHARACTER
73
+ '\x19' # 0x19 -> CONTROL CHARACTER
74
+ '\x1a' # 0x1A -> CONTROL CHARACTER
75
+ '\x1b' # 0x1B -> CONTROL CHARACTER
76
+ '\x1c' # 0x1C -> CONTROL CHARACTER
77
+ '\x1d' # 0x1D -> CONTROL CHARACTER
78
+ '\x1e' # 0x1E -> CONTROL CHARACTER
79
+ '\x1f' # 0x1F -> CONTROL CHARACTER
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> CONTROL CHARACTER
176
+ '\xc4' # 0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
177
+ '\u0100' # 0x81 -> LATIN CAPITAL LETTER A WITH MACRON
178
+ '\u0101' # 0x82 -> LATIN SMALL LETTER A WITH MACRON
179
+ '\xc9' # 0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
180
+ '\u0104' # 0x84 -> LATIN CAPITAL LETTER A WITH OGONEK
181
+ '\xd6' # 0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
182
+ '\xdc' # 0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
183
+ '\xe1' # 0x87 -> LATIN SMALL LETTER A WITH ACUTE
184
+ '\u0105' # 0x88 -> LATIN SMALL LETTER A WITH OGONEK
185
+ '\u010c' # 0x89 -> LATIN CAPITAL LETTER C WITH CARON
186
+ '\xe4' # 0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
187
+ '\u010d' # 0x8B -> LATIN SMALL LETTER C WITH CARON
188
+ '\u0106' # 0x8C -> LATIN CAPITAL LETTER C WITH ACUTE
189
+ '\u0107' # 0x8D -> LATIN SMALL LETTER C WITH ACUTE
190
+ '\xe9' # 0x8E -> LATIN SMALL LETTER E WITH ACUTE
191
+ '\u0179' # 0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
192
+ '\u017a' # 0x90 -> LATIN SMALL LETTER Z WITH ACUTE
193
+ '\u010e' # 0x91 -> LATIN CAPITAL LETTER D WITH CARON
194
+ '\xed' # 0x92 -> LATIN SMALL LETTER I WITH ACUTE
195
+ '\u010f' # 0x93 -> LATIN SMALL LETTER D WITH CARON
196
+ '\u0112' # 0x94 -> LATIN CAPITAL LETTER E WITH MACRON
197
+ '\u0113' # 0x95 -> LATIN SMALL LETTER E WITH MACRON
198
+ '\u0116' # 0x96 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
199
+ '\xf3' # 0x97 -> LATIN SMALL LETTER O WITH ACUTE
200
+ '\u0117' # 0x98 -> LATIN SMALL LETTER E WITH DOT ABOVE
201
+ '\xf4' # 0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
202
+ '\xf6' # 0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
203
+ '\xf5' # 0x9B -> LATIN SMALL LETTER O WITH TILDE
204
+ '\xfa' # 0x9C -> LATIN SMALL LETTER U WITH ACUTE
205
+ '\u011a' # 0x9D -> LATIN CAPITAL LETTER E WITH CARON
206
+ '\u011b' # 0x9E -> LATIN SMALL LETTER E WITH CARON
207
+ '\xfc' # 0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
208
+ '\u2020' # 0xA0 -> DAGGER
209
+ '\xb0' # 0xA1 -> DEGREE SIGN
210
+ '\u0118' # 0xA2 -> LATIN CAPITAL LETTER E WITH OGONEK
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa7' # 0xA4 -> SECTION SIGN
213
+ '\u2022' # 0xA5 -> BULLET
214
+ '\xb6' # 0xA6 -> PILCROW SIGN
215
+ '\xdf' # 0xA7 -> LATIN SMALL LETTER SHARP S
216
+ '\xae' # 0xA8 -> REGISTERED SIGN
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u2122' # 0xAA -> TRADE MARK SIGN
219
+ '\u0119' # 0xAB -> LATIN SMALL LETTER E WITH OGONEK
220
+ '\xa8' # 0xAC -> DIAERESIS
221
+ '\u2260' # 0xAD -> NOT EQUAL TO
222
+ '\u0123' # 0xAE -> LATIN SMALL LETTER G WITH CEDILLA
223
+ '\u012e' # 0xAF -> LATIN CAPITAL LETTER I WITH OGONEK
224
+ '\u012f' # 0xB0 -> LATIN SMALL LETTER I WITH OGONEK
225
+ '\u012a' # 0xB1 -> LATIN CAPITAL LETTER I WITH MACRON
226
+ '\u2264' # 0xB2 -> LESS-THAN OR EQUAL TO
227
+ '\u2265' # 0xB3 -> GREATER-THAN OR EQUAL TO
228
+ '\u012b' # 0xB4 -> LATIN SMALL LETTER I WITH MACRON
229
+ '\u0136' # 0xB5 -> LATIN CAPITAL LETTER K WITH CEDILLA
230
+ '\u2202' # 0xB6 -> PARTIAL DIFFERENTIAL
231
+ '\u2211' # 0xB7 -> N-ARY SUMMATION
232
+ '\u0142' # 0xB8 -> LATIN SMALL LETTER L WITH STROKE
233
+ '\u013b' # 0xB9 -> LATIN CAPITAL LETTER L WITH CEDILLA
234
+ '\u013c' # 0xBA -> LATIN SMALL LETTER L WITH CEDILLA
235
+ '\u013d' # 0xBB -> LATIN CAPITAL LETTER L WITH CARON
236
+ '\u013e' # 0xBC -> LATIN SMALL LETTER L WITH CARON
237
+ '\u0139' # 0xBD -> LATIN CAPITAL LETTER L WITH ACUTE
238
+ '\u013a' # 0xBE -> LATIN SMALL LETTER L WITH ACUTE
239
+ '\u0145' # 0xBF -> LATIN CAPITAL LETTER N WITH CEDILLA
240
+ '\u0146' # 0xC0 -> LATIN SMALL LETTER N WITH CEDILLA
241
+ '\u0143' # 0xC1 -> LATIN CAPITAL LETTER N WITH ACUTE
242
+ '\xac' # 0xC2 -> NOT SIGN
243
+ '\u221a' # 0xC3 -> SQUARE ROOT
244
+ '\u0144' # 0xC4 -> LATIN SMALL LETTER N WITH ACUTE
245
+ '\u0147' # 0xC5 -> LATIN CAPITAL LETTER N WITH CARON
246
+ '\u2206' # 0xC6 -> INCREMENT
247
+ '\xab' # 0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
248
+ '\xbb' # 0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
249
+ '\u2026' # 0xC9 -> HORIZONTAL ELLIPSIS
250
+ '\xa0' # 0xCA -> NO-BREAK SPACE
251
+ '\u0148' # 0xCB -> LATIN SMALL LETTER N WITH CARON
252
+ '\u0150' # 0xCC -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
253
+ '\xd5' # 0xCD -> LATIN CAPITAL LETTER O WITH TILDE
254
+ '\u0151' # 0xCE -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
255
+ '\u014c' # 0xCF -> LATIN CAPITAL LETTER O WITH MACRON
256
+ '\u2013' # 0xD0 -> EN DASH
257
+ '\u2014' # 0xD1 -> EM DASH
258
+ '\u201c' # 0xD2 -> LEFT DOUBLE QUOTATION MARK
259
+ '\u201d' # 0xD3 -> RIGHT DOUBLE QUOTATION MARK
260
+ '\u2018' # 0xD4 -> LEFT SINGLE QUOTATION MARK
261
+ '\u2019' # 0xD5 -> RIGHT SINGLE QUOTATION MARK
262
+ '\xf7' # 0xD6 -> DIVISION SIGN
263
+ '\u25ca' # 0xD7 -> LOZENGE
264
+ '\u014d' # 0xD8 -> LATIN SMALL LETTER O WITH MACRON
265
+ '\u0154' # 0xD9 -> LATIN CAPITAL LETTER R WITH ACUTE
266
+ '\u0155' # 0xDA -> LATIN SMALL LETTER R WITH ACUTE
267
+ '\u0158' # 0xDB -> LATIN CAPITAL LETTER R WITH CARON
268
+ '\u2039' # 0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
269
+ '\u203a' # 0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
270
+ '\u0159' # 0xDE -> LATIN SMALL LETTER R WITH CARON
271
+ '\u0156' # 0xDF -> LATIN CAPITAL LETTER R WITH CEDILLA
272
+ '\u0157' # 0xE0 -> LATIN SMALL LETTER R WITH CEDILLA
273
+ '\u0160' # 0xE1 -> LATIN CAPITAL LETTER S WITH CARON
274
+ '\u201a' # 0xE2 -> SINGLE LOW-9 QUOTATION MARK
275
+ '\u201e' # 0xE3 -> DOUBLE LOW-9 QUOTATION MARK
276
+ '\u0161' # 0xE4 -> LATIN SMALL LETTER S WITH CARON
277
+ '\u015a' # 0xE5 -> LATIN CAPITAL LETTER S WITH ACUTE
278
+ '\u015b' # 0xE6 -> LATIN SMALL LETTER S WITH ACUTE
279
+ '\xc1' # 0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
280
+ '\u0164' # 0xE8 -> LATIN CAPITAL LETTER T WITH CARON
281
+ '\u0165' # 0xE9 -> LATIN SMALL LETTER T WITH CARON
282
+ '\xcd' # 0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
283
+ '\u017d' # 0xEB -> LATIN CAPITAL LETTER Z WITH CARON
284
+ '\u017e' # 0xEC -> LATIN SMALL LETTER Z WITH CARON
285
+ '\u016a' # 0xED -> LATIN CAPITAL LETTER U WITH MACRON
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd4' # 0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
288
+ '\u016b' # 0xF0 -> LATIN SMALL LETTER U WITH MACRON
289
+ '\u016e' # 0xF1 -> LATIN CAPITAL LETTER U WITH RING ABOVE
290
+ '\xda' # 0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
291
+ '\u016f' # 0xF3 -> LATIN SMALL LETTER U WITH RING ABOVE
292
+ '\u0170' # 0xF4 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
293
+ '\u0171' # 0xF5 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
294
+ '\u0172' # 0xF6 -> LATIN CAPITAL LETTER U WITH OGONEK
295
+ '\u0173' # 0xF7 -> LATIN SMALL LETTER U WITH OGONEK
296
+ '\xdd' # 0xF8 -> LATIN CAPITAL LETTER Y WITH ACUTE
297
+ '\xfd' # 0xF9 -> LATIN SMALL LETTER Y WITH ACUTE
298
+ '\u0137' # 0xFA -> LATIN SMALL LETTER K WITH CEDILLA
299
+ '\u017b' # 0xFB -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
300
+ '\u0141' # 0xFC -> LATIN CAPITAL LETTER L WITH STROKE
301
+ '\u017c' # 0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
302
+ '\u0122' # 0xFE -> LATIN CAPITAL LETTER G WITH CEDILLA
303
+ '\u02c7' # 0xFF -> CARON
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_cyrillic.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_cyrillic generated from 'MAPPINGS/VENDORS/APPLE/CYRILLIC.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='mac-cyrillic',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> CONTROL CHARACTER
49
+ '\x01' # 0x01 -> CONTROL CHARACTER
50
+ '\x02' # 0x02 -> CONTROL CHARACTER
51
+ '\x03' # 0x03 -> CONTROL CHARACTER
52
+ '\x04' # 0x04 -> CONTROL CHARACTER
53
+ '\x05' # 0x05 -> CONTROL CHARACTER
54
+ '\x06' # 0x06 -> CONTROL CHARACTER
55
+ '\x07' # 0x07 -> CONTROL CHARACTER
56
+ '\x08' # 0x08 -> CONTROL CHARACTER
57
+ '\t' # 0x09 -> CONTROL CHARACTER
58
+ '\n' # 0x0A -> CONTROL CHARACTER
59
+ '\x0b' # 0x0B -> CONTROL CHARACTER
60
+ '\x0c' # 0x0C -> CONTROL CHARACTER
61
+ '\r' # 0x0D -> CONTROL CHARACTER
62
+ '\x0e' # 0x0E -> CONTROL CHARACTER
63
+ '\x0f' # 0x0F -> CONTROL CHARACTER
64
+ '\x10' # 0x10 -> CONTROL CHARACTER
65
+ '\x11' # 0x11 -> CONTROL CHARACTER
66
+ '\x12' # 0x12 -> CONTROL CHARACTER
67
+ '\x13' # 0x13 -> CONTROL CHARACTER
68
+ '\x14' # 0x14 -> CONTROL CHARACTER
69
+ '\x15' # 0x15 -> CONTROL CHARACTER
70
+ '\x16' # 0x16 -> CONTROL CHARACTER
71
+ '\x17' # 0x17 -> CONTROL CHARACTER
72
+ '\x18' # 0x18 -> CONTROL CHARACTER
73
+ '\x19' # 0x19 -> CONTROL CHARACTER
74
+ '\x1a' # 0x1A -> CONTROL CHARACTER
75
+ '\x1b' # 0x1B -> CONTROL CHARACTER
76
+ '\x1c' # 0x1C -> CONTROL CHARACTER
77
+ '\x1d' # 0x1D -> CONTROL CHARACTER
78
+ '\x1e' # 0x1E -> CONTROL CHARACTER
79
+ '\x1f' # 0x1F -> CONTROL CHARACTER
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> CONTROL CHARACTER
176
+ '\u0410' # 0x80 -> CYRILLIC CAPITAL LETTER A
177
+ '\u0411' # 0x81 -> CYRILLIC CAPITAL LETTER BE
178
+ '\u0412' # 0x82 -> CYRILLIC CAPITAL LETTER VE
179
+ '\u0413' # 0x83 -> CYRILLIC CAPITAL LETTER GHE
180
+ '\u0414' # 0x84 -> CYRILLIC CAPITAL LETTER DE
181
+ '\u0415' # 0x85 -> CYRILLIC CAPITAL LETTER IE
182
+ '\u0416' # 0x86 -> CYRILLIC CAPITAL LETTER ZHE
183
+ '\u0417' # 0x87 -> CYRILLIC CAPITAL LETTER ZE
184
+ '\u0418' # 0x88 -> CYRILLIC CAPITAL LETTER I
185
+ '\u0419' # 0x89 -> CYRILLIC CAPITAL LETTER SHORT I
186
+ '\u041a' # 0x8A -> CYRILLIC CAPITAL LETTER KA
187
+ '\u041b' # 0x8B -> CYRILLIC CAPITAL LETTER EL
188
+ '\u041c' # 0x8C -> CYRILLIC CAPITAL LETTER EM
189
+ '\u041d' # 0x8D -> CYRILLIC CAPITAL LETTER EN
190
+ '\u041e' # 0x8E -> CYRILLIC CAPITAL LETTER O
191
+ '\u041f' # 0x8F -> CYRILLIC CAPITAL LETTER PE
192
+ '\u0420' # 0x90 -> CYRILLIC CAPITAL LETTER ER
193
+ '\u0421' # 0x91 -> CYRILLIC CAPITAL LETTER ES
194
+ '\u0422' # 0x92 -> CYRILLIC CAPITAL LETTER TE
195
+ '\u0423' # 0x93 -> CYRILLIC CAPITAL LETTER U
196
+ '\u0424' # 0x94 -> CYRILLIC CAPITAL LETTER EF
197
+ '\u0425' # 0x95 -> CYRILLIC CAPITAL LETTER HA
198
+ '\u0426' # 0x96 -> CYRILLIC CAPITAL LETTER TSE
199
+ '\u0427' # 0x97 -> CYRILLIC CAPITAL LETTER CHE
200
+ '\u0428' # 0x98 -> CYRILLIC CAPITAL LETTER SHA
201
+ '\u0429' # 0x99 -> CYRILLIC CAPITAL LETTER SHCHA
202
+ '\u042a' # 0x9A -> CYRILLIC CAPITAL LETTER HARD SIGN
203
+ '\u042b' # 0x9B -> CYRILLIC CAPITAL LETTER YERU
204
+ '\u042c' # 0x9C -> CYRILLIC CAPITAL LETTER SOFT SIGN
205
+ '\u042d' # 0x9D -> CYRILLIC CAPITAL LETTER E
206
+ '\u042e' # 0x9E -> CYRILLIC CAPITAL LETTER YU
207
+ '\u042f' # 0x9F -> CYRILLIC CAPITAL LETTER YA
208
+ '\u2020' # 0xA0 -> DAGGER
209
+ '\xb0' # 0xA1 -> DEGREE SIGN
210
+ '\u0490' # 0xA2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa7' # 0xA4 -> SECTION SIGN
213
+ '\u2022' # 0xA5 -> BULLET
214
+ '\xb6' # 0xA6 -> PILCROW SIGN
215
+ '\u0406' # 0xA7 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
216
+ '\xae' # 0xA8 -> REGISTERED SIGN
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u2122' # 0xAA -> TRADE MARK SIGN
219
+ '\u0402' # 0xAB -> CYRILLIC CAPITAL LETTER DJE
220
+ '\u0452' # 0xAC -> CYRILLIC SMALL LETTER DJE
221
+ '\u2260' # 0xAD -> NOT EQUAL TO
222
+ '\u0403' # 0xAE -> CYRILLIC CAPITAL LETTER GJE
223
+ '\u0453' # 0xAF -> CYRILLIC SMALL LETTER GJE
224
+ '\u221e' # 0xB0 -> INFINITY
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u2264' # 0xB2 -> LESS-THAN OR EQUAL TO
227
+ '\u2265' # 0xB3 -> GREATER-THAN OR EQUAL TO
228
+ '\u0456' # 0xB4 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\u0491' # 0xB6 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
231
+ '\u0408' # 0xB7 -> CYRILLIC CAPITAL LETTER JE
232
+ '\u0404' # 0xB8 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
233
+ '\u0454' # 0xB9 -> CYRILLIC SMALL LETTER UKRAINIAN IE
234
+ '\u0407' # 0xBA -> CYRILLIC CAPITAL LETTER YI
235
+ '\u0457' # 0xBB -> CYRILLIC SMALL LETTER YI
236
+ '\u0409' # 0xBC -> CYRILLIC CAPITAL LETTER LJE
237
+ '\u0459' # 0xBD -> CYRILLIC SMALL LETTER LJE
238
+ '\u040a' # 0xBE -> CYRILLIC CAPITAL LETTER NJE
239
+ '\u045a' # 0xBF -> CYRILLIC SMALL LETTER NJE
240
+ '\u0458' # 0xC0 -> CYRILLIC SMALL LETTER JE
241
+ '\u0405' # 0xC1 -> CYRILLIC CAPITAL LETTER DZE
242
+ '\xac' # 0xC2 -> NOT SIGN
243
+ '\u221a' # 0xC3 -> SQUARE ROOT
244
+ '\u0192' # 0xC4 -> LATIN SMALL LETTER F WITH HOOK
245
+ '\u2248' # 0xC5 -> ALMOST EQUAL TO
246
+ '\u2206' # 0xC6 -> INCREMENT
247
+ '\xab' # 0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
248
+ '\xbb' # 0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
249
+ '\u2026' # 0xC9 -> HORIZONTAL ELLIPSIS
250
+ '\xa0' # 0xCA -> NO-BREAK SPACE
251
+ '\u040b' # 0xCB -> CYRILLIC CAPITAL LETTER TSHE
252
+ '\u045b' # 0xCC -> CYRILLIC SMALL LETTER TSHE
253
+ '\u040c' # 0xCD -> CYRILLIC CAPITAL LETTER KJE
254
+ '\u045c' # 0xCE -> CYRILLIC SMALL LETTER KJE
255
+ '\u0455' # 0xCF -> CYRILLIC SMALL LETTER DZE
256
+ '\u2013' # 0xD0 -> EN DASH
257
+ '\u2014' # 0xD1 -> EM DASH
258
+ '\u201c' # 0xD2 -> LEFT DOUBLE QUOTATION MARK
259
+ '\u201d' # 0xD3 -> RIGHT DOUBLE QUOTATION MARK
260
+ '\u2018' # 0xD4 -> LEFT SINGLE QUOTATION MARK
261
+ '\u2019' # 0xD5 -> RIGHT SINGLE QUOTATION MARK
262
+ '\xf7' # 0xD6 -> DIVISION SIGN
263
+ '\u201e' # 0xD7 -> DOUBLE LOW-9 QUOTATION MARK
264
+ '\u040e' # 0xD8 -> CYRILLIC CAPITAL LETTER SHORT U
265
+ '\u045e' # 0xD9 -> CYRILLIC SMALL LETTER SHORT U
266
+ '\u040f' # 0xDA -> CYRILLIC CAPITAL LETTER DZHE
267
+ '\u045f' # 0xDB -> CYRILLIC SMALL LETTER DZHE
268
+ '\u2116' # 0xDC -> NUMERO SIGN
269
+ '\u0401' # 0xDD -> CYRILLIC CAPITAL LETTER IO
270
+ '\u0451' # 0xDE -> CYRILLIC SMALL LETTER IO
271
+ '\u044f' # 0xDF -> CYRILLIC SMALL LETTER YA
272
+ '\u0430' # 0xE0 -> CYRILLIC SMALL LETTER A
273
+ '\u0431' # 0xE1 -> CYRILLIC SMALL LETTER BE
274
+ '\u0432' # 0xE2 -> CYRILLIC SMALL LETTER VE
275
+ '\u0433' # 0xE3 -> CYRILLIC SMALL LETTER GHE
276
+ '\u0434' # 0xE4 -> CYRILLIC SMALL LETTER DE
277
+ '\u0435' # 0xE5 -> CYRILLIC SMALL LETTER IE
278
+ '\u0436' # 0xE6 -> CYRILLIC SMALL LETTER ZHE
279
+ '\u0437' # 0xE7 -> CYRILLIC SMALL LETTER ZE
280
+ '\u0438' # 0xE8 -> CYRILLIC SMALL LETTER I
281
+ '\u0439' # 0xE9 -> CYRILLIC SMALL LETTER SHORT I
282
+ '\u043a' # 0xEA -> CYRILLIC SMALL LETTER KA
283
+ '\u043b' # 0xEB -> CYRILLIC SMALL LETTER EL
284
+ '\u043c' # 0xEC -> CYRILLIC SMALL LETTER EM
285
+ '\u043d' # 0xED -> CYRILLIC SMALL LETTER EN
286
+ '\u043e' # 0xEE -> CYRILLIC SMALL LETTER O
287
+ '\u043f' # 0xEF -> CYRILLIC SMALL LETTER PE
288
+ '\u0440' # 0xF0 -> CYRILLIC SMALL LETTER ER
289
+ '\u0441' # 0xF1 -> CYRILLIC SMALL LETTER ES
290
+ '\u0442' # 0xF2 -> CYRILLIC SMALL LETTER TE
291
+ '\u0443' # 0xF3 -> CYRILLIC SMALL LETTER U
292
+ '\u0444' # 0xF4 -> CYRILLIC SMALL LETTER EF
293
+ '\u0445' # 0xF5 -> CYRILLIC SMALL LETTER HA
294
+ '\u0446' # 0xF6 -> CYRILLIC SMALL LETTER TSE
295
+ '\u0447' # 0xF7 -> CYRILLIC SMALL LETTER CHE
296
+ '\u0448' # 0xF8 -> CYRILLIC SMALL LETTER SHA
297
+ '\u0449' # 0xF9 -> CYRILLIC SMALL LETTER SHCHA
298
+ '\u044a' # 0xFA -> CYRILLIC SMALL LETTER HARD SIGN
299
+ '\u044b' # 0xFB -> CYRILLIC SMALL LETTER YERU
300
+ '\u044c' # 0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
301
+ '\u044d' # 0xFD -> CYRILLIC SMALL LETTER E
302
+ '\u044e' # 0xFE -> CYRILLIC SMALL LETTER YU
303
+ '\u20ac' # 0xFF -> EURO SIGN
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_farsi.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_farsi generated from 'MAPPINGS/VENDORS/APPLE/FARSI.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='mac-farsi',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> CONTROL CHARACTER
49
+ '\x01' # 0x01 -> CONTROL CHARACTER
50
+ '\x02' # 0x02 -> CONTROL CHARACTER
51
+ '\x03' # 0x03 -> CONTROL CHARACTER
52
+ '\x04' # 0x04 -> CONTROL CHARACTER
53
+ '\x05' # 0x05 -> CONTROL CHARACTER
54
+ '\x06' # 0x06 -> CONTROL CHARACTER
55
+ '\x07' # 0x07 -> CONTROL CHARACTER
56
+ '\x08' # 0x08 -> CONTROL CHARACTER
57
+ '\t' # 0x09 -> CONTROL CHARACTER
58
+ '\n' # 0x0A -> CONTROL CHARACTER
59
+ '\x0b' # 0x0B -> CONTROL CHARACTER
60
+ '\x0c' # 0x0C -> CONTROL CHARACTER
61
+ '\r' # 0x0D -> CONTROL CHARACTER
62
+ '\x0e' # 0x0E -> CONTROL CHARACTER
63
+ '\x0f' # 0x0F -> CONTROL CHARACTER
64
+ '\x10' # 0x10 -> CONTROL CHARACTER
65
+ '\x11' # 0x11 -> CONTROL CHARACTER
66
+ '\x12' # 0x12 -> CONTROL CHARACTER
67
+ '\x13' # 0x13 -> CONTROL CHARACTER
68
+ '\x14' # 0x14 -> CONTROL CHARACTER
69
+ '\x15' # 0x15 -> CONTROL CHARACTER
70
+ '\x16' # 0x16 -> CONTROL CHARACTER
71
+ '\x17' # 0x17 -> CONTROL CHARACTER
72
+ '\x18' # 0x18 -> CONTROL CHARACTER
73
+ '\x19' # 0x19 -> CONTROL CHARACTER
74
+ '\x1a' # 0x1A -> CONTROL CHARACTER
75
+ '\x1b' # 0x1B -> CONTROL CHARACTER
76
+ '\x1c' # 0x1C -> CONTROL CHARACTER
77
+ '\x1d' # 0x1D -> CONTROL CHARACTER
78
+ '\x1e' # 0x1E -> CONTROL CHARACTER
79
+ '\x1f' # 0x1F -> CONTROL CHARACTER
80
+ ' ' # 0x20 -> SPACE, left-right
81
+ '!' # 0x21 -> EXCLAMATION MARK, left-right
82
+ '"' # 0x22 -> QUOTATION MARK, left-right
83
+ '#' # 0x23 -> NUMBER SIGN, left-right
84
+ '$' # 0x24 -> DOLLAR SIGN, left-right
85
+ '%' # 0x25 -> PERCENT SIGN, left-right
86
+ '&' # 0x26 -> AMPERSAND, left-right
87
+ "'" # 0x27 -> APOSTROPHE, left-right
88
+ '(' # 0x28 -> LEFT PARENTHESIS, left-right
89
+ ')' # 0x29 -> RIGHT PARENTHESIS, left-right
90
+ '*' # 0x2A -> ASTERISK, left-right
91
+ '+' # 0x2B -> PLUS SIGN, left-right
92
+ ',' # 0x2C -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
93
+ '-' # 0x2D -> HYPHEN-MINUS, left-right
94
+ '.' # 0x2E -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
95
+ '/' # 0x2F -> SOLIDUS, left-right
96
+ '0' # 0x30 -> DIGIT ZERO; in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE; in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO; in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR; in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE; in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX; in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE; in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
106
+ ':' # 0x3A -> COLON, left-right
107
+ ';' # 0x3B -> SEMICOLON, left-right
108
+ '<' # 0x3C -> LESS-THAN SIGN, left-right
109
+ '=' # 0x3D -> EQUALS SIGN, left-right
110
+ '>' # 0x3E -> GREATER-THAN SIGN, left-right
111
+ '?' # 0x3F -> QUESTION MARK, left-right
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET, left-right
140
+ '\\' # 0x5C -> REVERSE SOLIDUS, left-right
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET, left-right
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT, left-right
143
+ '_' # 0x5F -> LOW LINE, left-right
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET, left-right
172
+ '|' # 0x7C -> VERTICAL LINE, left-right
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET, left-right
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> CONTROL CHARACTER
176
+ '\xc4' # 0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
177
+ '\xa0' # 0x81 -> NO-BREAK SPACE, right-left
178
+ '\xc7' # 0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
179
+ '\xc9' # 0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
180
+ '\xd1' # 0x84 -> LATIN CAPITAL LETTER N WITH TILDE
181
+ '\xd6' # 0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
182
+ '\xdc' # 0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
183
+ '\xe1' # 0x87 -> LATIN SMALL LETTER A WITH ACUTE
184
+ '\xe0' # 0x88 -> LATIN SMALL LETTER A WITH GRAVE
185
+ '\xe2' # 0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
186
+ '\xe4' # 0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
187
+ '\u06ba' # 0x8B -> ARABIC LETTER NOON GHUNNA
188
+ '\xab' # 0x8C -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
189
+ '\xe7' # 0x8D -> LATIN SMALL LETTER C WITH CEDILLA
190
+ '\xe9' # 0x8E -> LATIN SMALL LETTER E WITH ACUTE
191
+ '\xe8' # 0x8F -> LATIN SMALL LETTER E WITH GRAVE
192
+ '\xea' # 0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
193
+ '\xeb' # 0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
194
+ '\xed' # 0x92 -> LATIN SMALL LETTER I WITH ACUTE
195
+ '\u2026' # 0x93 -> HORIZONTAL ELLIPSIS, right-left
196
+ '\xee' # 0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
197
+ '\xef' # 0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
198
+ '\xf1' # 0x96 -> LATIN SMALL LETTER N WITH TILDE
199
+ '\xf3' # 0x97 -> LATIN SMALL LETTER O WITH ACUTE
200
+ '\xbb' # 0x98 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
201
+ '\xf4' # 0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
202
+ '\xf6' # 0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
203
+ '\xf7' # 0x9B -> DIVISION SIGN, right-left
204
+ '\xfa' # 0x9C -> LATIN SMALL LETTER U WITH ACUTE
205
+ '\xf9' # 0x9D -> LATIN SMALL LETTER U WITH GRAVE
206
+ '\xfb' # 0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
207
+ '\xfc' # 0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
208
+ ' ' # 0xA0 -> SPACE, right-left
209
+ '!' # 0xA1 -> EXCLAMATION MARK, right-left
210
+ '"' # 0xA2 -> QUOTATION MARK, right-left
211
+ '#' # 0xA3 -> NUMBER SIGN, right-left
212
+ '$' # 0xA4 -> DOLLAR SIGN, right-left
213
+ '\u066a' # 0xA5 -> ARABIC PERCENT SIGN
214
+ '&' # 0xA6 -> AMPERSAND, right-left
215
+ "'" # 0xA7 -> APOSTROPHE, right-left
216
+ '(' # 0xA8 -> LEFT PARENTHESIS, right-left
217
+ ')' # 0xA9 -> RIGHT PARENTHESIS, right-left
218
+ '*' # 0xAA -> ASTERISK, right-left
219
+ '+' # 0xAB -> PLUS SIGN, right-left
220
+ '\u060c' # 0xAC -> ARABIC COMMA
221
+ '-' # 0xAD -> HYPHEN-MINUS, right-left
222
+ '.' # 0xAE -> FULL STOP, right-left
223
+ '/' # 0xAF -> SOLIDUS, right-left
224
+ '\u06f0' # 0xB0 -> EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
225
+ '\u06f1' # 0xB1 -> EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
226
+ '\u06f2' # 0xB2 -> EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
227
+ '\u06f3' # 0xB3 -> EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
228
+ '\u06f4' # 0xB4 -> EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
229
+ '\u06f5' # 0xB5 -> EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
230
+ '\u06f6' # 0xB6 -> EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
231
+ '\u06f7' # 0xB7 -> EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
232
+ '\u06f8' # 0xB8 -> EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
233
+ '\u06f9' # 0xB9 -> EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
234
+ ':' # 0xBA -> COLON, right-left
235
+ '\u061b' # 0xBB -> ARABIC SEMICOLON
236
+ '<' # 0xBC -> LESS-THAN SIGN, right-left
237
+ '=' # 0xBD -> EQUALS SIGN, right-left
238
+ '>' # 0xBE -> GREATER-THAN SIGN, right-left
239
+ '\u061f' # 0xBF -> ARABIC QUESTION MARK
240
+ '\u274a' # 0xC0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
241
+ '\u0621' # 0xC1 -> ARABIC LETTER HAMZA
242
+ '\u0622' # 0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
243
+ '\u0623' # 0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
244
+ '\u0624' # 0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
245
+ '\u0625' # 0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
246
+ '\u0626' # 0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
247
+ '\u0627' # 0xC7 -> ARABIC LETTER ALEF
248
+ '\u0628' # 0xC8 -> ARABIC LETTER BEH
249
+ '\u0629' # 0xC9 -> ARABIC LETTER TEH MARBUTA
250
+ '\u062a' # 0xCA -> ARABIC LETTER TEH
251
+ '\u062b' # 0xCB -> ARABIC LETTER THEH
252
+ '\u062c' # 0xCC -> ARABIC LETTER JEEM
253
+ '\u062d' # 0xCD -> ARABIC LETTER HAH
254
+ '\u062e' # 0xCE -> ARABIC LETTER KHAH
255
+ '\u062f' # 0xCF -> ARABIC LETTER DAL
256
+ '\u0630' # 0xD0 -> ARABIC LETTER THAL
257
+ '\u0631' # 0xD1 -> ARABIC LETTER REH
258
+ '\u0632' # 0xD2 -> ARABIC LETTER ZAIN
259
+ '\u0633' # 0xD3 -> ARABIC LETTER SEEN
260
+ '\u0634' # 0xD4 -> ARABIC LETTER SHEEN
261
+ '\u0635' # 0xD5 -> ARABIC LETTER SAD
262
+ '\u0636' # 0xD6 -> ARABIC LETTER DAD
263
+ '\u0637' # 0xD7 -> ARABIC LETTER TAH
264
+ '\u0638' # 0xD8 -> ARABIC LETTER ZAH
265
+ '\u0639' # 0xD9 -> ARABIC LETTER AIN
266
+ '\u063a' # 0xDA -> ARABIC LETTER GHAIN
267
+ '[' # 0xDB -> LEFT SQUARE BRACKET, right-left
268
+ '\\' # 0xDC -> REVERSE SOLIDUS, right-left
269
+ ']' # 0xDD -> RIGHT SQUARE BRACKET, right-left
270
+ '^' # 0xDE -> CIRCUMFLEX ACCENT, right-left
271
+ '_' # 0xDF -> LOW LINE, right-left
272
+ '\u0640' # 0xE0 -> ARABIC TATWEEL
273
+ '\u0641' # 0xE1 -> ARABIC LETTER FEH
274
+ '\u0642' # 0xE2 -> ARABIC LETTER QAF
275
+ '\u0643' # 0xE3 -> ARABIC LETTER KAF
276
+ '\u0644' # 0xE4 -> ARABIC LETTER LAM
277
+ '\u0645' # 0xE5 -> ARABIC LETTER MEEM
278
+ '\u0646' # 0xE6 -> ARABIC LETTER NOON
279
+ '\u0647' # 0xE7 -> ARABIC LETTER HEH
280
+ '\u0648' # 0xE8 -> ARABIC LETTER WAW
281
+ '\u0649' # 0xE9 -> ARABIC LETTER ALEF MAKSURA
282
+ '\u064a' # 0xEA -> ARABIC LETTER YEH
283
+ '\u064b' # 0xEB -> ARABIC FATHATAN
284
+ '\u064c' # 0xEC -> ARABIC DAMMATAN
285
+ '\u064d' # 0xED -> ARABIC KASRATAN
286
+ '\u064e' # 0xEE -> ARABIC FATHA
287
+ '\u064f' # 0xEF -> ARABIC DAMMA
288
+ '\u0650' # 0xF0 -> ARABIC KASRA
289
+ '\u0651' # 0xF1 -> ARABIC SHADDA
290
+ '\u0652' # 0xF2 -> ARABIC SUKUN
291
+ '\u067e' # 0xF3 -> ARABIC LETTER PEH
292
+ '\u0679' # 0xF4 -> ARABIC LETTER TTEH
293
+ '\u0686' # 0xF5 -> ARABIC LETTER TCHEH
294
+ '\u06d5' # 0xF6 -> ARABIC LETTER AE
295
+ '\u06a4' # 0xF7 -> ARABIC LETTER VEH
296
+ '\u06af' # 0xF8 -> ARABIC LETTER GAF
297
+ '\u0688' # 0xF9 -> ARABIC LETTER DDAL
298
+ '\u0691' # 0xFA -> ARABIC LETTER RREH
299
+ '{' # 0xFB -> LEFT CURLY BRACKET, right-left
300
+ '|' # 0xFC -> VERTICAL LINE, right-left
301
+ '}' # 0xFD -> RIGHT CURLY BRACKET, right-left
302
+ '\u0698' # 0xFE -> ARABIC LETTER JEH
303
+ '\u06d2' # 0xFF -> ARABIC LETTER YEH BARREE
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_roman.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_roman generated from 'MAPPINGS/VENDORS/APPLE/ROMAN.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='mac-roman',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> CONTROL CHARACTER
49
+ '\x01' # 0x01 -> CONTROL CHARACTER
50
+ '\x02' # 0x02 -> CONTROL CHARACTER
51
+ '\x03' # 0x03 -> CONTROL CHARACTER
52
+ '\x04' # 0x04 -> CONTROL CHARACTER
53
+ '\x05' # 0x05 -> CONTROL CHARACTER
54
+ '\x06' # 0x06 -> CONTROL CHARACTER
55
+ '\x07' # 0x07 -> CONTROL CHARACTER
56
+ '\x08' # 0x08 -> CONTROL CHARACTER
57
+ '\t' # 0x09 -> CONTROL CHARACTER
58
+ '\n' # 0x0A -> CONTROL CHARACTER
59
+ '\x0b' # 0x0B -> CONTROL CHARACTER
60
+ '\x0c' # 0x0C -> CONTROL CHARACTER
61
+ '\r' # 0x0D -> CONTROL CHARACTER
62
+ '\x0e' # 0x0E -> CONTROL CHARACTER
63
+ '\x0f' # 0x0F -> CONTROL CHARACTER
64
+ '\x10' # 0x10 -> CONTROL CHARACTER
65
+ '\x11' # 0x11 -> CONTROL CHARACTER
66
+ '\x12' # 0x12 -> CONTROL CHARACTER
67
+ '\x13' # 0x13 -> CONTROL CHARACTER
68
+ '\x14' # 0x14 -> CONTROL CHARACTER
69
+ '\x15' # 0x15 -> CONTROL CHARACTER
70
+ '\x16' # 0x16 -> CONTROL CHARACTER
71
+ '\x17' # 0x17 -> CONTROL CHARACTER
72
+ '\x18' # 0x18 -> CONTROL CHARACTER
73
+ '\x19' # 0x19 -> CONTROL CHARACTER
74
+ '\x1a' # 0x1A -> CONTROL CHARACTER
75
+ '\x1b' # 0x1B -> CONTROL CHARACTER
76
+ '\x1c' # 0x1C -> CONTROL CHARACTER
77
+ '\x1d' # 0x1D -> CONTROL CHARACTER
78
+ '\x1e' # 0x1E -> CONTROL CHARACTER
79
+ '\x1f' # 0x1F -> CONTROL CHARACTER
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> CONTROL CHARACTER
176
+ '\xc4' # 0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
177
+ '\xc5' # 0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
178
+ '\xc7' # 0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
179
+ '\xc9' # 0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
180
+ '\xd1' # 0x84 -> LATIN CAPITAL LETTER N WITH TILDE
181
+ '\xd6' # 0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
182
+ '\xdc' # 0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
183
+ '\xe1' # 0x87 -> LATIN SMALL LETTER A WITH ACUTE
184
+ '\xe0' # 0x88 -> LATIN SMALL LETTER A WITH GRAVE
185
+ '\xe2' # 0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
186
+ '\xe4' # 0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
187
+ '\xe3' # 0x8B -> LATIN SMALL LETTER A WITH TILDE
188
+ '\xe5' # 0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
189
+ '\xe7' # 0x8D -> LATIN SMALL LETTER C WITH CEDILLA
190
+ '\xe9' # 0x8E -> LATIN SMALL LETTER E WITH ACUTE
191
+ '\xe8' # 0x8F -> LATIN SMALL LETTER E WITH GRAVE
192
+ '\xea' # 0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
193
+ '\xeb' # 0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
194
+ '\xed' # 0x92 -> LATIN SMALL LETTER I WITH ACUTE
195
+ '\xec' # 0x93 -> LATIN SMALL LETTER I WITH GRAVE
196
+ '\xee' # 0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
197
+ '\xef' # 0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
198
+ '\xf1' # 0x96 -> LATIN SMALL LETTER N WITH TILDE
199
+ '\xf3' # 0x97 -> LATIN SMALL LETTER O WITH ACUTE
200
+ '\xf2' # 0x98 -> LATIN SMALL LETTER O WITH GRAVE
201
+ '\xf4' # 0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
202
+ '\xf6' # 0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
203
+ '\xf5' # 0x9B -> LATIN SMALL LETTER O WITH TILDE
204
+ '\xfa' # 0x9C -> LATIN SMALL LETTER U WITH ACUTE
205
+ '\xf9' # 0x9D -> LATIN SMALL LETTER U WITH GRAVE
206
+ '\xfb' # 0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
207
+ '\xfc' # 0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
208
+ '\u2020' # 0xA0 -> DAGGER
209
+ '\xb0' # 0xA1 -> DEGREE SIGN
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa7' # 0xA4 -> SECTION SIGN
213
+ '\u2022' # 0xA5 -> BULLET
214
+ '\xb6' # 0xA6 -> PILCROW SIGN
215
+ '\xdf' # 0xA7 -> LATIN SMALL LETTER SHARP S
216
+ '\xae' # 0xA8 -> REGISTERED SIGN
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u2122' # 0xAA -> TRADE MARK SIGN
219
+ '\xb4' # 0xAB -> ACUTE ACCENT
220
+ '\xa8' # 0xAC -> DIAERESIS
221
+ '\u2260' # 0xAD -> NOT EQUAL TO
222
+ '\xc6' # 0xAE -> LATIN CAPITAL LETTER AE
223
+ '\xd8' # 0xAF -> LATIN CAPITAL LETTER O WITH STROKE
224
+ '\u221e' # 0xB0 -> INFINITY
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u2264' # 0xB2 -> LESS-THAN OR EQUAL TO
227
+ '\u2265' # 0xB3 -> GREATER-THAN OR EQUAL TO
228
+ '\xa5' # 0xB4 -> YEN SIGN
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\u2202' # 0xB6 -> PARTIAL DIFFERENTIAL
231
+ '\u2211' # 0xB7 -> N-ARY SUMMATION
232
+ '\u220f' # 0xB8 -> N-ARY PRODUCT
233
+ '\u03c0' # 0xB9 -> GREEK SMALL LETTER PI
234
+ '\u222b' # 0xBA -> INTEGRAL
235
+ '\xaa' # 0xBB -> FEMININE ORDINAL INDICATOR
236
+ '\xba' # 0xBC -> MASCULINE ORDINAL INDICATOR
237
+ '\u03a9' # 0xBD -> GREEK CAPITAL LETTER OMEGA
238
+ '\xe6' # 0xBE -> LATIN SMALL LETTER AE
239
+ '\xf8' # 0xBF -> LATIN SMALL LETTER O WITH STROKE
240
+ '\xbf' # 0xC0 -> INVERTED QUESTION MARK
241
+ '\xa1' # 0xC1 -> INVERTED EXCLAMATION MARK
242
+ '\xac' # 0xC2 -> NOT SIGN
243
+ '\u221a' # 0xC3 -> SQUARE ROOT
244
+ '\u0192' # 0xC4 -> LATIN SMALL LETTER F WITH HOOK
245
+ '\u2248' # 0xC5 -> ALMOST EQUAL TO
246
+ '\u2206' # 0xC6 -> INCREMENT
247
+ '\xab' # 0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
248
+ '\xbb' # 0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
249
+ '\u2026' # 0xC9 -> HORIZONTAL ELLIPSIS
250
+ '\xa0' # 0xCA -> NO-BREAK SPACE
251
+ '\xc0' # 0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
252
+ '\xc3' # 0xCC -> LATIN CAPITAL LETTER A WITH TILDE
253
+ '\xd5' # 0xCD -> LATIN CAPITAL LETTER O WITH TILDE
254
+ '\u0152' # 0xCE -> LATIN CAPITAL LIGATURE OE
255
+ '\u0153' # 0xCF -> LATIN SMALL LIGATURE OE
256
+ '\u2013' # 0xD0 -> EN DASH
257
+ '\u2014' # 0xD1 -> EM DASH
258
+ '\u201c' # 0xD2 -> LEFT DOUBLE QUOTATION MARK
259
+ '\u201d' # 0xD3 -> RIGHT DOUBLE QUOTATION MARK
260
+ '\u2018' # 0xD4 -> LEFT SINGLE QUOTATION MARK
261
+ '\u2019' # 0xD5 -> RIGHT SINGLE QUOTATION MARK
262
+ '\xf7' # 0xD6 -> DIVISION SIGN
263
+ '\u25ca' # 0xD7 -> LOZENGE
264
+ '\xff' # 0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
265
+ '\u0178' # 0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
266
+ '\u2044' # 0xDA -> FRACTION SLASH
267
+ '\u20ac' # 0xDB -> EURO SIGN
268
+ '\u2039' # 0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
269
+ '\u203a' # 0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
270
+ '\ufb01' # 0xDE -> LATIN SMALL LIGATURE FI
271
+ '\ufb02' # 0xDF -> LATIN SMALL LIGATURE FL
272
+ '\u2021' # 0xE0 -> DOUBLE DAGGER
273
+ '\xb7' # 0xE1 -> MIDDLE DOT
274
+ '\u201a' # 0xE2 -> SINGLE LOW-9 QUOTATION MARK
275
+ '\u201e' # 0xE3 -> DOUBLE LOW-9 QUOTATION MARK
276
+ '\u2030' # 0xE4 -> PER MILLE SIGN
277
+ '\xc2' # 0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
278
+ '\xca' # 0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
279
+ '\xc1' # 0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
280
+ '\xcb' # 0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
281
+ '\xc8' # 0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
282
+ '\xcd' # 0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
283
+ '\xce' # 0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
284
+ '\xcf' # 0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
285
+ '\xcc' # 0xED -> LATIN CAPITAL LETTER I WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd4' # 0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
288
+ '\uf8ff' # 0xF0 -> Apple logo
289
+ '\xd2' # 0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
290
+ '\xda' # 0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
291
+ '\xdb' # 0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
292
+ '\xd9' # 0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
293
+ '\u0131' # 0xF5 -> LATIN SMALL LETTER DOTLESS I
294
+ '\u02c6' # 0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
295
+ '\u02dc' # 0xF7 -> SMALL TILDE
296
+ '\xaf' # 0xF8 -> MACRON
297
+ '\u02d8' # 0xF9 -> BREVE
298
+ '\u02d9' # 0xFA -> DOT ABOVE
299
+ '\u02da' # 0xFB -> RING ABOVE
300
+ '\xb8' # 0xFC -> CEDILLA
301
+ '\u02dd' # 0xFD -> DOUBLE ACUTE ACCENT
302
+ '\u02db' # 0xFE -> OGONEK
303
+ '\u02c7' # 0xFF -> CARON
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_turkish.py ADDED
@@ -0,0 +1,307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_turkish generated from 'MAPPINGS/VENDORS/APPLE/TURKISH.TXT' with gencodec.py.
2
+
3
+ """#"
4
+
5
+ import codecs
6
+
7
+ ### Codec APIs
8
+
9
+ class Codec(codecs.Codec):
10
+
11
+ def encode(self,input,errors='strict'):
12
+ return codecs.charmap_encode(input,errors,encoding_table)
13
+
14
+ def decode(self,input,errors='strict'):
15
+ return codecs.charmap_decode(input,errors,decoding_table)
16
+
17
+ class IncrementalEncoder(codecs.IncrementalEncoder):
18
+ def encode(self, input, final=False):
19
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
20
+
21
+ class IncrementalDecoder(codecs.IncrementalDecoder):
22
+ def decode(self, input, final=False):
23
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
24
+
25
+ class StreamWriter(Codec,codecs.StreamWriter):
26
+ pass
27
+
28
+ class StreamReader(Codec,codecs.StreamReader):
29
+ pass
30
+
31
+ ### encodings module API
32
+
33
+ def getregentry():
34
+ return codecs.CodecInfo(
35
+ name='mac-turkish',
36
+ encode=Codec().encode,
37
+ decode=Codec().decode,
38
+ incrementalencoder=IncrementalEncoder,
39
+ incrementaldecoder=IncrementalDecoder,
40
+ streamreader=StreamReader,
41
+ streamwriter=StreamWriter,
42
+ )
43
+
44
+
45
+ ### Decoding Table
46
+
47
+ decoding_table = (
48
+ '\x00' # 0x00 -> CONTROL CHARACTER
49
+ '\x01' # 0x01 -> CONTROL CHARACTER
50
+ '\x02' # 0x02 -> CONTROL CHARACTER
51
+ '\x03' # 0x03 -> CONTROL CHARACTER
52
+ '\x04' # 0x04 -> CONTROL CHARACTER
53
+ '\x05' # 0x05 -> CONTROL CHARACTER
54
+ '\x06' # 0x06 -> CONTROL CHARACTER
55
+ '\x07' # 0x07 -> CONTROL CHARACTER
56
+ '\x08' # 0x08 -> CONTROL CHARACTER
57
+ '\t' # 0x09 -> CONTROL CHARACTER
58
+ '\n' # 0x0A -> CONTROL CHARACTER
59
+ '\x0b' # 0x0B -> CONTROL CHARACTER
60
+ '\x0c' # 0x0C -> CONTROL CHARACTER
61
+ '\r' # 0x0D -> CONTROL CHARACTER
62
+ '\x0e' # 0x0E -> CONTROL CHARACTER
63
+ '\x0f' # 0x0F -> CONTROL CHARACTER
64
+ '\x10' # 0x10 -> CONTROL CHARACTER
65
+ '\x11' # 0x11 -> CONTROL CHARACTER
66
+ '\x12' # 0x12 -> CONTROL CHARACTER
67
+ '\x13' # 0x13 -> CONTROL CHARACTER
68
+ '\x14' # 0x14 -> CONTROL CHARACTER
69
+ '\x15' # 0x15 -> CONTROL CHARACTER
70
+ '\x16' # 0x16 -> CONTROL CHARACTER
71
+ '\x17' # 0x17 -> CONTROL CHARACTER
72
+ '\x18' # 0x18 -> CONTROL CHARACTER
73
+ '\x19' # 0x19 -> CONTROL CHARACTER
74
+ '\x1a' # 0x1A -> CONTROL CHARACTER
75
+ '\x1b' # 0x1B -> CONTROL CHARACTER
76
+ '\x1c' # 0x1C -> CONTROL CHARACTER
77
+ '\x1d' # 0x1D -> CONTROL CHARACTER
78
+ '\x1e' # 0x1E -> CONTROL CHARACTER
79
+ '\x1f' # 0x1F -> CONTROL CHARACTER
80
+ ' ' # 0x20 -> SPACE
81
+ '!' # 0x21 -> EXCLAMATION MARK
82
+ '"' # 0x22 -> QUOTATION MARK
83
+ '#' # 0x23 -> NUMBER SIGN
84
+ '$' # 0x24 -> DOLLAR SIGN
85
+ '%' # 0x25 -> PERCENT SIGN
86
+ '&' # 0x26 -> AMPERSAND
87
+ "'" # 0x27 -> APOSTROPHE
88
+ '(' # 0x28 -> LEFT PARENTHESIS
89
+ ')' # 0x29 -> RIGHT PARENTHESIS
90
+ '*' # 0x2A -> ASTERISK
91
+ '+' # 0x2B -> PLUS SIGN
92
+ ',' # 0x2C -> COMMA
93
+ '-' # 0x2D -> HYPHEN-MINUS
94
+ '.' # 0x2E -> FULL STOP
95
+ '/' # 0x2F -> SOLIDUS
96
+ '0' # 0x30 -> DIGIT ZERO
97
+ '1' # 0x31 -> DIGIT ONE
98
+ '2' # 0x32 -> DIGIT TWO
99
+ '3' # 0x33 -> DIGIT THREE
100
+ '4' # 0x34 -> DIGIT FOUR
101
+ '5' # 0x35 -> DIGIT FIVE
102
+ '6' # 0x36 -> DIGIT SIX
103
+ '7' # 0x37 -> DIGIT SEVEN
104
+ '8' # 0x38 -> DIGIT EIGHT
105
+ '9' # 0x39 -> DIGIT NINE
106
+ ':' # 0x3A -> COLON
107
+ ';' # 0x3B -> SEMICOLON
108
+ '<' # 0x3C -> LESS-THAN SIGN
109
+ '=' # 0x3D -> EQUALS SIGN
110
+ '>' # 0x3E -> GREATER-THAN SIGN
111
+ '?' # 0x3F -> QUESTION MARK
112
+ '@' # 0x40 -> COMMERCIAL AT
113
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
114
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
115
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
116
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
117
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
118
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
119
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
120
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
121
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
122
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
123
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
124
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
125
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
126
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
127
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
128
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
129
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
130
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
131
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
132
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
133
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
134
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
135
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
136
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
137
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
138
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
139
+ '[' # 0x5B -> LEFT SQUARE BRACKET
140
+ '\\' # 0x5C -> REVERSE SOLIDUS
141
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
142
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
143
+ '_' # 0x5F -> LOW LINE
144
+ '`' # 0x60 -> GRAVE ACCENT
145
+ 'a' # 0x61 -> LATIN SMALL LETTER A
146
+ 'b' # 0x62 -> LATIN SMALL LETTER B
147
+ 'c' # 0x63 -> LATIN SMALL LETTER C
148
+ 'd' # 0x64 -> LATIN SMALL LETTER D
149
+ 'e' # 0x65 -> LATIN SMALL LETTER E
150
+ 'f' # 0x66 -> LATIN SMALL LETTER F
151
+ 'g' # 0x67 -> LATIN SMALL LETTER G
152
+ 'h' # 0x68 -> LATIN SMALL LETTER H
153
+ 'i' # 0x69 -> LATIN SMALL LETTER I
154
+ 'j' # 0x6A -> LATIN SMALL LETTER J
155
+ 'k' # 0x6B -> LATIN SMALL LETTER K
156
+ 'l' # 0x6C -> LATIN SMALL LETTER L
157
+ 'm' # 0x6D -> LATIN SMALL LETTER M
158
+ 'n' # 0x6E -> LATIN SMALL LETTER N
159
+ 'o' # 0x6F -> LATIN SMALL LETTER O
160
+ 'p' # 0x70 -> LATIN SMALL LETTER P
161
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
162
+ 'r' # 0x72 -> LATIN SMALL LETTER R
163
+ 's' # 0x73 -> LATIN SMALL LETTER S
164
+ 't' # 0x74 -> LATIN SMALL LETTER T
165
+ 'u' # 0x75 -> LATIN SMALL LETTER U
166
+ 'v' # 0x76 -> LATIN SMALL LETTER V
167
+ 'w' # 0x77 -> LATIN SMALL LETTER W
168
+ 'x' # 0x78 -> LATIN SMALL LETTER X
169
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
170
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
171
+ '{' # 0x7B -> LEFT CURLY BRACKET
172
+ '|' # 0x7C -> VERTICAL LINE
173
+ '}' # 0x7D -> RIGHT CURLY BRACKET
174
+ '~' # 0x7E -> TILDE
175
+ '\x7f' # 0x7F -> CONTROL CHARACTER
176
+ '\xc4' # 0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
177
+ '\xc5' # 0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
178
+ '\xc7' # 0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
179
+ '\xc9' # 0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
180
+ '\xd1' # 0x84 -> LATIN CAPITAL LETTER N WITH TILDE
181
+ '\xd6' # 0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
182
+ '\xdc' # 0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
183
+ '\xe1' # 0x87 -> LATIN SMALL LETTER A WITH ACUTE
184
+ '\xe0' # 0x88 -> LATIN SMALL LETTER A WITH GRAVE
185
+ '\xe2' # 0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
186
+ '\xe4' # 0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
187
+ '\xe3' # 0x8B -> LATIN SMALL LETTER A WITH TILDE
188
+ '\xe5' # 0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
189
+ '\xe7' # 0x8D -> LATIN SMALL LETTER C WITH CEDILLA
190
+ '\xe9' # 0x8E -> LATIN SMALL LETTER E WITH ACUTE
191
+ '\xe8' # 0x8F -> LATIN SMALL LETTER E WITH GRAVE
192
+ '\xea' # 0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
193
+ '\xeb' # 0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
194
+ '\xed' # 0x92 -> LATIN SMALL LETTER I WITH ACUTE
195
+ '\xec' # 0x93 -> LATIN SMALL LETTER I WITH GRAVE
196
+ '\xee' # 0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
197
+ '\xef' # 0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
198
+ '\xf1' # 0x96 -> LATIN SMALL LETTER N WITH TILDE
199
+ '\xf3' # 0x97 -> LATIN SMALL LETTER O WITH ACUTE
200
+ '\xf2' # 0x98 -> LATIN SMALL LETTER O WITH GRAVE
201
+ '\xf4' # 0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
202
+ '\xf6' # 0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
203
+ '\xf5' # 0x9B -> LATIN SMALL LETTER O WITH TILDE
204
+ '\xfa' # 0x9C -> LATIN SMALL LETTER U WITH ACUTE
205
+ '\xf9' # 0x9D -> LATIN SMALL LETTER U WITH GRAVE
206
+ '\xfb' # 0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
207
+ '\xfc' # 0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
208
+ '\u2020' # 0xA0 -> DAGGER
209
+ '\xb0' # 0xA1 -> DEGREE SIGN
210
+ '\xa2' # 0xA2 -> CENT SIGN
211
+ '\xa3' # 0xA3 -> POUND SIGN
212
+ '\xa7' # 0xA4 -> SECTION SIGN
213
+ '\u2022' # 0xA5 -> BULLET
214
+ '\xb6' # 0xA6 -> PILCROW SIGN
215
+ '\xdf' # 0xA7 -> LATIN SMALL LETTER SHARP S
216
+ '\xae' # 0xA8 -> REGISTERED SIGN
217
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
218
+ '\u2122' # 0xAA -> TRADE MARK SIGN
219
+ '\xb4' # 0xAB -> ACUTE ACCENT
220
+ '\xa8' # 0xAC -> DIAERESIS
221
+ '\u2260' # 0xAD -> NOT EQUAL TO
222
+ '\xc6' # 0xAE -> LATIN CAPITAL LETTER AE
223
+ '\xd8' # 0xAF -> LATIN CAPITAL LETTER O WITH STROKE
224
+ '\u221e' # 0xB0 -> INFINITY
225
+ '\xb1' # 0xB1 -> PLUS-MINUS SIGN
226
+ '\u2264' # 0xB2 -> LESS-THAN OR EQUAL TO
227
+ '\u2265' # 0xB3 -> GREATER-THAN OR EQUAL TO
228
+ '\xa5' # 0xB4 -> YEN SIGN
229
+ '\xb5' # 0xB5 -> MICRO SIGN
230
+ '\u2202' # 0xB6 -> PARTIAL DIFFERENTIAL
231
+ '\u2211' # 0xB7 -> N-ARY SUMMATION
232
+ '\u220f' # 0xB8 -> N-ARY PRODUCT
233
+ '\u03c0' # 0xB9 -> GREEK SMALL LETTER PI
234
+ '\u222b' # 0xBA -> INTEGRAL
235
+ '\xaa' # 0xBB -> FEMININE ORDINAL INDICATOR
236
+ '\xba' # 0xBC -> MASCULINE ORDINAL INDICATOR
237
+ '\u03a9' # 0xBD -> GREEK CAPITAL LETTER OMEGA
238
+ '\xe6' # 0xBE -> LATIN SMALL LETTER AE
239
+ '\xf8' # 0xBF -> LATIN SMALL LETTER O WITH STROKE
240
+ '\xbf' # 0xC0 -> INVERTED QUESTION MARK
241
+ '\xa1' # 0xC1 -> INVERTED EXCLAMATION MARK
242
+ '\xac' # 0xC2 -> NOT SIGN
243
+ '\u221a' # 0xC3 -> SQUARE ROOT
244
+ '\u0192' # 0xC4 -> LATIN SMALL LETTER F WITH HOOK
245
+ '\u2248' # 0xC5 -> ALMOST EQUAL TO
246
+ '\u2206' # 0xC6 -> INCREMENT
247
+ '\xab' # 0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
248
+ '\xbb' # 0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
249
+ '\u2026' # 0xC9 -> HORIZONTAL ELLIPSIS
250
+ '\xa0' # 0xCA -> NO-BREAK SPACE
251
+ '\xc0' # 0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
252
+ '\xc3' # 0xCC -> LATIN CAPITAL LETTER A WITH TILDE
253
+ '\xd5' # 0xCD -> LATIN CAPITAL LETTER O WITH TILDE
254
+ '\u0152' # 0xCE -> LATIN CAPITAL LIGATURE OE
255
+ '\u0153' # 0xCF -> LATIN SMALL LIGATURE OE
256
+ '\u2013' # 0xD0 -> EN DASH
257
+ '\u2014' # 0xD1 -> EM DASH
258
+ '\u201c' # 0xD2 -> LEFT DOUBLE QUOTATION MARK
259
+ '\u201d' # 0xD3 -> RIGHT DOUBLE QUOTATION MARK
260
+ '\u2018' # 0xD4 -> LEFT SINGLE QUOTATION MARK
261
+ '\u2019' # 0xD5 -> RIGHT SINGLE QUOTATION MARK
262
+ '\xf7' # 0xD6 -> DIVISION SIGN
263
+ '\u25ca' # 0xD7 -> LOZENGE
264
+ '\xff' # 0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
265
+ '\u0178' # 0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
266
+ '\u011e' # 0xDA -> LATIN CAPITAL LETTER G WITH BREVE
267
+ '\u011f' # 0xDB -> LATIN SMALL LETTER G WITH BREVE
268
+ '\u0130' # 0xDC -> LATIN CAPITAL LETTER I WITH DOT ABOVE
269
+ '\u0131' # 0xDD -> LATIN SMALL LETTER DOTLESS I
270
+ '\u015e' # 0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
271
+ '\u015f' # 0xDF -> LATIN SMALL LETTER S WITH CEDILLA
272
+ '\u2021' # 0xE0 -> DOUBLE DAGGER
273
+ '\xb7' # 0xE1 -> MIDDLE DOT
274
+ '\u201a' # 0xE2 -> SINGLE LOW-9 QUOTATION MARK
275
+ '\u201e' # 0xE3 -> DOUBLE LOW-9 QUOTATION MARK
276
+ '\u2030' # 0xE4 -> PER MILLE SIGN
277
+ '\xc2' # 0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
278
+ '\xca' # 0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
279
+ '\xc1' # 0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
280
+ '\xcb' # 0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
281
+ '\xc8' # 0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
282
+ '\xcd' # 0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
283
+ '\xce' # 0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
284
+ '\xcf' # 0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
285
+ '\xcc' # 0xED -> LATIN CAPITAL LETTER I WITH GRAVE
286
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
287
+ '\xd4' # 0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
288
+ '\uf8ff' # 0xF0 -> Apple logo
289
+ '\xd2' # 0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
290
+ '\xda' # 0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
291
+ '\xdb' # 0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
292
+ '\xd9' # 0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
293
+ '\uf8a0' # 0xF5 -> undefined1
294
+ '\u02c6' # 0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
295
+ '\u02dc' # 0xF7 -> SMALL TILDE
296
+ '\xaf' # 0xF8 -> MACRON
297
+ '\u02d8' # 0xF9 -> BREVE
298
+ '\u02d9' # 0xFA -> DOT ABOVE
299
+ '\u02da' # 0xFB -> RING ABOVE
300
+ '\xb8' # 0xFC -> CEDILLA
301
+ '\u02dd' # 0xFD -> DOUBLE ACUTE ACCENT
302
+ '\u02db' # 0xFE -> OGONEK
303
+ '\u02c7' # 0xFF -> CARON
304
+ )
305
+
306
+ ### Encoding table
307
+ encoding_table=codecs.charmap_build(decoding_table)