Uprev libxkbcommon to 1.4.0. am: a36f08b4c6 am: 28c13cad56

Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libxkbcommon/+/17987629

Change-Id: I6477642658db9873089bb079a77c28876459be3f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index c766cd5..9803e87 100644
--- a/Android.bp
+++ b/Android.bp
@@ -34,6 +34,7 @@
     name: "external_libxkbcommon_license",
     visibility: [":__subpackages__"],
     license_kinds: [
+        "SPDX-license-identifier-BSD-3-Clause",
         "SPDX-license-identifier-GPL",
         "SPDX-license-identifier-GPL-2.0",
         "SPDX-license-identifier-GPL-3.0",
@@ -71,26 +72,38 @@
         "src/atom.c",
         "src/context.c",
         "src/context-priv.c",
-        "src/keysym.c",
-        "src/keysym-utf.c",
         "src/keymap.c",
         "src/keymap-priv.c",
+        "src/keysym.c",
+        "src/keysym-utf.c",
+        "src/registry.c",
         "src/state.c",
         "src/text.c",
         "src/utf8.c",
+        "src/util-list.c",
         "src/utils.c",
     ],
     cflags: [
-        "-std=c99",
+        "-std=c11",
+        "-fno-strict-aliasing",
+        "-fsanitize-undefined-trap-on-error",
         "-Wall",
         "-Werror",
+        "-Wno-format",
         "-Wno-unused-parameter",
         "-Wno-missing-field-initializers",
         // Needed because libxkbcommon uses GNU extension asprintf().
         "-D_GNU_SOURCE",
     ],
-    local_include_dirs: ["src", "config/libxkbcommon.so.0.0.0.p"],
-    export_include_dirs: ["."],
+    static_libs: [
+        "libxml2"
+    ],
+    local_include_dirs: [
+        "src",
+        "config",
+        "config/libxkbcommon.so.0.0.0.p"
+    ],
+    export_include_dirs: ["include"],
     vendor_available: true,
     host_supported: true,
     name: "libxkbcommon",
diff --git a/METADATA b/METADATA
index 83f420b..a57c127 100644
--- a/METADATA
+++ b/METADATA
@@ -7,14 +7,15 @@
   }
   url {
     type: ARCHIVE
-    value: "https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-1.0.3.tar.gz"
+    value: "https://xkbcommon.org/download/libxkbcommon-1.4.0.tar.xz"
   }
-  version: "xkbcommon-1.0.3"
+  version: "xkbcommon-1.4.0"
   license_note: "would be NOTICE save for test/evdev-scancodes.h"
   license_type: RESTRICTED
   last_upgrade_date {
-    year: 2020
-    month: 11
-    day: 24
+    year: 2022
+    month: 4
+    day: 22
   }
+  local_modifications: "atom_intern() in atom.c is modified to suppress Wreturn-type warning."
 }
diff --git a/NEWS b/NEWS
index 968f183..3b35bb6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,129 @@
+libxkbcommon 1.4.0 - 2022-02-04
+==================
+
+- Add `enable-tools` option to Meson build (on by default) to allow disabling
+  the `xkbcli` tools.
+
+  Contributed by Alex Xu (Hello71).
+
+- In `xkbcli list`, fix "YAML Norway problem" in output.
+
+  Contributed by Peter Hutterer.
+
+- In libxkbregistry, variants now inherit iso639, iso3166 and brief from parent
+  layout if omitted.
+
+  Contributed by M Hickford.
+
+- In libxkbregistry, don't call `xmlCleanupParser()` - it's not supposed to
+  be called by libraries.
+
+  Contributed by Peter Hutterer.
+
+- In libxkbregistry, skip over invalid ISO-639 or ISO-3166 entries.
+
+  Contributed by Peter Hutterer.
+
+libxkbcommon 1.3.1 - 2021-09-10
+==================
+
+- In `xkbcli interactive-x11`, use the Esc keysym instead of the Esc keycode
+  for quitting.
+
+  Contributed by Simon Ser.
+
+- In `xkbcli how-to-type`, add `--keysym` argugment for how to type a keysym
+  instead of a Unicode codepoint.
+
+- Fix a crash in `xkb_x11_keymap_new_from_device` error handling given some
+  invalid keymaps. Regressed in 1.2.0.
+
+  Reported by Zack Weinberg. Tested by Uli Schlachter.
+
+libxkbcommon 1.3.0 - 2021-05-01
+==================
+
+- Change `xkbcli list` to output YAML, instead of the previous ad-hoc format.
+
+  This allows to more easily process the information in a programmetic way, for
+  example
+
+    xkbcli list | yq -r ".layouts[].layout"
+
+  Contributed by Peter Hutterer.
+
+- Optimize a certain part of keymap compilation (atom interning).
+
+- Fix segmentation fault in case-insensitive `xkb_keysym_from_name` for certain
+  values like the empty string.
+
+  Contributed by Isaac Freund.
+
+- Support building libxkbcommon as a meson subproject.
+
+  Contributed by Adrian Perez de Castro.
+
+- Add `ftruncate` fallback for `posix_fallocate` in `xkbcli interactive-wayland`
+  for FreeBSD.
+
+  Contributed by Evgeniy Khramtsov.
+
+- Properly export library symbols in MSVC.
+
+  Contributed by Adrian Perez de Castro.
+
+libxkbcommon 1.2.1 - 2021-04-07
+==================
+
+- Fix `xkb_x11_keymap_new_from_device()` failing when the keymap contains key
+  types with missing level names, like the one used by the `numpad:mac` option
+  in xkeyboard-config. Regressed in 1.2.0.
+
+libxkbcommon 1.2.0 - 2021-04-03
+==================
+
+- `xkb_x11_keymap_new_from_device()` is much faster. It now performs only 2
+  roundtrips to the X server, instead of dozens (in first-time calls).
+
+  Contributed by Uli Schlachter.
+
+- Case-sensitive `xkb_keysym_from_name()` is much faster.
+
+- Keysym names of the form `0x12AB` and `U12AB` are parsed more strictly.
+  Previously the hexadecimal part was parsed with `strtoul()`, now only up
+  to 8 hexadecimal digits (0-9A-Fa-f) are allowed.
+
+- Compose files now have a size limit (65535 internal nodes). Further sequences
+  are discared and a warning is issued.
+
+- Compose table loading (`xkb_compose_table_new_from_locale()` and similar) is
+  much faster.
+
+- Use `poll()` instead of `epoll()` for `xlbcli interactive-evdev`, making it
+  portable to FreeBSD which provides evdev but not epoll. On FreeBSD, remember
+  to install the `evdev-proto` package to get the evdev headers.
+
+- The build now requires a C11 compiler (uses anonymous structs/unions).
+
+libxkbcommon 1.1.0 - 2021-02-27
+==================
+
+- Publish the `xkb-format-text-v1.md` file in the HTML documentation. This file
+  existed for a long time but only in the Git repository.
+  Link: https://xkbcommon.org/doc/current/md_doc_keymap_format_text_v1.html
+
+- Add partial documentation for xkb_symbols to xkb-format-text-v1.md.
+
+  Contributed by Simon Zeni.
+
+- Update keysym definitions to latest xorgproto. In particular, this adds many
+  special keysyms corresponding to Linux evdev keycodes.
+
+  Contributed by Peter Hutterer <@who-t.net>.
+
+- New API:
+  Too many XKB_KEY_* definitions to list here.
+
 libxkbcommon 1.0.3 - 2020-11-23
 ==================
 
diff --git a/README.md b/README.md
index 74d1d27..4425578 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@
 
     meson setup build
     ninja -C build
+    ninja -C build test  # Run the tests.
 
 To build for use with Wayland, you can disable X11 support while still
 using the X11 keyboard configuration resource files thusly:
diff --git a/bench/.gitignore b/bench/.gitignore
deleted file mode 100644
index cd32dfc..0000000
--- a/bench/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-key-proc
-rules
-rulescomp
-compose
diff --git a/bench/atom.c b/bench/atom.c
new file mode 100644
index 0000000..7d78f64
--- /dev/null
+++ b/bench/atom.c
@@ -0,0 +1,93 @@
+/*
+ * Copyright © 2021 Ran Benita <ran@unusedvar.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "config.h"
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include "atom.h"
+#include "bench.h"
+#include "darray.h"
+
+#define BENCHMARK_ITERATIONS 100
+
+int
+main(void)
+{
+    FILE *file;
+    char wordbuf[1024];
+    darray(char *) words;
+    char **worditer;
+    struct atom_table *table;
+    xkb_atom_t atom;
+    const char *text;
+    struct bench bench;
+    char *elapsed;
+
+    darray_init(words);
+    file = fopen("/usr/share/dict/words", "rb");
+    if (file == NULL) {
+        perror("/usr/share/dict/words");
+        return -1;
+    }
+    while (fgets(wordbuf, sizeof(wordbuf), file)) {
+        size_t len = strlen(wordbuf);
+        if (len > 0 && wordbuf[len - 1] == '\n')
+            wordbuf[len - 1] = '\0';
+        darray_append(words, strdup(wordbuf));
+    }
+    fclose(file);
+
+    bench_start(&bench);
+    for (int i = 0; i < BENCHMARK_ITERATIONS; i++) {
+        table = atom_table_new();
+        assert(table);
+
+        darray_foreach(worditer, words) {
+            atom = atom_intern(table, *worditer, strlen(*worditer) - 1, true);
+            assert(atom != XKB_ATOM_NONE);
+
+            text = atom_text(table, atom);
+            assert(text != NULL);
+        }
+
+        atom_table_free(table);
+    }
+    bench_stop(&bench);
+
+    elapsed = bench_elapsed_str(&bench);
+    fprintf(stderr, "%d iterations in %ss\n",
+            BENCHMARK_ITERATIONS, elapsed);
+    free(elapsed);
+
+    darray_foreach(worditer, words) {
+        free(*worditer);
+    }
+    darray_free(words);
+
+    return 0;
+}
diff --git a/bench/compose.c b/bench/compose.c
index 7ff0798..4198e32 100644
--- a/bench/compose.c
+++ b/bench/compose.c
@@ -45,7 +45,7 @@
     ctx = test_get_context(CONTEXT_NO_FLAG);
     assert(ctx);
 
-    path = test_get_path("compose/en_US.UTF-8/Compose");
+    path = test_get_path("locale/en_US.UTF-8/Compose");
     file = fopen(path, "rb");
     if (file == NULL) {
         perror(path);
diff --git a/bench/rules.c b/bench/rules.c
index 3206583..1306dc4 100644
--- a/bench/rules.c
+++ b/bench/rules.c
@@ -40,7 +40,6 @@
     struct xkb_rule_names rmlvo = {
         "evdev", "pc105", "us,il", ",", "ctrl:nocaps,grp:menu_toggle",
     };
-    struct xkb_component_names kccgst;
     struct bench bench;
     char *elapsed;
 
@@ -52,6 +51,8 @@
 
     bench_start(&bench);
     for (i = 0; i < BENCHMARK_ITERATIONS; i++) {
+        struct xkb_component_names kccgst;
+
         assert(xkb_components_from_rules(ctx, &rmlvo, &kccgst));
         free(kccgst.keycodes);
         free(kccgst.types);
diff --git a/bench/rulescomp.c b/bench/rulescomp.c
index 3972a7b..0da4d3c 100644
--- a/bench/rulescomp.c
+++ b/bench/rulescomp.c
@@ -28,7 +28,7 @@
 #include "../test/test.h"
 #include "bench.h"
 
-#define BENCHMARK_ITERATIONS 2500
+#define BENCHMARK_ITERATIONS 1000
 
 int
 main(int argc, char *argv[])
diff --git a/config.h b/config.h
deleted file mode 120000
index 2d4dea9..0000000
--- a/config.h
+++ /dev/null
@@ -1 +0,0 @@
-config/config.h
\ No newline at end of file
diff --git a/config/config.h b/config/config.h
index 76ab62a..1ac39f3 100644
--- a/config/config.h
+++ b/config/config.h
@@ -45,7 +45,7 @@
 
 #define LIBXKBCOMMON_TOOL_PATH "/usr/local/libexec/xkbcommon"
 
-#define LIBXKBCOMMON_VERSION "1.0.3"
+#define LIBXKBCOMMON_VERSION "1.4.0"
 
 #define WIN32_LEAN_AND_MEAN 1
 
diff --git a/config/libxkbcommon.so.0.0.0.p/parser.c b/config/libxkbcommon.so.0.0.0.p/parser.c
index 921673f..bbb4c1e 100644
--- a/config/libxkbcommon.so.0.0.0.p/parser.c
+++ b/config/libxkbcommon.so.0.0.0.p/parser.c
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.2.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -45,11 +45,11 @@
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-/* Identify Bison output.  */
-#define YYBISON 1
+/* Identify Bison output, and Bison version.  */
+#define YYBISON 30802
 
-/* Bison version.  */
-#define YYBISON_VERSION "3.7.2"
+/* Bison version string.  */
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -334,6 +334,18 @@
 typedef short yytype_int16;
 #endif
 
+/* Work around bug in HP-UX 11.23, which defines these macros
+   incorrectly for preprocessor constants.  This workaround can likely
+   be removed in 2023, as HPE has promised support for HP-UX 11.23
+   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
+   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
+#ifdef __hpux
+# undef UINT_LEAST8_MAX
+# undef UINT_LEAST16_MAX
+# define UINT_LEAST8_MAX 255
+# define UINT_LEAST16_MAX 65535
+#endif
+
 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
@@ -431,17 +443,23 @@
 
 /* Suppress unused-variable warnings by "using" E.  */
 #if ! defined lint || defined __GNUC__
-# define YYUSE(E) ((void) (E))
+# define YY_USE(E) ((void) (E))
 #else
-# define YYUSE(E) /* empty */
+# define YY_USE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     _Pragma ("GCC diagnostic push")                                     \
     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     _Pragma ("GCC diagnostic pop")
 #else
@@ -655,7 +673,7 @@
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
        0,   254,   254,   256,   258,   262,   268,   269,   270,   273,
@@ -727,21 +745,6 @@
 }
 #endif
 
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
-{
-       0,   256,   257,   255,     1,     2,     3,     4,     5,     6,
-       7,     8,    10,    11,    12,    13,    14,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    35,    36,    37,    38,    40,    41,    42,    43,
-      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
-      54,    55,    60,    61,    62,    63,    64,    70,    71,    72,
-      73,    74,    75,    76,    77
-};
-#endif
-
 #define YYPACT_NINF (-182)
 
 #define yypact_value_is_default(Yyn) \
@@ -752,8 +755,8 @@
 #define yytable_value_is_error(Yyn) \
   0
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
      176,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,  -182,
@@ -792,9 +795,9 @@
     -182,  -182,  -182,  -182
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE does not specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
       18,     4,    21,    22,    23,    24,    25,    26,    27,    28,
@@ -833,7 +836,7 @@
       97,    95,    90,    92
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
+/* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
     -182,  -182,  -182,  -182,  -182,   181,  -182,   402,  -182,   389,
@@ -846,10 +849,10 @@
      420,  -182
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
+/* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    10,    11,    25,    34,    12,    26,    36,    14,    15,
+       0,    10,    11,    25,    34,    12,    26,    36,    14,    15,
       37,    46,   167,    73,    74,    75,    92,    93,    76,   100,
      168,    77,    78,   173,   174,   175,    79,    80,   195,    82,
       83,    84,   196,   197,   293,   294,   319,   320,   198,   312,
@@ -859,9 +862,9 @@
       29,    30
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule whose
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
       90,   101,   180,   241,    94,   184,    16,    69,   242,   102,
@@ -1018,8 +1021,8 @@
       -1,    -1,    55,    -1,    -1,    58
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+   state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     0,    57,    58,    59,    60,    61,    62,    63,    64,
@@ -1058,7 +1061,7 @@
      105,    42,    49,   102
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
 static const yytype_uint8 yyr1[] =
 {
        0,    65,    66,    66,    66,    67,    68,    68,    68,    69,
@@ -1082,7 +1085,7 @@
      133,   134,   135,   135,   136
 };
 
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     1,     1,     7,     1,     1,     1,     2,
@@ -1115,6 +1118,7 @@
 #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab
 #define YYERROR         goto yyerrorlab
+#define YYNOMEM         goto yyexhaustedlab
 
 
 #define YYRECOVERING()  (!!yyerrstatus)
@@ -1155,10 +1159,7 @@
     YYFPRINTF Args;                             \
 } while (0)
 
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+
 
 
 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
@@ -1182,16 +1183,12 @@
                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, struct parser_param *param)
 {
   FILE *yyoutput = yyo;
-  YYUSE (yyoutput);
-  YYUSE (param);
+  YY_USE (yyoutput);
+  YY_USE (param);
   if (!yyvaluep)
     return;
-# ifdef YYPRINT
-  if (yykind < YYNTOKENS)
-    YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
-  YYUSE (yykind);
+  YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
 }
 
@@ -1305,8 +1302,8 @@
 yydestruct (const char *yymsg,
             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, struct parser_param *param)
 {
-  YYUSE (yyvaluep);
-  YYUSE (param);
+  YY_USE (yyvaluep);
+  YY_USE (param);
   if (!yymsg)
     yymsg = "Deleting";
   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
@@ -1317,247 +1314,247 @@
     case YYSYMBOL_STRING: /* STRING  */
 #line 238 "../src/xkbcomp/parser.y"
             { free(((*yyvaluep).str)); }
-#line 1321 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1318 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_IDENT: /* IDENT  */
 #line 238 "../src/xkbcomp/parser.y"
             { free(((*yyvaluep).str)); }
-#line 1327 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1324 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_XkbFile: /* XkbFile  */
 #line 236 "../src/xkbcomp/parser.y"
             { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); }
-#line 1333 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1330 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_XkbCompositeMap: /* XkbCompositeMap  */
 #line 236 "../src/xkbcomp/parser.y"
             { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); }
-#line 1339 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1336 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_XkbMapConfigList: /* XkbMapConfigList  */
 #line 237 "../src/xkbcomp/parser.y"
             { FreeXkbFile(((*yyvaluep).fileList).head); }
-#line 1345 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1342 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_XkbMapConfig: /* XkbMapConfig  */
 #line 236 "../src/xkbcomp/parser.y"
             { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); }
-#line 1351 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1348 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_DeclList: /* DeclList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).anyList).head); }
-#line 1357 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1354 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Decl: /* Decl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).any)); }
-#line 1363 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1360 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_VarDecl: /* VarDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).var)); }
-#line 1369 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1366 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_KeyNameDecl: /* KeyNameDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).keyCode)); }
-#line 1375 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1372 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_KeyAliasDecl: /* KeyAliasDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).keyAlias)); }
-#line 1381 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1378 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_VModDecl: /* VModDecl  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).vmodList).head); }
-#line 1387 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1384 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_VModDefList: /* VModDefList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).vmodList).head); }
-#line 1393 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1390 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_VModDef: /* VModDef  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).vmod)); }
-#line 1399 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1396 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_InterpretDecl: /* InterpretDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).interp)); }
-#line 1405 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1402 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_InterpretMatch: /* InterpretMatch  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).interp)); }
-#line 1411 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1408 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_VarDeclList: /* VarDeclList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).varList).head); }
-#line 1417 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1414 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_KeyTypeDecl: /* KeyTypeDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).keyType)); }
-#line 1423 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1420 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_SymbolsDecl: /* SymbolsDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).syms)); }
-#line 1429 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1426 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_SymbolsBody: /* SymbolsBody  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).varList).head); }
-#line 1435 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1432 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_SymbolsVarDecl: /* SymbolsVarDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).var)); }
-#line 1441 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1438 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_ArrayInit: /* ArrayInit  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1447 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1444 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_GroupCompatDecl: /* GroupCompatDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).groupCompat)); }
-#line 1453 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1450 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_ModMapDecl: /* ModMapDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).modMask)); }
-#line 1459 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1456 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_LedMapDecl: /* LedMapDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).ledMap)); }
-#line 1465 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1462 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_LedNameDecl: /* LedNameDecl  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).ledName)); }
-#line 1471 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1468 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_CoordList: /* CoordList  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1477 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1474 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Coord: /* Coord  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1483 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1480 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_OptExprList: /* OptExprList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).exprList).head); }
-#line 1489 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1486 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_ExprList: /* ExprList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).exprList).head); }
-#line 1495 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1492 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Expr: /* Expr  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1501 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1498 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Term: /* Term  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1507 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1504 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_ActionList: /* ActionList  */
 #line 232 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).exprList).head); }
-#line 1513 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1510 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Action: /* Action  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1519 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1516 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Lhs: /* Lhs  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1525 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1522 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_Terminal: /* Terminal  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1531 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1528 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_OptKeySymList: /* OptKeySymList  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1537 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1534 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_KeySymList: /* KeySymList  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1543 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1540 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_KeySyms: /* KeySyms  */
 #line 229 "../src/xkbcomp/parser.y"
             { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); }
-#line 1549 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1546 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_OptMapName: /* OptMapName  */
 #line 238 "../src/xkbcomp/parser.y"
             { free(((*yyvaluep).str)); }
-#line 1555 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1552 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
     case YYSYMBOL_MapName: /* MapName  */
 #line 238 "../src/xkbcomp/parser.y"
             { free(((*yyvaluep).str)); }
-#line 1561 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1558 "libxkbcommon.so.0.0.0.p/parser.c"
         break;
 
       default:
@@ -1631,6 +1628,7 @@
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yychar = YYEMPTY; /* Cause a token to be read.  */
+
   goto yysetstate;
 
 
@@ -1656,7 +1654,7 @@
 
   if (yyss + yystacksize - 1 <= yyssp)
 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    goto yyexhaustedlab;
+    YYNOMEM;
 #else
     {
       /* Get the current used size of the three stacks, in elements.  */
@@ -1684,7 +1682,7 @@
 # else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+        YYNOMEM;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
         yystacksize = YYMAXDEPTH;
@@ -1695,7 +1693,7 @@
           YY_CAST (union yyalloc *,
                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
         if (! yyptr)
-          goto yyexhaustedlab;
+          YYNOMEM;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
@@ -1717,6 +1715,7 @@
     }
 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
+
   if (yystate == YYFINAL)
     YYACCEPT;
 
@@ -1831,55 +1830,55 @@
   case 2: /* XkbFile: XkbCompositeMap  */
 #line 255 "../src/xkbcomp/parser.y"
                         { (yyval.file) = param->rtrn = (yyvsp[0].file); param->more_maps = !!param->rtrn; }
-#line 1835 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1834 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 3: /* XkbFile: XkbMapConfig  */
 #line 257 "../src/xkbcomp/parser.y"
                         { (yyval.file) = param->rtrn = (yyvsp[0].file); param->more_maps = !!param->rtrn; YYACCEPT; }
-#line 1841 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1840 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 4: /* XkbFile: END_OF_FILE  */
 #line 259 "../src/xkbcomp/parser.y"
                         { (yyval.file) = param->rtrn = NULL; param->more_maps = false; }
-#line 1847 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1846 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 5: /* XkbCompositeMap: OptFlags XkbCompositeType OptMapName OBRACE XkbMapConfigList CBRACE SEMI  */
 #line 265 "../src/xkbcomp/parser.y"
                         { (yyval.file) = XkbFileCreate((yyvsp[-5].file_type), (yyvsp[-4].str), (ParseCommon *) (yyvsp[-2].fileList).head, (yyvsp[-6].mapFlags)); }
-#line 1853 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1852 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 6: /* XkbCompositeType: XKB_KEYMAP  */
 #line 268 "../src/xkbcomp/parser.y"
                                         { (yyval.file_type) = FILE_TYPE_KEYMAP; }
-#line 1859 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1858 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 7: /* XkbCompositeType: XKB_SEMANTICS  */
 #line 269 "../src/xkbcomp/parser.y"
                                         { (yyval.file_type) = FILE_TYPE_KEYMAP; }
-#line 1865 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1864 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 8: /* XkbCompositeType: XKB_LAYOUT  */
 #line 270 "../src/xkbcomp/parser.y"
                                         { (yyval.file_type) = FILE_TYPE_KEYMAP; }
-#line 1871 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1870 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 9: /* XkbMapConfigList: XkbMapConfigList XkbMapConfig  */
 #line 274 "../src/xkbcomp/parser.y"
                         { (yyval.fileList).head = (yyvsp[-1].fileList).head; (yyval.fileList).last->common.next = &(yyvsp[0].file)->common; (yyval.fileList).last = (yyvsp[0].file); }
-#line 1877 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1876 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 10: /* XkbMapConfigList: XkbMapConfig  */
 #line 276 "../src/xkbcomp/parser.y"
                         { (yyval.fileList).head = (yyval.fileList).last = (yyvsp[0].file); }
-#line 1883 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1882 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 11: /* XkbMapConfig: OptFlags FileType OptMapName OBRACE DeclList CBRACE SEMI  */
@@ -1887,109 +1886,109 @@
                         {
                             (yyval.file) = XkbFileCreate((yyvsp[-5].file_type), (yyvsp[-4].str), (yyvsp[-2].anyList).head, (yyvsp[-6].mapFlags));
                         }
-#line 1891 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1890 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 12: /* FileType: XKB_KEYCODES  */
 #line 287 "../src/xkbcomp/parser.y"
                                                 { (yyval.file_type) = FILE_TYPE_KEYCODES; }
-#line 1897 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1896 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 13: /* FileType: XKB_TYPES  */
 #line 288 "../src/xkbcomp/parser.y"
                                                 { (yyval.file_type) = FILE_TYPE_TYPES; }
-#line 1903 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1902 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 14: /* FileType: XKB_COMPATMAP  */
 #line 289 "../src/xkbcomp/parser.y"
                                                 { (yyval.file_type) = FILE_TYPE_COMPAT; }
-#line 1909 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1908 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 15: /* FileType: XKB_SYMBOLS  */
 #line 290 "../src/xkbcomp/parser.y"
                                                 { (yyval.file_type) = FILE_TYPE_SYMBOLS; }
-#line 1915 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1914 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 16: /* FileType: XKB_GEOMETRY  */
 #line 291 "../src/xkbcomp/parser.y"
                                                 { (yyval.file_type) = FILE_TYPE_GEOMETRY; }
-#line 1921 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1920 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 17: /* OptFlags: Flags  */
 #line 294 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = (yyvsp[0].mapFlags); }
-#line 1927 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1926 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 18: /* OptFlags: %empty  */
 #line 295 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = 0; }
-#line 1933 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1932 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 19: /* Flags: Flags Flag  */
 #line 298 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = ((yyvsp[-1].mapFlags) | (yyvsp[0].mapFlags)); }
-#line 1939 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1938 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 20: /* Flags: Flag  */
 #line 299 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = (yyvsp[0].mapFlags); }
-#line 1945 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1944 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 21: /* Flag: PARTIAL  */
 #line 302 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_IS_PARTIAL; }
-#line 1951 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1950 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 22: /* Flag: DEFAULT  */
 #line 303 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_IS_DEFAULT; }
-#line 1957 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1956 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 23: /* Flag: HIDDEN  */
 #line 304 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_IS_HIDDEN; }
-#line 1963 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1962 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 24: /* Flag: ALPHANUMERIC_KEYS  */
 #line 305 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_HAS_ALPHANUMERIC; }
-#line 1969 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1968 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 25: /* Flag: MODIFIER_KEYS  */
 #line 306 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_HAS_MODIFIER; }
-#line 1975 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1974 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 26: /* Flag: KEYPAD_KEYS  */
 #line 307 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_HAS_KEYPAD; }
-#line 1981 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1980 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 27: /* Flag: FUNCTION_KEYS  */
 #line 308 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_HAS_FN; }
-#line 1987 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1986 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 28: /* Flag: ALTERNATE_GROUP  */
 #line 309 "../src/xkbcomp/parser.y"
                                                 { (yyval.mapFlags) = MAP_IS_ALTGR; }
-#line 1993 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 1992 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 29: /* DeclList: DeclList Decl  */
@@ -2003,7 +2002,7 @@
                                 }
                             }
                         }
-#line 2007 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2006 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 30: /* DeclList: DeclList OptMergeMode VModDecl  */
@@ -2017,13 +2016,13 @@
                                 (yyval.anyList).head = &(yyvsp[0].vmodList).head->common; (yyval.anyList).last = &(yyvsp[0].vmodList).last->common;
                             }
                         }
-#line 2021 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2020 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 31: /* DeclList: %empty  */
 #line 337 "../src/xkbcomp/parser.y"
                         { (yyval.anyList).head = (yyval.anyList).last = NULL; }
-#line 2027 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2026 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 32: /* Decl: OptMergeMode VarDecl  */
@@ -2032,7 +2031,7 @@
                             (yyvsp[0].var)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].var);
                         }
-#line 2036 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2035 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 33: /* Decl: OptMergeMode InterpretDecl  */
@@ -2041,7 +2040,7 @@
                             (yyvsp[0].interp)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].interp);
                         }
-#line 2045 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2044 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 34: /* Decl: OptMergeMode KeyNameDecl  */
@@ -2050,7 +2049,7 @@
                             (yyvsp[0].keyCode)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].keyCode);
                         }
-#line 2054 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2053 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 35: /* Decl: OptMergeMode KeyAliasDecl  */
@@ -2059,7 +2058,7 @@
                             (yyvsp[0].keyAlias)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].keyAlias);
                         }
-#line 2063 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2062 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 36: /* Decl: OptMergeMode KeyTypeDecl  */
@@ -2068,7 +2067,7 @@
                             (yyvsp[0].keyType)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].keyType);
                         }
-#line 2072 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2071 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 37: /* Decl: OptMergeMode SymbolsDecl  */
@@ -2077,7 +2076,7 @@
                             (yyvsp[0].syms)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].syms);
                         }
-#line 2081 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2080 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 38: /* Decl: OptMergeMode ModMapDecl  */
@@ -2086,7 +2085,7 @@
                             (yyvsp[0].modMask)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].modMask);
                         }
-#line 2090 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2089 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 39: /* Decl: OptMergeMode GroupCompatDecl  */
@@ -2095,7 +2094,7 @@
                             (yyvsp[0].groupCompat)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].groupCompat);
                         }
-#line 2099 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2098 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 40: /* Decl: OptMergeMode LedMapDecl  */
@@ -2104,7 +2103,7 @@
                             (yyvsp[0].ledMap)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].ledMap);
                         }
-#line 2108 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2107 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 41: /* Decl: OptMergeMode LedNameDecl  */
@@ -2113,25 +2112,25 @@
                             (yyvsp[0].ledName)->merge = (yyvsp[-1].merge);
                             (yyval.any) = (ParseCommon *) (yyvsp[0].ledName);
                         }
-#line 2117 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2116 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 42: /* Decl: OptMergeMode ShapeDecl  */
 #line 391 "../src/xkbcomp/parser.y"
                                                         { (yyval.any) = NULL; }
-#line 2123 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2122 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 43: /* Decl: OptMergeMode SectionDecl  */
 #line 392 "../src/xkbcomp/parser.y"
                                                         { (yyval.any) = NULL; }
-#line 2129 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2128 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 44: /* Decl: OptMergeMode DoodadDecl  */
 #line 393 "../src/xkbcomp/parser.y"
                                                         { (yyval.any) = NULL; }
-#line 2135 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2134 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 45: /* Decl: MergeMode STRING  */
@@ -2140,523 +2139,523 @@
                             (yyval.any) = (ParseCommon *) IncludeCreate(param->ctx, (yyvsp[0].str), (yyvsp[-1].merge));
                             free((yyvsp[0].str));
                         }
-#line 2144 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2143 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 46: /* VarDecl: Lhs EQUALS Expr SEMI  */
 #line 402 "../src/xkbcomp/parser.y"
                         { (yyval.var) = VarCreate((yyvsp[-3].expr), (yyvsp[-1].expr)); }
-#line 2150 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2149 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 47: /* VarDecl: Ident SEMI  */
 #line 404 "../src/xkbcomp/parser.y"
                         { (yyval.var) = BoolVarCreate((yyvsp[-1].atom), true); }
-#line 2156 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2155 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 48: /* VarDecl: EXCLAM Ident SEMI  */
 #line 406 "../src/xkbcomp/parser.y"
                         { (yyval.var) = BoolVarCreate((yyvsp[-1].atom), false); }
-#line 2162 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2161 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 49: /* KeyNameDecl: KEYNAME EQUALS KeyCode SEMI  */
 #line 410 "../src/xkbcomp/parser.y"
                         { (yyval.keyCode) = KeycodeCreate((yyvsp[-3].atom), (yyvsp[-1].num)); }
-#line 2168 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2167 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 50: /* KeyAliasDecl: ALIAS KEYNAME EQUALS KEYNAME SEMI  */
 #line 414 "../src/xkbcomp/parser.y"
                         { (yyval.keyAlias) = KeyAliasCreate((yyvsp[-3].atom), (yyvsp[-1].atom)); }
-#line 2174 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2173 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 51: /* VModDecl: VIRTUAL_MODS VModDefList SEMI  */
 #line 418 "../src/xkbcomp/parser.y"
                         { (yyval.vmodList) = (yyvsp[-1].vmodList); }
-#line 2180 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2179 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 52: /* VModDefList: VModDefList COMMA VModDef  */
 #line 422 "../src/xkbcomp/parser.y"
                         { (yyval.vmodList).head = (yyvsp[-2].vmodList).head; (yyval.vmodList).last->common.next = &(yyvsp[0].vmod)->common; (yyval.vmodList).last = (yyvsp[0].vmod); }
-#line 2186 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2185 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 53: /* VModDefList: VModDef  */
 #line 424 "../src/xkbcomp/parser.y"
                         { (yyval.vmodList).head = (yyval.vmodList).last = (yyvsp[0].vmod); }
-#line 2192 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2191 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 54: /* VModDef: Ident  */
 #line 428 "../src/xkbcomp/parser.y"
                         { (yyval.vmod) = VModCreate((yyvsp[0].atom), NULL); }
-#line 2198 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2197 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 55: /* VModDef: Ident EQUALS Expr  */
 #line 430 "../src/xkbcomp/parser.y"
                         { (yyval.vmod) = VModCreate((yyvsp[-2].atom), (yyvsp[0].expr)); }
-#line 2204 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2203 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 56: /* InterpretDecl: INTERPRET InterpretMatch OBRACE VarDeclList CBRACE SEMI  */
 #line 436 "../src/xkbcomp/parser.y"
                         { (yyvsp[-4].interp)->def = (yyvsp[-2].varList).head; (yyval.interp) = (yyvsp[-4].interp); }
-#line 2210 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2209 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 57: /* InterpretMatch: KeySym PLUS Expr  */
 #line 440 "../src/xkbcomp/parser.y"
                         { (yyval.interp) = InterpCreate((yyvsp[-2].keysym), (yyvsp[0].expr)); }
-#line 2216 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2215 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 58: /* InterpretMatch: KeySym  */
 #line 442 "../src/xkbcomp/parser.y"
                         { (yyval.interp) = InterpCreate((yyvsp[0].keysym), NULL); }
-#line 2222 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2221 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 59: /* VarDeclList: VarDeclList VarDecl  */
 #line 446 "../src/xkbcomp/parser.y"
                         { (yyval.varList).head = (yyvsp[-1].varList).head; (yyval.varList).last->common.next = &(yyvsp[0].var)->common; (yyval.varList).last = (yyvsp[0].var); }
-#line 2228 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2227 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 60: /* VarDeclList: VarDecl  */
 #line 448 "../src/xkbcomp/parser.y"
                         { (yyval.varList).head = (yyval.varList).last = (yyvsp[0].var); }
-#line 2234 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2233 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 61: /* KeyTypeDecl: TYPE String OBRACE VarDeclList CBRACE SEMI  */
 #line 454 "../src/xkbcomp/parser.y"
                         { (yyval.keyType) = KeyTypeCreate((yyvsp[-4].atom), (yyvsp[-2].varList).head); }
-#line 2240 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2239 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 62: /* SymbolsDecl: KEY KEYNAME OBRACE SymbolsBody CBRACE SEMI  */
 #line 460 "../src/xkbcomp/parser.y"
                         { (yyval.syms) = SymbolsCreate((yyvsp[-4].atom), (yyvsp[-2].varList).head); }
-#line 2246 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2245 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 63: /* SymbolsBody: SymbolsBody COMMA SymbolsVarDecl  */
 #line 464 "../src/xkbcomp/parser.y"
                         { (yyval.varList).head = (yyvsp[-2].varList).head; (yyval.varList).last->common.next = &(yyvsp[0].var)->common; (yyval.varList).last = (yyvsp[0].var); }
-#line 2252 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2251 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 64: /* SymbolsBody: SymbolsVarDecl  */
 #line 466 "../src/xkbcomp/parser.y"
                         { (yyval.varList).head = (yyval.varList).last = (yyvsp[0].var); }
-#line 2258 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2257 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 65: /* SymbolsBody: %empty  */
 #line 467 "../src/xkbcomp/parser.y"
                         { (yyval.varList).head = (yyval.varList).last = NULL; }
-#line 2264 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2263 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 66: /* SymbolsVarDecl: Lhs EQUALS Expr  */
 #line 470 "../src/xkbcomp/parser.y"
                                                 { (yyval.var) = VarCreate((yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2270 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2269 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 67: /* SymbolsVarDecl: Lhs EQUALS ArrayInit  */
 #line 471 "../src/xkbcomp/parser.y"
                                                 { (yyval.var) = VarCreate((yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2276 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2275 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 68: /* SymbolsVarDecl: Ident  */
 #line 472 "../src/xkbcomp/parser.y"
                                                 { (yyval.var) = BoolVarCreate((yyvsp[0].atom), true); }
-#line 2282 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2281 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 69: /* SymbolsVarDecl: EXCLAM Ident  */
 #line 473 "../src/xkbcomp/parser.y"
                                                 { (yyval.var) = BoolVarCreate((yyvsp[0].atom), false); }
-#line 2288 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2287 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 70: /* SymbolsVarDecl: ArrayInit  */
 #line 474 "../src/xkbcomp/parser.y"
                                                 { (yyval.var) = VarCreate(NULL, (yyvsp[0].expr)); }
-#line 2294 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2293 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 71: /* ArrayInit: OBRACKET OptKeySymList CBRACKET  */
 #line 478 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[-1].expr); }
-#line 2300 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2299 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 72: /* ArrayInit: OBRACKET ActionList CBRACKET  */
 #line 480 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateActionList((yyvsp[-1].exprList).head); }
-#line 2306 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2305 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 73: /* GroupCompatDecl: GROUP Integer EQUALS Expr SEMI  */
 #line 484 "../src/xkbcomp/parser.y"
                         { (yyval.groupCompat) = GroupCompatCreate((yyvsp[-3].num), (yyvsp[-1].expr)); }
-#line 2312 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2311 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 74: /* ModMapDecl: MODIFIER_MAP Ident OBRACE ExprList CBRACE SEMI  */
 #line 488 "../src/xkbcomp/parser.y"
                         { (yyval.modMask) = ModMapCreate((yyvsp[-4].atom), (yyvsp[-2].exprList).head); }
-#line 2318 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2317 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 75: /* LedMapDecl: INDICATOR String OBRACE VarDeclList CBRACE SEMI  */
 #line 492 "../src/xkbcomp/parser.y"
                         { (yyval.ledMap) = LedMapCreate((yyvsp[-4].atom), (yyvsp[-2].varList).head); }
-#line 2324 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2323 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 76: /* LedNameDecl: INDICATOR Integer EQUALS Expr SEMI  */
 #line 496 "../src/xkbcomp/parser.y"
                         { (yyval.ledName) = LedNameCreate((yyvsp[-3].num), (yyvsp[-1].expr), false); }
-#line 2330 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2329 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 77: /* LedNameDecl: VIRTUAL INDICATOR Integer EQUALS Expr SEMI  */
 #line 498 "../src/xkbcomp/parser.y"
                         { (yyval.ledName) = LedNameCreate((yyvsp[-3].num), (yyvsp[-1].expr), true); }
-#line 2336 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2335 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 78: /* ShapeDecl: SHAPE String OBRACE OutlineList CBRACE SEMI  */
 #line 502 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2342 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2341 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 79: /* ShapeDecl: SHAPE String OBRACE CoordList CBRACE SEMI  */
 #line 504 "../src/xkbcomp/parser.y"
                         { (void) (yyvsp[-2].expr); (yyval.geom) = NULL; }
-#line 2348 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2347 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 80: /* SectionDecl: SECTION String OBRACE SectionBody CBRACE SEMI  */
 #line 508 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2354 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2353 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 81: /* SectionBody: SectionBody SectionBodyItem  */
 #line 511 "../src/xkbcomp/parser.y"
                                                         { (yyval.geom) = NULL;}
-#line 2360 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2359 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 82: /* SectionBody: SectionBodyItem  */
 #line 512 "../src/xkbcomp/parser.y"
                                                         { (yyval.geom) = NULL; }
-#line 2366 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2365 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 83: /* SectionBodyItem: ROW OBRACE RowBody CBRACE SEMI  */
 #line 516 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2372 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2371 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 84: /* SectionBodyItem: VarDecl  */
 #line 518 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[0].var)); (yyval.geom) = NULL; }
-#line 2378 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2377 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 85: /* SectionBodyItem: DoodadDecl  */
 #line 520 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2384 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2383 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 86: /* SectionBodyItem: LedMapDecl  */
 #line 522 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[0].ledMap)); (yyval.geom) = NULL; }
-#line 2390 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2389 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 87: /* SectionBodyItem: OverlayDecl  */
 #line 524 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2396 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2395 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 88: /* RowBody: RowBody RowBodyItem  */
 #line 527 "../src/xkbcomp/parser.y"
                                                 { (yyval.geom) = NULL;}
-#line 2402 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2401 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 89: /* RowBody: RowBodyItem  */
 #line 528 "../src/xkbcomp/parser.y"
                                                 { (yyval.geom) = NULL; }
-#line 2408 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2407 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 90: /* RowBodyItem: KEYS OBRACE Keys CBRACE SEMI  */
 #line 531 "../src/xkbcomp/parser.y"
                                                      { (yyval.geom) = NULL; }
-#line 2414 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2413 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 91: /* RowBodyItem: VarDecl  */
 #line 533 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[0].var)); (yyval.geom) = NULL; }
-#line 2420 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2419 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 92: /* Keys: Keys COMMA Key  */
 #line 536 "../src/xkbcomp/parser.y"
                                                 { (yyval.geom) = NULL; }
-#line 2426 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2425 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 93: /* Keys: Key  */
 #line 537 "../src/xkbcomp/parser.y"
                                                 { (yyval.geom) = NULL; }
-#line 2432 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2431 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 94: /* Key: KEYNAME  */
 #line 541 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2438 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2437 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 95: /* Key: OBRACE ExprList CBRACE  */
 #line 543 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[-1].exprList).head); (yyval.geom) = NULL; }
-#line 2444 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2443 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 96: /* OverlayDecl: OVERLAY String OBRACE OverlayKeyList CBRACE SEMI  */
 #line 547 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2450 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2449 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 97: /* OverlayKeyList: OverlayKeyList COMMA OverlayKey  */
 #line 550 "../src/xkbcomp/parser.y"
                                                         { (yyval.geom) = NULL; }
-#line 2456 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2455 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 98: /* OverlayKeyList: OverlayKey  */
 #line 551 "../src/xkbcomp/parser.y"
                                                         { (yyval.geom) = NULL; }
-#line 2462 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2461 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 99: /* OverlayKey: KEYNAME EQUALS KEYNAME  */
 #line 554 "../src/xkbcomp/parser.y"
                                                         { (yyval.geom) = NULL; }
-#line 2468 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2467 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 100: /* OutlineList: OutlineList COMMA OutlineInList  */
 #line 558 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL;}
-#line 2474 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2473 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 101: /* OutlineList: OutlineInList  */
 #line 560 "../src/xkbcomp/parser.y"
                         { (yyval.geom) = NULL; }
-#line 2480 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2479 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 102: /* OutlineInList: OBRACE CoordList CBRACE  */
 #line 564 "../src/xkbcomp/parser.y"
                         { (void) (yyvsp[-1].expr); (yyval.geom) = NULL; }
-#line 2486 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2485 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 103: /* OutlineInList: Ident EQUALS OBRACE CoordList CBRACE  */
 #line 566 "../src/xkbcomp/parser.y"
                         { (void) (yyvsp[-1].expr); (yyval.geom) = NULL; }
-#line 2492 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2491 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 104: /* OutlineInList: Ident EQUALS Expr  */
 #line 568 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[0].expr)); (yyval.geom) = NULL; }
-#line 2498 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2497 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 105: /* CoordList: CoordList COMMA Coord  */
 #line 572 "../src/xkbcomp/parser.y"
                         { (void) (yyvsp[-2].expr); (void) (yyvsp[0].expr); (yyval.expr) = NULL; }
-#line 2504 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2503 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 106: /* CoordList: Coord  */
 #line 574 "../src/xkbcomp/parser.y"
                         { (void) (yyvsp[0].expr); (yyval.expr) = NULL; }
-#line 2510 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2509 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 107: /* Coord: OBRACKET SignedNumber COMMA SignedNumber CBRACKET  */
 #line 578 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = NULL; }
-#line 2516 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2515 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 108: /* DoodadDecl: DoodadType String OBRACE VarDeclList CBRACE SEMI  */
 #line 582 "../src/xkbcomp/parser.y"
                         { FreeStmt((ParseCommon *) (yyvsp[-2].varList).head); (yyval.geom) = NULL; }
-#line 2522 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2521 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 109: /* DoodadType: TEXT  */
 #line 585 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = 0; }
-#line 2528 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2527 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 110: /* DoodadType: OUTLINE  */
 #line 586 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = 0; }
-#line 2534 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2533 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 111: /* DoodadType: SOLID  */
 #line 587 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = 0; }
-#line 2540 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2539 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 112: /* DoodadType: LOGO  */
 #line 588 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = 0; }
-#line 2546 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2545 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 113: /* FieldSpec: Ident  */
 #line 591 "../src/xkbcomp/parser.y"
                                 { (yyval.atom) = (yyvsp[0].atom); }
-#line 2552 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2551 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 114: /* FieldSpec: Element  */
 #line 592 "../src/xkbcomp/parser.y"
                                 { (yyval.atom) = (yyvsp[0].atom); }
-#line 2558 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2557 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 115: /* Element: ACTION_TOK  */
 #line 596 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "action"); }
-#line 2564 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2563 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 116: /* Element: INTERPRET  */
 #line 598 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "interpret"); }
-#line 2570 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2569 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 117: /* Element: TYPE  */
 #line 600 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "type"); }
-#line 2576 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2575 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 118: /* Element: KEY  */
 #line 602 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "key"); }
-#line 2582 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2581 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 119: /* Element: GROUP  */
 #line 604 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "group"); }
-#line 2588 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2587 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 120: /* Element: MODIFIER_MAP  */
 #line 606 "../src/xkbcomp/parser.y"
                         {(yyval.atom) = xkb_atom_intern_literal(param->ctx, "modifier_map");}
-#line 2594 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2593 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 121: /* Element: INDICATOR  */
 #line 608 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "indicator"); }
-#line 2600 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2599 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 122: /* Element: SHAPE  */
 #line 610 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "shape"); }
-#line 2606 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2605 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 123: /* Element: ROW  */
 #line 612 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "row"); }
-#line 2612 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2611 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 124: /* Element: SECTION  */
 #line 614 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "section"); }
-#line 2618 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2617 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 125: /* Element: TEXT  */
 #line 616 "../src/xkbcomp/parser.y"
                         { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "text"); }
-#line 2624 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2623 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 126: /* OptMergeMode: MergeMode  */
 #line 619 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = (yyvsp[0].merge); }
-#line 2630 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2629 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 127: /* OptMergeMode: %empty  */
 #line 620 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = MERGE_DEFAULT; }
-#line 2636 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2635 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 128: /* MergeMode: INCLUDE  */
 #line 623 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = MERGE_DEFAULT; }
-#line 2642 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2641 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 129: /* MergeMode: AUGMENT  */
 #line 624 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = MERGE_AUGMENT; }
-#line 2648 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2647 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 130: /* MergeMode: OVERRIDE  */
 #line 625 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = MERGE_OVERRIDE; }
-#line 2654 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2653 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 131: /* MergeMode: REPLACE  */
 #line 626 "../src/xkbcomp/parser.y"
                                         { (yyval.merge) = MERGE_REPLACE; }
-#line 2660 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2659 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 132: /* MergeMode: ALTERNATE  */
@@ -2668,223 +2667,223 @@
                      */
                     (yyval.merge) = MERGE_DEFAULT;
                 }
-#line 2672 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2671 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 133: /* OptExprList: ExprList  */
 #line 637 "../src/xkbcomp/parser.y"
                                         { (yyval.exprList) = (yyvsp[0].exprList); }
-#line 2678 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2677 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 134: /* OptExprList: %empty  */
 #line 638 "../src/xkbcomp/parser.y"
                                         { (yyval.exprList).head = (yyval.exprList).last = NULL; }
-#line 2684 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2683 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 135: /* ExprList: ExprList COMMA Expr  */
 #line 642 "../src/xkbcomp/parser.y"
                         { (yyval.exprList).head = (yyvsp[-2].exprList).head; (yyval.exprList).last->common.next = &(yyvsp[0].expr)->common; (yyval.exprList).last = (yyvsp[0].expr); }
-#line 2690 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2689 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 136: /* ExprList: Expr  */
 #line 644 "../src/xkbcomp/parser.y"
                         { (yyval.exprList).head = (yyval.exprList).last = (yyvsp[0].expr); }
-#line 2696 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2695 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 137: /* Expr: Expr DIVIDE Expr  */
 #line 648 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateBinary(EXPR_DIVIDE, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2702 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2701 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 138: /* Expr: Expr PLUS Expr  */
 #line 650 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateBinary(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2708 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2707 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 139: /* Expr: Expr MINUS Expr  */
 #line 652 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateBinary(EXPR_SUBTRACT, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2714 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2713 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 140: /* Expr: Expr TIMES Expr  */
 #line 654 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateBinary(EXPR_MULTIPLY, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2720 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2719 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 141: /* Expr: Lhs EQUALS Expr  */
 #line 656 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateBinary(EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2726 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2725 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 142: /* Expr: Term  */
 #line 658 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[0].expr); }
-#line 2732 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2731 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 143: /* Term: MINUS Term  */
 #line 662 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateUnary(EXPR_NEGATE, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); }
-#line 2738 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2737 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 144: /* Term: PLUS Term  */
 #line 664 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateUnary(EXPR_UNARY_PLUS, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); }
-#line 2744 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2743 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 145: /* Term: EXCLAM Term  */
 #line 666 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateUnary(EXPR_NOT, EXPR_TYPE_BOOLEAN, (yyvsp[0].expr)); }
-#line 2750 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2749 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 146: /* Term: INVERT Term  */
 #line 668 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateUnary(EXPR_INVERT, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); }
-#line 2756 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2755 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 147: /* Term: Lhs  */
 #line 670 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[0].expr);  }
-#line 2762 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2761 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 148: /* Term: FieldSpec OPAREN OptExprList CPAREN  */
 #line 672 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateAction((yyvsp[-3].atom), (yyvsp[-1].exprList).head); }
-#line 2768 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2767 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 149: /* Term: Terminal  */
 #line 674 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[0].expr);  }
-#line 2774 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2773 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 150: /* Term: OPAREN Expr CPAREN  */
 #line 676 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[-1].expr);  }
-#line 2780 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2779 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 151: /* ActionList: ActionList COMMA Action  */
 #line 680 "../src/xkbcomp/parser.y"
                         { (yyval.exprList).head = (yyvsp[-2].exprList).head; (yyval.exprList).last->common.next = &(yyvsp[0].expr)->common; (yyval.exprList).last = (yyvsp[0].expr); }
-#line 2786 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2785 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 152: /* ActionList: Action  */
 #line 682 "../src/xkbcomp/parser.y"
                         { (yyval.exprList).head = (yyval.exprList).last = (yyvsp[0].expr); }
-#line 2792 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2791 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 153: /* Action: FieldSpec OPAREN OptExprList CPAREN  */
 #line 686 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateAction((yyvsp[-3].atom), (yyvsp[-1].exprList).head); }
-#line 2798 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2797 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 154: /* Lhs: FieldSpec  */
 #line 690 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateIdent((yyvsp[0].atom)); }
-#line 2804 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2803 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 155: /* Lhs: FieldSpec DOT FieldSpec  */
 #line 692 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateFieldRef((yyvsp[-2].atom), (yyvsp[0].atom)); }
-#line 2810 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2809 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 156: /* Lhs: FieldSpec OBRACKET Expr CBRACKET  */
 #line 694 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateArrayRef(XKB_ATOM_NONE, (yyvsp[-3].atom), (yyvsp[-1].expr)); }
-#line 2816 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2815 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 157: /* Lhs: FieldSpec DOT FieldSpec OBRACKET Expr CBRACKET  */
 #line 696 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateArrayRef((yyvsp[-5].atom), (yyvsp[-3].atom), (yyvsp[-1].expr)); }
-#line 2822 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2821 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 158: /* Terminal: String  */
 #line 700 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateString((yyvsp[0].atom)); }
-#line 2828 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2827 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 159: /* Terminal: Integer  */
 #line 702 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateInteger((yyvsp[0].num)); }
-#line 2834 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2833 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 160: /* Terminal: Float  */
 #line 704 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateFloat(/* Discard $1 */); }
-#line 2840 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2839 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 161: /* Terminal: KEYNAME  */
 #line 706 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateKeyName((yyvsp[0].atom)); }
-#line 2846 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2845 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 162: /* OptKeySymList: KeySymList  */
 #line 709 "../src/xkbcomp/parser.y"
                                         { (yyval.expr) = (yyvsp[0].expr); }
-#line 2852 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2851 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 163: /* OptKeySymList: %empty  */
 #line 710 "../src/xkbcomp/parser.y"
                                         { (yyval.expr) = NULL; }
-#line 2858 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2857 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 164: /* KeySymList: KeySymList COMMA KeySym  */
 #line 714 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprAppendKeysymList((yyvsp[-2].expr), (yyvsp[0].keysym)); }
-#line 2864 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2863 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 165: /* KeySymList: KeySymList COMMA KeySyms  */
 #line 716 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprAppendMultiKeysymList((yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 2870 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2869 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 166: /* KeySymList: KeySym  */
 #line 718 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateKeysymList((yyvsp[0].keysym)); }
-#line 2876 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2875 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 167: /* KeySymList: KeySyms  */
 #line 720 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = ExprCreateMultiKeysymList((yyvsp[0].expr)); }
-#line 2882 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2881 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 168: /* KeySyms: OBRACE KeySymList CBRACE  */
 #line 724 "../src/xkbcomp/parser.y"
                         { (yyval.expr) = (yyvsp[-1].expr); }
-#line 2888 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2887 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 169: /* KeySym: IDENT  */
@@ -2896,13 +2895,13 @@
                             }
                             free((yyvsp[0].str));
                         }
-#line 2900 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2899 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 170: /* KeySym: SECTION  */
 #line 735 "../src/xkbcomp/parser.y"
                                 { (yyval.keysym) = XKB_KEY_section; }
-#line 2906 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2905 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 171: /* KeySym: Integer  */
@@ -2924,89 +2923,89 @@
                                 }
                             }
                         }
-#line 2928 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2927 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 172: /* SignedNumber: MINUS Number  */
 #line 756 "../src/xkbcomp/parser.y"
                                         { (yyval.num) = -(yyvsp[0].num); }
-#line 2934 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2933 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 173: /* SignedNumber: Number  */
 #line 757 "../src/xkbcomp/parser.y"
                                         { (yyval.num) = (yyvsp[0].num); }
-#line 2940 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2939 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 174: /* Number: FLOAT  */
 #line 760 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = (yyvsp[0].num); }
-#line 2946 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2945 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 175: /* Number: INTEGER  */
 #line 761 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = (yyvsp[0].num); }
-#line 2952 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2951 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 176: /* Float: FLOAT  */
 #line 764 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = 0; }
-#line 2958 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2957 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 177: /* Integer: INTEGER  */
 #line 767 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = (yyvsp[0].num); }
-#line 2964 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2963 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 178: /* KeyCode: INTEGER  */
 #line 770 "../src/xkbcomp/parser.y"
                                 { (yyval.num) = (yyvsp[0].num); }
-#line 2970 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2969 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 179: /* Ident: IDENT  */
 #line 773 "../src/xkbcomp/parser.y"
                                 { (yyval.atom) = xkb_atom_intern(param->ctx, (yyvsp[0].str), strlen((yyvsp[0].str))); free((yyvsp[0].str)); }
-#line 2976 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2975 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 180: /* Ident: DEFAULT  */
 #line 774 "../src/xkbcomp/parser.y"
                                 { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "default"); }
-#line 2982 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2981 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 181: /* String: STRING  */
 #line 777 "../src/xkbcomp/parser.y"
                                 { (yyval.atom) = xkb_atom_intern(param->ctx, (yyvsp[0].str), strlen((yyvsp[0].str))); free((yyvsp[0].str)); }
-#line 2988 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2987 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 182: /* OptMapName: MapName  */
 #line 780 "../src/xkbcomp/parser.y"
                                 { (yyval.str) = (yyvsp[0].str); }
-#line 2994 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2993 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 183: /* OptMapName: %empty  */
 #line 781 "../src/xkbcomp/parser.y"
                                 { (yyval.str) = NULL; }
-#line 3000 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 2999 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
   case 184: /* MapName: STRING  */
 #line 784 "../src/xkbcomp/parser.y"
                                 { (yyval.str) = (yyvsp[0].str); }
-#line 3006 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 3005 "libxkbcommon.so.0.0.0.p/parser.c"
     break;
 
 
-#line 3010 "libxkbcommon.so.0.0.0.p/parser.c"
+#line 3009 "libxkbcommon.so.0.0.0.p/parser.c"
 
       default: break;
     }
@@ -3088,6 +3087,7 @@
      label yyerrorlab therefore never appears in user code.  */
   if (0)
     YYERROR;
+  ++yynerrs;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -3148,7 +3148,7 @@
 `-------------------------------------*/
 yyacceptlab:
   yyresult = 0;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
 /*-----------------------------------.
@@ -3156,24 +3156,22 @@
 `-----------------------------------*/
 yyabortlab:
   yyresult = 1;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
-#if !defined yyoverflow
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
+`-----------------------------------------------------------*/
 yyexhaustedlab:
   yyerror (param, YY_("memory exhausted"));
   yyresult = 2;
-  goto yyreturn;
-#endif
+  goto yyreturnlab;
 
 
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return.  |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return.  |
+`----------------------------------------------------------*/
+yyreturnlab:
   if (yychar != YYEMPTY)
     {
       /* Make sure we have latest lookahead translation.  See comments at
diff --git a/config/libxkbcommon.so.0.0.0.p/parser.h b/config/libxkbcommon.so.0.0.0.p/parser.h
index 3d9dcaf..dfa0954 100644
--- a/config/libxkbcommon.so.0.0.0.p/parser.h
+++ b/config/libxkbcommon.so.0.0.0.p/parser.h
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.7.2.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -16,7 +16,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -164,6 +164,8 @@
 
 
 
+
 int _xkbcommon_parse (struct parser_param *param);
 
+
 #endif /* !YY__XKBCOMMON_LIBXKBCOMMON_SO_0_0_0_P_PARSER_H_INCLUDED  */
diff --git a/doc/.gitignore b/doc/.gitignore
deleted file mode 100644
index 63b767d..0000000
--- a/doc/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-Doxyfile
-html/
diff --git a/doc/keymap-format-text-v1.md b/doc/keymap-format-text-v1.md
index eda6ebb..8726947 100644
--- a/doc/keymap-format-text-v1.md
+++ b/doc/keymap-format-text-v1.md
@@ -3,6 +3,12 @@
 This document describes the `XKB_KEYMAP_FORMAT_TEXT_V1` keymap format,
 as implemented by libxkbcommon.
 
+NOTE: This document is ever incomplete. Some additional resources are:
+
+- [Ivan Pascal's XKB documentation](https://web.archive.org/web/20190724015820/http://pascal.tsu.ru/en/xkb/)
+- [An Unreliable Guide to XKB Configuration](https://www.charvolant.org/doug/xkb/html/index.html)
+- [ArchWiki XKB page](https://wiki.archlinux.org/index.php/X_keyboard_extension)
+
 A keymap consists of a single top-level `xkb_keymap` block, underwhich
 are nested the following sections.
 
@@ -26,7 +32,7 @@
 `<WXYZ>` is always used to refer to a key by name.
 
 [The naming convention `<AE01>` just denotes the position of the key
-in the main alphanumric section of a standard QWERTY keyboard, with
+in the main alphanumeric section of a standard QWERTY keyboard, with
 the two letters specifying the row and the two digits specifying the
 column, from the bottom left.]
 
@@ -69,7 +75,7 @@
 
 ## The `xkb_types` section
 
-This section is the second to be processesed, after `xkb_keycodes`.
+This section is the second to be processed, after `xkb_keycodes`.
 However, it is completely independent and could have been the first to
 be processed (it does not refer to specific keys as specified in the
 `xkb_keycodes` section).
@@ -299,7 +305,7 @@
 If the given modifiers are in the required state (see below), the
 LED is lit.
 
-#### `whichModState` statment
+#### `whichModState` statement
 
     whichModState = Latched+Locked;
 
@@ -351,11 +357,109 @@
 
 ## The `xkb_symbols` section
 
-This section is the fourth to be processed, after `xkb_keycodes`,
-`xkb_types` and `xkb_compat`.
+NOTE: The documentation of this section is incomplete.
 
-TODO
+This section is the fourth to be processed, after `xkb_keycodes`, `xkb_types`
+and `xkb_compat`.
 
+Statements of the form:
+
+    xkb_symbols "basic" {
+        ...
+    }
+
+Declare a symbols map named `basic`. Statements inside the curly braces only
+affect the symbols map.
+
+A map can have various flags applied to it above the statement, separated by
+whitespace:
+
+    partial alphanumeric_keys
+    xkb_symbols "basic" {
+        ...
+    }
+
+The possible flags are:
+
+  * `partial` - Indicates that the map doesn't cover a complete keyboard.
+  * `default` - Marks the symbol map as the default map in the file when no
+    explicit map is specified. If no map is marked as a default, the first map
+    in the file is the default.
+  * `hidden` - Variant that can only be used internally
+  * `alphanumeric_keys` - Indicates that the map contains alphanumeric keys
+  * `modifier_keys` - Indicates that the map contains modifier keys
+  * `keypad_keys` - Indicates that the map contains keypad keys
+  * `function_keys` - Indicates that the map contains function keys
+  * `alternate_group` - Indicates that the map contains keys for an alternate
+    group
+
+If no `*_keys` flags are supplied, then the map is assumed to cover a complete
+keyboard.
+
+At present, except for `default`, none of the flags affect key processing in
+libxkbcommon, and only serve as metadata.
+
+### Name statements
+
+Statements of the form:
+
+    name[Group1] = "US/ASCII";
+    groupName[1] = "US/ASCII";
+
+Gives the name "US/ASCII" to the first group of symbols. Other groups can be
+named using a different group index (ex: `Group2`), and with a different name.
+A group must be named.
+
+`group` and `groupName` mean the same thing, and the `Group` in `Group1` is
+optional.
+
+### Include statements
+
+Statements of the form:
+
+    include "nokia_vndr/rx-51(nordic_base)
+
+Will include data from another `xkb_symbols` section, possibly located in
+another file. Here it would include the `xkb_symbols` section called
+`nordic_base`, from the file `rx-51` located in the `nokia_vndr` folder, itself
+located in an XKB include path.
+
+### Key statement
+
+Statements of the form:
+
+    key <AD01> { [ q, Q ] };
+
+Describes the mapping of a keycode `<AD01>` to a given group of symbols. The
+possible keycodes are the keycodes defined in the `xkb_keycodes` section.
+
+Symbols are named using the symbolic names from the
+`xkbcommon/xkbcommon-keysyms.h` file. A group of symbols is enclosed in brackets
+and separated by commas. Each element of the symbol arrays corresponds to a
+different modifier level. In this example, the symbol (keysym) `XKB_KEY_q` for
+level 1 and `XKB_KEY_Q` for level 2.
+
+#### Groups
+
+Each group represents a list of symbols mapped to a keycode:
+
+    name[Group1]= "US/ASCII";
+    name[Group2]= "Russian";
+    ...
+    key <AD01> { [ q, Q ],
+                 [ Cyrillic_shorti, Cyrillic_SHORTI ] };
+
+A long-form syntax can also be used:
+
+    key <AD01> {
+        symbols[Group1]= [ q, Q ],
+        symbols[Group2]= [ Cyrillic_shorti, Cyrillic_SHORTI ]
+    };
+
+Groups can also be omitted, but the brackets must be present. The following
+statement only defines the Group3 of a mapping:
+
+    key <AD01> { [], [], [ q, Q ] };
 
 ## Virtual modifier statements
 
diff --git a/doc/user-configuration.md b/doc/user-configuration.md
index 2146599..40f7f77 100644
--- a/doc/user-configuration.md
+++ b/doc/user-configuration.md
@@ -197,8 +197,10 @@
             <name>orange</name>
             <shortDescription>or</shortDescription>
             <description>Orange (Banana)</description>
-          </variant>
+          </configItem>
+        </variant>
       </variantList>
+    </layout>
   </layoutList>
   <optionList>
     <group allowMultipleSelection="true">
diff --git a/fuzz/.gitignore b/fuzz/.gitignore
deleted file mode 100644
index 413910a..0000000
--- a/fuzz/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-findings/
diff --git a/xkbcommon/xkbcommon-compat.h b/include/xkbcommon/xkbcommon-compat.h
similarity index 100%
rename from xkbcommon/xkbcommon-compat.h
rename to include/xkbcommon/xkbcommon-compat.h
diff --git a/xkbcommon/xkbcommon-compose.h b/include/xkbcommon/xkbcommon-compose.h
similarity index 100%
rename from xkbcommon/xkbcommon-compose.h
rename to include/xkbcommon/xkbcommon-compose.h
diff --git a/xkbcommon/xkbcommon-keysyms.h b/include/xkbcommon/xkbcommon-keysyms.h
similarity index 89%
rename from xkbcommon/xkbcommon-keysyms.h
rename to include/xkbcommon/xkbcommon-keysyms.h
index 540704e..7c75c29 100644
--- a/xkbcommon/xkbcommon-keysyms.h
+++ b/include/xkbcommon/xkbcommon-keysyms.h
@@ -93,8 +93,8 @@
  * Mnemonic names for keysyms are defined in this file with lines
  * that match one of these Perl regular expressions:
  *
- *    /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/
- *    /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
+ *    /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U\+([0-9A-F]{4,6}) (.*) \*\/\s*$/
+ *    /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U\+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
  *    /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
  *
  * Before adding new keysyms, please do consider the following: In
@@ -1431,9 +1431,9 @@
 #define XKB_KEY_fivesixths                    0x0ab7  /* U+215A VULGAR FRACTION FIVE SIXTHS */
 #define XKB_KEY_careof                        0x0ab8  /* U+2105 CARE OF */
 #define XKB_KEY_figdash                       0x0abb  /* U+2012 FIGURE DASH */
-#define XKB_KEY_leftanglebracket              0x0abc  /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/
+#define XKB_KEY_leftanglebracket              0x0abc  /*(U+2329 LEFT-POINTING ANGLE BRACKET)*/
 #define XKB_KEY_decimalpoint                  0x0abd  /*(U+002E FULL STOP)*/
-#define XKB_KEY_rightanglebracket             0x0abe  /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/
+#define XKB_KEY_rightanglebracket             0x0abe  /*(U+232A RIGHT-POINTING ANGLE BRACKET)*/
 #define XKB_KEY_marker                        0x0abf
 #define XKB_KEY_oneeighth                     0x0ac3  /* U+215B VULGAR FRACTION ONE EIGHTH */
 #define XKB_KEY_threeeighths                  0x0ac4  /* U+215C VULGAR FRACTION THREE EIGHTHS */
@@ -1678,106 +1678,106 @@
 #define XKB_KEY_Hangul_switch                 0xff7e  /* Alias for mode_switch */
 
 /* Hangul Consonant Characters */
-#define XKB_KEY_Hangul_Kiyeog                 0x0ea1
-#define XKB_KEY_Hangul_SsangKiyeog            0x0ea2
-#define XKB_KEY_Hangul_KiyeogSios             0x0ea3
-#define XKB_KEY_Hangul_Nieun                  0x0ea4
-#define XKB_KEY_Hangul_NieunJieuj             0x0ea5
-#define XKB_KEY_Hangul_NieunHieuh             0x0ea6
-#define XKB_KEY_Hangul_Dikeud                 0x0ea7
-#define XKB_KEY_Hangul_SsangDikeud            0x0ea8
-#define XKB_KEY_Hangul_Rieul                  0x0ea9
-#define XKB_KEY_Hangul_RieulKiyeog            0x0eaa
-#define XKB_KEY_Hangul_RieulMieum             0x0eab
-#define XKB_KEY_Hangul_RieulPieub             0x0eac
-#define XKB_KEY_Hangul_RieulSios              0x0ead
-#define XKB_KEY_Hangul_RieulTieut             0x0eae
-#define XKB_KEY_Hangul_RieulPhieuf            0x0eaf
-#define XKB_KEY_Hangul_RieulHieuh             0x0eb0
-#define XKB_KEY_Hangul_Mieum                  0x0eb1
-#define XKB_KEY_Hangul_Pieub                  0x0eb2
-#define XKB_KEY_Hangul_SsangPieub             0x0eb3
-#define XKB_KEY_Hangul_PieubSios              0x0eb4
-#define XKB_KEY_Hangul_Sios                   0x0eb5
-#define XKB_KEY_Hangul_SsangSios              0x0eb6
-#define XKB_KEY_Hangul_Ieung                  0x0eb7
-#define XKB_KEY_Hangul_Jieuj                  0x0eb8
-#define XKB_KEY_Hangul_SsangJieuj             0x0eb9
-#define XKB_KEY_Hangul_Cieuc                  0x0eba
-#define XKB_KEY_Hangul_Khieuq                 0x0ebb
-#define XKB_KEY_Hangul_Tieut                  0x0ebc
-#define XKB_KEY_Hangul_Phieuf                 0x0ebd
-#define XKB_KEY_Hangul_Hieuh                  0x0ebe
+#define XKB_KEY_Hangul_Kiyeog                 0x0ea1  /* U+3131 HANGUL LETTER KIYEOK */
+#define XKB_KEY_Hangul_SsangKiyeog            0x0ea2  /* U+3132 HANGUL LETTER SSANGKIYEOK */
+#define XKB_KEY_Hangul_KiyeogSios             0x0ea3  /* U+3133 HANGUL LETTER KIYEOK-SIOS */
+#define XKB_KEY_Hangul_Nieun                  0x0ea4  /* U+3134 HANGUL LETTER NIEUN */
+#define XKB_KEY_Hangul_NieunJieuj             0x0ea5  /* U+3135 HANGUL LETTER NIEUN-CIEUC */
+#define XKB_KEY_Hangul_NieunHieuh             0x0ea6  /* U+3136 HANGUL LETTER NIEUN-HIEUH */
+#define XKB_KEY_Hangul_Dikeud                 0x0ea7  /* U+3137 HANGUL LETTER TIKEUT */
+#define XKB_KEY_Hangul_SsangDikeud            0x0ea8  /* U+3138 HANGUL LETTER SSANGTIKEUT */
+#define XKB_KEY_Hangul_Rieul                  0x0ea9  /* U+3139 HANGUL LETTER RIEUL */
+#define XKB_KEY_Hangul_RieulKiyeog            0x0eaa  /* U+313A HANGUL LETTER RIEUL-KIYEOK */
+#define XKB_KEY_Hangul_RieulMieum             0x0eab  /* U+313B HANGUL LETTER RIEUL-MIEUM */
+#define XKB_KEY_Hangul_RieulPieub             0x0eac  /* U+313C HANGUL LETTER RIEUL-PIEUP */
+#define XKB_KEY_Hangul_RieulSios              0x0ead  /* U+313D HANGUL LETTER RIEUL-SIOS */
+#define XKB_KEY_Hangul_RieulTieut             0x0eae  /* U+313E HANGUL LETTER RIEUL-THIEUTH */
+#define XKB_KEY_Hangul_RieulPhieuf            0x0eaf  /* U+313F HANGUL LETTER RIEUL-PHIEUPH */
+#define XKB_KEY_Hangul_RieulHieuh             0x0eb0  /* U+3140 HANGUL LETTER RIEUL-HIEUH */
+#define XKB_KEY_Hangul_Mieum                  0x0eb1  /* U+3141 HANGUL LETTER MIEUM */
+#define XKB_KEY_Hangul_Pieub                  0x0eb2  /* U+3142 HANGUL LETTER PIEUP */
+#define XKB_KEY_Hangul_SsangPieub             0x0eb3  /* U+3143 HANGUL LETTER SSANGPIEUP */
+#define XKB_KEY_Hangul_PieubSios              0x0eb4  /* U+3144 HANGUL LETTER PIEUP-SIOS */
+#define XKB_KEY_Hangul_Sios                   0x0eb5  /* U+3145 HANGUL LETTER SIOS */
+#define XKB_KEY_Hangul_SsangSios              0x0eb6  /* U+3146 HANGUL LETTER SSANGSIOS */
+#define XKB_KEY_Hangul_Ieung                  0x0eb7  /* U+3147 HANGUL LETTER IEUNG */
+#define XKB_KEY_Hangul_Jieuj                  0x0eb8  /* U+3148 HANGUL LETTER CIEUC */
+#define XKB_KEY_Hangul_SsangJieuj             0x0eb9  /* U+3149 HANGUL LETTER SSANGCIEUC */
+#define XKB_KEY_Hangul_Cieuc                  0x0eba  /* U+314A HANGUL LETTER CHIEUCH */
+#define XKB_KEY_Hangul_Khieuq                 0x0ebb  /* U+314B HANGUL LETTER KHIEUKH */
+#define XKB_KEY_Hangul_Tieut                  0x0ebc  /* U+314C HANGUL LETTER THIEUTH */
+#define XKB_KEY_Hangul_Phieuf                 0x0ebd  /* U+314D HANGUL LETTER PHIEUPH */
+#define XKB_KEY_Hangul_Hieuh                  0x0ebe  /* U+314E HANGUL LETTER HIEUH */
 
 /* Hangul Vowel Characters */
-#define XKB_KEY_Hangul_A                      0x0ebf
-#define XKB_KEY_Hangul_AE                     0x0ec0
-#define XKB_KEY_Hangul_YA                     0x0ec1
-#define XKB_KEY_Hangul_YAE                    0x0ec2
-#define XKB_KEY_Hangul_EO                     0x0ec3
-#define XKB_KEY_Hangul_E                      0x0ec4
-#define XKB_KEY_Hangul_YEO                    0x0ec5
-#define XKB_KEY_Hangul_YE                     0x0ec6
-#define XKB_KEY_Hangul_O                      0x0ec7
-#define XKB_KEY_Hangul_WA                     0x0ec8
-#define XKB_KEY_Hangul_WAE                    0x0ec9
-#define XKB_KEY_Hangul_OE                     0x0eca
-#define XKB_KEY_Hangul_YO                     0x0ecb
-#define XKB_KEY_Hangul_U                      0x0ecc
-#define XKB_KEY_Hangul_WEO                    0x0ecd
-#define XKB_KEY_Hangul_WE                     0x0ece
-#define XKB_KEY_Hangul_WI                     0x0ecf
-#define XKB_KEY_Hangul_YU                     0x0ed0
-#define XKB_KEY_Hangul_EU                     0x0ed1
-#define XKB_KEY_Hangul_YI                     0x0ed2
-#define XKB_KEY_Hangul_I                      0x0ed3
+#define XKB_KEY_Hangul_A                      0x0ebf  /* U+314F HANGUL LETTER A */
+#define XKB_KEY_Hangul_AE                     0x0ec0  /* U+3150 HANGUL LETTER AE */
+#define XKB_KEY_Hangul_YA                     0x0ec1  /* U+3151 HANGUL LETTER YA */
+#define XKB_KEY_Hangul_YAE                    0x0ec2  /* U+3152 HANGUL LETTER YAE */
+#define XKB_KEY_Hangul_EO                     0x0ec3  /* U+3153 HANGUL LETTER EO */
+#define XKB_KEY_Hangul_E                      0x0ec4  /* U+3154 HANGUL LETTER E */
+#define XKB_KEY_Hangul_YEO                    0x0ec5  /* U+3155 HANGUL LETTER YEO */
+#define XKB_KEY_Hangul_YE                     0x0ec6  /* U+3156 HANGUL LETTER YE */
+#define XKB_KEY_Hangul_O                      0x0ec7  /* U+3157 HANGUL LETTER O */
+#define XKB_KEY_Hangul_WA                     0x0ec8  /* U+3158 HANGUL LETTER WA */
+#define XKB_KEY_Hangul_WAE                    0x0ec9  /* U+3159 HANGUL LETTER WAE */
+#define XKB_KEY_Hangul_OE                     0x0eca  /* U+315A HANGUL LETTER OE */
+#define XKB_KEY_Hangul_YO                     0x0ecb  /* U+315B HANGUL LETTER YO */
+#define XKB_KEY_Hangul_U                      0x0ecc  /* U+315C HANGUL LETTER U */
+#define XKB_KEY_Hangul_WEO                    0x0ecd  /* U+315D HANGUL LETTER WEO */
+#define XKB_KEY_Hangul_WE                     0x0ece  /* U+315E HANGUL LETTER WE */
+#define XKB_KEY_Hangul_WI                     0x0ecf  /* U+315F HANGUL LETTER WI */
+#define XKB_KEY_Hangul_YU                     0x0ed0  /* U+3160 HANGUL LETTER YU */
+#define XKB_KEY_Hangul_EU                     0x0ed1  /* U+3161 HANGUL LETTER EU */
+#define XKB_KEY_Hangul_YI                     0x0ed2  /* U+3162 HANGUL LETTER YI */
+#define XKB_KEY_Hangul_I                      0x0ed3  /* U+3163 HANGUL LETTER I */
 
 /* Hangul syllable-final (JongSeong) Characters */
-#define XKB_KEY_Hangul_J_Kiyeog               0x0ed4
-#define XKB_KEY_Hangul_J_SsangKiyeog          0x0ed5
-#define XKB_KEY_Hangul_J_KiyeogSios           0x0ed6
-#define XKB_KEY_Hangul_J_Nieun                0x0ed7
-#define XKB_KEY_Hangul_J_NieunJieuj           0x0ed8
-#define XKB_KEY_Hangul_J_NieunHieuh           0x0ed9
-#define XKB_KEY_Hangul_J_Dikeud               0x0eda
-#define XKB_KEY_Hangul_J_Rieul                0x0edb
-#define XKB_KEY_Hangul_J_RieulKiyeog          0x0edc
-#define XKB_KEY_Hangul_J_RieulMieum           0x0edd
-#define XKB_KEY_Hangul_J_RieulPieub           0x0ede
-#define XKB_KEY_Hangul_J_RieulSios            0x0edf
-#define XKB_KEY_Hangul_J_RieulTieut           0x0ee0
-#define XKB_KEY_Hangul_J_RieulPhieuf          0x0ee1
-#define XKB_KEY_Hangul_J_RieulHieuh           0x0ee2
-#define XKB_KEY_Hangul_J_Mieum                0x0ee3
-#define XKB_KEY_Hangul_J_Pieub                0x0ee4
-#define XKB_KEY_Hangul_J_PieubSios            0x0ee5
-#define XKB_KEY_Hangul_J_Sios                 0x0ee6
-#define XKB_KEY_Hangul_J_SsangSios            0x0ee7
-#define XKB_KEY_Hangul_J_Ieung                0x0ee8
-#define XKB_KEY_Hangul_J_Jieuj                0x0ee9
-#define XKB_KEY_Hangul_J_Cieuc                0x0eea
-#define XKB_KEY_Hangul_J_Khieuq               0x0eeb
-#define XKB_KEY_Hangul_J_Tieut                0x0eec
-#define XKB_KEY_Hangul_J_Phieuf               0x0eed
-#define XKB_KEY_Hangul_J_Hieuh                0x0eee
+#define XKB_KEY_Hangul_J_Kiyeog               0x0ed4  /* U+11A8 HANGUL JONGSEONG KIYEOK */
+#define XKB_KEY_Hangul_J_SsangKiyeog          0x0ed5  /* U+11A9 HANGUL JONGSEONG SSANGKIYEOK */
+#define XKB_KEY_Hangul_J_KiyeogSios           0x0ed6  /* U+11AA HANGUL JONGSEONG KIYEOK-SIOS */
+#define XKB_KEY_Hangul_J_Nieun                0x0ed7  /* U+11AB HANGUL JONGSEONG NIEUN */
+#define XKB_KEY_Hangul_J_NieunJieuj           0x0ed8  /* U+11AC HANGUL JONGSEONG NIEUN-CIEUC */
+#define XKB_KEY_Hangul_J_NieunHieuh           0x0ed9  /* U+11AD HANGUL JONGSEONG NIEUN-HIEUH */
+#define XKB_KEY_Hangul_J_Dikeud               0x0eda  /* U+11AE HANGUL JONGSEONG TIKEUT */
+#define XKB_KEY_Hangul_J_Rieul                0x0edb  /* U+11AF HANGUL JONGSEONG RIEUL */
+#define XKB_KEY_Hangul_J_RieulKiyeog          0x0edc  /* U+11B0 HANGUL JONGSEONG RIEUL-KIYEOK */
+#define XKB_KEY_Hangul_J_RieulMieum           0x0edd  /* U+11B1 HANGUL JONGSEONG RIEUL-MIEUM */
+#define XKB_KEY_Hangul_J_RieulPieub           0x0ede  /* U+11B2 HANGUL JONGSEONG RIEUL-PIEUP */
+#define XKB_KEY_Hangul_J_RieulSios            0x0edf  /* U+11B3 HANGUL JONGSEONG RIEUL-SIOS */
+#define XKB_KEY_Hangul_J_RieulTieut           0x0ee0  /* U+11B4 HANGUL JONGSEONG RIEUL-THIEUTH */
+#define XKB_KEY_Hangul_J_RieulPhieuf          0x0ee1  /* U+11B5 HANGUL JONGSEONG RIEUL-PHIEUPH */
+#define XKB_KEY_Hangul_J_RieulHieuh           0x0ee2  /* U+11B6 HANGUL JONGSEONG RIEUL-HIEUH */
+#define XKB_KEY_Hangul_J_Mieum                0x0ee3  /* U+11B7 HANGUL JONGSEONG MIEUM */
+#define XKB_KEY_Hangul_J_Pieub                0x0ee4  /* U+11B8 HANGUL JONGSEONG PIEUP */
+#define XKB_KEY_Hangul_J_PieubSios            0x0ee5  /* U+11B9 HANGUL JONGSEONG PIEUP-SIOS */
+#define XKB_KEY_Hangul_J_Sios                 0x0ee6  /* U+11BA HANGUL JONGSEONG SIOS */
+#define XKB_KEY_Hangul_J_SsangSios            0x0ee7  /* U+11BB HANGUL JONGSEONG SSANGSIOS */
+#define XKB_KEY_Hangul_J_Ieung                0x0ee8  /* U+11BC HANGUL JONGSEONG IEUNG */
+#define XKB_KEY_Hangul_J_Jieuj                0x0ee9  /* U+11BD HANGUL JONGSEONG CIEUC */
+#define XKB_KEY_Hangul_J_Cieuc                0x0eea  /* U+11BE HANGUL JONGSEONG CHIEUCH */
+#define XKB_KEY_Hangul_J_Khieuq               0x0eeb  /* U+11BF HANGUL JONGSEONG KHIEUKH */
+#define XKB_KEY_Hangul_J_Tieut                0x0eec  /* U+11C0 HANGUL JONGSEONG THIEUTH */
+#define XKB_KEY_Hangul_J_Phieuf               0x0eed  /* U+11C1 HANGUL JONGSEONG PHIEUPH */
+#define XKB_KEY_Hangul_J_Hieuh                0x0eee  /* U+11C2 HANGUL JONGSEONG HIEUH */
 
 /* Ancient Hangul Consonant Characters */
-#define XKB_KEY_Hangul_RieulYeorinHieuh       0x0eef
-#define XKB_KEY_Hangul_SunkyeongeumMieum      0x0ef0
-#define XKB_KEY_Hangul_SunkyeongeumPieub      0x0ef1
-#define XKB_KEY_Hangul_PanSios                0x0ef2
-#define XKB_KEY_Hangul_KkogjiDalrinIeung      0x0ef3
-#define XKB_KEY_Hangul_SunkyeongeumPhieuf     0x0ef4
-#define XKB_KEY_Hangul_YeorinHieuh            0x0ef5
+#define XKB_KEY_Hangul_RieulYeorinHieuh       0x0eef  /* U+316D HANGUL LETTER RIEUL-YEORINHIEUH */
+#define XKB_KEY_Hangul_SunkyeongeumMieum      0x0ef0  /* U+3171 HANGUL LETTER KAPYEOUNMIEUM */
+#define XKB_KEY_Hangul_SunkyeongeumPieub      0x0ef1  /* U+3178 HANGUL LETTER KAPYEOUNPIEUP */
+#define XKB_KEY_Hangul_PanSios                0x0ef2  /* U+317F HANGUL LETTER PANSIOS */
+#define XKB_KEY_Hangul_KkogjiDalrinIeung      0x0ef3  /* U+3181 HANGUL LETTER YESIEUNG */
+#define XKB_KEY_Hangul_SunkyeongeumPhieuf     0x0ef4  /* U+3184 HANGUL LETTER KAPYEOUNPHIEUPH */
+#define XKB_KEY_Hangul_YeorinHieuh            0x0ef5  /* U+3186 HANGUL LETTER YEORINHIEUH */
 
 /* Ancient Hangul Vowel Characters */
-#define XKB_KEY_Hangul_AraeA                  0x0ef6
-#define XKB_KEY_Hangul_AraeAE                 0x0ef7
+#define XKB_KEY_Hangul_AraeA                  0x0ef6  /* U+318D HANGUL LETTER ARAEA */
+#define XKB_KEY_Hangul_AraeAE                 0x0ef7  /* U+318E HANGUL LETTER ARAEAE */
 
 /* Ancient Hangul syllable-final (JongSeong) Characters */
-#define XKB_KEY_Hangul_J_PanSios              0x0ef8
-#define XKB_KEY_Hangul_J_KkogjiDalrinIeung    0x0ef9
-#define XKB_KEY_Hangul_J_YeorinHieuh          0x0efa
+#define XKB_KEY_Hangul_J_PanSios              0x0ef8  /* U+11EB HANGUL JONGSEONG PANSIOS */
+#define XKB_KEY_Hangul_J_KkogjiDalrinIeung    0x0ef9  /* U+11F0 HANGUL JONGSEONG YESIEUNG */
+#define XKB_KEY_Hangul_J_YeorinHieuh          0x0efa  /* U+11F9 HANGUL JONGSEONG YEORINHIEUH */
 
 /* Korean currency symbol */
 #define XKB_KEY_Korean_Won                    0x0eff  /*(U+20A9 WON SIGN)*/
@@ -2044,6 +2044,11 @@
 #define XKB_KEY_ohorn                      0x10001a1  /* U+01A1 LATIN SMALL LETTER O WITH HORN */
 #define XKB_KEY_Uhorn                      0x10001af  /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
 #define XKB_KEY_uhorn                      0x10001b0  /* U+01B0 LATIN SMALL LETTER U WITH HORN */
+#define XKB_KEY_combining_tilde            0x1000303  /* U+0303 COMBINING TILDE */
+#define XKB_KEY_combining_grave            0x1000300  /* U+0300 COMBINING GRAVE ACCENT */
+#define XKB_KEY_combining_acute            0x1000301  /* U+0301 COMBINING ACUTE ACCENT */
+#define XKB_KEY_combining_hook             0x1000309  /* U+0309 COMBINING HOOK ABOVE */
+#define XKB_KEY_combining_belowdot         0x1000323  /* U+0323 COMBINING DOT BELOW */
 
 
 #define XKB_KEY_EcuSign                    0x10020a0  /* U+20A0 EURO-CURRENCY SIGN */
@@ -2089,8 +2094,8 @@
 #define XKB_KEY_dintegral                  0x100222C  /* U+222C DOUBLE INTEGRAL */
 #define XKB_KEY_tintegral                  0x100222D  /* U+222D TRIPLE INTEGRAL */
 #define XKB_KEY_because                    0x1002235  /* U+2235 BECAUSE */
-#define XKB_KEY_approxeq                   0x1002248  /* U+2245 ALMOST EQUAL TO */
-#define XKB_KEY_notapproxeq                0x1002247  /* U+2247 NOT ALMOST EQUAL TO */
+#define XKB_KEY_approxeq                   0x1002248  /*(U+2248 ALMOST EQUAL TO)*/
+#define XKB_KEY_notapproxeq                0x1002247  /*(U+2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO)*/
 #define XKB_KEY_notidentical               0x1002262  /* U+2262 NOT IDENTICAL TO */
 #define XKB_KEY_stricteq                   0x1002263  /* U+2263 STRICTLY EQUIVALENT TO */
 
@@ -2451,8 +2456,10 @@
  *
  * The XFree86 keysym range is 0x10080001 - 0x1008FFFF.
  *
- * X.Org will not be adding to the XF86 set of keysyms, though they have
- * been adopted and are considered a "standard" part of X keysym definitions.
+ * The XF86 set of keysyms is a catch-all set of defines for keysyms found
+ * on various multimedia keyboards. Originally specific to XFree86 they have
+ * been been adopted over time and are considered a "standard" part of X
+ * keysym definitions.
  * XFree86 never properly commented these keysyms, so we have done our
  * best to explain the semantic meaning of these keys.
  *
@@ -2678,6 +2685,238 @@
 #define XKB_KEY_XF86Prev_VMode	0x1008FE23   /* prev. video mode available */
 #define XKB_KEY_XF86LogWindowTree	0x1008FE24   /* print window tree to log   */
 #define XKB_KEY_XF86LogGrabInfo	0x1008FE25   /* print all active grabs to log */
+
+
+/*
+ * Reserved range for evdev symbols: 0x10081000-0x10081FFF
+ *
+ * Key syms within this range must match the Linux kernel
+ * input-event-codes.h file in the format:
+ *     XF86XK_CamelCaseKernelName	_EVDEVK(kernel value)
+ * For example, the kernel
+ *   #define KEY_MACRO_RECORD_START	0x2b0
+ * effectively ends up as:
+ *   #define XKB_KEY_XF86MacroRecordStart	0x100812b0
+ *
+ * For historical reasons, some keysyms within the reserved range will be
+ * missing, most notably all "normal" keys that are mapped through default
+ * XKB layouts (e.g. KEY_Q).
+ *
+ * CamelCasing is done with a human control as last authority, e.g. see VOD
+ * instead of Vod for the Video on Demand key.
+ *
+ * The format for #defines is strict:
+ *
+ * #define XKB_KEY_XF86FOO<tab...>_EVDEVK(0xABC)<tab><tab> |* kver KEY_FOO *|
+ *
+ * Where
+ * - alignment by tabs
+ * - the _EVDEVK macro must be used
+ * - the hex code must be in uppercase hex
+ * - the kernel version (kver) is in the form v5.10
+ * - kver and key name are within a slash-star comment (a pipe is used in
+ *   this example for technical reasons)
+ * These #defines are parsed by scripts. Do not stray from the given format.
+ *
+ * Where the evdev keycode is mapped to a different symbol, please add a
+ * comment line starting with Use: but otherwise the same format, e.g.
+ *  Use: XF86XK_RotationLockToggle	_EVDEVK(0x231)		   v4.16 KEY_ROTATE_LOCK_TOGGLE
+ *
+ */
+/* Use: XF86XK_Eject			_EVDEVK(0x0A2)		         KEY_EJECTCLOSECD */
+/* Use: XF86XK_New			_EVDEVK(0x0B5)		   v2.6.14 KEY_NEW */
+/* Use: XK_Redo				_EVDEVK(0x0B6)		   v2.6.14 KEY_REDO */
+/* KEY_DASHBOARD has been mapped to LaunchB in xkeyboard-config since 2011 */
+/* Use: XF86XK_LaunchB			_EVDEVK(0x0CC)		   v2.6.28 KEY_DASHBOARD */
+/* Use: XF86XK_Display			_EVDEVK(0x0E3)		   v2.6.12 KEY_SWITCHVIDEOMODE */
+/* Use: XF86XK_KbdLightOnOff		_EVDEVK(0x0E4)		   v2.6.12 KEY_KBDILLUMTOGGLE */
+/* Use: XF86XK_KbdBrightnessDown	_EVDEVK(0x0E5)		   v2.6.12 KEY_KBDILLUMDOWN */
+/* Use: XF86XK_KbdBrightnessUp		_EVDEVK(0x0E6)		   v2.6.12 KEY_KBDILLUMUP */
+/* Use: XF86XK_Send			_EVDEVK(0x0E7)		   v2.6.14 KEY_SEND */
+/* Use: XF86XK_Reply			_EVDEVK(0x0E8)		   v2.6.14 KEY_REPLY */
+/* Use: XF86XK_MailForward		_EVDEVK(0x0E9)		   v2.6.14 KEY_FORWARDMAIL */
+/* Use: XF86XK_Save			_EVDEVK(0x0EA)		   v2.6.14 KEY_SAVE */
+/* Use: XF86XK_Documents		_EVDEVK(0x0EB)		   v2.6.14 KEY_DOCUMENTS */
+/* Use: XF86XK_Battery			_EVDEVK(0x0EC)		   v2.6.17 KEY_BATTERY */
+/* Use: XF86XK_Bluetooth		_EVDEVK(0x0ED)		   v2.6.19 KEY_BLUETOOTH */
+/* Use: XF86XK_WLAN			_EVDEVK(0x0EE)		   v2.6.19 KEY_WLAN */
+/* Use: XF86XK_UWB			_EVDEVK(0x0EF)		   v2.6.24 KEY_UWB */
+/* Use: XF86XK_Next_VMode		_EVDEVK(0x0F1)		   v2.6.23 KEY_VIDEO_NEXT */
+/* Use: XF86XK_Prev_VMode		_EVDEVK(0x0F2)		   v2.6.23 KEY_VIDEO_PREV */
+/* Use: XF86XK_MonBrightnessCycle	_EVDEVK(0x0F3)		   v2.6.23 KEY_BRIGHTNESS_CYCLE */
+#define XKB_KEY_XF86BrightnessAuto		0x100810f4		/* v3.16 KEY_BRIGHTNESS_AUTO */
+#define XKB_KEY_XF86DisplayOff		0x100810f5		/* v2.6.23 KEY_DISPLAY_OFF */
+/* Use: XF86XK_WWAN			_EVDEVK(0x0F6)		   v3.13 KEY_WWAN */
+/* Use: XF86XK_RFKill			_EVDEVK(0x0F7)		   v2.6.33 KEY_RFKILL */
+/* Use: XF86XK_AudioMicMute		_EVDEVK(0x0F8)		   v3.1  KEY_MICMUTE */
+#define XKB_KEY_XF86Info			0x10081166		/*       KEY_INFO */
+/* Use: XF86XK_CycleAngle		_EVDEVK(0x173)		         KEY_ANGLE */
+/* Use: XF86XK_FullScreen		_EVDEVK(0x174)		   v5.1  KEY_FULL_SCREEN */
+#define XKB_KEY_XF86AspectRatio		0x10081177		/* v5.1  KEY_ASPECT_RATIO */
+#define XKB_KEY_XF86DVD			0x10081185		/*       KEY_DVD */
+#define XKB_KEY_XF86Audio			0x10081188		/*       KEY_AUDIO */
+/* Use: XF86XK_Video			_EVDEVK(0x189)		         KEY_VIDEO */
+/* Use: XF86XK_Calendar			_EVDEVK(0x18D)		         KEY_CALENDAR */
+#define XKB_KEY_XF86ChannelUp		0x10081192		/*       KEY_CHANNELUP */
+#define XKB_KEY_XF86ChannelDown		0x10081193		/*       KEY_CHANNELDOWN */
+/* Use: XF86XK_AudioRandomPlay		_EVDEVK(0x19A)		         KEY_SHUFFLE */
+#define XKB_KEY_XF86Break			0x1008119b		/*       KEY_BREAK */
+#define XKB_KEY_XF86VideoPhone		0x100811a0		/* v2.6.20 KEY_VIDEOPHONE */
+/* Use: XF86XK_Game			_EVDEVK(0x1A1)		   v2.6.20 KEY_GAMES */
+/* Use: XF86XK_ZoomIn			_EVDEVK(0x1A2)		   v2.6.20 KEY_ZOOMIN */
+/* Use: XF86XK_ZoomOut			_EVDEVK(0x1A3)		   v2.6.20 KEY_ZOOMOUT */
+#define XKB_KEY_XF86ZoomReset		0x100811a4		/* v2.6.20 KEY_ZOOMRESET */
+/* Use: XF86XK_Word			_EVDEVK(0x1A5)		   v2.6.20 KEY_WORDPROCESSOR */
+#define XKB_KEY_XF86Editor			0x100811a6		/* v2.6.20 KEY_EDITOR */
+/* Use: XF86XK_Excel			_EVDEVK(0x1A7)		   v2.6.20 KEY_SPREADSHEET */
+#define XKB_KEY_XF86GraphicsEditor		0x100811a8		/* v2.6.20 KEY_GRAPHICSEDITOR */
+#define XKB_KEY_XF86Presentation		0x100811a9		/* v2.6.20 KEY_PRESENTATION */
+#define XKB_KEY_XF86Database			0x100811aa		/* v2.6.20 KEY_DATABASE */
+/* Use: XF86XK_News			_EVDEVK(0x1AB)		   v2.6.20 KEY_NEWS */
+#define XKB_KEY_XF86Voicemail		0x100811ac		/* v2.6.20 KEY_VOICEMAIL */
+#define XKB_KEY_XF86Addressbook		0x100811ad		/* v2.6.20 KEY_ADDRESSBOOK */
+/* Use: XF86XK_Messenger		_EVDEVK(0x1AE)		   v2.6.20 KEY_MESSENGER */
+#define XKB_KEY_XF86DisplayToggle		0x100811af		/* v2.6.20 KEY_DISPLAYTOGGLE */
+#define XKB_KEY_XF86SpellCheck		0x100811b0		/* v2.6.24 KEY_SPELLCHECK */
+/* Use: XF86XK_LogOff			_EVDEVK(0x1B1)		   v2.6.24 KEY_LOGOFF */
+/* Use: XK_dollar			_EVDEVK(0x1B2)		   v2.6.24 KEY_DOLLAR */
+/* Use: XK_EuroSign			_EVDEVK(0x1B3)		   v2.6.24 KEY_EURO */
+/* Use: XF86XK_FrameBack		_EVDEVK(0x1B4)		   v2.6.24 KEY_FRAMEBACK */
+/* Use: XF86XK_FrameForward		_EVDEVK(0x1B5)		   v2.6.24 KEY_FRAMEFORWARD */
+#define XKB_KEY_XF86ContextMenu		0x100811b6		/* v2.6.24 KEY_CONTEXT_MENU */
+#define XKB_KEY_XF86MediaRepeat		0x100811b7		/* v2.6.26 KEY_MEDIA_REPEAT */
+#define XKB_KEY_XF8610ChannelsUp		0x100811b8		/* v2.6.38 KEY_10CHANNELSUP */
+#define XKB_KEY_XF8610ChannelsDown		0x100811b9		/* v2.6.38 KEY_10CHANNELSDOWN */
+#define XKB_KEY_XF86Images			0x100811ba		/* v2.6.39 KEY_IMAGES */
+#define XKB_KEY_XF86NotificationCenter	0x100811bc		/* v5.10 KEY_NOTIFICATION_CENTER */
+#define XKB_KEY_XF86PickupPhone		0x100811bd		/* v5.10 KEY_PICKUP_PHONE */
+#define XKB_KEY_XF86HangupPhone		0x100811be		/* v5.10 KEY_HANGUP_PHONE */
+#define XKB_KEY_XF86Fn			0x100811d0		/*       KEY_FN */
+#define XKB_KEY_XF86Fn_Esc			0x100811d1		/*       KEY_FN_ESC */
+#define XKB_KEY_XF86FnRightShift		0x100811e5		/* v5.10 KEY_FN_RIGHT_SHIFT */
+/* Use: XK_braille_dot_1		_EVDEVK(0x1F1)		   v2.6.17 KEY_BRL_DOT1 */
+/* Use: XK_braille_dot_2		_EVDEVK(0x1F2)		   v2.6.17 KEY_BRL_DOT2 */
+/* Use: XK_braille_dot_3		_EVDEVK(0x1F3)		   v2.6.17 KEY_BRL_DOT3 */
+/* Use: XK_braille_dot_4		_EVDEVK(0x1F4)		   v2.6.17 KEY_BRL_DOT4 */
+/* Use: XK_braille_dot_5		_EVDEVK(0x1F5)		   v2.6.17 KEY_BRL_DOT5 */
+/* Use: XK_braille_dot_6		_EVDEVK(0x1F6)		   v2.6.17 KEY_BRL_DOT6 */
+/* Use: XK_braille_dot_7		_EVDEVK(0x1F7)		   v2.6.17 KEY_BRL_DOT7 */
+/* Use: XK_braille_dot_8		_EVDEVK(0x1F8)		   v2.6.17 KEY_BRL_DOT8 */
+/* Use: XK_braille_dot_9		_EVDEVK(0x1F9)		   v2.6.23 KEY_BRL_DOT9 */
+/* Use: XK_braille_dot_1		_EVDEVK(0x1FA)		   v2.6.23 KEY_BRL_DOT10 */
+#define XKB_KEY_XF86Numeric0			0x10081200		/* v2.6.28 KEY_NUMERIC_0 */
+#define XKB_KEY_XF86Numeric1			0x10081201		/* v2.6.28 KEY_NUMERIC_1 */
+#define XKB_KEY_XF86Numeric2			0x10081202		/* v2.6.28 KEY_NUMERIC_2 */
+#define XKB_KEY_XF86Numeric3			0x10081203		/* v2.6.28 KEY_NUMERIC_3 */
+#define XKB_KEY_XF86Numeric4			0x10081204		/* v2.6.28 KEY_NUMERIC_4 */
+#define XKB_KEY_XF86Numeric5			0x10081205		/* v2.6.28 KEY_NUMERIC_5 */
+#define XKB_KEY_XF86Numeric6			0x10081206		/* v2.6.28 KEY_NUMERIC_6 */
+#define XKB_KEY_XF86Numeric7			0x10081207		/* v2.6.28 KEY_NUMERIC_7 */
+#define XKB_KEY_XF86Numeric8			0x10081208		/* v2.6.28 KEY_NUMERIC_8 */
+#define XKB_KEY_XF86Numeric9			0x10081209		/* v2.6.28 KEY_NUMERIC_9 */
+#define XKB_KEY_XF86NumericStar		0x1008120a		/* v2.6.28 KEY_NUMERIC_STAR */
+#define XKB_KEY_XF86NumericPound		0x1008120b		/* v2.6.28 KEY_NUMERIC_POUND */
+#define XKB_KEY_XF86NumericA			0x1008120c		/* v4.1  KEY_NUMERIC_A */
+#define XKB_KEY_XF86NumericB			0x1008120d		/* v4.1  KEY_NUMERIC_B */
+#define XKB_KEY_XF86NumericC			0x1008120e		/* v4.1  KEY_NUMERIC_C */
+#define XKB_KEY_XF86NumericD			0x1008120f		/* v4.1  KEY_NUMERIC_D */
+#define XKB_KEY_XF86CameraFocus		0x10081210		/* v2.6.33 KEY_CAMERA_FOCUS */
+#define XKB_KEY_XF86WPSButton		0x10081211		/* v2.6.34 KEY_WPS_BUTTON */
+/* Use: XF86XK_TouchpadToggle		_EVDEVK(0x212)		   v2.6.37 KEY_TOUCHPAD_TOGGLE */
+/* Use: XF86XK_TouchpadOn		_EVDEVK(0x213)		   v2.6.37 KEY_TOUCHPAD_ON */
+/* Use: XF86XK_TouchpadOff		_EVDEVK(0x214)		   v2.6.37 KEY_TOUCHPAD_OFF */
+#define XKB_KEY_XF86CameraZoomIn		0x10081215		/* v2.6.39 KEY_CAMERA_ZOOMIN */
+#define XKB_KEY_XF86CameraZoomOut		0x10081216		/* v2.6.39 KEY_CAMERA_ZOOMOUT */
+#define XKB_KEY_XF86CameraUp			0x10081217		/* v2.6.39 KEY_CAMERA_UP */
+#define XKB_KEY_XF86CameraDown		0x10081218		/* v2.6.39 KEY_CAMERA_DOWN */
+#define XKB_KEY_XF86CameraLeft		0x10081219		/* v2.6.39 KEY_CAMERA_LEFT */
+#define XKB_KEY_XF86CameraRight		0x1008121a		/* v2.6.39 KEY_CAMERA_RIGHT */
+#define XKB_KEY_XF86AttendantOn		0x1008121b		/* v3.10 KEY_ATTENDANT_ON */
+#define XKB_KEY_XF86AttendantOff		0x1008121c		/* v3.10 KEY_ATTENDANT_OFF */
+#define XKB_KEY_XF86AttendantToggle		0x1008121d		/* v3.10 KEY_ATTENDANT_TOGGLE */
+#define XKB_KEY_XF86LightsToggle		0x1008121e		/* v3.10 KEY_LIGHTS_TOGGLE */
+#define XKB_KEY_XF86ALSToggle		0x10081230		/* v3.13 KEY_ALS_TOGGLE */
+/* Use: XF86XK_RotationLockToggle	_EVDEVK(0x231)		   v4.16 KEY_ROTATE_LOCK_TOGGLE */
+#define XKB_KEY_XF86Buttonconfig		0x10081240		/* v3.16 KEY_BUTTONCONFIG */
+#define XKB_KEY_XF86Taskmanager		0x10081241		/* v3.16 KEY_TASKMANAGER */
+#define XKB_KEY_XF86Journal			0x10081242		/* v3.16 KEY_JOURNAL */
+#define XKB_KEY_XF86ControlPanel		0x10081243		/* v3.16 KEY_CONTROLPANEL */
+#define XKB_KEY_XF86AppSelect		0x10081244		/* v3.16 KEY_APPSELECT */
+#define XKB_KEY_XF86Screensaver		0x10081245		/* v3.16 KEY_SCREENSAVER */
+#define XKB_KEY_XF86VoiceCommand		0x10081246		/* v3.16 KEY_VOICECOMMAND */
+#define XKB_KEY_XF86Assistant		0x10081247		/* v4.13 KEY_ASSISTANT */
+/* Use: XK_ISO_Next_Group		_EVDEVK(0x248)		   v5.2  KEY_KBD_LAYOUT_NEXT */
+#define XKB_KEY_XF86BrightnessMin		0x10081250		/* v3.16 KEY_BRIGHTNESS_MIN */
+#define XKB_KEY_XF86BrightnessMax		0x10081251		/* v3.16 KEY_BRIGHTNESS_MAX */
+#define XKB_KEY_XF86KbdInputAssistPrev	0x10081260		/* v3.18 KEY_KBDINPUTASSIST_PREV */
+#define XKB_KEY_XF86KbdInputAssistNext	0x10081261		/* v3.18 KEY_KBDINPUTASSIST_NEXT */
+#define XKB_KEY_XF86KbdInputAssistPrevgroup	0x10081262		/* v3.18 KEY_KBDINPUTASSIST_PREVGROUP */
+#define XKB_KEY_XF86KbdInputAssistNextgroup	0x10081263		/* v3.18 KEY_KBDINPUTASSIST_NEXTGROUP */
+#define XKB_KEY_XF86KbdInputAssistAccept	0x10081264		/* v3.18 KEY_KBDINPUTASSIST_ACCEPT */
+#define XKB_KEY_XF86KbdInputAssistCancel	0x10081265		/* v3.18 KEY_KBDINPUTASSIST_CANCEL */
+#define XKB_KEY_XF86RightUp			0x10081266		/* v4.7  KEY_RIGHT_UP */
+#define XKB_KEY_XF86RightDown		0x10081267		/* v4.7  KEY_RIGHT_DOWN */
+#define XKB_KEY_XF86LeftUp			0x10081268		/* v4.7  KEY_LEFT_UP */
+#define XKB_KEY_XF86LeftDown			0x10081269		/* v4.7  KEY_LEFT_DOWN */
+#define XKB_KEY_XF86RootMenu			0x1008126a		/* v4.7  KEY_ROOT_MENU */
+#define XKB_KEY_XF86MediaTopMenu		0x1008126b		/* v4.7  KEY_MEDIA_TOP_MENU */
+#define XKB_KEY_XF86Numeric11		0x1008126c		/* v4.7  KEY_NUMERIC_11 */
+#define XKB_KEY_XF86Numeric12		0x1008126d		/* v4.7  KEY_NUMERIC_12 */
+#define XKB_KEY_XF86AudioDesc		0x1008126e		/* v4.7  KEY_AUDIO_DESC */
+#define XKB_KEY_XF863DMode			0x1008126f		/* v4.7  KEY_3D_MODE */
+#define XKB_KEY_XF86NextFavorite		0x10081270		/* v4.7  KEY_NEXT_FAVORITE */
+#define XKB_KEY_XF86StopRecord		0x10081271		/* v4.7  KEY_STOP_RECORD */
+#define XKB_KEY_XF86PauseRecord		0x10081272		/* v4.7  KEY_PAUSE_RECORD */
+#define XKB_KEY_XF86VOD			0x10081273		/* v4.7  KEY_VOD */
+#define XKB_KEY_XF86Unmute			0x10081274		/* v4.7  KEY_UNMUTE */
+#define XKB_KEY_XF86FastReverse		0x10081275		/* v4.7  KEY_FASTREVERSE */
+#define XKB_KEY_XF86SlowReverse		0x10081276		/* v4.7  KEY_SLOWREVERSE */
+#define XKB_KEY_XF86Data			0x10081277		/* v4.7  KEY_DATA */
+#define XKB_KEY_XF86OnScreenKeyboard		0x10081278		/* v4.12 KEY_ONSCREEN_KEYBOARD */
+#define XKB_KEY_XF86PrivacyScreenToggle	0x10081279		/* v5.5  KEY_PRIVACY_SCREEN_TOGGLE */
+#define XKB_KEY_XF86SelectiveScreenshot	0x1008127a		/* v5.6  KEY_SELECTIVE_SCREENSHOT */
+#define XKB_KEY_XF86Macro1			0x10081290		/* v5.5  KEY_MACRO1 */
+#define XKB_KEY_XF86Macro2			0x10081291		/* v5.5  KEY_MACRO2 */
+#define XKB_KEY_XF86Macro3			0x10081292		/* v5.5  KEY_MACRO3 */
+#define XKB_KEY_XF86Macro4			0x10081293		/* v5.5  KEY_MACRO4 */
+#define XKB_KEY_XF86Macro5			0x10081294		/* v5.5  KEY_MACRO5 */
+#define XKB_KEY_XF86Macro6			0x10081295		/* v5.5  KEY_MACRO6 */
+#define XKB_KEY_XF86Macro7			0x10081296		/* v5.5  KEY_MACRO7 */
+#define XKB_KEY_XF86Macro8			0x10081297		/* v5.5  KEY_MACRO8 */
+#define XKB_KEY_XF86Macro9			0x10081298		/* v5.5  KEY_MACRO9 */
+#define XKB_KEY_XF86Macro10			0x10081299		/* v5.5  KEY_MACRO10 */
+#define XKB_KEY_XF86Macro11			0x1008129a		/* v5.5  KEY_MACRO11 */
+#define XKB_KEY_XF86Macro12			0x1008129b		/* v5.5  KEY_MACRO12 */
+#define XKB_KEY_XF86Macro13			0x1008129c		/* v5.5  KEY_MACRO13 */
+#define XKB_KEY_XF86Macro14			0x1008129d		/* v5.5  KEY_MACRO14 */
+#define XKB_KEY_XF86Macro15			0x1008129e		/* v5.5  KEY_MACRO15 */
+#define XKB_KEY_XF86Macro16			0x1008129f		/* v5.5  KEY_MACRO16 */
+#define XKB_KEY_XF86Macro17			0x100812a0		/* v5.5  KEY_MACRO17 */
+#define XKB_KEY_XF86Macro18			0x100812a1		/* v5.5  KEY_MACRO18 */
+#define XKB_KEY_XF86Macro19			0x100812a2		/* v5.5  KEY_MACRO19 */
+#define XKB_KEY_XF86Macro20			0x100812a3		/* v5.5  KEY_MACRO20 */
+#define XKB_KEY_XF86Macro21			0x100812a4		/* v5.5  KEY_MACRO21 */
+#define XKB_KEY_XF86Macro22			0x100812a5		/* v5.5  KEY_MACRO22 */
+#define XKB_KEY_XF86Macro23			0x100812a6		/* v5.5  KEY_MACRO23 */
+#define XKB_KEY_XF86Macro24			0x100812a7		/* v5.5  KEY_MACRO24 */
+#define XKB_KEY_XF86Macro25			0x100812a8		/* v5.5  KEY_MACRO25 */
+#define XKB_KEY_XF86Macro26			0x100812a9		/* v5.5  KEY_MACRO26 */
+#define XKB_KEY_XF86Macro27			0x100812aa		/* v5.5  KEY_MACRO27 */
+#define XKB_KEY_XF86Macro28			0x100812ab		/* v5.5  KEY_MACRO28 */
+#define XKB_KEY_XF86Macro29			0x100812ac		/* v5.5  KEY_MACRO29 */
+#define XKB_KEY_XF86Macro30			0x100812ad		/* v5.5  KEY_MACRO30 */
+#define XKB_KEY_XF86MacroRecordStart		0x100812b0		/* v5.5  KEY_MACRO_RECORD_START */
+#define XKB_KEY_XF86MacroRecordStop		0x100812b1		/* v5.5  KEY_MACRO_RECORD_STOP */
+#define XKB_KEY_XF86MacroPresetCycle		0x100812b2		/* v5.5  KEY_MACRO_PRESET_CYCLE */
+#define XKB_KEY_XF86MacroPreset1		0x100812b3		/* v5.5  KEY_MACRO_PRESET1 */
+#define XKB_KEY_XF86MacroPreset2		0x100812b4		/* v5.5  KEY_MACRO_PRESET2 */
+#define XKB_KEY_XF86MacroPreset3		0x100812b5		/* v5.5  KEY_MACRO_PRESET3 */
+#define XKB_KEY_XF86KbdLcdMenu1		0x100812b8		/* v5.5  KEY_KBD_LCD_MENU1 */
+#define XKB_KEY_XF86KbdLcdMenu2		0x100812b9		/* v5.5  KEY_KBD_LCD_MENU2 */
+#define XKB_KEY_XF86KbdLcdMenu3		0x100812ba		/* v5.5  KEY_KBD_LCD_MENU3 */
+#define XKB_KEY_XF86KbdLcdMenu4		0x100812bb		/* v5.5  KEY_KBD_LCD_MENU4 */
+#define XKB_KEY_XF86KbdLcdMenu5		0x100812bc		/* v5.5  KEY_KBD_LCD_MENU5 */
+#undef _EVDEVK
 /*
  * Copyright (c) 1991, Oracle and/or its affiliates. All rights reserved.
  *
@@ -2897,7 +3136,7 @@
 SOFTWARE.
 
 HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD
-TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+TO THIS SOFTWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE.  Hewlett-Packard shall not be liable for errors
 contained herein or direct, indirect, special, incidental or
diff --git a/xkbcommon/xkbcommon-names.h b/include/xkbcommon/xkbcommon-names.h
similarity index 100%
rename from xkbcommon/xkbcommon-names.h
rename to include/xkbcommon/xkbcommon-names.h
diff --git a/xkbcommon/xkbcommon-x11.h b/include/xkbcommon/xkbcommon-x11.h
similarity index 100%
rename from xkbcommon/xkbcommon-x11.h
rename to include/xkbcommon/xkbcommon-x11.h
diff --git a/xkbcommon/xkbcommon.h b/include/xkbcommon/xkbcommon.h
similarity index 99%
rename from xkbcommon/xkbcommon.h
rename to include/xkbcommon/xkbcommon.h
index ee7143c..f52dcfa 100644
--- a/xkbcommon/xkbcommon.h
+++ b/include/xkbcommon/xkbcommon.h
@@ -355,6 +355,9 @@
      * A comma separated list of variants, one per layout, which may
      * modify or augment the respective layout in various ways.
      *
+     * Generally, should either be empty or have the same number of values
+     * as the number of layouts. You may use empty values as in "intl,,neo".
+     *
      * If NULL or the empty string "", and a default value is also used
      * for the layout, a default value is used.  Otherwise no variant is
      * used.
@@ -562,7 +565,7 @@
  *
  * The user may set some environment variables which affect the library:
  *
- * - `XKB_CONFIG_ROOT`, `XKB_EXTRA_PATH`, `XDG_CONFIG_DIR`, `HOME` - see @ref include-path.
+ * - `XKB_CONFIG_ROOT`, `XKB_CONFIG_EXTRA_PATH`, `XDG_CONFIG_DIR`, `HOME` - see @ref include-path.
  * - `XKB_LOG_LEVEL` - see xkb_context_set_log_level().
  * - `XKB_LOG_VERBOSITY` - see xkb_context_set_log_verbosity().
  * - `XKB_DEFAULT_RULES`, `XKB_DEFAULT_MODEL`, `XKB_DEFAULT_LAYOUT`,
@@ -653,7 +656,7 @@
  *   fallback to `$HOME/.config/` if unset.
  * - The path `$HOME/.xkb`, where $HOME is the value of the environment
  *   variable `HOME`.
- * - The `XKB_EXTRA_PATH` environment variable, if defined, otherwise the
+ * - The `XKB_CONFIG_EXTRA_PATH` environment variable, if defined, otherwise the
  *   system configuration directory, defined at library configuration time
  *   (usually `/etc/xkb`).
  * - The `XKB_CONFIG_ROOT` environment variable, if defined, otherwise
diff --git a/xkbcommon/xkbregistry.h b/include/xkbcommon/xkbregistry.h
similarity index 100%
rename from xkbcommon/xkbregistry.h
rename to include/xkbcommon/xkbregistry.h
diff --git a/meson.build b/meson.build
index 47c436f..fb77185 100644
--- a/meson.build
+++ b/meson.build
@@ -1,9 +1,9 @@
 project(
     'libxkbcommon',
     'c',
-    version: '1.0.3',
+    version: '1.4.0',
     default_options: [
-        'c_std=c99',
+        'c_std=c11',
         'warning_level=2',
         'b_lundef=true',
     ],
@@ -49,7 +49,7 @@
 
 XKBCONFIGEXTRAPATH = get_option('xkb-config-extra-path')
 if XKBCONFIGEXTRAPATH == ''
-    XKBCONFIGEXTRAPATH = join_paths(get_option('prefix'), get_option('sysconfdir'), 'xkb')
+    XKBCONFIGEXTRAPATH = get_option('prefix')/get_option('sysconfdir')/'xkb'
 endif
 
 # The X locale directory for compose.
@@ -125,8 +125,6 @@
 else
     message('C library does not support secure_getenv, using getenv instead')
 endif
-have_getopt_long = cc.has_header_symbol('getopt.h', 'getopt_long',
-                                        prefix: '#define _GNU_SOURCE')
 if not cc.has_header_symbol('limits.h', 'PATH_MAX', prefix: system_ext_define)
     if host_machine.system() == 'windows'
         # see https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
@@ -152,6 +150,7 @@
     name: '-Wl,--version-script',
 )
 
+map_to_def = find_program('scripts/map-to-def')
 
 # libxkbcommon.
 # Note: we use some yacc extensions, which work with either GNU bison
@@ -231,30 +230,42 @@
     'src/utils.h',
 ]
 libxkbcommon_link_args = []
+libxkbcommon_link_deps = []
 if have_version_script
     libxkbcommon_link_args += '-Wl,--version-script=' + meson.source_root()/'xkbcommon.map'
+    libxkbcommon_link_deps += 'xkbcommon.map'
+elif cc.get_argument_syntax() == 'msvc'
+    libxkbcommon_def = custom_target('xkbcommon.def',
+        command: [map_to_def, '@INPUT@', '@OUTPUT@'],
+        input: 'xkbcommon.map',
+        output: 'kxbcommon.def',
+    )
+    libxkbcommon_link_deps += libxkbcommon_def
+    libxkbcommon_link_args += '/DEF:' + libxkbcommon_def.full_path()
 endif
 libxkbcommon = library(
     'xkbcommon',
-    'xkbcommon/xkbcommon.h',
+    'include/xkbcommon/xkbcommon.h',
     libxkbcommon_sources,
     link_args: libxkbcommon_link_args,
-    link_depends: 'xkbcommon.map',
+    link_depends: libxkbcommon_link_deps,
     gnu_symbol_visibility: 'hidden',
     version: '0.0.0',
     install: true,
-    include_directories: include_directories('src'),
+    include_directories: include_directories('src', 'include'),
 )
 install_headers(
-    'xkbcommon/xkbcommon.h',
-    'xkbcommon/xkbcommon-compat.h',
-    'xkbcommon/xkbcommon-compose.h',
-    'xkbcommon/xkbcommon-keysyms.h',
-    'xkbcommon/xkbcommon-names.h',
+    'include/xkbcommon/xkbcommon.h',
+    'include/xkbcommon/xkbcommon-compat.h',
+    'include/xkbcommon/xkbcommon-compose.h',
+    'include/xkbcommon/xkbcommon-keysyms.h',
+    'include/xkbcommon/xkbcommon-names.h',
     subdir: 'xkbcommon',
 )
-libxkbcommon_dep = declare_dependency(
+
+dep_libxkbcommon = declare_dependency(
     link_with: libxkbcommon,
+    include_directories: include_directories('include'),
 )
 pkgconfig.generate(
     libxkbcommon,
@@ -287,19 +298,29 @@
         'src/atom.c',
     ]
     libxkbcommon_x11_link_args = []
+    libxkbcommon_x11_link_deps = []
     if have_version_script
         libxkbcommon_x11_link_args += '-Wl,--version-script=' + meson.source_root()/'xkbcommon-x11.map'
+        libxkbcommon_x11_link_deps += 'xkbcommon-x11.map'
+    elif cc.get_argument_syntax() == 'msvc'
+        libxkbcommon_x11_def = custom_target('xkbcommon-x11.def',
+            command: [map_to_def, '@INPUT@', '@OUTPUT@'],
+            input: 'xkbcommon-x11.map',
+            output: 'xkbcommon-x11.def',
+        )
+        libxkbcommon_x11_link_deps += libxkbcommon_x11_def
+        libxkbcommon_x11_link_args += '/DEF:' + libxkbcommon_x11_def.full_path()
     endif
     libxkbcommon_x11 = library(
         'xkbcommon-x11',
-        'xkbcommon/xkbcommon-x11.h',
+        'include/xkbcommon/xkbcommon-x11.h',
         libxkbcommon_x11_sources,
         link_args: libxkbcommon_x11_link_args,
-        link_depends: 'xkbcommon-x11.map',
+        link_depends: libxkbcommon_x11_link_deps,
         gnu_symbol_visibility: 'hidden',
         version: '0.0.0',
         install: true,
-        include_directories: include_directories('src'),
+        include_directories: include_directories('src', 'include'),
         link_with: libxkbcommon,
         dependencies: [
             xcb_dep,
@@ -307,11 +328,12 @@
         ],
     )
     install_headers(
-        'xkbcommon/xkbcommon-x11.h',
+        'include/xkbcommon/xkbcommon-x11.h',
         subdir: 'xkbcommon',
     )
-    libxkbcommon_x11_dep = declare_dependency(
+    dep_libxkbcommon_x11 = declare_dependency(
         link_with: libxkbcommon_x11,
+        include_directories: include_directories('include'),
     )
     pkgconfig.generate(
         libxkbcommon_x11,
@@ -336,23 +358,33 @@
         'src/util-list.c',
     ]
     libxkbregistry_link_args = []
+    libxkbregistry_link_deps = []
     if have_version_script
         libxkbregistry_link_args += '-Wl,--version-script=' + meson.source_root()/'xkbregistry.map'
+        libxkbregistry_link_deps += 'xkbregistry.map'
+    elif cc.get_argument_syntax() == 'msvc'
+        libxkbregistry_def = custom_target('xkbregistry.def',
+            command: [map_to_def, '@INPUT@', '@OUTPUT@'],
+            input: 'xkbregistry.map',
+            output: 'xkbregistry.def',
+        )
+        libxkbregistry_link_deps += libxkbregistry_def
+        libxkbregistry_link_args += '/DEF:' + libxkbregistry_def.full_path()
     endif
     libxkbregistry = library(
         'xkbregistry',
-        'xkbcommon/xkbregistry.h',
+        'include/xkbcommon/xkbregistry.h',
         libxkbregistry_sources,
         link_args: libxkbregistry_link_args,
-        link_depends: 'xkbregistry.map',
+        link_depends: libxkbregistry_link_deps,
         gnu_symbol_visibility: 'hidden',
         dependencies: deps_libxkbregistry,
         version: '0.0.0',
         install: true,
-        include_directories: include_directories('src'),
+        include_directories: include_directories('src', 'include'),
     )
     install_headers(
-        'xkbcommon/xkbregistry.h',
+        'include/xkbcommon/xkbregistry.h',
         subdir: 'xkbcommon',
     )
     pkgconfig.generate(
@@ -364,24 +396,24 @@
     )
 
     dep_libxkbregistry = declare_dependency(
-                                include_directories: include_directories('xkbcommon'),
-                                link_with: libxkbregistry
-                                )
+        link_with: libxkbregistry,
+        include_directories: include_directories('include'),
+    )
 endif
 
 man_pages = []
 
 # Tools
-build_tools = have_getopt_long
+build_tools = get_option('enable-tools') and cc.has_header_symbol('getopt.h', 'getopt_long', prefix: '#define _GNU_SOURCE')
 if build_tools
     libxkbcommon_tools_internal = static_library(
         'tools-internal',
         'tools/tools-common.h',
         'tools/tools-common.c',
-        dependencies: libxkbcommon_dep,
+        dependencies: dep_libxkbcommon,
     )
     tools_dep = declare_dependency(
-        include_directories: [include_directories('tools')],
+        include_directories: [include_directories('tools', 'include')],
         link_with: libxkbcommon_tools_internal,
     )
 
@@ -389,11 +421,11 @@
                dependencies: tools_dep, install: true)
     install_man('tools/xkbcli.1')
 
-    executable('xkbcli-compile-keymap',
-               'tools/compile-keymap.c',
-               dependencies: tools_dep,
-               install: true,
-               install_dir: dir_libexec)
+    xkbcli_compile_keymap = executable('xkbcli-compile-keymap',
+                                       'tools/compile-keymap.c',
+                                       dependencies: tools_dep,
+                                       install: true,
+                                       install_dir: dir_libexec)
     install_man('tools/xkbcli-compile-keymap.1')
     # The same tool again, but with access to some private APIs.
     executable('compile-keymap',
@@ -401,7 +433,12 @@
                libxkbcommon_sources,
                dependencies: [tools_dep],
                c_args: ['-DENABLE_PRIVATE_APIS'],
-               include_directories: [include_directories('src')],
+               include_directories: [include_directories('src', 'include')],
+               install: false)
+    executable('compose',
+               'tools/compose.c',
+               dependencies: tools_dep,
+               include_directories: [include_directories('src', 'include')],
                install: false)
     configh_data.set10('HAVE_XKBCLI_COMPILE_KEYMAP', true)
     executable('xkbcli-how-to-type',
@@ -518,17 +555,17 @@
     'bench/bench.c',
     'bench/bench.h',
     libxkbcommon_sources,
-    include_directories: include_directories('src'),
+    include_directories: include_directories('src', 'include'),
 )
 test_dep = declare_dependency(
-    include_directories: include_directories('src'),
+    include_directories: include_directories('src', 'include'),
     link_with: libxkbcommon_test_internal,
 )
 if get_option('enable-x11')
     libxkbcommon_x11_internal = static_library(
         'xkbcommon-x11-internal',
         libxkbcommon_x11_sources,
-        include_directories: include_directories('src'),
+        include_directories: include_directories('src', 'include'),
         link_with: libxkbcommon_test_internal,
         dependencies: [
             xcb_dep,
@@ -657,6 +694,22 @@
          find_program('test/tool-option-parsing.py'),
          env: test_env,
          suite: ['python-tests'])
+
+    # A set of keysyms to test for. Add one or two symbols to this array
+    # whenever the xorgproto gets updated to make sure we resolve them.
+    keysyms_to_test = [
+        'XF86Macro23',
+    ]
+
+    env = environment()
+    env.set('XKB_CONFIG_ROOT', meson.source_root()/'test'/'data')
+    foreach keysym: keysyms_to_test
+        test('keysym-test-@0@'.format(keysym),
+             find_program('test/test-keysym.py'),
+             env: env,
+             args: [keysym, '--tool', xkbcli_compile_keymap],
+             suite: ['python-tests'])
+    endforeach
 endif
 
 valgrind = find_program('valgrind', required: false)
@@ -701,6 +754,11 @@
     executable('bench-compose', 'bench/compose.c', dependencies: test_dep),
     env: bench_env,
 )
+benchmark(
+    'atom',
+    executable('bench-atom', 'bench/atom.c', dependencies: test_dep),
+    env: bench_env,
+)
 if get_option('enable-x11')
   benchmark(
       'x11',
@@ -726,11 +784,12 @@
         'doc/compat.md',
         'doc/user-configuration.md',
         'doc/rules-format.md',
-        'xkbcommon/xkbcommon.h',
-        'xkbcommon/xkbcommon-names.h',
-        'xkbcommon/xkbcommon-x11.h',
-        'xkbcommon/xkbcommon-compose.h',
-        'xkbcommon/xkbregistry.h',
+        'doc/keymap-format-text-v1.md',
+        'include/xkbcommon/xkbcommon.h',
+        'include/xkbcommon/xkbcommon-names.h',
+        'include/xkbcommon/xkbcommon-x11.h',
+        'include/xkbcommon/xkbcommon-compose.h',
+        'include/xkbcommon/xkbregistry.h',
     ]
     doxygen_data = configuration_data()
     doxygen_data.set('PACKAGE_NAME', meson.project_name())
@@ -756,3 +815,14 @@
 endif
 
 configure_file(output: 'config.h', configuration: configh_data)
+
+
+# Stable variables for projects using xkbcommon as a subproject.
+# These variables should not be renamed.
+libxkbcommon_dep = dep_libxkbcommon
+if get_option('enable-x11')
+  libxkbcommon_x11_dep = dep_libxkbcommon_x11
+endif
+if get_option('enable-xkbregistry')
+  libxkbregistry_dep = dep_libxkbregistry
+endif
diff --git a/meson_options.txt b/meson_options.txt
index 04982c6..69850b8 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -44,6 +44,12 @@
     description: 'Default XKB options',
 )
 option(
+    'enable-tools',
+    type: 'boolean',
+    value: true,
+    description: 'Enable building tools',
+)
+option(
     'enable-x11',
     type: 'boolean',
     value: true,
@@ -59,7 +65,7 @@
     'enable-wayland',
     type: 'boolean',
     value: true,
-    description: 'Enable support for Wayland utility programs',
+    description: 'Enable support for Wayland utility programs (requires enable-tools)',
 )
 option(
     'enable-xkbregistry',
diff --git a/scripts/makeheader b/scripts/makeheader
index 600b565..52d1375 100755
--- a/scripts/makeheader
+++ b/scripts/makeheader
@@ -3,6 +3,9 @@
 import re
 import os
 
+# expected format:
+# #define XF86XK_FooBar _EVDEVK(0x123) /* some optional comment */
+evdev_pattern = re.compile(r'^#define\s+XF86XK_(?P<name>\w+)\s+_EVDEVK\((?P<value>0x[0-9A-Fa-f]+)\)')
 
 prefix = os.environ.get('X11_HEADERS_PREFIX', '/usr')
 HEADERS = [
@@ -35,6 +38,14 @@
             if 'XK_Ydiaeresis' in line and '0x100000ee' in line:
                 continue
 
+            # Replace the xorgproto _EVDEVK macro with the actual value
+            # 0x10081000 is the base, the evdev hex code is added to that.
+            # We replace to make parsing of the keys later easier.
+            match = re.match(evdev_pattern, line)
+            if match:
+                value = 0x10081000 + int(match.group('value'), 16)
+                line = re.sub(r'_EVDEVK\(0x([0-9A-Fa-f]+)\)', '{:#x}'.format(value), line)
+
             line = re.sub(r'#define\s*(\w*)XK_', r'#define XKB_KEY_\1', line)
 
             print(line, end='')
diff --git a/scripts/makekeys b/scripts/makekeys
index f6a0280..fe30067 100755
--- a/scripts/makekeys
+++ b/scripts/makekeys
@@ -2,10 +2,15 @@
 
 import re, sys, itertools
 
+import perfect_hash
+
 pattern = re.compile(r'^#define\s+XKB_KEY_(?P<name>\w+)\s+(?P<value>0x[0-9a-fA-F]+)\s')
 matches = [pattern.match(line) for line in open(sys.argv[1])]
 entries = [(m.group("name"), int(m.group("value"), 16)) for m in matches if m]
 
+entries_isorted = sorted(entries, key=lambda e: e[0].lower())
+entries_kssorted = sorted(entries, key=lambda e: e[1])
+
 print('''
 /**
  * This file comes from libxkbcommon and was generated by makekeys.py
@@ -24,7 +29,7 @@
 static const char *keysym_names =
 '''.strip())
 offs = 0
-for (name, _) in sorted(entries, key=lambda e: e[0].lower()):
+for (name, _) in entries_isorted:
     entry_offsets[name] = offs
     print('    "{name}\\0"'.format(name=name))
     offs += len(name) + 1
@@ -35,6 +40,35 @@
 #endif
 '''.strip())
 
+
+template = r'''
+static const uint16_t keysym_name_G[] = {
+    $G
+};
+
+static size_t
+keysym_name_hash_f(const char *key, const char *T)
+{
+    size_t sum = 0;
+    for (size_t i = 0; key[i] != '\0'; i++)
+        sum += T[i % $NS] * key[i];
+    return sum % $NG;
+}
+
+static size_t
+keysym_name_perfect_hash(const char *key)
+{
+    return (
+        keysym_name_G[keysym_name_hash_f(key, "$S1")] +
+        keysym_name_G[keysym_name_hash_f(key, "$S2")]
+    ) % $NG;
+}
+'''
+print(perfect_hash.generate_code(
+    keys=[name for name, value in entries_isorted],
+    template=template,
+))
+
 print('''
 struct name_keysym {
     xkb_keysym_t keysym;
@@ -46,10 +80,10 @@
         print('    {{ 0x{value:08x}, {offs} }}, /* {name} */'.format(offs=entry_offsets[name], value=value, name=name))
 
 print('static const struct name_keysym name_to_keysym[] = {')
-print_entries(sorted(entries, key=lambda e: e[0].lower()))
+print_entries(entries_isorted)
 print('};\n')
 
 # *.sort() is stable so we always get the first keysym for duplicate
 print('static const struct name_keysym keysym_to_name[] = {')
-print_entries(next(g[1]) for g in itertools.groupby(sorted(entries, key=lambda e: e[1]), key=lambda e: e[1]))
+print_entries(next(g[1]) for g in itertools.groupby(entries_kssorted, key=lambda e: e[1]))
 print('};')
diff --git a/scripts/map-to-def b/scripts/map-to-def
new file mode 100755
index 0000000..63b566e
--- /dev/null
+++ b/scripts/map-to-def
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+
+"""A script to generate MSVC Module-Definition files from version-script
+files (which are maintained manually)."""
+
+import re
+import sys
+import pathlib
+
+
+def symbols_from_map(path):
+    return re.findall(r'^\s+(r?xkb_.*);', path.read_text('utf-8'), re.MULTILINE)
+
+
+if 2 > len(sys.argv) > 3:
+    raise SystemExit("Usage: {} file.map [file.def]".format(sys.argv[0]))
+
+
+map_file = pathlib.Path(sys.argv[1])
+map_symbols = set(symbols_from_map(map_file))
+
+if len(sys.argv) == 3:
+    def_file = open(sys.argv[2], "w", encoding="utf-8")
+else:
+    def_file = sys.stdout
+
+def_file.write("LIBRARY {}\n".format(map_file.stem))
+def_file.write("EXPORTS\n")
+for symbol in sorted(map_symbols):
+    def_file.write("\t{}\n".format(symbol))
diff --git a/scripts/meson-junit-report.py b/scripts/meson-junit-report.py
deleted file mode 100644
index a6cbb0b..0000000
--- a/scripts/meson-junit-report.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-import json
-import sys
-import unicodedata
-import xml.etree.ElementTree as ET
-from datetime import datetime
-
-
-aparser = argparse.ArgumentParser(
-    description='Convert Meson test log into JUnit report')
-aparser.add_argument('--project-name', metavar='NAME',
-                     help='The project name',
-                     default='unknown')
-aparser.add_argument('--job-id', metavar='ID',
-                     help='The job ID for the report',
-                     default='Unknown')
-aparser.add_argument('--branch', metavar='NAME',
-                     help='Branch of the project being tested',
-                     default='master')
-aparser.add_argument('--output', metavar='FILE',
-                     help='The output file, stdout by default',
-                     type=argparse.FileType('w', encoding='UTF-8'),
-                     default=sys.stdout)
-aparser.add_argument('infile', metavar='FILE',
-                     help='The input testlog.json, stdin by default',
-                     type=argparse.FileType('r', encoding='UTF-8'),
-                     default=sys.stdin)
-args = aparser.parse_args()
-
-outfile = args.output
-
-testsuites = ET.Element('testsuites')
-testsuites.set('id', '{}/{}'.format(args.job_id, args.branch))
-testsuites.set('package', args.project_name)
-testsuites.set('timestamp', datetime.utcnow().isoformat(timespec='minutes'))
-
-testsuite = ET.SubElement(testsuites, 'testsuite')
-testsuite.set('name', args.project_name)
-
-successes = 0
-failures = 0
-skips = 0
-
-
-def escape_control_chars(text):
-    return "".join(c if unicodedata.category(c)[0] != "C" else
-                   "<{:02x}>".format(ord(c)) for c in text)
-
-
-for line in args.infile:
-    unit = json.loads(line)
-
-    testcase = ET.SubElement(testsuite, 'testcase')
-    testcase.set('classname', '{}/{}'.format(args.project_name, unit['name']))
-    testcase.set('name', unit['name'])
-    testcase.set('time', str(unit['duration']))
-
-    stdout = escape_control_chars(unit.get('stdout', ''))
-    stderr = escape_control_chars(unit.get('stderr', ''))
-    if stdout:
-        ET.SubElement(testcase, 'system-out').text = stdout
-    if stderr:
-        ET.SubElement(testcase, 'system-out').text = stderr
-
-    result = unit['result'].lower()
-    if result == 'skip':
-        skips += 1
-        ET.SubElement(testcase, 'skipped')
-    elif result == 'fail':
-        failures += 1
-        failure = ET.SubElement(testcase, 'failure')
-        failure.set('message', "{} failed".format(unit['name']))
-        failure.text = "### stdout\n{}\n### stderr\n{}\n".format(stdout,
-                                                                 stderr)
-    else:
-        successes += 1
-        assert unit['returncode'] == 0
-
-testsuite.set('tests', str(successes + failures + skips))
-testsuite.set('skipped', str(skips))
-testsuite.set('errors', str(failures))
-testsuite.set('failures', str(failures))
-
-print('{}: {} pass, {} fail, {} skip'.format(args.project_name,
-                                             successes,
-                                             failures,
-                                             skips))
-
-output = ET.tostring(testsuites, encoding='unicode')
-outfile.write(output)
diff --git a/scripts/perfect_hash.py b/scripts/perfect_hash.py
new file mode 100644
index 0000000..95c6156
--- /dev/null
+++ b/scripts/perfect_hash.py
@@ -0,0 +1,674 @@
+# Derived from: https://github.com/ilanschnell/perfect-hash
+# Commit: 6b7dd80a525dbd4349ea2c69f04a9c96f3c2fd54
+
+# BSD 3-Clause License
+#
+# Copyright (c) 2019 - 2021, Ilan Schnell
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of the Ilan Schnell nor the
+#       names of its contributors may be used to endorse or promote products
+#       derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ILAN SCHNELL BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""
+Generate a minimal perfect hash function for the keys in a file,
+desired hash values may be specified within this file as well.
+A given code template is filled with parameters, such that the
+output is code which implements the hash function.
+Templates can easily be constructed for any programming language.
+
+The code is based on an a program A.M. Kuchling wrote:
+http://www.amk.ca/python/code/perfect-hash
+
+The algorithm the program uses is described in the paper
+'Optimal algorithms for minimal perfect hashing',
+Z. J. Czech, G. Havas and B.S. Majewski.
+http://citeseer.ist.psu.edu/122364.html
+
+The algorithm works like this:
+
+1.  You have K keys, that you want to perfectly hash against some
+    desired hash values.
+
+2.  Choose a number N larger than K.  This is the number of
+    vertices in a graph G, and also the size of the resulting table G.
+
+3.  Pick two random hash functions f1, f2, that return values from 0..N-1.
+
+4.  Now, for all keys, you draw an edge between vertices f1(key) and f2(key)
+    of the graph G, and associate the desired hash value with that edge.
+
+5.  If G is cyclic, go back to step 2.
+
+6.  Assign values to each vertex such that, for each edge, you can add
+    the values for the two vertices and get the desired (hash) value
+    for that edge.  This task is easy, because the graph is acyclic.
+    This is done by picking a vertex, and assigning it a value of 0.
+    Then do a depth-first search, assigning values to new vertices so that
+    they sum up properly.
+
+7.  f1, f2, and vertex values of G now make up a perfect hash function.
+
+
+For simplicity, the implementation of the algorithm combines steps 5 and 6.
+That is, we check for loops in G and assign the vertex values in one procedure.
+If this procedure succeeds, G is acyclic and the vertex values are assigned.
+If the procedure fails, G is cyclic, and we go back to step 2, replacing G
+with a new graph, and thereby discarding the vertex values from the failed
+attempt.
+"""
+from __future__ import absolute_import, division, print_function
+
+import sys
+import random
+import string
+import subprocess
+import shutil
+import tempfile
+from collections import defaultdict
+from os.path import join
+
+if sys.version_info[0] == 2:
+    from cStringIO import StringIO
+else:
+    from io import StringIO
+
+
+__version__ = '0.4.2'
+
+
+verbose = False
+trials = 150
+
+
+class Graph(object):
+    """
+    Implements a graph with 'N' vertices.  First, you connect the graph with
+    edges, which have a desired value associated.  Then the vertex values
+    are assigned, which will fail if the graph is cyclic.  The vertex values
+    are assigned such that the two values corresponding to an edge add up to
+    the desired edge value (mod N).
+    """
+    def __init__(self, N):
+        self.N = N                     # number of vertices
+
+        # maps a vertex number to the list of tuples (vertex, edge value)
+        # to which it is connected by edges.
+        self.adjacent = defaultdict(list)
+
+    def connect(self, vertex1, vertex2, edge_value):
+        """
+        Connect 'vertex1' and 'vertex2' with an edge, with associated
+        value 'value'
+        """
+        # Add vertices to each other's adjacent list
+        self.adjacent[vertex1].append((vertex2, edge_value))
+        self.adjacent[vertex2].append((vertex1, edge_value))
+
+    def assign_vertex_values(self):
+        """
+        Try to assign the vertex values, such that, for each edge, you can
+        add the values for the two vertices involved and get the desired
+        value for that edge, i.e. the desired hash key.
+        This will fail when the graph is cyclic.
+
+        This is done by a Depth-First Search of the graph.  If the search
+        finds a vertex that was visited before, there's a loop and False is
+        returned immediately, i.e. the assignment is terminated.
+        On success (when the graph is acyclic) True is returned.
+        """
+        self.vertex_values = self.N * [-1]  # -1 means unassigned
+
+        visited = self.N * [False]
+
+        # Loop over all vertices, taking unvisited ones as roots.
+        for root in range(self.N):
+            if visited[root]:
+                continue
+
+            # explore tree starting at 'root'
+            self.vertex_values[root] = 0    # set arbitrarily to zero
+
+            # Stack of vertices to visit, a list of tuples (parent, vertex)
+            tovisit = [(None, root)]
+            while tovisit:
+                parent, vertex = tovisit.pop()
+                visited[vertex] = True
+
+                # Loop over adjacent vertices, but skip the vertex we arrived
+                # here from the first time it is encountered.
+                skip = True
+                for neighbor, edge_value in self.adjacent[vertex]:
+                    if skip and neighbor == parent:
+                        skip = False
+                        continue
+
+                    if visited[neighbor]:
+                        # We visited here before, so the graph is cyclic.
+                        return False
+
+                    tovisit.append((vertex, neighbor))
+
+                    # Set new vertex's value to the desired edge value,
+                    # minus the value of the vertex we came here from.
+                    self.vertex_values[neighbor] = (
+                        edge_value - self.vertex_values[vertex]) % self.N
+
+        # check if all vertices have a valid value
+        for vertex in range(self.N):
+            assert self.vertex_values[vertex] >= 0
+
+        # We got though, so the graph is acyclic,
+        # and all values are now assigned.
+        return True
+
+
+class StrSaltHash(object):
+    """
+    Random hash function generator.
+    Simple byte level hashing: each byte is multiplied to another byte from
+    a random string of characters, summed up, and finally modulo NG is
+    taken.
+    """
+    chars = string.ascii_letters + string.digits
+
+    def __init__(self, N):
+        self.N = N
+        self.salt = ''
+
+    def __call__(self, key):
+        # XXX: xkbcommon modification: make the salt length a power of 2
+        #      so that the % operation in the hash is fast.
+        while len(self.salt) < max(len(key), 32): # add more salt as necessary
+            self.salt += random.choice(self.chars)
+
+        return sum(ord(self.salt[i]) * ord(c)
+                   for i, c in enumerate(key)) % self.N
+
+    template = """
+def hash_f(key, T):
+    return sum(ord(T[i % $NS]) * ord(c) for i, c in enumerate(key)) % $NG
+
+def perfect_hash(key):
+    return (G[hash_f(key, "$S1")] +
+            G[hash_f(key, "$S2")]) % $NG
+"""
+
+class IntSaltHash(object):
+    """
+    Random hash function generator.
+    Simple byte level hashing, each byte is multiplied in sequence to a table
+    containing random numbers, summed tp, and finally modulo NG is taken.
+    """
+    def __init__(self, N):
+        self.N = N
+        self.salt = []
+
+    def __call__(self, key):
+        while len(self.salt) < len(key): # add more salt as necessary
+            self.salt.append(random.randint(1, self.N - 1))
+
+        return sum(self.salt[i] * ord(c)
+                   for i, c in enumerate(key)) % self.N
+
+    template = """
+S1 = [$S1]
+S2 = [$S2]
+assert len(S1) == len(S2) == $NS
+
+def hash_f(key, T):
+    return sum(T[i % $NS] * ord(c) for i, c in enumerate(key)) % $NG
+
+def perfect_hash(key):
+    return (G[hash_f(key, S1)] + G[hash_f(key, S2)]) % $NG
+"""
+
+def builtin_template(Hash):
+    return """\
+# =======================================================================
+# ================= Python code for perfect hash function ===============
+# =======================================================================
+
+G = [$G]
+""" + Hash.template + """
+# ============================ Sanity check =============================
+
+K = [$K]
+assert len(K) == $NK
+
+for h, k in enumerate(K):
+    assert perfect_hash(k) == h
+"""
+
+
+class TooManyInterationsError(Exception):
+    pass
+
+
+def generate_hash(keys, Hash=StrSaltHash):
+    """
+    Return hash functions f1 and f2, and G for a perfect minimal hash.
+    Input is an iterable of 'keys', whos indicies are the desired hash values.
+    'Hash' is a random hash function generator, that means Hash(N) returns a
+    returns a random hash function which returns hash values from 0..N-1.
+    """
+    if not isinstance(keys, (list, tuple)):
+        raise TypeError("list or tuple expected")
+    NK = len(keys)
+    if NK != len(set(keys)):
+        raise ValueError("duplicate keys")
+    for key in keys:
+        if not isinstance(key, str):
+            raise TypeError("key a not string: %r" % key)
+    if NK > 10000 and Hash == StrSaltHash:
+        print("""\
+WARNING: You have %d keys.
+         Using --hft=1 is likely to fail for so many keys.
+         Please use --hft=2 instead.
+""" % NK)
+
+    # the number of vertices in the graph G
+    NG = NK + 1
+    if verbose:
+        print('NG = %d' % NG)
+
+    trial = 0  # Number of trial graphs so far
+    while True:
+        if (trial % trials) == 0:   # trials failures, increase NG slightly
+            if trial > 0:
+                NG = max(NG + 1, int(1.05 * NG))
+            if verbose:
+                sys.stdout.write('\nGenerating graphs NG = %d ' % NG)
+        trial += 1
+
+        if NG > 100 * (NK + 1):
+            raise TooManyInterationsError("%d keys" % NK)
+
+        if verbose:
+            sys.stdout.write('.')
+            sys.stdout.flush()
+
+        G = Graph(NG)   # Create graph with NG vertices
+        f1 = Hash(NG)   # Create 2 random hash functions
+        f2 = Hash(NG)
+
+        # Connect vertices given by the values of the two hash functions
+        # for each key.  Associate the desired hash value with each edge.
+        for hashval, key in enumerate(keys):
+            G.connect(f1(key), f2(key), hashval)
+
+        # Try to assign the vertex values.  This will fail when the graph
+        # is cyclic.  But when the graph is acyclic it will succeed and we
+        # break out, because we're done.
+        if G.assign_vertex_values():
+            break
+
+    if verbose:
+        print('\nAcyclic graph found after %d trials.' % trial)
+        print('NG = %d' % NG)
+
+    # Sanity check the result by actually verifying that all the keys
+    # hash to the right value.
+    for hashval, key in enumerate(keys):
+        assert hashval == (
+            G.vertex_values[f1(key)] + G.vertex_values[f2(key)]
+        ) % NG
+
+    if verbose:
+        print('OK')
+
+    return f1, f2, G.vertex_values
+
+
+class Format(object):
+
+    def __init__(self, width=76, indent=4, delimiter=', '):
+        self.width = width
+        self.indent = indent
+        self.delimiter = delimiter
+
+    def print_format(self):
+        print("Format options:")
+        for name in 'width', 'indent', 'delimiter':
+            print('  %s: %r' % (name, getattr(self, name)))
+
+    def __call__(self, data, quote=False):
+        if not isinstance(data, (list, tuple)):
+            return str(data)
+
+        lendel = len(self.delimiter)
+        aux = StringIO()
+        pos = 20
+        for i, elt in enumerate(data):
+            last = bool(i == len(data) - 1)
+
+            s = ('"%s"' if quote else '%s') % elt
+
+            if pos + len(s) + lendel > self.width:
+                aux.write('\n' + (self.indent * ' '))
+                pos = self.indent
+
+            aux.write(s)
+            pos += len(s)
+            if not last:
+                aux.write(self.delimiter)
+                pos += lendel
+
+        return '\n'.join(l.rstrip() for l in aux.getvalue().split('\n'))
+
+
+def generate_code(keys, Hash=StrSaltHash, template=None, options=None):
+    """
+    Takes a list of key value pairs and inserts the generated parameter
+    lists into the 'template' string.  'Hash' is the random hash function
+    generator, and the optional keywords are formating options.
+    The return value is the substituted code template.
+    """
+    f1, f2, G = generate_hash(keys, Hash)
+
+    assert f1.N == f2.N == len(G)
+    try:
+        salt_len = len(f1.salt)
+        assert salt_len == len(f2.salt)
+    except TypeError:
+        salt_len = None
+
+    if template is None:
+        template = builtin_template(Hash)
+
+    if options is None:
+        fmt = Format()
+    else:
+        fmt = Format(width=options.width, indent=options.indent,
+                     delimiter=options.delimiter)
+
+    if verbose:
+        fmt.print_format()
+
+    return string.Template(template).substitute(
+        NS = salt_len,
+        S1 = fmt(f1.salt),
+        S2 = fmt(f2.salt),
+        NG = len(G),
+        G  = fmt(G),
+        NK = len(keys),
+        K  = fmt(list(keys), quote=True))
+
+
+def read_table(filename, options):
+    """
+    Reads keys and desired hash value pairs from a file.  If no column
+    for the hash value is specified, a sequence of hash values is generated,
+    from 0 to N-1, where N is the number of rows found in the file.
+    """
+    if verbose:
+        print("Reading table from file `%s' to extract keys." % filename)
+    try:
+        fi = open(filename)
+    except IOError:
+        sys.exit("Error: Could not open `%s' for reading." % filename)
+
+    keys = []
+
+    if verbose:
+        print("Reader options:")
+        for name in 'comment', 'splitby', 'keycol':
+            print('  %s: %r' % (name, getattr(options, name)))
+
+    for n, line in enumerate(fi):
+        line = line.strip()
+        if not line or line.startswith(options.comment):
+            continue
+
+        if line.count(options.comment): # strip content after comment
+            line = line.split(options.comment)[0].strip()
+
+        row = [col.strip() for col in line.split(options.splitby)]
+
+        try:
+            key = row[options.keycol - 1]
+        except IndexError:
+            sys.exit("%s:%d: Error: Cannot read key, not enough columns." %
+                     (filename, n + 1))
+
+        keys.append(key)
+
+    fi.close()
+
+    if not keys:
+        exit("Error: no keys found in file `%s'." % filename)
+
+    return keys
+
+
+def read_template(filename):
+    if verbose:
+        print("Reading template from file `%s'" % filename)
+    try:
+        with open(filename, 'r') as fi:
+            return fi.read()
+    except IOError:
+        sys.exit("Error: Could not open `%s' for reading." % filename)
+
+
+def run_code(code):
+    tmpdir = tempfile.mkdtemp()
+    path = join(tmpdir, 't.py')
+    with open(path, 'w') as fo:
+        fo.write(code)
+    try:
+        subprocess.check_call([sys.executable, path])
+    except subprocess.CalledProcessError as e:
+        raise AssertionError(e)
+    finally:
+        shutil.rmtree(tmpdir)
+
+
+def main():
+    from optparse import OptionParser
+
+    usage = "usage: %prog [options] KEYS_FILE [TMPL_FILE]"
+
+    description = """\
+Generates code for perfect hash functions from
+a file with keywords and a code template.
+If no template file is provided, a small built-in Python template
+is processed and the output code is written to stdout.
+"""
+
+    parser = OptionParser(usage = usage,
+                          description = description,
+                          prog = sys.argv[0],
+                          version = "%prog: " + __version__)
+
+    parser.add_option("--delimiter",
+                      action  = "store",
+                      default = ", ",
+                      help    = "Delimiter for list items used in output, "
+                                "the default delimiter is '%default'",
+                      metavar = "STR")
+
+    parser.add_option("--indent",
+                      action  = "store",
+                      default = 4,
+                      type    = "int",
+                      help    = "Make INT spaces at the beginning of a "
+                                "new line when generated list is wrapped. "
+                                "Default is %default",
+                      metavar = "INT")
+
+    parser.add_option("--width",
+                      action  = "store",
+                      default = 76,
+                      type    = "int",
+                      help    = "Maximal width of generated list when "
+                                "wrapped.  Default width is %default",
+                      metavar = "INT")
+
+    parser.add_option("--comment",
+                      action  = "store",
+                      default = "#",
+                      help    = "STR is the character, or sequence of "
+                                "characters, which marks the beginning "
+                                "of a comment (which runs till "
+                                "the end of the line), in the input "
+                                "KEYS_FILE. "
+                                "Default is '%default'",
+                      metavar = "STR")
+
+    parser.add_option("--splitby",
+                      action  = "store",
+                      default = ",",
+                      help    = "STR is the character by which the columns "
+                                "in the input KEYS_FILE are split. "
+                                "Default is '%default'",
+                      metavar = "STR")
+
+    parser.add_option("--keycol",
+                      action  = "store",
+                      default = 1,
+                      type    = "int",
+                      help    = "Specifies the column INT in the input "
+                                "KEYS_FILE which contains the keys. "
+                                "Default is %default, i.e. the first column.",
+                      metavar = "INT")
+
+    parser.add_option("--trials",
+                      action  = "store",
+                      default = 5,
+                      type    = "int",
+                      help    = "Specifies the number of trials before "
+                                "NG is increased.  A small INT will give "
+                                "compute faster, but the array G will be "
+                                "large.  A large INT will take longer to "
+                                "compute but G will be smaller. "
+                                "Default is %default",
+                      metavar = "INT")
+
+    parser.add_option("--hft",
+                      action  = "store",
+                      default = 1,
+                      type    = "int",
+                      help    = "Hash function type INT.  Possible values "
+                                "are 1 (StrSaltHash) and 2 (IntSaltHash). "
+                                "The default is %default",
+                      metavar = "INT")
+
+    parser.add_option("-e", "--execute",
+                      action  = "store_true",
+                      help    = "Execute the generated code within "
+                                "the Python interpreter.")
+
+    parser.add_option("-o", "--output",
+                      action  = "store",
+                      help    = "Specify output FILE explicitly. "
+                                "`-o std' means standard output. "
+                                "`-o no' means no output. "
+                                "By default, the file name is obtained "
+                                "from the name of the template file by "
+                                "substituting `tmpl' to `code'.",
+                      metavar = "FILE")
+
+    parser.add_option("-v", "--verbose",
+                      action = "store_true",
+                      help = "verbosity")
+
+    options, args = parser.parse_args()
+
+    if options.trials <= 0:
+        parser.error("trials before increasing N has to be larger than zero")
+
+    global trials
+    trials = options.trials
+
+    global verbose
+    verbose = options.verbose
+
+    if len(args) not in (1, 2):
+        parser.error("incorrect number of arguments")
+
+    if len(args) == 2 and not args[1].count('tmpl'):
+        parser.error("template filename does not contain 'tmpl'")
+
+    if options.hft == 1:
+        Hash = StrSaltHash
+    elif options.hft == 2:
+        Hash = IntSaltHash
+    else:
+        parser.error("Hash function %s not implemented." % options.hft)
+
+    # --------------------- end parsing and checking --------------
+
+    keys_file = args[0]
+
+    if verbose:
+        print("keys_file = %r" % keys_file)
+
+    keys = read_table(keys_file, options)
+
+    if verbose:
+        print("Number os keys: %d" % len(keys))
+
+    tmpl_file = args[1] if len(args) == 2 else None
+
+    if verbose:
+        print("tmpl_file = %r" % tmpl_file)
+
+    template = read_template(tmpl_file) if tmpl_file else None
+
+    if options.output:
+        outname = options.output
+    else:
+        if tmpl_file:
+            if 'tmpl' not in tmpl_file:
+                sys.exit("Hmm, template filename does not contain 'tmpl'")
+            outname = tmpl_file.replace('tmpl', 'code')
+        else:
+            outname = 'std'
+
+    if verbose:
+        print("outname = %r\n" % outname)
+
+    if outname == 'std':
+        outstream = sys.stdout
+    elif outname == 'no':
+        outstream = None
+    else:
+        try:
+            outstream = open(outname, 'w')
+        except IOError:
+            sys.exit("Error: Could not open `%s' for writing." % outname)
+
+    code = generate_code(keys, Hash, template, options)
+
+    if options.execute or template == builtin_template(Hash):
+        if verbose:
+            print('Executing code...\n')
+        run_code(code)
+
+    if outstream:
+        outstream.write(code)
+        if not outname == 'std':
+            outstream.close()
+
+
+if __name__ == '__main__':
+    main()
diff --git a/scripts/update-keysyms b/scripts/update-keysyms
index 3356a35..5410474 100755
--- a/scripts/update-keysyms
+++ b/scripts/update-keysyms
@@ -2,5 +2,5 @@
 # Run this to regenerate xkbcommon-keysyms.h from the X11 headers
 # defining the keysyms and update the name <-> keysym mapping.
 export LC_CTYPE=C
-scripts/makeheader > xkbcommon/xkbcommon-keysyms.h
-scripts/makekeys xkbcommon/xkbcommon-keysyms.h > src/ks_tables.h
+scripts/makeheader > include/xkbcommon/xkbcommon-keysyms.h
+scripts/makekeys include/xkbcommon/xkbcommon-keysyms.h > src/ks_tables.h
diff --git a/src/atom.c b/src/atom.c
index 180b25f..763bff5 100644
--- a/src/atom.c
+++ b/src/atom.c
@@ -72,8 +72,14 @@
 
 #include "config.h"
 
-#include "utils.h"
+#include <assert.h>
+#include <inttypes.h>
+#include <stdbool.h>
+#include <string.h>
+
 #include "atom.h"
+#include "darray.h"
+#include "utils.h"
 
 /* FNV-1a (http://www.isthe.com/chongo/tech/comp/fnv/). */
 static inline uint32_t
@@ -90,31 +96,14 @@
 }
 
 /*
- * The atom table is a insert-only unbalanced binary search tree
- * mapping strings to atoms.
- *
- * The tree nodes are kept contiguously in the `table` array.
- *
- * The atom value is the index of the tree node in the array.
- *
- * As an optimization, strings are not compared by value directly,
- *      s1 < s2
- * instead, they are compared by fingerprint (hash) and the value
- * is only used to resolve collisions:
- *      (fingerprint(s1), s1) < (fingerprint(s2), s2)
- * Fingerprint are pre-calculated and saved in the tree nodes.
- *
- * Why is this not just a hash table? Who knows!
+ * The atom table is an insert-only linear probing hash table
+ * mapping strings to atoms. Another array maps the atoms to
+ * strings. The atom value is the position in the strings array.
  */
-struct atom_node {
-    xkb_atom_t left, right;
-    uint32_t fingerprint;
-    char *string;
-};
-
 struct atom_table {
-    xkb_atom_t root;
-    darray(struct atom_node) table;
+    xkb_atom_t *index;
+    size_t index_size;
+    darray(char *) strings;
 };
 
 struct atom_table *
@@ -124,9 +113,10 @@
     if (!table)
         return NULL;
 
-    darray_init(table->table);
-    /* The original throw-away root is here, at the illegal atom 0. */
-    darray_resize0(table->table, 1);
+    darray_init(table->strings);
+    darray_append(table->strings, NULL);
+    table->index_size = 4;
+    table->index = calloc(table->index_size, sizeof(*table->index));
 
     return table;
 }
@@ -137,61 +127,68 @@
     if (!table)
         return;
 
-    struct atom_node *node;
-    darray_foreach(node, table->table)
-        free(node->string);
-    darray_free(table->table);
+    char **string;
+    darray_foreach(string, table->strings)
+        free(*string);
+    darray_free(table->strings);
+    free(table->index);
     free(table);
 }
 
 const char *
 atom_text(struct atom_table *table, xkb_atom_t atom)
 {
-    assert(atom < darray_size(table->table));
-    return darray_item(table->table, atom).string;
+    assert(atom < darray_size(table->strings));
+    return darray_item(table->strings, atom);
 }
 
 xkb_atom_t
 atom_intern(struct atom_table *table, const char *string, size_t len, bool add)
 {
-    uint32_t fingerprint = hash_buf(string, len);
+    if (darray_size(table->strings) > 0.80 * table->index_size) {
+        table->index_size *= 2;
+        table->index = realloc(table->index, table->index_size * sizeof(*table->index));
+        memset(table->index, 0, table->index_size * sizeof(*table->index));
+        for (size_t j = 1; j < darray_size(table->strings); j++) {
+            const char *s = darray_item(table->strings, j);
+            uint32_t hash = hash_buf(s, strlen(s));
+            for (size_t i = 0; i < table->index_size; i++) {
+                size_t index_pos = (hash + i) & (table->index_size - 1);
+                if (index_pos == 0)
+                    continue;
 
-    xkb_atom_t *atomp = &table->root;
-    while (*atomp != XKB_ATOM_NONE) {
-        struct atom_node *node = &darray_item(table->table, *atomp);
-
-        if (fingerprint > node->fingerprint) {
-            atomp = &node->right;
-        }
-        else if (fingerprint < node->fingerprint) {
-            atomp = &node->left;
-        }
-        else {
-            /* Now start testing the strings. */
-            const int cmp = strncmp(string, node->string, len);
-            if (likely(cmp == 0 && node->string[len] == '\0')) {
-                return *atomp;
-            }
-            else if (cmp > 0) {
-                atomp = &node->right;
-            }
-            else {
-                atomp = &node->left;
+                xkb_atom_t atom = table->index[index_pos];
+                if (atom == XKB_ATOM_NONE) {
+                    table->index[index_pos] = j;
+                    break;
+                }
             }
         }
     }
 
-    if (!add)
-        return XKB_ATOM_NONE;
+    uint32_t hash = hash_buf(string, len);
+    for (size_t i = 0; i < table->index_size; i++) {
+        size_t index_pos = (hash + i) & (table->index_size - 1);
+        if (index_pos == 0)
+            continue;
 
-    struct atom_node node;
-    node.string = strndup(string, len);
-    assert(node.string != NULL);
-    node.left = node.right = XKB_ATOM_NONE;
-    node.fingerprint = fingerprint;
-    xkb_atom_t atom = darray_size(table->table);
-    /* Do this before the append, as it may realloc and change the offsets. */
-    *atomp = atom;
-    darray_append(table->table, node);
-    return atom;
+        xkb_atom_t existing_atom = table->index[index_pos];
+        if (existing_atom == XKB_ATOM_NONE) {
+            if (add) {
+                xkb_atom_t new_atom = darray_size(table->strings);
+                darray_append(table->strings, strndup(string, len));
+                table->index[index_pos] = new_atom;
+                return new_atom;
+            } else {
+                return XKB_ATOM_NONE;
+            }
+        }
+
+        const char *existing_value = darray_item(table->strings, existing_atom);
+        if (strncmp(existing_value, string, len) == 0 && existing_value[len] == '\0')
+            return existing_atom;
+    }
+
+    assert(!"couldn't find an empty slot during probing");
+    return XKB_ATOM_NONE;
 }
diff --git a/src/compose/parser.c b/src/compose/parser.c
index 0f85a92..08018f2 100644
--- a/src/compose/parser.c
+++ b/src/compose/parser.c
@@ -327,109 +327,108 @@
     xkb_mod_mask_t mods;
 };
 
-static uint32_t
-add_node(struct xkb_compose_table *table, xkb_keysym_t keysym)
-{
-    struct compose_node new = {
-        .keysym = keysym,
-        .next = 0,
-        .is_leaf = true,
-    };
-    darray_append(table->nodes, new);
-    return darray_size(table->nodes) - 1;
-}
-
 static void
 add_production(struct xkb_compose_table *table, struct scanner *s,
                const struct production *production)
 {
-    unsigned lhs_pos;
-    uint32_t curr;
-    struct compose_node *node;
+    unsigned lhs_pos = 0;
+    uint16_t curr = darray_size(table->nodes) == 1 ? 0 : 1;
+    uint16_t *pptr = NULL;
+    struct compose_node *node = NULL;
 
-    curr = 0;
-    node = &darray_item(table->nodes, curr);
+    /* Warn before potentially going over the limit, discard silently after. */
+    if (darray_size(table->nodes) + production->len + MAX_LHS_LEN > MAX_COMPOSE_NODES)
+        scanner_warn(s, "too many sequences for one Compose file; will ignore further lines");
+    if (darray_size(table->nodes) + production->len >= MAX_COMPOSE_NODES)
+        return;
 
     /*
-     * Insert the sequence to the trie, creating new nodes as needed.
+     * Insert the sequence to the ternary search tree, creating new nodes as
+     * needed.
      *
-     * TODO: This can be sped up a bit by first trying the path that the
-     * previous production took, and only then doing the linear search
-     * through the trie levels.  This will work because sequences in the
-     * Compose files are often clustered by a common prefix; especially
-     * in the 1st and 2nd keysyms, which is where the largest variation
-     * (thus, longest search) is.
+     * TODO: We insert in the order given, this means some inputs can create
+     * long O(n) chains, which results in total O(n^2) parsing time. We should
+     * ensure the tree is reasonably balanced somehow.
      */
-    for (lhs_pos = 0; lhs_pos < production->len; lhs_pos++) {
-        while (production->lhs[lhs_pos] != node->keysym) {
-            if (node->next == 0) {
-                uint32_t next = add_node(table, production->lhs[lhs_pos]);
-                /* Refetch since add_node could have realloc()ed. */
-                node = &darray_item(table->nodes, curr);
-                node->next = next;
-            }
+    while (true) {
+        const xkb_keysym_t keysym = production->lhs[lhs_pos];
+        const bool last = lhs_pos + 1 == production->len;
 
-            curr = node->next;
-            node = &darray_item(table->nodes, curr);
+        if (curr == 0) {
+            /*
+             * Create a new node and update the parent pointer to it.
+             * Update the pointer first because the append invalidates it.
+             */
+            struct compose_node new = {
+                .keysym = keysym,
+                .lokid = 0,
+                .hikid = 0,
+                .internal = {
+                    .eqkid = 0,
+                    .is_leaf = false,
+                },
+            };
+            curr = darray_size(table->nodes);
+            if (pptr != NULL) {
+                *pptr = curr;
+                pptr = NULL;
+            }
+            darray_append(table->nodes, new);
         }
 
-        if (lhs_pos + 1 == production->len)
-            break;
-
-        if (node->is_leaf) {
-            if (node->u.leaf.utf8 != 0 ||
-                node->u.leaf.keysym != XKB_KEY_NoSymbol) {
-                scanner_warn(s, "a sequence already exists which is a prefix of this sequence; overriding");
-                node->u.leaf.utf8 = 0;
-                node->u.leaf.keysym = XKB_KEY_NoSymbol;
-            }
-
-            {
-                uint32_t successor = add_node(table, production->lhs[lhs_pos + 1]);
-                /* Refetch since add_node could have realloc()ed. */
-                node = &darray_item(table->nodes, curr);
-                node->is_leaf = false;
-                node->u.successor = successor;
-            }
-        }
-
-        curr = node->u.successor;
         node = &darray_item(table->nodes, curr);
-    }
 
-    if (!node->is_leaf) {
-        scanner_warn(s, "this compose sequence is a prefix of another; skipping line");
-        return;
-    }
-
-    if (node->u.leaf.utf8 != 0 || node->u.leaf.keysym != XKB_KEY_NoSymbol) {
-        bool same_string =
-            (node->u.leaf.utf8 == 0 && !production->has_string) ||
-            (
-                node->u.leaf.utf8 != 0 && production->has_string &&
-                streq(&darray_item(table->utf8, node->u.leaf.utf8),
-                      production->string)
-            );
-        bool same_keysym =
-            (node->u.leaf.keysym == XKB_KEY_NoSymbol && !production->has_keysym) ||
-            (
-                node->u.leaf.keysym != XKB_KEY_NoSymbol && production->has_keysym &&
-                node->u.leaf.keysym == production->keysym
-            );
-        if (same_string && same_keysym) {
-            scanner_warn(s, "this compose sequence is a duplicate of another; skipping line");
+        if (keysym < node->keysym) {
+            pptr = &node->lokid;
+            curr = node->lokid;
+        } else if (keysym > node->keysym) {
+            pptr = &node->hikid;
+            curr = node->hikid;
+        } else if (!last) {
+            if (node->is_leaf) {
+                scanner_warn(s, "a sequence already exists which is a prefix of this sequence; overriding");
+                node->internal.eqkid = node->lokid = node->hikid = 0;
+                node->internal.is_leaf = false;
+            }
+            lhs_pos++;
+            pptr = &node->internal.eqkid;
+            curr = node->internal.eqkid;
+        } else {
+            if (node->is_leaf) {
+                bool same_string =
+                    (node->leaf.utf8 == 0 && !production->has_string) ||
+                    (
+                        node->leaf.utf8 != 0 && production->has_string &&
+                        streq(&darray_item(table->utf8, node->leaf.utf8),
+                              production->string)
+                    );
+                bool same_keysym =
+                    (node->leaf.keysym == XKB_KEY_NoSymbol && !production->has_keysym) ||
+                    (
+                        node->leaf.keysym != XKB_KEY_NoSymbol && production->has_keysym &&
+                        node->leaf.keysym == production->keysym
+                    );
+                if (same_string && same_keysym) {
+                    scanner_warn(s, "this compose sequence is a duplicate of another; skipping line");
+                    return;
+                } else {
+                    scanner_warn(s, "this compose sequence already exists; overriding");
+                }
+            } else if (node->internal.eqkid != 0) {
+                scanner_warn(s, "this compose sequence is a prefix of another; skipping line");
+                return;
+            }
+            node->is_leaf = true;
+            if (production->has_string) {
+                node->leaf.utf8 = darray_size(table->utf8);
+                darray_append_items(table->utf8, production->string,
+                                    strlen(production->string) + 1);
+            }
+            if (production->has_keysym) {
+                node->leaf.keysym = production->keysym;
+            }
             return;
         }
-        scanner_warn(s, "this compose sequence already exists; overriding");
-    }
-
-    if (production->has_string) {
-        node->u.leaf.utf8 = darray_size(table->utf8);
-        darray_append_items(table->utf8, production->string,
-                            strlen(production->string) + 1);
-    }
-    if (production->has_keysym) {
-        node->u.leaf.keysym = production->keysym;
     }
 }
 
diff --git a/src/compose/state.c b/src/compose/state.c
index 9c64eb4..6ba0344 100644
--- a/src/compose/state.c
+++ b/src/compose/state.c
@@ -41,8 +41,8 @@
      * This is also sufficient for inferring the current status; see
      * xkb_compose_state_get_status().
      */
-    uint32_t prev_context;
-    uint32_t context;
+    uint16_t prev_context;
+    uint16_t context;
 };
 
 XKB_EXPORT struct xkb_compose_state *
@@ -91,7 +91,7 @@
 XKB_EXPORT enum xkb_compose_feed_result
 xkb_compose_state_feed(struct xkb_compose_state *state, xkb_keysym_t keysym)
 {
-    uint32_t context;
+    uint16_t context;
     const struct compose_node *node;
 
     /*
@@ -109,17 +109,20 @@
 
     node = &darray_item(state->table->nodes, state->context);
 
-    context = (node->is_leaf ? 0 : node->u.successor);
-    node = &darray_item(state->table->nodes, context);
-
-    while (node->keysym != keysym && node->next != 0) {
-        context = node->next;
-        node = &darray_item(state->table->nodes, context);
-    }
-
-    if (node->keysym != keysym)
+    context = (node->is_leaf ? 1 : node->internal.eqkid);
+    if (context == 1 && darray_size(state->table->nodes) == 1)
         context = 0;
 
+    while (context != 0) {
+        node = &darray_item(state->table->nodes, context);
+        if (keysym < node->keysym)
+            context = node->lokid;
+        else if (keysym > node->keysym)
+            context = node->hikid;
+        else
+            break;
+    }
+
     state->prev_context = state->context;
     state->context = context;
     return XKB_COMPOSE_FEED_ACCEPTED;
@@ -164,11 +167,11 @@
 
     /* If there's no string specified, but only a keysym, try to do the
      * most helpful thing. */
-    if (node->u.leaf.utf8 == 0 && node->u.leaf.keysym != XKB_KEY_NoSymbol) {
+    if (node->leaf.utf8 == 0 && node->leaf.keysym != XKB_KEY_NoSymbol) {
         char name[64];
         int ret;
 
-        ret = xkb_keysym_to_utf8(node->u.leaf.keysym, name, sizeof(name));
+        ret = xkb_keysym_to_utf8(node->leaf.keysym, name, sizeof(name));
         if (ret < 0 || ret == 0) {
             /* ret < 0 is impossible.
              * ret == 0 means the keysym has no string representation. */
@@ -179,7 +182,7 @@
     }
 
     return snprintf(buffer, size, "%s",
-                    &darray_item(state->table->utf8, node->u.leaf.utf8));
+                    &darray_item(state->table->utf8, node->leaf.utf8));
 
 fail:
     if (size > 0)
@@ -194,5 +197,5 @@
         &darray_item(state->table->nodes, state->context);
     if (!node->is_leaf)
         return XKB_KEY_NoSymbol;
-    return node->u.leaf.keysym;
+    return node->leaf.keysym;
 }
diff --git a/src/compose/table.c b/src/compose/table.c
index 38d4406..8a8d11f 100644
--- a/src/compose/table.c
+++ b/src/compose/table.c
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2013 Ran Benita <ran234@gmail.com>
+ * Copyright © 2013,2021 Ran Benita <ran234@gmail.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -36,7 +36,7 @@
 {
     char *resolved_locale;
     struct xkb_compose_table *table;
-    struct compose_node root;
+    struct compose_node dummy;
 
     resolved_locale = resolve_locale(locale);
     if (!resolved_locale)
@@ -58,12 +58,11 @@
     darray_init(table->nodes);
     darray_init(table->utf8);
 
-    root.keysym = XKB_KEY_NoSymbol;
-    root.next = 0;
-    root.is_leaf = true;
-    root.u.leaf.utf8 = 0;
-    root.u.leaf.keysym = XKB_KEY_NoSymbol;
-    darray_append(table->nodes, root);
+    dummy.keysym = XKB_KEY_NoSymbol;
+    dummy.leaf.is_leaf = true;
+    dummy.leaf.utf8 = 0;
+    dummy.leaf.keysym = XKB_KEY_NoSymbol;
+    darray_append(table->nodes, dummy);
 
     darray_append(table->utf8, '\0');
 
@@ -207,7 +206,8 @@
     }
     free(path);
 
-    log_err(ctx, "couldn't find a Compose file for locale \"%s\"\n", locale);
+    log_err(ctx, "couldn't find a Compose file for locale \"%s\" (mapped to \"%s\")\n",
+            locale, table->locale);
     xkb_compose_table_unref(table);
     return NULL;
 
diff --git a/src/compose/table.h b/src/compose/table.h
index 05a415f..6be4348 100644
--- a/src/compose/table.h
+++ b/src/compose/table.h
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2013 Ran Benita <ran234@gmail.com>
+ * Copyright © 2013,2021 Ran Benita <ran234@gmail.com>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -29,36 +29,43 @@
 #include "context.h"
 
 /*
- * The compose table data structure is a simple trie.  An example will
- * help.  Given these sequences:
+ * The compose table data structure is a ternary search tree.
  *
- *      <A> <B>        : "first"  dead_a
- *      <A> <C> <D>    : "second" dead_b
- *      <E> <F>        : "third"  dead_c
+ * Reference: https://www.drdobbs.com/database/ternary-search-trees/184410528
+ * Visualization: https://www.cs.usfca.edu/~galles/visualization/TST.html
  *
- * the trie would look like:
+ * Short example. Given these sequences:
  *
- * [root] ---> [<A>] -----------------> [<E>] -#
- *   |           |                        |
- *   #           v                        v
- *             [<B>] ---> [<C>] -#      [<F>] -#
- *               |          |             -
- *               #          v             #
- *                        [<D>] -#
- *                          |
- *                          #
+ *      <B> <C>        : "first"  dead_a
+ *      <B> <D> <E>    : "second" dead_b
+ *      <A> <F>        : "third"  dead_c
+ *
+ * the tree would look like:
+ *
+ *          -------- [<B>]---------
+ *          |          |          #
+ *          v          V
+ *     -- [<A>] --   [<C>] --------
+ *     #    |    #     |          |
+ *          v          #     -- [<D>] --
+ *     -- [<F>] --           #    |    #
+ *     #    |    #                v
+ *          #                -- [<E>] --
+ *                           #    |    #
+ *                                #
+ *
  * where:
- * - [root] is a special empty root node.
  * - [<X>] is a node for a sequence keysym <X>.
- * - right arrows are `next` pointers.
- * - down arrows are `successor` pointers.
+ * - right arrows are `hikid` pointers.
+ * - left arrows are `lokid` pointers.
+ * - down arrows are `eqkid` pointers.
  * - # is a nil pointer.
  *
  * The nodes are all kept in a contiguous array.  Pointers are represented
  * as integer offsets into this array.  A nil pointer is represented as 0
- * (which, helpfully, is the offset of the empty root node).
+ * (which, helpfully, is the offset of an empty dummy node).
  *
- * Nodes without a successor are leaf nodes.  Since a sequence cannot be a
+ * Nodes without an eqkid are leaf nodes.  Since a sequence cannot be a
  * prefix of another, these are exactly the nodes which terminate the
  * sequences (in a bijective manner).
  *
@@ -68,21 +75,35 @@
  * \0 is so offset 0 points to an empty string).
  */
 
+/* Fits in uint16_t, also a good idea to have some limit. */
+#define MAX_COMPOSE_NODES 65535
+
 struct compose_node {
     xkb_keysym_t keysym;
-    /* Offset into xkb_compose_table::nodes. */
-    unsigned int next:31;
-    bool is_leaf:1;
+
+    /* Offset into xkb_compose_table::nodes or 0. */
+    uint16_t lokid;
+    /* Offset into xkb_compose_table::nodes or 0. */
+    uint16_t hikid;
 
     union {
-        /* Offset into xkb_compose_table::nodes. */
-        uint32_t successor;
+        struct {
+            uint32_t _pad:31;
+            bool is_leaf:1;
+        };
+        struct {
+            uint32_t _pad:31;
+            bool is_leaf:1;
+            /* Offset into xkb_compose_table::nodes or 0. */
+            uint16_t eqkid;
+        } internal;
         struct {
             /* Offset into xkb_compose_table::utf8. */
-            uint32_t utf8;
+            uint32_t utf8:31;
+            bool is_leaf:1;
             xkb_keysym_t keysym;
         } leaf;
-    } u;
+    };
 };
 
 struct xkb_compose_table {
diff --git a/src/keysym-utf.c b/src/keysym-utf.c
index a49944a..7769672 100644
--- a/src/keysym-utf.c
+++ b/src/keysym-utf.c
@@ -614,8 +614,8 @@
     { 0x0bd6, 0x222a }, /*                    downshoe ∪ UNION */
     { 0x0bd8, 0x2283 }, /*                   rightshoe ⊃ SUPERSET OF */
     { 0x0bda, 0x2282 }, /*                    leftshoe ⊂ SUBSET OF */
-    { 0x0bdc, 0x22a2 }, /*                    lefttack ⊢ RIGHT TACK */
-    { 0x0bfc, 0x22a3 }, /*                   righttack ⊣ LEFT TACK */
+    { 0x0bdc, 0x22a3 }, /*                    lefttack ⊣ LEFT TACK */
+    { 0x0bfc, 0x22a2 }, /*                   righttack ⊢ RIGHT TACK */
     { 0x0cdf, 0x2017 }, /*        hebrew_doublelowline ‗ DOUBLE LOW LINE */
     { 0x0ce0, 0x05d0 }, /*                hebrew_aleph א HEBREW LETTER ALEF */
     { 0x0ce1, 0x05d1 }, /*                  hebrew_bet ב HEBREW LETTER BET */
@@ -810,7 +810,7 @@
     { 0x0ef0, 0x3171 }, /*    Hangul_SunkyeongeumMieum ㅱ HANGUL LETTER KAPYEOUNMIEUM */
     { 0x0ef1, 0x3178 }, /*    Hangul_SunkyeongeumPieub ㅸ HANGUL LETTER KAPYEOUNPIEUP */
     { 0x0ef2, 0x317f }, /*              Hangul_PanSios ㅿ HANGUL LETTER PANSIOS */
-/*  0x0ef3                  Hangul_KkogjiDalrinIeung ? ??? */
+    { 0x0ef3, 0x3181 }, /*    Hangul_KkogjiDalrinIeung ㆁ HANGUL LETTER YESIEUNG */
     { 0x0ef4, 0x3184 }, /*   Hangul_SunkyeongeumPhieuf ㆄ HANGUL LETTER KAPYEOUNPHIEUPH */
     { 0x0ef5, 0x3186 }, /*          Hangul_YeorinHieuh ㆆ HANGUL LETTER YEORINHIEUH */
     { 0x0ef6, 0x318d }, /*                Hangul_AraeA ㆍ HANGUL LETTER ARAEA */
diff --git a/src/keysym.c b/src/keysym.c
index 7b492e2..bf49c63 100644
--- a/src/keysym.c
+++ b/src/keysym.c
@@ -61,42 +61,25 @@
     return keysym_names + entry->offset;
 }
 
-static int
-compare_by_keysym(const void *a, const void *b)
-{
-    const xkb_keysym_t *key = a;
-    const struct name_keysym *entry = b;
-    if (*key < entry->keysym)
-        return -1;
-    if (*key > entry->keysym)
-        return 1;
-    return 0;
-}
-
-static int
-compare_by_name(const void *a, const void *b)
-{
-    const char *key = a;
-    const struct name_keysym *entry = b;
-    return istrcmp(key, get_name(entry));
-}
-
 XKB_EXPORT int
 xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size)
 {
-    const struct name_keysym *entry;
-
     if ((ks & ((unsigned long) ~0x1fffffff)) != 0) {
         snprintf(buffer, size, "Invalid");
         return -1;
     }
 
-    entry = bsearch(&ks, keysym_to_name,
-                    ARRAY_SIZE(keysym_to_name),
-                    sizeof(*keysym_to_name),
-                    compare_by_keysym);
-    if (entry)
-        return snprintf(buffer, size, "%s", get_name(entry));
+    int32_t lo = 0, hi = ARRAY_SIZE(keysym_to_name) - 1;
+    while (hi >= lo) {
+        int32_t mid = (lo + hi) / 2;
+        if (ks > keysym_to_name[mid].keysym) {
+            lo = mid + 1;
+        } else if (ks < keysym_to_name[mid].keysym) {
+            hi = mid - 1;
+        } else {
+            return snprintf(buffer, size, "%s", get_name(&keysym_to_name[mid]));
+        }
+    }
 
     /* Unnamed Unicode codepoint. */
     if (ks >= 0x01000100 && ks <= 0x0110ffff) {
@@ -109,108 +92,135 @@
 }
 
 /*
- * Find the correct keysym if one case-insensitive match is given.
- *
- * The name_to_keysym table is sorted by istrcmp(). So bsearch() may return
- * _any_ of all possible case-insensitive duplicates. This function searches the
- * returned entry @entry, all previous and all next entries that match by
- * case-insensitive comparison and returns the exact match to @name. If @icase
- * is true, then this returns the best case-insensitive match instead of a
- * correct match.
- * The "best" case-insensitive match is the lower-case keysym which we find with
- * the help of xkb_keysym_is_lower().
- * The only keysyms that only differ by letter-case are keysyms that are
- * available as lower-case and upper-case variant (like KEY_a and KEY_A). So
- * returning the first lower-case match is enough in this case.
+ * Parse the numeric part of a 0xXXXX and UXXXX keysym.
+ * Not using strtoul -- it's slower and accepts a bunch of stuff
+ * we don't want to allow, like signs, spaces, even locale stuff.
  */
-static const struct name_keysym *
-find_sym(const struct name_keysym *entry, const char *name, bool icase)
+static bool
+parse_keysym_hex(const char *s, uint32_t *out)
 {
-    const struct name_keysym *iter, *last;
-    size_t len = ARRAY_SIZE(name_to_keysym);
-
-    if (!entry)
-        return NULL;
-
-    if (!icase && strcmp(get_name(entry), name) == 0)
-        return entry;
-    if (icase && xkb_keysym_is_lower(entry->keysym))
-        return entry;
-
-    for (iter = entry - 1; iter >= name_to_keysym; --iter) {
-        if (!icase && strcmp(get_name(iter), name) == 0)
-            return iter;
-        if (istrcmp(get_name(iter), get_name(entry)) != 0)
-            break;
-        if (icase && xkb_keysym_is_lower(iter->keysym))
-            return iter;
+    uint32_t result = 0;
+    int i;
+    for (i = 0; i < 8 && s[i] != '\0'; i++) {
+        result <<= 4;
+        if ('0' <= s[i] && s[i] <= '9')
+            result += s[i] - '0';
+        else if ('a' <= s[i] && s[i] <= 'f')
+            result += 10 + s[i] - 'a';
+        else if ('A' <= s[i] && s[i] <= 'F')
+            result += 10 + s[i] - 'A';
+        else
+            return false;
     }
-
-    last = name_to_keysym + len;
-    for (iter = entry + 1; iter < last; ++iter) {
-        if (!icase && strcmp(get_name(iter), name) == 0)
-            return iter;
-        if (istrcmp(get_name(iter), get_name(entry)) != 0)
-            break;
-        if (icase && xkb_keysym_is_lower(iter->keysym))
-            return iter;
-    }
-
-    if (icase)
-        return entry;
-    return NULL;
+    *out = result;
+    return s[i] == '\0' && i > 0;
 }
 
 XKB_EXPORT xkb_keysym_t
-xkb_keysym_from_name(const char *s, enum xkb_keysym_flags flags)
+xkb_keysym_from_name(const char *name, enum xkb_keysym_flags flags)
 {
-    const struct name_keysym *entry;
+    const struct name_keysym *entry = NULL;
     char *tmp;
-    xkb_keysym_t val;
+    uint32_t val;
     bool icase = (flags & XKB_KEYSYM_CASE_INSENSITIVE);
 
     if (flags & ~XKB_KEYSYM_CASE_INSENSITIVE)
         return XKB_KEY_NoSymbol;
 
-    entry = bsearch(s, name_to_keysym,
-                    ARRAY_SIZE(name_to_keysym),
-                    sizeof(*name_to_keysym),
-                    compare_by_name);
-    entry = find_sym(entry, s, icase);
-    if (entry)
-        return entry->keysym;
+    /*
+     * We need to !icase case to be fast, for e.g. Compose file parsing.
+     * So do it in a fast path.
+     */
+    if (!icase) {
+        size_t pos = keysym_name_perfect_hash(name);
+        if (pos < ARRAY_SIZE(name_to_keysym)) {
+            const char *s = get_name(&name_to_keysym[pos]);
+            if (strcmp(name, s) == 0)
+                return name_to_keysym[pos].keysym;
+        }
+    }
+    /*
+    * Find the correct keysym for case-insensitive match.
+    *
+    * The name_to_keysym table is sorted by istrcmp(). So the binary
+    * search may return _any_ of all possible case-insensitive duplicates. This
+    * code searches the entry, all previous and all next entries that match by
+    * case-insensitive comparison and returns the "best" case-insensitive
+    * match.
+    *
+    * The "best" case-insensitive match is the lower-case keysym which we find
+    * with the help of xkb_keysym_is_lower(). The only keysyms that only differ
+    * by letter-case are keysyms that are available as lower-case and
+    * upper-case variant (like KEY_a and KEY_A). So returning the first
+    * lower-case match is enough in this case.
+    */
+    else {
+        int32_t lo = 0, hi = ARRAY_SIZE(name_to_keysym) - 1;
+        while (hi >= lo) {
+            int32_t mid = (lo + hi) / 2;
+            int cmp = istrcmp(name, get_name(&name_to_keysym[mid]));
+            if (cmp > 0) {
+                lo = mid + 1;
+            } else if (cmp < 0) {
+                hi = mid - 1;
+            } else {
+                entry = &name_to_keysym[mid];
+                break;
+            }
+        }
+        if (entry) {
+            const struct name_keysym *iter, *last;
 
-    if (*s == 'U' || (icase && *s == 'u')) {
-        val = strtoul(&s[1], &tmp, 16);
-        if (tmp && *tmp != '\0')
+            if (icase && xkb_keysym_is_lower(entry->keysym))
+                return entry->keysym;
+
+            for (iter = entry - 1; iter >= name_to_keysym; --iter) {
+                if (istrcmp(get_name(iter), get_name(entry)) != 0)
+                    break;
+                if (xkb_keysym_is_lower(iter->keysym))
+                    return iter->keysym;
+            }
+
+            last = name_to_keysym + ARRAY_SIZE(name_to_keysym);
+            for (iter = entry + 1; iter < last; ++iter) {
+                if (istrcmp(get_name(iter), get_name(entry)) != 0)
+                    break;
+                if (xkb_keysym_is_lower(iter->keysym))
+                    return iter->keysym;
+            }
+
+            return entry->keysym;
+        }
+    }
+
+    if (*name == 'U' || (icase && *name == 'u')) {
+        if (!parse_keysym_hex(&name[1], &val))
             return XKB_KEY_NoSymbol;
 
         if (val < 0x20 || (val > 0x7e && val < 0xa0))
             return XKB_KEY_NoSymbol;
         if (val < 0x100)
-            return val;
+            return (xkb_keysym_t) val;
         if (val > 0x10ffff)
             return XKB_KEY_NoSymbol;
-        return val | 0x01000000;
+        return (xkb_keysym_t) val | 0x01000000;
     }
-    else if (s[0] == '0' && (s[1] == 'x' || (icase && s[1] == 'X'))) {
-        val = strtoul(&s[2], &tmp, 16);
-        if (tmp && *tmp != '\0')
+    else if (name[0] == '0' && (name[1] == 'x' || (icase && name[1] == 'X'))) {
+        if (!parse_keysym_hex(&name[2], &val))
             return XKB_KEY_NoSymbol;
-
-        return val;
+        return (xkb_keysym_t) val;
     }
 
     /* Stupid inconsistency between the headers and XKeysymDB: the former has
      * no separating underscore, while some XF86* syms in the latter did.
      * As a last ditch effort, try without. */
-    if (strncmp(s, "XF86_", 5) == 0 ||
-        (icase && istrncmp(s, "XF86_", 5) == 0)) {
+    if (strncmp(name, "XF86_", 5) == 0 ||
+        (icase && istrncmp(name, "XF86_", 5) == 0)) {
         xkb_keysym_t ret;
-        tmp = strdup(s);
+        tmp = strdup(name);
         if (!tmp)
             return XKB_KEY_NoSymbol;
-        memmove(&tmp[4], &tmp[5], strlen(s) - 5 + 1);
+        memmove(&tmp[4], &tmp[5], strlen(name) - 5 + 1);
         ret = xkb_keysym_from_name(tmp, flags);
         free(tmp);
         return ret;
diff --git a/src/ks_tables.h b/src/ks_tables.h
index 12dc4c0..46d6f98 100644
--- a/src/ks_tables.h
+++ b/src/ks_tables.h
@@ -613,6 +613,11 @@
     "Codeinput\0"
     "colon\0"
     "ColonSign\0"
+    "combining_acute\0"
+    "combining_belowdot\0"
+    "combining_grave\0"
+    "combining_hook\0"
+    "combining_tilde\0"
     "comma\0"
     "containsas\0"
     "Control_L\0"
@@ -2203,10 +2208,23 @@
     "x\0"
     "Xabovedot\0"
     "xabovedot\0"
+    "XF8610ChannelsDown\0"
+    "XF8610ChannelsUp\0"
+    "XF863DMode\0"
     "XF86AddFavorite\0"
+    "XF86Addressbook\0"
+    "XF86ALSToggle\0"
     "XF86ApplicationLeft\0"
     "XF86ApplicationRight\0"
+    "XF86AppSelect\0"
+    "XF86AspectRatio\0"
+    "XF86Assistant\0"
+    "XF86AttendantOff\0"
+    "XF86AttendantOn\0"
+    "XF86AttendantToggle\0"
+    "XF86Audio\0"
     "XF86AudioCycleTrack\0"
+    "XF86AudioDesc\0"
     "XF86AudioForward\0"
     "XF86AudioLowerVolume\0"
     "XF86AudioMedia\0"
@@ -2230,41 +2248,83 @@
     "XF86Blue\0"
     "XF86Bluetooth\0"
     "XF86Book\0"
+    "XF86Break\0"
     "XF86BrightnessAdjust\0"
+    "XF86BrightnessAuto\0"
+    "XF86BrightnessMax\0"
+    "XF86BrightnessMin\0"
+    "XF86Buttonconfig\0"
     "XF86Calculater\0"
     "XF86Calculator\0"
     "XF86Calendar\0"
+    "XF86CameraDown\0"
+    "XF86CameraFocus\0"
+    "XF86CameraLeft\0"
+    "XF86CameraRight\0"
+    "XF86CameraUp\0"
+    "XF86CameraZoomIn\0"
+    "XF86CameraZoomOut\0"
     "XF86CD\0"
+    "XF86ChannelDown\0"
+    "XF86ChannelUp\0"
     "XF86Clear\0"
     "XF86ClearGrab\0"
     "XF86Close\0"
     "XF86Community\0"
+    "XF86ContextMenu\0"
     "XF86ContrastAdjust\0"
+    "XF86ControlPanel\0"
     "XF86Copy\0"
     "XF86Cut\0"
     "XF86CycleAngle\0"
+    "XF86Data\0"
+    "XF86Database\0"
     "XF86Display\0"
+    "XF86DisplayOff\0"
+    "XF86DisplayToggle\0"
     "XF86Documents\0"
     "XF86DOS\0"
+    "XF86DVD\0"
+    "XF86Editor\0"
     "XF86Eject\0"
     "XF86Excel\0"
     "XF86Explorer\0"
+    "XF86FastReverse\0"
     "XF86Favorites\0"
     "XF86Finance\0"
+    "XF86Fn\0"
+    "XF86Fn_Esc\0"
+    "XF86FnRightShift\0"
     "XF86Forward\0"
     "XF86FrameBack\0"
     "XF86FrameForward\0"
     "XF86FullScreen\0"
     "XF86Game\0"
     "XF86Go\0"
+    "XF86GraphicsEditor\0"
     "XF86Green\0"
+    "XF86HangupPhone\0"
     "XF86Hibernate\0"
     "XF86History\0"
     "XF86HomePage\0"
     "XF86HotLinks\0"
+    "XF86Images\0"
+    "XF86Info\0"
     "XF86iTouch\0"
+    "XF86Journal\0"
     "XF86KbdBrightnessDown\0"
     "XF86KbdBrightnessUp\0"
+    "XF86KbdInputAssistAccept\0"
+    "XF86KbdInputAssistCancel\0"
+    "XF86KbdInputAssistNext\0"
+    "XF86KbdInputAssistNextgroup\0"
+    "XF86KbdInputAssistPrev\0"
+    "XF86KbdInputAssistPrevgroup\0"
+    "XF86KbdLcdMenu1\0"
+    "XF86KbdLcdMenu2\0"
+    "XF86KbdLcdMenu3\0"
+    "XF86KbdLcdMenu4\0"
+    "XF86KbdLcdMenu5\0"
     "XF86KbdLightOnOff\0"
     "XF86Keyboard\0"
     "XF86Launch0\0"
@@ -2283,13 +2343,54 @@
     "XF86LaunchD\0"
     "XF86LaunchE\0"
     "XF86LaunchF\0"
+    "XF86LeftDown\0"
+    "XF86LeftUp\0"
     "XF86LightBulb\0"
+    "XF86LightsToggle\0"
     "XF86LogGrabInfo\0"
     "XF86LogOff\0"
     "XF86LogWindowTree\0"
+    "XF86Macro1\0"
+    "XF86Macro10\0"
+    "XF86Macro11\0"
+    "XF86Macro12\0"
+    "XF86Macro13\0"
+    "XF86Macro14\0"
+    "XF86Macro15\0"
+    "XF86Macro16\0"
+    "XF86Macro17\0"
+    "XF86Macro18\0"
+    "XF86Macro19\0"
+    "XF86Macro2\0"
+    "XF86Macro20\0"
+    "XF86Macro21\0"
+    "XF86Macro22\0"
+    "XF86Macro23\0"
+    "XF86Macro24\0"
+    "XF86Macro25\0"
+    "XF86Macro26\0"
+    "XF86Macro27\0"
+    "XF86Macro28\0"
+    "XF86Macro29\0"
+    "XF86Macro3\0"
+    "XF86Macro30\0"
+    "XF86Macro4\0"
+    "XF86Macro5\0"
+    "XF86Macro6\0"
+    "XF86Macro7\0"
+    "XF86Macro8\0"
+    "XF86Macro9\0"
+    "XF86MacroPreset1\0"
+    "XF86MacroPreset2\0"
+    "XF86MacroPreset3\0"
+    "XF86MacroPresetCycle\0"
+    "XF86MacroRecordStart\0"
+    "XF86MacroRecordStop\0"
     "XF86Mail\0"
     "XF86MailForward\0"
     "XF86Market\0"
+    "XF86MediaRepeat\0"
+    "XF86MediaTopMenu\0"
     "XF86Meeting\0"
     "XF86Memo\0"
     "XF86MenuKB\0"
@@ -2305,44 +2406,77 @@
     "XF86New\0"
     "XF86News\0"
     "XF86Next_VMode\0"
+    "XF86NextFavorite\0"
+    "XF86NotificationCenter\0"
+    "XF86Numeric0\0"
+    "XF86Numeric1\0"
+    "XF86Numeric11\0"
+    "XF86Numeric12\0"
+    "XF86Numeric2\0"
+    "XF86Numeric3\0"
+    "XF86Numeric4\0"
+    "XF86Numeric5\0"
+    "XF86Numeric6\0"
+    "XF86Numeric7\0"
+    "XF86Numeric8\0"
+    "XF86Numeric9\0"
+    "XF86NumericA\0"
+    "XF86NumericB\0"
+    "XF86NumericC\0"
+    "XF86NumericD\0"
+    "XF86NumericPound\0"
+    "XF86NumericStar\0"
     "XF86OfficeHome\0"
+    "XF86OnScreenKeyboard\0"
     "XF86Open\0"
     "XF86OpenURL\0"
     "XF86Option\0"
     "XF86Paste\0"
+    "XF86PauseRecord\0"
     "XF86Phone\0"
+    "XF86PickupPhone\0"
     "XF86Pictures\0"
     "XF86PowerDown\0"
     "XF86PowerOff\0"
+    "XF86Presentation\0"
     "XF86Prev_VMode\0"
+    "XF86PrivacyScreenToggle\0"
     "XF86Q\0"
     "XF86Red\0"
     "XF86Refresh\0"
     "XF86Reload\0"
     "XF86Reply\0"
     "XF86RFKill\0"
+    "XF86RightDown\0"
+    "XF86RightUp\0"
     "XF86RockerDown\0"
     "XF86RockerEnter\0"
     "XF86RockerUp\0"
+    "XF86RootMenu\0"
     "XF86RotateWindows\0"
     "XF86RotationKB\0"
     "XF86RotationLockToggle\0"
     "XF86RotationPB\0"
     "XF86Save\0"
     "XF86ScreenSaver\0"
+    "XF86Screensaver\0"
     "XF86ScrollClick\0"
     "XF86ScrollDown\0"
     "XF86ScrollUp\0"
     "XF86Search\0"
     "XF86Select\0"
+    "XF86SelectiveScreenshot\0"
     "XF86Send\0"
     "XF86Shop\0"
     "XF86Sleep\0"
+    "XF86SlowReverse\0"
     "XF86Spell\0"
+    "XF86SpellCheck\0"
     "XF86SplitScreen\0"
     "XF86Standby\0"
     "XF86Start\0"
     "XF86Stop\0"
+    "XF86StopRecord\0"
     "XF86Subtitle\0"
     "XF86Support\0"
     "XF86Suspend\0"
@@ -2358,6 +2492,7 @@
     "XF86Switch_VT_7\0"
     "XF86Switch_VT_8\0"
     "XF86Switch_VT_9\0"
+    "XF86Taskmanager\0"
     "XF86TaskPane\0"
     "XF86Terminal\0"
     "XF86Time\0"
@@ -2369,24 +2504,31 @@
     "XF86TouchpadToggle\0"
     "XF86Travel\0"
     "XF86Ungrab\0"
+    "XF86Unmute\0"
     "XF86User1KB\0"
     "XF86User2KB\0"
     "XF86UserPB\0"
     "XF86UWB\0"
     "XF86VendorHome\0"
     "XF86Video\0"
+    "XF86VideoPhone\0"
     "XF86View\0"
+    "XF86VOD\0"
+    "XF86VoiceCommand\0"
+    "XF86Voicemail\0"
     "XF86WakeUp\0"
     "XF86WebCam\0"
     "XF86WheelButton\0"
     "XF86WLAN\0"
     "XF86Word\0"
+    "XF86WPSButton\0"
     "XF86WWAN\0"
     "XF86WWW\0"
     "XF86Xfer\0"
     "XF86Yellow\0"
     "XF86ZoomIn\0"
     "XF86ZoomOut\0"
+    "XF86ZoomReset\0"
     "Y\0"
     "y\0"
     "Yacute\0"
@@ -2424,6 +2566,323 @@
 #pragma GCC diagnostic pop
 #endif
 
+static const uint16_t keysym_name_G[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1650, 0, 0, 0, 0,
+    0, 1245, 0, 3310, 4490, 0, 0, 0, 0, 4529, 0, 0, 0, 0, 3857, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2266, 0, 0, 0, 0, 0,
+    3688, 0, 0, 4511, 0, 0, 0, 0, 0, 0, 0, 3299, 0, 0, 0, 0, 0, 544, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 1200, 3223, 4207, 0, 672, 0, 0, 0, 0, 0, 3303,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4369, 0, 2211, 0, 0, 0, 2592, 0, 0,
+    0, 0, 1606, 0, 2530, 1223, 0, 0, 727, 0, 0, 297, 0, 4204, 0, 0, 0, 0,
+    0, 2370, 0, 0, 3160, 0, 0, 0, 0, 3661, 0, 0, 0, 0, 1253, 0, 0, 2229,
+    4008, 4269, 0, 0, 0, 0, 1572, 0, 1730, 3284, 0, 3643, 0, 0, 0, 4448,
+    783, 0, 0, 0, 419, 0, 0, 564, 0, 0, 0, 0, 0, 1896, 2895, 0, 303, 0,
+    3482, 1037, 0, 0, 0, 888, 0, 0, 0, 0, 3829, 0, 486, 0, 0, 0, 244, 0,
+    1731, 0, 0, 0, 0, 1609, 417, 2333, 2106, 4289, 1503, 0, 0, 0, 0, 0,
+    1880, 0, 0, 0, 0, 1740, 0, 0, 1273, 1470, 0, 0, 188, 0, 0, 0, 0, 1001,
+    0, 0, 3155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2269, 3789, 0, 0, 0, 0, 0, 0, 0,
+    0, 1492, 3200, 0, 0, 0, 0, 0, 2009, 24, 0, 0, 0, 80, 3123, 0, 0, 0, 0,
+    0, 0, 0, 1126, 0, 0, 0, 0, 3585, 858, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    811, 0, 4003, 3813, 0, 0, 2583, 113, 4408, 0, 386, 4182, 0, 0, 142,
+    1325, 0, 0, 3074, 2313, 1469, 0, 0, 0, 3369, 2485, 0, 0, 4129, 1512, 0,
+    0, 0, 0, 0, 771, 0, 0, 0, 767, 0, 0, 0, 1664, 0, 1616, 0, 0, 2363, 0,
+    0, 0, 0, 2513, 0, 496, 1054, 0, 2211, 0, 0, 0, 0, 0, 1986, 348, 0, 0,
+    2203, 0, 2784, 1635, 0, 0, 0, 0, 0, 0, 243, 0, 0, 0, 0, 347, 3512, 0,
+    0, 0, 1129, 4390, 0, 4273, 0, 0, 1171, 0, 0, 0, 114, 874, 4517, 0, 0,
+    0, 0, 0, 0, 1747, 0, 0, 0, 0, 0, 4188, 0, 2430, 0, 0, 0, 0, 0, 0, 2788,
+    0, 2921, 0, 0, 874, 0, 0, 0, 0, 0, 2047, 0, 1604, 0, 0, 3995, 2895, 0,
+    0, 0, 0, 0, 2604, 0, 0, 1881, 0, 0, 0, 4253, 1024, 4228, 0, 0, 1914,
+    4001, 1011, 1639, 0, 0, 0, 0, 0, 3540, 0, 0, 2461, 0, 0, 3833, 0, 0,
+    2013, 0, 0, 0, 2245, 0, 3283, 2902, 2494, 0, 610, 1708, 0, 0, 0, 0, 0,
+    2934, 4383, 0, 1636, 0, 0, 0, 0, 3355, 0, 1971, 482, 1599, 0, 3749,
+    2152, 0, 0, 0, 0, 1097, 982, 3592, 2806, 0, 0, 0, 0, 173, 780, 0, 2659,
+    3730, 0, 599, 361, 382, 0, 574, 571, 0, 158, 0, 0, 0, 4332, 654, 0,
+    478, 2666, 0, 0, 4354, 0, 723, 745, 0, 2334, 0, 0, 0, 315, 0, 0, 0,
+    2285, 0, 0, 0, 0, 0, 0, 0, 0, 190, 2779, 2749, 0, 0, 0, 0, 0, 2127, 0,
+    0, 168, 0, 2437, 2837, 3502, 0, 0, 0, 0, 0, 0, 1849, 1598, 0, 4373, 0,
+    1200, 0, 238, 3420, 0, 3178, 0, 1571, 372, 0, 0, 1495, 3121, 0, 4099,
+    0, 3109, 0, 0, 0, 0, 0, 1373, 0, 4432, 0, 0, 3370, 3279, 0, 0, 2799, 0,
+    0, 0, 0, 2953, 3278, 1971, 1613, 0, 0, 0, 0, 0, 0, 0, 0, 1369, 2843, 0,
+    989, 0, 358, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 964, 3811, 0, 0, 0, 0,
+    1364, 0, 0, 344, 2501, 0, 0, 1167, 1318, 137, 0, 0, 0, 930, 0, 1340,
+    1404, 873, 0, 0, 0, 0, 0, 391, 0, 2376, 3115, 2659, 1273, 2214, 0,
+    1769, 0, 194, 0, 3009, 0, 0, 1100, 2540, 1308, 1729, 3882, 0, 0, 1925,
+    0, 0, 0, 0, 3324, 3605, 1221, 0, 0, 0, 644, 4360, 4557, 0, 0, 0, 0,
+    1224, 2656, 0, 4378, 4065, 0, 0, 0, 0, 0, 203, 0, 173, 0, 0, 0, 435,
+    2916, 3546, 288, 0, 0, 0, 0, 0, 3744, 2681, 0, 0, 4396, 0, 0, 0, 3078,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 615, 1523, 0, 0, 2313, 4347, 3320, 0, 0,
+    3360, 566, 0, 88, 0, 0, 0, 0, 0, 2736, 0, 0, 4062, 0, 1939, 0, 2354, 0,
+    4354, 4398, 0, 2328, 1976, 270, 0, 0, 2344, 1040, 0, 0, 3016, 4339,
+    1220, 1136, 0, 1813, 0, 0, 990, 1892, 2453, 3252, 0, 2452, 2497, 2007,
+    3329, 508, 0, 4500, 0, 0, 0, 0, 4293, 1207, 0, 719, 257, 0, 4532, 3884,
+    2899, 2065, 967, 0, 0, 0, 4561, 0, 0, 1197, 0, 0, 0, 2578, 3109, 0,
+    112, 0, 1923, 0, 809, 0, 4444, 3287, 0, 3693, 4508, 0, 0, 0, 0, 0, 0,
+    0, 2024, 0, 0, 0, 0, 0, 2196, 0, 0, 0, 0, 3174, 3287, 0, 1813, 0, 0,
+    3626, 2618, 2811, 0, 0, 0, 0, 910, 0, 1874, 0, 290, 1791, 0, 1291, 0,
+    4027, 0, 3605, 0, 0, 0, 3275, 874, 3363, 0, 0, 1321, 0, 1500, 0, 0,
+    4206, 2033, 4437, 2991, 0, 0, 0, 0, 4382, 3870, 1984, 0, 0, 0, 1096, 0,
+    0, 4036, 0, 0, 3578, 1230, 0, 0, 2550, 0, 978, 3007, 0, 140, 0, 1157,
+    0, 0, 0, 0, 0, 0, 4544, 4453, 0, 0, 0, 0, 504, 1136, 1395, 0, 0, 0,
+    1736, 0, 2745, 952, 0, 0, 2650, 0, 0, 3808, 0, 0, 1148, 0, 0, 1821,
+    622, 1626, 4464, 0, 0, 3930, 2404, 117, 0, 0, 10, 0, 2283, 1235, 4224,
+    0, 0, 0, 0, 2917, 0, 0, 0, 2356, 0, 156, 1142, 0, 0, 0, 0, 1677, 0,
+    3796, 3689, 602, 0, 0, 737, 0, 0, 1591, 0, 0, 0, 0, 408, 0, 0, 0, 0, 0,
+    25, 0, 0, 0, 0, 0, 3265, 0, 0, 0, 0, 621, 2329, 2059, 2850, 0, 0, 0, 0,
+    40, 0, 0, 1095, 0, 743, 3541, 0, 0, 0, 3625, 4459, 1580, 4164, 1255, 0,
+    0, 0, 1599, 0, 1036, 0, 0, 3438, 2656, 0, 0, 0, 1261, 224, 3600, 0,
+    3943, 949, 2512, 0, 2796, 4233, 0, 1863, 0, 3283, 175, 0, 148, 0, 0,
+    4320, 2004, 1503, 0, 0, 1438, 2823, 402, 1019, 0, 3343, 4216, 0, 0,
+    2357, 0, 0, 0, 0, 1547, 0, 0, 3307, 0, 2347, 256, 0, 853, 0, 0, 0,
+    1785, 0, 0, 0, 0, 1663, 0, 3095, 2419, 1711, 0, 4493, 0, 0, 1144, 0, 0,
+    0, 1492, 370, 0, 0, 1007, 3167, 2813, 0, 562, 2721, 2083, 0, 2706, 0,
+    0, 0, 0, 2937, 0, 0, 1876, 568, 0, 1859, 0, 0, 0, 0, 0, 3006, 3663,
+    3429, 0, 1369, 0, 1599, 0, 0, 771, 1338, 0, 0, 0, 0, 0, 0, 2529, 0, 0,
+    178, 2516, 0, 0, 2130, 2859, 1920, 0, 1992, 0, 4554, 0, 0, 0, 0, 0,
+    2702, 4463, 688, 0, 0, 1500, 2711, 0, 0, 206, 3960, 0, 0, 0, 1051,
+    4456, 1089, 0, 0, 712, 879, 621, 0, 0, 1353, 779, 0, 1075, 0, 1778, 0,
+    1311, 3544, 0, 1373, 0, 0, 650, 0, 1475, 4297, 1100, 0, 343, 2758,
+    1764, 0, 4163, 1327, 3569, 1363, 0, 2967, 0, 0, 137, 2277, 0, 0, 2411,
+    0, 2685, 0, 2001, 948, 0, 159, 870, 1921, 1561, 0, 0, 2183, 0, 1004, 0,
+    0, 0, 2363, 0, 0, 3473, 0, 0, 0, 2218, 0, 1021, 1919, 0, 0, 0, 0, 0,
+    2324, 0, 1031, 0, 3739, 185, 0, 1932, 2109, 1363, 0, 0, 35, 2104, 1041,
+    573, 0, 1518, 0, 0, 1515, 0, 0, 0, 2500, 1426, 1422, 0, 0, 2395, 706,
+    0, 214, 889, 3801, 4108, 0, 0, 0, 2087, 0, 0, 2881, 1904, 2258, 0, 0,
+    2408, 0, 454, 3224, 0, 0, 0, 0, 1337, 1509, 3638, 0, 0, 0, 3689, 0, 0,
+    1774, 0, 0, 0, 0, 0, 1252, 1139, 0, 0, 0, 0, 75, 3651, 0, 1656, 0,
+    1937, 0, 0, 4027, 0, 0, 0, 911, 1719, 0, 0, 3449, 0, 0, 0, 0, 4342,
+    3593, 0, 0, 3476, 1690, 2585, 4484, 4479, 0, 0, 3932, 0, 3837, 3028,
+    4047, 0, 705, 2616, 3782, 0, 0, 0, 108, 0, 0, 0, 1874, 1744, 0, 0,
+    1147, 0, 0, 0, 166, 4277, 513, 0, 3623, 415, 0, 1574, 3753, 2473, 734,
+    1129, 0, 0, 0, 0, 2241, 862, 0, 0, 0, 0, 2103, 1999, 2605, 821, 0, 0,
+    0, 1653, 3756, 0, 0, 0, 2470, 0, 400, 2791, 717, 0, 154, 3490, 197,
+    2675, 1405, 0, 2048, 0, 0, 1560, 4143, 4495, 0, 0, 0, 1299, 4554, 3847,
+    0, 4308, 1560, 0, 3992, 0, 3209, 0, 452, 0, 2346, 0, 0, 225, 3030, 0,
+    4370, 12, 239, 881, 0, 1561, 4251, 3310, 494, 0, 0, 232, 2509, 3198, 0,
+    0, 0, 3390, 2956, 0, 1255, 0, 2148, 2692, 3865, 3864, 2586, 293, 0,
+    4220, 4073, 0, 3423, 1262, 0, 1410, 2104, 0, 2074, 0, 0, 980, 0, 1684,
+    1686, 0, 0, 429, 0, 358, 161, 0, 0, 0, 2029, 0, 2511, 817, 0, 3331, 0,
+    1552, 0, 3380, 0, 0, 0, 3240, 0, 3499, 4041, 2450, 0, 0, 0, 0, 2214,
+    787, 2906, 464, 1122, 3813, 0, 0, 2034, 0, 0, 0, 1037, 961, 0, 0, 3884,
+    0, 0, 2764, 0, 0, 915, 0, 1417, 0, 6, 4134, 0, 2797, 1881, 259, 795, 0,
+    15, 0, 2863, 0, 0, 0, 0, 0, 223, 720, 0, 1702, 0, 0, 0, 984, 1110, 0,
+    547, 1906, 0, 0, 4286, 1875, 0, 0, 0, 1324, 0, 3589, 3911, 0, 0, 0, 0,
+    2520, 844, 2801, 1149, 656, 0, 1837, 3441, 2127, 0, 0, 1325, 377, 1012,
+    4280, 2404, 0, 1286, 0, 0, 0, 855, 0, 1793, 0, 4512, 2776, 2200, 2056,
+    0, 2144, 1763, 0, 0, 549, 2475, 845, 1493, 0, 0, 306, 1398, 0, 0, 3775,
+    0, 1451, 597, 2130, 0, 232, 2836, 957, 0, 619, 0, 2041, 0, 0, 295, 0,
+    4361, 0, 2223, 0, 3727, 0, 0, 4294, 0, 33, 4397, 4511, 3626, 3329, 0,
+    40, 0, 0, 0, 0, 478, 0, 0, 0, 2925, 0, 0, 3779, 1880, 0, 1556, 0, 1545,
+    3249, 0, 0, 0, 1080, 0, 4112, 0, 3086, 46, 0, 0, 3165, 3414, 0, 0, 342,
+    1885, 0, 0, 0, 0, 3071, 3404, 0, 0, 35, 0, 0, 0, 0, 857, 0, 627, 21, 0,
+    0, 0, 0, 1021, 2099, 3483, 0, 0, 2693, 1014, 11, 0, 3352, 0, 3751,
+    2476, 3014, 0, 1327, 974, 3502, 0, 611, 1838, 0, 4467, 2970, 1191, 474,
+    0, 1366, 230, 1879, 3942, 0, 0, 0, 0, 1406, 0, 1304, 0, 0, 0, 277,
+    3398, 0, 735, 165, 0, 0, 4185, 0, 3404, 0, 3821, 0, 0, 3450, 4161, 0,
+    761, 0, 0, 0, 1807, 0, 0, 0, 0, 0, 0, 3962, 0, 0, 1833, 0, 1710, 0,
+    1670, 2946, 1186, 56, 0, 533, 991, 246, 141, 0, 0, 0, 0, 687, 3830, 0,
+    2495, 245, 0, 0, 2921, 2534, 706, 3729, 3941, 4335, 4295, 1671, 549,
+    2015, 1777, 3057, 0, 1399, 1197, 2741, 4091, 0, 938, 0, 4322, 561, 0,
+    527, 0, 481, 2496, 0, 0, 1771, 3444, 0, 2951, 0, 0, 0, 2244, 1013, 256,
+    0, 1672, 0, 3115, 2720, 0, 1458, 0, 1476, 0, 2729, 0, 0, 1889, 2226,
+    3945, 0, 1937, 0, 0, 0, 0, 4254, 1906, 4260, 2108, 0, 197, 4071, 2688,
+    1691, 0, 0, 4467, 0, 1271, 0, 2029, 1625, 0, 0, 4259, 1222, 4139, 1497,
+    0, 2919, 0, 86, 0, 0, 1685, 2585, 0, 1363, 0, 0, 0, 1548, 3807, 1891,
+    4369, 774, 409, 4191, 0, 0, 3898, 1893, 4164, 765, 893, 1340, 0, 0, 0,
+    4086, 2119, 173, 3518, 0, 0, 742, 0, 2059, 0, 0, 2955, 612, 0, 1660,
+    4201, 2466, 485, 3476, 0, 945, 1441, 0, 3974, 0, 1551, 0, 664, 2978, 0,
+    0, 1798, 2640, 0, 0, 0, 349, 0, 0, 3992, 0, 4168, 0, 0, 3294, 308,
+    1332, 1191, 0, 0, 3821, 3969, 411, 1184, 0, 1417, 4191, 0, 4509, 881,
+    593, 407, 1659, 0, 4237, 0, 1285, 2877, 2965, 3187, 0, 2725, 997, 530,
+    2675, 0, 541, 4405, 1975, 0, 0, 2067, 801, 0, 0, 0, 0, 3746, 3215,
+    3657, 0, 82, 0, 0, 0, 1624, 221, 0, 0, 2193, 483, 1281, 669, 2430, 0,
+    1340, 4426, 0, 2419, 0, 2303, 0, 2691, 0, 305, 0, 0, 4276, 2246, 0,
+    2533, 1139, 0, 626, 0, 9, 0, 2276, 2052, 178, 527, 2479, 2242, 762,
+    212, 0, 860, 1718, 537, 0, 0, 1190, 4038, 1017, 0, 0, 0, 0, 1271, 0, 0,
+    2261, 732, 4062, 2896, 4335, 1570, 3121, 0, 1791, 1798, 3642, 0, 125,
+    3588, 2802, 0, 1162, 4276, 3536, 4314, 999, 0, 1518, 34, 0, 264, 4085,
+    85, 4152, 2133, 1519, 1367, 0, 0, 3903, 420, 0, 2737, 490, 1704, 4389,
+    0, 1631, 3809, 0, 1758, 0, 1162, 154, 980, 0, 0, 1188, 0, 0, 0, 1634,
+    2486, 0, 0, 2972, 3280, 0, 0, 1909, 1386, 915, 2446, 0, 0, 0, 2371, 0,
+    4499, 1915, 656, 2964, 4228, 0, 0, 0, 0, 910, 0, 0, 0, 1505, 3300, 0,
+    2754, 2586, 2505, 3028, 135, 1124, 2602, 34, 2658, 1047, 885, 0, 0, 0,
+    2117, 221, 2841, 153, 2240, 0, 3880, 0, 1101, 4095, 3147, 1757, 692,
+    2280, 3049, 0, 2319, 1519, 0, 0, 0, 0, 4291, 4464, 164, 0, 1108, 4291,
+    2707, 3843, 0, 0, 1160, 4318, 2473, 0, 4391, 0, 0, 0, 2743, 2146, 1050,
+    0, 0, 0, 58, 191, 1754, 1704, 0, 0, 2581, 1920, 2443, 0, 3264, 0, 1379,
+    0, 3933, 1049, 4127, 0, 2030, 0, 1363, 1411, 720, 945, 0, 367, 1312, 0,
+    0, 0, 0, 1257, 2000, 0, 0, 260, 2860, 3118, 0, 85, 2600, 1842, 3727,
+    554, 0, 0, 3763, 111, 0, 2993, 2128, 4103, 620, 0, 4018, 3867, 967,
+    3281, 808, 482, 0, 2321, 0, 0, 943, 574, 256, 4177, 574, 0, 4048, 212,
+    3917, 0, 4026, 0, 4161, 3004, 0, 3974, 0, 668, 426, 1194, 0, 0, 0,
+    2099, 3538, 0, 1951, 0, 0, 0, 2892, 0, 0, 451, 0, 3417, 2937, 0, 0,
+    2086, 0, 406, 0, 0, 0, 0, 4572, 1399, 3622, 894, 824, 195, 2309, 0, 0,
+    2169, 0, 1898, 2616, 0, 626, 1848, 7, 0, 3290, 2404, 0, 3593, 0, 4205,
+    1884, 0, 0, 3522, 1862, 2700, 0, 946, 2876, 1349, 0, 4208, 0, 0, 0,
+    670, 0, 0, 0, 2742, 145, 776, 0, 63, 850, 781, 0, 0, 3548, 1898, 1220,
+    490, 0, 875, 0, 0, 0, 520, 877, 1172, 1527, 0, 897, 0, 2415, 1127, 638,
+    4329, 0, 523, 4283, 1165, 0, 15, 2321, 978, 0, 1307, 0, 816, 1025,
+    3393, 0, 240, 145, 0, 3635, 3382, 2315, 3567, 3047, 0, 1752, 49, 4512,
+    4482, 3417, 0, 0, 4282, 463, 4462, 0, 128, 0, 23, 4462, 836, 0, 1029,
+    0, 2019, 0, 0, 2658, 0, 4525, 0, 3862, 0, 1577, 0, 0, 2372, 4416, 2195,
+    0, 516, 0, 0, 551, 849, 1716, 2507, 522, 550, 0, 1543, 1983, 4223,
+    3500, 0, 0, 1262, 502, 1512, 0, 0, 898, 292, 1236, 0, 0, 1004, 1963,
+    1952, 0, 0, 287, 2341, 3718, 1251, 4119, 1321, 3407, 0, 0, 0, 0, 2423,
+    251, 573, 3729, 4519, 1526, 4165, 2557, 0, 788, 0, 1448, 0, 0, 618, 0,
+    850, 0, 161, 1350, 644, 853, 1374, 0, 1767, 1315, 1539, 596, 753, 0,
+    467, 0, 4512, 970, 1730, 0, 0, 527, 3617, 2164, 2371, 0, 2418, 0, 0,
+    2504, 405, 0, 3599, 1925, 0, 1064, 0, 370, 0, 4526, 325, 1972, 0, 3356,
+    1134, 3930, 1318, 421, 2514, 2476, 638, 3571, 0, 0, 2142, 3054, 0,
+    2064, 2541, 1652, 3622, 0, 823, 1941, 878, 1673, 0, 3435, 0, 0, 0, 661,
+    3064, 0, 627, 0, 0, 0, 2359, 4291, 2531, 0, 4000, 0, 296, 0, 3074, 225,
+    0, 0, 2491, 99, 0, 0, 0, 0, 0, 0, 695, 1499, 0, 0, 2403, 3941, 558, 0,
+    0, 2265, 1068, 0, 845, 0, 0, 2485, 1864, 0, 1349, 598, 1415, 0, 544, 0,
+    3472, 0, 392, 113, 3942, 3088, 1266, 1235, 0, 540, 169, 436, 4186,
+    1878, 4206, 4094, 0, 662, 0, 2003, 2545, 3270, 708, 0, 0, 4359, 59, 0,
+    2044, 1527, 4373, 0, 528, 736, 0, 0, 0, 1621, 1206, 4202, 0, 0, 2613,
+    4059, 0, 844, 0, 2071, 0, 1126, 1719, 448, 3767, 2876, 1428, 925, 0, 0,
+    2965, 1816, 64, 0, 0, 3750, 0, 0, 1995, 0, 0, 1647, 0, 0, 0, 755, 0, 0,
+    0, 0, 0, 3336, 3374, 123, 0, 2172, 0, 0, 0, 2338, 519, 2630, 3573, 0,
+    0, 1269, 2325, 0, 1935, 485, 0, 0, 2310, 2413, 4405, 2397, 1122, 1824,
+    2055, 4062, 1449, 671, 412, 446, 4007, 286, 3846, 1387, 1978, 2443,
+    534, 0, 1061, 2005, 2269, 597, 2272, 0, 0, 3738, 0, 0, 1562, 741, 0, 0,
+    0, 0, 2349, 0, 2030, 0, 0, 0, 0, 0, 991, 0, 2416, 0, 2178, 1493, 0,
+    2163, 0, 17, 1651, 1348, 4337, 2029, 0, 117, 1605, 0, 3444, 1965, 0,
+    1776, 458, 397, 3063, 5, 4058, 535, 2807, 977, 314, 3613, 105, 3191,
+    153, 4397, 2752, 1412, 4069, 0, 0, 0, 0, 1089, 0, 1968, 0, 768, 2132,
+    0, 2582, 0, 0, 3753, 3512, 0, 909, 3256, 3999, 2436, 710, 0, 700, 248,
+    4078, 4347, 1222, 3669, 0, 0, 882, 0, 0, 0, 0, 2293, 362, 81, 1667,
+    3662, 2259, 0, 433, 4306, 3200, 0, 2445, 786, 3554, 0, 0, 0, 704, 0,
+    2695, 3256, 3676, 881, 2107, 1637, 0, 778, 0, 2232, 1858, 1616, 2872,
+    1467, 1545, 1613, 2512, 1587, 0, 1816, 4354, 1844, 0, 0, 3707, 3982,
+    3115, 2408, 1957, 0, 0, 4180, 177, 0, 759, 2615, 0, 2657, 208, 286, 0,
+    0, 0, 3075, 174, 1690, 2099, 0, 1345, 2018, 19, 1714, 0, 4440, 0, 3433,
+    0, 2951, 3090, 0, 1572, 1834, 3590, 0, 0, 443, 0, 3912, 0, 3850, 0,
+    497, 0, 2180, 2326, 1839, 0, 4155, 2871, 767, 0, 1249, 1687, 32, 4323,
+    4213, 2276, 1015, 0, 0, 2246, 327, 3992, 580, 1752, 3376, 2986, 2046,
+    2680, 0, 3862, 1306, 1087, 0, 50, 0, 0, 1553, 307, 0, 2332, 2418, 2474,
+    0, 1160, 1935, 1511, 0, 2082, 1193, 0, 0, 4054, 0, 367, 0, 1201, 1052,
+    0, 4550, 0, 1202, 1630, 0, 3705, 0, 0, 1923, 1124, 0, 508, 0, 2268, 0,
+    1205, 977, 2839, 0, 1054, 577, 3807, 1596, 0, 0, 1252, 0, 2653, 805,
+    2845, 942, 2231, 4007, 0, 2601, 277, 0, 1288, 1431, 0, 236, 3253, 0,
+    544, 1633, 928, 1446, 3652, 2, 467, 555, 1602, 0, 1105, 0, 10, 163, 0,
+    0, 1877, 0, 0, 0, 162, 1367, 4327, 0, 2915, 2460, 0, 0, 3361, 719,
+    1406, 201, 0, 467, 0, 0, 4303, 3609, 1599, 330, 108, 316, 0, 0, 0, 0,
+    2013, 18, 120, 1763, 3139, 0, 3485, 2025, 855, 0, 0, 572, 2308, 2496,
+    4410, 1711, 0, 3226, 0, 543, 0, 1621, 76, 3210, 3215, 17, 384, 0, 3294,
+    4505, 0, 0, 0, 1675, 1668, 1035, 0, 119, 0, 2789, 0, 3570, 4549, 98,
+    204, 2275, 0, 0, 0, 1949, 0, 0, 717, 0, 0, 0, 0, 113, 202, 0, 1557, 0,
+    1485, 840, 1002, 0, 0, 4427, 626, 4249, 0, 0, 2078, 165, 0, 929, 705,
+    1441, 0, 0, 1210, 972, 2190, 0, 0, 0, 0, 1931, 869, 0, 3521, 1203, 346,
+    0, 0, 0, 0, 0, 318, 1320, 667, 2715, 699, 1811, 0, 129, 813, 133, 1170,
+    0, 2082, 97, 0, 3526, 326, 0, 3954, 0, 4154, 0, 4309, 2381, 3528, 0,
+    30, 871, 4124, 4443, 2937, 0, 1725, 0, 0, 0, 2310, 455, 1619, 0, 1311,
+    0, 1380, 0, 0, 1836, 0, 0, 1089, 2913, 4345, 246, 0, 26, 961, 0, 0,
+    4157, 784, 0, 0, 2551, 3071, 485, 939, 2498, 0, 0, 0, 780, 4229, 1715,
+    0, 0, 0, 0, 70, 347, 3277, 639, 0, 0, 1504, 583, 0, 3743, 1826, 0, 45,
+    0, 0, 1008, 2163, 334, 1442, 0, 3030, 2537, 2051, 2729, 233, 3286, 0,
+    2576, 937, 950, 0, 2733, 0, 330, 4489, 2811, 0, 0, 0, 4544, 744, 2276,
+    0, 0, 1033, 203, 1114, 4197, 0, 0, 0, 0, 0, 2414, 295, 2339, 320, 1012,
+    0, 0, 3831, 2284, 0, 0, 1032, 134, 1726, 0, 0, 0, 3449, 0, 0, 3858,
+    191, 0, 1722, 790, 0, 2422, 0, 0, 1274, 0, 2270, 0, 0, 1010, 0, 0, 0,
+    1282, 1284, 0, 449, 0, 3027, 193, 0, 2027, 0, 1373, 0, 980, 3570, 1766,
+    1599, 4117, 167, 2021, 0, 2297, 471, 4085, 3018, 0, 335, 2835, 0, 2171,
+    0, 1360, 0, 1099, 3721, 1043, 0, 0, 0, 475, 3827, 16, 0, 672, 3315, 0,
+    4339, 0, 4427, 2223, 0, 0, 337, 0, 501, 229, 355, 85, 2613, 1226, 2295,
+    2336, 105, 0, 4538, 1538, 0, 0, 0, 2782, 3838, 0, 648, 0, 3778, 0, 0,
+    0, 0, 0, 0, 1336, 0, 0, 0, 2497, 743, 2249, 4081, 1023, 1864, 0, 3566,
+    2420, 1134, 1465, 1353, 1077, 149, 1704, 1778, 0, 0, 3553, 2079, 3287,
+    0, 0, 0, 1268, 599, 0, 0, 1112, 3816, 2411, 2535, 508, 0, 1829, 3311,
+    4312, 660, 2714, 0, 1657, 1994, 82, 3885, 1442, 0, 3432, 4337, 2665,
+    2778, 1687, 2522, 0, 1835, 1945, 1097, 682, 3420, 0, 0, 1450, 2138,
+    1006, 1376, 1456, 226, 3999, 982, 1417, 3602, 1964, 1894, 1525, 2505,
+    0, 4288, 0, 0, 2350, 441, 0, 0, 4083, 925, 3113, 310, 2991, 189, 1721,
+    544, 4105, 4546, 3498, 3022, 978, 0, 2007, 0, 1107, 0, 2286, 0, 1037,
+    0, 0, 0, 285, 0, 1559, 0, 0, 1728, 0, 0, 0, 284, 624, 263, 303, 1181,
+    2548, 1546, 2138, 0, 3610, 4024, 720, 2156, 0, 0, 446, 0, 0, 0, 0, 747,
+    0, 3594, 461, 3128, 505, 0, 67, 0, 2413, 0, 2775, 0, 0, 1780, 802, 0,
+    0, 0, 401, 1834, 2278, 4251, 0, 0, 0, 413, 0, 3070, 1726, 0, 0, 475, 0,
+    1857, 685, 2597, 981, 0, 0, 1655, 1180, 2228, 1253, 132, 63, 4266,
+    3166, 78, 0, 2635, 1295, 344, 3971, 743, 1580, 320, 4562, 0, 4412,
+    1166, 4460, 2660, 2264, 2579, 2733, 0, 2113, 3809, 2064, 1495, 0, 618,
+    886, 0, 0, 0, 4410, 1989, 0, 3907, 1781, 0, 2385, 92, 330, 1729, 3966,
+    1631, 4133, 2905, 2557, 3232, 0, 0, 0, 0, 0, 0, 291, 220, 3039, 465, 0,
+    4496, 0, 315, 3140, 0, 781, 0, 0, 0, 0, 0, 1419, 325, 4515, 4243, 1209,
+    2121, 0, 0, 2217, 2871, 417, 0, 0, 2310, 0, 2700, 4347, 1805, 1330,
+    3905, 760, 3564, 0, 2297, 2413, 1603, 1234, 3139, 0, 3836, 1431, 833,
+    1461, 146, 2173, 1111, 0, 1226, 1383, 0, 683, 2289, 783, 0, 0, 0, 0,
+    2024, 2362, 0, 2822, 0, 2184, 3117, 2289, 2884, 3942, 0, 0, 1806, 2073,
+    1039, 1332, 4148, 3602, 1500, 703, 0, 0, 0, 4304, 4271, 3563, 0, 214,
+    27, 1267, 1882, 3233, 3015, 0, 0, 0, 0, 2139, 1571, 0, 0, 4364, 3885,
+    3251, 0, 1662, 481, 9, 595, 0, 0, 1805, 0, 1783, 1270, 4365, 1375, 0,
+    0, 0, 3269, 1077, 2763, 324, 0, 4353, 2358, 2675, 0, 1843, 0, 1649,
+    333, 0, 0, 3961, 4484, 0, 0, 1368, 0, 3211, 4118, 4373, 3908, 1991, 0,
+    2189, 1381, 0, 2168, 1463, 1308, 466, 145, 3355, 0, 0, 298, 298, 1183,
+    0, 1145, 2060, 1516, 199, 0, 3088, 3607, 4408, 2304, 0, 2190, 2747, 0,
+    474, 0, 0, 3078, 4275, 820, 876, 1004, 2364, 0, 0, 3908, 2394, 1474,
+    2723, 1814, 2086, 294, 1788, 4408, 0, 2955, 3862, 912, 3296, 2130, 116,
+    1388, 2762, 2870, 0, 165, 0, 1852, 2287, 0, 0, 489, 2160, 441, 0, 2625,
+    349, 2280, 3030, 58, 0, 0, 4201, 0, 1229, 1760, 0, 4234, 791, 1053,
+    1349, 1951, 0, 1694, 1742, 4365, 3099, 2439, 4373, 0, 413, 0, 0, 0, 0,
+    3261, 1612, 0, 0, 3708, 1350, 252, 2326, 3770, 2427, 0, 1973, 3648,
+    2213, 253, 2017, 1533, 2014, 0, 0, 0, 1254, 2047, 0, 285, 1208, 2385,
+    0, 3284, 1586, 1396, 0, 0, 0, 1567, 1056, 0, 2370, 2208, 2196, 930,
+    1787, 0, 0, 0, 101, 0, 4554, 589, 1093, 3184, 0, 1063, 2620, 0, 323,
+    3160, 0, 1985, 2649, 0, 2950, 1670, 1932, 303, 630, 0, 1604, 0, 384,
+    1160, 4004, 3476, 4046, 1701, 0, 1182, 0, 3666, 1562, 1622, 1384, 0, 0,
+    0, 3622, 1340, 0, 3506, 2618, 2792, 1141, 1702, 4495, 2269, 0, 4344,
+    2047, 0, 2506, 0, 604, 0, 1979, 1455, 148, 2255, 0, 1069, 0, 4532, 0,
+    0, 3671, 265, 87, 0, 0, 4398, 4347, 1070, 970, 0, 1960, 3092, 943, 0,
+    1007, 0, 2528, 2173, 313, 347, 1560, 946, 4204, 2101, 0, 991, 0, 2102,
+    2053, 0, 680, 1979, 0, 1701, 0, 3621, 1556, 0, 331, 2707, 2448, 1240,
+    4042, 1616, 0, 3662, 0, 0, 0, 53, 4001, 0, 3069, 1309, 1446, 304, 357,
+    0, 3309, 2111, 3132, 264, 0, 103, 1400, 3319, 809, 2150, 2224, 0, 1528,
+    1147, 1528, 2667, 0, 0, 415, 0, 175, 3613, 1402, 1905, 0, 803, 1744,
+    2833, 804, 0, 0, 0, 0, 4466, 585, 2964, 1606, 3440, 297, 4247, 1275, 0,
+    0, 0, 1508, 0, 2835, 3573, 0, 400, 0, 4481, 3301, 734, 1036, 823, 1398,
+    706, 0, 0, 3880, 2284, 0, 0, 619, 0, 1317, 0, 0, 2219, 0, 4480, 628,
+    983, 4502, 3011, 1487, 44, 0, 0, 30, 2527, 2246, 804, 0, 2016, 2001,
+    1657, 0, 0, 1330, 739, 0, 0, 0, 0, 3978, 219, 974, 339, 3993, 2, 1118,
+    1395, 2451, 3610, 1189, 2341, 53, 110, 2132, 4538, 4392, 393, 53, 2176,
+    92, 2282, 0, 584, 885, 1401, 2282, 79, 1644, 0, 4316, 0, 4033, 0, 4235,
+    3232, 2752, 0, 0, 2010, 2446, 0, 0, 4547, 0, 2203, 247, 4125, 0, 0,
+    1261, 216, 0, 4138, 0, 0, 0, 0, 1637, 0, 0, 200, 750, 262, 0, 4510, 0,
+    1506, 2069, 4241, 1589, 661, 0, 277, 3425, 1294, 14, 0, 1747, 2220,
+    2297, 0, 0, 238, 0, 547, 476, 2223, 4221, 4355, 1385, 1724, 0, 0, 2139,
+    1990, 902, 0, 1183, 18, 0, 1607, 0, 2513, 1427, 395, 975, 0, 3106,
+    1756, 2038, 561, 0, 1217, 925, 158, 989, 4043, 0, 0, 0, 2342, 0, 2070,
+    297, 457, 0, 3756, 451, 0, 4085, 0, 4111, 2184, 0, 0, 0, 3984, 373, 0,
+    3175, 1178, 4351, 1137, 2453, 1709, 1594, 4546, 3060, 0, 1834, 3303, 0,
+    1327, 1177, 553, 404, 4148, 1271, 0, 603, 0, 0, 1541, 0, 2530, 0, 0,
+    2593, 1055, 0, 2346, 0, 424, 2332, 0, 1654, 0, 2249, 466, 1189, 700,
+    4013, 852, 126, 1203, 221, 852, 667, 350, 0, 758, 4008, 0, 4389, 854,
+    2392, 0, 2277, 782, 1516, 0, 2643, 766, 1171, 137, 3759, 733, 981, 0,
+    0, 1208, 1949, 2894, 0, 1871, 4499, 0, 1179, 0, 263, 414, 3460, 3873,
+    131, 1836, 528, 0, 0, 2185, 0, 2149, 0, 0, 1688, 1626, 4532, 0, 4415,
+    0, 4262, 0, 0, 1962, 0, 0, 453, 2195, 3045, 648, 3824, 1109, 2294,
+    3776, 0, 1433, 3623, 761, 2010, 0, 2049, 496, 0, 2094, 4421, 0, 420, 0,
+    0, 90, 0, 0, 485, 0, 0, 2499, 1177, 0, 0, 4511, 2369, 1523, 0, 0, 3755,
+    2071
+};
+
+static size_t
+keysym_name_hash_f(const char *key, const char *T)
+{
+    size_t sum = 0;
+    for (size_t i = 0; key[i] != '\0'; i++)
+        sum += T[i % 32] * key[i];
+    return sum % 4573;
+}
+
+static size_t
+keysym_name_perfect_hash(const char *key)
+{
+    return (
+        keysym_name_G[keysym_name_hash_f(key, "xQ6s5AweQcmhYSjcMnXcbUZV5VlaPl27")] +
+        keysym_name_G[keysym_name_hash_f(key, "rCH1UKEZTzn9hlnUvX76Sw7VmrLuST7A")]
+    ) % 4573;
+}
+
+
 struct name_keysym {
     xkb_keysym_t keysym;
     uint32_t offset;
@@ -3033,1832 +3492,1974 @@
     { 0x0000ff37, 8654 }, /* Codeinput */
     { 0x0000003a, 8664 }, /* colon */
     { 0x010020a1, 8670 }, /* ColonSign */
-    { 0x0000002c, 8680 }, /* comma */
-    { 0x0100220b, 8686 }, /* containsas */
-    { 0x0000ffe3, 8697 }, /* Control_L */
-    { 0x0000ffe4, 8707 }, /* Control_R */
-    { 0x000000a9, 8717 }, /* copyright */
-    { 0x000009e4, 8727 }, /* cr */
-    { 0x000009ee, 8730 }, /* crossinglines */
-    { 0x010020a2, 8744 }, /* CruzeiroSign */
-    { 0x0100221b, 8757 }, /* cuberoot */
-    { 0x000000a4, 8766 }, /* currency */
-    { 0x00000aff, 8775 }, /* cursor */
-    { 0x000006c1, 8782 }, /* Cyrillic_a */
-    { 0x000006e1, 8793 }, /* Cyrillic_A */
-    { 0x000006c2, 8804 }, /* Cyrillic_be */
-    { 0x000006e2, 8816 }, /* Cyrillic_BE */
-    { 0x000006de, 8828 }, /* Cyrillic_che */
-    { 0x000006fe, 8841 }, /* Cyrillic_CHE */
-    { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */
-    { 0x010004b7, 8877 }, /* Cyrillic_che_descender */
-    { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */
-    { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */
-    { 0x000006c4, 8948 }, /* Cyrillic_de */
-    { 0x000006e4, 8960 }, /* Cyrillic_DE */
-    { 0x000006af, 8972 }, /* Cyrillic_dzhe */
-    { 0x000006bf, 8986 }, /* Cyrillic_DZHE */
-    { 0x000006dc, 9000 }, /* Cyrillic_e */
-    { 0x000006fc, 9011 }, /* Cyrillic_E */
-    { 0x000006c6, 9022 }, /* Cyrillic_ef */
-    { 0x000006e6, 9034 }, /* Cyrillic_EF */
-    { 0x000006cc, 9046 }, /* Cyrillic_el */
-    { 0x000006ec, 9058 }, /* Cyrillic_EL */
-    { 0x000006cd, 9070 }, /* Cyrillic_em */
-    { 0x000006ed, 9082 }, /* Cyrillic_EM */
-    { 0x000006ce, 9094 }, /* Cyrillic_en */
-    { 0x000006ee, 9106 }, /* Cyrillic_EN */
-    { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */
-    { 0x010004a3, 9140 }, /* Cyrillic_en_descender */
-    { 0x000006d2, 9162 }, /* Cyrillic_er */
-    { 0x000006f2, 9174 }, /* Cyrillic_ER */
-    { 0x000006d3, 9186 }, /* Cyrillic_es */
-    { 0x000006f3, 9198 }, /* Cyrillic_ES */
-    { 0x000006c7, 9210 }, /* Cyrillic_ghe */
-    { 0x000006e7, 9223 }, /* Cyrillic_GHE */
-    { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */
-    { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */
-    { 0x000006c8, 9270 }, /* Cyrillic_ha */
-    { 0x000006e8, 9282 }, /* Cyrillic_HA */
-    { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */
-    { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */
-    { 0x000006df, 9338 }, /* Cyrillic_hardsign */
-    { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */
-    { 0x000006c9, 9374 }, /* Cyrillic_i */
-    { 0x000006e9, 9385 }, /* Cyrillic_I */
-    { 0x010004e2, 9396 }, /* Cyrillic_I_macron */
-    { 0x010004e3, 9414 }, /* Cyrillic_i_macron */
-    { 0x000006c5, 9432 }, /* Cyrillic_ie */
-    { 0x000006e5, 9444 }, /* Cyrillic_IE */
-    { 0x000006a3, 9456 }, /* Cyrillic_io */
-    { 0x000006b3, 9468 }, /* Cyrillic_IO */
-    { 0x000006a8, 9480 }, /* Cyrillic_je */
-    { 0x000006b8, 9492 }, /* Cyrillic_JE */
-    { 0x000006cb, 9504 }, /* Cyrillic_ka */
-    { 0x000006eb, 9516 }, /* Cyrillic_KA */
-    { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */
-    { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */
-    { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */
-    { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */
-    { 0x000006a9, 9618 }, /* Cyrillic_lje */
-    { 0x000006b9, 9631 }, /* Cyrillic_LJE */
-    { 0x000006aa, 9644 }, /* Cyrillic_nje */
-    { 0x000006ba, 9657 }, /* Cyrillic_NJE */
-    { 0x000006cf, 9670 }, /* Cyrillic_o */
-    { 0x000006ef, 9681 }, /* Cyrillic_O */
-    { 0x010004e8, 9692 }, /* Cyrillic_O_bar */
-    { 0x010004e9, 9707 }, /* Cyrillic_o_bar */
-    { 0x000006d0, 9722 }, /* Cyrillic_pe */
-    { 0x000006f0, 9734 }, /* Cyrillic_PE */
-    { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */
-    { 0x010004d9, 9761 }, /* Cyrillic_schwa */
-    { 0x000006db, 9776 }, /* Cyrillic_sha */
-    { 0x000006fb, 9789 }, /* Cyrillic_SHA */
-    { 0x000006dd, 9802 }, /* Cyrillic_shcha */
-    { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */
-    { 0x010004ba, 9832 }, /* Cyrillic_SHHA */
-    { 0x010004bb, 9846 }, /* Cyrillic_shha */
-    { 0x000006ca, 9860 }, /* Cyrillic_shorti */
-    { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */
-    { 0x000006d8, 9892 }, /* Cyrillic_softsign */
-    { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */
-    { 0x000006d4, 9928 }, /* Cyrillic_te */
-    { 0x000006f4, 9940 }, /* Cyrillic_TE */
-    { 0x000006c3, 9952 }, /* Cyrillic_tse */
-    { 0x000006e3, 9965 }, /* Cyrillic_TSE */
-    { 0x000006d5, 9978 }, /* Cyrillic_u */
-    { 0x000006f5, 9989 }, /* Cyrillic_U */
-    { 0x010004ee, 10000 }, /* Cyrillic_U_macron */
-    { 0x010004ef, 10018 }, /* Cyrillic_u_macron */
-    { 0x010004ae, 10036 }, /* Cyrillic_U_straight */
-    { 0x010004af, 10056 }, /* Cyrillic_u_straight */
-    { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */
-    { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */
-    { 0x000006d7, 10124 }, /* Cyrillic_ve */
-    { 0x000006f7, 10136 }, /* Cyrillic_VE */
-    { 0x000006d1, 10148 }, /* Cyrillic_ya */
-    { 0x000006f1, 10160 }, /* Cyrillic_YA */
-    { 0x000006d9, 10172 }, /* Cyrillic_yeru */
-    { 0x000006f9, 10186 }, /* Cyrillic_YERU */
-    { 0x000006c0, 10200 }, /* Cyrillic_yu */
-    { 0x000006e0, 10212 }, /* Cyrillic_YU */
-    { 0x000006da, 10224 }, /* Cyrillic_ze */
-    { 0x000006fa, 10236 }, /* Cyrillic_ZE */
-    { 0x000006d6, 10248 }, /* Cyrillic_zhe */
-    { 0x000006f6, 10261 }, /* Cyrillic_ZHE */
-    { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */
-    { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */
-    { 0x00000044, 10320 }, /* D */
-    { 0x00000064, 10322 }, /* d */
-    { 0x01001e0a, 10324 }, /* Dabovedot */
-    { 0x01001e0b, 10334 }, /* dabovedot */
-    { 0x1000fe27, 10344 }, /* Dacute_accent */
-    { 0x00000af1, 10358 }, /* dagger */
-    { 0x000001cf, 10365 }, /* Dcaron */
-    { 0x000001ef, 10372 }, /* dcaron */
-    { 0x1000fe2c, 10379 }, /* Dcedilla_accent */
-    { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */
-    { 0x1000fe22, 10414 }, /* Ddiaeresis */
-    { 0x0000fe80, 10425 }, /* dead_a */
-    { 0x0000fe81, 10432 }, /* dead_A */
-    { 0x0000fe64, 10439 }, /* dead_abovecomma */
-    { 0x0000fe56, 10455 }, /* dead_abovedot */
-    { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */
-    { 0x0000fe58, 10493 }, /* dead_abovering */
-    { 0x0000fe91, 10508 }, /* dead_aboveverticalline */
-    { 0x0000fe51, 10531 }, /* dead_acute */
-    { 0x0000fe6b, 10542 }, /* dead_belowbreve */
-    { 0x0000fe69, 10558 }, /* dead_belowcircumflex */
-    { 0x0000fe6e, 10579 }, /* dead_belowcomma */
-    { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */
-    { 0x0000fe60, 10615 }, /* dead_belowdot */
-    { 0x0000fe68, 10629 }, /* dead_belowmacron */
-    { 0x0000fe67, 10646 }, /* dead_belowring */
-    { 0x0000fe6a, 10661 }, /* dead_belowtilde */
-    { 0x0000fe92, 10677 }, /* dead_belowverticalline */
-    { 0x0000fe55, 10700 }, /* dead_breve */
-    { 0x0000fe8b, 10711 }, /* dead_capital_schwa */
-    { 0x0000fe5a, 10730 }, /* dead_caron */
-    { 0x0000fe5b, 10741 }, /* dead_cedilla */
-    { 0x0000fe52, 10754 }, /* dead_circumflex */
-    { 0x0000fe6f, 10770 }, /* dead_currency */
-    { 0x0000fe65, 10784 }, /* dead_dasia */
-    { 0x0000fe57, 10795 }, /* dead_diaeresis */
-    { 0x0000fe59, 10810 }, /* dead_doubleacute */
-    { 0x0000fe66, 10827 }, /* dead_doublegrave */
-    { 0x0000fe82, 10844 }, /* dead_e */
-    { 0x0000fe83, 10851 }, /* dead_E */
-    { 0x0000fe50, 10858 }, /* dead_grave */
-    { 0x0000fe8c, 10869 }, /* dead_greek */
-    { 0x0000fe61, 10880 }, /* dead_hook */
-    { 0x0000fe62, 10890 }, /* dead_horn */
-    { 0x0000fe84, 10900 }, /* dead_i */
-    { 0x0000fe85, 10907 }, /* dead_I */
-    { 0x0000fe6d, 10914 }, /* dead_invertedbreve */
-    { 0x0000fe5d, 10933 }, /* dead_iota */
-    { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */
-    { 0x0000fe90, 10967 }, /* dead_lowline */
-    { 0x0000fe54, 10980 }, /* dead_macron */
-    { 0x0000fe86, 10992 }, /* dead_o */
-    { 0x0000fe87, 10999 }, /* dead_O */
-    { 0x0000fe5c, 11006 }, /* dead_ogonek */
-    { 0x0000fe53, 11018 }, /* dead_perispomeni */
-    { 0x0000fe64, 11035 }, /* dead_psili */
-    { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */
-    { 0x0000fe8a, 11068 }, /* dead_small_schwa */
-    { 0x0000fe63, 11085 }, /* dead_stroke */
-    { 0x0000fe53, 11097 }, /* dead_tilde */
-    { 0x0000fe88, 11108 }, /* dead_u */
-    { 0x0000fe89, 11115 }, /* dead_U */
-    { 0x0000fe5e, 11122 }, /* dead_voiced_sound */
-    { 0x00000abd, 11140 }, /* decimalpoint */
-    { 0x000000b0, 11153 }, /* degree */
-    { 0x0000ffff, 11160 }, /* Delete */
-    { 0x1000ff73, 11167 }, /* DeleteChar */
-    { 0x1000ff71, 11178 }, /* DeleteLine */
-    { 0x1000fe60, 11189 }, /* Dgrave_accent */
-    { 0x000000a8, 11203 }, /* diaeresis */
-    { 0x00000aed, 11213 }, /* diamond */
-    { 0x00000aa5, 11221 }, /* digitspace */
-    { 0x0100222c, 11232 }, /* dintegral */
-    { 0x000000f7, 11242 }, /* division */
-    { 0x00000024, 11251 }, /* dollar */
-    { 0x010020ab, 11258 }, /* DongSign */
-    { 0x00000aaf, 11267 }, /* doubbaselinedot */
-    { 0x000001bd, 11283 }, /* doubleacute */
-    { 0x00000af2, 11295 }, /* doubledagger */
-    { 0x00000afe, 11308 }, /* doublelowquotemark */
-    { 0x0000ff54, 11327 }, /* Down */
-    { 0x000008fe, 11332 }, /* downarrow */
-    { 0x00000ba8, 11342 }, /* downcaret */
-    { 0x00000bd6, 11352 }, /* downshoe */
-    { 0x00000bc4, 11361 }, /* downstile */
-    { 0x00000bc2, 11371 }, /* downtack */
-    { 0x1000ff00, 11380 }, /* DRemove */
-    { 0x1000feb0, 11388 }, /* Dring_accent */
-    { 0x000001d0, 11401 }, /* Dstroke */
-    { 0x000001f0, 11409 }, /* dstroke */
-    { 0x1000fe7e, 11417 }, /* Dtilde */
-    { 0x00000045, 11424 }, /* E */
-    { 0x00000065, 11426 }, /* e */
-    { 0x000003cc, 11428 }, /* Eabovedot */
-    { 0x000003ec, 11438 }, /* eabovedot */
-    { 0x000000c9, 11448 }, /* Eacute */
-    { 0x000000e9, 11455 }, /* eacute */
-    { 0x01001eb8, 11462 }, /* Ebelowdot */
-    { 0x01001eb9, 11472 }, /* ebelowdot */
-    { 0x000001cc, 11482 }, /* Ecaron */
-    { 0x000001ec, 11489 }, /* ecaron */
-    { 0x000000ca, 11496 }, /* Ecircumflex */
-    { 0x000000ea, 11508 }, /* ecircumflex */
-    { 0x01001ebe, 11520 }, /* Ecircumflexacute */
-    { 0x01001ebf, 11537 }, /* ecircumflexacute */
-    { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */
-    { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */
-    { 0x01001ec0, 11594 }, /* Ecircumflexgrave */
-    { 0x01001ec1, 11611 }, /* ecircumflexgrave */
-    { 0x01001ec2, 11628 }, /* Ecircumflexhook */
-    { 0x01001ec3, 11644 }, /* ecircumflexhook */
-    { 0x01001ec4, 11660 }, /* Ecircumflextilde */
-    { 0x01001ec5, 11677 }, /* ecircumflextilde */
-    { 0x010020a0, 11694 }, /* EcuSign */
-    { 0x000000cb, 11702 }, /* Ediaeresis */
-    { 0x000000eb, 11713 }, /* ediaeresis */
-    { 0x000000c8, 11724 }, /* Egrave */
-    { 0x000000e8, 11731 }, /* egrave */
-    { 0x01001eba, 11738 }, /* Ehook */
-    { 0x01001ebb, 11744 }, /* ehook */
-    { 0x01002088, 11750 }, /* eightsubscript */
-    { 0x01002078, 11765 }, /* eightsuperior */
-    { 0x0000ff2f, 11779 }, /* Eisu_Shift */
-    { 0x0000ff30, 11790 }, /* Eisu_toggle */
-    { 0x01002208, 11802 }, /* elementof */
-    { 0x00000aae, 11812 }, /* ellipsis */
-    { 0x00000aa3, 11821 }, /* em3space */
-    { 0x00000aa4, 11830 }, /* em4space */
-    { 0x000003aa, 11839 }, /* Emacron */
-    { 0x000003ba, 11847 }, /* emacron */
-    { 0x00000aa9, 11855 }, /* emdash */
-    { 0x00000ade, 11862 }, /* emfilledcircle */
-    { 0x00000adf, 11877 }, /* emfilledrect */
-    { 0x00000ace, 11890 }, /* emopencircle */
-    { 0x00000acf, 11903 }, /* emopenrectangle */
-    { 0x01002205, 11919 }, /* emptyset */
-    { 0x00000aa1, 11928 }, /* emspace */
-    { 0x0000ff57, 11936 }, /* End */
-    { 0x00000aaa, 11940 }, /* endash */
-    { 0x00000ae6, 11947 }, /* enfilledcircbullet */
-    { 0x00000ae7, 11966 }, /* enfilledsqbullet */
-    { 0x000003bd, 11983 }, /* ENG */
-    { 0x000003bf, 11987 }, /* eng */
-    { 0x00000ae0, 11991 }, /* enopencircbullet */
-    { 0x00000ae1, 12008 }, /* enopensquarebullet */
-    { 0x00000aa2, 12027 }, /* enspace */
-    { 0x000001ca, 12035 }, /* Eogonek */
-    { 0x000001ea, 12043 }, /* eogonek */
-    { 0x0000003d, 12051 }, /* equal */
-    { 0x0000ff1b, 12057 }, /* Escape */
-    { 0x000000d0, 12064 }, /* ETH */
-    { 0x000000d0, 12068 }, /* Eth */
-    { 0x000000f0, 12072 }, /* eth */
-    { 0x01001ebc, 12076 }, /* Etilde */
-    { 0x01001ebd, 12083 }, /* etilde */
-    { 0x000020ac, 12090 }, /* EuroSign */
-    { 0x00000021, 12099 }, /* exclam */
-    { 0x000000a1, 12106 }, /* exclamdown */
-    { 0x0000ff62, 12117 }, /* Execute */
-    { 0x1000ff76, 12125 }, /* Ext16bit_L */
-    { 0x1000ff77, 12136 }, /* Ext16bit_R */
-    { 0x010001b7, 12147 }, /* EZH */
-    { 0x01000292, 12151 }, /* ezh */
-    { 0x00000046, 12155 }, /* F */
-    { 0x00000066, 12157 }, /* f */
-    { 0x0000ffbe, 12159 }, /* F1 */
-    { 0x0000ffc7, 12162 }, /* F10 */
-    { 0x0000ffc8, 12166 }, /* F11 */
-    { 0x0000ffc9, 12170 }, /* F12 */
-    { 0x0000ffca, 12174 }, /* F13 */
-    { 0x0000ffcb, 12178 }, /* F14 */
-    { 0x0000ffcc, 12182 }, /* F15 */
-    { 0x0000ffcd, 12186 }, /* F16 */
-    { 0x0000ffce, 12190 }, /* F17 */
-    { 0x0000ffcf, 12194 }, /* F18 */
-    { 0x0000ffd0, 12198 }, /* F19 */
-    { 0x0000ffbf, 12202 }, /* F2 */
-    { 0x0000ffd1, 12205 }, /* F20 */
-    { 0x0000ffd2, 12209 }, /* F21 */
-    { 0x0000ffd3, 12213 }, /* F22 */
-    { 0x0000ffd4, 12217 }, /* F23 */
-    { 0x0000ffd5, 12221 }, /* F24 */
-    { 0x0000ffd6, 12225 }, /* F25 */
-    { 0x0000ffd7, 12229 }, /* F26 */
-    { 0x0000ffd8, 12233 }, /* F27 */
-    { 0x0000ffd9, 12237 }, /* F28 */
-    { 0x0000ffda, 12241 }, /* F29 */
-    { 0x0000ffc0, 12245 }, /* F3 */
-    { 0x0000ffdb, 12248 }, /* F30 */
-    { 0x0000ffdc, 12252 }, /* F31 */
-    { 0x0000ffdd, 12256 }, /* F32 */
-    { 0x0000ffde, 12260 }, /* F33 */
-    { 0x0000ffdf, 12264 }, /* F34 */
-    { 0x0000ffe0, 12268 }, /* F35 */
-    { 0x0000ffc1, 12272 }, /* F4 */
-    { 0x0000ffc2, 12275 }, /* F5 */
-    { 0x0000ffc3, 12278 }, /* F6 */
-    { 0x0000ffc4, 12281 }, /* F7 */
-    { 0x0000ffc5, 12284 }, /* F8 */
-    { 0x0000ffc6, 12287 }, /* F9 */
-    { 0x01001e1e, 12290 }, /* Fabovedot */
-    { 0x01001e1f, 12300 }, /* fabovedot */
-    { 0x010006f0, 12310 }, /* Farsi_0 */
-    { 0x010006f1, 12318 }, /* Farsi_1 */
-    { 0x010006f2, 12326 }, /* Farsi_2 */
-    { 0x010006f3, 12334 }, /* Farsi_3 */
-    { 0x010006f4, 12342 }, /* Farsi_4 */
-    { 0x010006f5, 12350 }, /* Farsi_5 */
-    { 0x010006f6, 12358 }, /* Farsi_6 */
-    { 0x010006f7, 12366 }, /* Farsi_7 */
-    { 0x010006f8, 12374 }, /* Farsi_8 */
-    { 0x010006f9, 12382 }, /* Farsi_9 */
-    { 0x010006cc, 12390 }, /* Farsi_yeh */
-    { 0x00000af8, 12400 }, /* femalesymbol */
-    { 0x000009e3, 12413 }, /* ff */
-    { 0x010020a3, 12416 }, /* FFrancSign */
-    { 0x00000abb, 12427 }, /* figdash */
-    { 0x00000adc, 12435 }, /* filledlefttribullet */
-    { 0x00000adb, 12455 }, /* filledrectbullet */
-    { 0x00000add, 12472 }, /* filledrighttribullet */
-    { 0x00000ae9, 12493 }, /* filledtribulletdown */
-    { 0x00000ae8, 12513 }, /* filledtribulletup */
-    { 0x0000ff68, 12531 }, /* Find */
-    { 0x0000fed0, 12536 }, /* First_Virtual_Screen */
-    { 0x00000ac5, 12557 }, /* fiveeighths */
-    { 0x00000ab7, 12569 }, /* fivesixths */
-    { 0x01002085, 12580 }, /* fivesubscript */
-    { 0x01002075, 12594 }, /* fivesuperior */
-    { 0x00000ab5, 12607 }, /* fourfifths */
-    { 0x01002084, 12618 }, /* foursubscript */
-    { 0x01002074, 12632 }, /* foursuperior */
-    { 0x0100221c, 12645 }, /* fourthroot */
-    { 0x000008f6, 12656 }, /* function */
-    { 0x00000047, 12665 }, /* G */
-    { 0x00000067, 12667 }, /* g */
-    { 0x000002d5, 12669 }, /* Gabovedot */
-    { 0x000002f5, 12679 }, /* gabovedot */
-    { 0x000002ab, 12689 }, /* Gbreve */
-    { 0x000002bb, 12696 }, /* gbreve */
-    { 0x010001e6, 12703 }, /* Gcaron */
-    { 0x010001e7, 12710 }, /* gcaron */
-    { 0x000003ab, 12717 }, /* Gcedilla */
-    { 0x000003bb, 12726 }, /* gcedilla */
-    { 0x000002d8, 12735 }, /* Gcircumflex */
-    { 0x000002f8, 12747 }, /* gcircumflex */
-    { 0x010010d0, 12759 }, /* Georgian_an */
-    { 0x010010d1, 12771 }, /* Georgian_ban */
-    { 0x010010ea, 12784 }, /* Georgian_can */
-    { 0x010010ed, 12797 }, /* Georgian_char */
-    { 0x010010e9, 12811 }, /* Georgian_chin */
-    { 0x010010ec, 12825 }, /* Georgian_cil */
-    { 0x010010d3, 12838 }, /* Georgian_don */
-    { 0x010010d4, 12851 }, /* Georgian_en */
-    { 0x010010f6, 12863 }, /* Georgian_fi */
-    { 0x010010d2, 12875 }, /* Georgian_gan */
-    { 0x010010e6, 12888 }, /* Georgian_ghan */
-    { 0x010010f0, 12902 }, /* Georgian_hae */
-    { 0x010010f4, 12915 }, /* Georgian_har */
-    { 0x010010f1, 12928 }, /* Georgian_he */
-    { 0x010010f2, 12940 }, /* Georgian_hie */
-    { 0x010010f5, 12953 }, /* Georgian_hoe */
-    { 0x010010d8, 12966 }, /* Georgian_in */
-    { 0x010010ef, 12978 }, /* Georgian_jhan */
-    { 0x010010eb, 12992 }, /* Georgian_jil */
-    { 0x010010d9, 13005 }, /* Georgian_kan */
-    { 0x010010e5, 13018 }, /* Georgian_khar */
-    { 0x010010da, 13032 }, /* Georgian_las */
-    { 0x010010db, 13045 }, /* Georgian_man */
-    { 0x010010dc, 13058 }, /* Georgian_nar */
-    { 0x010010dd, 13071 }, /* Georgian_on */
-    { 0x010010de, 13083 }, /* Georgian_par */
-    { 0x010010e4, 13096 }, /* Georgian_phar */
-    { 0x010010e7, 13110 }, /* Georgian_qar */
-    { 0x010010e0, 13123 }, /* Georgian_rae */
-    { 0x010010e1, 13136 }, /* Georgian_san */
-    { 0x010010e8, 13149 }, /* Georgian_shin */
-    { 0x010010d7, 13163 }, /* Georgian_tan */
-    { 0x010010e2, 13176 }, /* Georgian_tar */
-    { 0x010010e3, 13189 }, /* Georgian_un */
-    { 0x010010d5, 13201 }, /* Georgian_vin */
-    { 0x010010f3, 13214 }, /* Georgian_we */
-    { 0x010010ee, 13226 }, /* Georgian_xan */
-    { 0x010010d6, 13239 }, /* Georgian_zen */
-    { 0x010010df, 13252 }, /* Georgian_zhar */
-    { 0x00000060, 13266 }, /* grave */
-    { 0x0000003e, 13272 }, /* greater */
-    { 0x000008be, 13280 }, /* greaterthanequal */
-    { 0x000007ae, 13297 }, /* Greek_accentdieresis */
-    { 0x000007c1, 13318 }, /* Greek_ALPHA */
-    { 0x000007e1, 13330 }, /* Greek_alpha */
-    { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */
-    { 0x000007b1, 13360 }, /* Greek_alphaaccent */
-    { 0x000007c2, 13378 }, /* Greek_BETA */
-    { 0x000007e2, 13389 }, /* Greek_beta */
-    { 0x000007d7, 13400 }, /* Greek_CHI */
-    { 0x000007f7, 13410 }, /* Greek_chi */
-    { 0x000007c4, 13420 }, /* Greek_DELTA */
-    { 0x000007e4, 13432 }, /* Greek_delta */
-    { 0x000007c5, 13444 }, /* Greek_EPSILON */
-    { 0x000007e5, 13458 }, /* Greek_epsilon */
-    { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */
-    { 0x000007b2, 13492 }, /* Greek_epsilonaccent */
-    { 0x000007c7, 13512 }, /* Greek_ETA */
-    { 0x000007e7, 13522 }, /* Greek_eta */
-    { 0x000007a3, 13532 }, /* Greek_ETAaccent */
-    { 0x000007b3, 13548 }, /* Greek_etaaccent */
-    { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */
-    { 0x000007c3, 13586 }, /* Greek_GAMMA */
-    { 0x000007e3, 13598 }, /* Greek_gamma */
-    { 0x000007af, 13610 }, /* Greek_horizbar */
-    { 0x000007c9, 13625 }, /* Greek_IOTA */
-    { 0x000007e9, 13636 }, /* Greek_iota */
-    { 0x000007a4, 13647 }, /* Greek_IOTAaccent */
-    { 0x000007b4, 13664 }, /* Greek_iotaaccent */
-    { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */
-    { 0x000007a5, 13706 }, /* Greek_IOTAdiaeresis */
-    { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */
-    { 0x000007b5, 13745 }, /* Greek_iotadieresis */
-    { 0x000007ca, 13764 }, /* Greek_KAPPA */
-    { 0x000007ea, 13776 }, /* Greek_kappa */
-    { 0x000007cb, 13788 }, /* Greek_LAMBDA */
-    { 0x000007eb, 13801 }, /* Greek_lambda */
-    { 0x000007cb, 13814 }, /* Greek_LAMDA */
-    { 0x000007eb, 13826 }, /* Greek_lamda */
-    { 0x000007cc, 13838 }, /* Greek_MU */
-    { 0x000007ec, 13847 }, /* Greek_mu */
-    { 0x000007cd, 13856 }, /* Greek_NU */
-    { 0x000007ed, 13865 }, /* Greek_nu */
-    { 0x000007d9, 13874 }, /* Greek_OMEGA */
-    { 0x000007f9, 13886 }, /* Greek_omega */
-    { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */
-    { 0x000007bb, 13916 }, /* Greek_omegaaccent */
-    { 0x000007cf, 13934 }, /* Greek_OMICRON */
-    { 0x000007ef, 13948 }, /* Greek_omicron */
-    { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */
-    { 0x000007b7, 13982 }, /* Greek_omicronaccent */
-    { 0x000007d6, 14002 }, /* Greek_PHI */
-    { 0x000007f6, 14012 }, /* Greek_phi */
-    { 0x000007d0, 14022 }, /* Greek_PI */
-    { 0x000007f0, 14031 }, /* Greek_pi */
-    { 0x000007d8, 14040 }, /* Greek_PSI */
-    { 0x000007f8, 14050 }, /* Greek_psi */
-    { 0x000007d1, 14060 }, /* Greek_RHO */
-    { 0x000007f1, 14070 }, /* Greek_rho */
-    { 0x000007d2, 14080 }, /* Greek_SIGMA */
-    { 0x000007f2, 14092 }, /* Greek_sigma */
-    { 0x0000ff7e, 14104 }, /* Greek_switch */
-    { 0x000007d4, 14117 }, /* Greek_TAU */
-    { 0x000007f4, 14127 }, /* Greek_tau */
-    { 0x000007c8, 14137 }, /* Greek_THETA */
-    { 0x000007e8, 14149 }, /* Greek_theta */
-    { 0x000007d5, 14161 }, /* Greek_UPSILON */
-    { 0x000007f5, 14175 }, /* Greek_upsilon */
-    { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */
-    { 0x000007b8, 14209 }, /* Greek_upsilonaccent */
-    { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */
-    { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */
-    { 0x000007b9, 14279 }, /* Greek_upsilondieresis */
-    { 0x000007ce, 14301 }, /* Greek_XI */
-    { 0x000007ee, 14310 }, /* Greek_xi */
-    { 0x000007c6, 14319 }, /* Greek_ZETA */
-    { 0x000007e6, 14330 }, /* Greek_zeta */
-    { 0x100000be, 14341 }, /* guilder */
-    { 0x000000ab, 14349 }, /* guillemotleft */
-    { 0x000000bb, 14363 }, /* guillemotright */
-    { 0x00000048, 14378 }, /* H */
-    { 0x00000068, 14380 }, /* h */
-    { 0x00000aa8, 14382 }, /* hairspace */
-    { 0x0000ff31, 14392 }, /* Hangul */
-    { 0x00000ebf, 14399 }, /* Hangul_A */
-    { 0x00000ec0, 14408 }, /* Hangul_AE */
-    { 0x00000ef6, 14418 }, /* Hangul_AraeA */
-    { 0x00000ef7, 14431 }, /* Hangul_AraeAE */
-    { 0x0000ff39, 14445 }, /* Hangul_Banja */
-    { 0x00000eba, 14458 }, /* Hangul_Cieuc */
-    { 0x0000ff37, 14471 }, /* Hangul_Codeinput */
-    { 0x00000ea7, 14488 }, /* Hangul_Dikeud */
-    { 0x00000ec4, 14502 }, /* Hangul_E */
-    { 0x0000ff33, 14511 }, /* Hangul_End */
-    { 0x00000ec3, 14522 }, /* Hangul_EO */
-    { 0x00000ed1, 14532 }, /* Hangul_EU */
-    { 0x0000ff34, 14542 }, /* Hangul_Hanja */
-    { 0x00000ebe, 14555 }, /* Hangul_Hieuh */
-    { 0x00000ed3, 14568 }, /* Hangul_I */
-    { 0x00000eb7, 14577 }, /* Hangul_Ieung */
-    { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */
-    { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */
-    { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */
-    { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */
-    { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */
-    { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */
-    { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */
-    { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */
-    { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */
-    { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */
-    { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */
-    { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */
-    { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */
-    { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */
-    { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */
-    { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */
-    { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */
-    { 0x00000edb, 14882 }, /* Hangul_J_Rieul */
-    { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */
-    { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */
-    { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */
-    { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */
-    { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */
-    { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */
-    { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */
-    { 0x00000ee6, 15038 }, /* Hangul_J_Sios */
-    { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */
-    { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */
-    { 0x00000eec, 15092 }, /* Hangul_J_Tieut */
-    { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */
-    { 0x0000ff35, 15128 }, /* Hangul_Jamo */
-    { 0x0000ff38, 15140 }, /* Hangul_Jeonja */
-    { 0x00000eb8, 15154 }, /* Hangul_Jieuj */
-    { 0x00000ebb, 15167 }, /* Hangul_Khieuq */
-    { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */
-    { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */
-    { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */
-    { 0x00000eb1, 15238 }, /* Hangul_Mieum */
-    { 0x0000ff3d, 15251 }, /* Hangul_MultipleCandidate */
-    { 0x00000ea4, 15276 }, /* Hangul_Nieun */
-    { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */
-    { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */
-    { 0x00000ec7, 15325 }, /* Hangul_O */
-    { 0x00000eca, 15334 }, /* Hangul_OE */
-    { 0x00000ef2, 15344 }, /* Hangul_PanSios */
-    { 0x00000ebd, 15359 }, /* Hangul_Phieuf */
-    { 0x00000eb2, 15373 }, /* Hangul_Pieub */
-    { 0x00000eb4, 15386 }, /* Hangul_PieubSios */
-    { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */
-    { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */
-    { 0x0000ff3e, 15436 }, /* Hangul_PreviousCandidate */
-    { 0x00000ea9, 15461 }, /* Hangul_Rieul */
-    { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */
-    { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */
-    { 0x00000eab, 15511 }, /* Hangul_RieulMieum */
-    { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */
-    { 0x00000eac, 15548 }, /* Hangul_RieulPieub */
-    { 0x00000ead, 15566 }, /* Hangul_RieulSios */
-    { 0x00000eae, 15583 }, /* Hangul_RieulTieut */
-    { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */
-    { 0x0000ff36, 15625 }, /* Hangul_Romaja */
-    { 0x0000ff3c, 15639 }, /* Hangul_SingleCandidate */
-    { 0x00000eb5, 15662 }, /* Hangul_Sios */
-    { 0x0000ff3f, 15674 }, /* Hangul_Special */
-    { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */
-    { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */
-    { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */
-    { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */
-    { 0x00000eb6, 15763 }, /* Hangul_SsangSios */
-    { 0x0000ff32, 15780 }, /* Hangul_Start */
-    { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */
-    { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */
-    { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */
-    { 0x0000ff7e, 15869 }, /* Hangul_switch */
-    { 0x00000ebc, 15883 }, /* Hangul_Tieut */
-    { 0x00000ecc, 15896 }, /* Hangul_U */
-    { 0x00000ec8, 15905 }, /* Hangul_WA */
-    { 0x00000ec9, 15915 }, /* Hangul_WAE */
-    { 0x00000ece, 15926 }, /* Hangul_WE */
-    { 0x00000ecd, 15936 }, /* Hangul_WEO */
-    { 0x00000ecf, 15947 }, /* Hangul_WI */
-    { 0x00000ec1, 15957 }, /* Hangul_YA */
-    { 0x00000ec2, 15967 }, /* Hangul_YAE */
-    { 0x00000ec6, 15978 }, /* Hangul_YE */
-    { 0x00000ec5, 15988 }, /* Hangul_YEO */
-    { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */
-    { 0x00000ed2, 16018 }, /* Hangul_YI */
-    { 0x00000ecb, 16028 }, /* Hangul_YO */
-    { 0x00000ed0, 16038 }, /* Hangul_YU */
-    { 0x0000ff29, 16048 }, /* Hankaku */
-    { 0x000002a6, 16056 }, /* Hcircumflex */
-    { 0x000002b6, 16068 }, /* hcircumflex */
-    { 0x00000aee, 16080 }, /* heart */
-    { 0x00000ce0, 16086 }, /* hebrew_aleph */
-    { 0x00000cf2, 16099 }, /* hebrew_ayin */
-    { 0x00000ce1, 16111 }, /* hebrew_bet */
-    { 0x00000ce1, 16122 }, /* hebrew_beth */
-    { 0x00000ce7, 16134 }, /* hebrew_chet */
-    { 0x00000ce3, 16146 }, /* hebrew_dalet */
-    { 0x00000ce3, 16159 }, /* hebrew_daleth */
-    { 0x00000cdf, 16173 }, /* hebrew_doublelowline */
-    { 0x00000cea, 16194 }, /* hebrew_finalkaph */
-    { 0x00000ced, 16211 }, /* hebrew_finalmem */
-    { 0x00000cef, 16227 }, /* hebrew_finalnun */
-    { 0x00000cf3, 16243 }, /* hebrew_finalpe */
-    { 0x00000cf5, 16258 }, /* hebrew_finalzade */
-    { 0x00000cf5, 16275 }, /* hebrew_finalzadi */
-    { 0x00000ce2, 16292 }, /* hebrew_gimel */
-    { 0x00000ce2, 16305 }, /* hebrew_gimmel */
-    { 0x00000ce4, 16319 }, /* hebrew_he */
-    { 0x00000ce7, 16329 }, /* hebrew_het */
-    { 0x00000ceb, 16340 }, /* hebrew_kaph */
-    { 0x00000cf7, 16352 }, /* hebrew_kuf */
-    { 0x00000cec, 16363 }, /* hebrew_lamed */
-    { 0x00000cee, 16376 }, /* hebrew_mem */
-    { 0x00000cf0, 16387 }, /* hebrew_nun */
-    { 0x00000cf4, 16398 }, /* hebrew_pe */
-    { 0x00000cf7, 16408 }, /* hebrew_qoph */
-    { 0x00000cf8, 16420 }, /* hebrew_resh */
-    { 0x00000cf1, 16432 }, /* hebrew_samech */
-    { 0x00000cf1, 16446 }, /* hebrew_samekh */
-    { 0x00000cf9, 16460 }, /* hebrew_shin */
-    { 0x0000ff7e, 16472 }, /* Hebrew_switch */
-    { 0x00000cfa, 16486 }, /* hebrew_taf */
-    { 0x00000cfa, 16497 }, /* hebrew_taw */
-    { 0x00000ce8, 16508 }, /* hebrew_tet */
-    { 0x00000ce8, 16519 }, /* hebrew_teth */
-    { 0x00000ce5, 16531 }, /* hebrew_waw */
-    { 0x00000ce9, 16542 }, /* hebrew_yod */
-    { 0x00000cf6, 16553 }, /* hebrew_zade */
-    { 0x00000cf6, 16565 }, /* hebrew_zadi */
-    { 0x00000ce6, 16577 }, /* hebrew_zain */
-    { 0x00000ce6, 16589 }, /* hebrew_zayin */
-    { 0x0000ff6a, 16602 }, /* Help */
-    { 0x0000ff23, 16607 }, /* Henkan */
-    { 0x0000ff23, 16614 }, /* Henkan_Mode */
-    { 0x00000ada, 16626 }, /* hexagram */
-    { 0x0000ff25, 16635 }, /* Hiragana */
-    { 0x0000ff27, 16644 }, /* Hiragana_Katakana */
-    { 0x0000ff50, 16662 }, /* Home */
-    { 0x000008a3, 16667 }, /* horizconnector */
-    { 0x000009ef, 16682 }, /* horizlinescan1 */
-    { 0x000009f0, 16697 }, /* horizlinescan3 */
-    { 0x000009f1, 16712 }, /* horizlinescan5 */
-    { 0x000009f2, 16727 }, /* horizlinescan7 */
-    { 0x000009f3, 16742 }, /* horizlinescan9 */
-    { 0x1000ff74, 16757 }, /* hpBackTab */
-    { 0x100000fc, 16767 }, /* hpblock */
-    { 0x1000ff6f, 16775 }, /* hpClearLine */
-    { 0x1000ff73, 16787 }, /* hpDeleteChar */
-    { 0x1000ff71, 16800 }, /* hpDeleteLine */
-    { 0x100000be, 16813 }, /* hpguilder */
-    { 0x1000ff72, 16823 }, /* hpInsertChar */
-    { 0x1000ff70, 16836 }, /* hpInsertLine */
-    { 0x100000ee, 16849 }, /* hpIO */
-    { 0x1000ff75, 16854 }, /* hpKP_BackTab */
-    { 0x100000af, 16867 }, /* hplira */
-    { 0x100000f6, 16874 }, /* hplongminus */
-    { 0x1000ff48, 16886 }, /* hpModelock1 */
-    { 0x1000ff49, 16898 }, /* hpModelock2 */
-    { 0x100000a8, 16910 }, /* hpmute_acute */
-    { 0x100000aa, 16923 }, /* hpmute_asciicircum */
-    { 0x100000ac, 16942 }, /* hpmute_asciitilde */
-    { 0x100000ab, 16960 }, /* hpmute_diaeresis */
-    { 0x100000a9, 16977 }, /* hpmute_grave */
-    { 0x1000ff6c, 16990 }, /* hpReset */
-    { 0x1000ff6d, 16998 }, /* hpSystem */
-    { 0x1000ff6e, 17007 }, /* hpUser */
-    { 0x100000ee, 17014 }, /* hpYdiaeresis */
-    { 0x000002a1, 17027 }, /* Hstroke */
-    { 0x000002b1, 17035 }, /* hstroke */
-    { 0x000009e2, 17043 }, /* ht */
-    { 0x0000ffed, 17046 }, /* Hyper_L */
-    { 0x0000ffee, 17054 }, /* Hyper_R */
-    { 0x000000ad, 17062 }, /* hyphen */
-    { 0x00000049, 17069 }, /* I */
-    { 0x00000069, 17071 }, /* i */
-    { 0x000002a9, 17073 }, /* Iabovedot */
-    { 0x000000cd, 17083 }, /* Iacute */
-    { 0x000000ed, 17090 }, /* iacute */
-    { 0x01001eca, 17097 }, /* Ibelowdot */
-    { 0x01001ecb, 17107 }, /* ibelowdot */
-    { 0x0100012c, 17117 }, /* Ibreve */
-    { 0x0100012d, 17124 }, /* ibreve */
-    { 0x000000ce, 17131 }, /* Icircumflex */
-    { 0x000000ee, 17143 }, /* icircumflex */
-    { 0x000008cf, 17155 }, /* identical */
-    { 0x000000cf, 17165 }, /* Idiaeresis */
-    { 0x000000ef, 17176 }, /* idiaeresis */
-    { 0x000002b9, 17187 }, /* idotless */
-    { 0x000008cd, 17196 }, /* ifonlyif */
-    { 0x000000cc, 17205 }, /* Igrave */
-    { 0x000000ec, 17212 }, /* igrave */
-    { 0x01001ec8, 17219 }, /* Ihook */
-    { 0x01001ec9, 17225 }, /* ihook */
-    { 0x000003cf, 17231 }, /* Imacron */
-    { 0x000003ef, 17239 }, /* imacron */
-    { 0x000008ce, 17247 }, /* implies */
-    { 0x000008da, 17255 }, /* includedin */
-    { 0x000008db, 17266 }, /* includes */
-    { 0x000008c2, 17275 }, /* infinity */
-    { 0x0000ff63, 17284 }, /* Insert */
-    { 0x1000ff72, 17291 }, /* InsertChar */
-    { 0x1000ff70, 17302 }, /* InsertLine */
-    { 0x000008bf, 17313 }, /* integral */
-    { 0x000008dc, 17322 }, /* intersection */
-    { 0x100000ee, 17335 }, /* IO */
-    { 0x000003c7, 17338 }, /* Iogonek */
-    { 0x000003e7, 17346 }, /* iogonek */
-    { 0x0000fe33, 17354 }, /* ISO_Center_Object */
-    { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */
-    { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */
-    { 0x0000fe32, 17425 }, /* ISO_Emphasize */
-    { 0x0000fe34, 17439 }, /* ISO_Enter */
-    { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */
-    { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */
-    { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */
-    { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */
-    { 0x0000fe0c, 17532 }, /* ISO_First_Group */
-    { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */
-    { 0x0000fe06, 17569 }, /* ISO_Group_Latch */
-    { 0x0000fe07, 17585 }, /* ISO_Group_Lock */
-    { 0x0000ff7e, 17600 }, /* ISO_Group_Shift */
-    { 0x0000fe0e, 17616 }, /* ISO_Last_Group */
-    { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */
-    { 0x0000fe20, 17651 }, /* ISO_Left_Tab */
-    { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */
-    { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */
-    { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */
-    { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */
-    { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */
-    { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */
-    { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */
-    { 0x0000fe01, 17781 }, /* ISO_Lock */
-    { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */
-    { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */
-    { 0x0000fe08, 17826 }, /* ISO_Next_Group */
-    { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */
-    { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */
-    { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */
-    { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */
-    { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */
-    { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */
-    { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */
-    { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */
-    { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */
-    { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */
-    { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */
-    { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */
-    { 0x000003a5, 18100 }, /* Itilde */
-    { 0x000003b5, 18107 }, /* itilde */
-    { 0x0000004a, 18114 }, /* J */
-    { 0x0000006a, 18116 }, /* j */
-    { 0x000002ac, 18118 }, /* Jcircumflex */
-    { 0x000002bc, 18130 }, /* jcircumflex */
-    { 0x00000bca, 18142 }, /* jot */
-    { 0x0000004b, 18146 }, /* K */
-    { 0x0000006b, 18148 }, /* k */
-    { 0x000004a7, 18150 }, /* kana_a */
-    { 0x000004b1, 18157 }, /* kana_A */
-    { 0x000004c1, 18164 }, /* kana_CHI */
-    { 0x000004a3, 18173 }, /* kana_closingbracket */
-    { 0x000004a4, 18193 }, /* kana_comma */
-    { 0x000004a5, 18204 }, /* kana_conjunctive */
-    { 0x000004aa, 18221 }, /* kana_e */
-    { 0x000004b4, 18228 }, /* kana_E */
-    { 0x000004cc, 18235 }, /* kana_FU */
-    { 0x000004a1, 18243 }, /* kana_fullstop */
-    { 0x000004ca, 18257 }, /* kana_HA */
-    { 0x000004cd, 18265 }, /* kana_HE */
-    { 0x000004cb, 18273 }, /* kana_HI */
-    { 0x000004ce, 18281 }, /* kana_HO */
-    { 0x000004cc, 18289 }, /* kana_HU */
-    { 0x000004a8, 18297 }, /* kana_i */
-    { 0x000004b2, 18304 }, /* kana_I */
-    { 0x000004b6, 18311 }, /* kana_KA */
-    { 0x000004b9, 18319 }, /* kana_KE */
-    { 0x000004b7, 18327 }, /* kana_KI */
-    { 0x000004ba, 18335 }, /* kana_KO */
-    { 0x000004b8, 18343 }, /* kana_KU */
-    { 0x0000ff2d, 18351 }, /* Kana_Lock */
-    { 0x000004cf, 18361 }, /* kana_MA */
-    { 0x000004d2, 18369 }, /* kana_ME */
-    { 0x000004d0, 18377 }, /* kana_MI */
-    { 0x000004a5, 18385 }, /* kana_middledot */
-    { 0x000004d3, 18400 }, /* kana_MO */
-    { 0x000004d1, 18408 }, /* kana_MU */
-    { 0x000004dd, 18416 }, /* kana_N */
-    { 0x000004c5, 18423 }, /* kana_NA */
-    { 0x000004c8, 18431 }, /* kana_NE */
-    { 0x000004c6, 18439 }, /* kana_NI */
-    { 0x000004c9, 18447 }, /* kana_NO */
-    { 0x000004c7, 18455 }, /* kana_NU */
-    { 0x000004ab, 18463 }, /* kana_o */
-    { 0x000004b5, 18470 }, /* kana_O */
-    { 0x000004a2, 18477 }, /* kana_openingbracket */
-    { 0x000004d7, 18497 }, /* kana_RA */
-    { 0x000004da, 18505 }, /* kana_RE */
-    { 0x000004d8, 18513 }, /* kana_RI */
-    { 0x000004db, 18521 }, /* kana_RO */
-    { 0x000004d9, 18529 }, /* kana_RU */
-    { 0x000004bb, 18537 }, /* kana_SA */
-    { 0x000004be, 18545 }, /* kana_SE */
-    { 0x000004bc, 18553 }, /* kana_SHI */
-    { 0x0000ff2e, 18562 }, /* Kana_Shift */
-    { 0x000004bf, 18573 }, /* kana_SO */
-    { 0x000004bd, 18581 }, /* kana_SU */
-    { 0x0000ff7e, 18589 }, /* kana_switch */
-    { 0x000004c0, 18601 }, /* kana_TA */
-    { 0x000004c3, 18609 }, /* kana_TE */
-    { 0x000004c1, 18617 }, /* kana_TI */
-    { 0x000004c4, 18625 }, /* kana_TO */
-    { 0x000004af, 18633 }, /* kana_tsu */
-    { 0x000004c2, 18642 }, /* kana_TSU */
-    { 0x000004af, 18651 }, /* kana_tu */
-    { 0x000004c2, 18659 }, /* kana_TU */
-    { 0x000004a9, 18667 }, /* kana_u */
-    { 0x000004b3, 18674 }, /* kana_U */
-    { 0x000004dc, 18681 }, /* kana_WA */
-    { 0x000004a6, 18689 }, /* kana_WO */
-    { 0x000004ac, 18697 }, /* kana_ya */
-    { 0x000004d4, 18705 }, /* kana_YA */
-    { 0x000004ae, 18713 }, /* kana_yo */
-    { 0x000004d6, 18721 }, /* kana_YO */
-    { 0x000004ad, 18729 }, /* kana_yu */
-    { 0x000004d5, 18737 }, /* kana_YU */
-    { 0x0000ff21, 18745 }, /* Kanji */
-    { 0x0000ff37, 18751 }, /* Kanji_Bangou */
-    { 0x000003a2, 18764 }, /* kappa */
-    { 0x0000ff26, 18770 }, /* Katakana */
-    { 0x000003d3, 18779 }, /* Kcedilla */
-    { 0x000003f3, 18788 }, /* kcedilla */
-    { 0x00000eff, 18797 }, /* Korean_Won */
-    { 0x0000ffb0, 18808 }, /* KP_0 */
-    { 0x0000ffb1, 18813 }, /* KP_1 */
-    { 0x0000ffb2, 18818 }, /* KP_2 */
-    { 0x0000ffb3, 18823 }, /* KP_3 */
-    { 0x0000ffb4, 18828 }, /* KP_4 */
-    { 0x0000ffb5, 18833 }, /* KP_5 */
-    { 0x0000ffb6, 18838 }, /* KP_6 */
-    { 0x0000ffb7, 18843 }, /* KP_7 */
-    { 0x0000ffb8, 18848 }, /* KP_8 */
-    { 0x0000ffb9, 18853 }, /* KP_9 */
-    { 0x0000ffab, 18858 }, /* KP_Add */
-    { 0x1000ff75, 18865 }, /* KP_BackTab */
-    { 0x0000ff9d, 18876 }, /* KP_Begin */
-    { 0x0000ffae, 18885 }, /* KP_Decimal */
-    { 0x0000ff9f, 18896 }, /* KP_Delete */
-    { 0x0000ffaf, 18906 }, /* KP_Divide */
-    { 0x0000ff99, 18916 }, /* KP_Down */
-    { 0x0000ff9c, 18924 }, /* KP_End */
-    { 0x0000ff8d, 18931 }, /* KP_Enter */
-    { 0x0000ffbd, 18940 }, /* KP_Equal */
-    { 0x0000ff91, 18949 }, /* KP_F1 */
-    { 0x0000ff92, 18955 }, /* KP_F2 */
-    { 0x0000ff93, 18961 }, /* KP_F3 */
-    { 0x0000ff94, 18967 }, /* KP_F4 */
-    { 0x0000ff95, 18973 }, /* KP_Home */
-    { 0x0000ff9e, 18981 }, /* KP_Insert */
-    { 0x0000ff96, 18991 }, /* KP_Left */
-    { 0x0000ffaa, 18999 }, /* KP_Multiply */
-    { 0x0000ff9b, 19011 }, /* KP_Next */
-    { 0x0000ff9b, 19019 }, /* KP_Page_Down */
-    { 0x0000ff9a, 19032 }, /* KP_Page_Up */
-    { 0x0000ff9a, 19043 }, /* KP_Prior */
-    { 0x0000ff98, 19052 }, /* KP_Right */
-    { 0x0000ffac, 19061 }, /* KP_Separator */
-    { 0x0000ff80, 19074 }, /* KP_Space */
-    { 0x0000ffad, 19083 }, /* KP_Subtract */
-    { 0x0000ff89, 19095 }, /* KP_Tab */
-    { 0x0000ff97, 19102 }, /* KP_Up */
-    { 0x000003a2, 19108 }, /* kra */
-    { 0x0000004c, 19112 }, /* L */
-    { 0x0000006c, 19114 }, /* l */
-    { 0x0000ffc8, 19116 }, /* L1 */
-    { 0x0000ffd1, 19119 }, /* L10 */
-    { 0x0000ffc9, 19123 }, /* L2 */
-    { 0x0000ffca, 19126 }, /* L3 */
-    { 0x0000ffcb, 19129 }, /* L4 */
-    { 0x0000ffcc, 19132 }, /* L5 */
-    { 0x0000ffcd, 19135 }, /* L6 */
-    { 0x0000ffce, 19138 }, /* L7 */
-    { 0x0000ffcf, 19141 }, /* L8 */
-    { 0x0000ffd0, 19144 }, /* L9 */
-    { 0x000001c5, 19147 }, /* Lacute */
-    { 0x000001e5, 19154 }, /* lacute */
-    { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */
-    { 0x00000ad9, 19181 }, /* latincross */
-    { 0x01001e36, 19192 }, /* Lbelowdot */
-    { 0x01001e37, 19202 }, /* lbelowdot */
-    { 0x000001a5, 19212 }, /* Lcaron */
-    { 0x000001b5, 19219 }, /* lcaron */
-    { 0x000003a6, 19226 }, /* Lcedilla */
-    { 0x000003b6, 19235 }, /* lcedilla */
-    { 0x0000ff51, 19244 }, /* Left */
-    { 0x00000abc, 19249 }, /* leftanglebracket */
-    { 0x000008fb, 19266 }, /* leftarrow */
-    { 0x00000ba3, 19276 }, /* leftcaret */
-    { 0x00000ad2, 19286 }, /* leftdoublequotemark */
-    { 0x000008af, 19306 }, /* leftmiddlecurlybrace */
-    { 0x00000acc, 19327 }, /* leftopentriangle */
-    { 0x00000aea, 19344 }, /* leftpointer */
-    { 0x000008a1, 19356 }, /* leftradical */
-    { 0x00000bda, 19368 }, /* leftshoe */
-    { 0x00000ad0, 19377 }, /* leftsinglequotemark */
-    { 0x000009f4, 19397 }, /* leftt */
-    { 0x00000bdc, 19403 }, /* lefttack */
-    { 0x0000003c, 19412 }, /* less */
-    { 0x000008bc, 19417 }, /* lessthanequal */
-    { 0x000009e5, 19431 }, /* lf */
-    { 0x0000ff0a, 19434 }, /* Linefeed */
-    { 0x100000af, 19443 }, /* lira */
-    { 0x010020a4, 19448 }, /* LiraSign */
-    { 0x000008de, 19457 }, /* logicaland */
-    { 0x000008df, 19468 }, /* logicalor */
-    { 0x100000f6, 19478 }, /* longminus */
-    { 0x000009ed, 19488 }, /* lowleftcorner */
-    { 0x000009ea, 19502 }, /* lowrightcorner */
-    { 0x000001a3, 19517 }, /* Lstroke */
-    { 0x000001b3, 19525 }, /* lstroke */
-    { 0x0000004d, 19533 }, /* M */
-    { 0x0000006d, 19535 }, /* m */
-    { 0x01001e40, 19537 }, /* Mabovedot */
-    { 0x01001e41, 19547 }, /* mabovedot */
-    { 0x000006a5, 19557 }, /* Macedonia_dse */
-    { 0x000006b5, 19571 }, /* Macedonia_DSE */
-    { 0x000006a2, 19585 }, /* Macedonia_gje */
-    { 0x000006b2, 19599 }, /* Macedonia_GJE */
-    { 0x000006ac, 19613 }, /* Macedonia_kje */
-    { 0x000006bc, 19627 }, /* Macedonia_KJE */
-    { 0x000000af, 19641 }, /* macron */
-    { 0x0000ff3e, 19648 }, /* Mae_Koho */
-    { 0x00000af7, 19657 }, /* malesymbol */
-    { 0x00000af0, 19668 }, /* maltesecross */
-    { 0x00000abf, 19681 }, /* marker */
-    { 0x000000ba, 19688 }, /* masculine */
-    { 0x0000ff2c, 19698 }, /* Massyo */
-    { 0x0000ff67, 19705 }, /* Menu */
-    { 0x0000ffe7, 19710 }, /* Meta_L */
-    { 0x0000ffe8, 19717 }, /* Meta_R */
-    { 0x010020a5, 19724 }, /* MillSign */
-    { 0x0000002d, 19733 }, /* minus */
-    { 0x00000ad6, 19739 }, /* minutes */
-    { 0x0000ff7e, 19747 }, /* Mode_switch */
-    { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */
-    { 0x0000fe76, 19782 }, /* MouseKeys_Enable */
-    { 0x000000b5, 19799 }, /* mu */
-    { 0x0000ff22, 19802 }, /* Muhenkan */
-    { 0x0000ff20, 19811 }, /* Multi_key */
-    { 0x0000ff3d, 19821 }, /* MultipleCandidate */
-    { 0x000000d7, 19839 }, /* multiply */
-    { 0x00000af6, 19848 }, /* musicalflat */
-    { 0x00000af5, 19860 }, /* musicalsharp */
-    { 0x100000a8, 19873 }, /* mute_acute */
-    { 0x100000aa, 19884 }, /* mute_asciicircum */
-    { 0x100000ac, 19901 }, /* mute_asciitilde */
-    { 0x100000ab, 19917 }, /* mute_diaeresis */
-    { 0x100000a9, 19932 }, /* mute_grave */
-    { 0x0000004e, 19943 }, /* N */
-    { 0x0000006e, 19945 }, /* n */
-    { 0x000008c5, 19947 }, /* nabla */
-    { 0x000001d1, 19953 }, /* Nacute */
-    { 0x000001f1, 19960 }, /* nacute */
-    { 0x010020a6, 19967 }, /* NairaSign */
-    { 0x000001d2, 19977 }, /* Ncaron */
-    { 0x000001f2, 19984 }, /* ncaron */
-    { 0x000003d1, 19991 }, /* Ncedilla */
-    { 0x000003f1, 20000 }, /* ncedilla */
-    { 0x010020aa, 20009 }, /* NewSheqelSign */
-    { 0x0000ff56, 20023 }, /* Next */
-    { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */
-    { 0x01002089, 20048 }, /* ninesubscript */
-    { 0x01002079, 20062 }, /* ninesuperior */
-    { 0x000009e8, 20075 }, /* nl */
-    { 0x000000a0, 20078 }, /* nobreakspace */
-    { 0x00000000, 20091 }, /* NoSymbol */
-    { 0x01002247, 20100 }, /* notapproxeq */
-    { 0x01002209, 20112 }, /* notelementof */
-    { 0x000008bd, 20125 }, /* notequal */
-    { 0x01002262, 20134 }, /* notidentical */
-    { 0x000000ac, 20147 }, /* notsign */
-    { 0x000000d1, 20155 }, /* Ntilde */
-    { 0x000000f1, 20162 }, /* ntilde */
-    { 0x0000ff7f, 20169 }, /* Num_Lock */
-    { 0x00000023, 20178 }, /* numbersign */
-    { 0x000006b0, 20189 }, /* numerosign */
-    { 0x0000004f, 20200 }, /* O */
-    { 0x0000006f, 20202 }, /* o */
-    { 0x000000d3, 20204 }, /* Oacute */
-    { 0x000000f3, 20211 }, /* oacute */
-    { 0x0100019f, 20218 }, /* Obarred */
-    { 0x01000275, 20226 }, /* obarred */
-    { 0x01001ecc, 20234 }, /* Obelowdot */
-    { 0x01001ecd, 20244 }, /* obelowdot */
-    { 0x010001d1, 20254 }, /* Ocaron */
-    { 0x010001d2, 20261 }, /* ocaron */
-    { 0x000000d4, 20268 }, /* Ocircumflex */
-    { 0x000000f4, 20280 }, /* ocircumflex */
-    { 0x01001ed0, 20292 }, /* Ocircumflexacute */
-    { 0x01001ed1, 20309 }, /* ocircumflexacute */
-    { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */
-    { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */
-    { 0x01001ed2, 20366 }, /* Ocircumflexgrave */
-    { 0x01001ed3, 20383 }, /* ocircumflexgrave */
-    { 0x01001ed4, 20400 }, /* Ocircumflexhook */
-    { 0x01001ed5, 20416 }, /* ocircumflexhook */
-    { 0x01001ed6, 20432 }, /* Ocircumflextilde */
-    { 0x01001ed7, 20449 }, /* ocircumflextilde */
-    { 0x000000d6, 20466 }, /* Odiaeresis */
-    { 0x000000f6, 20477 }, /* odiaeresis */
-    { 0x000001d5, 20488 }, /* Odoubleacute */
-    { 0x000001f5, 20501 }, /* odoubleacute */
-    { 0x000013bc, 20514 }, /* OE */
-    { 0x000013bd, 20517 }, /* oe */
-    { 0x000001b2, 20520 }, /* ogonek */
-    { 0x000000d2, 20527 }, /* Ograve */
-    { 0x000000f2, 20534 }, /* ograve */
-    { 0x01001ece, 20541 }, /* Ohook */
-    { 0x01001ecf, 20547 }, /* ohook */
-    { 0x010001a0, 20553 }, /* Ohorn */
-    { 0x010001a1, 20559 }, /* ohorn */
-    { 0x01001eda, 20565 }, /* Ohornacute */
-    { 0x01001edb, 20576 }, /* ohornacute */
-    { 0x01001ee2, 20587 }, /* Ohornbelowdot */
-    { 0x01001ee3, 20601 }, /* ohornbelowdot */
-    { 0x01001edc, 20615 }, /* Ohorngrave */
-    { 0x01001edd, 20626 }, /* ohorngrave */
-    { 0x01001ede, 20637 }, /* Ohornhook */
-    { 0x01001edf, 20647 }, /* ohornhook */
-    { 0x01001ee0, 20657 }, /* Ohorntilde */
-    { 0x01001ee1, 20668 }, /* ohorntilde */
-    { 0x000003d2, 20679 }, /* Omacron */
-    { 0x000003f2, 20687 }, /* omacron */
-    { 0x00000ac3, 20695 }, /* oneeighth */
-    { 0x00000ab2, 20705 }, /* onefifth */
-    { 0x000000bd, 20714 }, /* onehalf */
-    { 0x000000bc, 20722 }, /* onequarter */
-    { 0x00000ab6, 20733 }, /* onesixth */
-    { 0x01002081, 20742 }, /* onesubscript */
-    { 0x000000b9, 20755 }, /* onesuperior */
-    { 0x00000ab0, 20767 }, /* onethird */
-    { 0x000000d8, 20776 }, /* Ooblique */
-    { 0x000000f8, 20785 }, /* ooblique */
-    { 0x00000ae2, 20794 }, /* openrectbullet */
-    { 0x00000ae5, 20809 }, /* openstar */
-    { 0x00000ae4, 20818 }, /* opentribulletdown */
-    { 0x00000ae3, 20836 }, /* opentribulletup */
-    { 0x000000aa, 20852 }, /* ordfeminine */
-    { 0x1004ff44, 20864 }, /* osfActivate */
-    { 0x1004ff31, 20876 }, /* osfAddMode */
-    { 0x1004ff08, 20887 }, /* osfBackSpace */
-    { 0x1004ff07, 20900 }, /* osfBackTab */
-    { 0x1004ff5a, 20911 }, /* osfBeginData */
-    { 0x1004ff58, 20924 }, /* osfBeginLine */
-    { 0x1004ff69, 20937 }, /* osfCancel */
-    { 0x1004ff0b, 20947 }, /* osfClear */
-    { 0x1004ff02, 20956 }, /* osfCopy */
-    { 0x1004ff03, 20964 }, /* osfCut */
-    { 0x1004ffff, 20971 }, /* osfDelete */
-    { 0x1004ff72, 20981 }, /* osfDeselectAll */
-    { 0x1004ff54, 20996 }, /* osfDown */
-    { 0x1004ff59, 21004 }, /* osfEndData */
-    { 0x1004ff57, 21015 }, /* osfEndLine */
-    { 0x1004ff1b, 21026 }, /* osfEscape */
-    { 0x1004ff74, 21036 }, /* osfExtend */
-    { 0x1004ff6a, 21046 }, /* osfHelp */
-    { 0x1004ff63, 21054 }, /* osfInsert */
-    { 0x1004ff51, 21064 }, /* osfLeft */
-    { 0x1004ff67, 21072 }, /* osfMenu */
-    { 0x1004ff45, 21080 }, /* osfMenuBar */
-    { 0x1004ff5e, 21091 }, /* osfNextField */
-    { 0x1004ff5c, 21104 }, /* osfNextMenu */
-    { 0x1004ff42, 21116 }, /* osfPageDown */
-    { 0x1004ff40, 21128 }, /* osfPageLeft */
-    { 0x1004ff43, 21140 }, /* osfPageRight */
-    { 0x1004ff41, 21153 }, /* osfPageUp */
-    { 0x1004ff04, 21163 }, /* osfPaste */
-    { 0x1004ff5d, 21172 }, /* osfPrevField */
-    { 0x1004ff5b, 21185 }, /* osfPrevMenu */
-    { 0x1004ff32, 21197 }, /* osfPrimaryPaste */
-    { 0x1004ff33, 21213 }, /* osfQuickPaste */
-    { 0x1004ff73, 21227 }, /* osfReselect */
-    { 0x1004ff78, 21239 }, /* osfRestore */
-    { 0x1004ff53, 21250 }, /* osfRight */
-    { 0x1004ff60, 21259 }, /* osfSelect */
-    { 0x1004ff71, 21269 }, /* osfSelectAll */
-    { 0x1004ff65, 21282 }, /* osfUndo */
-    { 0x1004ff52, 21290 }, /* osfUp */
-    { 0x000000d8, 21296 }, /* Oslash */
-    { 0x000000f8, 21303 }, /* oslash */
-    { 0x000000d5, 21310 }, /* Otilde */
-    { 0x000000f5, 21317 }, /* otilde */
-    { 0x00000bc0, 21324 }, /* overbar */
-    { 0x0000fe78, 21332 }, /* Overlay1_Enable */
-    { 0x0000fe79, 21348 }, /* Overlay2_Enable */
-    { 0x0000047e, 21364 }, /* overline */
-    { 0x00000050, 21373 }, /* P */
-    { 0x00000070, 21375 }, /* p */
-    { 0x01001e56, 21377 }, /* Pabovedot */
-    { 0x01001e57, 21387 }, /* pabovedot */
-    { 0x0000ff56, 21397 }, /* Page_Down */
-    { 0x0000ff55, 21407 }, /* Page_Up */
-    { 0x000000b6, 21415 }, /* paragraph */
-    { 0x00000028, 21425 }, /* parenleft */
-    { 0x00000029, 21435 }, /* parenright */
-    { 0x01002202, 21446 }, /* partdifferential */
-    { 0x000008ef, 21463 }, /* partialderivative */
-    { 0x0000ff13, 21481 }, /* Pause */
-    { 0x00000025, 21487 }, /* percent */
-    { 0x0000002e, 21495 }, /* period */
-    { 0x000000b7, 21502 }, /* periodcentered */
-    { 0x00000ad5, 21517 }, /* permille */
-    { 0x010020a7, 21526 }, /* PesetaSign */
-    { 0x00000afb, 21537 }, /* phonographcopyright */
-    { 0x0000002b, 21557 }, /* plus */
-    { 0x000000b1, 21562 }, /* plusminus */
-    { 0x0000fefa, 21572 }, /* Pointer_Accelerate */
-    { 0x0000fee9, 21591 }, /* Pointer_Button1 */
-    { 0x0000feea, 21607 }, /* Pointer_Button2 */
-    { 0x0000feeb, 21623 }, /* Pointer_Button3 */
-    { 0x0000feec, 21639 }, /* Pointer_Button4 */
-    { 0x0000feed, 21655 }, /* Pointer_Button5 */
-    { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */
-    { 0x0000feef, 21691 }, /* Pointer_DblClick1 */
-    { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */
-    { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */
-    { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */
-    { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */
-    { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */
-    { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */
-    { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */
-    { 0x0000fee3, 21843 }, /* Pointer_Down */
-    { 0x0000fee6, 21856 }, /* Pointer_DownLeft */
-    { 0x0000fee7, 21873 }, /* Pointer_DownRight */
-    { 0x0000fef5, 21891 }, /* Pointer_Drag1 */
-    { 0x0000fef6, 21905 }, /* Pointer_Drag2 */
-    { 0x0000fef7, 21919 }, /* Pointer_Drag3 */
-    { 0x0000fef8, 21933 }, /* Pointer_Drag4 */
-    { 0x0000fefd, 21947 }, /* Pointer_Drag5 */
-    { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */
-    { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */
-    { 0x0000fee0, 21998 }, /* Pointer_Left */
-    { 0x0000fee1, 22011 }, /* Pointer_Right */
-    { 0x0000fee2, 22025 }, /* Pointer_Up */
-    { 0x0000fee4, 22036 }, /* Pointer_UpLeft */
-    { 0x0000fee5, 22051 }, /* Pointer_UpRight */
-    { 0x00000ad4, 22067 }, /* prescription */
-    { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */
-    { 0x0000ff3e, 22100 }, /* PreviousCandidate */
-    { 0x0000ff61, 22118 }, /* Print */
-    { 0x0000ff55, 22124 }, /* Prior */
-    { 0x000004b0, 22130 }, /* prolongedsound */
-    { 0x00000aa6, 22145 }, /* punctspace */
-    { 0x00000051, 22156 }, /* Q */
-    { 0x00000071, 22158 }, /* q */
-    { 0x00000bcc, 22160 }, /* quad */
-    { 0x0000003f, 22165 }, /* question */
-    { 0x000000bf, 22174 }, /* questiondown */
-    { 0x00000022, 22187 }, /* quotedbl */
-    { 0x00000060, 22196 }, /* quoteleft */
-    { 0x00000027, 22206 }, /* quoteright */
-    { 0x00000052, 22217 }, /* R */
-    { 0x00000072, 22219 }, /* r */
-    { 0x0000ffd2, 22221 }, /* R1 */
-    { 0x0000ffdb, 22224 }, /* R10 */
-    { 0x0000ffdc, 22228 }, /* R11 */
-    { 0x0000ffdd, 22232 }, /* R12 */
-    { 0x0000ffde, 22236 }, /* R13 */
-    { 0x0000ffdf, 22240 }, /* R14 */
-    { 0x0000ffe0, 22244 }, /* R15 */
-    { 0x0000ffd3, 22248 }, /* R2 */
-    { 0x0000ffd4, 22251 }, /* R3 */
-    { 0x0000ffd5, 22254 }, /* R4 */
-    { 0x0000ffd6, 22257 }, /* R5 */
-    { 0x0000ffd7, 22260 }, /* R6 */
-    { 0x0000ffd8, 22263 }, /* R7 */
-    { 0x0000ffd9, 22266 }, /* R8 */
-    { 0x0000ffda, 22269 }, /* R9 */
-    { 0x000001c0, 22272 }, /* Racute */
-    { 0x000001e0, 22279 }, /* racute */
-    { 0x000008d6, 22286 }, /* radical */
-    { 0x000001d8, 22294 }, /* Rcaron */
-    { 0x000001f8, 22301 }, /* rcaron */
-    { 0x000003a3, 22308 }, /* Rcedilla */
-    { 0x000003b3, 22317 }, /* rcedilla */
-    { 0x0000ff66, 22326 }, /* Redo */
-    { 0x000000ae, 22331 }, /* registered */
-    { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */
-    { 0x1000ff6c, 22360 }, /* Reset */
-    { 0x0000ff0d, 22366 }, /* Return */
-    { 0x0000ff53, 22373 }, /* Right */
-    { 0x00000abe, 22379 }, /* rightanglebracket */
-    { 0x000008fd, 22397 }, /* rightarrow */
-    { 0x00000ba6, 22408 }, /* rightcaret */
-    { 0x00000ad3, 22419 }, /* rightdoublequotemark */
-    { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */
-    { 0x000008b7, 22462 }, /* rightmiddlesummation */
-    { 0x00000acd, 22483 }, /* rightopentriangle */
-    { 0x00000aeb, 22501 }, /* rightpointer */
-    { 0x00000bd8, 22514 }, /* rightshoe */
-    { 0x00000ad1, 22524 }, /* rightsinglequotemark */
-    { 0x000009f5, 22545 }, /* rightt */
-    { 0x00000bfc, 22552 }, /* righttack */
-    { 0x0000ff24, 22562 }, /* Romaji */
-    { 0x010020a8, 22569 }, /* RupeeSign */
-    { 0x00000053, 22579 }, /* S */
-    { 0x00000073, 22581 }, /* s */
-    { 0x01001e60, 22583 }, /* Sabovedot */
-    { 0x01001e61, 22593 }, /* sabovedot */
-    { 0x000001a6, 22603 }, /* Sacute */
-    { 0x000001b6, 22610 }, /* sacute */
-    { 0x000001a9, 22617 }, /* Scaron */
-    { 0x000001b9, 22624 }, /* scaron */
-    { 0x000001aa, 22631 }, /* Scedilla */
-    { 0x000001ba, 22640 }, /* scedilla */
-    { 0x0100018f, 22649 }, /* SCHWA */
-    { 0x01000259, 22655 }, /* schwa */
-    { 0x000002de, 22661 }, /* Scircumflex */
-    { 0x000002fe, 22673 }, /* scircumflex */
-    { 0x0000ff7e, 22685 }, /* script_switch */
-    { 0x0000ff14, 22699 }, /* Scroll_Lock */
-    { 0x00000ad7, 22711 }, /* seconds */
-    { 0x000000a7, 22719 }, /* section */
-    { 0x0000ff60, 22727 }, /* Select */
-    { 0x0000003b, 22734 }, /* semicolon */
-    { 0x000004df, 22744 }, /* semivoicedsound */
-    { 0x000006a1, 22760 }, /* Serbian_dje */
-    { 0x000006b1, 22772 }, /* Serbian_DJE */
-    { 0x000006af, 22784 }, /* Serbian_dze */
-    { 0x000006bf, 22796 }, /* Serbian_DZE */
-    { 0x000006a8, 22808 }, /* Serbian_je */
-    { 0x000006b8, 22819 }, /* Serbian_JE */
-    { 0x000006a9, 22830 }, /* Serbian_lje */
-    { 0x000006b9, 22842 }, /* Serbian_LJE */
-    { 0x000006aa, 22854 }, /* Serbian_nje */
-    { 0x000006ba, 22866 }, /* Serbian_NJE */
-    { 0x000006ab, 22878 }, /* Serbian_tshe */
-    { 0x000006bb, 22891 }, /* Serbian_TSHE */
-    { 0x00000ac6, 22904 }, /* seveneighths */
-    { 0x01002087, 22917 }, /* sevensubscript */
-    { 0x01002077, 22932 }, /* sevensuperior */
-    { 0x0000ffe1, 22946 }, /* Shift_L */
-    { 0x0000ffe6, 22954 }, /* Shift_Lock */
-    { 0x0000ffe2, 22965 }, /* Shift_R */
-    { 0x00000aca, 22973 }, /* signaturemark */
-    { 0x00000aac, 22987 }, /* signifblank */
-    { 0x000008c9, 22999 }, /* similarequal */
-    { 0x0000ff3c, 23012 }, /* SingleCandidate */
-    { 0x00000afd, 23028 }, /* singlelowquotemark */
-    { 0x01000d85, 23047 }, /* Sinh_a */
-    { 0x01000d86, 23054 }, /* Sinh_aa */
-    { 0x01000dcf, 23062 }, /* Sinh_aa2 */
-    { 0x01000d87, 23071 }, /* Sinh_ae */
-    { 0x01000dd0, 23079 }, /* Sinh_ae2 */
-    { 0x01000d88, 23088 }, /* Sinh_aee */
-    { 0x01000dd1, 23097 }, /* Sinh_aee2 */
-    { 0x01000d93, 23107 }, /* Sinh_ai */
-    { 0x01000ddb, 23115 }, /* Sinh_ai2 */
-    { 0x01000dca, 23124 }, /* Sinh_al */
-    { 0x01000d96, 23132 }, /* Sinh_au */
-    { 0x01000dde, 23140 }, /* Sinh_au2 */
-    { 0x01000db6, 23149 }, /* Sinh_ba */
-    { 0x01000db7, 23157 }, /* Sinh_bha */
-    { 0x01000da0, 23166 }, /* Sinh_ca */
-    { 0x01000da1, 23174 }, /* Sinh_cha */
-    { 0x01000da9, 23183 }, /* Sinh_dda */
-    { 0x01000daa, 23192 }, /* Sinh_ddha */
-    { 0x01000daf, 23202 }, /* Sinh_dha */
-    { 0x01000db0, 23211 }, /* Sinh_dhha */
-    { 0x01000d91, 23221 }, /* Sinh_e */
-    { 0x01000dd9, 23228 }, /* Sinh_e2 */
-    { 0x01000d92, 23236 }, /* Sinh_ee */
-    { 0x01000dda, 23244 }, /* Sinh_ee2 */
-    { 0x01000dc6, 23253 }, /* Sinh_fa */
-    { 0x01000d9c, 23261 }, /* Sinh_ga */
-    { 0x01000d9d, 23269 }, /* Sinh_gha */
-    { 0x01000d83, 23278 }, /* Sinh_h2 */
-    { 0x01000dc4, 23286 }, /* Sinh_ha */
-    { 0x01000d89, 23294 }, /* Sinh_i */
-    { 0x01000dd2, 23301 }, /* Sinh_i2 */
-    { 0x01000d8a, 23309 }, /* Sinh_ii */
-    { 0x01000dd3, 23317 }, /* Sinh_ii2 */
-    { 0x01000da2, 23326 }, /* Sinh_ja */
-    { 0x01000da3, 23334 }, /* Sinh_jha */
-    { 0x01000da5, 23343 }, /* Sinh_jnya */
-    { 0x01000d9a, 23353 }, /* Sinh_ka */
-    { 0x01000d9b, 23361 }, /* Sinh_kha */
-    { 0x01000df4, 23370 }, /* Sinh_kunddaliya */
-    { 0x01000dbd, 23386 }, /* Sinh_la */
-    { 0x01000dc5, 23394 }, /* Sinh_lla */
-    { 0x01000d8f, 23403 }, /* Sinh_lu */
-    { 0x01000ddf, 23411 }, /* Sinh_lu2 */
-    { 0x01000d90, 23420 }, /* Sinh_luu */
-    { 0x01000df3, 23429 }, /* Sinh_luu2 */
-    { 0x01000db8, 23439 }, /* Sinh_ma */
-    { 0x01000db9, 23447 }, /* Sinh_mba */
-    { 0x01000db1, 23456 }, /* Sinh_na */
-    { 0x01000dac, 23464 }, /* Sinh_ndda */
-    { 0x01000db3, 23474 }, /* Sinh_ndha */
-    { 0x01000d82, 23484 }, /* Sinh_ng */
-    { 0x01000d9e, 23492 }, /* Sinh_ng2 */
-    { 0x01000d9f, 23501 }, /* Sinh_nga */
-    { 0x01000da6, 23510 }, /* Sinh_nja */
-    { 0x01000dab, 23519 }, /* Sinh_nna */
-    { 0x01000da4, 23528 }, /* Sinh_nya */
-    { 0x01000d94, 23537 }, /* Sinh_o */
-    { 0x01000ddc, 23544 }, /* Sinh_o2 */
-    { 0x01000d95, 23552 }, /* Sinh_oo */
-    { 0x01000ddd, 23560 }, /* Sinh_oo2 */
-    { 0x01000db4, 23569 }, /* Sinh_pa */
-    { 0x01000db5, 23577 }, /* Sinh_pha */
-    { 0x01000dbb, 23586 }, /* Sinh_ra */
-    { 0x01000d8d, 23594 }, /* Sinh_ri */
-    { 0x01000d8e, 23602 }, /* Sinh_rii */
-    { 0x01000dd8, 23611 }, /* Sinh_ru2 */
-    { 0x01000df2, 23620 }, /* Sinh_ruu2 */
-    { 0x01000dc3, 23630 }, /* Sinh_sa */
-    { 0x01000dc1, 23638 }, /* Sinh_sha */
-    { 0x01000dc2, 23647 }, /* Sinh_ssha */
-    { 0x01000dad, 23657 }, /* Sinh_tha */
-    { 0x01000dae, 23666 }, /* Sinh_thha */
-    { 0x01000da7, 23676 }, /* Sinh_tta */
-    { 0x01000da8, 23685 }, /* Sinh_ttha */
-    { 0x01000d8b, 23695 }, /* Sinh_u */
-    { 0x01000dd4, 23702 }, /* Sinh_u2 */
-    { 0x01000d8c, 23710 }, /* Sinh_uu */
-    { 0x01000dd6, 23718 }, /* Sinh_uu2 */
-    { 0x01000dc0, 23727 }, /* Sinh_va */
-    { 0x01000dba, 23735 }, /* Sinh_ya */
-    { 0x01002086, 23743 }, /* sixsubscript */
-    { 0x01002076, 23756 }, /* sixsuperior */
-    { 0x0000002f, 23768 }, /* slash */
-    { 0x0000fe73, 23774 }, /* SlowKeys_Enable */
-    { 0x000009e0, 23790 }, /* soliddiamond */
-    { 0x00000020, 23803 }, /* space */
-    { 0x0100221a, 23809 }, /* squareroot */
-    { 0x000000df, 23820 }, /* ssharp */
-    { 0x000000a3, 23827 }, /* sterling */
-    { 0x0000fe75, 23836 }, /* StickyKeys_Enable */
-    { 0x01002263, 23854 }, /* stricteq */
-    { 0x0000ff66, 23863 }, /* SunAgain */
-    { 0x0000ff7e, 23872 }, /* SunAltGraph */
-    { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */
-    { 0x1005ff78, 23904 }, /* SunAudioMute */
-    { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */
-    { 0x0000ff20, 23937 }, /* SunCompose */
-    { 0x1005ff72, 23948 }, /* SunCopy */
-    { 0x1005ff75, 23956 }, /* SunCut */
-    { 0x1005ff10, 23963 }, /* SunF36 */
-    { 0x1005ff11, 23970 }, /* SunF37 */
-    { 0x1005ff03, 23977 }, /* SunFA_Acute */
-    { 0x1005ff05, 23989 }, /* SunFA_Cedilla */
-    { 0x1005ff01, 24003 }, /* SunFA_Circum */
-    { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */
-    { 0x1005ff00, 24032 }, /* SunFA_Grave */
-    { 0x1005ff02, 24044 }, /* SunFA_Tilde */
-    { 0x0000ff68, 24056 }, /* SunFind */
-    { 0x1005ff71, 24064 }, /* SunFront */
-    { 0x1005ff73, 24073 }, /* SunOpen */
-    { 0x0000ff56, 24081 }, /* SunPageDown */
-    { 0x0000ff55, 24093 }, /* SunPageUp */
-    { 0x1005ff74, 24103 }, /* SunPaste */
-    { 0x1005ff76, 24112 }, /* SunPowerSwitch */
-    { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */
-    { 0x0000ff61, 24147 }, /* SunPrint_Screen */
-    { 0x1005ff70, 24163 }, /* SunProps */
-    { 0x0000ff69, 24172 }, /* SunStop */
-    { 0x1005ff60, 24180 }, /* SunSys_Req */
-    { 0x0000ff65, 24191 }, /* SunUndo */
-    { 0x1005ff7a, 24199 }, /* SunVideoDegauss */
-    { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */
-    { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */
-    { 0x0000ffeb, 24263 }, /* Super_L */
-    { 0x0000ffec, 24271 }, /* Super_R */
-    { 0x0000ff15, 24279 }, /* Sys_Req */
-    { 0x1000ff6d, 24287 }, /* System */
-    { 0x00000054, 24294 }, /* T */
-    { 0x00000074, 24296 }, /* t */
-    { 0x0000ff09, 24298 }, /* Tab */
-    { 0x01001e6a, 24302 }, /* Tabovedot */
-    { 0x01001e6b, 24312 }, /* tabovedot */
-    { 0x000001ab, 24322 }, /* Tcaron */
-    { 0x000001bb, 24329 }, /* tcaron */
-    { 0x000001de, 24336 }, /* Tcedilla */
-    { 0x000001fe, 24345 }, /* tcedilla */
-    { 0x00000af9, 24354 }, /* telephone */
-    { 0x00000afa, 24364 }, /* telephonerecorder */
-    { 0x0000fed5, 24382 }, /* Terminate_Server */
-    { 0x00000ddf, 24399 }, /* Thai_baht */
-    { 0x00000dba, 24409 }, /* Thai_bobaimai */
-    { 0x00000da8, 24423 }, /* Thai_chochan */
-    { 0x00000daa, 24436 }, /* Thai_chochang */
-    { 0x00000da9, 24450 }, /* Thai_choching */
-    { 0x00000dac, 24464 }, /* Thai_chochoe */
-    { 0x00000dae, 24477 }, /* Thai_dochada */
-    { 0x00000db4, 24490 }, /* Thai_dodek */
-    { 0x00000dbd, 24501 }, /* Thai_fofa */
-    { 0x00000dbf, 24511 }, /* Thai_fofan */
-    { 0x00000dcb, 24522 }, /* Thai_hohip */
-    { 0x00000dce, 24533 }, /* Thai_honokhuk */
-    { 0x00000da2, 24547 }, /* Thai_khokhai */
-    { 0x00000da5, 24560 }, /* Thai_khokhon */
-    { 0x00000da3, 24573 }, /* Thai_khokhuat */
-    { 0x00000da4, 24587 }, /* Thai_khokhwai */
-    { 0x00000da6, 24601 }, /* Thai_khorakhang */
-    { 0x00000da1, 24617 }, /* Thai_kokai */
-    { 0x00000de5, 24628 }, /* Thai_lakkhangyao */
-    { 0x00000df7, 24645 }, /* Thai_lekchet */
-    { 0x00000df5, 24658 }, /* Thai_lekha */
-    { 0x00000df6, 24669 }, /* Thai_lekhok */
-    { 0x00000df9, 24681 }, /* Thai_lekkao */
-    { 0x00000df1, 24693 }, /* Thai_leknung */
-    { 0x00000df8, 24706 }, /* Thai_lekpaet */
-    { 0x00000df3, 24719 }, /* Thai_leksam */
-    { 0x00000df4, 24731 }, /* Thai_leksi */
-    { 0x00000df2, 24742 }, /* Thai_leksong */
-    { 0x00000df0, 24755 }, /* Thai_leksun */
-    { 0x00000dcc, 24767 }, /* Thai_lochula */
-    { 0x00000dc5, 24780 }, /* Thai_loling */
-    { 0x00000dc6, 24792 }, /* Thai_lu */
-    { 0x00000deb, 24800 }, /* Thai_maichattawa */
-    { 0x00000de8, 24817 }, /* Thai_maiek */
-    { 0x00000dd1, 24828 }, /* Thai_maihanakat */
-    { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */
-    { 0x00000de7, 24867 }, /* Thai_maitaikhu */
-    { 0x00000de9, 24882 }, /* Thai_maitho */
-    { 0x00000dea, 24894 }, /* Thai_maitri */
-    { 0x00000de6, 24906 }, /* Thai_maiyamok */
-    { 0x00000dc1, 24920 }, /* Thai_moma */
-    { 0x00000da7, 24930 }, /* Thai_ngongu */
-    { 0x00000ded, 24942 }, /* Thai_nikhahit */
-    { 0x00000db3, 24956 }, /* Thai_nonen */
-    { 0x00000db9, 24967 }, /* Thai_nonu */
-    { 0x00000dcd, 24977 }, /* Thai_oang */
-    { 0x00000dcf, 24987 }, /* Thai_paiyannoi */
-    { 0x00000dda, 25002 }, /* Thai_phinthu */
-    { 0x00000dbe, 25015 }, /* Thai_phophan */
-    { 0x00000dbc, 25028 }, /* Thai_phophung */
-    { 0x00000dc0, 25042 }, /* Thai_phosamphao */
-    { 0x00000dbb, 25058 }, /* Thai_popla */
-    { 0x00000dc3, 25069 }, /* Thai_rorua */
-    { 0x00000dc4, 25080 }, /* Thai_ru */
-    { 0x00000dd0, 25088 }, /* Thai_saraa */
-    { 0x00000dd2, 25099 }, /* Thai_saraaa */
-    { 0x00000de1, 25111 }, /* Thai_saraae */
-    { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */
-    { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */
-    { 0x00000dd3, 25162 }, /* Thai_saraam */
-    { 0x00000de0, 25174 }, /* Thai_sarae */
-    { 0x00000dd4, 25185 }, /* Thai_sarai */
-    { 0x00000dd5, 25196 }, /* Thai_saraii */
-    { 0x00000de2, 25208 }, /* Thai_sarao */
-    { 0x00000dd8, 25219 }, /* Thai_sarau */
-    { 0x00000dd6, 25230 }, /* Thai_saraue */
-    { 0x00000dd7, 25242 }, /* Thai_sarauee */
-    { 0x00000dd9, 25255 }, /* Thai_sarauu */
-    { 0x00000dc9, 25267 }, /* Thai_sorusi */
-    { 0x00000dc8, 25279 }, /* Thai_sosala */
-    { 0x00000dab, 25291 }, /* Thai_soso */
-    { 0x00000dca, 25301 }, /* Thai_sosua */
-    { 0x00000dec, 25312 }, /* Thai_thanthakhat */
-    { 0x00000db1, 25329 }, /* Thai_thonangmontho */
-    { 0x00000db2, 25348 }, /* Thai_thophuthao */
-    { 0x00000db7, 25364 }, /* Thai_thothahan */
-    { 0x00000db0, 25379 }, /* Thai_thothan */
-    { 0x00000db8, 25392 }, /* Thai_thothong */
-    { 0x00000db6, 25406 }, /* Thai_thothung */
-    { 0x00000daf, 25420 }, /* Thai_topatak */
-    { 0x00000db5, 25433 }, /* Thai_totao */
-    { 0x00000dc7, 25444 }, /* Thai_wowaen */
-    { 0x00000dc2, 25456 }, /* Thai_yoyak */
-    { 0x00000dad, 25467 }, /* Thai_yoying */
-    { 0x000008c0, 25479 }, /* therefore */
-    { 0x00000aa7, 25489 }, /* thinspace */
-    { 0x000000de, 25499 }, /* THORN */
-    { 0x000000de, 25505 }, /* Thorn */
-    { 0x000000fe, 25511 }, /* thorn */
-    { 0x00000ac4, 25517 }, /* threeeighths */
-    { 0x00000ab4, 25530 }, /* threefifths */
-    { 0x000000be, 25542 }, /* threequarters */
-    { 0x01002083, 25556 }, /* threesubscript */
-    { 0x000000b3, 25571 }, /* threesuperior */
-    { 0x0100222d, 25585 }, /* tintegral */
-    { 0x000008a4, 25595 }, /* topintegral */
-    { 0x000008ab, 25607 }, /* topleftparens */
-    { 0x000008a2, 25621 }, /* topleftradical */
-    { 0x000008a7, 25636 }, /* topleftsqbracket */
-    { 0x000008b1, 25653 }, /* topleftsummation */
-    { 0x000008ad, 25670 }, /* toprightparens */
-    { 0x000008a9, 25685 }, /* toprightsqbracket */
-    { 0x000008b5, 25703 }, /* toprightsummation */
-    { 0x000009f7, 25721 }, /* topt */
-    { 0x000008b3, 25726 }, /* topvertsummationconnector */
-    { 0x0000ff2b, 25752 }, /* Touroku */
-    { 0x00000ac9, 25760 }, /* trademark */
-    { 0x00000acb, 25770 }, /* trademarkincircle */
-    { 0x000003ac, 25788 }, /* Tslash */
-    { 0x000003bc, 25795 }, /* tslash */
-    { 0x00000ab3, 25802 }, /* twofifths */
-    { 0x01002082, 25812 }, /* twosubscript */
-    { 0x000000b2, 25825 }, /* twosuperior */
-    { 0x00000ab1, 25837 }, /* twothirds */
-    { 0x00000055, 25847 }, /* U */
-    { 0x00000075, 25849 }, /* u */
-    { 0x000000da, 25851 }, /* Uacute */
-    { 0x000000fa, 25858 }, /* uacute */
-    { 0x01001ee4, 25865 }, /* Ubelowdot */
-    { 0x01001ee5, 25875 }, /* ubelowdot */
-    { 0x000002dd, 25885 }, /* Ubreve */
-    { 0x000002fd, 25892 }, /* ubreve */
-    { 0x000000db, 25899 }, /* Ucircumflex */
-    { 0x000000fb, 25911 }, /* ucircumflex */
-    { 0x000000dc, 25923 }, /* Udiaeresis */
-    { 0x000000fc, 25934 }, /* udiaeresis */
-    { 0x000001db, 25945 }, /* Udoubleacute */
-    { 0x000001fb, 25958 }, /* udoubleacute */
-    { 0x000000d9, 25971 }, /* Ugrave */
-    { 0x000000f9, 25978 }, /* ugrave */
-    { 0x01001ee6, 25985 }, /* Uhook */
-    { 0x01001ee7, 25991 }, /* uhook */
-    { 0x010001af, 25997 }, /* Uhorn */
-    { 0x010001b0, 26003 }, /* uhorn */
-    { 0x01001ee8, 26009 }, /* Uhornacute */
-    { 0x01001ee9, 26020 }, /* uhornacute */
-    { 0x01001ef0, 26031 }, /* Uhornbelowdot */
-    { 0x01001ef1, 26045 }, /* uhornbelowdot */
-    { 0x01001eea, 26059 }, /* Uhorngrave */
-    { 0x01001eeb, 26070 }, /* uhorngrave */
-    { 0x01001eec, 26081 }, /* Uhornhook */
-    { 0x01001eed, 26091 }, /* uhornhook */
-    { 0x01001eee, 26101 }, /* Uhorntilde */
-    { 0x01001eef, 26112 }, /* uhorntilde */
-    { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */
-    { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */
-    { 0x000006a6, 26175 }, /* Ukrainian_i */
-    { 0x000006b6, 26187 }, /* Ukrainian_I */
-    { 0x000006a4, 26199 }, /* Ukrainian_ie */
-    { 0x000006b4, 26212 }, /* Ukrainian_IE */
-    { 0x000006a7, 26225 }, /* Ukrainian_yi */
-    { 0x000006b7, 26238 }, /* Ukrainian_YI */
-    { 0x000006a6, 26251 }, /* Ukranian_i */
-    { 0x000006b6, 26262 }, /* Ukranian_I */
-    { 0x000006a4, 26273 }, /* Ukranian_je */
-    { 0x000006b4, 26285 }, /* Ukranian_JE */
-    { 0x000006a7, 26297 }, /* Ukranian_yi */
-    { 0x000006b7, 26309 }, /* Ukranian_YI */
-    { 0x000003de, 26321 }, /* Umacron */
-    { 0x000003fe, 26329 }, /* umacron */
-    { 0x00000bc6, 26337 }, /* underbar */
-    { 0x0000005f, 26346 }, /* underscore */
-    { 0x0000ff65, 26357 }, /* Undo */
-    { 0x000008dd, 26362 }, /* union */
-    { 0x000003d9, 26368 }, /* Uogonek */
-    { 0x000003f9, 26376 }, /* uogonek */
-    { 0x0000ff52, 26384 }, /* Up */
-    { 0x000008fc, 26387 }, /* uparrow */
-    { 0x00000ba9, 26395 }, /* upcaret */
-    { 0x000009ec, 26403 }, /* upleftcorner */
-    { 0x000009eb, 26416 }, /* uprightcorner */
-    { 0x00000bc3, 26430 }, /* upshoe */
-    { 0x00000bd3, 26437 }, /* upstile */
-    { 0x00000bce, 26445 }, /* uptack */
-    { 0x000001d9, 26452 }, /* Uring */
-    { 0x000001f9, 26458 }, /* uring */
-    { 0x1000ff6e, 26464 }, /* User */
-    { 0x000003dd, 26469 }, /* Utilde */
-    { 0x000003fd, 26476 }, /* utilde */
-    { 0x00000056, 26483 }, /* V */
-    { 0x00000076, 26485 }, /* v */
-    { 0x000008c1, 26487 }, /* variation */
-    { 0x000009f8, 26497 }, /* vertbar */
-    { 0x000008a6, 26505 }, /* vertconnector */
-    { 0x000004de, 26519 }, /* voicedsound */
-    { 0x00ffffff, 26531 }, /* VoidSymbol */
-    { 0x000009e9, 26542 }, /* vt */
-    { 0x00000057, 26545 }, /* W */
-    { 0x00000077, 26547 }, /* w */
-    { 0x01001e82, 26549 }, /* Wacute */
-    { 0x01001e83, 26556 }, /* wacute */
-    { 0x01000174, 26563 }, /* Wcircumflex */
-    { 0x01000175, 26575 }, /* wcircumflex */
-    { 0x01001e84, 26587 }, /* Wdiaeresis */
-    { 0x01001e85, 26598 }, /* wdiaeresis */
-    { 0x01001e80, 26609 }, /* Wgrave */
-    { 0x01001e81, 26616 }, /* wgrave */
-    { 0x010020a9, 26623 }, /* WonSign */
-    { 0x00000058, 26631 }, /* X */
-    { 0x00000078, 26633 }, /* x */
-    { 0x01001e8a, 26635 }, /* Xabovedot */
-    { 0x01001e8b, 26645 }, /* xabovedot */
-    { 0x1008ff39, 26655 }, /* XF86AddFavorite */
-    { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */
-    { 0x1008ff51, 26691 }, /* XF86ApplicationRight */
-    { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */
-    { 0x1008ff97, 26732 }, /* XF86AudioForward */
-    { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */
-    { 0x1008ff32, 26770 }, /* XF86AudioMedia */
-    { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */
-    { 0x1008ff12, 26802 }, /* XF86AudioMute */
-    { 0x1008ff17, 26816 }, /* XF86AudioNext */
-    { 0x1008ff31, 26830 }, /* XF86AudioPause */
-    { 0x1008ff14, 26845 }, /* XF86AudioPlay */
-    { 0x1008ffb6, 26859 }, /* XF86AudioPreset */
-    { 0x1008ff16, 26875 }, /* XF86AudioPrev */
-    { 0x1008ff13, 26889 }, /* XF86AudioRaiseVolume */
-    { 0x1008ff99, 26910 }, /* XF86AudioRandomPlay */
-    { 0x1008ff1c, 26930 }, /* XF86AudioRecord */
-    { 0x1008ff98, 26946 }, /* XF86AudioRepeat */
-    { 0x1008ff3e, 26962 }, /* XF86AudioRewind */
-    { 0x1008ff15, 26978 }, /* XF86AudioStop */
-    { 0x1008ff8d, 26992 }, /* XF86Away */
-    { 0x1008ff26, 27001 }, /* XF86Back */
-    { 0x1008ff3f, 27010 }, /* XF86BackForward */
-    { 0x1008ff93, 27026 }, /* XF86Battery */
-    { 0x1008ffa6, 27038 }, /* XF86Blue */
-    { 0x1008ff94, 27047 }, /* XF86Bluetooth */
-    { 0x1008ff52, 27061 }, /* XF86Book */
-    { 0x1008ff3b, 27070 }, /* XF86BrightnessAdjust */
-    { 0x1008ff54, 27091 }, /* XF86Calculater */
-    { 0x1008ff1d, 27106 }, /* XF86Calculator */
-    { 0x1008ff20, 27121 }, /* XF86Calendar */
-    { 0x1008ff53, 27134 }, /* XF86CD */
-    { 0x1008ff55, 27141 }, /* XF86Clear */
-    { 0x1008fe21, 27151 }, /* XF86ClearGrab */
-    { 0x1008ff56, 27165 }, /* XF86Close */
-    { 0x1008ff3d, 27175 }, /* XF86Community */
-    { 0x1008ff22, 27189 }, /* XF86ContrastAdjust */
-    { 0x1008ff57, 27208 }, /* XF86Copy */
-    { 0x1008ff58, 27217 }, /* XF86Cut */
-    { 0x1008ff9c, 27225 }, /* XF86CycleAngle */
-    { 0x1008ff59, 27240 }, /* XF86Display */
-    { 0x1008ff5b, 27252 }, /* XF86Documents */
-    { 0x1008ff5a, 27266 }, /* XF86DOS */
-    { 0x1008ff2c, 27274 }, /* XF86Eject */
-    { 0x1008ff5c, 27284 }, /* XF86Excel */
-    { 0x1008ff5d, 27294 }, /* XF86Explorer */
-    { 0x1008ff30, 27307 }, /* XF86Favorites */
-    { 0x1008ff3c, 27321 }, /* XF86Finance */
-    { 0x1008ff27, 27333 }, /* XF86Forward */
-    { 0x1008ff9d, 27345 }, /* XF86FrameBack */
-    { 0x1008ff9e, 27359 }, /* XF86FrameForward */
-    { 0x1008ffb8, 27376 }, /* XF86FullScreen */
-    { 0x1008ff5e, 27391 }, /* XF86Game */
-    { 0x1008ff5f, 27400 }, /* XF86Go */
-    { 0x1008ffa4, 27407 }, /* XF86Green */
-    { 0x1008ffa8, 27417 }, /* XF86Hibernate */
-    { 0x1008ff37, 27431 }, /* XF86History */
-    { 0x1008ff18, 27443 }, /* XF86HomePage */
-    { 0x1008ff3a, 27456 }, /* XF86HotLinks */
-    { 0x1008ff60, 27469 }, /* XF86iTouch */
-    { 0x1008ff06, 27480 }, /* XF86KbdBrightnessDown */
-    { 0x1008ff05, 27502 }, /* XF86KbdBrightnessUp */
-    { 0x1008ff04, 27522 }, /* XF86KbdLightOnOff */
-    { 0x1008ffb3, 27540 }, /* XF86Keyboard */
-    { 0x1008ff40, 27553 }, /* XF86Launch0 */
-    { 0x1008ff41, 27565 }, /* XF86Launch1 */
-    { 0x1008ff42, 27577 }, /* XF86Launch2 */
-    { 0x1008ff43, 27589 }, /* XF86Launch3 */
-    { 0x1008ff44, 27601 }, /* XF86Launch4 */
-    { 0x1008ff45, 27613 }, /* XF86Launch5 */
-    { 0x1008ff46, 27625 }, /* XF86Launch6 */
-    { 0x1008ff47, 27637 }, /* XF86Launch7 */
-    { 0x1008ff48, 27649 }, /* XF86Launch8 */
-    { 0x1008ff49, 27661 }, /* XF86Launch9 */
-    { 0x1008ff4a, 27673 }, /* XF86LaunchA */
-    { 0x1008ff4b, 27685 }, /* XF86LaunchB */
-    { 0x1008ff4c, 27697 }, /* XF86LaunchC */
-    { 0x1008ff4d, 27709 }, /* XF86LaunchD */
-    { 0x1008ff4e, 27721 }, /* XF86LaunchE */
-    { 0x1008ff4f, 27733 }, /* XF86LaunchF */
-    { 0x1008ff35, 27745 }, /* XF86LightBulb */
-    { 0x1008fe25, 27759 }, /* XF86LogGrabInfo */
-    { 0x1008ff61, 27775 }, /* XF86LogOff */
-    { 0x1008fe24, 27786 }, /* XF86LogWindowTree */
-    { 0x1008ff19, 27804 }, /* XF86Mail */
-    { 0x1008ff90, 27813 }, /* XF86MailForward */
-    { 0x1008ff62, 27829 }, /* XF86Market */
-    { 0x1008ff63, 27840 }, /* XF86Meeting */
-    { 0x1008ff1e, 27852 }, /* XF86Memo */
-    { 0x1008ff65, 27861 }, /* XF86MenuKB */
-    { 0x1008ff66, 27872 }, /* XF86MenuPB */
-    { 0x1008ff8e, 27883 }, /* XF86Messenger */
-    { 0x1008ff01, 27897 }, /* XF86ModeLock */
-    { 0x1008ff07, 27910 }, /* XF86MonBrightnessCycle */
-    { 0x1008ff03, 27933 }, /* XF86MonBrightnessDown */
-    { 0x1008ff02, 27955 }, /* XF86MonBrightnessUp */
-    { 0x1008ff92, 27975 }, /* XF86Music */
-    { 0x1008ff33, 27985 }, /* XF86MyComputer */
-    { 0x1008ff67, 28000 }, /* XF86MySites */
-    { 0x1008ff68, 28012 }, /* XF86New */
-    { 0x1008ff69, 28020 }, /* XF86News */
-    { 0x1008fe22, 28029 }, /* XF86Next_VMode */
-    { 0x1008ff6a, 28044 }, /* XF86OfficeHome */
-    { 0x1008ff6b, 28059 }, /* XF86Open */
-    { 0x1008ff38, 28068 }, /* XF86OpenURL */
-    { 0x1008ff6c, 28080 }, /* XF86Option */
-    { 0x1008ff6d, 28091 }, /* XF86Paste */
-    { 0x1008ff6e, 28101 }, /* XF86Phone */
-    { 0x1008ff91, 28111 }, /* XF86Pictures */
-    { 0x1008ff21, 28124 }, /* XF86PowerDown */
-    { 0x1008ff2a, 28138 }, /* XF86PowerOff */
-    { 0x1008fe23, 28151 }, /* XF86Prev_VMode */
-    { 0x1008ff70, 28166 }, /* XF86Q */
-    { 0x1008ffa3, 28172 }, /* XF86Red */
-    { 0x1008ff29, 28180 }, /* XF86Refresh */
-    { 0x1008ff73, 28192 }, /* XF86Reload */
-    { 0x1008ff72, 28203 }, /* XF86Reply */
-    { 0x1008ffb5, 28213 }, /* XF86RFKill */
-    { 0x1008ff24, 28224 }, /* XF86RockerDown */
-    { 0x1008ff25, 28239 }, /* XF86RockerEnter */
-    { 0x1008ff23, 28255 }, /* XF86RockerUp */
-    { 0x1008ff74, 28268 }, /* XF86RotateWindows */
-    { 0x1008ff76, 28286 }, /* XF86RotationKB */
-    { 0x1008ffb7, 28301 }, /* XF86RotationLockToggle */
-    { 0x1008ff75, 28324 }, /* XF86RotationPB */
-    { 0x1008ff77, 28339 }, /* XF86Save */
-    { 0x1008ff2d, 28348 }, /* XF86ScreenSaver */
-    { 0x1008ff7a, 28364 }, /* XF86ScrollClick */
-    { 0x1008ff79, 28380 }, /* XF86ScrollDown */
-    { 0x1008ff78, 28395 }, /* XF86ScrollUp */
-    { 0x1008ff1b, 28408 }, /* XF86Search */
-    { 0x1008ffa0, 28419 }, /* XF86Select */
-    { 0x1008ff7b, 28430 }, /* XF86Send */
-    { 0x1008ff36, 28439 }, /* XF86Shop */
-    { 0x1008ff2f, 28448 }, /* XF86Sleep */
-    { 0x1008ff7c, 28458 }, /* XF86Spell */
-    { 0x1008ff7d, 28468 }, /* XF86SplitScreen */
-    { 0x1008ff10, 28484 }, /* XF86Standby */
-    { 0x1008ff1a, 28496 }, /* XF86Start */
-    { 0x1008ff28, 28506 }, /* XF86Stop */
-    { 0x1008ff9a, 28515 }, /* XF86Subtitle */
-    { 0x1008ff7e, 28528 }, /* XF86Support */
-    { 0x1008ffa7, 28540 }, /* XF86Suspend */
-    { 0x1008fe01, 28552 }, /* XF86Switch_VT_1 */
-    { 0x1008fe0a, 28568 }, /* XF86Switch_VT_10 */
-    { 0x1008fe0b, 28585 }, /* XF86Switch_VT_11 */
-    { 0x1008fe0c, 28602 }, /* XF86Switch_VT_12 */
-    { 0x1008fe02, 28619 }, /* XF86Switch_VT_2 */
-    { 0x1008fe03, 28635 }, /* XF86Switch_VT_3 */
-    { 0x1008fe04, 28651 }, /* XF86Switch_VT_4 */
-    { 0x1008fe05, 28667 }, /* XF86Switch_VT_5 */
-    { 0x1008fe06, 28683 }, /* XF86Switch_VT_6 */
-    { 0x1008fe07, 28699 }, /* XF86Switch_VT_7 */
-    { 0x1008fe08, 28715 }, /* XF86Switch_VT_8 */
-    { 0x1008fe09, 28731 }, /* XF86Switch_VT_9 */
-    { 0x1008ff7f, 28747 }, /* XF86TaskPane */
-    { 0x1008ff80, 28760 }, /* XF86Terminal */
-    { 0x1008ff9f, 28773 }, /* XF86Time */
-    { 0x1008ff1f, 28782 }, /* XF86ToDoList */
-    { 0x1008ff81, 28795 }, /* XF86Tools */
-    { 0x1008ffa2, 28805 }, /* XF86TopMenu */
-    { 0x1008ffb1, 28817 }, /* XF86TouchpadOff */
-    { 0x1008ffb0, 28833 }, /* XF86TouchpadOn */
-    { 0x1008ffa9, 28848 }, /* XF86TouchpadToggle */
-    { 0x1008ff82, 28867 }, /* XF86Travel */
-    { 0x1008fe20, 28878 }, /* XF86Ungrab */
-    { 0x1008ff85, 28889 }, /* XF86User1KB */
-    { 0x1008ff86, 28901 }, /* XF86User2KB */
-    { 0x1008ff84, 28913 }, /* XF86UserPB */
-    { 0x1008ff96, 28924 }, /* XF86UWB */
-    { 0x1008ff34, 28932 }, /* XF86VendorHome */
-    { 0x1008ff87, 28947 }, /* XF86Video */
-    { 0x1008ffa1, 28957 }, /* XF86View */
-    { 0x1008ff2b, 28966 }, /* XF86WakeUp */
-    { 0x1008ff8f, 28977 }, /* XF86WebCam */
-    { 0x1008ff88, 28988 }, /* XF86WheelButton */
-    { 0x1008ff95, 29004 }, /* XF86WLAN */
-    { 0x1008ff89, 29013 }, /* XF86Word */
-    { 0x1008ffb4, 29022 }, /* XF86WWAN */
-    { 0x1008ff2e, 29031 }, /* XF86WWW */
-    { 0x1008ff8a, 29039 }, /* XF86Xfer */
-    { 0x1008ffa5, 29048 }, /* XF86Yellow */
-    { 0x1008ff8b, 29059 }, /* XF86ZoomIn */
-    { 0x1008ff8c, 29070 }, /* XF86ZoomOut */
-    { 0x00000059, 29082 }, /* Y */
-    { 0x00000079, 29084 }, /* y */
-    { 0x000000dd, 29086 }, /* Yacute */
-    { 0x000000fd, 29093 }, /* yacute */
-    { 0x01001ef4, 29100 }, /* Ybelowdot */
-    { 0x01001ef5, 29110 }, /* ybelowdot */
-    { 0x01000176, 29120 }, /* Ycircumflex */
-    { 0x01000177, 29132 }, /* ycircumflex */
-    { 0x000000ff, 29144 }, /* ydiaeresis */
-    { 0x000013be, 29155 }, /* Ydiaeresis */
-    { 0x000000a5, 29166 }, /* yen */
-    { 0x01001ef2, 29170 }, /* Ygrave */
-    { 0x01001ef3, 29177 }, /* ygrave */
-    { 0x01001ef6, 29184 }, /* Yhook */
-    { 0x01001ef7, 29190 }, /* yhook */
-    { 0x01001ef8, 29196 }, /* Ytilde */
-    { 0x01001ef9, 29203 }, /* ytilde */
-    { 0x0000005a, 29210 }, /* Z */
-    { 0x0000007a, 29212 }, /* z */
-    { 0x000001af, 29214 }, /* Zabovedot */
-    { 0x000001bf, 29224 }, /* zabovedot */
-    { 0x000001ac, 29234 }, /* Zacute */
-    { 0x000001bc, 29241 }, /* zacute */
-    { 0x000001ae, 29248 }, /* Zcaron */
-    { 0x000001be, 29255 }, /* zcaron */
-    { 0x0000ff3d, 29262 }, /* Zen_Koho */
-    { 0x0000ff28, 29271 }, /* Zenkaku */
-    { 0x0000ff2a, 29279 }, /* Zenkaku_Hankaku */
-    { 0x01002080, 29295 }, /* zerosubscript */
-    { 0x01002070, 29309 }, /* zerosuperior */
-    { 0x010001b5, 29322 }, /* Zstroke */
-    { 0x010001b6, 29330 }, /* zstroke */
+    { 0x01000301, 8680 }, /* combining_acute */
+    { 0x01000323, 8696 }, /* combining_belowdot */
+    { 0x01000300, 8715 }, /* combining_grave */
+    { 0x01000309, 8731 }, /* combining_hook */
+    { 0x01000303, 8746 }, /* combining_tilde */
+    { 0x0000002c, 8762 }, /* comma */
+    { 0x0100220b, 8768 }, /* containsas */
+    { 0x0000ffe3, 8779 }, /* Control_L */
+    { 0x0000ffe4, 8789 }, /* Control_R */
+    { 0x000000a9, 8799 }, /* copyright */
+    { 0x000009e4, 8809 }, /* cr */
+    { 0x000009ee, 8812 }, /* crossinglines */
+    { 0x010020a2, 8826 }, /* CruzeiroSign */
+    { 0x0100221b, 8839 }, /* cuberoot */
+    { 0x000000a4, 8848 }, /* currency */
+    { 0x00000aff, 8857 }, /* cursor */
+    { 0x000006c1, 8864 }, /* Cyrillic_a */
+    { 0x000006e1, 8875 }, /* Cyrillic_A */
+    { 0x000006c2, 8886 }, /* Cyrillic_be */
+    { 0x000006e2, 8898 }, /* Cyrillic_BE */
+    { 0x000006de, 8910 }, /* Cyrillic_che */
+    { 0x000006fe, 8923 }, /* Cyrillic_CHE */
+    { 0x010004b6, 8936 }, /* Cyrillic_CHE_descender */
+    { 0x010004b7, 8959 }, /* Cyrillic_che_descender */
+    { 0x010004b8, 8982 }, /* Cyrillic_CHE_vertstroke */
+    { 0x010004b9, 9006 }, /* Cyrillic_che_vertstroke */
+    { 0x000006c4, 9030 }, /* Cyrillic_de */
+    { 0x000006e4, 9042 }, /* Cyrillic_DE */
+    { 0x000006af, 9054 }, /* Cyrillic_dzhe */
+    { 0x000006bf, 9068 }, /* Cyrillic_DZHE */
+    { 0x000006dc, 9082 }, /* Cyrillic_e */
+    { 0x000006fc, 9093 }, /* Cyrillic_E */
+    { 0x000006c6, 9104 }, /* Cyrillic_ef */
+    { 0x000006e6, 9116 }, /* Cyrillic_EF */
+    { 0x000006cc, 9128 }, /* Cyrillic_el */
+    { 0x000006ec, 9140 }, /* Cyrillic_EL */
+    { 0x000006cd, 9152 }, /* Cyrillic_em */
+    { 0x000006ed, 9164 }, /* Cyrillic_EM */
+    { 0x000006ce, 9176 }, /* Cyrillic_en */
+    { 0x000006ee, 9188 }, /* Cyrillic_EN */
+    { 0x010004a2, 9200 }, /* Cyrillic_EN_descender */
+    { 0x010004a3, 9222 }, /* Cyrillic_en_descender */
+    { 0x000006d2, 9244 }, /* Cyrillic_er */
+    { 0x000006f2, 9256 }, /* Cyrillic_ER */
+    { 0x000006d3, 9268 }, /* Cyrillic_es */
+    { 0x000006f3, 9280 }, /* Cyrillic_ES */
+    { 0x000006c7, 9292 }, /* Cyrillic_ghe */
+    { 0x000006e7, 9305 }, /* Cyrillic_GHE */
+    { 0x01000492, 9318 }, /* Cyrillic_GHE_bar */
+    { 0x01000493, 9335 }, /* Cyrillic_ghe_bar */
+    { 0x000006c8, 9352 }, /* Cyrillic_ha */
+    { 0x000006e8, 9364 }, /* Cyrillic_HA */
+    { 0x010004b2, 9376 }, /* Cyrillic_HA_descender */
+    { 0x010004b3, 9398 }, /* Cyrillic_ha_descender */
+    { 0x000006df, 9420 }, /* Cyrillic_hardsign */
+    { 0x000006ff, 9438 }, /* Cyrillic_HARDSIGN */
+    { 0x000006c9, 9456 }, /* Cyrillic_i */
+    { 0x000006e9, 9467 }, /* Cyrillic_I */
+    { 0x010004e2, 9478 }, /* Cyrillic_I_macron */
+    { 0x010004e3, 9496 }, /* Cyrillic_i_macron */
+    { 0x000006c5, 9514 }, /* Cyrillic_ie */
+    { 0x000006e5, 9526 }, /* Cyrillic_IE */
+    { 0x000006a3, 9538 }, /* Cyrillic_io */
+    { 0x000006b3, 9550 }, /* Cyrillic_IO */
+    { 0x000006a8, 9562 }, /* Cyrillic_je */
+    { 0x000006b8, 9574 }, /* Cyrillic_JE */
+    { 0x000006cb, 9586 }, /* Cyrillic_ka */
+    { 0x000006eb, 9598 }, /* Cyrillic_KA */
+    { 0x0100049a, 9610 }, /* Cyrillic_KA_descender */
+    { 0x0100049b, 9632 }, /* Cyrillic_ka_descender */
+    { 0x0100049c, 9654 }, /* Cyrillic_KA_vertstroke */
+    { 0x0100049d, 9677 }, /* Cyrillic_ka_vertstroke */
+    { 0x000006a9, 9700 }, /* Cyrillic_lje */
+    { 0x000006b9, 9713 }, /* Cyrillic_LJE */
+    { 0x000006aa, 9726 }, /* Cyrillic_nje */
+    { 0x000006ba, 9739 }, /* Cyrillic_NJE */
+    { 0x000006cf, 9752 }, /* Cyrillic_o */
+    { 0x000006ef, 9763 }, /* Cyrillic_O */
+    { 0x010004e8, 9774 }, /* Cyrillic_O_bar */
+    { 0x010004e9, 9789 }, /* Cyrillic_o_bar */
+    { 0x000006d0, 9804 }, /* Cyrillic_pe */
+    { 0x000006f0, 9816 }, /* Cyrillic_PE */
+    { 0x010004d8, 9828 }, /* Cyrillic_SCHWA */
+    { 0x010004d9, 9843 }, /* Cyrillic_schwa */
+    { 0x000006db, 9858 }, /* Cyrillic_sha */
+    { 0x000006fb, 9871 }, /* Cyrillic_SHA */
+    { 0x000006dd, 9884 }, /* Cyrillic_shcha */
+    { 0x000006fd, 9899 }, /* Cyrillic_SHCHA */
+    { 0x010004ba, 9914 }, /* Cyrillic_SHHA */
+    { 0x010004bb, 9928 }, /* Cyrillic_shha */
+    { 0x000006ca, 9942 }, /* Cyrillic_shorti */
+    { 0x000006ea, 9958 }, /* Cyrillic_SHORTI */
+    { 0x000006d8, 9974 }, /* Cyrillic_softsign */
+    { 0x000006f8, 9992 }, /* Cyrillic_SOFTSIGN */
+    { 0x000006d4, 10010 }, /* Cyrillic_te */
+    { 0x000006f4, 10022 }, /* Cyrillic_TE */
+    { 0x000006c3, 10034 }, /* Cyrillic_tse */
+    { 0x000006e3, 10047 }, /* Cyrillic_TSE */
+    { 0x000006d5, 10060 }, /* Cyrillic_u */
+    { 0x000006f5, 10071 }, /* Cyrillic_U */
+    { 0x010004ee, 10082 }, /* Cyrillic_U_macron */
+    { 0x010004ef, 10100 }, /* Cyrillic_u_macron */
+    { 0x010004ae, 10118 }, /* Cyrillic_U_straight */
+    { 0x010004af, 10138 }, /* Cyrillic_u_straight */
+    { 0x010004b0, 10158 }, /* Cyrillic_U_straight_bar */
+    { 0x010004b1, 10182 }, /* Cyrillic_u_straight_bar */
+    { 0x000006d7, 10206 }, /* Cyrillic_ve */
+    { 0x000006f7, 10218 }, /* Cyrillic_VE */
+    { 0x000006d1, 10230 }, /* Cyrillic_ya */
+    { 0x000006f1, 10242 }, /* Cyrillic_YA */
+    { 0x000006d9, 10254 }, /* Cyrillic_yeru */
+    { 0x000006f9, 10268 }, /* Cyrillic_YERU */
+    { 0x000006c0, 10282 }, /* Cyrillic_yu */
+    { 0x000006e0, 10294 }, /* Cyrillic_YU */
+    { 0x000006da, 10306 }, /* Cyrillic_ze */
+    { 0x000006fa, 10318 }, /* Cyrillic_ZE */
+    { 0x000006d6, 10330 }, /* Cyrillic_zhe */
+    { 0x000006f6, 10343 }, /* Cyrillic_ZHE */
+    { 0x01000496, 10356 }, /* Cyrillic_ZHE_descender */
+    { 0x01000497, 10379 }, /* Cyrillic_zhe_descender */
+    { 0x00000044, 10402 }, /* D */
+    { 0x00000064, 10404 }, /* d */
+    { 0x01001e0a, 10406 }, /* Dabovedot */
+    { 0x01001e0b, 10416 }, /* dabovedot */
+    { 0x1000fe27, 10426 }, /* Dacute_accent */
+    { 0x00000af1, 10440 }, /* dagger */
+    { 0x000001cf, 10447 }, /* Dcaron */
+    { 0x000001ef, 10454 }, /* dcaron */
+    { 0x1000fe2c, 10461 }, /* Dcedilla_accent */
+    { 0x1000fe5e, 10477 }, /* Dcircumflex_accent */
+    { 0x1000fe22, 10496 }, /* Ddiaeresis */
+    { 0x0000fe80, 10507 }, /* dead_a */
+    { 0x0000fe81, 10514 }, /* dead_A */
+    { 0x0000fe64, 10521 }, /* dead_abovecomma */
+    { 0x0000fe56, 10537 }, /* dead_abovedot */
+    { 0x0000fe65, 10551 }, /* dead_abovereversedcomma */
+    { 0x0000fe58, 10575 }, /* dead_abovering */
+    { 0x0000fe91, 10590 }, /* dead_aboveverticalline */
+    { 0x0000fe51, 10613 }, /* dead_acute */
+    { 0x0000fe6b, 10624 }, /* dead_belowbreve */
+    { 0x0000fe69, 10640 }, /* dead_belowcircumflex */
+    { 0x0000fe6e, 10661 }, /* dead_belowcomma */
+    { 0x0000fe6c, 10677 }, /* dead_belowdiaeresis */
+    { 0x0000fe60, 10697 }, /* dead_belowdot */
+    { 0x0000fe68, 10711 }, /* dead_belowmacron */
+    { 0x0000fe67, 10728 }, /* dead_belowring */
+    { 0x0000fe6a, 10743 }, /* dead_belowtilde */
+    { 0x0000fe92, 10759 }, /* dead_belowverticalline */
+    { 0x0000fe55, 10782 }, /* dead_breve */
+    { 0x0000fe8b, 10793 }, /* dead_capital_schwa */
+    { 0x0000fe5a, 10812 }, /* dead_caron */
+    { 0x0000fe5b, 10823 }, /* dead_cedilla */
+    { 0x0000fe52, 10836 }, /* dead_circumflex */
+    { 0x0000fe6f, 10852 }, /* dead_currency */
+    { 0x0000fe65, 10866 }, /* dead_dasia */
+    { 0x0000fe57, 10877 }, /* dead_diaeresis */
+    { 0x0000fe59, 10892 }, /* dead_doubleacute */
+    { 0x0000fe66, 10909 }, /* dead_doublegrave */
+    { 0x0000fe82, 10926 }, /* dead_e */
+    { 0x0000fe83, 10933 }, /* dead_E */
+    { 0x0000fe50, 10940 }, /* dead_grave */
+    { 0x0000fe8c, 10951 }, /* dead_greek */
+    { 0x0000fe61, 10962 }, /* dead_hook */
+    { 0x0000fe62, 10972 }, /* dead_horn */
+    { 0x0000fe84, 10982 }, /* dead_i */
+    { 0x0000fe85, 10989 }, /* dead_I */
+    { 0x0000fe6d, 10996 }, /* dead_invertedbreve */
+    { 0x0000fe5d, 11015 }, /* dead_iota */
+    { 0x0000fe93, 11025 }, /* dead_longsolidusoverlay */
+    { 0x0000fe90, 11049 }, /* dead_lowline */
+    { 0x0000fe54, 11062 }, /* dead_macron */
+    { 0x0000fe86, 11074 }, /* dead_o */
+    { 0x0000fe87, 11081 }, /* dead_O */
+    { 0x0000fe5c, 11088 }, /* dead_ogonek */
+    { 0x0000fe53, 11100 }, /* dead_perispomeni */
+    { 0x0000fe64, 11117 }, /* dead_psili */
+    { 0x0000fe5f, 11128 }, /* dead_semivoiced_sound */
+    { 0x0000fe8a, 11150 }, /* dead_small_schwa */
+    { 0x0000fe63, 11167 }, /* dead_stroke */
+    { 0x0000fe53, 11179 }, /* dead_tilde */
+    { 0x0000fe88, 11190 }, /* dead_u */
+    { 0x0000fe89, 11197 }, /* dead_U */
+    { 0x0000fe5e, 11204 }, /* dead_voiced_sound */
+    { 0x00000abd, 11222 }, /* decimalpoint */
+    { 0x000000b0, 11235 }, /* degree */
+    { 0x0000ffff, 11242 }, /* Delete */
+    { 0x1000ff73, 11249 }, /* DeleteChar */
+    { 0x1000ff71, 11260 }, /* DeleteLine */
+    { 0x1000fe60, 11271 }, /* Dgrave_accent */
+    { 0x000000a8, 11285 }, /* diaeresis */
+    { 0x00000aed, 11295 }, /* diamond */
+    { 0x00000aa5, 11303 }, /* digitspace */
+    { 0x0100222c, 11314 }, /* dintegral */
+    { 0x000000f7, 11324 }, /* division */
+    { 0x00000024, 11333 }, /* dollar */
+    { 0x010020ab, 11340 }, /* DongSign */
+    { 0x00000aaf, 11349 }, /* doubbaselinedot */
+    { 0x000001bd, 11365 }, /* doubleacute */
+    { 0x00000af2, 11377 }, /* doubledagger */
+    { 0x00000afe, 11390 }, /* doublelowquotemark */
+    { 0x0000ff54, 11409 }, /* Down */
+    { 0x000008fe, 11414 }, /* downarrow */
+    { 0x00000ba8, 11424 }, /* downcaret */
+    { 0x00000bd6, 11434 }, /* downshoe */
+    { 0x00000bc4, 11443 }, /* downstile */
+    { 0x00000bc2, 11453 }, /* downtack */
+    { 0x1000ff00, 11462 }, /* DRemove */
+    { 0x1000feb0, 11470 }, /* Dring_accent */
+    { 0x000001d0, 11483 }, /* Dstroke */
+    { 0x000001f0, 11491 }, /* dstroke */
+    { 0x1000fe7e, 11499 }, /* Dtilde */
+    { 0x00000045, 11506 }, /* E */
+    { 0x00000065, 11508 }, /* e */
+    { 0x000003cc, 11510 }, /* Eabovedot */
+    { 0x000003ec, 11520 }, /* eabovedot */
+    { 0x000000c9, 11530 }, /* Eacute */
+    { 0x000000e9, 11537 }, /* eacute */
+    { 0x01001eb8, 11544 }, /* Ebelowdot */
+    { 0x01001eb9, 11554 }, /* ebelowdot */
+    { 0x000001cc, 11564 }, /* Ecaron */
+    { 0x000001ec, 11571 }, /* ecaron */
+    { 0x000000ca, 11578 }, /* Ecircumflex */
+    { 0x000000ea, 11590 }, /* ecircumflex */
+    { 0x01001ebe, 11602 }, /* Ecircumflexacute */
+    { 0x01001ebf, 11619 }, /* ecircumflexacute */
+    { 0x01001ec6, 11636 }, /* Ecircumflexbelowdot */
+    { 0x01001ec7, 11656 }, /* ecircumflexbelowdot */
+    { 0x01001ec0, 11676 }, /* Ecircumflexgrave */
+    { 0x01001ec1, 11693 }, /* ecircumflexgrave */
+    { 0x01001ec2, 11710 }, /* Ecircumflexhook */
+    { 0x01001ec3, 11726 }, /* ecircumflexhook */
+    { 0x01001ec4, 11742 }, /* Ecircumflextilde */
+    { 0x01001ec5, 11759 }, /* ecircumflextilde */
+    { 0x010020a0, 11776 }, /* EcuSign */
+    { 0x000000cb, 11784 }, /* Ediaeresis */
+    { 0x000000eb, 11795 }, /* ediaeresis */
+    { 0x000000c8, 11806 }, /* Egrave */
+    { 0x000000e8, 11813 }, /* egrave */
+    { 0x01001eba, 11820 }, /* Ehook */
+    { 0x01001ebb, 11826 }, /* ehook */
+    { 0x01002088, 11832 }, /* eightsubscript */
+    { 0x01002078, 11847 }, /* eightsuperior */
+    { 0x0000ff2f, 11861 }, /* Eisu_Shift */
+    { 0x0000ff30, 11872 }, /* Eisu_toggle */
+    { 0x01002208, 11884 }, /* elementof */
+    { 0x00000aae, 11894 }, /* ellipsis */
+    { 0x00000aa3, 11903 }, /* em3space */
+    { 0x00000aa4, 11912 }, /* em4space */
+    { 0x000003aa, 11921 }, /* Emacron */
+    { 0x000003ba, 11929 }, /* emacron */
+    { 0x00000aa9, 11937 }, /* emdash */
+    { 0x00000ade, 11944 }, /* emfilledcircle */
+    { 0x00000adf, 11959 }, /* emfilledrect */
+    { 0x00000ace, 11972 }, /* emopencircle */
+    { 0x00000acf, 11985 }, /* emopenrectangle */
+    { 0x01002205, 12001 }, /* emptyset */
+    { 0x00000aa1, 12010 }, /* emspace */
+    { 0x0000ff57, 12018 }, /* End */
+    { 0x00000aaa, 12022 }, /* endash */
+    { 0x00000ae6, 12029 }, /* enfilledcircbullet */
+    { 0x00000ae7, 12048 }, /* enfilledsqbullet */
+    { 0x000003bd, 12065 }, /* ENG */
+    { 0x000003bf, 12069 }, /* eng */
+    { 0x00000ae0, 12073 }, /* enopencircbullet */
+    { 0x00000ae1, 12090 }, /* enopensquarebullet */
+    { 0x00000aa2, 12109 }, /* enspace */
+    { 0x000001ca, 12117 }, /* Eogonek */
+    { 0x000001ea, 12125 }, /* eogonek */
+    { 0x0000003d, 12133 }, /* equal */
+    { 0x0000ff1b, 12139 }, /* Escape */
+    { 0x000000d0, 12146 }, /* ETH */
+    { 0x000000d0, 12150 }, /* Eth */
+    { 0x000000f0, 12154 }, /* eth */
+    { 0x01001ebc, 12158 }, /* Etilde */
+    { 0x01001ebd, 12165 }, /* etilde */
+    { 0x000020ac, 12172 }, /* EuroSign */
+    { 0x00000021, 12181 }, /* exclam */
+    { 0x000000a1, 12188 }, /* exclamdown */
+    { 0x0000ff62, 12199 }, /* Execute */
+    { 0x1000ff76, 12207 }, /* Ext16bit_L */
+    { 0x1000ff77, 12218 }, /* Ext16bit_R */
+    { 0x010001b7, 12229 }, /* EZH */
+    { 0x01000292, 12233 }, /* ezh */
+    { 0x00000046, 12237 }, /* F */
+    { 0x00000066, 12239 }, /* f */
+    { 0x0000ffbe, 12241 }, /* F1 */
+    { 0x0000ffc7, 12244 }, /* F10 */
+    { 0x0000ffc8, 12248 }, /* F11 */
+    { 0x0000ffc9, 12252 }, /* F12 */
+    { 0x0000ffca, 12256 }, /* F13 */
+    { 0x0000ffcb, 12260 }, /* F14 */
+    { 0x0000ffcc, 12264 }, /* F15 */
+    { 0x0000ffcd, 12268 }, /* F16 */
+    { 0x0000ffce, 12272 }, /* F17 */
+    { 0x0000ffcf, 12276 }, /* F18 */
+    { 0x0000ffd0, 12280 }, /* F19 */
+    { 0x0000ffbf, 12284 }, /* F2 */
+    { 0x0000ffd1, 12287 }, /* F20 */
+    { 0x0000ffd2, 12291 }, /* F21 */
+    { 0x0000ffd3, 12295 }, /* F22 */
+    { 0x0000ffd4, 12299 }, /* F23 */
+    { 0x0000ffd5, 12303 }, /* F24 */
+    { 0x0000ffd6, 12307 }, /* F25 */
+    { 0x0000ffd7, 12311 }, /* F26 */
+    { 0x0000ffd8, 12315 }, /* F27 */
+    { 0x0000ffd9, 12319 }, /* F28 */
+    { 0x0000ffda, 12323 }, /* F29 */
+    { 0x0000ffc0, 12327 }, /* F3 */
+    { 0x0000ffdb, 12330 }, /* F30 */
+    { 0x0000ffdc, 12334 }, /* F31 */
+    { 0x0000ffdd, 12338 }, /* F32 */
+    { 0x0000ffde, 12342 }, /* F33 */
+    { 0x0000ffdf, 12346 }, /* F34 */
+    { 0x0000ffe0, 12350 }, /* F35 */
+    { 0x0000ffc1, 12354 }, /* F4 */
+    { 0x0000ffc2, 12357 }, /* F5 */
+    { 0x0000ffc3, 12360 }, /* F6 */
+    { 0x0000ffc4, 12363 }, /* F7 */
+    { 0x0000ffc5, 12366 }, /* F8 */
+    { 0x0000ffc6, 12369 }, /* F9 */
+    { 0x01001e1e, 12372 }, /* Fabovedot */
+    { 0x01001e1f, 12382 }, /* fabovedot */
+    { 0x010006f0, 12392 }, /* Farsi_0 */
+    { 0x010006f1, 12400 }, /* Farsi_1 */
+    { 0x010006f2, 12408 }, /* Farsi_2 */
+    { 0x010006f3, 12416 }, /* Farsi_3 */
+    { 0x010006f4, 12424 }, /* Farsi_4 */
+    { 0x010006f5, 12432 }, /* Farsi_5 */
+    { 0x010006f6, 12440 }, /* Farsi_6 */
+    { 0x010006f7, 12448 }, /* Farsi_7 */
+    { 0x010006f8, 12456 }, /* Farsi_8 */
+    { 0x010006f9, 12464 }, /* Farsi_9 */
+    { 0x010006cc, 12472 }, /* Farsi_yeh */
+    { 0x00000af8, 12482 }, /* femalesymbol */
+    { 0x000009e3, 12495 }, /* ff */
+    { 0x010020a3, 12498 }, /* FFrancSign */
+    { 0x00000abb, 12509 }, /* figdash */
+    { 0x00000adc, 12517 }, /* filledlefttribullet */
+    { 0x00000adb, 12537 }, /* filledrectbullet */
+    { 0x00000add, 12554 }, /* filledrighttribullet */
+    { 0x00000ae9, 12575 }, /* filledtribulletdown */
+    { 0x00000ae8, 12595 }, /* filledtribulletup */
+    { 0x0000ff68, 12613 }, /* Find */
+    { 0x0000fed0, 12618 }, /* First_Virtual_Screen */
+    { 0x00000ac5, 12639 }, /* fiveeighths */
+    { 0x00000ab7, 12651 }, /* fivesixths */
+    { 0x01002085, 12662 }, /* fivesubscript */
+    { 0x01002075, 12676 }, /* fivesuperior */
+    { 0x00000ab5, 12689 }, /* fourfifths */
+    { 0x01002084, 12700 }, /* foursubscript */
+    { 0x01002074, 12714 }, /* foursuperior */
+    { 0x0100221c, 12727 }, /* fourthroot */
+    { 0x000008f6, 12738 }, /* function */
+    { 0x00000047, 12747 }, /* G */
+    { 0x00000067, 12749 }, /* g */
+    { 0x000002d5, 12751 }, /* Gabovedot */
+    { 0x000002f5, 12761 }, /* gabovedot */
+    { 0x000002ab, 12771 }, /* Gbreve */
+    { 0x000002bb, 12778 }, /* gbreve */
+    { 0x010001e6, 12785 }, /* Gcaron */
+    { 0x010001e7, 12792 }, /* gcaron */
+    { 0x000003ab, 12799 }, /* Gcedilla */
+    { 0x000003bb, 12808 }, /* gcedilla */
+    { 0x000002d8, 12817 }, /* Gcircumflex */
+    { 0x000002f8, 12829 }, /* gcircumflex */
+    { 0x010010d0, 12841 }, /* Georgian_an */
+    { 0x010010d1, 12853 }, /* Georgian_ban */
+    { 0x010010ea, 12866 }, /* Georgian_can */
+    { 0x010010ed, 12879 }, /* Georgian_char */
+    { 0x010010e9, 12893 }, /* Georgian_chin */
+    { 0x010010ec, 12907 }, /* Georgian_cil */
+    { 0x010010d3, 12920 }, /* Georgian_don */
+    { 0x010010d4, 12933 }, /* Georgian_en */
+    { 0x010010f6, 12945 }, /* Georgian_fi */
+    { 0x010010d2, 12957 }, /* Georgian_gan */
+    { 0x010010e6, 12970 }, /* Georgian_ghan */
+    { 0x010010f0, 12984 }, /* Georgian_hae */
+    { 0x010010f4, 12997 }, /* Georgian_har */
+    { 0x010010f1, 13010 }, /* Georgian_he */
+    { 0x010010f2, 13022 }, /* Georgian_hie */
+    { 0x010010f5, 13035 }, /* Georgian_hoe */
+    { 0x010010d8, 13048 }, /* Georgian_in */
+    { 0x010010ef, 13060 }, /* Georgian_jhan */
+    { 0x010010eb, 13074 }, /* Georgian_jil */
+    { 0x010010d9, 13087 }, /* Georgian_kan */
+    { 0x010010e5, 13100 }, /* Georgian_khar */
+    { 0x010010da, 13114 }, /* Georgian_las */
+    { 0x010010db, 13127 }, /* Georgian_man */
+    { 0x010010dc, 13140 }, /* Georgian_nar */
+    { 0x010010dd, 13153 }, /* Georgian_on */
+    { 0x010010de, 13165 }, /* Georgian_par */
+    { 0x010010e4, 13178 }, /* Georgian_phar */
+    { 0x010010e7, 13192 }, /* Georgian_qar */
+    { 0x010010e0, 13205 }, /* Georgian_rae */
+    { 0x010010e1, 13218 }, /* Georgian_san */
+    { 0x010010e8, 13231 }, /* Georgian_shin */
+    { 0x010010d7, 13245 }, /* Georgian_tan */
+    { 0x010010e2, 13258 }, /* Georgian_tar */
+    { 0x010010e3, 13271 }, /* Georgian_un */
+    { 0x010010d5, 13283 }, /* Georgian_vin */
+    { 0x010010f3, 13296 }, /* Georgian_we */
+    { 0x010010ee, 13308 }, /* Georgian_xan */
+    { 0x010010d6, 13321 }, /* Georgian_zen */
+    { 0x010010df, 13334 }, /* Georgian_zhar */
+    { 0x00000060, 13348 }, /* grave */
+    { 0x0000003e, 13354 }, /* greater */
+    { 0x000008be, 13362 }, /* greaterthanequal */
+    { 0x000007ae, 13379 }, /* Greek_accentdieresis */
+    { 0x000007c1, 13400 }, /* Greek_ALPHA */
+    { 0x000007e1, 13412 }, /* Greek_alpha */
+    { 0x000007a1, 13424 }, /* Greek_ALPHAaccent */
+    { 0x000007b1, 13442 }, /* Greek_alphaaccent */
+    { 0x000007c2, 13460 }, /* Greek_BETA */
+    { 0x000007e2, 13471 }, /* Greek_beta */
+    { 0x000007d7, 13482 }, /* Greek_CHI */
+    { 0x000007f7, 13492 }, /* Greek_chi */
+    { 0x000007c4, 13502 }, /* Greek_DELTA */
+    { 0x000007e4, 13514 }, /* Greek_delta */
+    { 0x000007c5, 13526 }, /* Greek_EPSILON */
+    { 0x000007e5, 13540 }, /* Greek_epsilon */
+    { 0x000007a2, 13554 }, /* Greek_EPSILONaccent */
+    { 0x000007b2, 13574 }, /* Greek_epsilonaccent */
+    { 0x000007c7, 13594 }, /* Greek_ETA */
+    { 0x000007e7, 13604 }, /* Greek_eta */
+    { 0x000007a3, 13614 }, /* Greek_ETAaccent */
+    { 0x000007b3, 13630 }, /* Greek_etaaccent */
+    { 0x000007f3, 13646 }, /* Greek_finalsmallsigma */
+    { 0x000007c3, 13668 }, /* Greek_GAMMA */
+    { 0x000007e3, 13680 }, /* Greek_gamma */
+    { 0x000007af, 13692 }, /* Greek_horizbar */
+    { 0x000007c9, 13707 }, /* Greek_IOTA */
+    { 0x000007e9, 13718 }, /* Greek_iota */
+    { 0x000007a4, 13729 }, /* Greek_IOTAaccent */
+    { 0x000007b4, 13746 }, /* Greek_iotaaccent */
+    { 0x000007b6, 13763 }, /* Greek_iotaaccentdieresis */
+    { 0x000007a5, 13788 }, /* Greek_IOTAdiaeresis */
+    { 0x000007a5, 13808 }, /* Greek_IOTAdieresis */
+    { 0x000007b5, 13827 }, /* Greek_iotadieresis */
+    { 0x000007ca, 13846 }, /* Greek_KAPPA */
+    { 0x000007ea, 13858 }, /* Greek_kappa */
+    { 0x000007cb, 13870 }, /* Greek_LAMBDA */
+    { 0x000007eb, 13883 }, /* Greek_lambda */
+    { 0x000007cb, 13896 }, /* Greek_LAMDA */
+    { 0x000007eb, 13908 }, /* Greek_lamda */
+    { 0x000007cc, 13920 }, /* Greek_MU */
+    { 0x000007ec, 13929 }, /* Greek_mu */
+    { 0x000007cd, 13938 }, /* Greek_NU */
+    { 0x000007ed, 13947 }, /* Greek_nu */
+    { 0x000007d9, 13956 }, /* Greek_OMEGA */
+    { 0x000007f9, 13968 }, /* Greek_omega */
+    { 0x000007ab, 13980 }, /* Greek_OMEGAaccent */
+    { 0x000007bb, 13998 }, /* Greek_omegaaccent */
+    { 0x000007cf, 14016 }, /* Greek_OMICRON */
+    { 0x000007ef, 14030 }, /* Greek_omicron */
+    { 0x000007a7, 14044 }, /* Greek_OMICRONaccent */
+    { 0x000007b7, 14064 }, /* Greek_omicronaccent */
+    { 0x000007d6, 14084 }, /* Greek_PHI */
+    { 0x000007f6, 14094 }, /* Greek_phi */
+    { 0x000007d0, 14104 }, /* Greek_PI */
+    { 0x000007f0, 14113 }, /* Greek_pi */
+    { 0x000007d8, 14122 }, /* Greek_PSI */
+    { 0x000007f8, 14132 }, /* Greek_psi */
+    { 0x000007d1, 14142 }, /* Greek_RHO */
+    { 0x000007f1, 14152 }, /* Greek_rho */
+    { 0x000007d2, 14162 }, /* Greek_SIGMA */
+    { 0x000007f2, 14174 }, /* Greek_sigma */
+    { 0x0000ff7e, 14186 }, /* Greek_switch */
+    { 0x000007d4, 14199 }, /* Greek_TAU */
+    { 0x000007f4, 14209 }, /* Greek_tau */
+    { 0x000007c8, 14219 }, /* Greek_THETA */
+    { 0x000007e8, 14231 }, /* Greek_theta */
+    { 0x000007d5, 14243 }, /* Greek_UPSILON */
+    { 0x000007f5, 14257 }, /* Greek_upsilon */
+    { 0x000007a8, 14271 }, /* Greek_UPSILONaccent */
+    { 0x000007b8, 14291 }, /* Greek_upsilonaccent */
+    { 0x000007ba, 14311 }, /* Greek_upsilonaccentdieresis */
+    { 0x000007a9, 14339 }, /* Greek_UPSILONdieresis */
+    { 0x000007b9, 14361 }, /* Greek_upsilondieresis */
+    { 0x000007ce, 14383 }, /* Greek_XI */
+    { 0x000007ee, 14392 }, /* Greek_xi */
+    { 0x000007c6, 14401 }, /* Greek_ZETA */
+    { 0x000007e6, 14412 }, /* Greek_zeta */
+    { 0x100000be, 14423 }, /* guilder */
+    { 0x000000ab, 14431 }, /* guillemotleft */
+    { 0x000000bb, 14445 }, /* guillemotright */
+    { 0x00000048, 14460 }, /* H */
+    { 0x00000068, 14462 }, /* h */
+    { 0x00000aa8, 14464 }, /* hairspace */
+    { 0x0000ff31, 14474 }, /* Hangul */
+    { 0x00000ebf, 14481 }, /* Hangul_A */
+    { 0x00000ec0, 14490 }, /* Hangul_AE */
+    { 0x00000ef6, 14500 }, /* Hangul_AraeA */
+    { 0x00000ef7, 14513 }, /* Hangul_AraeAE */
+    { 0x0000ff39, 14527 }, /* Hangul_Banja */
+    { 0x00000eba, 14540 }, /* Hangul_Cieuc */
+    { 0x0000ff37, 14553 }, /* Hangul_Codeinput */
+    { 0x00000ea7, 14570 }, /* Hangul_Dikeud */
+    { 0x00000ec4, 14584 }, /* Hangul_E */
+    { 0x0000ff33, 14593 }, /* Hangul_End */
+    { 0x00000ec3, 14604 }, /* Hangul_EO */
+    { 0x00000ed1, 14614 }, /* Hangul_EU */
+    { 0x0000ff34, 14624 }, /* Hangul_Hanja */
+    { 0x00000ebe, 14637 }, /* Hangul_Hieuh */
+    { 0x00000ed3, 14650 }, /* Hangul_I */
+    { 0x00000eb7, 14659 }, /* Hangul_Ieung */
+    { 0x00000eea, 14672 }, /* Hangul_J_Cieuc */
+    { 0x00000eda, 14687 }, /* Hangul_J_Dikeud */
+    { 0x00000eee, 14703 }, /* Hangul_J_Hieuh */
+    { 0x00000ee8, 14718 }, /* Hangul_J_Ieung */
+    { 0x00000ee9, 14733 }, /* Hangul_J_Jieuj */
+    { 0x00000eeb, 14748 }, /* Hangul_J_Khieuq */
+    { 0x00000ed4, 14764 }, /* Hangul_J_Kiyeog */
+    { 0x00000ed6, 14780 }, /* Hangul_J_KiyeogSios */
+    { 0x00000ef9, 14800 }, /* Hangul_J_KkogjiDalrinIeung */
+    { 0x00000ee3, 14827 }, /* Hangul_J_Mieum */
+    { 0x00000ed7, 14842 }, /* Hangul_J_Nieun */
+    { 0x00000ed9, 14857 }, /* Hangul_J_NieunHieuh */
+    { 0x00000ed8, 14877 }, /* Hangul_J_NieunJieuj */
+    { 0x00000ef8, 14897 }, /* Hangul_J_PanSios */
+    { 0x00000eed, 14914 }, /* Hangul_J_Phieuf */
+    { 0x00000ee4, 14930 }, /* Hangul_J_Pieub */
+    { 0x00000ee5, 14945 }, /* Hangul_J_PieubSios */
+    { 0x00000edb, 14964 }, /* Hangul_J_Rieul */
+    { 0x00000ee2, 14979 }, /* Hangul_J_RieulHieuh */
+    { 0x00000edc, 14999 }, /* Hangul_J_RieulKiyeog */
+    { 0x00000edd, 15020 }, /* Hangul_J_RieulMieum */
+    { 0x00000ee1, 15040 }, /* Hangul_J_RieulPhieuf */
+    { 0x00000ede, 15061 }, /* Hangul_J_RieulPieub */
+    { 0x00000edf, 15081 }, /* Hangul_J_RieulSios */
+    { 0x00000ee0, 15100 }, /* Hangul_J_RieulTieut */
+    { 0x00000ee6, 15120 }, /* Hangul_J_Sios */
+    { 0x00000ed5, 15134 }, /* Hangul_J_SsangKiyeog */
+    { 0x00000ee7, 15155 }, /* Hangul_J_SsangSios */
+    { 0x00000eec, 15174 }, /* Hangul_J_Tieut */
+    { 0x00000efa, 15189 }, /* Hangul_J_YeorinHieuh */
+    { 0x0000ff35, 15210 }, /* Hangul_Jamo */
+    { 0x0000ff38, 15222 }, /* Hangul_Jeonja */
+    { 0x00000eb8, 15236 }, /* Hangul_Jieuj */
+    { 0x00000ebb, 15249 }, /* Hangul_Khieuq */
+    { 0x00000ea1, 15263 }, /* Hangul_Kiyeog */
+    { 0x00000ea3, 15277 }, /* Hangul_KiyeogSios */
+    { 0x00000ef3, 15295 }, /* Hangul_KkogjiDalrinIeung */
+    { 0x00000eb1, 15320 }, /* Hangul_Mieum */
+    { 0x0000ff3d, 15333 }, /* Hangul_MultipleCandidate */
+    { 0x00000ea4, 15358 }, /* Hangul_Nieun */
+    { 0x00000ea6, 15371 }, /* Hangul_NieunHieuh */
+    { 0x00000ea5, 15389 }, /* Hangul_NieunJieuj */
+    { 0x00000ec7, 15407 }, /* Hangul_O */
+    { 0x00000eca, 15416 }, /* Hangul_OE */
+    { 0x00000ef2, 15426 }, /* Hangul_PanSios */
+    { 0x00000ebd, 15441 }, /* Hangul_Phieuf */
+    { 0x00000eb2, 15455 }, /* Hangul_Pieub */
+    { 0x00000eb4, 15468 }, /* Hangul_PieubSios */
+    { 0x0000ff3b, 15485 }, /* Hangul_PostHanja */
+    { 0x0000ff3a, 15502 }, /* Hangul_PreHanja */
+    { 0x0000ff3e, 15518 }, /* Hangul_PreviousCandidate */
+    { 0x00000ea9, 15543 }, /* Hangul_Rieul */
+    { 0x00000eb0, 15556 }, /* Hangul_RieulHieuh */
+    { 0x00000eaa, 15574 }, /* Hangul_RieulKiyeog */
+    { 0x00000eab, 15593 }, /* Hangul_RieulMieum */
+    { 0x00000eaf, 15611 }, /* Hangul_RieulPhieuf */
+    { 0x00000eac, 15630 }, /* Hangul_RieulPieub */
+    { 0x00000ead, 15648 }, /* Hangul_RieulSios */
+    { 0x00000eae, 15665 }, /* Hangul_RieulTieut */
+    { 0x00000eef, 15683 }, /* Hangul_RieulYeorinHieuh */
+    { 0x0000ff36, 15707 }, /* Hangul_Romaja */
+    { 0x0000ff3c, 15721 }, /* Hangul_SingleCandidate */
+    { 0x00000eb5, 15744 }, /* Hangul_Sios */
+    { 0x0000ff3f, 15756 }, /* Hangul_Special */
+    { 0x00000ea8, 15771 }, /* Hangul_SsangDikeud */
+    { 0x00000eb9, 15790 }, /* Hangul_SsangJieuj */
+    { 0x00000ea2, 15808 }, /* Hangul_SsangKiyeog */
+    { 0x00000eb3, 15827 }, /* Hangul_SsangPieub */
+    { 0x00000eb6, 15845 }, /* Hangul_SsangSios */
+    { 0x0000ff32, 15862 }, /* Hangul_Start */
+    { 0x00000ef0, 15875 }, /* Hangul_SunkyeongeumMieum */
+    { 0x00000ef4, 15900 }, /* Hangul_SunkyeongeumPhieuf */
+    { 0x00000ef1, 15926 }, /* Hangul_SunkyeongeumPieub */
+    { 0x0000ff7e, 15951 }, /* Hangul_switch */
+    { 0x00000ebc, 15965 }, /* Hangul_Tieut */
+    { 0x00000ecc, 15978 }, /* Hangul_U */
+    { 0x00000ec8, 15987 }, /* Hangul_WA */
+    { 0x00000ec9, 15997 }, /* Hangul_WAE */
+    { 0x00000ece, 16008 }, /* Hangul_WE */
+    { 0x00000ecd, 16018 }, /* Hangul_WEO */
+    { 0x00000ecf, 16029 }, /* Hangul_WI */
+    { 0x00000ec1, 16039 }, /* Hangul_YA */
+    { 0x00000ec2, 16049 }, /* Hangul_YAE */
+    { 0x00000ec6, 16060 }, /* Hangul_YE */
+    { 0x00000ec5, 16070 }, /* Hangul_YEO */
+    { 0x00000ef5, 16081 }, /* Hangul_YeorinHieuh */
+    { 0x00000ed2, 16100 }, /* Hangul_YI */
+    { 0x00000ecb, 16110 }, /* Hangul_YO */
+    { 0x00000ed0, 16120 }, /* Hangul_YU */
+    { 0x0000ff29, 16130 }, /* Hankaku */
+    { 0x000002a6, 16138 }, /* Hcircumflex */
+    { 0x000002b6, 16150 }, /* hcircumflex */
+    { 0x00000aee, 16162 }, /* heart */
+    { 0x00000ce0, 16168 }, /* hebrew_aleph */
+    { 0x00000cf2, 16181 }, /* hebrew_ayin */
+    { 0x00000ce1, 16193 }, /* hebrew_bet */
+    { 0x00000ce1, 16204 }, /* hebrew_beth */
+    { 0x00000ce7, 16216 }, /* hebrew_chet */
+    { 0x00000ce3, 16228 }, /* hebrew_dalet */
+    { 0x00000ce3, 16241 }, /* hebrew_daleth */
+    { 0x00000cdf, 16255 }, /* hebrew_doublelowline */
+    { 0x00000cea, 16276 }, /* hebrew_finalkaph */
+    { 0x00000ced, 16293 }, /* hebrew_finalmem */
+    { 0x00000cef, 16309 }, /* hebrew_finalnun */
+    { 0x00000cf3, 16325 }, /* hebrew_finalpe */
+    { 0x00000cf5, 16340 }, /* hebrew_finalzade */
+    { 0x00000cf5, 16357 }, /* hebrew_finalzadi */
+    { 0x00000ce2, 16374 }, /* hebrew_gimel */
+    { 0x00000ce2, 16387 }, /* hebrew_gimmel */
+    { 0x00000ce4, 16401 }, /* hebrew_he */
+    { 0x00000ce7, 16411 }, /* hebrew_het */
+    { 0x00000ceb, 16422 }, /* hebrew_kaph */
+    { 0x00000cf7, 16434 }, /* hebrew_kuf */
+    { 0x00000cec, 16445 }, /* hebrew_lamed */
+    { 0x00000cee, 16458 }, /* hebrew_mem */
+    { 0x00000cf0, 16469 }, /* hebrew_nun */
+    { 0x00000cf4, 16480 }, /* hebrew_pe */
+    { 0x00000cf7, 16490 }, /* hebrew_qoph */
+    { 0x00000cf8, 16502 }, /* hebrew_resh */
+    { 0x00000cf1, 16514 }, /* hebrew_samech */
+    { 0x00000cf1, 16528 }, /* hebrew_samekh */
+    { 0x00000cf9, 16542 }, /* hebrew_shin */
+    { 0x0000ff7e, 16554 }, /* Hebrew_switch */
+    { 0x00000cfa, 16568 }, /* hebrew_taf */
+    { 0x00000cfa, 16579 }, /* hebrew_taw */
+    { 0x00000ce8, 16590 }, /* hebrew_tet */
+    { 0x00000ce8, 16601 }, /* hebrew_teth */
+    { 0x00000ce5, 16613 }, /* hebrew_waw */
+    { 0x00000ce9, 16624 }, /* hebrew_yod */
+    { 0x00000cf6, 16635 }, /* hebrew_zade */
+    { 0x00000cf6, 16647 }, /* hebrew_zadi */
+    { 0x00000ce6, 16659 }, /* hebrew_zain */
+    { 0x00000ce6, 16671 }, /* hebrew_zayin */
+    { 0x0000ff6a, 16684 }, /* Help */
+    { 0x0000ff23, 16689 }, /* Henkan */
+    { 0x0000ff23, 16696 }, /* Henkan_Mode */
+    { 0x00000ada, 16708 }, /* hexagram */
+    { 0x0000ff25, 16717 }, /* Hiragana */
+    { 0x0000ff27, 16726 }, /* Hiragana_Katakana */
+    { 0x0000ff50, 16744 }, /* Home */
+    { 0x000008a3, 16749 }, /* horizconnector */
+    { 0x000009ef, 16764 }, /* horizlinescan1 */
+    { 0x000009f0, 16779 }, /* horizlinescan3 */
+    { 0x000009f1, 16794 }, /* horizlinescan5 */
+    { 0x000009f2, 16809 }, /* horizlinescan7 */
+    { 0x000009f3, 16824 }, /* horizlinescan9 */
+    { 0x1000ff74, 16839 }, /* hpBackTab */
+    { 0x100000fc, 16849 }, /* hpblock */
+    { 0x1000ff6f, 16857 }, /* hpClearLine */
+    { 0x1000ff73, 16869 }, /* hpDeleteChar */
+    { 0x1000ff71, 16882 }, /* hpDeleteLine */
+    { 0x100000be, 16895 }, /* hpguilder */
+    { 0x1000ff72, 16905 }, /* hpInsertChar */
+    { 0x1000ff70, 16918 }, /* hpInsertLine */
+    { 0x100000ee, 16931 }, /* hpIO */
+    { 0x1000ff75, 16936 }, /* hpKP_BackTab */
+    { 0x100000af, 16949 }, /* hplira */
+    { 0x100000f6, 16956 }, /* hplongminus */
+    { 0x1000ff48, 16968 }, /* hpModelock1 */
+    { 0x1000ff49, 16980 }, /* hpModelock2 */
+    { 0x100000a8, 16992 }, /* hpmute_acute */
+    { 0x100000aa, 17005 }, /* hpmute_asciicircum */
+    { 0x100000ac, 17024 }, /* hpmute_asciitilde */
+    { 0x100000ab, 17042 }, /* hpmute_diaeresis */
+    { 0x100000a9, 17059 }, /* hpmute_grave */
+    { 0x1000ff6c, 17072 }, /* hpReset */
+    { 0x1000ff6d, 17080 }, /* hpSystem */
+    { 0x1000ff6e, 17089 }, /* hpUser */
+    { 0x100000ee, 17096 }, /* hpYdiaeresis */
+    { 0x000002a1, 17109 }, /* Hstroke */
+    { 0x000002b1, 17117 }, /* hstroke */
+    { 0x000009e2, 17125 }, /* ht */
+    { 0x0000ffed, 17128 }, /* Hyper_L */
+    { 0x0000ffee, 17136 }, /* Hyper_R */
+    { 0x000000ad, 17144 }, /* hyphen */
+    { 0x00000049, 17151 }, /* I */
+    { 0x00000069, 17153 }, /* i */
+    { 0x000002a9, 17155 }, /* Iabovedot */
+    { 0x000000cd, 17165 }, /* Iacute */
+    { 0x000000ed, 17172 }, /* iacute */
+    { 0x01001eca, 17179 }, /* Ibelowdot */
+    { 0x01001ecb, 17189 }, /* ibelowdot */
+    { 0x0100012c, 17199 }, /* Ibreve */
+    { 0x0100012d, 17206 }, /* ibreve */
+    { 0x000000ce, 17213 }, /* Icircumflex */
+    { 0x000000ee, 17225 }, /* icircumflex */
+    { 0x000008cf, 17237 }, /* identical */
+    { 0x000000cf, 17247 }, /* Idiaeresis */
+    { 0x000000ef, 17258 }, /* idiaeresis */
+    { 0x000002b9, 17269 }, /* idotless */
+    { 0x000008cd, 17278 }, /* ifonlyif */
+    { 0x000000cc, 17287 }, /* Igrave */
+    { 0x000000ec, 17294 }, /* igrave */
+    { 0x01001ec8, 17301 }, /* Ihook */
+    { 0x01001ec9, 17307 }, /* ihook */
+    { 0x000003cf, 17313 }, /* Imacron */
+    { 0x000003ef, 17321 }, /* imacron */
+    { 0x000008ce, 17329 }, /* implies */
+    { 0x000008da, 17337 }, /* includedin */
+    { 0x000008db, 17348 }, /* includes */
+    { 0x000008c2, 17357 }, /* infinity */
+    { 0x0000ff63, 17366 }, /* Insert */
+    { 0x1000ff72, 17373 }, /* InsertChar */
+    { 0x1000ff70, 17384 }, /* InsertLine */
+    { 0x000008bf, 17395 }, /* integral */
+    { 0x000008dc, 17404 }, /* intersection */
+    { 0x100000ee, 17417 }, /* IO */
+    { 0x000003c7, 17420 }, /* Iogonek */
+    { 0x000003e7, 17428 }, /* iogonek */
+    { 0x0000fe33, 17436 }, /* ISO_Center_Object */
+    { 0x0000fe30, 17454 }, /* ISO_Continuous_Underline */
+    { 0x0000fe31, 17479 }, /* ISO_Discontinuous_Underline */
+    { 0x0000fe32, 17507 }, /* ISO_Emphasize */
+    { 0x0000fe34, 17521 }, /* ISO_Enter */
+    { 0x0000fe2f, 17531 }, /* ISO_Fast_Cursor_Down */
+    { 0x0000fe2c, 17552 }, /* ISO_Fast_Cursor_Left */
+    { 0x0000fe2d, 17573 }, /* ISO_Fast_Cursor_Right */
+    { 0x0000fe2e, 17595 }, /* ISO_Fast_Cursor_Up */
+    { 0x0000fe0c, 17614 }, /* ISO_First_Group */
+    { 0x0000fe0d, 17630 }, /* ISO_First_Group_Lock */
+    { 0x0000fe06, 17651 }, /* ISO_Group_Latch */
+    { 0x0000fe07, 17667 }, /* ISO_Group_Lock */
+    { 0x0000ff7e, 17682 }, /* ISO_Group_Shift */
+    { 0x0000fe0e, 17698 }, /* ISO_Last_Group */
+    { 0x0000fe0f, 17713 }, /* ISO_Last_Group_Lock */
+    { 0x0000fe20, 17733 }, /* ISO_Left_Tab */
+    { 0x0000fe02, 17746 }, /* ISO_Level2_Latch */
+    { 0x0000fe04, 17763 }, /* ISO_Level3_Latch */
+    { 0x0000fe05, 17780 }, /* ISO_Level3_Lock */
+    { 0x0000fe03, 17796 }, /* ISO_Level3_Shift */
+    { 0x0000fe12, 17813 }, /* ISO_Level5_Latch */
+    { 0x0000fe13, 17830 }, /* ISO_Level5_Lock */
+    { 0x0000fe11, 17846 }, /* ISO_Level5_Shift */
+    { 0x0000fe01, 17863 }, /* ISO_Lock */
+    { 0x0000fe22, 17872 }, /* ISO_Move_Line_Down */
+    { 0x0000fe21, 17891 }, /* ISO_Move_Line_Up */
+    { 0x0000fe08, 17908 }, /* ISO_Next_Group */
+    { 0x0000fe09, 17923 }, /* ISO_Next_Group_Lock */
+    { 0x0000fe24, 17943 }, /* ISO_Partial_Line_Down */
+    { 0x0000fe23, 17965 }, /* ISO_Partial_Line_Up */
+    { 0x0000fe25, 17985 }, /* ISO_Partial_Space_Left */
+    { 0x0000fe26, 18008 }, /* ISO_Partial_Space_Right */
+    { 0x0000fe0a, 18032 }, /* ISO_Prev_Group */
+    { 0x0000fe0b, 18047 }, /* ISO_Prev_Group_Lock */
+    { 0x0000fe2b, 18067 }, /* ISO_Release_Both_Margins */
+    { 0x0000fe29, 18092 }, /* ISO_Release_Margin_Left */
+    { 0x0000fe2a, 18116 }, /* ISO_Release_Margin_Right */
+    { 0x0000fe27, 18141 }, /* ISO_Set_Margin_Left */
+    { 0x0000fe28, 18161 }, /* ISO_Set_Margin_Right */
+    { 0x000003a5, 18182 }, /* Itilde */
+    { 0x000003b5, 18189 }, /* itilde */
+    { 0x0000004a, 18196 }, /* J */
+    { 0x0000006a, 18198 }, /* j */
+    { 0x000002ac, 18200 }, /* Jcircumflex */
+    { 0x000002bc, 18212 }, /* jcircumflex */
+    { 0x00000bca, 18224 }, /* jot */
+    { 0x0000004b, 18228 }, /* K */
+    { 0x0000006b, 18230 }, /* k */
+    { 0x000004a7, 18232 }, /* kana_a */
+    { 0x000004b1, 18239 }, /* kana_A */
+    { 0x000004c1, 18246 }, /* kana_CHI */
+    { 0x000004a3, 18255 }, /* kana_closingbracket */
+    { 0x000004a4, 18275 }, /* kana_comma */
+    { 0x000004a5, 18286 }, /* kana_conjunctive */
+    { 0x000004aa, 18303 }, /* kana_e */
+    { 0x000004b4, 18310 }, /* kana_E */
+    { 0x000004cc, 18317 }, /* kana_FU */
+    { 0x000004a1, 18325 }, /* kana_fullstop */
+    { 0x000004ca, 18339 }, /* kana_HA */
+    { 0x000004cd, 18347 }, /* kana_HE */
+    { 0x000004cb, 18355 }, /* kana_HI */
+    { 0x000004ce, 18363 }, /* kana_HO */
+    { 0x000004cc, 18371 }, /* kana_HU */
+    { 0x000004a8, 18379 }, /* kana_i */
+    { 0x000004b2, 18386 }, /* kana_I */
+    { 0x000004b6, 18393 }, /* kana_KA */
+    { 0x000004b9, 18401 }, /* kana_KE */
+    { 0x000004b7, 18409 }, /* kana_KI */
+    { 0x000004ba, 18417 }, /* kana_KO */
+    { 0x000004b8, 18425 }, /* kana_KU */
+    { 0x0000ff2d, 18433 }, /* Kana_Lock */
+    { 0x000004cf, 18443 }, /* kana_MA */
+    { 0x000004d2, 18451 }, /* kana_ME */
+    { 0x000004d0, 18459 }, /* kana_MI */
+    { 0x000004a5, 18467 }, /* kana_middledot */
+    { 0x000004d3, 18482 }, /* kana_MO */
+    { 0x000004d1, 18490 }, /* kana_MU */
+    { 0x000004dd, 18498 }, /* kana_N */
+    { 0x000004c5, 18505 }, /* kana_NA */
+    { 0x000004c8, 18513 }, /* kana_NE */
+    { 0x000004c6, 18521 }, /* kana_NI */
+    { 0x000004c9, 18529 }, /* kana_NO */
+    { 0x000004c7, 18537 }, /* kana_NU */
+    { 0x000004ab, 18545 }, /* kana_o */
+    { 0x000004b5, 18552 }, /* kana_O */
+    { 0x000004a2, 18559 }, /* kana_openingbracket */
+    { 0x000004d7, 18579 }, /* kana_RA */
+    { 0x000004da, 18587 }, /* kana_RE */
+    { 0x000004d8, 18595 }, /* kana_RI */
+    { 0x000004db, 18603 }, /* kana_RO */
+    { 0x000004d9, 18611 }, /* kana_RU */
+    { 0x000004bb, 18619 }, /* kana_SA */
+    { 0x000004be, 18627 }, /* kana_SE */
+    { 0x000004bc, 18635 }, /* kana_SHI */
+    { 0x0000ff2e, 18644 }, /* Kana_Shift */
+    { 0x000004bf, 18655 }, /* kana_SO */
+    { 0x000004bd, 18663 }, /* kana_SU */
+    { 0x0000ff7e, 18671 }, /* kana_switch */
+    { 0x000004c0, 18683 }, /* kana_TA */
+    { 0x000004c3, 18691 }, /* kana_TE */
+    { 0x000004c1, 18699 }, /* kana_TI */
+    { 0x000004c4, 18707 }, /* kana_TO */
+    { 0x000004af, 18715 }, /* kana_tsu */
+    { 0x000004c2, 18724 }, /* kana_TSU */
+    { 0x000004af, 18733 }, /* kana_tu */
+    { 0x000004c2, 18741 }, /* kana_TU */
+    { 0x000004a9, 18749 }, /* kana_u */
+    { 0x000004b3, 18756 }, /* kana_U */
+    { 0x000004dc, 18763 }, /* kana_WA */
+    { 0x000004a6, 18771 }, /* kana_WO */
+    { 0x000004ac, 18779 }, /* kana_ya */
+    { 0x000004d4, 18787 }, /* kana_YA */
+    { 0x000004ae, 18795 }, /* kana_yo */
+    { 0x000004d6, 18803 }, /* kana_YO */
+    { 0x000004ad, 18811 }, /* kana_yu */
+    { 0x000004d5, 18819 }, /* kana_YU */
+    { 0x0000ff21, 18827 }, /* Kanji */
+    { 0x0000ff37, 18833 }, /* Kanji_Bangou */
+    { 0x000003a2, 18846 }, /* kappa */
+    { 0x0000ff26, 18852 }, /* Katakana */
+    { 0x000003d3, 18861 }, /* Kcedilla */
+    { 0x000003f3, 18870 }, /* kcedilla */
+    { 0x00000eff, 18879 }, /* Korean_Won */
+    { 0x0000ffb0, 18890 }, /* KP_0 */
+    { 0x0000ffb1, 18895 }, /* KP_1 */
+    { 0x0000ffb2, 18900 }, /* KP_2 */
+    { 0x0000ffb3, 18905 }, /* KP_3 */
+    { 0x0000ffb4, 18910 }, /* KP_4 */
+    { 0x0000ffb5, 18915 }, /* KP_5 */
+    { 0x0000ffb6, 18920 }, /* KP_6 */
+    { 0x0000ffb7, 18925 }, /* KP_7 */
+    { 0x0000ffb8, 18930 }, /* KP_8 */
+    { 0x0000ffb9, 18935 }, /* KP_9 */
+    { 0x0000ffab, 18940 }, /* KP_Add */
+    { 0x1000ff75, 18947 }, /* KP_BackTab */
+    { 0x0000ff9d, 18958 }, /* KP_Begin */
+    { 0x0000ffae, 18967 }, /* KP_Decimal */
+    { 0x0000ff9f, 18978 }, /* KP_Delete */
+    { 0x0000ffaf, 18988 }, /* KP_Divide */
+    { 0x0000ff99, 18998 }, /* KP_Down */
+    { 0x0000ff9c, 19006 }, /* KP_End */
+    { 0x0000ff8d, 19013 }, /* KP_Enter */
+    { 0x0000ffbd, 19022 }, /* KP_Equal */
+    { 0x0000ff91, 19031 }, /* KP_F1 */
+    { 0x0000ff92, 19037 }, /* KP_F2 */
+    { 0x0000ff93, 19043 }, /* KP_F3 */
+    { 0x0000ff94, 19049 }, /* KP_F4 */
+    { 0x0000ff95, 19055 }, /* KP_Home */
+    { 0x0000ff9e, 19063 }, /* KP_Insert */
+    { 0x0000ff96, 19073 }, /* KP_Left */
+    { 0x0000ffaa, 19081 }, /* KP_Multiply */
+    { 0x0000ff9b, 19093 }, /* KP_Next */
+    { 0x0000ff9b, 19101 }, /* KP_Page_Down */
+    { 0x0000ff9a, 19114 }, /* KP_Page_Up */
+    { 0x0000ff9a, 19125 }, /* KP_Prior */
+    { 0x0000ff98, 19134 }, /* KP_Right */
+    { 0x0000ffac, 19143 }, /* KP_Separator */
+    { 0x0000ff80, 19156 }, /* KP_Space */
+    { 0x0000ffad, 19165 }, /* KP_Subtract */
+    { 0x0000ff89, 19177 }, /* KP_Tab */
+    { 0x0000ff97, 19184 }, /* KP_Up */
+    { 0x000003a2, 19190 }, /* kra */
+    { 0x0000004c, 19194 }, /* L */
+    { 0x0000006c, 19196 }, /* l */
+    { 0x0000ffc8, 19198 }, /* L1 */
+    { 0x0000ffd1, 19201 }, /* L10 */
+    { 0x0000ffc9, 19205 }, /* L2 */
+    { 0x0000ffca, 19208 }, /* L3 */
+    { 0x0000ffcb, 19211 }, /* L4 */
+    { 0x0000ffcc, 19214 }, /* L5 */
+    { 0x0000ffcd, 19217 }, /* L6 */
+    { 0x0000ffce, 19220 }, /* L7 */
+    { 0x0000ffcf, 19223 }, /* L8 */
+    { 0x0000ffd0, 19226 }, /* L9 */
+    { 0x000001c5, 19229 }, /* Lacute */
+    { 0x000001e5, 19236 }, /* lacute */
+    { 0x0000fed4, 19243 }, /* Last_Virtual_Screen */
+    { 0x00000ad9, 19263 }, /* latincross */
+    { 0x01001e36, 19274 }, /* Lbelowdot */
+    { 0x01001e37, 19284 }, /* lbelowdot */
+    { 0x000001a5, 19294 }, /* Lcaron */
+    { 0x000001b5, 19301 }, /* lcaron */
+    { 0x000003a6, 19308 }, /* Lcedilla */
+    { 0x000003b6, 19317 }, /* lcedilla */
+    { 0x0000ff51, 19326 }, /* Left */
+    { 0x00000abc, 19331 }, /* leftanglebracket */
+    { 0x000008fb, 19348 }, /* leftarrow */
+    { 0x00000ba3, 19358 }, /* leftcaret */
+    { 0x00000ad2, 19368 }, /* leftdoublequotemark */
+    { 0x000008af, 19388 }, /* leftmiddlecurlybrace */
+    { 0x00000acc, 19409 }, /* leftopentriangle */
+    { 0x00000aea, 19426 }, /* leftpointer */
+    { 0x000008a1, 19438 }, /* leftradical */
+    { 0x00000bda, 19450 }, /* leftshoe */
+    { 0x00000ad0, 19459 }, /* leftsinglequotemark */
+    { 0x000009f4, 19479 }, /* leftt */
+    { 0x00000bdc, 19485 }, /* lefttack */
+    { 0x0000003c, 19494 }, /* less */
+    { 0x000008bc, 19499 }, /* lessthanequal */
+    { 0x000009e5, 19513 }, /* lf */
+    { 0x0000ff0a, 19516 }, /* Linefeed */
+    { 0x100000af, 19525 }, /* lira */
+    { 0x010020a4, 19530 }, /* LiraSign */
+    { 0x000008de, 19539 }, /* logicaland */
+    { 0x000008df, 19550 }, /* logicalor */
+    { 0x100000f6, 19560 }, /* longminus */
+    { 0x000009ed, 19570 }, /* lowleftcorner */
+    { 0x000009ea, 19584 }, /* lowrightcorner */
+    { 0x000001a3, 19599 }, /* Lstroke */
+    { 0x000001b3, 19607 }, /* lstroke */
+    { 0x0000004d, 19615 }, /* M */
+    { 0x0000006d, 19617 }, /* m */
+    { 0x01001e40, 19619 }, /* Mabovedot */
+    { 0x01001e41, 19629 }, /* mabovedot */
+    { 0x000006a5, 19639 }, /* Macedonia_dse */
+    { 0x000006b5, 19653 }, /* Macedonia_DSE */
+    { 0x000006a2, 19667 }, /* Macedonia_gje */
+    { 0x000006b2, 19681 }, /* Macedonia_GJE */
+    { 0x000006ac, 19695 }, /* Macedonia_kje */
+    { 0x000006bc, 19709 }, /* Macedonia_KJE */
+    { 0x000000af, 19723 }, /* macron */
+    { 0x0000ff3e, 19730 }, /* Mae_Koho */
+    { 0x00000af7, 19739 }, /* malesymbol */
+    { 0x00000af0, 19750 }, /* maltesecross */
+    { 0x00000abf, 19763 }, /* marker */
+    { 0x000000ba, 19770 }, /* masculine */
+    { 0x0000ff2c, 19780 }, /* Massyo */
+    { 0x0000ff67, 19787 }, /* Menu */
+    { 0x0000ffe7, 19792 }, /* Meta_L */
+    { 0x0000ffe8, 19799 }, /* Meta_R */
+    { 0x010020a5, 19806 }, /* MillSign */
+    { 0x0000002d, 19815 }, /* minus */
+    { 0x00000ad6, 19821 }, /* minutes */
+    { 0x0000ff7e, 19829 }, /* Mode_switch */
+    { 0x0000fe77, 19841 }, /* MouseKeys_Accel_Enable */
+    { 0x0000fe76, 19864 }, /* MouseKeys_Enable */
+    { 0x000000b5, 19881 }, /* mu */
+    { 0x0000ff22, 19884 }, /* Muhenkan */
+    { 0x0000ff20, 19893 }, /* Multi_key */
+    { 0x0000ff3d, 19903 }, /* MultipleCandidate */
+    { 0x000000d7, 19921 }, /* multiply */
+    { 0x00000af6, 19930 }, /* musicalflat */
+    { 0x00000af5, 19942 }, /* musicalsharp */
+    { 0x100000a8, 19955 }, /* mute_acute */
+    { 0x100000aa, 19966 }, /* mute_asciicircum */
+    { 0x100000ac, 19983 }, /* mute_asciitilde */
+    { 0x100000ab, 19999 }, /* mute_diaeresis */
+    { 0x100000a9, 20014 }, /* mute_grave */
+    { 0x0000004e, 20025 }, /* N */
+    { 0x0000006e, 20027 }, /* n */
+    { 0x000008c5, 20029 }, /* nabla */
+    { 0x000001d1, 20035 }, /* Nacute */
+    { 0x000001f1, 20042 }, /* nacute */
+    { 0x010020a6, 20049 }, /* NairaSign */
+    { 0x000001d2, 20059 }, /* Ncaron */
+    { 0x000001f2, 20066 }, /* ncaron */
+    { 0x000003d1, 20073 }, /* Ncedilla */
+    { 0x000003f1, 20082 }, /* ncedilla */
+    { 0x010020aa, 20091 }, /* NewSheqelSign */
+    { 0x0000ff56, 20105 }, /* Next */
+    { 0x0000fed2, 20110 }, /* Next_Virtual_Screen */
+    { 0x01002089, 20130 }, /* ninesubscript */
+    { 0x01002079, 20144 }, /* ninesuperior */
+    { 0x000009e8, 20157 }, /* nl */
+    { 0x000000a0, 20160 }, /* nobreakspace */
+    { 0x00000000, 20173 }, /* NoSymbol */
+    { 0x01002247, 20182 }, /* notapproxeq */
+    { 0x01002209, 20194 }, /* notelementof */
+    { 0x000008bd, 20207 }, /* notequal */
+    { 0x01002262, 20216 }, /* notidentical */
+    { 0x000000ac, 20229 }, /* notsign */
+    { 0x000000d1, 20237 }, /* Ntilde */
+    { 0x000000f1, 20244 }, /* ntilde */
+    { 0x0000ff7f, 20251 }, /* Num_Lock */
+    { 0x00000023, 20260 }, /* numbersign */
+    { 0x000006b0, 20271 }, /* numerosign */
+    { 0x0000004f, 20282 }, /* O */
+    { 0x0000006f, 20284 }, /* o */
+    { 0x000000d3, 20286 }, /* Oacute */
+    { 0x000000f3, 20293 }, /* oacute */
+    { 0x0100019f, 20300 }, /* Obarred */
+    { 0x01000275, 20308 }, /* obarred */
+    { 0x01001ecc, 20316 }, /* Obelowdot */
+    { 0x01001ecd, 20326 }, /* obelowdot */
+    { 0x010001d1, 20336 }, /* Ocaron */
+    { 0x010001d2, 20343 }, /* ocaron */
+    { 0x000000d4, 20350 }, /* Ocircumflex */
+    { 0x000000f4, 20362 }, /* ocircumflex */
+    { 0x01001ed0, 20374 }, /* Ocircumflexacute */
+    { 0x01001ed1, 20391 }, /* ocircumflexacute */
+    { 0x01001ed8, 20408 }, /* Ocircumflexbelowdot */
+    { 0x01001ed9, 20428 }, /* ocircumflexbelowdot */
+    { 0x01001ed2, 20448 }, /* Ocircumflexgrave */
+    { 0x01001ed3, 20465 }, /* ocircumflexgrave */
+    { 0x01001ed4, 20482 }, /* Ocircumflexhook */
+    { 0x01001ed5, 20498 }, /* ocircumflexhook */
+    { 0x01001ed6, 20514 }, /* Ocircumflextilde */
+    { 0x01001ed7, 20531 }, /* ocircumflextilde */
+    { 0x000000d6, 20548 }, /* Odiaeresis */
+    { 0x000000f6, 20559 }, /* odiaeresis */
+    { 0x000001d5, 20570 }, /* Odoubleacute */
+    { 0x000001f5, 20583 }, /* odoubleacute */
+    { 0x000013bc, 20596 }, /* OE */
+    { 0x000013bd, 20599 }, /* oe */
+    { 0x000001b2, 20602 }, /* ogonek */
+    { 0x000000d2, 20609 }, /* Ograve */
+    { 0x000000f2, 20616 }, /* ograve */
+    { 0x01001ece, 20623 }, /* Ohook */
+    { 0x01001ecf, 20629 }, /* ohook */
+    { 0x010001a0, 20635 }, /* Ohorn */
+    { 0x010001a1, 20641 }, /* ohorn */
+    { 0x01001eda, 20647 }, /* Ohornacute */
+    { 0x01001edb, 20658 }, /* ohornacute */
+    { 0x01001ee2, 20669 }, /* Ohornbelowdot */
+    { 0x01001ee3, 20683 }, /* ohornbelowdot */
+    { 0x01001edc, 20697 }, /* Ohorngrave */
+    { 0x01001edd, 20708 }, /* ohorngrave */
+    { 0x01001ede, 20719 }, /* Ohornhook */
+    { 0x01001edf, 20729 }, /* ohornhook */
+    { 0x01001ee0, 20739 }, /* Ohorntilde */
+    { 0x01001ee1, 20750 }, /* ohorntilde */
+    { 0x000003d2, 20761 }, /* Omacron */
+    { 0x000003f2, 20769 }, /* omacron */
+    { 0x00000ac3, 20777 }, /* oneeighth */
+    { 0x00000ab2, 20787 }, /* onefifth */
+    { 0x000000bd, 20796 }, /* onehalf */
+    { 0x000000bc, 20804 }, /* onequarter */
+    { 0x00000ab6, 20815 }, /* onesixth */
+    { 0x01002081, 20824 }, /* onesubscript */
+    { 0x000000b9, 20837 }, /* onesuperior */
+    { 0x00000ab0, 20849 }, /* onethird */
+    { 0x000000d8, 20858 }, /* Ooblique */
+    { 0x000000f8, 20867 }, /* ooblique */
+    { 0x00000ae2, 20876 }, /* openrectbullet */
+    { 0x00000ae5, 20891 }, /* openstar */
+    { 0x00000ae4, 20900 }, /* opentribulletdown */
+    { 0x00000ae3, 20918 }, /* opentribulletup */
+    { 0x000000aa, 20934 }, /* ordfeminine */
+    { 0x1004ff44, 20946 }, /* osfActivate */
+    { 0x1004ff31, 20958 }, /* osfAddMode */
+    { 0x1004ff08, 20969 }, /* osfBackSpace */
+    { 0x1004ff07, 20982 }, /* osfBackTab */
+    { 0x1004ff5a, 20993 }, /* osfBeginData */
+    { 0x1004ff58, 21006 }, /* osfBeginLine */
+    { 0x1004ff69, 21019 }, /* osfCancel */
+    { 0x1004ff0b, 21029 }, /* osfClear */
+    { 0x1004ff02, 21038 }, /* osfCopy */
+    { 0x1004ff03, 21046 }, /* osfCut */
+    { 0x1004ffff, 21053 }, /* osfDelete */
+    { 0x1004ff72, 21063 }, /* osfDeselectAll */
+    { 0x1004ff54, 21078 }, /* osfDown */
+    { 0x1004ff59, 21086 }, /* osfEndData */
+    { 0x1004ff57, 21097 }, /* osfEndLine */
+    { 0x1004ff1b, 21108 }, /* osfEscape */
+    { 0x1004ff74, 21118 }, /* osfExtend */
+    { 0x1004ff6a, 21128 }, /* osfHelp */
+    { 0x1004ff63, 21136 }, /* osfInsert */
+    { 0x1004ff51, 21146 }, /* osfLeft */
+    { 0x1004ff67, 21154 }, /* osfMenu */
+    { 0x1004ff45, 21162 }, /* osfMenuBar */
+    { 0x1004ff5e, 21173 }, /* osfNextField */
+    { 0x1004ff5c, 21186 }, /* osfNextMenu */
+    { 0x1004ff42, 21198 }, /* osfPageDown */
+    { 0x1004ff40, 21210 }, /* osfPageLeft */
+    { 0x1004ff43, 21222 }, /* osfPageRight */
+    { 0x1004ff41, 21235 }, /* osfPageUp */
+    { 0x1004ff04, 21245 }, /* osfPaste */
+    { 0x1004ff5d, 21254 }, /* osfPrevField */
+    { 0x1004ff5b, 21267 }, /* osfPrevMenu */
+    { 0x1004ff32, 21279 }, /* osfPrimaryPaste */
+    { 0x1004ff33, 21295 }, /* osfQuickPaste */
+    { 0x1004ff73, 21309 }, /* osfReselect */
+    { 0x1004ff78, 21321 }, /* osfRestore */
+    { 0x1004ff53, 21332 }, /* osfRight */
+    { 0x1004ff60, 21341 }, /* osfSelect */
+    { 0x1004ff71, 21351 }, /* osfSelectAll */
+    { 0x1004ff65, 21364 }, /* osfUndo */
+    { 0x1004ff52, 21372 }, /* osfUp */
+    { 0x000000d8, 21378 }, /* Oslash */
+    { 0x000000f8, 21385 }, /* oslash */
+    { 0x000000d5, 21392 }, /* Otilde */
+    { 0x000000f5, 21399 }, /* otilde */
+    { 0x00000bc0, 21406 }, /* overbar */
+    { 0x0000fe78, 21414 }, /* Overlay1_Enable */
+    { 0x0000fe79, 21430 }, /* Overlay2_Enable */
+    { 0x0000047e, 21446 }, /* overline */
+    { 0x00000050, 21455 }, /* P */
+    { 0x00000070, 21457 }, /* p */
+    { 0x01001e56, 21459 }, /* Pabovedot */
+    { 0x01001e57, 21469 }, /* pabovedot */
+    { 0x0000ff56, 21479 }, /* Page_Down */
+    { 0x0000ff55, 21489 }, /* Page_Up */
+    { 0x000000b6, 21497 }, /* paragraph */
+    { 0x00000028, 21507 }, /* parenleft */
+    { 0x00000029, 21517 }, /* parenright */
+    { 0x01002202, 21528 }, /* partdifferential */
+    { 0x000008ef, 21545 }, /* partialderivative */
+    { 0x0000ff13, 21563 }, /* Pause */
+    { 0x00000025, 21569 }, /* percent */
+    { 0x0000002e, 21577 }, /* period */
+    { 0x000000b7, 21584 }, /* periodcentered */
+    { 0x00000ad5, 21599 }, /* permille */
+    { 0x010020a7, 21608 }, /* PesetaSign */
+    { 0x00000afb, 21619 }, /* phonographcopyright */
+    { 0x0000002b, 21639 }, /* plus */
+    { 0x000000b1, 21644 }, /* plusminus */
+    { 0x0000fefa, 21654 }, /* Pointer_Accelerate */
+    { 0x0000fee9, 21673 }, /* Pointer_Button1 */
+    { 0x0000feea, 21689 }, /* Pointer_Button2 */
+    { 0x0000feeb, 21705 }, /* Pointer_Button3 */
+    { 0x0000feec, 21721 }, /* Pointer_Button4 */
+    { 0x0000feed, 21737 }, /* Pointer_Button5 */
+    { 0x0000fee8, 21753 }, /* Pointer_Button_Dflt */
+    { 0x0000feef, 21773 }, /* Pointer_DblClick1 */
+    { 0x0000fef0, 21791 }, /* Pointer_DblClick2 */
+    { 0x0000fef1, 21809 }, /* Pointer_DblClick3 */
+    { 0x0000fef2, 21827 }, /* Pointer_DblClick4 */
+    { 0x0000fef3, 21845 }, /* Pointer_DblClick5 */
+    { 0x0000feee, 21863 }, /* Pointer_DblClick_Dflt */
+    { 0x0000fefb, 21885 }, /* Pointer_DfltBtnNext */
+    { 0x0000fefc, 21905 }, /* Pointer_DfltBtnPrev */
+    { 0x0000fee3, 21925 }, /* Pointer_Down */
+    { 0x0000fee6, 21938 }, /* Pointer_DownLeft */
+    { 0x0000fee7, 21955 }, /* Pointer_DownRight */
+    { 0x0000fef5, 21973 }, /* Pointer_Drag1 */
+    { 0x0000fef6, 21987 }, /* Pointer_Drag2 */
+    { 0x0000fef7, 22001 }, /* Pointer_Drag3 */
+    { 0x0000fef8, 22015 }, /* Pointer_Drag4 */
+    { 0x0000fefd, 22029 }, /* Pointer_Drag5 */
+    { 0x0000fef4, 22043 }, /* Pointer_Drag_Dflt */
+    { 0x0000fef9, 22061 }, /* Pointer_EnableKeys */
+    { 0x0000fee0, 22080 }, /* Pointer_Left */
+    { 0x0000fee1, 22093 }, /* Pointer_Right */
+    { 0x0000fee2, 22107 }, /* Pointer_Up */
+    { 0x0000fee4, 22118 }, /* Pointer_UpLeft */
+    { 0x0000fee5, 22133 }, /* Pointer_UpRight */
+    { 0x00000ad4, 22149 }, /* prescription */
+    { 0x0000fed1, 22162 }, /* Prev_Virtual_Screen */
+    { 0x0000ff3e, 22182 }, /* PreviousCandidate */
+    { 0x0000ff61, 22200 }, /* Print */
+    { 0x0000ff55, 22206 }, /* Prior */
+    { 0x000004b0, 22212 }, /* prolongedsound */
+    { 0x00000aa6, 22227 }, /* punctspace */
+    { 0x00000051, 22238 }, /* Q */
+    { 0x00000071, 22240 }, /* q */
+    { 0x00000bcc, 22242 }, /* quad */
+    { 0x0000003f, 22247 }, /* question */
+    { 0x000000bf, 22256 }, /* questiondown */
+    { 0x00000022, 22269 }, /* quotedbl */
+    { 0x00000060, 22278 }, /* quoteleft */
+    { 0x00000027, 22288 }, /* quoteright */
+    { 0x00000052, 22299 }, /* R */
+    { 0x00000072, 22301 }, /* r */
+    { 0x0000ffd2, 22303 }, /* R1 */
+    { 0x0000ffdb, 22306 }, /* R10 */
+    { 0x0000ffdc, 22310 }, /* R11 */
+    { 0x0000ffdd, 22314 }, /* R12 */
+    { 0x0000ffde, 22318 }, /* R13 */
+    { 0x0000ffdf, 22322 }, /* R14 */
+    { 0x0000ffe0, 22326 }, /* R15 */
+    { 0x0000ffd3, 22330 }, /* R2 */
+    { 0x0000ffd4, 22333 }, /* R3 */
+    { 0x0000ffd5, 22336 }, /* R4 */
+    { 0x0000ffd6, 22339 }, /* R5 */
+    { 0x0000ffd7, 22342 }, /* R6 */
+    { 0x0000ffd8, 22345 }, /* R7 */
+    { 0x0000ffd9, 22348 }, /* R8 */
+    { 0x0000ffda, 22351 }, /* R9 */
+    { 0x000001c0, 22354 }, /* Racute */
+    { 0x000001e0, 22361 }, /* racute */
+    { 0x000008d6, 22368 }, /* radical */
+    { 0x000001d8, 22376 }, /* Rcaron */
+    { 0x000001f8, 22383 }, /* rcaron */
+    { 0x000003a3, 22390 }, /* Rcedilla */
+    { 0x000003b3, 22399 }, /* rcedilla */
+    { 0x0000ff66, 22408 }, /* Redo */
+    { 0x000000ae, 22413 }, /* registered */
+    { 0x0000fe72, 22424 }, /* RepeatKeys_Enable */
+    { 0x1000ff6c, 22442 }, /* Reset */
+    { 0x0000ff0d, 22448 }, /* Return */
+    { 0x0000ff53, 22455 }, /* Right */
+    { 0x00000abe, 22461 }, /* rightanglebracket */
+    { 0x000008fd, 22479 }, /* rightarrow */
+    { 0x00000ba6, 22490 }, /* rightcaret */
+    { 0x00000ad3, 22501 }, /* rightdoublequotemark */
+    { 0x000008b0, 22522 }, /* rightmiddlecurlybrace */
+    { 0x000008b7, 22544 }, /* rightmiddlesummation */
+    { 0x00000acd, 22565 }, /* rightopentriangle */
+    { 0x00000aeb, 22583 }, /* rightpointer */
+    { 0x00000bd8, 22596 }, /* rightshoe */
+    { 0x00000ad1, 22606 }, /* rightsinglequotemark */
+    { 0x000009f5, 22627 }, /* rightt */
+    { 0x00000bfc, 22634 }, /* righttack */
+    { 0x0000ff24, 22644 }, /* Romaji */
+    { 0x010020a8, 22651 }, /* RupeeSign */
+    { 0x00000053, 22661 }, /* S */
+    { 0x00000073, 22663 }, /* s */
+    { 0x01001e60, 22665 }, /* Sabovedot */
+    { 0x01001e61, 22675 }, /* sabovedot */
+    { 0x000001a6, 22685 }, /* Sacute */
+    { 0x000001b6, 22692 }, /* sacute */
+    { 0x000001a9, 22699 }, /* Scaron */
+    { 0x000001b9, 22706 }, /* scaron */
+    { 0x000001aa, 22713 }, /* Scedilla */
+    { 0x000001ba, 22722 }, /* scedilla */
+    { 0x0100018f, 22731 }, /* SCHWA */
+    { 0x01000259, 22737 }, /* schwa */
+    { 0x000002de, 22743 }, /* Scircumflex */
+    { 0x000002fe, 22755 }, /* scircumflex */
+    { 0x0000ff7e, 22767 }, /* script_switch */
+    { 0x0000ff14, 22781 }, /* Scroll_Lock */
+    { 0x00000ad7, 22793 }, /* seconds */
+    { 0x000000a7, 22801 }, /* section */
+    { 0x0000ff60, 22809 }, /* Select */
+    { 0x0000003b, 22816 }, /* semicolon */
+    { 0x000004df, 22826 }, /* semivoicedsound */
+    { 0x000006a1, 22842 }, /* Serbian_dje */
+    { 0x000006b1, 22854 }, /* Serbian_DJE */
+    { 0x000006af, 22866 }, /* Serbian_dze */
+    { 0x000006bf, 22878 }, /* Serbian_DZE */
+    { 0x000006a8, 22890 }, /* Serbian_je */
+    { 0x000006b8, 22901 }, /* Serbian_JE */
+    { 0x000006a9, 22912 }, /* Serbian_lje */
+    { 0x000006b9, 22924 }, /* Serbian_LJE */
+    { 0x000006aa, 22936 }, /* Serbian_nje */
+    { 0x000006ba, 22948 }, /* Serbian_NJE */
+    { 0x000006ab, 22960 }, /* Serbian_tshe */
+    { 0x000006bb, 22973 }, /* Serbian_TSHE */
+    { 0x00000ac6, 22986 }, /* seveneighths */
+    { 0x01002087, 22999 }, /* sevensubscript */
+    { 0x01002077, 23014 }, /* sevensuperior */
+    { 0x0000ffe1, 23028 }, /* Shift_L */
+    { 0x0000ffe6, 23036 }, /* Shift_Lock */
+    { 0x0000ffe2, 23047 }, /* Shift_R */
+    { 0x00000aca, 23055 }, /* signaturemark */
+    { 0x00000aac, 23069 }, /* signifblank */
+    { 0x000008c9, 23081 }, /* similarequal */
+    { 0x0000ff3c, 23094 }, /* SingleCandidate */
+    { 0x00000afd, 23110 }, /* singlelowquotemark */
+    { 0x01000d85, 23129 }, /* Sinh_a */
+    { 0x01000d86, 23136 }, /* Sinh_aa */
+    { 0x01000dcf, 23144 }, /* Sinh_aa2 */
+    { 0x01000d87, 23153 }, /* Sinh_ae */
+    { 0x01000dd0, 23161 }, /* Sinh_ae2 */
+    { 0x01000d88, 23170 }, /* Sinh_aee */
+    { 0x01000dd1, 23179 }, /* Sinh_aee2 */
+    { 0x01000d93, 23189 }, /* Sinh_ai */
+    { 0x01000ddb, 23197 }, /* Sinh_ai2 */
+    { 0x01000dca, 23206 }, /* Sinh_al */
+    { 0x01000d96, 23214 }, /* Sinh_au */
+    { 0x01000dde, 23222 }, /* Sinh_au2 */
+    { 0x01000db6, 23231 }, /* Sinh_ba */
+    { 0x01000db7, 23239 }, /* Sinh_bha */
+    { 0x01000da0, 23248 }, /* Sinh_ca */
+    { 0x01000da1, 23256 }, /* Sinh_cha */
+    { 0x01000da9, 23265 }, /* Sinh_dda */
+    { 0x01000daa, 23274 }, /* Sinh_ddha */
+    { 0x01000daf, 23284 }, /* Sinh_dha */
+    { 0x01000db0, 23293 }, /* Sinh_dhha */
+    { 0x01000d91, 23303 }, /* Sinh_e */
+    { 0x01000dd9, 23310 }, /* Sinh_e2 */
+    { 0x01000d92, 23318 }, /* Sinh_ee */
+    { 0x01000dda, 23326 }, /* Sinh_ee2 */
+    { 0x01000dc6, 23335 }, /* Sinh_fa */
+    { 0x01000d9c, 23343 }, /* Sinh_ga */
+    { 0x01000d9d, 23351 }, /* Sinh_gha */
+    { 0x01000d83, 23360 }, /* Sinh_h2 */
+    { 0x01000dc4, 23368 }, /* Sinh_ha */
+    { 0x01000d89, 23376 }, /* Sinh_i */
+    { 0x01000dd2, 23383 }, /* Sinh_i2 */
+    { 0x01000d8a, 23391 }, /* Sinh_ii */
+    { 0x01000dd3, 23399 }, /* Sinh_ii2 */
+    { 0x01000da2, 23408 }, /* Sinh_ja */
+    { 0x01000da3, 23416 }, /* Sinh_jha */
+    { 0x01000da5, 23425 }, /* Sinh_jnya */
+    { 0x01000d9a, 23435 }, /* Sinh_ka */
+    { 0x01000d9b, 23443 }, /* Sinh_kha */
+    { 0x01000df4, 23452 }, /* Sinh_kunddaliya */
+    { 0x01000dbd, 23468 }, /* Sinh_la */
+    { 0x01000dc5, 23476 }, /* Sinh_lla */
+    { 0x01000d8f, 23485 }, /* Sinh_lu */
+    { 0x01000ddf, 23493 }, /* Sinh_lu2 */
+    { 0x01000d90, 23502 }, /* Sinh_luu */
+    { 0x01000df3, 23511 }, /* Sinh_luu2 */
+    { 0x01000db8, 23521 }, /* Sinh_ma */
+    { 0x01000db9, 23529 }, /* Sinh_mba */
+    { 0x01000db1, 23538 }, /* Sinh_na */
+    { 0x01000dac, 23546 }, /* Sinh_ndda */
+    { 0x01000db3, 23556 }, /* Sinh_ndha */
+    { 0x01000d82, 23566 }, /* Sinh_ng */
+    { 0x01000d9e, 23574 }, /* Sinh_ng2 */
+    { 0x01000d9f, 23583 }, /* Sinh_nga */
+    { 0x01000da6, 23592 }, /* Sinh_nja */
+    { 0x01000dab, 23601 }, /* Sinh_nna */
+    { 0x01000da4, 23610 }, /* Sinh_nya */
+    { 0x01000d94, 23619 }, /* Sinh_o */
+    { 0x01000ddc, 23626 }, /* Sinh_o2 */
+    { 0x01000d95, 23634 }, /* Sinh_oo */
+    { 0x01000ddd, 23642 }, /* Sinh_oo2 */
+    { 0x01000db4, 23651 }, /* Sinh_pa */
+    { 0x01000db5, 23659 }, /* Sinh_pha */
+    { 0x01000dbb, 23668 }, /* Sinh_ra */
+    { 0x01000d8d, 23676 }, /* Sinh_ri */
+    { 0x01000d8e, 23684 }, /* Sinh_rii */
+    { 0x01000dd8, 23693 }, /* Sinh_ru2 */
+    { 0x01000df2, 23702 }, /* Sinh_ruu2 */
+    { 0x01000dc3, 23712 }, /* Sinh_sa */
+    { 0x01000dc1, 23720 }, /* Sinh_sha */
+    { 0x01000dc2, 23729 }, /* Sinh_ssha */
+    { 0x01000dad, 23739 }, /* Sinh_tha */
+    { 0x01000dae, 23748 }, /* Sinh_thha */
+    { 0x01000da7, 23758 }, /* Sinh_tta */
+    { 0x01000da8, 23767 }, /* Sinh_ttha */
+    { 0x01000d8b, 23777 }, /* Sinh_u */
+    { 0x01000dd4, 23784 }, /* Sinh_u2 */
+    { 0x01000d8c, 23792 }, /* Sinh_uu */
+    { 0x01000dd6, 23800 }, /* Sinh_uu2 */
+    { 0x01000dc0, 23809 }, /* Sinh_va */
+    { 0x01000dba, 23817 }, /* Sinh_ya */
+    { 0x01002086, 23825 }, /* sixsubscript */
+    { 0x01002076, 23838 }, /* sixsuperior */
+    { 0x0000002f, 23850 }, /* slash */
+    { 0x0000fe73, 23856 }, /* SlowKeys_Enable */
+    { 0x000009e0, 23872 }, /* soliddiamond */
+    { 0x00000020, 23885 }, /* space */
+    { 0x0100221a, 23891 }, /* squareroot */
+    { 0x000000df, 23902 }, /* ssharp */
+    { 0x000000a3, 23909 }, /* sterling */
+    { 0x0000fe75, 23918 }, /* StickyKeys_Enable */
+    { 0x01002263, 23936 }, /* stricteq */
+    { 0x0000ff66, 23945 }, /* SunAgain */
+    { 0x0000ff7e, 23954 }, /* SunAltGraph */
+    { 0x1005ff77, 23966 }, /* SunAudioLowerVolume */
+    { 0x1005ff78, 23986 }, /* SunAudioMute */
+    { 0x1005ff79, 23999 }, /* SunAudioRaiseVolume */
+    { 0x0000ff20, 24019 }, /* SunCompose */
+    { 0x1005ff72, 24030 }, /* SunCopy */
+    { 0x1005ff75, 24038 }, /* SunCut */
+    { 0x1005ff10, 24045 }, /* SunF36 */
+    { 0x1005ff11, 24052 }, /* SunF37 */
+    { 0x1005ff03, 24059 }, /* SunFA_Acute */
+    { 0x1005ff05, 24071 }, /* SunFA_Cedilla */
+    { 0x1005ff01, 24085 }, /* SunFA_Circum */
+    { 0x1005ff04, 24098 }, /* SunFA_Diaeresis */
+    { 0x1005ff00, 24114 }, /* SunFA_Grave */
+    { 0x1005ff02, 24126 }, /* SunFA_Tilde */
+    { 0x0000ff68, 24138 }, /* SunFind */
+    { 0x1005ff71, 24146 }, /* SunFront */
+    { 0x1005ff73, 24155 }, /* SunOpen */
+    { 0x0000ff56, 24163 }, /* SunPageDown */
+    { 0x0000ff55, 24175 }, /* SunPageUp */
+    { 0x1005ff74, 24185 }, /* SunPaste */
+    { 0x1005ff76, 24194 }, /* SunPowerSwitch */
+    { 0x1005ff7d, 24209 }, /* SunPowerSwitchShift */
+    { 0x0000ff61, 24229 }, /* SunPrint_Screen */
+    { 0x1005ff70, 24245 }, /* SunProps */
+    { 0x0000ff69, 24254 }, /* SunStop */
+    { 0x1005ff60, 24262 }, /* SunSys_Req */
+    { 0x0000ff65, 24273 }, /* SunUndo */
+    { 0x1005ff7a, 24281 }, /* SunVideoDegauss */
+    { 0x1005ff7b, 24297 }, /* SunVideoLowerBrightness */
+    { 0x1005ff7c, 24321 }, /* SunVideoRaiseBrightness */
+    { 0x0000ffeb, 24345 }, /* Super_L */
+    { 0x0000ffec, 24353 }, /* Super_R */
+    { 0x0000ff15, 24361 }, /* Sys_Req */
+    { 0x1000ff6d, 24369 }, /* System */
+    { 0x00000054, 24376 }, /* T */
+    { 0x00000074, 24378 }, /* t */
+    { 0x0000ff09, 24380 }, /* Tab */
+    { 0x01001e6a, 24384 }, /* Tabovedot */
+    { 0x01001e6b, 24394 }, /* tabovedot */
+    { 0x000001ab, 24404 }, /* Tcaron */
+    { 0x000001bb, 24411 }, /* tcaron */
+    { 0x000001de, 24418 }, /* Tcedilla */
+    { 0x000001fe, 24427 }, /* tcedilla */
+    { 0x00000af9, 24436 }, /* telephone */
+    { 0x00000afa, 24446 }, /* telephonerecorder */
+    { 0x0000fed5, 24464 }, /* Terminate_Server */
+    { 0x00000ddf, 24481 }, /* Thai_baht */
+    { 0x00000dba, 24491 }, /* Thai_bobaimai */
+    { 0x00000da8, 24505 }, /* Thai_chochan */
+    { 0x00000daa, 24518 }, /* Thai_chochang */
+    { 0x00000da9, 24532 }, /* Thai_choching */
+    { 0x00000dac, 24546 }, /* Thai_chochoe */
+    { 0x00000dae, 24559 }, /* Thai_dochada */
+    { 0x00000db4, 24572 }, /* Thai_dodek */
+    { 0x00000dbd, 24583 }, /* Thai_fofa */
+    { 0x00000dbf, 24593 }, /* Thai_fofan */
+    { 0x00000dcb, 24604 }, /* Thai_hohip */
+    { 0x00000dce, 24615 }, /* Thai_honokhuk */
+    { 0x00000da2, 24629 }, /* Thai_khokhai */
+    { 0x00000da5, 24642 }, /* Thai_khokhon */
+    { 0x00000da3, 24655 }, /* Thai_khokhuat */
+    { 0x00000da4, 24669 }, /* Thai_khokhwai */
+    { 0x00000da6, 24683 }, /* Thai_khorakhang */
+    { 0x00000da1, 24699 }, /* Thai_kokai */
+    { 0x00000de5, 24710 }, /* Thai_lakkhangyao */
+    { 0x00000df7, 24727 }, /* Thai_lekchet */
+    { 0x00000df5, 24740 }, /* Thai_lekha */
+    { 0x00000df6, 24751 }, /* Thai_lekhok */
+    { 0x00000df9, 24763 }, /* Thai_lekkao */
+    { 0x00000df1, 24775 }, /* Thai_leknung */
+    { 0x00000df8, 24788 }, /* Thai_lekpaet */
+    { 0x00000df3, 24801 }, /* Thai_leksam */
+    { 0x00000df4, 24813 }, /* Thai_leksi */
+    { 0x00000df2, 24824 }, /* Thai_leksong */
+    { 0x00000df0, 24837 }, /* Thai_leksun */
+    { 0x00000dcc, 24849 }, /* Thai_lochula */
+    { 0x00000dc5, 24862 }, /* Thai_loling */
+    { 0x00000dc6, 24874 }, /* Thai_lu */
+    { 0x00000deb, 24882 }, /* Thai_maichattawa */
+    { 0x00000de8, 24899 }, /* Thai_maiek */
+    { 0x00000dd1, 24910 }, /* Thai_maihanakat */
+    { 0x00000dde, 24926 }, /* Thai_maihanakat_maitho */
+    { 0x00000de7, 24949 }, /* Thai_maitaikhu */
+    { 0x00000de9, 24964 }, /* Thai_maitho */
+    { 0x00000dea, 24976 }, /* Thai_maitri */
+    { 0x00000de6, 24988 }, /* Thai_maiyamok */
+    { 0x00000dc1, 25002 }, /* Thai_moma */
+    { 0x00000da7, 25012 }, /* Thai_ngongu */
+    { 0x00000ded, 25024 }, /* Thai_nikhahit */
+    { 0x00000db3, 25038 }, /* Thai_nonen */
+    { 0x00000db9, 25049 }, /* Thai_nonu */
+    { 0x00000dcd, 25059 }, /* Thai_oang */
+    { 0x00000dcf, 25069 }, /* Thai_paiyannoi */
+    { 0x00000dda, 25084 }, /* Thai_phinthu */
+    { 0x00000dbe, 25097 }, /* Thai_phophan */
+    { 0x00000dbc, 25110 }, /* Thai_phophung */
+    { 0x00000dc0, 25124 }, /* Thai_phosamphao */
+    { 0x00000dbb, 25140 }, /* Thai_popla */
+    { 0x00000dc3, 25151 }, /* Thai_rorua */
+    { 0x00000dc4, 25162 }, /* Thai_ru */
+    { 0x00000dd0, 25170 }, /* Thai_saraa */
+    { 0x00000dd2, 25181 }, /* Thai_saraaa */
+    { 0x00000de1, 25193 }, /* Thai_saraae */
+    { 0x00000de4, 25205 }, /* Thai_saraaimaimalai */
+    { 0x00000de3, 25225 }, /* Thai_saraaimaimuan */
+    { 0x00000dd3, 25244 }, /* Thai_saraam */
+    { 0x00000de0, 25256 }, /* Thai_sarae */
+    { 0x00000dd4, 25267 }, /* Thai_sarai */
+    { 0x00000dd5, 25278 }, /* Thai_saraii */
+    { 0x00000de2, 25290 }, /* Thai_sarao */
+    { 0x00000dd8, 25301 }, /* Thai_sarau */
+    { 0x00000dd6, 25312 }, /* Thai_saraue */
+    { 0x00000dd7, 25324 }, /* Thai_sarauee */
+    { 0x00000dd9, 25337 }, /* Thai_sarauu */
+    { 0x00000dc9, 25349 }, /* Thai_sorusi */
+    { 0x00000dc8, 25361 }, /* Thai_sosala */
+    { 0x00000dab, 25373 }, /* Thai_soso */
+    { 0x00000dca, 25383 }, /* Thai_sosua */
+    { 0x00000dec, 25394 }, /* Thai_thanthakhat */
+    { 0x00000db1, 25411 }, /* Thai_thonangmontho */
+    { 0x00000db2, 25430 }, /* Thai_thophuthao */
+    { 0x00000db7, 25446 }, /* Thai_thothahan */
+    { 0x00000db0, 25461 }, /* Thai_thothan */
+    { 0x00000db8, 25474 }, /* Thai_thothong */
+    { 0x00000db6, 25488 }, /* Thai_thothung */
+    { 0x00000daf, 25502 }, /* Thai_topatak */
+    { 0x00000db5, 25515 }, /* Thai_totao */
+    { 0x00000dc7, 25526 }, /* Thai_wowaen */
+    { 0x00000dc2, 25538 }, /* Thai_yoyak */
+    { 0x00000dad, 25549 }, /* Thai_yoying */
+    { 0x000008c0, 25561 }, /* therefore */
+    { 0x00000aa7, 25571 }, /* thinspace */
+    { 0x000000de, 25581 }, /* THORN */
+    { 0x000000de, 25587 }, /* Thorn */
+    { 0x000000fe, 25593 }, /* thorn */
+    { 0x00000ac4, 25599 }, /* threeeighths */
+    { 0x00000ab4, 25612 }, /* threefifths */
+    { 0x000000be, 25624 }, /* threequarters */
+    { 0x01002083, 25638 }, /* threesubscript */
+    { 0x000000b3, 25653 }, /* threesuperior */
+    { 0x0100222d, 25667 }, /* tintegral */
+    { 0x000008a4, 25677 }, /* topintegral */
+    { 0x000008ab, 25689 }, /* topleftparens */
+    { 0x000008a2, 25703 }, /* topleftradical */
+    { 0x000008a7, 25718 }, /* topleftsqbracket */
+    { 0x000008b1, 25735 }, /* topleftsummation */
+    { 0x000008ad, 25752 }, /* toprightparens */
+    { 0x000008a9, 25767 }, /* toprightsqbracket */
+    { 0x000008b5, 25785 }, /* toprightsummation */
+    { 0x000009f7, 25803 }, /* topt */
+    { 0x000008b3, 25808 }, /* topvertsummationconnector */
+    { 0x0000ff2b, 25834 }, /* Touroku */
+    { 0x00000ac9, 25842 }, /* trademark */
+    { 0x00000acb, 25852 }, /* trademarkincircle */
+    { 0x000003ac, 25870 }, /* Tslash */
+    { 0x000003bc, 25877 }, /* tslash */
+    { 0x00000ab3, 25884 }, /* twofifths */
+    { 0x01002082, 25894 }, /* twosubscript */
+    { 0x000000b2, 25907 }, /* twosuperior */
+    { 0x00000ab1, 25919 }, /* twothirds */
+    { 0x00000055, 25929 }, /* U */
+    { 0x00000075, 25931 }, /* u */
+    { 0x000000da, 25933 }, /* Uacute */
+    { 0x000000fa, 25940 }, /* uacute */
+    { 0x01001ee4, 25947 }, /* Ubelowdot */
+    { 0x01001ee5, 25957 }, /* ubelowdot */
+    { 0x000002dd, 25967 }, /* Ubreve */
+    { 0x000002fd, 25974 }, /* ubreve */
+    { 0x000000db, 25981 }, /* Ucircumflex */
+    { 0x000000fb, 25993 }, /* ucircumflex */
+    { 0x000000dc, 26005 }, /* Udiaeresis */
+    { 0x000000fc, 26016 }, /* udiaeresis */
+    { 0x000001db, 26027 }, /* Udoubleacute */
+    { 0x000001fb, 26040 }, /* udoubleacute */
+    { 0x000000d9, 26053 }, /* Ugrave */
+    { 0x000000f9, 26060 }, /* ugrave */
+    { 0x01001ee6, 26067 }, /* Uhook */
+    { 0x01001ee7, 26073 }, /* uhook */
+    { 0x010001af, 26079 }, /* Uhorn */
+    { 0x010001b0, 26085 }, /* uhorn */
+    { 0x01001ee8, 26091 }, /* Uhornacute */
+    { 0x01001ee9, 26102 }, /* uhornacute */
+    { 0x01001ef0, 26113 }, /* Uhornbelowdot */
+    { 0x01001ef1, 26127 }, /* uhornbelowdot */
+    { 0x01001eea, 26141 }, /* Uhorngrave */
+    { 0x01001eeb, 26152 }, /* uhorngrave */
+    { 0x01001eec, 26163 }, /* Uhornhook */
+    { 0x01001eed, 26173 }, /* uhornhook */
+    { 0x01001eee, 26183 }, /* Uhorntilde */
+    { 0x01001eef, 26194 }, /* uhorntilde */
+    { 0x000006ad, 26205 }, /* Ukrainian_ghe_with_upturn */
+    { 0x000006bd, 26231 }, /* Ukrainian_GHE_WITH_UPTURN */
+    { 0x000006a6, 26257 }, /* Ukrainian_i */
+    { 0x000006b6, 26269 }, /* Ukrainian_I */
+    { 0x000006a4, 26281 }, /* Ukrainian_ie */
+    { 0x000006b4, 26294 }, /* Ukrainian_IE */
+    { 0x000006a7, 26307 }, /* Ukrainian_yi */
+    { 0x000006b7, 26320 }, /* Ukrainian_YI */
+    { 0x000006a6, 26333 }, /* Ukranian_i */
+    { 0x000006b6, 26344 }, /* Ukranian_I */
+    { 0x000006a4, 26355 }, /* Ukranian_je */
+    { 0x000006b4, 26367 }, /* Ukranian_JE */
+    { 0x000006a7, 26379 }, /* Ukranian_yi */
+    { 0x000006b7, 26391 }, /* Ukranian_YI */
+    { 0x000003de, 26403 }, /* Umacron */
+    { 0x000003fe, 26411 }, /* umacron */
+    { 0x00000bc6, 26419 }, /* underbar */
+    { 0x0000005f, 26428 }, /* underscore */
+    { 0x0000ff65, 26439 }, /* Undo */
+    { 0x000008dd, 26444 }, /* union */
+    { 0x000003d9, 26450 }, /* Uogonek */
+    { 0x000003f9, 26458 }, /* uogonek */
+    { 0x0000ff52, 26466 }, /* Up */
+    { 0x000008fc, 26469 }, /* uparrow */
+    { 0x00000ba9, 26477 }, /* upcaret */
+    { 0x000009ec, 26485 }, /* upleftcorner */
+    { 0x000009eb, 26498 }, /* uprightcorner */
+    { 0x00000bc3, 26512 }, /* upshoe */
+    { 0x00000bd3, 26519 }, /* upstile */
+    { 0x00000bce, 26527 }, /* uptack */
+    { 0x000001d9, 26534 }, /* Uring */
+    { 0x000001f9, 26540 }, /* uring */
+    { 0x1000ff6e, 26546 }, /* User */
+    { 0x000003dd, 26551 }, /* Utilde */
+    { 0x000003fd, 26558 }, /* utilde */
+    { 0x00000056, 26565 }, /* V */
+    { 0x00000076, 26567 }, /* v */
+    { 0x000008c1, 26569 }, /* variation */
+    { 0x000009f8, 26579 }, /* vertbar */
+    { 0x000008a6, 26587 }, /* vertconnector */
+    { 0x000004de, 26601 }, /* voicedsound */
+    { 0x00ffffff, 26613 }, /* VoidSymbol */
+    { 0x000009e9, 26624 }, /* vt */
+    { 0x00000057, 26627 }, /* W */
+    { 0x00000077, 26629 }, /* w */
+    { 0x01001e82, 26631 }, /* Wacute */
+    { 0x01001e83, 26638 }, /* wacute */
+    { 0x01000174, 26645 }, /* Wcircumflex */
+    { 0x01000175, 26657 }, /* wcircumflex */
+    { 0x01001e84, 26669 }, /* Wdiaeresis */
+    { 0x01001e85, 26680 }, /* wdiaeresis */
+    { 0x01001e80, 26691 }, /* Wgrave */
+    { 0x01001e81, 26698 }, /* wgrave */
+    { 0x010020a9, 26705 }, /* WonSign */
+    { 0x00000058, 26713 }, /* X */
+    { 0x00000078, 26715 }, /* x */
+    { 0x01001e8a, 26717 }, /* Xabovedot */
+    { 0x01001e8b, 26727 }, /* xabovedot */
+    { 0x100811b9, 26737 }, /* XF8610ChannelsDown */
+    { 0x100811b8, 26756 }, /* XF8610ChannelsUp */
+    { 0x1008126f, 26773 }, /* XF863DMode */
+    { 0x1008ff39, 26784 }, /* XF86AddFavorite */
+    { 0x100811ad, 26800 }, /* XF86Addressbook */
+    { 0x10081230, 26816 }, /* XF86ALSToggle */
+    { 0x1008ff50, 26830 }, /* XF86ApplicationLeft */
+    { 0x1008ff51, 26850 }, /* XF86ApplicationRight */
+    { 0x10081244, 26871 }, /* XF86AppSelect */
+    { 0x10081177, 26885 }, /* XF86AspectRatio */
+    { 0x10081247, 26901 }, /* XF86Assistant */
+    { 0x1008121c, 26915 }, /* XF86AttendantOff */
+    { 0x1008121b, 26932 }, /* XF86AttendantOn */
+    { 0x1008121d, 26948 }, /* XF86AttendantToggle */
+    { 0x10081188, 26968 }, /* XF86Audio */
+    { 0x1008ff9b, 26978 }, /* XF86AudioCycleTrack */
+    { 0x1008126e, 26998 }, /* XF86AudioDesc */
+    { 0x1008ff97, 27012 }, /* XF86AudioForward */
+    { 0x1008ff11, 27029 }, /* XF86AudioLowerVolume */
+    { 0x1008ff32, 27050 }, /* XF86AudioMedia */
+    { 0x1008ffb2, 27065 }, /* XF86AudioMicMute */
+    { 0x1008ff12, 27082 }, /* XF86AudioMute */
+    { 0x1008ff17, 27096 }, /* XF86AudioNext */
+    { 0x1008ff31, 27110 }, /* XF86AudioPause */
+    { 0x1008ff14, 27125 }, /* XF86AudioPlay */
+    { 0x1008ffb6, 27139 }, /* XF86AudioPreset */
+    { 0x1008ff16, 27155 }, /* XF86AudioPrev */
+    { 0x1008ff13, 27169 }, /* XF86AudioRaiseVolume */
+    { 0x1008ff99, 27190 }, /* XF86AudioRandomPlay */
+    { 0x1008ff1c, 27210 }, /* XF86AudioRecord */
+    { 0x1008ff98, 27226 }, /* XF86AudioRepeat */
+    { 0x1008ff3e, 27242 }, /* XF86AudioRewind */
+    { 0x1008ff15, 27258 }, /* XF86AudioStop */
+    { 0x1008ff8d, 27272 }, /* XF86Away */
+    { 0x1008ff26, 27281 }, /* XF86Back */
+    { 0x1008ff3f, 27290 }, /* XF86BackForward */
+    { 0x1008ff93, 27306 }, /* XF86Battery */
+    { 0x1008ffa6, 27318 }, /* XF86Blue */
+    { 0x1008ff94, 27327 }, /* XF86Bluetooth */
+    { 0x1008ff52, 27341 }, /* XF86Book */
+    { 0x1008119b, 27350 }, /* XF86Break */
+    { 0x1008ff3b, 27360 }, /* XF86BrightnessAdjust */
+    { 0x100810f4, 27381 }, /* XF86BrightnessAuto */
+    { 0x10081251, 27400 }, /* XF86BrightnessMax */
+    { 0x10081250, 27418 }, /* XF86BrightnessMin */
+    { 0x10081240, 27436 }, /* XF86Buttonconfig */
+    { 0x1008ff54, 27453 }, /* XF86Calculater */
+    { 0x1008ff1d, 27468 }, /* XF86Calculator */
+    { 0x1008ff20, 27483 }, /* XF86Calendar */
+    { 0x10081218, 27496 }, /* XF86CameraDown */
+    { 0x10081210, 27511 }, /* XF86CameraFocus */
+    { 0x10081219, 27527 }, /* XF86CameraLeft */
+    { 0x1008121a, 27542 }, /* XF86CameraRight */
+    { 0x10081217, 27558 }, /* XF86CameraUp */
+    { 0x10081215, 27571 }, /* XF86CameraZoomIn */
+    { 0x10081216, 27588 }, /* XF86CameraZoomOut */
+    { 0x1008ff53, 27606 }, /* XF86CD */
+    { 0x10081193, 27613 }, /* XF86ChannelDown */
+    { 0x10081192, 27629 }, /* XF86ChannelUp */
+    { 0x1008ff55, 27643 }, /* XF86Clear */
+    { 0x1008fe21, 27653 }, /* XF86ClearGrab */
+    { 0x1008ff56, 27667 }, /* XF86Close */
+    { 0x1008ff3d, 27677 }, /* XF86Community */
+    { 0x100811b6, 27691 }, /* XF86ContextMenu */
+    { 0x1008ff22, 27707 }, /* XF86ContrastAdjust */
+    { 0x10081243, 27726 }, /* XF86ControlPanel */
+    { 0x1008ff57, 27743 }, /* XF86Copy */
+    { 0x1008ff58, 27752 }, /* XF86Cut */
+    { 0x1008ff9c, 27760 }, /* XF86CycleAngle */
+    { 0x10081277, 27775 }, /* XF86Data */
+    { 0x100811aa, 27784 }, /* XF86Database */
+    { 0x1008ff59, 27797 }, /* XF86Display */
+    { 0x100810f5, 27809 }, /* XF86DisplayOff */
+    { 0x100811af, 27824 }, /* XF86DisplayToggle */
+    { 0x1008ff5b, 27842 }, /* XF86Documents */
+    { 0x1008ff5a, 27856 }, /* XF86DOS */
+    { 0x10081185, 27864 }, /* XF86DVD */
+    { 0x100811a6, 27872 }, /* XF86Editor */
+    { 0x1008ff2c, 27883 }, /* XF86Eject */
+    { 0x1008ff5c, 27893 }, /* XF86Excel */
+    { 0x1008ff5d, 27903 }, /* XF86Explorer */
+    { 0x10081275, 27916 }, /* XF86FastReverse */
+    { 0x1008ff30, 27932 }, /* XF86Favorites */
+    { 0x1008ff3c, 27946 }, /* XF86Finance */
+    { 0x100811d0, 27958 }, /* XF86Fn */
+    { 0x100811d1, 27965 }, /* XF86Fn_Esc */
+    { 0x100811e5, 27976 }, /* XF86FnRightShift */
+    { 0x1008ff27, 27993 }, /* XF86Forward */
+    { 0x1008ff9d, 28005 }, /* XF86FrameBack */
+    { 0x1008ff9e, 28019 }, /* XF86FrameForward */
+    { 0x1008ffb8, 28036 }, /* XF86FullScreen */
+    { 0x1008ff5e, 28051 }, /* XF86Game */
+    { 0x1008ff5f, 28060 }, /* XF86Go */
+    { 0x100811a8, 28067 }, /* XF86GraphicsEditor */
+    { 0x1008ffa4, 28086 }, /* XF86Green */
+    { 0x100811be, 28096 }, /* XF86HangupPhone */
+    { 0x1008ffa8, 28112 }, /* XF86Hibernate */
+    { 0x1008ff37, 28126 }, /* XF86History */
+    { 0x1008ff18, 28138 }, /* XF86HomePage */
+    { 0x1008ff3a, 28151 }, /* XF86HotLinks */
+    { 0x100811ba, 28164 }, /* XF86Images */
+    { 0x10081166, 28175 }, /* XF86Info */
+    { 0x1008ff60, 28184 }, /* XF86iTouch */
+    { 0x10081242, 28195 }, /* XF86Journal */
+    { 0x1008ff06, 28207 }, /* XF86KbdBrightnessDown */
+    { 0x1008ff05, 28229 }, /* XF86KbdBrightnessUp */
+    { 0x10081264, 28249 }, /* XF86KbdInputAssistAccept */
+    { 0x10081265, 28274 }, /* XF86KbdInputAssistCancel */
+    { 0x10081261, 28299 }, /* XF86KbdInputAssistNext */
+    { 0x10081263, 28322 }, /* XF86KbdInputAssistNextgroup */
+    { 0x10081260, 28350 }, /* XF86KbdInputAssistPrev */
+    { 0x10081262, 28373 }, /* XF86KbdInputAssistPrevgroup */
+    { 0x100812b8, 28401 }, /* XF86KbdLcdMenu1 */
+    { 0x100812b9, 28417 }, /* XF86KbdLcdMenu2 */
+    { 0x100812ba, 28433 }, /* XF86KbdLcdMenu3 */
+    { 0x100812bb, 28449 }, /* XF86KbdLcdMenu4 */
+    { 0x100812bc, 28465 }, /* XF86KbdLcdMenu5 */
+    { 0x1008ff04, 28481 }, /* XF86KbdLightOnOff */
+    { 0x1008ffb3, 28499 }, /* XF86Keyboard */
+    { 0x1008ff40, 28512 }, /* XF86Launch0 */
+    { 0x1008ff41, 28524 }, /* XF86Launch1 */
+    { 0x1008ff42, 28536 }, /* XF86Launch2 */
+    { 0x1008ff43, 28548 }, /* XF86Launch3 */
+    { 0x1008ff44, 28560 }, /* XF86Launch4 */
+    { 0x1008ff45, 28572 }, /* XF86Launch5 */
+    { 0x1008ff46, 28584 }, /* XF86Launch6 */
+    { 0x1008ff47, 28596 }, /* XF86Launch7 */
+    { 0x1008ff48, 28608 }, /* XF86Launch8 */
+    { 0x1008ff49, 28620 }, /* XF86Launch9 */
+    { 0x1008ff4a, 28632 }, /* XF86LaunchA */
+    { 0x1008ff4b, 28644 }, /* XF86LaunchB */
+    { 0x1008ff4c, 28656 }, /* XF86LaunchC */
+    { 0x1008ff4d, 28668 }, /* XF86LaunchD */
+    { 0x1008ff4e, 28680 }, /* XF86LaunchE */
+    { 0x1008ff4f, 28692 }, /* XF86LaunchF */
+    { 0x10081269, 28704 }, /* XF86LeftDown */
+    { 0x10081268, 28717 }, /* XF86LeftUp */
+    { 0x1008ff35, 28728 }, /* XF86LightBulb */
+    { 0x1008121e, 28742 }, /* XF86LightsToggle */
+    { 0x1008fe25, 28759 }, /* XF86LogGrabInfo */
+    { 0x1008ff61, 28775 }, /* XF86LogOff */
+    { 0x1008fe24, 28786 }, /* XF86LogWindowTree */
+    { 0x10081290, 28804 }, /* XF86Macro1 */
+    { 0x10081299, 28815 }, /* XF86Macro10 */
+    { 0x1008129a, 28827 }, /* XF86Macro11 */
+    { 0x1008129b, 28839 }, /* XF86Macro12 */
+    { 0x1008129c, 28851 }, /* XF86Macro13 */
+    { 0x1008129d, 28863 }, /* XF86Macro14 */
+    { 0x1008129e, 28875 }, /* XF86Macro15 */
+    { 0x1008129f, 28887 }, /* XF86Macro16 */
+    { 0x100812a0, 28899 }, /* XF86Macro17 */
+    { 0x100812a1, 28911 }, /* XF86Macro18 */
+    { 0x100812a2, 28923 }, /* XF86Macro19 */
+    { 0x10081291, 28935 }, /* XF86Macro2 */
+    { 0x100812a3, 28946 }, /* XF86Macro20 */
+    { 0x100812a4, 28958 }, /* XF86Macro21 */
+    { 0x100812a5, 28970 }, /* XF86Macro22 */
+    { 0x100812a6, 28982 }, /* XF86Macro23 */
+    { 0x100812a7, 28994 }, /* XF86Macro24 */
+    { 0x100812a8, 29006 }, /* XF86Macro25 */
+    { 0x100812a9, 29018 }, /* XF86Macro26 */
+    { 0x100812aa, 29030 }, /* XF86Macro27 */
+    { 0x100812ab, 29042 }, /* XF86Macro28 */
+    { 0x100812ac, 29054 }, /* XF86Macro29 */
+    { 0x10081292, 29066 }, /* XF86Macro3 */
+    { 0x100812ad, 29077 }, /* XF86Macro30 */
+    { 0x10081293, 29089 }, /* XF86Macro4 */
+    { 0x10081294, 29100 }, /* XF86Macro5 */
+    { 0x10081295, 29111 }, /* XF86Macro6 */
+    { 0x10081296, 29122 }, /* XF86Macro7 */
+    { 0x10081297, 29133 }, /* XF86Macro8 */
+    { 0x10081298, 29144 }, /* XF86Macro9 */
+    { 0x100812b3, 29155 }, /* XF86MacroPreset1 */
+    { 0x100812b4, 29172 }, /* XF86MacroPreset2 */
+    { 0x100812b5, 29189 }, /* XF86MacroPreset3 */
+    { 0x100812b2, 29206 }, /* XF86MacroPresetCycle */
+    { 0x100812b0, 29227 }, /* XF86MacroRecordStart */
+    { 0x100812b1, 29248 }, /* XF86MacroRecordStop */
+    { 0x1008ff19, 29268 }, /* XF86Mail */
+    { 0x1008ff90, 29277 }, /* XF86MailForward */
+    { 0x1008ff62, 29293 }, /* XF86Market */
+    { 0x100811b7, 29304 }, /* XF86MediaRepeat */
+    { 0x1008126b, 29320 }, /* XF86MediaTopMenu */
+    { 0x1008ff63, 29337 }, /* XF86Meeting */
+    { 0x1008ff1e, 29349 }, /* XF86Memo */
+    { 0x1008ff65, 29358 }, /* XF86MenuKB */
+    { 0x1008ff66, 29369 }, /* XF86MenuPB */
+    { 0x1008ff8e, 29380 }, /* XF86Messenger */
+    { 0x1008ff01, 29394 }, /* XF86ModeLock */
+    { 0x1008ff07, 29407 }, /* XF86MonBrightnessCycle */
+    { 0x1008ff03, 29430 }, /* XF86MonBrightnessDown */
+    { 0x1008ff02, 29452 }, /* XF86MonBrightnessUp */
+    { 0x1008ff92, 29472 }, /* XF86Music */
+    { 0x1008ff33, 29482 }, /* XF86MyComputer */
+    { 0x1008ff67, 29497 }, /* XF86MySites */
+    { 0x1008ff68, 29509 }, /* XF86New */
+    { 0x1008ff69, 29517 }, /* XF86News */
+    { 0x1008fe22, 29526 }, /* XF86Next_VMode */
+    { 0x10081270, 29541 }, /* XF86NextFavorite */
+    { 0x100811bc, 29558 }, /* XF86NotificationCenter */
+    { 0x10081200, 29581 }, /* XF86Numeric0 */
+    { 0x10081201, 29594 }, /* XF86Numeric1 */
+    { 0x1008126c, 29607 }, /* XF86Numeric11 */
+    { 0x1008126d, 29621 }, /* XF86Numeric12 */
+    { 0x10081202, 29635 }, /* XF86Numeric2 */
+    { 0x10081203, 29648 }, /* XF86Numeric3 */
+    { 0x10081204, 29661 }, /* XF86Numeric4 */
+    { 0x10081205, 29674 }, /* XF86Numeric5 */
+    { 0x10081206, 29687 }, /* XF86Numeric6 */
+    { 0x10081207, 29700 }, /* XF86Numeric7 */
+    { 0x10081208, 29713 }, /* XF86Numeric8 */
+    { 0x10081209, 29726 }, /* XF86Numeric9 */
+    { 0x1008120c, 29739 }, /* XF86NumericA */
+    { 0x1008120d, 29752 }, /* XF86NumericB */
+    { 0x1008120e, 29765 }, /* XF86NumericC */
+    { 0x1008120f, 29778 }, /* XF86NumericD */
+    { 0x1008120b, 29791 }, /* XF86NumericPound */
+    { 0x1008120a, 29808 }, /* XF86NumericStar */
+    { 0x1008ff6a, 29824 }, /* XF86OfficeHome */
+    { 0x10081278, 29839 }, /* XF86OnScreenKeyboard */
+    { 0x1008ff6b, 29860 }, /* XF86Open */
+    { 0x1008ff38, 29869 }, /* XF86OpenURL */
+    { 0x1008ff6c, 29881 }, /* XF86Option */
+    { 0x1008ff6d, 29892 }, /* XF86Paste */
+    { 0x10081272, 29902 }, /* XF86PauseRecord */
+    { 0x1008ff6e, 29918 }, /* XF86Phone */
+    { 0x100811bd, 29928 }, /* XF86PickupPhone */
+    { 0x1008ff91, 29944 }, /* XF86Pictures */
+    { 0x1008ff21, 29957 }, /* XF86PowerDown */
+    { 0x1008ff2a, 29971 }, /* XF86PowerOff */
+    { 0x100811a9, 29984 }, /* XF86Presentation */
+    { 0x1008fe23, 30001 }, /* XF86Prev_VMode */
+    { 0x10081279, 30016 }, /* XF86PrivacyScreenToggle */
+    { 0x1008ff70, 30040 }, /* XF86Q */
+    { 0x1008ffa3, 30046 }, /* XF86Red */
+    { 0x1008ff29, 30054 }, /* XF86Refresh */
+    { 0x1008ff73, 30066 }, /* XF86Reload */
+    { 0x1008ff72, 30077 }, /* XF86Reply */
+    { 0x1008ffb5, 30087 }, /* XF86RFKill */
+    { 0x10081267, 30098 }, /* XF86RightDown */
+    { 0x10081266, 30112 }, /* XF86RightUp */
+    { 0x1008ff24, 30124 }, /* XF86RockerDown */
+    { 0x1008ff25, 30139 }, /* XF86RockerEnter */
+    { 0x1008ff23, 30155 }, /* XF86RockerUp */
+    { 0x1008126a, 30168 }, /* XF86RootMenu */
+    { 0x1008ff74, 30181 }, /* XF86RotateWindows */
+    { 0x1008ff76, 30199 }, /* XF86RotationKB */
+    { 0x1008ffb7, 30214 }, /* XF86RotationLockToggle */
+    { 0x1008ff75, 30237 }, /* XF86RotationPB */
+    { 0x1008ff77, 30252 }, /* XF86Save */
+    { 0x1008ff2d, 30261 }, /* XF86ScreenSaver */
+    { 0x10081245, 30277 }, /* XF86Screensaver */
+    { 0x1008ff7a, 30293 }, /* XF86ScrollClick */
+    { 0x1008ff79, 30309 }, /* XF86ScrollDown */
+    { 0x1008ff78, 30324 }, /* XF86ScrollUp */
+    { 0x1008ff1b, 30337 }, /* XF86Search */
+    { 0x1008ffa0, 30348 }, /* XF86Select */
+    { 0x1008127a, 30359 }, /* XF86SelectiveScreenshot */
+    { 0x1008ff7b, 30383 }, /* XF86Send */
+    { 0x1008ff36, 30392 }, /* XF86Shop */
+    { 0x1008ff2f, 30401 }, /* XF86Sleep */
+    { 0x10081276, 30411 }, /* XF86SlowReverse */
+    { 0x1008ff7c, 30427 }, /* XF86Spell */
+    { 0x100811b0, 30437 }, /* XF86SpellCheck */
+    { 0x1008ff7d, 30452 }, /* XF86SplitScreen */
+    { 0x1008ff10, 30468 }, /* XF86Standby */
+    { 0x1008ff1a, 30480 }, /* XF86Start */
+    { 0x1008ff28, 30490 }, /* XF86Stop */
+    { 0x10081271, 30499 }, /* XF86StopRecord */
+    { 0x1008ff9a, 30514 }, /* XF86Subtitle */
+    { 0x1008ff7e, 30527 }, /* XF86Support */
+    { 0x1008ffa7, 30539 }, /* XF86Suspend */
+    { 0x1008fe01, 30551 }, /* XF86Switch_VT_1 */
+    { 0x1008fe0a, 30567 }, /* XF86Switch_VT_10 */
+    { 0x1008fe0b, 30584 }, /* XF86Switch_VT_11 */
+    { 0x1008fe0c, 30601 }, /* XF86Switch_VT_12 */
+    { 0x1008fe02, 30618 }, /* XF86Switch_VT_2 */
+    { 0x1008fe03, 30634 }, /* XF86Switch_VT_3 */
+    { 0x1008fe04, 30650 }, /* XF86Switch_VT_4 */
+    { 0x1008fe05, 30666 }, /* XF86Switch_VT_5 */
+    { 0x1008fe06, 30682 }, /* XF86Switch_VT_6 */
+    { 0x1008fe07, 30698 }, /* XF86Switch_VT_7 */
+    { 0x1008fe08, 30714 }, /* XF86Switch_VT_8 */
+    { 0x1008fe09, 30730 }, /* XF86Switch_VT_9 */
+    { 0x10081241, 30746 }, /* XF86Taskmanager */
+    { 0x1008ff7f, 30762 }, /* XF86TaskPane */
+    { 0x1008ff80, 30775 }, /* XF86Terminal */
+    { 0x1008ff9f, 30788 }, /* XF86Time */
+    { 0x1008ff1f, 30797 }, /* XF86ToDoList */
+    { 0x1008ff81, 30810 }, /* XF86Tools */
+    { 0x1008ffa2, 30820 }, /* XF86TopMenu */
+    { 0x1008ffb1, 30832 }, /* XF86TouchpadOff */
+    { 0x1008ffb0, 30848 }, /* XF86TouchpadOn */
+    { 0x1008ffa9, 30863 }, /* XF86TouchpadToggle */
+    { 0x1008ff82, 30882 }, /* XF86Travel */
+    { 0x1008fe20, 30893 }, /* XF86Ungrab */
+    { 0x10081274, 30904 }, /* XF86Unmute */
+    { 0x1008ff85, 30915 }, /* XF86User1KB */
+    { 0x1008ff86, 30927 }, /* XF86User2KB */
+    { 0x1008ff84, 30939 }, /* XF86UserPB */
+    { 0x1008ff96, 30950 }, /* XF86UWB */
+    { 0x1008ff34, 30958 }, /* XF86VendorHome */
+    { 0x1008ff87, 30973 }, /* XF86Video */
+    { 0x100811a0, 30983 }, /* XF86VideoPhone */
+    { 0x1008ffa1, 30998 }, /* XF86View */
+    { 0x10081273, 31007 }, /* XF86VOD */
+    { 0x10081246, 31015 }, /* XF86VoiceCommand */
+    { 0x100811ac, 31032 }, /* XF86Voicemail */
+    { 0x1008ff2b, 31046 }, /* XF86WakeUp */
+    { 0x1008ff8f, 31057 }, /* XF86WebCam */
+    { 0x1008ff88, 31068 }, /* XF86WheelButton */
+    { 0x1008ff95, 31084 }, /* XF86WLAN */
+    { 0x1008ff89, 31093 }, /* XF86Word */
+    { 0x10081211, 31102 }, /* XF86WPSButton */
+    { 0x1008ffb4, 31116 }, /* XF86WWAN */
+    { 0x1008ff2e, 31125 }, /* XF86WWW */
+    { 0x1008ff8a, 31133 }, /* XF86Xfer */
+    { 0x1008ffa5, 31142 }, /* XF86Yellow */
+    { 0x1008ff8b, 31153 }, /* XF86ZoomIn */
+    { 0x1008ff8c, 31164 }, /* XF86ZoomOut */
+    { 0x100811a4, 31176 }, /* XF86ZoomReset */
+    { 0x00000059, 31190 }, /* Y */
+    { 0x00000079, 31192 }, /* y */
+    { 0x000000dd, 31194 }, /* Yacute */
+    { 0x000000fd, 31201 }, /* yacute */
+    { 0x01001ef4, 31208 }, /* Ybelowdot */
+    { 0x01001ef5, 31218 }, /* ybelowdot */
+    { 0x01000176, 31228 }, /* Ycircumflex */
+    { 0x01000177, 31240 }, /* ycircumflex */
+    { 0x000000ff, 31252 }, /* ydiaeresis */
+    { 0x000013be, 31263 }, /* Ydiaeresis */
+    { 0x000000a5, 31274 }, /* yen */
+    { 0x01001ef2, 31278 }, /* Ygrave */
+    { 0x01001ef3, 31285 }, /* ygrave */
+    { 0x01001ef6, 31292 }, /* Yhook */
+    { 0x01001ef7, 31298 }, /* yhook */
+    { 0x01001ef8, 31304 }, /* Ytilde */
+    { 0x01001ef9, 31311 }, /* ytilde */
+    { 0x0000005a, 31318 }, /* Z */
+    { 0x0000007a, 31320 }, /* z */
+    { 0x000001af, 31322 }, /* Zabovedot */
+    { 0x000001bf, 31332 }, /* zabovedot */
+    { 0x000001ac, 31342 }, /* Zacute */
+    { 0x000001bc, 31349 }, /* zacute */
+    { 0x000001ae, 31356 }, /* Zcaron */
+    { 0x000001be, 31363 }, /* zcaron */
+    { 0x0000ff3d, 31370 }, /* Zen_Koho */
+    { 0x0000ff28, 31379 }, /* Zenkaku */
+    { 0x0000ff2a, 31387 }, /* Zenkaku_Hankaku */
+    { 0x01002080, 31403 }, /* zerosubscript */
+    { 0x01002070, 31417 }, /* zerosuperior */
+    { 0x010001b5, 31430 }, /* Zstroke */
+    { 0x010001b6, 31438 }, /* zstroke */
 };
 
 static const struct name_keysym keysym_to_name[] = {
-    { 0x00000000, 20091 }, /* NoSymbol */
-    { 0x00000020, 23803 }, /* space */
-    { 0x00000021, 12099 }, /* exclam */
-    { 0x00000022, 22187 }, /* quotedbl */
-    { 0x00000023, 20178 }, /* numbersign */
-    { 0x00000024, 11251 }, /* dollar */
-    { 0x00000025, 21487 }, /* percent */
+    { 0x00000000, 20173 }, /* NoSymbol */
+    { 0x00000020, 23885 }, /* space */
+    { 0x00000021, 12181 }, /* exclam */
+    { 0x00000022, 22269 }, /* quotedbl */
+    { 0x00000023, 20260 }, /* numbersign */
+    { 0x00000024, 11333 }, /* dollar */
+    { 0x00000025, 21569 }, /* percent */
     { 0x00000026, 908 }, /* ampersand */
     { 0x00000027, 934 }, /* apostrophe */
-    { 0x00000028, 21425 }, /* parenleft */
-    { 0x00000029, 21435 }, /* parenright */
+    { 0x00000028, 21507 }, /* parenleft */
+    { 0x00000029, 21517 }, /* parenright */
     { 0x0000002a, 3283 }, /* asterisk */
-    { 0x0000002b, 21557 }, /* plus */
-    { 0x0000002c, 8680 }, /* comma */
-    { 0x0000002d, 19733 }, /* minus */
-    { 0x0000002e, 21495 }, /* period */
-    { 0x0000002f, 23768 }, /* slash */
+    { 0x0000002b, 21639 }, /* plus */
+    { 0x0000002c, 8762 }, /* comma */
+    { 0x0000002d, 19815 }, /* minus */
+    { 0x0000002e, 21577 }, /* period */
+    { 0x0000002f, 23850 }, /* slash */
     { 0x00000030, 0 }, /* 0 */
     { 0x00000031, 2 }, /* 1 */
     { 0x00000032, 4 }, /* 2 */
@@ -4870,106 +5471,106 @@
     { 0x00000038, 394 }, /* 8 */
     { 0x00000039, 396 }, /* 9 */
     { 0x0000003a, 8664 }, /* colon */
-    { 0x0000003b, 22734 }, /* semicolon */
-    { 0x0000003c, 19412 }, /* less */
-    { 0x0000003d, 12051 }, /* equal */
-    { 0x0000003e, 13272 }, /* greater */
-    { 0x0000003f, 22165 }, /* question */
+    { 0x0000003b, 22816 }, /* semicolon */
+    { 0x0000003c, 19494 }, /* less */
+    { 0x0000003d, 12133 }, /* equal */
+    { 0x0000003e, 13354 }, /* greater */
+    { 0x0000003f, 22247 }, /* question */
     { 0x00000040, 3292 }, /* at */
     { 0x00000041, 398 }, /* A */
     { 0x00000042, 3328 }, /* B */
     { 0x00000043, 8439 }, /* C */
-    { 0x00000044, 10320 }, /* D */
-    { 0x00000045, 11424 }, /* E */
-    { 0x00000046, 12155 }, /* F */
-    { 0x00000047, 12665 }, /* G */
-    { 0x00000048, 14378 }, /* H */
-    { 0x00000049, 17069 }, /* I */
-    { 0x0000004a, 18114 }, /* J */
-    { 0x0000004b, 18146 }, /* K */
-    { 0x0000004c, 19112 }, /* L */
-    { 0x0000004d, 19533 }, /* M */
-    { 0x0000004e, 19943 }, /* N */
-    { 0x0000004f, 20200 }, /* O */
-    { 0x00000050, 21373 }, /* P */
-    { 0x00000051, 22156 }, /* Q */
-    { 0x00000052, 22217 }, /* R */
-    { 0x00000053, 22579 }, /* S */
-    { 0x00000054, 24294 }, /* T */
-    { 0x00000055, 25847 }, /* U */
-    { 0x00000056, 26483 }, /* V */
-    { 0x00000057, 26545 }, /* W */
-    { 0x00000058, 26631 }, /* X */
-    { 0x00000059, 29082 }, /* Y */
-    { 0x0000005a, 29210 }, /* Z */
+    { 0x00000044, 10402 }, /* D */
+    { 0x00000045, 11506 }, /* E */
+    { 0x00000046, 12237 }, /* F */
+    { 0x00000047, 12747 }, /* G */
+    { 0x00000048, 14460 }, /* H */
+    { 0x00000049, 17151 }, /* I */
+    { 0x0000004a, 18196 }, /* J */
+    { 0x0000004b, 18228 }, /* K */
+    { 0x0000004c, 19194 }, /* L */
+    { 0x0000004d, 19615 }, /* M */
+    { 0x0000004e, 20025 }, /* N */
+    { 0x0000004f, 20282 }, /* O */
+    { 0x00000050, 21455 }, /* P */
+    { 0x00000051, 22238 }, /* Q */
+    { 0x00000052, 22299 }, /* R */
+    { 0x00000053, 22661 }, /* S */
+    { 0x00000054, 24376 }, /* T */
+    { 0x00000055, 25929 }, /* U */
+    { 0x00000056, 26565 }, /* V */
+    { 0x00000057, 26627 }, /* W */
+    { 0x00000058, 26713 }, /* X */
+    { 0x00000059, 31190 }, /* Y */
+    { 0x0000005a, 31318 }, /* Z */
     { 0x0000005b, 3603 }, /* bracketleft */
     { 0x0000005c, 3352 }, /* backslash */
     { 0x0000005d, 3615 }, /* bracketright */
     { 0x0000005e, 3260 }, /* asciicircum */
-    { 0x0000005f, 26346 }, /* underscore */
-    { 0x00000060, 13266 }, /* grave */
+    { 0x0000005f, 26428 }, /* underscore */
+    { 0x00000060, 13348 }, /* grave */
     { 0x00000061, 400 }, /* a */
     { 0x00000062, 3330 }, /* b */
     { 0x00000063, 8441 }, /* c */
-    { 0x00000064, 10322 }, /* d */
-    { 0x00000065, 11426 }, /* e */
-    { 0x00000066, 12157 }, /* f */
-    { 0x00000067, 12667 }, /* g */
-    { 0x00000068, 14380 }, /* h */
-    { 0x00000069, 17071 }, /* i */
-    { 0x0000006a, 18116 }, /* j */
-    { 0x0000006b, 18148 }, /* k */
-    { 0x0000006c, 19114 }, /* l */
-    { 0x0000006d, 19535 }, /* m */
-    { 0x0000006e, 19945 }, /* n */
-    { 0x0000006f, 20202 }, /* o */
-    { 0x00000070, 21375 }, /* p */
-    { 0x00000071, 22158 }, /* q */
-    { 0x00000072, 22219 }, /* r */
-    { 0x00000073, 22581 }, /* s */
-    { 0x00000074, 24296 }, /* t */
-    { 0x00000075, 25849 }, /* u */
-    { 0x00000076, 26485 }, /* v */
-    { 0x00000077, 26547 }, /* w */
-    { 0x00000078, 26633 }, /* x */
-    { 0x00000079, 29084 }, /* y */
-    { 0x0000007a, 29212 }, /* z */
+    { 0x00000064, 10404 }, /* d */
+    { 0x00000065, 11508 }, /* e */
+    { 0x00000066, 12239 }, /* f */
+    { 0x00000067, 12749 }, /* g */
+    { 0x00000068, 14462 }, /* h */
+    { 0x00000069, 17153 }, /* i */
+    { 0x0000006a, 18198 }, /* j */
+    { 0x0000006b, 18230 }, /* k */
+    { 0x0000006c, 19196 }, /* l */
+    { 0x0000006d, 19617 }, /* m */
+    { 0x0000006e, 20027 }, /* n */
+    { 0x0000006f, 20284 }, /* o */
+    { 0x00000070, 21457 }, /* p */
+    { 0x00000071, 22240 }, /* q */
+    { 0x00000072, 22301 }, /* r */
+    { 0x00000073, 22663 }, /* s */
+    { 0x00000074, 24378 }, /* t */
+    { 0x00000075, 25931 }, /* u */
+    { 0x00000076, 26567 }, /* v */
+    { 0x00000077, 26629 }, /* w */
+    { 0x00000078, 26715 }, /* x */
+    { 0x00000079, 31192 }, /* y */
+    { 0x0000007a, 31320 }, /* z */
     { 0x0000007b, 3582 }, /* braceleft */
     { 0x0000007c, 3392 }, /* bar */
     { 0x0000007d, 3592 }, /* braceright */
     { 0x0000007e, 3272 }, /* asciitilde */
-    { 0x000000a0, 20078 }, /* nobreakspace */
-    { 0x000000a1, 12106 }, /* exclamdown */
+    { 0x000000a0, 20160 }, /* nobreakspace */
+    { 0x000000a1, 12188 }, /* exclamdown */
     { 0x000000a2, 8589 }, /* cent */
-    { 0x000000a3, 23827 }, /* sterling */
-    { 0x000000a4, 8766 }, /* currency */
-    { 0x000000a5, 29166 }, /* yen */
+    { 0x000000a3, 23909 }, /* sterling */
+    { 0x000000a4, 8848 }, /* currency */
+    { 0x000000a5, 31274 }, /* yen */
     { 0x000000a6, 8389 }, /* brokenbar */
-    { 0x000000a7, 22719 }, /* section */
-    { 0x000000a8, 11203 }, /* diaeresis */
-    { 0x000000a9, 8717 }, /* copyright */
-    { 0x000000aa, 20852 }, /* ordfeminine */
-    { 0x000000ab, 14349 }, /* guillemotleft */
-    { 0x000000ac, 20147 }, /* notsign */
-    { 0x000000ad, 17062 }, /* hyphen */
-    { 0x000000ae, 22331 }, /* registered */
-    { 0x000000af, 19641 }, /* macron */
-    { 0x000000b0, 11153 }, /* degree */
-    { 0x000000b1, 21562 }, /* plusminus */
-    { 0x000000b2, 25825 }, /* twosuperior */
-    { 0x000000b3, 25571 }, /* threesuperior */
+    { 0x000000a7, 22801 }, /* section */
+    { 0x000000a8, 11285 }, /* diaeresis */
+    { 0x000000a9, 8799 }, /* copyright */
+    { 0x000000aa, 20934 }, /* ordfeminine */
+    { 0x000000ab, 14431 }, /* guillemotleft */
+    { 0x000000ac, 20229 }, /* notsign */
+    { 0x000000ad, 17144 }, /* hyphen */
+    { 0x000000ae, 22413 }, /* registered */
+    { 0x000000af, 19723 }, /* macron */
+    { 0x000000b0, 11235 }, /* degree */
+    { 0x000000b1, 21644 }, /* plusminus */
+    { 0x000000b2, 25907 }, /* twosuperior */
+    { 0x000000b3, 25653 }, /* threesuperior */
     { 0x000000b4, 820 }, /* acute */
-    { 0x000000b5, 19799 }, /* mu */
-    { 0x000000b6, 21415 }, /* paragraph */
-    { 0x000000b7, 21502 }, /* periodcentered */
+    { 0x000000b5, 19881 }, /* mu */
+    { 0x000000b6, 21497 }, /* paragraph */
+    { 0x000000b7, 21584 }, /* periodcentered */
     { 0x000000b8, 8581 }, /* cedilla */
-    { 0x000000b9, 20755 }, /* onesuperior */
-    { 0x000000ba, 19688 }, /* masculine */
-    { 0x000000bb, 14363 }, /* guillemotright */
-    { 0x000000bc, 20722 }, /* onequarter */
-    { 0x000000bd, 20714 }, /* onehalf */
-    { 0x000000be, 25542 }, /* threequarters */
-    { 0x000000bf, 22174 }, /* questiondown */
+    { 0x000000b9, 20837 }, /* onesuperior */
+    { 0x000000ba, 19770 }, /* masculine */
+    { 0x000000bb, 14445 }, /* guillemotright */
+    { 0x000000bc, 20804 }, /* onequarter */
+    { 0x000000bd, 20796 }, /* onehalf */
+    { 0x000000be, 25624 }, /* threequarters */
+    { 0x000000bf, 22256 }, /* questiondown */
     { 0x000000c0, 854 }, /* Agrave */
     { 0x000000c1, 402 }, /* Aacute */
     { 0x000000c2, 622 }, /* Acircumflex */
@@ -4978,30 +5579,30 @@
     { 0x000000c5, 2036 }, /* Aring */
     { 0x000000c6, 848 }, /* AE */
     { 0x000000c7, 8539 }, /* Ccedilla */
-    { 0x000000c8, 11724 }, /* Egrave */
-    { 0x000000c9, 11448 }, /* Eacute */
-    { 0x000000ca, 11496 }, /* Ecircumflex */
-    { 0x000000cb, 11702 }, /* Ediaeresis */
-    { 0x000000cc, 17205 }, /* Igrave */
-    { 0x000000cd, 17083 }, /* Iacute */
-    { 0x000000ce, 17131 }, /* Icircumflex */
-    { 0x000000cf, 17165 }, /* Idiaeresis */
-    { 0x000000d0, 12064 }, /* ETH */
-    { 0x000000d1, 20155 }, /* Ntilde */
-    { 0x000000d2, 20527 }, /* Ograve */
-    { 0x000000d3, 20204 }, /* Oacute */
-    { 0x000000d4, 20268 }, /* Ocircumflex */
-    { 0x000000d5, 21310 }, /* Otilde */
-    { 0x000000d6, 20466 }, /* Odiaeresis */
-    { 0x000000d7, 19839 }, /* multiply */
-    { 0x000000d8, 21296 }, /* Oslash */
-    { 0x000000d9, 25971 }, /* Ugrave */
-    { 0x000000da, 25851 }, /* Uacute */
-    { 0x000000db, 25899 }, /* Ucircumflex */
-    { 0x000000dc, 25923 }, /* Udiaeresis */
-    { 0x000000dd, 29086 }, /* Yacute */
-    { 0x000000de, 25499 }, /* THORN */
-    { 0x000000df, 23820 }, /* ssharp */
+    { 0x000000c8, 11806 }, /* Egrave */
+    { 0x000000c9, 11530 }, /* Eacute */
+    { 0x000000ca, 11578 }, /* Ecircumflex */
+    { 0x000000cb, 11784 }, /* Ediaeresis */
+    { 0x000000cc, 17287 }, /* Igrave */
+    { 0x000000cd, 17165 }, /* Iacute */
+    { 0x000000ce, 17213 }, /* Icircumflex */
+    { 0x000000cf, 17247 }, /* Idiaeresis */
+    { 0x000000d0, 12146 }, /* ETH */
+    { 0x000000d1, 20237 }, /* Ntilde */
+    { 0x000000d2, 20609 }, /* Ograve */
+    { 0x000000d3, 20286 }, /* Oacute */
+    { 0x000000d4, 20350 }, /* Ocircumflex */
+    { 0x000000d5, 21392 }, /* Otilde */
+    { 0x000000d6, 20548 }, /* Odiaeresis */
+    { 0x000000d7, 19921 }, /* multiply */
+    { 0x000000d8, 21378 }, /* Oslash */
+    { 0x000000d9, 26053 }, /* Ugrave */
+    { 0x000000da, 25933 }, /* Uacute */
+    { 0x000000db, 25981 }, /* Ucircumflex */
+    { 0x000000dc, 26005 }, /* Udiaeresis */
+    { 0x000000dd, 31194 }, /* Yacute */
+    { 0x000000de, 25581 }, /* THORN */
+    { 0x000000df, 23902 }, /* ssharp */
     { 0x000000e0, 861 }, /* agrave */
     { 0x000000e1, 409 }, /* aacute */
     { 0x000000e2, 634 }, /* acircumflex */
@@ -5010,208 +5611,208 @@
     { 0x000000e5, 2042 }, /* aring */
     { 0x000000e6, 851 }, /* ae */
     { 0x000000e7, 8548 }, /* ccedilla */
-    { 0x000000e8, 11731 }, /* egrave */
-    { 0x000000e9, 11455 }, /* eacute */
-    { 0x000000ea, 11508 }, /* ecircumflex */
-    { 0x000000eb, 11713 }, /* ediaeresis */
-    { 0x000000ec, 17212 }, /* igrave */
-    { 0x000000ed, 17090 }, /* iacute */
-    { 0x000000ee, 17143 }, /* icircumflex */
-    { 0x000000ef, 17176 }, /* idiaeresis */
-    { 0x000000f0, 12072 }, /* eth */
-    { 0x000000f1, 20162 }, /* ntilde */
-    { 0x000000f2, 20534 }, /* ograve */
-    { 0x000000f3, 20211 }, /* oacute */
-    { 0x000000f4, 20280 }, /* ocircumflex */
-    { 0x000000f5, 21317 }, /* otilde */
-    { 0x000000f6, 20477 }, /* odiaeresis */
-    { 0x000000f7, 11242 }, /* division */
-    { 0x000000f8, 21303 }, /* oslash */
-    { 0x000000f9, 25978 }, /* ugrave */
-    { 0x000000fa, 25858 }, /* uacute */
-    { 0x000000fb, 25911 }, /* ucircumflex */
-    { 0x000000fc, 25934 }, /* udiaeresis */
-    { 0x000000fd, 29093 }, /* yacute */
-    { 0x000000fe, 25511 }, /* thorn */
-    { 0x000000ff, 29144 }, /* ydiaeresis */
+    { 0x000000e8, 11813 }, /* egrave */
+    { 0x000000e9, 11537 }, /* eacute */
+    { 0x000000ea, 11590 }, /* ecircumflex */
+    { 0x000000eb, 11795 }, /* ediaeresis */
+    { 0x000000ec, 17294 }, /* igrave */
+    { 0x000000ed, 17172 }, /* iacute */
+    { 0x000000ee, 17225 }, /* icircumflex */
+    { 0x000000ef, 17258 }, /* idiaeresis */
+    { 0x000000f0, 12154 }, /* eth */
+    { 0x000000f1, 20244 }, /* ntilde */
+    { 0x000000f2, 20616 }, /* ograve */
+    { 0x000000f3, 20293 }, /* oacute */
+    { 0x000000f4, 20362 }, /* ocircumflex */
+    { 0x000000f5, 21399 }, /* otilde */
+    { 0x000000f6, 20559 }, /* odiaeresis */
+    { 0x000000f7, 11324 }, /* division */
+    { 0x000000f8, 21385 }, /* oslash */
+    { 0x000000f9, 26060 }, /* ugrave */
+    { 0x000000fa, 25940 }, /* uacute */
+    { 0x000000fb, 25993 }, /* ucircumflex */
+    { 0x000000fc, 26016 }, /* udiaeresis */
+    { 0x000000fd, 31201 }, /* yacute */
+    { 0x000000fe, 25593 }, /* thorn */
+    { 0x000000ff, 31252 }, /* ydiaeresis */
     { 0x000001a1, 918 }, /* Aogonek */
     { 0x000001a2, 8383 }, /* breve */
-    { 0x000001a3, 19517 }, /* Lstroke */
-    { 0x000001a5, 19212 }, /* Lcaron */
-    { 0x000001a6, 22603 }, /* Sacute */
-    { 0x000001a9, 22617 }, /* Scaron */
-    { 0x000001aa, 22631 }, /* Scedilla */
-    { 0x000001ab, 24322 }, /* Tcaron */
-    { 0x000001ac, 29234 }, /* Zacute */
-    { 0x000001ae, 29248 }, /* Zcaron */
-    { 0x000001af, 29214 }, /* Zabovedot */
+    { 0x000001a3, 19599 }, /* Lstroke */
+    { 0x000001a5, 19294 }, /* Lcaron */
+    { 0x000001a6, 22685 }, /* Sacute */
+    { 0x000001a9, 22699 }, /* Scaron */
+    { 0x000001aa, 22713 }, /* Scedilla */
+    { 0x000001ab, 24404 }, /* Tcaron */
+    { 0x000001ac, 31342 }, /* Zacute */
+    { 0x000001ae, 31356 }, /* Zcaron */
+    { 0x000001af, 31322 }, /* Zabovedot */
     { 0x000001b1, 926 }, /* aogonek */
-    { 0x000001b2, 20520 }, /* ogonek */
-    { 0x000001b3, 19525 }, /* lstroke */
-    { 0x000001b5, 19219 }, /* lcaron */
-    { 0x000001b6, 22610 }, /* sacute */
+    { 0x000001b2, 20602 }, /* ogonek */
+    { 0x000001b3, 19607 }, /* lstroke */
+    { 0x000001b5, 19301 }, /* lcaron */
+    { 0x000001b6, 22692 }, /* sacute */
     { 0x000001b7, 8519 }, /* caron */
-    { 0x000001b9, 22624 }, /* scaron */
-    { 0x000001ba, 22640 }, /* scedilla */
-    { 0x000001bb, 24329 }, /* tcaron */
-    { 0x000001bc, 29241 }, /* zacute */
-    { 0x000001bd, 11283 }, /* doubleacute */
-    { 0x000001be, 29255 }, /* zcaron */
-    { 0x000001bf, 29224 }, /* zabovedot */
-    { 0x000001c0, 22272 }, /* Racute */
+    { 0x000001b9, 22706 }, /* scaron */
+    { 0x000001ba, 22722 }, /* scedilla */
+    { 0x000001bb, 24411 }, /* tcaron */
+    { 0x000001bc, 31349 }, /* zacute */
+    { 0x000001bd, 11365 }, /* doubleacute */
+    { 0x000001be, 31363 }, /* zcaron */
+    { 0x000001bf, 31332 }, /* zabovedot */
+    { 0x000001c0, 22354 }, /* Racute */
     { 0x000001c3, 445 }, /* Abreve */
-    { 0x000001c5, 19147 }, /* Lacute */
+    { 0x000001c5, 19229 }, /* Lacute */
     { 0x000001c6, 8475 }, /* Cacute */
     { 0x000001c8, 8525 }, /* Ccaron */
-    { 0x000001ca, 12035 }, /* Eogonek */
-    { 0x000001cc, 11482 }, /* Ecaron */
-    { 0x000001cf, 10365 }, /* Dcaron */
-    { 0x000001d0, 11401 }, /* Dstroke */
-    { 0x000001d1, 19953 }, /* Nacute */
-    { 0x000001d2, 19977 }, /* Ncaron */
-    { 0x000001d5, 20488 }, /* Odoubleacute */
-    { 0x000001d8, 22294 }, /* Rcaron */
-    { 0x000001d9, 26452 }, /* Uring */
-    { 0x000001db, 25945 }, /* Udoubleacute */
-    { 0x000001de, 24336 }, /* Tcedilla */
-    { 0x000001e0, 22279 }, /* racute */
+    { 0x000001ca, 12117 }, /* Eogonek */
+    { 0x000001cc, 11564 }, /* Ecaron */
+    { 0x000001cf, 10447 }, /* Dcaron */
+    { 0x000001d0, 11483 }, /* Dstroke */
+    { 0x000001d1, 20035 }, /* Nacute */
+    { 0x000001d2, 20059 }, /* Ncaron */
+    { 0x000001d5, 20570 }, /* Odoubleacute */
+    { 0x000001d8, 22376 }, /* Rcaron */
+    { 0x000001d9, 26534 }, /* Uring */
+    { 0x000001db, 26027 }, /* Udoubleacute */
+    { 0x000001de, 24418 }, /* Tcedilla */
+    { 0x000001e0, 22361 }, /* racute */
     { 0x000001e3, 452 }, /* abreve */
-    { 0x000001e5, 19154 }, /* lacute */
+    { 0x000001e5, 19236 }, /* lacute */
     { 0x000001e6, 8482 }, /* cacute */
     { 0x000001e8, 8532 }, /* ccaron */
-    { 0x000001ea, 12043 }, /* eogonek */
-    { 0x000001ec, 11489 }, /* ecaron */
-    { 0x000001ef, 10372 }, /* dcaron */
-    { 0x000001f0, 11409 }, /* dstroke */
-    { 0x000001f1, 19960 }, /* nacute */
-    { 0x000001f2, 19984 }, /* ncaron */
-    { 0x000001f5, 20501 }, /* odoubleacute */
-    { 0x000001f8, 22301 }, /* rcaron */
-    { 0x000001f9, 26458 }, /* uring */
-    { 0x000001fb, 25958 }, /* udoubleacute */
-    { 0x000001fe, 24345 }, /* tcedilla */
+    { 0x000001ea, 12125 }, /* eogonek */
+    { 0x000001ec, 11571 }, /* ecaron */
+    { 0x000001ef, 10454 }, /* dcaron */
+    { 0x000001f0, 11491 }, /* dstroke */
+    { 0x000001f1, 20042 }, /* nacute */
+    { 0x000001f2, 20066 }, /* ncaron */
+    { 0x000001f5, 20583 }, /* odoubleacute */
+    { 0x000001f8, 22383 }, /* rcaron */
+    { 0x000001f9, 26540 }, /* uring */
+    { 0x000001fb, 26040 }, /* udoubleacute */
+    { 0x000001fe, 24427 }, /* tcedilla */
     { 0x000001ff, 436 }, /* abovedot */
-    { 0x000002a1, 17027 }, /* Hstroke */
-    { 0x000002a6, 16056 }, /* Hcircumflex */
-    { 0x000002a9, 17073 }, /* Iabovedot */
-    { 0x000002ab, 12689 }, /* Gbreve */
-    { 0x000002ac, 18118 }, /* Jcircumflex */
-    { 0x000002b1, 17035 }, /* hstroke */
-    { 0x000002b6, 16068 }, /* hcircumflex */
-    { 0x000002b9, 17187 }, /* idotless */
-    { 0x000002bb, 12696 }, /* gbreve */
-    { 0x000002bc, 18130 }, /* jcircumflex */
+    { 0x000002a1, 17109 }, /* Hstroke */
+    { 0x000002a6, 16138 }, /* Hcircumflex */
+    { 0x000002a9, 17155 }, /* Iabovedot */
+    { 0x000002ab, 12771 }, /* Gbreve */
+    { 0x000002ac, 18200 }, /* Jcircumflex */
+    { 0x000002b1, 17117 }, /* hstroke */
+    { 0x000002b6, 16150 }, /* hcircumflex */
+    { 0x000002b9, 17269 }, /* idotless */
+    { 0x000002bb, 12778 }, /* gbreve */
+    { 0x000002bc, 18212 }, /* jcircumflex */
     { 0x000002c5, 8455 }, /* Cabovedot */
     { 0x000002c6, 8557 }, /* Ccircumflex */
-    { 0x000002d5, 12669 }, /* Gabovedot */
-    { 0x000002d8, 12735 }, /* Gcircumflex */
-    { 0x000002dd, 25885 }, /* Ubreve */
-    { 0x000002de, 22661 }, /* Scircumflex */
+    { 0x000002d5, 12751 }, /* Gabovedot */
+    { 0x000002d8, 12817 }, /* Gcircumflex */
+    { 0x000002dd, 25967 }, /* Ubreve */
+    { 0x000002de, 22743 }, /* Scircumflex */
     { 0x000002e5, 8465 }, /* cabovedot */
     { 0x000002e6, 8569 }, /* ccircumflex */
-    { 0x000002f5, 12679 }, /* gabovedot */
-    { 0x000002f8, 12747 }, /* gcircumflex */
-    { 0x000002fd, 25892 }, /* ubreve */
-    { 0x000002fe, 22673 }, /* scircumflex */
-    { 0x000003a2, 19108 }, /* kra */
-    { 0x000003a3, 22308 }, /* Rcedilla */
-    { 0x000003a5, 18100 }, /* Itilde */
-    { 0x000003a6, 19226 }, /* Lcedilla */
-    { 0x000003aa, 11839 }, /* Emacron */
-    { 0x000003ab, 12717 }, /* Gcedilla */
-    { 0x000003ac, 25788 }, /* Tslash */
-    { 0x000003b3, 22317 }, /* rcedilla */
-    { 0x000003b5, 18107 }, /* itilde */
-    { 0x000003b6, 19235 }, /* lcedilla */
-    { 0x000003ba, 11847 }, /* emacron */
-    { 0x000003bb, 12726 }, /* gcedilla */
-    { 0x000003bc, 25795 }, /* tslash */
-    { 0x000003bd, 11983 }, /* ENG */
-    { 0x000003bf, 11987 }, /* eng */
+    { 0x000002f5, 12761 }, /* gabovedot */
+    { 0x000002f8, 12829 }, /* gcircumflex */
+    { 0x000002fd, 25974 }, /* ubreve */
+    { 0x000002fe, 22755 }, /* scircumflex */
+    { 0x000003a2, 19190 }, /* kra */
+    { 0x000003a3, 22390 }, /* Rcedilla */
+    { 0x000003a5, 18182 }, /* Itilde */
+    { 0x000003a6, 19308 }, /* Lcedilla */
+    { 0x000003aa, 11921 }, /* Emacron */
+    { 0x000003ab, 12799 }, /* Gcedilla */
+    { 0x000003ac, 25870 }, /* Tslash */
+    { 0x000003b3, 22399 }, /* rcedilla */
+    { 0x000003b5, 18189 }, /* itilde */
+    { 0x000003b6, 19317 }, /* lcedilla */
+    { 0x000003ba, 11929 }, /* emacron */
+    { 0x000003bb, 12808 }, /* gcedilla */
+    { 0x000003bc, 25877 }, /* tslash */
+    { 0x000003bd, 12065 }, /* ENG */
+    { 0x000003bf, 12069 }, /* eng */
     { 0x000003c0, 892 }, /* Amacron */
-    { 0x000003c7, 17338 }, /* Iogonek */
-    { 0x000003cc, 11428 }, /* Eabovedot */
-    { 0x000003cf, 17231 }, /* Imacron */
-    { 0x000003d1, 19991 }, /* Ncedilla */
-    { 0x000003d2, 20679 }, /* Omacron */
-    { 0x000003d3, 18779 }, /* Kcedilla */
-    { 0x000003d9, 26368 }, /* Uogonek */
-    { 0x000003dd, 26469 }, /* Utilde */
-    { 0x000003de, 26321 }, /* Umacron */
+    { 0x000003c7, 17420 }, /* Iogonek */
+    { 0x000003cc, 11510 }, /* Eabovedot */
+    { 0x000003cf, 17313 }, /* Imacron */
+    { 0x000003d1, 20073 }, /* Ncedilla */
+    { 0x000003d2, 20761 }, /* Omacron */
+    { 0x000003d3, 18861 }, /* Kcedilla */
+    { 0x000003d9, 26450 }, /* Uogonek */
+    { 0x000003dd, 26551 }, /* Utilde */
+    { 0x000003de, 26403 }, /* Umacron */
     { 0x000003e0, 900 }, /* amacron */
-    { 0x000003e7, 17346 }, /* iogonek */
-    { 0x000003ec, 11438 }, /* eabovedot */
-    { 0x000003ef, 17239 }, /* imacron */
-    { 0x000003f1, 20000 }, /* ncedilla */
-    { 0x000003f2, 20687 }, /* omacron */
-    { 0x000003f3, 18788 }, /* kcedilla */
-    { 0x000003f9, 26376 }, /* uogonek */
-    { 0x000003fd, 26476 }, /* utilde */
-    { 0x000003fe, 26329 }, /* umacron */
-    { 0x0000047e, 21364 }, /* overline */
-    { 0x000004a1, 18243 }, /* kana_fullstop */
-    { 0x000004a2, 18477 }, /* kana_openingbracket */
-    { 0x000004a3, 18173 }, /* kana_closingbracket */
-    { 0x000004a4, 18193 }, /* kana_comma */
-    { 0x000004a5, 18204 }, /* kana_conjunctive */
-    { 0x000004a6, 18689 }, /* kana_WO */
-    { 0x000004a7, 18150 }, /* kana_a */
-    { 0x000004a8, 18297 }, /* kana_i */
-    { 0x000004a9, 18667 }, /* kana_u */
-    { 0x000004aa, 18221 }, /* kana_e */
-    { 0x000004ab, 18463 }, /* kana_o */
-    { 0x000004ac, 18697 }, /* kana_ya */
-    { 0x000004ad, 18729 }, /* kana_yu */
-    { 0x000004ae, 18713 }, /* kana_yo */
-    { 0x000004af, 18633 }, /* kana_tsu */
-    { 0x000004b0, 22130 }, /* prolongedsound */
-    { 0x000004b1, 18157 }, /* kana_A */
-    { 0x000004b2, 18304 }, /* kana_I */
-    { 0x000004b3, 18674 }, /* kana_U */
-    { 0x000004b4, 18228 }, /* kana_E */
-    { 0x000004b5, 18470 }, /* kana_O */
-    { 0x000004b6, 18311 }, /* kana_KA */
-    { 0x000004b7, 18327 }, /* kana_KI */
-    { 0x000004b8, 18343 }, /* kana_KU */
-    { 0x000004b9, 18319 }, /* kana_KE */
-    { 0x000004ba, 18335 }, /* kana_KO */
-    { 0x000004bb, 18537 }, /* kana_SA */
-    { 0x000004bc, 18553 }, /* kana_SHI */
-    { 0x000004bd, 18581 }, /* kana_SU */
-    { 0x000004be, 18545 }, /* kana_SE */
-    { 0x000004bf, 18573 }, /* kana_SO */
-    { 0x000004c0, 18601 }, /* kana_TA */
-    { 0x000004c1, 18164 }, /* kana_CHI */
-    { 0x000004c2, 18642 }, /* kana_TSU */
-    { 0x000004c3, 18609 }, /* kana_TE */
-    { 0x000004c4, 18625 }, /* kana_TO */
-    { 0x000004c5, 18423 }, /* kana_NA */
-    { 0x000004c6, 18439 }, /* kana_NI */
-    { 0x000004c7, 18455 }, /* kana_NU */
-    { 0x000004c8, 18431 }, /* kana_NE */
-    { 0x000004c9, 18447 }, /* kana_NO */
-    { 0x000004ca, 18257 }, /* kana_HA */
-    { 0x000004cb, 18273 }, /* kana_HI */
-    { 0x000004cc, 18235 }, /* kana_FU */
-    { 0x000004cd, 18265 }, /* kana_HE */
-    { 0x000004ce, 18281 }, /* kana_HO */
-    { 0x000004cf, 18361 }, /* kana_MA */
-    { 0x000004d0, 18377 }, /* kana_MI */
-    { 0x000004d1, 18408 }, /* kana_MU */
-    { 0x000004d2, 18369 }, /* kana_ME */
-    { 0x000004d3, 18400 }, /* kana_MO */
-    { 0x000004d4, 18705 }, /* kana_YA */
-    { 0x000004d5, 18737 }, /* kana_YU */
-    { 0x000004d6, 18721 }, /* kana_YO */
-    { 0x000004d7, 18497 }, /* kana_RA */
-    { 0x000004d8, 18513 }, /* kana_RI */
-    { 0x000004d9, 18529 }, /* kana_RU */
-    { 0x000004da, 18505 }, /* kana_RE */
-    { 0x000004db, 18521 }, /* kana_RO */
-    { 0x000004dc, 18681 }, /* kana_WA */
-    { 0x000004dd, 18416 }, /* kana_N */
-    { 0x000004de, 26519 }, /* voicedsound */
-    { 0x000004df, 22744 }, /* semivoicedsound */
+    { 0x000003e7, 17428 }, /* iogonek */
+    { 0x000003ec, 11520 }, /* eabovedot */
+    { 0x000003ef, 17321 }, /* imacron */
+    { 0x000003f1, 20082 }, /* ncedilla */
+    { 0x000003f2, 20769 }, /* omacron */
+    { 0x000003f3, 18870 }, /* kcedilla */
+    { 0x000003f9, 26458 }, /* uogonek */
+    { 0x000003fd, 26558 }, /* utilde */
+    { 0x000003fe, 26411 }, /* umacron */
+    { 0x0000047e, 21446 }, /* overline */
+    { 0x000004a1, 18325 }, /* kana_fullstop */
+    { 0x000004a2, 18559 }, /* kana_openingbracket */
+    { 0x000004a3, 18255 }, /* kana_closingbracket */
+    { 0x000004a4, 18275 }, /* kana_comma */
+    { 0x000004a5, 18286 }, /* kana_conjunctive */
+    { 0x000004a6, 18771 }, /* kana_WO */
+    { 0x000004a7, 18232 }, /* kana_a */
+    { 0x000004a8, 18379 }, /* kana_i */
+    { 0x000004a9, 18749 }, /* kana_u */
+    { 0x000004aa, 18303 }, /* kana_e */
+    { 0x000004ab, 18545 }, /* kana_o */
+    { 0x000004ac, 18779 }, /* kana_ya */
+    { 0x000004ad, 18811 }, /* kana_yu */
+    { 0x000004ae, 18795 }, /* kana_yo */
+    { 0x000004af, 18715 }, /* kana_tsu */
+    { 0x000004b0, 22212 }, /* prolongedsound */
+    { 0x000004b1, 18239 }, /* kana_A */
+    { 0x000004b2, 18386 }, /* kana_I */
+    { 0x000004b3, 18756 }, /* kana_U */
+    { 0x000004b4, 18310 }, /* kana_E */
+    { 0x000004b5, 18552 }, /* kana_O */
+    { 0x000004b6, 18393 }, /* kana_KA */
+    { 0x000004b7, 18409 }, /* kana_KI */
+    { 0x000004b8, 18425 }, /* kana_KU */
+    { 0x000004b9, 18401 }, /* kana_KE */
+    { 0x000004ba, 18417 }, /* kana_KO */
+    { 0x000004bb, 18619 }, /* kana_SA */
+    { 0x000004bc, 18635 }, /* kana_SHI */
+    { 0x000004bd, 18663 }, /* kana_SU */
+    { 0x000004be, 18627 }, /* kana_SE */
+    { 0x000004bf, 18655 }, /* kana_SO */
+    { 0x000004c0, 18683 }, /* kana_TA */
+    { 0x000004c1, 18246 }, /* kana_CHI */
+    { 0x000004c2, 18724 }, /* kana_TSU */
+    { 0x000004c3, 18691 }, /* kana_TE */
+    { 0x000004c4, 18707 }, /* kana_TO */
+    { 0x000004c5, 18505 }, /* kana_NA */
+    { 0x000004c6, 18521 }, /* kana_NI */
+    { 0x000004c7, 18537 }, /* kana_NU */
+    { 0x000004c8, 18513 }, /* kana_NE */
+    { 0x000004c9, 18529 }, /* kana_NO */
+    { 0x000004ca, 18339 }, /* kana_HA */
+    { 0x000004cb, 18355 }, /* kana_HI */
+    { 0x000004cc, 18317 }, /* kana_FU */
+    { 0x000004cd, 18347 }, /* kana_HE */
+    { 0x000004ce, 18363 }, /* kana_HO */
+    { 0x000004cf, 18443 }, /* kana_MA */
+    { 0x000004d0, 18459 }, /* kana_MI */
+    { 0x000004d1, 18490 }, /* kana_MU */
+    { 0x000004d2, 18451 }, /* kana_ME */
+    { 0x000004d3, 18482 }, /* kana_MO */
+    { 0x000004d4, 18787 }, /* kana_YA */
+    { 0x000004d5, 18819 }, /* kana_YU */
+    { 0x000004d6, 18803 }, /* kana_YO */
+    { 0x000004d7, 18579 }, /* kana_RA */
+    { 0x000004d8, 18595 }, /* kana_RI */
+    { 0x000004d9, 18611 }, /* kana_RU */
+    { 0x000004da, 18587 }, /* kana_RE */
+    { 0x000004db, 18603 }, /* kana_RO */
+    { 0x000004dc, 18763 }, /* kana_WA */
+    { 0x000004dd, 18498 }, /* kana_N */
+    { 0x000004de, 26601 }, /* voicedsound */
+    { 0x000004df, 22826 }, /* semivoicedsound */
     { 0x000005ac, 1109 }, /* Arabic_comma */
     { 0x000005bb, 1764 }, /* Arabic_semicolon */
     { 0x000005bf, 1698 }, /* Arabic_question_mark */
@@ -5260,555 +5861,555 @@
     { 0x000005f0, 1515 }, /* Arabic_kasra */
     { 0x000005f1, 1781 }, /* Arabic_shadda */
     { 0x000005f2, 1808 }, /* Arabic_sukun */
-    { 0x000006a1, 22760 }, /* Serbian_dje */
-    { 0x000006a2, 19585 }, /* Macedonia_gje */
-    { 0x000006a3, 9456 }, /* Cyrillic_io */
-    { 0x000006a4, 26199 }, /* Ukrainian_ie */
-    { 0x000006a5, 19557 }, /* Macedonia_dse */
-    { 0x000006a6, 26175 }, /* Ukrainian_i */
-    { 0x000006a7, 26225 }, /* Ukrainian_yi */
-    { 0x000006a8, 9480 }, /* Cyrillic_je */
-    { 0x000006a9, 9618 }, /* Cyrillic_lje */
-    { 0x000006aa, 9644 }, /* Cyrillic_nje */
-    { 0x000006ab, 22878 }, /* Serbian_tshe */
-    { 0x000006ac, 19613 }, /* Macedonia_kje */
-    { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */
+    { 0x000006a1, 22842 }, /* Serbian_dje */
+    { 0x000006a2, 19667 }, /* Macedonia_gje */
+    { 0x000006a3, 9538 }, /* Cyrillic_io */
+    { 0x000006a4, 26281 }, /* Ukrainian_ie */
+    { 0x000006a5, 19639 }, /* Macedonia_dse */
+    { 0x000006a6, 26257 }, /* Ukrainian_i */
+    { 0x000006a7, 26307 }, /* Ukrainian_yi */
+    { 0x000006a8, 9562 }, /* Cyrillic_je */
+    { 0x000006a9, 9700 }, /* Cyrillic_lje */
+    { 0x000006aa, 9726 }, /* Cyrillic_nje */
+    { 0x000006ab, 22960 }, /* Serbian_tshe */
+    { 0x000006ac, 19695 }, /* Macedonia_kje */
+    { 0x000006ad, 26205 }, /* Ukrainian_ghe_with_upturn */
     { 0x000006ae, 8399 }, /* Byelorussian_shortu */
-    { 0x000006af, 8972 }, /* Cyrillic_dzhe */
-    { 0x000006b0, 20189 }, /* numerosign */
-    { 0x000006b1, 22772 }, /* Serbian_DJE */
-    { 0x000006b2, 19599 }, /* Macedonia_GJE */
-    { 0x000006b3, 9468 }, /* Cyrillic_IO */
-    { 0x000006b4, 26212 }, /* Ukrainian_IE */
-    { 0x000006b5, 19571 }, /* Macedonia_DSE */
-    { 0x000006b6, 26187 }, /* Ukrainian_I */
-    { 0x000006b7, 26238 }, /* Ukrainian_YI */
-    { 0x000006b8, 9492 }, /* Cyrillic_JE */
-    { 0x000006b9, 9631 }, /* Cyrillic_LJE */
-    { 0x000006ba, 9657 }, /* Cyrillic_NJE */
-    { 0x000006bb, 22891 }, /* Serbian_TSHE */
-    { 0x000006bc, 19627 }, /* Macedonia_KJE */
-    { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */
+    { 0x000006af, 9054 }, /* Cyrillic_dzhe */
+    { 0x000006b0, 20271 }, /* numerosign */
+    { 0x000006b1, 22854 }, /* Serbian_DJE */
+    { 0x000006b2, 19681 }, /* Macedonia_GJE */
+    { 0x000006b3, 9550 }, /* Cyrillic_IO */
+    { 0x000006b4, 26294 }, /* Ukrainian_IE */
+    { 0x000006b5, 19653 }, /* Macedonia_DSE */
+    { 0x000006b6, 26269 }, /* Ukrainian_I */
+    { 0x000006b7, 26320 }, /* Ukrainian_YI */
+    { 0x000006b8, 9574 }, /* Cyrillic_JE */
+    { 0x000006b9, 9713 }, /* Cyrillic_LJE */
+    { 0x000006ba, 9739 }, /* Cyrillic_NJE */
+    { 0x000006bb, 22973 }, /* Serbian_TSHE */
+    { 0x000006bc, 19709 }, /* Macedonia_KJE */
+    { 0x000006bd, 26231 }, /* Ukrainian_GHE_WITH_UPTURN */
     { 0x000006be, 8419 }, /* Byelorussian_SHORTU */
-    { 0x000006bf, 8986 }, /* Cyrillic_DZHE */
-    { 0x000006c0, 10200 }, /* Cyrillic_yu */
-    { 0x000006c1, 8782 }, /* Cyrillic_a */
-    { 0x000006c2, 8804 }, /* Cyrillic_be */
-    { 0x000006c3, 9952 }, /* Cyrillic_tse */
-    { 0x000006c4, 8948 }, /* Cyrillic_de */
-    { 0x000006c5, 9432 }, /* Cyrillic_ie */
-    { 0x000006c6, 9022 }, /* Cyrillic_ef */
-    { 0x000006c7, 9210 }, /* Cyrillic_ghe */
-    { 0x000006c8, 9270 }, /* Cyrillic_ha */
-    { 0x000006c9, 9374 }, /* Cyrillic_i */
-    { 0x000006ca, 9860 }, /* Cyrillic_shorti */
-    { 0x000006cb, 9504 }, /* Cyrillic_ka */
-    { 0x000006cc, 9046 }, /* Cyrillic_el */
-    { 0x000006cd, 9070 }, /* Cyrillic_em */
-    { 0x000006ce, 9094 }, /* Cyrillic_en */
-    { 0x000006cf, 9670 }, /* Cyrillic_o */
-    { 0x000006d0, 9722 }, /* Cyrillic_pe */
-    { 0x000006d1, 10148 }, /* Cyrillic_ya */
-    { 0x000006d2, 9162 }, /* Cyrillic_er */
-    { 0x000006d3, 9186 }, /* Cyrillic_es */
-    { 0x000006d4, 9928 }, /* Cyrillic_te */
-    { 0x000006d5, 9978 }, /* Cyrillic_u */
-    { 0x000006d6, 10248 }, /* Cyrillic_zhe */
-    { 0x000006d7, 10124 }, /* Cyrillic_ve */
-    { 0x000006d8, 9892 }, /* Cyrillic_softsign */
-    { 0x000006d9, 10172 }, /* Cyrillic_yeru */
-    { 0x000006da, 10224 }, /* Cyrillic_ze */
-    { 0x000006db, 9776 }, /* Cyrillic_sha */
-    { 0x000006dc, 9000 }, /* Cyrillic_e */
-    { 0x000006dd, 9802 }, /* Cyrillic_shcha */
-    { 0x000006de, 8828 }, /* Cyrillic_che */
-    { 0x000006df, 9338 }, /* Cyrillic_hardsign */
-    { 0x000006e0, 10212 }, /* Cyrillic_YU */
-    { 0x000006e1, 8793 }, /* Cyrillic_A */
-    { 0x000006e2, 8816 }, /* Cyrillic_BE */
-    { 0x000006e3, 9965 }, /* Cyrillic_TSE */
-    { 0x000006e4, 8960 }, /* Cyrillic_DE */
-    { 0x000006e5, 9444 }, /* Cyrillic_IE */
-    { 0x000006e6, 9034 }, /* Cyrillic_EF */
-    { 0x000006e7, 9223 }, /* Cyrillic_GHE */
-    { 0x000006e8, 9282 }, /* Cyrillic_HA */
-    { 0x000006e9, 9385 }, /* Cyrillic_I */
-    { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */
-    { 0x000006eb, 9516 }, /* Cyrillic_KA */
-    { 0x000006ec, 9058 }, /* Cyrillic_EL */
-    { 0x000006ed, 9082 }, /* Cyrillic_EM */
-    { 0x000006ee, 9106 }, /* Cyrillic_EN */
-    { 0x000006ef, 9681 }, /* Cyrillic_O */
-    { 0x000006f0, 9734 }, /* Cyrillic_PE */
-    { 0x000006f1, 10160 }, /* Cyrillic_YA */
-    { 0x000006f2, 9174 }, /* Cyrillic_ER */
-    { 0x000006f3, 9198 }, /* Cyrillic_ES */
-    { 0x000006f4, 9940 }, /* Cyrillic_TE */
-    { 0x000006f5, 9989 }, /* Cyrillic_U */
-    { 0x000006f6, 10261 }, /* Cyrillic_ZHE */
-    { 0x000006f7, 10136 }, /* Cyrillic_VE */
-    { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */
-    { 0x000006f9, 10186 }, /* Cyrillic_YERU */
-    { 0x000006fa, 10236 }, /* Cyrillic_ZE */
-    { 0x000006fb, 9789 }, /* Cyrillic_SHA */
-    { 0x000006fc, 9011 }, /* Cyrillic_E */
-    { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */
-    { 0x000006fe, 8841 }, /* Cyrillic_CHE */
-    { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */
-    { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */
-    { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */
-    { 0x000007a3, 13532 }, /* Greek_ETAaccent */
-    { 0x000007a4, 13647 }, /* Greek_IOTAaccent */
-    { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */
-    { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */
-    { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */
-    { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */
-    { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */
-    { 0x000007ae, 13297 }, /* Greek_accentdieresis */
-    { 0x000007af, 13610 }, /* Greek_horizbar */
-    { 0x000007b1, 13360 }, /* Greek_alphaaccent */
-    { 0x000007b2, 13492 }, /* Greek_epsilonaccent */
-    { 0x000007b3, 13548 }, /* Greek_etaaccent */
-    { 0x000007b4, 13664 }, /* Greek_iotaaccent */
-    { 0x000007b5, 13745 }, /* Greek_iotadieresis */
-    { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */
-    { 0x000007b7, 13982 }, /* Greek_omicronaccent */
-    { 0x000007b8, 14209 }, /* Greek_upsilonaccent */
-    { 0x000007b9, 14279 }, /* Greek_upsilondieresis */
-    { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */
-    { 0x000007bb, 13916 }, /* Greek_omegaaccent */
-    { 0x000007c1, 13318 }, /* Greek_ALPHA */
-    { 0x000007c2, 13378 }, /* Greek_BETA */
-    { 0x000007c3, 13586 }, /* Greek_GAMMA */
-    { 0x000007c4, 13420 }, /* Greek_DELTA */
-    { 0x000007c5, 13444 }, /* Greek_EPSILON */
-    { 0x000007c6, 14319 }, /* Greek_ZETA */
-    { 0x000007c7, 13512 }, /* Greek_ETA */
-    { 0x000007c8, 14137 }, /* Greek_THETA */
-    { 0x000007c9, 13625 }, /* Greek_IOTA */
-    { 0x000007ca, 13764 }, /* Greek_KAPPA */
-    { 0x000007cb, 13814 }, /* Greek_LAMDA */
-    { 0x000007cc, 13838 }, /* Greek_MU */
-    { 0x000007cd, 13856 }, /* Greek_NU */
-    { 0x000007ce, 14301 }, /* Greek_XI */
-    { 0x000007cf, 13934 }, /* Greek_OMICRON */
-    { 0x000007d0, 14022 }, /* Greek_PI */
-    { 0x000007d1, 14060 }, /* Greek_RHO */
-    { 0x000007d2, 14080 }, /* Greek_SIGMA */
-    { 0x000007d4, 14117 }, /* Greek_TAU */
-    { 0x000007d5, 14161 }, /* Greek_UPSILON */
-    { 0x000007d6, 14002 }, /* Greek_PHI */
-    { 0x000007d7, 13400 }, /* Greek_CHI */
-    { 0x000007d8, 14040 }, /* Greek_PSI */
-    { 0x000007d9, 13874 }, /* Greek_OMEGA */
-    { 0x000007e1, 13330 }, /* Greek_alpha */
-    { 0x000007e2, 13389 }, /* Greek_beta */
-    { 0x000007e3, 13598 }, /* Greek_gamma */
-    { 0x000007e4, 13432 }, /* Greek_delta */
-    { 0x000007e5, 13458 }, /* Greek_epsilon */
-    { 0x000007e6, 14330 }, /* Greek_zeta */
-    { 0x000007e7, 13522 }, /* Greek_eta */
-    { 0x000007e8, 14149 }, /* Greek_theta */
-    { 0x000007e9, 13636 }, /* Greek_iota */
-    { 0x000007ea, 13776 }, /* Greek_kappa */
-    { 0x000007eb, 13826 }, /* Greek_lamda */
-    { 0x000007ec, 13847 }, /* Greek_mu */
-    { 0x000007ed, 13865 }, /* Greek_nu */
-    { 0x000007ee, 14310 }, /* Greek_xi */
-    { 0x000007ef, 13948 }, /* Greek_omicron */
-    { 0x000007f0, 14031 }, /* Greek_pi */
-    { 0x000007f1, 14070 }, /* Greek_rho */
-    { 0x000007f2, 14092 }, /* Greek_sigma */
-    { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */
-    { 0x000007f4, 14127 }, /* Greek_tau */
-    { 0x000007f5, 14175 }, /* Greek_upsilon */
-    { 0x000007f6, 14012 }, /* Greek_phi */
-    { 0x000007f7, 13410 }, /* Greek_chi */
-    { 0x000007f8, 14050 }, /* Greek_psi */
-    { 0x000007f9, 13886 }, /* Greek_omega */
-    { 0x000008a1, 19356 }, /* leftradical */
-    { 0x000008a2, 25621 }, /* topleftradical */
-    { 0x000008a3, 16667 }, /* horizconnector */
-    { 0x000008a4, 25595 }, /* topintegral */
+    { 0x000006bf, 9068 }, /* Cyrillic_DZHE */
+    { 0x000006c0, 10282 }, /* Cyrillic_yu */
+    { 0x000006c1, 8864 }, /* Cyrillic_a */
+    { 0x000006c2, 8886 }, /* Cyrillic_be */
+    { 0x000006c3, 10034 }, /* Cyrillic_tse */
+    { 0x000006c4, 9030 }, /* Cyrillic_de */
+    { 0x000006c5, 9514 }, /* Cyrillic_ie */
+    { 0x000006c6, 9104 }, /* Cyrillic_ef */
+    { 0x000006c7, 9292 }, /* Cyrillic_ghe */
+    { 0x000006c8, 9352 }, /* Cyrillic_ha */
+    { 0x000006c9, 9456 }, /* Cyrillic_i */
+    { 0x000006ca, 9942 }, /* Cyrillic_shorti */
+    { 0x000006cb, 9586 }, /* Cyrillic_ka */
+    { 0x000006cc, 9128 }, /* Cyrillic_el */
+    { 0x000006cd, 9152 }, /* Cyrillic_em */
+    { 0x000006ce, 9176 }, /* Cyrillic_en */
+    { 0x000006cf, 9752 }, /* Cyrillic_o */
+    { 0x000006d0, 9804 }, /* Cyrillic_pe */
+    { 0x000006d1, 10230 }, /* Cyrillic_ya */
+    { 0x000006d2, 9244 }, /* Cyrillic_er */
+    { 0x000006d3, 9268 }, /* Cyrillic_es */
+    { 0x000006d4, 10010 }, /* Cyrillic_te */
+    { 0x000006d5, 10060 }, /* Cyrillic_u */
+    { 0x000006d6, 10330 }, /* Cyrillic_zhe */
+    { 0x000006d7, 10206 }, /* Cyrillic_ve */
+    { 0x000006d8, 9974 }, /* Cyrillic_softsign */
+    { 0x000006d9, 10254 }, /* Cyrillic_yeru */
+    { 0x000006da, 10306 }, /* Cyrillic_ze */
+    { 0x000006db, 9858 }, /* Cyrillic_sha */
+    { 0x000006dc, 9082 }, /* Cyrillic_e */
+    { 0x000006dd, 9884 }, /* Cyrillic_shcha */
+    { 0x000006de, 8910 }, /* Cyrillic_che */
+    { 0x000006df, 9420 }, /* Cyrillic_hardsign */
+    { 0x000006e0, 10294 }, /* Cyrillic_YU */
+    { 0x000006e1, 8875 }, /* Cyrillic_A */
+    { 0x000006e2, 8898 }, /* Cyrillic_BE */
+    { 0x000006e3, 10047 }, /* Cyrillic_TSE */
+    { 0x000006e4, 9042 }, /* Cyrillic_DE */
+    { 0x000006e5, 9526 }, /* Cyrillic_IE */
+    { 0x000006e6, 9116 }, /* Cyrillic_EF */
+    { 0x000006e7, 9305 }, /* Cyrillic_GHE */
+    { 0x000006e8, 9364 }, /* Cyrillic_HA */
+    { 0x000006e9, 9467 }, /* Cyrillic_I */
+    { 0x000006ea, 9958 }, /* Cyrillic_SHORTI */
+    { 0x000006eb, 9598 }, /* Cyrillic_KA */
+    { 0x000006ec, 9140 }, /* Cyrillic_EL */
+    { 0x000006ed, 9164 }, /* Cyrillic_EM */
+    { 0x000006ee, 9188 }, /* Cyrillic_EN */
+    { 0x000006ef, 9763 }, /* Cyrillic_O */
+    { 0x000006f0, 9816 }, /* Cyrillic_PE */
+    { 0x000006f1, 10242 }, /* Cyrillic_YA */
+    { 0x000006f2, 9256 }, /* Cyrillic_ER */
+    { 0x000006f3, 9280 }, /* Cyrillic_ES */
+    { 0x000006f4, 10022 }, /* Cyrillic_TE */
+    { 0x000006f5, 10071 }, /* Cyrillic_U */
+    { 0x000006f6, 10343 }, /* Cyrillic_ZHE */
+    { 0x000006f7, 10218 }, /* Cyrillic_VE */
+    { 0x000006f8, 9992 }, /* Cyrillic_SOFTSIGN */
+    { 0x000006f9, 10268 }, /* Cyrillic_YERU */
+    { 0x000006fa, 10318 }, /* Cyrillic_ZE */
+    { 0x000006fb, 9871 }, /* Cyrillic_SHA */
+    { 0x000006fc, 9093 }, /* Cyrillic_E */
+    { 0x000006fd, 9899 }, /* Cyrillic_SHCHA */
+    { 0x000006fe, 8923 }, /* Cyrillic_CHE */
+    { 0x000006ff, 9438 }, /* Cyrillic_HARDSIGN */
+    { 0x000007a1, 13424 }, /* Greek_ALPHAaccent */
+    { 0x000007a2, 13554 }, /* Greek_EPSILONaccent */
+    { 0x000007a3, 13614 }, /* Greek_ETAaccent */
+    { 0x000007a4, 13729 }, /* Greek_IOTAaccent */
+    { 0x000007a5, 13808 }, /* Greek_IOTAdieresis */
+    { 0x000007a7, 14044 }, /* Greek_OMICRONaccent */
+    { 0x000007a8, 14271 }, /* Greek_UPSILONaccent */
+    { 0x000007a9, 14339 }, /* Greek_UPSILONdieresis */
+    { 0x000007ab, 13980 }, /* Greek_OMEGAaccent */
+    { 0x000007ae, 13379 }, /* Greek_accentdieresis */
+    { 0x000007af, 13692 }, /* Greek_horizbar */
+    { 0x000007b1, 13442 }, /* Greek_alphaaccent */
+    { 0x000007b2, 13574 }, /* Greek_epsilonaccent */
+    { 0x000007b3, 13630 }, /* Greek_etaaccent */
+    { 0x000007b4, 13746 }, /* Greek_iotaaccent */
+    { 0x000007b5, 13827 }, /* Greek_iotadieresis */
+    { 0x000007b6, 13763 }, /* Greek_iotaaccentdieresis */
+    { 0x000007b7, 14064 }, /* Greek_omicronaccent */
+    { 0x000007b8, 14291 }, /* Greek_upsilonaccent */
+    { 0x000007b9, 14361 }, /* Greek_upsilondieresis */
+    { 0x000007ba, 14311 }, /* Greek_upsilonaccentdieresis */
+    { 0x000007bb, 13998 }, /* Greek_omegaaccent */
+    { 0x000007c1, 13400 }, /* Greek_ALPHA */
+    { 0x000007c2, 13460 }, /* Greek_BETA */
+    { 0x000007c3, 13668 }, /* Greek_GAMMA */
+    { 0x000007c4, 13502 }, /* Greek_DELTA */
+    { 0x000007c5, 13526 }, /* Greek_EPSILON */
+    { 0x000007c6, 14401 }, /* Greek_ZETA */
+    { 0x000007c7, 13594 }, /* Greek_ETA */
+    { 0x000007c8, 14219 }, /* Greek_THETA */
+    { 0x000007c9, 13707 }, /* Greek_IOTA */
+    { 0x000007ca, 13846 }, /* Greek_KAPPA */
+    { 0x000007cb, 13896 }, /* Greek_LAMDA */
+    { 0x000007cc, 13920 }, /* Greek_MU */
+    { 0x000007cd, 13938 }, /* Greek_NU */
+    { 0x000007ce, 14383 }, /* Greek_XI */
+    { 0x000007cf, 14016 }, /* Greek_OMICRON */
+    { 0x000007d0, 14104 }, /* Greek_PI */
+    { 0x000007d1, 14142 }, /* Greek_RHO */
+    { 0x000007d2, 14162 }, /* Greek_SIGMA */
+    { 0x000007d4, 14199 }, /* Greek_TAU */
+    { 0x000007d5, 14243 }, /* Greek_UPSILON */
+    { 0x000007d6, 14084 }, /* Greek_PHI */
+    { 0x000007d7, 13482 }, /* Greek_CHI */
+    { 0x000007d8, 14122 }, /* Greek_PSI */
+    { 0x000007d9, 13956 }, /* Greek_OMEGA */
+    { 0x000007e1, 13412 }, /* Greek_alpha */
+    { 0x000007e2, 13471 }, /* Greek_beta */
+    { 0x000007e3, 13680 }, /* Greek_gamma */
+    { 0x000007e4, 13514 }, /* Greek_delta */
+    { 0x000007e5, 13540 }, /* Greek_epsilon */
+    { 0x000007e6, 14412 }, /* Greek_zeta */
+    { 0x000007e7, 13604 }, /* Greek_eta */
+    { 0x000007e8, 14231 }, /* Greek_theta */
+    { 0x000007e9, 13718 }, /* Greek_iota */
+    { 0x000007ea, 13858 }, /* Greek_kappa */
+    { 0x000007eb, 13908 }, /* Greek_lamda */
+    { 0x000007ec, 13929 }, /* Greek_mu */
+    { 0x000007ed, 13947 }, /* Greek_nu */
+    { 0x000007ee, 14392 }, /* Greek_xi */
+    { 0x000007ef, 14030 }, /* Greek_omicron */
+    { 0x000007f0, 14113 }, /* Greek_pi */
+    { 0x000007f1, 14152 }, /* Greek_rho */
+    { 0x000007f2, 14174 }, /* Greek_sigma */
+    { 0x000007f3, 13646 }, /* Greek_finalsmallsigma */
+    { 0x000007f4, 14209 }, /* Greek_tau */
+    { 0x000007f5, 14257 }, /* Greek_upsilon */
+    { 0x000007f6, 14094 }, /* Greek_phi */
+    { 0x000007f7, 13492 }, /* Greek_chi */
+    { 0x000007f8, 14132 }, /* Greek_psi */
+    { 0x000007f9, 13968 }, /* Greek_omega */
+    { 0x000008a1, 19438 }, /* leftradical */
+    { 0x000008a2, 25703 }, /* topleftradical */
+    { 0x000008a3, 16749 }, /* horizconnector */
+    { 0x000008a4, 25677 }, /* topintegral */
     { 0x000008a5, 3422 }, /* botintegral */
-    { 0x000008a6, 26505 }, /* vertconnector */
-    { 0x000008a7, 25636 }, /* topleftsqbracket */
+    { 0x000008a6, 26587 }, /* vertconnector */
+    { 0x000008a7, 25718 }, /* topleftsqbracket */
     { 0x000008a8, 3448 }, /* botleftsqbracket */
-    { 0x000008a9, 25685 }, /* toprightsqbracket */
+    { 0x000008a9, 25767 }, /* toprightsqbracket */
     { 0x000008aa, 3497 }, /* botrightsqbracket */
-    { 0x000008ab, 25607 }, /* topleftparens */
+    { 0x000008ab, 25689 }, /* topleftparens */
     { 0x000008ac, 3434 }, /* botleftparens */
-    { 0x000008ad, 25670 }, /* toprightparens */
+    { 0x000008ad, 25752 }, /* toprightparens */
     { 0x000008ae, 3482 }, /* botrightparens */
-    { 0x000008af, 19306 }, /* leftmiddlecurlybrace */
-    { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */
-    { 0x000008b1, 25653 }, /* topleftsummation */
+    { 0x000008af, 19388 }, /* leftmiddlecurlybrace */
+    { 0x000008b0, 22522 }, /* rightmiddlecurlybrace */
+    { 0x000008b1, 25735 }, /* topleftsummation */
     { 0x000008b2, 3465 }, /* botleftsummation */
-    { 0x000008b3, 25726 }, /* topvertsummationconnector */
+    { 0x000008b3, 25808 }, /* topvertsummationconnector */
     { 0x000008b4, 3538 }, /* botvertsummationconnector */
-    { 0x000008b5, 25703 }, /* toprightsummation */
+    { 0x000008b5, 25785 }, /* toprightsummation */
     { 0x000008b6, 3515 }, /* botrightsummation */
-    { 0x000008b7, 22462 }, /* rightmiddlesummation */
-    { 0x000008bc, 19417 }, /* lessthanequal */
-    { 0x000008bd, 20125 }, /* notequal */
-    { 0x000008be, 13280 }, /* greaterthanequal */
-    { 0x000008bf, 17313 }, /* integral */
-    { 0x000008c0, 25479 }, /* therefore */
-    { 0x000008c1, 26487 }, /* variation */
-    { 0x000008c2, 17275 }, /* infinity */
-    { 0x000008c5, 19947 }, /* nabla */
+    { 0x000008b7, 22544 }, /* rightmiddlesummation */
+    { 0x000008bc, 19499 }, /* lessthanequal */
+    { 0x000008bd, 20207 }, /* notequal */
+    { 0x000008be, 13362 }, /* greaterthanequal */
+    { 0x000008bf, 17395 }, /* integral */
+    { 0x000008c0, 25561 }, /* therefore */
+    { 0x000008c1, 26569 }, /* variation */
+    { 0x000008c2, 17357 }, /* infinity */
+    { 0x000008c5, 20029 }, /* nabla */
     { 0x000008c8, 954 }, /* approximate */
-    { 0x000008c9, 22999 }, /* similarequal */
-    { 0x000008cd, 17196 }, /* ifonlyif */
-    { 0x000008ce, 17247 }, /* implies */
-    { 0x000008cf, 17155 }, /* identical */
-    { 0x000008d6, 22286 }, /* radical */
-    { 0x000008da, 17255 }, /* includedin */
-    { 0x000008db, 17266 }, /* includes */
-    { 0x000008dc, 17322 }, /* intersection */
-    { 0x000008dd, 26362 }, /* union */
-    { 0x000008de, 19457 }, /* logicaland */
-    { 0x000008df, 19468 }, /* logicalor */
-    { 0x000008ef, 21463 }, /* partialderivative */
-    { 0x000008f6, 12656 }, /* function */
-    { 0x000008fb, 19266 }, /* leftarrow */
-    { 0x000008fc, 26387 }, /* uparrow */
-    { 0x000008fd, 22397 }, /* rightarrow */
-    { 0x000008fe, 11332 }, /* downarrow */
+    { 0x000008c9, 23081 }, /* similarequal */
+    { 0x000008cd, 17278 }, /* ifonlyif */
+    { 0x000008ce, 17329 }, /* implies */
+    { 0x000008cf, 17237 }, /* identical */
+    { 0x000008d6, 22368 }, /* radical */
+    { 0x000008da, 17337 }, /* includedin */
+    { 0x000008db, 17348 }, /* includes */
+    { 0x000008dc, 17404 }, /* intersection */
+    { 0x000008dd, 26444 }, /* union */
+    { 0x000008de, 19539 }, /* logicaland */
+    { 0x000008df, 19550 }, /* logicalor */
+    { 0x000008ef, 21545 }, /* partialderivative */
+    { 0x000008f6, 12738 }, /* function */
+    { 0x000008fb, 19348 }, /* leftarrow */
+    { 0x000008fc, 26469 }, /* uparrow */
+    { 0x000008fd, 22479 }, /* rightarrow */
+    { 0x000008fe, 11414 }, /* downarrow */
     { 0x000009df, 3410 }, /* blank */
-    { 0x000009e0, 23790 }, /* soliddiamond */
+    { 0x000009e0, 23872 }, /* soliddiamond */
     { 0x000009e1, 8603 }, /* checkerboard */
-    { 0x000009e2, 17043 }, /* ht */
-    { 0x000009e3, 12413 }, /* ff */
-    { 0x000009e4, 8727 }, /* cr */
-    { 0x000009e5, 19431 }, /* lf */
-    { 0x000009e8, 20075 }, /* nl */
-    { 0x000009e9, 26542 }, /* vt */
-    { 0x000009ea, 19502 }, /* lowrightcorner */
-    { 0x000009eb, 26416 }, /* uprightcorner */
-    { 0x000009ec, 26403 }, /* upleftcorner */
-    { 0x000009ed, 19488 }, /* lowleftcorner */
-    { 0x000009ee, 8730 }, /* crossinglines */
-    { 0x000009ef, 16682 }, /* horizlinescan1 */
-    { 0x000009f0, 16697 }, /* horizlinescan3 */
-    { 0x000009f1, 16712 }, /* horizlinescan5 */
-    { 0x000009f2, 16727 }, /* horizlinescan7 */
-    { 0x000009f3, 16742 }, /* horizlinescan9 */
-    { 0x000009f4, 19397 }, /* leftt */
-    { 0x000009f5, 22545 }, /* rightt */
+    { 0x000009e2, 17125 }, /* ht */
+    { 0x000009e3, 12495 }, /* ff */
+    { 0x000009e4, 8809 }, /* cr */
+    { 0x000009e5, 19513 }, /* lf */
+    { 0x000009e8, 20157 }, /* nl */
+    { 0x000009e9, 26624 }, /* vt */
+    { 0x000009ea, 19584 }, /* lowrightcorner */
+    { 0x000009eb, 26498 }, /* uprightcorner */
+    { 0x000009ec, 26485 }, /* upleftcorner */
+    { 0x000009ed, 19570 }, /* lowleftcorner */
+    { 0x000009ee, 8812 }, /* crossinglines */
+    { 0x000009ef, 16764 }, /* horizlinescan1 */
+    { 0x000009f0, 16779 }, /* horizlinescan3 */
+    { 0x000009f1, 16794 }, /* horizlinescan5 */
+    { 0x000009f2, 16809 }, /* horizlinescan7 */
+    { 0x000009f3, 16824 }, /* horizlinescan9 */
+    { 0x000009f4, 19479 }, /* leftt */
+    { 0x000009f5, 22627 }, /* rightt */
     { 0x000009f6, 3533 }, /* bott */
-    { 0x000009f7, 25721 }, /* topt */
-    { 0x000009f8, 26497 }, /* vertbar */
-    { 0x00000aa1, 11928 }, /* emspace */
-    { 0x00000aa2, 12027 }, /* enspace */
-    { 0x00000aa3, 11821 }, /* em3space */
-    { 0x00000aa4, 11830 }, /* em4space */
-    { 0x00000aa5, 11221 }, /* digitspace */
-    { 0x00000aa6, 22145 }, /* punctspace */
-    { 0x00000aa7, 25489 }, /* thinspace */
-    { 0x00000aa8, 14382 }, /* hairspace */
-    { 0x00000aa9, 11855 }, /* emdash */
-    { 0x00000aaa, 11940 }, /* endash */
-    { 0x00000aac, 22987 }, /* signifblank */
-    { 0x00000aae, 11812 }, /* ellipsis */
-    { 0x00000aaf, 11267 }, /* doubbaselinedot */
-    { 0x00000ab0, 20767 }, /* onethird */
-    { 0x00000ab1, 25837 }, /* twothirds */
-    { 0x00000ab2, 20705 }, /* onefifth */
-    { 0x00000ab3, 25802 }, /* twofifths */
-    { 0x00000ab4, 25530 }, /* threefifths */
-    { 0x00000ab5, 12607 }, /* fourfifths */
-    { 0x00000ab6, 20733 }, /* onesixth */
-    { 0x00000ab7, 12569 }, /* fivesixths */
+    { 0x000009f7, 25803 }, /* topt */
+    { 0x000009f8, 26579 }, /* vertbar */
+    { 0x00000aa1, 12010 }, /* emspace */
+    { 0x00000aa2, 12109 }, /* enspace */
+    { 0x00000aa3, 11903 }, /* em3space */
+    { 0x00000aa4, 11912 }, /* em4space */
+    { 0x00000aa5, 11303 }, /* digitspace */
+    { 0x00000aa6, 22227 }, /* punctspace */
+    { 0x00000aa7, 25571 }, /* thinspace */
+    { 0x00000aa8, 14464 }, /* hairspace */
+    { 0x00000aa9, 11937 }, /* emdash */
+    { 0x00000aaa, 12022 }, /* endash */
+    { 0x00000aac, 23069 }, /* signifblank */
+    { 0x00000aae, 11894 }, /* ellipsis */
+    { 0x00000aaf, 11349 }, /* doubbaselinedot */
+    { 0x00000ab0, 20849 }, /* onethird */
+    { 0x00000ab1, 25919 }, /* twothirds */
+    { 0x00000ab2, 20787 }, /* onefifth */
+    { 0x00000ab3, 25884 }, /* twofifths */
+    { 0x00000ab4, 25612 }, /* threefifths */
+    { 0x00000ab5, 12689 }, /* fourfifths */
+    { 0x00000ab6, 20815 }, /* onesixth */
+    { 0x00000ab7, 12651 }, /* fivesixths */
     { 0x00000ab8, 8506 }, /* careof */
-    { 0x00000abb, 12427 }, /* figdash */
-    { 0x00000abc, 19249 }, /* leftanglebracket */
-    { 0x00000abd, 11140 }, /* decimalpoint */
-    { 0x00000abe, 22379 }, /* rightanglebracket */
-    { 0x00000abf, 19681 }, /* marker */
-    { 0x00000ac3, 20695 }, /* oneeighth */
-    { 0x00000ac4, 25517 }, /* threeeighths */
-    { 0x00000ac5, 12557 }, /* fiveeighths */
-    { 0x00000ac6, 22904 }, /* seveneighths */
-    { 0x00000ac9, 25760 }, /* trademark */
-    { 0x00000aca, 22973 }, /* signaturemark */
-    { 0x00000acb, 25770 }, /* trademarkincircle */
-    { 0x00000acc, 19327 }, /* leftopentriangle */
-    { 0x00000acd, 22483 }, /* rightopentriangle */
-    { 0x00000ace, 11890 }, /* emopencircle */
-    { 0x00000acf, 11903 }, /* emopenrectangle */
-    { 0x00000ad0, 19377 }, /* leftsinglequotemark */
-    { 0x00000ad1, 22524 }, /* rightsinglequotemark */
-    { 0x00000ad2, 19286 }, /* leftdoublequotemark */
-    { 0x00000ad3, 22419 }, /* rightdoublequotemark */
-    { 0x00000ad4, 22067 }, /* prescription */
-    { 0x00000ad5, 21517 }, /* permille */
-    { 0x00000ad6, 19739 }, /* minutes */
-    { 0x00000ad7, 22711 }, /* seconds */
-    { 0x00000ad9, 19181 }, /* latincross */
-    { 0x00000ada, 16626 }, /* hexagram */
-    { 0x00000adb, 12455 }, /* filledrectbullet */
-    { 0x00000adc, 12435 }, /* filledlefttribullet */
-    { 0x00000add, 12472 }, /* filledrighttribullet */
-    { 0x00000ade, 11862 }, /* emfilledcircle */
-    { 0x00000adf, 11877 }, /* emfilledrect */
-    { 0x00000ae0, 11991 }, /* enopencircbullet */
-    { 0x00000ae1, 12008 }, /* enopensquarebullet */
-    { 0x00000ae2, 20794 }, /* openrectbullet */
-    { 0x00000ae3, 20836 }, /* opentribulletup */
-    { 0x00000ae4, 20818 }, /* opentribulletdown */
-    { 0x00000ae5, 20809 }, /* openstar */
-    { 0x00000ae6, 11947 }, /* enfilledcircbullet */
-    { 0x00000ae7, 11966 }, /* enfilledsqbullet */
-    { 0x00000ae8, 12513 }, /* filledtribulletup */
-    { 0x00000ae9, 12493 }, /* filledtribulletdown */
-    { 0x00000aea, 19344 }, /* leftpointer */
-    { 0x00000aeb, 22501 }, /* rightpointer */
+    { 0x00000abb, 12509 }, /* figdash */
+    { 0x00000abc, 19331 }, /* leftanglebracket */
+    { 0x00000abd, 11222 }, /* decimalpoint */
+    { 0x00000abe, 22461 }, /* rightanglebracket */
+    { 0x00000abf, 19763 }, /* marker */
+    { 0x00000ac3, 20777 }, /* oneeighth */
+    { 0x00000ac4, 25599 }, /* threeeighths */
+    { 0x00000ac5, 12639 }, /* fiveeighths */
+    { 0x00000ac6, 22986 }, /* seveneighths */
+    { 0x00000ac9, 25842 }, /* trademark */
+    { 0x00000aca, 23055 }, /* signaturemark */
+    { 0x00000acb, 25852 }, /* trademarkincircle */
+    { 0x00000acc, 19409 }, /* leftopentriangle */
+    { 0x00000acd, 22565 }, /* rightopentriangle */
+    { 0x00000ace, 11972 }, /* emopencircle */
+    { 0x00000acf, 11985 }, /* emopenrectangle */
+    { 0x00000ad0, 19459 }, /* leftsinglequotemark */
+    { 0x00000ad1, 22606 }, /* rightsinglequotemark */
+    { 0x00000ad2, 19368 }, /* leftdoublequotemark */
+    { 0x00000ad3, 22501 }, /* rightdoublequotemark */
+    { 0x00000ad4, 22149 }, /* prescription */
+    { 0x00000ad5, 21599 }, /* permille */
+    { 0x00000ad6, 19821 }, /* minutes */
+    { 0x00000ad7, 22793 }, /* seconds */
+    { 0x00000ad9, 19263 }, /* latincross */
+    { 0x00000ada, 16708 }, /* hexagram */
+    { 0x00000adb, 12537 }, /* filledrectbullet */
+    { 0x00000adc, 12517 }, /* filledlefttribullet */
+    { 0x00000add, 12554 }, /* filledrighttribullet */
+    { 0x00000ade, 11944 }, /* emfilledcircle */
+    { 0x00000adf, 11959 }, /* emfilledrect */
+    { 0x00000ae0, 12073 }, /* enopencircbullet */
+    { 0x00000ae1, 12090 }, /* enopensquarebullet */
+    { 0x00000ae2, 20876 }, /* openrectbullet */
+    { 0x00000ae3, 20918 }, /* opentribulletup */
+    { 0x00000ae4, 20900 }, /* opentribulletdown */
+    { 0x00000ae5, 20891 }, /* openstar */
+    { 0x00000ae6, 12029 }, /* enfilledcircbullet */
+    { 0x00000ae7, 12048 }, /* enfilledsqbullet */
+    { 0x00000ae8, 12595 }, /* filledtribulletup */
+    { 0x00000ae9, 12575 }, /* filledtribulletdown */
+    { 0x00000aea, 19426 }, /* leftpointer */
+    { 0x00000aeb, 22583 }, /* rightpointer */
     { 0x00000aec, 8649 }, /* club */
-    { 0x00000aed, 11213 }, /* diamond */
-    { 0x00000aee, 16080 }, /* heart */
-    { 0x00000af0, 19668 }, /* maltesecross */
-    { 0x00000af1, 10358 }, /* dagger */
-    { 0x00000af2, 11295 }, /* doubledagger */
+    { 0x00000aed, 11295 }, /* diamond */
+    { 0x00000aee, 16162 }, /* heart */
+    { 0x00000af0, 19750 }, /* maltesecross */
+    { 0x00000af1, 10440 }, /* dagger */
+    { 0x00000af2, 11377 }, /* doubledagger */
     { 0x00000af3, 8616 }, /* checkmark */
     { 0x00000af4, 3380 }, /* ballotcross */
-    { 0x00000af5, 19860 }, /* musicalsharp */
-    { 0x00000af6, 19848 }, /* musicalflat */
-    { 0x00000af7, 19657 }, /* malesymbol */
-    { 0x00000af8, 12400 }, /* femalesymbol */
-    { 0x00000af9, 24354 }, /* telephone */
-    { 0x00000afa, 24364 }, /* telephonerecorder */
-    { 0x00000afb, 21537 }, /* phonographcopyright */
+    { 0x00000af5, 19942 }, /* musicalsharp */
+    { 0x00000af6, 19930 }, /* musicalflat */
+    { 0x00000af7, 19739 }, /* malesymbol */
+    { 0x00000af8, 12482 }, /* femalesymbol */
+    { 0x00000af9, 24436 }, /* telephone */
+    { 0x00000afa, 24446 }, /* telephonerecorder */
+    { 0x00000afb, 21619 }, /* phonographcopyright */
     { 0x00000afc, 8513 }, /* caret */
-    { 0x00000afd, 23028 }, /* singlelowquotemark */
-    { 0x00000afe, 11308 }, /* doublelowquotemark */
-    { 0x00000aff, 8775 }, /* cursor */
-    { 0x00000ba3, 19276 }, /* leftcaret */
-    { 0x00000ba6, 22408 }, /* rightcaret */
-    { 0x00000ba8, 11342 }, /* downcaret */
-    { 0x00000ba9, 26395 }, /* upcaret */
-    { 0x00000bc0, 21324 }, /* overbar */
-    { 0x00000bc2, 11371 }, /* downtack */
-    { 0x00000bc3, 26430 }, /* upshoe */
-    { 0x00000bc4, 11361 }, /* downstile */
-    { 0x00000bc6, 26337 }, /* underbar */
-    { 0x00000bca, 18142 }, /* jot */
-    { 0x00000bcc, 22160 }, /* quad */
-    { 0x00000bce, 26445 }, /* uptack */
+    { 0x00000afd, 23110 }, /* singlelowquotemark */
+    { 0x00000afe, 11390 }, /* doublelowquotemark */
+    { 0x00000aff, 8857 }, /* cursor */
+    { 0x00000ba3, 19358 }, /* leftcaret */
+    { 0x00000ba6, 22490 }, /* rightcaret */
+    { 0x00000ba8, 11424 }, /* downcaret */
+    { 0x00000ba9, 26477 }, /* upcaret */
+    { 0x00000bc0, 21406 }, /* overbar */
+    { 0x00000bc2, 11453 }, /* downtack */
+    { 0x00000bc3, 26512 }, /* upshoe */
+    { 0x00000bc4, 11443 }, /* downstile */
+    { 0x00000bc6, 26419 }, /* underbar */
+    { 0x00000bca, 18224 }, /* jot */
+    { 0x00000bcc, 22242 }, /* quad */
+    { 0x00000bce, 26527 }, /* uptack */
     { 0x00000bcf, 8626 }, /* circle */
-    { 0x00000bd3, 26437 }, /* upstile */
-    { 0x00000bd6, 11352 }, /* downshoe */
-    { 0x00000bd8, 22514 }, /* rightshoe */
-    { 0x00000bda, 19368 }, /* leftshoe */
-    { 0x00000bdc, 19403 }, /* lefttack */
-    { 0x00000bfc, 22552 }, /* righttack */
-    { 0x00000cdf, 16173 }, /* hebrew_doublelowline */
-    { 0x00000ce0, 16086 }, /* hebrew_aleph */
-    { 0x00000ce1, 16111 }, /* hebrew_bet */
-    { 0x00000ce2, 16292 }, /* hebrew_gimel */
-    { 0x00000ce3, 16146 }, /* hebrew_dalet */
-    { 0x00000ce4, 16319 }, /* hebrew_he */
-    { 0x00000ce5, 16531 }, /* hebrew_waw */
-    { 0x00000ce6, 16577 }, /* hebrew_zain */
-    { 0x00000ce7, 16134 }, /* hebrew_chet */
-    { 0x00000ce8, 16508 }, /* hebrew_tet */
-    { 0x00000ce9, 16542 }, /* hebrew_yod */
-    { 0x00000cea, 16194 }, /* hebrew_finalkaph */
-    { 0x00000ceb, 16340 }, /* hebrew_kaph */
-    { 0x00000cec, 16363 }, /* hebrew_lamed */
-    { 0x00000ced, 16211 }, /* hebrew_finalmem */
-    { 0x00000cee, 16376 }, /* hebrew_mem */
-    { 0x00000cef, 16227 }, /* hebrew_finalnun */
-    { 0x00000cf0, 16387 }, /* hebrew_nun */
-    { 0x00000cf1, 16432 }, /* hebrew_samech */
-    { 0x00000cf2, 16099 }, /* hebrew_ayin */
-    { 0x00000cf3, 16243 }, /* hebrew_finalpe */
-    { 0x00000cf4, 16398 }, /* hebrew_pe */
-    { 0x00000cf5, 16258 }, /* hebrew_finalzade */
-    { 0x00000cf6, 16553 }, /* hebrew_zade */
-    { 0x00000cf7, 16408 }, /* hebrew_qoph */
-    { 0x00000cf8, 16420 }, /* hebrew_resh */
-    { 0x00000cf9, 16460 }, /* hebrew_shin */
-    { 0x00000cfa, 16497 }, /* hebrew_taw */
-    { 0x00000da1, 24617 }, /* Thai_kokai */
-    { 0x00000da2, 24547 }, /* Thai_khokhai */
-    { 0x00000da3, 24573 }, /* Thai_khokhuat */
-    { 0x00000da4, 24587 }, /* Thai_khokhwai */
-    { 0x00000da5, 24560 }, /* Thai_khokhon */
-    { 0x00000da6, 24601 }, /* Thai_khorakhang */
-    { 0x00000da7, 24930 }, /* Thai_ngongu */
-    { 0x00000da8, 24423 }, /* Thai_chochan */
-    { 0x00000da9, 24450 }, /* Thai_choching */
-    { 0x00000daa, 24436 }, /* Thai_chochang */
-    { 0x00000dab, 25291 }, /* Thai_soso */
-    { 0x00000dac, 24464 }, /* Thai_chochoe */
-    { 0x00000dad, 25467 }, /* Thai_yoying */
-    { 0x00000dae, 24477 }, /* Thai_dochada */
-    { 0x00000daf, 25420 }, /* Thai_topatak */
-    { 0x00000db0, 25379 }, /* Thai_thothan */
-    { 0x00000db1, 25329 }, /* Thai_thonangmontho */
-    { 0x00000db2, 25348 }, /* Thai_thophuthao */
-    { 0x00000db3, 24956 }, /* Thai_nonen */
-    { 0x00000db4, 24490 }, /* Thai_dodek */
-    { 0x00000db5, 25433 }, /* Thai_totao */
-    { 0x00000db6, 25406 }, /* Thai_thothung */
-    { 0x00000db7, 25364 }, /* Thai_thothahan */
-    { 0x00000db8, 25392 }, /* Thai_thothong */
-    { 0x00000db9, 24967 }, /* Thai_nonu */
-    { 0x00000dba, 24409 }, /* Thai_bobaimai */
-    { 0x00000dbb, 25058 }, /* Thai_popla */
-    { 0x00000dbc, 25028 }, /* Thai_phophung */
-    { 0x00000dbd, 24501 }, /* Thai_fofa */
-    { 0x00000dbe, 25015 }, /* Thai_phophan */
-    { 0x00000dbf, 24511 }, /* Thai_fofan */
-    { 0x00000dc0, 25042 }, /* Thai_phosamphao */
-    { 0x00000dc1, 24920 }, /* Thai_moma */
-    { 0x00000dc2, 25456 }, /* Thai_yoyak */
-    { 0x00000dc3, 25069 }, /* Thai_rorua */
-    { 0x00000dc4, 25080 }, /* Thai_ru */
-    { 0x00000dc5, 24780 }, /* Thai_loling */
-    { 0x00000dc6, 24792 }, /* Thai_lu */
-    { 0x00000dc7, 25444 }, /* Thai_wowaen */
-    { 0x00000dc8, 25279 }, /* Thai_sosala */
-    { 0x00000dc9, 25267 }, /* Thai_sorusi */
-    { 0x00000dca, 25301 }, /* Thai_sosua */
-    { 0x00000dcb, 24522 }, /* Thai_hohip */
-    { 0x00000dcc, 24767 }, /* Thai_lochula */
-    { 0x00000dcd, 24977 }, /* Thai_oang */
-    { 0x00000dce, 24533 }, /* Thai_honokhuk */
-    { 0x00000dcf, 24987 }, /* Thai_paiyannoi */
-    { 0x00000dd0, 25088 }, /* Thai_saraa */
-    { 0x00000dd1, 24828 }, /* Thai_maihanakat */
-    { 0x00000dd2, 25099 }, /* Thai_saraaa */
-    { 0x00000dd3, 25162 }, /* Thai_saraam */
-    { 0x00000dd4, 25185 }, /* Thai_sarai */
-    { 0x00000dd5, 25196 }, /* Thai_saraii */
-    { 0x00000dd6, 25230 }, /* Thai_saraue */
-    { 0x00000dd7, 25242 }, /* Thai_sarauee */
-    { 0x00000dd8, 25219 }, /* Thai_sarau */
-    { 0x00000dd9, 25255 }, /* Thai_sarauu */
-    { 0x00000dda, 25002 }, /* Thai_phinthu */
-    { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */
-    { 0x00000ddf, 24399 }, /* Thai_baht */
-    { 0x00000de0, 25174 }, /* Thai_sarae */
-    { 0x00000de1, 25111 }, /* Thai_saraae */
-    { 0x00000de2, 25208 }, /* Thai_sarao */
-    { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */
-    { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */
-    { 0x00000de5, 24628 }, /* Thai_lakkhangyao */
-    { 0x00000de6, 24906 }, /* Thai_maiyamok */
-    { 0x00000de7, 24867 }, /* Thai_maitaikhu */
-    { 0x00000de8, 24817 }, /* Thai_maiek */
-    { 0x00000de9, 24882 }, /* Thai_maitho */
-    { 0x00000dea, 24894 }, /* Thai_maitri */
-    { 0x00000deb, 24800 }, /* Thai_maichattawa */
-    { 0x00000dec, 25312 }, /* Thai_thanthakhat */
-    { 0x00000ded, 24942 }, /* Thai_nikhahit */
-    { 0x00000df0, 24755 }, /* Thai_leksun */
-    { 0x00000df1, 24693 }, /* Thai_leknung */
-    { 0x00000df2, 24742 }, /* Thai_leksong */
-    { 0x00000df3, 24719 }, /* Thai_leksam */
-    { 0x00000df4, 24731 }, /* Thai_leksi */
-    { 0x00000df5, 24658 }, /* Thai_lekha */
-    { 0x00000df6, 24669 }, /* Thai_lekhok */
-    { 0x00000df7, 24645 }, /* Thai_lekchet */
-    { 0x00000df8, 24706 }, /* Thai_lekpaet */
-    { 0x00000df9, 24681 }, /* Thai_lekkao */
-    { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */
-    { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */
-    { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */
-    { 0x00000ea4, 15276 }, /* Hangul_Nieun */
-    { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */
-    { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */
-    { 0x00000ea7, 14488 }, /* Hangul_Dikeud */
-    { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */
-    { 0x00000ea9, 15461 }, /* Hangul_Rieul */
-    { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */
-    { 0x00000eab, 15511 }, /* Hangul_RieulMieum */
-    { 0x00000eac, 15548 }, /* Hangul_RieulPieub */
-    { 0x00000ead, 15566 }, /* Hangul_RieulSios */
-    { 0x00000eae, 15583 }, /* Hangul_RieulTieut */
-    { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */
-    { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */
-    { 0x00000eb1, 15238 }, /* Hangul_Mieum */
-    { 0x00000eb2, 15373 }, /* Hangul_Pieub */
-    { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */
-    { 0x00000eb4, 15386 }, /* Hangul_PieubSios */
-    { 0x00000eb5, 15662 }, /* Hangul_Sios */
-    { 0x00000eb6, 15763 }, /* Hangul_SsangSios */
-    { 0x00000eb7, 14577 }, /* Hangul_Ieung */
-    { 0x00000eb8, 15154 }, /* Hangul_Jieuj */
-    { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */
-    { 0x00000eba, 14458 }, /* Hangul_Cieuc */
-    { 0x00000ebb, 15167 }, /* Hangul_Khieuq */
-    { 0x00000ebc, 15883 }, /* Hangul_Tieut */
-    { 0x00000ebd, 15359 }, /* Hangul_Phieuf */
-    { 0x00000ebe, 14555 }, /* Hangul_Hieuh */
-    { 0x00000ebf, 14399 }, /* Hangul_A */
-    { 0x00000ec0, 14408 }, /* Hangul_AE */
-    { 0x00000ec1, 15957 }, /* Hangul_YA */
-    { 0x00000ec2, 15967 }, /* Hangul_YAE */
-    { 0x00000ec3, 14522 }, /* Hangul_EO */
-    { 0x00000ec4, 14502 }, /* Hangul_E */
-    { 0x00000ec5, 15988 }, /* Hangul_YEO */
-    { 0x00000ec6, 15978 }, /* Hangul_YE */
-    { 0x00000ec7, 15325 }, /* Hangul_O */
-    { 0x00000ec8, 15905 }, /* Hangul_WA */
-    { 0x00000ec9, 15915 }, /* Hangul_WAE */
-    { 0x00000eca, 15334 }, /* Hangul_OE */
-    { 0x00000ecb, 16028 }, /* Hangul_YO */
-    { 0x00000ecc, 15896 }, /* Hangul_U */
-    { 0x00000ecd, 15936 }, /* Hangul_WEO */
-    { 0x00000ece, 15926 }, /* Hangul_WE */
-    { 0x00000ecf, 15947 }, /* Hangul_WI */
-    { 0x00000ed0, 16038 }, /* Hangul_YU */
-    { 0x00000ed1, 14532 }, /* Hangul_EU */
-    { 0x00000ed2, 16018 }, /* Hangul_YI */
-    { 0x00000ed3, 14568 }, /* Hangul_I */
-    { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */
-    { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */
-    { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */
-    { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */
-    { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */
-    { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */
-    { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */
-    { 0x00000edb, 14882 }, /* Hangul_J_Rieul */
-    { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */
-    { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */
-    { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */
-    { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */
-    { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */
-    { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */
-    { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */
-    { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */
-    { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */
-    { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */
-    { 0x00000ee6, 15038 }, /* Hangul_J_Sios */
-    { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */
-    { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */
-    { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */
-    { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */
-    { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */
-    { 0x00000eec, 15092 }, /* Hangul_J_Tieut */
-    { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */
-    { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */
-    { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */
-    { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */
-    { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */
-    { 0x00000ef2, 15344 }, /* Hangul_PanSios */
-    { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */
-    { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */
-    { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */
-    { 0x00000ef6, 14418 }, /* Hangul_AraeA */
-    { 0x00000ef7, 14431 }, /* Hangul_AraeAE */
-    { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */
-    { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */
-    { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */
-    { 0x00000eff, 18797 }, /* Korean_Won */
-    { 0x000013bc, 20514 }, /* OE */
-    { 0x000013bd, 20517 }, /* oe */
-    { 0x000013be, 29155 }, /* Ydiaeresis */
-    { 0x000020ac, 12090 }, /* EuroSign */
+    { 0x00000bd3, 26519 }, /* upstile */
+    { 0x00000bd6, 11434 }, /* downshoe */
+    { 0x00000bd8, 22596 }, /* rightshoe */
+    { 0x00000bda, 19450 }, /* leftshoe */
+    { 0x00000bdc, 19485 }, /* lefttack */
+    { 0x00000bfc, 22634 }, /* righttack */
+    { 0x00000cdf, 16255 }, /* hebrew_doublelowline */
+    { 0x00000ce0, 16168 }, /* hebrew_aleph */
+    { 0x00000ce1, 16193 }, /* hebrew_bet */
+    { 0x00000ce2, 16374 }, /* hebrew_gimel */
+    { 0x00000ce3, 16228 }, /* hebrew_dalet */
+    { 0x00000ce4, 16401 }, /* hebrew_he */
+    { 0x00000ce5, 16613 }, /* hebrew_waw */
+    { 0x00000ce6, 16659 }, /* hebrew_zain */
+    { 0x00000ce7, 16216 }, /* hebrew_chet */
+    { 0x00000ce8, 16590 }, /* hebrew_tet */
+    { 0x00000ce9, 16624 }, /* hebrew_yod */
+    { 0x00000cea, 16276 }, /* hebrew_finalkaph */
+    { 0x00000ceb, 16422 }, /* hebrew_kaph */
+    { 0x00000cec, 16445 }, /* hebrew_lamed */
+    { 0x00000ced, 16293 }, /* hebrew_finalmem */
+    { 0x00000cee, 16458 }, /* hebrew_mem */
+    { 0x00000cef, 16309 }, /* hebrew_finalnun */
+    { 0x00000cf0, 16469 }, /* hebrew_nun */
+    { 0x00000cf1, 16514 }, /* hebrew_samech */
+    { 0x00000cf2, 16181 }, /* hebrew_ayin */
+    { 0x00000cf3, 16325 }, /* hebrew_finalpe */
+    { 0x00000cf4, 16480 }, /* hebrew_pe */
+    { 0x00000cf5, 16340 }, /* hebrew_finalzade */
+    { 0x00000cf6, 16635 }, /* hebrew_zade */
+    { 0x00000cf7, 16490 }, /* hebrew_qoph */
+    { 0x00000cf8, 16502 }, /* hebrew_resh */
+    { 0x00000cf9, 16542 }, /* hebrew_shin */
+    { 0x00000cfa, 16579 }, /* hebrew_taw */
+    { 0x00000da1, 24699 }, /* Thai_kokai */
+    { 0x00000da2, 24629 }, /* Thai_khokhai */
+    { 0x00000da3, 24655 }, /* Thai_khokhuat */
+    { 0x00000da4, 24669 }, /* Thai_khokhwai */
+    { 0x00000da5, 24642 }, /* Thai_khokhon */
+    { 0x00000da6, 24683 }, /* Thai_khorakhang */
+    { 0x00000da7, 25012 }, /* Thai_ngongu */
+    { 0x00000da8, 24505 }, /* Thai_chochan */
+    { 0x00000da9, 24532 }, /* Thai_choching */
+    { 0x00000daa, 24518 }, /* Thai_chochang */
+    { 0x00000dab, 25373 }, /* Thai_soso */
+    { 0x00000dac, 24546 }, /* Thai_chochoe */
+    { 0x00000dad, 25549 }, /* Thai_yoying */
+    { 0x00000dae, 24559 }, /* Thai_dochada */
+    { 0x00000daf, 25502 }, /* Thai_topatak */
+    { 0x00000db0, 25461 }, /* Thai_thothan */
+    { 0x00000db1, 25411 }, /* Thai_thonangmontho */
+    { 0x00000db2, 25430 }, /* Thai_thophuthao */
+    { 0x00000db3, 25038 }, /* Thai_nonen */
+    { 0x00000db4, 24572 }, /* Thai_dodek */
+    { 0x00000db5, 25515 }, /* Thai_totao */
+    { 0x00000db6, 25488 }, /* Thai_thothung */
+    { 0x00000db7, 25446 }, /* Thai_thothahan */
+    { 0x00000db8, 25474 }, /* Thai_thothong */
+    { 0x00000db9, 25049 }, /* Thai_nonu */
+    { 0x00000dba, 24491 }, /* Thai_bobaimai */
+    { 0x00000dbb, 25140 }, /* Thai_popla */
+    { 0x00000dbc, 25110 }, /* Thai_phophung */
+    { 0x00000dbd, 24583 }, /* Thai_fofa */
+    { 0x00000dbe, 25097 }, /* Thai_phophan */
+    { 0x00000dbf, 24593 }, /* Thai_fofan */
+    { 0x00000dc0, 25124 }, /* Thai_phosamphao */
+    { 0x00000dc1, 25002 }, /* Thai_moma */
+    { 0x00000dc2, 25538 }, /* Thai_yoyak */
+    { 0x00000dc3, 25151 }, /* Thai_rorua */
+    { 0x00000dc4, 25162 }, /* Thai_ru */
+    { 0x00000dc5, 24862 }, /* Thai_loling */
+    { 0x00000dc6, 24874 }, /* Thai_lu */
+    { 0x00000dc7, 25526 }, /* Thai_wowaen */
+    { 0x00000dc8, 25361 }, /* Thai_sosala */
+    { 0x00000dc9, 25349 }, /* Thai_sorusi */
+    { 0x00000dca, 25383 }, /* Thai_sosua */
+    { 0x00000dcb, 24604 }, /* Thai_hohip */
+    { 0x00000dcc, 24849 }, /* Thai_lochula */
+    { 0x00000dcd, 25059 }, /* Thai_oang */
+    { 0x00000dce, 24615 }, /* Thai_honokhuk */
+    { 0x00000dcf, 25069 }, /* Thai_paiyannoi */
+    { 0x00000dd0, 25170 }, /* Thai_saraa */
+    { 0x00000dd1, 24910 }, /* Thai_maihanakat */
+    { 0x00000dd2, 25181 }, /* Thai_saraaa */
+    { 0x00000dd3, 25244 }, /* Thai_saraam */
+    { 0x00000dd4, 25267 }, /* Thai_sarai */
+    { 0x00000dd5, 25278 }, /* Thai_saraii */
+    { 0x00000dd6, 25312 }, /* Thai_saraue */
+    { 0x00000dd7, 25324 }, /* Thai_sarauee */
+    { 0x00000dd8, 25301 }, /* Thai_sarau */
+    { 0x00000dd9, 25337 }, /* Thai_sarauu */
+    { 0x00000dda, 25084 }, /* Thai_phinthu */
+    { 0x00000dde, 24926 }, /* Thai_maihanakat_maitho */
+    { 0x00000ddf, 24481 }, /* Thai_baht */
+    { 0x00000de0, 25256 }, /* Thai_sarae */
+    { 0x00000de1, 25193 }, /* Thai_saraae */
+    { 0x00000de2, 25290 }, /* Thai_sarao */
+    { 0x00000de3, 25225 }, /* Thai_saraaimaimuan */
+    { 0x00000de4, 25205 }, /* Thai_saraaimaimalai */
+    { 0x00000de5, 24710 }, /* Thai_lakkhangyao */
+    { 0x00000de6, 24988 }, /* Thai_maiyamok */
+    { 0x00000de7, 24949 }, /* Thai_maitaikhu */
+    { 0x00000de8, 24899 }, /* Thai_maiek */
+    { 0x00000de9, 24964 }, /* Thai_maitho */
+    { 0x00000dea, 24976 }, /* Thai_maitri */
+    { 0x00000deb, 24882 }, /* Thai_maichattawa */
+    { 0x00000dec, 25394 }, /* Thai_thanthakhat */
+    { 0x00000ded, 25024 }, /* Thai_nikhahit */
+    { 0x00000df0, 24837 }, /* Thai_leksun */
+    { 0x00000df1, 24775 }, /* Thai_leknung */
+    { 0x00000df2, 24824 }, /* Thai_leksong */
+    { 0x00000df3, 24801 }, /* Thai_leksam */
+    { 0x00000df4, 24813 }, /* Thai_leksi */
+    { 0x00000df5, 24740 }, /* Thai_lekha */
+    { 0x00000df6, 24751 }, /* Thai_lekhok */
+    { 0x00000df7, 24727 }, /* Thai_lekchet */
+    { 0x00000df8, 24788 }, /* Thai_lekpaet */
+    { 0x00000df9, 24763 }, /* Thai_lekkao */
+    { 0x00000ea1, 15263 }, /* Hangul_Kiyeog */
+    { 0x00000ea2, 15808 }, /* Hangul_SsangKiyeog */
+    { 0x00000ea3, 15277 }, /* Hangul_KiyeogSios */
+    { 0x00000ea4, 15358 }, /* Hangul_Nieun */
+    { 0x00000ea5, 15389 }, /* Hangul_NieunJieuj */
+    { 0x00000ea6, 15371 }, /* Hangul_NieunHieuh */
+    { 0x00000ea7, 14570 }, /* Hangul_Dikeud */
+    { 0x00000ea8, 15771 }, /* Hangul_SsangDikeud */
+    { 0x00000ea9, 15543 }, /* Hangul_Rieul */
+    { 0x00000eaa, 15574 }, /* Hangul_RieulKiyeog */
+    { 0x00000eab, 15593 }, /* Hangul_RieulMieum */
+    { 0x00000eac, 15630 }, /* Hangul_RieulPieub */
+    { 0x00000ead, 15648 }, /* Hangul_RieulSios */
+    { 0x00000eae, 15665 }, /* Hangul_RieulTieut */
+    { 0x00000eaf, 15611 }, /* Hangul_RieulPhieuf */
+    { 0x00000eb0, 15556 }, /* Hangul_RieulHieuh */
+    { 0x00000eb1, 15320 }, /* Hangul_Mieum */
+    { 0x00000eb2, 15455 }, /* Hangul_Pieub */
+    { 0x00000eb3, 15827 }, /* Hangul_SsangPieub */
+    { 0x00000eb4, 15468 }, /* Hangul_PieubSios */
+    { 0x00000eb5, 15744 }, /* Hangul_Sios */
+    { 0x00000eb6, 15845 }, /* Hangul_SsangSios */
+    { 0x00000eb7, 14659 }, /* Hangul_Ieung */
+    { 0x00000eb8, 15236 }, /* Hangul_Jieuj */
+    { 0x00000eb9, 15790 }, /* Hangul_SsangJieuj */
+    { 0x00000eba, 14540 }, /* Hangul_Cieuc */
+    { 0x00000ebb, 15249 }, /* Hangul_Khieuq */
+    { 0x00000ebc, 15965 }, /* Hangul_Tieut */
+    { 0x00000ebd, 15441 }, /* Hangul_Phieuf */
+    { 0x00000ebe, 14637 }, /* Hangul_Hieuh */
+    { 0x00000ebf, 14481 }, /* Hangul_A */
+    { 0x00000ec0, 14490 }, /* Hangul_AE */
+    { 0x00000ec1, 16039 }, /* Hangul_YA */
+    { 0x00000ec2, 16049 }, /* Hangul_YAE */
+    { 0x00000ec3, 14604 }, /* Hangul_EO */
+    { 0x00000ec4, 14584 }, /* Hangul_E */
+    { 0x00000ec5, 16070 }, /* Hangul_YEO */
+    { 0x00000ec6, 16060 }, /* Hangul_YE */
+    { 0x00000ec7, 15407 }, /* Hangul_O */
+    { 0x00000ec8, 15987 }, /* Hangul_WA */
+    { 0x00000ec9, 15997 }, /* Hangul_WAE */
+    { 0x00000eca, 15416 }, /* Hangul_OE */
+    { 0x00000ecb, 16110 }, /* Hangul_YO */
+    { 0x00000ecc, 15978 }, /* Hangul_U */
+    { 0x00000ecd, 16018 }, /* Hangul_WEO */
+    { 0x00000ece, 16008 }, /* Hangul_WE */
+    { 0x00000ecf, 16029 }, /* Hangul_WI */
+    { 0x00000ed0, 16120 }, /* Hangul_YU */
+    { 0x00000ed1, 14614 }, /* Hangul_EU */
+    { 0x00000ed2, 16100 }, /* Hangul_YI */
+    { 0x00000ed3, 14650 }, /* Hangul_I */
+    { 0x00000ed4, 14764 }, /* Hangul_J_Kiyeog */
+    { 0x00000ed5, 15134 }, /* Hangul_J_SsangKiyeog */
+    { 0x00000ed6, 14780 }, /* Hangul_J_KiyeogSios */
+    { 0x00000ed7, 14842 }, /* Hangul_J_Nieun */
+    { 0x00000ed8, 14877 }, /* Hangul_J_NieunJieuj */
+    { 0x00000ed9, 14857 }, /* Hangul_J_NieunHieuh */
+    { 0x00000eda, 14687 }, /* Hangul_J_Dikeud */
+    { 0x00000edb, 14964 }, /* Hangul_J_Rieul */
+    { 0x00000edc, 14999 }, /* Hangul_J_RieulKiyeog */
+    { 0x00000edd, 15020 }, /* Hangul_J_RieulMieum */
+    { 0x00000ede, 15061 }, /* Hangul_J_RieulPieub */
+    { 0x00000edf, 15081 }, /* Hangul_J_RieulSios */
+    { 0x00000ee0, 15100 }, /* Hangul_J_RieulTieut */
+    { 0x00000ee1, 15040 }, /* Hangul_J_RieulPhieuf */
+    { 0x00000ee2, 14979 }, /* Hangul_J_RieulHieuh */
+    { 0x00000ee3, 14827 }, /* Hangul_J_Mieum */
+    { 0x00000ee4, 14930 }, /* Hangul_J_Pieub */
+    { 0x00000ee5, 14945 }, /* Hangul_J_PieubSios */
+    { 0x00000ee6, 15120 }, /* Hangul_J_Sios */
+    { 0x00000ee7, 15155 }, /* Hangul_J_SsangSios */
+    { 0x00000ee8, 14718 }, /* Hangul_J_Ieung */
+    { 0x00000ee9, 14733 }, /* Hangul_J_Jieuj */
+    { 0x00000eea, 14672 }, /* Hangul_J_Cieuc */
+    { 0x00000eeb, 14748 }, /* Hangul_J_Khieuq */
+    { 0x00000eec, 15174 }, /* Hangul_J_Tieut */
+    { 0x00000eed, 14914 }, /* Hangul_J_Phieuf */
+    { 0x00000eee, 14703 }, /* Hangul_J_Hieuh */
+    { 0x00000eef, 15683 }, /* Hangul_RieulYeorinHieuh */
+    { 0x00000ef0, 15875 }, /* Hangul_SunkyeongeumMieum */
+    { 0x00000ef1, 15926 }, /* Hangul_SunkyeongeumPieub */
+    { 0x00000ef2, 15426 }, /* Hangul_PanSios */
+    { 0x00000ef3, 15295 }, /* Hangul_KkogjiDalrinIeung */
+    { 0x00000ef4, 15900 }, /* Hangul_SunkyeongeumPhieuf */
+    { 0x00000ef5, 16081 }, /* Hangul_YeorinHieuh */
+    { 0x00000ef6, 14500 }, /* Hangul_AraeA */
+    { 0x00000ef7, 14513 }, /* Hangul_AraeAE */
+    { 0x00000ef8, 14897 }, /* Hangul_J_PanSios */
+    { 0x00000ef9, 14800 }, /* Hangul_J_KkogjiDalrinIeung */
+    { 0x00000efa, 15189 }, /* Hangul_J_YeorinHieuh */
+    { 0x00000eff, 18879 }, /* Korean_Won */
+    { 0x000013bc, 20596 }, /* OE */
+    { 0x000013bd, 20599 }, /* oe */
+    { 0x000013be, 31263 }, /* Ydiaeresis */
+    { 0x000020ac, 12172 }, /* EuroSign */
     { 0x0000fd01, 125 }, /* 3270_Duplicate */
     { 0x0000fd02, 195 }, /* 3270_FieldMark */
     { 0x0000fd03, 343 }, /* 3270_Right2 */
@@ -5839,293 +6440,293 @@
     { 0x0000fd1c, 91 }, /* 3270_CursorSelect */
     { 0x0000fd1d, 293 }, /* 3270_PrintScreen */
     { 0x0000fd1e, 140 }, /* 3270_Enter */
-    { 0x0000fe01, 17781 }, /* ISO_Lock */
-    { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */
-    { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */
-    { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */
-    { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */
-    { 0x0000fe06, 17569 }, /* ISO_Group_Latch */
-    { 0x0000fe07, 17585 }, /* ISO_Group_Lock */
-    { 0x0000fe08, 17826 }, /* ISO_Next_Group */
-    { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */
-    { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */
-    { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */
-    { 0x0000fe0c, 17532 }, /* ISO_First_Group */
-    { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */
-    { 0x0000fe0e, 17616 }, /* ISO_Last_Group */
-    { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */
-    { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */
-    { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */
-    { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */
-    { 0x0000fe20, 17651 }, /* ISO_Left_Tab */
-    { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */
-    { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */
-    { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */
-    { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */
-    { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */
-    { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */
-    { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */
-    { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */
-    { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */
-    { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */
-    { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */
-    { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */
-    { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */
-    { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */
-    { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */
-    { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */
-    { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */
-    { 0x0000fe32, 17425 }, /* ISO_Emphasize */
-    { 0x0000fe33, 17354 }, /* ISO_Center_Object */
-    { 0x0000fe34, 17439 }, /* ISO_Enter */
-    { 0x0000fe50, 10858 }, /* dead_grave */
-    { 0x0000fe51, 10531 }, /* dead_acute */
-    { 0x0000fe52, 10754 }, /* dead_circumflex */
-    { 0x0000fe53, 11097 }, /* dead_tilde */
-    { 0x0000fe54, 10980 }, /* dead_macron */
-    { 0x0000fe55, 10700 }, /* dead_breve */
-    { 0x0000fe56, 10455 }, /* dead_abovedot */
-    { 0x0000fe57, 10795 }, /* dead_diaeresis */
-    { 0x0000fe58, 10493 }, /* dead_abovering */
-    { 0x0000fe59, 10810 }, /* dead_doubleacute */
-    { 0x0000fe5a, 10730 }, /* dead_caron */
-    { 0x0000fe5b, 10741 }, /* dead_cedilla */
-    { 0x0000fe5c, 11006 }, /* dead_ogonek */
-    { 0x0000fe5d, 10933 }, /* dead_iota */
-    { 0x0000fe5e, 11122 }, /* dead_voiced_sound */
-    { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */
-    { 0x0000fe60, 10615 }, /* dead_belowdot */
-    { 0x0000fe61, 10880 }, /* dead_hook */
-    { 0x0000fe62, 10890 }, /* dead_horn */
-    { 0x0000fe63, 11085 }, /* dead_stroke */
-    { 0x0000fe64, 10439 }, /* dead_abovecomma */
-    { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */
-    { 0x0000fe66, 10827 }, /* dead_doublegrave */
-    { 0x0000fe67, 10646 }, /* dead_belowring */
-    { 0x0000fe68, 10629 }, /* dead_belowmacron */
-    { 0x0000fe69, 10558 }, /* dead_belowcircumflex */
-    { 0x0000fe6a, 10661 }, /* dead_belowtilde */
-    { 0x0000fe6b, 10542 }, /* dead_belowbreve */
-    { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */
-    { 0x0000fe6d, 10914 }, /* dead_invertedbreve */
-    { 0x0000fe6e, 10579 }, /* dead_belowcomma */
-    { 0x0000fe6f, 10770 }, /* dead_currency */
+    { 0x0000fe01, 17863 }, /* ISO_Lock */
+    { 0x0000fe02, 17746 }, /* ISO_Level2_Latch */
+    { 0x0000fe03, 17796 }, /* ISO_Level3_Shift */
+    { 0x0000fe04, 17763 }, /* ISO_Level3_Latch */
+    { 0x0000fe05, 17780 }, /* ISO_Level3_Lock */
+    { 0x0000fe06, 17651 }, /* ISO_Group_Latch */
+    { 0x0000fe07, 17667 }, /* ISO_Group_Lock */
+    { 0x0000fe08, 17908 }, /* ISO_Next_Group */
+    { 0x0000fe09, 17923 }, /* ISO_Next_Group_Lock */
+    { 0x0000fe0a, 18032 }, /* ISO_Prev_Group */
+    { 0x0000fe0b, 18047 }, /* ISO_Prev_Group_Lock */
+    { 0x0000fe0c, 17614 }, /* ISO_First_Group */
+    { 0x0000fe0d, 17630 }, /* ISO_First_Group_Lock */
+    { 0x0000fe0e, 17698 }, /* ISO_Last_Group */
+    { 0x0000fe0f, 17713 }, /* ISO_Last_Group_Lock */
+    { 0x0000fe11, 17846 }, /* ISO_Level5_Shift */
+    { 0x0000fe12, 17813 }, /* ISO_Level5_Latch */
+    { 0x0000fe13, 17830 }, /* ISO_Level5_Lock */
+    { 0x0000fe20, 17733 }, /* ISO_Left_Tab */
+    { 0x0000fe21, 17891 }, /* ISO_Move_Line_Up */
+    { 0x0000fe22, 17872 }, /* ISO_Move_Line_Down */
+    { 0x0000fe23, 17965 }, /* ISO_Partial_Line_Up */
+    { 0x0000fe24, 17943 }, /* ISO_Partial_Line_Down */
+    { 0x0000fe25, 17985 }, /* ISO_Partial_Space_Left */
+    { 0x0000fe26, 18008 }, /* ISO_Partial_Space_Right */
+    { 0x0000fe27, 18141 }, /* ISO_Set_Margin_Left */
+    { 0x0000fe28, 18161 }, /* ISO_Set_Margin_Right */
+    { 0x0000fe29, 18092 }, /* ISO_Release_Margin_Left */
+    { 0x0000fe2a, 18116 }, /* ISO_Release_Margin_Right */
+    { 0x0000fe2b, 18067 }, /* ISO_Release_Both_Margins */
+    { 0x0000fe2c, 17552 }, /* ISO_Fast_Cursor_Left */
+    { 0x0000fe2d, 17573 }, /* ISO_Fast_Cursor_Right */
+    { 0x0000fe2e, 17595 }, /* ISO_Fast_Cursor_Up */
+    { 0x0000fe2f, 17531 }, /* ISO_Fast_Cursor_Down */
+    { 0x0000fe30, 17454 }, /* ISO_Continuous_Underline */
+    { 0x0000fe31, 17479 }, /* ISO_Discontinuous_Underline */
+    { 0x0000fe32, 17507 }, /* ISO_Emphasize */
+    { 0x0000fe33, 17436 }, /* ISO_Center_Object */
+    { 0x0000fe34, 17521 }, /* ISO_Enter */
+    { 0x0000fe50, 10940 }, /* dead_grave */
+    { 0x0000fe51, 10613 }, /* dead_acute */
+    { 0x0000fe52, 10836 }, /* dead_circumflex */
+    { 0x0000fe53, 11179 }, /* dead_tilde */
+    { 0x0000fe54, 11062 }, /* dead_macron */
+    { 0x0000fe55, 10782 }, /* dead_breve */
+    { 0x0000fe56, 10537 }, /* dead_abovedot */
+    { 0x0000fe57, 10877 }, /* dead_diaeresis */
+    { 0x0000fe58, 10575 }, /* dead_abovering */
+    { 0x0000fe59, 10892 }, /* dead_doubleacute */
+    { 0x0000fe5a, 10812 }, /* dead_caron */
+    { 0x0000fe5b, 10823 }, /* dead_cedilla */
+    { 0x0000fe5c, 11088 }, /* dead_ogonek */
+    { 0x0000fe5d, 11015 }, /* dead_iota */
+    { 0x0000fe5e, 11204 }, /* dead_voiced_sound */
+    { 0x0000fe5f, 11128 }, /* dead_semivoiced_sound */
+    { 0x0000fe60, 10697 }, /* dead_belowdot */
+    { 0x0000fe61, 10962 }, /* dead_hook */
+    { 0x0000fe62, 10972 }, /* dead_horn */
+    { 0x0000fe63, 11167 }, /* dead_stroke */
+    { 0x0000fe64, 10521 }, /* dead_abovecomma */
+    { 0x0000fe65, 10551 }, /* dead_abovereversedcomma */
+    { 0x0000fe66, 10909 }, /* dead_doublegrave */
+    { 0x0000fe67, 10728 }, /* dead_belowring */
+    { 0x0000fe68, 10711 }, /* dead_belowmacron */
+    { 0x0000fe69, 10640 }, /* dead_belowcircumflex */
+    { 0x0000fe6a, 10743 }, /* dead_belowtilde */
+    { 0x0000fe6b, 10624 }, /* dead_belowbreve */
+    { 0x0000fe6c, 10677 }, /* dead_belowdiaeresis */
+    { 0x0000fe6d, 10996 }, /* dead_invertedbreve */
+    { 0x0000fe6e, 10661 }, /* dead_belowcomma */
+    { 0x0000fe6f, 10852 }, /* dead_currency */
     { 0x0000fe70, 583 }, /* AccessX_Enable */
     { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */
-    { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */
-    { 0x0000fe73, 23774 }, /* SlowKeys_Enable */
+    { 0x0000fe72, 22424 }, /* RepeatKeys_Enable */
+    { 0x0000fe73, 23856 }, /* SlowKeys_Enable */
     { 0x0000fe74, 3564 }, /* BounceKeys_Enable */
-    { 0x0000fe75, 23836 }, /* StickyKeys_Enable */
-    { 0x0000fe76, 19782 }, /* MouseKeys_Enable */
-    { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */
-    { 0x0000fe78, 21332 }, /* Overlay1_Enable */
-    { 0x0000fe79, 21348 }, /* Overlay2_Enable */
+    { 0x0000fe75, 23918 }, /* StickyKeys_Enable */
+    { 0x0000fe76, 19864 }, /* MouseKeys_Enable */
+    { 0x0000fe77, 19841 }, /* MouseKeys_Accel_Enable */
+    { 0x0000fe78, 21414 }, /* Overlay1_Enable */
+    { 0x0000fe79, 21430 }, /* Overlay2_Enable */
     { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */
-    { 0x0000fe80, 10425 }, /* dead_a */
-    { 0x0000fe81, 10432 }, /* dead_A */
-    { 0x0000fe82, 10844 }, /* dead_e */
-    { 0x0000fe83, 10851 }, /* dead_E */
-    { 0x0000fe84, 10900 }, /* dead_i */
-    { 0x0000fe85, 10907 }, /* dead_I */
-    { 0x0000fe86, 10992 }, /* dead_o */
-    { 0x0000fe87, 10999 }, /* dead_O */
-    { 0x0000fe88, 11108 }, /* dead_u */
-    { 0x0000fe89, 11115 }, /* dead_U */
-    { 0x0000fe8a, 11068 }, /* dead_small_schwa */
-    { 0x0000fe8b, 10711 }, /* dead_capital_schwa */
-    { 0x0000fe8c, 10869 }, /* dead_greek */
-    { 0x0000fe90, 10967 }, /* dead_lowline */
-    { 0x0000fe91, 10508 }, /* dead_aboveverticalline */
-    { 0x0000fe92, 10677 }, /* dead_belowverticalline */
-    { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */
+    { 0x0000fe80, 10507 }, /* dead_a */
+    { 0x0000fe81, 10514 }, /* dead_A */
+    { 0x0000fe82, 10926 }, /* dead_e */
+    { 0x0000fe83, 10933 }, /* dead_E */
+    { 0x0000fe84, 10982 }, /* dead_i */
+    { 0x0000fe85, 10989 }, /* dead_I */
+    { 0x0000fe86, 11074 }, /* dead_o */
+    { 0x0000fe87, 11081 }, /* dead_O */
+    { 0x0000fe88, 11190 }, /* dead_u */
+    { 0x0000fe89, 11197 }, /* dead_U */
+    { 0x0000fe8a, 11150 }, /* dead_small_schwa */
+    { 0x0000fe8b, 10793 }, /* dead_capital_schwa */
+    { 0x0000fe8c, 10951 }, /* dead_greek */
+    { 0x0000fe90, 11049 }, /* dead_lowline */
+    { 0x0000fe91, 10590 }, /* dead_aboveverticalline */
+    { 0x0000fe92, 10759 }, /* dead_belowverticalline */
+    { 0x0000fe93, 11025 }, /* dead_longsolidusoverlay */
     { 0x0000fea0, 8594 }, /* ch */
     { 0x0000fea1, 8597 }, /* Ch */
     { 0x0000fea2, 8600 }, /* CH */
     { 0x0000fea3, 8443 }, /* c_h */
     { 0x0000fea4, 8447 }, /* C_h */
     { 0x0000fea5, 8451 }, /* C_H */
-    { 0x0000fed0, 12536 }, /* First_Virtual_Screen */
-    { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */
-    { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */
-    { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */
-    { 0x0000fed5, 24382 }, /* Terminate_Server */
-    { 0x0000fee0, 21998 }, /* Pointer_Left */
-    { 0x0000fee1, 22011 }, /* Pointer_Right */
-    { 0x0000fee2, 22025 }, /* Pointer_Up */
-    { 0x0000fee3, 21843 }, /* Pointer_Down */
-    { 0x0000fee4, 22036 }, /* Pointer_UpLeft */
-    { 0x0000fee5, 22051 }, /* Pointer_UpRight */
-    { 0x0000fee6, 21856 }, /* Pointer_DownLeft */
-    { 0x0000fee7, 21873 }, /* Pointer_DownRight */
-    { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */
-    { 0x0000fee9, 21591 }, /* Pointer_Button1 */
-    { 0x0000feea, 21607 }, /* Pointer_Button2 */
-    { 0x0000feeb, 21623 }, /* Pointer_Button3 */
-    { 0x0000feec, 21639 }, /* Pointer_Button4 */
-    { 0x0000feed, 21655 }, /* Pointer_Button5 */
-    { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */
-    { 0x0000feef, 21691 }, /* Pointer_DblClick1 */
-    { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */
-    { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */
-    { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */
-    { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */
-    { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */
-    { 0x0000fef5, 21891 }, /* Pointer_Drag1 */
-    { 0x0000fef6, 21905 }, /* Pointer_Drag2 */
-    { 0x0000fef7, 21919 }, /* Pointer_Drag3 */
-    { 0x0000fef8, 21933 }, /* Pointer_Drag4 */
-    { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */
-    { 0x0000fefa, 21572 }, /* Pointer_Accelerate */
-    { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */
-    { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */
-    { 0x0000fefd, 21947 }, /* Pointer_Drag5 */
+    { 0x0000fed0, 12618 }, /* First_Virtual_Screen */
+    { 0x0000fed1, 22162 }, /* Prev_Virtual_Screen */
+    { 0x0000fed2, 20110 }, /* Next_Virtual_Screen */
+    { 0x0000fed4, 19243 }, /* Last_Virtual_Screen */
+    { 0x0000fed5, 24464 }, /* Terminate_Server */
+    { 0x0000fee0, 22080 }, /* Pointer_Left */
+    { 0x0000fee1, 22093 }, /* Pointer_Right */
+    { 0x0000fee2, 22107 }, /* Pointer_Up */
+    { 0x0000fee3, 21925 }, /* Pointer_Down */
+    { 0x0000fee4, 22118 }, /* Pointer_UpLeft */
+    { 0x0000fee5, 22133 }, /* Pointer_UpRight */
+    { 0x0000fee6, 21938 }, /* Pointer_DownLeft */
+    { 0x0000fee7, 21955 }, /* Pointer_DownRight */
+    { 0x0000fee8, 21753 }, /* Pointer_Button_Dflt */
+    { 0x0000fee9, 21673 }, /* Pointer_Button1 */
+    { 0x0000feea, 21689 }, /* Pointer_Button2 */
+    { 0x0000feeb, 21705 }, /* Pointer_Button3 */
+    { 0x0000feec, 21721 }, /* Pointer_Button4 */
+    { 0x0000feed, 21737 }, /* Pointer_Button5 */
+    { 0x0000feee, 21863 }, /* Pointer_DblClick_Dflt */
+    { 0x0000feef, 21773 }, /* Pointer_DblClick1 */
+    { 0x0000fef0, 21791 }, /* Pointer_DblClick2 */
+    { 0x0000fef1, 21809 }, /* Pointer_DblClick3 */
+    { 0x0000fef2, 21827 }, /* Pointer_DblClick4 */
+    { 0x0000fef3, 21845 }, /* Pointer_DblClick5 */
+    { 0x0000fef4, 22043 }, /* Pointer_Drag_Dflt */
+    { 0x0000fef5, 21973 }, /* Pointer_Drag1 */
+    { 0x0000fef6, 21987 }, /* Pointer_Drag2 */
+    { 0x0000fef7, 22001 }, /* Pointer_Drag3 */
+    { 0x0000fef8, 22015 }, /* Pointer_Drag4 */
+    { 0x0000fef9, 22061 }, /* Pointer_EnableKeys */
+    { 0x0000fefa, 21654 }, /* Pointer_Accelerate */
+    { 0x0000fefb, 21885 }, /* Pointer_DfltBtnNext */
+    { 0x0000fefc, 21905 }, /* Pointer_DfltBtnPrev */
+    { 0x0000fefd, 22029 }, /* Pointer_Drag5 */
     { 0x0000ff08, 3362 }, /* BackSpace */
-    { 0x0000ff09, 24298 }, /* Tab */
-    { 0x0000ff0a, 19434 }, /* Linefeed */
+    { 0x0000ff09, 24380 }, /* Tab */
+    { 0x0000ff0a, 19516 }, /* Linefeed */
     { 0x0000ff0b, 8633 }, /* Clear */
-    { 0x0000ff0d, 22366 }, /* Return */
-    { 0x0000ff13, 21481 }, /* Pause */
-    { 0x0000ff14, 22699 }, /* Scroll_Lock */
-    { 0x0000ff15, 24279 }, /* Sys_Req */
-    { 0x0000ff1b, 12057 }, /* Escape */
-    { 0x0000ff20, 19811 }, /* Multi_key */
-    { 0x0000ff21, 18745 }, /* Kanji */
-    { 0x0000ff22, 19802 }, /* Muhenkan */
-    { 0x0000ff23, 16614 }, /* Henkan_Mode */
-    { 0x0000ff24, 22562 }, /* Romaji */
-    { 0x0000ff25, 16635 }, /* Hiragana */
-    { 0x0000ff26, 18770 }, /* Katakana */
-    { 0x0000ff27, 16644 }, /* Hiragana_Katakana */
-    { 0x0000ff28, 29271 }, /* Zenkaku */
-    { 0x0000ff29, 16048 }, /* Hankaku */
-    { 0x0000ff2a, 29279 }, /* Zenkaku_Hankaku */
-    { 0x0000ff2b, 25752 }, /* Touroku */
-    { 0x0000ff2c, 19698 }, /* Massyo */
-    { 0x0000ff2d, 18351 }, /* Kana_Lock */
-    { 0x0000ff2e, 18562 }, /* Kana_Shift */
-    { 0x0000ff2f, 11779 }, /* Eisu_Shift */
-    { 0x0000ff30, 11790 }, /* Eisu_toggle */
-    { 0x0000ff31, 14392 }, /* Hangul */
-    { 0x0000ff32, 15780 }, /* Hangul_Start */
-    { 0x0000ff33, 14511 }, /* Hangul_End */
-    { 0x0000ff34, 14542 }, /* Hangul_Hanja */
-    { 0x0000ff35, 15128 }, /* Hangul_Jamo */
-    { 0x0000ff36, 15625 }, /* Hangul_Romaja */
+    { 0x0000ff0d, 22448 }, /* Return */
+    { 0x0000ff13, 21563 }, /* Pause */
+    { 0x0000ff14, 22781 }, /* Scroll_Lock */
+    { 0x0000ff15, 24361 }, /* Sys_Req */
+    { 0x0000ff1b, 12139 }, /* Escape */
+    { 0x0000ff20, 19893 }, /* Multi_key */
+    { 0x0000ff21, 18827 }, /* Kanji */
+    { 0x0000ff22, 19884 }, /* Muhenkan */
+    { 0x0000ff23, 16696 }, /* Henkan_Mode */
+    { 0x0000ff24, 22644 }, /* Romaji */
+    { 0x0000ff25, 16717 }, /* Hiragana */
+    { 0x0000ff26, 18852 }, /* Katakana */
+    { 0x0000ff27, 16726 }, /* Hiragana_Katakana */
+    { 0x0000ff28, 31379 }, /* Zenkaku */
+    { 0x0000ff29, 16130 }, /* Hankaku */
+    { 0x0000ff2a, 31387 }, /* Zenkaku_Hankaku */
+    { 0x0000ff2b, 25834 }, /* Touroku */
+    { 0x0000ff2c, 19780 }, /* Massyo */
+    { 0x0000ff2d, 18433 }, /* Kana_Lock */
+    { 0x0000ff2e, 18644 }, /* Kana_Shift */
+    { 0x0000ff2f, 11861 }, /* Eisu_Shift */
+    { 0x0000ff30, 11872 }, /* Eisu_toggle */
+    { 0x0000ff31, 14474 }, /* Hangul */
+    { 0x0000ff32, 15862 }, /* Hangul_Start */
+    { 0x0000ff33, 14593 }, /* Hangul_End */
+    { 0x0000ff34, 14624 }, /* Hangul_Hanja */
+    { 0x0000ff35, 15210 }, /* Hangul_Jamo */
+    { 0x0000ff36, 15707 }, /* Hangul_Romaja */
     { 0x0000ff37, 8654 }, /* Codeinput */
-    { 0x0000ff38, 15140 }, /* Hangul_Jeonja */
-    { 0x0000ff39, 14445 }, /* Hangul_Banja */
-    { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */
-    { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */
-    { 0x0000ff3c, 23012 }, /* SingleCandidate */
-    { 0x0000ff3d, 19821 }, /* MultipleCandidate */
-    { 0x0000ff3e, 22100 }, /* PreviousCandidate */
-    { 0x0000ff3f, 15674 }, /* Hangul_Special */
-    { 0x0000ff50, 16662 }, /* Home */
-    { 0x0000ff51, 19244 }, /* Left */
-    { 0x0000ff52, 26384 }, /* Up */
-    { 0x0000ff53, 22373 }, /* Right */
-    { 0x0000ff54, 11327 }, /* Down */
-    { 0x0000ff55, 22124 }, /* Prior */
-    { 0x0000ff56, 20023 }, /* Next */
-    { 0x0000ff57, 11936 }, /* End */
+    { 0x0000ff38, 15222 }, /* Hangul_Jeonja */
+    { 0x0000ff39, 14527 }, /* Hangul_Banja */
+    { 0x0000ff3a, 15502 }, /* Hangul_PreHanja */
+    { 0x0000ff3b, 15485 }, /* Hangul_PostHanja */
+    { 0x0000ff3c, 23094 }, /* SingleCandidate */
+    { 0x0000ff3d, 19903 }, /* MultipleCandidate */
+    { 0x0000ff3e, 22182 }, /* PreviousCandidate */
+    { 0x0000ff3f, 15756 }, /* Hangul_Special */
+    { 0x0000ff50, 16744 }, /* Home */
+    { 0x0000ff51, 19326 }, /* Left */
+    { 0x0000ff52, 26466 }, /* Up */
+    { 0x0000ff53, 22455 }, /* Right */
+    { 0x0000ff54, 11409 }, /* Down */
+    { 0x0000ff55, 22206 }, /* Prior */
+    { 0x0000ff56, 20105 }, /* Next */
+    { 0x0000ff57, 12018 }, /* End */
     { 0x0000ff58, 3404 }, /* Begin */
-    { 0x0000ff60, 22727 }, /* Select */
-    { 0x0000ff61, 22118 }, /* Print */
-    { 0x0000ff62, 12117 }, /* Execute */
-    { 0x0000ff63, 17284 }, /* Insert */
-    { 0x0000ff65, 26357 }, /* Undo */
-    { 0x0000ff66, 22326 }, /* Redo */
-    { 0x0000ff67, 19705 }, /* Menu */
-    { 0x0000ff68, 12531 }, /* Find */
+    { 0x0000ff60, 22809 }, /* Select */
+    { 0x0000ff61, 22200 }, /* Print */
+    { 0x0000ff62, 12199 }, /* Execute */
+    { 0x0000ff63, 17366 }, /* Insert */
+    { 0x0000ff65, 26439 }, /* Undo */
+    { 0x0000ff66, 22408 }, /* Redo */
+    { 0x0000ff67, 19787 }, /* Menu */
+    { 0x0000ff68, 12613 }, /* Find */
     { 0x0000ff69, 8489 }, /* Cancel */
-    { 0x0000ff6a, 16602 }, /* Help */
+    { 0x0000ff6a, 16684 }, /* Help */
     { 0x0000ff6b, 8377 }, /* Break */
-    { 0x0000ff7e, 19747 }, /* Mode_switch */
-    { 0x0000ff7f, 20169 }, /* Num_Lock */
-    { 0x0000ff80, 19074 }, /* KP_Space */
-    { 0x0000ff89, 19095 }, /* KP_Tab */
-    { 0x0000ff8d, 18931 }, /* KP_Enter */
-    { 0x0000ff91, 18949 }, /* KP_F1 */
-    { 0x0000ff92, 18955 }, /* KP_F2 */
-    { 0x0000ff93, 18961 }, /* KP_F3 */
-    { 0x0000ff94, 18967 }, /* KP_F4 */
-    { 0x0000ff95, 18973 }, /* KP_Home */
-    { 0x0000ff96, 18991 }, /* KP_Left */
-    { 0x0000ff97, 19102 }, /* KP_Up */
-    { 0x0000ff98, 19052 }, /* KP_Right */
-    { 0x0000ff99, 18916 }, /* KP_Down */
-    { 0x0000ff9a, 19043 }, /* KP_Prior */
-    { 0x0000ff9b, 19011 }, /* KP_Next */
-    { 0x0000ff9c, 18924 }, /* KP_End */
-    { 0x0000ff9d, 18876 }, /* KP_Begin */
-    { 0x0000ff9e, 18981 }, /* KP_Insert */
-    { 0x0000ff9f, 18896 }, /* KP_Delete */
-    { 0x0000ffaa, 18999 }, /* KP_Multiply */
-    { 0x0000ffab, 18858 }, /* KP_Add */
-    { 0x0000ffac, 19061 }, /* KP_Separator */
-    { 0x0000ffad, 19083 }, /* KP_Subtract */
-    { 0x0000ffae, 18885 }, /* KP_Decimal */
-    { 0x0000ffaf, 18906 }, /* KP_Divide */
-    { 0x0000ffb0, 18808 }, /* KP_0 */
-    { 0x0000ffb1, 18813 }, /* KP_1 */
-    { 0x0000ffb2, 18818 }, /* KP_2 */
-    { 0x0000ffb3, 18823 }, /* KP_3 */
-    { 0x0000ffb4, 18828 }, /* KP_4 */
-    { 0x0000ffb5, 18833 }, /* KP_5 */
-    { 0x0000ffb6, 18838 }, /* KP_6 */
-    { 0x0000ffb7, 18843 }, /* KP_7 */
-    { 0x0000ffb8, 18848 }, /* KP_8 */
-    { 0x0000ffb9, 18853 }, /* KP_9 */
-    { 0x0000ffbd, 18940 }, /* KP_Equal */
-    { 0x0000ffbe, 12159 }, /* F1 */
-    { 0x0000ffbf, 12202 }, /* F2 */
-    { 0x0000ffc0, 12245 }, /* F3 */
-    { 0x0000ffc1, 12272 }, /* F4 */
-    { 0x0000ffc2, 12275 }, /* F5 */
-    { 0x0000ffc3, 12278 }, /* F6 */
-    { 0x0000ffc4, 12281 }, /* F7 */
-    { 0x0000ffc5, 12284 }, /* F8 */
-    { 0x0000ffc6, 12287 }, /* F9 */
-    { 0x0000ffc7, 12162 }, /* F10 */
-    { 0x0000ffc8, 12166 }, /* F11 */
-    { 0x0000ffc9, 12170 }, /* F12 */
-    { 0x0000ffca, 12174 }, /* F13 */
-    { 0x0000ffcb, 12178 }, /* F14 */
-    { 0x0000ffcc, 12182 }, /* F15 */
-    { 0x0000ffcd, 12186 }, /* F16 */
-    { 0x0000ffce, 12190 }, /* F17 */
-    { 0x0000ffcf, 12194 }, /* F18 */
-    { 0x0000ffd0, 12198 }, /* F19 */
-    { 0x0000ffd1, 12205 }, /* F20 */
-    { 0x0000ffd2, 12209 }, /* F21 */
-    { 0x0000ffd3, 12213 }, /* F22 */
-    { 0x0000ffd4, 12217 }, /* F23 */
-    { 0x0000ffd5, 12221 }, /* F24 */
-    { 0x0000ffd6, 12225 }, /* F25 */
-    { 0x0000ffd7, 12229 }, /* F26 */
-    { 0x0000ffd8, 12233 }, /* F27 */
-    { 0x0000ffd9, 12237 }, /* F28 */
-    { 0x0000ffda, 12241 }, /* F29 */
-    { 0x0000ffdb, 12248 }, /* F30 */
-    { 0x0000ffdc, 12252 }, /* F31 */
-    { 0x0000ffdd, 12256 }, /* F32 */
-    { 0x0000ffde, 12260 }, /* F33 */
-    { 0x0000ffdf, 12264 }, /* F34 */
-    { 0x0000ffe0, 12268 }, /* F35 */
-    { 0x0000ffe1, 22946 }, /* Shift_L */
-    { 0x0000ffe2, 22965 }, /* Shift_R */
-    { 0x0000ffe3, 8697 }, /* Control_L */
-    { 0x0000ffe4, 8707 }, /* Control_R */
+    { 0x0000ff7e, 19829 }, /* Mode_switch */
+    { 0x0000ff7f, 20251 }, /* Num_Lock */
+    { 0x0000ff80, 19156 }, /* KP_Space */
+    { 0x0000ff89, 19177 }, /* KP_Tab */
+    { 0x0000ff8d, 19013 }, /* KP_Enter */
+    { 0x0000ff91, 19031 }, /* KP_F1 */
+    { 0x0000ff92, 19037 }, /* KP_F2 */
+    { 0x0000ff93, 19043 }, /* KP_F3 */
+    { 0x0000ff94, 19049 }, /* KP_F4 */
+    { 0x0000ff95, 19055 }, /* KP_Home */
+    { 0x0000ff96, 19073 }, /* KP_Left */
+    { 0x0000ff97, 19184 }, /* KP_Up */
+    { 0x0000ff98, 19134 }, /* KP_Right */
+    { 0x0000ff99, 18998 }, /* KP_Down */
+    { 0x0000ff9a, 19125 }, /* KP_Prior */
+    { 0x0000ff9b, 19093 }, /* KP_Next */
+    { 0x0000ff9c, 19006 }, /* KP_End */
+    { 0x0000ff9d, 18958 }, /* KP_Begin */
+    { 0x0000ff9e, 19063 }, /* KP_Insert */
+    { 0x0000ff9f, 18978 }, /* KP_Delete */
+    { 0x0000ffaa, 19081 }, /* KP_Multiply */
+    { 0x0000ffab, 18940 }, /* KP_Add */
+    { 0x0000ffac, 19143 }, /* KP_Separator */
+    { 0x0000ffad, 19165 }, /* KP_Subtract */
+    { 0x0000ffae, 18967 }, /* KP_Decimal */
+    { 0x0000ffaf, 18988 }, /* KP_Divide */
+    { 0x0000ffb0, 18890 }, /* KP_0 */
+    { 0x0000ffb1, 18895 }, /* KP_1 */
+    { 0x0000ffb2, 18900 }, /* KP_2 */
+    { 0x0000ffb3, 18905 }, /* KP_3 */
+    { 0x0000ffb4, 18910 }, /* KP_4 */
+    { 0x0000ffb5, 18915 }, /* KP_5 */
+    { 0x0000ffb6, 18920 }, /* KP_6 */
+    { 0x0000ffb7, 18925 }, /* KP_7 */
+    { 0x0000ffb8, 18930 }, /* KP_8 */
+    { 0x0000ffb9, 18935 }, /* KP_9 */
+    { 0x0000ffbd, 19022 }, /* KP_Equal */
+    { 0x0000ffbe, 12241 }, /* F1 */
+    { 0x0000ffbf, 12284 }, /* F2 */
+    { 0x0000ffc0, 12327 }, /* F3 */
+    { 0x0000ffc1, 12354 }, /* F4 */
+    { 0x0000ffc2, 12357 }, /* F5 */
+    { 0x0000ffc3, 12360 }, /* F6 */
+    { 0x0000ffc4, 12363 }, /* F7 */
+    { 0x0000ffc5, 12366 }, /* F8 */
+    { 0x0000ffc6, 12369 }, /* F9 */
+    { 0x0000ffc7, 12244 }, /* F10 */
+    { 0x0000ffc8, 12248 }, /* F11 */
+    { 0x0000ffc9, 12252 }, /* F12 */
+    { 0x0000ffca, 12256 }, /* F13 */
+    { 0x0000ffcb, 12260 }, /* F14 */
+    { 0x0000ffcc, 12264 }, /* F15 */
+    { 0x0000ffcd, 12268 }, /* F16 */
+    { 0x0000ffce, 12272 }, /* F17 */
+    { 0x0000ffcf, 12276 }, /* F18 */
+    { 0x0000ffd0, 12280 }, /* F19 */
+    { 0x0000ffd1, 12287 }, /* F20 */
+    { 0x0000ffd2, 12291 }, /* F21 */
+    { 0x0000ffd3, 12295 }, /* F22 */
+    { 0x0000ffd4, 12299 }, /* F23 */
+    { 0x0000ffd5, 12303 }, /* F24 */
+    { 0x0000ffd6, 12307 }, /* F25 */
+    { 0x0000ffd7, 12311 }, /* F26 */
+    { 0x0000ffd8, 12315 }, /* F27 */
+    { 0x0000ffd9, 12319 }, /* F28 */
+    { 0x0000ffda, 12323 }, /* F29 */
+    { 0x0000ffdb, 12330 }, /* F30 */
+    { 0x0000ffdc, 12334 }, /* F31 */
+    { 0x0000ffdd, 12338 }, /* F32 */
+    { 0x0000ffde, 12342 }, /* F33 */
+    { 0x0000ffdf, 12346 }, /* F34 */
+    { 0x0000ffe0, 12350 }, /* F35 */
+    { 0x0000ffe1, 23028 }, /* Shift_L */
+    { 0x0000ffe2, 23047 }, /* Shift_R */
+    { 0x0000ffe3, 8779 }, /* Control_L */
+    { 0x0000ffe4, 8789 }, /* Control_R */
     { 0x0000ffe5, 8496 }, /* Caps_Lock */
-    { 0x0000ffe6, 22954 }, /* Shift_Lock */
-    { 0x0000ffe7, 19710 }, /* Meta_L */
-    { 0x0000ffe8, 19717 }, /* Meta_R */
+    { 0x0000ffe6, 23036 }, /* Shift_Lock */
+    { 0x0000ffe7, 19792 }, /* Meta_L */
+    { 0x0000ffe8, 19799 }, /* Meta_R */
     { 0x0000ffe9, 880 }, /* Alt_L */
     { 0x0000ffea, 886 }, /* Alt_R */
-    { 0x0000ffeb, 24263 }, /* Super_L */
-    { 0x0000ffec, 24271 }, /* Super_R */
-    { 0x0000ffed, 17046 }, /* Hyper_L */
-    { 0x0000ffee, 17054 }, /* Hyper_R */
+    { 0x0000ffeb, 24345 }, /* Super_L */
+    { 0x0000ffec, 24353 }, /* Super_R */
+    { 0x0000ffed, 17128 }, /* Hyper_L */
+    { 0x0000ffee, 17136 }, /* Hyper_R */
     { 0x0000fff1, 3642 }, /* braille_dot_1 */
     { 0x0000fff2, 3671 }, /* braille_dot_2 */
     { 0x0000fff3, 3685 }, /* braille_dot_3 */
@@ -6136,60 +6737,65 @@
     { 0x0000fff8, 3755 }, /* braille_dot_8 */
     { 0x0000fff9, 3769 }, /* braille_dot_9 */
     { 0x0000fffa, 3656 }, /* braille_dot_10 */
-    { 0x0000ffff, 11160 }, /* Delete */
-    { 0x00ffffff, 26531 }, /* VoidSymbol */
-    { 0x0100012c, 17117 }, /* Ibreve */
-    { 0x0100012d, 17124 }, /* ibreve */
-    { 0x01000174, 26563 }, /* Wcircumflex */
-    { 0x01000175, 26575 }, /* wcircumflex */
-    { 0x01000176, 29120 }, /* Ycircumflex */
-    { 0x01000177, 29132 }, /* ycircumflex */
-    { 0x0100018f, 22649 }, /* SCHWA */
-    { 0x0100019f, 20218 }, /* Obarred */
-    { 0x010001a0, 20553 }, /* Ohorn */
-    { 0x010001a1, 20559 }, /* ohorn */
-    { 0x010001af, 25997 }, /* Uhorn */
-    { 0x010001b0, 26003 }, /* uhorn */
-    { 0x010001b5, 29322 }, /* Zstroke */
-    { 0x010001b6, 29330 }, /* zstroke */
-    { 0x010001b7, 12147 }, /* EZH */
-    { 0x010001d1, 20254 }, /* Ocaron */
-    { 0x010001d2, 20261 }, /* ocaron */
-    { 0x010001e6, 12703 }, /* Gcaron */
-    { 0x010001e7, 12710 }, /* gcaron */
-    { 0x01000259, 22655 }, /* schwa */
-    { 0x01000275, 20226 }, /* obarred */
-    { 0x01000292, 12151 }, /* ezh */
-    { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */
-    { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */
-    { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */
-    { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */
-    { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */
-    { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */
-    { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */
-    { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */
-    { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */
-    { 0x010004a3, 9140 }, /* Cyrillic_en_descender */
-    { 0x010004ae, 10036 }, /* Cyrillic_U_straight */
-    { 0x010004af, 10056 }, /* Cyrillic_u_straight */
-    { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */
-    { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */
-    { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */
-    { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */
-    { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */
-    { 0x010004b7, 8877 }, /* Cyrillic_che_descender */
-    { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */
-    { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */
-    { 0x010004ba, 9832 }, /* Cyrillic_SHHA */
-    { 0x010004bb, 9846 }, /* Cyrillic_shha */
-    { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */
-    { 0x010004d9, 9761 }, /* Cyrillic_schwa */
-    { 0x010004e2, 9396 }, /* Cyrillic_I_macron */
-    { 0x010004e3, 9414 }, /* Cyrillic_i_macron */
-    { 0x010004e8, 9692 }, /* Cyrillic_O_bar */
-    { 0x010004e9, 9707 }, /* Cyrillic_o_bar */
-    { 0x010004ee, 10000 }, /* Cyrillic_U_macron */
-    { 0x010004ef, 10018 }, /* Cyrillic_u_macron */
+    { 0x0000ffff, 11242 }, /* Delete */
+    { 0x00ffffff, 26613 }, /* VoidSymbol */
+    { 0x0100012c, 17199 }, /* Ibreve */
+    { 0x0100012d, 17206 }, /* ibreve */
+    { 0x01000174, 26645 }, /* Wcircumflex */
+    { 0x01000175, 26657 }, /* wcircumflex */
+    { 0x01000176, 31228 }, /* Ycircumflex */
+    { 0x01000177, 31240 }, /* ycircumflex */
+    { 0x0100018f, 22731 }, /* SCHWA */
+    { 0x0100019f, 20300 }, /* Obarred */
+    { 0x010001a0, 20635 }, /* Ohorn */
+    { 0x010001a1, 20641 }, /* ohorn */
+    { 0x010001af, 26079 }, /* Uhorn */
+    { 0x010001b0, 26085 }, /* uhorn */
+    { 0x010001b5, 31430 }, /* Zstroke */
+    { 0x010001b6, 31438 }, /* zstroke */
+    { 0x010001b7, 12229 }, /* EZH */
+    { 0x010001d1, 20336 }, /* Ocaron */
+    { 0x010001d2, 20343 }, /* ocaron */
+    { 0x010001e6, 12785 }, /* Gcaron */
+    { 0x010001e7, 12792 }, /* gcaron */
+    { 0x01000259, 22737 }, /* schwa */
+    { 0x01000275, 20308 }, /* obarred */
+    { 0x01000292, 12233 }, /* ezh */
+    { 0x01000300, 8715 }, /* combining_grave */
+    { 0x01000301, 8680 }, /* combining_acute */
+    { 0x01000303, 8746 }, /* combining_tilde */
+    { 0x01000309, 8731 }, /* combining_hook */
+    { 0x01000323, 8696 }, /* combining_belowdot */
+    { 0x01000492, 9318 }, /* Cyrillic_GHE_bar */
+    { 0x01000493, 9335 }, /* Cyrillic_ghe_bar */
+    { 0x01000496, 10356 }, /* Cyrillic_ZHE_descender */
+    { 0x01000497, 10379 }, /* Cyrillic_zhe_descender */
+    { 0x0100049a, 9610 }, /* Cyrillic_KA_descender */
+    { 0x0100049b, 9632 }, /* Cyrillic_ka_descender */
+    { 0x0100049c, 9654 }, /* Cyrillic_KA_vertstroke */
+    { 0x0100049d, 9677 }, /* Cyrillic_ka_vertstroke */
+    { 0x010004a2, 9200 }, /* Cyrillic_EN_descender */
+    { 0x010004a3, 9222 }, /* Cyrillic_en_descender */
+    { 0x010004ae, 10118 }, /* Cyrillic_U_straight */
+    { 0x010004af, 10138 }, /* Cyrillic_u_straight */
+    { 0x010004b0, 10158 }, /* Cyrillic_U_straight_bar */
+    { 0x010004b1, 10182 }, /* Cyrillic_u_straight_bar */
+    { 0x010004b2, 9376 }, /* Cyrillic_HA_descender */
+    { 0x010004b3, 9398 }, /* Cyrillic_ha_descender */
+    { 0x010004b6, 8936 }, /* Cyrillic_CHE_descender */
+    { 0x010004b7, 8959 }, /* Cyrillic_che_descender */
+    { 0x010004b8, 8982 }, /* Cyrillic_CHE_vertstroke */
+    { 0x010004b9, 9006 }, /* Cyrillic_che_vertstroke */
+    { 0x010004ba, 9914 }, /* Cyrillic_SHHA */
+    { 0x010004bb, 9928 }, /* Cyrillic_shha */
+    { 0x010004d8, 9828 }, /* Cyrillic_SCHWA */
+    { 0x010004d9, 9843 }, /* Cyrillic_schwa */
+    { 0x010004e2, 9478 }, /* Cyrillic_I_macron */
+    { 0x010004e3, 9496 }, /* Cyrillic_i_macron */
+    { 0x010004e8, 9774 }, /* Cyrillic_O_bar */
+    { 0x010004e9, 9789 }, /* Cyrillic_o_bar */
+    { 0x010004ee, 10082 }, /* Cyrillic_U_macron */
+    { 0x010004ef, 10100 }, /* Cyrillic_u_macron */
     { 0x01000531, 2124 }, /* Armenian_AYB */
     { 0x01000532, 2150 }, /* Armenian_BEN */
     { 0x01000533, 2374 }, /* Armenian_GIM */
@@ -6301,162 +6907,162 @@
     { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */
     { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */
     { 0x010006c1, 1465 }, /* Arabic_heh_goal */
-    { 0x010006cc, 12390 }, /* Farsi_yeh */
+    { 0x010006cc, 12472 }, /* Farsi_yeh */
     { 0x010006d2, 1996 }, /* Arabic_yeh_baree */
     { 0x010006d4, 1242 }, /* Arabic_fullstop */
-    { 0x010006f0, 12310 }, /* Farsi_0 */
-    { 0x010006f1, 12318 }, /* Farsi_1 */
-    { 0x010006f2, 12326 }, /* Farsi_2 */
-    { 0x010006f3, 12334 }, /* Farsi_3 */
-    { 0x010006f4, 12342 }, /* Farsi_4 */
-    { 0x010006f5, 12350 }, /* Farsi_5 */
-    { 0x010006f6, 12358 }, /* Farsi_6 */
-    { 0x010006f7, 12366 }, /* Farsi_7 */
-    { 0x010006f8, 12374 }, /* Farsi_8 */
-    { 0x010006f9, 12382 }, /* Farsi_9 */
-    { 0x01000d82, 23484 }, /* Sinh_ng */
-    { 0x01000d83, 23278 }, /* Sinh_h2 */
-    { 0x01000d85, 23047 }, /* Sinh_a */
-    { 0x01000d86, 23054 }, /* Sinh_aa */
-    { 0x01000d87, 23071 }, /* Sinh_ae */
-    { 0x01000d88, 23088 }, /* Sinh_aee */
-    { 0x01000d89, 23294 }, /* Sinh_i */
-    { 0x01000d8a, 23309 }, /* Sinh_ii */
-    { 0x01000d8b, 23695 }, /* Sinh_u */
-    { 0x01000d8c, 23710 }, /* Sinh_uu */
-    { 0x01000d8d, 23594 }, /* Sinh_ri */
-    { 0x01000d8e, 23602 }, /* Sinh_rii */
-    { 0x01000d8f, 23403 }, /* Sinh_lu */
-    { 0x01000d90, 23420 }, /* Sinh_luu */
-    { 0x01000d91, 23221 }, /* Sinh_e */
-    { 0x01000d92, 23236 }, /* Sinh_ee */
-    { 0x01000d93, 23107 }, /* Sinh_ai */
-    { 0x01000d94, 23537 }, /* Sinh_o */
-    { 0x01000d95, 23552 }, /* Sinh_oo */
-    { 0x01000d96, 23132 }, /* Sinh_au */
-    { 0x01000d9a, 23353 }, /* Sinh_ka */
-    { 0x01000d9b, 23361 }, /* Sinh_kha */
-    { 0x01000d9c, 23261 }, /* Sinh_ga */
-    { 0x01000d9d, 23269 }, /* Sinh_gha */
-    { 0x01000d9e, 23492 }, /* Sinh_ng2 */
-    { 0x01000d9f, 23501 }, /* Sinh_nga */
-    { 0x01000da0, 23166 }, /* Sinh_ca */
-    { 0x01000da1, 23174 }, /* Sinh_cha */
-    { 0x01000da2, 23326 }, /* Sinh_ja */
-    { 0x01000da3, 23334 }, /* Sinh_jha */
-    { 0x01000da4, 23528 }, /* Sinh_nya */
-    { 0x01000da5, 23343 }, /* Sinh_jnya */
-    { 0x01000da6, 23510 }, /* Sinh_nja */
-    { 0x01000da7, 23676 }, /* Sinh_tta */
-    { 0x01000da8, 23685 }, /* Sinh_ttha */
-    { 0x01000da9, 23183 }, /* Sinh_dda */
-    { 0x01000daa, 23192 }, /* Sinh_ddha */
-    { 0x01000dab, 23519 }, /* Sinh_nna */
-    { 0x01000dac, 23464 }, /* Sinh_ndda */
-    { 0x01000dad, 23657 }, /* Sinh_tha */
-    { 0x01000dae, 23666 }, /* Sinh_thha */
-    { 0x01000daf, 23202 }, /* Sinh_dha */
-    { 0x01000db0, 23211 }, /* Sinh_dhha */
-    { 0x01000db1, 23456 }, /* Sinh_na */
-    { 0x01000db3, 23474 }, /* Sinh_ndha */
-    { 0x01000db4, 23569 }, /* Sinh_pa */
-    { 0x01000db5, 23577 }, /* Sinh_pha */
-    { 0x01000db6, 23149 }, /* Sinh_ba */
-    { 0x01000db7, 23157 }, /* Sinh_bha */
-    { 0x01000db8, 23439 }, /* Sinh_ma */
-    { 0x01000db9, 23447 }, /* Sinh_mba */
-    { 0x01000dba, 23735 }, /* Sinh_ya */
-    { 0x01000dbb, 23586 }, /* Sinh_ra */
-    { 0x01000dbd, 23386 }, /* Sinh_la */
-    { 0x01000dc0, 23727 }, /* Sinh_va */
-    { 0x01000dc1, 23638 }, /* Sinh_sha */
-    { 0x01000dc2, 23647 }, /* Sinh_ssha */
-    { 0x01000dc3, 23630 }, /* Sinh_sa */
-    { 0x01000dc4, 23286 }, /* Sinh_ha */
-    { 0x01000dc5, 23394 }, /* Sinh_lla */
-    { 0x01000dc6, 23253 }, /* Sinh_fa */
-    { 0x01000dca, 23124 }, /* Sinh_al */
-    { 0x01000dcf, 23062 }, /* Sinh_aa2 */
-    { 0x01000dd0, 23079 }, /* Sinh_ae2 */
-    { 0x01000dd1, 23097 }, /* Sinh_aee2 */
-    { 0x01000dd2, 23301 }, /* Sinh_i2 */
-    { 0x01000dd3, 23317 }, /* Sinh_ii2 */
-    { 0x01000dd4, 23702 }, /* Sinh_u2 */
-    { 0x01000dd6, 23718 }, /* Sinh_uu2 */
-    { 0x01000dd8, 23611 }, /* Sinh_ru2 */
-    { 0x01000dd9, 23228 }, /* Sinh_e2 */
-    { 0x01000dda, 23244 }, /* Sinh_ee2 */
-    { 0x01000ddb, 23115 }, /* Sinh_ai2 */
-    { 0x01000ddc, 23544 }, /* Sinh_o2 */
-    { 0x01000ddd, 23560 }, /* Sinh_oo2 */
-    { 0x01000dde, 23140 }, /* Sinh_au2 */
-    { 0x01000ddf, 23411 }, /* Sinh_lu2 */
-    { 0x01000df2, 23620 }, /* Sinh_ruu2 */
-    { 0x01000df3, 23429 }, /* Sinh_luu2 */
-    { 0x01000df4, 23370 }, /* Sinh_kunddaliya */
-    { 0x010010d0, 12759 }, /* Georgian_an */
-    { 0x010010d1, 12771 }, /* Georgian_ban */
-    { 0x010010d2, 12875 }, /* Georgian_gan */
-    { 0x010010d3, 12838 }, /* Georgian_don */
-    { 0x010010d4, 12851 }, /* Georgian_en */
-    { 0x010010d5, 13201 }, /* Georgian_vin */
-    { 0x010010d6, 13239 }, /* Georgian_zen */
-    { 0x010010d7, 13163 }, /* Georgian_tan */
-    { 0x010010d8, 12966 }, /* Georgian_in */
-    { 0x010010d9, 13005 }, /* Georgian_kan */
-    { 0x010010da, 13032 }, /* Georgian_las */
-    { 0x010010db, 13045 }, /* Georgian_man */
-    { 0x010010dc, 13058 }, /* Georgian_nar */
-    { 0x010010dd, 13071 }, /* Georgian_on */
-    { 0x010010de, 13083 }, /* Georgian_par */
-    { 0x010010df, 13252 }, /* Georgian_zhar */
-    { 0x010010e0, 13123 }, /* Georgian_rae */
-    { 0x010010e1, 13136 }, /* Georgian_san */
-    { 0x010010e2, 13176 }, /* Georgian_tar */
-    { 0x010010e3, 13189 }, /* Georgian_un */
-    { 0x010010e4, 13096 }, /* Georgian_phar */
-    { 0x010010e5, 13018 }, /* Georgian_khar */
-    { 0x010010e6, 12888 }, /* Georgian_ghan */
-    { 0x010010e7, 13110 }, /* Georgian_qar */
-    { 0x010010e8, 13149 }, /* Georgian_shin */
-    { 0x010010e9, 12811 }, /* Georgian_chin */
-    { 0x010010ea, 12784 }, /* Georgian_can */
-    { 0x010010eb, 12992 }, /* Georgian_jil */
-    { 0x010010ec, 12825 }, /* Georgian_cil */
-    { 0x010010ed, 12797 }, /* Georgian_char */
-    { 0x010010ee, 13226 }, /* Georgian_xan */
-    { 0x010010ef, 12978 }, /* Georgian_jhan */
-    { 0x010010f0, 12902 }, /* Georgian_hae */
-    { 0x010010f1, 12928 }, /* Georgian_he */
-    { 0x010010f2, 12940 }, /* Georgian_hie */
-    { 0x010010f3, 13214 }, /* Georgian_we */
-    { 0x010010f4, 12915 }, /* Georgian_har */
-    { 0x010010f5, 12953 }, /* Georgian_hoe */
-    { 0x010010f6, 12863 }, /* Georgian_fi */
+    { 0x010006f0, 12392 }, /* Farsi_0 */
+    { 0x010006f1, 12400 }, /* Farsi_1 */
+    { 0x010006f2, 12408 }, /* Farsi_2 */
+    { 0x010006f3, 12416 }, /* Farsi_3 */
+    { 0x010006f4, 12424 }, /* Farsi_4 */
+    { 0x010006f5, 12432 }, /* Farsi_5 */
+    { 0x010006f6, 12440 }, /* Farsi_6 */
+    { 0x010006f7, 12448 }, /* Farsi_7 */
+    { 0x010006f8, 12456 }, /* Farsi_8 */
+    { 0x010006f9, 12464 }, /* Farsi_9 */
+    { 0x01000d82, 23566 }, /* Sinh_ng */
+    { 0x01000d83, 23360 }, /* Sinh_h2 */
+    { 0x01000d85, 23129 }, /* Sinh_a */
+    { 0x01000d86, 23136 }, /* Sinh_aa */
+    { 0x01000d87, 23153 }, /* Sinh_ae */
+    { 0x01000d88, 23170 }, /* Sinh_aee */
+    { 0x01000d89, 23376 }, /* Sinh_i */
+    { 0x01000d8a, 23391 }, /* Sinh_ii */
+    { 0x01000d8b, 23777 }, /* Sinh_u */
+    { 0x01000d8c, 23792 }, /* Sinh_uu */
+    { 0x01000d8d, 23676 }, /* Sinh_ri */
+    { 0x01000d8e, 23684 }, /* Sinh_rii */
+    { 0x01000d8f, 23485 }, /* Sinh_lu */
+    { 0x01000d90, 23502 }, /* Sinh_luu */
+    { 0x01000d91, 23303 }, /* Sinh_e */
+    { 0x01000d92, 23318 }, /* Sinh_ee */
+    { 0x01000d93, 23189 }, /* Sinh_ai */
+    { 0x01000d94, 23619 }, /* Sinh_o */
+    { 0x01000d95, 23634 }, /* Sinh_oo */
+    { 0x01000d96, 23214 }, /* Sinh_au */
+    { 0x01000d9a, 23435 }, /* Sinh_ka */
+    { 0x01000d9b, 23443 }, /* Sinh_kha */
+    { 0x01000d9c, 23343 }, /* Sinh_ga */
+    { 0x01000d9d, 23351 }, /* Sinh_gha */
+    { 0x01000d9e, 23574 }, /* Sinh_ng2 */
+    { 0x01000d9f, 23583 }, /* Sinh_nga */
+    { 0x01000da0, 23248 }, /* Sinh_ca */
+    { 0x01000da1, 23256 }, /* Sinh_cha */
+    { 0x01000da2, 23408 }, /* Sinh_ja */
+    { 0x01000da3, 23416 }, /* Sinh_jha */
+    { 0x01000da4, 23610 }, /* Sinh_nya */
+    { 0x01000da5, 23425 }, /* Sinh_jnya */
+    { 0x01000da6, 23592 }, /* Sinh_nja */
+    { 0x01000da7, 23758 }, /* Sinh_tta */
+    { 0x01000da8, 23767 }, /* Sinh_ttha */
+    { 0x01000da9, 23265 }, /* Sinh_dda */
+    { 0x01000daa, 23274 }, /* Sinh_ddha */
+    { 0x01000dab, 23601 }, /* Sinh_nna */
+    { 0x01000dac, 23546 }, /* Sinh_ndda */
+    { 0x01000dad, 23739 }, /* Sinh_tha */
+    { 0x01000dae, 23748 }, /* Sinh_thha */
+    { 0x01000daf, 23284 }, /* Sinh_dha */
+    { 0x01000db0, 23293 }, /* Sinh_dhha */
+    { 0x01000db1, 23538 }, /* Sinh_na */
+    { 0x01000db3, 23556 }, /* Sinh_ndha */
+    { 0x01000db4, 23651 }, /* Sinh_pa */
+    { 0x01000db5, 23659 }, /* Sinh_pha */
+    { 0x01000db6, 23231 }, /* Sinh_ba */
+    { 0x01000db7, 23239 }, /* Sinh_bha */
+    { 0x01000db8, 23521 }, /* Sinh_ma */
+    { 0x01000db9, 23529 }, /* Sinh_mba */
+    { 0x01000dba, 23817 }, /* Sinh_ya */
+    { 0x01000dbb, 23668 }, /* Sinh_ra */
+    { 0x01000dbd, 23468 }, /* Sinh_la */
+    { 0x01000dc0, 23809 }, /* Sinh_va */
+    { 0x01000dc1, 23720 }, /* Sinh_sha */
+    { 0x01000dc2, 23729 }, /* Sinh_ssha */
+    { 0x01000dc3, 23712 }, /* Sinh_sa */
+    { 0x01000dc4, 23368 }, /* Sinh_ha */
+    { 0x01000dc5, 23476 }, /* Sinh_lla */
+    { 0x01000dc6, 23335 }, /* Sinh_fa */
+    { 0x01000dca, 23206 }, /* Sinh_al */
+    { 0x01000dcf, 23144 }, /* Sinh_aa2 */
+    { 0x01000dd0, 23161 }, /* Sinh_ae2 */
+    { 0x01000dd1, 23179 }, /* Sinh_aee2 */
+    { 0x01000dd2, 23383 }, /* Sinh_i2 */
+    { 0x01000dd3, 23399 }, /* Sinh_ii2 */
+    { 0x01000dd4, 23784 }, /* Sinh_u2 */
+    { 0x01000dd6, 23800 }, /* Sinh_uu2 */
+    { 0x01000dd8, 23693 }, /* Sinh_ru2 */
+    { 0x01000dd9, 23310 }, /* Sinh_e2 */
+    { 0x01000dda, 23326 }, /* Sinh_ee2 */
+    { 0x01000ddb, 23197 }, /* Sinh_ai2 */
+    { 0x01000ddc, 23626 }, /* Sinh_o2 */
+    { 0x01000ddd, 23642 }, /* Sinh_oo2 */
+    { 0x01000dde, 23222 }, /* Sinh_au2 */
+    { 0x01000ddf, 23493 }, /* Sinh_lu2 */
+    { 0x01000df2, 23702 }, /* Sinh_ruu2 */
+    { 0x01000df3, 23511 }, /* Sinh_luu2 */
+    { 0x01000df4, 23452 }, /* Sinh_kunddaliya */
+    { 0x010010d0, 12841 }, /* Georgian_an */
+    { 0x010010d1, 12853 }, /* Georgian_ban */
+    { 0x010010d2, 12957 }, /* Georgian_gan */
+    { 0x010010d3, 12920 }, /* Georgian_don */
+    { 0x010010d4, 12933 }, /* Georgian_en */
+    { 0x010010d5, 13283 }, /* Georgian_vin */
+    { 0x010010d6, 13321 }, /* Georgian_zen */
+    { 0x010010d7, 13245 }, /* Georgian_tan */
+    { 0x010010d8, 13048 }, /* Georgian_in */
+    { 0x010010d9, 13087 }, /* Georgian_kan */
+    { 0x010010da, 13114 }, /* Georgian_las */
+    { 0x010010db, 13127 }, /* Georgian_man */
+    { 0x010010dc, 13140 }, /* Georgian_nar */
+    { 0x010010dd, 13153 }, /* Georgian_on */
+    { 0x010010de, 13165 }, /* Georgian_par */
+    { 0x010010df, 13334 }, /* Georgian_zhar */
+    { 0x010010e0, 13205 }, /* Georgian_rae */
+    { 0x010010e1, 13218 }, /* Georgian_san */
+    { 0x010010e2, 13258 }, /* Georgian_tar */
+    { 0x010010e3, 13271 }, /* Georgian_un */
+    { 0x010010e4, 13178 }, /* Georgian_phar */
+    { 0x010010e5, 13100 }, /* Georgian_khar */
+    { 0x010010e6, 12970 }, /* Georgian_ghan */
+    { 0x010010e7, 13192 }, /* Georgian_qar */
+    { 0x010010e8, 13231 }, /* Georgian_shin */
+    { 0x010010e9, 12893 }, /* Georgian_chin */
+    { 0x010010ea, 12866 }, /* Georgian_can */
+    { 0x010010eb, 13074 }, /* Georgian_jil */
+    { 0x010010ec, 12907 }, /* Georgian_cil */
+    { 0x010010ed, 12879 }, /* Georgian_char */
+    { 0x010010ee, 13308 }, /* Georgian_xan */
+    { 0x010010ef, 13060 }, /* Georgian_jhan */
+    { 0x010010f0, 12984 }, /* Georgian_hae */
+    { 0x010010f1, 13010 }, /* Georgian_he */
+    { 0x010010f2, 13022 }, /* Georgian_hie */
+    { 0x010010f3, 13296 }, /* Georgian_we */
+    { 0x010010f4, 12997 }, /* Georgian_har */
+    { 0x010010f5, 13035 }, /* Georgian_hoe */
+    { 0x010010f6, 12945 }, /* Georgian_fi */
     { 0x01001e02, 3332 }, /* Babovedot */
     { 0x01001e03, 3342 }, /* babovedot */
-    { 0x01001e0a, 10324 }, /* Dabovedot */
-    { 0x01001e0b, 10334 }, /* dabovedot */
-    { 0x01001e1e, 12290 }, /* Fabovedot */
-    { 0x01001e1f, 12300 }, /* fabovedot */
-    { 0x01001e36, 19192 }, /* Lbelowdot */
-    { 0x01001e37, 19202 }, /* lbelowdot */
-    { 0x01001e40, 19537 }, /* Mabovedot */
-    { 0x01001e41, 19547 }, /* mabovedot */
-    { 0x01001e56, 21377 }, /* Pabovedot */
-    { 0x01001e57, 21387 }, /* pabovedot */
-    { 0x01001e60, 22583 }, /* Sabovedot */
-    { 0x01001e61, 22593 }, /* sabovedot */
-    { 0x01001e6a, 24302 }, /* Tabovedot */
-    { 0x01001e6b, 24312 }, /* tabovedot */
-    { 0x01001e80, 26609 }, /* Wgrave */
-    { 0x01001e81, 26616 }, /* wgrave */
-    { 0x01001e82, 26549 }, /* Wacute */
-    { 0x01001e83, 26556 }, /* wacute */
-    { 0x01001e84, 26587 }, /* Wdiaeresis */
-    { 0x01001e85, 26598 }, /* wdiaeresis */
-    { 0x01001e8a, 26635 }, /* Xabovedot */
-    { 0x01001e8b, 26645 }, /* xabovedot */
+    { 0x01001e0a, 10406 }, /* Dabovedot */
+    { 0x01001e0b, 10416 }, /* dabovedot */
+    { 0x01001e1e, 12372 }, /* Fabovedot */
+    { 0x01001e1f, 12382 }, /* fabovedot */
+    { 0x01001e36, 19274 }, /* Lbelowdot */
+    { 0x01001e37, 19284 }, /* lbelowdot */
+    { 0x01001e40, 19619 }, /* Mabovedot */
+    { 0x01001e41, 19629 }, /* mabovedot */
+    { 0x01001e56, 21459 }, /* Pabovedot */
+    { 0x01001e57, 21469 }, /* pabovedot */
+    { 0x01001e60, 22665 }, /* Sabovedot */
+    { 0x01001e61, 22675 }, /* sabovedot */
+    { 0x01001e6a, 24384 }, /* Tabovedot */
+    { 0x01001e6b, 24394 }, /* tabovedot */
+    { 0x01001e80, 26691 }, /* Wgrave */
+    { 0x01001e81, 26698 }, /* wgrave */
+    { 0x01001e82, 26631 }, /* Wacute */
+    { 0x01001e83, 26638 }, /* wacute */
+    { 0x01001e84, 26669 }, /* Wdiaeresis */
+    { 0x01001e85, 26680 }, /* wdiaeresis */
+    { 0x01001e8a, 26717 }, /* Xabovedot */
+    { 0x01001e8b, 26727 }, /* xabovedot */
     { 0x01001ea0, 416 }, /* Abelowdot */
     { 0x01001ea1, 426 }, /* abelowdot */
     { 0x01001ea2, 868 }, /* Ahook */
@@ -6481,116 +7087,116 @@
     { 0x01001eb5, 571 }, /* abrevetilde */
     { 0x01001eb6, 483 }, /* Abrevebelowdot */
     { 0x01001eb7, 498 }, /* abrevebelowdot */
-    { 0x01001eb8, 11462 }, /* Ebelowdot */
-    { 0x01001eb9, 11472 }, /* ebelowdot */
-    { 0x01001eba, 11738 }, /* Ehook */
-    { 0x01001ebb, 11744 }, /* ehook */
-    { 0x01001ebc, 12076 }, /* Etilde */
-    { 0x01001ebd, 12083 }, /* etilde */
-    { 0x01001ebe, 11520 }, /* Ecircumflexacute */
-    { 0x01001ebf, 11537 }, /* ecircumflexacute */
-    { 0x01001ec0, 11594 }, /* Ecircumflexgrave */
-    { 0x01001ec1, 11611 }, /* ecircumflexgrave */
-    { 0x01001ec2, 11628 }, /* Ecircumflexhook */
-    { 0x01001ec3, 11644 }, /* ecircumflexhook */
-    { 0x01001ec4, 11660 }, /* Ecircumflextilde */
-    { 0x01001ec5, 11677 }, /* ecircumflextilde */
-    { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */
-    { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */
-    { 0x01001ec8, 17219 }, /* Ihook */
-    { 0x01001ec9, 17225 }, /* ihook */
-    { 0x01001eca, 17097 }, /* Ibelowdot */
-    { 0x01001ecb, 17107 }, /* ibelowdot */
-    { 0x01001ecc, 20234 }, /* Obelowdot */
-    { 0x01001ecd, 20244 }, /* obelowdot */
-    { 0x01001ece, 20541 }, /* Ohook */
-    { 0x01001ecf, 20547 }, /* ohook */
-    { 0x01001ed0, 20292 }, /* Ocircumflexacute */
-    { 0x01001ed1, 20309 }, /* ocircumflexacute */
-    { 0x01001ed2, 20366 }, /* Ocircumflexgrave */
-    { 0x01001ed3, 20383 }, /* ocircumflexgrave */
-    { 0x01001ed4, 20400 }, /* Ocircumflexhook */
-    { 0x01001ed5, 20416 }, /* ocircumflexhook */
-    { 0x01001ed6, 20432 }, /* Ocircumflextilde */
-    { 0x01001ed7, 20449 }, /* ocircumflextilde */
-    { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */
-    { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */
-    { 0x01001eda, 20565 }, /* Ohornacute */
-    { 0x01001edb, 20576 }, /* ohornacute */
-    { 0x01001edc, 20615 }, /* Ohorngrave */
-    { 0x01001edd, 20626 }, /* ohorngrave */
-    { 0x01001ede, 20637 }, /* Ohornhook */
-    { 0x01001edf, 20647 }, /* ohornhook */
-    { 0x01001ee0, 20657 }, /* Ohorntilde */
-    { 0x01001ee1, 20668 }, /* ohorntilde */
-    { 0x01001ee2, 20587 }, /* Ohornbelowdot */
-    { 0x01001ee3, 20601 }, /* ohornbelowdot */
-    { 0x01001ee4, 25865 }, /* Ubelowdot */
-    { 0x01001ee5, 25875 }, /* ubelowdot */
-    { 0x01001ee6, 25985 }, /* Uhook */
-    { 0x01001ee7, 25991 }, /* uhook */
-    { 0x01001ee8, 26009 }, /* Uhornacute */
-    { 0x01001ee9, 26020 }, /* uhornacute */
-    { 0x01001eea, 26059 }, /* Uhorngrave */
-    { 0x01001eeb, 26070 }, /* uhorngrave */
-    { 0x01001eec, 26081 }, /* Uhornhook */
-    { 0x01001eed, 26091 }, /* uhornhook */
-    { 0x01001eee, 26101 }, /* Uhorntilde */
-    { 0x01001eef, 26112 }, /* uhorntilde */
-    { 0x01001ef0, 26031 }, /* Uhornbelowdot */
-    { 0x01001ef1, 26045 }, /* uhornbelowdot */
-    { 0x01001ef2, 29170 }, /* Ygrave */
-    { 0x01001ef3, 29177 }, /* ygrave */
-    { 0x01001ef4, 29100 }, /* Ybelowdot */
-    { 0x01001ef5, 29110 }, /* ybelowdot */
-    { 0x01001ef6, 29184 }, /* Yhook */
-    { 0x01001ef7, 29190 }, /* yhook */
-    { 0x01001ef8, 29196 }, /* Ytilde */
-    { 0x01001ef9, 29203 }, /* ytilde */
-    { 0x01002070, 29309 }, /* zerosuperior */
-    { 0x01002074, 12632 }, /* foursuperior */
-    { 0x01002075, 12594 }, /* fivesuperior */
-    { 0x01002076, 23756 }, /* sixsuperior */
-    { 0x01002077, 22932 }, /* sevensuperior */
-    { 0x01002078, 11765 }, /* eightsuperior */
-    { 0x01002079, 20062 }, /* ninesuperior */
-    { 0x01002080, 29295 }, /* zerosubscript */
-    { 0x01002081, 20742 }, /* onesubscript */
-    { 0x01002082, 25812 }, /* twosubscript */
-    { 0x01002083, 25556 }, /* threesubscript */
-    { 0x01002084, 12618 }, /* foursubscript */
-    { 0x01002085, 12580 }, /* fivesubscript */
-    { 0x01002086, 23743 }, /* sixsubscript */
-    { 0x01002087, 22917 }, /* sevensubscript */
-    { 0x01002088, 11750 }, /* eightsubscript */
-    { 0x01002089, 20048 }, /* ninesubscript */
-    { 0x010020a0, 11694 }, /* EcuSign */
+    { 0x01001eb8, 11544 }, /* Ebelowdot */
+    { 0x01001eb9, 11554 }, /* ebelowdot */
+    { 0x01001eba, 11820 }, /* Ehook */
+    { 0x01001ebb, 11826 }, /* ehook */
+    { 0x01001ebc, 12158 }, /* Etilde */
+    { 0x01001ebd, 12165 }, /* etilde */
+    { 0x01001ebe, 11602 }, /* Ecircumflexacute */
+    { 0x01001ebf, 11619 }, /* ecircumflexacute */
+    { 0x01001ec0, 11676 }, /* Ecircumflexgrave */
+    { 0x01001ec1, 11693 }, /* ecircumflexgrave */
+    { 0x01001ec2, 11710 }, /* Ecircumflexhook */
+    { 0x01001ec3, 11726 }, /* ecircumflexhook */
+    { 0x01001ec4, 11742 }, /* Ecircumflextilde */
+    { 0x01001ec5, 11759 }, /* ecircumflextilde */
+    { 0x01001ec6, 11636 }, /* Ecircumflexbelowdot */
+    { 0x01001ec7, 11656 }, /* ecircumflexbelowdot */
+    { 0x01001ec8, 17301 }, /* Ihook */
+    { 0x01001ec9, 17307 }, /* ihook */
+    { 0x01001eca, 17179 }, /* Ibelowdot */
+    { 0x01001ecb, 17189 }, /* ibelowdot */
+    { 0x01001ecc, 20316 }, /* Obelowdot */
+    { 0x01001ecd, 20326 }, /* obelowdot */
+    { 0x01001ece, 20623 }, /* Ohook */
+    { 0x01001ecf, 20629 }, /* ohook */
+    { 0x01001ed0, 20374 }, /* Ocircumflexacute */
+    { 0x01001ed1, 20391 }, /* ocircumflexacute */
+    { 0x01001ed2, 20448 }, /* Ocircumflexgrave */
+    { 0x01001ed3, 20465 }, /* ocircumflexgrave */
+    { 0x01001ed4, 20482 }, /* Ocircumflexhook */
+    { 0x01001ed5, 20498 }, /* ocircumflexhook */
+    { 0x01001ed6, 20514 }, /* Ocircumflextilde */
+    { 0x01001ed7, 20531 }, /* ocircumflextilde */
+    { 0x01001ed8, 20408 }, /* Ocircumflexbelowdot */
+    { 0x01001ed9, 20428 }, /* ocircumflexbelowdot */
+    { 0x01001eda, 20647 }, /* Ohornacute */
+    { 0x01001edb, 20658 }, /* ohornacute */
+    { 0x01001edc, 20697 }, /* Ohorngrave */
+    { 0x01001edd, 20708 }, /* ohorngrave */
+    { 0x01001ede, 20719 }, /* Ohornhook */
+    { 0x01001edf, 20729 }, /* ohornhook */
+    { 0x01001ee0, 20739 }, /* Ohorntilde */
+    { 0x01001ee1, 20750 }, /* ohorntilde */
+    { 0x01001ee2, 20669 }, /* Ohornbelowdot */
+    { 0x01001ee3, 20683 }, /* ohornbelowdot */
+    { 0x01001ee4, 25947 }, /* Ubelowdot */
+    { 0x01001ee5, 25957 }, /* ubelowdot */
+    { 0x01001ee6, 26067 }, /* Uhook */
+    { 0x01001ee7, 26073 }, /* uhook */
+    { 0x01001ee8, 26091 }, /* Uhornacute */
+    { 0x01001ee9, 26102 }, /* uhornacute */
+    { 0x01001eea, 26141 }, /* Uhorngrave */
+    { 0x01001eeb, 26152 }, /* uhorngrave */
+    { 0x01001eec, 26163 }, /* Uhornhook */
+    { 0x01001eed, 26173 }, /* uhornhook */
+    { 0x01001eee, 26183 }, /* Uhorntilde */
+    { 0x01001eef, 26194 }, /* uhorntilde */
+    { 0x01001ef0, 26113 }, /* Uhornbelowdot */
+    { 0x01001ef1, 26127 }, /* uhornbelowdot */
+    { 0x01001ef2, 31278 }, /* Ygrave */
+    { 0x01001ef3, 31285 }, /* ygrave */
+    { 0x01001ef4, 31208 }, /* Ybelowdot */
+    { 0x01001ef5, 31218 }, /* ybelowdot */
+    { 0x01001ef6, 31292 }, /* Yhook */
+    { 0x01001ef7, 31298 }, /* yhook */
+    { 0x01001ef8, 31304 }, /* Ytilde */
+    { 0x01001ef9, 31311 }, /* ytilde */
+    { 0x01002070, 31417 }, /* zerosuperior */
+    { 0x01002074, 12714 }, /* foursuperior */
+    { 0x01002075, 12676 }, /* fivesuperior */
+    { 0x01002076, 23838 }, /* sixsuperior */
+    { 0x01002077, 23014 }, /* sevensuperior */
+    { 0x01002078, 11847 }, /* eightsuperior */
+    { 0x01002079, 20144 }, /* ninesuperior */
+    { 0x01002080, 31403 }, /* zerosubscript */
+    { 0x01002081, 20824 }, /* onesubscript */
+    { 0x01002082, 25894 }, /* twosubscript */
+    { 0x01002083, 25638 }, /* threesubscript */
+    { 0x01002084, 12700 }, /* foursubscript */
+    { 0x01002085, 12662 }, /* fivesubscript */
+    { 0x01002086, 23825 }, /* sixsubscript */
+    { 0x01002087, 22999 }, /* sevensubscript */
+    { 0x01002088, 11832 }, /* eightsubscript */
+    { 0x01002089, 20130 }, /* ninesubscript */
+    { 0x010020a0, 11776 }, /* EcuSign */
     { 0x010020a1, 8670 }, /* ColonSign */
-    { 0x010020a2, 8744 }, /* CruzeiroSign */
-    { 0x010020a3, 12416 }, /* FFrancSign */
-    { 0x010020a4, 19448 }, /* LiraSign */
-    { 0x010020a5, 19724 }, /* MillSign */
-    { 0x010020a6, 19967 }, /* NairaSign */
-    { 0x010020a7, 21526 }, /* PesetaSign */
-    { 0x010020a8, 22569 }, /* RupeeSign */
-    { 0x010020a9, 26623 }, /* WonSign */
-    { 0x010020aa, 20009 }, /* NewSheqelSign */
-    { 0x010020ab, 11258 }, /* DongSign */
-    { 0x01002202, 21446 }, /* partdifferential */
-    { 0x01002205, 11919 }, /* emptyset */
-    { 0x01002208, 11802 }, /* elementof */
-    { 0x01002209, 20112 }, /* notelementof */
-    { 0x0100220b, 8686 }, /* containsas */
-    { 0x0100221a, 23809 }, /* squareroot */
-    { 0x0100221b, 8757 }, /* cuberoot */
-    { 0x0100221c, 12645 }, /* fourthroot */
-    { 0x0100222c, 11232 }, /* dintegral */
-    { 0x0100222d, 25585 }, /* tintegral */
+    { 0x010020a2, 8826 }, /* CruzeiroSign */
+    { 0x010020a3, 12498 }, /* FFrancSign */
+    { 0x010020a4, 19530 }, /* LiraSign */
+    { 0x010020a5, 19806 }, /* MillSign */
+    { 0x010020a6, 20049 }, /* NairaSign */
+    { 0x010020a7, 21608 }, /* PesetaSign */
+    { 0x010020a8, 22651 }, /* RupeeSign */
+    { 0x010020a9, 26705 }, /* WonSign */
+    { 0x010020aa, 20091 }, /* NewSheqelSign */
+    { 0x010020ab, 11340 }, /* DongSign */
+    { 0x01002202, 21528 }, /* partdifferential */
+    { 0x01002205, 12001 }, /* emptyset */
+    { 0x01002208, 11884 }, /* elementof */
+    { 0x01002209, 20194 }, /* notelementof */
+    { 0x0100220b, 8768 }, /* containsas */
+    { 0x0100221a, 23891 }, /* squareroot */
+    { 0x0100221b, 8839 }, /* cuberoot */
+    { 0x0100221c, 12727 }, /* fourthroot */
+    { 0x0100222c, 11314 }, /* dintegral */
+    { 0x0100222d, 25667 }, /* tintegral */
     { 0x01002235, 3396 }, /* because */
-    { 0x01002247, 20100 }, /* notapproxeq */
+    { 0x01002247, 20182 }, /* notapproxeq */
     { 0x01002248, 945 }, /* approxeq */
-    { 0x01002262, 20134 }, /* notidentical */
-    { 0x01002263, 23854 }, /* stricteq */
+    { 0x01002262, 20216 }, /* notidentical */
+    { 0x01002263, 23936 }, /* stricteq */
     { 0x01002800, 3628 }, /* braille_blank */
     { 0x01002801, 3783 }, /* braille_dots_1 */
     { 0x01002802, 6151 }, /* braille_dots_2 */
@@ -6847,283 +7453,420 @@
     { 0x010028fd, 5104 }, /* braille_dots_1345678 */
     { 0x010028fe, 6256 }, /* braille_dots_2345678 */
     { 0x010028ff, 3909 }, /* braille_dots_12345678 */
-    { 0x100000a8, 16910 }, /* hpmute_acute */
-    { 0x100000a9, 16977 }, /* hpmute_grave */
-    { 0x100000aa, 16923 }, /* hpmute_asciicircum */
-    { 0x100000ab, 16960 }, /* hpmute_diaeresis */
-    { 0x100000ac, 16942 }, /* hpmute_asciitilde */
-    { 0x100000af, 16867 }, /* hplira */
-    { 0x100000be, 16813 }, /* hpguilder */
-    { 0x100000ee, 17014 }, /* hpYdiaeresis */
-    { 0x100000f6, 16874 }, /* hplongminus */
-    { 0x100000fc, 16767 }, /* hpblock */
-    { 0x1000fe22, 10414 }, /* Ddiaeresis */
-    { 0x1000fe27, 10344 }, /* Dacute_accent */
-    { 0x1000fe2c, 10379 }, /* Dcedilla_accent */
-    { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */
-    { 0x1000fe60, 11189 }, /* Dgrave_accent */
-    { 0x1000fe7e, 11417 }, /* Dtilde */
-    { 0x1000feb0, 11388 }, /* Dring_accent */
-    { 0x1000ff00, 11380 }, /* DRemove */
-    { 0x1000ff48, 16886 }, /* hpModelock1 */
-    { 0x1000ff49, 16898 }, /* hpModelock2 */
-    { 0x1000ff6c, 16990 }, /* hpReset */
-    { 0x1000ff6d, 16998 }, /* hpSystem */
-    { 0x1000ff6e, 17007 }, /* hpUser */
-    { 0x1000ff6f, 16775 }, /* hpClearLine */
-    { 0x1000ff70, 16836 }, /* hpInsertLine */
-    { 0x1000ff71, 16800 }, /* hpDeleteLine */
-    { 0x1000ff72, 16823 }, /* hpInsertChar */
-    { 0x1000ff73, 16787 }, /* hpDeleteChar */
-    { 0x1000ff74, 16757 }, /* hpBackTab */
-    { 0x1000ff75, 16854 }, /* hpKP_BackTab */
-    { 0x1000ff76, 12125 }, /* Ext16bit_L */
-    { 0x1000ff77, 12136 }, /* Ext16bit_R */
-    { 0x1004ff02, 20956 }, /* osfCopy */
-    { 0x1004ff03, 20964 }, /* osfCut */
-    { 0x1004ff04, 21163 }, /* osfPaste */
-    { 0x1004ff07, 20900 }, /* osfBackTab */
-    { 0x1004ff08, 20887 }, /* osfBackSpace */
-    { 0x1004ff0b, 20947 }, /* osfClear */
-    { 0x1004ff1b, 21026 }, /* osfEscape */
-    { 0x1004ff31, 20876 }, /* osfAddMode */
-    { 0x1004ff32, 21197 }, /* osfPrimaryPaste */
-    { 0x1004ff33, 21213 }, /* osfQuickPaste */
-    { 0x1004ff40, 21128 }, /* osfPageLeft */
-    { 0x1004ff41, 21153 }, /* osfPageUp */
-    { 0x1004ff42, 21116 }, /* osfPageDown */
-    { 0x1004ff43, 21140 }, /* osfPageRight */
-    { 0x1004ff44, 20864 }, /* osfActivate */
-    { 0x1004ff45, 21080 }, /* osfMenuBar */
-    { 0x1004ff51, 21064 }, /* osfLeft */
-    { 0x1004ff52, 21290 }, /* osfUp */
-    { 0x1004ff53, 21250 }, /* osfRight */
-    { 0x1004ff54, 20996 }, /* osfDown */
-    { 0x1004ff57, 21015 }, /* osfEndLine */
-    { 0x1004ff58, 20924 }, /* osfBeginLine */
-    { 0x1004ff59, 21004 }, /* osfEndData */
-    { 0x1004ff5a, 20911 }, /* osfBeginData */
-    { 0x1004ff5b, 21185 }, /* osfPrevMenu */
-    { 0x1004ff5c, 21104 }, /* osfNextMenu */
-    { 0x1004ff5d, 21172 }, /* osfPrevField */
-    { 0x1004ff5e, 21091 }, /* osfNextField */
-    { 0x1004ff60, 21259 }, /* osfSelect */
-    { 0x1004ff63, 21054 }, /* osfInsert */
-    { 0x1004ff65, 21282 }, /* osfUndo */
-    { 0x1004ff67, 21072 }, /* osfMenu */
-    { 0x1004ff69, 20937 }, /* osfCancel */
-    { 0x1004ff6a, 21046 }, /* osfHelp */
-    { 0x1004ff71, 21269 }, /* osfSelectAll */
-    { 0x1004ff72, 20981 }, /* osfDeselectAll */
-    { 0x1004ff73, 21227 }, /* osfReselect */
-    { 0x1004ff74, 21036 }, /* osfExtend */
-    { 0x1004ff78, 21239 }, /* osfRestore */
-    { 0x1004ffff, 20971 }, /* osfDelete */
-    { 0x1005ff00, 24032 }, /* SunFA_Grave */
-    { 0x1005ff01, 24003 }, /* SunFA_Circum */
-    { 0x1005ff02, 24044 }, /* SunFA_Tilde */
-    { 0x1005ff03, 23977 }, /* SunFA_Acute */
-    { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */
-    { 0x1005ff05, 23989 }, /* SunFA_Cedilla */
-    { 0x1005ff10, 23963 }, /* SunF36 */
-    { 0x1005ff11, 23970 }, /* SunF37 */
-    { 0x1005ff60, 24180 }, /* SunSys_Req */
-    { 0x1005ff70, 24163 }, /* SunProps */
-    { 0x1005ff71, 24064 }, /* SunFront */
-    { 0x1005ff72, 23948 }, /* SunCopy */
-    { 0x1005ff73, 24073 }, /* SunOpen */
-    { 0x1005ff74, 24103 }, /* SunPaste */
-    { 0x1005ff75, 23956 }, /* SunCut */
-    { 0x1005ff76, 24112 }, /* SunPowerSwitch */
-    { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */
-    { 0x1005ff78, 23904 }, /* SunAudioMute */
-    { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */
-    { 0x1005ff7a, 24199 }, /* SunVideoDegauss */
-    { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */
-    { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */
-    { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */
-    { 0x1008fe01, 28552 }, /* XF86Switch_VT_1 */
-    { 0x1008fe02, 28619 }, /* XF86Switch_VT_2 */
-    { 0x1008fe03, 28635 }, /* XF86Switch_VT_3 */
-    { 0x1008fe04, 28651 }, /* XF86Switch_VT_4 */
-    { 0x1008fe05, 28667 }, /* XF86Switch_VT_5 */
-    { 0x1008fe06, 28683 }, /* XF86Switch_VT_6 */
-    { 0x1008fe07, 28699 }, /* XF86Switch_VT_7 */
-    { 0x1008fe08, 28715 }, /* XF86Switch_VT_8 */
-    { 0x1008fe09, 28731 }, /* XF86Switch_VT_9 */
-    { 0x1008fe0a, 28568 }, /* XF86Switch_VT_10 */
-    { 0x1008fe0b, 28585 }, /* XF86Switch_VT_11 */
-    { 0x1008fe0c, 28602 }, /* XF86Switch_VT_12 */
-    { 0x1008fe20, 28878 }, /* XF86Ungrab */
-    { 0x1008fe21, 27151 }, /* XF86ClearGrab */
-    { 0x1008fe22, 28029 }, /* XF86Next_VMode */
-    { 0x1008fe23, 28151 }, /* XF86Prev_VMode */
-    { 0x1008fe24, 27786 }, /* XF86LogWindowTree */
-    { 0x1008fe25, 27759 }, /* XF86LogGrabInfo */
-    { 0x1008ff01, 27897 }, /* XF86ModeLock */
-    { 0x1008ff02, 27955 }, /* XF86MonBrightnessUp */
-    { 0x1008ff03, 27933 }, /* XF86MonBrightnessDown */
-    { 0x1008ff04, 27522 }, /* XF86KbdLightOnOff */
-    { 0x1008ff05, 27502 }, /* XF86KbdBrightnessUp */
-    { 0x1008ff06, 27480 }, /* XF86KbdBrightnessDown */
-    { 0x1008ff07, 27910 }, /* XF86MonBrightnessCycle */
-    { 0x1008ff10, 28484 }, /* XF86Standby */
-    { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */
-    { 0x1008ff12, 26802 }, /* XF86AudioMute */
-    { 0x1008ff13, 26889 }, /* XF86AudioRaiseVolume */
-    { 0x1008ff14, 26845 }, /* XF86AudioPlay */
-    { 0x1008ff15, 26978 }, /* XF86AudioStop */
-    { 0x1008ff16, 26875 }, /* XF86AudioPrev */
-    { 0x1008ff17, 26816 }, /* XF86AudioNext */
-    { 0x1008ff18, 27443 }, /* XF86HomePage */
-    { 0x1008ff19, 27804 }, /* XF86Mail */
-    { 0x1008ff1a, 28496 }, /* XF86Start */
-    { 0x1008ff1b, 28408 }, /* XF86Search */
-    { 0x1008ff1c, 26930 }, /* XF86AudioRecord */
-    { 0x1008ff1d, 27106 }, /* XF86Calculator */
-    { 0x1008ff1e, 27852 }, /* XF86Memo */
-    { 0x1008ff1f, 28782 }, /* XF86ToDoList */
-    { 0x1008ff20, 27121 }, /* XF86Calendar */
-    { 0x1008ff21, 28124 }, /* XF86PowerDown */
-    { 0x1008ff22, 27189 }, /* XF86ContrastAdjust */
-    { 0x1008ff23, 28255 }, /* XF86RockerUp */
-    { 0x1008ff24, 28224 }, /* XF86RockerDown */
-    { 0x1008ff25, 28239 }, /* XF86RockerEnter */
-    { 0x1008ff26, 27001 }, /* XF86Back */
-    { 0x1008ff27, 27333 }, /* XF86Forward */
-    { 0x1008ff28, 28506 }, /* XF86Stop */
-    { 0x1008ff29, 28180 }, /* XF86Refresh */
-    { 0x1008ff2a, 28138 }, /* XF86PowerOff */
-    { 0x1008ff2b, 28966 }, /* XF86WakeUp */
-    { 0x1008ff2c, 27274 }, /* XF86Eject */
-    { 0x1008ff2d, 28348 }, /* XF86ScreenSaver */
-    { 0x1008ff2e, 29031 }, /* XF86WWW */
-    { 0x1008ff2f, 28448 }, /* XF86Sleep */
-    { 0x1008ff30, 27307 }, /* XF86Favorites */
-    { 0x1008ff31, 26830 }, /* XF86AudioPause */
-    { 0x1008ff32, 26770 }, /* XF86AudioMedia */
-    { 0x1008ff33, 27985 }, /* XF86MyComputer */
-    { 0x1008ff34, 28932 }, /* XF86VendorHome */
-    { 0x1008ff35, 27745 }, /* XF86LightBulb */
-    { 0x1008ff36, 28439 }, /* XF86Shop */
-    { 0x1008ff37, 27431 }, /* XF86History */
-    { 0x1008ff38, 28068 }, /* XF86OpenURL */
-    { 0x1008ff39, 26655 }, /* XF86AddFavorite */
-    { 0x1008ff3a, 27456 }, /* XF86HotLinks */
-    { 0x1008ff3b, 27070 }, /* XF86BrightnessAdjust */
-    { 0x1008ff3c, 27321 }, /* XF86Finance */
-    { 0x1008ff3d, 27175 }, /* XF86Community */
-    { 0x1008ff3e, 26962 }, /* XF86AudioRewind */
-    { 0x1008ff3f, 27010 }, /* XF86BackForward */
-    { 0x1008ff40, 27553 }, /* XF86Launch0 */
-    { 0x1008ff41, 27565 }, /* XF86Launch1 */
-    { 0x1008ff42, 27577 }, /* XF86Launch2 */
-    { 0x1008ff43, 27589 }, /* XF86Launch3 */
-    { 0x1008ff44, 27601 }, /* XF86Launch4 */
-    { 0x1008ff45, 27613 }, /* XF86Launch5 */
-    { 0x1008ff46, 27625 }, /* XF86Launch6 */
-    { 0x1008ff47, 27637 }, /* XF86Launch7 */
-    { 0x1008ff48, 27649 }, /* XF86Launch8 */
-    { 0x1008ff49, 27661 }, /* XF86Launch9 */
-    { 0x1008ff4a, 27673 }, /* XF86LaunchA */
-    { 0x1008ff4b, 27685 }, /* XF86LaunchB */
-    { 0x1008ff4c, 27697 }, /* XF86LaunchC */
-    { 0x1008ff4d, 27709 }, /* XF86LaunchD */
-    { 0x1008ff4e, 27721 }, /* XF86LaunchE */
-    { 0x1008ff4f, 27733 }, /* XF86LaunchF */
-    { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */
-    { 0x1008ff51, 26691 }, /* XF86ApplicationRight */
-    { 0x1008ff52, 27061 }, /* XF86Book */
-    { 0x1008ff53, 27134 }, /* XF86CD */
-    { 0x1008ff54, 27091 }, /* XF86Calculater */
-    { 0x1008ff55, 27141 }, /* XF86Clear */
-    { 0x1008ff56, 27165 }, /* XF86Close */
-    { 0x1008ff57, 27208 }, /* XF86Copy */
-    { 0x1008ff58, 27217 }, /* XF86Cut */
-    { 0x1008ff59, 27240 }, /* XF86Display */
-    { 0x1008ff5a, 27266 }, /* XF86DOS */
-    { 0x1008ff5b, 27252 }, /* XF86Documents */
-    { 0x1008ff5c, 27284 }, /* XF86Excel */
-    { 0x1008ff5d, 27294 }, /* XF86Explorer */
-    { 0x1008ff5e, 27391 }, /* XF86Game */
-    { 0x1008ff5f, 27400 }, /* XF86Go */
-    { 0x1008ff60, 27469 }, /* XF86iTouch */
-    { 0x1008ff61, 27775 }, /* XF86LogOff */
-    { 0x1008ff62, 27829 }, /* XF86Market */
-    { 0x1008ff63, 27840 }, /* XF86Meeting */
-    { 0x1008ff65, 27861 }, /* XF86MenuKB */
-    { 0x1008ff66, 27872 }, /* XF86MenuPB */
-    { 0x1008ff67, 28000 }, /* XF86MySites */
-    { 0x1008ff68, 28012 }, /* XF86New */
-    { 0x1008ff69, 28020 }, /* XF86News */
-    { 0x1008ff6a, 28044 }, /* XF86OfficeHome */
-    { 0x1008ff6b, 28059 }, /* XF86Open */
-    { 0x1008ff6c, 28080 }, /* XF86Option */
-    { 0x1008ff6d, 28091 }, /* XF86Paste */
-    { 0x1008ff6e, 28101 }, /* XF86Phone */
-    { 0x1008ff70, 28166 }, /* XF86Q */
-    { 0x1008ff72, 28203 }, /* XF86Reply */
-    { 0x1008ff73, 28192 }, /* XF86Reload */
-    { 0x1008ff74, 28268 }, /* XF86RotateWindows */
-    { 0x1008ff75, 28324 }, /* XF86RotationPB */
-    { 0x1008ff76, 28286 }, /* XF86RotationKB */
-    { 0x1008ff77, 28339 }, /* XF86Save */
-    { 0x1008ff78, 28395 }, /* XF86ScrollUp */
-    { 0x1008ff79, 28380 }, /* XF86ScrollDown */
-    { 0x1008ff7a, 28364 }, /* XF86ScrollClick */
-    { 0x1008ff7b, 28430 }, /* XF86Send */
-    { 0x1008ff7c, 28458 }, /* XF86Spell */
-    { 0x1008ff7d, 28468 }, /* XF86SplitScreen */
-    { 0x1008ff7e, 28528 }, /* XF86Support */
-    { 0x1008ff7f, 28747 }, /* XF86TaskPane */
-    { 0x1008ff80, 28760 }, /* XF86Terminal */
-    { 0x1008ff81, 28795 }, /* XF86Tools */
-    { 0x1008ff82, 28867 }, /* XF86Travel */
-    { 0x1008ff84, 28913 }, /* XF86UserPB */
-    { 0x1008ff85, 28889 }, /* XF86User1KB */
-    { 0x1008ff86, 28901 }, /* XF86User2KB */
-    { 0x1008ff87, 28947 }, /* XF86Video */
-    { 0x1008ff88, 28988 }, /* XF86WheelButton */
-    { 0x1008ff89, 29013 }, /* XF86Word */
-    { 0x1008ff8a, 29039 }, /* XF86Xfer */
-    { 0x1008ff8b, 29059 }, /* XF86ZoomIn */
-    { 0x1008ff8c, 29070 }, /* XF86ZoomOut */
-    { 0x1008ff8d, 26992 }, /* XF86Away */
-    { 0x1008ff8e, 27883 }, /* XF86Messenger */
-    { 0x1008ff8f, 28977 }, /* XF86WebCam */
-    { 0x1008ff90, 27813 }, /* XF86MailForward */
-    { 0x1008ff91, 28111 }, /* XF86Pictures */
-    { 0x1008ff92, 27975 }, /* XF86Music */
-    { 0x1008ff93, 27026 }, /* XF86Battery */
-    { 0x1008ff94, 27047 }, /* XF86Bluetooth */
-    { 0x1008ff95, 29004 }, /* XF86WLAN */
-    { 0x1008ff96, 28924 }, /* XF86UWB */
-    { 0x1008ff97, 26732 }, /* XF86AudioForward */
-    { 0x1008ff98, 26946 }, /* XF86AudioRepeat */
-    { 0x1008ff99, 26910 }, /* XF86AudioRandomPlay */
-    { 0x1008ff9a, 28515 }, /* XF86Subtitle */
-    { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */
-    { 0x1008ff9c, 27225 }, /* XF86CycleAngle */
-    { 0x1008ff9d, 27345 }, /* XF86FrameBack */
-    { 0x1008ff9e, 27359 }, /* XF86FrameForward */
-    { 0x1008ff9f, 28773 }, /* XF86Time */
-    { 0x1008ffa0, 28419 }, /* XF86Select */
-    { 0x1008ffa1, 28957 }, /* XF86View */
-    { 0x1008ffa2, 28805 }, /* XF86TopMenu */
-    { 0x1008ffa3, 28172 }, /* XF86Red */
-    { 0x1008ffa4, 27407 }, /* XF86Green */
-    { 0x1008ffa5, 29048 }, /* XF86Yellow */
-    { 0x1008ffa6, 27038 }, /* XF86Blue */
-    { 0x1008ffa7, 28540 }, /* XF86Suspend */
-    { 0x1008ffa8, 27417 }, /* XF86Hibernate */
-    { 0x1008ffa9, 28848 }, /* XF86TouchpadToggle */
-    { 0x1008ffb0, 28833 }, /* XF86TouchpadOn */
-    { 0x1008ffb1, 28817 }, /* XF86TouchpadOff */
-    { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */
-    { 0x1008ffb3, 27540 }, /* XF86Keyboard */
-    { 0x1008ffb4, 29022 }, /* XF86WWAN */
-    { 0x1008ffb5, 28213 }, /* XF86RFKill */
-    { 0x1008ffb6, 26859 }, /* XF86AudioPreset */
-    { 0x1008ffb7, 28301 }, /* XF86RotationLockToggle */
-    { 0x1008ffb8, 27376 }, /* XF86FullScreen */
+    { 0x100000a8, 16992 }, /* hpmute_acute */
+    { 0x100000a9, 17059 }, /* hpmute_grave */
+    { 0x100000aa, 17005 }, /* hpmute_asciicircum */
+    { 0x100000ab, 17042 }, /* hpmute_diaeresis */
+    { 0x100000ac, 17024 }, /* hpmute_asciitilde */
+    { 0x100000af, 16949 }, /* hplira */
+    { 0x100000be, 16895 }, /* hpguilder */
+    { 0x100000ee, 17096 }, /* hpYdiaeresis */
+    { 0x100000f6, 16956 }, /* hplongminus */
+    { 0x100000fc, 16849 }, /* hpblock */
+    { 0x1000fe22, 10496 }, /* Ddiaeresis */
+    { 0x1000fe27, 10426 }, /* Dacute_accent */
+    { 0x1000fe2c, 10461 }, /* Dcedilla_accent */
+    { 0x1000fe5e, 10477 }, /* Dcircumflex_accent */
+    { 0x1000fe60, 11271 }, /* Dgrave_accent */
+    { 0x1000fe7e, 11499 }, /* Dtilde */
+    { 0x1000feb0, 11470 }, /* Dring_accent */
+    { 0x1000ff00, 11462 }, /* DRemove */
+    { 0x1000ff48, 16968 }, /* hpModelock1 */
+    { 0x1000ff49, 16980 }, /* hpModelock2 */
+    { 0x1000ff6c, 17072 }, /* hpReset */
+    { 0x1000ff6d, 17080 }, /* hpSystem */
+    { 0x1000ff6e, 17089 }, /* hpUser */
+    { 0x1000ff6f, 16857 }, /* hpClearLine */
+    { 0x1000ff70, 16918 }, /* hpInsertLine */
+    { 0x1000ff71, 16882 }, /* hpDeleteLine */
+    { 0x1000ff72, 16905 }, /* hpInsertChar */
+    { 0x1000ff73, 16869 }, /* hpDeleteChar */
+    { 0x1000ff74, 16839 }, /* hpBackTab */
+    { 0x1000ff75, 16936 }, /* hpKP_BackTab */
+    { 0x1000ff76, 12207 }, /* Ext16bit_L */
+    { 0x1000ff77, 12218 }, /* Ext16bit_R */
+    { 0x1004ff02, 21038 }, /* osfCopy */
+    { 0x1004ff03, 21046 }, /* osfCut */
+    { 0x1004ff04, 21245 }, /* osfPaste */
+    { 0x1004ff07, 20982 }, /* osfBackTab */
+    { 0x1004ff08, 20969 }, /* osfBackSpace */
+    { 0x1004ff0b, 21029 }, /* osfClear */
+    { 0x1004ff1b, 21108 }, /* osfEscape */
+    { 0x1004ff31, 20958 }, /* osfAddMode */
+    { 0x1004ff32, 21279 }, /* osfPrimaryPaste */
+    { 0x1004ff33, 21295 }, /* osfQuickPaste */
+    { 0x1004ff40, 21210 }, /* osfPageLeft */
+    { 0x1004ff41, 21235 }, /* osfPageUp */
+    { 0x1004ff42, 21198 }, /* osfPageDown */
+    { 0x1004ff43, 21222 }, /* osfPageRight */
+    { 0x1004ff44, 20946 }, /* osfActivate */
+    { 0x1004ff45, 21162 }, /* osfMenuBar */
+    { 0x1004ff51, 21146 }, /* osfLeft */
+    { 0x1004ff52, 21372 }, /* osfUp */
+    { 0x1004ff53, 21332 }, /* osfRight */
+    { 0x1004ff54, 21078 }, /* osfDown */
+    { 0x1004ff57, 21097 }, /* osfEndLine */
+    { 0x1004ff58, 21006 }, /* osfBeginLine */
+    { 0x1004ff59, 21086 }, /* osfEndData */
+    { 0x1004ff5a, 20993 }, /* osfBeginData */
+    { 0x1004ff5b, 21267 }, /* osfPrevMenu */
+    { 0x1004ff5c, 21186 }, /* osfNextMenu */
+    { 0x1004ff5d, 21254 }, /* osfPrevField */
+    { 0x1004ff5e, 21173 }, /* osfNextField */
+    { 0x1004ff60, 21341 }, /* osfSelect */
+    { 0x1004ff63, 21136 }, /* osfInsert */
+    { 0x1004ff65, 21364 }, /* osfUndo */
+    { 0x1004ff67, 21154 }, /* osfMenu */
+    { 0x1004ff69, 21019 }, /* osfCancel */
+    { 0x1004ff6a, 21128 }, /* osfHelp */
+    { 0x1004ff71, 21351 }, /* osfSelectAll */
+    { 0x1004ff72, 21063 }, /* osfDeselectAll */
+    { 0x1004ff73, 21309 }, /* osfReselect */
+    { 0x1004ff74, 21118 }, /* osfExtend */
+    { 0x1004ff78, 21321 }, /* osfRestore */
+    { 0x1004ffff, 21053 }, /* osfDelete */
+    { 0x1005ff00, 24114 }, /* SunFA_Grave */
+    { 0x1005ff01, 24085 }, /* SunFA_Circum */
+    { 0x1005ff02, 24126 }, /* SunFA_Tilde */
+    { 0x1005ff03, 24059 }, /* SunFA_Acute */
+    { 0x1005ff04, 24098 }, /* SunFA_Diaeresis */
+    { 0x1005ff05, 24071 }, /* SunFA_Cedilla */
+    { 0x1005ff10, 24045 }, /* SunF36 */
+    { 0x1005ff11, 24052 }, /* SunF37 */
+    { 0x1005ff60, 24262 }, /* SunSys_Req */
+    { 0x1005ff70, 24245 }, /* SunProps */
+    { 0x1005ff71, 24146 }, /* SunFront */
+    { 0x1005ff72, 24030 }, /* SunCopy */
+    { 0x1005ff73, 24155 }, /* SunOpen */
+    { 0x1005ff74, 24185 }, /* SunPaste */
+    { 0x1005ff75, 24038 }, /* SunCut */
+    { 0x1005ff76, 24194 }, /* SunPowerSwitch */
+    { 0x1005ff77, 23966 }, /* SunAudioLowerVolume */
+    { 0x1005ff78, 23986 }, /* SunAudioMute */
+    { 0x1005ff79, 23999 }, /* SunAudioRaiseVolume */
+    { 0x1005ff7a, 24281 }, /* SunVideoDegauss */
+    { 0x1005ff7b, 24297 }, /* SunVideoLowerBrightness */
+    { 0x1005ff7c, 24321 }, /* SunVideoRaiseBrightness */
+    { 0x1005ff7d, 24209 }, /* SunPowerSwitchShift */
+    { 0x100810f4, 27381 }, /* XF86BrightnessAuto */
+    { 0x100810f5, 27809 }, /* XF86DisplayOff */
+    { 0x10081166, 28175 }, /* XF86Info */
+    { 0x10081177, 26885 }, /* XF86AspectRatio */
+    { 0x10081185, 27864 }, /* XF86DVD */
+    { 0x10081188, 26968 }, /* XF86Audio */
+    { 0x10081192, 27629 }, /* XF86ChannelUp */
+    { 0x10081193, 27613 }, /* XF86ChannelDown */
+    { 0x1008119b, 27350 }, /* XF86Break */
+    { 0x100811a0, 30983 }, /* XF86VideoPhone */
+    { 0x100811a4, 31176 }, /* XF86ZoomReset */
+    { 0x100811a6, 27872 }, /* XF86Editor */
+    { 0x100811a8, 28067 }, /* XF86GraphicsEditor */
+    { 0x100811a9, 29984 }, /* XF86Presentation */
+    { 0x100811aa, 27784 }, /* XF86Database */
+    { 0x100811ac, 31032 }, /* XF86Voicemail */
+    { 0x100811ad, 26800 }, /* XF86Addressbook */
+    { 0x100811af, 27824 }, /* XF86DisplayToggle */
+    { 0x100811b0, 30437 }, /* XF86SpellCheck */
+    { 0x100811b6, 27691 }, /* XF86ContextMenu */
+    { 0x100811b7, 29304 }, /* XF86MediaRepeat */
+    { 0x100811b8, 26756 }, /* XF8610ChannelsUp */
+    { 0x100811b9, 26737 }, /* XF8610ChannelsDown */
+    { 0x100811ba, 28164 }, /* XF86Images */
+    { 0x100811bc, 29558 }, /* XF86NotificationCenter */
+    { 0x100811bd, 29928 }, /* XF86PickupPhone */
+    { 0x100811be, 28096 }, /* XF86HangupPhone */
+    { 0x100811d0, 27958 }, /* XF86Fn */
+    { 0x100811d1, 27965 }, /* XF86Fn_Esc */
+    { 0x100811e5, 27976 }, /* XF86FnRightShift */
+    { 0x10081200, 29581 }, /* XF86Numeric0 */
+    { 0x10081201, 29594 }, /* XF86Numeric1 */
+    { 0x10081202, 29635 }, /* XF86Numeric2 */
+    { 0x10081203, 29648 }, /* XF86Numeric3 */
+    { 0x10081204, 29661 }, /* XF86Numeric4 */
+    { 0x10081205, 29674 }, /* XF86Numeric5 */
+    { 0x10081206, 29687 }, /* XF86Numeric6 */
+    { 0x10081207, 29700 }, /* XF86Numeric7 */
+    { 0x10081208, 29713 }, /* XF86Numeric8 */
+    { 0x10081209, 29726 }, /* XF86Numeric9 */
+    { 0x1008120a, 29808 }, /* XF86NumericStar */
+    { 0x1008120b, 29791 }, /* XF86NumericPound */
+    { 0x1008120c, 29739 }, /* XF86NumericA */
+    { 0x1008120d, 29752 }, /* XF86NumericB */
+    { 0x1008120e, 29765 }, /* XF86NumericC */
+    { 0x1008120f, 29778 }, /* XF86NumericD */
+    { 0x10081210, 27511 }, /* XF86CameraFocus */
+    { 0x10081211, 31102 }, /* XF86WPSButton */
+    { 0x10081215, 27571 }, /* XF86CameraZoomIn */
+    { 0x10081216, 27588 }, /* XF86CameraZoomOut */
+    { 0x10081217, 27558 }, /* XF86CameraUp */
+    { 0x10081218, 27496 }, /* XF86CameraDown */
+    { 0x10081219, 27527 }, /* XF86CameraLeft */
+    { 0x1008121a, 27542 }, /* XF86CameraRight */
+    { 0x1008121b, 26932 }, /* XF86AttendantOn */
+    { 0x1008121c, 26915 }, /* XF86AttendantOff */
+    { 0x1008121d, 26948 }, /* XF86AttendantToggle */
+    { 0x1008121e, 28742 }, /* XF86LightsToggle */
+    { 0x10081230, 26816 }, /* XF86ALSToggle */
+    { 0x10081240, 27436 }, /* XF86Buttonconfig */
+    { 0x10081241, 30746 }, /* XF86Taskmanager */
+    { 0x10081242, 28195 }, /* XF86Journal */
+    { 0x10081243, 27726 }, /* XF86ControlPanel */
+    { 0x10081244, 26871 }, /* XF86AppSelect */
+    { 0x10081245, 30277 }, /* XF86Screensaver */
+    { 0x10081246, 31015 }, /* XF86VoiceCommand */
+    { 0x10081247, 26901 }, /* XF86Assistant */
+    { 0x10081250, 27418 }, /* XF86BrightnessMin */
+    { 0x10081251, 27400 }, /* XF86BrightnessMax */
+    { 0x10081260, 28350 }, /* XF86KbdInputAssistPrev */
+    { 0x10081261, 28299 }, /* XF86KbdInputAssistNext */
+    { 0x10081262, 28373 }, /* XF86KbdInputAssistPrevgroup */
+    { 0x10081263, 28322 }, /* XF86KbdInputAssistNextgroup */
+    { 0x10081264, 28249 }, /* XF86KbdInputAssistAccept */
+    { 0x10081265, 28274 }, /* XF86KbdInputAssistCancel */
+    { 0x10081266, 30112 }, /* XF86RightUp */
+    { 0x10081267, 30098 }, /* XF86RightDown */
+    { 0x10081268, 28717 }, /* XF86LeftUp */
+    { 0x10081269, 28704 }, /* XF86LeftDown */
+    { 0x1008126a, 30168 }, /* XF86RootMenu */
+    { 0x1008126b, 29320 }, /* XF86MediaTopMenu */
+    { 0x1008126c, 29607 }, /* XF86Numeric11 */
+    { 0x1008126d, 29621 }, /* XF86Numeric12 */
+    { 0x1008126e, 26998 }, /* XF86AudioDesc */
+    { 0x1008126f, 26773 }, /* XF863DMode */
+    { 0x10081270, 29541 }, /* XF86NextFavorite */
+    { 0x10081271, 30499 }, /* XF86StopRecord */
+    { 0x10081272, 29902 }, /* XF86PauseRecord */
+    { 0x10081273, 31007 }, /* XF86VOD */
+    { 0x10081274, 30904 }, /* XF86Unmute */
+    { 0x10081275, 27916 }, /* XF86FastReverse */
+    { 0x10081276, 30411 }, /* XF86SlowReverse */
+    { 0x10081277, 27775 }, /* XF86Data */
+    { 0x10081278, 29839 }, /* XF86OnScreenKeyboard */
+    { 0x10081279, 30016 }, /* XF86PrivacyScreenToggle */
+    { 0x1008127a, 30359 }, /* XF86SelectiveScreenshot */
+    { 0x10081290, 28804 }, /* XF86Macro1 */
+    { 0x10081291, 28935 }, /* XF86Macro2 */
+    { 0x10081292, 29066 }, /* XF86Macro3 */
+    { 0x10081293, 29089 }, /* XF86Macro4 */
+    { 0x10081294, 29100 }, /* XF86Macro5 */
+    { 0x10081295, 29111 }, /* XF86Macro6 */
+    { 0x10081296, 29122 }, /* XF86Macro7 */
+    { 0x10081297, 29133 }, /* XF86Macro8 */
+    { 0x10081298, 29144 }, /* XF86Macro9 */
+    { 0x10081299, 28815 }, /* XF86Macro10 */
+    { 0x1008129a, 28827 }, /* XF86Macro11 */
+    { 0x1008129b, 28839 }, /* XF86Macro12 */
+    { 0x1008129c, 28851 }, /* XF86Macro13 */
+    { 0x1008129d, 28863 }, /* XF86Macro14 */
+    { 0x1008129e, 28875 }, /* XF86Macro15 */
+    { 0x1008129f, 28887 }, /* XF86Macro16 */
+    { 0x100812a0, 28899 }, /* XF86Macro17 */
+    { 0x100812a1, 28911 }, /* XF86Macro18 */
+    { 0x100812a2, 28923 }, /* XF86Macro19 */
+    { 0x100812a3, 28946 }, /* XF86Macro20 */
+    { 0x100812a4, 28958 }, /* XF86Macro21 */
+    { 0x100812a5, 28970 }, /* XF86Macro22 */
+    { 0x100812a6, 28982 }, /* XF86Macro23 */
+    { 0x100812a7, 28994 }, /* XF86Macro24 */
+    { 0x100812a8, 29006 }, /* XF86Macro25 */
+    { 0x100812a9, 29018 }, /* XF86Macro26 */
+    { 0x100812aa, 29030 }, /* XF86Macro27 */
+    { 0x100812ab, 29042 }, /* XF86Macro28 */
+    { 0x100812ac, 29054 }, /* XF86Macro29 */
+    { 0x100812ad, 29077 }, /* XF86Macro30 */
+    { 0x100812b0, 29227 }, /* XF86MacroRecordStart */
+    { 0x100812b1, 29248 }, /* XF86MacroRecordStop */
+    { 0x100812b2, 29206 }, /* XF86MacroPresetCycle */
+    { 0x100812b3, 29155 }, /* XF86MacroPreset1 */
+    { 0x100812b4, 29172 }, /* XF86MacroPreset2 */
+    { 0x100812b5, 29189 }, /* XF86MacroPreset3 */
+    { 0x100812b8, 28401 }, /* XF86KbdLcdMenu1 */
+    { 0x100812b9, 28417 }, /* XF86KbdLcdMenu2 */
+    { 0x100812ba, 28433 }, /* XF86KbdLcdMenu3 */
+    { 0x100812bb, 28449 }, /* XF86KbdLcdMenu4 */
+    { 0x100812bc, 28465 }, /* XF86KbdLcdMenu5 */
+    { 0x1008fe01, 30551 }, /* XF86Switch_VT_1 */
+    { 0x1008fe02, 30618 }, /* XF86Switch_VT_2 */
+    { 0x1008fe03, 30634 }, /* XF86Switch_VT_3 */
+    { 0x1008fe04, 30650 }, /* XF86Switch_VT_4 */
+    { 0x1008fe05, 30666 }, /* XF86Switch_VT_5 */
+    { 0x1008fe06, 30682 }, /* XF86Switch_VT_6 */
+    { 0x1008fe07, 30698 }, /* XF86Switch_VT_7 */
+    { 0x1008fe08, 30714 }, /* XF86Switch_VT_8 */
+    { 0x1008fe09, 30730 }, /* XF86Switch_VT_9 */
+    { 0x1008fe0a, 30567 }, /* XF86Switch_VT_10 */
+    { 0x1008fe0b, 30584 }, /* XF86Switch_VT_11 */
+    { 0x1008fe0c, 30601 }, /* XF86Switch_VT_12 */
+    { 0x1008fe20, 30893 }, /* XF86Ungrab */
+    { 0x1008fe21, 27653 }, /* XF86ClearGrab */
+    { 0x1008fe22, 29526 }, /* XF86Next_VMode */
+    { 0x1008fe23, 30001 }, /* XF86Prev_VMode */
+    { 0x1008fe24, 28786 }, /* XF86LogWindowTree */
+    { 0x1008fe25, 28759 }, /* XF86LogGrabInfo */
+    { 0x1008ff01, 29394 }, /* XF86ModeLock */
+    { 0x1008ff02, 29452 }, /* XF86MonBrightnessUp */
+    { 0x1008ff03, 29430 }, /* XF86MonBrightnessDown */
+    { 0x1008ff04, 28481 }, /* XF86KbdLightOnOff */
+    { 0x1008ff05, 28229 }, /* XF86KbdBrightnessUp */
+    { 0x1008ff06, 28207 }, /* XF86KbdBrightnessDown */
+    { 0x1008ff07, 29407 }, /* XF86MonBrightnessCycle */
+    { 0x1008ff10, 30468 }, /* XF86Standby */
+    { 0x1008ff11, 27029 }, /* XF86AudioLowerVolume */
+    { 0x1008ff12, 27082 }, /* XF86AudioMute */
+    { 0x1008ff13, 27169 }, /* XF86AudioRaiseVolume */
+    { 0x1008ff14, 27125 }, /* XF86AudioPlay */
+    { 0x1008ff15, 27258 }, /* XF86AudioStop */
+    { 0x1008ff16, 27155 }, /* XF86AudioPrev */
+    { 0x1008ff17, 27096 }, /* XF86AudioNext */
+    { 0x1008ff18, 28138 }, /* XF86HomePage */
+    { 0x1008ff19, 29268 }, /* XF86Mail */
+    { 0x1008ff1a, 30480 }, /* XF86Start */
+    { 0x1008ff1b, 30337 }, /* XF86Search */
+    { 0x1008ff1c, 27210 }, /* XF86AudioRecord */
+    { 0x1008ff1d, 27468 }, /* XF86Calculator */
+    { 0x1008ff1e, 29349 }, /* XF86Memo */
+    { 0x1008ff1f, 30797 }, /* XF86ToDoList */
+    { 0x1008ff20, 27483 }, /* XF86Calendar */
+    { 0x1008ff21, 29957 }, /* XF86PowerDown */
+    { 0x1008ff22, 27707 }, /* XF86ContrastAdjust */
+    { 0x1008ff23, 30155 }, /* XF86RockerUp */
+    { 0x1008ff24, 30124 }, /* XF86RockerDown */
+    { 0x1008ff25, 30139 }, /* XF86RockerEnter */
+    { 0x1008ff26, 27281 }, /* XF86Back */
+    { 0x1008ff27, 27993 }, /* XF86Forward */
+    { 0x1008ff28, 30490 }, /* XF86Stop */
+    { 0x1008ff29, 30054 }, /* XF86Refresh */
+    { 0x1008ff2a, 29971 }, /* XF86PowerOff */
+    { 0x1008ff2b, 31046 }, /* XF86WakeUp */
+    { 0x1008ff2c, 27883 }, /* XF86Eject */
+    { 0x1008ff2d, 30261 }, /* XF86ScreenSaver */
+    { 0x1008ff2e, 31125 }, /* XF86WWW */
+    { 0x1008ff2f, 30401 }, /* XF86Sleep */
+    { 0x1008ff30, 27932 }, /* XF86Favorites */
+    { 0x1008ff31, 27110 }, /* XF86AudioPause */
+    { 0x1008ff32, 27050 }, /* XF86AudioMedia */
+    { 0x1008ff33, 29482 }, /* XF86MyComputer */
+    { 0x1008ff34, 30958 }, /* XF86VendorHome */
+    { 0x1008ff35, 28728 }, /* XF86LightBulb */
+    { 0x1008ff36, 30392 }, /* XF86Shop */
+    { 0x1008ff37, 28126 }, /* XF86History */
+    { 0x1008ff38, 29869 }, /* XF86OpenURL */
+    { 0x1008ff39, 26784 }, /* XF86AddFavorite */
+    { 0x1008ff3a, 28151 }, /* XF86HotLinks */
+    { 0x1008ff3b, 27360 }, /* XF86BrightnessAdjust */
+    { 0x1008ff3c, 27946 }, /* XF86Finance */
+    { 0x1008ff3d, 27677 }, /* XF86Community */
+    { 0x1008ff3e, 27242 }, /* XF86AudioRewind */
+    { 0x1008ff3f, 27290 }, /* XF86BackForward */
+    { 0x1008ff40, 28512 }, /* XF86Launch0 */
+    { 0x1008ff41, 28524 }, /* XF86Launch1 */
+    { 0x1008ff42, 28536 }, /* XF86Launch2 */
+    { 0x1008ff43, 28548 }, /* XF86Launch3 */
+    { 0x1008ff44, 28560 }, /* XF86Launch4 */
+    { 0x1008ff45, 28572 }, /* XF86Launch5 */
+    { 0x1008ff46, 28584 }, /* XF86Launch6 */
+    { 0x1008ff47, 28596 }, /* XF86Launch7 */
+    { 0x1008ff48, 28608 }, /* XF86Launch8 */
+    { 0x1008ff49, 28620 }, /* XF86Launch9 */
+    { 0x1008ff4a, 28632 }, /* XF86LaunchA */
+    { 0x1008ff4b, 28644 }, /* XF86LaunchB */
+    { 0x1008ff4c, 28656 }, /* XF86LaunchC */
+    { 0x1008ff4d, 28668 }, /* XF86LaunchD */
+    { 0x1008ff4e, 28680 }, /* XF86LaunchE */
+    { 0x1008ff4f, 28692 }, /* XF86LaunchF */
+    { 0x1008ff50, 26830 }, /* XF86ApplicationLeft */
+    { 0x1008ff51, 26850 }, /* XF86ApplicationRight */
+    { 0x1008ff52, 27341 }, /* XF86Book */
+    { 0x1008ff53, 27606 }, /* XF86CD */
+    { 0x1008ff54, 27453 }, /* XF86Calculater */
+    { 0x1008ff55, 27643 }, /* XF86Clear */
+    { 0x1008ff56, 27667 }, /* XF86Close */
+    { 0x1008ff57, 27743 }, /* XF86Copy */
+    { 0x1008ff58, 27752 }, /* XF86Cut */
+    { 0x1008ff59, 27797 }, /* XF86Display */
+    { 0x1008ff5a, 27856 }, /* XF86DOS */
+    { 0x1008ff5b, 27842 }, /* XF86Documents */
+    { 0x1008ff5c, 27893 }, /* XF86Excel */
+    { 0x1008ff5d, 27903 }, /* XF86Explorer */
+    { 0x1008ff5e, 28051 }, /* XF86Game */
+    { 0x1008ff5f, 28060 }, /* XF86Go */
+    { 0x1008ff60, 28184 }, /* XF86iTouch */
+    { 0x1008ff61, 28775 }, /* XF86LogOff */
+    { 0x1008ff62, 29293 }, /* XF86Market */
+    { 0x1008ff63, 29337 }, /* XF86Meeting */
+    { 0x1008ff65, 29358 }, /* XF86MenuKB */
+    { 0x1008ff66, 29369 }, /* XF86MenuPB */
+    { 0x1008ff67, 29497 }, /* XF86MySites */
+    { 0x1008ff68, 29509 }, /* XF86New */
+    { 0x1008ff69, 29517 }, /* XF86News */
+    { 0x1008ff6a, 29824 }, /* XF86OfficeHome */
+    { 0x1008ff6b, 29860 }, /* XF86Open */
+    { 0x1008ff6c, 29881 }, /* XF86Option */
+    { 0x1008ff6d, 29892 }, /* XF86Paste */
+    { 0x1008ff6e, 29918 }, /* XF86Phone */
+    { 0x1008ff70, 30040 }, /* XF86Q */
+    { 0x1008ff72, 30077 }, /* XF86Reply */
+    { 0x1008ff73, 30066 }, /* XF86Reload */
+    { 0x1008ff74, 30181 }, /* XF86RotateWindows */
+    { 0x1008ff75, 30237 }, /* XF86RotationPB */
+    { 0x1008ff76, 30199 }, /* XF86RotationKB */
+    { 0x1008ff77, 30252 }, /* XF86Save */
+    { 0x1008ff78, 30324 }, /* XF86ScrollUp */
+    { 0x1008ff79, 30309 }, /* XF86ScrollDown */
+    { 0x1008ff7a, 30293 }, /* XF86ScrollClick */
+    { 0x1008ff7b, 30383 }, /* XF86Send */
+    { 0x1008ff7c, 30427 }, /* XF86Spell */
+    { 0x1008ff7d, 30452 }, /* XF86SplitScreen */
+    { 0x1008ff7e, 30527 }, /* XF86Support */
+    { 0x1008ff7f, 30762 }, /* XF86TaskPane */
+    { 0x1008ff80, 30775 }, /* XF86Terminal */
+    { 0x1008ff81, 30810 }, /* XF86Tools */
+    { 0x1008ff82, 30882 }, /* XF86Travel */
+    { 0x1008ff84, 30939 }, /* XF86UserPB */
+    { 0x1008ff85, 30915 }, /* XF86User1KB */
+    { 0x1008ff86, 30927 }, /* XF86User2KB */
+    { 0x1008ff87, 30973 }, /* XF86Video */
+    { 0x1008ff88, 31068 }, /* XF86WheelButton */
+    { 0x1008ff89, 31093 }, /* XF86Word */
+    { 0x1008ff8a, 31133 }, /* XF86Xfer */
+    { 0x1008ff8b, 31153 }, /* XF86ZoomIn */
+    { 0x1008ff8c, 31164 }, /* XF86ZoomOut */
+    { 0x1008ff8d, 27272 }, /* XF86Away */
+    { 0x1008ff8e, 29380 }, /* XF86Messenger */
+    { 0x1008ff8f, 31057 }, /* XF86WebCam */
+    { 0x1008ff90, 29277 }, /* XF86MailForward */
+    { 0x1008ff91, 29944 }, /* XF86Pictures */
+    { 0x1008ff92, 29472 }, /* XF86Music */
+    { 0x1008ff93, 27306 }, /* XF86Battery */
+    { 0x1008ff94, 27327 }, /* XF86Bluetooth */
+    { 0x1008ff95, 31084 }, /* XF86WLAN */
+    { 0x1008ff96, 30950 }, /* XF86UWB */
+    { 0x1008ff97, 27012 }, /* XF86AudioForward */
+    { 0x1008ff98, 27226 }, /* XF86AudioRepeat */
+    { 0x1008ff99, 27190 }, /* XF86AudioRandomPlay */
+    { 0x1008ff9a, 30514 }, /* XF86Subtitle */
+    { 0x1008ff9b, 26978 }, /* XF86AudioCycleTrack */
+    { 0x1008ff9c, 27760 }, /* XF86CycleAngle */
+    { 0x1008ff9d, 28005 }, /* XF86FrameBack */
+    { 0x1008ff9e, 28019 }, /* XF86FrameForward */
+    { 0x1008ff9f, 30788 }, /* XF86Time */
+    { 0x1008ffa0, 30348 }, /* XF86Select */
+    { 0x1008ffa1, 30998 }, /* XF86View */
+    { 0x1008ffa2, 30820 }, /* XF86TopMenu */
+    { 0x1008ffa3, 30046 }, /* XF86Red */
+    { 0x1008ffa4, 28086 }, /* XF86Green */
+    { 0x1008ffa5, 31142 }, /* XF86Yellow */
+    { 0x1008ffa6, 27318 }, /* XF86Blue */
+    { 0x1008ffa7, 30539 }, /* XF86Suspend */
+    { 0x1008ffa8, 28112 }, /* XF86Hibernate */
+    { 0x1008ffa9, 30863 }, /* XF86TouchpadToggle */
+    { 0x1008ffb0, 30848 }, /* XF86TouchpadOn */
+    { 0x1008ffb1, 30832 }, /* XF86TouchpadOff */
+    { 0x1008ffb2, 27065 }, /* XF86AudioMicMute */
+    { 0x1008ffb3, 28499 }, /* XF86Keyboard */
+    { 0x1008ffb4, 31116 }, /* XF86WWAN */
+    { 0x1008ffb5, 30087 }, /* XF86RFKill */
+    { 0x1008ffb6, 27139 }, /* XF86AudioPreset */
+    { 0x1008ffb7, 30214 }, /* XF86RotationLockToggle */
+    { 0x1008ffb8, 28036 }, /* XF86FullScreen */
 };
diff --git a/src/registry.c b/src/registry.c
index dcaaa1b..dbaac2a 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -742,6 +742,10 @@
             if (!*name || !strlen(*name))  {
                 log_err(ctx, "xml:%d: missing required element 'name'\n",
                         ci->line);
+                free(*name);
+                free(*description);
+                free(*brief);
+                free(*vendor);
                 return false;
             }
 
@@ -804,6 +808,11 @@
             char *str = extract_text(node);
             struct rxkb_object *parent;
 
+            if (!str || strlen(str) != 3) {
+                free(str);
+                continue;
+            }
+
             parent = &layout->base;
             code = rxkb_iso639_code_create(parent);
             code->code = str;
@@ -823,6 +832,11 @@
             char *str = extract_text(node);
             struct rxkb_object *parent;
 
+            if (!str || strlen(str) != 2) {
+                free(str);
+                continue;
+            }
+
             parent = &layout->base;
             code = rxkb_iso3166_code_create(parent);
             code->code = str;
@@ -856,7 +870,8 @@
             v->name = strdup(l->name);
             v->variant = name;
             v->description = description;
-            v->brief = brief;
+            // if variant omits brief, inherit from parent layout.
+            v->brief = brief == NULL ? strdup_safe(l->brief) : brief;
             v->popularity = popularity;
             list_append(&ctx->layouts, &v->base.link);
 
@@ -866,11 +881,35 @@
                 if (!is_node(ci, "configItem"))
                     continue;
 
+                bool found_language_list = false;
+                bool found_country_list = false;
                 for (node = ci->children; node; node = node->next) {
-                    if (is_node(node, "languageList"))
+                    if (is_node(node, "languageList")) {
                         parse_language_list(node, v);
-                    if (is_node(node, "countryList"))
+                        found_language_list = true;
+                    }
+                    if (is_node(node, "countryList")) {
                         parse_country_list(node, v);
+                        found_country_list = true;
+                    }
+                }
+                if (!found_language_list) {
+                    // inherit from parent layout
+                    struct rxkb_iso639_code* x;
+                    list_for_each(x, &l->iso639s, base.link) {
+                        struct rxkb_iso639_code* code = rxkb_iso639_code_create(&v->base);
+                        code->code = strdup(x->code);
+                        list_append(&v->iso639s, &code->base.link);
+                    }
+                }
+                if (!found_country_list) {
+                    // inherit from parent layout
+                    struct rxkb_iso3166_code* x;
+                    list_for_each(x, &l->iso3166s, base.link) {
+                        struct rxkb_iso3166_code* code = rxkb_iso3166_code_create(&v->base);
+                        code->code = strdup(x->code);
+                        list_append(&v->iso3166s, &code->base.link);
+                    }
                 }
             }
         } else {
@@ -1193,7 +1232,6 @@
     success = true;
 error:
     xmlFreeDoc(doc);
-    xmlCleanupParser();
 
     return success;
 }
diff --git a/src/utils.h b/src/utils.h
index cd3e9b1..7557dab 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -66,6 +66,7 @@
 static inline bool
 streq(const char *s1, const char *s2)
 {
+    assert(s1 && s2);
     return strcmp(s1, s2) == 0;
 }
 
diff --git a/src/x11/keymap.c b/src/x11/keymap.c
index f5b368f..473a89d 100644
--- a/src/x11/keymap.c
+++ b/src/x11/keymap.c
@@ -88,6 +88,33 @@
     }                                                                   \
 } while (0)
 
+static const xcb_xkb_map_part_t get_map_required_components =
+    (XCB_XKB_MAP_PART_KEY_TYPES |
+     XCB_XKB_MAP_PART_KEY_SYMS |
+     XCB_XKB_MAP_PART_MODIFIER_MAP |
+     XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS |
+     XCB_XKB_MAP_PART_KEY_ACTIONS |
+     XCB_XKB_MAP_PART_VIRTUAL_MODS |
+     XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP);
+
+static const xcb_xkb_name_detail_t get_names_wanted =
+    (XCB_XKB_NAME_DETAIL_KEYCODES |
+     XCB_XKB_NAME_DETAIL_SYMBOLS |
+     XCB_XKB_NAME_DETAIL_TYPES |
+     XCB_XKB_NAME_DETAIL_COMPAT |
+     XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES |
+     XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES |
+     XCB_XKB_NAME_DETAIL_INDICATOR_NAMES |
+     XCB_XKB_NAME_DETAIL_KEY_NAMES |
+     XCB_XKB_NAME_DETAIL_KEY_ALIASES |
+     XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES |
+     XCB_XKB_NAME_DETAIL_GROUP_NAMES);
+static const xcb_xkb_name_detail_t get_names_required =
+    (XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES |
+     XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES |
+     XCB_XKB_NAME_DETAIL_KEY_NAMES |
+     XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES);
+
 
 static xkb_mod_mask_t
 translate_mods(uint8_t rmods, uint16_t vmods_low, uint16_t vmods_high)
@@ -645,26 +672,15 @@
 }
 
 static bool
-get_map(struct xkb_keymap *keymap, xcb_connection_t *conn, uint16_t device_id)
+get_map(struct xkb_keymap *keymap, xcb_connection_t *conn,
+        xcb_xkb_get_map_cookie_t cookie)
 {
-    static const xcb_xkb_map_part_t required_components =
-        (XCB_XKB_MAP_PART_KEY_TYPES |
-         XCB_XKB_MAP_PART_KEY_SYMS |
-         XCB_XKB_MAP_PART_MODIFIER_MAP |
-         XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS |
-         XCB_XKB_MAP_PART_KEY_ACTIONS |
-         XCB_XKB_MAP_PART_VIRTUAL_MODS |
-         XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP);
-
-    xcb_xkb_get_map_cookie_t cookie =
-        xcb_xkb_get_map(conn, device_id, required_components,
-                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
     xcb_xkb_get_map_reply_t *reply = xcb_xkb_get_map_reply(conn, cookie, NULL);
     xcb_xkb_get_map_map_t map;
 
     FAIL_IF_BAD_REPLY(reply, "XkbGetMap");
 
-    if ((reply->present & required_components) != required_components)
+    if ((reply->present & get_map_required_components) != get_map_required_components)
         goto fail;
 
     xcb_xkb_get_map_map_unpack(xcb_xkb_get_map_map(reply),
@@ -749,10 +765,8 @@
 
 static bool
 get_indicator_map(struct xkb_keymap *keymap, xcb_connection_t *conn,
-                  uint16_t device_id)
+                  xcb_xkb_get_indicator_map_cookie_t cookie)
 {
-    xcb_xkb_get_indicator_map_cookie_t cookie =
-        xcb_xkb_get_indicator_map(conn, device_id, ALL_INDICATORS_MASK);
     xcb_xkb_get_indicator_map_reply_t *reply =
         xcb_xkb_get_indicator_map_reply(conn, cookie, NULL);
 
@@ -831,10 +845,8 @@
 
 static bool
 get_compat_map(struct xkb_keymap *keymap, xcb_connection_t *conn,
-               uint16_t device_id)
+               xcb_xkb_get_compat_map_cookie_t cookie)
 {
-    xcb_xkb_get_compat_map_cookie_t cookie =
-        xcb_xkb_get_compat_map(conn, device_id, 0, true, 0, 0);
     xcb_xkb_get_compat_map_reply_t *reply =
         xcb_xkb_get_compat_map_reply(conn, cookie, NULL);
 
@@ -852,7 +864,7 @@
 }
 
 static bool
-get_type_names(struct xkb_keymap *keymap, xcb_connection_t *conn,
+get_type_names(struct xkb_keymap *keymap, struct x11_atom_interner *interner,
                xcb_xkb_get_names_reply_t *reply,
                xcb_xkb_get_names_value_list_t *list)
 {
@@ -880,13 +892,11 @@
 
         ALLOC_OR_FAIL(type->level_names, type->num_levels);
 
-        if (!adopt_atom(keymap->ctx, conn, wire_type_name, &type->name))
-            goto fail;
-
-        if (!adopt_atoms(keymap->ctx, conn,
-                         kt_level_names_iter, type->level_names,
-                         wire_num_levels))
-            goto fail;
+        x11_atom_interner_adopt_atom(interner, wire_type_name, &type->name);
+        for (size_t j = 0; j < wire_num_levels; j++) {
+            x11_atom_interner_adopt_atom(interner, kt_level_names_iter[j],
+                                         &type->level_names[j]);
+        }
 
         type->num_level_names = type->num_levels;
         kt_level_names_iter += wire_num_levels;
@@ -901,7 +911,8 @@
 }
 
 static bool
-get_indicator_names(struct xkb_keymap *keymap, xcb_connection_t *conn,
+get_indicator_names(struct xkb_keymap *keymap,
+                    struct x11_atom_interner *interner,
                     xcb_xkb_get_names_reply_t *reply,
                     xcb_xkb_get_names_value_list_t *list)
 {
@@ -914,8 +925,7 @@
             xcb_atom_t wire = *iter;
             struct xkb_led *led = &keymap->leds[i];
 
-            if (!adopt_atom(keymap->ctx, conn, wire, &led->name))
-                return false;
+            x11_atom_interner_adopt_atom(interner, wire, &led->name);
 
             iter++;
         }
@@ -928,7 +938,7 @@
 }
 
 static bool
-get_vmod_names(struct xkb_keymap *keymap, xcb_connection_t *conn,
+get_vmod_names(struct xkb_keymap *keymap, struct x11_atom_interner *interner,
                xcb_xkb_get_names_reply_t *reply,
                xcb_xkb_get_names_value_list_t *list)
 {
@@ -947,8 +957,7 @@
             xcb_atom_t wire = *iter;
             struct xkb_mod *mod = &keymap->mods.mods[NUM_REAL_MODS + i];
 
-            if (!adopt_atom(keymap->ctx, conn, wire, &mod->name))
-                return false;
+            x11_atom_interner_adopt_atom(interner, wire, &mod->name);
 
             iter++;
         }
@@ -958,7 +967,7 @@
 }
 
 static bool
-get_group_names(struct xkb_keymap *keymap, xcb_connection_t *conn,
+get_group_names(struct xkb_keymap *keymap, struct x11_atom_interner *interner,
                 xcb_xkb_get_names_reply_t *reply,
                 xcb_xkb_get_names_value_list_t *list)
 {
@@ -968,9 +977,10 @@
     keymap->num_group_names = msb_pos(reply->groupNames);
     ALLOC_OR_FAIL(keymap->group_names, keymap->num_group_names);
 
-    if (!adopt_atoms(keymap->ctx, conn,
-                     iter, keymap->group_names, length))
-        goto fail;
+    for (int i = 0; i < length; i++) {
+        x11_atom_interner_adopt_atom(interner, iter[i],
+                                     &keymap->group_names[i]);
+    }
 
     return true;
 
@@ -1051,36 +1061,17 @@
 }
 
 static bool
-get_names(struct xkb_keymap *keymap, xcb_connection_t *conn,
-          uint16_t device_id)
+get_names(struct xkb_keymap *keymap, struct x11_atom_interner *interner,
+          xcb_xkb_get_names_cookie_t cookie)
 {
-    static const xcb_xkb_name_detail_t wanted =
-        (XCB_XKB_NAME_DETAIL_KEYCODES |
-         XCB_XKB_NAME_DETAIL_SYMBOLS |
-         XCB_XKB_NAME_DETAIL_TYPES |
-         XCB_XKB_NAME_DETAIL_COMPAT |
-         XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES |
-         XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES |
-         XCB_XKB_NAME_DETAIL_INDICATOR_NAMES |
-         XCB_XKB_NAME_DETAIL_KEY_NAMES |
-         XCB_XKB_NAME_DETAIL_KEY_ALIASES |
-         XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES |
-         XCB_XKB_NAME_DETAIL_GROUP_NAMES);
-    static const xcb_xkb_name_detail_t required =
-        (XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES |
-         XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES |
-         XCB_XKB_NAME_DETAIL_KEY_NAMES |
-         XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES);
-
-    xcb_xkb_get_names_cookie_t cookie =
-        xcb_xkb_get_names(conn, device_id, wanted);
+    xcb_connection_t *conn = interner->conn;
     xcb_xkb_get_names_reply_t *reply =
         xcb_xkb_get_names_reply(conn, cookie, NULL);
     xcb_xkb_get_names_value_list_t list;
 
     FAIL_IF_BAD_REPLY(reply, "XkbGetNames");
 
-    FAIL_UNLESS((reply->which & required) == required);
+    FAIL_UNLESS((reply->which & get_names_required) == get_names_required);
 
     xcb_xkb_get_names_value_list_unpack(xcb_xkb_get_names_value_list(reply),
                                         reply->nTypes,
@@ -1093,23 +1084,22 @@
                                         reply->which,
                                         &list);
 
-    if (!get_atom_name(conn, list.keycodesName, &keymap->keycodes_section_name) ||
-        !get_atom_name(conn, list.symbolsName, &keymap->symbols_section_name) ||
-        !get_atom_name(conn, list.typesName, &keymap->types_section_name) ||
-        !get_atom_name(conn, list.compatName, &keymap->compat_section_name) ||
-        !get_type_names(keymap, conn, reply, &list) ||
-        !get_indicator_names(keymap, conn, reply, &list) ||
-        !get_vmod_names(keymap, conn, reply, &list) ||
-        !get_group_names(keymap, conn, reply, &list) ||
+    x11_atom_interner_get_escaped_atom_name(interner, list.keycodesName,
+                                            &keymap->keycodes_section_name);
+    x11_atom_interner_get_escaped_atom_name(interner, list.symbolsName,
+                                            &keymap->symbols_section_name);
+    x11_atom_interner_get_escaped_atom_name(interner, list.typesName,
+                                            &keymap->types_section_name);
+    x11_atom_interner_get_escaped_atom_name(interner, list.compatName,
+                                            &keymap->compat_section_name);
+    if (!get_type_names(keymap, interner, reply, &list) ||
+        !get_indicator_names(keymap, interner, reply, &list) ||
+        !get_vmod_names(keymap, interner, reply, &list) ||
+        !get_group_names(keymap, interner, reply, &list) ||
         !get_key_names(keymap, conn, reply, &list) ||
         !get_aliases(keymap, conn, reply, &list))
         goto fail;
 
-    XkbEscapeMapName(keymap->keycodes_section_name);
-    XkbEscapeMapName(keymap->symbols_section_name);
-    XkbEscapeMapName(keymap->types_section_name);
-    XkbEscapeMapName(keymap->compat_section_name);
-
     free(reply);
     return true;
 
@@ -1120,10 +1110,8 @@
 
 static bool
 get_controls(struct xkb_keymap *keymap, xcb_connection_t *conn,
-             uint16_t device_id)
+             xcb_xkb_get_controls_cookie_t cookie)
 {
-    xcb_xkb_get_controls_cookie_t cookie =
-        xcb_xkb_get_controls(conn, device_id);
     xcb_xkb_get_controls_reply_t *reply =
         xcb_xkb_get_controls_reply(conn, cookie, NULL);
 
@@ -1169,14 +1157,52 @@
     if (!keymap)
         return NULL;
 
-    if (!get_map(keymap, conn, device_id) ||
-        !get_indicator_map(keymap, conn, device_id) ||
-        !get_compat_map(keymap, conn, device_id) ||
-        !get_names(keymap, conn, device_id) ||
-        !get_controls(keymap, conn, device_id)) {
-        xkb_keymap_unref(keymap);
-        return NULL;
-    }
+    struct x11_atom_interner interner;
+    x11_atom_interner_init(&interner, ctx, conn);
+
+    /*
+     * Send all requests together so only one roundtrip is needed
+     * to get the replies.
+     */
+    xcb_xkb_get_map_cookie_t map_cookie =
+        xcb_xkb_get_map(conn, device_id, get_map_required_components,
+                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
+    xcb_xkb_get_indicator_map_cookie_t indicator_map_cookie =
+        xcb_xkb_get_indicator_map(conn, device_id, ALL_INDICATORS_MASK);
+    xcb_xkb_get_compat_map_cookie_t compat_map_cookie =
+        xcb_xkb_get_compat_map(conn, device_id, 0, true, 0, 0);
+    xcb_xkb_get_names_cookie_t names_cookie =
+        xcb_xkb_get_names(conn, device_id, get_names_wanted);
+    xcb_xkb_get_controls_cookie_t controls_cookie =
+        xcb_xkb_get_controls(conn, device_id);
+
+    if (!get_map(keymap, conn, map_cookie))
+        goto err_map;
+    if (!get_indicator_map(keymap, conn, indicator_map_cookie))
+        goto err_indicator_map;
+    if (!get_compat_map(keymap, conn, compat_map_cookie))
+        goto err_compat_map;
+    if (!get_names(keymap, &interner, names_cookie))
+        goto err_names;
+    if (!get_controls(keymap, conn, controls_cookie))
+        goto err_controls;
+    x11_atom_interner_round_trip(&interner);
+    if (interner.had_error)
+        goto err_interner;
 
     return keymap;
+
+err_map:
+    xcb_discard_reply(conn, indicator_map_cookie.sequence);
+err_indicator_map:
+    xcb_discard_reply(conn, compat_map_cookie.sequence);
+err_compat_map:
+    xcb_discard_reply(conn, names_cookie.sequence);
+err_names:
+    xcb_discard_reply(conn, controls_cookie.sequence);
+err_controls:
+    x11_atom_interner_round_trip(&interner);
+err_interner:
+    xkb_keymap_unref(keymap);
+    return NULL;
 }
diff --git a/src/x11/util.c b/src/x11/util.c
index 660d885..cc4c71c 100644
--- a/src/x11/util.c
+++ b/src/x11/util.c
@@ -124,37 +124,6 @@
     return device_id;
 }
 
-bool
-get_atom_name(xcb_connection_t *conn, xcb_atom_t atom, char **out)
-{
-    xcb_get_atom_name_cookie_t cookie;
-    xcb_get_atom_name_reply_t *reply;
-    int length;
-    char *name;
-
-    if (atom == 0) {
-        *out = NULL;
-        return true;
-    }
-
-    cookie = xcb_get_atom_name(conn, atom);
-    reply = xcb_get_atom_name_reply(conn, cookie, NULL);
-    if (!reply)
-        return false;
-
-    length = xcb_get_atom_name_name_length(reply);
-    name = xcb_get_atom_name_name(reply);
-
-    *out = strndup(name, length);
-    if (!*out) {
-        free(reply);
-        return false;
-    }
-
-    free(reply);
-    return true;
-}
-
 struct x11_atom_cache {
     /*
      * Invalidate the cache based on the XCB connection.
@@ -169,14 +138,9 @@
     size_t len;
 };
 
-bool
-adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn,
-            const xcb_atom_t *from, xkb_atom_t *to, const size_t count)
+static struct x11_atom_cache *
+get_cache(struct xkb_context *ctx, xcb_connection_t *conn)
 {
-    enum { SIZE = 128 };
-    xcb_get_atom_name_cookie_t cookies[SIZE];
-    const size_t num_batches = ROUNDUP(count, SIZE) / SIZE;
-
     if (!ctx->x11_atom_cache) {
         ctx->x11_atom_cache = calloc(1, sizeof(struct x11_atom_cache));
     }
@@ -186,79 +150,149 @@
         cache->conn = conn;
         cache->len = 0;
     }
+    return cache;
+}
 
-    memset(to, 0, count * sizeof(*to));
+void
+x11_atom_interner_init(struct x11_atom_interner *interner,
+                       struct xkb_context *ctx, xcb_connection_t *conn)
+{
+    interner->had_error = false;
+    interner->ctx = ctx;
+    interner->conn = conn;
+    interner->num_pending = 0;
+    interner->num_copies = 0;
+    interner->num_escaped = 0;
+}
 
-    /* Send and collect the atoms in batches of reasonable SIZE. */
-    for (size_t batch = 0; batch < num_batches; batch++) {
-        const size_t start = batch * SIZE;
-        const size_t stop = MIN((batch + 1) * SIZE, count);
+void
+x11_atom_interner_adopt_atom(struct x11_atom_interner *interner,
+                             const xcb_atom_t atom, xkb_atom_t *out)
+{
+    *out = XKB_ATOM_NONE;
 
-        /* Send. */
-        for (size_t i = start; i < stop; i++) {
-            bool cache_hit = false;
-            if (cache) {
-                for (size_t c = 0; c < cache->len; c++) {
-                    if (cache->cache[c].from == from[i]) {
-                        to[i] = cache->cache[c].to;
-                        cache_hit = true;
-                        break;
-                    }
-                }
+    if (atom == XCB_ATOM_NONE)
+        return;
+
+    /* Can be NULL in case the malloc failed. */
+    struct x11_atom_cache *cache = get_cache(interner->ctx, interner->conn);
+
+retry:
+
+    /* Already in the cache? */
+    if (cache) {
+        for (size_t c = 0; c < cache->len; c++) {
+            if (cache->cache[c].from == atom) {
+                *out = cache->cache[c].to;
+                return;
             }
-            if (!cache_hit && from[i] != XCB_ATOM_NONE)
-                cookies[i % SIZE] = xcb_get_atom_name(conn, from[i]);
-        }
-
-        /* Collect. */
-        for (size_t i = start; i < stop; i++) {
-            xcb_get_atom_name_reply_t *reply;
-
-            if (from[i] == XCB_ATOM_NONE)
-                continue;
-
-            /* Was filled from cache. */
-            if (to[i] != 0)
-                continue;
-
-            reply = xcb_get_atom_name_reply(conn, cookies[i % SIZE], NULL);
-            if (!reply)
-                goto err_discard;
-
-            to[i] = xkb_atom_intern(ctx,
-                                    xcb_get_atom_name_name(reply),
-                                    xcb_get_atom_name_name_length(reply));
-            free(reply);
-
-            if (to[i] == XKB_ATOM_NONE)
-                goto err_discard;
-
-            if (cache && cache->len < ARRAY_SIZE(cache->cache)) {
-                size_t idx = cache->len++;
-                cache->cache[idx].from = from[i];
-                cache->cache[idx].to = to[i];
-            }
-
-            continue;
-
-            /*
-             * If we don't discard the uncollected replies, they just
-             * sit in the XCB queue waiting forever. Sad.
-             */
-err_discard:
-            for (size_t j = i + 1; j < stop; j++)
-                if (from[j] != XCB_ATOM_NONE)
-                    xcb_discard_reply(conn, cookies[j % SIZE].sequence);
-            return false;
         }
     }
 
-    return true;
+    /* Already pending? */
+    for (size_t i = 0; i < interner->num_pending; i++) {
+        if (interner->pending[i].from == atom) {
+            if (interner->num_copies == ARRAY_SIZE(interner->copies)) {
+                x11_atom_interner_round_trip(interner);
+                goto retry;
+            }
+
+            size_t idx = interner->num_copies++;
+            interner->copies[idx].from = atom;
+            interner->copies[idx].out = out;
+            return;
+        }
+    }
+
+    /* We have to send a GetAtomName request */
+    if (interner->num_pending == ARRAY_SIZE(interner->pending)) {
+        x11_atom_interner_round_trip(interner);
+        assert(interner->num_pending < ARRAY_SIZE(interner->pending));
+    }
+    size_t idx = interner->num_pending++;
+    interner->pending[idx].from = atom;
+    interner->pending[idx].out = out;
+    interner->pending[idx].cookie = xcb_get_atom_name(interner->conn, atom);
 }
 
-bool
-adopt_atom(struct xkb_context *ctx, xcb_connection_t *conn, xcb_atom_t atom,
-           xkb_atom_t *out)
+void
+x11_atom_interner_round_trip(struct x11_atom_interner *interner) {
+    struct xkb_context *ctx = interner->ctx;
+    xcb_connection_t *conn = interner->conn;
+
+    /* Can be NULL in case the malloc failed. */
+    struct x11_atom_cache *cache = get_cache(ctx, conn);
+
+    for (size_t i = 0; i < interner->num_pending; i++) {
+        xcb_get_atom_name_reply_t *reply;
+
+        reply = xcb_get_atom_name_reply(conn, interner->pending[i].cookie, NULL);
+        if (!reply) {
+            interner->had_error = true;
+            continue;
+        }
+        xcb_atom_t x11_atom = interner->pending[i].from;
+        xkb_atom_t atom = xkb_atom_intern(ctx,
+                                          xcb_get_atom_name_name(reply),
+                                          xcb_get_atom_name_name_length(reply));
+        free(reply);
+
+        if (cache && cache->len < ARRAY_SIZE(cache->cache)) {
+            size_t idx = cache->len++;
+            cache->cache[idx].from = x11_atom;
+            cache->cache[idx].to = atom;
+        }
+
+        *interner->pending[i].out = atom;
+
+        for (size_t j = 0; j < interner->num_copies; j++) {
+            if (interner->copies[j].from == x11_atom)
+                *interner->copies[j].out = atom;
+        }
+    }
+
+    for (size_t i = 0; i < interner->num_escaped; i++) {
+        xcb_get_atom_name_reply_t *reply;
+        int length;
+        char *name;
+        char **out = interner->escaped[i].out;
+
+        reply = xcb_get_atom_name_reply(conn, interner->escaped[i].cookie, NULL);
+        *interner->escaped[i].out = NULL;
+        if (!reply) {
+            interner->had_error = true;
+        } else {
+            length = xcb_get_atom_name_name_length(reply);
+            name = xcb_get_atom_name_name(reply);
+
+            *out = strndup(name, length);
+            free(reply);
+            if (*out == NULL) {
+                interner->had_error = true;
+            } else {
+                XkbEscapeMapName(*out);
+            }
+        }
+    }
+
+    interner->num_pending = 0;
+    interner->num_copies = 0;
+    interner->num_escaped = 0;
+}
+
+void
+x11_atom_interner_get_escaped_atom_name(struct x11_atom_interner *interner,
+                                        xcb_atom_t atom, char **out)
 {
-    return adopt_atoms(ctx, conn, &atom, out, 1);
+    if (atom == 0) {
+        *out = NULL;
+        return;
+    }
+    size_t idx = interner->num_escaped++;
+    /* There can only be a fixed number of calls to this function "in-flight",
+     * thus we assert this number. Increase the array size if this assert fails.
+     */
+    assert(idx < ARRAY_SIZE(interner->escaped));
+    interner->escaped[idx].out = out;
+    interner->escaped[idx].cookie = xcb_get_atom_name(interner->conn, atom);
 }
diff --git a/src/x11/x11-priv.h b/src/x11/x11-priv.h
index 3a19e99..7f37fd5 100644
--- a/src/x11/x11-priv.h
+++ b/src/x11/x11-priv.h
@@ -29,26 +29,52 @@
 #include "keymap.h"
 #include "xkbcommon/xkbcommon-x11.h"
 
-/* Get a strdup'd name of an X atom. */
-bool
-get_atom_name(xcb_connection_t *conn, xcb_atom_t atom, char **out);
+struct x11_atom_interner {
+    struct xkb_context *ctx;
+    xcb_connection_t *conn;
+    bool had_error;
+    /* Atoms for which we send a GetAtomName request */
+    struct {
+        xcb_atom_t from;
+        xkb_atom_t *out;
+        xcb_get_atom_name_cookie_t cookie;
+    } pending[128];
+    size_t num_pending;
+    /* Atoms which were already pending but queried again */
+    struct {
+        xcb_atom_t from;
+        xkb_atom_t *out;
+    } copies[128];
+    size_t num_copies;
+    /* These are not interned, but saved directly (after XkbEscapeMapName) */
+    struct {
+        xcb_get_atom_name_cookie_t cookie;
+        char **out;
+    } escaped[4];
+    size_t num_escaped;
+};
+
+void
+x11_atom_interner_init(struct x11_atom_interner *interner,
+                       struct xkb_context *ctx, xcb_connection_t *conn);
+
+void
+x11_atom_interner_round_trip(struct x11_atom_interner *interner);
 
 /*
- * Make a xkb_atom_t's from X atoms (prefer to send as many as possible
- * at once, to avoid many roundtrips).
- *
- * TODO: We can make this more flexible, such that @to doesn't have to
- *       be sequential. Then we can convert most adopt_atom() calls to
- *       adopt_atoms().
- *       Atom caching would also likely be useful for avoiding quite a
- *       few requests.
+ * Make a xkb_atom_t's from X atoms. The actual write is delayed until the next
+ * call to x11_atom_interner_round_trip() or when too many atoms are pending.
  */
-bool
-adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn,
-            const xcb_atom_t *from, xkb_atom_t *to, size_t count);
+void
+x11_atom_interner_adopt_atom(struct x11_atom_interner *interner,
+                             const xcb_atom_t atom, xkb_atom_t *out);
 
-bool
-adopt_atom(struct xkb_context *ctx, xcb_connection_t *conn, xcb_atom_t atom,
-           xkb_atom_t *out);
+/*
+ * Get a strdup'd and XkbEscapeMapName'd name of an X atom. The actual write is
+ * delayed until the next call to x11_atom_interner_round_trip().
+ */
+void
+x11_atom_interner_get_escaped_atom_name(struct x11_atom_interner *interner,
+                                        xcb_atom_t atom, char **out);
 
 #endif
diff --git a/src/xkbcomp/.gitignore b/src/xkbcomp/.gitignore
deleted file mode 100644
index d7814e4..0000000
--- a/src/xkbcomp/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-parser.c
-parser.h
diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c
index 605f159..e2d4c40 100644
--- a/src/xkbcomp/action.c
+++ b/src/xkbcomp/action.c
@@ -700,15 +700,16 @@
 
             str = xkb_atom_text(ctx, val);
             len = strlen(str);
-            if (len < 1 || len > 7) {
+            if (len < 1 || len > sizeof(act->data)) {
                 log_warn(ctx,
-                         "A private action has 7 data bytes; "
-                         "Illegal data ignored\n");
+                         "A private action has %ld data bytes; "
+                         "Illegal data ignored\n", sizeof(act->data));
                 return false;
             }
 
             /* act->data may not be null-terminated, this is intentional */
-            strncpy((char *) act->data, str, sizeof(act->data));
+            memset(act->data, 0, sizeof(act->data));
+            memcpy(act->data, str, len);
             return true;
         }
         else {
diff --git a/src/xkbcomp/ast-build.c b/src/xkbcomp/ast-build.c
index 7ee13d0..347eed8 100644
--- a/src/xkbcomp/ast-build.c
+++ b/src/xkbcomp/ast-build.c
@@ -462,15 +462,16 @@
 IncludeCreate(struct xkb_context *ctx, char *str, enum merge_mode merge)
 {
     IncludeStmt *incl, *first;
-    char *file, *map, *stmt, *tmp, *extra_data;
+    char *stmt, *tmp;
     char nextop;
 
     incl = first = NULL;
-    file = map = NULL;
     tmp = str;
     stmt = strdup_safe(str);
     while (tmp && *tmp)
     {
+        char *file = NULL, *map = NULL, *extra_data = NULL;
+
         if (!ParseIncludeMap(&tmp, &file, &map, &nextop, &extra_data))
             goto err;
 
@@ -494,8 +495,12 @@
             incl = incl->next_incl;
         }
 
-        if (!incl)
+        if (!incl) {
+            free(file);
+            free(map);
+            free(extra_data);
             break;
+        }
 
         incl->common.type = STMT_INCLUDE;
         incl->common.next = NULL;
diff --git a/src/xkbcomp/ast.h b/src/xkbcomp/ast.h
index ee61106..6c51ce4 100644
--- a/src/xkbcomp/ast.h
+++ b/src/xkbcomp/ast.h
@@ -243,7 +243,6 @@
 
 union ExprDef {
     ParseCommon common;
-    /* Maybe someday we can use C11 anonymous struct for ExprCommon here. */
     ExprCommon expr;
     ExprIdent ident;
     ExprString string;
diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c
index 26b2bb7..b8922c9 100644
--- a/src/xkbcomp/compat.c
+++ b/src/xkbcomp/compat.c
@@ -690,7 +690,7 @@
     }
 
     si = info->default_interp;
-    si.merge = merge = (def->merge == MERGE_DEFAULT ? merge : def->merge);
+    si.merge = (def->merge == MERGE_DEFAULT ? merge : def->merge);
     si.interp.sym = def->sym;
     si.interp.match = pred;
     si.interp.mods = mods;
diff --git a/test/.gitignore b/test/.gitignore
deleted file mode 100644
index def76f0..0000000
--- a/test/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-*.log
-*.trs
-filecomp
-rulescomp
-keymap
-keysym
-state
-context
-rules-file
-stringcomp
-buffercomp
-keyseq
-log
-interactive-evdev
-rmlvo-to-kccgst
-rmlvo-to-keymap
-print-compiled-keymap
-atom
-x11
-interactive-x11
-interactive-wayland
-utf8
-x11comp
-compose
diff --git a/test/compose.c b/test/compose.c
index 5ba5751..35790a3 100644
--- a/test/compose.c
+++ b/test/compose.c
@@ -179,7 +179,7 @@
     char *path;
     FILE *file;
 
-    path = test_get_path("compose/en_US.UTF-8/Compose");
+    path = test_get_path("locale/en_US.UTF-8/Compose");
     file = fopen(path, "rb");
     assert(file);
     free(path);
@@ -353,7 +353,7 @@
     char *path;
     FILE *file;
 
-    path = test_get_path("compose/en_US.UTF-8/Compose");
+    path = test_get_path("locale/en_US.UTF-8/Compose");
     file = fopen(path, "rb");
     assert(file);
     free(path);
@@ -410,7 +410,7 @@
     struct xkb_compose_table *table;
     char *path;
 
-    path = test_get_path("compose/en_US.UTF-8/Compose");
+    path = test_get_path("locale/en_US.UTF-8/Compose");
     setenv("XCOMPOSEFILE", path, 1);
     free(path);
 
@@ -418,6 +418,8 @@
                                               XKB_COMPOSE_COMPILE_NO_FLAGS);
     assert(table);
 
+    unsetenv("XCOMPOSEFILE");
+
     assert(test_compose_seq(table,
         XKB_KEY_dead_tilde,     XKB_COMPOSE_FEED_ACCEPTED,  XKB_COMPOSE_COMPOSING,  "",     XKB_KEY_NoSymbol,
         XKB_KEY_space,          XKB_COMPOSE_FEED_ACCEPTED,  XKB_COMPOSE_COMPOSED,   "~",    XKB_KEY_asciitilde,
@@ -427,6 +429,49 @@
 }
 
 static void
+test_from_locale(struct xkb_context *ctx)
+{
+    struct xkb_compose_table *table;
+    char *path;
+
+    path = test_get_path("locale");
+    setenv("XLOCALEDIR", path, 1);
+    free(path);
+
+    /* Direct directory name match. */
+    table = xkb_compose_table_new_from_locale(ctx, "en_US.UTF-8",
+                                              XKB_COMPOSE_COMPILE_NO_FLAGS);
+    assert(table);
+    xkb_compose_table_unref(table);
+
+    /* Direct locale name match. */
+    table = xkb_compose_table_new_from_locale(ctx, "C.UTF-8",
+                                              XKB_COMPOSE_COMPILE_NO_FLAGS);
+    assert(table);
+    xkb_compose_table_unref(table);
+
+    /* Alias. */
+    table = xkb_compose_table_new_from_locale(ctx, "univ.utf8",
+                                              XKB_COMPOSE_COMPILE_NO_FLAGS);
+    assert(table);
+    xkb_compose_table_unref(table);
+
+    /* Special case - C. */
+    table = xkb_compose_table_new_from_locale(ctx, "C",
+                                              XKB_COMPOSE_COMPILE_NO_FLAGS);
+    assert(table);
+    xkb_compose_table_unref(table);
+
+    /* Bogus - not found. */
+    table = xkb_compose_table_new_from_locale(ctx, "blabla",
+                                              XKB_COMPOSE_COMPILE_NO_FLAGS);
+    assert(!table);
+
+    unsetenv("XLOCALEDIR");
+}
+
+
+static void
 test_modifier_syntax(struct xkb_context *ctx)
 {
     const char *table_string;
@@ -486,7 +531,7 @@
 {
     char *path, *table_string;
 
-    path = test_get_path("compose/en_US.UTF-8/Compose");
+    path = test_get_path("locale/en_US.UTF-8/Compose");
     assert(path);
 
     /* We don't have a mechanism to change the include paths like we
@@ -526,6 +571,7 @@
     test_seqs(ctx);
     test_conflicting(ctx);
     test_XCOMPOSEFILE(ctx);
+    test_from_locale(ctx);
     test_state(ctx);
     test_modifier_syntax(ctx);
     test_include(ctx);
diff --git a/test/data/locale/compose.dir b/test/data/locale/compose.dir
new file mode 100644
index 0000000..ee88bdc
--- /dev/null
+++ b/test/data/locale/compose.dir
@@ -0,0 +1,944 @@
+#
+#	This file contains compose table file names.
+#	The first word is the compose table file name
+#	and the second word is the full locale name.
+#
+#
+iso8859-1/Compose		C
+iso8859-1/Compose		af_ZA.ISO8859-1
+iso8859-6/Compose		ar_AA.ISO8859-6
+iso8859-6/Compose		ar_AE.ISO8859-6
+iso8859-6/Compose		ar_BH.ISO8859-6
+iso8859-6/Compose		ar_DZ.ISO8859-6
+iso8859-6/Compose		ar_EG.ISO8859-6
+iso8859-6/Compose		ar_IQ.ISO8859-6
+iso8859-6/Compose		ar_JO.ISO8859-6
+iso8859-6/Compose		ar_KW.ISO8859-6
+iso8859-6/Compose		ar_LB.ISO8859-6
+iso8859-6/Compose		ar_LY.ISO8859-6
+iso8859-6/Compose		ar_MA.ISO8859-6
+iso8859-6/Compose		ar_OM.ISO8859-6
+iso8859-6/Compose		ar_QA.ISO8859-6
+iso8859-6/Compose		ar_SA.ISO8859-6
+iso8859-6/Compose		ar_SD.ISO8859-6
+iso8859-6/Compose		ar_SY.ISO8859-6
+iso8859-6/Compose		ar_TN.ISO8859-6
+iso8859-6/Compose		ar_YE.ISO8859-6
+iso8859-9e/Compose		az_AZ.ISO8859-9E
+koi8-c/Compose			az_AZ.KOI8-C
+microsoft-cp1251/Compose	be_BY.CP1251
+iso8859-5/Compose		be_BY.ISO8859-5
+iso8859-5/Compose		bg_BG.ISO8859-5
+microsoft-cp1251/Compose	bg_BG.CP1251
+koi8-r/Compose			bg_BG.KOI8-R
+iso8859-1/Compose		br_FR.ISO8859-1
+iso8859-14/Compose		br_FR.ISO8859-14
+iso8859-15/Compose		br_FR.ISO8859-15
+iso8859-2/Compose		bs_BA.ISO8859-2
+iso8859-1/Compose		ca_AD.ISO8859-1
+iso8859-15/Compose		ca_AD.ISO8859-15
+iso8859-1/Compose		ca_ES.ISO8859-1
+iso8859-15/Compose		ca_ES.ISO8859-15
+iso8859-1/Compose		ca_FR.ISO8859-1
+iso8859-15/Compose		ca_FR.ISO8859-15
+iso8859-1/Compose		ca_IT.ISO8859-1
+iso8859-15/Compose		ca_IT.ISO8859-15
+iso8859-2/Compose		cs_CZ.ISO8859-2
+iso8859-1/Compose		cy_GB.ISO8859-1
+iso8859-14/Compose		cy_GB.ISO8859-14
+iso8859-15/Compose		cy_GB.ISO8859-15
+iso8859-1/Compose		da_DK.ISO8859-1
+iso8859-15/Compose		da_DK.ISO8859-15
+iso8859-1/Compose		de_AT.ISO8859-1
+iso8859-15/Compose		de_AT.ISO8859-15
+iso8859-1/Compose		de_BE.ISO8859-1
+iso8859-15/Compose		de_BE.ISO8859-15
+iso8859-1/Compose		de_CH.ISO8859-1
+iso8859-15/Compose		de_CH.ISO8859-15
+iso8859-1/Compose		de_DE.ISO8859-1
+iso8859-15/Compose		de_DE.ISO8859-15
+iso8859-1/Compose		de_LI.ISO8859-1
+iso8859-15/Compose		de_LI.ISO8859-15
+iso8859-1/Compose		de_LU.ISO8859-1
+iso8859-15/Compose		de_LU.ISO8859-15
+iso8859-4/Compose		ee_EE.ISO8859-4
+iso8859-7/Compose		el_GR.ISO8859-7
+iso8859-15/Compose		el_GR.ISO8859-15
+iso8859-1/Compose		en_AU.ISO8859-1
+iso8859-1/Compose		en_BE.ISO8859-1
+iso8859-15/Compose		en_BE.ISO8859-15
+iso8859-1/Compose		en_BW.ISO8859-1
+iso8859-1/Compose		en_BZ.ISO8859-1
+iso8859-1/Compose		en_CA.ISO8859-1
+iso8859-1/Compose		en_EN.ISO8859-1
+iso8859-1/Compose		en_GB.ISO8859-1
+iso8859-15/Compose		en_GB.ISO8859-15
+iso8859-1/Compose		en_HK.ISO8859-1
+iso8859-1/Compose		en_IE.ISO8859-1
+iso8859-15/Compose		en_IE.ISO8859-15
+iso8859-15/Compose		en_IN.ISO8859-15
+iso8859-1/Compose		en_JM.ISO8859-1
+iso8859-1/Compose		en_NZ.ISO8859-1
+iso8859-1/Compose		en_PH.ISO8859-1
+iso8859-1/Compose		en_SG.ISO8859-1
+iso8859-1/Compose		en_TT.ISO8859-1
+iso8859-1/Compose		en_UK.ISO8859-1
+iso8859-15/Compose		en_UK.ISO8859-15
+iso8859-1/Compose		en_US.ISO8859-1
+iso8859-15/Compose		en_US.ISO8859-15
+iso8859-1/Compose		en_ZA.ISO8859-1
+iso8859-15/Compose		en_ZA.ISO8859-15
+iso8859-1/Compose		en_ZW.ISO8859-1
+iso8859-3/Compose		eo_EO.ISO8859-3
+iso8859-3/Compose		eo_XX.ISO8859-3
+iso8859-1/Compose		es_AR.ISO8859-1
+iso8859-1/Compose		es_BO.ISO8859-1
+iso8859-1/Compose		es_CL.ISO8859-1
+iso8859-1/Compose		es_CO.ISO8859-1
+iso8859-1/Compose		es_CR.ISO8859-1
+iso8859-1/Compose		es_DO.ISO8859-1
+iso8859-1/Compose		es_EC.ISO8859-1
+iso8859-1/Compose		es_ES.ISO8859-1
+iso8859-15/Compose		es_ES.ISO8859-15
+iso8859-1/Compose		es_GT.ISO8859-1
+iso8859-1/Compose		es_HN.ISO8859-1
+iso8859-1/Compose		es_MX.ISO8859-1
+iso8859-1/Compose		es_NI.ISO8859-1
+iso8859-1/Compose		es_PA.ISO8859-1
+iso8859-15/Compose		es_PA.ISO8859-15
+iso8859-1/Compose		es_PE.ISO8859-1
+iso8859-15/Compose		es_PE.ISO8859-15
+iso8859-1/Compose		es_PR.ISO8859-1
+iso8859-1/Compose		es_PY.ISO8859-1
+iso8859-15/Compose		es_PY.ISO8859-15
+iso8859-1/Compose		es_SV.ISO8859-1
+iso8859-15/Compose		es_SV.ISO8859-15
+iso8859-1/Compose		es_US.ISO8859-1
+iso8859-1/Compose		es_UY.ISO8859-1
+iso8859-15/Compose		es_UY.ISO8859-15
+iso8859-1/Compose		es_VE.ISO8859-1
+iso8859-15/Compose		es_VE.ISO8859-15
+iso8859-1/Compose		et_EE.ISO8859-1
+iso8859-4/Compose		et_EE.ISO8859-4
+iso8859-13/Compose		et_EE.ISO8859-13
+iso8859-15/Compose		et_EE.ISO8859-15
+iso8859-1/Compose		eu_ES.ISO8859-1
+iso8859-15/Compose		eu_ES.ISO8859-15
+isiri-3342/Compose		fa_IR.ISIRI-3342
+iso8859-1/Compose		fi_FI.ISO8859-1
+iso8859-15/Compose		fi_FI.ISO8859-15
+iso8859-1/Compose		fo_FO.ISO8859-1
+iso8859-15/Compose		fo_FO.ISO8859-15
+iso8859-1/Compose		fr_BE.ISO8859-1
+iso8859-15/Compose		fr_BE.ISO8859-15
+iso8859-1/Compose		fr_CA.ISO8859-1
+iso8859-15/Compose		fr_CA.ISO8859-15
+iso8859-1/Compose		fr_CH.ISO8859-1
+iso8859-15/Compose		fr_CH.ISO8859-15
+iso8859-1/Compose		fr_FR.ISO8859-1
+iso8859-15/Compose		fr_FR.ISO8859-15
+iso8859-1/Compose		fr_LU.ISO8859-1
+iso8859-15/Compose		fr_LU.ISO8859-15
+iso8859-1/Compose		ga_IE.ISO8859-1
+iso8859-14/Compose		ga_IE.ISO8859-14
+iso8859-15/Compose		ga_IE.ISO8859-15
+iso8859-1/Compose		gd_GB.ISO8859-1
+iso8859-14/Compose		gd_GB.ISO8859-14
+iso8859-15/Compose		gd_GB.ISO8859-15
+iso8859-1/Compose		gl_ES.ISO8859-1
+iso8859-15/Compose		gl_ES.ISO8859-15
+iso8859-1/Compose		gv_GB.ISO8859-1
+iso8859-14/Compose		gv_GB.ISO8859-14
+iso8859-15/Compose		gv_GB.ISO8859-15
+iso8859-8/Compose		he_IL.ISO8859-8
+microsoft-cp1255/Compose	he_IL.CP1255
+iscii-dev/Compose		hi_IN.ISCII-DEV
+iso8859-2/Compose		hr_HR.ISO8859-2
+iso8859-2/Compose		hu_HU.ISO8859-2
+armscii-8/Compose		hy_AM.ARMSCII-8
+iso8859-1/Compose		id_ID.ISO8859-1
+iso8859-15/Compose		id_ID.ISO8859-15
+iso8859-1/Compose		is_IS.ISO8859-1
+iso8859-15/Compose		is_IS.ISO8859-15
+iso8859-1/Compose		it_CH.ISO8859-1
+iso8859-15/Compose		it_CH.ISO8859-15
+iso8859-1/Compose		it_IT.ISO8859-1
+iso8859-15/Compose		it_IT.ISO8859-15
+ja/Compose			ja_JP.eucJP
+ja.SJIS/Compose		ja_JP.SJIS
+ja.JIS/Compose			ja_JP.JIS7
+georgian-academy/Compose	ka_GE.GEORGIAN-ACADEMY
+georgian-ps/Compose		ka_GE.GEORGIAN-PS
+iso8859-1/Compose		kl_GL.ISO8859-1
+iso8859-15/Compose		kl_GL.ISO8859-15
+iso8859-1/Compose		kw_GB.ISO8859-1
+iso8859-14/Compose		kw_GB.ISO8859-14
+iso8859-15/Compose		kw_GB.ISO8859-15
+ko/Compose			ko_KR.eucKR
+ibm-cp1133/Compose		lo_LA.IBM-CP1133
+mulelao-1/Compose		lo_LA.MULELAO-1
+iso8859-4/Compose		lt_LT.ISO8859-4
+iso8859-13/Compose		lt_LT.ISO8859-13
+iso8859-4/Compose		lv_LV.ISO8859-4
+iso8859-13/Compose		lv_LV.ISO8859-13
+iso8859-13/Compose		mi_NZ.ISO8859-13
+iso8859-5/Compose		mk_MK.ISO8859-5
+microsoft-cp1251/Compose	mk_MK.CP1251
+iso8859-1/Compose		ms_MY.ISO8859-1
+iso8859-3/Compose		mt_MT.ISO8859-3
+iso8859-1/Compose		nl_BE.ISO8859-1
+iso8859-15/Compose		nl_BE.ISO8859-15
+iso8859-1/Compose		nl_NL.ISO8859-1
+iso8859-15/Compose		nl_NL.ISO8859-15
+iso8859-1/Compose		no_NO.ISO8859-1
+iso8859-15/Compose		no_NO.ISO8859-15
+iso8859-1/Compose		nb_NO.ISO8859-1
+iso8859-15/Compose		nb_NO.ISO8859-15
+iso8859-1/Compose		nn_NO.ISO8859-1
+iso8859-15/Compose		nn_NO.ISO8859-15
+iso8859-1/Compose		nr_ZA.ISO8859-1
+iso8859-15/Compose		nso_ZA.ISO8859-15
+iso8859-1/Compose		ny_NO.ISO8859-1
+iso8859-15/Compose		ny_NO.ISO8859-15
+iso8859-1/Compose		oc_FR.ISO8859-1
+iso8859-15/Compose		oc_FR.ISO8859-15
+iso8859-1/Compose		pd_DE.ISO8859-1
+iso8859-15/Compose		pd_DE.ISO8859-15
+iso8859-1/Compose		pd_US.ISO8859-1
+iso8859-15/Compose		pd_US.ISO8859-15
+iso8859-1/Compose		ph_PH.ISO8859-1
+iso8859-2/Compose		pl_PL.ISO8859-2
+iso8859-1/Compose		pp_AN.ISO8859-1
+iso8859-1/Compose		pt_BR.ISO8859-1
+iso8859-15/Compose		pt_BR.ISO8859-15
+iso8859-1/Compose		pt_PT.ISO8859-1
+iso8859-15/Compose		pt_PT.ISO8859-15
+iso8859-2/Compose		ro_RO.ISO8859-2
+koi8-r/Compose			ru_RU.KOI8-R
+iso8859-5/Compose		ru_RU.ISO8859-5
+microsoft-cp1251/Compose	ru_RU.CP1251
+microsoft-cp1251/Compose	ru_UA.CP1251
+koi8-u/Compose			ru_UA.KOI8-U
+iso8859-1/Compose		rw_RW.ISO8859-1
+iso8859-2/Compose		sh_YU.ISO8859-2
+iso8859-2/Compose		sk_SK.ISO8859-2
+iso8859-2/Compose		sl_SI.ISO8859-2
+iso8859-2/Compose		sq_AL.ISO8859-2
+iso8859-2/Compose		sr_YU.ISO8859-2
+microsoft-cp1251/Compose	sr_YU.CP1251
+iso8859-5/Compose		sr_YU.ISO8859-5
+iso8859-1/Compose		ss_ZA.ISO8859-1
+iso8859-1/Compose		st_ZA.ISO8859-1
+iso8859-1/Compose		sv_FI.ISO8859-1
+iso8859-15/Compose		sv_FI.ISO8859-15
+iso8859-1/Compose		sv_SE.ISO8859-1
+iso8859-15/Compose		sv_SE.ISO8859-15
+tscii-0/Compose		ta_IN.TSCII-0
+koi8-c/Compose			tg_TJ.KOI8-C
+iso8859-1/Compose		tl_PH.ISO8859-1
+iso8859-11/Compose		th_TH.ISO8859-11
+th_TH/Compose			th_TH.TIS620
+iso8859-15/Compose		tn_ZA.ISO8859-15
+iso8859-9/Compose		tr_TR.ISO8859-9
+iso8859-1/Compose		ts_ZA.ISO8859-1
+tatar-cyr/Compose		tt_RU.TATAR-CYR
+microsoft-cp1251/Compose	uk_UA.CP1251
+koi8-c/Compose			tt_RU.KOI8-C
+koi8-u/Compose			uk_UA.KOI8-U
+iso8859-5/Compose		uk_UA.ISO8859-5
+microsoft-cp1256/Compose	ur_PK.CP1256
+iso8859-1/Compose		uz_UZ.ISO8859-1
+vi_VN.viscii/Compose		vi_VN.VISCII
+vi_VN.tcvn/Compose		vi_VN.TCVN
+iso8859-1/Compose		wa_BE.ISO8859-1
+iso8859-15/Compose		wa_BE.ISO8859-15
+iso8859-1/Compose		xh_ZA.ISO8859-1
+microsoft-cp1255/Compose	yi_US.CP1255
+zh_CN/Compose			zh_CN.eucCN
+zh_CN/Compose			zh_CN.gb2312
+zh_CN.gbk/Compose		zh_CN.gbk
+zh_CN.gb18030/Compose		zh_CN.gb18030
+zh_HK.big5/Compose		zh_HK.big5
+zh_HK.big5hkscs/Compose	zh_HK.big5hkscs
+zh_TW.big5/Compose		zh_TW.big5
+zh_TW/Compose			zh_TW.eucTW
+iso8859-1/Compose		zu_ZA.ISO8859-1
+#
+#
+en_US.UTF-8/Compose		C.UTF-8
+en_US.UTF-8/Compose		af_ZA.UTF-8
+am_ET.UTF-8/Compose		am_ET.UTF-8
+en_US.UTF-8/Compose		ar_AA.UTF-8
+en_US.UTF-8/Compose		ar_AE.UTF-8
+en_US.UTF-8/Compose		ar_BH.UTF-8
+en_US.UTF-8/Compose		ar_DZ.UTF-8
+en_US.UTF-8/Compose		ar_EG.UTF-8
+en_US.UTF-8/Compose		ar_IN.UTF-8
+en_US.UTF-8/Compose		ar_IQ.UTF-8
+en_US.UTF-8/Compose		ar_JO.UTF-8
+en_US.UTF-8/Compose		ar_KW.UTF-8
+en_US.UTF-8/Compose		ar_LB.UTF-8
+en_US.UTF-8/Compose		ar_LY.UTF-8
+en_US.UTF-8/Compose		ar_MA.UTF-8
+en_US.UTF-8/Compose		ar_OM.UTF-8
+en_US.UTF-8/Compose		ar_QA.UTF-8
+en_US.UTF-8/Compose		ar_SA.UTF-8
+en_US.UTF-8/Compose		ar_SD.UTF-8
+en_US.UTF-8/Compose		ar_SY.UTF-8
+en_US.UTF-8/Compose		ar_TN.UTF-8
+en_US.UTF-8/Compose		ar_YE.UTF-8
+en_US.UTF-8/Compose		ast_ES.UTF-8
+en_US.UTF-8/Compose		as_IN.UTF-8
+en_US.UTF-8/Compose		az_AZ.UTF-8
+en_US.UTF-8/Compose		be_BY.UTF-8
+en_US.UTF-8/Compose		bg_BG.UTF-8
+en_US.UTF-8/Compose		bn_BD.UTF-8
+en_US.UTF-8/Compose		bn_IN.UTF-8
+en_US.UTF-8/Compose		bo_IN.UTF-8
+en_US.UTF-8/Compose		br_FR.UTF-8
+en_US.UTF-8/Compose		bs_BA.UTF-8
+en_US.UTF-8/Compose		ca_AD.UTF-8
+en_US.UTF-8/Compose		ca_ES.UTF-8
+en_US.UTF-8/Compose		ca_FR.UTF-8
+en_US.UTF-8/Compose		ca_IT.UTF-8
+cs_CZ.UTF-8/Compose		cs_CZ.UTF-8
+en_US.UTF-8/Compose		cy_GB.UTF-8
+en_US.UTF-8/Compose		da_DK.UTF-8
+en_US.UTF-8/Compose		de_AT.UTF-8
+en_US.UTF-8/Compose		de_BE.UTF-8
+en_US.UTF-8/Compose		de_CH.UTF-8
+en_US.UTF-8/Compose		de_DE.UTF-8
+en_US.UTF-8/Compose		de_IT.UTF-8
+en_US.UTF-8/Compose		de_LI.UTF-8
+en_US.UTF-8/Compose		de_LU.UTF-8
+el_GR.UTF-8/Compose		el_CY.UTF-8
+el_GR.UTF-8/Compose		el_GR.UTF-8
+en_US.UTF-8/Compose		en_AU.UTF-8
+en_US.UTF-8/Compose		en_BE.UTF-8
+en_US.UTF-8/Compose		en_BW.UTF-8
+en_US.UTF-8/Compose		en_BZ.UTF-8
+en_US.UTF-8/Compose		en_CA.UTF-8
+en_US.UTF-8/Compose		en_DK.UTF-8
+en_US.UTF-8/Compose		en_EN.UTF-8
+en_US.UTF-8/Compose		en_GB.UTF-8
+en_US.UTF-8/Compose		en_HK.UTF-8
+en_US.UTF-8/Compose		en_IE.UTF-8
+en_US.UTF-8/Compose		en_IN.UTF-8
+en_US.UTF-8/Compose		en_JM.UTF-8
+en_US.UTF-8/Compose		en_MT.UTF-8
+en_US.UTF-8/Compose		en_NZ.UTF-8
+en_US.UTF-8/Compose		en_PH.UTF-8
+en_US.UTF-8/Compose		en_SG.UTF-8
+en_US.UTF-8/Compose		en_TT.UTF-8
+en_US.UTF-8/Compose		en_UK.UTF-8
+en_US.UTF-8/Compose		en_US.UTF-8
+en_US.UTF-8/Compose		en_ZA.UTF-8
+en_US.UTF-8/Compose		en_ZW.UTF-8
+en_US.UTF-8/Compose		eo_EO.UTF-8
+en_US.UTF-8/Compose		eo_XX.UTF-8
+en_US.UTF-8/Compose		es_AR.UTF-8
+en_US.UTF-8/Compose		es_BO.UTF-8
+en_US.UTF-8/Compose		es_CL.UTF-8
+en_US.UTF-8/Compose		es_CO.UTF-8
+en_US.UTF-8/Compose		es_CR.UTF-8
+en_US.UTF-8/Compose		es_DO.UTF-8
+en_US.UTF-8/Compose		es_EC.UTF-8
+en_US.UTF-8/Compose		es_ES.UTF-8
+en_US.UTF-8/Compose		es_GT.UTF-8
+en_US.UTF-8/Compose		es_HN.UTF-8
+en_US.UTF-8/Compose		es_MX.UTF-8
+en_US.UTF-8/Compose		es_NI.UTF-8
+en_US.UTF-8/Compose		es_PA.UTF-8
+en_US.UTF-8/Compose		es_PE.UTF-8
+en_US.UTF-8/Compose		es_PR.UTF-8
+en_US.UTF-8/Compose		es_PY.UTF-8
+en_US.UTF-8/Compose		es_SV.UTF-8
+en_US.UTF-8/Compose		es_US.UTF-8
+en_US.UTF-8/Compose		es_UY.UTF-8
+en_US.UTF-8/Compose		es_VE.UTF-8
+en_US.UTF-8/Compose		et_EE.UTF-8
+en_US.UTF-8/Compose		eu_ES.UTF-8
+en_US.UTF-8/Compose		fa_IR.UTF-8
+fi_FI.UTF-8/Compose		fi_FI.UTF-8
+en_US.UTF-8/Compose		fo_FO.UTF-8
+en_US.UTF-8/Compose		fr_BE.UTF-8
+en_US.UTF-8/Compose		fr_CA.UTF-8
+en_US.UTF-8/Compose		fr_CH.UTF-8
+en_US.UTF-8/Compose		fr_FR.UTF-8
+en_US.UTF-8/Compose		fr_LU.UTF-8
+en_US.UTF-8/Compose		ga_IE.UTF-8
+en_US.UTF-8/Compose		gd_GB.UTF-8
+en_US.UTF-8/Compose		gl_ES.UTF-8
+en_US.UTF-8/Compose		gu_IN.UTF-8
+en_US.UTF-8/Compose		gv_GB.UTF-8
+en_US.UTF-8/Compose		he_IL.UTF-8
+en_US.UTF-8/Compose		hi_IN.UTF-8
+en_US.UTF-8/Compose		hne_IN.UTF-8
+en_US.UTF-8/Compose		hr_HR.UTF-8
+en_US.UTF-8/Compose		hu_HU.UTF-8
+en_US.UTF-8/Compose		hy_AM.UTF-8
+en_US.UTF-8/Compose		id_ID.UTF-8
+en_US.UTF-8/Compose		is_IS.UTF-8
+en_US.UTF-8/Compose		it_CH.UTF-8
+en_US.UTF-8/Compose		it_IT.UTF-8
+en_US.UTF-8/Compose		iu_CA.UTF-8
+ja_JP.UTF-8/Compose		ja_JP.UTF-8
+en_US.UTF-8/Compose		ka_GE.UTF-8
+en_US.UTF-8/Compose		kk_KZ.UTF-8
+en_US.UTF-8/Compose		kl_GL.UTF-8
+km_KH.UTF-8/Compose		km_KH.UTF-8
+en_US.UTF-8/Compose		kn_IN.UTF-8
+ko_KR.UTF-8/Compose		ko_KR.UTF-8
+en_US.UTF-8/Compose		ks_IN.UTF-8
+en_US.UTF-8/Compose		ks_IN.UTF-8@devanagari
+en_US.UTF-8/Compose		ku_TR.UTF-8
+en_US.UTF-8/Compose		kw_GB.UTF-8
+en_US.UTF-8/Compose		ky_KG.UTF-8
+en_US.UTF-8/Compose		lo_LA.UTF-8
+en_US.UTF-8/Compose		lt_LT.UTF-8
+en_US.UTF-8/Compose		lv_LV.UTF-8
+en_US.UTF-8/Compose		mai_IN.UTF-8
+en_US.UTF-8/Compose		mi_NZ.UTF-8
+en_US.UTF-8/Compose		mk_MK.UTF-8
+en_US.UTF-8/Compose		ml_IN.UTF-8
+en_US.UTF-8/Compose		mr_IN.UTF-8
+en_US.UTF-8/Compose		ms_MY.UTF-8
+en_US.UTF-8/Compose		mt_MT.UTF-8
+en_US.UTF-8/Compose		ne_NP.UTF-8
+en_US.UTF-8/Compose		nl_BE.UTF-8
+en_US.UTF-8/Compose		nl_NL.UTF-8
+en_US.UTF-8/Compose		nn_NO.UTF-8
+en_US.UTF-8/Compose		no_NO.UTF-8
+en_US.UTF-8/Compose		nb_NO.UTF-8
+en_US.UTF-8/Compose		nr_ZA.UTF-8
+en_US.UTF-8/Compose		nso_ZA.UTF-8
+en_US.UTF-8/Compose		ny_NO.UTF-8
+en_US.UTF-8/Compose		oc_FR.UTF-8
+en_US.UTF-8/Compose		or_IN.UTF-8
+en_US.UTF-8/Compose		pa_IN.UTF-8
+en_US.UTF-8/Compose		pa_PK.UTF-8
+en_US.UTF-8/Compose		pd_DE.UTF-8
+en_US.UTF-8/Compose		pd_US.UTF-8
+en_US.UTF-8/Compose		ph_PH.UTF-8
+en_US.UTF-8/Compose		pl_PL.UTF-8
+en_US.UTF-8/Compose		pp_AN.UTF-8
+pt_BR.UTF-8/Compose		pt_BR.UTF-8
+pt_PT.UTF-8/Compose		pt_PT.UTF-8
+en_US.UTF-8/Compose		ro_RO.UTF-8
+ru_RU.UTF-8/Compose		ru_RU.UTF-8
+en_US.UTF-8/Compose		ru_UA.UTF-8
+en_US.UTF-8/Compose		rw_RW.UTF-8
+en_US.UTF-8/Compose		sa_IN.UTF-8
+en_US.UTF-8/Compose		sd_IN.UTF-8
+en_US.UTF-8/Compose		sd_IN.UTF-8@devanagari
+en_US.UTF-8/Compose		se_NO.UTF-8
+en_US.UTF-8/Compose		sh_BA.UTF-8
+en_US.UTF-8/Compose		sh_YU.UTF-8
+en_US.UTF-8/Compose		si_LK.UTF-8
+en_US.UTF-8/Compose		sk_SK.UTF-8
+en_US.UTF-8/Compose		sl_SI.UTF-8
+en_US.UTF-8/Compose		sq_AL.UTF-8
+en_US.UTF-8/Compose		sr_ME.UTF-8
+en_US.UTF-8/Compose		sr_RS.UTF-8
+en_US.UTF-8/Compose		sr_YU.UTF-8
+en_US.UTF-8/Compose		ss_ZA.UTF-8
+en_US.UTF-8/Compose		st_ZA.UTF-8
+en_US.UTF-8/Compose		sv_FI.UTF-8
+en_US.UTF-8/Compose		sv_SE.UTF-8
+en_US.UTF-8/Compose		ta_IN.UTF-8
+en_US.UTF-8/Compose		te_IN.UTF-8
+en_US.UTF-8/Compose		tg_TJ.UTF-8
+th_TH.UTF-8/Compose		th_TH.UTF-8
+en_US.UTF-8/Compose		ti_ER.UTF-8
+en_US.UTF-8/Compose		ti_ET.UTF-8
+en_US.UTF-8/Compose		tl_PH.UTF-8
+en_US.UTF-8/Compose		tn_ZA.UTF-8
+en_US.UTF-8/Compose		tr_TR.UTF-8
+en_US.UTF-8/Compose		ts_ZA.UTF-8
+en_US.UTF-8/Compose		tt_RU.UTF-8
+en_US.UTF-8/Compose		uk_UA.UTF-8
+en_US.UTF-8/Compose		ur_IN.UTF-8
+en_US.UTF-8/Compose		ur_PK.UTF-8
+en_US.UTF-8/Compose		uz_UZ.UTF-8
+en_US.UTF-8/Compose		ve_ZA.UTF-8
+en_US.UTF-8/Compose		vi_VN.UTF-8
+en_US.UTF-8/Compose		wa_BE.UTF-8
+en_US.UTF-8/Compose		xh_ZA.UTF-8
+en_US.UTF-8/Compose		yi_US.UTF-8
+zh_CN.UTF-8/Compose		zh_CN.UTF-8
+zh_HK.UTF-8/Compose		zh_HK.UTF-8
+en_US.UTF-8/Compose		zh_SG.UTF-8
+zh_TW.UTF-8/Compose		zh_TW.UTF-8
+en_US.UTF-8/Compose		zu_ZA.UTF-8
+#
+#	This file contains compose table file names.
+#	The first word is the compose table file name
+#	and the second word is the full locale name.
+#
+#
+iso8859-1/Compose:		C
+iso8859-1/Compose:		af_ZA.ISO8859-1
+iso8859-6/Compose:		ar_AA.ISO8859-6
+iso8859-6/Compose:		ar_AE.ISO8859-6
+iso8859-6/Compose:		ar_BH.ISO8859-6
+iso8859-6/Compose:		ar_DZ.ISO8859-6
+iso8859-6/Compose:		ar_EG.ISO8859-6
+iso8859-6/Compose:		ar_IQ.ISO8859-6
+iso8859-6/Compose:		ar_JO.ISO8859-6
+iso8859-6/Compose:		ar_KW.ISO8859-6
+iso8859-6/Compose:		ar_LB.ISO8859-6
+iso8859-6/Compose:		ar_LY.ISO8859-6
+iso8859-6/Compose:		ar_MA.ISO8859-6
+iso8859-6/Compose:		ar_OM.ISO8859-6
+iso8859-6/Compose:		ar_QA.ISO8859-6
+iso8859-6/Compose:		ar_SA.ISO8859-6
+iso8859-6/Compose:		ar_SD.ISO8859-6
+iso8859-6/Compose:		ar_SY.ISO8859-6
+iso8859-6/Compose:		ar_TN.ISO8859-6
+iso8859-6/Compose:		ar_YE.ISO8859-6
+iso8859-9e/Compose:		az_AZ.ISO8859-9E
+koi8-c/Compose:			az_AZ.KOI8-C
+microsoft-cp1251/Compose:	be_BY.CP1251
+iso8859-5/Compose:		be_BY.ISO8859-5
+iso8859-5/Compose:		bg_BG.ISO8859-5
+microsoft-cp1251/Compose:	bg_BG.CP1251
+koi8-r/Compose:			bg_BG.KOI8-R
+iso8859-1/Compose:		br_FR.ISO8859-1
+iso8859-14/Compose:		br_FR.ISO8859-14
+iso8859-15/Compose:		br_FR.ISO8859-15
+iso8859-2/Compose:		bs_BA.ISO8859-2
+iso8859-1/Compose:		ca_AD.ISO8859-1
+iso8859-15/Compose:		ca_AD.ISO8859-15
+iso8859-1/Compose:		ca_ES.ISO8859-1
+iso8859-15/Compose:		ca_ES.ISO8859-15
+iso8859-1/Compose:		ca_FR.ISO8859-1
+iso8859-15/Compose:		ca_FR.ISO8859-15
+iso8859-1/Compose:		ca_IT.ISO8859-1
+iso8859-15/Compose:		ca_IT.ISO8859-15
+iso8859-2/Compose:		cs_CZ.ISO8859-2
+iso8859-1/Compose:		cy_GB.ISO8859-1
+iso8859-14/Compose:		cy_GB.ISO8859-14
+iso8859-15/Compose:		cy_GB.ISO8859-15
+iso8859-1/Compose:		da_DK.ISO8859-1
+iso8859-15/Compose:		da_DK.ISO8859-15
+iso8859-1/Compose:		de_AT.ISO8859-1
+iso8859-15/Compose:		de_AT.ISO8859-15
+iso8859-1/Compose:		de_BE.ISO8859-1
+iso8859-15/Compose:		de_BE.ISO8859-15
+iso8859-1/Compose:		de_CH.ISO8859-1
+iso8859-15/Compose:		de_CH.ISO8859-15
+iso8859-1/Compose:		de_DE.ISO8859-1
+iso8859-15/Compose:		de_DE.ISO8859-15
+iso8859-1/Compose:		de_LI.ISO8859-1
+iso8859-15/Compose:		de_LI.ISO8859-15
+iso8859-1/Compose:		de_LU.ISO8859-1
+iso8859-15/Compose:		de_LU.ISO8859-15
+iso8859-4/Compose:		ee_EE.ISO8859-4
+iso8859-7/Compose:		el_GR.ISO8859-7
+iso8859-15/Compose:		el_GR.ISO8859-15
+iso8859-1/Compose:		en_AU.ISO8859-1
+iso8859-1/Compose:		en_BE.ISO8859-1
+iso8859-15/Compose:		en_BE.ISO8859-15
+iso8859-1/Compose:		en_BW.ISO8859-1
+iso8859-1/Compose:		en_BZ.ISO8859-1
+iso8859-1/Compose:		en_CA.ISO8859-1
+iso8859-1/Compose:		en_EN.ISO8859-1
+iso8859-1/Compose:		en_GB.ISO8859-1
+iso8859-15/Compose:		en_GB.ISO8859-15
+iso8859-1/Compose:		en_HK.ISO8859-1
+iso8859-1/Compose:		en_IE.ISO8859-1
+iso8859-15/Compose:		en_IE.ISO8859-15
+iso8859-15/Compose:		en_IN.ISO8859-15
+iso8859-1/Compose:		en_JM.ISO8859-1
+iso8859-1/Compose:		en_NZ.ISO8859-1
+iso8859-1/Compose:		en_PH.ISO8859-1
+iso8859-1/Compose:		en_SG.ISO8859-1
+iso8859-1/Compose:		en_TT.ISO8859-1
+iso8859-1/Compose:		en_UK.ISO8859-1
+iso8859-15/Compose:		en_UK.ISO8859-15
+iso8859-1/Compose:		en_US.ISO8859-1
+iso8859-15/Compose:		en_US.ISO8859-15
+iso8859-1/Compose:		en_ZA.ISO8859-1
+iso8859-15/Compose:		en_ZA.ISO8859-15
+iso8859-1/Compose:		en_ZW.ISO8859-1
+iso8859-3/Compose:		eo_EO.ISO8859-3
+iso8859-3/Compose:		eo_XX.ISO8859-3
+iso8859-1/Compose:		es_AR.ISO8859-1
+iso8859-1/Compose:		es_BO.ISO8859-1
+iso8859-1/Compose:		es_CL.ISO8859-1
+iso8859-1/Compose:		es_CO.ISO8859-1
+iso8859-1/Compose:		es_CR.ISO8859-1
+iso8859-1/Compose:		es_DO.ISO8859-1
+iso8859-1/Compose:		es_EC.ISO8859-1
+iso8859-1/Compose:		es_ES.ISO8859-1
+iso8859-15/Compose:		es_ES.ISO8859-15
+iso8859-1/Compose:		es_GT.ISO8859-1
+iso8859-1/Compose:		es_HN.ISO8859-1
+iso8859-1/Compose:		es_MX.ISO8859-1
+iso8859-1/Compose:		es_NI.ISO8859-1
+iso8859-1/Compose:		es_PA.ISO8859-1
+iso8859-15/Compose:		es_PA.ISO8859-15
+iso8859-1/Compose:		es_PE.ISO8859-1
+iso8859-15/Compose:		es_PE.ISO8859-15
+iso8859-1/Compose:		es_PR.ISO8859-1
+iso8859-1/Compose:		es_PY.ISO8859-1
+iso8859-15/Compose:		es_PY.ISO8859-15
+iso8859-1/Compose:		es_SV.ISO8859-1
+iso8859-15/Compose:		es_SV.ISO8859-15
+iso8859-1/Compose:		es_US.ISO8859-1
+iso8859-1/Compose:		es_UY.ISO8859-1
+iso8859-15/Compose:		es_UY.ISO8859-15
+iso8859-1/Compose:		es_VE.ISO8859-1
+iso8859-15/Compose:		es_VE.ISO8859-15
+iso8859-1/Compose:		et_EE.ISO8859-1
+iso8859-4/Compose:		et_EE.ISO8859-4
+iso8859-13/Compose:		et_EE.ISO8859-13
+iso8859-15/Compose:		et_EE.ISO8859-15
+iso8859-1/Compose:		eu_ES.ISO8859-1
+iso8859-15/Compose:		eu_ES.ISO8859-15
+isiri-3342/Compose:		fa_IR.ISIRI-3342
+iso8859-1/Compose:		fi_FI.ISO8859-1
+iso8859-15/Compose:		fi_FI.ISO8859-15
+iso8859-1/Compose:		fo_FO.ISO8859-1
+iso8859-15/Compose:		fo_FO.ISO8859-15
+iso8859-1/Compose:		fr_BE.ISO8859-1
+iso8859-15/Compose:		fr_BE.ISO8859-15
+iso8859-1/Compose:		fr_CA.ISO8859-1
+iso8859-15/Compose:		fr_CA.ISO8859-15
+iso8859-1/Compose:		fr_CH.ISO8859-1
+iso8859-15/Compose:		fr_CH.ISO8859-15
+iso8859-1/Compose:		fr_FR.ISO8859-1
+iso8859-15/Compose:		fr_FR.ISO8859-15
+iso8859-1/Compose:		fr_LU.ISO8859-1
+iso8859-15/Compose:		fr_LU.ISO8859-15
+iso8859-1/Compose:		ga_IE.ISO8859-1
+iso8859-14/Compose:		ga_IE.ISO8859-14
+iso8859-15/Compose:		ga_IE.ISO8859-15
+iso8859-1/Compose:		gd_GB.ISO8859-1
+iso8859-14/Compose:		gd_GB.ISO8859-14
+iso8859-15/Compose:		gd_GB.ISO8859-15
+iso8859-1/Compose:		gl_ES.ISO8859-1
+iso8859-15/Compose:		gl_ES.ISO8859-15
+iso8859-1/Compose:		gv_GB.ISO8859-1
+iso8859-14/Compose:		gv_GB.ISO8859-14
+iso8859-15/Compose:		gv_GB.ISO8859-15
+iso8859-8/Compose:		he_IL.ISO8859-8
+microsoft-cp1255/Compose:	he_IL.CP1255
+iscii-dev/Compose:		hi_IN.ISCII-DEV
+iso8859-2/Compose:		hr_HR.ISO8859-2
+iso8859-2/Compose:		hu_HU.ISO8859-2
+armscii-8/Compose:		hy_AM.ARMSCII-8
+iso8859-1/Compose:		id_ID.ISO8859-1
+iso8859-15/Compose:		id_ID.ISO8859-15
+iso8859-1/Compose:		is_IS.ISO8859-1
+iso8859-15/Compose:		is_IS.ISO8859-15
+iso8859-1/Compose:		it_CH.ISO8859-1
+iso8859-15/Compose:		it_CH.ISO8859-15
+iso8859-1/Compose:		it_IT.ISO8859-1
+iso8859-15/Compose:		it_IT.ISO8859-15
+ja/Compose:			ja_JP.eucJP
+ja.SJIS/Compose:		ja_JP.SJIS
+ja.JIS/Compose:			ja_JP.JIS7
+georgian-academy/Compose:	ka_GE.GEORGIAN-ACADEMY
+georgian-ps/Compose:		ka_GE.GEORGIAN-PS
+iso8859-1/Compose:		kl_GL.ISO8859-1
+iso8859-15/Compose:		kl_GL.ISO8859-15
+iso8859-1/Compose:		kw_GB.ISO8859-1
+iso8859-14/Compose:		kw_GB.ISO8859-14
+iso8859-15/Compose:		kw_GB.ISO8859-15
+ko/Compose:			ko_KR.eucKR
+ibm-cp1133/Compose:		lo_LA.IBM-CP1133
+mulelao-1/Compose:		lo_LA.MULELAO-1
+iso8859-4/Compose:		lt_LT.ISO8859-4
+iso8859-13/Compose:		lt_LT.ISO8859-13
+iso8859-4/Compose:		lv_LV.ISO8859-4
+iso8859-13/Compose:		lv_LV.ISO8859-13
+iso8859-13/Compose:		mi_NZ.ISO8859-13
+iso8859-5/Compose:		mk_MK.ISO8859-5
+microsoft-cp1251/Compose:	mk_MK.CP1251
+iso8859-1/Compose:		ms_MY.ISO8859-1
+iso8859-3/Compose:		mt_MT.ISO8859-3
+iso8859-1/Compose:		nl_BE.ISO8859-1
+iso8859-15/Compose:		nl_BE.ISO8859-15
+iso8859-1/Compose:		nl_NL.ISO8859-1
+iso8859-15/Compose:		nl_NL.ISO8859-15
+iso8859-1/Compose:		no_NO.ISO8859-1
+iso8859-15/Compose:		no_NO.ISO8859-15
+iso8859-1/Compose:		nb_NO.ISO8859-1
+iso8859-15/Compose:		nb_NO.ISO8859-15
+iso8859-1/Compose:		nn_NO.ISO8859-1
+iso8859-15/Compose:		nn_NO.ISO8859-15
+iso8859-1/Compose:		nr_ZA.ISO8859-1
+iso8859-15/Compose:		nso_ZA.ISO8859-15
+iso8859-1/Compose:		ny_NO.ISO8859-1
+iso8859-15/Compose:		ny_NO.ISO8859-15
+iso8859-1/Compose:		oc_FR.ISO8859-1
+iso8859-15/Compose:		oc_FR.ISO8859-15
+iso8859-1/Compose:		pd_DE.ISO8859-1
+iso8859-15/Compose:		pd_DE.ISO8859-15
+iso8859-1/Compose:		pd_US.ISO8859-1
+iso8859-15/Compose:		pd_US.ISO8859-15
+iso8859-1/Compose:		ph_PH.ISO8859-1
+iso8859-2/Compose:		pl_PL.ISO8859-2
+iso8859-1/Compose:		pp_AN.ISO8859-1
+iso8859-1/Compose:		pt_BR.ISO8859-1
+iso8859-15/Compose:		pt_BR.ISO8859-15
+iso8859-1/Compose:		pt_PT.ISO8859-1
+iso8859-15/Compose:		pt_PT.ISO8859-15
+iso8859-2/Compose:		ro_RO.ISO8859-2
+koi8-r/Compose:			ru_RU.KOI8-R
+iso8859-5/Compose:		ru_RU.ISO8859-5
+microsoft-cp1251/Compose:	ru_RU.CP1251
+microsoft-cp1251/Compose:	ru_UA.CP1251
+koi8-u/Compose:			ru_UA.KOI8-U
+iso8859-1/Compose:		rw_RW.ISO8859-1
+iso8859-2/Compose:		sh_YU.ISO8859-2
+iso8859-2/Compose:		sk_SK.ISO8859-2
+iso8859-2/Compose:		sl_SI.ISO8859-2
+iso8859-2/Compose:		sq_AL.ISO8859-2
+iso8859-2/Compose:		sr_YU.ISO8859-2
+microsoft-cp1251/Compose:	sr_YU.CP1251
+iso8859-5/Compose:		sr_YU.ISO8859-5
+iso8859-1/Compose:		ss_ZA.ISO8859-1
+iso8859-1/Compose:		st_ZA.ISO8859-1
+iso8859-1/Compose:		sv_FI.ISO8859-1
+iso8859-15/Compose:		sv_FI.ISO8859-15
+iso8859-1/Compose:		sv_SE.ISO8859-1
+iso8859-15/Compose:		sv_SE.ISO8859-15
+tscii-0/Compose:		ta_IN.TSCII-0
+koi8-c/Compose:			tg_TJ.KOI8-C
+iso8859-1/Compose:		tl_PH.ISO8859-1
+iso8859-11/Compose:		th_TH.ISO8859-11
+th_TH/Compose:			th_TH.TIS620
+iso8859-15/Compose:		tn_ZA.ISO8859-15
+iso8859-9/Compose:		tr_TR.ISO8859-9
+iso8859-1/Compose:		ts_ZA.ISO8859-1
+tatar-cyr/Compose:		tt_RU.TATAR-CYR
+microsoft-cp1251/Compose:	uk_UA.CP1251
+koi8-c/Compose:			tt_RU.KOI8-C
+koi8-u/Compose:			uk_UA.KOI8-U
+iso8859-5/Compose:		uk_UA.ISO8859-5
+microsoft-cp1256/Compose:	ur_PK.CP1256
+iso8859-1/Compose:		uz_UZ.ISO8859-1
+vi_VN.viscii/Compose:		vi_VN.VISCII
+vi_VN.tcvn/Compose:		vi_VN.TCVN
+iso8859-1/Compose:		wa_BE.ISO8859-1
+iso8859-15/Compose:		wa_BE.ISO8859-15
+iso8859-1/Compose:		xh_ZA.ISO8859-1
+microsoft-cp1255/Compose:	yi_US.CP1255
+zh_CN/Compose:			zh_CN.eucCN
+zh_CN/Compose:			zh_CN.gb2312
+zh_CN.gbk/Compose:		zh_CN.gbk
+zh_CN.gb18030/Compose:		zh_CN.gb18030
+zh_HK.big5/Compose:		zh_HK.big5
+zh_HK.big5hkscs/Compose:	zh_HK.big5hkscs
+zh_TW.big5/Compose:		zh_TW.big5
+zh_TW/Compose:			zh_TW.eucTW
+iso8859-1/Compose:		zu_ZA.ISO8859-1
+#
+#
+en_US.UTF-8/Compose:		C.UTF-8
+en_US.UTF-8/Compose:		af_ZA.UTF-8
+am_ET.UTF-8/Compose:		am_ET.UTF-8
+en_US.UTF-8/Compose:		ar_AA.UTF-8
+en_US.UTF-8/Compose:		ar_AE.UTF-8
+en_US.UTF-8/Compose:		ar_BH.UTF-8
+en_US.UTF-8/Compose:		ar_DZ.UTF-8
+en_US.UTF-8/Compose:		ar_EG.UTF-8
+en_US.UTF-8/Compose:		ar_IN.UTF-8
+en_US.UTF-8/Compose:		ar_IQ.UTF-8
+en_US.UTF-8/Compose:		ar_JO.UTF-8
+en_US.UTF-8/Compose:		ar_KW.UTF-8
+en_US.UTF-8/Compose:		ar_LB.UTF-8
+en_US.UTF-8/Compose:		ar_LY.UTF-8
+en_US.UTF-8/Compose:		ar_MA.UTF-8
+en_US.UTF-8/Compose:		ar_OM.UTF-8
+en_US.UTF-8/Compose:		ar_QA.UTF-8
+en_US.UTF-8/Compose:		ar_SA.UTF-8
+en_US.UTF-8/Compose:		ar_SD.UTF-8
+en_US.UTF-8/Compose:		ar_SY.UTF-8
+en_US.UTF-8/Compose:		ar_TN.UTF-8
+en_US.UTF-8/Compose:		ar_YE.UTF-8
+en_US.UTF-8/Compose:		ast_ES.UTF-8
+en_US.UTF-8/Compose:		as_IN.UTF-8
+en_US.UTF-8/Compose:		az_AZ.UTF-8
+en_US.UTF-8/Compose:		be_BY.UTF-8
+en_US.UTF-8/Compose:		bg_BG.UTF-8
+en_US.UTF-8/Compose:		bn_BD.UTF-8
+en_US.UTF-8/Compose:		bn_IN.UTF-8
+en_US.UTF-8/Compose:		bo_IN.UTF-8
+en_US.UTF-8/Compose:		br_FR.UTF-8
+en_US.UTF-8/Compose:		bs_BA.UTF-8
+en_US.UTF-8/Compose:		ca_AD.UTF-8
+en_US.UTF-8/Compose:		ca_ES.UTF-8
+en_US.UTF-8/Compose:		ca_FR.UTF-8
+en_US.UTF-8/Compose:		ca_IT.UTF-8
+cs_CZ.UTF-8/Compose:		cs_CZ.UTF-8
+en_US.UTF-8/Compose:		cy_GB.UTF-8
+en_US.UTF-8/Compose:		da_DK.UTF-8
+en_US.UTF-8/Compose:		de_AT.UTF-8
+en_US.UTF-8/Compose:		de_BE.UTF-8
+en_US.UTF-8/Compose:		de_CH.UTF-8
+en_US.UTF-8/Compose:		de_DE.UTF-8
+en_US.UTF-8/Compose:		de_IT.UTF-8
+en_US.UTF-8/Compose:		de_LI.UTF-8
+en_US.UTF-8/Compose:		de_LU.UTF-8
+el_GR.UTF-8/Compose:		el_CY.UTF-8
+el_GR.UTF-8/Compose:		el_GR.UTF-8
+en_US.UTF-8/Compose:		en_AU.UTF-8
+en_US.UTF-8/Compose:		en_BE.UTF-8
+en_US.UTF-8/Compose:		en_BW.UTF-8
+en_US.UTF-8/Compose:		en_BZ.UTF-8
+en_US.UTF-8/Compose:		en_CA.UTF-8
+en_US.UTF-8/Compose:		en_DK.UTF-8
+en_US.UTF-8/Compose:		en_EN.UTF-8
+en_US.UTF-8/Compose:		en_GB.UTF-8
+en_US.UTF-8/Compose:		en_HK.UTF-8
+en_US.UTF-8/Compose:		en_IE.UTF-8
+en_US.UTF-8/Compose:		en_IN.UTF-8
+en_US.UTF-8/Compose:		en_JM.UTF-8
+en_US.UTF-8/Compose:		en_MT.UTF-8
+en_US.UTF-8/Compose:		en_NZ.UTF-8
+en_US.UTF-8/Compose:		en_PH.UTF-8
+en_US.UTF-8/Compose:		en_SG.UTF-8
+en_US.UTF-8/Compose:		en_TT.UTF-8
+en_US.UTF-8/Compose:		en_UK.UTF-8
+en_US.UTF-8/Compose:		en_US.UTF-8
+en_US.UTF-8/Compose:		en_ZA.UTF-8
+en_US.UTF-8/Compose:		en_ZW.UTF-8
+en_US.UTF-8/Compose:		eo_EO.UTF-8
+en_US.UTF-8/Compose:		eo_XX.UTF-8
+en_US.UTF-8/Compose:		es_AR.UTF-8
+en_US.UTF-8/Compose:		es_BO.UTF-8
+en_US.UTF-8/Compose:		es_CL.UTF-8
+en_US.UTF-8/Compose:		es_CO.UTF-8
+en_US.UTF-8/Compose:		es_CR.UTF-8
+en_US.UTF-8/Compose:		es_DO.UTF-8
+en_US.UTF-8/Compose:		es_EC.UTF-8
+en_US.UTF-8/Compose:		es_ES.UTF-8
+en_US.UTF-8/Compose:		es_GT.UTF-8
+en_US.UTF-8/Compose:		es_HN.UTF-8
+en_US.UTF-8/Compose:		es_MX.UTF-8
+en_US.UTF-8/Compose:		es_NI.UTF-8
+en_US.UTF-8/Compose:		es_PA.UTF-8
+en_US.UTF-8/Compose:		es_PE.UTF-8
+en_US.UTF-8/Compose:		es_PR.UTF-8
+en_US.UTF-8/Compose:		es_PY.UTF-8
+en_US.UTF-8/Compose:		es_SV.UTF-8
+en_US.UTF-8/Compose:		es_US.UTF-8
+en_US.UTF-8/Compose:		es_UY.UTF-8
+en_US.UTF-8/Compose:		es_VE.UTF-8
+en_US.UTF-8/Compose:		et_EE.UTF-8
+en_US.UTF-8/Compose:		eu_ES.UTF-8
+en_US.UTF-8/Compose:		fa_IR.UTF-8
+fi_FI.UTF-8/Compose:		fi_FI.UTF-8
+en_US.UTF-8/Compose:		fo_FO.UTF-8
+en_US.UTF-8/Compose:		fr_BE.UTF-8
+en_US.UTF-8/Compose:		fr_CA.UTF-8
+en_US.UTF-8/Compose:		fr_CH.UTF-8
+en_US.UTF-8/Compose:		fr_FR.UTF-8
+en_US.UTF-8/Compose:		fr_LU.UTF-8
+en_US.UTF-8/Compose:		ga_IE.UTF-8
+en_US.UTF-8/Compose:		gd_GB.UTF-8
+en_US.UTF-8/Compose:		gl_ES.UTF-8
+en_US.UTF-8/Compose:		gu_IN.UTF-8
+en_US.UTF-8/Compose:		gv_GB.UTF-8
+en_US.UTF-8/Compose:		he_IL.UTF-8
+en_US.UTF-8/Compose:		hi_IN.UTF-8
+en_US.UTF-8/Compose:		hne_IN.UTF-8
+en_US.UTF-8/Compose:		hr_HR.UTF-8
+en_US.UTF-8/Compose:		hu_HU.UTF-8
+en_US.UTF-8/Compose:		hy_AM.UTF-8
+en_US.UTF-8/Compose:		id_ID.UTF-8
+en_US.UTF-8/Compose:		is_IS.UTF-8
+en_US.UTF-8/Compose:		it_CH.UTF-8
+en_US.UTF-8/Compose:		it_IT.UTF-8
+en_US.UTF-8/Compose:		iu_CA.UTF-8
+ja_JP.UTF-8/Compose:		ja_JP.UTF-8
+en_US.UTF-8/Compose:		ka_GE.UTF-8
+en_US.UTF-8/Compose:		kk_KZ.UTF-8
+en_US.UTF-8/Compose:		kl_GL.UTF-8
+km_KH.UTF-8/Compose:		km_KH.UTF-8
+en_US.UTF-8/Compose:		kn_IN.UTF-8
+ko_KR.UTF-8/Compose:		ko_KR.UTF-8
+en_US.UTF-8/Compose:		ks_IN.UTF-8
+en_US.UTF-8/Compose:		ks_IN.UTF-8@devanagari
+en_US.UTF-8/Compose:		ku_TR.UTF-8
+en_US.UTF-8/Compose:		kw_GB.UTF-8
+en_US.UTF-8/Compose:		ky_KG.UTF-8
+en_US.UTF-8/Compose:		lo_LA.UTF-8
+en_US.UTF-8/Compose:		lt_LT.UTF-8
+en_US.UTF-8/Compose:		lv_LV.UTF-8
+en_US.UTF-8/Compose:		mai_IN.UTF-8
+en_US.UTF-8/Compose:		mi_NZ.UTF-8
+en_US.UTF-8/Compose:		mk_MK.UTF-8
+en_US.UTF-8/Compose:		ml_IN.UTF-8
+en_US.UTF-8/Compose:		mr_IN.UTF-8
+en_US.UTF-8/Compose:		ms_MY.UTF-8
+en_US.UTF-8/Compose:		mt_MT.UTF-8
+en_US.UTF-8/Compose:		ne_NP.UTF-8
+en_US.UTF-8/Compose:		nl_BE.UTF-8
+en_US.UTF-8/Compose:		nl_NL.UTF-8
+en_US.UTF-8/Compose:		nn_NO.UTF-8
+en_US.UTF-8/Compose:		no_NO.UTF-8
+en_US.UTF-8/Compose:		nb_NO.UTF-8
+en_US.UTF-8/Compose:		nr_ZA.UTF-8
+en_US.UTF-8/Compose:		nso_ZA.UTF-8
+en_US.UTF-8/Compose:		ny_NO.UTF-8
+en_US.UTF-8/Compose:		oc_FR.UTF-8
+en_US.UTF-8/Compose:		or_IN.UTF-8
+en_US.UTF-8/Compose:		pa_IN.UTF-8
+en_US.UTF-8/Compose:		pa_PK.UTF-8
+en_US.UTF-8/Compose:		pd_DE.UTF-8
+en_US.UTF-8/Compose:		pd_US.UTF-8
+en_US.UTF-8/Compose:		ph_PH.UTF-8
+en_US.UTF-8/Compose:		pl_PL.UTF-8
+en_US.UTF-8/Compose:		pp_AN.UTF-8
+pt_BR.UTF-8/Compose:		pt_BR.UTF-8
+pt_PT.UTF-8/Compose:		pt_PT.UTF-8
+en_US.UTF-8/Compose:		ro_RO.UTF-8
+ru_RU.UTF-8/Compose:		ru_RU.UTF-8
+en_US.UTF-8/Compose:		ru_UA.UTF-8
+en_US.UTF-8/Compose:		rw_RW.UTF-8
+en_US.UTF-8/Compose:		sa_IN.UTF-8
+en_US.UTF-8/Compose:		sd_IN.UTF-8
+en_US.UTF-8/Compose:		sd_IN.UTF-8@devanagari
+en_US.UTF-8/Compose:		se_NO.UTF-8
+en_US.UTF-8/Compose:		sh_BA.UTF-8
+en_US.UTF-8/Compose:		sh_YU.UTF-8
+en_US.UTF-8/Compose:		si_LK.UTF-8
+en_US.UTF-8/Compose:		sk_SK.UTF-8
+en_US.UTF-8/Compose:		sl_SI.UTF-8
+en_US.UTF-8/Compose:		sq_AL.UTF-8
+en_US.UTF-8/Compose:		sr_ME.UTF-8
+en_US.UTF-8/Compose:		sr_RS.UTF-8
+en_US.UTF-8/Compose:		sr_YU.UTF-8
+en_US.UTF-8/Compose:		ss_ZA.UTF-8
+en_US.UTF-8/Compose:		st_ZA.UTF-8
+en_US.UTF-8/Compose:		sv_FI.UTF-8
+en_US.UTF-8/Compose:		sv_SE.UTF-8
+en_US.UTF-8/Compose:		ta_IN.UTF-8
+en_US.UTF-8/Compose:		te_IN.UTF-8
+en_US.UTF-8/Compose:		tg_TJ.UTF-8
+th_TH.UTF-8/Compose:		th_TH.UTF-8
+en_US.UTF-8/Compose:		ti_ER.UTF-8
+en_US.UTF-8/Compose:		ti_ET.UTF-8
+en_US.UTF-8/Compose:		tl_PH.UTF-8
+en_US.UTF-8/Compose:		tn_ZA.UTF-8
+en_US.UTF-8/Compose:		tr_TR.UTF-8
+en_US.UTF-8/Compose:		ts_ZA.UTF-8
+en_US.UTF-8/Compose:		tt_RU.UTF-8
+en_US.UTF-8/Compose:		uk_UA.UTF-8
+en_US.UTF-8/Compose:		ur_IN.UTF-8
+en_US.UTF-8/Compose:		ur_PK.UTF-8
+en_US.UTF-8/Compose:		uz_UZ.UTF-8
+en_US.UTF-8/Compose:		ve_ZA.UTF-8
+en_US.UTF-8/Compose:		vi_VN.UTF-8
+en_US.UTF-8/Compose:		wa_BE.UTF-8
+en_US.UTF-8/Compose:		xh_ZA.UTF-8
+en_US.UTF-8/Compose:		yi_US.UTF-8
+zh_CN.UTF-8/Compose:		zh_CN.UTF-8
+zh_HK.UTF-8/Compose:		zh_HK.UTF-8
+en_US.UTF-8/Compose:		zh_SG.UTF-8
+zh_TW.UTF-8/Compose:		zh_TW.UTF-8
+en_US.UTF-8/Compose:		zu_ZA.UTF-8
diff --git a/test/data/locale/en_US.UTF-8/Compose b/test/data/locale/en_US.UTF-8/Compose
new file mode 100644
index 0000000..6f2f17a
--- /dev/null
+++ b/test/data/locale/en_US.UTF-8/Compose
@@ -0,0 +1,5973 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# UTF-8 (Unicode) compose sequence
+# David.Monniaux@ens.fr
+#
+
+# Part 1 - Manual definitions
+
+# Spacing versions of dead accents
+<dead_tilde> <space>             	: "~"   asciitilde # TILDE
+<dead_tilde> <dead_tilde>        	: "~"   asciitilde # TILDE
+<dead_acute> <space>             	: "'"   apostrophe # APOSTROPHE
+<dead_acute> <dead_acute>        	: "´"   acute # ACUTE ACCENT
+<Multi_key> <apostrophe> <apostrophe> 	: "´"   acute # ACUTE ACCENT
+<dead_grave> <space>             	: "`"   grave # GRAVE ACCENT
+<dead_grave> <dead_grave>        	: "`"   grave # GRAVE ACCENT
+<dead_circumflex> <space>        	: "^"   asciicircum # CIRCUMFLEX ACCENT
+<dead_circumflex> <dead_circumflex> 	: "^"   asciicircum # CIRCUMFLEX ACCENT
+<dead_abovering> <space>         	: "°"   degree # DEGREE SIGN
+<dead_abovering> <dead_abovering> 	: "°"   degree # DEGREE SIGN
+<dead_macron> <space>            	: "¯"   macron # MACRON
+<dead_macron> <dead_macron>      	: "¯"   macron # MACRON
+<Multi_key> <minus> <asciicircum> 	: "¯"   macron # MACRON
+<Multi_key> <asciicircum> <minus> 	: "¯"   macron # MACRON
+<Multi_key> <underscore> <underscore> 	: "¯"   macron # MACRON
+<Multi_key> <underscore> <asciicircum> 	: "¯"   macron # MACRON
+<dead_breve> <space>             	: "˘"   breve # BREVE
+<dead_breve> <dead_breve>        	: "˘"   breve # BREVE
+<Multi_key> <space> <parenleft>		: "˘"   breve # BREVE
+<Multi_key> <parenleft> <space>		: "˘"   breve # BREVE
+<dead_abovedot> <space>          	: "˙"   abovedot # DOT ABOVE
+<dead_abovedot> <dead_abovedot>  	: "˙"   abovedot # DOT ABOVE
+<dead_diaeresis> <dead_diaeresis> 	: "¨"   diaeresis # DIAERESIS
+<Multi_key> <quotedbl> <quotedbl> 	: "¨"   diaeresis # DIAERESIS
+<dead_diaeresis> <space>         	: "\""   quotedbl # REVERSE SOLIDUS
+<dead_doubleacute> <space>       	: "˝"   U2dd # DOUBLE ACUTE ACCENT
+<dead_doubleacute> <dead_doubleacute> 	: "˝"   U2dd # DOUBLE ACUTE ACCENT
+<dead_caron> <space>             	: "ˇ"   caron # CARON
+<dead_caron> <dead_caron>        	: "ˇ"   caron # CARON
+<Multi_key> <space> <less> 		: "ˇ"   caron # CARON
+<Multi_key> <less> <space> 		: "ˇ"   caron # CARON
+<dead_cedilla> <space>           	: "¸"   cedilla # CEDILLA
+<dead_cedilla> <dead_cedilla>    	: "¸"   cedilla # CEDILLA
+<dead_ogonek> <space>            	: "˛"   ogonek # OGONEK
+<dead_ogonek> <dead_ogonek>      	: "˛"   ogonek # OGONEK
+<dead_iota> <space>              	: "ͺ"   U37a # GREEK YPOGEGRAMMENI
+<dead_iota> <dead_iota>          	: "ͺ"   U37a # GREEK YPOGEGRAMMENI
+<Multi_key> <minus> <minus> <space>	: "­"   U00ad # SOFT HYPHEN
+
+
+# ASCII characters that may be difficult to access
+# on some keyboards.
+<Multi_key> <plus> <plus>        	: "#"   numbersign # NUMBER SIGN
+<Multi_key> <apostrophe> <space> 	: "'"   apostrophe # APOSTROPHE
+<Multi_key> <space> <apostrophe> 	: "'"   apostrophe # APOSTROPHE
+<Multi_key> <A> <T>              	: "@"   at # COMMERCIAL AT
+<Multi_key> <parenleft> <parenleft> 	: "["   bracketleft # LEFT SQUARE BRACKET
+<Multi_key> <slash> <slash>      	: "\\"   backslash # REVERSE SOLIDUS
+<Multi_key> <slash> <less>       	: "\\"   backslash # REVERSE SOLIDUS
+<Multi_key> <less> <slash>       	: "\\"   backslash # REVERSE SOLIDUS
+<Multi_key> <parenright> <parenright> 	: "]"   bracketright # RIGHT SQUARE BRACKET
+
+<Multi_key> <asciicircum> <space> 	: "^"   asciicircum # CIRCUMFLEX ACCENT
+<Multi_key> <space> <asciicircum> 	: "^"   asciicircum # CIRCUMFLEX ACCENT
+<Multi_key> <greater> <space>    	: "^"   asciicircum # CIRCUMFLEX ACCENT
+<Multi_key> <space> <greater>    	: "^"   asciicircum # CIRCUMFLEX ACCENT
+
+<Multi_key> <grave> <space>      	: "`"   grave # GRAVE ACCENT
+<Multi_key> <space> <grave>      	: "`"   grave # GRAVE ACCENT
+
+<Multi_key> <comma> <space>      	: "¸"   cedilla # CEDILLA
+<Multi_key> <space> <comma>      	: "¸"   cedilla # CEDILLA
+<Multi_key> <comma> <comma> 		: "¸"   cedilla # CEDILLA
+
+<Multi_key> <parenleft> <minus>  	: "{"   braceleft # LEFT CURLY BRACKET
+<Multi_key> <minus> <parenleft>  	: "{"   braceleft # LEFT CURLY BRACKET
+
+<Multi_key> <slash> <asciicircum> 	: "|"   bar # VERTICAL LINE
+<Multi_key> <asciicircum> <slash> 	: "|"   bar # VERTICAL LINE
+<Multi_key> <V> <L>              	: "|"   bar # VERTICAL LINE
+<Multi_key> <L> <V>              	: "|"   bar # VERTICAL LINE
+<Multi_key> <v> <l>              	: "|"   bar # VERTICAL LINE
+<Multi_key> <l> <v>              	: "|"   bar # VERTICAL LINE
+
+<Multi_key> <parenright> <minus> 	: "}"   braceright # RIGHT CURLY BRACKET
+<Multi_key> <minus> <parenright> 	: "}"   braceright # RIGHT CURLY BRACKET
+
+<Multi_key> <asciitilde> <space> 	: "~"   asciitilde # TILDE
+<Multi_key> <space> <asciitilde> 	: "~"   asciitilde # TILDE
+<Multi_key> <minus> <space>      	: "~"   asciitilde # TILDE
+<Multi_key> <space> <minus>      	: "~"   asciitilde # TILDE
+
+# Spaces
+<Multi_key> <space> <space>      	: " "   nobreakspace # NO-BREAK SPACE
+<Multi_key> <space> <period>     	: " "   U2008 # PUNCTUATION SPACE
+
+<Multi_key> <o> <c>              	: "©"   copyright # COPYRIGHT SIGN
+<Multi_key> <o> <C>              	: "©"   copyright # COPYRIGHT SIGN
+<Multi_key> <O> <c>              	: "©"   copyright # COPYRIGHT SIGN
+<Multi_key> <O> <C>              	: "©"   copyright # COPYRIGHT SIGN
+<Multi_key> <C> <o> 			: "©"   copyright # COPYRIGHT SIGN
+<Multi_key> <C> <O> 			: "©"   copyright # COPYRIGHT SIGN
+
+<Multi_key> <o> <r>              	: "®"   registered # REGISTERED SIGN
+<Multi_key> <o> <R>              	: "®"   registered # REGISTERED SIGN
+<Multi_key> <O> <r>              	: "®"   registered # REGISTERED SIGN
+<Multi_key> <O> <R>              	: "®"   registered # REGISTERED SIGN
+<Multi_key> <R> <O> 			: "®"   registered # REGISTERED SIGN
+
+<Multi_key> <period> <greater>   	: "›"   U203a # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<Multi_key> <period> <less>      	: "‹"   U2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<Multi_key> <period> <period>    	: "…"   ellipsis # HORIZONTAL ELLIPSIS
+<Multi_key> <period> <minus>    	: "·"   periodcentered # MIDDLE DOT
+<Multi_key> <period> <asciicircum> 	: "·"   periodcentered # MIDDLE DOT
+<Multi_key> <asciicircum> <period> 	: "·"   periodcentered # MIDDLE DOT
+<Multi_key> <period> <equal>    	: "•"   enfilledcircbullet # BULLET
+<Multi_key> <exclam> <asciicircum> 	: "¦"   brokenbar # BROKEN BAR
+<Multi_key> <exclam> <exclam>    	: "¡"   exclamdown # INVERTED EXCLAMATION MARK
+<Multi_key> <p> <exclam>         	: "¶"   paragraph # PILCROW SIGN
+<Multi_key> <P> <exclam>         	: "¶"   paragraph # PILCROW SIGN
+<Multi_key> <plus> <minus>       	: "±"   plusminus # PLUS-MINUS SIGN
+<Multi_key> <minus> <plus> 		: "±"   plusminus # PLUS-MINUS SIGN
+<Multi_key> <question> <question> 	: "¿"   questiondown # INVERTED QUESTION MARK
+<Multi_key> <minus> <d>          	: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
+<Multi_key> <minus> <D>          	: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <s> <s>              	: "ß"   ssharp # LATIN SMALL LETTER SHARP S
+<Multi_key> <S> <S>              	: "ẞ"   U1e9e # LATIN CAPITAL LETTER SHARP S
+
+<Multi_key> <o> <e>              	: "œ"   oe # LATIN SMALL LIGATURE OE
+<Multi_key> <O> <E>              	: "Œ"   OE # LATIN CAPITAL LIGATURE OE
+<Multi_key> <a> <e>              	: "æ"   ae # LATIN SMALL LETTER AE
+<Multi_key> <A> <E>              	: "Æ"   AE # LATIN CAPITAL LETTER AE
+<Multi_key> <f> <f>              	: "ff"   Ufb00 # LATIN SMALL LIGATURE FF
+<Multi_key> <f> <i>              	: "fi"   Ufb01 # LATIN SMALL LIGATURE FI
+<Multi_key> <f> <l>              	: "fl"   Ufb02 # LATIN SMALL LIGATURE FL
+<Multi_key> <F> <i>              	: "ffi"   Ufb03 # LATIN SMALL LIGATURE FFI
+<Multi_key> <F> <l>              	: "ffl"   Ufb04 # LATIN SMALL LIGATURE FFL
+<Multi_key> <I> <J>              	: "IJ"   U0132 # LATIN CAPITAL LIGATURE IJ
+<Multi_key> <I> <j>              	: "IJ"   U0132 # LATIN CAPITAL LIGATURE IJ
+<Multi_key> <i> <j>              	: "ij"   U0133 # LATIN SMALL LIGATURE IJ
+
+<Multi_key> <o> <o>              	: "°"   degree # DEGREE SIGN
+<Multi_key> <asterisk> <0> 		: "°"   degree # DEGREE SIGN
+<Multi_key> <0> <asterisk> 		: "°"   degree # DEGREE SIGN
+
+# Quotation marks
+<Multi_key> <less> <less>        	: "«"   guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<Multi_key> <greater> <greater>  	: "»"   guillemotright # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<Multi_key> <less> <apostrophe>  	: "‘"   U2018 # LEFT SINGLE QUOTATION MARK
+<Multi_key> <apostrophe> <less>  	: "‘"   U2018 # LEFT SINGLE QUOTATION MARK
+<Multi_key> <greater> <apostrophe> 	: "’"   U2019 # RIGHT SINGLE QUOTATION MARK
+<Multi_key> <apostrophe> <greater> 	: "’"   U2019 # RIGHT SINGLE QUOTATION MARK
+<Multi_key> <comma> <apostrophe> 	: "‚"   U201a # SINGLE LOW-9 QUOTATION MARK
+<Multi_key> <apostrophe> <comma> 	: "‚"   U201a # SINGLE LOW-9 QUOTATION MARK
+<Multi_key> <less> <quotedbl>    	: "“"   U201c # LEFT DOUBLE QUOTATION MARK
+<Multi_key> <quotedbl> <less>    	: "“"   U201c # LEFT DOUBLE QUOTATION MARK
+<Multi_key> <greater> <quotedbl> 	: "”"   U201d # RIGHT DOUBLE QUOTATION MARK
+<Multi_key> <quotedbl> <greater> 	: "”"   U201d # RIGHT DOUBLE QUOTATION MARK
+<Multi_key> <comma> <quotedbl>   	: "„"   U201e # DOUBLE LOW-9 QUOTATION MARK
+<Multi_key> <quotedbl> <comma>   	: "„"   U201e # DOUBLE LOW-9 QUOTATION MARK
+
+# Per xxx
+<Multi_key> <percent> <o>        	: "‰"   U2030 # PER MILLE SIGN
+
+# Currencies
+<Multi_key> <C> <E>              	: "₠"   U20a0 # EURO-CURRENCY SIGN
+<Multi_key> <C> <slash>          	: "₡"   U20a1 # COLON SIGN
+<Multi_key> <slash> <C>          	: "₡"   U20a1 # COLON SIGN
+<Multi_key> <C> <r>              	: "₢"   U20a2 # CRUZEIRO SIGN
+<Multi_key> <F> <r>              	: "₣"   U20a3 # FRENCH FRANC SIGN
+<Multi_key> <L> <equal>          	: "₤"   U20a4 # LIRA SIGN
+<Multi_key> <equal> <L>          	: "₤"   U20a4 # LIRA SIGN
+<Multi_key> <m> <slash>          	: "₥"   U20a5 # MILL SIGN
+<Multi_key> <slash> <m>          	: "₥"   U20a5 # MILL SIGN
+<Multi_key> <N> <equal>          	: "₦"   U20a6 # NAIRA SIGN
+<Multi_key> <equal> <N>          	: "₦"   U20a6 # NAIRA SIGN
+<Multi_key> <P> <t>              	: "₧"   U20a7 # PESETA SIGN
+<Multi_key> <R> <s>              	: "₨"   U20a8 # RUPEE SIGN
+<Multi_key> <W> <equal>          	: "₩"   U20a9 # WON SIGN
+<Multi_key> <equal> <W>          	: "₩"   U20a9 # WON SIGN
+# "₪" U20aa NEW SHEQEL SIGN
+<Multi_key> <d> <equal>          	: "₫"   U20ab # DONG SIGN
+<Multi_key> <equal> <d>          	: "₫"   U20ab # DONG SIGN
+<Multi_key> <C> <equal>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <C>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <c> <equal>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <c>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <E> <equal>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <E>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <e> <equal>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <e>          	: "€"   EuroSign # EURO SIGN
+<Multi_key> <Cyrillic_ES> <equal>	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <Cyrillic_ES>	: "€"   EuroSign # EURO SIGN
+<Multi_key> <Cyrillic_IE> <equal>	: "€"   EuroSign # EURO SIGN
+<Multi_key> <equal> <Cyrillic_IE>	: "€"   EuroSign # EURO SIGN
+# "₭" U20ad KIP SIGN
+# "₮" U20ae TUGRIK SIGN
+# "₯" U20af DRACHMA SIGN
+# "₰" U20b0 GERMAN PENNY SIGN
+# "₱" U20b1 PESO SIGN
+# "₲" U20b2 GUARANI SIGN
+# "₳" U20b3 AUSTRAL SIGN
+# "₴" U20b4 HRYVNIA SIGN
+# "₵" U20b5 CEDI SIGN
+
+
+<Multi_key> <bar> <C>            	: "¢"   cent # CENT SIGN
+<Multi_key> <bar> <c>            	: "¢"   cent # CENT SIGN
+<Multi_key> <C> <bar>            	: "¢"   cent # CENT SIGN
+<Multi_key> <c> <bar>            	: "¢"   cent # CENT SIGN
+<Multi_key> <c> <slash>          	: "¢"   cent # CENT SIGN
+<Multi_key> <slash> <c>          	: "¢"   cent # CENT SIGN
+<Multi_key> <L> <minus>          	: "£"   sterling # POUND SIGN
+<Multi_key> <l> <minus>          	: "£"   sterling # POUND SIGN
+<Multi_key> <minus> <L>          	: "£"   sterling # POUND SIGN
+<Multi_key> <minus> <l>          	: "£"   sterling # POUND SIGN
+<Multi_key> <Y> <equal>          	: "¥"   yen # YEN SIGN
+<Multi_key> <y> <equal>          	: "¥"   yen # YEN SIGN
+<Multi_key> <equal> <Y>          	: "¥"   yen # YEN SIGN
+<Multi_key> <equal> <y>          	: "¥"   yen # YEN SIGN
+<Multi_key> <Y> <minus> 		: "¥"   yen # YEN SIGN
+<Multi_key> <minus> <Y> 		: "¥"   yen # YEN SIGN
+<Multi_key> <y> <minus> 		: "¥"   yen # YEN SIGN
+<Multi_key> <minus> <y> 		: "¥"   yen # YEN SIGN
+
+# Long S
+<Multi_key> <f> <s>              	: "ſ"   U017f # LATIN SMALL LETTER LONG S
+<Multi_key> <f> <S>              	: "ſ"   U017f # LATIN SMALL LETTER LONG S
+<dead_abovedot> <Multi_key> <f> <s>	: "ẛ"   U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+<Multi_key> <dead_abovedot> <f> <s>	: "ẛ"   U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+
+# Dashes
+<Multi_key> <minus> <minus> <period> 	: "–"   U2013 # EN DASH
+<Multi_key> <minus> <minus> <minus> 	: "—"   U2014 # EM DASH
+
+# Musical alterations
+<Multi_key> <numbersign> <q>    	: "♩"   U2669 # QUARTER NOTE
+<Multi_key> <numbersign> <e>    	: "♪"   U266a # EIGHTH NOTE
+<Multi_key> <numbersign> <E>    	: "♫"   U266b # BEAMED EIGHTH NOTES
+<Multi_key> <numbersign> <S>    	: "♬"   U266c # BEAMED SIXTEENTH NOTES
+<Multi_key> <numbersign> <b>     	: "♭"   U266d # MUSIC FLAT SIGN
+<Multi_key> <numbersign> <f>     	: "♮"   U266e # MUSIC NATURAL SIGN
+<Multi_key> <numbersign> <numbersign> 	: "♯"   U266f # MUSIC SHARP SIGN
+
+# Other symbols
+<Multi_key> <s> <o>              	: "§"   section # SECTION SIGN
+<Multi_key> <o> <s>              	: "§"   section # SECTION SIGN
+<Multi_key> <S> <O> 			: "§"   section # SECTION SIGN
+<Multi_key> <O> <S> 			: "§"   section # SECTION SIGN
+<Multi_key> <s> <exclam> 		: "§"   section # SECTION SIGN
+<Multi_key> <S> <exclam> 		: "§"   section # SECTION SIGN
+<Multi_key> <Cyrillic_pe> <Cyrillic_a>	: "§"   section # SECTION SIGN
+
+<Multi_key> <o> <x>              	: "¤"   currency # CURRENCY SIGN
+<Multi_key> <x> <o>              	: "¤"   currency # CURRENCY SIGN
+<Multi_key> <o> <X> 			: "¤"   currency # CURRENCY SIGN
+<Multi_key> <X> <o> 			: "¤"   currency # CURRENCY SIGN
+<Multi_key> <O> <X> 			: "¤"   currency # CURRENCY SIGN
+<Multi_key> <X> <O> 			: "¤"   currency # CURRENCY SIGN
+<Multi_key> <O> <x> 			: "¤"   currency # CURRENCY SIGN
+<Multi_key> <x> <O> 			: "¤"   currency # CURRENCY SIGN
+
+<Multi_key> <P> <P>              	: "¶"   paragraph # PILCROW SIGN
+
+<Multi_key> <N> <o>			: "№" numerosign # NUMERO SIGN
+<Multi_key> <N> <O>			: "№" numerosign # NUMERO SIGN
+<Multi_key> <Cyrillic_EN> <Cyrillic_o>	: "№" numerosign # NUMERO SIGN
+<Multi_key> <Cyrillic_EN> <Cyrillic_O>	: "№" numerosign # NUMERO SIGN
+
+<Multi_key> <question> <exclam>         : "⸘"   U2E18 # INVERTED INTERROBANG
+<Multi_key> <exclam> <question>         : "‽"   U203D # INTERROBANG
+
+<Multi_key> <C> <C> <C> <P>             : "☭"   U262D # HAMMER AND SICKLE
+<Multi_key> <O> <A>                     : "Ⓐ"   U24B6 # CIRCLED LATIN CAPITAL LETTER A
+<Multi_key> <less> <3>                  : "♥"   U2665 # BLACK HEART SUIT
+
+<Multi_key> <colon> <parenright>        : "☺"   U263A # WHITE SMILING FACE
+<Multi_key> <colon> <parenleft>         : "☹"   U2639 # WHITE FROWNING FACE
+
+# Part 2
+
+# Compose map for Korean Hangul(Choseongul) Conjoining Jamos  automatically
+# generated  from UnicodeData-2.0.14.txt at
+#    ftp://ftp.unicode.org/Public/2.0-Update/UnicodeData-2.0.14.txt
+#   by Jungshik Shin <jshin@jshin.net>  2002-10-17
+# There are some conflicts among sequences, but I left them alone.
+#
+# group 1: cluster jamos made of three basic jamos
+
+
+<Multi_key> <U1100> <U1100> 	: "ᄁ"   U1101 # HANGUL CHOSEONG SSANGKIYEOK
+<Multi_key> <U1103> <U1103> 	: "ᄄ"   U1104 # HANGUL CHOSEONG SSANGTIKEUT
+<Multi_key> <U1107> <U1107> 	: "ᄈ"   U1108 # HANGUL CHOSEONG SSANGPIEUP
+<Multi_key> <U1109> <U1109> 	: "ᄊ"   U110a # HANGUL CHOSEONG SSANGSIOS
+<Multi_key> <U110C> <U110C> 	: "ᄍ"   U110d # HANGUL CHOSEONG SSANGCIEUC
+<Multi_key> <U1102> <U1100> 	: "ᄓ"   U1113 # HANGUL CHOSEONG NIEUN-KIYEOK
+<Multi_key> <U1102> <U1102> 	: "ᄔ"   U1114 # HANGUL CHOSEONG SSANGNIEUN
+<Multi_key> <U1102> <U1103> 	: "ᄕ"   U1115 # HANGUL CHOSEONG NIEUN-TIKEUT
+<Multi_key> <U1102> <U1107> 	: "ᄖ"   U1116 # HANGUL CHOSEONG NIEUN-PIEUP
+<Multi_key> <U1103> <U1100> 	: "ᄗ"   U1117 # HANGUL CHOSEONG TIKEUT-KIYEOK
+<Multi_key> <U1105> <U1102> 	: "ᄘ"   U1118 # HANGUL CHOSEONG RIEUL-NIEUN
+<Multi_key> <U1105> <U1105> 	: "ᄙ"   U1119 # HANGUL CHOSEONG SSANGRIEUL
+<Multi_key> <U1105> <U1112> 	: "ᄚ"   U111a # HANGUL CHOSEONG RIEUL-HIEUH
+<Multi_key> <U1105> <U110B> 	: "ᄛ"   U111b # HANGUL CHOSEONG KAPYEOUNRIEUL
+<Multi_key> <U1106> <U1107> 	: "ᄜ"   U111c # HANGUL CHOSEONG MIEUM-PIEUP
+<Multi_key> <U1106> <U110B> 	: "ᄝ"   U111d # HANGUL CHOSEONG KAPYEOUNMIEUM
+<Multi_key> <U1107> <U1100> 	: "ᄞ"   U111e # HANGUL CHOSEONG PIEUP-KIYEOK
+<Multi_key> <U1107> <U1102> 	: "ᄟ"   U111f # HANGUL CHOSEONG PIEUP-NIEUN
+<Multi_key> <U1107> <U1103> 	: "ᄠ"   U1120 # HANGUL CHOSEONG PIEUP-TIKEUT
+<Multi_key> <U1107> <U1109> 	: "ᄡ"   U1121 # HANGUL CHOSEONG PIEUP-SIOS
+<Multi_key> <U1107> <U110C> 	: "ᄧ"   U1127 # HANGUL CHOSEONG PIEUP-CIEUC
+<Multi_key> <U1107> <U110E> 	: "ᄨ"   U1128 # HANGUL CHOSEONG PIEUP-CHIEUCH
+<Multi_key> <U1107> <U1110> 	: "ᄩ"   U1129 # HANGUL CHOSEONG PIEUP-THIEUTH
+<Multi_key> <U1107> <U1111> 	: "ᄪ"   U112a # HANGUL CHOSEONG PIEUP-PHIEUPH
+<Multi_key> <U1107> <U110B> 	: "ᄫ"   U112b # HANGUL CHOSEONG KAPYEOUNPIEUP
+<Multi_key> <U1109> <U1100> 	: "ᄭ"   U112d # HANGUL CHOSEONG SIOS-KIYEOK
+<Multi_key> <U1109> <U1102> 	: "ᄮ"   U112e # HANGUL CHOSEONG SIOS-NIEUN
+<Multi_key> <U1109> <U1103> 	: "ᄯ"   U112f # HANGUL CHOSEONG SIOS-TIKEUT
+<Multi_key> <U1109> <U1105> 	: "ᄰ"   U1130 # HANGUL CHOSEONG SIOS-RIEUL
+<Multi_key> <U1109> <U1106> 	: "ᄱ"   U1131 # HANGUL CHOSEONG SIOS-MIEUM
+<Multi_key> <U1109> <U1107> 	: "ᄲ"   U1132 # HANGUL CHOSEONG SIOS-PIEUP
+<Multi_key> <U1109> <U110B> 	: "ᄵ"   U1135 # HANGUL CHOSEONG SIOS-IEUNG
+<Multi_key> <U1109> <U110C> 	: "ᄶ"   U1136 # HANGUL CHOSEONG SIOS-CIEUC
+<Multi_key> <U1109> <U110E> 	: "ᄷ"   U1137 # HANGUL CHOSEONG SIOS-CHIEUCH
+<Multi_key> <U1109> <U110F> 	: "ᄸ"   U1138 # HANGUL CHOSEONG SIOS-KHIEUKH
+<Multi_key> <U1109> <U1110> 	: "ᄹ"   U1139 # HANGUL CHOSEONG SIOS-THIEUTH
+<Multi_key> <U1109> <U1111> 	: "ᄺ"   U113a # HANGUL CHOSEONG SIOS-PHIEUPH
+<Multi_key> <U1109> <U1112> 	: "ᄻ"   U113b # HANGUL CHOSEONG SIOS-HIEUH
+<Multi_key> <U113C> <U113C> 	: "ᄽ"   U113d # HANGUL CHOSEONG CHITUEUMSSANGSIOS
+<Multi_key> <U113E> <U113E> 	: "ᄿ"   U113f # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS
+<Multi_key> <U110B> <U1100> 	: "ᅁ"   U1141 # HANGUL CHOSEONG IEUNG-KIYEOK
+<Multi_key> <U110B> <U1103> 	: "ᅂ"   U1142 # HANGUL CHOSEONG IEUNG-TIKEUT
+<Multi_key> <U110B> <U1106> 	: "ᅃ"   U1143 # HANGUL CHOSEONG IEUNG-MIEUM
+<Multi_key> <U110B> <U1107> 	: "ᅄ"   U1144 # HANGUL CHOSEONG IEUNG-PIEUP
+<Multi_key> <U110B> <U1109> 	: "ᅅ"   U1145 # HANGUL CHOSEONG IEUNG-SIOS
+<Multi_key> <U110B> <U1140> 	: "ᅆ"   U1146 # HANGUL CHOSEONG IEUNG-PANSIOS
+<Multi_key> <U110B> <U110B> 	: "ᅇ"   U1147 # HANGUL CHOSEONG SSANGIEUNG
+<Multi_key> <U110B> <U110C> 	: "ᅈ"   U1148 # HANGUL CHOSEONG IEUNG-CIEUC
+<Multi_key> <U110B> <U110E> 	: "ᅉ"   U1149 # HANGUL CHOSEONG IEUNG-CHIEUCH
+<Multi_key> <U110B> <U1110> 	: "ᅊ"   U114a # HANGUL CHOSEONG IEUNG-THIEUTH
+<Multi_key> <U110B> <U1111> 	: "ᅋ"   U114b # HANGUL CHOSEONG IEUNG-PHIEUPH
+<Multi_key> <U110C> <U110B> 	: "ᅍ"   U114d # HANGUL CHOSEONG CIEUC-IEUNG
+<Multi_key> <U114E> <U114E> 	: "ᅏ"   U114f # HANGUL CHOSEONG CHITUEUMSSANGCIEUC
+<Multi_key> <U1150> <U1150> 	: "ᅑ"   U1151 # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC
+<Multi_key> <U110E> <U110F> 	: "ᅒ"   U1152 # HANGUL CHOSEONG CHIEUCH-KHIEUKH
+<Multi_key> <U110E> <U1112> 	: "ᅓ"   U1153 # HANGUL CHOSEONG CHIEUCH-HIEUH
+<Multi_key> <U1111> <U1107> 	: "ᅖ"   U1156 # HANGUL CHOSEONG PHIEUPH-PIEUP
+<Multi_key> <U1111> <U110B> 	: "ᅗ"   U1157 # HANGUL CHOSEONG KAPYEOUNPHIEUPH
+<Multi_key> <U1112> <U1112> 	: "ᅘ"   U1158 # HANGUL CHOSEONG SSANGHIEUH
+<Multi_key> <U1161> <U1175> 	: "ᅢ"   U1162 # HANGUL JUNGSEONG AE
+<Multi_key> <U1163> <U1175> 	: "ᅤ"   U1164 # HANGUL JUNGSEONG YAE
+<Multi_key> <U1165> <U1175> 	: "ᅦ"   U1166 # HANGUL JUNGSEONG E
+<Multi_key> <U1167> <U1175> 	: "ᅨ"   U1168 # HANGUL JUNGSEONG YE
+<Multi_key> <U1169> <U1161> 	: "ᅪ"   U116a # HANGUL JUNGSEONG WA
+<Multi_key> <U1169> <U1175> 	: "ᅬ"   U116c # HANGUL JUNGSEONG OE
+<Multi_key> <U116E> <U1165> 	: "ᅯ"   U116f # HANGUL JUNGSEONG WEO
+<Multi_key> <U116E> <U1175> 	: "ᅱ"   U1171 # HANGUL JUNGSEONG WI
+<Multi_key> <U1173> <U1175> 	: "ᅴ"   U1174 # HANGUL JUNGSEONG YI
+<Multi_key> <U1161> <U1169> 	: "ᅶ"   U1176 # HANGUL JUNGSEONG A-O
+<Multi_key> <U1161> <U116E> 	: "ᅷ"   U1177 # HANGUL JUNGSEONG A-U
+<Multi_key> <U1163> <U1169> 	: "ᅸ"   U1178 # HANGUL JUNGSEONG YA-O
+<Multi_key> <U1163> <U116D> 	: "ᅹ"   U1179 # HANGUL JUNGSEONG YA-YO
+<Multi_key> <U1165> <U1169> 	: "ᅺ"   U117a # HANGUL JUNGSEONG EO-O
+<Multi_key> <U1165> <U116E> 	: "ᅻ"   U117b # HANGUL JUNGSEONG EO-U
+<Multi_key> <U1165> <U1173> 	: "ᅼ"   U117c # HANGUL JUNGSEONG EO-EU
+<Multi_key> <U1167> <U1169> 	: "ᅽ"   U117d # HANGUL JUNGSEONG YEO-O
+<Multi_key> <U1167> <U116E> 	: "ᅾ"   U117e # HANGUL JUNGSEONG YEO-U
+<Multi_key> <U1169> <U1165> 	: "ᅿ"   U117f # HANGUL JUNGSEONG O-EO
+<Multi_key> <U1169> <U1166> 	: "ᆀ"   U1180 # HANGUL JUNGSEONG O-E
+<Multi_key> <U1169> <U1168> 	: "ᆁ"   U1181 # HANGUL JUNGSEONG O-YE
+<Multi_key> <U1169> <U1169> 	: "ᆂ"   U1182 # HANGUL JUNGSEONG O-O
+<Multi_key> <U1169> <U116E> 	: "ᆃ"   U1183 # HANGUL JUNGSEONG O-U
+<Multi_key> <U116D> <U1163> 	: "ᆄ"   U1184 # HANGUL JUNGSEONG YO-YA
+<Multi_key> <U116D> <U1164> 	: "ᆅ"   U1185 # HANGUL JUNGSEONG YO-YAE
+<Multi_key> <U116D> <U1167> 	: "ᆆ"   U1186 # HANGUL JUNGSEONG YO-YEO
+<Multi_key> <U116D> <U1169> 	: "ᆇ"   U1187 # HANGUL JUNGSEONG YO-O
+<Multi_key> <U116D> <U1175> 	: "ᆈ"   U1188 # HANGUL JUNGSEONG YO-I
+<Multi_key> <U116E> <U1161> 	: "ᆉ"   U1189 # HANGUL JUNGSEONG U-A
+<Multi_key> <U116E> <U1162> 	: "ᆊ"   U118a # HANGUL JUNGSEONG U-AE
+<Multi_key> <U116E> <U1168> 	: "ᆌ"   U118c # HANGUL JUNGSEONG U-YE
+<Multi_key> <U116E> <U116E> 	: "ᆍ"   U118d # HANGUL JUNGSEONG U-U
+<Multi_key> <U1172> <U1161> 	: "ᆎ"   U118e # HANGUL JUNGSEONG YU-A
+<Multi_key> <U1172> <U1165> 	: "ᆏ"   U118f # HANGUL JUNGSEONG YU-EO
+<Multi_key> <U1172> <U1166> 	: "ᆐ"   U1190 # HANGUL JUNGSEONG YU-E
+<Multi_key> <U1172> <U1167> 	: "ᆑ"   U1191 # HANGUL JUNGSEONG YU-YEO
+<Multi_key> <U1172> <U1168> 	: "ᆒ"   U1192 # HANGUL JUNGSEONG YU-YE
+<Multi_key> <U1172> <U116E> 	: "ᆓ"   U1193 # HANGUL JUNGSEONG YU-U
+<Multi_key> <U1172> <U1175> 	: "ᆔ"   U1194 # HANGUL JUNGSEONG YU-I
+<Multi_key> <U1173> <U116E> 	: "ᆕ"   U1195 # HANGUL JUNGSEONG EU-U
+<Multi_key> <U1173> <U1173> 	: "ᆖ"   U1196 # HANGUL JUNGSEONG EU-EU
+<Multi_key> <U1174> <U116E> 	: "ᆗ"   U1197 # HANGUL JUNGSEONG YI-U
+<Multi_key> <U1175> <U1161> 	: "ᆘ"   U1198 # HANGUL JUNGSEONG I-A
+<Multi_key> <U1175> <U1163> 	: "ᆙ"   U1199 # HANGUL JUNGSEONG I-YA
+<Multi_key> <U1175> <U1169> 	: "ᆚ"   U119a # HANGUL JUNGSEONG I-O
+<Multi_key> <U1175> <U116E> 	: "ᆛ"   U119b # HANGUL JUNGSEONG I-U
+<Multi_key> <U1175> <U1173> 	: "ᆜ"   U119c # HANGUL JUNGSEONG I-EU
+<Multi_key> <U1175> <U119E> 	: "ᆝ"   U119d # HANGUL JUNGSEONG I-ARAEA
+<Multi_key> <U119E> <U1165> 	: "ᆟ"   U119f # HANGUL JUNGSEONG ARAEA-EO
+<Multi_key> <U119E> <U116E> 	: "ᆠ"   U11a0 # HANGUL JUNGSEONG ARAEA-U
+<Multi_key> <U119E> <U1175> 	: "ᆡ"   U11a1 # HANGUL JUNGSEONG ARAEA-I
+<Multi_key> <U119E> <U119E> 	: "ᆢ"   U11a2 # HANGUL JUNGSEONG SSANGARAEA
+<Multi_key> <U11A8> <U11A8> 	: "ᆩ"   U11a9 # HANGUL JONGSEONG SSANGKIYEOK
+<Multi_key> <U11A8> <U11BA> 	: "ᆪ"   U11aa # HANGUL JONGSEONG KIYEOK-SIOS
+<Multi_key> <U11AB> <U11BD> 	: "ᆬ"   U11ac # HANGUL JONGSEONG NIEUN-CIEUC
+<Multi_key> <U11AB> <U11C2> 	: "ᆭ"   U11ad # HANGUL JONGSEONG NIEUN-HIEUH
+<Multi_key> <U11AF> <U11A8> 	: "ᆰ"   U11b0 # HANGUL JONGSEONG RIEUL-KIYEOK
+<Multi_key> <U11AF> <U11B7> 	: "ᆱ"   U11b1 # HANGUL JONGSEONG RIEUL-MIEUM
+<Multi_key> <U11AF> <U11B8> 	: "ᆲ"   U11b2 # HANGUL JONGSEONG RIEUL-PIEUP
+<Multi_key> <U11AF> <U11BA> 	: "ᆳ"   U11b3 # HANGUL JONGSEONG RIEUL-SIOS
+<Multi_key> <U11AF> <U11C0> 	: "ᆴ"   U11b4 # HANGUL JONGSEONG RIEUL-THIEUTH
+<Multi_key> <U11AF> <U11C1> 	: "ᆵ"   U11b5 # HANGUL JONGSEONG RIEUL-PHIEUPH
+<Multi_key> <U11AF> <U11C2> 	: "ᆶ"   U11b6 # HANGUL JONGSEONG RIEUL-HIEUH
+<Multi_key> <U11B8> <U11BA> 	: "ᆹ"   U11b9 # HANGUL JONGSEONG PIEUP-SIOS
+<Multi_key> <U11BA> <U11BA> 	: "ᆻ"   U11bb # HANGUL JONGSEONG SSANGSIOS
+<Multi_key> <U11A8> <U11AF> 	: "ᇃ"   U11c3 # HANGUL JONGSEONG KIYEOK-RIEUL
+<Multi_key> <U11AB> <U11A8> 	: "ᇅ"   U11c5 # HANGUL JONGSEONG NIEUN-KIYEOK
+<Multi_key> <U11AB> <U11AE> 	: "ᇆ"   U11c6 # HANGUL JONGSEONG NIEUN-TIKEUT
+<Multi_key> <U11AB> <U11BA> 	: "ᇇ"   U11c7 # HANGUL JONGSEONG NIEUN-SIOS
+<Multi_key> <U11AB> <U11EB> 	: "ᇈ"   U11c8 # HANGUL JONGSEONG NIEUN-PANSIOS
+<Multi_key> <U11AB> <U11C0> 	: "ᇉ"   U11c9 # HANGUL JONGSEONG NIEUN-THIEUTH
+<Multi_key> <U11AE> <U11A8> 	: "ᇊ"   U11ca # HANGUL JONGSEONG TIKEUT-KIYEOK
+<Multi_key> <U11AE> <U11AF> 	: "ᇋ"   U11cb # HANGUL JONGSEONG TIKEUT-RIEUL
+<Multi_key> <U11AF> <U11AB> 	: "ᇍ"   U11cd # HANGUL JONGSEONG RIEUL-NIEUN
+<Multi_key> <U11AF> <U11AE> 	: "ᇎ"   U11ce # HANGUL JONGSEONG RIEUL-TIKEUT
+<Multi_key> <U11AF> <U11AF> 	: "ᇐ"   U11d0 # HANGUL JONGSEONG SSANGRIEUL
+<Multi_key> <U11AF> <U11EB> 	: "ᇗ"   U11d7 # HANGUL JONGSEONG RIEUL-PANSIOS
+<Multi_key> <U11AF> <U11BF> 	: "ᇘ"   U11d8 # HANGUL JONGSEONG RIEUL-KHIEUKH
+<Multi_key> <U11AF> <U11F9> 	: "ᇙ"   U11d9 # HANGUL JONGSEONG RIEUL-YEORINHIEUH
+<Multi_key> <U11B7> <U11A8> 	: "ᇚ"   U11da # HANGUL JONGSEONG MIEUM-KIYEOK
+<Multi_key> <U11B7> <U11AF> 	: "ᇛ"   U11db # HANGUL JONGSEONG MIEUM-RIEUL
+<Multi_key> <U11B7> <U11B8> 	: "ᇜ"   U11dc # HANGUL JONGSEONG MIEUM-PIEUP
+<Multi_key> <U11B7> <U11BA> 	: "ᇝ"   U11dd # HANGUL JONGSEONG MIEUM-SIOS
+<Multi_key> <U11B7> <U11EB> 	: "ᇟ"   U11df # HANGUL JONGSEONG MIEUM-PANSIOS
+<Multi_key> <U11B7> <U11BE> 	: "ᇠ"   U11e0 # HANGUL JONGSEONG MIEUM-CHIEUCH
+<Multi_key> <U11B7> <U11C2> 	: "ᇡ"   U11e1 # HANGUL JONGSEONG MIEUM-HIEUH
+<Multi_key> <U11B7> <U11BC> 	: "ᇢ"   U11e2 # HANGUL JONGSEONG KAPYEOUNMIEUM
+<Multi_key> <U11B8> <U11AF> 	: "ᇣ"   U11e3 # HANGUL JONGSEONG PIEUP-RIEUL
+<Multi_key> <U11B8> <U11C1> 	: "ᇤ"   U11e4 # HANGUL JONGSEONG PIEUP-PHIEUPH
+<Multi_key> <U11B8> <U11C2> 	: "ᇥ"   U11e5 # HANGUL JONGSEONG PIEUP-HIEUH
+<Multi_key> <U11B8> <U11BC> 	: "ᇦ"   U11e6 # HANGUL JONGSEONG KAPYEOUNPIEUP
+<Multi_key> <U11BA> <U11A8> 	: "ᇧ"   U11e7 # HANGUL JONGSEONG SIOS-KIYEOK
+<Multi_key> <U11BA> <U11AE> 	: "ᇨ"   U11e8 # HANGUL JONGSEONG SIOS-TIKEUT
+<Multi_key> <U11BA> <U11AF> 	: "ᇩ"   U11e9 # HANGUL JONGSEONG SIOS-RIEUL
+<Multi_key> <U11BA> <U11B8> 	: "ᇪ"   U11ea # HANGUL JONGSEONG SIOS-PIEUP
+<Multi_key> <U11BC> <U11A8> 	: "ᇬ"   U11ec # HANGUL JONGSEONG IEUNG-KIYEOK
+<Multi_key> <U11BC> <U11BC> 	: "ᇮ"   U11ee # HANGUL JONGSEONG SSANGIEUNG
+<Multi_key> <U11BC> <U11BF> 	: "ᇯ"   U11ef # HANGUL JONGSEONG IEUNG-KHIEUKH
+<Multi_key> <U11F0> <U11BA> 	: "ᇱ"   U11f1 # HANGUL JONGSEONG YESIEUNG-SIOS
+<Multi_key> <U11F0> <U11EB> 	: "ᇲ"   U11f2 # HANGUL JONGSEONG YESIEUNG-PANSIOS
+<Multi_key> <U11C1> <U11B8> 	: "ᇳ"   U11f3 # HANGUL JONGSEONG PHIEUPH-PIEUP
+<Multi_key> <U11C1> <U11BC> 	: "ᇴ"   U11f4 # HANGUL JONGSEONG KAPYEOUNPHIEUPH
+<Multi_key> <U11C2> <U11AB> 	: "ᇵ"   U11f5 # HANGUL JONGSEONG HIEUH-NIEUN
+<Multi_key> <U11C2> <U11AF> 	: "ᇶ"   U11f6 # HANGUL JONGSEONG HIEUH-RIEUL
+<Multi_key> <U11C2> <U11B7> 	: "ᇷ"   U11f7 # HANGUL JONGSEONG HIEUH-MIEUM
+<Multi_key> <U11C2> <U11B8> 	: "ᇸ"   U11f8 # HANGUL JONGSEONG HIEUH-PIEUP
+<Multi_key> <U1121> <U1100> 	: "ᄢ"   U1122 # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+<Multi_key> <U1121> <U1103> 	: "ᄣ"   U1123 # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+<Multi_key> <U1121> <U1107> 	: "ᄤ"   U1124 # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+<Multi_key> <U1121> <U1109> 	: "ᄥ"   U1125 # HANGUL CHOSEONG PIEUP-SSANGSIOS
+<Multi_key> <U1121> <U110C> 	: "ᄦ"   U1126 # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+<Multi_key> <U1108> <U110B> 	: "ᄬ"   U112c # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+<Multi_key> <U1132> <U1100> 	: "ᄳ"   U1133 # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+<Multi_key> <U110A> <U1109> 	: "ᄴ"   U1134 # HANGUL CHOSEONG SIOS-SSANGSIOS
+<Multi_key> <U116A> <U1175> 	: "ᅫ"   U116b # HANGUL JUNGSEONG WAE
+<Multi_key> <U116F> <U1175> 	: "ᅰ"   U1170 # HANGUL JUNGSEONG WE
+<Multi_key> <U116F> <U1173> 	: "ᆋ"   U118b # HANGUL JUNGSEONG U-EO-EU
+<Multi_key> <U11AA> <U11A8> 	: "ᇄ"   U11c4 # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+<Multi_key> <U11B0> <U11BA> 	: "ᇌ"   U11cc # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+<Multi_key> <U11CE> <U11C2> 	: "ᇏ"   U11cf # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH
+<Multi_key> <U11B1> <U11A8> 	: "ᇑ"   U11d1 # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+<Multi_key> <U11B1> <U11BA> 	: "ᇒ"   U11d2 # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+<Multi_key> <U11B2> <U11BA> 	: "ᇓ"   U11d3 # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+<Multi_key> <U11B2> <U11C2> 	: "ᇔ"   U11d4 # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+<Multi_key> <U11B2> <U11BC> 	: "ᇕ"   U11d5 # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+<Multi_key> <U11B3> <U11BA> 	: "ᇖ"   U11d6 # HANGUL JONGSEONG RIEUL-SSANGSIOS
+<Multi_key> <U11DD> <U11BA> 	: "ᇞ"   U11de # HANGUL JONGSEONG MIEUM-SSANGSIOS
+<Multi_key> <U11EC> <U11A8> 	: "ᇭ"   U11ed # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+<Multi_key> <U1107> <U112D> 	: "ᄢ"   U1122 # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK
+<Multi_key> <U1107> <U112F> 	: "ᄣ"   U1123 # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT
+<Multi_key> <U1107> <U1132> 	: "ᄤ"   U1124 # HANGUL CHOSEONG PIEUP-SIOS-PIEUP
+<Multi_key> <U1107> <U110A> 	: "ᄥ"   U1125 # HANGUL CHOSEONG PIEUP-SSANGSIOS
+<Multi_key> <U1107> <U1136> 	: "ᄦ"   U1126 # HANGUL CHOSEONG PIEUP-SIOS-CIEUC
+<Multi_key> <U1107> <U112B> 	: "ᄬ"   U112c # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP
+<Multi_key> <U1109> <U111E> 	: "ᄳ"   U1133 # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK
+<Multi_key> <U1109> <U110A> 	: "ᄴ"   U1134 # HANGUL CHOSEONG SIOS-SSANGSIOS
+<Multi_key> <U1169> <U1162> 	: "ᅫ"   U116b # HANGUL JUNGSEONG WAE
+<Multi_key> <U116E> <U1166> 	: "ᅰ"   U1170 # HANGUL JUNGSEONG WE
+<Multi_key> <U116E> <U117C> 	: "ᆋ"   U118b # HANGUL JUNGSEONG U-EO-EU
+<Multi_key> <U11A8> <U11E7> 	: "ᇄ"   U11c4 # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK
+<Multi_key> <U11AF> <U11AA> 	: "ᇌ"   U11cc # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS
+<Multi_key> <U11AF> <U11DA> 	: "ᇑ"   U11d1 # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK
+<Multi_key> <U11AF> <U11DD> 	: "ᇒ"   U11d2 # HANGUL JONGSEONG RIEUL-MIEUM-SIOS
+<Multi_key> <U11AF> <U11B9> 	: "ᇓ"   U11d3 # HANGUL JONGSEONG RIEUL-PIEUP-SIOS
+<Multi_key> <U11AF> <U11E5> 	: "ᇔ"   U11d4 # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH
+<Multi_key> <U11AF> <U11E6> 	: "ᇕ"   U11d5 # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP
+<Multi_key> <U11AF> <U11BB> 	: "ᇖ"   U11d6 # HANGUL JONGSEONG RIEUL-SSANGSIOS
+<Multi_key> <U11B7> <U11BB> 	: "ᇞ"   U11de # HANGUL JONGSEONG MIEUM-SSANGSIOS
+<Multi_key> <U11BC> <U11A9> 	: "ᇭ"   U11ed # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
+
+# Part 3
+<Multi_key> <comma> <minus>      	: "¬"   notsign # NOT SIGN
+<Multi_key> <minus> <comma>      	: "¬"   notsign # NOT SIGN
+<dead_circumflex> <Multi_key> <underscore> <a> 	: "ª"   ordfeminine # FEMININE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underscore> <a> 	: "ª"   ordfeminine # FEMININE ORDINAL INDICATOR
+<dead_circumflex> <Multi_key> <underbar> <a> 	: "ª"   ordfeminine # FEMININE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underbar> <a> 	: "ª"   ordfeminine # FEMININE ORDINAL INDICATOR
+<dead_circumflex> <2>            	: "²"   twosuperior # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <2>    	: "²"   twosuperior # SUPERSCRIPT TWO
+<dead_circumflex> <KP_Space>     	: "²"   twosuperior # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <KP_Space> 	: "²"   twosuperior # SUPERSCRIPT TWO
+<dead_circumflex> <KP_2>         	: "²"   twosuperior # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <KP_2> 	: "²"   twosuperior # SUPERSCRIPT TWO
+<Multi_key> <2> <asciicircum> 		: "²"   twosuperior # SUPERSCRIPT TWO
+<dead_circumflex> <3>            	: "³"   threesuperior # SUPERSCRIPT THREE
+<Multi_key> <asciicircum> <3>    	: "³"   threesuperior # SUPERSCRIPT THREE
+<dead_circumflex> <KP_3>         	: "³"   threesuperior # SUPERSCRIPT THREE
+<Multi_key> <asciicircum> <KP_3> 	: "³"   threesuperior # SUPERSCRIPT THREE
+<Multi_key> <3> <asciicircum> 		: "³"   threesuperior # SUPERSCRIPT THREE
+<Multi_key> <m> <u>              	: "µ"   mu # MICRO SIGN
+<Multi_key> <slash> <u> 		: "µ"   mu # MICRO SIGN
+<Multi_key> <u> <slash> 		: "µ"   mu # MICRO SIGN
+<dead_circumflex> <1>            	: "¹"   onesuperior # SUPERSCRIPT ONE
+<Multi_key> <asciicircum> <1>    	: "¹"   onesuperior # SUPERSCRIPT ONE
+<dead_circumflex> <KP_1>         	: "¹"   onesuperior # SUPERSCRIPT ONE
+<Multi_key> <asciicircum> <KP_1> 	: "¹"   onesuperior # SUPERSCRIPT ONE
+<Multi_key> <1> <asciicircum> 		: "¹"   onesuperior # SUPERSCRIPT ONE
+<dead_circumflex> <Multi_key> <underscore> <o> 	: "º"   masculine # MASCULINE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underscore> <o> 	: "º"   masculine # MASCULINE ORDINAL INDICATOR
+<dead_circumflex> <Multi_key> <underbar> <o> 	: "º"   masculine # MASCULINE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underbar> <o> 	: "º"   masculine # MASCULINE ORDINAL INDICATOR
+<Multi_key> <1> <4>              	: "¼"   onequarter # VULGAR FRACTION ONE QUARTER
+<Multi_key> <1> <2>              	: "½"   onehalf # VULGAR FRACTION ONE HALF
+<Multi_key> <3> <4>              	: "¾"   threequarters # VULGAR FRACTION THREE QUARTERS
+<dead_grave> <A>                 	: "À"   Agrave # LATIN CAPITAL LETTER A WITH GRAVE
+<Multi_key> <grave> <A>          	: "À"   Agrave # LATIN CAPITAL LETTER A WITH GRAVE
+<Multi_key> <A> <grave> 		: "À"   Agrave # LATIN CAPITAL LETTER A WITH GRAVE
+<dead_acute> <A>                 	: "Á"   Aacute # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <acute> <A>          	: "Á"   Aacute # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <apostrophe> <A>     	: "Á"   Aacute # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <A> <apostrophe> 		: "Á"   Aacute # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <A> <acute> 		: "Á"   Aacute # LATIN CAPITAL LETTER A WITH ACUTE
+<dead_circumflex> <A>            	: "Â"   Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <A>    	: "Â"   Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<Multi_key> <greater> <A> 		: "Â"   Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<Multi_key> <A> <greater> 		: "Â"   Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<Multi_key> <A> <asciicircum> 		: "Â"   Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<dead_tilde> <A>                 	: "Ã"   Atilde # LATIN CAPITAL LETTER A WITH TILDE
+<Multi_key> <asciitilde> <A>     	: "Ã"   Atilde # LATIN CAPITAL LETTER A WITH TILDE
+<Multi_key> <A> <asciitilde> 		: "Ã"   Atilde # LATIN CAPITAL LETTER A WITH TILDE
+<dead_diaeresis> <A>             	: "Ä"   Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <A>       	: "Ä"   Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <A> <quotedbl> 		: "Ä"   Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <A> <diaeresis> 		: "Ä"   Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <diaeresis> <A> 		: "Ä"   Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
+<dead_abovering> <A>             	: "Å"   Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
+<Multi_key> <o> <A>              	: "Å"   Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
+<Multi_key> <asterisk> <A> 		: "Å"   Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
+<Multi_key> <A> <asterisk> 		: "Å"   Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
+<Multi_key> <A> <A> 			: "Å"   Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
+<dead_cedilla> <C>               	: "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
+<Multi_key> <comma> <C>          	: "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
+<Multi_key> <C> <comma> 		: "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
+<Multi_key> <cedilla> <C>          	: "Ç"   Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
+<dead_grave> <E>                 	: "È"   Egrave # LATIN CAPITAL LETTER E WITH GRAVE
+<Multi_key> <grave> <E>          	: "È"   Egrave # LATIN CAPITAL LETTER E WITH GRAVE
+<Multi_key> <E> <grave> 		: "È"   Egrave # LATIN CAPITAL LETTER E WITH GRAVE
+<dead_acute> <E>                 	: "É"   Eacute # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <acute> <E>          	: "É"   Eacute # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <apostrophe> <E>     	: "É"   Eacute # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <E> <apostrophe> 		: "É"   Eacute # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <E> <acute> 		: "É"   Eacute # LATIN CAPITAL LETTER E WITH ACUTE
+<dead_circumflex> <E>            	: "Ê"   Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <E>    	: "Ê"   Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<Multi_key> <greater> <E> 		: "Ê"   Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<Multi_key> <E> <greater> 		: "Ê"   Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<Multi_key> <E> <asciicircum> 		: "Ê"   Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<dead_diaeresis> <E>             	: "Ë"   Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <E>       	: "Ë"   Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <E> <quotedbl> 		: "Ë"   Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <E> <diaeresis> 		: "Ë"   Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <diaeresis> <E> 		: "Ë"   Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
+<dead_grave> <I>                 	: "Ì"   Igrave # LATIN CAPITAL LETTER I WITH GRAVE
+<Multi_key> <grave> <I>          	: "Ì"   Igrave # LATIN CAPITAL LETTER I WITH GRAVE
+<Multi_key> <I> <grave> 		: "Ì"   Igrave # LATIN CAPITAL LETTER I WITH GRAVE
+<dead_acute> <I>                 	: "Í"   Iacute # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <acute> <I>          	: "Í"   Iacute # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <I> <acute> 		: "Í"   Iacute # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <apostrophe> <I>     	: "Í"   Iacute # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <I> <apostrophe> 		: "Í"   Iacute # LATIN CAPITAL LETTER I WITH ACUTE
+<dead_circumflex> <I>            	: "Î"   Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <I>    	: "Î"   Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<Multi_key> <I> <asciicircum> 		: "Î"   Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<Multi_key> <greater> <I> 		: "Î"   Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<Multi_key> <I> <greater> 		: "Î"   Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<dead_diaeresis> <I>             	: "Ï"   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <I>       	: "Ï"   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <I> <quotedbl> 		: "Ï"   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <diaeresis> <I> 		: "Ï"   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <I> <diaeresis> 		: "Ï"   Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
+<dead_acute> <J>	 		: "J́"    # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <apostrophe> <J> 		: "J́"    # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <J> <apostrophe> 		: "J́"    # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <acute> <J> 		: "J́"    # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <J> <acute> 		: "J́"    # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <D> <H>              	: "Ð"   ETH # LATIN CAPITAL LETTER ETH
+<dead_tilde> <N>                 	: "Ñ"   Ntilde # LATIN CAPITAL LETTER N WITH TILDE
+<Multi_key> <asciitilde> <N>     	: "Ñ"   Ntilde # LATIN CAPITAL LETTER N WITH TILDE
+<Multi_key> <N> <asciitilde> 		: "Ñ"   Ntilde # LATIN CAPITAL LETTER N WITH TILDE
+<dead_grave> <O>                 	: "Ò"   Ograve # LATIN CAPITAL LETTER O WITH GRAVE
+<Multi_key> <grave> <O>          	: "Ò"   Ograve # LATIN CAPITAL LETTER O WITH GRAVE
+<Multi_key> <O> <grave> 		: "Ò"   Ograve # LATIN CAPITAL LETTER O WITH GRAVE
+<dead_acute> <O>                 	: "Ó"   Oacute # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <acute> <O>          	: "Ó"   Oacute # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <O> <acute> 		: "Ó"   Oacute # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <apostrophe> <O>     	: "Ó"   Oacute # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <O> <apostrophe>     	: "Ó"   Oacute # LATIN CAPITAL LETTER O WITH ACUTE
+<dead_circumflex> <O>            	: "Ô"   Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <O>    	: "Ô"   Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<Multi_key> <O> <asciicircum> 		: "Ô"   Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<Multi_key> <greater> <O> 		: "Ô"   Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<Multi_key> <O> <greater> 		: "Ô"   Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<dead_tilde> <O>                 	: "Õ"   Otilde # LATIN CAPITAL LETTER O WITH TILDE
+<Multi_key> <asciitilde> <O>     	: "Õ"   Otilde # LATIN CAPITAL LETTER O WITH TILDE
+<Multi_key> <O> <asciitilde> 		: "Õ"   Otilde # LATIN CAPITAL LETTER O WITH TILDE
+<dead_diaeresis> <O>             	: "Ö"   Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <O>       	: "Ö"   Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <O> <quotedbl> 		: "Ö"   Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <diaeresis> <O> 		: "Ö"   Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <O> <diaeresis> 		: "Ö"   Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <x> <x>              	: "×"   multiply # MULTIPLICATION SIGN
+<dead_stroke> <O>               	: "Ø"   Oslash # LATIN CAPITAL LETTER O WITH STROKE
+<Multi_key> <slash> <O>          	: "Ø"   Oslash # LATIN CAPITAL LETTER O WITH STROKE
+<Multi_key> <O> <slash> 		: "Ø"   Oslash # LATIN CAPITAL LETTER O WITH STROKE
+<Multi_key> <KP_Divide> <O>      	: "Ø"   Oslash # LATIN CAPITAL LETTER O WITH STROKE
+<dead_grave> <U>                 	: "Ù"   Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
+<Multi_key> <grave> <U>          	: "Ù"   Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
+<Multi_key> <U> <grave> 		: "Ù"   Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
+<dead_acute> <U>                 	: "Ú"   Uacute # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <acute> <U>          	: "Ú"   Uacute # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <U> <acute> 		: "Ú"   Uacute # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <apostrophe> <U>     	: "Ú"   Uacute # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <U> <apostrophe> 		: "Ú"   Uacute # LATIN CAPITAL LETTER U WITH ACUTE
+<dead_circumflex> <U>            	: "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <U>    	: "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<Multi_key> <U> <asciicircum> 		: "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<Multi_key> <greater> <U> 		: "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<Multi_key> <U> <greater> 		: "Û"   Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<dead_diaeresis> <U>             	: "Ü"   Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <U>       	: "Ü"   Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <U> <quotedbl> 		: "Ü"   Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <diaeresis> <U> 		: "Ü"   Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <U> <diaeresis> 		: "Ü"   Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
+<dead_acute> <Y>                 	: "Ý"   Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <acute> <Y>          	: "Ý"   Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <Y> <acute> 		: "Ý"   Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <apostrophe> <Y>     	: "Ý"   Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <Y> <apostrophe> 		: "Ý"   Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <T> <H>              	: "Þ"   THORN # LATIN CAPITAL LETTER THORN
+<dead_grave> <a>                 	: "à"   agrave # LATIN SMALL LETTER A WITH GRAVE
+<Multi_key> <grave> <a>          	: "à"   agrave # LATIN SMALL LETTER A WITH GRAVE
+<Multi_key> <a> <grave> 		: "à"   agrave # LATIN SMALL LETTER A WITH GRAVE
+<dead_acute> <a>                 	: "á"   aacute # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <acute> <a>          	: "á"   aacute # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <a> <acute> 		: "á"   aacute # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <apostrophe> <a>     	: "á"   aacute # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <a> <apostrophe> 		: "á"   aacute # LATIN SMALL LETTER A WITH ACUTE
+<dead_circumflex> <a>            	: "â"   acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <a>    	: "â"   acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<Multi_key> <a> <asciicircum> 		: "â"   acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<Multi_key> <greater> <a> 		: "â"   acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<Multi_key> <a> <greater> 		: "â"   acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<dead_tilde> <a>                 	: "ã"   atilde # LATIN SMALL LETTER A WITH TILDE
+<Multi_key> <asciitilde> <a>     	: "ã"   atilde # LATIN SMALL LETTER A WITH TILDE
+<Multi_key> <a> <asciitilde> 		: "ã"   atilde # LATIN SMALL LETTER A WITH TILDE
+<dead_diaeresis> <a>             	: "ä"   adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <a>       	: "ä"   adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
+<Multi_key> <a> <quotedbl> 		: "ä"   adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
+<Multi_key> <diaeresis> <a> 		: "ä"   adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
+<Multi_key> <a> <diaeresis> 		: "ä"   adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
+<dead_abovering> <a>             	: "å"   aring # LATIN SMALL LETTER A WITH RING ABOVE
+<Multi_key> <o> <a>              	: "å"   aring # LATIN SMALL LETTER A WITH RING ABOVE
+<Multi_key> <asterisk> <a> 		: "å"   aring # LATIN SMALL LETTER A WITH RING ABOVE
+<Multi_key> <a> <asterisk> 		: "å"   aring # LATIN SMALL LETTER A WITH RING ABOVE
+<Multi_key> <a> <a> 			: "å"   aring # LATIN SMALL LETTER A WITH RING ABOVE
+<dead_cedilla> <c>               	: "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA
+<Multi_key> <comma> <c>          	: "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA
+<Multi_key> <c> <comma> 		: "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA
+<Multi_key> <cedilla> <c>          	: "ç"   ccedilla # LATIN SMALL LETTER C WITH CEDILLA
+<dead_grave> <e>                 	: "è"   egrave # LATIN SMALL LETTER E WITH GRAVE
+<Multi_key> <grave> <e>          	: "è"   egrave # LATIN SMALL LETTER E WITH GRAVE
+<Multi_key> <e> <grave> 		: "è"   egrave # LATIN SMALL LETTER E WITH GRAVE
+<dead_acute> <e>                 	: "é"   eacute # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <acute> <e>          	: "é"   eacute # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <e> <acute> 		: "é"   eacute # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <apostrophe> <e>     	: "é"   eacute # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <e> <apostrophe> 		: "é"   eacute # LATIN SMALL LETTER E WITH ACUTE
+<dead_circumflex> <e>            	: "ê"   ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <e>    	: "ê"   ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<Multi_key> <e> <asciicircum> 		: "ê"   ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<Multi_key> <greater> <e> 		: "ê"   ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<Multi_key> <e> <greater> 		: "ê"   ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<dead_diaeresis> <e>             	: "ë"   ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <e>       	: "ë"   ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
+<Multi_key> <e> <quotedbl> 		: "ë"   ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
+<Multi_key> <diaeresis> <e> 		: "ë"   ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
+<Multi_key> <e> <diaeresis> 		: "ë"   ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
+<dead_grave> <i>                 	: "ì"   igrave # LATIN SMALL LETTER I WITH GRAVE
+<Multi_key> <grave> <i>          	: "ì"   igrave # LATIN SMALL LETTER I WITH GRAVE
+<Multi_key> <i> <grave> 		: "ì"   igrave # LATIN SMALL LETTER I WITH GRAVE
+<dead_acute> <i>                 	: "í"   iacute # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <acute> <i>          	: "í"   iacute # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <i> <acute> 		: "í"   iacute # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <apostrophe> <i>     	: "í"   iacute # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <i> <apostrophe> 		: "í"   iacute # LATIN SMALL LETTER I WITH ACUTE
+<dead_circumflex> <i>            	: "î"   icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <i>    	: "î"   icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<Multi_key> <i> <asciicircum> 		: "î"   icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<Multi_key> <greater> <i> 		: "î"   icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<Multi_key> <i> <greater> 		: "î"   icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<dead_diaeresis> <i>             	: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <i>       	: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <i> <quotedbl> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <diaeresis> <i> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <i> <diaeresis> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
+<dead_acute> <j>	 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <apostrophe> <j> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <j> <apostrophe> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <acute> <j> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <j> <acute> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
+<Multi_key> <d> <h>              	: "ð"   eth # LATIN SMALL LETTER ETH
+<dead_tilde> <n>                 	: "ñ"   ntilde # LATIN SMALL LETTER N WITH TILDE
+<Multi_key> <asciitilde> <n>     	: "ñ"   ntilde # LATIN SMALL LETTER N WITH TILDE
+<Multi_key> <n> <asciitilde> 		: "ñ"   ntilde # LATIN SMALL LETTER N WITH TILDE
+<dead_grave> <o>                 	: "ò"   ograve # LATIN SMALL LETTER O WITH GRAVE
+<Multi_key> <grave> <o>          	: "ò"   ograve # LATIN SMALL LETTER O WITH GRAVE
+<Multi_key> <o> <grave> 		: "ò"   ograve # LATIN SMALL LETTER O WITH GRAVE
+<dead_acute> <o>                 	: "ó"   oacute # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <acute> <o>          	: "ó"   oacute # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <o> <acute> 		: "ó"   oacute # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <apostrophe> <o>     	: "ó"   oacute # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <o> <apostrophe>     	: "ó"   oacute # LATIN SMALL LETTER O WITH ACUTE
+<dead_circumflex> <o>            	: "ô"   ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <o>    	: "ô"   ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<Multi_key> <o> <asciicircum> 		: "ô"   ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<Multi_key> <greater> <o> 		: "ô"   ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<Multi_key> <o> <greater> 		: "ô"   ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<dead_tilde> <o>                 	: "õ"   otilde # LATIN SMALL LETTER O WITH TILDE
+<Multi_key> <asciitilde> <o>     	: "õ"   otilde # LATIN SMALL LETTER O WITH TILDE
+<Multi_key> <o> <asciitilde> 		: "õ"   otilde # LATIN SMALL LETTER O WITH TILDE
+<dead_diaeresis> <o>             	: "ö"   odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <o> <diaeresis> 		: "ö"   odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <diaeresis> <o> 		: "ö"   odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <o>       	: "ö"   odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <o> <quotedbl> 		: "ö"   odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <colon> <minus>      	: "÷"   division # DIVISION SIGN
+<Multi_key> <minus> <colon>      	: "÷"   division # DIVISION SIGN
+<dead_stroke> <o>               	: "ø"   oslash # LATIN SMALL LETTER O WITH STROKE
+<Multi_key> <slash> <o>          	: "ø"   oslash # LATIN SMALL LETTER O WITH STROKE
+<Multi_key> <o> <slash>		   	: "ø"   oslash # LATIN SMALL LETTER O WITH STROKE
+<Multi_key> <KP_Divide> <o>      	: "ø"   oslash # LATIN SMALL LETTER O WITH STROKE
+<dead_grave> <u>                 	: "ù"   ugrave # LATIN SMALL LETTER U WITH GRAVE
+<Multi_key> <grave> <u>          	: "ù"   ugrave # LATIN SMALL LETTER U WITH GRAVE
+<Multi_key> <u> <grave> 		: "ù"   ugrave # LATIN SMALL LETTER U WITH GRAVE
+<dead_acute> <u>                 	: "ú"   uacute # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <acute> <u>          	: "ú"   uacute # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <u> <acute> 		: "ú"   uacute # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <apostrophe> <u>     	: "ú"   uacute # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <u> <apostrophe> 		: "ú"   uacute # LATIN SMALL LETTER U WITH ACUTE
+<dead_circumflex> <u>            	: "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <u>    	: "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<Multi_key> <u> <asciicircum> 		: "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<Multi_key> <greater> <u> 		: "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<Multi_key> <u> <greater> 		: "û"   ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<dead_diaeresis> <u>             	: "ü"   udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <u>       	: "ü"   udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
+<Multi_key> <u> <quotedbl> 		: "ü"   udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
+<Multi_key> <diaeresis> <u> 		: "ü"   udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
+<Multi_key> <u> <diaeresis> 		: "ü"   udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
+<dead_acute> <y>                 	: "ý"   yacute # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <acute> <y>          	: "ý"   yacute # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <y> <acute> 		: "ý"   yacute # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <apostrophe> <y>     	: "ý"   yacute # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <y> <apostrophe> 		: "ý"   yacute # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <t> <h>              	: "þ"   thorn # LATIN SMALL LETTER THORN
+<dead_diaeresis> <y>             	: "ÿ"   ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
+<Multi_key> <quotedbl> <y>       	: "ÿ"   ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
+<Multi_key> <y> <quotedbl> 		: "ÿ"   ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
+<Multi_key> <diaeresis> <y> 		: "ÿ"   ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
+<Multi_key> <y> <diaeresis> 		: "ÿ"   ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
+<dead_macron> <A>                	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <macron> <A>         	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <underscore> <A>     	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <A> <underscore>     	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <minus> <A>          	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <A> <minus>          	: "Ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<dead_macron> <a>                	: "ā"   U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <macron> <a>         	: "ā"   U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <underscore> <a>     	: "ā"   U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <a> <underscore>     	: "ā"   U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <minus> <a>          	: "ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <a> <minus>          	: "ā"   U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<dead_breve> <A>                 	: "Ă"   U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<Multi_key> <U> <A>              	: "Ă"   U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<Multi_key> <b> <A>              	: "Ă"   U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<Multi_key> <A> <parenleft> 		: "Ă"   U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<dead_breve> <a>                 	: "ă"   U0103 # LATIN SMALL LETTER A WITH BREVE
+<Multi_key> <U> <a>              	: "ă"   U0103 # LATIN SMALL LETTER A WITH BREVE
+<Multi_key> <b> <a>              	: "ă"   U0103 # LATIN SMALL LETTER A WITH BREVE
+<Multi_key> <a> <parenleft> 		: "ă"   U0103 # LATIN SMALL LETTER A WITH BREVE
+<dead_ogonek> <A>                	: "Ą"   U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<Multi_key> <semicolon> <A>      	: "Ą"   U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<Multi_key> <comma> <A>         	: "Ą"   U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<Multi_key> <A> <comma> 		: "Ą"   U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<dead_ogonek> <a>                	: "ą"   U0105 # LATIN SMALL LETTER A WITH OGONEK
+<Multi_key> <semicolon> <a>      	: "ą"   U0105 # LATIN SMALL LETTER A WITH OGONEK
+<Multi_key> <comma> <a>         	: "ą"   U0105 # LATIN SMALL LETTER A WITH OGONEK
+<Multi_key> <a> <comma> 		: "ą"   U0105 # LATIN SMALL LETTER A WITH OGONEK
+<dead_acute> <C>                 	: "Ć"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<Multi_key> <acute> <C>          	: "Ć"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<Multi_key> <apostrophe> <C>     	: "Ć"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<Multi_key> <C> <apostrophe> 		: "Ć"   U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<dead_acute> <c>                 	: "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE
+<Multi_key> <acute> <c>          	: "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE
+<Multi_key> <apostrophe> <c>     	: "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE
+<Multi_key> <c> <apostrophe> 		: "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE
+<dead_circumflex> <C>            	: "Ĉ"   U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <C>    	: "Ĉ"   U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+<dead_circumflex> <c>            	: "ĉ"   U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <c>    	: "ĉ"   U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
+<dead_abovedot> <C>              	: "Ċ"   U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<Multi_key> <period> <C>         	: "Ċ"   U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<Multi_key> <C> <period> 		: "Ċ"   U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<dead_abovedot> <c>              	: "ċ"   U010B # LATIN SMALL LETTER C WITH DOT ABOVE
+<Multi_key> <period> <c>         	: "ċ"   U010B # LATIN SMALL LETTER C WITH DOT ABOVE
+<Multi_key> <c> <period> 		: "ċ"   U010B # LATIN SMALL LETTER C WITH DOT ABOVE
+<dead_caron> <C>                 	: "Č"   U010C # LATIN CAPITAL LETTER C WITH CARON
+<Multi_key> <c> <C>              	: "Č"   U010C # LATIN CAPITAL LETTER C WITH CARON
+<Multi_key> <less> <C> 			: "Č"   U010C # LATIN CAPITAL LETTER C WITH CARON
+<Multi_key> <C> <less> 			: "Č"   U010C # LATIN CAPITAL LETTER C WITH CARON
+<dead_caron> <c>                 	: "č"   U010D # LATIN SMALL LETTER C WITH CARON
+<Multi_key> <c> <c>              	: "č"   U010D # LATIN SMALL LETTER C WITH CARON
+<Multi_key> <less> <c> 			: "č"   U010D # LATIN SMALL LETTER C WITH CARON
+<Multi_key> <c> <less> 			: "č"   U010D # LATIN SMALL LETTER C WITH CARON
+<dead_caron> <D>                 	: "Ď"   U010E # LATIN CAPITAL LETTER D WITH CARON
+<Multi_key> <c> <D>              	: "Ď"   U010E # LATIN CAPITAL LETTER D WITH CARON
+<Multi_key> <less> <D> 			: "Ď"   U010E # LATIN CAPITAL LETTER D WITH CARON
+<Multi_key> <D> <less> 			: "Ď"   U010E # LATIN CAPITAL LETTER D WITH CARON
+<dead_caron> <d>                 	: "ď"   U010F # LATIN SMALL LETTER D WITH CARON
+<Multi_key> <c> <d>              	: "ď"   U010F # LATIN SMALL LETTER D WITH CARON
+<Multi_key> <less> <d> 			: "ď"   U010F # LATIN SMALL LETTER D WITH CARON
+<Multi_key> <d> <less> 			: "ď"   U010F # LATIN SMALL LETTER D WITH CARON
+<dead_stroke> <D>               	: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <slash> <D>          	: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <KP_Divide> <D>      	: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <D> <minus> 		: "Đ"   Dstroke # LATIN CAPITAL LETTER D WITH STROKE
+<dead_stroke> <d>               	: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
+<Multi_key> <slash> <d>          	: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
+<Multi_key> <d> <minus> 		: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
+<Multi_key> <KP_Divide> <d>      	: "đ"   dstroke # LATIN SMALL LETTER D WITH STROKE
+<dead_macron> <E>                	: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <macron> <E>         	: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <underscore> <E>     	: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <E> <underscore> 		: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <minus> <E> 		: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <E> <minus> 		: "Ē"   U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<dead_macron> <e>                	: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <macron> <e>         	: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <underscore> <e>     	: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <e> <underscore> 		: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <minus> <e> 		: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <e> <minus> 		: "ē"   U0113 # LATIN SMALL LETTER E WITH MACRON
+<dead_breve> <E>                 	: "Ĕ"   U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<Multi_key> <U> <E>              	: "Ĕ"   U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<Multi_key> <b> <E>              	: "Ĕ"   U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<dead_breve> <e>                 	: "ĕ"   U0115 # LATIN SMALL LETTER E WITH BREVE
+<Multi_key> <U> <e>              	: "ĕ"   U0115 # LATIN SMALL LETTER E WITH BREVE
+<Multi_key> <b> <e>              	: "ĕ"   U0115 # LATIN SMALL LETTER E WITH BREVE
+<dead_abovedot> <E>              	: "Ė"   U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<Multi_key> <period> <E>         	: "Ė"   U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<Multi_key> <E> <period> 		: "Ė"   U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<dead_abovedot> <e>              	: "ė"   U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
+<Multi_key> <period> <e>         	: "ė"   U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
+<Multi_key> <e> <period> 		: "ė"   U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
+<dead_ogonek> <E>                	: "Ę"   U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<Multi_key> <semicolon> <E>      	: "Ę"   U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<Multi_key> <comma> <E>          	: "Ę"   U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<Multi_key> <E> <comma> 		: "Ę"   U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<dead_ogonek> <e>                	: "ę"   U0119 # LATIN SMALL LETTER E WITH OGONEK
+<Multi_key> <semicolon> <e>      	: "ę"   U0119 # LATIN SMALL LETTER E WITH OGONEK
+<Multi_key> <comma> <e>          	: "ę"   U0119 # LATIN SMALL LETTER E WITH OGONEK
+<Multi_key> <e> <comma> 		: "ę"   U0119 # LATIN SMALL LETTER E WITH OGONEK
+<dead_caron> <E>                 	: "Ě"   U011A # LATIN CAPITAL LETTER E WITH CARON
+<Multi_key> <c> <E>              	: "Ě"   U011A # LATIN CAPITAL LETTER E WITH CARON
+<Multi_key> <less> <E> 			: "Ě"   U011A # LATIN CAPITAL LETTER E WITH CARON
+<Multi_key> <E> <less> 			: "Ě"   U011A # LATIN CAPITAL LETTER E WITH CARON
+<dead_caron> <e>                 	: "ě"   U011B # LATIN SMALL LETTER E WITH CARON
+<Multi_key> <c> <e>              	: "ě"   U011B # LATIN SMALL LETTER E WITH CARON
+<Multi_key> <less> <e> 			: "ě"   U011B # LATIN SMALL LETTER E WITH CARON
+<Multi_key> <e> <less> 			: "ě"   U011B # LATIN SMALL LETTER E WITH CARON
+<dead_circumflex> <G>            	: "Ĝ"   U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <G>    	: "Ĝ"   U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+<dead_circumflex> <g>            	: "ĝ"   U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <g>    	: "ĝ"   U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
+<dead_breve> <G>                 	: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <U> <G>              	: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <G> <U> 			: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <b> <G>              	: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <breve> <G> 		: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <G> <breve> 		: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <G> <parenleft> 		: "Ğ"   U011E # LATIN CAPITAL LETTER G WITH BREVE
+<dead_breve> <g>                 	: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <U> <g>              	: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <g> <U> 			: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <b> <g>              	: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <breve> <g> 		: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <g> <breve> 		: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <g> <parenleft> 		: "ğ"   U011F # LATIN SMALL LETTER G WITH BREVE
+<dead_abovedot> <G>              	: "Ġ"   U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<Multi_key> <period> <G>         	: "Ġ"   U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<Multi_key> <G> <period> 		: "Ġ"   U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<dead_abovedot> <g>              	: "ġ"   U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+<Multi_key> <period> <g>         	: "ġ"   U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+<Multi_key> <g> <period> 		: "ġ"   U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+<dead_cedilla> <G>               	: "Ģ"   U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<Multi_key> <comma> <G>          	: "Ģ"   U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<Multi_key> <G> <comma> 		: "Ģ"   U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<Multi_key> <cedilla> <G>          	: "Ģ"   U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<dead_cedilla> <g>               	: "ģ"   U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<Multi_key> <comma> <g>          	: "ģ"   U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<Multi_key> <g> <comma> 		: "ģ"   U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<Multi_key> <cedilla> <g>          	: "ģ"   U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<dead_circumflex> <H>            	: "Ĥ"   U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <H>    	: "Ĥ"   U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+<dead_circumflex> <h>            	: "ĥ"   U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <h>    	: "ĥ"   U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
+<dead_stroke> <H>               	: "Ħ"   U0126 # LATIN CAPITAL LETTER H WITH STROKE
+<Multi_key> <slash> <H>          	: "Ħ"   U0126 # LATIN CAPITAL LETTER H WITH STROKE
+<Multi_key> <KP_Divide> <H>      	: "Ħ"   U0126 # LATIN CAPITAL LETTER H WITH STROKE
+<dead_stroke> <h>               	: "ħ"   U0127 # LATIN SMALL LETTER H WITH STROKE
+<Multi_key> <slash> <h>          	: "ħ"   U0127 # LATIN SMALL LETTER H WITH STROKE
+<Multi_key> <KP_Divide> <h>      	: "ħ"   U0127 # LATIN SMALL LETTER H WITH STROKE
+<dead_tilde> <I>                 	: "Ĩ"   U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<Multi_key> <asciitilde> <I>     	: "Ĩ"   U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<Multi_key> <I> <asciitilde> 		: "Ĩ"   U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<dead_tilde> <i>                 	: "ĩ"   U0129 # LATIN SMALL LETTER I WITH TILDE
+<Multi_key> <asciitilde> <i>     	: "ĩ"   U0129 # LATIN SMALL LETTER I WITH TILDE
+<Multi_key> <i> <asciitilde> 		: "ĩ"   U0129 # LATIN SMALL LETTER I WITH TILDE
+<dead_macron> <I>                	: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <macron> <I>         	: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <underscore> <I>     	: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <I> <underscore> 		: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <minus> <I> 		: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <I> <minus> 		: "Ī"   U012A # LATIN CAPITAL LETTER I WITH MACRON
+<dead_macron> <i>                	: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <macron> <i>         	: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <underscore> <i>     	: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <i> <underscore> 		: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <minus> <i> 		: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <i> <minus> 		: "ī"   U012B # LATIN SMALL LETTER I WITH MACRON
+<dead_breve> <I>                 	: "Ĭ"   U012C # LATIN CAPITAL LETTER I WITH BREVE
+<Multi_key> <U> <I>              	: "Ĭ"   U012C # LATIN CAPITAL LETTER I WITH BREVE
+<Multi_key> <b> <I>              	: "Ĭ"   U012C # LATIN CAPITAL LETTER I WITH BREVE
+<dead_breve> <i>                 	: "ĭ"   U012D # LATIN SMALL LETTER I WITH BREVE
+<Multi_key> <U> <i>              	: "ĭ"   U012D # LATIN SMALL LETTER I WITH BREVE
+<Multi_key> <b> <i>              	: "ĭ"   U012D # LATIN SMALL LETTER I WITH BREVE
+<dead_ogonek> <I>                	: "Į"   U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<Multi_key> <semicolon> <I>      	: "Į"   U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<Multi_key> <comma> <I>         	: "Į"   U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<Multi_key> <I> <comma> 		: "Į"   U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<dead_ogonek> <i>                	: "į"   U012F # LATIN SMALL LETTER I WITH OGONEK
+<Multi_key> <semicolon> <i>      	: "į"   U012F # LATIN SMALL LETTER I WITH OGONEK
+<Multi_key> <i> <semicolon>	  	: "į"   U012F # LATIN SMALL LETTER I WITH OGONEK
+<Multi_key> <comma> <i>         	: "į"   U012F # LATIN SMALL LETTER I WITH OGONEK
+<Multi_key> <i> <comma>		 	: "į"   U012F # LATIN SMALL LETTER I WITH OGONEK
+<dead_abovedot> <I>              	: "İ"   U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<Multi_key> <period> <I>         	: "İ"   U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<Multi_key> <I> <period> 		: "İ"   U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<dead_abovedot> <i>              	: "ı"   U0131 # LATIN SMALL LETTER DOTLESS I
+<Multi_key> <i> <period>         	: "ı"   U0131 # LATIN SMALL LETTER DOTLESS I
+<Multi_key> <period> <i> 		: "ı"   U0131 # LATIN SMALL LETTER DOTLESS I
+<dead_circumflex> <J>            	: "Ĵ"   U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <J>    	: "Ĵ"   U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+<dead_circumflex> <j>            	: "ĵ"   U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <j>    	: "ĵ"   U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
+<dead_cedilla> <K>               	: "Ķ"   U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<Multi_key> <comma> <K>          	: "Ķ"   U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<Multi_key> <K> <comma> 		: "Ķ"   U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<Multi_key> <cedilla> <K>          	: "Ķ"   U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<dead_cedilla> <k>               	: "ķ"   U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <comma> <k>          	: "ķ"   U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <k> <comma> 		: "ķ"   U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <cedilla> <k>          	: "ķ"   U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <k> <k>              	: "ĸ"   U0138 # LATIN SMALL LETTER KRA
+<dead_acute> <L>                 	: "Ĺ"   U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<Multi_key> <acute> <L>          	: "Ĺ"   U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<Multi_key> <apostrophe> <L>     	: "Ĺ"   U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<Multi_key> <L> <apostrophe> 		: "Ĺ"   U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<dead_acute> <l>                 	: "ĺ"   U013A # LATIN SMALL LETTER L WITH ACUTE
+<Multi_key> <acute> <l>          	: "ĺ"   U013A # LATIN SMALL LETTER L WITH ACUTE
+<Multi_key> <apostrophe> <l>     	: "ĺ"   U013A # LATIN SMALL LETTER L WITH ACUTE
+<Multi_key> <l> <apostrophe> 		: "ĺ"   U013A # LATIN SMALL LETTER L WITH ACUTE
+<dead_cedilla> <L>               	: "Ļ"   U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<Multi_key> <comma> <L>          	: "Ļ"   U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<Multi_key> <L> <comma> 		: "Ļ"   U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<Multi_key> <cedilla> <L>          	: "Ļ"   U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<dead_cedilla> <l>               	: "ļ"   U013C # LATIN SMALL LETTER L WITH CEDILLA
+<Multi_key> <comma> <l>          	: "ļ"   U013C # LATIN SMALL LETTER L WITH CEDILLA
+<Multi_key> <l> <comma> 		: "ļ"   U013C # LATIN SMALL LETTER L WITH CEDILLA
+<Multi_key> <cedilla> <l>          	: "ļ"   U013C # LATIN SMALL LETTER L WITH CEDILLA
+<dead_caron> <L>                 	: "Ľ"   U013D # LATIN CAPITAL LETTER L WITH CARON
+<Multi_key> <c> <L>              	: "Ľ"   U013D # LATIN CAPITAL LETTER L WITH CARON
+<Multi_key> <less> <L> 			: "Ľ"   U013D # LATIN CAPITAL LETTER L WITH CARON
+<Multi_key> <L> <less> 			: "Ľ"   U013D # LATIN CAPITAL LETTER L WITH CARON
+<dead_caron> <l>                 	: "ľ"   U013E # LATIN SMALL LETTER L WITH CARON
+<Multi_key> <c> <l>              	: "ľ"   U013E # LATIN SMALL LETTER L WITH CARON
+<Multi_key> <less> <l> 			: "ľ"   U013E # LATIN SMALL LETTER L WITH CARON
+<Multi_key> <l> <less> 			: "ľ"   U013E # LATIN SMALL LETTER L WITH CARON
+<dead_stroke> <L>               	: "Ł"   U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<Multi_key> <slash> <L>          	: "Ł"   U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<Multi_key> <L> <slash> 		: "Ł"   U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<Multi_key> <KP_Divide> <L>      	: "Ł"   U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<dead_stroke> <l>               	: "ł"   U0142 # LATIN SMALL LETTER L WITH STROKE
+<Multi_key> <slash> <l>          	: "ł"   U0142 # LATIN SMALL LETTER L WITH STROKE
+<Multi_key> <l> <slash> 		: "ł"   U0142 # LATIN SMALL LETTER L WITH STROKE
+<Multi_key> <KP_Divide> <l>      	: "ł"   U0142 # LATIN SMALL LETTER L WITH STROKE
+<dead_acute> <N>                 	: "Ń"   U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<Multi_key> <acute> <N>          	: "Ń"   U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<Multi_key> <apostrophe> <N>     	: "Ń"   U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<Multi_key> <N> <apostrophe> 		: "Ń"   U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<dead_acute> <n>                 	: "ń"   U0144 # LATIN SMALL LETTER N WITH ACUTE
+<Multi_key> <acute> <n>          	: "ń"   U0144 # LATIN SMALL LETTER N WITH ACUTE
+<Multi_key> <apostrophe> <n>     	: "ń"   U0144 # LATIN SMALL LETTER N WITH ACUTE
+<Multi_key> <n> <apostrophe> 		: "ń"   U0144 # LATIN SMALL LETTER N WITH ACUTE
+<dead_cedilla> <N>               	: "Ņ"   U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<Multi_key> <comma> <N>          	: "Ņ"   U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<Multi_key> <N> <comma> 		: "Ņ"   U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<Multi_key> <cedilla> <N>          	: "Ņ"   U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<dead_cedilla> <n>               	: "ņ"   U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<Multi_key> <comma> <n>          	: "ņ"   U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<Multi_key> <n> <comma> 		: "ņ"   U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<Multi_key> <cedilla> <n>          	: "ņ"   U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<dead_caron> <N>                 	: "Ň"   U0147 # LATIN CAPITAL LETTER N WITH CARON
+<Multi_key> <c> <N>              	: "Ň"   U0147 # LATIN CAPITAL LETTER N WITH CARON
+<Multi_key> <less> <N> 			: "Ň"   U0147 # LATIN CAPITAL LETTER N WITH CARON
+<Multi_key> <N> <less> 			: "Ň"   U0147 # LATIN CAPITAL LETTER N WITH CARON
+<dead_caron> <n>                 	: "ň"   U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <c> <n>              	: "ň"   U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <less> <n> 			: "ň"   U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <n> <less> 			: "ň"   U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <N> <G>              	: "Ŋ"   U014A # LATIN CAPITAL LETTER ENG
+<Multi_key> <n> <g>              	: "ŋ"   U014B # LATIN SMALL LETTER ENG
+<dead_macron> <O>                	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <macron> <O>         	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <underscore> <O>     	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <O> <underscore>     	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <minus> <O>         	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <O> <minus>         	: "Ō"   U014C # LATIN CAPITAL LETTER O WITH MACRON
+<dead_macron> <o>                	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <macron> <o>         	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <underscore> <o>     	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <o> <underscore>     	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <minus> <o>         	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <o> <minus>         	: "ō"   U014D # LATIN SMALL LETTER O WITH MACRON
+<dead_breve> <O>                 	: "Ŏ"   U014E # LATIN CAPITAL LETTER O WITH BREVE
+<Multi_key> <U> <O>              	: "Ŏ"   U014E # LATIN CAPITAL LETTER O WITH BREVE
+<Multi_key> <b> <O>              	: "Ŏ"   U014E # LATIN CAPITAL LETTER O WITH BREVE
+<dead_breve> <o>                 	: "ŏ"   U014F # LATIN SMALL LETTER O WITH BREVE
+<Multi_key> <U> <o>              	: "ŏ"   U014F # LATIN SMALL LETTER O WITH BREVE
+<Multi_key> <b> <o>              	: "ŏ"   U014F # LATIN SMALL LETTER O WITH BREVE
+<dead_doubleacute> <O>           	: "Ő"   U0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<Multi_key> <equal> <O>          	: "Ő"   U0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<dead_doubleacute> <o>           	: "ő"   U0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<Multi_key> <equal> <o>          	: "ő"   U0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<dead_acute> <R>                 	: "Ŕ"   U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<Multi_key> <acute> <R>          	: "Ŕ"   U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<Multi_key> <apostrophe> <R>     	: "Ŕ"   U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<Multi_key> <R> <apostrophe> 		: "Ŕ"   U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<dead_acute> <r>                 	: "ŕ"   U0155 # LATIN SMALL LETTER R WITH ACUTE
+<Multi_key> <acute> <r>          	: "ŕ"   U0155 # LATIN SMALL LETTER R WITH ACUTE
+<Multi_key> <apostrophe> <r>     	: "ŕ"   U0155 # LATIN SMALL LETTER R WITH ACUTE
+<Multi_key> <r> <apostrophe> 		: "ŕ"   U0155 # LATIN SMALL LETTER R WITH ACUTE
+<dead_cedilla> <R>               	: "Ŗ"   U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<Multi_key> <comma> <R>          	: "Ŗ"   U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<Multi_key> <R> <comma> 		: "Ŗ"   U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<Multi_key> <cedilla> <R>          	: "Ŗ"   U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<dead_cedilla> <r>               	: "ŗ"   U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<Multi_key> <comma> <r>          	: "ŗ"   U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<Multi_key> <r> <comma> 		: "ŗ"   U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<Multi_key> <cedilla> <r>          	: "ŗ"   U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<dead_caron> <R>                 	: "Ř"   U0158 # LATIN CAPITAL LETTER R WITH CARON
+<Multi_key> <c> <R>              	: "Ř"   U0158 # LATIN CAPITAL LETTER R WITH CARON
+<Multi_key> <less> <R> 			: "Ř"   U0158 # LATIN CAPITAL LETTER R WITH CARON
+<Multi_key> <R> <less> 			: "Ř"   U0158 # LATIN CAPITAL LETTER R WITH CARON
+<dead_caron> <r>                 	: "ř"   U0159 # LATIN SMALL LETTER R WITH CARON
+<Multi_key> <c> <r>              	: "ř"   U0159 # LATIN SMALL LETTER R WITH CARON
+<Multi_key> <less> <r> 			: "ř"   U0159 # LATIN SMALL LETTER R WITH CARON
+<Multi_key> <r> <less> 			: "ř"   U0159 # LATIN SMALL LETTER R WITH CARON
+<dead_acute> <S>                 	: "Ś"   U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<Multi_key> <acute> <S>          	: "Ś"   U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<Multi_key> <apostrophe> <S>     	: "Ś"   U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<Multi_key> <S> <apostrophe> 		: "Ś"   U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<dead_acute> <s>                 	: "ś"   U015B # LATIN SMALL LETTER S WITH ACUTE
+<Multi_key> <acute> <s>          	: "ś"   U015B # LATIN SMALL LETTER S WITH ACUTE
+<Multi_key> <apostrophe> <s>     	: "ś"   U015B # LATIN SMALL LETTER S WITH ACUTE
+<Multi_key> <s> <apostrophe> 		: "ś"   U015B # LATIN SMALL LETTER S WITH ACUTE
+<dead_circumflex> <S>            	: "Ŝ"   U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <S>    	: "Ŝ"   U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+<dead_circumflex> <s>            	: "ŝ"   U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <s>    	: "ŝ"   U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
+<dead_cedilla> <S>               	: "Ş"   U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<Multi_key> <comma> <S>          	: "Ş"   U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<Multi_key> <S> <comma> 		: "Ş"   U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<Multi_key> <cedilla> <S>          	: "Ş"   U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<dead_cedilla> <s>               	: "ş"   U015F # LATIN SMALL LETTER S WITH CEDILLA
+<Multi_key> <comma> <s>          	: "ş"   U015F # LATIN SMALL LETTER S WITH CEDILLA
+<Multi_key> <s> <comma> 		: "ş"   U015F # LATIN SMALL LETTER S WITH CEDILLA
+<Multi_key> <cedilla> <s>          	: "ş"   U015F # LATIN SMALL LETTER S WITH CEDILLA
+<Multi_key> <s> <cedilla> 		: "ş"   U015F # LATIN SMALL LETTER S WITH CEDILLA
+<dead_caron> <S>                 	: "Š"   U0160 # LATIN CAPITAL LETTER S WITH CARON
+<Multi_key> <c> <S>              	: "Š"   U0160 # LATIN CAPITAL LETTER S WITH CARON
+<Multi_key> <less> <S> 			: "Š"   U0160 # LATIN CAPITAL LETTER S WITH CARON
+<Multi_key> <S> <less> 			: "Š"   U0160 # LATIN CAPITAL LETTER S WITH CARON
+<dead_caron> <s>                 	: "š"   U0161 # LATIN SMALL LETTER S WITH CARON
+<Multi_key> <c> <s>              	: "š"   U0161 # LATIN SMALL LETTER S WITH CARON
+<Multi_key> <less> <s> 			: "š"   U0161 # LATIN SMALL LETTER S WITH CARON
+<Multi_key> <s> <less> 			: "š"   U0161 # LATIN SMALL LETTER S WITH CARON
+<dead_cedilla> <T>               	: "Ţ"   U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<Multi_key> <comma> <T>          	: "Ţ"   U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<Multi_key> <T> <comma>          	: "Ţ"   U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<Multi_key> <cedilla> <T>          	: "Ţ"   U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<dead_cedilla> <t>               	: "ţ"   U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<Multi_key> <comma> <t>          	: "ţ"   U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<Multi_key> <t> <comma>          	: "ţ"   U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<Multi_key> <cedilla> <t>          	: "ţ"   U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<dead_caron> <T>                 	: "Ť"   U0164 # LATIN CAPITAL LETTER T WITH CARON
+<Multi_key> <c> <T>              	: "Ť"   U0164 # LATIN CAPITAL LETTER T WITH CARON
+<Multi_key> <less> <T> 			: "Ť"   U0164 # LATIN CAPITAL LETTER T WITH CARON
+<Multi_key> <T> <less> 			: "Ť"   U0164 # LATIN CAPITAL LETTER T WITH CARON
+<dead_caron> <t>                 	: "ť"   U0165 # LATIN SMALL LETTER T WITH CARON
+<Multi_key> <c> <t>              	: "ť"   U0165 # LATIN SMALL LETTER T WITH CARON
+<Multi_key> <less> <t> 			: "ť"   U0165 # LATIN SMALL LETTER T WITH CARON
+<Multi_key> <t> <less> 			: "ť"   U0165 # LATIN SMALL LETTER T WITH CARON
+<dead_stroke> <T>               	: "Ŧ"   U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <slash> <T>          	: "Ŧ"   U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <KP_Divide> <T>      	: "Ŧ"   U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <T> <slash> 		: "Ŧ"   U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <T> <minus> 		: "Ŧ"   U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<dead_stroke> <t>               	: "ŧ"   U0167 # LATIN SMALL LETTER T WITH STROKE
+<Multi_key> <slash> <t>          	: "ŧ"   U0167 # LATIN SMALL LETTER T WITH STROKE
+<Multi_key> <KP_Divide> <t>      	: "ŧ"   U0167 # LATIN SMALL LETTER T WITH STROKE
+<Multi_key> <t> <slash> 		: "ŧ"   U0167 # LATIN SMALL LETTER T WITH STROKE
+<Multi_key> <t> <minus> 		: "ŧ"   U0167 # LATIN SMALL LETTER T WITH STROKE
+<dead_tilde> <U>                 	: "Ũ"   U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<Multi_key> <asciitilde> <U>     	: "Ũ"   U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<Multi_key> <U> <asciitilde> 		: "Ũ"   U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<dead_tilde> <u>                 	: "ũ"   U0169 # LATIN SMALL LETTER U WITH TILDE
+<Multi_key> <asciitilde> <u>     	: "ũ"   U0169 # LATIN SMALL LETTER U WITH TILDE
+<Multi_key> <u> <asciitilde> 		: "ũ"   U0169 # LATIN SMALL LETTER U WITH TILDE
+<dead_macron> <U>                	: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <macron> <U>         	: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <underscore> <U>     	: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <U> <underscore> 		: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <minus> <U> 		: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <U> <minus> 		: "Ū"   U016A # LATIN CAPITAL LETTER U WITH MACRON
+<dead_macron> <u>                	: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <macron> <u>         	: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <underscore> <u>     	: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <u> <underscore> 		: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <minus> <u> 		: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <u> <minus> 		: "ū"   U016B # LATIN SMALL LETTER U WITH MACRON
+<dead_breve> <U>                 	: "Ŭ"   U016C # LATIN CAPITAL LETTER U WITH BREVE
+<Multi_key> <U> <U>              	: "Ŭ"   U016C # LATIN CAPITAL LETTER U WITH BREVE
+<Multi_key> <b> <U>              	: "Ŭ"   U016C # LATIN CAPITAL LETTER U WITH BREVE
+<dead_breve> <u>                 	: "ŭ"   U016D # LATIN SMALL LETTER U WITH BREVE
+<Multi_key> <U> <u>              	: "ŭ"   U016D # LATIN SMALL LETTER U WITH BREVE
+<Multi_key> <u> <u>              	: "ŭ"   U016D # LATIN SMALL LETTER U WITH BREVE
+<Multi_key> <b> <u>              	: "ŭ"   U016D # LATIN SMALL LETTER U WITH BREVE
+<dead_abovering> <U>             	: "Ů"   U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<Multi_key> <o> <U>              	: "Ů"   U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<Multi_key> <asterisk> <U> 		: "Ů"   U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<Multi_key> <U> <asterisk> 		: "Ů"   U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<dead_abovering> <u>             	: "ů"   U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<Multi_key> <o> <u>              	: "ů"   U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<Multi_key> <asterisk> <u> 		: "ů"   U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<Multi_key> <u> <asterisk> 		: "ů"   U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<dead_doubleacute> <U>           	: "Ű"   U0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <U>          	: "Ű"   U0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<dead_doubleacute> <u>           	: "ű"   U0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <u>          	: "ű"   U0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<dead_ogonek> <U>                	: "Ų"   U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<Multi_key> <semicolon> <U>      	: "Ų"   U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<Multi_key> <comma> <U>         	: "Ų"   U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<Multi_key> <U> <comma> 		: "Ų"   U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<dead_ogonek> <u>                	: "ų"   U0173 # LATIN SMALL LETTER U WITH OGONEK
+<Multi_key> <semicolon> <u>      	: "ų"   U0173 # LATIN SMALL LETTER U WITH OGONEK
+<Multi_key> <comma> <u>         	: "ų"   U0173 # LATIN SMALL LETTER U WITH OGONEK
+<Multi_key> <u> <comma> 		: "ų"   U0173 # LATIN SMALL LETTER U WITH OGONEK
+<dead_circumflex> <W>            	: "Ŵ"   U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <W>    	: "Ŵ"   U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<Multi_key> <W> <asciicircum> 		: "Ŵ"   U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<dead_circumflex> <w>            	: "ŵ"   U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <w>    	: "ŵ"   U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<Multi_key> <w> <asciicircum> 		: "ŵ"   U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<dead_circumflex> <Y>            	: "Ŷ"   U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <Y>    	: "Ŷ"   U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <Y> <asciicircum> 		: "Ŷ"   U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<dead_circumflex> <y>            	: "ŷ"   U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <y>    	: "ŷ"   U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <y> <asciicircum> 		: "ŷ"   U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<dead_diaeresis> <Y>             	: "Ÿ"   U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<Multi_key> <quotedbl> <Y>       	: "Ÿ"   U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<Multi_key> <Y> <quotedbl> 		: "Ÿ"   U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<Multi_key> <diaeresis> <Y> 		: "Ÿ"   U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<Multi_key> <Y> <diaeresis> 		: "Ÿ"   U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<dead_acute> <Z>                 	: "Ź"   U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<Multi_key> <acute> <Z>          	: "Ź"   U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<Multi_key> <apostrophe> <Z>     	: "Ź"   U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<Multi_key> <Z> <apostrophe>		: "Ź"   U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<dead_acute> <z>                 	: "ź"   U017A # LATIN SMALL LETTER Z WITH ACUTE
+<Multi_key> <acute> <z>          	: "ź"   U017A # LATIN SMALL LETTER Z WITH ACUTE
+<Multi_key> <apostrophe> <z>     	: "ź"   U017A # LATIN SMALL LETTER Z WITH ACUTE
+<Multi_key> <z> <apostrophe>		: "ź"   U017A # LATIN SMALL LETTER Z WITH ACUTE
+<dead_abovedot> <Z>              	: "Ż"   U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<Multi_key> <period> <Z>         	: "Ż"   U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<Multi_key> <Z> <period> 		: "Ż"   U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<dead_abovedot> <z>              	: "ż"   U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+<Multi_key> <period> <z>         	: "ż"   U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+<Multi_key> <z> <period> 		: "ż"   U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+<dead_caron> <Z>                 	: "Ž"   U017D # LATIN CAPITAL LETTER Z WITH CARON
+<Multi_key> <c> <Z>              	: "Ž"   U017D # LATIN CAPITAL LETTER Z WITH CARON
+<Multi_key> <v> <Z> 			: "Ž"   U017D # LATIN CAPITAL LETTER Z WITH CARON
+<Multi_key> <less> <Z> 			: "Ž"   U017D # LATIN CAPITAL LETTER Z WITH CARON
+<Multi_key> <Z> <less> 			: "Ž"   U017D # LATIN CAPITAL LETTER Z WITH CARON
+<dead_caron> <z>                 	: "ž"   U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <c> <z>              	: "ž"   U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <v> <z> 			: "ž"   U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <less> <z> 			: "ž"   U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <z> <less> 			: "ž"   U017E # LATIN SMALL LETTER Z WITH CARON
+<dead_stroke> <b>               	: "ƀ"   U0180 # LATIN SMALL LETTER B WITH STROKE
+<Multi_key> <slash> <b>          	: "ƀ"   U0180 # LATIN SMALL LETTER B WITH STROKE
+<Multi_key> <KP_Divide> <b>      	: "ƀ"   U0180 # LATIN SMALL LETTER B WITH STROKE
+<dead_stroke> <I>               	: "Ɨ"   U0197 # LATIN CAPITAL LETTER I WITH STROKE
+<Multi_key> <slash> <I>          	: "Ɨ"   U0197 # LATIN CAPITAL LETTER I WITH STROKE
+<Multi_key> <KP_Divide> <I>      	: "Ɨ"   U0197 # LATIN CAPITAL LETTER I WITH STROKE
+<dead_horn> <O>                  	: "Ơ"   U01A0 # LATIN CAPITAL LETTER O WITH HORN
+<Multi_key> <plus> <O>           	: "Ơ"   U01A0 # LATIN CAPITAL LETTER O WITH HORN
+<dead_horn> <o>                  	: "ơ"   U01A1 # LATIN SMALL LETTER O WITH HORN
+<Multi_key> <plus> <o>           	: "ơ"   U01A1 # LATIN SMALL LETTER O WITH HORN
+<dead_horn> <U>                  	: "Ư"   U01AF # LATIN CAPITAL LETTER U WITH HORN
+<Multi_key> <plus> <U>           	: "Ư"   U01AF # LATIN CAPITAL LETTER U WITH HORN
+<dead_horn> <u>                  	: "ư"   U01B0 # LATIN SMALL LETTER U WITH HORN
+<Multi_key> <plus> <u>           	: "ư"   U01B0 # LATIN SMALL LETTER U WITH HORN
+<dead_stroke> <Z>               	: "Ƶ"   U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
+<Multi_key> <slash> <Z>          	: "Ƶ"   U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
+<Multi_key> <KP_Divide> <Z>      	: "Ƶ"   U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
+<dead_stroke> <z>               	: "ƶ"   U01B6 # LATIN SMALL LETTER Z WITH STROKE
+<Multi_key> <slash> <z>          	: "ƶ"   U01B6 # LATIN SMALL LETTER Z WITH STROKE
+<Multi_key> <KP_Divide> <z>      	: "ƶ"   U01B6 # LATIN SMALL LETTER Z WITH STROKE
+<dead_caron> <A>                 	: "Ǎ"   U01CD # LATIN CAPITAL LETTER A WITH CARON
+<Multi_key> <c> <A>              	: "Ǎ"   U01CD # LATIN CAPITAL LETTER A WITH CARON
+<dead_caron> <a>                 	: "ǎ"   U01CE # LATIN SMALL LETTER A WITH CARON
+<Multi_key> <c> <a>              	: "ǎ"   U01CE # LATIN SMALL LETTER A WITH CARON
+<dead_caron> <I>                 	: "Ǐ"   U01CF # LATIN CAPITAL LETTER I WITH CARON
+<Multi_key> <c> <I>              	: "Ǐ"   U01CF # LATIN CAPITAL LETTER I WITH CARON
+<dead_caron> <i>                 	: "ǐ"   U01D0 # LATIN SMALL LETTER I WITH CARON
+<Multi_key> <c> <i>              	: "ǐ"   U01D0 # LATIN SMALL LETTER I WITH CARON
+<dead_caron> <O>                 	: "Ǒ"   U01D1 # LATIN CAPITAL LETTER O WITH CARON
+<Multi_key> <c> <O>              	: "Ǒ"   U01D1 # LATIN CAPITAL LETTER O WITH CARON
+<dead_caron> <o>                 	: "ǒ"   U01D2 # LATIN SMALL LETTER O WITH CARON
+<Multi_key> <c> <o>              	: "ǒ"   U01D2 # LATIN SMALL LETTER O WITH CARON
+<dead_caron> <U>                 	: "Ǔ"   U01D3 # LATIN CAPITAL LETTER U WITH CARON
+<Multi_key> <c> <U>              	: "Ǔ"   U01D3 # LATIN CAPITAL LETTER U WITH CARON
+<dead_caron> <u>                 	: "ǔ"   U01D4 # LATIN SMALL LETTER U WITH CARON
+<Multi_key> <c> <u>              	: "ǔ"   U01D4 # LATIN SMALL LETTER U WITH CARON
+<dead_macron> <Udiaeresis>           	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Udiaeresis>    	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Udiaeresis> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <U> 	: "Ǖ"   U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <udiaeresis>       	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <udiaeresis> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <udiaeresis> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <u> 	: "ǖ"   U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_acute> <Udiaeresis>            	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <Udiaeresis>     	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <Udiaeresis> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <U> 	: "Ǘ"   U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <udiaeresis>        	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <udiaeresis> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <udiaeresis> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <u> 	: "ǘ"   U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_caron> <Udiaeresis>            	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <Udiaeresis>         	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <dead_diaeresis> <U> 	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <Multi_key> <quotedbl> <U> 	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <dead_diaeresis> <U> 	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <quotedbl> <U>   	: "Ǚ"   U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <udiaeresis>        	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <udiaeresis>     	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <dead_diaeresis> <u> 	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <Multi_key> <quotedbl> <u> 	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <dead_diaeresis> <u> 	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <quotedbl> <u>   	: "ǚ"   U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_grave> <Udiaeresis>            	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <Udiaeresis>     	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <dead_diaeresis> <U> 	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <Multi_key> <quotedbl> <U> 	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <dead_diaeresis> <U> 	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <quotedbl> <U> 	: "Ǜ"   U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <udiaeresis>        	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <udiaeresis> 	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <dead_diaeresis> <u> 	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <Multi_key> <quotedbl> <u> 	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <dead_diaeresis> <u> 	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <quotedbl> <u> 	: "ǜ"   U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_macron> <Adiaeresis>       	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Adiaeresis> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Adiaeresis> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <A> 	: "Ǟ"   U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <adiaeresis>       	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <adiaeresis> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <adiaeresis> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <a> 	: "ǟ"   U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <U0226>           	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U0226>    	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U0226> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <A> 	: "Ǡ"   U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <U0227>           	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U0227>    	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U0227> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <a> 	: "ǡ"   U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <AE>               	: "Ǣ"   U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<Multi_key> <macron> <AE>        	: "Ǣ"   U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<Multi_key> <underscore> <AE>    	: "Ǣ"   U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<dead_macron> <ae>               	: "ǣ"   U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<Multi_key> <macron> <ae>        	: "ǣ"   U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<Multi_key> <underscore> <ae>    	: "ǣ"   U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<dead_stroke> <G>               	: "Ǥ"   U01E4 # LATIN CAPITAL LETTER G WITH STROKE
+<Multi_key> <slash> <G>          	: "Ǥ"   U01E4 # LATIN CAPITAL LETTER G WITH STROKE
+<Multi_key> <KP_Divide> <G>      	: "Ǥ"   U01E4 # LATIN CAPITAL LETTER G WITH STROKE
+<dead_stroke> <g>               	: "ǥ"   U01E5 # LATIN SMALL LETTER G WITH STROKE
+<Multi_key> <slash> <g>          	: "ǥ"   U01E5 # LATIN SMALL LETTER G WITH STROKE
+<Multi_key> <KP_Divide> <g>      	: "ǥ"   U01E5 # LATIN SMALL LETTER G WITH STROKE
+<dead_caron> <G>                 	: "Ǧ"   U01E6 # LATIN CAPITAL LETTER G WITH CARON
+<Multi_key> <c> <G>              	: "Ǧ"   U01E6 # LATIN CAPITAL LETTER G WITH CARON
+<dead_caron> <g>                 	: "ǧ"   U01E7 # LATIN SMALL LETTER G WITH CARON
+<Multi_key> <c> <g>              	: "ǧ"   U01E7 # LATIN SMALL LETTER G WITH CARON
+<dead_caron> <K>                 	: "Ǩ"   U01E8 # LATIN CAPITAL LETTER K WITH CARON
+<Multi_key> <c> <K>              	: "Ǩ"   U01E8 # LATIN CAPITAL LETTER K WITH CARON
+<dead_caron> <k>                 	: "ǩ"   U01E9 # LATIN SMALL LETTER K WITH CARON
+<Multi_key> <c> <k>              	: "ǩ"   U01E9 # LATIN SMALL LETTER K WITH CARON
+<dead_ogonek> <O>                	: "Ǫ"   U01EA # LATIN CAPITAL LETTER O WITH OGONEK
+<Multi_key> <semicolon> <O>      	: "Ǫ"   U01EA # LATIN CAPITAL LETTER O WITH OGONEK
+<dead_ogonek> <o>                	: "ǫ"   U01EB # LATIN SMALL LETTER O WITH OGONEK
+<Multi_key> <semicolon> <o>      	: "ǫ"   U01EB # LATIN SMALL LETTER O WITH OGONEK
+<dead_macron> <U01EA>        	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <U01EA> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <U01EA> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <dead_ogonek> <O>  	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <Multi_key> <semicolon> <O> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <dead_ogonek> <O> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <semicolon> <O> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <dead_ogonek> <O> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <semicolon> <O> 	: "Ǭ"   U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <U01EB>        	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <U01EB> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <U01EB> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <dead_ogonek> <o>  	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <Multi_key> <semicolon> <o> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <dead_ogonek> <o> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <semicolon> <o> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <dead_ogonek> <o> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <semicolon> <o> 	: "ǭ"   U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_caron> <EZH>         	: "Ǯ"   U01EE # LATIN CAPITAL LETTER EZH WITH CARON
+<Multi_key> <c> <EZH>      	: "Ǯ"   U01EE # LATIN CAPITAL LETTER EZH WITH CARON
+<dead_caron> <ezh>         	: "ǯ"   U01EF # LATIN SMALL LETTER EZH WITH CARON
+<Multi_key> <c> <ezh>      	: "ǯ"   U01EF # LATIN SMALL LETTER EZH WITH CARON
+<dead_caron> <j>                 	: "ǰ"   U01F0 # LATIN SMALL LETTER J WITH CARON
+<Multi_key> <c> <j>              	: "ǰ"   U01F0 # LATIN SMALL LETTER J WITH CARON
+<dead_acute> <G>                 	: "Ǵ"   U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<Multi_key> <acute> <G>          	: "Ǵ"   U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<Multi_key> <apostrophe> <G>     	: "Ǵ"   U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<dead_acute> <g>                 	: "ǵ"   U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<Multi_key> <acute> <g>          	: "ǵ"   U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<Multi_key> <apostrophe> <g>     	: "ǵ"   U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<dead_grave> <N>                 	: "Ǹ"   U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
+<Multi_key> <grave> <N>          	: "Ǹ"   U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
+<dead_grave> <n>                 	: "ǹ"   U01F9 # LATIN SMALL LETTER N WITH GRAVE
+<Multi_key> <grave> <n>          	: "ǹ"   U01F9 # LATIN SMALL LETTER N WITH GRAVE
+<dead_acute> <Aring>             	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <Aring>      	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <Aring> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <dead_abovering> <A> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <Multi_key> <o> <A> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <dead_abovering> <A> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <dead_abovering> <A> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <asterisk> <apostrophe> <A> 	: "Ǻ"   U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <aring>             	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <aring>      	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <aring> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <dead_abovering> <a> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <Multi_key> <o> <a> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <dead_abovering> <a> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <dead_abovering> <a> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <asterisk> <apostrophe> <a> 	: "ǻ"   U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <AE>                	: "Ǽ"   U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<Multi_key> <acute> <AE>         	: "Ǽ"   U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<Multi_key> <apostrophe> <AE>    	: "Ǽ"   U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<dead_acute> <ae>                	: "ǽ"   U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<Multi_key> <acute> <ae>         	: "ǽ"   U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<Multi_key> <apostrophe> <ae>    	: "ǽ"   U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<dead_acute> <Ooblique>          	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <Ooblique>   	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <Ooblique> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <dead_stroke> <O>  	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <slash> <O> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <slash> <O>  	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <slash> <O> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <KP_Divide> <O> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <KP_Divide> <O> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <KP_Divide> <O> 	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_stroke> <dead_acute> <O>  	: "Ǿ"   U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <oslash>            	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <oslash>     	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <oslash> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <dead_stroke> <o>  	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <slash> <o> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <slash> <o>  	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <slash> <o> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <KP_Divide> <o> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <KP_Divide> <o> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <KP_Divide> <o> 	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_stroke> <dead_acute> <o>  	: "ǿ"   U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_doublegrave> <A>                  	: "Ȁ"   U0200 # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+<dead_doublegrave> <a>                  	: "ȁ"   U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE
+<dead_invertedbreve> <A>                  	: "Ȃ"   U0202 # LATIN CAPITAL LETTER A WITH INVERTED BREVE
+<dead_invertedbreve> <a>                  	: "ȃ"   U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE
+<dead_doublegrave> <E>                  	: "Ȅ"   U0204 # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+<dead_doublegrave> <e>                  	: "ȅ"   U0205 # LATIN SMALL LETTER E WITH DOUBLE GRAVE
+<dead_invertedbreve> <E>                  	: "Ȇ"   U0206 # LATIN CAPITAL LETTER E WITH INVERTED BREVE
+<dead_invertedbreve> <e>                  	: "ȇ"   U0207 # LATIN SMALL LETTER E WITH INVERTED BREVE
+<dead_doublegrave> <I>                  	: "Ȉ"   U0208 # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+<dead_doublegrave> <i>                  	: "ȉ"   U0209 # LATIN SMALL LETTER I WITH DOUBLE GRAVE
+<dead_invertedbreve> <I>                  	: "Ȋ"   U020A # LATIN CAPITAL LETTER I WITH INVERTED BREVE
+<dead_invertedbreve> <i>                  	: "ȋ"   U020B # LATIN SMALL LETTER I WITH INVERTED BREVE
+<dead_doublegrave> <O>                  	: "Ȍ"   U020C # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+<dead_doublegrave> <o>                  	: "ȍ"   U020D # LATIN SMALL LETTER O WITH DOUBLE GRAVE
+<dead_invertedbreve> <O>                  	: "Ȏ"   U020E # LATIN CAPITAL LETTER O WITH INVERTED BREVE
+<dead_invertedbreve> <o>                  	: "ȏ"   U020F # LATIN SMALL LETTER O WITH INVERTED BREVE
+<dead_doublegrave> <R>                  	: "Ȑ"   U0210 # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+<dead_doublegrave> <r>                  	: "ȑ"   U0211 # LATIN SMALL LETTER R WITH DOUBLE GRAVE
+<dead_invertedbreve> <R>                  	: "Ȓ"   U0212 # LATIN CAPITAL LETTER R WITH INVERTED BREVE
+<dead_invertedbreve> <r>                  	: "ȓ"   U0213 # LATIN SMALL LETTER R WITH INVERTED BREVE
+<dead_doublegrave> <U>                  	: "Ȕ"   U0214 # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+<dead_doublegrave> <u>                  	: "ȕ"   U0215 # LATIN SMALL LETTER U WITH DOUBLE GRAVE
+<dead_invertedbreve> <U>                  	: "Ȗ"   U0216 # LATIN CAPITAL LETTER U WITH INVERTED BREVE
+<dead_invertedbreve> <u>                  	: "ȗ"   U0217 # LATIN SMALL LETTER U WITH INVERTED BREVE
+<dead_caron> <H>                 	: "Ȟ"   U021E # LATIN CAPITAL LETTER H WITH CARON
+<Multi_key> <c> <H>              	: "Ȟ"   U021E # LATIN CAPITAL LETTER H WITH CARON
+<dead_caron> <h>                 	: "ȟ"   U021F # LATIN SMALL LETTER H WITH CARON
+<Multi_key> <c> <h>              	: "ȟ"   U021F # LATIN SMALL LETTER H WITH CARON
+<dead_abovedot> <A>              	: "Ȧ"   U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
+<Multi_key> <period> <A>         	: "Ȧ"   U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
+<dead_abovedot> <a>              	: "ȧ"   U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
+<Multi_key> <period> <a>         	: "ȧ"   U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
+<dead_cedilla> <E>               	: "Ȩ"   U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
+<Multi_key> <cedilla> <E>          	: "Ȩ"   U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
+<dead_cedilla> <e>               	: "ȩ"   U0229 # LATIN SMALL LETTER E WITH CEDILLA
+<Multi_key> <cedilla> <e>          	: "ȩ"   U0229 # LATIN SMALL LETTER E WITH CEDILLA
+<dead_macron> <Odiaeresis>       	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Odiaeresis> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Odiaeresis> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <O> 	: "Ȫ"   U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <odiaeresis>       	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <odiaeresis> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <odiaeresis> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <o> 	: "ȫ"   U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Otilde>           	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <Otilde>    	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <Otilde> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <dead_tilde> <O>   	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <Multi_key> <asciitilde> <O> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <dead_tilde> <O> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <asciitilde> <O> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <dead_tilde> <O> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <asciitilde> <O> 	: "Ȭ"   U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <otilde>           	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <otilde>    	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <otilde> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_macron> <dead_tilde> <o>   	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_macron> <Multi_key> <asciitilde> <o> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <dead_tilde> <o> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <asciitilde> <o> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <dead_tilde> <o> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <asciitilde> <o> 	: "ȭ"   U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_abovedot> <O>              	: "Ȯ"   U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
+<Multi_key> <period> <O>         	: "Ȯ"   U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
+<dead_abovedot> <o>              	: "ȯ"   U022F # LATIN SMALL LETTER O WITH DOT ABOVE
+<Multi_key> <period> <o>         	: "ȯ"   U022F # LATIN SMALL LETTER O WITH DOT ABOVE
+<dead_macron> <U022E>        	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U022E> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U022E> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <O> 	: "Ȱ"   U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <U022F>        	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U022F> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U022F> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <o> 	: "ȱ"   U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Y>                	: "Ȳ"   U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<Multi_key> <macron> <Y>         	: "Ȳ"   U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<Multi_key> <underscore> <Y>     	: "Ȳ"   U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<dead_macron> <y>                	: "ȳ"   U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <macron> <y>         	: "ȳ"   U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <underscore> <y>     	: "ȳ"   U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <e> <e>              	: "ə"   U0259 # LATIN SMALL LETTER SCHWA
+<dead_stroke> <i>               	: "ɨ"   U0268 # LATIN SMALL LETTER I WITH STROKE
+<Multi_key> <slash> <i>          	: "ɨ"   U0268 # LATIN SMALL LETTER I WITH STROKE
+<Multi_key> <KP_Divide> <i>      	: "ɨ"   U0268 # LATIN SMALL LETTER I WITH STROKE
+<Multi_key> <slash> <U0294>  	: "ʡ"   U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
+<Multi_key> <KP_Divide> <U0294> 	: "ʡ"   U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
+<dead_circumflex> <Multi_key> <underscore> <h> 	: "ʰ"   U02B0 # MODIFIER LETTER SMALL H
+<Multi_key> <asciicircum> <underscore> <h> 	: "ʰ"   U02B0 # MODIFIER LETTER SMALL H
+<dead_circumflex> <Multi_key> <underbar> <h> 	: "ʰ"   U02B0 # MODIFIER LETTER SMALL H
+<Multi_key> <asciicircum> <underbar> <h> 	: "ʰ"   U02B0 # MODIFIER LETTER SMALL H
+<dead_circumflex> <Multi_key> <underscore> <U0266> 	: "ʱ"   U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<Multi_key> <asciicircum> <underscore> <U0266> 	: "ʱ"   U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<dead_circumflex> <Multi_key> <underbar> <U0266> 	: "ʱ"   U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<Multi_key> <asciicircum> <underbar> <U0266> 	: "ʱ"   U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<dead_circumflex> <Multi_key> <underscore> <j> 	: "ʲ"   U02B2 # MODIFIER LETTER SMALL J
+<Multi_key> <asciicircum> <underscore> <j> 	: "ʲ"   U02B2 # MODIFIER LETTER SMALL J
+<dead_circumflex> <Multi_key> <underbar> <j> 	: "ʲ"   U02B2 # MODIFIER LETTER SMALL J
+<Multi_key> <asciicircum> <underbar> <j> 	: "ʲ"   U02B2 # MODIFIER LETTER SMALL J
+<dead_circumflex> <Multi_key> <underscore> <r> 	: "ʳ"   U02B3 # MODIFIER LETTER SMALL R
+<Multi_key> <asciicircum> <underscore> <r> 	: "ʳ"   U02B3 # MODIFIER LETTER SMALL R
+<dead_circumflex> <Multi_key> <underbar> <r> 	: "ʳ"   U02B3 # MODIFIER LETTER SMALL R
+<Multi_key> <asciicircum> <underbar> <r> 	: "ʳ"   U02B3 # MODIFIER LETTER SMALL R
+<dead_circumflex> <Multi_key> <underscore> <U0279> 	: "ʴ"   U02B4 # MODIFIER LETTER SMALL TURNED R
+<Multi_key> <asciicircum> <underscore> <U0279> 	: "ʴ"   U02B4 # MODIFIER LETTER SMALL TURNED R
+<dead_circumflex> <Multi_key> <underbar> <U0279> 	: "ʴ"   U02B4 # MODIFIER LETTER SMALL TURNED R
+<Multi_key> <asciicircum> <underbar> <U0279> 	: "ʴ"   U02B4 # MODIFIER LETTER SMALL TURNED R
+<dead_circumflex> <Multi_key> <underscore> <U027B> 	: "ʵ"   U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<Multi_key> <asciicircum> <underscore> <U027B> 	: "ʵ"   U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<dead_circumflex> <Multi_key> <underbar> <U027B> 	: "ʵ"   U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<Multi_key> <asciicircum> <underbar> <U027B> 	: "ʵ"   U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<dead_circumflex> <Multi_key> <underscore> <U0281> 	: "ʶ"   U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<Multi_key> <asciicircum> <underscore> <U0281> 	: "ʶ"   U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<dead_circumflex> <Multi_key> <underbar> <U0281> 	: "ʶ"   U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<Multi_key> <asciicircum> <underbar> <U0281> 	: "ʶ"   U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<dead_circumflex> <Multi_key> <underscore> <w> 	: "ʷ"   U02B7 # MODIFIER LETTER SMALL W
+<Multi_key> <asciicircum> <underscore> <w> 	: "ʷ"   U02B7 # MODIFIER LETTER SMALL W
+<dead_circumflex> <Multi_key> <underbar> <w> 	: "ʷ"   U02B7 # MODIFIER LETTER SMALL W
+<Multi_key> <asciicircum> <underbar> <w> 	: "ʷ"   U02B7 # MODIFIER LETTER SMALL W
+<dead_circumflex> <Multi_key> <underscore> <y> 	: "ʸ"   U02B8 # MODIFIER LETTER SMALL Y
+<Multi_key> <asciicircum> <underscore> <y> 	: "ʸ"   U02B8 # MODIFIER LETTER SMALL Y
+<dead_circumflex> <Multi_key> <underbar> <y> 	: "ʸ"   U02B8 # MODIFIER LETTER SMALL Y
+<Multi_key> <asciicircum> <underbar> <y> 	: "ʸ"   U02B8 # MODIFIER LETTER SMALL Y
+<dead_circumflex> <Multi_key> <underscore> <U0263> 	: "ˠ"   U02E0 # MODIFIER LETTER SMALL GAMMA
+<Multi_key> <asciicircum> <underscore> <U0263> 	: "ˠ"   U02E0 # MODIFIER LETTER SMALL GAMMA
+<dead_circumflex> <Multi_key> <underbar> <U0263> 	: "ˠ"   U02E0 # MODIFIER LETTER SMALL GAMMA
+<Multi_key> <asciicircum> <underbar> <U0263> 	: "ˠ"   U02E0 # MODIFIER LETTER SMALL GAMMA
+<dead_circumflex> <Multi_key> <underscore> <l> 	: "ˡ"   U02E1 # MODIFIER LETTER SMALL L
+<Multi_key> <asciicircum> <underscore> <l> 	: "ˡ"   U02E1 # MODIFIER LETTER SMALL L
+<dead_circumflex> <Multi_key> <underbar> <l> 	: "ˡ"   U02E1 # MODIFIER LETTER SMALL L
+<Multi_key> <asciicircum> <underbar> <l> 	: "ˡ"   U02E1 # MODIFIER LETTER SMALL L
+<dead_circumflex> <Multi_key> <underscore> <s> 	: "ˢ"   U02E2 # MODIFIER LETTER SMALL S
+<Multi_key> <asciicircum> <underscore> <s> 	: "ˢ"   U02E2 # MODIFIER LETTER SMALL S
+<dead_circumflex> <Multi_key> <underbar> <s> 	: "ˢ"   U02E2 # MODIFIER LETTER SMALL S
+<Multi_key> <asciicircum> <underbar> <s> 	: "ˢ"   U02E2 # MODIFIER LETTER SMALL S
+<dead_circumflex> <Multi_key> <underscore> <x> 	: "ˣ"   U02E3 # MODIFIER LETTER SMALL X
+<Multi_key> <asciicircum> <underscore> <x> 	: "ˣ"   U02E3 # MODIFIER LETTER SMALL X
+<dead_circumflex> <Multi_key> <underbar> <x> 	: "ˣ"   U02E3 # MODIFIER LETTER SMALL X
+<Multi_key> <asciicircum> <underbar> <x> 	: "ˣ"   U02E3 # MODIFIER LETTER SMALL X
+<dead_circumflex> <Multi_key> <underscore> <U0295> 	: "ˤ"   U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<Multi_key> <asciicircum> <underscore> <U0295> 	: "ˤ"   U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<dead_circumflex> <Multi_key> <underbar> <U0295> 	: "ˤ"   U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<Multi_key> <asciicircum> <underbar> <U0295> 	: "ˤ"   U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<dead_diaeresis> <acute>         	: "̈́"   U0344 # COMBINING GREEK DIALYTIKA TONOS
+<dead_diaeresis> <apostrophe>    	: "̈́"   U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <dead_acute> 	: "̈́"   U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <acute>   	: "̈́"   U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <apostrophe> 	: "̈́"   U0344 # COMBINING GREEK DIALYTIKA TONOS
+<dead_acute> <dead_diaeresis> <space>	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<dead_diaeresis> <dead_acute> <space>	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <dead_acute> 	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <acute>  	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <apostrophe> 	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <apostrophe> <quotedbl> <space>	: "΅"   U0385 # GREEK DIALYTIKA TONOS
+<dead_acute> <Greek_ALPHA>       	: "Ά"   U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<Multi_key> <acute> <Greek_ALPHA> 	: "Ά"   U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<Multi_key> <apostrophe> <Greek_ALPHA> 	: "Ά"   U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<Multi_key> <Greek_ALPHA> <apostrophe> 	: "Ά"   U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<dead_acute> <Greek_EPSILON>     	: "Έ"   U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<Multi_key> <acute> <Greek_EPSILON> 	: "Έ"   U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_EPSILON> 	: "Έ"   U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<Multi_key> <Greek_EPSILON> <apostrophe> 	: "Έ"   U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<dead_acute> <Greek_ETA>         	: "Ή"   U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<Multi_key> <acute> <Greek_ETA>  	: "Ή"   U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<Multi_key> <apostrophe> <Greek_ETA> 	: "Ή"   U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<Multi_key> <Greek_ETA> <apostrophe> 	: "Ή"   U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<dead_acute> <Greek_IOTA>        	: "Ί"   U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<Multi_key> <acute> <Greek_IOTA> 	: "Ί"   U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<Multi_key> <apostrophe> <Greek_IOTA> 	: "Ί"   U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<Multi_key> <Greek_IOTA> <apostrophe> 	: "Ί"   U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<dead_acute> <Greek_OMICRON>     	: "Ό"   U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<Multi_key> <acute> <Greek_OMICRON> 	: "Ό"   U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<Multi_key> <apostrophe> <Greek_OMICRON> 	: "Ό"   U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<Multi_key> <Greek_OMICRON> <apostrophe> 	: "Ό"   U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<dead_acute> <Greek_UPSILON>     	: "Ύ"   U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<Multi_key> <acute> <Greek_UPSILON> 	: "Ύ"   U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_UPSILON> 	: "Ύ"   U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<Multi_key> <Greek_UPSILON> <apostrophe> 	: "Ύ"   U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<dead_acute> <Greek_OMEGA>       	: "Ώ"   U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<Multi_key> <acute> <Greek_OMEGA> 	: "Ώ"   U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<Multi_key> <apostrophe> <Greek_OMEGA> 	: "Ώ"   U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<Multi_key> <Greek_OMEGA> <apostrophe> 	: "Ώ"   U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<dead_acute> <Greek_iotadieresis> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <Greek_iotadieresis> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <Greek_iotadieresis> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_acute> <dead_diaeresis> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <dead_acute> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_acute> <Multi_key> <quotedbl> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <dead_diaeresis> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <quotedbl> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <dead_diaeresis> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <quotedbl> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Greek_accentdieresis> <Greek_iota> 	: "ΐ"   U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <Greek_IOTA>    	: "Ϊ"   U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_IOTA> 	: "Ϊ"   U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <Greek_IOTA> <quotedbl> 	: "Ϊ"   U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<dead_diaeresis> <Greek_UPSILON> 	: "Ϋ"   U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_UPSILON> 	: "Ϋ"   U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <Greek_UPSILON> <quotedbl> 	: "Ϋ"   U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<dead_acute> <Greek_alpha>       	: "ά"   U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<Multi_key> <acute> <Greek_alpha> 	: "ά"   U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<Multi_key> <apostrophe> <Greek_alpha> 	: "ά"   U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<Multi_key> <Greek_alpha> <apostrophe> 	: "ά"   U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<dead_acute> <Greek_epsilon>     	: "έ"   U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<Multi_key> <acute> <Greek_epsilon> 	: "έ"   U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_epsilon> 	: "έ"   U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<Multi_key> <Greek_epsilon> <apostrophe> 	: "έ"   U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<dead_acute> <Greek_eta>         	: "ή"   U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<Multi_key> <acute> <Greek_eta>  	: "ή"   U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<Multi_key> <apostrophe> <Greek_eta> 	: "ή"   U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<Multi_key> <Greek_eta> <apostrophe> 	: "ή"   U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<dead_acute> <Greek_iota>        	: "ί"   U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<Multi_key> <acute> <Greek_iota> 	: "ί"   U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<Multi_key> <apostrophe> <Greek_iota> 	: "ί"   U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<dead_acute> <Greek_upsilondieresis> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <Greek_upsilondieresis> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <Greek_upsilondieresis> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_acute> <dead_diaeresis> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_acute> <Multi_key> <quotedbl> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <dead_diaeresis> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <quotedbl> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <dead_diaeresis> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <quotedbl> <Greek_upsilon> 	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <dead_acute> <Greek_upsilon> 		: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Greek_accentdieresis> <Greek_upsilon>	: "ΰ"   U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <Greek_iota>    	: "ϊ"   U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_iota> 	: "ϊ"   U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <Greek_iota> <quotedbl> 	: "ϊ"   U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<dead_diaeresis> <Greek_upsilon> 	: "ϋ"   U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_upsilon> 	: "ϋ"   U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <Greek_upsilon> <quotedbl> 	: "ϋ"   U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<dead_acute> <Greek_omicron>     	: "ό"   U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<Multi_key> <acute> <Greek_omicron> 	: "ό"   U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<Multi_key> <apostrophe> <Greek_omicron> 	: "ό"   U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<Multi_key> <Greek_omicron> <apostrophe> 	: "ό"   U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<dead_acute> <Greek_upsilon>     	: "ύ"   U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<Multi_key> <acute> <Greek_upsilon> 	: "ύ"   U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_upsilon> 	: "ύ"   U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<Multi_key> <Greek_upsilon> <apostrophe> 	: "ύ"   U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<dead_acute> <Greek_omega>       	: "ώ"   U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <acute> <Greek_omega> 	: "ώ"   U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <apostrophe> <Greek_omega> 	: "ώ"   U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <Greek_omega> <apostrophe> 	: "ώ"   U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <quotedbl> <U03D2> 	: "ϔ"   U03D4 # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+<dead_grave> <Cyrillic_IE>       	: "Ѐ"   U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+<Multi_key> <grave> <Cyrillic_IE> 	: "Ѐ"   U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+<dead_diaeresis> <Cyrillic_IE>   	: "Ё"   U0401 # CYRILLIC CAPITAL LETTER IO
+<Multi_key> <quotedbl> <Cyrillic_IE> 	: "Ё"   U0401 # CYRILLIC CAPITAL LETTER IO
+<dead_acute> <Cyrillic_GHE>      	: "Ѓ"   U0403 # CYRILLIC CAPITAL LETTER GJE
+<Multi_key> <acute> <Cyrillic_GHE> 	: "Ѓ"   U0403 # CYRILLIC CAPITAL LETTER GJE
+<Multi_key> <apostrophe> <Cyrillic_GHE> 	: "Ѓ"   U0403 # CYRILLIC CAPITAL LETTER GJE
+<dead_diaeresis> <Ukrainian_I>   	: "Ї"   U0407 # CYRILLIC CAPITAL LETTER YI
+<Multi_key> <quotedbl> <Ukrainian_I> 	: "Ї"   U0407 # CYRILLIC CAPITAL LETTER YI
+<dead_acute> <Cyrillic_KA>       	: "Ќ"   U040C # CYRILLIC CAPITAL LETTER KJE
+<Multi_key> <acute> <Cyrillic_KA> 	: "Ќ"   U040C # CYRILLIC CAPITAL LETTER KJE
+<Multi_key> <apostrophe> <Cyrillic_KA> 	: "Ќ"   U040C # CYRILLIC CAPITAL LETTER KJE
+<dead_grave> <Cyrillic_I>        	: "Ѝ"   U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
+<Multi_key> <grave> <Cyrillic_I> 	: "Ѝ"   U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
+<dead_breve> <Cyrillic_U>        	: "Ў"   U040E # CYRILLIC CAPITAL LETTER SHORT U
+<Multi_key> <U> <Cyrillic_U>     	: "Ў"   U040E # CYRILLIC CAPITAL LETTER SHORT U
+<Multi_key> <b> <Cyrillic_U>     	: "Ў"   U040E # CYRILLIC CAPITAL LETTER SHORT U
+<dead_breve> <Cyrillic_I>        	: "Й"   U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<Multi_key> <U> <Cyrillic_I>     	: "Й"   U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<Multi_key> <b> <Cyrillic_I>     	: "Й"   U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<dead_breve> <Cyrillic_i>        	: "й"   U0439 # CYRILLIC SMALL LETTER SHORT I
+<Multi_key> <U> <Cyrillic_i>     	: "й"   U0439 # CYRILLIC SMALL LETTER SHORT I
+<Multi_key> <b> <Cyrillic_i>     	: "й"   U0439 # CYRILLIC SMALL LETTER SHORT I
+<dead_grave> <Cyrillic_ie>       	: "ѐ"   U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
+<Multi_key> <grave> <Cyrillic_ie> 	: "ѐ"   U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
+<dead_diaeresis> <Cyrillic_ie>   	: "ё"   U0451 # CYRILLIC SMALL LETTER IO
+<Multi_key> <quotedbl> <Cyrillic_ie> 	: "ё"   U0451 # CYRILLIC SMALL LETTER IO
+<dead_acute> <Cyrillic_ghe>      	: "ѓ"   U0453 # CYRILLIC SMALL LETTER GJE
+<Multi_key> <acute> <Cyrillic_ghe> 	: "ѓ"   U0453 # CYRILLIC SMALL LETTER GJE
+<Multi_key> <apostrophe> <Cyrillic_ghe> 	: "ѓ"   U0453 # CYRILLIC SMALL LETTER GJE
+<dead_diaeresis> <Ukrainian_i>   	: "ї"   U0457 # CYRILLIC SMALL LETTER YI
+<Multi_key> <quotedbl> <Ukrainian_i> 	: "ї"   U0457 # CYRILLIC SMALL LETTER YI
+<dead_acute> <Cyrillic_ka>       	: "ќ"   U045C # CYRILLIC SMALL LETTER KJE
+<Multi_key> <acute> <Cyrillic_ka> 	: "ќ"   U045C # CYRILLIC SMALL LETTER KJE
+<Multi_key> <apostrophe> <Cyrillic_ka> 	: "ќ"   U045C # CYRILLIC SMALL LETTER KJE
+<dead_grave> <Cyrillic_i>        	: "ѝ"   U045D # CYRILLIC SMALL LETTER I WITH GRAVE
+<Multi_key> <grave> <Cyrillic_i> 	: "ѝ"   U045D # CYRILLIC SMALL LETTER I WITH GRAVE
+<dead_breve> <Cyrillic_u>        	: "ў"   U045E # CYRILLIC SMALL LETTER SHORT U
+<Multi_key> <U> <Cyrillic_u>     	: "ў"   U045E # CYRILLIC SMALL LETTER SHORT U
+<Multi_key> <b> <Cyrillic_u>     	: "ў"   U045E # CYRILLIC SMALL LETTER SHORT U
+<dead_doublegrave> <U0474>          	: "Ѷ"   U0476 # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+<dead_doublegrave> <U0475>          	: "ѷ"   U0477 # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+<Multi_key> <slash> <Cyrillic_GHE> 	: "Ғ"   U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_GHE> 	: "Ғ"   U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+<Multi_key> <slash> <Cyrillic_ghe> 	: "ғ"   U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_ghe> 	: "ғ"   U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
+<Multi_key> <slash> <Cyrillic_KA> 	: "Ҟ"   U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_KA> 	: "Ҟ"   U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
+<Multi_key> <slash> <Cyrillic_ka> 	: "ҟ"   U049F # CYRILLIC SMALL LETTER KA WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_ka> 	: "ҟ"   U049F # CYRILLIC SMALL LETTER KA WITH STROKE
+<Multi_key> <slash> <U04AE>  	: "Ұ"   U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <KP_Divide> <U04AE> 	: "Ұ"   U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <slash> <U04AF>  	: "ұ"   U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <KP_Divide> <U04AF> 	: "ұ"   U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+<dead_breve> <Cyrillic_ZHE>      	: "Ӂ"   U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<Multi_key> <U> <Cyrillic_ZHE>   	: "Ӂ"   U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<Multi_key> <b> <Cyrillic_ZHE>   	: "Ӂ"   U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<dead_breve> <Cyrillic_zhe>      	: "ӂ"   U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<Multi_key> <U> <Cyrillic_zhe>   	: "ӂ"   U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<Multi_key> <b> <Cyrillic_zhe>   	: "ӂ"   U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<dead_breve> <Cyrillic_A>        	: "Ӑ"   U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<Multi_key> <U> <Cyrillic_A>     	: "Ӑ"   U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<Multi_key> <b> <Cyrillic_A>     	: "Ӑ"   U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<dead_breve> <Cyrillic_a>        	: "ӑ"   U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<Multi_key> <U> <Cyrillic_a>     	: "ӑ"   U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<Multi_key> <b> <Cyrillic_a>     	: "ӑ"   U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<dead_diaeresis> <Cyrillic_A>    	: "Ӓ"   U04D2 # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_A> 	: "Ӓ"   U04D2 # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_a>    	: "ӓ"   U04D3 # CYRILLIC SMALL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_a> 	: "ӓ"   U04D3 # CYRILLIC SMALL LETTER A WITH DIAERESIS
+<dead_breve> <Cyrillic_IE>       	: "Ӗ"   U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<Multi_key> <U> <Cyrillic_IE>    	: "Ӗ"   U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<Multi_key> <b> <Cyrillic_IE>    	: "Ӗ"   U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<dead_breve> <Cyrillic_ie>       	: "ӗ"   U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<Multi_key> <U> <Cyrillic_ie>    	: "ӗ"   U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<Multi_key> <b> <Cyrillic_ie>    	: "ӗ"   U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<dead_diaeresis> <U04D8>     	: "Ӛ"   U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+<Multi_key> <quotedbl> <U04D8> 	: "Ӛ"   U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+<dead_diaeresis> <U04D9>     	: "ӛ"   U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+<Multi_key> <quotedbl> <U04D9> 	: "ӛ"   U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ZHE>  	: "Ӝ"   U04DC # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ZHE> 	: "Ӝ"   U04DC # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_zhe>  	: "ӝ"   U04DD # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_zhe> 	: "ӝ"   U04DD # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ZE>   	: "Ӟ"   U04DE # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ZE> 	: "Ӟ"   U04DE # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ze>   	: "ӟ"   U04DF # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ze> 	: "ӟ"   U04DF # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+<dead_macron> <Cyrillic_I>       	: "Ӣ"   U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<Multi_key> <macron> <Cyrillic_I> 	: "Ӣ"   U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<Multi_key> <underscore> <Cyrillic_I> 	: "Ӣ"   U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<dead_macron> <Cyrillic_i>       	: "ӣ"   U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<Multi_key> <macron> <Cyrillic_i> 	: "ӣ"   U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<Multi_key> <underscore> <Cyrillic_i> 	: "ӣ"   U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<dead_diaeresis> <Cyrillic_I>    	: "Ӥ"   U04E4 # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_I> 	: "Ӥ"   U04E4 # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_i>    	: "ӥ"   U04E5 # CYRILLIC SMALL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_i> 	: "ӥ"   U04E5 # CYRILLIC SMALL LETTER I WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_O>    	: "Ӧ"   U04E6 # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_O> 	: "Ӧ"   U04E6 # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_o>    	: "ӧ"   U04E7 # CYRILLIC SMALL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_o> 	: "ӧ"   U04E7 # CYRILLIC SMALL LETTER O WITH DIAERESIS
+<dead_diaeresis> <U04E8>     	: "Ӫ"   U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+<Multi_key> <quotedbl> <U04E8> 	: "Ӫ"   U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+<dead_diaeresis> <U04E9>     	: "ӫ"   U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+<Multi_key> <quotedbl> <U04E9> 	: "ӫ"   U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_E>    	: "Ӭ"   U04EC # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_E> 	: "Ӭ"   U04EC # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_e>    	: "ӭ"   U04ED # CYRILLIC SMALL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_e> 	: "ӭ"   U04ED # CYRILLIC SMALL LETTER E WITH DIAERESIS
+<dead_macron> <Cyrillic_U>       	: "Ӯ"   U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<Multi_key> <macron> <Cyrillic_U> 	: "Ӯ"   U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<Multi_key> <underscore> <Cyrillic_U> 	: "Ӯ"   U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<dead_macron> <Cyrillic_u>       	: "ӯ"   U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<Multi_key> <macron> <Cyrillic_u> 	: "ӯ"   U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<Multi_key> <underscore> <Cyrillic_u> 	: "ӯ"   U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<dead_diaeresis> <Cyrillic_U>    	: "Ӱ"   U04F0 # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_U> 	: "Ӱ"   U04F0 # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_u>    	: "ӱ"   U04F1 # CYRILLIC SMALL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_u> 	: "ӱ"   U04F1 # CYRILLIC SMALL LETTER U WITH DIAERESIS
+<dead_doubleacute> <Cyrillic_U>  	: "Ӳ"   U04F2 # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <Cyrillic_U> 	: "Ӳ"   U04F2 # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+<dead_doubleacute> <Cyrillic_u>  	: "ӳ"   U04F3 # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <Cyrillic_u> 	: "ӳ"   U04F3 # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+<dead_diaeresis> <Cyrillic_CHE>  	: "Ӵ"   U04F4 # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_CHE> 	: "Ӵ"   U04F4 # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_che>  	: "ӵ"   U04F5 # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_che> 	: "ӵ"   U04F5 # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_YERU> 	: "Ӹ"   U04F8 # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_YERU> 	: "Ӹ"   U04F8 # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_yeru> 	: "ӹ"   U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_yeru> 	: "ӹ"   U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+<Multi_key> <U0653> <Arabic_alef> 	: "آ"   U0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
+<Multi_key> <U0654> <Arabic_alef> 	: "أ"   U0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
+<Multi_key> <U0654> <Arabic_waw> 	: "ؤ"   U0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
+<Multi_key> <U0655> <Arabic_alef> 	: "إ"   U0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
+<Multi_key> <U0654> <Arabic_yeh> 	: "ئ"   U0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
+<Multi_key> <U0654> <U06D5> 	: "ۀ"   U06C0 # ARABIC LETTER HEH WITH YEH ABOVE
+<Multi_key> <U0654> <U06C1> 	: "ۂ"   U06C2 # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+<Multi_key> <U0654> <U06D2> 	: "ۓ"   U06D3 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+<Multi_key> <U093C> <U0928> 	: "ऩ"   U0929 # DEVANAGARI LETTER NNNA
+<Multi_key> <U093C> <U0930> 	: "ऱ"   U0931 # DEVANAGARI LETTER RRA
+<Multi_key> <U093C> <U0933> 	: "ऴ"   U0934 # DEVANAGARI LETTER LLLA
+<Multi_key> <U093C> <U0915> 	: "क़"   U0958 # DEVANAGARI LETTER QA
+<Multi_key> <U093C> <U0916> 	: "ख़"   U0959 # DEVANAGARI LETTER KHHA
+<Multi_key> <U093C> <U0917> 	: "ग़"   U095A # DEVANAGARI LETTER GHHA
+<Multi_key> <U093C> <U091C> 	: "ज़"   U095B # DEVANAGARI LETTER ZA
+<Multi_key> <U093C> <U0921> 	: "ड़"   U095C # DEVANAGARI LETTER DDDHA
+<Multi_key> <U093C> <U0922> 	: "ढ़"   U095D # DEVANAGARI LETTER RHA
+<Multi_key> <U093C> <U092B> 	: "फ़"   U095E # DEVANAGARI LETTER FA
+<Multi_key> <U093C> <U092F> 	: "य़"   U095F # DEVANAGARI LETTER YYA
+<Multi_key> <U09C7> <U09BE> 	: "ো"   U09CB # BENGALI VOWEL SIGN O
+<Multi_key> <U09C7> <U09D7> 	: "ৌ"   U09CC # BENGALI VOWEL SIGN AU
+<Multi_key> <U09BC> <U09A1> 	: "ড়"   U09DC # BENGALI LETTER RRA
+<Multi_key> <U09BC> <U09A2> 	: "ঢ়"   U09DD # BENGALI LETTER RHA
+<Multi_key> <U09BC> <U09AF> 	: "য়"   U09DF # BENGALI LETTER YYA
+<Multi_key> <U0A3C> <U0A32> 	: "ਲ਼"   U0A33 # GURMUKHI LETTER LLA
+<Multi_key> <U0A3C> <U0A38> 	: "ਸ਼"   U0A36 # GURMUKHI LETTER SHA
+<Multi_key> <U0A3C> <U0A16> 	: "ਖ਼"   U0A59 # GURMUKHI LETTER KHHA
+<Multi_key> <U0A3C> <U0A17> 	: "ਗ਼"   U0A5A # GURMUKHI LETTER GHHA
+<Multi_key> <U0A3C> <U0A1C> 	: "ਜ਼"   U0A5B # GURMUKHI LETTER ZA
+<Multi_key> <U0A3C> <U0A2B> 	: "ਫ਼"   U0A5E # GURMUKHI LETTER FA
+<Multi_key> <U0B47> <U0B56> 	: "ୈ"   U0B48 # ORIYA VOWEL SIGN AI
+<Multi_key> <U0B47> <U0B3E> 	: "ୋ"   U0B4B # ORIYA VOWEL SIGN O
+<Multi_key> <U0B47> <U0B57> 	: "ୌ"   U0B4C # ORIYA VOWEL SIGN AU
+<Multi_key> <U0B3C> <U0B21> 	: "ଡ଼"   U0B5C # ORIYA LETTER RRA
+<Multi_key> <U0B3C> <U0B22> 	: "ଢ଼"   U0B5D # ORIYA LETTER RHA
+<Multi_key> <U0BD7> <U0B92> 	: "ஔ"   U0B94 # TAMIL LETTER AU
+<Multi_key> <U0BC6> <U0BBE> 	: "ொ"   U0BCA # TAMIL VOWEL SIGN O
+<Multi_key> <U0BC7> <U0BBE> 	: "ோ"   U0BCB # TAMIL VOWEL SIGN OO
+<Multi_key> <U0BC6> <U0BD7> 	: "ௌ"   U0BCC # TAMIL VOWEL SIGN AU
+<Multi_key> <U0C46> <U0C56> 	: "ై"   U0C48 # TELUGU VOWEL SIGN AI
+<Multi_key> <U0CBF> <U0CD5> 	: "ೀ"   U0CC0 # KANNADA VOWEL SIGN II
+<Multi_key> <U0CC6> <U0CD5> 	: "ೇ"   U0CC7 # KANNADA VOWEL SIGN EE
+<Multi_key> <U0CC6> <U0CD6> 	: "ೈ"   U0CC8 # KANNADA VOWEL SIGN AI
+<Multi_key> <U0CC6> <U0CC2> 	: "ೊ"   U0CCA # KANNADA VOWEL SIGN O
+<Multi_key> <U0CCA> <U0CD5> 	: "ೋ"   U0CCB # KANNADA VOWEL SIGN OO
+
+<Multi_key> <U0D46> <U0D3E> 	: "ൊ"   U0D4A # MALAYALAM VOWEL SIGN O
+<Multi_key> <U0D47> <U0D3E> 	: "ോ"   U0D4B # MALAYALAM VOWEL SIGN OO
+<Multi_key> <U0D46> <U0D57> 	: "ൌ"   U0D4C # MALAYALAM VOWEL SIGN AU
+<Multi_key> <U0DD9> <U0DCA> 	: "ේ"   U0DDA # SINHALA VOWEL SIGN DIGA KOMBUVA
+<Multi_key> <U0DD9> <U0DCF> 	: "ො"   U0DDC # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+<Multi_key> <U0DDC> <U0DCA> 	: "ෝ"   U0DDD # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+
+<Multi_key> <U0DD9> <U0DDF> 	: "ෞ"   U0DDE # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+<Multi_key> <U0FB7> <U0F42> 	: "གྷ"   U0F43 # TIBETAN LETTER GHA
+<Multi_key> <U0FB7> <U0F4C> 	: "ཌྷ"   U0F4D # TIBETAN LETTER DDHA
+<Multi_key> <U0FB7> <U0F51> 	: "དྷ"   U0F52 # TIBETAN LETTER DHA
+<Multi_key> <U0FB7> <U0F56> 	: "བྷ"   U0F57 # TIBETAN LETTER BHA
+<Multi_key> <U0FB7> <U0F5B> 	: "ཛྷ"   U0F5C # TIBETAN LETTER DZHA
+<Multi_key> <U0FB5> <U0F40> 	: "ཀྵ"   U0F69 # TIBETAN LETTER KSSA
+<Multi_key> <U0F71> <U0F72> 	: "ཱི"   U0F73 # TIBETAN VOWEL SIGN II
+<Multi_key> <U0F71> <U0F74> 	: "ཱུ"   U0F75 # TIBETAN VOWEL SIGN UU
+<Multi_key> <U0FB2> <U0F80> 	: "ྲྀ"   U0F76 # TIBETAN VOWEL SIGN VOCALIC R
+<Multi_key> <U0FB3> <U0F80> 	: "ླྀ"   U0F78 # TIBETAN VOWEL SIGN VOCALIC L
+<Multi_key> <U0F71> <U0F80> 	: "ཱྀ"   U0F81 # TIBETAN VOWEL SIGN REVERSED II
+<Multi_key> <U0F92> <U0FB7> 	: "ྒྷ"   U0F93 # TIBETAN SUBJOINED LETTER GHA
+<Multi_key> <U0F9C> <U0FB7> 	: "ྜྷ"   U0F9D # TIBETAN SUBJOINED LETTER DDHA
+<Multi_key> <U0FA1> <U0FB7> 	: "ྡྷ"   U0FA2 # TIBETAN SUBJOINED LETTER DHA
+<Multi_key> <U0FA6> <U0FB7> 	: "ྦྷ"   U0FA7 # TIBETAN SUBJOINED LETTER BHA
+<Multi_key> <U0FAB> <U0FB7> 	: "ྫྷ"   U0FAC # TIBETAN SUBJOINED LETTER DZHA
+<Multi_key> <U0F90> <U0FB5> 	: "ྐྵ"   U0FB9 # TIBETAN SUBJOINED LETTER KSSA
+<Multi_key> <U102E> <U1025> 	: "ဦ"   U1026 # MYANMAR LETTER UU
+<dead_belowring> <A>                  	: "Ḁ"   U1E00 # LATIN CAPITAL LETTER A WITH RING BELOW
+<dead_belowring> <a>                  	: "ḁ"   U1E01 # LATIN SMALL LETTER A WITH RING BELOW
+<dead_abovedot> <B>              	: "Ḃ"   U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+<Multi_key> <period> <B>         	: "Ḃ"   U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+<Multi_key> <B> <period> 		: "Ḃ"   U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+<dead_abovedot> <b>              	: "ḃ"   U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+<Multi_key> <period> <b>         	: "ḃ"   U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+<Multi_key> <b> <period> 		: "ḃ"   U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+<dead_belowdot> <B>              	: "Ḅ"   U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
+<Multi_key> <exclam> <B>         	: "Ḅ"   U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
+<dead_belowdot> <b>              	: "ḅ"   U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
+<Multi_key> <exclam> <b>         	: "ḅ"   U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
+<dead_belowmacron> <B>                  	: "Ḇ"   U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW
+<dead_belowmacron> <b>                  	: "ḇ"   U1E07 # LATIN SMALL LETTER B WITH LINE BELOW
+<dead_acute> <Ccedilla>          	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <Ccedilla>   	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <Ccedilla> 	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <dead_cedilla> <C>  	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <comma> <C> 	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <cedilla> <C> 	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <dead_cedilla> <C> 	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <comma> <C>  	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <cedilla> <C>  	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <dead_cedilla> <C> 	: "Ḉ"   U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <cedilla> <C>	: "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <ccedilla>          	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <ccedilla>   	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <ccedilla> 	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <dead_cedilla> <c>  	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <comma> <c> 	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <cedilla> <c> 	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <dead_cedilla> <c> 	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <comma> <c>  	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <cedilla> <c>  	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <dead_cedilla> <c> 	: "ḉ"   U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <cedilla> <c>	: "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_abovedot> <D>              	: "Ḋ"   U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+<Multi_key> <period> <D>         	: "Ḋ"   U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+<Multi_key> <D> <period> 		: "Ḋ"   U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+<dead_abovedot> <d>              	: "ḋ"   U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+<Multi_key> <period> <d>         	: "ḋ"   U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+<Multi_key> <d> <period> 		: "ḋ"   U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+<dead_belowdot> <D>              	: "Ḍ"   U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
+<Multi_key> <exclam> <D>         	: "Ḍ"   U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
+<dead_belowdot> <d>              	: "ḍ"   U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
+<Multi_key> <exclam> <d>         	: "ḍ"   U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
+<dead_belowmacron> <D>                  	: "Ḏ"   U1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW
+<dead_belowmacron> <d>                  	: "ḏ"   U1E0F # LATIN SMALL LETTER D WITH LINE BELOW
+<dead_cedilla> <D>               	: "Ḑ"   U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<Multi_key> <comma> <D>          	: "Ḑ"   U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<Multi_key> <D> <comma>          	: "Ḑ"   U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<Multi_key> <cedilla> <D>          	: "Ḑ"   U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<dead_cedilla> <d>               	: "ḑ"   U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<Multi_key> <comma> <d>          	: "ḑ"   U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<Multi_key> <d> <comma>          	: "ḑ"   U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<Multi_key> <cedilla> <d>          	: "ḑ"   U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<dead_belowcircumflex> <D>                  	: "Ḓ"   U1E12 # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <d>                  	: "ḓ"   U1E13 # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+<dead_grave> <Emacron>           	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <Emacron>    	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <E>   	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <E> 	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <E> 	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <E> 	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <E> 	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <E> 	: "Ḕ"   U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <emacron>           	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <emacron>    	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <e>   	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <e> 	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <e> 	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <e> 	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <e> 	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <e> 	: "ḕ"   U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_acute> <Emacron>           	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <Emacron>    	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <Emacron> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <E>   	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <E> 	: "Ḗ"   U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <emacron>           	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <emacron>    	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <emacron> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <e>   	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <e> 	: "ḗ"   U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_belowcircumflex> <E>                  	: "Ḙ"   U1E18 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <e>                  	: "ḙ"   U1E19 # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+<dead_belowtilde> <E>                  	: "Ḛ"   U1E1A # LATIN CAPITAL LETTER E WITH TILDE BELOW
+<dead_belowtilde> <e>                  	: "ḛ"   U1E1B # LATIN SMALL LETTER E WITH TILDE BELOW
+<dead_breve> <U0228>         	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <U0228>      	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <U0228>      	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <dead_cedilla> <E>  	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <comma> <E> 	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <cedilla> <E> 	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <dead_cedilla> <E> 	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <space> <comma> <E>    	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <cedilla> <E>      	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <dead_cedilla> <E> 	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <comma> <E>      	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <cedilla> <E>      	: "Ḝ"   U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <U0229>         	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <U0229>      	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <U0229>      	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <dead_cedilla> <e>  	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <comma> <e> 	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <cedilla> <e> 	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <dead_cedilla> <e> 	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <space> <comma> <e>    	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <cedilla> <e>      	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <dead_cedilla> <e> 	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <comma> <e>      	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <cedilla> <e>      	: "ḝ"   U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_abovedot> <F>              	: "Ḟ"   U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+<Multi_key> <period> <F>         	: "Ḟ"   U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+<Multi_key> <F> <period> 		: "Ḟ"   U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+<dead_abovedot> <f>              	: "ḟ"   U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+<Multi_key> <period> <f>         	: "ḟ"   U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+<Multi_key> <f> <period> 		: "ḟ"   U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+<dead_macron> <G>                	: "Ḡ"   U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<Multi_key> <macron> <G>         	: "Ḡ"   U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<Multi_key> <underscore> <G>     	: "Ḡ"   U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<dead_macron> <g>                	: "ḡ"   U1E21 # LATIN SMALL LETTER G WITH MACRON
+<Multi_key> <macron> <g>         	: "ḡ"   U1E21 # LATIN SMALL LETTER G WITH MACRON
+<Multi_key> <underscore> <g>     	: "ḡ"   U1E21 # LATIN SMALL LETTER G WITH MACRON
+<dead_abovedot> <H>              	: "Ḣ"   U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
+<Multi_key> <period> <H>         	: "Ḣ"   U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
+<dead_abovedot> <h>              	: "ḣ"   U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
+<Multi_key> <period> <h>         	: "ḣ"   U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
+<dead_belowdot> <H>              	: "Ḥ"   U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
+<Multi_key> <exclam> <H>         	: "Ḥ"   U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
+<dead_belowdot> <h>              	: "ḥ"   U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
+<Multi_key> <exclam> <h>         	: "ḥ"   U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
+<dead_diaeresis> <H>             	: "Ḧ"   U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
+<Multi_key> <quotedbl> <H>       	: "Ḧ"   U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
+<dead_diaeresis> <h>             	: "ḧ"   U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
+<Multi_key> <quotedbl> <h>       	: "ḧ"   U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
+<dead_cedilla> <H>               	: "Ḩ"   U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<Multi_key> <comma> <H>          	: "Ḩ"   U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<Multi_key> <H> <comma>          	: "Ḩ"   U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<Multi_key> <cedilla> <H>          	: "Ḩ"   U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<dead_cedilla> <h>               	: "ḩ"   U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<Multi_key> <comma> <h>          	: "ḩ"   U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<Multi_key> <h> <comma>          	: "ḩ"   U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<Multi_key> <cedilla> <h>          	: "ḩ"   U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<dead_belowbreve> <H>                  	: "Ḫ"   U1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW
+<dead_belowbreve> <h>                  	: "ḫ"   U1E2B # LATIN SMALL LETTER H WITH BREVE BELOW
+<dead_belowtilde> <I>                  	: "Ḭ"   U1E2C # LATIN CAPITAL LETTER I WITH TILDE BELOW
+<dead_belowtilde> <i>                  	: "ḭ"   U1E2D # LATIN SMALL LETTER I WITH TILDE BELOW
+<dead_acute> <Idiaeresis>        	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <Idiaeresis> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <Idiaeresis> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <I> 	: "Ḯ"   U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <idiaeresis>        	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <idiaeresis> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <idiaeresis> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <i> 	: "ḯ"   U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <K>                 	: "Ḱ"   U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<Multi_key> <acute> <K>          	: "Ḱ"   U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<Multi_key> <apostrophe> <K>     	: "Ḱ"   U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<dead_acute> <k>                 	: "ḱ"   U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<Multi_key> <acute> <k>          	: "ḱ"   U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<Multi_key> <apostrophe> <k>     	: "ḱ"   U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<dead_belowdot> <K>              	: "Ḳ"   U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
+<Multi_key> <exclam> <K>         	: "Ḳ"   U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
+<dead_belowdot> <k>              	: "ḳ"   U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
+<Multi_key> <exclam> <k>         	: "ḳ"   U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
+<dead_belowmacron> <K>                  	: "Ḵ"   U1E34 # LATIN CAPITAL LETTER K WITH LINE BELOW
+<dead_belowmacron> <k>                  	: "ḵ"   U1E35 # LATIN SMALL LETTER K WITH LINE BELOW
+<dead_belowdot> <L>              	: "Ḷ"   U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
+<Multi_key> <exclam> <L>         	: "Ḷ"   U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
+<dead_belowdot> <l>              	: "ḷ"   U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
+<Multi_key> <exclam> <l>         	: "ḷ"   U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
+<dead_macron> <U1E36>        	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1E36> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1E36> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <L> 	: "Ḹ"   U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <U1E37>        	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1E37> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1E37> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <l> 	: "ḹ"   U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_belowmacron> <L>                  	: "Ḻ"   U1E3A # LATIN CAPITAL LETTER L WITH LINE BELOW
+<dead_belowmacron> <l>                  	: "ḻ"   U1E3B # LATIN SMALL LETTER L WITH LINE BELOW
+<dead_belowcircumflex> <L>                  	: "Ḽ"   U1E3C # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <l>                  	: "ḽ"   U1E3D # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+<dead_acute> <M>                 	: "Ḿ"   U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<Multi_key> <acute> <M>          	: "Ḿ"   U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<Multi_key> <apostrophe> <M>     	: "Ḿ"   U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<dead_acute> <m>                 	: "ḿ"   U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<Multi_key> <acute> <m>          	: "ḿ"   U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<Multi_key> <apostrophe> <m>     	: "ḿ"   U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<dead_abovedot> <M>              	: "Ṁ"   U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+<Multi_key> <period> <M>         	: "Ṁ"   U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+<Multi_key> <M> <period> 		: "Ṁ"   U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+<dead_abovedot> <m>              	: "ṁ"   U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+<Multi_key> <period> <m>         	: "ṁ"   U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+<Multi_key> <m> <period>	  	: "ṁ"   U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+<dead_belowdot> <M>              	: "Ṃ"   U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
+<Multi_key> <exclam> <M>         	: "Ṃ"   U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
+<dead_belowdot> <m>              	: "ṃ"   U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
+<Multi_key> <exclam> <m>         	: "ṃ"   U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
+<dead_abovedot> <N>              	: "Ṅ"   U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
+<Multi_key> <period> <N>         	: "Ṅ"   U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
+<dead_abovedot> <n>              	: "ṅ"   U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
+<Multi_key> <period> <n>         	: "ṅ"   U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
+<dead_belowdot> <N>              	: "Ṇ"   U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
+<Multi_key> <exclam> <N>         	: "Ṇ"   U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
+<dead_belowdot> <n>              	: "ṇ"   U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
+<Multi_key> <exclam> <n>         	: "ṇ"   U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
+<dead_belowmacron> <N>                  	: "Ṉ"   U1E48 # LATIN CAPITAL LETTER N WITH LINE BELOW
+<dead_belowmacron> <n>                  	: "ṉ"   U1E49 # LATIN SMALL LETTER N WITH LINE BELOW
+<dead_belowcircumflex> <N>                  	: "Ṋ"   U1E4A # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <n>                  	: "ṋ"   U1E4B # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+<dead_acute> <Otilde>            	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <Otilde>     	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <Otilde> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <O>    	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <O> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <O> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <O> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <O> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <O> 	: "Ṍ"   U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <otilde>            	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <otilde>     	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <otilde> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <o>    	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <o> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <o> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <o> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <o> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <o> 	: "ṍ"   U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_diaeresis> <Otilde>        	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <Otilde>  	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <dead_tilde> <O> 	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <Multi_key> <asciitilde> <O> 	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <dead_tilde> <O> 	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <asciitilde> <O> 	: "Ṏ"   U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <otilde>        	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <otilde>  	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <dead_tilde> <o> 	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <Multi_key> <asciitilde> <o> 	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <dead_tilde> <o> 	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <asciitilde> <o> 	: "ṏ"   U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_grave> <Omacron>           	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <Omacron>    	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <O>   	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <O> 	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <O> 	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <O> 	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <O> 	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <O> 	: "Ṑ"   U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <omacron>           	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <omacron>    	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <o>   	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <o> 	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <o> 	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <o> 	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <o> 	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <o> 	: "ṑ"   U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_acute> <Omacron>           	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <Omacron>    	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <Omacron> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <O>   	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <O> 	: "Ṓ"   U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <omacron>           	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <omacron>    	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <omacron> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <o>   	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <o> 	: "ṓ"   U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <P>                 	: "Ṕ"   U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<Multi_key> <acute> <P>          	: "Ṕ"   U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<Multi_key> <apostrophe> <P>     	: "Ṕ"   U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<dead_acute> <p>                 	: "ṕ"   U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<Multi_key> <acute> <p>          	: "ṕ"   U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<Multi_key> <apostrophe> <p>     	: "ṕ"   U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<dead_abovedot> <P>              	: "Ṗ"   U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+<Multi_key> <period> <P>         	: "Ṗ"   U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+<Multi_key> <P> <period> 		: "Ṗ"   U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+<dead_abovedot> <p>              	: "ṗ"   U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+<Multi_key> <period> <p>         	: "ṗ"   U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+<Multi_key> <p> <period> 		: "ṗ"   U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+<dead_abovedot> <R>              	: "Ṙ"   U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
+<Multi_key> <period> <R>         	: "Ṙ"   U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
+<dead_abovedot> <r>              	: "ṙ"   U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
+<Multi_key> <period> <r>         	: "ṙ"   U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
+<dead_belowdot> <R>              	: "Ṛ"   U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
+<Multi_key> <exclam> <R>         	: "Ṛ"   U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
+<dead_belowdot> <r>              	: "ṛ"   U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
+<Multi_key> <exclam> <r>         	: "ṛ"   U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
+<dead_macron> <U1E5A>        	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1E5A> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1E5A> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <R> 	: "Ṝ"   U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <U1E5B>        	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1E5B> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1E5B> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <r> 	: "ṝ"   U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_belowmacron> <R>                  	: "Ṟ"   U1E5E # LATIN CAPITAL LETTER R WITH LINE BELOW
+<dead_belowmacron> <r>                  	: "ṟ"   U1E5F # LATIN SMALL LETTER R WITH LINE BELOW
+<dead_abovedot> <S>              	: "Ṡ"   U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+<Multi_key> <period> <S>         	: "Ṡ"   U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+<Multi_key> <S> <period> 		: "Ṡ"   U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+<dead_abovedot> <s>              	: "ṡ"   U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+<Multi_key> <period> <s>         	: "ṡ"   U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+<Multi_key> <s> <period> 		: "ṡ"   U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+<dead_belowdot> <S>              	: "Ṣ"   U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
+<Multi_key> <exclam> <S>         	: "Ṣ"   U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
+<dead_belowdot> <s>              	: "ṣ"   U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
+<Multi_key> <exclam> <s>         	: "ṣ"   U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
+<dead_abovedot> <Sacute>         	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <Sacute>    	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <dead_acute> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <acute> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <apostrophe> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <dead_acute> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <acute> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <apostrophe> <S> 	: "Ṥ"   U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <sacute>         	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <sacute>    	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <dead_acute> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <acute> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <apostrophe> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <dead_acute> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <acute> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <apostrophe> <s> 	: "ṥ"   U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Scaron>         	: "Ṧ"   U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <Scaron>    	: "Ṧ"   U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <dead_caron> <S> 	: "Ṧ"   U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <Multi_key> <c> <S> 	: "Ṧ"   U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <dead_caron> <S> 	: "Ṧ"   U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <scaron>         	: "ṧ"   U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <scaron>    	: "ṧ"   U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <dead_caron> <s> 	: "ṧ"   U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <Multi_key> <c> <s> 	: "ṧ"   U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <dead_caron> <s> 	: "ṧ"   U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <U1E62>      	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <U1E62> 	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <dead_belowdot> <S> 	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <Multi_key> <exclam> <S> 	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <dead_belowdot> <S> 	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <exclam> <S> 	: "Ṩ"   U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <U1E63>      	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <U1E63> 	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <dead_belowdot> <s> 	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <Multi_key> <exclam> <s> 	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <dead_belowdot> <s> 	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <exclam> <s> 	: "ṩ"   U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <T>              	: "Ṫ"   U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+<Multi_key> <period> <T>         	: "Ṫ"   U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+<Multi_key> <T> <period> 		: "Ṫ"   U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+<dead_abovedot> <t>              	: "ṫ"   U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+<Multi_key> <period> <t>         	: "ṫ"   U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+<Multi_key> <t> <period> 		: "ṫ"   U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+<dead_belowdot> <T>              	: "Ṭ"   U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
+<Multi_key> <exclam> <T>         	: "Ṭ"   U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
+<dead_belowdot> <t>              	: "ṭ"   U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
+<Multi_key> <exclam> <t>         	: "ṭ"   U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
+<dead_belowmacron> <T>                  	: "Ṯ"   U1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW
+<dead_belowmacron> <t>                  	: "ṯ"   U1E6F # LATIN SMALL LETTER T WITH LINE BELOW
+<dead_belowcircumflex> <T>                  	: "Ṱ"   U1E70 # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <t>                  	: "ṱ"   U1E71 # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+<dead_belowdiaeresis> <U>                  	: "Ṳ"   U1E72 # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+<dead_belowdiaeresis> <u>                  	: "ṳ"   U1E73 # LATIN SMALL LETTER U WITH DIAERESIS BELOW
+<dead_belowtilde> <U>                  	: "Ṵ"   U1E74 # LATIN CAPITAL LETTER U WITH TILDE BELOW
+<dead_belowtilde> <u>                  	: "ṵ"   U1E75 # LATIN SMALL LETTER U WITH TILDE BELOW
+<dead_belowcircumflex> <U>                  	: "Ṷ"   U1E76 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+<dead_belowcircumflex> <u>                  	: "ṷ"   U1E77 # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+<dead_acute> <Utilde>            	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <Utilde>     	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <Utilde> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <U>    	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <U> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <U> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <U> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <U> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <U> 	: "Ṹ"   U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <utilde>            	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <utilde>     	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <utilde> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <u>    	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <u> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <u> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <u> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <u> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <u> 	: "ṹ"   U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_diaeresis> <Umacron>       	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <Umacron> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <dead_macron> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <macron> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <underscore> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <dead_macron> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <macron> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <underscore> <U> 	: "Ṻ"   U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <umacron>       	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <umacron> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <dead_macron> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <macron> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <underscore> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <dead_macron> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <macron> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <underscore> <u> 	: "ṻ"   U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_tilde> <V>                 	: "Ṽ"   U1E7C # LATIN CAPITAL LETTER V WITH TILDE
+<Multi_key> <asciitilde> <V>     	: "Ṽ"   U1E7C # LATIN CAPITAL LETTER V WITH TILDE
+<dead_tilde> <v>                 	: "ṽ"   U1E7D # LATIN SMALL LETTER V WITH TILDE
+<Multi_key> <asciitilde> <v>     	: "ṽ"   U1E7D # LATIN SMALL LETTER V WITH TILDE
+<dead_belowdot> <V>              	: "Ṿ"   U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
+<Multi_key> <exclam> <V>         	: "Ṿ"   U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
+<dead_belowdot> <v>              	: "ṿ"   U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
+<Multi_key> <exclam> <v>         	: "ṿ"   U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
+<dead_grave> <W>                 	: "Ẁ"   U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+<Multi_key> <grave> <W>          	: "Ẁ"   U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+<dead_grave> <w>                 	: "ẁ"   U1E81 # LATIN SMALL LETTER W WITH GRAVE
+<Multi_key> <grave> <w>          	: "ẁ"   U1E81 # LATIN SMALL LETTER W WITH GRAVE
+<dead_acute> <W>                 	: "Ẃ"   U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<Multi_key> <acute> <W>          	: "Ẃ"   U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<Multi_key> <apostrophe> <W>     	: "Ẃ"   U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<dead_acute> <w>                 	: "ẃ"   U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<Multi_key> <acute> <w>          	: "ẃ"   U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<Multi_key> <apostrophe> <w>     	: "ẃ"   U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<dead_diaeresis> <W>             	: "Ẅ"   U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+<Multi_key> <quotedbl> <W>       	: "Ẅ"   U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+<dead_diaeresis> <w>             	: "ẅ"   U1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+<Multi_key> <quotedbl> <w>       	: "ẅ"   U1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+<dead_abovedot> <W>              	: "Ẇ"   U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
+<Multi_key> <period> <W>         	: "Ẇ"   U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
+<dead_abovedot> <w>              	: "ẇ"   U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
+<Multi_key> <period> <w>         	: "ẇ"   U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
+<dead_belowdot> <W>              	: "Ẉ"   U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
+<Multi_key> <exclam> <W>         	: "Ẉ"   U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
+<dead_belowdot> <w>              	: "ẉ"   U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
+<Multi_key> <exclam> <w>         	: "ẉ"   U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
+<dead_abovedot> <X>              	: "Ẋ"   U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
+<Multi_key> <period> <X>         	: "Ẋ"   U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
+<dead_abovedot> <x>              	: "ẋ"   U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
+<Multi_key> <period> <x>         	: "ẋ"   U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
+<dead_diaeresis> <X>             	: "Ẍ"   U1E8C # LATIN CAPITAL LETTER X WITH DIAERESIS
+<Multi_key> <quotedbl> <X>       	: "Ẍ"   U1E8C # LATIN CAPITAL LETTER X WITH DIAERESIS
+<dead_diaeresis> <x>             	: "ẍ"   U1E8D # LATIN SMALL LETTER X WITH DIAERESIS
+<Multi_key> <quotedbl> <x>       	: "ẍ"   U1E8D # LATIN SMALL LETTER X WITH DIAERESIS
+<dead_abovedot> <Y>              	: "Ẏ"   U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+<Multi_key> <period> <Y>         	: "Ẏ"   U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+<dead_abovedot> <y>              	: "ẏ"   U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
+<Multi_key> <period> <y>         	: "ẏ"   U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
+<dead_circumflex> <Z>            	: "Ẑ"   U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <Z>    	: "Ẑ"   U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+<dead_circumflex> <z>            	: "ẑ"   U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <z>    	: "ẑ"   U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+<dead_belowdot> <Z>              	: "Ẓ"   U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
+<Multi_key> <exclam> <Z>         	: "Ẓ"   U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
+<dead_belowdot> <z>              	: "ẓ"   U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
+<Multi_key> <exclam> <z>         	: "ẓ"   U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
+<dead_belowmacron> <Z>                  	: "Ẕ"   U1E94 # LATIN CAPITAL LETTER Z WITH LINE BELOW
+<dead_belowmacron> <z>                  	: "ẕ"   U1E95 # LATIN SMALL LETTER Z WITH LINE BELOW
+<dead_belowmacron> <h>                  	: "ẖ"   U1E96 # LATIN SMALL LETTER H WITH LINE BELOW
+<dead_diaeresis> <t>             	: "ẗ"   U1E97 # LATIN SMALL LETTER T WITH DIAERESIS
+<Multi_key> <quotedbl> <t>       	: "ẗ"   U1E97 # LATIN SMALL LETTER T WITH DIAERESIS
+<dead_abovering> <w>             	: "ẘ"   U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
+<Multi_key> <o> <w>              	: "ẘ"   U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
+<dead_abovering> <y>             	: "ẙ"   U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
+<Multi_key> <o> <y>              	: "ẙ"   U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
+<dead_abovedot> <U017F>      	: "ẛ"   U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+<Multi_key> <period> <U017F> 	: "ẛ"   U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+<dead_belowdot> <A>              	: "Ạ"   U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
+<Multi_key> <exclam> <A>         	: "Ạ"   U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
+<dead_belowdot> <a>              	: "ạ"   U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
+<Multi_key> <exclam> <a>         	: "ạ"   U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
+<dead_hook> <A>                  	: "Ả"   U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+<Multi_key> <question> <A>       	: "Ả"   U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+<dead_hook> <a>                  	: "ả"   U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
+<Multi_key> <question> <a>       	: "ả"   U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
+<dead_acute> <Acircumflex>       	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Acircumflex> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Acircumflex> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <A> 	: "Ấ"   U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <acircumflex>       	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <acircumflex> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <acircumflex> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <a> 	: "ấ"   U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Acircumflex>       	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Acircumflex> 	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <A> 	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <A> 	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <A> 	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <A> 	: "Ầ"   U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <acircumflex>       	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <acircumflex> 	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <a> 	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <a> 	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <a> 	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <a> 	: "ầ"   U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Acircumflex>        	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Acircumflex> 	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <A> 	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <A> 	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <A> 	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <A> 	: "Ẩ"   U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <acircumflex>        	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <acircumflex> 	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <a> 	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <a> 	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <a> 	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <a> 	: "ẩ"   U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Acircumflex>       	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Acircumflex> 	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <A> 	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <A> 	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <A> 	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <A> 	: "Ẫ"   U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <acircumflex>       	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <acircumflex> 	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <a> 	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <a> 	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <a> 	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <a> 	: "ẫ"   U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1EA0>    	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1EA0> 	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <A> 	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <A> 	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <A> 	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <A> 	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Acircumflex>    	: "Ậ"   U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1EA1>    	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1EA1> 	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <a> 	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <a> 	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <a> 	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <a> 	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <acircumflex>    	: "ậ"   U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_acute> <Abreve>            	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <Abreve>     	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <Abreve> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <dead_breve> <A>    	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <U> <A> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <b> <A> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <dead_breve> <A> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <b> <A>      	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <dead_breve> <A> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <b> <A> 	: "Ắ"   U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <abreve>            	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <abreve>     	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <abreve> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <dead_breve> <a>    	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <U> <a> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <b> <a> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <dead_breve> <a> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <b> <a>      	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <dead_breve> <a> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <b> <a> 	: "ắ"   U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_grave> <Abreve>            	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <Abreve>     	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <dead_breve> <A>    	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <U> <A> 	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <b> <A> 	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <dead_breve> <A> 	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <b> <A>      	: "Ằ"   U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <abreve>            	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <abreve>     	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <dead_breve> <a>    	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <U> <a> 	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <b> <a> 	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <dead_breve> <a> 	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <b> <a>      	: "ằ"   U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_hook> <Abreve>             	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <Abreve>  	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <dead_breve> <A>     	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <U> <A>  	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <b> <A>  	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <dead_breve> <A> 	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <b> <A>   	: "Ẳ"   U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <abreve>             	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <abreve>  	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <dead_breve> <a>     	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <U> <a>  	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <b> <a>  	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <dead_breve> <a> 	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <b> <a>   	: "ẳ"   U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_tilde> <Abreve>            	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <Abreve> 	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <dead_breve> <A>    	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <U> <A> 	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <b> <A> 	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <dead_breve> <A> 	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <b> <A> 	: "Ẵ"   U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <abreve>            	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <abreve> 	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <dead_breve> <a>    	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <U> <a> 	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <b> <a> 	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <dead_breve> <a> 	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <b> <a> 	: "ẵ"   U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_breve> <U1EA0>         	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <U1EA0>      	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <U1EA0>      	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <dead_belowdot> <A> 	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <Multi_key> <exclam> <A> 	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <dead_belowdot> <A> 	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <exclam> <A>     	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <dead_belowdot> <A> 	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <exclam> <A>     	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <Abreve>         	: "Ặ"   U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <U1EA1>         	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <U1EA1>      	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <U1EA1>      	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <dead_belowdot> <a> 	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <Multi_key> <exclam> <a> 	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <dead_belowdot> <a> 	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <exclam> <a>     	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <dead_belowdot> <a> 	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <exclam> <a>     	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <abreve>         	: "ặ"   U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <E>              	: "Ẹ"   U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
+<Multi_key> <exclam> <E>         	: "Ẹ"   U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
+<dead_belowdot> <e>              	: "ẹ"   U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
+<Multi_key> <exclam> <e>         	: "ẹ"   U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
+<dead_hook> <E>                  	: "Ẻ"   U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+<Multi_key> <question> <E>       	: "Ẻ"   U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+<dead_hook> <e>                  	: "ẻ"   U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
+<Multi_key> <question> <e>       	: "ẻ"   U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
+<dead_tilde> <E>                 	: "Ẽ"   U1EBC # LATIN CAPITAL LETTER E WITH TILDE
+<Multi_key> <asciitilde> <E>     	: "Ẽ"   U1EBC # LATIN CAPITAL LETTER E WITH TILDE
+<dead_tilde> <e>                 	: "ẽ"   U1EBD # LATIN SMALL LETTER E WITH TILDE
+<Multi_key> <asciitilde> <e>     	: "ẽ"   U1EBD # LATIN SMALL LETTER E WITH TILDE
+<dead_acute> <Ecircumflex>       	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Ecircumflex> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Ecircumflex> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <E> 	: "Ế"   U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <ecircumflex>       	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <ecircumflex> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <ecircumflex> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <e> 	: "ế"   U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Ecircumflex>       	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Ecircumflex> 	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <E> 	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <E> 	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <E> 	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <E> 	: "Ề"   U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <ecircumflex>       	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <ecircumflex> 	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <e> 	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <e> 	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <e> 	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <e> 	: "ề"   U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Ecircumflex>        	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Ecircumflex> 	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <E> 	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <E> 	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <E> 	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <E> 	: "Ể"   U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <ecircumflex>        	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <ecircumflex> 	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <e> 	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <e> 	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <e> 	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <e> 	: "ể"   U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Ecircumflex>       	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Ecircumflex> 	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <E> 	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <E> 	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <E> 	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <E> 	: "Ễ"   U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <ecircumflex>       	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <ecircumflex> 	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <e> 	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <e> 	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <e> 	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <e> 	: "ễ"   U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1EB8>    	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1EB8> 	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <E> 	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <E> 	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <E> 	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <E> 	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Ecircumflex>    	: "Ệ"   U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1EB9>    	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1EB9> 	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <e> 	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <e> 	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <e> 	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <e> 	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <ecircumflex>    	: "ệ"   U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_hook> <I>                  	: "Ỉ"   U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+<Multi_key> <question> <I>       	: "Ỉ"   U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+<dead_hook> <i>                  	: "ỉ"   U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
+<Multi_key> <question> <i>       	: "ỉ"   U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
+<dead_belowdot> <I>              	: "Ị"   U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
+<Multi_key> <exclam> <I>         	: "Ị"   U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
+<dead_belowdot> <i>              	: "ị"   U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
+<Multi_key> <exclam> <i>         	: "ị"   U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
+<dead_belowdot> <O>              	: "Ọ"   U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
+<Multi_key> <exclam> <O>         	: "Ọ"   U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
+<dead_belowdot> <o>              	: "ọ"   U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
+<Multi_key> <exclam> <o>         	: "ọ"   U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
+<dead_hook> <O>                  	: "Ỏ"   U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+<Multi_key> <question> <O>       	: "Ỏ"   U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+<dead_hook> <o>                  	: "ỏ"   U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
+<Multi_key> <question> <o>       	: "ỏ"   U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
+<dead_acute> <Ocircumflex>       	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Ocircumflex> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Ocircumflex> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <O> 	: "Ố"   U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <ocircumflex>       	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <ocircumflex> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <ocircumflex> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <o> 	: "ố"   U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Ocircumflex>       	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Ocircumflex> 	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <O> 	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <O> 	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <O> 	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <O> 	: "Ồ"   U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <ocircumflex>       	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <ocircumflex> 	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <o> 	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <o> 	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <o> 	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <o> 	: "ồ"   U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Ocircumflex>        	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Ocircumflex> 	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <O> 	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <O> 	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <O> 	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <O> 	: "Ổ"   U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <ocircumflex>        	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <ocircumflex> 	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <o> 	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <o> 	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <o> 	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <o> 	: "ổ"   U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Ocircumflex>       	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Ocircumflex> 	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <O> 	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <O> 	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <O> 	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <O> 	: "Ỗ"   U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <ocircumflex>       	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <ocircumflex> 	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <o> 	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <o> 	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <o> 	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <o> 	: "ỗ"   U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1ECC>    	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ECC> 	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <O> 	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <O> 	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <O> 	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <O> 	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Ocircumflex>    	: "Ộ"   U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1ECD>    	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ECD> 	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <o> 	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <o> 	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <o> 	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <o> 	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <ocircumflex>    	: "ộ"   U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_acute> <Ohorn>             	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <Ohorn>      	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <Ohorn> 	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <O>     	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <O> 	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <O> 	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <O>   	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <O> 	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <O> 	: "Ớ"   U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <ohorn>             	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <ohorn>      	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <ohorn> 	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <o>     	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <o> 	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <o> 	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <o>   	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <o> 	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <o> 	: "ớ"   U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_grave> <Ohorn>             	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <Ohorn>      	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <O>     	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <O> 	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <O> 	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <O>   	: "Ờ"   U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <ohorn>             	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <ohorn>      	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <o>     	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <o> 	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <o> 	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <o>   	: "ờ"   U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_hook> <Ohorn>              	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <Ohorn>   	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <O>      	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <O> 	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <O> 	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <O> 	: "Ở"   U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <ohorn>              	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <ohorn>   	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <o>      	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <o> 	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <o> 	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <o> 	: "ở"   U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_tilde> <Ohorn>             	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <Ohorn> 	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <O>     	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <O> 	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <O> 	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <O> 	: "Ỡ"   U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <ohorn>             	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <ohorn> 	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <o>     	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <o> 	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <o> 	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <o> 	: "ỡ"   U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_belowdot> <Ohorn>          	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <Ohorn>     	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <O>  	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <O> 	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <O> 	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <O>  	: "Ợ"   U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <ohorn>          	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <ohorn>     	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <o>  	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <o> 	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <o> 	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <o>  	: "ợ"   U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <U>              	: "Ụ"   U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
+<Multi_key> <exclam> <U>         	: "Ụ"   U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
+<dead_belowdot> <u>              	: "ụ"   U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
+<Multi_key> <exclam> <u>         	: "ụ"   U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
+<dead_hook> <U>                  	: "Ủ"   U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+<Multi_key> <question> <U>       	: "Ủ"   U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+<dead_hook> <u>                  	: "ủ"   U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
+<Multi_key> <question> <u>       	: "ủ"   U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
+<dead_acute> <Uhorn>             	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <Uhorn>      	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <Uhorn> 	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <U>     	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <U> 	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <U> 	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <U>   	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <U> 	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <U> 	: "Ứ"   U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <uhorn>             	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <uhorn>      	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <uhorn> 	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <u>     	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <u> 	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <u> 	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <u>   	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <u> 	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <u> 	: "ứ"   U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_grave> <Uhorn>             	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <Uhorn>      	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <U>     	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <U> 	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <U> 	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <U>   	: "Ừ"   U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <uhorn>             	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <uhorn>      	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <u>     	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <u> 	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <u> 	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <u>   	: "ừ"   U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_hook> <Uhorn>              	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <Uhorn>   	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <U>      	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <U> 	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <U> 	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <U> 	: "Ử"   U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <uhorn>              	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <uhorn>   	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <u>      	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <u> 	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <u> 	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <u> 	: "ử"   U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_tilde> <Uhorn>             	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <Uhorn> 	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <U>     	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <U> 	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <U> 	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <U> 	: "Ữ"   U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <uhorn>             	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <uhorn> 	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <u>     	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <u> 	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <u> 	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <u> 	: "ữ"   U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_belowdot> <Uhorn>          	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <Uhorn>     	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <U>  	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <U> 	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <U> 	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <U>  	: "Ự"   U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <uhorn>          	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <uhorn>     	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <u>  	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <u> 	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <u> 	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <u>  	: "ự"   U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_grave> <Y>                 	: "Ỳ"   U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+<Multi_key> <grave> <Y>          	: "Ỳ"   U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+<dead_grave> <y>                 	: "ỳ"   U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+<Multi_key> <grave> <y>          	: "ỳ"   U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+<dead_belowdot> <Y>              	: "Ỵ"   U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
+<Multi_key> <exclam> <Y>         	: "Ỵ"   U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
+<dead_belowdot> <y>              	: "ỵ"   U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
+<Multi_key> <exclam> <y>         	: "ỵ"   U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
+<dead_hook> <Y>                  	: "Ỷ"   U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+<Multi_key> <question> <Y>       	: "Ỷ"   U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+<dead_hook> <y>                  	: "ỷ"   U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
+<Multi_key> <question> <y>       	: "ỷ"   U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
+<dead_tilde> <Y>                 	: "Ỹ"   U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
+<Multi_key> <asciitilde> <Y>     	: "Ỹ"   U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
+<dead_tilde> <y>                 	: "ỹ"   U1EF9 # LATIN SMALL LETTER Y WITH TILDE
+<Multi_key> <asciitilde> <y>     	: "ỹ"   U1EF9 # LATIN SMALL LETTER Y WITH TILDE
+<dead_psili> <Greek_alpha>        	: "ἀ"   U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
+<Multi_key> <parenright> <Greek_alpha> 	: "ἀ"   U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
+<dead_dasia> <Greek_alpha>        	: "ἁ"   U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
+<Multi_key> <parenleft> <Greek_alpha> 	: "ἁ"   U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
+<dead_grave> <U1F00>         	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F00>  	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_alpha> 	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_alpha> 	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_alpha> 	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_alpha> 	: "ἂ"   U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U1F01>         	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F01>  	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_alpha> 	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_alpha> 	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_alpha> 	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_alpha> 	: "ἃ"   U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_acute> <U1F00>         	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F00>  	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F00> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_alpha> 	: "ἄ"   U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U1F01>         	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F01>  	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F01> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_alpha> 	: "ἅ"   U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<dead_tilde> <U1F00>         	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F00> 	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_alpha> 	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_alpha> 	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_alpha> 	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_alpha> 	: "ἆ"   U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F01>         	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F01> 	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_alpha> 	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_alpha> 	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_alpha> 	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_alpha> 	: "ἇ"   U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_ALPHA>        	: "Ἀ"   U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
+<Multi_key> <parenright> <Greek_ALPHA> 	: "Ἀ"   U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
+<dead_dasia> <Greek_ALPHA>        	: "Ἁ"   U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
+<Multi_key> <parenleft> <Greek_ALPHA> 	: "Ἁ"   U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
+<dead_grave> <U1F08>         	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F08>  	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_ALPHA> 	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_ALPHA> 	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_ALPHA> 	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_ALPHA> 	: "Ἂ"   U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U1F09>         	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F09>  	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_ALPHA> 	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_ALPHA> 	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_ALPHA> 	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_ALPHA> 	: "Ἃ"   U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_acute> <U1F08>         	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F08>  	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F08> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_ALPHA> 	: "Ἄ"   U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U1F09>         	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F09>  	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F09> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_ALPHA> 	: "Ἅ"   U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<dead_tilde> <U1F08>         	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F08> 	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_ALPHA> 	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_ALPHA> 	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_ALPHA> 	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_ALPHA> 	: "Ἆ"   U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F09>         	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F09> 	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_ALPHA> 	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_ALPHA> 	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_ALPHA> 	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_ALPHA> 	: "Ἇ"   U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_epsilon>      	: "ἐ"   U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_epsilon> 	: "ἐ"   U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
+<dead_dasia> <Greek_epsilon>      	: "ἑ"   U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_epsilon> 	: "ἑ"   U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
+<dead_grave> <U1F10>         	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F10>  	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_epsilon> 	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_epsilon> 	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_epsilon> 	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_epsilon> 	: "ἒ"   U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U1F11>         	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F11>  	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_epsilon> 	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_epsilon> 	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_epsilon> 	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_epsilon> 	: "ἓ"   U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_acute> <U1F10>         	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F10>  	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F10> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_epsilon> 	: "ἔ"   U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U1F11>         	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F11>  	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F11> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_epsilon> 	: "ἕ"   U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<dead_psili> <Greek_EPSILON>      	: "Ἐ"   U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_EPSILON> 	: "Ἐ"   U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
+<dead_dasia> <Greek_EPSILON>      	: "Ἑ"   U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_EPSILON> 	: "Ἑ"   U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
+<dead_grave> <U1F18>         	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F18>  	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_EPSILON> 	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_EPSILON> 	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_EPSILON> 	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_EPSILON> 	: "Ἒ"   U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U1F19>         	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F19>  	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_EPSILON> 	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_EPSILON> 	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_EPSILON> 	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_EPSILON> 	: "Ἓ"   U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_acute> <U1F18>         	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F18>  	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F18> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_EPSILON> 	: "Ἔ"   U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U1F19>         	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F19>  	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F19> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_EPSILON> 	: "Ἕ"   U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<dead_psili> <Greek_eta>          	: "ἠ"   U1F20 # GREEK SMALL LETTER ETA WITH PSILI
+<Multi_key> <parenright> <Greek_eta> 	: "ἠ"   U1F20 # GREEK SMALL LETTER ETA WITH PSILI
+<dead_dasia> <Greek_eta>          	: "ἡ"   U1F21 # GREEK SMALL LETTER ETA WITH DASIA
+<Multi_key> <parenleft> <Greek_eta> 	: "ἡ"   U1F21 # GREEK SMALL LETTER ETA WITH DASIA
+<dead_grave> <U1F20>         	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F20>  	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_eta> 	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_eta> 	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_eta> 	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_eta> 	: "ἢ"   U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U1F21>         	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F21>  	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_eta> 	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_eta> 	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_eta> 	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_eta> 	: "ἣ"   U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_acute> <U1F20>         	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F20>  	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F20> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_eta> 	: "ἤ"   U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U1F21>         	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F21>  	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F21> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_eta> 	: "ἥ"   U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<dead_tilde> <U1F20>         	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F20> 	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_eta> 	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_eta> 	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_eta> 	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_eta> 	: "ἦ"   U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F21>         	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F21> 	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_eta> 	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_eta> 	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_eta> 	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_eta> 	: "ἧ"   U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_ETA>          	: "Ἠ"   U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
+<Multi_key> <parenright> <Greek_ETA> 	: "Ἠ"   U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
+<dead_dasia> <Greek_ETA>          	: "Ἡ"   U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
+<Multi_key> <parenleft> <Greek_ETA> 	: "Ἡ"   U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
+<dead_grave> <U1F28>         	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F28>  	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_ETA> 	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_ETA> 	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_ETA> 	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_ETA> 	: "Ἢ"   U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U1F29>         	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F29>  	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_ETA> 	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_ETA> 	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_ETA> 	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_ETA> 	: "Ἣ"   U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_acute> <U1F28>         	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F28>  	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F28> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_ETA> 	: "Ἤ"   U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U1F29>         	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F29>  	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F29> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_ETA> 	: "Ἥ"   U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<dead_tilde> <U1F28>         	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F28> 	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_ETA> 	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_ETA> 	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_ETA> 	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_ETA> 	: "Ἦ"   U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F29>         	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F29> 	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_ETA> 	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_ETA> 	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_ETA> 	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_ETA> 	: "Ἧ"   U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_iota>         	: "ἰ"   U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
+<Multi_key> <parenright> <Greek_iota> 	: "ἰ"   U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
+<dead_dasia> <Greek_iota>         	: "ἱ"   U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
+<Multi_key> <parenleft> <Greek_iota> 	: "ἱ"   U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
+<dead_grave> <U1F30>         	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F30>  	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_iota> 	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_iota> 	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_iota> 	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_iota> 	: "ἲ"   U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U1F31>         	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F31>  	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_iota> 	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_iota> 	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_iota> 	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_iota> 	: "ἳ"   U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_acute> <U1F30>         	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F30>  	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F30> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_iota> 	: "ἴ"   U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U1F31>         	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F31>  	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F31> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_iota> 	: "ἵ"   U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<dead_tilde> <U1F30>         	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F30> 	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_iota> 	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_iota> 	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_iota> 	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_iota> 	: "ἶ"   U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F31>         	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F31> 	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_iota> 	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_iota> 	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_iota> 	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_iota> 	: "ἷ"   U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_IOTA>         	: "Ἰ"   U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
+<Multi_key> <parenright> <Greek_IOTA> 	: "Ἰ"   U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
+<dead_dasia> <Greek_IOTA>         	: "Ἱ"   U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
+<Multi_key> <parenleft> <Greek_IOTA> 	: "Ἱ"   U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
+<dead_grave> <U1F38>         	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F38>  	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_IOTA> 	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_IOTA> 	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_IOTA> 	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_IOTA> 	: "Ἲ"   U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U1F39>         	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F39>  	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_IOTA> 	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_IOTA> 	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_IOTA> 	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_IOTA> 	: "Ἳ"   U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_acute> <U1F38>         	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F38>  	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F38> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_IOTA> 	: "Ἴ"   U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U1F39>         	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F39>  	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F39> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_IOTA> 	: "Ἵ"   U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<dead_tilde> <U1F38>         	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F38> 	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_IOTA> 	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_IOTA> 	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_IOTA> 	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_IOTA> 	: "Ἶ"   U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F39>         	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F39> 	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_IOTA> 	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_IOTA> 	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_IOTA> 	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_IOTA> 	: "Ἷ"   U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_omicron>      	: "ὀ"   U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
+<Multi_key> <parenright> <Greek_omicron> 	: "ὀ"   U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
+<dead_dasia> <Greek_omicron>      	: "ὁ"   U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
+<Multi_key> <parenleft> <Greek_omicron> 	: "ὁ"   U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
+<dead_grave> <U1F40>         	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F40>  	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_omicron> 	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_omicron> 	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_omicron> 	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_omicron> 	: "ὂ"   U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U1F41>         	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F41>  	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_omicron> 	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_omicron> 	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_omicron> 	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_omicron> 	: "ὃ"   U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_acute> <U1F40>         	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F40>  	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F40> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_omicron> 	: "ὄ"   U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U1F41>         	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F41>  	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F41> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_omicron> 	: "ὅ"   U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<dead_psili> <Greek_OMICRON>      	: "Ὀ"   U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
+<Multi_key> <parenright> <Greek_OMICRON> 	: "Ὀ"   U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
+<dead_dasia> <Greek_OMICRON>      	: "Ὁ"   U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
+<Multi_key> <parenleft> <Greek_OMICRON> 	: "Ὁ"   U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
+<dead_grave> <U1F48>         	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F48>  	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_OMICRON> 	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_OMICRON> 	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_OMICRON> 	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_OMICRON> 	: "Ὂ"   U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U1F49>         	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F49>  	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_OMICRON> 	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_OMICRON> 	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_OMICRON> 	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_OMICRON> 	: "Ὃ"   U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_acute> <U1F48>         	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F48>  	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F48> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_OMICRON> 	: "Ὄ"   U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U1F49>         	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F49>  	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F49> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_OMICRON> 	: "Ὅ"   U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<dead_psili> <Greek_upsilon>      	: "ὐ"   U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_upsilon> 	: "ὐ"   U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
+<dead_dasia> <Greek_upsilon>      	: "ὑ"   U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_upsilon> 	: "ὑ"   U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
+<dead_grave> <U1F50>         	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F50>  	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_upsilon> 	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_upsilon> 	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_upsilon> 	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_upsilon> 	: "ὒ"   U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <U1F51>         	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F51>  	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_upsilon> 	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_upsilon> 	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_upsilon> 	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_upsilon> 	: "ὓ"   U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_acute> <U1F50>         	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F50>  	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F50> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_upsilon> 	: "ὔ"   U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <U1F51>         	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F51>  	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F51> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_upsilon> 	: "ὕ"   U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<dead_tilde> <U1F50>         	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F50> 	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_upsilon> 	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_upsilon> 	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_upsilon> 	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_upsilon> 	: "ὖ"   U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F51>         	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F51> 	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_upsilon> 	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_upsilon> 	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_upsilon> 	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_upsilon> 	: "ὗ"   U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_dasia> <Greek_UPSILON>      	: "Ὑ"   U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_UPSILON> 	: "Ὑ"   U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
+<dead_grave> <U1F59>         	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F59>  	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_UPSILON> 	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_UPSILON> 	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_UPSILON> 	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_UPSILON> 	: "Ὓ"   U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_acute> <U1F59>         	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F59>  	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F59> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_UPSILON> 	: "Ὕ"   U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<dead_tilde> <U1F59>         	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F59> 	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_UPSILON> 	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_UPSILON> 	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_UPSILON> 	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_UPSILON> 	: "Ὗ"   U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_omega>        	: "ὠ"   U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
+<Multi_key> <parenright> <Greek_omega> 	: "ὠ"   U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
+<dead_dasia> <Greek_omega>        	: "ὡ"   U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
+<Multi_key> <parenleft> <Greek_omega> 	: "ὡ"   U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
+<dead_grave> <U1F60>         	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F60>  	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_omega> 	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_omega> 	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_omega> 	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_omega> 	: "ὢ"   U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U1F61>         	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F61>  	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_omega> 	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_omega> 	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_omega> 	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_omega> 	: "ὣ"   U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_acute> <U1F60>         	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F60>  	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F60> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_omega> 	: "ὤ"   U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U1F61>         	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F61>  	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F61> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_omega> 	: "ὥ"   U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<dead_tilde> <U1F60>         	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F60> 	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_omega> 	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_omega> 	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_omega> 	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_omega> 	: "ὦ"   U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F61>         	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F61> 	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_omega> 	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_omega> 	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_omega> 	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_omega> 	: "ὧ"   U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_psili> <Greek_OMEGA>        	: "Ὠ"   U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
+<Multi_key> <parenright> <Greek_OMEGA> 	: "Ὠ"   U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
+<dead_dasia> <Greek_OMEGA>        	: "Ὡ"   U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
+<Multi_key> <parenleft> <Greek_OMEGA> 	: "Ὡ"   U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
+<dead_grave> <U1F68>         	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1F68>  	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <dead_psili> <Greek_OMEGA> 	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_OMEGA> 	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <dead_psili> <Greek_OMEGA> 	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_OMEGA> 	: "Ὢ"   U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U1F69>         	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1F69>  	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <dead_dasia> <Greek_OMEGA> 	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_OMEGA> 	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <dead_dasia> <Greek_OMEGA> 	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_OMEGA> 	: "Ὣ"   U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_acute> <U1F68>         	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1F68>  	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1F68> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <dead_psili> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <dead_psili> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <dead_psili> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_OMEGA> 	: "Ὤ"   U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U1F69>         	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1F69>  	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1F69> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <dead_dasia> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <dead_dasia> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <dead_dasia> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_OMEGA> 	: "Ὥ"   U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<dead_tilde> <U1F68>         	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F68> 	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <dead_psili> <Greek_OMEGA> 	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_OMEGA> 	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_psili> <Greek_OMEGA> 	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_OMEGA> 	: "Ὦ"   U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1F69>         	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1F69> 	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <dead_dasia> <Greek_OMEGA> 	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_OMEGA> 	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_dasia> <Greek_OMEGA> 	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_OMEGA> 	: "Ὧ"   U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_grave> <Greek_alpha>       	: "ὰ"   U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
+<Multi_key> <grave> <Greek_alpha> 	: "ὰ"   U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
+<dead_grave> <Greek_epsilon>     	: "ὲ"   U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
+<Multi_key> <grave> <Greek_epsilon> 	: "ὲ"   U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
+<dead_grave> <Greek_eta>         	: "ὴ"   U1F74 # GREEK SMALL LETTER ETA WITH VARIA
+<Multi_key> <grave> <Greek_eta>  	: "ὴ"   U1F74 # GREEK SMALL LETTER ETA WITH VARIA
+<dead_grave> <Greek_iota>        	: "ὶ"   U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
+<Multi_key> <grave> <Greek_iota> 	: "ὶ"   U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
+<dead_grave> <Greek_omicron>     	: "ὸ"   U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
+<Multi_key> <grave> <Greek_omicron> 	: "ὸ"   U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
+<dead_grave> <Greek_upsilon>     	: "ὺ"   U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
+<Multi_key> <grave> <Greek_upsilon> 	: "ὺ"   U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
+<dead_grave> <Greek_omega>       	: "ὼ"   U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
+<Multi_key> <grave> <Greek_omega> 	: "ὼ"   U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
+<dead_iota> <U1F00>          	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F00> 	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_alpha> 	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_alpha> 	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_alpha> 	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_alpha> 	: "ᾀ"   U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1F01>          	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F01> 	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_alpha> 	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_alpha> 	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_alpha> 	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_alpha> 	: "ᾁ"   U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1F02>          	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F02> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F00> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F00> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F00> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F00> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_alpha> 	: "ᾂ"   U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F03>          	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F03> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F01> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F01> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F01> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F01> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_alpha> 	: "ᾃ"   U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F04>          	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F04> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F00> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_alpha> 	: "ᾄ"   U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F05>          	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F05> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F01> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_alpha> 	: "ᾅ"   U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F06>          	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F06> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F00> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F00> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F00> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F00> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_alpha> 	: "ᾆ"   U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F07>          	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F07> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F01> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F01> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F01> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F01> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_alpha> 	: "ᾇ"   U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F08>          	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F08> 	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_ALPHA> 	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_ALPHA> 	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_ALPHA> 	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_ALPHA> 	: "ᾈ"   U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1F09>          	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F09> 	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_ALPHA> 	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_ALPHA> 	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_ALPHA> 	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_ALPHA> 	: "ᾉ"   U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1F0A>          	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0A> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F08> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F08> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F08> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F08> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_ALPHA> 	: "ᾊ"   U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F0B>          	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0B> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F09> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F09> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F09> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F09> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_ALPHA> 	: "ᾋ"   U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F0C>          	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0C> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F08> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_ALPHA> 	: "ᾌ"   U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F0D>          	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0D> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F09> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_ALPHA> 	: "ᾍ"   U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F0E>          	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0E> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F08> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F08> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F08> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F08> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_ALPHA> 	: "ᾎ"   U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1F0F>          	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F0F> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F09> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F09> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F09> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F09> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_ALPHA> 	: "ᾏ"   U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1F20>          	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F20> 	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_eta> 	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_eta> 	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_eta> 	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_eta> 	: "ᾐ"   U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1F21>          	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F21> 	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_eta> 	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_eta> 	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_eta> 	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_eta> 	: "ᾑ"   U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1F22>          	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F22> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F20> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F20> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F20> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F20> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_eta> 	: "ᾒ"   U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F23>          	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F23> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F21> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F21> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F21> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F21> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_eta> 	: "ᾓ"   U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F24>          	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F24> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F20> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_eta> 	: "ᾔ"   U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F25>          	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F25> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F21> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_eta> 	: "ᾕ"   U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F26>          	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F26> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F20> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F20> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F20> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F20> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_eta> 	: "ᾖ"   U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F27>          	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F27> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F21> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F21> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F21> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F21> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_eta> 	: "ᾗ"   U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F28>          	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F28> 	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_ETA> 	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_ETA> 	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_ETA> 	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_ETA> 	: "ᾘ"   U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1F29>          	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F29> 	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_ETA> 	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_ETA> 	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_ETA> 	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_ETA> 	: "ᾙ"   U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1F2A>          	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2A> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F28> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F28> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F28> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F28> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_ETA> 	: "ᾚ"   U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F2B>          	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2B> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F29> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F29> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F29> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F29> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_ETA> 	: "ᾛ"   U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F2C>          	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2C> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F28> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_ETA> 	: "ᾜ"   U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F2D>          	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2D> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F29> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_ETA> 	: "ᾝ"   U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F2E>          	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2E> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F28> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F28> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F28> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F28> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_ETA> 	: "ᾞ"   U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1F2F>          	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F2F> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F29> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F29> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F29> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F29> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_ETA> 	: "ᾟ"   U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1F60>          	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F60> 	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_omega> 	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_omega> 	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_omega> 	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_omega> 	: "ᾠ"   U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1F61>          	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F61> 	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_omega> 	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_omega> 	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_omega> 	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_omega> 	: "ᾡ"   U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1F62>          	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F62> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F60> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F60> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F60> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F60> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_omega> 	: "ᾢ"   U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F63>          	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F63> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1F61> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F61> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F61> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F61> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_omega> 	: "ᾣ"   U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1F64>          	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F64> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F60> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_omega> 	: "ᾤ"   U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F65>          	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F65> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F61> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_omega> 	: "ᾥ"   U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1F66>          	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F66> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F60> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F60> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F60> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F60> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_omega> 	: "ᾦ"   U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F67>          	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F67> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F61> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F61> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F61> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F61> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_omega> 	: "ᾧ"   U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1F68>          	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F68> 	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <dead_psili> <Greek_OMEGA> 	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_OMEGA> 	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_psili> <Greek_OMEGA> 	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_OMEGA> 	: "ᾨ"   U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1F69>          	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F69> 	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <dead_dasia> <Greek_OMEGA> 	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_OMEGA> 	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_dasia> <Greek_OMEGA> 	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_OMEGA> 	: "ᾩ"   U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1F6A>          	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6A> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F68> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F68> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F68> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F68> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_psili> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_psili> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_psili> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_psili> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_OMEGA> 	: "ᾪ"   U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F6B>          	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6B> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1F69> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1F69> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1F69> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1F69> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <dead_dasia> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <dead_dasia> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <dead_dasia> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <dead_dasia> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_OMEGA> 	: "ᾫ"   U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1F6C>          	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6C> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F68> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_psili> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_OMEGA> 	: "ᾬ"   U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F6D>          	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6D> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1F69> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <dead_dasia> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_OMEGA> 	: "ᾭ"   U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1F6E>          	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6E> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F68> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F68> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F68> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F68> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_psili> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_psili> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_psili> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_psili> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_OMEGA> 	: "ᾮ"   U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1F6F>          	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F6F> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1F69> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1F69> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1F69> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1F69> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <dead_dasia> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <dead_dasia> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <dead_dasia> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <dead_dasia> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_OMEGA> 	: "ᾯ"   U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_breve> <Greek_alpha>       	: "ᾰ"   U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<Multi_key> <U> <Greek_alpha>    	: "ᾰ"   U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<Multi_key> <b> <Greek_alpha>    	: "ᾰ"   U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<dead_macron> <Greek_alpha>      	: "ᾱ"   U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<Multi_key> <macron> <Greek_alpha> 	: "ᾱ"   U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<Multi_key> <underscore> <Greek_alpha> 	: "ᾱ"   U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<dead_iota> <U1F70>          	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F70> 	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_alpha> 	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_alpha> 	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_alpha> 	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_alpha> 	: "ᾲ"   U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_alpha>        	: "ᾳ"   U1FB3 # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_alpha> 	: "ᾳ"   U1FB3 # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_alphaaccent>  	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_alphaaccent> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_alpha> 	: "ᾴ"   U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_tilde> <Greek_alpha>       	: "ᾶ"   U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_alpha> 	: "ᾶ"   U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+<dead_iota> <U1FB6>          	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1FB6> 	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_alpha> 	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_alpha> 	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_alpha> 	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_alpha> 	: "ᾷ"   U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_breve> <Greek_ALPHA>       	: "Ᾰ"   U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<Multi_key> <U> <Greek_ALPHA>    	: "Ᾰ"   U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<Multi_key> <b> <Greek_ALPHA>    	: "Ᾰ"   U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<dead_macron> <Greek_ALPHA>      	: "Ᾱ"   U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<Multi_key> <macron> <Greek_ALPHA> 	: "Ᾱ"   U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<Multi_key> <underscore> <Greek_ALPHA> 	: "Ᾱ"   U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<dead_grave> <Greek_ALPHA>       	: "Ὰ"   U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
+<Multi_key> <grave> <Greek_ALPHA> 	: "Ὰ"   U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
+<dead_iota> <Greek_ALPHA>        	: "ᾼ"   U1FBC # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_ALPHA> 	: "ᾼ"   U1FBC # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+<Multi_key> <diaeresis> <dead_tilde> 	: "῁"   U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
+<Multi_key> <diaeresis> <asciitilde> 	: "῁"   U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
+<dead_iota> <U1F74>          	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F74> 	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_eta> 	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_eta> 	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_eta> 	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_eta> 	: "ῂ"   U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_eta>          	: "ῃ"   U1FC3 # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_eta> 	: "ῃ"   U1FC3 # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_etaaccent>    	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_etaaccent> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_eta> 	: "ῄ"   U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_tilde> <Greek_eta>         	: "ῆ"   U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_eta> 	: "ῆ"   U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
+<dead_iota> <U1FC6>          	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1FC6> 	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_eta> 	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_eta> 	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_eta> 	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_eta> 	: "ῇ"   U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_grave> <Greek_EPSILON>     	: "Ὲ"   U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
+<Multi_key> <grave> <Greek_EPSILON> 	: "Ὲ"   U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
+<dead_grave> <Greek_ETA>         	: "Ὴ"   U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
+<Multi_key> <grave> <Greek_ETA>  	: "Ὴ"   U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
+<dead_iota> <Greek_ETA>          	: "ῌ"   U1FCC # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_ETA> 	: "ῌ"   U1FCC # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+<Multi_key> <U1FBF> <dead_grave> 	: "῍"   U1FCD # GREEK PSILI AND VARIA
+<Multi_key> <U1FBF> <grave>  	: "῍"   U1FCD # GREEK PSILI AND VARIA
+<Multi_key> <U1FBF> <dead_acute> 	: "῎"   U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1FBF> <acute>  	: "῎"   U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1FBF> <apostrophe> 	: "῎"   U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1FBF> <dead_tilde> 	: "῏"   U1FCF # GREEK PSILI AND PERISPOMENI
+<Multi_key> <U1FBF> <asciitilde> 	: "῏"   U1FCF # GREEK PSILI AND PERISPOMENI
+<dead_breve> <Greek_iota>        	: "ῐ"   U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<Multi_key> <U> <Greek_iota>     	: "ῐ"   U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<Multi_key> <b> <Greek_iota>     	: "ῐ"   U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<dead_macron> <Greek_iota>       	: "ῑ"   U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<Multi_key> <macron> <Greek_iota> 	: "ῑ"   U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<Multi_key> <underscore> <Greek_iota> 	: "ῑ"   U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<dead_grave> <Greek_iotadieresis> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <Greek_iotadieresis> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<dead_grave> <dead_diaeresis> <Greek_iota> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<dead_grave> <Multi_key> <quotedbl> <Greek_iota> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <dead_diaeresis> <Greek_iota> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <quotedbl> <Greek_iota> 	: "ῒ"   U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<dead_tilde> <Greek_iota>        	: "ῖ"   U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_iota> 	: "ῖ"   U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+<dead_tilde> <Greek_iotadieresis> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <Greek_iotadieresis> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <dead_diaeresis> <Greek_iota> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Multi_key> <quotedbl> <Greek_iota> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_diaeresis> <Greek_iota> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <quotedbl> <Greek_iota> 	: "ῗ"   U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_breve> <Greek_IOTA>        	: "Ῐ"   U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<Multi_key> <U> <Greek_IOTA>     	: "Ῐ"   U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<Multi_key> <b> <Greek_IOTA>     	: "Ῐ"   U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<dead_macron> <Greek_IOTA>       	: "Ῑ"   U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<Multi_key> <macron> <Greek_IOTA> 	: "Ῑ"   U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<Multi_key> <underscore> <Greek_IOTA> 	: "Ῑ"   U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<dead_grave> <Greek_IOTA>        	: "Ὶ"   U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
+<Multi_key> <grave> <Greek_IOTA> 	: "Ὶ"   U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
+<Multi_key> <U1FFE> <dead_grave> 	: "῝"   U1FDD # GREEK DASIA AND VARIA
+<Multi_key> <U1FFE> <grave>  	: "῝"   U1FDD # GREEK DASIA AND VARIA
+<Multi_key> <U1FFE> <dead_acute> 	: "῞"   U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1FFE> <acute>  	: "῞"   U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1FFE> <apostrophe> 	: "῞"   U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1FFE> <dead_tilde> 	: "῟"   U1FDF # GREEK DASIA AND PERISPOMENI
+<Multi_key> <U1FFE> <asciitilde> 	: "῟"   U1FDF # GREEK DASIA AND PERISPOMENI
+<dead_breve> <Greek_upsilon>     	: "ῠ"   U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<Multi_key> <U> <Greek_upsilon>  	: "ῠ"   U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<Multi_key> <b> <Greek_upsilon>  	: "ῠ"   U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<dead_macron> <Greek_upsilon>    	: "ῡ"   U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<Multi_key> <macron> <Greek_upsilon> 	: "ῡ"   U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<Multi_key> <underscore> <Greek_upsilon> 	: "ῡ"   U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<dead_grave> <Greek_upsilondieresis> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <Greek_upsilondieresis> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<dead_grave> <dead_diaeresis> <Greek_upsilon> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<dead_grave> <Multi_key> <quotedbl> <Greek_upsilon> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <dead_diaeresis> <Greek_upsilon> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <quotedbl> <Greek_upsilon> 	: "ῢ"   U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<dead_psili> <Greek_rho>          	: "ῤ"   U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
+<Multi_key> <parenright> <Greek_rho> 	: "ῤ"   U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
+<dead_dasia> <Greek_rho>          	: "ῥ"   U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
+<Multi_key> <parenleft> <Greek_rho> 	: "ῥ"   U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
+<dead_tilde> <Greek_upsilon>     	: "ῦ"   U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_upsilon> 	: "ῦ"   U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+<dead_tilde> <Greek_upsilondieresis> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <Greek_upsilondieresis> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <dead_diaeresis> <Greek_upsilon> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Multi_key> <quotedbl> <Greek_upsilon> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_diaeresis> <Greek_upsilon> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <quotedbl> <Greek_upsilon> 	: "ῧ"   U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_breve> <Greek_UPSILON>     	: "Ῠ"   U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<Multi_key> <U> <Greek_UPSILON>  	: "Ῠ"   U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<Multi_key> <b> <Greek_UPSILON>  	: "Ῠ"   U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<dead_macron> <Greek_UPSILON>    	: "Ῡ"   U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<Multi_key> <macron> <Greek_UPSILON> 	: "Ῡ"   U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<Multi_key> <underscore> <Greek_UPSILON> 	: "Ῡ"   U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<dead_grave> <Greek_UPSILON>     	: "Ὺ"   U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
+<Multi_key> <grave> <Greek_UPSILON> 	: "Ὺ"   U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
+<dead_dasia> <Greek_RHO>          	: "Ῥ"   U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
+<Multi_key> <parenleft> <Greek_RHO> 	: "Ῥ"   U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
+<Multi_key> <diaeresis> <dead_grave> 	: "῭"   U1FED # GREEK DIALYTIKA AND VARIA
+<Multi_key> <diaeresis> <grave>  	: "῭"   U1FED # GREEK DIALYTIKA AND VARIA
+<dead_iota> <U1F7C>          	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1F7C> 	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_omega> 	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_omega> 	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_omega> 	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_omega> 	: "ῲ"   U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_omega>        	: "ῳ"   U1FF3 # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_omega> 	: "ῳ"   U1FF3 # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_omegaaccent>  	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_omegaaccent> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_omega> 	: "ῴ"   U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_tilde> <Greek_omega>       	: "ῶ"   U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_omega> 	: "ῶ"   U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+<dead_iota> <U1FF6>          	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1FF6> 	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_omega> 	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_omega> 	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_omega> 	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_omega> 	: "ῷ"   U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_grave> <Greek_OMICRON>     	: "Ὸ"   U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
+<Multi_key> <grave> <Greek_OMICRON> 	: "Ὸ"   U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
+<dead_grave> <Greek_OMEGA>       	: "Ὼ"   U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
+<Multi_key> <grave> <Greek_OMEGA> 	: "Ὼ"   U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
+<dead_iota> <Greek_OMEGA>        	: "ῼ"   U1FFC # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_OMEGA> 	: "ῼ"   U1FFC # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+<dead_circumflex> <0>            	: "⁰"   U2070 # SUPERSCRIPT ZERO
+<Multi_key> <asciicircum> <0>    	: "⁰"   U2070 # SUPERSCRIPT ZERO
+<dead_circumflex> <KP_0>         	: "⁰"   U2070 # SUPERSCRIPT ZERO
+<Multi_key> <asciicircum> <KP_0> 	: "⁰"   U2070 # SUPERSCRIPT ZERO
+<dead_circumflex> <Multi_key> <underscore> <i> 	: "ⁱ"   U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<Multi_key> <asciicircum> <underscore> <i> 	: "ⁱ"   U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<dead_circumflex> <Multi_key> <underbar> <i> 	: "ⁱ"   U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<Multi_key> <asciicircum> <underbar> <i> 	: "ⁱ"   U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<dead_circumflex> <4>            	: "⁴"   U2074 # SUPERSCRIPT FOUR
+<Multi_key> <asciicircum> <4>    	: "⁴"   U2074 # SUPERSCRIPT FOUR
+<dead_circumflex> <KP_4>         	: "⁴"   U2074 # SUPERSCRIPT FOUR
+<Multi_key> <asciicircum> <KP_4> 	: "⁴"   U2074 # SUPERSCRIPT FOUR
+<dead_circumflex> <5>            	: "⁵"   U2075 # SUPERSCRIPT FIVE
+<Multi_key> <asciicircum> <5>    	: "⁵"   U2075 # SUPERSCRIPT FIVE
+<dead_circumflex> <KP_5>         	: "⁵"   U2075 # SUPERSCRIPT FIVE
+<Multi_key> <asciicircum> <KP_5> 	: "⁵"   U2075 # SUPERSCRIPT FIVE
+<dead_circumflex> <6>            	: "⁶"   U2076 # SUPERSCRIPT SIX
+<Multi_key> <asciicircum> <6>    	: "⁶"   U2076 # SUPERSCRIPT SIX
+<dead_circumflex> <KP_6>         	: "⁶"   U2076 # SUPERSCRIPT SIX
+<Multi_key> <asciicircum> <KP_6> 	: "⁶"   U2076 # SUPERSCRIPT SIX
+<dead_circumflex> <7>            	: "⁷"   U2077 # SUPERSCRIPT SEVEN
+<Multi_key> <asciicircum> <7>    	: "⁷"   U2077 # SUPERSCRIPT SEVEN
+<dead_circumflex> <KP_7>         	: "⁷"   U2077 # SUPERSCRIPT SEVEN
+<Multi_key> <asciicircum> <KP_7> 	: "⁷"   U2077 # SUPERSCRIPT SEVEN
+<dead_circumflex> <8>            	: "⁸"   U2078 # SUPERSCRIPT EIGHT
+<Multi_key> <asciicircum> <8>    	: "⁸"   U2078 # SUPERSCRIPT EIGHT
+<dead_circumflex> <KP_8>         	: "⁸"   U2078 # SUPERSCRIPT EIGHT
+<Multi_key> <asciicircum> <KP_8> 	: "⁸"   U2078 # SUPERSCRIPT EIGHT
+<dead_circumflex> <9>            	: "⁹"   U2079 # SUPERSCRIPT NINE
+<Multi_key> <asciicircum> <9>    	: "⁹"   U2079 # SUPERSCRIPT NINE
+<dead_circumflex> <KP_9>         	: "⁹"   U2079 # SUPERSCRIPT NINE
+<Multi_key> <asciicircum> <KP_9> 	: "⁹"   U2079 # SUPERSCRIPT NINE
+<dead_circumflex> <plus>         	: "⁺"   U207A # SUPERSCRIPT PLUS SIGN
+<Multi_key> <asciicircum> <plus> 	: "⁺"   U207A # SUPERSCRIPT PLUS SIGN
+<dead_circumflex> <KP_Add>       	: "⁺"   U207A # SUPERSCRIPT PLUS SIGN
+<Multi_key> <asciicircum> <KP_Add> 	: "⁺"   U207A # SUPERSCRIPT PLUS SIGN
+<dead_circumflex> <U2212>    	: "⁻"   U207B # SUPERSCRIPT MINUS
+<Multi_key> <asciicircum> <U2212> 	: "⁻"   U207B # SUPERSCRIPT MINUS
+<dead_circumflex> <equal>        	: "⁼"   U207C # SUPERSCRIPT EQUALS SIGN
+<Multi_key> <asciicircum> <equal> 	: "⁼"   U207C # SUPERSCRIPT EQUALS SIGN
+<dead_circumflex> <KP_Equal>     	: "⁼"   U207C # SUPERSCRIPT EQUALS SIGN
+<Multi_key> <asciicircum> <KP_Equal> 	: "⁼"   U207C # SUPERSCRIPT EQUALS SIGN
+<dead_circumflex> <parenleft>    	: "⁽"   U207D # SUPERSCRIPT LEFT PARENTHESIS
+<Multi_key> <asciicircum> <parenleft> 	: "⁽"   U207D # SUPERSCRIPT LEFT PARENTHESIS
+<dead_circumflex> <parenright>   	: "⁾"   U207E # SUPERSCRIPT RIGHT PARENTHESIS
+<Multi_key> <asciicircum> <parenright> 	: "⁾"   U207E # SUPERSCRIPT RIGHT PARENTHESIS
+<dead_circumflex> <Multi_key> <underscore> <n> 	: "ⁿ"   U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <asciicircum> <underscore> <n> 	: "ⁿ"   U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<dead_circumflex> <Multi_key> <underbar> <n> 	: "ⁿ"   U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <asciicircum> <underbar> <n> 	: "ⁿ"   U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <underscore> <0>     	: "₀"   U2080 # SUBSCRIPT ZERO
+<Multi_key> <underscore> <KP_0>  	: "₀"   U2080 # SUBSCRIPT ZERO
+<Multi_key> <underbar> <0>       	: "₀"   U2080 # SUBSCRIPT ZERO
+<Multi_key> <underbar> <KP_0>    	: "₀"   U2080 # SUBSCRIPT ZERO
+<Multi_key> <underscore> <1>     	: "₁"   U2081 # SUBSCRIPT ONE
+<Multi_key> <underscore> <KP_1>  	: "₁"   U2081 # SUBSCRIPT ONE
+<Multi_key> <underbar> <1>       	: "₁"   U2081 # SUBSCRIPT ONE
+<Multi_key> <underbar> <KP_1>    	: "₁"   U2081 # SUBSCRIPT ONE
+<Multi_key> <underscore> <2>     	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <KP_Space> 	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <KP_2>  	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <2>       	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <KP_Space> 	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <KP_2>    	: "₂"   U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <3>     	: "₃"   U2083 # SUBSCRIPT THREE
+<Multi_key> <underscore> <KP_3>  	: "₃"   U2083 # SUBSCRIPT THREE
+<Multi_key> <underbar> <3>       	: "₃"   U2083 # SUBSCRIPT THREE
+<Multi_key> <underbar> <KP_3>    	: "₃"   U2083 # SUBSCRIPT THREE
+<Multi_key> <underscore> <4>     	: "₄"   U2084 # SUBSCRIPT FOUR
+<Multi_key> <underscore> <KP_4>  	: "₄"   U2084 # SUBSCRIPT FOUR
+<Multi_key> <underbar> <4>       	: "₄"   U2084 # SUBSCRIPT FOUR
+<Multi_key> <underbar> <KP_4>    	: "₄"   U2084 # SUBSCRIPT FOUR
+<Multi_key> <underscore> <5>     	: "₅"   U2085 # SUBSCRIPT FIVE
+<Multi_key> <underscore> <KP_5>  	: "₅"   U2085 # SUBSCRIPT FIVE
+<Multi_key> <underbar> <5>       	: "₅"   U2085 # SUBSCRIPT FIVE
+<Multi_key> <underbar> <KP_5>    	: "₅"   U2085 # SUBSCRIPT FIVE
+<Multi_key> <underscore> <6>     	: "₆"   U2086 # SUBSCRIPT SIX
+<Multi_key> <underscore> <KP_6>  	: "₆"   U2086 # SUBSCRIPT SIX
+<Multi_key> <underbar> <6>       	: "₆"   U2086 # SUBSCRIPT SIX
+<Multi_key> <underbar> <KP_6>    	: "₆"   U2086 # SUBSCRIPT SIX
+<Multi_key> <underscore> <7>     	: "₇"   U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underscore> <KP_7>  	: "₇"   U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underbar> <7>       	: "₇"   U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underbar> <KP_7>    	: "₇"   U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underscore> <8>     	: "₈"   U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underscore> <KP_8>  	: "₈"   U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underbar> <8>       	: "₈"   U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underbar> <KP_8>    	: "₈"   U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underscore> <9>     	: "₉"   U2089 # SUBSCRIPT NINE
+<Multi_key> <underscore> <KP_9>  	: "₉"   U2089 # SUBSCRIPT NINE
+<Multi_key> <underbar> <9>       	: "₉"   U2089 # SUBSCRIPT NINE
+<Multi_key> <underbar> <KP_9>    	: "₉"   U2089 # SUBSCRIPT NINE
+<Multi_key> <underscore> <plus>  	: "₊"   U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underscore> <KP_Add> 	: "₊"   U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underbar> <plus>    	: "₊"   U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underbar> <KP_Add>  	: "₊"   U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underscore> <U2212> 	: "₋"   U208B # SUBSCRIPT MINUS
+<Multi_key> <underbar> <U2212> 	: "₋"   U208B # SUBSCRIPT MINUS
+<Multi_key> <underscore> <equal> 	: "₌"   U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underscore> <KP_Equal> 	: "₌"   U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underbar> <equal>   	: "₌"   U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underbar> <KP_Equal> 	: "₌"   U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underscore> <parenleft> 	: "₍"   U208D # SUBSCRIPT LEFT PARENTHESIS
+<Multi_key> <underbar> <parenleft> 	: "₍"   U208D # SUBSCRIPT LEFT PARENTHESIS
+<Multi_key> <underscore> <parenright> 	: "₎"   U208E # SUBSCRIPT RIGHT PARENTHESIS
+<Multi_key> <underbar> <parenright> 	: "₎"   U208E # SUBSCRIPT RIGHT PARENTHESIS
+<dead_circumflex> <Multi_key> <S> <M> 	: "℠"   U2120 # SERVICE MARK
+<Multi_key> <S> <M>		 	: "℠"   U2120 # SERVICE MARK
+<dead_circumflex> <Multi_key> <s> <M> 	: "℠"   U2120 # SERVICE MARK
+<Multi_key> <s> <M>		 	: "℠"   U2120 # SERVICE MARK
+<dead_circumflex> <Multi_key> <S> <m> 	: "℠"   U2120 # SERVICE MARK
+<Multi_key> <S> <m>		 	: "℠"   U2120 # SERVICE MARK
+<dead_circumflex> <Multi_key> <s> <m> 	: "℠"   U2120 # SERVICE MARK
+<Multi_key> <s> <m>		 	: "℠"   U2120 # SERVICE MARK
+<dead_circumflex> <Multi_key> <T> <M> 	: "™"   U2122 # TRADE MARK SIGN
+<Multi_key> <T> <M>		 	: "™"   U2122 # TRADE MARK SIGN
+<dead_circumflex> <Multi_key> <t> <M> 	: "™"   U2122 # TRADE MARK SIGN
+<Multi_key> <t> <M>		 	: "™"   U2122 # TRADE MARK SIGN
+<dead_circumflex> <Multi_key> <T> <m> 	: "™"   U2122 # TRADE MARK SIGN
+<Multi_key> <T> <m>		 	: "™"   U2122 # TRADE MARK SIGN
+<dead_circumflex> <Multi_key> <t> <m> 	: "™"   U2122 # TRADE MARK SIGN
+<Multi_key> <t> <m>		 	: "™"   U2122 # TRADE MARK SIGN
+<Multi_key> <1> <7>			: "⅐"	U2150 # VULGAR FRACTION ONE SEVENTH
+<Multi_key> <1> <9>			: "⅑"	U2151 # VULGAR FRACTION ONE NINTH
+<Multi_key> <1> <1> <0>			: "⅒"	U2152 # VULGAR FRACTION ONE TENTH
+<Multi_key> <1> <3>			: "⅓"	U2153 # VULGAR FRACTION ONE THIRD
+<Multi_key> <2> <3>			: "⅔"	U2154 # VULGAR FRACTION TWO THIRDS
+<Multi_key> <1> <5>			: "⅕"	U2155 # VULGAR FRACTION ONE FIFTH
+<Multi_key> <2> <5>			: "⅖"	U2156 # VULGAR FRACTION TWO FIFTHS
+<Multi_key> <3> <5>			: "⅗"	U2157 # VULGAR FRACTION THREE FIFTHS
+<Multi_key> <4> <5>			: "⅘"	U2158 # VULGAR FRACTION FOUR FIFTHS
+<Multi_key> <1> <6>			: "⅙"	U2159 # VULGAR FRACTION ONE SIXTH
+<Multi_key> <5> <6>			: "⅚"	U215A # VULGAR FRACTION FIVE SIXTHS
+<Multi_key> <1> <8>			: "⅛"	U215B # VULGAR FRACTION ONE EIGHTH
+<Multi_key> <3> <8>			: "⅜"	U215C # VULGAR FRACTION THREE EIGHTHS
+<Multi_key> <5> <8>			: "⅝"	U215D # VULGAR FRACTION FIVE EIGHTHS
+<Multi_key> <7> <8>			: "⅞"	U215E # VULGAR FRACTION SEVEN EIGHTHS
+<Multi_key> <0> <3>			: "↉"	U2189 # VULGAR FRACTION ZERO THIRDS
+<Multi_key> <slash> <leftarrow>  	: "↚"   U219A # LEFTWARDS ARROW WITH STROKE
+<Multi_key> <KP_Divide> <leftarrow> 	: "↚"   U219A # LEFTWARDS ARROW WITH STROKE
+<Multi_key> <slash> <rightarrow> 	: "↛"   U219B # RIGHTWARDS ARROW WITH STROKE
+<Multi_key> <KP_Divide> <rightarrow> 	: "↛"   U219B # RIGHTWARDS ARROW WITH STROKE
+<Multi_key> <slash> <U2194>  	: "↮"   U21AE # LEFT RIGHT ARROW WITH STROKE
+<Multi_key> <KP_Divide> <U2194> 	: "↮"   U21AE # LEFT RIGHT ARROW WITH STROKE
+<Multi_key> <less> <minus> 	: "←" U2190 # LEFTWARDS ARROW
+<Multi_key> <minus> <greater> 	: "→" U2192 # RIGHTWARDS ARROW
+<Multi_key> <U2203> <U0338> 	: "∄"   U2204 # THERE DOES NOT EXIST
+<Multi_key> <braceleft> <braceright>	: "∅"   U2205 # EMPTY SET
+<Multi_key> <U2208> <U0338> 	: "∉"   U2209 # NOT AN ELEMENT OF
+<Multi_key> <U220B> <U0338> 	: "∌"   U220C # DOES NOT CONTAIN AS MEMBER
+<Multi_key> <U2223> <U0338> 	: "∤"   U2224 # DOES NOT DIVIDE
+<Multi_key> <U2225> <U0338> 	: "∦"   U2226 # NOT PARALLEL TO
+<Multi_key> <U223C> <U0338> 	: "≁"   U2241 # NOT TILDE
+<Multi_key> <U2243> <U0338> 	: "≄"   U2244 # NOT ASYMPTOTICALLY EQUAL TO
+<Multi_key> <approximate> <U0338> 	: "≇"   U2247 # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+<Multi_key> <U2248> <U0338> 	: "≉"   U2249 # NOT ALMOST EQUAL TO
+<Multi_key> <slash> <equal>  	: "≠"   U2260 # NOT EQUAL TO
+<Multi_key> <equal> <slash>  	: "≠"   U2260 # NOT EQUAL TO
+<Multi_key> <equal> <U0338>  	: "≠"   U2260 # NOT EQUAL TO
+<Multi_key> <KP_Equal> <U0338> 	: "≠"   U2260 # NOT EQUAL TO
+<Multi_key> <identical> <U0338> 	: "≢"   U2262 # NOT IDENTICAL TO
+<Multi_key> <less> <equal> 	: "≤" U2264 # LESS-THAN OR EQUAL TO
+<Multi_key> <greater> <equal> 	: "≥" U2265 # GREATER-THAN OR EQUAL TO
+<Multi_key> <U224D> <U0338> 	: "≭"   U226D # NOT EQUIVALENT TO
+<Multi_key> <less> <U0338>   	: "≮"   U226E # NOT LESS-THAN
+<Multi_key> <leftcaret> <U0338> 	: "≮"   U226E # NOT LESS-THAN
+<Multi_key> <greater> <U0338> 	: "≯"   U226F # NOT GREATER-THAN
+<Multi_key> <rightcaret> <U0338> 	: "≯"   U226F # NOT GREATER-THAN
+<Multi_key> <lessthanequal> <U0338> 	: "≰"   U2270 # NEITHER LESS-THAN NOR EQUAL TO
+<Multi_key> <greaterthanequal> <U0338> 	: "≱"   U2271 # NEITHER GREATER-THAN NOR EQUAL TO
+<Multi_key> <U2272> <U0338> 	: "≴"   U2274 # NEITHER LESS-THAN NOR EQUIVALENT TO
+<Multi_key> <U2273> <U0338> 	: "≵"   U2275 # NEITHER GREATER-THAN NOR EQUIVALENT TO
+<Multi_key> <U2276> <U0338> 	: "≸"   U2278 # NEITHER LESS-THAN NOR GREATER-THAN
+<Multi_key> <U2277> <U0338> 	: "≹"   U2279 # NEITHER GREATER-THAN NOR LESS-THAN
+<Multi_key> <U227A> <U0338> 	: "⊀"   U2280 # DOES NOT PRECEDE
+<Multi_key> <U227B> <U0338> 	: "⊁"   U2281 # DOES NOT SUCCEED
+<Multi_key> <includedin> <U0338> 	: "⊄"   U2284 # NOT A SUBSET OF
+<Multi_key> <leftshoe> <U0338> 	: "⊄"   U2284 # NOT A SUBSET OF
+<Multi_key> <includes> <U0338> 	: "⊅"   U2285 # NOT A SUPERSET OF
+<Multi_key> <rightshoe> <U0338> 	: "⊅"   U2285 # NOT A SUPERSET OF
+<Multi_key> <U2286> <U0338> 	: "⊈"   U2288 # NEITHER A SUBSET OF NOR EQUAL TO
+<Multi_key> <U2287> <U0338> 	: "⊉"   U2289 # NEITHER A SUPERSET OF NOR EQUAL TO
+<Multi_key> <righttack> <U0338> 	: "⊬"   U22AC # DOES NOT PROVE
+<Multi_key> <U22A8> <U0338> 	: "⊭"   U22AD # NOT TRUE
+<Multi_key> <U22A9> <U0338> 	: "⊮"   U22AE # DOES NOT FORCE
+<Multi_key> <U22AB> <U0338> 	: "⊯"   U22AF # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+<Multi_key> <U227C> <U0338> 	: "⋠"   U22E0 # DOES NOT PRECEDE OR EQUAL
+<Multi_key> <U227D> <U0338> 	: "⋡"   U22E1 # DOES NOT SUCCEED OR EQUAL
+<Multi_key> <U2291> <U0338> 	: "⋢"   U22E2 # NOT SQUARE IMAGE OF OR EQUAL TO
+<Multi_key> <U2292> <U0338> 	: "⋣"   U22E3 # NOT SQUARE ORIGINAL OF OR EQUAL TO
+<Multi_key> <U22B2> <U0338> 	: "⋪"   U22EA # NOT NORMAL SUBGROUP OF
+<Multi_key> <U22B3> <U0338> 	: "⋫"   U22EB # DOES NOT CONTAIN AS NORMAL SUBGROUP
+<Multi_key> <U22B4> <U0338> 	: "⋬"   U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO
+<Multi_key> <U22B5> <U0338> 	: "⋭"   U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+<Multi_key> <d> <i>		: "⌀"   U2300 # DIAMETER SIGN
+<Multi_key> <parenleft> <1> <parenright> 	: "①"   U2460 # CIRCLED DIGIT ONE
+<Multi_key> <parenleft> <KP_1> <parenright> 	: "①"   U2460 # CIRCLED DIGIT ONE
+<Multi_key> <parenleft> <2> <parenright> 	: "②"   U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <KP_Space> <parenright> 	: "②"   U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <KP_2> <parenright> 	: "②"   U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <3> <parenright> 	: "③"   U2462 # CIRCLED DIGIT THREE
+<Multi_key> <parenleft> <KP_3> <parenright> 	: "③"   U2462 # CIRCLED DIGIT THREE
+<Multi_key> <parenleft> <4> <parenright> 	: "④"   U2463 # CIRCLED DIGIT FOUR
+<Multi_key> <parenleft> <KP_4> <parenright> 	: "④"   U2463 # CIRCLED DIGIT FOUR
+<Multi_key> <parenleft> <5> <parenright> 	: "⑤"   U2464 # CIRCLED DIGIT FIVE
+<Multi_key> <parenleft> <KP_5> <parenright> 	: "⑤"   U2464 # CIRCLED DIGIT FIVE
+<Multi_key> <parenleft> <6> <parenright> 	: "⑥"   U2465 # CIRCLED DIGIT SIX
+<Multi_key> <parenleft> <KP_6> <parenright> 	: "⑥"   U2465 # CIRCLED DIGIT SIX
+<Multi_key> <parenleft> <7> <parenright> 	: "⑦"   U2466 # CIRCLED DIGIT SEVEN
+<Multi_key> <parenleft> <KP_7> <parenright> 	: "⑦"   U2466 # CIRCLED DIGIT SEVEN
+<Multi_key> <parenleft> <8> <parenright> 	: "⑧"   U2467 # CIRCLED DIGIT EIGHT
+<Multi_key> <parenleft> <KP_8> <parenright> 	: "⑧"   U2467 # CIRCLED DIGIT EIGHT
+<Multi_key> <parenleft> <9> <parenright> 	: "⑨"   U2468 # CIRCLED DIGIT NINE
+<Multi_key> <parenleft> <KP_9> <parenright> 	: "⑨"   U2468 # CIRCLED DIGIT NINE
+<Multi_key> <parenleft> <1> <0> <parenright> 	: "⑩"   U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <1> <KP_0> <parenright> 	: "⑩"   U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <KP_1> <0> <parenright> 	: "⑩"   U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <KP_1> <KP_0> <parenright> 	: "⑩"   U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <1> <1> <parenright> 	: "⑪"   U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <1> <KP_1> <parenright> 	: "⑪"   U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <KP_1> <1> <parenright> 	: "⑪"   U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <KP_1> <KP_1> <parenright> 	: "⑪"   U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <1> <2> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <KP_Space> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <KP_2> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <2> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <KP_Space> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <KP_2> <parenright> 	: "⑫"   U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <3> <parenright> 	: "⑬"   U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <1> <KP_3> <parenright> 	: "⑬"   U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <KP_1> <3> <parenright> 	: "⑬"   U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <KP_1> <KP_3> <parenright> 	: "⑬"   U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <1> <4> <parenright> 	: "⑭"   U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <1> <KP_4> <parenright> 	: "⑭"   U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <KP_1> <4> <parenright> 	: "⑭"   U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <KP_1> <KP_4> <parenright> 	: "⑭"   U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <1> <5> <parenright> 	: "⑮"   U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <1> <KP_5> <parenright> 	: "⑮"   U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <KP_1> <5> <parenright> 	: "⑮"   U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <KP_1> <KP_5> <parenright> 	: "⑮"   U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <1> <6> <parenright> 	: "⑯"   U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <1> <KP_6> <parenright> 	: "⑯"   U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <KP_1> <6> <parenright> 	: "⑯"   U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <KP_1> <KP_6> <parenright> 	: "⑯"   U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <1> <7> <parenright> 	: "⑰"   U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <1> <KP_7> <parenright> 	: "⑰"   U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <KP_1> <7> <parenright> 	: "⑰"   U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <KP_1> <KP_7> <parenright> 	: "⑰"   U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <1> <8> <parenright> 	: "⑱"   U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <1> <KP_8> <parenright> 	: "⑱"   U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <KP_1> <8> <parenright> 	: "⑱"   U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <KP_1> <KP_8> <parenright> 	: "⑱"   U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <1> <9> <parenright> 	: "⑲"   U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <1> <KP_9> <parenright> 	: "⑲"   U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <KP_1> <9> <parenright> 	: "⑲"   U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <KP_1> <KP_9> <parenright> 	: "⑲"   U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <2> <0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <2> <KP_0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_Space> <0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_Space> <KP_0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_2> <0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_2> <KP_0> <parenright> 	: "⑳"   U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <A> <parenright> 	: "Ⓐ"   U24B6 # CIRCLED LATIN CAPITAL LETTER A
+<Multi_key> <parenleft> <B> <parenright> 	: "Ⓑ"   U24B7 # CIRCLED LATIN CAPITAL LETTER B
+<Multi_key> <parenleft> <C> <parenright> 	: "Ⓒ"   U24B8 # CIRCLED LATIN CAPITAL LETTER C
+<Multi_key> <parenleft> <D> <parenright> 	: "Ⓓ"   U24B9 # CIRCLED LATIN CAPITAL LETTER D
+<Multi_key> <parenleft> <E> <parenright> 	: "Ⓔ"   U24BA # CIRCLED LATIN CAPITAL LETTER E
+<Multi_key> <parenleft> <F> <parenright> 	: "Ⓕ"   U24BB # CIRCLED LATIN CAPITAL LETTER F
+<Multi_key> <parenleft> <G> <parenright> 	: "Ⓖ"   U24BC # CIRCLED LATIN CAPITAL LETTER G
+<Multi_key> <parenleft> <H> <parenright> 	: "Ⓗ"   U24BD # CIRCLED LATIN CAPITAL LETTER H
+<Multi_key> <parenleft> <I> <parenright> 	: "Ⓘ"   U24BE # CIRCLED LATIN CAPITAL LETTER I
+<Multi_key> <parenleft> <J> <parenright> 	: "Ⓙ"   U24BF # CIRCLED LATIN CAPITAL LETTER J
+<Multi_key> <parenleft> <K> <parenright> 	: "Ⓚ"   U24C0 # CIRCLED LATIN CAPITAL LETTER K
+<Multi_key> <parenleft> <L> <parenright> 	: "Ⓛ"   U24C1 # CIRCLED LATIN CAPITAL LETTER L
+<Multi_key> <parenleft> <M> <parenright> 	: "Ⓜ"   U24C2 # CIRCLED LATIN CAPITAL LETTER M
+<Multi_key> <parenleft> <N> <parenright> 	: "Ⓝ"   U24C3 # CIRCLED LATIN CAPITAL LETTER N
+<Multi_key> <parenleft> <O> <parenright> 	: "Ⓞ"   U24C4 # CIRCLED LATIN CAPITAL LETTER O
+<Multi_key> <parenleft> <P> <parenright> 	: "Ⓟ"   U24C5 # CIRCLED LATIN CAPITAL LETTER P
+<Multi_key> <parenleft> <Q> <parenright> 	: "Ⓠ"   U24C6 # CIRCLED LATIN CAPITAL LETTER Q
+<Multi_key> <parenleft> <R> <parenright> 	: "Ⓡ"   U24C7 # CIRCLED LATIN CAPITAL LETTER R
+<Multi_key> <parenleft> <S> <parenright> 	: "Ⓢ"   U24C8 # CIRCLED LATIN CAPITAL LETTER S
+<Multi_key> <parenleft> <T> <parenright> 	: "Ⓣ"   U24C9 # CIRCLED LATIN CAPITAL LETTER T
+<Multi_key> <parenleft> <U> <parenright> 	: "Ⓤ"   U24CA # CIRCLED LATIN CAPITAL LETTER U
+<Multi_key> <parenleft> <V> <parenright> 	: "Ⓥ"   U24CB # CIRCLED LATIN CAPITAL LETTER V
+<Multi_key> <parenleft> <W> <parenright> 	: "Ⓦ"   U24CC # CIRCLED LATIN CAPITAL LETTER W
+<Multi_key> <parenleft> <X> <parenright> 	: "Ⓧ"   U24CD # CIRCLED LATIN CAPITAL LETTER X
+<Multi_key> <parenleft> <Y> <parenright> 	: "Ⓨ"   U24CE # CIRCLED LATIN CAPITAL LETTER Y
+<Multi_key> <parenleft> <Z> <parenright> 	: "Ⓩ"   U24CF # CIRCLED LATIN CAPITAL LETTER Z
+<Multi_key> <parenleft> <a> <parenright> 	: "ⓐ"   U24D0 # CIRCLED LATIN SMALL LETTER A
+<Multi_key> <parenleft> <b> <parenright> 	: "ⓑ"   U24D1 # CIRCLED LATIN SMALL LETTER B
+<Multi_key> <parenleft> <c> <parenright> 	: "ⓒ"   U24D2 # CIRCLED LATIN SMALL LETTER C
+<Multi_key> <parenleft> <d> <parenright> 	: "ⓓ"   U24D3 # CIRCLED LATIN SMALL LETTER D
+<Multi_key> <parenleft> <e> <parenright> 	: "ⓔ"   U24D4 # CIRCLED LATIN SMALL LETTER E
+<Multi_key> <parenleft> <f> <parenright> 	: "ⓕ"   U24D5 # CIRCLED LATIN SMALL LETTER F
+<Multi_key> <parenleft> <g> <parenright> 	: "ⓖ"   U24D6 # CIRCLED LATIN SMALL LETTER G
+<Multi_key> <parenleft> <h> <parenright> 	: "ⓗ"   U24D7 # CIRCLED LATIN SMALL LETTER H
+<Multi_key> <parenleft> <i> <parenright> 	: "ⓘ"   U24D8 # CIRCLED LATIN SMALL LETTER I
+<Multi_key> <parenleft> <j> <parenright> 	: "ⓙ"   U24D9 # CIRCLED LATIN SMALL LETTER J
+<Multi_key> <parenleft> <k> <parenright> 	: "ⓚ"   U24DA # CIRCLED LATIN SMALL LETTER K
+<Multi_key> <parenleft> <l> <parenright> 	: "ⓛ"   U24DB # CIRCLED LATIN SMALL LETTER L
+<Multi_key> <parenleft> <m> <parenright> 	: "ⓜ"   U24DC # CIRCLED LATIN SMALL LETTER M
+<Multi_key> <parenleft> <n> <parenright> 	: "ⓝ"   U24DD # CIRCLED LATIN SMALL LETTER N
+<Multi_key> <parenleft> <o> <parenright> 	: "ⓞ"   U24DE # CIRCLED LATIN SMALL LETTER O
+<Multi_key> <parenleft> <p> <parenright> 	: "ⓟ"   U24DF # CIRCLED LATIN SMALL LETTER P
+<Multi_key> <parenleft> <q> <parenright> 	: "ⓠ"   U24E0 # CIRCLED LATIN SMALL LETTER Q
+<Multi_key> <parenleft> <r> <parenright> 	: "ⓡ"   U24E1 # CIRCLED LATIN SMALL LETTER R
+<Multi_key> <parenleft> <s> <parenright> 	: "ⓢ"   U24E2 # CIRCLED LATIN SMALL LETTER S
+<Multi_key> <parenleft> <t> <parenright> 	: "ⓣ"   U24E3 # CIRCLED LATIN SMALL LETTER T
+<Multi_key> <parenleft> <u> <parenright> 	: "ⓤ"   U24E4 # CIRCLED LATIN SMALL LETTER U
+<Multi_key> <parenleft> <v> <parenright> 	: "ⓥ"   U24E5 # CIRCLED LATIN SMALL LETTER V
+<Multi_key> <parenleft> <w> <parenright> 	: "ⓦ"   U24E6 # CIRCLED LATIN SMALL LETTER W
+<Multi_key> <parenleft> <x> <parenright> 	: "ⓧ"   U24E7 # CIRCLED LATIN SMALL LETTER X
+<Multi_key> <parenleft> <y> <parenright> 	: "ⓨ"   U24E8 # CIRCLED LATIN SMALL LETTER Y
+<Multi_key> <parenleft> <z> <parenright> 	: "ⓩ"   U24E9 # CIRCLED LATIN SMALL LETTER Z
+<Multi_key> <parenleft> <0> <parenright> 	: "⓪"   U24EA # CIRCLED DIGIT ZERO
+<Multi_key> <parenleft> <KP_0> <parenright> 	: "⓪"   U24EA # CIRCLED DIGIT ZERO
+<dead_belowdot> <plus>                  : "⨥"   U2A25 # PLUS SIGN WITH DOT BELOW
+<dead_belowtilde> <plus>                : "⨦"   U2A26 # PLUS SIGN WITH TILDE BELOW
+<dead_belowdot> <minus>                 : "⨪"   U2A2A # MINUS SIGN WITH DOT BELOW
+<dead_belowdot> <equal>                 : "⩦"   U2A66 # EQUALS SIGN WITH DOT BELOW
+<dead_diaeresis> <dead_belowdiaeresis> <equal> : "⩷"   U2A77 # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+<dead_belowdiaeresis> <dead_diaeresis> <equal> : "⩷"   U2A77 # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW
+<Multi_key> <U2ADD> <U0338> 	: "⫝̸"   U2ADC # FORKING
+<dead_belowring> <bar>                  : "⫰"   U2AF0 # VERTICAL LINE WITH CIRCLE BELOW
+<dead_voiced_sound> <U304B>  	: "が"   U304C # HIRAGANA LETTER GA
+<dead_voiced_sound> <U304D>  	: "ぎ"   U304E # HIRAGANA LETTER GI
+<dead_voiced_sound> <U304F>  	: "ぐ"   U3050 # HIRAGANA LETTER GU
+<dead_voiced_sound> <U3051>  	: "げ"   U3052 # HIRAGANA LETTER GE
+<dead_voiced_sound> <U3053>  	: "ご"   U3054 # HIRAGANA LETTER GO
+<dead_voiced_sound> <U3055>  	: "ざ"   U3056 # HIRAGANA LETTER ZA
+<dead_voiced_sound> <U3057>  	: "じ"   U3058 # HIRAGANA LETTER ZI
+<dead_voiced_sound> <U3059>  	: "ず"   U305A # HIRAGANA LETTER ZU
+<dead_voiced_sound> <U305B>  	: "ぜ"   U305C # HIRAGANA LETTER ZE
+<dead_voiced_sound> <U305D>  	: "ぞ"   U305E # HIRAGANA LETTER ZO
+<dead_voiced_sound> <U305F>  	: "だ"   U3060 # HIRAGANA LETTER DA
+<dead_voiced_sound> <U3061>  	: "ぢ"   U3062 # HIRAGANA LETTER DI
+<dead_voiced_sound> <U3064>  	: "づ"   U3065 # HIRAGANA LETTER DU
+<dead_voiced_sound> <U3066>  	: "で"   U3067 # HIRAGANA LETTER DE
+<dead_voiced_sound> <U3068>  	: "ど"   U3069 # HIRAGANA LETTER DO
+<dead_voiced_sound> <U306F>  	: "ば"   U3070 # HIRAGANA LETTER BA
+<dead_semivoiced_sound> <U306F> 	: "ぱ"   U3071 # HIRAGANA LETTER PA
+<dead_voiced_sound> <U3072>  	: "び"   U3073 # HIRAGANA LETTER BI
+<dead_semivoiced_sound> <U3072> 	: "ぴ"   U3074 # HIRAGANA LETTER PI
+<dead_voiced_sound> <U3075>  	: "ぶ"   U3076 # HIRAGANA LETTER BU
+<dead_semivoiced_sound> <U3075> 	: "ぷ"   U3077 # HIRAGANA LETTER PU
+<dead_voiced_sound> <U3078>  	: "べ"   U3079 # HIRAGANA LETTER BE
+<dead_semivoiced_sound> <U3078> 	: "ぺ"   U307A # HIRAGANA LETTER PE
+<dead_voiced_sound> <U307B>  	: "ぼ"   U307C # HIRAGANA LETTER BO
+<dead_semivoiced_sound> <U307B> 	: "ぽ"   U307D # HIRAGANA LETTER PO
+<dead_voiced_sound> <U3046>  	: "ゔ"   U3094 # HIRAGANA LETTER VU
+<dead_voiced_sound> <U309D>  	: "ゞ"   U309E # HIRAGANA VOICED ITERATION MARK
+<dead_voiced_sound> <kana_KA>    	: "ガ"   U30AC # KATAKANA LETTER GA
+<dead_voiced_sound> <kana_KI>    	: "ギ"   U30AE # KATAKANA LETTER GI
+<dead_voiced_sound> <kana_KU>    	: "グ"   U30B0 # KATAKANA LETTER GU
+<dead_voiced_sound> <kana_KE>    	: "ゲ"   U30B2 # KATAKANA LETTER GE
+<dead_voiced_sound> <kana_KO>    	: "ゴ"   U30B4 # KATAKANA LETTER GO
+<dead_voiced_sound> <kana_SA>    	: "ザ"   U30B6 # KATAKANA LETTER ZA
+<dead_voiced_sound> <kana_SHI>   	: "ジ"   U30B8 # KATAKANA LETTER ZI
+<dead_voiced_sound> <kana_SU>    	: "ズ"   U30BA # KATAKANA LETTER ZU
+<dead_voiced_sound> <kana_SE>    	: "ゼ"   U30BC # KATAKANA LETTER ZE
+<dead_voiced_sound> <kana_SO>    	: "ゾ"   U30BE # KATAKANA LETTER ZO
+<dead_voiced_sound> <kana_TA>    	: "ダ"   U30C0 # KATAKANA LETTER DA
+<dead_voiced_sound> <kana_CHI>   	: "ヂ"   U30C2 # KATAKANA LETTER DI
+<dead_voiced_sound> <kana_TSU>   	: "ヅ"   U30C5 # KATAKANA LETTER DU
+<dead_voiced_sound> <kana_TE>    	: "デ"   U30C7 # KATAKANA LETTER DE
+<dead_voiced_sound> <kana_TO>    	: "ド"   U30C9 # KATAKANA LETTER DO
+<dead_voiced_sound> <kana_HA>    	: "バ"   U30D0 # KATAKANA LETTER BA
+<dead_semivoiced_sound> <kana_HA> 	: "パ"   U30D1 # KATAKANA LETTER PA
+<dead_voiced_sound> <kana_HI>    	: "ビ"   U30D3 # KATAKANA LETTER BI
+<dead_semivoiced_sound> <kana_HI> 	: "ピ"   U30D4 # KATAKANA LETTER PI
+<dead_voiced_sound> <kana_FU>    	: "ブ"   U30D6 # KATAKANA LETTER BU
+<dead_semivoiced_sound> <kana_FU> 	: "プ"   U30D7 # KATAKANA LETTER PU
+<dead_voiced_sound> <kana_HE>    	: "ベ"   U30D9 # KATAKANA LETTER BE
+<dead_semivoiced_sound> <kana_HE> 	: "ペ"   U30DA # KATAKANA LETTER PE
+<dead_voiced_sound> <kana_HO>    	: "ボ"   U30DC # KATAKANA LETTER BO
+<dead_semivoiced_sound> <kana_HO> 	: "ポ"   U30DD # KATAKANA LETTER PO
+<dead_voiced_sound> <kana_U>     	: "ヴ"   U30F4 # KATAKANA LETTER VU
+<dead_voiced_sound> <kana_WA>    	: "ヷ"   U30F7 # KATAKANA LETTER VA
+<dead_voiced_sound> <U30F0>  	: "ヸ"   U30F8 # KATAKANA LETTER VI
+<dead_voiced_sound> <U30F1>  	: "ヹ"   U30F9 # KATAKANA LETTER VE
+<dead_voiced_sound> <kana_WO>    	: "ヺ"   U30FA # KATAKANA LETTER VO
+<dead_voiced_sound> <U30FD>  	: "ヾ"   U30FE # KATAKANA VOICED ITERATION MARK
+<dead_circumflex> <U4E00>    	: "㆒"   U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
+<Multi_key> <asciicircum> <U4E00> 	: "㆒"   U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
+<dead_circumflex> <U4E8C>    	: "㆓"   U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
+<Multi_key> <asciicircum> <U4E8C> 	: "㆓"   U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
+<dead_circumflex> <U4E09>    	: "㆔"   U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
+<Multi_key> <asciicircum> <U4E09> 	: "㆔"   U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
+<dead_circumflex> <U56DB>    	: "㆕"   U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
+<Multi_key> <asciicircum> <U56DB> 	: "㆕"   U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
+<dead_circumflex> <U4E0A>    	: "㆖"   U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
+<Multi_key> <asciicircum> <U4E0A> 	: "㆖"   U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
+<dead_circumflex> <U4E2D>    	: "㆗"   U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
+<Multi_key> <asciicircum> <U4E2D> 	: "㆗"   U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
+<dead_circumflex> <U4E0B>    	: "㆘"   U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
+<Multi_key> <asciicircum> <U4E0B> 	: "㆘"   U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
+<dead_circumflex> <U7532>    	: "㆙"   U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
+<Multi_key> <asciicircum> <U7532> 	: "㆙"   U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
+<dead_circumflex> <U4E59>    	: "㆚"   U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
+<Multi_key> <asciicircum> <U4E59> 	: "㆚"   U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
+<dead_circumflex> <U4E19>    	: "㆛"   U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
+<Multi_key> <asciicircum> <U4E19> 	: "㆛"   U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
+<dead_circumflex> <U4E01>    	: "㆜"   U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
+<Multi_key> <asciicircum> <U4E01> 	: "㆜"   U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
+<dead_circumflex> <U5929>    	: "㆝"   U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
+<Multi_key> <asciicircum> <U5929> 	: "㆝"   U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
+<dead_circumflex> <U5730>    	: "㆞"   U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
+<Multi_key> <asciicircum> <U5730> 	: "㆞"   U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
+<dead_circumflex> <U4EBA>    	: "㆟"   U319F # IDEOGRAPHIC ANNOTATION MAN MARK
+<Multi_key> <asciicircum> <U4EBA> 	: "㆟"   U319F # IDEOGRAPHIC ANNOTATION MAN MARK
+<Multi_key> <parenleft> <2> <1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <2> <KP_1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_Space> <1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_Space> <KP_1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_2> <1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_2> <KP_1> <parenright> 	: "㉑"   U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <2> <2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <KP_Space> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <KP_2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <KP_Space> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <KP_2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <KP_Space> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <KP_2> <parenright> 	: "㉒"   U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <2> <KP_3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_Space> <3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_Space> <KP_3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_2> <3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_2> <KP_3> <parenright> 	: "㉓"   U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <2> <4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <2> <KP_4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_Space> <4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_Space> <KP_4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_2> <4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_2> <KP_4> <parenright> 	: "㉔"   U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <2> <5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <2> <KP_5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_Space> <5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_Space> <KP_5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_2> <5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_2> <KP_5> <parenright> 	: "㉕"   U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <2> <6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <2> <KP_6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_Space> <6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_Space> <KP_6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_2> <6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_2> <KP_6> <parenright> 	: "㉖"   U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <2> <7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <2> <KP_7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_Space> <7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_Space> <KP_7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_2> <7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_2> <KP_7> <parenright> 	: "㉗"   U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <2> <8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <2> <KP_8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_Space> <8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_Space> <KP_8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_2> <8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_2> <KP_8> <parenright> 	: "㉘"   U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <2> <9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <2> <KP_9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_Space> <9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_Space> <KP_9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_2> <9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_2> <KP_9> <parenright> 	: "㉙"   U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <3> <0> <parenright> 	: "㉚"   U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <3> <KP_0> <parenright> 	: "㉚"   U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <KP_3> <0> <parenright> 	: "㉚"   U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <KP_3> <KP_0> <parenright> 	: "㉚"   U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <3> <1> <parenright> 	: "㉛"   U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <3> <KP_1> <parenright> 	: "㉛"   U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <KP_3> <1> <parenright> 	: "㉛"   U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <KP_3> <KP_1> <parenright> 	: "㉛"   U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <3> <2> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <KP_Space> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <KP_2> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <2> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <KP_Space> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <KP_2> <parenright> 	: "㉜"   U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <3> <parenright> 	: "㉝"   U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <3> <KP_3> <parenright> 	: "㉝"   U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <KP_3> <3> <parenright> 	: "㉝"   U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <KP_3> <KP_3> <parenright> 	: "㉝"   U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <3> <4> <parenright> 	: "㉞"   U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <3> <KP_4> <parenright> 	: "㉞"   U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <KP_3> <4> <parenright> 	: "㉞"   U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <KP_3> <KP_4> <parenright> 	: "㉞"   U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <3> <5> <parenright> 	: "㉟"   U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <3> <KP_5> <parenright> 	: "㉟"   U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <KP_3> <5> <parenright> 	: "㉟"   U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <KP_3> <KP_5> <parenright> 	: "㉟"   U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <U1100> <parenright> 	: "㉠"   U3260 # CIRCLED HANGUL KIYEOK
+<Multi_key> <parenleft> <U1102> <parenright> 	: "㉡"   U3261 # CIRCLED HANGUL NIEUN
+<Multi_key> <parenleft> <U1103> <parenright> 	: "㉢"   U3262 # CIRCLED HANGUL TIKEUT
+<Multi_key> <parenleft> <U1105> <parenright> 	: "㉣"   U3263 # CIRCLED HANGUL RIEUL
+<Multi_key> <parenleft> <U1106> <parenright> 	: "㉤"   U3264 # CIRCLED HANGUL MIEUM
+<Multi_key> <parenleft> <U1107> <parenright> 	: "㉥"   U3265 # CIRCLED HANGUL PIEUP
+<Multi_key> <parenleft> <U1109> <parenright> 	: "㉦"   U3266 # CIRCLED HANGUL SIOS
+<Multi_key> <parenleft> <U110B> <parenright> 	: "㉧"   U3267 # CIRCLED HANGUL IEUNG
+<Multi_key> <parenleft> <U110C> <parenright> 	: "㉨"   U3268 # CIRCLED HANGUL CIEUC
+<Multi_key> <parenleft> <U110E> <parenright> 	: "㉩"   U3269 # CIRCLED HANGUL CHIEUCH
+<Multi_key> <parenleft> <U110F> <parenright> 	: "㉪"   U326A # CIRCLED HANGUL KHIEUKH
+<Multi_key> <parenleft> <U1110> <parenright> 	: "㉫"   U326B # CIRCLED HANGUL THIEUTH
+<Multi_key> <parenleft> <U1111> <parenright> 	: "㉬"   U326C # CIRCLED HANGUL PHIEUPH
+<Multi_key> <parenleft> <U1112> <parenright> 	: "㉭"   U326D # CIRCLED HANGUL HIEUH
+<Multi_key> <parenleft> <U1100> <U1161> <parenright> 	: "㉮"   U326E # CIRCLED HANGUL KIYEOK A
+<Multi_key> <parenleft> <U1102> <U1161> <parenright> 	: "㉯"   U326F # CIRCLED HANGUL NIEUN A
+<Multi_key> <parenleft> <U1103> <U1161> <parenright> 	: "㉰"   U3270 # CIRCLED HANGUL TIKEUT A
+<Multi_key> <parenleft> <U1105> <U1161> <parenright> 	: "㉱"   U3271 # CIRCLED HANGUL RIEUL A
+<Multi_key> <parenleft> <U1106> <U1161> <parenright> 	: "㉲"   U3272 # CIRCLED HANGUL MIEUM A
+<Multi_key> <parenleft> <U1107> <U1161> <parenright> 	: "㉳"   U3273 # CIRCLED HANGUL PIEUP A
+<Multi_key> <parenleft> <U1109> <U1161> <parenright> 	: "㉴"   U3274 # CIRCLED HANGUL SIOS A
+<Multi_key> <parenleft> <U110B> <U1161> <parenright> 	: "㉵"   U3275 # CIRCLED HANGUL IEUNG A
+<Multi_key> <parenleft> <U110C> <U1161> <parenright> 	: "㉶"   U3276 # CIRCLED HANGUL CIEUC A
+<Multi_key> <parenleft> <U110E> <U1161> <parenright> 	: "㉷"   U3277 # CIRCLED HANGUL CHIEUCH A
+<Multi_key> <parenleft> <U110F> <U1161> <parenright> 	: "㉸"   U3278 # CIRCLED HANGUL KHIEUKH A
+<Multi_key> <parenleft> <U1110> <U1161> <parenright> 	: "㉹"   U3279 # CIRCLED HANGUL THIEUTH A
+<Multi_key> <parenleft> <U1111> <U1161> <parenright> 	: "㉺"   U327A # CIRCLED HANGUL PHIEUPH A
+<Multi_key> <parenleft> <U1112> <U1161> <parenright> 	: "㉻"   U327B # CIRCLED HANGUL HIEUH A
+<Multi_key> <parenleft> <U4E00> <parenright> 	: "㊀"   U3280 # CIRCLED IDEOGRAPH ONE
+<Multi_key> <parenleft> <U4E8C> <parenright> 	: "㊁"   U3281 # CIRCLED IDEOGRAPH TWO
+<Multi_key> <parenleft> <U4E09> <parenright> 	: "㊂"   U3282 # CIRCLED IDEOGRAPH THREE
+<Multi_key> <parenleft> <U56DB> <parenright> 	: "㊃"   U3283 # CIRCLED IDEOGRAPH FOUR
+<Multi_key> <parenleft> <U4E94> <parenright> 	: "㊄"   U3284 # CIRCLED IDEOGRAPH FIVE
+<Multi_key> <parenleft> <U516D> <parenright> 	: "㊅"   U3285 # CIRCLED IDEOGRAPH SIX
+<Multi_key> <parenleft> <U4E03> <parenright> 	: "㊆"   U3286 # CIRCLED IDEOGRAPH SEVEN
+<Multi_key> <parenleft> <U516B> <parenright> 	: "㊇"   U3287 # CIRCLED IDEOGRAPH EIGHT
+<Multi_key> <parenleft> <U4E5D> <parenright> 	: "㊈"   U3288 # CIRCLED IDEOGRAPH NINE
+<Multi_key> <parenleft> <U5341> <parenright> 	: "㊉"   U3289 # CIRCLED IDEOGRAPH TEN
+<Multi_key> <parenleft> <U6708> <parenright> 	: "㊊"   U328A # CIRCLED IDEOGRAPH MOON
+<Multi_key> <parenleft> <U706B> <parenright> 	: "㊋"   U328B # CIRCLED IDEOGRAPH FIRE
+<Multi_key> <parenleft> <U6C34> <parenright> 	: "㊌"   U328C # CIRCLED IDEOGRAPH WATER
+<Multi_key> <parenleft> <U6728> <parenright> 	: "㊍"   U328D # CIRCLED IDEOGRAPH WOOD
+<Multi_key> <parenleft> <U91D1> <parenright> 	: "㊎"   U328E # CIRCLED IDEOGRAPH METAL
+<Multi_key> <parenleft> <U571F> <parenright> 	: "㊏"   U328F # CIRCLED IDEOGRAPH EARTH
+<Multi_key> <parenleft> <U65E5> <parenright> 	: "㊐"   U3290 # CIRCLED IDEOGRAPH SUN
+<Multi_key> <parenleft> <U682A> <parenright> 	: "㊑"   U3291 # CIRCLED IDEOGRAPH STOCK
+<Multi_key> <parenleft> <U6709> <parenright> 	: "㊒"   U3292 # CIRCLED IDEOGRAPH HAVE
+<Multi_key> <parenleft> <U793E> <parenright> 	: "㊓"   U3293 # CIRCLED IDEOGRAPH SOCIETY
+<Multi_key> <parenleft> <U540D> <parenright> 	: "㊔"   U3294 # CIRCLED IDEOGRAPH NAME
+<Multi_key> <parenleft> <U7279> <parenright> 	: "㊕"   U3295 # CIRCLED IDEOGRAPH SPECIAL
+<Multi_key> <parenleft> <U8CA1> <parenright> 	: "㊖"   U3296 # CIRCLED IDEOGRAPH FINANCIAL
+<Multi_key> <parenleft> <U795D> <parenright> 	: "㊗"   U3297 # CIRCLED IDEOGRAPH CONGRATULATION
+<Multi_key> <parenleft> <U52B4> <parenright> 	: "㊘"   U3298 # CIRCLED IDEOGRAPH LABOR
+<Multi_key> <parenleft> <U79D8> <parenright> 	: "㊙"   U3299 # CIRCLED IDEOGRAPH SECRET
+<Multi_key> <parenleft> <U7537> <parenright> 	: "㊚"   U329A # CIRCLED IDEOGRAPH MALE
+<Multi_key> <parenleft> <U5973> <parenright> 	: "㊛"   U329B # CIRCLED IDEOGRAPH FEMALE
+<Multi_key> <parenleft> <U9069> <parenright> 	: "㊜"   U329C # CIRCLED IDEOGRAPH SUITABLE
+<Multi_key> <parenleft> <U512A> <parenright> 	: "㊝"   U329D # CIRCLED IDEOGRAPH EXCELLENT
+<Multi_key> <parenleft> <U5370> <parenright> 	: "㊞"   U329E # CIRCLED IDEOGRAPH PRINT
+<Multi_key> <parenleft> <U6CE8> <parenright> 	: "㊟"   U329F # CIRCLED IDEOGRAPH ATTENTION
+<Multi_key> <parenleft> <U9805> <parenright> 	: "㊠"   U32A0 # CIRCLED IDEOGRAPH ITEM
+<Multi_key> <parenleft> <U4F11> <parenright> 	: "㊡"   U32A1 # CIRCLED IDEOGRAPH REST
+<Multi_key> <parenleft> <U5199> <parenright> 	: "㊢"   U32A2 # CIRCLED IDEOGRAPH COPY
+<Multi_key> <parenleft> <U6B63> <parenright> 	: "㊣"   U32A3 # CIRCLED IDEOGRAPH CORRECT
+<Multi_key> <parenleft> <U4E0A> <parenright> 	: "㊤"   U32A4 # CIRCLED IDEOGRAPH HIGH
+<Multi_key> <parenleft> <U4E2D> <parenright> 	: "㊥"   U32A5 # CIRCLED IDEOGRAPH CENTRE
+<Multi_key> <parenleft> <U4E0B> <parenright> 	: "㊦"   U32A6 # CIRCLED IDEOGRAPH LOW
+<Multi_key> <parenleft> <U5DE6> <parenright> 	: "㊧"   U32A7 # CIRCLED IDEOGRAPH LEFT
+<Multi_key> <parenleft> <U53F3> <parenright> 	: "㊨"   U32A8 # CIRCLED IDEOGRAPH RIGHT
+<Multi_key> <parenleft> <U533B> <parenright> 	: "㊩"   U32A9 # CIRCLED IDEOGRAPH MEDICINE
+<Multi_key> <parenleft> <U5B97> <parenright> 	: "㊪"   U32AA # CIRCLED IDEOGRAPH RELIGION
+<Multi_key> <parenleft> <U5B66> <parenright> 	: "㊫"   U32AB # CIRCLED IDEOGRAPH STUDY
+<Multi_key> <parenleft> <U76E3> <parenright> 	: "㊬"   U32AC # CIRCLED IDEOGRAPH SUPERVISE
+<Multi_key> <parenleft> <U4F01> <parenright> 	: "㊭"   U32AD # CIRCLED IDEOGRAPH ENTERPRISE
+<Multi_key> <parenleft> <U8CC7> <parenright> 	: "㊮"   U32AE # CIRCLED IDEOGRAPH RESOURCE
+<Multi_key> <parenleft> <U5354> <parenright> 	: "㊯"   U32AF # CIRCLED IDEOGRAPH ALLIANCE
+<Multi_key> <parenleft> <U591C> <parenright> 	: "㊰"   U32B0 # CIRCLED IDEOGRAPH NIGHT
+<Multi_key> <parenleft> <3> <6> <parenright> 	: "㊱"   U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <3> <KP_6> <parenright> 	: "㊱"   U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <KP_3> <6> <parenright> 	: "㊱"   U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <KP_3> <KP_6> <parenright> 	: "㊱"   U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <3> <7> <parenright> 	: "㊲"   U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <3> <KP_7> <parenright> 	: "㊲"   U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <KP_3> <7> <parenright> 	: "㊲"   U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <KP_3> <KP_7> <parenright> 	: "㊲"   U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <3> <8> <parenright> 	: "㊳"   U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <3> <KP_8> <parenright> 	: "㊳"   U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <KP_3> <8> <parenright> 	: "㊳"   U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <KP_3> <KP_8> <parenright> 	: "㊳"   U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <3> <9> <parenright> 	: "㊴"   U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <3> <KP_9> <parenright> 	: "㊴"   U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <KP_3> <9> <parenright> 	: "㊴"   U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <KP_3> <KP_9> <parenright> 	: "㊴"   U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <4> <0> <parenright> 	: "㊵"   U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <4> <KP_0> <parenright> 	: "㊵"   U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <KP_4> <0> <parenright> 	: "㊵"   U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <KP_4> <KP_0> <parenright> 	: "㊵"   U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <4> <1> <parenright> 	: "㊶"   U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <4> <KP_1> <parenright> 	: "㊶"   U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <KP_4> <1> <parenright> 	: "㊶"   U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <KP_4> <KP_1> <parenright> 	: "㊶"   U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <4> <2> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <KP_Space> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <KP_2> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <2> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <KP_Space> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <KP_2> <parenright> 	: "㊷"   U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <3> <parenright> 	: "㊸"   U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <4> <KP_3> <parenright> 	: "㊸"   U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <KP_4> <3> <parenright> 	: "㊸"   U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <KP_4> <KP_3> <parenright> 	: "㊸"   U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <4> <4> <parenright> 	: "㊹"   U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <4> <KP_4> <parenright> 	: "㊹"   U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <KP_4> <4> <parenright> 	: "㊹"   U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <KP_4> <KP_4> <parenright> 	: "㊹"   U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <4> <5> <parenright> 	: "㊺"   U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <4> <KP_5> <parenright> 	: "㊺"   U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <KP_4> <5> <parenright> 	: "㊺"   U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <KP_4> <KP_5> <parenright> 	: "㊺"   U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <4> <6> <parenright> 	: "㊻"   U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <4> <KP_6> <parenright> 	: "㊻"   U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <KP_4> <6> <parenright> 	: "㊻"   U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <KP_4> <KP_6> <parenright> 	: "㊻"   U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <4> <7> <parenright> 	: "㊼"   U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <4> <KP_7> <parenright> 	: "㊼"   U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <KP_4> <7> <parenright> 	: "㊼"   U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <KP_4> <KP_7> <parenright> 	: "㊼"   U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <4> <8> <parenright> 	: "㊽"   U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <4> <KP_8> <parenright> 	: "㊽"   U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <KP_4> <8> <parenright> 	: "㊽"   U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <KP_4> <KP_8> <parenright> 	: "㊽"   U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <4> <9> <parenright> 	: "㊾"   U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <4> <KP_9> <parenright> 	: "㊾"   U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <KP_4> <9> <parenright> 	: "㊾"   U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <KP_4> <KP_9> <parenright> 	: "㊾"   U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <5> <0> <parenright> 	: "㊿"   U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <5> <KP_0> <parenright> 	: "㊿"   U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <KP_5> <0> <parenright> 	: "㊿"   U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <KP_5> <KP_0> <parenright> 	: "㊿"   U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <kana_A> <parenright> 	: "㋐"   U32D0 # CIRCLED KATAKANA A
+<Multi_key> <parenleft> <kana_I> <parenright> 	: "㋑"   U32D1 # CIRCLED KATAKANA I
+<Multi_key> <parenleft> <kana_U> <parenright> 	: "㋒"   U32D2 # CIRCLED KATAKANA U
+<Multi_key> <parenleft> <kana_E> <parenright> 	: "㋓"   U32D3 # CIRCLED KATAKANA E
+<Multi_key> <parenleft> <kana_O> <parenright> 	: "㋔"   U32D4 # CIRCLED KATAKANA O
+<Multi_key> <parenleft> <kana_KA> <parenright> 	: "㋕"   U32D5 # CIRCLED KATAKANA KA
+<Multi_key> <parenleft> <kana_KI> <parenright> 	: "㋖"   U32D6 # CIRCLED KATAKANA KI
+<Multi_key> <parenleft> <kana_KU> <parenright> 	: "㋗"   U32D7 # CIRCLED KATAKANA KU
+<Multi_key> <parenleft> <kana_KE> <parenright> 	: "㋘"   U32D8 # CIRCLED KATAKANA KE
+<Multi_key> <parenleft> <kana_KO> <parenright> 	: "㋙"   U32D9 # CIRCLED KATAKANA KO
+<Multi_key> <parenleft> <kana_SA> <parenright> 	: "㋚"   U32DA # CIRCLED KATAKANA SA
+<Multi_key> <parenleft> <kana_SHI> <parenright> 	: "㋛"   U32DB # CIRCLED KATAKANA SI
+<Multi_key> <parenleft> <kana_SU> <parenright> 	: "㋜"   U32DC # CIRCLED KATAKANA SU
+<Multi_key> <parenleft> <kana_SE> <parenright> 	: "㋝"   U32DD # CIRCLED KATAKANA SE
+<Multi_key> <parenleft> <kana_SO> <parenright> 	: "㋞"   U32DE # CIRCLED KATAKANA SO
+<Multi_key> <parenleft> <kana_TA> <parenright> 	: "㋟"   U32DF # CIRCLED KATAKANA TA
+<Multi_key> <parenleft> <kana_CHI> <parenright> 	: "㋠"   U32E0 # CIRCLED KATAKANA TI
+<Multi_key> <parenleft> <kana_TSU> <parenright> 	: "㋡"   U32E1 # CIRCLED KATAKANA TU
+<Multi_key> <parenleft> <kana_TE> <parenright> 	: "㋢"   U32E2 # CIRCLED KATAKANA TE
+<Multi_key> <parenleft> <kana_TO> <parenright> 	: "㋣"   U32E3 # CIRCLED KATAKANA TO
+<Multi_key> <parenleft> <kana_NA> <parenright> 	: "㋤"   U32E4 # CIRCLED KATAKANA NA
+<Multi_key> <parenleft> <kana_NI> <parenright> 	: "㋥"   U32E5 # CIRCLED KATAKANA NI
+<Multi_key> <parenleft> <kana_NU> <parenright> 	: "㋦"   U32E6 # CIRCLED KATAKANA NU
+<Multi_key> <parenleft> <kana_NE> <parenright> 	: "㋧"   U32E7 # CIRCLED KATAKANA NE
+<Multi_key> <parenleft> <kana_NO> <parenright> 	: "㋨"   U32E8 # CIRCLED KATAKANA NO
+<Multi_key> <parenleft> <kana_HA> <parenright> 	: "㋩"   U32E9 # CIRCLED KATAKANA HA
+<Multi_key> <parenleft> <kana_HI> <parenright> 	: "㋪"   U32EA # CIRCLED KATAKANA HI
+<Multi_key> <parenleft> <kana_FU> <parenright> 	: "㋫"   U32EB # CIRCLED KATAKANA HU
+<Multi_key> <parenleft> <kana_HE> <parenright> 	: "㋬"   U32EC # CIRCLED KATAKANA HE
+<Multi_key> <parenleft> <kana_HO> <parenright> 	: "㋭"   U32ED # CIRCLED KATAKANA HO
+<Multi_key> <parenleft> <kana_MA> <parenright> 	: "㋮"   U32EE # CIRCLED KATAKANA MA
+<Multi_key> <parenleft> <kana_MI> <parenright> 	: "㋯"   U32EF # CIRCLED KATAKANA MI
+<Multi_key> <parenleft> <kana_MU> <parenright> 	: "㋰"   U32F0 # CIRCLED KATAKANA MU
+<Multi_key> <parenleft> <kana_ME> <parenright> 	: "㋱"   U32F1 # CIRCLED KATAKANA ME
+<Multi_key> <parenleft> <kana_MO> <parenright> 	: "㋲"   U32F2 # CIRCLED KATAKANA MO
+<Multi_key> <parenleft> <kana_YA> <parenright> 	: "㋳"   U32F3 # CIRCLED KATAKANA YA
+<Multi_key> <parenleft> <kana_YU> <parenright> 	: "㋴"   U32F4 # CIRCLED KATAKANA YU
+<Multi_key> <parenleft> <kana_YO> <parenright> 	: "㋵"   U32F5 # CIRCLED KATAKANA YO
+<Multi_key> <parenleft> <kana_RA> <parenright> 	: "㋶"   U32F6 # CIRCLED KATAKANA RA
+<Multi_key> <parenleft> <kana_RI> <parenright> 	: "㋷"   U32F7 # CIRCLED KATAKANA RI
+<Multi_key> <parenleft> <kana_RU> <parenright> 	: "㋸"   U32F8 # CIRCLED KATAKANA RU
+<Multi_key> <parenleft> <kana_RE> <parenright> 	: "㋹"   U32F9 # CIRCLED KATAKANA RE
+<Multi_key> <parenleft> <kana_RO> <parenright> 	: "㋺"   U32FA # CIRCLED KATAKANA RO
+<Multi_key> <parenleft> <kana_WA> <parenright> 	: "㋻"   U32FB # CIRCLED KATAKANA WA
+<Multi_key> <parenleft> <U30F0> <parenright> 	: "㋼"   U32FC # CIRCLED KATAKANA WI
+<Multi_key> <parenleft> <U30F1> <parenright> 	: "㋽"   U32FD # CIRCLED KATAKANA WE
+<Multi_key> <parenleft> <kana_WO> <parenright> 	: "㋾"   U32FE # CIRCLED KATAKANA WO
+<Multi_key> <U05B4> <hebrew_yod> 	: "יִ"   UFB1D # HEBREW LETTER YOD WITH HIRIQ
+<Multi_key> <U05B7> <U05F2> 	: "ײַ"   UFB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+<Multi_key> <U05C1> <hebrew_shin> 	: "שׁ"   UFB2A # HEBREW LETTER SHIN WITH SHIN DOT
+<Multi_key> <U05C2> <hebrew_shin> 	: "שׂ"   UFB2B # HEBREW LETTER SHIN WITH SIN DOT
+<Multi_key> <U05C1> <UFB49> 	: "שּׁ"   UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+<Multi_key> <U05C1> <U05BC> <hebrew_shin> 	: "שּׁ"   UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+<Multi_key> <U05C2> <UFB49> 	: "שּׂ"   UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+<Multi_key> <U05C2> <U05BC> <hebrew_shin> 	: "שּׂ"   UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+<Multi_key> <U05B7> <hebrew_aleph> 	: "אַ"   UFB2E # HEBREW LETTER ALEF WITH PATAH
+<Multi_key> <U05B8> <hebrew_aleph> 	: "אָ"   UFB2F # HEBREW LETTER ALEF WITH QAMATS
+<Multi_key> <U05BC> <hebrew_aleph> 	: "אּ"   UFB30 # HEBREW LETTER ALEF WITH MAPIQ
+<Multi_key> <U05BC> <hebrew_bet> 	: "בּ"   UFB31 # HEBREW LETTER BET WITH DAGESH
+<Multi_key> <U05BC> <hebrew_gimel> 	: "גּ"   UFB32 # HEBREW LETTER GIMEL WITH DAGESH
+<Multi_key> <U05BC> <hebrew_dalet> 	: "דּ"   UFB33 # HEBREW LETTER DALET WITH DAGESH
+<Multi_key> <U05BC> <hebrew_he> 	: "הּ"   UFB34 # HEBREW LETTER HE WITH MAPIQ
+<Multi_key> <U05BC> <hebrew_waw> 	: "וּ"   UFB35 # HEBREW LETTER VAV WITH DAGESH
+<Multi_key> <U05BC> <hebrew_zain> 	: "זּ"   UFB36 # HEBREW LETTER ZAYIN WITH DAGESH
+<Multi_key> <U05BC> <hebrew_tet> 	: "טּ"   UFB38 # HEBREW LETTER TET WITH DAGESH
+<Multi_key> <U05BC> <hebrew_yod> 	: "יּ"   UFB39 # HEBREW LETTER YOD WITH DAGESH
+<Multi_key> <U05BC> <hebrew_finalkaph> 	: "ךּ"   UFB3A # HEBREW LETTER FINAL KAF WITH DAGESH
+<Multi_key> <U05BC> <hebrew_kaph> 	: "כּ"   UFB3B # HEBREW LETTER KAF WITH DAGESH
+<Multi_key> <U05BC> <hebrew_lamed> 	: "לּ"   UFB3C # HEBREW LETTER LAMED WITH DAGESH
+<Multi_key> <U05BC> <hebrew_mem> 	: "מּ"   UFB3E # HEBREW LETTER MEM WITH DAGESH
+<Multi_key> <U05BC> <hebrew_nun> 	: "נּ"   UFB40 # HEBREW LETTER NUN WITH DAGESH
+<Multi_key> <U05BC> <hebrew_samech> 	: "סּ"   UFB41 # HEBREW LETTER SAMEKH WITH DAGESH
+<Multi_key> <U05BC> <hebrew_finalpe> 	: "ףּ"   UFB43 # HEBREW LETTER FINAL PE WITH DAGESH
+<Multi_key> <U05BC> <hebrew_pe> 	: "פּ"   UFB44 # HEBREW LETTER PE WITH DAGESH
+<Multi_key> <U05BC> <hebrew_zade> 	: "צּ"   UFB46 # HEBREW LETTER TSADI WITH DAGESH
+<Multi_key> <U05BC> <hebrew_qoph> 	: "קּ"   UFB47 # HEBREW LETTER QOF WITH DAGESH
+<Multi_key> <U05BC> <hebrew_resh> 	: "רּ"   UFB48 # HEBREW LETTER RESH WITH DAGESH
+<Multi_key> <U05BC> <hebrew_shin> 	: "שּ"   UFB49 # HEBREW LETTER SHIN WITH DAGESH
+<Multi_key> <U05BC> <hebrew_taw> 	: "תּ"   UFB4A # HEBREW LETTER TAV WITH DAGESH
+<Multi_key> <U05B9> <hebrew_waw> 	: "וֹ"   UFB4B # HEBREW LETTER VAV WITH HOLAM
+<Multi_key> <U05BF> <hebrew_bet> 	: "בֿ"   UFB4C # HEBREW LETTER BET WITH RAFE
+<Multi_key> <U05BF> <hebrew_kaph> 	: "כֿ"   UFB4D # HEBREW LETTER KAF WITH RAFE
+<Multi_key> <U05BF> <hebrew_pe> 	: "פֿ"   UFB4E # HEBREW LETTER PE WITH RAFE
+<Multi_key> <U1D157> <U1D165> 	: "𝅗𝅥"   U1D15E # MUSICAL SYMBOL HALF NOTE
+<Multi_key> <U1D158> <U1D165> 	: "𝅘𝅥"   U1D15F # MUSICAL SYMBOL QUARTER NOTE
+<Multi_key> <U1D15F> <U1D16E> 	: "𝅘𝅥𝅮"   U1D160 # MUSICAL SYMBOL EIGHTH NOTE
+
+<Multi_key> <U1D15F> <U1D16F> 	: "𝅘𝅥𝅯"   U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
+
+<Multi_key> <U1D15F> <U1D170> 	: "𝅘𝅥𝅰"   U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
+
+<Multi_key> <U1D15F> <U1D171> 	: "𝅘𝅥𝅱"   U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
+
+<Multi_key> <U1D15F> <U1D172> 	: "𝅘𝅥𝅲"   U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+
+<Multi_key> <U1D1B9> <U1D165> 	: "𝆹𝅥"   U1D1BB # MUSICAL SYMBOL MINIMA
+<Multi_key> <U1D1BA> <U1D165> 	: "𝆺𝅥"   U1D1BC # MUSICAL SYMBOL MINIMA BLACK
+<Multi_key> <U1D1BB> <U1D16E> 	: "𝆹𝅥𝅮"   U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
+
+<Multi_key> <U1D1BC> <U1D16E> 	: "𝆺𝅥𝅮"   U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
+
+<Multi_key> <U1D1BB> <U1D16F> 	: "𝆹𝅥𝅯"   U1D1BF # MUSICAL SYMBOL FUSA WHITE
+
+<Multi_key> <U1D1BC> <U1D16F> 	: "𝆺𝅥𝅯"   U1D1C0 # MUSICAL SYMBOL FUSA BLACK
+
+
+#
+# Khmer digraphs
+#
+
+<U17ff> :   "ាំ"
+<U17fe> :   "ោះ"
+<U17fd> :   "េះ"
+<U17fc> :   "ុំ"
+<U17fb> :   "ុះ"
+
+#
+# Arabic Lam-Alef ligatures
+#
+
+<UFEFB>	:   "لا" # ARABIC LIGATURE LAM WITH ALEF
+<UFEF7>	:   "لأ" # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE
+<UFEF9>	:   "لإ" # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW
+<UFEF5>	:   "لآ" # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE
+
+#
+# French-Dvorak Bépo compositions
+#
+
+<dead_abovedot> <Amacron>             : "Ǡ"   U01E0               # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_abovedot> <amacron>             : "ǡ"   U01E1               # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_abovedot> <j> 		      : "ȷ"   U0237               # LATIN SMALL LETTER DOTLESS J
+<dead_abovedot> <L> 		      : "Ŀ"   U013F               # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+<dead_abovedot> <l> 		      : "ŀ"   U0140               # LATIN SMALL LETTER L WITH MIDDLE DOT
+<dead_abovedot> <Omacron> 	      : "Ȱ"   U0230               # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_abovedot> <omacron> 	      : "ȱ"   U0231               # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_abovedot> <nobreakspace> 	      : "̇"   U0307                #  COMBINING DOT ABOVE
+<dead_acute> <Sabovedot> 	      : "Ṥ"   U1E64               # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_acute> <sabovedot> 	      : "ṥ"   U1E65               # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_acute> <V> 		      : "Ǘ"   U01D7               # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <v> 		      : "ǘ"   U01D8               # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <nobreakspace> 	      : "́"   U0301      # COMBINING ACUTE ACCENT
+<dead_belowdot> <Sabovedot> 	      : "Ṩ"   U1E68               # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_belowdot> <sabovedot> 	      : "ṩ"   U1E69               # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_belowdot> <dead_belowdot>       : "̣"   U0323   # COMBINING DOT BELOW
+<dead_belowdot> <nobreakspace> 	      : "̣"   U0323   # COMBINING DOT BELOW
+<dead_belowdot> <space> 	      : "̣"   U0323   # COMBINING DOT BELOW
+<dead_breve> <Aacute> 		      : "Ắ"   Abreveacute         # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_breve> <Agrave> 		      : "Ằ"   Abrevegrave         # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_breve> <Ahook> 		      : "Ẳ"   Abrevehook          # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_breve> <Atilde> 		      : "Ẵ"   Abrevetilde         # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_breve> <aacute> 		      : "ắ"   abreveacute         # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_breve> <agrave> 		      : "ằ"   abrevegrave         # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_breve> <ahook> 		      : "ẳ"   abrevehook          # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_breve> <atilde> 		      : "ẵ"   abrevetilde         # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_breve> <nobreakspace> 	      : "̆"   U0306                # COMBINING BREVE
+<dead_caron> <parenleft> 	      : "₍"   U208D               # SUBSCRIPT LEFT PARENTHESIS
+<dead_caron> <parenright> 	      : "₎"   U208E               # SUBSCRIPT RIGHT PARENTHESIS
+<dead_caron> <plus> 		      : "₊"   U208A               # SUBSCRIPT PLUS SIGN
+<dead_caron> <minus> 		      : "₋"   U208B               # SUBSCRIPT MINUS
+<dead_caron> <0> 		      : "₀"   zerosubscript       # SUBSCRIPT ZERO
+<dead_caron> <1> 		      : "₁"   onesubscript        # SUBSCRIPT ONE
+<dead_caron> <2> 		      : "₂"   twosubscript        # SUBSCRIPT TWO
+<dead_caron> <3> 		      : "₃"   threesubscript      # SUBSCRIPT THREE
+<dead_caron> <4> 		      : "₄"   foursubscript       # SUBSCRIPT FOUR
+<dead_caron> <5> 		      : "₅"   fivesubscript       # SUBSCRIPT FIVE
+<dead_caron> <6> 		      : "₆"   sixsubscript        # SUBSCRIPT SIX
+<dead_caron> <7> 		      : "₇"   sevensubscript      # SUBSCRIPT SEVEN
+<dead_caron> <8> 		      : "₈"   eightsubscript      # SUBSCRIPT EIGHT
+<dead_caron> <9> 		      : "₉"   ninesubscript       # SUBSCRIPT NINE
+<dead_caron> <equal> 		      : "₌"   U208C               # SUBSCRIPT EQUALS SIGN
+<dead_caron> <U01F2> 		      : "Dž"   U01C5               # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
+<dead_caron> <Sabovedot> 	      : "Ṧ"   U1E66               # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_caron> <sabovedot> 	      : "ṧ"   U1E67               # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_caron> <V> 		      : "Ǚ"   U01D9               # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <v> 		      : "ǚ"   U01DA               # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <nobreakspace> 	      : "̌"   U030C               # COMBINING CARON
+<dead_cedilla> <Cacute> 	      : "Ḉ"   U1E08               # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_cedilla> <ColonSign> 	      : "₵"   U20B5               # CEDI SIGN
+<dead_cedilla> <cacute> 	      : "ḉ"   U1E09               # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_cedilla> <cent> 		      : "₵"   U20B5               # CEDI SIGN
+<dead_cedilla> <U0114> 		      : "Ḝ"   U1E1C               # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_cedilla> <U0115> 		      : "ḝ"   U1E1D               # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_cedilla> <nobreakspace> 	      : "̧"   U0327               # COMBINING CEDILLA
+<dead_circumflex> <minus> 	      : "⁻"   U207B               # SUPERSCRIPT MINUS
+<dead_circumflex> <Aacute> 	      : "Ấ"   Acircumflexacute    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <Agrave> 	      : "Ầ"   Acircumflexgrave    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <Ahook> 	      : "Ẩ"   Acircumflexhook     # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <Atilde> 	      : "Ẫ"   Acircumflextilde    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <aacute> 	      : "ấ"   acircumflexacute    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <agrave> 	      : "ầ"   acircumflexgrave    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <ahook> 	      : "ẩ"   acircumflexhook     # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <atilde> 	      : "ẫ"   acircumflextilde    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <Eacute> 	      : "Ế"   Ecircumflexacute    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <Egrave> 	      : "Ề"   Ecircumflexgrave    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <Ehook> 	      : "Ể"   Ecircumflexhook     # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <Etilde> 	      : "Ễ"   Ecircumflextilde    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <eacute> 	      : "ế"   ecircumflexacute    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <egrave> 	      : "ề"   ecircumflexgrave    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <ehook> 	      : "ể"   ecircumflexhook     # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <etilde> 	      : "ễ"   ecircumflextilde    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <Oacute> 	      : "Ố"   Ocircumflexacute    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <Ograve> 	      : "Ồ"   Ocircumflexgrave    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <Ohook> 	      : "Ổ"   Ocircumflexhook     # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <Otilde> 	      : "Ỗ"   Ocircumflextilde    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <oacute> 	      : "ố"   ocircumflexacute    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <ograve> 	      : "ồ"   ocircumflexgrave    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <ohook> 	      : "ổ"   ocircumflexhook     # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <otilde> 	      : "ỗ"   ocircumflextilde    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <nobreakspace>      : "̂"   U0302               # COMBINING CIRCUMFLEX ACCENT
+<dead_belowcomma> <S> 		      : "Ș"   U0218               # LATIN CAPITAL LETTER S WITH COMMA BELOW
+<dead_belowcomma> <s> 		      : "ș"   U0219               # LATIN SMALL LETTER S WITH COMMA BELOW
+<dead_belowcomma> <T> 		      : "Ț"   U021A               # LATIN CAPITAL LETTER T WITH COMMA BELOW
+<dead_belowcomma> <t> 		      : "ț"   U021B               # LATIN SMALL LETTER T WITH COMMA BELOW
+<dead_belowcomma> <dead_belowcomma>   : ","   comma               # COMMA
+<dead_belowcomma> <nobreakspace>      : "̦"   U0326               # COMBINING COMMA BELOW
+<dead_belowcomma> <space> 	      : ","   comma               # COMMA
+<dead_currency> <A> 		      : "₳"   U20B3               # AUSTRAL SIGN
+<dead_currency> <a> 		      : "؋"   U060B               # AFGHANI SIGN
+<dead_currency> <B> 		      : "₱"   U20B1               # PESO SIGN
+<dead_currency> <b> 		      : "฿"   Thai_baht           # THAI CURRENCY SYMBOL BAHT
+<dead_currency> <Ccedilla> 	      : "₵"   U20B5               # CEDI SIGN
+<dead_currency> <C> 		      : "₡"   ColonSign           # COLON SIGN
+<dead_currency> <ccedilla> 	      : "₵"   U20B5               # CEDI SIGN
+<dead_currency> <c> 		      : "¢"   cent                # CENT SIGN
+<dead_currency> <D> 		      : "₯"   U20AF               # DRACHMA SIGN
+<dead_currency> <d> 		      : "₫"   DongSign            # DONG SIGN
+<dead_currency> <E> 		      : "₠"   EcuSign             # EURO-CURRENCY SIGN
+<dead_currency> <e> 		      : "€"   EuroSign            # EURO SIGN
+<dead_currency> <F> 		      : "₣"   FFrancSign          # FRENCH FRANC SIGN
+<dead_currency> <f> 		      : "ƒ"   function            # LATIN SMALL LETTER F WITH HOOK
+<dead_currency> <G> 		      : "₲"   U20B2               # GUARANI SIGN
+<dead_currency> <g> 		      : "₲"   U20B2               # GUARANI SIGN
+<dead_currency> <H> 		      : "₴"   U20B4               # HRYVNIA SIGN
+<dead_currency> <h> 		      : "₴"   U20B4               # HRYVNIA SIGN
+<dead_currency> <I> 		      : "៛"   U17DB               # KHMER CURRENCY SYMBOL RIEL
+<dead_currency> <i> 		      : "﷼"   UFDFC               # RIAL SIGN
+<dead_currency> <K> 		      : "₭"   U20AD               # KIP SIGN
+<dead_currency> <k> 		      : "₭"   U20AD               # KIP SIGN
+<dead_currency> <L> 		      : "₤"   LiraSign            # LIRA SIGN
+<dead_currency> <l> 		      : "£"   sterling            # POUND SIGN
+<dead_currency> <M> 		      : "ℳ"   U2133               # SCRIPT CAPITAL M
+<dead_currency> <m> 		      : "₥"   MillSign            # MILL SIGN
+<dead_currency> <N> 		      : "₦"   NairaSign           # NAIRA SIGN
+<dead_currency> <n> 		      : "₦"   NairaSign           # NAIRA SIGN
+<dead_currency> <O> 		      : "૱"   U0AF1               # GUJARATI RUPEE SIGN
+<dead_currency> <o> 		      : "௹"   U0BF9               # TAMIL RUPEE SIGN
+<dead_currency> <P> 		      : "₧"   PesetaSign          # PESETA SIGN
+<dead_currency> <p> 		      : "₰"   U20B0               # GERMAN PENNY SIGN
+<dead_currency> <r> 		      : "₢"   CruzeiroSign        # CRUZEIRO SIGN
+<dead_currency> <R> 		      : "₨"   RupeeSign           # RUPEE SIGN
+<dead_currency> <S> 		      : "$"   dollar              # DOLLAR SIGN
+<dead_currency> <s> 		      : "₪"   NewSheqelSign       # NEW SHEQEL SIGN
+<dead_currency> <T> 		      : "₮"   U20AE               # TUGRIK SIGN
+<dead_currency> <t> 		      : "৳"   U09F3               # BENGALI RUPEE SIGN
+<dead_currency> <THORN> 	      : "৲"   U09F2               # BENGALI RUPEE MARK
+<dead_currency> <thorn> 	      : "৲"   U09F2               # BENGALI RUPEE MARK
+<dead_currency> <U> 		      : "圓"   U5713              # YUAN / WEN
+<dead_currency> <u> 		      : "元"   U5143              # YUAN / WEN
+<dead_currency> <W> 		      : "₩"   WonSign             # WON SIGN
+<dead_currency> <w> 		      : "₩"   WonSign             # WON SIGN
+<dead_currency> <Y> 		      : "円"   U5186              # YEN
+<dead_currency> <y> 		      : "¥"   yen                 # YEN SIGN
+<dead_currency> <dead_currency>       : "¤"   currency            # CURRENCY SIGN
+<dead_currency> <nobreakspace> 	      : "¤"   currency            # CURRENCY SIGN
+<dead_currency> <space> 	      : "¤"   currency            # CURRENCY SIGN
+<dead_diaeresis> <Amacron> 	      : "Ǟ"   U01DE               # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_diaeresis> <amacron> 	      : "ǟ"   U01DF               # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_diaeresis> <Iacute> 	      : "Ḯ"   U1E2E               # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <iacute> 	      : "ḯ"   U1E2F               # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <Omacron> 	      : "Ȫ"   U022A               # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_diaeresis> <omacron> 	      : "ȫ"   U022B               # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_diaeresis> <Uacute> 	      : "Ǘ"   U01D7               # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <U01D3> 	      : "Ǚ"   U01D9               # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_diaeresis> <Ugrave> 	      : "Ǜ"   U01DB               # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_diaeresis> <uacute> 	      : "ǘ"   U01D8               # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <U01D4> 	      : "ǚ"   U01DA               # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_diaeresis> <ugrave> 	      : "ǜ"   U01DC               # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_diaeresis> <nobreakspace>       : "̈"   U0308                # COMBINING DIAERESIS
+<dead_doubleacute> <nobreakspace>     : "̋"   U030B                # COMBINING DOUBLE ACUTE ACCENT
+<dead_grave> <V>   		      : "Ǜ"   U01DB               # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <v>   		      : "ǜ"   U01DC               # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <nobreakspace> 	      : "̀"   U0300      # COMBINING GRAVE ACCENT
+<dead_greek> <A>            : "Α"   U0391    # GREEK CAPITAL LETTER ALPHA
+<dead_greek> <a>            : "α"   U03B1    # GREEK SMALL LETTER ALPHA
+<dead_greek> <B>            : "Β"   U0392    # GREEK CAPITAL LETTER BETA
+<dead_greek> <b>            : "β"   U03B2    # GREEK SMALL LETTER BETA
+<dead_greek> <D>            : "Δ"   U0394    # GREEK CAPITAL LETTER DELTA
+<dead_greek> <d>            : "δ"   U03B4    # GREEK SMALL LETTER DELTA
+<dead_greek> <E>            : "Ε"   U0395    # GREEK CAPITAL LETTER EPSILON
+<dead_greek> <e>            : "ε"   U03B5    # GREEK SMALL LETTER EPSILON
+<dead_greek> <F>            : "Φ"   U03A6    # GREEK CAPITAL LETTER PHI
+<dead_greek> <f>            : "φ"   U03C6    # GREEK SMALL LETTER PHI
+<dead_greek> <G>            : "Γ"   U0393    # GREEK CAPITAL LETTER GAMMA
+<dead_greek> <g>            : "γ"   U03B3    # GREEK SMALL LETTER GAMMA
+<dead_greek> <H>            : "Η"   U0397    # GREEK CAPITAL LETTER ETA
+<dead_greek> <h>            : "η"   U03B7    # GREEK SMALL LETTER ETA
+<dead_greek> <I>            : "Ι"   U0399    # GREEK CAPITAL LETTER IOTA
+<dead_greek> <i>            : "ι"   U03B9    # GREEK SMALL LETTER IOTA
+<dead_greek> <J>            : "Θ"   U0398    # GREEK CAPITAL LETTER THETA
+<dead_greek> <j>            : "θ"   U03B8    # GREEK SMALL LETTER THETA
+<dead_greek> <K>            : "Κ"   U039A    # GREEK CAPITAL LETTER KAPPA
+<dead_greek> <k>            : "κ"   U03BA    # GREEK SMALL LETTER KAPPA
+<dead_greek> <L>            : "Λ"   U039B    # GREEK CAPITAL LETTER LAMDA
+<dead_greek> <l>            : "λ"   U03BB    # GREEK SMALL LETTER LAMDA
+<dead_greek> <M>            : "Μ"   U039C    # GREEK CAPITAL LETTER MU
+<dead_greek> <m>            : "μ"   U03BC    # GREEK SMALL LETTER MU
+<dead_greek> <N>            : "Ν"   U039D    # GREEK CAPITAL LETTER NU
+<dead_greek> <n>            : "ν"   U03BD    # GREEK SMALL LETTER NU
+<dead_greek> <O>            : "Ο"   U039F    # GREEK CAPITAL LETTER OMICRON
+<dead_greek> <o>            : "ο"   U03BF    # GREEK SMALL LETTER OMICRON
+<dead_greek> <P>            : "Π"   U03A0    # GREEK CAPITAL LETTER PI
+<dead_greek> <p>            : "π"   U03C0    # GREEK SMALL LETTER PI
+<dead_greek> <Q>            : "Χ"   U03A7    # GREEK CAPITAL LETTER CHI
+<dead_greek> <q>            : "χ"   U03C7    # GREEK SMALL LETTER CHI
+<dead_greek> <R>            : "Ρ"   U03A1    # GREEK CAPITAL LETTER RHO
+<dead_greek> <r>            : "ρ"   U03C1    # GREEK SMALL LETTER RHO
+<dead_greek> <S>            : "Σ"   U03A3    # GREEK CAPITAL LETTER SIGMA
+<dead_greek> <s>            : "σ"   U03C3    # GREEK SMALL LETTER SIGMA
+<dead_greek> <T>            : "Τ"   U03A4    # GREEK CAPITAL LETTER TAU
+<dead_greek> <t>            : "τ"   U03C4    # GREEK SMALL LETTER TAU
+<dead_greek> <U>            : "Υ"   U03A5    # GREEK CAPITAL LETTER UPSILON
+<dead_greek> <u>            : "υ"   U03C5    # GREEK SMALL LETTER UPSILON
+<dead_greek> <W>            : "Ω"   U03A9    # GREEK CAPITAL LETTER OMEGA
+<dead_greek> <w>            : "ω"   U03C9    # GREEK SMALL LETTER OMEGA
+<dead_greek> <X>            : "Ξ"   U039E    # GREEK CAPITAL LETTER XI
+<dead_greek> <x>            : "ξ"   U03BE    # GREEK SMALL LETTER XI
+<dead_greek> <Y>            : "Ψ"   U03A8    # GREEK CAPITAL LETTER PSI
+<dead_greek> <y>            : "ψ"   U03C8    # GREEK SMALL LETTER PSI
+<dead_greek> <Z>            : "Ζ"   U0396    # GREEK CAPITAL LETTER ZETA
+<dead_greek> <z>            : "ζ"   U03B6    # GREEK SMALL LETTER ZETA
+<dead_greek> <dead_greek>   : "µ"   U00B5    # MICRO SIGN
+<dead_greek> <nobreakspace> : "µ"   U00B5    # MICRO SIGN
+<dead_greek> <space>        : "µ"   U00B5    # MICRO SIGN
+<dead_hook> <B> 		      : "Ɓ"   U0181               # LATIN CAPITAL LETTER B WITH HOOK
+<dead_hook> <b> 		      : "ɓ"   U0253               # LATIN SMALL LETTER B WITH HOOK
+<dead_hook> <C> 		      : "Ƈ"   U0187               # LATIN CAPITAL LETTER C WITH HOOK
+<dead_hook> <c> 		      : "ƈ"   U0188               # LATIN SMALL LETTER C WITH HOOK
+<dead_hook> <D> 		      : "Ɗ"   U018A               # LATIN CAPITAL LETTER D WITH HOOK
+<dead_hook> <d> 		      : "ɗ"   U0257               # LATIN SMALL LETTER D WITH HOOK
+<dead_hook> <U0256> 		      : "ᶑ"   U1D91               # LATIN SMALL LETTER D WITH HOOK AND TAIL
+<dead_hook> <F> 		      : "Ƒ"   U0191               # LATIN CAPITAL LETTER F WITH HOOK
+<dead_hook> <f> 		      : "ƒ"   function            # LATIN SMALL LETTER F WITH HOOK
+<dead_hook> <G> 		      : "Ɠ"   U0193               # LATIN CAPITAL LETTER G WITH HOOK
+<dead_hook> <g> 		      : "ɠ"   U0260               # LATIN SMALL LETTER G WITH HOOK
+<dead_hook> <h> 		      : "ɦ"   U0266               # LATIN SMALL LETTER H WITH HOOK
+<dead_hook> <U025F> 		      : "ʄ"   U0284               # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
+<dead_hook> <K> 		      : "Ƙ"   U0198               # LATIN CAPITAL LETTER K WITH HOOK
+<dead_hook> <k> 		      : "ƙ"   U0199               # LATIN SMALL LETTER K WITH HOOK
+<dead_hook> <M> 		      : "Ɱ"   U2C6E               # LATIN CAPITAL LETTER M WITH HOOK
+<dead_hook> <m> 		      : "ɱ"   U0271               # LATIN SMALL LETTER M WITH HOOK
+<dead_hook> <N> 		      : "Ɲ"   U019D               # LATIN CAPITAL LETTER N WITH LEFT HOOK
+<dead_hook> <n> 		      : "ɲ"   U0272               # LATIN SMALL LETTER N WITH LEFT HOOK
+<dead_hook> <P> 		      : "Ƥ"   U01A4               # LATIN CAPITAL LETTER P WITH HOOK
+<dead_hook> <p> 		      : "ƥ"   U01A5               # LATIN SMALL LETTER P WITH HOOK
+<dead_hook> <q> 		      : "ʠ"   U02A0               # LATIN SMALL LETTER Q WITH HOOK
+<dead_hook> <U025C> 		      : "ɝ"   U025D               # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
+<dead_hook> <r> 		      : "ɼ"   U027C               # LATIN SMALL LETTER R WITH LONG LEG
+<dead_hook> <s> 		      : "ʂ"   U0282               # LATIN SMALL LETTER S WITH HOOK
+<dead_hook> <schwa> 		      : "ɚ"   U025A               # LATIN SMALL LETTER SCHWA WITH HOOK
+<dead_hook> <T> 		      : "Ƭ"   U01AC               # LATIN CAPITAL LETTER T WITH HOOK
+<dead_hook> <t> 		      : "ƭ"   U01AD               # LATIN SMALL LETTER T WITH HOOK
+<dead_hook> <U0279> 		      : "ɻ"   U027B               # LATIN SMALL LETTER TURNED R WITH HOOK
+<dead_hook> <V> 		      : "Ʋ"   U01B2               # LATIN CAPITAL LETTER V WITH HOOK
+<dead_hook> <v> 		      : "ʋ"   U028B               # LATIN SMALL LETTER V WITH HOOK
+<dead_hook> <W> 		      : "Ⱳ"   U2C72               # LATIN CAPITAL LETTER W WITH HOOK
+<dead_hook> <w> 		      : "ⱳ"   U2C73               # LATIN SMALL LETTER W WITH HOOK
+<dead_hook> <Z> 		      : "Ȥ"   U0224               # LATIN CAPITAL LETTER Z WITH HOOK
+<dead_hook> <z> 		      : "ȥ"   U0225               # LATIN SMALL LETTER Z WITH HOOK
+<dead_hook> <dead_hook> 	      : "̉"   U0309                # COMBINING HOOK ABOVE
+<dead_hook> <nobreakspace> 	      : "̉"   U0309                # COMBINING HOOK ABOVE
+<dead_hook> <space> 		      : "̉"   U0309                # COMBINING HOOK ABOVE
+<dead_horn> <Oacute> 		      : "Ớ"   Ohornacute          # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_horn> <Obelowdot> 	      : "Ợ"   Ohornbelowdot       # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_horn> <Ograve> 		      : "Ờ"   Ohorngrave          # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_horn> <Ohook> 		      : "Ở"   Ohornhook           # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_horn> <Otilde> 		      : "Ỡ"   Ohorntilde          # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_horn> <oacute> 		      : "ớ"   ohornacute          # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_horn> <obelowdot> 	      : "ợ"   ohornbelowdot       # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_horn> <ograve> 		      : "ờ"   ohorngrave          # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_horn> <ohook> 		      : "ở"   ohornhook           # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_horn> <otilde> 		      : "ỡ"   ohorntilde          # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_horn> <Uacute> 		      : "Ứ"   Uhornacute          # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_horn> <Ubelowdot> 	      : "Ự"   Uhornbelowdot       # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_horn> <Ugrave> 		      : "Ừ"   Uhorngrave          # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_horn> <Uhook> 		      : "Ử"   Uhornhook           # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_horn> <Utilde> 		      : "Ữ"   Uhorntilde          # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_horn> <uacute> 		      : "ứ"   uhornacute          # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_horn> <ubelowdot> 	      : "ự"   uhornbelowdot       # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_horn> <ugrave> 		      : "ừ"   uhorngrave          # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_horn> <uhook> 		      : "ử"   uhornhook           # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_horn> <utilde> 		      : "ữ"   uhorntilde          # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_horn> <dead_horn> 	      : "̛"   U031B                # COMBINING HORN
+<dead_horn> <nobreakspace> 	      : "̛"   U031B                # COMBINING HORN
+<dead_horn> <space> 		      : "̛"   U031B                # COMBINING HORN
+<dead_macron> <Eacute> 		      : "Ḗ"   U1E16               # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_macron> <Egrave> 		      : "Ḕ"   U1E14               # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_macron> <eacute> 		      : "ḗ"   U1E17               # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_macron> <egrave> 		      : "ḕ"   U1E15               # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_macron> <Oacute> 		      : "Ṓ"   U1E52               # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_macron> <Ograve> 		      : "Ṑ"   U1E50               # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_macron> <oacute> 		      : "ṓ"   U1E53               # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_macron> <ograve> 		      : "ṑ"   U1E51               # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_macron> <V> 		      : "Ǖ"   U01D5               # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <v> 		      : "ǖ"   U01D6               # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <nobreakspace> 	      : "̄"   U0304                # COMBINING MACRON
+<dead_ogonek> <Omacron> 	      : "Ǭ"   U01EC               # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_ogonek> <omacron> 	      : "ǭ"   U01ED               # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_ogonek> <nobreakspace> 	      : "̨"   U0328                # COMBINING OGONEK
+<dead_abovering> <Aacute> 	      : "Ǻ"   U01FA               # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_abovering> <aacute> 	      : "ǻ"   U01FB               # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_abovering> <nobreakspace>       : "̊"   U030A                # COMBINING RING ABOVE
+<dead_stroke> <2> 		      : "ƻ"   U01BB               # LATIN LETTER TWO WITH STROKE
+<dead_stroke> <equal> 		      : "≠"   notequal            # NOT EQUAL TO
+<dead_stroke> <A> 		      : "Ⱥ"   U023A               # LATIN CAPITAL LETTER A WITH STROKE
+<dead_stroke> <a> 		      : "ⱥ"   U2C65               # LATIN SMALL LETTER A WITH STROKE
+<dead_stroke> <B> 		      : "Ƀ"   U0243               # LATIN CAPITAL LETTER B WITH STROKE
+<dead_stroke> <C> 		      : "Ȼ"   U023B               # LATIN CAPITAL LETTER C WITH STROKE
+<dead_stroke> <c> 		      : "ȼ"   U023C               # LATIN SMALL LETTER C WITH STROKE
+<dead_stroke> <E> 		      : "Ɇ"   U0246               # LATIN CAPITAL LETTER E WITH STROKE
+<dead_stroke> <e> 		      : "ɇ"   U0247               # LATIN SMALL LETTER E WITH STROKE
+<dead_stroke> <greater> 	      : "≯"   U226F               # NOT GREATER-THAN
+<dead_stroke> <greaterthanequal>      : "≱"   U2271               # NEITHER GREATER-THAN NOR EQUAL TO
+<dead_stroke> <J> 		      : "Ɉ"   U0248               # LATIN CAPITAL LETTER J WITH STROKE
+<dead_stroke> <j> 		      : "ɉ"   U0249               # LATIN SMALL LETTER J WITH STROKE
+<dead_stroke> <U0269> 		      : "ᵼ"   U1D7C               # LATIN SMALL LETTER IOTA WITH STROKE
+<dead_stroke> <U0237> 		      : "ɟ"   U025F               # LATIN SMALL LETTER DOTLESS J WITH STROKE
+<dead_stroke> <less> 		      : "≮"   U226E               # NOT LESS-THAN
+<dead_stroke> <lessthanequal> 	      : "≰"   U2270               # NEITHER LESS-THAN NOR EQUAL TO
+<dead_stroke> <Oacute> 		      : "Ǿ"   U01FE               # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_stroke> <oacute> 		      : "ǿ"   U01FF               # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_stroke> <P> 		      : "Ᵽ"   U2C63               # LATIN CAPITAL LETTER P WITH STROKE
+<dead_stroke> <p> 		      : "ᵽ"   U1D7D               # LATIN SMALL LETTER P WITH STROKE
+<dead_stroke> <R> 		      : "Ɍ"   U024C               # LATIN CAPITAL LETTER R WITH STROKE
+<dead_stroke> <r> 		      : "ɍ"   U024D               # LATIN SMALL LETTER R WITH STROKE
+<dead_stroke> <U> 		      : "Ʉ"   U0244               # LATIN CAPITAL LETTER U BAR
+<dead_stroke> <u> 		      : "ʉ"   U0289               # LATIN SMALL LETTER U BAR
+<dead_stroke> <Y> 		      : "Ɏ"   U024E               # LATIN CAPITAL LETTER Y WITH STROKE
+<dead_stroke> <y> 		      : "ɏ"   U024F               # LATIN SMALL LETTER Y WITH STROKE
+<dead_stroke> <dead_stroke> 	      : "/"   slash               # SOLIDUS
+<dead_stroke> <nobreakspace> 	      : "̸"   U0338                # COMBINING LONG SOLIDUS OVERLAY
+<dead_stroke> <space> 		      : "/"   slash               # SOLIDUS
+<dead_tilde> <Oacute> 		      : "Ṍ"   U1E4C               # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_tilde> <Odiaeresis> 	      : "Ṏ"   U1E4E               # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_tilde> <Omacron> 		      : "Ȭ"   U022C               # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_tilde> <oacute> 		      : "ṍ"   U1E4D               # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_tilde> <odiaeresis> 	      : "ṏ"   U1E4F               # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_tilde> <omacron> 		      : "ȭ"   U022D               # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_tilde> <Uacute> 		      : "Ṹ"   U1E78               # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_tilde> <uacute> 		      : "ṹ"   U1E79               # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_tilde> <equal> 		      : "≃"   similarequal        # ASYMPTOTICALLY EQUAL TO
+<dead_tilde> <less> 		      : "≲"   U2272               # LESS-THAN OR EQUIVALENT TO
+<dead_tilde> <greater> 		      : "≳"   U2273               # GREATER-THAN OR EQUIVALENT TO
+<dead_tilde> <nobreakspace> 	      : "̃"   U0303      # COMBINING TILDE
+<dead_acute> <dead_abovedot> <S>      : "Ṥ"   U1E64               # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_acute> <dead_abovedot> <s>      : "ṥ"   U1E65               # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_belowdot> <dead_abovedot> <S>   : "Ṩ"   U1E68               # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_belowdot> <dead_abovedot> <s>   : "ṩ"   U1E69               # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_caron> <dead_abovedot> <S>      : "Ṧ"   U1E66               # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_caron> <dead_abovedot> <s>      : "ṧ"   U1E67               # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <dead_macron> <A>     : "Ǡ"   U01E0               # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_abovedot> <dead_macron> <a>     : "ǡ"   U01E1               # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_abovedot> <dead_macron> <O>     : "Ȱ"   U0230               # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_abovedot> <dead_macron> <o>     : "ȱ"   U0231               # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_abovedot> <dead_stroke> <j>     : "ɟ"   U025F               # LATIN SMALL LETTER DOTLESS J WITH STROKE
+<dead_stroke> <dead_abovedot> <j>     : "ɟ"   U025F               # LATIN SMALL LETTER DOTLESS J WITH STROKE
+<dead_breve> <dead_acute> <A> 	      : "Ắ"   Abreveacute         # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_breve> <dead_acute> <a> 	      : "ắ"   abreveacute         # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_cedilla> <dead_acute> <C>       : "Ḉ"   U1E08               # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_cedilla> <dead_acute> <c>       : "ḉ"   U1E09               # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_circumflex> <dead_acute> <A>    : "Ấ"   Acircumflexacute    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <dead_acute> <a>    : "ấ"   acircumflexacute    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <dead_acute> <E>    : "Ế"   Ecircumflexacute    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <dead_acute> <e>    : "ế"   ecircumflexacute    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <dead_acute> <O>    : "Ố"   Ocircumflexacute    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_circumflex> <dead_acute> <o>    : "ố"   ocircumflexacute    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_diaeresis> <dead_acute> <I>     : "Ḯ"   U1E2E               # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <dead_acute> <i>     : "ḯ"   U1E2F               # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <dead_acute> <U>     : "Ǘ"   U01D7               # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_diaeresis> <dead_acute> <u>     : "ǘ"   U01D8               # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_horn> <dead_acute> <O>  	      : "Ớ"   Ohornacute          # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_horn> <dead_acute> <o>  	      : "ớ"   ohornacute          # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_horn> <dead_acute> <U>  	      : "Ứ"   Uhornacute          # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_horn> <dead_acute> <u> 	      : "ứ"   uhornacute          # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_macron> <dead_acute> <E> 	      : "Ḗ"   U1E16               # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_macron> <dead_acute> <e> 	      : "ḗ"   U1E17               # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_macron> <dead_acute> <O> 	      : "Ṓ"   U1E52               # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_macron> <dead_acute> <o> 	      : "ṓ"   U1E53               # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_abovering> <dead_acute> <A>     : "Ǻ"   U01FA               # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_abovering> <dead_acute> <a>     : "ǻ"   U01FB               # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_tilde> <dead_acute> <O> 	      : "Ṍ"   U1E4C               # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_tilde> <dead_acute> <o> 	      : "ṍ"   U1E4D               # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_tilde> <dead_acute> <U> 	      : "Ṹ"   U1E78               # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_tilde> <dead_acute> <u> 	      : "ṹ"   U1E79               # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_belowdot> <dead_breve> <A>      : "Ặ"   Abrevebelowdot      # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <dead_breve> <a>      : "ặ"   abrevebelowdot      # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <A> : "Ậ"   Acircumflexbelowdot # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <a> : "ậ"   acircumflexbelowdot # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <E> : "Ệ"   Ecircumflexbelowdot # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <e> : "ệ"   ecircumflexbelowdot # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <O> : "Ộ"   Ocircumflexbelowdot # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <dead_circumflex> <o> : "ộ"   ocircumflexbelowdot # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_horn> <dead_belowdot> <O>       : "Ợ"   Ohornbelowdot       # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_horn> <dead_belowdot> <o>       : "ợ"   ohornbelowdot       # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_horn> <dead_belowdot> <U>       : "Ự"   Uhornbelowdot       # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_horn> <dead_belowdot> <u>       : "ự"   uhornbelowdot       # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_macron> <L>     : "Ḹ"   U1E38               # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_belowdot> <dead_macron> <l>     : "ḹ"   U1E39               # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_belowdot> <dead_macron> <R>     : "Ṝ"   U1E5C               # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_belowdot> <dead_macron> <r>     : "ṝ"   U1E5D               # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_cedilla> <dead_breve> <E>       : "Ḝ"   U1E1C               # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_cedilla> <dead_breve> <e>       : "ḝ"   U1E1D               # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <dead_grave> <A> 	      : "Ằ"   Abrevegrave         # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_breve> <dead_grave> <a> 	      : "ằ"   abrevegrave         # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_breve> <dead_hook> <A> 	      : "Ẳ"   Abrevehook          # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_breve> <dead_hook> <a> 	      : "ẳ"   abrevehook          # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_breve> <dead_tilde> <A> 	      : "Ẵ"   Abrevetilde         # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_breve> <dead_tilde> <a> 	      : "ẵ"   abrevetilde         # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_diaeresis> <dead_caron> <U>     : "Ǚ"   U01D9               # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_diaeresis> <dead_caron> <u>     : "ǚ"   U01DA               # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_cedilla> <dead_currency> <C>    : "₵"   U20B5               # CEDI SIGN
+<dead_currency> <dead_cedilla> <C>    : "₵"   U20B5               # CEDI SIGN
+<dead_cedilla> <dead_currency> <c>    : "₵"   U20B5               # CEDI SIGN
+<dead_currency> <dead_cedilla> <c>    : "₵"   U20B5               # CEDI SIGN
+<dead_circumflex> <dead_grave> <A>    : "Ầ"   Acircumflexgrave    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_grave> <a>    : "ầ"   acircumflexgrave    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_grave> <E>    : "Ề"   Ecircumflexgrave    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_grave> <e>    : "ề"   ecircumflexgrave    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_grave> <O>    : "Ồ"   Ocircumflexgrave    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_grave> <o>    : "ồ"   ocircumflexgrave    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_circumflex> <dead_hook> <A>     : "Ẩ"   Acircumflexhook     # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_hook> <a>     : "ẩ"   acircumflexhook     # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_hook> <E>     : "Ể"   Ecircumflexhook     # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_hook> <e>     : "ể"   ecircumflexhook     # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_hook> <O>     : "Ổ"   Ocircumflexhook     # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_hook> <o>     : "ổ"   ocircumflexhook     # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_circumflex> <dead_tilde> <A>    : "Ẫ"   Acircumflextilde    # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <dead_tilde> <a>    : "ẫ"   acircumflextilde    # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <dead_tilde> <E>    : "Ễ"   Ecircumflextilde    # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <dead_tilde> <e>    : "ễ"   ecircumflextilde    # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <dead_tilde> <O>    : "Ỗ"   Ocircumflextilde    # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <dead_tilde> <o>    : "ỗ"   ocircumflextilde    # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_diaeresis> <dead_grave> <U>     : "Ǜ"   U01DB               # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_diaeresis> <dead_grave> <u>     : "ǜ"   U01DC               # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_diaeresis> <dead_macron> <A>    : "Ǟ"   U01DE               # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_diaeresis> <dead_macron> <a>    : "ǟ"   U01DF               # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_diaeresis> <dead_macron> <O>    : "Ȫ"   U022A               # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_diaeresis> <dead_macron> <o>    : "ȫ"   U022B               # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_tilde> <dead_diaeresis> <O>     : "Ṏ"   U1E4E               # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_tilde> <dead_diaeresis> <o>     : "ṏ"   U1E4F               # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_horn> <dead_grave> <O>  	      : "Ờ"   Ohorngrave          # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_horn> <dead_grave> <o>  	      : "ờ"   ohorngrave          # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_horn> <dead_grave> <U> 	      : "Ừ"   Uhorngrave          # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_horn> <dead_grave> <u> 	      : "ừ"   uhorngrave          # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_macron> <dead_grave> <E> 	      : "Ḕ"   U1E14               # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_macron> <dead_grave> <e> 	      : "ḕ"   U1E15               # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_macron> <dead_grave> <O> 	      : "Ṑ"   U1E50               # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_macron> <dead_grave> <o> 	      : "ṑ"   U1E51               # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_horn> <dead_hook> <O> 	      : "Ở"   Ohornhook           # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_horn> <dead_hook> <o> 	      : "ở"   ohornhook           # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_horn> <dead_hook> <U> 	      : "Ử"   Uhornhook           # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_horn> <dead_hook> <u> 	      : "ử"   uhornhook           # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_horn> <dead_tilde> <O> 	      : "Ỡ"   Ohorntilde          # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_horn> <dead_tilde> <o> 	      : "ỡ"   ohorntilde          # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_horn> <dead_tilde> <U> 	      : "Ữ"   Uhorntilde          # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_horn> <dead_tilde> <u> 	      : "ữ"   uhorntilde          # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_ogonek> <dead_macron> <O>       : "Ǭ"   U01EC               # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_ogonek> <dead_macron> <o>       : "ǭ"   U01ED               # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_tilde> <dead_macron> <O> 	      : "Ȭ"   U022C               # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_tilde> <dead_macron> <o> 	      : "ȭ"   U022D               # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_greek>  <dead_hook>   <U> : "ϒ"    U03D2    # GREEK UPSILON WITH HOOK SYMBOL
+<dead_hook>   <dead_greek>  <U> : "ϒ"    U03D2    # GREEK UPSILON WITH HOOK SYMBOL
+<dead_greek>  <dead_macron> <A> : "Ᾱ"    U1FB9    # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<dead_macron> <dead_greek>  <A> : "Ᾱ"    U1FB9    # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<dead_greek>  <dead_macron> <a> : "ᾱ"    U1FB1    # GREEK SMALL LETTER ALPHA WITH MACRON
+<dead_macron> <dead_greek>  <a> : "ᾱ"    U1FB1    # GREEK SMALL LETTER ALPHA WITH MACRON
+<dead_greek>  <dead_macron> <I> : "Ῑ"    U1FD9    # GREEK CAPITAL LETTER IOTA WITH MACRON
+<dead_macron> <dead_greek>  <I> : "Ῑ"    U1FD9    # GREEK CAPITAL LETTER IOTA WITH MACRON
+<dead_greek>  <dead_macron> <i> : "ῑ"    U1FD1    # GREEK SMALL LETTER IOTA WITH MACRON
+<dead_macron> <dead_greek>  <i> : "ῑ"    U1FD1    # GREEK SMALL LETTER IOTA WITH MACRON
+<dead_greek>  <dead_macron> <U> : "Ῡ"    U1FE9    # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<dead_macron> <dead_greek>  <U> : "Ῡ"    U1FE9    # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<dead_greek>  <dead_macron> <u> : "ῡ"    U1FE1    # GREEK SMALL LETTER UPSILON WITH MACRON
+<dead_macron> <dead_greek>  <u> : "ῡ"    U1FE1    # GREEK SMALL LETTER UPSILON WITH MACRON
+<dead_greek>  <dead_stroke> <r> : "ϼ"    U03FC    # GREEK RHO WITH STROKE SYMBOL
+<dead_stroke> <dead_greek>  <r> : "ϼ"    U03FC    # GREEK RHO WITH STROKE SYMBOL
+
+#
+# Cyrillic NFDs
+#
+
+<dead_doublegrave> <Cyrillic_a>			: "а̏"		# CYRILLIC SMALL LETTER A WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_a>	: "а̏"		# CYRILLIC SMALL LETTER A WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_a>		: "а̑"		# CYRILLIC SMALL LETTER A WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_a>			: "а̀"		# CYRILLIC SMALL LETTER A WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_a>		: "а̀"		# CYRILLIC SMALL LETTER A WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_a>			: "а́"		# CYRILLIC SMALL LETTER A WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_a>		: "а́"		# CYRILLIC SMALL LETTER A WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_a>		: "а́"		# CYRILLIC SMALL LETTER A WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_a>			: "а̄"		# CYRILLIC SMALL LETTER A WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_a>		: "а̄"		# CYRILLIC SMALL LETTER A WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_a>		: "а̄"		# CYRILLIC SMALL LETTER A WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_a>			: "а̂"		# CYRILLIC SMALL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_a>		: "а̂"		# CYRILLIC SMALL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_A>			: "А̏"		# CYRILLIC CAPITAL LETTER A WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_A>	: "А̏"		# CYRILLIC CAPITAL LETTER A WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_A>		: "А̑"		# CYRILLIC CAPITAL LETTER A WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_A>			: "А̀"		# CYRILLIC CAPITAL LETTER A WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_A>		: "А̀"		# CYRILLIC CAPITAL LETTER A WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_A>			: "А́"		# CYRILLIC CAPITAL LETTER A WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_A>		: "А́"		# CYRILLIC CAPITAL LETTER A WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_A>		: "А́"		# CYRILLIC CAPITAL LETTER A WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_A>			: "А̄"		# CYRILLIC CAPITAL LETTER A WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_A>		: "А̄"		# CYRILLIC CAPITAL LETTER A WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_A>		: "А̄"		# CYRILLIC CAPITAL LETTER A WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_A>			: "А̂"		# CYRILLIC CAPITAL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_A>		: "А̂"		# CYRILLIC CAPITAL LETTER A WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_ie>		: "е̏"		# CYRILLIC SMALL LETTER IE WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_ie>	: "е̏"		# CYRILLIC SMALL LETTER IE WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_ie>		: "е̑"		# CYRILLIC SMALL LETTER IE WITH COMBINING INVERTED BREVE
+
+<dead_acute> <Cyrillic_ie>			: "е́"		# CYRILLIC SMALL LETTER IE WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_ie>		: "е́"		# CYRILLIC SMALL LETTER IE WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_ie>		: "е́"		# CYRILLIC SMALL LETTER IE WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_ie>			: "е̄"		# CYRILLIC SMALL LETTER IE WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_ie>		: "е̄"		# CYRILLIC SMALL LETTER IE WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_ie>		: "е̄"		# CYRILLIC SMALL LETTER IE WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_ie>			: "е̂"		# CYRILLIC SMALL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_ie>		: "е̂"		# CYRILLIC SMALL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_IE>		: "Е̏"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_IE>	: "Е̏"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_IE>		: "Е̑"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING INVERTED BREVE
+
+<dead_acute> <Cyrillic_IE>			: "Е́"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_IE>		: "Е́"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_IE>		: "Е́"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_IE>			: "Е̄"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_IE>		: "Е̄"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_IE>		: "Е̄"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_IE>			: "Е̂"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_IE>		: "Е̂"		# CYRILLIC CAPITAL LETTER IE WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_i>			: "и̏"		# CYRILLIC SMALL LETTER I WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_i>	: "и̏"		# CYRILLIC SMALL LETTER I WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_i>		: "и̑"		# CYRILLIC SMALL LETTER I WITH COMBINING INVERTED BREVE
+
+<dead_acute> <Cyrillic_i>			: "и́"		# CYRILLIC SMALL LETTER I WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_i>		: "и́"		# CYRILLIC SMALL LETTER I WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_i>		: "и́"		# CYRILLIC SMALL LETTER I WITH COMBINING ACUTE ACCENT
+
+<dead_circumflex> <Cyrillic_i>			: "и̂"		# CYRILLIC SMALL LETTER I WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_i>		: "и̂"		# CYRILLIC SMALL LETTER I WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_I>			: "И̏"		# CYRILLIC CAPITAL LETTER I WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_I>	: "И̏"		# CYRILLIC CAPITAL LETTER I WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_I>		: "И̑"		# CYRILLIC CAPITAL LETTER I WITH COMBINING INVERTED BREVE
+
+<dead_acute> <Cyrillic_I>			: "И́"		# CYRILLIC CAPITAL LETTER I WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_I>		: "И́"		# CYRILLIC CAPITAL LETTER I WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_I>		: "И́"		# CYRILLIC CAPITAL LETTER I WITH COMBINING ACUTE ACCENT
+
+<dead_circumflex> <Cyrillic_I>			: "И̂"		# CYRILLIC CAPITAL LETTER I WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_I>		: "И̂"		# CYRILLIC CAPITAL LETTER I WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_o>			: "о̏"		# CYRILLIC SMALL LETTER O WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_o>	: "о̏"		# CYRILLIC SMALL LETTER O WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_o>		: "о̑"		# CYRILLIC SMALL LETTER O WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_o>			: "о̀"		# CYRILLIC SMALL LETTER O WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_o>		: "о̀"		# CYRILLIC SMALL LETTER O WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_o>			: "о́"		# CYRILLIC SMALL LETTER O WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_o>		: "о́"		# CYRILLIC SMALL LETTER O WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_o>		: "о́"		# CYRILLIC SMALL LETTER O WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_o>			: "о̄"		# CYRILLIC SMALL LETTER O WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_o>		: "о̄"		# CYRILLIC SMALL LETTER O WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_o>		: "о̄"		# CYRILLIC SMALL LETTER O WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_o>			: "о̂"		# CYRILLIC SMALL LETTER O WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_o>		: "о̂"		# CYRILLIC SMALL LETTER O WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_O>			: "О̏"		# CYRILLIC CAPITAL LETTER O WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_O>	: "О̏"		# CYRILLIC CAPITAL LETTER O WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_O>		: "О̑"		# CYRILLIC CAPITAL LETTER O WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_O>			: "О̀"		# CYRILLIC CAPITAL LETTER O WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_O>		: "О̀"		# CYRILLIC CAPITAL LETTER O WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_O>			: "О́"		# CYRILLIC CAPITAL LETTER O WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_O>		: "О́"		# CYRILLIC CAPITAL LETTER O WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_O>		: "О́"		# CYRILLIC CAPITAL LETTER O WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_O>			: "О̄"		# CYRILLIC CAPITAL LETTER O WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_O>		: "О̄"		# CYRILLIC CAPITAL LETTER O WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_O>		: "О̄"		# CYRILLIC CAPITAL LETTER O WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_O>			: "О̂"		# CYRILLIC CAPITAL LETTER O WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_O>		: "О̂"		# CYRILLIC CAPITAL LETTER O WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_u>			: "у̏"		# CYRILLIC SMALL LETTER U WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_u>	: "у̏"		# CYRILLIC SMALL LETTER U WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_u>		: "у̑"		# CYRILLIC SMALL LETTER U WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_u>			: "у̀"		# CYRILLIC SMALL LETTER U WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_u>		: "у̀"		# CYRILLIC SMALL LETTER U WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_u>			: "у́"		# CYRILLIC SMALL LETTER U WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_u>		: "у́"		# CYRILLIC SMALL LETTER U WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_u>		: "у́"		# CYRILLIC SMALL LETTER U WITH COMBINING ACUTE ACCENT
+
+<dead_circumflex> <Cyrillic_u>			: "у̂"		# CYRILLIC SMALL LETTER U WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_u>		: "у̂"		# CYRILLIC SMALL LETTER U WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_U>			: "У̏"		# CYRILLIC CAPITAL LETTER U WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_U>	: "У̏"		# CYRILLIC CAPITAL LETTER U WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_U>		: "У̑"		# CYRILLIC CAPITAL LETTER U WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_U>			: "У̀"		# CYRILLIC CAPITAL LETTER U WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_U>		: "У̀"		# CYRILLIC CAPITAL LETTER U WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_U>			: "У́"		# CYRILLIC CAPITAL LETTER U WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_U>		: "У́"		# CYRILLIC CAPITAL LETTER U WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_U>		: "У́"		# CYRILLIC CAPITAL LETTER U WITH COMBINING ACUTE ACCENT
+
+<dead_circumflex> <Cyrillic_U>			: "У̂"		# CYRILLIC CAPITAL LETTER U WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_U>		: "У̂"		# CYRILLIC CAPITAL LETTER U WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_er>		: "р̏"		# CYRILLIC SMALL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_er>	: "р̏"		# CYRILLIC SMALL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_er>		: "р̑"		# CYRILLIC SMALL LETTER ER WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_er>			: "р̀"		# CYRILLIC SMALL LETTER ER WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_er>		: "р̀"		# CYRILLIC SMALL LETTER ER WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_er>			: "р́"		# CYRILLIC SMALL LETTER ER WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_er>		: "р́"		# CYRILLIC SMALL LETTER ER WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_er>		: "р́"		# CYRILLIC SMALL LETTER ER WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_er>			: "р̄"		# CYRILLIC SMALL LETTER ER WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_er>		: "р̄"		# CYRILLIC SMALL LETTER ER WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_er>		: "р̄"		# CYRILLIC SMALL LETTER ER WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_er>			: "р̂"		# CYRILLIC SMALL LETTER ER WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_er>		: "р̂"		# CYRILLIC SMALL LETTER ER WITH COMBINING CIRCUMFLEX ACCENT
+
+<dead_doublegrave> <Cyrillic_ER>		: "Р̏"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
+<Multi_key> <grave> <grave> <Cyrillic_ER>	: "Р̏"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING DOUBLE GRAVE ACCENT
+
+<dead_invertedbreve> <Cyrillic_ER>		: "Р̑"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING INVERTED BREVE
+
+<dead_grave> <Cyrillic_ER>			: "Р̀"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING GRAVE ACCENT
+<Multi_key> <grave> <Cyrillic_ER>		: "Р̀"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING GRAVE ACCENT
+
+<dead_acute> <Cyrillic_ER>			: "Р́"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING ACUTE ACCENT
+<Multi_key> <acute> <Cyrillic_ER>		: "Р́"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING ACUTE ACCENT
+<Multi_key> <apostrophe> <Cyrillic_ER>		: "Р́"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING ACUTE ACCENT
+
+<dead_macron> <Cyrillic_ER>			: "Р̄"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING MACRON
+<Multi_key> <macron> <Cyrillic_ER>		: "Р̄"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING MACRON
+<Multi_key> <underscore> <Cyrillic_ER>		: "Р̄"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING MACRON
+
+<dead_circumflex> <Cyrillic_ER>			: "Р̂"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING CIRCUMFLEX ACCENT
+<Multi_key> <asciicircum> <Cyrillic_ER>		: "Р̂"		# CYRILLIC CAPITAL LETTER ER WITH COMBINING CIRCUMFLEX ACCENT
+
+<Multi_key> <backslash> <o> <slash>		: "🙌"		# PERSON RAISING BOTH HANDS IN CELEBRATION
+
+# APL support Geoff Streeter 2012-01-04
+
+# APL was initially an overstruck language. The original APL terminal was an IBM golfball
+# with a specially designed golfball. This meant that characters could be overstruck to
+# produce other characters. This gave APL a richness of primitives which is still powerful
+# today. Overstrikes were always independent of order.
+
+# APLs have extended this into a number of dialects. Let us try to support lots of them.
+# Together with some that have not been used yet. Some traditional ones are not included.
+
+# Characters from "Mathematical Operators"
+
+<Multi_key> <v> <slash>                         : "√"   U221a   # v / SQUARE ROOT
+<Multi_key> <slash> <v>                         : "√"   U221a   # / v SQUARE ROOT
+<Multi_key> <8> <8>                             : "∞"   U221e   # 8 8 INFINITY
+<Multi_key> <equal> <underscore>                : "≡"   U2261   # = _ IDENTICAL TO
+<Multi_key> <underscore> <U2260>                : "≢"   U2262   # _ ≠ NOT IDENTICAL TO
+<Multi_key> <U2260> <underscore>                : "≢"   U2262   # ≠ _ NOT IDENTICAL TO
+<Multi_key> <less> <underscore>                 : "≤"   U2264   # < _ LESS-THAN OR EQUAL TO
+<Multi_key> <underscore> <less>                 : "≤"   U2264   # _ < LESS-THAN OR EQUAL TO
+<Multi_key> <greater> <underscore>              : "≥"   U2265   # > _ GREATER-THAN OR EQUAL TO
+<Multi_key> <underscore> <greater>              : "≥"   U2265   # _ > GREATER-THAN OR EQUAL TO
+<Multi_key> <underscore> <U2282>                : "⊆"   U2286   # _ ⊂ SUBSET OF OR EQUAL TO
+<Multi_key> <U2282> <underscore>                : "⊆"   U2286   # ⊂ _ SUBSET OF OR EQUAL TO
+<Multi_key> <underscore> <U2283>                : "⊇"   U2287   # _ ⊃ SUPERSET OF OR EQUAL TO
+<Multi_key> <U2283> <underscore>                : "⊇"   U2287   # ⊃ _ SUPERSET OF OR EQUAL TO
+<Multi_key> <U25cb> <minus>                     : "⊖"   U2296   # ○ - CIRCLED MINUS
+<Multi_key> <minus> <U25cb>                     : "⊖"   U2296   # - ○ CIRCLED MINUS
+<Multi_key> <U25cb> <period>                    : "⊙"   U2299   # ○ - CIRCLED DOT
+<Multi_key> <period> <U25cb>                    : "⊙"   U2299   # - ○ CIRCLED DOT
+<Multi_key> <less> <greater>                    : "⋄"   U22c4   # < > DIAMOND OPERATOR
+<Multi_key> <greater> <less>                    : "⋄"   U22c4   # > < DIAMOND OPERATOR
+<Multi_key> <U2227> <U2228>                     : "⋄"   U22c4   # ∧ ∨ DIAMOND OPERATOR
+<Multi_key> <U2228> <U2227>                     : "⋄"   U22c4   # ∨ ∧ DIAMOND OPERATOR
+<Multi_key> <colon> <period>                    : "∴"   therefore # THEREFORE
+<Multi_key> <period> <colon>                    : "∵"   because # BECAUSE
+
+# Characters from "Miscellaneous Technical"
+
+<Multi_key> <U22a5> <U22a4>                     : "⌶"   U2336   # ⊥ ⊤ APL FUNCTIONAL SYMBOL I-BEAM
+<Multi_key> <U22a4> <U22a5>                     : "⌶"   U2336   # ⊥ ⊤ APL FUNCTIONAL SYMBOL I-BEAM
+<Multi_key> <bracketleft> <bracketright>        : "⌷"   U2337   # [ ] APL FUNCTIONAL SYMBOL SQUISH QUAD
+<Multi_key> <bracketright> <bracketleft>        : "⌷"   U2337   # ] [ APL FUNCTIONAL SYMBOL SQUISH QUAD
+<Multi_key> <U2395> <equal>                     : "⌸"   U2338   # ⎕ = APL FUNCTIONAL SYMBOL QUAD EQUAL
+<Multi_key> <equal> <U2395>                     : "⌸"   U2338   # = ⎕ APL FUNCTIONAL SYMBOL QUAD EQUAL
+<Multi_key> <U2395> <division>                  : "⌹"   U2339   # ⎕ ÷ APL FUNCTIONAL SYMBOL QUAD DIVIDE
+<Multi_key> <division> <U2395>                  : "⌹"   U2339   # ÷ ⎕ APL FUNCTIONAL SYMBOL QUAD DIVIDE
+<Multi_key> <U2395> <U22c4>                     : "⌺"   U233a   # ⎕ ⋄ APL FUNCTIONAL SYMBOL QUAD DIAMOND
+<Multi_key> <U22c4> <U2395>                     : "⌺"   U233a   # ⋄ ⎕ APL FUNCTIONAL SYMBOL QUAD DIAMOND
+<Multi_key> <U2395> <U2218>                     : "⌻"   U233b   # ⎕ ∘ APL FUNCTIONAL SYMBOL QUAD JOT
+<Multi_key> <U2218> <U2395>                     : "⌻"   U233b   # ∘ ⎕ APL FUNCTIONAL SYMBOL QUAD JOT
+<Multi_key> <U2395> <U25cb>                     : "⌼"   U233c   # ⎕ ○ APL FUNCTIONAL SYMBOL QUAD CIRCLE
+<Multi_key> <U25cb> <U2395>                     : "⌼"   U233c   # ○ ⎕ APL FUNCTIONAL SYMBOL QUAD CIRCLE
+<Multi_key> <U25cb> <bar>                       : "⌽"   U233d   # ○ | APL FUNCTIONAL SYMBOL CIRCLE STILE
+<Multi_key> <bar> <U25cb>                       : "⌽"   U233d   # | ○ APL FUNCTIONAL SYMBOL CIRCLE STILE
+<Multi_key> <U25cb> <U2218>                     : "⌾"   U233e   # ○ ∘ APL FUNCTIONAL SYMBOL CIRCLE JOT
+<Multi_key> <U2218> <U25cb>                     : "⌾"   U233e   # ∘ ○ APL FUNCTIONAL SYMBOL CIRCLE JOT
+<Multi_key> <slash> <minus>                     : "⌿"   U233f   # / - APL FUNCTIONAL SYMBOL SLASH BAR
+<Multi_key> <minus> <slash>                     : "⌿"   U233f   # - / APL FUNCTIONAL SYMBOL SLASH BAR
+<Multi_key> <backslash> <minus>                 : "⍀"   U2340   # \ - APL FUNCTIONAL SYMBOL BACKSLASH BAR
+<Multi_key> <minus> <backslash>                 : "⍀"   U2340   # - \ APL FUNCTIONAL SYMBOL BACKSLASH BAR
+<Multi_key> <slash> <U2395>                     : "⍁"   U2341   # / ⎕ APL FUNCTIONAL SYMBOL QUAD SLASH
+<Multi_key> <U2395> <slash>                     : "⍁"   U2341   # ⎕ / APL FUNCTIONAL SYMBOL QUAD SLASH
+<Multi_key> <backslash> <U2395>                 : "⍂"   U2342   # \ ⎕ APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+<Multi_key> <U2395> <backslash>                 : "⍂"   U2342   # ⎕ \ APL FUNCTIONAL SYMBOL QUAD BACKSLASH
+<Multi_key> <less> <U2395>                      : "⍃"   U2343   # < ⎕ APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+<Multi_key> <U2395> <less>                      : "⍃"   U2343   # ⎕ < APL FUNCTIONAL SYMBOL QUAD LESS-THAN
+<Multi_key> <greater> <U2395>                   : "⍄"   U2344   # > ⎕ APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+<Multi_key> <U2395> <greater>                   : "⍄"   U2344   # ⎕ > APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
+<Multi_key> <U2190> <bar>                       : "⍅"   U2345   # ← | APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+<Multi_key> <bar> <U2190>                       : "⍅"   U2345   # | ← APL FUNCTIONAL SYMBOL LEFTWARDS VANE
+<Multi_key> <U2192> <bar>                       : "⍆"   U2346   # → | APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+<Multi_key> <bar> <U2192>                       : "⍆"   U2346   # | → APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
+<Multi_key> <U2190> <U2395>                     : "⍇"   U2347   # ← ⎕ APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+<Multi_key> <U2395> <U2190>                     : "⍇"   U2347   # ⎕ ← APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
+<Multi_key> <U2192> <U2395>                     : "⍈"   U2348   # → ⎕ APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+<Multi_key> <U2395> <U2192>                     : "⍈"   U2348   # ⎕ → APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
+<Multi_key> <U25cb> <backslash>                 : "⍉"   U2349   # ○ \ APL FUNCTIONAL SYMBOL CIRCLE SLOPE
+<Multi_key> <backslash> <U25cb>                 : "⍉"   U2349   # \ ○ APL FUNCTIONAL SYMBOL CIRCLE SLOPE
+<Multi_key> <underscore> <U22a5>                : "⍊"   U234a   # _ ⊥ APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+<Multi_key> <U22a5> <underscore>                : "⍊"   U234a   # ⊥ _ APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
+<Multi_key> <U2206> <bar>                       : "⍋"   U234b   # ∆ | APL FUNCTIONAL SYMBOL DELTA STILE
+<Multi_key> <bar> <U2206>                       : "⍋"   U234b   # | ∆ APL FUNCTIONAL SYMBOL DELTA STILE
+<Multi_key> <U2228> <U2395>                     : "⍌"   U234c   # ∨ ⎕ APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+<Multi_key> <U2395> <U2228>                     : "⍌"   U234c   # ⎕ ∨ APL FUNCTIONAL SYMBOL QUAD DOWN CARET
+<Multi_key> <U2206> <U2395>                     : "⍍"   U234d   # ∆ ⎕ APL FUNCTIONAL SYMBOL QUAD DELTA
+<Multi_key> <U2395> <U2206>                     : "⍍"   U234d   # ⎕ ∆ APL FUNCTIONAL SYMBOL QUAD DELTA
+<Multi_key> <U2218> <U22a5>                     : "⍎"   U234e   # ∘ ⊥ APL FUNCTIONAL SYMBOL DOWN TACK JOT
+<Multi_key> <U22a5> <U2218>                     : "⍎"   U234e   # ⊥ ∘ APL FUNCTIONAL SYMBOL DOWN TACK JOT
+<Multi_key> <U2191> <minus>                     : "⍏"   U234f   # ↑ - APL FUNCTIONAL SYMBOL UPWARDS VANE
+<Multi_key> <minus> <U2191>                     : "⍏"   U234f   # - ↑ APL FUNCTIONAL SYMBOL UPWARDS VANE
+<Multi_key> <U2191> <U2395>                     : "⍐"   U2350   # ↑ ⎕ APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+<Multi_key> <U2395> <U2191>                     : "⍐"   U2350   # ⎕ ↑ APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
+# I cannot get anything to work with <macron>. Given that no extant APLs use ⍑ I will just leave the lines
+# in place.
+<Multi_key> <macron> <U22a4>                    : "⍑"   U2351   # ¯ ⊤ APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+<Multi_key> <U22a4> <macron>                    : "⍑"   U2351   # ⊤ ¯ APL FUNCTIONAL SYMBOL UP TACK OVERBAR
+<Multi_key> <U2207> <bar>                       : "⍒"   U2352   # ∇ | APL FUNCTIONAL SYMBOL DEL STILE
+<Multi_key> <bar> <U2207>                       : "⍒"   U2352   # | ∇ APL FUNCTIONAL SYMBOL DEL STILE
+<Multi_key> <U2227> <U2395>                     : "⍓"   U2353   # ∧ ⎕ APL FUNCTIONAL SYMBOL QUAD UP CARET
+<Multi_key> <U2395> <U2227>                     : "⍓"   U2353   # ⎕ ∧ APL FUNCTIONAL SYMBOL QUAD UP CARET
+<Multi_key> <U2207> <U2395>                     : "⍔"   U2354   # ∇ ⎕ APL FUNCTIONAL SYMBOL QUAD DEL
+<Multi_key> <U2395> <U2207>                     : "⍔"   U2354   # ⎕ ∇ APL FUNCTIONAL SYMBOL QUAD DEL
+<Multi_key> <U2218> <U22a4>                     : "⍕"   U2355   # ∘ ⊤ APL FUNCTIONAL SYMBOL UP TACK JOT
+<Multi_key> <U22a4> <U2218>                     : "⍕"   U2355   # ⊤ ∘ APL FUNCTIONAL SYMBOL UP TACK JOT
+<Multi_key> <U2193> <minus>                     : "⍖"   U2356   # ↓ - APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+<Multi_key> <minus> <U2193>                     : "⍖"   U2356   # - ↓ APL FUNCTIONAL SYMBOL DOWNWARDS VANE
+<Multi_key> <U2193> <U2395>                     : "⍗"   U2357   # ↓ ⎕ APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+<Multi_key> <U2395> <U2193>                     : "⍗"   U2357   # ⎕ ↓ APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
+# This line clashes with the <apostrophe> <underscore> <E> (and similar) that appear to be there to provide
+# a work around for the problems with <macron>. Or to cope with keyboards that do not have <macron> (more likely).
+# All APL keyboards have <macron>, it is used as the -ve sign for numbers.
+# I do not know of an extant APL using ⍘
+<Multi_key> <underscore> <apostrophe>           : "⍘"   U2358   # _ ' APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
+<Multi_key> <U2206> <underscore>                : "⍙"   U2359   # ∆ _ APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+<Multi_key> <underscore> <U2206>                : "⍙"   U2359   # _ ∆ APL FUNCTIONAL SYMBOL DELTA UNDERBAR
+<Multi_key> <U22c4> <underscore>                : "⍚"   U235a   # ⋄ _ APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+<Multi_key> <underscore> <U22c4>                : "⍚"   U235a   # _ ⋄ APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
+<Multi_key> <U2218> <underscore>                : "⍛"   U235b   # ∘ _ APL FUNCTIONAL SYMBOL JOT UNDERBAR
+<Multi_key> <underscore> <U2218>                : "⍛"   U235b   # _ ∘ APL FUNCTIONAL SYMBOL JOT UNDERBAR
+<Multi_key> <U25cb> <underscore>                : "⍜"   U235c   # ○ _ APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+<Multi_key> <underscore> <U25cb>                : "⍜"   U235c   # _ ○ APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
+<Multi_key> <U2218> <U2229>                     : "⍝"   U235d   # ∘ ∩ APL FUNCTIONAL SYMBOL UP SHOE JOT
+<Multi_key> <U2229> <U2218>                     : "⍝"   U235d   # ∩ ∘ APL FUNCTIONAL SYMBOL UP SHOE JOT
+<Multi_key> <U2395> <apostrophe>                : "⍞"   U235e   # * ¨ APL FUNCTIONAL SYMBOL QUOTE QUAD
+<Multi_key> <apostrophe> <U2395>                : "⍞"   U235e   # ¨ * APL FUNCTIONAL SYMBOL QUOTE QUAD
+<Multi_key> <U25cb> <asterisk>                  : "⍟"   U235f   # ○ * APL FUNCTIONAL SYMBOL CIRCLE STAR
+<Multi_key> <asterisk> <U25cb>                  : "⍟"   U235f   # * ○ APL FUNCTIONAL SYMBOL CIRCLE STAR
+<Multi_key> <colon> <U2395>                     : "⍠"   U2360   # : ⎕ APL FUNCTIONAL SYMBOL QUAD COLON
+<Multi_key> <U2395> <colon>                     : "⍠"   U2360   # ⎕ : APL FUNCTIONAL SYMBOL QUAD COLON
+<Multi_key> <diaeresis> <U22a4>                 : "⍡"   U2361   # ¨ ⊤ APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+<Multi_key> <U22a4> <diaeresis>                 : "⍡"   U2361   # ⊤ ¨ APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
+<Multi_key> <diaeresis> <U2207>                 : "⍢"   U2362   # ¨ ∇ APL FUNCTIONAL SYMBOL DEL DIAERESIS
+<Multi_key> <U2207> <diaeresis>                 : "⍢"   U2362   # ∇ ¨ APL FUNCTIONAL SYMBOL DEL DIAERESIS
+<Multi_key> <asterisk> <diaeresis>              : "⍣"   U2363   # * ¨ APL FUNCTIONAL SYMBOL STAR DIAERESIS
+<Multi_key> <diaeresis> <asterisk>              : "⍣"   U2363   # ¨ * APL FUNCTIONAL SYMBOL STAR DIAERESIS
+<Multi_key> <U2218> <diaeresis>                 : "⍤"   U2364   # ∘ ¨ APL FUNCTIONAL SYMBOL JOT DIAERESIS
+<Multi_key> <diaeresis> <U2218>                 : "⍤"   U2364   # ¨ ∘ APL FUNCTIONAL SYMBOL JOT DIAERESIS
+<Multi_key> <U25cb> <diaeresis>                 : "⍥"   U2365   # ○ ¨ APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+<Multi_key> <diaeresis> <U25cb>                 : "⍥"   U2365   # ¨ ○ APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
+<Multi_key> <U222a> <bar>                       : "⍦"   U2366   # ∪ | APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+<Multi_key> <bar> <U222a>                       : "⍦"   U2366   # | ∪ APL FUNCTIONAL SYMBOL DOWN SHOE STILE
+<Multi_key> <U2282> <bar>                       : "⍧"   U2367   # ⊂ | APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+<Multi_key> <bar> <U2282>                       : "⍧"   U2367   # | ⊂ APL FUNCTIONAL SYMBOL LEFT SHOE STILE
+<Multi_key> <asciitilde> <diaeresis>            : "⍨"   U2368   # ~ ¨ APL FUNCTIONAL SYMBOL TILDE DIAERESIS
+<Multi_key> <diaeresis> <greater>               : "⍩"   U2369   # ¨ > APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+<Multi_key> <greater> <diaeresis>               : "⍩"   U2369   # > ¨ APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
+<Multi_key> <U2207> <asciitilde>                : "⍫"   U236b   # ∇ ~ APL FUNCTIONAL SYMBOL DEL TILDE
+<Multi_key> <asciitilde> <U2207>                : "⍫"   U236b   # ~ ∇ APL FUNCTIONAL SYMBOL DEL TILDE
+<Multi_key> <0> <asciitilde>                    : "⍬"   U236c   # 0 ~ APL FUNCTIONAL SYMBOL ZILDE
+<Multi_key> <asciitilde> <0>                    : "⍬"   U236c   # ~ 0 APL FUNCTIONAL SYMBOL ZILDE
+<Multi_key> <bar> <asciitilde>                  : "⍭"   U236d   # | ~ APL FUNCTIONAL SYMBOL STILE TILDE
+<Multi_key> <asciitilde> <bar>                  : "⍭"   U236d   # ~ | APL FUNCTIONAL SYMBOL STILE TILDE
+# This line does not work. It clashes with
+# <underscore> <semicolon> <O> for Ǭ and
+# <underscore> <semicolon> <o> for ǭ.
+# Given that no extant APLs use ⍮ I will just leave the line in place.
+<Multi_key> <semicolon> <underscore>            : "⍮"   U236e   # ; _ APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
+<Multi_key> <U2260> <U2395>                     : "⍯"   U236f   # ≠ ⎕ APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+<Multi_key> <U2395> <U2260>                     : "⍯"   U236f   # ⎕ ≠ APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
+<Multi_key> <question> <U2395>                  : "⍰"   U2370   # ? ⎕ APL FUNCTIONAL SYMBOL QUAD QUESTION
+<Multi_key> <U2395> <question>                  : "⍰"   U2370   # ⎕ ? APL FUNCTIONAL SYMBOL QUAD QUESTION
+<Multi_key> <U2228> <asciitilde>                : "⍱"   U2371   # ∨ ~ APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+<Multi_key> <asciitilde> <U2228>                : "⍱"   U2371   # ~ ∨ APL FUNCTIONAL SYMBOL DOWN CARET TILDE
+<Multi_key> <U2227> <asciitilde>                : "⍲"   U2372   # ∧ ~ APL FUNCTIONAL SYMBOL UP CARET TILDE
+<Multi_key> <asciitilde> <U2227>                : "⍲"   U2372   # ~ ∧ APL FUNCTIONAL SYMBOL UP CARET TILDE
+<Multi_key> <U237a> <underscore>                : "⍶"   U2376   # ⍺ _ APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+<Multi_key> <underscore> <U237a>                : "⍶"   U2376   # _ ⍺ APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
+<Multi_key> <U220a> <underscore>                : "⍷"   U2377   # ∊ _ APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+<Multi_key> <underscore> <U220a>                : "⍷"   U2377   # _ ∊ APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
+<Multi_key> <U2373> <underscore>                : "⍸"   U2378   # ⍳ _ APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+<Multi_key> <underscore> <U2373>                : "⍸"   U2378   # _ ⍳ APL FUNCTIONAL SYMBOL IOTA UNDERBAR
+<Multi_key> <U2375> <underscore>                : "⍹"   U2379   # ⍵ _ APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
+<Multi_key> <underscore> <U2375>                : "⍹"   U2379   # _ ⍵ APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
diff --git a/test/data/locale/locale.alias b/test/data/locale/locale.alias
new file mode 100644
index 0000000..03cd99c
--- /dev/null
+++ b/test/data/locale/locale.alias
@@ -0,0 +1,2482 @@
+#
+#	This file contains alias names of locales.
+#	Each alias name is described within one line.
+#	The first word is the alias name (simplified locale name),
+#	the second word is the full locale name.
+#
+#
+POSIX						C
+POSIX-UTF2					C
+C_C.C						C
+C.en						C
+C.ASCII					C
+C.iso88591					en_US.ISO8859-1
+Cextend					en_US.ISO8859-1
+Cextend.en					en_US.ISO8859-1
+English_United-States.437			C
+C.UTF-8					en_US.UTF-8
+# a3 is not an ISO 639 language code, but in Cyrillic, "Z" looks like "3".
+a3						az_AZ.KOI8-C
+a3_AZ						az_AZ.KOI8-C
+a3_AZ.koi8c					az_AZ.KOI8-C
+a3_AZ.KOI-C					az_AZ.KOI8-C
+a3_AZ.UTF-8					az_AZ.UTF-8
+af						af_ZA.ISO8859-1
+af_ZA						af_ZA.ISO8859-1
+af_ZA.iso88591					af_ZA.ISO8859-1
+af_ZA.ISO-8859-1				af_ZA.ISO8859-1
+af_ZA.utf8					af_ZA.UTF-8
+am						am_ET.UTF-8
+am_ET						am_ET.UTF-8
+ar						ar_AA.ISO8859-6
+ar_AA						ar_AA.ISO8859-6
+AR_AA						ar_AA.ISO8859-6
+Ar_AA						ar_AA.ISO8859-6
+AR_AA.UTF-8					ar_AA.UTF-8
+ar_AA.iso88596					ar_AA.ISO8859-6
+ar_AA.ISO-8859-6				ar_AA.ISO8859-6
+ar_AE						ar_AE.ISO8859-6
+ar_AE.iso88596					ar_AE.ISO8859-6
+ar_AE.ISO-8859-6				ar_AE.ISO8859-6
+ar_AE.utf8					ar_AE.UTF-8
+ar_BH						ar_BH.ISO8859-6
+ar_BH.iso88596					ar_BH.ISO8859-6
+ar_BH.ISO-8859-6				ar_BH.ISO8859-6
+ar_BH.utf8					ar_BH.UTF-8
+ar_DZ						ar_DZ.ISO8859-6
+ar_DZ.iso88596					ar_DZ.ISO8859-6
+ar_DZ.ISO-8859-6				ar_DZ.ISO8859-6
+ar_DZ.utf8					ar_DZ.UTF-8
+ar_EG						ar_EG.ISO8859-6
+ar_EG.iso88596					ar_EG.ISO8859-6
+ar_EG.ISO-8859-6				ar_EG.ISO8859-6
+ar_EG.utf8					ar_EG.UTF-8
+ar_IN						ar_IN.UTF-8
+ar_IN.utf8					ar_IN.UTF-8
+ar_IQ						ar_IQ.ISO8859-6
+ar_IQ.iso88596					ar_IQ.ISO8859-6
+ar_IQ.ISO-8859-6				ar_IQ.ISO8859-6
+ar_IQ.utf8					ar_IQ.UTF-8
+ar_JO						ar_JO.ISO8859-6
+ar_JO.iso88596					ar_JO.ISO8859-6
+ar_JO.ISO-8859-6				ar_JO.ISO8859-6
+ar_JO.utf8					ar_JO.UTF-8
+ar_KW						ar_KW.ISO8859-6
+ar_KW.iso88596					ar_KW.ISO8859-6
+ar_KW.ISO-8859-6				ar_KW.ISO8859-6
+ar_KW.utf8					ar_KW.UTF-8
+ar_LB						ar_LB.ISO8859-6
+ar_LB.iso88596					ar_LB.ISO8859-6
+ar_LB.ISO-8859-6				ar_LB.ISO8859-6
+ar_LB.utf8					ar_LB.UTF-8
+ar_LY						ar_LY.ISO8859-6
+ar_LY.iso88596					ar_LY.ISO8859-6
+ar_LY.ISO-8859-6				ar_LY.ISO8859-6
+ar_LY.utf8					ar_LY.UTF-8
+ar_MA						ar_MA.ISO8859-6
+ar_MA.iso88596					ar_MA.ISO8859-6
+ar_MA.ISO-8859-6				ar_MA.ISO8859-6
+ar_MA.utf8					ar_MA.UTF-8
+ar_OM						ar_OM.ISO8859-6
+ar_OM.iso88596					ar_OM.ISO8859-6
+ar_OM.ISO-8859-6				ar_OM.ISO8859-6
+ar_OM.utf8					ar_OM.UTF-8
+ar_QA						ar_QA.ISO8859-6
+ar_QA.iso88596					ar_QA.ISO8859-6
+ar_QA.ISO-8859-6				ar_QA.ISO8859-6
+ar_QA.utf8					ar_QA.UTF-8
+ar_SA						ar_SA.ISO8859-6
+ar_SA.iso88596					ar_SA.ISO8859-6
+ar_SA.ISO-8859-6				ar_SA.ISO8859-6
+ar_SA.utf8					ar_SA.UTF-8
+ar_SD						ar_SD.ISO8859-6
+ar_SD.iso88596					ar_SD.ISO8859-6
+ar_SD.ISO-8859-6				ar_SD.ISO8859-6
+ar_SD.utf8					ar_SD.UTF-8
+ar_SY						ar_SY.ISO8859-6
+ar_SY.iso88596					ar_SY.ISO8859-6
+ar_SY.ISO-8859-6				ar_SY.ISO8859-6
+ar_SY.utf8					ar_SY.UTF-8
+ar_TN						ar_TN.ISO8859-6
+ar_TN.iso88596					ar_TN.ISO8859-6
+ar_TN.ISO-8859-6				ar_TN.ISO8859-6
+ar_TN.utf8					ar_TN.UTF-8
+as						as_IN.UTF-8
+as_IN						as_IN.UTF-8
+as_IN.utf8					as_IN.UTF-8
+ar_YE						ar_YE.ISO8859-6
+ar_YE.iso88596					ar_YE.ISO8859-6
+ar_YE.ISO-8859-6				ar_YE.ISO8859-6
+ar_YE.utf8					ar_YE.UTF-8
+az						az_AZ.ISO8859-9E
+az_AZ						az_AZ.ISO8859-9E
+az_AZ.iso88599e				az_AZ.ISO8859-9E
+be						be_BY.CP1251
+be@latin					be_BY.UTF-8@latin
+be_BY						be_BY.CP1251
+be_BY@latin					be_BY.UTF-8@latin
+be_BY.cp1251					be_BY.CP1251
+be_BY.microsoftcp1251				be_BY.CP1251
+be_BY.microsoft-cp1251				be_BY.CP1251
+be_BY.MICROSOFT-CP1251				be_BY.CP1251
+be_BY.utf8					be_BY.UTF-8
+be_BY.utf8@latin				be_BY.UTF-8@latin
+bg						bg_BG.CP1251
+bg_BG						bg_BG.CP1251
+bg_BG.cp1251					bg_BG.CP1251
+bg_BG.microsoftcp1251				bg_BG.CP1251
+bg_BG.microsoft-cp1251				bg_BG.CP1251
+bg_BG.MICROSOFT-CP1251				bg_BG.CP1251
+bg_BG.iso88595					bg_BG.ISO8859-5
+bg_BG.ISO-8859-5				bg_BG.ISO8859-5
+bg_BG.koi8r					bg_BG.KOI8-R
+be_BG.utf8					bg_BG.UTF-8
+bn_IN						bn_IN.UTF-8
+bn_IN.utf8					bn_IN.UTF-8
+bo_IN						bo_IN.UTF-8
+bo_IN.utf8					bo_IN.UTF-8
+br						br_FR.ISO8859-1
+br_FR						br_FR.ISO8859-1
+br_FR.iso88591					br_FR.ISO8859-1
+br_FR.ISO-8859-1				br_FR.ISO8859-1
+br_FR.iso885914				br_FR.ISO8859-14
+br_FR.ISO-8859-14				br_FR.ISO8859-14
+br_FR.iso885915				br_FR.ISO8859-15
+br_FR.ISO-8859-15				br_FR.ISO8859-15
+br_FR.ISO-8859-15@euro				br_FR.ISO8859-15
+br_FR@euro					br_FR.ISO8859-15
+br_FR.UTF-8@euro				br_FR.UTF-8
+bs						bs_BA.ISO8859-2
+bs_BA						bs_BA.ISO8859-2
+bs_BA.iso88592					bs_BA.ISO8859-2
+bs_BA.ISO-8859-2				bs_BA.ISO8859-2
+bs_BA.ISO_8859-2				bs_BA.ISO8859-2
+ca						ca_ES.ISO8859-1
+ca_AD						ca_AD.ISO8859-1
+ca_AD@euro					ca_AD.ISO8859-15
+ca_AD.iso88591					ca_AD.ISO8859-1
+ca_AD.ISO-8859-1				ca_AD.ISO8859-1
+ca_AD.iso885915				ca_AD.ISO8859-15
+ca_AD.utf8					ca_AD.UTF-8
+ca_AD.ISO-8859-15				ca_AD.ISO8859-15
+ca_AD.ISO-8859-15@euro				ca_AD.ISO8859-15
+ca_AD.UTF-8@euro				ca_AD.UTF-8
+ca_ES						ca_ES.ISO8859-1
+ca_ES@euro					ca_ES.ISO8859-15
+ca_ES.iso88591					ca_ES.ISO8859-1
+ca_ES.ISO-8859-1				ca_ES.ISO8859-1
+ca_ES.iso885915				ca_ES.ISO8859-15
+ca_ES.utf8					ca_ES.UTF-8
+ca_ES.ISO-8859-15				ca_ES.ISO8859-15
+ca_ES.ISO-8859-15@euro				ca_ES.ISO8859-15
+ca_ES.UTF-8@euro				ca_ES.UTF-8
+ca_FR						ca_FR.ISO8859-1
+ca_FR@euro					ca_FR.ISO8859-15
+ca_FR.iso88591					ca_FR.ISO8859-1
+ca_FR.ISO-8859-1				ca_FR.ISO8859-1
+ca_FR.iso885915				ca_FR.ISO8859-15
+ca_FR.utf8					ca_FR.UTF-8
+ca_FR.ISO-8859-15				ca_FR.ISO8859-15
+ca_FR.ISO-8859-15@euro				ca_FR.ISO8859-15
+ca_FR.UTF-8@euro				ca_FR.UTF-8
+ca_IT						ca_IT.ISO8859-1
+ca_IT@euro					ca_IT.ISO8859-15
+ca_IT.iso88591					ca_IT.ISO8859-1
+ca_IT.ISO-8859-1				ca_IT.ISO8859-1
+ca_IT.iso885915				ca_IT.ISO8859-15
+ca_IT.utf8					ca_IT.UTF-8
+ca_IT.ISO-8859-15				ca_IT.ISO8859-15
+ca_IT.ISO-8859-15@euro				ca_IT.ISO8859-15
+ca_IT.UTF-8@euro				ca_IT.UTF-8
+cs						cs_CZ.ISO8859-2
+cs_CS						cs_CZ.ISO8859-2
+cs_CS.ISO8859-2				cs_CZ.ISO8859-2
+cs_CZ						cs_CZ.ISO8859-2
+cs_CZ.iso88592					cs_CZ.ISO8859-2
+cs_CS.iso8859-2				cs_CZ.ISO8859-2
+cs_CZ.ISO-8859-2				cs_CZ.ISO8859-2
+cs_CZ.ISO_8859-2				cs_CZ.ISO8859-2
+cs_CZ.utf8					cs_CZ.UTF-8
+cy						cy_GB.ISO8859-1
+cy_GB						cy_GB.ISO8859-1
+cy_GB.iso88591					cy_GB.ISO8859-1
+cy_GB.ISO-8859-1				cy_GB.ISO8859-1
+cy_GB.iso885914				cy_GB.ISO8859-14
+cy_GB.ISO-8859-14				cy_GB.ISO8859-14
+cy_GB.iso885915				cy_GB.ISO8859-15
+cy_GB.ISO-8859-15				cy_GB.ISO8859-15
+da						da_DK.ISO8859-1
+da.ISO8859-15					da_DK.ISO8859-15
+da_DK						da_DK.ISO8859-1
+DA_DK						da_DK.ISO8859-1
+da_DK.88591					da_DK.ISO8859-1
+da_DK.88591.en					da_DK.ISO8859-1
+da_DK.iso88591					da_DK.ISO8859-1
+da_DK.ISO-8859-1				da_DK.ISO8859-1
+da_DK.ISO_8859-1				da_DK.ISO8859-1
+da_DK.iso885915				da_DK.ISO8859-15
+da_DK.ISO-8859-15				da_DK.ISO8859-15
+da_DK.8859-15					da_DK.ISO8859-15
+da_DK.utf8					da_DK.UTF-8
+DA_DK.UTF-8					da_DK.UTF-8
+de						de_DE.ISO8859-1
+de.ISO8859-15					de_DE.ISO8859-15
+de_AT						de_AT.ISO8859-1
+de_AT@euro					de_AT.ISO8859-15
+de_AT.iso88591					de_AT.ISO8859-1
+de_AT.ISO-8859-1				de_AT.ISO8859-1
+de_AT.ISO_8859-1				de_AT.ISO8859-1
+de_AT.iso885915				de_AT.ISO8859-15
+de_AT.ISO-8859-15				de_AT.ISO8859-15
+de_AT.ISO-8859-15@euro				de_AT.ISO8859-15
+de_AT.UTF-8@euro				de_AT.UTF-8
+de_AT.utf8					de_AT.UTF-8
+de_BE						de_BE.ISO8859-1
+de_BE@euro					de_BE.ISO8859-15
+de_BE.iso88591					de_BE.ISO8859-1
+de_BE.ISO_8859-1				de_BE.ISO8859-1
+de_BE.ISO-8859-1				de_BE.ISO8859-1
+de_BE.iso885915				de_BE.ISO8859-15
+de_BE.ISO_8859-15				de_BE.ISO8859-15
+de_BE.ISO-8859-15				de_BE.ISO8859-15
+de_BE.ISO-8859-15@euro				de_BE.ISO8859-15
+de_BE.UTF-8@euro				de_BE.UTF-8
+de_CH						de_CH.ISO8859-1
+de_CH.iso88591					de_CH.ISO8859-1
+de_CH.ISO_8859-1				de_CH.ISO8859-1
+de_CH.ISO-8859-1				de_CH.ISO8859-1
+de_CH.iso885915				de_CH.ISO8859-15
+de_CH.ISO_8859-15				de_CH.ISO8859-15
+de_CH.ISO-8859-15				de_CH.ISO8859-15
+de_CH.utf8					de_CH.UTF-8
+de_DE						de_DE.ISO8859-1
+de_DE@euro					de_DE.ISO8859-15
+de_DE.88591					de_DE.ISO8859-1
+de_DE.88591.en					de_DE.ISO8859-1
+de_DE.iso88591					de_DE.ISO8859-1
+de_DE.ISO-8859-1				de_DE.ISO8859-1
+de_DE.ISO_8859-1				de_DE.ISO8859-1
+de_DE.iso885915				de_DE.ISO8859-15
+de_DE.ISO-8859-15				de_DE.ISO8859-15
+de_DE.ISO_8859-15				de_DE.ISO8859-15
+de_DE.8859-15					de_DE.ISO8859-15
+de_DE.8859-15@euro				de_DE.ISO8859-15
+de_DE.ISO-8859-15@euro				de_DE.ISO8859-15
+de_DE.UTF-8@euro				de_DE.UTF-8
+de_DE.utf8					de_DE.UTF-8
+de_IT						de_IT.UTF-8
+de_IT.utf8					de_IT.UTF-8
+de_LI						de_LI.ISO8859-1
+de_LI.iso88591					de_LI.ISO8859-1
+de_LI.ISO_8859-1				de_LI.ISO8859-1
+de_LI.ISO-8859-1				de_LI.ISO8859-1
+de_LI.iso885915				de_LI.ISO8859-15
+de_LI.ISO_8859-15				de_LI.ISO8859-15
+de_LI.ISO-8859-15				de_LI.ISO8859-15
+de_LI.utf8					de_LI.UTF-8
+de_LU						de_LU.ISO8859-1
+de_LU@euro					de_LU.ISO8859-15
+de_LU.iso88591					de_LU.ISO8859-1
+de_LU.ISO_8859-1				de_LU.ISO8859-1
+de_LU.ISO-8859-1				de_LU.ISO8859-1
+de_LU.iso885915				de_LU.ISO8859-15
+de_LU.ISO_8859-15				de_LU.ISO8859-15
+de_LU.ISO-8859-15				de_LU.ISO8859-15
+de_LU.ISO-8859-15@euro				de_LU.ISO8859-15
+de_LU.UTF-8@euro				de_LU.UTF-8
+de_LU.utf8					de_LU.UTF-8
+GER_DE.8859					de_DE.ISO8859-1
+GER_DE.8859.in					de_DE.ISO8859-1
+ee						ee_EE.ISO8859-4
+ee_EE						ee_EE.ISO8859-4
+ee_EE.iso88594					ee_EE.ISO8859-4
+el						el_GR.ISO8859-7
+el_GR						el_GR.ISO8859-7
+el_GR.iso88597					el_GR.ISO8859-7
+el_GR.ISO-8859-7				el_GR.ISO8859-7
+el_GR@euro					el_GR.ISO8859-15
+el_GR.utf8					el_GR.UTF-8
+en						en_US.ISO8859-1
+en.ISO-8859-1					en_US.ISO8859-1
+en_AU						en_AU.ISO8859-1
+en_AU.iso88591					en_AU.ISO8859-1
+en_AU.ISO-8859-1				en_AU.ISO8859-1
+en_AU.ISO_8859-1				en_AU.ISO8859-1
+en_AU.utf8					en_AU.UTF-8
+en_BE						en_BE.ISO8859-1
+en_BE@euro					en_BE.ISO8859-15
+en_BE.utf8					en_BE.UTF-8
+en_BW						en_BW.ISO8859-1
+en_BW.utf8					en_BW.UTF-8
+en_BW.iso88591					en_BW.ISO8859-1
+en_BW.ISO-8859-1				en_BW.ISO8859-1
+en_CA						en_CA.ISO8859-1
+en_CA.iso88591					en_CA.ISO8859-1
+en_CA.ISO-8859-1				en_CA.ISO8859-1
+en_CA.ISO_8859-1				en_CA.ISO8859-1
+en_CA.utf8					en_CA.UTF-8
+en_DL.utf8					en_DL.UTF-8
+en_GB						en_GB.ISO8859-1
+en_GB.88591					en_GB.ISO8859-1
+en_GB.88591.en					en_GB.ISO8859-1
+en_GB.iso88591					en_GB.ISO8859-1
+en_GB.ISO-8859-1				en_GB.ISO8859-1
+en_GB.ISO_8859-1				en_GB.ISO8859-1
+en_GB.iso885915				en_GB.ISO8859-15
+en_GB.ISO-8859-15				en_GB.ISO8859-15
+en_GB.utf8					en_GB.UTF-8
+en_UK						en_GB.ISO8859-1
+ENG_GB.8859					en_GB.ISO8859-1
+ENG_GB.8859.in					en_GB.ISO8859-1
+en_HK						en_HK.ISO8859-1
+en_HK.iso88591					en_HK.ISO8859-1
+en_HK.ISO-8859-1				en_HK.ISO8859-1
+en_HK.utf8					en_HK.UTF-8
+en_IE						en_IE.ISO8859-1
+en_IE.iso88591					en_IE.ISO8859-1
+en_IE.ISO-8859-1				en_IE.ISO8859-1
+en_IE.iso885915				en_IE.ISO8859-15
+en_IE.ISO-8859-15				en_IE.ISO8859-15
+en_IE.ISO-8859-15@euro				en_IE.ISO8859-15
+en_IE@euro					en_IE.ISO8859-15
+en_IE.UTF-8@euro				en_IE.UTF-8
+en_IE.utf8					en_IE.UTF-8
+en_IN.utf8					en_IN.UTF-8
+en_IN						en_IN.ISO8859-1
+en_NZ						en_NZ.ISO8859-1
+en_NZ.iso88591					en_NZ.ISO8859-1
+en_NZ.ISO-8859-1				en_NZ.ISO8859-1
+en_NZ.utf8					en_NZ.UTF-8
+en_PH						en_PH.ISO8859-1
+en_PH.utf8					en_PH.UTF-8
+en_PH.iso88591					en_PH.ISO8859-1
+en_PH.ISO-8859-1				en_PH.ISO8859-1
+en_SG						en_SG.ISO8859-1
+en_SG.utf8					en_SG.UTF-8
+en_SG.iso88591					en_SG.ISO8859-1
+en_SG.ISO-8859-1				en_SG.ISO8859-1
+en_US						en_US.ISO8859-1
+EN_US						en_US.ISO8859-1
+en_US.88591					en_US.ISO8859-1
+en_US.88591.en					en_US.ISO8859-1
+en_US.iso88591					en_US.ISO8859-1
+en_US.ISO-8859-1				en_US.ISO8859-1
+en_US.ISO_8859-1				en_US.ISO8859-1
+en_US.iso885915				en_US.ISO8859-15
+en_US.ISO-8859-15				en_US.ISO8859-15
+en_US.8859-15					en_US.ISO8859-15
+en_US.ISO8859-15@euro				en_US.ISO8859-15
+en_US.utf8					en_US.UTF-8
+EN_US.UTF-8					en_US.UTF-8
+en_ZA						en_ZA.ISO8859-1
+en_ZA.88591					en_ZA.ISO8859-1
+en_ZA.88591.en					en_ZA.ISO8859-1
+en_ZA.iso88591					en_ZA.ISO8859-1
+en_ZA.ISO-8859-1				en_ZA.ISO8859-1
+en_ZA.ISO_8859-1				en_ZA.ISO8859-1
+en_ZA.iso885915				en_ZA.ISO8859-15
+en_ZA.ISO-8859-15				en_ZA.ISO8859-15
+en_ZA.utf8					en_ZA.UTF-8
+en_ZW						en_ZW.ISO8859-1
+en_ZW.utf8					en_ZS.UTF-8
+en_ZW.iso88591					en_ZW.ISO8859-1
+en_ZW.ISO-8859-1				en_ZW.ISO8859-1
+eo						eo_XX.ISO8859-3
+eo_EO						eo_EO.ISO8859-3
+eo_XX						eo_XX.ISO8859-3
+es						es_ES.ISO8859-1
+es.UTF-8					es_ES.UTF-8
+es_AR						es_AR.ISO8859-1
+es_AR.iso88591					es_AR.ISO8859-1
+es_AR.ISO-8859-1				es_AR.ISO8859-1
+es_AR.utf8					es_AR.UTF-8
+es_BO						es_BO.ISO8859-1
+es_BO.iso88591					es_BO.ISO8859-1
+es_BO.ISO-8859-1				es_BO.ISO8859-1
+es_BO.utf8					es_BO.UTF-8
+es_CL						es_CL.ISO8859-1
+es_CL.iso88591					es_CL.ISO8859-1
+es_CL.ISO-8859-1				es_CL.ISO8859-1
+es_CL.utf8					es_CL.UTF-8
+es_CO						es_CO.ISO8859-1
+es_CO.iso88591					es_CO.ISO8859-1
+es_CO.ISO-8859-1				es_CO.ISO8859-1
+es_CO.utf8					es_CO.UTF-8
+es_CR						es_CR.ISO8859-1
+es_CR.iso88591					es_CR.ISO8859-1
+es_CR.ISO-8859-1				es_CR.ISO8859-1
+es_CR.utf8					es_CR.UTF-8
+es_DO						es_DO.ISO8859-1
+es_DO.iso88591					es_DO.ISO8859-1
+es_DO.ISO-8859-1				es_DO.ISO8859-1
+es_DO.utf8					es_DO.UTF-8
+es_EC						es_EC.ISO8859-1
+es_EC.iso88591					es_EC.ISO8859-1
+es_EC.ISO-8859-1				es_EC.ISO8859-1
+es_EC.utf8					es_EC.UTF-8
+es_ES						es_ES.ISO8859-1
+es_ES.88591					es_ES.ISO8859-1
+es_ES.88591.en					es_ES.ISO8859-1
+es_ES.iso88591					es_ES.ISO8859-1
+es_ES.ISO-8859-1				es_ES.ISO8859-1
+es_ES.ISO_8859-1				es_ES.ISO8859-1
+es_ES.iso885915				es_ES.ISO8859-15
+es_ES.ISO-8859-15				es_ES.ISO8859-15
+es_ES.ISO-8859-15@euro				es_ES.ISO8859-15
+es_ES@euro					es_ES.ISO8859-15
+es_ES.UTF-8@euro				es_ES.UTF-8
+es_ES.utf8					es_ES.UTF-8
+es_GT						es_GT.ISO8859-1
+es_GT.iso88591					es_GT.ISO8859-1
+es_GT.ISO-8859-1				es_GT.ISO8859-1
+es_GT.utf8					es_GT.UTF-8
+es_HN						es_HN.ISO8859-1
+es_HN.iso88591					es_HN.ISO8859-1
+es_HN.ISO-8859-1				es_HN.ISO8859-1
+es_HN.utf8					es_HN.UTF-8
+es_MX						es_MX.ISO8859-1
+es_MX.iso88591					es_MX.ISO8859-1
+es_MX.ISO-8859-1				es_MX.ISO8859-1
+es_MX.utf8					es_MX.UTF-8
+es_NI						es_NI.ISO8859-1
+es_NI.iso88591					es_NI.ISO8859-1
+es_NI.ISO-8859-1				es_NI.ISO8859-1
+es_NI.utf8					es_NI.UTF-8
+es_PA						es_PA.ISO8859-1
+es_PA.iso88591					es_PA.ISO8859-1
+es_PA.ISO-8859-1				es_PA.ISO8859-1
+es_PA.iso885915				es_PA.ISO8859-15
+es_PA.utf8					es_PA.UTF-8
+es_PE						es_PE.ISO8859-1
+es_PE.iso88591					es_PE.ISO8859-1
+es_PE.ISO-8859-1				es_PE.ISO8859-1
+es_PE.iso885915				es_PE.ISO8859-15
+es_PE.utf8					es_PE.UTF-8
+es_PR						es_PR.ISO8859-1
+es_PR.iso88591					es_PR.ISO8859-1
+es_PR.ISO-8859-1				es_PR.ISO8859-1
+es_PR.utf8					es_PR.UTF-8
+es_PY						es_PY.ISO8859-1
+es_PY.iso88591					es_PY.ISO8859-1
+es_PY.ISO-8859-1				es_PY.ISO8859-1
+es_PY.iso885915				es_PY.ISO8859-15
+es_PY.utf8					es_PY.UTF-8
+es_SV						es_SV.ISO8859-1
+es_SV.iso88591					es_SV.ISO8859-1
+es_SV.ISO-8859-1				es_SV.ISO8859-1
+es_SV.iso885915				es_SV.ISO8859-15
+es_SV.utf8					es_SV.UTF-8
+es_US						es_US.ISO8859-1
+es_US.iso88591					es_US.ISO8859-1
+es_US.ISO-8859-1				es_US.ISO8859-1
+es_UY						es_UY.ISO8859-1
+es_UY.iso88591					es_UY.ISO8859-1
+es_UY.ISO-8859-1				es_UY.ISO8859-1
+es_UY.iso885915				es_UY.ISO8859-15
+es_UY.utf8					es_UY.UTF-8
+es_VE						es_VE.ISO8859-1
+es_VE.iso88591					es_VE.ISO8859-1
+es_VE.ISO-8859-1				es_VE.ISO8859-1
+es_VE.iso885915				es_VE.ISO8859-15
+es_VE.utf8					es_VE.UTF-8
+# According to Estonian local standards, ISO8859-4 is not a recommended
+# charset. EVS8:2000 specifies ISO8859-15 as the base charset.
+et						et_EE.ISO8859-15
+et_EE						et_EE.ISO8859-15
+et_EE.iso88591					et_EE.ISO8859-1
+et_EE.ISO-8859-1				et_EE.ISO8859-1
+et_EE.iso88594					et_EE.ISO8859-4
+et_EE.ISO-8859-4				et_EE.ISO8859-4
+et_EE.iso885913				et_EE.ISO8859-13
+et_EE.ISO-8859-13				et_EE.ISO8859-13
+et_EE.iso885915				et_EE.ISO8859-15
+et_EE.ISO-8859-15				et_EE.ISO8859-15
+et_EE.utf8					et_EE.UTF-8
+eu						eu_ES.ISO8859-1
+eu_ES						eu_ES.ISO8859-1
+eu_ES.iso88591					eu_ES.ISO8859-1
+eu_ES.ISO-8859-1				eu_ES.ISO8859-1
+eu_ES.iso885915				eu_ES.ISO8859-15
+eu_ES.ISO-8859-15				eu_ES.ISO8859-15
+eu_ES.ISO-8859-15@euro				eu_ES.ISO8859-15
+eu_ES@euro					eu_ES.ISO8859-15
+eu_ES.UTF-8@euro				eu_ES.UTF-8
+fa						fa_IR.UTF-8
+fa_IR						fa_IR.UTF-8
+fa_IR.isiri3342				fa_IR.ISIRI-3342
+fa_IR.utf8					fa_IR.UTF-8
+fi						fi_FI.ISO8859-15
+fi.ISO8859-15					fi_FI.ISO8859-15
+fi_FI						fi_FI.ISO8859-15
+fi_FI.88591					fi_FI.ISO8859-1
+fi_FI.88591.en					fi_FI.ISO8859-1
+fi_FI.iso88591					fi_FI.ISO8859-1
+fi_FI.ISO-8859-1				fi_FI.ISO8859-1
+fi_FI.ISO_8859-1				fi_FI.ISO8859-1
+fi_FI.iso885915				fi_FI.ISO8859-15
+fi_FI.ISO-8859-15				fi_FI.ISO8859-15
+fi_FI.ISO-8859-15@euro				fi_FI.ISO8859-15
+fi_FI@euro					fi_FI.ISO8859-15
+fi_FI.utf8					fi_FI.UTF-8
+fi_FI.UTF-8@euro				fi_FI.UTF-8
+fo						fo_FO.ISO8859-1
+fo_FO						fo_FO.ISO8859-1
+fo_FO.iso88591					fo_FO.ISO8859-1
+fo_FO.ISO-8859-1				fo_FO.ISO8859-1
+fo_FO.iso885915				fo_FO.ISO8859-15
+fo_FO.ISO-8859-15				fo_FO.ISO8859-15
+fo_FO.utf8					fo_FO.UTF-8
+fr						fr_FR.ISO8859-1
+fr.ISO8859-15					fr_FR.ISO8859-15
+fr.UTF-8					fr_FR.UTF-8
+fr_BE						fr_BE.ISO8859-1
+fr_BE.88591					fr_BE.ISO8859-1
+fr_BE.88591.en					fr_BE.ISO8859-1
+fr_BE.ISO-8859-1				fr_BE.ISO8859-1
+fr_BE.ISO_8859-1				fr_BE.ISO8859-1
+fr_BE.iso885915				fr_BE.ISO8859-15
+fr_BE.ISO-8859-15				fr_BE.ISO8859-15
+fr_BE.ISO-8859-15@euro				fr_BE.ISO8859-15
+fr_BE@euro					fr_BE.ISO8859-15
+fr_BE.utf8					fr_BE.UTF-8
+fr_BE.UTF-8@euro				fr_BE.UTF-8
+fr_CA						fr_CA.ISO8859-1
+fr_CA.88591					fr_CA.ISO8859-1
+fr_CA.88591.en					fr_CA.ISO8859-1
+fr_CA.iso88591					fr_CA.ISO8859-1
+fr_CA.ISO-8859-1				fr_CA.ISO8859-1
+fr_CA.ISO_8859-1				fr_CA.ISO8859-1
+fr_CA.iso885915				fr_CA.ISO8859-15
+fr_CA.ISO-8859-15				fr_CA.ISO8859-15
+fr_CA.utf8					fr_CA.UTF-8
+fr_CH						fr_CH.ISO8859-1
+fr_CH.88591					fr_CH.ISO8859-1
+fr_CH.88591.en					fr_CH.ISO8859-1
+fr_CH.ISO-8859-1				fr_CH.ISO8859-1
+fr_CH.ISO_8859-1				fr_CH.ISO8859-1
+fr_CH.iso885915				fr_CH.ISO8859-15
+fr_CH.ISO-8859-15				fr_CH.ISO8859-15
+fr_CH.utf8					fr_CH.UTF-8
+fr_FR						fr_FR.ISO8859-1
+fr_FR.88591					fr_FR.ISO8859-1
+fr_FR.88591.en					fr_FR.ISO8859-1
+fr_FR.iso88591					fr_FR.ISO8859-1
+fr_FR.ISO-8859-1				fr_FR.ISO8859-1
+fr_FR.ISO_8859-1				fr_FR.ISO8859-1
+fr_FR.iso885915				fr_FR.ISO8859-15
+fr_FR.ISO-8859-15				fr_FR.ISO8859-15
+fr_FR.ISO-8859-15@euro				fr_FR.ISO8859-15
+fr_FR@euro					fr_FR.ISO8859-15
+fr_FR.UTF-8@euro				fr_FR.UTF-8
+fr_FR.utf8					fr_FR.UTF-8
+fr_LU						fr_LU.ISO8859-1
+fr_LU.88591					fr_LU.ISO8859-1
+fr_LU.88591.en					fr_LU.ISO8859-1
+fr_LU.iso88591					fr_LU.ISO8859-1
+fr_LU.ISO-8859-1				fr_LU.ISO8859-1
+fr_LU.ISO_8859-1				fr_LU.ISO8859-1
+fr_LU.iso885915				fr_LU.ISO8859-15
+fr_LU.ISO-8859-15				fr_LU.ISO8859-15
+fr_LU.ISO-8859-15@euro				fr_LU.ISO8859-15
+fr_LU@euro					fr_LU.ISO8859-15
+fr_LU.UTF-8@euro				fr_LU.UTF-8
+fr_LU.utf8					fr_LU.UTF-8
+FRE_FR.8859					fr_FR.ISO8859-1
+FRE_FR.8859.in					fr_FR.ISO8859-1
+ga						ga_IE.ISO8859-1
+ga_IE						ga_IE.ISO8859-1
+ga_IE.iso88591					ga_IE.ISO8859-1
+ga_IE.ISO-8859-1				ga_IE.ISO8859-1
+ga_IE.iso885914				ga_IE.ISO8859-14
+ga_IE.ISO-8859-14				ga_IE.ISO8859-14
+ga_IE.iso885915				ga_IE.ISO8859-15
+ga_IE.ISO-8859-15				ga_IE.ISO8859-15
+ga_IE.ISO-8859-15@euro				ga_IE.ISO8859-15
+ga_IE@euro					ga_IE.ISO8859-15
+ga_IE.UTF-8@euro				ga_IE.UTF-8
+ga_IE.utf8					ga_IE.UTF-8
+gd						gd_GB.ISO8859-1
+gd_GB						gd_GB.ISO8859-1
+gd_GB.iso88591					gd_GB.ISO8859-1
+gd_GB.ISO-8859-1				gd_GB.ISO8859-1
+gd_GB.iso885914				gd_GB.ISO8859-14
+gd_GB.ISO-8859-14				gd_GB.ISO8859-14
+gd_GB.iso885915				gd_GB.ISO8859-15
+gd_GB.ISO-8859-15				gd_GB.ISO8859-15
+gl						gl_ES.ISO8859-1
+gl_ES						gl_ES.ISO8859-1
+gl_ES.iso88591					gl_ES.ISO8859-1
+gl_ES.ISO-8859-1				gl_ES.ISO8859-1
+gl_ES.iso885915				gl_ES.ISO8859-15
+gl_ES.ISO-8859-15				gl_ES.ISO8859-15
+gl_ES.ISO-8859-15@euro				gl_ES.ISO8859-15
+gl_ES@euro					gl_ES.ISO8859-15
+gl_ES.UTF-8@euro				gl_ES.UTF-8
+gl_ES.utf8					gl_ES.UTF-8
+gu_IN						gu_IN.UTF-8
+gu_IN.utf8					gu_IN.UTF-8
+gv						gv_GB.ISO8859-1
+gv_GB						gv_GB.ISO8859-1
+gv_GB.iso88591					gv_GB.ISO8859-1
+gv_GB.ISO-8859-1				gv_GB.ISO8859-1
+gv_GB.iso885914				gv_GB.ISO8859-14
+gv_GB.ISO-8859-14				gv_GB.ISO8859-14
+gv_GB.iso885915				gv_GB.ISO8859-15
+gv_GB.ISO-8859-15				gv_GB.ISO8859-15
+he						he_IL.ISO8859-8
+he_IL						he_IL.ISO8859-8
+HE_IL						he_IL.ISO8859-8
+he_IL.iso88598					he_IL.ISO8859-8
+he_IL.ISO-8859-8				he_IL.ISO8859-8
+he_IL.cp1255					he_IL.CP1255
+he_IL.microsoftcp1255				he_IL.CP1255
+he_IL.microsoft-cp1255				he_IL.CP1255
+he_IL.MICROSOFT-CP1255				he_IL.CP1255
+he_IL.utf8					he_IL.UTF-8
+HE_IL.UTF-8					he_IL.UTF-8
+hi						hi_IN.ISCII-DEV
+hi_IN						hi_IN.ISCII-DEV
+HI_IN						hi_IN.ISCII-DEV
+hi_IN.isciidev					hi_IN.ISCII-DEV
+hi_IN.utf8					hi_IN.UTF-8
+HI_IN.UTF-8					hi_IN.UTF-8
+hne						hne_IN.UTF-8
+hne_IN						hne_IN.UTF-8
+hne_IN.utf8					hne_IN.UTF-8
+hr						hr_HR.ISO8859-2
+hr_HR						hr_HR.ISO8859-2
+hr_HR.iso88592					hr_HR.ISO8859-2
+hr_HR.ISO-8859-2				hr_HR.ISO8859-2
+hr_HR.ISO_8859-2				hr_HR.ISO8859-2
+hr_HR.utf8					hr_HR.UTF-8
+hu						hu_HU.ISO8859-2
+hu_HU						hu_HU.ISO8859-2
+hu_HU.iso88592					hu_HU.ISO8859-2
+hu_HU.ISO-8859-2				hu_HU.ISO8859-2
+hu_HU.utf8					hu_HU.UTF-8
+ia						ia.UTF-8
+ia.utf8					ia.UTF-8
+ie						ie.UTF-8
+ie.utf8					ie.UTF-8
+is						is_IS.ISO8859-1
+is_IS						is_IS.ISO8859-1
+is_IS.iso88591					is_IS.ISO8859-1
+is_IS.ISO-8859-1				is_IS.ISO8859-1
+is_IS.ISO_8859-1				is_IS.ISO8859-1
+is_IS.iso885915				is_IS.ISO8859-15
+is_IS.ISO-8859-15				is_IS.ISO8859-15
+is_IS.utf8					is_IS.UTF-8
+it						it_IT.ISO8859-1
+it.ISO8859-15					it_IT.ISO8859-15
+it.UTF-8					it_IT.UTF-8
+it_CH						it_CH.ISO8859-1
+it_CH.iso88591					it_CH.ISO8859-1
+it_CH.ISO_8859-1				it_CH.ISO8859-1
+it_CH.ISO-8859-1				it_CH.ISO8859-1
+it_CH.iso885915				it_CH.ISO8859-15
+it_CH.utf8					it_CH.UTF-8
+it_IT						it_IT.ISO8859-1
+it_IT.88591					it_IT.ISO8859-1
+it_IT.88591.en					it_IT.ISO8859-1
+it_IT.iso88591					it_IT.ISO8859-1
+it_IT.ISO-8859-1				it_IT.ISO8859-1
+it_IT.ISO_8859-1				it_IT.ISO8859-1
+it_IT.iso885915				it_IT.ISO8859-15
+it_IT.ISO-8859-15				it_IT.ISO8859-15
+it_IT.ISO-8859-15@euro				it_IT.ISO8859-15
+it_IT@euro					it_IT.ISO8859-15
+it_IT.utf8					it_IT.UTF-8
+it_IT.UTF-8@euro				it_IT.UTF-8
+# NUNACOM is an encoding for the Inuktitut syllabics
+# we have little else on this encoding.
+iu						iu_CA.NUNACOM-8
+iu_CA						iu_CA.NUNACOM-8
+iu_CA.nunacom8					iu_CA.NUNACOM-8
+ja_JP						ja_JP.eucJP
+ja						ja_JP.eucJP
+ja.JIS						ja_JP.JIS7
+ja.SJIS					ja_JP.SJIS
+ja_JP.ujis					ja_JP.eucJP
+Jp_JP						ja_JP.eucJP
+ja_JP.AJEC					ja_JP.eucJP
+ja_JP.EUC					ja_JP.eucJP
+ja_JP.EUC-JP					ja_JP.eucJP
+ja_JP.EUC_JP					ja_JP.eucJP
+ja_JP.eucjp					ja_JP.eucJP
+ja_JP.ISO-2022-JP				ja_JP.JIS7
+ja_JP.JIS					ja_JP.JIS7
+ja_JP.jis7					ja_JP.JIS7
+ja_JP.mscode					ja_JP.SJIS
+ja_JP.PCK					ja_JP.SJIS
+ja_JP.sjis					ja_JP.SJIS
+ja_JP.utf8					ja_JP.UTF-8
+JA_JP.utf8					ja_JP.UTF-8
+ka						ka_GE.GEORGIAN-ACADEMY
+ka_GE						ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianacademy				ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianrs				ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianps				ka_GE.GEORGIAN-PS
+kl						kl_GL.ISO8859-1
+kl_GL						kl_GL.ISO8859-1
+kl_GL.iso88591					kl_GL.ISO8859-1
+kl_GL.ISO-8859-1				kl_GL.ISO8859-1
+kl_GL.iso885915				kl_GL.ISO8859-15
+kl_GL.utf8					kl_GL.UTF-8
+km_KH						km_KH.UTF-8
+km_KH.utf8					km_KH.UTF-8
+kn						kn_IN.UTF-8
+kn_IN						kn_IN.UTF-8
+kn_IN.utf8					kn_IN.UTF-8
+ko						ko_KR.eucKR
+ko.UTF-8					ko_KR.UTF-8
+ko_KR						ko_KR.eucKR
+KO_KR						ko_KR.eucKR
+ko_KR.EUC					ko_KR.eucKR
+ko_KR.EUC-KR					ko_KR.eucKR
+ko_KR.euc					ko_KR.eucKR
+ko_KR.euckr					ko_KR.eucKR
+ko_KR.utf8					ko_KR.UTF-8
+KO_KR.UTF-8					ko_KR.UTF-8
+ks						ks_IN.UTF-8
+ks_IN						ks_IN.UTF-8
+ks_IN.utf8					ks_IN.UTF-8
+ks_IN@devanagari				ks_IN.UTF-8@devanagari
+ks_IN.utf8@devanagari				ks_IN.UTF-8@devanagari
+kw						kw_GB.ISO8859-1
+kw_GB						kw_GB.ISO8859-1
+kw_GB.iso88591					kw_GB.ISO8859-1
+kw_GB.ISO-8859-1				kw_GB.ISO8859-1
+kw_GB.iso885914				kw_GB.ISO8859-14
+kw_GB.ISO-8859-14				kw_GB.ISO8859-14
+kw_GB.iso885915				kw_GB.ISO8859-15
+kw_GB.ISO-8859-15				kw_GB.ISO8859-15
+ky						ky_KG.UTF-8
+ky_KG							ky_KG.UTF-8
+ky_KG.utf8					ky_KG.UTF-8
+lo						lo_LA.MULELAO-1
+lo_LA						lo_LA.MULELAO-1
+lo_LA.cp1133					lo_LA.IBM-CP1133
+lo_LA.ibmcp1133				lo_LA.IBM-CP1133
+lo_LA.mulelao1					lo_LA.MULELAO-1
+lt						lt_LT.ISO8859-13
+lt_LT						lt_LT.ISO8859-13
+lt_LT.iso88594					lt_LT.ISO8859-4
+lt_LT.ISO-8859-4				lt_LT.ISO8859-4
+lt_LT.ISO_8859-4				lt_LT.ISO8859-4
+lt_LT.iso885913				lt_LT.ISO8859-13
+lt_LT.ISO-8859-13				lt_LT.ISO8859-13
+lt_LT.ISO_8859-13				lt_LT.ISO8859-13
+lt_LT.utf8					lt_LT.UTF-8
+lv						lv_LV.ISO8859-13
+lv_LV						lv_LV.ISO8859-13
+lv_LV.iso88594					lv_LV.ISO8859-4
+lv_LV.ISO-8859-4				lv_LV.ISO8859-4
+lv_LV.iso885913				lv_LV.ISO8859-13
+lv_LV.ISO-8859-13				lv_LV.ISO8859-13
+lv_LV.ISO_8859-13				lv_LV.ISO8859-13
+lv_LV.utf8					lv_LV.UTF-8
+mai						mai_IN.UTF-8
+mai_IN						mai_IN.UTF-8
+mai_IN.utf8					mai_IN.UTF-8
+mi						mi_NZ.ISO8859-1
+mi_NZ						mi_NZ.ISO8859-1
+mi_NZ.iso88591					mi_NZ.ISO8859-1
+mk						mk_MK.ISO8859-5
+mk_MK						mk_MK.ISO8859-5
+mk_MK.iso88595					mk_MK.ISO8859-5
+mk_MK.ISO-8859-5				mk_MK.ISO8859-5
+mk_MK.cp1251					mk_MK.CP1251
+mk_MK.microsoftcp1251				mk_MK.CP1251
+mk_MK.microsoft-cp1251				mk_MK.CP1251
+mk_MK.MICROSOFT-CP1251				mk_MK.CP1251
+mk_MK.utf8					mk_MK.UTF-8
+ml						ml_IN.UTF-8
+ml_IN						ml_IN.UTF-8
+ml_IN.utf8					ml_IN.UTF-8
+mr						mr_IN.UTF-8
+mr_IN						mr_IN.UTF-8
+mr_IN.utf8					mr_IN.UTF-8
+ms						ms_MY.ISO8859-1
+ms_MY						ms_MY.ISO8859-1
+ms_MY.iso88591					ms_MY.ISO8859-1
+ms_MY.ISO-8859-1				ms_MY.ISO8859-1
+mt						mt_MT.ISO8859-3
+mt_MT						mt_MT.ISO8859-3
+mt_MT.ISO-8859-3				mt_MT.ISO8859-3
+nb						nb_NO.ISO8859-1
+nb_NO						nb_NO.ISO8859-1
+nb_NO.88591					nb_NO.ISO8859-1
+nb_NO.iso88591					nb_NO.ISO8859-1
+nb_NO.ISO-8859-1				nb_NO.ISO8859-1
+nb_NO.iso885915				nb_NO.ISO8859-15
+nb_NO.ISO-8859-15				nb_NO.ISO8859-15
+nb_NO.utf8					nb_NO.UTF-8
+ne_NP						ne_NP.UTF-8
+ne_NP.utf8					ne_NP.UTF-8
+nl						nl_NL.ISO8859-1
+nl.ISO8859-15					nl_NL.ISO8859-15
+nl_BE						nl_BE.ISO8859-1
+nl_BE.88591					nl_BE.ISO8859-1
+nl_BE.88591.en					nl_BE.ISO8859-1
+nl_BE.iso88591					nl_BE.ISO8859-1
+nl_BE.ISO-8859-1				nl_BE.ISO8859-1
+nl_BE.ISO_8859-1				nl_BE.ISO8859-1
+nl_BE.iso885915				nl_BE.ISO8859-15
+nl_BE.ISO-8859-15				nl_BE.ISO8859-15
+nl_BE.ISO-8859-15@euro				nl_BE.ISO8859-15
+nl_BE@euro					nl_BE.ISO8859-15
+nl_BE.utf8					nl_BE.UTF-8
+nl_BE.UTF-8@euro				nl_BE.UTF-8
+nl_NL						nl_NL.ISO8859-1
+nl_NL.88591					nl_NL.ISO8859-1
+nl_NL.88591.en					nl_NL.ISO8859-1
+nl_NL.iso88591					nl_NL.ISO8859-1
+nl_NL.ISO-8859-1				nl_NL.ISO8859-1
+nl_NL.ISO_8859-1				nl_NL.ISO8859-1
+nl_NL.iso885915				nl_NL.ISO8859-15
+nl_NL.ISO-8859-15				nl_NL.ISO8859-15
+nl_NL.ISO-8859-15@euro				nl_NL.ISO8859-15
+nl_NL@euro					nl_NL.ISO8859-15
+nl_NL.utf8					nl_NL.UTF-8
+nl_NL.UTF-8@euro				nl_NL.UTF-8
+nn						nn_NO.ISO8859-1
+nn_NO						nn_NO.ISO8859-1
+nn_NO.88591					nn_NO.ISO8859-1
+nn_NO.ISO-8859-1				nn_NO.ISO8859-1
+nn_NO.ISO_8859-1				nn_NO.ISO8859-1
+nn_NO.iso885915				nn_NO.ISO8859-15
+nn_NO.ISO-8859-15				nn_NO.ISO8859-15
+nn_NO.utf8					nn_NO.UTF-8
+no						no_NO.ISO8859-1
+no_NO						no_NO.ISO8859-1
+no_NO.88591					no_NO.ISO8859-1
+no_NO.88591.en					no_NO.ISO8859-1
+no_NO.iso88591					no_NO.ISO8859-1
+no_NO.ISO-8859-1				no_NO.ISO8859-1
+no_NO.ISO8859-1@bokmal				no_NO.ISO8859-1
+no_NO.ISO8859-1@nynorsk			no_NO.ISO8859-1
+no_NO.iso885915				no_NO.ISO8859-15
+no_NO.ISO-8859-15				no_NO.ISO8859-15
+no_NO.utf8					no_NO.UTF-8
+nr						nr_ZA.ISO8859-1
+nr_ZA						nr_ZA.ISO8859-1
+nr_ZA.iso88591					nr_ZA.ISO8859-1
+nr_ZA.utf8					nr_ZA.UTF-8
+nso						nso_ZA.ISO8859-15
+nso_ZA						nso_ZA.ISO8859-15
+nso_ZA.iso885915				nso_ZA.ISO8859-15
+nso_ZA.utf8					nso_ZA.UTF-8
+ny						ny_NO.ISO8859-1
+ny_NO						ny_NO.ISO8859-1
+ny_NO.88591					ny_NO.ISO8859-1
+ny_NO.ISO_8859-1				ny_NO.ISO8859-1
+ny_NO.iso885915				ny_NO.ISO8859-15
+no@nynorsk					ny_NO.ISO8859-1
+nynorsk					nn_NO.ISO8859-1
+oc						oc_FR.ISO8859-1
+oc_FR						oc_FR.ISO8859-1
+oc_FR.iso88591					oc_FR.ISO8859-1
+oc_FR.ISO-8859-1				oc_FR.ISO8859-1
+oc_FR.iso885915				oc_FR.ISO8859-15
+oc_FR.ISO-8859-15				oc_FR.ISO8859-15
+oc_FR@euro					oc_FR.ISO8859-15
+or						or_IN.UTF-8
+or_IN						or_IN.UTF-8
+or_IN.utf8					or_IN.UTF-8
+pa						pa_IN.UTF-8
+pa_IN						pa_IN.UTF-8
+pa_IN.utf8					pa_IN.UTF-8
+pa_PK.utf8					pa_PK.UTF-8
+pd						pd_US.ISO8859-1
+pd_DE						pd_DE.ISO8859-1
+pd_US						pd_US.ISO8859-1
+pd_DE.iso88591					pd_DE.ISO8859-1
+pd_US.iso88591					pd_US.ISO8859-1
+pd_DE.iso885915				pd_DE.ISO8859-15
+pd_US.iso885915				pd_US.ISO8859-15
+ph						ph_PH.ISO8859-1
+ph_PH						ph_PH.ISO8859-1
+ph_PH.iso88591					ph_PH.ISO8859-1
+pl						pl_PL.ISO8859-2
+pl.UTF-8					pl_PL.UTF-8
+pl_PL						pl_PL.ISO8859-2
+pl_PL.iso88592					pl_PL.ISO8859-2
+pl_PL.ISO-8859-2				pl_PL.ISO8859-2
+pl_PL.utf8					pl_PL.UTF-8
+pp						pp_AN.ISO8859-1
+pp_AN						pp_AN.ISO8859-1
+pp_AN.iso88591					pp_AN.ISO8859-1
+pt						pt_PT.ISO8859-1
+pt.ISO8859-15					pt_PT.ISO8859-15
+pt_BR						pt_BR.ISO8859-1
+pt_BR.88591					pt_BR.ISO8859-1
+pt_BR.88591.en					pt_BR.ISO8859-1
+pt_BR.iso88591					pt_BR.ISO8859-1
+pt_BR.ISO-8859-1				pt_BR.ISO8859-1
+pt_BR.ISO_8859-1				pt_BR.ISO8859-1
+pt_BR.iso885915				pt_BR.ISO8859-15
+pt_BR.utf8					pt_BR.UTF-8
+pt_PT						pt_PT.ISO8859-1
+pt_PT.88591					pt_PT.ISO8859-1
+pt_PT.88591.en					pt_PT.ISO8859-1
+pt_PT.iso88591					pt_PT.ISO8859-1
+pt_PT.ISO-8859-1				pt_PT.ISO8859-1
+pt_PT.ISO_8859-1				pt_PT.ISO8859-1
+pt_PT.iso885915				pt_PT.ISO8859-15
+pt_PT.ISO-8859-15				pt_PT.ISO8859-15
+pt_PT.ISO-8859-15@euro				pt_PT.ISO8859-15
+pt_PT@euro					pt_PT.ISO8859-15
+pt_PT.utf8					pt_PT.UTF-8
+pt_PT.UTF-8@euro				pt_PT.UTF-8
+ro						ro_RO.ISO8859-2
+ro_RO						ro_RO.ISO8859-2
+ro_RO.iso88592					ro_RO.ISO8859-2
+ro_RO.ISO-8859-2				ro_RO.ISO8859-2
+ro_RO.utf8					ro_RO.UTF-8
+ru						ru_RU.UTF-8
+ru.koi8-r					ru_RU.KOI8-R
+ru.UTF-8					ru_RU.UTF-8
+ru_RU						ru_RU.UTF-8
+ru_RU.utf8					ru_RU.UTF-8
+ru_RU.iso88595					ru_RU.ISO8859-5
+ru_RU.ISO-8859-5				ru_RU.ISO8859-5
+ru_RU.koi8r					ru_RU.KOI8-R
+ru_RU.cp1251					ru_RU.CP1251
+ru_RU.microsoftcp1251				ru_RU.CP1251
+ru_RU.microsoft-cp1251				ru_RU.CP1251
+ru_RU.MICROSOFT-CP1251				ru_RU.CP1251
+ru_UA						ru_UA.KOI8-U
+ru_UA.koi8u					ru_UA.KOI8-U
+ru_UA.cp1251					ru_UA.CP1251
+ru_UA.microsoftcp1251				ru_UA.CP1251
+ru_UA.microsoft-cp1251				ru_UA.CP1251
+ru_UA.MICROSOFT-CP1251				ru_UA.CP1251
+rw						rw_RW.ISO8859-1
+rw_RW						rw_RW.ISO8859-1
+rw_RW.iso8859-1				rw_RW.ISO8859-1
+rw_RW.ISO-8859-1				rw_RW.ISO8859-1
+rw_RW.utf8					rw_RW.UTF-8
+sd						sd_IN.UTF-8
+sd_IN.utf8					sd_IN.UTF-8
+sd@devanagari					sd_IN.UTF-8@devanagari
+sd_IN@devanagari				sd_IN.UTF-8@devanagari
+sd_IN.utf8@devanagari				sd_IN.UTF-8@devanagari
+se_NO						se_NO.UTF-8
+se_NO.utf8					se_NO.UTF-8
+si						si_LK.UTF-8
+si_LK						si_LK.UTF-8
+sk						sk_SK.ISO8859-2
+sk_SK						sk_SK.ISO8859-2
+sk_SK.iso88592					sk_SK.ISO8859-2
+sk_SK.ISO-8859-2				sk_SK.ISO8859-2
+sk_SK.utf8					sk_SK.UTF-8
+sl						sl_SI.ISO8859-2
+sl_SI						sl_SI.ISO8859-2
+sl_SI.iso88592					sl_SI.ISO8859-2
+sl_SI.ISO-8859-2				sl_SI.ISO8859-2
+sl_SI.utf8					sl_SI.UTF-8
+sq						sq_AL.ISO8859-2
+sq_AL						sq_AL.ISO8859-2
+sq_AL.iso88592					sq_AL.ISO8859-2
+sq_AL.ISO-8859-2				sq_AL.ISO8859-2
+sq_AL.utf8					sq_AL.UTF-8
+sr						sr_RS.UTF-8
+sr@cyrillic					sr_RS.UTF-8
+sr@latin					sr_RS.UTF-8@latin
+sr@Latn					sr_RS.UTF-8@latin
+sr_RS						sr_RS.UTF-8
+sr_RS@latin					sr_RS.UTF-8@latin
+sr_RS@Latn					sr_RS.UTF-8@latin
+sr_RS.UTF-8@Latn				sr_RS.UTF-8@latin
+sr_RS.utf8					sr_RS.UTF-8
+sr_ME						sr_ME.UTF-8
+sr_ME.utf8					sr_ME.UTF-8
+ss						ss_ZA.ISO8859-1
+ss_ZA						ss_ZA.ISO8859-1
+ss_ZA.iso88591					ss_ZA.ISO8859-1
+ss_ZA.utf8					ss_ZA.UTF-8
+st						st_ZA.ISO8859-1
+st_ZA						st_ZA.ISO8859-1
+st_ZA.iso88591					st_ZA.ISO8859-1
+st_ZA.utf8					st_ZA.UTF-8
+sv						sv_SE.ISO8859-1
+sv.ISO8859-15					sv_SE.ISO8859-15
+sv.UTF-8					sv_SE.UTF-8
+sv_FI						sv_FI.ISO8859-1
+sv_FI.iso88591					sv_FI.ISO8859-1
+sv_FI.ISO-8859-1				sv_FI.ISO8859-1
+sv_FI.iso885915				sv_FI.ISO8859-15
+sv_FI.ISO-8859-15				sv_FI.ISO8859-15
+sv_FI.ISO-8859-15@euro				sv_FI.ISO8859-15
+sv_FI@euro					sv_FI.ISO8859-15
+sv_FI.UTF-8@euro				sv_FI.UTF-8
+sv_FI.utf8					sv_FI.UTF-8
+sv_SE						sv_SE.ISO8859-1
+sv_SE.88591					sv_SE.ISO8859-1
+sv_SE.88591.en					sv_SE.ISO8859-1
+sv_SE.iso88591					sv_SE.ISO8859-1
+sv_SE.ISO-8859-1				sv_SE.ISO8859-1
+sv_SE.ISO_8859-1				sv_SE.ISO8859-1
+sv_SE.iso885915				sv_SE.ISO8859-15
+sv_SE.ISO-8859-15				sv_SE.ISO8859-15
+sv_SE@euro					sv_SE.ISO8859-15
+sv_SE.utf8					sv_SE.UTF-8
+ta						ta_IN.TSCII-0
+ta_IN						ta_IN.TSCII-0
+ta_IN.tscii					ta_IN.TSCII-0
+ta_IN.tscii0					ta_IN.TSCII-0
+te						te_IN.UTF-8
+te.UTF-8					te_IN.UTF-8
+te_IN.utf8					te_IN.UTF-8
+tg						tg_TJ.KOI8-C
+tg_TJ						tg_TJ.KOI8-C
+tg_TJ.koi8c					tg_TJ.KOI8-C
+th						th_TH.ISO8859-11
+th_TH						th_TH.ISO8859-11
+th_TH.ISO-8859-11				th_TH.ISO8859-11
+th_TH.tis620					th_TH.TIS620
+th_TH.TIS-620					th_TH.TIS620
+th_TH.TACTIS					th_TH.TIS620
+th_TH.utf8					th_TH.UTF-8
+tl						tl_PH.ISO8859-1
+tl_PH						tl_PH.ISO8859-1
+tl_PH.iso88591					tl_PH.ISO8859-1
+tl_PH.ISO-8859-1				tl_PH.ISO8859-1
+tn						tn_ZA.ISO8859-15
+tn_ZA						tn_ZA.ISO8859-15
+tn_ZA.iso8859-15				tn_ZA.ISO8859-15
+tn_ZA.utf8					tn_ZA.UTF-8
+tr						tr_TR.ISO8859-9
+tr_TR						tr_TR.ISO8859-9
+TR_TR						tr_TR.ISO8859-9
+tr_TR.iso88599					tr_TR.ISO8859-9
+tr_TR.ISO-8859-9				tr_TR.ISO8859-9
+tr_TR.utf8					tr_TR.UTF-8
+TR_TR.utf8					tr_TR.UTF-8
+ts						ts_ZA.ISO8859-1
+ts_ZA						ts_ZA.ISO8859-1
+ts_ZA.iso88591					ts_ZA.ISO8859-1
+ts_ZA.utf8					ts_ZA.UTF-8
+tt						tt_RU.TATAR-CYR
+tt_RU						tt_RU.TATAR-CYR
+tt_RU.tatarcyr					tt_RU.TATAR-CYR
+tt_RU.koi8c					tt_RU.KOI8-C
+uk						uk_UA.KOI8-U
+uk_UA						uk_UA.KOI8-U
+uk_UA.iso88595					uk_UA.ISO8859-5
+uk_UA.koi8u					uk_UA.KOI8-U
+uk_UA.cp1251					uk_UA.CP1251
+uk_UA.microsoftcp1251				uk_UA.CP1251
+uk_UA.microsoft-cp1251				uk_UA.CP1251
+uk_UA.MICROSOFT-CP1251				uk_UA.CP1251
+uk_UA.utf8					uk_UA.UTF-8
+ur						ur_IN.UTF-8
+ur_IN						ur_IN.UTF-8
+ur_IN.utf8					ur_IN.UTF-8
+ur						ur_PK.CP1256
+ur_PK						ur_PK.CP1256
+ur_PK.cp1256					ur_PK.CP1256
+ur_PK.microsoftcp1256				ur_PK.CP1256
+ur_PK.microsoft-cp1256				ur_PK.CP1256
+ur_PK.MICROSOFT-CP1256				ur_PK.CP1256
+uz						uz_UZ.UTF-8
+uz_UZ						uz_UZ.UTF-8
+uz_UZ.ISO-8859-1				uz_UZ.ISO8859-1
+uz_UZ@cyrillic					uz_UZ.UTF-8
+uz_UZ.UTF-8@cyrillic				uz_UZ.UTF-8
+ve						ve_ZA.UTF-8
+ve_ZA						ve_ZA.UTF-8
+ve_ZA.utf8					ve_ZA.UTF-8
+vi						vi_VN.TCVN
+vi_VN						vi_VN.TCVN
+Vi_VN						vi_VN.TCVN
+VI_VN						vi_VN.TCVN
+vi_VN.tcvn					vi_VN.TCVN
+vi_VN.tcvn5712					vi_VN.TCVN
+vi_VN.viscii					vi_VN.VISCII
+vi_VN.viscii111				vi_VN.VISCII
+vi_VN.utf8					vi_VN.UTF-8
+VI_VN.UTF-8					vi_VN.UTF-8
+wa						wa_BE.ISO8859-1
+wa_BE						wa_BE.ISO8859-1
+wa_BE.iso88591					wa_BE.ISO8859-1
+wa_BE.ISO-8859-1				wa_BE.ISO8859-1
+wa_BE.iso885915				wa_BE.ISO8859-15
+wa_BE.ISO-8859-15				wa_BE.ISO8859-15
+wa_BE.ISO-8859-15@euro				wa_BE.ISO8859-15
+wa_BE@euro					wa_BE.ISO8859-15
+xh						xh_ZA.ISO8859-1
+xh_ZA						xh_ZA.ISO8859-1
+xh_ZA.iso88591					xh_ZA.ISO8859-1
+xh_ZA.utf8					xh_ZA.UTF-8
+yi						yi_US.CP1255
+yi_US						yi_US.CP1255
+yi_US.cp1255					yi_US.CP1255
+yi_US.microsoftcp1255				yi_US.CP1255
+yi_US.microsoft-cp1255				yi_US.CP1255
+yi_US.MICROSOFT-CP1255				yi_US.CP1255
+zh_CN						zh_CN.gb2312
+zh_CN.Big5					zh_TW.big5
+zh_CN.EUC					zh_CN.eucCN
+zh_CN.GB2312					zh_CN.gb2312
+zh_CN.GBK					zh_CN.gbk
+zh_CN.GB18030					zh_CN.gb18030
+zh_CN.big5					zh_TW.big5
+zh_CN.euc					zh_CN.eucCN
+zh_CN.utf8					zh_CN.UTF-8
+ZH_CN.UTF-8					zh_CN.UTF-8
+zh_HK						zh_HK.big5hkscs
+zh_HK.BIG5HK					zh_HK.big5hkscs
+zh_HK.Big5hkscs				zh_HK.big5hkscs
+zh_HK.Big5-hkscs				zh_HK.big5hkscs
+zh_HK.Big5_hkscs				zh_HK.big5hkscs
+zh_HK.Big5HKSCS				zh_HK.big5hkscs
+zh_HK.BIG5-HKSCS				zh_HK.big5hkscs
+zh_HK.BIG5_HKSCS				zh_HK.big5hkscs
+zh_HK.Big5-HKSCS				zh_HK.big5hkscs
+zh_HK.big5-hkscs				zh_HK.big5hkscs
+zh_HK.Big5-HKSCS				zh_HK.big5hkscs
+zh_HK.Big5HKSCS				zh_HK.big5hkscs
+zh_HK.Big5					zh_HK.big5
+zh_HK.utf8					zh_HK.UTF-8
+ZH_HK.UTF-8					zh_HK.UTF-8
+ZH_SG.UTF-8					zh_SG.UTF-8
+zh_TW						zh_TW.big5
+zh_TW.Big5					zh_TW.big5
+zh_TW.BIG5					zh_TW.big5
+Zh_TW.big5					zh_TW.big5
+zh_TW.EUC					zh_TW.eucTW
+zh_TW.EUC-TW					zh_TW.eucTW
+zh_TW.utf8					zh_TW.UTF-8
+ZH_TW.UTF-8					zh_TW.UTF-8
+zu						zu_ZA.ISO8859-1
+zu_ZA						zu_ZA.ISO8859-1
+zu_ZA.iso88591					zu_ZA.ISO8859-1
+zu_ZA.utf8					zu_ZA.UTF-8
+# The following locale names are used in SCO 3.0
+english_uk.8859				en_GB.ISO8859-1
+english_us.8859				en_US.ISO8859-1
+english_us.ascii				en_US.ISO8859-1
+french_france.8859				fr_FR.ISO8859-1
+german_germany.8859				de_DE.ISO8859-1
+portuguese_brazil.8859				pt_BR.ISO8859-1
+spanish_spain.8859				es_ES.ISO8859-1
+# The following locale names are used in HPUX 9.x
+american.iso88591				en_US.ISO8859-1
+arabic.iso88596				ar_AA.ISO8859-6
+bokmal						nb_NO.ISO8859-1
+bokmål						nb_NO.ISO8859-1
+bulgarian					bg_BG.CP1251
+c-french.iso88591				fr_CA.ISO8859-1
+catalan					ca_ES.ISO8859-1
+chinese-s					zh_CN.eucCN
+chinese-t					zh_TW.eucTW
+croatian					hr_HR.ISO8859-2
+czech						cs_CZ.ISO8859-2
+danish						da_DK.ISO8859-1
+dansk						da_DK.ISO8859-1
+danish.iso88591				da_DK.ISO8859-1
+deutsch					de_DE.ISO8859-1
+dutch						nl_NL.ISO8859-1
+dutch.iso88591					nl_BE.ISO8859-1
+eesti						et_EE.ISO8859-1
+english.iso88591				en_EN.ISO8859-1
+estonian					et_EE.ISO8859-1
+finnish					fi_FI.ISO8859-1
+finnish.iso88591				fi_FI.ISO8859-1
+français					fr_FR.ISO8859-1
+french						fr_FR.ISO8859-1
+french.iso88591				fr_CH.ISO8859-1
+galego						gl_ES.ISO8859-1
+galician					gl_ES.ISO8859-1
+german						de_DE.ISO8859-1
+german.iso88591				de_CH.ISO8859-1
+greek						el_GR.ISO8859-7
+greek.iso88597					el_GR.ISO8859-7
+hebrew						he_IL.ISO8859-8
+hebrew.iso88598				he_IL.ISO8859-8
+hrvatski					hr_HR.ISO8859-2
+hungarian					hu_HU.ISO8859-2
+icelandic.iso88591				is_IS.ISO8859-1
+icelandic					is_IS.ISO8859-1
+italian					it_IT.ISO8859-1
+italian.iso88591				it_IT.ISO8859-1
+japanese					ja_JP.eucJP
+japanese.euc					ja_JP.eucJP
+japanese.sjis					ja_JP.SJIS
+korean						ko_KR.eucKR
+korean.euc					ko_KR.eucKR
+lithuanian					lt_LT.ISO8859-13
+norwegian					no_NO.ISO8859-1
+norwegian.iso88591				no_NO.ISO8859-1
+polish						pl_PL.ISO8859-2
+portuguese					pt_PT.ISO8859-1
+portuguese.iso88591				pt_PT.ISO8859-1
+romanian					ro_RO.ISO8859-2
+rumanian					ro_RO.ISO8859-2
+russian					ru_RU.ISO8859-5
+serbocroatian					sr_RS.UTF-8@latin
+sinhala					si_LK.UTF-8
+slovak						sk_SK.ISO8859-2
+slovene					sl_SI.ISO8859-2
+slovenian					sl_SI.ISO8859-2
+spanish					es_ES.ISO8859-1
+spanish.iso88591				es_ES.ISO8859-1
+swedish					sv_SE.ISO8859-1
+swedish.iso88591				sv_SE.ISO8859-1
+turkish					tr_TR.ISO8859-9
+turkish.iso88599				tr_TR.ISO8859-9
+thai						th_TH.ISO8859-11
+univ.utf8					en_US.UTF-8
+# Digital Unix utf
+universal.utf8@ucs4				en_US.UTF-8
+# Solaris and SunOS have iso_8859_1 and iso_8859_15 LC_CTYPES 
+# to augment LANG=C
+iso_8859_1					en_US.ISO8859-1
+iso_8859_15					en_US.ISO8859-15
+# Other miscellaneous locale names
+ISO8859-1					en_US.ISO8859-1
+ISO-8859-1					en_US.ISO8859-1
+japan						ja_JP.eucJP
+Japanese-EUC					ja_JP.eucJP
+#
+#	This file contains alias names of locales.
+#	Each alias name is described within one line.
+#	The first word is the alias name (simplified locale name),
+#	the second word is the full locale name.
+#
+#
+POSIX:						C
+POSIX-UTF2:					C
+C_C.C:						C
+C.en:						C
+C.ASCII:					C
+C.iso88591:					en_US.ISO8859-1
+Cextend:					en_US.ISO8859-1
+Cextend.en:					en_US.ISO8859-1
+English_United-States.437:			C
+C.UTF-8:					en_US.UTF-8
+# a3 is not an ISO 639 language code, but in Cyrillic, "Z" looks like "3".
+a3:						az_AZ.KOI8-C
+a3_AZ:						az_AZ.KOI8-C
+a3_AZ.koi8c:					az_AZ.KOI8-C
+a3_AZ.KOI-C:					az_AZ.KOI8-C
+a3_AZ.UTF-8:					az_AZ.UTF-8
+af:						af_ZA.ISO8859-1
+af_ZA:						af_ZA.ISO8859-1
+af_ZA.iso88591:					af_ZA.ISO8859-1
+af_ZA.ISO-8859-1:				af_ZA.ISO8859-1
+af_ZA.utf8:					af_ZA.UTF-8
+am:						am_ET.UTF-8
+am_ET:						am_ET.UTF-8
+ar:						ar_AA.ISO8859-6
+ar_AA:						ar_AA.ISO8859-6
+AR_AA:						ar_AA.ISO8859-6
+Ar_AA:						ar_AA.ISO8859-6
+AR_AA.UTF-8:					ar_AA.UTF-8
+ar_AA.iso88596:					ar_AA.ISO8859-6
+ar_AA.ISO-8859-6:				ar_AA.ISO8859-6
+ar_AE:						ar_AE.ISO8859-6
+ar_AE.iso88596:					ar_AE.ISO8859-6
+ar_AE.ISO-8859-6:				ar_AE.ISO8859-6
+ar_AE.utf8:					ar_AE.UTF-8
+ar_BH:						ar_BH.ISO8859-6
+ar_BH.iso88596:					ar_BH.ISO8859-6
+ar_BH.ISO-8859-6:				ar_BH.ISO8859-6
+ar_BH.utf8:					ar_BH.UTF-8
+ar_DZ:						ar_DZ.ISO8859-6
+ar_DZ.iso88596:					ar_DZ.ISO8859-6
+ar_DZ.ISO-8859-6:				ar_DZ.ISO8859-6
+ar_DZ.utf8:					ar_DZ.UTF-8
+ar_EG:						ar_EG.ISO8859-6
+ar_EG.iso88596:					ar_EG.ISO8859-6
+ar_EG.ISO-8859-6:				ar_EG.ISO8859-6
+ar_EG.utf8:					ar_EG.UTF-8
+ar_IN:						ar_IN.UTF-8
+ar_IN.utf8:					ar_IN.UTF-8
+ar_IQ:						ar_IQ.ISO8859-6
+ar_IQ.iso88596:					ar_IQ.ISO8859-6
+ar_IQ.ISO-8859-6:				ar_IQ.ISO8859-6
+ar_IQ.utf8:					ar_IQ.UTF-8
+ar_JO:						ar_JO.ISO8859-6
+ar_JO.iso88596:					ar_JO.ISO8859-6
+ar_JO.ISO-8859-6:				ar_JO.ISO8859-6
+ar_JO.utf8:					ar_JO.UTF-8
+ar_KW:						ar_KW.ISO8859-6
+ar_KW.iso88596:					ar_KW.ISO8859-6
+ar_KW.ISO-8859-6:				ar_KW.ISO8859-6
+ar_KW.utf8:					ar_KW.UTF-8
+ar_LB:						ar_LB.ISO8859-6
+ar_LB.iso88596:					ar_LB.ISO8859-6
+ar_LB.ISO-8859-6:				ar_LB.ISO8859-6
+ar_LB.utf8:					ar_LB.UTF-8
+ar_LY:						ar_LY.ISO8859-6
+ar_LY.iso88596:					ar_LY.ISO8859-6
+ar_LY.ISO-8859-6:				ar_LY.ISO8859-6
+ar_LY.utf8:					ar_LY.UTF-8
+ar_MA:						ar_MA.ISO8859-6
+ar_MA.iso88596:					ar_MA.ISO8859-6
+ar_MA.ISO-8859-6:				ar_MA.ISO8859-6
+ar_MA.utf8:					ar_MA.UTF-8
+ar_OM:						ar_OM.ISO8859-6
+ar_OM.iso88596:					ar_OM.ISO8859-6
+ar_OM.ISO-8859-6:				ar_OM.ISO8859-6
+ar_OM.utf8:					ar_OM.UTF-8
+ar_QA:						ar_QA.ISO8859-6
+ar_QA.iso88596:					ar_QA.ISO8859-6
+ar_QA.ISO-8859-6:				ar_QA.ISO8859-6
+ar_QA.utf8:					ar_QA.UTF-8
+ar_SA:						ar_SA.ISO8859-6
+ar_SA.iso88596:					ar_SA.ISO8859-6
+ar_SA.ISO-8859-6:				ar_SA.ISO8859-6
+ar_SA.utf8:					ar_SA.UTF-8
+ar_SD:						ar_SD.ISO8859-6
+ar_SD.iso88596:					ar_SD.ISO8859-6
+ar_SD.ISO-8859-6:				ar_SD.ISO8859-6
+ar_SD.utf8:					ar_SD.UTF-8
+ar_SY:						ar_SY.ISO8859-6
+ar_SY.iso88596:					ar_SY.ISO8859-6
+ar_SY.ISO-8859-6:				ar_SY.ISO8859-6
+ar_SY.utf8:					ar_SY.UTF-8
+ar_TN:						ar_TN.ISO8859-6
+ar_TN.iso88596:					ar_TN.ISO8859-6
+ar_TN.ISO-8859-6:				ar_TN.ISO8859-6
+ar_TN.utf8:					ar_TN.UTF-8
+as:						as_IN.UTF-8
+as_IN:						as_IN.UTF-8
+as_IN.utf8:					as_IN.UTF-8
+ar_YE:						ar_YE.ISO8859-6
+ar_YE.iso88596:					ar_YE.ISO8859-6
+ar_YE.ISO-8859-6:				ar_YE.ISO8859-6
+ar_YE.utf8:					ar_YE.UTF-8
+az:						az_AZ.ISO8859-9E
+az_AZ:						az_AZ.ISO8859-9E
+az_AZ.iso88599e:				az_AZ.ISO8859-9E
+be:						be_BY.CP1251
+be@latin:					be_BY.UTF-8@latin
+be_BY:						be_BY.CP1251
+be_BY@latin:					be_BY.UTF-8@latin
+be_BY.cp1251:					be_BY.CP1251
+be_BY.microsoftcp1251:				be_BY.CP1251
+be_BY.microsoft-cp1251:				be_BY.CP1251
+be_BY.MICROSOFT-CP1251:				be_BY.CP1251
+be_BY.utf8:					be_BY.UTF-8
+be_BY.utf8@latin:				be_BY.UTF-8@latin
+bg:						bg_BG.CP1251
+bg_BG:						bg_BG.CP1251
+bg_BG.cp1251:					bg_BG.CP1251
+bg_BG.microsoftcp1251:				bg_BG.CP1251
+bg_BG.microsoft-cp1251:				bg_BG.CP1251
+bg_BG.MICROSOFT-CP1251:				bg_BG.CP1251
+bg_BG.iso88595:					bg_BG.ISO8859-5
+bg_BG.ISO-8859-5:				bg_BG.ISO8859-5
+bg_BG.koi8r:					bg_BG.KOI8-R
+be_BG.utf8:					bg_BG.UTF-8
+bn_IN:						bn_IN.UTF-8
+bn_IN.utf8:					bn_IN.UTF-8
+bo_IN:						bo_IN.UTF-8
+bo_IN.utf8:					bo_IN.UTF-8
+br:						br_FR.ISO8859-1
+br_FR:						br_FR.ISO8859-1
+br_FR.iso88591:					br_FR.ISO8859-1
+br_FR.ISO-8859-1:				br_FR.ISO8859-1
+br_FR.iso885914:				br_FR.ISO8859-14
+br_FR.ISO-8859-14:				br_FR.ISO8859-14
+br_FR.iso885915:				br_FR.ISO8859-15
+br_FR.ISO-8859-15:				br_FR.ISO8859-15
+br_FR.ISO-8859-15@euro:				br_FR.ISO8859-15
+br_FR@euro:					br_FR.ISO8859-15
+br_FR.UTF-8@euro:				br_FR.UTF-8
+bs:						bs_BA.ISO8859-2
+bs_BA:						bs_BA.ISO8859-2
+bs_BA.iso88592:					bs_BA.ISO8859-2
+bs_BA.ISO-8859-2:				bs_BA.ISO8859-2
+bs_BA.ISO_8859-2:				bs_BA.ISO8859-2
+ca:						ca_ES.ISO8859-1
+ca_AD:						ca_AD.ISO8859-1
+ca_AD@euro:					ca_AD.ISO8859-15
+ca_AD.iso88591:					ca_AD.ISO8859-1
+ca_AD.ISO-8859-1:				ca_AD.ISO8859-1
+ca_AD.iso885915:				ca_AD.ISO8859-15
+ca_AD.utf8:					ca_AD.UTF-8
+ca_AD.ISO-8859-15:				ca_AD.ISO8859-15
+ca_AD.ISO-8859-15@euro:				ca_AD.ISO8859-15
+ca_AD.UTF-8@euro:				ca_AD.UTF-8
+ca_ES:						ca_ES.ISO8859-1
+ca_ES@euro:					ca_ES.ISO8859-15
+ca_ES.iso88591:					ca_ES.ISO8859-1
+ca_ES.ISO-8859-1:				ca_ES.ISO8859-1
+ca_ES.iso885915:				ca_ES.ISO8859-15
+ca_ES.utf8:					ca_ES.UTF-8
+ca_ES.ISO-8859-15:				ca_ES.ISO8859-15
+ca_ES.ISO-8859-15@euro:				ca_ES.ISO8859-15
+ca_ES.UTF-8@euro:				ca_ES.UTF-8
+ca_FR:						ca_FR.ISO8859-1
+ca_FR@euro:					ca_FR.ISO8859-15
+ca_FR.iso88591:					ca_FR.ISO8859-1
+ca_FR.ISO-8859-1:				ca_FR.ISO8859-1
+ca_FR.iso885915:				ca_FR.ISO8859-15
+ca_FR.utf8:					ca_FR.UTF-8
+ca_FR.ISO-8859-15:				ca_FR.ISO8859-15
+ca_FR.ISO-8859-15@euro:				ca_FR.ISO8859-15
+ca_FR.UTF-8@euro:				ca_FR.UTF-8
+ca_IT:						ca_IT.ISO8859-1
+ca_IT@euro:					ca_IT.ISO8859-15
+ca_IT.iso88591:					ca_IT.ISO8859-1
+ca_IT.ISO-8859-1:				ca_IT.ISO8859-1
+ca_IT.iso885915:				ca_IT.ISO8859-15
+ca_IT.utf8:					ca_IT.UTF-8
+ca_IT.ISO-8859-15:				ca_IT.ISO8859-15
+ca_IT.ISO-8859-15@euro:				ca_IT.ISO8859-15
+ca_IT.UTF-8@euro:				ca_IT.UTF-8
+cs:						cs_CZ.ISO8859-2
+cs_CS:						cs_CZ.ISO8859-2
+cs_CS.ISO8859-2:				cs_CZ.ISO8859-2
+cs_CZ:						cs_CZ.ISO8859-2
+cs_CZ.iso88592:					cs_CZ.ISO8859-2
+cs_CS.iso8859-2:				cs_CZ.ISO8859-2
+cs_CZ.ISO-8859-2:				cs_CZ.ISO8859-2
+cs_CZ.ISO_8859-2:				cs_CZ.ISO8859-2
+cs_CZ.utf8:					cs_CZ.UTF-8
+cy:						cy_GB.ISO8859-1
+cy_GB:						cy_GB.ISO8859-1
+cy_GB.iso88591:					cy_GB.ISO8859-1
+cy_GB.ISO-8859-1:				cy_GB.ISO8859-1
+cy_GB.iso885914:				cy_GB.ISO8859-14
+cy_GB.ISO-8859-14:				cy_GB.ISO8859-14
+cy_GB.iso885915:				cy_GB.ISO8859-15
+cy_GB.ISO-8859-15:				cy_GB.ISO8859-15
+da:						da_DK.ISO8859-1
+da.ISO8859-15:					da_DK.ISO8859-15
+da_DK:						da_DK.ISO8859-1
+DA_DK:						da_DK.ISO8859-1
+da_DK.88591:					da_DK.ISO8859-1
+da_DK.88591.en:					da_DK.ISO8859-1
+da_DK.iso88591:					da_DK.ISO8859-1
+da_DK.ISO-8859-1:				da_DK.ISO8859-1
+da_DK.ISO_8859-1:				da_DK.ISO8859-1
+da_DK.iso885915:				da_DK.ISO8859-15
+da_DK.ISO-8859-15:				da_DK.ISO8859-15
+da_DK.8859-15:					da_DK.ISO8859-15
+da_DK.utf8:					da_DK.UTF-8
+DA_DK.UTF-8:					da_DK.UTF-8
+de:						de_DE.ISO8859-1
+de.ISO8859-15:					de_DE.ISO8859-15
+de_AT:						de_AT.ISO8859-1
+de_AT@euro:					de_AT.ISO8859-15
+de_AT.iso88591:					de_AT.ISO8859-1
+de_AT.ISO-8859-1:				de_AT.ISO8859-1
+de_AT.ISO_8859-1:				de_AT.ISO8859-1
+de_AT.iso885915:				de_AT.ISO8859-15
+de_AT.ISO-8859-15:				de_AT.ISO8859-15
+de_AT.ISO-8859-15@euro:				de_AT.ISO8859-15
+de_AT.UTF-8@euro:				de_AT.UTF-8
+de_AT.utf8:					de_AT.UTF-8
+de_BE:						de_BE.ISO8859-1
+de_BE@euro:					de_BE.ISO8859-15
+de_BE.iso88591:					de_BE.ISO8859-1
+de_BE.ISO_8859-1:				de_BE.ISO8859-1
+de_BE.ISO-8859-1:				de_BE.ISO8859-1
+de_BE.iso885915:				de_BE.ISO8859-15
+de_BE.ISO_8859-15:				de_BE.ISO8859-15
+de_BE.ISO-8859-15:				de_BE.ISO8859-15
+de_BE.ISO-8859-15@euro:				de_BE.ISO8859-15
+de_BE.UTF-8@euro:				de_BE.UTF-8
+de_CH:						de_CH.ISO8859-1
+de_CH.iso88591:					de_CH.ISO8859-1
+de_CH.ISO_8859-1:				de_CH.ISO8859-1
+de_CH.ISO-8859-1:				de_CH.ISO8859-1
+de_CH.iso885915:				de_CH.ISO8859-15
+de_CH.ISO_8859-15:				de_CH.ISO8859-15
+de_CH.ISO-8859-15:				de_CH.ISO8859-15
+de_CH.utf8:					de_CH.UTF-8
+de_DE:						de_DE.ISO8859-1
+de_DE@euro:					de_DE.ISO8859-15
+de_DE.88591:					de_DE.ISO8859-1
+de_DE.88591.en:					de_DE.ISO8859-1
+de_DE.iso88591:					de_DE.ISO8859-1
+de_DE.ISO-8859-1:				de_DE.ISO8859-1
+de_DE.ISO_8859-1:				de_DE.ISO8859-1
+de_DE.iso885915:				de_DE.ISO8859-15
+de_DE.ISO-8859-15:				de_DE.ISO8859-15
+de_DE.ISO_8859-15:				de_DE.ISO8859-15
+de_DE.8859-15:					de_DE.ISO8859-15
+de_DE.8859-15@euro:				de_DE.ISO8859-15
+de_DE.ISO-8859-15@euro:				de_DE.ISO8859-15
+de_DE.UTF-8@euro:				de_DE.UTF-8
+de_DE.utf8:					de_DE.UTF-8
+de_IT:						de_IT.UTF-8
+de_IT.utf8:					de_IT.UTF-8
+de_LI:						de_LI.ISO8859-1
+de_LI.iso88591:					de_LI.ISO8859-1
+de_LI.ISO_8859-1:				de_LI.ISO8859-1
+de_LI.ISO-8859-1:				de_LI.ISO8859-1
+de_LI.iso885915:				de_LI.ISO8859-15
+de_LI.ISO_8859-15:				de_LI.ISO8859-15
+de_LI.ISO-8859-15:				de_LI.ISO8859-15
+de_LI.utf8:					de_LI.UTF-8
+de_LU:						de_LU.ISO8859-1
+de_LU@euro:					de_LU.ISO8859-15
+de_LU.iso88591:					de_LU.ISO8859-1
+de_LU.ISO_8859-1:				de_LU.ISO8859-1
+de_LU.ISO-8859-1:				de_LU.ISO8859-1
+de_LU.iso885915:				de_LU.ISO8859-15
+de_LU.ISO_8859-15:				de_LU.ISO8859-15
+de_LU.ISO-8859-15:				de_LU.ISO8859-15
+de_LU.ISO-8859-15@euro:				de_LU.ISO8859-15
+de_LU.UTF-8@euro:				de_LU.UTF-8
+de_LU.utf8:					de_LU.UTF-8
+GER_DE.8859:					de_DE.ISO8859-1
+GER_DE.8859.in:					de_DE.ISO8859-1
+ee:						ee_EE.ISO8859-4
+ee_EE:						ee_EE.ISO8859-4
+ee_EE.iso88594:					ee_EE.ISO8859-4
+el:						el_GR.ISO8859-7
+el_GR:						el_GR.ISO8859-7
+el_GR.iso88597:					el_GR.ISO8859-7
+el_GR.ISO-8859-7:				el_GR.ISO8859-7
+el_GR@euro:					el_GR.ISO8859-15
+el_GR.utf8:					el_GR.UTF-8
+en:						en_US.ISO8859-1
+en.ISO-8859-1:					en_US.ISO8859-1
+en_AU:						en_AU.ISO8859-1
+en_AU.iso88591:					en_AU.ISO8859-1
+en_AU.ISO-8859-1:				en_AU.ISO8859-1
+en_AU.ISO_8859-1:				en_AU.ISO8859-1
+en_AU.utf8:					en_AU.UTF-8
+en_BE:						en_BE.ISO8859-1
+en_BE@euro:					en_BE.ISO8859-15
+en_BE.utf8:					en_BE.UTF-8
+en_BW:						en_BW.ISO8859-1
+en_BW.utf8:					en_BW.UTF-8
+en_BW.iso88591:					en_BW.ISO8859-1
+en_BW.ISO-8859-1:				en_BW.ISO8859-1
+en_CA:						en_CA.ISO8859-1
+en_CA.iso88591:					en_CA.ISO8859-1
+en_CA.ISO-8859-1:				en_CA.ISO8859-1
+en_CA.ISO_8859-1:				en_CA.ISO8859-1
+en_CA.utf8:					en_CA.UTF-8
+en_DL.utf8:					en_DL.UTF-8
+en_GB:						en_GB.ISO8859-1
+en_GB.88591:					en_GB.ISO8859-1
+en_GB.88591.en:					en_GB.ISO8859-1
+en_GB.iso88591:					en_GB.ISO8859-1
+en_GB.ISO-8859-1:				en_GB.ISO8859-1
+en_GB.ISO_8859-1:				en_GB.ISO8859-1
+en_GB.iso885915:				en_GB.ISO8859-15
+en_GB.ISO-8859-15:				en_GB.ISO8859-15
+en_GB.utf8:					en_GB.UTF-8
+en_UK:						en_GB.ISO8859-1
+ENG_GB.8859:					en_GB.ISO8859-1
+ENG_GB.8859.in:					en_GB.ISO8859-1
+en_HK:						en_HK.ISO8859-1
+en_HK.iso88591:					en_HK.ISO8859-1
+en_HK.ISO-8859-1:				en_HK.ISO8859-1
+en_HK.utf8:					en_HK.UTF-8
+en_IE:						en_IE.ISO8859-1
+en_IE.iso88591:					en_IE.ISO8859-1
+en_IE.ISO-8859-1:				en_IE.ISO8859-1
+en_IE.iso885915:				en_IE.ISO8859-15
+en_IE.ISO-8859-15:				en_IE.ISO8859-15
+en_IE.ISO-8859-15@euro:				en_IE.ISO8859-15
+en_IE@euro:					en_IE.ISO8859-15
+en_IE.UTF-8@euro:				en_IE.UTF-8
+en_IE.utf8:					en_IE.UTF-8
+en_IN.utf8:					en_IN.UTF-8
+en_IN:						en_IN.ISO8859-1
+en_NZ:						en_NZ.ISO8859-1
+en_NZ.iso88591:					en_NZ.ISO8859-1
+en_NZ.ISO-8859-1:				en_NZ.ISO8859-1
+en_NZ.utf8:					en_NZ.UTF-8
+en_PH:						en_PH.ISO8859-1
+en_PH.utf8:					en_PH.UTF-8
+en_PH.iso88591:					en_PH.ISO8859-1
+en_PH.ISO-8859-1:				en_PH.ISO8859-1
+en_SG:						en_SG.ISO8859-1
+en_SG.utf8:					en_SG.UTF-8
+en_SG.iso88591:					en_SG.ISO8859-1
+en_SG.ISO-8859-1:				en_SG.ISO8859-1
+en_US:						en_US.ISO8859-1
+EN_US:						en_US.ISO8859-1
+en_US.88591:					en_US.ISO8859-1
+en_US.88591.en:					en_US.ISO8859-1
+en_US.iso88591:					en_US.ISO8859-1
+en_US.ISO-8859-1:				en_US.ISO8859-1
+en_US.ISO_8859-1:				en_US.ISO8859-1
+en_US.iso885915:				en_US.ISO8859-15
+en_US.ISO-8859-15:				en_US.ISO8859-15
+en_US.8859-15:					en_US.ISO8859-15
+en_US.ISO8859-15@euro:				en_US.ISO8859-15
+en_US.utf8:					en_US.UTF-8
+EN_US.UTF-8:					en_US.UTF-8
+en_ZA:						en_ZA.ISO8859-1
+en_ZA.88591:					en_ZA.ISO8859-1
+en_ZA.88591.en:					en_ZA.ISO8859-1
+en_ZA.iso88591:					en_ZA.ISO8859-1
+en_ZA.ISO-8859-1:				en_ZA.ISO8859-1
+en_ZA.ISO_8859-1:				en_ZA.ISO8859-1
+en_ZA.iso885915:				en_ZA.ISO8859-15
+en_ZA.ISO-8859-15:				en_ZA.ISO8859-15
+en_ZA.utf8:					en_ZA.UTF-8
+en_ZW:						en_ZW.ISO8859-1
+en_ZW.utf8:					en_ZS.UTF-8
+en_ZW.iso88591:					en_ZW.ISO8859-1
+en_ZW.ISO-8859-1:				en_ZW.ISO8859-1
+eo:						eo_XX.ISO8859-3
+eo_EO:						eo_EO.ISO8859-3
+eo_XX:						eo_XX.ISO8859-3
+es:						es_ES.ISO8859-1
+es.UTF-8:					es_ES.UTF-8
+es_AR:						es_AR.ISO8859-1
+es_AR.iso88591:					es_AR.ISO8859-1
+es_AR.ISO-8859-1:				es_AR.ISO8859-1
+es_AR.utf8:					es_AR.UTF-8
+es_BO:						es_BO.ISO8859-1
+es_BO.iso88591:					es_BO.ISO8859-1
+es_BO.ISO-8859-1:				es_BO.ISO8859-1
+es_BO.utf8:					es_BO.UTF-8
+es_CL:						es_CL.ISO8859-1
+es_CL.iso88591:					es_CL.ISO8859-1
+es_CL.ISO-8859-1:				es_CL.ISO8859-1
+es_CL.utf8:					es_CL.UTF-8
+es_CO:						es_CO.ISO8859-1
+es_CO.iso88591:					es_CO.ISO8859-1
+es_CO.ISO-8859-1:				es_CO.ISO8859-1
+es_CO.utf8:					es_CO.UTF-8
+es_CR:						es_CR.ISO8859-1
+es_CR.iso88591:					es_CR.ISO8859-1
+es_CR.ISO-8859-1:				es_CR.ISO8859-1
+es_CR.utf8:					es_CR.UTF-8
+es_DO:						es_DO.ISO8859-1
+es_DO.iso88591:					es_DO.ISO8859-1
+es_DO.ISO-8859-1:				es_DO.ISO8859-1
+es_DO.utf8:					es_DO.UTF-8
+es_EC:						es_EC.ISO8859-1
+es_EC.iso88591:					es_EC.ISO8859-1
+es_EC.ISO-8859-1:				es_EC.ISO8859-1
+es_EC.utf8:					es_EC.UTF-8
+es_ES:						es_ES.ISO8859-1
+es_ES.88591:					es_ES.ISO8859-1
+es_ES.88591.en:					es_ES.ISO8859-1
+es_ES.iso88591:					es_ES.ISO8859-1
+es_ES.ISO-8859-1:				es_ES.ISO8859-1
+es_ES.ISO_8859-1:				es_ES.ISO8859-1
+es_ES.iso885915:				es_ES.ISO8859-15
+es_ES.ISO-8859-15:				es_ES.ISO8859-15
+es_ES.ISO-8859-15@euro:				es_ES.ISO8859-15
+es_ES@euro:					es_ES.ISO8859-15
+es_ES.UTF-8@euro:				es_ES.UTF-8
+es_ES.utf8:					es_ES.UTF-8
+es_GT:						es_GT.ISO8859-1
+es_GT.iso88591:					es_GT.ISO8859-1
+es_GT.ISO-8859-1:				es_GT.ISO8859-1
+es_GT.utf8:					es_GT.UTF-8
+es_HN:						es_HN.ISO8859-1
+es_HN.iso88591:					es_HN.ISO8859-1
+es_HN.ISO-8859-1:				es_HN.ISO8859-1
+es_HN.utf8:					es_HN.UTF-8
+es_MX:						es_MX.ISO8859-1
+es_MX.iso88591:					es_MX.ISO8859-1
+es_MX.ISO-8859-1:				es_MX.ISO8859-1
+es_MX.utf8:					es_MX.UTF-8
+es_NI:						es_NI.ISO8859-1
+es_NI.iso88591:					es_NI.ISO8859-1
+es_NI.ISO-8859-1:				es_NI.ISO8859-1
+es_NI.utf8:					es_NI.UTF-8
+es_PA:						es_PA.ISO8859-1
+es_PA.iso88591:					es_PA.ISO8859-1
+es_PA.ISO-8859-1:				es_PA.ISO8859-1
+es_PA.iso885915:				es_PA.ISO8859-15
+es_PA.utf8:					es_PA.UTF-8
+es_PE:						es_PE.ISO8859-1
+es_PE.iso88591:					es_PE.ISO8859-1
+es_PE.ISO-8859-1:				es_PE.ISO8859-1
+es_PE.iso885915:				es_PE.ISO8859-15
+es_PE.utf8:					es_PE.UTF-8
+es_PR:						es_PR.ISO8859-1
+es_PR.iso88591:					es_PR.ISO8859-1
+es_PR.ISO-8859-1:				es_PR.ISO8859-1
+es_PR.utf8:					es_PR.UTF-8
+es_PY:						es_PY.ISO8859-1
+es_PY.iso88591:					es_PY.ISO8859-1
+es_PY.ISO-8859-1:				es_PY.ISO8859-1
+es_PY.iso885915:				es_PY.ISO8859-15
+es_PY.utf8:					es_PY.UTF-8
+es_SV:						es_SV.ISO8859-1
+es_SV.iso88591:					es_SV.ISO8859-1
+es_SV.ISO-8859-1:				es_SV.ISO8859-1
+es_SV.iso885915:				es_SV.ISO8859-15
+es_SV.utf8:					es_SV.UTF-8
+es_US:						es_US.ISO8859-1
+es_US.iso88591:					es_US.ISO8859-1
+es_US.ISO-8859-1:				es_US.ISO8859-1
+es_UY:						es_UY.ISO8859-1
+es_UY.iso88591:					es_UY.ISO8859-1
+es_UY.ISO-8859-1:				es_UY.ISO8859-1
+es_UY.iso885915:				es_UY.ISO8859-15
+es_UY.utf8:					es_UY.UTF-8
+es_VE:						es_VE.ISO8859-1
+es_VE.iso88591:					es_VE.ISO8859-1
+es_VE.ISO-8859-1:				es_VE.ISO8859-1
+es_VE.iso885915:				es_VE.ISO8859-15
+es_VE.utf8:					es_VE.UTF-8
+# According to Estonian local standards, ISO8859-4 is not a recommended
+# charset. EVS8:2000 specifies ISO8859-15 as the base charset.
+et:						et_EE.ISO8859-15
+et_EE:						et_EE.ISO8859-15
+et_EE.iso88591:					et_EE.ISO8859-1
+et_EE.ISO-8859-1:				et_EE.ISO8859-1
+et_EE.iso88594:					et_EE.ISO8859-4
+et_EE.ISO-8859-4:				et_EE.ISO8859-4
+et_EE.iso885913:				et_EE.ISO8859-13
+et_EE.ISO-8859-13:				et_EE.ISO8859-13
+et_EE.iso885915:				et_EE.ISO8859-15
+et_EE.ISO-8859-15:				et_EE.ISO8859-15
+et_EE.utf8:					et_EE.UTF-8
+eu:						eu_ES.ISO8859-1
+eu_ES:						eu_ES.ISO8859-1
+eu_ES.iso88591:					eu_ES.ISO8859-1
+eu_ES.ISO-8859-1:				eu_ES.ISO8859-1
+eu_ES.iso885915:				eu_ES.ISO8859-15
+eu_ES.ISO-8859-15:				eu_ES.ISO8859-15
+eu_ES.ISO-8859-15@euro:				eu_ES.ISO8859-15
+eu_ES@euro:					eu_ES.ISO8859-15
+eu_ES.UTF-8@euro:				eu_ES.UTF-8
+fa:						fa_IR.UTF-8
+fa_IR:						fa_IR.UTF-8
+fa_IR.isiri3342:				fa_IR.ISIRI-3342
+fa_IR.utf8:					fa_IR.UTF-8
+fi:						fi_FI.ISO8859-15
+fi.ISO8859-15:					fi_FI.ISO8859-15
+fi_FI:						fi_FI.ISO8859-15
+fi_FI.88591:					fi_FI.ISO8859-1
+fi_FI.88591.en:					fi_FI.ISO8859-1
+fi_FI.iso88591:					fi_FI.ISO8859-1
+fi_FI.ISO-8859-1:				fi_FI.ISO8859-1
+fi_FI.ISO_8859-1:				fi_FI.ISO8859-1
+fi_FI.iso885915:				fi_FI.ISO8859-15
+fi_FI.ISO-8859-15:				fi_FI.ISO8859-15
+fi_FI.ISO-8859-15@euro:				fi_FI.ISO8859-15
+fi_FI@euro:					fi_FI.ISO8859-15
+fi_FI.utf8:					fi_FI.UTF-8
+fi_FI.UTF-8@euro:				fi_FI.UTF-8
+fo:						fo_FO.ISO8859-1
+fo_FO:						fo_FO.ISO8859-1
+fo_FO.iso88591:					fo_FO.ISO8859-1
+fo_FO.ISO-8859-1:				fo_FO.ISO8859-1
+fo_FO.iso885915:				fo_FO.ISO8859-15
+fo_FO.ISO-8859-15:				fo_FO.ISO8859-15
+fo_FO.utf8:					fo_FO.UTF-8
+fr:						fr_FR.ISO8859-1
+fr.ISO8859-15:					fr_FR.ISO8859-15
+fr.UTF-8:					fr_FR.UTF-8
+fr_BE:						fr_BE.ISO8859-1
+fr_BE.88591:					fr_BE.ISO8859-1
+fr_BE.88591.en:					fr_BE.ISO8859-1
+fr_BE.ISO-8859-1:				fr_BE.ISO8859-1
+fr_BE.ISO_8859-1:				fr_BE.ISO8859-1
+fr_BE.iso885915:				fr_BE.ISO8859-15
+fr_BE.ISO-8859-15:				fr_BE.ISO8859-15
+fr_BE.ISO-8859-15@euro:				fr_BE.ISO8859-15
+fr_BE@euro:					fr_BE.ISO8859-15
+fr_BE.utf8:					fr_BE.UTF-8
+fr_BE.UTF-8@euro:				fr_BE.UTF-8
+fr_CA:						fr_CA.ISO8859-1
+fr_CA.88591:					fr_CA.ISO8859-1
+fr_CA.88591.en:					fr_CA.ISO8859-1
+fr_CA.iso88591:					fr_CA.ISO8859-1
+fr_CA.ISO-8859-1:				fr_CA.ISO8859-1
+fr_CA.ISO_8859-1:				fr_CA.ISO8859-1
+fr_CA.iso885915:				fr_CA.ISO8859-15
+fr_CA.ISO-8859-15:				fr_CA.ISO8859-15
+fr_CA.utf8:					fr_CA.UTF-8
+fr_CH:						fr_CH.ISO8859-1
+fr_CH.88591:					fr_CH.ISO8859-1
+fr_CH.88591.en:					fr_CH.ISO8859-1
+fr_CH.ISO-8859-1:				fr_CH.ISO8859-1
+fr_CH.ISO_8859-1:				fr_CH.ISO8859-1
+fr_CH.iso885915:				fr_CH.ISO8859-15
+fr_CH.ISO-8859-15:				fr_CH.ISO8859-15
+fr_CH.utf8:					fr_CH.UTF-8
+fr_FR:						fr_FR.ISO8859-1
+fr_FR.88591:					fr_FR.ISO8859-1
+fr_FR.88591.en:					fr_FR.ISO8859-1
+fr_FR.iso88591:					fr_FR.ISO8859-1
+fr_FR.ISO-8859-1:				fr_FR.ISO8859-1
+fr_FR.ISO_8859-1:				fr_FR.ISO8859-1
+fr_FR.iso885915:				fr_FR.ISO8859-15
+fr_FR.ISO-8859-15:				fr_FR.ISO8859-15
+fr_FR.ISO-8859-15@euro:				fr_FR.ISO8859-15
+fr_FR@euro:					fr_FR.ISO8859-15
+fr_FR.UTF-8@euro:				fr_FR.UTF-8
+fr_FR.utf8:					fr_FR.UTF-8
+fr_LU:						fr_LU.ISO8859-1
+fr_LU.88591:					fr_LU.ISO8859-1
+fr_LU.88591.en:					fr_LU.ISO8859-1
+fr_LU.iso88591:					fr_LU.ISO8859-1
+fr_LU.ISO-8859-1:				fr_LU.ISO8859-1
+fr_LU.ISO_8859-1:				fr_LU.ISO8859-1
+fr_LU.iso885915:				fr_LU.ISO8859-15
+fr_LU.ISO-8859-15:				fr_LU.ISO8859-15
+fr_LU.ISO-8859-15@euro:				fr_LU.ISO8859-15
+fr_LU@euro:					fr_LU.ISO8859-15
+fr_LU.UTF-8@euro:				fr_LU.UTF-8
+fr_LU.utf8:					fr_LU.UTF-8
+FRE_FR.8859:					fr_FR.ISO8859-1
+FRE_FR.8859.in:					fr_FR.ISO8859-1
+ga:						ga_IE.ISO8859-1
+ga_IE:						ga_IE.ISO8859-1
+ga_IE.iso88591:					ga_IE.ISO8859-1
+ga_IE.ISO-8859-1:				ga_IE.ISO8859-1
+ga_IE.iso885914:				ga_IE.ISO8859-14
+ga_IE.ISO-8859-14:				ga_IE.ISO8859-14
+ga_IE.iso885915:				ga_IE.ISO8859-15
+ga_IE.ISO-8859-15:				ga_IE.ISO8859-15
+ga_IE.ISO-8859-15@euro:				ga_IE.ISO8859-15
+ga_IE@euro:					ga_IE.ISO8859-15
+ga_IE.UTF-8@euro:				ga_IE.UTF-8
+ga_IE.utf8:					ga_IE.UTF-8
+gd:						gd_GB.ISO8859-1
+gd_GB:						gd_GB.ISO8859-1
+gd_GB.iso88591:					gd_GB.ISO8859-1
+gd_GB.ISO-8859-1:				gd_GB.ISO8859-1
+gd_GB.iso885914:				gd_GB.ISO8859-14
+gd_GB.ISO-8859-14:				gd_GB.ISO8859-14
+gd_GB.iso885915:				gd_GB.ISO8859-15
+gd_GB.ISO-8859-15:				gd_GB.ISO8859-15
+gl:						gl_ES.ISO8859-1
+gl_ES:						gl_ES.ISO8859-1
+gl_ES.iso88591:					gl_ES.ISO8859-1
+gl_ES.ISO-8859-1:				gl_ES.ISO8859-1
+gl_ES.iso885915:				gl_ES.ISO8859-15
+gl_ES.ISO-8859-15:				gl_ES.ISO8859-15
+gl_ES.ISO-8859-15@euro:				gl_ES.ISO8859-15
+gl_ES@euro:					gl_ES.ISO8859-15
+gl_ES.UTF-8@euro:				gl_ES.UTF-8
+gl_ES.utf8:					gl_ES.UTF-8
+gu_IN:						gu_IN.UTF-8
+gu_IN.utf8:					gu_IN.UTF-8
+gv:						gv_GB.ISO8859-1
+gv_GB:						gv_GB.ISO8859-1
+gv_GB.iso88591:					gv_GB.ISO8859-1
+gv_GB.ISO-8859-1:				gv_GB.ISO8859-1
+gv_GB.iso885914:				gv_GB.ISO8859-14
+gv_GB.ISO-8859-14:				gv_GB.ISO8859-14
+gv_GB.iso885915:				gv_GB.ISO8859-15
+gv_GB.ISO-8859-15:				gv_GB.ISO8859-15
+he:						he_IL.ISO8859-8
+he_IL:						he_IL.ISO8859-8
+HE_IL:						he_IL.ISO8859-8
+he_IL.iso88598:					he_IL.ISO8859-8
+he_IL.ISO-8859-8:				he_IL.ISO8859-8
+he_IL.cp1255:					he_IL.CP1255
+he_IL.microsoftcp1255:				he_IL.CP1255
+he_IL.microsoft-cp1255:				he_IL.CP1255
+he_IL.MICROSOFT-CP1255:				he_IL.CP1255
+he_IL.utf8:					he_IL.UTF-8
+HE_IL.UTF-8:					he_IL.UTF-8
+hi:						hi_IN.ISCII-DEV
+hi_IN:						hi_IN.ISCII-DEV
+HI_IN:						hi_IN.ISCII-DEV
+hi_IN.isciidev:					hi_IN.ISCII-DEV
+hi_IN.utf8:					hi_IN.UTF-8
+HI_IN.UTF-8:					hi_IN.UTF-8
+hne:						hne_IN.UTF-8
+hne_IN:						hne_IN.UTF-8
+hne_IN.utf8:					hne_IN.UTF-8
+hr:						hr_HR.ISO8859-2
+hr_HR:						hr_HR.ISO8859-2
+hr_HR.iso88592:					hr_HR.ISO8859-2
+hr_HR.ISO-8859-2:				hr_HR.ISO8859-2
+hr_HR.ISO_8859-2:				hr_HR.ISO8859-2
+hr_HR.utf8:					hr_HR.UTF-8
+hu:						hu_HU.ISO8859-2
+hu_HU:						hu_HU.ISO8859-2
+hu_HU.iso88592:					hu_HU.ISO8859-2
+hu_HU.ISO-8859-2:				hu_HU.ISO8859-2
+hu_HU.utf8:					hu_HU.UTF-8
+ia:						ia.UTF-8
+ia.utf8:					ia.UTF-8
+ie:						ie.UTF-8
+ie.utf8:					ie.UTF-8
+is:						is_IS.ISO8859-1
+is_IS:						is_IS.ISO8859-1
+is_IS.iso88591:					is_IS.ISO8859-1
+is_IS.ISO-8859-1:				is_IS.ISO8859-1
+is_IS.ISO_8859-1:				is_IS.ISO8859-1
+is_IS.iso885915:				is_IS.ISO8859-15
+is_IS.ISO-8859-15:				is_IS.ISO8859-15
+is_IS.utf8:					is_IS.UTF-8
+it:						it_IT.ISO8859-1
+it.ISO8859-15:					it_IT.ISO8859-15
+it.UTF-8:					it_IT.UTF-8
+it_CH:						it_CH.ISO8859-1
+it_CH.iso88591:					it_CH.ISO8859-1
+it_CH.ISO_8859-1:				it_CH.ISO8859-1
+it_CH.ISO-8859-1:				it_CH.ISO8859-1
+it_CH.iso885915:				it_CH.ISO8859-15
+it_CH.utf8:					it_CH.UTF-8
+it_IT:						it_IT.ISO8859-1
+it_IT.88591:					it_IT.ISO8859-1
+it_IT.88591.en:					it_IT.ISO8859-1
+it_IT.iso88591:					it_IT.ISO8859-1
+it_IT.ISO-8859-1:				it_IT.ISO8859-1
+it_IT.ISO_8859-1:				it_IT.ISO8859-1
+it_IT.iso885915:				it_IT.ISO8859-15
+it_IT.ISO-8859-15:				it_IT.ISO8859-15
+it_IT.ISO-8859-15@euro:				it_IT.ISO8859-15
+it_IT@euro:					it_IT.ISO8859-15
+it_IT.utf8:					it_IT.UTF-8
+it_IT.UTF-8@euro:				it_IT.UTF-8
+# NUNACOM is an encoding for the Inuktitut syllabics
+# we have little else on this encoding.
+iu:						iu_CA.NUNACOM-8
+iu_CA:						iu_CA.NUNACOM-8
+iu_CA.nunacom8:					iu_CA.NUNACOM-8
+ja_JP:						ja_JP.eucJP
+ja:						ja_JP.eucJP
+ja.JIS:						ja_JP.JIS7
+ja.SJIS:					ja_JP.SJIS
+ja_JP.ujis:					ja_JP.eucJP
+Jp_JP:						ja_JP.eucJP
+ja_JP.AJEC:					ja_JP.eucJP
+ja_JP.EUC:					ja_JP.eucJP
+ja_JP.EUC-JP:					ja_JP.eucJP
+ja_JP.EUC_JP:					ja_JP.eucJP
+ja_JP.eucjp:					ja_JP.eucJP
+ja_JP.ISO-2022-JP:				ja_JP.JIS7
+ja_JP.JIS:					ja_JP.JIS7
+ja_JP.jis7:					ja_JP.JIS7
+ja_JP.mscode:					ja_JP.SJIS
+ja_JP.PCK:					ja_JP.SJIS
+ja_JP.sjis:					ja_JP.SJIS
+ja_JP.utf8:					ja_JP.UTF-8
+JA_JP.utf8:					ja_JP.UTF-8
+ka:						ka_GE.GEORGIAN-ACADEMY
+ka_GE:						ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianacademy:				ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianrs:				ka_GE.GEORGIAN-ACADEMY
+ka_GE.georgianps:				ka_GE.GEORGIAN-PS
+kl:						kl_GL.ISO8859-1
+kl_GL:						kl_GL.ISO8859-1
+kl_GL.iso88591:					kl_GL.ISO8859-1
+kl_GL.ISO-8859-1:				kl_GL.ISO8859-1
+kl_GL.iso885915:				kl_GL.ISO8859-15
+kl_GL.utf8:					kl_GL.UTF-8
+km_KH:						km_KH.UTF-8
+km_KH.utf8:					km_KH.UTF-8
+kn:						kn_IN.UTF-8
+kn_IN:						kn_IN.UTF-8
+kn_IN.utf8:					kn_IN.UTF-8
+ko:						ko_KR.eucKR
+ko.UTF-8:					ko_KR.UTF-8
+ko_KR:						ko_KR.eucKR
+KO_KR:						ko_KR.eucKR
+ko_KR.EUC:					ko_KR.eucKR
+ko_KR.EUC-KR:					ko_KR.eucKR
+ko_KR.euc:					ko_KR.eucKR
+ko_KR.euckr:					ko_KR.eucKR
+ko_KR.utf8:					ko_KR.UTF-8
+KO_KR.UTF-8:					ko_KR.UTF-8
+ks:						ks_IN.UTF-8
+ks_IN:						ks_IN.UTF-8
+ks_IN.utf8:					ks_IN.UTF-8
+ks_IN@devanagari:				ks_IN.UTF-8@devanagari
+ks_IN.utf8@devanagari:				ks_IN.UTF-8@devanagari
+kw:						kw_GB.ISO8859-1
+kw_GB:						kw_GB.ISO8859-1
+kw_GB.iso88591:					kw_GB.ISO8859-1
+kw_GB.ISO-8859-1:				kw_GB.ISO8859-1
+kw_GB.iso885914:				kw_GB.ISO8859-14
+kw_GB.ISO-8859-14:				kw_GB.ISO8859-14
+kw_GB.iso885915:				kw_GB.ISO8859-15
+kw_GB.ISO-8859-15:				kw_GB.ISO8859-15
+ky:						ky_KG.UTF-8
+ky_KG:							ky_KG.UTF-8
+ky_KG.utf8:					ky_KG.UTF-8
+lo:						lo_LA.MULELAO-1
+lo_LA:						lo_LA.MULELAO-1
+lo_LA.cp1133:					lo_LA.IBM-CP1133
+lo_LA.ibmcp1133:				lo_LA.IBM-CP1133
+lo_LA.mulelao1:					lo_LA.MULELAO-1
+lt:						lt_LT.ISO8859-13
+lt_LT:						lt_LT.ISO8859-13
+lt_LT.iso88594:					lt_LT.ISO8859-4
+lt_LT.ISO-8859-4:				lt_LT.ISO8859-4
+lt_LT.ISO_8859-4:				lt_LT.ISO8859-4
+lt_LT.iso885913:				lt_LT.ISO8859-13
+lt_LT.ISO-8859-13:				lt_LT.ISO8859-13
+lt_LT.ISO_8859-13:				lt_LT.ISO8859-13
+lt_LT.utf8:					lt_LT.UTF-8
+lv:						lv_LV.ISO8859-13
+lv_LV:						lv_LV.ISO8859-13
+lv_LV.iso88594:					lv_LV.ISO8859-4
+lv_LV.ISO-8859-4:				lv_LV.ISO8859-4
+lv_LV.iso885913:				lv_LV.ISO8859-13
+lv_LV.ISO-8859-13:				lv_LV.ISO8859-13
+lv_LV.ISO_8859-13:				lv_LV.ISO8859-13
+lv_LV.utf8:					lv_LV.UTF-8
+mai:						mai_IN.UTF-8
+mai_IN:						mai_IN.UTF-8
+mai_IN.utf8:					mai_IN.UTF-8
+mi:						mi_NZ.ISO8859-1
+mi_NZ:						mi_NZ.ISO8859-1
+mi_NZ.iso88591:					mi_NZ.ISO8859-1
+mk:						mk_MK.ISO8859-5
+mk_MK:						mk_MK.ISO8859-5
+mk_MK.iso88595:					mk_MK.ISO8859-5
+mk_MK.ISO-8859-5:				mk_MK.ISO8859-5
+mk_MK.cp1251:					mk_MK.CP1251
+mk_MK.microsoftcp1251:				mk_MK.CP1251
+mk_MK.microsoft-cp1251:				mk_MK.CP1251
+mk_MK.MICROSOFT-CP1251:				mk_MK.CP1251
+mk_MK.utf8:					mk_MK.UTF-8
+ml:						ml_IN.UTF-8
+ml_IN:						ml_IN.UTF-8
+ml_IN.utf8:					ml_IN.UTF-8
+mr:						mr_IN.UTF-8
+mr_IN:						mr_IN.UTF-8
+mr_IN.utf8:					mr_IN.UTF-8
+ms:						ms_MY.ISO8859-1
+ms_MY:						ms_MY.ISO8859-1
+ms_MY.iso88591:					ms_MY.ISO8859-1
+ms_MY.ISO-8859-1:				ms_MY.ISO8859-1
+mt:						mt_MT.ISO8859-3
+mt_MT:						mt_MT.ISO8859-3
+mt_MT.ISO-8859-3:				mt_MT.ISO8859-3
+nb:						nb_NO.ISO8859-1
+nb_NO:						nb_NO.ISO8859-1
+nb_NO.88591:					nb_NO.ISO8859-1
+nb_NO.iso88591:					nb_NO.ISO8859-1
+nb_NO.ISO-8859-1:				nb_NO.ISO8859-1
+nb_NO.iso885915:				nb_NO.ISO8859-15
+nb_NO.ISO-8859-15:				nb_NO.ISO8859-15
+nb_NO.utf8:					nb_NO.UTF-8
+ne_NP:						ne_NP.UTF-8
+ne_NP.utf8:					ne_NP.UTF-8
+nl:						nl_NL.ISO8859-1
+nl.ISO8859-15:					nl_NL.ISO8859-15
+nl_BE:						nl_BE.ISO8859-1
+nl_BE.88591:					nl_BE.ISO8859-1
+nl_BE.88591.en:					nl_BE.ISO8859-1
+nl_BE.iso88591:					nl_BE.ISO8859-1
+nl_BE.ISO-8859-1:				nl_BE.ISO8859-1
+nl_BE.ISO_8859-1:				nl_BE.ISO8859-1
+nl_BE.iso885915:				nl_BE.ISO8859-15
+nl_BE.ISO-8859-15:				nl_BE.ISO8859-15
+nl_BE.ISO-8859-15@euro:				nl_BE.ISO8859-15
+nl_BE@euro:					nl_BE.ISO8859-15
+nl_BE.utf8:					nl_BE.UTF-8
+nl_BE.UTF-8@euro:				nl_BE.UTF-8
+nl_NL:						nl_NL.ISO8859-1
+nl_NL.88591:					nl_NL.ISO8859-1
+nl_NL.88591.en:					nl_NL.ISO8859-1
+nl_NL.iso88591:					nl_NL.ISO8859-1
+nl_NL.ISO-8859-1:				nl_NL.ISO8859-1
+nl_NL.ISO_8859-1:				nl_NL.ISO8859-1
+nl_NL.iso885915:				nl_NL.ISO8859-15
+nl_NL.ISO-8859-15:				nl_NL.ISO8859-15
+nl_NL.ISO-8859-15@euro:				nl_NL.ISO8859-15
+nl_NL@euro:					nl_NL.ISO8859-15
+nl_NL.utf8:					nl_NL.UTF-8
+nl_NL.UTF-8@euro:				nl_NL.UTF-8
+nn:						nn_NO.ISO8859-1
+nn_NO:						nn_NO.ISO8859-1
+nn_NO.88591:					nn_NO.ISO8859-1
+nn_NO.ISO-8859-1:				nn_NO.ISO8859-1
+nn_NO.ISO_8859-1:				nn_NO.ISO8859-1
+nn_NO.iso885915:				nn_NO.ISO8859-15
+nn_NO.ISO-8859-15:				nn_NO.ISO8859-15
+nn_NO.utf8:					nn_NO.UTF-8
+no:						no_NO.ISO8859-1
+no_NO:						no_NO.ISO8859-1
+no_NO.88591:					no_NO.ISO8859-1
+no_NO.88591.en:					no_NO.ISO8859-1
+no_NO.iso88591:					no_NO.ISO8859-1
+no_NO.ISO-8859-1:				no_NO.ISO8859-1
+no_NO.ISO8859-1@bokmal:				no_NO.ISO8859-1
+no_NO.ISO8859-1@nynorsk:			no_NO.ISO8859-1
+no_NO.iso885915:				no_NO.ISO8859-15
+no_NO.ISO-8859-15:				no_NO.ISO8859-15
+no_NO.utf8:					no_NO.UTF-8
+nr:						nr_ZA.ISO8859-1
+nr_ZA:						nr_ZA.ISO8859-1
+nr_ZA.iso88591:					nr_ZA.ISO8859-1
+nr_ZA.utf8:					nr_ZA.UTF-8
+nso:						nso_ZA.ISO8859-15
+nso_ZA:						nso_ZA.ISO8859-15
+nso_ZA.iso885915:				nso_ZA.ISO8859-15
+nso_ZA.utf8:					nso_ZA.UTF-8
+ny:						ny_NO.ISO8859-1
+ny_NO:						ny_NO.ISO8859-1
+ny_NO.88591:					ny_NO.ISO8859-1
+ny_NO.ISO_8859-1:				ny_NO.ISO8859-1
+ny_NO.iso885915:				ny_NO.ISO8859-15
+no@nynorsk:					ny_NO.ISO8859-1
+nynorsk:					nn_NO.ISO8859-1
+oc:						oc_FR.ISO8859-1
+oc_FR:						oc_FR.ISO8859-1
+oc_FR.iso88591:					oc_FR.ISO8859-1
+oc_FR.ISO-8859-1:				oc_FR.ISO8859-1
+oc_FR.iso885915:				oc_FR.ISO8859-15
+oc_FR.ISO-8859-15:				oc_FR.ISO8859-15
+oc_FR@euro:					oc_FR.ISO8859-15
+or:						or_IN.UTF-8
+or_IN:						or_IN.UTF-8
+or_IN.utf8:					or_IN.UTF-8
+pa:						pa_IN.UTF-8
+pa_IN:						pa_IN.UTF-8
+pa_IN.utf8:					pa_IN.UTF-8
+pa_PK.utf8:					pa_PK.UTF-8
+pd:						pd_US.ISO8859-1
+pd_DE:						pd_DE.ISO8859-1
+pd_US:						pd_US.ISO8859-1
+pd_DE.iso88591:					pd_DE.ISO8859-1
+pd_US.iso88591:					pd_US.ISO8859-1
+pd_DE.iso885915:				pd_DE.ISO8859-15
+pd_US.iso885915:				pd_US.ISO8859-15
+ph:						ph_PH.ISO8859-1
+ph_PH:						ph_PH.ISO8859-1
+ph_PH.iso88591:					ph_PH.ISO8859-1
+pl:						pl_PL.ISO8859-2
+pl.UTF-8:					pl_PL.UTF-8
+pl_PL:						pl_PL.ISO8859-2
+pl_PL.iso88592:					pl_PL.ISO8859-2
+pl_PL.ISO-8859-2:				pl_PL.ISO8859-2
+pl_PL.utf8:					pl_PL.UTF-8
+pp:						pp_AN.ISO8859-1
+pp_AN:						pp_AN.ISO8859-1
+pp_AN.iso88591:					pp_AN.ISO8859-1
+pt:						pt_PT.ISO8859-1
+pt.ISO8859-15:					pt_PT.ISO8859-15
+pt_BR:						pt_BR.ISO8859-1
+pt_BR.88591:					pt_BR.ISO8859-1
+pt_BR.88591.en:					pt_BR.ISO8859-1
+pt_BR.iso88591:					pt_BR.ISO8859-1
+pt_BR.ISO-8859-1:				pt_BR.ISO8859-1
+pt_BR.ISO_8859-1:				pt_BR.ISO8859-1
+pt_BR.iso885915:				pt_BR.ISO8859-15
+pt_BR.utf8:					pt_BR.UTF-8
+pt_PT:						pt_PT.ISO8859-1
+pt_PT.88591:					pt_PT.ISO8859-1
+pt_PT.88591.en:					pt_PT.ISO8859-1
+pt_PT.iso88591:					pt_PT.ISO8859-1
+pt_PT.ISO-8859-1:				pt_PT.ISO8859-1
+pt_PT.ISO_8859-1:				pt_PT.ISO8859-1
+pt_PT.iso885915:				pt_PT.ISO8859-15
+pt_PT.ISO-8859-15:				pt_PT.ISO8859-15
+pt_PT.ISO-8859-15@euro:				pt_PT.ISO8859-15
+pt_PT@euro:					pt_PT.ISO8859-15
+pt_PT.utf8:					pt_PT.UTF-8
+pt_PT.UTF-8@euro:				pt_PT.UTF-8
+ro:						ro_RO.ISO8859-2
+ro_RO:						ro_RO.ISO8859-2
+ro_RO.iso88592:					ro_RO.ISO8859-2
+ro_RO.ISO-8859-2:				ro_RO.ISO8859-2
+ro_RO.utf8:					ro_RO.UTF-8
+ru:						ru_RU.UTF-8
+ru.koi8-r:					ru_RU.KOI8-R
+ru.UTF-8:					ru_RU.UTF-8
+ru_RU:						ru_RU.UTF-8
+ru_RU.utf8:					ru_RU.UTF-8
+ru_RU.iso88595:					ru_RU.ISO8859-5
+ru_RU.ISO-8859-5:				ru_RU.ISO8859-5
+ru_RU.koi8r:					ru_RU.KOI8-R
+ru_RU.cp1251:					ru_RU.CP1251
+ru_RU.microsoftcp1251:				ru_RU.CP1251
+ru_RU.microsoft-cp1251:				ru_RU.CP1251
+ru_RU.MICROSOFT-CP1251:				ru_RU.CP1251
+ru_UA:						ru_UA.KOI8-U
+ru_UA.koi8u:					ru_UA.KOI8-U
+ru_UA.cp1251:					ru_UA.CP1251
+ru_UA.microsoftcp1251:				ru_UA.CP1251
+ru_UA.microsoft-cp1251:				ru_UA.CP1251
+ru_UA.MICROSOFT-CP1251:				ru_UA.CP1251
+rw:						rw_RW.ISO8859-1
+rw_RW:						rw_RW.ISO8859-1
+rw_RW.iso8859-1:				rw_RW.ISO8859-1
+rw_RW.ISO-8859-1:				rw_RW.ISO8859-1
+rw_RW.utf8:					rw_RW.UTF-8
+sd:						sd_IN.UTF-8
+sd_IN.utf8:					sd_IN.UTF-8
+sd@devanagari:					sd_IN.UTF-8@devanagari
+sd_IN@devanagari:				sd_IN.UTF-8@devanagari
+sd_IN.utf8@devanagari:				sd_IN.UTF-8@devanagari
+se_NO:						se_NO.UTF-8
+se_NO.utf8:					se_NO.UTF-8
+si:						si_LK.UTF-8
+si_LK:						si_LK.UTF-8
+sk:						sk_SK.ISO8859-2
+sk_SK:						sk_SK.ISO8859-2
+sk_SK.iso88592:					sk_SK.ISO8859-2
+sk_SK.ISO-8859-2:				sk_SK.ISO8859-2
+sk_SK.utf8:					sk_SK.UTF-8
+sl:						sl_SI.ISO8859-2
+sl_SI:						sl_SI.ISO8859-2
+sl_SI.iso88592:					sl_SI.ISO8859-2
+sl_SI.ISO-8859-2:				sl_SI.ISO8859-2
+sl_SI.utf8:					sl_SI.UTF-8
+sq:						sq_AL.ISO8859-2
+sq_AL:						sq_AL.ISO8859-2
+sq_AL.iso88592:					sq_AL.ISO8859-2
+sq_AL.ISO-8859-2:				sq_AL.ISO8859-2
+sq_AL.utf8:					sq_AL.UTF-8
+sr:						sr_RS.UTF-8
+sr@cyrillic:					sr_RS.UTF-8
+sr@latin:					sr_RS.UTF-8@latin
+sr@Latn:					sr_RS.UTF-8@latin
+sr_RS:						sr_RS.UTF-8
+sr_RS@latin:					sr_RS.UTF-8@latin
+sr_RS@Latn:					sr_RS.UTF-8@latin
+sr_RS.UTF-8@Latn:				sr_RS.UTF-8@latin
+sr_RS.utf8:					sr_RS.UTF-8
+sr_ME:						sr_ME.UTF-8
+sr_ME.utf8:					sr_ME.UTF-8
+ss:						ss_ZA.ISO8859-1
+ss_ZA:						ss_ZA.ISO8859-1
+ss_ZA.iso88591:					ss_ZA.ISO8859-1
+ss_ZA.utf8:					ss_ZA.UTF-8
+st:						st_ZA.ISO8859-1
+st_ZA:						st_ZA.ISO8859-1
+st_ZA.iso88591:					st_ZA.ISO8859-1
+st_ZA.utf8:					st_ZA.UTF-8
+sv:						sv_SE.ISO8859-1
+sv.ISO8859-15:					sv_SE.ISO8859-15
+sv.UTF-8:					sv_SE.UTF-8
+sv_FI:						sv_FI.ISO8859-1
+sv_FI.iso88591:					sv_FI.ISO8859-1
+sv_FI.ISO-8859-1:				sv_FI.ISO8859-1
+sv_FI.iso885915:				sv_FI.ISO8859-15
+sv_FI.ISO-8859-15:				sv_FI.ISO8859-15
+sv_FI.ISO-8859-15@euro:				sv_FI.ISO8859-15
+sv_FI@euro:					sv_FI.ISO8859-15
+sv_FI.UTF-8@euro:				sv_FI.UTF-8
+sv_FI.utf8:					sv_FI.UTF-8
+sv_SE:						sv_SE.ISO8859-1
+sv_SE.88591:					sv_SE.ISO8859-1
+sv_SE.88591.en:					sv_SE.ISO8859-1
+sv_SE.iso88591:					sv_SE.ISO8859-1
+sv_SE.ISO-8859-1:				sv_SE.ISO8859-1
+sv_SE.ISO_8859-1:				sv_SE.ISO8859-1
+sv_SE.iso885915:				sv_SE.ISO8859-15
+sv_SE.ISO-8859-15:				sv_SE.ISO8859-15
+sv_SE@euro:					sv_SE.ISO8859-15
+sv_SE.utf8:					sv_SE.UTF-8
+ta:						ta_IN.TSCII-0
+ta_IN:						ta_IN.TSCII-0
+ta_IN.tscii:					ta_IN.TSCII-0
+ta_IN.tscii0:					ta_IN.TSCII-0
+te:						te_IN.UTF-8
+te.UTF-8:					te_IN.UTF-8
+te_IN.utf8:					te_IN.UTF-8
+tg:						tg_TJ.KOI8-C
+tg_TJ:						tg_TJ.KOI8-C
+tg_TJ.koi8c:					tg_TJ.KOI8-C
+th:						th_TH.ISO8859-11
+th_TH:						th_TH.ISO8859-11
+th_TH.ISO-8859-11:				th_TH.ISO8859-11
+th_TH.tis620:					th_TH.TIS620
+th_TH.TIS-620:					th_TH.TIS620
+th_TH.TACTIS:					th_TH.TIS620
+th_TH.utf8:					th_TH.UTF-8
+tl:						tl_PH.ISO8859-1
+tl_PH:						tl_PH.ISO8859-1
+tl_PH.iso88591:					tl_PH.ISO8859-1
+tl_PH.ISO-8859-1:				tl_PH.ISO8859-1
+tn:						tn_ZA.ISO8859-15
+tn_ZA:						tn_ZA.ISO8859-15
+tn_ZA.iso8859-15:				tn_ZA.ISO8859-15
+tn_ZA.utf8:					tn_ZA.UTF-8
+tr:						tr_TR.ISO8859-9
+tr_TR:						tr_TR.ISO8859-9
+TR_TR:						tr_TR.ISO8859-9
+tr_TR.iso88599:					tr_TR.ISO8859-9
+tr_TR.ISO-8859-9:				tr_TR.ISO8859-9
+tr_TR.utf8:					tr_TR.UTF-8
+TR_TR.utf8:					tr_TR.UTF-8
+ts:						ts_ZA.ISO8859-1
+ts_ZA:						ts_ZA.ISO8859-1
+ts_ZA.iso88591:					ts_ZA.ISO8859-1
+ts_ZA.utf8:					ts_ZA.UTF-8
+tt:						tt_RU.TATAR-CYR
+tt_RU:						tt_RU.TATAR-CYR
+tt_RU.tatarcyr:					tt_RU.TATAR-CYR
+tt_RU.koi8c:					tt_RU.KOI8-C
+uk:						uk_UA.KOI8-U
+uk_UA:						uk_UA.KOI8-U
+uk_UA.iso88595:					uk_UA.ISO8859-5
+uk_UA.koi8u:					uk_UA.KOI8-U
+uk_UA.cp1251:					uk_UA.CP1251
+uk_UA.microsoftcp1251:				uk_UA.CP1251
+uk_UA.microsoft-cp1251:				uk_UA.CP1251
+uk_UA.MICROSOFT-CP1251:				uk_UA.CP1251
+uk_UA.utf8:					uk_UA.UTF-8
+ur:						ur_IN.UTF-8
+ur_IN:						ur_IN.UTF-8
+ur_IN.utf8:					ur_IN.UTF-8
+ur:						ur_PK.CP1256
+ur_PK:						ur_PK.CP1256
+ur_PK.cp1256:					ur_PK.CP1256
+ur_PK.microsoftcp1256:				ur_PK.CP1256
+ur_PK.microsoft-cp1256:				ur_PK.CP1256
+ur_PK.MICROSOFT-CP1256:				ur_PK.CP1256
+uz:						uz_UZ.UTF-8
+uz_UZ:						uz_UZ.UTF-8
+uz_UZ.ISO-8859-1:				uz_UZ.ISO8859-1
+uz_UZ@cyrillic:					uz_UZ.UTF-8
+uz_UZ.UTF-8@cyrillic:				uz_UZ.UTF-8
+ve:						ve_ZA.UTF-8
+ve_ZA:						ve_ZA.UTF-8
+ve_ZA.utf8:					ve_ZA.UTF-8
+vi:						vi_VN.TCVN
+vi_VN:						vi_VN.TCVN
+Vi_VN:						vi_VN.TCVN
+VI_VN:						vi_VN.TCVN
+vi_VN.tcvn:					vi_VN.TCVN
+vi_VN.tcvn5712:					vi_VN.TCVN
+vi_VN.viscii:					vi_VN.VISCII
+vi_VN.viscii111:				vi_VN.VISCII
+vi_VN.utf8:					vi_VN.UTF-8
+VI_VN.UTF-8:					vi_VN.UTF-8
+wa:						wa_BE.ISO8859-1
+wa_BE:						wa_BE.ISO8859-1
+wa_BE.iso88591:					wa_BE.ISO8859-1
+wa_BE.ISO-8859-1:				wa_BE.ISO8859-1
+wa_BE.iso885915:				wa_BE.ISO8859-15
+wa_BE.ISO-8859-15:				wa_BE.ISO8859-15
+wa_BE.ISO-8859-15@euro:				wa_BE.ISO8859-15
+wa_BE@euro:					wa_BE.ISO8859-15
+xh:						xh_ZA.ISO8859-1
+xh_ZA:						xh_ZA.ISO8859-1
+xh_ZA.iso88591:					xh_ZA.ISO8859-1
+xh_ZA.utf8:					xh_ZA.UTF-8
+yi:						yi_US.CP1255
+yi_US:						yi_US.CP1255
+yi_US.cp1255:					yi_US.CP1255
+yi_US.microsoftcp1255:				yi_US.CP1255
+yi_US.microsoft-cp1255:				yi_US.CP1255
+yi_US.MICROSOFT-CP1255:				yi_US.CP1255
+zh_CN:						zh_CN.gb2312
+zh_CN.Big5:					zh_TW.big5
+zh_CN.EUC:					zh_CN.eucCN
+zh_CN.GB2312:					zh_CN.gb2312
+zh_CN.GBK:					zh_CN.gbk
+zh_CN.GB18030:					zh_CN.gb18030
+zh_CN.big5:					zh_TW.big5
+zh_CN.euc:					zh_CN.eucCN
+zh_CN.utf8:					zh_CN.UTF-8
+ZH_CN.UTF-8:					zh_CN.UTF-8
+zh_HK:						zh_HK.big5hkscs
+zh_HK.BIG5HK:					zh_HK.big5hkscs
+zh_HK.Big5hkscs:				zh_HK.big5hkscs
+zh_HK.Big5-hkscs:				zh_HK.big5hkscs
+zh_HK.Big5_hkscs:				zh_HK.big5hkscs
+zh_HK.Big5HKSCS:				zh_HK.big5hkscs
+zh_HK.BIG5-HKSCS:				zh_HK.big5hkscs
+zh_HK.BIG5_HKSCS:				zh_HK.big5hkscs
+zh_HK.Big5-HKSCS:				zh_HK.big5hkscs
+zh_HK.big5-hkscs:				zh_HK.big5hkscs
+zh_HK.Big5-HKSCS:				zh_HK.big5hkscs
+zh_HK.Big5HKSCS:				zh_HK.big5hkscs
+zh_HK.Big5:					zh_HK.big5
+zh_HK.utf8:					zh_HK.UTF-8
+ZH_HK.UTF-8:					zh_HK.UTF-8
+ZH_SG.UTF-8:					zh_SG.UTF-8
+zh_TW:						zh_TW.big5
+zh_TW.Big5:					zh_TW.big5
+zh_TW.BIG5:					zh_TW.big5
+Zh_TW.big5:					zh_TW.big5
+zh_TW.EUC:					zh_TW.eucTW
+zh_TW.EUC-TW:					zh_TW.eucTW
+zh_TW.utf8:					zh_TW.UTF-8
+ZH_TW.UTF-8:					zh_TW.UTF-8
+zu:						zu_ZA.ISO8859-1
+zu_ZA:						zu_ZA.ISO8859-1
+zu_ZA.iso88591:					zu_ZA.ISO8859-1
+zu_ZA.utf8:					zu_ZA.UTF-8
+# The following locale names are used in SCO 3.0
+english_uk.8859:				en_GB.ISO8859-1
+english_us.8859:				en_US.ISO8859-1
+english_us.ascii:				en_US.ISO8859-1
+french_france.8859:				fr_FR.ISO8859-1
+german_germany.8859:				de_DE.ISO8859-1
+portuguese_brazil.8859:				pt_BR.ISO8859-1
+spanish_spain.8859:				es_ES.ISO8859-1
+# The following locale names are used in HPUX 9.x
+american.iso88591:				en_US.ISO8859-1
+arabic.iso88596:				ar_AA.ISO8859-6
+bokmal:						nb_NO.ISO8859-1
+bokmål:						nb_NO.ISO8859-1
+bulgarian:					bg_BG.CP1251
+c-french.iso88591:				fr_CA.ISO8859-1
+catalan:					ca_ES.ISO8859-1
+chinese-s:					zh_CN.eucCN
+chinese-t:					zh_TW.eucTW
+croatian:					hr_HR.ISO8859-2
+czech:						cs_CZ.ISO8859-2
+danish:						da_DK.ISO8859-1
+dansk:						da_DK.ISO8859-1
+danish.iso88591:				da_DK.ISO8859-1
+deutsch:					de_DE.ISO8859-1
+dutch:						nl_NL.ISO8859-1
+dutch.iso88591:					nl_BE.ISO8859-1
+eesti:						et_EE.ISO8859-1
+english.iso88591:				en_EN.ISO8859-1
+estonian:					et_EE.ISO8859-1
+finnish:					fi_FI.ISO8859-1
+finnish.iso88591:				fi_FI.ISO8859-1
+français:					fr_FR.ISO8859-1
+french:						fr_FR.ISO8859-1
+french.iso88591:				fr_CH.ISO8859-1
+galego:						gl_ES.ISO8859-1
+galician:					gl_ES.ISO8859-1
+german:						de_DE.ISO8859-1
+german.iso88591:				de_CH.ISO8859-1
+greek:						el_GR.ISO8859-7
+greek.iso88597:					el_GR.ISO8859-7
+hebrew:						he_IL.ISO8859-8
+hebrew.iso88598:				he_IL.ISO8859-8
+hrvatski:					hr_HR.ISO8859-2
+hungarian:					hu_HU.ISO8859-2
+icelandic.iso88591:				is_IS.ISO8859-1
+icelandic:					is_IS.ISO8859-1
+italian:					it_IT.ISO8859-1
+italian.iso88591:				it_IT.ISO8859-1
+japanese:					ja_JP.eucJP
+japanese.euc:					ja_JP.eucJP
+japanese.sjis:					ja_JP.SJIS
+korean:						ko_KR.eucKR
+korean.euc:					ko_KR.eucKR
+lithuanian:					lt_LT.ISO8859-13
+norwegian:					no_NO.ISO8859-1
+norwegian.iso88591:				no_NO.ISO8859-1
+polish:						pl_PL.ISO8859-2
+portuguese:					pt_PT.ISO8859-1
+portuguese.iso88591:				pt_PT.ISO8859-1
+romanian:					ro_RO.ISO8859-2
+rumanian:					ro_RO.ISO8859-2
+russian:					ru_RU.ISO8859-5
+serbocroatian:					sr_RS.UTF-8@latin
+sinhala:					si_LK.UTF-8
+slovak:						sk_SK.ISO8859-2
+slovene:					sl_SI.ISO8859-2
+slovenian:					sl_SI.ISO8859-2
+spanish:					es_ES.ISO8859-1
+spanish.iso88591:				es_ES.ISO8859-1
+swedish:					sv_SE.ISO8859-1
+swedish.iso88591:				sv_SE.ISO8859-1
+turkish:					tr_TR.ISO8859-9
+turkish.iso88599:				tr_TR.ISO8859-9
+thai:						th_TH.ISO8859-11
+univ.utf8:					en_US.UTF-8
+# Digital Unix utf
+universal.utf8@ucs4:				en_US.UTF-8
+# Solaris and SunOS have iso_8859_1 and iso_8859_15 LC_CTYPES 
+# to augment LANG=C
+iso_8859_1:					en_US.ISO8859-1
+iso_8859_15:					en_US.ISO8859-15
+# Other miscellaneous locale names
+ISO8859-1:					en_US.ISO8859-1
+ISO-8859-1:					en_US.ISO8859-1
+japan:						ja_JP.eucJP
+Japanese-EUC:					ja_JP.eucJP
diff --git a/test/data/locale/locale.dir b/test/data/locale/locale.dir
new file mode 100644
index 0000000..8bdaf5f
--- /dev/null
+++ b/test/data/locale/locale.dir
@@ -0,0 +1,948 @@
+#
+#	This file contains locale database file names
+#	The first word is the locale database file name and
+#	the second word is the full locale name.
+#
+#
+C/XLC_LOCALE				C
+iso8859-1/XLC_LOCALE			af_ZA.ISO8859-1
+iso8859-6/XLC_LOCALE			ar_AA.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_BH.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_DZ.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_EG.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_IQ.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_JO.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_KW.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_LB.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_LY.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_MA.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_OM.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_QA.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_SA.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_SD.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_SY.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_TN.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_YE.ISO8859-6
+iso8859-6/XLC_LOCALE			ar_AE.ISO8859-6
+iso8859-9e/XLC_LOCALE			az_AZ.ISO8859-9E
+koi8-c/XLC_LOCALE			az_AZ.KOI8-C
+iso8859-5/XLC_LOCALE			be_BY.ISO8859-5
+microsoft-cp1251/XLC_LOCALE		be_BY.CP1251
+iso8859-5/XLC_LOCALE			bg_BG.ISO8859-5
+microsoft-cp1251/XLC_LOCALE		bg_BG.CP1251
+koi8-r/XLC_LOCALE			bg_BG.KOI8-R
+iso8859-2/XLC_LOCALE			bs_BA.ISO8859-2
+iso8859-1/XLC_LOCALE			br_FR.ISO8859-1
+iso8859-14/XLC_LOCALE			br_FR.ISO8859-14
+iso8859-15/XLC_LOCALE			br_FR.ISO8859-15
+iso8859-1/XLC_LOCALE			ca_AD.ISO8859-1
+iso8859-15/XLC_LOCALE			ca_AD.ISO8859-15
+iso8859-1/XLC_LOCALE			ca_ES.ISO8859-1
+iso8859-15/XLC_LOCALE			ca_ES.ISO8859-15
+iso8859-1/XLC_LOCALE			ca_FR.ISO8859-1
+iso8859-15/XLC_LOCALE			ca_FR.ISO8859-15
+iso8859-1/XLC_LOCALE			ca_IT.ISO8859-1
+iso8859-15/XLC_LOCALE			ca_IT.ISO8859-15
+iso8859-2/XLC_LOCALE			cs_CZ.ISO8859-2
+iso8859-1/XLC_LOCALE			cy_GB.ISO8859-1
+iso8859-14/XLC_LOCALE			cy_GB.ISO8859-14
+iso8859-15/XLC_LOCALE			cy_GB.ISO8859-15
+iso8859-1/XLC_LOCALE			da_DK.ISO8859-1
+iso8859-15/XLC_LOCALE			da_DK.ISO8859-15
+iso8859-1/XLC_LOCALE			de_AT.ISO8859-1
+iso8859-15/XLC_LOCALE			de_AT.ISO8859-15
+iso8859-1/XLC_LOCALE			de_BE.ISO8859-1
+iso8859-15/XLC_LOCALE			de_BE.ISO8859-15
+iso8859-1/XLC_LOCALE			de_CH.ISO8859-1
+iso8859-15/XLC_LOCALE			de_CH.ISO8859-15
+iso8859-1/XLC_LOCALE			de_DE.ISO8859-1
+iso8859-15/XLC_LOCALE			de_DE.ISO8859-15
+iso8859-1/XLC_LOCALE			de_LI.ISO8859-1
+iso8859-15/XLC_LOCALE			de_LI.ISO8859-15
+iso8859-1/XLC_LOCALE			de_LU.ISO8859-1
+iso8859-15/XLC_LOCALE			de_LU.ISO8859-15
+iso8859-7/XLC_LOCALE			el_GR.ISO8859-7
+iso8859-4/XLC_LOCALE			ee_EE.ISO8859-4
+iso8859-15/XLC_LOCALE			el_GR.ISO8859-15
+iso8859-1/XLC_LOCALE			en_AU.ISO8859-1
+iso8859-1/XLC_LOCALE			en_BE.ISO8859-1
+iso8859-15/XLC_LOCALE			en_BE.ISO8859-15
+iso8859-1/XLC_LOCALE			en_BZ.ISO8859-1
+iso8859-1/XLC_LOCALE			en_BW.ISO8859-1
+iso8859-1/XLC_LOCALE			en_CA.ISO8859-1
+iso8859-1/XLC_LOCALE			en_EN.ISO8859-1
+iso8859-1/XLC_LOCALE			en_GB.ISO8859-1
+iso8859-15/XLC_LOCALE			en_GB.ISO8859-15
+iso8859-1/XLC_LOCALE			en_HK.ISO8859-1
+iso8859-1/XLC_LOCALE			en_IE.ISO8859-1
+iso8859-15/XLC_LOCALE			en_IE.ISO8859-15
+iso8859-15/XLC_LOCALE			en_IN.ISO8859-15
+iso8859-1/XLC_LOCALE			en_JM.ISO8859-1
+iso8859-1/XLC_LOCALE			en_NZ.ISO8859-1
+iso8859-1/XLC_LOCALE			en_PH.ISO8859-1
+iso8859-1/XLC_LOCALE			en_SG.ISO8859-1
+iso8859-1/XLC_LOCALE			en_TT.ISO8859-1
+iso8859-1/XLC_LOCALE			en_UK.ISO8859-1
+iso8859-15/XLC_LOCALE			en_UK.ISO8859-15
+iso8859-1/XLC_LOCALE			en_US.ISO8859-1
+iso8859-15/XLC_LOCALE			en_US.ISO8859-15
+iso8859-1/XLC_LOCALE			en_ZA.ISO8859-1
+iso8859-15/XLC_LOCALE			en_ZA.ISO8859-15
+iso8859-1/XLC_LOCALE			en_ZW.ISO8859-1
+iso8859-3/XLC_LOCALE			eo_EO.ISO8859-3
+iso8859-3/XLC_LOCALE			eo_XX.ISO8859-3
+iso8859-1/XLC_LOCALE			es_AR.ISO8859-1
+iso8859-1/XLC_LOCALE			es_BO.ISO8859-1
+iso8859-1/XLC_LOCALE			es_CL.ISO8859-1
+iso8859-1/XLC_LOCALE			es_CO.ISO8859-1
+iso8859-1/XLC_LOCALE			es_CR.ISO8859-1
+iso8859-1/XLC_LOCALE			es_DO.ISO8859-1
+iso8859-1/XLC_LOCALE			es_EC.ISO8859-1
+iso8859-1/XLC_LOCALE			es_ES.ISO8859-1
+iso8859-15/XLC_LOCALE			es_ES.ISO8859-15
+iso8859-1/XLC_LOCALE			es_GT.ISO8859-1
+iso8859-1/XLC_LOCALE			es_HN.ISO8859-1
+iso8859-1/XLC_LOCALE			es_MX.ISO8859-1
+iso8859-1/XLC_LOCALE			es_NI.ISO8859-1
+iso8859-1/XLC_LOCALE			es_PA.ISO8859-1
+iso8859-15/XLC_LOCALE			es_PA.ISO8859-15
+iso8859-1/XLC_LOCALE			es_PE.ISO8859-1
+iso8859-15/XLC_LOCALE			es_PE.ISO8859-15
+iso8859-1/XLC_LOCALE			es_PR.ISO8859-1
+iso8859-1/XLC_LOCALE			es_PY.ISO8859-1
+iso8859-15/XLC_LOCALE			es_PY.ISO8859-15
+iso8859-1/XLC_LOCALE			es_SV.ISO8859-1
+iso8859-15/XLC_LOCALE			es_SV.ISO8859-15
+iso8859-1/XLC_LOCALE			es_US.ISO8859-1
+iso8859-1/XLC_LOCALE			es_UY.ISO8859-1
+iso8859-15/XLC_LOCALE			es_UY.ISO8859-15
+iso8859-1/XLC_LOCALE			es_VE.ISO8859-1
+iso8859-15/XLC_LOCALE			es_VE.ISO8859-15
+iso8859-1/XLC_LOCALE			et_EE.ISO8859-1
+iso8859-4/XLC_LOCALE 			et_EE.ISO8859-4
+iso8859-13/XLC_LOCALE 			et_EE.ISO8859-13
+iso8859-15/XLC_LOCALE			et_EE.ISO8859-15
+iso8859-1/XLC_LOCALE			eu_ES.ISO8859-1
+iso8859-15/XLC_LOCALE			eu_ES.ISO8859-15
+isiri-3342/XLC_LOCALE			fa_IR.ISIRI-3342
+iso8859-1/XLC_LOCALE			fi_FI.ISO8859-1
+iso8859-15/XLC_LOCALE			fi_FI.ISO8859-15
+iso8859-1/XLC_LOCALE			fo_FO.ISO8859-1
+iso8859-15/XLC_LOCALE			fo_FO.ISO8859-15
+iso8859-1/XLC_LOCALE			fr_BE.ISO8859-1
+iso8859-15/XLC_LOCALE			fr_BE.ISO8859-15
+iso8859-1/XLC_LOCALE			fr_CA.ISO8859-1
+iso8859-15/XLC_LOCALE			fr_CA.ISO8859-15
+iso8859-1/XLC_LOCALE			fr_CH.ISO8859-1
+iso8859-15/XLC_LOCALE			fr_CH.ISO8859-15
+iso8859-1/XLC_LOCALE			fr_FR.ISO8859-1
+iso8859-15/XLC_LOCALE			fr_FR.ISO8859-15
+iso8859-1/XLC_LOCALE			fr_LU.ISO8859-1
+iso8859-15/XLC_LOCALE			fr_LU.ISO8859-15
+iso8859-1/XLC_LOCALE			ga_IE.ISO8859-1
+iso8859-14/XLC_LOCALE			ga_IE.ISO8859-14
+iso8859-15/XLC_LOCALE			ga_IE.ISO8859-15
+iso8859-1/XLC_LOCALE			gd_GB.ISO8859-1
+iso8859-14/XLC_LOCALE			gd_GB.ISO8859-14
+iso8859-15/XLC_LOCALE			gd_GB.ISO8859-15
+iso8859-1/XLC_LOCALE			gl_ES.ISO8859-1
+iso8859-15/XLC_LOCALE			gl_ES.ISO8859-15
+iso8859-1/XLC_LOCALE			gv_GB.ISO8859-1
+iso8859-14/XLC_LOCALE			gv_GB.ISO8859-14
+iso8859-15/XLC_LOCALE			gv_GB.ISO8859-15
+iso8859-8/XLC_LOCALE			he_IL.ISO8859-8
+microsoft-cp1255/XLC_LOCALE		he_IL.CP1255
+iscii-dev/XLC_LOCALE			hi_IN.ISCII-DEV
+iso8859-2/XLC_LOCALE			hr_HR.ISO8859-2
+iso8859-2/XLC_LOCALE			hu_HU.ISO8859-2
+armscii-8/XLC_LOCALE			hy_AM.ARMSCII-8
+iso8859-1/XLC_LOCALE			id_ID.ISO8859-1
+iso8859-1/XLC_LOCALE			id_ID.ISO8859-15
+iso8859-1/XLC_LOCALE			is_IS.ISO8859-1
+iso8859-15/XLC_LOCALE			is_IS.ISO8859-15
+iso8859-1/XLC_LOCALE			it_CH.ISO8859-1
+iso8859-15/XLC_LOCALE			it_CH.ISO8859-15
+iso8859-1/XLC_LOCALE			it_IT.ISO8859-1
+iso8859-15/XLC_LOCALE			it_IT.ISO8859-15
+ja/XLC_LOCALE				ja_JP.eucJP
+ja.SJIS/XLC_LOCALE			ja_JP.SJIS
+ja.JIS/XLC_LOCALE			ja_JP.JIS7
+georgian-academy/XLC_LOCALE		ka_GE.GEORGIAN-ACADEMY
+georgian-ps/XLC_LOCALE			ka_GE.GEORGIAN-PS
+iso8859-1/XLC_LOCALE			kl_GL.ISO8859-1
+iso8859-15/XLC_LOCALE			kl_GL.ISO8859-15
+ko/XLC_LOCALE				ko_KR.eucKR
+iso8859-1/XLC_LOCALE			kw_GB.ISO8859-1
+iso8859-14/XLC_LOCALE			kw_GB.ISO8859-14
+iso8859-15/XLC_LOCALE			kw_GB.ISO8859-15
+ibm-cp1133/XLC_LOCALE			lo_LA.IBM-CP1133
+mulelao-1/XLC_LOCALE			lo_LA.MULELAO-1
+iso8859-4/XLC_LOCALE			lt_LT.ISO8859-4
+iso8859-13/XLC_LOCALE			lt_LT.ISO8859-13
+iso8859-4/XLC_LOCALE			lv_LV.ISO8859-4
+iso8859-13/XLC_LOCALE			lv_LV.ISO8859-13
+iso8859-13/XLC_LOCALE			mi_NZ.ISO8859-13
+iso8859-5/XLC_LOCALE			mk_MK.ISO8859-5
+microsoft-cp1251/XLC_LOCALE		mk_MK.CP1251
+iso8859-1/XLC_LOCALE			ms_MY.ISO8859-1
+iso8859-3/XLC_LOCALE			mt_MT.ISO8859-3
+iso8859-1/XLC_LOCALE			nb_NO.ISO8859-1
+iso8859-1/XLC_LOCALE			nb_NO.ISO8859-15
+iso8859-1/XLC_LOCALE			nl_BE.ISO8859-1
+iso8859-15/XLC_LOCALE			nl_BE.ISO8859-15
+iso8859-1/XLC_LOCALE			nl_NL.ISO8859-1
+iso8859-15/XLC_LOCALE			nl_NL.ISO8859-15
+iso8859-1/XLC_LOCALE			nn_NO.ISO8859-1
+iso8859-1/XLC_LOCALE			nn_NO.ISO8859-15
+iso8859-1/XLC_LOCALE			no_NO.ISO8859-1
+iso8859-1/XLC_LOCALE			no_NO.ISO8859-15
+iso8859-1/XLC_LOCALE			nr_ZA.ISO8859-1
+iso8859-15/XLC_LOCALE			nso_ZA.ISO8859-15
+iso8859-1/XLC_LOCALE			ny_NO.ISO8859-1
+iso8859-1/XLC_LOCALE			ny_NO.ISO8859-15
+iso8859-1/XLC_LOCALE			oc_FR.ISO8859-1
+iso8859-15/XLC_LOCALE			oc_FR.ISO8859-15
+iso8859-1/XLC_LOCALE			pd_DE.ISO8859-1
+iso8859-15/XLC_LOCALE			pd_DE.ISO8859-15
+iso8859-1/XLC_LOCALE			pd_US.ISO8859-1
+iso8859-15/XLC_LOCALE			pd_US.ISO8859-15
+iso8859-1/XLC_LOCALE			ph_PH.ISO8859-1
+iso8859-2/XLC_LOCALE			pl_PL.ISO8859-2
+iso8859-1/XLC_LOCALE			pp_AN.ISO8859-1
+iso8859-1/XLC_LOCALE			pt_BR.ISO8859-1
+iso8859-15/XLC_LOCALE			pt_BR.ISO8859-15
+iso8859-1/XLC_LOCALE			pt_PT.ISO8859-1
+iso8859-15/XLC_LOCALE			pt_PT.ISO8859-15
+iso8859-2/XLC_LOCALE			ro_RO.ISO8859-2
+iso8859-5/XLC_LOCALE 			ru_RU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE 		ru_RU.CP1251
+koi8-r/XLC_LOCALE 			ru_RU.KOI8-R
+microsoft-cp1251/XLC_LOCALE 		ru_UA.CP1251
+koi8-u/XLC_LOCALE			ru_UA.KOI8-U
+iso8859-1/XLC_LOCALE           rw_RW.ISO8859-1
+iso8859-2/XLC_LOCALE 			sh_YU.ISO8859-2
+iso8859-2/XLC_LOCALE 			sk_SK.ISO8859-2
+iso8859-2/XLC_LOCALE 			sl_SI.ISO8859-2
+iso8859-2/XLC_LOCALE 			sq_AL.ISO8859-2
+iso8859-2/XLC_LOCALE			sr_YU.ISO8859-2
+iso8859-5/XLC_LOCALE			sr_YU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE		sr_YU.CP1251
+iso8859-1/XLC_LOCALE			ss_ZA.ISO8859-1
+iso8859-1/XLC_LOCALE			st_ZA.ISO8859-1
+iso8859-1/XLC_LOCALE			sv_FI.ISO8859-1
+iso8859-15/XLC_LOCALE			sv_FI.ISO8859-15
+iso8859-1/XLC_LOCALE			sv_SE.ISO8859-1
+iso8859-15/XLC_LOCALE			sv_SE.ISO8859-15
+tscii-0/XLC_LOCALE			ta_IN.TSCII-0
+koi8-c/XLC_LOCALE			tg_TJ.KOI8-C
+th_TH/XLC_LOCALE			th_TH.TIS620
+iso8859-11/XLC_LOCALE			th_TH.ISO8859-11
+iso8859-1/XLC_LOCALE 			tl_PH.ISO8859-1
+iso8859-15/XLC_LOCALE			tn_ZA.ISO8859-15
+iso8859-9/XLC_LOCALE			tr_TR.ISO8859-9
+iso8859-1/XLC_LOCALE			ts_ZA.ISO8859-1
+tatar-cyr/XLC_LOCALE			tt_RU.TATAR-CYR
+koi8-c/XLC_LOCALE			tt_RU.KOI8-C
+iso8859-5/XLC_LOCALE 			uk_UA.ISO8859-5
+microsoft-cp1251/XLC_LOCALE 		uk_UA.CP1251
+koi8-u/XLC_LOCALE			uk_UA.KOI8-U
+microsoft-cp1256/XLC_LOCALE		ur_PK.CP1256
+iso8859-1/XLC_LOCALE			uz_UZ.ISO8859-1
+vi_VN.tcvn/XLC_LOCALE			vi_VN.TCVN
+vi_VN.viscii/XLC_LOCALE		vi_VN.VISCII
+iso8859-1/XLC_LOCALE			wa_BE.ISO8859-1
+iso8859-15/XLC_LOCALE			wa_BE.ISO8859-15
+iso8859-1/XLC_LOCALE			xh_ZA.ISO8859-1
+microsoft-cp1255/XLC_LOCALE		yi_US.CP1255
+zh_CN/XLC_LOCALE			zh_CN.eucCN
+zh_CN/XLC_LOCALE			zh_CN.gb2312
+zh_CN.gbk/XLC_LOCALE			zh_CN.gbk
+zh_CN.gb18030/XLC_LOCALE		zh_CN.gb18030
+zh_HK.big5/XLC_LOCALE			zh_HK.big5
+zh_HK.big5hkscs/XLC_LOCALE		zh_HK.big5hkscs
+zh_TW.big5/XLC_LOCALE			zh_TW.big5
+zh_TW/XLC_LOCALE			zh_TW.eucTW
+iso8859-1/XLC_LOCALE			zu_ZA.ISO8859-1
+# Note: The UTF-8 locales don't work correctly yet. Work in progress.
+en_US.UTF-8/XLC_LOCALE			af_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			am_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_AA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_AE.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_BH.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_DZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_EG.UTF-8
+en_US.UTF-8/XLC_LOCALE                 ar_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_IQ.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_JO.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_KW.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_LB.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_LY.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_MA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_OM.UTF-8
+en_US.UTF-8/XLC_LOCALE			bs_BA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_QA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_SA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_SD.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_SY.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_TN.UTF-8
+en_US.UTF-8/XLC_LOCALE			ar_YE.UTF-8
+en_US.UTF-8/XLC_LOCALE			as_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			ast_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE			az_AZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			be_BY.UTF-8
+en_US.UTF-8/XLC_LOCALE			be_BY.UTF-8@latin
+en_US.UTF-8/XLC_LOCALE			bg_BG.UTF-8
+en_US.UTF-8/XLC_LOCALE			bn_BD.UTF-8
+en_US.UTF-8/XLC_LOCALE			bn_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 bo_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			br_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE			ca_AD.UTF-8
+en_US.UTF-8/XLC_LOCALE			ca_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE			ca_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE			ca_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE			cs_CZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			cy_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE			da_DK.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_AT.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_LI.UTF-8
+en_US.UTF-8/XLC_LOCALE			de_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE			el_CY.UTF-8
+en_US.UTF-8/XLC_LOCALE			el_GR.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_AU.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_BW.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_BZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_DK.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_EN.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_HK.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_JM.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_MT.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_SG.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_TT.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_UK.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_US.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			en_ZW.UTF-8
+en_US.UTF-8/XLC_LOCALE			eo_EO.UTF-8
+en_US.UTF-8/XLC_LOCALE			eo_XX.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_AR.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_BO.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_CL.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_CO.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_CR.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_DO.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_EC.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_GT.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_HN.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_MX.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_NI.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_PA.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_PE.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_PR.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_PY.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_SV.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_US.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_UY.UTF-8
+en_US.UTF-8/XLC_LOCALE			es_VE.UTF-8
+en_US.UTF-8/XLC_LOCALE			et_EE.UTF-8
+en_US.UTF-8/XLC_LOCALE			eu_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE			fa_IR.UTF-8
+en_US.UTF-8/XLC_LOCALE			fi_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE			fo_FO.UTF-8
+en_US.UTF-8/XLC_LOCALE			fr_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE			fr_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE			fr_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE			fr_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE			fr_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE			ga_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE			gd_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE			gl_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE			gu_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			gv_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE			he_IL.UTF-8
+en_US.UTF-8/XLC_LOCALE			hi_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 hne_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			hr_HR.UTF-8
+en_US.UTF-8/XLC_LOCALE			hu_HU.UTF-8
+en_US.UTF-8/XLC_LOCALE			hy_AM.UTF-8
+en_US.UTF-8/XLC_LOCALE			ia.UTF-8
+en_US.UTF-8/XLC_LOCALE			id_ID.UTF-8
+en_US.UTF-8/XLC_LOCALE			ie.UTF-8
+en_US.UTF-8/XLC_LOCALE			is_IS.UTF-8
+en_US.UTF-8/XLC_LOCALE			it_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE			it_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE			iu_CA.UTF-8
+ja_JP.UTF-8/XLC_LOCALE			ja_JP.UTF-8
+en_US.UTF-8/XLC_LOCALE			ka_GE.UTF-8
+en_US.UTF-8/XLC_LOCALE			kk_KZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			kl_GL.UTF-8
+en_US.UTF-8/XLC_LOCALE			km_KH.UTF-8
+en_US.UTF-8/XLC_LOCALE			kn_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 ks_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 ks_IN.UTF-8@devanagari
+ko_KR.UTF-8/XLC_LOCALE			ko_KR.UTF-8
+en_US.UTF-8/XLC_LOCALE			ku_TR.UTF-8
+en_US.UTF-8/XLC_LOCALE			kw_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE			ky_KG.UTF-8
+en_US.UTF-8/XLC_LOCALE			lo_LA.UTF-8
+en_US.UTF-8/XLC_LOCALE			lt_LT.UTF-8
+en_US.UTF-8/XLC_LOCALE			lv_LV.UTF-8
+en_US.UTF-8/XLC_LOCALE                 mai_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			mi_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			mk_MK.UTF-8
+en_US.UTF-8/XLC_LOCALE			ml_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			mr_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			ms_MY.UTF-8
+en_US.UTF-8/XLC_LOCALE			mt_MT.UTF-8
+en_US.UTF-8/XLC_LOCALE			nl_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE			nl_NL.UTF-8
+en_US.UTF-8/XLC_LOCALE			nb_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE			nn_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE			no_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE			nr_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			nso_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ny_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE			oc_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE			or_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			pa_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			pa_PK.UTF-8
+en_US.UTF-8/XLC_LOCALE			pd_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE			pd_US.UTF-8
+en_US.UTF-8/XLC_LOCALE			ph_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE			pl_PL.UTF-8
+en_US.UTF-8/XLC_LOCALE			pp_AN.UTF-8
+pt_BR.UTF-8/XLC_LOCALE			pt_BR.UTF-8
+pt_PT.UTF-8/XLC_LOCALE			pt_PT.UTF-8
+en_US.UTF-8/XLC_LOCALE			ro_RO.UTF-8
+ru_RU.UTF-8/XLC_LOCALE			ru_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE			ru_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE         	rw_RW.UTF-8
+en_US.UTF-8/XLC_LOCALE                 sa_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 sd_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE                 sd_IN.UTF-8@devanagari
+en_US.UTF-8/XLC_LOCALE			se_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE			sh_BA.UTF-8
+en_US.UTF-8/XLC_LOCALE			sh_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE			si_LK.UTF-8
+en_US.UTF-8/XLC_LOCALE			sk_SK.UTF-8
+en_US.UTF-8/XLC_LOCALE			sl_SI.UTF-8
+en_US.UTF-8/XLC_LOCALE			sq_AL.UTF-8
+en_US.UTF-8/XLC_LOCALE			sr_ME.UTF-8
+en_US.UTF-8/XLC_LOCALE			sr_RS.UTF-8
+en_US.UTF-8/XLC_LOCALE			sr_RS.UTF-8@latin
+en_US.UTF-8/XLC_LOCALE			sr_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE			ss_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			st_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			sv_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE			sv_SE.UTF-8
+en_US.UTF-8/XLC_LOCALE			ta_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			te_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			tg_TJ.UTF-8
+th_TH.UTF-8/XLC_LOCALE			th_TH.UTF-8
+en_US.UTF-8/XLC_LOCALE			ti_ER.UTF-8
+en_US.UTF-8/XLC_LOCALE			ti_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE			tl_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE			tn_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			tr_TR.UTF-8
+en_US.UTF-8/XLC_LOCALE			ts_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			tt_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE			uk_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE			ur_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE			ur_PK.UTF-8
+en_US.UTF-8/XLC_LOCALE			uz_UZ.UTF-8
+en_US.UTF-8/XLC_LOCALE			ve_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			vi_VN.UTF-8
+en_US.UTF-8/XLC_LOCALE			wa_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE			xh_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE			yi_US.UTF-8
+en_US.UTF-8/XLC_LOCALE                 ne_NP.UTF-8
+zh_CN.UTF-8/XLC_LOCALE			zh_CN.UTF-8
+zh_HK.UTF-8/XLC_LOCALE			zh_HK.UTF-8
+zh_CN.UTF-8/XLC_LOCALE			zh_SG.UTF-8
+zh_TW.UTF-8/XLC_LOCALE			zh_TW.UTF-8
+en_US.UTF-8/XLC_LOCALE			zu_ZA.UTF-8
+#
+#	This file contains locale database file names
+#	The first word is the locale database file name and
+#	the second word is the full locale name.
+#
+#
+C/XLC_LOCALE:				C
+iso8859-1/XLC_LOCALE:			af_ZA.ISO8859-1
+iso8859-6/XLC_LOCALE:			ar_AA.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_BH.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_DZ.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_EG.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_IQ.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_JO.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_KW.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_LB.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_LY.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_MA.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_OM.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_QA.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_SA.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_SD.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_SY.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_TN.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_YE.ISO8859-6
+iso8859-6/XLC_LOCALE:			ar_AE.ISO8859-6
+iso8859-9e/XLC_LOCALE:			az_AZ.ISO8859-9E
+koi8-c/XLC_LOCALE:			az_AZ.KOI8-C
+iso8859-5/XLC_LOCALE:			be_BY.ISO8859-5
+microsoft-cp1251/XLC_LOCALE:		be_BY.CP1251
+iso8859-5/XLC_LOCALE:			bg_BG.ISO8859-5
+microsoft-cp1251/XLC_LOCALE:		bg_BG.CP1251
+koi8-r/XLC_LOCALE:			bg_BG.KOI8-R
+iso8859-2/XLC_LOCALE:			bs_BA.ISO8859-2
+iso8859-1/XLC_LOCALE:			br_FR.ISO8859-1
+iso8859-14/XLC_LOCALE:			br_FR.ISO8859-14
+iso8859-15/XLC_LOCALE:			br_FR.ISO8859-15
+iso8859-1/XLC_LOCALE:			ca_AD.ISO8859-1
+iso8859-15/XLC_LOCALE:			ca_AD.ISO8859-15
+iso8859-1/XLC_LOCALE:			ca_ES.ISO8859-1
+iso8859-15/XLC_LOCALE:			ca_ES.ISO8859-15
+iso8859-1/XLC_LOCALE:			ca_FR.ISO8859-1
+iso8859-15/XLC_LOCALE:			ca_FR.ISO8859-15
+iso8859-1/XLC_LOCALE:			ca_IT.ISO8859-1
+iso8859-15/XLC_LOCALE:			ca_IT.ISO8859-15
+iso8859-2/XLC_LOCALE:			cs_CZ.ISO8859-2
+iso8859-1/XLC_LOCALE:			cy_GB.ISO8859-1
+iso8859-14/XLC_LOCALE:			cy_GB.ISO8859-14
+iso8859-15/XLC_LOCALE:			cy_GB.ISO8859-15
+iso8859-1/XLC_LOCALE:			da_DK.ISO8859-1
+iso8859-15/XLC_LOCALE:			da_DK.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_AT.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_AT.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_BE.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_BE.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_CH.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_CH.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_DE.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_DE.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_LI.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_LI.ISO8859-15
+iso8859-1/XLC_LOCALE:			de_LU.ISO8859-1
+iso8859-15/XLC_LOCALE:			de_LU.ISO8859-15
+iso8859-7/XLC_LOCALE:			el_GR.ISO8859-7
+iso8859-4/XLC_LOCALE:			ee_EE.ISO8859-4
+iso8859-15/XLC_LOCALE:			el_GR.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_AU.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_BE.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_BE.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_BZ.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_BW.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_CA.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_EN.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_GB.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_GB.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_HK.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_IE.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_IE.ISO8859-15
+iso8859-15/XLC_LOCALE:			en_IN.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_JM.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_NZ.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_PH.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_SG.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_TT.ISO8859-1
+iso8859-1/XLC_LOCALE:			en_UK.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_UK.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_US.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_US.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_ZA.ISO8859-1
+iso8859-15/XLC_LOCALE:			en_ZA.ISO8859-15
+iso8859-1/XLC_LOCALE:			en_ZW.ISO8859-1
+iso8859-3/XLC_LOCALE:			eo_EO.ISO8859-3
+iso8859-3/XLC_LOCALE:			eo_XX.ISO8859-3
+iso8859-1/XLC_LOCALE:			es_AR.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_BO.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_CL.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_CO.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_CR.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_DO.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_EC.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_ES.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_ES.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_GT.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_HN.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_MX.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_NI.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_PA.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_PA.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_PE.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_PE.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_PR.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_PY.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_PY.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_SV.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_SV.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_US.ISO8859-1
+iso8859-1/XLC_LOCALE:			es_UY.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_UY.ISO8859-15
+iso8859-1/XLC_LOCALE:			es_VE.ISO8859-1
+iso8859-15/XLC_LOCALE:			es_VE.ISO8859-15
+iso8859-1/XLC_LOCALE:			et_EE.ISO8859-1
+iso8859-4/XLC_LOCALE: 			et_EE.ISO8859-4
+iso8859-13/XLC_LOCALE: 			et_EE.ISO8859-13
+iso8859-15/XLC_LOCALE:			et_EE.ISO8859-15
+iso8859-1/XLC_LOCALE:			eu_ES.ISO8859-1
+iso8859-15/XLC_LOCALE:			eu_ES.ISO8859-15
+isiri-3342/XLC_LOCALE:			fa_IR.ISIRI-3342
+iso8859-1/XLC_LOCALE:			fi_FI.ISO8859-1
+iso8859-15/XLC_LOCALE:			fi_FI.ISO8859-15
+iso8859-1/XLC_LOCALE:			fo_FO.ISO8859-1
+iso8859-15/XLC_LOCALE:			fo_FO.ISO8859-15
+iso8859-1/XLC_LOCALE:			fr_BE.ISO8859-1
+iso8859-15/XLC_LOCALE:			fr_BE.ISO8859-15
+iso8859-1/XLC_LOCALE:			fr_CA.ISO8859-1
+iso8859-15/XLC_LOCALE:			fr_CA.ISO8859-15
+iso8859-1/XLC_LOCALE:			fr_CH.ISO8859-1
+iso8859-15/XLC_LOCALE:			fr_CH.ISO8859-15
+iso8859-1/XLC_LOCALE:			fr_FR.ISO8859-1
+iso8859-15/XLC_LOCALE:			fr_FR.ISO8859-15
+iso8859-1/XLC_LOCALE:			fr_LU.ISO8859-1
+iso8859-15/XLC_LOCALE:			fr_LU.ISO8859-15
+iso8859-1/XLC_LOCALE:			ga_IE.ISO8859-1
+iso8859-14/XLC_LOCALE:			ga_IE.ISO8859-14
+iso8859-15/XLC_LOCALE:			ga_IE.ISO8859-15
+iso8859-1/XLC_LOCALE:			gd_GB.ISO8859-1
+iso8859-14/XLC_LOCALE:			gd_GB.ISO8859-14
+iso8859-15/XLC_LOCALE:			gd_GB.ISO8859-15
+iso8859-1/XLC_LOCALE:			gl_ES.ISO8859-1
+iso8859-15/XLC_LOCALE:			gl_ES.ISO8859-15
+iso8859-1/XLC_LOCALE:			gv_GB.ISO8859-1
+iso8859-14/XLC_LOCALE:			gv_GB.ISO8859-14
+iso8859-15/XLC_LOCALE:			gv_GB.ISO8859-15
+iso8859-8/XLC_LOCALE:			he_IL.ISO8859-8
+microsoft-cp1255/XLC_LOCALE:		he_IL.CP1255
+iscii-dev/XLC_LOCALE:			hi_IN.ISCII-DEV
+iso8859-2/XLC_LOCALE:			hr_HR.ISO8859-2
+iso8859-2/XLC_LOCALE:			hu_HU.ISO8859-2
+armscii-8/XLC_LOCALE:			hy_AM.ARMSCII-8
+iso8859-1/XLC_LOCALE:			id_ID.ISO8859-1
+iso8859-1/XLC_LOCALE:			id_ID.ISO8859-15
+iso8859-1/XLC_LOCALE:			is_IS.ISO8859-1
+iso8859-15/XLC_LOCALE:			is_IS.ISO8859-15
+iso8859-1/XLC_LOCALE:			it_CH.ISO8859-1
+iso8859-15/XLC_LOCALE:			it_CH.ISO8859-15
+iso8859-1/XLC_LOCALE:			it_IT.ISO8859-1
+iso8859-15/XLC_LOCALE:			it_IT.ISO8859-15
+ja/XLC_LOCALE:				ja_JP.eucJP
+ja.SJIS/XLC_LOCALE:			ja_JP.SJIS
+ja.JIS/XLC_LOCALE:			ja_JP.JIS7
+georgian-academy/XLC_LOCALE:		ka_GE.GEORGIAN-ACADEMY
+georgian-ps/XLC_LOCALE:			ka_GE.GEORGIAN-PS
+iso8859-1/XLC_LOCALE:			kl_GL.ISO8859-1
+iso8859-15/XLC_LOCALE:			kl_GL.ISO8859-15
+ko/XLC_LOCALE:				ko_KR.eucKR
+iso8859-1/XLC_LOCALE:			kw_GB.ISO8859-1
+iso8859-14/XLC_LOCALE:			kw_GB.ISO8859-14
+iso8859-15/XLC_LOCALE:			kw_GB.ISO8859-15
+ibm-cp1133/XLC_LOCALE:			lo_LA.IBM-CP1133
+mulelao-1/XLC_LOCALE:			lo_LA.MULELAO-1
+iso8859-4/XLC_LOCALE:			lt_LT.ISO8859-4
+iso8859-13/XLC_LOCALE:			lt_LT.ISO8859-13
+iso8859-4/XLC_LOCALE:			lv_LV.ISO8859-4
+iso8859-13/XLC_LOCALE:			lv_LV.ISO8859-13
+iso8859-13/XLC_LOCALE:			mi_NZ.ISO8859-13
+iso8859-5/XLC_LOCALE:			mk_MK.ISO8859-5
+microsoft-cp1251/XLC_LOCALE:		mk_MK.CP1251
+iso8859-1/XLC_LOCALE:			ms_MY.ISO8859-1
+iso8859-3/XLC_LOCALE:			mt_MT.ISO8859-3
+iso8859-1/XLC_LOCALE:			nb_NO.ISO8859-1
+iso8859-1/XLC_LOCALE:			nb_NO.ISO8859-15
+iso8859-1/XLC_LOCALE:			nl_BE.ISO8859-1
+iso8859-15/XLC_LOCALE:			nl_BE.ISO8859-15
+iso8859-1/XLC_LOCALE:			nl_NL.ISO8859-1
+iso8859-15/XLC_LOCALE:			nl_NL.ISO8859-15
+iso8859-1/XLC_LOCALE:			nn_NO.ISO8859-1
+iso8859-1/XLC_LOCALE:			nn_NO.ISO8859-15
+iso8859-1/XLC_LOCALE:			no_NO.ISO8859-1
+iso8859-1/XLC_LOCALE:			no_NO.ISO8859-15
+iso8859-1/XLC_LOCALE:			nr_ZA.ISO8859-1
+iso8859-15/XLC_LOCALE:			nso_ZA.ISO8859-15
+iso8859-1/XLC_LOCALE:			ny_NO.ISO8859-1
+iso8859-1/XLC_LOCALE:			ny_NO.ISO8859-15
+iso8859-1/XLC_LOCALE:			oc_FR.ISO8859-1
+iso8859-15/XLC_LOCALE:			oc_FR.ISO8859-15
+iso8859-1/XLC_LOCALE:			pd_DE.ISO8859-1
+iso8859-15/XLC_LOCALE:			pd_DE.ISO8859-15
+iso8859-1/XLC_LOCALE:			pd_US.ISO8859-1
+iso8859-15/XLC_LOCALE:			pd_US.ISO8859-15
+iso8859-1/XLC_LOCALE:			ph_PH.ISO8859-1
+iso8859-2/XLC_LOCALE:			pl_PL.ISO8859-2
+iso8859-1/XLC_LOCALE:			pp_AN.ISO8859-1
+iso8859-1/XLC_LOCALE:			pt_BR.ISO8859-1
+iso8859-15/XLC_LOCALE:			pt_BR.ISO8859-15
+iso8859-1/XLC_LOCALE:			pt_PT.ISO8859-1
+iso8859-15/XLC_LOCALE:			pt_PT.ISO8859-15
+iso8859-2/XLC_LOCALE:			ro_RO.ISO8859-2
+iso8859-5/XLC_LOCALE: 			ru_RU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: 		ru_RU.CP1251
+koi8-r/XLC_LOCALE: 			ru_RU.KOI8-R
+microsoft-cp1251/XLC_LOCALE: 		ru_UA.CP1251
+koi8-u/XLC_LOCALE:			ru_UA.KOI8-U
+iso8859-1/XLC_LOCALE:           rw_RW.ISO8859-1
+iso8859-2/XLC_LOCALE: 			sh_YU.ISO8859-2
+iso8859-2/XLC_LOCALE: 			sk_SK.ISO8859-2
+iso8859-2/XLC_LOCALE: 			sl_SI.ISO8859-2
+iso8859-2/XLC_LOCALE: 			sq_AL.ISO8859-2
+iso8859-2/XLC_LOCALE:			sr_YU.ISO8859-2
+iso8859-5/XLC_LOCALE:			sr_YU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE:		sr_YU.CP1251
+iso8859-1/XLC_LOCALE:			ss_ZA.ISO8859-1
+iso8859-1/XLC_LOCALE:			st_ZA.ISO8859-1
+iso8859-1/XLC_LOCALE:			sv_FI.ISO8859-1
+iso8859-15/XLC_LOCALE:			sv_FI.ISO8859-15
+iso8859-1/XLC_LOCALE:			sv_SE.ISO8859-1
+iso8859-15/XLC_LOCALE:			sv_SE.ISO8859-15
+tscii-0/XLC_LOCALE:			ta_IN.TSCII-0
+koi8-c/XLC_LOCALE:			tg_TJ.KOI8-C
+th_TH/XLC_LOCALE:			th_TH.TIS620
+iso8859-11/XLC_LOCALE:			th_TH.ISO8859-11
+iso8859-1/XLC_LOCALE: 			tl_PH.ISO8859-1
+iso8859-15/XLC_LOCALE:			tn_ZA.ISO8859-15
+iso8859-9/XLC_LOCALE:			tr_TR.ISO8859-9
+iso8859-1/XLC_LOCALE:			ts_ZA.ISO8859-1
+tatar-cyr/XLC_LOCALE:			tt_RU.TATAR-CYR
+koi8-c/XLC_LOCALE:			tt_RU.KOI8-C
+iso8859-5/XLC_LOCALE: 			uk_UA.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: 		uk_UA.CP1251
+koi8-u/XLC_LOCALE:			uk_UA.KOI8-U
+microsoft-cp1256/XLC_LOCALE:		ur_PK.CP1256
+iso8859-1/XLC_LOCALE:			uz_UZ.ISO8859-1
+vi_VN.tcvn/XLC_LOCALE:			vi_VN.TCVN
+vi_VN.viscii/XLC_LOCALE:		vi_VN.VISCII
+iso8859-1/XLC_LOCALE:			wa_BE.ISO8859-1
+iso8859-15/XLC_LOCALE:			wa_BE.ISO8859-15
+iso8859-1/XLC_LOCALE:			xh_ZA.ISO8859-1
+microsoft-cp1255/XLC_LOCALE:		yi_US.CP1255
+zh_CN/XLC_LOCALE:			zh_CN.eucCN
+zh_CN/XLC_LOCALE:			zh_CN.gb2312
+zh_CN.gbk/XLC_LOCALE:			zh_CN.gbk
+zh_CN.gb18030/XLC_LOCALE:		zh_CN.gb18030
+zh_HK.big5/XLC_LOCALE:			zh_HK.big5
+zh_HK.big5hkscs/XLC_LOCALE:		zh_HK.big5hkscs
+zh_TW.big5/XLC_LOCALE:			zh_TW.big5
+zh_TW/XLC_LOCALE:			zh_TW.eucTW
+iso8859-1/XLC_LOCALE:			zu_ZA.ISO8859-1
+# Note: The UTF-8 locales don't work correctly yet. Work in progress.
+en_US.UTF-8/XLC_LOCALE:			af_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			am_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_AA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_AE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_BH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_DZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_EG.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 ar_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_IQ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_JO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_KW.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_LB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_LY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_MA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_OM.UTF-8
+en_US.UTF-8/XLC_LOCALE:			bs_BA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_QA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_SA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_SD.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_SY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_TN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ar_YE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			as_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ast_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE:			az_AZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			be_BY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			be_BY.UTF-8@latin
+en_US.UTF-8/XLC_LOCALE:			bg_BG.UTF-8
+en_US.UTF-8/XLC_LOCALE:			bn_BD.UTF-8
+en_US.UTF-8/XLC_LOCALE:			bn_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 bo_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			br_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ca_AD.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ca_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ca_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ca_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			cs_CZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			cy_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			da_DK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_AT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_LI.UTF-8
+en_US.UTF-8/XLC_LOCALE:			de_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			el_CY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			el_GR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_AU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_BW.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_BZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_DK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_EN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_HK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_JM.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_MT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_SG.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_TT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_UK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_US.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			en_ZW.UTF-8
+en_US.UTF-8/XLC_LOCALE:			eo_EO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			eo_XX.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_AR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_BO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_CL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_CO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_CR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_DO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_EC.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_GT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_HN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_MX.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_NI.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_PA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_PE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_PR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_PY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_SV.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_US.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_UY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			es_VE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			et_EE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			eu_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fa_IR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fi_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fo_FO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fr_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fr_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fr_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fr_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			fr_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ga_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			gd_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			gl_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE:			gu_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			gv_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			he_IL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			hi_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 hne_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			hr_HR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			hu_HU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			hy_AM.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ia.UTF-8
+en_US.UTF-8/XLC_LOCALE:			id_ID.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ie.UTF-8
+en_US.UTF-8/XLC_LOCALE:			is_IS.UTF-8
+en_US.UTF-8/XLC_LOCALE:			it_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			it_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			iu_CA.UTF-8
+ja_JP.UTF-8/XLC_LOCALE:			ja_JP.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ka_GE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			kk_KZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			kl_GL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			km_KH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			kn_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 ks_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 ks_IN.UTF-8@devanagari
+ko_KR.UTF-8/XLC_LOCALE:			ko_KR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ku_TR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			kw_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ky_KG.UTF-8
+en_US.UTF-8/XLC_LOCALE:			lo_LA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			lt_LT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			lv_LV.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 mai_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			mi_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			mk_MK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ml_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			mr_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ms_MY.UTF-8
+en_US.UTF-8/XLC_LOCALE:			mt_MT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nl_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nl_NL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nb_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nn_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			no_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nr_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			nso_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ny_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			oc_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			or_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pa_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pa_PK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pd_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pd_US.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ph_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pl_PL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			pp_AN.UTF-8
+pt_BR.UTF-8/XLC_LOCALE:			pt_BR.UTF-8
+pt_PT.UTF-8/XLC_LOCALE:			pt_PT.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ro_RO.UTF-8
+ru_RU.UTF-8/XLC_LOCALE:			ru_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ru_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE:         	rw_RW.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 sa_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 sd_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 sd_IN.UTF-8@devanagari
+en_US.UTF-8/XLC_LOCALE:			se_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sh_BA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sh_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			si_LK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sk_SK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sl_SI.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sq_AL.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sr_ME.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sr_RS.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sr_RS.UTF-8@latin
+en_US.UTF-8/XLC_LOCALE:			sr_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ss_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			st_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sv_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE:			sv_SE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ta_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			te_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			tg_TJ.UTF-8
+th_TH.UTF-8/XLC_LOCALE:			th_TH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ti_ER.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ti_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE:			tl_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE:			tn_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			tr_TR.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ts_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			tt_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE:			uk_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ur_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ur_PK.UTF-8
+en_US.UTF-8/XLC_LOCALE:			uz_UZ.UTF-8
+en_US.UTF-8/XLC_LOCALE:			ve_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			vi_VN.UTF-8
+en_US.UTF-8/XLC_LOCALE:			wa_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE:			xh_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE:			yi_US.UTF-8
+en_US.UTF-8/XLC_LOCALE:                 ne_NP.UTF-8
+zh_CN.UTF-8/XLC_LOCALE:			zh_CN.UTF-8
+zh_HK.UTF-8/XLC_LOCALE:			zh_HK.UTF-8
+zh_CN.UTF-8/XLC_LOCALE:			zh_SG.UTF-8
+zh_TW.UTF-8/XLC_LOCALE:			zh_TW.UTF-8
+en_US.UTF-8/XLC_LOCALE:			zu_ZA.UTF-8
diff --git a/test/data/symbols/compose b/test/data/symbols/compose
new file mode 100644
index 0000000..08446bf
--- /dev/null
+++ b/test/data/symbols/compose
@@ -0,0 +1,89 @@
+partial modifier_keys
+xkb_symbols "ralt" {
+    key <RALT>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "lwin" {
+    key <LWIN>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "lwin-altgr" {
+    key <LWIN>	{ type[Group1]="FOUR_LEVEL", [ Super_L, Super_L, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "rwin" {
+    key <RWIN>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "rwin-altgr" {
+    key <RWIN>	{ type[Group1]="FOUR_LEVEL", [ Super_R, Super_R, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "menu" {
+    key <MENU>	{ type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "menu-altgr" {
+    key <MENU>	{ type[Group1]="FOUR_LEVEL", [ Menu, Menu, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "rctrl" {
+    key <RCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "rctrl-altgr" {
+    key <RCTL> { type[Group1]="FOUR_LEVEL", [ Control_R, Control_R, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "lctrl" {
+    key <LCTL> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "lctrl-altgr" {
+    key <LCTL> { type[Group1]="FOUR_LEVEL", [ Control_L, Control_L, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "caps" {
+    key <CAPS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "caps-altgr" {
+    key <CAPS> { type[Group1]="FOUR_LEVEL", [ Caps_Lock, Caps_Lock, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "102" {
+    key <LSGT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "102-altgr" {
+    key <LSGT> { type[Group1]="FOUR_LEVEL", [ less, greater, Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "paus" {
+    key <PAUS> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "prsc" {
+    key <PRSC> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
+
+partial modifier_keys
+xkb_symbols "sclk" {
+    key <SCLK> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
+};
diff --git a/test/data/sync.sh b/test/data/sync.sh
index 10001bc..2cbcc0a 100755
--- a/test/data/sync.sh
+++ b/test/data/sync.sh
@@ -1,6 +1,8 @@
 #/bin/sh
+set -euo pipefail
 
 XKBCONFIGROOT='/usr/share/X11/xkb'
+XLOCALEDIR='/usr/share/X11/locale'
 
 if [ ! -d test/data ]; then
     echo "Run this from the top source dir"
@@ -67,3 +69,12 @@
 ; do
     cp "$XKBCONFIGROOT/$file" "test/data/$file"
 done
+
+for file in \
+    compose.dir \
+    locale.alias \
+    locale.dir \
+    en_US.UTF-8/Compose \
+; do
+    cp "$XLOCALEDIR/$file" "test/data/locale/$file"
+done
diff --git a/test/keysym.c b/test/keysym.c
index bb2ec28..2c98c24 100644
--- a/test/keysym.c
+++ b/test/keysym.c
@@ -76,12 +76,13 @@
     if (ret <= 0)
         return ret;
 
+    assert(expected != NULL);
+
     fprintf(stderr, "Expected keysym %#x -> %s (%u bytes)\n", keysym, expected,
             (unsigned) strlen(expected));
     fprintf(stderr, "Received keysym %#x -> %s (%u bytes)\n\n", keysym, s,
             (unsigned) strlen(s));
 
-    assert(expected != NULL);
     return streq(s, expected);
 }
 
@@ -135,7 +136,18 @@
     assert(test_string("XF86_Switch_VT_5", 0x1008FE05));
     assert(test_string("VoidSymbol", 0xFFFFFF));
     assert(test_string("U4567", 0x1004567));
+    assert(test_string("U+4567", XKB_KEY_NoSymbol));
+    assert(test_string("U+4567ffff", XKB_KEY_NoSymbol));
+    assert(test_string("U+4567ffffff", XKB_KEY_NoSymbol));
+    assert(test_string("U   4567", XKB_KEY_NoSymbol));
+    assert(test_string("U  +4567", XKB_KEY_NoSymbol));
     assert(test_string("0x10203040", 0x10203040));
+    assert(test_string("0x102030400", XKB_KEY_NoSymbol));
+    assert(test_string("0x010203040", XKB_KEY_NoSymbol));
+    assert(test_string("0x+10203040", XKB_KEY_NoSymbol));
+    assert(test_string("0x  10203040", XKB_KEY_NoSymbol));
+    assert(test_string("0x  +10203040", XKB_KEY_NoSymbol));
+    assert(test_string("0x-10203040", XKB_KEY_NoSymbol));
     assert(test_string("a", 0x61));
     assert(test_string("A", 0x41));
     assert(test_string("ch", 0xfea0));
@@ -144,6 +156,10 @@
     assert(test_string("THORN", 0x00de));
     assert(test_string("Thorn", 0x00de));
     assert(test_string("thorn", 0x00fe));
+    /* Max keysym. */
+    assert(test_string("0xffffffff", 0xffffffff));
+    /* Outside range. */
+    assert(test_string("0x100000000", XKB_KEY_NoSymbol));
 
     assert(test_keysym(0x1008FF56, "XF86Close"));
     assert(test_keysym(0x0, "NoSymbol"));
@@ -173,6 +189,9 @@
     assert(test_casestring("Thorn", 0x00fe));
     assert(test_casestring("thorn", 0x00fe));
 
+    assert(test_string("", XKB_KEY_NoSymbol));
+    assert(test_casestring("", XKB_KEY_NoSymbol));
+
     assert(test_utf8(XKB_KEY_y, "y"));
     assert(test_utf8(XKB_KEY_u, "u"));
     assert(test_utf8(XKB_KEY_m, "m"));
diff --git a/test/registry.c b/test/registry.c
index fab3b69..71a480f 100644
--- a/test/registry.c
+++ b/test/registry.c
@@ -56,6 +56,8 @@
     const char *variant;
     const char *brief;
     const char *description;
+    const char *iso639[3];  /* language list (iso639 three letter codes), 3 is enough for our test  */
+    const char *iso3166[3]; /* country list (iso3166 two letter codes), 3 is enough for our tests */
 };
 
 struct test_option {
@@ -76,7 +78,9 @@
                    const char *name,
                    const char *vendor,
                    const char *brief,
-                   const char *description)
+                   const char *description,
+                   const char * const iso639[3],
+                   const char * const iso3166[3])
 {
     fprintf(fp, "  <configItem>\n"
                 "    <name>%s</name>\n", name);
@@ -86,6 +90,27 @@
         fprintf(fp, "    <description>%s</description>\n", description);
     if (vendor)
         fprintf(fp, "    <vendor>%s</vendor>\n", vendor);
+    if (iso3166 && iso3166[0]) {
+        fprintf(fp, "    <countryList>\n");
+        for (int i = 0; i < 3; i++) {
+            const char *iso = iso3166[i];
+            if (!iso)
+                break;
+            fprintf(fp, "        <iso3166Id>%s</iso3166Id>\n", iso);
+        }
+        fprintf(fp, "    </countryList>\n");
+    }
+    if (iso639 && iso639[0]) {
+        fprintf(fp, "    <languageList>\n");
+        for (int i = 0; i < 3; i++) {
+            const char *iso = iso639[i];
+            if (!iso)
+                break;
+            fprintf(fp, "        <iso639Id>%s</iso639Id>\n", iso);
+        }
+        fprintf(fp, "    </languageList>\n");
+    }
+
     fprintf(fp, "  </configItem>\n");
 }
 
@@ -131,7 +156,7 @@
 
         for (const struct test_model *m = test_models; m->name; m++) {
             fprintf(fp, "<model>\n");
-            fprint_config_item(fp, m->name, m->vendor, NULL, m->description);
+            fprint_config_item(fp, m->name, m->vendor, NULL, m->description, NULL, NULL);
             fprintf(fp, "</model>\n");
         }
         fprintf(fp, "</modelList>\n");
@@ -149,14 +174,13 @@
 
         while (l->name) {
             fprintf(fp, "<layout>\n");
-            fprint_config_item(fp, l->name, NULL, l->brief, l->description);
+            fprint_config_item(fp, l->name, NULL, l->brief, l->description, l->iso639, l->iso3166);
 
             if (next->name && streq(next->name, l->name)) {
                 fprintf(fp, "<variantList>\n");
                 do {
                     fprintf(fp, "<variant>\n");
-                    fprint_config_item(fp, next->variant, NULL, next->brief,
-                                       next->description);
+                    fprint_config_item(fp, next->variant, NULL, next->brief, next->description, next->iso639, next->iso3166);
                     fprintf(fp, "</variant>\n");
                     l = next;
                     next++;
@@ -175,10 +199,10 @@
         for (const struct test_option_group *g = test_groups; g->name; g++) {
             fprintf(fp, "<group allowMultipleSelection=\"%s\">\n",
                     g->allow_multiple_selection ? "true" : "false");
-            fprint_config_item(fp, g->name, NULL, NULL, g->description);
+            fprint_config_item(fp, g->name, NULL, NULL, g->description, NULL, NULL);
             for (const struct test_option *o = g->options; o->name; o++) {
                 fprintf(fp, "  <option>\n");
-                fprint_config_item(fp, o->name, NULL, NULL, o->description);
+                fprint_config_item(fp, o->name, NULL, NULL, o->description, NULL, NULL);
                 fprintf(fp, "</option>\n");
             }
             fprintf(fp, "</group>\n");
@@ -282,18 +306,21 @@
     va_list args;
     const char *name;
     int idx = 0;
+    bool rc = false;
 
     va_start(args, ctx);
     name = va_arg(args, const char *);
     while(name) {
         assert(++idx < 20); /* safety guard */
         if (!find_model(ctx, name))
-            return false;
+            goto out;
         name = va_arg(args, const char *);
     };
 
+    rc = true;
+out:
     va_end(args);
-    return true;
+    return rc;
 }
 
 static struct rxkb_layout *
@@ -326,6 +353,7 @@
     va_list args;
     const char *name, *variant;
     int idx = 0;
+    bool rc = false;
 
     va_start(args, ctx);
     name = va_arg(args, const char *);
@@ -333,14 +361,16 @@
     while(name) {
         assert(++idx < 20); /* safety guard */
         if (!find_layout(ctx, name, variant))
-            return false;
+            goto out;
         name = va_arg(args, const char *);
         if (name)
             variant = va_arg(args, const char *);
     };
 
+    rc = true;
+out:
     va_end(args);
-    return true;
+    return rc;
 }
 
 static struct rxkb_option_group *
@@ -396,6 +426,7 @@
     va_list args;
     const char *grp, *opt;
     int idx = 0;
+    bool rc = false;
 
     va_start(args, ctx);
     grp = va_arg(args, const char *);
@@ -403,14 +434,16 @@
     while(grp) {
         assert(++idx < 20); /* safety guard */
         if (!find_option(ctx, grp, opt))
-            return false;
+            goto out;
         grp = va_arg(args, const char *);
         if (grp)
             opt = va_arg(args, const char *);
     };
 
+    rc = true;
+out:
     va_end(args);
-    return true;
+    return rc;
 }
 
 static bool
@@ -434,6 +467,9 @@
 static bool
 cmp_layouts(struct test_layout *tl, struct rxkb_layout *l)
 {
+    struct rxkb_iso3166_code *iso3166 = NULL;
+    struct rxkb_iso639_code *iso639 = NULL;
+
     if (!tl || !l)
         return false;
 
@@ -449,6 +485,36 @@
     if (!streq_null(tl->description, rxkb_layout_get_description(l)))
         return false;
 
+    iso3166 = rxkb_layout_get_iso3166_first(l);
+    for (size_t i = 0; i < sizeof(tl->iso3166); i++) {
+        const char *iso = tl->iso3166[i];
+        if (iso == NULL && iso3166 == NULL)
+            break;
+
+        if (!streq_null(iso, rxkb_iso3166_code_get_code(iso3166)))
+            return false;
+
+        iso3166 = rxkb_iso3166_code_next(iso3166);
+    }
+
+    if (iso3166 != NULL)
+        return false;
+
+    iso639 = rxkb_layout_get_iso639_first(l);
+    for (size_t i = 0; i < sizeof(tl->iso639); i++) {
+        const char *iso = tl->iso639[i];
+        if (iso == NULL && iso639 == NULL)
+            break;
+
+        if (!streq_null(iso, rxkb_iso639_code_get_code(iso639)))
+            return false;
+
+        iso639 = rxkb_iso639_code_next(iso639);
+    }
+
+    if (iso639 != NULL)
+        return false;
+
     return true;
 }
 
@@ -554,6 +620,7 @@
     struct test_layout system_layouts[] =  {
         {"l1", NO_VARIANT, "lbrief1", "ldesc1"},
         {"l1", "v1", "vbrief1", "vdesc1"},
+        {"l1", "v2", NULL, "vdesc2"},
         {NULL},
     };
     struct test_option_group system_groups[] = {
@@ -588,6 +655,11 @@
     assert(cmp_layouts(&system_layouts[1], l));
     rxkb_layout_unref(l);
 
+    l = fetch_layout(ctx, "l1", "v2");
+    struct test_layout expected = {"l1", "v2", "lbrief1", "vdesc2"};
+    assert(cmp_layouts(&expected, l));
+    rxkb_layout_unref(l);
+
     g = fetch_option_group(ctx, "grp1");
     assert(cmp_option_groups(&system_groups[0], g, CMP_EXACT));
     rxkb_option_group_unref(g);
@@ -600,6 +672,107 @@
 }
 
 static void
+test_load_languages(void)
+{
+    struct test_model system_models[] =  {
+        {"m1", "vendor1", "desc1"},
+        {NULL},
+    };
+    struct test_layout system_layouts[] =  {
+        {"l1", NO_VARIANT, "lbrief1", "ldesc1",
+            .iso639 = { "abc", "def" },
+            .iso3166 = { "uv", "wx" }},
+        {"l1", "v1", "vbrief1", "vdesc1",
+            .iso639 = {"efg"},
+            .iso3166 = {"yz"}},
+        {"l2", NO_VARIANT, "lbrief1", "ldesc1",
+            .iso639 = { "hij", "klm" },
+            .iso3166 = { "op", "qr" }},
+        {"l2", "v2", "lbrief1", "ldesc1",
+            .iso639 = { NULL }, /* inherit from parent */
+            .iso3166 = { NULL }},  /* inherit from parent */
+        {NULL},
+    };
+    struct test_option_group system_groups[] = {
+        {"grp1", "gdesc1", true,
+          { {"grp1:1", "odesc11"}, {"grp1:2", "odesc12"} } },
+        { NULL },
+    };
+    struct rxkb_context *ctx;
+    struct rxkb_layout *l;
+    struct rxkb_iso3166_code *iso3166;
+    struct rxkb_iso639_code *iso639;
+
+    ctx = test_setup_context(system_models, NULL,
+                             system_layouts, NULL,
+                             system_groups, NULL);
+
+    l = fetch_layout(ctx, "l1", NO_VARIANT);
+    assert(cmp_layouts(&system_layouts[0], l));
+    rxkb_layout_unref(l);
+
+    l = fetch_layout(ctx, "l1", "v1");
+    assert(cmp_layouts(&system_layouts[1], l));
+    rxkb_layout_unref(l);
+
+    l = fetch_layout(ctx, "l2", "v2");
+    iso3166 = rxkb_layout_get_iso3166_first(l);
+    assert(streq(rxkb_iso3166_code_get_code(iso3166), "op"));
+    iso3166 = rxkb_iso3166_code_next(iso3166);
+    assert(streq(rxkb_iso3166_code_get_code(iso3166), "qr"));
+
+    iso639 = rxkb_layout_get_iso639_first(l);
+    assert(streq(rxkb_iso639_code_get_code(iso639), "hij"));
+    iso639 = rxkb_iso639_code_next(iso639);
+    assert(streq(rxkb_iso639_code_get_code(iso639), "klm"));
+
+    rxkb_layout_unref(l);
+    rxkb_context_unref(ctx);
+}
+
+static void
+test_load_invalid_languages(void)
+{
+    struct test_model system_models[] =  {
+        {"m1", "vendor1", "desc1"},
+        {NULL},
+    };
+    struct test_layout system_layouts[] =  {
+        {"l1", NO_VARIANT, "lbrief1", "ldesc1",
+            .iso639 = { "ab", "def" },
+            .iso3166 = { "uvw", "xz" }},
+        {NULL},
+    };
+    struct test_option_group system_groups[] = {
+        {"grp1", "gdesc1", true,
+          { {"grp1:1", "odesc11"}, {"grp1:2", "odesc12"} } },
+        { NULL },
+    };
+    struct rxkb_context *ctx;
+    struct rxkb_layout *l;
+    struct rxkb_iso3166_code *iso3166;
+    struct rxkb_iso639_code *iso639;
+
+    ctx = test_setup_context(system_models, NULL,
+                             system_layouts, NULL,
+                             system_groups, NULL);
+
+    l = fetch_layout(ctx, "l1", NO_VARIANT);
+    /* uvw is invalid, we expect 2 letters, verify it was ignored */
+    iso3166 = rxkb_layout_get_iso3166_first(l);
+    assert(streq(rxkb_iso3166_code_get_code(iso3166), "xz"));
+    assert(rxkb_iso3166_code_next(iso3166) == NULL);
+
+    /* ab is invalid, we expect 3 letters, verify it was ignored */
+    iso639 = rxkb_layout_get_iso639_first(l);
+    assert(streq(rxkb_iso639_code_get_code(iso639), "def"));
+    assert(rxkb_iso639_code_next(iso639) == NULL);
+    rxkb_layout_unref(l);
+
+    rxkb_context_unref(ctx);
+}
+
+static void
 test_popularity(void)
 {
     struct test_layout system_layouts[] =  {
@@ -840,6 +1013,8 @@
     test_load_full();
     test_load_merge();
     test_load_merge_no_overwrite();
+    test_load_languages();
+    test_load_invalid_languages();
     test_popularity();
 
     return 0;
diff --git a/test/test-keysym.py b/test/test-keysym.py
new file mode 100755
index 0000000..d237f31
--- /dev/null
+++ b/test/test-keysym.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+#
+# This script creates a custom layout, overriding the TDLE key with the first
+# argument given.
+
+import argparse
+import tempfile
+from pathlib import Path
+import subprocess
+import os
+import re
+import sys
+
+# Template to force our key to TLDE
+template = """
+default
+xkb_symbols "basic" {{
+    include "us(basic)"
+    replace key <TLDE> {{ [ {} ] }};
+}};
+"""
+
+parser = argparse.ArgumentParser(
+    description='Tool to verify whether a keysym is resolved'
+)
+parser.add_argument('keysym', type=str, help='XKB keysym')
+parser.add_argument('--tool', type=str, nargs=1,
+                    default=['xkbcli', 'compile-keymap'],
+                    help='Full path to the xkbcli-compile-keymap tool')
+args = parser.parse_args()
+
+with tempfile.TemporaryDirectory() as tmpdir:
+    symfile = Path(tmpdir) / "symbols" / "keytest"
+    symfile.parent.mkdir()
+    with symfile.open(mode='w') as f:
+        f.write(template.format(args.keysym))
+
+    try:
+        cmd = [
+            *args.tool,
+            '--layout', 'keytest',
+        ]
+
+        env = os.environ.copy()
+        env['XKB_CONFIG_EXTRA_PATH'] = tmpdir
+
+        result = subprocess.run(cmd, env=env, capture_output=True,
+                                universal_newlines=True)
+        if result.returncode != 0:
+            print('ERROR: Failed to compile:')
+            print(result.stderr)
+            sys.exit(1)
+
+        # grep for TLDE actually being remapped
+        for l in result.stdout.split('\n'):
+            match = re.match(r'\s+key \<TLDE\>\s+{\s+\[\s+(?P<keysym>\w+)\s+\]\s+}', l)
+            if match:
+                if args.keysym == match.group('keysym'):
+                    sys.exit(0)
+                elif match.group('keysym') == 'NoSymbol':
+                    print('ERROR: key {} not resolved:'.format(args.keysym), l)
+                else:
+                    print('ERROR: key {} mapped to wrong key:'.format(args.keysym), l)
+                sys.exit(1)
+
+        print(result.stdout)
+        print('ERROR: above keymap is missing key mapping for {}'.format(args.keysym))
+        sys.exit(1)
+    except FileNotFoundError as err:
+        print('ERROR: invalid or missing tool: {}'.format(err))
+        sys.exit(1)
diff --git a/test/tool-option-parsing.py b/test/tool-option-parsing.py
index a2072b3..6692d58 100755
--- a/test/tool-option-parsing.py
+++ b/test/tool-option-parsing.py
@@ -31,8 +31,19 @@
 import unittest
 
 
-top_builddir = os.environ['top_builddir']
-top_srcdir = os.environ['top_srcdir']
+try:
+    top_builddir = os.environ['top_builddir']
+    top_srcdir = os.environ['top_srcdir']
+except KeyError:
+    print('Required environment variables not found: top_srcdir/top_builddir', file=sys.stderr)
+    from pathlib import Path
+    top_srcdir = '.'
+    try:
+        top_builddir = next(Path('.').glob('**/meson-logs/')).parent
+    except StopIteration:
+        sys.exit(1)
+    print('Using srcdir "{}", builddir "{}"'.format(top_srcdir, top_builddir), file=sys.stderr)
+
 
 logging.basicConfig(level=logging.DEBUG)
 logger = logging.getLogger('test')
@@ -65,10 +76,11 @@
     xkbcli_tool = 'xkbcli'
     subtool = None
 
-    def __init__(self, subtool=None, skipIf=()):
+    def __init__(self, subtool=None, skipIf=(), skipError=()):
         self.tool_path = top_builddir
         self.subtool = subtool
         self.skipIf = skipIf
+        self.skipError = skipError
 
     def run_command(self, args):
         for condition, reason in self.skipIf:
@@ -84,7 +96,11 @@
 
     def run_command_success(self, args):
         rc, stdout, stderr = self.run_command(args)
-        assert rc == 0, (stdout, stderr)
+        if rc != 0:
+            for testfunc, reason in self.skipError:
+                if testfunc(rc, stdout, stderr):
+                    raise unittest.SkipTest(reason)
+        assert rc == 0, (rc, stdout, stderr)
         return stdout, stderr
 
     def run_command_invalid(self, args):
@@ -121,7 +137,11 @@
             (not int(os.getenv('HAVE_XKBCLI_INTERACTIVE_EVDEV', '1')), 'evdev not enabled'),
             (not os.path.exists('/dev/input/event0'), 'event node required'),
             (not os.access('/dev/input/event0', os.R_OK), 'insufficient permissions'),
-        ))
+        ), skipError=(
+            (lambda rc, stdout, stderr: 'Couldn\'t find any keyboards' in stderr,
+                'No keyboards available'),
+        ),
+        )
         cls.xkbcli_interactive_x11 = XkbcliTool('interactive-x11', skipIf=(
             (not int(os.getenv('HAVE_XKBCLI_INTERACTIVE_X11', '1')), 'x11 not enabled'),
             (not os.getenv('DISPLAY'), 'DISPLAY not set'),
@@ -250,7 +270,7 @@
     def test_interactive_evdev_rmlvo(self):
         for rmlvo in rmlvos:
             with self.subTest(rmlvo=rmlvo):
-                self.xkbcli_interactive_evdev.run_command_success(rmlvos)
+                self.xkbcli_interactive_evdev.run_command_success(rmlvo)
 
     def test_interactive_evdev(self):
         # Note: --enable-compose fails if $prefix doesn't have the compose tables
@@ -278,6 +298,10 @@
     with tempfile.TemporaryDirectory() as tmpdir:
         # Use our own test xkeyboard-config copy.
         os.environ['XKB_CONFIG_ROOT'] = top_srcdir + '/test/data'
+        # Use our own X11 locale copy.
+        os.environ['XLOCALEDIR'] = top_srcdir + '/test/data/locale'
+        # Use our own locale.
+        os.environ['LC_CTYPE'] = 'en_US.UTF-8'
         # libxkbcommon has fallbacks when XDG_CONFIG_HOME isn't set so we need
         # to override it with a known (empty) directory. Otherwise our test
         # behavior depends on the system the test is run on.
diff --git a/test/xkeyboard-config-test.py.in b/test/xkeyboard-config-test.py.in
index 001f1b6..66deca4 100755
--- a/test/xkeyboard-config-test.py.in
+++ b/test/xkeyboard-config-test.py.in
@@ -1,14 +1,14 @@
 #!/usr/bin/env python3
 import argparse
+import multiprocessing
 import sys
 import subprocess
 import os
-import io
 import xml.etree.ElementTree as ET
-from multiprocessing import Pool
+from pathlib import Path
 
 
-verbose = True
+verbose = False
 
 DEFAULT_RULES_XML = '@XKB_CONFIG_ROOT@/rules/evdev.xml'
 
@@ -17,74 +17,60 @@
 os.environ['PATH'] = ':'.join([EXTRA_PATH, os.getenv('PATH')])
 
 
-def noop_progress_bar(x, total):
-    return x
+def escape(s):
+    return s.replace('"', '\\"')
 
 
 # The function generating the progress bar (if any).
-progress_bar = noop_progress_bar
-if os.isatty(sys.stdout.fileno()):
-    try:
-        from tqdm import tqdm
-        progress_bar = tqdm
+def create_progress_bar(verbose):
+    def noop_progress_bar(x, total, file=None):
+        return x
 
-        verbose = False
-    except ImportError:
-        pass
-
-
-def xkbcommontool(rmlvo):
-    try:
-        r = rmlvo.get('r', 'evdev')
-        m = rmlvo.get('m', 'pc105')
-        l = rmlvo.get('l', 'us')
-        v = rmlvo.get('v', None)
-        o = rmlvo.get('o', None)
-        args = [
-            'xkbcli-compile-keymap',  # this is run in the builddir
-            '--verbose',
-            '--rules', r,
-            '--model', m,
-            '--layout', l,
-        ]
-        if v is not None:
-            args += ['--variant', v]
-        if o is not None:
-            args += ['--options', o]
-
-        success = True
-        out = io.StringIO()
-        if verbose:
-            print(':: {}'.format(' '.join(args)), file=out)
-
+    progress_bar = noop_progress_bar
+    if not verbose and os.isatty(sys.stdout.fileno()):
         try:
-            output = subprocess.check_output(args, stderr=subprocess.STDOUT,
-                                             universal_newlines=True)
-            if verbose:
-                print(output, file=out)
+            from tqdm import tqdm
+            progress_bar = tqdm
+        except ImportError:
+            pass
 
-            if "unrecognized keysym" in output:
-                for line in output.split('\n'):
-                    if "unrecognized keysym" in line:
-                        print('ERROR: {}'.format(line))
-                success = False
-        except subprocess.CalledProcessError as err:
-            print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
-            print(err.output, file=out)
-            success = False
-
-        return success, out.getvalue()
-    except KeyboardInterrupt:
-        pass
+    return progress_bar
 
 
-def xkbcomp(rmlvo):
-    try:
-        r = rmlvo.get('r', 'evdev')
-        m = rmlvo.get('m', 'pc105')
-        l = rmlvo.get('l', 'us')
-        v = rmlvo.get('v', None)
-        o = rmlvo.get('o', None)
+class Invocation:
+    def __init__(self, r, m, l, v, o):
+        self.command = ""
+        self.rules = r
+        self.model = m
+        self.layout = l
+        self.variant = v
+        self.option = o
+        self.exitstatus = 77  # default to skipped
+        self.error = None
+        self.keymap = None  # The fully compiled keymap
+
+    @property
+    def rmlvo(self):
+        return self.rules, self.model, self.layout, self.variant, self.option
+
+    def __str__(self):
+        s = []
+        rmlvo = [x or "" for x in self.rmlvo]
+        rmlvo = ', '.join([f'"{x}"' for x in rmlvo])
+        s.append(f'- rmlvo: [{rmlvo}]')
+        s.append(f'  cmd: "{escape(self.command)}"')
+        s.append(f'  status: {self.exitstatus}')
+        if self.error:
+            s.append(f'  error: "{escape(self.error.strip())}"')
+        return '\n'.join(s)
+
+    def run(self):
+        raise NotImplementedError
+
+
+class XkbCompInvocation(Invocation):
+    def run(self):
+        r, m, l, v, o = self.rmlvo
         args = ['setxkbmap', '-print']
         if r is not None:
             args.append('-rules')
@@ -102,34 +88,85 @@
             args.append('-option')
             args.append('{}'.format(o))
 
-        success = True
-        out = io.StringIO()
-        if verbose:
-            print(':: {}'.format(' '.join(args)), file=out)
+        xkbcomp_args = ['xkbcomp', '-xkb', '-', '-']
 
-        try:
-            xkbcomp_args = ['xkbcomp', '-xkb', '-', '-']
+        self.command = " ".join(args + ["|"] + xkbcomp_args)
 
-            setxkbmap = subprocess.Popen(args, stdout=subprocess.PIPE)
-            xkbcomp = subprocess.Popen(xkbcomp_args, stdin=setxkbmap.stdout,
+        setxkbmap = subprocess.Popen(args, stdout=subprocess.PIPE,
+                                     stderr=subprocess.PIPE, universal_newlines=True)
+        stdout, stderr = setxkbmap.communicate()
+        if "Cannot open display" in stderr:
+            self.error = stderr
+            self.exitstatus = 90
+        else:
+            xkbcomp = subprocess.Popen(xkbcomp_args, stdin=subprocess.PIPE,
                                        stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                        universal_newlines=True)
-            setxkbmap.stdout.close()
-            stdout, stderr = xkbcomp.communicate()
+            stdout, stderr = xkbcomp.communicate(stdout)
             if xkbcomp.returncode != 0:
-                print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
-                success = False
-            if xkbcomp.returncode != 0 or verbose:
-                print(stdout, file=out)
-                print(stderr, file=out)
+                self.error = "failed to compile keymap"
+                self.exitstatus = xkbcomp.returncode
+            else:
+                self.keymap = stdout
+                self.exitstatus = 0
 
-        # This catches setxkbmap errors.
+
+class XkbcommonInvocation(Invocation):
+    def run(self):
+        r, m, l, v, o = self.rmlvo
+        args = [
+            'xkbcli-compile-keymap',  # this is run in the builddir
+            '--verbose',
+            '--rules', r,
+            '--model', m,
+            '--layout', l,
+        ]
+        if v is not None:
+            args += ['--variant', v]
+        if o is not None:
+            args += ['--options', o]
+
+        self.command = " ".join(args)
+        try:
+            output = subprocess.check_output(args, stderr=subprocess.STDOUT,
+                                             universal_newlines=True)
+            if "unrecognized keysym" in output:
+                for line in output.split('\n'):
+                    if "unrecognized keysym" in line:
+                        self.error = line
+                self.exitstatus = 99  # tool doesn't generate this one
+            else:
+                self.exitstatus = 0
+                self.keymap = output
         except subprocess.CalledProcessError as err:
-            print('ERROR: Failed to compile: {}'.format(' '.join(args)), file=out)
-            print(err.output, file=out)
-            success = False
+            self.error = "failed to compile keymap"
+            self.exitstatus = err.returncode
 
-        return success, out.getvalue()
+
+def xkbcommontool(rmlvo):
+    try:
+        r = rmlvo.get('r', 'evdev')
+        m = rmlvo.get('m', 'pc105')
+        l = rmlvo.get('l', 'us')
+        v = rmlvo.get('v', None)
+        o = rmlvo.get('o', None)
+        tool = XkbcommonInvocation(r, m, l, v, o)
+        tool.run()
+        return tool
+    except KeyboardInterrupt:
+        pass
+
+
+def xkbcomp(rmlvo):
+    try:
+        r = rmlvo.get('r', 'evdev')
+        m = rmlvo.get('m', 'pc105')
+        l = rmlvo.get('l', 'us')
+        v = rmlvo.get('v', None)
+        o = rmlvo.get('o', None)
+        tool = XkbCompInvocation(r, m, l, v, o)
+        tool.run()
+        return tool
     except KeyboardInterrupt:
         pass
 
@@ -159,26 +196,68 @@
     return combos
 
 
-def run(combos, tool, njobs):
+def run(combos, tool, njobs, keymap_output_dir):
+    if keymap_output_dir:
+        keymap_output_dir = Path(keymap_output_dir)
+        try:
+            keymap_output_dir.mkdir()
+        except FileExistsError as e:
+            print(e, file=sys.stderr)
+            return False
+
+    keymap_file = None
+    keymap_file_fd = None
+
     failed = False
-    with Pool(njobs) as p:
+    with multiprocessing.Pool(njobs) as p:
         results = p.imap_unordered(tool, combos)
-        for success, output in progress_bar(results, total=len(combos)):
-            if not success:
+        for invocation in progress_bar(results, total=len(combos), file=sys.stdout):
+            if invocation.exitstatus != 0:
                 failed = True
-            if output:
-                print(output, file=sys.stdout if success else sys.stderr)
+                target = sys.stderr
+            else:
+                target = sys.stdout if verbose else None
+
+            if target:
+                print(invocation, file=target)
+
+            if keymap_output_dir:
+                # we're running through the layouts in a somewhat sorted manner,
+                # so let's keep the fd open until we switch layouts
+                layout = invocation.layout
+                if invocation.variant:
+                    layout += f"({invocation.variant})"
+                fname = keymap_output_dir / layout
+                if fname != keymap_file:
+                    keymap_file = fname
+                    if keymap_file_fd:
+                        keymap_file_fd.close()
+                    keymap_file_fd = open(keymap_file, 'a')
+
+                rmlvo = ', '.join([x or '' for x in invocation.rmlvo])
+                print(f"// {rmlvo}", file=keymap_file_fd)
+                print(invocation.keymap, file=keymap_file_fd)
+                keymap_file_fd.flush()
+
     return failed
 
 
 def main(args):
+    global progress_bar
+    global verbose
+
     tools = {
         'libxkbcommon': xkbcommontool,
         'xkbcomp': xkbcomp,
     }
 
     parser = argparse.ArgumentParser(
-        description='Tool to test all layout/variant/option combinations.'
+        description='''
+                    This tool compiles a keymap for each layout, variant and
+                    options combination in the given rules XML file. The output
+                    of this tool is YAML, use your favorite YAML parser to
+                    extract error messages. Errors are printed to stderr.
+                    '''
     )
     parser.add_argument('path', metavar='/path/to/evdev.xml',
                         nargs='?', type=str,
@@ -190,12 +269,33 @@
     parser.add_argument('--jobs', '-j', type=int,
                         default=os.cpu_count() * 4,
                         help='number of processes to use')
+    parser.add_argument('--verbose', '-v', default=False, action="store_true")
+    parser.add_argument('--keymap-output-dir', default=None, type=str,
+                        help='Directory to print compiled keymaps to')
+    parser.add_argument('--layout', default=None, type=str,
+                        help='Only test the given layout')
+    parser.add_argument('--variant', default=None, type=str,
+                        help='Only test the given variant')
+    parser.add_argument('--option', default=None, type=str,
+                        help='Only test the given option')
+
     args = parser.parse_args()
 
+    verbose = args.verbose
+    keymapdir = args.keymap_output_dir
+    progress_bar = create_progress_bar(verbose)
+
     tool = tools[args.tool]
 
-    combos = parse(args.path)
-    failed = run(combos, tool, args.jobs)
+    if any([args.layout, args.variant, args.option]):
+        combos = [{
+            'l': args.layout,
+            'v': args.variant,
+            'o': args.option,
+        }]
+    else:
+        combos = parse(args.path)
+    failed = run(combos, tool, args.jobs, keymapdir)
     sys.exit(failed)
 
 
@@ -203,4 +303,4 @@
     try:
         main(sys.argv)
     except KeyboardInterrupt:
-        print('Exiting after Ctrl+C')
+        print('# Exiting after Ctrl+C')
diff --git a/tools/compose.c b/tools/compose.c
new file mode 100644
index 0000000..2b3ba64
--- /dev/null
+++ b/tools/compose.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright © 2021 Ran Benita <ran@unusedvar.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "config.h"
+
+#include <getopt.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "xkbcommon/xkbcommon.h"
+#include "xkbcommon/xkbcommon-compose.h"
+
+static void
+usage(FILE *fp, char *progname)
+{
+    fprintf(fp,
+            "Usage: %s [--locale LOCALE | --locale-from-env | --locale-from-setlocale]\n",
+            progname);
+    fprintf(fp,
+            "   --locale - specify the locale directly\n"
+            "   --locale-from-env - get the locale from the LC_ALL/LC_CTYPE/LANG environment variables (falling back to C)\n"
+            "   --locale-from-setlocale - get the locale using setlocale(3)\n"
+    );
+}
+
+int
+main(int argc, char *argv[])
+{
+    int ret = EXIT_FAILURE;
+    struct xkb_context *ctx = NULL;
+    struct xkb_compose_table *compose_table = NULL;
+    const char *locale = NULL;
+    enum options {
+        OPT_LOCALE,
+        OPT_LOCALE_FROM_ENV,
+        OPT_LOCALE_FROM_SETLOCALE,
+    };
+    static struct option opts[] = {
+        {"locale",                required_argument,      0, OPT_LOCALE},
+        {"locale-from-env",       no_argument,            0, OPT_LOCALE_FROM_ENV},
+        {"locale-from-setlocale", no_argument,            0, OPT_LOCALE_FROM_SETLOCALE},
+        {0, 0, 0, 0},
+    };
+
+    setlocale(LC_ALL, "");
+
+    while (1) {
+        int opt;
+        int option_index = 0;
+
+        opt = getopt_long(argc, argv, "h", opts, &option_index);
+        if (opt == -1)
+            break;
+
+        switch (opt) {
+        case OPT_LOCALE:
+            locale = optarg;
+            break;
+        case OPT_LOCALE_FROM_ENV:
+            locale = getenv("LC_ALL");
+            if (!locale)
+                locale = getenv("LC_CTYPE");
+            if (!locale)
+                locale = getenv("LANG");
+            if (!locale)
+                locale = "C";
+            break;
+        case OPT_LOCALE_FROM_SETLOCALE:
+            locale = setlocale(LC_CTYPE, NULL);
+            break;
+        case 'h':
+            usage(stdout, argv[0]);
+            return EXIT_SUCCESS;
+        case '?':
+            usage(stderr, argv[0]);
+            return EXIT_INVALID_USAGE;
+        }
+    }
+    if (locale == NULL) {
+        usage(stderr, argv[0]);
+        return EXIT_INVALID_USAGE;
+    }
+
+    ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS);
+    if (!ctx) {
+        fprintf(stderr, "Couldn't create xkb context\n");
+        goto out;
+    }
+
+    compose_table =
+        xkb_compose_table_new_from_locale(ctx, locale,
+                                          XKB_COMPOSE_COMPILE_NO_FLAGS);
+    if (!compose_table) {
+        fprintf(stderr, "Couldn't create compose from locale\n");
+        goto out;
+    }
+
+    printf("Compiled successfully from locale %s\n", locale);
+
+out:
+    xkb_compose_table_unref(compose_table);
+    xkb_context_unref(ctx);
+
+    return ret;
+}
diff --git a/tools/how-to-type.c b/tools/how-to-type.c
index 0a6f79e..91ebd00 100644
--- a/tools/how-to-type.c
+++ b/tools/how-to-type.c
@@ -24,6 +24,7 @@
 #include "config.h"
 
 #include <getopt.h>
+#include <stdbool.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <errno.h>
@@ -35,9 +36,9 @@
 static void
 usage(const char *argv0, FILE *fp)
 {
-    fprintf(fp, "Usage: %s [--rules <rules>] [--model <model>] "
+    fprintf(fp, "Usage: %s [--keysym] [--rules <rules>] [--model <model>] "
                 "[--layout <layout>] [--variant <variant>] [--options <options>]"
-                " <unicode codepoint>\n", argv0);
+                " <unicode codepoint/keysym>\n", argv0);
 }
 
 int
@@ -48,6 +49,7 @@
     const char *layout_ = NULL;
     const char *variant = NULL;
     const char *options = NULL;
+    bool keysym_mode = false;
     int err = EXIT_FAILURE;
     struct xkb_context *ctx = NULL;
     char *endp;
@@ -60,6 +62,7 @@
     xkb_keycode_t min_keycode, max_keycode;
     xkb_mod_index_t num_mods;
     enum options {
+        OPT_KEYSYM,
         OPT_RULES,
         OPT_MODEL,
         OPT_LAYOUT,
@@ -68,6 +71,7 @@
     };
     static struct option opts[] = {
         {"help",                 no_argument,            0, 'h'},
+        {"keysym",               no_argument,            0, OPT_KEYSYM},
         {"rules",                required_argument,      0, OPT_RULES},
         {"model",                required_argument,      0, OPT_MODEL},
         {"layout",               required_argument,      0, OPT_LAYOUT},
@@ -85,6 +89,9 @@
             break;
 
         switch (opt) {
+        case OPT_KEYSYM:
+            keysym_mode = true;
+            break;
         case OPT_RULES:
             rules = optarg;
             break;
@@ -113,18 +120,26 @@
         exit(EXIT_INVALID_USAGE);
     }
 
-    errno = 0;
-    val = strtol(argv[optind], &endp, 0);
-    if (errno != 0 || endp == argv[optind] || val < 0 || val > 0x10FFFF) {
-        usage(argv[0], stderr);
-        exit(EXIT_INVALID_USAGE);
-    }
-    codepoint = (uint32_t) val;
+    if (keysym_mode) {
+        keysym = xkb_keysym_from_name(argv[optind], XKB_KEYSYM_NO_FLAGS);
+        if (keysym == XKB_KEY_NoSymbol) {
+            fprintf(stderr, "Failed to convert argument to keysym\n");
+            goto err;
+        }
+    } else {
+        errno = 0;
+        val = strtol(argv[optind], &endp, 0);
+        if (errno != 0 || endp == argv[optind] || val < 0 || val > 0x10FFFF) {
+            usage(argv[0], stderr);
+            exit(EXIT_INVALID_USAGE);
+        }
+        codepoint = (uint32_t) val;
 
-    keysym = xkb_utf32_to_keysym(codepoint);
-    if (keysym == XKB_KEY_NoSymbol) {
-        fprintf(stderr, "Failed to convert codepoint to keysym\n");
-        goto err;
+        keysym = xkb_utf32_to_keysym(codepoint);
+        if (keysym == XKB_KEY_NoSymbol) {
+            fprintf(stderr, "Failed to convert codepoint to keysym\n");
+            goto err;
+        }
     }
 
     ret = xkb_keysym_get_name(keysym, name, sizeof(name));
diff --git a/tools/interactive-evdev.c b/tools/interactive-evdev.c
index 9c8c94e..8b0bce0 100644
--- a/tools/interactive-evdev.c
+++ b/tools/interactive-evdev.c
@@ -31,6 +31,7 @@
 #include <getopt.h>
 #include <limits.h>
 #include <locale.h>
+#include <poll.h>
 #include <signal.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -38,7 +39,6 @@
 #include <string.h>
 #include <unistd.h>
 
-#include <sys/epoll.h>
 #include <linux/input.h>
 
 #include "xkbcommon/xkbcommon.h"
@@ -313,33 +313,25 @@
 static int
 loop(struct keyboard *kbds)
 {
-    int i, ret = 1;
-    int epfd = -1;
+    int ret = -1;
     struct keyboard *kbd;
-    struct epoll_event ev;
-    struct epoll_event evs[16];
+    nfds_t nfds, i;
+    struct pollfd *fds = NULL;
 
-    epfd = epoll_create1(0);
-    if (epfd < 0) {
-        fprintf(stderr, "Couldn't create epoll instance: %s\n",
-                strerror(errno));
+    for (kbd = kbds, nfds = 0; kbd; kbd = kbd->next, nfds++) {}
+    fds = calloc(nfds, sizeof(*fds));
+    if (fds == NULL) {
+        fprintf(stderr, "Out of memory");
         goto out;
     }
 
-    for (kbd = kbds; kbd; kbd = kbd->next) {
-        memset(&ev, 0, sizeof(ev));
-        ev.events = EPOLLIN;
-        ev.data.ptr = kbd;
-        ret = epoll_ctl(epfd, EPOLL_CTL_ADD, kbd->fd, &ev);
-        if (ret) {
-            fprintf(stderr, "Couldn't add %s to epoll: %s\n",
-                    kbd->path, strerror(errno));
-            goto out;
-        }
+    for (i = 0, kbd = kbds; kbd; kbd = kbd->next, i++) {
+        fds[i].fd = kbd->fd;
+        fds[i].events = POLLIN;
     }
 
     while (!terminate) {
-        ret = epoll_wait(epfd, evs, 16, -1);
+        ret = poll(fds, nfds, -1);
         if (ret < 0) {
             if (errno == EINTR)
                 continue;
@@ -348,18 +340,19 @@
             goto out;
         }
 
-        for (i = 0; i < ret; i++) {
-            kbd = evs[i].data.ptr;
-            ret = read_keyboard(kbd);
-            if (ret) {
-                goto out;
+        for (i = 0, kbd = kbds; kbd; kbd = kbd->next, i++) {
+            if (fds[i].revents != 0) {
+                ret = read_keyboard(kbd);
+                if (ret) {
+                    goto out;
+                }
             }
         }
     }
 
     ret = 0;
 out:
-    close(epfd);
+    free(fds);
     return ret;
 }
 
diff --git a/tools/interactive-wayland.c b/tools/interactive-wayland.c
index 3ac7ad7..d23432d 100644
--- a/tools/interactive-wayland.c
+++ b/tools/interactive-wayland.c
@@ -130,6 +130,27 @@
 }
 #endif
 
+static int
+os_resize_anonymous_file(int fd, off_t size)
+{
+    int ret;
+#ifdef HAVE_POSIX_FALLOCATE
+    ret = posix_fallocate(fd, 0, size);
+    if (ret == 0)
+        return 0;
+    /*
+     * Filesystems that do support fallocate will return EINVAL
+     * or EOPNOTSUPP, fallback to ftruncate() then.
+     */
+    if (ret != EINVAL && ret != EOPNOTSUPP)
+        return ret;
+#endif
+    ret = ftruncate(fd, size);
+    if (ret != 0)
+        return errno;
+    return 0;
+}
+
 /*
  * Create a new, unique, anonymous file of the given size, and
  * return the file descriptor for it. The file descriptor is set
@@ -148,8 +169,8 @@
  * If the C library implements posix_fallocate(), it is used to
  * guarantee that disk space is available for the file at the
  * given size. If disk space is insufficent, errno is set to ENOSPC.
- * If posix_fallocate() is not supported, program may receive
- * SIGBUS on accessing mmap()'ed file contents instead.
+ * If posix_fallocate() is not supported, program will fallback
+ * to ftruncate() instead.
  */
 static int
 os_create_anonymous_file(off_t size)
@@ -180,20 +201,12 @@
     if (fd < 0)
         return -1;
 
-#ifdef HAVE_POSIX_FALLOCATE
-    ret = posix_fallocate(fd, 0, size);
+    ret = os_resize_anonymous_file(fd, size);
     if (ret != 0) {
         close(fd);
         errno = ret;
         return -1;
     }
-#else
-    ret = ftruncate(fd, size);
-    if (ret < 0) {
-        close(fd);
-        return -1;
-    }
-#endif
 
     return fd;
 }
diff --git a/tools/interactive-x11.c b/tools/interactive-x11.c
index c7ca9aa..eea22fa 100644
--- a/tools/interactive-x11.c
+++ b/tools/interactive-x11.c
@@ -246,7 +246,7 @@
                                   XKB_CONSUMED_MODE_XKB);
 
         /* Exit on ESC. */
-        if (keycode == 9)
+        if (xkb_state_key_get_one_sym(kbd->state, keycode) == XKB_KEY_Escape)
             terminate = true;
         break;
     }
diff --git a/tools/registry-list.c b/tools/registry-list.c
index 0dc71d1..c360da7 100644
--- a/tools/registry-list.c
+++ b/tools/registry-list.c
@@ -136,19 +136,22 @@
         goto err;
     }
 
-    printf("Models:\n");
+    printf("models:\n");
     m = rxkb_model_first(ctx);
     assert(m); /* Empty model list is usually a bug or a bad xml file */
     while (m) {
-        printf("- %s:%s:%s\n",
+        const char *vendor = rxkb_model_get_vendor(m);
+        printf("- name: %s\n"
+               "  vendor: %s\n"
+               "  description: %s\n",
                rxkb_model_get_name(m),
-               rxkb_model_get_vendor(m),
+               vendor ? vendor : "''",
                rxkb_model_get_description(m));
         m = rxkb_model_next(m);
     }
 
     printf("\n");
-    printf("Layouts:\n");
+    printf("layouts:\n");
     l = rxkb_layout_first(ctx);
     assert(l); /* Empty layout list is usually a bug or a bad xml file */
     while (l) {
@@ -156,56 +159,63 @@
         struct rxkb_iso3166_code *iso3166;
         const char *variant = rxkb_layout_get_variant(l);
         const char *brief = rxkb_layout_get_brief(l);
-        bool first;
 
-        printf("- %s%s%s%s:%s:%s",
+        printf("- layout: '%s'\n"
+               "  variant: '%s'\n"
+               "  brief: '%s'\n"
+               "  description: %s\n",
                rxkb_layout_get_name(l),
-               variant ? "(" : "",
                variant ? variant : "",
-               variant ? ")" : "",
-               brief ? brief : "",
+               brief ? brief : "''",
                rxkb_layout_get_description(l));
 
+        printf("  iso639: [");
         iso639 = rxkb_layout_get_iso639_first(l);
-        if (iso639)
-            printf(":iso639-");
-        first = true;
-        while (iso639) {
-            printf("%s%s", first ? "" : ",", rxkb_iso639_code_get_code(iso639));
-            iso639 = rxkb_iso639_code_next(iso639);
-            first = false;
+        if (iso639) {
+            const char *sep = "";
+            while (iso639) {
+                printf("%s'%s'", sep, rxkb_iso639_code_get_code(iso639));
+                iso639 = rxkb_iso639_code_next(iso639);
+                sep = ", ";
+            }
         }
+        printf("]\n");
+        printf("  iso3166: [");
         iso3166 = rxkb_layout_get_iso3166_first(l);
-        if (iso3166)
-            printf(":iso3166-");
-        first = true;
-        while (iso3166) {
-            printf("%s%s", first ? "" : ",", rxkb_iso3166_code_get_code(iso3166));
-            iso3166 = rxkb_iso3166_code_next(iso3166);
-            first = false;
+        if (iso3166) {
+            const char *sep = "";
+            while (iso3166) {
+                printf("%s'%s'", sep, rxkb_iso3166_code_get_code(iso3166));
+                iso3166 = rxkb_iso3166_code_next(iso3166);
+                sep = ", ";
+            }
         }
-
-        printf("\n");
+        printf("]\n");
         l = rxkb_layout_next(l);
     }
     printf("\n");
-    printf("Options:\n");
+    printf("option_groups:\n");
     g = rxkb_option_group_first(ctx);
     assert(g); /* Empty option goups list is usually a bug or a bad xml file */
     while (g) {
         struct rxkb_option *o;
 
-        printf("- %s:%s (%s)\n",
+        printf("- name: '%s'\n"
+               "  description: %s\n"
+               "  allows_multiple: %s\n"
+               "  options:\n",
                rxkb_option_group_get_name(g),
                rxkb_option_group_get_description(g),
-               rxkb_option_group_allows_multiple(g) ? "multiple" : "single");
+               rxkb_option_group_allows_multiple(g) ? "true" : "false");
 
         o = rxkb_option_first(g);
         assert(o); /* Empty option list is usually a bug or a bad xml file */
         while (o) {
             const char *brief = rxkb_option_get_brief(o);
 
-            printf("  - %s:%s:%s\n",
+            printf("  - name: '%s'\n"
+                   "    brief: '%s'\n"
+                   "    description: '%s'\n",
                    rxkb_option_get_name(o),
                    brief ? brief : "",
                    rxkb_option_get_description(o));
diff --git a/tools/xkbcli-how-to-type.1 b/tools/xkbcli-how-to-type.1
index 5211d0f..d5002ae 100644
--- a/tools/xkbcli-how-to-type.1
+++ b/tools/xkbcli-how-to-type.1
@@ -9,7 +9,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op options
-.Ar codepoint
+.Ar codepoint/keysym
 .
 .Sh DESCRIPTION
 .Nm
@@ -17,6 +17,9 @@
 would produce the given Unicode codepoint.
 .
 .Bl -tag -width Ds
+.It Fl \-keysym
+Treat the argument as a keysym, not a Unicode codepoint
+.
 .It Fl \-rules Ar rules
 The XKB ruleset
 .
diff --git a/tools/xkbcli-interactive-evdev.1 b/tools/xkbcli-interactive-evdev.1
index be1b70f..58be555 100644
--- a/tools/xkbcli-interactive-evdev.1
+++ b/tools/xkbcli-interactive-evdev.1
@@ -14,7 +14,7 @@
 .Nm
 is a commandline tool to interactively debug XKB keymaps by listening to
 .Pa /dev/input/eventX
-evdev devices (Linux).
+evdev devices.
 .
 .Pp
 .Nm
diff --git a/tools/xkbcli-list.1 b/tools/xkbcli-list.1
index a72477b..66ea09b 100644
--- a/tools/xkbcli-list.1
+++ b/tools/xkbcli-list.1
@@ -1,4 +1,4 @@
-.Dd July 27, 2020
+.Dd November 1, 2021
 .Dt XKBCLI\-LIST 1
 .Os
 .
@@ -11,11 +11,11 @@
 .Op Pa /path/to/xkbbase Oo Pa /path/to/xkbbase Oc ...
 .
 .Sh DESCRIPTION
-.Nm
-is a commandline tool to list available model, layout, variant and option (MLVO) values from the XKB registry.
+List available model, layout, variant and option (MLVO) values from the XKB registry.
+The output is in YAML 1.2 format.
 .
 .Pp
-Positional arguments provided on the commandline are treated as XKB base directory installations.
+Positional arguments are treated as XKB base directory installations.
 .
 .Bl -tag -width Ds
 .It Fl \-help
diff --git a/tools/xkbcli.1 b/tools/xkbcli.1
index 9ea0416..18f7732 100644
--- a/tools/xkbcli.1
+++ b/tools/xkbcli.1
@@ -27,6 +27,10 @@
 .
 .Ss COMMANDS
 .Bl -tag -width Ds
+.It Ic compile\-keymap
+Compile an XKB keymap, see
+.Xr xkbcli\-compile\-keymap 1
+
 .It Ic how\-to\-type
 Show how to type a given Unicode codepoint, see
 .Xr xkbcli\-how\-to\-type 1
@@ -40,7 +44,7 @@
 .Xr xkbcli\-interactive\-wayland 1
 .
 .It Ic interactive\-evdev
-Interactive debugger for XKB keymaps for evdev (Linux), see
+Interactive debugger for XKB keymaps for evdev, see
 .Xr xkbcli\-interactive\-evdev 1
 .
 .It Ic list
diff --git a/tools/xkbcli.c b/tools/xkbcli.c
index 1f3ed3f..75f72fe 100644
--- a/tools/xkbcli.c
+++ b/tools/xkbcli.c
@@ -55,7 +55,7 @@
 #endif
 #if HAVE_XKBCLI_INTERACTIVE_EVDEV
            "  interactive-evdev\n"
-           "    Interactive debugger for XKB keymaps for evdev (Linux)\n"
+           "    Interactive debugger for XKB keymaps for evdev\n"
            "\n"
 #endif
 #if HAVE_XKBCLI_COMPILE_KEYMAP