Rip out all the u"..." literals and calls to unicode().
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