# Keysym -> Unicode mappings, taken from https://github.com/substack/node-keysym/blob/master/data/keysyms.txt

# http://www.cl.cam.ac.uk/~mgk25/ucs/keysyms.txt
# Mapping of X11 keysyms to ISO 10646 / Unicode
#
# The "X11 Window System Protocol" standard (Release 6.4) defines in
# Appendix A the keysym codes. These 29-bit integer values identify
# characters or functions associated with each key (e.g., via the
# visible engraving) of a keyboard layout. In addition, mnemonic macro
# names are provided for the keysyms in the C header file
# <X11/keysymdef.h>. These are compiled (by xc/lib/X11/util/
# makekeys.c) into a hash table that can be accessed with X11 library
# functions such as XStringToKeysym() and XKeysymToString().
#
# The creation of the keysym codes predates ISO 10646 / Unicode, but
# they represent a similar attempt to merge several existing coded
# character sets (mostly early drafts of ISO 8859, as well as some --
# long since forgotten -- DEC font encodings). X.Org and XFree86 have
# agreed that for any future extension of the keysyms with characters
# already found in ISO 10646 / Unicode, the following algorithm will
# be used. The new keysym code position will simply be the character's
# Unicode number plus 0x01000000. The keysym codes in the range
# 0x01000100 0x0110ffff are now reserved to represent Unicode
# characters in the range U0100 to U10FFFF. (Note that the ISO 8859-1
# characters that make up Unicode positions below U0100 are excluded
# from this rule, as they are already covered by the keysyms of the
# same value.)
#
# While most newer Unicode-based X11 clients do already accept
# Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it
# will remain necessary for clients -- in the interest of
# compatibility with existing servers -- to also understand the
# existing keysym values. Clients can use the table below to map the
# pre-Unicode keysym values (0x0100 to 0x20ff) to the corresponding
# Unicode characters for further processing.
#
# The following fields are used in this mapping table:
#
# 1    The hexadecimal X11 keysym number (as defined in Appendix A of
#      the X11 protocol specification and as listed in <X11/keysymdef.h>)
#
# 2    The corresponding Unicode position
#      (U0000 means that there is no equivalent Unicode character)
#
# 3    Status of this keysym and its Unicode mapping
#
#         .  regular -- This is a regular well-established keysym with
#            a straightforward Unicode equivalent (e.g., any keysym
#            derived from ISO 8859). There can be at most one regular
#            keysym associated with each Unicode character.
#
#         d  duplicate -- This keysym has the same Unicode mapping as
#            another one with status 'regular'. It represents a case
#            where keysyms distinguish between several characters that
#            Unicode has unified into a single one (examples are
#            several APL symbols)
#
#         o  obsolete -- While it may be possible to find a Unicode of
#            similar name, the exact semantics of this keysym are
#            unclear, because the font or character set from which it
#            came has never been widely used. Examples are various
#            symbols from the DEC Publishing character set, which may
#            have been used in a special font shipped with the
#            DECwrite product. Where no similar Unicode character
#            can be identified, U0000 is used in column 2.
#
#         f  function -- While it may be possible to find a Unicode
#            of similar name, this keysym differs semantically
#            substantially from the corresponding Unicode character,
#            because it describes a particular function key or will
#            first have to be processed by an input method that will
#            translate it into a proper stream of Unicode characters.
#
#         r  remove -- This is a bogus keysym that was added in error,
#            is not used in any known keyboard layout, and should be
#            removed from both <X11/keysymdef.h> and the standard.
#
#         u  unicode-remap -- This keysym was added rather recently to
#            the <X11/keysymdef.h> of XFree86, but into a number range
#            reserved for future extensions of the standard by
#            X.Org. It is not widely used at present, but its name
#            appears to be sufficiently useful and it should therefore
#            be directly mapped to Unicode in the 0x1xxxxxx range in
#            future versions of <X11/keysymdef.h>. This way, the macro
#            name will be preserved, but the standard will not have to
#            be extended.
#
#      Recommendations for using the keysym status:
#
#        - All keysyms with status regular, duplicate, obsolete and
#          function should be listed in Appendix A of the X11 protocol
#          spec.
#
#        - All keysyms except for those with status remove should be
#          listed in <X11/keysymdef.h>.
#
#        - Keysyms with status duplicate, obsolete, and remove should
#          not be used in future keyboard layouts, as there are other
#          keysyms with status regular, function and unicode-remap
#          that give access to the same Unicode characters.
#
#        - Keysym to Unicode conversion tables in clients should include
#          all mappings except those with status function and those
#          with U0000.
#
# #    comment marker
#
# 4    the name of the X11 keysym macro without the leading XK_,
#      as defined in <X11/keysymdef.h>
#
# The last columns may be followed by comments copied from <X11/keysymdef.h>.
# A keysym may be listed several times, if there are several macro names
# associated with it in <X11/keysymdef.h>.
#
# Author: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
# Date:   2004-08-08
#
# This table evolved out of an earlier one by Richard Verhoeven, TU Eindhoven.

keysyms = {
    "0x0020": "\u0020",  # space
    "0x0021": "\u0021",  # exclam
    "0x0022": "\u0022",  # quotedbl
    "0x0023": "\u0023",  # numbersign
    "0x0024": "\u0024",  # dollar
    "0x0025": "\u0025",  # percent
    "0x0026": "\u0026",  # ampersand
    "0x0027": "\u0027",  # apostrophe
    "0x0027": "\u0027",  # quoteright /* deprecated */
    "0x0028": "\u0028",  # parenleft
    "0x0029": "\u0029",  # parenright
    "0x002a": "\u002a",  # asterisk
    "0x002b": "\u002b",  # plus
    "0x002c": "\u002c",  # comma
    "0x002d": "\u002d",  # minus
    "0x002e": "\u002e",  # period
    "0x002f": "\u002f",  # slash
    "0x0030": "\u0030",  # 0
    "0x0031": "\u0031",  # 1
    "0x0032": "\u0032",  # 2
    "0x0033": "\u0033",  # 3
    "0x0034": "\u0034",  # 4
    "0x0035": "\u0035",  # 5
    "0x0036": "\u0036",  # 6
    "0x0037": "\u0037",  # 7
    "0x0038": "\u0038",  # 8
    "0x0039": "\u0039",  # 9
    "0x003a": "\u003a",  # colon
    "0x003b": "\u003b",  # semicolon
    "0x003c": "\u003c",  # less
    "0x003d": "\u003d",  # equal
    "0x003e": "\u003e",  # greater
    "0x003f": "\u003f",  # question
    "0x0040": "\u0040",  # at
    "0x0041": "\u0041",  # A
    "0x0042": "\u0042",  # B
    "0x0043": "\u0043",  # C
    "0x0044": "\u0044",  # D
    "0x0045": "\u0045",  # E
    "0x0046": "\u0046",  # F
    "0x0047": "\u0047",  # G
    "0x0048": "\u0048",  # H
    "0x0049": "\u0049",  # I
    "0x004a": "\u004a",  # J
    "0x004b": "\u004b",  # K
    "0x004c": "\u004c",  # L
    "0x004d": "\u004d",  # M
    "0x004e": "\u004e",  # N
    "0x004f": "\u004f",  # O
    "0x0050": "\u0050",  # P
    "0x0051": "\u0051",  # Q
    "0x0052": "\u0052",  # R
    "0x0053": "\u0053",  # S
    "0x0054": "\u0054",  # T
    "0x0055": "\u0055",  # U
    "0x0056": "\u0056",  # V
    "0x0057": "\u0057",  # W
    "0x0058": "\u0058",  # X
    "0x0059": "\u0059",  # Y
    "0x005a": "\u005a",  # Z
    "0x005b": "\u005b",  # bracketleft
    "0x005c": "\u005c",  # backslash
    "0x005d": "\u005d",  # bracketright
    "0x005e": "\u005e",  # asciicircum
    "0x005f": "\u005f",  # underscore
    "0x0060": "\u0060",  # grave
    "0x0060": "\u0060",  # quoteleft /* deprecated */
    "0x0061": "\u0061",  # a
    "0x0062": "\u0062",  # b
    "0x0063": "\u0063",  # c
    "0x0064": "\u0064",  # d
    "0x0065": "\u0065",  # e
    "0x0066": "\u0066",  # f
    "0x0067": "\u0067",  # g
    "0x0068": "\u0068",  # h
    "0x0069": "\u0069",  # i
    "0x006a": "\u006a",  # j
    "0x006b": "\u006b",  # k
    "0x006c": "\u006c",  # l
    "0x006d": "\u006d",  # m
    "0x006e": "\u006e",  # n
    "0x006f": "\u006f",  # o
    "0x0070": "\u0070",  # p
    "0x0071": "\u0071",  # q
    "0x0072": "\u0072",  # r
    "0x0073": "\u0073",  # s
    "0x0074": "\u0074",  # t
    "0x0075": "\u0075",  # u
    "0x0076": "\u0076",  # v
    "0x0077": "\u0077",  # w
    "0x0078": "\u0078",  # x
    "0x0079": "\u0079",  # y
    "0x007a": "\u007a",  # z
    "0x007b": "\u007b",  # braceleft
    "0x007c": "\u007c",  # bar
    "0x007d": "\u007d",  # braceright
    "0x007e": "\u007e",  # asciitilde
    "0x00a0": "\u00a0",  # nobreakspace
    "0x00a1": "\u00a1",  # exclamdown
    "0x00a2": "\u00a2",  # cent
    "0x00a3": "\u00a3",  # sterling
    "0x00a4": "\u00a4",  # currency
    "0x00a5": "\u00a5",  # yen
    "0x00a6": "\u00a6",  # brokenbar
    "0x00a7": "\u00a7",  # section
    "0x00a8": "\u00a8",  # diaeresis
    "0x00a9": "\u00a9",  # copyright
    "0x00aa": "\u00aa",  # ordfeminine
    "0x00ab": "\u00ab",  # guillemotleft /* left angle quotation mark */
    "0x00ac": "\u00ac",  # notsign
    "0x00ad": "\u00ad",  # hyphen
    "0x00ae": "\u00ae",  # registered
    "0x00af": "\u00af",  # macron
    "0x00b0": "\u00b0",  # degree
    "0x00b1": "\u00b1",  # plusminus
    "0x00b2": "\u00b2",  # twosuperior
    "0x00b3": "\u00b3",  # threesuperior
    "0x00b4": "\u00b4",  # acute
    "0x00b5": "\u00b5",  # mu
    "0x00b6": "\u00b6",  # paragraph
    "0x00b7": "\u00b7",  # periodcentered
    "0x00b8": "\u00b8",  # cedilla
    "0x00b9": "\u00b9",  # onesuperior
    "0x00ba": "\u00ba",  # masculine
    "0x00bb": "\u00bb",  # guillemotright /* right angle quotation mark */
    "0x00bc": "\u00bc",  # onequarter
    "0x00bd": "\u00bd",  # onehalf
    "0x00be": "\u00be",  # threequarters
    "0x00bf": "\u00bf",  # questiondown
    "0x00c0": "\u00c0",  # Agrave
    "0x00c1": "\u00c1",  # Aacute
    "0x00c2": "\u00c2",  # Acircumflex
    "0x00c3": "\u00c3",  # Atilde
    "0x00c4": "\u00c4",  # Adiaeresis
    "0x00c5": "\u00c5",  # Aring
    "0x00c6": "\u00c6",  # AE
    "0x00c7": "\u00c7",  # Ccedilla
    "0x00c8": "\u00c8",  # Egrave
    "0x00c9": "\u00c9",  # Eacute
    "0x00ca": "\u00ca",  # Ecircumflex
    "0x00cb": "\u00cb",  # Ediaeresis
    "0x00cc": "\u00cc",  # Igrave
    "0x00cd": "\u00cd",  # Iacute
    "0x00ce": "\u00ce",  # Icircumflex
    "0x00cf": "\u00cf",  # Idiaeresis
    "0x00d0": "\u00d0",  # ETH
    "0x00d0": "\u00d0",  # Eth /* deprecated */
    "0x00d1": "\u00d1",  # Ntilde
    "0x00d2": "\u00d2",  # Ograve
    "0x00d3": "\u00d3",  # Oacute
    "0x00d4": "\u00d4",  # Ocircumflex
    "0x00d5": "\u00d5",  # Otilde
    "0x00d6": "\u00d6",  # Odiaeresis
    "0x00d7": "\u00d7",  # multiply
    "0x00d8": "\u00d8",  # Ooblique
    "0x00d9": "\u00d9",  # Ugrave
    "0x00da": "\u00da",  # Uacute
    "0x00db": "\u00db",  # Ucircumflex
    "0x00dc": "\u00dc",  # Udiaeresis
    "0x00dd": "\u00dd",  # Yacute
    "0x00de": "\u00de",  # THORN
    "0x00de": "\u00de",  # Thorn /* deprecated */
    "0x00df": "\u00df",  # ssharp
    "0x00e0": "\u00e0",  # agrave
    "0x00e1": "\u00e1",  # aacute
    "0x00e2": "\u00e2",  # acircumflex
    "0x00e3": "\u00e3",  # atilde
    "0x00e4": "\u00e4",  # adiaeresis
    "0x00e5": "\u00e5",  # aring
    "0x00e6": "\u00e6",  # ae
    "0x00e7": "\u00e7",  # ccedilla
    "0x00e8": "\u00e8",  # egrave
    "0x00e9": "\u00e9",  # eacute
    "0x00ea": "\u00ea",  # ecircumflex
    "0x00eb": "\u00eb",  # ediaeresis
    "0x00ec": "\u00ec",  # igrave
    "0x00ed": "\u00ed",  # iacute
    "0x00ee": "\u00ee",  # icircumflex
    "0x00ef": "\u00ef",  # idiaeresis
    "0x00f0": "\u00f0",  # eth
    "0x00f1": "\u00f1",  # ntilde
    "0x00f2": "\u00f2",  # ograve
    "0x00f3": "\u00f3",  # oacute
    "0x00f4": "\u00f4",  # ocircumflex
    "0x00f5": "\u00f5",  # otilde
    "0x00f6": "\u00f6",  # odiaeresis
    "0x00f7": "\u00f7",  # division
    "0x00f8": "\u00f8",  # oslash
    "0x00f9": "\u00f9",  # ugrave
    "0x00fa": "\u00fa",  # uacute
    "0x00fb": "\u00fb",  # ucircumflex
    "0x00fc": "\u00fc",  # udiaeresis
    "0x00fd": "\u00fd",  # yacute
    "0x00fe": "\u00fe",  # thorn
    "0x00ff": "\u00ff",  # ydiaeresis
    "0x01a1": "\u0104",  # Aogonek
    "0x01a2": "\u02d8",  # breve
    "0x01a3": "\u0141",  # Lstroke
    "0x01a5": "\u013d",  # Lcaron
    "0x01a6": "\u015a",  # Sacute
    "0x01a9": "\u0160",  # Scaron
    "0x01aa": "\u015e",  # Scedilla
    "0x01ab": "\u0164",  # Tcaron
    "0x01ac": "\u0179",  # Zacute
    "0x01ae": "\u017d",  # Zcaron
    "0x01af": "\u017b",  # Zabovedot
    "0x01b1": "\u0105",  # aogonek
    "0x01b2": "\u02db",  # ogonek
    "0x01b3": "\u0142",  # lstroke
    "0x01b5": "\u013e",  # lcaron
    "0x01b6": "\u015b",  # sacute
    "0x01b7": "\u02c7",  # caron
    "0x01b9": "\u0161",  # scaron
    "0x01ba": "\u015f",  # scedilla
    "0x01bb": "\u0165",  # tcaron
    "0x01bc": "\u017a",  # zacute
    "0x01bd": "\u02dd",  # doubleacute
    "0x01be": "\u017e",  # zcaron
    "0x01bf": "\u017c",  # zabovedot
    "0x01c0": "\u0154",  # Racute
    "0x01c3": "\u0102",  # Abreve
    "0x01c5": "\u0139",  # Lacute
    "0x01c6": "\u0106",  # Cacute
    "0x01c8": "\u010c",  # Ccaron
    "0x01ca": "\u0118",  # Eogonek
    "0x01cc": "\u011a",  # Ecaron
    "0x01cf": "\u010e",  # Dcaron
    "0x01d0": "\u0110",  # Dstroke
    "0x01d1": "\u0143",  # Nacute
    "0x01d2": "\u0147",  # Ncaron
    "0x01d5": "\u0150",  # Odoubleacute
    "0x01d8": "\u0158",  # Rcaron
    "0x01d9": "\u016e",  # Uring
    "0x01db": "\u0170",  # Udoubleacute
    "0x01de": "\u0162",  # Tcedilla
    "0x01e0": "\u0155",  # racute
    "0x01e3": "\u0103",  # abreve
    "0x01e5": "\u013a",  # lacute
    "0x01e6": "\u0107",  # cacute
    "0x01e8": "\u010d",  # ccaron
    "0x01ea": "\u0119",  # eogonek
    "0x01ec": "\u011b",  # ecaron
    "0x01ef": "\u010f",  # dcaron
    "0x01f0": "\u0111",  # dstroke
    "0x01f1": "\u0144",  # nacute
    "0x01f2": "\u0148",  # ncaron
    "0x01f5": "\u0151",  # odoubleacute
    "0x01f8": "\u0159",  # rcaron
    "0x01f9": "\u016f",  # uring
    "0x01fb": "\u0171",  # udoubleacute
    "0x01fe": "\u0163",  # tcedilla
    "0x01ff": "\u02d9",  # abovedot
    "0x02a1": "\u0126",  # Hstroke
    "0x02a6": "\u0124",  # Hcircumflex
    "0x02a9": "\u0130",  # Iabovedot
    "0x02ab": "\u011e",  # Gbreve
    "0x02ac": "\u0134",  # Jcircumflex
    "0x02b1": "\u0127",  # hstroke
    "0x02b6": "\u0125",  # hcircumflex
    "0x02b9": "\u0131",  # idotless
    "0x02bb": "\u011f",  # gbreve
    "0x02bc": "\u0135",  # jcircumflex
    "0x02c5": "\u010a",  # Cabovedot
    "0x02c6": "\u0108",  # Ccircumflex
    "0x02d5": "\u0120",  # Gabovedot
    "0x02d8": "\u011c",  # Gcircumflex
    "0x02dd": "\u016c",  # Ubreve
    "0x02de": "\u015c",  # Scircumflex
    "0x02e5": "\u010b",  # cabovedot
    "0x02e6": "\u0109",  # ccircumflex
    "0x02f5": "\u0121",  # gabovedot
    "0x02f8": "\u011d",  # gcircumflex
    "0x02fd": "\u016d",  # ubreve
    "0x02fe": "\u015d",  # scircumflex
    "0x03a2": "\u0138",  # kra
    "0x03a3": "\u0156",  # Rcedilla
    "0x03a5": "\u0128",  # Itilde
    "0x03a6": "\u013b",  # Lcedilla
    "0x03aa": "\u0112",  # Emacron
    "0x03ab": "\u0122",  # Gcedilla
    "0x03ac": "\u0166",  # Tslash
    "0x03b3": "\u0157",  # rcedilla
    "0x03b5": "\u0129",  # itilde
    "0x03b6": "\u013c",  # lcedilla
    "0x03ba": "\u0113",  # emacron
    "0x03bb": "\u0123",  # gcedilla
    "0x03bc": "\u0167",  # tslash
    "0x03bd": "\u014a",  # ENG
    "0x03bf": "\u014b",  # eng
    "0x03c0": "\u0100",  # Amacron
    "0x03c7": "\u012e",  # Iogonek
    "0x03cc": "\u0116",  # Eabovedot
    "0x03cf": "\u012a",  # Imacron
    "0x03d1": "\u0145",  # Ncedilla
    "0x03d2": "\u014c",  # Omacron
    "0x03d3": "\u0136",  # Kcedilla
    "0x03d9": "\u0172",  # Uogonek
    "0x03dd": "\u0168",  # Utilde
    "0x03de": "\u016a",  # Umacron
    "0x03e0": "\u0101",  # amacron
    "0x03e7": "\u012f",  # iogonek
    "0x03ec": "\u0117",  # eabovedot
    "0x03ef": "\u012b",  # imacron
    "0x03f1": "\u0146",  # ncedilla
    "0x03f2": "\u014d",  # omacron
    "0x03f3": "\u0137",  # kcedilla
    "0x03f9": "\u0173",  # uogonek
    "0x03fd": "\u0169",  # utilde
    "0x03fe": "\u016b",  # umacron
    "0x047e": "\u203e",  # overline
    "0x04a1": "\u3002",  # kana_fullstop
    "0x04a2": "\u300c",  # kana_openingbracket
    "0x04a3": "\u300d",  # kana_closingbracket
    "0x04a4": "\u3001",  # kana_comma
    "0x04a5": "\u30fb",  # kana_conjunctive
    "0x04a6": "\u30f2",  # kana_WO
    "0x04a7": "\u30a1",  # kana_a
    "0x04a8": "\u30a3",  # kana_i
    "0x04a9": "\u30a5",  # kana_u
    "0x04aa": "\u30a7",  # kana_e
    "0x04ab": "\u30a9",  # kana_o
    "0x04ac": "\u30e3",  # kana_ya
    "0x04ad": "\u30e5",  # kana_yu
    "0x04ae": "\u30e7",  # kana_yo
    "0x04af": "\u30c3",  # kana_tsu
    "0x04b0": "\u30fc",  # prolongedsound
    "0x04b1": "\u30a2",  # kana_A
    "0x04b2": "\u30a4",  # kana_I
    "0x04b3": "\u30a6",  # kana_U
    "0x04b4": "\u30a8",  # kana_E
    "0x04b5": "\u30aa",  # kana_O
    "0x04b6": "\u30ab",  # kana_KA
    "0x04b7": "\u30ad",  # kana_KI
    "0x04b8": "\u30af",  # kana_KU
    "0x04b9": "\u30b1",  # kana_KE
    "0x04ba": "\u30b3",  # kana_KO
    "0x04bb": "\u30b5",  # kana_SA
    "0x04bc": "\u30b7",  # kana_SHI
    "0x04bd": "\u30b9",  # kana_SU
    "0x04be": "\u30bb",  # kana_SE
    "0x04bf": "\u30bd",  # kana_SO
    "0x04c0": "\u30bf",  # kana_TA
    "0x04c1": "\u30c1",  # kana_CHI
    "0x04c2": "\u30c4",  # kana_TSU
    "0x04c3": "\u30c6",  # kana_TE
    "0x04c4": "\u30c8",  # kana_TO
    "0x04c5": "\u30ca",  # kana_NA
    "0x04c6": "\u30cb",  # kana_NI
    "0x04c7": "\u30cc",  # kana_NU
    "0x04c8": "\u30cd",  # kana_NE
    "0x04c9": "\u30ce",  # kana_NO
    "0x04ca": "\u30cf",  # kana_HA
    "0x04cb": "\u30d2",  # kana_HI
    "0x04cc": "\u30d5",  # kana_FU
    "0x04cd": "\u30d8",  # kana_HE
    "0x04ce": "\u30db",  # kana_HO
    "0x04cf": "\u30de",  # kana_MA
    "0x04d0": "\u30df",  # kana_MI
    "0x04d1": "\u30e0",  # kana_MU
    "0x04d2": "\u30e1",  # kana_ME
    "0x04d3": "\u30e2",  # kana_MO
    "0x04d4": "\u30e4",  # kana_YA
    "0x04d5": "\u30e6",  # kana_YU
    "0x04d6": "\u30e8",  # kana_YO
    "0x04d7": "\u30e9",  # kana_RA
    "0x04d8": "\u30ea",  # kana_RI
    "0x04d9": "\u30eb",  # kana_RU
    "0x04da": "\u30ec",  # kana_RE
    "0x04db": "\u30ed",  # kana_RO
    "0x04dc": "\u30ef",  # kana_WA
    "0x04dd": "\u30f3",  # kana_N
    "0x04de": "\u309b",  # voicedsound
    "0x04df": "\u309c",  # semivoicedsound
    "0x05ac": "\u060c",  # Arabic_comma
    "0x05bb": "\u061b",  # Arabic_semicolon
    "0x05bf": "\u061f",  # Arabic_question_mark
    "0x05c1": "\u0621",  # Arabic_hamza
    "0x05c2": "\u0622",  # Arabic_maddaonalef
    "0x05c3": "\u0623",  # Arabic_hamzaonalef
    "0x05c4": "\u0624",  # Arabic_hamzaonwaw
    "0x05c5": "\u0625",  # Arabic_hamzaunderalef
    "0x05c6": "\u0626",  # Arabic_hamzaonyeh
    "0x05c7": "\u0627",  # Arabic_alef
    "0x05c8": "\u0628",  # Arabic_beh
    "0x05c9": "\u0629",  # Arabic_tehmarbuta
    "0x05ca": "\u062a",  # Arabic_teh
    "0x05cb": "\u062b",  # Arabic_theh
    "0x05cc": "\u062c",  # Arabic_jeem
    "0x05cd": "\u062d",  # Arabic_hah
    "0x05ce": "\u062e",  # Arabic_khah
    "0x05cf": "\u062f",  # Arabic_dal
    "0x05d0": "\u0630",  # Arabic_thal
    "0x05d1": "\u0631",  # Arabic_ra
    "0x05d2": "\u0632",  # Arabic_zain
    "0x05d3": "\u0633",  # Arabic_seen
    "0x05d4": "\u0634",  # Arabic_sheen
    "0x05d5": "\u0635",  # Arabic_sad
    "0x05d6": "\u0636",  # Arabic_dad
    "0x05d7": "\u0637",  # Arabic_tah
    "0x05d8": "\u0638",  # Arabic_zah
    "0x05d9": "\u0639",  # Arabic_ain
    "0x05da": "\u063a",  # Arabic_ghain
    "0x05e0": "\u0640",  # Arabic_tatweel
    "0x05e1": "\u0641",  # Arabic_feh
    "0x05e2": "\u0642",  # Arabic_qaf
    "0x05e3": "\u0643",  # Arabic_kaf
    "0x05e4": "\u0644",  # Arabic_lam
    "0x05e5": "\u0645",  # Arabic_meem
    "0x05e6": "\u0646",  # Arabic_noon
    "0x05e7": "\u0647",  # Arabic_ha
    "0x05e8": "\u0648",  # Arabic_waw
    "0x05e9": "\u0649",  # Arabic_alefmaksura
    "0x05ea": "\u064a",  # Arabic_yeh
    "0x05eb": "\u064b",  # Arabic_fathatan
    "0x05ec": "\u064c",  # Arabic_dammatan
    "0x05ed": "\u064d",  # Arabic_kasratan
    "0x05ee": "\u064e",  # Arabic_fatha
    "0x05ef": "\u064f",  # Arabic_damma
    "0x05f0": "\u0650",  # Arabic_kasra
    "0x05f1": "\u0651",  # Arabic_shadda
    "0x05f2": "\u0652",  # Arabic_sukun
    "0x06a1": "\u0452",  # Serbian_dje
    "0x06a2": "\u0453",  # Macedonia_gje
    "0x06a3": "\u0451",  # Cyrillic_io
    "0x06a4": "\u0454",  # Ukrainian_ie
    "0x06a5": "\u0455",  # Macedonia_dse
    "0x06a6": "\u0456",  # Ukrainian_i
    "0x06a7": "\u0457",  # Ukrainian_yi
    "0x06a8": "\u0458",  # Cyrillic_je
    "0x06a9": "\u0459",  # Cyrillic_lje
    "0x06aa": "\u045a",  # Cyrillic_nje
    "0x06ab": "\u045b",  # Serbian_tshe
    "0x06ac": "\u045c",  # Macedonia_kje
    "0x06ae": "\u045e",  # Byelorussian_shortu
    "0x06af": "\u045f",  # Cyrillic_dzhe
    "0x06b0": "\u2116",  # numerosign
    "0x06b1": "\u0402",  # Serbian_DJE
    "0x06b2": "\u0403",  # Macedonia_GJE
    "0x06b3": "\u0401",  # Cyrillic_IO
    "0x06b4": "\u0404",  # Ukrainian_IE
    "0x06b5": "\u0405",  # Macedonia_DSE
    "0x06b6": "\u0406",  # Ukrainian_I
    "0x06b7": "\u0407",  # Ukrainian_YI
    "0x06b8": "\u0408",  # Cyrillic_JE
    "0x06b9": "\u0409",  # Cyrillic_LJE
    "0x06ba": "\u040a",  # Cyrillic_NJE
    "0x06bb": "\u040b",  # Serbian_TSHE
    "0x06bc": "\u040c",  # Macedonia_KJE
    "0x06be": "\u040e",  # Byelorussian_SHORTU
    "0x06bf": "\u040f",  # Cyrillic_DZHE
    "0x06c0": "\u044e",  # Cyrillic_yu
    "0x06c1": "\u0430",  # Cyrillic_a
    "0x06c2": "\u0431",  # Cyrillic_be
    "0x06c3": "\u0446",  # Cyrillic_tse
    "0x06c4": "\u0434",  # Cyrillic_de
    "0x06c5": "\u0435",  # Cyrillic_ie
    "0x06c6": "\u0444",  # Cyrillic_ef
    "0x06c7": "\u0433",  # Cyrillic_ghe
    "0x06c8": "\u0445",  # Cyrillic_ha
    "0x06c9": "\u0438",  # Cyrillic_i
    "0x06ca": "\u0439",  # Cyrillic_shorti
    "0x06cb": "\u043a",  # Cyrillic_ka
    "0x06cc": "\u043b",  # Cyrillic_el
    "0x06cd": "\u043c",  # Cyrillic_em
    "0x06ce": "\u043d",  # Cyrillic_en
    "0x06cf": "\u043e",  # Cyrillic_o
    "0x06d0": "\u043f",  # Cyrillic_pe
    "0x06d1": "\u044f",  # Cyrillic_ya
    "0x06d2": "\u0440",  # Cyrillic_er
    "0x06d3": "\u0441",  # Cyrillic_es
    "0x06d4": "\u0442",  # Cyrillic_te
    "0x06d5": "\u0443",  # Cyrillic_u
    "0x06d6": "\u0436",  # Cyrillic_zhe
    "0x06d7": "\u0432",  # Cyrillic_ve
    "0x06d8": "\u044c",  # Cyrillic_softsign
    "0x06d9": "\u044b",  # Cyrillic_yeru
    "0x06da": "\u0437",  # Cyrillic_ze
    "0x06db": "\u0448",  # Cyrillic_sha
    "0x06dc": "\u044d",  # Cyrillic_e
    "0x06dd": "\u0449",  # Cyrillic_shcha
    "0x06de": "\u0447",  # Cyrillic_che
    "0x06df": "\u044a",  # Cyrillic_hardsign
    "0x06e0": "\u042e",  # Cyrillic_YU
    "0x06e1": "\u0410",  # Cyrillic_A
    "0x06e2": "\u0411",  # Cyrillic_BE
    "0x06e3": "\u0426",  # Cyrillic_TSE
    "0x06e4": "\u0414",  # Cyrillic_DE
    "0x06e5": "\u0415",  # Cyrillic_IE
    "0x06e6": "\u0424",  # Cyrillic_EF
    "0x06e7": "\u0413",  # Cyrillic_GHE
    "0x06e8": "\u0425",  # Cyrillic_HA
    "0x06e9": "\u0418",  # Cyrillic_I
    "0x06ea": "\u0419",  # Cyrillic_SHORTI
    "0x06eb": "\u041a",  # Cyrillic_KA
    "0x06ec": "\u041b",  # Cyrillic_EL
    "0x06ed": "\u041c",  # Cyrillic_EM
    "0x06ee": "\u041d",  # Cyrillic_EN
    "0x06ef": "\u041e",  # Cyrillic_O
    "0x06f0": "\u041f",  # Cyrillic_PE
    "0x06f1": "\u042f",  # Cyrillic_YA
    "0x06f2": "\u0420",  # Cyrillic_ER
    "0x06f3": "\u0421",  # Cyrillic_ES
    "0x06f4": "\u0422",  # Cyrillic_TE
    "0x06f5": "\u0423",  # Cyrillic_U
    "0x06f6": "\u0416",  # Cyrillic_ZHE
    "0x06f7": "\u0412",  # Cyrillic_VE
    "0x06f8": "\u042c",  # Cyrillic_SOFTSIGN
    "0x06f9": "\u042b",  # Cyrillic_YERU
    "0x06fa": "\u0417",  # Cyrillic_ZE
    "0x06fb": "\u0428",  # Cyrillic_SHA
    "0x06fc": "\u042d",  # Cyrillic_E
    "0x06fd": "\u0429",  # Cyrillic_SHCHA
    "0x06fe": "\u0427",  # Cyrillic_CHE
    "0x06ff": "\u042a",  # Cyrillic_HARDSIGN
    "0x07a1": "\u0386",  # Greek_ALPHAaccent
    "0x07a2": "\u0388",  # Greek_EPSILONaccent
    "0x07a3": "\u0389",  # Greek_ETAaccent
    "0x07a4": "\u038a",  # Greek_IOTAaccent
    "0x07a5": "\u03aa",  # Greek_IOTAdiaeresis
    "0x07a7": "\u038c",  # Greek_OMICRONaccent
    "0x07a8": "\u038e",  # Greek_UPSILONaccent
    "0x07a9": "\u03ab",  # Greek_UPSILONdieresis
    "0x07ab": "\u038f",  # Greek_OMEGAaccent
    "0x07ae": "\u0385",  # Greek_accentdieresis
    "0x07af": "\u2015",  # Greek_horizbar
    "0x07b1": "\u03ac",  # Greek_alphaaccent
    "0x07b2": "\u03ad",  # Greek_epsilonaccent
    "0x07b3": "\u03ae",  # Greek_etaaccent
    "0x07b4": "\u03af",  # Greek_iotaaccent
    "0x07b5": "\u03ca",  # Greek_iotadieresis
    "0x07b6": "\u0390",  # Greek_iotaaccentdieresis
    "0x07b7": "\u03cc",  # Greek_omicronaccent
    "0x07b8": "\u03cd",  # Greek_upsilonaccent
    "0x07b9": "\u03cb",  # Greek_upsilondieresis
    "0x07ba": "\u03b0",  # Greek_upsilonaccentdieresis
    "0x07bb": "\u03ce",  # Greek_omegaaccent
    "0x07c1": "\u0391",  # Greek_ALPHA
    "0x07c2": "\u0392",  # Greek_BETA
    "0x07c3": "\u0393",  # Greek_GAMMA
    "0x07c4": "\u0394",  # Greek_DELTA
    "0x07c5": "\u0395",  # Greek_EPSILON
    "0x07c6": "\u0396",  # Greek_ZETA
    "0x07c7": "\u0397",  # Greek_ETA
    "0x07c8": "\u0398",  # Greek_THETA
    "0x07c9": "\u0399",  # Greek_IOTA
    "0x07ca": "\u039a",  # Greek_KAPPA
    "0x07cb": "\u039b",  # Greek_LAMBDA
    "0x07cb": "\u039b",  # Greek_LAMDA
    "0x07cc": "\u039c",  # Greek_MU
    "0x07cd": "\u039d",  # Greek_NU
    "0x07ce": "\u039e",  # Greek_XI
    "0x07cf": "\u039f",  # Greek_OMICRON
    "0x07d0": "\u03a0",  # Greek_PI
    "0x07d1": "\u03a1",  # Greek_RHO
    "0x07d2": "\u03a3",  # Greek_SIGMA
    "0x07d4": "\u03a4",  # Greek_TAU
    "0x07d5": "\u03a5",  # Greek_UPSILON
    "0x07d6": "\u03a6",  # Greek_PHI
    "0x07d7": "\u03a7",  # Greek_CHI
    "0x07d8": "\u03a8",  # Greek_PSI
    "0x07d9": "\u03a9",  # Greek_OMEGA
    "0x07e1": "\u03b1",  # Greek_alpha
    "0x07e2": "\u03b2",  # Greek_beta
    "0x07e3": "\u03b3",  # Greek_gamma
    "0x07e4": "\u03b4",  # Greek_delta
    "0x07e5": "\u03b5",  # Greek_epsilon
    "0x07e6": "\u03b6",  # Greek_zeta
    "0x07e7": "\u03b7",  # Greek_eta
    "0x07e8": "\u03b8",  # Greek_theta
    "0x07e9": "\u03b9",  # Greek_iota
    "0x07ea": "\u03ba",  # Greek_kappa
    "0x07eb": "\u03bb",  # Greek_lambda
    "0x07ec": "\u03bc",  # Greek_mu
    "0x07ed": "\u03bd",  # Greek_nu
    "0x07ee": "\u03be",  # Greek_xi
    "0x07ef": "\u03bf",  # Greek_omicron
    "0x07f0": "\u03c0",  # Greek_pi
    "0x07f1": "\u03c1",  # Greek_rho
    "0x07f2": "\u03c3",  # Greek_sigma
    "0x07f3": "\u03c2",  # Greek_finalsmallsigma
    "0x07f4": "\u03c4",  # Greek_tau
    "0x07f5": "\u03c5",  # Greek_upsilon
    "0x07f6": "\u03c6",  # Greek_phi
    "0x07f7": "\u03c7",  # Greek_chi
    "0x07f8": "\u03c8",  # Greek_psi
    "0x07f9": "\u03c9",  # Greek_omega
    "0x08a1": "\u23b7",  # leftradical
    "0x08a2": "\u250c",  # topleftradical
    "0x08a3": "\u2500",  # horizconnector
    "0x08a4": "\u2320",  # topintegral
    "0x08a5": "\u2321",  # botintegral
    "0x08a6": "\u2502",  # vertconnector
    "0x08a7": "\u23a1",  # topleftsqbracket
    "0x08a8": "\u23a3",  # botleftsqbracket
    "0x08a9": "\u23a4",  # toprightsqbracket
    "0x08aa": "\u23a6",  # botrightsqbracket
    "0x08ab": "\u239b",  # topleftparens
    "0x08ac": "\u239d",  # botleftparens
    "0x08ad": "\u239e",  # toprightparens
    "0x08ae": "\u23a0",  # botrightparens
    "0x08af": "\u23a8",  # leftmiddlecurlybrace
    "0x08b0": "\u23ac",  # rightmiddlecurlybrace
    "0x08b1": "\u0000",  # topleftsummation
    "0x08b2": "\u0000",  # botleftsummation
    "0x08b3": "\u0000",  # topvertsummationconnector
    "0x08b4": "\u0000",  # botvertsummationconnector
    "0x08b5": "\u0000",  # toprightsummation
    "0x08b6": "\u0000",  # botrightsummation
    "0x08b7": "\u0000",  # rightmiddlesummation
    "0x08bc": "\u2264",  # lessthanequal
    "0x08bd": "\u2260",  # notequal
    "0x08be": "\u2265",  # greaterthanequal
    "0x08bf": "\u222b",  # integral
    "0x08c0": "\u2234",  # therefore
    "0x08c1": "\u221d",  # variation
    "0x08c2": "\u221e",  # infinity
    "0x08c5": "\u2207",  # nabla
    "0x08c8": "\u223c",  # approximate
    "0x08c9": "\u2243",  # similarequal
    "0x08cd": "\u21d4",  # ifonlyif
    "0x08ce": "\u21d2",  # implies
    "0x08cf": "\u2261",  # identical
    "0x08d6": "\u221a",  # radical
    "0x08da": "\u2282",  # includedin
    "0x08db": "\u2283",  # includes
    "0x08dc": "\u2229",  # intersection
    "0x08dd": "\u222a",  # union
    "0x08de": "\u2227",  # logicaland
    "0x08df": "\u2228",  # logicalor
    "0x08ef": "\u2202",  # partialderivative
    "0x08f6": "\u0192",  # function
    "0x08fb": "\u2190",  # leftarrow
    "0x08fc": "\u2191",  # uparrow
    "0x08fd": "\u2192",  # rightarrow
    "0x08fe": "\u2193",  # downarrow
    "0x09df": "\u0000",  # blank
    "0x09e0": "\u25c6",  # soliddiamond
    "0x09e1": "\u2592",  # checkerboard
    "0x09e2": "\u2409",  # ht
    "0x09e3": "\u240c",  # ff
    "0x09e4": "\u240d",  # cr
    "0x09e5": "\u240a",  # lf
    "0x09e8": "\u2424",  # nl
    "0x09e9": "\u240b",  # vt
    "0x09ea": "\u2518",  # lowrightcorner
    "0x09eb": "\u2510",  # uprightcorner
    "0x09ec": "\u250c",  # upleftcorner
    "0x09ed": "\u2514",  # lowleftcorner
    "0x09ee": "\u253c",  # crossinglines
    "0x09ef": "\u23ba",  # horizlinescan1
    "0x09f0": "\u23bb",  # horizlinescan3
    "0x09f1": "\u2500",  # horizlinescan5
    "0x09f2": "\u23bc",  # horizlinescan7
    "0x09f3": "\u23bd",  # horizlinescan9
    "0x09f4": "\u251c",  # leftt
    "0x09f5": "\u2524",  # rightt
    "0x09f6": "\u2534",  # bott
    "0x09f7": "\u252c",  # topt
    "0x09f8": "\u2502",  # vertbar
    "0x0aa1": "\u2003",  # emspace
    "0x0aa2": "\u2002",  # enspace
    "0x0aa3": "\u2004",  # em3space
    "0x0aa4": "\u2005",  # em4space
    "0x0aa5": "\u2007",  # digitspace
    "0x0aa6": "\u2008",  # punctspace
    "0x0aa7": "\u2009",  # thinspace
    "0x0aa8": "\u200a",  # hairspace
    "0x0aa9": "\u2014",  # emdash
    "0x0aaa": "\u2013",  # endash
    "0x0aac": "\u2423",  # signifblank
    "0x0aae": "\u2026",  # ellipsis
    "0x0aaf": "\u2025",  # doubbaselinedot
    "0x0ab0": "\u2153",  # onethird
    "0x0ab1": "\u2154",  # twothirds
    "0x0ab2": "\u2155",  # onefifth
    "0x0ab3": "\u2156",  # twofifths
    "0x0ab4": "\u2157",  # threefifths
    "0x0ab5": "\u2158",  # fourfifths
    "0x0ab6": "\u2159",  # onesixth
    "0x0ab7": "\u215a",  # fivesixths
    "0x0ab8": "\u2105",  # careof
    "0x0abb": "\u2012",  # figdash
    "0x0abc": "\u27e8",  # leftanglebracket
    "0x0abd": "\u002e",  # decimalpoint
    "0x0abe": "\u27e9",  # rightanglebracket
    "0x0abf": "\u0000",  # marker
    "0x0ac3": "\u215b",  # oneeighth
    "0x0ac4": "\u215c",  # threeeighths
    "0x0ac5": "\u215d",  # fiveeighths
    "0x0ac6": "\u215e",  # seveneighths
    "0x0ac9": "\u2122",  # trademark
    "0x0aca": "\u2613",  # signaturemark
    "0x0acb": "\u0000",  # trademarkincircle
    "0x0acc": "\u25c1",  # leftopentriangle
    "0x0acd": "\u25b7",  # rightopentriangle
    "0x0ace": "\u25cb",  # emopencircle
    "0x0acf": "\u25af",  # emopenrectangle
    "0x0ad0": "\u2018",  # leftsinglequotemark
    "0x0ad1": "\u2019",  # rightsinglequotemark
    "0x0ad2": "\u201c",  # leftdoublequotemark
    "0x0ad3": "\u201d",  # rightdoublequotemark
    "0x0ad4": "\u211e",  # prescription
    "0x0ad6": "\u2032",  # minutes
    "0x0ad7": "\u2033",  # seconds
    "0x0ad9": "\u271d",  # latincross
    "0x0ada": "\u0000",  # hexagram
    "0x0adb": "\u25ac",  # filledrectbullet
    "0x0adc": "\u25c0",  # filledlefttribullet
    "0x0add": "\u25b6",  # filledrighttribullet
    "0x0ade": "\u25cf",  # emfilledcircle
    "0x0adf": "\u25ae",  # emfilledrect
    "0x0ae0": "\u25e6",  # enopencircbullet
    "0x0ae1": "\u25ab",  # enopensquarebullet
    "0x0ae2": "\u25ad",  # openrectbullet
    "0x0ae3": "\u25b3",  # opentribulletup
    "0x0ae4": "\u25bd",  # opentribulletdown
    "0x0ae5": "\u2606",  # openstar
    "0x0ae6": "\u2022",  # enfilledcircbullet
    "0x0ae7": "\u25aa",  # enfilledsqbullet
    "0x0ae8": "\u25b2",  # filledtribulletup
    "0x0ae9": "\u25bc",  # filledtribulletdown
    "0x0aea": "\u261c",  # leftpointer
    "0x0aeb": "\u261e",  # rightpointer
    "0x0aec": "\u2663",  # club
    "0x0aed": "\u2666",  # diamond
    "0x0aee": "\u2665",  # heart
    "0x0af0": "\u2720",  # maltesecross
    "0x0af1": "\u2020",  # dagger
    "0x0af2": "\u2021",  # doubledagger
    "0x0af3": "\u2713",  # checkmark
    "0x0af4": "\u2717",  # ballotcross
    "0x0af5": "\u266f",  # musicalsharp
    "0x0af6": "\u266d",  # musicalflat
    "0x0af7": "\u2642",  # malesymbol
    "0x0af8": "\u2640",  # femalesymbol
    "0x0af9": "\u260e",  # telephone
    "0x0afa": "\u2315",  # telephonerecorder
    "0x0afb": "\u2117",  # phonographcopyright
    "0x0afc": "\u2038",  # caret
    "0x0afd": "\u201a",  # singlelowquotemark
    "0x0afe": "\u201e",  # doublelowquotemark
    "0x0aff": "\u0000",  # cursor
    "0x0ba3": "\u003c",  # leftcaret
    "0x0ba6": "\u003e",  # rightcaret
    "0x0ba8": "\u2228",  # downcaret
    "0x0ba9": "\u2227",  # upcaret
    "0x0bc0": "\u00af",  # overbar
    "0x0bc2": "\u22a5",  # downtack
    "0x0bc3": "\u2229",  # upshoe
    "0x0bc4": "\u230a",  # downstile
    "0x0bc6": "\u005f",  # underbar
    "0x0bca": "\u2218",  # jot
    "0x0bcc": "\u2395",  # quad
    "0x0bce": "\u22a4",  # uptack
    "0x0bcf": "\u25cb",  # circle
    "0x0bd3": "\u2308",  # upstile
    "0x0bd6": "\u222a",  # downshoe
    "0x0bd8": "\u2283",  # rightshoe
    "0x0bda": "\u2282",  # leftshoe
    "0x0bdc": "\u22a2",  # lefttack
    "0x0bfc": "\u22a3",  # righttack
    "0x0cdf": "\u2017",  # hebrew_doublelowline
    "0x0ce0": "\u05d0",  # hebrew_aleph
    "0x0ce1": "\u05d1",  # hebrew_bet
    "0x0ce1": "\u05d1",  # hebrew_beth  /* deprecated */
    "0x0ce2": "\u05d2",  # hebrew_gimel
    "0x0ce2": "\u05d2",  # hebrew_gimmel  /* deprecated */
    "0x0ce3": "\u05d3",  # hebrew_dalet
    "0x0ce3": "\u05d3",  # hebrew_daleth  /* deprecated */
    "0x0ce4": "\u05d4",  # hebrew_he
    "0x0ce5": "\u05d5",  # hebrew_waw
    "0x0ce6": "\u05d6",  # hebrew_zain
    "0x0ce6": "\u05d6",  # hebrew_zayin  /* deprecated */
    "0x0ce7": "\u05d7",  # hebrew_chet
    "0x0ce7": "\u05d7",  # hebrew_het  /* deprecated */
    "0x0ce8": "\u05d8",  # hebrew_tet
    "0x0ce8": "\u05d8",  # hebrew_teth  /* deprecated */
    "0x0ce9": "\u05d9",  # hebrew_yod
    "0x0cea": "\u05da",  # hebrew_finalkaph
    "0x0ceb": "\u05db",  # hebrew_kaph
    "0x0cec": "\u05dc",  # hebrew_lamed
    "0x0ced": "\u05dd",  # hebrew_finalmem
    "0x0cee": "\u05de",  # hebrew_mem
    "0x0cef": "\u05df",  # hebrew_finalnun
    "0x0cf0": "\u05e0",  # hebrew_nun
    "0x0cf1": "\u05e1",  # hebrew_samech
    "0x0cf1": "\u05e1",  # hebrew_samekh  /* deprecated */
    "0x0cf2": "\u05e2",  # hebrew_ayin
    "0x0cf3": "\u05e3",  # hebrew_finalpe
    "0x0cf4": "\u05e4",  # hebrew_pe
    "0x0cf5": "\u05e5",  # hebrew_finalzade
    "0x0cf5": "\u05e5",  # hebrew_finalzadi  /* deprecated */
    "0x0cf6": "\u05e6",  # hebrew_zade
    "0x0cf6": "\u05e6",  # hebrew_zadi  /* deprecated */
    "0x0cf7": "\u05e7",  # hebrew_kuf  /* deprecated */
    "0x0cf7": "\u05e7",  # hebrew_qoph
    "0x0cf8": "\u05e8",  # hebrew_resh
    "0x0cf9": "\u05e9",  # hebrew_shin
    "0x0cfa": "\u05ea",  # hebrew_taf  /* deprecated */
    "0x0cfa": "\u05ea",  # hebrew_taw
    "0x0da1": "\u0e01",  # Thai_kokai
    "0x0da2": "\u0e02",  # Thai_khokhai
    "0x0da3": "\u0e03",  # Thai_khokhuat
    "0x0da4": "\u0e04",  # Thai_khokhwai
    "0x0da5": "\u0e05",  # Thai_khokhon
    "0x0da6": "\u0e06",  # Thai_khorakhang
    "0x0da7": "\u0e07",  # Thai_ngongu
    "0x0da8": "\u0e08",  # Thai_chochan
    "0x0da9": "\u0e09",  # Thai_choching
    "0x0daa": "\u0e0a",  # Thai_chochang
    "0x0dab": "\u0e0b",  # Thai_soso
    "0x0dac": "\u0e0c",  # Thai_chochoe
    "0x0dad": "\u0e0d",  # Thai_yoying
    "0x0dae": "\u0e0e",  # Thai_dochada
    "0x0daf": "\u0e0f",  # Thai_topatak
    "0x0db0": "\u0e10",  # Thai_thothan
    "0x0db1": "\u0e11",  # Thai_thonangmontho
    "0x0db2": "\u0e12",  # Thai_thophuthao
    "0x0db3": "\u0e13",  # Thai_nonen
    "0x0db4": "\u0e14",  # Thai_dodek
    "0x0db5": "\u0e15",  # Thai_totao
    "0x0db6": "\u0e16",  # Thai_thothung
    "0x0db7": "\u0e17",  # Thai_thothahan
    "0x0db8": "\u0e18",  # Thai_thothong
    "0x0db9": "\u0e19",  # Thai_nonu
    "0x0dba": "\u0e1a",  # Thai_bobaimai
    "0x0dbb": "\u0e1b",  # Thai_popla
    "0x0dbc": "\u0e1c",  # Thai_phophung
    "0x0dbd": "\u0e1d",  # Thai_fofa
    "0x0dbe": "\u0e1e",  # Thai_phophan
    "0x0dbf": "\u0e1f",  # Thai_fofan
    "0x0dc0": "\u0e20",  # Thai_phosamphao
    "0x0dc1": "\u0e21",  # Thai_moma
    "0x0dc2": "\u0e22",  # Thai_yoyak
    "0x0dc3": "\u0e23",  # Thai_rorua
    "0x0dc4": "\u0e24",  # Thai_ru
    "0x0dc5": "\u0e25",  # Thai_loling
    "0x0dc6": "\u0e26",  # Thai_lu
    "0x0dc7": "\u0e27",  # Thai_wowaen
    "0x0dc8": "\u0e28",  # Thai_sosala
    "0x0dc9": "\u0e29",  # Thai_sorusi
    "0x0dca": "\u0e2a",  # Thai_sosua
    "0x0dcb": "\u0e2b",  # Thai_hohip
    "0x0dcc": "\u0e2c",  # Thai_lochula
    "0x0dcd": "\u0e2d",  # Thai_oang
    "0x0dce": "\u0e2e",  # Thai_honokhuk
    "0x0dcf": "\u0e2f",  # Thai_paiyannoi
    "0x0dd0": "\u0e30",  # Thai_saraa
    "0x0dd1": "\u0e31",  # Thai_maihanakat
    "0x0dd2": "\u0e32",  # Thai_saraaa
    "0x0dd3": "\u0e33",  # Thai_saraam
    "0x0dd4": "\u0e34",  # Thai_sarai
    "0x0dd5": "\u0e35",  # Thai_saraii
    "0x0dd6": "\u0e36",  # Thai_saraue
    "0x0dd7": "\u0e37",  # Thai_sarauee
    "0x0dd8": "\u0e38",  # Thai_sarau
    "0x0dd9": "\u0e39",  # Thai_sarauu
    "0x0dda": "\u0e3a",  # Thai_phinthu
    "0x0dde": "\u0000",  # Thai_maihanakat_maitho
    "0x0ddf": "\u0e3f",  # Thai_baht
    "0x0de0": "\u0e40",  # Thai_sarae
    "0x0de1": "\u0e41",  # Thai_saraae
    "0x0de2": "\u0e42",  # Thai_sarao
    "0x0de3": "\u0e43",  # Thai_saraaimaimuan
    "0x0de4": "\u0e44",  # Thai_saraaimaimalai
    "0x0de5": "\u0e45",  # Thai_lakkhangyao
    "0x0de6": "\u0e46",  # Thai_maiyamok
    "0x0de7": "\u0e47",  # Thai_maitaikhu
    "0x0de8": "\u0e48",  # Thai_maiek
    "0x0de9": "\u0e49",  # Thai_maitho
    "0x0dea": "\u0e4a",  # Thai_maitri
    "0x0deb": "\u0e4b",  # Thai_maichattawa
    "0x0dec": "\u0e4c",  # Thai_thanthakhat
    "0x0ded": "\u0e4d",  # Thai_nikhahit
    "0x0df0": "\u0e50",  # Thai_leksun
    "0x0df1": "\u0e51",  # Thai_leknung
    "0x0df2": "\u0e52",  # Thai_leksong
    "0x0df3": "\u0e53",  # Thai_leksam
    "0x0df4": "\u0e54",  # Thai_leksi
    "0x0df5": "\u0e55",  # Thai_lekha
    "0x0df6": "\u0e56",  # Thai_lekhok
    "0x0df7": "\u0e57",  # Thai_lekchet
    "0x0df8": "\u0e58",  # Thai_lekpaet
    "0x0df9": "\u0e59",  # Thai_lekkao
    "0x0ea1": "\u3131",  # Hangul_Kiyeog
    "0x0ea2": "\u3132",  # Hangul_SsangKiyeog
    "0x0ea3": "\u3133",  # Hangul_KiyeogSios
    "0x0ea4": "\u3134",  # Hangul_Nieun
    "0x0ea5": "\u3135",  # Hangul_NieunJieuj
    "0x0ea6": "\u3136",  # Hangul_NieunHieuh
    "0x0ea7": "\u3137",  # Hangul_Dikeud
    "0x0ea8": "\u3138",  # Hangul_SsangDikeud
    "0x0ea9": "\u3139",  # Hangul_Rieul
    "0x0eaa": "\u313a",  # Hangul_RieulKiyeog
    "0x0eab": "\u313b",  # Hangul_RieulMieum
    "0x0eac": "\u313c",  # Hangul_RieulPieub
    "0x0ead": "\u313d",  # Hangul_RieulSios
    "0x0eae": "\u313e",  # Hangul_RieulTieut
    "0x0eaf": "\u313f",  # Hangul_RieulPhieuf
    "0x0eb0": "\u3140",  # Hangul_RieulHieuh
    "0x0eb1": "\u3141",  # Hangul_Mieum
    "0x0eb2": "\u3142",  # Hangul_Pieub
    "0x0eb3": "\u3143",  # Hangul_SsangPieub
    "0x0eb4": "\u3144",  # Hangul_PieubSios
    "0x0eb5": "\u3145",  # Hangul_Sios
    "0x0eb6": "\u3146",  # Hangul_SsangSios
    "0x0eb7": "\u3147",  # Hangul_Ieung
    "0x0eb8": "\u3148",  # Hangul_Jieuj
    "0x0eb9": "\u3149",  # Hangul_SsangJieuj
    "0x0eba": "\u314a",  # Hangul_Cieuc
    "0x0ebb": "\u314b",  # Hangul_Khieuq
    "0x0ebc": "\u314c",  # Hangul_Tieut
    "0x0ebd": "\u314d",  # Hangul_Phieuf
    "0x0ebe": "\u314e",  # Hangul_Hieuh
    "0x0ebf": "\u314f",  # Hangul_A
    "0x0ec0": "\u3150",  # Hangul_AE
    "0x0ec1": "\u3151",  # Hangul_YA
    "0x0ec2": "\u3152",  # Hangul_YAE
    "0x0ec3": "\u3153",  # Hangul_EO
    "0x0ec4": "\u3154",  # Hangul_E
    "0x0ec5": "\u3155",  # Hangul_YEO
    "0x0ec6": "\u3156",  # Hangul_YE
    "0x0ec7": "\u3157",  # Hangul_O
    "0x0ec8": "\u3158",  # Hangul_WA
    "0x0ec9": "\u3159",  # Hangul_WAE
    "0x0eca": "\u315a",  # Hangul_OE
    "0x0ecb": "\u315b",  # Hangul_YO
    "0x0ecc": "\u315c",  # Hangul_U
    "0x0ecd": "\u315d",  # Hangul_WEO
    "0x0ece": "\u315e",  # Hangul_WE
    "0x0ecf": "\u315f",  # Hangul_WI
    "0x0ed0": "\u3160",  # Hangul_YU
    "0x0ed1": "\u3161",  # Hangul_EU
    "0x0ed2": "\u3162",  # Hangul_YI
    "0x0ed3": "\u3163",  # Hangul_I
    "0x0ed4": "\u11a8",  # Hangul_J_Kiyeog
    "0x0ed5": "\u11a9",  # Hangul_J_SsangKiyeog
    "0x0ed6": "\u11aa",  # Hangul_J_KiyeogSios
    "0x0ed7": "\u11ab",  # Hangul_J_Nieun
    "0x0ed8": "\u11ac",  # Hangul_J_NieunJieuj
    "0x0ed9": "\u11ad",  # Hangul_J_NieunHieuh
    "0x0eda": "\u11ae",  # Hangul_J_Dikeud
    "0x0edb": "\u11af",  # Hangul_J_Rieul
    "0x0edc": "\u11b0",  # Hangul_J_RieulKiyeog
    "0x0edd": "\u11b1",  # Hangul_J_RieulMieum
    "0x0ede": "\u11b2",  # Hangul_J_RieulPieub
    "0x0edf": "\u11b3",  # Hangul_J_RieulSios
    "0x0ee0": "\u11b4",  # Hangul_J_RieulTieut
    "0x0ee1": "\u11b5",  # Hangul_J_RieulPhieuf
    "0x0ee2": "\u11b6",  # Hangul_J_RieulHieuh
    "0x0ee3": "\u11b7",  # Hangul_J_Mieum
    "0x0ee4": "\u11b8",  # Hangul_J_Pieub
    "0x0ee5": "\u11b9",  # Hangul_J_PieubSios
    "0x0ee6": "\u11ba",  # Hangul_J_Sios
    "0x0ee7": "\u11bb",  # Hangul_J_SsangSios
    "0x0ee8": "\u11bc",  # Hangul_J_Ieung
    "0x0ee9": "\u11bd",  # Hangul_J_Jieuj
    "0x0eea": "\u11be",  # Hangul_J_Cieuc
    "0x0eeb": "\u11bf",  # Hangul_J_Khieuq
    "0x0eec": "\u11c0",  # Hangul_J_Tieut
    "0x0eed": "\u11c1",  # Hangul_J_Phieuf
    "0x0eee": "\u11c2",  # Hangul_J_Hieuh
    "0x0eef": "\u316d",  # Hangul_RieulYeorinHieuh
    "0x0ef0": "\u3171",  # Hangul_SunkyeongeumMieum
    "0x0ef1": "\u3178",  # Hangul_SunkyeongeumPieub
    "0x0ef2": "\u317f",  # Hangul_PanSios
    "0x0ef3": "\u3181",  # Hangul_KkogjiDalrinIeung
    "0x0ef4": "\u3184",  # Hangul_SunkyeongeumPhieuf
    "0x0ef5": "\u3186",  # Hangul_YeorinHieuh
    "0x0ef6": "\u318d",  # Hangul_AraeA
    "0x0ef7": "\u318e",  # Hangul_AraeAE
    "0x0ef8": "\u11eb",  # Hangul_J_PanSios
    "0x0ef9": "\u11f0",  # Hangul_J_KkogjiDalrinIeung
    "0x0efa": "\u11f9",  # Hangul_J_YeorinHieuh
    "0x0eff": "\u20a9",  # Korean_Won
    "0x13bc": "\u0152",  # OE
    "0x13bd": "\u0153",  # oe
    "0x13be": "\u0178",  # Ydiaeresis
    "0x20a0": "\u20a0",  # EcuSign
    "0x20a1": "\u20a1",  # ColonSign
    "0x20a2": "\u20a2",  # CruzeiroSign
    "0x20a3": "\u20a3",  # FFrancSign
    "0x20a4": "\u20a4",  # LiraSign
    "0x20a5": "\u20a5",  # MillSign
    "0x20a6": "\u20a6",  # NairaSign
    "0x20a7": "\u20a7",  # PesetaSign
    "0x20a8": "\u20a8",  # RupeeSign
    "0x20a9": "\u20a9",  # WonSign
    "0x20aa": "\u20aa",  # NewSheqelSign
    "0x20ab": "\u20ab",  # DongSign
    "0x20ac": "\u20ac",  # EuroSign
    "0xfd01": "\u0000",  # 3270_Duplicate
    "0xfd02": "\u0000",  # 3270_FieldMark
    "0xfd03": "\u0000",  # 3270_Right2
    "0xfd04": "\u0000",  # 3270_Left2
    "0xfd05": "\u0000",  # 3270_BackTab
    "0xfd06": "\u0000",  # 3270_EraseEOF
    "0xfd07": "\u0000",  # 3270_EraseInput
    "0xfd08": "\u0000",  # 3270_Reset
    "0xfd09": "\u0000",  # 3270_Quit
    "0xfd0a": "\u0000",  # 3270_PA1
    "0xfd0b": "\u0000",  # 3270_PA2
    "0xfd0c": "\u0000",  # 3270_PA3
    "0xfd0d": "\u0000",  # 3270_Test
    "0xfd0e": "\u0000",  # 3270_Attn
    "0xfd0f": "\u0000",  # 3270_CursorBlink
    "0xfd10": "\u0000",  # 3270_AltCursor
    "0xfd11": "\u0000",  # 3270_KeyClick
    "0xfd12": "\u0000",  # 3270_Jump
    "0xfd13": "\u0000",  # 3270_Ident
    "0xfd14": "\u0000",  # 3270_Rule
    "0xfd15": "\u0000",  # 3270_Copy
    "0xfd16": "\u0000",  # 3270_Play
    "0xfd17": "\u0000",  # 3270_Setup
    "0xfd18": "\u0000",  # 3270_Record
    "0xfd19": "\u0000",  # 3270_ChangeScreen
    "0xfd1a": "\u0000",  # 3270_DeleteWord
    "0xfd1b": "\u0000",  # 3270_ExSelect
    "0xfd1c": "\u0000",  # 3270_CursorSelect
    "0xfd1d": "\u0000",  # 3270_PrintScreen
    "0xfd1e": "\u0000",  # 3270_Enter
    "0xfe01": "\u0000",  # ISO_Lock
    "0xfe02": "\u0000",  # ISO_Level2_Latch
    "0xfe03": "\u0000",  # ISO_Level3_Shift
    "0xfe04": "\u0000",  # ISO_Level3_Latch
    "0xfe05": "\u0000",  # ISO_Level3_Lock
    "0xfe06": "\u0000",  # ISO_Group_Latch
    "0xfe07": "\u0000",  # ISO_Group_Lock
    "0xfe08": "\u0000",  # ISO_Next_Group
    "0xfe09": "\u0000",  # ISO_Next_Group_Lock
    "0xfe0a": "\u0000",  # ISO_Prev_Group
    "0xfe0b": "\u0000",  # ISO_Prev_Group_Lock
    "0xfe0c": "\u0000",  # ISO_First_Group
    "0xfe0d": "\u0000",  # ISO_First_Group_Lock
    "0xfe0e": "\u0000",  # ISO_Last_Group
    "0xfe0f": "\u0000",  # ISO_Last_Group_Lock
    "0xfe20": "\u0000",  # ISO_Left_Tab
    "0xfe21": "\u0000",  # ISO_Move_Line_Up
    "0xfe22": "\u0000",  # ISO_Move_Line_Down
    "0xfe23": "\u0000",  # ISO_Partial_Line_Up
    "0xfe24": "\u0000",  # ISO_Partial_Line_Down
    "0xfe25": "\u0000",  # ISO_Partial_Space_Left
    "0xfe26": "\u0000",  # ISO_Partial_Space_Right
    "0xfe27": "\u0000",  # ISO_Set_Margin_Left
    "0xfe28": "\u0000",  # ISO_Set_Margin_Right
    "0xfe29": "\u0000",  # ISO_Release_Margin_Left
    "0xfe2a": "\u0000",  # ISO_Release_Margin_Right
    "0xfe2b": "\u0000",  # ISO_Release_Both_Margins
    "0xfe2c": "\u0000",  # ISO_Fast_Cursor_Left
    "0xfe2d": "\u0000",  # ISO_Fast_Cursor_Right
    "0xfe2e": "\u0000",  # ISO_Fast_Cursor_Up
    "0xfe2f": "\u0000",  # ISO_Fast_Cursor_Down
    "0xfe30": "\u0000",  # ISO_Continuous_Underline
    "0xfe31": "\u0000",  # ISO_Discontinuous_Underline
    "0xfe32": "\u0000",  # ISO_Emphasize
    "0xfe33": "\u0000",  # ISO_Center_Object
    "0xfe34": "\u0000",  # ISO_Enter
    "0xfe50": "\u0300",  # dead_grave
    "0xfe51": "\u0301",  # dead_acute
    "0xfe52": "\u0302",  # dead_circumflex
    "0xfe53": "\u0303",  # dead_tilde
    "0xfe54": "\u0304",  # dead_macron
    "0xfe55": "\u0306",  # dead_breve
    "0xfe56": "\u0307",  # dead_abovedot
    "0xfe57": "\u0308",  # dead_diaeresis
    "0xfe58": "\u030a",  # dead_abovering
    "0xfe59": "\u030b",  # dead_doubleacute
    "0xfe5a": "\u030c",  # dead_caron
    "0xfe5b": "\u0327",  # dead_cedilla
    "0xfe5c": "\u0328",  # dead_ogonek
    "0xfe5d": "\u0345",  # dead_iota
    "0xfe5e": "\u3099",  # dead_voiced_sound
    "0xfe5f": "\u309a",  # dead_semivoiced_sound
    "0xfe70": "\u0000",  # AccessX_Enable
    "0xfe71": "\u0000",  # AccessX_Feedback_Enable
    "0xfe72": "\u0000",  # RepeatKeys_Enable
    "0xfe73": "\u0000",  # SlowKeys_Enable
    "0xfe74": "\u0000",  # BounceKeys_Enable
    "0xfe75": "\u0000",  # StickyKeys_Enable
    "0xfe76": "\u0000",  # MouseKeys_Enable
    "0xfe77": "\u0000",  # MouseKeys_Accel_Enable
    "0xfe78": "\u0000",  # Overlay1_Enable
    "0xfe79": "\u0000",  # Overlay2_Enable
    "0xfe7a": "\u0000",  # AudibleBell_Enable
    "0xfed0": "\u0000",  # First_Virtual_Screen
    "0xfed1": "\u0000",  # Prev_Virtual_Screen
    "0xfed2": "\u0000",  # Next_Virtual_Screen
    "0xfed4": "\u0000",  # Last_Virtual_Screen
    "0xfed5": "\u0000",  # Terminate_Server
    "0xfee0": "\u0000",  # Pointer_Left
    "0xfee1": "\u0000",  # Pointer_Right
    "0xfee2": "\u0000",  # Pointer_Up
    "0xfee3": "\u0000",  # Pointer_Down
    "0xfee4": "\u0000",  # Pointer_UpLeft
    "0xfee5": "\u0000",  # Pointer_UpRight
    "0xfee6": "\u0000",  # Pointer_DownLeft
    "0xfee7": "\u0000",  # Pointer_DownRight
    "0xfee8": "\u0000",  # Pointer_Button_Dflt
    "0xfee9": "\u0000",  # Pointer_Button1
    "0xfeea": "\u0000",  # Pointer_Button2
    "0xfeeb": "\u0000",  # Pointer_Button3
    "0xfeec": "\u0000",  # Pointer_Button4
    "0xfeed": "\u0000",  # Pointer_Button5
    "0xfeee": "\u0000",  # Pointer_DblClick_Dflt
    "0xfeef": "\u0000",  # Pointer_DblClick1
    "0xfef0": "\u0000",  # Pointer_DblClick2
    "0xfef1": "\u0000",  # Pointer_DblClick3
    "0xfef2": "\u0000",  # Pointer_DblClick4
    "0xfef3": "\u0000",  # Pointer_DblClick5
    "0xfef4": "\u0000",  # Pointer_Drag_Dflt
    "0xfef5": "\u0000",  # Pointer_Drag1
    "0xfef6": "\u0000",  # Pointer_Drag2
    "0xfef7": "\u0000",  # Pointer_Drag3
    "0xfef8": "\u0000",  # Pointer_Drag4
    "0xfef9": "\u0000",  # Pointer_EnableKeys
    "0xfefa": "\u0000",  # Pointer_Accelerate
    "0xfefb": "\u0000",  # Pointer_DfltBtnNext
    "0xfefc": "\u0000",  # Pointer_DfltBtnPrev
    "0xfefd": "\u0000",  # Pointer_Drag5
    "0xff08": "\u0008",  # BackSpace /* back space, back char */
    "0xff09": "\u0009",  # Tab
    "0xff0a": "\u000a",  # Linefeed /* Linefeed, LF */
    "0xff0b": "\u000b",  # Clear
    "0xff0d": "\u000d",  # Return /* Return, enter */
    "0xff13": "\u0013",  # Pause /* Pause, hold */
    "0xff14": "\u0014",  # Scroll_Lock
    "0xff15": "\u0015",  # Sys_Req
    "0xff1b": "\u001b",  # Escape
    "0xff20": "\u0000",  # Multi_key
    "0xff21": "\u0000",  # Kanji
    "0xff22": "\u0000",  # Muhenkan
    "0xff23": "\u0000",  # Henkan_Mode
    "0xff24": "\u0000",  # Romaji
    "0xff25": "\u0000",  # Hiragana
    "0xff26": "\u0000",  # Katakana
    "0xff27": "\u0000",  # Hiragana_Katakana
    "0xff28": "\u0000",  # Zenkaku
    "0xff29": "\u0000",  # Hankaku
    "0xff2a": "\u0000",  # Zenkaku_Hankaku
    "0xff2b": "\u0000",  # Touroku
    "0xff2c": "\u0000",  # Massyo
    "0xff2d": "\u0000",  # Kana_Lock
    "0xff2e": "\u0000",  # Kana_Shift
    "0xff2f": "\u0000",  # Eisu_Shift
    "0xff30": "\u0000",  # Eisu_toggle
    "0xff31": "\u0000",  # Hangul
    "0xff32": "\u0000",  # Hangul_Start
    "0xff33": "\u0000",  # Hangul_End
    "0xff34": "\u0000",  # Hangul_Hanja
    "0xff35": "\u0000",  # Hangul_Jamo
    "0xff36": "\u0000",  # Hangul_Romaja
    "0xff37": "\u0000",  # Codeinput
    "0xff38": "\u0000",  # Hangul_Jeonja
    "0xff39": "\u0000",  # Hangul_Banja
    "0xff3a": "\u0000",  # Hangul_PreHanja
    "0xff3b": "\u0000",  # Hangul_PostHanja
    "0xff3c": "\u0000",  # SingleCandidate
    "0xff3d": "\u0000",  # MultipleCandidate
    "0xff3e": "\u0000",  # PreviousCandidate
    "0xff3f": "\u0000",  # Hangul_Special
    "0xff50": "\u0000",  # Home
    "0xff51": "\u0000",  # Left
    "0xff52": "\u0000",  # Up
    "0xff53": "\u0000",  # Right
    "0xff54": "\u0000",  # Down
    "0xff55": "\u0000",  # Prior
    "0xff56": "\u0000",  # Next
    "0xff57": "\u0000",  # End
    "0xff58": "\u0000",  # Begin
    "0xff60": "\u0000",  # Select
    "0xff61": "\u0000",  # Print
    "0xff62": "\u0000",  # Execute
    "0xff63": "\u0000",  # Insert
    "0xff65": "\u0000",  # Undo
    "0xff66": "\u0000",  # Redo
    "0xff67": "\u0000",  # Menu
    "0xff68": "\u0000",  # Find
    "0xff69": "\u0000",  # Cancel
    "0xff6a": "\u0000",  # Help
    "0xff6b": "\u0000",  # Break
    "0xff7e": "\u0000",  # Mode_switch
    "0xff7f": "\u0000",  # Num_Lock
    "0xff80": "\u0020",  # KP_Space /* space */
    "0xff89": "\u0009",  # KP_Tab
    "0xff8d": "\u000d",  # KP_Enter /* enter */
    "0xff91": "\u0000",  # KP_F1
    "0xff92": "\u0000",  # KP_F2
    "0xff93": "\u0000",  # KP_F3
    "0xff94": "\u0000",  # KP_F4
    "0xff95": "\u0000",  # KP_Home
    "0xff96": "\u0000",  # KP_Left
    "0xff97": "\u0000",  # KP_Up
    "0xff98": "\u0000",  # KP_Right
    "0xff99": "\u0000",  # KP_Down
    "0xff9a": "\u0000",  # KP_Prior
    "0xff9b": "\u0000",  # KP_Next
    "0xff9c": "\u0000",  # KP_End
    "0xff9d": "\u0000",  # KP_Begin
    "0xff9e": "\u0000",  # KP_Insert
    "0xff9f": "\u0000",  # KP_Delete
    "0xffaa": "\u002a",  # KP_Multiply
    "0xffab": "\u002b",  # KP_Add
    "0xffac": "\u002c",  # KP_Separator /* separator, often comma */
    "0xffad": "\u002d",  # KP_Subtract
    "0xffae": "\u002e",  # KP_Decimal
    "0xffaf": "\u002f",  # KP_Divide
    "0xffb0": "\u0030",  # KP_0
    "0xffb1": "\u0031",  # KP_1
    "0xffb2": "\u0032",  # KP_2
    "0xffb3": "\u0033",  # KP_3
    "0xffb4": "\u0034",  # KP_4
    "0xffb5": "\u0035",  # KP_5
    "0xffb6": "\u0036",  # KP_6
    "0xffb7": "\u0037",  # KP_7
    "0xffb8": "\u0038",  # KP_8
    "0xffb9": "\u0039",  # KP_9
    "0xffbd": "\u003d",  # KP_Equal /* equals */
    "0xffbe": "\u0000",  # F1
    "0xffbf": "\u0000",  # F2
    "0xffc0": "\u0000",  # F3
    "0xffc1": "\u0000",  # F4
    "0xffc2": "\u0000",  # F5
    "0xffc3": "\u0000",  # F6
    "0xffc4": "\u0000",  # F7
    "0xffc5": "\u0000",  # F8
    "0xffc6": "\u0000",  # F9
    "0xffc7": "\u0000",  # F10
    "0xffc8": "\u0000",  # F11
    "0xffc9": "\u0000",  # F12
    "0xffca": "\u0000",  # F13
    "0xffcb": "\u0000",  # F14
    "0xffcc": "\u0000",  # F15
    "0xffcd": "\u0000",  # F16
    "0xffce": "\u0000",  # F17
    "0xffcf": "\u0000",  # F18
    "0xffd0": "\u0000",  # F19
    "0xffd1": "\u0000",  # F20
    "0xffd2": "\u0000",  # F21
    "0xffd3": "\u0000",  # F22
    "0xffd4": "\u0000",  # F23
    "0xffd5": "\u0000",  # F24
    "0xffd6": "\u0000",  # F25
    "0xffd7": "\u0000",  # F26
    "0xffd8": "\u0000",  # F27
    "0xffd9": "\u0000",  # F28
    "0xffda": "\u0000",  # F29
    "0xffdb": "\u0000",  # F30
    "0xffdc": "\u0000",  # F31
    "0xffdd": "\u0000",  # F32
    "0xffde": "\u0000",  # F33
    "0xffdf": "\u0000",  # F34
    "0xffe0": "\u0000",  # F35
    "0xffe1": "\u0000",  # Shift_L
    "0xffe2": "\u0000",  # Shift_R
    "0xffe3": "\u0000",  # Control_L
    "0xffe4": "\u0000",  # Control_R
    "0xffe5": "\u0000",  # Caps_Lock
    "0xffe6": "\u0000",  # Shift_Lock
    "0xffe7": "\u0000",  # Meta_L
    "0xffe8": "\u0000",  # Meta_R
    "0xffe9": "\u0000",  # Alt_L
    "0xffea": "\u0000",  # Alt_R
    "0xffeb": "\u0000",  # Super_L
    "0xffec": "\u0000",  # Super_R
    "0xffed": "\u0000",  # Hyper_L
    "0xffee": "\u0000",  # Hyper_R
    "0xffff": "\u0000",  # Delete
    "0xffffff": "\u0000",  # VoidSymbol
    "0x06ad": "\u0491",  # Ukrainian_ghe_with_upturn
    "0x06bd": "\u0490",  # Ukrainian_GHE_WITH_UPTURN
    "0x14a1": "\u0000",  # Armenian_eternity
    "0x14a2": "\u0587",  # Armenian_ligature_ew
    "0x14a3": "\u0589",  # Armenian_verjaket
    "0x14a4": "\u0029",  # Armenian_parenright
    "0x14a5": "\u0028",  # Armenian_parenleft
    "0x14a6": "\u00bb",  # Armenian_guillemotright
    "0x14a7": "\u00ab",  # Armenian_guillemotleft
    "0x14a8": "\u2014",  # Armenian_em_dash
    "0x14a9": "\u002e",  # Armenian_mijaket
    "0x14aa": "\u055d",  # Armenian_but
    "0x14ab": "\u002c",  # Armenian_comma
    "0x14ac": "\u2013",  # Armenian_en_dash
    "0x14ad": "\u058a",  # Armenian_yentamna
    "0x14ae": "\u2026",  # Armenian_ellipsis
    "0x14af": "\u055c",  # Armenian_amanak
    "0x14b0": "\u055b",  # Armenian_shesht
    "0x14b1": "\u055e",  # Armenian_paruyk
    "0x14b2": "\u0531",  # Armenian_AYB
    "0x14b3": "\u0561",  # Armenian_ayb
    "0x14b4": "\u0532",  # Armenian_BEN
    "0x14b5": "\u0562",  # Armenian_ben
    "0x14b6": "\u0533",  # Armenian_GIM
    "0x14b7": "\u0563",  # Armenian_gim
    "0x14b8": "\u0534",  # Armenian_DA
    "0x14b9": "\u0564",  # Armenian_da
    "0x14ba": "\u0535",  # Armenian_YECH
    "0x14bb": "\u0565",  # Armenian_yech
    "0x14bc": "\u0536",  # Armenian_ZA
    "0x14bd": "\u0566",  # Armenian_za
    "0x14be": "\u0537",  # Armenian_E
    "0x14bf": "\u0567",  # Armenian_e
    "0x14c0": "\u0538",  # Armenian_AT
    "0x14c1": "\u0568",  # Armenian_at
    "0x14c2": "\u0539",  # Armenian_TO
    "0x14c3": "\u0569",  # Armenian_to
    "0x14c4": "\u053a",  # Armenian_ZHE
    "0x14c5": "\u056a",  # Armenian_zhe
    "0x14c6": "\u053b",  # Armenian_INI
    "0x14c7": "\u056b",  # Armenian_ini
    "0x14c8": "\u053c",  # Armenian_LYUN
    "0x14c9": "\u056c",  # Armenian_lyun
    "0x14ca": "\u053d",  # Armenian_KHE
    "0x14cb": "\u056d",  # Armenian_khe
    "0x14cc": "\u053e",  # Armenian_TSA
    "0x14cd": "\u056e",  # Armenian_tsa
    "0x14ce": "\u053f",  # Armenian_KEN
    "0x14cf": "\u056f",  # Armenian_ken
    "0x14d0": "\u0540",  # Armenian_HO
    "0x14d1": "\u0570",  # Armenian_ho
    "0x14d2": "\u0541",  # Armenian_DZA
    "0x14d3": "\u0571",  # Armenian_dza
    "0x14d4": "\u0542",  # Armenian_GHAT
    "0x14d5": "\u0572",  # Armenian_ghat
    "0x14d6": "\u0543",  # Armenian_TCHE
    "0x14d7": "\u0573",  # Armenian_tche
    "0x14d8": "\u0544",  # Armenian_MEN
    "0x14d9": "\u0574",  # Armenian_men
    "0x14da": "\u0545",  # Armenian_HI
    "0x14db": "\u0575",  # Armenian_hi
    "0x14dc": "\u0546",  # Armenian_NU
    "0x14dd": "\u0576",  # Armenian_nu
    "0x14de": "\u0547",  # Armenian_SHA
    "0x14df": "\u0577",  # Armenian_sha
    "0x14e0": "\u0548",  # Armenian_VO
    "0x14e1": "\u0578",  # Armenian_vo
    "0x14e2": "\u0549",  # Armenian_CHA
    "0x14e3": "\u0579",  # Armenian_cha
    "0x14e4": "\u054a",  # Armenian_PE
    "0x14e5": "\u057a",  # Armenian_pe
    "0x14e6": "\u054b",  # Armenian_JE
    "0x14e7": "\u057b",  # Armenian_je
    "0x14e8": "\u054c",  # Armenian_RA
    "0x14e9": "\u057c",  # Armenian_ra
    "0x14ea": "\u054d",  # Armenian_SE
    "0x14eb": "\u057d",  # Armenian_se
    "0x14ec": "\u054e",  # Armenian_VEV
    "0x14ed": "\u057e",  # Armenian_vev
    "0x14ee": "\u054f",  # Armenian_TYUN
    "0x14ef": "\u057f",  # Armenian_tyun
    "0x14f0": "\u0550",  # Armenian_RE
    "0x14f1": "\u0580",  # Armenian_re
    "0x14f2": "\u0551",  # Armenian_TSO
    "0x14f3": "\u0581",  # Armenian_tso
    "0x14f4": "\u0552",  # Armenian_VYUN
    "0x14f5": "\u0582",  # Armenian_vyun
    "0x14f6": "\u0553",  # Armenian_PYUR
    "0x14f7": "\u0583",  # Armenian_pyur
    "0x14f8": "\u0554",  # Armenian_KE
    "0x14f9": "\u0584",  # Armenian_ke
    "0x14fa": "\u0555",  # Armenian_O
    "0x14fb": "\u0585",  # Armenian_o
    "0x14fc": "\u0556",  # Armenian_FE
    "0x14fd": "\u0586",  # Armenian_fe
    "0x14fe": "\u055a",  # Armenian_apostrophe
    "0x14ff": "\u00a7",  # Armenian_section_sign
    "0x15d0": "\u10d0",  # Georgian_an
    "0x15d1": "\u10d1",  # Georgian_ban
    "0x15d2": "\u10d2",  # Georgian_gan
    "0x15d3": "\u10d3",  # Georgian_don
    "0x15d4": "\u10d4",  # Georgian_en
    "0x15d5": "\u10d5",  # Georgian_vin
    "0x15d6": "\u10d6",  # Georgian_zen
    "0x15d7": "\u10d7",  # Georgian_tan
    "0x15d8": "\u10d8",  # Georgian_in
    "0x15d9": "\u10d9",  # Georgian_kan
    "0x15da": "\u10da",  # Georgian_las
    "0x15db": "\u10db",  # Georgian_man
    "0x15dc": "\u10dc",  # Georgian_nar
    "0x15dd": "\u10dd",  # Georgian_on
    "0x15de": "\u10de",  # Georgian_par
    "0x15df": "\u10df",  # Georgian_zhar
    "0x15e0": "\u10e0",  # Georgian_rae
    "0x15e1": "\u10e1",  # Georgian_san
    "0x15e2": "\u10e2",  # Georgian_tar
    "0x15e3": "\u10e3",  # Georgian_un
    "0x15e4": "\u10e4",  # Georgian_phar
    "0x15e5": "\u10e5",  # Georgian_khar
    "0x15e6": "\u10e6",  # Georgian_ghan
    "0x15e7": "\u10e7",  # Georgian_qar
    "0x15e8": "\u10e8",  # Georgian_shin
    "0x15e9": "\u10e9",  # Georgian_chin
    "0x15ea": "\u10ea",  # Georgian_can
    "0x15eb": "\u10eb",  # Georgian_jil
    "0x15ec": "\u10ec",  # Georgian_cil
    "0x15ed": "\u10ed",  # Georgian_char
    "0x15ee": "\u10ee",  # Georgian_xan
    "0x15ef": "\u10ef",  # Georgian_jhan
    "0x15f0": "\u10f0",  # Georgian_hae
    "0x15f1": "\u10f1",  # Georgian_he
    "0x15f2": "\u10f2",  # Georgian_hie
    "0x15f3": "\u10f3",  # Georgian_we
    "0x15f4": "\u10f4",  # Georgian_har
    "0x15f5": "\u10f5",  # Georgian_hoe
    "0x15f6": "\u10f6",  # Georgian_fi
    "0x12a1": "\u1e02",  # Babovedot
    "0x12a2": "\u1e03",  # babovedot
    "0x12a6": "\u1e0a",  # Dabovedot
    "0x12a8": "\u1e80",  # Wgrave
    "0x12aa": "\u1e82",  # Wacute
    "0x12ab": "\u1e0b",  # dabovedot
    "0x12ac": "\u1ef2",  # Ygrave
    "0x12b0": "\u1e1e",  # Fabovedot
    "0x12b1": "\u1e1f",  # fabovedot
    "0x12b4": "\u1e40",  # Mabovedot
    "0x12b5": "\u1e41",  # mabovedot
    "0x12b7": "\u1e56",  # Pabovedot
    "0x12b8": "\u1e81",  # wgrave
    "0x12b9": "\u1e57",  # pabovedot
    "0x12ba": "\u1e83",  # wacute
    "0x12bb": "\u1e60",  # Sabovedot
    "0x12bc": "\u1ef3",  # ygrave
    "0x12bd": "\u1e84",  # Wdiaeresis
    "0x12be": "\u1e85",  # wdiaeresis
    "0x12bf": "\u1e61",  # sabovedot
    "0x12d0": "\u0174",  # Wcircumflex
    "0x12d7": "\u1e6a",  # Tabovedot
    "0x12de": "\u0176",  # Ycircumflex
    "0x12f0": "\u0175",  # wcircumflex
    "0x12f7": "\u1e6b",  # tabovedot
    "0x12fe": "\u0177",  # ycircumflex
    "0x0590": "\u06f0",  # Farsi_0
    "0x0591": "\u06f1",  # Farsi_1
    "0x0592": "\u06f2",  # Farsi_2
    "0x0593": "\u06f3",  # Farsi_3
    "0x0594": "\u06f4",  # Farsi_4
    "0x0595": "\u06f5",  # Farsi_5
    "0x0596": "\u06f6",  # Farsi_6
    "0x0597": "\u06f7",  # Farsi_7
    "0x0598": "\u06f8",  # Farsi_8
    "0x0599": "\u06f9",  # Farsi_9
    "0x05a5": "\u066a",  # Arabic_percent
    "0x05a6": "\u0670",  # Arabic_superscript_alef
    "0x05a7": "\u0679",  # Arabic_tteh
    "0x05a8": "\u067e",  # Arabic_peh
    "0x05a9": "\u0686",  # Arabic_tcheh
    "0x05aa": "\u0688",  # Arabic_ddal
    "0x05ab": "\u0691",  # Arabic_rreh
    "0x05ae": "\u06d4",  # Arabic_fullstop
    "0x05b0": "\u0660",  # Arabic_0
    "0x05b1": "\u0661",  # Arabic_1
    "0x05b2": "\u0662",  # Arabic_2
    "0x05b3": "\u0663",  # Arabic_3
    "0x05b4": "\u0664",  # Arabic_4
    "0x05b5": "\u0665",  # Arabic_5
    "0x05b6": "\u0666",  # Arabic_6
    "0x05b7": "\u0667",  # Arabic_7
    "0x05b8": "\u0668",  # Arabic_8
    "0x05b9": "\u0669",  # Arabic_9
    "0x05f3": "\u0653",  # Arabic_madda_above
    "0x05f4": "\u0654",  # Arabic_hamza_above
    "0x05f5": "\u0655",  # Arabic_hamza_below
    "0x05f6": "\u0698",  # Arabic_jeh
    "0x05f7": "\u06a4",  # Arabic_veh
    "0x05f8": "\u06a9",  # Arabic_keheh
    "0x05f9": "\u06af",  # Arabic_gaf
    "0x05fa": "\u06ba",  # Arabic_noon_ghunna
    "0x05fb": "\u06be",  # Arabic_heh_doachashmee
    "0x05fc": "\u06cc",  # Farsi_yeh
    "0x05fd": "\u06d2",  # Arabic_yeh_baree
    "0x05fe": "\u06c1",  # Arabic_heh_goal
    "0x0680": "\u0492",  # Cyrillic_GHE_bar
    "0x0681": "\u0496",  # Cyrillic_ZHE_descender
    "0x0682": "\u049a",  # Cyrillic_KA_descender
    "0x0683": "\u049c",  # Cyrillic_KA_vertstroke
    "0x0684": "\u04a2",  # Cyrillic_EN_descender
    "0x0685": "\u04ae",  # Cyrillic_U_straight
    "0x0686": "\u04b0",  # Cyrillic_U_straight_bar
    "0x0687": "\u04b2",  # Cyrillic_HA_descender
    "0x0688": "\u04b6",  # Cyrillic_CHE_descender
    "0x0689": "\u04b8",  # Cyrillic_CHE_vertstroke
    "0x068a": "\u04ba",  # Cyrillic_SHHA
    "0x068c": "\u04d8",  # Cyrillic_SCHWA
    "0x068d": "\u04e2",  # Cyrillic_I_macron
    "0x068e": "\u04e8",  # Cyrillic_O_bar
    "0x068f": "\u04ee",  # Cyrillic_U_macron
    "0x0690": "\u0493",  # Cyrillic_ghe_bar
    "0x0691": "\u0497",  # Cyrillic_zhe_descender
    "0x0692": "\u049b",  # Cyrillic_ka_descender
    "0x0693": "\u049d",  # Cyrillic_ka_vertstroke
    "0x0694": "\u04a3",  # Cyrillic_en_descender
    "0x0695": "\u04af",  # Cyrillic_u_straight
    "0x0696": "\u04b1",  # Cyrillic_u_straight_bar
    "0x0697": "\u04b3",  # Cyrillic_ha_descender
    "0x0698": "\u04b7",  # Cyrillic_che_descender
    "0x0699": "\u04b9",  # Cyrillic_che_vertstroke
    "0x069a": "\u04bb",  # Cyrillic_shha
    "0x069c": "\u04d9",  # Cyrillic_schwa
    "0x069d": "\u04e3",  # Cyrillic_i_macron
    "0x069e": "\u04e9",  # Cyrillic_o_bar
    "0x069f": "\u04ef",  # Cyrillic_u_macron
    "0x16a2": "\u0000",  # Ccedillaabovedot
    "0x16a3": "\u1e8a",  # Xabovedot
    "0x16a5": "\u0000",  # Qabovedot
    "0x16a6": "\u012c",  # Ibreve
    "0x16a7": "\u0000",  # IE
    "0x16a8": "\u0000",  # UO
    "0x16a9": "\u01b5",  # Zstroke
    "0x16aa": "\u01e6",  # Gcaron
    "0x16af": "\u019f",  # Obarred
    "0x16b2": "\u0000",  # ccedillaabovedot
    "0x16b3": "\u1e8b",  # xabovedot
    "0x16b4": "\u0000",  # Ocaron
    "0x16b5": "\u0000",  # qabovedot
    "0x16b6": "\u012d",  # ibreve
    "0x16b7": "\u0000",  # ie
    "0x16b8": "\u0000",  # uo
    "0x16b9": "\u01b6",  # zstroke
    "0x16ba": "\u01e7",  # gcaron
    "0x16bd": "\u01d2",  # ocaron
    "0x16bf": "\u0275",  # obarred
    "0x16c6": "\u018f",  # SCHWA
    "0x16f6": "\u0259",  # schwa
    "0x16d1": "\u1e36",  # Lbelowdot
    "0x16d2": "\u0000",  # Lstrokebelowdot
    "0x16d3": "\u0000",  # Gtilde
    "0x16e1": "\u1e37",  # lbelowdot
    "0x16e2": "\u0000",  # lstrokebelowdot
    "0x16e3": "\u0000",  # gtilde
    "0x1ea0": "\u1ea0",  # Abelowdot
    "0x1ea1": "\u1ea1",  # abelowdot
    "0x1ea2": "\u1ea2",  # Ahook
    "0x1ea3": "\u1ea3",  # ahook
    "0x1ea4": "\u1ea4",  # Acircumflexacute
    "0x1ea5": "\u1ea5",  # acircumflexacute
    "0x1ea6": "\u1ea6",  # Acircumflexgrave
    "0x1ea7": "\u1ea7",  # acircumflexgrave
    "0x1ea8": "\u1ea8",  # Acircumflexhook
    "0x1ea9": "\u1ea9",  # acircumflexhook
    "0x1eaa": "\u1eaa",  # Acircumflextilde
    "0x1eab": "\u1eab",  # acircumflextilde
    "0x1eac": "\u1eac",  # Acircumflexbelowdot
    "0x1ead": "\u1ead",  # acircumflexbelowdot
    "0x1eae": "\u1eae",  # Abreveacute
    "0x1eaf": "\u1eaf",  # abreveacute
    "0x1eb0": "\u1eb0",  # Abrevegrave
    "0x1eb1": "\u1eb1",  # abrevegrave
    "0x1eb2": "\u1eb2",  # Abrevehook
    "0x1eb3": "\u1eb3",  # abrevehook
    "0x1eb4": "\u1eb4",  # Abrevetilde
    "0x1eb5": "\u1eb5",  # abrevetilde
    "0x1eb6": "\u1eb6",  # Abrevebelowdot
    "0x1eb7": "\u1eb7",  # abrevebelowdot
    "0x1eb8": "\u1eb8",  # Ebelowdot
    "0x1eb9": "\u1eb9",  # ebelowdot
    "0x1eba": "\u1eba",  # Ehook
    "0x1ebb": "\u1ebb",  # ehook
    "0x1ebc": "\u1ebc",  # Etilde
    "0x1ebd": "\u1ebd",  # etilde
    "0x1ebe": "\u1ebe",  # Ecircumflexacute
    "0x1ebf": "\u1ebf",  # ecircumflexacute
    "0x1ec0": "\u1ec0",  # Ecircumflexgrave
    "0x1ec1": "\u1ec1",  # ecircumflexgrave
    "0x1ec2": "\u1ec2",  # Ecircumflexhook
    "0x1ec3": "\u1ec3",  # ecircumflexhook
    "0x1ec4": "\u1ec4",  # Ecircumflextilde
    "0x1ec5": "\u1ec5",  # ecircumflextilde
    "0x1ec6": "\u1ec6",  # Ecircumflexbelowdot
    "0x1ec7": "\u1ec7",  # ecircumflexbelowdot
    "0x1ec8": "\u1ec8",  # Ihook
    "0x1ec9": "\u1ec9",  # ihook
    "0x1eca": "\u1eca",  # Ibelowdot
    "0x1ecb": "\u1ecb",  # ibelowdot
    "0x1ecc": "\u1ecc",  # Obelowdot
    "0x1ecd": "\u1ecd",  # obelowdot
    "0x1ece": "\u1ece",  # Ohook
    "0x1ecf": "\u1ecf",  # ohook
    "0x1ed0": "\u1ed0",  # Ocircumflexacute
    "0x1ed1": "\u1ed1",  # ocircumflexacute
    "0x1ed2": "\u1ed2",  # Ocircumflexgrave
    "0x1ed3": "\u1ed3",  # ocircumflexgrave
    "0x1ed4": "\u1ed4",  # Ocircumflexhook
    "0x1ed5": "\u1ed5",  # ocircumflexhook
    "0x1ed6": "\u1ed6",  # Ocircumflextilde
    "0x1ed7": "\u1ed7",  # ocircumflextilde
    "0x1ed8": "\u1ed8",  # Ocircumflexbelowdot
    "0x1ed9": "\u1ed9",  # ocircumflexbelowdot
    "0x1eda": "\u1eda",  # Ohornacute
    "0x1edb": "\u1edb",  # ohornacute
    "0x1edc": "\u1edc",  # Ohorngrave
    "0x1edd": "\u1edd",  # ohorngrave
    "0x1ede": "\u1ede",  # Ohornhook
    "0x1edf": "\u1edf",  # ohornhook
    "0x1ee0": "\u1ee0",  # Ohorntilde
    "0x1ee1": "\u1ee1",  # ohorntilde
    "0x1ee2": "\u1ee2",  # Ohornbelowdot
    "0x1ee3": "\u1ee3",  # ohornbelowdot
    "0x1ee4": "\u1ee4",  # Ubelowdot
    "0x1ee5": "\u1ee5",  # ubelowdot
    "0x1ee6": "\u1ee6",  # Uhook
    "0x1ee7": "\u1ee7",  # uhook
    "0x1ee8": "\u1ee8",  # Uhornacute
    "0x1ee9": "\u1ee9",  # uhornacute
    "0x1eea": "\u1eea",  # Uhorngrave
    "0x1eeb": "\u1eeb",  # uhorngrave
    "0x1eec": "\u1eec",  # Uhornhook
    "0x1eed": "\u1eed",  # uhornhook
    "0x1eee": "\u1eee",  # Uhorntilde
    "0x1eef": "\u1eef",  # uhorntilde
    "0x1ef0": "\u1ef0",  # Uhornbelowdot
    "0x1ef1": "\u1ef1",  # uhornbelowdot
    "0x1ef4": "\u1ef4",  # Ybelowdot
    "0x1ef5": "\u1ef5",  # ybelowdot
    "0x1ef6": "\u1ef6",  # Yhook
    "0x1ef7": "\u1ef7",  # yhook
    "0x1ef8": "\u1ef8",  # Ytilde
    "0x1ef9": "\u1ef9",  # ytilde
    "0x1efa": "\u01a0",  # Ohorn
    "0x1efb": "\u01a1",  # ohorn
    "0x1efc": "\u01af",  # Uhorn
    "0x1efd": "\u01b0",  # uhorn
    "0x1e9f": "\u0303",  # combining_tilde
    "0x1ef2": "\u0300",  # combining_grave
    "0x1ef3": "\u0301",  # combining_acute
    "0x1efe": "\u0309",  # combining_hook
    "0x1eff": "\u0323",  # combining_belowdot
    "0xfe60": "\u0323",  # dead_belowdot
    "0xfe61": "\u0309",  # dead_hook
    "0xfe62": "\u031b",  # dead_horn
}
