summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--Makefile.am11
-rw-r--r--configure.in1
-rw-r--r--deadbeef.glade8
-rw-r--r--interface.c6
-rw-r--r--plugins/hotkeys/Makefile.am9
-rw-r--r--plugins/hotkeys/hotkeys.c22
-rw-r--r--plugins/hotkeys/keysyms.inc2005
8 files changed, 2048 insertions, 15 deletions
diff --git a/AUTHORS b/AUTHORS
index 3fd40c52..03f6c24d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,3 @@
code: Alexey Yakovenko <waker@users.sourceforge.net>
button images: Stas "uncle lag" Akimushkin <uncle.lag@gmail.com>
+hotkeys plugin: Viktor Semykin <thesame.ml@gmail.com>
diff --git a/Makefile.am b/Makefile.am
index ceb64007..4eb941cd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,15 @@
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4
-SUBDIRS = gme/Game_Music_Emu-0.5.2 gme/Game_Music_Emu-0.5.2/gme sid/sidplay-libs-2.1.0 dumb pixmaps\
- plugins/lastfm ${APE_DIR} plugins/demac
+SUBDIRS = gme/Game_Music_Emu-0.5.2\
+ gme/Game_Music_Emu-0.5.2/gme\
+ sid/sidplay-libs-2.1.0\
+ dumb\
+ pixmaps\
+ plugins/hotkeys\
+ plugins/lastfm\
+ ${APE_DIR}\
+ plugins/demac
dumbpath=@top_srcdir@/dumb
sidpath=@top_srcdir@/sid/sidplay-libs-2.1.0
diff --git a/configure.in b/configure.in
index 48bd0739..1d3fb8cf 100644
--- a/configure.in
+++ b/configure.in
@@ -46,6 +46,7 @@ gme/Game_Music_Emu-0.5.2/Makefile
gme/Game_Music_Emu-0.5.2/gme/Makefile
sid/sidplay-libs-2.1.0/Makefile
dumb/Makefile
+plugins/hotkeys/Makefile
plugins/lastfm/Makefile
plugins/ape/Makefile
plugins/demac/Makefile
diff --git a/deadbeef.glade b/deadbeef.glade
index d597fd12..94b5f8bf 100644
--- a/deadbeef.glade
+++ b/deadbeef.glade
@@ -693,8 +693,12 @@ Copyright (C) Simon White and other authors.</property>
<property name="wrap_license">False</property>
<property name="website">http://deadbeef.sf.net</property>
<property name="website_label" translatable="yes">website</property>
- <property name="authors">Alexey Yakovenko &lt;waker@users.sourceforge.net&gt;</property>
- <property name="artists">Stas &quot;uncle lag&quot; Akimushkin &lt;uncle.lag@gmail.com&gt;</property>
+ <property name="authors">Core developer: Alexey Yakovenko &lt;waker@users.sourceforge.net&gt;
+
+Hotkeys plugin: Viktor Semykin &lt;thesame.ml@gmail.com&gt;
+
+Desktop file and Debian packages: Alexey A. Smirnov &lt;alexey.smirnov@gmx.com&gt;</property>
+ <property name="artists">Button artwork: Stas &quot;uncle lag&quot; Akimushkin &lt;uncle.lag@gmail.com&gt;</property>
<property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
</widget>
diff --git a/interface.c b/interface.c
index 0b24d0f8..347cf149 100644
--- a/interface.c
+++ b/interface.c
@@ -623,11 +623,13 @@ create_aboutdialog (void)
{
GtkWidget *aboutdialog;
const gchar *authors[] = {
- "Alexey Yakovenko <waker@users.sourceforge.net>",
+ "Core developer: Alexey Yakovenko <waker@users.sourceforge.net>",
+ "Hotkeys plugin: Viktor Semykin <thesame.ml@gmail.com>",
+ "Desktop file and Debian packages: Alexey A. Smirnov <alexey.smirnov@gmx.com>",
NULL
};
const gchar *artists[] = {
- "Stas \"uncle lag\" Akimushkin <uncle.lag@gmail.com>",
+ "Button artwork: Stas \"uncle lag\" Akimushkin <uncle.lag@gmail.com>",
NULL
};
diff --git a/plugins/hotkeys/Makefile.am b/plugins/hotkeys/Makefile.am
new file mode 100644
index 00000000..4f08e6eb
--- /dev/null
+++ b/plugins/hotkeys/Makefile.am
@@ -0,0 +1,9 @@
+hotkeysdir = $(libdir)/$(PACKAGE)
+pkglib_LTLIBRARIES = hotkeys.la
+hotkeys_la_SOURCES = hotkeys.c
+hotkeys_la_LDFLAGS = -module
+
+EXTRA_hotkeys_la_SOURCES = keysyms.inc
+
+hotkeys_la_LIBADD = $(LDADD) $(hotkeys_DEPS_LIBS)
+AM_CFLAGS = $(hotkeys_DEPS_CFLAGS) -std=c99
diff --git a/plugins/hotkeys/hotkeys.c b/plugins/hotkeys/hotkeys.c
index 3806d2d3..6f6a3b7f 100644
--- a/plugins/hotkeys/hotkeys.c
+++ b/plugins/hotkeys/hotkeys.c
@@ -1,6 +1,6 @@
/*
Hotkeys plugin for DeaDBeeF
- Copyright (C) 2009 Viktor Semykin
+ Copyright (C) 2009 Viktor Semykin <thesame.ml@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -294,7 +294,7 @@ x_err_handler (Display *disp, XErrorEvent *evt) {
static int
hotkeys_start (void) {
finished = 0;
-
+ loop_tid = 0;
disp = XOpenDisplay( NULL );
if ( !disp )
{
@@ -304,17 +304,21 @@ hotkeys_start (void) {
XSetErrorHandler( x_err_handler );
read_config( disp );
- loop_tid = deadbeef->thread_start( hotkeys_event_loop, 0 );
+ if (command_count > 0) {
+ loop_tid = deadbeef->thread_start( hotkeys_event_loop, 0 );
+ }
+ else {
+ cleanup();
+ }
}
static int
hotkeys_stop (void) {
- XEvent evt;
-
- finished = 1;
-
- deadbeef->thread_join( loop_tid );
- cleanup();
+ if (loop_tid) {
+ finished = 1;
+ deadbeef->thread_join( loop_tid );
+ cleanup();
+ }
}
// define plugin interface
diff --git a/plugins/hotkeys/keysyms.inc b/plugins/hotkeys/keysyms.inc
new file mode 100644
index 00000000..e107a613
--- /dev/null
+++ b/plugins/hotkeys/keysyms.inc
@@ -0,0 +1,2005 @@
+KEY("VoidSymbol", 0xffffff)
+KEY("BackSpace", 0xff08)
+KEY("Tab", 0xff09)
+KEY("Linefeed", 0xff0a)
+KEY("Clear", 0xff0b)
+KEY("Return", 0xff0d)
+KEY("Pause", 0xff13)
+KEY("Scroll_Lock", 0xff14)
+KEY("Sys_Req", 0xff15)
+KEY("Escape", 0xff1b)
+KEY("Delete", 0xffff)
+KEY("Multi_key", 0xff20)
+KEY("Codeinput", 0xff37)
+KEY("SingleCandidate", 0xff3c)
+KEY("MultipleCandidate", 0xff3d)
+KEY("PreviousCandidate", 0xff3e)
+KEY("Kanji", 0xff21)
+KEY("Muhenkan", 0xff22)
+KEY("Henkan_Mode", 0xff23)
+KEY("Henkan", 0xff23)
+KEY("Romaji", 0xff24)
+KEY("Hiragana", 0xff25)
+KEY("Katakana", 0xff26)
+KEY("Hiragana_Katakana", 0xff27)
+KEY("Zenkaku", 0xff28)
+KEY("Hankaku", 0xff29)
+KEY("Zenkaku_Hankaku", 0xff2a)
+KEY("Touroku", 0xff2b)
+KEY("Massyo", 0xff2c)
+KEY("Kana_Lock", 0xff2d)
+KEY("Kana_Shift", 0xff2e)
+KEY("Eisu_Shift", 0xff2f)
+KEY("Eisu_toggle", 0xff30)
+KEY("Kanji_Bangou", 0xff37)
+KEY("Zen_Koho", 0xff3d)
+KEY("Mae_Koho", 0xff3e)
+KEY("Home", 0xff50)
+KEY("Left", 0xff51)
+KEY("Up", 0xff52)
+KEY("Right", 0xff53)
+KEY("Down", 0xff54)
+KEY("Prior", 0xff55)
+KEY("Page_Up", 0xff55)
+KEY("Next", 0xff56)
+KEY("Page_Down", 0xff56)
+KEY("End", 0xff57)
+KEY("Begin", 0xff58)
+KEY("Select", 0xff60)
+KEY("Print", 0xff61)
+KEY("Execute", 0xff62)
+KEY("Insert", 0xff63)
+KEY("Undo", 0xff65)
+KEY("Redo", 0xff66)
+KEY("Menu", 0xff67)
+KEY("Find", 0xff68)
+KEY("Cancel", 0xff69)
+KEY("Help", 0xff6a)
+KEY("Break", 0xff6b)
+KEY("Mode_switch", 0xff7e)
+KEY("script_switch", 0xff7e)
+KEY("Num_Lock", 0xff7f)
+KEY("KP_Space", 0xff80)
+KEY("KP_Tab", 0xff89)
+KEY("KP_Enter", 0xff8d)
+KEY("KP_F1", 0xff91)
+KEY("KP_F2", 0xff92)
+KEY("KP_F3", 0xff93)
+KEY("KP_F4", 0xff94)
+KEY("KP_Home", 0xff95)
+KEY("KP_Left", 0xff96)
+KEY("KP_Up", 0xff97)
+KEY("KP_Right", 0xff98)
+KEY("KP_Down", 0xff99)
+KEY("KP_Prior", 0xff9a)
+KEY("KP_Page_Up", 0xff9a)
+KEY("KP_Next", 0xff9b)
+KEY("KP_Page_Down", 0xff9b)
+KEY("KP_End", 0xff9c)
+KEY("KP_Begin", 0xff9d)
+KEY("KP_Insert", 0xff9e)
+KEY("KP_Delete", 0xff9f)
+KEY("KP_Equal", 0xffbd)
+KEY("KP_Multiply", 0xffaa)
+KEY("KP_Add", 0xffab)
+KEY("KP_Separator", 0xffac)
+KEY("KP_Subtract", 0xffad)
+KEY("KP_Decimal", 0xffae)
+KEY("KP_Divide", 0xffaf)
+KEY("KP_0", 0xffb0)
+KEY("KP_1", 0xffb1)
+KEY("KP_2", 0xffb2)
+KEY("KP_3", 0xffb3)
+KEY("KP_4", 0xffb4)
+KEY("KP_5", 0xffb5)
+KEY("KP_6", 0xffb6)
+KEY("KP_7", 0xffb7)
+KEY("KP_8", 0xffb8)
+KEY("KP_9", 0xffb9)
+KEY("F1", 0xffbe)
+KEY("F2", 0xffbf)
+KEY("F3", 0xffc0)
+KEY("F4", 0xffc1)
+KEY("F5", 0xffc2)
+KEY("F6", 0xffc3)
+KEY("F7", 0xffc4)
+KEY("F8", 0xffc5)
+KEY("F9", 0xffc6)
+KEY("F10", 0xffc7)
+KEY("F11", 0xffc8)
+KEY("L1", 0xffc8)
+KEY("F12", 0xffc9)
+KEY("L2", 0xffc9)
+KEY("F13", 0xffca)
+KEY("L3", 0xffca)
+KEY("F14", 0xffcb)
+KEY("L4", 0xffcb)
+KEY("F15", 0xffcc)
+KEY("L5", 0xffcc)
+KEY("F16", 0xffcd)
+KEY("L6", 0xffcd)
+KEY("F17", 0xffce)
+KEY("L7", 0xffce)
+KEY("F18", 0xffcf)
+KEY("L8", 0xffcf)
+KEY("F19", 0xffd0)
+KEY("L9", 0xffd0)
+KEY("F20", 0xffd1)
+KEY("L10", 0xffd1)
+KEY("F21", 0xffd2)
+KEY("R1", 0xffd2)
+KEY("F22", 0xffd3)
+KEY("R2", 0xffd3)
+KEY("F23", 0xffd4)
+KEY("R3", 0xffd4)
+KEY("F24", 0xffd5)
+KEY("R4", 0xffd5)
+KEY("F25", 0xffd6)
+KEY("R5", 0xffd6)
+KEY("F26", 0xffd7)
+KEY("R6", 0xffd7)
+KEY("F27", 0xffd8)
+KEY("R7", 0xffd8)
+KEY("F28", 0xffd9)
+KEY("R8", 0xffd9)
+KEY("F29", 0xffda)
+KEY("R9", 0xffda)
+KEY("F30", 0xffdb)
+KEY("R10", 0xffdb)
+KEY("F31", 0xffdc)
+KEY("R11", 0xffdc)
+KEY("F32", 0xffdd)
+KEY("R12", 0xffdd)
+KEY("F33", 0xffde)
+KEY("R13", 0xffde)
+KEY("F34", 0xffdf)
+KEY("R14", 0xffdf)
+KEY("F35", 0xffe0)
+KEY("R15", 0xffe0)
+KEY("Shift_L", 0xffe1)
+KEY("Shift_R", 0xffe2)
+KEY("Control_L", 0xffe3)
+KEY("Control_R", 0xffe4)
+KEY("Caps_Lock", 0xffe5)
+KEY("Shift_Lock", 0xffe6)
+KEY("Meta_L", 0xffe7)
+KEY("Meta_R", 0xffe8)
+KEY("Alt_L", 0xffe9)
+KEY("Alt_R", 0xffea)
+KEY("Super_L", 0xffeb)
+KEY("Super_R", 0xffec)
+KEY("Hyper_L", 0xffed)
+KEY("Hyper_R", 0xffee)
+KEY("ISO_Lock", 0xfe01)
+KEY("ISO_Level2_Latch", 0xfe02)
+KEY("ISO_Level3_Shift", 0xfe03)
+KEY("ISO_Level3_Latch", 0xfe04)
+KEY("ISO_Level3_Lock", 0xfe05)
+KEY("ISO_Level5_Shift", 0xfe11)
+KEY("ISO_Level5_Latch", 0xfe12)
+KEY("ISO_Level5_Lock", 0xfe13)
+KEY("ISO_Group_Shift", 0xff7e)
+KEY("ISO_Group_Latch", 0xfe06)
+KEY("ISO_Group_Lock", 0xfe07)
+KEY("ISO_Next_Group", 0xfe08)
+KEY("ISO_Next_Group_Lock", 0xfe09)
+KEY("ISO_Prev_Group", 0xfe0a)
+KEY("ISO_Prev_Group_Lock", 0xfe0b)
+KEY("ISO_First_Group", 0xfe0c)
+KEY("ISO_First_Group_Lock", 0xfe0d)
+KEY("ISO_Last_Group", 0xfe0e)
+KEY("ISO_Last_Group_Lock", 0xfe0f)
+KEY("ISO_Left_Tab", 0xfe20)
+KEY("ISO_Move_Line_Up", 0xfe21)
+KEY("ISO_Move_Line_Down", 0xfe22)
+KEY("ISO_Partial_Line_Up", 0xfe23)
+KEY("ISO_Partial_Line_Down", 0xfe24)
+KEY("ISO_Partial_Space_Left", 0xfe25)
+KEY("ISO_Partial_Space_Right", 0xfe26)
+KEY("ISO_Set_Margin_Left", 0xfe27)
+KEY("ISO_Set_Margin_Right", 0xfe28)
+KEY("ISO_Release_Margin_Left", 0xfe29)
+KEY("ISO_Release_Margin_Right", 0xfe2a)
+KEY("ISO_Release_Both_Margins", 0xfe2b)
+KEY("ISO_Fast_Cursor_Left", 0xfe2c)
+KEY("ISO_Fast_Cursor_Right", 0xfe2d)
+KEY("ISO_Fast_Cursor_Up", 0xfe2e)
+KEY("ISO_Fast_Cursor_Down", 0xfe2f)
+KEY("ISO_Continuous_Underline", 0xfe30)
+KEY("ISO_Discontinuous_Underline", 0xfe31)
+KEY("ISO_Emphasize", 0xfe32)
+KEY("ISO_Center_Object", 0xfe33)
+KEY("ISO_Enter", 0xfe34)
+KEY("dead_grave", 0xfe50)
+KEY("dead_acute", 0xfe51)
+KEY("dead_circumflex", 0xfe52)
+KEY("dead_tilde", 0xfe53)
+KEY("dead_perispomeni", 0xfe53)
+KEY("dead_macron", 0xfe54)
+KEY("dead_breve", 0xfe55)
+KEY("dead_abovedot", 0xfe56)
+KEY("dead_diaeresis", 0xfe57)
+KEY("dead_abovering", 0xfe58)
+KEY("dead_doubleacute", 0xfe59)
+KEY("dead_caron", 0xfe5a)
+KEY("dead_cedilla", 0xfe5b)
+KEY("dead_ogonek", 0xfe5c)
+KEY("dead_iota", 0xfe5d)
+KEY("dead_voiced_sound", 0xfe5e)
+KEY("dead_semivoiced_sound", 0xfe5f)
+KEY("dead_belowdot", 0xfe60)
+KEY("dead_hook", 0xfe61)
+KEY("dead_horn", 0xfe62)
+KEY("dead_stroke", 0xfe63)
+KEY("dead_abovecomma", 0xfe64)
+KEY("dead_psili", 0xfe64)
+KEY("dead_abovereversedcomma", 0xfe65)
+KEY("dead_dasia", 0xfe65)
+KEY("dead_doublegrave", 0xfe66)
+KEY("dead_belowring", 0xfe67)
+KEY("dead_belowmacron", 0xfe68)
+KEY("dead_belowcircumflex", 0xfe69)
+KEY("dead_belowtilde", 0xfe6a)
+KEY("dead_belowbreve", 0xfe6b)
+KEY("dead_belowdiaeresis", 0xfe6c)
+KEY("dead_invertedbreve", 0xfe6d)
+KEY("dead_belowcomma", 0xfe6e)
+KEY("dead_currency", 0xfe6f)
+KEY("dead_a", 0xfe80)
+KEY("dead_A", 0xfe81)
+KEY("dead_e", 0xfe82)
+KEY("dead_E", 0xfe83)
+KEY("dead_i", 0xfe84)
+KEY("dead_I", 0xfe85)
+KEY("dead_o", 0xfe86)
+KEY("dead_O", 0xfe87)
+KEY("dead_u", 0xfe88)
+KEY("dead_U", 0xfe89)
+KEY("dead_small_schwa", 0xfe8a)
+KEY("dead_capital_schwa", 0xfe8b)
+KEY("First_Virtual_Screen", 0xfed0)
+KEY("Prev_Virtual_Screen", 0xfed1)
+KEY("Next_Virtual_Screen", 0xfed2)
+KEY("Last_Virtual_Screen", 0xfed4)
+KEY("Terminate_Server", 0xfed5)
+KEY("AccessX_Enable", 0xfe70)
+KEY("AccessX_Feedback_Enable", 0xfe71)
+KEY("RepeatKeys_Enable", 0xfe72)
+KEY("SlowKeys_Enable", 0xfe73)
+KEY("BounceKeys_Enable", 0xfe74)
+KEY("StickyKeys_Enable", 0xfe75)
+KEY("MouseKeys_Enable", 0xfe76)
+KEY("MouseKeys_Accel_Enable", 0xfe77)
+KEY("Overlay1_Enable", 0xfe78)
+KEY("Overlay2_Enable", 0xfe79)
+KEY("AudibleBell_Enable", 0xfe7a)
+KEY("Pointer_Left", 0xfee0)
+KEY("Pointer_Right", 0xfee1)
+KEY("Pointer_Up", 0xfee2)
+KEY("Pointer_Down", 0xfee3)
+KEY("Pointer_UpLeft", 0xfee4)
+KEY("Pointer_UpRight", 0xfee5)
+KEY("Pointer_DownLeft", 0xfee6)
+KEY("Pointer_DownRight", 0xfee7)
+KEY("Pointer_Button_Dflt", 0xfee8)
+KEY("Pointer_Button1", 0xfee9)
+KEY("Pointer_Button2", 0xfeea)
+KEY("Pointer_Button3", 0xfeeb)
+KEY("Pointer_Button4", 0xfeec)
+KEY("Pointer_Button5", 0xfeed)
+KEY("Pointer_DblClick_Dflt", 0xfeee)
+KEY("Pointer_DblClick1", 0xfeef)
+KEY("Pointer_DblClick2", 0xfef0)
+KEY("Pointer_DblClick3", 0xfef1)
+KEY("Pointer_DblClick4", 0xfef2)
+KEY("Pointer_DblClick5", 0xfef3)
+KEY("Pointer_Drag_Dflt", 0xfef4)
+KEY("Pointer_Drag1", 0xfef5)
+KEY("Pointer_Drag2", 0xfef6)
+KEY("Pointer_Drag3", 0xfef7)
+KEY("Pointer_Drag4", 0xfef8)
+KEY("Pointer_Drag5", 0xfefd)
+KEY("Pointer_EnableKeys", 0xfef9)
+KEY("Pointer_Accelerate", 0xfefa)
+KEY("Pointer_DfltBtnNext", 0xfefb)
+KEY("Pointer_DfltBtnPrev", 0xfefc)
+KEY("3270_Duplicate", 0xfd01)
+KEY("3270_FieldMark", 0xfd02)
+KEY("3270_Right2", 0xfd03)
+KEY("3270_Left2", 0xfd04)
+KEY("3270_BackTab", 0xfd05)
+KEY("3270_EraseEOF", 0xfd06)
+KEY("3270_EraseInput", 0xfd07)
+KEY("3270_Reset", 0xfd08)
+KEY("3270_Quit", 0xfd09)
+KEY("3270_PA1", 0xfd0a)
+KEY("3270_PA2", 0xfd0b)
+KEY("3270_PA3", 0xfd0c)
+KEY("3270_Test", 0xfd0d)
+KEY("3270_Attn", 0xfd0e)
+KEY("3270_CursorBlink", 0xfd0f)
+KEY("3270_AltCursor", 0xfd10)
+KEY("3270_KeyClick", 0xfd11)
+KEY("3270_Jump", 0xfd12)
+KEY("3270_Ident", 0xfd13)
+KEY("3270_Rule", 0xfd14)
+KEY("3270_Copy", 0xfd15)
+KEY("3270_Play", 0xfd16)
+KEY("3270_Setup", 0xfd17)
+KEY("3270_Record", 0xfd18)
+KEY("3270_ChangeScreen", 0xfd19)
+KEY("3270_DeleteWord", 0xfd1a)
+KEY("3270_ExSelect", 0xfd1b)
+KEY("3270_CursorSelect", 0xfd1c)
+KEY("3270_PrintScreen", 0xfd1d)
+KEY("3270_Enter", 0xfd1e)
+KEY("space", 0x0020)
+KEY("exclam", 0x0021)
+KEY("quotedbl", 0x0022)
+KEY("numbersign", 0x0023)
+KEY("dollar", 0x0024)
+KEY("percent", 0x0025)
+KEY("ampersand", 0x0026)
+KEY("apostrophe", 0x0027)
+KEY("quoteright", 0x0027)
+KEY("parenleft", 0x0028)
+KEY("parenright", 0x0029)
+KEY("asterisk", 0x002a)
+KEY("plus", 0x002b)
+KEY("comma", 0x002c)
+KEY("minus", 0x002d)
+KEY("period", 0x002e)
+KEY("slash", 0x002f)
+KEY("0", 0x0030)
+KEY("1", 0x0031)
+KEY("2", 0x0032)
+KEY("3", 0x0033)
+KEY("4", 0x0034)
+KEY("5", 0x0035)
+KEY("6", 0x0036)
+KEY("7", 0x0037)
+KEY("8", 0x0038)
+KEY("9", 0x0039)
+KEY("colon", 0x003a)
+KEY("semicolon", 0x003b)
+KEY("less", 0x003c)
+KEY("equal", 0x003d)
+KEY("greater", 0x003e)
+KEY("question", 0x003f)
+KEY("at", 0x0040)
+KEY("A", 0x0041)
+KEY("B", 0x0042)
+KEY("C", 0x0043)
+KEY("D", 0x0044)
+KEY("E", 0x0045)
+KEY("F", 0x0046)
+KEY("G", 0x0047)
+KEY("H", 0x0048)
+KEY("I", 0x0049)
+KEY("J", 0x004a)
+KEY("K", 0x004b)
+KEY("L", 0x004c)
+KEY("M", 0x004d)
+KEY("N", 0x004e)
+KEY("O", 0x004f)
+KEY("P", 0x0050)
+KEY("Q", 0x0051)
+KEY("R", 0x0052)
+KEY("S", 0x0053)
+KEY("T", 0x0054)
+KEY("U", 0x0055)
+KEY("V", 0x0056)
+KEY("W", 0x0057)
+KEY("X", 0x0058)
+KEY("Y", 0x0059)
+KEY("Z", 0x005a)
+KEY("bracketleft", 0x005b)
+KEY("backslash", 0x005c)
+KEY("bracketright", 0x005d)
+KEY("asciicircum", 0x005e)
+KEY("underscore", 0x005f)
+KEY("grave", 0x0060)
+KEY("quoteleft", 0x0060)
+KEY("a", 0x0061)
+KEY("b", 0x0062)
+KEY("c", 0x0063)
+KEY("d", 0x0064)
+KEY("e", 0x0065)
+KEY("f", 0x0066)
+KEY("g", 0x0067)
+KEY("h", 0x0068)
+KEY("i", 0x0069)
+KEY("j", 0x006a)
+KEY("k", 0x006b)
+KEY("l", 0x006c)
+KEY("m", 0x006d)
+KEY("n", 0x006e)
+KEY("o", 0x006f)
+KEY("p", 0x0070)
+KEY("q", 0x0071)
+KEY("r", 0x0072)
+KEY("s", 0x0073)
+KEY("t", 0x0074)
+KEY("u", 0x0075)
+KEY("v", 0x0076)
+KEY("w", 0x0077)
+KEY("x", 0x0078)
+KEY("y", 0x0079)
+KEY("z", 0x007a)
+KEY("braceleft", 0x007b)
+KEY("bar", 0x007c)
+KEY("braceright", 0x007d)
+KEY("asciitilde", 0x007e)
+KEY("nobreakspace", 0x00a0)
+KEY("exclamdown", 0x00a1)
+KEY("cent", 0x00a2)
+KEY("sterling", 0x00a3)
+KEY("currency", 0x00a4)
+KEY("yen", 0x00a5)
+KEY("brokenbar", 0x00a6)
+KEY("section", 0x00a7)
+KEY("diaeresis", 0x00a8)
+KEY("copyright", 0x00a9)
+KEY("ordfeminine", 0x00aa)
+KEY("guillemotleft", 0x00ab)
+KEY("notsign", 0x00ac)
+KEY("hyphen", 0x00ad)
+KEY("registered", 0x00ae)
+KEY("macron", 0x00af)
+KEY("degree", 0x00b0)
+KEY("plusminus", 0x00b1)
+KEY("twosuperior", 0x00b2)
+KEY("threesuperior", 0x00b3)
+KEY("acute", 0x00b4)
+KEY("mu", 0x00b5)
+KEY("paragraph", 0x00b6)
+KEY("periodcentered", 0x00b7)
+KEY("cedilla", 0x00b8)
+KEY("onesuperior", 0x00b9)
+KEY("masculine", 0x00ba)
+KEY("guillemotright", 0x00bb)
+KEY("onequarter", 0x00bc)
+KEY("onehalf", 0x00bd)
+KEY("threequarters", 0x00be)
+KEY("questiondown", 0x00bf)
+KEY("Agrave", 0x00c0)
+KEY("Aacute", 0x00c1)
+KEY("Acircumflex", 0x00c2)
+KEY("Atilde", 0x00c3)
+KEY("Adiaeresis", 0x00c4)
+KEY("Aring", 0x00c5)
+KEY("AE", 0x00c6)
+KEY("Ccedilla", 0x00c7)
+KEY("Egrave", 0x00c8)
+KEY("Eacute", 0x00c9)
+KEY("Ecircumflex", 0x00ca)
+KEY("Ediaeresis", 0x00cb)
+KEY("Igrave", 0x00cc)
+KEY("Iacute", 0x00cd)
+KEY("Icircumflex", 0x00ce)
+KEY("Idiaeresis", 0x00cf)
+KEY("ETH", 0x00d0)
+KEY("Eth", 0x00d0)
+KEY("Ntilde", 0x00d1)
+KEY("Ograve", 0x00d2)
+KEY("Oacute", 0x00d3)
+KEY("Ocircumflex", 0x00d4)
+KEY("Otilde", 0x00d5)
+KEY("Odiaeresis", 0x00d6)
+KEY("multiply", 0x00d7)
+KEY("Oslash", 0x00d8)
+KEY("Ooblique", 0x00d8)
+KEY("Ugrave", 0x00d9)
+KEY("Uacute", 0x00da)
+KEY("Ucircumflex", 0x00db)
+KEY("Udiaeresis", 0x00dc)
+KEY("Yacute", 0x00dd)
+KEY("THORN", 0x00de)
+KEY("Thorn", 0x00de)
+KEY("ssharp", 0x00df)
+KEY("agrave", 0x00e0)
+KEY("aacute", 0x00e1)
+KEY("acircumflex", 0x00e2)
+KEY("atilde", 0x00e3)
+KEY("adiaeresis", 0x00e4)
+KEY("aring", 0x00e5)
+KEY("ae", 0x00e6)
+KEY("ccedilla", 0x00e7)
+KEY("egrave", 0x00e8)
+KEY("eacute", 0x00e9)
+KEY("ecircumflex", 0x00ea)
+KEY("ediaeresis", 0x00eb)
+KEY("igrave", 0x00ec)
+KEY("iacute", 0x00ed)
+KEY("icircumflex", 0x00ee)
+KEY("idiaeresis", 0x00ef)
+KEY("eth", 0x00f0)
+KEY("ntilde", 0x00f1)
+KEY("ograve", 0x00f2)
+KEY("oacute", 0x00f3)
+KEY("ocircumflex", 0x00f4)
+KEY("otilde", 0x00f5)
+KEY("odiaeresis", 0x00f6)
+KEY("division", 0x00f7)
+KEY("oslash", 0x00f8)
+KEY("ooblique", 0x00f8)
+KEY("ugrave", 0x00f9)
+KEY("uacute", 0x00fa)
+KEY("ucircumflex", 0x00fb)
+KEY("udiaeresis", 0x00fc)
+KEY("yacute", 0x00fd)
+KEY("thorn", 0x00fe)
+KEY("ydiaeresis", 0x00ff)
+KEY("Aogonek", 0x01a1)
+KEY("breve", 0x01a2)
+KEY("Lstroke", 0x01a3)
+KEY("Lcaron", 0x01a5)
+KEY("Sacute", 0x01a6)
+KEY("Scaron", 0x01a9)
+KEY("Scedilla", 0x01aa)
+KEY("Tcaron", 0x01ab)
+KEY("Zacute", 0x01ac)
+KEY("Zcaron", 0x01ae)
+KEY("Zabovedot", 0x01af)
+KEY("aogonek", 0x01b1)
+KEY("ogonek", 0x01b2)
+KEY("lstroke", 0x01b3)
+KEY("lcaron", 0x01b5)
+KEY("sacute", 0x01b6)
+KEY("caron", 0x01b7)
+KEY("scaron", 0x01b9)
+KEY("scedilla", 0x01ba)
+KEY("tcaron", 0x01bb)
+KEY("zacute", 0x01bc)
+KEY("doubleacute", 0x01bd)
+KEY("zcaron", 0x01be)
+KEY("zabovedot", 0x01bf)
+KEY("Racute", 0x01c0)
+KEY("Abreve", 0x01c3)
+KEY("Lacute", 0x01c5)
+KEY("Cacute", 0x01c6)
+KEY("Ccaron", 0x01c8)
+KEY("Eogonek", 0x01ca)
+KEY("Ecaron", 0x01cc)
+KEY("Dcaron", 0x01cf)
+KEY("Dstroke", 0x01d0)
+KEY("Nacute", 0x01d1)
+KEY("Ncaron", 0x01d2)
+KEY("Odoubleacute", 0x01d5)
+KEY("Rcaron", 0x01d8)
+KEY("Uring", 0x01d9)
+KEY("Udoubleacute", 0x01db)
+KEY("Tcedilla", 0x01de)
+KEY("racute", 0x01e0)
+KEY("abreve", 0x01e3)
+KEY("lacute", 0x01e5)
+KEY("cacute", 0x01e6)
+KEY("ccaron", 0x01e8)
+KEY("eogonek", 0x01ea)
+KEY("ecaron", 0x01ec)
+KEY("dcaron", 0x01ef)
+KEY("dstroke", 0x01f0)
+KEY("nacute", 0x01f1)
+KEY("ncaron", 0x01f2)
+KEY("odoubleacute", 0x01f5)
+KEY("udoubleacute", 0x01fb)
+KEY("rcaron", 0x01f8)
+KEY("uring", 0x01f9)
+KEY("tcedilla", 0x01fe)
+KEY("abovedot", 0x01ff)
+KEY("Hstroke", 0x02a1)
+KEY("Hcircumflex", 0x02a6)
+KEY("Iabovedot", 0x02a9)
+KEY("Gbreve", 0x02ab)
+KEY("Jcircumflex", 0x02ac)
+KEY("hstroke", 0x02b1)
+KEY("hcircumflex", 0x02b6)
+KEY("idotless", 0x02b9)
+KEY("gbreve", 0x02bb)
+KEY("jcircumflex", 0x02bc)
+KEY("Cabovedot", 0x02c5)
+KEY("Ccircumflex", 0x02c6)
+KEY("Gabovedot", 0x02d5)
+KEY("Gcircumflex", 0x02d8)
+KEY("Ubreve", 0x02dd)
+KEY("Scircumflex", 0x02de)
+KEY("cabovedot", 0x02e5)
+KEY("ccircumflex", 0x02e6)
+KEY("gabovedot", 0x02f5)
+KEY("gcircumflex", 0x02f8)
+KEY("ubreve", 0x02fd)
+KEY("scircumflex", 0x02fe)
+KEY("kra", 0x03a2)
+KEY("kappa", 0x03a2)
+KEY("Rcedilla", 0x03a3)
+KEY("Itilde", 0x03a5)
+KEY("Lcedilla", 0x03a6)
+KEY("Emacron", 0x03aa)
+KEY("Gcedilla", 0x03ab)
+KEY("Tslash", 0x03ac)
+KEY("rcedilla", 0x03b3)
+KEY("itilde", 0x03b5)
+KEY("lcedilla", 0x03b6)
+KEY("emacron", 0x03ba)
+KEY("gcedilla", 0x03bb)
+KEY("tslash", 0x03bc)
+KEY("ENG", 0x03bd)
+KEY("eng", 0x03bf)
+KEY("Amacron", 0x03c0)
+KEY("Iogonek", 0x03c7)
+KEY("Eabovedot", 0x03cc)
+KEY("Imacron", 0x03cf)
+KEY("Ncedilla", 0x03d1)
+KEY("Omacron", 0x03d2)
+KEY("Kcedilla", 0x03d3)
+KEY("Uogonek", 0x03d9)
+KEY("Utilde", 0x03dd)
+KEY("Umacron", 0x03de)
+KEY("amacron", 0x03e0)
+KEY("iogonek", 0x03e7)
+KEY("eabovedot", 0x03ec)
+KEY("imacron", 0x03ef)
+KEY("ncedilla", 0x03f1)
+KEY("omacron", 0x03f2)
+KEY("kcedilla", 0x03f3)
+KEY("uogonek", 0x03f9)
+KEY("utilde", 0x03fd)
+KEY("umacron", 0x03fe)
+KEY("Babovedot", 0x1001e02)
+KEY("babovedot", 0x1001e03)
+KEY("Dabovedot", 0x1001e0a)
+KEY("Wgrave", 0x1001e80)
+KEY("Wacute", 0x1001e82)
+KEY("dabovedot", 0x1001e0b)
+KEY("Ygrave", 0x1001ef2)
+KEY("Fabovedot", 0x1001e1e)
+KEY("fabovedot", 0x1001e1f)
+KEY("Mabovedot", 0x1001e40)
+KEY("mabovedot", 0x1001e41)
+KEY("Pabovedot", 0x1001e56)
+KEY("wgrave", 0x1001e81)
+KEY("pabovedot", 0x1001e57)
+KEY("wacute", 0x1001e83)
+KEY("Sabovedot", 0x1001e60)
+KEY("ygrave", 0x1001ef3)
+KEY("Wdiaeresis", 0x1001e84)
+KEY("wdiaeresis", 0x1001e85)
+KEY("sabovedot", 0x1001e61)
+KEY("Wcircumflex", 0x1000174)
+KEY("Tabovedot", 0x1001e6a)
+KEY("Ycircumflex", 0x1000176)
+KEY("wcircumflex", 0x1000175)
+KEY("tabovedot", 0x1001e6b)
+KEY("ycircumflex", 0x1000177)
+KEY("OE", 0x13bc)
+KEY("oe", 0x13bd)
+KEY("Ydiaeresis", 0x13be)
+KEY("overline", 0x047e)
+KEY("kana_fullstop", 0x04a1)
+KEY("kana_openingbracket", 0x04a2)
+KEY("kana_closingbracket", 0x04a3)
+KEY("kana_comma", 0x04a4)
+KEY("kana_conjunctive", 0x04a5)
+KEY("kana_middledot", 0x04a5)
+KEY("kana_WO", 0x04a6)
+KEY("kana_a", 0x04a7)
+KEY("kana_i", 0x04a8)
+KEY("kana_u", 0x04a9)
+KEY("kana_e", 0x04aa)
+KEY("kana_o", 0x04ab)
+KEY("kana_ya", 0x04ac)
+KEY("kana_yu", 0x04ad)
+KEY("kana_yo", 0x04ae)
+KEY("kana_tsu", 0x04af)
+KEY("kana_tu", 0x04af)
+KEY("prolongedsound", 0x04b0)
+KEY("kana_A", 0x04b1)
+KEY("kana_I", 0x04b2)
+KEY("kana_U", 0x04b3)
+KEY("kana_E", 0x04b4)
+KEY("kana_O", 0x04b5)
+KEY("kana_KA", 0x04b6)
+KEY("kana_KI", 0x04b7)
+KEY("kana_KU", 0x04b8)
+KEY("kana_KE", 0x04b9)
+KEY("kana_KO", 0x04ba)
+KEY("kana_SA", 0x04bb)
+KEY("kana_SHI", 0x04bc)
+KEY("kana_SU", 0x04bd)
+KEY("kana_SE", 0x04be)
+KEY("kana_SO", 0x04bf)
+KEY("kana_TA", 0x04c0)
+KEY("kana_CHI", 0x04c1)
+KEY("kana_TI", 0x04c1)
+KEY("kana_TSU", 0x04c2)
+KEY("kana_TU", 0x04c2)
+KEY("kana_TE", 0x04c3)
+KEY("kana_TO", 0x04c4)
+KEY("kana_NA", 0x04c5)
+KEY("kana_NI", 0x04c6)
+KEY("kana_NU", 0x04c7)
+KEY("kana_NE", 0x04c8)
+KEY("kana_NO", 0x04c9)
+KEY("kana_HA", 0x04ca)
+KEY("kana_HI", 0x04cb)
+KEY("kana_FU", 0x04cc)
+KEY("kana_HU", 0x04cc)
+KEY("kana_HE", 0x04cd)
+KEY("kana_HO", 0x04ce)
+KEY("kana_MA", 0x04cf)
+KEY("kana_MI", 0x04d0)
+KEY("kana_MU", 0x04d1)
+KEY("kana_ME", 0x04d2)
+KEY("kana_MO", 0x04d3)
+KEY("kana_YA", 0x04d4)
+KEY("kana_YU", 0x04d5)
+KEY("kana_YO", 0x04d6)
+KEY("kana_RA", 0x04d7)
+KEY("kana_RI", 0x04d8)
+KEY("kana_RU", 0x04d9)
+KEY("kana_RE", 0x04da)
+KEY("kana_RO", 0x04db)
+KEY("kana_WA", 0x04dc)
+KEY("kana_N", 0x04dd)
+KEY("voicedsound", 0x04de)
+KEY("semivoicedsound", 0x04df)
+KEY("kana_switch", 0xff7e)
+KEY("Farsi_0", 0x10006f0)
+KEY("Farsi_1", 0x10006f1)
+KEY("Farsi_2", 0x10006f2)
+KEY("Farsi_3", 0x10006f3)
+KEY("Farsi_4", 0x10006f4)
+KEY("Farsi_5", 0x10006f5)
+KEY("Farsi_6", 0x10006f6)
+KEY("Farsi_7", 0x10006f7)
+KEY("Farsi_8", 0x10006f8)
+KEY("Farsi_9", 0x10006f9)
+KEY("Arabic_percent", 0x100066a)
+KEY("Arabic_superscript_alef", 0x1000670)
+KEY("Arabic_tteh", 0x1000679)
+KEY("Arabic_peh", 0x100067e)
+KEY("Arabic_tcheh", 0x1000686)
+KEY("Arabic_ddal", 0x1000688)
+KEY("Arabic_rreh", 0x1000691)
+KEY("Arabic_comma", 0x05ac)
+KEY("Arabic_fullstop", 0x10006d4)
+KEY("Arabic_0", 0x1000660)
+KEY("Arabic_1", 0x1000661)
+KEY("Arabic_2", 0x1000662)
+KEY("Arabic_3", 0x1000663)
+KEY("Arabic_4", 0x1000664)
+KEY("Arabic_5", 0x1000665)
+KEY("Arabic_6", 0x1000666)
+KEY("Arabic_7", 0x1000667)
+KEY("Arabic_8", 0x1000668)
+KEY("Arabic_9", 0x1000669)
+KEY("Arabic_semicolon", 0x05bb)
+KEY("Arabic_question_mark", 0x05bf)
+KEY("Arabic_hamza", 0x05c1)
+KEY("Arabic_maddaonalef", 0x05c2)
+KEY("Arabic_hamzaonalef", 0x05c3)
+KEY("Arabic_hamzaonwaw", 0x05c4)
+KEY("Arabic_hamzaunderalef", 0x05c5)
+KEY("Arabic_hamzaonyeh", 0x05c6)
+KEY("Arabic_alef", 0x05c7)
+KEY("Arabic_beh", 0x05c8)
+KEY("Arabic_tehmarbuta", 0x05c9)
+KEY("Arabic_teh", 0x05ca)
+KEY("Arabic_theh", 0x05cb)
+KEY("Arabic_jeem", 0x05cc)
+KEY("Arabic_hah", 0x05cd)
+KEY("Arabic_khah", 0x05ce)
+KEY("Arabic_dal", 0x05cf)
+KEY("Arabic_thal", 0x05d0)
+KEY("Arabic_ra", 0x05d1)
+KEY("Arabic_zain", 0x05d2)
+KEY("Arabic_seen", 0x05d3)
+KEY("Arabic_sheen", 0x05d4)
+KEY("Arabic_sad", 0x05d5)
+KEY("Arabic_dad", 0x05d6)
+KEY("Arabic_tah", 0x05d7)
+KEY("Arabic_zah", 0x05d8)
+KEY("Arabic_ain", 0x05d9)
+KEY("Arabic_ghain", 0x05da)
+KEY("Arabic_tatweel", 0x05e0)
+KEY("Arabic_feh", 0x05e1)
+KEY("Arabic_qaf", 0x05e2)
+KEY("Arabic_kaf", 0x05e3)
+KEY("Arabic_lam", 0x05e4)
+KEY("Arabic_meem", 0x05e5)
+KEY("Arabic_noon", 0x05e6)
+KEY("Arabic_ha", 0x05e7)
+KEY("Arabic_heh", 0x05e7)
+KEY("Arabic_waw", 0x05e8)
+KEY("Arabic_alefmaksura", 0x05e9)
+KEY("Arabic_yeh", 0x05ea)
+KEY("Arabic_fathatan", 0x05eb)
+KEY("Arabic_dammatan", 0x05ec)
+KEY("Arabic_kasratan", 0x05ed)
+KEY("Arabic_fatha", 0x05ee)
+KEY("Arabic_damma", 0x05ef)
+KEY("Arabic_kasra", 0x05f0)
+KEY("Arabic_shadda", 0x05f1)
+KEY("Arabic_sukun", 0x05f2)
+KEY("Arabic_madda_above", 0x1000653)
+KEY("Arabic_hamza_above", 0x1000654)
+KEY("Arabic_hamza_below", 0x1000655)
+KEY("Arabic_jeh", 0x1000698)
+KEY("Arabic_veh", 0x10006a4)
+KEY("Arabic_keheh", 0x10006a9)
+KEY("Arabic_gaf", 0x10006af)
+KEY("Arabic_noon_ghunna", 0x10006ba)
+KEY("Arabic_heh_doachashmee", 0x10006be)
+KEY("Farsi_yeh", 0x10006cc)
+KEY("Arabic_farsi_yeh", 0x10006cc)
+KEY("Arabic_yeh_baree", 0x10006d2)
+KEY("Arabic_heh_goal", 0x10006c1)
+KEY("Arabic_switch", 0xff7e)
+KEY("Cyrillic_GHE_bar", 0x1000492)
+KEY("Cyrillic_ghe_bar", 0x1000493)
+KEY("Cyrillic_ZHE_descender", 0x1000496)
+KEY("Cyrillic_zhe_descender", 0x1000497)
+KEY("Cyrillic_KA_descender", 0x100049a)
+KEY("Cyrillic_ka_descender", 0x100049b)
+KEY("Cyrillic_KA_vertstroke", 0x100049c)
+KEY("Cyrillic_ka_vertstroke", 0x100049d)
+KEY("Cyrillic_EN_descender", 0x10004a2)
+KEY("Cyrillic_en_descender", 0x10004a3)
+KEY("Cyrillic_U_straight", 0x10004ae)
+KEY("Cyrillic_u_straight", 0x10004af)
+KEY("Cyrillic_U_straight_bar", 0x10004b0)
+KEY("Cyrillic_u_straight_bar", 0x10004b1)
+KEY("Cyrillic_HA_descender", 0x10004b2)
+KEY("Cyrillic_ha_descender", 0x10004b3)
+KEY("Cyrillic_CHE_descender", 0x10004b6)
+KEY("Cyrillic_che_descender", 0x10004b7)
+KEY("Cyrillic_CHE_vertstroke", 0x10004b8)
+KEY("Cyrillic_che_vertstroke", 0x10004b9)
+KEY("Cyrillic_SHHA", 0x10004ba)
+KEY("Cyrillic_shha", 0x10004bb)
+KEY("Cyrillic_SCHWA", 0x10004d8)
+KEY("Cyrillic_schwa", 0x10004d9)
+KEY("Cyrillic_I_macron", 0x10004e2)
+KEY("Cyrillic_i_macron", 0x10004e3)
+KEY("Cyrillic_O_bar", 0x10004e8)
+KEY("Cyrillic_o_bar", 0x10004e9)
+KEY("Cyrillic_U_macron", 0x10004ee)
+KEY("Cyrillic_u_macron", 0x10004ef)
+KEY("Serbian_dje", 0x06a1)
+KEY("Macedonia_gje", 0x06a2)
+KEY("Cyrillic_io", 0x06a3)
+KEY("Ukrainian_ie", 0x06a4)
+KEY("Ukranian_je", 0x06a4)
+KEY("Macedonia_dse", 0x06a5)
+KEY("Ukrainian_i", 0x06a6)
+KEY("Ukranian_i", 0x06a6)
+KEY("Ukrainian_yi", 0x06a7)
+KEY("Ukranian_yi", 0x06a7)
+KEY("Cyrillic_je", 0x06a8)
+KEY("Serbian_je", 0x06a8)
+KEY("Cyrillic_lje", 0x06a9)
+KEY("Serbian_lje", 0x06a9)
+KEY("Cyrillic_nje", 0x06aa)
+KEY("Serbian_nje", 0x06aa)
+KEY("Serbian_tshe", 0x06ab)
+KEY("Macedonia_kje", 0x06ac)
+KEY("Ukrainian_ghe_with_upturn", 0x06ad)
+KEY("Byelorussian_shortu", 0x06ae)
+KEY("Cyrillic_dzhe", 0x06af)
+KEY("Serbian_dze", 0x06af)
+KEY("numerosign", 0x06b0)
+KEY("Serbian_DJE", 0x06b1)
+KEY("Macedonia_GJE", 0x06b2)
+KEY("Cyrillic_IO", 0x06b3)
+KEY("Ukrainian_IE", 0x06b4)
+KEY("Ukranian_JE", 0x06b4)
+KEY("Macedonia_DSE", 0x06b5)
+KEY("Ukrainian_I", 0x06b6)
+KEY("Ukranian_I", 0x06b6)
+KEY("Ukrainian_YI", 0x06b7)
+KEY("Ukranian_YI", 0x06b7)
+KEY("Cyrillic_JE", 0x06b8)
+KEY("Serbian_JE", 0x06b8)
+KEY("Cyrillic_LJE", 0x06b9)
+KEY("Serbian_LJE", 0x06b9)
+KEY("Cyrillic_NJE", 0x06ba)
+KEY("Serbian_NJE", 0x06ba)
+KEY("Serbian_TSHE", 0x06bb)
+KEY("Macedonia_KJE", 0x06bc)
+KEY("Ukrainian_GHE_WITH_UPTURN", 0x06bd)
+KEY("Byelorussian_SHORTU", 0x06be)
+KEY("Cyrillic_DZHE", 0x06bf)
+KEY("Serbian_DZE", 0x06bf)
+KEY("Cyrillic_yu", 0x06c0)
+KEY("Cyrillic_a", 0x06c1)
+KEY("Cyrillic_be", 0x06c2)
+KEY("Cyrillic_tse", 0x06c3)
+KEY("Cyrillic_de", 0x06c4)
+KEY("Cyrillic_ie", 0x06c5)
+KEY("Cyrillic_ef", 0x06c6)
+KEY("Cyrillic_ghe", 0x06c7)
+KEY("Cyrillic_ha", 0x06c8)
+KEY("Cyrillic_i", 0x06c9)
+KEY("Cyrillic_shorti", 0x06ca)
+KEY("Cyrillic_ka", 0x06cb)
+KEY("Cyrillic_el", 0x06cc)
+KEY("Cyrillic_em", 0x06cd)
+KEY("Cyrillic_en", 0x06ce)
+KEY("Cyrillic_o", 0x06cf)
+KEY("Cyrillic_pe", 0x06d0)
+KEY("Cyrillic_ya", 0x06d1)
+KEY("Cyrillic_er", 0x06d2)
+KEY("Cyrillic_es", 0x06d3)
+KEY("Cyrillic_te", 0x06d4)
+KEY("Cyrillic_u", 0x06d5)
+KEY("Cyrillic_zhe", 0x06d6)
+KEY("Cyrillic_ve", 0x06d7)
+KEY("Cyrillic_softsign", 0x06d8)
+KEY("Cyrillic_yeru", 0x06d9)
+KEY("Cyrillic_ze", 0x06da)
+KEY("Cyrillic_sha", 0x06db)
+KEY("Cyrillic_e", 0x06dc)
+KEY("Cyrillic_shcha", 0x06dd)
+KEY("Cyrillic_che", 0x06de)
+KEY("Cyrillic_hardsign", 0x06df)
+KEY("Cyrillic_YU", 0x06e0)
+KEY("Cyrillic_A", 0x06e1)
+KEY("Cyrillic_BE", 0x06e2)
+KEY("Cyrillic_TSE", 0x06e3)
+KEY("Cyrillic_DE", 0x06e4)
+KEY("Cyrillic_IE", 0x06e5)
+KEY("Cyrillic_EF", 0x06e6)
+KEY("Cyrillic_GHE", 0x06e7)
+KEY("Cyrillic_HA", 0x06e8)
+KEY("Cyrillic_I", 0x06e9)
+KEY("Cyrillic_SHORTI", 0x06ea)
+KEY("Cyrillic_KA", 0x06eb)
+KEY("Cyrillic_EL", 0x06ec)
+KEY("Cyrillic_EM", 0x06ed)
+KEY("Cyrillic_EN", 0x06ee)
+KEY("Cyrillic_O", 0x06ef)
+KEY("Cyrillic_PE", 0x06f0)
+KEY("Cyrillic_YA", 0x06f1)
+KEY("Cyrillic_ER", 0x06f2)
+KEY("Cyrillic_ES", 0x06f3)
+KEY("Cyrillic_TE", 0x06f4)
+KEY("Cyrillic_U", 0x06f5)
+KEY("Cyrillic_ZHE", 0x06f6)
+KEY("Cyrillic_VE", 0x06f7)
+KEY("Cyrillic_SOFTSIGN", 0x06f8)
+KEY("Cyrillic_YERU", 0x06f9)
+KEY("Cyrillic_ZE", 0x06fa)
+KEY("Cyrillic_SHA", 0x06fb)
+KEY("Cyrillic_E", 0x06fc)
+KEY("Cyrillic_SHCHA", 0x06fd)
+KEY("Cyrillic_CHE", 0x06fe)
+KEY("Cyrillic_HARDSIGN", 0x06ff)
+KEY("Greek_ALPHAaccent", 0x07a1)
+KEY("Greek_EPSILONaccent", 0x07a2)
+KEY("Greek_ETAaccent", 0x07a3)
+KEY("Greek_IOTAaccent", 0x07a4)
+KEY("Greek_IOTAdieresis", 0x07a5)
+KEY("Greek_IOTAdiaeresis", 0x07a5)
+KEY("Greek_OMICRONaccent", 0x07a7)
+KEY("Greek_UPSILONaccent", 0x07a8)
+KEY("Greek_UPSILONdieresis", 0x07a9)
+KEY("Greek_OMEGAaccent", 0x07ab)
+KEY("Greek_accentdieresis", 0x07ae)
+KEY("Greek_horizbar", 0x07af)
+KEY("Greek_alphaaccent", 0x07b1)
+KEY("Greek_epsilonaccent", 0x07b2)
+KEY("Greek_etaaccent", 0x07b3)
+KEY("Greek_iotaaccent", 0x07b4)
+KEY("Greek_iotadieresis", 0x07b5)
+KEY("Greek_iotaaccentdieresis", 0x07b6)
+KEY("Greek_omicronaccent", 0x07b7)
+KEY("Greek_upsilonaccent", 0x07b8)
+KEY("Greek_upsilondieresis", 0x07b9)
+KEY("Greek_upsilonaccentdieresis", 0x07ba)
+KEY("Greek_omegaaccent", 0x07bb)
+KEY("Greek_ALPHA", 0x07c1)
+KEY("Greek_BETA", 0x07c2)
+KEY("Greek_GAMMA", 0x07c3)
+KEY("Greek_DELTA", 0x07c4)
+KEY("Greek_EPSILON", 0x07c5)
+KEY("Greek_ZETA", 0x07c6)
+KEY("Greek_ETA", 0x07c7)
+KEY("Greek_THETA", 0x07c8)
+KEY("Greek_IOTA", 0x07c9)
+KEY("Greek_KAPPA", 0x07ca)
+KEY("Greek_LAMDA", 0x07cb)
+KEY("Greek_LAMBDA", 0x07cb)
+KEY("Greek_MU", 0x07cc)
+KEY("Greek_NU", 0x07cd)
+KEY("Greek_XI", 0x07ce)
+KEY("Greek_OMICRON", 0x07cf)
+KEY("Greek_PI", 0x07d0)
+KEY("Greek_RHO", 0x07d1)
+KEY("Greek_SIGMA", 0x07d2)
+KEY("Greek_TAU", 0x07d4)
+KEY("Greek_UPSILON", 0x07d5)
+KEY("Greek_PHI", 0x07d6)
+KEY("Greek_CHI", 0x07d7)
+KEY("Greek_PSI", 0x07d8)
+KEY("Greek_OMEGA", 0x07d9)
+KEY("Greek_alpha", 0x07e1)
+KEY("Greek_beta", 0x07e2)
+KEY("Greek_gamma", 0x07e3)
+KEY("Greek_delta", 0x07e4)
+KEY("Greek_epsilon", 0x07e5)
+KEY("Greek_zeta", 0x07e6)
+KEY("Greek_eta", 0x07e7)
+KEY("Greek_theta", 0x07e8)
+KEY("Greek_iota", 0x07e9)
+KEY("Greek_kappa", 0x07ea)
+KEY("Greek_lamda", 0x07eb)
+KEY("Greek_lambda", 0x07eb)
+KEY("Greek_mu", 0x07ec)
+KEY("Greek_nu", 0x07ed)
+KEY("Greek_xi", 0x07ee)
+KEY("Greek_omicron", 0x07ef)
+KEY("Greek_pi", 0x07f0)
+KEY("Greek_rho", 0x07f1)
+KEY("Greek_sigma", 0x07f2)
+KEY("Greek_finalsmallsigma", 0x07f3)
+KEY("Greek_tau", 0x07f4)
+KEY("Greek_upsilon", 0x07f5)
+KEY("Greek_phi", 0x07f6)
+KEY("Greek_chi", 0x07f7)
+KEY("Greek_psi", 0x07f8)
+KEY("Greek_omega", 0x07f9)
+KEY("Greek_switch", 0xff7e)
+KEY("leftradical", 0x08a1)
+KEY("topleftradical", 0x08a2)
+KEY("horizconnector", 0x08a3)
+KEY("topintegral", 0x08a4)
+KEY("botintegral", 0x08a5)
+KEY("vertconnector", 0x08a6)
+KEY("topleftsqbracket", 0x08a7)
+KEY("botleftsqbracket", 0x08a8)
+KEY("toprightsqbracket", 0x08a9)
+KEY("botrightsqbracket", 0x08aa)
+KEY("topleftparens", 0x08ab)
+KEY("botleftparens", 0x08ac)
+KEY("toprightparens", 0x08ad)
+KEY("botrightparens", 0x08ae)
+KEY("leftmiddlecurlybrace", 0x08af)
+KEY("rightmiddlecurlybrace", 0x08b0)
+KEY("topleftsummation", 0x08b1)
+KEY("botleftsummation", 0x08b2)
+KEY("topvertsummationconnector", 0x08b3)
+KEY("botvertsummationconnector", 0x08b4)
+KEY("toprightsummation", 0x08b5)
+KEY("botrightsummation", 0x08b6)
+KEY("rightmiddlesummation", 0x08b7)
+KEY("lessthanequal", 0x08bc)
+KEY("notequal", 0x08bd)
+KEY("greaterthanequal", 0x08be)
+KEY("integral", 0x08bf)
+KEY("therefore", 0x08c0)
+KEY("variation", 0x08c1)
+KEY("infinity", 0x08c2)
+KEY("nabla", 0x08c5)
+KEY("approximate", 0x08c8)
+KEY("similarequal", 0x08c9)
+KEY("ifonlyif", 0x08cd)
+KEY("implies", 0x08ce)
+KEY("identical", 0x08cf)
+KEY("radical", 0x08d6)
+KEY("includedin", 0x08da)
+KEY("includes", 0x08db)
+KEY("intersection", 0x08dc)
+KEY("union", 0x08dd)
+KEY("logicaland", 0x08de)
+KEY("logicalor", 0x08df)
+KEY("partialderivative", 0x08ef)
+KEY("function", 0x08f6)
+KEY("leftarrow", 0x08fb)
+KEY("uparrow", 0x08fc)
+KEY("rightarrow", 0x08fd)
+KEY("downarrow", 0x08fe)
+KEY("blank", 0x09df)
+KEY("soliddiamond", 0x09e0)
+KEY("checkerboard", 0x09e1)
+KEY("ht", 0x09e2)
+KEY("ff", 0x09e3)
+KEY("cr", 0x09e4)
+KEY("lf", 0x09e5)
+KEY("nl", 0x09e8)
+KEY("vt", 0x09e9)
+KEY("lowrightcorner", 0x09ea)
+KEY("uprightcorner", 0x09eb)
+KEY("upleftcorner", 0x09ec)
+KEY("lowleftcorner", 0x09ed)
+KEY("crossinglines", 0x09ee)
+KEY("horizlinescan1", 0x09ef)
+KEY("horizlinescan3", 0x09f0)
+KEY("horizlinescan5", 0x09f1)
+KEY("horizlinescan7", 0x09f2)
+KEY("horizlinescan9", 0x09f3)
+KEY("leftt", 0x09f4)
+KEY("rightt", 0x09f5)
+KEY("bott", 0x09f6)
+KEY("topt", 0x09f7)
+KEY("vertbar", 0x09f8)
+KEY("emspace", 0x0aa1)
+KEY("enspace", 0x0aa2)
+KEY("em3space", 0x0aa3)
+KEY("em4space", 0x0aa4)
+KEY("digitspace", 0x0aa5)
+KEY("punctspace", 0x0aa6)
+KEY("thinspace", 0x0aa7)
+KEY("hairspace", 0x0aa8)
+KEY("emdash", 0x0aa9)
+KEY("endash", 0x0aaa)
+KEY("signifblank", 0x0aac)
+KEY("ellipsis", 0x0aae)
+KEY("doubbaselinedot", 0x0aaf)
+KEY("onethird", 0x0ab0)
+KEY("twothirds", 0x0ab1)
+KEY("onefifth", 0x0ab2)
+KEY("twofifths", 0x0ab3)
+KEY("threefifths", 0x0ab4)
+KEY("fourfifths", 0x0ab5)
+KEY("onesixth", 0x0ab6)
+KEY("fivesixths", 0x0ab7)
+KEY("careof", 0x0ab8)
+KEY("figdash", 0x0abb)
+KEY("leftanglebracket", 0x0abc)
+KEY("decimalpoint", 0x0abd)
+KEY("rightanglebracket", 0x0abe)
+KEY("marker", 0x0abf)
+KEY("oneeighth", 0x0ac3)
+KEY("threeeighths", 0x0ac4)
+KEY("fiveeighths", 0x0ac5)
+KEY("seveneighths", 0x0ac6)
+KEY("trademark", 0x0ac9)
+KEY("signaturemark", 0x0aca)
+KEY("trademarkincircle", 0x0acb)
+KEY("leftopentriangle", 0x0acc)
+KEY("rightopentriangle", 0x0acd)
+KEY("emopencircle", 0x0ace)
+KEY("emopenrectangle", 0x0acf)
+KEY("leftsinglequotemark", 0x0ad0)
+KEY("rightsinglequotemark", 0x0ad1)
+KEY("leftdoublequotemark", 0x0ad2)
+KEY("rightdoublequotemark", 0x0ad3)
+KEY("prescription", 0x0ad4)
+KEY("minutes", 0x0ad6)
+KEY("seconds", 0x0ad7)
+KEY("latincross", 0x0ad9)
+KEY("hexagram", 0x0ada)
+KEY("filledrectbullet", 0x0adb)
+KEY("filledlefttribullet", 0x0adc)
+KEY("filledrighttribullet", 0x0add)
+KEY("emfilledcircle", 0x0ade)
+KEY("emfilledrect", 0x0adf)
+KEY("enopencircbullet", 0x0ae0)
+KEY("enopensquarebullet", 0x0ae1)
+KEY("openrectbullet", 0x0ae2)
+KEY("opentribulletup", 0x0ae3)
+KEY("opentribulletdown", 0x0ae4)
+KEY("openstar", 0x0ae5)
+KEY("enfilledcircbullet", 0x0ae6)
+KEY("enfilledsqbullet", 0x0ae7)
+KEY("filledtribulletup", 0x0ae8)
+KEY("filledtribulletdown", 0x0ae9)
+KEY("leftpointer", 0x0aea)
+KEY("rightpointer", 0x0aeb)
+KEY("club", 0x0aec)
+KEY("diamond", 0x0aed)
+KEY("heart", 0x0aee)
+KEY("maltesecross", 0x0af0)
+KEY("dagger", 0x0af1)
+KEY("doubledagger", 0x0af2)
+KEY("checkmark", 0x0af3)
+KEY("ballotcross", 0x0af4)
+KEY("musicalsharp", 0x0af5)
+KEY("musicalflat", 0x0af6)
+KEY("malesymbol", 0x0af7)
+KEY("femalesymbol", 0x0af8)
+KEY("telephone", 0x0af9)
+KEY("telephonerecorder", 0x0afa)
+KEY("phonographcopyright", 0x0afb)
+KEY("caret", 0x0afc)
+KEY("singlelowquotemark", 0x0afd)
+KEY("doublelowquotemark", 0x0afe)
+KEY("cursor", 0x0aff)
+KEY("leftcaret", 0x0ba3)
+KEY("rightcaret", 0x0ba6)
+KEY("downcaret", 0x0ba8)
+KEY("upcaret", 0x0ba9)
+KEY("overbar", 0x0bc0)
+KEY("downtack", 0x0bc2)
+KEY("upshoe", 0x0bc3)
+KEY("downstile", 0x0bc4)
+KEY("underbar", 0x0bc6)
+KEY("jot", 0x0bca)
+KEY("quad", 0x0bcc)
+KEY("uptack", 0x0bce)
+KEY("circle", 0x0bcf)
+KEY("upstile", 0x0bd3)
+KEY("downshoe", 0x0bd6)
+KEY("rightshoe", 0x0bd8)
+KEY("leftshoe", 0x0bda)
+KEY("lefttack", 0x0bdc)
+KEY("righttack", 0x0bfc)
+KEY("hebrew_doublelowline", 0x0cdf)
+KEY("hebrew_aleph", 0x0ce0)
+KEY("hebrew_bet", 0x0ce1)
+KEY("hebrew_beth", 0x0ce1)
+KEY("hebrew_gimel", 0x0ce2)
+KEY("hebrew_gimmel", 0x0ce2)
+KEY("hebrew_dalet", 0x0ce3)
+KEY("hebrew_daleth", 0x0ce3)
+KEY("hebrew_he", 0x0ce4)
+KEY("hebrew_waw", 0x0ce5)
+KEY("hebrew_zain", 0x0ce6)
+KEY("hebrew_zayin", 0x0ce6)
+KEY("hebrew_chet", 0x0ce7)
+KEY("hebrew_het", 0x0ce7)
+KEY("hebrew_tet", 0x0ce8)
+KEY("hebrew_teth", 0x0ce8)
+KEY("hebrew_yod", 0x0ce9)
+KEY("hebrew_finalkaph", 0x0cea)
+KEY("hebrew_kaph", 0x0ceb)
+KEY("hebrew_lamed", 0x0cec)
+KEY("hebrew_finalmem", 0x0ced)
+KEY("hebrew_mem", 0x0cee)
+KEY("hebrew_finalnun", 0x0cef)
+KEY("hebrew_nun", 0x0cf0)
+KEY("hebrew_samech", 0x0cf1)
+KEY("hebrew_samekh", 0x0cf1)
+KEY("hebrew_ayin", 0x0cf2)
+KEY("hebrew_finalpe", 0x0cf3)
+KEY("hebrew_pe", 0x0cf4)
+KEY("hebrew_finalzade", 0x0cf5)
+KEY("hebrew_finalzadi", 0x0cf5)
+KEY("hebrew_zade", 0x0cf6)
+KEY("hebrew_zadi", 0x0cf6)
+KEY("hebrew_qoph", 0x0cf7)
+KEY("hebrew_kuf", 0x0cf7)
+KEY("hebrew_resh", 0x0cf8)
+KEY("hebrew_shin", 0x0cf9)
+KEY("hebrew_taw", 0x0cfa)
+KEY("hebrew_taf", 0x0cfa)
+KEY("Hebrew_switch", 0xff7e)
+KEY("Thai_kokai", 0x0da1)
+KEY("Thai_khokhai", 0x0da2)
+KEY("Thai_khokhuat", 0x0da3)
+KEY("Thai_khokhwai", 0x0da4)
+KEY("Thai_khokhon", 0x0da5)
+KEY("Thai_khorakhang", 0x0da6)
+KEY("Thai_ngongu", 0x0da7)
+KEY("Thai_chochan", 0x0da8)
+KEY("Thai_choching", 0x0da9)
+KEY("Thai_chochang", 0x0daa)
+KEY("Thai_soso", 0x0dab)
+KEY("Thai_chochoe", 0x0dac)
+KEY("Thai_yoying", 0x0dad)
+KEY("Thai_dochada", 0x0dae)
+KEY("Thai_topatak", 0x0daf)
+KEY("Thai_thothan", 0x0db0)
+KEY("Thai_thonangmontho", 0x0db1)
+KEY("Thai_thophuthao", 0x0db2)
+KEY("Thai_nonen", 0x0db3)
+KEY("Thai_dodek", 0x0db4)
+KEY("Thai_totao", 0x0db5)
+KEY("Thai_thothung", 0x0db6)
+KEY("Thai_thothahan", 0x0db7)
+KEY("Thai_thothong", 0x0db8)
+KEY("Thai_nonu", 0x0db9)
+KEY("Thai_bobaimai", 0x0dba)
+KEY("Thai_popla", 0x0dbb)
+KEY("Thai_phophung", 0x0dbc)
+KEY("Thai_fofa", 0x0dbd)
+KEY("Thai_phophan", 0x0dbe)
+KEY("Thai_fofan", 0x0dbf)
+KEY("Thai_phosamphao", 0x0dc0)
+KEY("Thai_moma", 0x0dc1)
+KEY("Thai_yoyak", 0x0dc2)
+KEY("Thai_rorua", 0x0dc3)
+KEY("Thai_ru", 0x0dc4)
+KEY("Thai_loling", 0x0dc5)
+KEY("Thai_lu", 0x0dc6)
+KEY("Thai_wowaen", 0x0dc7)
+KEY("Thai_sosala", 0x0dc8)
+KEY("Thai_sorusi", 0x0dc9)
+KEY("Thai_sosua", 0x0dca)
+KEY("Thai_hohip", 0x0dcb)
+KEY("Thai_lochula", 0x0dcc)
+KEY("Thai_oang", 0x0dcd)
+KEY("Thai_honokhuk", 0x0dce)
+KEY("Thai_paiyannoi", 0x0dcf)
+KEY("Thai_saraa", 0x0dd0)
+KEY("Thai_maihanakat", 0x0dd1)
+KEY("Thai_saraaa", 0x0dd2)
+KEY("Thai_saraam", 0x0dd3)
+KEY("Thai_sarai", 0x0dd4)
+KEY("Thai_saraii", 0x0dd5)
+KEY("Thai_saraue", 0x0dd6)
+KEY("Thai_sarauee", 0x0dd7)
+KEY("Thai_sarau", 0x0dd8)
+KEY("Thai_sarauu", 0x0dd9)
+KEY("Thai_phinthu", 0x0dda)
+KEY("Thai_maihanakat_maitho", 0x0dde)
+KEY("Thai_baht", 0x0ddf)
+KEY("Thai_sarae", 0x0de0)
+KEY("Thai_saraae", 0x0de1)
+KEY("Thai_sarao", 0x0de2)
+KEY("Thai_saraaimaimuan", 0x0de3)
+KEY("Thai_saraaimaimalai", 0x0de4)
+KEY("Thai_lakkhangyao", 0x0de5)
+KEY("Thai_maiyamok", 0x0de6)
+KEY("Thai_maitaikhu", 0x0de7)
+KEY("Thai_maiek", 0x0de8)
+KEY("Thai_maitho", 0x0de9)
+KEY("Thai_maitri", 0x0dea)
+KEY("Thai_maichattawa", 0x0deb)
+KEY("Thai_thanthakhat", 0x0dec)
+KEY("Thai_nikhahit", 0x0ded)
+KEY("Thai_leksun", 0x0df0)
+KEY("Thai_leknung", 0x0df1)
+KEY("Thai_leksong", 0x0df2)
+KEY("Thai_leksam", 0x0df3)
+KEY("Thai_leksi", 0x0df4)
+KEY("Thai_lekha", 0x0df5)
+KEY("Thai_lekhok", 0x0df6)
+KEY("Thai_lekchet", 0x0df7)
+KEY("Thai_lekpaet", 0x0df8)
+KEY("Thai_lekkao", 0x0df9)
+KEY("Hangul", 0xff31)
+KEY("Hangul_Start", 0xff32)
+KEY("Hangul_End", 0xff33)
+KEY("Hangul_Hanja", 0xff34)
+KEY("Hangul_Jamo", 0xff35)
+KEY("Hangul_Romaja", 0xff36)
+KEY("Hangul_Codeinput", 0xff37)
+KEY("Hangul_Jeonja", 0xff38)
+KEY("Hangul_Banja", 0xff39)
+KEY("Hangul_PreHanja", 0xff3a)
+KEY("Hangul_PostHanja", 0xff3b)
+KEY("Hangul_SingleCandidate", 0xff3c)
+KEY("Hangul_MultipleCandidate", 0xff3d)
+KEY("Hangul_PreviousCandidate", 0xff3e)
+KEY("Hangul_Special", 0xff3f)
+KEY("Hangul_switch", 0xff7e)
+KEY("Hangul_Kiyeog", 0x0ea1)
+KEY("Hangul_SsangKiyeog", 0x0ea2)
+KEY("Hangul_KiyeogSios", 0x0ea3)
+KEY("Hangul_Nieun", 0x0ea4)
+KEY("Hangul_NieunJieuj", 0x0ea5)
+KEY("Hangul_NieunHieuh", 0x0ea6)
+KEY("Hangul_Dikeud", 0x0ea7)
+KEY("Hangul_SsangDikeud", 0x0ea8)
+KEY("Hangul_Rieul", 0x0ea9)
+KEY("Hangul_RieulKiyeog", 0x0eaa)
+KEY("Hangul_RieulMieum", 0x0eab)
+KEY("Hangul_RieulPieub", 0x0eac)
+KEY("Hangul_RieulSios", 0x0ead)
+KEY("Hangul_RieulTieut", 0x0eae)
+KEY("Hangul_RieulPhieuf", 0x0eaf)
+KEY("Hangul_RieulHieuh", 0x0eb0)
+KEY("Hangul_Mieum", 0x0eb1)
+KEY("Hangul_Pieub", 0x0eb2)
+KEY("Hangul_SsangPieub", 0x0eb3)
+KEY("Hangul_PieubSios", 0x0eb4)
+KEY("Hangul_Sios", 0x0eb5)
+KEY("Hangul_SsangSios", 0x0eb6)
+KEY("Hangul_Ieung", 0x0eb7)
+KEY("Hangul_Jieuj", 0x0eb8)
+KEY("Hangul_SsangJieuj", 0x0eb9)
+KEY("Hangul_Cieuc", 0x0eba)
+KEY("Hangul_Khieuq", 0x0ebb)
+KEY("Hangul_Tieut", 0x0ebc)
+KEY("Hangul_Phieuf", 0x0ebd)
+KEY("Hangul_Hieuh", 0x0ebe)
+KEY("Hangul_A", 0x0ebf)
+KEY("Hangul_AE", 0x0ec0)
+KEY("Hangul_YA", 0x0ec1)
+KEY("Hangul_YAE", 0x0ec2)
+KEY("Hangul_EO", 0x0ec3)
+KEY("Hangul_E", 0x0ec4)
+KEY("Hangul_YEO", 0x0ec5)
+KEY("Hangul_YE", 0x0ec6)
+KEY("Hangul_O", 0x0ec7)
+KEY("Hangul_WA", 0x0ec8)
+KEY("Hangul_WAE", 0x0ec9)
+KEY("Hangul_OE", 0x0eca)
+KEY("Hangul_YO", 0x0ecb)
+KEY("Hangul_U", 0x0ecc)
+KEY("Hangul_WEO", 0x0ecd)
+KEY("Hangul_WE", 0x0ece)
+KEY("Hangul_WI", 0x0ecf)
+KEY("Hangul_YU", 0x0ed0)
+KEY("Hangul_EU", 0x0ed1)
+KEY("Hangul_YI", 0x0ed2)
+KEY("Hangul_I", 0x0ed3)
+KEY("Hangul_J_Kiyeog", 0x0ed4)
+KEY("Hangul_J_SsangKiyeog", 0x0ed5)
+KEY("Hangul_J_KiyeogSios", 0x0ed6)
+KEY("Hangul_J_Nieun", 0x0ed7)
+KEY("Hangul_J_NieunJieuj", 0x0ed8)
+KEY("Hangul_J_NieunHieuh", 0x0ed9)
+KEY("Hangul_J_Dikeud", 0x0eda)
+KEY("Hangul_J_Rieul", 0x0edb)
+KEY("Hangul_J_RieulKiyeog", 0x0edc)
+KEY("Hangul_J_RieulMieum", 0x0edd)
+KEY("Hangul_J_RieulPieub", 0x0ede)
+KEY("Hangul_J_RieulSios", 0x0edf)
+KEY("Hangul_J_RieulTieut", 0x0ee0)
+KEY("Hangul_J_RieulPhieuf", 0x0ee1)
+KEY("Hangul_J_RieulHieuh", 0x0ee2)
+KEY("Hangul_J_Mieum", 0x0ee3)
+KEY("Hangul_J_Pieub", 0x0ee4)
+KEY("Hangul_J_PieubSios", 0x0ee5)
+KEY("Hangul_J_Sios", 0x0ee6)
+KEY("Hangul_J_SsangSios", 0x0ee7)
+KEY("Hangul_J_Ieung", 0x0ee8)
+KEY("Hangul_J_Jieuj", 0x0ee9)
+KEY("Hangul_J_Cieuc", 0x0eea)
+KEY("Hangul_J_Khieuq", 0x0eeb)
+KEY("Hangul_J_Tieut", 0x0eec)
+KEY("Hangul_J_Phieuf", 0x0eed)
+KEY("Hangul_J_Hieuh", 0x0eee)
+KEY("Hangul_RieulYeorinHieuh", 0x0eef)
+KEY("Hangul_SunkyeongeumMieum", 0x0ef0)
+KEY("Hangul_SunkyeongeumPieub", 0x0ef1)
+KEY("Hangul_PanSios", 0x0ef2)
+KEY("Hangul_KkogjiDalrinIeung", 0x0ef3)
+KEY("Hangul_SunkyeongeumPhieuf", 0x0ef4)
+KEY("Hangul_YeorinHieuh", 0x0ef5)
+KEY("Hangul_AraeA", 0x0ef6)
+KEY("Hangul_AraeAE", 0x0ef7)
+KEY("Hangul_J_PanSios", 0x0ef8)
+KEY("Hangul_J_KkogjiDalrinIeung", 0x0ef9)
+KEY("Hangul_J_YeorinHieuh", 0x0efa)
+KEY("Korean_Won", 0x0eff)
+KEY("Armenian_ligature_ew", 0x1000587)
+KEY("Armenian_full_stop", 0x1000589)
+KEY("Armenian_verjaket", 0x1000589)
+KEY("Armenian_separation_mark", 0x100055d)
+KEY("Armenian_but", 0x100055d)
+KEY("Armenian_hyphen", 0x100058a)
+KEY("Armenian_yentamna", 0x100058a)
+KEY("Armenian_exclam", 0x100055c)
+KEY("Armenian_amanak", 0x100055c)
+KEY("Armenian_accent", 0x100055b)
+KEY("Armenian_shesht", 0x100055b)
+KEY("Armenian_question", 0x100055e)
+KEY("Armenian_paruyk", 0x100055e)
+KEY("Armenian_AYB", 0x1000531)
+KEY("Armenian_ayb", 0x1000561)
+KEY("Armenian_BEN", 0x1000532)
+KEY("Armenian_ben", 0x1000562)
+KEY("Armenian_GIM", 0x1000533)
+KEY("Armenian_gim", 0x1000563)
+KEY("Armenian_DA", 0x1000534)
+KEY("Armenian_da", 0x1000564)
+KEY("Armenian_YECH", 0x1000535)
+KEY("Armenian_yech", 0x1000565)
+KEY("Armenian_ZA", 0x1000536)
+KEY("Armenian_za", 0x1000566)
+KEY("Armenian_E", 0x1000537)
+KEY("Armenian_e", 0x1000567)
+KEY("Armenian_AT", 0x1000538)
+KEY("Armenian_at", 0x1000568)
+KEY("Armenian_TO", 0x1000539)
+KEY("Armenian_to", 0x1000569)
+KEY("Armenian_ZHE", 0x100053a)
+KEY("Armenian_zhe", 0x100056a)
+KEY("Armenian_INI", 0x100053b)
+KEY("Armenian_ini", 0x100056b)
+KEY("Armenian_LYUN", 0x100053c)
+KEY("Armenian_lyun", 0x100056c)
+KEY("Armenian_KHE", 0x100053d)
+KEY("Armenian_khe", 0x100056d)
+KEY("Armenian_TSA", 0x100053e)
+KEY("Armenian_tsa", 0x100056e)
+KEY("Armenian_KEN", 0x100053f)
+KEY("Armenian_ken", 0x100056f)
+KEY("Armenian_HO", 0x1000540)
+KEY("Armenian_ho", 0x1000570)
+KEY("Armenian_DZA", 0x1000541)
+KEY("Armenian_dza", 0x1000571)
+KEY("Armenian_GHAT", 0x1000542)
+KEY("Armenian_ghat", 0x1000572)
+KEY("Armenian_TCHE", 0x1000543)
+KEY("Armenian_tche", 0x1000573)
+KEY("Armenian_MEN", 0x1000544)
+KEY("Armenian_men", 0x1000574)
+KEY("Armenian_HI", 0x1000545)
+KEY("Armenian_hi", 0x1000575)
+KEY("Armenian_NU", 0x1000546)
+KEY("Armenian_nu", 0x1000576)
+KEY("Armenian_SHA", 0x1000547)
+KEY("Armenian_sha", 0x1000577)
+KEY("Armenian_VO", 0x1000548)
+KEY("Armenian_vo", 0x1000578)
+KEY("Armenian_CHA", 0x1000549)
+KEY("Armenian_cha", 0x1000579)
+KEY("Armenian_PE", 0x100054a)
+KEY("Armenian_pe", 0x100057a)
+KEY("Armenian_JE", 0x100054b)
+KEY("Armenian_je", 0x100057b)
+KEY("Armenian_RA", 0x100054c)
+KEY("Armenian_ra", 0x100057c)
+KEY("Armenian_SE", 0x100054d)
+KEY("Armenian_se", 0x100057d)
+KEY("Armenian_VEV", 0x100054e)
+KEY("Armenian_vev", 0x100057e)
+KEY("Armenian_TYUN", 0x100054f)
+KEY("Armenian_tyun", 0x100057f)
+KEY("Armenian_RE", 0x1000550)
+KEY("Armenian_re", 0x1000580)
+KEY("Armenian_TSO", 0x1000551)
+KEY("Armenian_tso", 0x1000581)
+KEY("Armenian_VYUN", 0x1000552)
+KEY("Armenian_vyun", 0x1000582)
+KEY("Armenian_PYUR", 0x1000553)
+KEY("Armenian_pyur", 0x1000583)
+KEY("Armenian_KE", 0x1000554)
+KEY("Armenian_ke", 0x1000584)
+KEY("Armenian_O", 0x1000555)
+KEY("Armenian_o", 0x1000585)
+KEY("Armenian_FE", 0x1000556)
+KEY("Armenian_fe", 0x1000586)
+KEY("Armenian_apostrophe", 0x100055a)
+KEY("Georgian_an", 0x10010d0)
+KEY("Georgian_ban", 0x10010d1)
+KEY("Georgian_gan", 0x10010d2)
+KEY("Georgian_don", 0x10010d3)
+KEY("Georgian_en", 0x10010d4)
+KEY("Georgian_vin", 0x10010d5)
+KEY("Georgian_zen", 0x10010d6)
+KEY("Georgian_tan", 0x10010d7)
+KEY("Georgian_in", 0x10010d8)
+KEY("Georgian_kan", 0x10010d9)
+KEY("Georgian_las", 0x10010da)
+KEY("Georgian_man", 0x10010db)
+KEY("Georgian_nar", 0x10010dc)
+KEY("Georgian_on", 0x10010dd)
+KEY("Georgian_par", 0x10010de)
+KEY("Georgian_zhar", 0x10010df)
+KEY("Georgian_rae", 0x10010e0)
+KEY("Georgian_san", 0x10010e1)
+KEY("Georgian_tar", 0x10010e2)
+KEY("Georgian_un", 0x10010e3)
+KEY("Georgian_phar", 0x10010e4)
+KEY("Georgian_khar", 0x10010e5)
+KEY("Georgian_ghan", 0x10010e6)
+KEY("Georgian_qar", 0x10010e7)
+KEY("Georgian_shin", 0x10010e8)
+KEY("Georgian_chin", 0x10010e9)
+KEY("Georgian_can", 0x10010ea)
+KEY("Georgian_jil", 0x10010eb)
+KEY("Georgian_cil", 0x10010ec)
+KEY("Georgian_char", 0x10010ed)
+KEY("Georgian_xan", 0x10010ee)
+KEY("Georgian_jhan", 0x10010ef)
+KEY("Georgian_hae", 0x10010f0)
+KEY("Georgian_he", 0x10010f1)
+KEY("Georgian_hie", 0x10010f2)
+KEY("Georgian_we", 0x10010f3)
+KEY("Georgian_har", 0x10010f4)
+KEY("Georgian_hoe", 0x10010f5)
+KEY("Georgian_fi", 0x10010f6)
+KEY("Xabovedot", 0x1001e8a)
+KEY("Ibreve", 0x100012c)
+KEY("Zstroke", 0x10001b5)
+KEY("Gcaron", 0x10001e6)
+KEY("Ocaron", 0x10001d1)
+KEY("Obarred", 0x100019f)
+KEY("xabovedot", 0x1001e8b)
+KEY("ibreve", 0x100012d)
+KEY("zstroke", 0x10001b6)
+KEY("gcaron", 0x10001e7)
+KEY("ocaron", 0x10001d2)
+KEY("obarred", 0x1000275)
+KEY("SCHWA", 0x100018f)
+KEY("schwa", 0x1000259)
+KEY("Lbelowdot", 0x1001e36)
+KEY("lbelowdot", 0x1001e37)
+KEY("Abelowdot", 0x1001ea0)
+KEY("abelowdot", 0x1001ea1)
+KEY("Ahook", 0x1001ea2)
+KEY("ahook", 0x1001ea3)
+KEY("Acircumflexacute", 0x1001ea4)
+KEY("acircumflexacute", 0x1001ea5)
+KEY("Acircumflexgrave", 0x1001ea6)
+KEY("acircumflexgrave", 0x1001ea7)
+KEY("Acircumflexhook", 0x1001ea8)
+KEY("acircumflexhook", 0x1001ea9)
+KEY("Acircumflextilde", 0x1001eaa)
+KEY("acircumflextilde", 0x1001eab)
+KEY("Acircumflexbelowdot", 0x1001eac)
+KEY("acircumflexbelowdot", 0x1001ead)
+KEY("Abreveacute", 0x1001eae)
+KEY("abreveacute", 0x1001eaf)
+KEY("Abrevegrave", 0x1001eb0)
+KEY("abrevegrave", 0x1001eb1)
+KEY("Abrevehook", 0x1001eb2)
+KEY("abrevehook", 0x1001eb3)
+KEY("Abrevetilde", 0x1001eb4)
+KEY("abrevetilde", 0x1001eb5)
+KEY("Abrevebelowdot", 0x1001eb6)
+KEY("abrevebelowdot", 0x1001eb7)
+KEY("Ebelowdot", 0x1001eb8)
+KEY("ebelowdot", 0x1001eb9)
+KEY("Ehook", 0x1001eba)
+KEY("ehook", 0x1001ebb)
+KEY("Etilde", 0x1001ebc)
+KEY("etilde", 0x1001ebd)
+KEY("Ecircumflexacute", 0x1001ebe)
+KEY("ecircumflexacute", 0x1001ebf)
+KEY("Ecircumflexgrave", 0x1001ec0)
+KEY("ecircumflexgrave", 0x1001ec1)
+KEY("Ecircumflexhook", 0x1001ec2)
+KEY("ecircumflexhook", 0x1001ec3)
+KEY("Ecircumflextilde", 0x1001ec4)
+KEY("ecircumflextilde", 0x1001ec5)
+KEY("Ecircumflexbelowdot", 0x1001ec6)
+KEY("ecircumflexbelowdot", 0x1001ec7)
+KEY("Ihook", 0x1001ec8)
+KEY("ihook", 0x1001ec9)
+KEY("Ibelowdot", 0x1001eca)
+KEY("ibelowdot", 0x1001ecb)
+KEY("Obelowdot", 0x1001ecc)
+KEY("obelowdot", 0x1001ecd)
+KEY("Ohook", 0x1001ece)
+KEY("ohook", 0x1001ecf)
+KEY("Ocircumflexacute", 0x1001ed0)
+KEY("ocircumflexacute", 0x1001ed1)
+KEY("Ocircumflexgrave", 0x1001ed2)
+KEY("ocircumflexgrave", 0x1001ed3)
+KEY("Ocircumflexhook", 0x1001ed4)
+KEY("ocircumflexhook", 0x1001ed5)
+KEY("Ocircumflextilde", 0x1001ed6)
+KEY("ocircumflextilde", 0x1001ed7)
+KEY("Ocircumflexbelowdot", 0x1001ed8)
+KEY("ocircumflexbelowdot", 0x1001ed9)
+KEY("Ohornacute", 0x1001eda)
+KEY("ohornacute", 0x1001edb)
+KEY("Ohorngrave", 0x1001edc)
+KEY("ohorngrave", 0x1001edd)
+KEY("Ohornhook", 0x1001ede)
+KEY("ohornhook", 0x1001edf)
+KEY("Ohorntilde", 0x1001ee0)
+KEY("ohorntilde", 0x1001ee1)
+KEY("Ohornbelowdot", 0x1001ee2)
+KEY("ohornbelowdot", 0x1001ee3)
+KEY("Ubelowdot", 0x1001ee4)
+KEY("ubelowdot", 0x1001ee5)
+KEY("Uhook", 0x1001ee6)
+KEY("uhook", 0x1001ee7)
+KEY("Uhornacute", 0x1001ee8)
+KEY("uhornacute", 0x1001ee9)
+KEY("Uhorngrave", 0x1001eea)
+KEY("uhorngrave", 0x1001eeb)
+KEY("Uhornhook", 0x1001eec)
+KEY("uhornhook", 0x1001eed)
+KEY("Uhorntilde", 0x1001eee)
+KEY("uhorntilde", 0x1001eef)
+KEY("Uhornbelowdot", 0x1001ef0)
+KEY("uhornbelowdot", 0x1001ef1)
+KEY("Ybelowdot", 0x1001ef4)
+KEY("ybelowdot", 0x1001ef5)
+KEY("Yhook", 0x1001ef6)
+KEY("yhook", 0x1001ef7)
+KEY("Ytilde", 0x1001ef8)
+KEY("ytilde", 0x1001ef9)
+KEY("Ohorn", 0x10001a0)
+KEY("ohorn", 0x10001a1)
+KEY("Uhorn", 0x10001af)
+KEY("uhorn", 0x10001b0)
+KEY("EcuSign", 0x10020a0)
+KEY("ColonSign", 0x10020a1)
+KEY("CruzeiroSign", 0x10020a2)
+KEY("FFrancSign", 0x10020a3)
+KEY("LiraSign", 0x10020a4)
+KEY("MillSign", 0x10020a5)
+KEY("NairaSign", 0x10020a6)
+KEY("PesetaSign", 0x10020a7)
+KEY("RupeeSign", 0x10020a8)
+KEY("WonSign", 0x10020a9)
+KEY("NewSheqelSign", 0x10020aa)
+KEY("DongSign", 0x10020ab)
+KEY("EuroSign", 0x20ac)
+KEY("zerosuperior", 0x1002070)
+KEY("foursuperior", 0x1002074)
+KEY("fivesuperior", 0x1002075)
+KEY("sixsuperior", 0x1002076)
+KEY("sevensuperior", 0x1002077)
+KEY("eightsuperior", 0x1002078)
+KEY("ninesuperior", 0x1002079)
+KEY("zerosubscript", 0x1002080)
+KEY("onesubscript", 0x1002081)
+KEY("twosubscript", 0x1002082)
+KEY("threesubscript", 0x1002083)
+KEY("foursubscript", 0x1002084)
+KEY("fivesubscript", 0x1002085)
+KEY("sixsubscript", 0x1002086)
+KEY("sevensubscript", 0x1002087)
+KEY("eightsubscript", 0x1002088)
+KEY("ninesubscript", 0x1002089)
+KEY("partdifferential", 0x1002202)
+KEY("emptyset", 0x1002205)
+KEY("elementof", 0x1002208)
+KEY("notelementof", 0x1002209)
+KEY("containsas", 0x100220B)
+KEY("squareroot", 0x100221A)
+KEY("cuberoot", 0x100221B)
+KEY("fourthroot", 0x100221C)
+KEY("dintegral", 0x100222C)
+KEY("tintegral", 0x100222D)
+KEY("because", 0x1002235)
+KEY("approxeq", 0x1002248)
+KEY("notapproxeq", 0x1002247)
+KEY("notidentical", 0x1002262)
+KEY("stricteq", 0x1002263)
+KEY("braille_dot_1", 0xfff1)
+KEY("braille_dot_2", 0xfff2)
+KEY("braille_dot_3", 0xfff3)
+KEY("braille_dot_4", 0xfff4)
+KEY("braille_dot_5", 0xfff5)
+KEY("braille_dot_6", 0xfff6)
+KEY("braille_dot_7", 0xfff7)
+KEY("braille_dot_8", 0xfff8)
+KEY("braille_dot_9", 0xfff9)
+KEY("braille_dot_10", 0xfffa)
+KEY("braille_blank", 0x1002800)
+KEY("braille_dots_1", 0x1002801)
+KEY("braille_dots_2", 0x1002802)
+KEY("braille_dots_12", 0x1002803)
+KEY("braille_dots_3", 0x1002804)
+KEY("braille_dots_13", 0x1002805)
+KEY("braille_dots_23", 0x1002806)
+KEY("braille_dots_123", 0x1002807)
+KEY("braille_dots_4", 0x1002808)
+KEY("braille_dots_14", 0x1002809)
+KEY("braille_dots_24", 0x100280a)
+KEY("braille_dots_124", 0x100280b)
+KEY("braille_dots_34", 0x100280c)
+KEY("braille_dots_134", 0x100280d)
+KEY("braille_dots_234", 0x100280e)
+KEY("braille_dots_1234", 0x100280f)
+KEY("braille_dots_5", 0x1002810)
+KEY("braille_dots_15", 0x1002811)
+KEY("braille_dots_25", 0x1002812)
+KEY("braille_dots_125", 0x1002813)
+KEY("braille_dots_35", 0x1002814)
+KEY("braille_dots_135", 0x1002815)
+KEY("braille_dots_235", 0x1002816)
+KEY("braille_dots_1235", 0x1002817)
+KEY("braille_dots_45", 0x1002818)
+KEY("braille_dots_145", 0x1002819)
+KEY("braille_dots_245", 0x100281a)
+KEY("braille_dots_1245", 0x100281b)
+KEY("braille_dots_345", 0x100281c)
+KEY("braille_dots_1345", 0x100281d)
+KEY("braille_dots_2345", 0x100281e)
+KEY("braille_dots_12345", 0x100281f)
+KEY("braille_dots_6", 0x1002820)
+KEY("braille_dots_16", 0x1002821)
+KEY("braille_dots_26", 0x1002822)
+KEY("braille_dots_126", 0x1002823)
+KEY("braille_dots_36", 0x1002824)
+KEY("braille_dots_136", 0x1002825)
+KEY("braille_dots_236", 0x1002826)
+KEY("braille_dots_1236", 0x1002827)
+KEY("braille_dots_46", 0x1002828)
+KEY("braille_dots_146", 0x1002829)
+KEY("braille_dots_246", 0x100282a)
+KEY("braille_dots_1246", 0x100282b)
+KEY("braille_dots_346", 0x100282c)
+KEY("braille_dots_1346", 0x100282d)
+KEY("braille_dots_2346", 0x100282e)
+KEY("braille_dots_12346", 0x100282f)
+KEY("braille_dots_56", 0x1002830)
+KEY("braille_dots_156", 0x1002831)
+KEY("braille_dots_256", 0x1002832)
+KEY("braille_dots_1256", 0x1002833)
+KEY("braille_dots_356", 0x1002834)
+KEY("braille_dots_1356", 0x1002835)
+KEY("braille_dots_2356", 0x1002836)
+KEY("braille_dots_12356", 0x1002837)
+KEY("braille_dots_456", 0x1002838)
+KEY("braille_dots_1456", 0x1002839)
+KEY("braille_dots_2456", 0x100283a)
+KEY("braille_dots_12456", 0x100283b)
+KEY("braille_dots_3456", 0x100283c)
+KEY("braille_dots_13456", 0x100283d)
+KEY("braille_dots_23456", 0x100283e)
+KEY("braille_dots_123456", 0x100283f)
+KEY("braille_dots_7", 0x1002840)
+KEY("braille_dots_17", 0x1002841)
+KEY("braille_dots_27", 0x1002842)
+KEY("braille_dots_127", 0x1002843)
+KEY("braille_dots_37", 0x1002844)
+KEY("braille_dots_137", 0x1002845)
+KEY("braille_dots_237", 0x1002846)
+KEY("braille_dots_1237", 0x1002847)
+KEY("braille_dots_47", 0x1002848)
+KEY("braille_dots_147", 0x1002849)
+KEY("braille_dots_247", 0x100284a)
+KEY("braille_dots_1247", 0x100284b)
+KEY("braille_dots_347", 0x100284c)
+KEY("braille_dots_1347", 0x100284d)
+KEY("braille_dots_2347", 0x100284e)
+KEY("braille_dots_12347", 0x100284f)
+KEY("braille_dots_57", 0x1002850)
+KEY("braille_dots_157", 0x1002851)
+KEY("braille_dots_257", 0x1002852)
+KEY("braille_dots_1257", 0x1002853)
+KEY("braille_dots_357", 0x1002854)
+KEY("braille_dots_1357", 0x1002855)
+KEY("braille_dots_2357", 0x1002856)
+KEY("braille_dots_12357", 0x1002857)
+KEY("braille_dots_457", 0x1002858)
+KEY("braille_dots_1457", 0x1002859)
+KEY("braille_dots_2457", 0x100285a)
+KEY("braille_dots_12457", 0x100285b)
+KEY("braille_dots_3457", 0x100285c)
+KEY("braille_dots_13457", 0x100285d)
+KEY("braille_dots_23457", 0x100285e)
+KEY("braille_dots_123457", 0x100285f)
+KEY("braille_dots_67", 0x1002860)
+KEY("braille_dots_167", 0x1002861)
+KEY("braille_dots_267", 0x1002862)
+KEY("braille_dots_1267", 0x1002863)
+KEY("braille_dots_367", 0x1002864)
+KEY("braille_dots_1367", 0x1002865)
+KEY("braille_dots_2367", 0x1002866)
+KEY("braille_dots_12367", 0x1002867)
+KEY("braille_dots_467", 0x1002868)
+KEY("braille_dots_1467", 0x1002869)
+KEY("braille_dots_2467", 0x100286a)
+KEY("braille_dots_12467", 0x100286b)
+KEY("braille_dots_3467", 0x100286c)
+KEY("braille_dots_13467", 0x100286d)
+KEY("braille_dots_23467", 0x100286e)
+KEY("braille_dots_123467", 0x100286f)
+KEY("braille_dots_567", 0x1002870)
+KEY("braille_dots_1567", 0x1002871)
+KEY("braille_dots_2567", 0x1002872)
+KEY("braille_dots_12567", 0x1002873)
+KEY("braille_dots_3567", 0x1002874)
+KEY("braille_dots_13567", 0x1002875)
+KEY("braille_dots_23567", 0x1002876)
+KEY("braille_dots_123567", 0x1002877)
+KEY("braille_dots_4567", 0x1002878)
+KEY("braille_dots_14567", 0x1002879)
+KEY("braille_dots_24567", 0x100287a)
+KEY("braille_dots_124567", 0x100287b)
+KEY("braille_dots_34567", 0x100287c)
+KEY("braille_dots_134567", 0x100287d)
+KEY("braille_dots_234567", 0x100287e)
+KEY("braille_dots_1234567", 0x100287f)
+KEY("braille_dots_8", 0x1002880)
+KEY("braille_dots_18", 0x1002881)
+KEY("braille_dots_28", 0x1002882)
+KEY("braille_dots_128", 0x1002883)
+KEY("braille_dots_38", 0x1002884)
+KEY("braille_dots_138", 0x1002885)
+KEY("braille_dots_238", 0x1002886)
+KEY("braille_dots_1238", 0x1002887)
+KEY("braille_dots_48", 0x1002888)
+KEY("braille_dots_148", 0x1002889)
+KEY("braille_dots_248", 0x100288a)
+KEY("braille_dots_1248", 0x100288b)
+KEY("braille_dots_348", 0x100288c)
+KEY("braille_dots_1348", 0x100288d)
+KEY("braille_dots_2348", 0x100288e)
+KEY("braille_dots_12348", 0x100288f)
+KEY("braille_dots_58", 0x1002890)
+KEY("braille_dots_158", 0x1002891)
+KEY("braille_dots_258", 0x1002892)
+KEY("braille_dots_1258", 0x1002893)
+KEY("braille_dots_358", 0x1002894)
+KEY("braille_dots_1358", 0x1002895)
+KEY("braille_dots_2358", 0x1002896)
+KEY("braille_dots_12358", 0x1002897)
+KEY("braille_dots_458", 0x1002898)
+KEY("braille_dots_1458", 0x1002899)
+KEY("braille_dots_2458", 0x100289a)
+KEY("braille_dots_12458", 0x100289b)
+KEY("braille_dots_3458", 0x100289c)
+KEY("braille_dots_13458", 0x100289d)
+KEY("braille_dots_23458", 0x100289e)
+KEY("braille_dots_123458", 0x100289f)
+KEY("braille_dots_68", 0x10028a0)
+KEY("braille_dots_168", 0x10028a1)
+KEY("braille_dots_268", 0x10028a2)
+KEY("braille_dots_1268", 0x10028a3)
+KEY("braille_dots_368", 0x10028a4)
+KEY("braille_dots_1368", 0x10028a5)
+KEY("braille_dots_2368", 0x10028a6)
+KEY("braille_dots_12368", 0x10028a7)
+KEY("braille_dots_468", 0x10028a8)
+KEY("braille_dots_1468", 0x10028a9)
+KEY("braille_dots_2468", 0x10028aa)
+KEY("braille_dots_12468", 0x10028ab)
+KEY("braille_dots_3468", 0x10028ac)
+KEY("braille_dots_13468", 0x10028ad)
+KEY("braille_dots_23468", 0x10028ae)
+KEY("braille_dots_123468", 0x10028af)
+KEY("braille_dots_568", 0x10028b0)
+KEY("braille_dots_1568", 0x10028b1)
+KEY("braille_dots_2568", 0x10028b2)
+KEY("braille_dots_12568", 0x10028b3)
+KEY("braille_dots_3568", 0x10028b4)
+KEY("braille_dots_13568", 0x10028b5)
+KEY("braille_dots_23568", 0x10028b6)
+KEY("braille_dots_123568", 0x10028b7)
+KEY("braille_dots_4568", 0x10028b8)
+KEY("braille_dots_14568", 0x10028b9)
+KEY("braille_dots_24568", 0x10028ba)
+KEY("braille_dots_124568", 0x10028bb)
+KEY("braille_dots_34568", 0x10028bc)
+KEY("braille_dots_134568", 0x10028bd)
+KEY("braille_dots_234568", 0x10028be)
+KEY("braille_dots_1234568", 0x10028bf)
+KEY("braille_dots_78", 0x10028c0)
+KEY("braille_dots_178", 0x10028c1)
+KEY("braille_dots_278", 0x10028c2)
+KEY("braille_dots_1278", 0x10028c3)
+KEY("braille_dots_378", 0x10028c4)
+KEY("braille_dots_1378", 0x10028c5)
+KEY("braille_dots_2378", 0x10028c6)
+KEY("braille_dots_12378", 0x10028c7)
+KEY("braille_dots_478", 0x10028c8)
+KEY("braille_dots_1478", 0x10028c9)
+KEY("braille_dots_2478", 0x10028ca)
+KEY("braille_dots_12478", 0x10028cb)
+KEY("braille_dots_3478", 0x10028cc)
+KEY("braille_dots_13478", 0x10028cd)
+KEY("braille_dots_23478", 0x10028ce)
+KEY("braille_dots_123478", 0x10028cf)
+KEY("braille_dots_578", 0x10028d0)
+KEY("braille_dots_1578", 0x10028d1)
+KEY("braille_dots_2578", 0x10028d2)
+KEY("braille_dots_12578", 0x10028d3)
+KEY("braille_dots_3578", 0x10028d4)
+KEY("braille_dots_13578", 0x10028d5)
+KEY("braille_dots_23578", 0x10028d6)
+KEY("braille_dots_123578", 0x10028d7)
+KEY("braille_dots_4578", 0x10028d8)
+KEY("braille_dots_14578", 0x10028d9)
+KEY("braille_dots_24578", 0x10028da)
+KEY("braille_dots_124578", 0x10028db)
+KEY("braille_dots_34578", 0x10028dc)
+KEY("braille_dots_134578", 0x10028dd)
+KEY("braille_dots_234578", 0x10028de)
+KEY("braille_dots_1234578", 0x10028df)
+KEY("braille_dots_678", 0x10028e0)
+KEY("braille_dots_1678", 0x10028e1)
+KEY("braille_dots_2678", 0x10028e2)
+KEY("braille_dots_12678", 0x10028e3)
+KEY("braille_dots_3678", 0x10028e4)
+KEY("braille_dots_13678", 0x10028e5)
+KEY("braille_dots_23678", 0x10028e6)
+KEY("braille_dots_123678", 0x10028e7)
+KEY("braille_dots_4678", 0x10028e8)
+KEY("braille_dots_14678", 0x10028e9)
+KEY("braille_dots_24678", 0x10028ea)
+KEY("braille_dots_124678", 0x10028eb)
+KEY("braille_dots_34678", 0x10028ec)
+KEY("braille_dots_134678", 0x10028ed)
+KEY("braille_dots_234678", 0x10028ee)
+KEY("braille_dots_1234678", 0x10028ef)
+KEY("braille_dots_5678", 0x10028f0)
+KEY("braille_dots_15678", 0x10028f1)
+KEY("braille_dots_25678", 0x10028f2)
+KEY("braille_dots_125678", 0x10028f3)
+KEY("braille_dots_35678", 0x10028f4)
+KEY("braille_dots_135678", 0x10028f5)
+KEY("braille_dots_235678", 0x10028f6)
+KEY("braille_dots_1235678", 0x10028f7)
+KEY("braille_dots_45678", 0x10028f8)
+KEY("braille_dots_145678", 0x10028f9)
+KEY("braille_dots_245678", 0x10028fa)
+KEY("braille_dots_1245678", 0x10028fb)
+KEY("braille_dots_345678", 0x10028fc)
+KEY("braille_dots_1345678", 0x10028fd)
+KEY("braille_dots_2345678", 0x10028fe)
+KEY("braille_dots_12345678", 0x10028ff)