Rip out all the u"..." literals and calls to unicode().
diff --git a/Lib/encodings/__init__.py b/Lib/encodings/__init__.py
index 383f3b0..5bfee44 100644
--- a/Lib/encodings/__init__.py
+++ b/Lib/encodings/__init__.py
@@ -60,7 +60,7 @@
     """
     # Make sure we have an 8-bit string, because .translate() works
     # differently for Unicode strings.
-    if isinstance(encoding, unicode):
+    if isinstance(encoding, str):
         # Note that .encode('latin-1') does *not* use the codec
         # registry, so this call doesn't recurse. (See unicodeobject.c
         # PyUnicode_AsEncodedString() for details)
diff --git a/Lib/encodings/cp037.py b/Lib/encodings/cp037.py
index c802b89..4edd708 100644
--- a/Lib/encodings/cp037.py
+++ b/Lib/encodings/cp037.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> CONTROL
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> CONTROL
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> CONTROL
-    u'\x8d'     #  0x09 -> CONTROL
-    u'\x8e'     #  0x0A -> CONTROL
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> CONTROL
-    u'\x85'     #  0x15 -> CONTROL
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> CONTROL
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> CONTROL
-    u'\x8f'     #  0x1B -> CONTROL
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> CONTROL
-    u'\x81'     #  0x21 -> CONTROL
-    u'\x82'     #  0x22 -> CONTROL
-    u'\x83'     #  0x23 -> CONTROL
-    u'\x84'     #  0x24 -> CONTROL
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> CONTROL
-    u'\x89'     #  0x29 -> CONTROL
-    u'\x8a'     #  0x2A -> CONTROL
-    u'\x8b'     #  0x2B -> CONTROL
-    u'\x8c'     #  0x2C -> CONTROL
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> CONTROL
-    u'\x91'     #  0x31 -> CONTROL
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> CONTROL
-    u'\x94'     #  0x34 -> CONTROL
-    u'\x95'     #  0x35 -> CONTROL
-    u'\x96'     #  0x36 -> CONTROL
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> CONTROL
-    u'\x99'     #  0x39 -> CONTROL
-    u'\x9a'     #  0x3A -> CONTROL
-    u'\x9b'     #  0x3B -> CONTROL
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> CONTROL
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\xa0'     #  0x41 -> NO-BREAK SPACE
-    u'\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xa2'     #  0x4A -> CENT SIGN
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'|'        #  0x4F -> VERTICAL LINE
-    u'&'        #  0x50 -> AMPERSAND
-    u'\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u'!'        #  0x5A -> EXCLAMATION MARK
-    u'$'        #  0x5B -> DOLLAR SIGN
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'\xac'     #  0x5F -> NOT SIGN
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xa6'     #  0x6A -> BROKEN BAR
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'`'        #  0x79 -> GRAVE ACCENT
-    u':'        #  0x7A -> COLON
-    u'#'        #  0x7B -> NUMBER SIGN
-    u'@'        #  0x7C -> COMMERCIAL AT
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'"'        #  0x7F -> QUOTATION MARK
-    u'\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
-    u'\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
-    u'\xb1'     #  0x8F -> PLUS-MINUS SIGN
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
-    u'\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
-    u'\xb8'     #  0x9D -> CEDILLA
-    u'\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
-    u'\xa4'     #  0x9F -> CURRENCY SIGN
-    u'\xb5'     #  0xA0 -> MICRO SIGN
-    u'~'        #  0xA1 -> TILDE
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
-    u'\xbf'     #  0xAB -> INVERTED QUESTION MARK
-    u'\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
-    u'\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
-    u'\xae'     #  0xAF -> REGISTERED SIGN
-    u'^'        #  0xB0 -> CIRCUMFLEX ACCENT
-    u'\xa3'     #  0xB1 -> POUND SIGN
-    u'\xa5'     #  0xB2 -> YEN SIGN
-    u'\xb7'     #  0xB3 -> MIDDLE DOT
-    u'\xa9'     #  0xB4 -> COPYRIGHT SIGN
-    u'\xa7'     #  0xB5 -> SECTION SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
-    u'['        #  0xBA -> LEFT SQUARE BRACKET
-    u']'        #  0xBB -> RIGHT SQUARE BRACKET
-    u'\xaf'     #  0xBC -> MACRON
-    u'\xa8'     #  0xBD -> DIAERESIS
-    u'\xb4'     #  0xBE -> ACUTE ACCENT
-    u'\xd7'     #  0xBF -> MULTIPLICATION SIGN
-    u'{'        #  0xC0 -> LEFT CURLY BRACKET
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
-    u'}'        #  0xD0 -> RIGHT CURLY BRACKET
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb9'     #  0xDA -> SUPERSCRIPT ONE
-    u'\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\\'       #  0xE0 -> REVERSE SOLIDUS
-    u'\xf7'     #  0xE1 -> DIVISION SIGN
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\x9f'     #  0xFF -> CONTROL
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1006.py b/Lib/encodings/cp1006.py
index e21e804..a1221c3 100644
--- a/Lib/encodings/cp1006.py
+++ b/Lib/encodings/cp1006.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u06f0'   #  0xA1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
-    u'\u06f1'   #  0xA2 -> EXTENDED ARABIC-INDIC DIGIT ONE
-    u'\u06f2'   #  0xA3 -> EXTENDED ARABIC-INDIC DIGIT TWO
-    u'\u06f3'   #  0xA4 -> EXTENDED ARABIC-INDIC DIGIT THREE
-    u'\u06f4'   #  0xA5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
-    u'\u06f5'   #  0xA6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
-    u'\u06f6'   #  0xA7 -> EXTENDED ARABIC-INDIC DIGIT SIX
-    u'\u06f7'   #  0xA8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
-    u'\u06f8'   #  0xA9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
-    u'\u06f9'   #  0xAA -> EXTENDED ARABIC-INDIC DIGIT NINE
-    u'\u060c'   #  0xAB -> ARABIC COMMA
-    u'\u061b'   #  0xAC -> ARABIC SEMICOLON
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u061f'   #  0xAE -> ARABIC QUESTION MARK
-    u'\ufe81'   #  0xAF -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-    u'\ufe8d'   #  0xB0 -> ARABIC LETTER ALEF ISOLATED FORM
-    u'\ufe8e'   #  0xB1 -> ARABIC LETTER ALEF FINAL FORM
-    u'\ufe8e'   #  0xB2 -> ARABIC LETTER ALEF FINAL FORM
-    u'\ufe8f'   #  0xB3 -> ARABIC LETTER BEH ISOLATED FORM
-    u'\ufe91'   #  0xB4 -> ARABIC LETTER BEH INITIAL FORM
-    u'\ufb56'   #  0xB5 -> ARABIC LETTER PEH ISOLATED FORM
-    u'\ufb58'   #  0xB6 -> ARABIC LETTER PEH INITIAL FORM
-    u'\ufe93'   #  0xB7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
-    u'\ufe95'   #  0xB8 -> ARABIC LETTER TEH ISOLATED FORM
-    u'\ufe97'   #  0xB9 -> ARABIC LETTER TEH INITIAL FORM
-    u'\ufb66'   #  0xBA -> ARABIC LETTER TTEH ISOLATED FORM
-    u'\ufb68'   #  0xBB -> ARABIC LETTER TTEH INITIAL FORM
-    u'\ufe99'   #  0xBC -> ARABIC LETTER THEH ISOLATED FORM
-    u'\ufe9b'   #  0xBD -> ARABIC LETTER THEH INITIAL FORM
-    u'\ufe9d'   #  0xBE -> ARABIC LETTER JEEM ISOLATED FORM
-    u'\ufe9f'   #  0xBF -> ARABIC LETTER JEEM INITIAL FORM
-    u'\ufb7a'   #  0xC0 -> ARABIC LETTER TCHEH ISOLATED FORM
-    u'\ufb7c'   #  0xC1 -> ARABIC LETTER TCHEH INITIAL FORM
-    u'\ufea1'   #  0xC2 -> ARABIC LETTER HAH ISOLATED FORM
-    u'\ufea3'   #  0xC3 -> ARABIC LETTER HAH INITIAL FORM
-    u'\ufea5'   #  0xC4 -> ARABIC LETTER KHAH ISOLATED FORM
-    u'\ufea7'   #  0xC5 -> ARABIC LETTER KHAH INITIAL FORM
-    u'\ufea9'   #  0xC6 -> ARABIC LETTER DAL ISOLATED FORM
-    u'\ufb84'   #  0xC7 -> ARABIC LETTER DAHAL ISOLATED FORMN
-    u'\ufeab'   #  0xC8 -> ARABIC LETTER THAL ISOLATED FORM
-    u'\ufead'   #  0xC9 -> ARABIC LETTER REH ISOLATED FORM
-    u'\ufb8c'   #  0xCA -> ARABIC LETTER RREH ISOLATED FORM
-    u'\ufeaf'   #  0xCB -> ARABIC LETTER ZAIN ISOLATED FORM
-    u'\ufb8a'   #  0xCC -> ARABIC LETTER JEH ISOLATED FORM
-    u'\ufeb1'   #  0xCD -> ARABIC LETTER SEEN ISOLATED FORM
-    u'\ufeb3'   #  0xCE -> ARABIC LETTER SEEN INITIAL FORM
-    u'\ufeb5'   #  0xCF -> ARABIC LETTER SHEEN ISOLATED FORM
-    u'\ufeb7'   #  0xD0 -> ARABIC LETTER SHEEN INITIAL FORM
-    u'\ufeb9'   #  0xD1 -> ARABIC LETTER SAD ISOLATED FORM
-    u'\ufebb'   #  0xD2 -> ARABIC LETTER SAD INITIAL FORM
-    u'\ufebd'   #  0xD3 -> ARABIC LETTER DAD ISOLATED FORM
-    u'\ufebf'   #  0xD4 -> ARABIC LETTER DAD INITIAL FORM
-    u'\ufec1'   #  0xD5 -> ARABIC LETTER TAH ISOLATED FORM
-    u'\ufec5'   #  0xD6 -> ARABIC LETTER ZAH ISOLATED FORM
-    u'\ufec9'   #  0xD7 -> ARABIC LETTER AIN ISOLATED FORM
-    u'\ufeca'   #  0xD8 -> ARABIC LETTER AIN FINAL FORM
-    u'\ufecb'   #  0xD9 -> ARABIC LETTER AIN INITIAL FORM
-    u'\ufecc'   #  0xDA -> ARABIC LETTER AIN MEDIAL FORM
-    u'\ufecd'   #  0xDB -> ARABIC LETTER GHAIN ISOLATED FORM
-    u'\ufece'   #  0xDC -> ARABIC LETTER GHAIN FINAL FORM
-    u'\ufecf'   #  0xDD -> ARABIC LETTER GHAIN INITIAL FORM
-    u'\ufed0'   #  0xDE -> ARABIC LETTER GHAIN MEDIAL FORM
-    u'\ufed1'   #  0xDF -> ARABIC LETTER FEH ISOLATED FORM
-    u'\ufed3'   #  0xE0 -> ARABIC LETTER FEH INITIAL FORM
-    u'\ufed5'   #  0xE1 -> ARABIC LETTER QAF ISOLATED FORM
-    u'\ufed7'   #  0xE2 -> ARABIC LETTER QAF INITIAL FORM
-    u'\ufed9'   #  0xE3 -> ARABIC LETTER KAF ISOLATED FORM
-    u'\ufedb'   #  0xE4 -> ARABIC LETTER KAF INITIAL FORM
-    u'\ufb92'   #  0xE5 -> ARABIC LETTER GAF ISOLATED FORM
-    u'\ufb94'   #  0xE6 -> ARABIC LETTER GAF INITIAL FORM
-    u'\ufedd'   #  0xE7 -> ARABIC LETTER LAM ISOLATED FORM
-    u'\ufedf'   #  0xE8 -> ARABIC LETTER LAM INITIAL FORM
-    u'\ufee0'   #  0xE9 -> ARABIC LETTER LAM MEDIAL FORM
-    u'\ufee1'   #  0xEA -> ARABIC LETTER MEEM ISOLATED FORM
-    u'\ufee3'   #  0xEB -> ARABIC LETTER MEEM INITIAL FORM
-    u'\ufb9e'   #  0xEC -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
-    u'\ufee5'   #  0xED -> ARABIC LETTER NOON ISOLATED FORM
-    u'\ufee7'   #  0xEE -> ARABIC LETTER NOON INITIAL FORM
-    u'\ufe85'   #  0xEF -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufeed'   #  0xF0 -> ARABIC LETTER WAW ISOLATED FORM
-    u'\ufba6'   #  0xF1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
-    u'\ufba8'   #  0xF2 -> ARABIC LETTER HEH GOAL INITIAL FORM
-    u'\ufba9'   #  0xF3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
-    u'\ufbaa'   #  0xF4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
-    u'\ufe80'   #  0xF5 -> ARABIC LETTER HAMZA ISOLATED FORM
-    u'\ufe89'   #  0xF6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufe8a'   #  0xF7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
-    u'\ufe8b'   #  0xF8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-    u'\ufef1'   #  0xF9 -> ARABIC LETTER YEH ISOLATED FORM
-    u'\ufef2'   #  0xFA -> ARABIC LETTER YEH FINAL FORM
-    u'\ufef3'   #  0xFB -> ARABIC LETTER YEH INITIAL FORM
-    u'\ufbb0'   #  0xFC -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufbae'   #  0xFD -> ARABIC LETTER YEH BARREE ISOLATED FORM
-    u'\ufe7c'   #  0xFE -> ARABIC SHADDA ISOLATED FORM
-    u'\ufe7d'   #  0xFF -> ARABIC SHADDA MEDIAL FORM
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u06f0'   #  0xA1 -> EXTENDED ARABIC-INDIC DIGIT ZERO
+    '\u06f1'   #  0xA2 -> EXTENDED ARABIC-INDIC DIGIT ONE
+    '\u06f2'   #  0xA3 -> EXTENDED ARABIC-INDIC DIGIT TWO
+    '\u06f3'   #  0xA4 -> EXTENDED ARABIC-INDIC DIGIT THREE
+    '\u06f4'   #  0xA5 -> EXTENDED ARABIC-INDIC DIGIT FOUR
+    '\u06f5'   #  0xA6 -> EXTENDED ARABIC-INDIC DIGIT FIVE
+    '\u06f6'   #  0xA7 -> EXTENDED ARABIC-INDIC DIGIT SIX
+    '\u06f7'   #  0xA8 -> EXTENDED ARABIC-INDIC DIGIT SEVEN
+    '\u06f8'   #  0xA9 -> EXTENDED ARABIC-INDIC DIGIT EIGHT
+    '\u06f9'   #  0xAA -> EXTENDED ARABIC-INDIC DIGIT NINE
+    '\u060c'   #  0xAB -> ARABIC COMMA
+    '\u061b'   #  0xAC -> ARABIC SEMICOLON
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u061f'   #  0xAE -> ARABIC QUESTION MARK
+    '\ufe81'   #  0xAF -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufe8d'   #  0xB0 -> ARABIC LETTER ALEF ISOLATED FORM
+    '\ufe8e'   #  0xB1 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8e'   #  0xB2 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8f'   #  0xB3 -> ARABIC LETTER BEH ISOLATED FORM
+    '\ufe91'   #  0xB4 -> ARABIC LETTER BEH INITIAL FORM
+    '\ufb56'   #  0xB5 -> ARABIC LETTER PEH ISOLATED FORM
+    '\ufb58'   #  0xB6 -> ARABIC LETTER PEH INITIAL FORM
+    '\ufe93'   #  0xB7 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    '\ufe95'   #  0xB8 -> ARABIC LETTER TEH ISOLATED FORM
+    '\ufe97'   #  0xB9 -> ARABIC LETTER TEH INITIAL FORM
+    '\ufb66'   #  0xBA -> ARABIC LETTER TTEH ISOLATED FORM
+    '\ufb68'   #  0xBB -> ARABIC LETTER TTEH INITIAL FORM
+    '\ufe99'   #  0xBC -> ARABIC LETTER THEH ISOLATED FORM
+    '\ufe9b'   #  0xBD -> ARABIC LETTER THEH INITIAL FORM
+    '\ufe9d'   #  0xBE -> ARABIC LETTER JEEM ISOLATED FORM
+    '\ufe9f'   #  0xBF -> ARABIC LETTER JEEM INITIAL FORM
+    '\ufb7a'   #  0xC0 -> ARABIC LETTER TCHEH ISOLATED FORM
+    '\ufb7c'   #  0xC1 -> ARABIC LETTER TCHEH INITIAL FORM
+    '\ufea1'   #  0xC2 -> ARABIC LETTER HAH ISOLATED FORM
+    '\ufea3'   #  0xC3 -> ARABIC LETTER HAH INITIAL FORM
+    '\ufea5'   #  0xC4 -> ARABIC LETTER KHAH ISOLATED FORM
+    '\ufea7'   #  0xC5 -> ARABIC LETTER KHAH INITIAL FORM
+    '\ufea9'   #  0xC6 -> ARABIC LETTER DAL ISOLATED FORM
+    '\ufb84'   #  0xC7 -> ARABIC LETTER DAHAL ISOLATED FORMN
+    '\ufeab'   #  0xC8 -> ARABIC LETTER THAL ISOLATED FORM
+    '\ufead'   #  0xC9 -> ARABIC LETTER REH ISOLATED FORM
+    '\ufb8c'   #  0xCA -> ARABIC LETTER RREH ISOLATED FORM
+    '\ufeaf'   #  0xCB -> ARABIC LETTER ZAIN ISOLATED FORM
+    '\ufb8a'   #  0xCC -> ARABIC LETTER JEH ISOLATED FORM
+    '\ufeb1'   #  0xCD -> ARABIC LETTER SEEN ISOLATED FORM
+    '\ufeb3'   #  0xCE -> ARABIC LETTER SEEN INITIAL FORM
+    '\ufeb5'   #  0xCF -> ARABIC LETTER SHEEN ISOLATED FORM
+    '\ufeb7'   #  0xD0 -> ARABIC LETTER SHEEN INITIAL FORM
+    '\ufeb9'   #  0xD1 -> ARABIC LETTER SAD ISOLATED FORM
+    '\ufebb'   #  0xD2 -> ARABIC LETTER SAD INITIAL FORM
+    '\ufebd'   #  0xD3 -> ARABIC LETTER DAD ISOLATED FORM
+    '\ufebf'   #  0xD4 -> ARABIC LETTER DAD INITIAL FORM
+    '\ufec1'   #  0xD5 -> ARABIC LETTER TAH ISOLATED FORM
+    '\ufec5'   #  0xD6 -> ARABIC LETTER ZAH ISOLATED FORM
+    '\ufec9'   #  0xD7 -> ARABIC LETTER AIN ISOLATED FORM
+    '\ufeca'   #  0xD8 -> ARABIC LETTER AIN FINAL FORM
+    '\ufecb'   #  0xD9 -> ARABIC LETTER AIN INITIAL FORM
+    '\ufecc'   #  0xDA -> ARABIC LETTER AIN MEDIAL FORM
+    '\ufecd'   #  0xDB -> ARABIC LETTER GHAIN ISOLATED FORM
+    '\ufece'   #  0xDC -> ARABIC LETTER GHAIN FINAL FORM
+    '\ufecf'   #  0xDD -> ARABIC LETTER GHAIN INITIAL FORM
+    '\ufed0'   #  0xDE -> ARABIC LETTER GHAIN MEDIAL FORM
+    '\ufed1'   #  0xDF -> ARABIC LETTER FEH ISOLATED FORM
+    '\ufed3'   #  0xE0 -> ARABIC LETTER FEH INITIAL FORM
+    '\ufed5'   #  0xE1 -> ARABIC LETTER QAF ISOLATED FORM
+    '\ufed7'   #  0xE2 -> ARABIC LETTER QAF INITIAL FORM
+    '\ufed9'   #  0xE3 -> ARABIC LETTER KAF ISOLATED FORM
+    '\ufedb'   #  0xE4 -> ARABIC LETTER KAF INITIAL FORM
+    '\ufb92'   #  0xE5 -> ARABIC LETTER GAF ISOLATED FORM
+    '\ufb94'   #  0xE6 -> ARABIC LETTER GAF INITIAL FORM
+    '\ufedd'   #  0xE7 -> ARABIC LETTER LAM ISOLATED FORM
+    '\ufedf'   #  0xE8 -> ARABIC LETTER LAM INITIAL FORM
+    '\ufee0'   #  0xE9 -> ARABIC LETTER LAM MEDIAL FORM
+    '\ufee1'   #  0xEA -> ARABIC LETTER MEEM ISOLATED FORM
+    '\ufee3'   #  0xEB -> ARABIC LETTER MEEM INITIAL FORM
+    '\ufb9e'   #  0xEC -> ARABIC LETTER NOON GHUNNA ISOLATED FORM
+    '\ufee5'   #  0xED -> ARABIC LETTER NOON ISOLATED FORM
+    '\ufee7'   #  0xEE -> ARABIC LETTER NOON INITIAL FORM
+    '\ufe85'   #  0xEF -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    '\ufeed'   #  0xF0 -> ARABIC LETTER WAW ISOLATED FORM
+    '\ufba6'   #  0xF1 -> ARABIC LETTER HEH GOAL ISOLATED FORM
+    '\ufba8'   #  0xF2 -> ARABIC LETTER HEH GOAL INITIAL FORM
+    '\ufba9'   #  0xF3 -> ARABIC LETTER HEH GOAL MEDIAL FORM
+    '\ufbaa'   #  0xF4 -> ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM
+    '\ufe80'   #  0xF5 -> ARABIC LETTER HAMZA ISOLATED FORM
+    '\ufe89'   #  0xF6 -> ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM
+    '\ufe8a'   #  0xF7 -> ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM
+    '\ufe8b'   #  0xF8 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    '\ufef1'   #  0xF9 -> ARABIC LETTER YEH ISOLATED FORM
+    '\ufef2'   #  0xFA -> ARABIC LETTER YEH FINAL FORM
+    '\ufef3'   #  0xFB -> ARABIC LETTER YEH INITIAL FORM
+    '\ufbb0'   #  0xFC -> ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+    '\ufbae'   #  0xFD -> ARABIC LETTER YEH BARREE ISOLATED FORM
+    '\ufe7c'   #  0xFE -> ARABIC SHADDA ISOLATED FORM
+    '\ufe7d'   #  0xFF -> ARABIC SHADDA MEDIAL FORM
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1026.py b/Lib/encodings/cp1026.py
index 45bbe62..46f71f7 100644
--- a/Lib/encodings/cp1026.py
+++ b/Lib/encodings/cp1026.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> CONTROL
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> CONTROL
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> CONTROL
-    u'\x8d'     #  0x09 -> CONTROL
-    u'\x8e'     #  0x0A -> CONTROL
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> CONTROL
-    u'\x85'     #  0x15 -> CONTROL
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> CONTROL
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> CONTROL
-    u'\x8f'     #  0x1B -> CONTROL
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> CONTROL
-    u'\x81'     #  0x21 -> CONTROL
-    u'\x82'     #  0x22 -> CONTROL
-    u'\x83'     #  0x23 -> CONTROL
-    u'\x84'     #  0x24 -> CONTROL
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> CONTROL
-    u'\x89'     #  0x29 -> CONTROL
-    u'\x8a'     #  0x2A -> CONTROL
-    u'\x8b'     #  0x2B -> CONTROL
-    u'\x8c'     #  0x2C -> CONTROL
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> CONTROL
-    u'\x91'     #  0x31 -> CONTROL
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> CONTROL
-    u'\x94'     #  0x34 -> CONTROL
-    u'\x95'     #  0x35 -> CONTROL
-    u'\x96'     #  0x36 -> CONTROL
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> CONTROL
-    u'\x99'     #  0x39 -> CONTROL
-    u'\x9a'     #  0x3A -> CONTROL
-    u'\x9b'     #  0x3B -> CONTROL
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> CONTROL
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\xa0'     #  0x41 -> NO-BREAK SPACE
-    u'\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'{'        #  0x48 -> LEFT CURLY BRACKET
-    u'\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xc7'     #  0x4A -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'!'        #  0x4F -> EXCLAMATION MARK
-    u'&'        #  0x50 -> AMPERSAND
-    u'\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u'\u011e'   #  0x5A -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\u0130'   #  0x5B -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'^'        #  0x5F -> CIRCUMFLEX ACCENT
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'['        #  0x68 -> LEFT SQUARE BRACKET
-    u'\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\u015f'   #  0x6A -> LATIN SMALL LETTER S WITH CEDILLA
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\u0131'   #  0x79 -> LATIN SMALL LETTER DOTLESS I
-    u':'        #  0x7A -> COLON
-    u'\xd6'     #  0x7B -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\u015e'   #  0x7C -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'\xdc'     #  0x7F -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'}'        #  0x8C -> RIGHT CURLY BRACKET
-    u'`'        #  0x8D -> GRAVE ACCENT
-    u'\xa6'     #  0x8E -> BROKEN BAR
-    u'\xb1'     #  0x8F -> PLUS-MINUS SIGN
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
-    u'\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
-    u'\xb8'     #  0x9D -> CEDILLA
-    u'\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
-    u'\xa4'     #  0x9F -> CURRENCY SIGN
-    u'\xb5'     #  0xA0 -> MICRO SIGN
-    u'\xf6'     #  0xA1 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
-    u'\xbf'     #  0xAB -> INVERTED QUESTION MARK
-    u']'        #  0xAC -> RIGHT SQUARE BRACKET
-    u'$'        #  0xAD -> DOLLAR SIGN
-    u'@'        #  0xAE -> COMMERCIAL AT
-    u'\xae'     #  0xAF -> REGISTERED SIGN
-    u'\xa2'     #  0xB0 -> CENT SIGN
-    u'\xa3'     #  0xB1 -> POUND SIGN
-    u'\xa5'     #  0xB2 -> YEN SIGN
-    u'\xb7'     #  0xB3 -> MIDDLE DOT
-    u'\xa9'     #  0xB4 -> COPYRIGHT SIGN
-    u'\xa7'     #  0xB5 -> SECTION SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
-    u'\xac'     #  0xBA -> NOT SIGN
-    u'|'        #  0xBB -> VERTICAL LINE
-    u'\xaf'     #  0xBC -> MACRON
-    u'\xa8'     #  0xBD -> DIAERESIS
-    u'\xb4'     #  0xBE -> ACUTE ACCENT
-    u'\xd7'     #  0xBF -> MULTIPLICATION SIGN
-    u'\xe7'     #  0xC0 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'~'        #  0xCC -> TILDE
-    u'\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
-    u'\u011f'   #  0xD0 -> LATIN SMALL LETTER G WITH BREVE
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb9'     #  0xDA -> SUPERSCRIPT ONE
-    u'\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\\'       #  0xDC -> REVERSE SOLIDUS
-    u'\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\xfc'     #  0xE0 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xf7'     #  0xE1 -> DIVISION SIGN
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'#'        #  0xEC -> NUMBER SIGN
-    u'\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'"'        #  0xFC -> QUOTATION MARK
-    u'\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\x9f'     #  0xFF -> CONTROL
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '{'        #  0x48 -> LEFT CURLY BRACKET
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xc7'     #  0x4A -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u011e'   #  0x5A -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u0130'   #  0x5B -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '['        #  0x68 -> LEFT SQUARE BRACKET
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u015f'   #  0x6A -> LATIN SMALL LETTER S WITH CEDILLA
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u0131'   #  0x79 -> LATIN SMALL LETTER DOTLESS I
+    ':'        #  0x7A -> COLON
+    '\xd6'     #  0x7B -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u015e'   #  0x7C -> LATIN CAPITAL LETTER S WITH CEDILLA
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '\xdc'     #  0x7F -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '}'        #  0x8C -> RIGHT CURLY BRACKET
+    '`'        #  0x8D -> GRAVE ACCENT
+    '\xa6'     #  0x8E -> BROKEN BAR
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '\xf6'     #  0xA1 -> LATIN SMALL LETTER O WITH DIAERESIS
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    ']'        #  0xAC -> RIGHT SQUARE BRACKET
+    '$'        #  0xAD -> DOLLAR SIGN
+    '@'        #  0xAE -> COMMERCIAL AT
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '\xa2'     #  0xB0 -> CENT SIGN
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '\xac'     #  0xBA -> NOT SIGN
+    '|'        #  0xBB -> VERTICAL LINE
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '\xe7'     #  0xC0 -> LATIN SMALL LETTER C WITH CEDILLA
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '~'        #  0xCC -> TILDE
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '\u011f'   #  0xD0 -> LATIN SMALL LETTER G WITH BREVE
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\\'       #  0xDC -> REVERSE SOLIDUS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xfc'     #  0xE0 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '#'        #  0xEC -> NUMBER SIGN
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '"'        #  0xFC -> QUOTATION MARK
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1140.py b/Lib/encodings/cp1140.py
index 7e507fd..0a919d8 100644
--- a/Lib/encodings/cp1140.py
+++ b/Lib/encodings/cp1140.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> CONTROL
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> CONTROL
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> CONTROL
-    u'\x8d'     #  0x09 -> CONTROL
-    u'\x8e'     #  0x0A -> CONTROL
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> CONTROL
-    u'\x85'     #  0x15 -> CONTROL
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> CONTROL
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> CONTROL
-    u'\x8f'     #  0x1B -> CONTROL
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> CONTROL
-    u'\x81'     #  0x21 -> CONTROL
-    u'\x82'     #  0x22 -> CONTROL
-    u'\x83'     #  0x23 -> CONTROL
-    u'\x84'     #  0x24 -> CONTROL
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> CONTROL
-    u'\x89'     #  0x29 -> CONTROL
-    u'\x8a'     #  0x2A -> CONTROL
-    u'\x8b'     #  0x2B -> CONTROL
-    u'\x8c'     #  0x2C -> CONTROL
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> CONTROL
-    u'\x91'     #  0x31 -> CONTROL
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> CONTROL
-    u'\x94'     #  0x34 -> CONTROL
-    u'\x95'     #  0x35 -> CONTROL
-    u'\x96'     #  0x36 -> CONTROL
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> CONTROL
-    u'\x99'     #  0x39 -> CONTROL
-    u'\x9a'     #  0x3A -> CONTROL
-    u'\x9b'     #  0x3B -> CONTROL
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> CONTROL
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\xa0'     #  0x41 -> NO-BREAK SPACE
-    u'\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xa2'     #  0x4A -> CENT SIGN
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'|'        #  0x4F -> VERTICAL LINE
-    u'&'        #  0x50 -> AMPERSAND
-    u'\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u'!'        #  0x5A -> EXCLAMATION MARK
-    u'$'        #  0x5B -> DOLLAR SIGN
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'\xac'     #  0x5F -> NOT SIGN
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xa6'     #  0x6A -> BROKEN BAR
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'`'        #  0x79 -> GRAVE ACCENT
-    u':'        #  0x7A -> COLON
-    u'#'        #  0x7B -> NUMBER SIGN
-    u'@'        #  0x7C -> COMMERCIAL AT
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'"'        #  0x7F -> QUOTATION MARK
-    u'\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
-    u'\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
-    u'\xb1'     #  0x8F -> PLUS-MINUS SIGN
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
-    u'\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
-    u'\xb8'     #  0x9D -> CEDILLA
-    u'\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
-    u'\u20ac'   #  0x9F -> EURO SIGN
-    u'\xb5'     #  0xA0 -> MICRO SIGN
-    u'~'        #  0xA1 -> TILDE
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
-    u'\xbf'     #  0xAB -> INVERTED QUESTION MARK
-    u'\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
-    u'\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
-    u'\xae'     #  0xAF -> REGISTERED SIGN
-    u'^'        #  0xB0 -> CIRCUMFLEX ACCENT
-    u'\xa3'     #  0xB1 -> POUND SIGN
-    u'\xa5'     #  0xB2 -> YEN SIGN
-    u'\xb7'     #  0xB3 -> MIDDLE DOT
-    u'\xa9'     #  0xB4 -> COPYRIGHT SIGN
-    u'\xa7'     #  0xB5 -> SECTION SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
-    u'['        #  0xBA -> LEFT SQUARE BRACKET
-    u']'        #  0xBB -> RIGHT SQUARE BRACKET
-    u'\xaf'     #  0xBC -> MACRON
-    u'\xa8'     #  0xBD -> DIAERESIS
-    u'\xb4'     #  0xBE -> ACUTE ACCENT
-    u'\xd7'     #  0xBF -> MULTIPLICATION SIGN
-    u'{'        #  0xC0 -> LEFT CURLY BRACKET
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
-    u'}'        #  0xD0 -> RIGHT CURLY BRACKET
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb9'     #  0xDA -> SUPERSCRIPT ONE
-    u'\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\\'       #  0xE0 -> REVERSE SOLIDUS
-    u'\xf7'     #  0xE1 -> DIVISION SIGN
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\x9f'     #  0xFF -> CONTROL
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\u20ac'   #  0x9F -> EURO SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1250.py b/Lib/encodings/cp1250.py
index d620b89..c2c83aa 100644
--- a/Lib/encodings/cp1250.py
+++ b/Lib/encodings/cp1250.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\ufffe'   #  0x83 -> UNDEFINED
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\ufffe'   #  0x88 -> UNDEFINED
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u015a'   #  0x8C -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u0164'   #  0x8D -> LATIN CAPITAL LETTER T WITH CARON
-    u'\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\ufffe'   #  0x98 -> UNDEFINED
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u015b'   #  0x9C -> LATIN SMALL LETTER S WITH ACUTE
-    u'\u0165'   #  0x9D -> LATIN SMALL LETTER T WITH CARON
-    u'\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
-    u'\u017a'   #  0x9F -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u02c7'   #  0xA1 -> CARON
-    u'\u02d8'   #  0xA2 -> BREVE
-    u'\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\u0104'   #  0xA5 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u02db'   #  0xB2 -> OGONEK
-    u'\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\u0105'   #  0xB9 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u013d'   #  0xBC -> LATIN CAPITAL LETTER L WITH CARON
-    u'\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
-    u'\u013e'   #  0xBE -> LATIN SMALL LETTER L WITH CARON
-    u'\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
-    u'\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
-    u'\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
-    u'\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
-    u'\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
-    u'\u02d9'   #  0xFF -> DOT ABOVE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u015a'   #  0x8C -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u0164'   #  0x8D -> LATIN CAPITAL LETTER T WITH CARON
+    '\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u015b'   #  0x9C -> LATIN SMALL LETTER S WITH ACUTE
+    '\u0165'   #  0x9D -> LATIN SMALL LETTER T WITH CARON
+    '\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
+    '\u017a'   #  0x9F -> LATIN SMALL LETTER Z WITH ACUTE
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u02c7'   #  0xA1 -> CARON
+    '\u02d8'   #  0xA2 -> BREVE
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0104'   #  0xA5 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0105'   #  0xB9 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u013d'   #  0xBC -> LATIN CAPITAL LETTER L WITH CARON
+    '\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
+    '\u013e'   #  0xBE -> LATIN SMALL LETTER L WITH CARON
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
+    '\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
+    '\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
+    '\u02d9'   #  0xFF -> DOT ABOVE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1251.py b/Lib/encodings/cp1251.py
index 216771f..22bc660 100644
--- a/Lib/encodings/cp1251.py
+++ b/Lib/encodings/cp1251.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u0402'   #  0x80 -> CYRILLIC CAPITAL LETTER DJE
-    u'\u0403'   #  0x81 -> CYRILLIC CAPITAL LETTER GJE
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0453'   #  0x83 -> CYRILLIC SMALL LETTER GJE
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u20ac'   #  0x88 -> EURO SIGN
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\u0409'   #  0x8A -> CYRILLIC CAPITAL LETTER LJE
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u040a'   #  0x8C -> CYRILLIC CAPITAL LETTER NJE
-    u'\u040c'   #  0x8D -> CYRILLIC CAPITAL LETTER KJE
-    u'\u040b'   #  0x8E -> CYRILLIC CAPITAL LETTER TSHE
-    u'\u040f'   #  0x8F -> CYRILLIC CAPITAL LETTER DZHE
-    u'\u0452'   #  0x90 -> CYRILLIC SMALL LETTER DJE
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\ufffe'   #  0x98 -> UNDEFINED
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\u0459'   #  0x9A -> CYRILLIC SMALL LETTER LJE
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u045a'   #  0x9C -> CYRILLIC SMALL LETTER NJE
-    u'\u045c'   #  0x9D -> CYRILLIC SMALL LETTER KJE
-    u'\u045b'   #  0x9E -> CYRILLIC SMALL LETTER TSHE
-    u'\u045f'   #  0x9F -> CYRILLIC SMALL LETTER DZHE
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u040e'   #  0xA1 -> CYRILLIC CAPITAL LETTER SHORT U
-    u'\u045e'   #  0xA2 -> CYRILLIC SMALL LETTER SHORT U
-    u'\u0408'   #  0xA3 -> CYRILLIC CAPITAL LETTER JE
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\u0490'   #  0xA5 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\u0401'   #  0xA8 -> CYRILLIC CAPITAL LETTER IO
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u0404'   #  0xAA -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\u0407'   #  0xAF -> CYRILLIC CAPITAL LETTER YI
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u0406'   #  0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0456'   #  0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0491'   #  0xB4 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u0451'   #  0xB8 -> CYRILLIC SMALL LETTER IO
-    u'\u2116'   #  0xB9 -> NUMERO SIGN
-    u'\u0454'   #  0xBA -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u0458'   #  0xBC -> CYRILLIC SMALL LETTER JE
-    u'\u0405'   #  0xBD -> CYRILLIC CAPITAL LETTER DZE
-    u'\u0455'   #  0xBE -> CYRILLIC SMALL LETTER DZE
-    u'\u0457'   #  0xBF -> CYRILLIC SMALL LETTER YI
-    u'\u0410'   #  0xC0 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0xC1 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0412'   #  0xC2 -> CYRILLIC CAPITAL LETTER VE
-    u'\u0413'   #  0xC3 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0414'   #  0xC4 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0xC5 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0416'   #  0xC6 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0417'   #  0xC7 -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0418'   #  0xC8 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0xCA -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0xCB -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0xCC -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0xCD -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0xCE -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0xCF -> CYRILLIC CAPITAL LETTER PE
-    u'\u0420'   #  0xD0 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0xD1 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0xD2 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0xD3 -> CYRILLIC CAPITAL LETTER U
-    u'\u0424'   #  0xD4 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0425'   #  0xD5 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0426'   #  0xD6 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0427'   #  0xD7 -> CYRILLIC CAPITAL LETTER CHE
-    u'\u0428'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHA
-    u'\u0429'   #  0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u042a'   #  0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
-    u'\u042b'   #  0xDB -> CYRILLIC CAPITAL LETTER YERU
-    u'\u042c'   #  0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042d'   #  0xDD -> CYRILLIC CAPITAL LETTER E
-    u'\u042e'   #  0xDE -> CYRILLIC CAPITAL LETTER YU
-    u'\u042f'   #  0xDF -> CYRILLIC CAPITAL LETTER YA
-    u'\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
-    u'\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
-    u'\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
-    u'\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
-    u'\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
-    u'\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
-    u'\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
-    u'\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
-    u'\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
-    u'\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
-    u'\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
-    u'\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
-    u'\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
-    u'\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
-    u'\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
-    u'\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
-    u'\u044f'   #  0xFF -> CYRILLIC SMALL LETTER YA
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u0402'   #  0x80 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0403'   #  0x81 -> CYRILLIC CAPITAL LETTER GJE
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0453'   #  0x83 -> CYRILLIC SMALL LETTER GJE
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u20ac'   #  0x88 -> EURO SIGN
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0409'   #  0x8A -> CYRILLIC CAPITAL LETTER LJE
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u040a'   #  0x8C -> CYRILLIC CAPITAL LETTER NJE
+    '\u040c'   #  0x8D -> CYRILLIC CAPITAL LETTER KJE
+    '\u040b'   #  0x8E -> CYRILLIC CAPITAL LETTER TSHE
+    '\u040f'   #  0x8F -> CYRILLIC CAPITAL LETTER DZHE
+    '\u0452'   #  0x90 -> CYRILLIC SMALL LETTER DJE
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0459'   #  0x9A -> CYRILLIC SMALL LETTER LJE
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u045a'   #  0x9C -> CYRILLIC SMALL LETTER NJE
+    '\u045c'   #  0x9D -> CYRILLIC SMALL LETTER KJE
+    '\u045b'   #  0x9E -> CYRILLIC SMALL LETTER TSHE
+    '\u045f'   #  0x9F -> CYRILLIC SMALL LETTER DZHE
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u040e'   #  0xA1 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0xA2 -> CYRILLIC SMALL LETTER SHORT U
+    '\u0408'   #  0xA3 -> CYRILLIC CAPITAL LETTER JE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0490'   #  0xA5 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0401'   #  0xA8 -> CYRILLIC CAPITAL LETTER IO
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0404'   #  0xAA -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u0407'   #  0xAF -> CYRILLIC CAPITAL LETTER YI
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u0406'   #  0xB2 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0456'   #  0xB3 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0491'   #  0xB4 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0451'   #  0xB8 -> CYRILLIC SMALL LETTER IO
+    '\u2116'   #  0xB9 -> NUMERO SIGN
+    '\u0454'   #  0xBA -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0458'   #  0xBC -> CYRILLIC SMALL LETTER JE
+    '\u0405'   #  0xBD -> CYRILLIC CAPITAL LETTER DZE
+    '\u0455'   #  0xBE -> CYRILLIC SMALL LETTER DZE
+    '\u0457'   #  0xBF -> CYRILLIC SMALL LETTER YI
+    '\u0410'   #  0xC0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xC1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0xC2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0xC3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0xC4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xC5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0xC6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0xC7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0xC8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xCA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xCB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xCC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xCD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xCE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xCF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0xD0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xD1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xD2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xD3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0xD4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0xD5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0xD6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0xD7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0xD9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0xDA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0xDB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0xDC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0xDD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0xDE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0xDF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0xFF -> CYRILLIC SMALL LETTER YA
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1252.py b/Lib/encodings/cp1252.py
index e60a328..c0e8088 100644
--- a/Lib/encodings/cp1252.py
+++ b/Lib/encodings/cp1252.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\u02dc'   #  0x98 -> SMALL TILDE
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
-    u'\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\u017d'   #  0x8E -> LATIN CAPITAL LETTER Z WITH CARON
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\u017e'   #  0x9E -> LATIN SMALL LETTER Z WITH CARON
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1253.py b/Lib/encodings/cp1253.py
index 49f6ccc..ec9c097 100644
--- a/Lib/encodings/cp1253.py
+++ b/Lib/encodings/cp1253.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\ufffe'   #  0x88 -> UNDEFINED
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\ufffe'   #  0x8A -> UNDEFINED
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x8C -> UNDEFINED
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\ufffe'   #  0x98 -> UNDEFINED
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x9C -> UNDEFINED
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\ufffe'   #  0x9F -> UNDEFINED
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0385'   #  0xA1 -> GREEK DIALYTIKA TONOS
-    u'\u0386'   #  0xA2 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\ufffe'   #  0xAA -> UNDEFINED
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\u2015'   #  0xAF -> HORIZONTAL BAR
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\u0384'   #  0xB4 -> GREEK TONOS
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    u'\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
-    u'\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
-    u'\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
-    u'\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
-    u'\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
-    u'\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
-    u'\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
-    u'\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
-    u'\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
-    u'\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
-    u'\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
-    u'\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
-    u'\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
-    u'\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
-    u'\ufffe'   #  0xD2 -> UNDEFINED
-    u'\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
-    u'\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
-    u'\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
-    u'\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
-    u'\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    u'\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
-    u'\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
-    u'\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
-    u'\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
-    u'\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
-    u'\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
-    u'\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
-    u'\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
-    u'\u03bd'   #  0xED -> GREEK SMALL LETTER NU
-    u'\u03be'   #  0xEE -> GREEK SMALL LETTER XI
-    u'\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
-    u'\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
-    u'\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
-    u'\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
-    u'\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
-    u'\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
-    u'\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
-    u'\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
-    u'\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
-    u'\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\ufffe'   #  0xFF -> UNDEFINED
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0385'   #  0xA1 -> GREEK DIALYTIKA TONOS
+    '\u0386'   #  0xA2 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\ufffe'   #  0xAA -> UNDEFINED
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u2015'   #  0xAF -> HORIZONTAL BAR
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u0384'   #  0xB4 -> GREEK TONOS
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
+    '\ufffe'   #  0xD2 -> UNDEFINED
+    '\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xED -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xEE -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
+    '\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
+    '\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
+    '\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\ufffe'   #  0xFF -> UNDEFINED
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1254.py b/Lib/encodings/cp1254.py
index 65530ab..4912327 100644
--- a/Lib/encodings/cp1254.py
+++ b/Lib/encodings/cp1254.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\u02dc'   #  0x98 -> SMALL TILDE
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
-    u'\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0160'   #  0x8A -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0161'   #  0x9A -> LATIN SMALL LETTER S WITH CARON
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1255.py b/Lib/encodings/cp1255.py
index fd1456f..91ce26b 100644
--- a/Lib/encodings/cp1255.py
+++ b/Lib/encodings/cp1255.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\ufffe'   #  0x8A -> UNDEFINED
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x8C -> UNDEFINED
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\u02dc'   #  0x98 -> SMALL TILDE
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x9C -> UNDEFINED
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\ufffe'   #  0x9F -> UNDEFINED
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\u20aa'   #  0xA4 -> NEW SHEQEL SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xd7'     #  0xAA -> MULTIPLICATION SIGN
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xf7'     #  0xBA -> DIVISION SIGN
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\u05b0'   #  0xC0 -> HEBREW POINT SHEVA
-    u'\u05b1'   #  0xC1 -> HEBREW POINT HATAF SEGOL
-    u'\u05b2'   #  0xC2 -> HEBREW POINT HATAF PATAH
-    u'\u05b3'   #  0xC3 -> HEBREW POINT HATAF QAMATS
-    u'\u05b4'   #  0xC4 -> HEBREW POINT HIRIQ
-    u'\u05b5'   #  0xC5 -> HEBREW POINT TSERE
-    u'\u05b6'   #  0xC6 -> HEBREW POINT SEGOL
-    u'\u05b7'   #  0xC7 -> HEBREW POINT PATAH
-    u'\u05b8'   #  0xC8 -> HEBREW POINT QAMATS
-    u'\u05b9'   #  0xC9 -> HEBREW POINT HOLAM
-    u'\ufffe'   #  0xCA -> UNDEFINED
-    u'\u05bb'   #  0xCB -> HEBREW POINT QUBUTS
-    u'\u05bc'   #  0xCC -> HEBREW POINT DAGESH OR MAPIQ
-    u'\u05bd'   #  0xCD -> HEBREW POINT METEG
-    u'\u05be'   #  0xCE -> HEBREW PUNCTUATION MAQAF
-    u'\u05bf'   #  0xCF -> HEBREW POINT RAFE
-    u'\u05c0'   #  0xD0 -> HEBREW PUNCTUATION PASEQ
-    u'\u05c1'   #  0xD1 -> HEBREW POINT SHIN DOT
-    u'\u05c2'   #  0xD2 -> HEBREW POINT SIN DOT
-    u'\u05c3'   #  0xD3 -> HEBREW PUNCTUATION SOF PASUQ
-    u'\u05f0'   #  0xD4 -> HEBREW LIGATURE YIDDISH DOUBLE VAV
-    u'\u05f1'   #  0xD5 -> HEBREW LIGATURE YIDDISH VAV YOD
-    u'\u05f2'   #  0xD6 -> HEBREW LIGATURE YIDDISH DOUBLE YOD
-    u'\u05f3'   #  0xD7 -> HEBREW PUNCTUATION GERESH
-    u'\u05f4'   #  0xD8 -> HEBREW PUNCTUATION GERSHAYIM
-    u'\ufffe'   #  0xD9 -> UNDEFINED
-    u'\ufffe'   #  0xDA -> UNDEFINED
-    u'\ufffe'   #  0xDB -> UNDEFINED
-    u'\ufffe'   #  0xDC -> UNDEFINED
-    u'\ufffe'   #  0xDD -> UNDEFINED
-    u'\ufffe'   #  0xDE -> UNDEFINED
-    u'\ufffe'   #  0xDF -> UNDEFINED
-    u'\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
-    u'\u05d1'   #  0xE1 -> HEBREW LETTER BET
-    u'\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
-    u'\u05d3'   #  0xE3 -> HEBREW LETTER DALET
-    u'\u05d4'   #  0xE4 -> HEBREW LETTER HE
-    u'\u05d5'   #  0xE5 -> HEBREW LETTER VAV
-    u'\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
-    u'\u05d7'   #  0xE7 -> HEBREW LETTER HET
-    u'\u05d8'   #  0xE8 -> HEBREW LETTER TET
-    u'\u05d9'   #  0xE9 -> HEBREW LETTER YOD
-    u'\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
-    u'\u05db'   #  0xEB -> HEBREW LETTER KAF
-    u'\u05dc'   #  0xEC -> HEBREW LETTER LAMED
-    u'\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
-    u'\u05de'   #  0xEE -> HEBREW LETTER MEM
-    u'\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
-    u'\u05e0'   #  0xF0 -> HEBREW LETTER NUN
-    u'\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
-    u'\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
-    u'\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
-    u'\u05e4'   #  0xF4 -> HEBREW LETTER PE
-    u'\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
-    u'\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
-    u'\u05e7'   #  0xF7 -> HEBREW LETTER QOF
-    u'\u05e8'   #  0xF8 -> HEBREW LETTER RESH
-    u'\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
-    u'\u05ea'   #  0xFA -> HEBREW LETTER TAV
-    u'\ufffe'   #  0xFB -> UNDEFINED
-    u'\ufffe'   #  0xFC -> UNDEFINED
-    u'\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
-    u'\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
-    u'\ufffe'   #  0xFF -> UNDEFINED
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20aa'   #  0xA4 -> NEW SHEQEL SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xd7'     #  0xAA -> MULTIPLICATION SIGN
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xf7'     #  0xBA -> DIVISION SIGN
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\u05b0'   #  0xC0 -> HEBREW POINT SHEVA
+    '\u05b1'   #  0xC1 -> HEBREW POINT HATAF SEGOL
+    '\u05b2'   #  0xC2 -> HEBREW POINT HATAF PATAH
+    '\u05b3'   #  0xC3 -> HEBREW POINT HATAF QAMATS
+    '\u05b4'   #  0xC4 -> HEBREW POINT HIRIQ
+    '\u05b5'   #  0xC5 -> HEBREW POINT TSERE
+    '\u05b6'   #  0xC6 -> HEBREW POINT SEGOL
+    '\u05b7'   #  0xC7 -> HEBREW POINT PATAH
+    '\u05b8'   #  0xC8 -> HEBREW POINT QAMATS
+    '\u05b9'   #  0xC9 -> HEBREW POINT HOLAM
+    '\ufffe'   #  0xCA -> UNDEFINED
+    '\u05bb'   #  0xCB -> HEBREW POINT QUBUTS
+    '\u05bc'   #  0xCC -> HEBREW POINT DAGESH OR MAPIQ
+    '\u05bd'   #  0xCD -> HEBREW POINT METEG
+    '\u05be'   #  0xCE -> HEBREW PUNCTUATION MAQAF
+    '\u05bf'   #  0xCF -> HEBREW POINT RAFE
+    '\u05c0'   #  0xD0 -> HEBREW PUNCTUATION PASEQ
+    '\u05c1'   #  0xD1 -> HEBREW POINT SHIN DOT
+    '\u05c2'   #  0xD2 -> HEBREW POINT SIN DOT
+    '\u05c3'   #  0xD3 -> HEBREW PUNCTUATION SOF PASUQ
+    '\u05f0'   #  0xD4 -> HEBREW LIGATURE YIDDISH DOUBLE VAV
+    '\u05f1'   #  0xD5 -> HEBREW LIGATURE YIDDISH VAV YOD
+    '\u05f2'   #  0xD6 -> HEBREW LIGATURE YIDDISH DOUBLE YOD
+    '\u05f3'   #  0xD7 -> HEBREW PUNCTUATION GERESH
+    '\u05f4'   #  0xD8 -> HEBREW PUNCTUATION GERSHAYIM
+    '\ufffe'   #  0xD9 -> UNDEFINED
+    '\ufffe'   #  0xDA -> UNDEFINED
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\ufffe'   #  0xDF -> UNDEFINED
+    '\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0xE1 -> HEBREW LETTER BET
+    '\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0xE3 -> HEBREW LETTER DALET
+    '\u05d4'   #  0xE4 -> HEBREW LETTER HE
+    '\u05d5'   #  0xE5 -> HEBREW LETTER VAV
+    '\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0xE7 -> HEBREW LETTER HET
+    '\u05d8'   #  0xE8 -> HEBREW LETTER TET
+    '\u05d9'   #  0xE9 -> HEBREW LETTER YOD
+    '\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0xEB -> HEBREW LETTER KAF
+    '\u05dc'   #  0xEC -> HEBREW LETTER LAMED
+    '\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0xEE -> HEBREW LETTER MEM
+    '\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0xF0 -> HEBREW LETTER NUN
+    '\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0xF4 -> HEBREW LETTER PE
+    '\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0xF7 -> HEBREW LETTER QOF
+    '\u05e8'   #  0xF8 -> HEBREW LETTER RESH
+    '\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0xFA -> HEBREW LETTER TAV
+    '\ufffe'   #  0xFB -> UNDEFINED
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\ufffe'   #  0xFF -> UNDEFINED
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1256.py b/Lib/encodings/cp1256.py
index 302b5fa..fd6afab 100644
--- a/Lib/encodings/cp1256.py
+++ b/Lib/encodings/cp1256.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\u067e'   #  0x81 -> ARABIC LETTER PEH
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\u0679'   #  0x8A -> ARABIC LETTER TTEH
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
-    u'\u0686'   #  0x8D -> ARABIC LETTER TCHEH
-    u'\u0698'   #  0x8E -> ARABIC LETTER JEH
-    u'\u0688'   #  0x8F -> ARABIC LETTER DDAL
-    u'\u06af'   #  0x90 -> ARABIC LETTER GAF
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\u06a9'   #  0x98 -> ARABIC LETTER KEHEH
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\u0691'   #  0x9A -> ARABIC LETTER RREH
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
-    u'\u200c'   #  0x9D -> ZERO WIDTH NON-JOINER
-    u'\u200d'   #  0x9E -> ZERO WIDTH JOINER
-    u'\u06ba'   #  0x9F -> ARABIC LETTER NOON GHUNNA
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u060c'   #  0xA1 -> ARABIC COMMA
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u06be'   #  0xAA -> ARABIC LETTER HEH DOACHASHMEE
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\u061b'   #  0xBA -> ARABIC SEMICOLON
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\u061f'   #  0xBF -> ARABIC QUESTION MARK
-    u'\u06c1'   #  0xC0 -> ARABIC LETTER HEH GOAL
-    u'\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
-    u'\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
-    u'\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
-    u'\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
-    u'\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
-    u'\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
-    u'\u0627'   #  0xC7 -> ARABIC LETTER ALEF
-    u'\u0628'   #  0xC8 -> ARABIC LETTER BEH
-    u'\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
-    u'\u062a'   #  0xCA -> ARABIC LETTER TEH
-    u'\u062b'   #  0xCB -> ARABIC LETTER THEH
-    u'\u062c'   #  0xCC -> ARABIC LETTER JEEM
-    u'\u062d'   #  0xCD -> ARABIC LETTER HAH
-    u'\u062e'   #  0xCE -> ARABIC LETTER KHAH
-    u'\u062f'   #  0xCF -> ARABIC LETTER DAL
-    u'\u0630'   #  0xD0 -> ARABIC LETTER THAL
-    u'\u0631'   #  0xD1 -> ARABIC LETTER REH
-    u'\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
-    u'\u0633'   #  0xD3 -> ARABIC LETTER SEEN
-    u'\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
-    u'\u0635'   #  0xD5 -> ARABIC LETTER SAD
-    u'\u0636'   #  0xD6 -> ARABIC LETTER DAD
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u0637'   #  0xD8 -> ARABIC LETTER TAH
-    u'\u0638'   #  0xD9 -> ARABIC LETTER ZAH
-    u'\u0639'   #  0xDA -> ARABIC LETTER AIN
-    u'\u063a'   #  0xDB -> ARABIC LETTER GHAIN
-    u'\u0640'   #  0xDC -> ARABIC TATWEEL
-    u'\u0641'   #  0xDD -> ARABIC LETTER FEH
-    u'\u0642'   #  0xDE -> ARABIC LETTER QAF
-    u'\u0643'   #  0xDF -> ARABIC LETTER KAF
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\u0644'   #  0xE1 -> ARABIC LETTER LAM
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\u0645'   #  0xE3 -> ARABIC LETTER MEEM
-    u'\u0646'   #  0xE4 -> ARABIC LETTER NOON
-    u'\u0647'   #  0xE5 -> ARABIC LETTER HEH
-    u'\u0648'   #  0xE6 -> ARABIC LETTER WAW
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u0649'   #  0xEC -> ARABIC LETTER ALEF MAKSURA
-    u'\u064a'   #  0xED -> ARABIC LETTER YEH
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u064b'   #  0xF0 -> ARABIC FATHATAN
-    u'\u064c'   #  0xF1 -> ARABIC DAMMATAN
-    u'\u064d'   #  0xF2 -> ARABIC KASRATAN
-    u'\u064e'   #  0xF3 -> ARABIC FATHA
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u064f'   #  0xF5 -> ARABIC DAMMA
-    u'\u0650'   #  0xF6 -> ARABIC KASRA
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u0651'   #  0xF8 -> ARABIC SHADDA
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\u0652'   #  0xFA -> ARABIC SUKUN
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
-    u'\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
-    u'\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\u067e'   #  0x81 -> ARABIC LETTER PEH
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\u0679'   #  0x8A -> ARABIC LETTER TTEH
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\u0686'   #  0x8D -> ARABIC LETTER TCHEH
+    '\u0698'   #  0x8E -> ARABIC LETTER JEH
+    '\u0688'   #  0x8F -> ARABIC LETTER DDAL
+    '\u06af'   #  0x90 -> ARABIC LETTER GAF
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u06a9'   #  0x98 -> ARABIC LETTER KEHEH
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\u0691'   #  0x9A -> ARABIC LETTER RREH
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\u200c'   #  0x9D -> ZERO WIDTH NON-JOINER
+    '\u200d'   #  0x9E -> ZERO WIDTH JOINER
+    '\u06ba'   #  0x9F -> ARABIC LETTER NOON GHUNNA
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u060c'   #  0xA1 -> ARABIC COMMA
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u06be'   #  0xAA -> ARABIC LETTER HEH DOACHASHMEE
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u061b'   #  0xBA -> ARABIC SEMICOLON
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\u06c1'   #  0xC0 -> ARABIC LETTER HEH GOAL
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0637'   #  0xD8 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD9 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xDA -> ARABIC LETTER AIN
+    '\u063a'   #  0xDB -> ARABIC LETTER GHAIN
+    '\u0640'   #  0xDC -> ARABIC TATWEEL
+    '\u0641'   #  0xDD -> ARABIC LETTER FEH
+    '\u0642'   #  0xDE -> ARABIC LETTER QAF
+    '\u0643'   #  0xDF -> ARABIC LETTER KAF
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\u0644'   #  0xE1 -> ARABIC LETTER LAM
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0645'   #  0xE3 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE4 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE5 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE6 -> ARABIC LETTER WAW
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0649'   #  0xEC -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xED -> ARABIC LETTER YEH
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u064b'   #  0xF0 -> ARABIC FATHATAN
+    '\u064c'   #  0xF1 -> ARABIC DAMMATAN
+    '\u064d'   #  0xF2 -> ARABIC KASRATAN
+    '\u064e'   #  0xF3 -> ARABIC FATHA
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u064f'   #  0xF5 -> ARABIC DAMMA
+    '\u0650'   #  0xF6 -> ARABIC KASRA
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0651'   #  0xF8 -> ARABIC SHADDA
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\u0652'   #  0xFA -> ARABIC SUKUN
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1257.py b/Lib/encodings/cp1257.py
index 53a6b29..9ebc90d 100644
--- a/Lib/encodings/cp1257.py
+++ b/Lib/encodings/cp1257.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\ufffe'   #  0x83 -> UNDEFINED
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\ufffe'   #  0x88 -> UNDEFINED
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\ufffe'   #  0x8A -> UNDEFINED
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x8C -> UNDEFINED
-    u'\xa8'     #  0x8D -> DIAERESIS
-    u'\u02c7'   #  0x8E -> CARON
-    u'\xb8'     #  0x8F -> CEDILLA
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\ufffe'   #  0x98 -> UNDEFINED
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x9C -> UNDEFINED
-    u'\xaf'     #  0x9D -> MACRON
-    u'\u02db'   #  0x9E -> OGONEK
-    u'\ufffe'   #  0x9F -> UNDEFINED
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\ufffe'   #  0xA1 -> UNDEFINED
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\ufffe'   #  0xA5 -> UNDEFINED
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xe6'     #  0xBF -> LATIN SMALL LETTER AE
-    u'\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
-    u'\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
-    u'\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
-    u'\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
-    u'\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
-    u'\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
-    u'\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
-    u'\u02d9'   #  0xFF -> DOT ABOVE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\xa8'     #  0x8D -> DIAERESIS
+    '\u02c7'   #  0x8E -> CARON
+    '\xb8'     #  0x8F -> CEDILLA
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\xaf'     #  0x9D -> MACRON
+    '\u02db'   #  0x9E -> OGONEK
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'   #  0xA1 -> UNDEFINED
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'   #  0xA5 -> UNDEFINED
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xe6'     #  0xBF -> LATIN SMALL LETTER AE
+    '\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
+    '\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
+    '\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
+    '\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
+    '\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
+    '\u02d9'   #  0xFF -> DOT ABOVE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp1258.py b/Lib/encodings/cp1258.py
index 4b25d8e..784378a 100644
--- a/Lib/encodings/cp1258.py
+++ b/Lib/encodings/cp1258.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\u2020'   #  0x86 -> DAGGER
-    u'\u2021'   #  0x87 -> DOUBLE DAGGER
-    u'\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u2030'   #  0x89 -> PER MILLE SIGN
-    u'\ufffe'   #  0x8A -> UNDEFINED
-    u'\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\u02dc'   #  0x98 -> SMALL TILDE
-    u'\u2122'   #  0x99 -> TRADE MARK SIGN
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u0300'   #  0xCC -> COMBINING GRAVE ACCENT
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\u0309'   #  0xD2 -> COMBINING HOOK ABOVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u01a0'   #  0xD5 -> LATIN CAPITAL LETTER O WITH HORN
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u01af'   #  0xDD -> LATIN CAPITAL LETTER U WITH HORN
-    u'\u0303'   #  0xDE -> COMBINING TILDE
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u0301'   #  0xEC -> COMBINING ACUTE ACCENT
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\u0323'   #  0xF2 -> COMBINING DOT BELOW
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u01a1'   #  0xF5 -> LATIN SMALL LETTER O WITH HORN
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u01b0'   #  0xFD -> LATIN SMALL LETTER U WITH HORN
-    u'\u20ab'   #  0xFE -> DONG SIGN
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\u201a'   #  0x82 -> SINGLE LOW-9 QUOTATION MARK
+    '\u0192'   #  0x83 -> LATIN SMALL LETTER F WITH HOOK
+    '\u201e'   #  0x84 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\u2020'   #  0x86 -> DAGGER
+    '\u2021'   #  0x87 -> DOUBLE DAGGER
+    '\u02c6'   #  0x88 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u2030'   #  0x89 -> PER MILLE SIGN
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\u2039'   #  0x8B -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u0152'   #  0x8C -> LATIN CAPITAL LIGATURE OE
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\u02dc'   #  0x98 -> SMALL TILDE
+    '\u2122'   #  0x99 -> TRADE MARK SIGN
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\u203a'   #  0x9B -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0153'   #  0x9C -> LATIN SMALL LIGATURE OE
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\u0178'   #  0x9F -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0300'   #  0xCC -> COMBINING GRAVE ACCENT
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u0309'   #  0xD2 -> COMBINING HOOK ABOVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u01a0'   #  0xD5 -> LATIN CAPITAL LETTER O WITH HORN
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u01af'   #  0xDD -> LATIN CAPITAL LETTER U WITH HORN
+    '\u0303'   #  0xDE -> COMBINING TILDE
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0301'   #  0xEC -> COMBINING ACUTE ACCENT
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\u0323'   #  0xF2 -> COMBINING DOT BELOW
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u01a1'   #  0xF5 -> LATIN SMALL LETTER O WITH HORN
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u01b0'   #  0xFD -> LATIN SMALL LETTER U WITH HORN
+    '\u20ab'   #  0xFE -> DONG SIGN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp424.py b/Lib/encodings/cp424.py
index d3ade22..6753daf 100644
--- a/Lib/encodings/cp424.py
+++ b/Lib/encodings/cp424.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> SELECT
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> REQUIRED NEW LINE
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> GRAPHIC ESCAPE
-    u'\x8d'     #  0x09 -> SUPERSCRIPT
-    u'\x8e'     #  0x0A -> REPEAT
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> RESTORE/ENABLE PRESENTATION
-    u'\x85'     #  0x15 -> NEW LINE
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> PROGRAM OPERATOR COMMUNICATION
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> UNIT BACK SPACE
-    u'\x8f'     #  0x1B -> CUSTOMER USE ONE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> DIGIT SELECT
-    u'\x81'     #  0x21 -> START OF SIGNIFICANCE
-    u'\x82'     #  0x22 -> FIELD SEPARATOR
-    u'\x83'     #  0x23 -> WORD UNDERSCORE
-    u'\x84'     #  0x24 -> BYPASS OR INHIBIT PRESENTATION
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> SET ATTRIBUTE
-    u'\x89'     #  0x29 -> START FIELD EXTENDED
-    u'\x8a'     #  0x2A -> SET MODE OR SWITCH
-    u'\x8b'     #  0x2B -> CONTROL SEQUENCE PREFIX
-    u'\x8c'     #  0x2C -> MODIFY FIELD ATTRIBUTE
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> <reserved>
-    u'\x91'     #  0x31 -> <reserved>
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> INDEX RETURN
-    u'\x94'     #  0x34 -> PRESENTATION POSITION
-    u'\x95'     #  0x35 -> TRANSPARENT
-    u'\x96'     #  0x36 -> NUMERIC BACKSPACE
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> SUBSCRIPT
-    u'\x99'     #  0x39 -> INDENT TABULATION
-    u'\x9a'     #  0x3A -> REVERSE FORM FEED
-    u'\x9b'     #  0x3B -> CUSTOMER USE THREE
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> <reserved>
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\u05d0'   #  0x41 -> HEBREW LETTER ALEF
-    u'\u05d1'   #  0x42 -> HEBREW LETTER BET
-    u'\u05d2'   #  0x43 -> HEBREW LETTER GIMEL
-    u'\u05d3'   #  0x44 -> HEBREW LETTER DALET
-    u'\u05d4'   #  0x45 -> HEBREW LETTER HE
-    u'\u05d5'   #  0x46 -> HEBREW LETTER VAV
-    u'\u05d6'   #  0x47 -> HEBREW LETTER ZAYIN
-    u'\u05d7'   #  0x48 -> HEBREW LETTER HET
-    u'\u05d8'   #  0x49 -> HEBREW LETTER TET
-    u'\xa2'     #  0x4A -> CENT SIGN
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'|'        #  0x4F -> VERTICAL LINE
-    u'&'        #  0x50 -> AMPERSAND
-    u'\u05d9'   #  0x51 -> HEBREW LETTER YOD
-    u'\u05da'   #  0x52 -> HEBREW LETTER FINAL KAF
-    u'\u05db'   #  0x53 -> HEBREW LETTER KAF
-    u'\u05dc'   #  0x54 -> HEBREW LETTER LAMED
-    u'\u05dd'   #  0x55 -> HEBREW LETTER FINAL MEM
-    u'\u05de'   #  0x56 -> HEBREW LETTER MEM
-    u'\u05df'   #  0x57 -> HEBREW LETTER FINAL NUN
-    u'\u05e0'   #  0x58 -> HEBREW LETTER NUN
-    u'\u05e1'   #  0x59 -> HEBREW LETTER SAMEKH
-    u'!'        #  0x5A -> EXCLAMATION MARK
-    u'$'        #  0x5B -> DOLLAR SIGN
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'\xac'     #  0x5F -> NOT SIGN
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\u05e2'   #  0x62 -> HEBREW LETTER AYIN
-    u'\u05e3'   #  0x63 -> HEBREW LETTER FINAL PE
-    u'\u05e4'   #  0x64 -> HEBREW LETTER PE
-    u'\u05e5'   #  0x65 -> HEBREW LETTER FINAL TSADI
-    u'\u05e6'   #  0x66 -> HEBREW LETTER TSADI
-    u'\u05e7'   #  0x67 -> HEBREW LETTER QOF
-    u'\u05e8'   #  0x68 -> HEBREW LETTER RESH
-    u'\u05e9'   #  0x69 -> HEBREW LETTER SHIN
-    u'\xa6'     #  0x6A -> BROKEN BAR
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\ufffe'   #  0x70 -> UNDEFINED
-    u'\u05ea'   #  0x71 -> HEBREW LETTER TAV
-    u'\ufffe'   #  0x72 -> UNDEFINED
-    u'\ufffe'   #  0x73 -> UNDEFINED
-    u'\xa0'     #  0x74 -> NO-BREAK SPACE
-    u'\ufffe'   #  0x75 -> UNDEFINED
-    u'\ufffe'   #  0x76 -> UNDEFINED
-    u'\ufffe'   #  0x77 -> UNDEFINED
-    u'\u2017'   #  0x78 -> DOUBLE LOW LINE
-    u'`'        #  0x79 -> GRAVE ACCENT
-    u':'        #  0x7A -> COLON
-    u'#'        #  0x7B -> NUMBER SIGN
-    u'@'        #  0x7C -> COMMERCIAL AT
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'"'        #  0x7F -> QUOTATION MARK
-    u'\ufffe'   #  0x80 -> UNDEFINED
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\ufffe'   #  0x8C -> UNDEFINED
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\xb1'     #  0x8F -> PLUS-MINUS SIGN
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\ufffe'   #  0x9B -> UNDEFINED
-    u'\ufffe'   #  0x9C -> UNDEFINED
-    u'\xb8'     #  0x9D -> CEDILLA
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\xa4'     #  0x9F -> CURRENCY SIGN
-    u'\xb5'     #  0xA0 -> MICRO SIGN
-    u'~'        #  0xA1 -> TILDE
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\ufffe'   #  0xAA -> UNDEFINED
-    u'\ufffe'   #  0xAB -> UNDEFINED
-    u'\ufffe'   #  0xAC -> UNDEFINED
-    u'\ufffe'   #  0xAD -> UNDEFINED
-    u'\ufffe'   #  0xAE -> UNDEFINED
-    u'\xae'     #  0xAF -> REGISTERED SIGN
-    u'^'        #  0xB0 -> CIRCUMFLEX ACCENT
-    u'\xa3'     #  0xB1 -> POUND SIGN
-    u'\xa5'     #  0xB2 -> YEN SIGN
-    u'\xb7'     #  0xB3 -> MIDDLE DOT
-    u'\xa9'     #  0xB4 -> COPYRIGHT SIGN
-    u'\xa7'     #  0xB5 -> SECTION SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
-    u'['        #  0xBA -> LEFT SQUARE BRACKET
-    u']'        #  0xBB -> RIGHT SQUARE BRACKET
-    u'\xaf'     #  0xBC -> MACRON
-    u'\xa8'     #  0xBD -> DIAERESIS
-    u'\xb4'     #  0xBE -> ACUTE ACCENT
-    u'\xd7'     #  0xBF -> MULTIPLICATION SIGN
-    u'{'        #  0xC0 -> LEFT CURLY BRACKET
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\ufffe'   #  0xCB -> UNDEFINED
-    u'\ufffe'   #  0xCC -> UNDEFINED
-    u'\ufffe'   #  0xCD -> UNDEFINED
-    u'\ufffe'   #  0xCE -> UNDEFINED
-    u'\ufffe'   #  0xCF -> UNDEFINED
-    u'}'        #  0xD0 -> RIGHT CURLY BRACKET
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb9'     #  0xDA -> SUPERSCRIPT ONE
-    u'\ufffe'   #  0xDB -> UNDEFINED
-    u'\ufffe'   #  0xDC -> UNDEFINED
-    u'\ufffe'   #  0xDD -> UNDEFINED
-    u'\ufffe'   #  0xDE -> UNDEFINED
-    u'\ufffe'   #  0xDF -> UNDEFINED
-    u'\\'       #  0xE0 -> REVERSE SOLIDUS
-    u'\xf7'     #  0xE1 -> DIVISION SIGN
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\ufffe'   #  0xEB -> UNDEFINED
-    u'\ufffe'   #  0xEC -> UNDEFINED
-    u'\ufffe'   #  0xED -> UNDEFINED
-    u'\ufffe'   #  0xEE -> UNDEFINED
-    u'\ufffe'   #  0xEF -> UNDEFINED
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\ufffe'   #  0xFB -> UNDEFINED
-    u'\ufffe'   #  0xFC -> UNDEFINED
-    u'\ufffe'   #  0xFD -> UNDEFINED
-    u'\ufffe'   #  0xFE -> UNDEFINED
-    u'\x9f'     #  0xFF -> EIGHT ONES
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> SELECT
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> REQUIRED NEW LINE
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> GRAPHIC ESCAPE
+    '\x8d'     #  0x09 -> SUPERSCRIPT
+    '\x8e'     #  0x0A -> REPEAT
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> RESTORE/ENABLE PRESENTATION
+    '\x85'     #  0x15 -> NEW LINE
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> PROGRAM OPERATOR COMMUNICATION
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> UNIT BACK SPACE
+    '\x8f'     #  0x1B -> CUSTOMER USE ONE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> DIGIT SELECT
+    '\x81'     #  0x21 -> START OF SIGNIFICANCE
+    '\x82'     #  0x22 -> FIELD SEPARATOR
+    '\x83'     #  0x23 -> WORD UNDERSCORE
+    '\x84'     #  0x24 -> BYPASS OR INHIBIT PRESENTATION
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> SET ATTRIBUTE
+    '\x89'     #  0x29 -> START FIELD EXTENDED
+    '\x8a'     #  0x2A -> SET MODE OR SWITCH
+    '\x8b'     #  0x2B -> CONTROL SEQUENCE PREFIX
+    '\x8c'     #  0x2C -> MODIFY FIELD ATTRIBUTE
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> <reserved>
+    '\x91'     #  0x31 -> <reserved>
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> INDEX RETURN
+    '\x94'     #  0x34 -> PRESENTATION POSITION
+    '\x95'     #  0x35 -> TRANSPARENT
+    '\x96'     #  0x36 -> NUMERIC BACKSPACE
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> SUBSCRIPT
+    '\x99'     #  0x39 -> INDENT TABULATION
+    '\x9a'     #  0x3A -> REVERSE FORM FEED
+    '\x9b'     #  0x3B -> CUSTOMER USE THREE
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> <reserved>
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\u05d0'   #  0x41 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x42 -> HEBREW LETTER BET
+    '\u05d2'   #  0x43 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x44 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x45 -> HEBREW LETTER HE
+    '\u05d5'   #  0x46 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x47 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x48 -> HEBREW LETTER HET
+    '\u05d8'   #  0x49 -> HEBREW LETTER TET
+    '\xa2'     #  0x4A -> CENT SIGN
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '|'        #  0x4F -> VERTICAL LINE
+    '&'        #  0x50 -> AMPERSAND
+    '\u05d9'   #  0x51 -> HEBREW LETTER YOD
+    '\u05da'   #  0x52 -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x53 -> HEBREW LETTER KAF
+    '\u05dc'   #  0x54 -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x55 -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x56 -> HEBREW LETTER MEM
+    '\u05df'   #  0x57 -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x58 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x59 -> HEBREW LETTER SAMEKH
+    '!'        #  0x5A -> EXCLAMATION MARK
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '\xac'     #  0x5F -> NOT SIGN
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\u05e2'   #  0x62 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x63 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x64 -> HEBREW LETTER PE
+    '\u05e5'   #  0x65 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x66 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x67 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x68 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x69 -> HEBREW LETTER SHIN
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\ufffe'   #  0x70 -> UNDEFINED
+    '\u05ea'   #  0x71 -> HEBREW LETTER TAV
+    '\ufffe'   #  0x72 -> UNDEFINED
+    '\ufffe'   #  0x73 -> UNDEFINED
+    '\xa0'     #  0x74 -> NO-BREAK SPACE
+    '\ufffe'   #  0x75 -> UNDEFINED
+    '\ufffe'   #  0x76 -> UNDEFINED
+    '\ufffe'   #  0x77 -> UNDEFINED
+    '\u2017'   #  0x78 -> DOUBLE LOW LINE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\ufffe'   #  0x80 -> UNDEFINED
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\xb8'     #  0x9D -> CEDILLA
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\ufffe'   #  0xAA -> UNDEFINED
+    '\ufffe'   #  0xAB -> UNDEFINED
+    '\ufffe'   #  0xAC -> UNDEFINED
+    '\ufffe'   #  0xAD -> UNDEFINED
+    '\ufffe'   #  0xAE -> UNDEFINED
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '^'        #  0xB0 -> CIRCUMFLEX ACCENT
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '['        #  0xBA -> LEFT SQUARE BRACKET
+    ']'        #  0xBB -> RIGHT SQUARE BRACKET
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\ufffe'   #  0xCB -> UNDEFINED
+    '\ufffe'   #  0xCC -> UNDEFINED
+    '\ufffe'   #  0xCD -> UNDEFINED
+    '\ufffe'   #  0xCE -> UNDEFINED
+    '\ufffe'   #  0xCF -> UNDEFINED
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\ufffe'   #  0xDF -> UNDEFINED
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\ufffe'   #  0xEB -> UNDEFINED
+    '\ufffe'   #  0xEC -> UNDEFINED
+    '\ufffe'   #  0xED -> UNDEFINED
+    '\ufffe'   #  0xEE -> UNDEFINED
+    '\ufffe'   #  0xEF -> UNDEFINED
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\ufffe'   #  0xFB -> UNDEFINED
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\ufffe'   #  0xFD -> UNDEFINED
+    '\ufffe'   #  0xFE -> UNDEFINED
+    '\x9f'     #  0xFF -> EIGHT ONES
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp437.py b/Lib/encodings/cp437.py
index 52cd882..b6c75e2 100644
--- a/Lib/encodings/cp437.py
+++ b/Lib/encodings/cp437.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xa2'     #  0x009b -> CENT SIGN
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xa5'     #  0x009d -> YEN SIGN
-    u'\u20a7'   #  0x009e -> PESETA SIGN
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\u2310'   #  0x00a9 -> REVERSED NOT SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xa5'     #  0x009d -> YEN SIGN
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp500.py b/Lib/encodings/cp500.py
index 60766c0..5f61535 100644
--- a/Lib/encodings/cp500.py
+++ b/Lib/encodings/cp500.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> CONTROL
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> CONTROL
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> CONTROL
-    u'\x8d'     #  0x09 -> CONTROL
-    u'\x8e'     #  0x0A -> CONTROL
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> CONTROL
-    u'\x85'     #  0x15 -> CONTROL
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> CONTROL
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> CONTROL
-    u'\x8f'     #  0x1B -> CONTROL
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> CONTROL
-    u'\x81'     #  0x21 -> CONTROL
-    u'\x82'     #  0x22 -> CONTROL
-    u'\x83'     #  0x23 -> CONTROL
-    u'\x84'     #  0x24 -> CONTROL
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> CONTROL
-    u'\x89'     #  0x29 -> CONTROL
-    u'\x8a'     #  0x2A -> CONTROL
-    u'\x8b'     #  0x2B -> CONTROL
-    u'\x8c'     #  0x2C -> CONTROL
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> CONTROL
-    u'\x91'     #  0x31 -> CONTROL
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> CONTROL
-    u'\x94'     #  0x34 -> CONTROL
-    u'\x95'     #  0x35 -> CONTROL
-    u'\x96'     #  0x36 -> CONTROL
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> CONTROL
-    u'\x99'     #  0x39 -> CONTROL
-    u'\x9a'     #  0x3A -> CONTROL
-    u'\x9b'     #  0x3B -> CONTROL
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> CONTROL
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\xa0'     #  0x41 -> NO-BREAK SPACE
-    u'\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
-    u'['        #  0x4A -> LEFT SQUARE BRACKET
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'!'        #  0x4F -> EXCLAMATION MARK
-    u'&'        #  0x50 -> AMPERSAND
-    u'\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u']'        #  0x5A -> RIGHT SQUARE BRACKET
-    u'$'        #  0x5B -> DOLLAR SIGN
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'^'        #  0x5F -> CIRCUMFLEX ACCENT
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xa6'     #  0x6A -> BROKEN BAR
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'`'        #  0x79 -> GRAVE ACCENT
-    u':'        #  0x7A -> COLON
-    u'#'        #  0x7B -> NUMBER SIGN
-    u'@'        #  0x7C -> COMMERCIAL AT
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'"'        #  0x7F -> QUOTATION MARK
-    u'\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
-    u'\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
-    u'\xb1'     #  0x8F -> PLUS-MINUS SIGN
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
-    u'\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
-    u'\xb8'     #  0x9D -> CEDILLA
-    u'\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
-    u'\xa4'     #  0x9F -> CURRENCY SIGN
-    u'\xb5'     #  0xA0 -> MICRO SIGN
-    u'~'        #  0xA1 -> TILDE
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
-    u'\xbf'     #  0xAB -> INVERTED QUESTION MARK
-    u'\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
-    u'\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
-    u'\xae'     #  0xAF -> REGISTERED SIGN
-    u'\xa2'     #  0xB0 -> CENT SIGN
-    u'\xa3'     #  0xB1 -> POUND SIGN
-    u'\xa5'     #  0xB2 -> YEN SIGN
-    u'\xb7'     #  0xB3 -> MIDDLE DOT
-    u'\xa9'     #  0xB4 -> COPYRIGHT SIGN
-    u'\xa7'     #  0xB5 -> SECTION SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
-    u'\xac'     #  0xBA -> NOT SIGN
-    u'|'        #  0xBB -> VERTICAL LINE
-    u'\xaf'     #  0xBC -> MACRON
-    u'\xa8'     #  0xBD -> DIAERESIS
-    u'\xb4'     #  0xBE -> ACUTE ACCENT
-    u'\xd7'     #  0xBF -> MULTIPLICATION SIGN
-    u'{'        #  0xC0 -> LEFT CURLY BRACKET
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
-    u'}'        #  0xD0 -> RIGHT CURLY BRACKET
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb9'     #  0xDA -> SUPERSCRIPT ONE
-    u'\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\\'       #  0xE0 -> REVERSE SOLIDUS
-    u'\xf7'     #  0xE1 -> DIVISION SIGN
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\x9f'     #  0xFF -> CONTROL
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\xa0'     #  0x41 -> NO-BREAK SPACE
+    '\xe2'     #  0x42 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x43 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x44 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0x45 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe3'     #  0x46 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x47 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x48 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xf1'     #  0x49 -> LATIN SMALL LETTER N WITH TILDE
+    '['        #  0x4A -> LEFT SQUARE BRACKET
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\xe9'     #  0x51 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0x52 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x53 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x54 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xed'     #  0x55 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0x56 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x57 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xec'     #  0x58 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xdf'     #  0x59 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    ']'        #  0x5A -> RIGHT SQUARE BRACKET
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\xc2'     #  0x62 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc4'     #  0x63 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc0'     #  0x64 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0x65 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc3'     #  0x66 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc5'     #  0x67 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x68 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xd1'     #  0x69 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xa6'     #  0x6A -> BROKEN BAR
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xf8'     #  0x70 -> LATIN SMALL LETTER O WITH STROKE
+    '\xc9'     #  0x71 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0x72 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x73 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x74 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0x75 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x76 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x77 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0x78 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\xd8'     #  0x80 -> LATIN CAPITAL LETTER O WITH STROKE
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\xab'     #  0x8A -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x8B -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xf0'     #  0x8C -> LATIN SMALL LETTER ETH (ICELANDIC)
+    '\xfd'     #  0x8D -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0x8E -> LATIN SMALL LETTER THORN (ICELANDIC)
+    '\xb1'     #  0x8F -> PLUS-MINUS SIGN
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\xaa'     #  0x9A -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x9B -> MASCULINE ORDINAL INDICATOR
+    '\xe6'     #  0x9C -> LATIN SMALL LIGATURE AE
+    '\xb8'     #  0x9D -> CEDILLA
+    '\xc6'     #  0x9E -> LATIN CAPITAL LIGATURE AE
+    '\xa4'     #  0x9F -> CURRENCY SIGN
+    '\xb5'     #  0xA0 -> MICRO SIGN
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\xa1'     #  0xAA -> INVERTED EXCLAMATION MARK
+    '\xbf'     #  0xAB -> INVERTED QUESTION MARK
+    '\xd0'     #  0xAC -> LATIN CAPITAL LETTER ETH (ICELANDIC)
+    '\xdd'     #  0xAD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xAE -> LATIN CAPITAL LETTER THORN (ICELANDIC)
+    '\xae'     #  0xAF -> REGISTERED SIGN
+    '\xa2'     #  0xB0 -> CENT SIGN
+    '\xa3'     #  0xB1 -> POUND SIGN
+    '\xa5'     #  0xB2 -> YEN SIGN
+    '\xb7'     #  0xB3 -> MIDDLE DOT
+    '\xa9'     #  0xB4 -> COPYRIGHT SIGN
+    '\xa7'     #  0xB5 -> SECTION SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xbc'     #  0xB7 -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xB8 -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xB9 -> VULGAR FRACTION THREE QUARTERS
+    '\xac'     #  0xBA -> NOT SIGN
+    '|'        #  0xBB -> VERTICAL LINE
+    '\xaf'     #  0xBC -> MACRON
+    '\xa8'     #  0xBD -> DIAERESIS
+    '\xb4'     #  0xBE -> ACUTE ACCENT
+    '\xd7'     #  0xBF -> MULTIPLICATION SIGN
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\xf4'     #  0xCB -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0xCC -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0xCD -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xCE -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf5'     #  0xCF -> LATIN SMALL LETTER O WITH TILDE
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb9'     #  0xDA -> SUPERSCRIPT ONE
+    '\xfb'     #  0xDB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xDC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xf9'     #  0xDD -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xDE -> LATIN SMALL LETTER U WITH ACUTE
+    '\xff'     #  0xDF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\xf7'     #  0xE1 -> DIVISION SIGN
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xd4'     #  0xEB -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd6'     #  0xEC -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd2'     #  0xED -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd5'     #  0xEF -> LATIN CAPITAL LETTER O WITH TILDE
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xdb'     #  0xFB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xFC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xd9'     #  0xFD -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xFE -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\x9f'     #  0xFF -> CONTROL
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp737.py b/Lib/encodings/cp737.py
index d654448..9685bae 100644
--- a/Lib/encodings/cp737.py
+++ b/Lib/encodings/cp737.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\u0391'   #  0x0080 -> GREEK CAPITAL LETTER ALPHA
-    u'\u0392'   #  0x0081 -> GREEK CAPITAL LETTER BETA
-    u'\u0393'   #  0x0082 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0x0083 -> GREEK CAPITAL LETTER DELTA
-    u'\u0395'   #  0x0084 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0x0085 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0x0086 -> GREEK CAPITAL LETTER ETA
-    u'\u0398'   #  0x0087 -> GREEK CAPITAL LETTER THETA
-    u'\u0399'   #  0x0088 -> GREEK CAPITAL LETTER IOTA
-    u'\u039a'   #  0x0089 -> GREEK CAPITAL LETTER KAPPA
-    u'\u039b'   #  0x008a -> GREEK CAPITAL LETTER LAMDA
-    u'\u039c'   #  0x008b -> GREEK CAPITAL LETTER MU
-    u'\u039d'   #  0x008c -> GREEK CAPITAL LETTER NU
-    u'\u039e'   #  0x008d -> GREEK CAPITAL LETTER XI
-    u'\u039f'   #  0x008e -> GREEK CAPITAL LETTER OMICRON
-    u'\u03a0'   #  0x008f -> GREEK CAPITAL LETTER PI
-    u'\u03a1'   #  0x0090 -> GREEK CAPITAL LETTER RHO
-    u'\u03a3'   #  0x0091 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03a4'   #  0x0092 -> GREEK CAPITAL LETTER TAU
-    u'\u03a5'   #  0x0093 -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a6'   #  0x0094 -> GREEK CAPITAL LETTER PHI
-    u'\u03a7'   #  0x0095 -> GREEK CAPITAL LETTER CHI
-    u'\u03a8'   #  0x0096 -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0x0097 -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b1'   #  0x0098 -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0x0099 -> GREEK SMALL LETTER BETA
-    u'\u03b3'   #  0x009a -> GREEK SMALL LETTER GAMMA
-    u'\u03b4'   #  0x009b -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0x009c -> GREEK SMALL LETTER EPSILON
-    u'\u03b6'   #  0x009d -> GREEK SMALL LETTER ZETA
-    u'\u03b7'   #  0x009e -> GREEK SMALL LETTER ETA
-    u'\u03b8'   #  0x009f -> GREEK SMALL LETTER THETA
-    u'\u03b9'   #  0x00a0 -> GREEK SMALL LETTER IOTA
-    u'\u03ba'   #  0x00a1 -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0x00a2 -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0x00a3 -> GREEK SMALL LETTER MU
-    u'\u03bd'   #  0x00a4 -> GREEK SMALL LETTER NU
-    u'\u03be'   #  0x00a5 -> GREEK SMALL LETTER XI
-    u'\u03bf'   #  0x00a6 -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0x00a7 -> GREEK SMALL LETTER PI
-    u'\u03c1'   #  0x00a8 -> GREEK SMALL LETTER RHO
-    u'\u03c3'   #  0x00a9 -> GREEK SMALL LETTER SIGMA
-    u'\u03c2'   #  0x00aa -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c4'   #  0x00ab -> GREEK SMALL LETTER TAU
-    u'\u03c5'   #  0x00ac -> GREEK SMALL LETTER UPSILON
-    u'\u03c6'   #  0x00ad -> GREEK SMALL LETTER PHI
-    u'\u03c7'   #  0x00ae -> GREEK SMALL LETTER CHI
-    u'\u03c8'   #  0x00af -> GREEK SMALL LETTER PSI
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03c9'   #  0x00e0 -> GREEK SMALL LETTER OMEGA
-    u'\u03ac'   #  0x00e1 -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\u03ad'   #  0x00e2 -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0x00e3 -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03ca'   #  0x00e4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u03af'   #  0x00e5 -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03cc'   #  0x00e6 -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u03cd'   #  0x00e7 -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u03cb'   #  0x00e8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u03ce'   #  0x00e9 -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\u0386'   #  0x00ea -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\u0388'   #  0x00eb -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u0389'   #  0x00ec -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\u038a'   #  0x00ed -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\u038c'   #  0x00ee -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\u038e'   #  0x00ef -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u038f'   #  0x00f0 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u03aa'   #  0x00f4 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\u03ab'   #  0x00f5 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0391'   #  0x0080 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x0081 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x0082 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x0083 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x0084 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x0085 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x0086 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0x0087 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x0088 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0x0089 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x008a -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x008b -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x008c -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0x008d -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x008e -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0x008f -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x0090 -> GREEK CAPITAL LETTER RHO
+    '\u03a3'   #  0x0091 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0x0092 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x0093 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x0094 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x0095 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x0096 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x0097 -> GREEK CAPITAL LETTER OMEGA
+    '\u03b1'   #  0x0098 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x0099 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x009a -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0x009b -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x009c -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0x009d -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0x009e -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x009f -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x00a0 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x00a1 -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x00a2 -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x00a3 -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0x00a4 -> GREEK SMALL LETTER NU
+    '\u03be'   #  0x00a5 -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0x00a6 -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0x00a7 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0x00a8 -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0x00a9 -> GREEK SMALL LETTER SIGMA
+    '\u03c2'   #  0x00aa -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0x00ab -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0x00ac -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0x00ad -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0x00ae -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0x00af -> GREEK SMALL LETTER PSI
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03c9'   #  0x00e0 -> GREEK SMALL LETTER OMEGA
+    '\u03ac'   #  0x00e1 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0x00e2 -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0x00e3 -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03ca'   #  0x00e4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03af'   #  0x00e5 -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0x00e6 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0x00e7 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03cb'   #  0x00e8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03ce'   #  0x00e9 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u0386'   #  0x00ea -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0x00eb -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0x00ec -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0x00ed -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0x00ee -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0x00ef -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0x00f0 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u03aa'   #  0x00f4 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0x00f5 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp775.py b/Lib/encodings/cp775.py
index 6a456a5..fe06e7b 100644
--- a/Lib/encodings/cp775.py
+++ b/Lib/encodings/cp775.py
@@ -177,262 +177,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\u0106'   #  0x0080 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0101'   #  0x0083 -> LATIN SMALL LETTER A WITH MACRON
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u0123'   #  0x0085 -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\u0107'   #  0x0087 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
-    u'\u0113'   #  0x0089 -> LATIN SMALL LETTER E WITH MACRON
-    u'\u0156'   #  0x008a -> LATIN CAPITAL LETTER R WITH CEDILLA
-    u'\u0157'   #  0x008b -> LATIN SMALL LETTER R WITH CEDILLA
-    u'\u012b'   #  0x008c -> LATIN SMALL LETTER I WITH MACRON
-    u'\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\u014d'   #  0x0093 -> LATIN SMALL LETTER O WITH MACRON
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\u0122'   #  0x0095 -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\xa2'     #  0x0096 -> CENT SIGN
-    u'\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd7'     #  0x009e -> MULTIPLICATION SIGN
-    u'\xa4'     #  0x009f -> CURRENCY SIGN
-    u'\u0100'   #  0x00a0 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\u012a'   #  0x00a1 -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\u017b'   #  0x00a3 -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\u017c'   #  0x00a4 -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u017a'   #  0x00a5 -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u201d'   #  0x00a6 -> RIGHT DOUBLE QUOTATION MARK
-    u'\xa6'     #  0x00a7 -> BROKEN BAR
-    u'\xa9'     #  0x00a8 -> COPYRIGHT SIGN
-    u'\xae'     #  0x00a9 -> REGISTERED SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\u0141'   #  0x00ad -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u0104'   #  0x00b5 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u010c'   #  0x00b6 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\u0118'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\u0116'   #  0x00b8 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u012e'   #  0x00bd -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u0160'   #  0x00be -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u0172'   #  0x00c6 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\u016a'   #  0x00c7 -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u017d'   #  0x00cf -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u0105'   #  0x00d0 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u010d'   #  0x00d1 -> LATIN SMALL LETTER C WITH CARON
-    u'\u0119'   #  0x00d2 -> LATIN SMALL LETTER E WITH OGONEK
-    u'\u0117'   #  0x00d3 -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\u012f'   #  0x00d4 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u0161'   #  0x00d5 -> LATIN SMALL LETTER S WITH CARON
-    u'\u0173'   #  0x00d6 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\u016b'   #  0x00d7 -> LATIN SMALL LETTER U WITH MACRON
-    u'\u017e'   #  0x00d8 -> LATIN SMALL LETTER Z WITH CARON
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u'\u014c'   #  0x00e2 -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u0144'   #  0x00e7 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0136'   #  0x00e8 -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\u0137'   #  0x00e9 -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\u013b'   #  0x00ea -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\u013c'   #  0x00eb -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u0146'   #  0x00ec -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\u0112'   #  0x00ed -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u0145'   #  0x00ee -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\u2019'   #  0x00ef -> RIGHT SINGLE QUOTATION MARK
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u201c'   #  0x00f2 -> LEFT DOUBLE QUOTATION MARK
-    u'\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
-    u'\xb6'     #  0x00f4 -> PILCROW SIGN
-    u'\xa7'     #  0x00f5 -> SECTION SIGN
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u201e'   #  0x00f7 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\xb9'     #  0x00fb -> SUPERSCRIPT ONE
-    u'\xb3'     #  0x00fc -> SUPERSCRIPT THREE
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0106'   #  0x0080 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0101'   #  0x0083 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0123'   #  0x0085 -> LATIN SMALL LETTER G WITH CEDILLA
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0107'   #  0x0087 -> LATIN SMALL LETTER C WITH ACUTE
+    '\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
+    '\u0113'   #  0x0089 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0156'   #  0x008a -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\u0157'   #  0x008b -> LATIN SMALL LETTER R WITH CEDILLA
+    '\u012b'   #  0x008c -> LATIN SMALL LETTER I WITH MACRON
+    '\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\u014d'   #  0x0093 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u0122'   #  0x0095 -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\xa2'     #  0x0096 -> CENT SIGN
+    '\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\xa4'     #  0x009f -> CURRENCY SIGN
+    '\u0100'   #  0x00a0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u012a'   #  0x00a1 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u017b'   #  0x00a3 -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017c'   #  0x00a4 -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017a'   #  0x00a5 -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u201d'   #  0x00a6 -> RIGHT DOUBLE QUOTATION MARK
+    '\xa6'     #  0x00a7 -> BROKEN BAR
+    '\xa9'     #  0x00a8 -> COPYRIGHT SIGN
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\u0141'   #  0x00ad -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u0104'   #  0x00b5 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u010c'   #  0x00b6 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u0118'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0116'   #  0x00b8 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u012e'   #  0x00bd -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0160'   #  0x00be -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u0172'   #  0x00c6 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u016a'   #  0x00c7 -> LATIN CAPITAL LETTER U WITH MACRON
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u017d'   #  0x00cf -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u0105'   #  0x00d0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u010d'   #  0x00d1 -> LATIN SMALL LETTER C WITH CARON
+    '\u0119'   #  0x00d2 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0117'   #  0x00d3 -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u012f'   #  0x00d4 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0161'   #  0x00d5 -> LATIN SMALL LETTER S WITH CARON
+    '\u0173'   #  0x00d6 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u016b'   #  0x00d7 -> LATIN SMALL LETTER U WITH MACRON
+    '\u017e'   #  0x00d8 -> LATIN SMALL LETTER Z WITH CARON
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u014c'   #  0x00e2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u0144'   #  0x00e7 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0136'   #  0x00e8 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u0137'   #  0x00e9 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u013b'   #  0x00ea -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u013c'   #  0x00eb -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0146'   #  0x00ec -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u0112'   #  0x00ed -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0145'   #  0x00ee -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u2019'   #  0x00ef -> RIGHT SINGLE QUOTATION MARK
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u201c'   #  0x00f2 -> LEFT DOUBLE QUOTATION MARK
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u201e'   #  0x00f7 -> DOUBLE LOW-9 QUOTATION MARK
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp850.py b/Lib/encodings/cp850.py
index 0c8478c..f98aef9 100644
--- a/Lib/encodings/cp850.py
+++ b/Lib/encodings/cp850.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd7'     #  0x009e -> MULTIPLICATION SIGN
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\xae'     #  0x00a9 -> REGISTERED SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xa9'     #  0x00b8 -> COPYRIGHT SIGN
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\xa2'     #  0x00bd -> CENT SIGN
-    u'\xa5'     #  0x00be -> YEN SIGN
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa4'     #  0x00cf -> CURRENCY SIGN
-    u'\xf0'     #  0x00d0 -> LATIN SMALL LETTER ETH
-    u'\xd0'     #  0x00d1 -> LATIN CAPITAL LETTER ETH
-    u'\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\u0131'   #  0x00d5 -> LATIN SMALL LETTER DOTLESS I
-    u'\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\xa6'     #  0x00dd -> BROKEN BAR
-    u'\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\xfe'     #  0x00e7 -> LATIN SMALL LETTER THORN
-    u'\xde'     #  0x00e8 -> LATIN CAPITAL LETTER THORN
-    u'\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xaf'     #  0x00ee -> MACRON
-    u'\xb4'     #  0x00ef -> ACUTE ACCENT
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2017'   #  0x00f2 -> DOUBLE LOW LINE
-    u'\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
-    u'\xb6'     #  0x00f4 -> PILCROW SIGN
-    u'\xa7'     #  0x00f5 -> SECTION SIGN
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\xb8'     #  0x00f7 -> CEDILLA
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\xa8'     #  0x00f9 -> DIAERESIS
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\xb9'     #  0x00fb -> SUPERSCRIPT ONE
-    u'\xb3'     #  0x00fc -> SUPERSCRIPT THREE
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa9'     #  0x00b8 -> COPYRIGHT SIGN
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0x00bd -> CENT SIGN
+    '\xa5'     #  0x00be -> YEN SIGN
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
+    '\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\xf0'     #  0x00d0 -> LATIN SMALL LETTER ETH
+    '\xd0'     #  0x00d1 -> LATIN CAPITAL LETTER ETH
+    '\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\u0131'   #  0x00d5 -> LATIN SMALL LETTER DOTLESS I
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\xa6'     #  0x00dd -> BROKEN BAR
+    '\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\xfe'     #  0x00e7 -> LATIN SMALL LETTER THORN
+    '\xde'     #  0x00e8 -> LATIN CAPITAL LETTER THORN
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xaf'     #  0x00ee -> MACRON
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2017'   #  0x00f2 -> DOUBLE LOW LINE
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp852.py b/Lib/encodings/cp852.py
index 069d547..34d8a0e 100644
--- a/Lib/encodings/cp852.py
+++ b/Lib/encodings/cp852.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u016f'   #  0x0085 -> LATIN SMALL LETTER U WITH RING ABOVE
-    u'\u0107'   #  0x0086 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u0150'   #  0x008a -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    u'\u0151'   #  0x008b -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u0106'   #  0x008f -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0139'   #  0x0091 -> LATIN CAPITAL LETTER L WITH ACUTE
-    u'\u013a'   #  0x0092 -> LATIN SMALL LETTER L WITH ACUTE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\u013d'   #  0x0095 -> LATIN CAPITAL LETTER L WITH CARON
-    u'\u013e'   #  0x0096 -> LATIN SMALL LETTER L WITH CARON
-    u'\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0164'   #  0x009b -> LATIN CAPITAL LETTER T WITH CARON
-    u'\u0165'   #  0x009c -> LATIN SMALL LETTER T WITH CARON
-    u'\u0141'   #  0x009d -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\xd7'     #  0x009e -> MULTIPLICATION SIGN
-    u'\u010d'   #  0x009f -> LATIN SMALL LETTER C WITH CARON
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\u0104'   #  0x00a4 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u0105'   #  0x00a5 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u017d'   #  0x00a6 -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u017e'   #  0x00a7 -> LATIN SMALL LETTER Z WITH CARON
-    u'\u0118'   #  0x00a8 -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\u0119'   #  0x00a9 -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\u017a'   #  0x00ab -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u010c'   #  0x00ac -> LATIN CAPITAL LETTER C WITH CARON
-    u'\u015f'   #  0x00ad -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u011a'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH CARON
-    u'\u015e'   #  0x00b8 -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u017b'   #  0x00bd -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\u017c'   #  0x00be -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u0102'   #  0x00c6 -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\u0103'   #  0x00c7 -> LATIN SMALL LETTER A WITH BREVE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa4'     #  0x00cf -> CURRENCY SIGN
-    u'\u0111'   #  0x00d0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0110'   #  0x00d1 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u010e'   #  0x00d2 -> LATIN CAPITAL LETTER D WITH CARON
-    u'\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u010f'   #  0x00d4 -> LATIN SMALL LETTER D WITH CARON
-    u'\u0147'   #  0x00d5 -> LATIN CAPITAL LETTER N WITH CARON
-    u'\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\u011b'   #  0x00d8 -> LATIN SMALL LETTER E WITH CARON
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u0162'   #  0x00dd -> LATIN CAPITAL LETTER T WITH CEDILLA
-    u'\u016e'   #  0x00de -> LATIN CAPITAL LETTER U WITH RING ABOVE
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\u0144'   #  0x00e4 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0148'   #  0x00e5 -> LATIN SMALL LETTER N WITH CARON
-    u'\u0160'   #  0x00e6 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u0161'   #  0x00e7 -> LATIN SMALL LETTER S WITH CARON
-    u'\u0154'   #  0x00e8 -> LATIN CAPITAL LETTER R WITH ACUTE
-    u'\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\u0155'   #  0x00ea -> LATIN SMALL LETTER R WITH ACUTE
-    u'\u0170'   #  0x00eb -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    u'\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\u0163'   #  0x00ee -> LATIN SMALL LETTER T WITH CEDILLA
-    u'\xb4'     #  0x00ef -> ACUTE ACCENT
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\u02dd'   #  0x00f1 -> DOUBLE ACUTE ACCENT
-    u'\u02db'   #  0x00f2 -> OGONEK
-    u'\u02c7'   #  0x00f3 -> CARON
-    u'\u02d8'   #  0x00f4 -> BREVE
-    u'\xa7'     #  0x00f5 -> SECTION SIGN
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\xb8'     #  0x00f7 -> CEDILLA
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\xa8'     #  0x00f9 -> DIAERESIS
-    u'\u02d9'   #  0x00fa -> DOT ABOVE
-    u'\u0171'   #  0x00fb -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    u'\u0158'   #  0x00fc -> LATIN CAPITAL LETTER R WITH CARON
-    u'\u0159'   #  0x00fd -> LATIN SMALL LETTER R WITH CARON
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u016f'   #  0x0085 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\u0107'   #  0x0086 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u0142'   #  0x0088 -> LATIN SMALL LETTER L WITH STROKE
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0150'   #  0x008a -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\u0151'   #  0x008b -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u0179'   #  0x008d -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0106'   #  0x008f -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0139'   #  0x0091 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u013a'   #  0x0092 -> LATIN SMALL LETTER L WITH ACUTE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u013d'   #  0x0095 -> LATIN CAPITAL LETTER L WITH CARON
+    '\u013e'   #  0x0096 -> LATIN SMALL LETTER L WITH CARON
+    '\u015a'   #  0x0097 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0x0098 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0164'   #  0x009b -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0165'   #  0x009c -> LATIN SMALL LETTER T WITH CARON
+    '\u0141'   #  0x009d -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xd7'     #  0x009e -> MULTIPLICATION SIGN
+    '\u010d'   #  0x009f -> LATIN SMALL LETTER C WITH CARON
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0104'   #  0x00a4 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0105'   #  0x00a5 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u017d'   #  0x00a6 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017e'   #  0x00a7 -> LATIN SMALL LETTER Z WITH CARON
+    '\u0118'   #  0x00a8 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0119'   #  0x00a9 -> LATIN SMALL LETTER E WITH OGONEK
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\u017a'   #  0x00ab -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u010c'   #  0x00ac -> LATIN CAPITAL LETTER C WITH CARON
+    '\u015f'   #  0x00ad -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u011a'   #  0x00b7 -> LATIN CAPITAL LETTER E WITH CARON
+    '\u015e'   #  0x00b8 -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u017b'   #  0x00bd -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017c'   #  0x00be -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u0102'   #  0x00c6 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\u0103'   #  0x00c7 -> LATIN SMALL LETTER A WITH BREVE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\u0111'   #  0x00d0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0110'   #  0x00d1 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u010e'   #  0x00d2 -> LATIN CAPITAL LETTER D WITH CARON
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u010f'   #  0x00d4 -> LATIN SMALL LETTER D WITH CARON
+    '\u0147'   #  0x00d5 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u011b'   #  0x00d8 -> LATIN SMALL LETTER E WITH CARON
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u0162'   #  0x00dd -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\u016e'   #  0x00de -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0143'   #  0x00e3 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0144'   #  0x00e4 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0x00e5 -> LATIN SMALL LETTER N WITH CARON
+    '\u0160'   #  0x00e6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0161'   #  0x00e7 -> LATIN SMALL LETTER S WITH CARON
+    '\u0154'   #  0x00e8 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0155'   #  0x00ea -> LATIN SMALL LETTER R WITH ACUTE
+    '\u0170'   #  0x00eb -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xfd'     #  0x00ec -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xdd'     #  0x00ed -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0163'   #  0x00ee -> LATIN SMALL LETTER T WITH CEDILLA
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\u02dd'   #  0x00f1 -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0x00f2 -> OGONEK
+    '\u02c7'   #  0x00f3 -> CARON
+    '\u02d8'   #  0x00f4 -> BREVE
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\u02d9'   #  0x00fa -> DOT ABOVE
+    '\u0171'   #  0x00fb -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\u0158'   #  0x00fc -> LATIN CAPITAL LETTER R WITH CARON
+    '\u0159'   #  0x00fd -> LATIN SMALL LETTER R WITH CARON
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp855.py b/Lib/encodings/cp855.py
index 241ef9d..4fe9210 100644
--- a/Lib/encodings/cp855.py
+++ b/Lib/encodings/cp855.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\u0452'   #  0x0080 -> CYRILLIC SMALL LETTER DJE
-    u'\u0402'   #  0x0081 -> CYRILLIC CAPITAL LETTER DJE
-    u'\u0453'   #  0x0082 -> CYRILLIC SMALL LETTER GJE
-    u'\u0403'   #  0x0083 -> CYRILLIC CAPITAL LETTER GJE
-    u'\u0451'   #  0x0084 -> CYRILLIC SMALL LETTER IO
-    u'\u0401'   #  0x0085 -> CYRILLIC CAPITAL LETTER IO
-    u'\u0454'   #  0x0086 -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\u0404'   #  0x0087 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\u0455'   #  0x0088 -> CYRILLIC SMALL LETTER DZE
-    u'\u0405'   #  0x0089 -> CYRILLIC CAPITAL LETTER DZE
-    u'\u0456'   #  0x008a -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0406'   #  0x008b -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0457'   #  0x008c -> CYRILLIC SMALL LETTER YI
-    u'\u0407'   #  0x008d -> CYRILLIC CAPITAL LETTER YI
-    u'\u0458'   #  0x008e -> CYRILLIC SMALL LETTER JE
-    u'\u0408'   #  0x008f -> CYRILLIC CAPITAL LETTER JE
-    u'\u0459'   #  0x0090 -> CYRILLIC SMALL LETTER LJE
-    u'\u0409'   #  0x0091 -> CYRILLIC CAPITAL LETTER LJE
-    u'\u045a'   #  0x0092 -> CYRILLIC SMALL LETTER NJE
-    u'\u040a'   #  0x0093 -> CYRILLIC CAPITAL LETTER NJE
-    u'\u045b'   #  0x0094 -> CYRILLIC SMALL LETTER TSHE
-    u'\u040b'   #  0x0095 -> CYRILLIC CAPITAL LETTER TSHE
-    u'\u045c'   #  0x0096 -> CYRILLIC SMALL LETTER KJE
-    u'\u040c'   #  0x0097 -> CYRILLIC CAPITAL LETTER KJE
-    u'\u045e'   #  0x0098 -> CYRILLIC SMALL LETTER SHORT U
-    u'\u040e'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHORT U
-    u'\u045f'   #  0x009a -> CYRILLIC SMALL LETTER DZHE
-    u'\u040f'   #  0x009b -> CYRILLIC CAPITAL LETTER DZHE
-    u'\u044e'   #  0x009c -> CYRILLIC SMALL LETTER YU
-    u'\u042e'   #  0x009d -> CYRILLIC CAPITAL LETTER YU
-    u'\u044a'   #  0x009e -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u042a'   #  0x009f -> CYRILLIC CAPITAL LETTER HARD SIGN
-    u'\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
-    u'\u0410'   #  0x00a1 -> CYRILLIC CAPITAL LETTER A
-    u'\u0431'   #  0x00a2 -> CYRILLIC SMALL LETTER BE
-    u'\u0411'   #  0x00a3 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0446'   #  0x00a4 -> CYRILLIC SMALL LETTER TSE
-    u'\u0426'   #  0x00a5 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0434'   #  0x00a6 -> CYRILLIC SMALL LETTER DE
-    u'\u0414'   #  0x00a7 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0435'   #  0x00a8 -> CYRILLIC SMALL LETTER IE
-    u'\u0415'   #  0x00a9 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0444'   #  0x00aa -> CYRILLIC SMALL LETTER EF
-    u'\u0424'   #  0x00ab -> CYRILLIC CAPITAL LETTER EF
-    u'\u0433'   #  0x00ac -> CYRILLIC SMALL LETTER GHE
-    u'\u0413'   #  0x00ad -> CYRILLIC CAPITAL LETTER GHE
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u0445'   #  0x00b5 -> CYRILLIC SMALL LETTER HA
-    u'\u0425'   #  0x00b6 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0438'   #  0x00b7 -> CYRILLIC SMALL LETTER I
-    u'\u0418'   #  0x00b8 -> CYRILLIC CAPITAL LETTER I
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u0439'   #  0x00bd -> CYRILLIC SMALL LETTER SHORT I
-    u'\u0419'   #  0x00be -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u043a'   #  0x00c6 -> CYRILLIC SMALL LETTER KA
-    u'\u041a'   #  0x00c7 -> CYRILLIC CAPITAL LETTER KA
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa4'     #  0x00cf -> CURRENCY SIGN
-    u'\u043b'   #  0x00d0 -> CYRILLIC SMALL LETTER EL
-    u'\u041b'   #  0x00d1 -> CYRILLIC CAPITAL LETTER EL
-    u'\u043c'   #  0x00d2 -> CYRILLIC SMALL LETTER EM
-    u'\u041c'   #  0x00d3 -> CYRILLIC CAPITAL LETTER EM
-    u'\u043d'   #  0x00d4 -> CYRILLIC SMALL LETTER EN
-    u'\u041d'   #  0x00d5 -> CYRILLIC CAPITAL LETTER EN
-    u'\u043e'   #  0x00d6 -> CYRILLIC SMALL LETTER O
-    u'\u041e'   #  0x00d7 -> CYRILLIC CAPITAL LETTER O
-    u'\u043f'   #  0x00d8 -> CYRILLIC SMALL LETTER PE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u041f'   #  0x00dd -> CYRILLIC CAPITAL LETTER PE
-    u'\u044f'   #  0x00de -> CYRILLIC SMALL LETTER YA
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u042f'   #  0x00e0 -> CYRILLIC CAPITAL LETTER YA
-    u'\u0440'   #  0x00e1 -> CYRILLIC SMALL LETTER ER
-    u'\u0420'   #  0x00e2 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0441'   #  0x00e3 -> CYRILLIC SMALL LETTER ES
-    u'\u0421'   #  0x00e4 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0442'   #  0x00e5 -> CYRILLIC SMALL LETTER TE
-    u'\u0422'   #  0x00e6 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0443'   #  0x00e7 -> CYRILLIC SMALL LETTER U
-    u'\u0423'   #  0x00e8 -> CYRILLIC CAPITAL LETTER U
-    u'\u0436'   #  0x00e9 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0416'   #  0x00ea -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0432'   #  0x00eb -> CYRILLIC SMALL LETTER VE
-    u'\u0412'   #  0x00ec -> CYRILLIC CAPITAL LETTER VE
-    u'\u044c'   #  0x00ed -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u042c'   #  0x00ee -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u2116'   #  0x00ef -> NUMERO SIGN
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\u044b'   #  0x00f1 -> CYRILLIC SMALL LETTER YERU
-    u'\u042b'   #  0x00f2 -> CYRILLIC CAPITAL LETTER YERU
-    u'\u0437'   #  0x00f3 -> CYRILLIC SMALL LETTER ZE
-    u'\u0417'   #  0x00f4 -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0448'   #  0x00f5 -> CYRILLIC SMALL LETTER SHA
-    u'\u0428'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHA
-    u'\u044d'   #  0x00f7 -> CYRILLIC SMALL LETTER E
-    u'\u042d'   #  0x00f8 -> CYRILLIC CAPITAL LETTER E
-    u'\u0449'   #  0x00f9 -> CYRILLIC SMALL LETTER SHCHA
-    u'\u0429'   #  0x00fa -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u0447'   #  0x00fb -> CYRILLIC SMALL LETTER CHE
-    u'\u0427'   #  0x00fc -> CYRILLIC CAPITAL LETTER CHE
-    u'\xa7'     #  0x00fd -> SECTION SIGN
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0452'   #  0x0080 -> CYRILLIC SMALL LETTER DJE
+    '\u0402'   #  0x0081 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0453'   #  0x0082 -> CYRILLIC SMALL LETTER GJE
+    '\u0403'   #  0x0083 -> CYRILLIC CAPITAL LETTER GJE
+    '\u0451'   #  0x0084 -> CYRILLIC SMALL LETTER IO
+    '\u0401'   #  0x0085 -> CYRILLIC CAPITAL LETTER IO
+    '\u0454'   #  0x0086 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0404'   #  0x0087 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0455'   #  0x0088 -> CYRILLIC SMALL LETTER DZE
+    '\u0405'   #  0x0089 -> CYRILLIC CAPITAL LETTER DZE
+    '\u0456'   #  0x008a -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0406'   #  0x008b -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0x008c -> CYRILLIC SMALL LETTER YI
+    '\u0407'   #  0x008d -> CYRILLIC CAPITAL LETTER YI
+    '\u0458'   #  0x008e -> CYRILLIC SMALL LETTER JE
+    '\u0408'   #  0x008f -> CYRILLIC CAPITAL LETTER JE
+    '\u0459'   #  0x0090 -> CYRILLIC SMALL LETTER LJE
+    '\u0409'   #  0x0091 -> CYRILLIC CAPITAL LETTER LJE
+    '\u045a'   #  0x0092 -> CYRILLIC SMALL LETTER NJE
+    '\u040a'   #  0x0093 -> CYRILLIC CAPITAL LETTER NJE
+    '\u045b'   #  0x0094 -> CYRILLIC SMALL LETTER TSHE
+    '\u040b'   #  0x0095 -> CYRILLIC CAPITAL LETTER TSHE
+    '\u045c'   #  0x0096 -> CYRILLIC SMALL LETTER KJE
+    '\u040c'   #  0x0097 -> CYRILLIC CAPITAL LETTER KJE
+    '\u045e'   #  0x0098 -> CYRILLIC SMALL LETTER SHORT U
+    '\u040e'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045f'   #  0x009a -> CYRILLIC SMALL LETTER DZHE
+    '\u040f'   #  0x009b -> CYRILLIC CAPITAL LETTER DZHE
+    '\u044e'   #  0x009c -> CYRILLIC SMALL LETTER YU
+    '\u042e'   #  0x009d -> CYRILLIC CAPITAL LETTER YU
+    '\u044a'   #  0x009e -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042a'   #  0x009f -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
+    '\u0410'   #  0x00a1 -> CYRILLIC CAPITAL LETTER A
+    '\u0431'   #  0x00a2 -> CYRILLIC SMALL LETTER BE
+    '\u0411'   #  0x00a3 -> CYRILLIC CAPITAL LETTER BE
+    '\u0446'   #  0x00a4 -> CYRILLIC SMALL LETTER TSE
+    '\u0426'   #  0x00a5 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0434'   #  0x00a6 -> CYRILLIC SMALL LETTER DE
+    '\u0414'   #  0x00a7 -> CYRILLIC CAPITAL LETTER DE
+    '\u0435'   #  0x00a8 -> CYRILLIC SMALL LETTER IE
+    '\u0415'   #  0x00a9 -> CYRILLIC CAPITAL LETTER IE
+    '\u0444'   #  0x00aa -> CYRILLIC SMALL LETTER EF
+    '\u0424'   #  0x00ab -> CYRILLIC CAPITAL LETTER EF
+    '\u0433'   #  0x00ac -> CYRILLIC SMALL LETTER GHE
+    '\u0413'   #  0x00ad -> CYRILLIC CAPITAL LETTER GHE
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u0445'   #  0x00b5 -> CYRILLIC SMALL LETTER HA
+    '\u0425'   #  0x00b6 -> CYRILLIC CAPITAL LETTER HA
+    '\u0438'   #  0x00b7 -> CYRILLIC SMALL LETTER I
+    '\u0418'   #  0x00b8 -> CYRILLIC CAPITAL LETTER I
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u0439'   #  0x00bd -> CYRILLIC SMALL LETTER SHORT I
+    '\u0419'   #  0x00be -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u043a'   #  0x00c6 -> CYRILLIC SMALL LETTER KA
+    '\u041a'   #  0x00c7 -> CYRILLIC CAPITAL LETTER KA
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\u043b'   #  0x00d0 -> CYRILLIC SMALL LETTER EL
+    '\u041b'   #  0x00d1 -> CYRILLIC CAPITAL LETTER EL
+    '\u043c'   #  0x00d2 -> CYRILLIC SMALL LETTER EM
+    '\u041c'   #  0x00d3 -> CYRILLIC CAPITAL LETTER EM
+    '\u043d'   #  0x00d4 -> CYRILLIC SMALL LETTER EN
+    '\u041d'   #  0x00d5 -> CYRILLIC CAPITAL LETTER EN
+    '\u043e'   #  0x00d6 -> CYRILLIC SMALL LETTER O
+    '\u041e'   #  0x00d7 -> CYRILLIC CAPITAL LETTER O
+    '\u043f'   #  0x00d8 -> CYRILLIC SMALL LETTER PE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u041f'   #  0x00dd -> CYRILLIC CAPITAL LETTER PE
+    '\u044f'   #  0x00de -> CYRILLIC SMALL LETTER YA
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u042f'   #  0x00e0 -> CYRILLIC CAPITAL LETTER YA
+    '\u0440'   #  0x00e1 -> CYRILLIC SMALL LETTER ER
+    '\u0420'   #  0x00e2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0441'   #  0x00e3 -> CYRILLIC SMALL LETTER ES
+    '\u0421'   #  0x00e4 -> CYRILLIC CAPITAL LETTER ES
+    '\u0442'   #  0x00e5 -> CYRILLIC SMALL LETTER TE
+    '\u0422'   #  0x00e6 -> CYRILLIC CAPITAL LETTER TE
+    '\u0443'   #  0x00e7 -> CYRILLIC SMALL LETTER U
+    '\u0423'   #  0x00e8 -> CYRILLIC CAPITAL LETTER U
+    '\u0436'   #  0x00e9 -> CYRILLIC SMALL LETTER ZHE
+    '\u0416'   #  0x00ea -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0432'   #  0x00eb -> CYRILLIC SMALL LETTER VE
+    '\u0412'   #  0x00ec -> CYRILLIC CAPITAL LETTER VE
+    '\u044c'   #  0x00ed -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u042c'   #  0x00ee -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u2116'   #  0x00ef -> NUMERO SIGN
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\u044b'   #  0x00f1 -> CYRILLIC SMALL LETTER YERU
+    '\u042b'   #  0x00f2 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0437'   #  0x00f3 -> CYRILLIC SMALL LETTER ZE
+    '\u0417'   #  0x00f4 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0448'   #  0x00f5 -> CYRILLIC SMALL LETTER SHA
+    '\u0428'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHA
+    '\u044d'   #  0x00f7 -> CYRILLIC SMALL LETTER E
+    '\u042d'   #  0x00f8 -> CYRILLIC CAPITAL LETTER E
+    '\u0449'   #  0x00f9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u0429'   #  0x00fa -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0447'   #  0x00fb -> CYRILLIC SMALL LETTER CHE
+    '\u0427'   #  0x00fc -> CYRILLIC CAPITAL LETTER CHE
+    '\xa7'     #  0x00fd -> SECTION SIGN
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp856.py b/Lib/encodings/cp856.py
index 203c2c4..cacbfb2 100644
--- a/Lib/encodings/cp856.py
+++ b/Lib/encodings/cp856.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u05d0'   #  0x80 -> HEBREW LETTER ALEF
-    u'\u05d1'   #  0x81 -> HEBREW LETTER BET
-    u'\u05d2'   #  0x82 -> HEBREW LETTER GIMEL
-    u'\u05d3'   #  0x83 -> HEBREW LETTER DALET
-    u'\u05d4'   #  0x84 -> HEBREW LETTER HE
-    u'\u05d5'   #  0x85 -> HEBREW LETTER VAV
-    u'\u05d6'   #  0x86 -> HEBREW LETTER ZAYIN
-    u'\u05d7'   #  0x87 -> HEBREW LETTER HET
-    u'\u05d8'   #  0x88 -> HEBREW LETTER TET
-    u'\u05d9'   #  0x89 -> HEBREW LETTER YOD
-    u'\u05da'   #  0x8A -> HEBREW LETTER FINAL KAF
-    u'\u05db'   #  0x8B -> HEBREW LETTER KAF
-    u'\u05dc'   #  0x8C -> HEBREW LETTER LAMED
-    u'\u05dd'   #  0x8D -> HEBREW LETTER FINAL MEM
-    u'\u05de'   #  0x8E -> HEBREW LETTER MEM
-    u'\u05df'   #  0x8F -> HEBREW LETTER FINAL NUN
-    u'\u05e0'   #  0x90 -> HEBREW LETTER NUN
-    u'\u05e1'   #  0x91 -> HEBREW LETTER SAMEKH
-    u'\u05e2'   #  0x92 -> HEBREW LETTER AYIN
-    u'\u05e3'   #  0x93 -> HEBREW LETTER FINAL PE
-    u'\u05e4'   #  0x94 -> HEBREW LETTER PE
-    u'\u05e5'   #  0x95 -> HEBREW LETTER FINAL TSADI
-    u'\u05e6'   #  0x96 -> HEBREW LETTER TSADI
-    u'\u05e7'   #  0x97 -> HEBREW LETTER QOF
-    u'\u05e8'   #  0x98 -> HEBREW LETTER RESH
-    u'\u05e9'   #  0x99 -> HEBREW LETTER SHIN
-    u'\u05ea'   #  0x9A -> HEBREW LETTER TAV
-    u'\ufffe'   #  0x9B -> UNDEFINED
-    u'\xa3'     #  0x9C -> POUND SIGN
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\xd7'     #  0x9E -> MULTIPLICATION SIGN
-    u'\ufffe'   #  0x9F -> UNDEFINED
-    u'\ufffe'   #  0xA0 -> UNDEFINED
-    u'\ufffe'   #  0xA1 -> UNDEFINED
-    u'\ufffe'   #  0xA2 -> UNDEFINED
-    u'\ufffe'   #  0xA3 -> UNDEFINED
-    u'\ufffe'   #  0xA4 -> UNDEFINED
-    u'\ufffe'   #  0xA5 -> UNDEFINED
-    u'\ufffe'   #  0xA6 -> UNDEFINED
-    u'\ufffe'   #  0xA7 -> UNDEFINED
-    u'\ufffe'   #  0xA8 -> UNDEFINED
-    u'\xae'     #  0xA9 -> REGISTERED SIGN
-    u'\xac'     #  0xAA -> NOT SIGN
-    u'\xbd'     #  0xAB -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0xAC -> VULGAR FRACTION ONE QUARTER
-    u'\ufffe'   #  0xAD -> UNDEFINED
-    u'\xab'     #  0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0xB0 -> LIGHT SHADE
-    u'\u2592'   #  0xB1 -> MEDIUM SHADE
-    u'\u2593'   #  0xB2 -> DARK SHADE
-    u'\u2502'   #  0xB3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\ufffe'   #  0xB5 -> UNDEFINED
-    u'\ufffe'   #  0xB6 -> UNDEFINED
-    u'\ufffe'   #  0xB7 -> UNDEFINED
-    u'\xa9'     #  0xB8 -> COPYRIGHT SIGN
-    u'\u2563'   #  0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0xBA -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\xa2'     #  0xBD -> CENT SIGN
-    u'\xa5'     #  0xBE -> YEN SIGN
-    u'\u2510'   #  0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\ufffe'   #  0xC6 -> UNDEFINED
-    u'\ufffe'   #  0xC7 -> UNDEFINED
-    u'\u255a'   #  0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa4'     #  0xCF -> CURRENCY SIGN
-    u'\ufffe'   #  0xD0 -> UNDEFINED
-    u'\ufffe'   #  0xD1 -> UNDEFINED
-    u'\ufffe'   #  0xD2 -> UNDEFINED
-    u'\ufffe'   #  0xD3 -> UNDEFINEDS
-    u'\ufffe'   #  0xD4 -> UNDEFINED
-    u'\ufffe'   #  0xD5 -> UNDEFINED
-    u'\ufffe'   #  0xD6 -> UNDEFINEDE
-    u'\ufffe'   #  0xD7 -> UNDEFINED
-    u'\ufffe'   #  0xD8 -> UNDEFINED
-    u'\u2518'   #  0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0xDB -> FULL BLOCK
-    u'\u2584'   #  0xDC -> LOWER HALF BLOCK
-    u'\xa6'     #  0xDD -> BROKEN BAR
-    u'\ufffe'   #  0xDE -> UNDEFINED
-    u'\u2580'   #  0xDF -> UPPER HALF BLOCK
-    u'\ufffe'   #  0xE0 -> UNDEFINED
-    u'\ufffe'   #  0xE1 -> UNDEFINED
-    u'\ufffe'   #  0xE2 -> UNDEFINED
-    u'\ufffe'   #  0xE3 -> UNDEFINED
-    u'\ufffe'   #  0xE4 -> UNDEFINED
-    u'\ufffe'   #  0xE5 -> UNDEFINED
-    u'\xb5'     #  0xE6 -> MICRO SIGN
-    u'\ufffe'   #  0xE7 -> UNDEFINED
-    u'\ufffe'   #  0xE8 -> UNDEFINED
-    u'\ufffe'   #  0xE9 -> UNDEFINED
-    u'\ufffe'   #  0xEA -> UNDEFINED
-    u'\ufffe'   #  0xEB -> UNDEFINED
-    u'\ufffe'   #  0xEC -> UNDEFINED
-    u'\ufffe'   #  0xED -> UNDEFINED
-    u'\xaf'     #  0xEE -> MACRON
-    u'\xb4'     #  0xEF -> ACUTE ACCENT
-    u'\xad'     #  0xF0 -> SOFT HYPHEN
-    u'\xb1'     #  0xF1 -> PLUS-MINUS SIGN
-    u'\u2017'   #  0xF2 -> DOUBLE LOW LINE
-    u'\xbe'     #  0xF3 -> VULGAR FRACTION THREE QUARTERS
-    u'\xb6'     #  0xF4 -> PILCROW SIGN
-    u'\xa7'     #  0xF5 -> SECTION SIGN
-    u'\xf7'     #  0xF6 -> DIVISION SIGN
-    u'\xb8'     #  0xF7 -> CEDILLA
-    u'\xb0'     #  0xF8 -> DEGREE SIGN
-    u'\xa8'     #  0xF9 -> DIAERESIS
-    u'\xb7'     #  0xFA -> MIDDLE DOT
-    u'\xb9'     #  0xFB -> SUPERSCRIPT ONE
-    u'\xb3'     #  0xFC -> SUPERSCRIPT THREE
-    u'\xb2'     #  0xFD -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0xFE -> BLACK SQUARE
-    u'\xa0'     #  0xFF -> NO-BREAK SPACE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u05d0'   #  0x80 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x81 -> HEBREW LETTER BET
+    '\u05d2'   #  0x82 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x83 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x84 -> HEBREW LETTER HE
+    '\u05d5'   #  0x85 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x86 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x87 -> HEBREW LETTER HET
+    '\u05d8'   #  0x88 -> HEBREW LETTER TET
+    '\u05d9'   #  0x89 -> HEBREW LETTER YOD
+    '\u05da'   #  0x8A -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x8B -> HEBREW LETTER KAF
+    '\u05dc'   #  0x8C -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x8D -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x8E -> HEBREW LETTER MEM
+    '\u05df'   #  0x8F -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x90 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x91 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0x92 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x93 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x94 -> HEBREW LETTER PE
+    '\u05e5'   #  0x95 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x96 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x97 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x98 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x99 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0x9A -> HEBREW LETTER TAV
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\xa3'     #  0x9C -> POUND SIGN
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\xd7'     #  0x9E -> MULTIPLICATION SIGN
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\ufffe'   #  0xA0 -> UNDEFINED
+    '\ufffe'   #  0xA1 -> UNDEFINED
+    '\ufffe'   #  0xA2 -> UNDEFINED
+    '\ufffe'   #  0xA3 -> UNDEFINED
+    '\ufffe'   #  0xA4 -> UNDEFINED
+    '\ufffe'   #  0xA5 -> UNDEFINED
+    '\ufffe'   #  0xA6 -> UNDEFINED
+    '\ufffe'   #  0xA7 -> UNDEFINED
+    '\ufffe'   #  0xA8 -> UNDEFINED
+    '\xae'     #  0xA9 -> REGISTERED SIGN
+    '\xac'     #  0xAA -> NOT SIGN
+    '\xbd'     #  0xAB -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0xAC -> VULGAR FRACTION ONE QUARTER
+    '\ufffe'   #  0xAD -> UNDEFINED
+    '\xab'     #  0xAE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xAF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0xB0 -> LIGHT SHADE
+    '\u2592'   #  0xB1 -> MEDIUM SHADE
+    '\u2593'   #  0xB2 -> DARK SHADE
+    '\u2502'   #  0xB3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0xB4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\ufffe'   #  0xB5 -> UNDEFINED
+    '\ufffe'   #  0xB6 -> UNDEFINED
+    '\ufffe'   #  0xB7 -> UNDEFINED
+    '\xa9'     #  0xB8 -> COPYRIGHT SIGN
+    '\u2563'   #  0xB9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0xBA -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0xBB -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0xBC -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0xBD -> CENT SIGN
+    '\xa5'     #  0xBE -> YEN SIGN
+    '\u2510'   #  0xBF -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0xC0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0xC1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0xC2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0xC3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0xC4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0xC5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\ufffe'   #  0xC6 -> UNDEFINED
+    '\ufffe'   #  0xC7 -> UNDEFINED
+    '\u255a'   #  0xC8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0xC9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0xCA -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0xCB -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0xCC -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0xCD -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0xCE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0xCF -> CURRENCY SIGN
+    '\ufffe'   #  0xD0 -> UNDEFINED
+    '\ufffe'   #  0xD1 -> UNDEFINED
+    '\ufffe'   #  0xD2 -> UNDEFINED
+    '\ufffe'   #  0xD3 -> UNDEFINEDS
+    '\ufffe'   #  0xD4 -> UNDEFINED
+    '\ufffe'   #  0xD5 -> UNDEFINED
+    '\ufffe'   #  0xD6 -> UNDEFINEDE
+    '\ufffe'   #  0xD7 -> UNDEFINED
+    '\ufffe'   #  0xD8 -> UNDEFINED
+    '\u2518'   #  0xD9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0xDA -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0xDB -> FULL BLOCK
+    '\u2584'   #  0xDC -> LOWER HALF BLOCK
+    '\xa6'     #  0xDD -> BROKEN BAR
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\u2580'   #  0xDF -> UPPER HALF BLOCK
+    '\ufffe'   #  0xE0 -> UNDEFINED
+    '\ufffe'   #  0xE1 -> UNDEFINED
+    '\ufffe'   #  0xE2 -> UNDEFINED
+    '\ufffe'   #  0xE3 -> UNDEFINED
+    '\ufffe'   #  0xE4 -> UNDEFINED
+    '\ufffe'   #  0xE5 -> UNDEFINED
+    '\xb5'     #  0xE6 -> MICRO SIGN
+    '\ufffe'   #  0xE7 -> UNDEFINED
+    '\ufffe'   #  0xE8 -> UNDEFINED
+    '\ufffe'   #  0xE9 -> UNDEFINED
+    '\ufffe'   #  0xEA -> UNDEFINED
+    '\ufffe'   #  0xEB -> UNDEFINED
+    '\ufffe'   #  0xEC -> UNDEFINED
+    '\ufffe'   #  0xED -> UNDEFINED
+    '\xaf'     #  0xEE -> MACRON
+    '\xb4'     #  0xEF -> ACUTE ACCENT
+    '\xad'     #  0xF0 -> SOFT HYPHEN
+    '\xb1'     #  0xF1 -> PLUS-MINUS SIGN
+    '\u2017'   #  0xF2 -> DOUBLE LOW LINE
+    '\xbe'     #  0xF3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0xF4 -> PILCROW SIGN
+    '\xa7'     #  0xF5 -> SECTION SIGN
+    '\xf7'     #  0xF6 -> DIVISION SIGN
+    '\xb8'     #  0xF7 -> CEDILLA
+    '\xb0'     #  0xF8 -> DEGREE SIGN
+    '\xa8'     #  0xF9 -> DIAERESIS
+    '\xb7'     #  0xFA -> MIDDLE DOT
+    '\xb9'     #  0xFB -> SUPERSCRIPT ONE
+    '\xb3'     #  0xFC -> SUPERSCRIPT THREE
+    '\xb2'     #  0xFD -> SUPERSCRIPT TWO
+    '\u25a0'   #  0xFE -> BLACK SQUARE
+    '\xa0'     #  0xFF -> NO-BREAK SPACE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp857.py b/Lib/encodings/cp857.py
index c24191b..741b059 100644
--- a/Lib/encodings/cp857.py
+++ b/Lib/encodings/cp857.py
@@ -177,262 +177,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u0131'   #  0x008d -> LATIN SMALL LETTER DOTLESS I
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\u0130'   #  0x0098 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u015e'   #  0x009e -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\u015f'   #  0x009f -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\u011e'   #  0x00a6 -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\u011f'   #  0x00a7 -> LATIN SMALL LETTER G WITH BREVE
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\xae'     #  0x00a9 -> REGISTERED SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xa9'     #  0x00b8 -> COPYRIGHT SIGN
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\xa2'     #  0x00bd -> CENT SIGN
-    u'\xa5'     #  0x00be -> YEN SIGN
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa4'     #  0x00cf -> CURRENCY SIGN
-    u'\xba'     #  0x00d0 -> MASCULINE ORDINAL INDICATOR
-    u'\xaa'     #  0x00d1 -> FEMININE ORDINAL INDICATOR
-    u'\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\ufffe'   #  0x00d5 -> UNDEFINED
-    u'\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\xa6'     #  0x00dd -> BROKEN BAR
-    u'\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\ufffe'   #  0x00e7 -> UNDEFINED
-    u'\xd7'     #  0x00e8 -> MULTIPLICATION SIGN
-    u'\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xec'     #  0x00ec -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xff'     #  0x00ed -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\xaf'     #  0x00ee -> MACRON
-    u'\xb4'     #  0x00ef -> ACUTE ACCENT
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\ufffe'   #  0x00f2 -> UNDEFINED
-    u'\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
-    u'\xb6'     #  0x00f4 -> PILCROW SIGN
-    u'\xa7'     #  0x00f5 -> SECTION SIGN
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\xb8'     #  0x00f7 -> CEDILLA
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\xa8'     #  0x00f9 -> DIAERESIS
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\xb9'     #  0x00fb -> SUPERSCRIPT ONE
-    u'\xb3'     #  0x00fc -> SUPERSCRIPT THREE
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u0131'   #  0x008d -> LATIN SMALL LETTER DOTLESS I
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\u0130'   #  0x0098 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u015e'   #  0x009e -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u015f'   #  0x009f -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\u011e'   #  0x00a6 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u011f'   #  0x00a7 -> LATIN SMALL LETTER G WITH BREVE
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xae'     #  0x00a9 -> REGISTERED SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\xc1'     #  0x00b5 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0x00b6 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc0'     #  0x00b7 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa9'     #  0x00b8 -> COPYRIGHT SIGN
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\xa2'     #  0x00bd -> CENT SIGN
+    '\xa5'     #  0x00be -> YEN SIGN
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\xe3'     #  0x00c6 -> LATIN SMALL LETTER A WITH TILDE
+    '\xc3'     #  0x00c7 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa4'     #  0x00cf -> CURRENCY SIGN
+    '\xba'     #  0x00d0 -> MASCULINE ORDINAL INDICATOR
+    '\xaa'     #  0x00d1 -> FEMININE ORDINAL INDICATOR
+    '\xca'     #  0x00d2 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0x00d3 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0x00d4 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\ufffe'   #  0x00d5 -> UNDEFINED
+    '\xcd'     #  0x00d6 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0x00d7 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0x00d8 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\xa6'     #  0x00dd -> BROKEN BAR
+    '\xcc'     #  0x00de -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\xd3'     #  0x00e0 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\xd4'     #  0x00e2 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd2'     #  0x00e3 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xf5'     #  0x00e4 -> LATIN SMALL LETTER O WITH TILDE
+    '\xd5'     #  0x00e5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\ufffe'   #  0x00e7 -> UNDEFINED
+    '\xd7'     #  0x00e8 -> MULTIPLICATION SIGN
+    '\xda'     #  0x00e9 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0x00ea -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0x00eb -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xec'     #  0x00ec -> LATIN SMALL LETTER I WITH GRAVE
+    '\xff'     #  0x00ed -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xaf'     #  0x00ee -> MACRON
+    '\xb4'     #  0x00ef -> ACUTE ACCENT
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\ufffe'   #  0x00f2 -> UNDEFINED
+    '\xbe'     #  0x00f3 -> VULGAR FRACTION THREE QUARTERS
+    '\xb6'     #  0x00f4 -> PILCROW SIGN
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\xb8'     #  0x00f7 -> CEDILLA
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\xb9'     #  0x00fb -> SUPERSCRIPT ONE
+    '\xb3'     #  0x00fc -> SUPERSCRIPT THREE
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp860.py b/Lib/encodings/cp860.py
index 4acb0cf..65903e7 100644
--- a/Lib/encodings/cp860.py
+++ b/Lib/encodings/cp860.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0x0084 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xc1'     #  0x0086 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xca'     #  0x0089 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xcd'     #  0x008b -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xd4'     #  0x008c -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xc3'     #  0x008e -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc2'     #  0x008f -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xc0'     #  0x0091 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc8'     #  0x0092 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0x0094 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xda'     #  0x0096 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xcc'     #  0x0098 -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd5'     #  0x0099 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xa2'     #  0x009b -> CENT SIGN
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\u20a7'   #  0x009e -> PESETA SIGN
-    u'\xd3'     #  0x009f -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\xd2'     #  0x00a9 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0x0084 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xc1'     #  0x0086 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xca'     #  0x0089 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xcd'     #  0x008b -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xd4'     #  0x008c -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc3'     #  0x008e -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc2'     #  0x008f -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xc0'     #  0x0091 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc8'     #  0x0092 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0x0094 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xda'     #  0x0096 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xcc'     #  0x0098 -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd5'     #  0x0099 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\xd3'     #  0x009f -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\xd2'     #  0x00a9 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp861.py b/Lib/encodings/cp861.py
index 0939b5b..860a05f 100644
--- a/Lib/encodings/cp861.py
+++ b/Lib/encodings/cp861.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xd0'     #  0x008b -> LATIN CAPITAL LETTER ETH
-    u'\xf0'     #  0x008c -> LATIN SMALL LETTER ETH
-    u'\xde'     #  0x008d -> LATIN CAPITAL LETTER THORN
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xfe'     #  0x0095 -> LATIN SMALL LETTER THORN
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xdd'     #  0x0097 -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xfd'     #  0x0098 -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u20a7'   #  0x009e -> PESETA SIGN
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xc1'     #  0x00a4 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xcd'     #  0x00a5 -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xd3'     #  0x00a6 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xda'     #  0x00a7 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\u2310'   #  0x00a9 -> REVERSED NOT SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xd0'     #  0x008b -> LATIN CAPITAL LETTER ETH
+    '\xf0'     #  0x008c -> LATIN SMALL LETTER ETH
+    '\xde'     #  0x008d -> LATIN CAPITAL LETTER THORN
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xfe'     #  0x0095 -> LATIN SMALL LETTER THORN
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xdd'     #  0x0097 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xfd'     #  0x0098 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xc1'     #  0x00a4 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcd'     #  0x00a5 -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xd3'     #  0x00a6 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xda'     #  0x00a7 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp862.py b/Lib/encodings/cp862.py
index ea0405c..3df22f9 100644
--- a/Lib/encodings/cp862.py
+++ b/Lib/encodings/cp862.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\u05d0'   #  0x0080 -> HEBREW LETTER ALEF
-    u'\u05d1'   #  0x0081 -> HEBREW LETTER BET
-    u'\u05d2'   #  0x0082 -> HEBREW LETTER GIMEL
-    u'\u05d3'   #  0x0083 -> HEBREW LETTER DALET
-    u'\u05d4'   #  0x0084 -> HEBREW LETTER HE
-    u'\u05d5'   #  0x0085 -> HEBREW LETTER VAV
-    u'\u05d6'   #  0x0086 -> HEBREW LETTER ZAYIN
-    u'\u05d7'   #  0x0087 -> HEBREW LETTER HET
-    u'\u05d8'   #  0x0088 -> HEBREW LETTER TET
-    u'\u05d9'   #  0x0089 -> HEBREW LETTER YOD
-    u'\u05da'   #  0x008a -> HEBREW LETTER FINAL KAF
-    u'\u05db'   #  0x008b -> HEBREW LETTER KAF
-    u'\u05dc'   #  0x008c -> HEBREW LETTER LAMED
-    u'\u05dd'   #  0x008d -> HEBREW LETTER FINAL MEM
-    u'\u05de'   #  0x008e -> HEBREW LETTER MEM
-    u'\u05df'   #  0x008f -> HEBREW LETTER FINAL NUN
-    u'\u05e0'   #  0x0090 -> HEBREW LETTER NUN
-    u'\u05e1'   #  0x0091 -> HEBREW LETTER SAMEKH
-    u'\u05e2'   #  0x0092 -> HEBREW LETTER AYIN
-    u'\u05e3'   #  0x0093 -> HEBREW LETTER FINAL PE
-    u'\u05e4'   #  0x0094 -> HEBREW LETTER PE
-    u'\u05e5'   #  0x0095 -> HEBREW LETTER FINAL TSADI
-    u'\u05e6'   #  0x0096 -> HEBREW LETTER TSADI
-    u'\u05e7'   #  0x0097 -> HEBREW LETTER QOF
-    u'\u05e8'   #  0x0098 -> HEBREW LETTER RESH
-    u'\u05e9'   #  0x0099 -> HEBREW LETTER SHIN
-    u'\u05ea'   #  0x009a -> HEBREW LETTER TAV
-    u'\xa2'     #  0x009b -> CENT SIGN
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xa5'     #  0x009d -> YEN SIGN
-    u'\u20a7'   #  0x009e -> PESETA SIGN
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\u2310'   #  0x00a9 -> REVERSED NOT SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u05d0'   #  0x0080 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0x0081 -> HEBREW LETTER BET
+    '\u05d2'   #  0x0082 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0x0083 -> HEBREW LETTER DALET
+    '\u05d4'   #  0x0084 -> HEBREW LETTER HE
+    '\u05d5'   #  0x0085 -> HEBREW LETTER VAV
+    '\u05d6'   #  0x0086 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0x0087 -> HEBREW LETTER HET
+    '\u05d8'   #  0x0088 -> HEBREW LETTER TET
+    '\u05d9'   #  0x0089 -> HEBREW LETTER YOD
+    '\u05da'   #  0x008a -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0x008b -> HEBREW LETTER KAF
+    '\u05dc'   #  0x008c -> HEBREW LETTER LAMED
+    '\u05dd'   #  0x008d -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0x008e -> HEBREW LETTER MEM
+    '\u05df'   #  0x008f -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0x0090 -> HEBREW LETTER NUN
+    '\u05e1'   #  0x0091 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0x0092 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0x0093 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0x0094 -> HEBREW LETTER PE
+    '\u05e5'   #  0x0095 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0x0096 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0x0097 -> HEBREW LETTER QOF
+    '\u05e8'   #  0x0098 -> HEBREW LETTER RESH
+    '\u05e9'   #  0x0099 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0x009a -> HEBREW LETTER TAV
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xa5'     #  0x009d -> YEN SIGN
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S (GERMAN)
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp863.py b/Lib/encodings/cp863.py
index 62dfabf..764180b 100644
--- a/Lib/encodings/cp863.py
+++ b/Lib/encodings/cp863.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xc2'     #  0x0084 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xb6'     #  0x0086 -> PILCROW SIGN
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u2017'   #  0x008d -> DOUBLE LOW LINE
-    u'\xc0'     #  0x008e -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xa7'     #  0x008f -> SECTION SIGN
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xc8'     #  0x0091 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xca'     #  0x0092 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xcb'     #  0x0094 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcf'     #  0x0095 -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xa4'     #  0x0098 -> CURRENCY SIGN
-    u'\xd4'     #  0x0099 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xa2'     #  0x009b -> CENT SIGN
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xdb'     #  0x009e -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xa6'     #  0x00a0 -> BROKEN BAR
-    u'\xb4'     #  0x00a1 -> ACUTE ACCENT
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xa8'     #  0x00a4 -> DIAERESIS
-    u'\xb8'     #  0x00a5 -> CEDILLA
-    u'\xb3'     #  0x00a6 -> SUPERSCRIPT THREE
-    u'\xaf'     #  0x00a7 -> MACRON
-    u'\xce'     #  0x00a8 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\u2310'   #  0x00a9 -> REVERSED NOT SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xbe'     #  0x00ad -> VULGAR FRACTION THREE QUARTERS
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xc2'     #  0x0084 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xb6'     #  0x0086 -> PILCROW SIGN
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u2017'   #  0x008d -> DOUBLE LOW LINE
+    '\xc0'     #  0x008e -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xa7'     #  0x008f -> SECTION SIGN
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xc8'     #  0x0091 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xca'     #  0x0092 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xcb'     #  0x0094 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcf'     #  0x0095 -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xa4'     #  0x0098 -> CURRENCY SIGN
+    '\xd4'     #  0x0099 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xa2'     #  0x009b -> CENT SIGN
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd9'     #  0x009d -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xdb'     #  0x009e -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xa6'     #  0x00a0 -> BROKEN BAR
+    '\xb4'     #  0x00a1 -> ACUTE ACCENT
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xa8'     #  0x00a4 -> DIAERESIS
+    '\xb8'     #  0x00a5 -> CEDILLA
+    '\xb3'     #  0x00a6 -> SUPERSCRIPT THREE
+    '\xaf'     #  0x00a7 -> MACRON
+    '\xce'     #  0x00a8 -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xbe'     #  0x00ad -> VULGAR FRACTION THREE QUARTERS
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp864.py b/Lib/encodings/cp864.py
index 02a0e73..53df482 100644
--- a/Lib/encodings/cp864.py
+++ b/Lib/encodings/cp864.py
@@ -176,262 +176,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'\u066a'   #  0x0025 -> ARABIC PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xb0'     #  0x0080 -> DEGREE SIGN
-    u'\xb7'     #  0x0081 -> MIDDLE DOT
-    u'\u2219'   #  0x0082 -> BULLET OPERATOR
-    u'\u221a'   #  0x0083 -> SQUARE ROOT
-    u'\u2592'   #  0x0084 -> MEDIUM SHADE
-    u'\u2500'   #  0x0085 -> FORMS LIGHT HORIZONTAL
-    u'\u2502'   #  0x0086 -> FORMS LIGHT VERTICAL
-    u'\u253c'   #  0x0087 -> FORMS LIGHT VERTICAL AND HORIZONTAL
-    u'\u2524'   #  0x0088 -> FORMS LIGHT VERTICAL AND LEFT
-    u'\u252c'   #  0x0089 -> FORMS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x008a -> FORMS LIGHT VERTICAL AND RIGHT
-    u'\u2534'   #  0x008b -> FORMS LIGHT UP AND HORIZONTAL
-    u'\u2510'   #  0x008c -> FORMS LIGHT DOWN AND LEFT
-    u'\u250c'   #  0x008d -> FORMS LIGHT DOWN AND RIGHT
-    u'\u2514'   #  0x008e -> FORMS LIGHT UP AND RIGHT
-    u'\u2518'   #  0x008f -> FORMS LIGHT UP AND LEFT
-    u'\u03b2'   #  0x0090 -> GREEK SMALL BETA
-    u'\u221e'   #  0x0091 -> INFINITY
-    u'\u03c6'   #  0x0092 -> GREEK SMALL PHI
-    u'\xb1'     #  0x0093 -> PLUS-OR-MINUS SIGN
-    u'\xbd'     #  0x0094 -> FRACTION 1/2
-    u'\xbc'     #  0x0095 -> FRACTION 1/4
-    u'\u2248'   #  0x0096 -> ALMOST EQUAL TO
-    u'\xab'     #  0x0097 -> LEFT POINTING GUILLEMET
-    u'\xbb'     #  0x0098 -> RIGHT POINTING GUILLEMET
-    u'\ufef7'   #  0x0099 -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufef8'   #  0x009a -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
-    u'\ufffe'   #  0x009b -> UNDEFINED
-    u'\ufffe'   #  0x009c -> UNDEFINED
-    u'\ufefb'   #  0x009d -> ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-    u'\ufefc'   #  0x009e -> ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-    u'\ufffe'   #  0x009f -> UNDEFINED
-    u'\xa0'     #  0x00a0 -> NON-BREAKING SPACE
-    u'\xad'     #  0x00a1 -> SOFT HYPHEN
-    u'\ufe82'   #  0x00a2 -> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
-    u'\xa3'     #  0x00a3 -> POUND SIGN
-    u'\xa4'     #  0x00a4 -> CURRENCY SIGN
-    u'\ufe84'   #  0x00a5 -> ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
-    u'\ufffe'   #  0x00a6 -> UNDEFINED
-    u'\ufffe'   #  0x00a7 -> UNDEFINED
-    u'\ufe8e'   #  0x00a8 -> ARABIC LETTER ALEF FINAL FORM
-    u'\ufe8f'   #  0x00a9 -> ARABIC LETTER BEH ISOLATED FORM
-    u'\ufe95'   #  0x00aa -> ARABIC LETTER TEH ISOLATED FORM
-    u'\ufe99'   #  0x00ab -> ARABIC LETTER THEH ISOLATED FORM
-    u'\u060c'   #  0x00ac -> ARABIC COMMA
-    u'\ufe9d'   #  0x00ad -> ARABIC LETTER JEEM ISOLATED FORM
-    u'\ufea1'   #  0x00ae -> ARABIC LETTER HAH ISOLATED FORM
-    u'\ufea5'   #  0x00af -> ARABIC LETTER KHAH ISOLATED FORM
-    u'\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO
-    u'\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE
-    u'\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO
-    u'\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE
-    u'\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR
-    u'\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE
-    u'\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX
-    u'\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN
-    u'\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT
-    u'\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE
-    u'\ufed1'   #  0x00ba -> ARABIC LETTER FEH ISOLATED FORM
-    u'\u061b'   #  0x00bb -> ARABIC SEMICOLON
-    u'\ufeb1'   #  0x00bc -> ARABIC LETTER SEEN ISOLATED FORM
-    u'\ufeb5'   #  0x00bd -> ARABIC LETTER SHEEN ISOLATED FORM
-    u'\ufeb9'   #  0x00be -> ARABIC LETTER SAD ISOLATED FORM
-    u'\u061f'   #  0x00bf -> ARABIC QUESTION MARK
-    u'\xa2'     #  0x00c0 -> CENT SIGN
-    u'\ufe80'   #  0x00c1 -> ARABIC LETTER HAMZA ISOLATED FORM
-    u'\ufe81'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
-    u'\ufe83'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufe85'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
-    u'\ufeca'   #  0x00c5 -> ARABIC LETTER AIN FINAL FORM
-    u'\ufe8b'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
-    u'\ufe8d'   #  0x00c7 -> ARABIC LETTER ALEF ISOLATED FORM
-    u'\ufe91'   #  0x00c8 -> ARABIC LETTER BEH INITIAL FORM
-    u'\ufe93'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
-    u'\ufe97'   #  0x00ca -> ARABIC LETTER TEH INITIAL FORM
-    u'\ufe9b'   #  0x00cb -> ARABIC LETTER THEH INITIAL FORM
-    u'\ufe9f'   #  0x00cc -> ARABIC LETTER JEEM INITIAL FORM
-    u'\ufea3'   #  0x00cd -> ARABIC LETTER HAH INITIAL FORM
-    u'\ufea7'   #  0x00ce -> ARABIC LETTER KHAH INITIAL FORM
-    u'\ufea9'   #  0x00cf -> ARABIC LETTER DAL ISOLATED FORM
-    u'\ufeab'   #  0x00d0 -> ARABIC LETTER THAL ISOLATED FORM
-    u'\ufead'   #  0x00d1 -> ARABIC LETTER REH ISOLATED FORM
-    u'\ufeaf'   #  0x00d2 -> ARABIC LETTER ZAIN ISOLATED FORM
-    u'\ufeb3'   #  0x00d3 -> ARABIC LETTER SEEN INITIAL FORM
-    u'\ufeb7'   #  0x00d4 -> ARABIC LETTER SHEEN INITIAL FORM
-    u'\ufebb'   #  0x00d5 -> ARABIC LETTER SAD INITIAL FORM
-    u'\ufebf'   #  0x00d6 -> ARABIC LETTER DAD INITIAL FORM
-    u'\ufec1'   #  0x00d7 -> ARABIC LETTER TAH ISOLATED FORM
-    u'\ufec5'   #  0x00d8 -> ARABIC LETTER ZAH ISOLATED FORM
-    u'\ufecb'   #  0x00d9 -> ARABIC LETTER AIN INITIAL FORM
-    u'\ufecf'   #  0x00da -> ARABIC LETTER GHAIN INITIAL FORM
-    u'\xa6'     #  0x00db -> BROKEN VERTICAL BAR
-    u'\xac'     #  0x00dc -> NOT SIGN
-    u'\xf7'     #  0x00dd -> DIVISION SIGN
-    u'\xd7'     #  0x00de -> MULTIPLICATION SIGN
-    u'\ufec9'   #  0x00df -> ARABIC LETTER AIN ISOLATED FORM
-    u'\u0640'   #  0x00e0 -> ARABIC TATWEEL
-    u'\ufed3'   #  0x00e1 -> ARABIC LETTER FEH INITIAL FORM
-    u'\ufed7'   #  0x00e2 -> ARABIC LETTER QAF INITIAL FORM
-    u'\ufedb'   #  0x00e3 -> ARABIC LETTER KAF INITIAL FORM
-    u'\ufedf'   #  0x00e4 -> ARABIC LETTER LAM INITIAL FORM
-    u'\ufee3'   #  0x00e5 -> ARABIC LETTER MEEM INITIAL FORM
-    u'\ufee7'   #  0x00e6 -> ARABIC LETTER NOON INITIAL FORM
-    u'\ufeeb'   #  0x00e7 -> ARABIC LETTER HEH INITIAL FORM
-    u'\ufeed'   #  0x00e8 -> ARABIC LETTER WAW ISOLATED FORM
-    u'\ufeef'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA ISOLATED FORM
-    u'\ufef3'   #  0x00ea -> ARABIC LETTER YEH INITIAL FORM
-    u'\ufebd'   #  0x00eb -> ARABIC LETTER DAD ISOLATED FORM
-    u'\ufecc'   #  0x00ec -> ARABIC LETTER AIN MEDIAL FORM
-    u'\ufece'   #  0x00ed -> ARABIC LETTER GHAIN FINAL FORM
-    u'\ufecd'   #  0x00ee -> ARABIC LETTER GHAIN ISOLATED FORM
-    u'\ufee1'   #  0x00ef -> ARABIC LETTER MEEM ISOLATED FORM
-    u'\ufe7d'   #  0x00f0 -> ARABIC SHADDA MEDIAL FORM
-    u'\u0651'   #  0x00f1 -> ARABIC SHADDAH
-    u'\ufee5'   #  0x00f2 -> ARABIC LETTER NOON ISOLATED FORM
-    u'\ufee9'   #  0x00f3 -> ARABIC LETTER HEH ISOLATED FORM
-    u'\ufeec'   #  0x00f4 -> ARABIC LETTER HEH MEDIAL FORM
-    u'\ufef0'   #  0x00f5 -> ARABIC LETTER ALEF MAKSURA FINAL FORM
-    u'\ufef2'   #  0x00f6 -> ARABIC LETTER YEH FINAL FORM
-    u'\ufed0'   #  0x00f7 -> ARABIC LETTER GHAIN MEDIAL FORM
-    u'\ufed5'   #  0x00f8 -> ARABIC LETTER QAF ISOLATED FORM
-    u'\ufef5'   #  0x00f9 -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-    u'\ufef6'   #  0x00fa -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
-    u'\ufedd'   #  0x00fb -> ARABIC LETTER LAM ISOLATED FORM
-    u'\ufed9'   #  0x00fc -> ARABIC LETTER KAF ISOLATED FORM
-    u'\ufef1'   #  0x00fd -> ARABIC LETTER YEH ISOLATED FORM
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\ufffe'   #  0x00ff -> UNDEFINED
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '\u066a'   #  0x0025 -> ARABIC PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xb0'     #  0x0080 -> DEGREE SIGN
+    '\xb7'     #  0x0081 -> MIDDLE DOT
+    '\u2219'   #  0x0082 -> BULLET OPERATOR
+    '\u221a'   #  0x0083 -> SQUARE ROOT
+    '\u2592'   #  0x0084 -> MEDIUM SHADE
+    '\u2500'   #  0x0085 -> FORMS LIGHT HORIZONTAL
+    '\u2502'   #  0x0086 -> FORMS LIGHT VERTICAL
+    '\u253c'   #  0x0087 -> FORMS LIGHT VERTICAL AND HORIZONTAL
+    '\u2524'   #  0x0088 -> FORMS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x0089 -> FORMS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x008a -> FORMS LIGHT VERTICAL AND RIGHT
+    '\u2534'   #  0x008b -> FORMS LIGHT UP AND HORIZONTAL
+    '\u2510'   #  0x008c -> FORMS LIGHT DOWN AND LEFT
+    '\u250c'   #  0x008d -> FORMS LIGHT DOWN AND RIGHT
+    '\u2514'   #  0x008e -> FORMS LIGHT UP AND RIGHT
+    '\u2518'   #  0x008f -> FORMS LIGHT UP AND LEFT
+    '\u03b2'   #  0x0090 -> GREEK SMALL BETA
+    '\u221e'   #  0x0091 -> INFINITY
+    '\u03c6'   #  0x0092 -> GREEK SMALL PHI
+    '\xb1'     #  0x0093 -> PLUS-OR-MINUS SIGN
+    '\xbd'     #  0x0094 -> FRACTION 1/2
+    '\xbc'     #  0x0095 -> FRACTION 1/4
+    '\u2248'   #  0x0096 -> ALMOST EQUAL TO
+    '\xab'     #  0x0097 -> LEFT POINTING GUILLEMET
+    '\xbb'     #  0x0098 -> RIGHT POINTING GUILLEMET
+    '\ufef7'   #  0x0099 -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+    '\ufef8'   #  0x009a -> ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+    '\ufffe'   #  0x009b -> UNDEFINED
+    '\ufffe'   #  0x009c -> UNDEFINED
+    '\ufefb'   #  0x009d -> ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+    '\ufefc'   #  0x009e -> ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+    '\ufffe'   #  0x009f -> UNDEFINED
+    '\xa0'     #  0x00a0 -> NON-BREAKING SPACE
+    '\xad'     #  0x00a1 -> SOFT HYPHEN
+    '\ufe82'   #  0x00a2 -> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+    '\xa3'     #  0x00a3 -> POUND SIGN
+    '\xa4'     #  0x00a4 -> CURRENCY SIGN
+    '\ufe84'   #  0x00a5 -> ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+    '\ufffe'   #  0x00a6 -> UNDEFINED
+    '\ufffe'   #  0x00a7 -> UNDEFINED
+    '\ufe8e'   #  0x00a8 -> ARABIC LETTER ALEF FINAL FORM
+    '\ufe8f'   #  0x00a9 -> ARABIC LETTER BEH ISOLATED FORM
+    '\ufe95'   #  0x00aa -> ARABIC LETTER TEH ISOLATED FORM
+    '\ufe99'   #  0x00ab -> ARABIC LETTER THEH ISOLATED FORM
+    '\u060c'   #  0x00ac -> ARABIC COMMA
+    '\ufe9d'   #  0x00ad -> ARABIC LETTER JEEM ISOLATED FORM
+    '\ufea1'   #  0x00ae -> ARABIC LETTER HAH ISOLATED FORM
+    '\ufea5'   #  0x00af -> ARABIC LETTER KHAH ISOLATED FORM
+    '\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO
+    '\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE
+    '\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO
+    '\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE
+    '\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR
+    '\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE
+    '\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX
+    '\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN
+    '\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT
+    '\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE
+    '\ufed1'   #  0x00ba -> ARABIC LETTER FEH ISOLATED FORM
+    '\u061b'   #  0x00bb -> ARABIC SEMICOLON
+    '\ufeb1'   #  0x00bc -> ARABIC LETTER SEEN ISOLATED FORM
+    '\ufeb5'   #  0x00bd -> ARABIC LETTER SHEEN ISOLATED FORM
+    '\ufeb9'   #  0x00be -> ARABIC LETTER SAD ISOLATED FORM
+    '\u061f'   #  0x00bf -> ARABIC QUESTION MARK
+    '\xa2'     #  0x00c0 -> CENT SIGN
+    '\ufe80'   #  0x00c1 -> ARABIC LETTER HAMZA ISOLATED FORM
+    '\ufe81'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufe83'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM
+    '\ufe85'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM
+    '\ufeca'   #  0x00c5 -> ARABIC LETTER AIN FINAL FORM
+    '\ufe8b'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM
+    '\ufe8d'   #  0x00c7 -> ARABIC LETTER ALEF ISOLATED FORM
+    '\ufe91'   #  0x00c8 -> ARABIC LETTER BEH INITIAL FORM
+    '\ufe93'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA ISOLATED FORM
+    '\ufe97'   #  0x00ca -> ARABIC LETTER TEH INITIAL FORM
+    '\ufe9b'   #  0x00cb -> ARABIC LETTER THEH INITIAL FORM
+    '\ufe9f'   #  0x00cc -> ARABIC LETTER JEEM INITIAL FORM
+    '\ufea3'   #  0x00cd -> ARABIC LETTER HAH INITIAL FORM
+    '\ufea7'   #  0x00ce -> ARABIC LETTER KHAH INITIAL FORM
+    '\ufea9'   #  0x00cf -> ARABIC LETTER DAL ISOLATED FORM
+    '\ufeab'   #  0x00d0 -> ARABIC LETTER THAL ISOLATED FORM
+    '\ufead'   #  0x00d1 -> ARABIC LETTER REH ISOLATED FORM
+    '\ufeaf'   #  0x00d2 -> ARABIC LETTER ZAIN ISOLATED FORM
+    '\ufeb3'   #  0x00d3 -> ARABIC LETTER SEEN INITIAL FORM
+    '\ufeb7'   #  0x00d4 -> ARABIC LETTER SHEEN INITIAL FORM
+    '\ufebb'   #  0x00d5 -> ARABIC LETTER SAD INITIAL FORM
+    '\ufebf'   #  0x00d6 -> ARABIC LETTER DAD INITIAL FORM
+    '\ufec1'   #  0x00d7 -> ARABIC LETTER TAH ISOLATED FORM
+    '\ufec5'   #  0x00d8 -> ARABIC LETTER ZAH ISOLATED FORM
+    '\ufecb'   #  0x00d9 -> ARABIC LETTER AIN INITIAL FORM
+    '\ufecf'   #  0x00da -> ARABIC LETTER GHAIN INITIAL FORM
+    '\xa6'     #  0x00db -> BROKEN VERTICAL BAR
+    '\xac'     #  0x00dc -> NOT SIGN
+    '\xf7'     #  0x00dd -> DIVISION SIGN
+    '\xd7'     #  0x00de -> MULTIPLICATION SIGN
+    '\ufec9'   #  0x00df -> ARABIC LETTER AIN ISOLATED FORM
+    '\u0640'   #  0x00e0 -> ARABIC TATWEEL
+    '\ufed3'   #  0x00e1 -> ARABIC LETTER FEH INITIAL FORM
+    '\ufed7'   #  0x00e2 -> ARABIC LETTER QAF INITIAL FORM
+    '\ufedb'   #  0x00e3 -> ARABIC LETTER KAF INITIAL FORM
+    '\ufedf'   #  0x00e4 -> ARABIC LETTER LAM INITIAL FORM
+    '\ufee3'   #  0x00e5 -> ARABIC LETTER MEEM INITIAL FORM
+    '\ufee7'   #  0x00e6 -> ARABIC LETTER NOON INITIAL FORM
+    '\ufeeb'   #  0x00e7 -> ARABIC LETTER HEH INITIAL FORM
+    '\ufeed'   #  0x00e8 -> ARABIC LETTER WAW ISOLATED FORM
+    '\ufeef'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA ISOLATED FORM
+    '\ufef3'   #  0x00ea -> ARABIC LETTER YEH INITIAL FORM
+    '\ufebd'   #  0x00eb -> ARABIC LETTER DAD ISOLATED FORM
+    '\ufecc'   #  0x00ec -> ARABIC LETTER AIN MEDIAL FORM
+    '\ufece'   #  0x00ed -> ARABIC LETTER GHAIN FINAL FORM
+    '\ufecd'   #  0x00ee -> ARABIC LETTER GHAIN ISOLATED FORM
+    '\ufee1'   #  0x00ef -> ARABIC LETTER MEEM ISOLATED FORM
+    '\ufe7d'   #  0x00f0 -> ARABIC SHADDA MEDIAL FORM
+    '\u0651'   #  0x00f1 -> ARABIC SHADDAH
+    '\ufee5'   #  0x00f2 -> ARABIC LETTER NOON ISOLATED FORM
+    '\ufee9'   #  0x00f3 -> ARABIC LETTER HEH ISOLATED FORM
+    '\ufeec'   #  0x00f4 -> ARABIC LETTER HEH MEDIAL FORM
+    '\ufef0'   #  0x00f5 -> ARABIC LETTER ALEF MAKSURA FINAL FORM
+    '\ufef2'   #  0x00f6 -> ARABIC LETTER YEH FINAL FORM
+    '\ufed0'   #  0x00f7 -> ARABIC LETTER GHAIN MEDIAL FORM
+    '\ufed5'   #  0x00f8 -> ARABIC LETTER QAF ISOLATED FORM
+    '\ufef5'   #  0x00f9 -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+    '\ufef6'   #  0x00fa -> ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+    '\ufedd'   #  0x00fb -> ARABIC LETTER LAM ISOLATED FORM
+    '\ufed9'   #  0x00fc -> ARABIC LETTER KAF ISOLATED FORM
+    '\ufef1'   #  0x00fd -> ARABIC LETTER YEH ISOLATED FORM
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\ufffe'   #  0x00ff -> UNDEFINED
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp865.py b/Lib/encodings/cp865.py
index e9f45f1..6726cf3 100644
--- a/Lib/encodings/cp865.py
+++ b/Lib/encodings/cp865.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
-    u'\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
-    u'\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u20a7'   #  0x009e -> PESETA SIGN
-    u'\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
-    u'\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
-    u'\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
-    u'\u2310'   #  0x00a9 -> REVERSED NOT SIGN
-    u'\xac'     #  0x00aa -> NOT SIGN
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
-    u'\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xa4'     #  0x00af -> CURRENCY SIGN
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
-    u'\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
-    u'\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
-    u'\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
-    u'\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
-    u'\xb5'     #  0x00e6 -> MICRO SIGN
-    u'\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
-    u'\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
-    u'\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
-    u'\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
-    u'\u221e'   #  0x00ec -> INFINITY
-    u'\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
-    u'\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
-    u'\u2229'   #  0x00ef -> INTERSECTION
-    u'\u2261'   #  0x00f0 -> IDENTICAL TO
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
-    u'\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
-    u'\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
-    u'\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
-    u'\xf7'     #  0x00f6 -> DIVISION SIGN
-    u'\u2248'   #  0x00f7 -> ALMOST EQUAL TO
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
-    u'\xb2'     #  0x00fd -> SUPERSCRIPT TWO
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\xc7'     #  0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xfc'     #  0x0081 -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xe9'     #  0x0082 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe2'     #  0x0083 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x0084 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe0'     #  0x0085 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe5'     #  0x0086 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x0087 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xea'     #  0x0088 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0089 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xe8'     #  0x008a -> LATIN SMALL LETTER E WITH GRAVE
+    '\xef'     #  0x008b -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xee'     #  0x008c -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xec'     #  0x008d -> LATIN SMALL LETTER I WITH GRAVE
+    '\xc4'     #  0x008e -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x008f -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc9'     #  0x0090 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xe6'     #  0x0091 -> LATIN SMALL LIGATURE AE
+    '\xc6'     #  0x0092 -> LATIN CAPITAL LIGATURE AE
+    '\xf4'     #  0x0093 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x0094 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf2'     #  0x0095 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xfb'     #  0x0096 -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xf9'     #  0x0097 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xff'     #  0x0098 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\xd6'     #  0x0099 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x009a -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xf8'     #  0x009b -> LATIN SMALL LETTER O WITH STROKE
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\xd8'     #  0x009d -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u20a7'   #  0x009e -> PESETA SIGN
+    '\u0192'   #  0x009f -> LATIN SMALL LETTER F WITH HOOK
+    '\xe1'     #  0x00a0 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xed'     #  0x00a1 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xf3'     #  0x00a2 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xfa'     #  0x00a3 -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf1'     #  0x00a4 -> LATIN SMALL LETTER N WITH TILDE
+    '\xd1'     #  0x00a5 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xaa'     #  0x00a6 -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0x00a7 -> MASCULINE ORDINAL INDICATOR
+    '\xbf'     #  0x00a8 -> INVERTED QUESTION MARK
+    '\u2310'   #  0x00a9 -> REVERSED NOT SIGN
+    '\xac'     #  0x00aa -> NOT SIGN
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\xbc'     #  0x00ac -> VULGAR FRACTION ONE QUARTER
+    '\xa1'     #  0x00ad -> INVERTED EXCLAMATION MARK
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xa4'     #  0x00af -> CURRENCY SIGN
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b1'   #  0x00e0 -> GREEK SMALL LETTER ALPHA
+    '\xdf'     #  0x00e1 -> LATIN SMALL LETTER SHARP S
+    '\u0393'   #  0x00e2 -> GREEK CAPITAL LETTER GAMMA
+    '\u03c0'   #  0x00e3 -> GREEK SMALL LETTER PI
+    '\u03a3'   #  0x00e4 -> GREEK CAPITAL LETTER SIGMA
+    '\u03c3'   #  0x00e5 -> GREEK SMALL LETTER SIGMA
+    '\xb5'     #  0x00e6 -> MICRO SIGN
+    '\u03c4'   #  0x00e7 -> GREEK SMALL LETTER TAU
+    '\u03a6'   #  0x00e8 -> GREEK CAPITAL LETTER PHI
+    '\u0398'   #  0x00e9 -> GREEK CAPITAL LETTER THETA
+    '\u03a9'   #  0x00ea -> GREEK CAPITAL LETTER OMEGA
+    '\u03b4'   #  0x00eb -> GREEK SMALL LETTER DELTA
+    '\u221e'   #  0x00ec -> INFINITY
+    '\u03c6'   #  0x00ed -> GREEK SMALL LETTER PHI
+    '\u03b5'   #  0x00ee -> GREEK SMALL LETTER EPSILON
+    '\u2229'   #  0x00ef -> INTERSECTION
+    '\u2261'   #  0x00f0 -> IDENTICAL TO
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u2265'   #  0x00f2 -> GREATER-THAN OR EQUAL TO
+    '\u2264'   #  0x00f3 -> LESS-THAN OR EQUAL TO
+    '\u2320'   #  0x00f4 -> TOP HALF INTEGRAL
+    '\u2321'   #  0x00f5 -> BOTTOM HALF INTEGRAL
+    '\xf7'     #  0x00f6 -> DIVISION SIGN
+    '\u2248'   #  0x00f7 -> ALMOST EQUAL TO
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u207f'   #  0x00fc -> SUPERSCRIPT LATIN SMALL LETTER N
+    '\xb2'     #  0x00fd -> SUPERSCRIPT TWO
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp866.py b/Lib/encodings/cp866.py
index 29cd85a..bec7ae3 100644
--- a/Lib/encodings/cp866.py
+++ b/Lib/encodings/cp866.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\u0410'   #  0x0080 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0x0081 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0412'   #  0x0082 -> CYRILLIC CAPITAL LETTER VE
-    u'\u0413'   #  0x0083 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0414'   #  0x0084 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0x0085 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0416'   #  0x0086 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0417'   #  0x0087 -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0418'   #  0x0088 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0x008a -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0x008b -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0x008c -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0x008d -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0x008e -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0x008f -> CYRILLIC CAPITAL LETTER PE
-    u'\u0420'   #  0x0090 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0x0091 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0x0092 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0x0093 -> CYRILLIC CAPITAL LETTER U
-    u'\u0424'   #  0x0094 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0425'   #  0x0095 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0426'   #  0x0096 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0427'   #  0x0097 -> CYRILLIC CAPITAL LETTER CHE
-    u'\u0428'   #  0x0098 -> CYRILLIC CAPITAL LETTER SHA
-    u'\u0429'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u042a'   #  0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
-    u'\u042b'   #  0x009b -> CYRILLIC CAPITAL LETTER YERU
-    u'\u042c'   #  0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042d'   #  0x009d -> CYRILLIC CAPITAL LETTER E
-    u'\u042e'   #  0x009e -> CYRILLIC CAPITAL LETTER YU
-    u'\u042f'   #  0x009f -> CYRILLIC CAPITAL LETTER YA
-    u'\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0x00a1 -> CYRILLIC SMALL LETTER BE
-    u'\u0432'   #  0x00a2 -> CYRILLIC SMALL LETTER VE
-    u'\u0433'   #  0x00a3 -> CYRILLIC SMALL LETTER GHE
-    u'\u0434'   #  0x00a4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0x00a5 -> CYRILLIC SMALL LETTER IE
-    u'\u0436'   #  0x00a6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0437'   #  0x00a7 -> CYRILLIC SMALL LETTER ZE
-    u'\u0438'   #  0x00a8 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0x00a9 -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0x00aa -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0x00ab -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0x00ac -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0x00ad -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0x00ae -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0x00af -> CYRILLIC SMALL LETTER PE
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u258c'   #  0x00dd -> LEFT HALF BLOCK
-    u'\u2590'   #  0x00de -> RIGHT HALF BLOCK
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u0440'   #  0x00e0 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0x00e1 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0x00e2 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0x00e3 -> CYRILLIC SMALL LETTER U
-    u'\u0444'   #  0x00e4 -> CYRILLIC SMALL LETTER EF
-    u'\u0445'   #  0x00e5 -> CYRILLIC SMALL LETTER HA
-    u'\u0446'   #  0x00e6 -> CYRILLIC SMALL LETTER TSE
-    u'\u0447'   #  0x00e7 -> CYRILLIC SMALL LETTER CHE
-    u'\u0448'   #  0x00e8 -> CYRILLIC SMALL LETTER SHA
-    u'\u0449'   #  0x00e9 -> CYRILLIC SMALL LETTER SHCHA
-    u'\u044a'   #  0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u044b'   #  0x00eb -> CYRILLIC SMALL LETTER YERU
-    u'\u044c'   #  0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044d'   #  0x00ed -> CYRILLIC SMALL LETTER E
-    u'\u044e'   #  0x00ee -> CYRILLIC SMALL LETTER YU
-    u'\u044f'   #  0x00ef -> CYRILLIC SMALL LETTER YA
-    u'\u0401'   #  0x00f0 -> CYRILLIC CAPITAL LETTER IO
-    u'\u0451'   #  0x00f1 -> CYRILLIC SMALL LETTER IO
-    u'\u0404'   #  0x00f2 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\u0454'   #  0x00f3 -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\u0407'   #  0x00f4 -> CYRILLIC CAPITAL LETTER YI
-    u'\u0457'   #  0x00f5 -> CYRILLIC SMALL LETTER YI
-    u'\u040e'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHORT U
-    u'\u045e'   #  0x00f7 -> CYRILLIC SMALL LETTER SHORT U
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\u2219'   #  0x00f9 -> BULLET OPERATOR
-    u'\xb7'     #  0x00fa -> MIDDLE DOT
-    u'\u221a'   #  0x00fb -> SQUARE ROOT
-    u'\u2116'   #  0x00fc -> NUMERO SIGN
-    u'\xa4'     #  0x00fd -> CURRENCY SIGN
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\u0410'   #  0x0080 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0x0081 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0x0082 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0x0083 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0x0084 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0x0085 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0x0086 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0x0087 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0x0088 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0x0089 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0x008a -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0x008b -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0x008c -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0x008d -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0x008e -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0x008f -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0x0090 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0x0091 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0x0092 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0x0093 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0x0094 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0x0095 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0x0096 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0x0097 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0x0098 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0x0099 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0x009a -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0x009b -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0x009c -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0x009d -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0x009e -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0x009f -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0x00a0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0x00a1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0x00a2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0x00a3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0x00a4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0x00a5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0x00a6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0x00a7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0x00a8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0x00a9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0x00aa -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0x00ab -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0x00ac -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0x00ad -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0x00ae -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0x00af -> CYRILLIC SMALL LETTER PE
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u2561'   #  0x00b5 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u2562'   #  0x00b6 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2556'   #  0x00b7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2555'   #  0x00b8 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255c'   #  0x00bd -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255b'   #  0x00be -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u255e'   #  0x00c6 -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0x00c7 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u2567'   #  0x00cf -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0x00d0 -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2564'   #  0x00d1 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0x00d2 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2559'   #  0x00d3 -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u2558'   #  0x00d4 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2552'   #  0x00d5 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u2553'   #  0x00d6 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u256b'   #  0x00d7 -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256a'   #  0x00d8 -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u258c'   #  0x00dd -> LEFT HALF BLOCK
+    '\u2590'   #  0x00de -> RIGHT HALF BLOCK
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u0440'   #  0x00e0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0x00e1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0x00e2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0x00e3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0x00e4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0x00e5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0x00e6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0x00e7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0x00e8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0x00e9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0x00ea -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0x00eb -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0x00ec -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0x00ed -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0x00ee -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0x00ef -> CYRILLIC SMALL LETTER YA
+    '\u0401'   #  0x00f0 -> CYRILLIC CAPITAL LETTER IO
+    '\u0451'   #  0x00f1 -> CYRILLIC SMALL LETTER IO
+    '\u0404'   #  0x00f2 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0454'   #  0x00f3 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0407'   #  0x00f4 -> CYRILLIC CAPITAL LETTER YI
+    '\u0457'   #  0x00f5 -> CYRILLIC SMALL LETTER YI
+    '\u040e'   #  0x00f6 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0x00f7 -> CYRILLIC SMALL LETTER SHORT U
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\u2219'   #  0x00f9 -> BULLET OPERATOR
+    '\xb7'     #  0x00fa -> MIDDLE DOT
+    '\u221a'   #  0x00fb -> SQUARE ROOT
+    '\u2116'   #  0x00fc -> NUMERO SIGN
+    '\xa4'     #  0x00fd -> CURRENCY SIGN
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp869.py b/Lib/encodings/cp869.py
index b4dc99b..8d8a29b 100644
--- a/Lib/encodings/cp869.py
+++ b/Lib/encodings/cp869.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> NULL
-    u'\x01'     #  0x0001 -> START OF HEADING
-    u'\x02'     #  0x0002 -> START OF TEXT
-    u'\x03'     #  0x0003 -> END OF TEXT
-    u'\x04'     #  0x0004 -> END OF TRANSMISSION
-    u'\x05'     #  0x0005 -> ENQUIRY
-    u'\x06'     #  0x0006 -> ACKNOWLEDGE
-    u'\x07'     #  0x0007 -> BELL
-    u'\x08'     #  0x0008 -> BACKSPACE
-    u'\t'       #  0x0009 -> HORIZONTAL TABULATION
-    u'\n'       #  0x000a -> LINE FEED
-    u'\x0b'     #  0x000b -> VERTICAL TABULATION
-    u'\x0c'     #  0x000c -> FORM FEED
-    u'\r'       #  0x000d -> CARRIAGE RETURN
-    u'\x0e'     #  0x000e -> SHIFT OUT
-    u'\x0f'     #  0x000f -> SHIFT IN
-    u'\x10'     #  0x0010 -> DATA LINK ESCAPE
-    u'\x11'     #  0x0011 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x0012 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x0013 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x0014 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x0016 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x0018 -> CANCEL
-    u'\x19'     #  0x0019 -> END OF MEDIUM
-    u'\x1a'     #  0x001a -> SUBSTITUTE
-    u'\x1b'     #  0x001b -> ESCAPE
-    u'\x1c'     #  0x001c -> FILE SEPARATOR
-    u'\x1d'     #  0x001d -> GROUP SEPARATOR
-    u'\x1e'     #  0x001e -> RECORD SEPARATOR
-    u'\x1f'     #  0x001f -> UNIT SEPARATOR
-    u' '        #  0x0020 -> SPACE
-    u'!'        #  0x0021 -> EXCLAMATION MARK
-    u'"'        #  0x0022 -> QUOTATION MARK
-    u'#'        #  0x0023 -> NUMBER SIGN
-    u'$'        #  0x0024 -> DOLLAR SIGN
-    u'%'        #  0x0025 -> PERCENT SIGN
-    u'&'        #  0x0026 -> AMPERSAND
-    u"'"        #  0x0027 -> APOSTROPHE
-    u'('        #  0x0028 -> LEFT PARENTHESIS
-    u')'        #  0x0029 -> RIGHT PARENTHESIS
-    u'*'        #  0x002a -> ASTERISK
-    u'+'        #  0x002b -> PLUS SIGN
-    u','        #  0x002c -> COMMA
-    u'-'        #  0x002d -> HYPHEN-MINUS
-    u'.'        #  0x002e -> FULL STOP
-    u'/'        #  0x002f -> SOLIDUS
-    u'0'        #  0x0030 -> DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE
-    u':'        #  0x003a -> COLON
-    u';'        #  0x003b -> SEMICOLON
-    u'<'        #  0x003c -> LESS-THAN SIGN
-    u'='        #  0x003d -> EQUALS SIGN
-    u'>'        #  0x003e -> GREATER-THAN SIGN
-    u'?'        #  0x003f -> QUESTION MARK
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET
-    u'\\'       #  0x005c -> REVERSE SOLIDUS
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT
-    u'_'        #  0x005f -> LOW LINE
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET
-    u'|'        #  0x007c -> VERTICAL LINE
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> DELETE
-    u'\ufffe'   #  0x0080 -> UNDEFINED
-    u'\ufffe'   #  0x0081 -> UNDEFINED
-    u'\ufffe'   #  0x0082 -> UNDEFINED
-    u'\ufffe'   #  0x0083 -> UNDEFINED
-    u'\ufffe'   #  0x0084 -> UNDEFINED
-    u'\ufffe'   #  0x0085 -> UNDEFINED
-    u'\u0386'   #  0x0086 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\ufffe'   #  0x0087 -> UNDEFINED
-    u'\xb7'     #  0x0088 -> MIDDLE DOT
-    u'\xac'     #  0x0089 -> NOT SIGN
-    u'\xa6'     #  0x008a -> BROKEN BAR
-    u'\u2018'   #  0x008b -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x008c -> RIGHT SINGLE QUOTATION MARK
-    u'\u0388'   #  0x008d -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u2015'   #  0x008e -> HORIZONTAL BAR
-    u'\u0389'   #  0x008f -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\u038a'   #  0x0090 -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\u03aa'   #  0x0091 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\u038c'   #  0x0092 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\ufffe'   #  0x0093 -> UNDEFINED
-    u'\ufffe'   #  0x0094 -> UNDEFINED
-    u'\u038e'   #  0x0095 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u03ab'   #  0x0096 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'\xa9'     #  0x0097 -> COPYRIGHT SIGN
-    u'\u038f'   #  0x0098 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'\xb2'     #  0x0099 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0x009a -> SUPERSCRIPT THREE
-    u'\u03ac'   #  0x009b -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\xa3'     #  0x009c -> POUND SIGN
-    u'\u03ad'   #  0x009d -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0x009e -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03af'   #  0x009f -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03ca'   #  0x00a0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u0390'   #  0x00a1 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    u'\u03cc'   #  0x00a2 -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u03cd'   #  0x00a3 -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u0391'   #  0x00a4 -> GREEK CAPITAL LETTER ALPHA
-    u'\u0392'   #  0x00a5 -> GREEK CAPITAL LETTER BETA
-    u'\u0393'   #  0x00a6 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0x00a7 -> GREEK CAPITAL LETTER DELTA
-    u'\u0395'   #  0x00a8 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0x00a9 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0x00aa -> GREEK CAPITAL LETTER ETA
-    u'\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
-    u'\u0398'   #  0x00ac -> GREEK CAPITAL LETTER THETA
-    u'\u0399'   #  0x00ad -> GREEK CAPITAL LETTER IOTA
-    u'\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2591'   #  0x00b0 -> LIGHT SHADE
-    u'\u2592'   #  0x00b1 -> MEDIUM SHADE
-    u'\u2593'   #  0x00b2 -> DARK SHADE
-    u'\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u039a'   #  0x00b5 -> GREEK CAPITAL LETTER KAPPA
-    u'\u039b'   #  0x00b6 -> GREEK CAPITAL LETTER LAMDA
-    u'\u039c'   #  0x00b7 -> GREEK CAPITAL LETTER MU
-    u'\u039d'   #  0x00b8 -> GREEK CAPITAL LETTER NU
-    u'\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u039e'   #  0x00bd -> GREEK CAPITAL LETTER XI
-    u'\u039f'   #  0x00be -> GREEK CAPITAL LETTER OMICRON
-    u'\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u03a0'   #  0x00c6 -> GREEK CAPITAL LETTER PI
-    u'\u03a1'   #  0x00c7 -> GREEK CAPITAL LETTER RHO
-    u'\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\u03a3'   #  0x00cf -> GREEK CAPITAL LETTER SIGMA
-    u'\u03a4'   #  0x00d0 -> GREEK CAPITAL LETTER TAU
-    u'\u03a5'   #  0x00d1 -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a6'   #  0x00d2 -> GREEK CAPITAL LETTER PHI
-    u'\u03a7'   #  0x00d3 -> GREEK CAPITAL LETTER CHI
-    u'\u03a8'   #  0x00d4 -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0x00d5 -> GREEK CAPITAL LETTER OMEGA
-    u'\u03b1'   #  0x00d6 -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0x00d7 -> GREEK SMALL LETTER BETA
-    u'\u03b3'   #  0x00d8 -> GREEK SMALL LETTER GAMMA
-    u'\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2588'   #  0x00db -> FULL BLOCK
-    u'\u2584'   #  0x00dc -> LOWER HALF BLOCK
-    u'\u03b4'   #  0x00dd -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0x00de -> GREEK SMALL LETTER EPSILON
-    u'\u2580'   #  0x00df -> UPPER HALF BLOCK
-    u'\u03b6'   #  0x00e0 -> GREEK SMALL LETTER ZETA
-    u'\u03b7'   #  0x00e1 -> GREEK SMALL LETTER ETA
-    u'\u03b8'   #  0x00e2 -> GREEK SMALL LETTER THETA
-    u'\u03b9'   #  0x00e3 -> GREEK SMALL LETTER IOTA
-    u'\u03ba'   #  0x00e4 -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0x00e5 -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0x00e6 -> GREEK SMALL LETTER MU
-    u'\u03bd'   #  0x00e7 -> GREEK SMALL LETTER NU
-    u'\u03be'   #  0x00e8 -> GREEK SMALL LETTER XI
-    u'\u03bf'   #  0x00e9 -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0x00ea -> GREEK SMALL LETTER PI
-    u'\u03c1'   #  0x00eb -> GREEK SMALL LETTER RHO
-    u'\u03c3'   #  0x00ec -> GREEK SMALL LETTER SIGMA
-    u'\u03c2'   #  0x00ed -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c4'   #  0x00ee -> GREEK SMALL LETTER TAU
-    u'\u0384'   #  0x00ef -> GREEK TONOS
-    u'\xad'     #  0x00f0 -> SOFT HYPHEN
-    u'\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
-    u'\u03c5'   #  0x00f2 -> GREEK SMALL LETTER UPSILON
-    u'\u03c6'   #  0x00f3 -> GREEK SMALL LETTER PHI
-    u'\u03c7'   #  0x00f4 -> GREEK SMALL LETTER CHI
-    u'\xa7'     #  0x00f5 -> SECTION SIGN
-    u'\u03c8'   #  0x00f6 -> GREEK SMALL LETTER PSI
-    u'\u0385'   #  0x00f7 -> GREEK DIALYTIKA TONOS
-    u'\xb0'     #  0x00f8 -> DEGREE SIGN
-    u'\xa8'     #  0x00f9 -> DIAERESIS
-    u'\u03c9'   #  0x00fa -> GREEK SMALL LETTER OMEGA
-    u'\u03cb'   #  0x00fb -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u03b0'   #  0x00fc -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    u'\u03ce'   #  0x00fd -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\u25a0'   #  0x00fe -> BLACK SQUARE
-    u'\xa0'     #  0x00ff -> NO-BREAK SPACE
+    '\x00'     #  0x0000 -> NULL
+    '\x01'     #  0x0001 -> START OF HEADING
+    '\x02'     #  0x0002 -> START OF TEXT
+    '\x03'     #  0x0003 -> END OF TEXT
+    '\x04'     #  0x0004 -> END OF TRANSMISSION
+    '\x05'     #  0x0005 -> ENQUIRY
+    '\x06'     #  0x0006 -> ACKNOWLEDGE
+    '\x07'     #  0x0007 -> BELL
+    '\x08'     #  0x0008 -> BACKSPACE
+    '\t'       #  0x0009 -> HORIZONTAL TABULATION
+    '\n'       #  0x000a -> LINE FEED
+    '\x0b'     #  0x000b -> VERTICAL TABULATION
+    '\x0c'     #  0x000c -> FORM FEED
+    '\r'       #  0x000d -> CARRIAGE RETURN
+    '\x0e'     #  0x000e -> SHIFT OUT
+    '\x0f'     #  0x000f -> SHIFT IN
+    '\x10'     #  0x0010 -> DATA LINK ESCAPE
+    '\x11'     #  0x0011 -> DEVICE CONTROL ONE
+    '\x12'     #  0x0012 -> DEVICE CONTROL TWO
+    '\x13'     #  0x0013 -> DEVICE CONTROL THREE
+    '\x14'     #  0x0014 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x0015 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x0016 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x0017 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x0018 -> CANCEL
+    '\x19'     #  0x0019 -> END OF MEDIUM
+    '\x1a'     #  0x001a -> SUBSTITUTE
+    '\x1b'     #  0x001b -> ESCAPE
+    '\x1c'     #  0x001c -> FILE SEPARATOR
+    '\x1d'     #  0x001d -> GROUP SEPARATOR
+    '\x1e'     #  0x001e -> RECORD SEPARATOR
+    '\x1f'     #  0x001f -> UNIT SEPARATOR
+    ' '        #  0x0020 -> SPACE
+    '!'        #  0x0021 -> EXCLAMATION MARK
+    '"'        #  0x0022 -> QUOTATION MARK
+    '#'        #  0x0023 -> NUMBER SIGN
+    '$'        #  0x0024 -> DOLLAR SIGN
+    '%'        #  0x0025 -> PERCENT SIGN
+    '&'        #  0x0026 -> AMPERSAND
+    "'"        #  0x0027 -> APOSTROPHE
+    '('        #  0x0028 -> LEFT PARENTHESIS
+    ')'        #  0x0029 -> RIGHT PARENTHESIS
+    '*'        #  0x002a -> ASTERISK
+    '+'        #  0x002b -> PLUS SIGN
+    ','        #  0x002c -> COMMA
+    '-'        #  0x002d -> HYPHEN-MINUS
+    '.'        #  0x002e -> FULL STOP
+    '/'        #  0x002f -> SOLIDUS
+    '0'        #  0x0030 -> DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE
+    ':'        #  0x003a -> COLON
+    ';'        #  0x003b -> SEMICOLON
+    '<'        #  0x003c -> LESS-THAN SIGN
+    '='        #  0x003d -> EQUALS SIGN
+    '>'        #  0x003e -> GREATER-THAN SIGN
+    '?'        #  0x003f -> QUESTION MARK
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET
+    '\\'       #  0x005c -> REVERSE SOLIDUS
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT
+    '_'        #  0x005f -> LOW LINE
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET
+    '|'        #  0x007c -> VERTICAL LINE
+    '}'        #  0x007d -> RIGHT CURLY BRACKET
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> DELETE
+    '\ufffe'   #  0x0080 -> UNDEFINED
+    '\ufffe'   #  0x0081 -> UNDEFINED
+    '\ufffe'   #  0x0082 -> UNDEFINED
+    '\ufffe'   #  0x0083 -> UNDEFINED
+    '\ufffe'   #  0x0084 -> UNDEFINED
+    '\ufffe'   #  0x0085 -> UNDEFINED
+    '\u0386'   #  0x0086 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\ufffe'   #  0x0087 -> UNDEFINED
+    '\xb7'     #  0x0088 -> MIDDLE DOT
+    '\xac'     #  0x0089 -> NOT SIGN
+    '\xa6'     #  0x008a -> BROKEN BAR
+    '\u2018'   #  0x008b -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x008c -> RIGHT SINGLE QUOTATION MARK
+    '\u0388'   #  0x008d -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u2015'   #  0x008e -> HORIZONTAL BAR
+    '\u0389'   #  0x008f -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0x0090 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u03aa'   #  0x0091 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u038c'   #  0x0092 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\ufffe'   #  0x0093 -> UNDEFINED
+    '\ufffe'   #  0x0094 -> UNDEFINED
+    '\u038e'   #  0x0095 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u03ab'   #  0x0096 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\xa9'     #  0x0097 -> COPYRIGHT SIGN
+    '\u038f'   #  0x0098 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\xb2'     #  0x0099 -> SUPERSCRIPT TWO
+    '\xb3'     #  0x009a -> SUPERSCRIPT THREE
+    '\u03ac'   #  0x009b -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\xa3'     #  0x009c -> POUND SIGN
+    '\u03ad'   #  0x009d -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0x009e -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0x009f -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03ca'   #  0x00a0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u0390'   #  0x00a1 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03cc'   #  0x00a2 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0x00a3 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u0391'   #  0x00a4 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x00a5 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x00a6 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x00a7 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x00a8 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x00a9 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x00aa -> GREEK CAPITAL LETTER ETA
+    '\xbd'     #  0x00ab -> VULGAR FRACTION ONE HALF
+    '\u0398'   #  0x00ac -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x00ad -> GREEK CAPITAL LETTER IOTA
+    '\xab'     #  0x00ae -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0x00af -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2591'   #  0x00b0 -> LIGHT SHADE
+    '\u2592'   #  0x00b1 -> MEDIUM SHADE
+    '\u2593'   #  0x00b2 -> DARK SHADE
+    '\u2502'   #  0x00b3 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u2524'   #  0x00b4 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u039a'   #  0x00b5 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x00b6 -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x00b7 -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x00b8 -> GREEK CAPITAL LETTER NU
+    '\u2563'   #  0x00b9 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2551'   #  0x00ba -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2557'   #  0x00bb -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u255d'   #  0x00bc -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u039e'   #  0x00bd -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x00be -> GREEK CAPITAL LETTER OMICRON
+    '\u2510'   #  0x00bf -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x00c0 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2534'   #  0x00c1 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u252c'   #  0x00c2 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u251c'   #  0x00c3 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2500'   #  0x00c4 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u253c'   #  0x00c5 -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u03a0'   #  0x00c6 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x00c7 -> GREEK CAPITAL LETTER RHO
+    '\u255a'   #  0x00c8 -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u2554'   #  0x00c9 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2569'   #  0x00ca -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u2566'   #  0x00cb -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2560'   #  0x00cc -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2550'   #  0x00cd -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u256c'   #  0x00ce -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\u03a3'   #  0x00cf -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0x00d0 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x00d1 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x00d2 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x00d3 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x00d4 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x00d5 -> GREEK CAPITAL LETTER OMEGA
+    '\u03b1'   #  0x00d6 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x00d7 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x00d8 -> GREEK SMALL LETTER GAMMA
+    '\u2518'   #  0x00d9 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u250c'   #  0x00da -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2588'   #  0x00db -> FULL BLOCK
+    '\u2584'   #  0x00dc -> LOWER HALF BLOCK
+    '\u03b4'   #  0x00dd -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x00de -> GREEK SMALL LETTER EPSILON
+    '\u2580'   #  0x00df -> UPPER HALF BLOCK
+    '\u03b6'   #  0x00e0 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0x00e1 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x00e2 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x00e3 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x00e4 -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x00e5 -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x00e6 -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0x00e7 -> GREEK SMALL LETTER NU
+    '\u03be'   #  0x00e8 -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0x00e9 -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0x00ea -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0x00eb -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0x00ec -> GREEK SMALL LETTER SIGMA
+    '\u03c2'   #  0x00ed -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0x00ee -> GREEK SMALL LETTER TAU
+    '\u0384'   #  0x00ef -> GREEK TONOS
+    '\xad'     #  0x00f0 -> SOFT HYPHEN
+    '\xb1'     #  0x00f1 -> PLUS-MINUS SIGN
+    '\u03c5'   #  0x00f2 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0x00f3 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0x00f4 -> GREEK SMALL LETTER CHI
+    '\xa7'     #  0x00f5 -> SECTION SIGN
+    '\u03c8'   #  0x00f6 -> GREEK SMALL LETTER PSI
+    '\u0385'   #  0x00f7 -> GREEK DIALYTIKA TONOS
+    '\xb0'     #  0x00f8 -> DEGREE SIGN
+    '\xa8'     #  0x00f9 -> DIAERESIS
+    '\u03c9'   #  0x00fa -> GREEK SMALL LETTER OMEGA
+    '\u03cb'   #  0x00fb -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03b0'   #  0x00fc -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03ce'   #  0x00fd -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u25a0'   #  0x00fe -> BLACK SQUARE
+    '\xa0'     #  0x00ff -> NO-BREAK SPACE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/cp874.py b/Lib/encodings/cp874.py
index 6110f46..59bfcbc 100644
--- a/Lib/encodings/cp874.py
+++ b/Lib/encodings/cp874.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u20ac'   #  0x80 -> EURO SIGN
-    u'\ufffe'   #  0x81 -> UNDEFINED
-    u'\ufffe'   #  0x82 -> UNDEFINED
-    u'\ufffe'   #  0x83 -> UNDEFINED
-    u'\ufffe'   #  0x84 -> UNDEFINED
-    u'\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
-    u'\ufffe'   #  0x86 -> UNDEFINED
-    u'\ufffe'   #  0x87 -> UNDEFINED
-    u'\ufffe'   #  0x88 -> UNDEFINED
-    u'\ufffe'   #  0x89 -> UNDEFINED
-    u'\ufffe'   #  0x8A -> UNDEFINED
-    u'\ufffe'   #  0x8B -> UNDEFINED
-    u'\ufffe'   #  0x8C -> UNDEFINED
-    u'\ufffe'   #  0x8D -> UNDEFINED
-    u'\ufffe'   #  0x8E -> UNDEFINED
-    u'\ufffe'   #  0x8F -> UNDEFINED
-    u'\ufffe'   #  0x90 -> UNDEFINED
-    u'\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
-    u'\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2022'   #  0x95 -> BULLET
-    u'\u2013'   #  0x96 -> EN DASH
-    u'\u2014'   #  0x97 -> EM DASH
-    u'\ufffe'   #  0x98 -> UNDEFINED
-    u'\ufffe'   #  0x99 -> UNDEFINED
-    u'\ufffe'   #  0x9A -> UNDEFINED
-    u'\ufffe'   #  0x9B -> UNDEFINED
-    u'\ufffe'   #  0x9C -> UNDEFINED
-    u'\ufffe'   #  0x9D -> UNDEFINED
-    u'\ufffe'   #  0x9E -> UNDEFINED
-    u'\ufffe'   #  0x9F -> UNDEFINED
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
-    u'\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
-    u'\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
-    u'\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
-    u'\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
-    u'\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
-    u'\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
-    u'\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
-    u'\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
-    u'\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
-    u'\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
-    u'\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
-    u'\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
-    u'\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
-    u'\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
-    u'\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
-    u'\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
-    u'\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
-    u'\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
-    u'\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
-    u'\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
-    u'\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
-    u'\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
-    u'\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
-    u'\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
-    u'\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
-    u'\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
-    u'\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
-    u'\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
-    u'\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
-    u'\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
-    u'\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
-    u'\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
-    u'\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
-    u'\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
-    u'\u0e24'   #  0xC4 -> THAI CHARACTER RU
-    u'\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
-    u'\u0e26'   #  0xC6 -> THAI CHARACTER LU
-    u'\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
-    u'\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
-    u'\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
-    u'\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
-    u'\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
-    u'\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
-    u'\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
-    u'\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
-    u'\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
-    u'\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
-    u'\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
-    u'\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
-    u'\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
-    u'\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
-    u'\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
-    u'\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
-    u'\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
-    u'\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
-    u'\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
-    u'\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
-    u'\ufffe'   #  0xDB -> UNDEFINED
-    u'\ufffe'   #  0xDC -> UNDEFINED
-    u'\ufffe'   #  0xDD -> UNDEFINED
-    u'\ufffe'   #  0xDE -> UNDEFINED
-    u'\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
-    u'\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
-    u'\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
-    u'\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
-    u'\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
-    u'\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
-    u'\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
-    u'\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
-    u'\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
-    u'\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
-    u'\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
-    u'\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
-    u'\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
-    u'\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
-    u'\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
-    u'\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
-    u'\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
-    u'\u0e50'   #  0xF0 -> THAI DIGIT ZERO
-    u'\u0e51'   #  0xF1 -> THAI DIGIT ONE
-    u'\u0e52'   #  0xF2 -> THAI DIGIT TWO
-    u'\u0e53'   #  0xF3 -> THAI DIGIT THREE
-    u'\u0e54'   #  0xF4 -> THAI DIGIT FOUR
-    u'\u0e55'   #  0xF5 -> THAI DIGIT FIVE
-    u'\u0e56'   #  0xF6 -> THAI DIGIT SIX
-    u'\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
-    u'\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
-    u'\u0e59'   #  0xF9 -> THAI DIGIT NINE
-    u'\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
-    u'\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
-    u'\ufffe'   #  0xFC -> UNDEFINED
-    u'\ufffe'   #  0xFD -> UNDEFINED
-    u'\ufffe'   #  0xFE -> UNDEFINED
-    u'\ufffe'   #  0xFF -> UNDEFINED
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u20ac'   #  0x80 -> EURO SIGN
+    '\ufffe'   #  0x81 -> UNDEFINED
+    '\ufffe'   #  0x82 -> UNDEFINED
+    '\ufffe'   #  0x83 -> UNDEFINED
+    '\ufffe'   #  0x84 -> UNDEFINED
+    '\u2026'   #  0x85 -> HORIZONTAL ELLIPSIS
+    '\ufffe'   #  0x86 -> UNDEFINED
+    '\ufffe'   #  0x87 -> UNDEFINED
+    '\ufffe'   #  0x88 -> UNDEFINED
+    '\ufffe'   #  0x89 -> UNDEFINED
+    '\ufffe'   #  0x8A -> UNDEFINED
+    '\ufffe'   #  0x8B -> UNDEFINED
+    '\ufffe'   #  0x8C -> UNDEFINED
+    '\ufffe'   #  0x8D -> UNDEFINED
+    '\ufffe'   #  0x8E -> UNDEFINED
+    '\ufffe'   #  0x8F -> UNDEFINED
+    '\ufffe'   #  0x90 -> UNDEFINED
+    '\u2018'   #  0x91 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0x92 -> RIGHT SINGLE QUOTATION MARK
+    '\u201c'   #  0x93 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0x94 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2022'   #  0x95 -> BULLET
+    '\u2013'   #  0x96 -> EN DASH
+    '\u2014'   #  0x97 -> EM DASH
+    '\ufffe'   #  0x98 -> UNDEFINED
+    '\ufffe'   #  0x99 -> UNDEFINED
+    '\ufffe'   #  0x9A -> UNDEFINED
+    '\ufffe'   #  0x9B -> UNDEFINED
+    '\ufffe'   #  0x9C -> UNDEFINED
+    '\ufffe'   #  0x9D -> UNDEFINED
+    '\ufffe'   #  0x9E -> UNDEFINED
+    '\ufffe'   #  0x9F -> UNDEFINED
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'   #  0xDB -> UNDEFINED
+    '\ufffe'   #  0xDC -> UNDEFINED
+    '\ufffe'   #  0xDD -> UNDEFINED
+    '\ufffe'   #  0xDE -> UNDEFINED
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'   #  0xFC -> UNDEFINED
+    '\ufffe'   #  0xFD -> UNDEFINED
+    '\ufffe'   #  0xFE -> UNDEFINED
+    '\ufffe'   #  0xFF -> UNDEFINED
 )
 
 ### Encoding table
diff --git a/Lib/encodings/cp875.py b/Lib/encodings/cp875.py
index 72b160b..c25a5a4 100644
--- a/Lib/encodings/cp875.py
+++ b/Lib/encodings/cp875.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x9c'     #  0x04 -> CONTROL
-    u'\t'       #  0x05 -> HORIZONTAL TABULATION
-    u'\x86'     #  0x06 -> CONTROL
-    u'\x7f'     #  0x07 -> DELETE
-    u'\x97'     #  0x08 -> CONTROL
-    u'\x8d'     #  0x09 -> CONTROL
-    u'\x8e'     #  0x0A -> CONTROL
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x9d'     #  0x14 -> CONTROL
-    u'\x85'     #  0x15 -> CONTROL
-    u'\x08'     #  0x16 -> BACKSPACE
-    u'\x87'     #  0x17 -> CONTROL
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x92'     #  0x1A -> CONTROL
-    u'\x8f'     #  0x1B -> CONTROL
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u'\x80'     #  0x20 -> CONTROL
-    u'\x81'     #  0x21 -> CONTROL
-    u'\x82'     #  0x22 -> CONTROL
-    u'\x83'     #  0x23 -> CONTROL
-    u'\x84'     #  0x24 -> CONTROL
-    u'\n'       #  0x25 -> LINE FEED
-    u'\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
-    u'\x1b'     #  0x27 -> ESCAPE
-    u'\x88'     #  0x28 -> CONTROL
-    u'\x89'     #  0x29 -> CONTROL
-    u'\x8a'     #  0x2A -> CONTROL
-    u'\x8b'     #  0x2B -> CONTROL
-    u'\x8c'     #  0x2C -> CONTROL
-    u'\x05'     #  0x2D -> ENQUIRY
-    u'\x06'     #  0x2E -> ACKNOWLEDGE
-    u'\x07'     #  0x2F -> BELL
-    u'\x90'     #  0x30 -> CONTROL
-    u'\x91'     #  0x31 -> CONTROL
-    u'\x16'     #  0x32 -> SYNCHRONOUS IDLE
-    u'\x93'     #  0x33 -> CONTROL
-    u'\x94'     #  0x34 -> CONTROL
-    u'\x95'     #  0x35 -> CONTROL
-    u'\x96'     #  0x36 -> CONTROL
-    u'\x04'     #  0x37 -> END OF TRANSMISSION
-    u'\x98'     #  0x38 -> CONTROL
-    u'\x99'     #  0x39 -> CONTROL
-    u'\x9a'     #  0x3A -> CONTROL
-    u'\x9b'     #  0x3B -> CONTROL
-    u'\x14'     #  0x3C -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
-    u'\x9e'     #  0x3E -> CONTROL
-    u'\x1a'     #  0x3F -> SUBSTITUTE
-    u' '        #  0x40 -> SPACE
-    u'\u0391'   #  0x41 -> GREEK CAPITAL LETTER ALPHA
-    u'\u0392'   #  0x42 -> GREEK CAPITAL LETTER BETA
-    u'\u0393'   #  0x43 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0x44 -> GREEK CAPITAL LETTER DELTA
-    u'\u0395'   #  0x45 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0x46 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0x47 -> GREEK CAPITAL LETTER ETA
-    u'\u0398'   #  0x48 -> GREEK CAPITAL LETTER THETA
-    u'\u0399'   #  0x49 -> GREEK CAPITAL LETTER IOTA
-    u'['        #  0x4A -> LEFT SQUARE BRACKET
-    u'.'        #  0x4B -> FULL STOP
-    u'<'        #  0x4C -> LESS-THAN SIGN
-    u'('        #  0x4D -> LEFT PARENTHESIS
-    u'+'        #  0x4E -> PLUS SIGN
-    u'!'        #  0x4F -> EXCLAMATION MARK
-    u'&'        #  0x50 -> AMPERSAND
-    u'\u039a'   #  0x51 -> GREEK CAPITAL LETTER KAPPA
-    u'\u039b'   #  0x52 -> GREEK CAPITAL LETTER LAMDA
-    u'\u039c'   #  0x53 -> GREEK CAPITAL LETTER MU
-    u'\u039d'   #  0x54 -> GREEK CAPITAL LETTER NU
-    u'\u039e'   #  0x55 -> GREEK CAPITAL LETTER XI
-    u'\u039f'   #  0x56 -> GREEK CAPITAL LETTER OMICRON
-    u'\u03a0'   #  0x57 -> GREEK CAPITAL LETTER PI
-    u'\u03a1'   #  0x58 -> GREEK CAPITAL LETTER RHO
-    u'\u03a3'   #  0x59 -> GREEK CAPITAL LETTER SIGMA
-    u']'        #  0x5A -> RIGHT SQUARE BRACKET
-    u'$'        #  0x5B -> DOLLAR SIGN
-    u'*'        #  0x5C -> ASTERISK
-    u')'        #  0x5D -> RIGHT PARENTHESIS
-    u';'        #  0x5E -> SEMICOLON
-    u'^'        #  0x5F -> CIRCUMFLEX ACCENT
-    u'-'        #  0x60 -> HYPHEN-MINUS
-    u'/'        #  0x61 -> SOLIDUS
-    u'\u03a4'   #  0x62 -> GREEK CAPITAL LETTER TAU
-    u'\u03a5'   #  0x63 -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a6'   #  0x64 -> GREEK CAPITAL LETTER PHI
-    u'\u03a7'   #  0x65 -> GREEK CAPITAL LETTER CHI
-    u'\u03a8'   #  0x66 -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0x67 -> GREEK CAPITAL LETTER OMEGA
-    u'\u03aa'   #  0x68 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\u03ab'   #  0x69 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'|'        #  0x6A -> VERTICAL LINE
-    u','        #  0x6B -> COMMA
-    u'%'        #  0x6C -> PERCENT SIGN
-    u'_'        #  0x6D -> LOW LINE
-    u'>'        #  0x6E -> GREATER-THAN SIGN
-    u'?'        #  0x6F -> QUESTION MARK
-    u'\xa8'     #  0x70 -> DIAERESIS
-    u'\u0386'   #  0x71 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\u0388'   #  0x72 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u0389'   #  0x73 -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\xa0'     #  0x74 -> NO-BREAK SPACE
-    u'\u038a'   #  0x75 -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\u038c'   #  0x76 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\u038e'   #  0x77 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u038f'   #  0x78 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'`'        #  0x79 -> GRAVE ACCENT
-    u':'        #  0x7A -> COLON
-    u'#'        #  0x7B -> NUMBER SIGN
-    u'@'        #  0x7C -> COMMERCIAL AT
-    u"'"        #  0x7D -> APOSTROPHE
-    u'='        #  0x7E -> EQUALS SIGN
-    u'"'        #  0x7F -> QUOTATION MARK
-    u'\u0385'   #  0x80 -> GREEK DIALYTIKA TONOS
-    u'a'        #  0x81 -> LATIN SMALL LETTER A
-    u'b'        #  0x82 -> LATIN SMALL LETTER B
-    u'c'        #  0x83 -> LATIN SMALL LETTER C
-    u'd'        #  0x84 -> LATIN SMALL LETTER D
-    u'e'        #  0x85 -> LATIN SMALL LETTER E
-    u'f'        #  0x86 -> LATIN SMALL LETTER F
-    u'g'        #  0x87 -> LATIN SMALL LETTER G
-    u'h'        #  0x88 -> LATIN SMALL LETTER H
-    u'i'        #  0x89 -> LATIN SMALL LETTER I
-    u'\u03b1'   #  0x8A -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0x8B -> GREEK SMALL LETTER BETA
-    u'\u03b3'   #  0x8C -> GREEK SMALL LETTER GAMMA
-    u'\u03b4'   #  0x8D -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0x8E -> GREEK SMALL LETTER EPSILON
-    u'\u03b6'   #  0x8F -> GREEK SMALL LETTER ZETA
-    u'\xb0'     #  0x90 -> DEGREE SIGN
-    u'j'        #  0x91 -> LATIN SMALL LETTER J
-    u'k'        #  0x92 -> LATIN SMALL LETTER K
-    u'l'        #  0x93 -> LATIN SMALL LETTER L
-    u'm'        #  0x94 -> LATIN SMALL LETTER M
-    u'n'        #  0x95 -> LATIN SMALL LETTER N
-    u'o'        #  0x96 -> LATIN SMALL LETTER O
-    u'p'        #  0x97 -> LATIN SMALL LETTER P
-    u'q'        #  0x98 -> LATIN SMALL LETTER Q
-    u'r'        #  0x99 -> LATIN SMALL LETTER R
-    u'\u03b7'   #  0x9A -> GREEK SMALL LETTER ETA
-    u'\u03b8'   #  0x9B -> GREEK SMALL LETTER THETA
-    u'\u03b9'   #  0x9C -> GREEK SMALL LETTER IOTA
-    u'\u03ba'   #  0x9D -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0x9E -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0x9F -> GREEK SMALL LETTER MU
-    u'\xb4'     #  0xA0 -> ACUTE ACCENT
-    u'~'        #  0xA1 -> TILDE
-    u's'        #  0xA2 -> LATIN SMALL LETTER S
-    u't'        #  0xA3 -> LATIN SMALL LETTER T
-    u'u'        #  0xA4 -> LATIN SMALL LETTER U
-    u'v'        #  0xA5 -> LATIN SMALL LETTER V
-    u'w'        #  0xA6 -> LATIN SMALL LETTER W
-    u'x'        #  0xA7 -> LATIN SMALL LETTER X
-    u'y'        #  0xA8 -> LATIN SMALL LETTER Y
-    u'z'        #  0xA9 -> LATIN SMALL LETTER Z
-    u'\u03bd'   #  0xAA -> GREEK SMALL LETTER NU
-    u'\u03be'   #  0xAB -> GREEK SMALL LETTER XI
-    u'\u03bf'   #  0xAC -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0xAD -> GREEK SMALL LETTER PI
-    u'\u03c1'   #  0xAE -> GREEK SMALL LETTER RHO
-    u'\u03c3'   #  0xAF -> GREEK SMALL LETTER SIGMA
-    u'\xa3'     #  0xB0 -> POUND SIGN
-    u'\u03ac'   #  0xB1 -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\u03ad'   #  0xB2 -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0xB3 -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03ca'   #  0xB4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u03af'   #  0xB5 -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03cc'   #  0xB6 -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u03cd'   #  0xB7 -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u03cb'   #  0xB8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u03ce'   #  0xB9 -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\u03c2'   #  0xBA -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c4'   #  0xBB -> GREEK SMALL LETTER TAU
-    u'\u03c5'   #  0xBC -> GREEK SMALL LETTER UPSILON
-    u'\u03c6'   #  0xBD -> GREEK SMALL LETTER PHI
-    u'\u03c7'   #  0xBE -> GREEK SMALL LETTER CHI
-    u'\u03c8'   #  0xBF -> GREEK SMALL LETTER PSI
-    u'{'        #  0xC0 -> LEFT CURLY BRACKET
-    u'A'        #  0xC1 -> LATIN CAPITAL LETTER A
-    u'B'        #  0xC2 -> LATIN CAPITAL LETTER B
-    u'C'        #  0xC3 -> LATIN CAPITAL LETTER C
-    u'D'        #  0xC4 -> LATIN CAPITAL LETTER D
-    u'E'        #  0xC5 -> LATIN CAPITAL LETTER E
-    u'F'        #  0xC6 -> LATIN CAPITAL LETTER F
-    u'G'        #  0xC7 -> LATIN CAPITAL LETTER G
-    u'H'        #  0xC8 -> LATIN CAPITAL LETTER H
-    u'I'        #  0xC9 -> LATIN CAPITAL LETTER I
-    u'\xad'     #  0xCA -> SOFT HYPHEN
-    u'\u03c9'   #  0xCB -> GREEK SMALL LETTER OMEGA
-    u'\u0390'   #  0xCC -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    u'\u03b0'   #  0xCD -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    u'\u2018'   #  0xCE -> LEFT SINGLE QUOTATION MARK
-    u'\u2015'   #  0xCF -> HORIZONTAL BAR
-    u'}'        #  0xD0 -> RIGHT CURLY BRACKET
-    u'J'        #  0xD1 -> LATIN CAPITAL LETTER J
-    u'K'        #  0xD2 -> LATIN CAPITAL LETTER K
-    u'L'        #  0xD3 -> LATIN CAPITAL LETTER L
-    u'M'        #  0xD4 -> LATIN CAPITAL LETTER M
-    u'N'        #  0xD5 -> LATIN CAPITAL LETTER N
-    u'O'        #  0xD6 -> LATIN CAPITAL LETTER O
-    u'P'        #  0xD7 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0xD9 -> LATIN CAPITAL LETTER R
-    u'\xb1'     #  0xDA -> PLUS-MINUS SIGN
-    u'\xbd'     #  0xDB -> VULGAR FRACTION ONE HALF
-    u'\x1a'     #  0xDC -> SUBSTITUTE
-    u'\u0387'   #  0xDD -> GREEK ANO TELEIA
-    u'\u2019'   #  0xDE -> RIGHT SINGLE QUOTATION MARK
-    u'\xa6'     #  0xDF -> BROKEN BAR
-    u'\\'       #  0xE0 -> REVERSE SOLIDUS
-    u'\x1a'     #  0xE1 -> SUBSTITUTE
-    u'S'        #  0xE2 -> LATIN CAPITAL LETTER S
-    u'T'        #  0xE3 -> LATIN CAPITAL LETTER T
-    u'U'        #  0xE4 -> LATIN CAPITAL LETTER U
-    u'V'        #  0xE5 -> LATIN CAPITAL LETTER V
-    u'W'        #  0xE6 -> LATIN CAPITAL LETTER W
-    u'X'        #  0xE7 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
-    u'\xb2'     #  0xEA -> SUPERSCRIPT TWO
-    u'\xa7'     #  0xEB -> SECTION SIGN
-    u'\x1a'     #  0xEC -> SUBSTITUTE
-    u'\x1a'     #  0xED -> SUBSTITUTE
-    u'\xab'     #  0xEE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xEF -> NOT SIGN
-    u'0'        #  0xF0 -> DIGIT ZERO
-    u'1'        #  0xF1 -> DIGIT ONE
-    u'2'        #  0xF2 -> DIGIT TWO
-    u'3'        #  0xF3 -> DIGIT THREE
-    u'4'        #  0xF4 -> DIGIT FOUR
-    u'5'        #  0xF5 -> DIGIT FIVE
-    u'6'        #  0xF6 -> DIGIT SIX
-    u'7'        #  0xF7 -> DIGIT SEVEN
-    u'8'        #  0xF8 -> DIGIT EIGHT
-    u'9'        #  0xF9 -> DIGIT NINE
-    u'\xb3'     #  0xFA -> SUPERSCRIPT THREE
-    u'\xa9'     #  0xFB -> COPYRIGHT SIGN
-    u'\x1a'     #  0xFC -> SUBSTITUTE
-    u'\x1a'     #  0xFD -> SUBSTITUTE
-    u'\xbb'     #  0xFE -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\x9f'     #  0xFF -> CONTROL
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x9c'     #  0x04 -> CONTROL
+    '\t'       #  0x05 -> HORIZONTAL TABULATION
+    '\x86'     #  0x06 -> CONTROL
+    '\x7f'     #  0x07 -> DELETE
+    '\x97'     #  0x08 -> CONTROL
+    '\x8d'     #  0x09 -> CONTROL
+    '\x8e'     #  0x0A -> CONTROL
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x9d'     #  0x14 -> CONTROL
+    '\x85'     #  0x15 -> CONTROL
+    '\x08'     #  0x16 -> BACKSPACE
+    '\x87'     #  0x17 -> CONTROL
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x92'     #  0x1A -> CONTROL
+    '\x8f'     #  0x1B -> CONTROL
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    '\x80'     #  0x20 -> CONTROL
+    '\x81'     #  0x21 -> CONTROL
+    '\x82'     #  0x22 -> CONTROL
+    '\x83'     #  0x23 -> CONTROL
+    '\x84'     #  0x24 -> CONTROL
+    '\n'       #  0x25 -> LINE FEED
+    '\x17'     #  0x26 -> END OF TRANSMISSION BLOCK
+    '\x1b'     #  0x27 -> ESCAPE
+    '\x88'     #  0x28 -> CONTROL
+    '\x89'     #  0x29 -> CONTROL
+    '\x8a'     #  0x2A -> CONTROL
+    '\x8b'     #  0x2B -> CONTROL
+    '\x8c'     #  0x2C -> CONTROL
+    '\x05'     #  0x2D -> ENQUIRY
+    '\x06'     #  0x2E -> ACKNOWLEDGE
+    '\x07'     #  0x2F -> BELL
+    '\x90'     #  0x30 -> CONTROL
+    '\x91'     #  0x31 -> CONTROL
+    '\x16'     #  0x32 -> SYNCHRONOUS IDLE
+    '\x93'     #  0x33 -> CONTROL
+    '\x94'     #  0x34 -> CONTROL
+    '\x95'     #  0x35 -> CONTROL
+    '\x96'     #  0x36 -> CONTROL
+    '\x04'     #  0x37 -> END OF TRANSMISSION
+    '\x98'     #  0x38 -> CONTROL
+    '\x99'     #  0x39 -> CONTROL
+    '\x9a'     #  0x3A -> CONTROL
+    '\x9b'     #  0x3B -> CONTROL
+    '\x14'     #  0x3C -> DEVICE CONTROL FOUR
+    '\x15'     #  0x3D -> NEGATIVE ACKNOWLEDGE
+    '\x9e'     #  0x3E -> CONTROL
+    '\x1a'     #  0x3F -> SUBSTITUTE
+    ' '        #  0x40 -> SPACE
+    '\u0391'   #  0x41 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0x42 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0x43 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0x44 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0x45 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0x46 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0x47 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0x48 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0x49 -> GREEK CAPITAL LETTER IOTA
+    '['        #  0x4A -> LEFT SQUARE BRACKET
+    '.'        #  0x4B -> FULL STOP
+    '<'        #  0x4C -> LESS-THAN SIGN
+    '('        #  0x4D -> LEFT PARENTHESIS
+    '+'        #  0x4E -> PLUS SIGN
+    '!'        #  0x4F -> EXCLAMATION MARK
+    '&'        #  0x50 -> AMPERSAND
+    '\u039a'   #  0x51 -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0x52 -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0x53 -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0x54 -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0x55 -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0x56 -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0x57 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0x58 -> GREEK CAPITAL LETTER RHO
+    '\u03a3'   #  0x59 -> GREEK CAPITAL LETTER SIGMA
+    ']'        #  0x5A -> RIGHT SQUARE BRACKET
+    '$'        #  0x5B -> DOLLAR SIGN
+    '*'        #  0x5C -> ASTERISK
+    ')'        #  0x5D -> RIGHT PARENTHESIS
+    ';'        #  0x5E -> SEMICOLON
+    '^'        #  0x5F -> CIRCUMFLEX ACCENT
+    '-'        #  0x60 -> HYPHEN-MINUS
+    '/'        #  0x61 -> SOLIDUS
+    '\u03a4'   #  0x62 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0x63 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0x64 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0x65 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0x66 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0x67 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0x68 -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0x69 -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '|'        #  0x6A -> VERTICAL LINE
+    ','        #  0x6B -> COMMA
+    '%'        #  0x6C -> PERCENT SIGN
+    '_'        #  0x6D -> LOW LINE
+    '>'        #  0x6E -> GREATER-THAN SIGN
+    '?'        #  0x6F -> QUESTION MARK
+    '\xa8'     #  0x70 -> DIAERESIS
+    '\u0386'   #  0x71 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0x72 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0x73 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\xa0'     #  0x74 -> NO-BREAK SPACE
+    '\u038a'   #  0x75 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0x76 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0x77 -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0x78 -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '`'        #  0x79 -> GRAVE ACCENT
+    ':'        #  0x7A -> COLON
+    '#'        #  0x7B -> NUMBER SIGN
+    '@'        #  0x7C -> COMMERCIAL AT
+    "'"        #  0x7D -> APOSTROPHE
+    '='        #  0x7E -> EQUALS SIGN
+    '"'        #  0x7F -> QUOTATION MARK
+    '\u0385'   #  0x80 -> GREEK DIALYTIKA TONOS
+    'a'        #  0x81 -> LATIN SMALL LETTER A
+    'b'        #  0x82 -> LATIN SMALL LETTER B
+    'c'        #  0x83 -> LATIN SMALL LETTER C
+    'd'        #  0x84 -> LATIN SMALL LETTER D
+    'e'        #  0x85 -> LATIN SMALL LETTER E
+    'f'        #  0x86 -> LATIN SMALL LETTER F
+    'g'        #  0x87 -> LATIN SMALL LETTER G
+    'h'        #  0x88 -> LATIN SMALL LETTER H
+    'i'        #  0x89 -> LATIN SMALL LETTER I
+    '\u03b1'   #  0x8A -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0x8B -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0x8C -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0x8D -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0x8E -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0x8F -> GREEK SMALL LETTER ZETA
+    '\xb0'     #  0x90 -> DEGREE SIGN
+    'j'        #  0x91 -> LATIN SMALL LETTER J
+    'k'        #  0x92 -> LATIN SMALL LETTER K
+    'l'        #  0x93 -> LATIN SMALL LETTER L
+    'm'        #  0x94 -> LATIN SMALL LETTER M
+    'n'        #  0x95 -> LATIN SMALL LETTER N
+    'o'        #  0x96 -> LATIN SMALL LETTER O
+    'p'        #  0x97 -> LATIN SMALL LETTER P
+    'q'        #  0x98 -> LATIN SMALL LETTER Q
+    'r'        #  0x99 -> LATIN SMALL LETTER R
+    '\u03b7'   #  0x9A -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0x9B -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0x9C -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0x9D -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0x9E -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0x9F -> GREEK SMALL LETTER MU
+    '\xb4'     #  0xA0 -> ACUTE ACCENT
+    '~'        #  0xA1 -> TILDE
+    's'        #  0xA2 -> LATIN SMALL LETTER S
+    't'        #  0xA3 -> LATIN SMALL LETTER T
+    'u'        #  0xA4 -> LATIN SMALL LETTER U
+    'v'        #  0xA5 -> LATIN SMALL LETTER V
+    'w'        #  0xA6 -> LATIN SMALL LETTER W
+    'x'        #  0xA7 -> LATIN SMALL LETTER X
+    'y'        #  0xA8 -> LATIN SMALL LETTER Y
+    'z'        #  0xA9 -> LATIN SMALL LETTER Z
+    '\u03bd'   #  0xAA -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xAB -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xAC -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xAD -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xAE -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0xAF -> GREEK SMALL LETTER SIGMA
+    '\xa3'     #  0xB0 -> POUND SIGN
+    '\u03ac'   #  0xB1 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xB2 -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xB3 -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03ca'   #  0xB4 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03af'   #  0xB5 -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0xB6 -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xB7 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03cb'   #  0xB8 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03ce'   #  0xB9 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u03c2'   #  0xBA -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c4'   #  0xBB -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xBC -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xBD -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xBE -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xBF -> GREEK SMALL LETTER PSI
+    '{'        #  0xC0 -> LEFT CURLY BRACKET
+    'A'        #  0xC1 -> LATIN CAPITAL LETTER A
+    'B'        #  0xC2 -> LATIN CAPITAL LETTER B
+    'C'        #  0xC3 -> LATIN CAPITAL LETTER C
+    'D'        #  0xC4 -> LATIN CAPITAL LETTER D
+    'E'        #  0xC5 -> LATIN CAPITAL LETTER E
+    'F'        #  0xC6 -> LATIN CAPITAL LETTER F
+    'G'        #  0xC7 -> LATIN CAPITAL LETTER G
+    'H'        #  0xC8 -> LATIN CAPITAL LETTER H
+    'I'        #  0xC9 -> LATIN CAPITAL LETTER I
+    '\xad'     #  0xCA -> SOFT HYPHEN
+    '\u03c9'   #  0xCB -> GREEK SMALL LETTER OMEGA
+    '\u0390'   #  0xCC -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03b0'   #  0xCD -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u2018'   #  0xCE -> LEFT SINGLE QUOTATION MARK
+    '\u2015'   #  0xCF -> HORIZONTAL BAR
+    '}'        #  0xD0 -> RIGHT CURLY BRACKET
+    'J'        #  0xD1 -> LATIN CAPITAL LETTER J
+    'K'        #  0xD2 -> LATIN CAPITAL LETTER K
+    'L'        #  0xD3 -> LATIN CAPITAL LETTER L
+    'M'        #  0xD4 -> LATIN CAPITAL LETTER M
+    'N'        #  0xD5 -> LATIN CAPITAL LETTER N
+    'O'        #  0xD6 -> LATIN CAPITAL LETTER O
+    'P'        #  0xD7 -> LATIN CAPITAL LETTER P
+    'Q'        #  0xD8 -> LATIN CAPITAL LETTER Q
+    'R'        #  0xD9 -> LATIN CAPITAL LETTER R
+    '\xb1'     #  0xDA -> PLUS-MINUS SIGN
+    '\xbd'     #  0xDB -> VULGAR FRACTION ONE HALF
+    '\x1a'     #  0xDC -> SUBSTITUTE
+    '\u0387'   #  0xDD -> GREEK ANO TELEIA
+    '\u2019'   #  0xDE -> RIGHT SINGLE QUOTATION MARK
+    '\xa6'     #  0xDF -> BROKEN BAR
+    '\\'       #  0xE0 -> REVERSE SOLIDUS
+    '\x1a'     #  0xE1 -> SUBSTITUTE
+    'S'        #  0xE2 -> LATIN CAPITAL LETTER S
+    'T'        #  0xE3 -> LATIN CAPITAL LETTER T
+    'U'        #  0xE4 -> LATIN CAPITAL LETTER U
+    'V'        #  0xE5 -> LATIN CAPITAL LETTER V
+    'W'        #  0xE6 -> LATIN CAPITAL LETTER W
+    'X'        #  0xE7 -> LATIN CAPITAL LETTER X
+    'Y'        #  0xE8 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0xE9 -> LATIN CAPITAL LETTER Z
+    '\xb2'     #  0xEA -> SUPERSCRIPT TWO
+    '\xa7'     #  0xEB -> SECTION SIGN
+    '\x1a'     #  0xEC -> SUBSTITUTE
+    '\x1a'     #  0xED -> SUBSTITUTE
+    '\xab'     #  0xEE -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xEF -> NOT SIGN
+    '0'        #  0xF0 -> DIGIT ZERO
+    '1'        #  0xF1 -> DIGIT ONE
+    '2'        #  0xF2 -> DIGIT TWO
+    '3'        #  0xF3 -> DIGIT THREE
+    '4'        #  0xF4 -> DIGIT FOUR
+    '5'        #  0xF5 -> DIGIT FIVE
+    '6'        #  0xF6 -> DIGIT SIX
+    '7'        #  0xF7 -> DIGIT SEVEN
+    '8'        #  0xF8 -> DIGIT EIGHT
+    '9'        #  0xF9 -> DIGIT NINE
+    '\xb3'     #  0xFA -> SUPERSCRIPT THREE
+    '\xa9'     #  0xFB -> COPYRIGHT SIGN
+    '\x1a'     #  0xFC -> SUBSTITUTE
+    '\x1a'     #  0xFD -> SUBSTITUTE
+    '\xbb'     #  0xFE -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\x9f'     #  0xFF -> CONTROL
 )
 
 ### Encoding table
diff --git a/Lib/encodings/idna.py b/Lib/encodings/idna.py
index ea90d67..d9322a1 100644
--- a/Lib/encodings/idna.py
+++ b/Lib/encodings/idna.py
@@ -4,11 +4,11 @@
 from unicodedata import ucd_3_2_0 as unicodedata
 
 # IDNA section 3.1
-dots = re.compile(u"[\u002E\u3002\uFF0E\uFF61]")
+dots = re.compile("[\u002E\u3002\uFF0E\uFF61]")
 
 # IDNA section 5
 ace_prefix = "xn--"
-uace_prefix = unicode(ace_prefix, "ascii")
+uace_prefix = str(ace_prefix, "ascii")
 
 # This assumes query strings, so AllowUnassigned is true
 def nameprep(label):
@@ -19,7 +19,7 @@
             # Map to nothing
             continue
         newlabel.append(stringprep.map_table_b2(c))
-    label = u"".join(newlabel)
+    label = "".join(newlabel)
 
     # Normalize
     label = unicodedata.normalize("NFKC", label)
@@ -122,7 +122,7 @@
             raise UnicodeError("Invalid character in IDN label")
     # Step 3: Check for ACE prefix
     if not label.startswith(ace_prefix):
-        return unicode(label, "ascii")
+        return str(label, "ascii")
 
     # Step 4: Remove ACE prefix
     label1 = label[len(ace_prefix):]
@@ -171,28 +171,28 @@
             raise UnicodeError("Unsupported error handling "+errors)
 
         if not input:
-            return u"", 0
+            return "", 0
 
         # IDNA allows decoding to operate on Unicode strings, too.
-        if isinstance(input, unicode):
+        if isinstance(input, str):
             labels = dots.split(input)
         else:
             # Must be ASCII string
             input = str(input)
-            unicode(input, "ascii")
+            str(input, "ascii")
             labels = input.split(".")
 
         if labels and len(labels[-1]) == 0:
-            trailing_dot = u'.'
+            trailing_dot = '.'
             del labels[-1]
         else:
-            trailing_dot = u''
+            trailing_dot = ''
 
         result = []
         for label in labels:
             result.append(ToUnicode(label))
 
-        return u".".join(result)+trailing_dot, len(input)
+        return ".".join(result)+trailing_dot, len(input)
 
 class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
     def _buffer_encode(self, input, errors, final):
@@ -204,7 +204,7 @@
             return ("", 0)
 
         labels = dots.split(input)
-        trailing_dot = u''
+        trailing_dot = ''
         if labels:
             if not labels[-1]:
                 trailing_dot = '.'
@@ -234,27 +234,27 @@
             raise UnicodeError("Unsupported error handling "+errors)
 
         if not input:
-            return (u"", 0)
+            return ("", 0)
 
         # IDNA allows decoding to operate on Unicode strings, too.
-        if isinstance(input, unicode):
+        if isinstance(input, str):
             labels = dots.split(input)
         else:
             # Must be ASCII string
             input = str(input)
-            unicode(input, "ascii")
+            str(input, "ascii")
             labels = input.split(".")
 
-        trailing_dot = u''
+        trailing_dot = ''
         if labels:
             if not labels[-1]:
-                trailing_dot = u'.'
+                trailing_dot = '.'
                 del labels[-1]
             elif not final:
                 # Keep potentially unfinished label until the next call
                 del labels[-1]
                 if labels:
-                    trailing_dot = u'.'
+                    trailing_dot = '.'
 
         result = []
         size = 0
@@ -264,7 +264,7 @@
                 size += 1
             size += len(label)
 
-        result = u".".join(result) + trailing_dot
+        result = ".".join(result) + trailing_dot
         size += len(trailing_dot)
         return (result, size)
 
diff --git a/Lib/encodings/iso8859_1.py b/Lib/encodings/iso8859_1.py
index 71bc13f..8cfc01f 100644
--- a/Lib/encodings/iso8859_1.py
+++ b/Lib/encodings/iso8859_1.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_10.py b/Lib/encodings/iso8859_10.py
index 757e5c5..b4fb041 100644
--- a/Lib/encodings/iso8859_10.py
+++ b/Lib/encodings/iso8859_10.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u0112'   #  0xA2 -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u0122'   #  0xA3 -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\u012a'   #  0xA4 -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
-    u'\u0136'   #  0xA6 -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\u013b'   #  0xA8 -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\u0110'   #  0xA9 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u0160'   #  0xAA -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u0166'   #  0xAB -> LATIN CAPITAL LETTER T WITH STROKE
-    u'\u017d'   #  0xAC -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u016a'   #  0xAE -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\u014a'   #  0xAF -> LATIN CAPITAL LETTER ENG
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u0113'   #  0xB2 -> LATIN SMALL LETTER E WITH MACRON
-    u'\u0123'   #  0xB3 -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
-    u'\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
-    u'\u0137'   #  0xB6 -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u013c'   #  0xB8 -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u0111'   #  0xB9 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0161'   #  0xBA -> LATIN SMALL LETTER S WITH CARON
-    u'\u0167'   #  0xBB -> LATIN SMALL LETTER T WITH STROKE
-    u'\u017e'   #  0xBC -> LATIN SMALL LETTER Z WITH CARON
-    u'\u2015'   #  0xBD -> HORIZONTAL BAR
-    u'\u016b'   #  0xBE -> LATIN SMALL LETTER U WITH MACRON
-    u'\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
-    u'\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
-    u'\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\u0168'   #  0xD7 -> LATIN CAPITAL LETTER U WITH TILDE
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
-    u'\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
-    u'\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\u0169'   #  0xF7 -> LATIN SMALL LETTER U WITH TILDE
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
-    u'\u0138'   #  0xFF -> LATIN SMALL LETTER KRA
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0112'   #  0xA2 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0122'   #  0xA3 -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u012a'   #  0xA4 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
+    '\u0136'   #  0xA6 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u013b'   #  0xA8 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0110'   #  0xA9 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0160'   #  0xAA -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0166'   #  0xAB -> LATIN CAPITAL LETTER T WITH STROKE
+    '\u017d'   #  0xAC -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u016a'   #  0xAE -> LATIN CAPITAL LETTER U WITH MACRON
+    '\u014a'   #  0xAF -> LATIN CAPITAL LETTER ENG
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u0113'   #  0xB2 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0123'   #  0xB3 -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
+    '\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
+    '\u0137'   #  0xB6 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u013c'   #  0xB8 -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0111'   #  0xB9 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0161'   #  0xBA -> LATIN SMALL LETTER S WITH CARON
+    '\u0167'   #  0xBB -> LATIN SMALL LETTER T WITH STROKE
+    '\u017e'   #  0xBC -> LATIN SMALL LETTER Z WITH CARON
+    '\u2015'   #  0xBD -> HORIZONTAL BAR
+    '\u016b'   #  0xBE -> LATIN SMALL LETTER U WITH MACRON
+    '\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
+    '\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH (Icelandic)
+    '\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u0168'   #  0xD7 -> LATIN CAPITAL LETTER U WITH TILDE
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN (Icelandic)
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH (Icelandic)
+    '\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u0169'   #  0xF7 -> LATIN SMALL LETTER U WITH TILDE
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN (Icelandic)
+    '\u0138'   #  0xFF -> LATIN SMALL LETTER KRA
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_11.py b/Lib/encodings/iso8859_11.py
index 27ece8d..c7258ec 100644
--- a/Lib/encodings/iso8859_11.py
+++ b/Lib/encodings/iso8859_11.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
-    u'\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
-    u'\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
-    u'\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
-    u'\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
-    u'\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
-    u'\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
-    u'\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
-    u'\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
-    u'\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
-    u'\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
-    u'\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
-    u'\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
-    u'\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
-    u'\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
-    u'\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
-    u'\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
-    u'\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
-    u'\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
-    u'\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
-    u'\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
-    u'\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
-    u'\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
-    u'\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
-    u'\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
-    u'\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
-    u'\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
-    u'\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
-    u'\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
-    u'\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
-    u'\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
-    u'\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
-    u'\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
-    u'\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
-    u'\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
-    u'\u0e24'   #  0xC4 -> THAI CHARACTER RU
-    u'\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
-    u'\u0e26'   #  0xC6 -> THAI CHARACTER LU
-    u'\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
-    u'\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
-    u'\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
-    u'\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
-    u'\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
-    u'\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
-    u'\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
-    u'\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
-    u'\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
-    u'\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
-    u'\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
-    u'\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
-    u'\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
-    u'\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
-    u'\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
-    u'\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
-    u'\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
-    u'\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
-    u'\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
-    u'\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
-    u'\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
-    u'\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
-    u'\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
-    u'\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
-    u'\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
-    u'\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
-    u'\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
-    u'\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
-    u'\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
-    u'\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
-    u'\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
-    u'\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
-    u'\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
-    u'\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
-    u'\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
-    u'\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
-    u'\u0e50'   #  0xF0 -> THAI DIGIT ZERO
-    u'\u0e51'   #  0xF1 -> THAI DIGIT ONE
-    u'\u0e52'   #  0xF2 -> THAI DIGIT TWO
-    u'\u0e53'   #  0xF3 -> THAI DIGIT THREE
-    u'\u0e54'   #  0xF4 -> THAI DIGIT FOUR
-    u'\u0e55'   #  0xF5 -> THAI DIGIT FIVE
-    u'\u0e56'   #  0xF6 -> THAI DIGIT SIX
-    u'\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
-    u'\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
-    u'\u0e59'   #  0xF9 -> THAI DIGIT NINE
-    u'\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
-    u'\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_13.py b/Lib/encodings/iso8859_13.py
index 71adb5c..6f8eab2 100644
--- a/Lib/encodings/iso8859_13.py
+++ b/Lib/encodings/iso8859_13.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u201d'   #  0xA1 -> RIGHT DOUBLE QUOTATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\u201c'   #  0xB4 -> LEFT DOUBLE QUOTATION MARK
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xe6'     #  0xBF -> LATIN SMALL LETTER AE
-    u'\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
-    u'\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
-    u'\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
-    u'\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
-    u'\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
-    u'\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
-    u'\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
-    u'\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
-    u'\u2019'   #  0xFF -> RIGHT SINGLE QUOTATION MARK
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u201d'   #  0xA1 -> RIGHT DOUBLE QUOTATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xd8'     #  0xA8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0156'   #  0xAA -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xc6'     #  0xAF -> LATIN CAPITAL LETTER AE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u201c'   #  0xB4 -> LEFT DOUBLE QUOTATION MARK
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xf8'     #  0xB8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\u0157'   #  0xBA -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xe6'     #  0xBF -> LATIN SMALL LETTER AE
+    '\u0104'   #  0xC0 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u012e'   #  0xC1 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u0100'   #  0xC2 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0106'   #  0xC3 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\u0118'   #  0xC6 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u0112'   #  0xC7 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0179'   #  0xCA -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u0116'   #  0xCB -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\u0122'   #  0xCC -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0136'   #  0xCD -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u012a'   #  0xCE -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u013b'   #  0xCF -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u0160'   #  0xD0 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0145'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\u014c'   #  0xD4 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0172'   #  0xD8 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0141'   #  0xD9 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u015a'   #  0xDA -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u016a'   #  0xDB -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u017b'   #  0xDD -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u017d'   #  0xDE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S (German)
+    '\u0105'   #  0xE0 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u012f'   #  0xE1 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u0101'   #  0xE2 -> LATIN SMALL LETTER A WITH MACRON
+    '\u0107'   #  0xE3 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\u0119'   #  0xE6 -> LATIN SMALL LETTER E WITH OGONEK
+    '\u0113'   #  0xE7 -> LATIN SMALL LETTER E WITH MACRON
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u017a'   #  0xEA -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u0117'   #  0xEB -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\u0123'   #  0xEC -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0137'   #  0xED -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u012b'   #  0xEE -> LATIN SMALL LETTER I WITH MACRON
+    '\u013c'   #  0xEF -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u0161'   #  0xF0 -> LATIN SMALL LETTER S WITH CARON
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0146'   #  0xF2 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u014d'   #  0xF4 -> LATIN SMALL LETTER O WITH MACRON
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0173'   #  0xF8 -> LATIN SMALL LETTER U WITH OGONEK
+    '\u0142'   #  0xF9 -> LATIN SMALL LETTER L WITH STROKE
+    '\u015b'   #  0xFA -> LATIN SMALL LETTER S WITH ACUTE
+    '\u016b'   #  0xFB -> LATIN SMALL LETTER U WITH MACRON
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u017e'   #  0xFE -> LATIN SMALL LETTER Z WITH CARON
+    '\u2019'   #  0xFF -> RIGHT SINGLE QUOTATION MARK
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_14.py b/Lib/encodings/iso8859_14.py
index 56843d5..7568d4e 100644
--- a/Lib/encodings/iso8859_14.py
+++ b/Lib/encodings/iso8859_14.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u1e02'   #  0xA1 -> LATIN CAPITAL LETTER B WITH DOT ABOVE
-    u'\u1e03'   #  0xA2 -> LATIN SMALL LETTER B WITH DOT ABOVE
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\u010a'   #  0xA4 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
-    u'\u010b'   #  0xA5 -> LATIN SMALL LETTER C WITH DOT ABOVE
-    u'\u1e0a'   #  0xA6 -> LATIN CAPITAL LETTER D WITH DOT ABOVE
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\u1e80'   #  0xA8 -> LATIN CAPITAL LETTER W WITH GRAVE
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u1e82'   #  0xAA -> LATIN CAPITAL LETTER W WITH ACUTE
-    u'\u1e0b'   #  0xAB -> LATIN SMALL LETTER D WITH DOT ABOVE
-    u'\u1ef2'   #  0xAC -> LATIN CAPITAL LETTER Y WITH GRAVE
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\u0178'   #  0xAF -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u1e1e'   #  0xB0 -> LATIN CAPITAL LETTER F WITH DOT ABOVE
-    u'\u1e1f'   #  0xB1 -> LATIN SMALL LETTER F WITH DOT ABOVE
-    u'\u0120'   #  0xB2 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
-    u'\u0121'   #  0xB3 -> LATIN SMALL LETTER G WITH DOT ABOVE
-    u'\u1e40'   #  0xB4 -> LATIN CAPITAL LETTER M WITH DOT ABOVE
-    u'\u1e41'   #  0xB5 -> LATIN SMALL LETTER M WITH DOT ABOVE
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\u1e56'   #  0xB7 -> LATIN CAPITAL LETTER P WITH DOT ABOVE
-    u'\u1e81'   #  0xB8 -> LATIN SMALL LETTER W WITH GRAVE
-    u'\u1e57'   #  0xB9 -> LATIN SMALL LETTER P WITH DOT ABOVE
-    u'\u1e83'   #  0xBA -> LATIN SMALL LETTER W WITH ACUTE
-    u'\u1e60'   #  0xBB -> LATIN CAPITAL LETTER S WITH DOT ABOVE
-    u'\u1ef3'   #  0xBC -> LATIN SMALL LETTER Y WITH GRAVE
-    u'\u1e84'   #  0xBD -> LATIN CAPITAL LETTER W WITH DIAERESIS
-    u'\u1e85'   #  0xBE -> LATIN SMALL LETTER W WITH DIAERESIS
-    u'\u1e61'   #  0xBF -> LATIN SMALL LETTER S WITH DOT ABOVE
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u0174'   #  0xD0 -> LATIN CAPITAL LETTER W WITH CIRCUMFLEX
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\u1e6a'   #  0xD7 -> LATIN CAPITAL LETTER T WITH DOT ABOVE
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\u0176'   #  0xDE -> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u0175'   #  0xF0 -> LATIN SMALL LETTER W WITH CIRCUMFLEX
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\u1e6b'   #  0xF7 -> LATIN SMALL LETTER T WITH DOT ABOVE
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\u0177'   #  0xFE -> LATIN SMALL LETTER Y WITH CIRCUMFLEX
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u1e02'   #  0xA1 -> LATIN CAPITAL LETTER B WITH DOT ABOVE
+    '\u1e03'   #  0xA2 -> LATIN SMALL LETTER B WITH DOT ABOVE
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u010a'   #  0xA4 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
+    '\u010b'   #  0xA5 -> LATIN SMALL LETTER C WITH DOT ABOVE
+    '\u1e0a'   #  0xA6 -> LATIN CAPITAL LETTER D WITH DOT ABOVE
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u1e80'   #  0xA8 -> LATIN CAPITAL LETTER W WITH GRAVE
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u1e82'   #  0xAA -> LATIN CAPITAL LETTER W WITH ACUTE
+    '\u1e0b'   #  0xAB -> LATIN SMALL LETTER D WITH DOT ABOVE
+    '\u1ef2'   #  0xAC -> LATIN CAPITAL LETTER Y WITH GRAVE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\u0178'   #  0xAF -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u1e1e'   #  0xB0 -> LATIN CAPITAL LETTER F WITH DOT ABOVE
+    '\u1e1f'   #  0xB1 -> LATIN SMALL LETTER F WITH DOT ABOVE
+    '\u0120'   #  0xB2 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
+    '\u0121'   #  0xB3 -> LATIN SMALL LETTER G WITH DOT ABOVE
+    '\u1e40'   #  0xB4 -> LATIN CAPITAL LETTER M WITH DOT ABOVE
+    '\u1e41'   #  0xB5 -> LATIN SMALL LETTER M WITH DOT ABOVE
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\u1e56'   #  0xB7 -> LATIN CAPITAL LETTER P WITH DOT ABOVE
+    '\u1e81'   #  0xB8 -> LATIN SMALL LETTER W WITH GRAVE
+    '\u1e57'   #  0xB9 -> LATIN SMALL LETTER P WITH DOT ABOVE
+    '\u1e83'   #  0xBA -> LATIN SMALL LETTER W WITH ACUTE
+    '\u1e60'   #  0xBB -> LATIN CAPITAL LETTER S WITH DOT ABOVE
+    '\u1ef3'   #  0xBC -> LATIN SMALL LETTER Y WITH GRAVE
+    '\u1e84'   #  0xBD -> LATIN CAPITAL LETTER W WITH DIAERESIS
+    '\u1e85'   #  0xBE -> LATIN SMALL LETTER W WITH DIAERESIS
+    '\u1e61'   #  0xBF -> LATIN SMALL LETTER S WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0174'   #  0xD0 -> LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u1e6a'   #  0xD7 -> LATIN CAPITAL LETTER T WITH DOT ABOVE
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0176'   #  0xDE -> LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0175'   #  0xF0 -> LATIN SMALL LETTER W WITH CIRCUMFLEX
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u1e6b'   #  0xF7 -> LATIN SMALL LETTER T WITH DOT ABOVE
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0177'   #  0xFE -> LATIN SMALL LETTER Y WITH CIRCUMFLEX
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_15.py b/Lib/encodings/iso8859_15.py
index 13b140c..43bdecd 100644
--- a/Lib/encodings/iso8859_15.py
+++ b/Lib/encodings/iso8859_15.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\u20ac'   #  0xA4 -> EURO SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
-    u'\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
+    '\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xd0'     #  0xD0 -> LATIN CAPITAL LETTER ETH
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf0'     #  0xF0 -> LATIN SMALL LETTER ETH
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xfe'     #  0xFE -> LATIN SMALL LETTER THORN
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_16.py b/Lib/encodings/iso8859_16.py
index 00b9ac8..e70c96e 100644
--- a/Lib/encodings/iso8859_16.py
+++ b/Lib/encodings/iso8859_16.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u0105'   #  0xA2 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\u20ac'   #  0xA4 -> EURO SIGN
-    u'\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u0218'   #  0xAA -> LATIN CAPITAL LETTER S WITH COMMA BELOW
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u017a'   #  0xAE -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u010c'   #  0xB2 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
-    u'\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u201d'   #  0xB5 -> RIGHT DOUBLE QUOTATION MARK
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
-    u'\u010d'   #  0xB9 -> LATIN SMALL LETTER C WITH CARON
-    u'\u0219'   #  0xBA -> LATIN SMALL LETTER S WITH COMMA BELOW
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
-    u'\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u0106'   #  0xC5 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\u015a'   #  0xD7 -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u0170'   #  0xD8 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0118'   #  0xDD -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u0107'   #  0xE5 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\u015b'   #  0xF7 -> LATIN SMALL LETTER S WITH ACUTE
-    u'\u0171'   #  0xF8 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u0119'   #  0xFD -> LATIN SMALL LETTER E WITH OGONEK
-    u'\u021b'   #  0xFE -> LATIN SMALL LETTER T WITH COMMA BELOW
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0105'   #  0xA2 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\u201e'   #  0xA5 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u0160'   #  0xA6 -> LATIN CAPITAL LETTER S WITH CARON
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\u0161'   #  0xA8 -> LATIN SMALL LETTER S WITH CARON
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u0218'   #  0xAA -> LATIN CAPITAL LETTER S WITH COMMA BELOW
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017a'   #  0xAE -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u010c'   #  0xB2 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\u017d'   #  0xB4 -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u201d'   #  0xB5 -> RIGHT DOUBLE QUOTATION MARK
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u017e'   #  0xB8 -> LATIN SMALL LETTER Z WITH CARON
+    '\u010d'   #  0xB9 -> LATIN SMALL LETTER C WITH CARON
+    '\u0219'   #  0xBA -> LATIN SMALL LETTER S WITH COMMA BELOW
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u0152'   #  0xBC -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xBD -> LATIN SMALL LIGATURE OE
+    '\u0178'   #  0xBE -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0106'   #  0xC5 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\u015a'   #  0xD7 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u0170'   #  0xD8 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0118'   #  0xDD -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0107'   #  0xE5 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\u015b'   #  0xF7 -> LATIN SMALL LETTER S WITH ACUTE
+    '\u0171'   #  0xF8 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0119'   #  0xFD -> LATIN SMALL LETTER E WITH OGONEK
+    '\u021b'   #  0xFE -> LATIN SMALL LETTER T WITH COMMA BELOW
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_2.py b/Lib/encodings/iso8859_2.py
index 38e91d8..3698747 100644
--- a/Lib/encodings/iso8859_2.py
+++ b/Lib/encodings/iso8859_2.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u02d8'   #  0xA2 -> BREVE
-    u'\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\u013d'   #  0xA5 -> LATIN CAPITAL LETTER L WITH CARON
-    u'\u015a'   #  0xA6 -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\u0164'   #  0xAB -> LATIN CAPITAL LETTER T WITH CARON
-    u'\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u02db'   #  0xB2 -> OGONEK
-    u'\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\u013e'   #  0xB5 -> LATIN SMALL LETTER L WITH CARON
-    u'\u015b'   #  0xB6 -> LATIN SMALL LETTER S WITH ACUTE
-    u'\u02c7'   #  0xB7 -> CARON
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
-    u'\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\u0165'   #  0xBB -> LATIN SMALL LETTER T WITH CARON
-    u'\u017a'   #  0xBC -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
-    u'\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
-    u'\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
-    u'\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
-    u'\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
-    u'\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
-    u'\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
-    u'\u02d9'   #  0xFF -> DOT ABOVE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u02d8'   #  0xA2 -> BREVE
+    '\u0141'   #  0xA3 -> LATIN CAPITAL LETTER L WITH STROKE
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u013d'   #  0xA5 -> LATIN CAPITAL LETTER L WITH CARON
+    '\u015a'   #  0xA6 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u0164'   #  0xAB -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0179'   #  0xAC -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0142'   #  0xB3 -> LATIN SMALL LETTER L WITH STROKE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\u013e'   #  0xB5 -> LATIN SMALL LETTER L WITH CARON
+    '\u015b'   #  0xB6 -> LATIN SMALL LETTER S WITH ACUTE
+    '\u02c7'   #  0xB7 -> CARON
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u0165'   #  0xBB -> LATIN SMALL LETTER T WITH CARON
+    '\u017a'   #  0xBC -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u02dd'   #  0xBD -> DOUBLE ACUTE ACCENT
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0154'   #  0xC0 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0102'   #  0xC3 -> LATIN CAPITAL LETTER A WITH BREVE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0139'   #  0xC5 -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u011a'   #  0xCC -> LATIN CAPITAL LETTER E WITH CARON
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u010e'   #  0xCF -> LATIN CAPITAL LETTER D WITH CARON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0143'   #  0xD1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\u0147'   #  0xD2 -> LATIN CAPITAL LETTER N WITH CARON
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0150'   #  0xD5 -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u0158'   #  0xD8 -> LATIN CAPITAL LETTER R WITH CARON
+    '\u016e'   #  0xD9 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u0170'   #  0xDB -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xDD -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\u0162'   #  0xDE -> LATIN CAPITAL LETTER T WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0155'   #  0xE0 -> LATIN SMALL LETTER R WITH ACUTE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\u0103'   #  0xE3 -> LATIN SMALL LETTER A WITH BREVE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u013a'   #  0xE5 -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u011b'   #  0xEC -> LATIN SMALL LETTER E WITH CARON
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u010f'   #  0xEF -> LATIN SMALL LETTER D WITH CARON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0144'   #  0xF1 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0148'   #  0xF2 -> LATIN SMALL LETTER N WITH CARON
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0151'   #  0xF5 -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u0159'   #  0xF8 -> LATIN SMALL LETTER R WITH CARON
+    '\u016f'   #  0xF9 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\u0171'   #  0xFB -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xfd'     #  0xFD -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0163'   #  0xFE -> LATIN SMALL LETTER T WITH CEDILLA
+    '\u02d9'   #  0xFF -> DOT ABOVE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_3.py b/Lib/encodings/iso8859_3.py
index 23daafd..96d3063 100644
--- a/Lib/encodings/iso8859_3.py
+++ b/Lib/encodings/iso8859_3.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0126'   #  0xA1 -> LATIN CAPITAL LETTER H WITH STROKE
-    u'\u02d8'   #  0xA2 -> BREVE
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\ufffe'
-    u'\u0124'   #  0xA6 -> LATIN CAPITAL LETTER H WITH CIRCUMFLEX
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\u0130'   #  0xA9 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\u011e'   #  0xAB -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\u0134'   #  0xAC -> LATIN CAPITAL LETTER J WITH CIRCUMFLEX
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\ufffe'
-    u'\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\u0127'   #  0xB1 -> LATIN SMALL LETTER H WITH STROKE
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u0125'   #  0xB6 -> LATIN SMALL LETTER H WITH CIRCUMFLEX
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\u0131'   #  0xB9 -> LATIN SMALL LETTER DOTLESS I
-    u'\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\u011f'   #  0xBB -> LATIN SMALL LETTER G WITH BREVE
-    u'\u0135'   #  0xBC -> LATIN SMALL LETTER J WITH CIRCUMFLEX
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\ufffe'
-    u'\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\ufffe'
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u010a'   #  0xC5 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
-    u'\u0108'   #  0xC6 -> LATIN CAPITAL LETTER C WITH CIRCUMFLEX
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\ufffe'
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0120'   #  0xD5 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\u011c'   #  0xD8 -> LATIN CAPITAL LETTER G WITH CIRCUMFLEX
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u016c'   #  0xDD -> LATIN CAPITAL LETTER U WITH BREVE
-    u'\u015c'   #  0xDE -> LATIN CAPITAL LETTER S WITH CIRCUMFLEX
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\ufffe'
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u010b'   #  0xE5 -> LATIN SMALL LETTER C WITH DOT ABOVE
-    u'\u0109'   #  0xE6 -> LATIN SMALL LETTER C WITH CIRCUMFLEX
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\ufffe'
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\u0121'   #  0xF5 -> LATIN SMALL LETTER G WITH DOT ABOVE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\u011d'   #  0xF8 -> LATIN SMALL LETTER G WITH CIRCUMFLEX
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u016d'   #  0xFD -> LATIN SMALL LETTER U WITH BREVE
-    u'\u015d'   #  0xFE -> LATIN SMALL LETTER S WITH CIRCUMFLEX
-    u'\u02d9'   #  0xFF -> DOT ABOVE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0126'   #  0xA1 -> LATIN CAPITAL LETTER H WITH STROKE
+    '\u02d8'   #  0xA2 -> BREVE
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'
+    '\u0124'   #  0xA6 -> LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0130'   #  0xA9 -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xAA -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u011e'   #  0xAB -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u0134'   #  0xAC -> LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\u017b'   #  0xAF -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0127'   #  0xB1 -> LATIN SMALL LETTER H WITH STROKE
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u0125'   #  0xB6 -> LATIN SMALL LETTER H WITH CIRCUMFLEX
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0131'   #  0xB9 -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xBA -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u011f'   #  0xBB -> LATIN SMALL LETTER G WITH BREVE
+    '\u0135'   #  0xBC -> LATIN SMALL LETTER J WITH CIRCUMFLEX
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\ufffe'
+    '\u017c'   #  0xBF -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\ufffe'
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u010a'   #  0xC5 -> LATIN CAPITAL LETTER C WITH DOT ABOVE
+    '\u0108'   #  0xC6 -> LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\ufffe'
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0120'   #  0xD5 -> LATIN CAPITAL LETTER G WITH DOT ABOVE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\u011c'   #  0xD8 -> LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u016c'   #  0xDD -> LATIN CAPITAL LETTER U WITH BREVE
+    '\u015c'   #  0xDE -> LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\ufffe'
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u010b'   #  0xE5 -> LATIN SMALL LETTER C WITH DOT ABOVE
+    '\u0109'   #  0xE6 -> LATIN SMALL LETTER C WITH CIRCUMFLEX
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\ufffe'
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\u0121'   #  0xF5 -> LATIN SMALL LETTER G WITH DOT ABOVE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\u011d'   #  0xF8 -> LATIN SMALL LETTER G WITH CIRCUMFLEX
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u016d'   #  0xFD -> LATIN SMALL LETTER U WITH BREVE
+    '\u015d'   #  0xFE -> LATIN SMALL LETTER S WITH CIRCUMFLEX
+    '\u02d9'   #  0xFF -> DOT ABOVE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_4.py b/Lib/encodings/iso8859_4.py
index c8e03b5..65c1e00 100644
--- a/Lib/encodings/iso8859_4.py
+++ b/Lib/encodings/iso8859_4.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\u0138'   #  0xA2 -> LATIN SMALL LETTER KRA
-    u'\u0156'   #  0xA3 -> LATIN CAPITAL LETTER R WITH CEDILLA
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
-    u'\u013b'   #  0xA6 -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u0112'   #  0xAA -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u0122'   #  0xAB -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\u0166'   #  0xAC -> LATIN CAPITAL LETTER T WITH STROKE
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u02db'   #  0xB2 -> OGONEK
-    u'\u0157'   #  0xB3 -> LATIN SMALL LETTER R WITH CEDILLA
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
-    u'\u013c'   #  0xB6 -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u02c7'   #  0xB7 -> CARON
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
-    u'\u0113'   #  0xBA -> LATIN SMALL LETTER E WITH MACRON
-    u'\u0123'   #  0xBB -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\u0167'   #  0xBC -> LATIN SMALL LETTER T WITH STROKE
-    u'\u014a'   #  0xBD -> LATIN CAPITAL LETTER ENG
-    u'\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
-    u'\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
-    u'\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\u012a'   #  0xCF -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\u0136'   #  0xD3 -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0168'   #  0xDD -> LATIN CAPITAL LETTER U WITH TILDE
-    u'\u016a'   #  0xDE -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\u012b'   #  0xEF -> LATIN SMALL LETTER I WITH MACRON
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
-    u'\u0137'   #  0xF3 -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u0169'   #  0xFD -> LATIN SMALL LETTER U WITH TILDE
-    u'\u016b'   #  0xFE -> LATIN SMALL LETTER U WITH MACRON
-    u'\u02d9'   #  0xFF -> DOT ABOVE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0104'   #  0xA1 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\u0138'   #  0xA2 -> LATIN SMALL LETTER KRA
+    '\u0156'   #  0xA3 -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\u0128'   #  0xA5 -> LATIN CAPITAL LETTER I WITH TILDE
+    '\u013b'   #  0xA6 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u0112'   #  0xAA -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0122'   #  0xAB -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u0166'   #  0xAC -> LATIN CAPITAL LETTER T WITH STROKE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\u0105'   #  0xB1 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u02db'   #  0xB2 -> OGONEK
+    '\u0157'   #  0xB3 -> LATIN SMALL LETTER R WITH CEDILLA
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\u0129'   #  0xB5 -> LATIN SMALL LETTER I WITH TILDE
+    '\u013c'   #  0xB6 -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u02c7'   #  0xB7 -> CARON
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u0113'   #  0xBA -> LATIN SMALL LETTER E WITH MACRON
+    '\u0123'   #  0xBB -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u0167'   #  0xBC -> LATIN SMALL LETTER T WITH STROKE
+    '\u014a'   #  0xBD -> LATIN CAPITAL LETTER ENG
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\u014b'   #  0xBF -> LATIN SMALL LETTER ENG
+    '\u0100'   #  0xC0 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\u012e'   #  0xC7 -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0118'   #  0xCA -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u0116'   #  0xCC -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\u012a'   #  0xCF -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u0145'   #  0xD1 -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u014c'   #  0xD2 -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u0136'   #  0xD3 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u0172'   #  0xD9 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0168'   #  0xDD -> LATIN CAPITAL LETTER U WITH TILDE
+    '\u016a'   #  0xDE -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\u0101'   #  0xE0 -> LATIN SMALL LETTER A WITH MACRON
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\u012f'   #  0xE7 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0119'   #  0xEA -> LATIN SMALL LETTER E WITH OGONEK
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\u0117'   #  0xEC -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\u012b'   #  0xEF -> LATIN SMALL LETTER I WITH MACRON
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\u0146'   #  0xF1 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u014d'   #  0xF2 -> LATIN SMALL LETTER O WITH MACRON
+    '\u0137'   #  0xF3 -> LATIN SMALL LETTER K WITH CEDILLA
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\u0173'   #  0xF9 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0169'   #  0xFD -> LATIN SMALL LETTER U WITH TILDE
+    '\u016b'   #  0xFE -> LATIN SMALL LETTER U WITH MACRON
+    '\u02d9'   #  0xFF -> DOT ABOVE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_5.py b/Lib/encodings/iso8859_5.py
index c01cd1c..a3c868a 100644
--- a/Lib/encodings/iso8859_5.py
+++ b/Lib/encodings/iso8859_5.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u0401'   #  0xA1 -> CYRILLIC CAPITAL LETTER IO
-    u'\u0402'   #  0xA2 -> CYRILLIC CAPITAL LETTER DJE
-    u'\u0403'   #  0xA3 -> CYRILLIC CAPITAL LETTER GJE
-    u'\u0404'   #  0xA4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\u0405'   #  0xA5 -> CYRILLIC CAPITAL LETTER DZE
-    u'\u0406'   #  0xA6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0407'   #  0xA7 -> CYRILLIC CAPITAL LETTER YI
-    u'\u0408'   #  0xA8 -> CYRILLIC CAPITAL LETTER JE
-    u'\u0409'   #  0xA9 -> CYRILLIC CAPITAL LETTER LJE
-    u'\u040a'   #  0xAA -> CYRILLIC CAPITAL LETTER NJE
-    u'\u040b'   #  0xAB -> CYRILLIC CAPITAL LETTER TSHE
-    u'\u040c'   #  0xAC -> CYRILLIC CAPITAL LETTER KJE
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\u040e'   #  0xAE -> CYRILLIC CAPITAL LETTER SHORT U
-    u'\u040f'   #  0xAF -> CYRILLIC CAPITAL LETTER DZHE
-    u'\u0410'   #  0xB0 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0xB1 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0412'   #  0xB2 -> CYRILLIC CAPITAL LETTER VE
-    u'\u0413'   #  0xB3 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0414'   #  0xB4 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0xB5 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0416'   #  0xB6 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0417'   #  0xB7 -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0418'   #  0xB8 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0xB9 -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0xBA -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0xBB -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0xBC -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0xBD -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0xBE -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0xBF -> CYRILLIC CAPITAL LETTER PE
-    u'\u0420'   #  0xC0 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0xC1 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0xC2 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0xC3 -> CYRILLIC CAPITAL LETTER U
-    u'\u0424'   #  0xC4 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0425'   #  0xC5 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0426'   #  0xC6 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0427'   #  0xC7 -> CYRILLIC CAPITAL LETTER CHE
-    u'\u0428'   #  0xC8 -> CYRILLIC CAPITAL LETTER SHA
-    u'\u0429'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u042a'   #  0xCA -> CYRILLIC CAPITAL LETTER HARD SIGN
-    u'\u042b'   #  0xCB -> CYRILLIC CAPITAL LETTER YERU
-    u'\u042c'   #  0xCC -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042d'   #  0xCD -> CYRILLIC CAPITAL LETTER E
-    u'\u042e'   #  0xCE -> CYRILLIC CAPITAL LETTER YU
-    u'\u042f'   #  0xCF -> CYRILLIC CAPITAL LETTER YA
-    u'\u0430'   #  0xD0 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0xD1 -> CYRILLIC SMALL LETTER BE
-    u'\u0432'   #  0xD2 -> CYRILLIC SMALL LETTER VE
-    u'\u0433'   #  0xD3 -> CYRILLIC SMALL LETTER GHE
-    u'\u0434'   #  0xD4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0xD5 -> CYRILLIC SMALL LETTER IE
-    u'\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0437'   #  0xD7 -> CYRILLIC SMALL LETTER ZE
-    u'\u0438'   #  0xD8 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0xDA -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0xDB -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0xDC -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0xDD -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0xDE -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0xDF -> CYRILLIC SMALL LETTER PE
-    u'\u0440'   #  0xE0 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0xE1 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0xE2 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0xE3 -> CYRILLIC SMALL LETTER U
-    u'\u0444'   #  0xE4 -> CYRILLIC SMALL LETTER EF
-    u'\u0445'   #  0xE5 -> CYRILLIC SMALL LETTER HA
-    u'\u0446'   #  0xE6 -> CYRILLIC SMALL LETTER TSE
-    u'\u0447'   #  0xE7 -> CYRILLIC SMALL LETTER CHE
-    u'\u0448'   #  0xE8 -> CYRILLIC SMALL LETTER SHA
-    u'\u0449'   #  0xE9 -> CYRILLIC SMALL LETTER SHCHA
-    u'\u044a'   #  0xEA -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u044b'   #  0xEB -> CYRILLIC SMALL LETTER YERU
-    u'\u044c'   #  0xEC -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044d'   #  0xED -> CYRILLIC SMALL LETTER E
-    u'\u044e'   #  0xEE -> CYRILLIC SMALL LETTER YU
-    u'\u044f'   #  0xEF -> CYRILLIC SMALL LETTER YA
-    u'\u2116'   #  0xF0 -> NUMERO SIGN
-    u'\u0451'   #  0xF1 -> CYRILLIC SMALL LETTER IO
-    u'\u0452'   #  0xF2 -> CYRILLIC SMALL LETTER DJE
-    u'\u0453'   #  0xF3 -> CYRILLIC SMALL LETTER GJE
-    u'\u0454'   #  0xF4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\u0455'   #  0xF5 -> CYRILLIC SMALL LETTER DZE
-    u'\u0456'   #  0xF6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0457'   #  0xF7 -> CYRILLIC SMALL LETTER YI
-    u'\u0458'   #  0xF8 -> CYRILLIC SMALL LETTER JE
-    u'\u0459'   #  0xF9 -> CYRILLIC SMALL LETTER LJE
-    u'\u045a'   #  0xFA -> CYRILLIC SMALL LETTER NJE
-    u'\u045b'   #  0xFB -> CYRILLIC SMALL LETTER TSHE
-    u'\u045c'   #  0xFC -> CYRILLIC SMALL LETTER KJE
-    u'\xa7'     #  0xFD -> SECTION SIGN
-    u'\u045e'   #  0xFE -> CYRILLIC SMALL LETTER SHORT U
-    u'\u045f'   #  0xFF -> CYRILLIC SMALL LETTER DZHE
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u0401'   #  0xA1 -> CYRILLIC CAPITAL LETTER IO
+    '\u0402'   #  0xA2 -> CYRILLIC CAPITAL LETTER DJE
+    '\u0403'   #  0xA3 -> CYRILLIC CAPITAL LETTER GJE
+    '\u0404'   #  0xA4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0405'   #  0xA5 -> CYRILLIC CAPITAL LETTER DZE
+    '\u0406'   #  0xA6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0407'   #  0xA7 -> CYRILLIC CAPITAL LETTER YI
+    '\u0408'   #  0xA8 -> CYRILLIC CAPITAL LETTER JE
+    '\u0409'   #  0xA9 -> CYRILLIC CAPITAL LETTER LJE
+    '\u040a'   #  0xAA -> CYRILLIC CAPITAL LETTER NJE
+    '\u040b'   #  0xAB -> CYRILLIC CAPITAL LETTER TSHE
+    '\u040c'   #  0xAC -> CYRILLIC CAPITAL LETTER KJE
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\u040e'   #  0xAE -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u040f'   #  0xAF -> CYRILLIC CAPITAL LETTER DZHE
+    '\u0410'   #  0xB0 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xB1 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0xB2 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0xB3 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0xB4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xB5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0xB6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0xB7 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0xB8 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xB9 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xBA -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xBB -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xBC -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xBD -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xBE -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xBF -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0xC0 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xC1 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xC2 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xC3 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0xC4 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0xC5 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0xC6 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0xC7 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0xC8 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0xC9 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0xCA -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0xCB -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0xCC -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0xCD -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0xCE -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0xCF -> CYRILLIC CAPITAL LETTER YA
+    '\u0430'   #  0xD0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xD1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xD2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xD3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xD4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xD5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xD7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xD8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xDA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xDB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xDC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xDD -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xDE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xDF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xE0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xE1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xE2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xE3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xE4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xE5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xE6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xE7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xE8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xE9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xEA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xEB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xEC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xED -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xEE -> CYRILLIC SMALL LETTER YU
+    '\u044f'   #  0xEF -> CYRILLIC SMALL LETTER YA
+    '\u2116'   #  0xF0 -> NUMERO SIGN
+    '\u0451'   #  0xF1 -> CYRILLIC SMALL LETTER IO
+    '\u0452'   #  0xF2 -> CYRILLIC SMALL LETTER DJE
+    '\u0453'   #  0xF3 -> CYRILLIC SMALL LETTER GJE
+    '\u0454'   #  0xF4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0455'   #  0xF5 -> CYRILLIC SMALL LETTER DZE
+    '\u0456'   #  0xF6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0xF7 -> CYRILLIC SMALL LETTER YI
+    '\u0458'   #  0xF8 -> CYRILLIC SMALL LETTER JE
+    '\u0459'   #  0xF9 -> CYRILLIC SMALL LETTER LJE
+    '\u045a'   #  0xFA -> CYRILLIC SMALL LETTER NJE
+    '\u045b'   #  0xFB -> CYRILLIC SMALL LETTER TSHE
+    '\u045c'   #  0xFC -> CYRILLIC SMALL LETTER KJE
+    '\xa7'     #  0xFD -> SECTION SIGN
+    '\u045e'   #  0xFE -> CYRILLIC SMALL LETTER SHORT U
+    '\u045f'   #  0xFF -> CYRILLIC SMALL LETTER DZHE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_6.py b/Lib/encodings/iso8859_6.py
index 16c34a3..b02ade6 100644
--- a/Lib/encodings/iso8859_6.py
+++ b/Lib/encodings/iso8859_6.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u060c'   #  0xAC -> ARABIC COMMA
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u061b'   #  0xBB -> ARABIC SEMICOLON
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u061f'   #  0xBF -> ARABIC QUESTION MARK
-    u'\ufffe'
-    u'\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
-    u'\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
-    u'\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
-    u'\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
-    u'\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
-    u'\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
-    u'\u0627'   #  0xC7 -> ARABIC LETTER ALEF
-    u'\u0628'   #  0xC8 -> ARABIC LETTER BEH
-    u'\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
-    u'\u062a'   #  0xCA -> ARABIC LETTER TEH
-    u'\u062b'   #  0xCB -> ARABIC LETTER THEH
-    u'\u062c'   #  0xCC -> ARABIC LETTER JEEM
-    u'\u062d'   #  0xCD -> ARABIC LETTER HAH
-    u'\u062e'   #  0xCE -> ARABIC LETTER KHAH
-    u'\u062f'   #  0xCF -> ARABIC LETTER DAL
-    u'\u0630'   #  0xD0 -> ARABIC LETTER THAL
-    u'\u0631'   #  0xD1 -> ARABIC LETTER REH
-    u'\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
-    u'\u0633'   #  0xD3 -> ARABIC LETTER SEEN
-    u'\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
-    u'\u0635'   #  0xD5 -> ARABIC LETTER SAD
-    u'\u0636'   #  0xD6 -> ARABIC LETTER DAD
-    u'\u0637'   #  0xD7 -> ARABIC LETTER TAH
-    u'\u0638'   #  0xD8 -> ARABIC LETTER ZAH
-    u'\u0639'   #  0xD9 -> ARABIC LETTER AIN
-    u'\u063a'   #  0xDA -> ARABIC LETTER GHAIN
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u0640'   #  0xE0 -> ARABIC TATWEEL
-    u'\u0641'   #  0xE1 -> ARABIC LETTER FEH
-    u'\u0642'   #  0xE2 -> ARABIC LETTER QAF
-    u'\u0643'   #  0xE3 -> ARABIC LETTER KAF
-    u'\u0644'   #  0xE4 -> ARABIC LETTER LAM
-    u'\u0645'   #  0xE5 -> ARABIC LETTER MEEM
-    u'\u0646'   #  0xE6 -> ARABIC LETTER NOON
-    u'\u0647'   #  0xE7 -> ARABIC LETTER HEH
-    u'\u0648'   #  0xE8 -> ARABIC LETTER WAW
-    u'\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
-    u'\u064a'   #  0xEA -> ARABIC LETTER YEH
-    u'\u064b'   #  0xEB -> ARABIC FATHATAN
-    u'\u064c'   #  0xEC -> ARABIC DAMMATAN
-    u'\u064d'   #  0xED -> ARABIC KASRATAN
-    u'\u064e'   #  0xEE -> ARABIC FATHA
-    u'\u064f'   #  0xEF -> ARABIC DAMMA
-    u'\u0650'   #  0xF0 -> ARABIC KASRA
-    u'\u0651'   #  0xF1 -> ARABIC SHADDA
-    u'\u0652'   #  0xF2 -> ARABIC SUKUN
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u060c'   #  0xAC -> ARABIC COMMA
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u061b'   #  0xBB -> ARABIC SEMICOLON
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\ufffe'
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\u0637'   #  0xD7 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xD9 -> ARABIC LETTER AIN
+    '\u063a'   #  0xDA -> ARABIC LETTER GHAIN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0640'   #  0xE0 -> ARABIC TATWEEL
+    '\u0641'   #  0xE1 -> ARABIC LETTER FEH
+    '\u0642'   #  0xE2 -> ARABIC LETTER QAF
+    '\u0643'   #  0xE3 -> ARABIC LETTER KAF
+    '\u0644'   #  0xE4 -> ARABIC LETTER LAM
+    '\u0645'   #  0xE5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE6 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE7 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE8 -> ARABIC LETTER WAW
+    '\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xEA -> ARABIC LETTER YEH
+    '\u064b'   #  0xEB -> ARABIC FATHATAN
+    '\u064c'   #  0xEC -> ARABIC DAMMATAN
+    '\u064d'   #  0xED -> ARABIC KASRATAN
+    '\u064e'   #  0xEE -> ARABIC FATHA
+    '\u064f'   #  0xEF -> ARABIC DAMMA
+    '\u0650'   #  0xF0 -> ARABIC KASRA
+    '\u0651'   #  0xF1 -> ARABIC SHADDA
+    '\u0652'   #  0xF2 -> ARABIC SUKUN
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_7.py b/Lib/encodings/iso8859_7.py
index a560023..d7b39cb 100644
--- a/Lib/encodings/iso8859_7.py
+++ b/Lib/encodings/iso8859_7.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\u2018'   #  0xA1 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xA2 -> RIGHT SINGLE QUOTATION MARK
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\u20ac'   #  0xA4 -> EURO SIGN
-    u'\u20af'   #  0xA5 -> DRACHMA SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u037a'   #  0xAA -> GREEK YPOGEGRAMMENI
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\ufffe'
-    u'\u2015'   #  0xAF -> HORIZONTAL BAR
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\u0384'   #  0xB4 -> GREEK TONOS
-    u'\u0385'   #  0xB5 -> GREEK DIALYTIKA TONOS
-    u'\u0386'   #  0xB6 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    u'\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
-    u'\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
-    u'\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
-    u'\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
-    u'\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
-    u'\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
-    u'\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
-    u'\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
-    u'\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
-    u'\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
-    u'\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
-    u'\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
-    u'\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
-    u'\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
-    u'\ufffe'
-    u'\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
-    u'\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
-    u'\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
-    u'\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
-    u'\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
-    u'\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    u'\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
-    u'\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
-    u'\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
-    u'\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
-    u'\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
-    u'\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
-    u'\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
-    u'\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
-    u'\u03bd'   #  0xED -> GREEK SMALL LETTER NU
-    u'\u03be'   #  0xEE -> GREEK SMALL LETTER XI
-    u'\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
-    u'\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
-    u'\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
-    u'\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
-    u'\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
-    u'\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
-    u'\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
-    u'\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
-    u'\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
-    u'\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\ufffe'
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\u2018'   #  0xA1 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xA2 -> RIGHT SINGLE QUOTATION MARK
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\u20ac'   #  0xA4 -> EURO SIGN
+    '\u20af'   #  0xA5 -> DRACHMA SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u037a'   #  0xAA -> GREEK YPOGEGRAMMENI
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\ufffe'
+    '\u2015'   #  0xAF -> HORIZONTAL BAR
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\u0384'   #  0xB4 -> GREEK TONOS
+    '\u0385'   #  0xB5 -> GREEK DIALYTIKA TONOS
+    '\u0386'   #  0xB6 -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\u0388'   #  0xB8 -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0389'   #  0xB9 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xBA -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u038c'   #  0xBC -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\u038e'   #  0xBE -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u038f'   #  0xBF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u0390'   #  0xC0 -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u0391'   #  0xC1 -> GREEK CAPITAL LETTER ALPHA
+    '\u0392'   #  0xC2 -> GREEK CAPITAL LETTER BETA
+    '\u0393'   #  0xC3 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xC4 -> GREEK CAPITAL LETTER DELTA
+    '\u0395'   #  0xC5 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xC6 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xC7 -> GREEK CAPITAL LETTER ETA
+    '\u0398'   #  0xC8 -> GREEK CAPITAL LETTER THETA
+    '\u0399'   #  0xC9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xCA -> GREEK CAPITAL LETTER KAPPA
+    '\u039b'   #  0xCB -> GREEK CAPITAL LETTER LAMDA
+    '\u039c'   #  0xCC -> GREEK CAPITAL LETTER MU
+    '\u039d'   #  0xCD -> GREEK CAPITAL LETTER NU
+    '\u039e'   #  0xCE -> GREEK CAPITAL LETTER XI
+    '\u039f'   #  0xCF -> GREEK CAPITAL LETTER OMICRON
+    '\u03a0'   #  0xD0 -> GREEK CAPITAL LETTER PI
+    '\u03a1'   #  0xD1 -> GREEK CAPITAL LETTER RHO
+    '\ufffe'
+    '\u03a3'   #  0xD3 -> GREEK CAPITAL LETTER SIGMA
+    '\u03a4'   #  0xD4 -> GREEK CAPITAL LETTER TAU
+    '\u03a5'   #  0xD5 -> GREEK CAPITAL LETTER UPSILON
+    '\u03a6'   #  0xD6 -> GREEK CAPITAL LETTER PHI
+    '\u03a7'   #  0xD7 -> GREEK CAPITAL LETTER CHI
+    '\u03a8'   #  0xD8 -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xD9 -> GREEK CAPITAL LETTER OMEGA
+    '\u03aa'   #  0xDA -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\u03ab'   #  0xDB -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03ac'   #  0xDC -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u03ad'   #  0xDD -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDE -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDF -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03b0'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03b3'   #  0xE3 -> GREEK SMALL LETTER GAMMA
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03b6'   #  0xE6 -> GREEK SMALL LETTER ZETA
+    '\u03b7'   #  0xE7 -> GREEK SMALL LETTER ETA
+    '\u03b8'   #  0xE8 -> GREEK SMALL LETTER THETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03ba'   #  0xEA -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEB -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xEC -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xED -> GREEK SMALL LETTER NU
+    '\u03be'   #  0xEE -> GREEK SMALL LETTER XI
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03c1'   #  0xF1 -> GREEK SMALL LETTER RHO
+    '\u03c2'   #  0xF2 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03c5'   #  0xF5 -> GREEK SMALL LETTER UPSILON
+    '\u03c6'   #  0xF6 -> GREEK SMALL LETTER PHI
+    '\u03c7'   #  0xF7 -> GREEK SMALL LETTER CHI
+    '\u03c8'   #  0xF8 -> GREEK SMALL LETTER PSI
+    '\u03c9'   #  0xF9 -> GREEK SMALL LETTER OMEGA
+    '\u03ca'   #  0xFA -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFB -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u03cc'   #  0xFC -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u03cd'   #  0xFD -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03ce'   #  0xFE -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\ufffe'
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_8.py b/Lib/encodings/iso8859_8.py
index 43cf213..8184902 100644
--- a/Lib/encodings/iso8859_8.py
+++ b/Lib/encodings/iso8859_8.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\ufffe'
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xd7'     #  0xAA -> MULTIPLICATION SIGN
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xf7'     #  0xBA -> DIVISION SIGN
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u2017'   #  0xDF -> DOUBLE LOW LINE
-    u'\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
-    u'\u05d1'   #  0xE1 -> HEBREW LETTER BET
-    u'\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
-    u'\u05d3'   #  0xE3 -> HEBREW LETTER DALET
-    u'\u05d4'   #  0xE4 -> HEBREW LETTER HE
-    u'\u05d5'   #  0xE5 -> HEBREW LETTER VAV
-    u'\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
-    u'\u05d7'   #  0xE7 -> HEBREW LETTER HET
-    u'\u05d8'   #  0xE8 -> HEBREW LETTER TET
-    u'\u05d9'   #  0xE9 -> HEBREW LETTER YOD
-    u'\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
-    u'\u05db'   #  0xEB -> HEBREW LETTER KAF
-    u'\u05dc'   #  0xEC -> HEBREW LETTER LAMED
-    u'\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
-    u'\u05de'   #  0xEE -> HEBREW LETTER MEM
-    u'\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
-    u'\u05e0'   #  0xF0 -> HEBREW LETTER NUN
-    u'\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
-    u'\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
-    u'\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
-    u'\u05e4'   #  0xF4 -> HEBREW LETTER PE
-    u'\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
-    u'\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
-    u'\u05e7'   #  0xF7 -> HEBREW LETTER QOF
-    u'\u05e8'   #  0xF8 -> HEBREW LETTER RESH
-    u'\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
-    u'\u05ea'   #  0xFA -> HEBREW LETTER TAV
-    u'\ufffe'
-    u'\ufffe'
-    u'\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
-    u'\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
-    u'\ufffe'
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\ufffe'
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xd7'     #  0xAA -> MULTIPLICATION SIGN
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xf7'     #  0xBA -> DIVISION SIGN
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u2017'   #  0xDF -> DOUBLE LOW LINE
+    '\u05d0'   #  0xE0 -> HEBREW LETTER ALEF
+    '\u05d1'   #  0xE1 -> HEBREW LETTER BET
+    '\u05d2'   #  0xE2 -> HEBREW LETTER GIMEL
+    '\u05d3'   #  0xE3 -> HEBREW LETTER DALET
+    '\u05d4'   #  0xE4 -> HEBREW LETTER HE
+    '\u05d5'   #  0xE5 -> HEBREW LETTER VAV
+    '\u05d6'   #  0xE6 -> HEBREW LETTER ZAYIN
+    '\u05d7'   #  0xE7 -> HEBREW LETTER HET
+    '\u05d8'   #  0xE8 -> HEBREW LETTER TET
+    '\u05d9'   #  0xE9 -> HEBREW LETTER YOD
+    '\u05da'   #  0xEA -> HEBREW LETTER FINAL KAF
+    '\u05db'   #  0xEB -> HEBREW LETTER KAF
+    '\u05dc'   #  0xEC -> HEBREW LETTER LAMED
+    '\u05dd'   #  0xED -> HEBREW LETTER FINAL MEM
+    '\u05de'   #  0xEE -> HEBREW LETTER MEM
+    '\u05df'   #  0xEF -> HEBREW LETTER FINAL NUN
+    '\u05e0'   #  0xF0 -> HEBREW LETTER NUN
+    '\u05e1'   #  0xF1 -> HEBREW LETTER SAMEKH
+    '\u05e2'   #  0xF2 -> HEBREW LETTER AYIN
+    '\u05e3'   #  0xF3 -> HEBREW LETTER FINAL PE
+    '\u05e4'   #  0xF4 -> HEBREW LETTER PE
+    '\u05e5'   #  0xF5 -> HEBREW LETTER FINAL TSADI
+    '\u05e6'   #  0xF6 -> HEBREW LETTER TSADI
+    '\u05e7'   #  0xF7 -> HEBREW LETTER QOF
+    '\u05e8'   #  0xF8 -> HEBREW LETTER RESH
+    '\u05e9'   #  0xF9 -> HEBREW LETTER SHIN
+    '\u05ea'   #  0xFA -> HEBREW LETTER TAV
+    '\ufffe'
+    '\ufffe'
+    '\u200e'   #  0xFD -> LEFT-TO-RIGHT MARK
+    '\u200f'   #  0xFE -> RIGHT-TO-LEFT MARK
+    '\ufffe'
 )
 
 ### Encoding table
diff --git a/Lib/encodings/iso8859_9.py b/Lib/encodings/iso8859_9.py
index b802938..e539fdd 100644
--- a/Lib/encodings/iso8859_9.py
+++ b/Lib/encodings/iso8859_9.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\xa0'     #  0xA0 -> NO-BREAK SPACE
-    u'\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa4'     #  0xA4 -> CURRENCY SIGN
-    u'\xa5'     #  0xA5 -> YEN SIGN
-    u'\xa6'     #  0xA6 -> BROKEN BAR
-    u'\xa7'     #  0xA7 -> SECTION SIGN
-    u'\xa8'     #  0xA8 -> DIAERESIS
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
-    u'\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xac'     #  0xAC -> NOT SIGN
-    u'\xad'     #  0xAD -> SOFT HYPHEN
-    u'\xae'     #  0xAE -> REGISTERED SIGN
-    u'\xaf'     #  0xAF -> MACRON
-    u'\xb0'     #  0xB0 -> DEGREE SIGN
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\xb2'     #  0xB2 -> SUPERSCRIPT TWO
-    u'\xb3'     #  0xB3 -> SUPERSCRIPT THREE
-    u'\xb4'     #  0xB4 -> ACUTE ACCENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\xb6'     #  0xB6 -> PILCROW SIGN
-    u'\xb7'     #  0xB7 -> MIDDLE DOT
-    u'\xb8'     #  0xB8 -> CEDILLA
-    u'\xb9'     #  0xB9 -> SUPERSCRIPT ONE
-    u'\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
-    u'\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
-    u'\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
-    u'\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
-    u'\xbf'     #  0xBF -> INVERTED QUESTION MARK
-    u'\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
-    u'\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xd7'     #  0xD7 -> MULTIPLICATION SIGN
-    u'\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
-    u'\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
-    u'\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
-    u'\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
-    u'\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0xF7 -> DIVISION SIGN
-    u'\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
-    u'\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
-    u'\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\xa0'     #  0xA0 -> NO-BREAK SPACE
+    '\xa1'     #  0xA1 -> INVERTED EXCLAMATION MARK
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa4'     #  0xA4 -> CURRENCY SIGN
+    '\xa5'     #  0xA5 -> YEN SIGN
+    '\xa6'     #  0xA6 -> BROKEN BAR
+    '\xa7'     #  0xA7 -> SECTION SIGN
+    '\xa8'     #  0xA8 -> DIAERESIS
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\xaa'     #  0xAA -> FEMININE ORDINAL INDICATOR
+    '\xab'     #  0xAB -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xac'     #  0xAC -> NOT SIGN
+    '\xad'     #  0xAD -> SOFT HYPHEN
+    '\xae'     #  0xAE -> REGISTERED SIGN
+    '\xaf'     #  0xAF -> MACRON
+    '\xb0'     #  0xB0 -> DEGREE SIGN
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\xb2'     #  0xB2 -> SUPERSCRIPT TWO
+    '\xb3'     #  0xB3 -> SUPERSCRIPT THREE
+    '\xb4'     #  0xB4 -> ACUTE ACCENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\xb6'     #  0xB6 -> PILCROW SIGN
+    '\xb7'     #  0xB7 -> MIDDLE DOT
+    '\xb8'     #  0xB8 -> CEDILLA
+    '\xb9'     #  0xB9 -> SUPERSCRIPT ONE
+    '\xba'     #  0xBA -> MASCULINE ORDINAL INDICATOR
+    '\xbb'     #  0xBB -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbc'     #  0xBC -> VULGAR FRACTION ONE QUARTER
+    '\xbd'     #  0xBD -> VULGAR FRACTION ONE HALF
+    '\xbe'     #  0xBE -> VULGAR FRACTION THREE QUARTERS
+    '\xbf'     #  0xBF -> INVERTED QUESTION MARK
+    '\xc0'     #  0xC0 -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc1'     #  0xC1 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xc2'     #  0xC2 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xc3'     #  0xC3 -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xc4'     #  0xC4 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0xC5 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc6'     #  0xC6 -> LATIN CAPITAL LETTER AE
+    '\xc7'     #  0xC7 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc8'     #  0xC8 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xc9'     #  0xC9 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xca'     #  0xCA -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xcb'     #  0xCB -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xcc'     #  0xCC -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xcd'     #  0xCD -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xCE -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xCF -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\u011e'   #  0xD0 -> LATIN CAPITAL LETTER G WITH BREVE
+    '\xd1'     #  0xD1 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd2'     #  0xD2 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xd3'     #  0xD3 -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xD4 -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\xd5'     #  0xD5 -> LATIN CAPITAL LETTER O WITH TILDE
+    '\xd6'     #  0xD6 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xd7'     #  0xD7 -> MULTIPLICATION SIGN
+    '\xd8'     #  0xD8 -> LATIN CAPITAL LETTER O WITH STROKE
+    '\xd9'     #  0xD9 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\xda'     #  0xDA -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xDB -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xdc'     #  0xDC -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0130'   #  0xDD -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\xdf'     #  0xDF -> LATIN SMALL LETTER SHARP S
+    '\xe0'     #  0xE0 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe1'     #  0xE1 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe2'     #  0xE2 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe3'     #  0xE3 -> LATIN SMALL LETTER A WITH TILDE
+    '\xe4'     #  0xE4 -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe5'     #  0xE5 -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe6'     #  0xE6 -> LATIN SMALL LETTER AE
+    '\xe7'     #  0xE7 -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe8'     #  0xE8 -> LATIN SMALL LETTER E WITH GRAVE
+    '\xe9'     #  0xE9 -> LATIN SMALL LETTER E WITH ACUTE
+    '\xea'     #  0xEA -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0xEB -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xec'     #  0xEC -> LATIN SMALL LETTER I WITH GRAVE
+    '\xed'     #  0xED -> LATIN SMALL LETTER I WITH ACUTE
+    '\xee'     #  0xEE -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0xEF -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u011f'   #  0xF0 -> LATIN SMALL LETTER G WITH BREVE
+    '\xf1'     #  0xF1 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf2'     #  0xF2 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf3'     #  0xF3 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf4'     #  0xF4 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf5'     #  0xF5 -> LATIN SMALL LETTER O WITH TILDE
+    '\xf6'     #  0xF6 -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0xF7 -> DIVISION SIGN
+    '\xf8'     #  0xF8 -> LATIN SMALL LETTER O WITH STROKE
+    '\xf9'     #  0xF9 -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfa'     #  0xFA -> LATIN SMALL LETTER U WITH ACUTE
+    '\xfb'     #  0xFB -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0xFC -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u0131'   #  0xFD -> LATIN SMALL LETTER DOTLESS I
+    '\u015f'   #  0xFE -> LATIN SMALL LETTER S WITH CEDILLA
+    '\xff'     #  0xFF -> LATIN SMALL LETTER Y WITH DIAERESIS
 )
 
 ### Encoding table
diff --git a/Lib/encodings/koi8_r.py b/Lib/encodings/koi8_r.py
index f9eb82c..41ddde8 100644
--- a/Lib/encodings/koi8_r.py
+++ b/Lib/encodings/koi8_r.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u2580'   #  0x8B -> UPPER HALF BLOCK
-    u'\u2584'   #  0x8C -> LOWER HALF BLOCK
-    u'\u2588'   #  0x8D -> FULL BLOCK
-    u'\u258c'   #  0x8E -> LEFT HALF BLOCK
-    u'\u2590'   #  0x8F -> RIGHT HALF BLOCK
-    u'\u2591'   #  0x90 -> LIGHT SHADE
-    u'\u2592'   #  0x91 -> MEDIUM SHADE
-    u'\u2593'   #  0x92 -> DARK SHADE
-    u'\u2320'   #  0x93 -> TOP HALF INTEGRAL
-    u'\u25a0'   #  0x94 -> BLACK SQUARE
-    u'\u2219'   #  0x95 -> BULLET OPERATOR
-    u'\u221a'   #  0x96 -> SQUARE ROOT
-    u'\u2248'   #  0x97 -> ALMOST EQUAL TO
-    u'\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
-    u'\xa0'     #  0x9A -> NO-BREAK SPACE
-    u'\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
-    u'\xb0'     #  0x9C -> DEGREE SIGN
-    u'\xb2'     #  0x9D -> SUPERSCRIPT TWO
-    u'\xb7'     #  0x9E -> MIDDLE DOT
-    u'\xf7'     #  0x9F -> DIVISION SIGN
-    u'\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
-    u'\u2553'   #  0xA4 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-    u'\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u2555'   #  0xA6 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-    u'\u2556'   #  0xA7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-    u'\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u255c'   #  0xAD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-    u'\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
-    u'\u2562'   #  0xB4 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-    u'\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u2564'   #  0xB6 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-    u'\u2565'   #  0xB7 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-    u'\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u256b'   #  0xBD -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-    u'\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa9'     #  0xBF -> COPYRIGHT SIGN
-    u'\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
-    u'\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
-    u'\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
-    u'\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
-    u'\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
-    u'\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
-    u'\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
-    u'\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
-    u'\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
-    u'\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
-    u'\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
-    u'\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
-    u'\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
-    u'\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
-    u'\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
-    u'\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
-    u'\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
-    u'\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
-    u'\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
-    u'\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
-    u'\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
-    u'\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
-    u'\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
-    u'\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
-    u'\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
-    u'\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
-    u'\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u2580'   #  0x8B -> UPPER HALF BLOCK
+    '\u2584'   #  0x8C -> LOWER HALF BLOCK
+    '\u2588'   #  0x8D -> FULL BLOCK
+    '\u258c'   #  0x8E -> LEFT HALF BLOCK
+    '\u2590'   #  0x8F -> RIGHT HALF BLOCK
+    '\u2591'   #  0x90 -> LIGHT SHADE
+    '\u2592'   #  0x91 -> MEDIUM SHADE
+    '\u2593'   #  0x92 -> DARK SHADE
+    '\u2320'   #  0x93 -> TOP HALF INTEGRAL
+    '\u25a0'   #  0x94 -> BLACK SQUARE
+    '\u2219'   #  0x95 -> BULLET OPERATOR
+    '\u221a'   #  0x96 -> SQUARE ROOT
+    '\u2248'   #  0x97 -> ALMOST EQUAL TO
+    '\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
+    '\xa0'     #  0x9A -> NO-BREAK SPACE
+    '\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
+    '\xb0'     #  0x9C -> DEGREE SIGN
+    '\xb2'     #  0x9D -> SUPERSCRIPT TWO
+    '\xb7'     #  0x9E -> MIDDLE DOT
+    '\xf7'     #  0x9F -> DIVISION SIGN
+    '\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
+    '\u2553'   #  0xA4 -> BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+    '\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u2555'   #  0xA6 -> BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+    '\u2556'   #  0xA7 -> BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+    '\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u255c'   #  0xAD -> BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+    '\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
+    '\u2562'   #  0xB4 -> BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+    '\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u2564'   #  0xB6 -> BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+    '\u2565'   #  0xB7 -> BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+    '\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u256b'   #  0xBD -> BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+    '\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa9'     #  0xBF -> COPYRIGHT SIGN
+    '\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
+    '\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
+    '\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
+    '\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
+    '\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
+    '\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
+    '\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
+    '\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
+    '\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
+    '\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
+    '\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
+    '\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
+    '\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
+    '\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
+    '\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
+    '\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
+    '\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
+    '\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
+    '\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
+    '\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
+    '\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
+    '\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
+    '\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
+    '\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
+    '\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
+    '\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
+    '\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
+    '\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
+    '\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
 )
 
 ### Encoding table
diff --git a/Lib/encodings/koi8_u.py b/Lib/encodings/koi8_u.py
index a9317b1..f9e3fae 100644
--- a/Lib/encodings/koi8_u.py
+++ b/Lib/encodings/koi8_u.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
-    u'\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
-    u'\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
-    u'\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
-    u'\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
-    u'\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
-    u'\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-    u'\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
-    u'\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-    u'\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
-    u'\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-    u'\u2580'   #  0x8B -> UPPER HALF BLOCK
-    u'\u2584'   #  0x8C -> LOWER HALF BLOCK
-    u'\u2588'   #  0x8D -> FULL BLOCK
-    u'\u258c'   #  0x8E -> LEFT HALF BLOCK
-    u'\u2590'   #  0x8F -> RIGHT HALF BLOCK
-    u'\u2591'   #  0x90 -> LIGHT SHADE
-    u'\u2592'   #  0x91 -> MEDIUM SHADE
-    u'\u2593'   #  0x92 -> DARK SHADE
-    u'\u2320'   #  0x93 -> TOP HALF INTEGRAL
-    u'\u25a0'   #  0x94 -> BLACK SQUARE
-    u'\u2219'   #  0x95 -> BULLET OPERATOR
-    u'\u221a'   #  0x96 -> SQUARE ROOT
-    u'\u2248'   #  0x97 -> ALMOST EQUAL TO
-    u'\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
-    u'\xa0'     #  0x9A -> NO-BREAK SPACE
-    u'\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
-    u'\xb0'     #  0x9C -> DEGREE SIGN
-    u'\xb2'     #  0x9D -> SUPERSCRIPT TWO
-    u'\xb7'     #  0x9E -> MIDDLE DOT
-    u'\xf7'     #  0x9F -> DIVISION SIGN
-    u'\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
-    u'\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
-    u'\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-    u'\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
-    u'\u0454'   #  0xA4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
-    u'\u0456'   #  0xA6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0457'   #  0xA7 -> CYRILLIC SMALL LETTER YI (UKRAINIAN)
-    u'\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
-    u'\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-    u'\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-    u'\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
-    u'\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-    u'\u0491'   #  0xAD -> CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN
-    u'\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
-    u'\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-    u'\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-    u'\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-    u'\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-    u'\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
-    u'\u0404'   #  0xB4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-    u'\u0406'   #  0xB6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\u0407'   #  0xB7 -> CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
-    u'\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-    u'\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-    u'\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-    u'\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-    u'\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-    u'\u0490'   #  0xBD -> CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN
-    u'\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-    u'\xa9'     #  0xBF -> COPYRIGHT SIGN
-    u'\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
-    u'\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
-    u'\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
-    u'\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
-    u'\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
-    u'\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
-    u'\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
-    u'\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
-    u'\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
-    u'\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
-    u'\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
-    u'\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
-    u'\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
-    u'\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
-    u'\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
-    u'\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
-    u'\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
-    u'\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
-    u'\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
-    u'\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
-    u'\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
-    u'\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
-    u'\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
-    u'\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
-    u'\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
-    u'\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
-    u'\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\u2500'   #  0x80 -> BOX DRAWINGS LIGHT HORIZONTAL
+    '\u2502'   #  0x81 -> BOX DRAWINGS LIGHT VERTICAL
+    '\u250c'   #  0x82 -> BOX DRAWINGS LIGHT DOWN AND RIGHT
+    '\u2510'   #  0x83 -> BOX DRAWINGS LIGHT DOWN AND LEFT
+    '\u2514'   #  0x84 -> BOX DRAWINGS LIGHT UP AND RIGHT
+    '\u2518'   #  0x85 -> BOX DRAWINGS LIGHT UP AND LEFT
+    '\u251c'   #  0x86 -> BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+    '\u2524'   #  0x87 -> BOX DRAWINGS LIGHT VERTICAL AND LEFT
+    '\u252c'   #  0x88 -> BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+    '\u2534'   #  0x89 -> BOX DRAWINGS LIGHT UP AND HORIZONTAL
+    '\u253c'   #  0x8A -> BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+    '\u2580'   #  0x8B -> UPPER HALF BLOCK
+    '\u2584'   #  0x8C -> LOWER HALF BLOCK
+    '\u2588'   #  0x8D -> FULL BLOCK
+    '\u258c'   #  0x8E -> LEFT HALF BLOCK
+    '\u2590'   #  0x8F -> RIGHT HALF BLOCK
+    '\u2591'   #  0x90 -> LIGHT SHADE
+    '\u2592'   #  0x91 -> MEDIUM SHADE
+    '\u2593'   #  0x92 -> DARK SHADE
+    '\u2320'   #  0x93 -> TOP HALF INTEGRAL
+    '\u25a0'   #  0x94 -> BLACK SQUARE
+    '\u2219'   #  0x95 -> BULLET OPERATOR
+    '\u221a'   #  0x96 -> SQUARE ROOT
+    '\u2248'   #  0x97 -> ALMOST EQUAL TO
+    '\u2264'   #  0x98 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0x99 -> GREATER-THAN OR EQUAL TO
+    '\xa0'     #  0x9A -> NO-BREAK SPACE
+    '\u2321'   #  0x9B -> BOTTOM HALF INTEGRAL
+    '\xb0'     #  0x9C -> DEGREE SIGN
+    '\xb2'     #  0x9D -> SUPERSCRIPT TWO
+    '\xb7'     #  0x9E -> MIDDLE DOT
+    '\xf7'     #  0x9F -> DIVISION SIGN
+    '\u2550'   #  0xA0 -> BOX DRAWINGS DOUBLE HORIZONTAL
+    '\u2551'   #  0xA1 -> BOX DRAWINGS DOUBLE VERTICAL
+    '\u2552'   #  0xA2 -> BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+    '\u0451'   #  0xA3 -> CYRILLIC SMALL LETTER IO
+    '\u0454'   #  0xA4 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u2554'   #  0xA5 -> BOX DRAWINGS DOUBLE DOWN AND RIGHT
+    '\u0456'   #  0xA6 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0457'   #  0xA7 -> CYRILLIC SMALL LETTER YI (UKRAINIAN)
+    '\u2557'   #  0xA8 -> BOX DRAWINGS DOUBLE DOWN AND LEFT
+    '\u2558'   #  0xA9 -> BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+    '\u2559'   #  0xAA -> BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+    '\u255a'   #  0xAB -> BOX DRAWINGS DOUBLE UP AND RIGHT
+    '\u255b'   #  0xAC -> BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+    '\u0491'   #  0xAD -> CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN
+    '\u255d'   #  0xAE -> BOX DRAWINGS DOUBLE UP AND LEFT
+    '\u255e'   #  0xAF -> BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+    '\u255f'   #  0xB0 -> BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+    '\u2560'   #  0xB1 -> BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+    '\u2561'   #  0xB2 -> BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+    '\u0401'   #  0xB3 -> CYRILLIC CAPITAL LETTER IO
+    '\u0404'   #  0xB4 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u2563'   #  0xB5 -> BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+    '\u0406'   #  0xB6 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\u0407'   #  0xB7 -> CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
+    '\u2566'   #  0xB8 -> BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+    '\u2567'   #  0xB9 -> BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+    '\u2568'   #  0xBA -> BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+    '\u2569'   #  0xBB -> BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+    '\u256a'   #  0xBC -> BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+    '\u0490'   #  0xBD -> CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN
+    '\u256c'   #  0xBE -> BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+    '\xa9'     #  0xBF -> COPYRIGHT SIGN
+    '\u044e'   #  0xC0 -> CYRILLIC SMALL LETTER YU
+    '\u0430'   #  0xC1 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xC2 -> CYRILLIC SMALL LETTER BE
+    '\u0446'   #  0xC3 -> CYRILLIC SMALL LETTER TSE
+    '\u0434'   #  0xC4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xC5 -> CYRILLIC SMALL LETTER IE
+    '\u0444'   #  0xC6 -> CYRILLIC SMALL LETTER EF
+    '\u0433'   #  0xC7 -> CYRILLIC SMALL LETTER GHE
+    '\u0445'   #  0xC8 -> CYRILLIC SMALL LETTER HA
+    '\u0438'   #  0xC9 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xCA -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xCB -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xCC -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xCD -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xCE -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xCF -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xD0 -> CYRILLIC SMALL LETTER PE
+    '\u044f'   #  0xD1 -> CYRILLIC SMALL LETTER YA
+    '\u0440'   #  0xD2 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xD3 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xD4 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xD5 -> CYRILLIC SMALL LETTER U
+    '\u0436'   #  0xD6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0432'   #  0xD7 -> CYRILLIC SMALL LETTER VE
+    '\u044c'   #  0xD8 -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044b'   #  0xD9 -> CYRILLIC SMALL LETTER YERU
+    '\u0437'   #  0xDA -> CYRILLIC SMALL LETTER ZE
+    '\u0448'   #  0xDB -> CYRILLIC SMALL LETTER SHA
+    '\u044d'   #  0xDC -> CYRILLIC SMALL LETTER E
+    '\u0449'   #  0xDD -> CYRILLIC SMALL LETTER SHCHA
+    '\u0447'   #  0xDE -> CYRILLIC SMALL LETTER CHE
+    '\u044a'   #  0xDF -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u042e'   #  0xE0 -> CYRILLIC CAPITAL LETTER YU
+    '\u0410'   #  0xE1 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0xE2 -> CYRILLIC CAPITAL LETTER BE
+    '\u0426'   #  0xE3 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0414'   #  0xE4 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0xE5 -> CYRILLIC CAPITAL LETTER IE
+    '\u0424'   #  0xE6 -> CYRILLIC CAPITAL LETTER EF
+    '\u0413'   #  0xE7 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0425'   #  0xE8 -> CYRILLIC CAPITAL LETTER HA
+    '\u0418'   #  0xE9 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0xEA -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0xEB -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0xEC -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0xED -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0xEE -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0xEF -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0xF0 -> CYRILLIC CAPITAL LETTER PE
+    '\u042f'   #  0xF1 -> CYRILLIC CAPITAL LETTER YA
+    '\u0420'   #  0xF2 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0xF3 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0xF4 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0xF5 -> CYRILLIC CAPITAL LETTER U
+    '\u0416'   #  0xF6 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0412'   #  0xF7 -> CYRILLIC CAPITAL LETTER VE
+    '\u042c'   #  0xF8 -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042b'   #  0xF9 -> CYRILLIC CAPITAL LETTER YERU
+    '\u0417'   #  0xFA -> CYRILLIC CAPITAL LETTER ZE
+    '\u0428'   #  0xFB -> CYRILLIC CAPITAL LETTER SHA
+    '\u042d'   #  0xFC -> CYRILLIC CAPITAL LETTER E
+    '\u0429'   #  0xFD -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u0427'   #  0xFE -> CYRILLIC CAPITAL LETTER CHE
+    '\u042a'   #  0xFF -> CYRILLIC CAPITAL LETTER HARD SIGN
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_arabic.py b/Lib/encodings/mac_arabic.py
index 7a7d3c5..72847e8 100644
--- a/Lib/encodings/mac_arabic.py
+++ b/Lib/encodings/mac_arabic.py
@@ -178,262 +178,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x0000 -> CONTROL CHARACTER
-    u'\x01'     #  0x0001 -> CONTROL CHARACTER
-    u'\x02'     #  0x0002 -> CONTROL CHARACTER
-    u'\x03'     #  0x0003 -> CONTROL CHARACTER
-    u'\x04'     #  0x0004 -> CONTROL CHARACTER
-    u'\x05'     #  0x0005 -> CONTROL CHARACTER
-    u'\x06'     #  0x0006 -> CONTROL CHARACTER
-    u'\x07'     #  0x0007 -> CONTROL CHARACTER
-    u'\x08'     #  0x0008 -> CONTROL CHARACTER
-    u'\t'       #  0x0009 -> CONTROL CHARACTER
-    u'\n'       #  0x000a -> CONTROL CHARACTER
-    u'\x0b'     #  0x000b -> CONTROL CHARACTER
-    u'\x0c'     #  0x000c -> CONTROL CHARACTER
-    u'\r'       #  0x000d -> CONTROL CHARACTER
-    u'\x0e'     #  0x000e -> CONTROL CHARACTER
-    u'\x0f'     #  0x000f -> CONTROL CHARACTER
-    u'\x10'     #  0x0010 -> CONTROL CHARACTER
-    u'\x11'     #  0x0011 -> CONTROL CHARACTER
-    u'\x12'     #  0x0012 -> CONTROL CHARACTER
-    u'\x13'     #  0x0013 -> CONTROL CHARACTER
-    u'\x14'     #  0x0014 -> CONTROL CHARACTER
-    u'\x15'     #  0x0015 -> CONTROL CHARACTER
-    u'\x16'     #  0x0016 -> CONTROL CHARACTER
-    u'\x17'     #  0x0017 -> CONTROL CHARACTER
-    u'\x18'     #  0x0018 -> CONTROL CHARACTER
-    u'\x19'     #  0x0019 -> CONTROL CHARACTER
-    u'\x1a'     #  0x001a -> CONTROL CHARACTER
-    u'\x1b'     #  0x001b -> CONTROL CHARACTER
-    u'\x1c'     #  0x001c -> CONTROL CHARACTER
-    u'\x1d'     #  0x001d -> CONTROL CHARACTER
-    u'\x1e'     #  0x001e -> CONTROL CHARACTER
-    u'\x1f'     #  0x001f -> CONTROL CHARACTER
-    u' '        #  0x0020 -> SPACE, left-right
-    u'!'        #  0x0021 -> EXCLAMATION MARK, left-right
-    u'"'        #  0x0022 -> QUOTATION MARK, left-right
-    u'#'        #  0x0023 -> NUMBER SIGN, left-right
-    u'$'        #  0x0024 -> DOLLAR SIGN, left-right
-    u'%'        #  0x0025 -> PERCENT SIGN, left-right
-    u'&'        #  0x0026 -> AMPERSAND, left-right
-    u"'"        #  0x0027 -> APOSTROPHE, left-right
-    u'('        #  0x0028 -> LEFT PARENTHESIS, left-right
-    u')'        #  0x0029 -> RIGHT PARENTHESIS, left-right
-    u'*'        #  0x002a -> ASTERISK, left-right
-    u'+'        #  0x002b -> PLUS SIGN, left-right
-    u','        #  0x002c -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
-    u'-'        #  0x002d -> HYPHEN-MINUS, left-right
-    u'.'        #  0x002e -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
-    u'/'        #  0x002f -> SOLIDUS, left-right
-    u'0'        #  0x0030 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
-    u'1'        #  0x0031 -> DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
-    u'2'        #  0x0032 -> DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
-    u'3'        #  0x0033 -> DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
-    u'4'        #  0x0034 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
-    u'5'        #  0x0035 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
-    u'6'        #  0x0036 -> DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
-    u'7'        #  0x0037 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
-    u'8'        #  0x0038 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
-    u'9'        #  0x0039 -> DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
-    u':'        #  0x003a -> COLON, left-right
-    u';'        #  0x003b -> SEMICOLON, left-right
-    u'<'        #  0x003c -> LESS-THAN SIGN, left-right
-    u'='        #  0x003d -> EQUALS SIGN, left-right
-    u'>'        #  0x003e -> GREATER-THAN SIGN, left-right
-    u'?'        #  0x003f -> QUESTION MARK, left-right
-    u'@'        #  0x0040 -> COMMERCIAL AT
-    u'A'        #  0x0041 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x0042 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x0043 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x0044 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x0045 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x0046 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x0047 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x0048 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x0049 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x004a -> LATIN CAPITAL LETTER J
-    u'K'        #  0x004b -> LATIN CAPITAL LETTER K
-    u'L'        #  0x004c -> LATIN CAPITAL LETTER L
-    u'M'        #  0x004d -> LATIN CAPITAL LETTER M
-    u'N'        #  0x004e -> LATIN CAPITAL LETTER N
-    u'O'        #  0x004f -> LATIN CAPITAL LETTER O
-    u'P'        #  0x0050 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x0052 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x0053 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x0054 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x0055 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x0056 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x0057 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x0058 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
-    u'['        #  0x005b -> LEFT SQUARE BRACKET, left-right
-    u'\\'       #  0x005c -> REVERSE SOLIDUS, left-right
-    u']'        #  0x005d -> RIGHT SQUARE BRACKET, left-right
-    u'^'        #  0x005e -> CIRCUMFLEX ACCENT, left-right
-    u'_'        #  0x005f -> LOW LINE, left-right
-    u'`'        #  0x0060 -> GRAVE ACCENT
-    u'a'        #  0x0061 -> LATIN SMALL LETTER A
-    u'b'        #  0x0062 -> LATIN SMALL LETTER B
-    u'c'        #  0x0063 -> LATIN SMALL LETTER C
-    u'd'        #  0x0064 -> LATIN SMALL LETTER D
-    u'e'        #  0x0065 -> LATIN SMALL LETTER E
-    u'f'        #  0x0066 -> LATIN SMALL LETTER F
-    u'g'        #  0x0067 -> LATIN SMALL LETTER G
-    u'h'        #  0x0068 -> LATIN SMALL LETTER H
-    u'i'        #  0x0069 -> LATIN SMALL LETTER I
-    u'j'        #  0x006a -> LATIN SMALL LETTER J
-    u'k'        #  0x006b -> LATIN SMALL LETTER K
-    u'l'        #  0x006c -> LATIN SMALL LETTER L
-    u'm'        #  0x006d -> LATIN SMALL LETTER M
-    u'n'        #  0x006e -> LATIN SMALL LETTER N
-    u'o'        #  0x006f -> LATIN SMALL LETTER O
-    u'p'        #  0x0070 -> LATIN SMALL LETTER P
-    u'q'        #  0x0071 -> LATIN SMALL LETTER Q
-    u'r'        #  0x0072 -> LATIN SMALL LETTER R
-    u's'        #  0x0073 -> LATIN SMALL LETTER S
-    u't'        #  0x0074 -> LATIN SMALL LETTER T
-    u'u'        #  0x0075 -> LATIN SMALL LETTER U
-    u'v'        #  0x0076 -> LATIN SMALL LETTER V
-    u'w'        #  0x0077 -> LATIN SMALL LETTER W
-    u'x'        #  0x0078 -> LATIN SMALL LETTER X
-    u'y'        #  0x0079 -> LATIN SMALL LETTER Y
-    u'z'        #  0x007a -> LATIN SMALL LETTER Z
-    u'{'        #  0x007b -> LEFT CURLY BRACKET, left-right
-    u'|'        #  0x007c -> VERTICAL LINE, left-right
-    u'}'        #  0x007d -> RIGHT CURLY BRACKET, left-right
-    u'~'        #  0x007e -> TILDE
-    u'\x7f'     #  0x007f -> CONTROL CHARACTER
-    u'\xc4'     #  0x0080 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xa0'     #  0x0081 -> NO-BREAK SPACE, right-left
-    u'\xc7'     #  0x0082 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x0083 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x0084 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x0085 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x0086 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x0087 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x0088 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x0089 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x008a -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u06ba'   #  0x008b -> ARABIC LETTER NOON GHUNNA
-    u'\xab'     #  0x008c -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    u'\xe7'     #  0x008d -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x008e -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x008f -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x0090 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x0091 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x0092 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\u2026'   #  0x0093 -> HORIZONTAL ELLIPSIS, right-left
-    u'\xee'     #  0x0094 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x0095 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x0096 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x0097 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xbb'     #  0x0098 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    u'\xf4'     #  0x0099 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x009a -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0x009b -> DIVISION SIGN, right-left
-    u'\xfa'     #  0x009c -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x009d -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x009e -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x009f -> LATIN SMALL LETTER U WITH DIAERESIS
-    u' '        #  0x00a0 -> SPACE, right-left
-    u'!'        #  0x00a1 -> EXCLAMATION MARK, right-left
-    u'"'        #  0x00a2 -> QUOTATION MARK, right-left
-    u'#'        #  0x00a3 -> NUMBER SIGN, right-left
-    u'$'        #  0x00a4 -> DOLLAR SIGN, right-left
-    u'\u066a'   #  0x00a5 -> ARABIC PERCENT SIGN
-    u'&'        #  0x00a6 -> AMPERSAND, right-left
-    u"'"        #  0x00a7 -> APOSTROPHE, right-left
-    u'('        #  0x00a8 -> LEFT PARENTHESIS, right-left
-    u')'        #  0x00a9 -> RIGHT PARENTHESIS, right-left
-    u'*'        #  0x00aa -> ASTERISK, right-left
-    u'+'        #  0x00ab -> PLUS SIGN, right-left
-    u'\u060c'   #  0x00ac -> ARABIC COMMA
-    u'-'        #  0x00ad -> HYPHEN-MINUS, right-left
-    u'.'        #  0x00ae -> FULL STOP, right-left
-    u'/'        #  0x00af -> SOLIDUS, right-left
-    u'\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO, right-left (need override)
-    u'\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE, right-left (need override)
-    u'\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO, right-left (need override)
-    u'\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE, right-left (need override)
-    u'\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR, right-left (need override)
-    u'\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE, right-left (need override)
-    u'\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX, right-left (need override)
-    u'\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN, right-left (need override)
-    u'\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT, right-left (need override)
-    u'\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE, right-left (need override)
-    u':'        #  0x00ba -> COLON, right-left
-    u'\u061b'   #  0x00bb -> ARABIC SEMICOLON
-    u'<'        #  0x00bc -> LESS-THAN SIGN, right-left
-    u'='        #  0x00bd -> EQUALS SIGN, right-left
-    u'>'        #  0x00be -> GREATER-THAN SIGN, right-left
-    u'\u061f'   #  0x00bf -> ARABIC QUESTION MARK
-    u'\u274a'   #  0x00c0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
-    u'\u0621'   #  0x00c1 -> ARABIC LETTER HAMZA
-    u'\u0622'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
-    u'\u0623'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
-    u'\u0624'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
-    u'\u0625'   #  0x00c5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
-    u'\u0626'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
-    u'\u0627'   #  0x00c7 -> ARABIC LETTER ALEF
-    u'\u0628'   #  0x00c8 -> ARABIC LETTER BEH
-    u'\u0629'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA
-    u'\u062a'   #  0x00ca -> ARABIC LETTER TEH
-    u'\u062b'   #  0x00cb -> ARABIC LETTER THEH
-    u'\u062c'   #  0x00cc -> ARABIC LETTER JEEM
-    u'\u062d'   #  0x00cd -> ARABIC LETTER HAH
-    u'\u062e'   #  0x00ce -> ARABIC LETTER KHAH
-    u'\u062f'   #  0x00cf -> ARABIC LETTER DAL
-    u'\u0630'   #  0x00d0 -> ARABIC LETTER THAL
-    u'\u0631'   #  0x00d1 -> ARABIC LETTER REH
-    u'\u0632'   #  0x00d2 -> ARABIC LETTER ZAIN
-    u'\u0633'   #  0x00d3 -> ARABIC LETTER SEEN
-    u'\u0634'   #  0x00d4 -> ARABIC LETTER SHEEN
-    u'\u0635'   #  0x00d5 -> ARABIC LETTER SAD
-    u'\u0636'   #  0x00d6 -> ARABIC LETTER DAD
-    u'\u0637'   #  0x00d7 -> ARABIC LETTER TAH
-    u'\u0638'   #  0x00d8 -> ARABIC LETTER ZAH
-    u'\u0639'   #  0x00d9 -> ARABIC LETTER AIN
-    u'\u063a'   #  0x00da -> ARABIC LETTER GHAIN
-    u'['        #  0x00db -> LEFT SQUARE BRACKET, right-left
-    u'\\'       #  0x00dc -> REVERSE SOLIDUS, right-left
-    u']'        #  0x00dd -> RIGHT SQUARE BRACKET, right-left
-    u'^'        #  0x00de -> CIRCUMFLEX ACCENT, right-left
-    u'_'        #  0x00df -> LOW LINE, right-left
-    u'\u0640'   #  0x00e0 -> ARABIC TATWEEL
-    u'\u0641'   #  0x00e1 -> ARABIC LETTER FEH
-    u'\u0642'   #  0x00e2 -> ARABIC LETTER QAF
-    u'\u0643'   #  0x00e3 -> ARABIC LETTER KAF
-    u'\u0644'   #  0x00e4 -> ARABIC LETTER LAM
-    u'\u0645'   #  0x00e5 -> ARABIC LETTER MEEM
-    u'\u0646'   #  0x00e6 -> ARABIC LETTER NOON
-    u'\u0647'   #  0x00e7 -> ARABIC LETTER HEH
-    u'\u0648'   #  0x00e8 -> ARABIC LETTER WAW
-    u'\u0649'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA
-    u'\u064a'   #  0x00ea -> ARABIC LETTER YEH
-    u'\u064b'   #  0x00eb -> ARABIC FATHATAN
-    u'\u064c'   #  0x00ec -> ARABIC DAMMATAN
-    u'\u064d'   #  0x00ed -> ARABIC KASRATAN
-    u'\u064e'   #  0x00ee -> ARABIC FATHA
-    u'\u064f'   #  0x00ef -> ARABIC DAMMA
-    u'\u0650'   #  0x00f0 -> ARABIC KASRA
-    u'\u0651'   #  0x00f1 -> ARABIC SHADDA
-    u'\u0652'   #  0x00f2 -> ARABIC SUKUN
-    u'\u067e'   #  0x00f3 -> ARABIC LETTER PEH
-    u'\u0679'   #  0x00f4 -> ARABIC LETTER TTEH
-    u'\u0686'   #  0x00f5 -> ARABIC LETTER TCHEH
-    u'\u06d5'   #  0x00f6 -> ARABIC LETTER AE
-    u'\u06a4'   #  0x00f7 -> ARABIC LETTER VEH
-    u'\u06af'   #  0x00f8 -> ARABIC LETTER GAF
-    u'\u0688'   #  0x00f9 -> ARABIC LETTER DDAL
-    u'\u0691'   #  0x00fa -> ARABIC LETTER RREH
-    u'{'        #  0x00fb -> LEFT CURLY BRACKET, right-left
-    u'|'        #  0x00fc -> VERTICAL LINE, right-left
-    u'}'        #  0x00fd -> RIGHT CURLY BRACKET, right-left
-    u'\u0698'   #  0x00fe -> ARABIC LETTER JEH
-    u'\u06d2'   #  0x00ff -> ARABIC LETTER YEH BARREE
+    '\x00'     #  0x0000 -> CONTROL CHARACTER
+    '\x01'     #  0x0001 -> CONTROL CHARACTER
+    '\x02'     #  0x0002 -> CONTROL CHARACTER
+    '\x03'     #  0x0003 -> CONTROL CHARACTER
+    '\x04'     #  0x0004 -> CONTROL CHARACTER
+    '\x05'     #  0x0005 -> CONTROL CHARACTER
+    '\x06'     #  0x0006 -> CONTROL CHARACTER
+    '\x07'     #  0x0007 -> CONTROL CHARACTER
+    '\x08'     #  0x0008 -> CONTROL CHARACTER
+    '\t'       #  0x0009 -> CONTROL CHARACTER
+    '\n'       #  0x000a -> CONTROL CHARACTER
+    '\x0b'     #  0x000b -> CONTROL CHARACTER
+    '\x0c'     #  0x000c -> CONTROL CHARACTER
+    '\r'       #  0x000d -> CONTROL CHARACTER
+    '\x0e'     #  0x000e -> CONTROL CHARACTER
+    '\x0f'     #  0x000f -> CONTROL CHARACTER
+    '\x10'     #  0x0010 -> CONTROL CHARACTER
+    '\x11'     #  0x0011 -> CONTROL CHARACTER
+    '\x12'     #  0x0012 -> CONTROL CHARACTER
+    '\x13'     #  0x0013 -> CONTROL CHARACTER
+    '\x14'     #  0x0014 -> CONTROL CHARACTER
+    '\x15'     #  0x0015 -> CONTROL CHARACTER
+    '\x16'     #  0x0016 -> CONTROL CHARACTER
+    '\x17'     #  0x0017 -> CONTROL CHARACTER
+    '\x18'     #  0x0018 -> CONTROL CHARACTER
+    '\x19'     #  0x0019 -> CONTROL CHARACTER
+    '\x1a'     #  0x001a -> CONTROL CHARACTER
+    '\x1b'     #  0x001b -> CONTROL CHARACTER
+    '\x1c'     #  0x001c -> CONTROL CHARACTER
+    '\x1d'     #  0x001d -> CONTROL CHARACTER
+    '\x1e'     #  0x001e -> CONTROL CHARACTER
+    '\x1f'     #  0x001f -> CONTROL CHARACTER
+    ' '        #  0x0020 -> SPACE, left-right
+    '!'        #  0x0021 -> EXCLAMATION MARK, left-right
+    '"'        #  0x0022 -> QUOTATION MARK, left-right
+    '#'        #  0x0023 -> NUMBER SIGN, left-right
+    '$'        #  0x0024 -> DOLLAR SIGN, left-right
+    '%'        #  0x0025 -> PERCENT SIGN, left-right
+    '&'        #  0x0026 -> AMPERSAND, left-right
+    "'"        #  0x0027 -> APOSTROPHE, left-right
+    '('        #  0x0028 -> LEFT PARENTHESIS, left-right
+    ')'        #  0x0029 -> RIGHT PARENTHESIS, left-right
+    '*'        #  0x002a -> ASTERISK, left-right
+    '+'        #  0x002b -> PLUS SIGN, left-right
+    ','        #  0x002c -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
+    '-'        #  0x002d -> HYPHEN-MINUS, left-right
+    '.'        #  0x002e -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
+    '/'        #  0x002f -> SOLIDUS, left-right
+    '0'        #  0x0030 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
+    '1'        #  0x0031 -> DIGIT ONE;   in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
+    '2'        #  0x0032 -> DIGIT TWO;   in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
+    '3'        #  0x0033 -> DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
+    '4'        #  0x0034 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
+    '5'        #  0x0035 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
+    '6'        #  0x0036 -> DIGIT SIX;   in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
+    '7'        #  0x0037 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
+    '8'        #  0x0038 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
+    '9'        #  0x0039 -> DIGIT NINE;  in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
+    ':'        #  0x003a -> COLON, left-right
+    ';'        #  0x003b -> SEMICOLON, left-right
+    '<'        #  0x003c -> LESS-THAN SIGN, left-right
+    '='        #  0x003d -> EQUALS SIGN, left-right
+    '>'        #  0x003e -> GREATER-THAN SIGN, left-right
+    '?'        #  0x003f -> QUESTION MARK, left-right
+    '@'        #  0x0040 -> COMMERCIAL AT
+    'A'        #  0x0041 -> LATIN CAPITAL LETTER A
+    'B'        #  0x0042 -> LATIN CAPITAL LETTER B
+    'C'        #  0x0043 -> LATIN CAPITAL LETTER C
+    'D'        #  0x0044 -> LATIN CAPITAL LETTER D
+    'E'        #  0x0045 -> LATIN CAPITAL LETTER E
+    'F'        #  0x0046 -> LATIN CAPITAL LETTER F
+    'G'        #  0x0047 -> LATIN CAPITAL LETTER G
+    'H'        #  0x0048 -> LATIN CAPITAL LETTER H
+    'I'        #  0x0049 -> LATIN CAPITAL LETTER I
+    'J'        #  0x004a -> LATIN CAPITAL LETTER J
+    'K'        #  0x004b -> LATIN CAPITAL LETTER K
+    'L'        #  0x004c -> LATIN CAPITAL LETTER L
+    'M'        #  0x004d -> LATIN CAPITAL LETTER M
+    'N'        #  0x004e -> LATIN CAPITAL LETTER N
+    'O'        #  0x004f -> LATIN CAPITAL LETTER O
+    'P'        #  0x0050 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x0051 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x0052 -> LATIN CAPITAL LETTER R
+    'S'        #  0x0053 -> LATIN CAPITAL LETTER S
+    'T'        #  0x0054 -> LATIN CAPITAL LETTER T
+    'U'        #  0x0055 -> LATIN CAPITAL LETTER U
+    'V'        #  0x0056 -> LATIN CAPITAL LETTER V
+    'W'        #  0x0057 -> LATIN CAPITAL LETTER W
+    'X'        #  0x0058 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x0059 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x005a -> LATIN CAPITAL LETTER Z
+    '['        #  0x005b -> LEFT SQUARE BRACKET, left-right
+    '\\'       #  0x005c -> REVERSE SOLIDUS, left-right
+    ']'        #  0x005d -> RIGHT SQUARE BRACKET, left-right
+    '^'        #  0x005e -> CIRCUMFLEX ACCENT, left-right
+    '_'        #  0x005f -> LOW LINE, left-right
+    '`'        #  0x0060 -> GRAVE ACCENT
+    'a'        #  0x0061 -> LATIN SMALL LETTER A
+    'b'        #  0x0062 -> LATIN SMALL LETTER B
+    'c'        #  0x0063 -> LATIN SMALL LETTER C
+    'd'        #  0x0064 -> LATIN SMALL LETTER D
+    'e'        #  0x0065 -> LATIN SMALL LETTER E
+    'f'        #  0x0066 -> LATIN SMALL LETTER F
+    'g'        #  0x0067 -> LATIN SMALL LETTER G
+    'h'        #  0x0068 -> LATIN SMALL LETTER H
+    'i'        #  0x0069 -> LATIN SMALL LETTER I
+    'j'        #  0x006a -> LATIN SMALL LETTER J
+    'k'        #  0x006b -> LATIN SMALL LETTER K
+    'l'        #  0x006c -> LATIN SMALL LETTER L
+    'm'        #  0x006d -> LATIN SMALL LETTER M
+    'n'        #  0x006e -> LATIN SMALL LETTER N
+    'o'        #  0x006f -> LATIN SMALL LETTER O
+    'p'        #  0x0070 -> LATIN SMALL LETTER P
+    'q'        #  0x0071 -> LATIN SMALL LETTER Q
+    'r'        #  0x0072 -> LATIN SMALL LETTER R
+    's'        #  0x0073 -> LATIN SMALL LETTER S
+    't'        #  0x0074 -> LATIN SMALL LETTER T
+    'u'        #  0x0075 -> LATIN SMALL LETTER U
+    'v'        #  0x0076 -> LATIN SMALL LETTER V
+    'w'        #  0x0077 -> LATIN SMALL LETTER W
+    'x'        #  0x0078 -> LATIN SMALL LETTER X
+    'y'        #  0x0079 -> LATIN SMALL LETTER Y
+    'z'        #  0x007a -> LATIN SMALL LETTER Z
+    '{'        #  0x007b -> LEFT CURLY BRACKET, left-right
+    '|'        #  0x007c -> VERTICAL LINE, left-right
+    '}'        #  0x007d -> RIGHT CURLY BRACKET, left-right
+    '~'        #  0x007e -> TILDE
+    '\x7f'     #  0x007f -> CONTROL CHARACTER
+    '\xc4'     #  0x0080 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xa0'     #  0x0081 -> NO-BREAK SPACE, right-left
+    '\xc7'     #  0x0082 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x0083 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x0084 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x0085 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x0086 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x0087 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x0088 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x0089 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x008a -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u06ba'   #  0x008b -> ARABIC LETTER NOON GHUNNA
+    '\xab'     #  0x008c -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xe7'     #  0x008d -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x008e -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x008f -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x0090 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x0091 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x0092 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u2026'   #  0x0093 -> HORIZONTAL ELLIPSIS, right-left
+    '\xee'     #  0x0094 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x0095 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x0096 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x0097 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xbb'     #  0x0098 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xf4'     #  0x0099 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x009a -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0x009b -> DIVISION SIGN, right-left
+    '\xfa'     #  0x009c -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x009d -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x009e -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x009f -> LATIN SMALL LETTER U WITH DIAERESIS
+    ' '        #  0x00a0 -> SPACE, right-left
+    '!'        #  0x00a1 -> EXCLAMATION MARK, right-left
+    '"'        #  0x00a2 -> QUOTATION MARK, right-left
+    '#'        #  0x00a3 -> NUMBER SIGN, right-left
+    '$'        #  0x00a4 -> DOLLAR SIGN, right-left
+    '\u066a'   #  0x00a5 -> ARABIC PERCENT SIGN
+    '&'        #  0x00a6 -> AMPERSAND, right-left
+    "'"        #  0x00a7 -> APOSTROPHE, right-left
+    '('        #  0x00a8 -> LEFT PARENTHESIS, right-left
+    ')'        #  0x00a9 -> RIGHT PARENTHESIS, right-left
+    '*'        #  0x00aa -> ASTERISK, right-left
+    '+'        #  0x00ab -> PLUS SIGN, right-left
+    '\u060c'   #  0x00ac -> ARABIC COMMA
+    '-'        #  0x00ad -> HYPHEN-MINUS, right-left
+    '.'        #  0x00ae -> FULL STOP, right-left
+    '/'        #  0x00af -> SOLIDUS, right-left
+    '\u0660'   #  0x00b0 -> ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    '\u0661'   #  0x00b1 -> ARABIC-INDIC DIGIT ONE, right-left (need override)
+    '\u0662'   #  0x00b2 -> ARABIC-INDIC DIGIT TWO, right-left (need override)
+    '\u0663'   #  0x00b3 -> ARABIC-INDIC DIGIT THREE, right-left (need override)
+    '\u0664'   #  0x00b4 -> ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    '\u0665'   #  0x00b5 -> ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    '\u0666'   #  0x00b6 -> ARABIC-INDIC DIGIT SIX, right-left (need override)
+    '\u0667'   #  0x00b7 -> ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    '\u0668'   #  0x00b8 -> ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    '\u0669'   #  0x00b9 -> ARABIC-INDIC DIGIT NINE, right-left (need override)
+    ':'        #  0x00ba -> COLON, right-left
+    '\u061b'   #  0x00bb -> ARABIC SEMICOLON
+    '<'        #  0x00bc -> LESS-THAN SIGN, right-left
+    '='        #  0x00bd -> EQUALS SIGN, right-left
+    '>'        #  0x00be -> GREATER-THAN SIGN, right-left
+    '\u061f'   #  0x00bf -> ARABIC QUESTION MARK
+    '\u274a'   #  0x00c0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+    '\u0621'   #  0x00c1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0x00c2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0x00c3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0x00c4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0x00c5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0x00c6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0x00c7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0x00c8 -> ARABIC LETTER BEH
+    '\u0629'   #  0x00c9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0x00ca -> ARABIC LETTER TEH
+    '\u062b'   #  0x00cb -> ARABIC LETTER THEH
+    '\u062c'   #  0x00cc -> ARABIC LETTER JEEM
+    '\u062d'   #  0x00cd -> ARABIC LETTER HAH
+    '\u062e'   #  0x00ce -> ARABIC LETTER KHAH
+    '\u062f'   #  0x00cf -> ARABIC LETTER DAL
+    '\u0630'   #  0x00d0 -> ARABIC LETTER THAL
+    '\u0631'   #  0x00d1 -> ARABIC LETTER REH
+    '\u0632'   #  0x00d2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0x00d3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0x00d4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0x00d5 -> ARABIC LETTER SAD
+    '\u0636'   #  0x00d6 -> ARABIC LETTER DAD
+    '\u0637'   #  0x00d7 -> ARABIC LETTER TAH
+    '\u0638'   #  0x00d8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0x00d9 -> ARABIC LETTER AIN
+    '\u063a'   #  0x00da -> ARABIC LETTER GHAIN
+    '['        #  0x00db -> LEFT SQUARE BRACKET, right-left
+    '\\'       #  0x00dc -> REVERSE SOLIDUS, right-left
+    ']'        #  0x00dd -> RIGHT SQUARE BRACKET, right-left
+    '^'        #  0x00de -> CIRCUMFLEX ACCENT, right-left
+    '_'        #  0x00df -> LOW LINE, right-left
+    '\u0640'   #  0x00e0 -> ARABIC TATWEEL
+    '\u0641'   #  0x00e1 -> ARABIC LETTER FEH
+    '\u0642'   #  0x00e2 -> ARABIC LETTER QAF
+    '\u0643'   #  0x00e3 -> ARABIC LETTER KAF
+    '\u0644'   #  0x00e4 -> ARABIC LETTER LAM
+    '\u0645'   #  0x00e5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0x00e6 -> ARABIC LETTER NOON
+    '\u0647'   #  0x00e7 -> ARABIC LETTER HEH
+    '\u0648'   #  0x00e8 -> ARABIC LETTER WAW
+    '\u0649'   #  0x00e9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0x00ea -> ARABIC LETTER YEH
+    '\u064b'   #  0x00eb -> ARABIC FATHATAN
+    '\u064c'   #  0x00ec -> ARABIC DAMMATAN
+    '\u064d'   #  0x00ed -> ARABIC KASRATAN
+    '\u064e'   #  0x00ee -> ARABIC FATHA
+    '\u064f'   #  0x00ef -> ARABIC DAMMA
+    '\u0650'   #  0x00f0 -> ARABIC KASRA
+    '\u0651'   #  0x00f1 -> ARABIC SHADDA
+    '\u0652'   #  0x00f2 -> ARABIC SUKUN
+    '\u067e'   #  0x00f3 -> ARABIC LETTER PEH
+    '\u0679'   #  0x00f4 -> ARABIC LETTER TTEH
+    '\u0686'   #  0x00f5 -> ARABIC LETTER TCHEH
+    '\u06d5'   #  0x00f6 -> ARABIC LETTER AE
+    '\u06a4'   #  0x00f7 -> ARABIC LETTER VEH
+    '\u06af'   #  0x00f8 -> ARABIC LETTER GAF
+    '\u0688'   #  0x00f9 -> ARABIC LETTER DDAL
+    '\u0691'   #  0x00fa -> ARABIC LETTER RREH
+    '{'        #  0x00fb -> LEFT CURLY BRACKET, right-left
+    '|'        #  0x00fc -> VERTICAL LINE, right-left
+    '}'        #  0x00fd -> RIGHT CURLY BRACKET, right-left
+    '\u0698'   #  0x00fe -> ARABIC LETTER JEH
+    '\u06d2'   #  0x00ff -> ARABIC LETTER YEH BARREE
 )
 
 ### Encoding Map
diff --git a/Lib/encodings/mac_centeuro.py b/Lib/encodings/mac_centeuro.py
index 483c821..5785a0e 100644
--- a/Lib/encodings/mac_centeuro.py
+++ b/Lib/encodings/mac_centeuro.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\u0100'   #  0x81 -> LATIN CAPITAL LETTER A WITH MACRON
-    u'\u0101'   #  0x82 -> LATIN SMALL LETTER A WITH MACRON
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\u0104'   #  0x84 -> LATIN CAPITAL LETTER A WITH OGONEK
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\u0105'   #  0x88 -> LATIN SMALL LETTER A WITH OGONEK
-    u'\u010c'   #  0x89 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u010d'   #  0x8B -> LATIN SMALL LETTER C WITH CARON
-    u'\u0106'   #  0x8C -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\u0107'   #  0x8D -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
-    u'\u017a'   #  0x90 -> LATIN SMALL LETTER Z WITH ACUTE
-    u'\u010e'   #  0x91 -> LATIN CAPITAL LETTER D WITH CARON
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\u010f'   #  0x93 -> LATIN SMALL LETTER D WITH CARON
-    u'\u0112'   #  0x94 -> LATIN CAPITAL LETTER E WITH MACRON
-    u'\u0113'   #  0x95 -> LATIN SMALL LETTER E WITH MACRON
-    u'\u0116'   #  0x96 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\u0117'   #  0x98 -> LATIN SMALL LETTER E WITH DOT ABOVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\u011a'   #  0x9D -> LATIN CAPITAL LETTER E WITH CARON
-    u'\u011b'   #  0x9E -> LATIN SMALL LETTER E WITH CARON
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\u0118'   #  0xA2 -> LATIN CAPITAL LETTER E WITH OGONEK
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\u0119'   #  0xAB -> LATIN SMALL LETTER E WITH OGONEK
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\u0123'   #  0xAE -> LATIN SMALL LETTER G WITH CEDILLA
-    u'\u012e'   #  0xAF -> LATIN CAPITAL LETTER I WITH OGONEK
-    u'\u012f'   #  0xB0 -> LATIN SMALL LETTER I WITH OGONEK
-    u'\u012a'   #  0xB1 -> LATIN CAPITAL LETTER I WITH MACRON
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
-    u'\u0136'   #  0xB5 -> LATIN CAPITAL LETTER K WITH CEDILLA
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u0142'   #  0xB8 -> LATIN SMALL LETTER L WITH STROKE
-    u'\u013b'   #  0xB9 -> LATIN CAPITAL LETTER L WITH CEDILLA
-    u'\u013c'   #  0xBA -> LATIN SMALL LETTER L WITH CEDILLA
-    u'\u013d'   #  0xBB -> LATIN CAPITAL LETTER L WITH CARON
-    u'\u013e'   #  0xBC -> LATIN SMALL LETTER L WITH CARON
-    u'\u0139'   #  0xBD -> LATIN CAPITAL LETTER L WITH ACUTE
-    u'\u013a'   #  0xBE -> LATIN SMALL LETTER L WITH ACUTE
-    u'\u0145'   #  0xBF -> LATIN CAPITAL LETTER N WITH CEDILLA
-    u'\u0146'   #  0xC0 -> LATIN SMALL LETTER N WITH CEDILLA
-    u'\u0143'   #  0xC1 -> LATIN CAPITAL LETTER N WITH ACUTE
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0144'   #  0xC4 -> LATIN SMALL LETTER N WITH ACUTE
-    u'\u0147'   #  0xC5 -> LATIN CAPITAL LETTER N WITH CARON
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\u0148'   #  0xCB -> LATIN SMALL LETTER N WITH CARON
-    u'\u0150'   #  0xCC -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0151'   #  0xCE -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
-    u'\u014c'   #  0xCF -> LATIN CAPITAL LETTER O WITH MACRON
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\u014d'   #  0xD8 -> LATIN SMALL LETTER O WITH MACRON
-    u'\u0154'   #  0xD9 -> LATIN CAPITAL LETTER R WITH ACUTE
-    u'\u0155'   #  0xDA -> LATIN SMALL LETTER R WITH ACUTE
-    u'\u0158'   #  0xDB -> LATIN CAPITAL LETTER R WITH CARON
-    u'\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u0159'   #  0xDE -> LATIN SMALL LETTER R WITH CARON
-    u'\u0156'   #  0xDF -> LATIN CAPITAL LETTER R WITH CEDILLA
-    u'\u0157'   #  0xE0 -> LATIN SMALL LETTER R WITH CEDILLA
-    u'\u0160'   #  0xE1 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u0161'   #  0xE4 -> LATIN SMALL LETTER S WITH CARON
-    u'\u015a'   #  0xE5 -> LATIN CAPITAL LETTER S WITH ACUTE
-    u'\u015b'   #  0xE6 -> LATIN SMALL LETTER S WITH ACUTE
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\u0164'   #  0xE8 -> LATIN CAPITAL LETTER T WITH CARON
-    u'\u0165'   #  0xE9 -> LATIN SMALL LETTER T WITH CARON
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\u017d'   #  0xEB -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\u017e'   #  0xEC -> LATIN SMALL LETTER Z WITH CARON
-    u'\u016a'   #  0xED -> LATIN CAPITAL LETTER U WITH MACRON
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u016b'   #  0xF0 -> LATIN SMALL LETTER U WITH MACRON
-    u'\u016e'   #  0xF1 -> LATIN CAPITAL LETTER U WITH RING ABOVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\u016f'   #  0xF3 -> LATIN SMALL LETTER U WITH RING ABOVE
-    u'\u0170'   #  0xF4 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
-    u'\u0171'   #  0xF5 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
-    u'\u0172'   #  0xF6 -> LATIN CAPITAL LETTER U WITH OGONEK
-    u'\u0173'   #  0xF7 -> LATIN SMALL LETTER U WITH OGONEK
-    u'\xdd'     #  0xF8 -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xfd'     #  0xF9 -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\u0137'   #  0xFA -> LATIN SMALL LETTER K WITH CEDILLA
-    u'\u017b'   #  0xFB -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
-    u'\u0141'   #  0xFC -> LATIN CAPITAL LETTER L WITH STROKE
-    u'\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
-    u'\u0122'   #  0xFE -> LATIN CAPITAL LETTER G WITH CEDILLA
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\u0100'   #  0x81 -> LATIN CAPITAL LETTER A WITH MACRON
+    '\u0101'   #  0x82 -> LATIN SMALL LETTER A WITH MACRON
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\u0104'   #  0x84 -> LATIN CAPITAL LETTER A WITH OGONEK
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\u0105'   #  0x88 -> LATIN SMALL LETTER A WITH OGONEK
+    '\u010c'   #  0x89 -> LATIN CAPITAL LETTER C WITH CARON
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u010d'   #  0x8B -> LATIN SMALL LETTER C WITH CARON
+    '\u0106'   #  0x8C -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\u0107'   #  0x8D -> LATIN SMALL LETTER C WITH ACUTE
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\u0179'   #  0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
+    '\u017a'   #  0x90 -> LATIN SMALL LETTER Z WITH ACUTE
+    '\u010e'   #  0x91 -> LATIN CAPITAL LETTER D WITH CARON
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u010f'   #  0x93 -> LATIN SMALL LETTER D WITH CARON
+    '\u0112'   #  0x94 -> LATIN CAPITAL LETTER E WITH MACRON
+    '\u0113'   #  0x95 -> LATIN SMALL LETTER E WITH MACRON
+    '\u0116'   #  0x96 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\u0117'   #  0x98 -> LATIN SMALL LETTER E WITH DOT ABOVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\u011a'   #  0x9D -> LATIN CAPITAL LETTER E WITH CARON
+    '\u011b'   #  0x9E -> LATIN SMALL LETTER E WITH CARON
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\u0118'   #  0xA2 -> LATIN CAPITAL LETTER E WITH OGONEK
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\u0119'   #  0xAB -> LATIN SMALL LETTER E WITH OGONEK
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0123'   #  0xAE -> LATIN SMALL LETTER G WITH CEDILLA
+    '\u012e'   #  0xAF -> LATIN CAPITAL LETTER I WITH OGONEK
+    '\u012f'   #  0xB0 -> LATIN SMALL LETTER I WITH OGONEK
+    '\u012a'   #  0xB1 -> LATIN CAPITAL LETTER I WITH MACRON
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u012b'   #  0xB4 -> LATIN SMALL LETTER I WITH MACRON
+    '\u0136'   #  0xB5 -> LATIN CAPITAL LETTER K WITH CEDILLA
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u0142'   #  0xB8 -> LATIN SMALL LETTER L WITH STROKE
+    '\u013b'   #  0xB9 -> LATIN CAPITAL LETTER L WITH CEDILLA
+    '\u013c'   #  0xBA -> LATIN SMALL LETTER L WITH CEDILLA
+    '\u013d'   #  0xBB -> LATIN CAPITAL LETTER L WITH CARON
+    '\u013e'   #  0xBC -> LATIN SMALL LETTER L WITH CARON
+    '\u0139'   #  0xBD -> LATIN CAPITAL LETTER L WITH ACUTE
+    '\u013a'   #  0xBE -> LATIN SMALL LETTER L WITH ACUTE
+    '\u0145'   #  0xBF -> LATIN CAPITAL LETTER N WITH CEDILLA
+    '\u0146'   #  0xC0 -> LATIN SMALL LETTER N WITH CEDILLA
+    '\u0143'   #  0xC1 -> LATIN CAPITAL LETTER N WITH ACUTE
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0144'   #  0xC4 -> LATIN SMALL LETTER N WITH ACUTE
+    '\u0147'   #  0xC5 -> LATIN CAPITAL LETTER N WITH CARON
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u0148'   #  0xCB -> LATIN SMALL LETTER N WITH CARON
+    '\u0150'   #  0xCC -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0151'   #  0xCE -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
+    '\u014c'   #  0xCF -> LATIN CAPITAL LETTER O WITH MACRON
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\u014d'   #  0xD8 -> LATIN SMALL LETTER O WITH MACRON
+    '\u0154'   #  0xD9 -> LATIN CAPITAL LETTER R WITH ACUTE
+    '\u0155'   #  0xDA -> LATIN SMALL LETTER R WITH ACUTE
+    '\u0158'   #  0xDB -> LATIN CAPITAL LETTER R WITH CARON
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u0159'   #  0xDE -> LATIN SMALL LETTER R WITH CARON
+    '\u0156'   #  0xDF -> LATIN CAPITAL LETTER R WITH CEDILLA
+    '\u0157'   #  0xE0 -> LATIN SMALL LETTER R WITH CEDILLA
+    '\u0160'   #  0xE1 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u0161'   #  0xE4 -> LATIN SMALL LETTER S WITH CARON
+    '\u015a'   #  0xE5 -> LATIN CAPITAL LETTER S WITH ACUTE
+    '\u015b'   #  0xE6 -> LATIN SMALL LETTER S WITH ACUTE
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\u0164'   #  0xE8 -> LATIN CAPITAL LETTER T WITH CARON
+    '\u0165'   #  0xE9 -> LATIN SMALL LETTER T WITH CARON
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\u017d'   #  0xEB -> LATIN CAPITAL LETTER Z WITH CARON
+    '\u017e'   #  0xEC -> LATIN SMALL LETTER Z WITH CARON
+    '\u016a'   #  0xED -> LATIN CAPITAL LETTER U WITH MACRON
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u016b'   #  0xF0 -> LATIN SMALL LETTER U WITH MACRON
+    '\u016e'   #  0xF1 -> LATIN CAPITAL LETTER U WITH RING ABOVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\u016f'   #  0xF3 -> LATIN SMALL LETTER U WITH RING ABOVE
+    '\u0170'   #  0xF4 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+    '\u0171'   #  0xF5 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
+    '\u0172'   #  0xF6 -> LATIN CAPITAL LETTER U WITH OGONEK
+    '\u0173'   #  0xF7 -> LATIN SMALL LETTER U WITH OGONEK
+    '\xdd'     #  0xF8 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xfd'     #  0xF9 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\u0137'   #  0xFA -> LATIN SMALL LETTER K WITH CEDILLA
+    '\u017b'   #  0xFB -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
+    '\u0141'   #  0xFC -> LATIN CAPITAL LETTER L WITH STROKE
+    '\u017c'   #  0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
+    '\u0122'   #  0xFE -> LATIN CAPITAL LETTER G WITH CEDILLA
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_croatian.py b/Lib/encodings/mac_croatian.py
index f57f7b4..4a92fe6 100644
--- a/Lib/encodings/mac_croatian.py
+++ b/Lib/encodings/mac_croatian.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\xb4'     #  0xAB -> ACUTE ACCENT
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
-    u'\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\u2206'   #  0xB4 -> INCREMENT
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u220f'   #  0xB8 -> N-ARY PRODUCT
-    u'\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
-    u'\u222b'   #  0xBA -> INTEGRAL
-    u'\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
-    u'\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
-    u'\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
-    u'\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
-    u'\xbf'     #  0xC0 -> INVERTED QUESTION MARK
-    u'\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\uf8ff'   #  0xD8 -> Apple logo
-    u'\xa9'     #  0xD9 -> COPYRIGHT SIGN
-    u'\u2044'   #  0xDA -> FRACTION SLASH
-    u'\u20ac'   #  0xDB -> EURO SIGN
-    u'\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\xc6'     #  0xDE -> LATIN CAPITAL LETTER AE
-    u'\xbb'     #  0xDF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2013'   #  0xE0 -> EN DASH
-    u'\xb7'     #  0xE1 -> MIDDLE DOT
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2030'   #  0xE4 -> PER MILLE SIGN
-    u'\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
-    u'\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
-    u'\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
-    u'\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u02dc'   #  0xF7 -> SMALL TILDE
-    u'\xaf'     #  0xF8 -> MACRON
-    u'\u03c0'   #  0xF9 -> GREEK SMALL LETTER PI
-    u'\xcb'     #  0xFA -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\u02da'   #  0xFB -> RING ABOVE
-    u'\xb8'     #  0xFC -> CEDILLA
-    u'\xca'     #  0xFD -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xe6'     #  0xFE -> LATIN SMALL LETTER AE
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\u0160'   #  0xA9 -> LATIN CAPITAL LETTER S WITH CARON
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u017d'   #  0xAE -> LATIN CAPITAL LETTER Z WITH CARON
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u2206'   #  0xB4 -> INCREMENT
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u0161'   #  0xB9 -> LATIN SMALL LETTER S WITH CARON
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\u017e'   #  0xBE -> LATIN SMALL LETTER Z WITH CARON
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u0106'   #  0xC6 -> LATIN CAPITAL LETTER C WITH ACUTE
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u010c'   #  0xC8 -> LATIN CAPITAL LETTER C WITH CARON
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u0110'   #  0xD0 -> LATIN CAPITAL LETTER D WITH STROKE
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\uf8ff'   #  0xD8 -> Apple logo
+    '\xa9'     #  0xD9 -> COPYRIGHT SIGN
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\xc6'     #  0xDE -> LATIN CAPITAL LETTER AE
+    '\xbb'     #  0xDF -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2013'   #  0xE0 -> EN DASH
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\u0107'   #  0xE6 -> LATIN SMALL LETTER C WITH ACUTE
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\u010d'   #  0xE8 -> LATIN SMALL LETTER C WITH CARON
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\u0111'   #  0xF0 -> LATIN SMALL LETTER D WITH STROKE
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u03c0'   #  0xF9 -> GREEK SMALL LETTER PI
+    '\xcb'     #  0xFA -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\xca'     #  0xFD -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xe6'     #  0xFE -> LATIN SMALL LETTER AE
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_cyrillic.py b/Lib/encodings/mac_cyrillic.py
index 63324a1..d20272a 100644
--- a/Lib/encodings/mac_cyrillic.py
+++ b/Lib/encodings/mac_cyrillic.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\u0410'   #  0x80 -> CYRILLIC CAPITAL LETTER A
-    u'\u0411'   #  0x81 -> CYRILLIC CAPITAL LETTER BE
-    u'\u0412'   #  0x82 -> CYRILLIC CAPITAL LETTER VE
-    u'\u0413'   #  0x83 -> CYRILLIC CAPITAL LETTER GHE
-    u'\u0414'   #  0x84 -> CYRILLIC CAPITAL LETTER DE
-    u'\u0415'   #  0x85 -> CYRILLIC CAPITAL LETTER IE
-    u'\u0416'   #  0x86 -> CYRILLIC CAPITAL LETTER ZHE
-    u'\u0417'   #  0x87 -> CYRILLIC CAPITAL LETTER ZE
-    u'\u0418'   #  0x88 -> CYRILLIC CAPITAL LETTER I
-    u'\u0419'   #  0x89 -> CYRILLIC CAPITAL LETTER SHORT I
-    u'\u041a'   #  0x8A -> CYRILLIC CAPITAL LETTER KA
-    u'\u041b'   #  0x8B -> CYRILLIC CAPITAL LETTER EL
-    u'\u041c'   #  0x8C -> CYRILLIC CAPITAL LETTER EM
-    u'\u041d'   #  0x8D -> CYRILLIC CAPITAL LETTER EN
-    u'\u041e'   #  0x8E -> CYRILLIC CAPITAL LETTER O
-    u'\u041f'   #  0x8F -> CYRILLIC CAPITAL LETTER PE
-    u'\u0420'   #  0x90 -> CYRILLIC CAPITAL LETTER ER
-    u'\u0421'   #  0x91 -> CYRILLIC CAPITAL LETTER ES
-    u'\u0422'   #  0x92 -> CYRILLIC CAPITAL LETTER TE
-    u'\u0423'   #  0x93 -> CYRILLIC CAPITAL LETTER U
-    u'\u0424'   #  0x94 -> CYRILLIC CAPITAL LETTER EF
-    u'\u0425'   #  0x95 -> CYRILLIC CAPITAL LETTER HA
-    u'\u0426'   #  0x96 -> CYRILLIC CAPITAL LETTER TSE
-    u'\u0427'   #  0x97 -> CYRILLIC CAPITAL LETTER CHE
-    u'\u0428'   #  0x98 -> CYRILLIC CAPITAL LETTER SHA
-    u'\u0429'   #  0x99 -> CYRILLIC CAPITAL LETTER SHCHA
-    u'\u042a'   #  0x9A -> CYRILLIC CAPITAL LETTER HARD SIGN
-    u'\u042b'   #  0x9B -> CYRILLIC CAPITAL LETTER YERU
-    u'\u042c'   #  0x9C -> CYRILLIC CAPITAL LETTER SOFT SIGN
-    u'\u042d'   #  0x9D -> CYRILLIC CAPITAL LETTER E
-    u'\u042e'   #  0x9E -> CYRILLIC CAPITAL LETTER YU
-    u'\u042f'   #  0x9F -> CYRILLIC CAPITAL LETTER YA
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\u0490'   #  0xA2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\u0406'   #  0xA7 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\u0402'   #  0xAB -> CYRILLIC CAPITAL LETTER DJE
-    u'\u0452'   #  0xAC -> CYRILLIC SMALL LETTER DJE
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\u0403'   #  0xAE -> CYRILLIC CAPITAL LETTER GJE
-    u'\u0453'   #  0xAF -> CYRILLIC SMALL LETTER GJE
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\u0456'   #  0xB4 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u0491'   #  0xB6 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
-    u'\u0408'   #  0xB7 -> CYRILLIC CAPITAL LETTER JE
-    u'\u0404'   #  0xB8 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
-    u'\u0454'   #  0xB9 -> CYRILLIC SMALL LETTER UKRAINIAN IE
-    u'\u0407'   #  0xBA -> CYRILLIC CAPITAL LETTER YI
-    u'\u0457'   #  0xBB -> CYRILLIC SMALL LETTER YI
-    u'\u0409'   #  0xBC -> CYRILLIC CAPITAL LETTER LJE
-    u'\u0459'   #  0xBD -> CYRILLIC SMALL LETTER LJE
-    u'\u040a'   #  0xBE -> CYRILLIC CAPITAL LETTER NJE
-    u'\u045a'   #  0xBF -> CYRILLIC SMALL LETTER NJE
-    u'\u0458'   #  0xC0 -> CYRILLIC SMALL LETTER JE
-    u'\u0405'   #  0xC1 -> CYRILLIC CAPITAL LETTER DZE
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\u040b'   #  0xCB -> CYRILLIC CAPITAL LETTER TSHE
-    u'\u045b'   #  0xCC -> CYRILLIC SMALL LETTER TSHE
-    u'\u040c'   #  0xCD -> CYRILLIC CAPITAL LETTER KJE
-    u'\u045c'   #  0xCE -> CYRILLIC SMALL LETTER KJE
-    u'\u0455'   #  0xCF -> CYRILLIC SMALL LETTER DZE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u201e'   #  0xD7 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u040e'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHORT U
-    u'\u045e'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT U
-    u'\u040f'   #  0xDA -> CYRILLIC CAPITAL LETTER DZHE
-    u'\u045f'   #  0xDB -> CYRILLIC SMALL LETTER DZHE
-    u'\u2116'   #  0xDC -> NUMERO SIGN
-    u'\u0401'   #  0xDD -> CYRILLIC CAPITAL LETTER IO
-    u'\u0451'   #  0xDE -> CYRILLIC SMALL LETTER IO
-    u'\u044f'   #  0xDF -> CYRILLIC SMALL LETTER YA
-    u'\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
-    u'\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
-    u'\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
-    u'\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
-    u'\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
-    u'\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
-    u'\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
-    u'\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
-    u'\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
-    u'\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
-    u'\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
-    u'\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
-    u'\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
-    u'\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
-    u'\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
-    u'\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
-    u'\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
-    u'\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
-    u'\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
-    u'\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
-    u'\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
-    u'\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
-    u'\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
-    u'\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
-    u'\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
-    u'\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
-    u'\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
-    u'\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
-    u'\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
-    u'\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
-    u'\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
-    u'\u20ac'   #  0xFF -> EURO SIGN
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\u0410'   #  0x80 -> CYRILLIC CAPITAL LETTER A
+    '\u0411'   #  0x81 -> CYRILLIC CAPITAL LETTER BE
+    '\u0412'   #  0x82 -> CYRILLIC CAPITAL LETTER VE
+    '\u0413'   #  0x83 -> CYRILLIC CAPITAL LETTER GHE
+    '\u0414'   #  0x84 -> CYRILLIC CAPITAL LETTER DE
+    '\u0415'   #  0x85 -> CYRILLIC CAPITAL LETTER IE
+    '\u0416'   #  0x86 -> CYRILLIC CAPITAL LETTER ZHE
+    '\u0417'   #  0x87 -> CYRILLIC CAPITAL LETTER ZE
+    '\u0418'   #  0x88 -> CYRILLIC CAPITAL LETTER I
+    '\u0419'   #  0x89 -> CYRILLIC CAPITAL LETTER SHORT I
+    '\u041a'   #  0x8A -> CYRILLIC CAPITAL LETTER KA
+    '\u041b'   #  0x8B -> CYRILLIC CAPITAL LETTER EL
+    '\u041c'   #  0x8C -> CYRILLIC CAPITAL LETTER EM
+    '\u041d'   #  0x8D -> CYRILLIC CAPITAL LETTER EN
+    '\u041e'   #  0x8E -> CYRILLIC CAPITAL LETTER O
+    '\u041f'   #  0x8F -> CYRILLIC CAPITAL LETTER PE
+    '\u0420'   #  0x90 -> CYRILLIC CAPITAL LETTER ER
+    '\u0421'   #  0x91 -> CYRILLIC CAPITAL LETTER ES
+    '\u0422'   #  0x92 -> CYRILLIC CAPITAL LETTER TE
+    '\u0423'   #  0x93 -> CYRILLIC CAPITAL LETTER U
+    '\u0424'   #  0x94 -> CYRILLIC CAPITAL LETTER EF
+    '\u0425'   #  0x95 -> CYRILLIC CAPITAL LETTER HA
+    '\u0426'   #  0x96 -> CYRILLIC CAPITAL LETTER TSE
+    '\u0427'   #  0x97 -> CYRILLIC CAPITAL LETTER CHE
+    '\u0428'   #  0x98 -> CYRILLIC CAPITAL LETTER SHA
+    '\u0429'   #  0x99 -> CYRILLIC CAPITAL LETTER SHCHA
+    '\u042a'   #  0x9A -> CYRILLIC CAPITAL LETTER HARD SIGN
+    '\u042b'   #  0x9B -> CYRILLIC CAPITAL LETTER YERU
+    '\u042c'   #  0x9C -> CYRILLIC CAPITAL LETTER SOFT SIGN
+    '\u042d'   #  0x9D -> CYRILLIC CAPITAL LETTER E
+    '\u042e'   #  0x9E -> CYRILLIC CAPITAL LETTER YU
+    '\u042f'   #  0x9F -> CYRILLIC CAPITAL LETTER YA
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\u0490'   #  0xA2 -> CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\u0406'   #  0xA7 -> CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\u0402'   #  0xAB -> CYRILLIC CAPITAL LETTER DJE
+    '\u0452'   #  0xAC -> CYRILLIC SMALL LETTER DJE
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0403'   #  0xAE -> CYRILLIC CAPITAL LETTER GJE
+    '\u0453'   #  0xAF -> CYRILLIC SMALL LETTER GJE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\u0456'   #  0xB4 -> CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u0491'   #  0xB6 -> CYRILLIC SMALL LETTER GHE WITH UPTURN
+    '\u0408'   #  0xB7 -> CYRILLIC CAPITAL LETTER JE
+    '\u0404'   #  0xB8 -> CYRILLIC CAPITAL LETTER UKRAINIAN IE
+    '\u0454'   #  0xB9 -> CYRILLIC SMALL LETTER UKRAINIAN IE
+    '\u0407'   #  0xBA -> CYRILLIC CAPITAL LETTER YI
+    '\u0457'   #  0xBB -> CYRILLIC SMALL LETTER YI
+    '\u0409'   #  0xBC -> CYRILLIC CAPITAL LETTER LJE
+    '\u0459'   #  0xBD -> CYRILLIC SMALL LETTER LJE
+    '\u040a'   #  0xBE -> CYRILLIC CAPITAL LETTER NJE
+    '\u045a'   #  0xBF -> CYRILLIC SMALL LETTER NJE
+    '\u0458'   #  0xC0 -> CYRILLIC SMALL LETTER JE
+    '\u0405'   #  0xC1 -> CYRILLIC CAPITAL LETTER DZE
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u040b'   #  0xCB -> CYRILLIC CAPITAL LETTER TSHE
+    '\u045b'   #  0xCC -> CYRILLIC SMALL LETTER TSHE
+    '\u040c'   #  0xCD -> CYRILLIC CAPITAL LETTER KJE
+    '\u045c'   #  0xCE -> CYRILLIC SMALL LETTER KJE
+    '\u0455'   #  0xCF -> CYRILLIC SMALL LETTER DZE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u201e'   #  0xD7 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u040e'   #  0xD8 -> CYRILLIC CAPITAL LETTER SHORT U
+    '\u045e'   #  0xD9 -> CYRILLIC SMALL LETTER SHORT U
+    '\u040f'   #  0xDA -> CYRILLIC CAPITAL LETTER DZHE
+    '\u045f'   #  0xDB -> CYRILLIC SMALL LETTER DZHE
+    '\u2116'   #  0xDC -> NUMERO SIGN
+    '\u0401'   #  0xDD -> CYRILLIC CAPITAL LETTER IO
+    '\u0451'   #  0xDE -> CYRILLIC SMALL LETTER IO
+    '\u044f'   #  0xDF -> CYRILLIC SMALL LETTER YA
+    '\u0430'   #  0xE0 -> CYRILLIC SMALL LETTER A
+    '\u0431'   #  0xE1 -> CYRILLIC SMALL LETTER BE
+    '\u0432'   #  0xE2 -> CYRILLIC SMALL LETTER VE
+    '\u0433'   #  0xE3 -> CYRILLIC SMALL LETTER GHE
+    '\u0434'   #  0xE4 -> CYRILLIC SMALL LETTER DE
+    '\u0435'   #  0xE5 -> CYRILLIC SMALL LETTER IE
+    '\u0436'   #  0xE6 -> CYRILLIC SMALL LETTER ZHE
+    '\u0437'   #  0xE7 -> CYRILLIC SMALL LETTER ZE
+    '\u0438'   #  0xE8 -> CYRILLIC SMALL LETTER I
+    '\u0439'   #  0xE9 -> CYRILLIC SMALL LETTER SHORT I
+    '\u043a'   #  0xEA -> CYRILLIC SMALL LETTER KA
+    '\u043b'   #  0xEB -> CYRILLIC SMALL LETTER EL
+    '\u043c'   #  0xEC -> CYRILLIC SMALL LETTER EM
+    '\u043d'   #  0xED -> CYRILLIC SMALL LETTER EN
+    '\u043e'   #  0xEE -> CYRILLIC SMALL LETTER O
+    '\u043f'   #  0xEF -> CYRILLIC SMALL LETTER PE
+    '\u0440'   #  0xF0 -> CYRILLIC SMALL LETTER ER
+    '\u0441'   #  0xF1 -> CYRILLIC SMALL LETTER ES
+    '\u0442'   #  0xF2 -> CYRILLIC SMALL LETTER TE
+    '\u0443'   #  0xF3 -> CYRILLIC SMALL LETTER U
+    '\u0444'   #  0xF4 -> CYRILLIC SMALL LETTER EF
+    '\u0445'   #  0xF5 -> CYRILLIC SMALL LETTER HA
+    '\u0446'   #  0xF6 -> CYRILLIC SMALL LETTER TSE
+    '\u0447'   #  0xF7 -> CYRILLIC SMALL LETTER CHE
+    '\u0448'   #  0xF8 -> CYRILLIC SMALL LETTER SHA
+    '\u0449'   #  0xF9 -> CYRILLIC SMALL LETTER SHCHA
+    '\u044a'   #  0xFA -> CYRILLIC SMALL LETTER HARD SIGN
+    '\u044b'   #  0xFB -> CYRILLIC SMALL LETTER YERU
+    '\u044c'   #  0xFC -> CYRILLIC SMALL LETTER SOFT SIGN
+    '\u044d'   #  0xFD -> CYRILLIC SMALL LETTER E
+    '\u044e'   #  0xFE -> CYRILLIC SMALL LETTER YU
+    '\u20ac'   #  0xFF -> EURO SIGN
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_farsi.py b/Lib/encodings/mac_farsi.py
index 9dbd76a..e357d43 100644
--- a/Lib/encodings/mac_farsi.py
+++ b/Lib/encodings/mac_farsi.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE, left-right
-    u'!'        #  0x21 -> EXCLAMATION MARK, left-right
-    u'"'        #  0x22 -> QUOTATION MARK, left-right
-    u'#'        #  0x23 -> NUMBER SIGN, left-right
-    u'$'        #  0x24 -> DOLLAR SIGN, left-right
-    u'%'        #  0x25 -> PERCENT SIGN, left-right
-    u'&'        #  0x26 -> AMPERSAND, left-right
-    u"'"        #  0x27 -> APOSTROPHE, left-right
-    u'('        #  0x28 -> LEFT PARENTHESIS, left-right
-    u')'        #  0x29 -> RIGHT PARENTHESIS, left-right
-    u'*'        #  0x2A -> ASTERISK, left-right
-    u'+'        #  0x2B -> PLUS SIGN, left-right
-    u','        #  0x2C -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
-    u'-'        #  0x2D -> HYPHEN-MINUS, left-right
-    u'.'        #  0x2E -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
-    u'/'        #  0x2F -> SOLIDUS, left-right
-    u'0'        #  0x30 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
-    u':'        #  0x3A -> COLON, left-right
-    u';'        #  0x3B -> SEMICOLON, left-right
-    u'<'        #  0x3C -> LESS-THAN SIGN, left-right
-    u'='        #  0x3D -> EQUALS SIGN, left-right
-    u'>'        #  0x3E -> GREATER-THAN SIGN, left-right
-    u'?'        #  0x3F -> QUESTION MARK, left-right
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET, left-right
-    u'\\'       #  0x5C -> REVERSE SOLIDUS, left-right
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET, left-right
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT, left-right
-    u'_'        #  0x5F -> LOW LINE, left-right
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET, left-right
-    u'|'        #  0x7C -> VERTICAL LINE, left-right
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET, left-right
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xa0'     #  0x81 -> NO-BREAK SPACE, right-left
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u06ba'   #  0x8B -> ARABIC LETTER NOON GHUNNA
-    u'\xab'     #  0x8C -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\u2026'   #  0x93 -> HORIZONTAL ELLIPSIS, right-left
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xbb'     #  0x98 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf7'     #  0x9B -> DIVISION SIGN, right-left
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u' '        #  0xA0 -> SPACE, right-left
-    u'!'        #  0xA1 -> EXCLAMATION MARK, right-left
-    u'"'        #  0xA2 -> QUOTATION MARK, right-left
-    u'#'        #  0xA3 -> NUMBER SIGN, right-left
-    u'$'        #  0xA4 -> DOLLAR SIGN, right-left
-    u'\u066a'   #  0xA5 -> ARABIC PERCENT SIGN
-    u'&'        #  0xA6 -> AMPERSAND, right-left
-    u"'"        #  0xA7 -> APOSTROPHE, right-left
-    u'('        #  0xA8 -> LEFT PARENTHESIS, right-left
-    u')'        #  0xA9 -> RIGHT PARENTHESIS, right-left
-    u'*'        #  0xAA -> ASTERISK, right-left
-    u'+'        #  0xAB -> PLUS SIGN, right-left
-    u'\u060c'   #  0xAC -> ARABIC COMMA
-    u'-'        #  0xAD -> HYPHEN-MINUS, right-left
-    u'.'        #  0xAE -> FULL STOP, right-left
-    u'/'        #  0xAF -> SOLIDUS, right-left
-    u'\u06f0'   #  0xB0 -> EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
-    u'\u06f1'   #  0xB1 -> EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
-    u'\u06f2'   #  0xB2 -> EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
-    u'\u06f3'   #  0xB3 -> EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
-    u'\u06f4'   #  0xB4 -> EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
-    u'\u06f5'   #  0xB5 -> EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
-    u'\u06f6'   #  0xB6 -> EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
-    u'\u06f7'   #  0xB7 -> EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
-    u'\u06f8'   #  0xB8 -> EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
-    u'\u06f9'   #  0xB9 -> EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
-    u':'        #  0xBA -> COLON, right-left
-    u'\u061b'   #  0xBB -> ARABIC SEMICOLON
-    u'<'        #  0xBC -> LESS-THAN SIGN, right-left
-    u'='        #  0xBD -> EQUALS SIGN, right-left
-    u'>'        #  0xBE -> GREATER-THAN SIGN, right-left
-    u'\u061f'   #  0xBF -> ARABIC QUESTION MARK
-    u'\u274a'   #  0xC0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
-    u'\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
-    u'\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
-    u'\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
-    u'\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
-    u'\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
-    u'\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
-    u'\u0627'   #  0xC7 -> ARABIC LETTER ALEF
-    u'\u0628'   #  0xC8 -> ARABIC LETTER BEH
-    u'\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
-    u'\u062a'   #  0xCA -> ARABIC LETTER TEH
-    u'\u062b'   #  0xCB -> ARABIC LETTER THEH
-    u'\u062c'   #  0xCC -> ARABIC LETTER JEEM
-    u'\u062d'   #  0xCD -> ARABIC LETTER HAH
-    u'\u062e'   #  0xCE -> ARABIC LETTER KHAH
-    u'\u062f'   #  0xCF -> ARABIC LETTER DAL
-    u'\u0630'   #  0xD0 -> ARABIC LETTER THAL
-    u'\u0631'   #  0xD1 -> ARABIC LETTER REH
-    u'\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
-    u'\u0633'   #  0xD3 -> ARABIC LETTER SEEN
-    u'\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
-    u'\u0635'   #  0xD5 -> ARABIC LETTER SAD
-    u'\u0636'   #  0xD6 -> ARABIC LETTER DAD
-    u'\u0637'   #  0xD7 -> ARABIC LETTER TAH
-    u'\u0638'   #  0xD8 -> ARABIC LETTER ZAH
-    u'\u0639'   #  0xD9 -> ARABIC LETTER AIN
-    u'\u063a'   #  0xDA -> ARABIC LETTER GHAIN
-    u'['        #  0xDB -> LEFT SQUARE BRACKET, right-left
-    u'\\'       #  0xDC -> REVERSE SOLIDUS, right-left
-    u']'        #  0xDD -> RIGHT SQUARE BRACKET, right-left
-    u'^'        #  0xDE -> CIRCUMFLEX ACCENT, right-left
-    u'_'        #  0xDF -> LOW LINE, right-left
-    u'\u0640'   #  0xE0 -> ARABIC TATWEEL
-    u'\u0641'   #  0xE1 -> ARABIC LETTER FEH
-    u'\u0642'   #  0xE2 -> ARABIC LETTER QAF
-    u'\u0643'   #  0xE3 -> ARABIC LETTER KAF
-    u'\u0644'   #  0xE4 -> ARABIC LETTER LAM
-    u'\u0645'   #  0xE5 -> ARABIC LETTER MEEM
-    u'\u0646'   #  0xE6 -> ARABIC LETTER NOON
-    u'\u0647'   #  0xE7 -> ARABIC LETTER HEH
-    u'\u0648'   #  0xE8 -> ARABIC LETTER WAW
-    u'\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
-    u'\u064a'   #  0xEA -> ARABIC LETTER YEH
-    u'\u064b'   #  0xEB -> ARABIC FATHATAN
-    u'\u064c'   #  0xEC -> ARABIC DAMMATAN
-    u'\u064d'   #  0xED -> ARABIC KASRATAN
-    u'\u064e'   #  0xEE -> ARABIC FATHA
-    u'\u064f'   #  0xEF -> ARABIC DAMMA
-    u'\u0650'   #  0xF0 -> ARABIC KASRA
-    u'\u0651'   #  0xF1 -> ARABIC SHADDA
-    u'\u0652'   #  0xF2 -> ARABIC SUKUN
-    u'\u067e'   #  0xF3 -> ARABIC LETTER PEH
-    u'\u0679'   #  0xF4 -> ARABIC LETTER TTEH
-    u'\u0686'   #  0xF5 -> ARABIC LETTER TCHEH
-    u'\u06d5'   #  0xF6 -> ARABIC LETTER AE
-    u'\u06a4'   #  0xF7 -> ARABIC LETTER VEH
-    u'\u06af'   #  0xF8 -> ARABIC LETTER GAF
-    u'\u0688'   #  0xF9 -> ARABIC LETTER DDAL
-    u'\u0691'   #  0xFA -> ARABIC LETTER RREH
-    u'{'        #  0xFB -> LEFT CURLY BRACKET, right-left
-    u'|'        #  0xFC -> VERTICAL LINE, right-left
-    u'}'        #  0xFD -> RIGHT CURLY BRACKET, right-left
-    u'\u0698'   #  0xFE -> ARABIC LETTER JEH
-    u'\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE, left-right
+    '!'        #  0x21 -> EXCLAMATION MARK, left-right
+    '"'        #  0x22 -> QUOTATION MARK, left-right
+    '#'        #  0x23 -> NUMBER SIGN, left-right
+    '$'        #  0x24 -> DOLLAR SIGN, left-right
+    '%'        #  0x25 -> PERCENT SIGN, left-right
+    '&'        #  0x26 -> AMPERSAND, left-right
+    "'"        #  0x27 -> APOSTROPHE, left-right
+    '('        #  0x28 -> LEFT PARENTHESIS, left-right
+    ')'        #  0x29 -> RIGHT PARENTHESIS, left-right
+    '*'        #  0x2A -> ASTERISK, left-right
+    '+'        #  0x2B -> PLUS SIGN, left-right
+    ','        #  0x2C -> COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
+    '-'        #  0x2D -> HYPHEN-MINUS, left-right
+    '.'        #  0x2E -> FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
+    '/'        #  0x2F -> SOLIDUS, left-right
+    '0'        #  0x30 -> DIGIT ZERO;  in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE;   in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO;   in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR;  in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE;  in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX;   in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE;  in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
+    ':'        #  0x3A -> COLON, left-right
+    ';'        #  0x3B -> SEMICOLON, left-right
+    '<'        #  0x3C -> LESS-THAN SIGN, left-right
+    '='        #  0x3D -> EQUALS SIGN, left-right
+    '>'        #  0x3E -> GREATER-THAN SIGN, left-right
+    '?'        #  0x3F -> QUESTION MARK, left-right
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET, left-right
+    '\\'       #  0x5C -> REVERSE SOLIDUS, left-right
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET, left-right
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT, left-right
+    '_'        #  0x5F -> LOW LINE, left-right
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET, left-right
+    '|'        #  0x7C -> VERTICAL LINE, left-right
+    '}'        #  0x7D -> RIGHT CURLY BRACKET, left-right
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xa0'     #  0x81 -> NO-BREAK SPACE, right-left
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u06ba'   #  0x8B -> ARABIC LETTER NOON GHUNNA
+    '\xab'     #  0x8C -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\u2026'   #  0x93 -> HORIZONTAL ELLIPSIS, right-left
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xbb'     #  0x98 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf7'     #  0x9B -> DIVISION SIGN, right-left
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    ' '        #  0xA0 -> SPACE, right-left
+    '!'        #  0xA1 -> EXCLAMATION MARK, right-left
+    '"'        #  0xA2 -> QUOTATION MARK, right-left
+    '#'        #  0xA3 -> NUMBER SIGN, right-left
+    '$'        #  0xA4 -> DOLLAR SIGN, right-left
+    '\u066a'   #  0xA5 -> ARABIC PERCENT SIGN
+    '&'        #  0xA6 -> AMPERSAND, right-left
+    "'"        #  0xA7 -> APOSTROPHE, right-left
+    '('        #  0xA8 -> LEFT PARENTHESIS, right-left
+    ')'        #  0xA9 -> RIGHT PARENTHESIS, right-left
+    '*'        #  0xAA -> ASTERISK, right-left
+    '+'        #  0xAB -> PLUS SIGN, right-left
+    '\u060c'   #  0xAC -> ARABIC COMMA
+    '-'        #  0xAD -> HYPHEN-MINUS, right-left
+    '.'        #  0xAE -> FULL STOP, right-left
+    '/'        #  0xAF -> SOLIDUS, right-left
+    '\u06f0'   #  0xB0 -> EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
+    '\u06f1'   #  0xB1 -> EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
+    '\u06f2'   #  0xB2 -> EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
+    '\u06f3'   #  0xB3 -> EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
+    '\u06f4'   #  0xB4 -> EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
+    '\u06f5'   #  0xB5 -> EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
+    '\u06f6'   #  0xB6 -> EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
+    '\u06f7'   #  0xB7 -> EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
+    '\u06f8'   #  0xB8 -> EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
+    '\u06f9'   #  0xB9 -> EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
+    ':'        #  0xBA -> COLON, right-left
+    '\u061b'   #  0xBB -> ARABIC SEMICOLON
+    '<'        #  0xBC -> LESS-THAN SIGN, right-left
+    '='        #  0xBD -> EQUALS SIGN, right-left
+    '>'        #  0xBE -> GREATER-THAN SIGN, right-left
+    '\u061f'   #  0xBF -> ARABIC QUESTION MARK
+    '\u274a'   #  0xC0 -> EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
+    '\u0621'   #  0xC1 -> ARABIC LETTER HAMZA
+    '\u0622'   #  0xC2 -> ARABIC LETTER ALEF WITH MADDA ABOVE
+    '\u0623'   #  0xC3 -> ARABIC LETTER ALEF WITH HAMZA ABOVE
+    '\u0624'   #  0xC4 -> ARABIC LETTER WAW WITH HAMZA ABOVE
+    '\u0625'   #  0xC5 -> ARABIC LETTER ALEF WITH HAMZA BELOW
+    '\u0626'   #  0xC6 -> ARABIC LETTER YEH WITH HAMZA ABOVE
+    '\u0627'   #  0xC7 -> ARABIC LETTER ALEF
+    '\u0628'   #  0xC8 -> ARABIC LETTER BEH
+    '\u0629'   #  0xC9 -> ARABIC LETTER TEH MARBUTA
+    '\u062a'   #  0xCA -> ARABIC LETTER TEH
+    '\u062b'   #  0xCB -> ARABIC LETTER THEH
+    '\u062c'   #  0xCC -> ARABIC LETTER JEEM
+    '\u062d'   #  0xCD -> ARABIC LETTER HAH
+    '\u062e'   #  0xCE -> ARABIC LETTER KHAH
+    '\u062f'   #  0xCF -> ARABIC LETTER DAL
+    '\u0630'   #  0xD0 -> ARABIC LETTER THAL
+    '\u0631'   #  0xD1 -> ARABIC LETTER REH
+    '\u0632'   #  0xD2 -> ARABIC LETTER ZAIN
+    '\u0633'   #  0xD3 -> ARABIC LETTER SEEN
+    '\u0634'   #  0xD4 -> ARABIC LETTER SHEEN
+    '\u0635'   #  0xD5 -> ARABIC LETTER SAD
+    '\u0636'   #  0xD6 -> ARABIC LETTER DAD
+    '\u0637'   #  0xD7 -> ARABIC LETTER TAH
+    '\u0638'   #  0xD8 -> ARABIC LETTER ZAH
+    '\u0639'   #  0xD9 -> ARABIC LETTER AIN
+    '\u063a'   #  0xDA -> ARABIC LETTER GHAIN
+    '['        #  0xDB -> LEFT SQUARE BRACKET, right-left
+    '\\'       #  0xDC -> REVERSE SOLIDUS, right-left
+    ']'        #  0xDD -> RIGHT SQUARE BRACKET, right-left
+    '^'        #  0xDE -> CIRCUMFLEX ACCENT, right-left
+    '_'        #  0xDF -> LOW LINE, right-left
+    '\u0640'   #  0xE0 -> ARABIC TATWEEL
+    '\u0641'   #  0xE1 -> ARABIC LETTER FEH
+    '\u0642'   #  0xE2 -> ARABIC LETTER QAF
+    '\u0643'   #  0xE3 -> ARABIC LETTER KAF
+    '\u0644'   #  0xE4 -> ARABIC LETTER LAM
+    '\u0645'   #  0xE5 -> ARABIC LETTER MEEM
+    '\u0646'   #  0xE6 -> ARABIC LETTER NOON
+    '\u0647'   #  0xE7 -> ARABIC LETTER HEH
+    '\u0648'   #  0xE8 -> ARABIC LETTER WAW
+    '\u0649'   #  0xE9 -> ARABIC LETTER ALEF MAKSURA
+    '\u064a'   #  0xEA -> ARABIC LETTER YEH
+    '\u064b'   #  0xEB -> ARABIC FATHATAN
+    '\u064c'   #  0xEC -> ARABIC DAMMATAN
+    '\u064d'   #  0xED -> ARABIC KASRATAN
+    '\u064e'   #  0xEE -> ARABIC FATHA
+    '\u064f'   #  0xEF -> ARABIC DAMMA
+    '\u0650'   #  0xF0 -> ARABIC KASRA
+    '\u0651'   #  0xF1 -> ARABIC SHADDA
+    '\u0652'   #  0xF2 -> ARABIC SUKUN
+    '\u067e'   #  0xF3 -> ARABIC LETTER PEH
+    '\u0679'   #  0xF4 -> ARABIC LETTER TTEH
+    '\u0686'   #  0xF5 -> ARABIC LETTER TCHEH
+    '\u06d5'   #  0xF6 -> ARABIC LETTER AE
+    '\u06a4'   #  0xF7 -> ARABIC LETTER VEH
+    '\u06af'   #  0xF8 -> ARABIC LETTER GAF
+    '\u0688'   #  0xF9 -> ARABIC LETTER DDAL
+    '\u0691'   #  0xFA -> ARABIC LETTER RREH
+    '{'        #  0xFB -> LEFT CURLY BRACKET, right-left
+    '|'        #  0xFC -> VERTICAL LINE, right-left
+    '}'        #  0xFD -> RIGHT CURLY BRACKET, right-left
+    '\u0698'   #  0xFE -> ARABIC LETTER JEH
+    '\u06d2'   #  0xFF -> ARABIC LETTER YEH BARREE
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_greek.py b/Lib/encodings/mac_greek.py
index 68f4fff..d3d0c4f 100644
--- a/Lib/encodings/mac_greek.py
+++ b/Lib/encodings/mac_greek.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xb9'     #  0x81 -> SUPERSCRIPT ONE
-    u'\xb2'     #  0x82 -> SUPERSCRIPT TWO
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xb3'     #  0x84 -> SUPERSCRIPT THREE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\u0385'   #  0x87 -> GREEK DIALYTIKA TONOS
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\u0384'   #  0x8B -> GREEK TONOS
-    u'\xa8'     #  0x8C -> DIAERESIS
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xa3'     #  0x92 -> POUND SIGN
-    u'\u2122'   #  0x93 -> TRADE MARK SIGN
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\u2022'   #  0x96 -> BULLET
-    u'\xbd'     #  0x97 -> VULGAR FRACTION ONE HALF
-    u'\u2030'   #  0x98 -> PER MILLE SIGN
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xa6'     #  0x9B -> BROKEN BAR
-    u'\u20ac'   #  0x9C -> EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\u0393'   #  0xA1 -> GREEK CAPITAL LETTER GAMMA
-    u'\u0394'   #  0xA2 -> GREEK CAPITAL LETTER DELTA
-    u'\u0398'   #  0xA3 -> GREEK CAPITAL LETTER THETA
-    u'\u039b'   #  0xA4 -> GREEK CAPITAL LETTER LAMDA
-    u'\u039e'   #  0xA5 -> GREEK CAPITAL LETTER XI
-    u'\u03a0'   #  0xA6 -> GREEK CAPITAL LETTER PI
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u03a3'   #  0xAA -> GREEK CAPITAL LETTER SIGMA
-    u'\u03aa'   #  0xAB -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-    u'\xa7'     #  0xAC -> SECTION SIGN
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\xb0'     #  0xAE -> DEGREE SIGN
-    u'\xb7'     #  0xAF -> MIDDLE DOT
-    u'\u0391'   #  0xB0 -> GREEK CAPITAL LETTER ALPHA
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\xa5'     #  0xB4 -> YEN SIGN
-    u'\u0392'   #  0xB5 -> GREEK CAPITAL LETTER BETA
-    u'\u0395'   #  0xB6 -> GREEK CAPITAL LETTER EPSILON
-    u'\u0396'   #  0xB7 -> GREEK CAPITAL LETTER ZETA
-    u'\u0397'   #  0xB8 -> GREEK CAPITAL LETTER ETA
-    u'\u0399'   #  0xB9 -> GREEK CAPITAL LETTER IOTA
-    u'\u039a'   #  0xBA -> GREEK CAPITAL LETTER KAPPA
-    u'\u039c'   #  0xBB -> GREEK CAPITAL LETTER MU
-    u'\u03a6'   #  0xBC -> GREEK CAPITAL LETTER PHI
-    u'\u03ab'   #  0xBD -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-    u'\u03a8'   #  0xBE -> GREEK CAPITAL LETTER PSI
-    u'\u03a9'   #  0xBF -> GREEK CAPITAL LETTER OMEGA
-    u'\u03ac'   #  0xC0 -> GREEK SMALL LETTER ALPHA WITH TONOS
-    u'\u039d'   #  0xC1 -> GREEK CAPITAL LETTER NU
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u039f'   #  0xC3 -> GREEK CAPITAL LETTER OMICRON
-    u'\u03a1'   #  0xC4 -> GREEK CAPITAL LETTER RHO
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u03a4'   #  0xC6 -> GREEK CAPITAL LETTER TAU
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\u03a5'   #  0xCB -> GREEK CAPITAL LETTER UPSILON
-    u'\u03a7'   #  0xCC -> GREEK CAPITAL LETTER CHI
-    u'\u0386'   #  0xCD -> GREEK CAPITAL LETTER ALPHA WITH TONOS
-    u'\u0388'   #  0xCE -> GREEK CAPITAL LETTER EPSILON WITH TONOS
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2015'   #  0xD1 -> HORIZONTAL BAR
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u0389'   #  0xD7 -> GREEK CAPITAL LETTER ETA WITH TONOS
-    u'\u038a'   #  0xD8 -> GREEK CAPITAL LETTER IOTA WITH TONOS
-    u'\u038c'   #  0xD9 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
-    u'\u038e'   #  0xDA -> GREEK CAPITAL LETTER UPSILON WITH TONOS
-    u'\u03ad'   #  0xDB -> GREEK SMALL LETTER EPSILON WITH TONOS
-    u'\u03ae'   #  0xDC -> GREEK SMALL LETTER ETA WITH TONOS
-    u'\u03af'   #  0xDD -> GREEK SMALL LETTER IOTA WITH TONOS
-    u'\u03cc'   #  0xDE -> GREEK SMALL LETTER OMICRON WITH TONOS
-    u'\u038f'   #  0xDF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
-    u'\u03cd'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH TONOS
-    u'\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
-    u'\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
-    u'\u03c8'   #  0xE3 -> GREEK SMALL LETTER PSI
-    u'\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
-    u'\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
-    u'\u03c6'   #  0xE6 -> GREEK SMALL LETTER PHI
-    u'\u03b3'   #  0xE7 -> GREEK SMALL LETTER GAMMA
-    u'\u03b7'   #  0xE8 -> GREEK SMALL LETTER ETA
-    u'\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
-    u'\u03be'   #  0xEA -> GREEK SMALL LETTER XI
-    u'\u03ba'   #  0xEB -> GREEK SMALL LETTER KAPPA
-    u'\u03bb'   #  0xEC -> GREEK SMALL LETTER LAMDA
-    u'\u03bc'   #  0xED -> GREEK SMALL LETTER MU
-    u'\u03bd'   #  0xEE -> GREEK SMALL LETTER NU
-    u'\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
-    u'\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
-    u'\u03ce'   #  0xF1 -> GREEK SMALL LETTER OMEGA WITH TONOS
-    u'\u03c1'   #  0xF2 -> GREEK SMALL LETTER RHO
-    u'\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
-    u'\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
-    u'\u03b8'   #  0xF5 -> GREEK SMALL LETTER THETA
-    u'\u03c9'   #  0xF6 -> GREEK SMALL LETTER OMEGA
-    u'\u03c2'   #  0xF7 -> GREEK SMALL LETTER FINAL SIGMA
-    u'\u03c7'   #  0xF8 -> GREEK SMALL LETTER CHI
-    u'\u03c5'   #  0xF9 -> GREEK SMALL LETTER UPSILON
-    u'\u03b6'   #  0xFA -> GREEK SMALL LETTER ZETA
-    u'\u03ca'   #  0xFB -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
-    u'\u03cb'   #  0xFC -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-    u'\u0390'   #  0xFD -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-    u'\u03b0'   #  0xFE -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-    u'\xad'     #  0xFF -> SOFT HYPHEN # before Mac OS 9.2.2, was undefined
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xb9'     #  0x81 -> SUPERSCRIPT ONE
+    '\xb2'     #  0x82 -> SUPERSCRIPT TWO
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xb3'     #  0x84 -> SUPERSCRIPT THREE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\u0385'   #  0x87 -> GREEK DIALYTIKA TONOS
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\u0384'   #  0x8B -> GREEK TONOS
+    '\xa8'     #  0x8C -> DIAERESIS
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xa3'     #  0x92 -> POUND SIGN
+    '\u2122'   #  0x93 -> TRADE MARK SIGN
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\u2022'   #  0x96 -> BULLET
+    '\xbd'     #  0x97 -> VULGAR FRACTION ONE HALF
+    '\u2030'   #  0x98 -> PER MILLE SIGN
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xa6'     #  0x9B -> BROKEN BAR
+    '\u20ac'   #  0x9C -> EURO SIGN # before Mac OS 9.2.2, was SOFT HYPHEN
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\u0393'   #  0xA1 -> GREEK CAPITAL LETTER GAMMA
+    '\u0394'   #  0xA2 -> GREEK CAPITAL LETTER DELTA
+    '\u0398'   #  0xA3 -> GREEK CAPITAL LETTER THETA
+    '\u039b'   #  0xA4 -> GREEK CAPITAL LETTER LAMDA
+    '\u039e'   #  0xA5 -> GREEK CAPITAL LETTER XI
+    '\u03a0'   #  0xA6 -> GREEK CAPITAL LETTER PI
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u03a3'   #  0xAA -> GREEK CAPITAL LETTER SIGMA
+    '\u03aa'   #  0xAB -> GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+    '\xa7'     #  0xAC -> SECTION SIGN
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xb0'     #  0xAE -> DEGREE SIGN
+    '\xb7'     #  0xAF -> MIDDLE DOT
+    '\u0391'   #  0xB0 -> GREEK CAPITAL LETTER ALPHA
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\u0392'   #  0xB5 -> GREEK CAPITAL LETTER BETA
+    '\u0395'   #  0xB6 -> GREEK CAPITAL LETTER EPSILON
+    '\u0396'   #  0xB7 -> GREEK CAPITAL LETTER ZETA
+    '\u0397'   #  0xB8 -> GREEK CAPITAL LETTER ETA
+    '\u0399'   #  0xB9 -> GREEK CAPITAL LETTER IOTA
+    '\u039a'   #  0xBA -> GREEK CAPITAL LETTER KAPPA
+    '\u039c'   #  0xBB -> GREEK CAPITAL LETTER MU
+    '\u03a6'   #  0xBC -> GREEK CAPITAL LETTER PHI
+    '\u03ab'   #  0xBD -> GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+    '\u03a8'   #  0xBE -> GREEK CAPITAL LETTER PSI
+    '\u03a9'   #  0xBF -> GREEK CAPITAL LETTER OMEGA
+    '\u03ac'   #  0xC0 -> GREEK SMALL LETTER ALPHA WITH TONOS
+    '\u039d'   #  0xC1 -> GREEK CAPITAL LETTER NU
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u039f'   #  0xC3 -> GREEK CAPITAL LETTER OMICRON
+    '\u03a1'   #  0xC4 -> GREEK CAPITAL LETTER RHO
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u03a4'   #  0xC6 -> GREEK CAPITAL LETTER TAU
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\u03a5'   #  0xCB -> GREEK CAPITAL LETTER UPSILON
+    '\u03a7'   #  0xCC -> GREEK CAPITAL LETTER CHI
+    '\u0386'   #  0xCD -> GREEK CAPITAL LETTER ALPHA WITH TONOS
+    '\u0388'   #  0xCE -> GREEK CAPITAL LETTER EPSILON WITH TONOS
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2015'   #  0xD1 -> HORIZONTAL BAR
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u0389'   #  0xD7 -> GREEK CAPITAL LETTER ETA WITH TONOS
+    '\u038a'   #  0xD8 -> GREEK CAPITAL LETTER IOTA WITH TONOS
+    '\u038c'   #  0xD9 -> GREEK CAPITAL LETTER OMICRON WITH TONOS
+    '\u038e'   #  0xDA -> GREEK CAPITAL LETTER UPSILON WITH TONOS
+    '\u03ad'   #  0xDB -> GREEK SMALL LETTER EPSILON WITH TONOS
+    '\u03ae'   #  0xDC -> GREEK SMALL LETTER ETA WITH TONOS
+    '\u03af'   #  0xDD -> GREEK SMALL LETTER IOTA WITH TONOS
+    '\u03cc'   #  0xDE -> GREEK SMALL LETTER OMICRON WITH TONOS
+    '\u038f'   #  0xDF -> GREEK CAPITAL LETTER OMEGA WITH TONOS
+    '\u03cd'   #  0xE0 -> GREEK SMALL LETTER UPSILON WITH TONOS
+    '\u03b1'   #  0xE1 -> GREEK SMALL LETTER ALPHA
+    '\u03b2'   #  0xE2 -> GREEK SMALL LETTER BETA
+    '\u03c8'   #  0xE3 -> GREEK SMALL LETTER PSI
+    '\u03b4'   #  0xE4 -> GREEK SMALL LETTER DELTA
+    '\u03b5'   #  0xE5 -> GREEK SMALL LETTER EPSILON
+    '\u03c6'   #  0xE6 -> GREEK SMALL LETTER PHI
+    '\u03b3'   #  0xE7 -> GREEK SMALL LETTER GAMMA
+    '\u03b7'   #  0xE8 -> GREEK SMALL LETTER ETA
+    '\u03b9'   #  0xE9 -> GREEK SMALL LETTER IOTA
+    '\u03be'   #  0xEA -> GREEK SMALL LETTER XI
+    '\u03ba'   #  0xEB -> GREEK SMALL LETTER KAPPA
+    '\u03bb'   #  0xEC -> GREEK SMALL LETTER LAMDA
+    '\u03bc'   #  0xED -> GREEK SMALL LETTER MU
+    '\u03bd'   #  0xEE -> GREEK SMALL LETTER NU
+    '\u03bf'   #  0xEF -> GREEK SMALL LETTER OMICRON
+    '\u03c0'   #  0xF0 -> GREEK SMALL LETTER PI
+    '\u03ce'   #  0xF1 -> GREEK SMALL LETTER OMEGA WITH TONOS
+    '\u03c1'   #  0xF2 -> GREEK SMALL LETTER RHO
+    '\u03c3'   #  0xF3 -> GREEK SMALL LETTER SIGMA
+    '\u03c4'   #  0xF4 -> GREEK SMALL LETTER TAU
+    '\u03b8'   #  0xF5 -> GREEK SMALL LETTER THETA
+    '\u03c9'   #  0xF6 -> GREEK SMALL LETTER OMEGA
+    '\u03c2'   #  0xF7 -> GREEK SMALL LETTER FINAL SIGMA
+    '\u03c7'   #  0xF8 -> GREEK SMALL LETTER CHI
+    '\u03c5'   #  0xF9 -> GREEK SMALL LETTER UPSILON
+    '\u03b6'   #  0xFA -> GREEK SMALL LETTER ZETA
+    '\u03ca'   #  0xFB -> GREEK SMALL LETTER IOTA WITH DIALYTIKA
+    '\u03cb'   #  0xFC -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+    '\u0390'   #  0xFD -> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+    '\u03b0'   #  0xFE -> GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+    '\xad'     #  0xFF -> SOFT HYPHEN # before Mac OS 9.2.2, was undefined
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_iceland.py b/Lib/encodings/mac_iceland.py
index c24add2..add10f4 100644
--- a/Lib/encodings/mac_iceland.py
+++ b/Lib/encodings/mac_iceland.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\xdd'     #  0xA0 -> LATIN CAPITAL LETTER Y WITH ACUTE
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\xb4'     #  0xAB -> ACUTE ACCENT
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
-    u'\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\xa5'     #  0xB4 -> YEN SIGN
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u220f'   #  0xB8 -> N-ARY PRODUCT
-    u'\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
-    u'\u222b'   #  0xBA -> INTEGRAL
-    u'\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
-    u'\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
-    u'\xe6'     #  0xBE -> LATIN SMALL LETTER AE
-    u'\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
-    u'\xbf'     #  0xC0 -> INVERTED QUESTION MARK
-    u'\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u2044'   #  0xDA -> FRACTION SLASH
-    u'\u20ac'   #  0xDB -> EURO SIGN
-    u'\xd0'     #  0xDC -> LATIN CAPITAL LETTER ETH
-    u'\xf0'     #  0xDD -> LATIN SMALL LETTER ETH
-    u'\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
-    u'\xfe'     #  0xDF -> LATIN SMALL LETTER THORN
-    u'\xfd'     #  0xE0 -> LATIN SMALL LETTER Y WITH ACUTE
-    u'\xb7'     #  0xE1 -> MIDDLE DOT
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2030'   #  0xE4 -> PER MILLE SIGN
-    u'\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\uf8ff'   #  0xF0 -> Apple logo
-    u'\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
-    u'\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u02dc'   #  0xF7 -> SMALL TILDE
-    u'\xaf'     #  0xF8 -> MACRON
-    u'\u02d8'   #  0xF9 -> BREVE
-    u'\u02d9'   #  0xFA -> DOT ABOVE
-    u'\u02da'   #  0xFB -> RING ABOVE
-    u'\xb8'     #  0xFC -> CEDILLA
-    u'\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
-    u'\u02db'   #  0xFE -> OGONEK
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\xdd'     #  0xA0 -> LATIN CAPITAL LETTER Y WITH ACUTE
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\xd0'     #  0xDC -> LATIN CAPITAL LETTER ETH
+    '\xf0'     #  0xDD -> LATIN SMALL LETTER ETH
+    '\xde'     #  0xDE -> LATIN CAPITAL LETTER THORN
+    '\xfe'     #  0xDF -> LATIN SMALL LETTER THORN
+    '\xfd'     #  0xE0 -> LATIN SMALL LETTER Y WITH ACUTE
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_roman.py b/Lib/encodings/mac_roman.py
index 62605ec..b74b002 100644
--- a/Lib/encodings/mac_roman.py
+++ b/Lib/encodings/mac_roman.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\xb4'     #  0xAB -> ACUTE ACCENT
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
-    u'\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\xa5'     #  0xB4 -> YEN SIGN
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u220f'   #  0xB8 -> N-ARY PRODUCT
-    u'\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
-    u'\u222b'   #  0xBA -> INTEGRAL
-    u'\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
-    u'\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
-    u'\xe6'     #  0xBE -> LATIN SMALL LETTER AE
-    u'\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
-    u'\xbf'     #  0xC0 -> INVERTED QUESTION MARK
-    u'\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u2044'   #  0xDA -> FRACTION SLASH
-    u'\u20ac'   #  0xDB -> EURO SIGN
-    u'\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\ufb01'   #  0xDE -> LATIN SMALL LIGATURE FI
-    u'\ufb02'   #  0xDF -> LATIN SMALL LIGATURE FL
-    u'\u2021'   #  0xE0 -> DOUBLE DAGGER
-    u'\xb7'     #  0xE1 -> MIDDLE DOT
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2030'   #  0xE4 -> PER MILLE SIGN
-    u'\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\uf8ff'   #  0xF0 -> Apple logo
-    u'\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
-    u'\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u02dc'   #  0xF7 -> SMALL TILDE
-    u'\xaf'     #  0xF8 -> MACRON
-    u'\u02d8'   #  0xF9 -> BREVE
-    u'\u02d9'   #  0xFA -> DOT ABOVE
-    u'\u02da'   #  0xFB -> RING ABOVE
-    u'\xb8'     #  0xFC -> CEDILLA
-    u'\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
-    u'\u02db'   #  0xFE -> OGONEK
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\ufb01'   #  0xDE -> LATIN SMALL LIGATURE FI
+    '\ufb02'   #  0xDF -> LATIN SMALL LIGATURE FL
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_romanian.py b/Lib/encodings/mac_romanian.py
index 5bd5ae8..d141b4c 100644
--- a/Lib/encodings/mac_romanian.py
+++ b/Lib/encodings/mac_romanian.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\xb4'     #  0xAB -> ACUTE ACCENT
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\u0102'   #  0xAE -> LATIN CAPITAL LETTER A WITH BREVE
-    u'\u0218'   #  0xAF -> LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\xa5'     #  0xB4 -> YEN SIGN
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u220f'   #  0xB8 -> N-ARY PRODUCT
-    u'\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
-    u'\u222b'   #  0xBA -> INTEGRAL
-    u'\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
-    u'\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
-    u'\u0103'   #  0xBE -> LATIN SMALL LETTER A WITH BREVE
-    u'\u0219'   #  0xBF -> LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
-    u'\xbf'     #  0xC0 -> INVERTED QUESTION MARK
-    u'\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u2044'   #  0xDA -> FRACTION SLASH
-    u'\u20ac'   #  0xDB -> EURO SIGN
-    u'\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-    u'\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-    u'\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
-    u'\u021b'   #  0xDF -> LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
-    u'\u2021'   #  0xE0 -> DOUBLE DAGGER
-    u'\xb7'     #  0xE1 -> MIDDLE DOT
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2030'   #  0xE4 -> PER MILLE SIGN
-    u'\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\uf8ff'   #  0xF0 -> Apple logo
-    u'\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
-    u'\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u02dc'   #  0xF7 -> SMALL TILDE
-    u'\xaf'     #  0xF8 -> MACRON
-    u'\u02d8'   #  0xF9 -> BREVE
-    u'\u02d9'   #  0xFA -> DOT ABOVE
-    u'\u02da'   #  0xFB -> RING ABOVE
-    u'\xb8'     #  0xFC -> CEDILLA
-    u'\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
-    u'\u02db'   #  0xFE -> OGONEK
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\u0102'   #  0xAE -> LATIN CAPITAL LETTER A WITH BREVE
+    '\u0218'   #  0xAF -> LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\u0103'   #  0xBE -> LATIN SMALL LETTER A WITH BREVE
+    '\u0219'   #  0xBF -> LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u2044'   #  0xDA -> FRACTION SLASH
+    '\u20ac'   #  0xDB -> EURO SIGN
+    '\u2039'   #  0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+    '\u203a'   #  0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+    '\u021a'   #  0xDE -> LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u021b'   #  0xDF -> LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\u0131'   #  0xF5 -> LATIN SMALL LETTER DOTLESS I
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/mac_turkish.py b/Lib/encodings/mac_turkish.py
index 0787f49..044d4cb 100644
--- a/Lib/encodings/mac_turkish.py
+++ b/Lib/encodings/mac_turkish.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> CONTROL CHARACTER
-    u'\x01'     #  0x01 -> CONTROL CHARACTER
-    u'\x02'     #  0x02 -> CONTROL CHARACTER
-    u'\x03'     #  0x03 -> CONTROL CHARACTER
-    u'\x04'     #  0x04 -> CONTROL CHARACTER
-    u'\x05'     #  0x05 -> CONTROL CHARACTER
-    u'\x06'     #  0x06 -> CONTROL CHARACTER
-    u'\x07'     #  0x07 -> CONTROL CHARACTER
-    u'\x08'     #  0x08 -> CONTROL CHARACTER
-    u'\t'       #  0x09 -> CONTROL CHARACTER
-    u'\n'       #  0x0A -> CONTROL CHARACTER
-    u'\x0b'     #  0x0B -> CONTROL CHARACTER
-    u'\x0c'     #  0x0C -> CONTROL CHARACTER
-    u'\r'       #  0x0D -> CONTROL CHARACTER
-    u'\x0e'     #  0x0E -> CONTROL CHARACTER
-    u'\x0f'     #  0x0F -> CONTROL CHARACTER
-    u'\x10'     #  0x10 -> CONTROL CHARACTER
-    u'\x11'     #  0x11 -> CONTROL CHARACTER
-    u'\x12'     #  0x12 -> CONTROL CHARACTER
-    u'\x13'     #  0x13 -> CONTROL CHARACTER
-    u'\x14'     #  0x14 -> CONTROL CHARACTER
-    u'\x15'     #  0x15 -> CONTROL CHARACTER
-    u'\x16'     #  0x16 -> CONTROL CHARACTER
-    u'\x17'     #  0x17 -> CONTROL CHARACTER
-    u'\x18'     #  0x18 -> CONTROL CHARACTER
-    u'\x19'     #  0x19 -> CONTROL CHARACTER
-    u'\x1a'     #  0x1A -> CONTROL CHARACTER
-    u'\x1b'     #  0x1B -> CONTROL CHARACTER
-    u'\x1c'     #  0x1C -> CONTROL CHARACTER
-    u'\x1d'     #  0x1D -> CONTROL CHARACTER
-    u'\x1e'     #  0x1E -> CONTROL CHARACTER
-    u'\x1f'     #  0x1F -> CONTROL CHARACTER
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> CONTROL CHARACTER
-    u'\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
-    u'\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
-    u'\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
-    u'\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
-    u'\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
-    u'\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
-    u'\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
-    u'\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
-    u'\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
-    u'\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
-    u'\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
-    u'\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
-    u'\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
-    u'\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
-    u'\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
-    u'\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
-    u'\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
-    u'\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
-    u'\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
-    u'\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
-    u'\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
-    u'\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
-    u'\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
-    u'\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
-    u'\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
-    u'\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
-    u'\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
-    u'\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
-    u'\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
-    u'\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
-    u'\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
-    u'\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
-    u'\u2020'   #  0xA0 -> DAGGER
-    u'\xb0'     #  0xA1 -> DEGREE SIGN
-    u'\xa2'     #  0xA2 -> CENT SIGN
-    u'\xa3'     #  0xA3 -> POUND SIGN
-    u'\xa7'     #  0xA4 -> SECTION SIGN
-    u'\u2022'   #  0xA5 -> BULLET
-    u'\xb6'     #  0xA6 -> PILCROW SIGN
-    u'\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
-    u'\xae'     #  0xA8 -> REGISTERED SIGN
-    u'\xa9'     #  0xA9 -> COPYRIGHT SIGN
-    u'\u2122'   #  0xAA -> TRADE MARK SIGN
-    u'\xb4'     #  0xAB -> ACUTE ACCENT
-    u'\xa8'     #  0xAC -> DIAERESIS
-    u'\u2260'   #  0xAD -> NOT EQUAL TO
-    u'\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
-    u'\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
-    u'\u221e'   #  0xB0 -> INFINITY
-    u'\xb1'     #  0xB1 -> PLUS-MINUS SIGN
-    u'\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
-    u'\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
-    u'\xa5'     #  0xB4 -> YEN SIGN
-    u'\xb5'     #  0xB5 -> MICRO SIGN
-    u'\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
-    u'\u2211'   #  0xB7 -> N-ARY SUMMATION
-    u'\u220f'   #  0xB8 -> N-ARY PRODUCT
-    u'\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
-    u'\u222b'   #  0xBA -> INTEGRAL
-    u'\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
-    u'\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
-    u'\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
-    u'\xe6'     #  0xBE -> LATIN SMALL LETTER AE
-    u'\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
-    u'\xbf'     #  0xC0 -> INVERTED QUESTION MARK
-    u'\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
-    u'\xac'     #  0xC2 -> NOT SIGN
-    u'\u221a'   #  0xC3 -> SQUARE ROOT
-    u'\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
-    u'\u2248'   #  0xC5 -> ALMOST EQUAL TO
-    u'\u2206'   #  0xC6 -> INCREMENT
-    u'\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-    u'\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
-    u'\xa0'     #  0xCA -> NO-BREAK SPACE
-    u'\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
-    u'\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
-    u'\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
-    u'\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
-    u'\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
-    u'\u2013'   #  0xD0 -> EN DASH
-    u'\u2014'   #  0xD1 -> EM DASH
-    u'\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
-    u'\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
-    u'\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
-    u'\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
-    u'\xf7'     #  0xD6 -> DIVISION SIGN
-    u'\u25ca'   #  0xD7 -> LOZENGE
-    u'\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
-    u'\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
-    u'\u011e'   #  0xDA -> LATIN CAPITAL LETTER G WITH BREVE
-    u'\u011f'   #  0xDB -> LATIN SMALL LETTER G WITH BREVE
-    u'\u0130'   #  0xDC -> LATIN CAPITAL LETTER I WITH DOT ABOVE
-    u'\u0131'   #  0xDD -> LATIN SMALL LETTER DOTLESS I
-    u'\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
-    u'\u015f'   #  0xDF -> LATIN SMALL LETTER S WITH CEDILLA
-    u'\u2021'   #  0xE0 -> DOUBLE DAGGER
-    u'\xb7'     #  0xE1 -> MIDDLE DOT
-    u'\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
-    u'\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
-    u'\u2030'   #  0xE4 -> PER MILLE SIGN
-    u'\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
-    u'\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
-    u'\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
-    u'\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
-    u'\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
-    u'\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
-    u'\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-    u'\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
-    u'\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
-    u'\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
-    u'\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
-    u'\uf8ff'   #  0xF0 -> Apple logo
-    u'\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
-    u'\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
-    u'\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
-    u'\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
-    u'\uf8a0'   #  0xF5 -> undefined1
-    u'\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
-    u'\u02dc'   #  0xF7 -> SMALL TILDE
-    u'\xaf'     #  0xF8 -> MACRON
-    u'\u02d8'   #  0xF9 -> BREVE
-    u'\u02d9'   #  0xFA -> DOT ABOVE
-    u'\u02da'   #  0xFB -> RING ABOVE
-    u'\xb8'     #  0xFC -> CEDILLA
-    u'\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
-    u'\u02db'   #  0xFE -> OGONEK
-    u'\u02c7'   #  0xFF -> CARON
+    '\x00'     #  0x00 -> CONTROL CHARACTER
+    '\x01'     #  0x01 -> CONTROL CHARACTER
+    '\x02'     #  0x02 -> CONTROL CHARACTER
+    '\x03'     #  0x03 -> CONTROL CHARACTER
+    '\x04'     #  0x04 -> CONTROL CHARACTER
+    '\x05'     #  0x05 -> CONTROL CHARACTER
+    '\x06'     #  0x06 -> CONTROL CHARACTER
+    '\x07'     #  0x07 -> CONTROL CHARACTER
+    '\x08'     #  0x08 -> CONTROL CHARACTER
+    '\t'       #  0x09 -> CONTROL CHARACTER
+    '\n'       #  0x0A -> CONTROL CHARACTER
+    '\x0b'     #  0x0B -> CONTROL CHARACTER
+    '\x0c'     #  0x0C -> CONTROL CHARACTER
+    '\r'       #  0x0D -> CONTROL CHARACTER
+    '\x0e'     #  0x0E -> CONTROL CHARACTER
+    '\x0f'     #  0x0F -> CONTROL CHARACTER
+    '\x10'     #  0x10 -> CONTROL CHARACTER
+    '\x11'     #  0x11 -> CONTROL CHARACTER
+    '\x12'     #  0x12 -> CONTROL CHARACTER
+    '\x13'     #  0x13 -> CONTROL CHARACTER
+    '\x14'     #  0x14 -> CONTROL CHARACTER
+    '\x15'     #  0x15 -> CONTROL CHARACTER
+    '\x16'     #  0x16 -> CONTROL CHARACTER
+    '\x17'     #  0x17 -> CONTROL CHARACTER
+    '\x18'     #  0x18 -> CONTROL CHARACTER
+    '\x19'     #  0x19 -> CONTROL CHARACTER
+    '\x1a'     #  0x1A -> CONTROL CHARACTER
+    '\x1b'     #  0x1B -> CONTROL CHARACTER
+    '\x1c'     #  0x1C -> CONTROL CHARACTER
+    '\x1d'     #  0x1D -> CONTROL CHARACTER
+    '\x1e'     #  0x1E -> CONTROL CHARACTER
+    '\x1f'     #  0x1F -> CONTROL CHARACTER
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> CONTROL CHARACTER
+    '\xc4'     #  0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
+    '\xc5'     #  0x81 -> LATIN CAPITAL LETTER A WITH RING ABOVE
+    '\xc7'     #  0x82 -> LATIN CAPITAL LETTER C WITH CEDILLA
+    '\xc9'     #  0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
+    '\xd1'     #  0x84 -> LATIN CAPITAL LETTER N WITH TILDE
+    '\xd6'     #  0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
+    '\xdc'     #  0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
+    '\xe1'     #  0x87 -> LATIN SMALL LETTER A WITH ACUTE
+    '\xe0'     #  0x88 -> LATIN SMALL LETTER A WITH GRAVE
+    '\xe2'     #  0x89 -> LATIN SMALL LETTER A WITH CIRCUMFLEX
+    '\xe4'     #  0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
+    '\xe3'     #  0x8B -> LATIN SMALL LETTER A WITH TILDE
+    '\xe5'     #  0x8C -> LATIN SMALL LETTER A WITH RING ABOVE
+    '\xe7'     #  0x8D -> LATIN SMALL LETTER C WITH CEDILLA
+    '\xe9'     #  0x8E -> LATIN SMALL LETTER E WITH ACUTE
+    '\xe8'     #  0x8F -> LATIN SMALL LETTER E WITH GRAVE
+    '\xea'     #  0x90 -> LATIN SMALL LETTER E WITH CIRCUMFLEX
+    '\xeb'     #  0x91 -> LATIN SMALL LETTER E WITH DIAERESIS
+    '\xed'     #  0x92 -> LATIN SMALL LETTER I WITH ACUTE
+    '\xec'     #  0x93 -> LATIN SMALL LETTER I WITH GRAVE
+    '\xee'     #  0x94 -> LATIN SMALL LETTER I WITH CIRCUMFLEX
+    '\xef'     #  0x95 -> LATIN SMALL LETTER I WITH DIAERESIS
+    '\xf1'     #  0x96 -> LATIN SMALL LETTER N WITH TILDE
+    '\xf3'     #  0x97 -> LATIN SMALL LETTER O WITH ACUTE
+    '\xf2'     #  0x98 -> LATIN SMALL LETTER O WITH GRAVE
+    '\xf4'     #  0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
+    '\xf6'     #  0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
+    '\xf5'     #  0x9B -> LATIN SMALL LETTER O WITH TILDE
+    '\xfa'     #  0x9C -> LATIN SMALL LETTER U WITH ACUTE
+    '\xf9'     #  0x9D -> LATIN SMALL LETTER U WITH GRAVE
+    '\xfb'     #  0x9E -> LATIN SMALL LETTER U WITH CIRCUMFLEX
+    '\xfc'     #  0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
+    '\u2020'   #  0xA0 -> DAGGER
+    '\xb0'     #  0xA1 -> DEGREE SIGN
+    '\xa2'     #  0xA2 -> CENT SIGN
+    '\xa3'     #  0xA3 -> POUND SIGN
+    '\xa7'     #  0xA4 -> SECTION SIGN
+    '\u2022'   #  0xA5 -> BULLET
+    '\xb6'     #  0xA6 -> PILCROW SIGN
+    '\xdf'     #  0xA7 -> LATIN SMALL LETTER SHARP S
+    '\xae'     #  0xA8 -> REGISTERED SIGN
+    '\xa9'     #  0xA9 -> COPYRIGHT SIGN
+    '\u2122'   #  0xAA -> TRADE MARK SIGN
+    '\xb4'     #  0xAB -> ACUTE ACCENT
+    '\xa8'     #  0xAC -> DIAERESIS
+    '\u2260'   #  0xAD -> NOT EQUAL TO
+    '\xc6'     #  0xAE -> LATIN CAPITAL LETTER AE
+    '\xd8'     #  0xAF -> LATIN CAPITAL LETTER O WITH STROKE
+    '\u221e'   #  0xB0 -> INFINITY
+    '\xb1'     #  0xB1 -> PLUS-MINUS SIGN
+    '\u2264'   #  0xB2 -> LESS-THAN OR EQUAL TO
+    '\u2265'   #  0xB3 -> GREATER-THAN OR EQUAL TO
+    '\xa5'     #  0xB4 -> YEN SIGN
+    '\xb5'     #  0xB5 -> MICRO SIGN
+    '\u2202'   #  0xB6 -> PARTIAL DIFFERENTIAL
+    '\u2211'   #  0xB7 -> N-ARY SUMMATION
+    '\u220f'   #  0xB8 -> N-ARY PRODUCT
+    '\u03c0'   #  0xB9 -> GREEK SMALL LETTER PI
+    '\u222b'   #  0xBA -> INTEGRAL
+    '\xaa'     #  0xBB -> FEMININE ORDINAL INDICATOR
+    '\xba'     #  0xBC -> MASCULINE ORDINAL INDICATOR
+    '\u03a9'   #  0xBD -> GREEK CAPITAL LETTER OMEGA
+    '\xe6'     #  0xBE -> LATIN SMALL LETTER AE
+    '\xf8'     #  0xBF -> LATIN SMALL LETTER O WITH STROKE
+    '\xbf'     #  0xC0 -> INVERTED QUESTION MARK
+    '\xa1'     #  0xC1 -> INVERTED EXCLAMATION MARK
+    '\xac'     #  0xC2 -> NOT SIGN
+    '\u221a'   #  0xC3 -> SQUARE ROOT
+    '\u0192'   #  0xC4 -> LATIN SMALL LETTER F WITH HOOK
+    '\u2248'   #  0xC5 -> ALMOST EQUAL TO
+    '\u2206'   #  0xC6 -> INCREMENT
+    '\xab'     #  0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\xbb'     #  0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+    '\u2026'   #  0xC9 -> HORIZONTAL ELLIPSIS
+    '\xa0'     #  0xCA -> NO-BREAK SPACE
+    '\xc0'     #  0xCB -> LATIN CAPITAL LETTER A WITH GRAVE
+    '\xc3'     #  0xCC -> LATIN CAPITAL LETTER A WITH TILDE
+    '\xd5'     #  0xCD -> LATIN CAPITAL LETTER O WITH TILDE
+    '\u0152'   #  0xCE -> LATIN CAPITAL LIGATURE OE
+    '\u0153'   #  0xCF -> LATIN SMALL LIGATURE OE
+    '\u2013'   #  0xD0 -> EN DASH
+    '\u2014'   #  0xD1 -> EM DASH
+    '\u201c'   #  0xD2 -> LEFT DOUBLE QUOTATION MARK
+    '\u201d'   #  0xD3 -> RIGHT DOUBLE QUOTATION MARK
+    '\u2018'   #  0xD4 -> LEFT SINGLE QUOTATION MARK
+    '\u2019'   #  0xD5 -> RIGHT SINGLE QUOTATION MARK
+    '\xf7'     #  0xD6 -> DIVISION SIGN
+    '\u25ca'   #  0xD7 -> LOZENGE
+    '\xff'     #  0xD8 -> LATIN SMALL LETTER Y WITH DIAERESIS
+    '\u0178'   #  0xD9 -> LATIN CAPITAL LETTER Y WITH DIAERESIS
+    '\u011e'   #  0xDA -> LATIN CAPITAL LETTER G WITH BREVE
+    '\u011f'   #  0xDB -> LATIN SMALL LETTER G WITH BREVE
+    '\u0130'   #  0xDC -> LATIN CAPITAL LETTER I WITH DOT ABOVE
+    '\u0131'   #  0xDD -> LATIN SMALL LETTER DOTLESS I
+    '\u015e'   #  0xDE -> LATIN CAPITAL LETTER S WITH CEDILLA
+    '\u015f'   #  0xDF -> LATIN SMALL LETTER S WITH CEDILLA
+    '\u2021'   #  0xE0 -> DOUBLE DAGGER
+    '\xb7'     #  0xE1 -> MIDDLE DOT
+    '\u201a'   #  0xE2 -> SINGLE LOW-9 QUOTATION MARK
+    '\u201e'   #  0xE3 -> DOUBLE LOW-9 QUOTATION MARK
+    '\u2030'   #  0xE4 -> PER MILLE SIGN
+    '\xc2'     #  0xE5 -> LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+    '\xca'     #  0xE6 -> LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+    '\xc1'     #  0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
+    '\xcb'     #  0xE8 -> LATIN CAPITAL LETTER E WITH DIAERESIS
+    '\xc8'     #  0xE9 -> LATIN CAPITAL LETTER E WITH GRAVE
+    '\xcd'     #  0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
+    '\xce'     #  0xEB -> LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+    '\xcf'     #  0xEC -> LATIN CAPITAL LETTER I WITH DIAERESIS
+    '\xcc'     #  0xED -> LATIN CAPITAL LETTER I WITH GRAVE
+    '\xd3'     #  0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
+    '\xd4'     #  0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+    '\uf8ff'   #  0xF0 -> Apple logo
+    '\xd2'     #  0xF1 -> LATIN CAPITAL LETTER O WITH GRAVE
+    '\xda'     #  0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
+    '\xdb'     #  0xF3 -> LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+    '\xd9'     #  0xF4 -> LATIN CAPITAL LETTER U WITH GRAVE
+    '\uf8a0'   #  0xF5 -> undefined1
+    '\u02c6'   #  0xF6 -> MODIFIER LETTER CIRCUMFLEX ACCENT
+    '\u02dc'   #  0xF7 -> SMALL TILDE
+    '\xaf'     #  0xF8 -> MACRON
+    '\u02d8'   #  0xF9 -> BREVE
+    '\u02d9'   #  0xFA -> DOT ABOVE
+    '\u02da'   #  0xFB -> RING ABOVE
+    '\xb8'     #  0xFC -> CEDILLA
+    '\u02dd'   #  0xFD -> DOUBLE ACUTE ACCENT
+    '\u02db'   #  0xFE -> OGONEK
+    '\u02c7'   #  0xFF -> CARON
 )
 
 ### Encoding table
diff --git a/Lib/encodings/punycode.py b/Lib/encodings/punycode.py
index 0e4aa0b..c86aad7 100644
--- a/Lib/encodings/punycode.py
+++ b/Lib/encodings/punycode.py
@@ -189,7 +189,7 @@
     else:
         base = text[:pos]
         extended = text[pos+1:]
-    base = unicode(base, "ascii", errors)
+    base = str(base, "ascii", errors)
     extended = extended.upper()
     return insertion_sort(base, extended, errors)
 
diff --git a/Lib/encodings/tis_620.py b/Lib/encodings/tis_620.py
index b2cd22b..e288386 100644
--- a/Lib/encodings/tis_620.py
+++ b/Lib/encodings/tis_620.py
@@ -45,262 +45,262 @@
 ### Decoding Table
 
 decoding_table = (
-    u'\x00'     #  0x00 -> NULL
-    u'\x01'     #  0x01 -> START OF HEADING
-    u'\x02'     #  0x02 -> START OF TEXT
-    u'\x03'     #  0x03 -> END OF TEXT
-    u'\x04'     #  0x04 -> END OF TRANSMISSION
-    u'\x05'     #  0x05 -> ENQUIRY
-    u'\x06'     #  0x06 -> ACKNOWLEDGE
-    u'\x07'     #  0x07 -> BELL
-    u'\x08'     #  0x08 -> BACKSPACE
-    u'\t'       #  0x09 -> HORIZONTAL TABULATION
-    u'\n'       #  0x0A -> LINE FEED
-    u'\x0b'     #  0x0B -> VERTICAL TABULATION
-    u'\x0c'     #  0x0C -> FORM FEED
-    u'\r'       #  0x0D -> CARRIAGE RETURN
-    u'\x0e'     #  0x0E -> SHIFT OUT
-    u'\x0f'     #  0x0F -> SHIFT IN
-    u'\x10'     #  0x10 -> DATA LINK ESCAPE
-    u'\x11'     #  0x11 -> DEVICE CONTROL ONE
-    u'\x12'     #  0x12 -> DEVICE CONTROL TWO
-    u'\x13'     #  0x13 -> DEVICE CONTROL THREE
-    u'\x14'     #  0x14 -> DEVICE CONTROL FOUR
-    u'\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
-    u'\x16'     #  0x16 -> SYNCHRONOUS IDLE
-    u'\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
-    u'\x18'     #  0x18 -> CANCEL
-    u'\x19'     #  0x19 -> END OF MEDIUM
-    u'\x1a'     #  0x1A -> SUBSTITUTE
-    u'\x1b'     #  0x1B -> ESCAPE
-    u'\x1c'     #  0x1C -> FILE SEPARATOR
-    u'\x1d'     #  0x1D -> GROUP SEPARATOR
-    u'\x1e'     #  0x1E -> RECORD SEPARATOR
-    u'\x1f'     #  0x1F -> UNIT SEPARATOR
-    u' '        #  0x20 -> SPACE
-    u'!'        #  0x21 -> EXCLAMATION MARK
-    u'"'        #  0x22 -> QUOTATION MARK
-    u'#'        #  0x23 -> NUMBER SIGN
-    u'$'        #  0x24 -> DOLLAR SIGN
-    u'%'        #  0x25 -> PERCENT SIGN
-    u'&'        #  0x26 -> AMPERSAND
-    u"'"        #  0x27 -> APOSTROPHE
-    u'('        #  0x28 -> LEFT PARENTHESIS
-    u')'        #  0x29 -> RIGHT PARENTHESIS
-    u'*'        #  0x2A -> ASTERISK
-    u'+'        #  0x2B -> PLUS SIGN
-    u','        #  0x2C -> COMMA
-    u'-'        #  0x2D -> HYPHEN-MINUS
-    u'.'        #  0x2E -> FULL STOP
-    u'/'        #  0x2F -> SOLIDUS
-    u'0'        #  0x30 -> DIGIT ZERO
-    u'1'        #  0x31 -> DIGIT ONE
-    u'2'        #  0x32 -> DIGIT TWO
-    u'3'        #  0x33 -> DIGIT THREE
-    u'4'        #  0x34 -> DIGIT FOUR
-    u'5'        #  0x35 -> DIGIT FIVE
-    u'6'        #  0x36 -> DIGIT SIX
-    u'7'        #  0x37 -> DIGIT SEVEN
-    u'8'        #  0x38 -> DIGIT EIGHT
-    u'9'        #  0x39 -> DIGIT NINE
-    u':'        #  0x3A -> COLON
-    u';'        #  0x3B -> SEMICOLON
-    u'<'        #  0x3C -> LESS-THAN SIGN
-    u'='        #  0x3D -> EQUALS SIGN
-    u'>'        #  0x3E -> GREATER-THAN SIGN
-    u'?'        #  0x3F -> QUESTION MARK
-    u'@'        #  0x40 -> COMMERCIAL AT
-    u'A'        #  0x41 -> LATIN CAPITAL LETTER A
-    u'B'        #  0x42 -> LATIN CAPITAL LETTER B
-    u'C'        #  0x43 -> LATIN CAPITAL LETTER C
-    u'D'        #  0x44 -> LATIN CAPITAL LETTER D
-    u'E'        #  0x45 -> LATIN CAPITAL LETTER E
-    u'F'        #  0x46 -> LATIN CAPITAL LETTER F
-    u'G'        #  0x47 -> LATIN CAPITAL LETTER G
-    u'H'        #  0x48 -> LATIN CAPITAL LETTER H
-    u'I'        #  0x49 -> LATIN CAPITAL LETTER I
-    u'J'        #  0x4A -> LATIN CAPITAL LETTER J
-    u'K'        #  0x4B -> LATIN CAPITAL LETTER K
-    u'L'        #  0x4C -> LATIN CAPITAL LETTER L
-    u'M'        #  0x4D -> LATIN CAPITAL LETTER M
-    u'N'        #  0x4E -> LATIN CAPITAL LETTER N
-    u'O'        #  0x4F -> LATIN CAPITAL LETTER O
-    u'P'        #  0x50 -> LATIN CAPITAL LETTER P
-    u'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
-    u'R'        #  0x52 -> LATIN CAPITAL LETTER R
-    u'S'        #  0x53 -> LATIN CAPITAL LETTER S
-    u'T'        #  0x54 -> LATIN CAPITAL LETTER T
-    u'U'        #  0x55 -> LATIN CAPITAL LETTER U
-    u'V'        #  0x56 -> LATIN CAPITAL LETTER V
-    u'W'        #  0x57 -> LATIN CAPITAL LETTER W
-    u'X'        #  0x58 -> LATIN CAPITAL LETTER X
-    u'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
-    u'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
-    u'['        #  0x5B -> LEFT SQUARE BRACKET
-    u'\\'       #  0x5C -> REVERSE SOLIDUS
-    u']'        #  0x5D -> RIGHT SQUARE BRACKET
-    u'^'        #  0x5E -> CIRCUMFLEX ACCENT
-    u'_'        #  0x5F -> LOW LINE
-    u'`'        #  0x60 -> GRAVE ACCENT
-    u'a'        #  0x61 -> LATIN SMALL LETTER A
-    u'b'        #  0x62 -> LATIN SMALL LETTER B
-    u'c'        #  0x63 -> LATIN SMALL LETTER C
-    u'd'        #  0x64 -> LATIN SMALL LETTER D
-    u'e'        #  0x65 -> LATIN SMALL LETTER E
-    u'f'        #  0x66 -> LATIN SMALL LETTER F
-    u'g'        #  0x67 -> LATIN SMALL LETTER G
-    u'h'        #  0x68 -> LATIN SMALL LETTER H
-    u'i'        #  0x69 -> LATIN SMALL LETTER I
-    u'j'        #  0x6A -> LATIN SMALL LETTER J
-    u'k'        #  0x6B -> LATIN SMALL LETTER K
-    u'l'        #  0x6C -> LATIN SMALL LETTER L
-    u'm'        #  0x6D -> LATIN SMALL LETTER M
-    u'n'        #  0x6E -> LATIN SMALL LETTER N
-    u'o'        #  0x6F -> LATIN SMALL LETTER O
-    u'p'        #  0x70 -> LATIN SMALL LETTER P
-    u'q'        #  0x71 -> LATIN SMALL LETTER Q
-    u'r'        #  0x72 -> LATIN SMALL LETTER R
-    u's'        #  0x73 -> LATIN SMALL LETTER S
-    u't'        #  0x74 -> LATIN SMALL LETTER T
-    u'u'        #  0x75 -> LATIN SMALL LETTER U
-    u'v'        #  0x76 -> LATIN SMALL LETTER V
-    u'w'        #  0x77 -> LATIN SMALL LETTER W
-    u'x'        #  0x78 -> LATIN SMALL LETTER X
-    u'y'        #  0x79 -> LATIN SMALL LETTER Y
-    u'z'        #  0x7A -> LATIN SMALL LETTER Z
-    u'{'        #  0x7B -> LEFT CURLY BRACKET
-    u'|'        #  0x7C -> VERTICAL LINE
-    u'}'        #  0x7D -> RIGHT CURLY BRACKET
-    u'~'        #  0x7E -> TILDE
-    u'\x7f'     #  0x7F -> DELETE
-    u'\x80'     #  0x80 -> <control>
-    u'\x81'     #  0x81 -> <control>
-    u'\x82'     #  0x82 -> <control>
-    u'\x83'     #  0x83 -> <control>
-    u'\x84'     #  0x84 -> <control>
-    u'\x85'     #  0x85 -> <control>
-    u'\x86'     #  0x86 -> <control>
-    u'\x87'     #  0x87 -> <control>
-    u'\x88'     #  0x88 -> <control>
-    u'\x89'     #  0x89 -> <control>
-    u'\x8a'     #  0x8A -> <control>
-    u'\x8b'     #  0x8B -> <control>
-    u'\x8c'     #  0x8C -> <control>
-    u'\x8d'     #  0x8D -> <control>
-    u'\x8e'     #  0x8E -> <control>
-    u'\x8f'     #  0x8F -> <control>
-    u'\x90'     #  0x90 -> <control>
-    u'\x91'     #  0x91 -> <control>
-    u'\x92'     #  0x92 -> <control>
-    u'\x93'     #  0x93 -> <control>
-    u'\x94'     #  0x94 -> <control>
-    u'\x95'     #  0x95 -> <control>
-    u'\x96'     #  0x96 -> <control>
-    u'\x97'     #  0x97 -> <control>
-    u'\x98'     #  0x98 -> <control>
-    u'\x99'     #  0x99 -> <control>
-    u'\x9a'     #  0x9A -> <control>
-    u'\x9b'     #  0x9B -> <control>
-    u'\x9c'     #  0x9C -> <control>
-    u'\x9d'     #  0x9D -> <control>
-    u'\x9e'     #  0x9E -> <control>
-    u'\x9f'     #  0x9F -> <control>
-    u'\ufffe'
-    u'\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
-    u'\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
-    u'\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
-    u'\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
-    u'\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
-    u'\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
-    u'\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
-    u'\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
-    u'\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
-    u'\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
-    u'\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
-    u'\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
-    u'\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
-    u'\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
-    u'\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
-    u'\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
-    u'\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
-    u'\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
-    u'\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
-    u'\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
-    u'\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
-    u'\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
-    u'\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
-    u'\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
-    u'\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
-    u'\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
-    u'\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
-    u'\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
-    u'\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
-    u'\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
-    u'\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
-    u'\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
-    u'\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
-    u'\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
-    u'\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
-    u'\u0e24'   #  0xC4 -> THAI CHARACTER RU
-    u'\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
-    u'\u0e26'   #  0xC6 -> THAI CHARACTER LU
-    u'\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
-    u'\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
-    u'\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
-    u'\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
-    u'\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
-    u'\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
-    u'\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
-    u'\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
-    u'\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
-    u'\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
-    u'\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
-    u'\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
-    u'\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
-    u'\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
-    u'\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
-    u'\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
-    u'\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
-    u'\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
-    u'\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
-    u'\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
-    u'\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
-    u'\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
-    u'\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
-    u'\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
-    u'\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
-    u'\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
-    u'\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
-    u'\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
-    u'\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
-    u'\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
-    u'\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
-    u'\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
-    u'\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
-    u'\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
-    u'\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
-    u'\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
-    u'\u0e50'   #  0xF0 -> THAI DIGIT ZERO
-    u'\u0e51'   #  0xF1 -> THAI DIGIT ONE
-    u'\u0e52'   #  0xF2 -> THAI DIGIT TWO
-    u'\u0e53'   #  0xF3 -> THAI DIGIT THREE
-    u'\u0e54'   #  0xF4 -> THAI DIGIT FOUR
-    u'\u0e55'   #  0xF5 -> THAI DIGIT FIVE
-    u'\u0e56'   #  0xF6 -> THAI DIGIT SIX
-    u'\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
-    u'\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
-    u'\u0e59'   #  0xF9 -> THAI DIGIT NINE
-    u'\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
-    u'\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
-    u'\ufffe'
+    '\x00'     #  0x00 -> NULL
+    '\x01'     #  0x01 -> START OF HEADING
+    '\x02'     #  0x02 -> START OF TEXT
+    '\x03'     #  0x03 -> END OF TEXT
+    '\x04'     #  0x04 -> END OF TRANSMISSION
+    '\x05'     #  0x05 -> ENQUIRY
+    '\x06'     #  0x06 -> ACKNOWLEDGE
+    '\x07'     #  0x07 -> BELL
+    '\x08'     #  0x08 -> BACKSPACE
+    '\t'       #  0x09 -> HORIZONTAL TABULATION
+    '\n'       #  0x0A -> LINE FEED
+    '\x0b'     #  0x0B -> VERTICAL TABULATION
+    '\x0c'     #  0x0C -> FORM FEED
+    '\r'       #  0x0D -> CARRIAGE RETURN
+    '\x0e'     #  0x0E -> SHIFT OUT
+    '\x0f'     #  0x0F -> SHIFT IN
+    '\x10'     #  0x10 -> DATA LINK ESCAPE
+    '\x11'     #  0x11 -> DEVICE CONTROL ONE
+    '\x12'     #  0x12 -> DEVICE CONTROL TWO
+    '\x13'     #  0x13 -> DEVICE CONTROL THREE
+    '\x14'     #  0x14 -> DEVICE CONTROL FOUR
+    '\x15'     #  0x15 -> NEGATIVE ACKNOWLEDGE
+    '\x16'     #  0x16 -> SYNCHRONOUS IDLE
+    '\x17'     #  0x17 -> END OF TRANSMISSION BLOCK
+    '\x18'     #  0x18 -> CANCEL
+    '\x19'     #  0x19 -> END OF MEDIUM
+    '\x1a'     #  0x1A -> SUBSTITUTE
+    '\x1b'     #  0x1B -> ESCAPE
+    '\x1c'     #  0x1C -> FILE SEPARATOR
+    '\x1d'     #  0x1D -> GROUP SEPARATOR
+    '\x1e'     #  0x1E -> RECORD SEPARATOR
+    '\x1f'     #  0x1F -> UNIT SEPARATOR
+    ' '        #  0x20 -> SPACE
+    '!'        #  0x21 -> EXCLAMATION MARK
+    '"'        #  0x22 -> QUOTATION MARK
+    '#'        #  0x23 -> NUMBER SIGN
+    '$'        #  0x24 -> DOLLAR SIGN
+    '%'        #  0x25 -> PERCENT SIGN
+    '&'        #  0x26 -> AMPERSAND
+    "'"        #  0x27 -> APOSTROPHE
+    '('        #  0x28 -> LEFT PARENTHESIS
+    ')'        #  0x29 -> RIGHT PARENTHESIS
+    '*'        #  0x2A -> ASTERISK
+    '+'        #  0x2B -> PLUS SIGN
+    ','        #  0x2C -> COMMA
+    '-'        #  0x2D -> HYPHEN-MINUS
+    '.'        #  0x2E -> FULL STOP
+    '/'        #  0x2F -> SOLIDUS
+    '0'        #  0x30 -> DIGIT ZERO
+    '1'        #  0x31 -> DIGIT ONE
+    '2'        #  0x32 -> DIGIT TWO
+    '3'        #  0x33 -> DIGIT THREE
+    '4'        #  0x34 -> DIGIT FOUR
+    '5'        #  0x35 -> DIGIT FIVE
+    '6'        #  0x36 -> DIGIT SIX
+    '7'        #  0x37 -> DIGIT SEVEN
+    '8'        #  0x38 -> DIGIT EIGHT
+    '9'        #  0x39 -> DIGIT NINE
+    ':'        #  0x3A -> COLON
+    ';'        #  0x3B -> SEMICOLON
+    '<'        #  0x3C -> LESS-THAN SIGN
+    '='        #  0x3D -> EQUALS SIGN
+    '>'        #  0x3E -> GREATER-THAN SIGN
+    '?'        #  0x3F -> QUESTION MARK
+    '@'        #  0x40 -> COMMERCIAL AT
+    'A'        #  0x41 -> LATIN CAPITAL LETTER A
+    'B'        #  0x42 -> LATIN CAPITAL LETTER B
+    'C'        #  0x43 -> LATIN CAPITAL LETTER C
+    'D'        #  0x44 -> LATIN CAPITAL LETTER D
+    'E'        #  0x45 -> LATIN CAPITAL LETTER E
+    'F'        #  0x46 -> LATIN CAPITAL LETTER F
+    'G'        #  0x47 -> LATIN CAPITAL LETTER G
+    'H'        #  0x48 -> LATIN CAPITAL LETTER H
+    'I'        #  0x49 -> LATIN CAPITAL LETTER I
+    'J'        #  0x4A -> LATIN CAPITAL LETTER J
+    'K'        #  0x4B -> LATIN CAPITAL LETTER K
+    'L'        #  0x4C -> LATIN CAPITAL LETTER L
+    'M'        #  0x4D -> LATIN CAPITAL LETTER M
+    'N'        #  0x4E -> LATIN CAPITAL LETTER N
+    'O'        #  0x4F -> LATIN CAPITAL LETTER O
+    'P'        #  0x50 -> LATIN CAPITAL LETTER P
+    'Q'        #  0x51 -> LATIN CAPITAL LETTER Q
+    'R'        #  0x52 -> LATIN CAPITAL LETTER R
+    'S'        #  0x53 -> LATIN CAPITAL LETTER S
+    'T'        #  0x54 -> LATIN CAPITAL LETTER T
+    'U'        #  0x55 -> LATIN CAPITAL LETTER U
+    'V'        #  0x56 -> LATIN CAPITAL LETTER V
+    'W'        #  0x57 -> LATIN CAPITAL LETTER W
+    'X'        #  0x58 -> LATIN CAPITAL LETTER X
+    'Y'        #  0x59 -> LATIN CAPITAL LETTER Y
+    'Z'        #  0x5A -> LATIN CAPITAL LETTER Z
+    '['        #  0x5B -> LEFT SQUARE BRACKET
+    '\\'       #  0x5C -> REVERSE SOLIDUS
+    ']'        #  0x5D -> RIGHT SQUARE BRACKET
+    '^'        #  0x5E -> CIRCUMFLEX ACCENT
+    '_'        #  0x5F -> LOW LINE
+    '`'        #  0x60 -> GRAVE ACCENT
+    'a'        #  0x61 -> LATIN SMALL LETTER A
+    'b'        #  0x62 -> LATIN SMALL LETTER B
+    'c'        #  0x63 -> LATIN SMALL LETTER C
+    'd'        #  0x64 -> LATIN SMALL LETTER D
+    'e'        #  0x65 -> LATIN SMALL LETTER E
+    'f'        #  0x66 -> LATIN SMALL LETTER F
+    'g'        #  0x67 -> LATIN SMALL LETTER G
+    'h'        #  0x68 -> LATIN SMALL LETTER H
+    'i'        #  0x69 -> LATIN SMALL LETTER I
+    'j'        #  0x6A -> LATIN SMALL LETTER J
+    'k'        #  0x6B -> LATIN SMALL LETTER K
+    'l'        #  0x6C -> LATIN SMALL LETTER L
+    'm'        #  0x6D -> LATIN SMALL LETTER M
+    'n'        #  0x6E -> LATIN SMALL LETTER N
+    'o'        #  0x6F -> LATIN SMALL LETTER O
+    'p'        #  0x70 -> LATIN SMALL LETTER P
+    'q'        #  0x71 -> LATIN SMALL LETTER Q
+    'r'        #  0x72 -> LATIN SMALL LETTER R
+    's'        #  0x73 -> LATIN SMALL LETTER S
+    't'        #  0x74 -> LATIN SMALL LETTER T
+    'u'        #  0x75 -> LATIN SMALL LETTER U
+    'v'        #  0x76 -> LATIN SMALL LETTER V
+    'w'        #  0x77 -> LATIN SMALL LETTER W
+    'x'        #  0x78 -> LATIN SMALL LETTER X
+    'y'        #  0x79 -> LATIN SMALL LETTER Y
+    'z'        #  0x7A -> LATIN SMALL LETTER Z
+    '{'        #  0x7B -> LEFT CURLY BRACKET
+    '|'        #  0x7C -> VERTICAL LINE
+    '}'        #  0x7D -> RIGHT CURLY BRACKET
+    '~'        #  0x7E -> TILDE
+    '\x7f'     #  0x7F -> DELETE
+    '\x80'     #  0x80 -> <control>
+    '\x81'     #  0x81 -> <control>
+    '\x82'     #  0x82 -> <control>
+    '\x83'     #  0x83 -> <control>
+    '\x84'     #  0x84 -> <control>
+    '\x85'     #  0x85 -> <control>
+    '\x86'     #  0x86 -> <control>
+    '\x87'     #  0x87 -> <control>
+    '\x88'     #  0x88 -> <control>
+    '\x89'     #  0x89 -> <control>
+    '\x8a'     #  0x8A -> <control>
+    '\x8b'     #  0x8B -> <control>
+    '\x8c'     #  0x8C -> <control>
+    '\x8d'     #  0x8D -> <control>
+    '\x8e'     #  0x8E -> <control>
+    '\x8f'     #  0x8F -> <control>
+    '\x90'     #  0x90 -> <control>
+    '\x91'     #  0x91 -> <control>
+    '\x92'     #  0x92 -> <control>
+    '\x93'     #  0x93 -> <control>
+    '\x94'     #  0x94 -> <control>
+    '\x95'     #  0x95 -> <control>
+    '\x96'     #  0x96 -> <control>
+    '\x97'     #  0x97 -> <control>
+    '\x98'     #  0x98 -> <control>
+    '\x99'     #  0x99 -> <control>
+    '\x9a'     #  0x9A -> <control>
+    '\x9b'     #  0x9B -> <control>
+    '\x9c'     #  0x9C -> <control>
+    '\x9d'     #  0x9D -> <control>
+    '\x9e'     #  0x9E -> <control>
+    '\x9f'     #  0x9F -> <control>
+    '\ufffe'
+    '\u0e01'   #  0xA1 -> THAI CHARACTER KO KAI
+    '\u0e02'   #  0xA2 -> THAI CHARACTER KHO KHAI
+    '\u0e03'   #  0xA3 -> THAI CHARACTER KHO KHUAT
+    '\u0e04'   #  0xA4 -> THAI CHARACTER KHO KHWAI
+    '\u0e05'   #  0xA5 -> THAI CHARACTER KHO KHON
+    '\u0e06'   #  0xA6 -> THAI CHARACTER KHO RAKHANG
+    '\u0e07'   #  0xA7 -> THAI CHARACTER NGO NGU
+    '\u0e08'   #  0xA8 -> THAI CHARACTER CHO CHAN
+    '\u0e09'   #  0xA9 -> THAI CHARACTER CHO CHING
+    '\u0e0a'   #  0xAA -> THAI CHARACTER CHO CHANG
+    '\u0e0b'   #  0xAB -> THAI CHARACTER SO SO
+    '\u0e0c'   #  0xAC -> THAI CHARACTER CHO CHOE
+    '\u0e0d'   #  0xAD -> THAI CHARACTER YO YING
+    '\u0e0e'   #  0xAE -> THAI CHARACTER DO CHADA
+    '\u0e0f'   #  0xAF -> THAI CHARACTER TO PATAK
+    '\u0e10'   #  0xB0 -> THAI CHARACTER THO THAN
+    '\u0e11'   #  0xB1 -> THAI CHARACTER THO NANGMONTHO
+    '\u0e12'   #  0xB2 -> THAI CHARACTER THO PHUTHAO
+    '\u0e13'   #  0xB3 -> THAI CHARACTER NO NEN
+    '\u0e14'   #  0xB4 -> THAI CHARACTER DO DEK
+    '\u0e15'   #  0xB5 -> THAI CHARACTER TO TAO
+    '\u0e16'   #  0xB6 -> THAI CHARACTER THO THUNG
+    '\u0e17'   #  0xB7 -> THAI CHARACTER THO THAHAN
+    '\u0e18'   #  0xB8 -> THAI CHARACTER THO THONG
+    '\u0e19'   #  0xB9 -> THAI CHARACTER NO NU
+    '\u0e1a'   #  0xBA -> THAI CHARACTER BO BAIMAI
+    '\u0e1b'   #  0xBB -> THAI CHARACTER PO PLA
+    '\u0e1c'   #  0xBC -> THAI CHARACTER PHO PHUNG
+    '\u0e1d'   #  0xBD -> THAI CHARACTER FO FA
+    '\u0e1e'   #  0xBE -> THAI CHARACTER PHO PHAN
+    '\u0e1f'   #  0xBF -> THAI CHARACTER FO FAN
+    '\u0e20'   #  0xC0 -> THAI CHARACTER PHO SAMPHAO
+    '\u0e21'   #  0xC1 -> THAI CHARACTER MO MA
+    '\u0e22'   #  0xC2 -> THAI CHARACTER YO YAK
+    '\u0e23'   #  0xC3 -> THAI CHARACTER RO RUA
+    '\u0e24'   #  0xC4 -> THAI CHARACTER RU
+    '\u0e25'   #  0xC5 -> THAI CHARACTER LO LING
+    '\u0e26'   #  0xC6 -> THAI CHARACTER LU
+    '\u0e27'   #  0xC7 -> THAI CHARACTER WO WAEN
+    '\u0e28'   #  0xC8 -> THAI CHARACTER SO SALA
+    '\u0e29'   #  0xC9 -> THAI CHARACTER SO RUSI
+    '\u0e2a'   #  0xCA -> THAI CHARACTER SO SUA
+    '\u0e2b'   #  0xCB -> THAI CHARACTER HO HIP
+    '\u0e2c'   #  0xCC -> THAI CHARACTER LO CHULA
+    '\u0e2d'   #  0xCD -> THAI CHARACTER O ANG
+    '\u0e2e'   #  0xCE -> THAI CHARACTER HO NOKHUK
+    '\u0e2f'   #  0xCF -> THAI CHARACTER PAIYANNOI
+    '\u0e30'   #  0xD0 -> THAI CHARACTER SARA A
+    '\u0e31'   #  0xD1 -> THAI CHARACTER MAI HAN-AKAT
+    '\u0e32'   #  0xD2 -> THAI CHARACTER SARA AA
+    '\u0e33'   #  0xD3 -> THAI CHARACTER SARA AM
+    '\u0e34'   #  0xD4 -> THAI CHARACTER SARA I
+    '\u0e35'   #  0xD5 -> THAI CHARACTER SARA II
+    '\u0e36'   #  0xD6 -> THAI CHARACTER SARA UE
+    '\u0e37'   #  0xD7 -> THAI CHARACTER SARA UEE
+    '\u0e38'   #  0xD8 -> THAI CHARACTER SARA U
+    '\u0e39'   #  0xD9 -> THAI CHARACTER SARA UU
+    '\u0e3a'   #  0xDA -> THAI CHARACTER PHINTHU
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\u0e3f'   #  0xDF -> THAI CURRENCY SYMBOL BAHT
+    '\u0e40'   #  0xE0 -> THAI CHARACTER SARA E
+    '\u0e41'   #  0xE1 -> THAI CHARACTER SARA AE
+    '\u0e42'   #  0xE2 -> THAI CHARACTER SARA O
+    '\u0e43'   #  0xE3 -> THAI CHARACTER SARA AI MAIMUAN
+    '\u0e44'   #  0xE4 -> THAI CHARACTER SARA AI MAIMALAI
+    '\u0e45'   #  0xE5 -> THAI CHARACTER LAKKHANGYAO
+    '\u0e46'   #  0xE6 -> THAI CHARACTER MAIYAMOK
+    '\u0e47'   #  0xE7 -> THAI CHARACTER MAITAIKHU
+    '\u0e48'   #  0xE8 -> THAI CHARACTER MAI EK
+    '\u0e49'   #  0xE9 -> THAI CHARACTER MAI THO
+    '\u0e4a'   #  0xEA -> THAI CHARACTER MAI TRI
+    '\u0e4b'   #  0xEB -> THAI CHARACTER MAI CHATTAWA
+    '\u0e4c'   #  0xEC -> THAI CHARACTER THANTHAKHAT
+    '\u0e4d'   #  0xED -> THAI CHARACTER NIKHAHIT
+    '\u0e4e'   #  0xEE -> THAI CHARACTER YAMAKKAN
+    '\u0e4f'   #  0xEF -> THAI CHARACTER FONGMAN
+    '\u0e50'   #  0xF0 -> THAI DIGIT ZERO
+    '\u0e51'   #  0xF1 -> THAI DIGIT ONE
+    '\u0e52'   #  0xF2 -> THAI DIGIT TWO
+    '\u0e53'   #  0xF3 -> THAI DIGIT THREE
+    '\u0e54'   #  0xF4 -> THAI DIGIT FOUR
+    '\u0e55'   #  0xF5 -> THAI DIGIT FIVE
+    '\u0e56'   #  0xF6 -> THAI DIGIT SIX
+    '\u0e57'   #  0xF7 -> THAI DIGIT SEVEN
+    '\u0e58'   #  0xF8 -> THAI DIGIT EIGHT
+    '\u0e59'   #  0xF9 -> THAI DIGIT NINE
+    '\u0e5a'   #  0xFA -> THAI CHARACTER ANGKHANKHU
+    '\u0e5b'   #  0xFB -> THAI CHARACTER KHOMUT
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
+    '\ufffe'
 )
 
 ### Encoding table
diff --git a/Lib/encodings/utf_8_sig.py b/Lib/encodings/utf_8_sig.py
index a0cc1af..07cd5ee 100644
--- a/Lib/encodings/utf_8_sig.py
+++ b/Lib/encodings/utf_8_sig.py
@@ -57,7 +57,7 @@
                 if codecs.BOM_UTF8.startswith(input):
                     # not enough data to decide if this really is a BOM
                     # => try again on the next call
-                    return (u"", 0)
+                    return ("", 0)
                 else:
                     self.first = 0
             else:
@@ -106,7 +106,7 @@
         if len(input) < 3 and codecs.BOM_UTF8.startswith(input):
             # not enough data to decide if this is a BOM
             # => try again on the next call
-            return (u"", 0)
+            return ("", 0)
         self.decode = codecs.utf_8_decode
         return decode(input, errors)