diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Neil Mitchell 2006-2009.
+Copyright Neil Mitchell 2006-2013.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -10,7 +10,7 @@
 
 helpMsg :: IO ()
 helpMsg = putStr $ unlines $
-    ["TagSoup, (C) Neil Mitchell 2006-2012"
+    ["TagSoup, (C) Neil Mitchell 2006-2009"
     ,""
     ,"  tagsoup arguments"
     ,""
diff --git a/TagSoup/Test.hs b/TagSoup/Test.hs
--- a/TagSoup/Test.hs
+++ b/TagSoup/Test.hs
@@ -126,6 +126,7 @@
     parseTags "hey &amp; are you" === [TagText "hey & are you"]
 
     -- real cases reported by users
+    parseTags "&nwarr;x&ngeqq;" === [TagText ['\x2196','x','\x2267','\x0338']]
     parseTags "test &#10933649; test" === [TagText "test ? test"]
 
     parseTags "<a href=\"series.php?view=single&ID=72710\">" === [TagOpen "a" [("href","series.php?view=single&ID=72710")]]
@@ -198,17 +199,17 @@
     
 entityTests :: Test ()
 entityTests = do
-    lookupNumericEntity "65" === Just 'A'
-    lookupNumericEntity "x41" === Just 'A'
-    lookupNumericEntity "x4E" === Just 'N'
-    lookupNumericEntity "x4e" === Just 'N'
+    lookupNumericEntity "65" === Just "A"
+    lookupNumericEntity "x41" === Just "A"
+    lookupNumericEntity "x4E" === Just "N"
+    lookupNumericEntity "x4e" === Just "N"
     lookupNumericEntity "Haskell" === Nothing
     lookupNumericEntity "" === Nothing
     lookupNumericEntity "89439085908539082" === Nothing
-    lookupNamedEntity "amp" === Just '&'
+    lookupNamedEntity "amp" === Just "&"
     lookupNamedEntity "haskell" === Nothing
-    escapeXMLChar 'a' === Nothing
-    escapeXMLChar '&' === Just "amp"
+    escapeXML "hello world" === "hello world"
+    escapeXML "hello & world" === "hello &amp; world"
 
 
 combiTests :: Test ()
diff --git a/Text/HTML/TagSoup/Entity.hs b/Text/HTML/TagSoup/Entity.hs
--- a/Text/HTML/TagSoup/Entity.hs
+++ b/Text/HTML/TagSoup/Entity.hs
@@ -2,336 +2,2212 @@
 --   the characters they represent.
 module Text.HTML.TagSoup.Entity(
     lookupEntity, lookupNamedEntity, lookupNumericEntity,
-    escapeXMLChar,
-    xmlEntities, htmlEntities
-    ) where
-
-import Data.Char
-import Data.Ix
-import Numeric
-
-
--- | Lookup an entity, using 'lookupNumericEntity' if it starts with
---   @#@ and 'lookupNamedEntity' otherwise
-lookupEntity :: String -> Maybe Char
-lookupEntity ('#':xs) = lookupNumericEntity xs
-lookupEntity xs = lookupNamedEntity xs
-
--- | Lookup a numeric entity, the leading @\'#\'@ must have already been removed.
---
--- > lookupNumericEntity "65" == Just 'A'
--- > lookupNumericEntity "x41" == Just 'A'
--- > lookupNumericEntity "x4E" === Just 'N'
--- > lookupNumericEntity "x4e" === Just 'N'
--- > lookupNumericEntity "Haskell" == Nothing
--- > lookupNumericEntity "" == Nothing
--- > lookupNumericEntity "89439085908539082" == Nothing
-lookupNumericEntity :: String -> Maybe Char
-lookupNumericEntity = f
-        -- entity = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
-    where
-        f ('x':xs) = g [('0','9'),('a','f'),('A','F')] readHex xs
-        f xs = g [('0','9')] reads xs
-
-        g :: [(Char,Char)] -> ReadS Integer -> String -> Maybe Char
-        g valid reader xs = do
-            let test b = if b then Just () else Nothing
-            test $ isValid valid xs
-            test $ not $ null xs
-            case reader xs of
-                [(a,"")] -> do
-                    test $ inRange (toInteger $ ord minBound, toInteger $ ord maxBound) a
-                    return $ chr $ fromInteger a
-                _ -> Nothing
-
-        isValid :: [(Char,Char)] -> String -> Bool
-        isValid valid xs = all (\x -> any (`inRange` x) valid) xs
-
-
--- | Lookup a named entity, using 'htmlEntities'
---
--- > lookupNamedEntity "amp" == Just '&'
--- > lookupNamedEntity "haskell" == Nothing
-lookupNamedEntity :: String -> Maybe Char
-lookupNamedEntity x = fmap chr $ lookup x htmlEntities
-
-
--- | Escape a character before writing it out to XML.
---
--- > escapeXMLChar 'a' == Nothing
--- > escapeXMLChar '&' == Just "amp"
-escapeXMLChar :: Char -> Maybe String
-escapeXMLChar x = case [a | (a,b) <- xmlEntities, b == ord x] of
-                       (y:_) -> Just y
-                       _ -> Nothing
-
-
--- | A table mapping XML entity names to code points.
---   Does /not/ include @apos@ as Internet Explorer does not know about it.
-xmlEntities :: [(String, Int)]
-xmlEntities = let a*b = (a,ord b) in
-    ["quot" * '"'
-    ,"amp"  * '&'
-    -- ,"apos" * '\''    -- Internet Explorer does not know that
-    ,"lt"   * '<'
-    ,"gt"   * '>'
-    ]
-
--- | A table mapping HTML entity names to code points
-htmlEntities :: [(String, Int)]
-htmlEntities = let (*) = (,) in
-    xmlEntities ++
-    ["apos"    * ord '\''  -- quirky IE!!!
-
-    ,"nbsp"    * 160
-    ,"iexcl"   * 161
-    ,"cent"    * 162
-    ,"pound"   * 163
-    ,"curren"  * 164
-    ,"yen"     * 165
-    ,"brvbar"  * 166
-    ,"sect"    * 167
-    ,"uml"     * 168
-    ,"copy"    * 169
-    ,"ordf"    * 170
-    ,"laquo"   * 171
-    ,"not"     * 172
-    ,"shy"     * 173
-    ,"reg"     * 174
-    ,"macr"    * 175
-    ,"deg"     * 176
-    ,"plusmn"  * 177
-    ,"sup2"    * 178
-    ,"sup3"    * 179
-    ,"acute"   * 180
-    ,"micro"   * 181
-    ,"para"    * 182
-    ,"middot"  * 183
-    ,"cedil"   * 184
-    ,"sup1"    * 185
-    ,"ordm"    * 186
-    ,"raquo"   * 187
-    ,"frac14"  * 188
-    ,"frac12"  * 189
-    ,"frac34"  * 190
-    ,"iquest"  * 191
-    ,"Agrave"  * 192
-    ,"Aacute"  * 193
-    ,"Acirc"   * 194
-    ,"Atilde"  * 195
-    ,"Auml"    * 196
-    ,"Aring"   * 197
-    ,"AElig"   * 198
-    ,"Ccedil"  * 199
-    ,"Egrave"  * 200
-    ,"Eacute"  * 201
-    ,"Ecirc"   * 202
-    ,"Euml"    * 203
-    ,"Igrave"  * 204
-    ,"Iacute"  * 205
-    ,"Icirc"   * 206
-    ,"Iuml"    * 207
-    ,"ETH"     * 208
-    ,"Ntilde"  * 209
-    ,"Ograve"  * 210
-    ,"Oacute"  * 211
-    ,"Ocirc"   * 212
-    ,"Otilde"  * 213
-    ,"Ouml"    * 214
-    ,"times"   * 215
-    ,"Oslash"  * 216
-    ,"Ugrave"  * 217
-    ,"Uacute"  * 218
-    ,"Ucirc"   * 219
-    ,"Uuml"    * 220
-    ,"Yacute"  * 221
-    ,"THORN"   * 222
-    ,"szlig"   * 223
-    ,"agrave"  * 224
-    ,"aacute"  * 225
-    ,"acirc"   * 226
-    ,"atilde"  * 227
-    ,"auml"    * 228
-    ,"aring"   * 229
-    ,"aelig"   * 230
-    ,"ccedil"  * 231
-    ,"egrave"  * 232
-    ,"eacute"  * 233
-    ,"ecirc"   * 234
-    ,"euml"    * 235
-    ,"igrave"  * 236
-    ,"iacute"  * 237
-    ,"icirc"   * 238
-    ,"iuml"    * 239
-    ,"eth"     * 240
-    ,"ntilde"  * 241
-    ,"ograve"  * 242
-    ,"oacute"  * 243
-    ,"ocirc"   * 244
-    ,"otilde"  * 245
-    ,"ouml"    * 246
-    ,"divide"  * 247
-    ,"oslash"  * 248
-    ,"ugrave"  * 249
-    ,"uacute"  * 250
-    ,"ucirc"   * 251
-    ,"uuml"    * 252
-    ,"yacute"  * 253
-    ,"thorn"   * 254
-    ,"yuml"    * 255
-
-    ,"OElig"   * 338
-    ,"oelig"   * 339
-    ,"Scaron"  * 352
-    ,"scaron"  * 353
-    ,"Yuml"    * 376
-    ,"circ"    * 710
-    ,"tilde"   * 732
-
-    ,"ensp"    * 8194
-    ,"emsp"    * 8195
-    ,"thinsp"  * 8201
-    ,"zwnj"    * 8204
-    ,"zwj"     * 8205
-    ,"lrm"     * 8206
-    ,"rlm"     * 8207
-    ,"ndash"   * 8211
-    ,"mdash"   * 8212
-    ,"lsquo"   * 8216
-    ,"rsquo"   * 8217
-    ,"sbquo"   * 8218
-    ,"ldquo"   * 8220
-    ,"rdquo"   * 8221
-    ,"bdquo"   * 8222
-    ,"dagger"  * 8224
-    ,"Dagger"  * 8225
-    ,"permil"  * 8240
-    ,"lsaquo"  * 8249
-    ,"rsaquo"  * 8250
-    ,"euro"    * 8364
-
-    ,"fnof"    * 402
-    ,"Alpha"   * 913
-    ,"Beta"    * 914
-    ,"Gamma"   * 915
-    ,"Delta"   * 916
-    ,"Epsilon" * 917
-    ,"Zeta"    * 918
-    ,"Eta"     * 919
-    ,"Theta"   * 920
-    ,"Iota"    * 921
-    ,"Kappa"   * 922
-    ,"Lambda"  * 923
-    ,"Mu"      * 924
-    ,"Nu"      * 925
-    ,"Xi"      * 926
-    ,"Omicron" * 927
-    ,"Pi"      * 928
-    ,"Rho"     * 929
-    ,"Sigma"   * 931
-    ,"Tau"     * 932
-    ,"Upsilon" * 933
-    ,"Phi"     * 934
-    ,"Chi"     * 935
-    ,"Psi"     * 936
-    ,"Omega"   * 937
-    ,"alpha"   * 945
-    ,"beta"    * 946
-    ,"gamma"   * 947
-    ,"delta"   * 948
-    ,"epsilon" * 949
-    ,"zeta"    * 950
-    ,"eta"     * 951
-    ,"theta"   * 952
-    ,"iota"    * 953
-    ,"kappa"   * 954
-    ,"lambda"  * 955
-    ,"mu"      * 956
-    ,"nu"      * 957
-    ,"xi"      * 958
-    ,"omicron" * 959
-    ,"pi"      * 960
-    ,"rho"     * 961
-    ,"sigmaf"  * 962
-    ,"sigma"   * 963
-    ,"tau"     * 964
-    ,"upsilon" * 965
-    ,"phi"     * 966
-    ,"chi"     * 967
-    ,"psi"     * 968
-    ,"omega"   * 969
-    ,"thetasym"* 977
-    ,"upsih"   * 978
-    ,"piv"     * 982
-    ,"bull"    * 8226
-    ,"hellip"  * 8230
-    ,"prime"   * 8242
-    ,"Prime"   * 8243
-    ,"oline"   * 8254
-    ,"frasl"   * 8260
-    ,"weierp"  * 8472
-    ,"image"   * 8465
-    ,"real"    * 8476
-    ,"trade"   * 8482
-    ,"alefsym" * 8501
-    ,"larr"    * 8592
-    ,"uarr"    * 8593
-    ,"rarr"    * 8594
-    ,"darr"    * 8595
-    ,"harr"    * 8596
-    ,"crarr"   * 8629
-    ,"lArr"    * 8656
-    ,"uArr"    * 8657
-    ,"rArr"    * 8658
-    ,"dArr"    * 8659
-    ,"hArr"    * 8660
-    ,"forall"  * 8704
-    ,"part"    * 8706
-    ,"exist"   * 8707
-    ,"empty"   * 8709
-    ,"nabla"   * 8711
-    ,"isin"    * 8712
-    ,"notin"   * 8713
-    ,"ni"      * 8715
-    ,"prod"    * 8719
-    ,"sum"     * 8721
-    ,"minus"   * 8722
-    ,"lowast"  * 8727
-    ,"radic"   * 8730
-    ,"prop"    * 8733
-    ,"infin"   * 8734
-    ,"ang"     * 8736
-    ,"and"     * 8743
-    ,"or"      * 8744
-    ,"cap"     * 8745
-    ,"cup"     * 8746
-    ,"int"     * 8747
-    ,"there4"  * 8756
-    ,"sim"     * 8764
-    ,"cong"    * 8773
-    ,"asymp"   * 8776
-    ,"ne"      * 8800
-    ,"equiv"   * 8801
-    ,"le"      * 8804
-    ,"ge"      * 8805
-    ,"sub"     * 8834
-    ,"sup"     * 8835
-    ,"nsub"    * 8836
-    ,"sube"    * 8838
-    ,"supe"    * 8839
-    ,"oplus"   * 8853
-    ,"otimes"  * 8855
-    ,"perp"    * 8869
-    ,"sdot"    * 8901
-    ,"lceil"   * 8968
-    ,"rceil"   * 8969
-    ,"lfloor"  * 8970
-    ,"rfloor"  * 8971
-    ,"lang"    * 9001
-    ,"rang"    * 9002
-    ,"loz"     * 9674
-    ,"spades"  * 9824
-    ,"clubs"   * 9827
-    ,"hearts"  * 9829
-    ,"diams"   * 9830
+    escapeXML,
+    xmlEntities, htmlEntities
+    ) where
+
+import Data.Char
+import qualified Data.IntMap as IntMap
+import Data.Ix
+import qualified Data.Map as Map
+import Numeric
+
+
+-- | Lookup an entity, using 'lookupNumericEntity' if it starts with
+--   @#@ and 'lookupNamedEntity' otherwise
+lookupEntity :: String -> Maybe String
+lookupEntity ('#':xs) = lookupNumericEntity xs
+lookupEntity xs = lookupNamedEntity xs
+
+
+-- | Lookup a numeric entity, the leading @\'#\'@ must have already been removed.
+--
+-- > lookupNumericEntity "65" == Just "A"
+-- > lookupNumericEntity "x41" == Just "A"
+-- > lookupNumericEntity "x4E" === Just "N"
+-- > lookupNumericEntity "x4e" === Just "N"
+-- > lookupNumericEntity "Haskell" == Nothing
+-- > lookupNumericEntity "" == Nothing
+-- > lookupNumericEntity "89439085908539082" == Nothing
+lookupNumericEntity :: String -> Maybe String
+lookupNumericEntity = f
+        -- entity = '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
+    where
+        f ('x':xs) = g [('0','9'),('a','f'),('A','F')] readHex xs
+        f xs = g [('0','9')] reads xs
+
+        g :: [(Char,Char)] -> ReadS Integer -> String -> Maybe String
+        g valid reader xs = do
+            let test b = if b then Just () else Nothing
+            test $ isValid valid xs
+            test $ not $ null xs
+            case reader xs of
+                [(a,"")] -> do
+                    test $ inRange (toInteger $ ord minBound, toInteger $ ord maxBound) a
+                    return [chr $ fromInteger a]
+                _ -> Nothing
+
+        isValid :: [(Char,Char)] -> String -> Bool
+        isValid valid xs = all (\x -> any (`inRange` x) valid) xs
+
+
+-- | Lookup a named entity, using 'htmlEntities'
+--
+-- > lookupNamedEntity "amp" == Just "&"
+-- > lookupNamedEntity "haskell" == Nothing
+lookupNamedEntity :: String -> Maybe String
+lookupNamedEntity = \x -> Map.lookup x mp
+    where mp = Map.fromList htmlEntities
+
+
+-- | Escape an XML string.
+--
+-- > escapeXML "hello world" == "hello world"
+-- > escapeXML "hello & world" == "hello &amp; world"
+escapeXML :: String -> String
+escapeXML = concatMap $ \x -> IntMap.findWithDefault [x] (ord x) mp
+    where mp = IntMap.fromList [(ord b, "&"++a++";") | (a,[b]) <- xmlEntities]
+
+
+-- | A table mapping XML entity names to resolved strings. All strings are a single character long.
+--   Does /not/ include @apos@ as Internet Explorer does not know about it.
+xmlEntities :: [(String, String)]
+xmlEntities = let a*b = (a,[b]) in
+    ["quot" * '"'
+    ,"amp"  * '&'
+    -- ,"apos" * '\''    -- Internet Explorer does not know that
+    ,"lt"   * '<'
+    ,"gt"   * '>'
+    ]
+
+-- | A table mapping HTML entity names to resolved strings. Most resolved strings are a single character long,
+--   but some (e.g. @"ngeqq"@) are two characters long. The list is taken from
+--   <http://www.w3.org/TR/html5/syntax.html#named-character-references>.
+htmlEntities :: [(String, String)]
+htmlEntities = let (*) = (,) in
+    ["Aacute" * "\x00C1"
+    ,"aacute" * "\x00E1"
+    ,"Abreve" * "\x0102"
+    ,"abreve" * "\x0103"
+    ,"ac" * "\x223E"
+    ,"acd" * "\x223F"
+    ,"acE" * "\x223E\x0333"
+    ,"Acirc" * "\x00C2"
+    ,"acirc" * "\x00E2"
+    ,"acute" * "\x00B4"
+    ,"Acy" * "\x0410"
+    ,"acy" * "\x0430"
+    ,"AElig" * "\x00C6"
+    ,"aelig" * "\x00E6"
+    ,"af" * "\x2061"
+    ,"Afr" * "\xD835\xDD04"
+    ,"afr" * "\xD835\xDD1E"
+    ,"Agrave" * "\x00C0"
+    ,"agrave" * "\x00E0"
+    ,"alefsym" * "\x2135"
+    ,"aleph" * "\x2135"
+    ,"Alpha" * "\x0391"
+    ,"alpha" * "\x03B1"
+    ,"Amacr" * "\x0100"
+    ,"amacr" * "\x0101"
+    ,"amalg" * "\x2A3F"
+    ,"AMP" * "\x0026"
+    ,"amp" * "\x0026"
+    ,"and" * "\x2227"
+    ,"And" * "\x2A53"
+    ,"andand" * "\x2A55"
+    ,"andd" * "\x2A5C"
+    ,"andslope" * "\x2A58"
+    ,"andv" * "\x2A5A"
+    ,"ang" * "\x2220"
+    ,"ange" * "\x29A4"
+    ,"angle" * "\x2220"
+    ,"angmsd" * "\x2221"
+    ,"angmsdaa" * "\x29A8"
+    ,"angmsdab" * "\x29A9"
+    ,"angmsdac" * "\x29AA"
+    ,"angmsdad" * "\x29AB"
+    ,"angmsdae" * "\x29AC"
+    ,"angmsdaf" * "\x29AD"
+    ,"angmsdag" * "\x29AE"
+    ,"angmsdah" * "\x29AF"
+    ,"angrt" * "\x221F"
+    ,"angrtvb" * "\x22BE"
+    ,"angrtvbd" * "\x299D"
+    ,"angsph" * "\x2222"
+    ,"angst" * "\x00C5"
+    ,"angzarr" * "\x237C"
+    ,"Aogon" * "\x0104"
+    ,"aogon" * "\x0105"
+    ,"Aopf" * "\xD835\xDD38"
+    ,"aopf" * "\xD835\xDD52"
+    ,"ap" * "\x2248"
+    ,"apacir" * "\x2A6F"
+    ,"ape" * "\x224A"
+    ,"apE" * "\x2A70"
+    ,"apid" * "\x224B"
+    ,"apos" * "\x0027"
+    ,"ApplyFunction" * "\x2061"
+    ,"approx" * "\x2248"
+    ,"approxeq" * "\x224A"
+    ,"Aring" * "\x00C5"
+    ,"aring" * "\x00E5"
+    ,"Ascr" * "\xD835\xDC9C"
+    ,"ascr" * "\xD835\xDCB6"
+    ,"Assign" * "\x2254"
+    ,"ast" * "\x002A"
+    ,"asymp" * "\x2248"
+    ,"asympeq" * "\x224D"
+    ,"Atilde" * "\x00C3"
+    ,"atilde" * "\x00E3"
+    ,"Auml" * "\x00C4"
+    ,"auml" * "\x00E4"
+    ,"awconint" * "\x2233"
+    ,"awint" * "\x2A11"
+    ,"backcong" * "\x224C"
+    ,"backepsilon" * "\x03F6"
+    ,"backprime" * "\x2035"
+    ,"backsim" * "\x223D"
+    ,"backsimeq" * "\x22CD"
+    ,"Backslash" * "\x2216"
+    ,"Barv" * "\x2AE7"
+    ,"barvee" * "\x22BD"
+    ,"barwed" * "\x2305"
+    ,"Barwed" * "\x2306"
+    ,"barwedge" * "\x2305"
+    ,"bbrk" * "\x23B5"
+    ,"bbrktbrk" * "\x23B6"
+    ,"bcong" * "\x224C"
+    ,"Bcy" * "\x0411"
+    ,"bcy" * "\x0431"
+    ,"bdquo" * "\x201E"
+    ,"becaus" * "\x2235"
+    ,"Because" * "\x2235"
+    ,"because" * "\x2235"
+    ,"bemptyv" * "\x29B0"
+    ,"bepsi" * "\x03F6"
+    ,"bernou" * "\x212C"
+    ,"Bernoullis" * "\x212C"
+    ,"Beta" * "\x0392"
+    ,"beta" * "\x03B2"
+    ,"beth" * "\x2136"
+    ,"between" * "\x226C"
+    ,"Bfr" * "\xD835\xDD05"
+    ,"bfr" * "\xD835\xDD1F"
+    ,"bigcap" * "\x22C2"
+    ,"bigcirc" * "\x25EF"
+    ,"bigcup" * "\x22C3"
+    ,"bigodot" * "\x2A00"
+    ,"bigoplus" * "\x2A01"
+    ,"bigotimes" * "\x2A02"
+    ,"bigsqcup" * "\x2A06"
+    ,"bigstar" * "\x2605"
+    ,"bigtriangledown" * "\x25BD"
+    ,"bigtriangleup" * "\x25B3"
+    ,"biguplus" * "\x2A04"
+    ,"bigvee" * "\x22C1"
+    ,"bigwedge" * "\x22C0"
+    ,"bkarow" * "\x290D"
+    ,"blacklozenge" * "\x29EB"
+    ,"blacksquare" * "\x25AA"
+    ,"blacktriangle" * "\x25B4"
+    ,"blacktriangledown" * "\x25BE"
+    ,"blacktriangleleft" * "\x25C2"
+    ,"blacktriangleright" * "\x25B8"
+    ,"blank" * "\x2423"
+    ,"blk12" * "\x2592"
+    ,"blk14" * "\x2591"
+    ,"blk34" * "\x2593"
+    ,"block" * "\x2588"
+    ,"bne" * "\x003D\x20E5"
+    ,"bnequiv" * "\x2261\x20E5"
+    ,"bnot" * "\x2310"
+    ,"bNot" * "\x2AED"
+    ,"Bopf" * "\xD835\xDD39"
+    ,"bopf" * "\xD835\xDD53"
+    ,"bot" * "\x22A5"
+    ,"bottom" * "\x22A5"
+    ,"bowtie" * "\x22C8"
+    ,"boxbox" * "\x29C9"
+    ,"boxdl" * "\x2510"
+    ,"boxdL" * "\x2555"
+    ,"boxDl" * "\x2556"
+    ,"boxDL" * "\x2557"
+    ,"boxdr" * "\x250C"
+    ,"boxdR" * "\x2552"
+    ,"boxDr" * "\x2553"
+    ,"boxDR" * "\x2554"
+    ,"boxh" * "\x2500"
+    ,"boxH" * "\x2550"
+    ,"boxhd" * "\x252C"
+    ,"boxHd" * "\x2564"
+    ,"boxhD" * "\x2565"
+    ,"boxHD" * "\x2566"
+    ,"boxhu" * "\x2534"
+    ,"boxHu" * "\x2567"
+    ,"boxhU" * "\x2568"
+    ,"boxHU" * "\x2569"
+    ,"boxminus" * "\x229F"
+    ,"boxplus" * "\x229E"
+    ,"boxtimes" * "\x22A0"
+    ,"boxul" * "\x2518"
+    ,"boxuL" * "\x255B"
+    ,"boxUl" * "\x255C"
+    ,"boxUL" * "\x255D"
+    ,"boxur" * "\x2514"
+    ,"boxuR" * "\x2558"
+    ,"boxUr" * "\x2559"
+    ,"boxUR" * "\x255A"
+    ,"boxv" * "\x2502"
+    ,"boxV" * "\x2551"
+    ,"boxvh" * "\x253C"
+    ,"boxvH" * "\x256A"
+    ,"boxVh" * "\x256B"
+    ,"boxVH" * "\x256C"
+    ,"boxvl" * "\x2524"
+    ,"boxvL" * "\x2561"
+    ,"boxVl" * "\x2562"
+    ,"boxVL" * "\x2563"
+    ,"boxvr" * "\x251C"
+    ,"boxvR" * "\x255E"
+    ,"boxVr" * "\x255F"
+    ,"boxVR" * "\x2560"
+    ,"bprime" * "\x2035"
+    ,"Breve" * "\x02D8"
+    ,"breve" * "\x02D8"
+    ,"brvbar" * "\x00A6"
+    ,"Bscr" * "\x212C"
+    ,"bscr" * "\xD835\xDCB7"
+    ,"bsemi" * "\x204F"
+    ,"bsim" * "\x223D"
+    ,"bsime" * "\x22CD"
+    ,"bsol" * "\x005C"
+    ,"bsolb" * "\x29C5"
+    ,"bsolhsub" * "\x27C8"
+    ,"bull" * "\x2022"
+    ,"bullet" * "\x2022"
+    ,"bump" * "\x224E"
+    ,"bumpe" * "\x224F"
+    ,"bumpE" * "\x2AAE"
+    ,"Bumpeq" * "\x224E"
+    ,"bumpeq" * "\x224F"
+    ,"Cacute" * "\x0106"
+    ,"cacute" * "\x0107"
+    ,"cap" * "\x2229"
+    ,"Cap" * "\x22D2"
+    ,"capand" * "\x2A44"
+    ,"capbrcup" * "\x2A49"
+    ,"capcap" * "\x2A4B"
+    ,"capcup" * "\x2A47"
+    ,"capdot" * "\x2A40"
+    ,"CapitalDifferentialD" * "\x2145"
+    ,"caps" * "\x2229\xFE00"
+    ,"caret" * "\x2041"
+    ,"caron" * "\x02C7"
+    ,"Cayleys" * "\x212D"
+    ,"ccaps" * "\x2A4D"
+    ,"Ccaron" * "\x010C"
+    ,"ccaron" * "\x010D"
+    ,"Ccedil" * "\x00C7"
+    ,"ccedil" * "\x00E7"
+    ,"Ccirc" * "\x0108"
+    ,"ccirc" * "\x0109"
+    ,"Cconint" * "\x2230"
+    ,"ccups" * "\x2A4C"
+    ,"ccupssm" * "\x2A50"
+    ,"Cdot" * "\x010A"
+    ,"cdot" * "\x010B"
+    ,"cedil" * "\x00B8"
+    ,"Cedilla" * "\x00B8"
+    ,"cemptyv" * "\x29B2"
+    ,"cent" * "\x00A2"
+    ,"CenterDot" * "\x00B7"
+    ,"centerdot" * "\x00B7"
+    ,"Cfr" * "\x212D"
+    ,"cfr" * "\xD835\xDD20"
+    ,"CHcy" * "\x0427"
+    ,"chcy" * "\x0447"
+    ,"check" * "\x2713"
+    ,"checkmark" * "\x2713"
+    ,"Chi" * "\x03A7"
+    ,"chi" * "\x03C7"
+    ,"cir" * "\x25CB"
+    ,"circ" * "\x02C6"
+    ,"circeq" * "\x2257"
+    ,"circlearrowleft" * "\x21BA"
+    ,"circlearrowright" * "\x21BB"
+    ,"circledast" * "\x229B"
+    ,"circledcirc" * "\x229A"
+    ,"circleddash" * "\x229D"
+    ,"CircleDot" * "\x2299"
+    ,"circledR" * "\x00AE"
+    ,"circledS" * "\x24C8"
+    ,"CircleMinus" * "\x2296"
+    ,"CirclePlus" * "\x2295"
+    ,"CircleTimes" * "\x2297"
+    ,"cire" * "\x2257"
+    ,"cirE" * "\x29C3"
+    ,"cirfnint" * "\x2A10"
+    ,"cirmid" * "\x2AEF"
+    ,"cirscir" * "\x29C2"
+    ,"ClockwiseContourIntegral" * "\x2232"
+    ,"CloseCurlyDoubleQuote" * "\x201D"
+    ,"CloseCurlyQuote" * "\x2019"
+    ,"clubs" * "\x2663"
+    ,"clubsuit" * "\x2663"
+    ,"colon" * "\x003A"
+    ,"Colon" * "\x2237"
+    ,"colone" * "\x2254"
+    ,"Colone" * "\x2A74"
+    ,"coloneq" * "\x2254"
+    ,"comma" * "\x002C"
+    ,"commat" * "\x0040"
+    ,"comp" * "\x2201"
+    ,"compfn" * "\x2218"
+    ,"complement" * "\x2201"
+    ,"complexes" * "\x2102"
+    ,"cong" * "\x2245"
+    ,"congdot" * "\x2A6D"
+    ,"Congruent" * "\x2261"
+    ,"conint" * "\x222E"
+    ,"Conint" * "\x222F"
+    ,"ContourIntegral" * "\x222E"
+    ,"Copf" * "\x2102"
+    ,"copf" * "\xD835\xDD54"
+    ,"coprod" * "\x2210"
+    ,"Coproduct" * "\x2210"
+    ,"COPY" * "\x00A9"
+    ,"copy" * "\x00A9"
+    ,"copysr" * "\x2117"
+    ,"CounterClockwiseContourIntegral" * "\x2233"
+    ,"crarr" * "\x21B5"
+    ,"cross" * "\x2717"
+    ,"Cross" * "\x2A2F"
+    ,"Cscr" * "\xD835\xDC9E"
+    ,"cscr" * "\xD835\xDCB8"
+    ,"csub" * "\x2ACF"
+    ,"csube" * "\x2AD1"
+    ,"csup" * "\x2AD0"
+    ,"csupe" * "\x2AD2"
+    ,"ctdot" * "\x22EF"
+    ,"cudarrl" * "\x2938"
+    ,"cudarrr" * "\x2935"
+    ,"cuepr" * "\x22DE"
+    ,"cuesc" * "\x22DF"
+    ,"cularr" * "\x21B6"
+    ,"cularrp" * "\x293D"
+    ,"cup" * "\x222A"
+    ,"Cup" * "\x22D3"
+    ,"cupbrcap" * "\x2A48"
+    ,"CupCap" * "\x224D"
+    ,"cupcap" * "\x2A46"
+    ,"cupcup" * "\x2A4A"
+    ,"cupdot" * "\x228D"
+    ,"cupor" * "\x2A45"
+    ,"cups" * "\x222A\xFE00"
+    ,"curarr" * "\x21B7"
+    ,"curarrm" * "\x293C"
+    ,"curlyeqprec" * "\x22DE"
+    ,"curlyeqsucc" * "\x22DF"
+    ,"curlyvee" * "\x22CE"
+    ,"curlywedge" * "\x22CF"
+    ,"curren" * "\x00A4"
+    ,"curvearrowleft" * "\x21B6"
+    ,"curvearrowright" * "\x21B7"
+    ,"cuvee" * "\x22CE"
+    ,"cuwed" * "\x22CF"
+    ,"cwconint" * "\x2232"
+    ,"cwint" * "\x2231"
+    ,"cylcty" * "\x232D"
+    ,"dagger" * "\x2020"
+    ,"Dagger" * "\x2021"
+    ,"daleth" * "\x2138"
+    ,"darr" * "\x2193"
+    ,"Darr" * "\x21A1"
+    ,"dArr" * "\x21D3"
+    ,"dash" * "\x2010"
+    ,"dashv" * "\x22A3"
+    ,"Dashv" * "\x2AE4"
+    ,"dbkarow" * "\x290F"
+    ,"dblac" * "\x02DD"
+    ,"Dcaron" * "\x010E"
+    ,"dcaron" * "\x010F"
+    ,"Dcy" * "\x0414"
+    ,"dcy" * "\x0434"
+    ,"DD" * "\x2145"
+    ,"dd" * "\x2146"
+    ,"ddagger" * "\x2021"
+    ,"ddarr" * "\x21CA"
+    ,"DDotrahd" * "\x2911"
+    ,"ddotseq" * "\x2A77"
+    ,"deg" * "\x00B0"
+    ,"Del" * "\x2207"
+    ,"Delta" * "\x0394"
+    ,"delta" * "\x03B4"
+    ,"demptyv" * "\x29B1"
+    ,"dfisht" * "\x297F"
+    ,"Dfr" * "\xD835\xDD07"
+    ,"dfr" * "\xD835\xDD21"
+    ,"dHar" * "\x2965"
+    ,"dharl" * "\x21C3"
+    ,"dharr" * "\x21C2"
+    ,"DiacriticalAcute" * "\x00B4"
+    ,"DiacriticalDot" * "\x02D9"
+    ,"DiacriticalDoubleAcute" * "\x02DD"
+    ,"DiacriticalGrave" * "\x0060"
+    ,"DiacriticalTilde" * "\x02DC"
+    ,"diam" * "\x22C4"
+    ,"Diamond" * "\x22C4"
+    ,"diamond" * "\x22C4"
+    ,"diamondsuit" * "\x2666"
+    ,"diams" * "\x2666"
+    ,"die" * "\x00A8"
+    ,"DifferentialD" * "\x2146"
+    ,"digamma" * "\x03DD"
+    ,"disin" * "\x22F2"
+    ,"div" * "\x00F7"
+    ,"divide" * "\x00F7"
+    ,"divideontimes" * "\x22C7"
+    ,"divonx" * "\x22C7"
+    ,"DJcy" * "\x0402"
+    ,"djcy" * "\x0452"
+    ,"dlcorn" * "\x231E"
+    ,"dlcrop" * "\x230D"
+    ,"dollar" * "\x0024"
+    ,"Dopf" * "\xD835\xDD3B"
+    ,"dopf" * "\xD835\xDD55"
+    ,"Dot" * "\x00A8"
+    ,"dot" * "\x02D9"
+    ,"DotDot" * "\x20DC"
+    ,"doteq" * "\x2250"
+    ,"doteqdot" * "\x2251"
+    ,"DotEqual" * "\x2250"
+    ,"dotminus" * "\x2238"
+    ,"dotplus" * "\x2214"
+    ,"dotsquare" * "\x22A1"
+    ,"doublebarwedge" * "\x2306"
+    ,"DoubleContourIntegral" * "\x222F"
+    ,"DoubleDot" * "\x00A8"
+    ,"DoubleDownArrow" * "\x21D3"
+    ,"DoubleLeftArrow" * "\x21D0"
+    ,"DoubleLeftRightArrow" * "\x21D4"
+    ,"DoubleLeftTee" * "\x2AE4"
+    ,"DoubleLongLeftArrow" * "\x27F8"
+    ,"DoubleLongLeftRightArrow" * "\x27FA"
+    ,"DoubleLongRightArrow" * "\x27F9"
+    ,"DoubleRightArrow" * "\x21D2"
+    ,"DoubleRightTee" * "\x22A8"
+    ,"DoubleUpArrow" * "\x21D1"
+    ,"DoubleUpDownArrow" * "\x21D5"
+    ,"DoubleVerticalBar" * "\x2225"
+    ,"DownArrow" * "\x2193"
+    ,"downarrow" * "\x2193"
+    ,"Downarrow" * "\x21D3"
+    ,"DownArrowBar" * "\x2913"
+    ,"DownArrowUpArrow" * "\x21F5"
+    ,"DownBreve" * "\x0311"
+    ,"downdownarrows" * "\x21CA"
+    ,"downharpoonleft" * "\x21C3"
+    ,"downharpoonright" * "\x21C2"
+    ,"DownLeftRightVector" * "\x2950"
+    ,"DownLeftTeeVector" * "\x295E"
+    ,"DownLeftVector" * "\x21BD"
+    ,"DownLeftVectorBar" * "\x2956"
+    ,"DownRightTeeVector" * "\x295F"
+    ,"DownRightVector" * "\x21C1"
+    ,"DownRightVectorBar" * "\x2957"
+    ,"DownTee" * "\x22A4"
+    ,"DownTeeArrow" * "\x21A7"
+    ,"drbkarow" * "\x2910"
+    ,"drcorn" * "\x231F"
+    ,"drcrop" * "\x230C"
+    ,"Dscr" * "\xD835\xDC9F"
+    ,"dscr" * "\xD835\xDCB9"
+    ,"DScy" * "\x0405"
+    ,"dscy" * "\x0455"
+    ,"dsol" * "\x29F6"
+    ,"Dstrok" * "\x0110"
+    ,"dstrok" * "\x0111"
+    ,"dtdot" * "\x22F1"
+    ,"dtri" * "\x25BF"
+    ,"dtrif" * "\x25BE"
+    ,"duarr" * "\x21F5"
+    ,"duhar" * "\x296F"
+    ,"dwangle" * "\x29A6"
+    ,"DZcy" * "\x040F"
+    ,"dzcy" * "\x045F"
+    ,"dzigrarr" * "\x27FF"
+    ,"Eacute" * "\x00C9"
+    ,"eacute" * "\x00E9"
+    ,"easter" * "\x2A6E"
+    ,"Ecaron" * "\x011A"
+    ,"ecaron" * "\x011B"
+    ,"ecir" * "\x2256"
+    ,"Ecirc" * "\x00CA"
+    ,"ecirc" * "\x00EA"
+    ,"ecolon" * "\x2255"
+    ,"Ecy" * "\x042D"
+    ,"ecy" * "\x044D"
+    ,"eDDot" * "\x2A77"
+    ,"Edot" * "\x0116"
+    ,"edot" * "\x0117"
+    ,"eDot" * "\x2251"
+    ,"ee" * "\x2147"
+    ,"efDot" * "\x2252"
+    ,"Efr" * "\xD835\xDD08"
+    ,"efr" * "\xD835\xDD22"
+    ,"eg" * "\x2A9A"
+    ,"Egrave" * "\x00C8"
+    ,"egrave" * "\x00E8"
+    ,"egs" * "\x2A96"
+    ,"egsdot" * "\x2A98"
+    ,"el" * "\x2A99"
+    ,"Element" * "\x2208"
+    ,"elinters" * "\x23E7"
+    ,"ell" * "\x2113"
+    ,"els" * "\x2A95"
+    ,"elsdot" * "\x2A97"
+    ,"Emacr" * "\x0112"
+    ,"emacr" * "\x0113"
+    ,"empty" * "\x2205"
+    ,"emptyset" * "\x2205"
+    ,"EmptySmallSquare" * "\x25FB"
+    ,"emptyv" * "\x2205"
+    ,"EmptyVerySmallSquare" * "\x25AB"
+    ,"emsp" * "\x2003"
+    ,"emsp13" * "\x2004"
+    ,"emsp14" * "\x2005"
+    ,"ENG" * "\x014A"
+    ,"eng" * "\x014B"
+    ,"ensp" * "\x2002"
+    ,"Eogon" * "\x0118"
+    ,"eogon" * "\x0119"
+    ,"Eopf" * "\xD835\xDD3C"
+    ,"eopf" * "\xD835\xDD56"
+    ,"epar" * "\x22D5"
+    ,"eparsl" * "\x29E3"
+    ,"eplus" * "\x2A71"
+    ,"epsi" * "\x03B5"
+    ,"Epsilon" * "\x0395"
+    ,"epsilon" * "\x03B5"
+    ,"epsiv" * "\x03F5"
+    ,"eqcirc" * "\x2256"
+    ,"eqcolon" * "\x2255"
+    ,"eqsim" * "\x2242"
+    ,"eqslantgtr" * "\x2A96"
+    ,"eqslantless" * "\x2A95"
+    ,"Equal" * "\x2A75"
+    ,"equals" * "\x003D"
+    ,"EqualTilde" * "\x2242"
+    ,"equest" * "\x225F"
+    ,"Equilibrium" * "\x21CC"
+    ,"equiv" * "\x2261"
+    ,"equivDD" * "\x2A78"
+    ,"eqvparsl" * "\x29E5"
+    ,"erarr" * "\x2971"
+    ,"erDot" * "\x2253"
+    ,"escr" * "\x212F"
+    ,"Escr" * "\x2130"
+    ,"esdot" * "\x2250"
+    ,"esim" * "\x2242"
+    ,"Esim" * "\x2A73"
+    ,"Eta" * "\x0397"
+    ,"eta" * "\x03B7"
+    ,"ETH" * "\x00D0"
+    ,"eth" * "\x00F0"
+    ,"Euml" * "\x00CB"
+    ,"euml" * "\x00EB"
+    ,"euro" * "\x20AC"
+    ,"excl" * "\x0021"
+    ,"exist" * "\x2203"
+    ,"Exists" * "\x2203"
+    ,"expectation" * "\x2130"
+    ,"ExponentialE" * "\x2147"
+    ,"exponentiale" * "\x2147"
+    ,"fallingdotseq" * "\x2252"
+    ,"Fcy" * "\x0424"
+    ,"fcy" * "\x0444"
+    ,"female" * "\x2640"
+    ,"ffilig" * "\xFB03"
+    ,"fflig" * "\xFB00"
+    ,"ffllig" * "\xFB04"
+    ,"Ffr" * "\xD835\xDD09"
+    ,"ffr" * "\xD835\xDD23"
+    ,"filig" * "\xFB01"
+    ,"FilledSmallSquare" * "\x25FC"
+    ,"FilledVerySmallSquare" * "\x25AA"
+    ,"fjlig" * "\x0066\x006A"
+    ,"flat" * "\x266D"
+    ,"fllig" * "\xFB02"
+    ,"fltns" * "\x25B1"
+    ,"fnof" * "\x0192"
+    ,"Fopf" * "\xD835\xDD3D"
+    ,"fopf" * "\xD835\xDD57"
+    ,"ForAll" * "\x2200"
+    ,"forall" * "\x2200"
+    ,"fork" * "\x22D4"
+    ,"forkv" * "\x2AD9"
+    ,"Fouriertrf" * "\x2131"
+    ,"fpartint" * "\x2A0D"
+    ,"frac12" * "\x00BD"
+    ,"frac13" * "\x2153"
+    ,"frac14" * "\x00BC"
+    ,"frac15" * "\x2155"
+    ,"frac16" * "\x2159"
+    ,"frac18" * "\x215B"
+    ,"frac23" * "\x2154"
+    ,"frac25" * "\x2156"
+    ,"frac34" * "\x00BE"
+    ,"frac35" * "\x2157"
+    ,"frac38" * "\x215C"
+    ,"frac45" * "\x2158"
+    ,"frac56" * "\x215A"
+    ,"frac58" * "\x215D"
+    ,"frac78" * "\x215E"
+    ,"frasl" * "\x2044"
+    ,"frown" * "\x2322"
+    ,"Fscr" * "\x2131"
+    ,"fscr" * "\xD835\xDCBB"
+    ,"gacute" * "\x01F5"
+    ,"Gamma" * "\x0393"
+    ,"gamma" * "\x03B3"
+    ,"Gammad" * "\x03DC"
+    ,"gammad" * "\x03DD"
+    ,"gap" * "\x2A86"
+    ,"Gbreve" * "\x011E"
+    ,"gbreve" * "\x011F"
+    ,"Gcedil" * "\x0122"
+    ,"Gcirc" * "\x011C"
+    ,"gcirc" * "\x011D"
+    ,"Gcy" * "\x0413"
+    ,"gcy" * "\x0433"
+    ,"Gdot" * "\x0120"
+    ,"gdot" * "\x0121"
+    ,"ge" * "\x2265"
+    ,"gE" * "\x2267"
+    ,"gel" * "\x22DB"
+    ,"gEl" * "\x2A8C"
+    ,"geq" * "\x2265"
+    ,"geqq" * "\x2267"
+    ,"geqslant" * "\x2A7E"
+    ,"ges" * "\x2A7E"
+    ,"gescc" * "\x2AA9"
+    ,"gesdot" * "\x2A80"
+    ,"gesdoto" * "\x2A82"
+    ,"gesdotol" * "\x2A84"
+    ,"gesl" * "\x22DB\xFE00"
+    ,"gesles" * "\x2A94"
+    ,"Gfr" * "\xD835\xDD0A"
+    ,"gfr" * "\xD835\xDD24"
+    ,"gg" * "\x226B"
+    ,"Gg" * "\x22D9"
+    ,"ggg" * "\x22D9"
+    ,"gimel" * "\x2137"
+    ,"GJcy" * "\x0403"
+    ,"gjcy" * "\x0453"
+    ,"gl" * "\x2277"
+    ,"gla" * "\x2AA5"
+    ,"glE" * "\x2A92"
+    ,"glj" * "\x2AA4"
+    ,"gnap" * "\x2A8A"
+    ,"gnapprox" * "\x2A8A"
+    ,"gnE" * "\x2269"
+    ,"gne" * "\x2A88"
+    ,"gneq" * "\x2A88"
+    ,"gneqq" * "\x2269"
+    ,"gnsim" * "\x22E7"
+    ,"Gopf" * "\xD835\xDD3E"
+    ,"gopf" * "\xD835\xDD58"
+    ,"grave" * "\x0060"
+    ,"GreaterEqual" * "\x2265"
+    ,"GreaterEqualLess" * "\x22DB"
+    ,"GreaterFullEqual" * "\x2267"
+    ,"GreaterGreater" * "\x2AA2"
+    ,"GreaterLess" * "\x2277"
+    ,"GreaterSlantEqual" * "\x2A7E"
+    ,"GreaterTilde" * "\x2273"
+    ,"gscr" * "\x210A"
+    ,"Gscr" * "\xD835\xDCA2"
+    ,"gsim" * "\x2273"
+    ,"gsime" * "\x2A8E"
+    ,"gsiml" * "\x2A90"
+    ,"GT" * "\x003E"
+    ,"gt" * "\x003E"
+    ,"Gt" * "\x226B"
+    ,"gtcc" * "\x2AA7"
+    ,"gtcir" * "\x2A7A"
+    ,"gtdot" * "\x22D7"
+    ,"gtlPar" * "\x2995"
+    ,"gtquest" * "\x2A7C"
+    ,"gtrapprox" * "\x2A86"
+    ,"gtrarr" * "\x2978"
+    ,"gtrdot" * "\x22D7"
+    ,"gtreqless" * "\x22DB"
+    ,"gtreqqless" * "\x2A8C"
+    ,"gtrless" * "\x2277"
+    ,"gtrsim" * "\x2273"
+    ,"gvertneqq" * "\x2269\xFE00"
+    ,"gvnE" * "\x2269\xFE00"
+    ,"Hacek" * "\x02C7"
+    ,"hairsp" * "\x200A"
+    ,"half" * "\x00BD"
+    ,"hamilt" * "\x210B"
+    ,"HARDcy" * "\x042A"
+    ,"hardcy" * "\x044A"
+    ,"harr" * "\x2194"
+    ,"hArr" * "\x21D4"
+    ,"harrcir" * "\x2948"
+    ,"harrw" * "\x21AD"
+    ,"Hat" * "\x005E"
+    ,"hbar" * "\x210F"
+    ,"Hcirc" * "\x0124"
+    ,"hcirc" * "\x0125"
+    ,"hearts" * "\x2665"
+    ,"heartsuit" * "\x2665"
+    ,"hellip" * "\x2026"
+    ,"hercon" * "\x22B9"
+    ,"Hfr" * "\x210C"
+    ,"hfr" * "\xD835\xDD25"
+    ,"HilbertSpace" * "\x210B"
+    ,"hksearow" * "\x2925"
+    ,"hkswarow" * "\x2926"
+    ,"hoarr" * "\x21FF"
+    ,"homtht" * "\x223B"
+    ,"hookleftarrow" * "\x21A9"
+    ,"hookrightarrow" * "\x21AA"
+    ,"Hopf" * "\x210D"
+    ,"hopf" * "\xD835\xDD59"
+    ,"horbar" * "\x2015"
+    ,"HorizontalLine" * "\x2500"
+    ,"Hscr" * "\x210B"
+    ,"hscr" * "\xD835\xDCBD"
+    ,"hslash" * "\x210F"
+    ,"Hstrok" * "\x0126"
+    ,"hstrok" * "\x0127"
+    ,"HumpDownHump" * "\x224E"
+    ,"HumpEqual" * "\x224F"
+    ,"hybull" * "\x2043"
+    ,"hyphen" * "\x2010"
+    ,"Iacute" * "\x00CD"
+    ,"iacute" * "\x00ED"
+    ,"ic" * "\x2063"
+    ,"Icirc" * "\x00CE"
+    ,"icirc" * "\x00EE"
+    ,"Icy" * "\x0418"
+    ,"icy" * "\x0438"
+    ,"Idot" * "\x0130"
+    ,"IEcy" * "\x0415"
+    ,"iecy" * "\x0435"
+    ,"iexcl" * "\x00A1"
+    ,"iff" * "\x21D4"
+    ,"Ifr" * "\x2111"
+    ,"ifr" * "\xD835\xDD26"
+    ,"Igrave" * "\x00CC"
+    ,"igrave" * "\x00EC"
+    ,"ii" * "\x2148"
+    ,"iiiint" * "\x2A0C"
+    ,"iiint" * "\x222D"
+    ,"iinfin" * "\x29DC"
+    ,"iiota" * "\x2129"
+    ,"IJlig" * "\x0132"
+    ,"ijlig" * "\x0133"
+    ,"Im" * "\x2111"
+    ,"Imacr" * "\x012A"
+    ,"imacr" * "\x012B"
+    ,"image" * "\x2111"
+    ,"ImaginaryI" * "\x2148"
+    ,"imagline" * "\x2110"
+    ,"imagpart" * "\x2111"
+    ,"imath" * "\x0131"
+    ,"imof" * "\x22B7"
+    ,"imped" * "\x01B5"
+    ,"Implies" * "\x21D2"
+    ,"in" * "\x2208"
+    ,"incare" * "\x2105"
+    ,"infin" * "\x221E"
+    ,"infintie" * "\x29DD"
+    ,"inodot" * "\x0131"
+    ,"int" * "\x222B"
+    ,"Int" * "\x222C"
+    ,"intcal" * "\x22BA"
+    ,"integers" * "\x2124"
+    ,"Integral" * "\x222B"
+    ,"intercal" * "\x22BA"
+    ,"Intersection" * "\x22C2"
+    ,"intlarhk" * "\x2A17"
+    ,"intprod" * "\x2A3C"
+    ,"InvisibleComma" * "\x2063"
+    ,"InvisibleTimes" * "\x2062"
+    ,"IOcy" * "\x0401"
+    ,"iocy" * "\x0451"
+    ,"Iogon" * "\x012E"
+    ,"iogon" * "\x012F"
+    ,"Iopf" * "\xD835\xDD40"
+    ,"iopf" * "\xD835\xDD5A"
+    ,"Iota" * "\x0399"
+    ,"iota" * "\x03B9"
+    ,"iprod" * "\x2A3C"
+    ,"iquest" * "\x00BF"
+    ,"Iscr" * "\x2110"
+    ,"iscr" * "\xD835\xDCBE"
+    ,"isin" * "\x2208"
+    ,"isindot" * "\x22F5"
+    ,"isinE" * "\x22F9"
+    ,"isins" * "\x22F4"
+    ,"isinsv" * "\x22F3"
+    ,"isinv" * "\x2208"
+    ,"it" * "\x2062"
+    ,"Itilde" * "\x0128"
+    ,"itilde" * "\x0129"
+    ,"Iukcy" * "\x0406"
+    ,"iukcy" * "\x0456"
+    ,"Iuml" * "\x00CF"
+    ,"iuml" * "\x00EF"
+    ,"Jcirc" * "\x0134"
+    ,"jcirc" * "\x0135"
+    ,"Jcy" * "\x0419"
+    ,"jcy" * "\x0439"
+    ,"Jfr" * "\xD835\xDD0D"
+    ,"jfr" * "\xD835\xDD27"
+    ,"jmath" * "\x0237"
+    ,"Jopf" * "\xD835\xDD41"
+    ,"jopf" * "\xD835\xDD5B"
+    ,"Jscr" * "\xD835\xDCA5"
+    ,"jscr" * "\xD835\xDCBF"
+    ,"Jsercy" * "\x0408"
+    ,"jsercy" * "\x0458"
+    ,"Jukcy" * "\x0404"
+    ,"jukcy" * "\x0454"
+    ,"Kappa" * "\x039A"
+    ,"kappa" * "\x03BA"
+    ,"kappav" * "\x03F0"
+    ,"Kcedil" * "\x0136"
+    ,"kcedil" * "\x0137"
+    ,"Kcy" * "\x041A"
+    ,"kcy" * "\x043A"
+    ,"Kfr" * "\xD835\xDD0E"
+    ,"kfr" * "\xD835\xDD28"
+    ,"kgreen" * "\x0138"
+    ,"KHcy" * "\x0425"
+    ,"khcy" * "\x0445"
+    ,"KJcy" * "\x040C"
+    ,"kjcy" * "\x045C"
+    ,"Kopf" * "\xD835\xDD42"
+    ,"kopf" * "\xD835\xDD5C"
+    ,"Kscr" * "\xD835\xDCA6"
+    ,"kscr" * "\xD835\xDCC0"
+    ,"lAarr" * "\x21DA"
+    ,"Lacute" * "\x0139"
+    ,"lacute" * "\x013A"
+    ,"laemptyv" * "\x29B4"
+    ,"lagran" * "\x2112"
+    ,"Lambda" * "\x039B"
+    ,"lambda" * "\x03BB"
+    ,"lang" * "\x27E8"
+    ,"Lang" * "\x27EA"
+    ,"langd" * "\x2991"
+    ,"langle" * "\x27E8"
+    ,"lap" * "\x2A85"
+    ,"Laplacetrf" * "\x2112"
+    ,"laquo" * "\x00AB"
+    ,"larr" * "\x2190"
+    ,"Larr" * "\x219E"
+    ,"lArr" * "\x21D0"
+    ,"larrb" * "\x21E4"
+    ,"larrbfs" * "\x291F"
+    ,"larrfs" * "\x291D"
+    ,"larrhk" * "\x21A9"
+    ,"larrlp" * "\x21AB"
+    ,"larrpl" * "\x2939"
+    ,"larrsim" * "\x2973"
+    ,"larrtl" * "\x21A2"
+    ,"lat" * "\x2AAB"
+    ,"latail" * "\x2919"
+    ,"lAtail" * "\x291B"
+    ,"late" * "\x2AAD"
+    ,"lates" * "\x2AAD\xFE00"
+    ,"lbarr" * "\x290C"
+    ,"lBarr" * "\x290E"
+    ,"lbbrk" * "\x2772"
+    ,"lbrace" * "\x007B"
+    ,"lbrack" * "\x005B"
+    ,"lbrke" * "\x298B"
+    ,"lbrksld" * "\x298F"
+    ,"lbrkslu" * "\x298D"
+    ,"Lcaron" * "\x013D"
+    ,"lcaron" * "\x013E"
+    ,"Lcedil" * "\x013B"
+    ,"lcedil" * "\x013C"
+    ,"lceil" * "\x2308"
+    ,"lcub" * "\x007B"
+    ,"Lcy" * "\x041B"
+    ,"lcy" * "\x043B"
+    ,"ldca" * "\x2936"
+    ,"ldquo" * "\x201C"
+    ,"ldquor" * "\x201E"
+    ,"ldrdhar" * "\x2967"
+    ,"ldrushar" * "\x294B"
+    ,"ldsh" * "\x21B2"
+    ,"le" * "\x2264"
+    ,"lE" * "\x2266"
+    ,"LeftAngleBracket" * "\x27E8"
+    ,"LeftArrow" * "\x2190"
+    ,"leftarrow" * "\x2190"
+    ,"Leftarrow" * "\x21D0"
+    ,"LeftArrowBar" * "\x21E4"
+    ,"LeftArrowRightArrow" * "\x21C6"
+    ,"leftarrowtail" * "\x21A2"
+    ,"LeftCeiling" * "\x2308"
+    ,"LeftDoubleBracket" * "\x27E6"
+    ,"LeftDownTeeVector" * "\x2961"
+    ,"LeftDownVector" * "\x21C3"
+    ,"LeftDownVectorBar" * "\x2959"
+    ,"LeftFloor" * "\x230A"
+    ,"leftharpoondown" * "\x21BD"
+    ,"leftharpoonup" * "\x21BC"
+    ,"leftleftarrows" * "\x21C7"
+    ,"LeftRightArrow" * "\x2194"
+    ,"leftrightarrow" * "\x2194"
+    ,"Leftrightarrow" * "\x21D4"
+    ,"leftrightarrows" * "\x21C6"
+    ,"leftrightharpoons" * "\x21CB"
+    ,"leftrightsquigarrow" * "\x21AD"
+    ,"LeftRightVector" * "\x294E"
+    ,"LeftTee" * "\x22A3"
+    ,"LeftTeeArrow" * "\x21A4"
+    ,"LeftTeeVector" * "\x295A"
+    ,"leftthreetimes" * "\x22CB"
+    ,"LeftTriangle" * "\x22B2"
+    ,"LeftTriangleBar" * "\x29CF"
+    ,"LeftTriangleEqual" * "\x22B4"
+    ,"LeftUpDownVector" * "\x2951"
+    ,"LeftUpTeeVector" * "\x2960"
+    ,"LeftUpVector" * "\x21BF"
+    ,"LeftUpVectorBar" * "\x2958"
+    ,"LeftVector" * "\x21BC"
+    ,"LeftVectorBar" * "\x2952"
+    ,"leg" * "\x22DA"
+    ,"lEg" * "\x2A8B"
+    ,"leq" * "\x2264"
+    ,"leqq" * "\x2266"
+    ,"leqslant" * "\x2A7D"
+    ,"les" * "\x2A7D"
+    ,"lescc" * "\x2AA8"
+    ,"lesdot" * "\x2A7F"
+    ,"lesdoto" * "\x2A81"
+    ,"lesdotor" * "\x2A83"
+    ,"lesg" * "\x22DA\xFE00"
+    ,"lesges" * "\x2A93"
+    ,"lessapprox" * "\x2A85"
+    ,"lessdot" * "\x22D6"
+    ,"lesseqgtr" * "\x22DA"
+    ,"lesseqqgtr" * "\x2A8B"
+    ,"LessEqualGreater" * "\x22DA"
+    ,"LessFullEqual" * "\x2266"
+    ,"LessGreater" * "\x2276"
+    ,"lessgtr" * "\x2276"
+    ,"LessLess" * "\x2AA1"
+    ,"lesssim" * "\x2272"
+    ,"LessSlantEqual" * "\x2A7D"
+    ,"LessTilde" * "\x2272"
+    ,"lfisht" * "\x297C"
+    ,"lfloor" * "\x230A"
+    ,"Lfr" * "\xD835\xDD0F"
+    ,"lfr" * "\xD835\xDD29"
+    ,"lg" * "\x2276"
+    ,"lgE" * "\x2A91"
+    ,"lHar" * "\x2962"
+    ,"lhard" * "\x21BD"
+    ,"lharu" * "\x21BC"
+    ,"lharul" * "\x296A"
+    ,"lhblk" * "\x2584"
+    ,"LJcy" * "\x0409"
+    ,"ljcy" * "\x0459"
+    ,"ll" * "\x226A"
+    ,"Ll" * "\x22D8"
+    ,"llarr" * "\x21C7"
+    ,"llcorner" * "\x231E"
+    ,"Lleftarrow" * "\x21DA"
+    ,"llhard" * "\x296B"
+    ,"lltri" * "\x25FA"
+    ,"Lmidot" * "\x013F"
+    ,"lmidot" * "\x0140"
+    ,"lmoust" * "\x23B0"
+    ,"lmoustache" * "\x23B0"
+    ,"lnap" * "\x2A89"
+    ,"lnapprox" * "\x2A89"
+    ,"lnE" * "\x2268"
+    ,"lne" * "\x2A87"
+    ,"lneq" * "\x2A87"
+    ,"lneqq" * "\x2268"
+    ,"lnsim" * "\x22E6"
+    ,"loang" * "\x27EC"
+    ,"loarr" * "\x21FD"
+    ,"lobrk" * "\x27E6"
+    ,"LongLeftArrow" * "\x27F5"
+    ,"longleftarrow" * "\x27F5"
+    ,"Longleftarrow" * "\x27F8"
+    ,"LongLeftRightArrow" * "\x27F7"
+    ,"longleftrightarrow" * "\x27F7"
+    ,"Longleftrightarrow" * "\x27FA"
+    ,"longmapsto" * "\x27FC"
+    ,"LongRightArrow" * "\x27F6"
+    ,"longrightarrow" * "\x27F6"
+    ,"Longrightarrow" * "\x27F9"
+    ,"looparrowleft" * "\x21AB"
+    ,"looparrowright" * "\x21AC"
+    ,"lopar" * "\x2985"
+    ,"Lopf" * "\xD835\xDD43"
+    ,"lopf" * "\xD835\xDD5D"
+    ,"loplus" * "\x2A2D"
+    ,"lotimes" * "\x2A34"
+    ,"lowast" * "\x2217"
+    ,"lowbar" * "\x005F"
+    ,"LowerLeftArrow" * "\x2199"
+    ,"LowerRightArrow" * "\x2198"
+    ,"loz" * "\x25CA"
+    ,"lozenge" * "\x25CA"
+    ,"lozf" * "\x29EB"
+    ,"lpar" * "\x0028"
+    ,"lparlt" * "\x2993"
+    ,"lrarr" * "\x21C6"
+    ,"lrcorner" * "\x231F"
+    ,"lrhar" * "\x21CB"
+    ,"lrhard" * "\x296D"
+    ,"lrm" * "\x200E"
+    ,"lrtri" * "\x22BF"
+    ,"lsaquo" * "\x2039"
+    ,"Lscr" * "\x2112"
+    ,"lscr" * "\xD835\xDCC1"
+    ,"Lsh" * "\x21B0"
+    ,"lsh" * "\x21B0"
+    ,"lsim" * "\x2272"
+    ,"lsime" * "\x2A8D"
+    ,"lsimg" * "\x2A8F"
+    ,"lsqb" * "\x005B"
+    ,"lsquo" * "\x2018"
+    ,"lsquor" * "\x201A"
+    ,"Lstrok" * "\x0141"
+    ,"lstrok" * "\x0142"
+    ,"LT" * "\x003C"
+    ,"lt" * "\x003C"
+    ,"Lt" * "\x226A"
+    ,"ltcc" * "\x2AA6"
+    ,"ltcir" * "\x2A79"
+    ,"ltdot" * "\x22D6"
+    ,"lthree" * "\x22CB"
+    ,"ltimes" * "\x22C9"
+    ,"ltlarr" * "\x2976"
+    ,"ltquest" * "\x2A7B"
+    ,"ltri" * "\x25C3"
+    ,"ltrie" * "\x22B4"
+    ,"ltrif" * "\x25C2"
+    ,"ltrPar" * "\x2996"
+    ,"lurdshar" * "\x294A"
+    ,"luruhar" * "\x2966"
+    ,"lvertneqq" * "\x2268\xFE00"
+    ,"lvnE" * "\x2268\xFE00"
+    ,"macr" * "\x00AF"
+    ,"male" * "\x2642"
+    ,"malt" * "\x2720"
+    ,"maltese" * "\x2720"
+    ,"map" * "\x21A6"
+    ,"Map" * "\x2905"
+    ,"mapsto" * "\x21A6"
+    ,"mapstodown" * "\x21A7"
+    ,"mapstoleft" * "\x21A4"
+    ,"mapstoup" * "\x21A5"
+    ,"marker" * "\x25AE"
+    ,"mcomma" * "\x2A29"
+    ,"Mcy" * "\x041C"
+    ,"mcy" * "\x043C"
+    ,"mdash" * "\x2014"
+    ,"mDDot" * "\x223A"
+    ,"measuredangle" * "\x2221"
+    ,"MediumSpace" * "\x205F"
+    ,"Mellintrf" * "\x2133"
+    ,"Mfr" * "\xD835\xDD10"
+    ,"mfr" * "\xD835\xDD2A"
+    ,"mho" * "\x2127"
+    ,"micro" * "\x00B5"
+    ,"mid" * "\x2223"
+    ,"midast" * "\x002A"
+    ,"midcir" * "\x2AF0"
+    ,"middot" * "\x00B7"
+    ,"minus" * "\x2212"
+    ,"minusb" * "\x229F"
+    ,"minusd" * "\x2238"
+    ,"minusdu" * "\x2A2A"
+    ,"MinusPlus" * "\x2213"
+    ,"mlcp" * "\x2ADB"
+    ,"mldr" * "\x2026"
+    ,"mnplus" * "\x2213"
+    ,"models" * "\x22A7"
+    ,"Mopf" * "\xD835\xDD44"
+    ,"mopf" * "\xD835\xDD5E"
+    ,"mp" * "\x2213"
+    ,"Mscr" * "\x2133"
+    ,"mscr" * "\xD835\xDCC2"
+    ,"mstpos" * "\x223E"
+    ,"Mu" * "\x039C"
+    ,"mu" * "\x03BC"
+    ,"multimap" * "\x22B8"
+    ,"mumap" * "\x22B8"
+    ,"nabla" * "\x2207"
+    ,"Nacute" * "\x0143"
+    ,"nacute" * "\x0144"
+    ,"nang" * "\x2220\x20D2"
+    ,"nap" * "\x2249"
+    ,"napE" * "\x2A70\x0338"
+    ,"napid" * "\x224B\x0338"
+    ,"napos" * "\x0149"
+    ,"napprox" * "\x2249"
+    ,"natur" * "\x266E"
+    ,"natural" * "\x266E"
+    ,"naturals" * "\x2115"
+    ,"nbsp" * "\x00A0"
+    ,"nbump" * "\x224E\x0338"
+    ,"nbumpe" * "\x224F\x0338"
+    ,"ncap" * "\x2A43"
+    ,"Ncaron" * "\x0147"
+    ,"ncaron" * "\x0148"
+    ,"Ncedil" * "\x0145"
+    ,"ncedil" * "\x0146"
+    ,"ncong" * "\x2247"
+    ,"ncongdot" * "\x2A6D\x0338"
+    ,"ncup" * "\x2A42"
+    ,"Ncy" * "\x041D"
+    ,"ncy" * "\x043D"
+    ,"ndash" * "\x2013"
+    ,"ne" * "\x2260"
+    ,"nearhk" * "\x2924"
+    ,"nearr" * "\x2197"
+    ,"neArr" * "\x21D7"
+    ,"nearrow" * "\x2197"
+    ,"nedot" * "\x2250\x0338"
+    ,"NegativeMediumSpace" * "\x200B"
+    ,"NegativeThickSpace" * "\x200B"
+    ,"NegativeThinSpace" * "\x200B"
+    ,"NegativeVeryThinSpace" * "\x200B"
+    ,"nequiv" * "\x2262"
+    ,"nesear" * "\x2928"
+    ,"nesim" * "\x2242\x0338"
+    ,"NestedGreaterGreater" * "\x226B"
+    ,"NestedLessLess" * "\x226A"
+    ,"NewLine" * "\x000A"
+    ,"nexist" * "\x2204"
+    ,"nexists" * "\x2204"
+    ,"Nfr" * "\xD835\xDD11"
+    ,"nfr" * "\xD835\xDD2B"
+    ,"ngE" * "\x2267\x0338"
+    ,"nge" * "\x2271"
+    ,"ngeq" * "\x2271"
+    ,"ngeqq" * "\x2267\x0338"
+    ,"ngeqslant" * "\x2A7E\x0338"
+    ,"nges" * "\x2A7E\x0338"
+    ,"nGg" * "\x22D9\x0338"
+    ,"ngsim" * "\x2275"
+    ,"nGt" * "\x226B\x20D2"
+    ,"ngt" * "\x226F"
+    ,"ngtr" * "\x226F"
+    ,"nGtv" * "\x226B\x0338"
+    ,"nharr" * "\x21AE"
+    ,"nhArr" * "\x21CE"
+    ,"nhpar" * "\x2AF2"
+    ,"ni" * "\x220B"
+    ,"nis" * "\x22FC"
+    ,"nisd" * "\x22FA"
+    ,"niv" * "\x220B"
+    ,"NJcy" * "\x040A"
+    ,"njcy" * "\x045A"
+    ,"nlarr" * "\x219A"
+    ,"nlArr" * "\x21CD"
+    ,"nldr" * "\x2025"
+    ,"nlE" * "\x2266\x0338"
+    ,"nle" * "\x2270"
+    ,"nleftarrow" * "\x219A"
+    ,"nLeftarrow" * "\x21CD"
+    ,"nleftrightarrow" * "\x21AE"
+    ,"nLeftrightarrow" * "\x21CE"
+    ,"nleq" * "\x2270"
+    ,"nleqq" * "\x2266\x0338"
+    ,"nleqslant" * "\x2A7D\x0338"
+    ,"nles" * "\x2A7D\x0338"
+    ,"nless" * "\x226E"
+    ,"nLl" * "\x22D8\x0338"
+    ,"nlsim" * "\x2274"
+    ,"nLt" * "\x226A\x20D2"
+    ,"nlt" * "\x226E"
+    ,"nltri" * "\x22EA"
+    ,"nltrie" * "\x22EC"
+    ,"nLtv" * "\x226A\x0338"
+    ,"nmid" * "\x2224"
+    ,"NoBreak" * "\x2060"
+    ,"NonBreakingSpace" * "\x00A0"
+    ,"Nopf" * "\x2115"
+    ,"nopf" * "\xD835\xDD5F"
+    ,"not" * "\x00AC"
+    ,"Not" * "\x2AEC"
+    ,"NotCongruent" * "\x2262"
+    ,"NotCupCap" * "\x226D"
+    ,"NotDoubleVerticalBar" * "\x2226"
+    ,"NotElement" * "\x2209"
+    ,"NotEqual" * "\x2260"
+    ,"NotEqualTilde" * "\x2242\x0338"
+    ,"NotExists" * "\x2204"
+    ,"NotGreater" * "\x226F"
+    ,"NotGreaterEqual" * "\x2271"
+    ,"NotGreaterFullEqual" * "\x2267\x0338"
+    ,"NotGreaterGreater" * "\x226B\x0338"
+    ,"NotGreaterLess" * "\x2279"
+    ,"NotGreaterSlantEqual" * "\x2A7E\x0338"
+    ,"NotGreaterTilde" * "\x2275"
+    ,"NotHumpDownHump" * "\x224E\x0338"
+    ,"NotHumpEqual" * "\x224F\x0338"
+    ,"notin" * "\x2209"
+    ,"notindot" * "\x22F5\x0338"
+    ,"notinE" * "\x22F9\x0338"
+    ,"notinva" * "\x2209"
+    ,"notinvb" * "\x22F7"
+    ,"notinvc" * "\x22F6"
+    ,"NotLeftTriangle" * "\x22EA"
+    ,"NotLeftTriangleBar" * "\x29CF\x0338"
+    ,"NotLeftTriangleEqual" * "\x22EC"
+    ,"NotLess" * "\x226E"
+    ,"NotLessEqual" * "\x2270"
+    ,"NotLessGreater" * "\x2278"
+    ,"NotLessLess" * "\x226A\x0338"
+    ,"NotLessSlantEqual" * "\x2A7D\x0338"
+    ,"NotLessTilde" * "\x2274"
+    ,"NotNestedGreaterGreater" * "\x2AA2\x0338"
+    ,"NotNestedLessLess" * "\x2AA1\x0338"
+    ,"notni" * "\x220C"
+    ,"notniva" * "\x220C"
+    ,"notnivb" * "\x22FE"
+    ,"notnivc" * "\x22FD"
+    ,"NotPrecedes" * "\x2280"
+    ,"NotPrecedesEqual" * "\x2AAF\x0338"
+    ,"NotPrecedesSlantEqual" * "\x22E0"
+    ,"NotReverseElement" * "\x220C"
+    ,"NotRightTriangle" * "\x22EB"
+    ,"NotRightTriangleBar" * "\x29D0\x0338"
+    ,"NotRightTriangleEqual" * "\x22ED"
+    ,"NotSquareSubset" * "\x228F\x0338"
+    ,"NotSquareSubsetEqual" * "\x22E2"
+    ,"NotSquareSuperset" * "\x2290\x0338"
+    ,"NotSquareSupersetEqual" * "\x22E3"
+    ,"NotSubset" * "\x2282\x20D2"
+    ,"NotSubsetEqual" * "\x2288"
+    ,"NotSucceeds" * "\x2281"
+    ,"NotSucceedsEqual" * "\x2AB0\x0338"
+    ,"NotSucceedsSlantEqual" * "\x22E1"
+    ,"NotSucceedsTilde" * "\x227F\x0338"
+    ,"NotSuperset" * "\x2283\x20D2"
+    ,"NotSupersetEqual" * "\x2289"
+    ,"NotTilde" * "\x2241"
+    ,"NotTildeEqual" * "\x2244"
+    ,"NotTildeFullEqual" * "\x2247"
+    ,"NotTildeTilde" * "\x2249"
+    ,"NotVerticalBar" * "\x2224"
+    ,"npar" * "\x2226"
+    ,"nparallel" * "\x2226"
+    ,"nparsl" * "\x2AFD\x20E5"
+    ,"npart" * "\x2202\x0338"
+    ,"npolint" * "\x2A14"
+    ,"npr" * "\x2280"
+    ,"nprcue" * "\x22E0"
+    ,"npre" * "\x2AAF\x0338"
+    ,"nprec" * "\x2280"
+    ,"npreceq" * "\x2AAF\x0338"
+    ,"nrarr" * "\x219B"
+    ,"nrArr" * "\x21CF"
+    ,"nrarrc" * "\x2933\x0338"
+    ,"nrarrw" * "\x219D\x0338"
+    ,"nrightarrow" * "\x219B"
+    ,"nRightarrow" * "\x21CF"
+    ,"nrtri" * "\x22EB"
+    ,"nrtrie" * "\x22ED"
+    ,"nsc" * "\x2281"
+    ,"nsccue" * "\x22E1"
+    ,"nsce" * "\x2AB0\x0338"
+    ,"Nscr" * "\xD835\xDCA9"
+    ,"nscr" * "\xD835\xDCC3"
+    ,"nshortmid" * "\x2224"
+    ,"nshortparallel" * "\x2226"
+    ,"nsim" * "\x2241"
+    ,"nsime" * "\x2244"
+    ,"nsimeq" * "\x2244"
+    ,"nsmid" * "\x2224"
+    ,"nspar" * "\x2226"
+    ,"nsqsube" * "\x22E2"
+    ,"nsqsupe" * "\x22E3"
+    ,"nsub" * "\x2284"
+    ,"nsube" * "\x2288"
+    ,"nsubE" * "\x2AC5\x0338"
+    ,"nsubset" * "\x2282\x20D2"
+    ,"nsubseteq" * "\x2288"
+    ,"nsubseteqq" * "\x2AC5\x0338"
+    ,"nsucc" * "\x2281"
+    ,"nsucceq" * "\x2AB0\x0338"
+    ,"nsup" * "\x2285"
+    ,"nsupe" * "\x2289"
+    ,"nsupE" * "\x2AC6\x0338"
+    ,"nsupset" * "\x2283\x20D2"
+    ,"nsupseteq" * "\x2289"
+    ,"nsupseteqq" * "\x2AC6\x0338"
+    ,"ntgl" * "\x2279"
+    ,"Ntilde" * "\x00D1"
+    ,"ntilde" * "\x00F1"
+    ,"ntlg" * "\x2278"
+    ,"ntriangleleft" * "\x22EA"
+    ,"ntrianglelefteq" * "\x22EC"
+    ,"ntriangleright" * "\x22EB"
+    ,"ntrianglerighteq" * "\x22ED"
+    ,"Nu" * "\x039D"
+    ,"nu" * "\x03BD"
+    ,"num" * "\x0023"
+    ,"numero" * "\x2116"
+    ,"numsp" * "\x2007"
+    ,"nvap" * "\x224D\x20D2"
+    ,"nvdash" * "\x22AC"
+    ,"nvDash" * "\x22AD"
+    ,"nVdash" * "\x22AE"
+    ,"nVDash" * "\x22AF"
+    ,"nvge" * "\x2265\x20D2"
+    ,"nvgt" * "\x003E\x20D2"
+    ,"nvHarr" * "\x2904"
+    ,"nvinfin" * "\x29DE"
+    ,"nvlArr" * "\x2902"
+    ,"nvle" * "\x2264\x20D2"
+    ,"nvlt" * "\x003C\x20D2"
+    ,"nvltrie" * "\x22B4\x20D2"
+    ,"nvrArr" * "\x2903"
+    ,"nvrtrie" * "\x22B5\x20D2"
+    ,"nvsim" * "\x223C\x20D2"
+    ,"nwarhk" * "\x2923"
+    ,"nwarr" * "\x2196"
+    ,"nwArr" * "\x21D6"
+    ,"nwarrow" * "\x2196"
+    ,"nwnear" * "\x2927"
+    ,"Oacute" * "\x00D3"
+    ,"oacute" * "\x00F3"
+    ,"oast" * "\x229B"
+    ,"ocir" * "\x229A"
+    ,"Ocirc" * "\x00D4"
+    ,"ocirc" * "\x00F4"
+    ,"Ocy" * "\x041E"
+    ,"ocy" * "\x043E"
+    ,"odash" * "\x229D"
+    ,"Odblac" * "\x0150"
+    ,"odblac" * "\x0151"
+    ,"odiv" * "\x2A38"
+    ,"odot" * "\x2299"
+    ,"odsold" * "\x29BC"
+    ,"OElig" * "\x0152"
+    ,"oelig" * "\x0153"
+    ,"ofcir" * "\x29BF"
+    ,"Ofr" * "\xD835\xDD12"
+    ,"ofr" * "\xD835\xDD2C"
+    ,"ogon" * "\x02DB"
+    ,"Ograve" * "\x00D2"
+    ,"ograve" * "\x00F2"
+    ,"ogt" * "\x29C1"
+    ,"ohbar" * "\x29B5"
+    ,"ohm" * "\x03A9"
+    ,"oint" * "\x222E"
+    ,"olarr" * "\x21BA"
+    ,"olcir" * "\x29BE"
+    ,"olcross" * "\x29BB"
+    ,"oline" * "\x203E"
+    ,"olt" * "\x29C0"
+    ,"Omacr" * "\x014C"
+    ,"omacr" * "\x014D"
+    ,"Omega" * "\x03A9"
+    ,"omega" * "\x03C9"
+    ,"Omicron" * "\x039F"
+    ,"omicron" * "\x03BF"
+    ,"omid" * "\x29B6"
+    ,"ominus" * "\x2296"
+    ,"Oopf" * "\xD835\xDD46"
+    ,"oopf" * "\xD835\xDD60"
+    ,"opar" * "\x29B7"
+    ,"OpenCurlyDoubleQuote" * "\x201C"
+    ,"OpenCurlyQuote" * "\x2018"
+    ,"operp" * "\x29B9"
+    ,"oplus" * "\x2295"
+    ,"or" * "\x2228"
+    ,"Or" * "\x2A54"
+    ,"orarr" * "\x21BB"
+    ,"ord" * "\x2A5D"
+    ,"order" * "\x2134"
+    ,"orderof" * "\x2134"
+    ,"ordf" * "\x00AA"
+    ,"ordm" * "\x00BA"
+    ,"origof" * "\x22B6"
+    ,"oror" * "\x2A56"
+    ,"orslope" * "\x2A57"
+    ,"orv" * "\x2A5B"
+    ,"oS" * "\x24C8"
+    ,"oscr" * "\x2134"
+    ,"Oscr" * "\xD835\xDCAA"
+    ,"Oslash" * "\x00D8"
+    ,"oslash" * "\x00F8"
+    ,"osol" * "\x2298"
+    ,"Otilde" * "\x00D5"
+    ,"otilde" * "\x00F5"
+    ,"otimes" * "\x2297"
+    ,"Otimes" * "\x2A37"
+    ,"otimesas" * "\x2A36"
+    ,"Ouml" * "\x00D6"
+    ,"ouml" * "\x00F6"
+    ,"ovbar" * "\x233D"
+    ,"OverBar" * "\x203E"
+    ,"OverBrace" * "\x23DE"
+    ,"OverBracket" * "\x23B4"
+    ,"OverParenthesis" * "\x23DC"
+    ,"par" * "\x2225"
+    ,"para" * "\x00B6"
+    ,"parallel" * "\x2225"
+    ,"parsim" * "\x2AF3"
+    ,"parsl" * "\x2AFD"
+    ,"part" * "\x2202"
+    ,"PartialD" * "\x2202"
+    ,"Pcy" * "\x041F"
+    ,"pcy" * "\x043F"
+    ,"percnt" * "\x0025"
+    ,"period" * "\x002E"
+    ,"permil" * "\x2030"
+    ,"perp" * "\x22A5"
+    ,"pertenk" * "\x2031"
+    ,"Pfr" * "\xD835\xDD13"
+    ,"pfr" * "\xD835\xDD2D"
+    ,"Phi" * "\x03A6"
+    ,"phi" * "\x03C6"
+    ,"phiv" * "\x03D5"
+    ,"phmmat" * "\x2133"
+    ,"phone" * "\x260E"
+    ,"Pi" * "\x03A0"
+    ,"pi" * "\x03C0"
+    ,"pitchfork" * "\x22D4"
+    ,"piv" * "\x03D6"
+    ,"planck" * "\x210F"
+    ,"planckh" * "\x210E"
+    ,"plankv" * "\x210F"
+    ,"plus" * "\x002B"
+    ,"plusacir" * "\x2A23"
+    ,"plusb" * "\x229E"
+    ,"pluscir" * "\x2A22"
+    ,"plusdo" * "\x2214"
+    ,"plusdu" * "\x2A25"
+    ,"pluse" * "\x2A72"
+    ,"PlusMinus" * "\x00B1"
+    ,"plusmn" * "\x00B1"
+    ,"plussim" * "\x2A26"
+    ,"plustwo" * "\x2A27"
+    ,"pm" * "\x00B1"
+    ,"Poincareplane" * "\x210C"
+    ,"pointint" * "\x2A15"
+    ,"Popf" * "\x2119"
+    ,"popf" * "\xD835\xDD61"
+    ,"pound" * "\x00A3"
+    ,"pr" * "\x227A"
+    ,"Pr" * "\x2ABB"
+    ,"prap" * "\x2AB7"
+    ,"prcue" * "\x227C"
+    ,"pre" * "\x2AAF"
+    ,"prE" * "\x2AB3"
+    ,"prec" * "\x227A"
+    ,"precapprox" * "\x2AB7"
+    ,"preccurlyeq" * "\x227C"
+    ,"Precedes" * "\x227A"
+    ,"PrecedesEqual" * "\x2AAF"
+    ,"PrecedesSlantEqual" * "\x227C"
+    ,"PrecedesTilde" * "\x227E"
+    ,"preceq" * "\x2AAF"
+    ,"precnapprox" * "\x2AB9"
+    ,"precneqq" * "\x2AB5"
+    ,"precnsim" * "\x22E8"
+    ,"precsim" * "\x227E"
+    ,"prime" * "\x2032"
+    ,"Prime" * "\x2033"
+    ,"primes" * "\x2119"
+    ,"prnap" * "\x2AB9"
+    ,"prnE" * "\x2AB5"
+    ,"prnsim" * "\x22E8"
+    ,"prod" * "\x220F"
+    ,"Product" * "\x220F"
+    ,"profalar" * "\x232E"
+    ,"profline" * "\x2312"
+    ,"profsurf" * "\x2313"
+    ,"prop" * "\x221D"
+    ,"Proportion" * "\x2237"
+    ,"Proportional" * "\x221D"
+    ,"propto" * "\x221D"
+    ,"prsim" * "\x227E"
+    ,"prurel" * "\x22B0"
+    ,"Pscr" * "\xD835\xDCAB"
+    ,"pscr" * "\xD835\xDCC5"
+    ,"Psi" * "\x03A8"
+    ,"psi" * "\x03C8"
+    ,"puncsp" * "\x2008"
+    ,"Qfr" * "\xD835\xDD14"
+    ,"qfr" * "\xD835\xDD2E"
+    ,"qint" * "\x2A0C"
+    ,"Qopf" * "\x211A"
+    ,"qopf" * "\xD835\xDD62"
+    ,"qprime" * "\x2057"
+    ,"Qscr" * "\xD835\xDCAC"
+    ,"qscr" * "\xD835\xDCC6"
+    ,"quaternions" * "\x210D"
+    ,"quatint" * "\x2A16"
+    ,"quest" * "\x003F"
+    ,"questeq" * "\x225F"
+    ,"QUOT" * "\x0022"
+    ,"quot" * "\x0022"
+    ,"rAarr" * "\x21DB"
+    ,"race" * "\x223D\x0331"
+    ,"Racute" * "\x0154"
+    ,"racute" * "\x0155"
+    ,"radic" * "\x221A"
+    ,"raemptyv" * "\x29B3"
+    ,"rang" * "\x27E9"
+    ,"Rang" * "\x27EB"
+    ,"rangd" * "\x2992"
+    ,"range" * "\x29A5"
+    ,"rangle" * "\x27E9"
+    ,"raquo" * "\x00BB"
+    ,"rarr" * "\x2192"
+    ,"Rarr" * "\x21A0"
+    ,"rArr" * "\x21D2"
+    ,"rarrap" * "\x2975"
+    ,"rarrb" * "\x21E5"
+    ,"rarrbfs" * "\x2920"
+    ,"rarrc" * "\x2933"
+    ,"rarrfs" * "\x291E"
+    ,"rarrhk" * "\x21AA"
+    ,"rarrlp" * "\x21AC"
+    ,"rarrpl" * "\x2945"
+    ,"rarrsim" * "\x2974"
+    ,"rarrtl" * "\x21A3"
+    ,"Rarrtl" * "\x2916"
+    ,"rarrw" * "\x219D"
+    ,"ratail" * "\x291A"
+    ,"rAtail" * "\x291C"
+    ,"ratio" * "\x2236"
+    ,"rationals" * "\x211A"
+    ,"rbarr" * "\x290D"
+    ,"rBarr" * "\x290F"
+    ,"RBarr" * "\x2910"
+    ,"rbbrk" * "\x2773"
+    ,"rbrace" * "\x007D"
+    ,"rbrack" * "\x005D"
+    ,"rbrke" * "\x298C"
+    ,"rbrksld" * "\x298E"
+    ,"rbrkslu" * "\x2990"
+    ,"Rcaron" * "\x0158"
+    ,"rcaron" * "\x0159"
+    ,"Rcedil" * "\x0156"
+    ,"rcedil" * "\x0157"
+    ,"rceil" * "\x2309"
+    ,"rcub" * "\x007D"
+    ,"Rcy" * "\x0420"
+    ,"rcy" * "\x0440"
+    ,"rdca" * "\x2937"
+    ,"rdldhar" * "\x2969"
+    ,"rdquo" * "\x201D"
+    ,"rdquor" * "\x201D"
+    ,"rdsh" * "\x21B3"
+    ,"Re" * "\x211C"
+    ,"real" * "\x211C"
+    ,"realine" * "\x211B"
+    ,"realpart" * "\x211C"
+    ,"reals" * "\x211D"
+    ,"rect" * "\x25AD"
+    ,"REG" * "\x00AE"
+    ,"reg" * "\x00AE"
+    ,"ReverseElement" * "\x220B"
+    ,"ReverseEquilibrium" * "\x21CB"
+    ,"ReverseUpEquilibrium" * "\x296F"
+    ,"rfisht" * "\x297D"
+    ,"rfloor" * "\x230B"
+    ,"Rfr" * "\x211C"
+    ,"rfr" * "\xD835\xDD2F"
+    ,"rHar" * "\x2964"
+    ,"rhard" * "\x21C1"
+    ,"rharu" * "\x21C0"
+    ,"rharul" * "\x296C"
+    ,"Rho" * "\x03A1"
+    ,"rho" * "\x03C1"
+    ,"rhov" * "\x03F1"
+    ,"RightAngleBracket" * "\x27E9"
+    ,"RightArrow" * "\x2192"
+    ,"rightarrow" * "\x2192"
+    ,"Rightarrow" * "\x21D2"
+    ,"RightArrowBar" * "\x21E5"
+    ,"RightArrowLeftArrow" * "\x21C4"
+    ,"rightarrowtail" * "\x21A3"
+    ,"RightCeiling" * "\x2309"
+    ,"RightDoubleBracket" * "\x27E7"
+    ,"RightDownTeeVector" * "\x295D"
+    ,"RightDownVector" * "\x21C2"
+    ,"RightDownVectorBar" * "\x2955"
+    ,"RightFloor" * "\x230B"
+    ,"rightharpoondown" * "\x21C1"
+    ,"rightharpoonup" * "\x21C0"
+    ,"rightleftarrows" * "\x21C4"
+    ,"rightleftharpoons" * "\x21CC"
+    ,"rightrightarrows" * "\x21C9"
+    ,"rightsquigarrow" * "\x219D"
+    ,"RightTee" * "\x22A2"
+    ,"RightTeeArrow" * "\x21A6"
+    ,"RightTeeVector" * "\x295B"
+    ,"rightthreetimes" * "\x22CC"
+    ,"RightTriangle" * "\x22B3"
+    ,"RightTriangleBar" * "\x29D0"
+    ,"RightTriangleEqual" * "\x22B5"
+    ,"RightUpDownVector" * "\x294F"
+    ,"RightUpTeeVector" * "\x295C"
+    ,"RightUpVector" * "\x21BE"
+    ,"RightUpVectorBar" * "\x2954"
+    ,"RightVector" * "\x21C0"
+    ,"RightVectorBar" * "\x2953"
+    ,"ring" * "\x02DA"
+    ,"risingdotseq" * "\x2253"
+    ,"rlarr" * "\x21C4"
+    ,"rlhar" * "\x21CC"
+    ,"rlm" * "\x200F"
+    ,"rmoust" * "\x23B1"
+    ,"rmoustache" * "\x23B1"
+    ,"rnmid" * "\x2AEE"
+    ,"roang" * "\x27ED"
+    ,"roarr" * "\x21FE"
+    ,"robrk" * "\x27E7"
+    ,"ropar" * "\x2986"
+    ,"Ropf" * "\x211D"
+    ,"ropf" * "\xD835\xDD63"
+    ,"roplus" * "\x2A2E"
+    ,"rotimes" * "\x2A35"
+    ,"RoundImplies" * "\x2970"
+    ,"rpar" * "\x0029"
+    ,"rpargt" * "\x2994"
+    ,"rppolint" * "\x2A12"
+    ,"rrarr" * "\x21C9"
+    ,"Rrightarrow" * "\x21DB"
+    ,"rsaquo" * "\x203A"
+    ,"Rscr" * "\x211B"
+    ,"rscr" * "\xD835\xDCC7"
+    ,"Rsh" * "\x21B1"
+    ,"rsh" * "\x21B1"
+    ,"rsqb" * "\x005D"
+    ,"rsquo" * "\x2019"
+    ,"rsquor" * "\x2019"
+    ,"rthree" * "\x22CC"
+    ,"rtimes" * "\x22CA"
+    ,"rtri" * "\x25B9"
+    ,"rtrie" * "\x22B5"
+    ,"rtrif" * "\x25B8"
+    ,"rtriltri" * "\x29CE"
+    ,"RuleDelayed" * "\x29F4"
+    ,"ruluhar" * "\x2968"
+    ,"rx" * "\x211E"
+    ,"Sacute" * "\x015A"
+    ,"sacute" * "\x015B"
+    ,"sbquo" * "\x201A"
+    ,"sc" * "\x227B"
+    ,"Sc" * "\x2ABC"
+    ,"scap" * "\x2AB8"
+    ,"Scaron" * "\x0160"
+    ,"scaron" * "\x0161"
+    ,"sccue" * "\x227D"
+    ,"sce" * "\x2AB0"
+    ,"scE" * "\x2AB4"
+    ,"Scedil" * "\x015E"
+    ,"scedil" * "\x015F"
+    ,"Scirc" * "\x015C"
+    ,"scirc" * "\x015D"
+    ,"scnap" * "\x2ABA"
+    ,"scnE" * "\x2AB6"
+    ,"scnsim" * "\x22E9"
+    ,"scpolint" * "\x2A13"
+    ,"scsim" * "\x227F"
+    ,"Scy" * "\x0421"
+    ,"scy" * "\x0441"
+    ,"sdot" * "\x22C5"
+    ,"sdotb" * "\x22A1"
+    ,"sdote" * "\x2A66"
+    ,"searhk" * "\x2925"
+    ,"searr" * "\x2198"
+    ,"seArr" * "\x21D8"
+    ,"searrow" * "\x2198"
+    ,"sect" * "\x00A7"
+    ,"semi" * "\x003B"
+    ,"seswar" * "\x2929"
+    ,"setminus" * "\x2216"
+    ,"setmn" * "\x2216"
+    ,"sext" * "\x2736"
+    ,"Sfr" * "\xD835\xDD16"
+    ,"sfr" * "\xD835\xDD30"
+    ,"sfrown" * "\x2322"
+    ,"sharp" * "\x266F"
+    ,"SHCHcy" * "\x0429"
+    ,"shchcy" * "\x0449"
+    ,"SHcy" * "\x0428"
+    ,"shcy" * "\x0448"
+    ,"ShortDownArrow" * "\x2193"
+    ,"ShortLeftArrow" * "\x2190"
+    ,"shortmid" * "\x2223"
+    ,"shortparallel" * "\x2225"
+    ,"ShortRightArrow" * "\x2192"
+    ,"ShortUpArrow" * "\x2191"
+    ,"shy" * "\x00AD"
+    ,"Sigma" * "\x03A3"
+    ,"sigma" * "\x03C3"
+    ,"sigmaf" * "\x03C2"
+    ,"sigmav" * "\x03C2"
+    ,"sim" * "\x223C"
+    ,"simdot" * "\x2A6A"
+    ,"sime" * "\x2243"
+    ,"simeq" * "\x2243"
+    ,"simg" * "\x2A9E"
+    ,"simgE" * "\x2AA0"
+    ,"siml" * "\x2A9D"
+    ,"simlE" * "\x2A9F"
+    ,"simne" * "\x2246"
+    ,"simplus" * "\x2A24"
+    ,"simrarr" * "\x2972"
+    ,"slarr" * "\x2190"
+    ,"SmallCircle" * "\x2218"
+    ,"smallsetminus" * "\x2216"
+    ,"smashp" * "\x2A33"
+    ,"smeparsl" * "\x29E4"
+    ,"smid" * "\x2223"
+    ,"smile" * "\x2323"
+    ,"smt" * "\x2AAA"
+    ,"smte" * "\x2AAC"
+    ,"smtes" * "\x2AAC\xFE00"
+    ,"SOFTcy" * "\x042C"
+    ,"softcy" * "\x044C"
+    ,"sol" * "\x002F"
+    ,"solb" * "\x29C4"
+    ,"solbar" * "\x233F"
+    ,"Sopf" * "\xD835\xDD4A"
+    ,"sopf" * "\xD835\xDD64"
+    ,"spades" * "\x2660"
+    ,"spadesuit" * "\x2660"
+    ,"spar" * "\x2225"
+    ,"sqcap" * "\x2293"
+    ,"sqcaps" * "\x2293\xFE00"
+    ,"sqcup" * "\x2294"
+    ,"sqcups" * "\x2294\xFE00"
+    ,"Sqrt" * "\x221A"
+    ,"sqsub" * "\x228F"
+    ,"sqsube" * "\x2291"
+    ,"sqsubset" * "\x228F"
+    ,"sqsubseteq" * "\x2291"
+    ,"sqsup" * "\x2290"
+    ,"sqsupe" * "\x2292"
+    ,"sqsupset" * "\x2290"
+    ,"sqsupseteq" * "\x2292"
+    ,"squ" * "\x25A1"
+    ,"Square" * "\x25A1"
+    ,"square" * "\x25A1"
+    ,"SquareIntersection" * "\x2293"
+    ,"SquareSubset" * "\x228F"
+    ,"SquareSubsetEqual" * "\x2291"
+    ,"SquareSuperset" * "\x2290"
+    ,"SquareSupersetEqual" * "\x2292"
+    ,"SquareUnion" * "\x2294"
+    ,"squarf" * "\x25AA"
+    ,"squf" * "\x25AA"
+    ,"srarr" * "\x2192"
+    ,"Sscr" * "\xD835\xDCAE"
+    ,"sscr" * "\xD835\xDCC8"
+    ,"ssetmn" * "\x2216"
+    ,"ssmile" * "\x2323"
+    ,"sstarf" * "\x22C6"
+    ,"Star" * "\x22C6"
+    ,"star" * "\x2606"
+    ,"starf" * "\x2605"
+    ,"straightepsilon" * "\x03F5"
+    ,"straightphi" * "\x03D5"
+    ,"strns" * "\x00AF"
+    ,"sub" * "\x2282"
+    ,"Sub" * "\x22D0"
+    ,"subdot" * "\x2ABD"
+    ,"sube" * "\x2286"
+    ,"subE" * "\x2AC5"
+    ,"subedot" * "\x2AC3"
+    ,"submult" * "\x2AC1"
+    ,"subne" * "\x228A"
+    ,"subnE" * "\x2ACB"
+    ,"subplus" * "\x2ABF"
+    ,"subrarr" * "\x2979"
+    ,"subset" * "\x2282"
+    ,"Subset" * "\x22D0"
+    ,"subseteq" * "\x2286"
+    ,"subseteqq" * "\x2AC5"
+    ,"SubsetEqual" * "\x2286"
+    ,"subsetneq" * "\x228A"
+    ,"subsetneqq" * "\x2ACB"
+    ,"subsim" * "\x2AC7"
+    ,"subsub" * "\x2AD5"
+    ,"subsup" * "\x2AD3"
+    ,"succ" * "\x227B"
+    ,"succapprox" * "\x2AB8"
+    ,"succcurlyeq" * "\x227D"
+    ,"Succeeds" * "\x227B"
+    ,"SucceedsEqual" * "\x2AB0"
+    ,"SucceedsSlantEqual" * "\x227D"
+    ,"SucceedsTilde" * "\x227F"
+    ,"succeq" * "\x2AB0"
+    ,"succnapprox" * "\x2ABA"
+    ,"succneqq" * "\x2AB6"
+    ,"succnsim" * "\x22E9"
+    ,"succsim" * "\x227F"
+    ,"SuchThat" * "\x220B"
+    ,"Sum" * "\x2211"
+    ,"sum" * "\x2211"
+    ,"sung" * "\x266A"
+    ,"sup" * "\x2283"
+    ,"Sup" * "\x22D1"
+    ,"sup1" * "\x00B9"
+    ,"sup2" * "\x00B2"
+    ,"sup3" * "\x00B3"
+    ,"supdot" * "\x2ABE"
+    ,"supdsub" * "\x2AD8"
+    ,"supe" * "\x2287"
+    ,"supE" * "\x2AC6"
+    ,"supedot" * "\x2AC4"
+    ,"Superset" * "\x2283"
+    ,"SupersetEqual" * "\x2287"
+    ,"suphsol" * "\x27C9"
+    ,"suphsub" * "\x2AD7"
+    ,"suplarr" * "\x297B"
+    ,"supmult" * "\x2AC2"
+    ,"supne" * "\x228B"
+    ,"supnE" * "\x2ACC"
+    ,"supplus" * "\x2AC0"
+    ,"supset" * "\x2283"
+    ,"Supset" * "\x22D1"
+    ,"supseteq" * "\x2287"
+    ,"supseteqq" * "\x2AC6"
+    ,"supsetneq" * "\x228B"
+    ,"supsetneqq" * "\x2ACC"
+    ,"supsim" * "\x2AC8"
+    ,"supsub" * "\x2AD4"
+    ,"supsup" * "\x2AD6"
+    ,"swarhk" * "\x2926"
+    ,"swarr" * "\x2199"
+    ,"swArr" * "\x21D9"
+    ,"swarrow" * "\x2199"
+    ,"swnwar" * "\x292A"
+    ,"szlig" * "\x00DF"
+    ,"Tab" * "\x0009"
+    ,"target" * "\x2316"
+    ,"Tau" * "\x03A4"
+    ,"tau" * "\x03C4"
+    ,"tbrk" * "\x23B4"
+    ,"Tcaron" * "\x0164"
+    ,"tcaron" * "\x0165"
+    ,"Tcedil" * "\x0162"
+    ,"tcedil" * "\x0163"
+    ,"Tcy" * "\x0422"
+    ,"tcy" * "\x0442"
+    ,"tdot" * "\x20DB"
+    ,"telrec" * "\x2315"
+    ,"Tfr" * "\xD835\xDD17"
+    ,"tfr" * "\xD835\xDD31"
+    ,"there4" * "\x2234"
+    ,"Therefore" * "\x2234"
+    ,"therefore" * "\x2234"
+    ,"Theta" * "\x0398"
+    ,"theta" * "\x03B8"
+    ,"thetasym" * "\x03D1"
+    ,"thetav" * "\x03D1"
+    ,"thickapprox" * "\x2248"
+    ,"thicksim" * "\x223C"
+    ,"ThickSpace" * "\x205F\x200A"
+    ,"thinsp" * "\x2009"
+    ,"ThinSpace" * "\x2009"
+    ,"thkap" * "\x2248"
+    ,"thksim" * "\x223C"
+    ,"THORN" * "\x00DE"
+    ,"thorn" * "\x00FE"
+    ,"tilde" * "\x02DC"
+    ,"Tilde" * "\x223C"
+    ,"TildeEqual" * "\x2243"
+    ,"TildeFullEqual" * "\x2245"
+    ,"TildeTilde" * "\x2248"
+    ,"times" * "\x00D7"
+    ,"timesb" * "\x22A0"
+    ,"timesbar" * "\x2A31"
+    ,"timesd" * "\x2A30"
+    ,"tint" * "\x222D"
+    ,"toea" * "\x2928"
+    ,"top" * "\x22A4"
+    ,"topbot" * "\x2336"
+    ,"topcir" * "\x2AF1"
+    ,"Topf" * "\xD835\xDD4B"
+    ,"topf" * "\xD835\xDD65"
+    ,"topfork" * "\x2ADA"
+    ,"tosa" * "\x2929"
+    ,"tprime" * "\x2034"
+    ,"TRADE" * "\x2122"
+    ,"trade" * "\x2122"
+    ,"triangle" * "\x25B5"
+    ,"triangledown" * "\x25BF"
+    ,"triangleleft" * "\x25C3"
+    ,"trianglelefteq" * "\x22B4"
+    ,"triangleq" * "\x225C"
+    ,"triangleright" * "\x25B9"
+    ,"trianglerighteq" * "\x22B5"
+    ,"tridot" * "\x25EC"
+    ,"trie" * "\x225C"
+    ,"triminus" * "\x2A3A"
+    ,"TripleDot" * "\x20DB"
+    ,"triplus" * "\x2A39"
+    ,"trisb" * "\x29CD"
+    ,"tritime" * "\x2A3B"
+    ,"trpezium" * "\x23E2"
+    ,"Tscr" * "\xD835\xDCAF"
+    ,"tscr" * "\xD835\xDCC9"
+    ,"TScy" * "\x0426"
+    ,"tscy" * "\x0446"
+    ,"TSHcy" * "\x040B"
+    ,"tshcy" * "\x045B"
+    ,"Tstrok" * "\x0166"
+    ,"tstrok" * "\x0167"
+    ,"twixt" * "\x226C"
+    ,"twoheadleftarrow" * "\x219E"
+    ,"twoheadrightarrow" * "\x21A0"
+    ,"Uacute" * "\x00DA"
+    ,"uacute" * "\x00FA"
+    ,"uarr" * "\x2191"
+    ,"Uarr" * "\x219F"
+    ,"uArr" * "\x21D1"
+    ,"Uarrocir" * "\x2949"
+    ,"Ubrcy" * "\x040E"
+    ,"ubrcy" * "\x045E"
+    ,"Ubreve" * "\x016C"
+    ,"ubreve" * "\x016D"
+    ,"Ucirc" * "\x00DB"
+    ,"ucirc" * "\x00FB"
+    ,"Ucy" * "\x0423"
+    ,"ucy" * "\x0443"
+    ,"udarr" * "\x21C5"
+    ,"Udblac" * "\x0170"
+    ,"udblac" * "\x0171"
+    ,"udhar" * "\x296E"
+    ,"ufisht" * "\x297E"
+    ,"Ufr" * "\xD835\xDD18"
+    ,"ufr" * "\xD835\xDD32"
+    ,"Ugrave" * "\x00D9"
+    ,"ugrave" * "\x00F9"
+    ,"uHar" * "\x2963"
+    ,"uharl" * "\x21BF"
+    ,"uharr" * "\x21BE"
+    ,"uhblk" * "\x2580"
+    ,"ulcorn" * "\x231C"
+    ,"ulcorner" * "\x231C"
+    ,"ulcrop" * "\x230F"
+    ,"ultri" * "\x25F8"
+    ,"Umacr" * "\x016A"
+    ,"umacr" * "\x016B"
+    ,"uml" * "\x00A8"
+    ,"UnderBar" * "\x005F"
+    ,"UnderBrace" * "\x23DF"
+    ,"UnderBracket" * "\x23B5"
+    ,"UnderParenthesis" * "\x23DD"
+    ,"Union" * "\x22C3"
+    ,"UnionPlus" * "\x228E"
+    ,"Uogon" * "\x0172"
+    ,"uogon" * "\x0173"
+    ,"Uopf" * "\xD835\xDD4C"
+    ,"uopf" * "\xD835\xDD66"
+    ,"UpArrow" * "\x2191"
+    ,"uparrow" * "\x2191"
+    ,"Uparrow" * "\x21D1"
+    ,"UpArrowBar" * "\x2912"
+    ,"UpArrowDownArrow" * "\x21C5"
+    ,"UpDownArrow" * "\x2195"
+    ,"updownarrow" * "\x2195"
+    ,"Updownarrow" * "\x21D5"
+    ,"UpEquilibrium" * "\x296E"
+    ,"upharpoonleft" * "\x21BF"
+    ,"upharpoonright" * "\x21BE"
+    ,"uplus" * "\x228E"
+    ,"UpperLeftArrow" * "\x2196"
+    ,"UpperRightArrow" * "\x2197"
+    ,"upsi" * "\x03C5"
+    ,"Upsi" * "\x03D2"
+    ,"upsih" * "\x03D2"
+    ,"Upsilon" * "\x03A5"
+    ,"upsilon" * "\x03C5"
+    ,"UpTee" * "\x22A5"
+    ,"UpTeeArrow" * "\x21A5"
+    ,"upuparrows" * "\x21C8"
+    ,"urcorn" * "\x231D"
+    ,"urcorner" * "\x231D"
+    ,"urcrop" * "\x230E"
+    ,"Uring" * "\x016E"
+    ,"uring" * "\x016F"
+    ,"urtri" * "\x25F9"
+    ,"Uscr" * "\xD835\xDCB0"
+    ,"uscr" * "\xD835\xDCCA"
+    ,"utdot" * "\x22F0"
+    ,"Utilde" * "\x0168"
+    ,"utilde" * "\x0169"
+    ,"utri" * "\x25B5"
+    ,"utrif" * "\x25B4"
+    ,"uuarr" * "\x21C8"
+    ,"Uuml" * "\x00DC"
+    ,"uuml" * "\x00FC"
+    ,"uwangle" * "\x29A7"
+    ,"vangrt" * "\x299C"
+    ,"varepsilon" * "\x03F5"
+    ,"varkappa" * "\x03F0"
+    ,"varnothing" * "\x2205"
+    ,"varphi" * "\x03D5"
+    ,"varpi" * "\x03D6"
+    ,"varpropto" * "\x221D"
+    ,"varr" * "\x2195"
+    ,"vArr" * "\x21D5"
+    ,"varrho" * "\x03F1"
+    ,"varsigma" * "\x03C2"
+    ,"varsubsetneq" * "\x228A\xFE00"
+    ,"varsubsetneqq" * "\x2ACB\xFE00"
+    ,"varsupsetneq" * "\x228B\xFE00"
+    ,"varsupsetneqq" * "\x2ACC\xFE00"
+    ,"vartheta" * "\x03D1"
+    ,"vartriangleleft" * "\x22B2"
+    ,"vartriangleright" * "\x22B3"
+    ,"vBar" * "\x2AE8"
+    ,"Vbar" * "\x2AEB"
+    ,"vBarv" * "\x2AE9"
+    ,"Vcy" * "\x0412"
+    ,"vcy" * "\x0432"
+    ,"vdash" * "\x22A2"
+    ,"vDash" * "\x22A8"
+    ,"Vdash" * "\x22A9"
+    ,"VDash" * "\x22AB"
+    ,"Vdashl" * "\x2AE6"
+    ,"vee" * "\x2228"
+    ,"Vee" * "\x22C1"
+    ,"veebar" * "\x22BB"
+    ,"veeeq" * "\x225A"
+    ,"vellip" * "\x22EE"
+    ,"verbar" * "\x007C"
+    ,"Verbar" * "\x2016"
+    ,"vert" * "\x007C"
+    ,"Vert" * "\x2016"
+    ,"VerticalBar" * "\x2223"
+    ,"VerticalLine" * "\x007C"
+    ,"VerticalSeparator" * "\x2758"
+    ,"VerticalTilde" * "\x2240"
+    ,"VeryThinSpace" * "\x200A"
+    ,"Vfr" * "\xD835\xDD19"
+    ,"vfr" * "\xD835\xDD33"
+    ,"vltri" * "\x22B2"
+    ,"vnsub" * "\x2282\x20D2"
+    ,"vnsup" * "\x2283\x20D2"
+    ,"Vopf" * "\xD835\xDD4D"
+    ,"vopf" * "\xD835\xDD67"
+    ,"vprop" * "\x221D"
+    ,"vrtri" * "\x22B3"
+    ,"Vscr" * "\xD835\xDCB1"
+    ,"vscr" * "\xD835\xDCCB"
+    ,"vsubne" * "\x228A\xFE00"
+    ,"vsubnE" * "\x2ACB\xFE00"
+    ,"vsupne" * "\x228B\xFE00"
+    ,"vsupnE" * "\x2ACC\xFE00"
+    ,"Vvdash" * "\x22AA"
+    ,"vzigzag" * "\x299A"
+    ,"Wcirc" * "\x0174"
+    ,"wcirc" * "\x0175"
+    ,"wedbar" * "\x2A5F"
+    ,"wedge" * "\x2227"
+    ,"Wedge" * "\x22C0"
+    ,"wedgeq" * "\x2259"
+    ,"weierp" * "\x2118"
+    ,"Wfr" * "\xD835\xDD1A"
+    ,"wfr" * "\xD835\xDD34"
+    ,"Wopf" * "\xD835\xDD4E"
+    ,"wopf" * "\xD835\xDD68"
+    ,"wp" * "\x2118"
+    ,"wr" * "\x2240"
+    ,"wreath" * "\x2240"
+    ,"Wscr" * "\xD835\xDCB2"
+    ,"wscr" * "\xD835\xDCCC"
+    ,"xcap" * "\x22C2"
+    ,"xcirc" * "\x25EF"
+    ,"xcup" * "\x22C3"
+    ,"xdtri" * "\x25BD"
+    ,"Xfr" * "\xD835\xDD1B"
+    ,"xfr" * "\xD835\xDD35"
+    ,"xharr" * "\x27F7"
+    ,"xhArr" * "\x27FA"
+    ,"Xi" * "\x039E"
+    ,"xi" * "\x03BE"
+    ,"xlarr" * "\x27F5"
+    ,"xlArr" * "\x27F8"
+    ,"xmap" * "\x27FC"
+    ,"xnis" * "\x22FB"
+    ,"xodot" * "\x2A00"
+    ,"Xopf" * "\xD835\xDD4F"
+    ,"xopf" * "\xD835\xDD69"
+    ,"xoplus" * "\x2A01"
+    ,"xotime" * "\x2A02"
+    ,"xrarr" * "\x27F6"
+    ,"xrArr" * "\x27F9"
+    ,"Xscr" * "\xD835\xDCB3"
+    ,"xscr" * "\xD835\xDCCD"
+    ,"xsqcup" * "\x2A06"
+    ,"xuplus" * "\x2A04"
+    ,"xutri" * "\x25B3"
+    ,"xvee" * "\x22C1"
+    ,"xwedge" * "\x22C0"
+    ,"Yacute" * "\x00DD"
+    ,"yacute" * "\x00FD"
+    ,"YAcy" * "\x042F"
+    ,"yacy" * "\x044F"
+    ,"Ycirc" * "\x0176"
+    ,"ycirc" * "\x0177"
+    ,"Ycy" * "\x042B"
+    ,"ycy" * "\x044B"
+    ,"yen" * "\x00A5"
+    ,"Yfr" * "\xD835\xDD1C"
+    ,"yfr" * "\xD835\xDD36"
+    ,"YIcy" * "\x0407"
+    ,"yicy" * "\x0457"
+    ,"Yopf" * "\xD835\xDD50"
+    ,"yopf" * "\xD835\xDD6A"
+    ,"Yscr" * "\xD835\xDCB4"
+    ,"yscr" * "\xD835\xDCCE"
+    ,"YUcy" * "\x042E"
+    ,"yucy" * "\x044E"
+    ,"yuml" * "\x00FF"
+    ,"Yuml" * "\x0178"
+    ,"Zacute" * "\x0179"
+    ,"zacute" * "\x017A"
+    ,"Zcaron" * "\x017D"
+    ,"zcaron" * "\x017E"
+    ,"Zcy" * "\x0417"
+    ,"zcy" * "\x0437"
+    ,"Zdot" * "\x017B"
+    ,"zdot" * "\x017C"
+    ,"zeetrf" * "\x2128"
+    ,"ZeroWidthSpace" * "\x200B"
+    ,"Zeta" * "\x0396"
+    ,"zeta" * "\x03B6"
+    ,"Zfr" * "\x2128"
+    ,"zfr" * "\xD835\xDD37"
+    ,"ZHcy" * "\x0416"
+    ,"zhcy" * "\x0436"
+    ,"zigrarr" * "\x21DD"
+    ,"Zopf" * "\x2124"
+    ,"zopf" * "\xD835\xDD6B"
+    ,"Zscr" * "\xD835\xDCB5"
+    ,"zscr" * "\xD835\xDCCF"
+    ,"zwj" * "\x200D"
+    ,"zwnj" * "\x200C"
     ]
diff --git a/Text/HTML/TagSoup/Implementation.hs b/Text/HTML/TagSoup/Implementation.hs
--- a/Text/HTML/TagSoup/Implementation.hs
+++ b/Text/HTML/TagSoup/Implementation.hs
@@ -81,7 +81,7 @@
     where
         -- main choice loop
         go :: ((Position,[Tag str]),[Out]) -> [Tag str]
-        go ((p,ws),xs) | p `seq` False = undefined -- otherwise p is a space leak when optTagPosition == False
+        go ((p,ws),xs) | p `seq` False = [] -- otherwise p is a space leak when optTagPosition == False
         go ((p,ws),xs) | not $ null ws = (if optTagWarning then (reverse ws++) else id) $ go ((p,[]),xs)
         go ((p,ws),Pos p2:xs) = go ((p2,ws),xs)
 
@@ -119,7 +119,6 @@
 
         -- loop round collecting characters, if the b is set including entity
         charss :: Bool -> ((Position,[Tag str]),[Out]) -> ( ((Position,[Tag str]),[Out]) , String)
-        charss _ ((p,_),_) | p `seq` False = undefined
         charss t x | Just a <- fromChr x = (y, a:b)
             where (y,b) = charss t (next x)
         charss t x | t, isEntityName x = second (toString n ++) $ charss t $ addWarns m z
diff --git a/Text/HTML/TagSoup/Options.hs b/Text/HTML/TagSoup/Options.hs
--- a/Text/HTML/TagSoup/Options.hs
+++ b/Text/HTML/TagSoup/Options.hs
@@ -60,7 +60,7 @@
 -- | The default parse options value, described in 'ParseOptions'. Equivalent to
 --   @'parseOptionsEntities' 'lookupEntity'@.
 parseOptions :: StringLike str => ParseOptions str
-parseOptions = parseOptionsEntities $ fmap fromChar . lookupEntity . toString
+parseOptions = parseOptionsEntities $ fmap fromString . lookupEntity . toString
 
 
 -- | A 'ParseOptions' structure optimised for speed, following the fast options.
diff --git a/Text/HTML/TagSoup/Render.hs b/Text/HTML/TagSoup/Render.hs
--- a/Text/HTML/TagSoup/Render.hs
+++ b/Text/HTML/TagSoup/Render.hs
@@ -9,8 +9,6 @@
     RenderOptions(..), renderOptions
     ) where
 
-import Data.Char
-import qualified Data.IntMap as IntMap
 import Text.HTML.TagSoup.Entity
 import Text.HTML.TagSoup.Type
 import Text.StringLike
@@ -27,11 +25,9 @@
     }
 
 
--- | Replace the four characters @&\"\<\>@ with their HTML entities (the list from 'xmlEntities').
+-- | Replace the four characters @&\"\<\>@ with their HTML entities ('escapeXML' lifted to 'StringLike').
 escapeHTML :: StringLike str => str -> str
-escapeHTML = fromString . concatMap esc1 . toString
-    where esc = IntMap.fromList [(b, "&"++a++";") | (a,b) <- xmlEntities]
-          esc1 x = IntMap.findWithDefault [x] (ord x) esc
+escapeHTML = fromString . escapeXML . toString
 
 
 -- | The default render options value, described in 'RenderOptions'.
diff --git a/tagsoup.cabal b/tagsoup.cabal
--- a/tagsoup.cabal
+++ b/tagsoup.cabal
@@ -1,7 +1,7 @@
 cabal-version:  >= 1.6
 name:           tagsoup
-version:        0.12.8
-copyright:      Neil Mitchell 2006-2012
+version:        0.13
+copyright:      Neil Mitchell 2006-2013
 author:         Neil Mitchell <ndmitchell@gmail.com>
 maintainer:     Neil Mitchell <ndmitchell@gmail.com>
 homepage:       http://community.haskell.org/~ndm/tagsoup/
