1""" 
    2Vi Digraphs. 
    3This is a list of special characters that can be inserted in Vi insert mode by 
    4pressing Control-K followed by to normal characters. 
    5 
    6Taken from Neovim and translated to Python: 
    7https://raw.githubusercontent.com/neovim/neovim/master/src/nvim/digraph.c 
    8""" 
    9 
    10from __future__ import annotations 
    11 
    12__all__ = [ 
    13    "DIGRAPHS", 
    14] 
    15 
    16# digraphs for Unicode from RFC1345 
    17# (also work for ISO-8859-1 aka latin1) 
    18DIGRAPHS: dict[tuple[str, str], int] = { 
    19    ("N", "U"): 0x00, 
    20    ("S", "H"): 0x01, 
    21    ("S", "X"): 0x02, 
    22    ("E", "X"): 0x03, 
    23    ("E", "T"): 0x04, 
    24    ("E", "Q"): 0x05, 
    25    ("A", "K"): 0x06, 
    26    ("B", "L"): 0x07, 
    27    ("B", "S"): 0x08, 
    28    ("H", "T"): 0x09, 
    29    ("L", "F"): 0x0A, 
    30    ("V", "T"): 0x0B, 
    31    ("F", "F"): 0x0C, 
    32    ("C", "R"): 0x0D, 
    33    ("S", "O"): 0x0E, 
    34    ("S", "I"): 0x0F, 
    35    ("D", "L"): 0x10, 
    36    ("D", "1"): 0x11, 
    37    ("D", "2"): 0x12, 
    38    ("D", "3"): 0x13, 
    39    ("D", "4"): 0x14, 
    40    ("N", "K"): 0x15, 
    41    ("S", "Y"): 0x16, 
    42    ("E", "B"): 0x17, 
    43    ("C", "N"): 0x18, 
    44    ("E", "M"): 0x19, 
    45    ("S", "B"): 0x1A, 
    46    ("E", "C"): 0x1B, 
    47    ("F", "S"): 0x1C, 
    48    ("G", "S"): 0x1D, 
    49    ("R", "S"): 0x1E, 
    50    ("U", "S"): 0x1F, 
    51    ("S", "P"): 0x20, 
    52    ("N", "b"): 0x23, 
    53    ("D", "O"): 0x24, 
    54    ("A", "t"): 0x40, 
    55    ("<", "("): 0x5B, 
    56    ("/", "/"): 0x5C, 
    57    (")", ">"): 0x5D, 
    58    ("'", ">"): 0x5E, 
    59    ("'", "!"): 0x60, 
    60    ("(", "!"): 0x7B, 
    61    ("!", "!"): 0x7C, 
    62    ("!", ")"): 0x7D, 
    63    ("'", "?"): 0x7E, 
    64    ("D", "T"): 0x7F, 
    65    ("P", "A"): 0x80, 
    66    ("H", "O"): 0x81, 
    67    ("B", "H"): 0x82, 
    68    ("N", "H"): 0x83, 
    69    ("I", "N"): 0x84, 
    70    ("N", "L"): 0x85, 
    71    ("S", "A"): 0x86, 
    72    ("E", "S"): 0x87, 
    73    ("H", "S"): 0x88, 
    74    ("H", "J"): 0x89, 
    75    ("V", "S"): 0x8A, 
    76    ("P", "D"): 0x8B, 
    77    ("P", "U"): 0x8C, 
    78    ("R", "I"): 0x8D, 
    79    ("S", "2"): 0x8E, 
    80    ("S", "3"): 0x8F, 
    81    ("D", "C"): 0x90, 
    82    ("P", "1"): 0x91, 
    83    ("P", "2"): 0x92, 
    84    ("T", "S"): 0x93, 
    85    ("C", "C"): 0x94, 
    86    ("M", "W"): 0x95, 
    87    ("S", "G"): 0x96, 
    88    ("E", "G"): 0x97, 
    89    ("S", "S"): 0x98, 
    90    ("G", "C"): 0x99, 
    91    ("S", "C"): 0x9A, 
    92    ("C", "I"): 0x9B, 
    93    ("S", "T"): 0x9C, 
    94    ("O", "C"): 0x9D, 
    95    ("P", "M"): 0x9E, 
    96    ("A", "C"): 0x9F, 
    97    ("N", "S"): 0xA0, 
    98    ("!", "I"): 0xA1, 
    99    ("C", "t"): 0xA2, 
    100    ("P", "d"): 0xA3, 
    101    ("C", "u"): 0xA4, 
    102    ("Y", "e"): 0xA5, 
    103    ("B", "B"): 0xA6, 
    104    ("S", "E"): 0xA7, 
    105    ("'", ":"): 0xA8, 
    106    ("C", "o"): 0xA9, 
    107    ("-", "a"): 0xAA, 
    108    ("<", "<"): 0xAB, 
    109    ("N", "O"): 0xAC, 
    110    ("-", "-"): 0xAD, 
    111    ("R", "g"): 0xAE, 
    112    ("'", "m"): 0xAF, 
    113    ("D", "G"): 0xB0, 
    114    ("+", "-"): 0xB1, 
    115    ("2", "S"): 0xB2, 
    116    ("3", "S"): 0xB3, 
    117    ("'", "'"): 0xB4, 
    118    ("M", "y"): 0xB5, 
    119    ("P", "I"): 0xB6, 
    120    (".", "M"): 0xB7, 
    121    ("'", ","): 0xB8, 
    122    ("1", "S"): 0xB9, 
    123    ("-", "o"): 0xBA, 
    124    (">", ">"): 0xBB, 
    125    ("1", "4"): 0xBC, 
    126    ("1", "2"): 0xBD, 
    127    ("3", "4"): 0xBE, 
    128    ("?", "I"): 0xBF, 
    129    ("A", "!"): 0xC0, 
    130    ("A", "'"): 0xC1, 
    131    ("A", ">"): 0xC2, 
    132    ("A", "?"): 0xC3, 
    133    ("A", ":"): 0xC4, 
    134    ("A", "A"): 0xC5, 
    135    ("A", "E"): 0xC6, 
    136    ("C", ","): 0xC7, 
    137    ("E", "!"): 0xC8, 
    138    ("E", "'"): 0xC9, 
    139    ("E", ">"): 0xCA, 
    140    ("E", ":"): 0xCB, 
    141    ("I", "!"): 0xCC, 
    142    ("I", "'"): 0xCD, 
    143    ("I", ">"): 0xCE, 
    144    ("I", ":"): 0xCF, 
    145    ("D", "-"): 0xD0, 
    146    ("N", "?"): 0xD1, 
    147    ("O", "!"): 0xD2, 
    148    ("O", "'"): 0xD3, 
    149    ("O", ">"): 0xD4, 
    150    ("O", "?"): 0xD5, 
    151    ("O", ":"): 0xD6, 
    152    ("*", "X"): 0xD7, 
    153    ("O", "/"): 0xD8, 
    154    ("U", "!"): 0xD9, 
    155    ("U", "'"): 0xDA, 
    156    ("U", ">"): 0xDB, 
    157    ("U", ":"): 0xDC, 
    158    ("Y", "'"): 0xDD, 
    159    ("T", "H"): 0xDE, 
    160    ("s", "s"): 0xDF, 
    161    ("a", "!"): 0xE0, 
    162    ("a", "'"): 0xE1, 
    163    ("a", ">"): 0xE2, 
    164    ("a", "?"): 0xE3, 
    165    ("a", ":"): 0xE4, 
    166    ("a", "a"): 0xE5, 
    167    ("a", "e"): 0xE6, 
    168    ("c", ","): 0xE7, 
    169    ("e", "!"): 0xE8, 
    170    ("e", "'"): 0xE9, 
    171    ("e", ">"): 0xEA, 
    172    ("e", ":"): 0xEB, 
    173    ("i", "!"): 0xEC, 
    174    ("i", "'"): 0xED, 
    175    ("i", ">"): 0xEE, 
    176    ("i", ":"): 0xEF, 
    177    ("d", "-"): 0xF0, 
    178    ("n", "?"): 0xF1, 
    179    ("o", "!"): 0xF2, 
    180    ("o", "'"): 0xF3, 
    181    ("o", ">"): 0xF4, 
    182    ("o", "?"): 0xF5, 
    183    ("o", ":"): 0xF6, 
    184    ("-", ":"): 0xF7, 
    185    ("o", "/"): 0xF8, 
    186    ("u", "!"): 0xF9, 
    187    ("u", "'"): 0xFA, 
    188    ("u", ">"): 0xFB, 
    189    ("u", ":"): 0xFC, 
    190    ("y", "'"): 0xFD, 
    191    ("t", "h"): 0xFE, 
    192    ("y", ":"): 0xFF, 
    193    ("A", "-"): 0x0100, 
    194    ("a", "-"): 0x0101, 
    195    ("A", "("): 0x0102, 
    196    ("a", "("): 0x0103, 
    197    ("A", ";"): 0x0104, 
    198    ("a", ";"): 0x0105, 
    199    ("C", "'"): 0x0106, 
    200    ("c", "'"): 0x0107, 
    201    ("C", ">"): 0x0108, 
    202    ("c", ">"): 0x0109, 
    203    ("C", "."): 0x010A, 
    204    ("c", "."): 0x010B, 
    205    ("C", "<"): 0x010C, 
    206    ("c", "<"): 0x010D, 
    207    ("D", "<"): 0x010E, 
    208    ("d", "<"): 0x010F, 
    209    ("D", "/"): 0x0110, 
    210    ("d", "/"): 0x0111, 
    211    ("E", "-"): 0x0112, 
    212    ("e", "-"): 0x0113, 
    213    ("E", "("): 0x0114, 
    214    ("e", "("): 0x0115, 
    215    ("E", "."): 0x0116, 
    216    ("e", "."): 0x0117, 
    217    ("E", ";"): 0x0118, 
    218    ("e", ";"): 0x0119, 
    219    ("E", "<"): 0x011A, 
    220    ("e", "<"): 0x011B, 
    221    ("G", ">"): 0x011C, 
    222    ("g", ">"): 0x011D, 
    223    ("G", "("): 0x011E, 
    224    ("g", "("): 0x011F, 
    225    ("G", "."): 0x0120, 
    226    ("g", "."): 0x0121, 
    227    ("G", ","): 0x0122, 
    228    ("g", ","): 0x0123, 
    229    ("H", ">"): 0x0124, 
    230    ("h", ">"): 0x0125, 
    231    ("H", "/"): 0x0126, 
    232    ("h", "/"): 0x0127, 
    233    ("I", "?"): 0x0128, 
    234    ("i", "?"): 0x0129, 
    235    ("I", "-"): 0x012A, 
    236    ("i", "-"): 0x012B, 
    237    ("I", "("): 0x012C, 
    238    ("i", "("): 0x012D, 
    239    ("I", ";"): 0x012E, 
    240    ("i", ";"): 0x012F, 
    241    ("I", "."): 0x0130, 
    242    ("i", "."): 0x0131, 
    243    ("I", "J"): 0x0132, 
    244    ("i", "j"): 0x0133, 
    245    ("J", ">"): 0x0134, 
    246    ("j", ">"): 0x0135, 
    247    ("K", ","): 0x0136, 
    248    ("k", ","): 0x0137, 
    249    ("k", "k"): 0x0138, 
    250    ("L", "'"): 0x0139, 
    251    ("l", "'"): 0x013A, 
    252    ("L", ","): 0x013B, 
    253    ("l", ","): 0x013C, 
    254    ("L", "<"): 0x013D, 
    255    ("l", "<"): 0x013E, 
    256    ("L", "."): 0x013F, 
    257    ("l", "."): 0x0140, 
    258    ("L", "/"): 0x0141, 
    259    ("l", "/"): 0x0142, 
    260    ("N", "'"): 0x0143, 
    261    ("n", "'"): 0x0144, 
    262    ("N", ","): 0x0145, 
    263    ("n", ","): 0x0146, 
    264    ("N", "<"): 0x0147, 
    265    ("n", "<"): 0x0148, 
    266    ("'", "n"): 0x0149, 
    267    ("N", "G"): 0x014A, 
    268    ("n", "g"): 0x014B, 
    269    ("O", "-"): 0x014C, 
    270    ("o", "-"): 0x014D, 
    271    ("O", "("): 0x014E, 
    272    ("o", "("): 0x014F, 
    273    ("O", '"'): 0x0150, 
    274    ("o", '"'): 0x0151, 
    275    ("O", "E"): 0x0152, 
    276    ("o", "e"): 0x0153, 
    277    ("R", "'"): 0x0154, 
    278    ("r", "'"): 0x0155, 
    279    ("R", ","): 0x0156, 
    280    ("r", ","): 0x0157, 
    281    ("R", "<"): 0x0158, 
    282    ("r", "<"): 0x0159, 
    283    ("S", "'"): 0x015A, 
    284    ("s", "'"): 0x015B, 
    285    ("S", ">"): 0x015C, 
    286    ("s", ">"): 0x015D, 
    287    ("S", ","): 0x015E, 
    288    ("s", ","): 0x015F, 
    289    ("S", "<"): 0x0160, 
    290    ("s", "<"): 0x0161, 
    291    ("T", ","): 0x0162, 
    292    ("t", ","): 0x0163, 
    293    ("T", "<"): 0x0164, 
    294    ("t", "<"): 0x0165, 
    295    ("T", "/"): 0x0166, 
    296    ("t", "/"): 0x0167, 
    297    ("U", "?"): 0x0168, 
    298    ("u", "?"): 0x0169, 
    299    ("U", "-"): 0x016A, 
    300    ("u", "-"): 0x016B, 
    301    ("U", "("): 0x016C, 
    302    ("u", "("): 0x016D, 
    303    ("U", "0"): 0x016E, 
    304    ("u", "0"): 0x016F, 
    305    ("U", '"'): 0x0170, 
    306    ("u", '"'): 0x0171, 
    307    ("U", ";"): 0x0172, 
    308    ("u", ";"): 0x0173, 
    309    ("W", ">"): 0x0174, 
    310    ("w", ">"): 0x0175, 
    311    ("Y", ">"): 0x0176, 
    312    ("y", ">"): 0x0177, 
    313    ("Y", ":"): 0x0178, 
    314    ("Z", "'"): 0x0179, 
    315    ("z", "'"): 0x017A, 
    316    ("Z", "."): 0x017B, 
    317    ("z", "."): 0x017C, 
    318    ("Z", "<"): 0x017D, 
    319    ("z", "<"): 0x017E, 
    320    ("O", "9"): 0x01A0, 
    321    ("o", "9"): 0x01A1, 
    322    ("O", "I"): 0x01A2, 
    323    ("o", "i"): 0x01A3, 
    324    ("y", "r"): 0x01A6, 
    325    ("U", "9"): 0x01AF, 
    326    ("u", "9"): 0x01B0, 
    327    ("Z", "/"): 0x01B5, 
    328    ("z", "/"): 0x01B6, 
    329    ("E", "D"): 0x01B7, 
    330    ("A", "<"): 0x01CD, 
    331    ("a", "<"): 0x01CE, 
    332    ("I", "<"): 0x01CF, 
    333    ("i", "<"): 0x01D0, 
    334    ("O", "<"): 0x01D1, 
    335    ("o", "<"): 0x01D2, 
    336    ("U", "<"): 0x01D3, 
    337    ("u", "<"): 0x01D4, 
    338    ("A", "1"): 0x01DE, 
    339    ("a", "1"): 0x01DF, 
    340    ("A", "7"): 0x01E0, 
    341    ("a", "7"): 0x01E1, 
    342    ("A", "3"): 0x01E2, 
    343    ("a", "3"): 0x01E3, 
    344    ("G", "/"): 0x01E4, 
    345    ("g", "/"): 0x01E5, 
    346    ("G", "<"): 0x01E6, 
    347    ("g", "<"): 0x01E7, 
    348    ("K", "<"): 0x01E8, 
    349    ("k", "<"): 0x01E9, 
    350    ("O", ";"): 0x01EA, 
    351    ("o", ";"): 0x01EB, 
    352    ("O", "1"): 0x01EC, 
    353    ("o", "1"): 0x01ED, 
    354    ("E", "Z"): 0x01EE, 
    355    ("e", "z"): 0x01EF, 
    356    ("j", "<"): 0x01F0, 
    357    ("G", "'"): 0x01F4, 
    358    ("g", "'"): 0x01F5, 
    359    (";", "S"): 0x02BF, 
    360    ("'", "<"): 0x02C7, 
    361    ("'", "("): 0x02D8, 
    362    ("'", "."): 0x02D9, 
    363    ("'", "0"): 0x02DA, 
    364    ("'", ";"): 0x02DB, 
    365    ("'", '"'): 0x02DD, 
    366    ("A", "%"): 0x0386, 
    367    ("E", "%"): 0x0388, 
    368    ("Y", "%"): 0x0389, 
    369    ("I", "%"): 0x038A, 
    370    ("O", "%"): 0x038C, 
    371    ("U", "%"): 0x038E, 
    372    ("W", "%"): 0x038F, 
    373    ("i", "3"): 0x0390, 
    374    ("A", "*"): 0x0391, 
    375    ("B", "*"): 0x0392, 
    376    ("G", "*"): 0x0393, 
    377    ("D", "*"): 0x0394, 
    378    ("E", "*"): 0x0395, 
    379    ("Z", "*"): 0x0396, 
    380    ("Y", "*"): 0x0397, 
    381    ("H", "*"): 0x0398, 
    382    ("I", "*"): 0x0399, 
    383    ("K", "*"): 0x039A, 
    384    ("L", "*"): 0x039B, 
    385    ("M", "*"): 0x039C, 
    386    ("N", "*"): 0x039D, 
    387    ("C", "*"): 0x039E, 
    388    ("O", "*"): 0x039F, 
    389    ("P", "*"): 0x03A0, 
    390    ("R", "*"): 0x03A1, 
    391    ("S", "*"): 0x03A3, 
    392    ("T", "*"): 0x03A4, 
    393    ("U", "*"): 0x03A5, 
    394    ("F", "*"): 0x03A6, 
    395    ("X", "*"): 0x03A7, 
    396    ("Q", "*"): 0x03A8, 
    397    ("W", "*"): 0x03A9, 
    398    ("J", "*"): 0x03AA, 
    399    ("V", "*"): 0x03AB, 
    400    ("a", "%"): 0x03AC, 
    401    ("e", "%"): 0x03AD, 
    402    ("y", "%"): 0x03AE, 
    403    ("i", "%"): 0x03AF, 
    404    ("u", "3"): 0x03B0, 
    405    ("a", "*"): 0x03B1, 
    406    ("b", "*"): 0x03B2, 
    407    ("g", "*"): 0x03B3, 
    408    ("d", "*"): 0x03B4, 
    409    ("e", "*"): 0x03B5, 
    410    ("z", "*"): 0x03B6, 
    411    ("y", "*"): 0x03B7, 
    412    ("h", "*"): 0x03B8, 
    413    ("i", "*"): 0x03B9, 
    414    ("k", "*"): 0x03BA, 
    415    ("l", "*"): 0x03BB, 
    416    ("m", "*"): 0x03BC, 
    417    ("n", "*"): 0x03BD, 
    418    ("c", "*"): 0x03BE, 
    419    ("o", "*"): 0x03BF, 
    420    ("p", "*"): 0x03C0, 
    421    ("r", "*"): 0x03C1, 
    422    ("*", "s"): 0x03C2, 
    423    ("s", "*"): 0x03C3, 
    424    ("t", "*"): 0x03C4, 
    425    ("u", "*"): 0x03C5, 
    426    ("f", "*"): 0x03C6, 
    427    ("x", "*"): 0x03C7, 
    428    ("q", "*"): 0x03C8, 
    429    ("w", "*"): 0x03C9, 
    430    ("j", "*"): 0x03CA, 
    431    ("v", "*"): 0x03CB, 
    432    ("o", "%"): 0x03CC, 
    433    ("u", "%"): 0x03CD, 
    434    ("w", "%"): 0x03CE, 
    435    ("'", "G"): 0x03D8, 
    436    (",", "G"): 0x03D9, 
    437    ("T", "3"): 0x03DA, 
    438    ("t", "3"): 0x03DB, 
    439    ("M", "3"): 0x03DC, 
    440    ("m", "3"): 0x03DD, 
    441    ("K", "3"): 0x03DE, 
    442    ("k", "3"): 0x03DF, 
    443    ("P", "3"): 0x03E0, 
    444    ("p", "3"): 0x03E1, 
    445    ("'", "%"): 0x03F4, 
    446    ("j", "3"): 0x03F5, 
    447    ("I", "O"): 0x0401, 
    448    ("D", "%"): 0x0402, 
    449    ("G", "%"): 0x0403, 
    450    ("I", "E"): 0x0404, 
    451    ("D", "S"): 0x0405, 
    452    ("I", "I"): 0x0406, 
    453    ("Y", "I"): 0x0407, 
    454    ("J", "%"): 0x0408, 
    455    ("L", "J"): 0x0409, 
    456    ("N", "J"): 0x040A, 
    457    ("T", "s"): 0x040B, 
    458    ("K", "J"): 0x040C, 
    459    ("V", "%"): 0x040E, 
    460    ("D", "Z"): 0x040F, 
    461    ("A", "="): 0x0410, 
    462    ("B", "="): 0x0411, 
    463    ("V", "="): 0x0412, 
    464    ("G", "="): 0x0413, 
    465    ("D", "="): 0x0414, 
    466    ("E", "="): 0x0415, 
    467    ("Z", "%"): 0x0416, 
    468    ("Z", "="): 0x0417, 
    469    ("I", "="): 0x0418, 
    470    ("J", "="): 0x0419, 
    471    ("K", "="): 0x041A, 
    472    ("L", "="): 0x041B, 
    473    ("M", "="): 0x041C, 
    474    ("N", "="): 0x041D, 
    475    ("O", "="): 0x041E, 
    476    ("P", "="): 0x041F, 
    477    ("R", "="): 0x0420, 
    478    ("S", "="): 0x0421, 
    479    ("T", "="): 0x0422, 
    480    ("U", "="): 0x0423, 
    481    ("F", "="): 0x0424, 
    482    ("H", "="): 0x0425, 
    483    ("C", "="): 0x0426, 
    484    ("C", "%"): 0x0427, 
    485    ("S", "%"): 0x0428, 
    486    ("S", "c"): 0x0429, 
    487    ("=", '"'): 0x042A, 
    488    ("Y", "="): 0x042B, 
    489    ("%", '"'): 0x042C, 
    490    ("J", "E"): 0x042D, 
    491    ("J", "U"): 0x042E, 
    492    ("J", "A"): 0x042F, 
    493    ("a", "="): 0x0430, 
    494    ("b", "="): 0x0431, 
    495    ("v", "="): 0x0432, 
    496    ("g", "="): 0x0433, 
    497    ("d", "="): 0x0434, 
    498    ("e", "="): 0x0435, 
    499    ("z", "%"): 0x0436, 
    500    ("z", "="): 0x0437, 
    501    ("i", "="): 0x0438, 
    502    ("j", "="): 0x0439, 
    503    ("k", "="): 0x043A, 
    504    ("l", "="): 0x043B, 
    505    ("m", "="): 0x043C, 
    506    ("n", "="): 0x043D, 
    507    ("o", "="): 0x043E, 
    508    ("p", "="): 0x043F, 
    509    ("r", "="): 0x0440, 
    510    ("s", "="): 0x0441, 
    511    ("t", "="): 0x0442, 
    512    ("u", "="): 0x0443, 
    513    ("f", "="): 0x0444, 
    514    ("h", "="): 0x0445, 
    515    ("c", "="): 0x0446, 
    516    ("c", "%"): 0x0447, 
    517    ("s", "%"): 0x0448, 
    518    ("s", "c"): 0x0449, 
    519    ("=", "'"): 0x044A, 
    520    ("y", "="): 0x044B, 
    521    ("%", "'"): 0x044C, 
    522    ("j", "e"): 0x044D, 
    523    ("j", "u"): 0x044E, 
    524    ("j", "a"): 0x044F, 
    525    ("i", "o"): 0x0451, 
    526    ("d", "%"): 0x0452, 
    527    ("g", "%"): 0x0453, 
    528    ("i", "e"): 0x0454, 
    529    ("d", "s"): 0x0455, 
    530    ("i", "i"): 0x0456, 
    531    ("y", "i"): 0x0457, 
    532    ("j", "%"): 0x0458, 
    533    ("l", "j"): 0x0459, 
    534    ("n", "j"): 0x045A, 
    535    ("t", "s"): 0x045B, 
    536    ("k", "j"): 0x045C, 
    537    ("v", "%"): 0x045E, 
    538    ("d", "z"): 0x045F, 
    539    ("Y", "3"): 0x0462, 
    540    ("y", "3"): 0x0463, 
    541    ("O", "3"): 0x046A, 
    542    ("o", "3"): 0x046B, 
    543    ("F", "3"): 0x0472, 
    544    ("f", "3"): 0x0473, 
    545    ("V", "3"): 0x0474, 
    546    ("v", "3"): 0x0475, 
    547    ("C", "3"): 0x0480, 
    548    ("c", "3"): 0x0481, 
    549    ("G", "3"): 0x0490, 
    550    ("g", "3"): 0x0491, 
    551    ("A", "+"): 0x05D0, 
    552    ("B", "+"): 0x05D1, 
    553    ("G", "+"): 0x05D2, 
    554    ("D", "+"): 0x05D3, 
    555    ("H", "+"): 0x05D4, 
    556    ("W", "+"): 0x05D5, 
    557    ("Z", "+"): 0x05D6, 
    558    ("X", "+"): 0x05D7, 
    559    ("T", "j"): 0x05D8, 
    560    ("J", "+"): 0x05D9, 
    561    ("K", "%"): 0x05DA, 
    562    ("K", "+"): 0x05DB, 
    563    ("L", "+"): 0x05DC, 
    564    ("M", "%"): 0x05DD, 
    565    ("M", "+"): 0x05DE, 
    566    ("N", "%"): 0x05DF, 
    567    ("N", "+"): 0x05E0, 
    568    ("S", "+"): 0x05E1, 
    569    ("E", "+"): 0x05E2, 
    570    ("P", "%"): 0x05E3, 
    571    ("P", "+"): 0x05E4, 
    572    ("Z", "j"): 0x05E5, 
    573    ("Z", "J"): 0x05E6, 
    574    ("Q", "+"): 0x05E7, 
    575    ("R", "+"): 0x05E8, 
    576    ("S", "h"): 0x05E9, 
    577    ("T", "+"): 0x05EA, 
    578    (",", "+"): 0x060C, 
    579    (";", "+"): 0x061B, 
    580    ("?", "+"): 0x061F, 
    581    ("H", "'"): 0x0621, 
    582    ("a", "M"): 0x0622, 
    583    ("a", "H"): 0x0623, 
    584    ("w", "H"): 0x0624, 
    585    ("a", "h"): 0x0625, 
    586    ("y", "H"): 0x0626, 
    587    ("a", "+"): 0x0627, 
    588    ("b", "+"): 0x0628, 
    589    ("t", "m"): 0x0629, 
    590    ("t", "+"): 0x062A, 
    591    ("t", "k"): 0x062B, 
    592    ("g", "+"): 0x062C, 
    593    ("h", "k"): 0x062D, 
    594    ("x", "+"): 0x062E, 
    595    ("d", "+"): 0x062F, 
    596    ("d", "k"): 0x0630, 
    597    ("r", "+"): 0x0631, 
    598    ("z", "+"): 0x0632, 
    599    ("s", "+"): 0x0633, 
    600    ("s", "n"): 0x0634, 
    601    ("c", "+"): 0x0635, 
    602    ("d", "d"): 0x0636, 
    603    ("t", "j"): 0x0637, 
    604    ("z", "H"): 0x0638, 
    605    ("e", "+"): 0x0639, 
    606    ("i", "+"): 0x063A, 
    607    ("+", "+"): 0x0640, 
    608    ("f", "+"): 0x0641, 
    609    ("q", "+"): 0x0642, 
    610    ("k", "+"): 0x0643, 
    611    ("l", "+"): 0x0644, 
    612    ("m", "+"): 0x0645, 
    613    ("n", "+"): 0x0646, 
    614    ("h", "+"): 0x0647, 
    615    ("w", "+"): 0x0648, 
    616    ("j", "+"): 0x0649, 
    617    ("y", "+"): 0x064A, 
    618    (":", "+"): 0x064B, 
    619    ('"', "+"): 0x064C, 
    620    ("=", "+"): 0x064D, 
    621    ("/", "+"): 0x064E, 
    622    ("'", "+"): 0x064F, 
    623    ("1", "+"): 0x0650, 
    624    ("3", "+"): 0x0651, 
    625    ("0", "+"): 0x0652, 
    626    ("a", "S"): 0x0670, 
    627    ("p", "+"): 0x067E, 
    628    ("v", "+"): 0x06A4, 
    629    ("g", "f"): 0x06AF, 
    630    ("0", "a"): 0x06F0, 
    631    ("1", "a"): 0x06F1, 
    632    ("2", "a"): 0x06F2, 
    633    ("3", "a"): 0x06F3, 
    634    ("4", "a"): 0x06F4, 
    635    ("5", "a"): 0x06F5, 
    636    ("6", "a"): 0x06F6, 
    637    ("7", "a"): 0x06F7, 
    638    ("8", "a"): 0x06F8, 
    639    ("9", "a"): 0x06F9, 
    640    ("B", "."): 0x1E02, 
    641    ("b", "."): 0x1E03, 
    642    ("B", "_"): 0x1E06, 
    643    ("b", "_"): 0x1E07, 
    644    ("D", "."): 0x1E0A, 
    645    ("d", "."): 0x1E0B, 
    646    ("D", "_"): 0x1E0E, 
    647    ("d", "_"): 0x1E0F, 
    648    ("D", ","): 0x1E10, 
    649    ("d", ","): 0x1E11, 
    650    ("F", "."): 0x1E1E, 
    651    ("f", "."): 0x1E1F, 
    652    ("G", "-"): 0x1E20, 
    653    ("g", "-"): 0x1E21, 
    654    ("H", "."): 0x1E22, 
    655    ("h", "."): 0x1E23, 
    656    ("H", ":"): 0x1E26, 
    657    ("h", ":"): 0x1E27, 
    658    ("H", ","): 0x1E28, 
    659    ("h", ","): 0x1E29, 
    660    ("K", "'"): 0x1E30, 
    661    ("k", "'"): 0x1E31, 
    662    ("K", "_"): 0x1E34, 
    663    ("k", "_"): 0x1E35, 
    664    ("L", "_"): 0x1E3A, 
    665    ("l", "_"): 0x1E3B, 
    666    ("M", "'"): 0x1E3E, 
    667    ("m", "'"): 0x1E3F, 
    668    ("M", "."): 0x1E40, 
    669    ("m", "."): 0x1E41, 
    670    ("N", "."): 0x1E44, 
    671    ("n", "."): 0x1E45, 
    672    ("N", "_"): 0x1E48, 
    673    ("n", "_"): 0x1E49, 
    674    ("P", "'"): 0x1E54, 
    675    ("p", "'"): 0x1E55, 
    676    ("P", "."): 0x1E56, 
    677    ("p", "."): 0x1E57, 
    678    ("R", "."): 0x1E58, 
    679    ("r", "."): 0x1E59, 
    680    ("R", "_"): 0x1E5E, 
    681    ("r", "_"): 0x1E5F, 
    682    ("S", "."): 0x1E60, 
    683    ("s", "."): 0x1E61, 
    684    ("T", "."): 0x1E6A, 
    685    ("t", "."): 0x1E6B, 
    686    ("T", "_"): 0x1E6E, 
    687    ("t", "_"): 0x1E6F, 
    688    ("V", "?"): 0x1E7C, 
    689    ("v", "?"): 0x1E7D, 
    690    ("W", "!"): 0x1E80, 
    691    ("w", "!"): 0x1E81, 
    692    ("W", "'"): 0x1E82, 
    693    ("w", "'"): 0x1E83, 
    694    ("W", ":"): 0x1E84, 
    695    ("w", ":"): 0x1E85, 
    696    ("W", "."): 0x1E86, 
    697    ("w", "."): 0x1E87, 
    698    ("X", "."): 0x1E8A, 
    699    ("x", "."): 0x1E8B, 
    700    ("X", ":"): 0x1E8C, 
    701    ("x", ":"): 0x1E8D, 
    702    ("Y", "."): 0x1E8E, 
    703    ("y", "."): 0x1E8F, 
    704    ("Z", ">"): 0x1E90, 
    705    ("z", ">"): 0x1E91, 
    706    ("Z", "_"): 0x1E94, 
    707    ("z", "_"): 0x1E95, 
    708    ("h", "_"): 0x1E96, 
    709    ("t", ":"): 0x1E97, 
    710    ("w", "0"): 0x1E98, 
    711    ("y", "0"): 0x1E99, 
    712    ("A", "2"): 0x1EA2, 
    713    ("a", "2"): 0x1EA3, 
    714    ("E", "2"): 0x1EBA, 
    715    ("e", "2"): 0x1EBB, 
    716    ("E", "?"): 0x1EBC, 
    717    ("e", "?"): 0x1EBD, 
    718    ("I", "2"): 0x1EC8, 
    719    ("i", "2"): 0x1EC9, 
    720    ("O", "2"): 0x1ECE, 
    721    ("o", "2"): 0x1ECF, 
    722    ("U", "2"): 0x1EE6, 
    723    ("u", "2"): 0x1EE7, 
    724    ("Y", "!"): 0x1EF2, 
    725    ("y", "!"): 0x1EF3, 
    726    ("Y", "2"): 0x1EF6, 
    727    ("y", "2"): 0x1EF7, 
    728    ("Y", "?"): 0x1EF8, 
    729    ("y", "?"): 0x1EF9, 
    730    (";", "'"): 0x1F00, 
    731    (",", "'"): 0x1F01, 
    732    (";", "!"): 0x1F02, 
    733    (",", "!"): 0x1F03, 
    734    ("?", ";"): 0x1F04, 
    735    ("?", ","): 0x1F05, 
    736    ("!", ":"): 0x1F06, 
    737    ("?", ":"): 0x1F07, 
    738    ("1", "N"): 0x2002, 
    739    ("1", "M"): 0x2003, 
    740    ("3", "M"): 0x2004, 
    741    ("4", "M"): 0x2005, 
    742    ("6", "M"): 0x2006, 
    743    ("1", "T"): 0x2009, 
    744    ("1", "H"): 0x200A, 
    745    ("-", "1"): 0x2010, 
    746    ("-", "N"): 0x2013, 
    747    ("-", "M"): 0x2014, 
    748    ("-", "3"): 0x2015, 
    749    ("!", "2"): 0x2016, 
    750    ("=", "2"): 0x2017, 
    751    ("'", "6"): 0x2018, 
    752    ("'", "9"): 0x2019, 
    753    (".", "9"): 0x201A, 
    754    ("9", "'"): 0x201B, 
    755    ('"', "6"): 0x201C, 
    756    ('"', "9"): 0x201D, 
    757    (":", "9"): 0x201E, 
    758    ("9", '"'): 0x201F, 
    759    ("/", "-"): 0x2020, 
    760    ("/", "="): 0x2021, 
    761    (".", "."): 0x2025, 
    762    ("%", "0"): 0x2030, 
    763    ("1", "'"): 0x2032, 
    764    ("2", "'"): 0x2033, 
    765    ("3", "'"): 0x2034, 
    766    ("1", '"'): 0x2035, 
    767    ("2", '"'): 0x2036, 
    768    ("3", '"'): 0x2037, 
    769    ("C", "a"): 0x2038, 
    770    ("<", "1"): 0x2039, 
    771    (">", "1"): 0x203A, 
    772    (":", "X"): 0x203B, 
    773    ("'", "-"): 0x203E, 
    774    ("/", "f"): 0x2044, 
    775    ("0", "S"): 0x2070, 
    776    ("4", "S"): 0x2074, 
    777    ("5", "S"): 0x2075, 
    778    ("6", "S"): 0x2076, 
    779    ("7", "S"): 0x2077, 
    780    ("8", "S"): 0x2078, 
    781    ("9", "S"): 0x2079, 
    782    ("+", "S"): 0x207A, 
    783    ("-", "S"): 0x207B, 
    784    ("=", "S"): 0x207C, 
    785    ("(", "S"): 0x207D, 
    786    (")", "S"): 0x207E, 
    787    ("n", "S"): 0x207F, 
    788    ("0", "s"): 0x2080, 
    789    ("1", "s"): 0x2081, 
    790    ("2", "s"): 0x2082, 
    791    ("3", "s"): 0x2083, 
    792    ("4", "s"): 0x2084, 
    793    ("5", "s"): 0x2085, 
    794    ("6", "s"): 0x2086, 
    795    ("7", "s"): 0x2087, 
    796    ("8", "s"): 0x2088, 
    797    ("9", "s"): 0x2089, 
    798    ("+", "s"): 0x208A, 
    799    ("-", "s"): 0x208B, 
    800    ("=", "s"): 0x208C, 
    801    ("(", "s"): 0x208D, 
    802    (")", "s"): 0x208E, 
    803    ("L", "i"): 0x20A4, 
    804    ("P", "t"): 0x20A7, 
    805    ("W", "="): 0x20A9, 
    806    ("=", "e"): 0x20AC,  # euro 
    807    ("E", "u"): 0x20AC,  # euro 
    808    ("=", "R"): 0x20BD,  # rouble 
    809    ("=", "P"): 0x20BD,  # rouble 
    810    ("o", "C"): 0x2103, 
    811    ("c", "o"): 0x2105, 
    812    ("o", "F"): 0x2109, 
    813    ("N", "0"): 0x2116, 
    814    ("P", "O"): 0x2117, 
    815    ("R", "x"): 0x211E, 
    816    ("S", "M"): 0x2120, 
    817    ("T", "M"): 0x2122, 
    818    ("O", "m"): 0x2126, 
    819    ("A", "O"): 0x212B, 
    820    ("1", "3"): 0x2153, 
    821    ("2", "3"): 0x2154, 
    822    ("1", "5"): 0x2155, 
    823    ("2", "5"): 0x2156, 
    824    ("3", "5"): 0x2157, 
    825    ("4", "5"): 0x2158, 
    826    ("1", "6"): 0x2159, 
    827    ("5", "6"): 0x215A, 
    828    ("1", "8"): 0x215B, 
    829    ("3", "8"): 0x215C, 
    830    ("5", "8"): 0x215D, 
    831    ("7", "8"): 0x215E, 
    832    ("1", "R"): 0x2160, 
    833    ("2", "R"): 0x2161, 
    834    ("3", "R"): 0x2162, 
    835    ("4", "R"): 0x2163, 
    836    ("5", "R"): 0x2164, 
    837    ("6", "R"): 0x2165, 
    838    ("7", "R"): 0x2166, 
    839    ("8", "R"): 0x2167, 
    840    ("9", "R"): 0x2168, 
    841    ("a", "R"): 0x2169, 
    842    ("b", "R"): 0x216A, 
    843    ("c", "R"): 0x216B, 
    844    ("1", "r"): 0x2170, 
    845    ("2", "r"): 0x2171, 
    846    ("3", "r"): 0x2172, 
    847    ("4", "r"): 0x2173, 
    848    ("5", "r"): 0x2174, 
    849    ("6", "r"): 0x2175, 
    850    ("7", "r"): 0x2176, 
    851    ("8", "r"): 0x2177, 
    852    ("9", "r"): 0x2178, 
    853    ("a", "r"): 0x2179, 
    854    ("b", "r"): 0x217A, 
    855    ("c", "r"): 0x217B, 
    856    ("<", "-"): 0x2190, 
    857    ("-", "!"): 0x2191, 
    858    ("-", ">"): 0x2192, 
    859    ("-", "v"): 0x2193, 
    860    ("<", ">"): 0x2194, 
    861    ("U", "D"): 0x2195, 
    862    ("<", "="): 0x21D0, 
    863    ("=", ">"): 0x21D2, 
    864    ("=", "="): 0x21D4, 
    865    ("F", "A"): 0x2200, 
    866    ("d", "P"): 0x2202, 
    867    ("T", "E"): 0x2203, 
    868    ("/", "0"): 0x2205, 
    869    ("D", "E"): 0x2206, 
    870    ("N", "B"): 0x2207, 
    871    ("(", "-"): 0x2208, 
    872    ("-", ")"): 0x220B, 
    873    ("*", "P"): 0x220F, 
    874    ("+", "Z"): 0x2211, 
    875    ("-", "2"): 0x2212, 
    876    ("-", "+"): 0x2213, 
    877    ("*", "-"): 0x2217, 
    878    ("O", "b"): 0x2218, 
    879    ("S", "b"): 0x2219, 
    880    ("R", "T"): 0x221A, 
    881    ("0", "("): 0x221D, 
    882    ("0", "0"): 0x221E, 
    883    ("-", "L"): 0x221F, 
    884    ("-", "V"): 0x2220, 
    885    ("P", "P"): 0x2225, 
    886    ("A", "N"): 0x2227, 
    887    ("O", "R"): 0x2228, 
    888    ("(", "U"): 0x2229, 
    889    (")", "U"): 0x222A, 
    890    ("I", "n"): 0x222B, 
    891    ("D", "I"): 0x222C, 
    892    ("I", "o"): 0x222E, 
    893    (".", ":"): 0x2234, 
    894    (":", "."): 0x2235, 
    895    (":", "R"): 0x2236, 
    896    (":", ":"): 0x2237, 
    897    ("?", "1"): 0x223C, 
    898    ("C", "G"): 0x223E, 
    899    ("?", "-"): 0x2243, 
    900    ("?", "="): 0x2245, 
    901    ("?", "2"): 0x2248, 
    902    ("=", "?"): 0x224C, 
    903    ("H", "I"): 0x2253, 
    904    ("!", "="): 0x2260, 
    905    ("=", "3"): 0x2261, 
    906    ("=", "<"): 0x2264, 
    907    (">", "="): 0x2265, 
    908    ("<", "*"): 0x226A, 
    909    ("*", ">"): 0x226B, 
    910    ("!", "<"): 0x226E, 
    911    ("!", ">"): 0x226F, 
    912    ("(", "C"): 0x2282, 
    913    (")", "C"): 0x2283, 
    914    ("(", "_"): 0x2286, 
    915    (")", "_"): 0x2287, 
    916    ("0", "."): 0x2299, 
    917    ("0", "2"): 0x229A, 
    918    ("-", "T"): 0x22A5, 
    919    (".", "P"): 0x22C5, 
    920    (":", "3"): 0x22EE, 
    921    (".", "3"): 0x22EF, 
    922    ("E", "h"): 0x2302, 
    923    ("<", "7"): 0x2308, 
    924    (">", "7"): 0x2309, 
    925    ("7", "<"): 0x230A, 
    926    ("7", ">"): 0x230B, 
    927    ("N", "I"): 0x2310, 
    928    ("(", "A"): 0x2312, 
    929    ("T", "R"): 0x2315, 
    930    ("I", "u"): 0x2320, 
    931    ("I", "l"): 0x2321, 
    932    ("<", "/"): 0x2329, 
    933    ("/", ">"): 0x232A, 
    934    ("V", "s"): 0x2423, 
    935    ("1", "h"): 0x2440, 
    936    ("3", "h"): 0x2441, 
    937    ("2", "h"): 0x2442, 
    938    ("4", "h"): 0x2443, 
    939    ("1", "j"): 0x2446, 
    940    ("2", "j"): 0x2447, 
    941    ("3", "j"): 0x2448, 
    942    ("4", "j"): 0x2449, 
    943    ("1", "."): 0x2488, 
    944    ("2", "."): 0x2489, 
    945    ("3", "."): 0x248A, 
    946    ("4", "."): 0x248B, 
    947    ("5", "."): 0x248C, 
    948    ("6", "."): 0x248D, 
    949    ("7", "."): 0x248E, 
    950    ("8", "."): 0x248F, 
    951    ("9", "."): 0x2490, 
    952    ("h", "h"): 0x2500, 
    953    ("H", "H"): 0x2501, 
    954    ("v", "v"): 0x2502, 
    955    ("V", "V"): 0x2503, 
    956    ("3", "-"): 0x2504, 
    957    ("3", "_"): 0x2505, 
    958    ("3", "!"): 0x2506, 
    959    ("3", "/"): 0x2507, 
    960    ("4", "-"): 0x2508, 
    961    ("4", "_"): 0x2509, 
    962    ("4", "!"): 0x250A, 
    963    ("4", "/"): 0x250B, 
    964    ("d", "r"): 0x250C, 
    965    ("d", "R"): 0x250D, 
    966    ("D", "r"): 0x250E, 
    967    ("D", "R"): 0x250F, 
    968    ("d", "l"): 0x2510, 
    969    ("d", "L"): 0x2511, 
    970    ("D", "l"): 0x2512, 
    971    ("L", "D"): 0x2513, 
    972    ("u", "r"): 0x2514, 
    973    ("u", "R"): 0x2515, 
    974    ("U", "r"): 0x2516, 
    975    ("U", "R"): 0x2517, 
    976    ("u", "l"): 0x2518, 
    977    ("u", "L"): 0x2519, 
    978    ("U", "l"): 0x251A, 
    979    ("U", "L"): 0x251B, 
    980    ("v", "r"): 0x251C, 
    981    ("v", "R"): 0x251D, 
    982    ("V", "r"): 0x2520, 
    983    ("V", "R"): 0x2523, 
    984    ("v", "l"): 0x2524, 
    985    ("v", "L"): 0x2525, 
    986    ("V", "l"): 0x2528, 
    987    ("V", "L"): 0x252B, 
    988    ("d", "h"): 0x252C, 
    989    ("d", "H"): 0x252F, 
    990    ("D", "h"): 0x2530, 
    991    ("D", "H"): 0x2533, 
    992    ("u", "h"): 0x2534, 
    993    ("u", "H"): 0x2537, 
    994    ("U", "h"): 0x2538, 
    995    ("U", "H"): 0x253B, 
    996    ("v", "h"): 0x253C, 
    997    ("v", "H"): 0x253F, 
    998    ("V", "h"): 0x2542, 
    999    ("V", "H"): 0x254B, 
    1000    ("F", "D"): 0x2571, 
    1001    ("B", "D"): 0x2572, 
    1002    ("T", "B"): 0x2580, 
    1003    ("L", "B"): 0x2584, 
    1004    ("F", "B"): 0x2588, 
    1005    ("l", "B"): 0x258C, 
    1006    ("R", "B"): 0x2590, 
    1007    (".", "S"): 0x2591, 
    1008    (":", "S"): 0x2592, 
    1009    ("?", "S"): 0x2593, 
    1010    ("f", "S"): 0x25A0, 
    1011    ("O", "S"): 0x25A1, 
    1012    ("R", "O"): 0x25A2, 
    1013    ("R", "r"): 0x25A3, 
    1014    ("R", "F"): 0x25A4, 
    1015    ("R", "Y"): 0x25A5, 
    1016    ("R", "H"): 0x25A6, 
    1017    ("R", "Z"): 0x25A7, 
    1018    ("R", "K"): 0x25A8, 
    1019    ("R", "X"): 0x25A9, 
    1020    ("s", "B"): 0x25AA, 
    1021    ("S", "R"): 0x25AC, 
    1022    ("O", "r"): 0x25AD, 
    1023    ("U", "T"): 0x25B2, 
    1024    ("u", "T"): 0x25B3, 
    1025    ("P", "R"): 0x25B6, 
    1026    ("T", "r"): 0x25B7, 
    1027    ("D", "t"): 0x25BC, 
    1028    ("d", "T"): 0x25BD, 
    1029    ("P", "L"): 0x25C0, 
    1030    ("T", "l"): 0x25C1, 
    1031    ("D", "b"): 0x25C6, 
    1032    ("D", "w"): 0x25C7, 
    1033    ("L", "Z"): 0x25CA, 
    1034    ("0", "m"): 0x25CB, 
    1035    ("0", "o"): 0x25CE, 
    1036    ("0", "M"): 0x25CF, 
    1037    ("0", "L"): 0x25D0, 
    1038    ("0", "R"): 0x25D1, 
    1039    ("S", "n"): 0x25D8, 
    1040    ("I", "c"): 0x25D9, 
    1041    ("F", "d"): 0x25E2, 
    1042    ("B", "d"): 0x25E3, 
    1043    ("*", "2"): 0x2605, 
    1044    ("*", "1"): 0x2606, 
    1045    ("<", "H"): 0x261C, 
    1046    (">", "H"): 0x261E, 
    1047    ("0", "u"): 0x263A, 
    1048    ("0", "U"): 0x263B, 
    1049    ("S", "U"): 0x263C, 
    1050    ("F", "m"): 0x2640, 
    1051    ("M", "l"): 0x2642, 
    1052    ("c", "S"): 0x2660, 
    1053    ("c", "H"): 0x2661, 
    1054    ("c", "D"): 0x2662, 
    1055    ("c", "C"): 0x2663, 
    1056    ("M", "d"): 0x2669, 
    1057    ("M", "8"): 0x266A, 
    1058    ("M", "2"): 0x266B, 
    1059    ("M", "b"): 0x266D, 
    1060    ("M", "x"): 0x266E, 
    1061    ("M", "X"): 0x266F, 
    1062    ("O", "K"): 0x2713, 
    1063    ("X", "X"): 0x2717, 
    1064    ("-", "X"): 0x2720, 
    1065    ("I", "S"): 0x3000, 
    1066    (",", "_"): 0x3001, 
    1067    (".", "_"): 0x3002, 
    1068    ("+", '"'): 0x3003, 
    1069    ("+", "_"): 0x3004, 
    1070    ("*", "_"): 0x3005, 
    1071    (";", "_"): 0x3006, 
    1072    ("0", "_"): 0x3007, 
    1073    ("<", "+"): 0x300A, 
    1074    (">", "+"): 0x300B, 
    1075    ("<", "'"): 0x300C, 
    1076    (">", "'"): 0x300D, 
    1077    ("<", '"'): 0x300E, 
    1078    (">", '"'): 0x300F, 
    1079    ("(", '"'): 0x3010, 
    1080    (")", '"'): 0x3011, 
    1081    ("=", "T"): 0x3012, 
    1082    ("=", "_"): 0x3013, 
    1083    ("(", "'"): 0x3014, 
    1084    (")", "'"): 0x3015, 
    1085    ("(", "I"): 0x3016, 
    1086    (")", "I"): 0x3017, 
    1087    ("-", "?"): 0x301C, 
    1088    ("A", "5"): 0x3041, 
    1089    ("a", "5"): 0x3042, 
    1090    ("I", "5"): 0x3043, 
    1091    ("i", "5"): 0x3044, 
    1092    ("U", "5"): 0x3045, 
    1093    ("u", "5"): 0x3046, 
    1094    ("E", "5"): 0x3047, 
    1095    ("e", "5"): 0x3048, 
    1096    ("O", "5"): 0x3049, 
    1097    ("o", "5"): 0x304A, 
    1098    ("k", "a"): 0x304B, 
    1099    ("g", "a"): 0x304C, 
    1100    ("k", "i"): 0x304D, 
    1101    ("g", "i"): 0x304E, 
    1102    ("k", "u"): 0x304F, 
    1103    ("g", "u"): 0x3050, 
    1104    ("k", "e"): 0x3051, 
    1105    ("g", "e"): 0x3052, 
    1106    ("k", "o"): 0x3053, 
    1107    ("g", "o"): 0x3054, 
    1108    ("s", "a"): 0x3055, 
    1109    ("z", "a"): 0x3056, 
    1110    ("s", "i"): 0x3057, 
    1111    ("z", "i"): 0x3058, 
    1112    ("s", "u"): 0x3059, 
    1113    ("z", "u"): 0x305A, 
    1114    ("s", "e"): 0x305B, 
    1115    ("z", "e"): 0x305C, 
    1116    ("s", "o"): 0x305D, 
    1117    ("z", "o"): 0x305E, 
    1118    ("t", "a"): 0x305F, 
    1119    ("d", "a"): 0x3060, 
    1120    ("t", "i"): 0x3061, 
    1121    ("d", "i"): 0x3062, 
    1122    ("t", "U"): 0x3063, 
    1123    ("t", "u"): 0x3064, 
    1124    ("d", "u"): 0x3065, 
    1125    ("t", "e"): 0x3066, 
    1126    ("d", "e"): 0x3067, 
    1127    ("t", "o"): 0x3068, 
    1128    ("d", "o"): 0x3069, 
    1129    ("n", "a"): 0x306A, 
    1130    ("n", "i"): 0x306B, 
    1131    ("n", "u"): 0x306C, 
    1132    ("n", "e"): 0x306D, 
    1133    ("n", "o"): 0x306E, 
    1134    ("h", "a"): 0x306F, 
    1135    ("b", "a"): 0x3070, 
    1136    ("p", "a"): 0x3071, 
    1137    ("h", "i"): 0x3072, 
    1138    ("b", "i"): 0x3073, 
    1139    ("p", "i"): 0x3074, 
    1140    ("h", "u"): 0x3075, 
    1141    ("b", "u"): 0x3076, 
    1142    ("p", "u"): 0x3077, 
    1143    ("h", "e"): 0x3078, 
    1144    ("b", "e"): 0x3079, 
    1145    ("p", "e"): 0x307A, 
    1146    ("h", "o"): 0x307B, 
    1147    ("b", "o"): 0x307C, 
    1148    ("p", "o"): 0x307D, 
    1149    ("m", "a"): 0x307E, 
    1150    ("m", "i"): 0x307F, 
    1151    ("m", "u"): 0x3080, 
    1152    ("m", "e"): 0x3081, 
    1153    ("m", "o"): 0x3082, 
    1154    ("y", "A"): 0x3083, 
    1155    ("y", "a"): 0x3084, 
    1156    ("y", "U"): 0x3085, 
    1157    ("y", "u"): 0x3086, 
    1158    ("y", "O"): 0x3087, 
    1159    ("y", "o"): 0x3088, 
    1160    ("r", "a"): 0x3089, 
    1161    ("r", "i"): 0x308A, 
    1162    ("r", "u"): 0x308B, 
    1163    ("r", "e"): 0x308C, 
    1164    ("r", "o"): 0x308D, 
    1165    ("w", "A"): 0x308E, 
    1166    ("w", "a"): 0x308F, 
    1167    ("w", "i"): 0x3090, 
    1168    ("w", "e"): 0x3091, 
    1169    ("w", "o"): 0x3092, 
    1170    ("n", "5"): 0x3093, 
    1171    ("v", "u"): 0x3094, 
    1172    ('"', "5"): 0x309B, 
    1173    ("0", "5"): 0x309C, 
    1174    ("*", "5"): 0x309D, 
    1175    ("+", "5"): 0x309E, 
    1176    ("a", "6"): 0x30A1, 
    1177    ("A", "6"): 0x30A2, 
    1178    ("i", "6"): 0x30A3, 
    1179    ("I", "6"): 0x30A4, 
    1180    ("u", "6"): 0x30A5, 
    1181    ("U", "6"): 0x30A6, 
    1182    ("e", "6"): 0x30A7, 
    1183    ("E", "6"): 0x30A8, 
    1184    ("o", "6"): 0x30A9, 
    1185    ("O", "6"): 0x30AA, 
    1186    ("K", "a"): 0x30AB, 
    1187    ("G", "a"): 0x30AC, 
    1188    ("K", "i"): 0x30AD, 
    1189    ("G", "i"): 0x30AE, 
    1190    ("K", "u"): 0x30AF, 
    1191    ("G", "u"): 0x30B0, 
    1192    ("K", "e"): 0x30B1, 
    1193    ("G", "e"): 0x30B2, 
    1194    ("K", "o"): 0x30B3, 
    1195    ("G", "o"): 0x30B4, 
    1196    ("S", "a"): 0x30B5, 
    1197    ("Z", "a"): 0x30B6, 
    1198    ("S", "i"): 0x30B7, 
    1199    ("Z", "i"): 0x30B8, 
    1200    ("S", "u"): 0x30B9, 
    1201    ("Z", "u"): 0x30BA, 
    1202    ("S", "e"): 0x30BB, 
    1203    ("Z", "e"): 0x30BC, 
    1204    ("S", "o"): 0x30BD, 
    1205    ("Z", "o"): 0x30BE, 
    1206    ("T", "a"): 0x30BF, 
    1207    ("D", "a"): 0x30C0, 
    1208    ("T", "i"): 0x30C1, 
    1209    ("D", "i"): 0x30C2, 
    1210    ("T", "U"): 0x30C3, 
    1211    ("T", "u"): 0x30C4, 
    1212    ("D", "u"): 0x30C5, 
    1213    ("T", "e"): 0x30C6, 
    1214    ("D", "e"): 0x30C7, 
    1215    ("T", "o"): 0x30C8, 
    1216    ("D", "o"): 0x30C9, 
    1217    ("N", "a"): 0x30CA, 
    1218    ("N", "i"): 0x30CB, 
    1219    ("N", "u"): 0x30CC, 
    1220    ("N", "e"): 0x30CD, 
    1221    ("N", "o"): 0x30CE, 
    1222    ("H", "a"): 0x30CF, 
    1223    ("B", "a"): 0x30D0, 
    1224    ("P", "a"): 0x30D1, 
    1225    ("H", "i"): 0x30D2, 
    1226    ("B", "i"): 0x30D3, 
    1227    ("P", "i"): 0x30D4, 
    1228    ("H", "u"): 0x30D5, 
    1229    ("B", "u"): 0x30D6, 
    1230    ("P", "u"): 0x30D7, 
    1231    ("H", "e"): 0x30D8, 
    1232    ("B", "e"): 0x30D9, 
    1233    ("P", "e"): 0x30DA, 
    1234    ("H", "o"): 0x30DB, 
    1235    ("B", "o"): 0x30DC, 
    1236    ("P", "o"): 0x30DD, 
    1237    ("M", "a"): 0x30DE, 
    1238    ("M", "i"): 0x30DF, 
    1239    ("M", "u"): 0x30E0, 
    1240    ("M", "e"): 0x30E1, 
    1241    ("M", "o"): 0x30E2, 
    1242    ("Y", "A"): 0x30E3, 
    1243    ("Y", "a"): 0x30E4, 
    1244    ("Y", "U"): 0x30E5, 
    1245    ("Y", "u"): 0x30E6, 
    1246    ("Y", "O"): 0x30E7, 
    1247    ("Y", "o"): 0x30E8, 
    1248    ("R", "a"): 0x30E9, 
    1249    ("R", "i"): 0x30EA, 
    1250    ("R", "u"): 0x30EB, 
    1251    ("R", "e"): 0x30EC, 
    1252    ("R", "o"): 0x30ED, 
    1253    ("W", "A"): 0x30EE, 
    1254    ("W", "a"): 0x30EF, 
    1255    ("W", "i"): 0x30F0, 
    1256    ("W", "e"): 0x30F1, 
    1257    ("W", "o"): 0x30F2, 
    1258    ("N", "6"): 0x30F3, 
    1259    ("V", "u"): 0x30F4, 
    1260    ("K", "A"): 0x30F5, 
    1261    ("K", "E"): 0x30F6, 
    1262    ("V", "a"): 0x30F7, 
    1263    ("V", "i"): 0x30F8, 
    1264    ("V", "e"): 0x30F9, 
    1265    ("V", "o"): 0x30FA, 
    1266    (".", "6"): 0x30FB, 
    1267    ("-", "6"): 0x30FC, 
    1268    ("*", "6"): 0x30FD, 
    1269    ("+", "6"): 0x30FE, 
    1270    ("b", "4"): 0x3105, 
    1271    ("p", "4"): 0x3106, 
    1272    ("m", "4"): 0x3107, 
    1273    ("f", "4"): 0x3108, 
    1274    ("d", "4"): 0x3109, 
    1275    ("t", "4"): 0x310A, 
    1276    ("n", "4"): 0x310B, 
    1277    ("l", "4"): 0x310C, 
    1278    ("g", "4"): 0x310D, 
    1279    ("k", "4"): 0x310E, 
    1280    ("h", "4"): 0x310F, 
    1281    ("j", "4"): 0x3110, 
    1282    ("q", "4"): 0x3111, 
    1283    ("x", "4"): 0x3112, 
    1284    ("z", "h"): 0x3113, 
    1285    ("c", "h"): 0x3114, 
    1286    ("s", "h"): 0x3115, 
    1287    ("r", "4"): 0x3116, 
    1288    ("z", "4"): 0x3117, 
    1289    ("c", "4"): 0x3118, 
    1290    ("s", "4"): 0x3119, 
    1291    ("a", "4"): 0x311A, 
    1292    ("o", "4"): 0x311B, 
    1293    ("e", "4"): 0x311C, 
    1294    ("a", "i"): 0x311E, 
    1295    ("e", "i"): 0x311F, 
    1296    ("a", "u"): 0x3120, 
    1297    ("o", "u"): 0x3121, 
    1298    ("a", "n"): 0x3122, 
    1299    ("e", "n"): 0x3123, 
    1300    ("a", "N"): 0x3124, 
    1301    ("e", "N"): 0x3125, 
    1302    ("e", "r"): 0x3126, 
    1303    ("i", "4"): 0x3127, 
    1304    ("u", "4"): 0x3128, 
    1305    ("i", "u"): 0x3129, 
    1306    ("v", "4"): 0x312A, 
    1307    ("n", "G"): 0x312B, 
    1308    ("g", "n"): 0x312C, 
    1309    ("1", "c"): 0x3220, 
    1310    ("2", "c"): 0x3221, 
    1311    ("3", "c"): 0x3222, 
    1312    ("4", "c"): 0x3223, 
    1313    ("5", "c"): 0x3224, 
    1314    ("6", "c"): 0x3225, 
    1315    ("7", "c"): 0x3226, 
    1316    ("8", "c"): 0x3227, 
    1317    ("9", "c"): 0x3228, 
    1318    # code points 0xe000 - 0xefff excluded, they have no assigned 
    1319    # characters, only used in proposals. 
    1320    ("f", "f"): 0xFB00, 
    1321    ("f", "i"): 0xFB01, 
    1322    ("f", "l"): 0xFB02, 
    1323    ("f", "t"): 0xFB05, 
    1324    ("s", "t"): 0xFB06, 
    1325    # Vim 5.x compatible digraphs that don't conflict with the above 
    1326    ("~", "!"): 161, 
    1327    ("c", "|"): 162, 
    1328    ("$", "$"): 163, 
    1329    ("o", "x"): 164,  # currency symbol in ISO 8859-1 
    1330    ("Y", "-"): 165, 
    1331    ("|", "|"): 166, 
    1332    ("c", "O"): 169, 
    1333    ("-", ","): 172, 
    1334    ("-", "="): 175, 
    1335    ("~", "o"): 176, 
    1336    ("2", "2"): 178, 
    1337    ("3", "3"): 179, 
    1338    ("p", "p"): 182, 
    1339    ("~", "."): 183, 
    1340    ("1", "1"): 185, 
    1341    ("~", "?"): 191, 
    1342    ("A", "`"): 192, 
    1343    ("A", "^"): 194, 
    1344    ("A", "~"): 195, 
    1345    ("A", '"'): 196, 
    1346    ("A", "@"): 197, 
    1347    ("E", "`"): 200, 
    1348    ("E", "^"): 202, 
    1349    ("E", '"'): 203, 
    1350    ("I", "`"): 204, 
    1351    ("I", "^"): 206, 
    1352    ("I", '"'): 207, 
    1353    ("N", "~"): 209, 
    1354    ("O", "`"): 210, 
    1355    ("O", "^"): 212, 
    1356    ("O", "~"): 213, 
    1357    ("/", "\\"): 215,  # multiplication symbol in ISO 8859-1 
    1358    ("U", "`"): 217, 
    1359    ("U", "^"): 219, 
    1360    ("I", "p"): 222, 
    1361    ("a", "`"): 224, 
    1362    ("a", "^"): 226, 
    1363    ("a", "~"): 227, 
    1364    ("a", '"'): 228, 
    1365    ("a", "@"): 229, 
    1366    ("e", "`"): 232, 
    1367    ("e", "^"): 234, 
    1368    ("e", '"'): 235, 
    1369    ("i", "`"): 236, 
    1370    ("i", "^"): 238, 
    1371    ("n", "~"): 241, 
    1372    ("o", "`"): 242, 
    1373    ("o", "^"): 244, 
    1374    ("o", "~"): 245, 
    1375    ("u", "`"): 249, 
    1376    ("u", "^"): 251, 
    1377    ("y", '"'): 255, 
    1378}